From 14a6aa4c488bcd2d49103cbee1424b2769d77ce0 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 12 Aug 2016 14:05:45 +0200 Subject: Initial import --- orig/pq/CHANGELOG | 50 + orig/pq/Config.dcu | Bin 0 -> 4426 bytes orig/pq/Config.ddp | Bin 0 -> 51 bytes orig/pq/Config.dfm | 933 +++++++ orig/pq/Config.pas | 57 + orig/pq/DelphiZLib.zip | Bin 0 -> 121363 bytes orig/pq/Front.dcu | Bin 0 -> 4331 bytes orig/pq/Front.ddp | Bin 0 -> 51 bytes orig/pq/Front.dfm | 4507 ++++++++++++++++++++++++++++++++ orig/pq/Front.pas | 47 + orig/pq/HTTPGet.pas | 448 ++++ orig/pq/INFO | 13 + orig/pq/Info.dcu | Bin 0 -> 3647 bytes orig/pq/Info.dfm | 101 + orig/pq/Info.pas | 31 + orig/pq/Login.dcu | Bin 0 -> 5078 bytes orig/pq/Login.dfm | 166 ++ orig/pq/Login.pas | 60 + orig/pq/Main.dcu | Bin 0 -> 63734 bytes orig/pq/Main.ddp | Bin 0 -> 51 bytes orig/pq/Main.dfm | 692 +++++ orig/pq/Main.pas | 1711 ++++++++++++ orig/pq/NewGuy.dcu | Bin 0 -> 12241 bytes orig/pq/NewGuy.ddp | Bin 0 -> 51 bytes orig/pq/NewGuy.dfm | 376 +++ orig/pq/NewGuy.pas | 267 ++ orig/pq/README | 39 + orig/pq/SelServ.dcu | Bin 0 -> 9320 bytes orig/pq/SelServ.ddp | Bin 0 -> 51 bytes orig/pq/SelServ.dfm | 217 ++ orig/pq/SelServ.pas | 184 ++ orig/pq/Web.dcu | Bin 0 -> 2152 bytes orig/pq/Web.pas | 87 + orig/pq/ZLIBEX.PAS | 777 ++++++ orig/pq/ZLIBEX.dcu | Bin 0 -> 48656 bytes orig/pq/charsheet.txt | 39 + orig/pq/crossed_swords_sm.gif | Bin 0 -> 1983 bytes orig/pq/dist/changes.txt | 22 + orig/pq/dist/license.txt | 20 + orig/pq/dist/pq.html | 129 + orig/pq/dist/pq6-2beta1.zip | Bin 0 -> 320122 bytes orig/pq/pq.cfg | 35 + orig/pq/pq.dof | 87 + orig/pq/pq.dpr | 25 + orig/pq/pq.exe | Bin 0 -> 852992 bytes orig/pq/pq.res | Bin 0 -> 3056 bytes orig/pq/saves/Avtrep.pq3 | Bin 0 -> 3753 bytes orig/pq/saves/Chillmitts [Oobag].log | 9 + orig/pq/saves/Chillmitts [Oobag].pq | Bin 0 -> 2497 bytes orig/pq/saves/Chillmitts [Oobag].sheet | 45 + orig/pq/saves/Cokie [Oobag].log | 266 ++ orig/pq/saves/Cokie [Oobag].pq | Bin 0 -> 5374 bytes orig/pq/saves/Cokie [Oobag].sheet | 37 + orig/pq/saves/Frogrox [Oobag].pq | Bin 0 -> 2117 bytes orig/pq/saves/Kridfrav.pq3 | Bin 0 -> 2770 bytes orig/pq/saves/Moxwhik.pq3 | Bin 0 -> 2113 bytes orig/pq/saves/Oupret.pq3 | Bin 0 -> 1945 bytes orig/pq/saves/Rotdrut.pq3 | Bin 0 -> 2059 bytes orig/pq/saves/Utzin.pq3 | Bin 0 -> 3776 bytes orig/pq/saves/Whakcrood [Spoltog].pq | Bin 0 -> 2137 bytes orig/pq/saves/Ziedkrad.pq3 | Bin 0 -> 3726 bytes orig/pq/screenshots.zip | Bin 0 -> 315335 bytes orig/pq/swords.gif | Bin 0 -> 11356 bytes 63 files changed, 11477 insertions(+) create mode 100644 orig/pq/CHANGELOG create mode 100644 orig/pq/Config.dcu create mode 100755 orig/pq/Config.ddp create mode 100755 orig/pq/Config.dfm create mode 100755 orig/pq/Config.pas create mode 100644 orig/pq/DelphiZLib.zip create mode 100644 orig/pq/Front.dcu create mode 100644 orig/pq/Front.ddp create mode 100644 orig/pq/Front.dfm create mode 100644 orig/pq/Front.pas create mode 100644 orig/pq/HTTPGet.pas create mode 100644 orig/pq/INFO create mode 100644 orig/pq/Info.dcu create mode 100644 orig/pq/Info.dfm create mode 100644 orig/pq/Info.pas create mode 100644 orig/pq/Login.dcu create mode 100644 orig/pq/Login.dfm create mode 100644 orig/pq/Login.pas create mode 100644 orig/pq/Main.dcu create mode 100755 orig/pq/Main.ddp create mode 100755 orig/pq/Main.dfm create mode 100755 orig/pq/Main.pas create mode 100644 orig/pq/NewGuy.dcu create mode 100755 orig/pq/NewGuy.ddp create mode 100755 orig/pq/NewGuy.dfm create mode 100755 orig/pq/NewGuy.pas create mode 100644 orig/pq/README create mode 100644 orig/pq/SelServ.dcu create mode 100644 orig/pq/SelServ.ddp create mode 100644 orig/pq/SelServ.dfm create mode 100644 orig/pq/SelServ.pas create mode 100644 orig/pq/Web.dcu create mode 100644 orig/pq/Web.pas create mode 100644 orig/pq/ZLIBEX.PAS create mode 100644 orig/pq/ZLIBEX.dcu create mode 100644 orig/pq/charsheet.txt create mode 100644 orig/pq/crossed_swords_sm.gif create mode 100644 orig/pq/dist/changes.txt create mode 100644 orig/pq/dist/license.txt create mode 100644 orig/pq/dist/pq.html create mode 100644 orig/pq/dist/pq6-2beta1.zip create mode 100644 orig/pq/pq.cfg create mode 100644 orig/pq/pq.dof create mode 100644 orig/pq/pq.dpr create mode 100755 orig/pq/pq.exe create mode 100644 orig/pq/pq.res create mode 100644 orig/pq/saves/Avtrep.pq3 create mode 100644 orig/pq/saves/Chillmitts [Oobag].log create mode 100644 orig/pq/saves/Chillmitts [Oobag].pq create mode 100644 orig/pq/saves/Chillmitts [Oobag].sheet create mode 100644 orig/pq/saves/Cokie [Oobag].log create mode 100644 orig/pq/saves/Cokie [Oobag].pq create mode 100644 orig/pq/saves/Cokie [Oobag].sheet create mode 100644 orig/pq/saves/Frogrox [Oobag].pq create mode 100644 orig/pq/saves/Kridfrav.pq3 create mode 100644 orig/pq/saves/Moxwhik.pq3 create mode 100644 orig/pq/saves/Oupret.pq3 create mode 100644 orig/pq/saves/Rotdrut.pq3 create mode 100644 orig/pq/saves/Utzin.pq3 create mode 100644 orig/pq/saves/Whakcrood [Spoltog].pq create mode 100644 orig/pq/saves/Ziedkrad.pq3 create mode 100644 orig/pq/screenshots.zip create mode 100644 orig/pq/swords.gif (limited to 'orig/pq') diff --git a/orig/pq/CHANGELOG b/orig/pq/CHANGELOG new file mode 100644 index 0000000..fc07b93 --- /dev/null +++ b/orig/pq/CHANGELOG @@ -0,0 +1,50 @@ +================================================== +Changes observed, forensically, from v6.2 to v6.3: +================================================== + +New items, monsters and so forth: + +Spells: + Shoelaces + History Lesson +Weapon: + Kreen +Specials: + Vulpeculum +Boring items: + writ +Monster: + Chromatic Dragon drops scales rather than mineral water + Hogbird +Races: + Hob-Hobbit replaces Greater Gnome (candidates: Gobhobbit, Hobrabbit) +Classes: + Vermineer replaces Toungeblade + Jungle Clown replaces Lowling + +Config.*: +NewGuy.*: +- Races & Classes moved into Config form from code in NewGuy + +Front.* +- Version bumped +- File extension bumped + +Main.dfm +- Moves and resizes + +Main.pas +- Cheats enabled for now +- HTTP rev number bumped +- Save ext changed +- Interplot cinematics between acts (NamedMonster & ImpressiveGuy) +- Execute named RPCs now and then ("Sir Roger the Elf") +- New leveling schedule(!) +- WinItem & WinEquip at end of each act + +Info.*: +Login.*: +SelServ.*: +Web.*: +- none + diff --git a/orig/pq/Config.dcu b/orig/pq/Config.dcu new file mode 100644 index 0000000..f7325d4 Binary files /dev/null and b/orig/pq/Config.dcu differ diff --git a/orig/pq/Config.ddp b/orig/pq/Config.ddp new file mode 100755 index 0000000..cdc0ee8 Binary files /dev/null and b/orig/pq/Config.ddp differ diff --git a/orig/pq/Config.dfm b/orig/pq/Config.dfm new file mode 100755 index 0000000..2a67ec0 --- /dev/null +++ b/orig/pq/Config.dfm @@ -0,0 +1,933 @@ +object K: TK + Left = 350 + Top = 121 + Width = 800 + Height = 567 + Caption = 'K' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 8 + Top = 116 + Width = 28 + Height = 13 + Caption = 'Spells' + end + object Label2: TLabel + Left = 168 + Top = 4 + Width = 64 + Height = 13 + Caption = 'Offense Attrib' + end + object Label3: TLabel + Left = 280 + Top = 228 + Width = 70 + Height = 13 + Caption = 'Defense Atrtrib' + end + object Label4: TLabel + Left = 140 + Top = 228 + Width = 34 + Height = 13 + Caption = 'Shields' + end + object Label5: TLabel + Left = 8 + Top = 228 + Width = 27 + Height = 13 + Caption = 'Armor' + end + object Label6: TLabel + Left = 8 + Top = 4 + Width = 41 + Height = 13 + Caption = 'Weapon' + end + object Label7: TLabel + Left = 164 + Top = 428 + Width = 40 + Height = 13 + Caption = 'Speicals' + end + object Label8: TLabel + Left = 8 + Top = 428 + Width = 47 + Height = 13 + Caption = 'Item Attrib' + end + object Label9: TLabel + Left = 320 + Top = 428 + Width = 34 + Height = 13 + Caption = 'Item Of' + end + object Label10: TLabel + Left = 172 + Top = 116 + Width = 58 + Height = 13 + Caption = 'Boring Items' + end + object Label11: TLabel + Left = 12 + Top = 344 + Width = 125 + Height = 13 + Caption = 'Monsters (name level item)' + end + object Label12: TLabel + Left = 236 + Top = 344 + Width = 162 + Height = 13 + Caption = 'Monster mods (adjustment pattern)' + end + object Label13: TLabel + Left = 324 + Top = 8 + Width = 56 + Height = 13 + Caption = 'OffenseBad' + end + object Label14: TLabel + Left = 404 + Top = 232 + Width = 59 + Height = 13 + Caption = 'DefenseBad' + end + object Label15: TLabel + Left = 480 + Top = 8 + Width = 26 + Height = 13 + Caption = 'Race' + end + object Label16: TLabel + Left = 480 + Top = 120 + Width = 25 + Height = 13 + Caption = 'Class' + end + object Label17: TLabel + Left = 328 + Top = 120 + Width = 25 + Height = 13 + Caption = 'Titles' + end + object Label18: TLabel + Left = 476 + Top = 428 + Width = 74 + Height = 13 + Caption = 'Impressive titles' + end + object Spells: TMemo + Left = 8 + Top = 132 + Width = 153 + Height = 89 + Lines.Strings = ( + 'Slime Finger' + 'Rabbit Punch' + 'Hastiness' + 'Good Move' + 'Sadness' + 'Seasick' + 'Gyp' + 'Shoelaces' + 'Innoculate' + 'Cone of Annoyance' + 'Magnetic Orb' + 'Invisible Hands' + 'Revolting Cloud' + 'Aqueous Humor' + 'Spectral Miasma' + 'Clever Fellow' + 'Lockjaw' + 'History Lesson' + 'Hydrophobia' + 'Big Sister' + 'Cone of Paste' + 'Mulligan' + 'Nestor'#39's Bright Idea' + 'Holy Batpole' + 'Tumor (Benign)' + 'Braingate' + 'Nonplus' + 'Animate Nightstand' + 'Eye of the Troglodyte' + 'Curse Name' + 'Dropsy' + 'Vitreous Humor' + 'Roger'#39's Grand Illusion' + 'Covet' + 'Astral Miasma' + 'Spectral Oyster' + 'Acrid Hands' + 'Angioplasty' + 'Grognor'#39's Big Day Off' + 'Tumor (Malignant)' + 'Animate Tunic' + 'Ursine Armor' + 'Holy Roller' + 'Tonsilectomy' + 'Curse Family' + 'Infinite Confusion') + TabOrder = 0 + WordWrap = False + end + object OffenseAttrib: TMemo + Left = 168 + Top = 20 + Width = 141 + Height = 89 + Lines.Strings = ( + 'Polished|+1' + 'Serrated|+1' + 'Heavy|+1' + 'Pronged|+2' + 'Steely|+2' + 'Vicious|+3' + 'Venomed|+4' + 'Stabbity|+4' + 'Dancing|+5' + 'Invisible|+6' + 'Vorpal|+7') + TabOrder = 1 + WordWrap = False + end + object DefenseAttrib: TMemo + Left = 280 + Top = 244 + Width = 113 + Height = 89 + Lines.Strings = ( + 'Studded|+1' + 'Banded|+2' + 'Gilded|+2' + 'Festooned|+3' + 'Holy|+4' + 'Cambric|+1' + 'Fine|+4' + 'Impressive|+5' + 'Custom|+3') + TabOrder = 2 + WordWrap = False + end + object Shields: TMemo + Left = 140 + Top = 244 + Width = 133 + Height = 89 + Lines.Strings = ( + 'Parasol|0' + 'Pie Plate|1' + 'Garbage Can Lid|2' + 'Buckler|3' + 'Plexiglass|4' + 'Fender|4' + 'Round Shield|5' + 'Carapace|5' + 'Scutum|6' + 'Propugner|6' + 'Kite Shield|7' + 'Pavise|8' + 'Tower Shield|9' + 'Baroque Shield|11' + 'Aegis|12' + 'Magnetic Field|18') + TabOrder = 3 + WordWrap = False + end + object Armors: TMemo + Left = 8 + Top = 244 + Width = 129 + Height = 89 + Lines.Strings = ( + 'Lace|1' + 'Macrame|2' + 'Burlap|3' + 'Canvas|4' + 'Flannel|5' + 'Chamois|6' + 'Pleathers|7' + 'Leathers|8' + 'Bearskin|9' + 'Ringmail|10' + 'Scale Mail|12' + 'Chainmail|14' + 'Splint Mail|15' + 'Platemail|16' + 'ABS|17' + 'Kevlar|18' + 'Titanium|19' + 'Mithril Mail|20' + 'Diamond Mail|25' + 'Plasma|30') + TabOrder = 4 + WordWrap = False + end + object Weapons: TMemo + Left = 8 + Top = 20 + Width = 153 + Height = 89 + Lines.Strings = ( + 'Stick|0' + 'Broken Bottle|1' + 'Shiv|1' + 'Sprig|1' + 'Oxgoad|1' + 'Eelspear|2' + 'Bowie Knife|2' + 'Claw Hammer|2' + 'Handpeen|2' + 'Andiron|3' + 'Hatchet|3' + 'Tomahawk|3' + 'Hackbarm|3' + 'Crowbar|4' + 'Mace|4' + 'Battleadze|4' + 'Leafmace|5' + 'Shortsword|5' + 'Longiron|5' + 'Poachard|5' + 'Baselard|5' + 'Whinyard|6' + 'Blunderbuss|6' + 'Longsword|6' + 'Crankbow|6' + 'Blibo|7' + 'Broadsword|7' + 'Kreen|7' + 'Morning Star|8' + 'Pole-adze|8' + 'Spontoon|8' + 'Bastard Sword|9' + 'Peen-arm|9' + 'Culverin|10' + 'Lance|10' + 'Halberd|11' + 'Poleax|12' + 'Bandyclef|15') + TabOrder = 5 + WordWrap = False + end + object Specials: TMemo + Left = 164 + Top = 444 + Width = 149 + Height = 89 + Lines.Strings = ( + 'Diadem' + 'Festoon' + 'Gemstone' + 'Phial' + 'Tiara' + 'Scabbard' + 'Arrow' + 'Lens' + 'Lamp' + 'Hymnal' + 'Fleece' + 'Laurel' + 'Brooch' + 'Gimlet' + 'Cobble' + 'Albatross' + 'Brazier' + 'Bandolier' + 'Tome' + 'Garnet' + 'Amethyst' + 'Candelabra' + 'Corset' + 'Sphere' + 'Sceptre' + 'Ankh' + 'Talisman' + 'Orb' + 'Gammel' + 'Ornament' + 'Brocade' + 'Galoon' + 'Bijou' + 'Spangle' + 'Gimcrack' + 'Hood' + 'Vulpeculum') + TabOrder = 6 + WordWrap = False + end + object ItemAttrib: TMemo + Left = 8 + Top = 444 + Width = 149 + Height = 89 + Lines.Strings = ( + 'Golden' + 'Gilded' + 'Spectral' + 'Astral' + 'Garlanded' + 'Precious' + 'Crafted' + 'Dual' + 'Filigreed' + 'Cruciate' + 'Arcane' + 'Blessed' + 'Reverential' + 'Lucky' + 'Enchanted' + 'Gleaming' + 'Grandiose' + 'Sacred' + 'Legendary' + 'Mythic' + 'Crystalline' + 'Austere' + 'Ostentatious' + 'One True' + 'Proverbial' + 'Fearsome' + 'Deadly' + 'Benevolent' + 'Unearthly' + 'Magnificent' + 'Iron' + 'Ormolu' + 'Puissant') + TabOrder = 7 + WordWrap = False + end + object ItemOfs: TMemo + Left = 320 + Top = 444 + Width = 149 + Height = 89 + Lines.Strings = ( + 'Foreboding' + 'Foreshadowing' + 'Nervousness' + 'Happiness' + 'Torpor' + 'Danger' + 'Craft' + 'Silence' + 'Invisibility' + 'Rapidity' + 'Pleasure' + 'Practicality' + 'Hurting' + 'Joy' + 'Petulance' + 'Intrusion' + 'Chaos' + 'Suffering' + 'Extroversion' + 'Frenzy' + 'Solitude' + 'Punctuality' + 'Efficiency' + 'Comfort' + 'Patience' + 'Internment' + 'Incarceration' + 'Misapprehension' + 'Loyalty' + 'Envy' + 'Acrimony' + 'Worry' + 'Fear' + 'Awe' + 'Guile' + 'Prurience' + 'Fortune' + 'Perspicacity' + 'Domination' + 'Submission' + 'Fealty' + 'Hunger' + 'Despair' + 'Cruelty' + 'Grob' + 'Dignard' + 'Ra' + 'the Bone' + 'Diamonique' + 'Electrum' + 'Hydragyrum') + TabOrder = 8 + WordWrap = False + end + object BoringItems: TMemo + Left = 168 + Top = 132 + Width = 149 + Height = 89 + Lines.Strings = ( + 'nail' + 'lunchpail' + 'sock' + 'I.O.U.' + 'cookie' + 'pint' + 'toothpick' + 'writ' + 'newspaper' + 'letter' + 'plank' + 'hat' + 'egg' + 'coin' + 'needle' + 'bucket' + 'ladder' + 'chicken' + 'twig' + 'dirtclod' + 'counterpane' + 'vest' + 'teratoma' + 'bunny' + 'rock' + 'pole' + 'carrot' + 'canoe' + 'inkwell' + 'hoe' + 'bandage' + 'trowel' + 'towel' + 'planter box' + 'anvil' + 'axle' + 'tuppence' + 'casket' + 'nosegay' + 'trinket' + 'credenza' + 'writ') + TabOrder = 9 + WordWrap = False + end + object Monsters: TMemo + Left = 8 + Top = 360 + Width = 221 + Height = 61 + Lines.Strings = ( + 'Anhkheg|6|chitin' + 'Ant|0|antenna' + 'Ape|4|ass' + 'Baluchitherium|14|ear' + 'Beholder|10|eyestalk' + 'Black Pudding|10|saliva' + 'Blink Dog|4|eyelid' + 'Cub Scout|1|neckercheif' + 'Girl Scout|2|cookie' + 'Boy Scout|3|merit badge' + 'Eagle Scout|4|merit badge' + 'Bugbear|3|skin' + 'Bugboar|3|tusk' + 'Boogie|3|slime' + 'Camel|2|hump' + 'Carrion Crawler|3|egg' + 'Catoblepas|6|neck' + 'Centaur|4|rib' + 'Centipede|0|leg' + 'Cockatrice|5|wattle' + 'Couatl|9|wing' + 'Crayfish|0|antenna' + 'Demogorgon|53|tentacle' + 'Jubilex|17|gel' + 'Manes|1|tooth' + 'Orcus|27|wand' + 'Succubus|6|bra' + 'Vrock|8|neck' + 'Hezrou|9|leg' + 'Glabrezu|10|collar' + 'Nalfeshnee|11|tusk' + 'Marilith|7|arm' + 'Balor|8|whip' + 'Yeenoghu|25|flail' + 'Asmodeus|52|leathers' + 'Baalzebul|43|pants' + 'Barbed Devil|8|flame' + 'Bone Devil|9|hook' + 'Dispater|30|matches' + 'Erinyes|6|thong' + 'Geryon|30|cornucopia' + 'Malebranche|5|fork' + 'Ice Devil|11|snow' + 'Lemure|3|blob' + 'Pit Fiend|13|seed' + 'Anklyosaurus|9|tail' + 'Brontosaurus|30|brain' + 'Diplodocus|24|fin' + 'Elasmosaurus|15|neck' + 'Gorgosaurus|13|arm' + 'Iguanadon|6|thumb' + 'Megalosaurus|12|jaw' + 'Monoclonius|8|horn' + 'Pentasaurus|12|head' + 'Stegosaurus|18|plate' + 'Triceratops|16|horn' + 'Tyranosauraus Rex|18|forearm' + 'Djinn|7|lamp' + 'Doppleganger|4|face' + 'Black Dragon|7|*' + 'Plaid Dragon|7|sporrin' + 'Blue Dragon|9|*' + 'Beige Dragon|9|*' + 'Brass Dragon|7|pole' + 'Tin Dragon|8|*' + 'Bronze Dragon|9|medal' + 'Chromatic Dragon|16|scale' + 'Copper Dragon|8|loafer' + 'Gold Dragon|8|filling' + 'Green Dragon|8|*' + 'Platinum Dragon|21|*' + 'Red Dragon|10|cocktail' + 'Silver Dragon|10|*' + 'White Dragon|6|tooth' + 'Dragon Turtle|13|shell' + 'Dryad|2|acorn' + 'Dwarf|1|drawers' + 'Eel|2|sashimi' + 'Efreet|10|cinder' + 'Sand Elemental|8|glass' + 'Bacon Elemental|10|bit' + 'Porn Elemental|12|lube' + 'Cheese Elemental|14|curd' + 'Hair Elemental|16|follicle' + 'Swamp Elf|1|lilypad' + 'Brown Elf|1|tusk' + 'Sea Elf|1|jerkin' + 'Ettin|10|fur' + 'Frog|0|leg' + 'Violet Fungi|3|spore' + 'Gargoyle|4|gravel' + 'Gelatinous Cube|4|jam' + 'Ghast|4|vomit' + 'Ghost|10|*' + 'Ghoul|2|muscle' + 'Humidity Giant|12|drops' + 'Beef Giant|11|steak' + 'Quartz Giant|10|crystal' + 'Porcelain Giant|9|fixture' + 'Rice Giant|8|grain' + 'Cloud Giant|12|condensation' + 'Fire Giant|11|cigarettes' + 'Frost Giant|10|snowman' + 'Hill Giant|8|corpse' + 'Stone Giant|9|hatchling' + 'Storm Giant|15|barometer' + 'Mini Giant|4|pompadour' + 'Gnoll|2|collar' + 'Gnome|1|hat' + 'Goblin|1|ear' + 'Grid Bug|1|carapace' + 'Jellyrock|9|seedling' + 'Beer Golem|15|foam' + 'Oxygen Golem|17|platelet' + 'Cardboard Golem|14|recycling' + 'Rubber Golem|16|ball' + 'Leather Golem|15|fob' + 'Gorgon|8|testicle' + 'Gray Ooze|3|gravy' + 'Green Slime|2|sample' + 'Griffon|7|nest' + 'Banshee|7|larynx' + 'Harpy|3|mascara' + 'Hell Hound|5|tongue' + 'Hippocampus|4|mane' + 'Hippogriff|3|egg' + 'Hobgoblin|1|patella' + 'Homonculus|2|fluid' + 'Hydra|8|gyrum' + 'Imp|2|tail' + 'Invisible Stalker|8|*' + 'Iron Peasant|3|chaff' + 'Jumpskin|3|shin' + 'Kobold|1|penis' + 'Leprechaun|1|wallet' + 'Leucrotta|6|hoof' + 'Lich|11|crown' + 'Lizard Man|2|tail' + 'Lurker|10|sac' + 'Manticore|6|spike' + 'Mastodon|12|tusk' + 'Medusa|6|eye' + 'Multicell|2|dendrite' + 'Pirate|1|booty' + 'Berserker|1|shirt' + 'Caveman|2|club' + 'Dervish|1|robe' + 'Merman|1|trident' + 'Mermaid|1|gills' + 'Mimic|9|hinge' + 'Mind Flayer|8|tentacle' + 'Minotaur|6|map' + 'Yellow Mold|1|spore' + 'Morkoth|7|teeth' + 'Mummy|6|gauze' + 'Naga|9|rattle' + 'Nebbish|1|belly' + 'Neo-Otyugh|11|organ ' + 'Nixie|1|webbing' + 'Nymph|3|hanky' + 'Ochre Jelly|6|nucleus' + 'Octopus|2|beak' + 'Ogre|4|talon' + 'Ogre Mage|5|apparel' + 'Orc|1|snout' + 'Otyugh|7|organ' + 'Owlbear|5|feather' + 'Pegasus|4|aileron' + 'Peryton|4|antler' + 'Piercer|3|tip' + 'Pixie|1|dust' + 'Man-o-war|3|tentacle' + 'Purple Worm|15|dung' + 'Quasit|3|tail' + 'Rakshasa|7|pajamas' + 'Rat|0|tail' + 'Remorhaz|11|protrusion' + 'Roc|18|wing' + 'Roper|11|twine' + 'Rot Grub|1|eggsac' + 'Rust Monster|5|shavings' + 'Satyr|5|hoof' + 'Sea Hag|3|wart' + 'Silkie|3|fur' + 'Shadow|3|silhouette' + 'Shambling Mound|10|mulch' + 'Shedu|9|hoof' + 'Shrieker|3|stalk' + 'Skeleton|1|clavicle' + 'Spectre|7|vestige' + 'Sphinx|10|paw' + 'Spider|0|web' + 'Sprite|1|can' + 'Stirge|1|proboscis' + 'Stun Bear|5|tooth' + 'Stun Worm|2|trode' + 'Su-monster|5|tail' + 'Sylph|3|thigh' + 'Titan|20|sandal' + 'Trapper|12|shag' + 'Treant|10|acorn' + 'Triton|3|scale' + 'Troglodyte|2|tail' + 'Troll|6|hide' + 'Umber Hulk|8|claw' + 'Unicorn|4|blood' + 'Vampire|8|pancreas' + 'Wight|4|lung' + 'Will-o-the-Wisp|9|wisp' + 'Wraith|5|finger' + 'Wyvern|7|wing' + 'Xorn|7|jaw' + 'Yeti|4|fur' + 'Zombie|2|forehead' + 'Wasp|0|stinger' + 'Rat|1|tail' + 'Bunny|0|ear' + 'Moth|0|dust' + 'Beagle|0|collar' + 'Midge|0|corpse' + 'Ostrich|1|beak' + 'Billy Goat|1|beard' + 'Bat|1|wing' + 'Koala|2|heart' + 'Wolf|2|paw' + 'Whippet|2|collar' + 'Uruk|2|boot' + 'Poroid|4|node' + 'Moakum|8|frenum' + 'Fly|0|*' + 'Hogbird|3|curl') + TabOrder = 10 + WordWrap = False + end + object MonMods: TMemo + Left = 232 + Top = 360 + Width = 221 + Height = 61 + Lines.Strings = ( + '-4 f'#339'tal *' + '-4 dying *' + '-3 crippled *' + '-3 baby *' + '-2 adolescent' + '-2 very sick *' + '-1 lesser *' + '-1 undernourished *' + '+1 greater *' + '+1 * Elder' + '+2 war *' + '+2 Battle-*' + '+3 Were-*' + '+3 undead *' + '+4 giant *' + '+4 * Rex') + TabOrder = 11 + WordWrap = False + end + object OffenseBad: TMemo + Left = 316 + Top = 20 + Width = 141 + Height = 89 + Lines.Strings = ( + 'Dull|-2' + 'Tarnished|-1' + 'Rusty|-3' + 'Padded|-5' + 'Bent|-4' + 'Mini|-4' + 'Rubber|-6' + 'Nerf|-7' + 'Unbalanced|-2') + TabOrder = 12 + WordWrap = False + end + object DefenseBad: TMemo + Left = 396 + Top = 244 + Width = 141 + Height = 89 + Lines.Strings = ( + 'Holey|-1' + 'Patched|-1' + 'Threadbare|-2' + 'Faded|-1' + 'Rusty|-3' + 'Motheaten|-3' + 'Mildewed|-2' + 'Torn|-3' + 'Dented|-3' + 'Cursed|-5' + 'Plastic|-4' + 'Cracked|-4' + 'Warped|-3' + 'Corroded|-3') + TabOrder = 13 + WordWrap = False + end + object Races: TMemo + Left = 480 + Top = 24 + Width = 249 + Height = 89 + Lines.Strings = ( + 'Half Orc|HP Max' + 'Half Man|CHA' + 'Half Halfling|DEX' + 'Double Hobbit|STR' + 'Hob-Hobbit|DEX,CON' + 'Low Elf|CON' + 'Dung Elf|WIS' + 'Talking Pony|MP Max,INT' + 'Gyrognome|DEX' + 'Lesser Dwarf|CON' + 'Crested Dwarf|CHA' + 'Eel Man|DEX' + 'Panda Man|CON,STR' + 'Trans-Kobold|WIS' + 'Enchanted Motorcycle|MP Max' + 'Will o'#39' the Wisp|WIS' + 'Battle-Finch|DEX,INT' + 'Double Wookiee|STR' + 'Skraeling|WIS' + 'Demicanadian|CON' + 'Land Squid|STR,HP Max') + TabOrder = 14 + end + object Klasses: TMemo + Left = 480 + Top = 136 + Width = 249 + Height = 89 + Lines.Strings = ( + 'Ur-Paladin|WIS,CON' + 'Voodoo Princess|INT,CHA' + 'Robot Monk|STR' + 'Mu-Fu Monk|DEX' + 'Mage Illusioner|INT,MP Max' + 'Shiv-Knight|DEX' + 'Inner Mason|CON' + 'Fighter/Organist|CHA,STR' + 'Puma Burgular|DEX' + 'Runeloremaster|WIS' + 'Hunter Strangler|DEX,INT' + 'Battle-Felon|STR' + 'Tickle-Mimic|WIS,INT' + 'Slow Poisoner|CON' + 'Bastard Lunatic|CON' + 'Jungle Clown|DEX,CHA' + 'Birdrider|WIS' + 'Vermineer|INT') + TabOrder = 15 + end + object Titles: TMemo + Left = 328 + Top = 136 + Width = 57 + Height = 81 + Lines.Strings = ( + 'Mr.' + 'Mrs.' + 'Sir' + 'Sgt.' + 'Ms.' + 'Captain' + 'Chief' + 'Admiral' + 'Saint') + TabOrder = 16 + end + object ImpressiveTitles: TMemo + Left = 476 + Top = 442 + Width = 149 + Height = 89 + Lines.Strings = ( + 'King' + 'Queen' + 'Lord' + 'Lady' + 'Viceroy' + 'Mayor' + 'Prince' + 'Princess' + 'Chief' + 'Boss' + 'Archbishop') + TabOrder = 17 + WordWrap = False + end +end diff --git a/orig/pq/Config.pas b/orig/pq/Config.pas new file mode 100755 index 0000000..1f28f02 --- /dev/null +++ b/orig/pq/Config.pas @@ -0,0 +1,57 @@ +unit Config; +{ copyright (c)2002 Eric Fredricksen all rights reserved } + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ComCtrls; + +type + TK = class(TForm) + Spells: TMemo; + Label1: TLabel; + OffenseAttrib: TMemo; + Label2: TLabel; + DefenseAttrib: TMemo; + Label3: TLabel; + Shields: TMemo; + Label4: TLabel; + Armors: TMemo; + Label5: TLabel; + Weapons: TMemo; + Label6: TLabel; + Specials: TMemo; + Label7: TLabel; + ItemAttrib: TMemo; + Label8: TLabel; + ItemOfs: TMemo; + Label9: TLabel; + BoringItems: TMemo; + Label10: TLabel; + Monsters: TMemo; + MonMods: TMemo; + Label11: TLabel; + Label12: TLabel; + OffenseBad: TMemo; + Label13: TLabel; + DefenseBad: TMemo; + Label14: TLabel; + Races: TMemo; + Label15: TLabel; + Label16: TLabel; + Klasses: TMemo; + Label17: TLabel; + Titles: TMemo; + ImpressiveTitles: TMemo; + Label18: TLabel; + end; + +var + K: TK; + +implementation + +{$R *.dfm} + +end. diff --git a/orig/pq/DelphiZLib.zip b/orig/pq/DelphiZLib.zip new file mode 100644 index 0000000..7f0c7d2 Binary files /dev/null and b/orig/pq/DelphiZLib.zip differ diff --git a/orig/pq/Front.dcu b/orig/pq/Front.dcu new file mode 100644 index 0000000..2437113 Binary files /dev/null and b/orig/pq/Front.dcu differ diff --git a/orig/pq/Front.ddp b/orig/pq/Front.ddp new file mode 100644 index 0000000..cdc0ee8 Binary files /dev/null and b/orig/pq/Front.ddp differ diff --git a/orig/pq/Front.dfm b/orig/pq/Front.dfm new file mode 100644 index 0000000..425f1c7 --- /dev/null +++ b/orig/pq/Front.dfm @@ -0,0 +1,4507 @@ +object FrontForm: TFrontForm + Left = 274 + Top = 206 + AlphaBlendValue = 100 + BorderIcons = [] + BorderStyle = bsNone + BorderWidth = 2 + ClientHeight = 255 + ClientWidth = 452 + Color = clRed + TransparentColorValue = clWhite + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + Icon.Data = { + 0000010001002020000000000000A80800001600000028000000200000004000 + 0000010008000000000080040000000000000000000000000000000000000000 + 0000000080000080000000808000800000008000800080800000C0C0C000C0DC + C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222 + 220029292900555555004D4D4D004242420039393900807CFF005050FF009300 + D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000 + CC00003300000033330000336600003399000033CC000033FF00006600000066 + 330000666600006699000066CC000066FF000099000000993300009966000099 + 99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC + FF0000FF660000FF990000FFCC00330000003300330033006600330099003300 + CC003300FF00333300003333330033336600333399003333CC003333FF003366 + 00003366330033666600336699003366CC003366FF0033990000339933003399 + 6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC + CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600 + 330066006600660099006600CC006600FF006633000066333300663366006633 + 99006633CC006633FF00666600006666330066666600666699006666CC006699 + 00006699330066996600669999006699CC006699FF0066CC000066CC330066CC + 990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00 + CC009999000099339900990099009900CC009900000099333300990066009933 + CC009900FF00996600009966330099336600996699009966CC009933FF009999 + 330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC + 990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF + FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33 + 6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66 + CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC + 0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF + 6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33 + 3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66 + 9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99 + FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF + 6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF + 66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7 + D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080 + 80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A + 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C + 0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311 + 15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313 + 2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22 + 23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A + 0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A + 0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A + 0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A + 0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A + 0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A + 0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A + 0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A + 0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A + 0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A + 0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A + 0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A + 0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A + 0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A + 0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A + 0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A + 0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A + 0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A + 0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A + 0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF + FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF + FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00 + 003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03 + C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87} + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 452 + Height = 255 + Align = alClient + BevelInner = bvLowered + Color = clWhite + TabOrder = 0 + object Label2: TLabel + Left = 2 + Top = 240 + Width = 448 + Height = 13 + Align = alBottom + Alignment = taCenter + Caption = #169' 2003 Eric Fredricksen - v6.3' + Color = clWhite + Font.Charset = DEFAULT_CHARSET + Font.Color = 11382189 + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentColor = False + ParentFont = False + end + object HomeLink: TLabel + Left = 260 + Top = 208 + Width = 172 + Height = 23 + Cursor = crHandPoint + Alignment = taCenter + AutoSize = False + Caption = 'http://progressquest.com/' + Font.Charset = ANSI_CHARSET + Font.Color = clBlue + Font.Height = -16 + Font.Name = 'Times New Roman' + Font.Style = [fsUnderline] + ParentFont = False + OnClick = HomeLinkClick + end + object Label1: TLabel + Left = 9 + Top = 250 + Width = 3 + Height = 13 + Font.Charset = DEFAULT_CHARSET + Font.Color = clSkyBlue + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + end + object Button1: TButton + Left = 271 + Top = 28 + Width = 154 + Height = 25 + Caption = '&New Game (Single player)' + ModalResult = 1 + TabOrder = 0 + end + object Button2: TButton + Left = 271 + Top = 112 + Width = 154 + Height = 25 + Caption = '&Load Game' + ModalResult = 4 + TabOrder = 1 + end + object Button4: TButton + Left = 271 + Top = 160 + Width = 154 + Height = 25 + Caption = 'E&xit' + ModalResult = 2 + TabOrder = 2 + end + object Button3: TButton + Left = 271 + Top = 64 + Width = 154 + Height = 25 + Caption = 'New Game (&Multiplayer)' + ModalResult = 10 + TabOrder = 3 + end + object Panel2: TPanel + Left = 2 + Top = 2 + Width = 251 + Height = 238 + Align = alLeft + BevelOuter = bvNone + BorderWidth = 10 + Caption = 'Panel2' + ParentColor = True + TabOrder = 4 + object Logo: TImage + Left = 10 + Top = 10 + Width = 231 + Height = 200 + Cursor = crHandPoint + Align = alTop + AutoSize = True + Center = True + Picture.Data = { + 07544269746D617096160200424D96160200000000003600000028000000E300 + 0000C8000000010018000000000060160200120B0000120B0000000000000000 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF005169FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFEFEFEFBFBFBF8F8F8F3F3F3EDEDEDE7E7E7E2E2E2DFDFDFDEDEDEE0E0 + E0E4E4E4E9E9E9EFEFEFF3F3F3F7F7F7FAFAFAFCFCFCFEFEFEFEFEFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFEFEFEFEFEFEFCFCFCFAFAFAF7F7F7F3F3F3EFEFEFE9E9E9E4E4 + E4E0E0E0DEDEDEDFDFDFE2E2E2E7E7E7EDEDEDF3F3F3F8F8F8FBFBFBFEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFAFAFAF5F5F5EDEDEDE5E5E5DBDBDBD2D2 + D2CCCCCCC5C5C5C5C5C5C7C7C7CDCDCDD4D4D4DCDCDCE3E3E3EAEAEAF0F0F0F5 + F5F5F8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF8F8F8F5F5F5F0F0F0EAEA + EAE3E3E3DCDCDCD4D4D4CECECEC7C7C7C5C5C5C5C5C5CBCBCBD2D2D2DBDBDBE5 + E5E5EDEDEDF5F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDF9F9F9F2F2F2E9E9 + E9DDDDDDD1D1D1C3C3C3B5B5B5ABABABA5A5A5A4A4A4A7A7A7AEAEAEB8B8B8C2 + C2C2CDCDCDD7D7D7E0E0E0E9E9E9F2F2F2F8F8F8FCFCFCFEFEFEFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCF8F8 + F8F2F2F2E9E9E9E0E0E0D7D7D7CDCDCDC2C2C2B8B8B8AEAEAEA7A7A7A5A5A5A7 + A7A7ABABABB5B5B5C2C2C2D0D0D0DDDDDDE9E9E9F2F2F2F9F9F9FDFDFDFEFEFE + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFEFE + FEF9F9F9F2F2F2E7E7E7D8D8D8C7C7C7B6B6B6A6A6A69696968A8A8A83838383 + 83838686868D8D8D989898A4A4A4B1B1B1BFBFBFCCCCCCDBDBDBE9E9E9F2F2F2 + FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFEFEFEFAFAFAF2F2F2E9E9E9DBDBDBCCCCCCBFBFBFB1B1B1A4A4A498 + 98988D8D8D8787878585858484848A8A8A959595A4A4A4B5B5B5C7C7C7D8D8D8 + E7E7E7F2F2F2F9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFF + FFFFFFFFFFFFFFFEFEFEFBFBFBF4F4F4E8E8E8D7D7D7C3C3C3ADADAD9A9A9A86 + 86867777776E6E6E6868686767676A6A6A707070797979848484929292A2A2A2 + B5B5B5C9C9C9DDDDDDECECECF7F7F7FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF7F7F7ECECECDDDDDDC9C9C9B5 + B5B5A2A2A29292928484847979797070706A6A6A6767676A6A6A6E6E6E777777 + 868686989898ADADADC3C3C3D7D7D7E8E8E8F4F4F4FBFBFBFEFEFEFFFFFFFFFF + FFFFFFFFFFFFFF6B5E6BFFFFFFFFFFFFFFFFFFFDFDFDF7F7F7ECECECDADADAC5 + C5C5ABABAB9393937D7D7D7171715F5F5F5D5D5D595959555555555555595959 + 6060606969697777778989899E9E9EB9B9B9D1D1D1E5E5E5F3F3F3FCFCFCFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF3 + F3F3E5E5E5D1D1D1B9B9B99E9E9E8989897777776A6A6A6565655D5D5D555555 + 5858585353535858585F5F5F6C6C6C7D7D7D939393ABABABC5C5C5DADADAECEC + ECF7F7F7FDFDFDFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFEFEFEFA + FAFAF0F0F0E0E0E0CBCBCBB0B0B09494947B7B7B7C7C7C6F6F6F707070494849 + 6060606767674E4E4E4A4A4A4F4F4F5656566262627474748C8C8CA9A9A9C6C6 + C6DDDDDDEFEFEFF9F9F9FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE + FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE + FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFEFEFEFEFEFEF9F9F9EFEFEFDDDDDDC6C6C6A9A9A98C8C8C747474666666 + 6F6F6F6363634948496D6D6D6666666666664A4A4A4F4F4F5858586767677B7B + 7B949494B0B0B0CBCBCBE0E0E0F0F0F0FAFAFAFEFEFEFFFFFFFFFFFFFFFFFF80 + 0080FFFFFFFFFFFFFCFCFCF5F5F5E8E8E8D4D4D4B9B9B99C9C9C8D8D8D676867 + 6A696A8E8E8E888788CCCCCC5251521E1F1E4D4D4D5757575353534C4C4C5B5B + 5B6565657D7D7D9A9A9AB8B8B8D1D1D1E5E5E5F2F2F2F9F9F9FBFBFBFEFEFEFE + FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFEFEFEFDFDFDFBFBFBF9F9F9F8F8F8F7F7F7F7F7F7F8F8F8FAFAFAFCFC + FCFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFEFEFEFDFDFDFCFCFCFAFAFAF8F8F8F7F7F7F7F7F7F8F8F8F9F9F9FBFB + FBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFEFEFEFEFEFEFBFBFBF9F9F9F2F2F2E5E5E5D1D1D1AFAEAF + 9B9B9B8081807272725252521E1F1E525152CCCCCC8887888D8D8D6867685759 + 575F605F4B4B4B5656566868688080809C9C9CB9B9B9D4D4D4E8E8E8F5F5F5FC + FCFCFFFFFFFFFFFFFFFFFF004F7BFFFFFFFEFEFEFBFBFBF0F0F0E0E0E0C8C8C8 + A6A6A69696965A595A838283BDBEBDCDCDCDD7D7D7AEAFAE817F810000001C1B + 1C4140417070705B5B5B5B5B5B6160616F6F6F8A8A8AA7A7A7C1C1C1D6D6D6E5 + E5E5EFEFEFF5F5F5F9F9F9FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDF9F9F9F5F5F5F0F0F0ECECECE9E9 + E9EAEAEAECECECF0F0F0F5F5F5F9F9F9FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFBFBFBF9F9F9F5F5F5F0F0F0ECECECEAEA + EAE9E9E9ECECECF0F0F0F5F5F5F9F9F9FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCF9F9F9F5F5F5EFEFEF + E5E5E5D6D6D6A2A1A27574756E6E6E7B7C7B4645461C1B1C000000817F81AEAF + AED7D7D7CDCDCDBDBEBD8180814D4D4D6A696A4F4F4F5A5A5A6F6F6F8A8A8AAA + AAAAC8C8C8E0E0E0F0F0F0FBFBFBFEFEFEFFFFFFFFFFFF800080FFFFFFFEFEFE + F8F8F8ECECECD9D9D9BDBDBD6464643A3A3A0F0E0F737273A2A2A27A7A7A7C7C + 7C9A9A9A797B79171717504F504F4F4F9797977776775252526E6E6E6464647B + 7B7B939393ACACACC1C1C1D1D1D1DEDEDEE8E8E8F0F0F0F6F6F6FBFBFBFDFDFD + FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9F9F9F3F3 + F3EBEBEBE2E2E2DADADAD6D6D6D6D6D6DADADAE1E1E1E9E9E9F2F2F2F8F8F8FB + FBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF8F8F8F2F2 + F2E9E9E9E1E1E1DBDBDBD6D6D6D6D6D6DADADAE2E2E2EBEBEBF3F3F3F9F9F9FD + FDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFBFBFB + F6F6F6F0F0F0E8E8E8DEDEDED1D1D1C1C1C19191915252527776779797974F4F + 4F504F50171717797B799A9A9A7C7C7C7A7A7AA2A2A27372730F0E0F32323240 + 40405252526565657E7E7E9E9E9EBDBDBDD9D9D9ECECECF8F8F8FEFEFEFFFFFF + FFFFFF000080FFFFFFFEFEFEF7F7F7E9E9E9D4D4D4ABABAB6261622E2E2E1A19 + 1A909090919091302F304746478888886E6C6E2C2C2C8384838E8E8E727272AD + ACAD5151516B6B6B5B5B5B6B6B6B7E7E7E929292A6A6A6B7B7B7C7C7C7D5D5D5 + E1E1E1ECECECF3F3F3F9F9F9FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFEFEFEFBFBFBF4F4F4E9E9E9DCDCDCCDCDCDC1C1C1BBBBBBBBBBBBC1C1C1CD + CDCDDBDBDBE8E8E8F2F2F2F9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFEFEFEF9F9F9F2F2F2E8E8E8DBDBDBCDCDCDC1C1C1BCBCBCBABABAC1C1C1CD + CDCDDCDCDCE9E9E9F4F4F4FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FEFEFEFCFCFCF9F9F9F3F3F3ECECECE1E1E1D5D5D5C7C7C7B7B7B7A6A6A68E8E + 8E535353ADACAD7272728E8E8E8384832C2C2C6E6C6E888888474647302F3091 + 90919090901A191A2E2E2E5F5F5F565656606060797979989898B8B8B8D4D4D4 + E9E9E9F7F7F7FEFEFEFFFFFFFFFFFF800080FFFFFFFEFEFEF7F7F7E9E9E9D5D5 + D5A1A0A18A898A878687898889D5D5D58787877776779B9D9B8181814D4C4D3D + 3D3DA9ABA9807D80B3B3B3A09FA06665665556555050505B5B5B6A6A6A7A7A7A + 8A8A8A999999AAAAAABBBBBBCCCCCCDADADAE7E7E7F1F1F1F7F7F7FBFBFBFDFD + FDFEFEFEFFFFFFFFFFFFFEFEFEFCFCFCF6F6F6EBEBEBDBDBDBC9C9C9B4B4B4A4 + A4A49C9C9C9C9C9CA5A5A5B6B6B6CACACADDDDDDECECECF6F6F6FCFCFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF6F6F6ECECECDDDDDDCACACAB6B6B6A5 + A5A59D9D9D9C9C9CA5A5A5B4B4B4C8C8C8DBDBDBEBEBEBF6F6F6FCFCFCFEFEFE + FFFFFFFFFFFFFEFEFEFDFDFDFBFBFBF7F7F7F1F1F1E7E7E7DADADACDCDCDBCBC + BCABABAB999999898989757575666566A09FA0B3B3B3807D80A9ABA93D3D3D4D + 4C4D8181819B9D9B777677878787D5D5D58988898786878A898A828282616161 + 7A7A7A989898B9B9B9D5D5D5E9E9E9F7F7F7FEFEFEFFFFFFFFFFFF000080FFFF + FFFEFEFEF8F8F8ECECECE0E0E0B5B7B5454545A4A3A4D3D5D3ACACACB1B2B1D4 + D5D4E9E9E9B6B5B63F3D3F7978799495947877789595958A888A2625263A3A3A + 4848484E4E4E5A5A5A6666667171717E7E7E8C8C8C9E9E9EB1B1B1C3C3C3D4D4 + D4E2E2E2ECECECF2F2F2F7F7F7FAFAFAFCFCFCFDFDFDFCFCFCF8F8F8EFEFEFE0 + E0E0CCCCCCB4B4B49B9B9B8888888181818181818E8E8EA4A4A4BDBDBDD4D4D4 + E7E7E7F4F4F4FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF4F4F4E7 + E7E7D4D4D4BDBDBDA3A3A38E8E8E8282828181818888889B9B9BB3B3B3CBCBCB + E0E0E0EFEFEFF8F8F8FCFCFCFDFDFDFCFCFCFAFAFAF7F7F7F2F2F2ECECECE2E2 + E2D4D4D4C4C4C4B3B3B3A1A1A18E8E8E7C7C7C6F6F6F4B4A4B2625268A888A95 + 95957877789495947978793F3D3FB6B5B6E9E9E9D4D5D4B1B2B1ACACACD3D5D3 + A4A3A4454545B5B7B5919191838383A1A1A1BFBFBFDADADAECECECF8F8F8FEFE + FEFFFFFFFFFFFF033304FFFFFFFEFEFEFAFAFAF2F2F2FAFAFAB1B2B129292971 + 7071C8C8C8999999DFE0DFE0E1E0E1E1E15B595B5F5D5FA4A3A4AAABAAB6B7B6 + BDBDBD7D7D7D3736374543455F5F5F4C4D4C4B4B4B5252525959596464647171 + 71838383969696A8A8A8BBBBBBCBCBCBD9D9D9E3E3E3EAEAEAEFEFEFF3F3F3F5 + F5F5F5F5F5EFEFEFE3E3E3D0D0D0B8B8B89E9E9E8383837272726969696E6E6E + 7F7F7F999999B5B5B5D1D1D1E5E5E5F3F3F3FBFBFBFEFEFEFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFEFEFEFBFBFBF3F3F3E5E5E5D0D0D0B4B4B49898987F7F7F707070696969 + 7272728383839D9D9DB8B8B8D0D0D0E3E3E3EFEFEFF5F5F5F5F5F5F3F3F3EFEF + EFEAEAEAE3E3E3D9D9D9CBCBCBBBBBBBA8A8A89595958383837171716868686A + 6A6A4543453736377D7D7DBDBDBDB6B7B6AAABAAA4A3A45F5D5F5B595BE1E1E1 + E0E1E0DFE0DF999999C8C8C8717071292929B1B2B1E8E8E8919191AFAFAFCBCB + CBE2E2E2F2F2F2FAFAFAFEFEFEFFFFFFFFFFFF000080FFFFFFFEFEFEFCFCFCFA + FAFAEAEAEA828282777777434343757475858585D3D4D3EBECEB919091222122 + 6463649F9D9F8C8B8CE5E7E5E6E6E6898989898989CBCBCB4B4B4B6D6D6D5F5F + 5F4E4E4E5555555252525C5C5C6969697C7C7C8D8D8D9E9E9EB0B0B0BFBFBFCB + CBCBD6D6D6DDDDDDE3E3E3E6E6E6E6E6E6DFDFDFD1D1D1BDBDBDAAAAAAA0A0A0 + 7B7B7B7070706F6F6F656565787878959595B3B3B3D0D0D0E6E6E6F4F4F4FCFC + FCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCF4F4F4E6E6E6D0D0D0B5B5B5 + 9B9C9B8181818A898A6C6C6C6060606F6F6F878787A2A2A2BCBCBCD1D1D1DFDF + DFE6E6E6E6E6E6E3E3E3DDDDDDD6D6D6CCCCCCC0C0C0B0B0B09E9E9E8C8C8C80 + 80806E6E6E7272727676764C4C4CCBCBCB898989898989E6E6E6E5E7E58C8B8C + 9F9D9F646364222122919091EBECEBD3D4D38585857574754343437777778282 + 82EAEAEACFCFCFBEBEBED7D7D7EAEAEAF6F6F6FCFCFCFEFEFEFFFFFFFFFFFF80 + 0080FFFFFFFEFEFEFEFEFEFBFBFBE0DFE05F5F5FCDCDCD707070414141595859 + 8283828C8A8C403F404442446D6D6D747374525152C7C8C7A9A8A98081809F9F + 9FA3A2A35151512C2B2C5353534040406666665858584E4E4E56565663636372 + 7272828282929292A1A1A1AEAEAEBABABAC3C3C3CBCBCBCFCFCFCFCFCFC9C9C9 + B9B9B9A4A4A48E8E8E5554553535356160616766676D6C6D7D7D7D989898B8B8 + B8D4D4D4E9E9E9F6F6F6FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFC + F6F6F6DBDBDB9D9C9D8382836B6A6B3636365251527373735454545F5F5F7676 + 768C8C8CA4A4A4B9B9B9C8C8C8CFCFCFCFCFCFCBCBCBC3C3C3BABABAAFAFAFA1 + A1A19292928282827B7B7B7676764545455756572C2B2C515151A3A2A39F9F9F + 808180A9A8A9C7C8C75251527473746D6D6D444244403F408C8A8C8283825958 + 59414141707070CDCDCD5F5F5FDDDCDDE4E4E4CECECEE3E3E3F2F2F2FAFAFAFE + FEFEFEFEFEFFFFFFFFFFFF000080FFFFFFFFFFFFFEFEFEFEFEFEE1E0E1616061 + D8D8D89D9D9D727372636463323232202020242424949494C3C6C3BFBEBFA8A8 + A87D7C7D7675769496948C8D8C888A88949494918F914A494A6A6A6A5B5B5B65 + 64655757574B4B4B5858585C5C5C6B6B6B7777778282828E8E8E999999A4A4A4 + ACACACB1B1B1B3B3B3ABABAB9F9F9F9696963E3F3E2120216969694F4E4F8282 + 826564656E6F6EA0A0A0BFBFBFD9D9D9ECECECF8F8F8FDFDFDFEFEFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFEFEFEFDFDFDF6F6F69091906968698282824F4E4F6969692120 + 21393A396566655656566464647878788C8C8C9E9E9EABABABB2B2B2B1B1B1AC + ACACA5A5A59B9B9B8E8E8E8585857575757676766D6C6D5B5B5B6A6A6A4A494A + 918F91949494888A888C8D8C9496947675767D7C7DA8A8A8BFBEBFC3C6C39494 + 942424242020203232326364637273729D9D9DD8D8D8545354C9C8C9D7D7D7DB + DBDBECECECF8F8F8FDFDFDFEFEFEFFFFFFFFFFFFFFFFFF00F50CFFFFFFFFFFFF + FFFFFFFEFEFEFBFBFB818181898989B8B8B89F9F9FC1C3C16A6A6A0909094141 + 41858585B6B7B6F5F5F5E4E6E4706F707D7E7D999B99B1B2B1BABDBADBDDDBB2 + B2B27D7D7DB7B8B7E4E4E47F7F7F4C4C4C6F6F6F6A6A6A4E4E4E5858585F5F5F + 6868687373737D7D7D8383838A8A8A8F8F8F9292928C8C8C8383836162612625 + 267B7C7BA4A4A4BABABA9695965656566D6D6DA5A5A5BFBFBFDBDBDBECECECF8 + F8F8FCFCFCFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFCFCFCF6F6F68C8C8C5656 + 56969596BABABAA4A4A47B7C7B26252652525252535256565666666673737381 + 81818C8C8C9292929191918B8B8B8484847C7C7C7171718282827F7F7F565656 + 7F7F7FE4E4E4B7B8B77D7D7DB2B2B2DBDDDBBABDBAB1B2B1999B997D7E7D706F + 70E4E6E4F5F5F5B6B7B68585854141410909096A6A6AC1C3C19F9F9FB8B8B889 + 8989646364B6B6B6D2D2D2E6E6E6F4F4F4FBFBFBFEFEFEFFFFFFFFFFFFFFFFFF + FFFFFF000080FFFFFFFFFFFFFFFFFFFEFEFEFDFDFDB5B4B53C3A3CD1D1D18F8E + 8FBFBEBF5352532A2A2A9696966E6D6E656365ECEDECC8CAC8838383727272A2 + A2A2C5C5C5D2D2D29E9F9E797A79656565C8C9C8D7D7D78181810808085B5B5B + 7171715353534A4A4A4E4E4E5454545A5A5A6363636868686D6D6D7171717272 + 726E6E6E6F706F2D2E2D8E8F8E999B99C9CAC9E8E9E8D0D0D04F4E4F8989899F + 9F9FBBBBBBD4D4D4E7E7E7F3F3F3F9F9F9FCFCFCFEFEFEFEFEFEFEFEFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFCFC + FCF9F9F9F2F2F2C7C7C7595859D0D0D0E8E9E8C9CAC9999B998E8F8E2C2D2C5A + 5B5A4D4D4D5454545F5F5F6868686F6F6F7474747171716D6D6D676767616161 + 6666667A7A7A5D5D5D090909818181D7D7D7C8C9C8656565797A799E9F9ED2D2 + D2C5C5C5A2A2A2727272838383C8CAC8ECEDEC6563656E6D6E9696962A2A2A53 + 5253BFBEBF8F8E8FD1D1D13C3A3C898989C5C5C5DDDDDDEEEEEEF8F8F8FDFDFD + FEFEFEFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFEFEFEFEFE + FEEAEAEA4C4A4CACACACB5B5B52E2C2E222122606060ADAEADA9A9A9605F60C5 + C7C58F8D8F6E6C6E8D8E8DC8C7C8C1C1C1A3A2A3ABACAB9C9B9C797779B5B8B5 + 5758574848487A797A8181816F6E6F5756576666665757574747475555554F4F + 4F5353535757575A5A5A5B5B5B605F604444443B3A3B5C5A5C6E6F6E95949593 + 93937C7B7C6D6C6D818181909090ADADADC5C5C5DADADAE9E9E9F2F2F2F7F7F7 + FBFBFBFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFE + FEFEFEFEFDFDFDFBFBFBF7F7F7F2F2F2E9E9E9D9D9D98F8E8F7D7C7D93939395 + 94956E6F6E5C5A5C3B3A3B404040504F504A4A4A5050505555555959595B5B5B + 6363635757576363636C6C6C5C5B5C6F6E6F8181817A797A484848575857B5B8 + B57977799C9B9CABACABA3A2A3C1C1C1C8C7C88D8E8D6E6C6E8F8D8FC5C7C560 + 5F60A9A9A9ADAEAD6060602221222E2C2EB5B5B5ACACAC434143B0B0B0D3D3D3 + E7E7E7F4F4F4FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF000080FFFF + FFFFFFFFFFFFFFFEFEFEFEFEFEFCFCFCC7C7C73A393A5F5E5F060606565856BB + BCBB818081BCBDBCA6A5A65756573C3B3C5C5A5CC1C2C1CDCCCD9D9D9D969496 + DDDEDDB4B6B44D4C4D4D4C4D696969A8A8A8CFCECFCDCCCD7371734443448888 + 885656565B5B5B6B6B6B6262624747474949494D4D4D4F4F4F4746475050507E + 7D7E7B7A7BCACBCADEDEDE8787874F4E4F6C6C6C6969698080809A9A9AB0B0B0 + C6C6C6D6D6D6E3E3E3ECECECF3F3F3F8F8F8FBFBFBFDFDFDFEFEFEFEFEFEFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFEFEFEFEFEFEFDFDFDFBFBFBF8F8F8F3F3F3ECECECE4E4E4D6D6D6C5 + C5C5AAAAAA5A595A878787DEDEDECACBCA7B7A7B7E7D7E505050444244494949 + 4B4B4B4949494A4A4A6767676F6F6F5E5E5E565656888888444344737173CDCC + CDCFCECFA8A8A86969694D4C4D4D4C4DB4B6B4DDDEDD9694969D9D9DCDCCCDC1 + C2C15C5A5C3C3B3C575657A6A5A6BCBDBC818081BBBCBB5658560606065F5E5F + 373637A3A3A3C8C8C8DEDEDEEFEFEFF8F8F8FDFDFDFEFEFEFEFEFEFFFFFFFFFF + FFFFFFFFFFFFFF7B7B7BFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEF1F1F1CA + CACA989898626262797B79E7E7E7656465CCCCCCC9CAC9464646111111AEAFAE + B0B0B0909190C0C0C0C8C7C8B6B7B66866686F6F6F878787C0C1C0E8E9E8A4A5 + A4868486ACABAC9F9F9F9A999A5755576C6C6C807F804E4F4E4E4E4E6B6B6B53 + 53534949490B0B0B525152616161818081AFB0AFCAC9CA8F8E8F6D6C6D5D5D5D + 5B5B5B6E6E6E818181989898ABABABBEBEBECDCDCDDADADAE6E6E6EEEEEEF5F5 + F5F9F9F9FCFCFCFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFCFCFCF9F9F9F5F5F5EEEEEEE6 + E6E6DBDBDBCDCDCDBEBEBEAAAAAA9D9D9D7D7C7D8F8E8FCAC9CAAFB0AF818081 + 6161615251520B0B0B4949495251526B6B6B4E4E4E4E4F4E807F806C6C6C5755 + 579A999A9F9F9FACABAC868486A4A5A4E8E9E8C0C1C08787876F6F6F686668B6 + B7B6C8C7C8C0C0C0909190B0B0B0AEAFAE111111464646C9CAC9CCCCCC656465 + E7E7E7797B796262628B8B8BA3A3A3C0C0C0D7D7D7E9E9E9F5F5F5FBFBFBFEFE + FEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00CD19FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFEFEFEFDFDFDF4F5F4FAFAFAB8B7B84E4E4EF3F3F3A6A5A6787878 + 8E8F8E2B2A2B4E4E4E403F40636263A7A7A7C0C1C0A09FA0848484ABACABCCCC + CCCACBCAD7D9D7DFE0DF6B6B6B949494C4C4C48485848E8D8EB4B3B4E9EAE9E8 + E7E87878786A696A4A494A8D8D8D4849486161616B6A6BA0A1A0939193B1B2B1 + 615F613736378280824848485050505D5D5D6B6B6B7D7D7D8E8E8E9F9F9FB2B2 + B2C2C2C2D1D1D1DDDDDDE9E9E9F1F1F1F7F7F7FBFBFBFDFDFDFEFEFEFEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFBFBFBF7 + F7F7F1F1F1E9E9E9DDDDDDD1D1D1C3C3C3B1B1B1A0A0A08D8D8D7B7B7B8A888A + 373637615F61B1B2B1939193A0A1A06B6A6B6161614849488D8D8D4A494A6A69 + 6A787878E8E7E8E9EAE9B4B3B48E8D8E848584C4C4C49494946B6B6BDFE0DFD7 + D9D7CACBCACCCCCCABACAB848484A09FA0C0C1C0A7A7A7626162403F40505050 + 2B2A2B909190787878A6A5A6F3F3F34E4E4EB7B6B7E8E8E8C5C6C5D5D5D5E4E4 + E4F1F1F1F9F9F9FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 + 0080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9FDFDFDE7E6E7 + 3C3C3CADADADEEEEEE4C4B4C747474A2A2A2C8C8C8D3D3D38989894849484545 + 45818181A6A7A6C3C4C3D6D7D6BDBEBDD0D1D0E1E3E16766676C6C6C969696A1 + A2A1C5C5C5E3E4E3E0E0E0ABABABC3C5C39B9B9B929192AFAFAF979697ABADAB + CACBCAE9EAE9FDFFFDD5D4D56968692928297372736F6F6F4E4E4E4E4E4E5A5A + 5A666666727272828282939393A5A5A5B7B7B7C6C6C6D5D5D5E2E2E2ECECECF3 + F3F3F8F8F8FBFBFBFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFE + FEFEFBFBFBF8F8F8F3F3F3ECECECE2E2E2D5D5D5C6C6C6B6B6B6A5A5A5939393 + 828282767676818181737273292829696869D5D4D5FDFFFDE9EAE9CACBCAABAD + AB979697AFAFAF9291929B9B9BC3C5C3ABABABE0E0E0E3E4E3C5C5C5A1A2A196 + 96966C6C6C676667E1E3E1D0D1D0BDBEBDD6D7D6C3C4C3A6A7A6818181454545 + 484948838383CFCFCFCECECEAEAEAE7B7B7B4C4B4CEEEEEEADADAD3C3C3CE7E6 + E7F6F6F6DEDEDEE5E5E5EFEFEFF7F7F7FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFEFEFEFAFAFAFCFCFC7C7C7C2C2C2C898A89707070D9D9D9EEEEEEF5F5 + F5FAFAFAFAFAFAACADAC4645465555559E9E9E969796BFC0BFDEDEDED6D6D6AA + A9AA666566919291B3B3B3E1E2E1E7E9E7B9BAB9AEAFAEA0A1A0D3D4D3B1B1B1 + 8E8E8E8F8F8F9A9A9A757575A3A3A3979797A1A3A19F9E9F727072B2B1B28785 + 87615F616665664E4E4E4C4C4C5353535F5F5F6969697878788686869A9A9AAB + ABABBDBDBDCCCCCCDADADAE6E6E6EFEFEFF5F5F5FAFAFAFCFCFCFEFEFEFEFEFE + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFEFEFEFEFEFEFCFCFCFAFAFAF5F5F5EFEFEFE6E6E6DBDBDBCCCCCCBDBDBD + AAAAAA9A9A9A8686867777776E6E6E747374626062878587B2B1B27270729F9E + 9FA1A3A1979797A3A3A37575759A9A9A8F8F8F8E8E8EB1B1B1D3D4D3A0A1A0AE + AFAEB9BAB9E7E9E7E1E2E1B3B3B3919291666566AAA9AAD6D6D6DEDEDEBFC0BF + 9697969C9C9C555555424242A1A2A1EFEFEFF7F7F7FBFBFBFAFAFAE6E6E67473 + 74898A892C2C2C7C7C7CFBFBFBF2F2F2EEEEEEF1F1F1F7F7F7FBFBFBFEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5E4C5FFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDE2E2E25A5B5A8281 + 82DDDCDDF6F6F6F8F8F8FBFBFBFEFEFEFEFEFEF9F9F9DCDCDC9898988A8A8A66 + 6666969796AFAFAFA1A1A1929092ACAEACDADBDAE7E7E7CFCECFADADAD969596 + B6B7B6A9AAA97878785756573838385757575C5B5C706F707B7B7B9594956A6A + 6A414141535153A9A8A99190913533352323236364635959594F4F4F4D4D4D55 + 55556161616D6D6D7D7D7D8D8D8D9E9E9EB1B1B1C3C3C3D1D1D1DEDEDEE9E9E9 + F1F1F1F6F6F6FAFAFAFCFCFCFEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFDFD + FDFCFCFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFCFDFDFDFDFDFDFE + FEFEFEFEFEFEFEFEFEFEFEFEFEFEFCFCFCFAFAFAF6F6F6F1F1F1E9E9E9DEDEDE + D1D1D1C3C3C3B1B1B19F9F9F8C8C8C7B7B7B7171717070706C6D6C2424243533 + 35919091A9A8A95351534141416A6A6A9594957B7B7B706F705C5B5C57575738 + 3838575657787878A9AAA9B6B7B6969596ADADADCFCECFE7E7E7DADBDAACAEAC + 929092A1A1A1AFAFAF9697966464648080808D8D8DD2D2D2F0F0F0FAFAFAFDFD + FDFEFEFEFFFFFFFEFEFEE3E2E38382835A5B5AE2E2E2F9F9F9F6F6F6F7F7F7F9 + F9F9FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF005047FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFDFDFDFEFEFEE6E7E6EEEDEEFBFBFBFCFCFCFDFDFDFEFEFEFFFFFFFFFFFFFF + FFFFFCFCFCFFFFFFEBEBEBB8B6B85A5A5A403E409B9B9BC5C6C5E5E6E5D5D5D5 + 7C7A7C979697B2B3B2A8A7A89191917B7A7B5A5A5A3E3C3E7C7A7C797879D3D4 + D3A9A9A9E4E5E4F7F7F7C7C7C74342435958595D5C5D727272696A698C8D8C7A + 7A7A5554555657565555554D4E4D4F4F4F595959656565727272818181929292 + A6A6A6B7B7B7C8C8C8D5D5D5E1E1E1EAEAEAF1F1F1F5F5F5F8F8F8FAFAFAFAFA + FAF9F9F9F7F7F7F5F5F5F4F4F4F4F4F4F5F5F5F8F8F8FBFBFBFDFDFDFEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFBFBFBF8F8F8F5 + F5F5F4F4F4F4F4F4F5F5F5F7F7F7F9F9F9FAFAFAFAFAFAF8F8F8F5F5F5F1F1F1 + EAEAEAE1E1E1D5D5D5C7C7C7B6B6B6A6A6A69292928181817374736F6F6F6263 + 625857587A7A7A8C8D8C696A697272725D5C5D595859434243C7C7C7F7F7F7E4 + E5E4A9A9A9D3D4D37978797C7A7C3E3C3E5A5A5A7B7A7B919191A8A7A8B2B3B2 + 9796977C7A7CD5D5D5E5E6E5C5C6C59B9B9B403E405A5A5AAEADAEDADADAF2F2 + F2F5F5F5FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0EFF0E6E7E6FC + FCFCFBFBFBFCFCFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFEFEFEFEFEFEFEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFED5D5D5777677 + 5A5A5AC7C8C77879788A8A8A7A797ABBBBBBD9DBD9BCBDBC605F60737373BABA + BAE2E2E2C0BFC0D2D3D2717071706F70636263BABABAF7F7F7989998939393F3 + F3F3D2D2D2F9F9F9E7E7E7FFFFFFB2B3B24546453B3C3B5657565353534E4E4E + 5252525D5D5D6A6A6A7676768686869A9A9AABABABBCBCBCCACACAD6D6D6E0E0 + E0E7E7E7ECECECEEEEEEEFEFEFECECECE9E9E9E6E6E6E4E4E4E5E5E5E8E8E8ED + EDEDF3F3F3F8F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFC + FCFCF8F8F8F3F3F3EDEDEDE8E8E8E5E5E5E4E4E4E6E6E6E9E9E9ECECECEFEFEF + EEEEEEECECECE7E7E7E0E0E0D7D7D7CACACABBBBBBABABAB9999998686867979 + 797272726465643E3F3E454645B2B3B2FFFFFFE7E7E7F9F9F9D2D2D2F3F3F393 + 9393989998F7F7F7BABABA636263706F70717071D2D3D2C0BFC0E2E2E2BABABA + 737373605F60BCBDBCD9DBD9BBBBBB7A797A8A8A8A787978C6C7C65A5A5A7574 + 75D0D0D0F4F4F4F7F7F7FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFEDEDEDBCBDBC7979798989895F5E5FA1A1A1E5E5E5DDDE + DDBABABA605E60999999EDEEEDA3A4A39696964C4A4C4544454B4B4B7E7D7E68 + 6768C8C8C8888888B8B9B8F4F4F4FFFFFFF4F5F4FCFDFCF5F5F5F3F5F3E1E1E1 + 8A8A8A3333334C4C4C6161615151514D4D4D5555556161616D6D6D7B7B7B8C8C + 8C9D9D9DADADADBCBCBCC8C8C8D1D1D1D7D7D7DBDBDBDBDBDBD8D8D8D4D4D4CF + CFCFCDCDCDCECECED4D4D4DDDDDDE7E7E7F1F1F1F8F8F8FDFDFDFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFDFDFDF8F8F8F1F1F1E7E7E7DDDDDDD4D4D4CECECECDCDCD + CFCFCFD4D4D4D8D8D8DBDBDBDBDBDBD7D7D7D1D1D1C8C8C8BBBBBBAEAEAE9D9D + 9D8C8C8C7B7B7B7373737575755353533333338A8A8AE1E1E1F3F5F3F5F5F5FC + FDFCF4F5F4FFFFFFF4F4F4B8B9B8888888C8C8C86867687E7D7E4B4B4B454445 + 4C4A4C969696A3A4A3EDEEED999999605E60BABABADDDEDDE5E5E5A1A1A15F5E + 5F7B7B7B717171B2B3B2E5E5E5FAFAFAFBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF623063FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFEFEFEF1F1F1E4E4 + E48484846D6E6DCBCBCBC5C5C5D5D6D5817F81979797E5E7E5ACADAC6D6C6D9A + 999A4E4C4ECBCCCBF0F0F08C8B8C737373626262848484BFBFBFA4A4A4A8A8A8 + A0A0A0696A69939393BFC0BFECECECCFCFCF595959363636595A595555554B4B + 4B5050505858586363637171718181818D8D8D9C9C9CAAAAAAB5B5B5BCBCBCC0 + C0C0C0C0C0BCBCBCB6B6B6B1B1B1AEAEAEB0B0B0B9B9B9C6C6C6D6D6D6E5E5E5 + F1F1F1F9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9F1F1F1E5E5E5D6D6D6 + C6C6C6B9B9B9B0B0B0AEAEAEB1B1B1B6B6B6BDBDBDC0C0C0C0C0C0BCBCBCB5B5 + B5AAAAAA9C9C9C8D8D8D7E7E7E7272726F6F6F636463383838595959CFCFCFEC + ECECBFC0BF939393696A69A0A0A0A8A8A8A4A4A4BFBFBF848484626262737373 + 8C8B8CF0F0F0CBCCCB4E4C4E9A999A6D6C6DACADACE5E7E5979797817F81D5D6 + D5C5C5C5CBCBCB6D6E6D717171BFBFBFD9D9D9F1F1F1F8F8F8FDFDFDFEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFEFEFEEDEEED6E6E6E7070707C7C7CB1B0B19D9B9D66 + 6566DADBDACBCBCB7674764140413130312727279F9F9F8584856A696A5A5A5A + 6665668B8A8B2B2A2B7372736261629A9B9A4E504E6C6B6C8F908FC4C5C4E1E2 + E1B1B1B15050504141415F5F5F4B4B4B4B4B4B5151515B5B5B6767677272727D + 7D7D8989899393939C9C9C9E9E9E9E9E9E9B9B9B9595959090908E8E8E929292 + 9C9C9CADADADC2C2C2D6D6D6E8E8E8F4F4F4FBFBFBFEFEFEFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFB + F4F4F4E8E8E8D6D6D6C2C2C2ADADAD9C9C9C9292928E8E8E9090909696969B9B + 9B9E9E9E9E9E9E9B9B9B9494948989897D7D7D7272726969696C6D6C45454550 + 5050B1B1B1E1E2E1C4C5C48F908F6C6B6C4E504E9A9B9A6261627372732B2A2B + 8B8A8B6665665A5A5A6A696A8584859F9F9F272727313031414041767476CBCB + CBDADBDA6665669D9B9DB1B0B17C7C7C707070565656B9BAB9D5D5D5EAEAEAF8 + F8F8FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 + 0080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEEDEDEDAD + ADAD0C0B0C818181B8B9B8414141AFB1AFEEEEEE6261623736377F807F6D6C6D + 2727275D5D5DC0C0C0A7A7A7C3C4C3DCDCDC9FA09F6F6E6FDCDCDCB1B2B1C0C1 + C0B7B8B76D6D6D787878AEAEAED6D7D6E1E1E19C9C9C46464654545462626248 + 48484D4D4D5353535A5A5A6464646E6E6E7474747B7B7B7E7E7E7D7D7D7B7B7B + 7878787676767676767B7B7B878787999999B0B0B0C8C8C8DDDDDDEDEDEDF8F8 + F8FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFDFDFDF8F8F8EDEDEDDDDDDDC8C8C8B0B0B09999998787877B7B + 7B7676767777777979797B7B7B7F7F7F7E7E7E7A7A7A7474746D6D6D64646472 + 72725A5A5A4646469C9C9CE1E1E1D6D7D6AEAEAE7878786D6D6DB7B8B7C0C1C0 + B1B2B1DCDCDC6F6E6F9FA09FDCDCDCC3C4C3A7A7A7C0C0C05D5D5D2727276D6C + 6D7F807F373637626162EEEEEEAFB1AF414141B8B9B88181810A090A78777899 + 9A99BBBBBBD8D8D8ECECECF8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFEFEFEF8F8F8DEDEDE676667636363DADBDA5C5C5C878687F5F6F5 + A4A4A4515051D6D6D6B0B0B0858685676667C4C6C49B9C9B838383E6E7E6DEDE + DE858485757475979997BABBBAF0F2F0E5E6E5A3A2A37776778E8E8EB3B4B3D8 + D9D8DADBDA8D8D8D4D4D4D6161615757574D4D4D4C4C4C5151515A5A5A5C5C5C + 6161616363636464646464646A6A6A6D6D6D6868686F6F6F7C7C7C8E8E8EA4A4 + A4BCBCBCD4D4D4E6E6E6F4F4F4FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF4F4F4E6E6E6D4D4D4BCBC + BCA4A4A49191918282826F6F6F68686864646464646464646466666663636360 + 60606262626767676767674E4E4E8D8D8DDADBDAD8D9D8B3B4B38E8E8E777677 + A3A2A3E5E6E5F0F2F0BABBBA979997757475858485DEDEDEE6E7E68383839B9C + 9BC4C6C4676667858685B0B0B0D6D6D6515051A4A4A4F5F6F58786875C5C5CDA + DBDA6262624C4B4C767676949494B7B7B7D5D5D5E9E9E9F8F8F8FEFEFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71B770FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCF4F4F4E4E4E4B0B0B02C2C2C + 6F6F6F909090636363CCCDCCDFE0DF8282827473748686864242426B6A6B8685 + 86787778343434A2A1A2CFD0CFACADAC5A595A686868C8CAC8D0D0D0C2C3C2F1 + F1F1D6D6D6959595797879969696ACABACE3E4E3DADBDA8181815554556A6A6A + 5656565655564949494C4C4C4E4E4E5959595151516E6E6E6868686868686867 + 686E6E6E7979798B8B8BA0A0A0B7B7B7CECECEE3E3E3F1F1F1FAFAFAFEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFA + FAF1F1F1E3E3E3CECECEB1B1B18C8C8C79797978787883838362626263636356 + 56565353535151515D5D5D5D5D5D6F6F6F555455818181DADBDAE3E4E3ACABAC + 969696797879959595D6D6D6F1F1F1C2C3C2D0D0D0C8CAC86868685A595AACAD + ACCFD0CFA2A1A23434347877788685866B6A6B424242868686747374828282DF + E0DFCCCDCC6363639090906F6F6F2C2C2C7777776F6F6F8D8D8DAFAFAFCDCDCD + E4E4E4F4F4F4FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9 + EFEFEFDCDCDCC6C6C6090809494949ABABAB464546929292F9FAF9DBDDDBCBCB + CB868686636363696869656365A4A3A4C8C8C8ACAAACB1B2B1D1D2D1A8A8A857 + 5657919191ACACACCBCCCBE4E5E4E2E3E2EFF0EFCACACA9795978785878E8D8E + C8C9C8F7F7F7D4D4D47E7D7E6766675352535556555151516565656363634444 + 444A4A4A0D0D0D5352537575757E7E7E8080808F8F8FA2A2A2B7B7B7CECECEE1 + E1E1EFEFEFF9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFEFEFEF9F9F9EFEFEFE1E1E1CDCDCD9B9B9B7B7B7B5352530F + 0F0F5252524D4D4D6E6E6E6B6C6B5555555859585553556766677E7D7ED4D4D4 + F7F7F7C8C9C88E8D8E878587979597CACACAEFF0EFE2E3E2E4E5E4CBCCCBACAC + AC919191575657A8A8A8D1D2D1B1B2B1ACAAACC8C8C8A4A3A465636569686963 + 6363868686CBCBCBDBDDDBF9FAF9929292464546ABABAB494949090809838383 + 696969838383A4A4A4C2C2C2DCDCDCEFEFEFF9F9F9FEFEFEFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFEFEFEFCFCFCF5F5F5E8E8E8D4D4D4CACACA5655562F2D2FBDBDBDA5A4 + A57A797AC7C7C7D8D6D89190917E7E7EB8B8B8E1E1E18787877C7B7CB7B6B7D1 + D1D1A9A8A9BEC0BED2D3D2ABABAB8A898A8B8B8BB3B3B3E3E4E3E7E8E7DEDFDE + EAEBEAEAEAEAC1C1C1888788828182A6A7A6DDDEDDFFFFFFD0D0D09D9E9D8485 + 845251525253520E0D0E3232321C1C1C3A3A3A6666668A898A52515282818296 + 9696A7A7A7BABABACECECEE0E0E0EFEFEFF8F8F8FEFEFEFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF8F8F8EFEFEFDFDFDFAC + ABAC5251528A898A6666663A3A3A1C1C1C3232320E0D0E535453525152848584 + 9D9E9DD0D0D0FFFFFFDDDEDDA6A7A6828182888788C1C1C1EAEAEAEAEBEADEDF + DEE7E8E7E3E4E3B3B3B38B8B8B8A898AABABABD2D3D2BEC0BEA9A8A9D1D1D1B7 + B6B77C7B7C878787E1E1E1B8B8B87E7E7E919091D8D6D8C7C7C77A797AA5A4A5 + BDBDBD2F2D2F5352538A8A8A6363637A7A7A979797B7B7B7D3D3D3E8E8E8F5F5 + F5FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00C623FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF2F2F2E1E1E1C9C9C9ADAD + AD595859373537A6A6A6FFFFFF7E7D7E706E704241422E2C2EABACABF6F6F6F8 + F8F8D1D1D13B3A3B7D7C7D8E8C8E7B797B757575999A99C1C2C1B5B6B59F9F9F + 959595A7A6A7C9C9C9E7E8E7E4E5E4DCDDDCE9EAE9E1E2E1A9A7A98180818888 + 88BBBBBBF6F6F6FBFBFBE5E5E5E5E4E5B3B3B3D0CFD0BABABAF4F5F4A4A4A470 + 6F70B0B0B08F8E8F5252529E9E9EA8A8A8BBBBBBCDCDCDDFDFDFECECECF7F7F7 + FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD + FDFDF7F7F7ECECECD6D6D65C5C5C8F8E8FB0B0B0706F70A4A4A4F4F5F4BABABA + D0CFD0B3B3B3E5E4E5E5E5E5FBFBFBF6F6F6BBBBBB888888818081A9A7A9E1E2 + E1E9EAE9DCDDDCE4E5E4E7E8E7C9C9C9A7A6A79595959F9F9FB5B6B5C1C2C199 + 9A997575757B797B8E8C8E7D7C7D3B3A3BD1D1D1F8F8F8F6F6F6ABACAB2E2C2E + 424142706E707E7D7EFFFFFFA6A6A6373537585758807F805B5B5B6F6F6F8C8C + 8CACACACC9C9C9E1E1E1F2F2F2FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF7C777EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9 + F9EEEEEEDBDBDBBFC0BF6564654A494A6D6D6D5C5C5CDEDFDEEEEFEE51505152 + 51524F4D4F6D6D6DFEFEFEEEEEEEFCFCFC7978797B7C7BD8D9D8555455666566 + 8080807C7C7CA9AAA9BBBDBBA3A5A3A1A1A19C9B9CA0A0A0C8C9C8E8E9E8E0E1 + E0E3E4E3F0F2F0DADADA9998997A797AA2A1A2DEDFDEF4F4F4FFFFFFF2F2F2AF + AFAFA0A1A05C5C5C7C7C7C3837389F9E9FC1C3C14F504F6B6B6BA2A2A2B3B3B3 + C6C6C6D7D7D7E6E6E6F1F1F1F8F8F8FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFEFEFEFDFDFDF8F8F8F1F1F1E6E6E68080804F504FC1C3C19F9E9F + 3837387C7C7C5C5C5CA0A1A0AFAFAFF2F2F2FFFFFFF4F4F4DEDFDEA2A1A27A79 + 7A999899DADADAF0F2F0E3E4E3E0E1E0E8E9E8C8C9C8A0A0A09C9B9CA1A1A1A3 + A5A3BBBDBBA9AAA97C7C7C808080666566555455D8D9D87B7C7B797879FCFCFC + EEEEEEFEFEFE6D6D6D4F4D4F525152515051EEEFEEDEDFDE5C5C5C6D6D6D4948 + 495352536E6E6E686868828282A1A1A1C1C1C1DBDBDBEEEEEEF9F9F9FEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFEFEFEF8F8F8ECECECD9D9D9A6A6A6494849403E4086868680 + 80808C8C8CC4C4C45C5C5C878687B2B1B24C4B4CCACACAF7F7F7F5F5F5CFCFCF + 6060608F8E8F7A7B7AA9AAA9CFCFCF9494947171718E8E8EB0B2B0B4B6B4ABAC + ABA1A2A18F8F8FA1A1A1D0D1D0DDDDDDDCDDDCF0F2F0EDEFEDC3C4C3908E9080 + 8080B2B2B29090909B999B8989890404041E1E1E1A1B1A4647465A5A5A929292 + 6F706F151515979797A1A1A1B5B5B5C7C7C7D7D7D7E5E5E5EFEFEFF6F6F6FBFB + FBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFBFBFBF6F6F6EFEFEFE5E5E5D4D4D4 + 1515157475749E9E9E6868685C5D5C2223222424240404048989899B999B9090 + 90B2B2B2808080908E90C3C4C3EDEFEDF0F2F0DCDDDCDDDDDDD0D1D0A1A1A18F + 8F8FA1A2A1ABACABB4B6B4B0B2B08E8E8E717171949494CFCFCFA9AAA97A7B7A + 8F8E8F606060CFCFCFF5F5F5F7F7F7CACACA4C4B4CB2B1B28786875C5C5CC4C4 + C48C8C8C808080868686403E404948496F6E6F6666668181819E9E9EBEBEBED9 + D9D9ECECECF8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF76 + 1876FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF8F8F8EDEDEDDADADA9E + 9E9E6969698A8A8A626262BBBBBB9A9A9A8A8A8A232223525352E7E7E7858585 + 767676FBFBFBF0F0F0F5F5F59898983D3C3D737373CDCFCDD6D7D6D2D2D2B4B4 + B49B9A9B918F919A9A9ABEBFBEC2C4C2B2B2B29B9A9B898A89A9ABA9C8C8C8CF + D0CFE5E7E5F5F6F5ECEDEC8B8B8B5A5B5A8E8E8EBEBDBEB3B1B38C8B8C4E4D4E + 4747474747475151516060606766673E3D3E7678768B8B8B9C9C9CAFAFAFC0C0 + C0D1D1D1DEDEDEE9E9E9F2F2F2F8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF8F8F8F2F2F2 + E9E9E9DEDEDED2D2D29B9B9B4948498988898686867B7B7B6B6B6B5F5F5F504F + 508C8B8CB3B1B3BEBDBE8E8E8E5A5B5A8B8B8BECEDECF5F6F5E5E7E5CFD0CFC8 + C8C8A9ABA9898A899B9A9BB2B2B2C2C4C2BEBFBE9A9A9A918F919B9A9BB4B4B4 + D2D2D2D6D7D6CDCFCD7373733D3C3D989898F5F5F5F0F0F0FBFBFB7676768585 + 85E7E7E75253522322238A8A8A9A9A9ABBBBBB6262628A8A8A6969697272726F + 706F838383A2A2A2C0C0C0DADADAEDEDEDF8F8F8FEFEFEFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF000900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE + FEFEFAFAFAEDEDEDDCDCDC6C6D6C656565D1D2D1959495A3A3A3E3E4E3757675 + 353535797A796060608C8C8C423F42ABAAABFDFDFDFFFFFFEEEFEE6E6F6E2827 + 289C9C9CDADBDAF2F3F2E0E1E0D0D1D0C3C3C39695968C8B8CB5B5B5CDCECDC6 + C7C6BCBCBCA2A4A2949494A8A6A8A3A4A3B1B0B1DADADAA7A8A7B5B5B5D9D8D9 + F8F8F8F5F4F5BDBABDA2A0A27A797A5A5A5A4545454A4A4A505050605F607373 + 73747474808080929292A4A4A4B6B6B6C7C7C7D5D5D5E2E2E2ECECECF3F3F3F8 + F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFC + F8F8F8F3F3F3ECECECE2E2E2D5D5D5C7C7C7B7B7B7A8A8A88887887F7F7F7171 + 716363636868687A797AA2A0A2BDBABDF5F4F5F8F8F8D9D8D9B5B5B5A7A8A7DA + DADAB1B0B1A3A4A3A8A6A8949494A2A4A2BCBCBCC6C7C6CDCECDB5B5B58C8B8C + 969596C3C3C3D0D1D0E0E1E0F2F3F2DADBDA9C9C9C2827286E6F6EEEEFEEFFFF + FFFDFDFDABAAAB423F428C8C8C606060838483393939757675E3E4E3A3A3A395 + 9495D1D2D16565655758578C8C8C929292ADADADC8C8C8E0E0E0F0F0F0FAFAFA + FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2AA32CFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBD8D7D89E9C9E1C1C1C656265BBBBBB + DAD9DA8C8C8C4C4C4C7B7B7B9F9F9FD1D1D1D1D1D18A898A3D3B3D5454549394 + 93D9DAD9FFFFFFE3E4E3706F706C6B6CABACABD5D7D5EDEEEDE5E6E5E0E0E0CB + CBCB9B9C9B8C8A8CB0B0B0CBCCCBC5C6C5CCCDCCC9CAC9B0AEB0A9A9A9868486 + 7D7C7D787878A7A7A7D0CFD0979596F9FDFEFBFBFBDFDCDFB5B1B59390937372 + 735353534646464B4B4B5656565C5C5C686868767676868686979797A9A9A9BB + BBBBCBCBCBD9D9D9E5E5E5EEEEEEF5F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FEFEFEFDFDFDFAFAFAF5F5F5EEEEEEE5E5E5D9D9D9CBCBCBBBBBBBA9A9A99797 + 97888888767676686868666566767476939093B5B1B5DFDCDFFBFBFBF9FDFE97 + 9596D0CFD0A7A7A77878787D7C7D868486A9A9A9B0AEB0C9CAC9CCCDCCC5C6C5 + CBCCCBB0B0B08C8A8C9B9C9BCBCBCBE0E0E0E5E6E5EDEEEDD5D7D5ABACAB6C6B + 6C706F70E3E4E3FFFFFFD9DAD99394935151513C3A3C898889DADADAF0F0F0C2 + C2C28888884C4C4C8C8C8CDAD9DABBBBBB6562651C1C1C8583859B9A9BBCBCBC + D5D5D5E7E7E7F4F4F4FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDD4D4D4 + 4443445B5A5B5D5C5D8C8C8CEFF1EFCCCCCC393839A7A6A7CFCFCFE0E0E0EEEE + EEF3F3F3D4D4D4A4A4A48C8D8C787978B3B4B3F6F6F6EDEDED9F9E9F85858594 + 9594BCBCBCDFDFDFEBEDEBE7E8E7D3D4D39F9F9F7E7E7EA9AAA9D1D3D1C3C4C3 + C3C5C3DADBDACECFCED8DAD8B7B8B76D6D6D9897989C9A9CA1ADB0C0AEB1E3F0 + F2FEFFFFF5F4F5D4D1D4AAA7AA8C8A8C6A696A5858584747474D4D4D5454545F + 5F5F6B6B6B7A7A7A8A8A8A9C9C9CAEAEAEBFBFBFCFCFCFDDDDDDE7E7E7F0F0F0 + F6F6F6FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFEFEFEFEFEFEFBFBFBF6F6F6F0F0F0E7E7E7DDDDDDCFCFCFBFBF + BFAEAEAE9C9C9C8A8A8A7A7A7A6B6B6B7070707170718C8A8CAAA7AAD4D1D4F5 + F4F5FEFFFFE3F0F2C0AEB1A1ADB09C9A9C9897986D6D6DB7B8B7D8DAD8CECFCE + DADBDAC3C5C3C3C4C3D1D3D1A9AAA97E7E7E9F9F9FD3D4D3E7E8E7EBEDEBDFDF + DFBCBCBC9495948585859F9E9FEDEDEDF6F6F6B3B4B37677768585859A9A9ACB + CBCBF1F1F1F9F9F9FCFCFCFAFAFAC8C7C83C3B3CCCCCCCEFF1EF8C8C8C5D5C5D + 5B5A5B444344AEAEAECFCFCFE1E1E1EFEFEFF8F8F8FDFDFDFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFEFEFEEEEEEE5D5D5DA8A9A87475747F7F7FA8A9A89999996563 + 65CCCCCCE0E0E0ECECECF6F6F6FBFBFBFEFEFEFFFFFFD5D5D5A7A7A76B6C6B8D + 8D8DCCCCCCF8F8F8D0D0D0878787878787A8A8A8CDCECDE8E9E8F0F0F0E5E5E5 + A8A9A8686768939493DEDFDED9DBD9C0C1C0C8CAC8D5D6D5CBCDCBB5B5B59694 + 968A898BC4C0C38C1515A05C5EC6C3C6EEF9FAFFFFFFEEEDEEC6C3C69F9C9F84 + 82847F7F7F4545454848484E4E4E5656566262626E6E6E7E7E7E8F8F8FA1A1A1 + B3B3B3C3C3C3D3D3D3E0E0E0EAEAEAF2F2F2F8F8F8FBFBFBFEFEFEFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF8F8F8F2F2F2EAEAEAE0E0 + E0D3D3D3C3C3C3B3B3B3A1A1A18F8F8F7E7E7E6E6E6E6363638A898A8482849F + 9C9FC6C3C6EEEDEEFFFFFFEEF9FAC6C3C6A05C5E8C1515C4C0C38A898B969496 + B5B5B5CBCDCBD5D6D5C8CAC8C0C1C0D9DBD9DEDFDE939493686768A8A9A8E5E5 + E5F0F0F0E8E9E8CDCECDA8A8A8878787878787D0D0D0F8F8F8CCCCCC8D8D8D67 + 68679C9C9CC8C8C8F4F4F4F9F9F9FCFCFCFEFEFEFFFFFFFEFEFEE9E9E96D6A6D + 999999A8A9A87F7F7F747574A8A9A85B5B5BCFCFCFE1E1E1EDEDEDF6F6F6FCFC + FCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF003C00FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBADADAD8888889393 + 93818081525052373637A7A7A7E7E7E7EEEEEEF5F5F5FBFBFBFEFEFEFFFFFFFF + FFFFFFFFFFFBFBFBC6C7C6686968636363949594EAEAEAF1F2F1B1B2B17F7F7F + 888888B8B9B8D4D5D4EAEBEAF0F1F0C0C1C07C7D7C707070B1B0B1ECECECD2D4 + D2B5B5B5A0A1A0CDCBCD8C898BB5C2C5AC65677D00007D00008A1414A87678D1 + D8DBF5FDFEFEFEFEE6E4E6BAB7BA8B888B7D7B7D5857584545454A4A4A505050 + 595959656565737373838383949494A6A6A6B7B7B7C8C8C8D6D6D6E3E3E3ECEC + ECF4F4F4F9F9F9FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCF9F9F9F4F4 + F4ECECECE3E3E3D6D6D6C8C8C8B7B7B7A6A6A694949483838373737365656565 + 64657E7C7E8B888BBAB7BAE6E4E6FEFEFEF5FDFED1D8DBA876788A14147D0000 + 7D0000AC6567B5C2C58C898BCDCBCDA0A1A0B5B5B5D2D4D2ECECECB1B0B17070 + 707C7D7CC0C1C0F0F1F0EAEBEAD4D5D4B8B9B88888887F7F7FB1B2B1F1F2F1EA + EAEA949594616161626362BBBBBBEFEFEFF7F7F7FBFBFBFEFEFEFEFEFEFFFFFF + FFFFFFFFFFFFFEFEFEB2B2B2383638525052818081939393888888A2A2A2E4E4 + E4EFEFEFF6F6F6FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF7DBA7DFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFEEEEEE9B9B9B7A7A7A8B8C8B424142908F90E9E9E9F3F3F3F8F8F8FB + FBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEDEDEDABABAB656665 + 747574ADAEADE8E9E8E1E1E18787876464648D8E8DB2B4B2DADBDAF2F3F2D4D5 + D47F807F4B494BA3A4A3DDDCDDADB0ADABAAABAAA8AA919597C2B2B583020282 + 00008400008200007D0000912A2BB19093DDE7EAF8F8F8FAFAFADCDADCAFACAF + 928F926F6E6F5151514747474B4B4B5353535C5C5C6868687777778787879898 + 98AAAAAABCBCBCCCCCCCDADADAE6E6E6EFEFEFF5F5F5FAFAFAFDFDFDFEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFD + FDFAFAFAF5F5F5EFEFEFE6E6E6DADADACCCCCCBCBCBCAAAAAA98989887878777 + 7777686868656465737273928F92AFACAFDCDADCFAFAFAF8F8F8DDE7EAB19093 + 912A2B7D0000820000840000820000830202C2B2B5919597AAA8AAABAAABADB0 + ADDDDCDDA3A4A34B494B7F807FD4D5D4F2F3F2DADBDAB2B4B28D8E8D64646487 + 8787E1E1E1E8E9E8ADAEAD747574606160A0A1A0E1E1E1F5F5F5FAFAFAFDFDFD + FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F49494944241428B8C + 8B7A7A7A969796E2E2E2F4F4F4F8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAEAEA7D7D7D474747848484E3 + E4E3FAFAFAFBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFCFCFCF7777775C5B5C8C8C8CCFCFCFE6E7E6BABBBA6363 + 63636363909090CACBCAEFF0EFDDDEDD8788876B6A6B7E7C7E828282C7C5C786 + 8485BCC6C9A148487D00008500008400008400008400007F0000800000934142 + C2BFC2E1E1E2FEFFFFF3F3F3CFCCCFA6A3A68987896564654A4A4A4747474D4D + 4D5555555F5F5F6C6C6C7A7A7A8C8C8C9E9E9EAFAFAFC0C0C0D0D0D0DDDDDDE8 + E8E8F1F1F1F7F7F7FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFEFEFEFBFBFBF7F7F7F1F1F1E8E8E8DDDDDDD0D0D0C0C0C0AFAFAF9E + 9E9E8C8C8C7A7A7A6C6C6C6262626D6D6D898789A6A3A6CFCCCFF3F3F3FEFFFF + E1E1E2C2BFC29341428000007F00008400008400008400008500007D0000A148 + 48BCC6C9868485C7C5C78282827E7C7E6B6A6B878887DDDEDDEFF0EFCACBCA90 + 9090636363636363BABBBAE6E7E6CFCFCF8C8C8C5A595A6F6F6FC3C3C3F3F3F3 + F8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFE7E7E78484844747477D7D7DE6E6E6FAFAFAFBFBFBFDFDFDFEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 + 0080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFDFDFDB6B6B6F4F4F4FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F6F7BDBDBD6564 + 65666666939493D0D1D0EAEBEAACADAC6868687F7F7FA5A6A5DCDDDCEBECEB9D + 9D9D7777779C9A9C9593959DA6A8BD9C9E800000840000840000840000840000 + 840000840000820000810303C4BDC0C2C1C4C9C9CCF0FAFBFFFFFFECEBECC3C0 + C39E9B9E8280825E5D5E4444444949494F4F4F5757576262627070707F7F7F90 + 9090A2A2A2B4B4B4C5C5C5D4D4D4E0E0E0EBEBEBF2F2F2F8F8F8FCFCFCFEFEFE + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCF8F8F8F2F2F2EBEBEBE0E0E0D4D4D4C5 + C5C5B4B4B4A2A2A29090907F7F7F7070706262626968698280829E9B9EC3C0C3 + ECEBECFFFFFFF0FAFBC9C9CCC2C1C4C4BDC08103038200008400008400008400 + 00840000840000840000800000BD9C9E9DA6A89593959C9A9C7777779D9D9DEB + ECEBDCDDDCA5A6A57F7F7F686868ACADACEAEBEAD0D1D0939493656565615F61 + B2B2B2EBEBEBF7F7F7FBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F5F5B5B4B5FCFCFCFEFEFEFE + FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF00EB17FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFE3E3E39B999B5F5F5F737373959595EEEFEEEFF0EFA6 + A6A67373738484849595958F908FCBCACBC4C2C4848183C4C6C99428287E0000 + 8400008400008400008400008400008400007C0000AC7374D2E6EAB48E908519 + 1AAA7D7FD4DCDFF7FDFEFDFDFDE3E1E3B8B5B89694967675765756574646464A + 4A4A5151515A5A5A656565747474838383959595A7A7A7B9B9B9C9C9C9D7D7D7 + E3E3E3EDEDEDF5F5F5F9F9F9FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDF9F9F9F5F5F5EDEDEDE3 + E3E3D7D7D7C9C9C9B9B9B9A7A7A7959595838383747474656565676667787778 + 969496B8B5B8E3E1E3FDFDFDF7FDFED4DCDFAA7D7F85191AB48E90D2E6EAAC73 + 747C00008400008400008400008400008400008400007E0000942828C4C6C984 + 8183C4C2C4CBCACB8F908F959595848484737373A6A6A6EFF0EFEEEFEE959595 + 7171715A5A5A929192D9D8D9F6F6F6FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEE0E0E0AD + AEAD777877898989C4C4C4FBFBFBE6E6E68F8F8F737373212021D0CED0999799 + A9B3B6B37B7C7E00008500008400008400008400008400008400008000009027 + 27CAD1D4CBD3D68F24257E00007D0000943637B69EA0E1EDEFFBFFFFF9F9F9D7 + D4D7ACA9AC8E8B8E6E6C6E5150514747474C4C4C5353535D5D5D696969787878 + 8888889A9A9AACACACBDBDBDCDCDCDDBDBDBE6E6E6EFEFEFF6F6F6FBFBFBFDFD + FDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFBFBFBF6 + F6F6EFEFEFE6E6E6DBDBDBCDCDCDBDBDBDACACAC9A9A9A888888787878696969 + 6464647270728E8B8EACA9ACD7D4D7F9F9F9FBFFFFE1EDEFB69EA09436377D00 + 007E00008F2425CBD3D6CAD1D490272780000084000084000084000084000084 + 00008500007E0000B37B7CA9B3B6999799D0CED02120217373738F8F8FE6E6E6 + FBFBFBC4C4C4858585707170A1A2A1D5D5D5F6F6F6FAFAFAFCFCFCFEFEFEFEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFDFDFDDBDBDBA3A3A3979797939393D7D7D7FFFFFF + CBCBCB666666AEACAE969596CFD2D68D18187900008400008400008400008400 + 008400008300007F0303B48C8ED2E6EAAA70727C00008400008400007F000081 + 00009C4F50C0B7BAE9F3F4FEFEFEF2F1F2CCC9CCA4A1A4878587636263484848 + 4848484D4D4D5656566060606D6D6D7C7C7C8D8D8D9F9F9FB0B0B0C2C2C2D1D1 + D1DEDEDEE9E9E9F2F2F2F8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFE + FEFEFBFBFBF8F8F8F2F2F2E9E9E9DEDEDED1D1D1C2C2C2B0B0B09F9F9F8D8D8D + 7C7C7C6D6D6D6161616C6B6C878587A4A1A4CCC9CCF2F1F2FEFEFEE9F3F4C0B7 + BA9C4F508100007F00008400008400007C0000AA7072D2E6EAB48C8E7F030383 + 00008400008400008400008400008400007900008D1818CFD2D6969596AEACAE + 666666CBCBCBFFFFFFD7D7D79191918989898F8F8FC6C6C6EFEFEFF8F8F8FCFC + FCFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFC + D6D6D69998995E5D5EC0C0C0FFFFFF8B8C8B767576AFAFAFACA7ABC6BDC0A659 + 5A8100007F00008400008400008400007E0000993E3ED0E0E4C4BCBF87141483 + 00008400008400008400008400007D0000870A0AA56D6EC9C5C8EFF3F4FFFFFF + EAE8EAC0BDC09C999C7E7C7E5C5C5C4545454949495050505858586363637171 + 71808080929292A4A4A4B6B6B6C6C6C6D5D5D5E1E1E1ECECECF3F3F3F8F8F8FC + FCFCFEFEFEFEFEFEFCFCFCF8F8F8F3F3F3ECECECE1E1E1D5D5D5C6C6C6B6B6B6 + A4A4A49292928080807171716363636968697E7D7E9C999CC0BDC0EAE8EAFFFF + FFEFF3F4C9C5C8A56D6E870A0A7D000084000084000084000084000083000087 + 1414C4BCBFD0E0E4993E3E7E00008400008400008400007F0000810000A6595A + C6BDC0ACA7ABAFAFAF7675768B8C8BFFFFFFC0C0C05B5A5B7A797AA6A6A6D5D5 + D5EAEAEAF7F7F7FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00C15DFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF0F0F07D7C7D636363F2F3F2C1C2C14746 + 47ECEBEC8F8D8F8A8A8CB7C2C5C1A9AC9B3C3D7E0000810000830000840E0FBD + A8ABD1E3E7A051537C00008400008400008400008400008400008400007B0000 + 942F2FCFE0E3B8A5A8D7E0E3F8FEFFFCFCFCE1DFE1B6B3B69492947472745555 + 554646464A4A4A5252525B5B5B676767757575858585979797A9A9A9BABABACA + CACAD8D8D8E4E4E4EDEDEDF4F4F4F7F7F7F7F7F7F4F4F4EDEDEDE4E4E4D8D8D8 + CACACABABABAA9A9A9979797858585757575676767666566777577949294B6B3 + B6E1DFE1FCFCFCF8FEFFD7E0E3B8A5A8CFE0E3942F2F7B000084000084000084 + 00008400008400008400007C0000A05153D1E3E7BDA8AB840E0F830000810000 + 7E00009B3C3DC1A9ACB7C2C58A8A8C8F8D8FECEBEC474647C1C2C1F2F3F26363 + 635E5C5EA6A6A6C5C5C5DDDDDDEFEFEFFBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF0DAE04FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCE4E4 + E4232323B1B3B1F4F4F4555455666466C2C1C2A7A4A7868486969B9EC2CACDB8 + 8B8D8E1B1B770000A45C5DD2E6EABAA0A3820B0C840000840000840000840000 + 840000840000830000840807C0B1B4D0E2E59D4D4E933C3DB8A4A7E3F0F2FDFF + FFF7F6F7D4D1D4AAA7AA8C8A8C6968694D4C4D4747474D4D4D5454545E5E5E6B + 6B6B7979798989899B9B9BADADADBFBFBFCECECEDADADAE3E3E3E9E9E9E9E9E9 + E3E3E3DADADACECECEBFBFBFADADAD9B9B9B8989897979796B6B6B6362636F6E + 6F8C8A8CAAA7AAD4D1D4F7F6F7FDFFFFE3F0F2B8A4A7933C3D9D4D4ED0E2E5C0 + B1B4840807830000840000840000840000840000840000840000820B0CBAA0A3 + D2E6EAA45C5D7700008E1B1BB88B8DC2CACD969B9E868486A7A4A7C2C1C26664 + 66555455F4F4F4B1B3B12121219F9F9FB2B2B2CECECEE4E4E4F3F3F3FCFCFCFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00E80EFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFDFDFDF5F5F5605F604E4E4EFFFFFF939393191919BEBFBEF0 + EFF0C9C6C99C999C848284A2ABADC6C6C9AB6F70C5C1C4CACED19535367E0000 + 8400008400008400008400008400008500007D0101A55F60D1E5E8B99B9D8000 + 007C00008300009E5557C3BDC0ECF7F9FFFFFFF0EFF0C9C6C9A29FA286848662 + 61624545454848484E4E4E5656566161616E6E6E7D7D7D8E8E8EA0A0A0B1B1B1 + C1C1C1CCCCCCD2D2D2D2D2D2CCCCCCC1C1C1B1B1B1A0A0A08E8E8E7D7D7D6E6E + 6E6262626B6A6B868486A29FA2C9C6C9F0EFF0FFFFFFECF7F9C3BDC09E555783 + 00007C0000800000B99B9DD1E5E8A55F607D0101850000840000840000840000 + 8400008400007E0000953536CACED1C5C1C4AB6F70C6C6C9A2ABAD8482849C99 + 9CC9C6C9F0EFF0BEBFBE191919939393FFFFFF4E4E4E4E4D4EA8A8A8C1C1C1D8 + D8D8EAEAEAF6F6F6FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF80 + 0080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF9F9F9C1C1C1151515B1 + B1B1D8D8D8202020A1A1A1E5E4E5FEFEFEE8E6E8BDBABD939093868486AFB9BC + CAC7CAC6B9BC7B00007F00008400008400008400008400008400008000008B16 + 16C8C8CBCCD4D89330308000008400008400007D0000890F0FA67072CFD3D6F1 + F3F4FEFEFEE8E6E8BEBBBE9A979A7B7A7B5B5A5B4545454A4A4A505050595959 + 646464727272828282929292A2A2A2AEAEAEB5B5B5B5B5B5AEAEAEA2A2A29292 + 928282827272726464646868687C7A7C9A979ABEBBBEE8E6E8FEFEFEF1F3F4CF + D3D6A67072890F0F7D0000840000840000800000933030CCD4D8C8C8CB8B1616 + 8000008400008400008400008400008400007F00007B0000C6B9BCCAC7CAAFB9 + BC868486939093BDBABDE8E6E8FEFEFEE8E7E8A2A1A2202020D8D8D8B1B1B115 + 15159F9F9FBDBDBDD2D2D2E3E3E3F0F0F0F9F9F9FEFEFEFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF006B13FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE + FEFEFBFBFBDFDFDF2625266261626867683534356D6C6DB7B5B7CECDCEF4F4F4 + FBFBFBDEDCDEAFACAF8A888A8C8A8CB3B1B4BEA2A4952E2F7D00008200008400 + 008400008500007F0303AE7A7CD3EAEDAF80817D000083000084000084000084 + 00008200007D00008D2A2BB8A4A7D2CED0FAFEFFFAFAFADCDADCB3B0B3939093 + 6F6E6F5151514646464B4B4B5252525C5C5C6868687575758383838D8D8D9393 + 939393938D8D8D838383757575686868656465737273939093B3B0B3DCDADCFA + FAFAFAFEFFD2CED0B8A4A78D2A2B7D0000820000840000840000840000830000 + 7D0000AF8081D3EAEDAE7A7C7F03038500008400008400008200007D0000952E + 2FBEA2A4B3B1B48C8A8C8A888AAFACAFDEDCDEFBFBFBF6F6F6D4D3D4BFBEBF6E + 6D6E353435686768626162232223C2C2C2D4D4D4E1E1E1EDEDEDF5F5F5FBFBFB + FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDCFCFCF100F10838383A1A2A18E8F8E + 9A9A9A9D9D9DCCCBCCC7C6C7E1E1E1FCFCFCF5F4F5D1CFD1A4A1A4868486999F + A2C3CACDB584868C15157D00008300007E0000942F2FCCD5D8C5C0C38C1C1D80 + 0000840000840000840000840000840000830000790000AE7A7DCBDADEBCACAF + E6F2F4FEFFFFF5F4F5D1CFD1A8A5A88A888A6765674B4B4B4747474D4D4D5454 + 545E5E5E6767676F6F6F7474747474746F6F6F6767676261626E6D6E8A888AA8 + A5A8D1CFD1F5F4F5FEFFFFE6F2F4BCACAFCBDADEAE7A7D790000830000840000 + 8400008400008400008400008000008C1C1DC5C0C3CCD5D8942F2F7E00008300 + 007D00008C1515B58486C3CACD999FA2868486A4A1A4D1CFD1F5F4F5FBFBFBE0 + DFE0CAC9CAD5D5D5A2A2A29C9C9C8E8F8EA1A2A1838383100F10BFBFBFE6E6E6 + EEEEEEF5F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF001F66FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFECDCECD + 5B5A5B797979AAABAACDCECD9FA09F7C7C7C666766878787CECDCED9D8D9E9E8 + E9FFFFFFEEEDEEC6C3C6999799848284A5AFB1C6C3C6AB6869840000800100B9 + 9D9FD3E9ECA562637D00008400008400008400008400008400008400007F0000 + 953233CDD6DAC6C2C5890F0FA05C5EC6C3C6EEF9FAFFFFFFEEEDEEC6C3C6A09D + A0848284615F614444444949494E4E4E5353535959595C5C5C5C5C5C59595969 + 6769848284A09DA0C6C3C6EEEDEEFFFFFFEEF9FAC6C3C6A05C5E890F0FC6C2C5 + CDD6DA9532337F00008400008400008400008400008400008400007D0000A562 + 63D3E9ECB99D9F800100840000AB6869C6C3C6A5AFB1848284999799C6C3C6EE + EDEEFFFFFFE6E5E6D6D4D6CECDCE8989896869687C7C7C9FA09FCDCECDAAABAA + 797979595859C3C3C3F3F3F3F8F8F8FBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFF9F9F9CFCFCF9493948D8C8D4747479C9B9C5E5D5E5E5E + 5EA6A7A6EBEBEBF7F7F7EBEAEBE0DEE0F2F1F2FEFEFEE6E4E6BAB7BA918E9187 + 8688B1BDC0C4B3B6A96364D0E0E3B99D9F840909810000840000840000840000 + 840000840000820000810000BCA5A8D1E4E8A255567D00007D00008A1414A876 + 78D1D8DBF5FDFEFEFEFEE6E4E6BBB8BB9895987977795A595A4545454747474A + 4A4A4C4C4C5F5E5F797779989598BBB8BBE6E4E6FEFEFEF5FDFED1D8DBA87678 + 8A14147D00007D0000A25556D1E4E8BCA5A88100008200008400008400008400 + 00840000840000810000840909B99D9FD0E0E3A96364C4B3B6B1BDC087868891 + 8E91BAB7BAE6E4E6FEFEFEEDEDEDD6D5D6E2E1E2F3F3F3EBEBEBA7A8A75F5F5F + 5F5D5F9C9B9C4747478C8B8C929192CBCBCBF4F4F4FBFBFBFDFDFDFEFEFEFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF002D71FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEAEAEAE8E8 + E8E3E3E3EFEFEFEEEFEEFBFBFBF7F8F7FEFEFEFEFEFEFFFFFFF7F7F7E7E6E7E2 + E1E2F9F9F9F9F9F9D9D7D9ACA9AC898689919496BDC5C8D1D6D9AA6C6D770000 + 8300008400008400008400008400008500007E00009E4D4ED1E4E8BFAEB08200 + 008200008400008100007D0000933031B3979ADFEAEDFAF9FAF9F9F9D9D7D9AF + ACAF8F8D8F6E6C6E4E4E4E4F4F4F6E6C6E8F8D8FAFACAFD9D7D9F9F9F9FAF9FA + DFEAEDB3979A9330317D0000810000840000820000820000BFAEB0D1E4E89E4D + 4E7E0000850000840000840000840000840000830000770000AA6C6DD1D6D9BD + C5C8919496898689ACA9ACD9D7D9F9F9F9F8F7F8DBD9DBDCDCDCEEEDEEF8F8F8 + FCFCFCFEFEFEF7F8F7FCFCFCEEEFEEEFEFEFE3E3E3E7E7E7E9E9E9FEFEFEFEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF677161FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFF4F4F4E3E2E3E7E6E7FEFEFEF3F3F3CFCCCFA19EA1 + 858385969295C2C3C6B17D7F890F107D00008400008400008400008000008708 + 09C3B8BBCDD9DD993B3C7D00008500008400008400008400007F000080000093 + 4042C2BFC2E1E1E3FEFFFFF3F3F3CFCCCFA3A0A3828082898789A6A3A6CFCCCF + F3F3F3FEFFFFE1E1E3C2BFC29340428000007F00008400008400008400008500 + 007D0000993B3CCDD9DDC3B8BB8708098000008400008400008400007D000089 + 0F10B17D7FC2C3C6969295858385A19EA1CFCCCFF3F3F3FCFCFCE0DFE0D9D7D9 + EAE9EAF7F7F7FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00310EFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF0EFF0 + E0DEE0EDECEDFFFFFFECEBECC3C0C3979597848284A8B2B5C6C0C3A860628300 + 007E00008400007D0000AA7173D4EBEFB58F917F000084000084000084000084 + 0000840000840000820000820707C4BDC0C1BFC2C9C9CCF0FAFBC3C2C3858385 + 9E9B9EC3C0C3ECEBECFFFFFFF0FAFBC9C9CCC1BFC2C4BDC08207078200008400 + 008400008400008400008400008400007F0000B58F91D4EBEFAA71737D000084 + 00007E0000830000A86062C6C0C3A8B2B5848284979597C3C0C3ECEBECFFFFFF + E8E8E8D6D4D6E5E4E5F5F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF11 + C010FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFBFAFBEBEAEBDFDEDFF4F3F4FCFCFCE1DFE1B4B1 + B48F8C8F88888AB7C2C5C1A9AC9B3C3D7A0000902223C8C8CCC9CDD09023237E + 00008400008400008400008400008400008400007C0000AC7576D1E5E9B28789 + 833A3B867D7F949294B6B3B6E3E1E3FDFDFDF8FEFFD7E0E3AC838685191AB287 + 89D1E5E9AC75767C00008400008400008400008400008400008400007E000090 + 2323C9CDD0C8C8CC9022237A00009B3C3DC1A9ACB7C2C588888A8F8C8FB4B1B4 + E1DFE1FCFCFCEFEEEFD7D5D7E0DFE0F2F1F2F9F9F9FCFCFCFEFEFEFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF00D021FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7 + F7E6E5E6E4E2E4FBFBFBF8F7F8D7D4D7A9A6A987858793989AC0C9CCB89193B5 + 8F91D1E3E8A86A6C7E0000850000840000840000840000840000840000800000 + 902A2ACAD0D4BEC2C58260618E8B8EACA9ACD7D4D7F8F7F8FCFFFFE1EDEFB69E + A09436377E00007D00008D1F1FCACFD2CAD0D4902A2A80000084000084000084 + 00008400008400008500007E0000A86A6CD1E3E8B58F91B89193C0C9CC93989A + 878587A9A6A9D7D4D7F8F7F8F8F8F8DCDADCDCDADCEDEDEDF8F8F8FBFBFBFEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF004D00FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F2F3E3E1E3E8E8E8FFFEFFF2F1F2CC + C9CC9E9C9E8482849FA7AAC4C3C6D1D6DA8A1313790000840000840000840000 + 8400008400008300007F0404B38E91A2A9AC878587A4A1A4CCC9CCF2F1F2FEFE + FEE9F2F4C0B7BA9C4F508100007F00008400008400007C0000A8696AD2E6EAB5 + 8F927F04048300008400008400008400008400008400007900008A1313D1D6DA + C4C3C69FA7AA8482849E9C9ECCC9CCF2F1F2FEFDFEE1E0E1D8D6D8E9E8E9F7F7 + F7FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF004600FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE + FEFEEFEEEFE0DEE0EEEDEEFFFFFFEAE8EAC0BDC0959295858385A39FA1C6BCBF + A6595A8100007F00008400008400008400007D00008F5D5E8584869C999CC0BD + C0EAE8EAFFFFFFEFF4F5C8C5C8A67072870A0A7D000084000084000084000084 + 0000830000861010C2B7B9CFE0E49B45457D00008400008400008400007F0000 + 810000A6595AC6BCBFA39FA1858385959295C0BDC0EAE8EAFFFFFFE8E7E8D3D1 + D3E2E1E2F3F3F3FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72B972FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9E7E6E7E0DEE0F5F5F5FBFBFB + DEDCDEB2AFB28B898B8C8D8FB9C5C8C0A4A69835367D00008100008221217E66 + 67939093B3B0B3DEDCDEFBFBFBF9FEFFDAE4E7B8A5A8CFDFE39531327B000084 + 00008400008400008400008400008400007C00009F4F4FD0E2E6BCA6A9840F0F + 8300008100007D0000983536C0A4A6B9C5C88C8D8F8B898BB2AFB2DEDCDEFBFB + FBECECECCBC9CBCCCBCCE0E0E0EFEFEFF6F6F6FBFBFBFEFEFEFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFBFBFB + F6F6F6E9E8E9D7D6D7DBD9DBF9F9F9F7F6F7D4D1D4A6A3A6868486969B9EC2CA + CDB18A8C835C5D8C8A8CAAA7AAD4D1D4F7F6F7FDFFFFE3F0F2B8A4A7943C3D9B + 4647D1E3E6C0B1B3860C0D830000840000840000840000840000840000840000 + 820909B89B9CD2E6EAA662647700008E1B1BB88B8DC2CACD969B9E868486A6A3 + A6D4D1D4F7F6F7F3F3F3C3C2C3ABA9ABB5B4B5C7C7C7D8D8D8E6E6E6EFEFEFF6 + F6F6FBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF42A43BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FEFEFEFBFBFBF8F8F8F2F2F2EAEAEAE0E0E0D2D2D2C2C2C2BAB8BAD5D5D5FEFE + FEF0EFF0C9C6C99B989B807F80868486A29FA2C9C6C9F0EFF0FFFFFFECF7F9C3 + BDC09E55578300007D00007F0000B79698D2E6EAA662637D0101850000840000 + 8400008400008400008400007E0000932F2FC8CBCEC5C1C4AB6F70C6C6C9A2AB + AD8482849C999CC9C6C9F0EFF0FDFDFDC6C5C69290928281828787879B9B9BB0 + B0B0C2C2C2D2D2D2E0E0E0EAEAEAF2F2F2F8F8F8FBFBFBFEFEFEFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00C154FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFEFEFEFCFCFCF9F9F9F4F4F4ECECECE3E3E3D6D6D6C8C8C8B7B7 + B7A5A5A5959595929192A8A6A8DDDCDDD1D0D18A888A9A979ABBB8BBE6E4E6FE + FEFEF0EEEECDCED1A776788A14147D0000830000840000800000922E2ECDD7DB + C7C6C98D1C1D8000008400008400008400008400008400008000007A0000C4B4 + B7CAC7CAB2BDC0878688918E91BAB7BAE8E6E8FEFEFED8D7D89796976C6B6C5A + 5A5A626262707070818181939393A5A5A5B7B7B7C8C8C8D6D6D6E3E3E3ECECEC + F4F4F4F9F9F9FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2A + 9728FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFAFAFAF5F5F5EFEFEFE6E6E6DADA + DACBCBCBBCBCBCAAAAAA9898988686867676766868686C6B6C7B7A7B918F91B1 + AEB1DCDADCFAFAFAFAFFFFDAE3E5C4C7CBA25F60780000820000840000840000 + 8400008300007C0000AF7D7FD4EBEFAE7C7D7F04058500008400008400008200 + 007D0000952E2FBC9C9EB5B4B78C8A8C8A888AAFACAFDCDADCFAFAFAF1F1F1BF + BDBF8C898C5D5C5D4646464B4B4B5252525C5C5C686868767676868686989898 + AAAAAABCBCBCCBCBCBDADADAE6E6E6EFEFEFF5F5F5FAFAFAFDFDFDFEFEFEFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF003F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFBFBFBF7F7F7F0F0 + F0E8E8E8DDDDDDD0D0D0C0C0C0AFAFAF9D9D9D8B8B8B7A7A7A6B6B6B6363636F + 6E6F8A888AA8A5A8D1CFD1F5F4F5FEFFFFE6F2F4BBAAADA46365D1E3E7B59395 + 8208088200008400008400008400008400008100008A191AC5BFC2CDD6D99634 + 367D00008300007D00008C1515B58486C3CACD999FA2868486A4A1A4D1CFD1F5 + F4F5FCFCFDE6E6E7E0DEE0CFCDCFA8A5A88A888A6765674B4B4B4747474D4D4D + 5555555F5F5F6B6B6B7A7A7A8B8B8B9D9D9DAFAFAFC0C0C0D0D0D0DDDDDDE8E8 + E8F0F0F0F7F7F7FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF007D00FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFB + FBF8F8F8F2F2F2EAEAEAE0E0E0D4D4D4C5C5C5B3B3B3A2A2A29090907F7F7F6F + 6F6F6262626A696A848284A09DA0C6C3C6EEEDEEFFFFFFEEF9FAC6C3C6A05C5E + 840000830808BBA3A6D2E8EBA054557D00008400008400008400008400008400 + 007D0000A35B5CD3EAEEB99D9F810405840000AB6869C6C3C6A5AFB184828499 + 9799C6C3C6EEEDEEFFFFFFD4BABBB39193C5C2C5EEF9FAFFFFFFEEEDEEC6C3C6 + A09DA0848284615F614444444949494F4F4F5757576262626F6F6F7F7F7F9090 + 90A2A2A2B3B3B3C5C5C5D4D4D4E0E0E0EAEAEAF2F2F2F8F8F8FBFBFBFEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFEFEFEFCFCFCF9F9F9F4F4F4EDEDEDE3E3E3D7D7D7C8C8C8B8B8B8A7A7A795 + 9595838383747474656565676667787778969496B8B5B8E3E1E3FDFDFDF7FDFE + D4DCDFAA7D7F8C191A7D00008300007D00009A3F40CEDBDEC1B6B98715158200 + 00840000840000840000840000820000840A0BBA9EA0D0E0E4A86163C3AEB1B4 + C0C388888A8F8C8FB7B4B7E3E1E3FDFDFDE7DBDCAF7E80953738810B0C8C191A + AA7D7FD4DCDFF7FDFEFDFDFDE3E1E3B8B5B89694967675765756574646464A4A + 4A5050505A5A5A656565747474838383959595A7A7A7B8B8B8C8C8C8D7D7D7E3 + E3E3EDEDEDF4F4F4F9F9F9FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFEFEFEFDFDFDFAFAFAF5F5F5EFEFEFE6E6E6DADADACCCCCCBC + BCBCABABAB9999998888887777776969696463647270728F8D8FAFACAFD9D7D9 + F9F9F9FAF9FAD8D8DAB196989330317D00008100008400008400008500008006 + 06B28689D3EAEEAB72737C0000830000840000840000840000820000780000A8 + 6667D1D6D9BDC4C7919496898689ACA9ACD9D7D9F9F9F9F7F8F9CCBDBF974849 + 8C15168400008400008100007D0000933031B19698D8D8DAFAF9FAF9F9F9D9D7 + D9AFACAF8F8D8F6E6C6E5150514747474C4C4C5353535C5C5C69696977777788 + 8888999999ABABABBCBCBCCCCCCCDADADAE6E6E6EFEFEFF5F5F5FAFAFAFDFDFD + FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF009E1EFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF7F7F7F1F1F1E9E9E9DE + DEDED1D1D1C1C1C1B0B0B09E9E9E8C8C8C7B7B7B6C6C6C6262626D6D6D898789 + A6A3A6CFCCCFF3F3F3FEFFFFE8F4F6C3C0C3BAA8AB7A00007F00008400008400 + 008400008400008400008000008F2223C9CDD0CAD0D48F262780000084000084 + 00007D0000890F10B27D7FC3C4C7969294858385A19EA1CFCCCFF3F3F3FAF6F6 + DBDBDEC6C7CA973C3D8000008400008400008400008400008400007F00007A00 + 00BAA8ABC3C0C3E8F4F6FEFFFFF3F3F3CFCCCFA6A3A68987896564654A4A4A48 + 48484D4D4D5656565F5F5F6C6C6C7B7B7B8C8C8C9E9E9EB0B0B0C1C1C1D1D1D1 + DEDEDEE9E9E9F1F1F1F7F7F7FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF09D710FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCF8F8F8F3 + F3F3EBEBEBE1E1E1D4D4D4C5C5C5B5B5B5A3A3A3919191808080707070636363 + 6968697E7D7E9C999CC0BDC0ECEBECFFFFFFF2FBFCCCCED1A1696BC7C5C8C6C3 + C7922B2B7E00008400008400008400008400008400008500007D0101A96C6FD3 + E8ECB38C8E7E00007D0000810000A6595AC5BCBFABB6B9848284959295C0BDC0 + EAE8EAFFFFFFD6BEBFBFACAFCEDEE1AA6E717D01018500008400008400008400 + 008400008400007E0000922B2BC6C3C7C7C5C8A1696BCCCED1F2FBFCFFFFFFEC + EBECC0BDC09C999C7E7C7E5C5C5C454545494949505050585858636363707070 + 808080919191A3A3A3B5B5B5C5C5C5D4D4D4E1E1E1EBEBEBF3F3F3F8F8F8FCFC + FCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00876CFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFD + FDFDFAFAFAF5F5F5EEEEEEE4E4E4D8D8D8C9C9C9B9B9B9A7A7A7969696848484 + 747474666666666566767476949294B6B3B6E1DFE1FCFCFCF8FEFFD7E0E3AC83 + 868E1F1F770000A96E6FD3E8ECB5919481090984000084000084000084000084 + 0000840000820000881212C3BABDCFDFE2973C3D983C3DC1A9ACB7C2C58A8B8D + 8D8B8DB4B1B4E1DFE1FCFCFCEFEBECBC999CA46365CEDDE0C3BABD8812128200 + 00840000840000840000840000840000840000810909B59194D3E8ECA96E6F77 + 00008E1F1FAC8386D7E0E3F8FEFFFCFCFCE1DFE1B6B3B6949294747274555555 + 4646464A4A4A5151515A5A5A666666747474848484969696A7A7A7B9B9B9C9C9 + C9D8D8D8E4E4E4EEEEEEF5F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFEFEFEFDFDFDFBFBFBF6F6F6EFEFEFE7E7E7DBDBDBCECECEBEBEBEADADAD + 9B9B9B8989897878786A6A6A646464716F718E8B8EACA9ACD7D4D7F8F7F8FCFF + FFE1EDEFB69EA09436377E0000810000820000861313BFAFB2CFDEE29D4A4A7C + 00008400008400008400008400008400008400007B0000983B3CD2E5E8C4AEB1 + C0C9CC93989A878587A9A6A9D7D4D7F8F7F8F5F5F5C2C0C2A4A6A9C0C8CBC4AE + B1D2E5E8983B3C7B00008400008400008400008400008400008400007C00009D + 4A4ACFDEE2BFAFB28613138200008100007E0000943637B69EA0E1EDEFFCFFFF + F8F7F8D7D4D7ACA9AC8E8B8E6B6A6B4F4E4F4747474C4C4C5353535D5D5D6A6A + 6A7878788989899B9B9BADADADBEBEBECECECEDBDBDBE7E7E7EFEFEFF6F6F6FB + FBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF002933FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF8F8F8F2F2F2E9E9E9DFDFDFD1D1D1 + C2C2C2B1B1B1A0A0A08E8E8E7D7D7D6E6E6E6161616C6B6C878587A4A1A4CCC9 + CCF2F1F2FFFEFFE2DFE1C1B7BA9C4F508100007F00008400008400008400007D + 00009D4B4CD1E2E6C0B1B48611118300008400008400008400008400007D0000 + 880A0AB47F81C2BEC19DA0A38482849E9C9ECCC9CCF2F1F2FEFDFEE9E8E9DDDB + DDCAC7CA9E9C9E8482849DA0A3C2BEC1B47F81880A0A7D000084000084000084 + 0000840000830000861111C0B1B4D1E2E69D4B4C7D0000840000840000840000 + 7F00008100009C4F50C1B7BAE2DFE1FFFEFFF2F1F2CCC9CCA4A1A48785876362 + 634848484848484E4E4E5656566060606E6E6E7D7D7D8E8E8EA0A0A0B1B1B1C2 + C2C2D1D1D1DFDFDFE9E9E9F2F2F2F8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCF8F8F8F3F3F3ECECEC + E2E2E2D5D5D5C6C6C6B6B6B6A4A4A49292928181817171716464646868687C7A + 7C9A979ABEBBBEE8E6E8FEFEFEEFEEEFCBC8CBC3C6C98B16167A000084000084 + 0000840000840000840000830000800606B89A9CD1E4E8A663647C0000840000 + 8400007F0000800000A35253C5B8BBADB5B8858385939093BDBABDE8E6E8FEFE + FEEBEAEBD2CFD2D3D1D3EEEDEEFEFEFEE8E6E8BDBABD939093858385ADB5B8C5 + B8BBA352538000007F00008400008400007C0000A66364D1E4E8B89A9C800606 + 8300008400008400008400008400008400007A00008B1616C3C6C9CBC8CBEFEE + EFFEFEFEE8E6E8BEBBBE9A979A7B7A7B5B5A5B4545454A4A4A50505059595964 + 6464717171818181929292A4A4A4B6B6B6C6C6C6D5D5D5E2E2E2ECECECF3F3F3 + F8F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFAFAFA + F5F5F5EEEEEEE5E5E5D9D9D9CBCBCBBABABAA9A9A99797978686867676766868 + 68666566747374939093B3B0B3DEDCDEFBFBFBF6F6F6D3D0D3C0BCC0C4C1C4CC + D6D9A45F607F00008500008400008400008400008400008400007F0000933233 + CDD7DAC7C7CB8C1D1D7E00007D0000983536C0A4A6B9C5C88C8E908B898BB2AF + B2DEDCDEFBFBFBF5F5F5D7D5D7DCDADCEEEEEEF3F3F3E7E6E7E1DFE1F6F6F6FB + FBFBDEDCDEB2AFB28B898B8C8E90B9C5C8C0A4A69835367D00007E00008C1D1D + C7C7CBCDD7DA9332337F00008400008400008400008400008400008500007F00 + 00A45F60CCD6D9C4C1C4C0BCC0D3D0D3F6F6F6FBFBFBDEDCDEB3B0B393909372 + 70725353534646464B4B4B5252525C5C5C686868767676868686979797A9A9A9 + BABABACBCBCBD9D9D9E5E5E5EEEEEEF5F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE + FEFEFEFBFBFBF6F6F6F0F0F0E7E7E7DCDCDCCECECEBFBFBFADADAD9B9B9B8A8A + 8A7A7A7A6B6B6B6463646F6E6F8C8A8CAAA7AAD4D1D4F7F6F7FCFCFCDCDADCC1 + BEC1C3C0C3C6C3C6C6C3C6C6C5C8C6C5C88F1E1F7F0000840000840000840000 + 8400008400008300007C0000AF7F81D2E6EAB08385871B1BB88B8DC2CACD969B + 9E868486A6A3A6D4D1D4F7F6F7FBFBFBDCDADCCECCCEE9E9E9F5F5F5FAFAFAFD + FDFDFEFEFEF6F6F6D6D4D6DFDDDFFCFCFCF7F6F7D4D1D4A6A3A6868486969B9E + C2CACDB88B8D871B1BB08385D2E6EAAF7F817C00008300008400008400008400 + 008400008400007F00008F1E1FC6C5C8C6C5C8C6C3C6C6C3C6C3C0C3C1BEC1DC + DADCFCFCFCF7F6F7D4D1D4AAA7AA8C8A8C6968694D4C4D4747474D4D4D545454 + 5F5F5F6B6B6B7A7A7A8A8A8A9B9B9BADADADBFBFBFCECECEDCDCDCE7E7E7F0F0 + F0F6F6F6FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF005934FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFEFEFEFBFBFBF8F8F8F2F2F2EAEAEAE0E0E0D3D3D3C3C3C3B3B3 + B3A1A1A18F8F8F7D7D7D6E6E6E6161616A696A868486A09DA0C6C3C6EEEDEEFF + FFFFE5E4E5C6C3C6C1BDC1C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CDD8DBB08385 + 7F0000840000840000840000840000840000840000810000850D0DC6C3C6CCC8 + CBC6C3C6A5AFB1848284999799C9C6C9EEEDEEFFFFFFE7E6E7CDCACDDDDCDDF4 + F4F4F9F9F9FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFE9E8E9D3D0D3E9E8E9 + FFFFFFEEEDEEC9C6C9999799848284A5AFB1C6C3C6CCC8CBC6C3C6850D0D8100 + 008400008400008400008400008400008400007F0000B08385CDD8DBC6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C1BDC1C6C3C6E5E4E5FFFFFFEEEDEEC6C3C6A09DA0 + 868486615F614444444848484E4E4E5656566161616E6E6E7D7D7D8F8F8FA1A1 + A1B3B3B3C3C3C3D3D3D3E0E0E0EAEAEAF2F2F2F8F8F8FBFBFBFEFEFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF137801FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCF9F9F9F4F4F4ECECECE3E3E3D6D6 + D6C8C8C8B7B7B7A6A6A6949494828282727272656565676667797779989598BB + B8BBE6E4E6FEFEFEF1F0F1CDCACDC0BCC0C5C2C5C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C4C7CBD2D49635367E00008400008400008400008400008000 + 007F0000994142CBC7CAABAAAD878688918E91BAB7BAE6E4E6FEFEFEEFEEEFD0 + CDD0D7D5D7EEEEEEF8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFAFAFAE1E0E1D4D1D4F1F1F1FEFEFEE6E4E6BAB7BA918E918786 + 88ABAAADCBC7CA9941427F00008000008400008400008400008400007E000096 + 3536CBD2D4C6C4C7C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C5C2C5C0BCC0 + CDCACDF1F0F1FEFEFEE6E4E6BBB8BB9895987977795A595A4545454A4A4A5050 + 50595959656565727272828282949494A6A6A6B7B7B7C8C8C8D6D6D6E3E3E3EC + ECECF4F4F4F9F9F9FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFAFAFAF5F5F5EFEF + EFE6E6E6DADADACCCCCCBCBCBCAAAAAA98989887878777777768686865646573 + 7273918F91B1AEB1DCDADCFAFAFAF8F8F8D5D3D5C0BDC0C4C1C4C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C9CED1BBA3A68200008200 + 008400008200007D0000952E2FBE9EA0BCC7CA8C8A8C8A888AAFACAFDCDADCFA + FAFAF7F7F7D6D4D6D1CFD1E8E8E8F6F6F6FBFBFBFDFDFDFEFEFEFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4DAD9DAD9D8 + D9F8F8F8FAFAFADCDADCAFACAF8A888A8C8A8CBCC7CABE9EA0952E2F7D000082 + 0000840000820000820000BBA3A6C9CED1C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C4C1C4C0BDC0D5D3D5F8F8F8FAFAFADCDADCB1AE + B1918F916F6E6F5151514747474B4B4B5353535C5C5C68686877777787878798 + 9898AAAAAABCBCBCCCCCCCDADADAE6E6E6EFEFEFF5F5F5FAFAFAFDFDFDFEFEFE + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1A + C30BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFBFB + FBF7F7F7F1F1F1E8E8E8DDDDDDD0D0D0C0C0C0AFAFAF9E9E9E8C8C8C7A7A7A6C + 6C6C6363636F6E6F8A888AA8A5A8D1CFD1F5F4F5FDFDFDDEDDDEC2BFC2C2BFC2 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6CEDCDF9F51527E00007D00008C1515B58486C3CACD999FA2868486A4 + A1A4D1CFD1F5F4F5FCFCFCDDDCDDCDCBCDE2E2E2F5F5F5FAFAFAFDFDFDFEFEFE + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFEEEDEED6D4D6E0DFE0FDFDFDF5F4F5D1CFD1A4A1A486 + 8486999FA2C3CACDB584868C15157D00007E00009F5152CEDCDFC6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C2BF + C2C2BFC2DEDDDEFDFDFDF5F4F5D1CFD1A8A5A88A888A6867684B4B4B4747474D + 4D4D5555555F5F5F6C6C6C7A7A7A8C8C8C9E9E9EAFAFAFC0C0C0D0D0D0DDDDDD + E8E8E8F1F1F1F7F7F7FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFEFEFEFCFCFCF8F8F8F2F2F2EBEBEBE0E0E0D4D4D4C5C5C5B4B4B4A2A2A290 + 90907F7F7F7070706262626968698280829E9B9EC3C0C3ECEBECFFFFFFEAE9EA + C7C4C7C0BDC0C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C7C8CBC2B8BB870B0BA86062C6C0C3A8 + B2B5848284979597C3C0C3ECEBECFFFFFFE9E8E9CECBCEDBD9DBF2F2F2F8F8F8 + FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEE6E5E6D2 + D0D2EBEAEBFFFFFFECEBECC3C0C3979597848284A8B2B5C6C0C3A86062870B0B + C2B8BBC7C8CBC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C0BDC0C7C4C7EAE9EAFFFFFFECEBECC3 + C0C39E9B9E8280825E5D5E4444444949494F4F4F5757576262627070707F7F7F + 909090A2A2A2B4B4B4C5C5C5D4D4D4E0E0E0EBEBEBF2F2F2F8F8F8FCFCFCFEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFEFEFEFCFCFCF9F9F9F4F4F4EDEDEDE3E3E3D7D7D7C8C8C8B8 + B8B8A7A7A7959595838383747474656565676667787778969496B8B5B8E3E1E3 + FDFDFDF3F2F3CECCCEC0BCC0C5C2C5C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6D2 + DEE2C4B1B3B4C0C388888A8F8C8FB7B4B7E3E1E3FDFDFDF1F0F1D0CED0D5D4D5 + EDEDEDF8F8F8FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFF8F8F8DFDEDFD4D2D4F3F2F3FDFDFDE3E1E3B7B4B7 + 8F8C8F88888AB4C0C3C4B1B3D2DEE2C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C5 + C2C5C0BCC0CECCCEF3F2F3FDFDFDE3E1E3B8B5B8969496767576575657464646 + 4A4A4A5151515A5A5A656565747474838383959595A7A7A7B8B8B8C8C8C8D7D7 + D7E3E3E3EDEDEDF4F4F4F9F9F9FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFBFBFBF6F6F6EFEFEFE6E6E6DA + DADACDCDCDBDBDBDABABAB9999998888887777776969696464647270728F8D8F + AFACAFD9D7D9F9F9F9FAF9FAD7D5D7C0BDC0C4C0C4C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C8C5C8CDCACDB7B2B5919396898689ACA9ACD9D7D9F9F9F9F9F8F9 + D8D6D8D0CED0E7E6E7F6F6F6FBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3F2F3 + D9D7D9DBD9DBFAF9FAF9F9F9D9D7D9ACA9AC898689919396B7B2B5CDCACDC8C5 + C8C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C4C0C4C0BDC0D7D5D7FAF9FAF9F9F9 + D9D7D9AFACAF8F8D8F6E6C6E5150514747474C4C4C5353535D5D5D6969697777 + 77888888999999ABABABBDBDBDCDCDCDDADADAE6E6E6EFEFEFF6F6F6FBFBFBFD + FDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF7F7F7F1 + F1F1E9E9E9DEDEDED1D1D1C2C2C2B0B0B09E9E9E8C8C8C7C7C7C6D6D6D616161 + 6C6B6C878587A4A1A4CCC9CCF2F1F2FFFEFFE3E2E3C4C1C4C1BEC1C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6CDCACDC3C0C39A979A8482849E9C9ECCC9CC + F2F1F2FFFEFFE3E2E3CDCBCDE0DFE0F5F5F5F9F9F9FCFCFCFEFEFEFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBEAEBD4D2D4E5E4E5FFFEFFF2F1F2CCC9 + CC9E9C9E8482849A979AC3C0C3CDCACDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C1BEC1C4C1C4E3E2E3FFFEFFF2F1F2CCC9CCA4A1A48785876362634848 + 484848484D4D4D5656566060606D6D6D7C7C7C8C8C8C9E9E9EB0B0B0C2C2C2D1 + D1D1DEDEDEE9E9E9F1F1F1F7F7F7FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFC + FCFCF8F8F8F3F3F3ECECECE1E1E1D4D4D4C5C5C5B5B5B5A4A4A4929292808080 + 7171716363636968697E7D7E9C999CC0BDC0EAE8EAFFFFFFECEBECC9C6C9C0BD + C0C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CBC8CBC9C6C9A4A2A4858385 + 959295C0BDC0EAE8EAFFFFFFEBEAEBCDCCCDD9D8D9F1F1F1F8F8F8FBFBFBFEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFD + FDE4E3E4D3D0D3EDECEDFFFFFFEAE8EAC0BDC0959295858385A4A2A4C9C6C9CB + C8CBC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C0BDC0C9C6C9ECEBECFFFF + FFEAE8EAC0BDC09C999C7E7C7E5C5C5C45454549494950505058585863636371 + 7171808080929292A4A4A4B5B5B5C5C5C5D4D4D4E1E1E1ECECECF3F3F3F8F8F8 + FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFEFEFEFDFDFDFAFAFAF5F5F5EEEEEEE4E4E4D8D8D8CACACAB9B9B9A8A8A8 + 969696858585747474666666666566767476949294B6B3B6E1DFE1FCFCFCF5F4 + F5D1CED1C0BCC0C5C2C5C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C9C6C9CCC9CC + AFADAF8987898D8B8DB4B1B4E1DFE1FCFCFCF4F3F4D3D0D3D4D1D4ECECECF7F7 + F7FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7DFDDDFD6D3D6F5F4F5FCFCFCE1 + DFE1B4B1B48D8B8D898789AFADAFCCC9CCC9C6C9C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C5C2C5C0BCC0D1CED1F5F4F5FCFCFCE1DFE1B6B3B694929474727455 + 55554646464A4A4A5151515B5B5B666666747474858585969696A8A8A8B9B9B9 + CACACAD8D8D8E4E4E4EEEEEEF5F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFEFEFEFDFDFDFBFBFBF6F6F6EFEFEFE7E7E7DCDCDCCECECE + BEBEBEADADAD9B9B9B8989897979796A6A6A646464716F718E8B8EACA9ACD7D4 + D7F8F7F8FBFBFBDAD8DAC1BDC1C3C0C3C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C7C4C7CDCACDBAB7BA908E90878587A9A6A9D7D4D7F8F7F8FAFAFADAD8DACFCD + CFE6E5E6F5F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFF1F1F1D7D5D7DDDBDDFBFBFBF8F7F8D7D4D7A9A6A9878587908E90BAB7BA + CDCACDC7C4C7C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C3C0C3C1BDC1DAD8DAFB + FBFBF8F7F8D7D4D7ACA9AC8E8B8E6B6A6B4F4E4F4747474C4C4C5353535E5E5E + 6A6A6A7979798989899B9B9BADADADBEBEBECECECEDCDCDCE7E7E7EFEFEFF6F6 + F6FBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 5169FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCF8F8F8F2F2F2EAEAEA + DFDFDFD2D2D2C2C2C2B2B2B2A0A0A08E8E8E7D7D7D6E6E6E6262626B6A6B8684 + 86A29FA2C9C6C9F0EFF0FFFFFFE5E4E5C5C2C5C1BEC1C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6CDC9CDC4C1C49C9A9C8482849C999CC9C6C9F0EFF0FFFF + FFE4E3E4CDCBCDDEDDDEF4F4F4F9F9F9FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE9E8E9D3D1D3E6E5E6FFFFFF + F0EFF0C9C6C99C999C8482849C9A9CC4C1C4CDC9CDC6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C1BEC1C5C2C5E5E4E5FFFFFFF0EFF0C9C6C9A29FA2868486 + 6261624545454848484E4E4E5656566161616E6E6E7D7D7D8E8E8EA0A0A0B2B2 + B2C2C2C2D2D2D2DFDFDFEAEAEAF2F2F2F8F8F8FCFCFCFEFEFEFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFC + F8F8F8F1F1F1E6E6E6D8D8D8C8C8C8B7B7B7A4A4A49292928181817171716464 + 646868687C7A7C9A979ABEBBBEE8E6E8FEFEFEEFEEEFCBC8CBC0BDC0C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CBC8CBCAC7CAA7A5A7858385939093BDBA + BDE8E6E8FEFEFEEEEDEECFCCCFD7D6D7F0F0F0F8F8F8FBFBFBFEFEFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFCFCFCE2E2E2D3D1D3F0EFF0FEFEFEE8E6E8BDBABD939093858385A7A5 + A7CAC7CACBC8CBC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C0BDC0CBC8CB + EFEEEFFEFEFEE8E6E8BEBBBE9A979A7B7A7B5B5A5B4545454A4A4A5050505959 + 59646464717171818181929292A4A4A4B7B7B7C8C8C8D8D8D8E6E6E6F1F1F1F8 + F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFEFEFEFAFAFAF2F2F2E7E7E7D7D7D7C3C3C3AEAEAE9A9A9A8686 + 86767676686868666566747374939093B3B0B3DEDCDEFBFBFBF6F6F6D3D0D3C0 + BCC0C4C1C4C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C9C6C9CDCACDB2AFB28A88 + 8A8B898BB2AFB2DEDCDEFBFBFBF5F5F5D5D2D5D2D0D2EAE9EAF7F7F7FBFBFBFE + FEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6F5F6DDDBDDD8D6D8F6F6 + F6FBFBFBDEDCDEB2AFB28B898B8A888AB2AFB2CDCACDC9C6C9C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C4C1C4C0BCC0D3D0D3F6F6F6FBFBFBDEDCDEB3B0B39390 + 937270725353534646464B4B4B5252525C5C5C6868687676768686869A9A9AAE + AEAEC3C3C3D7D7D7E7E7E7F2F2F2FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF8F8F8EDEDEDDDDDDDC6C6 + C6ADADAD9595957F7F7F6C6C6C6363636E6D6E8A888AA8A5A8D1CFD1F5F4F5FD + FDFDDEDDDEC2BFC2C2BFC2C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C7C4C7CDCA + CDBEBCBE959295868486A4A1A4D1CFD1F5F4F5FCFCFCDDDCDDCECCCEE3E3E3F5 + F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFEEEDEED6D4D6E0DFE0FDFDFDF5F4F5D1CFD1A4A1A486848695 + 9295BEBCBECDCACDC7C4C7C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C2BFC2C2BF + C2DEDDDEFDFDFDF5F4F5D1CFD1A8A5A88A888A6765674B4B4B4747474D4D4D54 + 54545F5F5F6C6C6C7F7F7F959595ADADADC6C6C6DDDDDDEDEDEDF8F8F8FEFEFE + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFEFEFEFEFE + FEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFD + FDF6F6F6E9E9E9D5D5D5BABABA9E9E9E8383836B6B6B6C6B6C848284A09DA0C6 + C3C6EEEDEEFFFFFFE8E7E8C6C3C6C1BDC1C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6CCC9CCC6C3C69F9C9F848284999799C6C3C6EEEDEEFFFFFFE7E6E7CD + CACDDDDBDDF4F4F4F9F9F9FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8E6E8D3D0D3E9 + E8E9FFFFFFEEEDEEC6C3C69997998482849F9C9FC6C3C6CCC9CCC6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C1BDC1C6C3C6E8E7E8FFFFFFEEEDEEC6C3C6A0 + 9DA0848284615F614444444949494F4F4F5A5A5A6B6B6B8383839E9E9EBABABA + D5D5D5E9E9E9F6F6F6FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF6B5E6BFFFF + FFFEFEFEFEFEFEFCFCFCFBFBFBFBFBFBFCFCFCFDFDFDFEFEFEFEFEFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFDFDFDF5F5F5E8E8E8D3D3D3B6B6B69797977D7C7D7B + 797B989598BBB8BBE6E4E6FEFEFEF1F0F1CDCACDC0BCC0C5C2C5C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6CAC7CACBC8CBAAA7AA868486918E91BAB7BAE6E4E6FE + FEFEEFEEEFD0CDD0D7D5D7EEEEEEF8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFAFAFAE1E0E1D4D1D4F1F1F1FEFEFEE6E4E6BAB7BA918E91 + 868486AAA7AACBC8CBCAC7CAC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C5C2C5C0 + BCC0CDCACDF1F0F1FEFEFEE6E4E6BBB8BB9895987977795A595A474747515151 + 6262627A7A7A979797B6B6B6D3D3D3E8E8E8F5F5F5FDFDFDFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF000080FFFFFFFDFDFDFBFBFBF8F8F8F5F5F5F4F4F4F5F5F5F8 + F8F8FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF7F7F7EAEAEAD5 + D5D5ACACAC848284918F91B1AEB1DCDADCFAFAFAF8F8F8D5D3D5C0BDC0C4C1C4 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C8C5C8CDCACDB5B2B58C8A8C8A888AAF + ACAFDCDADCFAFAFAF7F7F7D6D4D6D1CFD1E8E8E8F6F6F6FBFBFBFDFDFDFEFEFE + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4F4F4DAD9DA + D9D8D9F8F8F8FAFAFADCDADCAFACAF8A888A8C8A8CB5B2B5CDCACDC8C5C8C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C4C1C4C0BDC0D5D3D5F8F8F8FAFAFADCDADC + B1AEB1918F91716F715C5C5C6262627A7A7A999999B9B9B9D5D5D5EAEAEAF7F7 + F7FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFE + FEFCFCFCFCFCFCFCFCFCFDFDFDFEFEFEFEFEFE800080FEFEFEFBFBFBF7F7F7F2 + F2F2ECECECE9E9E9E9E9E9EDEDEDF2F2F2F8F8F8FCFCFCFEFEFEFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFEFEFEF9F9F9E5E5E5A4A3A4898789A6A3A6CFCCCFF3F3F3FEFEFEE1DFE1 + C3C0C3C2BFC2C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CDCACDC1BEC197 + 9597858385A19EA1CFCCCFF3F3F3FDFDFDE0DEE0CECCCEE2E1E2F5F5F5FAFAFA + FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFEDECEDD5D3D5E3E1E3FEFEFEF3F3F3CFCCCFA19E + A1858385979597C1BEC1CDCACDC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C2BFC2C3C0C3E1DFE1FEFEFEF3F3F3CFCCCFA6A3A6898789777577848484A4A4 + A4C2C2C2DCDCDCEEEEEEF9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFDFDFDFBFBFBF8F8F8F5F5F5F4F4F4F5F5F5F8F8F8FAFAFAFCFCFC00 + 4F7BFEFEFEF9F9F9F2F2F2E9E9E9E0E0E0D9D9D9D9D9D9DDDDDDE6E6E6EFEFEF + F7F7F7FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFB8684869D9B9DC5C2C5E7E6E7 + FFFFFFEBE9EBC7C4C7C0BDC0C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CC + C9CCC7C4C7A29FA2848284979597C3C0C3ECEBECFFFFFFE9E8E9CCC9CCDBD9DB + F1F1F1F8F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEE6E5 + E6D2D0D2EBEAEBFFFFFFECEBECC3C0C3979597848284A29FA2C7C4C7CCC9CCC6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C0BDC0C7C4C7EBE9EBFFFFFFE7E6 + E7C5C2C59D9B9D848284B3B3B3CECECEE5E5E5F3F3F3FBFBFBFEFEFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF5F5F5EFEFEFE9E9E9E7E7E7E9 + E9E9EEEEEEF4F4F4F9F9F9800080FEFEFEF8F8F8EEEEEEE1E1E1D3D3D3C7C7C7 + C5C5C5C9C9C9D3D3D3E0E0E0EDEDEDF6F6F6FBFBFBFEFEFEFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE + A8A8A8ACA9ACDEDCDEFFFFFFCBC8CBBEBABEC5C2C5C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6CAC7CACCC8CCADAAAD8785878F8C8FB7B4B7E3E1E3FDFDFDF3F2F3 + D0CFD0D4D3D4EBEBEBF7F7F7FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8DFDEDFD5D3D5F3F2F3FDFDFDE3E1E3B7 + B4B78F8C8F878587ADAAADCCC8CCCAC7CAC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C5C2C5BEBABECBC8CBFFFFFFDEDCDEACA9AC8B8B8BC3C3C3DCDCDCEEEEEEF8 + F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF4F4F4EA + EAEAE0E0E0D8D8D8D4D4D4D7D7D7E0E0E0EBEBEBF4F4F4000080FEFEFEF7F7F7 + ECECECDCDCDCC9C9C9B8B8B8B0B0B0B3B3B3BDBDBDCCCCCCDDDDDDEBEBEBF5F5 + F5FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFEBEBEB8B898BBFBCBFF9F9F9DFDDDFC0BDC0C7C4 + C7C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C7C4C7CDCACDBAB7BA908E90878587A9A6A9D7D4D7 + F8F7F8FBFBFBDAD8DACBC8CBE6E5E6F5F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1 + F1F1D1CED1DAD8DAFBFBFBF8F7F8D7D4D7A9A6A9878587908E90BAB7BACDCACD + C7C4C7C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C7C4C7C0BDC0DFDDDFF9F9F9BFBCBF858385B0 + B0B0D2D2D2E7E7E7F5F5F5FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFDFDFDF6F6F6ECECECDCDCDCCCCCCCC1C1C1BCBCBCC1C1C1CFCFCFE0E0E0 + EEEEEE800080FEFEFEF8F8F8ECECECDADADAC4C4C4AEAEAEA1A1A19E9E9EA6A6 + A6B5B5B5C8C8C8DADADAE9E9E9F2F2F2F9F9F9FDFDFDFEFEFEFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEBDBCBD9693 + 96DAD8DAFEFDFEC8C5C8C3C0C3C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CDCACDC3C0C39A979A848284 + 9E9C9ECCC9CCF2F1F2FEFDFEE3E2E3C9C7C9DDDCDDF4F4F4F9F9F9FCFCFCFEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE7E6E7CDCBCDE3E2E3FFFEFFF2F1F2 + CCC9CC9E9C9E8482849A979AC3C0C3CDCACDC6C3C6C6C3C6C6C3C6C6C3C6C6C3 + C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C3C0C3C8C5C8FE + FDFEDAD8DA969396949394C8C8C8E0E0E0F0F0F0FAFAFAFEFEFEFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF0F0F0E1E1E1CCCCCCB6B6B6A8A8A8 + A3A3A3AAAAAABDBDBDD3D3D3E6E6E6000080FEFEFEF9F9F99C9CDF9090D4C5C5 + C5ABABAB9898988F8F8F9191919D9D9DB0B0B0C4C4C4D7D7D7E6E6E6F0F0F0F8 + F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFAFAFA939393B0ADB0F5F4F5ECEBECBFBCBFC6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6CBC8CBC9C6C9 + A4A2A4858385959295C0BDC0EAE8EAFFFFFFEBEAEBCFCDCFD9D8D9F2F1F2F8F8 + F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FDFCFDE1E0E1D3D1D3EDECEDFFFFFFEAE8EAC0BDC0959295858385A4A2A4C9C6 + C9CBC8CBC6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6BFBCBFECEBECF5F4F5B0ADB0848484BBBBBBD6D6D6EAEAEAF6F6F6 + FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF6F6F6E9E9E9 + D5D5D5BBBBBBA1A1A19090908C8C8C959595ACACACC7C7C7DFDFDF033304FFFF + FFFBFBFBBABAE71414C77B7BC9B1B1B1999999888888828282868686959595AA + AAAABFBFBFD3D3D3E3E3E3EFEFEFF8F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFED2D1D2908D90CECBCEFE + FFFED2CFD2C1BEC1C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6 + C9C6C9CCC9CCAFADAF8987898D8B8DB4B1B4E1DFE1FCFCFCF1F0F1D7D5D7D5D4 + D5EEEEEEF8F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8DDDBDDDFDDDFF5F4F5FCFC + FCE1DFE1B4B1B48D8B8D898789AFADAFCCC9CCC9C6C9C6C3C6C6C3C6C6C3C6C6 + C3C6C6C3C6C6C3C6C6C3C6C6C3C6C1BEC1D2CFD2FEFFFECECBCE908D909F9E9F + CBCBCBE3E3E3F2F2F2FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFBFBFBF1F1F1E0E0E0C8C8C8AAAAAA8784846E65657979798484849E9E + 9EBDBDBDD8D8D8000080FFFFFFFDFDFDBDBDEA1414C71414C75252C3A0A0A088 + 88887979797676767D7D7D8F8F8FA5A5A5BCBCBCD1D1D1E4E4E4F1F1F1F9F9F9 + FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFDFDFD9D9C9DA3A1A3EEEDEEF5F4F5C0BCC0C5C2C5C6C3C6C6C3C6C6C3C6 + C6C3C6C6C3C6C7C4C7CDCACDBCB9BC929092868486A6A3A6D4D1D4F7F6F7F9F9 + F9DDDBDDDAD9DAEBEAEBF8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFF6F5F6E5E4E5E5E3E5FCFCFCF7F6F7D4D1D4A6A3A6868486929092BC + B9BCCDCACDC7C4C7C6C3C6C6C3C6C6C3C6C6C3C6C6C3C6C5C2C5C0BCC0F5F4F5 + EEEDEEA3A1A3878687C0C0C0DADADAECECECF8F8F8FDFDFDFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF8F8F8ECECECD7D7D7BCBCBC7461613200 + 003D14146C6C6C7A7A7A959595B8B8B8D4D4D4800080FFFFFFFEFEFEC0C0ED14 + 14C71414C71414C74C4CBC8D8D8D7777776B6B6B6B6B6B7676768B8B8BA4A4A4 + BEBEBED6D6D6E8E8E8F5F5F5FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEE2E1E28A888AC4C1C4FDFDFDDBD9DB + C1BEC1C6C3C6C6C3C6C6C3C6C6C3C6CDC9CDC4C1C49C9A9C8482849C999CC9C6 + C9F0EFF0FEFEFEE3E2E3D8D6D8E8E7E8F7F7F7FBFBFBFDFDFDFEFEFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2F1F2E2E0E2EAE9EAFF + FFFFF0EFF0C9C6C99C999C8482849C9A9CC4C1C4CDC9CDC6C3C6C6C3C6C6C3C6 + C6C3C6C1BEC1DBD9DBFDFDFDC4C1C4898789AAA9AAD0D0D0E6E6E6F4F4F4FBFB + FBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF5F5F5E6E6 + E6CFCFCF918484320000320000320000625C5C7A7A7A969696B8B8B8D5D5D500 + 0080FFFFFFFFFFFFEEEEF91414C71414C71414C71414C72B2BBE71717D656565 + 5E5E5E646464777777909090ACACACC9C9C9E0E0E0F0F0F0FAFAFAFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE + AFAFAF9A979AE3E2E3FBFBFBC3C0C3C4C1C4C6C3C6CBC8CBCAC7CAA7A5A78583 + 85939093BDBABDE8E6E8FEFEFEEBEAEBD6D4D6E3E2E3F3F3F3FAFAFAFDFDFDFE + FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFDFDFDEEEDEEE0DEE0F1F0F1FEFEFEE8E6E8BDBABD939093858385 + A7A5A7CAC7CACBC8CBC6C3C6C4C1C4C3C0C3FBFBFBE3E2E39A979A908F90C6C6 + C6DDDDDDEFEFEFF9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFE + FEFEFEFEFCFCFCF2F2F2E0E0E0C7C7C7401414320000320000320000533D3D80 + 80809D9D9DBEBEBED9D9D900F50CFFFFFFFFFFFFFEFEFEA3A3E71414C71414C7 + 1414C71414C72121BE5656775959595B5B5B6B6B6B848484A1A1A1C1C1C1DADA + DAEDEDEDF8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFEFEFEF8C8B8CBAB7BAF9F9F9E4E3E4C1BEC1CECB + CEB5B2B58C8A8C8A888AAFACAFDCDADCFAFAFAF5F5F5D9D8D9DCDCDCEFEFEFF8 + F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9E9E8E9E2E0E2 + F8F8F8FAFAFADCDADCAFACAF8A888A8C8A8CB5B2B5CECBCEC1BEC1E4E3E4F9F9 + F9BAB7BA878687BABABAD7D7D7E9E9E9F5F5F5FCFCFCFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCFAFAFAF7F7F7F5F5 + F5F4F4F4F5F5F5F7F7F7F9F9F9FCFCFCF9F9F9EEEEEEDBDBDB8A777732000032 + 00003200003200003F16168D8D8DAAAAAAC8C8C8E0E0E0000080FFFFFFFFFFFF + FFFFFFFCFCFC8282DC1414C71414C71414C71414C71919C13F3F825959596868 + 688282829E9E9EBFBFBFD9D9D9ECECECF8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEC2C2C29492 + 94D7D5D7FEFEFEC8C5C88D8B8D868486A4A1A4D1CFD1F5F4F5FBFBFBDFDEDFD9 + D8D9EBEAEBF8F8F8FBFBFBFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFF5F4F5E4E3E4E6E5E6FDFDFDF5F4F5D1CFD1A4A1A48684 + 868D8B8DC8C5C8FEFEFED7D5D7949294A5A4A5D4D4D4E4E4E4F2F2F2FAFAFAFE + FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFB + FBF6F6F6F1F1F1EBEBEBE6E6E6E5E5E5E6E6E6EBEBEBF1F1F1F6F6F6F5F5F5E9 + E9E9D6D6D64B2222320000320000320000320000320000928C8CBCBCBCD6D6D6 + E9E9E9800080FFFFFFFFFFFFFFFFFFFDFDFDF3F3F32D2DCA1414C71414C71414 + C71414C71414C730309F676773878787A4A4A4C2C2C2DCDCDCEDEDEDF8F8F8FE + FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFDFDFD969596ACA9ACF5F4F5D5D4D5949194C6C3C6EEEDEEFF + FFFFE7E6E7D7D6D7E6E5E6F6F6F6FBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1F0F1E1DF + E1ECEBECFFFFFFEEEDEEC6C3C6949194D5D4D5F5F4F5ACA9AC8F8E8FDADADAE5 + E5E5EFEFEFF8F8F8FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFEFEFEFBFBFBF5F5F5ECECECE2E2E2D7D7D7D0D0D0CECECED1D1D1D9 + D9D9E4E4E4EEEEEEEFEFEFE5E5E5BDB7B7320000320000320000320000320000 + 3200008A7A7ACCCCCCE3E3E3F2F2F2000080FFFFFFFFFFFFFFFFFFFEFEFEF5F5 + F56262D21414C71414C71414C71414C71414C71414C72020BD949494B0B0B0CC + CCCCE3E3E3F1F1F1F9F9F9FEFEFEFFFFFFFEFEFEFEFEFEFDFDFDFCFCFCFDFDFD + FEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFED7D6D78E8C8ED1CFD1C7 + C4C7E7E5E7FEFEFEEEEEEED9D7D9E2E1E2F2F2F2F8F8F8FBFBFBFDFDFDFDFDFD + FDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFCFCFCEDECEDDFDEDFF2F1F2FEFEFEE7E5E7C7C4C7D1 + CFD18E8C8EC7C7C7EBEBEBF2F2F2F7F7F7FBFBFBFEFEFEFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF5F5F5EAEAEADDDDDDCCCCCCBD + BDBDB3B3B3B0B0B0B5B5B5C2C2C2D3D3D3E2E2E2E6E6E6DFDFDF927F7F320000 + 3200003200003200003200003200009E9191DADADAEDEDEDF8F8F87B7B7BFFFF + FFFFFFFFFFFFFFFEFEFEF5F5F57C7CD61414C71414C71414C71414C71414C714 + 14C71414C79999A5BEBEBED7D7D7EAEAEAF6F6F6FBFBFBFEFEFEFEFEFEFCFCFC + FAFAFAF8F8F8F6F6F6F6F6F6F8F8F8FBFBFBFCFCFCFEFEFEFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFEFEFEA2A2A2A7A4A7DAD8DAF9F9F9DFDEDFE2E1E2F2F1F2F9F9F9FBFBFB + FAFAFAF9F9F9F6F6F6F4F4F4F3F3F3F4F4F4F6F6F6F9F9F9FBFBFBFEFEFEFEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F8F9E7 + E6E7E2E1E2FAF9FADAD8DAA7A4A7A09FA0F4F4F4F6F6F6F9F9F9FCFCFCFEFEFE + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF5F5F5EB + EBEBDBDBDBC8C8C8B3B3B39F9F9F929292909090989898A9A9A9BFBFBFD4D4D4 + DDDDDDD8D8D8694A4A320000320000320000320000320000320000CECECEE5E5 + E5F5F5F5FCFCFC00CD19FFFFFFFFFFFFFFFFFFFFFFFFF7F7F79696DA1414C714 + 14C71414C71414C71414C71414C71414C78787B4C9C9C9E0E0E0F1F1F1FAFAFA + FDFDFDFFFFFFFDFDFDF9F9F9F5F5F5F0F0F0ECECECECECECEEEEEEF2F2F2F7F7 + F7FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE8E7E8908F90DAD8DAE3E1E3F2F1F2 + FCFCFCFDFDFDFDFDFDFAFAFAF5F5F5EFEFEFE9E9E9E5E5E5E3E3E3E4E4E4E8E8 + E8EDEDEDF3F3F3F8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFF5F4F5E3E2E3DAD8DA908F90E6E6E6FCFCFC + FDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFDFDFDF8F8F8EDEDEDDDDDDDC9C9C9B1B1B19A9A9A868686787878777777 + 808080949494AEAEAEC7C7C7D3D3D3D1D1D14317173200003200003200003708 + 08959292BABABAD7D7D7ECECECF9F9F9FFFFFF800080FFFFFFFFFFFFFFFFFFFF + FFFFF8F8F8B3B3E01414C71414C71414C71414C71414C71414C71414C78D8DBA + D1D1D1E7E7E7F6F6F6FDFDFDFEFEFEFFFFFFFBFBFBF5F5F5EEEEEEE6E6E6DDDD + DDDBDBDBDEDEDEE4E4E4ECECECF5F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FCFCFCF2F2F2FEFEFEFFFFFFFFFFFFFEFEFEFBFBFBF5F5F5ECECECE0E0E0D6D6 + D6CECECECBCBCBCCCCCCD2D2D2DBDBDBE5E5E5EEEEEEF5F5F5FAFAFAFDFDFDFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE + F2F2F2FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF1F1F1E2E2E2CECECEB6B6B69E9E9E + 8686867474746868686868687171718484849F9F9FBBBBBBCACACACACACA3200 + 003200003200003200005E4545A1A1A1C0C0C0DCDCDCEFEFEFFBFBFBFFFFFF00 + 0080FFFFFFFFFFFFFFFFFFFFFFFFF8F8F8B4B4E11414C71414C71414C71414C7 + 2626B97070873434BB9090BDD6D6D6EBEBEBF8F8F8FFFFFFFFFFFFFFFFFFFBFB + FBF2F2F2E7E7E7DADADACDCDCDC8C8C8CACACAD1D1D1DBDBDBE8E8E8F1F1F1F8 + F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF6F6 + F6ECECECDEDEDECDCDCDBCBCBCB1B1B1ABABABADADADB5B5B5C1C1C1CFCFCFDD + DDDDE9E9E9F2F2F2F9F9F9FDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF5F5F5E8E8E8 + D5D5D5BEBEBEA5A5A5898686573E3E411B1B411F1F5A50506B6B6B7C7C7C9595 + 95B1B1B1C2C2C2A09393320000320000320000320000827C7CA7A7A7C5C5C5DF + DFDFF2F2F2FCFCFCFFFFFF5E4C5FFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9C3C3E4 + 1414C71414C71414C71414C73F3FA47F7F7F979797BABABAD7D7D7ECECECFAFA + FAFFFFFFFFFFFFFFFFFFFAFAFAF1F1F1E3E3E3D2D2D2BFBFBFB6B6B6B3B3B3B9 + B9B9C5C5C5D4D4D4E2E2E2EDEDEDF5F5F5FAFAFAFDFDFDFEFEFEFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFEFEFEFAFAFAF1F1F1E2E2E2CECECEB6B6B6A1A1A19393938C8C8C8D + 8D8D979797A5A5A5B6B6B6C8C8C8D8D8D8E7E7E7F2F2F2F9F9F9FDFDFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFFFF + FEFEFEF9F9F9EFEFEFDEDEDEC8C8C8AFAFAF857C7C3708083200003200003200 + 003506066A67677A7A7A909090AAAAAABBBBBB9A8E8E32000032000032000042 + 1919909090AAAAAAC8C8C8E2E2E2F3F3F3FDFDFDFFFFFF005047FFFFFFFFFFFF + FFFFFFFFFFFFF9F9F9ECECEC1414C71414C71414C71414C72C2CB37F7F7F9696 + 96B9B9B9D6D6D6ECECECF9F9F9FFFFFFFFFFFFFFFFFFFBFBFBF1F1F1E2E2E2CE + CECEB8B8B8A8A8A8A0A0A0A1A1A1ABABABBCBCBCCDCDCDDCDCDCE9E9E9F2F2F2 + F8F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF7F7F7EAEAEAD7D7D7BEBEBEA3 + A3A38C8C8C7D7D7D7676767878788181818F8F8F9F9F9FB1B1B1C5C5C5D7D7D7 + E6E6E6F2F2F2FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFBFBFB + FAFAFAF9F9F9F9F9F9FAFAFAF9F9F9F3F3F3E7E7E7D4D4D4BCBCBC8F85853809 + 09320000320000320000320000320000553C3C7F7F7F8F8F8FA5A5A5B6B6B675 + 5C5C320000320000320000513232929292ADADADCBCBCBE3E3E3F5F5F5FEFEFE + FFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFAFAFAECECEC1414C71414C71414 + C71414C72D2DB47F7F7F959595B8B8B8D5D5D5EBEBEBF9F9F9FFFFFFFFFFFFFF + FFFFFBFBFBE7E4E4AC9C9CD0D0D0B7B7B7A2A2A29393938E8E8E929292A1A1A1 + B3B3B3C5C5C5D7D7D7E7E7E7F2F2F2F9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF4 + F4F4E4E4E4CECECEB0B0B09393937D7D7D7070706B6B6B707070797979838383 + 9090909F9F9FB1B1B1C5C5C5D8D8D8E9E9E9F4F4F4FBFBFBFEFEFEFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE + FEFEFEFBFBFBF7F7F7F2F2F2EFEFEFECECECECECECEFEFEFEFEFEFEBEBEBDEDE + DECBCBCBABA8A83E131332000032000032000032000032000032000041181884 + 8484909090A3A3A3B2B2B2745B5B3200003200003200005C4343939393AFAFAF + CDCDCDE5E5E5F5F5F5FEFEFEFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFBFB + FBEEEEEE1414C71414C71414C71414C72D2DB47E7E7E949494B6B6B6D4D4D4EA + EAEAF8F8F8FFFFFFFFFFFFFFFFFFFDFDFDDDD7D73200008F7979BDBDBDA4A4A4 + 8E8E8E8080807E7E7E868686979797ADADADC3C3C3D9D9D9E9E9E9F5F5F5FBFB + FBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFCFCFCF2F2F2E0E0E0C6C6C68A7D7D5233334725254F3636 + 6660607575757E7E7E8585858C8C8C959595A2A2A2B4B4B4C8C8C8DCDCDCECEC + ECF6F6F6FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFEFEFEFDFDFDF9F9F9F3F3F3ECECECE3E3E3DCDCDCD9D9D9D9D9 + D9DEDEDEE2E2E2E0E0E0D5D5D5C4C4C459363632000032000032000032000032 + 0000320000320000320000838080929292A1A1A1AFAFAF6A4E4E320000320000 + 3200006C5C5C949494B1B1B1CFCFCFE6E6E6F7F7F7FFFFFFFFFFFF623063FFFF + FFFFFFFFFFFFFFFFFFFFFBFBFBEFEFEF3838CB1414C71414C71414C72D2DB47E + 7E7E929292B5B5B5D3D3D3E9E9E9F8F8F8FFFFFFFFFFFFFFFFFFFEFEFEFAFAFA + 320000320000613E3EA3A0A08F8F8F7B7B7B717171747474818181989898B1B1 + B1CBCBCBE1E1E1F0F0F0FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBEFEFEFDCDCDC8B7878 + 3200003200003200003200003200005233338680809595959696969696969B9B + 9BA7A7A7B9B9B9CECECEE1E1E1EFEFEFF9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF9F9F9F2F2F2E7E7E7DADA + DACECECEC2C2C2BDBDBDBFBFBFC7C7C7CFCFCFD1D1D1CBCBCB816B6B32000032 + 0000320000320000320000320000320000320000320000756969929292A0A0A0 + ADADAD512C2C320000320000320000716464959595B3B3B3D1D1D1E8E8E8F8F8 + F8FFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFBFBFBEFEFEF4545CC14 + 14C71414C71414C72D2DB47D7D7D919191B3B3B3D1D1D1E9E9E9F8F8F8FFFFFF + FFFFFFFFFFFFFFFFFFFDFDFD3200003200003200004216167C70707A7A7A6B6B + 6B6868687474748B8B8BA6A6A6C3C3C3DCDCDCEDEDEDF8F8F8FEFEFEFEFEFEFE + FEFEFEFEFEFDFDFDFDFDFDFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF + FBFBFBEEEEEECFCCCC3A0B0B320000320000320000320000320000320000390A + 0A887878AAAAAAA1A1A19D9D9DA1A1A1ADADADC0C0C0D5D5D5E7E7E7F4F4F4FC + FCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFA + FAF2F2F2E6E6E6D6D6D6C3C3C3B1B1B1A2A2A29C9C9CA0A0A0ABABABB9B9B9C2 + C2C2B9B6B63A0B0B320000320000390A0AA49B9BA497976C4D4D320000320000 + 3200006C59599393939F9F9FACACAC502B2B3200003200003200007265659797 + 97B4B4B4D2D2D2E9E9E9F8F8F8FFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFF + FFFFFCFCFCF1F1F14646CD1414C71414C71414C72D2DB47D7D7D8F8F8FB1B1B1 + D0D0D0E7E7E7F7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFEFEFE7C5D5D3200003200 + 003200003200005337376764646565656F6F6F868686A3A3A3C1C1C1DADADAED + EDEDF7F7F7FCFCFCFCFCFCF9F9F9F7F7F7F5F5F5F4F4F4F5F5F5F7F7F7FAFAFA + FCFCFCFEFEFEFFFFFFFFFFFFFBFBFBEEEEEE9A87873200003200003200003200 + 003200003200003200003200003200008B7878B2B2B2A5A5A5A1A1A1A5A5A5B4 + B4B4C8C8C8DDDDDDEEEEEEF8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFCFCFCFCFDFDFDFEFEFEFE + FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFEFEFEFBFBFBF4F4F4E8E8E8D6D6D6C1C1C1AAAAAA9494948383837E + 7E7E838383939393A4A4A4B3B3B36D5151320000320000320000998C8CCACACA + D3D3D3B5ACAC3200003200003200006047479292929E9E9EAAAAAA502B2B3200 + 00320000320000776E6E989898B6B6B6D4D4D4EAEAEAF8F8F8FFFFFFFFFFFF00 + 0080FFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF2F2F24646CD1414C71414C71414C7 + 1919C37D7D7D8E8E8EAFAFAFCECECEE6E6E6F6F6F6FEFEFEFFFFFFFFFFFFFFFF + FFFFFFFFFCFCFC795A5A320000320000320000320000390D0D5848487373738B + 8B8BA7A7A7C5C5C5DDDDDDEFEFEFF6F6F6F9F9F9F6F6F6F0F0F0EAEAEAE6E6E6 + E4E4E4E6E6E6EAEAEAF0F0F0F5F5F5FAFAFAFDFDFDFEFEFEFBFBFBEEEEEE866D + 6D3200003200003200003200003200003200003200003200003200003200008D + 7A7AB2B2B2A5A5A5A2A2A2ABABABBDBDBDD3D3D3E6E6E6F4F4F4FCFCFCFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFCF9F9F9F7F7F7F5 + F5F5F4F4F4F5F5F5F8F8F8FBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF7F7F7ECECECDADADAC3C3C3AA + AAAA9191917B7B7B6C6C6C696969717171838383979797AAAAAA512C2C320000 + 3200005C3939C4C4C4D1D1D1D8D8D8D7D7D73200003200003200005F46469292 + 929E9E9EAAAAAA4115153200003200003200008989899A9A9AB8B8B8D5D5D5EB + EBEBF9F9F9FFFFFFFFFFFF71B770FFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF2F2F2 + 7A7AD41414C71414C71414C71414C77C7C7C8D8D8DADADADCDCDCDE5E5E5F5F5 + F5FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF3F3F3471B1B32000032000032 + 0000320000320000451F1F908D8DB3B3B3CECECEE5E5E5F2F2F2F6F6F6F5F5F5 + EDEDEDE3E3E3D8D8D8D0D0D0CDCDCDCFCFCFD6D6D6E0E0E0EAEAEAF3F3F3F9F9 + F9FDFDFDFBFBFBEFEFEF5C36363200003200003200003809097E6E6EA8A2A28B + 75753C0D0D3200003200003B0C0CA49B9BADADADA3A3A3A5A5A5B3B3B3C8C8C8 + DDDDDDEFEFEFF9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFB + FBFBF6F6F6F0F0F0EAEAEAE6E6E6E5E5E5E8E8E8EDEDEDF3F3F3F9F9F9FDFDFD + FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF0 + F0F0E0E0E0CACACAAFAFAF9494947C7C7C5B4F4F5347475E5B5B6C6C6C808080 + 939393A7A7A7512C2C320000320000A49B9BCBCBCBD7D7D7DADADAD7D7D73200 + 003200003200005E45459090909E9E9EAAAAAA32000032000032000032000089 + 89899C9C9CBABABAD7D7D7ECECECFAFAFAFFFFFFFFFFFF000080FFFFFFFFFFFF + FFFFFFFFFFFFFDFDFDF3F3F37B7BD51414C71414C71414C71414C77C7C7C8C8C + 8CAAAAAACBCBCBE3E3E3F5F5F5FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF4 + F4F47F6363320000320000320000320000320000320000867979BFBFBFD8D8D8 + ECECECF5F5F5F5F5F5EEEEEEE1E1E1D0D0D0BFBFBFB3B3B3AEAEAEB1B1B1BBBB + BBC9C9C9D9D9D9E7E7E7F2F2F2F9F9F9FAFAFAF0F0F05D373732000032000032 + 0000776868A4A4A4BCBCBCD5D5D5DDDADA562D2D3200003200004E2525B6B6B6 + A7A7A7A1A1A1AAAAAABEBEBED4D4D4E8E8E8F6F6F6FDFDFDFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFEFEFEFBFBFBF5F5F5ECECECE1E1E1D7D7D7D1D1D1CFCFCFD4D4D4 + DDDDDDE8E8E8F2F2F2F9F9F9FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFD + FDFDFDFDFDFBFBFBF5F5F5E8E8E8D4D4D4B9B9B99C9C9C695959390D0D320000 + 320000350606605050878787999999AAAAAA532D2D3200004C2323C3C3C3D0D0 + D0D8D8D8DADADAD3D3D33200003200003200005C43438F8F8F9E9E9EAAAAAA32 + 00003200003200003200008B8B8B9E9E9EBCBCBCD8D8D8EDEDEDFAFAFAFFFFFF + FFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF4F4F47B7BD51414C71414 + C71414C71414C77B7B7B8A8A8AA9A9A9C9C9C9E3E3E3F4F4F4FEFEFEFFFFFFFF + FFFFFFFFFFFFFFFFFEFEFEF5F5F58B7272320000320000320000320000320000 + 320000857575C8C8C8E0E0E0F1F1F1F7F7F7F1F1F1E5E5E5D2D2D2BBBBBBA5A5 + A59595958E8E8E9191919D9D9DAFAFAFC3C3C3D7D7D7E7E7E7F2F2F2F8F8F8F2 + F2F25D38383200003200003809099C9C9CA7A7A7BEBEBED5D5D5EAEAEAEAE7E7 + 572E2E320000320000785F5FABABABA1A1A1A4A4A4B4B4B4CBCBCBE0E0E0F2F2 + F2FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF4F4F4E9E9E9DBDBDBCBCBCB + BDBDBDB3B3B3B2B2B2B9B9B9C8C8C8D8D8D8E8E8E8F4F4F4FBFBFBFEFEFEFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFC + FCFCFAFAFAF8F8F8F7F7F7F6F6F6F7F7F7F5F5F5ECECECDDDDDDC5C5C5A8A8A8 + 654F4F3200003200003200003200003200003708089B9B9BA8A8A8B4B4B4542E + 2E320000816B6BC6C6C6D1D1D1D7D7D7D6D6D6CCCCCC3200003200003200005A + 41418E8E8E9F9F9FACACAC3200003200003200003708088C8C8C9F9F9FBDBDBD + DADADAEEEEEEFBFBFBFFFFFFFFFFFF00C623FFFFFFFFFFFFFFFFFFFFFFFFFEFE + FEF5F5F57C7CD61414C71414C71414C71414C77A7A7A898989A7A7A7C8C8C8E1 + E1E1F3F3F3FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF6F6F6A28F8F320000 + 320000320000320000503030370808705757CDCDCDE5E5E5F4F4F4F7F7F7ECEC + ECDBDBDBC3C3C3A7A7A78F8F8F7D7D7D757575777777848484979797ADADADC4 + C4C4D9D9D9E9E9E9F3F3F3F2F2F25E39393200003200004F2929A1A1A1A8A8A8 + BDBDBDD4D4D4E9E9E9F7F7F7E1DBDB3D0E0E3200003B0C0CA8A5A5A1A1A19F9F + 9FACACACC2C2C2D9D9D9ECECECF9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF3F3F3 + E8E8E8D8D8D8C5C5C5B1B1B1A0A0A09595959595959F9F9FB2B2B2C8C8C8DDDD + DDEDEDEDF8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFEFEFEFCFCFCF9F9F9F5F5F5F0F0F0ECECECEAEAEAEBEBEBEDEDEDEBEBEB + E2E2E2D1D1D1B7B7B7725F5F3200003200003200003200003200003200003200 + 00B6B6B6BEBEBEC4C4C4573131320000B0AAAAC9C9C9D2D2D2D4D4D4CECECEB0 + AAAA3200003200003200005940408D8D8DA1A1A1ADADAD320000320000320000 + 4621218C8C8CA1A1A1BFBFBFDBDBDBEFEFEFFBFBFBFFFFFFFFFFFF7C777EFFFF + FFFFFFFFFFFFFFFFFFFFFEFEFEF6F6F6A4A4DC1414C71414C71414C71414C760 + 608D878787A4A4A4C5C5C5E0E0E0F2F2F2FCFCFCFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFF7F7F7BAAEAE3200003200003200003200008383838C8989A09A9ACFCF + CFE6E6E6F5F5F5F5F5F5E7E7E7D2D2D2B5B5B59696967D7D7D6C6C6C65656568 + 68687474748686869B9B9BB2B2B2C9C9C9DDDDDDECECECF0F0F0775757320000 + 320000502B2BA6A6A6AAAAAABCBCBCD1D1D1E6E6E6F5F5F5FBFBFB937A7A3200 + 00320000735A5AA1A1A19B9B9BA4A4A4B9B9B9D1D1D1E7E7E7F6F6F6FEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE + FDFDFDF9F9F9F2F2F2E7E7E7D7D7D7C2C2C2ACACAC9797978686867D7D7D8080 + 808D8D8DA2A2A2BCBCBCD5D5D5E8E8E8F5F5F5FDFDFDFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFEFEFEFDFDFDFBFBFBF6F6F6EFEFEFE7E7E7E0E0E0DADADA + D9D9D9DBDBDBE0E0E0DFDFDFD6D6D6C4C4C49289893200003200003200003200 + 00320000320000320000320000A89B9BD3D3D3D4D4D45934344F2626C8C8C8CC + CCCCD1D1D1CECECEC4C4C4928686320000320000320000573E3E8E8E8EA4A4A4 + 9184843200003200003200004621218E8E8EA3A3A3C1C1C1DCDCDCEFEFEFFBFB + FBFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7B2B2DF14 + 14C71414C71414C71414C760608D868686A2A2A2C4C4C4DEDEDEF1F1F1FCFCFC + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8BCAFAF3200003200003200003200 + 00838383929292AFAFAFCECECEE6E6E6F3F3F3F2F2F2E2E2E2C9C9C99289894C + 2A2A411C1C4E38385C59596565657171717E7E7E8F8F8FA3A3A3B9B9B9D0D0D0 + E3E3E3EDEDED8F7676320000320000542E2EADADADADADADBBBBBBCECECEE2E2 + E2F2F2F2FBFBFBEAE7E73200003200003A0B0BA1A1A19898989E9E9EB1B1B1CA + CACAE2E2E2F3F3F3FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFEFEFEFDFDFDF8F8F8F2F2F2E6E6E6D5D5D5C1C1C1AAAAAA9393 + 9380808067677E7070707777778686869D9D9DB6B6B6D1D1D1E6E6E6F3F3F3FC + FCFCFFFFFFFFFFFFFEFEFEFEFEFEFDFDFDFCFCFCFBFBFBF8F8F8F3F3F3EBEBEB + E0E0E0D4D4D4C9C9C9C4C4C4C4C4C4C9C9C9D1D1D1D2D2D2CACACAB6B6B6461D + 1D320000320000320000320000320000320000320000320000B8ABABE4E4E4E1 + E1E13200005A3535CECECECECECECDCDCDC5C5C5B6B6B6715B5B320000320000 + 3200005C4646909090A7A7A79185853200003200003200004621218F8F8FA5A5 + A5C3C3C3DDDDDDF1F1F1FCFCFCFFFFFFFFFFFF761876FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFF8F8F8B3B3E01414C71414C71414C71414C760608D858585A0A0A0 + C2C2C2DDDDDDF0F0F0FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8BCAF + AF320000320000320000320000838383919191ADADADCDCDCDE5E5E5F1F1F1EF + EFEFDDDDDDA79D9D380909320000320000320000350606584545787878828282 + 8C8C8C9A9A9AADADADC2C2C2D8D8D8E7E7E7A69393320000320000553030B4B4 + B4AFAFAFB7B7B7C8C8C8DBDBDBECECECF8F8F8F7F7F777575732000032000078 + 6565959595989898AAAAAAC3C3C3DDDDDDEFEFEFFBFBFBFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FEFEFEFEFEFEFEFEFEFEFEFEFEFEFEFDFDFDFBFBFBF8F8F8F0F0F0E4E4E4D4D4 + D4BFBFBFA8A8A89292927878833131AC1414C74C4C907B7B7B8D8D8DA3A3A3BB + BBBBD4D4D4E6E6E6F4F4F4FBFBFBFEFEFEFCFCFCFAFAFAF7F7F7F5F5F5F3F3F3 + F0F0F0ECECECE6E6E6DBDBDBCCCCCCBCBCBCB0B0B0ACACACB0B0B0B9B9B9C5C5 + C5C7C7C7BFBFBF7D6A6A32000032000032000032000032000032000032000032 + 0000320000C3B6B6F1F1F1ECECEC3200005D3737D4D4D4CECECEC7C7C7B8B8B8 + A5A5A54F2C2C3200003200003200006B5E5E959595ABABAB9588883200003200 + 003200004621218F8F8FA7A7A7C5C5C5DFDFDFF2F2F2FCFCFCFFFFFFFFFFFF00 + 0900FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8B4B4E11414C71414C71414C7 + 1414C760608D8484849E9E9EC0C0C0DCDCDCEFEFEFFBFBFBFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFF9F9F9EBEBEB320000320000320000320000848484909090AC + ACACCBCBCBE3E3E3EFEFEFECECECD9D9D9542E2E320000320000320000320000 + 3200003200006956568F8F8F929292979797A3A3A3B6B6B6CCCCCCE0E0E0C8BF + BF320000320000583232B9B9B9AEAEAEB1B1B1BEBEBECFCFCFE1E1E1F0F0F0F2 + F2F2B0A0A0320000320000553232929292939393A3A3A3BDBDBDD7D7D7ECECEC + FAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFEFEFEFDFDFDFBFBFBF9F9F9F8F8F8F7F7F7F6F6F6F2F2 + F2ECECECE1E1E1D1D1D1BCBCBCA5A5A58F8F8F6F6F862626B71414C71414C714 + 14C76161A4A1A1A1B4B4B4C8C8C8DCDCDCEBEBEBF5F5F5FBFBFBFBFBFBF8F8F8 + F2F2F2EBEBEBE6E6E6E3E3E3E0E0E0DBDBDBD4D4D4C6C6C6B4B4B4A4A4A49999 + 99989898A1A1A1B0B0B0BCBCBCBFBFBFB6B6B640141432000032000032000032 + 00003809099A8E8ED7D7D7D4CECE572E2EEFECECF9F9F9F5F5F53200008B7272 + D8D8D8CDCDCDBEBEBEAAAAAA8C89893200003200003200003200006C5F5F9A9A + 9AB0B0B0968A8A3200003200003200005C4343909090A9A9A9C7C7C7E0E0E0F2 + F2F2FDFDFDFFFFFFFFFFFF2AA32CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8 + D0D0E61414C71414C71414C71414C74D4D9B8383839C9C9CBFBFBFDADADAEFEF + EFFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAECECEC32000032000032 + 00003200008484848F8F8FAAAAAAC9C9C9E2E2E2EDEDEDE9E9E9C0BABA320000 + 3200003200003200003200003200003200003200007C6D6D9C9C9C9999999C9C + 9CAAAAAAC0C0C0D7D7D7E7E7E7481C1C320000320000BABABAAAAAAAA7A7A7B0 + B0B0BFBFBFD1D1D1E1E1E1E7E7E7D5D2D23200003200003200008885858D8D8D + 9C9C9CB7B7B7D3D3D3E9E9E9F8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDFAFAFAF6F6F6F2F2 + F2ECECECEAEAEAE8E8E8E3E3E3DADADACCCCCCB9B9B9A3A3A38C8C8C68688A19 + 19C31414C71414C71414C71414C71414C77D7DC0CBCBCBDADADAE7E7E7F1F1F1 + F8F8F8FAFAFAF7F7F7EFEFEFE4E4E4D9D9D9D1D1D1CCCCCCC8C8C8C5C5C5BEBE + BEB0B0B09E9E9E8F8F8F898989868383949191ADADADBBBBBBBCBCBC89797932 + 0000320000320000320000370808958C8CCBCBCBE3E3E3F3F3F3FCFCFCFEFEFE + FDFDFDF8F8F83200008D7474D9D9D9C8C8C8B2B2B29999995940403200003200 + 00320000320000807D7DA1A1A1B6B6B68875753200003200003200005C434392 + 9292AAAAAAC8C8C8E2E2E2F3F3F3FDFDFDFFFFFFFFFFFF000080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFF9F9F9EBEBEB1414C71414C71414C71414C746469F8282 + 829A9A9ABCBCBCD9D9D9EDEDEDFAFAFAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA + FAFAEDEDED3200003200003200003200007F7C7C8F8F8FA9A9A9C8C8C8E1E1E1 + ECECECE6E6E69683833200003200003200003200003200003200003200003200 + 00390A0A9993939E9E9E999999A1A1A1B5B5B5CDCDCDE0E0E0A3909032000032 + 0000958989A3A3A39A9A9A9E9E9EAAAAAABABABACBCBCBD4D4D4D1D1D13A0B0B + 3200003200006D5D5D878787969696B2B2B2CFCFCFE6E6E6F6F6F6FEFEFEFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFBFBFBF6F6F6EFEFEFE7E7E7DEDEDED9D9D9D4D4D4CCCCCCC0C0C0B1B1B19E + 9E9E8989896565861919C11414C71414C71414C71414C71414C71414C71F1FC8 + E0E0E0E9E9E9F2F2F2F7F7F7F9F9F9F7F7F7EFEFEFE2E2E2D1D1D1C1C1C1B4B4 + B4AEAEAEAAAAAAA8A8A8A4A4A49999998A8A8A8080805D4747370808827676B1 + B1B1BDBDBDBBBBBB5835353200003200003200003200006C5656B9B9B9D5D5D5 + EAEAEAF8F8F8FEFEFEFFFFFFFEFEFEFAFAFA3200008C7373D4D4D4BDBDBDA3A3 + A3776E6E3200003200003200003200003200008D8D8DAAAAAABCBCBC785F5F32 + 00003200003200005C4343929292ADADADCACACAE3E3E3F4F4F4FEFEFEFFFFFF + FFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAECECEC1414C71414 + C71414C71414C746469F818181989898BBBBBBD7D7D7ECECECFAFAFAFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFBFBFBEEEEEE3C0D0D320000320000320000706363 + 8E8E8EA7A7A7C6C6C6E0E0E0E9E9E9E4E4E46C4D4D3200003200003200003200 + 00360707624949390A0A3200003200005A3737A3A3A39898989B9B9BABABABC3 + C3C3D8D8D8E2E2E2471B1B320000694D4D9898988989898787878F8F8F9E9E9E + B0B0B0BABABABABABA502B2B320000320000533737808080909090ADADADCBCB + CBE4E4E4F5F5F5FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF2F2F2E9E9E9DCDCDCCECECEC4C4C4BB + BBBBB0B0B0A3A3A39595958484846363851919C11414C71414C71414C71414C7 + 1414C71414C71414C72E2ECBEFEFEFF5F5F5F9F9F9FBFBFBF8F8F8F2F2F2E5E5 + E5D2D2D2BCBCBCA6A6A69696968F8F8F8C8C8C8C8C8C8C8C8C8484845F4C4C3F + 1616320000320000877A7AB8B8B8C1C1C1B2AFAF320000320000320000320000 + 3D1111A4A4A4C3C3C3DDDDDDF0F0F0FBFBFBFFFFFFFFFFFFFEFEFEEDEAEA3200 + 00A08D8DCBCBCBB0B0B08C89893F1616320000320000320000320000441E1E98 + 9898B4B4B4C3C3C37A61613200003200003200005C4343939393AEAEAECCCCCC + E4E4E4F5F5F5FEFEFEFFFFFFFFFFFF003C00FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFAFAFAEDEDED1414C71414C71414C71414C746469F808080969696B9B9B9D6 + D6D6ECECECF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBEFEFEF5C3636 + 3200003200003200007063638D8D8DA6A6A6C5C5C5DDDDDDE8E8E8E3E3E35933 + 333200003200003200003200006350509A9A9A9F96963B0C0C3200003200008C + 7F7F989898959595A2A2A2B9B9B9CFCFCFDADADAA494943200004014148C8C8C + 7A7A7A7272727676768181819090909B9B9B9D9D9D4B2525320000320000431D + 1D7979798B8B8BA9A9A9C8C8C8E2E2E2F3F3F3FDFDFDFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAF1F1F1E3 + E3E3D3D3D3BFBFBFB0B0B0A1A1A19494948686867A7A7A4C4C901919C11414C7 + 1414C71414C71414C71414C74141C89F9FD77272D85A5AD6FAFAFAFCFCFCFEFE + FEFCFCFCF7F7F7EBEBEBD9D9D9C1C1C1A5A5A58C8C8C7C7C7C74747472727270 + 6D6D584242390E0E3200003200003200003200008C7F7FBEBEBEC4C4C4887575 + 320000320000320000320000665050ADADADCBCBCBE4E4E4F5F5F5FDFDFDFFFF + FFFFFFFFFEFEFEEBE8E88F7676CFCCCCBFBFBFA1A1A14B292932000032000032 + 0000320000320000513131A4A4A4BFBFBFCBCBCB7C6363320000320000320000 + 6D5D5D949494B0B0B0CECECEE6E6E6F6F6F6FEFEFEFFFFFFFFFFFF7DBA7DFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBEEEEEE2020C81414C71414C71414C739 + 39A97F7F7F949494B6B6B6D4D4D4E9E9E9F8F8F8FFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFBFBFBEFEFEF5C36363200003200003200007164648C8C8CA4A4A4C2C2 + C2DCDCDCE6E6E6E1E1E13B0C0C3200003200003200003200008282829D9D9DBD + BDBD806767320000320000502B2B9898989292929B9B9BB0B0B0C6C6C6D3D3D3 + D1D1D1552F2F3200006552526E6E6E6262626060606868687373737B7B7B7D7D + 7D4C2D2D320000320000320000717171858585A4A4A4C4C4C4DDDDDDF0F0F0FB + FBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFAFAFAF1F1F1E3E3E3D0D0D0B8B8B8A2A2A28F8F8F7E7E7E707070 + 48488C1414C71414C71414C71414C71414C71414C75959C9E0E0E0EEEEEEF7F7 + F7FCFCFCFEFEFEFFFFFFFFFFFFFBFBFBF2F2F2E3E3E3CCCCCCAFAFAF92929279 + 7979686868626262626262584B4B320000320000320000320000320000573838 + B1B1B1C2C2C2C5C5C55C39393200003200003200003200008F8C8CB6B6B6D3D3 + D3E9E9E9F8F8F8FEFEFEFFFFFFFFFFFFFCFCFCF5F5F5E6E6E6CFCFCFB1B1B15B + 3F3F320000320000320000320000320000320000685252B3B3B3CACACAD1D1D1 + 7E6565320000320000320000736666959595B2B2B2CFCFCFE7E7E7F7F7F7FFFF + FFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBEFEFEF45 + 45CC1414C71414C71414C72D2DB47D7D7D909090B1B1B1CECECEE3E3E3F3F3F3 + FBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFCFCFCF1F1F15D37373200003200003200 + 007164648C8C8CA2A2A2C1C1C1DADADAE5E5E5E0E0E032000032000032000032 + 0000431D1D8383839E9E9EBFBFBFC8C5C5320000320000320000857C7C8F8F8F + 949494A7A7A7BEBEBECBCBCBCBCBCB998C8C3200004017176565655656565151 + 515555555C5C5C626262646464452525320000320000320000635D5D7F7F7F9E + 9E9EBDBDBDD6D6D6E9E9E9F5F5F5FAFAFAFBFBFBFEFEFEFEFEFEFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF3F3F3CCCCE2D3D3D3B9B9B9 + A1A1A18989897474743C3C961414C71414C71414C71414C71414C71414C75656 + C6DADADAEBEBEBF6F6F6FBFBFBFEFEFEFFFFFFFFFFFFFEFEFEF9F9F9EDEDEDDA + DADABFBFBF989595503030401A1A3C17174832325C5C5C524646320000320000 + 3200003200005C4646999999B5B5B5C5C5C5C5C5C53A0B0B3200003200003200 + 004B29299C9C9CBCBCBCD8D8D8ECECECF8F8F8FDFDFDFDFDFDFCFCFCF8F8F8EE + EEEEDDDDDDC3C3C3877A7A320000320000320000320000320000320000320000 + 958F8FC2C2C2D4D4D4D8D8D8593333320000320000320000726565959595B2B2 + B2D0D0D0E6E6E6F6F6F6FEFEFEFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFBFBFBEFEFEF4545CC1414C71414C71414C72D2DB47A7A7A8B8B8B + A9A9A9C4C4C4D9D9D9E9E9E9F3F3F3F7F7F7FBFBFBFEFEFEFFFFFFFCFCFCF2F2 + F25D37373200003200003200006653538B8B8BA1A1A1BFBFBFDADADAE4E4E4E0 + E0E0320000320000320000320000431D1D8383839F9F9FC1C1C1D4D4D45A3535 + 3200003200005F43438D8D8D8F8F8F9F9F9FB6B6B6C5C5C5A195953200003200 + 003200003E18184B3E3E4A4A4A4B4B4B4F4F4F5151515353533A141432000032 + 0000320000594C4C7A7A7A979797B3B3B3CACACADBDBDBE7E7E7EDEDEDF1F1F1 + F5F5F5F8F8F8FBFBFBFCFCFCFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD + DADAF02121C9B5B5D7C2C2C2A6A6A683838F3737A81414C71414C71414C71414 + C71414C71414C75050C0CBCBCBDFDFDFEEEEEEF8F8F8FCFCFCFEFEFEFFFFFFFF + FFFFFEFEFEF6F6F6E7E7E7D1D1D1ABA8A8441B1B320000320000320000370B0B + 626262584B4B3200003200003200003200007D7D7D9B9B9BB6B6B6C4C4C4A79D + 9D320000320000320000320000685555A2A2A2C2C2C2DADADAEBEBEBF3F3F3F5 + F5F5F5F5F5F4F4F4EFEFEFE4E4E4D1D1D1AFACAC380909320000320000320000 + 3200003200003200003E1212B6B6B6D1D1D1DEDEDEDDDDDD5933333200003200 + 00320000716464939393AFAFAFCBCBCBE2E2E2F2F2F2FBFBFBFEFEFEFEFEFE00 + EB17FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF1F1F14646CD1414C71414C7 + 1414C72C2CB37777778383839E9E9EB5B5B5C8C8C8D9D9D9E6E6E6EDEDEDF5F5 + F5FBFBFBFEFEFEFCFCFCF2F2F28970703200003200003200005B42428A8A8A9E + 9E9EBDBDBDD8D8D8E3E3E3C9C3C3320000320000320000320000543B3B838383 + A0A0A0C2C2C2D6D6D6866D6D3200003200003809098C8C8C8B8B8B999999B0B0 + B0C1C1C1684949320000320000320000320000320000370E0E4330304B48484D + 4D4D4B4848330404320000320000320000564949767676909090A9A9A9BBBBBB + CACACAD4D4D4DADADADFDFDFE6E6E6EBEBEBF0F0F0F5F5F5F9F9F9FCFCFCFEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFEFEFEC0C0ED1414C71414C77B7BC97F7FB82424C11414 + C71414C71414C71414C71414C71414C74545B6B0B0B0C6C6C6D9D9D9E8E8E8F2 + F2F2F9F9F9FDFDFDFFFFFFFFFFFFFCFCFCF2F2F2E1E1E1C8C8C8563434320000 + 320000320000320000320000594646635656320000320000320000390D0D7F7F + 7F9C9C9CB7B7B7C2C2C2816B6B320000320000320000320000848181A4A4A4C1 + C1C1D6D6D6E2E2E2E7E7E7E6E6E6E6E6E6E6E6E6E2E2E2D8D8D8C5C5C5664A4A + 3200003200003200003200003200003200003200006E5555C6C6C6DDDDDDE6E6 + E6E0E0E05933333200003200003200007771718E8E8EA8A8A8C4C4C4DADADAEC + ECECF7F7F7FBFBFBFEFEFE800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFC + F2F2F24646CD1414C71414C71414C72626B97272727A7A7A8F8F8FA1A1A1B3B3 + B3C3C3C3D2D2D2DEDEDEEBEBEBF5F5F5FBFBFBFCFCFCF3F3F38A717132000032 + 00003200005B42428989899D9D9DBCBCBCD7D7D7E3E3E3B5A8A8320000320000 + 320000320000543B3B848484A0A0A0C2C2C2D7D7D7B3A6A63200003200003200 + 00746868878787939393AAAAAABDBDBD55303032000032000032000032000032 + 00003200003200003200003E1B1B3B15153200003200003200003200004B3232 + 7676768D8D8D9F9F9FABABABB5B5B5BCBCBCC1C1C1C6C6C6CECECED7D7D7E0E0 + E0E9E9E9F1F1F1F7F7F7FBFBFBFEFEFEFFFFFFFEFEFEFEFEFEFDFDFDFBFBFBFB + FBFBFAFAFAFBFBFBFBFBFBFCFCFCFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEDEDEF52121C91414 + C71414C71414C71414C71414C71414C71414C71414C71414C73939A98C8C8CA1 + A1A1B6B6B6C8C8C8DADADAE8E8E8F2F2F2F9F9F9FEFEFEFFFFFFFBFBFBEFEFEF + DCDCDC9E91913200003200003200003200003200003200003D11117366663200 + 00320000320000411C1C8181819E9E9EB7B7B7C2C2C26E525232000032000032 + 0000401717898989A1A1A1B9B9B9CACACAD1D1D1D3D3D3D0D0D0D0D0D0D1D1D1 + D0D0D0C9C9C9A8A2A23200003200003200003200003200003200003200003809 + 09AAA4A4D2D2D2E5E5E5E9E9E9E1E1E15933333200003200003200007B7B7B86 + 86869D9D9DB7B7B7CECECEE3E3E3F1F1F1F8F8F8FDFDFD000080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFDFDFDF2F2F27A7AD41414C71414C71414C71414C76E6E + 6E7171718080808D8D8D9B9B9BAAAAAABBBBBBCBCBCBDDDDDDECECECF7F7F7FB + FBFBF3F3F38A71713200003200003200005B42428989899B9B9BBABABAD6D6D6 + E3E3E3B5A8A8320000320000320000320000553C3C848484A0A0A0C2C2C2D8D8 + D8D4D1D1320000320000320000593D3D8585858E8E8EA4A4A4BABABA57313132 + 0000320000320000320000320000320000320000320000320000320000320000 + 3200003200003200005037377E7E7E9090909B9B9BA0A0A0A1A1A1A2A2A2A3A3 + A3A8A8A8B2B2B2BEBEBECBCBCBD9D9D9E7E7E7F2F2F2F9F9F9FDFDFDFEFEFEFC + FCFCF9F9F9F5F5F5F2F2F2EFEFEFEDEDEDEEEEEEF1F1F1F4F4F4F8F8F8FBFBFB + FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFEFEFEFEFEFEFEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFEFEFEFBFBFBA1A1E41414C71414C71414C71414C71414C71414C71414C714 + 14C72424B66F6F6F7D7D7D8C8C8C9E9E9EB0B0B0C5C5C5D8D8D8E9E9E9F4F4F4 + FBFBFBFEFEFEF9F9F9ECECECD7D7D75D3A3A3200003200003200003200003200 + 00320000320000380909320000320000320000431D1D8484849F9F9FB7B7B7C1 + C1C1542E2E3200003200003200004C2D2D838383989898ABABABB6B6B6B9B9B9 + B6B6B6B3B3B3B4B4B4B8B8B8BABABAB8B8B86E55553200003200003200003200 + 00320000320000320000725959C8C8C8DADADAE7E7E7E8E8E8DDDDDD3B0C0C32 + 00003200003200007272727979798D8D8DA6A6A6BEBEBED7D7D7E9E9E9F3F3F3 + FBFBFB800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF3F3F37B7BD51414 + C71414C71414C71414C76C6C6C6C6C6C7777777F7F7F898989959595A4A4A4B6 + B6B6CDCDCDE0E0E0EFEFEFF8F8F8F3F3F38B72723200003200003200005B4242 + 878787999999B8B8B8D5D5D5E3E3E3B5A9A9320000320000320000320000553C + 3C858585A0A0A0C2C2C2D9D9D9E0E0E0320000320000320000421A1A8383838A + 8A8A9F9F9FB8B8B8573131320000320000320000320000320000320000320000 + 3200003200003200003200003200003200003200005940408E8E8E9B9B9B9F9F + 9F9C9C9C9696968E8E8E8989898A8A8A949494A3A3A3B5B5B5C8C8C8DDDDDDEC + ECECF6F6F6FBFBFBFBFBFBF6F6F6F0F0F0E9E9E9E1E1E1DCDCDCD9D9D9DADADA + DFDFDFE6E6E6ECECECF4F4F4F9F9F9FCFCFCFEFEFEFEFEFEFDFDFDFBFBFBF9F9 + F9F8F8F8F7F7F7F7F7F7F8F8F8FAFAFAFCFCFCFEFEFEFEFEFEFFFFFFFFFFFFFF + FFFFFEFEFEFDFDFDFBFBFBFAFAFAF8F8F8F8F8F8F8F8F8F8F8F8FAFAFAFCFCFC + FEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF8F8F8EFEFEF6060D01414C71414C714 + 14C71414C71414C71414C72323B562626D6C6C6C7373737B7B7B878787989898 + ADADADC5C5C5DADADAEBEBEBF6F6F6FCFCFCF8F8F8E9E9E9C9C6C63200003200 + 0032000032000032000032000032000032000032000032000032000032000049 + 2626888888A1A1A1B8B8B8BFBFBF3A0B0B320000320000320000564040797979 + 8989899696969C9C9C9B9B9B9595959292929797979E9E9EA5A5A5A8A8A83E13 + 13320000320000320000320000320000320000492020B7B4B4D0D0D0DADADAE3 + E3E3E2E2E2D6D6D63200003200003200003200006767676B6B6B7D7D7D949494 + ADADADCBCBCBE0E0E0EFEFEFFAFAFA00C15DFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFEFEFEF4F4F47B7BD51414C71414C71414C71414C76B6B6B6B6B6B73737379 + 79797E7E7E878787939393A4A4A4BCBCBCD4D4D4E7E7E7F3F3F3F2F2F2AD9D9D + 320000320000320000462121868686979797B6B6B6D4D4D4E2E2E2B5A9A93200 + 00320000320000320000563D3D858585A0A0A0C2C2C2D9D9D9E1E1E15C363632 + 00003200003200008080808686869B9B9BB6B6B6694A4A320000320000320000 + 3200003200003200003200003200003200003200003200003200003200003200 + 00654C4CA4A4A4ADADADACACACA2A2A29494948383837878787676767E7E7E8F + 8F8FA5A5A5BCBCBCD5D5D5E8E8E8F3F3F3F8F8F8F6F6F6EEEEEEE2E2E2D5D5D5 + CACACAC1C1C1BDBDBDBFBFBFC5C5C5D0D0D0DBDBDBE7E7E7F0F0F0F7F7F7F9F9 + F9F8F8F8F5F5F5F1F1F1ECECECE9E9E9E7E7E7E8E8E8EBEBEBEFEFEFF4F4F4F8 + F8F8FBFBFBFEFEFEFEFEFEFDFDFDFBFBFBF7F7F7F2F2F2EEEEEEEBEBEBE9E9E9 + E9E9E9ECECECEFEFEFF4F4F4F8F8F8FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAF2F2F2E4 + E4E4D1D1D13D3DC41414C71414C71414C71414C73636A66A6A75727272737373 + 727272727272777777848484989898B0B0B0CBCBCBE0E0E0F0F0F0F9F9F9F5F5 + F5E7E7E7958282320000320000320000320000320000461D1D64444432000032 + 0000320000320000320000583F3F8B8B8BA3A3A3B8B8B8BFBFBF320000320000 + 3200003200005B4F4F6C6C6C7777778080808282827F7F7F7A7A7A7979798080 + 808A8A8A959595887E7E320000320000320000320000320000320000390A0AA0 + 9797C9C9C9D1D1D1D5D5D5DBDBDBD7D7D7CBCBCB320000320000320000350606 + 5C5C5C5F5F5F6E6E6E858585A1A1A1C2C2C2DADADAECECECF9F9F90DAE04FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF5F5F57C7CD61414C71414C71414C714 + 14C76D6D6D4A4A8D56568E6D6D847E7E7E828282898989969696ACACACC5C5C5 + DCDCDCEDEDEDF0F0F0B9ACAC320000320000320000462121858585959595B3B3 + B3D1D1D1E1E1E1B5A9A9320000320000320000320000563D3D8585859F9F9FC1 + C1C1D9D9D9E2E2E25C36363200003200003200006C5F5F838383969696B3B3B3 + 7D64643200003200003200003200003200003200003200003200003200003200 + 00320000320000320000320000745B5B785F5F5E3C3C918181ADADAD98989880 + 80807171716B6B6B7171718484849E9E9EB9B9B9D3D3D3E6E6E6F2F2F2F4F4F4 + EFEFEFE0E0E0CECECEBCBCBCABABAB9F9F9F9A9A9A9C9C9CA4A4A4B3B3B3C3C3 + C3D4D4D4E3E3E3EDEDEDF1F1F1EFEFEFE9E9E9E1E1E1DADADAD3D3D3D1D1D1D1 + D1D1D6D6D6DDDDDDE6E6E6EEEEEEF5F5F5F9F9F9FBFBFBF8F8F8F3F3F3ECECEC + E3E3E3DBDBDBD6D6D6D2D2D2D3D3D3D7D7D7DEDEDEE6E6E6EFEFEFF6F6F6FBFB + FBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE + FEFEFBFBFBF4F4F4E7E7E7D5D5D5BEBEBE9D9DA82B2BBE1414C71414C72626B9 + 50509E4C4CA64D4DA76767947C7C7C7474747070707676768686869E9E9EBABA + BAD4D4D4E9E9E9F5F5F5F3F3F3E5E5E56C4D4D32000032000032000032000042 + 1919A09D9DC0C0C06C4C4C3200003200003200003200005940408D8D8DA4A4A4 + B9B9B99C8F8F3200003200003200003200005F5C5C6262626969696E6E6E7070 + 706C6C6C6868686868687171717D7D7D8A8A8A68525232000032000032000032 + 0000320000320000847171C5C5C5CECECED0D0D0CECECED1D1D1CBCBCBBDBDBD + 3200003200003200003C17175353535656566464647B7B7B989898BCBCBCD7D7 + D7EBEBEBF9F9F900E80EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF6F6F6A4 + A4DC1414C71414C71414C71414C75959862B2BB21414C71A1AC4727294878787 + 8888888F8F8F9F9F9FB7B7B7D1D1D1E6E6E6ECECECB9ACAC3200003200003200 + 00462121838383929292B0B0B0CFCFCFE0E0E0E2E2E232000032000032000032 + 0000563D3D8585859E9E9EC0C0C0D9D9D9E3E3E37C6060320000320000320000 + 5D4747808080929292B0B0B0A296963200003200003200003200003200003200 + 00320000320000320000320000320000320000320000320000AB9E9E856C6C32 + 00003200003A0B0B5B3C3C6A5A5A6C69696868686F6F6F838383A0A0A0BCBCBC + D7D7D7E9E9E9F1F1F1EFEFEFE4E4E4D1D1D1B9B9B9A1A1A18E8E8E8080807A7A + 7A7D7D7D868686959595A9A9A9BFBFBFD2D2D2E0E0E0E6E6E6E3E3E3D9D9D9CD + CDCDC1C1C1B8B8B8B4B4B4B6B6B6BCBCBCC5C5C5D2D2D2DFDFDFEBEBEBF2F2F2 + F4F4F4F0F0F0E8E8E8DBDBDBCECECEC3C3C3BABABAB6B6B6B7B7B7BDBDBDC7C7 + C7D3D3D3E0E0E0ECECECF5F5F5FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFDFDFDF8F8F8ECECECDADADAC3C3C3AAAAAA939393 + 76768C2121BE1414C71414C71414C71414C71414C71414C72424C16060977474 + 747171717A7A7A8D8D8DAAAAAAC8C8C8E0E0E0EFEFEFF0F0F0E3E3E34E252532 + 0000320000320000360707898686ADADADC6C6C6BCB6B6320000320000320000 + 3200005A41418F8F8FA6A6A6B9B9B99A8E8E3200003200003200003200005F5F + 5F5E5E5E6565656969696663635646464930303E1818523C3C77777784848455 + 3535320000320000320000320000320000806D6DC1C1C1CDCDCDD1D1D1CDCDCD + C8C8C8C8C8C8C0C0C0A09A9A3200003200003200003B15154D4D4D483838380C + 0C7A7A7A989898BBBBBBD7D7D7ECECECF9F9F9800080FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFF7F7F7B2B2DF1414C71414C71414C71414C75C5C891414C7 + 1414C71414C71C1CC47B7B9C8E8E8E8C8C8C979797ABABABC5C5C5DDDDDDE7E7 + E7B7AAAA3200003200003200004620208282828F8F8FADADADCCCCCCDEDEDEE1 + E1E1320000320000320000320000573E3E8585859D9D9DBFBFBFD8D8D8E3E3E3 + 876E6E3200003200003200004E2F2F7E7E7E8F8F8FADADADC6C6C63B0C0C3200 + 00320000867777827676604444390A0A32000032000032000032000032000032 + 0000320000D0CACA8E75753200003200003200003200003200003200003D1414 + 4E3232685555A8A8A8C5C5C5DDDDDDEDEDEDF0F0F0E9E9E9D8D8D8BFBFBFA3A3 + A3898989767676696969656565686868717171808080949494ABABABC1C1C1D1 + D1D1D7D7D7D3D3D3C5C5C5B6B6B6A6A6A69B9B9B979797999999A0A0A0ABABAB + BABABACCCCCCDCDCDCE7E7E7EBEBEBE6E6E6D9D9D9C8C8C8B6B6B6A8A8A89E9E + 9E9999999A9A9AA1A1A1ACACACBCBCBCCECECEDFDFDFEDEDEDF7F7F7FDFDFDFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFBFBFBF2F2F2E2E2E2 + CCCCCCB1B1B198989859599D1919C31414C71414C71414C71414C71414C71414 + C71414C71414C71414C757579A7272727373738282829B9B9BBCBCBCD7D7D7E9 + E9E9ECECECE2E2E2320000320000320000320000503030929292B2B2B2C9C9C9 + D2D2D23200003200003200003200005A4141909090A7A7A7BABABA816B6B3200 + 00320000320000401A1A5F5F5F616161625C5C50373736070732000032000032 + 0000401A1A7777778484844923233200003200003200003200005C3D3DB9B9B9 + C9C9C9D1D1D1AA9D9DC9C9C9C2C2C2C0C0C0B7B7B78A7D7D3200003200003200 + 00360A0A3913133200003200008080809E9E9EC1C1C1DBDBDBEEEEEEFAFAFA00 + 6B13FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8B3B3E01414C71414C7 + 1414C71414C75D5D8A1414C71414C71414C71414C72F2FC09797978F8F8F9191 + 91A1A1A1B9B9B9D2D2D2E1E1E1CAC4C43200003200003200003708088080808C + 8C8CA7A7A7C7C7C7DBDBDBE0E0E0320000320000320000320000573E3E848484 + 9B9B9BBCBCBCD7D7D7E3E3E3886F6F320000320000320000451F1F7D7D7D8C8C + 8CA9A9A9C2C2C27F6666320000320000A4A4A49292928C8C8C8C898976636341 + 15153200003200003200003200006D4A4AF3F3F3F7F7F7AA97973C0D0D320000 + 320000320000320000320000320000320000B3B3B3CECECEE5E5E5F0F0F0EFEF + EFE2E2E2CCCCCCAFAFAF9090907777776565655B5B5B5B5B5B60606069696977 + 77778989899E9E9EB3B3B3C2C2C2C8C8C8C3C3C3B3B3B3A2A2A2939393898989 + 8686868888888D8D8D979797A5A5A5B8B8B8CBCBCBD9D9D9DEDEDED8D8D8C9C9 + C9B4B4B4A1A1A19494948B8B8B8787878888888C8C8C979797A6A6A6BABABACF + CFCFE3E3E3F1F1F1FAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FDFDFDF7F7F7EAEAEAD6D6D6BCBCBC9F9F9F4040B01414C71414C71414C71414 + C71414C71414C71414C71414C71414C71414C71414C71414C75E5E8A7171717A + 7A7A909090B0B0B0CECECEE3E3E3E9E9E9D5D2D2320000320000320000320000 + 655252959595B5B5B5CBCBCBD3D3D35832323200003200003200006E62629191 + 91A9A9A9BBBBBB785F5F320000320000320000401A1A5B525247282832000032 + 0000320000320000320000320000411C1C7A7A7A868686320000320000320000 + 3200004B2525ACACACC1C1C1CECECEA19191320000C5C5C5BDBDBDBCBCBCB3B3 + B38679793200003200003200003200003200003200003200008E8E8EABABABCA + CACAE0E0E0F1F1F1FBFBFB800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + F8F8F8B4B4E11414C71414C71414C71414C75F5F8C1A1AC41414C71414C71414 + C71414C75A5AB49393938E8E8E989898ADADADC8C8C8DADADADCDCDC32000032 + 00003200003200007C7C7C8686869F9F9FBFBFBFD4D4D4DBDBDB320000320000 + 320000320000573E3E8383839A9A9ABBBBBBD6D6D6E2E2E29E8B8B3200003200 + 003200003607077C7C7C898989A4A4A4BDBDBDBDBABA3A0B0B3200007E717183 + 83837A7A7A7D7D7D8989899B9B9B9184847B6262705050968080E4E1E1F8F8F8 + FCFCFCF8F8F8B0A0A0320000320000320000320000320000320000320000BBBB + BBD7D7D7EAEAEAF2F2F2ECECECDADADAC1C1C1928C8C50303032000032000032 + 0000401D1D594C4C6F6F6F7B7B7B8989899B9B9BACACACBABABABEBEBEB8B8B8 + A8A8A89898988C8C8C8585858383838484848686868C8C8C959595A6A6A6B9B9 + B9C9C9C9D0D0D0CBCBCBBCBCBCA7A7A79696968B8B8B85858583838383838384 + 84848A8A8A959595A8A8A8BFBFBFD7D7D7E9E9E9F6F6F6FDFDFDFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF2F2F2E1E1E1C9C9C9ACACAC4343B31414 + C71414C71414C71414C71414C71F1FC84646CD3C3CCD1414C71414C71414C714 + 14C71414C72121BE727272757575878787A5A5A5C6C6C6DDDDDDE5E5E5B3A6A6 + 320000320000320000320000716464989898B7B7B7CDCDCDD4D4D45832323200 + 003200003200006E6262929292AAAAAABCBCBC785F5F32000032000032000032 + 0000320000320000320000320000320000320000320000320000441E1E7E7E7E + 8A8A8A3200003200003200003200008F8888B1B1B1C4C4C4CECECE8168683200 + 00C2C2C2BCBCBCBBBBBBB3B3B379666632000032000032000032000032000032 + 0000320000A0A0A0BCBCBCD6D6D6E8E8E8F5F5F5FCFCFC001F66FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFF8F8F8D0D0E61414C71414C71414C71414C74D4D + 9B6E6E8F6F6FA61D1DC51414C71414C71D1DC58F8F9A8E8E8E929292A3A3A3BD + BDBDD0D0D0D5D5D53200003200003200003200007777777F7F7F959595B3B3B3 + C9C9C9D1D1D13B0C0C320000320000320000573E3E838383989898B9B9B9D5D5 + D5E2E2E2B5A8A83200003200003200003200007A7A7A888888A0A0A0B6B6B6BE + BEBE745B5B320000634D4D7777776E6E6E7070707B7B7B8B8B8B9E9E9EB2B2B2 + C7C7C7DADADAEAEAEAF5F5F5FBFBFBF8F8F8D4CECE3200003200003200003200 + 003B0F0F5C4343695050C0C0C0DBDBDBEEEEEEF2F2F2E9E9E9D4D4D4A59F9F38 + 09093200003200003200003200003200003200005539398E8E8E989898A4A4A4 + AFAFAFB8B8B8B9B9B9B3B3B3A4A4A47E7171786B6B776A6A817B7B8F8F8F8D8D + 8D8C8C8C8E8E8E999999AAAAAABABABAC2C2C2C0C0C0B3B3B3A1A1A18E8B8B77 + 6A6A7569698683838C8C8C8989898787878C8C8C9B9B9BB1B1B1CBCBCBE1E1E1 + F2F2F2FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF8F8F8EBEBEBD7D7 + D7BCBCBC6969AD1414C71414C71414C71414C71D1DC57676C5DBDBDBEDEDEDF8 + F8F8C0C0ED2121C91414C71414C71414C71414C75050937373738080809C9C9C + BFBFBFD7D7D7E0E0E0B0A3A33200003200003200003200008686869A9A9AB9B9 + B9CECECED4D4D44E25253200003200003200006E6262939393ACACACBDBDBD67 + 4747320000320000320000320000320000320000320000320000320000320000 + 3200003200004E2F2F838383776A6A320000320000320000502D2D9C9C9CB2B2 + B2C3C3C3CBCBCB7F6666320000BCBCBCB9B9B9AAA4A4532D2D32000032000032 + 0000320000320000320000320000320000B5B5B5CECECEE3E3E3F0F0F0F8F8F8 + FEFEFE800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9EBEBEB1414 + C71414C71414C71414C746469F8282829898988282BB1414C71414C71414C759 + 59B28E8E8E8D8D8D9A9A9AB1B1B1C5C5C5CCCCCC320000320000320000320000 + 6B6868757575878787A3A3A3B9B9B9C3C3C3552F2F3200003200003200005236 + 36838383969696B6B6B6D3D3D3E1E1E1B5A8A83200003200003200003200006C + 63638686869B9B9BB0B0B0B6B6B6A4A1A13809093C10107070706969696C6C6C + 777777838383919191A2A2A2B6B6B6CBCBCBDEDEDEEEEEEEF8F8F8F8F8F8ECEC + EC320000320000320000320000583F3F898989A1A1A1C2C2C2DDDDDDEEEEEEF1 + F1F1E5E5E5CDCDCD502B2B320000320000320000320000320000320000320000 + 3200005F3F3FB0B0B0B6B6B6BABABABDBDBDB3B0B0725959390A0A3200003200 + 003200003200004F29298980809595958F8F8F9292929E9E9EADADADB6B6B6B7 + B7B7887878471E1E3200003200003200003200004E28288B85858E8E8E8A8A8A + 929292A5A5A5BFBFBFD8D8D8ECECECF8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFF + FFFCFCFCF4F4F4E4E4E4CCCCCC9A9AB11A1AC41414C71414C71414C71C1CC496 + 96B7D1D1D1E6E6E6F5F5F5FCFCFCFDFDFD9292E01414C71414C71414C71414C7 + 2626B97272727C7C7C959595B7B7B7D1D1D1DCDCDCAEA1A13200003200003200 + 003200008787879C9C9CBBBBBBCECECED4D4D432000032000032000032000070 + 6363959595ADADADBFBFBF552F2F320000320000320000320000320000320000 + 3200003200003200003200003200003200005940408686867A6D6D3200003200 + 003200006E5B5B9B9B9BADADADBCBCBCC2C2C2705454320000B3B3B3B6B6B688 + 7575320000320000320000320000320000320000320000320000502B2BC8C8C8 + DDDDDDEEEEEEF7F7F7FBFBFBFEFEFE002D71FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFF9F9F9ECECEC1414C71414C71414C71414C746469F818181989898B6 + B6B63434C61414C71414C72626C38F8F8F8A8A8A929292A6A6A6B9B9B9C0C0C0 + 320000320000320000320000594C4C6A6A6A7777778F8F8FA5A5A5B0B0B0502B + 2B320000320000320000441E1E828282959595B3B3B3D1D1D1E0E0E0B5A8A832 + 0000320000320000320000685B5B848484989898ABABABAFAFAF8E8484370808 + 3200003D14144F36366B65657E7E7E8686868E8E8E989898A7A7A7BBBBBBD1D1 + D1E5E5E5F3F3F3F6F6F6ECECEC320000320000320000320000594040898989A2 + A2A2C2C2C2DDDDDDEDEDEDEFEFEFE0E0E0A19595320000320000320000320000 + 3200003200003200003200003200003200007E6565CBCBCBCBCBCBC8C8C84318 + 183200003200003200003200003200003200003200003A0B0B8E84849494948F + 8F8F969696A1A1A1A3A0A0512C2C320000320000320000320000320000320000 + 320000390A0A847B7B8C8C8C8E8E8E9C9C9CB6B6B6D1D1D1E7E7E7F6F6F6FEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAEFEFEFDCDCDCC2C2C23737BE1414C714 + 14C71414C71414C76C6CB0C1C1C1DBDBDBEFEFEFFAFAFAFEFEFEFEFEFEF8F8F8 + 2E2ECB1414C71414C71414C71414C766667D7979798F8F8FB1B1B1CCCCCCD8D8 + D8AB9F9F3200003200003200003708088888889E9E9EBCBCBCCFCFCFD3D3D332 + 0000320000320000320000756C6C969696B0B0B0C0C0C0553030320000320000 + 320000320000320000401414887575BCB9B9552F2F3200003200003200005B42 + 428B8B8B7F72723200003200003200007D7474959595A4A4A4AFAFAFB4B4B451 + 2C2C320000AAAAAAB1B1B1775E5E320000320000320000320000320000320000 + 320000320000542E2ED5D5D5E9E9E9F6F6F6FBFBFBFEFEFEFFFFFF677161FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAECECEC1414C71414C71414C714 + 14C746469F808080969696B6B6B68585C81414C71414C71414C76A6AA3888888 + 8C8C8C9A9A9AABABABB2B2B24115153200003200003200004A34345F5F5F6868 + 687B7B7B8F8F8F9B9B9B5B3B3B320000320000320000441E1E828282939393B0 + B0B0CFCFCFDFDFDFB3A7A7320000320000320000320000685B5B838383959595 + A7A7A79A94943809093200003200003200003200003708086B58589292929292 + 929595959D9D9DADADADC3C3C3DADADAECECECF3F3F3ECECEC50282832000032 + 0000320000594040898989A1A1A1C2C2C2DDDDDDECECECECECECDDDDDD5E3C3C + 320000320000320000320000320000320000320000320000320000320000471B + 1BE0E0E0DDDDDDD6D6D64F262632000032000032000032000032000032000032 + 0000320000390A0A8D87878F8F8F909090989898796666320000320000320000 + 320000320000320000320000320000320000471E1E9090908C8C8C969696AEAE + AECACACAE3E3E3F3F3F3FDFDFDFFFFFFFFFFFFFFFFFFFEFEFEF8F8F8E9E9E9D4 + D4D48D8DBA1414C71414C71414C71414C73232B9ADADADCBCBCBE3E3E3F4F4F4 + FDFDFDFFFFFFFFFFFFF9F9F97272D81414C71414C71414C71414C74949987777 + 778A8A8AABABABC8C8C8D4D4D4AA9D9D320000320000320000462020898989A0 + A0A0BEBEBED0D0D0D3D3D3320000320000320000320000868686989898B1B1B1 + C2C2C25530303200003200003200003708086E5B5BABABABC0C0C0C8C8C85530 + 303200003200003200006754549090908276763200003200003200008C8C8C8C + 8C8C9696969D9D9DA1A1A14E28284D2727A1A1A1ADADAD9A8E8E320000320000 + 320000320000320000320000320000401414856F6FDFDFDFF1F1F1FBFBFBFEFE + FEFFFFFFFFFFFF00310EFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBEE + EEEE1414C71414C71414C71414C73939A97F7F7F959595B6B6B6BFBFCA1414C7 + 1414C71414C73C3CB88787878686868F8F8F9E9E9EA4A4A44D27273200003200 + 003200003F20205656565C5C5C6969697A7A7A8686865F464632000032000032 + 0000441E1E818181919191ADADADCBCBCBDDDDDDC7C1C1320000320000320000 + 3200005A4444838383939393A4A4A45C3D3D3200003200003200003200003200 + 003200003200007764649C9C9C959595969696A1A1A1B6B6B6CFCFCFE5E5E5EF + EFEFECECEC5C3636320000320000320000594040898989A1A1A1C1C1C1DCDCDC + EBEBEBEBEBEBDBDBDB3200003200003200003200003200003200003809096E52 + 52705050320000320000320000D7D1D1EBEBEBE2E2E25A35353200003200003A + 0B0B927F7FA49494471B1B3200003200003200005B3B3B8E8E8E8C8C8C929292 + 8477773200003200003200004C23239B8B8B7A5E5E3200003200003200003200 + 006E5B5B8A8A8A929292A7A7A7C5C5C5DFDFDFF1F1F1FCFCFCFFFFFFFFFFFFFF + FFFFFDFDFDF4F4F4E3E3E3CBCBCB3939C01414C71414C71414C71414C77575A2 + B7B7B7D4D4D4EAEAEAF8F8F8FEFEFEFFFFFFFFFFFFFBFBFBB8B8E51414C71414 + C71414C71414C73232AD747474868686A7A7A7C3C3C3D1D1D18A747432000032 + 00003200004620208A8A8AA1A1A1BFBFBFD0D0D0D2D2D2320000320000320000 + 320000868686999999B3B3B3C3C3C35731313200003200003200007366669494 + 94ACACACBFBFBFC6C6C6552F2F320000320000320000746868979797897C7C32 + 00003200003200008787878181818484848888888B8B8B3200004A2424999999 + ACACACBFBFBF573131320000320000320000320000462020746464AEAEAECDCD + CDE5E5E5F5F5F5FEFEFEFFFFFFFFFFFFFFFFFF11C010FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFBFBFBEFEFEF4545CC1414C71414C71414C72D2DB47E7E7E + 939393B4B4B4CBCBCB4343CA1414C71414C71414C780808B8282828888889393 + 939A9A9A4A24243200003200003200003405055151515454545D5D5D6B6B6B77 + 77776350503200003200003200003B0F0F8282828F8F8FAAAAAAC8C8C8DADADA + DCDCDC320000320000320000320000563D3D828282929292A2A2A2390A0A3200 + 0032000032000032000032000032000032000032000083737399999992929298 + 9898ABABABC5C5C5DDDDDDEBEBEBEAEAEA5C36363200003200003200005A4141 + 898989A1A1A1C0C0C0DBDBDBEAEAEAE9E9E9B0A3A33200003200003200003200 + 003200003D1111A09D9DC8C8C8E1E1E1D9D3D3572E2E320000AE9B9BF5F5F5EB + EBEB5D38383200003B0C0CAFA6A6D6D6D6E0E0E0D9D6D6745454320000320000 + 320000807A7A8888888D8D8D8175753200003200004C2323BEBBBBD4D4D4DEDE + DECAC4C4461A1A3200003200003D11118686868D8D8DA3A3A3C1C1C1DCDCDCEF + EFEFFBFBFBFFFFFFFFFFFFFFFFFFFBFBFBF0F0F0DDDDDDAEAEC41414C71414C7 + 1414C71414C72F2FB69E9E9EC0C0C0DBDBDBEFEFEFFBFBFBFFFFFFFFFFFFFFFF + FFFBFBFBF0F0F01414C71414C71414C71414C72020BD747474838383A2A2A2BF + BFBFCECECE7F66663200003200003200004620208B8B8BA3A3A3BFBFBFD1D1D1 + C8C5C53200003200003200003200008787879B9B9BB5B5B5C5C5C55731313200 + 00320000320000746767939393AAAAAABCBCBCC1C1C13A0B0B32000032000032 + 00007D74749E9E9E8F8282320000320000320000838383777777737373727272 + 625252320000462121969696AEAEAEC2C2C2A497973200003200003200003200 + 00716464939393B0B0B0CFCFCFE6E6E6F7F7F7FFFFFFFFFFFFFFFFFFFFFFFF00 + D021FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBEFEFEF4545CC1414C7 + 1414C71414C72D2DB47D7D7D919191B3B3B3CBCBCB7474CE1414C71414C71414 + C75B5B9F7F7F7F8282828C8C8C95959549232332000032000032000032000046 + 33335353535858584525256A6767685B5B320000320000320000320000838383 + 8F8F8FA6A6A6C3C3C3D6D6D6D9D9D9320000320000320000320000553C3C8282 + 829292928E84843200003200003200003200003C101075656558353532000032 + 0000390A0A979494919191929292A1A1A1BBBBBBD6D6D6E6E6E6E8E8E85C3636 + 3200003200003200005940408989899F9F9FBFBFBFDADADAE9E9E9E8E8E88F79 + 79320000320000320000320000320000786B6BB0B0B0CFCFCFE6E6E6F5F5F5F1 + EEEE582F2FB19E9EFBFBFBF2F2F2603A3A320000856C6CD5D5D5DCDCDCE1E1E1 + E1E1E1DADADA3B0C0C320000320000563A3A8383838989898174743200003200 + 00B1ABABCFCFCFD8D8D8DDDDDDDBDBDB8B757532000032000032000076707089 + 89899F9F9FBFBFBFDADADAEFEFEFFBFBFBFFFFFFFFFFFFFFFFFFF9F9F9ECECEC + D7D7D75E5EC21414C71414C71414C71414C75B5B9FA7A7A7C8C8C8E0E0E0F2F2 + F2FDFDFDFFFFFFFFFFFFFFFFFFFCFCFCF2F2F23939CC1414C71414C71414C714 + 14C76D6D798181819E9E9EBCBCBCCBCBCB7E6565320000320000320000462020 + 8C8C8CA4A4A4C1C1C1D1D1D1AA9D9D3200003200003200003200008888889C9C + 9CB7B7B7C8C8C8583232320000320000320000746767929292A6A6A6B6B6B6B9 + B9B9320000320000320000320000939393A7A7A7968A8A320000320000320000 + 8585857373736969696666664728283200004621219B9B9BB6B6B6C8C8C8CFCF + CF4E2525320000320000320000716464949494B2B2B2D1D1D1E8E8E8F7F7F7FF + FFFFFFFFFFFFFFFFFFFFFF004D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FBFBFBF0F0F04646CD1414C71414C71414C72D2DB47D7D7D8F8F8FB1B1B1CBCB + CBA5A5D21414C71414C71414C73F3FAF7D7D7D7F7F7F7E78788F8C8C3E121232 + 0000320000320000320000340505555252554F4F3200005D5151737070320000 + 3200003200003200008484848D8D8DA1A1A1BEBEBED1D1D1D4D4D43200003200 + 00320000320000553C3C828282929292877A7A32000032000032000032000065 + 5252979797B2B2B24C24243200003200005B3C3C9090908D8D8D9A9A9AB3B3B3 + CECECEE2E2E2E6E6E65C36363200003200003200005940408888889E9E9EBDBD + BDDADADAE8E8E8E7E7E7846B6B320000320000320000320000451F1F909090B1 + B1B1CECECEE5E5E5F4F4F4FBFBFBF0EDEDFEFEFEFCFCFCF6F6F6613B3B320000 + D5D2D2DBDBDBDDDDDDDDDDDDD7D7D7CDCDCD5D3A3A3200003200004017177D7D + 7D888888827676320000684848CACACAD3D3D3D7D7D7D6D6D6CFCFCF9E919132 + 00003200003200005F4C4C8585859E9E9EBEBEBEDADADAEEEEEEFBFBFBFFFFFF + FFFFFFFEFEFEF7F7F7E9E9E9D2D2D22727C51414C71414C71414C71414C78484 + 90AEAEAECECECEE5E5E5F5F5F5FEFEFEFFFFFFFFFFFFFFFFFFFDFDFDF2F2F246 + 46CD1414C71414C71414C71414C75A5A877F7F7F9C9C9CB9B9B9C8C8C87D6464 + 3200003200003200005A41418C8C8CA6A6A6C2C2C2D1D1D1AA9D9D3200003200 + 003200003C10108989899E9E9EB9B9B9CBCBCB59333332000032000032000079 + 6F6F8F8F8F9E9E9EABABAB9E98983200003200003200003D1111999999B0B0B0 + 9E91913200003200003200008885857878786B6B6B605A5A3200003200004923 + 23A7A7A7C1C1C1D1D1D1D4D4D4583232320000320000320000716464959595B3 + B3B3D1D1D1E9E9E9F8F8F8FFFFFFFFFFFFFFFFFFFFFFFF004600FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF1F1F14646CD1414C71414C71414C72626 + B97C7C7C8E8E8EB0B0B0CACACAC9C9D51414C71414C71414C72222BF7D7D7D7E + 7E7E482222380909320000320000320000320000320000320000350606380C0C + 320000543E3E7A7A7A370808320000320000320000766D6D8C8C8C9D9D9DB8B8 + B8CACACACFCFCF320000320000320000320000543B3B828282959595735D5D32 + 0000320000320000320000817E7E999999B5B5B5988888320000320000320000 + 847E7E8A8A8A939393AAAAAAC8C8C8DDDDDDE3E3E37051513200003200003200 + 005940408787879C9C9CBCBCBCD8D8D8E7E7E7E7E7E766434332000032000032 + 00003200005F4C4C8D8D8DABABABC6C6C6DBDBDBE9E9E9F1F1F1F5F5F5F8F8F8 + F8F8F8F6F6F6795A5A320000E5E5E5DDDDDDD8D8D8D1D1D1C6C6C6B8B8B86B52 + 523200003200003200007878788787878679793200007D6464D0D0D0D4D4D4D1 + D1D1C8C8C8BCBCBCABABAB320000320000320000533A3A8383839E9E9EBFBFBF + DADADAEFEFEFFBFBFBFFFFFFFFFFFFFEFEFEF5F5F5E4E4E4AAAACC1414C71414 + C71414C71414C72D2DB4929292B5B5B5D3D3D3E9E9E9F8F8F8FEFEFEFFFFFFFF + FFFFFFFFFFFDFDFDF3F3F37B7BD51414C71414C71414C71414C74D4D917D7D7D + 999999B7B7B7C6C6C67B62623200003200003200005A41418D8D8DA7A7A7C2C2 + C2D1D1D1A89C9C3200003200003200004620208989899F9F9FBCBCBCCECECE59 + 34343200003200003200008989898A8A8A9494949D9D9D827676320000320000 + 3200004F2C2CA1A1A1BBBBBBB0A7A7320000320000320000674E4E8686867878 + 78431D1D3200003200004D2727B8B8B8CFCFCFDBDBDBDADADA58323232000032 + 00003200007B7575969696B5B5B5D3D3D3E9E9E9F8F8F8FFFFFFFFFFFFFFFFFF + FFFFFF72B972FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF2F2F26D6D + D31414C71414C71414C71414C77B7B7B8C8C8CADADADC9C9C9D5D5D51414C714 + 14C71414C71414C76E6E857D7D7D482222320000320000320000320000320000 + 370808320000320000320000320000533A3A8080804822223200003200003200 + 007467678C8C8C999999B0B0B0C2C2C2C8C8C832000032000032000032000054 + 3B3B8383839797976D5454320000320000320000320000878787999999B6B6B6 + C8C8C83200003200003200005A3E3E8787878F8F8FA4A4A4C2C2C2DADADAE2E2 + E2866D6D3200003200003200005940408686869B9B9BBBBBBBD7D7D7E7E7E7E7 + E7E75A35353200003200003200003200006C66668585859F9F9FB6B6B6C9C9C9 + D7D7D7DFDFDFE4E4E4EAEAEAEFEFEFF1F1F1917878320000E3E3E3D8D8D8CCCC + CCBFBFBFAEAEAE9D9D9D5E4545320000320000320000675E5E888888877B7B32 + 00007E6565D0D0D0CECECEC3C3C3B4B4B4A4A4A4867F7F320000320000320000 + 482929828282A0A0A0C2C2C2DDDDDDF0F0F0FBFBFBFFFFFFFFFFFFFDFDFDF2F2 + F2E0E0E06D6DC71414C71414C71414C71414C74848A2979797BABABAD7D7D7EC + ECECF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF4F4F47B7BD51414C71414C7 + 1414C71414C742429C7D7D7D989898B6B6B6C5C5C57B62623200003200003200 + 005A41418E8E8EA8A8A8C3C3C3D1D1D1A89B9B32000032000032000046202089 + 8989A1A1A1BFBFBFD1D1D15A35353200003200003200007E7878848484878787 + 8C8C8C654F4F320000320000320000624949AAAAAAC5C5C5D8D8D83200003200 + 003200003200003E13134923233200003200003200005A3838CBCBCBDEDEDEE4 + E4E4DDDDDD3B0C0C320000320000320000868686979797B6B6B6D4D4D4EAEAEA + F8F8F8FFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFDFDFDF2F2F27A7AD41414C71414C71414C71414C77B7B7B8B8B8BAA + AAAAC8C8C8D5D5D54343CA1414C71414C71414C75555987D7D7D492323320000 + 3200003200003200003200003E1313320000320000320000320000583F3F8787 + 875C40403200003200003200006650508D8D8D949494A6A6A6B6B6B6BBBBBB32 + 0000320000320000320000543B3B8585859B9B9B6F5656320000320000320000 + 462121888888999999B5B5B5C8C8C85832323200003200003D11118585858A8A + 8A9E9E9EBDBDBDD7D7D7E0E0E0866D6D3200003200003200005438388686869B + 9B9BBABABAD7D7D7E6E6E6E7E7E75A35353200003200003200003607076E6E6E + 7A7A7A8F8F8FA2A2A2B2B2B2BEBEBEC6C6C6CECECED6D6D6DEDEDEE5E5E58D74 + 74320000DBDBDBCBCBCBB9B9B9A6A6A69292928080804A2A2A32000032000032 + 00006255558B8B8B8C7F7F3200007E6565CBCBCBC1C1C1AFAFAF9B9B9B888888 + 655959320000320000320000411B1B858585A5A5A5C6C6C6E0E0E0F2F2F2FCFC + FCFFFFFFFFFFFFFBFBFBF0F0F0DDDDDD3F3FC61414C71414C71414C71414C764 + 64919C9C9CBFBFBFDADADAEFEFEFFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE + F4F4F49696D91414C71414C71414C71414C742429C7C7C7C979797B5B5B5C3C3 + C35530303200003200003200005A41418F8F8FAAAAAAC4C4C4D0D0D09D8D8D32 + 0000320000320000462020898989A1A1A1C0C0C0D5D5D57C6060320000320000 + 3200007569698080807C7C7C7B7B7B4D2E2E320000320000320000817474B5B5 + B5D0D0D0E3E3E3542B2B32000032000032000032000032000032000032000032 + 0000938080DEDEDEEBEBEBEBEBEBE0E0E0320000320000320000320000868686 + 989898B7B7B7D4D4D4EBEBEBF9F9F9FFFFFFFFFFFFFFFFFFFFFFFF42A43BFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF3F3F37B7BD51414C71414C714 + 14C71414C77A7A7A8A8A8AA9A9A9C6C6C6D5D5D54343CA1414C71414C71414C7 + 4747A17D7D7D5F4646320000320000320000320000320000512C2C471F1F3200 + 00320000320000593D3D9292927A6A6A3200003200003200005D41418F8F8F8F + 8F8F9B9B9BA6A6A6ABABAB320000320000320000320000543B3B898989A1A1A1 + 725959320000320000320000482222898989989898B3B3B3C6C6C67458583200 + 003200003200007973738787879B9B9BB9B9B9D4D4D4DFDFDF866D6D32000032 + 0000320000462020868686999999B9B9B9D6D6D6E6E6E6E7E7E75C3636320000 + 320000320000411B1B6868686E6E6E7E7E7E8C8C8C999999A2A2A2AAAAAAB2B2 + B2BCBCBCC9C9C9D4D4D49C89895C3636CECECEBABABAA4A4A48C8C8C78787868 + 6868370B0B3200003200003200006457579090908F82823200007C6363C0C0C0 + AFAFAF9898988282826F6F6F462A2A320000320000320000411C1C8C8C8CADAD + ADCCCCCCE4E4E4F5F5F5FDFDFDFFFFFFFFFFFFFBFBFBEEEEEEDADADA1414C714 + 14C71414C71414C71414C77A7A85A1A1A1C3C3C3DEDEDEF1F1F1FCFCFCFFFFFF + FFFFFFFFFFFFFFFFFFFEFEFEF4F4F4AFAFDC1414C71414C71414C71414C73737 + A77C7C7C969696B3B3B3C2C2C25530303200003200003200005A41418F8F8FAA + AAAAC2C2C2CDCDCD7D6464320000320000320000451F1F898989A2A2A2C2C2C2 + D8D8D88970703200003200003200007B6E6E808080757575707070390D0D3200 + 00320000320000A6A6A6C2C2C2DADADAEBEBEB866A6A32000032000032000032 + 00003200003200003200005A3535E3E3E3EDEDEDF3F3F3EFEFEFE1E1E1320000 + 320000320000320000868686999999B9B9B9D6D6D6ECECECF9F9F9FFFFFFFFFF + FFFFFFFFFFFFFF00C154FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF4 + F4F47B7BD51414C71414C71414C71414C77A7A7A898989A7A7A7C5C5C5D4D4D4 + 7474CE1414C71414C71414C72D2DB47B7B7B8A8A8A745E5E3200003200003200 + 00320000583232816B6B3200003200003200004D27279F9F9FA09D9D32000032 + 00003200004D27279393938C8C8C8F8F8F9595958B8585320000320000320000 + 320000543B3B8D8D8DA8A8A88F7F7F3200003200003200004923238989899797 + 97B1B1B1C4C4C47E6565320000320000320000645151858585979797B6B6B6D2 + D2D2DEDEDE866D6D320000320000320000462020858585989898B6B6B6D4D4D4 + E6E6E6E7E7E75C3636320000320000320000411B1B6666666A6A6A7575758080 + 808989898D8D8D909090969696A1A1A1B0B0B0BEBEBEC8C8C8C8C8C8BCBCBCA7 + A7A78E8E8E767676636363442B2B3200003200003200003200006B5E5E989898 + B3B3B39D9090B7B4B4B3B3B39C9C9C8383836C6C6C5145453200003200003200 + 00320000441E1E979797B8B8B8D4D4D4E9E9E9F7F7F7FEFEFEFFFFFFFFFFFFFA + FAFAECECECB3B3D41414C71414C71414C71414C72020BD848484A6A6A6C7C7C7 + E0E0E0F2F2F2FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF4F4F4AFAFDC1414 + C71414C71414C71414C72B2BB27B7B7B969696B3B3B3C0C0C0552F2F32000032 + 00003200006959598E8E8EA9A9A9BFBFBFC7C7C7796060320000320000320000 + 523636888888A3A3A3C4C4C4DBDBDBA28F8F3200003200003200007764648989 + 897979796862623200003200003200004B2626B5B5B5CECECEE4E4E4F2F2F2E0 + DADA3200003200003200003200003200003200003D0E0EDFDCDCF1F1F1F7F7F7 + F8F8F8F1F1F1E0E0E03200003200003200003200008686869A9A9AB9B9B9D7D7 + D7ECECECF9F9F9FFFFFFFFFFFFFFFFFFFFFFFF2A9728FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFEFEFEF5F5F58989D81414C71414C71414C71414C760608D + 878787A4A4A4C3C3C3D4D4D47474CE1414C71414C71414C72121BE7A7A7A8888 + 88A6A6A68E7B7B3200003200003200005D3737C1BBBB32000032000032000051 + 2C2CB0B0B0B6B6B64C23233200003200003200009B9B9B8D8D8D878787868686 + 706363320000320000320000320000563D3D949494B0B0B09E91913200003200 + 003200004A24248C8C8C969696AEAEAEC1C1C199898932000032000032000054 + 3838818181939393B3B3B3CECECEDCDCDC866D6D320000320000320000462020 + 828282949494B3B3B3D1D1D1E3E3E3E6E6E65C36363200003200003200004D31 + 316868686B6B6B7777778080808585858585858282828383838B8B8B999999A8 + A8A8B6B6B6B7B7B7ABABAB959595787575523F3F360A0A320000320000320000 + 320000320000746767A4A4A4B9B9B9C0C0C0B9B9B9A4A4A48A8A8A665C5C401D + 1D320000320000320000320000320000583C3CA6A6A6C5C5C5DDDDDDEFEFEFFA + FAFAFEFEFEFFFFFFFFFFFFF9F9F9EBEBEB8C8CCF1414C71414C71414C71414C7 + 2B2BB2868686AAAAAACACACAE3E3E3F4F4F4FEFEFEFFFFFFFFFFFFFFFFFFFFFF + FFFEFEFEF4F4F4AFAFDC1414C71414C71414C71414C72B2BB27B7B7B959595B1 + B1B1BDBDBD542E2E3200003200003200006C60608D8D8DA7A7A7BABABABFBFBF + 735A5A320000320000320000543B3B878787A4A4A4C5C5C5DDDDDDC8BFBF3200 + 00320000320000694D4D9999998686864D2E2E320000320000320000776161C5 + C5C5DCDCDCEDEDEDF8F8F8FDFDFD8A6E6E320000320000320000320000562D2D + D0C7C7F7F7F7FAFAFAFCFCFCFBFBFBF2F2F2CAC4C43200003200003200003200 + 008686869B9B9BBBBBBBD7D7D7ECECECFAFAFAFFFFFFFFFFFFFFFFFFFFFFFF00 + 3F00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF5F5F5B1B1DE1414C7 + 1414C71414C71414C75F5F8C858585A1A1A1C2C2C2D2D2D27474CE1414C71414 + C71414C71414C7777777868686A3A3A3C4C4C49C89893200003200003D0E0EE8 + E8E8522929320000320000573131C4C4C4C8C8C88A7474320000320000320000 + 8A7D7D9292928383837A7A7A6050503200003200003200003200005940409D9D + 9DBBBBBBA599993200003200003200004B25258E8E8E959595AAAAAABBBBBB9E + 9191320000320000320000451F1F7D7D7D8D8D8DACACACC8C8C8D7D7D7846B6B + 320000320000320000451F1F7E7E7E8E8E8EAAAAAAC8C8C8DCDCDCE0E0E05A35 + 353200003200003200004B2B2B6761617575758282828B8B8B8E8E8E89898980 + 80807979797D7D7D898989989898A7A7A7A9A9A99794945D4444360707320000 + 320000320000320000320000320000320000827676B3B3B3C1C1C1C0C0C0B2B2 + B28B8585451F1F320000320000320000320000320000320000320000674E4EB8 + B8B8D2D2D2E6E6E6F4F4F4FCFCFCFFFFFFFFFFFFFFFFFFF8F8F8E9E9E97373CD + 1414C71414C71414C71414C744449E898989ADADADCDCDCDE5E5E5F5F5F5FEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF3F3F3AEAEDB1414C71414C71414C714 + 14C72B2BB27B7B7B949494ADADADB8B8B8512C2C3200003200003200006B5E5E + 8C8C8CA4A4A4B5B5B5B6B6B65F3F3F320000320000320000533A3A868686A6A6 + A6C7C7C7E0E0E0EFEFEF491D1D3200003200003B0C0CA6A3A381757532000032 + 0000320000320000B8B5B5D6D6D6E8E8E8F4F4F4FBFBFBFEFEFEFFFFFF987F7F + 653F3F653F3FA38D8DEFECECFDFDFDFEFEFEFEFEFEFFFFFFFCFCFCF1F1F1B3A6 + A63200003200003200004118188787879C9C9CBCBCBCD8D8D8EDEDEDFAFAFAFF + FFFFFFFFFFFFFFFFFFFFFF007D00FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFF6F6F6B1B1DE1414C71414C71414C71414C75E5E8A8383839F9F9FBFBF + BFD1D1D1A3A3D01414C71414C71414C71414C7646485838383A0A0A0C2C2C2DD + DDDDA79494320000320000F4F4F49B85853200003200003C0D0DD8D8D8DADADA + C8C2C23200003200003200006B4F4F9E9E9E8A8A8A7A7A7A5037373200003200 + 00320000320000756969AAAAAAC7C7C7D7D7D732000032000032000032000091 + 9191949494A4A4A4B3B3B3988B8B3200003200003200003F1616777777858585 + A2A2A2BFBFBFCECECEA89C9C320000320000320000441E1E7878788585859E9E + 9EBBBBBBCECECED4D4D45933333200003200003200003200003200003200004A + 24245B3B3B684F4F7F72728787877979797777778080808C8C8C9B9B9B989595 + 441B1B320000320000320000320000320000320000320000320000320000A9A6 + A6C2C2C2C8C8C8C1C1C18F828237080832000032000032000032000032000032 + 00003200003200008A7A7ACACACADEDEDEEEEEEEF8F8F8FEFEFEFFFFFFFFFFFF + FFFFFFF7F7F7E8E8E84343CA1414C71414C71414C71414C744449E8B8B8BB0B0 + B0CFCFCFE7E7E7F7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFDF3F3F3AE + AEDB1414C71414C71414C71414C72B2BB27A7A7A919191A8A8A8B0B0B0390A0A + 3200003200003200006A5D5D8A8A8AA2A2A2B1B1B1B0B0B04E28283200003200 + 00320000543B3B8A8A8AAAAAAAC9C9C9E2E2E2F2F2F2957C7C32000032000032 + 0000320000320000320000320000320000684949D6D6D6E6E6E6F2F2F2F9F9F9 + FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFBFBFBF0F0F0B3A6A63200003200003200004620208888889E9E9EBD + BDBDD9D9D9EEEEEEFBFBFBFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF7F7F7B2B2DF1414C71414C71414C71414 + C75E5E8A8282829C9C9CBDBDBDCFCFCFA2A2CF1414C71414C71414C71414C75C + 5C898181819E9E9EC1C1C1DCDCDCEFEFEF886C6C320000FBFBFBDFD9D9320000 + 320000320000E9E9E9E9E9E9ECECEC603A3A3200003200003B0C0CA8A5A59999 + 99868686431D1D320000320000320000320000897F7FB9B9B9D3D3D3E1E1E147 + 1B1B3200003200003200009595959393939B9B9BA7A7A78C8080320000320000 + 3200003200006E6E6E7A7A7A959595B0B0B0C0C0C09E92923200003200003200 + 00411C1C7070707979798E8E8EA8A8A8BCBCBCC5C5C55E3C3C32000032000032 + 00003200003200003200003200003200003200003200003809094E2F2F6F6868 + 7B7B7B8585859595955839393200003200003200003200003200003200003200 + 00320000320000421616C5C5C5CFCFCFCECECEB0AAAA390A0A32000032000032 + 0000320000320000320000320000320000320000BCB9B9D7D7D7E7E7E7F3F3F3 + FAFAFAFEFEFEFFFFFFFFFFFFFEFEFEF6F6F6E6E6E64242C91414C71414C71414 + C71414C75D5D8A8D8D8DB3B3B3D1D1D1E8E8E8F8F8F8FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFDFDFDF2F2F2ADADDA1414C71414C71414C71414C72B2BB27A7A7A + 8E8E8EA2A2A2A7A7A7320000320000320000320000685B5B898989A2A2A2B0B0 + B0B0B0B04F2929320000320000320000583F3F929292B0B0B0CECECEE4E4E4F4 + F4F4EEEBEB3E0F0F320000320000320000320000320000320000320000C7C1C1 + E7E7E7F1F1F1F8F8F8FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFBF1F1F1B3A6A632000032000032 + 00004621218B8B8BA0A0A0BFBFBFDADADAEFEFEFFBFBFBFFFFFFFFFFFFFFFFFF + FFFFFF000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF6F6F6B1B1 + DE1414C71414C71414C71414C74A4A98808080999999BABABACCCCCC9F9FCC14 + 14C71414C71414C71414C754548C7F7F7F9B9B9BBFBFBFDADADAEFEFEFFBFBFB + 987F7FFEFEFEFDFDFD643E3E320000320000F4F4F4F5F5F5F5F5F5C5B8B83200 + 00320000320000684949AEAEAE887E7E320000320000320000320000320000B1 + B1B1CACACADFDFDFEBEBEB6A4848320000320000320000959292939393949494 + 9999998174743200003200003200003200006464646F6F6F8686869E9E9EAEAE + AE928686320000320000320000390D0D6666666D6D6D7C7C7C929292A6A6A6B0 + B0B0715858320000320000320000320000320000320000320000320000320000 + 3200003200003200003607077C7C7C8484848C89893200003200003200003200 + 00320000320000320000320000320000320000735757D3D3D3D7D7D7D1D1D170 + 5454320000320000320000320000320000320000320000320000320000684949 + D2D2D2E0E0E0ECECECF5F5F5FBFBFBFFFFFFFFFFFFFFFFFFFEFEFEF5F5F5E5E5 + E51F1FC81414C71414C71414C71414C75E5E8A8F8F8FB5B5B5D3D3D3E9E9E9F8 + F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF1F1F1ABABD81414C71414C7 + 1414C71414C72A2AB17979798C8C8C9D9D9D9F9F9F3200003200003200003200 + 006A61618A8A8AA4A4A4B3B3B3AEABAB320000320000320000320000604747A0 + A0A0BBBBBBD4D4D4E7E7E7F5F5F5FDFDFDBEAEAE320000320000320000320000 + 3200003200008D7474EDEDEDF3F3F3F8F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF2 + F2F2947E7E320000320000320000482222909090A5A5A5C2C2C2DCDCDCEFEFEF + FBFBFBFFFFFFFFFFFFFFFFFFFFFFFF009E1EFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFEFEFEFDFDFDF4F4F4BCBCDD1414C71414C71414C71414C742429C7D7D7D96 + 9696B7B7B7C8C8C89D9DCA1414C71414C71414C71414C741419B7D7D7D9A9A9A + BDBDBDDADADAEEEEEEFBFBFBFFFFFFFFFFFFFFFFFFD7CECE3E0F0F320000EEEB + EBFBFBFBFCFCFCFBFBFB623D3D3200003200003200004E25253A0B0B32000032 + 0000320000320000532D2DC8C8C8DADADAEAEAEAF3F3F39E8888320000320000 + 320000897C7C9696968F8F8F8C8C8C7467673200003200003200003200005F5F + 5F6969697D7D7D9090909F9F9F877B7B3200003200003200003200005E5E5E61 + 61616B6B6B7D7D7D8E8E8E9A9A9A6950503200003200003200004822225F4646 + 664D4D5A37373A0B0B3200003200003200003200003200007D7D7D8585857B6E + 6E3200003200003200003200003200003200003200003200003200003B0C0CBF + B9B9D9D9D9DADADAD1D1D1431717320000320000320000320000320000320000 + 3200003200003B0C0CBDB7B7D7D7D7E2E2E2ECECECF3F3F3FAFAFAFEFEFEFFFF + FFFFFFFFFEFEFEF5F5F5E4E4E41414C71414C71414C71414C71414C76B6B8292 + 9292B6B6B6D4D4D4EAEAEAF8F8F8FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFBFB + F0F0F0ABABD81414C71414C71414C71414C72B2BB27979798C8C8C9B9B9B9592 + 923200003200003200003200007D7D7D919191ABABABB3B0B068484832000032 + 0000320000320000817272B3B3B3C8C8C8DCDCDCECECECF8F8F8FEFEFEFEFEFE + 8A6E6E3200003200003200003200007B5B5BF5F5F5F8F8F8FBFBFBFDFDFDFEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFCFCFCF4F4F48B72723200003200003200004B25259B9B9B + ADADADC7C7C7DEDEDEF0F0F0FBFBFBFFFFFFFFFFFFFFFFFFFFFFFF09D710FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFAFAFAEFEFEFDDDDDD1414C71414C714 + 14C71414C7404099777777909090B0B0B0C0C0C09696C31414C71414C71414C7 + 1414C74040997C7C7C999999BDBDBDD9D9D9EEEEEEFBFBFBFFFFFFFFFFFFFFFF + FFFFFFFFE5DFDFCCBFBFF2EFEFFFFFFFFFFFFFFEFEFED6CDCD32000032000032 + 00003200003200003200003200003200003200008B7575DDDDDDE9E9E9F3F3F3 + F8F8F8DFD9D93200003200003200007A64649E9E9E8F8F8F8585856B5E5E3200 + 003200003200003200006262626D6D6D7D7D7D8C8C8C97979780737332000032 + 00003200003200005047475959595F5F5F6B6B6B7A7A7A888888746464320000 + 3200003200005F46468F8F8F9B9B9BB0B0B0C0C0C08D7A7A3200003200003200 + 003200007F7F7F888888644B4B32000032000032000032000032000032000032 + 00003200003B0C0CA49494D7D7D7D8D8D8D8D8D8BBB5B5320000320000320000 + 320000320000320000320000320000451919B5ACACD4D4D4D5D5D5DDDDDDE7E7 + E7F0F0F0F8F8F8FEFEFEFFFFFFFFFFFFFEFEFEF5F5F5E3E3E31414C71414C714 + 14C71414C71414C77A7A7A939393B8B8B8D5D5D5EBEBEBF9F9F9FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFBFBFBEFEFEFA8A8D51414C71414C71414C71414C72B2B + B27A7A7A8F8F8F9E9E9E8679793200003200003200003200008989899C9C9CA5 + 9F9F3200003200003200003200003200003200009E9191C9C9C9D7D7D7E6E6E6 + F1F1F1F9F9F9FEFEFEFFFFFFFFFFFFBEAEAE653F3F653F3FB19E9EFDFDFDFDFD + FDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF7F7F78F7676320000 + 320000320000502A2AAAAAAAB9B9B9CECECEE2E2E2F2F2F2FCFCFCFFFFFFFFFF + FFFFFFFFFFFFFF00876CFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF6F6F6E9 + E9E9D4D4D41414C71414C71414C71414C73C3C96717171878787A4A4A4B3B3B3 + 8D8DBA1414C71414C71414C71414C73F3F997B7B7B9A9A9ABDBDBDDADADAEEEE + EEFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFEFEFEB19E9E3200003200003200003200003200003200003200003C0D0D + DAD7D7ECECECF4F4F4F9F9F9FCFCFCFBFBFB562D2D320000320000684848ABAB + AB989898898989614E4E3200003200003200003200007070707A7A7A86868691 + 91919898987E7171320000320000320000320000442B2B5656565A5A5A626262 + 6660607D7D7D7467673200003200003200004A2424929292999999A9A9A9B5B5 + B5988B8B3200003200003200003200008181818C8C8C664D4D32000032000032 + 00003200003200003200003A0B0B765A5ACDCACADADADAD4D4D4D2D2D2D3D3D3 + A598983200003200003200003200003200003200003A0B0B7E6565CAC7C7D7D7 + D7D1D1D1CFCFCFD7D7D7E2E2E2ECECECF7F7F7FEFEFEFFFFFFFFFFFFFEFEFEF5 + F5F5E3E3E31414C71414C71414C71414C71414C77A7A7A959595B9B9B9D6D6D6 + ECECECF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAEDEDED8F8FD21414 + C71414C71414C71414C73131AC7E7E7E959595A7A7A7674B4B32000032000032 + 00003200009C9C9CACACAC9E9292320000320000320000320000320000320000 + B0A3A3DDDDDDE6E6E6EFEFEFF6F6F6FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FEFEFEFAFAFA856969320000320000320000654646BCBCBCC7C7C7D7D7D7E7E7 + E7F4F4F4FDFDFDFFFFFFFFFFFFFFFFFFFFFFFF000000FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFBFBFBF2F2F2E1E1E1C9C9C91414C71414C71414C71414C72626AD + 6868687C7C7C949494A1A1A17F7FAC1414C71414C71414C71414C73434A47C7C + 7C9B9B9BBFBFBFDADADAEFEFEFFBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB19E9E320000320000320000 + 3200003200003200009D8787F3F3F3F7F7F7FBFBFBFDFDFDFEFEFEFEFEFEAF9C + 9C3200003200003B0C0CB4B1B1A8A8A8969696573B3B32000032000032000032 + 00003C1010563636897F7FA2A2A2A4A4A4857878320000320000320000320000 + 3405055956565E5E5E5A50503506067878788888883200003200003200004B26 + 26979797989898A0A0A0A8A8A88C7F7F32000032000032000032000084848493 + 93936A51513200003200003200003200004B25257E6B6BBFBFBFCDCDCDD3D3D3 + D2D2D2CBCBCBC9C9C9CCCCCCA296963200003200003200003200003809096C53 + 53B3B0B0CBCBCBD1D1D1D0D0D0C8C8C8C5C5C5CFCFCFDDDDDDE9E9E9F5F5F5FE + FEFEFFFFFFFFFFFFFEFEFEF5F5F5B0B0DD1414C71414C71414C71414C71414C7 + 7B7B7B959595B9B9B9D7D7D7ECECECF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFF9F9F9ECECEC7575CF1414C71414C71414C71414C743439D838383908A8A63 + 4343320000320000320000320000320000B5B5B5C1C1C1AB9E9E320000320000 + 320000320000320000320000BEB1B1EDEDEDF2F2F2F6F6F6FAFAFAFEFEFEFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFDFD623D3D3200003200003200008168 + 68CECECED6D6D6E2E2E2EDEDEDF6F6F6FEFEFEFFFFFFFFFFFFFFFFFFFFFFFF00 + 2933FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F9EEEEEEDBDBDBC1C1C11414C7 + 1414C71414C71414C72424AB5F5F5F6E6E6E8080808C8C8C66669E1414C71414 + C71414C71414C72929B07D7D7D9E9E9EC1C1C1DDDDDDEFEFEFFBFBFBFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFD7CECE724F4F3200003200003E0F0FA38D8DFBFBFBFCFCFCFDFDFDFEFE + FEFFFFFFFFFFFFFFFFFFF0EDED3E0F0F3200003200006C4D4DBDBDBDA3A0A03E + 1313320000320000320000320000320000320000755C5CBCBCBCBBBBBB928686 + 3200003200003200003200003200003D14145543433D14143200007C7C7C8C8C + 8C3E13133200003200004F29299E9E9E9898989898989999997F727232000032 + 00003200003200008A8A8A9D9D9D6F5656320000320000320000563636959595 + A7A7A7B7B7B7C1C1C1C5C5C5C4C4C4BDBDBDBEBEBEC5C5C57B62623200003200 + 003200003E12128E8B8BA3A3A3B4B4B4BFBFBFC4C4C49E9191BCBCBCBBBBBBC8 + C8C8D7D7D7E6E6E6F5F5F5FEFEFEFFFFFFFFFFFFFEFEFEF5F5F5B1B1DE1414C7 + 1414C71414C71414C72020BD7B7B7B959595B9B9B9D7D7D7ECECECF9F9F9FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8E9E9E97373CD1414C71414C71414C714 + 14C744449E8989896D5454320000320000320000320000320000320000CFCFCF + D6D6D6D8D5D5BEB1B19F8989896D6D4B1F1F320000320000C6BABAF8F8F8FAFA + FAFBFBFBFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE714E + 4E3200003200003200008A7171E0E0E0E5E5E5ECECECF3F3F3F9F9F9FEFEFEFF + FFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8F8F8 + ECECECDADADABFBFBF1414C71414C71414C71414C72424AB5858586161616D6D + 6D74747444449E1414C71414C71414C71414C72929B0808080A3A3A3C5C5C5DF + DFDFF1F1F1FCFCFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEA38D8D32000032 + 0000320000593434573131320000320000320000320000320000320000320000 + 836A6AB6ADAD9683835832323200003200003200003200003200003200003200 + 003200003200007366669595955D3E3E320000320000320000A8A8A89C9C9C92 + 92928C8C8C6C5C5C320000320000320000320000929292A9A9A9755C5C320000 + 3200003200008882829292929D9D9DA7A7A7AEAEAE826F6F512C2CADADADB3B3 + B3BFBFBF846E6E320000320000320000705D5D9191919A9A9AA6A6A6ADADAD91 + 84843200008F8282B0B0B0C1C1C1D4D4D4E5E5E5F4F4F4FEFEFEFFFFFFFFFFFF + FEFEFEF6F6F6B1B1DE1414C71414C71414C71414C72B2BB27A7A7A949494B9B9 + B9D6D6D6ECECECF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF6F6F6E6E6E671 + 71CB1414C71414C71414C71414C746469F8F8F8F614242320000320000320000 + 320000320000320000E3E3E3E7E7E7EFEFEFF5F5F5FAFAFAFEFEFEFFFFFFCCBF + BF724F4FE4DEDEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFF1EEEE714E4E320000320000917878EFEFEFF0F0F0F5 + F5F5F8F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFF9F9F9EDEDEDDBDBDBADADC31414C71414C71414C71414 + C71C1CBA5959595C5C5C6161616363633232A21414C71414C71414C71414C729 + 29B0868686A8A8A8C9C9C9E2E2E2F3F3F3FDFDFDFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFEFEFE643E3E320000320000320000320000320000320000320000 + 320000320000320000320000603A3A8D74743200003200003200003200003200 + 00320000380909320000320000320000320000807373A4A4A48B7B7B32000032 + 0000320000A59F9FA5A5A5959595888888583F3F320000320000320000421919 + 9F9F9FB7B7B77C63633200003200003200009A9A9A9090909292929595959898 + 98664D4D3200009F9F9FAAAAAABBBBBBA19494320000320000320000857C7C8F + 8F8F8F8F8F949494989898817474320000847777A8A8A8BDBDBDD3D3D3E6E6E6 + F5F5F5FEFEFEFFFFFFFFFFFFFFFFFFF7F7F7B3B3E01414C71414C71414C71414 + C72B2BB27A7A7A929292B7B7B7D4D4D4EAEAEAF8F8F8FFFFFFFFFFFFFFFFFFFF + FFFFFEFEFEF5F5F5E3E3E34141C81414C71414C71414C71414C75B5B94969696 + 755C5C5934343D0E0E320000320000320000320000F2F2F2F4F4F4F7F7F7FAFA + FAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE714E4E32 + 0000957C7CF8F8F8F8F8F8FAFAFAFCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAFAFAD4D4EB6D6DD35959 + C91414C71414C71414C71414C71414C76666666363636161615F5F5F1C1CBA14 + 14C71414C71414C71414C73131AC8E8E8EB0B0B0CFCFCFE6E6E6F5F5F5FEFEFE + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1EEEE572E2E320000320000 + 320000320000320000320000481C1C9A84847859593D0E0E623D3DBAAAAA3200 + 00320000320000320000320000320000785F5F3200003200003200003200008F + 8282B6B6B6C2C2C23B0C0C3200003200008E7B7BB3B3B3A0A0A08F8F8F503030 + 320000320000320000512F2FB0B0B0C7C7C7988585320000320000320000A3A3 + A39393938C8C8C8989898787875D4444320000969696A5A5A5BBBBBBA4979732 + 0000320000320000A1A1A19292928A8A8A8787878787875E45453200007E7171 + A6A6A6BDBDBDD4D4D4E7E7E7F6F6F6FEFEFEFFFFFFFFFFFFFFFFFFF8F8F8B4B4 + E11414C71414C71414C71414C72B2BB2797979909090B4B4B4D3D3D3E9E9E9F8 + F8F8FFFFFFFFFFFFFFFFFFFFFFFFFCFCFCF2F2F2E0E0E04040C71414C71414C7 + 1414C71414C76565929D9D9DBFBFBFDBDBDBEFEFEFE1DBDB987F7F4B1F1F3E0F + 0FFCFCFCFCFCFCFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFF1EEEE4B1F1FB19E9EFDFDFDFDFDFDFEFEFEFEFEFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF005934FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFBFBFBBDBDEA1414C71414C71414C71414C71414C71414C71414C74848A274 + 74746E6E6E47478B1414C71414C71414C71414C71414C74949A39B9B9BBBBBBB + D7D7D7EBEBEBF8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFF1EEEE7E5F5F3200003200003200003200004A1E1ED1C8C8F8F8F8FBFB + FBFDFDFDF1EEEEE4DEDE653F3F320000320000320000320000320000AEA1A146 + 1A1A320000320000320000A19494C9C9C9D2D2D2876E6E320000320000502828 + C5C5C5B2B2B29F9F9F3809093200003200003200006E5555C2C2C2D7D7D7C1B8 + B8320000320000320000A8A5A59D9D9D8F8F8F8787878282824B292932000095 + 9595A8A8A8C0C0C0C7C4C43200003200003200009083839B9B9B8E8E8E868686 + 8282825B42423200007F7272AAAAAAC2C2C2D9D9D9EBEBEBF8F8F8FEFEFEFFFF + FFFFFFFFFFFFFFF9F9F9B5B5E21414C71414C71414C71414C72B2BB27878788E + 8E8EB2B2B2D1D1D1E8E8E8F7F7F7FFFFFFFFFFFFFFFFFFFFFFFFFBFBFBEFEFEF + DBDBDB1E1EC71414C71414C71414C71414C77E7E89A4A4A4C5C5C5DFDFDFF2F2 + F2FCFCFCFFFFFFFFFFFFD8CFCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD8CFCFF2EFEFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF137801FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEDCDCF21414C71414C71414C71414C714 + 14C71414C71414C71414C72B2BBE4646AA1919C31414C71414C71414C71414C7 + 1414C75252ACABABABC8C8C8DFDFDFF0F0F0FAFAFAFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFE5DFDFA48E8E987F7FB19E + 9EF1EEEEFEFEFEFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFCABEBE4B1F1F32 + 0000320000320000BCAFAF978181320000320000320000B0A4A4DDDDDDE3E3E3 + E9E9E9552C2C320000320000705050C7C7C76C50503200003200003200003200 + 00A79D9DD5D5D5E5E5E5EEEEEE3D0E0E320000320000958585ADADAD9D9D9D92 + 92928B8B8B3D1111320000A0A0A0B3B3B3C9C9C9DADADA471B1B320000320000 + 8B7878ACACAC9C9C9C9090908B8B8B421A1A320000867979B5B5B5CCCCCCE0E0 + E0EFEFEFF9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFAFAFADFDFEB1414C71414C714 + 14C71414C72B2BB27777778C8C8CAEAEAECECECEE6E6E6F6F6F6FEFEFEFFFFFF + FFFFFFFEFEFEF8F8F8EBEBEBD5D5D51414C71414C71414C71414C71414C78B8B + 8BABABABCBCBCBE3E3E3F5F5F5FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFCFCFC14 + 14C71414C71414C71414C71414C71414C71414C71414C71414C71414C71414C7 + 1414C71414C71414C71414C71414C77171B4BFBFBFD6D6D6E8E8E8F5F5F5FCFC + FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFF1EEEE8A6E6E320000320000C6B9B9E8E5E53D0E0E320000 + 3200009A8484ECECECEFEFEFF3F3F3D0C7C73200003200003200003200003200 + 00320000320000320000451919DADADAE6E6E6F0F0F0F6F6F67B5C5C32000032 + 00005027279E9292B3B3B3A7A7A7705A5A3200003200009A9191C4C4C4D7D7D7 + E5E5E5775858320000320000461A1A9E9191B2B2B2A6A6A6705A5A3200003200 + 00958888C7C7C7DADADAE9E9E9F5F5F5FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFB + FBFBEFEFEF1414C71414C71414C71414C72626B7777777898989AAAAAACACACA + E3E3E3F4F4F4FEFEFEFFFFFFFFFFFFFEFEFEF6F6F6E6E6E6ACACCE1414C71414 + C71414C71414C72D2DB4929292B4B4B4D2D2D2E9E9E9F7F7F7FEFEFEFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF1AC30BFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFEFEFE1414C71414C71414C71414C71414C71414C71414C7 + 1414C71414C71414C71414C71414C71414C71414C71414C71414C79696C3D3D3 + D3E3E3E3F0F0F0F9F9F9FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBEAEAE3E0F0F + CABEBEFCFCFC967D7D320000320000947B7BF7F7F7F8F8F8FAFAFAFBFBFBB09D + 9D320000320000320000320000320000320000320000A18E8EEBEBEBF2F2F2F8 + F8F8FBFBFBE2DCDC3200003200003200003200006C4C4C684949320000320000 + 320000A59999D8D8D8E6E6E6EFEFEFDCD6D63200003200003200003200006C4C + 4C684949320000320000320000A79A9ADADADAE7E7E7F2F2F2F9F9F9FEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFCFCFCF2F2F21414C71414C71414C71414C71414C7 + 777777868686A4A4A4C5C5C5E0E0E0F2F2F2FCFCFCFFFFFFFFFFFFFCFCFCF2F2 + F2E0E0E08F8FC71414C71414C71414C71414C73C3CAD9B9B9BBDBDBDD9D9D9ED + EDEDF9F9F9FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFC3C3F08989E34E4ED5 + 1414C71414C71414C71414C71414C71414C71414C71414C71414C71414C71414 + C71414C71F1FC8DADADAE5E5E5EFEFEFF7F7F7FCFCFCFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFD8CFCFF2EFEFFFFFFFFEFEFEB19E9E320000B19E9EFDFD + FDFEFEFEFEFEFEFEFEFEFEFEFEB19E9E32000032000032000032000032000061 + 3C3CF3F3F3F6F6F6FAFAFAFDFDFDFEFEFEFEFEFE8A6E6E320000320000320000 + 320000320000320000320000320000B5A9A9E9E9E9F1F1F1F7F7F7FAFAFA7E5E + 5E320000320000320000320000320000320000320000320000B7AAAAEBEBEBF2 + F2F2F8F8F8FCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF4F4F42E2ECB + 1414C71414C71414C71414C77777778383839E9E9EC0C0C0DBDBDBEFEFEFFBFB + FBFFFFFFFEFEFEFAFAFAEDEDEDD9D9D96969C31414C71414C71414C71414C755 + 55A4A6A6A6C6C6C6E0E0E0F2F2F2FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4B4ED6C6CDC2222CA1414C71414C71414 + C71414C71414C71414C71414C71414C76363D3EBEBEBF2F2F2F8F8F8FBFBFBFE + FEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCABEBE58 + 2F2F3200003E0F0F967D7DEEEBEBFCFCFCFDFDFDFEFEFEFFFFFFFFFFFFFFFFFF + FEFEFE582F2F3200003200003200003200003200003200003D0E0EDAD4D4F5F5 + F5F9F9F9FCFCFCFEFEFEF1EEEE572E2E32000032000032000032000032000032 + 0000552C2CE6E3E3F6F6F6FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFEFEFEF7F7F74848CF1414C71414C71414C71414C77777778080809898 + 98B9B9B9D6D6D6EBEBEBF8F8F8FEFEFEFDFDFDF5F5F5E6E6E6D0D0D03B3BC214 + 14C71414C71414C71414C772729FB0B0B0CFCFCFE6E6E6F5F5F5FDFDFDFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFB4B4ED6C6CDC2222CA1414C71414C71414C71414C72121C9E7E7F2F7 + F7F7FAFAFAFCFCFCFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF987F7F4B1F1F3200003200003E0F + 0F7C5D5DE2DCDCFBFBFBFDFDFDFEFEFEFEFEFEFFFFFFFFFFFFF2EFEF987F7F3E + 0F0F3200003200004A1E1E967D7DFBFBFBFCFCFCFDFDFDFEFEFEFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9F9F96464D41414C71414C71414 + C71414C75F5F8C7D7D7D909090B0B0B0CECECEE5E5E5F5F5F5FBFBFBFAFAFAEF + EFEFDDDDDDC5C5C51414C71414C71414C71414C71414C79D9D9DBCBCBCD8D8D8 + ECECECF8F8F8FEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFB4B4ED6C6CDC4E + 4ED57979DEEEEEF9FDFDFDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFBFB + FB9090DF1414C71414C71414C71414C75A5A927A7A7A898989A4A4A4C2C2C2DA + DADAECECECF4F4F4F1F1F1E5E5E5D0D0D08D8DBA1414C71414C71414C71414C7 + 3A3AB5AAAAAAC8C8C8E0E0E0F2F2F2FBFBFBFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFDFDFDBDBDEA1414C71414C71414C71414C74A4AA479 + 7979808080979797B2B2B2CBCBCBDDDDDDE5E5E5E1E1E1D4D4D4BEBEBE5353B8 + 1414C71414C71414C71414C76767ABB8B8B8D4D4D4E9E9E9F6F6F6FEFEFEFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEF8F8F81414C714 + 14C71414C71414C73838B47B7B7B7B7B7B8989899F9F9FB6B6B6C7C7C7CECECE + CBCBCBBDBDBDA8A8A82424C11414C71414C71414C71414C79F9FABC6C6C6DFDF + DFEFEFEFFAFAFAFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFBFBFB4B4BD21414C71414C71414C71C1CC48181817979797D7D7D + 8C8C8C9E9E9EACACACB2B2B2AFAFAFA3A3A37B7B9C1414C71414C71414C71414 + C73F3FBABABABAD4D4D4E9E9E9F5F5F5FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF137801FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE9494E21414C71414C71414C7 + 1414C77676987E7E7E7979797D7D7D8787879090909595959292928A8A8A3C3C + AD1414C71414C71414C71414C77F7FB8CBCBCBE1E1E1F0F0F0FAFAFAFEFEFEFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFE + DEDEF51414C71414C71414C71414C74747B88B8B8B7E7E7E7A7A7A7B7B7B7F7F + 7F80808080808069698A1414C71414C71414C71414C72626C3C5C5C5DBDBDBEC + ECECF7F7F7FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFF1AC30BFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFDFDFD6969D91414C71414C71414C71414C78484 + A58D8D8D8383837D7D7D7C7C7C7C7C7C7D7D7D2727BA1414C71414C71414C714 + 14C78080C4D7D7D7E9E9E9F4F4F4FBFBFBFEFEFEFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEC2C2EF1414 + C71414C71414C71414C73232C49B9BA69696968D8D8D88888880808B4040B014 + 14C71414C71414C71414C74040C7D7D7D7E7E7E7F2F2F2FAFAFAFEFEFEFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFF800080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFEFEFE6B6BDA1414C71414C71414C71414C71E1EC76D6DBC82 + 82AF6363B12525C21414C71414C71414C71414C71F1FC8B6B6D7E8E8E8F2F2F2 + F9F9F9FDFDFDFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFFA3131CE1414C714 + 14C71414C71414C71414C71414C71414C71414C71414C71414C71414C71414C7 + 9595D8ECECECF4F4F4FAFAFAFDFDFDFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFD2D2F32222CA1414C71414C71414C71414C71414C71414C71414C7 + 1414C71414C71414C79B9BDEF2F2F2F7F7F7FBFBFBFEFEFEFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFF000080FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFD2D2F33F3FD11414C71414C7 + 1414C71414C71414C71414C71414C72F2FCCCBCBEDF8F8F8FBFBFBFDFDFDFEFE + FEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF800080FFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFB4B4ED6C6CDC4E4ED54D4DD44D4DD46B6BDAB2B2EAFCFCFCFDFD + FDFEFEFEFEFEFEFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF + FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00 + 0080} + OnClick = LogoClick + end + object Label3: TLabel + Left = 10 + Top = 210 + Width = 231 + Height = 19 + Align = alTop + Alignment = taCenter + Caption = 'progressus imprimis' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -16 + Font.Name = 'Times New Roman' + Font.Style = [fsItalic] + ParentFont = False + end + end + end + object OpenDialog1: TOpenDialog + DefaultExt = 'pq3' + Filter = 'Progress Quest games|*.pq3' + Left = 476 + Top = 240 + end +end diff --git a/orig/pq/Front.pas b/orig/pq/Front.pas new file mode 100644 index 0000000..fb04ac9 --- /dev/null +++ b/orig/pq/Front.pas @@ -0,0 +1,47 @@ +unit Front; +{ copyright (c)2002 Eric Fredricksen all rights reserved } + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls; + +type + TFrontForm = class(TForm) + Panel1: TPanel; + Button1: TButton; + Button2: TButton; + OpenDialog1: TOpenDialog; + Button4: TButton; + Label2: TLabel; + Button3: TButton; + Panel2: TPanel; + Logo: TImage; + Label3: TLabel; + HomeLink: TLabel; + Label1: TLabel; + procedure HomeLinkClick(Sender: TObject); + procedure LogoClick(Sender: TObject); + end; + +var + FrontForm: TFrontForm; + +implementation + +uses ShellAPI, Main, Info; + +{$R *.dfm} + +procedure TFrontForm.HomeLinkClick(Sender: TObject); +begin + ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW); +end; + +procedure TFrontForm.LogoClick(Sender: TObject); +begin + ShellExecute(GetDesktopWindow(), 'open', 'http://progressquest.com/', nil, '', SW_SHOW); +end; + +end. diff --git a/orig/pq/HTTPGet.pas b/orig/pq/HTTPGet.pas new file mode 100644 index 0000000..dab952b --- /dev/null +++ b/orig/pq/HTTPGet.pas @@ -0,0 +1,448 @@ +{*************************************************************} +{ HTTPGet component for Delphi 32 } +{ Version: 1.94 } +{ E-Mail: info@utilmind.com } +{ WWW: http://www.utilmind.com } +{ Created: October 19, 1999 } +{ Modified: June 6, 2000 } +{ Legal: Copyright (c) 1999-2000, UtilMind Solutions } +{*************************************************************} +{ PROPERTIES: } +{ Agent: String - User Agent } +{ } +{* BinaryData: Boolean - This setting specifies which type } +{* of data will taken from the web. } +{* If you set this property TRUE then } +{* component will determinee the size } +{* of files *before* getting them from } +{* the web. } +{* If this property is FALSE then as we} +{* do not knows the file size the } +{* OnProgress event will doesn't work. } +{* Also please remember that is you set} +{* this property as TRUE you will not } +{* capable to get from the web ASCII } +{* data and ofter got OnError event. } +{ } +{ FileName: String - Path to local file to store the data } +{ taken from the web } +{ Password, UserName - set this properties if you trying to } +{ get data from password protected } +{ directories. } +{ Referer: String - Additional data about referer document } +{ URL: String - The url to file or document } +{ UseCache: Boolean - Get file from the Internet Explorer's } +{ cache if requested file is cached. } +{*************************************************************} +{ METHODS: } +{ GetFile - Get the file from the web specified in the URL } +{ property and store it to the file specified in } +{ the FileName property } +{ GetString - Get the data from web and return it as usual } +{ String. You can receive this string hooking } +{ the OnDoneString event. } +{ Abort - Stop the current session } +{*************************************************************} +{ EVENTS: } +{ OnDoneFile - Occurs when the file is downloaded } +{ OnDoneString - Occurs when the string is received } +{ OnError - Occurs when error happend } +{ OnProgress - Occurs at the receiving of the BINARY DATA } +{*************************************************************} +{ Please see demo program for more information. } +{*************************************************************} +{ IMPORTANT NOTE: } +{ This software is provided 'as-is', without any express or } +{ implied warranty. In no event will the author be held } +{ liable for any damages arising from the use of this } +{ software. } +{ Permission is granted to anyone to use this software for } +{ any purpose, including commercial applications, and to } +{ alter it and redistribute it freely, subject to the } +{ following restrictions: } +{ 1. The origin of this software must not be misrepresented, } +{ you must not claim that you wrote the original software. } +{ If you use this software in a product, an acknowledgment } +{ in the product documentation would be appreciated but is } +{ not required. } +{ 2. Altered source versions must be plainly marked as such, } +{ and must not be misrepresented as being the original } +{ software. } +{ 3. This notice may not be removed or altered from any } +{ source distribution. } +{*************************************************************} + +unit HTTPGet; + +interface + +uses + Windows, Messages, SysUtils, Classes, WinInet; + +type + TOnProgressEvent = procedure(Sender: TObject; TotalSize, Readed: Integer) of object; + TOnDoneFileEvent = procedure(Sender: TObject; FileName: String; FileSize: Integer) of object; + TOnDoneStringEvent = procedure(Sender: TObject; Result: String) of object; + + THTTPGetThread = class(TThread) + private + FTAcceptTypes, + FTAgent, + FTURL, + FTFileName, + FTStringResult, + FTUserName, + FTPassword, + FTPostQuery, + FTReferer: String; + FTBinaryData, + FTUseCache: Boolean; + + FTResult: Boolean; + FTFileSize: Integer; + FTToFile: Boolean; + + BytesToRead, BytesReaded: DWord; + + FTProgress: TOnProgressEvent; + + procedure UpdateProgress; + protected + procedure Execute; override; + public + constructor Create(aAcceptTypes, aAgent, aURL, aFileName, aUserName, aPassword, aPostQuery, aReferer: String; + aBinaryData, aUseCache: Boolean; aProgress: TOnProgressEvent; aToFile: Boolean); + end; + + THTTPGet = class(TComponent) + private + FAcceptTypes: String; + FAgent: String; + FBinaryData: Boolean; + FURL: String; + FUseCache: Boolean; + FFileName: String; + FUserName: String; + FPassword: String; + FPostQuery: String; + FReferer: String; + FWaitThread: Boolean; + + FThread: THTTPGetThread; + FError: TNotifyEvent; + FResult: Boolean; + + FProgress: TOnProgressEvent; + FDoneFile: TOnDoneFileEvent; + FDoneString: TOnDoneStringEvent; + + procedure ThreadDone(Sender: TObject); + public + constructor Create(aOwner: TComponent); override; + destructor Destroy; override; + + procedure GetFile; + procedure GetString; + procedure Abort; + published + property AcceptTypes: String read FAcceptTypes write FAcceptTypes; + property Agent: String read FAgent write FAgent; + property BinaryData: Boolean read FBinaryData write FBinaryData; + property URL: String read FURL write FURL; + property UseCache: Boolean read FUseCache write FUseCache; + property FileName: String read FFileName write FFileName; + property UserName: String read FUserName write FUserName; + property Password: String read FPassword write FPassword; + property PostQuery: String read FPostQuery write FPostQuery; + property Referer: String read FReferer write FReferer; + property WaitThread: Boolean read FWaitThread write FWaitThread; + + property OnProgress: TOnProgressEvent read FProgress write FProgress; + property OnDoneFile: TOnDoneFileEvent read FDoneFile write FDoneFile; + property OnDoneString: TOnDoneStringEvent read FDoneString write FDoneString; + property OnError: TNotifyEvent read FError write FError; + end; + +procedure Register; + +implementation + +// THTTPGetThread + +constructor THTTPGetThread.Create(aAcceptTypes, aAgent, aURL, aFileName, aUserName, aPassword, aPostQuery, aReferer: String; + aBinaryData, aUseCache: Boolean; aProgress: TOnProgressEvent; aToFile: Boolean); +begin + FreeOnTerminate := True; + inherited Create(True); + + FTAcceptTypes := aAcceptTypes; + FTAgent := aAgent; + FTURL := aURL; + FTFileName := aFileName; + FTUserName := aUserName; + FTPassword := aPassword; + FTPostQuery := aPostQuery; + FTReferer := aReferer; + FTProgress := aProgress; + FTBinaryData := aBinaryData; + FTUseCache := aUseCache; + + FTToFile := aToFile; + Resume; +end; + +procedure THTTPGetThread.UpdateProgress; +begin + FTProgress(Self, FTFileSize, BytesReaded); +end; + +procedure THTTPGetThread.Execute; +var + hSession, hConnect, hRequest: hInternet; + HostName, FileName: String; + f: File; + Buf: Pointer; + dwBufLen, dwIndex: DWord; + Data: Array[0..$400] of Char; + TempStr: String; + RequestMethod: PChar; + InternetFlag: DWord; + AcceptType: LPStr; + + procedure ParseURL(URL: String; var HostName, FileName: String); + + procedure ReplaceChar(c1, c2: Char; var St: String); + var + p: Integer; + begin + while True do + begin + p := Pos(c1, St); + if p = 0 then Break + else St[p] := c2; + end; + end; + + var + i: Integer; + begin + if Pos('http://', LowerCase(URL)) <> 0 then + System.Delete(URL, 1, 7); + + i := Pos('/', URL); + HostName := Copy(URL, 1, i); + FileName := Copy(URL, i, Length(URL) - i + 1); + + if (Length(HostName) > 0) and (HostName[Length(HostName)] = '/') then + SetLength(HostName, Length(HostName) - 1); + end; + + procedure CloseHandles; + begin + InternetCloseHandle(hRequest); + InternetCloseHandle(hConnect); + InternetCloseHandle(hSession); + end; + +begin + try + ParseURL(FTURL, HostName, FileName); + + if Terminated then + begin + FTResult := False; + Exit; + end; + + if FTAgent <> '' then + hSession := InternetOpen(PChar(FTAgent), + INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0) + else + hSession := InternetOpen(nil, + INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0); + + hConnect := InternetConnect(hSession, PChar(HostName), + INTERNET_DEFAULT_HTTP_PORT, PChar(FTUserName), PChar(FTPassword), INTERNET_SERVICE_HTTP, 0, 0); + + if FTPostQuery = '' then RequestMethod := 'GET' + else RequestMethod := 'POST'; + + if FTUseCache then InternetFlag := 0 + else InternetFlag := INTERNET_FLAG_RELOAD; + + AcceptType := PChar('Accept: ' + FTAcceptTypes); + hRequest := HttpOpenRequest(hConnect, RequestMethod, PChar(FileName), 'HTTP/1.0', + PChar(FTReferer), @AcceptType, InternetFlag, 0); + + if FTPostQuery = '' then + HttpSendRequest(hRequest, nil, 0, nil, 0) + else + HttpSendRequest(hRequest, 'Content-Type: application/x-www-form-urlencoded', 47, + PChar(FTPostQuery), Length(FTPostQuery)); + + if Terminated then + begin + CloseHandles; + FTResult := False; + Exit; + end; + + dwIndex := 0; + dwBufLen := 1024; + GetMem(Buf, dwBufLen); + + FTResult := HttpQueryInfo(hRequest, HTTP_QUERY_CONTENT_LENGTH, + Buf, dwBufLen, dwIndex); + + if Terminated then + begin + FreeMem(Buf); + CloseHandles; + FTResult := False; + Exit; + end; + + if FTResult or not FTBinaryData then + begin + if FTResult then + FTFileSize := StrToInt(StrPas(Buf)); + + BytesReaded := 0; + + if FTToFile then + begin + AssignFile(f, FTFileName); + Rewrite(f, 1); + end + else FTStringResult := ''; + + while True do + begin + if Terminated then + begin + if FTToFile then CloseFile(f); + FreeMem(Buf); + CloseHandles; + + FTResult := False; + Exit; + end; + + if not InternetReadFile(hRequest, @Data, SizeOf(Data), BytesToRead) then Break + else + if BytesToRead = 0 then Break + else + begin + if FTToFile then + BlockWrite(f, Data, BytesToRead) + else + begin + TempStr := Data; + SetLength(TempStr, BytesToRead); + FTStringResult := FTStringResult + TempStr; + end; + + inc(BytesReaded, BytesToRead); + if Assigned(FTProgress) then + Synchronize(UpdateProgress); + end; + end; + + if FTToFile then + FTResult := FTFileSize = Integer(BytesReaded) + else + begin + SetLength(FTStringResult, BytesReaded); + FTResult := BytesReaded <> 0; + end; + + if FTToFile then CloseFile(f); + end; + + FreeMem(Buf); + + CloseHandles; + except + end; +end; + +// HTTPGet + +constructor THTTPGet.Create(aOwner: TComponent); +begin + inherited Create(aOwner); + FAcceptTypes := '*/*'; + FAgent := 'UtilMind HTTPGet'; +end; + +destructor THTTPGet.Destroy; +begin + Abort; + inherited Destroy; +end; + +procedure THTTPGet.GetFile; +var + Msg: TMsg; +begin + if not Assigned(FThread) then + begin + FThread := THTTPGetThread.Create(FAcceptTypes, FAgent, FURL, FFileName, FUserName, FPassword, FPostQuery, FReferer, + FBinaryData, FUseCache, FProgress, True); + FThread.OnTerminate := ThreadDone; + if FWaitThread then + while Assigned(FThread) do + while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do + begin + TranslateMessage(Msg); + DispatchMessage(Msg); + end; + end +end; + +procedure THTTPGet.GetString; +var + Msg: TMsg; +begin + if not Assigned(FThread) then + begin + FThread := THTTPGetThread.Create(FAcceptTypes, FAgent, FURL, FFileName, FUserName, FPassword, FPostQuery, FReferer, + FBinaryData, FUseCache, FProgress, False); + FThread.OnTerminate := ThreadDone; + if FWaitThread then + while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do + begin + TranslateMessage(Msg); + DispatchMessage(Msg); + end; + end +end; + +procedure THTTPGet.Abort; +begin + if Assigned(FThread) then + begin + FThread.Terminate; + FThread.FTResult := False; + end; +end; + +procedure THTTPGet.ThreadDone(Sender: TObject); +begin + FResult := FThread.FTResult; + if FResult then + if FThread.FTToFile then + if Assigned(FDoneFile) then FDoneFile(Self, FThread.FTFileName, FThread.FTFileSize) else + else + if Assigned(FDoneString) then FDoneString(Self, FThread.FTStringResult) else + else + if Assigned(FError) then FError(Self); + FThread := nil; +end; + +procedure Register; +begin + RegisterComponents('UtilMind', [THTTPGet]); +end; + +end. diff --git a/orig/pq/INFO b/orig/pq/INFO new file mode 100644 index 0000000..28b2260 --- /dev/null +++ b/orig/pq/INFO @@ -0,0 +1,13 @@ +NAME: pq6 + +DESCRIPTION: Progress Quest: The phenomenon + +CATEGORY: games + +STATUS: mature + +LANGUAGE: Delphi + +TAGS: Object Pascal PQ + +MAIN: Main.pas diff --git a/orig/pq/Info.dcu b/orig/pq/Info.dcu new file mode 100644 index 0000000..38b822e Binary files /dev/null and b/orig/pq/Info.dcu differ diff --git a/orig/pq/Info.dfm b/orig/pq/Info.dfm new file mode 100644 index 0000000..ad3ed1a --- /dev/null +++ b/orig/pq/Info.dfm @@ -0,0 +1,101 @@ +object Form4: TForm4 + Left = 192 + Top = 107 + Width = 696 + Height = 480 + Caption = 'Progress Quest VI' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + Icon.Data = { + 0000010001002020000000000000A80800001600000028000000200000004000 + 0000010008000000000080040000000000000000000000000000000000000000 + 0000000080000080000000808000800000008000800080800000C0C0C000C0DC + C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222 + 220029292900555555004D4D4D004242420039393900807CFF005050FF009300 + D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000 + CC00003300000033330000336600003399000033CC000033FF00006600000066 + 330000666600006699000066CC000066FF000099000000993300009966000099 + 99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC + FF0000FF660000FF990000FFCC00330000003300330033006600330099003300 + CC003300FF00333300003333330033336600333399003333CC003333FF003366 + 00003366330033666600336699003366CC003366FF0033990000339933003399 + 6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC + CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600 + 330066006600660099006600CC006600FF006633000066333300663366006633 + 99006633CC006633FF00666600006666330066666600666699006666CC006699 + 00006699330066996600669999006699CC006699FF0066CC000066CC330066CC + 990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00 + CC009999000099339900990099009900CC009900000099333300990066009933 + CC009900FF00996600009966330099336600996699009966CC009933FF009999 + 330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC + 990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF + FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33 + 6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66 + CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC + 0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF + 6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33 + 3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66 + 9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99 + FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF + 6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF + 66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7 + D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080 + 80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF005852 + 5151515151515258585858585858585858585858585858585852515151515852 + 51514A4A4A515152585858585858585858585858585858585251514B4A4B5852 + 514B4A4A4A4B51515258585858585858585858585858585251514B4A4A4A5852 + 150F4A4A4A4A4B5151515152525251525252525252525151514A0F154A4B580B + 0E0E0B4A4A4A4A4A5151515151515151515151515151514B4B0B0E0E0B512311 + 15220E514A4A4A4A4A4A4A4B4A4A4A4A4A4A4A4A4A4A4A4A4A0F22143D234313 + 22431151514A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A4A11432213435822 + 23296710294B4A4A44442244154422441544224444444A221012292322585858 + 58514443151D4B4A442215221522152215221522154B0E151544515252585858 + 5879294A43140D4A22150D0E2243100E1D0D2215220D14434A03525258585858 + 585852514A224A430E0E1443220D111543140E0E4344224A4A51515258585858 + 585858514B1514220E2243150D444444444322222214154B4B4B515258585858 + 585858585174151D4A434A4A15104422234A434A1D15742A4A4B515258585858 + 585858585222444B457422224B44224B222274454B4422524A4B515258585858 + 58585858510A4B4C3F4C44EA4A22224A6D444C3F4C4B0A4A4A51515258585858 + 585858580D15294B4523ECC8C44A4AE946EC23454B29150D4A51515858585858 + 58585858444A4A234AAEC8FCFCA7E9F9F946AE44234A4A435151525858585858 + 58585858232244224AEFA7FCFC62F9F9F946EF4A224422235151525858585858 + 585858584B434A110C4A8DA862F9F9F9698D4A0C114A43295151525858585858 + 5858585852222210514A8D46F9F9F962A78D4A51104322524B51525858585858 + 58585858524B0C034AEB46F9F9F962FCFCA7F84A030C4B4A4A51515258585858 + 5858585251514B4AED46F9F9F9E3A8FCFCFCA7ED4A4B4A4A4A4B515152585858 + 58585851514B4AED46F9F9F9E3F7F7E6FCFCFCA7ED4A4A4A4A4A4B5152585858 + 585852514B4AEB46F9F9F9E3ED525892E6FCFCFCA7EB4A4A4A4A4A4B51525858 + 585852514A6D46F9F9F9E3ED5858585892E6FCFCFCA76D4A4A4A4A4A51515858 + 5858514B14B5F047F9E3F7585858585858B5E6FCC8DDB5144A4A4A4A51515858 + 585852AE09F3F3BCE3B55858585858585858B5D0DDF3F309AE4A4B4B51515858 + 5858BCF4F5F4F4F4075858585858585858585807F4F4F4F5DEBC515151525858 + 58991BF5F5F2DDB6585858585858585858585858B6DDF3F5F51B995152585858 + 5892B51909B592585858585858585858585858585892B509DDB5925858585858 + 58720909ECEB58585858585858585858585858585858F8EC0909725858585858 + 58F78DAEED5858585858585858585858585858585858581CAE8D925858580000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000000000000000000000000000} + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object WebBrowser1: TWebBrowser + Left = 0 + Top = 0 + Width = 688 + Height = 453 + Align = alClient + TabOrder = 0 + ControlData = { + 4C0000001B470000D22E00000000000000000000000000000000000000000000 + 000000004C000000000000000000000001000000E0D057007335CF11AE690800 + 2B2E126208000000000000004C0000000114020000000000C000000000000046 + 8000000000000000000000000000000000000000000000000000000000000000 + 00000000000000000100000000000000000000000000000000000000} + end +end diff --git a/orig/pq/Info.pas b/orig/pq/Info.pas new file mode 100644 index 0000000..d9d606d --- /dev/null +++ b/orig/pq/Info.pas @@ -0,0 +1,31 @@ +unit Info; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, OleCtrls, SHDocVw; + +type + TForm4 = class(TForm) + WebBrowser1: TWebBrowser; + private + { Private declarations } + public + procedure Go(url: String); + end; + +var + Form4: TForm4; + +implementation + +{$R *.dfm} + +procedure TForm4.Go(url: String); +begin + WebBrowser1.Navigate(url); + Show; +end; + +end. diff --git a/orig/pq/Login.dcu b/orig/pq/Login.dcu new file mode 100644 index 0000000..ae6eda0 Binary files /dev/null and b/orig/pq/Login.dcu differ diff --git a/orig/pq/Login.dfm b/orig/pq/Login.dfm new file mode 100644 index 0000000..8e9a09b --- /dev/null +++ b/orig/pq/Login.dfm @@ -0,0 +1,166 @@ +object LoginForm: TLoginForm + Left = 314 + Top = 162 + Width = 265 + Height = 448 + Caption = 'Progress Quest Login' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + Position = poScreenCenter + PixelsPerInch = 96 + TextHeight = 13 + object GroupBox1: TGroupBox + Left = 12 + Top = 176 + Width = 237 + Height = 69 + Caption = 'New Users' + TabOrder = 0 + object Label1: TLabel + Left = 2 + Top = 15 + Width = 233 + Height = 18 + Align = alTop + AutoSize = False + Caption = ' To sign up for a new account, visit' + Layout = tlBottom + end + object Label2: TLabel + Left = 2 + Top = 33 + Width = 233 + Height = 25 + Cursor = crHandPoint + Align = alTop + Alignment = taCenter + AutoSize = False + Caption = 'http://progressquest.com/user.php' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clActiveCaption + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold, fsUnderline] + ParentColor = False + ParentFont = False + Layout = tlCenter + OnClick = Label2Click + end + end + object Login: TButton + Left = 88 + Top = 388 + Width = 75 + Height = 25 + Caption = 'Login' + Default = True + Enabled = False + TabOrder = 1 + OnClick = LoginClick + end + object Button1: TButton + Left = 172 + Top = 388 + Width = 75 + Height = 25 + Caption = 'Cancel' + ModalResult = 2 + TabOrder = 2 + end + object GroupBox2: TGroupBox + Left = 12 + Top = 256 + Width = 237 + Height = 121 + Caption = 'Proxy Settings' + TabOrder = 3 + object Label3: TLabel + Left = 12 + Top = 20 + Width = 213 + Height = 45 + AutoSize = False + Caption = + 'Most people can leave this blank, but if you use a proxy to conn' + + 'ect to the Web, or wish to use a proxy to cheat, enter it here.' + WordWrap = True + end + object LabeledEdit1: TLabeledEdit + Left = 12 + Top = 84 + Width = 149 + Height = 21 + EditLabel.Width = 31 + EditLabel.Height = 13 + EditLabel.Caption = 'Server' + LabelPosition = lpAbove + LabelSpacing = 3 + TabOrder = 0 + end + object LabeledEdit2: TLabeledEdit + Left = 164 + Top = 84 + Width = 57 + Height = 21 + EditLabel.Width = 19 + EditLabel.Height = 13 + EditLabel.Caption = 'Port' + LabelPosition = lpAbove + LabelSpacing = 3 + TabOrder = 1 + end + end + object GroupBox3: TGroupBox + Left = 12 + Top = 12 + Width = 237 + Height = 157 + Caption = 'Account Info' + TabOrder = 4 + object Label4: TLabel + Left = 8 + Top = 20 + Width = 221 + Height = 45 + AutoSize = False + Caption = + 'Some realms are open to the public riffraff, but others may requ' + + 'ire a valid account. You can enter default account information h' + + 'ere.' + WordWrap = True + end + object Account: TLabeledEdit + Left = 8 + Top = 84 + Width = 221 + Height = 21 + EditLabel.Width = 40 + EditLabel.Height = 13 + EditLabel.Caption = 'Account' + LabelPosition = lpAbove + LabelSpacing = 3 + TabOrder = 0 + OnChange = AccountChange + end + object Password: TLabeledEdit + Left = 8 + Top = 124 + Width = 221 + Height = 21 + EditLabel.Width = 46 + EditLabel.Height = 13 + EditLabel.Caption = 'Password' + LabelPosition = lpAbove + LabelSpacing = 3 + PasswordChar = '*' + TabOrder = 1 + OnChange = AccountChange + end + end +end diff --git a/orig/pq/Login.pas b/orig/pq/Login.pas new file mode 100644 index 0000000..70d9460 --- /dev/null +++ b/orig/pq/Login.pas @@ -0,0 +1,60 @@ +unit Login; + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, Psock, NMHttp; + +type + TLoginForm = class(TForm) + GroupBox1: TGroupBox; + Label1: TLabel; + Label2: TLabel; + Login: TButton; + Button1: TButton; + GroupBox2: TGroupBox; + LabeledEdit1: TLabeledEdit; + LabeledEdit2: TLabeledEdit; + Label3: TLabel; + GroupBox3: TGroupBox; + Account: TLabeledEdit; + Password: TLabeledEdit; + Label4: TLabel; + procedure Label2Click(Sender: TObject); + procedure AccountChange(Sender: TObject); + procedure LoginClick(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + LoginForm: TLoginForm; + +implementation + +uses ShellAPI, Main, NewGuy, SelServ; + +{$R *.dfm} + +procedure TLoginForm.Label2Click(Sender: TObject); +begin + ShellExecute(GetDesktopWindow(), 'open', PChar(TLabel(Sender).Caption), nil, '', SW_SHOW); +end; + +procedure TLoginForm.AccountChange(Sender: TObject); +begin + Login.Enabled := (Account.Text <> '') and (Password.Text <> ''); +end; + +procedure TLoginForm.LoginClick(Sender: TObject); +begin + MainForm.SetLogin(Account.Text); + MainForm.SetPassword(Password.Text); + if ServerSelectForm.Go then + ModalResult := mrOk; +end; + +end. diff --git a/orig/pq/Main.dcu b/orig/pq/Main.dcu new file mode 100644 index 0000000..db7c7c5 Binary files /dev/null and b/orig/pq/Main.dcu differ diff --git a/orig/pq/Main.ddp b/orig/pq/Main.ddp new file mode 100755 index 0000000..cdc0ee8 Binary files /dev/null and b/orig/pq/Main.ddp differ diff --git a/orig/pq/Main.dfm b/orig/pq/Main.dfm new file mode 100755 index 0000000..1814f4f --- /dev/null +++ b/orig/pq/Main.dfm @@ -0,0 +1,692 @@ +object MainForm: TMainForm + Left = 330 + Top = 154 + Width = 682 + Height = 513 + HorzScrollBar.Visible = False + VertScrollBar.Visible = False + Caption = 'Progress Quest' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + Icon.Data = { + 0000010001002020000000000000A80800001600000028000000200000004000 + 0000010008000000000080040000000000000000000000000000000000000000 + 0000000080000080000000808000800000008000800080800000C0C0C000C0DC + C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222 + 220029292900555555004D4D4D004242420039393900807CFF005050FF009300 + D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000 + CC00003300000033330000336600003399000033CC000033FF00006600000066 + 330000666600006699000066CC000066FF000099000000993300009966000099 + 99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC + FF0000FF660000FF990000FFCC00330000003300330033006600330099003300 + CC003300FF00333300003333330033336600333399003333CC003333FF003366 + 00003366330033666600336699003366CC003366FF0033990000339933003399 + 6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC + CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600 + 330066006600660099006600CC006600FF006633000066333300663366006633 + 99006633CC006633FF00666600006666330066666600666699006666CC006699 + 00006699330066996600669999006699CC006699FF0066CC000066CC330066CC + 990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00 + CC009999000099339900990099009900CC009900000099333300990066009933 + CC009900FF00996600009966330099336600996699009966CC009933FF009999 + 330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC + 990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF + FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33 + 6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66 + CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC + 0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF + 6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33 + 3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66 + 9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99 + FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF + 6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF + 66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7 + D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080 + 80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A + 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C + 0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311 + 15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313 + 2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22 + 23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A + 0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A + 0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A + 0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A + 0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A + 0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A + 0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A + 0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A + 0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A + 0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A + 0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A + 0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A + 0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A + 0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A + 0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A + 0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A + 0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A + 0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A + 0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A + 0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF + FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF + FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00 + 003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03 + C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87} + KeyPreview = True + OldCreateOrder = False + Position = poScreenCenter + OnClose = FormClose + OnCreate = FormCreate + OnKeyDown = FormKeyDown + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 200 + Height = 451 + Align = alLeft + TabOrder = 0 + object Label1: TLabel + Left = 1 + Top = 1 + Width = 198 + Height = 13 + Align = alTop + Caption = 'Character Sheet' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Label6: TLabel + Left = 1 + Top = 229 + Width = 198 + Height = 13 + Align = alTop + Caption = 'Experience' + end + object Label4: TLabel + Left = 1 + Top = 258 + Width = 198 + Height = 13 + Align = alTop + Caption = 'Spell Book' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Traits: TListView + Left = 1 + Top = 14 + Width = 198 + Height = 79 + Align = alTop + Columns = < + item + Caption = 'Trait' + Width = 60 + end + item + AutoSize = True + Caption = 'Value' + end> + ColumnClick = False + FlatScrollBars = True + HideSelection = False + Items.Data = { + 6E0000000400000000000000FFFFFFFFFFFFFFFF0000000000000000044E616D + 6500000000FFFFFFFFFFFFFFFF0000000000000000045261636500000000FFFF + FFFFFFFFFFFF000000000000000005436C61737300000000FFFFFFFFFFFFFFFF + 0000000000000000054C6576656C} + MultiSelect = True + ReadOnly = True + RowSelect = True + TabOrder = 1 + ViewStyle = vsReport + end + object Stats: TListView + Left = 1 + Top = 93 + Width = 198 + Height = 136 + Align = alTop + Columns = < + item + Caption = 'Stat' + Width = 60 + end + item + AutoSize = True + Caption = 'Value' + end> + ColumnClick = False + FlatScrollBars = True + HideSelection = False + Items.Data = { + CE0000000800000000000000FFFFFFFFFFFFFFFF000000000000000003535452 + 00000000FFFFFFFFFFFFFFFF000000000000000003434F4E00000000FFFFFFFF + FFFFFFFF00000000000000000344455800000000FFFFFFFFFFFFFFFF00000000 + 0000000003494E5400000000FFFFFFFFFFFFFFFF000000000000000003574953 + 00000000FFFFFFFFFFFFFFFF00000000000000000343484100000000FFFFFFFF + FFFFFFFF0000000000000000064850204D617800000000FFFFFFFFFFFFFFFF00 + 00000000000000064D50204D6178} + MultiSelect = True + ReadOnly = True + RowSelect = True + TabOrder = 0 + ViewStyle = vsReport + end + object ExpBar: TProgressBar + Left = 1 + Top = 242 + Width = 198 + Height = 16 + Align = alTop + Min = 0 + Max = 100 + ParentShowHint = False + Position = 50 + Smooth = True + ShowHint = True + TabOrder = 2 + end + object Spells: TListView + Left = 1 + Top = 271 + Width = 198 + Height = 147 + Align = alClient + Columns = < + item + AutoSize = True + Caption = 'Spell' + end + item + Caption = 'Level' + Width = 60 + end> + ColumnClick = False + FlatScrollBars = True + HideSelection = False + MultiSelect = True + ReadOnly = True + RowSelect = True + TabOrder = 3 + ViewStyle = vsReport + end + object Cheats: TPanel + Left = 1 + Top = 418 + Width = 198 + Height = 32 + Align = alBottom + TabOrder = 4 + Visible = False + object CashIn: TButton + Left = 32 + Top = 4 + Width = 25 + Height = 25 + Caption = '$' + TabOrder = 0 + OnClick = CashInClick + end + object Button1: TButton + Left = 4 + Top = 4 + Width = 25 + Height = 25 + Caption = 'L+1' + TabOrder = 1 + OnClick = Button1Click + end + object FinishQuest: TButton + Left = 92 + Top = 4 + Width = 27 + Height = 25 + Caption = 'Q!' + TabOrder = 2 + OnClick = FinishQuestClick + end + object Button3: TButton + Left = 124 + Top = 4 + Width = 27 + Height = 25 + Caption = 'X!' + TabOrder = 3 + OnClick = SpeedButton1Click + end + object CheatPlot: TButton + Left = 60 + Top = 3 + Width = 27 + Height = 25 + Caption = 'P!' + TabOrder = 4 + OnClick = CheatPlotClick + end + end + end + object Panel3: TPanel + Left = 474 + Top = 0 + Width = 200 + Height = 451 + Align = alRight + TabOrder = 1 + object Label3: TLabel + Left = 1 + Top = 177 + Width = 198 + Height = 13 + Align = alTop + Caption = 'Quests' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Label2: TLabel + Left = 1 + Top = 1 + Width = 198 + Height = 13 + Align = alTop + Caption = 'Plot Development' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object QuestBar: TProgressBar + Left = 1 + Top = 434 + Width = 198 + Height = 16 + Align = alBottom + Min = 0 + Max = 0 + ParentShowHint = False + Smooth = True + ShowHint = True + TabOrder = 0 + end + object Plots: TListView + Left = 1 + Top = 14 + Width = 198 + Height = 147 + Align = alTop + Columns = < + item + AutoSize = True + Caption = 'Act' + end> + ColumnClick = False + FlatScrollBars = True + HideSelection = False + IconOptions.Arrangement = iaLeft + MultiSelect = True + ReadOnly = True + RowSelect = True + ShowColumnHeaders = False + StateImages = ImageList1 + TabOrder = 1 + ViewStyle = vsReport + end + object PlotBar: TProgressBar + Left = 1 + Top = 161 + Width = 198 + Height = 16 + Align = alTop + Min = 0 + Max = 0 + ParentShowHint = False + Smooth = True + ShowHint = True + TabOrder = 2 + end + object Quests: TListView + Left = 1 + Top = 190 + Width = 198 + Height = 244 + Align = alClient + Columns = < + item + AutoSize = True + Caption = 'Quest' + end> + ColumnClick = False + FlatScrollBars = True + HideSelection = False + IconOptions.Arrangement = iaLeft + MultiSelect = True + ReadOnly = True + RowSelect = True + ShowColumnHeaders = False + StateImages = ImageList1 + TabOrder = 3 + ViewStyle = vsReport + end + end + object Panel2: TPanel + Left = 200 + Top = 0 + Width = 274 + Height = 451 + Align = alClient + TabOrder = 2 + object InventoryLabelAlsoGameStyle: TLabel + Left = 1 + Top = 176 + Width = 272 + Height = 13 + Align = alTop + Caption = 'Inventory' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Label7: TLabel + Left = 1 + Top = 421 + Width = 272 + Height = 13 + Align = alBottom + Caption = 'Encumbrance' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + end + object Label8: TLabel + Left = 1 + Top = 1 + Width = 272 + Height = 13 + Align = alTop + Caption = 'Equipment' + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [fsBold] + ParentFont = False + end + object Inventory: TListView + Left = 1 + Top = 189 + Width = 272 + Height = 232 + Align = alClient + Columns = < + item + AutoSize = True + Caption = 'Item' + end + item + Alignment = taRightJustify + Caption = 'Qty' + Width = 69 + end> + ColumnClick = False + FlatScrollBars = True + HideSelection = False + MultiSelect = True + ReadOnly = True + RowSelect = True + TabOrder = 0 + ViewStyle = vsReport + end + object EncumBar: TProgressBar + Left = 1 + Top = 434 + Width = 272 + Height = 16 + Align = alBottom + Min = 0 + Max = 100 + ParentShowHint = False + Position = 50 + Smooth = True + ShowHint = True + TabOrder = 1 + end + object Equips: TListView + Left = 1 + Top = 14 + Width = 272 + Height = 162 + Align = alTop + Columns = < + item + Caption = 'Position' + Width = 60 + end + item + AutoSize = True + Caption = 'Equipped' + end> + ColumnClick = False + FlatScrollBars = True + HideSelection = False + Items.Data = { + 410100000B00000000000000FFFFFFFFFFFFFFFF000000000000000006576561 + 706F6E00000000FFFFFFFFFFFFFFFF000000000000000006536869656C640000 + 0000FFFFFFFFFFFFFFFF00000000000000000448656C6D00000000FFFFFFFFFF + FFFFFF0000000000000000074861756265726B00000000FFFFFFFFFFFFFFFF00 + 000000000000000A4272617373616972747300000000FFFFFFFFFFFFFFFF0000 + 0000000000000956616D62726163657300000000FFFFFFFFFFFFFFFF00000000 + 00000000094761756E746C65747300000000FFFFFFFFFFFFFFFF000000000000 + 00000847616D6265736F6E00000000FFFFFFFFFFFFFFFF000000000000000007 + 4375697373657300000000FFFFFFFFFFFFFFFF00000000000000000747726561 + 76657300000000FFFFFFFFFFFFFFFF000000000000000009536F6C6C65726574 + 73} + MultiSelect = True + ReadOnly = True + RowSelect = True + ShowColumnHeaders = False + TabOrder = 2 + ViewStyle = vsReport + end + object vars: TPanel + Left = 188 + Top = 24 + Width = 77 + Height = 129 + Caption = 'vars' + TabOrder = 3 + Visible = False + object fTask: TLabel + Left = 12 + Top = 16 + Width = 27 + Height = 13 + AutoSize = False + Caption = 'fTask' + Color = clMoneyGreen + ParentColor = False + end + object fQuest: TLabel + Left = 12 + Top = 36 + Width = 31 + Height = 13 + AutoSize = False + Caption = 'fQuest' + Color = clSkyBlue + ParentColor = False + end + object fQueue: TListBox + Left = 12 + Top = 76 + Width = 49 + Height = 45 + ItemHeight = 13 + TabOrder = 0 + end + end + end + object Panel4: TPanel + Left = 0 + Top = 451 + Width = 674 + Height = 35 + Align = alBottom + Caption = 'Panel4' + TabOrder = 3 + object Kill: TStatusBar + Left = 1 + Top = -1 + Width = 672 + Height = 19 + Panels = < + item + Width = 50 + end> + SimplePanel = True + SimpleText = 'Welcome to Progress Quest!' + end + object TaskBar: TProgressBar + Left = 1 + Top = 18 + Width = 672 + Height = 16 + Align = alBottom + Min = 0 + Max = 100 + Position = 50 + Smooth = True + Step = 1 + TabOrder = 1 + end + end + object Timer1: TTimer + Enabled = False + Interval = 100 + OnTimer = Timer1Timer + Left = 40 + Top = 120 + end + object ImageList1: TImageList + Height = 12 + Width = 12 + Left = 92 + Top = 52 + Bitmap = { + 494C01010200040004000C000C00FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 + 0000000000003600000028000000300000000C00000001002000000000000009 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 0000000000000000000000000000000000000000000000000000000000000000 + 000000000000000000000000000000000000424D3E000000000000003E000000 + 28000000300000000C0000000100010000000000600000000000000000000000 + 000000000000000000000000FFFFFF0000100100000000007FD7FD0000000000 + 7FD77D00000000007FD63D00000000007FD41D00000000007FD48D0000000000 + 7FD5C500000000007FD7E500000000007FD7F500000000007FD7FD0000000000 + 0010010000000000FFFFFF000000000000000000000000000000000000000000 + 000000000000} + end +end diff --git a/orig/pq/Main.pas b/orig/pq/Main.pas new file mode 100755 index 0000000..1623e15 --- /dev/null +++ b/orig/pq/Main.pas @@ -0,0 +1,1711 @@ +unit Main; +{ copyright (c)2002 Eric Fredricksen all rights reserved } + +{$DEFINE CHEATS} +{$UNDEF LOGGING} + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, ComCtrls, StdCtrls, ExtCtrls, Buttons, ImgList, Menus, ShellAPI; + +const + // revs: + // 5: pq 6.3 + // 4: pq 6.2 + // 3: pq 6.1 + // 2: pq 6.0 + // 1: pq 6.0, some early release I guess; don't remember + RevString = '&rev=5'; + wmIconTray = WM_USER + Ord('t'); + kFileExt = '.pq3'; + +type + TMainForm = class(TForm) + Panel1: TPanel; + Label1: TLabel; + Traits: TListView; + Equips: TListView; + Panel3: TPanel; + Label3: TLabel; + QuestBar: TProgressBar; + Stats: TListView; + Label2: TLabel; + PlotBar: TProgressBar; + Plots: TListView; + Quests: TListView; + Panel2: TPanel; + Label4: TLabel; + Spells: TListView; + InventoryLabelAlsoGameStyle: TLabel; + Inventory: TListView; + Panel4: TPanel; + Kill: TStatusBar; + Label6: TLabel; + ExpBar: TProgressBar; + TaskBar: TProgressBar; + Timer1: TTimer; + EncumBar: TProgressBar; + Label7: TLabel; + ImageList1: TImageList; + Label8: TLabel; + Cheats: TPanel; + CashIn: TButton; + Button1: TButton; + FinishQuest: TButton; + Button3: TButton; + CheatPlot: TButton; + vars: TPanel; + fTask: TLabel; + fQuest: TLabel; + fQueue: TListBox; + procedure GoButtonClick(Sender: TObject); + procedure Timer1Timer(Sender: TObject); + procedure FormCreate(Sender: TObject); + procedure SpeedButton1Click(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure Button1Click(Sender: TObject); + procedure CashInClick(Sender: TObject); + procedure FinishQuestClick(Sender: TObject); + procedure CheatPlotClick(Sender: TObject); + procedure FormClose(Sender: TObject; var Action: TCloseAction); + procedure FormKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); + private + procedure Task(caption: String; msec: Integer); + procedure Dequeue; + procedure Q(s: string); + function TaskDone: Boolean; + procedure CompleteQuest; + procedure CompleteAct; + procedure WinEquip; + procedure WinSpell; + procedure WinStat; + procedure WinItem; + function SpecialItem: String; + procedure LevelUp; + function BoringItem: String; + function InterestingItem: String; + function MonsterTask(var level: Integer): String; + function EquipPrice: Integer; + procedure Brag(trigger: String); + procedure TriggerAutosizes; + function GameSaveName: String; + procedure OnTrayMessage(var Msg: TMessage); message wmIconTray; + procedure OnSysCommand(var Msg : TWMSysCommand); message WM_SYSCOMMAND; + procedure Guildify; + procedure ClearAllSelections; + procedure OnQueryEndSession(var Msg : TMessage); message WM_QUERYENDSESSION; + procedure OnEndSession(var Msg : TMessage); message WM_ENDSESSION; + procedure RestoreIt; + function AuthenticateUrl(url: String): String; + {$IFDEF LOGGING} + procedure Log(line: String); + {$ENDIF} + procedure ExportCharSheet; + function CharSheet: String; + procedure InterplotCinematic; + function NamedMonster(level: Integer): String; + function ImpressiveGuy: String; + public + FTrayIcon: TNotifyIconData; + FReportSave: Boolean; + FLogEvents: Boolean; + FMakeBackups: Boolean; + FMinToTray: Boolean; + FExportSheets: Boolean; + FSaveFileName: String; + procedure MinimizeIt; + procedure LoadGame(name: String); + function SaveGame: Boolean; + procedure Put(list: TListView; key: String; value: String); overload; + procedure Put(list: TListView; pos: Integer; value: String); overload; + procedure Put(list: TListView; key: String; value: Integer); overload; + procedure Add(list: TListView; key: String; value: Integer); overload; + procedure AddR(list: TListView; key: String; value: Integer); overload; + function Get(list: TListView; key: String): String; overload; + function Get(list: TListView; index: Integer): String; overload; + function GetI(list: TListView; key: String): Integer; overload; + function GetI(list: TListView; index: Integer): Integer; overload; + function Sum(list: TListView): Integer; + function RollCharacter: Boolean; + function GetMotto: String; + function GetPasskey: Integer; + procedure SetMotto(v: String); + procedure SetPasskey(v: String); + function GetHostAddr: String; + function GetHostName: String; + procedure SetHostAddr(v: String); + procedure SetHostName(v: String); + function GetLogin: String; + function GetPassword: String; + procedure SetLogin(v: String); + procedure SetPassword(v: String); + function GetGuild: String; + procedure SetGuild(v: String); + end; + +var + MainForm: TMainForm; + +function Split(s: String; field: Integer): String; overload; +function Split(s: String; field: Integer; separator: String): String; overload; + +procedure Navigate(url: String); + +implementation + +uses Web, StrUtils, NewGuy, Math, Config, Front, zlibex, SelServ, Login, + mmsystem, Registry, ShlObj; + +{$R *.dfm} + +// Returns '' if not there, which is lame, but okay for my purposes +function RegRead(root: HKEY; path, name: String): String; +var + Reg: TRegistry; +begin + Reg := TRegistry.Create; + try + Reg.RootKey := root; + if Reg.OpenKey(path, false) then + Result := Reg.ReadString(name); + Reg.CloseKey; + finally + Reg.Free; + end; +end; + +procedure RegWrite(root: HKEY; path, name, value: String); +var + Reg: TRegistry; +begin + Reg := TRegistry.Create; + try + Reg.RootKey := root; + Reg.OpenKey(path, true); + Reg.WriteString(name, value); + Reg.CloseKey; + finally + Reg.Free; + end; +end; + +procedure MakeFileAssociations; +const + kPQFileType = 'ProgressQuest.GameSave'; +var + kOpenCommand: String; +begin + kOpenCommand := '"' + Application.ExeName + '" "%1"'; + try + RegWrite(HKEY_CLASSES_ROOT, kFileExt,'', kPQFileType); + RegWrite(HKEY_CLASSES_ROOT, kPQFileType, '', 'Progresss Quest saved game'); + RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\DefaultIcon', '', Application.ExeName + ',0'); + RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open', '', '&Open'); + if RegRead(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open\Command', '') <> kOpenCommand then begin + RegWrite(HKEY_CLASSES_ROOT, kPQFileType + '\Shell\Open\Command', '', kOpenCommand); + // Notify Windows Explorer to realize we added this. In case this is slow + // I don't do this unless I'm sure this one has changed. + SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil); + end; + except + on Exception do begin + // Don't care + end; + end; +end; + +procedure TMainForm.MinimizeIt; +begin + if not FMinToTray then Exit; + with FTrayIcon do + begin + cbSize := SizeOf(FTrayIcon); + Wnd := Handle; + uID := 0; + uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP; + uCallbackMessage := wmIconTray; + hIcon := Application.Icon.Handle; + StrPLCopy(szTip, Caption, 63); + end; + Application.Minimize; + ShowWindow(Application.Handle, SW_HIDE); + Shell_NotifyIcon(NIM_ADD,@FTrayIcon); +end; + +procedure TMainForm.OnSysCommand(var Msg: TWMSysCommand); +begin + if (Msg.CmdType = SC_MINIMIZE) and FMinToTray then + MinimizeIt(); + inherited; +end; + +procedure TMainForm.RestoreIt; +begin + ShowWindow(Application.Handle, SW_SHOW); + Application.Restore; + Shell_NotifyIcon(NIM_DELETE, @MainForm.FTrayIcon); +end; + +procedure TMainForm.OnTrayMessage(var Msg: TMessage); +begin + case Msg.lParam of + WM_LBUTTONDOWN, WM_RBUTTONDOWN: + RestoreIt; + + WM_LBUTTONDBLCLK, WM_RBUTTONDBLCLK: + RestoreIt; + end; +end; + +procedure StartTimer; +begin + if not MainForm.Timer1.Enabled then begin + MainForm.Timer1.Tag := timeGetTime; + //Shell_NotifyIcon(NIM_ADD, @MainForm.FTrayIcon); + end; + MainForm.Timer1.Enabled := True; + // BS location for this, but... + MainForm.Caption := 'ProgressQuest - ' + ChangeFileExt(ExtractFileName(MainForm.GameSaveName), ''); +end; + +function TMainForm.GetPasskey: Integer; begin Result := Traits.Tag; end; +procedure TMainForm.SetPasskey(v: String); +begin + Traits.Hint := v; + Traits.Tag := StrToIntDef(Traits.Hint,0); +end; + +function TMainForm.GetMotto: String; begin Result := Stats.Hint; end; +procedure TMainForm.SetMotto(v: String); begin Stats.Hint := v; end; + +function TMainForm.GetHostName: String; begin Result := Spells.Hint; end; +procedure TMainForm.SetHostName(v: String); begin Spells.Hint := v; end; + +function TMainForm.GetHostAddr: String; +begin + Result := Equips.Hint; + if (Result = '') and (GetPasskey <> 0) then + Result := 'http://www.progressquest.com/knoram.php?'; +end; +procedure TMainForm.SetHostAddr(v: String); begin Equips.Hint := v; end; + +function TMainForm.GetLogin: String; begin Result := Inventory.Hint; end; +procedure TMainForm.SetLogin(v: String); begin Inventory.Hint := v; end; + +function TMainForm.GetPassword: String; begin Result := Plots.Hint; end; +procedure TMainForm.SetPassword(v: String); begin Plots.Hint := v; end; + +function TMainForm.GetGuild: String; begin Result := Label1.Hint; end; +procedure TMainForm.SetGuild(v: String); begin Label1.Hint := v; end; + +procedure TMainForm.Q(s: string); +begin + fQueue.Items.Add(s); + Dequeue; +end; + +function TMainForm.TaskDone: Boolean; +begin + with TaskBar do + Result := Position >= Max; +end; + +function Odds(chance, outof: Integer): Boolean; +begin + Result := Random(outof) < chance; +end; + +function RandSign(): Integer; +begin + Result := Random(2) * 2 - 1; +end; + +function Pick(s: TStrings): String; +begin + Result := s[Random(s.Count)]; +end; + +function RandomLow(below: Integer): Integer; +begin + Result := Min(Random(below),Random(below)); +end; + +function PickLow(s: TStrings): String; +begin + Result := s[RandomLow(s.Count)]; +end; + +function Ends(s,e: String): Boolean; +begin + Result := Copy(s,1+Length(s)-Length(e),Length(e)) = e; +end; + +function Plural(s: String): String; +begin + if Ends(s,'y') + then Result := Copy(s,1,Length(s)-1) + 'ies' + else if Ends(s,'us') + then Result := Copy(s,1,Length(s)-2) + 'i' + else if Ends(s,'ch') or Ends(s,'x') or Ends(s,'s') + then Result := s + 'es' + else if Ends(s,'f') + then Result := Copy(s,1,Length(s)-1) + 'ves' + else if Ends(s,'man') or Ends(s,'Man') + then Result := Copy(s,1,Length(s)-2) + 'en' + else Result := s + 's'; +end; + +function Split(s: String; field: Integer; separator: String): String; +var + p: Integer; +begin + while field > 0 do begin + p := Pos(separator,s); + s := Copy(s,p+1,10000); + Dec(field); + end; + if Pos(separator,s) > 0 + then Result := Copy(s,1,Pos(separator,s)-1) + else Result := s; +end; + +function Split(s: String; field: Integer): String; +begin + result := Split(s, field, '|'); +end; + +function Indefinite(s: String; qty: Integer): String; +begin + if qty = 1 then begin + if Pos(s[1], 'AEIOUÜaeiouü') > 0 + then Result := 'an ' + s + else Result := 'a ' + s; + end else begin + Result := IntToStr(qty) + ' ' + Plural(s); + end; +end; + +function Definite(s: String; qty: Integer): String; +begin + if qty > 1 then + s := {IntToStr(qty) + ' ' +} Plural(s); + Result := 'the ' + s; +end; + +function Sick(m: Integer; s: String): String; +begin + Result := IntToStr(m) + s; // in case I screw up + case m of + -5,5: Result := 'dead ' + s; + -4,4: Result := 'comatose ' + s; + -3,3: Result := 'crippled ' + s; + -2,2: Result := 'sick ' + s; + -1,1: Result := 'undernourished ' + s; + end; +end; + +function Young(m: Integer; s: String): String; +begin + Result := IntToStr(m) + s; // in case I screw up + case -m of + -5,5: Result := 'foetal ' + s; + -4,4: Result := 'baby ' + s; + -3,3: Result := 'preadolescent ' + s; + -2,2: Result := 'teenage ' + s; + -1,1: Result := 'underage ' + s; + end; +end; + +function Big(m: Integer; s: String): String; +begin + Result := s; // in case I screw up + case m of + 1,-1: Result := 'greater ' + s; + 2,-2: Result := 'massive ' + s; + 3,-3: Result := 'enormous ' + s; + 4,-4: Result := 'giant ' + s; + 5,-5: Result := 'titanic ' + s; + end; +end; + +function Special(m: Integer; s: String): String; +begin + Result := s; // in case I screw up + case -m of + 1,-1: + if Pos(' ',Result) > 0 + then Result := 'veteran ' + s + else Result := 'Battle-' + s; + 2,-2: Result := 'cursed ' + s; + 3,-3: + if Pos(' ',Result) > 0 + then Result := 'warrior ' + s + else Result := 'Were-' + s; + 4,-4: Result := 'undead ' + s; + 5,-5: Result := 'demon ' + s; + end; +end; + +procedure TMainForm.InterplotCinematic; +var + nemesis: String; + i, s: Integer; +begin + case Random(3) of + 0: begin + Q('task|1|Exhausted, you arrive at a friendly oasis in a hostile land'); + Q('task|2|You greet old friends and meet new allies'); + Q('task|2|You are privy to a council of powerful do-gooders'); + Q('task|1|There is much to be done. You are chosen!'); + end; + 1: begin + Q('task|1|Your quarry is in sight, but a mighty enemy bars your path!'); + nemesis := NamedMonster(GetI(Traits,'Level')+3); + Q('task|4|A desperate struggle commences with ' + nemesis); + s := Random(3); + for i := 1 to Random(1 + Plots.Items.Count) do begin + Inc(s, 1 + Random(2)); + case s mod 3 of + 0: Q('task|2|Locked in grim combat with ' + nemesis); + 1: Q('task|2|' + nemesis + ' seems to have the upper hand'); + 2: Q('task|2|You seem to gain the advantage over ' + nemesis); + end; + end; + Q('task|3|Victory! ' + nemesis + ' is slain! Exhausted, you lose conciousness'); + Q('task|2|You awake in a friendly place, but the road awaits'); + end; + 2: begin + nemesis := ImpressiveGuy; + Q('task|2|Oh sweet relief! You''ve reached the protection of the good ' + nemesis); + Q('task|3|There is rejoicing, and an unnerving encouter with ' + nemesis + ' in private'); + Q('task|2|You forget your ' + BoringItem + ' and go back to get it'); + Q('task|2|What''s this!? You overhear something shocking!'); + Q('task|2|Could ' + nemesis + ' be a dirty double-dealer?'); + Q('task|3|Who can possibly be trusted with this news!? ... Oh yes, of course'); + end; + end; + Q('plot|1|Loading'); +end; + + +function TMainForm.NamedMonster(level: Integer): String; +var + lev, i: Integer; + m: String; +begin + lev := 0; // shut up, compiler hint + for i := 1 to 5 do begin + m := Pick(K.Monsters.Lines); + if (Result = '') or (abs(level-StrToInt(Split(m,1))) < abs(level-lev)) then begin + Result := Split(m,0); + lev := StrToInt(Split(m,1)); + end; + end; + Result := GenerateName + ' the ' + Result; +end; + +function TMainForm.ImpressiveGuy: String; +begin + Result := Pick(K.ImpressiveTitles.Lines); + case Random(2) of + 0: Result := Result + ' of the ' + Pick(K.Races.Lines); + 1: Result := Result + ' of ' + GenerateName; + end; +end; + +function TMainForm.MonsterTask(var level: Integer): String; +var + qty, lev, i: Integer; + monster, m1: string; + definite: Boolean; +begin + definite := false; + for i := level downto 1 do begin + if Odds(2,5) then + Inc(level, RandSign()); + end; + if level < 1 then level := 1; + // level = level of puissance of opponent(s) we'll return + + if Odds(1,25) then begin + // use an NPC every once in a while + monster := ' ' + Pick(NewGuyForm.Race.Items); + if Odds(1,2) + then monster := 'passing' + monster + ' ' + Pick(NewGuyForm.Klass.Items) + else begin + monster := PickLow(K.Titles.Lines) + ' ' + GenerateName + ' the' + monster; + definite := true; + end; + lev := level; + monster := monster + '|' + IntToStr(level) + '|*'; + end else if (fQuest.Caption <> '') and Odds(1,4) then begin + // use the quest monster + monster := k.Monsters.Lines[fQuest.Tag]; + lev := StrToInt(Split(monster,1)); + end else begin + // pick the monster out of so many random ones closest to the level we want + monster := Pick(K.Monsters.Lines); + lev := StrToInt(Split(monster,1)); + i := 5; + while (i > 0) do begin // or (lev - level > 4) do begin + m1 := Pick(K.Monsters.Lines); + if abs(level-StrToInt(Split(m1,1))) < abs(level-lev) then begin + monster := m1; + lev := StrToInt(Split(monster,1)); + end; + if i > 0 then Dec(i); + end; + end; + + fTask.Caption := monster; + Result := Split(monster,0); + fTask.Caption := 'kill|' + fTask.Caption; + + qty := 1; + if (level-lev) > 10 then begin + // lev is too low. multiply... + qty := (level + Random(lev)) div max(lev,1); + if qty < 1 then qty := 1; + level := level div qty; + end; + + if (level - lev) <= -10 then begin + Result := 'imaginary ' + Result; + end else if (level-lev) < -5 then begin + i := 10+(level-lev); + i := 5-Random(i+1); + Result := Sick(i,Young((lev-level)-i,Result)); + end else if ((level-lev) < 0) and (Random(2) = 1) then begin + Result := Sick(level-lev,Result); + end else if ((level-lev) < 0) then begin + Result := Young(level-lev,Result); + end else if (level-lev) >= 10 then begin + Result := 'messianic ' + Result; + end else if (level-lev) > 5 then begin + i := 10-(level-lev); + i := 5-Random(i+1); + Result := Big(i,Special((level-lev)-i,Result)); + end else if ((level-lev) > 0) and (Random(2) = 1) then begin + Result := Big(level-lev,Result); + end else if ((level-lev) > 0) then begin + Result := Special(level-lev,Result); + end; + + lev := level; + level := lev * qty; + + if not definite then Result := Indefinite(Result, qty); +end; + +function ProperCase(s:String):String; +begin + Result := UpperCase(Copy(s,1,1)) + Copy(s,2,10000); +end; + +function TMainForm.EquipPrice: Integer; +begin + Result := 5 * GetI(Traits,'Level') * GetI(Traits,'Level') + + 10 * GetI(Traits,'Level') + + 20; +end; + +procedure TMainForm.Dequeue; +var + s, a, old: String; + n, l: Integer; +begin + while TaskDone do begin + if Split(fTask.Caption,0) = 'kill' then begin + if Split(fTask.Caption,3) = '*' then begin + WinItem; + end else if Split(fTask.Caption,3) <> '' then begin + Add(Inventory,LowerCase(Split(fTask.Caption,1) + ' ' + ProperCase(Split(fTask.Caption,3))),1); + end; + end else if fTask.Caption = 'buying' then begin + // buy some equipment + Add(Inventory,'Gold',-EquipPrice); + WinEquip; + end else if (fTask.Caption = 'market') or (fTask.Caption = 'sell') then with Inventory do begin + if fTask.Caption = 'sell' then begin + Tag := GetI(Inventory,1); + Tag := Tag * GetI(Traits,'Level'); + if Pos(' of ',Items[1].Caption) > 0 then + Tag := Tag * (1+RandomLow(10)) * (1+RandomLow(GetI(Traits,'Level'))); + Items[0].MakeVisible(false); + Items.Delete(1); + Add(Inventory,'Gold',Tag); + end; + if Items.Count > 1 then begin + Task('Selling ' + Indefinite(Inventory.Items[1].Caption, GetI(Inventory,1)), 1 * 1000); + fTask.Caption := 'sell'; + break; + end; + end; + old := fTask.Caption; + fTask.Caption := ''; + if (fQueue.Items.Count > 0) then begin + a := Split(fQueue.Items[0],0); + n := StrToInt(Split(fQueue.Items[0],1)); + s := Split(fQueue.Items[0],2); + if (a = 'task') or (a = 'plot') then begin + if a = 'plot' then begin + CompleteAct; + s := 'Loading ' + Plots.Items[Plots.Items.Count-1].Caption; + end; + Task(s, n * 1000); + fQueue.Items.Delete(0); + end else begin + raise Exception.Create('bah!'); + end; + end else with Encumbar do if Position >= Max then begin + Task('Heading to market to sell loot',4 * 1000); + fTask.Caption := 'market'; + end else if (Pos('kill|',old) <= 0) and (old <> 'heading') then begin + if GetI(Inventory, 'Gold') > EquipPrice then begin + Task('Negotiating purchase of better equipment', 5 * 1000); + fTask.Caption := 'buying'; + end else begin + Task('Heading to the killing fields', 4 * 1000); + fTask.Caption := 'heading'; + end; + end else begin + n := GetI(Traits,'Level'); + l := n; + s := MonsterTask(n); + n := (2 * InventoryLabelAlsoGameStyle.Tag * n * 1000) div l; + Task('Executing ' + s, n); + end; + end; +end; + +function IndexOf(list: TListView; key: String): Integer; +var + i: Integer; +begin + for i := 0 to list.Items.Count-1 do if list.Items.Item[i].Caption = key then begin + Result := i; + Exit; + end; + with list.Items.Add do begin + Result := Index; + Caption := key; + MakeVisible(false); + list.Width := list.Width - 1; // trigger an autosize + end; +end; + +procedure TMainForm.Put(list: TListView; key, value: String); +begin + Put(list, IndexOf(list,key), value); +end; + +procedure TMainForm.Put(list: TListView; key: String; value: Integer); +begin + Put(list,key,IntToStr(value)); + if key = 'STR' then + Encumbar.Max := 10 + value; + if list = Inventory then with Encumbar do begin + Position := Sum(Inventory) - GetI(Inventory,'Gold'); + Hint := IntToStr(Position) + '/' + IntToStr(Max) + ' cubits'; + end; +end; + +procedure TMainForm.Put(list: TListView; pos: Integer; value: String); +begin + with list.Items.Item[pos] do begin + if SubItems.Count < 1 + then SubItems.Add(value) + else SubItems[0] := value; + end; + //list.MultiSelect := true; + //list.RowSelect := true; + //list.HideSelection := false; + list.Items[pos].Selected := true; +end; + +function LevelUpTime(level: Integer): Integer; // seconds +begin + // 20 minutes per level + Result := 20 * level * 60; +end; + +procedure TMainForm.GoButtonClick(Sender: TObject); +begin + with ExpBar do begin + Position := 0; + Max := LevelUpTime(1); + end; + + fTask.Caption := ''; + fQuest.Caption := ''; + fQueue.Items.Clear; + + Task('Loading.',2000); // that dot is spotted for later... + Q('task|10|Experiencing an enigmatic and foreboding night vision'); + Q('task|6|Much is revealed about that wise old bastard you''d underestimated'); + Q('task|6|A shocking series of events leaves you alone and bewildered, but resolute'); + Q('task|4|Drawing upon an unexpected reserve of determination, you set out on a long and dangerous journey'); + Q('task|2|Loading'); + + PlotBar.Max := 26; + with Plots.Items.Add do begin + Caption := 'Prologue'; + StateIndex := 0; + end; + + StartTimer; + SaveGame; + Brag('s'); +end; + +procedure TMainForm.WinSpell; +begin + AddR(Spells, K.Spells.Lines[RandomLow(Min(GetI(Stats,'WIS')+GetI(Traits,'Level'), + K.Spells.Lines.Count))], 1); +end; + +function LPick(list: TStrings; goal: Integer): String; +var + i, best, b1: Integer; + s: String; +begin + Result := Pick(list); + for i := 1 to 5 do begin + best := StrToInt(Split(Result,1)); + s := Pick(list); + b1 := StrToInt(Split(s,1)); + if abs(goal-best) > abs(goal-b1) then + Result := s; + end; +end; + +procedure TMainForm.WinEquip; +var + posn, qual, plus, count: Integer; + name, modifier: String; + stuff, better, worse: TStrings; +begin + posn := Random(Equips.Items.Count); + Equips.Tag := posn; // remember as the "best item" + if posn = 0 then begin + stuff := K.Weapons.Lines; + better := K.OffenseAttrib.Lines; + worse := K.OffenseBad.Lines; + end else begin + better := K.DefenseAttrib.Lines; + worse := K.DefenseBad.Lines; + if posn = 1 + then stuff := K.Shields.Lines + else stuff := K.Armors.Lines; + end; + name := LPick(stuff,GetI(Traits,'Level')); + qual := StrToInt(Split(name,1)); + name := Split(name,0); + plus := GetI(Traits,'Level') - qual; + if plus < 0 then better := worse; + count := 0; + while (count < 2) and (plus <> 0) do begin + modifier := Pick(better); + qual := StrToInt(Split(modifier, 1)); + modifier := Split(modifier, 0); + if Pos(modifier, name) > 0 then Break; // no repeats + if Abs(plus) < Abs(qual) then Break; // too much + name := modifier + ' ' + name; + Dec(plus, qual); + Inc(count); + end; + if plus <> 0 then name := IntToStr(plus) + ' ' + name; + if plus > 0 then name := '+' + name; + + Put(Equips, posn, name); +end; + +procedure TMainForm.WinStat; +var + i,t: Integer; + function Square(x: Integer): Integer; begin Result := x * x; end; +begin + if Odds(1,2) + then i := Random(Stats.Items.Count) + else begin + // favor the best stat so it will tend to clump + t := 0; + for i := 0 to 5 do Inc(t,Square(GetI(Stats,i))); + t := Random(t); + i := -1; + while t >= 0 do begin + Inc(i); + Dec(t,Square(GetI(Stats,i))); + end; + end; + Add(Stats, Stats.Items[i].Caption, 1); +end; + +function TMainForm.SpecialItem: String; +begin + Result := InterestingItem + ' of ' + + Pick(K.ItemOfs.Lines); +end; + +function TMainForm.InterestingItem: String; +begin + Result := Pick(K.ItemAttrib.Lines) + ' ' + + Pick(K.Specials.Lines); +end; + +function TMainForm.BoringItem: String; +begin + Result := Pick(K.BoringItems.Lines); +end; + +procedure TMainForm.WinItem; +begin + Add(Inventory, SpecialItem, 1); +end; + +procedure TMainForm.CompleteQuest; +var + lev, level, l, i, montag: Integer; + m: string; +begin + lev := 0; // Quell stupid compiler warning + with QuestBar do begin + Position := 0; + Max := 50 + Random(100); + end; + with Quests do begin + if Items.Count > 0 then begin + {$IFDEF LOGGING} + Log('Quest completed: ' + Items[Items.Count-1].Caption); + {$ENDIF} + Items[Items.Count-1].StateIndex := 1; + case Random(4) of + 0: WinSpell; + 1: WinEquip; + 2: WinStat; + 3: WinItem; + end; + end; + while Items.Count > 99 do Items.Delete(0); + + with Items.Add do begin + case Random(5) of + 0: begin + level := GetI(Traits,'Level'); + for i := 1 to 4 do begin + montag := Random(K.Monsters.Lines.Count); + m := K.Monsters.Lines[montag]; + l := StrToInt(Split(m,1)); + if (i = 1) or (abs(l - level) < abs(lev - level)) then begin + lev := l; + fQuest.Caption := m; + fQuest.Tag := montag; + end; + end; + Caption := 'Exterminate ' + Definite(Split(fQuest.Caption,0),2); + end; + 1: begin + fQuest.Caption := InterestingItem; + Caption := 'Seek ' + Definite(fQuest.Caption,1); + fQuest.Caption := ''; + end; + 2: begin + fQuest.Caption := BoringItem; + Caption := 'Deliver this ' + fQuest.Caption; + fQuest.Caption := ''; + end; + 3: begin + fQuest.Caption := BoringItem; + Caption := 'Fetch me ' + Indefinite(fQuest.Caption,1); + fQuest.Caption := ''; + end; + 4: begin + level := GetI(Traits,'Level'); + for i := 1 to 2 do begin + montag := Random(K.Monsters.Lines.Count); + m := K.Monsters.Lines[montag]; + l := StrToInt(Split(m,1)); + if (i = 1) or (abs(l - level) < abs(lev - level)) then begin + lev := l; + fQuest.Caption := m; + end; + end; + Caption := 'Placate ' + Definite(Split(fQuest.Caption,0),2); + fQuest.Caption := ''; + end; + end; + {$IFDEF LOGGING} + Log('Commencing quest: ' + Caption); + {$ENDIF} + StateIndex := 0; + MakeVisible(false); + end; + Width := Width - 1; // trigger a column resize + end; + SaveGame; +end; + +function Rome(var n: Integer; dn: Integer; var s: String; ds: String): Boolean; +begin + Result := (n >= dn); + if Result then begin + n := n - dn; + s := s + ds; + end; +end; + +function UnRome(var s: String; dn: Integer; var n: Integer; ds: String): Boolean; +begin + Result := (Copy(s,1,Length(ds)) = ds); + if Result then begin + s := Copy(s,Length(ds)+1,10000); + n := n + dn; + end; +end; + +function IntToRoman(n: Integer): String; +begin + while Rome(n, 1000, Result, 'M') do ; + Rome(n, 900, Result, 'CM'); + Rome(n, 500, Result, 'D'); + Rome(n, 400, Result, 'CD'); + while Rome(n, 100, Result, 'C') do ; + Rome(n, 90, Result, 'XC'); + Rome(n, 50, Result, 'L'); + Rome(n, 40, Result, 'XL'); + while Rome(n, 10, Result, 'X') do ; + Rome(n, 9, Result, 'IX'); + Rome(n, 5, Result, 'V'); + Rome(n, 4, Result, 'IV'); + while Rome(n, 1, Result, 'I') do ; +end; + +function RomanToInt(n: String): Integer; +begin + Result := 0; + while UnRome(n, 1000, Result, 'M') do ; + UnRome(n, 900, Result, 'CM'); + UnRome(n, 500, Result, 'D'); + UnRome(n, 400, Result, 'CD'); + while UnRome(n, 100, Result, 'C') do ; + UnRome(n, 90, Result, 'XC'); + UnRome(n, 50, Result, 'L'); + UnRome(n, 40, Result, 'XL'); + while UnRome(n, 10, Result, 'X') do ; + UnRome(n, 9, Result, 'IX'); + UnRome(n, 5, Result, 'V'); + UnRome(n, 4, Result, 'IV'); + while UnRome(n, 1, Result, 'I') do ; +end; + +procedure TMainForm.CompleteAct; +begin + PlotBar.Position := 0; + with Plots do begin + Items[Items.Count-1].StateIndex := 1; + PlotBar.Max := 60 * 60 * (1 + 5 * Items.Count); // 1 hr + 5/act + PlotBar.Hint := 'Cutscene omitted'; + with Items.Add do begin + Caption := 'Act ' + IntToRoman(Items.Count-1); + MakeVisible(false); + StateIndex := 0; + Width := Width-1; + end; + end; + WinItem; + WinEquip; + SaveGame; + Brag('a'); +end; + + +{$IFDEF LOGGING} +procedure TMainForm.Log(line: String); +var + stamp: String; + logname: String; + log: Text; +begin + if FLogEvents then begin + logname := ChangeFileExt(GameSaveName, '.log'); + DateTimeToString(stamp, '[yyyy-mm-dd hh:nn:ss]', Now); + AssignFile(log, logname); + if FileExists(logname) then Append(log) else Rewrite(log); + WriteLn(log, stamp + ' ' + line); + Flush(log); + CloseFile(log); + end; +end; +{$ENDIF} + +procedure TMainForm.ExportCharSheet; +var + f: TextFile; +begin + AssignFile(f, ChangeFileExt(GameSaveName, '.sheet')); + Rewrite(f); + Write(f, CharSheet); + Flush(f); + CloseFile(f); +end; + +function TMainForm.CharSheet: String; +var + i: Integer; + f: String; + procedure Wr(a: String); begin f := f + a; end; + procedure WrLn(a: String); overload; begin Wr(a + #13#10); end; + procedure WrLn; overload; begin Wr(#13#10); end; +begin + Wr(Get(Traits,'Name')); + if GetHostName <> '' then + Wr(' [' + GetHostName + ']'); + WrLn; + WrLn(Get(Traits,'Race') + ' ' + Get(Traits,'Class')); + WrLn(Format('Level %d (exp. %d/%d)', [GetI(Traits,'Level'), ExpBar.Position, ExpBar.Max])); + //WrLn('Level ' + Get(Traits,'Level') + ' (' + ExpBar.Hint + ')'); + WrLn; + with Plots do if Items.Count > 0 then + WrLn('Plot stage: ' + Items[Items.Count-1].Caption + ' (' + PlotBar.Hint + ')'); + with Quests do if Items.Count > 0 then + WrLn('Quest: ' + Items[Items.Count-1].Caption + ' (' + QuestBar.Hint + ')'); + WrLn; + WrLn( 'Stats:'); + WrLn( Format(' STR%7d', [GetI(Stats,'STR')])); + WrLn( Format(' CON%7d', [GetI(Stats,'CON')])); + WrLn( Format(' DEX%7d', [GetI(Stats,'DEX')])); + WrLn( Format(' INT%7d', [GetI(Stats,'INT')])); + WrLn( Format(' WIS%7d HP Max%7d', [GetI(Stats,'WIS'), GetI(Stats,'HP Max')])); + WrLn( Format(' CHA%7d MP Max%7d', [GetI(Stats,'CHA'), GetI(Stats,'MP Max')])); + WrLn; + WrLn( 'Equipment:'); + for i := 1 to Equips.Items.Count-1 do + if Get(Equips,i) <> '' then + WrLn( ' ' + LeftStr(Equips.Items[i].Caption + ' ', 12) + Get(Equips,i)); + WrLn; + WrLn( 'Spell Book:'); + with Spells do + for i := 1 to Items.Count-1 do + WrLn( ' ' + Items[i].Caption + ' ' + Get(Spells,i)); + WrLn; + WrLn( 'Inventory (' + EncumBar.Hint + '):'); + WrLn( ' ' + Indefinite('gold piece', GetI(Inventory, 'Gold'))); + with Inventory do + for i := 2 to Items.Count-1 do + if Pos(' of ', Items[i].Caption) > 0 + then WrLn( ' ' + Definite(Items[i].Caption, GetI(Inventory,i))) + else WrLn( ' ' + Indefinite(Items[i].Caption, GetI(Inventory,i))); + WrLn; + WrLn( '-- ' + DateTimeToStr(Now)); + WrLn( '-- Progress Quest 6.2 - http://progressquest.com/'); + Result := f; +end; + +procedure TMainForm.Task(caption: String; msec: Integer); +begin + Kill.SimpleText := caption + '...'; + {$IFDEF LOGGING} + Log(Kill.SimpleText); + {$ENDIF} + with TaskBar do begin + Position := 0; + Max := msec; + end; +end; + +procedure TMainForm.Add(list: TListView; key: String; value: Integer); +var line: String; +begin + Put(list, key, value + GetI(list,key)); + if value = 0 then Exit; + + if value > 0 then line := 'Gained' else line := 'Lost'; + if key = 'Gold' then begin + key := 'gold piece'; + if value > 0 then line := 'Got paid' else line := 'Spent'; + end; + if value < 0 then value := -value; + line := line + ' ' + Indefinite(key, value); + {$IFDEF LOGGING} + Log(line); + {$ENDIF} +end; + +procedure TMainForm.AddR(list: TListView; key: String; value: Integer); +begin + Put(list, key, IntToRoman(value + RomanToInt(Get(list,key)))); +end; + +function TMainForm.Get(list: TListView; key: String): String; +begin + Result := Get(list, IndexOf(list,key)); +end; + +function TMainForm.Get(list: TListView; index: Integer): String; +begin + with list.Items.Item[index] do begin + if SubItems.Count < 1 + then Result := '' + else Result := SubItems[0]; + end; +end; + +function TMainForm.GetI(list: TListView; key: String): Integer; +begin + Result := StrToIntDef(Get(list,key),0); +end; + +function TMainForm.GetI(list: TListView; index: Integer): Integer; +begin + Result := StrToIntDef(Get(list,index),0); +end; + +function TMainForm.Sum(list: TListView): Integer; +var + i: Integer; +begin + Result := 0; + for i := 0 to list.Items.Count - 1 do + Inc(Result, GetI(list,i)); +end; + +procedure PutLast(list: TListView; value: String); +begin + if list.Items.Count > 0 then + with list.Items.Item[list.Items.Count-1] do begin + if SubItems.Count < 1 + then SubItems.Add(value) + else SubItems[0] := value; + end; + list.Width := list.Width - 1; // trigger an autosize +end; + +procedure TMainForm.LevelUp; +var + i: Integer; +begin + Add(Traits,'Level',1); + Add(Stats,'HP Max', GetI(Stats,'CON') div 3 + 1 + Random(4)); + Add(Stats,'MP Max', GetI(Stats,'INT') div 3 + 1 + Random(4)); + for i := 1 to 2 do WinStat; + WinSpell; + with ExpBar do begin + Position := 0; + Max := LevelUpTime(GetI(Traits,'Level')); + end; + SaveGame; + Brag('l'); +end; + +procedure TMainForm.ClearAllSelections; +begin + Equips.ClearSelection; + Spells.ClearSelection; + Stats.ClearSelection; + Traits.ClearSelection; + Inventory.ClearSelection; + Plots.ClearSelection; + Quests.ClearSelection; +end; + +function RoughTime(s: Integer): String; +begin + if s < 120 then Result := IntToStr(s) + ' seconds' + else if s < 60 * 120 then Result := IntToStr(s div 60) + ' minutes' + else if s < 60 * 60 * 48 then Result := IntToStr(s div 3600) + ' hours' + else Result := IntToStr(s div (3600 * 24)) + ' days'; +end; + +procedure TMainForm.Timer1Timer(Sender: TObject); +var + gain: Boolean; + elapsed: Integer; +begin + gain := Pos('kill|',fTask.Caption) = 1; + with TaskBar do begin + if Position >= Max then begin + ClearAllSelections; + + if Kill.SimpleText = 'Loading....' then Max := 0; + + // gain XP / level up + if gain then with ExpBar do if Position >= Max + then LevelUp + else Position := Position + TaskBar.Max div 1000; + with ExpBar do Hint := IntToStr(Max-Position) + ' XP needed for next level'; + + // advance quest + if gain then if Plots.Items.Count > 1 then with QuestBar do if Position >= Max then begin + CompleteQuest; + end else if Quests.Items.Count > 0 then begin + Position := Position + TaskBar.Max div 1000; + Hint := IntToStr(100 * Position div Max) + '% complete'; + end; + + // advance plot + if gain then with PlotBar do if Position >= Max + then InterplotCinematic + else Position := Position + TaskBar.Max div 1000; + + //Time.Caption := FormatDateTime('h:mm:ss',PlotBar.Position / (24.0 * 60 * 60)); + PlotBar.Hint := RoughTime(PlotBar.Max-PlotBar.Position) + ' remaining'; + //PlotBar.Hint := FormatDateTime('h:mm:ss" remaining"',(PlotBar.Max-PlotBar.Position) / (24.0 * 60 * 60)); + + Dequeue(); + end else with TaskBar do begin + elapsed := LongInt(timeGetTime) - LongInt(Timer1.Tag); + if elapsed > 100 then elapsed := 100; + if elapsed < 0 then elapsed := 0; + Position := Position + elapsed; + end; + end; + Timer1.Tag := timeGetTime; +end; + +procedure TMainForm.FormCreate(Sender: TObject); +begin + QuestBar.Position := 0; + PlotBar.Position := 0; + TaskBar.Position := 0; + ExpBar.Position := 0; + Encumbar.Position := 0; + + FReportSave := true; + FLogEvents := false; + FMakeBackups := true; + FMinToTray := true; + FExportSheets := false; + + MakeFileAssociations; +end; + +procedure TMainForm.SpeedButton1Click(Sender: TObject); +begin + {$IFDEF CHEATS} + TaskBar.Position := TaskBar.Max; + {$ENDIF} +end; + +function TMainForm.RollCharacter: Boolean; +var + f: Integer; +begin + Result := true; + repeat + if not NewGuyForm.Go then begin + Result := false; + Exit; + end; + Put(Traits, 'Name', NewGuyForm.Name.Text); + if FileExists(GameSaveName) and + (mrNo = MessageDlg('The saved game "' + GameSaveName + '" already exists. Do you want to overwrite it?', mtWarning, [mbYes,mbNo], 0)) then begin + // go around again + end else begin + f := FileCreate(GameSaveName); + if f = -1 then begin + ShowMessage('The thought police don''t like the name "' + GameSaveName + '". Choose a name without \\ / : * ? " < > or | in it.'); + end else begin + FileClose(f); + Break; + end; + end; + until false; + + with NewGuyForm do begin + Put(Traits,'Name',Name.Text); + Put(Traits,'Race',Race.Items[Race.ItemIndex]); + Put(Traits,'Class',Klass.Items[Klass.ItemIndex]); + Put(Traits,'Level',1); + Put(Stats,'STR',STR.Tag); + Put(Stats,'CON',CON.Tag); + Put(Stats,'DEX',DEX.Tag); + Put(Stats,'INT',INT.Tag); + Put(Stats,'WIS',WIS.Tag); + Put(Stats,'CHA',CHA.Tag); + Put(Stats,'HP Max',Random(8) + CON.Tag div 6); + Put(Stats,'MP Max',Random(8) + INT.Tag div 6); + Put(Equips,'Weapon','Sharp Stick'); + Put(Inventory,'Gold',0); + InventoryLabelAlsoGameStyle.Tag := 3;//GameStyle.Position; + ClearAllSelections; + GoButtonClick(NewGuyForm); + end; +end; + +const + KUsage = + 'Usage: pq [flags] [game.pq3]'#10 + + #10 + + 'Flags:'#10 + + ' -no-backup Do not make a backup file when saving the game'#10 + + {$IFDEF LOGGING} + ' -log Create a text log of events as they occur in the game'#10 + + {$ENDIF} + ' -no-report-save Do not display the "Game saved" message when saving'#10 + + ' -no-tray Do not minimize to the system tray'#10 + + ' -export Export a text character sheet periodically'#10 + + ' -export-only Export a text character sheet now, then exit'#10 + + ' -no-proxy Do not use Internet Explorer proxy settings'#10 + + ' -help Display this chatter (and exit)'#10 ; + +procedure TMainForm.FormShow(Sender: TObject); +var + done, exportandexit: Boolean; + i: Integer; +begin + if Timer1.Enabled then Exit; + done := false; + exportandexit := false; + for i := 1 to ParamCount do begin + if ParamStr(i) = '-backup' + then FMakeBackups := true + {$IFDEF LOGGING} + else if ParamStr(i) = '-log' + then FLogEvents := true + {$ENDIF} + else if ParamStr(i) = '-no-report-save' + then FReportSave := false + else if ParamStr(i) = '-no-tray' + then FMinToTray := false + else if ParamStr(i) = '-export' + then FExportSheets := true + else if ParamStr(i) = '-export-only' + then exportandexit := true + else if ParamStr(i) = '-no-proxy' + then ProxyOK := false + else if ParamStr(i) = '-help' + then begin + ShowMessage(KUsage); + Close; + Exit; + end else begin + LoadGame(ParamStr(i)); + if exportandexit then begin + ExportCharSheet; + Timer1.Enabled := false; + Close; + end; + Exit; + end; + end; + while not Done do begin + SetHostName(''); + SetHostAddr(''); + SetLogin(''); + SetPassword(''); + case FrontForm.ShowModal of + mrOk: begin + done := RollCharacter; + end; + mrRetry: begin + // load + if FrontForm.OpenDialog1.Execute then begin + LoadGame(FrontForm.OpenDialog1.Filename); + Done := true; + end; + end; + mrYesToAll: begin + Done := ServerSelectForm.Go; + end; + mrCancel: begin + Close; + Done := true; + end; + end; + end; +end; + +procedure TMainForm.Button1Click(Sender: TObject); +begin + {$IFDEF CHEATS} + LevelUp; + {$ENDIF} +end; + +procedure TMainForm.CashInClick(Sender: TObject); +begin + {$IFDEF CHEATS} + WinEquip; + WinItem; + WinSpell; + WinStat; + Add(Inventory,'Gold',Random(100)); + {$ENDIF} +end; + +procedure TMainForm.FinishQuestClick(Sender: TObject); +begin + {$IFDEF CHEATS} + QuestBar.Position := QuestBar.Max; + TaskBar.Position := TaskBar.Max; + {$ENDIF} +end; + +procedure TMainForm.CheatPlotClick(Sender: TObject); +begin + {$IFDEF CHEATS} + PlotBar.Position := PlotBar.Max; + TaskBar.Position := TaskBar.Max; + {$ENDIF} +end; + +function TMainForm.SaveGame: Boolean; +var + f: TFileStream; + m: TMemoryStream; + i: Integer; +begin + {$IFDEF LOGGING} + Log('Saving game: ' + GameSaveName); + {$ENDIF} + Result := true; + try + if FMakeBackups then begin + DeleteFile(ChangeFileExt(GameSaveName, '.bak')); + MoveFile(PChar(GameSaveName), PChar(ChangeFileExt(GameSaveName, '.bak'))); + end; + f := TFileStream.Create(GameSaveName, fmCreate); + except + on EfCreateError do begin + Result := false; + Exit; + end; + end; + + //ClearAllSelections; + m := TMemoryStream.Create; + for i := 0 to ComponentCount-1 do + m.WriteComponent(Components[i]); + + m.Seek(0, soFromBeginning); + ZCompressStream(m, f); + + m.Free; + f.Free; +end; + +procedure TMainForm.LoadGame(name: String); +var + f: TStream; + m: TStream; + i: Integer; +begin + FSaveFileName := name; + m := TMemoryStream.Create; + f := TFileStream.Create(name, fmOpenRead); + try + ZDecompressStream(f, m); + f.Free; + except + on EZCompressionError do begin + ShowMessage('Error loading game.'); + Close; + Exit; + end; + end; + Traits.Items.Clear; + Stats.Items.Clear; + Equips.Items.Clear; + m.Seek(0, soFromBeginning); + for i := 0 to ComponentCount-1 do + m.ReadComponent(Components[i]); + m.Free; + {$IFDEF LOGGING} + Log('Loaded game: ' + name); + {$ENDIF} + StartTimer; + TriggerAutosizes; +end; + +procedure TMainForm.TriggerAutosizes; +begin + Plots.Width := 100; + Quests.Width := 100; + Inventory.Width := 100; + Equips.Width := 100; + Spells.Width := 100; + Traits.Width := 100; + Stats.Width := 100; +end; + +procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction); +begin + if Timer1.Enabled then begin + Timer1.Enabled := false; + Shell_NotifyIcon(NIM_DELETE, @FTrayIcon); + if SaveGame then + if FReportSave then + ShowMessage('Game saved as ' + GameSaveName); + end; + FReportSave := true; + Action := caFree; +end; + +function TMainForm.GameSaveName: String; +begin + if FSaveFileName = '' then begin + FSaveFileName := Get(Traits,'Name'); + if GetHostName <> '' then + FSaveFileName := FSaveFileName + ' [' + GetHostName + ']'; + FSaveFileName := FSaveFileName + kFileExt; + FSaveFileName := ExpandFileName(PChar(FSaveFileName)); + end; + Result := FSaveFileName; +end; + +procedure TMainForm.FormKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + if (FindWindow('TAppBuilder', nil) > 0) and (ssCtrl in Shift) and (ssShift in Shift) and (Key = ord('C')) then begin + {$IFDEF CHEATS} + Cheats.Visible := not Cheats.Visible; + {$ENDIF} + end; + if (ssCtrl in Shift) and (Key = ord('A')) then begin + ShowMessage(CharSheet); + end; + if GetPasskey = 0 then Exit; // no need for these things + if (ssCtrl in Shift) and (Key = ord('B')) then begin + Brag('b'); + Navigate(GetHostAddr + 'name=' + UrlEncode(Get(Traits,'Name'))); + end; + if (ssCtrl in Shift) and (Key = ord('M')) then begin + SetMotto(InputBox('Progress Quest', 'Declare your motto!', GetMotto)); + Brag('m'); + Navigate(GetHostAddr + 'name=' + UrlEncode(Get(Traits,'Name'))); + end; + if (ssCtrl in Shift) and (Key = ord('G')) then begin + SetGuild(InputBox('Progress Quest', 'Choose a guild.'#13#13'Make sure you undestand the guild rules before you join one. To learn more about guilds, visit http://progressquest.com/guilds.php', GetGuild)); + Guildify; + end; +end; + +procedure Navigate(url: String); +begin + ShellExecute(GetDesktopWindow(), 'open', PChar(url), nil, '', SW_SHOW); +end; + +function LFSR(pt: String; salt: Integer): Integer; +var + k: Integer; +begin + Result := salt; + for k := 1 to Length(pt) do + Result := Ord(pt[k]) + xor (Result shl 1) + xor (1 and ((Result shr 31) xor (Result shr 5))); + for k := 1 to 10 do + Result := (Result shl 1) + xor (1 and ((Result shr 31) xor (Result shr 5))); +end; + + +procedure TMainForm.Brag(trigger: String); +var + url, body: string; + best, i: Integer; +const + flat = 1; +begin + if FExportSheets then + ExportCharSheet; + if GetPasskey = 0 then Exit; // not a online game! + url := 'cmd=b&t=' + trigger; + with Traits do for i := 0 to Items.Count-1 do + url := url + '&' + LowerCase(Items[i].Caption[1]) + '=' + UrlEncode(Items[i].Subitems[0]); + url := url + '&x=' + IntToStr(ExpBar.Position); + url := url + '&i=' + UrlEncode(Get(Equips,Equips.Tag)); + if Equips.Tag > 1 then url := url + '+' + Equips.Items[Equips.Tag].Caption; + best := 0; + if Spells.Items.Count > 0 then with Spells do begin + for i := 1 to Items.Count-1 do + if (i+flat) * RomanToInt(Get(Spells,i)) > + (best+flat) * RomanToInt(Get(Spells,best)) then + best := i; + url := url + '&z=' + UrlEncode(Items[best].Caption + ' ' + Get(Spells,best)); + end; + best := 0; + for i := 1 to 5 do + if GetI(Stats,i) > GetI(Stats,best) then best := i; + url := url + '&k=' + Stats.Items[best].Caption + '+' + Get(Stats,best); + url := url + '&a=' + UrlEncode(Plots.Items[Plots.Items.Count-1].Caption); + url := url + '&h=' + UrlEncode(GetHostName); + url := url + RevString; + url := url + '&p=' + IntToStr(LFSR(url, GetPasskey)); + url := url + '&m=' + UrlEncode(GetMotto); + url := AuthenticateUrl(GetHostAddr + url); + try + body := DownloadString(url); + if (LowerCase(Split(body,0)) = 'report') then + ShowMessage(Split(body,1)); + except + on EWebError do begin + // 'ats okay. + end; + end; +end; + +function TMainForm.AuthenticateUrl(url: String): String; +begin + if (GetLogin <> '') or (GetPassword <> '') then + Result := StuffString(url, 8, 0, GetLogin+':'+GetPassword+'@') + else + Result := url; +end; + +procedure TMainForm.Guildify; +var + url, s,b: string; + i: Integer; +begin + if GetPasskey = 0 then Exit; // not a online game! + url := 'cmd=guild'; + with Traits do for i := 0 to Items.Count-1 do + url := url + '&' + LowerCase(Items[i].Caption[1]) + '=' + UrlEncode(Items[i].Subitems[0]); + url := url + '&h=' + UrlEncode(GetHostName); + url := url + RevString; + url := url + '&guild=' + UrlEncode(GetGuild); + url := url + '&p=' + IntToStr(LFSR(url, GetPasskey)); + url := AuthenticateUrl(GetHostAddr + url); + try + b := DownloadString(url); + s := Take(b); + if s <> '' then ShowMessage(s); + s := Take(b); + if s <> '' then Navigate(s); + except + on EWebError do begin + // 'ats okay. + Abort; + end; + end; +end; + +procedure TMainForm.OnQueryEndSession(var Msg: TMessage); +var Action: TCloseAction; +begin + FReportSave := false; + FormClose(Self, Action); + ReplyMessage(-1); +end; + +procedure TMainForm.OnEndSession(var Msg: TMessage); +var Action: TCloseAction; +begin + Msg.Result := 0; + if Msg.wParam <> 0 then begin + FReportSave := false; + FormClose(Self, Action); + end; + ReplyMessage(0); +end; + +initialization + RegisterClasses([TMainForm]); +end. + + + diff --git a/orig/pq/NewGuy.dcu b/orig/pq/NewGuy.dcu new file mode 100644 index 0000000..8e8ee60 Binary files /dev/null and b/orig/pq/NewGuy.dcu differ diff --git a/orig/pq/NewGuy.ddp b/orig/pq/NewGuy.ddp new file mode 100755 index 0000000..cdc0ee8 Binary files /dev/null and b/orig/pq/NewGuy.ddp differ diff --git a/orig/pq/NewGuy.dfm b/orig/pq/NewGuy.dfm new file mode 100755 index 0000000..9e28a59 --- /dev/null +++ b/orig/pq/NewGuy.dfm @@ -0,0 +1,376 @@ +object NewGuyForm: TNewGuyForm + Left = 474 + Top = 177 + BorderIcons = [] + BorderStyle = bsDialog + Caption = 'Progress Quest - New Character' + ClientHeight = 458 + ClientWidth = 509 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + Icon.Data = { + 0000010001002020000000000000A80800001600000028000000200000004000 + 0000010008000000000080040000000000000000000000000000000000000000 + 0000000080000080000000808000800000008000800080800000C0C0C000C0DC + C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222 + 220029292900555555004D4D4D004242420039393900807CFF005050FF009300 + D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000 + CC00003300000033330000336600003399000033CC000033FF00006600000066 + 330000666600006699000066CC000066FF000099000000993300009966000099 + 99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC + FF0000FF660000FF990000FFCC00330000003300330033006600330099003300 + CC003300FF00333300003333330033336600333399003333CC003333FF003366 + 00003366330033666600336699003366CC003366FF0033990000339933003399 + 6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC + CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600 + 330066006600660099006600CC006600FF006633000066333300663366006633 + 99006633CC006633FF00666600006666330066666600666699006666CC006699 + 00006699330066996600669999006699CC006699FF0066CC000066CC330066CC + 990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00 + CC009999000099339900990099009900CC009900000099333300990066009933 + CC009900FF00996600009966330099336600996699009966CC009933FF009999 + 330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC + 990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF + FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33 + 6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66 + CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC + 0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF + 6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33 + 3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66 + 9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99 + FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF + 6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF + 66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7 + D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080 + 80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A + 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C + 0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311 + 15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313 + 2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22 + 23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A + 0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A + 0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A + 0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A + 0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A + 0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A + 0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A + 0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A + 0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A + 0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A + 0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A + 0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A + 0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A + 0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A + 0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A + 0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A + 0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A + 0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A + 0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A + 0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF + FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF + FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00 + 003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03 + C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87} + OldCreateOrder = False + Position = poScreenCenter + OnActivate = FormActivate + OnCreate = FormCreate + OnShow = FormShow + PixelsPerInch = 96 + TextHeight = 13 + object Race: TRadioGroup + Left = 8 + Top = 48 + Width = 185 + Height = 401 + Caption = 'Race' + Items.Strings = ( + 'Half Orc' + 'Half Man' + 'Half Halfling' + 'Double Hobbit' + 'Gobhobbit' + 'Low Elf' + 'Dung Elf' + 'Talking Pony' + 'Gyrognome' + 'Lesser Dwarf' + 'Crested Dwarf' + 'Eel Man' + 'Panda Man' + 'Trans-Kobold' + 'Enchanted Motorcycle' + 'Will o'#39' the Wisp' + 'Battle-Finch' + 'Double Wookiee' + 'Skraeling' + 'Demicanadian' + 'Land Squid') + TabOrder = 0 + end + object Klass: TRadioGroup + Left = 200 + Top = 48 + Width = 185 + Height = 365 + Caption = 'Class' + Items.Strings = ( + 'Ur-Paladin' + 'Voodoo Princess' + 'Robot Monk' + 'Mu-Fu Monk' + 'Mage Illusioner' + 'Shiv-Knight' + 'Inner Mason' + 'Fighter/Organist' + 'Puma Burgular' + 'Runeloremaster' + 'Hunter Strangler' + 'Battle-Felon' + 'Tickle-Mimic' + 'Slow Poisoner' + 'Bastard Lunatic' + 'Jungle Clown' + 'Birdrider' + 'Vermineer') + TabOrder = 1 + end + object GroupBox1: TGroupBox + Left = 392 + Top = 48 + Width = 109 + Height = 365 + Caption = 'Stats' + TabOrder = 2 + object Label3: TLabel + Left = 22 + Top = 60 + Width = 23 + Height = 13 + Caption = 'CON' + end + object Label7: TLabel + Left = 22 + Top = 156 + Width = 22 + Height = 13 + Caption = 'CHA' + end + object Label6: TLabel + Left = 22 + Top = 132 + Width = 21 + Height = 13 + Caption = 'WIS' + end + object Label5: TLabel + Left = 22 + Top = 108 + Width = 18 + Height = 13 + Caption = 'INT' + end + object Label4: TLabel + Left = 22 + Top = 84 + Width = 22 + Height = 13 + Caption = 'DEX' + end + object Label2: TLabel + Left = 22 + Top = 36 + Width = 22 + Height = 13 + Caption = 'STR' + end + object Label8: TLabel + Left = 22 + Top = 204 + Width = 24 + Height = 13 + Caption = 'Total' + end + object CHA: TPanel + Left = 52 + Top = 152 + Width = 37 + Height = 21 + BevelOuter = bvLowered + Caption = '18' + TabOrder = 0 + end + object WIS: TPanel + Left = 52 + Top = 128 + Width = 37 + Height = 21 + BevelOuter = bvLowered + Caption = '18' + TabOrder = 1 + end + object INT: TPanel + Left = 52 + Top = 104 + Width = 37 + Height = 21 + BevelOuter = bvLowered + Caption = '18' + TabOrder = 2 + end + object DEX: TPanel + Left = 52 + Top = 80 + Width = 37 + Height = 21 + BevelOuter = bvLowered + Caption = '18' + TabOrder = 3 + end + object CON: TPanel + Left = 52 + Top = 56 + Width = 37 + Height = 21 + BevelOuter = bvLowered + Caption = '18' + TabOrder = 4 + end + object STR: TPanel + Left = 52 + Top = 32 + Width = 37 + Height = 21 + BevelOuter = bvLowered + Caption = '18' + TabOrder = 5 + end + object Reroll: TButton + Left = 18 + Top = 284 + Width = 75 + Height = 25 + Caption = 'Roll' + TabOrder = 6 + OnClick = RerollClick + end + object Total: TPanel + Left = 52 + Top = 200 + Width = 37 + Height = 21 + BevelOuter = bvLowered + Caption = '18' + Color = clWhite + TabOrder = 7 + end + object Unroll: TButton + Left = 18 + Top = 316 + Width = 75 + Height = 25 + Caption = 'Unroll' + Enabled = False + TabOrder = 8 + OnClick = UnrollClick + end + end + object Sold: TButton + Left = 342 + Top = 424 + Width = 75 + Height = 25 + Caption = 'Sold!' + Default = True + TabOrder = 3 + OnClick = SoldClick + end + object Name: TLabeledEdit + Left = 8 + Top = 20 + Width = 165 + Height = 21 + EditLabel.Width = 28 + EditLabel.Height = 13 + EditLabel.Caption = 'Name' + LabelPosition = lpAbove + LabelSpacing = 3 + MaxLength = 30 + TabOrder = 4 + end + object OldRolls: TListBox + Left = 396 + Top = 228 + Width = 21 + Height = 13 + ItemHeight = 13 + TabOrder = 5 + Visible = False + end + object Button2: TButton + Left = 426 + Top = 424 + Width = 75 + Height = 25 + Caption = 'Cancel' + ModalResult = 2 + TabOrder = 6 + end + object Account: TLabeledEdit + Left = 200 + Top = 20 + Width = 185 + Height = 21 + EditLabel.Width = 40 + EditLabel.Height = 13 + EditLabel.Caption = 'Account' + LabelPosition = lpAbove + LabelSpacing = 3 + TabOrder = 7 + Visible = False + end + object Password: TLabeledEdit + Left = 392 + Top = 20 + Width = 109 + Height = 21 + EditLabel.Width = 46 + EditLabel.Height = 13 + EditLabel.Caption = 'Password' + LabelPosition = lpAbove + LabelSpacing = 3 + PasswordChar = '*' + TabOrder = 8 + Visible = False + end + object Gen: TButton + Left = 176 + Top = 20 + Width = 17 + Height = 22 + Caption = '?' + TabOrder = 9 + OnClick = GenClick + end + object PoorCodeDesign: TNMURL + Left = 336 + Top = 268 + end + object ApplicationEvents1: TApplicationEvents + OnMinimize = ApplicationEvents1Minimize + Left = 332 + Top = 208 + end +end diff --git a/orig/pq/NewGuy.pas b/orig/pq/NewGuy.pas new file mode 100755 index 0000000..72ae5c9 --- /dev/null +++ b/orig/pq/NewGuy.pas @@ -0,0 +1,267 @@ +unit NewGuy; +{ copyright (c)2002 Eric Fredricksen all rights reserved } + +interface + +uses + Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, + Dialogs, StdCtrls, ExtCtrls, ComCtrls, AppEvnts, NMURL; + +type + TNewGuyForm = class(TForm) + Race: TRadioGroup; + Klass: TRadioGroup; + Label2: TLabel; + STR: TPanel; + Label3: TLabel; + CON: TPanel; + Label4: TLabel; + DEX: TPanel; + Label5: TLabel; + INT: TPanel; + Label6: TLabel; + WIS: TPanel; + Label7: TLabel; + CHA: TPanel; + Reroll: TButton; + GroupBox1: TGroupBox; + Label8: TLabel; + Total: TPanel; + Sold: TButton; + Unroll: TButton; + Name: TLabeledEdit; + OldRolls: TListBox; + Button2: TButton; + PoorCodeDesign: TNMURL; + Account: TLabeledEdit; + Password: TLabeledEdit; + ApplicationEvents1: TApplicationEvents; + Gen: TButton; + procedure RerollClick(Sender: TObject); + procedure UnrollClick(Sender: TObject); + procedure SoldClick(Sender: TObject); + procedure FormShow(Sender: TObject); + procedure ApplicationEvents1Minimize(Sender: TObject); + procedure GenClick(Sender: TObject); + procedure FormActivate(Sender: TObject); + procedure FormCreate(Sender: TObject); + private + procedure RollEm; + function GetAccount: String; + function GetPassword: String; + procedure ParseSoldResponse(body: String); + public + function Go: Boolean; + end; + +var + NewGuyForm: TNewGuyForm; + +function UrlEncode(s: string): string; +function GenerateName: string; + +implementation + +uses Main, SelServ, StrUtils, Web, Config; + +{$R *.dfm} + +function UrlEncode(s: string): string; +begin + NewGuyForm.PoorCodeDesign.InputString := s; + Result := NewGuyForm.PoorCodeDesign.Encode; +end; + +procedure Roll(stat: TPanel); +begin + stat.Tag := 3 + Random(6) + Random(6) + Random(6); + stat.Caption := IntToStr(stat.Tag); +end; + +function Choose(n, k: Integer): Real; +var + d, i: Longint; +begin + Result := n; + d := 1; + for i := 2 to k do begin + Result := Result * (1+n-i); + d := d * i; + end; + Result := Result / d; +end; + +procedure TNewGuyForm.RollEm; +begin + ReRoll.Tag := RandSeed; + Roll(STR); + Roll(CON); + Roll(DEX); + Roll(INT); + Roll(WIS); + Roll(CHA); + Total.tag := STR.Tag + Con.Tag + DEX.Tag + Int.Tag + Wis.Tag + CHA.Tag; + Total.Caption := IntToStr(Total.Tag); + if Total.Tag >= (63+18) then Total.Color := clRed + else if Total.Tag > (4 * 18) then Total.Color := clYellow + else if Total.Tag <= (63-18) then Total.Color := clGray + else if Total.Tag < (3 * 18) then Total.Color := clSilver + else Total.Color := clWhite; +end; + +procedure TNewGuyForm.RerollClick(Sender: TObject); +begin + OldRolls.Items.Insert(0, IntToStr(ReRoll.Tag)); + Unroll.Enabled := true; + RollEm; +end; + +function TNewGuyForm.Go: Boolean; +begin + Tag := 1; + Result := mrOk = ShowModal; +end; + +procedure TNewGuyForm.FormShow(Sender: TObject); +begin + if Tag > 0 then begin + Tag := 0; + Caption := 'Progress Quest - New Character'; + if MainForm.GetHostName <> '' then + Caption := Caption + ' [' + MainForm.GetHostName + ']'; + Randomize; + RollEm; + with Race do + ItemIndex := Random(Items.Count); + with Klass do + ItemIndex := Random(Items.Count); + end; +end; + +procedure TNewGuyForm.UnrollClick(Sender: TObject); +begin + RandSeed := StrToInt(OldRolls.Items[0]); + OldRolls.Items.Delete(0); + Unroll.Enabled := OldRolls.Items.Count > 0; + RollEm; +end; + +procedure TNewGuyForm.ParseSoldResponse(body: String); +begin + if (LowerCase(Split(body,0)) = 'ok') then begin + MainForm.SetPasskey(Split(body,1)); + MainForm.SetLogin(GetAccount); + MainForm.SetPassword(GetPassword); + ModalResult := mrOk; + end else begin + ShowMessage(body); + end; +end; + +function TNewGuyForm.GetAccount: String; +begin + Result := ''; + if Account.Visible then Result := Account.Text; +end; + +function TNewGuyForm.GetPassword: String; +begin + Result := ''; + if Password.Visible then Result := Password.Text; +end; + +procedure TNewGuyForm.SoldClick(Sender: TObject); +var url, args: String; +begin + if MainForm.GetHostAddr = '' + then ModalResult := mrOk + else begin + try + Screen.Cursor := crHourglass; + try + if (MainForm.Label8.Tag and 16) = 0 + then url := MainForm.GetHostAddr + else url := 'http://www.progressquest.com/create.php?'; + // url := StringReplace(url, '.com/', '.com/dev/', []); + if (GetAccount <> '') or (GetPassword <> '') then + url := StuffString(url, 8, 0, GetAccount+':'+GetPassword+'@'); + args := 'cmd=create' + + '&name=' + UrlEncode(Name.Text) + + '&realm=' + UrlEncode(MainForm.GetHostName) + + RevString; + ParseSoldResponse(DownloadString(url + args)); + except + on EWebError do begin + ShowMessage('Error connecting to server'); + end; + end; + finally + Screen.Cursor := crDefault; + end; + end; +end; + +{ +procedure TNewGuyForm.ServerAboutToSend(Sender: TObject); +begin + Server.SendHeader.Values['Content-Type'] := 'text/plain'; + Server.SendHeader.Values['Motto'] := MainForm.GetMotto; + Server.SendHeader.Values['Guild'] := MainForm.GetGuild; +end; + } + +procedure TNewGuyForm.ApplicationEvents1Minimize(Sender: TObject); +begin + MainForm.MinimizeIt; +end; + +function GenerateName: string; +const + KParts: array [0..2] of string = ( + 'br|cr|dr|fr|gr|j|kr|l|m|n|pr||||r|sh|tr|v|wh|x|y|z', + 'a|a|e|e|i|i|o|o|u|u|ae|ie|oo|ou', + 'b|ck|d|g|k|m|n|p|t|v|x|z'); +var + i: Integer; + + function Pick(s: string): string; + var + count, i: Integer; + begin + count := 1; + for i := 0 to Length(s)-1 do + if s[i] = '|' then Inc(count); + Result := Split(s, Random(count)); + end; +begin + for i := 0 to 5 do + Result := Result + Pick(KParts[i mod 3]); + Result := UpperCase(Copy(Result,1,1)) + Copy(Result,2,Length(Result)); +end; + +procedure TNewGuyForm.GenClick(Sender: TObject); +begin + Name.Text := GenerateName; +end; + +procedure TNewGuyForm.FormActivate(Sender: TObject); +begin + if Name.Text = '' then begin + GenClick(Sender); + Name.SetFocus; + end; +end; + +procedure TNewGuyForm.FormCreate(Sender: TObject); +var + i: Integer; +begin + Race.Items.Clear; + for i := 0 to K.Races.Lines.Count-1 do + Race.Items.Add(Split(K.Races.Lines[i],0)); + Klass.Items.Clear; + for i := 0 to K.Klasses.Lines.Count-1 do + Klass.Items.Add(Split(K.Klasses.Lines[i],0)); +end; + +end. diff --git a/orig/pq/README b/orig/pq/README new file mode 100644 index 0000000..7032548 --- /dev/null +++ b/orig/pq/README @@ -0,0 +1,39 @@ +ProgressQuest v6.3 +================== + +BUILDING +-------- + +Requires Delphi 6. + +Requires the package in DelphiZLib.zip to be installed in Delphi, or +decompress the .obj files from there into this, the project, directory. + + +VCS NOTES +--------- + +Converted to Mercurial on 1/12/2010 & sent to +http://bitbucket.org/grumdrig/pq/ ; development will continue from +there. If at all. Source opened 5/20/11. The world ends tomorrow anyway. + +This project represents an ex post facto rendering of pq6 in its +various versions in version control, so that changes will be trackable +thataway. + +(I didn't add this README file in PQ 6.0, but after that you can use +this README to trace the checkin history using version control.) + +Subversion revsion numbers vs. versions: + +* r321 v6.3 as I found it after a couple years of inactivity +* r320 v6.2 probably as released, though I'm not totally sure +* r318 v6.2 but probably a slightly older version +* r317 v6.1 +* r313 v6.0 + +SEE ALSO +-------- + +The in-browser edition: this project, ported to JavaScript/HTML +https://bitbucket.org/grumdrig/pq-web diff --git a/orig/pq/SelServ.dcu b/orig/pq/SelServ.dcu new file mode 100644 index 0000000..8190e1b Binary files /dev/null and b/orig/pq/SelServ.dcu differ diff --git a/orig/pq/SelServ.ddp b/orig/pq/SelServ.ddp new file mode 100644 index 0000000..cdc0ee8 Binary files /dev/null and b/orig/pq/SelServ.ddp differ diff --git a/orig/pq/SelServ.dfm b/orig/pq/SelServ.dfm new file mode 100644 index 0000000..46a7bb4 --- /dev/null +++ b/orig/pq/SelServ.dfm @@ -0,0 +1,217 @@ +object ServerSelectForm: TServerSelectForm + Left = 292 + Top = 57 + Width = 490 + Height = 381 + Caption = 'Progress Quest - Select Realm' + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + Icon.Data = { + 0000010001002020000000000000A80800001600000028000000200000004000 + 0000010008000000000080040000000000000000000000000000000000000000 + 0000000080000080000000808000800000008000800080800000C0C0C000C0DC + C000F0CAA60004040400080808000C0C0C0011111100161616001C1C1C002222 + 220029292900555555004D4D4D004242420039393900807CFF005050FF009300 + D600FFECCC00C6D6EF00D6E7E70090A9AD000000330000006600000099000000 + CC00003300000033330000336600003399000033CC000033FF00006600000066 + 330000666600006699000066CC000066FF000099000000993300009966000099 + 99000099CC000099FF0000CC000000CC330000CC660000CC990000CCCC0000CC + FF0000FF660000FF990000FFCC00330000003300330033006600330099003300 + CC003300FF00333300003333330033336600333399003333CC003333FF003366 + 00003366330033666600336699003366CC003366FF0033990000339933003399 + 6600339999003399CC003399FF0033CC000033CC330033CC660033CC990033CC + CC0033CCFF0033FF330033FF660033FF990033FFCC0033FFFF00660000006600 + 330066006600660099006600CC006600FF006633000066333300663366006633 + 99006633CC006633FF00666600006666330066666600666699006666CC006699 + 00006699330066996600669999006699CC006699FF0066CC000066CC330066CC + 990066CCCC0066CCFF0066FF000066FF330066FF990066FFCC00CC00FF00FF00 + CC009999000099339900990099009900CC009900000099333300990066009933 + CC009900FF00996600009966330099336600996699009966CC009933FF009999 + 330099996600999999009999CC009999FF0099CC000099CC330066CC660099CC + 990099CCCC0099CCFF0099FF000099FF330099CC660099FF990099FFCC0099FF + FF00CC00000099003300CC006600CC009900CC00CC0099330000CC333300CC33 + 6600CC339900CC33CC00CC33FF00CC660000CC66330099666600CC669900CC66 + CC009966FF00CC990000CC993300CC996600CC999900CC99CC00CC99FF00CCCC + 0000CCCC3300CCCC6600CCCC9900CCCCCC00CCCCFF00CCFF0000CCFF330099FF + 6600CCFF9900CCFFCC00CCFFFF00CC003300FF006600FF009900CC330000FF33 + 3300FF336600FF339900FF33CC00FF33FF00FF660000FF663300CC666600FF66 + 9900FF66CC00CC66FF00FF990000FF993300FF996600FF999900FF99CC00FF99 + FF00FFCC0000FFCC3300FFCC6600FFCC9900FFCCCC00FFCCFF00FFFF3300CCFF + 6600FFFF9900FFFFCC006666FF0066FF660066FFFF00FF666600FF66FF00FFFF + 66002100A5005F5F5F00777777008686860096969600CBCBCB00B2B2B200D7D7 + D700DDDDDD00E3E3E300EAEAEA00F1F1F100F8F8F800F0FBFF00A4A0A0008080 + 80000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000A0A + 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 0A4B0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A + 150F0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F150A0A0A0C + 0E0E0C0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0C0E0E0C0A2311 + 15220E0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0F22143D234313 + 2243110A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A11432213430A22 + 23296710290A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A2210122923220A0A0A + 0A514443151D0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A4B0E151544510A0A0A0A0A + 0A0A294A43140E0A0A150E0E220A0A0E1D0E220A0A0E14434A030A0A0A0A0A0A + 0A0A0A514A224A430E0E1443220E111543140E0E4344224A4A0A0A0A0A0A0A0A + 0A0A0A514B1514220E2243150E444444444322222214150A0A0A0A0A0A0A0A0A + 0A0A0A0A5174151D4A434A4A15104422234A434A1D15740A0A0A0A0A0A0A0A0A + 0A0A0A0A5222444B457422224B0A0A4B222274454B44220A0A0A0A0A0A0A0A0A + 0A0A0A0A510A4B4C3F4C44EA4A0A0A4A6D444C3F4C4B0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0E15294B4523ECC8C44A4AE946EC23454B29150E0A0A0A0A0A0A0A0A + 0A0A0A0A444A4A234AAEC8FCFCA7E9F9F946AE44234A4A430A0A0A0A0A0A0A0A + 0A0A0A0A232244224AEFA7FCFC62F9F9F946EF4A224422230A0A0A0A0A0A0A0A + 0A0A0A0A4B434A110A4A8DA862F9F9F969EC0A0A114A43290A0A0A0A0A0A0A0A + 0A0A0A0A0A2222100A0AED46F9F9F962A7ED0A0A104322520A0A0A0A0A0A0A0A + 0A0A0A0A0A4B0C030AEB46F9F9F962FCFCA7EC0A030C0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0A0AED46F9F9F9E3A8FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0A0AED46F9F9F9E3F7F7E6FCFCFCA7ED0A0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A0AEB46F9F9F9E3ED0A0A92E6FCFCFCA7EB0A0A0A0A0A0A0A0A0A0A + 0A0A0A0A0A6D46F9F9F9E3ED0A0A0A0A92E6FCFCFCA76D0A0A0A0A0A0A0A0A0A + 0A0A0A0A14B5F047F9E3F70A0A0A0A0A0AB5E6FCC8DDB5140A0A0A0A0A0A0A0A + 0A0A0AAE09F3F3BCE3B50A0A0A0A0A0A0A0AB5D0DDF3F309AE0A0A0A0A0A0A0A + 0A0ABCF4FFF4F4F4070A0A0A0A0A0A0A0A0A0A07F4F4F4FFDEBC0A0A0A0A0A0A + 0A991BFFFFF2DDB60A0A0A0A0A0A0A0A0A0A0A0AB6DDF3FFFF1B990A0A0A0A0A + 0A92B51909B5920A0A0A0A0A0A0A0A0A0A0A0A0A0A92B509DDB5920A0A0A0A0A + 0A720909ECEB0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0AECEC0909720A0A0A0A0A + 0AF78DAEED0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A0A1CAE8D920A0A0AFFFF + FFFFFFFFFFFFEFFFFFFFCFFFFFF387FFFFE107FFFFE007FFFFE081FFFF81E0FF + FE07F061860FF800001FF800007FFC00007FFC01807FFC01807FFC00003FFC00 + 003FFC00003FFC200C3FFE300C3FFE2004FFFFC003FFFF8001FFFF0180FFFE03 + C07FFC07E03FF80FF01FF01FF80FE03FFC07E07FFE07E0FFFF07E1FFFF87} + OldCreateOrder = False + Position = poScreenCenter + DesignSize = ( + 482 + 354) + PixelsPerInch = 96 + TextHeight = 13 + object Label1: TLabel + Left = 8 + Top = 8 + Width = 31 + Height = 13 + Caption = 'Server' + end + object Label2: TLabel + Left = 172 + Top = 8 + Width = 53 + Height = 13 + Caption = 'Description' + end + object Servers: TListBox + Left = 8 + Top = 24 + Width = 157 + Height = 277 + Anchors = [akLeft, akTop, akBottom] + ItemHeight = 13 + TabOrder = 0 + OnClick = ServersClick + OnDblClick = ServersDblClick + end + object Panel1: TPanel + Left = 172 + Top = 24 + Width = 302 + Height = 277 + Anchors = [akLeft, akTop, akRight, akBottom] + BevelOuter = bvLowered + BorderWidth = 4 + Caption = 'Panel1' + TabOrder = 1 + object Desc: TRichEdit + Left = 5 + Top = 5 + Width = 292 + Height = 267 + Align = alClient + BevelEdges = [] + BevelInner = bvNone + BevelOuter = bvNone + BevelKind = bkTile + BorderStyle = bsNone + Color = clBtnFace + Ctl3D = True + ParentCtl3D = False + ReadOnly = True + TabOrder = 0 + WantTabs = True + WantReturns = False + end + end + object Select: TButton + Left = 313 + Top = 320 + Width = 75 + Height = 25 + Anchors = [akRight, akBottom] + Caption = '&Select' + Default = True + Enabled = False + TabOrder = 2 + OnClick = SelectClick + end + object Button2: TButton + Left = 397 + Top = 320 + Width = 75 + Height = 25 + Anchors = [akRight, akBottom] + Caption = '&Cancel' + ModalResult = 2 + TabOrder = 3 + end + object Descs: TListBox + Left = 24 + Top = 100 + Width = 121 + Height = 33 + ItemHeight = 13 + TabOrder = 4 + Visible = False + end + object Hosts: TListBox + Left = 24 + Top = 144 + Width = 121 + Height = 33 + ItemHeight = 13 + TabOrder = 5 + Visible = False + end + object Options: TListBox + Left = 24 + Top = 56 + Width = 121 + Height = 33 + ItemHeight = 13 + TabOrder = 6 + Visible = False + end + object AccessCode: TLabeledEdit + Left = 8 + Top = 320 + Width = 157 + Height = 21 + Anchors = [akLeft, akBottom] + EditLabel.Width = 63 + EditLabel.Height = 13 + EditLabel.Caption = 'Access Code' + LabelPosition = lpAbove + LabelSpacing = 3 + TabOrder = 7 + Visible = False + OnChange = AccessCodeChange + end + object Timer1: TTimer + Enabled = False + Interval = 10 + OnTimer = Timer1Timer + Left = 224 + Top = 76 + end +end diff --git a/orig/pq/SelServ.pas b/orig/pq/SelServ.pas new file mode 100644 index 0000000..5871383 --- /dev/null +++ b/orig/pq/SelServ.pas @@ -0,0 +1,184 @@ +unit SelServ; +{ copyright (c)2002 Eric Fredricksen all rights reserved } + +interface + +uses + Windows, Messages, SysUtils, Forms, Dialogs, StdCtrls, ExtCtrls, + ComCtrls, Controls, Classes; + +type + TServerSelectForm = class(TForm) + Servers: TListBox; + Label1: TLabel; + Label2: TLabel; + Panel1: TPanel; + Desc: TRichEdit; + Select: TButton; + Button2: TButton; + Descs: TListBox; + Timer1: TTimer; + Hosts: TListBox; + Options: TListBox; + AccessCode: TLabeledEdit; + procedure ServersClick(Sender: TObject); + procedure SelectClick(Sender: TObject); + procedure AccessCodeChange(Sender: TObject); + procedure Timer1Timer(Sender: TObject); + procedure ServersDblClick(Sender: TObject); + private + procedure Fetch(path: String); + function CurrentOpts: Integer; + procedure ParseServerList(body: String); + public + function Go: Boolean; + end; + +var + ServerSelectForm: TServerSelectForm; + +function Take(var s: String): String; + +implementation + +uses NewGuy, Login, Main, Web; + +{$R *.dfm} + +function Take(var s: String): String; +begin + if Pos('|',s) > 0 then begin + Result := Trim(Copy(s,1,Pos('|',s)-1)); + s := Copy(s,Pos('|',s)+1,100000); + end else begin + Result := Trim(s); + s := ''; + end; +end; + +procedure TServerSelectForm.ParseServerList(body: String); +var + s, def: String; + ndef: Integer; +begin + s := body; + if (LowerCase(Take(s)) = 'ok') then begin + def := Take(s); + ndef := 0; + repeat + Servers.Items.Add(Take(s)); + if Servers.Items[Servers.Count-1] = def then + ndef := Servers.Count-1; + Options.Items.Add(Take(s)); + Hosts.Items.Add(Take(s)); + Descs.Items.Add(Take(s)); + until s = ''; + Servers.ItemIndex := ndef; + ServersClick(Self); + // Select.Enabled := true; + end else begin + ShowMessage(body); + ModalResult := mrCancel; + end; +end; + +procedure TServerSelectForm.ServersClick(Sender: TObject); +begin + Desc.Lines.Text := Descs.Items[Servers.ItemIndex]; + AccessCode.Visible := (CurrentOpts and 8) > 0; + AccessCodeChange(Sender); +end; + +function TServerSelectForm.CurrentOpts: Integer; +begin + Result := StrToIntDef(Options.Items[Servers.ItemIndex],0); +end; + +procedure TServerSelectForm.Fetch(path: String); +var + url, reply: String; +begin + Select.Enabled := false; + Servers.Items.Clear; + Descs.Items.Clear; + Options.Items.Clear; + Hosts.Items.Clear; + Caption := 'Progress Quest - Select Realm'; + if path <> '' then + Caption := Caption + ' [' + path + ']'; + Desc.Text := 'Fetching realm list from server...'; + url := 'http://www.progressquest.com/list.php?' + RevString + '&p=' + path; + if AccessCode.Visible then + url := url + '&ac=' + UrlEncode(AccessCode.Text); + try + Screen.Cursor := crHourglass; + try + reply := DownloadString(url); + ParseServerList(reply); + except + on EWebError do begin + ShowMessage('Error connecting to Progress Quest server'); + ModalResult := mrCancel; + end; + end; + finally + Screen.Cursor := crDefault; + end; +end; + +function TServerSelectForm.Go: Boolean; +begin + Timer1.Enabled := true; + Result := //(Servers.Count > 0) and + (mrOk = ShowModal); +end; + +function ServerURL(user, pass, host, uri: String): String; +begin + if Pos(uri, '?') > 0 then uri := uri + '&' else uri := uri + '?'; + uri := uri + 'rev=3'; + Result := 'http://' + user + ':' + pass + '@' + host + uri; +end; + +procedure TServerSelectForm.AccessCodeChange(Sender: TObject); +begin + Select.Enabled := + (CurrentOpts and 32 = 0) and + (Servers.Count > 0) and ( + (not AccessCode.Visible) or + (AccessCode.Text <> '')); +end; + +procedure TServerSelectForm.SelectClick(Sender: TObject); +begin + // 1: account required to create char + // 2: password required to create char + // 4: is a dir + // 8: password required to select + // 16: use progressquest.com for creates! + // 32: disable it! + if (CurrentOpts and 4) > 0 then begin + Fetch(Hosts.Items[Servers.ItemIndex]); + end else begin + MainForm.SetHostAddr(Hosts.Items[Servers.ItemIndex]); + MainForm.SetHostName(Servers.Items[Servers.ItemIndex]); + MainForm.Label8.Tag := CurrentOpts; + NewGuyForm.Account.Visible := (CurrentOpts and 1) > 0; + NewGuyForm.Password.Visible := (CurrentOpts and 2) > 0; + if MainForm.RollCharacter then + ModalResult := mrOk; + end; +end; + +procedure TServerSelectForm.Timer1Timer(Sender: TObject); +begin + Timer1.Enabled := false; + Fetch(''); +end; + +procedure TServerSelectForm.ServersDblClick(Sender: TObject); +begin + if Select.Enabled then SelectClick(Self); +end; + +end. diff --git a/orig/pq/Web.dcu b/orig/pq/Web.dcu new file mode 100644 index 0000000..8bdc515 Binary files /dev/null and b/orig/pq/Web.dcu differ diff --git a/orig/pq/Web.pas b/orig/pq/Web.pas new file mode 100644 index 0000000..cf33b39 --- /dev/null +++ b/orig/pq/Web.pas @@ -0,0 +1,87 @@ +unit Web; + +interface + +uses + Windows, Messages, SysUtils, Classes, WinInet; + +type + EWebError = class(Exception); + +function DownloadString(url: String): String; + +var + // Change to false to insist on no proxy + ProxyOK: Boolean; + +implementation + +{ +function OpenAuthUrl(net: HInternet; url, username, password: String): HInternet; +var + connection: HInternet; +begin + connection := InternetConnect(net, host, port, nil, nil, + INTERNET_SERVICE_HTTP, 0, 0); + Result := HttpOpenRequest(Connection, "GET", path, + nil, nil, nil, + // INTERNET_FLAG_KEEP_CONNECTION or + INTERNET_FLAG_RELOAD or + INTERNET_FLAG_PRAGMA_NOCACHE or + INTERNET_FLAG_NO_UI, 0); + InternetSetOption(result, INTERNET_OPTION_USERNAME, + PChar(username), len(username)); + InternetSetOption(result, INTERNET_OPTION_PASSWORD, + PChar(password), len(password)); + + HttpSendRequest(result, nil, 0, nil, 0); + //HttpQueryInfo(Resource, HTTP_QUERY_FLAG_NUMBER | + // HTTP_QUERY_STATUS_CODE, &dwStatus, &dwStatusSize, NULL); +end; + } + +function DownloadString(url: string): string; +var + NetHandle: HINTERNET; + UrlHandle: HINTERNET; + Buffer: array[0..1024] of Char; + BytesRead: dWord; + conntype: DWORD; +begin + Result := ''; + conntype := INTERNET_OPEN_TYPE_DIRECT; + if proxyok then conntype := INTERNET_OPEN_TYPE_PRECONFIG; + NetHandle := InternetOpen('PQ6.2', conntype, nil, nil, 0); + if Assigned(NetHandle) then + begin { + if Len(username + password) > 0 then + UrlHandle := OpenAuthUrl(NetHandle, username, password) + else } + UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), + nil, 0, // headers[size] + INTERNET_FLAG_KEEP_CONNECTION or + INTERNET_FLAG_RELOAD or + INTERNET_FLAG_PRAGMA_NOCACHE or + INTERNET_FLAG_NO_UI, + 0); + if Assigned(UrlHandle) then begin + repeat + InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer)-1, BytesRead); + Buffer[BytesRead] := #0; + Result := Result + Buffer; + until BytesRead = 0; + InternetCloseHandle(UrlHandle); + end else begin + raise EWebError.CreateFmt('Cannot open URL %s', [Url]); + end; + InternetCloseHandle(NetHandle); + end else begin + // NetHandle is not valid. Raise an exception + raise EWebError.Create('Unable to initialize internet API'); + end; +end; + + +initialization + ProxyOK := True; +end. diff --git a/orig/pq/ZLIBEX.PAS b/orig/pq/ZLIBEX.PAS new file mode 100644 index 0000000..4e47ea7 --- /dev/null +++ b/orig/pq/ZLIBEX.PAS @@ -0,0 +1,777 @@ +{***************************************************************************** +* ZLibEx.pas * +* * +* copyright (c) 2000-2002 base2 technologies * +* copyright (c) 1997 Borland International * +* * +* revision history * +* 2002.03.15 updated to zlib version 1.1.4 * +* 2001.11.27 enhanced TZDecompressionStream.Read to adjust source * +* stream position upon end of compression data * +* fixed endless loop in TZDecompressionStream.Read when * +* destination count was greater than uncompressed data * +* 2001.10.26 renamed unit to integrate "nicely" with delphi 6 * +* 2000.11.24 added soFromEnd condition to TZDecompressionStream.Seek * +* added ZCompressStream and ZDecompressStream * +* 2000.06.13 optimized, fixed, rewrote, and enhanced the zlib.pas unit * +* included on the delphi cd (zlib version 1.1.3) * +* * +* acknowledgements * +* erik turner Z*Stream routines * +* david bennion finding the nastly little endless loop quirk with the * +* TZDecompressionStream.Read method * +* burak kalayci informing me about the zlib 1.1.4 update * +*****************************************************************************} + +unit ZLibEx; + +interface + +uses + Sysutils, Classes; + +const + ZLIB_VERSION = '1.1.4'; + +type + TZAlloc = function (opaque: Pointer; items, size: Integer): Pointer; + TZFree = procedure (opaque, block: Pointer); + + TZCompressionLevel = (zcNone, zcFastest, zcDefault, zcMax); + + {** TZStreamRec ***********************************************************} + + TZStreamRec = packed record + next_in : PChar; // next input byte + avail_in : Longint; // number of bytes available at next_in + total_in : Longint; // total nb of input bytes read so far + + next_out : PChar; // next output byte should be put here + avail_out: Longint; // remaining free space at next_out + total_out: Longint; // total nb of bytes output so far + + msg : PChar; // last error message, NULL if no error + state : Pointer; // not visible by applications + + zalloc : TZAlloc; // used to allocate the internal state + zfree : TZFree; // used to free the internal state + opaque : Pointer; // private data object passed to zalloc and zfree + + data_type: Integer; // best guess about the data type: ascii or binary + adler : Longint; // adler32 value of the uncompressed data + reserved : Longint; // reserved for future use + end; + + {** TCustomZStream ********************************************************} + + TCustomZStream = class(TStream) + private + FStream : TStream; + FStreamPos : Integer; + FOnProgress: TNotifyEvent; + + FZStream : TZStreamRec; + FBuffer : Array [Word] of Char; + protected + constructor Create(stream: TStream); + + procedure DoProgress; dynamic; + + property OnProgress: TNotifyEvent read FOnProgress write FOnProgress; + end; + + {** TZCompressionStream ***************************************************} + + TZCompressionStream = class(TCustomZStream) + private + function GetCompressionRate: Single; + public + constructor Create(dest: TStream; compressionLevel: TZCompressionLevel = zcDefault); + destructor Destroy; override; + + function Read(var buffer; count: Longint): Longint; override; + function Write(const buffer; count: Longint): Longint; override; + function Seek(offset: Longint; origin: Word): Longint; override; + + property CompressionRate: Single read GetCompressionRate; + property OnProgress; + end; + + {** TZDecompressionStream *************************************************} + + TZDecompressionStream = class(TCustomZStream) + public + constructor Create(source: TStream); + destructor Destroy; override; + + function Read(var buffer; count: Longint): Longint; override; + function Write(const buffer; count: Longint): Longint; override; + function Seek(offset: Longint; origin: Word): Longint; override; + + property OnProgress; + end; + +{** zlib public routines ****************************************************} + +{***************************************************************************** +* ZCompress * +* * +* pre-conditions * +* inBuffer = pointer to uncompressed data * +* inSize = size of inBuffer (bytes) * +* outBuffer = pointer (unallocated) * +* level = compression level * +* * +* post-conditions * +* outBuffer = pointer to compressed data (allocated) * +* outSize = size of outBuffer (bytes) * +*****************************************************************************} + +procedure ZCompress(const inBuffer: Pointer; inSize: Integer; + out outBuffer: Pointer; out outSize: Integer; + level: TZCompressionLevel = zcDefault); + +{***************************************************************************** +* ZDecompress * +* * +* pre-conditions * +* inBuffer = pointer to compressed data * +* inSize = size of inBuffer (bytes) * +* outBuffer = pointer (unallocated) * +* outEstimate = estimated size of uncompressed data (bytes) * +* * +* post-conditions * +* outBuffer = pointer to decompressed data (allocated) * +* outSize = size of outBuffer (bytes) * +*****************************************************************************} + +procedure ZDecompress(const inBuffer: Pointer; inSize: Integer; + out outBuffer: Pointer; out outSize: Integer; outEstimate: Integer = 0); + +{** string routines *********************************************************} + +function ZCompressStr(const s: String; level: TZCompressionLevel = zcDefault): String; + +function ZDecompressStr(const s: String): String; + +{** stream routines *********************************************************} + +procedure ZCompressStream(inStream, outStream: TStream; + level: TZCompressionLevel = zcDefault); + +procedure ZDecompressStream(inStream, outStream: TStream); + +{****************************************************************************} + +type + EZLibError = class(Exception); + + EZCompressionError = class(EZLibError); + EZDecompressionError = class(EZLibError); + +implementation + +{** link zlib code **********************************************************} + +{$L deflate.obj} +{$L inflate.obj} +{$L infblock.obj} +{$L inftrees.obj} +{$L infcodes.obj} +{$L infutil.obj} +{$L inffast.obj} +{$L trees.obj} +{$L adler32.obj} + +{***************************************************************************** +* note: do not reorder the above -- doing so will result in external * +* functions being undefined * +*****************************************************************************} + +const + {** flush constants *******************************************************} + + Z_NO_FLUSH = 0; + Z_PARTIAL_FLUSH = 1; + Z_SYNC_FLUSH = 2; + Z_FULL_FLUSH = 3; + Z_FINISH = 4; + + {** return codes **********************************************************} + + Z_OK = 0; + Z_STREAM_END = 1; + Z_NEED_DICT = 2; + Z_ERRNO = (-1); + Z_STREAM_ERROR = (-2); + Z_DATA_ERROR = (-3); + Z_MEM_ERROR = (-4); + Z_BUF_ERROR = (-5); + Z_VERSION_ERROR = (-6); + + {** compression levels ****************************************************} + + Z_NO_COMPRESSION = 0; + Z_BEST_SPEED = 1; + Z_BEST_COMPRESSION = 9; + Z_DEFAULT_COMPRESSION = (-1); + + {** compression strategies ************************************************} + + Z_FILTERED = 1; + Z_HUFFMAN_ONLY = 2; + Z_DEFAULT_STRATEGY = 0; + + {** data types ************************************************************} + + Z_BINARY = 0; + Z_ASCII = 1; + Z_UNKNOWN = 2; + + {** compression methods ***************************************************} + + Z_DEFLATED = 8; + + {** return code messages **************************************************} + + _z_errmsg: array[0..9] of PChar = ( + 'need dictionary', // Z_NEED_DICT (2) + 'stream end', // Z_STREAM_END (1) + '', // Z_OK (0) + 'file error', // Z_ERRNO (-1) + 'stream error', // Z_STREAM_ERROR (-2) + 'data error', // Z_DATA_ERROR (-3) + 'insufficient memory', // Z_MEM_ERROR (-4) + 'buffer error', // Z_BUF_ERROR (-5) + 'incompatible version', // Z_VERSION_ERROR (-6) + '' + ); + + ZLevels: array [TZCompressionLevel] of Shortint = ( + Z_NO_COMPRESSION, + Z_BEST_SPEED, + Z_DEFAULT_COMPRESSION, + Z_BEST_COMPRESSION + ); + + SZInvalid = 'Invalid ZStream operation!'; + +{** deflate routines ********************************************************} + +function deflateInit_(var strm: TZStreamRec; level: Integer; version: PChar; + recsize: Integer): Integer; external; + +function deflate(var strm: TZStreamRec; flush: Integer): Integer; + external; + +function deflateEnd(var strm: TZStreamRec): Integer; external; + +{** inflate routines ********************************************************} + +function inflateInit_(var strm: TZStreamRec; version: PChar; + recsize: Integer): Integer; external; + +function inflate(var strm: TZStreamRec; flush: Integer): Integer; + external; + +function inflateEnd(var strm: TZStreamRec): Integer; external; + +function inflateReset(var strm: TZStreamRec): Integer; external; + +{** zlib function implementations *******************************************} + +function zcalloc(opaque: Pointer; items, size: Integer): Pointer; +begin + GetMem(result,items * size); +end; + +procedure zcfree(opaque, block: Pointer); +begin + FreeMem(block); +end; + +{** c function implementations **********************************************} + +procedure _memset(p: Pointer; b: Byte; count: Integer); cdecl; +begin + FillChar(p^,count,b); +end; + +procedure _memcpy(dest, source: Pointer; count: Integer); cdecl; +begin + Move(source^,dest^,count); +end; + +{** custom zlib routines ****************************************************} + +function DeflateInit(var stream: TZStreamRec; level: Integer): Integer; +begin + result := DeflateInit_(stream,level,ZLIB_VERSION,SizeOf(TZStreamRec)); +end; + +// function DeflateInit2(var stream: TZStreamRec; level, method, windowBits, +// memLevel, strategy: Integer): Integer; +// begin +// result := DeflateInit2_(stream,level,method,windowBits,memLevel, +// strategy,ZLIB_VERSION,SizeOf(TZStreamRec)); +// end; + +function InflateInit(var stream: TZStreamRec): Integer; +begin + result := InflateInit_(stream,ZLIB_VERSION,SizeOf(TZStreamRec)); +end; + +// function InflateInit2(var stream: TZStreamRec; windowBits: Integer): Integer; +// begin +// result := InflateInit2_(stream,windowBits,ZLIB_VERSION,SizeOf(TZStreamRec)); +// end; + +{****************************************************************************} + +function ZCompressCheck(code: Integer): Integer; +begin + result := code; + + if code < 0 then + begin + raise EZCompressionError.Create(_z_errmsg[2 - code]); + end; +end; + +function ZDecompressCheck(code: Integer): Integer; +begin + Result := code; + + if code < 0 then + begin + raise EZDecompressionError.Create(_z_errmsg[2 - code]); + end; +end; + +procedure ZCompress(const inBuffer: Pointer; inSize: Integer; + out outBuffer: Pointer; out outSize: Integer; + level: TZCompressionLevel); +const + delta = 256; +var + zstream: TZStreamRec; +begin + FillChar(zstream,SizeOf(TZStreamRec),0); + + outSize := ((inSize + (inSize div 10) + 12) + 255) and not 255; + GetMem(outBuffer,outSize); + + try + zstream.next_in := inBuffer; + zstream.avail_in := inSize; + zstream.next_out := outBuffer; + zstream.avail_out := outSize; + + ZCompressCheck(DeflateInit(zstream,ZLevels[level])); + + try + while ZCompressCheck(deflate(zstream,Z_FINISH)) <> Z_STREAM_END do + begin + Inc(outSize,delta); + ReallocMem(outBuffer,outSize); + + zstream.next_out := PChar(Integer(outBuffer) + zstream.total_out); + zstream.avail_out := delta; + end; + finally + ZCompressCheck(deflateEnd(zstream)); + end; + + ReallocMem(outBuffer,zstream.total_out); + outSize := zstream.total_out; + except + FreeMem(outBuffer); + raise; + end; +end; + +procedure ZDecompress(const inBuffer: Pointer; inSize: Integer; + out outBuffer: Pointer; out outSize: Integer; outEstimate: Integer); +var + zstream: TZStreamRec; + delta : Integer; +begin + FillChar(zstream,SizeOf(TZStreamRec),0); + + delta := (inSize + 255) and not 255; + + if outEstimate = 0 then outSize := delta + else outSize := outEstimate; + + GetMem(outBuffer,outSize); + + try + zstream.next_in := inBuffer; + zstream.avail_in := inSize; + zstream.next_out := outBuffer; + zstream.avail_out := outSize; + + ZDecompressCheck(InflateInit(zstream)); + + try + while ZDecompressCheck(inflate(zstream,Z_NO_FLUSH)) <> Z_STREAM_END do + begin + Inc(outSize,delta); + ReallocMem(outBuffer,outSize); + + zstream.next_out := PChar(Integer(outBuffer) + zstream.total_out); + zstream.avail_out := delta; + end; + finally + ZDecompressCheck(inflateEnd(zstream)); + end; + + ReallocMem(outBuffer,zstream.total_out); + outSize := zstream.total_out; + except + FreeMem(outBuffer); + raise; + end; +end; + +{** string routines *********************************************************} + +function ZCompressStr(const s: String; level: TZCompressionLevel): String; +var + buffer: Pointer; + size : Integer; +begin + ZCompress(PChar(s),Length(s),buffer,size,level); + + SetLength(result,size); + Move(buffer^,result[1],size); + + FreeMem(buffer); +end; + +function ZDecompressStr(const s: String): String; +var + buffer: Pointer; + size : Integer; +begin + ZDecompress(PChar(s),Length(s),buffer,size); + + SetLength(result,size); + Move(buffer^,result[1],size); + + FreeMem(buffer); +end; + +{** stream routines *********************************************************} + +procedure ZCompressStream(inStream, outStream: TStream; + level: TZCompressionLevel); +const + bufferSize = 32768; +var + zstream : TZStreamRec; + zresult : Integer; + inBuffer : Array [0..bufferSize-1] of Char; + outBuffer: Array [0..bufferSize-1] of Char; + inSize : Integer; + outSize : Integer; +begin + FillChar(zstream,SizeOf(TZStreamRec),0); + + ZCompressCheck(DeflateInit(zstream,ZLevels[level])); + + inSize := inStream.Read(inBuffer,bufferSize); + + while inSize > 0 do + begin + zstream.next_in := inBuffer; + zstream.avail_in := inSize; + + repeat + zstream.next_out := outBuffer; + zstream.avail_out := bufferSize; + + ZCompressCheck(deflate(zstream,Z_NO_FLUSH)); + + // outSize := zstream.next_out - outBuffer; + outSize := bufferSize - zstream.avail_out; + + outStream.Write(outBuffer,outSize); + until (zstream.avail_in = 0) and (zstream.avail_out > 0); + + inSize := inStream.Read(inBuffer,bufferSize); + end; + + repeat + zstream.next_out := outBuffer; + zstream.avail_out := bufferSize; + + zresult := ZCompressCheck(deflate(zstream,Z_FINISH)); + + // outSize := zstream.next_out - outBuffer; + outSize := bufferSize - zstream.avail_out; + + outStream.Write(outBuffer,outSize); + until (zresult = Z_STREAM_END) and (zstream.avail_out > 0); + + ZCompressCheck(deflateEnd(zstream)); +end; + +procedure ZDecompressStream(inStream, outStream: TStream); +const + bufferSize = 32768; +var + zstream : TZStreamRec; + zresult : Integer; + inBuffer : Array [0..bufferSize-1] of Char; + outBuffer: Array [0..bufferSize-1] of Char; + inSize : Integer; + outSize : Integer; +begin + FillChar(zstream,SizeOf(TZStreamRec),0); + + ZCompressCheck(InflateInit(zstream)); + + inSize := inStream.Read(inBuffer,bufferSize); + + while inSize > 0 do + begin + zstream.next_in := inBuffer; + zstream.avail_in := inSize; + + repeat + zstream.next_out := outBuffer; + zstream.avail_out := bufferSize; + + ZCompressCheck(inflate(zstream,Z_NO_FLUSH)); + + // outSize := zstream.next_out - outBuffer; + outSize := bufferSize - zstream.avail_out; + + outStream.Write(outBuffer,outSize); + until (zstream.avail_in = 0) and (zstream.avail_out > 0); + + inSize := inStream.Read(inBuffer,bufferSize); + end; + + repeat + zstream.next_out := outBuffer; + zstream.avail_out := bufferSize; + + zresult := ZCompressCheck(inflate(zstream,Z_FINISH)); + + // outSize := zstream.next_out - outBuffer; + outSize := bufferSize - zstream.avail_out; + + outStream.Write(outBuffer,outSize); + until (zresult = Z_STREAM_END) and (zstream.avail_out > 0); + + ZCompressCheck(inflateEnd(zstream)); +end; + +{** TCustomZStream **********************************************************} + +constructor TCustomZStream.Create(stream: TStream); +begin + inherited Create; + + FStream := stream; + FStreamPos := stream.Position; +end; + +procedure TCustomZStream.DoProgress; +begin + if Assigned(FOnProgress) then FOnProgress(Self); +end; + +{** TZCompressionStream *****************************************************} + +constructor TZCompressionStream.Create(dest: TStream; + compressionLevel: TZCompressionLevel); +begin + inherited Create(dest); + + FZStream.next_out := FBuffer; + FZStream.avail_out := SizeOf(FBuffer); + + ZCompressCheck(DeflateInit(FZStream,ZLevels[compressionLevel])); +end; + +destructor TZCompressionStream.Destroy; +begin + FZStream.next_in := Nil; + FZStream.avail_in := 0; + + try + if FStream.Position <> FStreamPos then FStream.Position := FStreamPos; + + while ZCompressCheck(deflate(FZStream,Z_FINISH)) <> Z_STREAM_END do + begin + FStream.WriteBuffer(FBuffer,SizeOf(FBuffer) - FZStream.avail_out); + + FZStream.next_out := FBuffer; + FZStream.avail_out := SizeOf(FBuffer); + end; + + if FZStream.avail_out < SizeOf(FBuffer) then + begin + FStream.WriteBuffer(FBuffer,SizeOf(FBuffer) - FZStream.avail_out); + end; + finally + deflateEnd(FZStream); + end; + + inherited Destroy; +end; + +function TZCompressionStream.Read(var buffer; count: Longint): Longint; +begin + raise EZCompressionError.Create(SZInvalid); +end; + +function TZCompressionStream.Write(const buffer; count: Longint): Longint; +begin + FZStream.next_in := @buffer; + FZStream.avail_in := count; + + if FStream.Position <> FStreamPos then FStream.Position := FStreamPos; + + while FZStream.avail_in > 0 do + begin + ZCompressCheck(deflate(FZStream,Z_NO_FLUSH)); + + if FZStream.avail_out = 0 then + begin + FStream.WriteBuffer(FBuffer,SizeOf(FBuffer)); + + FZStream.next_out := FBuffer; + FZStream.avail_out := SizeOf(FBuffer); + + FStreamPos := FStream.Position; + + DoProgress; + end; + end; + + result := Count; +end; + +function TZCompressionStream.Seek(offset: Longint; origin: Word): Longint; +begin + if (offset = 0) and (origin = soFromCurrent) then + begin + result := FZStream.total_in; + end + else raise EZCompressionError.Create(SZInvalid); +end; + +function TZCompressionStream.GetCompressionRate: Single; +begin + if FZStream.total_in = 0 then result := 0 + else result := (1.0 - (FZStream.total_out / FZStream.total_in)) * 100.0; +end; + +{** TZDecompressionStream ***************************************************} + +constructor TZDecompressionStream.Create(source: TStream); +begin + inherited Create(source); + + FZStream.next_in := FBuffer; + FZStream.avail_in := 0; + + ZDecompressCheck(InflateInit(FZStream)); +end; + +destructor TZDecompressionStream.Destroy; +begin + inflateEnd(FZStream); + + inherited Destroy; +end; + +function TZDecompressionStream.Read(var buffer; count: Longint): Longint; +var + zresult: Integer; +begin + FZStream.next_out := @buffer; + FZStream.avail_out := count; + + if FStream.Position <> FStreamPos then FStream.Position := FStreamPos; + + zresult := Z_OK; + + while (FZStream.avail_out > 0) and (zresult <> Z_STREAM_END) do + begin + if FZStream.avail_in = 0 then + begin + FZStream.avail_in := FStream.Read(FBuffer,SizeOf(FBuffer)); + + if FZStream.avail_in = 0 then + begin + result := count - FZStream.avail_out; + + Exit; + end; + + FZStream.next_in := FBuffer; + FStreamPos := FStream.Position; + + DoProgress; + end; + + zresult := ZDecompressCheck(inflate(FZStream,Z_NO_FLUSH)); + end; + + if (zresult = Z_STREAM_END) and (FZStream.avail_in > 0) then + begin + FStream.Position := FStream.Position - FZStream.avail_in; + FStreamPos := FStream.Position; + + FZStream.avail_in := 0; + end; + + result := count - FZStream.avail_out; +end; + +function TZDecompressionStream.Write(const Buffer; Count: Longint): Longint; +begin + raise EZDecompressionError.Create(SZInvalid); +end; + +function TZDecompressionStream.Seek(Offset: Longint; Origin: Word): Longint; +var + buf: Array [0..8191] of Char; + i : Integer; +begin + if (offset = 0) and (origin = soFromBeginning) then + begin + ZDecompressCheck(inflateReset(FZStream)); + + FZStream.next_in := FBuffer; + FZStream.avail_in := 0; + + FStream.Position := 0; + FStreamPos := 0; + end + else if ((offset >= 0) and (origin = soFromCurrent)) or + (((offset - FZStream.total_out) > 0) and (origin = soFromBeginning)) then + begin + if origin = soFromBeginning then Dec(offset,FZStream.total_out); + + if offset > 0 then + begin + for i := 1 to offset div SizeOf(buf) do ReadBuffer(buf,SizeOf(buf)); + ReadBuffer(buf,offset mod SizeOf(buf)); + end; + end + else if (offset = 0) and (origin = soFromEnd) then + begin + while Read(buf,SizeOf(buf)) > 0 do ; + end + else raise EZDecompressionError.Create(SZInvalid); + + result := FZStream.total_out; +end; + +end. diff --git a/orig/pq/ZLIBEX.dcu b/orig/pq/ZLIBEX.dcu new file mode 100644 index 0000000..89cca29 Binary files /dev/null and b/orig/pq/ZLIBEX.dcu differ diff --git a/orig/pq/charsheet.txt b/orig/pq/charsheet.txt new file mode 100644 index 0000000..cf90ad6 --- /dev/null +++ b/orig/pq/charsheet.txt @@ -0,0 +1,39 @@ +Chillmitts [Oobag] +Gyrognome Puma Burgular +Level 1 (exp. 220/1200) + +Plot stage: Act I (5 hours remaining) +Quest: Deliver this counterpane (83% complete) + +Stats: + STR 10 + CON 9 + DEX 6 + INT 7 + WIS 5 HP Max 2 + CHA 15 MP Max 8 + +Equipment: + Weapon Sharp Stick + Shield Pie Plate + Helm + Hauberk + Brassairts -1 Holey Threadbare Chamois + Vambraces + Gauntlets + Cuisses + Greaves + Sollerets + +Spell Book: + Hastiness I + Big Sister III + +Inventory (20/20 cubits): + 34 Gold + 2 orc snouts + a merman trident + a Gleaming Bandolier of Grob + +-- June 12 2002 10:12:12 +-- Progress Quest 6.2 - http://progressquest.com diff --git a/orig/pq/crossed_swords_sm.gif b/orig/pq/crossed_swords_sm.gif new file mode 100644 index 0000000..a5b9d3b Binary files /dev/null and b/orig/pq/crossed_swords_sm.gif differ diff --git a/orig/pq/dist/changes.txt b/orig/pq/dist/changes.txt new file mode 100644 index 0000000..8fbbd7a --- /dev/null +++ b/orig/pq/dist/changes.txt @@ -0,0 +1,22 @@ +New RPG rulebook: N.U.S.S.B.A.H. II (Nerfed yoU Soon Shall Be, And How (2ed)) + - +New race: Gobhobbit (replaces Greater Gnome) +New class: Vermineer (replaces Toungeblade) +New weapon: Kreen (on par w/ a Broadsword) +New spells: History Lesson, Shoelaces +New ordinary quest item: writ +New fancy item: Vulpeculum +New monster: the Hogbird (Lvl 3, drops a hogbird curl) + +Save extensions: pq3 +Named & titled NPC victims sometimes + + +TODO +Cinematics between plots +Cinematics to end / begin quests +Logging +Class- and race-based effects? +More accurate item dropping? +Skills? +Options screen? \ No newline at end of file diff --git a/orig/pq/dist/license.txt b/orig/pq/dist/license.txt new file mode 100644 index 0000000..b4004ce --- /dev/null +++ b/orig/pq/dist/license.txt @@ -0,0 +1,20 @@ +Progress Quest version 6.2 +Copyright (c) 2003 Eric Fredricksen + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/orig/pq/dist/pq.html b/orig/pq/dist/pq.html new file mode 100644 index 0000000..307cb56 --- /dev/null +++ b/orig/pq/dist/pq.html @@ -0,0 +1,129 @@ + + + +

Progress Quest

+ +http://progressquest.com/ + +

Back story

+ +Since time before time the Vorlak had held the Crosshutch at Thraeskamp. +The ancient reckoning held that the Five Skrelkampi (and their Truebine) would +return when the great Trond-feast could be held anew and the Belnap reunited. +But this legend became lost to all but the Papperboxen at Horbug. +One of their own was Yallow the Speldrig, who found an unlikely pupil in +Torbole Understeady, the discarded illigitimate waif of Wainthane Topknox, +whom Yallow renamed Grumdrig and began to school as a boar-pulmet's apprentice. ...And, as it +was said by some, in aberdoxy. +

+As our story opens young Grumdrig has returned to Horbug following a trying stint in +Spilwaer Spond where his laconic disposition and fertile mind bred a series +of misadventures which had landed him outside the good graces of the Jordref there, +Welham, who had secretly begun a long term course of slow but +disaccomodating illpeel in the lad's morning fanwael. +Meanwhile, though scarce a tuft of mansefur had yet made its appearance +on the boy's manssach, a number of visiting Roilwachhs have begun to +exhibit a discreet +and seemingly inexplicable interest in the boy. Strange indeed, as he would not reach +his krouchensterm for another harvest or more. +And when Grumdrig's resiliant compatriot Paedri +appears at Grumdrig's lochnotat with a Scrolstamp from the old Speldrig, +a woozy foreboding feeling rises from his young gut... + +

Introduction

+ +Progress Quest is a next generation computer role-playing game. +Gamers who have played modern online role-playing games, +or almost any computer role-playing game, +or who have at any time installed or upgraded their operating system, will find themselves +incredibly comfortable with Progress Quest's very familiar gameplay. +Progress Quest follows reverently in the footsteps of recent smash hit +online worlds, but is careful to streamline the more tedious aspects of those +offerings. Players will still have the satisfaction of building their character +from a ninety-pound level 1 teenager, to an incredibly puissant, magically imbued warrior, +well able to snuff out the lives of a barnload of bugbears +without need of so much as a lunch break. Yet, gone are the tedious micromanagement +and other frustrations common to that older generation of RPG's. + +

User manual

+ +Even inexperienced gamers will find Progress Quest +remarkably intutive and simple to play. Start the program +and click the New Game (Single Player) button, +or click New Game (Multiplayer) and select a Realm to +compete against players from all over the world. +You will then be presented with the character creation screen. + +Select a name, race and class for the new character. Then, use the Roll button +until you are statisfied with the stats +for your character. Tip: You can use the Unroll button (a feature exclusive to Progress Quest) +to go back to any previous roll if you find that you've +clicked too hastily. +

+If you choose to play an online game, your character will share adventures with other Progress +Quest characters in an online virtual world. Online play requires +internet connectivity, though sophisiticated algorithms +keep the bandwidth usage to a minimum. You can compare your character against +the top Progress Quest players by visiting +http://progressquest.com/realms.php +(or hit <Ctrl>-<B> from within the game). +

+Finally, hit the Sold! button to begin the game. The game will start immediately and +you can safely familiarize yourself with the game's single interface screen as the game progresses +on its own. +Soon your avatar will will be seeking and destroying an exotic panopoly of beasts while you +gaze proudly on. Missing, you will notice, is the tedious march from town, the bewildering maze of cookie cutter +streets hiding some specific merchant or NPC, +and the repetetive hunt for just the right beast to execute. Progress Quest supplies +your character with an endless series of victims, as well as exciting quests which keep your quest +log full to the brim at all times. +

+TREASURE: Each slain creature yields a trophy, which can be sold in any town. +When the encumbrance bar reaches maximum, your character automatically returns to the nearest town +to sell your loot. If sufficiently liquid, he may then purchase an upgrade in equpiment (weapon or armor). +That being done, the interpid adventurer then returns to the frontier to spill more blood. +Tip: The amount your character can carry before his encumbrance bar fills up +increases as his STR stat improves. +

+QUESTS: When a quest is complete, your character is rewarded with one of: +a) a special, valuable, treasure item, +b) an improved weapon or piece of armor, +c) a boost in stats, or +d) a new spell for his spellbook. The character is then assigned +a follow-up quest, which he immediately begins to make progress on. +

+EXPERIENCE AND LEVELING UP: Experience represents your character's knowledge about the world +around him, as well as his battle prowess and ability to channel the forces of magical power. +Your character gains experience by killing monsters and sentient beings, +over and over again. Once the experience bar is full, your character levels up, and is +given an automatic boost in several of his stats and a new spell for his spellbook. +

+DYING: Be warned that your character can be slain by monsters which are tougher than +he can handle. However, this concept +has been abstracted out of the game and takes effect simply by somewhat reducing the experience +accumulated for each successful murder. +

+SAVING YOUR PROGRESS: Your game is saved whenever you quit, as well as each time your character levels +up or completes a quest. You can pick up where you left off by restarting Progress Quest and clicking the Load Game +button. Progress Quest makes a backup of your existing save file each time it saves anew, so +if your save file becomes corrupted, load the backup, and lament the progress that must now be regained. + +

Game controls

+ +Progress Quest belongs to a new breed of "fire and forget" RPG's. There is no need to interact +with Progress Quest at all; it will make progress with you or without you. +

+You can quit Progress Quest by using the window close box, or by hitting <Alt>-<F4> +(hold down the <Alt> key while hitting <F4>), but there is really little need to ever do so. +Please note that your character will not make any progress except when Progress Quest is +running. Your character will make no progress once you quit the program, until you start +Progress Quest again. + +

Keyboard quick reference

+ + +
KeyDescription
Alt-F4Exit Progress Quest
+ +

+©:Copyright 2003 +grumdrig@progressquest.com diff --git a/orig/pq/dist/pq6-2beta1.zip b/orig/pq/dist/pq6-2beta1.zip new file mode 100644 index 0000000..9c2b2eb Binary files /dev/null and b/orig/pq/dist/pq6-2beta1.zip differ diff --git a/orig/pq/pq.cfg b/orig/pq/pq.cfg new file mode 100644 index 0000000..9df49a9 --- /dev/null +++ b/orig/pq/pq.cfg @@ -0,0 +1,35 @@ +-$A8 +-$B- +-$C+ +-$D+ +-$E- +-$F- +-$G+ +-$H+ +-$I+ +-$J- +-$K- +-$L+ +-$M- +-$N+ +-$O+ +-$P+ +-$Q- +-$R- +-$S- +-$T- +-$U- +-$V+ +-$W- +-$X+ +-$YD +-$Z1 +-cg +-AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +-H+ +-W+ +-M +-$M16384,1048576 +-K$00400000 +-LE"c:\appl\delphi6\Projects\Bpl" +-LN"c:\appl\delphi6\Projects\Bpl" diff --git a/orig/pq/pq.dof b/orig/pq/pq.dof new file mode 100644 index 0000000..eaa0c05 --- /dev/null +++ b/orig/pq/pq.dof @@ -0,0 +1,87 @@ +[FileVersion] +Version=6.0 +[Compiler] +A=8 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=0 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=1 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +RemoteSymbols=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +PackageDLLOutputDir= +PackageDCPOutputDir= +SearchPath= +Packages=vcl;rtl;vclx;vclshlctrls;visualclx;vclie;xmlrtl;inet;inetdbbde;inetdbxpress;nmfast;indy;VclSmp;dbrtl;adortl;vcldb;qrpt;bdertl;vcldbx;dsnap;cds;bdecds;teeui;teedb;tee;teeqr;ibxpress;visualdbclx;dbexpress;dbxcds;dclOffice2k;inetdb +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +Launcher= +UseLauncher=0 +DebugCWD= +[Language] +ActiveLang= +ProjectLang= +RootDir= +[Version Info] +IncludeVerInfo=1 +AutoIncBuild=0 +MajorVer=6 +MinorVer=2 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1033 +CodePage=1252 +[Version Info Keys] +CompanyName=Grumdrig +FileDescription= +FileVersion=6.2.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename=pq.exe +ProductName=Progress Quest +ProductVersion=6.2 +Comments= diff --git a/orig/pq/pq.dpr b/orig/pq/pq.dpr new file mode 100644 index 0000000..249c073 --- /dev/null +++ b/orig/pq/pq.dpr @@ -0,0 +1,25 @@ +program pq; + +uses + Forms, + Config in 'Config.pas' {K}, + Front in 'Front.pas' {FrontForm}, + Main in 'Main.pas' {MainForm}, + NewGuy in 'NewGuy.pas' {NewGuyForm}, + SelServ in 'SelServ.pas' {ServerSelectForm}, + Web in 'Web.pas'; + +{$E exe} + +{$R *.res} + +begin + Application.Initialize; + Application.Title := 'Progress Quest'; + Application.CreateForm(TMainForm, MainForm); + Application.CreateForm(TK, K); + Application.CreateForm(TFrontForm, FrontForm); + Application.CreateForm(TNewGuyForm, NewGuyForm); + Application.CreateForm(TServerSelectForm, ServerSelectForm); + Application.Run; +end. diff --git a/orig/pq/pq.exe b/orig/pq/pq.exe new file mode 100755 index 0000000..82360a3 Binary files /dev/null and b/orig/pq/pq.exe differ diff --git a/orig/pq/pq.res b/orig/pq/pq.res new file mode 100644 index 0000000..0ff3632 Binary files /dev/null and b/orig/pq/pq.res differ diff --git a/orig/pq/saves/Avtrep.pq3 b/orig/pq/saves/Avtrep.pq3 new file mode 100644 index 0000000..d3a2016 Binary files /dev/null and b/orig/pq/saves/Avtrep.pq3 differ diff --git a/orig/pq/saves/Chillmitts [Oobag].log b/orig/pq/saves/Chillmitts [Oobag].log new file mode 100644 index 0000000..a596a38 --- /dev/null +++ b/orig/pq/saves/Chillmitts [Oobag].log @@ -0,0 +1,9 @@ +[2003-04-12 11:34:34] Gained a swamp elf lilypad +[2003-04-12 11:34:34] Executing a fetal Anhkheg... +[2003-04-12 11:37:14] Loaded game: C:\proj\pq6.2\Chillmitts [Oobag].pq +[2003-04-12 11:37:15] Saving game: C:\proj\pq6.2\Chillmitts [Oobag].pq +[2003-04-12 11:51:16] Loaded game: C:\proj\pq6.2\Chillmitts [Oobag].pq +[2003-04-12 11:51:30] Gained an anhkheg chitin +[2003-04-12 11:51:30] Executing a fetal Anhkheg... +[2003-04-12 11:51:36] Gained an anhkheg chitin +[2003-04-12 11:51:36] Executing a fetal Anhkheg... diff --git a/orig/pq/saves/Chillmitts [Oobag].pq b/orig/pq/saves/Chillmitts [Oobag].pq new file mode 100644 index 0000000..410ab03 Binary files /dev/null and b/orig/pq/saves/Chillmitts [Oobag].pq differ diff --git a/orig/pq/saves/Chillmitts [Oobag].sheet b/orig/pq/saves/Chillmitts [Oobag].sheet new file mode 100644 index 0000000..dab3337 --- /dev/null +++ b/orig/pq/saves/Chillmitts [Oobag].sheet @@ -0,0 +1,45 @@ +Chillmitts [Oobag] +Gyrognome Puma Burgular +Level 2 (exp. 345/1279) + +Plot stage: Act I (5 hours remaining) +Quest: Exterminate the Gargoyles (40% complete) + +Stats: + STR 11 + CON 10 + DEX 6 + INT 8 + WIS 5 HP Max 9 + CHA 16 MP Max 11 + +Equipment: + Shield Pie Plate + Helm -2 Holey Threadbare Chamois + Hauberk -2 Burlap + Vambraces Macrame + Gauntlets Mildewed Motheaten Chamois + Gambeson Macrame + Greaves -4 Faded Chamois + +Spell Book: + Slime Finger II + Sadness I + Seasick I + +Inventory (19/21 cubits): + 89 gold pieces + a peryton antler + a lizard man tail + a pirate booty + a gray ooze gravy + a hobgoblin patella + a violet fungi spore + 2 billy goat beards + an eel sashimi + 6 yellow mold spores + 2 nixie webbings + the Fearsome Laurel of Prurience + +-- 4/12/2003 1:19:29 PM +-- Progress Quest 6.2 - http://progressquest.com/ diff --git a/orig/pq/saves/Cokie [Oobag].log b/orig/pq/saves/Cokie [Oobag].log new file mode 100644 index 0000000..f864dfa --- /dev/null +++ b/orig/pq/saves/Cokie [Oobag].log @@ -0,0 +1,266 @@ +[2003-04-12 11:41:57] Loaded game: C:\proj\pq6.2\Cokie [Oobag].pq +[2003-04-12 11:42:02] Gained a manes tooth +[2003-04-12 11:42:02] Executing a Manes... +[2003-04-12 11:42:09] Gained a manes tooth +[2003-04-12 11:42:09] Executing a Battle-Manes... +[2003-04-12 11:42:22] Quest completed: Deliver this bucket +[2003-04-12 11:42:22] Commencing quest: Placate the Boogies +[2003-04-12 11:42:22] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq +[2003-04-12 11:42:22] Gained a manes tooth +[2003-04-12 11:42:22] Executing a Nixie... +[2003-04-12 11:42:28] Gained a nixie webbing +[2003-04-12 11:42:28] Executing a Goblin... +[2003-04-12 11:42:34] Gained a goblin ear +[2003-04-12 11:42:34] Heading to market to sell loot... +[2003-04-12 11:42:38] Selling a gnoll collar... +[2003-04-12 11:42:40] Got paid a gold piece +[2003-04-12 11:42:40] Selling a pirate booty... +[2003-04-12 11:42:41] Got paid a gold piece +[2003-04-12 11:42:41] Selling a quasit tail... +[2003-04-12 11:42:42] Got paid a gold piece +[2003-04-12 11:42:42] Selling a girl scout cookie... +[2003-04-12 11:42:43] Got paid a gold piece +[2003-04-12 11:42:43] Selling a multicell dendrite... +[2003-04-12 11:42:44] Got paid a gold piece +[2003-04-12 11:42:44] Selling a nebbish belly... +[2003-04-12 11:42:46] Got paid a gold piece +[2003-04-12 11:42:46] Selling a troglodyte tail... +[2003-04-12 11:42:47] Got paid a gold piece +[2003-04-12 11:42:47] Selling a merman trident... +[2003-04-12 11:42:48] Got paid a gold piece +[2003-04-12 11:42:48] Selling a yellow mold spore... +[2003-04-12 11:42:49] Got paid a gold piece +[2003-04-12 11:42:49] Selling a hippogriff egg... +[2003-04-12 11:42:50] Got paid a gold piece +[2003-04-12 11:42:50] Selling a koala heart... +[2003-04-12 11:42:52] Got paid a gold piece +[2003-04-12 11:42:52] Selling 7 manes tooths... +[2003-04-12 11:42:53] Got paid 7 gold pieces +[2003-04-12 11:42:53] Selling a nixie webbing... +[2003-04-12 11:42:54] Got paid a gold piece +[2003-04-12 11:42:54] Selling a goblin ear... +[2003-04-12 11:42:55] Got paid a gold piece +[2003-04-12 11:42:55] Heading to the killing fields... +[2003-04-12 11:42:59] Executing an undernourished Triton... +[2003-04-12 11:43:12] Gained a triton scale +[2003-04-12 11:43:12] Executing a passing Battle-Finch Hunter Strangler... +[2003-04-12 11:43:24] Gained a Fearsome Sceptre of Loyalty +[2003-04-12 11:43:24] Executing an Uruk... +[2003-04-12 11:43:36] Gained an uruk boot +[2003-04-12 11:43:36] Executing a Battle-Dwarf... +[2003-04-12 11:43:49] Gained a dwarf drawers +[2003-04-12 11:43:49] Executing a Pixie... +[2003-04-12 11:43:55] Gained a pixie dust +[2003-04-12 11:43:55] Executing a Nebbish... +[2003-04-12 11:44:01] Gained a nebbish belly +[2003-04-12 11:44:01] Executing a Battle-Beagle... +[2003-04-12 11:44:07] Gained a beagle collar +[2003-04-12 11:44:07] Executing a Manes... +[2003-04-12 11:44:13] Gained a manes tooth +[2003-04-12 11:44:13] Executing a Sea Elf... +[2003-04-12 11:44:20] Gained a Level +[2003-04-12 11:44:20] Gained 7 HP Maxes +[2003-04-12 11:44:20] Gained 8 MP Maxes +[2003-04-12 11:44:20] Gained a STR +[2003-04-12 11:44:20] Gained a STR +[2003-04-12 11:44:20] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq +[2003-04-12 11:44:22] Gained a sea elf jerkin +[2003-04-12 11:44:22] Executing a crippled preadolescent Umber Hulk... +[2003-04-12 11:44:28] Gained an umber hulk claw +[2003-04-12 11:44:28] Executing a cursed Orc... +[2003-04-12 11:44:37] Quest completed: Placate the Boogies +[2003-04-12 11:44:37] Commencing quest: Placate the Nymphs +[2003-04-12 11:44:37] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq +[2003-04-12 11:44:37] Gained an orc snout +[2003-04-12 11:44:37] Executing a Wolf... +[2003-04-12 11:44:43] Gained a wolf paw +[2003-04-12 11:44:43] Executing a greater Nixie... +[2003-04-12 11:44:50] Gained a nixie webbing +[2003-04-12 11:44:50] Executing a Grid Bug... +[2003-04-12 11:44:53] Gained a grid bug carapace +[2003-04-12 11:44:53] Executing a Troglodyte... +[2003-04-12 11:44:59] Gained a troglodyte tail +[2003-04-12 11:44:59] Executing an Uruk... +[2003-04-12 11:45:06] Gained an uruk boot +[2003-04-12 11:45:06] Executing an underage Piercer... +[2003-04-12 11:45:12] Gained a piercer tip +[2003-04-12 11:45:12] Executing a Brown Elf... +[2003-04-12 11:45:15] Gained a brown elf tusk +[2003-04-12 11:45:15] Executing a greater Swamp Elf... +[2003-04-12 11:45:21] Gained a swamp elf lilypad +[2003-04-12 11:45:21] Executing a crippled Medusa... +[2003-04-12 11:45:31] Gained a medusa eye +[2003-04-12 11:45:31] Executing an undernourished Nymph... +[2003-04-12 11:45:38] Gained a nymph hanky +[2003-04-12 11:45:38] Executing a Stun Worm... +[2003-04-12 11:45:44] Gained a stun worm trode +[2003-04-12 11:45:44] Heading to market to sell loot... +[2003-04-12 11:45:48] Selling a triton scale... +[2003-04-12 11:45:49] Got paid 2 gold pieces +[2003-04-12 11:45:49] Selling a Fearsome Sceptre of Loyalty... +[2003-04-12 11:45:50] Got paid 2 gold pieces +[2003-04-12 11:45:50] Selling 2 uruk boots... +[2003-04-12 11:45:52] Got paid 4 gold pieces +[2003-04-12 11:45:52] Selling a dwarf drawers... +[2003-04-12 11:45:53] Got paid 2 gold pieces +[2003-04-12 11:45:53] Selling a pixie dust... +[2003-04-12 11:45:54] Got paid 2 gold pieces +[2003-04-12 11:45:54] Selling a nebbish belly... +[2003-04-12 11:45:55] Got paid 2 gold pieces +[2003-04-12 11:45:55] Selling a beagle collar... +[2003-04-12 11:45:57] Got paid 2 gold pieces +[2003-04-12 11:45:57] Selling a manes tooth... +[2003-04-12 11:45:58] Got paid 2 gold pieces +[2003-04-12 11:45:58] Selling a sea elf jerkin... +[2003-04-12 11:45:59] Got paid 2 gold pieces +[2003-04-12 11:45:59] Selling an umber hulk claw... +[2003-04-12 11:46:00] Got paid 2 gold pieces +[2003-04-12 11:46:00] Selling an orc snout... +[2003-04-12 11:46:01] Got paid 2 gold pieces +[2003-04-12 11:46:01] Selling a wolf paw... +[2003-04-12 11:46:03] Got paid 2 gold pieces +[2003-04-12 11:46:03] Selling a nixie webbing... +[2003-04-12 11:46:04] Got paid 2 gold pieces +[2003-04-12 11:46:04] Selling a grid bug carapace... +[2003-04-12 11:46:05] Got paid 2 gold pieces +[2003-04-12 11:46:05] Selling a troglodyte tail... +[2003-04-12 11:46:06] Got paid 2 gold pieces +[2003-04-12 11:46:06] Selling a piercer tip... +[2003-04-12 11:46:07] Got paid 2 gold pieces +[2003-04-12 11:46:07] Selling a brown elf tusk... +[2003-04-12 11:46:09] Got paid 2 gold pieces +[2003-04-12 11:46:09] Selling a swamp elf lilypad... +[2003-04-12 11:46:10] Got paid 2 gold pieces +[2003-04-12 11:46:10] Selling a medusa eye... +[2003-04-12 11:46:11] Got paid 2 gold pieces +[2003-04-12 11:46:11] Selling a nymph hanky... +[2003-04-12 11:46:12] Got paid 2 gold pieces +[2003-04-12 11:46:12] Selling a stun worm trode... +[2003-04-12 11:46:13] Got paid 2 gold pieces +[2003-04-12 11:46:13] Negotiating purchase of better equipment... +[2003-04-12 11:46:19] Spent 60 gold pieces +[2003-04-12 11:46:19] Heading to the killing fields... +[2003-04-12 11:46:23] Executing a greater Rot Grub... +[2003-04-12 11:46:29] Gained a rot grub eggsac +[2003-04-12 11:46:29] Executing a sick Quasit... +[2003-04-12 11:46:32] Gained a quasit tail +[2003-04-12 11:46:33] Executing an underage Sea Hag... +[2003-04-12 11:46:39] Gained a sea hag wart +[2003-04-12 11:46:39] Executing a greater Bunny... +[2003-04-12 11:46:42] Gained a bunny ear +[2003-04-12 11:46:42] Executing a greater Uruk... +[2003-04-12 11:46:51] Gained an uruk boot +[2003-04-12 11:46:51] Executing a comatose Catoblepas... +[2003-04-12 11:46:58] Gained a catoblepas neck +[2003-04-12 11:46:58] Executing a Piercer... +[2003-04-12 11:47:07] Gained a piercer tip +[2003-04-12 11:47:07] Executing a greater Wolf... +[2003-04-12 11:47:17] Quest completed: Placate the Nymphs +[2003-04-12 11:47:17] Gained an INT +[2003-04-12 11:47:17] Commencing quest: Deliver this trinket +[2003-04-12 11:47:17] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq +[2003-04-12 11:47:17] Gained a wolf paw +[2003-04-12 11:47:17] Executing a Cub Scout... +[2003-04-12 11:47:20] Gained a cub scout neckercheif +[2003-04-12 11:47:20] Executing a Sylph... +[2003-04-12 11:47:29] Gained a sylph thigh +[2003-04-12 11:47:29] Executing a Bat... +[2003-04-12 11:47:32] Gained a bat wing +[2003-04-12 11:47:32] Executing an underage Homonculus... +[2003-04-12 11:47:36] Gained a homonculus fluid +[2003-04-12 11:47:36] Executing a Gnoll... +[2003-04-12 11:47:42] Gained a gnoll collar +[2003-04-12 11:47:42] Executing an Eel... +[2003-04-12 11:47:48] Gained an eel sashimi +[2003-04-12 11:47:48] Executing a Girl Scout... +[2003-04-12 11:47:54] Gained a girl scout cookie +[2003-04-12 11:47:54] Executing a greater Merman... +[2003-04-12 11:48:01] Gained a merman trident +[2003-04-12 11:48:01] Executing a Battle-Orc... +[2003-04-12 11:48:07] Gained an orc snout +[2003-04-12 11:48:07] Executing a Yellow Mold... +[2003-04-12 11:48:10] Gained a yellow mold spore +[2003-04-12 11:48:10] Executing a cursed Goblin... +[2003-04-12 11:48:19] Gained a goblin ear +[2003-04-12 11:48:19] Executing a Piercer... +[2003-04-12 11:48:29] Gained a piercer tip +[2003-04-12 11:48:29] Executing a Jumpskin... +[2003-04-12 11:48:38] Gained a jumpskin shin +[2003-04-12 11:48:38] Executing a greater Grid Bug... +[2003-04-12 11:48:44] Gained a grid bug carapace +[2003-04-12 11:48:44] Heading to market to sell loot... +[2003-04-12 11:48:48] Selling a rot grub eggsac... +[2003-04-12 11:48:50] Got paid 2 gold pieces +[2003-04-12 11:48:50] Selling a quasit tail... +[2003-04-12 11:48:51] Got paid 2 gold pieces +[2003-04-12 11:48:51] Selling a sea hag wart... +[2003-04-12 11:48:52] Got paid 2 gold pieces +[2003-04-12 11:48:52] Selling a bunny ear... +[2003-04-12 11:48:53] Got paid 2 gold pieces +[2003-04-12 11:48:53] Selling an uruk boot... +[2003-04-12 11:48:54] Got paid 2 gold pieces +[2003-04-12 11:48:54] Selling a catoblepas neck... +[2003-04-12 11:48:56] Got paid 2 gold pieces +[2003-04-12 11:48:56] Selling 2 piercer tips... +[2003-04-12 11:48:57] Got paid 4 gold pieces +[2003-04-12 11:48:57] Selling a wolf paw... +[2003-04-12 11:48:58] Got paid 2 gold pieces +[2003-04-12 11:48:58] Selling a cub scout neckercheif... +[2003-04-12 11:48:59] Got paid 2 gold pieces +[2003-04-12 11:48:59] Selling a sylph thigh... +[2003-04-12 11:49:00] Got paid 2 gold pieces +[2003-04-12 11:49:00] Selling a bat wing... +[2003-04-12 11:49:02] Got paid 2 gold pieces +[2003-04-12 11:49:02] Selling a homonculus fluid... +[2003-04-12 11:49:03] Got paid 2 gold pieces +[2003-04-12 11:49:03] Selling a gnoll collar... +[2003-04-12 11:49:04] Got paid 2 gold pieces +[2003-04-12 11:49:04] Selling an eel sashimi... +[2003-04-12 11:49:05] Got paid 2 gold pieces +[2003-04-12 11:49:05] Selling a girl scout cookie... +[2003-04-12 11:49:06] Got paid 2 gold pieces +[2003-04-12 11:49:06] Selling a merman trident... +[2003-04-12 11:49:08] Got paid 2 gold pieces +[2003-04-12 11:49:08] Selling an orc snout... +[2003-04-12 11:49:09] Got paid 2 gold pieces +[2003-04-12 11:49:09] Selling a yellow mold spore... +[2003-04-12 11:49:10] Got paid 2 gold pieces +[2003-04-12 11:49:10] Selling a goblin ear... +[2003-04-12 11:49:11] Got paid 2 gold pieces +[2003-04-12 11:49:11] Selling a jumpskin shin... +[2003-04-12 11:49:12] Got paid 2 gold pieces +[2003-04-12 11:49:12] Selling a grid bug carapace... +[2003-04-12 11:49:14] Got paid 2 gold pieces +[2003-04-12 11:49:14] Heading to the killing fields... +[2003-04-12 11:49:18] Executing a greater Leprechaun... +[2003-04-12 11:49:24] Gained a leprechaun wallet +[2003-04-12 11:49:24] Executing a cursed Crayfish... +[2003-04-12 11:49:30] Gained a crayfish antenna +[2003-04-12 11:49:30] Executing an Iron Peasant... +[2003-04-12 11:49:40] Gained an iron peasant chaff +[2003-04-12 11:49:40] Executing an undernourished Green Slime... +[2003-04-12 11:49:43] Gained a green slime sample +[2003-04-12 11:49:43] Executing an Uruk... +[2003-04-12 11:49:49] Gained an uruk boot +[2003-04-12 11:49:49] Executing an underage Violet Fungi... +[2003-04-12 11:49:55] Gained a violet fungi spore +[2003-04-12 11:49:55] Executing a Camel... +[2003-04-12 11:50:01] Gained a camel hump +[2003-04-12 11:50:01] Executing a greater Rat... +[2003-04-12 11:50:23] Loaded game: C:\proj\pq6.2\Cokie [Oobag].pq +[2003-04-12 11:50:23] Gained a wolf paw +[2003-04-12 11:50:23] Executing a Yellow Mold... +[2003-04-12 11:50:27] Gained a yellow mold spore +[2003-04-12 11:50:27] Executing a massive Nixie... +[2003-04-12 11:50:30] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq +[2003-04-12 11:52:42] Loaded game: C:\proj\pq6.2\Cokie [Oobag].pq +[2003-04-12 11:53:40] Loaded game: C:\proj\pq6.2\Cokie [Oobag].pq +[2003-04-12 11:53:46] Gained a nixie webbing +[2003-04-12 11:53:46] Executing a Yellow Mold... +[2003-04-12 11:53:49] Gained a yellow mold spore +[2003-04-12 11:53:49] Executing a massive Nixie... +[2003-04-12 11:53:59] Gained a nixie webbing +[2003-04-12 11:53:59] Executing a Goblin... +[2003-04-12 11:54:02] Gained a goblin ear +[2003-04-12 11:54:02] Executing a Battle-Leprechaun... +[2003-04-12 11:54:06] Saving game: C:\proj\pq6.2\Cokie [Oobag].pq diff --git a/orig/pq/saves/Cokie [Oobag].pq b/orig/pq/saves/Cokie [Oobag].pq new file mode 100644 index 0000000..d734a72 Binary files /dev/null and b/orig/pq/saves/Cokie [Oobag].pq differ diff --git a/orig/pq/saves/Cokie [Oobag].sheet b/orig/pq/saves/Cokie [Oobag].sheet new file mode 100644 index 0000000..5461425 --- /dev/null +++ b/orig/pq/saves/Cokie [Oobag].sheet @@ -0,0 +1,37 @@ +Cookie [Oobag] +Half Halfling Puma Burgular +Level 3 (exp. 44/1291) + +Plot stage: Act I (5 hours remaining) +Quest: Exterminate the Unicorns (93% complete) + +Stats: + STR 12 + CON 9 + DEX 6 + INT 14 + WIS 13 HP Max 19 + CHA 11 MP Max 19 + +Equipment: + Shield +1 Pie Plate + Helm Macrame + Hauberk -1 Canvas + Brassairts Mildewed Rusty Pleathers + Vambraces Cracked Patched Pleathers + Gauntlets Lace + Gambeson Lace + Greaves -1 Macrame + Sollerets -1 Burlap + +Spell Book: + Hastiness III + Slime Finger III + Sadness I + Rabbit Punch I + +Inventory (1/22 cubits): + 6 gold pieces + +-- 9/5/2003 12:22:01 AM +-- Progress Quest 6.2 - http://progressquest.com/ diff --git a/orig/pq/saves/Frogrox [Oobag].pq b/orig/pq/saves/Frogrox [Oobag].pq new file mode 100644 index 0000000..b5411e5 Binary files /dev/null and b/orig/pq/saves/Frogrox [Oobag].pq differ diff --git a/orig/pq/saves/Kridfrav.pq3 b/orig/pq/saves/Kridfrav.pq3 new file mode 100644 index 0000000..454525b Binary files /dev/null and b/orig/pq/saves/Kridfrav.pq3 differ diff --git a/orig/pq/saves/Moxwhik.pq3 b/orig/pq/saves/Moxwhik.pq3 new file mode 100644 index 0000000..0eab286 Binary files /dev/null and b/orig/pq/saves/Moxwhik.pq3 differ diff --git a/orig/pq/saves/Oupret.pq3 b/orig/pq/saves/Oupret.pq3 new file mode 100644 index 0000000..67fe6a7 Binary files /dev/null and b/orig/pq/saves/Oupret.pq3 differ diff --git a/orig/pq/saves/Rotdrut.pq3 b/orig/pq/saves/Rotdrut.pq3 new file mode 100644 index 0000000..751bf75 Binary files /dev/null and b/orig/pq/saves/Rotdrut.pq3 differ diff --git a/orig/pq/saves/Utzin.pq3 b/orig/pq/saves/Utzin.pq3 new file mode 100644 index 0000000..cd9f421 Binary files /dev/null and b/orig/pq/saves/Utzin.pq3 differ diff --git a/orig/pq/saves/Whakcrood [Spoltog].pq b/orig/pq/saves/Whakcrood [Spoltog].pq new file mode 100644 index 0000000..911154e Binary files /dev/null and b/orig/pq/saves/Whakcrood [Spoltog].pq differ diff --git a/orig/pq/saves/Ziedkrad.pq3 b/orig/pq/saves/Ziedkrad.pq3 new file mode 100644 index 0000000..d3aa892 Binary files /dev/null and b/orig/pq/saves/Ziedkrad.pq3 differ diff --git a/orig/pq/screenshots.zip b/orig/pq/screenshots.zip new file mode 100644 index 0000000..d61e81f Binary files /dev/null and b/orig/pq/screenshots.zip differ diff --git a/orig/pq/swords.gif b/orig/pq/swords.gif new file mode 100644 index 0000000..010ef0d Binary files /dev/null and b/orig/pq/swords.gif differ -- cgit v1.2.3