aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--checks/bench.cpp1
-rw-r--r--checks/validate.dat935
-rw-r--r--doc/api.tex2
-rw-r--r--doc/examples/bench.cpp1
-rw-r--r--doc/log.txt1
-rw-r--r--src/engine/def_engine/lookup_hash.cpp9
-rw-r--r--src/hash/fork256/fork256.cpp149
-rw-r--r--src/hash/fork256/fork256.h35
-rw-r--r--src/hash/fork256/info.txt5
9 files changed, 2 insertions, 1136 deletions
diff --git a/checks/bench.cpp b/checks/bench.cpp
index d3f9be391..70b8087d4 100644
--- a/checks/bench.cpp
+++ b/checks/bench.cpp
@@ -105,7 +105,6 @@ const std::string algos[] = {
/* Hashes */
"BMW-512",
- "FORK-256",
"GOST-34.11",
"HAS-160",
"MD2",
diff --git a/checks/validate.dat b/checks/validate.dat
index ed5723506..aaeb7f013 100644
--- a/checks/validate.dat
+++ b/checks/validate.dat
@@ -47959,941 +47959,6 @@ FD1A64F7BC61608FD054303AFA2E31608AA3F3788E3034821D63A0288A70B573
2B5F61CB57F94E7C7E6D7439FFF2600286658539\
88224E0AD8C08C2FAA61963C8F761654AC529325
-# FORK-256 vectors generated by the implementation in Botan; there is only one
-# test vector, and it only covers the compression function, not the entire
-# hash. The implementation of FORK-256 used to generate these vectors did pass
-# the one known official vector, but there may have been problems not found by
-# that vector.
-[FORK-256]
-:E6A3C4881D6B1EE37F70847D9C8424A3E2AC408079570ED5ED9D20D0214D7599
-
-1D:90753CE547CE7FAE1A736D6D38E8C6F14D93897D106FA63CA32BFD1219E06A62
-
-3E07:D5C380F39876FB9836D492ED520E2F6929C302133BCB9F2A5080204DECE3583A
-
-A8F001:13428BD3C7368C8EB0B890A0FA3461ADD5202FD23257EEAF1559079344123046
-
-EA8F7A2C:65DD3204D3C9E9CE5EF21CECB3421F59351D5ECF0B928D199887BFDAB1906A0F
-
-2E19859C9E:DC5DEF85475A372F3E16A0893302A3C77218C4EFBCF6D9331DB7A2D3CEC5E8C4
-
-2AF0BDBB8363:88AFC377D3630E6B686EC48F9030DCC78E64F7DA1023CC34D49F01861487525E
-
-82F8A36D0A7979:\
-9D96C6B2ED8B50A2153A89BBC861718C4744547F2AF24F648235E553BDC03E13
-
-78F37E4B9235DFFB:\
-CB3367A41C64D73EE024FD9F9BCB59ED66F6F9CB370BE0354D9C6ACFFFEE5D6A
-
-FB85C864108365961B:\
-B657CF6B34422A945A870FEED5468FE052F046626A4D9EA8DE0F6C9837E72429
-
-793BA844BCDD71B1B750:\
-0371387237C9300AC6E4CDBB1E33904561225D3DCBED9E9EDDE710BE34C72084
-
-19781F1B1394459A3EF407:\
-B53815CC5F494D0983475EF4FCA87AADA732D10DE1E89E62BE397BEB53496545
-
-55B5FD2344A64809C7608A57:\
-3BC33C0FFD68E3DE47D5C1E85AF732C94EA390999B0D10C428CE655A023699C6
-
-AD14F3D82E4349DC3B8C1B2A9B:\
-428111A57BF802669AC9EC7BAEF3929036FCAD03979F2151CE3F8C19B7430529
-
-7C6FCD56927F530DD8E27C661ECB:\
-098FF664FDD45068D5B51F2AAEF738BF35AEE8945270663A179FBD8C62184D97
-
-270303C1B3E754DB1B8A388632B79B:\
-BD6E8FE6F4F0D67FE6EA76774F8049FCB3E9FB9C490467CEFAE793900AA86C2D
-
-70B7BAB2A9BB809F9A74311B562BF43D:\
-611DFAC246B16D3D6A359FC580E477D474751C24A78225D93009A910BEFC7A5C
-
-5E01E5540B5B6F371F642D15B4F412C190:\
-DD75FD419466A998B7B460E093224A7DD82A630B6E88BBC8437589FE68764E4F
-
-3557FD9C93B37B3E484E55242105EEF9EB64:\
-D86D755CAF29D6DD1E339F4F3D8DA2FCFA26FAE62FF27851F8DBBA942DB8093E
-
-C851F162EDFB2E5D9CF7BEB5369B423B049120:\
-10095694CF4940D5512FA27975FADCBEFB4F96C4DA321A3F35F6B24DE2A2C879
-
-D5DDEFF9F8C8921DCA1820C4368F28C4945B0402:\
-D0235CA1FA883DC7BD2F8E018FC51739FC644D49BD9B6FCF0D4434873C7F466C
-
-8F5D3CCFA13AE2710E293638068A8936D9B2887D8A:\
-5135B14FD4DD8BA1BCBB0E613F71077EBD6B41B0608F495365D442D213ABB5D4
-
-F4247F6724C9832FF65B9D98EBBC091241DE8C9CDC57:\
-FD9A2FE9D7D59F793BFF7BE343A6EA70C37DAAE0B0162B9BD8050DB99975DE8A
-
-C8A3DFBFAF08F34B258C6BC33E826ECD5F808CEEB88E43:\
-CFDD70E8344315DA659697E6B929F7E5410BBF2BFAA46D911CA4D548F6A80648
-
-3F40DEC3198D7EF8D7AF8DAAA86C6246B464BCE6878D7D91:\
-A6A0D6461C505C70050235F89E88EC7C0E6B3DE130E198E2EFDCE562D4E354A9
-
-5D61E8C5431A0578175AF50F2D0D27D41D16E1C397F73EFF15:\
-DB064D53411169A3928C8C7B62CA538BBA5276FD83E93667195735F88EC4A7EA
-
-8DA080EC9907AC188208DED4D7F634DAC6B1382AE3BDB721B665:\
-ADA78594D6230C9587F0EE87F17AA21CFBF4C82DFDFB8473A8529F3DE6C14895
-
-865F5D01E678E4FEA91ED39B8B9B1C4B8B17459BC4B4A3D677BC49:\
-2641A6AA41499952DD1ECBF5AF4426A4DAAD233127F3AC56F308B2E9D5F25B7B
-
-D787FFA504B1470076F898CC0D2CB65CC23B5B02437539F54826BA61:\
-D29DF8910ECE7FDE01B2FA5D8641DEDE6E8DBDA44143ACC58AA2CE01D2406455
-
-595199257CB4178EF928983A6E822846C1B024328A3B1FFB6E242E3661:\
-AE72575D2EF2664C75E0538165AEACB24B80A3B28546096DABB2642A7AE959F7
-
-5EFBD43D66A7A1D23382E1757241AA5679B4C0F9F78419985B65D70A6E8C:\
-F707AB7EBCFFB3F78EF1AAB7FEB832D2651E82889AA95FD02958F326AF975D93
-
-32C2BF9FBF3871314F84F17949882E4BBDB530C8808FB58648BB811ADDCB8C:\
-8D3E1FE5840130D141A68991C9321719F4D50E13C52ACA0BBF6D218773871544
-
-7820ACB94D6A8A2E7B7273C6C528E2088F60B6E57CB4494BDAAA4B7877202862:\
-DDE3C2EDE2D0AEB9F80FC6F8C54CC6A108F5F693EE8EDE2C755AD20FCF011C1F
-
-A14BAAC3891D78465A9798ABC984407072BD209D80A7550DB1FA63EB922300F43B:\
-FAD764D75BB72296BE85979A4F57C89E51D9AEA8280DD87D18CA5ABFFD3553A2
-
-1166A4CEBBFA31E715B19FEB15D4FF84C35112E4876D7182E3EF97147606760FD23C:\
-57B507F04922E9E2ABE3D8DD8205579715AD0276F2179360C092966D3E335B1B
-
-AE7C2882888543E7206BD57350F33985322DED8508BBC70BA961C3ED35075CAD439732:\
-DA545CEF32F141181F07AE275FBFA6C9D8A299FD40660EEF3C344657EB22E8B3
-
-48F1A035DC0FE6D0BE1F2D1233B08714D404682DD8CB39F66E8FE163AAC79F7241E9BFC6:\
-20ACC36E9788C4E7484BA8C166E93953124F703ECC15369943BF81AF10062D2A
-
-ED596E8DC5A9AF7FF123D886589592D5FA0FF86151B8634DF4C4C1F1450E5323D6228BBEDA:\
-6E85CCA98D2CD2591018E303330ED12F3434DD9706A1194ACA4E60866F78291B
-
-EABAEFE3421D3BFB668B390430ACBA72E4EE6F2C92142A93F0BAC595906579C64E2A3EA33D0C:\
-7A7564C0053A3630FEFA5C3A2DC80B99341C05903BFB6765777112F96DE7D3AC
-
-F71C08AFD45891723E61BD9241DAC454A2333D2ACF21B3848EA47BF01FE524E4E6E1D47A635A\
-F8:04A03842A1E8E916781CBA312A65C3C99DC949895CD48567FC3C836F39CF8EEF
-
-E2895A841C03629710EFB16B6C921E31B86A882A56C63914E631446A91FA0092A2AA570DCE0A75\
-2F:737E62D552B437F0E46EBD69A2BBC3B8AC4A4992AE64830077B8E0A9946B0454
-
-002E5C6DF7AD9BFF9E6E08AE68EDE886B39BF6365CA081A25576741708ECB5B64D80F640EB26AB\
-69F5:609CE0C785C2BE58F1E76CDFBD903C48BFE385EE035C7604715CA86EF9B38D1C
-
-FEA76D123D4EA976912A521763F6588E56D694791398C6DB760E5BFF381A6506EF4280008A5948\
-5B5943:53598D2271C83D3238AA9FD90DE0B5037525854770337FEFBA0FB636A1623E1E
-
-AD53132CD9C61018CEC4B07278D5667DDFB4EE9A839DBF584962D1880345951007DEC5E0F52FFD\
-9AD0FD9B:E8FF3DDB2CBAF8B220DEC63B5F1320E02A47A5ED02297FDE7C0788E5A7306082
-
-D11C82ED861EB312B69AF9A372B8F41D0BD9B0BF2F03D9F1F13D54CAFC475B97C39A169369EEA0\
-D92606377F:544180FA5E0FDA3054596B7ABC0C6B7F0CF5ED755C5C490E7C93FC00B4CB0C8C
-
-7C438726B3E3AC24D06F1AC23494F030655A4E5DC5D523641B0BCBBD8339B3DD8A0632520BDCCC\
-29DE6654B5FE:\
-5F00EC9E215EBC9F7669627B6C91FEA12DE0E4D475F49AED7EA937AF490A599E
-
-9D934509A19691DF7555BEA1A244AB503D278918AE8A0D984300CDF5ED7962A8FA5EDB01E8D38E\
-830976BD4F6800:\
-40135DEA3BC67E8C4295856C8B30B9AADAA904A5106CCE597A49912DB64CC8E0
-
-9C0EEBCE97B82482CF742A88F3671F85A84239D70A9A03D07B67876FE7C103A787A941955D2149\
-662F57CC29C93ACA:\
-8EE3D2595A3427BA24E14D610246CDF354FFE1704C42B1CA50B22E400AE0321A
-
-D159C512621C4E59F0F2D63534E62E66C0AC8665F37FE51213305598A53148A28F410DACAA103F\
-F204372EA0CA1A0023:\
-C0148D8A4688A49E35014EBC61786F00743788A4B9529C2C02ECCFED5B00BB08
-
-89724F1F0A6377DD6AD938CDB297F247BF09CEFADEBA43F5769799948D6D5D160DE142A7417315\
-6FCA9A237573076D1655:\
-4DD08B4E2401168ADEC0E05A341EC69A27890D0DBE48D898C9B657AA6D753860
-
-89308DC7FABEB7E264E283819D6742A1FA9DFA076CF7D607D7B10E9996F3C1349404D01737FA32\
-ED58555A00935F54C309F5:\
-0D8E3B5C1C8876DF9021ECCAF0D0221E4F156A9EA75624335C39DBD7F96960FC
-
-41FB354861A111C2169C18F5E29824E0E80A47CB8C30D828369C6C2456125B685B8CF11D092532\
-E844D55C8A492D660504C908:\
-4BF1967D6772CBD680C01F244EBCDE85EBD402E6CF9B5EBCE8A00B0733D09132
-
-3B4D0D2D8926B376A5CE3421CCE1F4E5D4A1818ED55996CF2EAE935D0E41CA7621CC009BE7FDA4\
-AB371594177DBA06670A521321:\
-A0146AFB474623D6559E8011E112F1DA7E3F0140327B2C8205899C2A0B611022
-
-2175F02F451F59DD84156218AE9A949ADDC0428FFD980F23CAC66570160637A40819481F528C62\
-A4A7F1B5A092C7FB4B9101C5E8C1:\
-44787DF2F8F0E4203E3EBAF8304744DFBE6DF6D53C33D4BB6B9A3A40766A2CDE
-
-9F836DC75A54F209E4FE423F6C08A1E3565732E8642DEA0C17E59D27C63A8ED80C6E18E48DAEDC\
-5FAD99E27DC63F426C6F6BE02EE03B:\
-0379CF92A8627230F274731CB269E5DE24A91435D39E7C461E9E0AEC9CA1C30B
-
-FB1678C2D4A5262046B0B7A9B11B5F069E4C0297C1698DC6766AEDF936303B3DBA1FC229F1C1F1\
-FAF54A32D72400514274A741B7AB3F43:\
-08826C3E6319A2E9CC3B23E0ECCD3AD2CAF30640D1250158D8E4ADDB46217AD5
-
-24D4117E61379F5E55CC6C311B140CA4FECC300909BB3BC05FDB68B961187F3DE2BA18FF7F4522\
-012DFA073122902D691A824F6EF08AC9E8:\
-36D90AAF4107C7790231FEDD5332027AA45540908F7881BFA6DBF6CA26CD220A
-
-1C4052964E9796FC030EED644C4661F242BF0AA3D2E93141B85D0383AB29C0025FFB160EC413F0\
-4591B18F3F892639EA57B5558ED8DA358961:\
-CEE495F4969D81025AEFDCF40A20E54B060F13B755633AC2350569DBAB97BF35
-
-00743CE2A53D08393B32BF3F8EEB081FB684DE4905834AEBF966ADD0EC484FD5F0D15131E5674B\
-15380C11554EF823838D931EC010BCCBF928CD:\
-BB7279D1120515D472EC9CE71BDC32BC7CFE8F3BA7D5CAA371816C3AD23DAAA9
-
-6C7D10949194F2C22BB9CE620FBBFDEF0B61BA1960B580BCB29DDE81A3D5F0BD6722046191823B\
-2297CB1017503342A353D2523B427086BB2DF313:\
-199B856E5AD193591859688E316E09D6942582DFA984CD8EBB8FA262920F2645
-
-8D2789C6885A275FDEC50B7B37065B6F681BCDC0030E1C582BCF3247133D293834443A3FEB8F38\
-8D67C729F92633AAC54CAF6D8857C1B0FA151064BC:\
-FB6A7F1878E278BE80564FFC190097724A870F09660FD3BE72878713BF13E618
-
-1235B88BA03D232060450C91F3374A44FD4C40A03BEB54523AF85F7A5ADE59E31E23AD0B0FAF7A\
-438D5F3F981C03D2C900BC2A9C5B1B979145ED3C7214:\
-B8089EF455C50D5F3C4DF616C032E6A593CE74D05990FFC9CCF5BFED8C7B002F
-
-511DACA4F9FDD439D14FC91E3350CEA754E8B32E1CA9B45C27006967D86C2D5A826D6606588E63\
-3781411F627127DD135DE7CBC03025CC34B5601D4CB7B5:\
-CE0F3874027B7573BB829CC054E63EEB9EC46BEF340213DAF5333791C3D3556B
-
-08AA26D82CAFC07026B19DE0EE09D74B84C4AEFE969D60F76B7A819E4E8F1CF8A687E2E9CC4124\
-041DE331A4D078D836881C430101A89FD89BCAF6C3AB425C:\
-BFD882A8BA5A0A22CD63466958A9C169F40068ACBF7514B71B79438855E004E4
-
-530E88B454E963D5C46F2D58713BA9CD1792D1B262BC4696BF8AF0451D4E34555F7CF83C94B7D6\
-ED1FF924603F80F36CE994A41D308F5D4367C895104BCB1E7CE6E16E6EA1991B245851BA28D915\
-86FBFA9B295EFC15C5277711D738F8B061ABC5F8A2257F85F4BEC0E37B53A42B7A3A10D11370FE\
-B4DCB29E6C0E17E15EC41BC695C72B7200785C7B3DACADB7682441E29DD3D0029AAB241CADB2A4\
-DD92997A93BF01DF6605A8CB776789F12A5D402A1DDC4DCED50FF449CEE65EE7296E88D61758A9\
-7D0DE90F9CD9C44D165C504F61F32800CC48DE51CC1FDB3CBC5E2C3F200733B2E266049945CFAB\
-F41A665A3CF8C65E13D784E3C5D40AFDB1E1526DA87B27035CA65CB368457E627A6EB5962DE24C\
-FFE29A723F03A7A0409BD1ADD5B6A2D0B39C2372E29686CE5032CE1473CC1661B06A3243714265\
-698667B7BE6688922676AC9042AB6A1785D732B2F4EA288DE4AE8CEAE26DE59231FF04ACFB447A\
-71679EB96320B22BB0F730E17DEB159B661D8DC6D397B5C9ECC722BE2AC48000B830CF7DA06572\
-8138A8EDFCBD04E97E6915825CA08A7AA4B5BF96CC2FCA7E391222C6B3247830E77BE9AE10230A\
-2A97099A4344A7203F47689418C72626435DCD59208E679C6B387AC88B39D50335E3479FA62CE6\
-94E4E3CF65018A0938911BBCA21A28C8B54BB43C42B9A868309428A89930CCD71D74A425A30578\
-2CDAF4847500035E53985472F4CA1C4A78240BA9DC9E2E4FAA636871D827B02454CB8C209F9F2D\
-F5D7A62D3B720CF9D9B21B1FAD6FBB34FB6B3A7E89014C54927044135465F0F42AFBF6E77AA6A8\
-498B7917D130DE7E7035577BA4C9F6400ED183767155348A9A2C1A4BD63D1CB9ECACC34ECC2D80\
-E2CA077B0B53A9FDB225624E6774D3ADA17688B6040C53D39D3545C4B20D6C4A0432C18B0A1E3F\
-3AC14CB7E90E4642A1A890FED7D8E725065D52C8DA6942BF9CE0916F3538EF63C327594940BE98\
-7F36764AB59BB6B42CC4C42DC3F7BE7DA7B8AD1DA51462C0A72B9ACBDE65029B2DE0809C1AE230\
-B76014F42A41E1B7B3332851DC46E82704B01CA0F1417539AA8C0BAA547838A6443826E12CF993\
-C891BF6F303C4C20D2DFA07DD14B7560C608CC3B8FD8AB7D825EC2834D08289360B613C7F435F4\
-78A641D7DD115940BF1C5200D6DD54F612DF6136DAF5F95FF6BCB9D9480E60BC8020B9C9154B25\
-4860EBB4FD3112B33A18FCEA742487D79401CBCB07761EC3874663A4791D5508BBA41CB14BE22B\
-98826462194D7943C61E2C3C01A8868E121429B4C49D9B42EFBB10685CB6AFB1B11EC17D7CF2E7\
-1482325F3C16F9C25EC3FC7229B4DC3F82162E3E2E04DFA670AC617E4274D73163D24E43D06687\
-47D1017948E4BE0D0722B6830F415A409DC7A2B15B521FB19790B9EA07883AB000D13AE2E6D62D\
-99DA32577B6037338E5E:\
-06308BA4E79A2CF117A1D5BC027A7492F50138FE4750DBF51F08913ABC40CCE5
-
-83F47CEEFB4E8306A59CEBC0BBECBB88174E17497C1BF33E9047B74D486A255EF79F1555E8E889\
-D0311CCA0B9EF678D976AA02103EDA58CA7A33CE9B7C994348A1641B3954FFCC1AA97832248C47\
-3187D69CCD10A4F553CF73964DBAB05006F0BAC17226E7E98DA3FFA0B8A8F241FFE54A0FD5CF4E\
-B9E5327CACE16B445A65FCA2CF6F9F99B000B0A18D7F3634A00AE49B9A79753C61E3C1453C6C0C\
-F210D6FEA9EEDB12D8F79275FAA4438B765DA316DCA0A8C5E084BB422883C2C195BF49130FFA10\
-D291D69FA362E2B96A6E2A4C9695154BC6A4C4CB194420D3AFDE1035A2CF57E54FACAF2DEAE3AC\
-790A0FEF68290DEE590DF70DB61AA7BB94015F18E6DDFBDD50602110D7FCB5B97612E6FFE5EC16\
-CE738BDDDF71726972E80860BC04CDBFCB67C5AE91E7F4F7913C16769A043F46A986AEF327C5D3\
-FE4AE2525815C162565048D99C559A8F0E9DF8BF88E178E339AC39EA836A9652955B3F440E090A\
-D28A8E14E29E78711A1744E8CAE85F55FA7EC643F4CD1989323F0E049A3BFCBBF254F2583361A2\
-798BAC6411D1FD837D7B64C7A7D93DE278E1D8562621D8B04BBD0CD4D7425C6FA909B3A6241FE8\
-C1A8D67FE616802C69694A318A5D47F97555458F753A960CA9A1DFEC13C8716EAB62603C07A10C\
-67CFFEACE6A1D81A4C4558258C8C14CE75961482B2A34BFB1C81C8474151434186ADF205855DB5\
-F5CEBCB7280C4C9D6CF08167DC2B5B1F112EC3AEA996953465377DD883889D164DEEDD33A012AE\
-3F474417384EFB98D8FF3B757F2B8A8ADE184D443AD1945C14273D4733108083DAB38811AF3708\
-79F8702780D041238B6E5D4AC6D5506AE03B5EC0C76CC16C15E33EFFBCBB877151AB79F2F13F2C\
-AA51ED3B441B7AD204CD209AA19E569B7B5D67EA549F70572ACA4CDC3F438EC78AF5C4B832415A\
-CBE71E1E918310EC9685595F1A62FBA2BC7FC933CEBF1EA6FC00151E33FAC0BBB121C168E7AC9E\
-C4F78B18B7A122D1801298C5D1268AA66CEEC75A5795F3048E6763762C98746CF763A2AD9E78E6\
-30D9402C482656223F21958AA045CB90027338858363EA97A639F239963A8D76622D42E069E813\
-ACD776879FA1344A2C08522D0B53C62E4377FD8504817778CBCCD074099E097A2E361F138FF7FC\
-B60ECCEC6029549F0489022379145A5EF7A7781A1B201B6012E125F9969D57459ED08D21773718\
-AB2B58F7EF41E2FF850AD8194D37324F59B50E85123AA972AD28587C526F05D81057A6BED26AF1\
-E174AC90645BA624287209AA108C6CA3FC6D3532AC28D8314939C1E320A04146D0A68EAE82D5CB\
-8B368E69CAE0040A33BDC3D0DABFA26D70E99D4A40E7675443E22FE51FD2FB5AF0091060DDF96E\
-4C4024D1F1359A95C1B93CCB25DDA483363AD73C4FA952C433809B4C1FC0F3D140E3A6856C9CEA\
-46EA438CED188E0BAD7BF4:\
-226404B39155EC9D9CAF51BFC6A7F0115355FD83104FF66FBBDEB5BF0370EA99
-
-70BEE2D1E703CF4D8872E6E63BFA59A218F8830FEEADE6D2412507386C9CC90EA83312D4565E84\
-9CC6FFFD58A90D3719D1C0AAC147B20033E9F40E515CAA938453CC2EA6D848801B8F6A31721334\
-DAFEF40DE5C8E7C33B1190DC6A33F66CDA2D7174E2CAC423C96DA4BCB399863760EDB44990C2F1\
-D0031D56A9DE624FF3658FF14D33CEF67D9752678A9F18AB64E4551EBC54F96688856AE25C13EA\
-C5A2E92A43E32590509705DA31F7B5A750E6D493D6F3BC7CA0F5E9B1782100E9BB6A4DF4E5934D\
-97BC0D75C1A2341B93024AB1D997F270922C7E2A8D1F6F453FF2C4AA73C69A4D16B50DBF8C1FCB\
-27B1002E4EDD5C3EAAE1DE241214F2E50457551EA42A9A6D515B7224011F9F51D20BCE07FDC533\
-080AF6A0217A2F679D60FBACCDE2659F637481BA75FABC1E224C52B77F74379BDD6002AB917A8F\
-77CEAAC83B134EA14A5AD92780C84CFD08CE4956659900D9F57278A2F074648AB857089F204150\
-899CAC987F522E5CFF41C2289F7DC079B1E7C9F10E41E3B31CEE52195B3E49AB6C4D2B5613BD0B\
-BA01A76E824408BADAECE8BF22AA0469506DC88AE469AD679BFA254ECD06C99F8453B720D4BF05\
-36F3C6272CB8FD8B0F1B995FE75E0DE6DCEBA87EAB8C822325951FB024D0230A569E4CCE190F72\
-A16637A3D3865D33C0ABBC0A3182C915AAD6B4CB22A648703F164026481E6505C6D80A5C7BFC0F\
-32557704563399317F1A1DCF0CE425F20E9290FECE77831D60FF3472874C1F4BDFE18A0A00218D\
-0B428EC195BB221D1C49FDDB68039980AFFE6EDD7C166E944AFB71499CDFC96EC95BC28DE747EA\
-72E031E83D8405A8DB1B6AAEAD15087FE75DB7471E2BC49F9E9418C6BD52B32D747B2ACC1F0F7F\
-0B21EC4DE2879B249D6FBDDF5B85FFF8A4861FE7206F9F84F5B761398055038FC100794FCE09E9\
-96794DB1CB30FBFAE4B183D0BB0D1C10920DEA7B7D3234F6FCB682375D8C36401A9F67FB3A8615\
-E3F649B7AE4D6586865A1D8CAD6DA45B694977B4F378FE610C4F943D41A223BC7318ECF98515B9\
-2168DCCBA7411AFB84AA6E35C473D6F595ACE62336AF52298040FEB2DF462FA30E039FC4AD80AD\
-D3B420D8CE0675E0DEA46884AAB203699B65DB309E71615728A44E80EAC271541C6D85A3160C7E\
-5274F624DD288C387DF342619B751E15615E464249CEC80FF132FFBFDAB5827CC4DE01FF506F29\
-CEABD8DB256DEBD26D519F6210E3956F95D7ECF1E48DE31839360C2985815348D1A451FB4683EE\
-5C06C362725C97E8BA8F9926691B32B38441D49B4032D9239033A72288FC98B26BEE3461F6147E\
-1C6C1D93A4B857E53A5B9B25AE03E5741C673E7D1757B165F36B21170A5B3B9DDACC015554E132\
-38B987DF9F236A689FC79450CBF3B611660267816D3152CE6B75A2D6EFBCFDA900AA3DDCD5B684\
-5448DF2F0C089A436D3C7290:\
-93F020C6617AEF37E1E53D0558AE8E8731E9B79DDEF0C3BF931973955175D957
-
-20BE956038BE1F4F76697367DA55A382B082DCF66A6EBEE838E10D41AD87D0F1A83723467AAD5C\
-4AECF39480ED5E47A9143AE6F9AC5BC46E7AC83428DE404E1A89D3783FC38BA0B16FD912D118F8\
-3C4631375D39CC220A278485BEE01F8B45AB57C9564566F49C3584C455919095713A75BA91CF03\
-CC9BE013CF9D69266071EAE64C2C07DEA0C117271D349DB1A940BF3B2C91F3AAF407DBB97FACA4\
-7B909ADC6F1EDC1398015048359E0A831AADEA251F8BDFB88C6B9EA073BB238134483952D0F8B0\
-E9C0629E55E5F5DD47072E9C5D0FBD6B4C5326C11CB2734CA4DAD6E2D8BBA212F6E67F570290B2\
-1F1D69D146A140C57125D169EAF6B91913E5841F2442E0AB40BA77D8F376E4C45C95BC9B4797F8\
-DBF941C66252539E63E001D139FD4A59E7AC4817B73879A2522714979F536F481B76582653B482\
-4DD76A1441A8A1525E8192F1F273F95DD564CDB4853B682E87693EB2B544950BCCD27BB664E323\
-1080A486884F235DF20A7E6639B40DF4D63D0A2112B5E6BBA21838380DD4E49C1F4965B45A335C\
-557860EDE58AA283CD176285DAB929DBA3260B5FEBA261FD9814D09BE315FE1493A5AEE3CE6071\
-259982EEF9716409A09E28091F23E1DE08E7B89962CF354201247C15D75281ACB079A51A9F3992\
-F9BC88727658E8E1BA6932C18184EC3BE572B98642BBD886242F781AB13362B389423B39B27E69\
-E6D91488A280E1040110E037FB0D55B12DF029B7D577B0F7FC7BE884D3FDCC066A57D1A0DC86F4\
-12BAC3079696DA7AB3DA894BF399D9B56685FB405FDAA681AE09D8B53D0CC661092F9A13F89173\
-1205CA3F7CF939DF632406D37C444ECAE7A2A293DCBA2F647FF9C775465B70D663878090B0FAA2\
-C48F5D681FA1B0FDCA11FDDC779B47AD2814657585C9A4EBC5748B48AD7B72FA5E07040DE0914D\
-4F8AE04806835879FC0BD0B5B150A157C0273192B0779D37D0B1AEE1043BECCECD80A8690EE4A9\
-207564E5B703559C79FDD16C040E8E60AC42DD4E2E9B66C14F2C44BFE7A360638ABBFBDF1C4B31\
-53B81BA783BDE2B41EAC104E24ABAA66C83D69F7F5143F776C359335AED8C5AB47256139834C32\
-085A351ECAC6AB4F8DC4F097B91FA156F093A93C7CD5EF5CDD5F4BC1A650C2FB0E7ABCC97947A8\
-7620D619DC999CEEC1796D0325B0533BC08E870DFAD00FD518CFCC38587CA225A965594C88B969\
-0D63F37231BE9BEFB54427F76E230792DB580C7835F60E4744D4B9FA2F8BCCD7CF35B6345666E1\
-753B538E276E09966D41F3B1AD3E249031775B448A1BF1C6DBFDC643BFC5F6CE3D670F4736ED9E\
-A546D9351429DFB9098FBB06EF908391A6BCDFDC6E1DD3C5CDDB0E157A26C8D7DF8BC9808C7032\
-9FB0CBDACF5B6D4BC7A5C69B231A145F15B1BCDD16F9BAC45EAD69D54281FE1DFAD35CECA9320C\
-068714F99A21BD61EFAC4B64D3:\
-7D08AD57B93CC590A028ED1EC9C32BE0713C82EDDF6A593616E681DA0F0E6E00
-
-95315A26C618D637F1A28403406D9E81C76D33F8BA62F55F2EDAC56883534DEBD8B83F2675C58D\
-455747473F92178B2A3E356B3D02455ABDBF32E9AA934A5A2D85BC87799F45C068C137E170E8D1\
-D26F2BAF3551CF367AF42208DC66316A93D4B594C96AE0D4C5B4843D80464C35357926A3FC7531\
-AB7E0A0C3FA899481B5EEDA5FD3193A13019DB382860EC6F6C842A1B5F9E90337403031FB4BAB1\
-F2AF12171793DBC5058E8D53675A6422A6BD9472828922FC36F05A4989FD48658AF04DD0B26FE5\
-D614BDBC05A2046E28502F531938AA3076200EA90641FBA11DAF84A670DABDCE3831D50D9DC46F\
-F3D302B339ECD9D2465EB65A6BD0C65220025DA2BA27AAEF32D4567884A76688322CC997AF5FB2\
-DC15EFEE3011E4069CFC3E04DE84D181C7D2FB48E156E0CF46B0B8A68E8A2F2EE49BF5F75FDFA7\
-B0E615A0B8311614668AB8EF68FFE2D72A074F3FCD5384F8482DFCCA534DF2434AEB2E2D3CA69B\
-D98BEB1479C48620A8AB64B31D94EE0934DCC3E1B459D3A5CA345A7B91DC0B797542BBC3AD3559\
-C5ECA7E85B427457299B57F236CE7D836BD850D8024C50165D3594B9F68464C0C16AD7997825A6\
-E0792D0277C21FCE28C34148D65C2CAF04C4A1852B79F365DDB50CC038B3C0B8CEA6B6BF64F083\
-0465724CE5A2CDE6EE03C4BBF6ED02F4385156AFF9EB9323B820AAF32B511DEA73226FF6514049\
-AFC462DD093267A861CB3C77DF626BE8CBE5C36AFF3ADEB4C51A4E58F8E2F2DE896452F49F4AE2\
-EBE07D9EBE7B84DA4AB48829451F6F0EFA6B0775991B3E8271C5F898514B47F5E1FFA24EC91AA9\
-E261E69EB9BBC77C75B928B6B70B8BDEBBCAE270B225D0E8FEF3451A202B82A6864776C3B4DFB5\
-6EF99D2FABD30D0BD00E2D77EBB1B47B6DE59C8D82D60149E772B2F8FF73898658207DBCCD402B\
-26BBE2F044AF68E05ED5835EC787B359C6BD4E10D13418E6552BF31F39F5B5F224F578AACE7CE3\
-1C4F19CE8ABFDF2F5CD1B2402A94A8B07B1A887A1AEFF95FBB0F1E4F56AEEB4E3861366ABAC0B5\
-F1E8B76A079F5835FDFCD9AEC107E68EB00B024FA537766BFB9EC7B211257CD894B74A216FAABC\
-7937742A8548FABB60417B467F9583D8800CE965305D56E17AB6E5A78593E07178F6B3CDEACB74\
-D39A909F7745033BAB6F048480375683F5595887F6CDD5476BCF016878CB991A5C2E05E5B7D08F\
-CC0388573D75284B1F374B97388792EBA1DB97206BA34377A5EC482B83A58D3D113D886464C9DA\
-F7FA3E7CC34C17BAF560FA1363BB766C4822DCCE82F391A759870E28BC0C3FEA07D85ED67AD2F5\
-7CA5868A38EE2582EBB3981044EB4C9DE914759BDFC48511611AD61A7E4DFFF23C55453E03627F\
-08CE2D8F8547E43C42892464A729DCBDD01B3E9C7ECD63853A7A6C0AFC21610AA3CE40E9ED5860\
-C1CB4A607255B9C68D211F3EBCA1:\
-4B34FD24F0F9938C0D3FE66CC29F90963B03543087D1C9D91ECBA5C963C3A5E6
-
-695E1DB4DBD8CAA02EE634A3FD177C3A2E9287C4A5B2AA19170E0BEB3BC064659412218EE812ED\
-18B44A23CAC021CA32CDE74239EBE51CD8A585B8349E3C93943F09997836A3835AEC57DAF7A828\
-D9B797F9D293CDD5357FD65F54C4FC525E442BF85319BD682308C7D72328E7EEB36CB926640EEA\
-F116EDC014A6933BE5ADCA3733F13CE240C41F50601930E14B3A26ACAAFA25F1B4D0971993D533\
-FC9698DC97F1A932A0A543596296AAA1E09C33B15086E5EBAC4733C3679AD7FECBAF9F056E82B4\
-A854A71AFD5C6BC51A938752346DEB2E06C54F11AE829B99880B8859C4779C33239B8B526E0E61\
-B75033A9C09DFC533D906C5AB6F617B46F199B42964E92D6FFCB31033930F1CAA74A74F41E64C0\
-03232C6D6D75E7209FF538DAFED90899BB6425E2FB77178CFF14863025D3503954B5FAFC7E4C02\
-FA8110B131E79BD7B120C8757E1BB9BB72856896CBDA5642F2624BE64404201515C493CC1A5906\
-CC6BF4370A5A60BE18F398C570B901CE0945C84AB2AC55627AAD6540BA461BE9848FD96F8B53EC\
-9DF4970C8831D2ABF0E92357437416AABA2FAC81470358B3C42389D6317ECF65F41B5EA676E06A\
-1BEC4C83CAE628349956608603AF32C4B292A05F518C6B5127F216245D80DF929BFD28C89DDD64\
-D9AB0A9ED24FBC60A75FFFAF8118160F75B64D7D5A3968D1200D484CB67ECE27FD2EC4299A2E3C\
-A58066570BF3B2F214A131377515FF589B1EAE4D78BCC68DEB1004244AB811252AF791E61E5589\
-CA07091F5F9117535592B3991A9BD27AD791732C777A15DFBE309286CC77CE61A2711DE5EA58CE\
-5EA5A60BE2BFB41C1EC7ABCA0D7C51E7045A0C01F07419E277BCBF7EB0EEC20D9D06156BCDC377\
-7BD3A56A1B58028E7CA20E1FD51F41C8DBBE7A9FDE46EB5DB3580DAB00B9637DF4E3BAD671564B\
-E93E73CAAC580A21566E9C7248F2A313B094BF03D904FCB1D04E64801A6A22A703DEF08DC0B540\
-20C31C0137C77A4CE189933C451216DF38569303FE75CC80DDACD26BF2E09A3D43683E7CB0AA52\
-6EDD2F88FD1D6EC54EADEB0734103D24BC58A158ED23B7CD05CF59F4427FC1AC26F2C4710389A4\
-E4F1818B25F19C59A742C6233D92B34F4490A5ED52A4151269CB7006F70A787CEA40C044088554\
-97BF0C3F8C24A19E8AEACA1367A8C37BD4AFBE2FF2A4BCDDE413616C245E2D50AABE967ACA4E0E\
-C6D5747265A38298BAB9B920F4DEE454377CD899A82536ECA7B3A021FF1E05648B6257D270F1CC\
-01A9CA609602D9284CDB17C65445D623108A9D5EF86EDFC2C85F2A27B005B85109E01A1E716B30\
-51B801484A1C1F7CCC30931F99F7FD41ACADD68BFD0F89487172A7971626DFF0A877974892DA86\
-F9A616DAF67F73DE452C6A984F9C82DA61FC023A60F43373AF900EEAE581AF403F55AB1A3CC12E\
-39E35A7785405E8DE5BCBDA2E7E734:\
-40F535BD7C0542A3ED6E30440504B78770B48D31F05A6AEF8747F4D280E47B82
-
-ED5F341CF8E2D40A804DAC57107019902C7598CD296923718AC8BFAA3952F9FFBBB3A47C460FB4\
-EE29C847B4E1CC22C4693C5C6903AF633FD73BA16A1D9F42EF3B4B5B16B7CD45AA5E83C4335AFE\
-14DAA263B267D7B01653335A99E69EEEEDBC93CFE453856850775A7A17CC27A2ACF82614BC4BFB\
-5118C937A52DE8FE4FCC7B0F8249B80620A17AAA8C103BB0A026F668BAB5A18F1AED0798CDC2F1\
-A77EBC8EB772046FF2327F4DF04DA3BC16B132AC76BF2E20723DADA7C4997702FA06AB191FC0EE\
-0B50EB2F9374B08F8CC4E06F6F57502AC3A55EDE1AE5D9FC28D95A1BBEC77503E443627458EEE2\
-18E87A3AD66E8D169D1F2544B8F4C6F4FC43B1A5795CF1E5D300B6038768303C8E6A3E983A9448\
-A5FC45C39B43E715FD87C63E4F593A420471E771083D0543FA834B6332372D7CC90AEBE96960F7\
-078D95A3F2785A918DCC9801269B7BB967C7FA40805FC91B83526E3B477C7F48D7535EB34193C7\
-2B14EB6A7E7933323AB52BA887BC91C497EA2AE61B824F9C17BCABDA07E35F9616BD75C89399FD\
-8A968EAD40B15B20A1B80334246EFDF3D651B5381988C1685CA229A01869CAAC03D41D2C7C2FF8\
-CC5628C66A749FC7EB69D8D462BFE87E2DD5D7C399377A8E5F5C06D6264D228389266F2EB78292\
-C429D7DB5667EDD578E4A87819069D912A3E2DBCE9D6ACA568A84F331B649F4D16596CA6500C79\
-3AD9FA82D8916A2077ECBB22ABBF5EA5C2B7CAB4C8BA0E360F3F4562C009DA71E23174A45A0457\
-A30A4B2A0B46DF213A64ACF038B1A882FD7E349DE10FF0F7D3579A75E15831AE597C2CB1C64834\
-9C4F5E340063B84361D94C5C4243D4C2A5818EFD0F043F424798932FD1F2DD6E44442DD3894AF1\
-D77549B146D43847293DE9BE5CC0069F341302409B33B0724C6D95A5566C267EBE623781595D72\
-A461FF8CBAA40B3C4259766D7F4F61ED404B2D8C651F6A38F6F757E219864500EEFB9DB9E9F1AF\
-0D5197A1A2D615A64C03DF7D7E15AD48CF22E75D1DEE51A44CA15025F4A9849C8D0126CD4B74FB\
-E444A0DEAEAAB2D11229DF6982F5F0AF95D672D0C84BB005D9FF5846E7C8703E439CA9941AE7E7\
-0E076E907BCBDC209C9284FBD6A1CF8549C90DDCA992E60FD29E876C30E6500EE8ED31FC752385\
-6F84C22A2553542F2494038953633ACB8FBE11B87646D81D366DE4657A85BAE1DD7EB820676928\
-227518C719A310C9AA97E5FB39FB4EF03631BF0D2F51C82565841B3E39C5E7D0CAF07D9BD49CE2\
-AAE1EFDAA9E8D9C6572B0155BD9C6474EE97B9FF7FA167A06DB2D3CF5C2FA0DC8CD780CB0E1F04\
-539E24D1559F0295DE3802DFAD3DCADA8274980C6620B39147B5BA75C7C1D65684573FA1FCF26C\
-4310D24ADBCD39FF34EB2D616A7FD997FCAF4BBAFF356978D675767E2CBCBCF772B55A71D94EC7\
-D50166EC608FC171BFD96DCE340D1446:\
-6D71EC68FF4949433604E7699092096B38169E18AC91CA5B24A2BD63011C031E
-
-C126AEAED489F433D325FA396A69920B4940CE3D8993369F8B776126CF31D9CDEAB316C3028342\
-8BFAD19CEFFE9AB9F9FC589FB7C0658C5FB58BD127F9A90C4C60311D4AC435AE0FEDD241A31091\
-C55B8ACFA4D89DD0053C43085E395C85935327040D950779B3D6E58BA668EBB191149331BA68CE\
-7AF35EA27CB68AECF9D6EFE29BC2072FB47E54DAD157DD17BBE7F09748AD257DF67B1A6553A366\
-E31BBBEB5D969D4B7CD348D1968D84813FB5E1981E873ACB17348D4B31C56690101AC361E5AD2C\
-4BEE75B3DD1AFB68512D30A226F514D38CE51A2047E53D3CA91A4794368F6FEC1C191E2C205915\
-E1B8056547C667AB77223BC7A22464FAE4F1F5058F5AEABA1461F4B4E97861DF37535CD487AA5B\
-9845DE89AF6DF844AB86BB5893D03ECAE0DBBF1ECCD04F8CC286C40A732E4C9373BEBB969609E2\
-3A236C3B74129B893DA55C114432032DD32DE7304FDDCEDDA0C6217C11EC9347D7423F7DB1B94A\
-1B8686EC6B626CC22198C1DA6FF01E7BF447F3AF32E55AF453CB500EF9EEA4C866CAEF142091C7\
-F11034C1A755E01A35D5C9C57770238239B7A0402FD8F0589B0596E019F8472A5173E86DFF657C\
-0A8B5A65F85DB43AEC400C9A0F7C26A489026CF8D59E7FA867EB5B3B89F01B77C371C96E65B52E\
-2F8F6C362C766C83582D51CF89040ADDABE70396E81569897BD21C5F6B50B95E62A6D10761A957\
-F172EBB30E28D192AB19AECF1FB8041B5C95B07FEE75AEABAF4668018A157F8C8246D886E30C29\
-4466209CA296AA79F01D99CA518196DC107CC73B4F1134BDAE068159C9D5D68BDCA71B2143E096\
-96209A597752DD880572082409D198A9DDB8257FAD0A47CDEDF80584FC5487BA94CE02271B21A7\
-8B371A2B8C9B6FF0EBBAFD608EB593255ADE224E213114F94BFDC985019D413065762A1D8738CD\
-EB84D5E24C6CDBB68F2C9BBB16C9ECBE2B796A51FE23BF5C945EE3519F50BE6438F83012492290\
-093E18D6BD69C677AE9A66EB25FA8FA22D080AD89B3BE356A0A9FAEFF764234128B11FD07F3CC2\
-E4D3921D0D04ED4BB1206EB63B7C17F173FCC2F88F47297BB33B7AB3D0DDBCDD1934988B87E089\
-B090EC6381CBE7EB07AFD0406FB11610305400B3C2659905542D98D697BDD7652BA039F9D8F8B6\
-22A41490A7CBD7E8EA4DB50E8225094ED8052165F3DB97366CAA3A97C3CED84F0DFE18FCE254AB\
-A0C8D12EB46E7713D62D404D67F9178FD13DAC633C7092A0E27B148BD972B0BAC0D7C8E61A56F2\
-C27E6E4A29B48029224A62F617A97B265F6AFA8DA77A7C0EF080BAD36F8124C787C3D2C318C7AF\
-B9974F596E38C9765DE921728A3C495D13FEF0D99CE269979AD075703F1C784BAA6FF6105337A2\
-70DF2244AD2F19EB243E3B623382260607546ECEF1CCF3C5B6A5425EE9D565CA8AA70A5E1AAF56\
-F3B93E5D7F8E763D4BC2EBD2C25997BF11:\
-84CE84165BBB95175543526DEA5F0C97A4308D2776108D22ABF842ABD1AE968D
-
-9F46C2E21D2366A40CAF149524BB4CC51DD7E8D221F86E68090EB9B72BCADF0DBD1E00C8167149\
-86EEC2CD8B9A38D8061746BEAAB4F81141CC57FBDB4DEFF3FF67439F451ACB4655A7A1665894F7\
-B01450E8CF23FD443B107B4CB83C62A0E4369584B59AA57A4AA758EF200D0B48E50D926A185C0C\
-691EAA2A5B30B1656469798120981393A2DE461BCFF6E78656C22E5BB599BF92D16AE1788D0DEB\
-2891083FE095D7B3A6C8257A07EBB59EB517E0090C372BCC0ED25DDE88803F35FDAF12C657717B\
-10C1C1B647EAF9787237B445B4BEA460F1541B44B2E288591CC75FBA04222946C2DBD9BDC674BF\
-5C8D4BFFAD17248881460C7A95EEDA2548902069A81A48C84D6366FA248F4751871EFB8F238B31\
-0965EEF21C1D0D0ACD5D50D059B6B66CAB482585125E46D5B637D937649D795911EB1DBC4C27A6\
-988AFAAAA23D79FFD1251F5B46BCDE7A0A19DD2F2597FE3BACDA148BC6244938846D9EA16455E2\
-6E1590B6B428025B8114AA60936C7BC904B47689A4F4451F0BB3210EC7BC65CEDB6621BC10D937\
-94DD969F5CAD5236A1F0E4ED224C6DA106EF63C175881F7EF4AA96B9D61666D30F643E53C9E3EB\
-701847C0A62263EEA4094338D8DF317FBD5C8D6339816D8F2BBBCAB7E8E877810FE89B6FBEC7C6\
-1A3F0BE7488096FBF807615CA8AF1057FFD467AB836956A1FCF4DE073FA1B8E2C55E75873AF1C3\
-4251CC288BF669F75157D2D0A79885FEB46791AD61E7459B3D532E88E04B564ED4FA72860A74CD\
-4342FC2E35190B1C588B997ED11148726D4B943A123F34B7C6248836D54EDFB9416F84106E4305\
-6CEB62618BDE8DE862D6F972069F7AA8B11D5380A13451B4E8AD998ACAE76E809465AA2BBD56E4\
-8F4EEBEC27BEC0CAF07CF00F9FB2CADD2E8E3E15B851F49B262277033C4F1EE0989D928EB93D94\
-654E389ACB8213A2FE8786D9C783E09EC9693E5916A1D5BEEBCEC342756971A8DC573960CD9A2E\
-50EE53BEC7EBB9B1C3789DB2290930771DE7149C13E192B9CAE5C81CF8D7551CDC7650243E3058\
-E4C3F9422C5E46764F10EE19B7346078F0CF3E4D65BBFAAFDEDBC55B91E9F071FF8E143F98B60D\
-669D8A80A9902080AA05657892BFBA92DED6852DFCC3805850E2D952C9E77ECDB2696F44E722D1\
-BFF3049E7F9F55491AF44FCA64F17CA6DC1C1A980371E9F43E4DA07B7D8C28E4C0A77FED054EDD\
-4C88C7635CD63539926C961C1182A243F680898E34BE3EAACC8DB4545BA623DB0F2DBA2C747541\
-01A952A8BE54C5F2985F088C98CB00527BB42984E8C609A73C5ACA0B575A2B4A914EA6B782B14F\
-CF858E1B3172624BA4CE0943DC70AF09029A755E8A613C66C5B29270494E1960080A0FFE8697BD\
-56019E4F1F42F99A83C23CB53DEEF877955A653E2621CD267C4705935569BFCDC2B87AA191E5AC\
-5588F0961E39E9B668825BE62DA329D6EC44:\
-0FBF1D93D23BF1474C044E9BD979EC7120F98604EE006EFFD8C33C0FC59C649C
-
-0F8D71AEFB9E58C7D41B456852145204B4F3D998EE65A47161815478CB2E88E94350135C331126\
-78D40A7585E9C519C25ABFF0F1927717DC9BF411E8D12ABA65F34B9927A652EDB8F129DACF3C74\
-4FFCDBCEC171E862164B241D63090DDAFADF41910C3A61EDE7CE62427950EE15A3368192038395\
-A98BCBC6FEC064241F165B645CE9B2974D854DFD1D8C3BA6B294B8AA91A049A7FBE85ACA6F224C\
-AE72DD42CCEDCF76159569DF29CA02F4DF914B875E87895FDF2740DAD1671E6866F9DD7CF173DD\
-FC88890B0235FA483873685DBAD323945CBD2448803D54AC79C16AA90D26DC70A84308AC019A93\
-93D78A09503F62B7819860C3397211E56C615621950361DB16D22BC8F9F316D12FB4D492AE142B\
-42DCE04958F6840D2A48F055A2F68C32F786597FEB04D1E1261DE7CBCA5D34A085025B66A7D78A\
-34F0DE8619A136C71ED86730834E88E9D2826CA87B016ADA70A9F06844D62D44A86D1EA8E872C4\
-06F4542CDE275D0CC9E6F8A4F05CD3814D8A50DBB8117C0E731E9A80AF34B6B3435000DBBE81B7\
-1E715962073057B2011637EAFC6B45C71CE5EE97558EBF171CC4AF74BF1D2747CE5DE49557F686\
-740BF993E3E208AF7C033C23FB2616047935E8AB73563FF47C7A1DF274CACC96EC77F5186E3E42\
-3625C817831B2F0BFAD273AE893E59CA08F8B9031238817781B52243CD6A382197C71140BF5A21\
-A3E2B3E8B6779AFF965ABE7EB135C87EE974D7D8AD3902FD65F55E01D8D9878F24F6BA4C1DE634\
-98ED65A2ACD9C29194F30B41FC5B2C0EA0C86758970EBA68AF455B358DFA3E9FFBEDE4ADFF9FCF\
-B184E99A70DE24D65B0019E98F9F00B0001E64BDD39B3D0866F6F1DFCE5A8160DC3520C940262C\
-24B2D06A461B48D1311FD2BD83FE229ED9617EA6B7C880D7852DB2B74966EF951D0B46F02D8F4B\
-E1603681B4ECCF17CB4F7BD3552BFD2EAD2C41001A52883707C2C4382576EECF0406FE84993888\
-9688061DA54EF59808CD947125D29C27DCA01A67B0C9DA4211EACF9EFE1B274BA4250AECD07C2B\
-5994E0997367818C2750447EA3E671911622B2FDC0C84CF11A1345420C2D2B9D1161E0760BF666\
-9A36D6F5A571B11B68C98E485CF2256A8DCB50CAA2FE74CF99530A1B51265D3EACAB5FDD27793E\
-18479B4EA782FA24901A80B6434108DD1DE0F1B4C80C665EF6B52B8403DBB3A553D550D43DF311\
-8BB7862D4AD002E87FADA601728DFA97ACA4A15590265D825BBBECA73ED15A4E62A3AB7DBCFA74\
-56CE2D1F3B1B6E8756E33F6DA52EF56C35BA574E6D250900841EC42C6596B8F135C3D61AD98C54\
-8E6448975FD5EB5C9E69BC7B6B646FAE0DE1AA96AEB2058491123B17BCFEF67DA21BD13027FF9D\
-1F36B2C91DB41BF756442C3B72326C6A02EE087A75A73552CBE231C06B5B0C7D3E9180F9445542\
-8FF8AE90B08F61E929BE4ABFA35D7CA39E8D74:\
-CB0A81684E5369ED90D222E5CE73E899DCE5CC763A044D908D99B9F754D915EA
-
-3B81E34BFDF7EB8F91A1BF748053E95D304B4857A563C8FABC509DB7C40F2D0C44F98FDCBD1711\
-164E186F885C720AE6FE4CFCB4DF85E4BBE30540FB472338CFF09DD725B88F4EAD30640A48C0CC\
-8F948CE70649946E6AECF38BD4228CBFA874E6D652B9728DF1FA08FC0E80BADEDCC74042A6ED13\
-D2A64E5E595946920CB7EFFA2960A2EEFE20871D215970233E1EEC8F2F3F1D7A32D5500414A2F9\
-D161EDB8CD2D48966532D4E091F704A440C3C35697D6C3199AEB839DBADCDBDDA8E08EBD440339\
-D1CBFCCAFBEA6C1EDFC9443BCBF692EE4052DCC014A1DD529FC86A4FA35D72E63A5A45783B3030\
-6F7609402DFC77787C360E400C0BDA451562CE098EA9F671C637BED7E254DB2E75C0E1D2C3A285\
-03007069F5F54EF776185F50A034D4A2AFD919EDD984139A9ED070DA9259C5C1A091334361C35B\
-5183EDCC7B312420993D2C7592A693491B6C0834EC293028112DFF0A5B8ACCFB197E996E97D594\
-DBD63DBFAAC2EBECD96F73EE3CED050282AB9053EC9B3463DDA1C5EC7C8936BAC9742E9DDA82D6\
-6D544CBA9B4F80CE8DC32C80AA430C00DCEF65EB9720ADA8B1B762E502C3C1F923F2679CCC74FA\
-430907ED37CE17B89ED75DA0A7B32A376D4345E7FE3587B43AD23FB380067C9AE736C65656610F\
-02F58D1F78D84C8EF058E6A7312932AF4A48E0E0BDAAA9C37F41E82276C3E2AC47F774F1422B2C\
-031BD6BC630168524604C5D65D00656F863B997C8FD9E8EC99B16016528C229EE81D0E20F01BB1\
-C5CD512A105BFAE82FDA1715F6DAF6F6E044184A09AFE96DBDD7D2EB7729D56440656989E0D4E4\
-21D951A5F68EB5B4E3FD4E5F1953A4ED29FE5E265F2D7BF56C3FDE493AECC8169AD265A38EEC98\
-6DF7934389040F52877221C34A846668F33EDD663E4B6D08ABDF66925EDD743DA3BCCCBBB98997\
-4201FFD633ED693131762B6D2790DC65AA050532E692CD7DD2E0FA793B5E4020C802717932D3C9\
-4163DCD84E1D93F3562D240E3FD74C28B014192F1520F5EB69ECB33D2904A76EB95947A7D74654\
-3A0E09E1362239838871FB117F4B1ED20E6CCF30524B3DAF592E3BD8F15002E0A10557C12DF27A\
-55374781AAB0B2A20A980BFBB72589333A3C16C3DDE19F727B324F3DED460062EB78402E303FB1\
-846ED84E6AA01CEFAF2C07569AC04CAC024F50B511AFF91D22391AA81E7C521DFFE12812BB34CC\
-6D0CE560820BB219D2063826614A9AE8557F34DD5C8E0DFC46AB1C321D3B3A4A7CDAC40BD1D728\
-0F2469FDCB6CBA607816D668057CEA4CA64F881CC31F9308A1FC84606C1C28E3E0BD7DBF45E430\
-81C04B07804F5E0F91B1EE298AA6B9DED88B1FD920D6804FAA8D6D0840A4476894ADBCA71B66C8\
-AB46DA39D0849FE4F1134220B4315A1C7BB622D95B6838D0561D65219D902989472ECDD0F9B31E\
-273C95B96BE1AE42089639F72915829E629A2E15:\
-F978717338E5BB3F578BBD8C4587CB0BF84D9A55A129485250D257338E1D5A5C
-
-88DA2C023A73898CC6EC26A0901F71C388B18D213699D1247A23C00704880C6B0CF835CF5C5CDD\
-6644D9FA95369B4A1E673162FE84065929B79E7718F53C7556B1A3A7BEDD95B68B57C5024070D3\
-0E73B48AB44D98A172DE22AC1CC28F0A64CD6ACF5A5CD6E1A7B42AEBD69D61209C32F942EEA253\
-0224ACF0A7BAED6CFD1CBCF074506D5AA20E1D8A8AF192C319F519753267599AD8C6E8BC1432C0\
-ED9302B3A72A77CB4109C2E312A3E2017CAD78425AC2DBF4E4286AA9411A98FE769E988FD60025\
-08B193D605499E120CDE012DBCDE8DCADE91A7978F7BB6E5071257189291951E6D2AF09EE0B435\
-B944AB4E2D9BB342EF570966448214389D1978B0AF8B9729E6200C583FF1926D998906628ABA8A\
-1AE58CA5BE7CEC73593B2E7CCD8E33C4803AE3FA07374F1DD5AD0D883A84C76E54A6C733BF9205\
-A9B6446E2F5015ACDDF52D7239C4DF8AE11F2BB02C09A87F88CB56CF63D5AB8451961C06B8361C\
-148785F6D7F2BA78E27B33785BE64C403A4C9DA51948573405EAB99C0778F3B1AC5B877B2CBB79\
-38833FC4DAC613D40352FE2428FCC6D3152F46F99E206FDD7618A3025112E6A4A1982CEC8315FC\
-59759EDC3C7D8BDB211A6BB5088CBF65F2A54D6E3B54D75DE5561041E2317EAE392E18847316B4\
-184A80D31C97109322095728728AB923210DA7734469E9B8E762EC28A2783A504EF57C84C1DAA9\
-F873AA7C968CA27D78DEE8CCF4BAAF24685803CF748456702899F3181A199C95E5878ADAF0AB52\
-37CE8D9BB3962B3BCF511826F20AF064A5B50420AC32C81937FE6A318009C4F92CE35FF501887E\
-0F902FD8D9B5BF7E0D30B40619D2E9832C6BA02A2872E57BA4B5A533659CCF034D8E72C9E23EBB\
-3778A0A7F102361C79F25273EDC27B7D63155C0A70644A0EBEC634954C7BECE6CE027A8A74E72A\
-BD1B7311D033DBA9F22B798518822A7383DCA72ED70D00700E9BEB677C5F0D5D3D110D179F407C\
-C1F00D06E67063DFCEA0E113C1D7F5822CB81CB9D89FC53B8A679FCD83A1774BBF2B76792819DE\
-03909AB7F38FE447600B453AF0E261EA5496F91E00BC594C9CD37ACA8F8D784D44766E58D9C36A\
-0C73EFF2C2D67014E6F80D3B55D77B8B97BA2C30DE7D3C4C0386771FB6AF3B21F433F102016409\
-BE94638452A9B2AA79B52F8A6D2439DB7C71F57E2AA1A6915EA0993E5D203BF85EF5E914A21C5F\
-8ED05B290DF3BE28A5861398402C4114DBCA88A17FA0ADEBCC223A86F35B989DD046E31F130282\
-D2FBA623636173B71AC85D45FCBCC39E4D71D817038BB50BE88E91717311E35AFE5C58B57392F3\
-D1443AD25483003F02573653878B0D3271931704EC0AC5E47ABBA1B57DE9BBD0611708E6A7B2E1\
-FB8A468814541357381A5D24BF1042AC9BF0CE48A674DF9CE54D5A0F107B7DE23E28D3F6B87E93\
-87CCEDA9C2402041E8C5454DDFF083F99A83045FBC:\
-503186570B08E394FF436ECE9E353A899D32506689AFD3343F0EA72AD6446D0D
-
-58755EEF96A6E5CB9904BBB82508C0D67040B90C60DDD27EF96586175B6F23E60D5B186CA6C2C4\
-EF08752D5D5F4A4FD8D62D5D108A2BA0471FC2E6DCA7C9E4C95812E50073EBC8A6D0E3F5D01E99\
-427428A0965E97FB5442F13755E19B575780D380A362D9EB6713550756AC9B2C2895614C865810\
-6E99A222ED710A0272B23C5AFE1EB3022B258D18CE4DCE181FEB79261497EE61A89178D332431E\
-C02065FFAC5FD76EC059D8A3C2BAA5E739D0EC020E4E0685047EAC4B53C54CFCF799753FF61552\
-DC1363C06DBF48F3598BD1E5ACFCB0E13F102614F6F4DBF2CFA197209ECEEA428F44FC74B83EE9\
-58BED64107E8FB6C18A5EDCC3F4888D5A872751A71B07591BE273788A656C4AE162E5A7B0EB43A\
-30295B61A8100B337D8483B62DB2414EA534A4E4C0F1D7FB13F25C0068E104B4A92E88F579B6BC\
-A424DA036227B5FFCF75D4BCCDC91A97D32ED8F781BDC33D0F572744DC1D1A2F356CC2ED23AE2C\
-B22B149D885461B61650E4BEBD3153A15B5064B3CB1863903D795A1986B6F13ACCE1B2026D431A\
-0F60306D35933C067C25B93C465D76CA117234057298840163E93C4BE77EEE2EEA24E398FF50AF\
-7702263FF34E88BEC7292973130DD3150C3BAAC695681B0D2C6804B40D80CDDA9C00C12B7D811A\
-7969888CE29FD20F897196471050DFA9985156F6732F66F3F4F128A84FCAA3A4C92E20543C4EAC\
-58AAF14FD6EF769306AD5C490C14AF969686FAC100CFC49570684423648F74F5D69F7917052465\
-B92453F934E911838BCA1021C71FD1390C2613127F93B31CC80B7DD2CD8EF58E341740F5467B35\
-19D01E2827FC0A65BF902FCBD94CE8B09BB78ABCAF6E7EB7E693994535D15E8CCFBC3D21AB82DE\
-DC3AC3081DA7D84BE13C8B0E99181E63E9E9FB1765DF1116FCBC2BF3B67C8749812ECEA1AA4964\
-29AAA8519F61DEBD2E6050ED9BDFFDBF2CF800321B5FBE37930873BFE189148F70D0A1ADA523CD\
-E42A1401D7E439D5324B045675466C3E8EC22845D19D368F0FCEAAC3FA7F3D5355BCF7ED8FC233\
-2A87A413744A010283EEA276D02C7CC6D6A50FBD8B66A8FAE9C67381C0CDDB56FA456F6DB4940D\
-28C76898DE93150073C348F450C497F259EEF6CE4D9B36DC8DFA4096CDE7AB1DC3E0B6282DFB42\
-ED2B85041FD7DB2AB1BE12F63EA15053BF6C665BE0E58D9B2D936C9070064CDAF4CD0709249D42\
-6060BCA9EBF9426CA3FC1DD5B68B8B9A37BBEFF5297717AE668A9E8E861532972DB6047442945B\
-84C639366863871129CBA3E20652D6D89899D2E8B7548F989C7BE81F4355E5619AEB4206A0E04B\
-D1227DDA12ACE2FED4168DF9DD025219F436CFF47D977BEAFFE1E3B7157D7AB7ACF8DB2152F8E3\
-10F5AAE7CECA51E70D402D4757D9349223619C345B83F2C74EE497B957362FEE549E991B84162B\
-8E232EAA6514E726226297C103D2638F2A1DC951B4C6:\
-CAA390A8A09EE7B7D32346D3644E95BBF77EDF017775B8AD47F58722C2BAAE48
-
-0ECFB8586C18DE7B9BB2E223D93ED47EE12964582480F8703D10F603BA655DD0DD21A9E2864972\
-FFF914E921857C6962717AC82518581241F1EE13FF515D0B73F6A13AAF4F69064E061112EB4CC5\
-DD30EE53438EB8E4A5A2E56DA0049A750341D23D660B69F43A976267C53781A47501173697213E\
-BF3AD79C394353E40B074B3F0D9B01E3E64234B81DDBB9442857AC36F8107283F53DC6EE173990\
-479EF5DD913A46F6CCBC3D8FCB0150FAA1C155020829A46CE3B24B4D91DF564058399EFA183D8B\
-0D9FC82B9BD1AD3A2BFDCACE47011E8B0B2C078CAF0BD1F58FBDFF27E6734BFB5ACB3E51A233D4\
-135BDEE26DC929B77F4A3CE2B62E6E95ABDC5D24EC56EA3E4524ED2B79AE43BCD61B7A0ED5DBB2\
-BE870F55D49276AB9B6868F28FE7A5127402DA1A153D69D9693AC5FA3894D8830D74E702FF0E52\
-4BDE87FEDFAD40D14995A7A94C881231B08C39E3BE535258C823A4F12B7F56797891458891B82B\
-6A8BB28932B942367FDAC0ACEED6854680CAB35EA9D0F9CC7143400BF1BDB654B84A9552925D99\
-623B5120F7A9A82E83D1A0668A5D1DD8D68F4B5DE34D4BBD34D4C0A84AEE897EE103CA6EE88356\
-5CBD2B0415CC668FCEF49DEA550EB569C31E4B565DD0E0AAC73E4C48460CFAA969F6D794828BC8\
-193AA0F30A08212FE5CBC05C89DFA5AC478A016921ECB0B963340276C2BF14A836C8CEC999AFC3\
-E0FC175867BF0BA0AA09617D5C38388B86E26611312368ABF78089A345B022E7E32B4E3156173D\
-10750D401B6C1D907CD127FC9734F64DABC1457C3AFFCF2F41D839AAF165D32BE40D8540C581FE\
-A39CF02779CFABF9C269B21A44F085AA077308D0BA7B398E727C1ED023F8F9B2571D0A0BAEF408\
-235F1FE5BD219F3B015AE66D3299BF1434012A60E004EEC076939D014DDAC568F374707F75538C\
-D717F232B9BF88112FE2DDF18CD0C25C0332E46426D4B5C119A805329BF1EAD2837B4984264060\
-4E4A11F21090007210B3DB6E40195ED9BD17D2B774AF08822CE3115E08FC5EE9A9CCDABA8DB673\
-ECAC0EB64CD155B6983FE4AC29C2C5EA52CAE6654FDF8FCA117B547865E13941C5672940FD26C7\
-2E44F5E84BF12D4774670FE3E7035F6D50E58FDB639B0783EBA8636B6398F3C7DBFD1DC70E793A\
-2E83C044F479C84A854CA26BB604064995A0DC9206D619D84F2EE6CF7B929FBB39B3C5AAD3E7C1\
-ED66EB66E93233A52D902FDFD603610B30F3C2E100DA258765CBEB21F698F9637E262D0142887C\
-E83227793AD5820C1B11F9D8D5C9A5E9AFFB91CEBF5E50223978D84AC944D3EB71F9F8F2BAEEFF\
-C8C1983C43998AAC89CC318BE364C3283632AC1A5E2712AD65B2E90E74570C93DA67B17A945C41\
-CC8829A11FF472471DEFD598A38A260EA7DD492A938C1E7457AC452AD7048A5731C89AC6444E9E\
-64DC461EE2138FFDB95E954BF30D2291161B68FB52FC1F:\
-61B399FB5C54FAD93B8082BA8F430F2183A77DFE3832947A0723E24751B51C75
-
-CC75458EDA82E7DA1DB1D8C48050DA95D2DDB8B775C56628D177CB6F28F5F871B0FDD75E39708B\
-774B9085151647FF25E1F0EAA4E2436693272EDAB0B2BAB5AD1B941D70969BE27AD7A11F5ECD79\
-535EEFFE45FD5E27D5558CA160336203A2D1313001BC8D964481258249FF971EF4F2175F19911F\
-4E68E20944C98C1DC5A68AA47DC67338FD3C8E706225BD68A51D7A424C844B38831D52D12C64BF\
-A254A7117DCA1D9A120B5A189E2B5575B2FE98D8066229DD4E2EF4177223993A789876DA71CF19\
-F083F07C9F0387F2F82FBE907030E7841AB2118EC834457F96DB059BD4CBB838AFA0E290406893\
-EF7AB07F94A5D741AD811B0CB67D4B51D360090F7A8AF937D29EDB1A7FD40C2DAEF57EC2CD4BBA\
-6AFF1E00B115BFB4D2F1DF4C70F6DF280415F1A0A90C63980AD1D9BED38C659D6FDE472D7A58C1\
-1F85F51DB3D63E278B33D1EE0C11275027B0C79434FFD766DB5AD2D622CFB40836A2BB5125C599\
-1FD19A9BF2B90538C79BB9800AD3D439135BEEC5C8444A9FBF4277D595C802490373BA05225093\
-1D3434C95B1FD268087621D4CA631700172101F1436E76BB8AD04A47EA6CB18C526352F1B4D9C3\
-E1B1C94D4C7C509532CAEC430BD31C12B7EB0BCDB1EB34C87F2D94873DAAF4BC88E6A9E76AF943\
-2A7D3CC1C823C3BE53B7673DB19E1258AC4615B50301B3D4D035DEDE43A87B7EDDB7633C52DA4F\
-E28B356A1494B139B440B8764A404F439CFDCB7D5C2FDD5EF4B997C65733C37AEB04B17305E8BB\
-66AD986036C067F53A3C518A92EEB7237F291FB3DB0F9AFF002225DF7D678124D43D2AF2657E6F\
-C9752D4FC23A2B570804E094A9126AA427D690AE6B5E2FCCE5553B70C6EDEAEADC230560DCC63D\
-E3AEB312922AFFC9AF8104A3475A19F7D11F52B4BCD0EDCDFFC7F1329836D859E23C8D8150EC77\
-F5995403B4E8049F39F6E755082140586C690B0DBB154B606E18B6CD57738C81C5855F06DE1896\
-031AD801D354F672803EBCCFF032EAC565743261433DB2226AC0E577B88A5C5DF0E6C618756409\
-FA394B4CDB92F0BCEF00DF610A649E3D5965E960B76DC2AC3350E05241DD98A6D3DA6485B133DE\
-91B0647C225EBDDBFD46CE214B2C16BC7F715B1387807EC2D9D589C7EA15208784E1D75F0B97D6\
-4AA6A32BF2BBC50977B10B3C06D9F1695DB9B424C9F9BC15B363BB5E1859E203ADDABEB9CB5375\
-3B1C546E5911ABBEB367AD4AE6846583A5D18AC6AEDD99987BBF7763278728447AAA34A1C01157\
-2DF0460CC1E95D184DBE871DD7EA76547BAAADCBCB0BBB9B548480895ECD2AB81BDCEC1B412B02\
-CC98F6501C5C68C509C26BF0FD8365AD8EEBF5C14BB36B4E8855CFEC2D324E27BD78A4EE9AAB20\
-088CA08BF8322C7F65E509744A729AA1ED5FE27E76E95C741FD3874C0AD86F647A90BB7E7A9885\
-784BE46D6C4B2294148024B853FFB33B313CC069D9258FFA:\
-1647976017C0CCEB3204A02B3578B65C2785CF95F141063637B3689135B01D71
-
-D2254E881D09E77C39BDD2BE668A83D6684172FC7F3A2E5602DF649F07756BC693BFD856F9D870\
-403954D3EDD0E48F8D071DF89FEC540A826AB52836CE9C39527452014BCDF128D53B590DA9B53F\
-39552AB49FF59EB60823ECA6BD51E0733CF0CDF4E9A0D4379000ACC56A27F0E0B9697590036776\
-0FCB86A88F86937AB2E04F2DE22B6A485776E548757C76BECF786C80C68A209F173AA1D5782AE5\
-F1DE25DD9DBC314A2DFF9A8CF318D41793A45AEE857ED30012407D8362FFEF338E04000E21546E\
-040BF8AE3643701B25B3A66A107B57B1529CCB3C88B8B781E68D578617F04261A1B467AE2D74D4\
-9A8A118F3E74826A5F2F3CE930EB3A96890CE4991FCD09CC331EDA16F60C8407EC5C9A91CD938F\
-55023445C113AF011516ACB603E93BD1C6B8977543C92C93811749978F977CEDA06A58B48F76F8\
-EE5FAEF76FA48F695A33725B45118E52106D581BA370D758B742861A87D86258623EAA359AF117\
-D028A923EFEA8194DF661409CFB75547590CEB3534A0FCED6E249792154727AB2024D3E9C7B379\
-97D811DB49761987C4E4B45C7B42DA3C1AE564D7A93ACA823ADD426374FDB3B5EFFFB5DACE925B\
-8908C7DBB125682B066C069C28CB8BCFC4888D78F9E3A001A00D8F83E1C65F596523905D142B86\
-9057301ECED09B0BDCF78FC734FD99A32D5605635806D4210637D21E617490D9FD43EECA5C0F1C\
-274A0B512490B42FE41113B4B24F8193D3DA1622F1A5D7CD43390367DFE2D80901FBBDE82CFCDE\
-4571B066D228A166FA8A873A5593E13942508EBBDE1624DC2D5E96A5B45853C54BC9D90D853D1C\
-2CE0D89C7B1F54B205712919F3053A8F8730F4D1D7749774607795DF5508D947521DB651D49700\
-A57EF2F1945AE6724AF0F81EE02F86D886702822DC4EFD421077F526803746E1782F680842BDCB\
-6F9C34D13C02AD04FC3E2C2510CA3955FD4202F40AC756EC07E6AC4EE19738BBDDB47EFD523B25\
-C1C524FFCF237800175DCAD9FBAD0141C7155BDAE41D756A4485B5BBCABC265EC4410EB8D12BC9\
-39EBE8E867843AE133D602760F7CD513AD11F94B9D85524C87135E6FCB9B402F31A32C202B8F61\
-6A4A8DB809881841C023A048A0336C58FF0176EE96B0BB64B148EB622D50CE34BCC89753AC1AA7\
-E9040FBDF789860C4C9D5AA74DB17B824CB7D13BDDBED24A6C80A118F05ED520A36CEFF13ADB15\
-5AEC3F97DA79B6C248C3375130ABE3A8FD0514F1D8624297898F3BF92B92EF363EDF7FF0D00E89\
-022EECE47A182BEB7915B98050CCE278EBEAAC31E4F721294D994FCA38A9401E8584EF5670CA70\
-6FB266F31034A36545C7C3586BDB47F9A2AEFAB724826432272F1F97B3B282E3F749089DF2E6D2\
-A6580B71BF5DF7A01F84396200B1764B09350220EF99B0BB244A044F486D2E8006F710AFCCE0AD\
-03F646C8B1A6711273D1D1A07D61D97A4A92AD6EADEC71BADE:\
-AB79BCD11952F3008FE2983D748A2C3E537BF3C7CD4F4378CB6FDCD3E607A848
-
-7EC32975F47F4F8DC2E7DC7A68F02771AAF5DF6A31AEB5E6E1EC58890C4AD5F8F19C4D2FEEA12E\
-169A73281A19F36A02EFFEC4BA14E9DDD877E7F911C0D3B77FC9FB24DD9919AB4B79DF64CACA98\
-DA52E91018F628399E1A2C043673D62F8D92758C4C903AC7DBAF65E8AF151ADDB6E796335F8A58\
-8AB7034ED3FD8AE9F034C3824B1310AAC10676F41017C04642582B1A9F7EAEC9DBAAEABAA6ABEB\
-B5E15EB8AB6C3AF58D848177DA5B512466839F196B894A1A7E7C62F8012D11A42EDCF544D3CAA5\
-8C251E0036EA602A4CEEB0EA33B6D8970668C75F4BFBA6835E6740D83A4A2D740E2841363ABF07\
-D7C74811E2D171DFDE54EFD7CE74E16AAED0144B08FBC244AAA7846637662FA298C153C99985F7\
-8964364619D7C4345B84CDE705F06061D2D63DE01C2D65713AA5FE447D4FF86F00AD983F6F9B7D\
-E54E6C770B9AA69685337E73BF6B4327C96F23B94930D7C75F8C242F64BA426F900DFFC8F8EF02\
-53690A4AFFC345C070D1B1046EF55F7804AE74C74696FED88046DC61B215B8079752E804445C29\
-D6D3A8EDCD7F2B506E9890355B38D3662098EEBCEEB0791F1D26D6BEAC8BD40EA3E318210405F0\
-0A6D3E17D7A501190B355588DCAC102C6C052EF33DC33BA9068B71A9B6A1BC289E3E108B1D023E\
-978E8BFF7BFE7F88D73E4DDF6D2C2A18FD027DA76782F1812F16BA73B3D534E5EDE512CDFA71ED\
-E2CAFAA11356C37D11BF4A066E825444D7EC7612B4240C21865AA29E19D02BE980CC85AA4ADE40\
-3B5C09ACD10701CD3AFC931B0473B351D27EADDC920791BC66A1203F666B3AE8FEB1565E69DE3E\
-547B9056DD8AFB6E2B88668A0C7E5593FA8D412007F8B3BF92C1C168D0254A5B6527ED2DACAC04\
-963D7CC93D6395346A5A3A04082BDAB11B4C0A0B72B1020CF0B048EB2BF9D8609DF27BF014E96E\
-CFE2488176FA3B93DD5068FDDBCBB9FC747B6B48DF5E989586C3D0A7E17E1B5F7EB695C0FC8D2E\
-09DF77F964F6FAFC6E5D090440AD393A2B8B5CB39CEE1196F08FCEC7BB7ECF5410FEC126311F1D\
-09DF4A9119C7B09115C57250FB78D718139CE8A8C37A91A17B4DFA87B614E318894E2F7598402A\
-FE826F6CB2BCCAB72A65565C64BBDDEEDF12337D7CDF0EEA143B40BF033C541672790EDD71DF21\
-FF50AF0729498390AA5923C6E1D295A3F8D41EDC60C81956800EAB6B115A9A99C30C17AC4CC800\
-64420101410E76DE2D74E7C5B3F3BC780BA34C4D289A23587624C6E31B3EFDF9C292F1F080E3B6\
-42C65AABA102FFC85BAE63CAA050F41EE17050D300BA5D0B952860EE5BD3ACF1163BDE54C6AFE3\
-D58772FBD2F3FDA85360F462071F2717CE2AECC75F311D2AC56264FD71014F20B49E2CBF17277E\
-E857FF6AC531C006F1A6DAA6C82A15B2140959328A1E9D2A40DD03A02B850069040902A9E2C3B7\
-A9C8B13845C8786137B9EBF3AB06D6130682780248F10BE7C280:\
-FFA92041D1819A20B97BE2ED14D6D9C95FF0A4CC4104CFEABD575058D8B7BA5E
-
-F2592D6041113B82E0391FF3D24189FDC98F210B8D9C9C348B45B9DBBA0C0369E6175CCA2C2C55\
-067299C1EC634478F3977A6039662F83D19E8DE9085D8E2B45F350C536CDFA12394D77026BD45C\
-41DCA426720C5BE90C85F012FCFD04F06A4365587732090E6F6C52CC141B8652E92139106993D4\
-5BA95DB0BE841AC7C5747BE9B2443E8C646A3F8902CB1785AB56D8D4AC65BFE839A8E7AE57F845\
-0ADA0C8610EB3651DCEAAA11C17EE362C727DF460E89087AAFFA9A3D100EED9CD76331DDD3DF73\
-CA89B98CC7A4108B51C465735D902F5FAFFA8A4AE6816CDD628E59DCE1FEA96DAF017816651390\
-6FF735948F234EED61BF8F462E8ACDAC526BE26FB27D8F2EADD5E7F3F5C526A90CF2ED04C3F192\
-C5B800DDE45F9B63B11B6E64D4CCF2894ABD6F3353B8651BC3687995F044323525303422918AD5\
-552E0DAA2B33CB0CFB57F5817F85E140C7AB1CC1FC8084A0E03FF8BA980FE0245F55354EFBD28E\
-7EF646600CEDD1788CBE5A80EB0106BA7C7FA86D5E6751D9143E23641937276654ED1DAFC014D7\
-D0CD7DC71EAE3310D6656C41B92A9F6668932631C66CF7B70A9FD8295E888FE1780305158319F7\
-B78635BB355A54A930BC15A0626F2F85817D442D105CEC47A721276B37E4B82C17AE043EE4E4BE\
-B40CF78B72CDBF10253CDD0350673C7B91AFEC2B4EA18EF4E5E2B5231E95242EBD724FC6E7CD34\
-C3866D8F0C90065B821FD324DC2A5AB68220C6E84A6A99B2804D2D34D69C69AB0B8E5387EA38D2\
-9790FB5BD56123EC22A554B4F1D5FD3BE0A94956C70E39896D0745AB0918CA91045C128087A8F5\
-DFA7CA84DF416F3616276BFAB9B8AE44C5CE25B9F85F160971189134327017F776BED33130D33F\
-FCE5622D8A6144EB4EF50011E895DF9F068716C810C27F94815421B8247802896106F647FFF5DE\
-7F64AE9E26411C76F7FE75ED8413E9DCC95E8804E93E9C388235610C41C7D627210FCD66E5306F\
-C11F9A9DFE688379AF64EE7AE958948A7DA7013B78AF8B01EEB4C2A6EB7EE8E6FFB178F5AF8A00\
-0E31B5ABF3E44BD7E45F5E218DF8FC14A19EDFD7E0DAFC455C7082F77D6176158704036A14061B\
-9A9D7D0647C7B16E20A8566A576025A7A7E9DA3182A9F6723CBE34E68388B7D56B7E902C584758\
-F5D07FFDB5619C82A035F269E16F255B746800D4B1A3B9FF83BEE4A59C74A69EDB9667F4EC272B\
-DEAA6BADF993402CF0D23B0D07216B9348110E680F92FF7230916D8357C7D79757BD337BF60925\
-CF8611D74FD3164E2648AF0CB2C002D18CAF2092C576CA4C95E62016C6119E7704F3A5B5B28B19\
-854C1B0A4BB7762496DC6220AE0A6F44C56CCF1B9C0E323BD233F31307642E206D0CD34D2DD8AA\
-980089034B81E0285910F141A3F29B40CB9F498A5646DF2258755B1654CBC8D6B80F3F0589EE4F\
-3330EA89CC0E6AD4A3D03162C82C5061404916E41C8C1EE316448B:\
-83E01C097F00DD5947FD07BE085E895903E7C71CFE764B6CEB89082B8D6E3374
-
-B1CDF8A2B282E91E1AE01820301C5F1DD5D0EBB570E138EB11FAA542A2B86DB01B4285F6BECA7A\
-85E2AD2D4B5753924B754E7EAB1DB2E0BEDA35E1B20377A54C8348C69AF9166646D0B1A2D8B1BE\
-0218A7259E920897260DFE80A53974A2E5D3B1CC45FCFC101A24F251868CC722FFA1B3283FB0DA\
-C1EBB74E6771A99B8CE08C86F28C745EAD0BB77A38BE99EED08354FF0B90D13779A43BF8499EC5\
-323F3ABECA3CFD7328D634F08E16D9FACCBCAAAF7F5A3ED47A4543983F3791CD0FC9562FC6516D\
-464C7936A7936A3BD8341C33332A724C1E89BC0A8CF968FCA37C70701675E6716AA77936E5B688\
-E09C7448F6CEBBA4E91792AB528BE434A90C3A984AB7AD43A82622EB7E7845251A9D93DB7E2779\
-73E8372EBF75AB4ADAD050C4CF43C57DBE7460D688D8205DA51B932DF163D800C0D687989990A9\
-946166B2C6A8F89FAC0D42FF69A0BAE0199189F2D8098D14334F4A99DCCACAF0182932FBF371ED\
-A4B197155AD1AC156370FB1B292949668A58AE03CD79215D8F1CCBB356ECC40D3669C5489F22C0\
-E9716BEC20DC83722BE2259DFB6640D6827756065E041ED0448C07E971F88BA783C41CDF68F4F9\
-5D7B5EE8630054BE9F1664D2E3A3EF027E59A0AC254E9E87A6DFC124C6A5E4798CD4504C496C19\
-C06B76B80AD8A2C66D96EEDD2104B83BB76904BDAE883F0EADE666C052D6AF802397579166ED76\
-2D6F4264747F655B9CDD88BA3595FA9580121B27E2AEACBDA2C95C6861181DBF457054381A30F6\
-FF7E8E62626B78F66B70BBDBA0F0B91892DFCCF1AB7813239A2B7EF6AF03407E0953D1116E1ED8\
-BAD1808BE008524A3C25244A5937528364DD85F055D0881B487C3CFE6272ABB894EEC92CE3FFE7\
-C34A60D6B1C23B2BF7AA3391B9090539D3EB5D7C51D85BD1A8E4F834F1C31B74BB45B6AAF31AA9\
-13DE1FBB5E65C2C7B731BDC491F270B884FBE9326CD3B6C0B1E2DDC4995E3ABA7447E457D724E8\
-999D54E881D4B79A992EA0BF6B8F60B53EA8ACD8DCDF9BB8238867A3A1BB90AC2B2D521591AB61\
-6E453D9E3CDBAC503AF94031D7CFD2858DE20E389B40EF0B677704BF95468ADA429E48984F7A49\
-74D534A3ADCE84EBFEE91263CC87317F9C465DA5E4EFCF0034A15278C6862168356B2BA5BC125E\
-4066154814295CD7957046E76FAACD30FABA296E1A78F7FF658669991C973FE25D4C51F8D1150C\
-8B3D5FE0B19C5C7A29C08445992B46ACF06008221B3FED8DABFA26B064D4DC92EBC1135E77905C\
-148FB5EEDE88A5A7D117ADC5406854774008ED44AE9CEB16EA398BDAE1E1BFFD6D7CD04CC2B3FB\
-AE1CCADEC9F6A58CE2FA4029434454A17081FCCF3323BBA91D26EC4C3C09DF34D6A02C6475B9B0\
-E9E31D7032441D89B2BD963A63CEE6068F965D94555B544648855BEFACE42CD49E302C1B6C43D2\
-20B1C8F677F8ACF89DABE4C265F55BC13BCF71F61CBCC2801259BF7E:\
-1331D84FDFB3161A753E6BE1C68BF78E2D8ECCB1281AEF8C1F12916352400452
-
-D0CC18AC8DEFDC7089C8F8DB0298A33BF79007BA72BB0E2C57E7FEC1CC27B8982BFC06DF3F7FD0\
-9F0D33F921FD4D7522173B56AB09C48D71F846BF4546B44E219CA1257633B17C50B23EE8D20C3D\
-02360D5C53F4A32AECBB40F821D06A18903DCFCE752CCB356228802EF85165C61C6A78B5A7C6FD\
-7FBB8A3B9B9B959B7CAEC308B027629F926EEB2970032CBC906F2EE71B0063D7CF184887138B8A\
-F53D8002D26A976837186CC35CD07A31F3121C5815FC18F5CA559E3A5B42D32D8889DD2BBCD931\
-790105EE9174D72CA975E310CC3C7EAD6EFBA9B6E59B45ED1AE587032721F126C0CA38A7DA0667\
-961AA98D1C161177B322A79E5C14DE1C74495357906A8D72C7D418956C83D09176143D797B446C\
-DBF864EEA1A1BB17322347E3326F8493DB05F57AE72A86129F019B44DA6854914FFF3533A58A4C\
-D359DA953CCE3E8A9EEE35FE94D7E0DD3F9CF24762B5893B648C9EC1E12FFF96CB76C91A20D01A\
-70A5CCB2903C444AE6C9E99521F0D2283CC458363F6A289FE7503ED53800E07545C04D27B6DA4A\
-7B400C6F3F0506C46CEBE5D0B2EA251A2B415FA70A6F57821D6948790B869DE010D533B6467270\
-E246FF80B75707D2E3710411ED327C35E8BF666EFCDDA33F4317C78AC8B09BF60C3FAB9408B097\
-356DC4383D2E2F1332764DA26E5256098372F2192689AE9CA20072DD1D04F84ACF52540EEAABC4\
-26E0477B78A1CFBB5B0254B9A9AD983F5AB84DCAAC930CB0A69006518927B90F19BE83780AAE58\
-4CAC65626B450775050C82F31E148BC94F8D6437F42333E73F83C7F48D4B6A7DB06202A754D636\
-7CD29C75C91ACAD7B0BEA07BA03B9F7AB7CF7B9D4C573125AE50D41C0F5A11E23DC1C09AD02A7D\
-7408EA411F43F1CBB7B147D1FDB761FE097887461A1AD241032B52E2A394268AA334C033DF5E27\
-23327EACAF1C01541746327212B8BCEB2790EA1B80DB34C3449B62043355F9E1FB82EBE9A6E3E8\
-819B3458941F9092F713619ACDC961F3D88BA4A28D63601612927AC1701210DB67736FB565F462\
-9B55F542DC1A124B2E57D89DDC4E1FFBB32BF9AE517C9655D57101689D925057BD83B66E03D116\
-1A3CCF6575909D94D6F8C1102067ECC4314B7C2D1B00A39A6DA544A15306F348BCAE7B7FAEFA53\
-E843305F73155C2F1C0BD3B84C935C2AF2F7463AA9EC10CFEF72669EA30AD2D8ABAEBFD8DF992B\
-0792C120E302F86E4C42629BE2F866382CB28E1C5F3E829D2562CFD1476FA8E4A38471BCD7C46D\
-DE3BB0DD0CB87B0A583E5F560374B7E85B5B6BA780EB872839B7BD84B4DB4979F5F579581DD6EE\
-126CD5D426C74E9AAC605B6D147EAE0DAFF0CD5F30C465D1801C2FD776655E0C7DEB8A8C39933D\
-7E441B90CE308CE40A6977F6F1DF6C7BE079F6641F3042C973197CD98E374021CC57245C25A34A\
-3004D7C26127118C035019C87A56BDA4FC3407005594976864D161B39B:\
-8874AAE5A4315343B396F469732C783B277FA0BE98C454056EF36E203DB18161
-
-7D3EFC597588B87152A6010670F36C8A900D6C217126F56D5903FD7ECFB23B5F06947272BBA7A2\
-E3C4084D2B49F82A2996F8AA26A1C8EC56DCC994101DEF03B15BD48B56DAB2A7DE37FA8FABC475\
-659B2E465FAAE217CFFB75513D40141DAF882B98AA009E1B98B360C74E3749535A553E829B595F\
-E14C0287B068C309DBD7D81F7C2A415E8107F3A9376EF901D3B8869D5FF5553567AA57992DEDB7\
-553E582E70BD2F62A22AC87A965D74FEDEF061A891A54D58D8E9046A4D6C7C6D4A0E78219C5E26\
-F93F9DA39E1F7F7619E931320C6AE0598FDEC957E8C2B055D428C822FDCA8C8EB6788BD957A2E9\
-87363C38DD83AB4E04B5EFCE9A69A09C14BDEBB72096EECF49E26DEA6CD0B3E8F8B347C1E217FE\
-9EBB2FD01C4345285A29DCEDCD0F5DC4C9DBC0CBC8A27AED672B20E085C3DCD5EE6BBF9E445A45\
-F9A1A247600AAE5B57BECF1539FE4C87D5929DBBFA1D6E5DEDF4FC358F49EE11D4ED73653042EE\
-D46B384B23307E01923F2E61D72A92B0BA66CEF763CD173C92730495359B3C939851884EFF82C8\
-1004217D3F27784C65C42A2040D72A8715E02FC3B33B596346DADAA94803244746079678A8B376\
-51FD1B39A1B677B69018CDBB656652249F91C139070C99BA849362B177054C28A55B385C4CF338\
-B13B232DB877930C22EB3F51CE070C4314CB679D4583E38931802E105FEA524BB2A2877ED178E0\
-4536C2F9679AE7C564A3E8A3EAC08E6F8B15EFCEA58942B5690DB34B507D7B111CEB47E8BA0875\
-2DE21A41F47147B7D507A3A1DF5E0F9B0DB36A7D05D84869745C4230680241E294D689653119A2\
-2F2FC5C0C9E98697A92E3513A6430908360FB0EE43A2F9718773DF7CBCBDD54E420A7193B95EB7\
-881C98CE177556BE37CEC861D56A11F77C656200EA7605AD5AF3FEB065EB8AB88E0A38034880F3\
-A2660784A701391E71A092B2DBDE145F6FAB54CFC39E3E79C3B9E54FB31EBD0AE42E0FBC9FB761\
-A3456557087C9BE253D179C6D08B90DF9F871BD29B125DD2D22F7FA4A104559699B1AB1A906C8D\
-56AE853A31607EA1EACB0B1D41F1D971C5ACFA4705F61D37CD1D808F8B0DECCCA66EF01AACE0B6\
-1974F49504A4FE7AF474CC338DB516302484B1CBEE0C8DF5143C42628AC09388C8E822775829B9\
-F5B3FB2F72448A5DE7265885A3B9DB6FCC0349B3863D01DD377BD60EFF49FAAF3C508576E34FC6\
-1A5E0F72494E45942A43FA424AF438F687DF4747632DCA34294813F6EA10009510005AA7A1FD60\
-12E94DB7CA439EC242F5C5FEEFE374EB967670D2D019589B3DCB4B41290AE70F339CDF7EEDCC71\
-927973AE9E25D8BDC0D74DC9C9E1AB8F2C648808A78FC88607C3D1BF59A5F1047F8F7419B18445\
-8742C16F7641DF79896B4BE4ECDF52BE5BB831530528D8FA0218ACC94357DF588DD027CF1C8E90\
-61DEB12D5FAF24CC59FCF6AC5A04D675AB809B88895C862BC3CBA615BC1C:\
-555F6602A47B634BEA410A9A92367748203B9FB16ECC130503F69616B66F011E
-
-42F3B684726E0A9E4FF5470A725DB94AB290A477DC9ADE1E3D42C4D68A3597D0E60875D1700269\
-1F5B62365CA19D4FAE96AB779E86D89AB13D46A3E90FF99DF8ADEE749BDC43EF6514241C57F32F\
-6FD153E5EC5A8854A18342639A8C0EDE6EDC6D4F50953440B939ACC3476120AFF3FDAF71663FB6\
-BE71563788668A87A106DC50ABE0158DFA0B173DDF032B44059B59E29BF438F3BCD47E4CAC0872\
-3B364BE9CDAA4AE88E54C6E2073C61F6397AFF910DF07DE05AACFEA0DC2A82C0F43D79EFC02355\
-735F3588FF13DB6D2FA5BB8D3E114B631212C560049ED9D31B890538E670B81C2E7E87D141539E\
-278A46A1E673DCB7410EB6F84CFD046665EE86FC8B256315B97262E5D90935F21E3DD17AF226A3\
-B3E2F035C64A1EEA1EE8A31E5930389A6057A1CEFB2E469C5692CAFBE39CEBF111C581A05A1AC9\
-30D3B9CFF0600FC1B96F98FD302CD691BDC5A2A24E003E67DC36D148F275E771CC2C3D9C2107A2\
-1095B4DB6AEDFF04D5AB06A2A4DEA65F4DBEC42A3843F67748DE61F00FCE264F38B28B9018FE80\
-C34788DC79674FAFB67CD49E7590159884967AC1917E6E3F27AB231BEDE67170EE458861F14843\
-6291FB892B3795F539FBBBF7115445CD8F08E2E383C85ACCD376B26507009F741D198AD4BC5CBF\
-CA3FF5D56E9202F5494B521B08799C890F3A6E6D6348817BDFD3BCCED8119D1A64EF2D02265A6F\
-C1B95BADCC295B8304804C30EBED369EF1CD253EC0025D15203F129D47394C1452DDF966408C73\
-88EB0AB7974A23D7291231F7D0C07CE2F8A66F51401EC8523F4F178B7C7473C50C67E7ABF06897\
-3D453A12C82210E922746CEFD08CA5664687D762774524B5725128CF8F29FE3C339793A1E1A0F7\
-B9BA698714AA282A4E298EC80E1550D6003B9309577940002A91AD200CE646A649784B17049758\
-473F48A9A5647CE099E65002B1B76EC05D3C81350088C7E4C043E542F2E883577AEAE24EA671F0\
-718C5A35758D07B71CAD44B7953E18A746ED7073AD9044F6AF4245424A792E09453B363ADD4226\
-F7FFD6E470D223AB12F65A9C917F3282E5D64A83DF20F22843BC9652C9C89EA22F74CC9BBB0097\
-61BBFC63FF7796C92E907537EEEB082711FAD82820FCFDCEB964B863259D049298B565112E4784\
-5595CA483E821F996512B3AB83A613A8E2F5296021302AA068CC59C8093BFAB264886C1060229F\
-E043B32E85EA44E15A81E6FC5DE4F05C91B714783D948F3E90D3B801F503F839319696FF956680\
-3FA407FB32FB6EABD2AEF94C76CA5D7D20FECE71E9E6AEDD6436FA194FC61B39495AB75EA40287\
-5686284F4D03C6DF78B95831D622859FA67B12EBC2DD1FFD5C40AE485AA971A87ADFED61D19AF2\
-F9671B8464E1F56733E3C1B98F4F70FC3CBB4E549B3437B1604163075B24D7208D4BFB11C66862\
-0CF8A291B9422AD7CE1551A65D82A2DCB00475552852D4D7C06831FD51B802:\
-D0D1561464EC8C59AE1313C89CAA89CDC2A7A0359C84B2516E873F5B19229C66
-
-780DEDF7FC6C135550F524F4D84B33B769F58E7FFECE6CB25F497A87D6E5FC912F4E8A60742920\
-8CCE5A4B6657AA2830DFC8C1E9492DE204B2ACB9B42DB884A6F194FFD517DCAA205647B27A0E2C\
-BCEFB357A55F3F0D35CDC83956CDA8A9D021D694FB178C44FBD9B4003D11BAE011FB4131635A27\
-FD26C75B0523EEE2ECE6D8AFB6C76280E0A3F2C1B0531539DC020698F7466F959D6CB6BD1B0F84\
-B17906120D40E6D8DB675873FCA7EDBC1409F0EB5A759767F9F5CC01FE006586EAC27A4D4115E2\
-FF92587DE3F2F6C09222738DD99945348B8B9F6427848DF4D31EAE22FFC4BBE21ACC896CD903C3\
-CC0DF9A49B9576465AA0D8FC4F40468B41481A5AB0FA47CE1E85BF7F9B418E90DABCE9B655D183\
-B06044C92CB050EA223D2F73778BBC1B90945EEBBBB7C7238A78BCAC9A0DF94CC2FC667E110936\
-DE714855F3AAAA3D60615134868BE0715C54F39D26E9A32019684299A71358125174C6A33385AF\
-5283801FCCE195913E56D7BF2F806633DFBF11674E970FEE95B53911D46045DA1F8FAA841ED16F\
-E850949CD69A13A3DEF631337958203B39D3C1C748F96AD7E0E8F24D23AACB23624A1981D845BF\
-89F56AF58FABA2E9E6513AF5DED200C62092EA5CEDB5330B0229B4667DDDFDCC635E381701DDBD\
-55480E935460D18E94C78C2B1D1D866801E203850B8833A2E0AE32E43FBB28AD255A3D31296A34\
-8DDDB983EECC0B0D84958D1B0D95EFC39EA075AAF25595F4FA794A0889EBFCA1E57E92E7C2180B\
-DF90946D6B2A8607DA10FCCA868F6E24AAACDBD3850B44C8D8D7DCA15499C6C33A7741BB5203B3\
-9D001C32177F7C060EE5B43AB4BA9F8A53AFF79E55A532F78832446216E5484519D87395A5C0F9\
-AAB59884F8163AB732F161CFA23307AA2646C3D4C9D129C2A9173E427741B4B7B23F8139354646\
-778B10F97781953C2473FC277D3F0DE097ED9359E83A33AB01DA298741CF9EAD9CD297C0A39AB9\
-BE72D5621A06D990FB175E7E10D460245AAC744965CC2CB520B93FCB02E25DEAEBA92E9EDD0AEA\
-6DD8264D1609F3AD1990627A4E33A73257723F2405A393F1FDE2EF7935F9A41506B437DD9D2813\
-752301AE513502281CFC635844D3F13F532F3DAF403E8AA70DF3CFF67520B00EDD0D0E53A78827\
-043511256A6464CF6E3FFFDEF8C0522FF17915189E4D6377B9CFD3BEB52CE73F4A63CF262AA071\
-6C2EB5F3D9FB5E5E39D072E55DB768498C80BBA3D11E1ECBB89ADFD7EBF73030AE102BD7D5D95C\
-B4599706A0A9348EF65D59FB0FB15143C0896EF64946BDE0E5AB7205F1AA5030CD960CB4F21081\
-E3A0AA1DF10CB6DF811B9E70E3F86581092928A25EF64929DDE63AEF555F4DF0E951AE6E3C41F5\
-C1B1E962E1DFBC1F30458B7574F35A3346103C62461384354DC9B2F98497D1C4987D3CD45D84E6\
-B392DF9E0A2AA8559EB4F597DD759E8323CAF7CAD0D41A69163871648927D6FC:\
-37494F0A17C7164E023F6409B4AE8248D25391910AA24BE3F116D4A44CCC02B4
-
-600BB1C53869CD6912501049B9A53E112B5E6694F39504B56C965C915DC20EF170CF0F1C9E638D\
-56BE11694156CFEA74E2BC7C14AEB360A984E29067A36D011EB1A3541B97009C5642E64916C357\
-7B4BA5C87AA36ADF41D712E22E94BD8EED81629BD548AA69624155A131654CFDDAA4D758341EC8\
-F8021B4239A1BBD9DD7AE777D903F0AE8CD332BEA85DED4A66B8140D1B694EC08E238417E00C5B\
-696008E5652C9884347AEBA3C28B58AB8B955C2849234A431C71B0C3A58BB2619BF2ACA0FFFCC1\
-710673C3EE0FEEE5E091ECCA5833F4F37E8509595BA2BF1BF7437988BE4F63C7E613FAB270149E\
-8B37FAEF45CB23E4106E6502D97135A5B7B36A7563BBDB18D4C37DF72EEE79CC4758D08ED7E0F8\
-24A3CF4C3BF116F4D7D7D60EA0A819E2FCF832E7919BEDE619C64228F9A32C885FE92A7600FCA4\
-B0C74C2BDB2B18A210A2CBEC520960EB5BD53EB6A53E01C4D4B16EC421449360841294CCA5BBB0\
-424CB8A6F6A87F26FA5A75E04BA9646D80574DB61A2D8C38534E9CEC4B85D36A105B3D3F9E2A0D\
-1C935FF8EF962F3EDB09FBD6F626C42E3EA08FC8A24122FEB53182B45098BC4644F64BDA83E2DC\
-0E6886167F03852A5783497FED6C5C8E41FEB1B0BE701139458529ECEE21F60C643CCC18ED07F6\
-95E54A3341128E1CA3A6C171DE7A2E1C50BB2C31CB0DCF5584B36CBB41B40C41E5F3719E7472AA\
-3D241FA27F212FACCD1D720B6F1D1DF4477D7A473C8347F73026E32BE78153BB975E8A61F888CF\
-60DB98888FFB5BAFED7EE92E3218747D83E5A248ABB756ACA331003C9BF27ADC5E273626060C34\
-C1E8E76306C9C7A6E4CAAE08BBDE5B1CFDB5007C10250862A4F2F5B8B58A7F8112EED4D0850CB5\
-BB2F9921C49776925D2B74F0E83ABD85E5BE986BE661C29266094CE3959232CEC6D9EBA553AF9E\
-1B70A55BD4C720D95366133576A11EEE942DAB0722538A7CE32F17B8EC2629F69483C90F3A7417\
-63CF953681E441D5E567341130A5EC5B8F36AC35725E23A6979907AC337D03FDF6AC75EF4856EA\
-D4E18738A26667196F6CD15488291F948539C8F8F018387528EC6B4963F0A3E2AFD1F4F56F1253\
-DE53F314CE4572CD6814B7E2B03EC0D88C1CD737952DAC1D85F8761E2FE3DDE9929C859B9AF957\
-FC8F78C5878243865983CB3E3CD76AD1038DCC5AD04C754FB649851A50DE89D76FFA4537BBEBA0\
-82017E5840D20F2FEECF4C1DD9B409EE4C9CEC91ACA81115BF90CF4784C998FA3A1FF18347520F\
-307E52D67C596742B677B6CCFEA597D787B63708181C765EE28328667516AB7B75F3A655810088\
-6E923F2B94D730C51A05874D9B944B458C95DA87E071D753EBADB54D0876CF387A70684ECAFCB7\
-0BE1FF16618F0DA96DB5070215B7BBCDB4AADCB7BA825538B3FDDE5D55C0BC91EF7E52072E62DD\
-1E3CD2764BAD4DB94F9C:\
-8E58A67D528725BBD8AB846914F9A31961C90BA68765F872F785FF59C4EF0D2B
-
-AAF2F5BD8D412040B7B7F0C638AB081C9B4F9EB542CDFDB53C0D156BEEDC811A9F9838CE32D42A\
-DB83BB1B5B83EFF374B4FC8D64FE26FC94BCA43E812079AD8C33923355C634004E10449309E9C9\
-0564887BD27A5CD0839F159CD56087913D05D48E6ED6B80350B09B3A8FF426B777FD8FCDC72C22\
-ED7308C448E6D4A28B3F0A1BC23C300E228E4C3530C98F507106D5D526253C7D49FBD5D84D20C6\
-67E346224E2F890C947F56AB6538B3AE6B297EA1AB5F33CD43A8C1654C1DFE7AACF7E7DD733C09\
-68DFF6718CBCB537FE742C68B220F243A750FB66419DB03F48AFBCCD68798CA4A24C2E49BCF380\
-004EF6B685E528F3C2FE79CD3DBB9CF88D7DE09557D10459823B5BA08F31865B5A055CB5FA58AF\
-3D849A4CEA6F7C23C9BAB07EE0F4B330FEE01BB3AC55FB5882895DD1DB086CA37064BD8558DAFD\
-B26F34ADC8A560A9B9E845BD3D18DF8C528261069332D0384C04A09CDC9AB9B631D88B06133E65\
-F1A8FDF4E5088BF2BE5C970FFC80DEA689EA3B67EABC5C097880594A0406F21963D9C2F3FB52BF\
-621019BD1F69CAAD6205E44B5D414B73AF9671088D6DAFD728351AB9F6D9C255D9700222ABEF98\
-14DE1571384DDDDD7362BDF06F3E5EA35FD56E0DA288DBC8C80CD585024F3BED4912E6D5CABAD2\
-0250A51F3FD1A25457ED07B3F652FDF0CD8F6DA583DFE780C6B5D92333DFEE4DFB22A3B4DDB141\
-BC385B0852D9B92198A8F2DA49BA0F119CF183E40EDD764B418AD5A880DE5FCCBAABE0785C8E13\
-4E03204BBE0F991A8B54A44633AF79D434BBFA0FAFDD1FAFE1071964169C712D51619C8E9EE8CA\
-DF9E54D7E61BBAB8548D9D2C53CA22A4938F8AA8EC5FDB5401276A081D7C0906556CE98AEABB5D\
-5989BD97C689BA83D2B2197298E155A0FCCA5A42355FBB6BA619783E6A1E343ADE8741349E315F\
-1BE78D1E3969F0FA6DC147C0880DAA7F066B18615F1F88307C515BC82CBE38A1967157D4592F63\
-C738C861D92348AEE550727735F0B04006CEAE3E083629855FF75332A9BDA43D2827AE97BCED1A\
-3E015AE79425237069D6F630A247B9E906D5352AC4BC486558572E876EFFC1BFBA7CF90A6C17AC\
-6AADA8B3C7D0374DEEF1D8D0CC8E4C2A7D86ABC5B6E0EF7D047AB30A6D801C91B3A84799202923\
-A7B6B1966884C50F9A2FE3A047AB588B86C70128B0A1D263751DF699C2D152A1F8B70EE6AFBA6F\
-F9EA240C4D6047EED74EA06FB885AD468E6C9D5ED4444FB1EB4987F966CC1EE51DBFC269CCFB81\
-47162965113DF7696A9FE1911E569A5E221F0B915EEB34E689F0FEA7655A179D9506E0787C205F\
-BD11CA9802E5A4D4B3F8E9D270BE51E75718BB17BF3099C8F68637059009757EAFC48010A66E1B\
-A572D774628B4C35E06F0ED0DF055F27C054B4A556B1ABEEB076D5D502390E1C31E28555BE7F6A\
-6ED4B49FD7CAB793E4BC:\
-B97C3815ABA1958CB4A6F64B3DDA017236224597101DD822F24A6A594F255973
-
[GOST-34.11]
# Using the CryptoPro sboxes. Generated by OpenSSL's GOST code
diff --git a/doc/api.tex b/doc/api.tex
index dc920d07b..80a0489ed 100644
--- a/doc/api.tex
+++ b/doc/api.tex
@@ -3075,7 +3075,7 @@ match that in SCAN, if it's defined there).
\textbf{Stream Ciphers:} ``ARC4'', ``MARK4'', ``Turing'', ``WiderWake4+1-BE''
\noindent
-\textbf{Hash Functions:} ``FORK-256'', ``HAS-160'', ``GOST-34.11'',
+\textbf{Hash Functions:} ``HAS-160'', ``GOST-34.11'',
``MD2'', ``MD4'', ``MD5'', ``RIPEMD-128'', ``RIPEMD-160'',
``SHA-160'', ``SHA-256'', ``SHA-384'', ``SHA-512'', ``Skein-512'',
``Tiger(OUTSZ,PASS)'', ``Whirlpool''
diff --git a/doc/examples/bench.cpp b/doc/examples/bench.cpp
index 3bcfbf5f3..e20c8eea5 100644
--- a/doc/examples/bench.cpp
+++ b/doc/examples/bench.cpp
@@ -47,7 +47,6 @@ const std::string algos[] = {
"XTEA",
"Adler32",
"CRC32",
- "FORK-256",
"GOST-34.11",
"HAS-160",
"MD2",
diff --git a/doc/log.txt b/doc/log.txt
index aeeffa9d9..511772f9d 100644
--- a/doc/log.txt
+++ b/doc/log.txt
@@ -2,6 +2,7 @@
* 1.9.8-dev, ????-??-??
- Use constant time multiplication in IDEA
- Avoid possible timing attack against OAEP decoding
+ - Removed FORK-256; rarely used and it has been broken
- Skip building shared libraries on MinGW/Cygwin
- Fix compilation on GCC versions before 4.3 (missing cpuid.h)
- Fix complilation under the Clang compiler
diff --git a/src/engine/def_engine/lookup_hash.cpp b/src/engine/def_engine/lookup_hash.cpp
index 1d96d4f3f..47c6c0a56 100644
--- a/src/engine/def_engine/lookup_hash.cpp
+++ b/src/engine/def_engine/lookup_hash.cpp
@@ -26,10 +26,6 @@
#include <botan/bmw_512.h>
#endif
-#if defined(BOTAN_HAS_FORK_256)
- #include <botan/fork256.h>
-#endif
-
#if defined(BOTAN_HAS_GOST_34_11)
#include <botan/gost_3411.h>
#endif
@@ -116,11 +112,6 @@ Default_Engine::find_hash(const SCAN_Name& request,
return new BMW_512;
#endif
-#if defined(BOTAN_HAS_FORK_256)
- if(request.algo_name() == "FORK-256")
- return new FORK_256;
-#endif
-
#if defined(BOTAN_HAS_GOST_34_11)
if(request.algo_name() == "GOST-34.11")
return new GOST_34_11;
diff --git a/src/hash/fork256/fork256.cpp b/src/hash/fork256/fork256.cpp
deleted file mode 100644
index bd85dfd7c..000000000
--- a/src/hash/fork256/fork256.cpp
+++ /dev/null
@@ -1,149 +0,0 @@
-/*
-* FORK-256
-* (C) 1999-2007 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#include <botan/fork256.h>
-#include <botan/loadstor.h>
-#include <botan/rotate.h>
-
-namespace Botan {
-
-namespace {
-
-/*
-* FORK-256 Step Function
-*/
-inline void step(u32bit& A, u32bit& B, u32bit& C, u32bit& D,
- u32bit& E, u32bit& F, u32bit& G, u32bit& H,
- u32bit M1, u32bit M2, u32bit D1, u32bit D2)
- {
- u32bit T0, T1;
-
- A += M1; T0 = A + (rotate_left(A, 7) ^ rotate_left(A, 22));
- A += D1; T1 = A ^ (rotate_left(A, 13) + rotate_left(A, 27));
-
- B = (B + T0) ^ T1;
- C = (C + rotate_left(T0, 5)) ^ rotate_left(T1, 9);
- D = (D + rotate_left(T0, 17)) ^ rotate_left(T1, 21);
-
- E += M2; T0 = E ^ (rotate_left(E, 13) + rotate_left(E, 27));
- E += D2; T1 = E + (rotate_left(E, 7) ^ rotate_left(E, 22));
-
- F = (F + T0) ^ T1;
- G = (G + rotate_left(T0, 9)) ^ rotate_left(T1, 5);
- H = (H + rotate_left(T0, 21)) ^ rotate_left(T1, 17);
- }
-
-}
-
-/*
-* FORK-256 Compression Function
-*/
-void FORK_256::compress_n(const byte input[], u32bit blocks)
- {
- const u32bit DELTA[16] = {
- 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5, 0x3956C25B, 0x59F111F1,
- 0x923F82A4, 0xAB1C5ED5, 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,
- 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174
- };
-
- for(u32bit i = 0; i != blocks; ++i)
- {
- u32bit A1, B1, C1, D1, E1, F1, G1, H1;
- u32bit A2, B2, C2, D2, E2, F2, G2, H2;
- u32bit A3, B3, C3, D3, E3, F3, G3, H3;
- u32bit A4, B4, C4, D4, E4, F4, G4, H4;
-
- A1 = A2 = A3 = A4 = digest[0];
- B1 = B2 = B3 = B4 = digest[1];
- C1 = C2 = C3 = C4 = digest[2];
- D1 = D2 = D3 = D4 = digest[3];
- E1 = E2 = E3 = E4 = digest[4];
- F1 = F2 = F3 = F4 = digest[5];
- G1 = G2 = G3 = G4 = digest[6];
- H1 = H2 = H3 = H4 = digest[7];
-
- load_be(M.begin(), input, M.size());
-
- step(A1, B1, C1, D1, E1, F1, G1, H1, M[ 0], M[ 1], DELTA[ 0], DELTA[ 1]);
- step(A2, B2, C2, D2, E2, F2, G2, H2, M[14], M[15], DELTA[15], DELTA[14]);
- step(A3, B3, C3, D3, E3, F3, G3, H3, M[ 7], M[ 6], DELTA[ 1], DELTA[ 0]);
- step(A4, B4, C4, D4, E4, F4, G4, H4, M[ 5], M[12], DELTA[14], DELTA[15]);
-
- step(H1, A1, B1, C1, D1, E1, F1, G1, M[ 2], M[ 3], DELTA[ 2], DELTA[ 3]);
- step(H2, A2, B2, C2, D2, E2, F2, G2, M[11], M[ 9], DELTA[13], DELTA[12]);
- step(H3, A3, B3, C3, D3, E3, F3, G3, M[10], M[14], DELTA[ 3], DELTA[ 2]);
- step(H4, A4, B4, C4, D4, E4, F4, G4, M[ 1], M[ 8], DELTA[12], DELTA[13]);
-
- step(G1, H1, A1, B1, C1, D1, E1, F1, M[ 4], M[ 5], DELTA[ 4], DELTA[ 5]);
- step(G2, H2, A2, B2, C2, D2, E2, F2, M[ 8], M[10], DELTA[11], DELTA[10]);
- step(G3, H3, A3, B3, C3, D3, E3, F3, M[13], M[ 2], DELTA[ 5], DELTA[ 4]);
- step(G4, H4, A4, B4, C4, D4, E4, F4, M[15], M[ 0], DELTA[10], DELTA[11]);
-
- step(F1, G1, H1, A1, B1, C1, D1, E1, M[ 6], M[ 7], DELTA[ 6], DELTA[ 7]);
- step(F2, G2, H2, A2, B2, C2, D2, E2, M[ 3], M[ 4], DELTA[ 9], DELTA[ 8]);
- step(F3, G3, H3, A3, B3, C3, D3, E3, M[ 9], M[12], DELTA[ 7], DELTA[ 6]);
- step(F4, G4, H4, A4, B4, C4, D4, E4, M[13], M[11], DELTA[ 8], DELTA[ 9]);
-
- step(E1, F1, G1, H1, A1, B1, C1, D1, M[ 8], M[ 9], DELTA[ 8], DELTA[ 9]);
- step(E2, F2, G2, H2, A2, B2, C2, D2, M[ 2], M[13], DELTA[ 7], DELTA[ 6]);
- step(E3, F3, G3, H3, A3, B3, C3, D3, M[11], M[ 4], DELTA[ 9], DELTA[ 8]);
- step(E4, F4, G4, H4, A4, B4, C4, D4, M[ 3], M[10], DELTA[ 6], DELTA[ 7]);
-
- step(D1, E1, F1, G1, H1, A1, B1, C1, M[10], M[11], DELTA[10], DELTA[11]);
- step(D2, E2, F2, G2, H2, A2, B2, C2, M[ 0], M[ 5], DELTA[ 5], DELTA[ 4]);
- step(D3, E3, F3, G3, H3, A3, B3, C3, M[15], M[ 8], DELTA[11], DELTA[10]);
- step(D4, E4, F4, G4, H4, A4, B4, C4, M[ 9], M[ 2], DELTA[ 4], DELTA[ 5]);
-
- step(C1, D1, E1, F1, G1, H1, A1, B1, M[12], M[13], DELTA[12], DELTA[13]);
- step(C2, D2, E2, F2, G2, H2, A2, B2, M[ 6], M[ 7], DELTA[ 3], DELTA[ 2]);
- step(C3, D3, E3, F3, G3, H3, A3, B3, M[ 5], M[ 0], DELTA[13], DELTA[12]);
- step(C4, D4, E4, F4, G4, H4, A4, B4, M[ 7], M[14], DELTA[ 2], DELTA[ 3]);
-
- step(B1, C1, D1, E1, F1, G1, H1, A1, M[14], M[15], DELTA[14], DELTA[15]);
- step(B2, C2, D2, E2, F2, G2, H2, A2, M[12], M[ 1], DELTA[ 1], DELTA[ 0]);
- step(B3, C3, D3, E3, F3, G3, H3, A3, M[ 1], M[ 3], DELTA[15], DELTA[14]);
- step(B4, C4, D4, E4, F4, G4, H4, A4, M[ 4], M[ 6], DELTA[ 0], DELTA[ 1]);
-
- digest[0] += (A1 + A2) ^ (A3 + A4);
- digest[1] += (B1 + B2) ^ (B3 + B4);
- digest[2] += (C1 + C2) ^ (C3 + C4);
- digest[3] += (D1 + D2) ^ (D3 + D4);
- digest[4] += (E1 + E2) ^ (E3 + E4);
- digest[5] += (F1 + F2) ^ (F3 + F4);
- digest[6] += (G1 + G2) ^ (G3 + G4);
- digest[7] += (H1 + H2) ^ (H3 + H4);
-
- input += HASH_BLOCK_SIZE;
- }
- }
-
-/*
-* Copy out the digest
-*/
-void FORK_256::copy_out(byte output[])
- {
- for(u32bit j = 0; j != OUTPUT_LENGTH; j += 4)
- store_be(digest[j/4], output + j);
- }
-
-/*
-* Clear memory of sensitive data
-*/
-void FORK_256::clear()
- {
- MDx_HashFunction::clear();
- digest[0] = 0x6A09E667;
- digest[1] = 0xBB67AE85;
- digest[2] = 0x3C6EF372;
- digest[3] = 0xA54FF53A;
- digest[4] = 0x510E527F;
- digest[5] = 0x9B05688C;
- digest[6] = 0x1F83D9AB;
- digest[7] = 0x5BE0CD19;
- }
-
-}
diff --git a/src/hash/fork256/fork256.h b/src/hash/fork256/fork256.h
deleted file mode 100644
index ed945b9d8..000000000
--- a/src/hash/fork256/fork256.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-* FORK-256
-* (C) 1999-2007 Jack Lloyd
-*
-* Distributed under the terms of the Botan license
-*/
-
-#ifndef BOTAN_FORK_256_H__
-#define BOTAN_FORK_256_H__
-
-#include <botan/mdx_hash.h>
-
-namespace Botan {
-
-/*
-* FORK-256
-*/
-class BOTAN_DLL FORK_256 : public MDx_HashFunction
- {
- public:
- void clear();
- std::string name() const { return "FORK-256"; }
- HashFunction* clone() const { return new FORK_256; }
- FORK_256() : MDx_HashFunction(32, 64, true, true) { clear(); }
- private:
- void compress_n(const byte[], u32bit blocks);
- void copy_out(byte[]);
-
- SecureVector<u32bit, 8> digest;
- SecureVector<u32bit, 16> M;
- };
-
-}
-
-#endif
diff --git a/src/hash/fork256/info.txt b/src/hash/fork256/info.txt
deleted file mode 100644
index c2f8c47f2..000000000
--- a/src/hash/fork256/info.txt
+++ /dev/null
@@ -1,5 +0,0 @@
-define FORK_256
-
-<requires>
-mdx_hash
-</requires>