| 
    
    
 | 
    
    
        
 
    Gearswap Support Thread
 
    
        
        
        
            
                
                    
                    
                    
                                                                
                                        
                                                    
                                                                            
                                Server: Valefor 
                                Game: FFXI 
                                
                                                                    Posts: 19647 
                                                             
                                             
                    
                                            
                                        
                    
                    
                 
             
            
                
			
			By Valefor.Prothescar 2014-01-05 19:39:09			
			
						
                     
                 
                Well, got it to load. 
 
--I was missing a comma after the ammo slot on like 200something, not 9.  
 
--All of the commas separating spells were wrong, had to change them to or. 
 
 
Now I know! Time to find out which rules work, which don't, and how to get it to work the way I want it...                                     
                
             
                        
         
        
        
        
            
                
                      Lakshmi.Byrth 
                    VIP 
                    
                                                            
                                                    
                                                                            
                                Server: Lakshmi 
                                Game: FFXI 
                                
                                                                    Posts: 6504 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Lakshmi.Byrth 2014-01-05 20:05:30			
			
						
                     
                 
                Quetzalcoatl.Mystery said:  »Does GearCollector work with Gearswap? Use //gs export sets xml 
Then copy the created file (in gearswap/data/export) to spellcast and rename it appropriately.                                      
                
             
                        
         
        
        
        
            
                
                    
                    
                    
                                                                
                                        
                                                    
                                                                            
                                Server: Valefor 
                                Game: FFXI 
                                
                                                                    Posts: 19647 
                                                             
                                             
                    
                                            
                                        
                    
                    
                 
             
            
                
			
			By Valefor.Prothescar 2014-01-05 20:30:52			
			
						
                     
                 
                Seem to have worked out how to do what I want except for one thing: can I add multiple spells to one rule? Or do I need a bunch of separate rules? 
i.e.
 Code  
function midcast(spell,act)
        if spell.english == 'Quad. Continuum' or 'Delta Thrust' or 'Cannonball' or 'Glutinous Dart' then
		equip(sets.BlueMagic.STRVIT)
		if buffactive['Chain Affinity'] then
			equip(sets.JA.ChainAffinity)
		end
		if buffactive['Efflux'] then
			equip(sets.JA.Efflux)
		end
        end
        if spell.english == 'Acrid Stream' then
		equip(sets.BlueMagic.INT)
		if buffactive['Burst Affinity'] then
			equip(sets.JA.BurstAffinity)
		end
	end	
end
 
doesn't seem to work, however...
 Code  
function midcast(spell,act)
	if spell.english == 'Quad. Continuum' then
		equip(sets.BlueMagic.STRVIT)
		if buffactive['Chain Affinity'] then
			equip(sets.JA.ChainAffinity)
		end
		if buffactive['Efflux'] then
			equip(sets.JA.Efflux)
		end
	end
	if spell.english == 'Acrid Stream' then
		equip(sets.BlueMagic.INT)
		if buffactive['Burst Affinity'] then
			equip(sets.JA.BurstAffinity)
		end
	end	
end
  
works fine. both spells get their proper sets equipped, whereas the code above has every action I do equip the STRVIT set.                                      
                
             
                        
         
        
        
        
            
                
                      Lakshmi.Byrth 
                    VIP 
                    
                                                            
                                                    
                                                                            
                                Server: Lakshmi 
                                Game: FFXI 
                                
                                                                    Posts: 6504 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Lakshmi.Byrth 2014-01-05 20:34:30			
			
						
                     
                 
                if spell.english =='Quad. Continuum" or spell.english == 'Acrid Stream' or ... 
 
alternatively: 
T{'Quad. Continuum','Acrid Stream','etc.'}:contains(spell.english)                                     
                
             
                        
         
        
        
        
            
                
                    
                    
                    
                                                                
                                        
                                                    
                                                                            
                                Server: Valefor 
                                Game: FFXI 
                                
                                                                    Posts: 19647 
                                                             
                                             
                    
                                            
                                        
                    
                    
                 
             
            
                
			
			By Valefor.Prothescar 2014-01-05 20:37:07			
			
						
                     
                 
                okay thanks                                     
                
             
                        
         
        
        
        
            
                
                      Phoenix.Cliamain 
                    
                    
                                                            
                                                    
                                                                            
                                Server: Phoenix 
                                Game: FFXI 
                                
                                                                    Posts: 64 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Phoenix.Cliamain 2014-01-05 21:08:18			
			
						
                     
                 
                How does this see what job you are on? Is there a rule or a command in the .lua that detects it?  
 
In spellcast it's something like <group name="PLD" default="yes">.                                     
                
             
                        
         
        
        
        
            
                
                    
                    
                    
                                                                
                                        
                                                    
                                                                            
                                Server: Valefor 
                                Game: FFXI 
                                
                                                                    Posts: 19647 
                                                             
                                             
                    
                                            
                                        
                    
                    
                 
             
            
                
			
			By Valefor.Prothescar 2014-01-05 21:39:26			
			
						
                     
                 
                far as I can tell it does it automatically without any input required. 
 
 
final stupid question from me: any way to get gearsets into my macros? I want to add PDT and MDT sets to my BLU lua, but idk how i'd be able to actually use them. Typing in //gs equip sets.PDT or something every time would be too clunky, and I don't know any workarounds to getting // commands to work via in-game macros.                                     
                
             
                        
         
        
        
        
            
                
                      Lakshmi.Byrth 
                    VIP 
                    
                                                            
                                                    
                                                                            
                                Server: Lakshmi 
                                Game: FFXI 
                                
                                                                    Posts: 6504 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Lakshmi.Byrth 2014-01-05 21:54:00			
			
						
                     
                 
                /console gs equip sets.PDT                                     
                
             
                        
         
        
        
        
            
                
                    
                    VIP 
                    
                                                            
                                                    
                                                                            
                                Server: Fenrir 
                                Game: FFXI 
                                
                                                                    Posts: 764 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Fenrir.Motenten 2014-01-06 01:12:39			
			
						
                     
                 
                How does this see what job you are on? Is there a rule or a command in the .lua that detects it?  
 
In spellcast it's something like <group name="PLD" default="yes">. 
That example isn't Spellcast seeing what job you're on, that's just Spellcast using the default group, which you happened to have named after the job you were on.  Completely coincidental.  For spellcast, it'd be <if mainjob="pld">...
 
However, to see your current job information, look at player.main_job and player.sub_job.  There are some other variants as well.  You can find all of them in the spreadsheet provided in the beta_examples_and_information subfolder of Gearswap (Windower/addons/GearSwap/beta_examples_and_information).                                      
                
             
                        
         
        
        
        
            
                
                      Phoenix.Cliamain 
                    
                    
                                                            
                                                    
                                                                            
                                Server: Phoenix 
                                Game: FFXI 
                                
                                                                    Posts: 64 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Phoenix.Cliamain 2014-01-06 08:27:30			
			
						
                     
                 
                How does this see what job you are on? Is there a rule or a command in the .lua that detects it?  
 
In spellcast it's something like <group name="PLD" default="yes">. 
That example isn't Spellcast seeing what job you're on, that's just Spellcast using the default group, which you happened to have named after the job you were on.  Completely coincidental.  For spellcast, it'd be <if mainjob="pld">...
 
However, to see your current job information, look at player.main_job and player.sub_job.  There are some other variants as well.  You can find all of them in the spreadsheet provided in the beta_examples_and_information subfolder of Gearswap (Windower/addons/GearSwap/beta_examples_and_information). 
Ah well now I know where it's finding out what your main job is now then. Where is it seeing what job you're on? Or is it just going off of what the .Lua is named? I'd think most things are smart enough now to just go off of that.                                      
                
             
                        
         
        
        
        
            
                
                      Quetzalcoatl.Mystery 
                    
                    
                                                            
                                                    
                                                                            
                                Server: Quetzalcoatl 
                                Game: FFXI 
                                
                                                                    Posts: 15 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Quetzalcoatl.Mystery 2014-01-06 16:08:29			
			
						
                     
                 
                Quetzalcoatl.Mystery said:  »Does GearCollector work with Gearswap? Use //gs export sets xml 
Then copy the created file (in gearswap/data/export) to spellcast and rename it appropriately. 
If I'm understanding this right, then every time I get a new piece of gear I'll need to be sure to change it in the xml for gc as well? 
 
Not too much of a hassle I guess!                                      
                
             
                        
         
        
        
        
            
                
                      Lakshmi.Toioiz 
                    
                    
                                                            
                                                    
                                                                            
                                Server: Lakshmi 
                                Game: FFXI 
                                
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Lakshmi.Toioiz 2014-01-06 18:33:52			
			
						
                     
                 
                When setting up gearswap for a whm mule, I used the scholar example, and likely broke something. When using 'Cure' from the menu, the gear changes, and everything works fine. when using /ma cure4 <name>, it doesn't appear to change gear at all. Is there a section that sees those differently?  
Basically, here is the only section referencing cure spells:
 Quote:          if string.find(spell.english,'Cur') then 
                equip(sets.midcast_Cure) 
        end                                       
                
             
                        
         
        
        
        
            
                
                    
                    VIP 
                    
                                                            
                                                    
                                                                            
                                Server: Odin 
                                Game: FFXI 
                                
                                                                    Posts: 9534 
                                                             
                                             
                    
                                            
                                        
                    
                    
                 
             
            
                
			
			By Odin.Jassik 2014-01-06 19:27:57			
			
						
                     
                 
                Quetzalcoatl.Mystery said:  »Quetzalcoatl.Mystery said:  »Does GearCollector work with Gearswap? Use //gs export sets xml 
Then copy the created file (in gearswap/data/export) to spellcast and rename it appropriately. 
If I'm understanding this right, then every time I get a new piece of gear I'll need to be sure to change it in the xml for gc as well? 
 
Not too much of a hassle I guess!   
considering you should be using something like Notepad++ to edit the files, you can use the "find and replace" features to speed that process.  If you get a new WS body, and have many WS sets for different situations, you can Find all the places the old body shows up and replace them with the new body.  
 
Lots of slick ways to speed that process.  I've changed setups midway through an event because a piece that I needed dropped at some point.                                      
                
             
                        
         
        
        
        
            
                
                      Quetzalcoatl.Mystery 
                    
                    
                                                            
                                                    
                                                                            
                                Server: Quetzalcoatl 
                                Game: FFXI 
                                
                                                                    Posts: 15 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Quetzalcoatl.Mystery 2014-01-06 19:57:23			
			
						
                     
                 
                Yes, I do this too.  
 
I was just making sure that GC won't read the lua files. 
 
Thanks Byrth!                                     
                
             
                        
         
        
        
        
            
            
                
			
			By Treizekordero 2014-01-06 20:28:04			
			
						
                     
                 
                Quetzalcoatl.Mystery said:  »Does GearCollector work with Gearswap? Use //gs export sets xml 
Then copy the created file (in gearswap/data/export) to spellcast and rename it appropriately. 
I tried to use //gs export sets xml for gear collector but it didn't work for me. Gives no errors just nothing happens.
 
Edit: 
Got it to work.. had to use //gearswap export sets xml                                      
                
             
                        
         
        
        
        
            
                
                      Leviathan.Nitenichi 
                    
                    
                                                            
                                                    
                                                                            
                                Server: Leviathan 
                                Game: FFXI 
                                
                                                                    Posts: 384 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Leviathan.Nitenichi 2014-01-07 16:20:04			
			
						
                     
                 
                I apologize if I missed somewhere, is there a list of commands?                                     
                
             
                        
         
        
        
        
            
                
                    
                    VIP 
                    
                                                            
                                                    
                                                                            
                                Server: Fenrir 
                                Game: FFXI 
                                
                                                                    Posts: 764 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Fenrir.Motenten 2014-01-07 16:28:55			
			
						
                     
                 
                You'll need to be a little more precise regarding exactly which commands you mean. 
 
If you mean commands directly to GearSwap (ie: from the command line or console), yes -- it's at the bottom of the included spreadsheet. 
 
If you mean commands that you can use to refer to game information, or execute rules within the lua itself, yes -- that's the majority of what the included spreadsheet provides. 
 
If you mean commands that the user can issue to their own job file, no.  That's something you make yourself.                                     
                
             
                        
         
        
        
        
            
                
                    
                    VIP 
                    
                                                            
                                                    
                                                                            
                                Server: Fenrir 
                                Game: FFXI 
                                
                                                                    Posts: 764 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Fenrir.Motenten 2014-01-07 16:31:32			
			
						
                     
                 
                How does this see what job you are on? Is there a rule or a command in the .lua that detects it?  
 
In spellcast it's something like <group name="PLD" default="yes">. 
That example isn't Spellcast seeing what job you're on, that's just Spellcast using the default group, which you happened to have named after the job you were on.  Completely coincidental.  For spellcast, it'd be <if mainjob="pld">...
 
However, to see your current job information, look at player.main_job and player.sub_job.  There are some other variants as well.  You can find all of them in the spreadsheet provided in the beta_examples_and_information subfolder of Gearswap (Windower/addons/GearSwap/beta_examples_and_information). 
Ah well now I know where it's finding out what your main job is now then. Where is it seeing what job you're on? Or is it just going off of what the .Lua is named? I'd think most things are smart enough now to just go off of that. 
You either have things backwards, or you're just being confusing in your question.  GearSwap knows your job based on information it can pull from Windower.  Your custom job lua files know your job because they can look at player.main_job whenever they want.  GearSwap chooses which lua file to use based on the job you're on.  Absolutely nothing determines what your job is based on the name of the file.                                      
                
             
                        
         
        
        
        
            
                
                      Leviathan.Nitenichi 
                    
                    
                                                            
                                                    
                                                                            
                                Server: Leviathan 
                                Game: FFXI 
                                
                                                                    Posts: 384 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Leviathan.Nitenichi 2014-01-07 16:35:48			
			
						
                     
                 
                Didn't see the spreadsheet in gearswap folder, ill locate it off github. Basic commands ie in spellcast: //sc load nite_mnk would be to load monk.                                     
                
             
                        
         
        
        
        
            
                
                      Cerberus.Conagh 
                    
                    
                                                            
                                                    
                                                                            
                                Server: Cerberus 
                                Game: FFXI 
                                
                                                                    Posts: 3189 
                                                             
                                             
                    
                                            
                                        
                    
                    
                 
             
            
                
			
			By Cerberus.Conagh 2014-01-07 18:24:37			
			
						
                     
                 
                I know there is a Spellcast COde > Gearswap converter, but I remember there being some issues with SPellcast variables not translating correctly (including gearsets) the gearsets are not my concern, but I wondered if the Variables are fixed yet? 
here is my Blue Spellcast and I wondered how it should look in Gearswap 
 http://guildwork.com/characters/ffxi/cerberus/conagh/spellcast#Conagh_BLU.xml
I had some major issues trying to impliment these variables into Gearswap but I had success making a WHM (although after the last update it stopped reading a current spell status and refused to change my idle set)                                      
                
             
                        
         
        
        
        
            
                
                      Cerberus.Conagh 
                    
                    
                                                            
                                                    
                                                                            
                                Server: Cerberus 
                                Game: FFXI 
                                
                                                                    Posts: 3189 
                                                             
                                             
                    
                                            
                                        
                    
                    
                 
             
            
                
			
			By Cerberus.Conagh 2014-01-07 18:45:51			
			
						
                     
                 
                When setting up gearswap for a whm mule, I used the scholar example, and likely broke something. When using 'Cure' from the menu, the gear changes, and everything works fine. when using /ma cure4 <name>, it doesn't appear to change gear at all. Is there a section that sees those differently?  
Basically, here is the only section referencing cure spells:
 Quote:          if string.find(spell.english,'Cur') then 
                equip(sets.midcast_Cure) 
        end  
Quote:  function precast(spell,action) 
	if spell.skill=='HealingMagic' then 
		if T{"Cure*","Curaga*"}:contains(spell.name) and spell.casttime < 6 then 
		cast_delay(0.1) 
		equip(sets.precast_Cure) 
		end 
	end 
I'm not a fan of the if string.find  command as it can't be used in multiple's for the thing ie
 Quote:  if string.find(spell.english,'Cur') or (spell.english, 'lyna') then 
Wouldn't work as it can;t parse both lines at once, beter off using the one above works similar to spellcast and a little smoother.                                      
                
             
                        
         
        
        
        
            
                
                      Lakshmi.Toioiz 
                    
                    
                                                            
                                                    
                                                                            
                                Server: Lakshmi 
                                Game: FFXI 
                                
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Lakshmi.Toioiz 2014-01-07 21:33:54			
			
						
                     
                 
                Thanks, here is the one I currently ended up with after recommendations: 
http://pastebin.com/KwGc1jA1                                            
                                     
                
             
                            
                    [+]
                                             
                                        
                 
                        
         
        
        
        
            
                
                      Lakshmi.Byrth 
                    VIP 
                    
                                                            
                                                    
                                                                            
                                Server: Lakshmi 
                                Game: FFXI 
                                
                                                                    Posts: 6504 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Lakshmi.Byrth 2014-01-08 04:40:51			
			
						
                     
                 
                Conagh: Code  if string.find(spell.english,'Cur') or string.find(spell.english, 'lyna') then                                       
                
             
                        
         
        
        
        
            
                
                      Leviathan.Arcon 
                    VIP 
                    
                                                            
                                                    
                                                                            
                                Server: Leviathan 
                                Game: FFXI 
                                
                                                                    Posts: 682 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Leviathan.Arcon 2014-01-08 08:22:47			
			
						
                     
                 
                Code  if T{'Cure*', 'Curaga*'}:any(string.wcmatch+{spell.name}) then 
More general (t is a T-table and fn is a function): 
This will return true iff fn is not nil/false for any of the elements in t. And further: 
This will return true iff fn is not nil/false for all of the elements of t.                                      
                
             
                        
         
        
        
        
            
            
                
			
			By Miang 2014-01-08 09:13:01			
			
						
                     
                 
                Question, you've used spell.name whereas Byrth is using spell.english (and I've always used spell.english). Which should it be?                                     
                
             
                        
         
        
        
        
            
                
                      Leviathan.Arcon 
                    VIP 
                    
                                                            
                                                    
                                                                            
                                Server: Leviathan 
                                Game: FFXI 
                                
                                                                    Posts: 682 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Leviathan.Arcon 2014-01-08 10:30:57			
			
						
                     
                 
                Up to you, really. spell.english is safer if you use hard-coded names, unless you explicitly specify the language (by setting the _addon.language variable). spell.name defaults to your FFXI language or the language specified in your addon (if specified), which can be overwritten in your settings XML. If your language is English, spell.name will default to spell.english, German to spell.german, and so on. In most cases it doesn't matter, but if you use .name instead of .english then people can adjust the spells, items, etc. to their own language and have it work. On the other hand, if you have hard coded names and use spell.name, then it will fail for them, so that requires you to specify the language in your file, if you wanna make it portable. 
 
Personally I think the best way is to use spell.english when you use hard coded names (like Cure IV above, unlike what I did), but spell.name for generic output. For example, if you wanna output the remaining sleep time every time you cast sleep on targets, you should use spell.name instead of spell.english, so if someone else with a different language uses your file it will show the spell in their language instead. 
 
One of the more obvious uses is for other addons (since this is not GS exclusive). For example, the FindAll addon can make use of that to allow french people to search for french item names. And it could output the found items again in french.                                     
                
             
                        
         
        
        
        
            
            
                
			
			By Selindrile 2014-01-08 11:38:40			
			
						
                     
                 
                Gearswap question, I found the gearswap shop thread on BG (Which, many thanks for the people who have contributed, can understand and follow/modify Prothescar's Blu, and JSHidaka's Mnk for my own purposes. Much <3)  
 
But I have a few things I'd like to know how to do in if someone can dumb them down for me. 
 
1.) Utsusemi: Ichi auto cancelling Ni midcast. 
2.) Spectral Jig auto cancelling Sneak. 
3.) Disabling single slots with console commands (Say I'm doing a trial in dyna, or curing with Whm while meleeing.)                                     
                
             
                        
         
        
        
        
            
            
                
			
			By Sylph.Atigevomega 2014-01-08 12:32:56			
			
						
                     
                 
                Can anyone help me out, im writing a script for mnk thats not overly complicated, but does what I need it to do.  Now Im using pretty much byrths template but with a few additions (not much).  The issue im having is that it will swap my DD/ACC sets but will not swap my PDT/DD sets can anyone please help and tell me where I went wrong and how to do this?  I want it to be a toggle, thank you so much in advance.  Here is the pastebin: 
http://pastebin.com/Q0iqVeq3                                     
                
             
                        
         
        
        
        
            
                
                    
                    
                    
                                                            
                                                    
                                                                            
                                Server: Lakshmi 
                                Game: FFXI 
                                
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Lakshmi.Snozeberry 2014-01-08 12:44:47			
			
						
                     
                 
                1. 
Quote:  if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then 
    send_command('@wait 3.3; cancel 66; cancel 444') 
end 
Edit: Updated bad code
 
2. Use above, with spectral jig
 Quote:  if spell.english == 'Spectral Jig' then 
	send_command('cancel 71;') 
end 
3. 
 Quote:  if zone == "Dynamis - Windurst" 
	disable('legs') 
elseif zone == "Dynamis - Jeuno"  
	disable('hands') 
else 
	blah 
end  
Quote:  if player.status =='Engaged' then 
	disable('main','sub') 
end                                       
                
             
                        
         
        
        
        
            
                
                      Leviathan.Arcon 
                    VIP 
                    
                                                            
                                                    
                                                                            
                                Server: Leviathan 
                                Game: FFXI 
                                
                                                                    Posts: 682 
                                                             
                                             
                    
                                        
                    
                    
                 
             
            
                
			
			By Leviathan.Arcon 2014-01-08 12:57:17			
			
						
                     
                 
                Lakshmi.Snozeberry said:  »1. 
Quote:  if S{"Utsusemi*"}:contains(spell.name) and buffactive['Copy Image*'] then 
	send_command('@wait 3.3;cancel 66;') 
end 
This will not work for several reasons: 
1. :contains doesn't work with wildcards (as detailed above) 
2. buffactive does not perform wildcard checking 
3. This will only cancel 1 remaining shadow, not 2 remaining shadows.
 
And while it's not a Lua error, the first wildcard check isn't even needed, as the cancel command is only needed for Utsusemi: Ichi. Hence:
 Code  if spell.english == 'Utsusemi: Ichi' and (buffactive['Copy Image'] or buffactive['Copy Image (2)']) then
    send_command('@wait 3.3; cancel 66; cancel 444')
end 
Finally, if you use the cancel addon instead of the plugin, you can just write "cancel copy image*" instead of the numbers.                                      
                
             
                        
         
             
    
    
        
        Just looking for someone to explain this addon a bit for me. It looks like it is an alternative to Spellcast.  
 
Is it going to be replacing Spellcast? In which ways is it better or worse. I don't know any programming but I've slowly learned more and more about spellcast and the 'language' used in gearswap is confusing to me. 
 
It says it uses packets so it potentially could be more detectable? but does that also eliminate any lag that spellcast may encounter? 
 
I plan on redoing my PUP xml to include pet casting sets thanks to the new addon petschool. I'm just not sure if it's worth it to just wait until gearswap gets more popular or to go ahead and do it in spellcast. 
 
If anyone could give me more info I'd greatly appreciate it. 
        
     
    
 
    
 | 
    
 |