blob: d35d56eb4c00f6bf769438862134cd7814cc61ab [file] [log] [blame]
package org.bouncycastle.pqc.crypto.test;
import java.security.SecureRandom;
import junit.framework.TestCase;
import org.bouncycastle.crypto.AsymmetricCipherKeyPair;
import org.bouncycastle.crypto.params.ParametersWithRandom;
import org.bouncycastle.pqc.crypto.qtesla.QTESLAKeyGenerationParameters;
import org.bouncycastle.pqc.crypto.qtesla.QTESLAKeyPairGenerator;
import org.bouncycastle.pqc.crypto.qtesla.QTESLAPrivateKeyParameters;
import org.bouncycastle.pqc.crypto.qtesla.QTESLAPublicKeyParameters;
import org.bouncycastle.pqc.crypto.qtesla.QTESLASecurityCategory;
import org.bouncycastle.pqc.crypto.qtesla.QTESLASigner;
import org.bouncycastle.util.Arrays;
import org.bouncycastle.util.encoders.Hex;
public class QTESLATest
extends TestCase
{
static SecureRandom secureRandom = new SecureRandom();
private void doTestSig(AsymmetricCipherKeyPair kp)
{
byte[] seed = Hex.decode("061550234D158C5EC95595FE04EF7A25767F2E24CC2BC479D09D86DC9ABCFDE7056A8C266F9EF97ED08541DBD2E1FFA1");
byte[] msg = Hex.decode("D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8");
QTESLAPublicKeyParameters qPub = (QTESLAPublicKeyParameters)kp.getPublic();
QTESLAPrivateKeyParameters qPriv = (QTESLAPrivateKeyParameters)kp.getPrivate();
QTESLASigner signer = new QTESLASigner();
signer.init(true, new ParametersWithRandom(qPriv, QTESLASecureRandomFactory.getFixed(seed, 256)));
byte[] sig = signer.generateSignature(msg);
signer.init(false, qPub);
assertTrue(signer.verifySignature(msg, sig));
}
public void testGenerateKeyPairSigningVerifyingI()
{
QTESLAKeyPairGenerator kpGen = new QTESLAKeyPairGenerator();
kpGen.init(new QTESLAKeyGenerationParameters(QTESLASecurityCategory.HEURISTIC_I, secureRandom));
AsymmetricCipherKeyPair kp = kpGen.generateKeyPair();
doTestSig(kp);
}
public void testGenerateKeyPairSigningVerifyingIIISize()
{
QTESLAKeyPairGenerator kpGen = new QTESLAKeyPairGenerator();
kpGen.init(new QTESLAKeyGenerationParameters(QTESLASecurityCategory.HEURISTIC_III_SIZE, secureRandom));
AsymmetricCipherKeyPair kp = kpGen.generateKeyPair();
doTestSig(kp);
}
public void testGenerateKeyPairSigningVerifyingIIISpeed()
{
QTESLAKeyPairGenerator kpGen = new QTESLAKeyPairGenerator();
kpGen.init(new QTESLAKeyGenerationParameters(QTESLASecurityCategory.HEURISTIC_III_SPEED, secureRandom));
AsymmetricCipherKeyPair kp = kpGen.generateKeyPair();
doTestSig(kp);
}
public void testGenerateKeyPairSigningVerifyingPI()
{
QTESLAKeyPairGenerator kpGen = new QTESLAKeyPairGenerator();
kpGen.init(new QTESLAKeyGenerationParameters(QTESLASecurityCategory.PROVABLY_SECURE_I, secureRandom));
AsymmetricCipherKeyPair kp = kpGen.generateKeyPair();
doTestSig(kp);
}
public void testGenerateKeyPairSigningVerifyingPIII()
{
QTESLAKeyPairGenerator kpGen = new QTESLAKeyPairGenerator();
kpGen.init(new QTESLAKeyGenerationParameters(QTESLASecurityCategory.PROVABLY_SECURE_III, secureRandom));
AsymmetricCipherKeyPair kp = kpGen.generateKeyPair();
doTestSig(kp);
}
private void doTestKAT(int securityCategory, byte[] pubKey, byte[] privKey, byte[] seed, byte[] msg, byte[] expected)
{
QTESLAPublicKeyParameters qPub = new QTESLAPublicKeyParameters(securityCategory, pubKey);
QTESLAPrivateKeyParameters qPriv = new QTESLAPrivateKeyParameters(securityCategory, privKey);
QTESLASigner signer = new QTESLASigner();
signer.init(true, new ParametersWithRandom(qPriv, QTESLASecureRandomFactory.getFixed(seed,256)));
byte[] sig = signer.generateSignature(msg);
assertTrue(Arrays.areEqual(expected, org.bouncycastle.util.Arrays.concatenate(sig, msg)));
signer.init(false, qPub);
assertTrue(signer.verifySignature(msg, sig));
}
/**
* # qTesla-I
*/
public void testCatIVector0()
{
byte[] seed = Hex.decode("061550234D158C5EC95595FE04EF7A25767F2E24CC2BC479D09D86DC9ABCFDE7056A8C266F9EF97ED08541DBD2E1FFA1");
byte[] publicKey = Hex.decode("D2F21F7B398701A369A10AB5CA5752324D01D2E4E85D7ADE9C21F2F41CAFDF25B15F173504C315EA250E1EFC243557E90C23509E7D2AE486518448EF18BA837DDE8DD6A30271E793D50DC7999485AE30A649636257E71DE6D65C9803A8FBB384181C6C28604C2B201C938A5198C01704B0F56ACEFD0CF58BC98F81E20CD233C6B5523C8A00F5DB1C934D2B4FB3609C0CB37543A42C4145CAA283C269B49C8EF323CE941F5FCEDB172CA9B5DD116DD6B2B6284DE55C2CC033426C84BD91D74837C6140E12D0C6B05765FD269BD23200FBE110D61856F8C5CE55FDF7269D6BE7D9FC213C885D74F2311A46BD5E32C06308C7C2E7F26BDDBDD10DD1F6DA004B8D28990D9A62276C4FFA90BF6D734DEAF116000CE004EAA0BB25640F9342E9C2FD40774DE360FA1560D478985BE9639F1E5BDD5B3000B364E12AEF3AAFECA99E4DD24530BB223663F095E3254E42A9E0D88639A946388331A4123CCB71A4D8925DF3EF6B6EADD257788B92E8C5E6596AEB77E0FBB86BCD03D0EE68D9B5C08E0E4B67273CCAA8544871276C9375AA0D0CE5681EBA576EF02A617879E2C27E137C8EC106B544D727CEC5B93F67CD4CB2016640B8FCE631243EB08FAD4F1237F3039376061B1AC3FE724C939CD00000EFC693C6D94828428E4CF1103B6BA8139724322ACC8832119F16528056E7D8CCCCFFE683E91AD84BBDC4D492E0215C45B5B75D1C01114DF952C731DB41D3673D80C21E901D06E898E4E6CC2CF3686ADB6760DBD0076ACD31F610C16B291EA1FB595B912ECC5F3E57CDE588CC14046D1D5AF625B0D52D61075082EF052F5F00B66C429E2B2977665E8719F4E4BE4D0EDFF5E6A793DEE09AC0589A6FECF7732684226E03A9520A472DE129A7EE74956FBA661610804F22C235BF5EA9B83D05C634215473309AC5E0BBCC30929AF45F6669340216DD0DCA2E04FA1697546EC1C93BE569068ADC39790435DB82DB3F3C21F16015CF17D1BAB83DACE254A37BC6E4871ED6031B9BA44EF7A71C1E5A709255A9CD226C0DE6733F1615403820C4B3DB50AAB082C04D0D922550DF4A940C9F20710D7B8208E0E97648F02B330EF436F436E011338523718D9DCFA2C6459DB1920A38E978D57D67D8D163313093C58E5A55F96D0DD7A170F3F255CEC4CCAAFA5044D1B21B2B5D44EA76CFC8F5B1A03A99D5DFD04A0ACE897CF480A008819FDBB7216313829CD14A9A1C9596F95ABB48D6F88AFB2B852F2E2CE687B0623D52A81001589EC05D7F6E582B79F2D036030BC6D1573618A83860A8A77C144D7B2DB988F84B16AF61E0931C27478C99B9A1C15801D0A01464DA0611318334238B2745653F14690E37699BAF5A7576FE451F5EAD46DEF2694711E018E37B24EDA8EBB9364553C5EB976DF38D9E4D21C2D174153ACBB0E2644C9C1EC56C3DB51514AED57AE8653C8361262CC21EFD6CF410160F8070753C59439465E62EAF8A34C17E8853C9817F327E273C2D2911C77C1BF9090D30C4243A39F9865545A83D089C5CB23880450E18A4B0036531164B004072E2EDCDF1A015323256BADBE8C1548F2A4CC00241B18825187015D322CE160BA48C4FAF070969A6F6CA9495E6A1959F0923394E7E5E4820B7C6358C61F4471128C67ACA4900728452BD64F6598DB9A421C8D4D33CA8C077C468DDF8FE8F387E950ED979EC2A1AF8FC473529EA069C21A9F26AA5811D343B0E3373183DB3CA9F10E63BA3FC7F81F4999BD0FBD0CA5D6C5546E9B7ABE2AC4D7A5C0FDC8C33A257A8F09281DE4C38D1273B5B37C88F8611CACD58C4E7F9BB916169104CCFA6FB7087FDA4150D5B84F4837C0DB5C6DB321FC7DC79FD90F707456330B37E0109F0ADE25433D3637112E2D96901E22C734407BD988AD203CA805AE8F757EEA09F327DD49710B471CFC197724948A011E597F3A4564CE00FF701B9B240347F227F2BE01582E07680AC993699D2E1536A155B96AE4E461E3D019F0350CBC52EC12186069382FDBD19CE7D70734FD72F8E61361D6BF9EEDEFEA6D44B6B50E1612ADA4E42033329B098318DD9CF695A2921A332204044994F244C0944993B08009265B8004398CF119F95FCC217D38228F1D1F14BCFC5B7160986C339");
byte[] secretKey = Hex.decode("2074F000FEEE3B804206EEEB4FFE07FBEF2FC006FB839F4101076400BFFA09AC6F00FE2228C080FE0944CF7FFEE16BD0FEF80D20A0BFF912102080FBEDF7BF0000FE5F9FBD05CCBF2F3FFFDEAB3F00001F48E000032A648F8104F5EBBFBFFFF92FB0400DF78380C1FAF53FD07FFEDC27C03D00D3FB5F8002F153C080030FD88FFEFA139C5F410CFF5FF000081F38D07D01E137A08002120050FF08D4EF1F42010BBC6FFFFE0EE4AF4103D23F0042FE061C60C2F8F5BF8FFDF9111C604200270010BDF8025CB04107F387C07F06EC0770C201FC53003FF60B5070C1011BE0BF800518485000F9F8FF9F81061E6410BCFCE42F60BFFAF4DF5F80FA020450C0EEB0DBFFBDF9DFDBFF8100F42F00FF091068A04101F2DFCF41F90B28B07FF10FCC2F80FFE73BD03FF9F4F35F3F07FF6BC0C2031AECCF7D04F467E03FF2EDDBDFFF0C02804F3F0608D02F3F060C28407DFD2F54AFFFF905D02FBEFCFB8340FE040C885F8103EA1FA001F8F2F36FBCFF1FDC2F42012D1020C0FEF8DBAFC1061E2CB00103F7CF20BE032E5810420417AC1FBEF3F537F0FC05F807603E02FDFFBF7DF2EA13A07FFDF84F40FE070908A0C1FBE523A0810A04703080FEFEDFFF3D01FB4730020A033440BE0AF86F8F42F6E99BA0C1FFF5BF1001F9F15FC0FEFE06E4AF81FDFA4F90FEFC27B02FBFF702DCEF00F7FB83807F04F0CB3F80FDE09F8F3F01E553A0C006016CA0FFF438983F3E05F5D7DF3FF71A10F03E030BBC8F7FFB19C84F81FCFF03D0BEF9EEDBF0BE02E9C71F3E05201830FF03EC17C0800028741F0000D97B60C004F34F60FE0206788042FD04CCDF00081A8CAF800401708F7F10EE0B70C1F411D0AF00011CDCEF3EFA1654C081FCDC7F907FFB0104508208FDAFBFC0F815B0307FFED417B0C0FFF0471081FFD8ABFF8205134C90FD03EC4FA07FFF1434F08003FE9B507F01DD932F3FF6DC833F81FAF6EBCFC1FC0274F07C0201F4DF3EFB203850FEFF0BE4EF4008F71B20FF04E3FBDF7E030A608FC0FF1904E0BFF5FC0B50BFFF18AC3F3FFA08C8BFFF04EED31F41FD0B78CFBE030B38507F0302DC4FBE00E85B300000ECD78F410105C02FFFFAF393CF8102EF278040F20A288080FF0FD03F7FFCFCF78F8009104070FEFDDF2F80FFFD1DE4CFC0FEEE57D03EFA06E48F400103E89F010228DCFF7F07FC9F3F41FEF4235040F309A4E03F041D980FC1FFF85BD07E00C88BDF0008F5EB7FFEF7DFDB9FBFF7F43B307EF60B688042052B982F83040AE89FBEF2E51BF0C00621CC0FC40817BCF0FD00F3D3EF00FBE75B2001F8170C3041FBFEBFBFFEFDE487C0FEFD318C3FC0FEEE6B8F80FAF4834000F8FDF37FC0051A0C00C200FCB78F0000F2DB1F42F812649F3FF9266CD0C1FC0B8CB0C2F8E5B7CFC0F6062440FE0304F8EF4009145CE03FF5F73350BFF80C9480BEFAEAFB2F02FEF9CF6040FC0E6C403F09016040BE0109A0403F01FFDFCFFE072C48CF00F8FFBFCFBFF80AA04F0103E6A3FF40F706ACEFC0032AE09FBF0C0948CF3E012914303EFD1518904106C917907EF9F56BC000FF1650D0C0FF008CE07F050F28913D0126B44F4205FAC3AFC0F40134D07D0CE93BB03E04EC735FC202035C1F40FE0810A08103E8DF0FBDFD22D8AFFE080A5050C10007186000FE06DC5FBDFA0DC8EF020300EC6F3F071248B080FEF9D71F800B0D3C208008F9975F41F902BCAF01FDF06F9000FC17A0B0C1FA17A42F41F8FABBB03D090108707FFCF5BF2FC107ECB390FE05E25FD03DFF11706040FDEFE34F80F62F30E0FF060E3060FFFC993B08009265B8004398CF119F95FCC217D38228F1D1F14BCFC5B7160986C339F23EB15423271EF1CF476289657DBBB1460665D3944B78BEE92D15AA609768F9");
byte[] msg = Hex.decode("D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8");
byte[] sm = Hex.decode("AF8718AB747CEFA75F4A5F26B5392113BDE8CAF1DDDF1D45B473CB64DFFC255B2E211588DAB5D5D2C5407EBBB684E7D8F0C6AB8EB3AB874CEEB87C9CE32568D0ADA6A3B9716EF9AB92BB9F02424D91DD5C3768E4598D2DA954D0664EA3D61070FA4304983B44D6098FB74B55FE40F156F07D0E39F11DBDE5E0549854ACBD65B2F6EFDBF3CEFB27DB44FA18EAF9BDA9F4409FE020B8FB0C7E9A1C17F5A1D59D6996FC1EC43AE246AAE1A8FC777EF5912EEC95A6F9A2B32A91C2EEBD733E0EAA43C3A33E989D1DEF0B1F412C6299628DF5AEEB599391C411942873FDCE0FA701C58FD2FB383A7FEF455AE12F415496BB0F6E75441BB0F670910F207CFC372B823A099EA84105E1B316CA33587FE990017BA0C52C1EA85C9E0F030B63168B093EE83D81C47EE70D5EEE3F5603E00C3FD306DF8D58C594B4E2047397FAE4BB83FCAC0D3A8BF7896770017860E9612BC4FE5E416AD961C277836C89E29B22C9C6A1F2F8A55FD84D57F4C3550EC14E9B30BFD18A3E479217DB48B65B9E3ACF731C08F8655D2D2F689EB6547C5241887CF017FF9F0EFC49D3448D623353C6846F2C547090873903DC281D2D327C1DD8B49BF87CDF28DDAB0BE1D48B8874D8693DACFEE07E51D5137B57F58D1EDFA374C5FC2A9C42FCA63393C8F24160BF54110D8721BADFA288F304E345FBDF179AC43FE45DFE55D98683A8B7E0A7B48BA4193B01294D6666688EA4099E842F78402874FB1CE5A52FB14B6C6BA3343941E0012556C1BC8184DB46B1E49161E5504815ADB45987E7EABC1C5657D5D8F23847B728F5AD51290995BB742EFB99528147D423FB56EE1118E4C170523E4CE2734219902FB54457BDC111F54497002C0D06D4EB11FED96683DD3F5E1A938F4D141DB638BEC5C8A5BBD5E7F4BDCFB8D03C4D003BC0DEA33119015FC6D2468C0A5635049A04055B542463B4AC17FF4AEB339E674A1E5EEE7C0FACB7E6CE7D2B990C4E5EAA29030F5CB76BD83CB59D215875439F68BD8731A4D5F54B1D27B905AC42D381AC8A1C6BF1F785CCAC2CCA0D08411A2845A920DBC51C82105205F1772DBB0914030BF06115CAC3596E0BE6F97ABBEEB6FC10A84819C84507348F2C887366A82B6FA5DB6B34111066DA4A41A709AA7EE8622A3B3AD5C854381440D08C49BBAA025E7F1D459A2606368285B12E50330DA0FDFB9B50D34CC3664B9F13A4B9E0E65F7F5390A4D8D25353CA2DDC5BFF4A1238321AFE33BBA3318D5984AE57799ACBAB7B5A0C52120CA6014B89B3BEE993183703BC717871A1D080E57ED5E4FB5C64AA4620B5F78DD4144C1005ED3D4D2F1E94FF01DBDF0107B52D5FD3B212A72AAE32BD32846E0B31AEB2064A30361E8F58A82937AAE4C3E74A61C9953406B946809B11379411C910A9E9B7E2384D0E9C09A78763CB2DFF356941B2D863C35FCF0D5735B478D62D1D90DC21E833C871A77E533EACDB08081105BA3B65E8953EFECB9C2096DEEEEDACAD630133A6D35AAADF07019EEBE7D1C9EA1CD25F55454D861C1A4A17BDE58FAEE5696FA4DD496A4C0AE443524BB33B98D8F254ACB9CCB852CA4561BB4E3830A24E5EDB9233A20B37F42B323DFA6DC1A891F0C306A121EA94AD8071D107C4B4CDB294FD524014339CBB821F60CE298EABABFD3D64F6F5237DBC14BA7867740F047325691DEC988E401E8CF1427CD040AFA8A33B8BFFC2AC080ECFD7BD4F22646CC7013210B80A99B1F7D6031FE4F50768531C604E7AE9349E87A0006566B61EFE18DF34C385B1B5E8D35946D8E53A75A7412DEC7E8A28A06E8DA2BA3B860AF01455359C01EEDBFB96D6881E5EEAEA7E1B2663A18410218B1588DE897E8E01DFCD72D08757FE1CAEAEDF71F7303CB91E91EE7ED7C7BC3BA6F72A3C8382FC3ED355C6F56CDC8630B2C3A06EA9DF197823448E70C01F349FB0E6D69958AF7347D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8");
doTestKAT(QTESLASecurityCategory.HEURISTIC_I, publicKey, secretKey, seed, msg, sm);
}
/**
* # qTesla-I
*/
public void testCatIVector1()
{
byte[] seed = Hex.decode("64335BF29E5DE62842C941766BA129B0643B5E7121CA26CFC190EC7DC3543830557FDD5C03CF123A456D48EFEA43C868");
byte[] publicKey = Hex.decode("6B8495B1C393966CE20EE722515892480FDDA8F7848245573308D4F1C3C93C4F31B262002E32BCBFBCE58F58C95322F9158CB10F30ED2DE4E1F202DDE2C4F68143F354A52F2C27B12B8E434E14EABC9C61B421708B809CDB3908B75106A11B09AC4EFC19662DDC818D4D2A50827D6197B8405C3C9D1AED8A513D3BED08CC60BD04B028D50CD55D9ECD3640EF81047F505B3705AFBDE294DF42EE9E488D647E9C7D532724ECF6501B18680F4376EEE1E0ED1CB4DAF5861F19AFFCA2092C8A6845224008B437F352695B7827E55C7F0BE5A49B464B4654280FE67A137F69924F8529FD947C5B1E9953BC86808243FECE6E03682FE46396D5B174148059703694A74D9DD399B64714EFD666874AE771E1C8A7C2E73D03EBB82731DE05324BFDC8356D5809A40835393B78CF577778B6DA061B2E640A083E5748A6D88CA3A1B106BE566B86C3293886CAF38BA93E16267BE96A0E91E08FD8683406779C1528298FC98101B1ABE625200B1296C50170388B5A5432A020E2D6DD7B40524B52FB960B8FF3FDDE3526842D355AB860B78F9A4AAE588F548F7EA05F94ED711646D82D4BBF8A22244FD9C466DD71E4C314B98235D819321052039F5996C216DA9A1B0BC897A1DA04F2DB48944CAA0C0F5BDCDC10498FD1E3B6A76EC8158ADB9280F7C0F43E1E835C178B114C939F94DE20974301D9AFB3D5D4CD9D3C24152F891E8019BBDF5B74E7212B85E5C6C90614219F54E674334D1D3A57EE5889F2E6C334D2475FF899FC50DA49C0B106F05810868F850A95411E6B616F56397221E45A363A2A4066AFB5A56CCFCFC3419F99B5CF87C977B6AD926504062CCEAF1EFB578EE1A2EC6CD6D1244EB20604E94D37C283238105B0F4834FB2946B8523F308D0020B1C8557403EF85235CF9F547842D6D94A8DD380BB06732EFF51FD315CF111BE138A7D118643B5A8921FE03EF309169539D7779CBA09C6079BCBBDCF84C383939E55C9F042FE5130E4E31EA33E2412A9F3B308F781E8353F7261DE83B20A5DD66210F05B71B49BFB499D60D8C67E2CC72B67D25E6B550BAF745F0E11F29A185406752B0109EEE7CB503B6F785DBEBA42270E9AAE1991FA41B5758A9D0CD74C6823EF23D4D62ECE67370E0732C43A1D54DC61F54CF507C251758E6C78D6DAA5120E202CAFEBD58A25A933B4B48E1A78ECF36104467A7167231918E93AC356C4AE2FCDF284A3B0E9F19038F8985204BC35839804484D3D4194E1E72A7B22FBBFE03F00072A3C05689FBC6E11C71DE2748826A40261A6357904B76ABA722AB91DE9B3C9FC66034B2C06AE45625E8071552A80A807F20A3ABD1D094512C64B57212941D3190638CE3FE69E5CC8759FEBEDDFA46FCE02B822DD32F1751BC41F4EDCDA63BE023154FE075275A28548450494D9743AC52DAB26971C78371AAA3D87B8F000E95FD79EA6F17B5F614FD0626C236F87072C56D8F7F7EEC167323F79A26E32048BF7C43C00904697F1E4C93D018D7F0845EACC01D3989D3502E2891B776B11CB349AF9C462E83AB1039B30688E153D7C1AA62C46B8889E404936912BCCA2517C059B89EFFC1FE1488C2EE3473C27805715ADE619BD3645D540C84D187441A46C0D904C3C9E2A92A92FCDD6D86380395A934DB93979AEA13C428EAFD9259CB3E2478DB643D0D6913AC275ACD2387808669D2FC40FC6011A87AA1F03639D02692BB18322D6417808A902A403068A7A45DC62A5ADBEC18458AD4F91BEBF7FF60494AA7C0A02AA6E067A86430CAAA3536056EE44944CBA38B7AE9016D66621703A77BCD36BD104BC2A040A12577DBA2FBF4B89AE4F49D202C27681B05BAA8C4026E0A60D44140A2213CAF78BEE9047A10569ABE5C568FBEBEA276DFDCF905F8398432129A82AF45CBD10BE668D0C60F4B64327388B830B1EDFE4ADB67EC5472541AD29C16B732A5F2F6B8EB1DA671B6F1ACC4AB510694F2AAE8055127734591BCEDC1077B757C036ECA8E4A114A649EA4730EAC4309B07DF98A5D8EA838C84675A7D10EC93E1D36704B23BD04E27F635AC6DA31959BEA5A10CA37B7193664419926D965E7F1916EC44B52B4BA993C5FBE705800B2C070B09CF36E0908FB89F71E2F7AD9448");
byte[] secretKey = Hex.decode("E2FB4F00FFFF37F07F1016B87FFE00DAD38F3D08E9BFBF7F040634B0C2FF340490FF0205F87F8106F3075080FE0F105080FEE9679F0006FA4720C110F4EBFF7FFD13840080FFE60B80BC04003C307F00F827807F05EFD77F800217CC5FFDFF0AC0B0BE0500701F80F4D48B9FFEFF184C70FF00E9DF7F4110180810FEFFE1F31F3E03F79B3F3E00FAEBBF7E0508D0AF80F52BF0807EFFEC3F203EF61CC0F07E04EEE30FC1FF02E42FBF00E65300000A2674E03FFD1460607F0714F08F3E050E9CF07E03FB7B7F7EFBF4B76F3FFCFF6B303DFB0D981F0202E56F60C000E37BB08106FFFB1F80020808F0BFF6CD43D081032354A040F8CE63C081FC070820800401E8CF7DFA106480C000F5DB507DFD0C7400400515D81FC1F8E32B10BE02F06B9F3FFDE947908002F41F50FF07E44FD0FDFDDE2F91C2F9DB23F0BCFD020850BF05E4DFFFFE00F5B76F020DED573043FAEFC72F80FF0B4000BE04C8A77082FC22A45040F9E7570040FBF713D04000160050C0040E884F81FEDF9F0081FB12D02FFF0211980FBFFD1768F080F8E313803EFEEA6B2002FEF9B3BFBFF10B7820C001EA0FE00001F5D37FC1FA04A0EFFEFC3CE4EF7E02D9234080FC198070C100E417504203057860BF07F68360FFFFF82380C1FD1C90B0BF051328203F02F9F70F8107EC435080F9FDAB2F40FEF21B20C10302F02F4104F27BDFC0010258F0BFFB01986F7E02E7AFEF7F0418C4CF3FF4EE0F10C007CED36F4209FE5B10C0FB02F47FBEFEF867E07F00F9BB1F41F40540407D01ED6F0F41FEE48B8F01FFE43BC0820CEFA38040FB01AC2F40020F54E080F412D4CFBF0118A44F0305EE67A03F010B04A03F0819B80F8004F09350C1FC10544FBF00FA7F800107FC9BCFC00724F82FC10A2F74C0BFFB0AE05F8103C9D78F3F0601F02F7DFEF66F107F00E85F70FFFB1678CFC1FAFC338F7FF701E86FC1FFEA27C081FAE81FD03FFCEF87C07E080BE4AF81FDEE63208002F41BF00201F83BC0FFFA0BE4CFBE0416E8BF4004109C408008F5A72F7E00DE835FC0FEDE93B03CFFC7E7AF81FFF03B500101EC5FA03F01E0F33F3E0600B44FBF00F01F200001211C40FC010D8C200005F7DB9F7F09FBA3FFC002070C7080F80388AFBFFEF297C0BE0AF92F507EFBE3F79FC0F7071C5040FE00E0DF02FA1FB85FC0FE0F504001FE15846F8003036830C0F7DE6FB0FEF3FFAB4F40060FDC7F010DE80B7081F70D741080F813CCAF7FFEFFCF3F81FCEFEF2FBFFE07E0DF7CFE017C30C1F9DF673FFE02F11F900004203C7000F9E04B40C205F107B0BE0225EC9F41F8F9D77FBFFDFE13D0FEFEF5CFDF4000F433C0FEFDE3CB9FC2FBED4740FFF608E80F01FF022C8040FAEF13A07D02F4DFBF800331548FFEF9FD03903F0312B46FBFFE10C0EF010224F0BF7EF90834D0FFF620705000F4F55F10420021DC6F41000D2C5080FFF11BB07E021CA0CF42FE2FF08F8012FEB3807E07CE571080FFEF9F5F3EFEE30B80C00512CC7F41FAF96BE000FBFB13B07EFF0BA0DF8202E00B9041FDED4F30C001F2CB60BE01EC0B20800102E07FC2FE1710D0BF0B231C903F03FF1FE03F0533F0DFBFF807EC2F000917445040001A58EF0001FFF36F40FFE627B0BC030E3C907EF5F2AF4FFF08F2D72F40020E683F7DFD049C5F80FC13F42F7C0006949080013118207DF6FCE36FC0FD0D348FC002E4B7F040F9076490BFF7E56FB0BE0903B04FC1FEF623208408F06F303FFC128C4F7E01F967603E14F447908009D7E70F830BF1F30F7F07F9B31F42FDF57FF04004E3D3BF81FB1916EC44B52B4BA993C5FBE705800B2C070B09CF36E0908FB89F71E2F7AD944898B305452F9EFEA0237F6BACBE4022FC80E5DE2D66D398814A7C835419435744");
byte[] msg = Hex.decode("225D5CE2CEAC61930A07503FB59F7C2F936A3E075481DA3CA299A80F8C5DF9223A073E7B90E02EBF98CA2227EBA38C1AB2568209E46DBA961869C6F83983B17DCD49");
byte[] sm = Hex.decode("553082050F6A8BD54C40E296C67011C2765199D81304F22C3CE306AE9C05235FC8EE08D851E2397C2956795D02F1AF944E54E2D270ED89FD6F89FE9BEC269B5CBE7F0184B244F89455876E181F39E1221F962B34FAE1A8F6E4EEFBE882DCD5BE4941EAC3ADAE263EBFE5AA9E0BCE6D2AEF44A12710B4301F07545EE129974B27536C2DD6C38FE9D5F7B725DA66C8B7A92F439C6721AD2CFC389176BC6A39FF44483C06B9D1A554164F5FCEAB5BF317983E8525ABF7EF291DE0FA281791680F61012A06742836CC6E0CAA87BDEC0C7D451801979D3A993068DE6F601DA81615FA56CB0A4B315CA2CE06F21925D088DE4DF0CAAC3DD33E51FDBE8C0DD187BAA82216009DD2819D524BCFF70012A734FE9D936A413AED15B3D652258CF6C3B0FD5BF4F64B7EC9BDBC9251C01A34AFBA707B35BA4EB6C392DFD6F93EEA454DCD2BDFDD689B5A980C21EEF124843F5571E31A69AE097A25B3CB1F04ABE269E78E098B658201B8BECC456147F759B14C3A3CBC00D1D7E3344F05E433C1C82DBD4001C6AFA8D948E92D1686C64F57436F6DD9ADFA82F35CB3814DDAD7AD0912B62B6B412A40D70F49E05B305BB5DD319C5C89775F27D3DD1884B5936A54738F816AC81FE328AB344FB39CDA6EC0B64D47556733815D2D83818D88D65094933E6E9A9FEB7E433D3EFE0B4C98D7ACCB9EA851AC72134283116513EDE0802BF959ECD5A8AFA9407D8EBBBD8ECB48B24CD034C3FA763E83782D6B0B2115929F94645F9378411251692C8858BE725B9D8AB880054956E71A75D5DD3A88D1476C36064A3C62EFD861C4A25943037ABFCA2DA9363F34371E868ED76D48E068C3A078757FD8E8588B356530F098ED81E3C21652E1071A6DE3F8610B94BEF7EFFA5C5A955EA3987B0EEFD16E6996BBDB563BFAE6C769AAF95E4CC4E42634A0CA641297642C92A57AA8A704E35CD8A759366E1DFD2006C173D31BC853A1089284F043E1648DB047E944EE26AED13A07DFE7C6893998A43CDBF9520A9E077DE27B36F03FFF08FCF4C4F6F4076C54EE6CD7F93C7C1297A4917B3E430981B312C2E1ACD923A419175C735F80F3957418BBACFF5F09425F047564E2F9FE4A9445FDEA63657FD25D2177A9C5A2BA11E54B3D0C06B2323735622AA23A69C14B4AA78BC4310481067E68C0225CBAC0C40A21E8676B5D2E82DE06BB5BC95A3A4269747E9BD3895C0C29A4B25BF85AE0C46959B6AC8BCEBF6CC3039FA0AD7E4698CDCB73C44A10A3469520C5967C2B491777711DFF1F311FF16639A5C35F10FF7DE14EAB5A786E7CCF152BC45600CB3565BF69477EE7BFB508F3259C75EC87B7F57561ECBBC8178497F6B77D5C8D6C2D3DCADBD7B2C21B59333FAAED20C5152E35886B1C672F6AC4BE7FB0DC6D9F4478428141FD35E30691677A1E6B866CB91BB9962D4BD5462275D5932820FD104BF0E1D4E08F0CC2B7B1FF36D2A694B848F1B84475FB647A828CEE4DB1566CA35A908562DCD45AFD107453E4FD18B571B2F64B077DB9AE3BFA15F0C10BAEC410805EDBD34B6638138651F24F91F9D82D8E7CC07F1F5AD93B1017A375A4A9EACC85A96403442BF1D5D9BF18204011E666569B6F280B268BBF339B607D7C33BB59EC7E12E7F20B14BE770547F797E990E70A8F4F1B738B4EFC7CE124B919537CCDEB5F0CA8DC2EA9649640EEEED11489C0A1C110DEB64BDA50C756A3EAF34C4E1059560D3788FDACBC2E352F2B93BAE31DE89C0D19277BB8AAAF0A419C2C4C1B265BBA1B41A9719AE53A7DB5F051E3B08836E5D3087A94315C8B83E21B1217E1276FB90252F56E72CF9C406A9539F782B4BCF95CE4E55340A00899CEDA7A0C020AFBBA1DEF8C394CE2354E86B7752DC57D1CC94ED32A27F12A06AF8C72AD2BB0A4D619C7F1569EA066B8231BA0CDFFA761F54F1A574C99E1B24C53F33F3D1F34225D5CE2CEAC61930A07503FB59F7C2F936A3E075481DA3CA299A80F8C5DF9223A073E7B90E02EBF98CA2227EBA38C1AB2568209E46DBA961869C6F83983B17DCD49");
doTestKAT(QTESLASecurityCategory.HEURISTIC_I, publicKey, secretKey, seed, msg, sm);
}
/**
* # qTesla-III-size
*/
public void testCatIIISizeVector0()
{
byte[] seed = Hex.decode("061550234D158C5EC95595FE04EF7A25767F2E24CC2BC479D09D86DC9ABCFDE7056A8C266F9EF97ED08541DBD2E1FFA1");
int mlen = 33;
byte[] msg = Hex.decode("D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8");
byte[] pk = Hex.decode("2773A7AD9D114C05E70C654102216989125420019CD31541E8A191B142C2732FB3CEC5C9C070A830C50A960E4B07C8108AAD0C044AEA0CCCA544422AD17966A52704BEFF1F2BC92423D79C128B891392824FD4EACDBD5DEF0CC2733BDF9D0D0835CF08640BB61DF4006340013144DC913AA00D411FBBEC59D5A3D20E1A3656319718F82F683978FE820C2AE48349FF42B63F44E71DA1678C2ADDD8447E9B30AA7D083A9FAB6CDE4B44AA9668F1CC4F58432D55340041792C06F3ACE7515DC1BDAE4DAE329B49FB3C4F086A0CAA846AF3C52721C1DDBD2A88093563A6F9FA11695CAC38C838024008B10AE0C76DE6272E0198209E133FAE50410192782130B838E56EC611E707140595C9B9620FB0E547C10A757EDE0FA29606028E8200740307E9ED8870D9199E0976E30F7C4233646209684B2AAC28E4B343C28008B4A4FFB8E02AF2D01E61E20F9C5E02886DA498AAFAB60A702AA4C2E050A4691FA6DF8ECE316AB75A61B55E5381606877488C630D33CE27382BC5EE368C5579F2620673E79789B1C79C405B97A426E09E49090BCEA3FE40E01513EEDD9081129C0A0A3B5884FCE5CB3FE7E6B37BD08FF1324ED390E507CCB3271150B1D02F9F15ADC205ED0068E141D50DC078D37E4E7E283510115811AE1205CDD1A109BB114771C0D4FA9E8129556F1F505CDE6E0507B73BB32B0AB3EB84AD99586E3E3326A0B1BAD6C7A8E0053D18368AA8BAAD7D702618EAF33A3B5F17E5EA410803E552E4262256682CD27005C054103B41EC37EEE354CAF7AE0F19A75EA470616F94174C72F95ABB4B9523CC4F291FC787A990E8EF43D2B8C1A76AAEC10C095F1BB0111E1A4046F6D131E307B960523D1884ACF914CBE40FD3130272510A13133123AB70356430620A3EBB2728172BC56C0F55064C7031D6A461693C80495930C25A04F61E223DFECF29526CF8BF261FCD8AF44CD13AF9E8AB227A579F35B0955AD56EAF7C012265B0A839D951B93C0E6A2108942B82C2658FCF12E165ECB57B74DABC2D30CA246F9B4FBADF654C011D00FA144170C9E9EBE1A935D620C43EBDDD8D1E60C29EFDA04CC17407514887F8198CCF58092CC75C241CB34AC2F9477DC0675E8CDB2D6934EC7B3EC25EBB370CDFB79072300575597754E5609BBB94788FFC5E12E713222BA5D6A22BED445E13E170AAD9ECA0D26E22CD0B808E1090EF44D9BE210E426765B9CB2D75954316160A44C3D936EEB21DAAB7AB1E60A4F651F3F5003061D80E0E17C0530D4F15474C2B861B72B3FBA058CCBD14568236D40E6B3C359FAE089388639703057DD09806C9108EE6843F02F03492C6B70A421B01DB32C10DF88AEBAA3CB45D4CC0604479AC1CCF0C9CD76250AC3345BB60BA081462B1667A1A5C772B505B5D705223E8AC30FF1C423783E1977E62277D196517636CDA83A80A87AA54087CF099B1494DB8F63C166E183CD3E8528557038D9D826DE01963B471E3337093139CEC888E6C5B1249826D966355BDE17CF989254C8C35036714852B24D89BB666EA8AB5AA68506125ACD8A51848478A2C14C94F189578C0ADC8D04AC0E896F6357DF3AC17172B06B5B25BC4A41CE3AFB266E17F7990327CC174001F71ADAF8F5EC08404A3A74B80E4974D20B631C11477BCCC1164AB8F49F7D6F57AA4A77F724435C218108DDBA508285D3E412A8778035FED2E516DA7BF990AEA03FD7E91F05537FB5A962A9259A0750DEC465687304925CFE5BD8F044A7A1EE638D2C448235D2BC2C9958C21DBE152B8D9865E336B57911AF86F404723CC995AE595F888FB675C47C2BC311F60BB3E47B4125CCCE51AD3A231A9792DB6788A54FC2935E22313A744065387AE450F0168BC00F60BECE76FA41E5383B0B45F950B27D327379865A73C6239B481FFB4AE78757CF51F5ED4CE20A4C31E89E19FDA2959158578439EC56CF6D29B0B2F8C307D63A13E8073E5AA7CD2C0FBE55EC4348AB807E773D726754F72EDD526B788ED61D031B3C2F64803AD34CDDDD8DB86C0078AD3CDC728B0399401A0C28E3D322FBD576FD97CCA4EAED9146CB3F83D0139024C14E249ED6996FC6182E739C72B177149EA08FC991CAA73DC8D6729649F395658B33D49B21D221D65E0BC90A0AD85E0F714D06E2CFEBE84F163843B7854F9E83A0409C07CBD22646C1A841FAA6FDA61FECC495CB2C881CAEF7EF4D8CF54B52241DB36B68093D40880822E808D40C2DE6D0488F476FC79064A0C8E03A05C02C6DB20F3EBA8E0067C154F2CBC7C4849CF87F7F1C92B4EA8BA70177FD1A31F691168317A3D4CCF9B9EDE02DB044645622313807E49BEE1D481136EB26803CFA5756E177EDBE1AAE6B0C8541B4FC48CF01014E54B2C789241DE9C54ECEC921AE7AF8A427213689A4A2CAB6376719C25A896B45CC414CF762B91A9840210095A46F3281A6DA086B254C916663B7941E4CE5281E33D8E3712226B201DAEFF4ACAB7C504C727F16D2F11C14885A2ED080638B153A40B3B12457A6A3AEF950BEFF282A079185C64FB1CACF19B8182900F2C4EBE28B7E370A3235D45C6F484FE3F75449E499F07F2F0A4FB1AD6508ED8CEDA34EC98A4957EAEBF25FB8F43D16F6DF3E32705A82979E221CC11E63B0C883D1EDABD4CD5A0855812477BCC726D68F0B211420C068D60BEB2D2CE9DA32EA68657432CB2014904BE4248FD08DA1F9C5E455B32A1A1C9AC31C7E7A1ABD8BD363A38AD78734D1EBED954871C274A5D54C1B492F01149BC90848E04D026118E9DDD0B84C1FF22473C08D267F1581D566C5F62EAD72C79D75F565BEC6C3275ABE3638D2D003CBA666B5AE85AA6E33D807F72AC157F64390320F3D4203D0FE2B70EECA8BC174D98AE7461444CB33688FA8BB82CB81F84DE6085BA9B63A9098A07E78DBFE5A20161366ED941116C790C67D7BE28680D3372C19E7BB17433903ED4688D63D4CE54DBC0BABBEA4916FA49AC71377A7E2812BE6512D504C04F51A6B01E625E806DECB5D3F6E19C726EDE8428DCE04677B2D8A7083A8C5A9304B06302F01973A169CD4A0D04473F769BA8B08E069F96EB07AFA0A5A061723B5C537BB6B41AAEB03F736F1B00210CDB816109D148692D49854DDA515DF53E9F737E594EFAA8033D576401CAF82ACD6CC7E8E913BCFF0CECF25D6C8BE37CA3B0D05EFB405EC144E4BA8B43814814B3488C6C7844924F77D06ED8E9D4090F758C13226577265B20898D40EF82D8410AC9C807D6BD0DB7124D4F23468736555B584BAD6864130027C825F8F15AD4A6550A5BD9AA04C69D38D44BDE53B5DF9EB202347876643C250278D786F8D8C4A8C9EC33FA57D8803909FB0991D370AD2FE3B6BE7E0798D4282C05B27410DA4B1718F05C82269C3717392580BF0391F20BA083057D3AA392E29D5C81CADA50069F812E6B8EFF77C59CEF51D27098AAA219BC59D4E549767435766344B754AA70FD43877CCBBDCAE4D0D6FE8F30C94B87C82ADC3BF62DFC6683D910B13D4ABC4B6B68C47AE51317F1F51B16918E7D9E851C653330B01838ED10601494C8BD86328405C18FD20A62F384129DC5AC3EFC58A915A182369F1A1F088608F64B314FE1BA543325B72986612765D3A474CC9A6CE04E1ACFA49BBEF23DD0B0E4E40C320578C985E8C29A653AE7046016E067887E85C9C3CDCC456CF811A256FDD8F1E9E8660466372EB85BE369D3B496991A7D99198794DDCA7B64B4BA91BFD7A3C258B170213639302B4EB45A8C9CE7C2A79FE3E3FCB0C23B057025CC207A6D02FABA9E299FD95525B4DA20250A1B54FA196210681961A04B9F6862C5F87586BB90027C06E9B769D15CB06A7867F7329731AD18DB714980DB021C8A93D32A20858AB61A741FE8B6CEB89E6DCA0960B06286AE297A5FF8B99A42660B3B802C330B91F686E6F314B62B2C83E8512D93C5E29D689AA1AB43401D0A866586BC937F66A3D0711C20C9AC36426AE20041358AE8C3E1E6AF31E4DF0157EE582210B6C32F346481B7D888D34DA15238C62E1B43FA4D5C1C67F6EC4F25A62B810418D3512B81CB107D9E88711E64C4F224894CF80D09997744FD7AE52446A7DA4E10051D597833AE1B36C86A0CB69B51C27FEE1B0A126FD88AE54BC04291183C0919C4912DD5D4E9EEC9C40B65D58DC33CB0289B0FB60D11B60E7FB7708849FEDB54F41A68314805A5C0766ACC9F338A46B29EAAC00087AD");
byte[] sk = Hex.decode("F60AF7FEF8F7FE08FBF50300F8030CFEFFF9F5F60103FF0FF601FE00FBFA0E0003FC030007FE0201F401FE0404FFFEF6F9FC0209F705F7090E0002FDF1FA02FB08FA010602FA00020B06F804FDFFFD0601F60400070100FD02FBFE000B02090308F9FF080005FC08060103030801F90B03FA060704F9FA0FFB050CFAF412FB0114EC070BF4FBFC03F204F606FD0400FBF400020806FBFC0CFFEF010CFFF9FEFCFC01120909030CFDF303FE0200FC0600FCF4FE0504130D010CFC0208FFFC00090A01FDFBF111050911FCFE010BEE0302FCFE07050A04F616FDF8040D03F7FB03FD080503FAF90003F70A00FD0AFBFBFDFA040EFCFAFDFFF100F507080109FFF7FFFD01FF0506FE04060B01F7F9FCFBF305FF08060604FC0DFA01FCEDF5FA020707EF06F8F00D0800080EF0F6FA04F8FC01FE0102FCFCFEFE000306FD030601FF0308040104000302FFF5FBF60AF7F0010B00FF0009FE090002F402FD02040F0100FA0606030205F71200FBF70909FD07FFFBF107F703FFF5F70FFB0D01F90301FEF30802FAFDFE010608F80BF603F8FB0E04F905FF0CF9F40EFB0B04FF06F7FD08FF04020103FB03060208FEFA0CFC0A09FC070BF5FBF903F3FEFF0312FE09F9FC040A0EF5FF03FFFBF8FD010E03F708FC08FDFCFB0C0AF805F90EFE07F5FDFCFEFE0502010801010601EEFDF307FBFAFDF903060B0C07F800FDFFFF04FBFBFD06FEF8090A050A05FE0A0602F102FC03FDF711F70401FDFB00F4030DFF0808FC070405FC05FA0AFF0EF200F6FCFFF8F20E0AFFF8F7FCFF06F708090FFAF6FB04010207F30402FF05F8F2F0F8FFFF060206FAFD040107FC0AF305110E0502060B11FA0500FC0BFCF7FCFF09FFF510F802FD00F4F807F5F8FC0EF9FF0AFBFFFEF6F902010BFCFCFC04EBF30703F7F30204FFF10A0BF80D01F7FC0B0701FDFAF300F60204F60EF41103FAFA06F7F7F80304FEEDF205F9F9FF08EF05F90DF6FF0307FDF206FD07FEF7010307FF0600FAF7140300FDF70410F601F80C01FB06FF0BFAFB0209FC07F506FD040A040C0DFAFCFF08F5FDFAFF03000503FA07FF0601F8F30A020201F5F8F9F4F704F60203FE0505FC0A0C02EF020204F7F5F60405F7FDF702050202FA0B06FEFD0FF7FFF201FE08F806FB020100F904F302F503FFFB00FEFBF6FB08F9FCFE0407F60609FE01FE020105FEFFFBFAFA07EEFE0E02FA01FAFFF7FDFF0403000207FEFBF804020008FAEFF6FC0E0C0604FE04060DFE0D13F5EB06FE000A05FF0E02F7EFF700050107F5FF03FE01F209FD0301FCF00204040203060208070AFCFC00F2F40BF6FAFFFF02F90701FD030405F50606070600FCF6F609F5F504FD0D0A08FBFD0207F3F601F503FEF404F7090403F90101100E0000F303050104F4F20C04FC01FAFB01FF08FA02F304F3040A0BFE0CFB08F80B09FEFC0105FC0B03FCF1FB0904FAF30204FFF2F9FD0B0201FDF602EAF1F9F708010000FA06090301FEFCFBFEF4FCF9FFF8FCFB03020A06FB00F5060704FF08FEFDFBFE11FEFB010202FCF300F90C0105FC0604090402F8060A0A03FA07FF0C0F0C04FDFBF7F7FF0402F8FD050B02F801FBF9090C02FBFBF1F30B0901FA03FB070300FA010403FD01F303FDFF0F0209F7F506FFFD01EBFE06FD100F000EFDFDFC03FBFD03F8090104060A0900F508FD090D0105E9050305FBF500F707F70503F90706F10801FEF805030B02FBF701F60007FF03FD03FEFD000808FEF4FE04FF0CFAF500FB13F600F5050BF50CFF01ED09F6030305071B070C040C0206090205F103020508F207FB09070A00FB110502FF06000811FFFD0B0D060401FFFDF702FEFA001209FE09FFFE00FE0BFA01040308F6FAFFF6070309F5F408FFFC02FCFEF7F80B03FEF8FFFE01FB04030304FDFF02F90AFC0A070407FD09FEF5F9F3040002F2FE0D03EDFF0305FE010B08FFFA00FAF7020106010D0A061913FD00FA05FBF808F404F9FDFDF0FD0403FA020200FEFEFB0004EF03FD0B0301FF010A02F0FEFF06F6F400FEFFFC06050603021005FD0603FCFC050A04F9F804F40E060100FCF3F3030BFFFFFF04FA0705FC0E04F401F9FFECF9050C07FAFDF7040EFE04F9F6F900FD18F7F5FEF6F4040307FE02060302ECED02FFF902FFFB06FAFE0BF90100020BF8060008FFFB01F5F3FD0501F60D0B04090204FB0508000CFA02000AFC06F8060200020606FB03F80A0D0800F501FF01F90DFD0203F4FCFDF8FBFAF0050107FD0101FD07FBFE00FC080807F600FD0801F20200000CFEF5100802010206FEF006F9F8070B0712F6FF0600070309E8FCF7FC0BF8FC00FD030F0307010807FD04FCFA08F8F6FE06F8F6FCFCFF06FD09F5FCFFFC04010F01FDFE050E0D06FD0AFFFDFC03FD08FB00F7FFFD03F607F80707FBF8F90108FBE603040406F0F303FEFA01FEFEF303FFF202050203FB0407021104F5F7FEFB07FEFC070B05FBF9FE0CFEFB00010CF80C00FBFCF609FF06FFFCF9FC000201FF04FC03FB040004F8FB0B0301001001090003FD09F9070002FA06000D0D100508F2FCF4F10B090501F90509030104EFF2FAFDF903FEFCFE0906FD00070802FA0304050C050A05F90AF7FFF9F704FFEF100005070113050CFBFCF8F30212F8FDFE030505040C09020201F70BF3FFFF01020FF7FE0005F8FBFA0B04010801FD02FDF601F9FF09FD04FD02FBF7FCFAFDEF04F90801F4FE0FF7FD08FDFCFE05010306020EF70201FFFE02FE040705FB0905FFFB04F100FA0A13FBFBF60AF8050803FC07030AF9FE0D01F7090E0009F8F4FD020401FC060607FE0206FFFCF8FEFD0004FFFE0704FDF5FB00010403FA02FF0005FA02FE000AF207FA05FD05020504000BF70FFCF8FDFBFB00FFF5FAFD0309B60E7FB7708849FEDB54F41A68314805A5C0766ACC9F338A46B29EAAC00087AD394D1695059DFF40AE256C5D5EDABFB69F5F40F37A588F50532CA408A8168AB1");
int smlen = 2753;
byte[] sm = Hex.decode("FB07A3E1D8B107FCA922CAC88C668B69F9BD54330712E3788663FFB44310B4D5057F5F479039A87C3B0564A2474D1A97B944E852300044C68751C09A7A5B8394D4D388456DE8535EE57238F2364DAAB11BE3983AE492D5AD2C9508CFA2A138F4666871BFBD394BBFD69E577E812A13D973E20D8B3E63976021D946B0B3DD53D343C344306B85942927A75EF08D7DA4BC31DA2B0F727B997BA243BC1294B30CF5399F58D9A1EBF5F2D4E5D3D3FBC580FCF2F6EC2457EA4C713B5B0CC6FC565331E9DC92CA419CC73A4D618ECF6A5B2EE146B28A87458D332768D93C3E01A43DF628E1EA0B539040B6D5566189FE8260A22F701EF93907B061275637359DB9BB6361A680DF9FF38B4FBFB2BB31CE0D1891CBE07C6C2F8E0832038239E92FD4F70F5BCC28BCCA1E9F800266EDD0CE007FE86052F1506DC45A8A9405F13EE63C963019776D11311AD44A01E5B27CA4C51E051BEDFE0DBB5A3A7ABEE5B245689AAE0470D5803D1308D78D8A15167F31D87A89E186CA8B5F6566CFC7148209485AEF22B1735FD487138A261D35BDDA857BC0A966A8D407463D1BE9EEF2387F2F93B1A835AAB97A17F496AD92654F5F70DE317120365DFF755077168DD6C3E2320BC025E361A6EB98873DE8F9228A223BAE4138EE114B926C48494CBE6065C08E759109BD18C41FC740057ECA699369737E78C15FBECCD29D1C6406819511B4D115C238469E7D0722D0F17756F2F9AFDAC4343500AEE4C24D39F7C932270796E110FDC2739DE152A42B494C69E38A2909CDF0FEB6E4DC8EC028562EDA3109ADD188CE142B8189565802D648067BDF6497E61758F9C893100C2FCD678DD5CB17699ABBD670EFFDAEE6BDBC510727A48ACF0E4FAAE0E7D9A04A27BB375671048CCB3CB2C69AB232A9C31F617B7608ED88EE44696A2F75F8F35D1938430D482C67861E7E63FB71BC6925F66D793C9BC30D0F11DEB80BC23E1AC43E5D2F91F4DD216AC0FC0379A8F50F290789E72D322E9F75433857D99E5B25DA53F181B52C61E1ED59B99D7D86333C69D8E7989F37FF92D3B51125ACA0C477765D2710DCB52804C620E39E85EF9F01F9C49E5C123B898952CCFDBBCE985CE9D3E3D9D7A3F254FD10614899B694AD59520CDA87DAD998A7F0F4118E14EF50470F3B970C89702849EBD5FFE168E387AE970318CB5642D46D8582013779EA03C956B893BD2374DDB002A14BB0FC8E2098E1612E47703EFE0A75F35B751EBA9539E02915AF108821C3C908315F1C34F578D077A78F91EB6DA12CB4CBAE937CB7246A0C56A9F997D58A180653FE8B5DEFCEF1BC6BA41DEEDEBA6F3D6B695A91C270AAC086D9CEBE4D04D6D939EE0A0C1201F10C39AC3708264DDBD4B1A1B7D245304F8A6AA4229A0F7599837D9ED334246B719C102239C7BB93C0E9EE6EC9DDD57C59D7B88E43E1C19206F356BDC92873F8D7A687FEA9408507B32C2F4103936FDA2A694F486E05129D69F36563ACACDE2D60F9E114502751C2C5A5EB27D8DA8F497260A7BA003A858802F26A630B69A554CE006D78223D400E7E757AD8760D1EE7C8A6AC629E28C5CC0BA8242FE96203D970637578BBEE77466A6ADB19BBEE0B3C894EFC692D200106967F53AD26BE7ACFEF2D3ECE609B89F6A940FCB948D458E89798E5DBB2D5EA7C75957FD9F53F58050CDACA4CF5613C4460C4E3638663D4E2A4975B8271BFD26C48207ECAB05712E1651C352B0621C3376BD713CF3A81DB0D4AB2C3BDB1EF54775BC980BB04E3872C9119890037AD8BA2A984F7F090D8621D442383A2EBB4667F885772163978B346ABECA297D983919D80745B061154543E1C36271D9F5E82D929D2AA007025E8718324E260E992528D0213FD5A5659398FCBDA4080B34D6AE7C7C7DB595BC0A7E0887EA5FC7FCC76668214DB2BA457C2FECC69A37D39C7C2009BC52F7F4304C26A260994395BCADE9072351DAF81D484876ABCDD876FA87CE76E5F024CC8D098351B777D9B908FA5D903EDA4BD732173E974DD36BA039FC30BA6F5EC7C60C507E1EC4A7100CC3042EC30FEA3905998483CDB77D18118C547805C41A26DD0007F73BE9447590DC544EBF8D6880E7E61104DDCEEF39866DB0868CF9C8C0EA3BEC50B2E608540C3BA1AC7D4C9C945EC830A002C15AF68BD349E5E2704F6C244EBC927051B1F04072411AA7299FE88A38D1963FE778F5D86C34DAE4983BC2B6152E84A65E820AACE1FD7BDB5E22606AEB8590EFE2A7A40D4159EAE17D5F4239BA3D2ECC659DCDD7406D76493D4092F0D4FFFBE97553A26D94B4DB223A8B62A135AAA6C692BA1DAE42929B9D4988BB0D7B06B14A60607115AAB791A3AE54D5FC0437954B9917EF638F0EAFBDA8C4AD68C997E732C071A49E6AB0FC66238629C6E027C1EBAE1FEF45874CB28C12298734F0E0BBF838BE199BEC0CE52D206EBA2C4AC6230762B476A36042ACEDC9DECA3D36C92492D998230155D08522D8E11952A3BB06128D11EF142A15376EC172B66294A7006647DD1831ABC0034F0E0FEF507D988F0E60625AA76A535C2388F8E7F5DE8F59997883280BE1BA98B7CE54C797582933B688CD48460ADB2602A82912768A34F9E911F31BFD39094E7D8918F6DA0955F03CF44C0D4B37FB331727F1C36CD130A9CD0CFB88B1F274EB3D58E82E0852DD6C80E0F368C43BA2BEE67139ACA77ADD2633788AB994A29A565380118FE843A74178FDAD308BA5F6A570FA337A6B1E9BD5B6018AAD8BC8C993FFBFA7015D7337477E28EC09D6D9AB9AFA9CBB96DC46F9F9304B0AD829D54812B8FCBEDE58CECEB89E7A992AC0400E7BF0AE2F90768D6EE308C78DBC7F8D0BABB8AEE8BBAD5DF00B04C4C7D70F8B3F0B6A4BEAFAE07295C27EB2FDA2E15C1D0BB5B4318944117FEF36A0A94BEEE967D56A679116151FA916727B66D174824D13DC80024EF0FFDE2C4C24781F6D24ED091F4CFE61B2151E6BC6F5DC08AFB5DEE5E53C9897805D76363DCC57B42472C57C8DD5AD2D028AC0AC9640C14BFB18E8D6D4E6CC505F68AD65C49693C42043595098DA51B7AFFF60D7B26EEF522B7C5D1281B5962E3DE06EE6A09253897379DCE3285DA42DF236431EFD2E60E255DB71F380FC58DA34CA88E86A243B20486FE52B6774CC17C58BF1A2E3978A61FB046EB18014F9485752A9BBA5D9A434F51D0C0A2AAEFF67B801A996E1189BF68A0D3390B94595018FF6F925ABC9F4E12C90B8DEC1BC7D2720F658826CC53082397E19806DED90481E73F99578AD4B1D21FADF9E9D808BA8ED362B3F86E6EF491B13F48F064C22D278016DB5DDB264A4A0A18382913723E8E3FAA13057872D75C158A056176DBEBA30D7C62984E046E2188DFC3AF9C56149187BBA63CBD1D52798B4FC90B95081F5152E4686D3B9293F379F2ED37F365FDEA9E15024FB028C4C1F76A49EAB005FC92692A09BE757CEC084F4856D28A13C36637688FF369695A1FBE9991CF2CA3A10C6646B36B0ACC0CB00BE7BDE17682842690CA18C17E690D937E55098C82FEB02907B83BE2069B336425277E3BAB065614A44FCFA606CE390D504E72A8CB79745C82AE0A259713243BBE863ADAC3496E9254F2BA2AF5007EEA92413327FAC766600619DFBF7C82D4A8B53C50EFEDBC76A199A8CA003D5BBF56BAFC0DBCAA0BF43E4EE53A0DCBC4C10945CFFF2398377EB3DBA89710C0AC3C38E484645A629833B204E68E03D9C02322313E70F20B2E0655146FC8E4D94464DDAB904534FF4A53FB8D5FF9C5B6787AAF969275E817D66525C07ED7966FF96E906FF6F9A3F0B61788389C1F779DC4E6457DB0C2E1056F28F589021211450772BF97643DC8351809DED81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8");
doTestKAT(QTESLASecurityCategory.HEURISTIC_III_SIZE, pk, sk, seed, msg, sm);
}
/*
# qTesla-III-speed
*/
public void testCatIIISpeedVector0()
{
byte[] seed = Hex.decode("061550234D158C5EC95595FE04EF7A25767F2E24CC2BC479D09D86DC9ABCFDE7056A8C266F9EF97ED08541DBD2E1FFA1");
int mlen = 33;
byte[] msg = Hex.decode("D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8");
byte[] pk = Hex.decode("624563CB6E4499327172AF7F15FE1893614871835EA6F3330DD94337204F88D911FFB91B06CF2F07240203F75353906FB7EA7BCD0A4362546D94E60D32833623CD73B1D055DD1C2533CE5B81DE05C02966275D289D25134EF8577C7A489B383D3FA769DD3C1C033325034B731F7F678E5E58426F372F0F24DCEE455A8C6B0E6A68796E7B8D36317B23641E7D4EDDFA1E4F4A5012F50E70222E36527A14A559F4132F025F2C20BD3C2C023AE2E249E94D23460C80B94006CB1E38769A510911672D2E48AA5E5DD54F38746C195CA954D6A909CE33759A222399F209FBCF26641029D08D4C0C3D51D2FD7DAB2A6A3779365B06720B686F052A1FC5A54C5B4A26962F224C194096FA7048372F037D5E9772315B956881615C72EB57A0B661E9851F5BB61A17755BBFB571CDD90FFE562C4F147846407266A43AD9D063CD7710256D69FF6F07164E7A41D13E66C60614EB7F69B621F83237633E36E7F16605DC0A89A774E425323BCA551F211D4AC6110C314F39B873E48062C00255EE6E7E5BCF75A94F6DAC0E182C44532468658A2A6A9A9B72BAD7715E0765A10B520CED236A4D3343FE2A347D726D6107046877FE583F09FC50F4804CAD603810A15C7BB655400533721E4D38E020EFA64E3DA8277DAA437465033C486FCAFB5235B44C76AB27ED5E5D7BFA6CB2EF6EC7AE008AB5320CF861DB605321406ECDB56837572048175831343A1A192E7844225B6A72E66B42C98C7A3C513D2B5A71BCCC329BCF20246C241C4B5EBD5F37ED144C1CFD173F6330F78D40C9A952192201126F79EB1E444BE27E3FF500FDFA0BC27706FF2A4381454634540D3BF44CF418613C087776C940F5EC1928E1190F710909EB43EA715FBAFA3E3C140396EB516C9664A87277AAFC139D343D512C65776056A1C31104645033E03EBEC24D99837D1A427CFB7B72DDF86054744ABBD62B57A8355C8D3994F84B2A4B2CC1B731529E495F811A73414C03FC1B66BB0C58105283F42AF9B2521A5B717D8A3E8DF411A85C68F706006E8B7D1114769E2103FB2B7601DB1BC28B0355D909AAAB3702904F96BA6FCA3152C4F042596A7854B13827222DE0925A47CE40F2AF3FAE9F19395D70DBAD28DA8E7AC34F5BD36E174CA352807F2C49645B05015B389B3666A679AF7A033C8C0659600F6761263ABB6B4BC2360F29267AC82D80905502B7557A295406D605D75828565046DAAE09B12080EEAE67179D53B05A54444B4CC77C1E2DAB2D298D785B841047B5665D3C36E3181CD7AB2DD49F78633661949F585E0A18530D7940046E140D684C033915EE5DBC3A07C34A4178516F43964F0E2E04647324D26107980F68FF990C7B8C0C47F12FC1AC384520485EF061DF373B78A12D80810834AE36E5BA37397D35AA5C4625B708C51066F5C54CB1C52E0A9D3CBB772819D44A875B78AC4A65D3EA7621BE271914770B8D363CA911B8874CA1C16FDE314725B409391933DBD96B5BB013C2723E307D7D9C1C41654049204837D4074FA12B46E25D39E1EB3F74194C08CA47453E2092AF3142D06950FE14087E1A80970ADE4E7C6F6D70294F3710743854AF2D0A1776DDE166895950DDF06B2ACD11E5A248D8CE52EFF276AF9414B0DE264B315D61413EB731154CEC10F0FC230801229311566E781A57F65EBDCA4EB0CA71C62F281AD139D105108FFD5345016734F37C039377F71B36B649661F425A2CF3132CD40FF6DD5668C25808441EB86415136A55F57A1DC5991463A00BB3C67CED334979BE64A192471EC95F9F591014D607BD23585E5F0E03B33AA6E11E70F3314E7305336F5BF5E25E25D33C985B2D86BA0C41980199C506CE420F12523269D62949904174B86B383E41255F64940029094C0E9BAF76636E6E37B6711DA70ED1510E6BE35DE7C34FF8613BF3AD2358161E0E7F58696A669FD50ABEA278872C58BC3B1387F93DA26245E1DF1A35D32BB51F372F1133975E5DA27B5E112B43508D5588EE21D7A2704A9F7B1E7C62454D6D4321171C3647841D4A7BBB3B25DF019F856B7DE1652F26132C55049BF85AAEF21FDDFA03BB873761A72B389B3217C238B1EF315D4778EF4643431E1327350F240040CCF90C324370843554E9C23F6075089FB94677E85377B74FDD6A174F3B628B3F30778A629F6A5D9D8274943110095C3B763E4BC9862DD3F1441DE30256F20FE5DF629DBA55AF182C373D03D1E707253360E69455388554FC8140E97377B38024DB1C1CFAD014949552BDE132F8BC1D066166B48566C4A672B9F07A3C32399CF351AC073665FE4D52D11077CC6E823516920843FDF62FAD5D7D081B17470F16122317C3C84A7BA54B988E77952D1ECD012F90BC3C1E4152FD577E927847A8F943F5B87170A933C7DD5C8DEB4D0D02615E7B66D5CD399D0613CD111784C27A27A71516174B0D9534CFB51B6EE67D77767B818D79444F4FF519397E4C7B87EF06B0826DAE7031CFA63B835D4E2FC5035F3118463977458C6F5EB97F9CC87D77F107C28402F9D616681C108FF14C432315A368071A6F19C18108833137A4DF25764754FCF509EB6B1B118029CD7425566F4569020F5EEA7C3F5A6B0F3B62E8B615333F5FA43E15484C4F71496420D331D7FD74445816273113BBDA6DD5434DA9537EAD8479F20C2B4AE7648B9B04EAFA3A36143F0AB364552A482B766ABCB33274C832F5B3687B4802E3E369804275A0F443C5B76113E7380ADF03BF7057BAA575521D75F1EB5F774A7353A94D9BEB1BE70D174E602435FE55B8863CF5F71782B83F1AB62C222D5DDC8E04B20D5EDE755CB89E61855A160CBA7F60D708238267FE727DBDF67B8F160280A363F04B5EA62F79ECA260A0DA31B0C016DCF509A32E80A2B91176534A36B345FB2018C17540D14D569CAD14644F1135E779D360078F1D3DD4790757E035A4466B1C097751C01FC0E32D6A0C24ECD16D027441A38D26A9125F0D13039F9B2650E64C31322DE2743FB5306D057C1AE9B2051D916C0E076439070328344C970E47651B2D9E826DF12C6724347FCB3E13C61E0B79AD1E67D747C1BD3A9FF274B5EF0143126EEE3F6A72E10F75A70A77EF46B40B1A2D5A39BC2A2933DC3222787C60AC73ABBD110E73698E6A00C8BD031B626583832490B67647A3499A9431F3446DB4710E24F32F3F321E6C87427ADE28DEE2287D6120C6D633E1036A1B72067B955C3F873026E01957491B5F8D60888C13A91136FAAC24DF284668B31602C24EA4EC4BB0AF4A444C3AD22620E0B046E0CE3B28186265BD34C2EF34A74A56CFF15F230F308C6547D7252D340412F37F279B033C068961CA220A6855624EB860BEE53E8D0C492EA668A81164A87F042D9749DF8B493E4F2564D437ED53183ECB06961A09A3E30C4CDF37013A7435316DD6877CF3E2556689320CBF6B504205CDCF0B5F600EEF300669F65123B60972CA14785E4B54514143193B889D17415769413927235A24BA7D3828A844798179A44914C9F94B47701E07233E5B4050B6044270930583E5381AAD35E1C906952C1CAB143777C26208F90AAFBB6586295F168758400655DFB852BD314E5F5935735D66090521395B56CC60029B752D5D0E2B69F70043DA3A620D6A089661060B04E7402D33B77E726A49AC7C4D8EF52819E704B8B41745811774611BA3F108CD3143BE976A4A310D13320FB3C92B41C353C3725DB54B091B1E2CD9BB474360159BB615AD614399D7635465761748078FFB19828B72A1B57001CE20289E0F02BD15BB5E109FDE3E92BA495C660332337B94EC05568E4AE9065D1B0664CD4D11CA9A0BECDC7AD4041E2C044456B77E4E3C2066A33AAC412D53E66E2AFB12B946079B330BF0852D033342F2914337AE04425A02F80E1CC55C60530C08692008AFC758749726B5340B29F74A3F8F4045436293870A91746FAC025EF07C7D1D065B9D120962F87255E21E6EC73277D66B353D741F2D3ED099670C560D929D5E352D7CB5BB2A529F35FE8E514E4D72779256CBAF0B382A2E082E08294E6CC83955B2FD0ED1C65AC2355674823854F807EE707F83F42120375D4AEA21D076503CEC7DD539645B527856973BC0F06597081B7DCC48D428130A9F3230065632201FFA404FEFBB7EAAD60FA6AE57CE312CF7A51703610B6B9D0BDAD64A09D402C8D670DBEC4146816D80723CDF8E4BC6DA4CD5AA540FF510626F12FCA9485DEF65045257B5B24E896C647FD61C5D12013B3277DAD75B21243AFDA11109826B7B7F5873503323EC665D8C11E5CB441C4065FE1763BF302B21DF7FFBD021763F6031AA36369B198D761FD1FF1925583733EB325F845D754426B60E7FB7708849FEDB54F41A68314805A5C0766ACC9F338A46B29EAAC00087AD");
byte[] sk = Hex.decode("1C002800F0A040010E0AE60380A0400001000406101850408100020FFA0F98AF9F7E000701F22F08C060BE81F9FFFFDB1730208002FFF60F0070903E018006F917F8B72F60417FF9F1E7BB3FC0FF8100060000CCCF8FFF7FFD001412B8EF6FE03EFF04090A0CB0EFDF0003FF063A10C82F7F8002040604C89FF03F8082FCE9EBFF0F50C0000304FC0104E81FC0BEFD07F8FB03C04FE0C002FCF611DCFF6F5F4081FBF90128F0FF3F00010609D41710F080C004030AFCF397105F400203FB03FC3F80BFFDFA06FC032CE0AF6041FD07F4FD3F40EF5F817EFBF8F733D00F1FFF7FFAF81F00E8EFE03E85F40A06F407C07FC17EFBF70BA0E71FA1810103FCF90FD05F6000FE03F8F707F02F60FE0403FFE3EB5700FF7E7DFE081C08282081C08008F92D2C2030A0FE8103FEE5236000C07FFEFC0EE60FC00FE080FDF712FC078090A03E7CFC0C1640A01F5F81FB0D00E01B809FBF7E7FFD0508F0B78F20417E00FE01C4A73FC1BF8100F901F0F74F1F800208000014803F1F427BFA101A2C10D06080FEFC111AC4DF7F40C07CFF01120C581020C1FDFC07FE03286060FFFDFBFE173038801F828202FA07F417307F3E7D05FC1B50E8AFDFFF8306F005DC172040808004ECE5E33FB080418304FFFF27889FDF0103FCF5FBF73F0021FF8300FD152020B0FF817D04FD0D3C90E0FFBF080008E03FE8CF60C07A00F9E30788D01F8280FB10F22B686FC0407A00FDFF4B40F09F817E000F16D8BF4F4041FF0602E0D70FD07FFF8301020204B03F20828203F721BC47801F7F01FFFEE7FBD7FF1FC0FCFA0BDAF75F30DF000406FDFBF3DFDF7F3C7FFCF31F886F5FBF8181F904043840F040817FFDF80DA4A76FDF00020A06F02BE0BF9F0202FB03040058D09F037E0100E0FFFFBF803F7E0006FAC3BF1FA182FDFA0E16C0EF0F014182F5071440B0EF9F4183FEF909D4EF5FE0FFFFFE06F81B1840E08002FB0E0814103000007FFB13F403F8DFDF3F00FFED13E89FAFDFC0FE010DE4378850600002FE12F6335810DF410203F5F9CBD78F7F0080FF00E023E0EFE080040206DAD34710BF3D010204ECE7DFCF9F80FD02FC170490DF20FE010107EC0BD86F9E417F03F2274038201F7E7EFF050CF4671FC0C08100FE0B14F8FFFFFF82F9001838881F213FFEFD05E4F3077060BF7E04F9FBEBEF0F1F827DFEFB0BD8C77FC0C07DF600F42F980F60FFFEFC00F257E02F21FFFDFD01E653F0CFBF80FFFBF703E86FF01FBF81FA04FCFFD79F2040FEF9000A0410406042FC0606F4DB67BF5F0284070A0218C8BFBF0201FCF90D3838E0DF41FFFFF2E5FBAFBF1F40800300FC0380D0FFC181011024F47F0F6000810102120CE86F8181810200E0C7D7BFFFBFFEFEF8F1F3CF6FE0FE00FD011634F87F40C17FFC0DEEFBC73FFF3F060A01000818C03F408302FCF90F60209F7F7F06FDE7FFE73F60C005030EF69B476F600082FF1202F4F7DF7F3F0402F22D0080007FC0FCFDE607280820018001FD051EB4B76F204000FEFC21E49F8F1F7F0105EE0FF82F70BF81040500FA3FB00F60FFFE010BE013F04FBF7F7D0210F26F287FC0817C071302E81F20603F030119CAFB4F1060C0FDF9FCF717F00FA081FFFDF601DC1FD0607E83FE12E6EB0FD0E13E82FE00041840E040FEFF00F0190410DF203FFAFBF6F903E00FE03F8403FCF52FC00FE0BF7F02FCFDF39F4F40C381FA020AE417409F810004F1EFFBCFFF7FC07EFB070010809FA0407CFC010624A01FE1FF00FD08EC0BE81F003F84030F02083040FFBF7DFFF81B0CD04F60817F06030C0490C01F408108FC0F10A8BF3F3F7A041200FC1700A081FA03FA21D43730E0BE7FFDFA0BF447B0BF7F7EFBF51138F83F21BFFA0706FE1FA83F40C1000001D433E80FE0C07C0502F2070020C00003FBFBDBDFB7DF60FE82FC010AE4DFCFC0FE800A02E4BB3FE0DF7D0400F4FB0F402000007A03FE21CC3F1FE0417F03E8ED2FC0706001030402D62B38F01F0100010D0C1828B0DFC08401FF073CF01F404102FBF40F1020A03FBE81FF0000FC87CF808002FDF8EB0340A05F407F08F11B10F83FBF3F010001F013084020FF800101FC4300705E807E01EAF51360FF3F3FFE090A0C28D03FA00000FD07F617F8BFDF7FFAF9FD051028B09EC07F01F7F11F2800BE01FA09F20334C0FF3F017E06F9F92FA84F1FBE84F600FE2BD87F5FC08208F72D2430A06040FD02F5F10B20A0FE7F7DF906F4F7B73FE07FFD00F00510F04F3F00FE040702BCA760BF41FCFF0004F00F6040BE8100FDE907686000C1FFFFF8D7FF176020C0FD0000F017981FA080FFFF0204FC4F805E0102FB03D6EB0710DF007FFCFD0704D8AF1F01FEFE0AEAF73FC0FF3F80FB0D100CE8BF1F0004FD0714C00F40A040010002F2EB1FE0BFBE8100F11F08C84FC03F7E02F50F1C50B0DF82FEFEF9F55718C040C07BF8FFE90BD04F7F417F0114FC0378F0DF80FA02EFE91FA07F9F3E7CFC0BF24F906FDF3D01FEF709ECB75001FF800601D2D7FF9F3F80FF09010AE8AF7F80C081010FEA0350F0C0007EF8FDF70BA86FDF0001FA0E162428D0A03EFFFE07FA1B28E0DF807C050A082848F03F407DFCFCE9F33760C0FEFF00FF0B18B81F000102FD05FE53C8DF5F007B00FD191CB03F01807FF5FB07B0D72F403D83FFF807A8D7DF807D8001FA0B10889FBFC1FCFA08F0FF2FC09FBEFFFF07F8D74FD0DF3D03F300E4D337B03F827F0AF41104D0D01F807F02F4E7F7D7EFFF7FFDFF12FA3BF0EF7F81FEFD0006ECAFAF207F06F907F82FE8AFDFC07EFE0612F83F301FBF7C010124F84F50A0018204F9EF0F0820007EFFFC07EE2BC07FA080000005FA3BE0CFBFBF7F0705FACF07A0E0C07CFDF4D93BC8BFDF3E0102EDE52758F0808082FF0C0CF4BFD0803E0204F7FFF7173000BFFDFA13163470CFFE81FAFB04DA1B70E01F7F8003140830D8AF1F417F03022CE4CF9F60BF01FCF9E5EB4F1000BF7A080BDC0FC8FF1FC0830BF7E7E3E7DF200084FEF301D0DF2F00828201F2072818C0803EFF0300F4D77FD0DF3E80050306E40F60A0C101FFFDDD0B809F603DFB04001EE0AFFFDFFD81FBF1110CE0CFA07E7F00F807E04F903F000104FC17E03F501F007F0BFDD7E73F60C0FEFDFF03E41F987FC0807FFB0414E41740C07EFFFE0516EC2F9000C1010703E6EB675F000202FE00ECC31FD01EC17EF60028C49700FE3F01FF001C0490901FBF7C00F40700D86FDFBF7DFAF80360D04F9FFF8003B60E7FB7708849FEDB54F41A68314805A5C0766ACC9F338A46B29EAAC00087AD394D1695059DFF40AE256C5D5EDABFB69F5F40F37A588F50532CA408A8168AB1");
int smlen = 2881;
byte[] sm = Hex.decode("820713D8B1371DF090139185CCD8653129882FDC98C3FFE2E84BC7F2D80EBAA1ED2EF0270809C60D2AFA9E4250A237AA3432E612FC95427E40740031C6B8A6AFAC01A4D4430A8BF6A54F262C57E0235FBC4981EAC6514DDD8A92C551597E2E3C700C85C26FF62DEE5B72CE035F2B7457CE02556A6ACFDA6E985733E6062CC0AC1175DB2EC9D3D37F8984B315954C79EDEAB5B0B1432F6F25EC553971CB4DF7E012F19B9FDC5451EFD313FF71E8E97AB9EDE423A0F7D700F212B7A703735592298ACC16CA62BE985301E3B9C12D076E3C168A14F6FD5901934BED20199687B5236772A36596EEC99EDAD3362538FAC2CB46E0D1D546D112C90082307D41EB91AFEE0012E389D09ADAFAB94BC6C270087E769E9F1EF51B6F37E26F0329C925C87CFC661C65CC0CDDCB8955438DEC61BF2F0A1E644F4E8072DBDA1D3E03CB45C79B14DFBF8DFC9C220482B88AE60C1161B6D5B55E8B1126AD84C05C021A69408EC230ED2E377671E3E8662F57ED83D6C295E45A35B19E494BD75D0C2BC0FDC517D40B066E78A5F1FF99D948644A590998B6DE51BDCECEA27E13A118B8A33AB276563B203366F8790FF8FF6C617957FEF2873C32FA658D8F5C7D25F4665B25C73F7D4EF3CE91077285EB031ED4668A0692C3926E16AC928C4A331D8C79C8E93C2B93A2571D171B383E339608B3213462B20E56B6DFB14A6642CE0E2244C770EFFB68AB4D039AB34C172CA497F57F272030C376950157A32708E343F1AC11207254FE6A8F7CB958AD8934A5195C8D07378ABA0FAE7242CE322848BFB9B70EF852943E92A4AA8D604909DD0C3FFE9688B323E9126BD1D9E1365AE7243A0458C90269B565C09692C1FF6E72A5E687ADF21555427B77296AD64872F9BE9AE6556BF8A6FD9EF87BBD4C1D9D211598ECC04915387E3613A5530A3866B0084C25F3093796B92AC377F817E09E9E84B65AEE54E7D4C2D4E166F18ADB33A4F3886198A140BD7129722CEF4AC8B5E506DBDC4FF140F71B7B87B02410A25E5DBF25E94F8CA8E6E5DF3687CA1622F144E23A1859E59E45897002697B672D11D614AFCD9691607804AF9C8D7D165078265D9F16FDFCA92FA9AC36E6102BB5E4FBD25D771BB877A2105B03591D5A0805345440B1742DC9AB8979C09847EF3A92E40ADC3C6EE87A003955D688F0B99906185B9F4D31C34094AE8DA9189E828A235A7768900FAB1B192EC3A127586FBB1FBE7BFC7CEAE5738CA5654244CC0AE90ADCA3525F336CD557B293065D9457C1D64B400D1EC567863872F917E7D35CA192FD56A2119D3C3970512AAA3F20DF198E9D10C3938312461E2DBC93A2917BDD427DD92EA49CA4CA4BD2BBC1766AFE446805010683151817B73B26E71D48D9D11E5C5358CF5B366D6BC2206081C1603BCC6DE2429D0DD55DBD8244237A465DAC87184C366553320CFD4E5D14DB498D16A9CDCCC7029AB3F93CEBD090958CA3FD2062DD780B21705F77F7A6DD2517B3C2E23A950BCFD568C0D7AADB35CAB9FBABBF876E48819E1FCC137849F02FC9355BC9DB13CDB6C2AA9CF9EECB82AAB2A36F4105205EE3E9F098706ED2B5A2D7EA1A9378849D1B0690DD8898455E51DB42BF52EAA1005DD84476033995AD13A86DA7A2E388A929E0318F37C53C2D502DC0A4C21C88313726056F33039EF835F5491A2B0118C4263ACE4FABC611B0BEF2C355ABCA5E7DA1EFBD6D9CB570261B4EC5CA9F9BAC1AF7FB25DBF12D77D5BAE9EAEE0266000002F3BF104799157918F6227082E39317C7B48F93A9DCD2D5F6DB8F0D958E9F5DD9EB46E195366AAA188429BD99D33DC15E27047583DBD6A131B2BF98EE022003F124D8D6C82266236DBB4DDC44113784C7F821D58C75511AD9BEB9DEEDECC3DA9521895CAEB33660D9B95F66FA8A2C4048E7C1202E0A959E0CDB4E1D6FC304F7AA48B605C099824E7890B841589B49E91B0223F5B51862E5315D96E50348A74949F9F11AEE6C49C077DD119990F2F46676102738497B79E5959981A625A3CD5D8EF1086C6B7FB95F44B071CD18FA64052CA5E29062813ABAFE51063B94C6DB6DC70DF9E9B9C82F41B2C8E03B6BAAD9F5E484BC219AAD819D58F65C13BAB464DDA67C07D20E2F23ADA7610786FB20D8B6520DFD2535427C53FCCB3B66924322897DE74A10CFF1112FADE0B16D0012FEE2F852B3C8AA734CC413DFDEA0838C2F4821DC7EDD31D16C23AD7CA6B4E8E09AB764810BD741E0A7BA4A86A9F72B17CA2194C6BF62E315312F8D94B0D3D0F6D293D64F9D146DF8E08640E23855429D3F23D3860F63CEEE1E3F1B0E726F0DFFC74B494C1EBE52EA725089CE4F9F7B4F939B936F0592E5507C45B30C75844C97FAD4E446361347B38ACB22334EB7F79A6827754395C6EBFFAE5FABF096647C69D251829A50657E9B2A0EB455DCDAB45B52964C6339837D28BB76ADD4C44684C9D7FC8B3A559EBEF40EE5A2CC4DCA67BFF35DA1B736DE23AB3C994EE458A25B246A60BD602CF6428CBFA300320C1D78FF6498E8D2A504AAC0DC07E5A0D077445A78875F20275242F1D5290EB3B98171C272D4D686948D33CA4F3626D35C3C9376670AD9ACA8C420E5C43156A2CAB9D870E1D06EDD85E652D962BE186D96B2F9CD84585F67424D74004407C291DC1F454644B96E003BD562658D9B9C07807FCDDBEBE761223500B43792EA77AF20525EA0C1897368FC97097DB6CA4554D1AB78126EF40D6AE4A6961F8E90C4D3B10741B6D2AA3C89F0BC24985EEBDF691779BF1CC69B27E076424AC71DAF713295B6D6A620DBC1D6B9C8BE196CAC12E97970FF14A139D5AE21F9D802C695EC4AD957CB340760612894FD76C1537B0E87EE28B56B52A3276063A7E96E48C3108ECDFB2FF37BBD3E1B8AAB2D7407C91DFD7BB6F8CDBDEFBAACCC8D74E1E75B0298F0820DBB02EB372EB42EA768BEEEE93C891F2B768133D90A32D60FCC59BB9E62848F7D3C145ADBADA260461D0FE0D080990CF5C1DE9EC5104CDA10D6F1410A4693B5EED91E4F8275E86E18C2604374D1675EE902A5F8790BB55656ED228640E9043CFB7BDBC6E38850680F69FE51C60F6DB689911505F398B6991C19E5D9A04C4853749E9B5D90F8F627B47B9A490EB657E0576C587EF1D7A1E3005738BCB5503BA34B55888AC6D0E037D26463F827F67705860FADC524A50411E22B544988B15884DEC6FC463526FEF1459A1A47DEDA883B36FEE3C0915C42609B8B719D1E7D0AB1137D101FCBF22EDDD6A148D9EDB29A47128E13AE50F11B8AF5946532E85FD1F6F24D3084AD1F672EE9EF4C33C71AC6C7C8144589984E31A56E48CDE12B51007F4559C2DBD0031448E9A648F1A31AE84B9C457C59000AFE43576AEEFD34A8900CA19121C5B18BB8475F88967DA7AC8F5CDDC8F46B9D1DF7EFF843E65845AA03D3EF3AF35F6223B973DCC2367BE4CDE98464C51FE4556412664E1C506C86D9F691A494E70263CB841F1F0736AAA306F0A06673B6526CDE65478D7DB0FD9E4F49E7436D910FBF3BBD72FFA34823B83B78A7AB8754E9C6E76D0CC5033EC64391906A1B023949384F72FCCD85B4BE279FE5F69D04A6108CBC1706A49EC180EB6B9A93049F517CFC0E9EE45749889CD86C76B3E371BA5D9AF10E9F04911F6A46D734980A9B1D63C05C2276C5756FBB39015526008C3196FAA5C698B41F953045D0E366CA96DA5D46072B5AC836A2F87A5BF577453103EA9DB0816C9A46874DA2699777D071B27315C972C99E6453ABA11DECA1866E4296E451AAD416F1139118E4F544DBAC1993834CD5BF4CE3A83DDBF2177C2FE66BE72A13C93140DEAD9F9EBAAC1178B128D0A2726A91D3C07C388C40D1F000D251370E5AB73D5F429565A5B1431E9B4C0714E61F58C2918E73D381A38AC42181D3DEE092948A761232386CE273DD7B1F8B7C002CB8D9AFDA95CFC116A3DBABCEC7FA991726BE4AE4FE5D547C0B7206E9D53EF329BCF40A84C339C8394C8998B69ED6B372A4672DD79E068FBD7782CB3873526D43D8CCF4A4D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8");
doTestKAT(QTESLASecurityCategory.HEURISTIC_III_SPEED, pk, sk, seed, msg, sm);
}
/*
# qTesla-p-I
*/
public void testCatPIVector0()
{
byte[] seed = Hex.decode("061550234D158C5EC95595FE04EF7A25767F2E24CC2BC479D09D86DC9ABCFDE7056A8C266F9EF97ED08541DBD2E1FFA1");
int mlen = 33;
byte[] msg = Hex.decode("D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8");
byte[] pk = Hex.decode("EA7347183E405433EFF49CB63A9E736B39A86CB67125110ADF35536A44940BAAFAFAB19FCA5B8F11CF72F7199E051A9A607D75D093FD1DD7F7038F4EBB172F9549747FBEDB2EDCF24BD007610C111E032C1852E4A92A8EA33057606200B17C785B8BB0B2A08DBE93185F3B931371B256CEF871167BD21876B1D62FEF325BE2D0A716A6ACC3D3CCF516DCB267093035DA9359E8A698C3946D88200E9033AFA1E87A30A7A626056F944010A5CFD972399AB7C52FC0E87D255A589EE0D3E14C4BABCD5CA50A561E71428C98B72D413B117F827F0FB557559FB16FF4EBC73C539C43040ACD34FD676C1868F59F84AA1398A61E99C090A8E1A7C5A19CC23CD21BE2B9CA6E23F6A7E05E3E69AD6516A085D2C58FFA0883EEC30C04B648414C3D4DF1C87AE2C5F06CCEE989ABE455ADCABB6C84FD17D8A9D1158E91C4A2598A153595B4C2F0921ED24A49F758CCF7FC170B3959B2F26791572ED54AA80368D5800025F6138B595C7D8B6B8AB5F340399AAE0C821C4B0A3D677B530227B33525D9A48AEE067368A81305FFCB2E8615035CD56203EBBED33B5B1F5B575F920A627A770F0644610094EDA55FDB7C7BB7A723DFD4662780ADA0BA214D91AAA9C832FC29DB0B59EC14F4681FF05B6E5D087E91F891416CF8150604DF06BC7901B6ED33A5967E91799BAF9E903EB7967D393772F7C170D4ACFA36AA333BBE00AA2A40FB3A8D1EBE9D88926207677BC27BFEA91ACF49E009725D1CC9CA4566FDFEB762F4DADA0ED3323A5D48FE9D19B0B60809DE4182EBAAD5113019C9FB4F9216DAF2574EDE87B41E14590AF2B6E71950881DF07B5303C13EDD4D516FB059C7B7F1DC5CE6BEF6D2ABB65BC6B2D5A0BD555914BCF21FAB87D417F66C87C0F007DFC6DD6FDF22DB646F887037227A20AA1CDACE683FB7F9E4D4959FD9D361C073D22DBD89C4BA32CA1B9BA803BB8EAAE6495269030C24C08C8844427CA72F321303F112EAD94E3823D354730EF3CB2F561728227BDC2321FAAD7ED43B54603F94CDC42A06CFED0F44CF34F357CE3019973988AE101746513DC8054EE0464A8FA8654A724277C511D0EC41EA009F837116E9B51C9491E0D6E7D4796BBB84E854C6097156F8A77CC8913F3D05E8A478667071AC757557FA30958314499E377262C79EE8EF891201A7E13710F4F6B252EF970B9B71A050681CFB0B2147D6108F7415A55FF1E70CEEF738272B8EAFAE18907E6D64F6729F5EDA8FE2E779554B41846521DC530C3CFD36A60EC145D0FDB6AA61800A534D9853A6B364F48F54558DE0132A39B4E5BC1ABC5BF376A5BC02439498B4C21FA9C64A72A9A55E51078724BD235E3D75D8AA12D4186C2D8E65CFF70E93211D996556B67A0231CF46E80B1F258C8FADD5662BB8D23B84C8C5EEB2612B0BC2A7B432B321AF2253AB16EBA0D24CCBEBC6D9DD83DF22DEB57EDDE1677CA943FAEC92E560E58FA0009F7DC4673722DF8FD38299FBB34FB61239611DC97A6D24B1ECB4CD6DF5EC4658304D34EEC218A55876A338BFF8BB2470B7F8275DE34863B27D5DA1AFAC7A24039DC53ECB99079E0D7DA4E3A5632D97AB065D11EF17BED267CC88EAC42A9A7C119D1211724D0E3A68A54A6220CE471EC3CF49FA21B4541FBD0CB8257B6396E4F2CFC8BD0756D4C0703F5B5CD656268E98C043CE4ECF34A377B8846817DEB391CACC4050E797873A1F88E974106471944D8A2A25E80FD54024C95A2B5E496FFA076F7930EA29AED839AA58954E5228F2EF55420C048E3AD1EA894EBBD4851AAF0A8C99CACA3057C486A0E0C2F1763B4F3440C87BAA44705F563EFA435FC68D165D0544902A3FB3B84FA8D74001F4C314F106D4AF37BFC54191598D2A28869F46D76B68D72D5FF91AC1F0E31F556F2030C816EBADFC9F72A55B9CB5F9D4C881DDF35448140025651B9D0EAD4C59845119C8D3FDBFEB219142C3C6820032BFA7644DF7E7D2783E27E8786053B02EC68EB4CE6DF29BF9FA8B1BA2E8A6015419D0A3D491E884C4059184B9C6E7BC35908EA60BAF531EFEC1D2379389291BC5E17A31F1ADBB5AC09EB3EB845F3044D31706543F063644F6D5E7D6DC686750134C9811B4BC230EB1EF7E8B214D82E444B0D3EC367D5D5D0912B5D6EF40F3D36302D726D9A988C208567067B5C5D9521EAD36A23C8E9C956443141FF78569A8E0D9EA2BD815A3A9746CF4F1CE603E0894529948D873A67C8F244DC10D9B706E127D508C0A814E9132E1AAD7DEC1BFFFCBB98EC65F1BDD6A8A03DD08256EE50869EA3509C2797184BACAD88798492F8958327D5F1071A90F0698EEA7676B4A86DA0ECDF4F3EB5553599514CA78773CBDFC9F091124E62181C637793A98E02847143ADC41CB3987334566846E4D201CE926D23AD382CA2E5E153342E7AE8CDE9FDD76148251F09C7290ABCCA43037BEE98947BD673B1FE28C0951298BDC45317AF1896D0E4B91BDC2AC886D18DB6008D8565FDE10D5D87322A5777C66A910FA2710F83BF61B396E9F82C2D68FF4B524616261D444F7AE05B57B4A86E23C6B759504812C305906ADFB5C900360E79EF73F0BF0233F5181608ADD756B40EA15DBA12B4AF06B1952F3ACE3908F6AE4625202DB122B5087E7808963426B23CE9B85260C924A677812EFD1A55E08CE2ED673BA2D6DAC7222A336CA6F0A05996DA63269EC3F5BA62E24593472AD7818C1800DB5A727D0C8A492EEEB22AB981CB688853751DA34F34A6723591909E2197D1A4D065737AE476831C19F92953CB7F889EBAC46A31D247A9108B3450A8F3B4437D0208B0D21558AF4E31DA942CEA458DD88A605DBCF1136A2E47897CE17030984952ABC600B8F30292DA4274593CC71497E9BCEB9CF84986E4C2047BE8821F406F1E000E18F050E3DD8E7F3FBC923D0830D1A84DB2B08F8E0623E3480A20A48E20A2F0F37E144CA58283A97A20E12DBE95327D69CAE4234381457CBA8FA237F88C466E8DAA72BF89E9517C28BBF4744D3214EE8B3263DD64C06C78AD9D0CC42517048DAF4AAD330BE626F23338FB6819329D11C10D928C11FDB96BC2A00C269D7839DEF20580F82F7D9B48CE896C45F568A6B38F123BE6B0690722DE463690EAF8C8336F829D4D48E001A7DB63470A39430E6929BEA765B3E8127C4213658C6938CE5D566546528D60C8B938196BE5B3378755580816C8120803A46084BA1980D9F129D47462874022454DA5E040456B2F406218E315149D1B79F7115C81B7F98E1A1A3F61C96138152C0A1B3E124E630902E6033742F7C74946B5D2B4D08DFDFD29FF7479C313FE889B1CCDA14904E0CADD9963F21E564EC09202A1B263440E9CD8EF3C25F2F5D58D278DF530F3940B79D7AAD270497DB9EAB1536C2F59549CFED6E5F4A9AC9907E586357C7CA305170B622CC3A571E45E1891690EF11C1BE641A2E4169C2D037EF6130C7C70104D4BF844CDBBB6C805A9B210B853417F6E2E4C85CF4D6053DDCC94122D5F2CEBAB51E0232E0DE9B19FC5CE0B78D569884F4F2E33BC4B1BF6A370B7F2E317670A136FADB81873EA13178798FA48E9E1123DC5B31D88301054F0D964C3939C0CF1201DBE5B43C1CA9E95698AD80AF3EE0633F973665468039EB73C63FAC0E70DAFD81F17492B022E98C61950A5D50846FB707CB7CDC7C51BA2EB7B2648C22BDF81C17A8EBEAA351C396E2BAA27D014F16388F215C5DD5CF53D077A4BECD1F57D0BCE1CC415C52052934179366443F80EC1D2266A80EF5A4CC09BA0E2301219CB9DCD88F30639B0A5363CEC3847CDC0207FE65B260EC1A4B5D40E3870EBFC1C02F2F4591A4D666E2754A523D9F1A5E79B69FE553B8405E338E4587EE2D03336EC2675A95AE9A35D9FA2D91FF934D30D3FFE4C7635C2DDD2FBF852859AA91EF913263070E238AF16D140A470A8A4A2A38720BD667EEB08E3436EFC4B74A9CC9725A7F0ED64B55B084E8EA7EBD1ABCB8A21E03CEB0F9CE5E3445F226B5797613C030F4ED5C445DFDF886AA6D7230962548B53CB551F3E6CB2FFF4799AE47E2293AD0FB30AD70417BB9F12CE5E7CBF9835B593F8659D98840D5F93FD67E0C48268F770E13726687DDDF8FD41D5B729B1B800892BC46D46154449A230139E80B59BC827B7638E1DDB20C366583892B8FC40E5B038772E4055BB625996969CFBCD95374F5966B5CCCDE8EC98CA3170A43417A941FD1CD00348E12465568A3DBD075A08D282D84401553B658FC64E233C5D3E5BC383606C737A3581CD38CC7BC362A7E79D46CBAAC8A76C2093879E2EAD94A9E9CA4703ED884E56FCA8B4EFF34BA4A002C31C2A15258879610551BCDDC393C0E1E4CDB543BF3273C4AA541D107D3EAE2DC643993779E15D214B7FC318970FCC976C344ED4D147BC226D1F193A7026E949778E67B395B111F943D44CA98E5A4EED33272B13986D48902692325FF749F546A9E6674FD6B8F67901725B8A0543C81AAB10228ACF3AB5F7EB2CA870DB85A69E4E63153DA7F5F8D8CBCB254E2CF003E04362F4E94C6EAB08F53200158B8F3CC8E8333E2EC6D5A4DBB607D6B180D45CBF05A7A9A60FE9ABD902A2EF248B9CA9C516D5871C88AF24C5376A4B3DA19B96E454DC969BD4DFA81170C627A2F6A0F0D3D9C65BB03DC24C470944CE27E108F3402062614F878088945A201EAAE842C20AC99D743E650DAAC82970709EC2D1A6CD5A49A36C434496ED6F5E1558C0580B61312F63C195C4FE5CBF43BD8C3B189FD5F0766041E8DCF336C550EB66C4C0F2B9AA420F260D1458448D4AA5CCBE22340058D60BB0C7B21231ECB2AEB51CFAADD4D10B683248F8ED6D2B61D4D5C66EDA259B30101F71F1C19A60C987019F236C35259E7C39DE6709806D24BCACA2897CEC81BAF76205A488E6920A3792A0B906BA71B9B5095C85F6FC368ED0214F026A6342359CF05C768EF34F1CA5E1F30E76D57ABEF961EA7097B82F8B81B9219D9D5EAA4143F23FB4812CC8E8AA5C089F35E697F1FAE5F45B725560892EA7A99F9C8AFAB2ED9033262780AA97DFD88B0E810EF4ED113494B8B4556C46C287BED57E7F60E0FE2A93938C25F910ECCAAE27293243956F9D8E14F08FC0D6CF1E1F43E5FE5FEA8A1156C94DC94EAC01D61A47966CB7819AC17E8A6C9CB361F4B13DD43A61156D378EC627B0E7414A29BA7CB0300FF1EFA20CDC4A2D2CE25C628B5A6109F4542C23B6E2D3E27C808AD2B706399C23E392D350BF6D7C02F0926D9E40B2CDFB98971AA06DBE751854D8DA832824A68CDD67ADF855541F9B1004B48E921E69FFA23271AB2AC3F2F170035553B8A8A00C8C248E2D8A763A4C95A709A38C56622FB8F4E3694D5B923A2CD8E538F113E8A08DCF19655C3E5818586C334D4E09BC4703573D24DC77804B24EABCF3841F372CECC9954A56ECFCEE60431CB015C84FC6B61C11E15B5899A81D07EA453DE77551070EA5B484FD937CF5C3BA7E8380D38B474379AD0211E35281A4FF6A2291188853439D472E476B2E93FA44F707FB7BE136CA62AB3E9F02D2B864EE25B357621AC7C08AFFBE1B7D6C184428E7A59C0D5365E21DEA5328B183D540DA779A38CDF2B55B710A3B8181A853D04482829AA656C77B94DDEE372B77CAC11D8781F3C554D54C3A74583E630C3FF32063672E903DD4382A85E577043B0ED269D9A5523E1DD32974640BE7AE82E94A13906B19DC3521F1950E1A5FF054C593D413446B3646E738636878C5D2FC64BD602F7D731F7CFCBC297A979A4B2922972EFC28BFF3EA51CA87B504AB011FDECF3344216DC8C99921BBED2E697203B4E994E4F88CCD491329A4E15BA8D757E6804C0F13C0D37D9064B1648C435229CBA60E53A764D9CD4047FED34209F16005BA94D07E0C12E1C27C38406181C347096472AB7145FE3B24069CE1BAF274408FA690391B73CFA1CA56ECD497D5770E01BBB2B8BD424873CFDD8B3D1A28AEDD7DC4172A5489194529A880F1115AFEFF020224FFC7F1B199D7408D888F765CA6F75F4F000508A9707BEEC60E144572D8E13FEE95956968628003148332ECF06136A9504E4DFDAC8BB6BD4A1267809478E43D693A6E8ED6C104A05908A37C75087BDB5954CC6D0FABAA841B86F5DB6473134015F75D28CEC95E0CB87B0A687D37A704B9B7EA7BB9DEB76BA63DEEB2F0ACD7C1140AD02A7FF1422B3FB8CED19962738FFE453F561E908519451F884A015003E65D98D81A61CD8FD7DA2AD14BB4EB2E7FA80E28BFF59DCD12D9065B9549641FE599F41E582E1821C2CCAC0C4DBA6159E0BE7F0BB2847F2299EE23010B7114925C4AC8C2BBA87EDF43694A1824B08745686EA845C02A7BCE2D98F973D49500E79F563B8F0DC054C5F1D30E4826093BB5944D7095E662CF008628278D85C869A69B634AEA2735D4AD59CE0DAB044D6D2F94004A2B9C1591F2FB1F7F88ACD7F5AB252B7E72922287E4473014D26CC43AA3D631B6A0E98444AA8E31186F8A7922C3A6F911A3AD2F03F4372F143F89AF8B758DF20FF26255C31E5E8C3DA86816318AEE2DAAD6655A36CC36A375EDBDFDA241BE8DE13080163D59E6221A90299AF4D070D6658D8EEAA88553DDC03778EF9872DCAF19114F8D6D8B0C13ACB647C49FB0102D79A388148C52BAE905C9D787015463125B336193B495F16C8E35F2146F496EBF780C859EDFD95773B6A19E9E5E582220D2DADD167379F632D8AAD683CC9B1EAA77F141DA66B6F002339C6DAF929F67A57B14191A2829CC55EC5A940716F09FC5A9B08C23881D956A36E2BADFC84E5427A866E2E76B476B2A0DE1B9CD3FB6AE156C74A7689B08D25DCA0AEC4191E33CC091B181F8C67BFE2A5DD82EDFC226D49A1AC7BE8936C27DE05D243209276003A63875B43E20BDBF79D8CA81F7AC56AE94EF46CB3FC9BE5473DC0C9715BF8DAC744D093350B4C75560CB1C099681F0E440FD682A387E7AA70B3F335546F026C5351440A5D61E3C83BF96F07A46DE986A21F7E5A2EB0A28AAC2087C3896E933B708B4A44234EA8AE48946C6A10213521A553A020D7C9991CC31526A4E94D210F97E4216BD88504779F3EA21D52C2A205FA47CCD2405D26F411A9312D561D4CBCA0763311A0EBA45FA48CCE15C80419FE5CA04BF416395D25265280E0382BFDCC868C719874DDC795329E07CBF5C8FE83A3CCC4DDA4B31B15702AEBF561F53634315EC8B1A5423470DAB46963403E10EEC58E9E1C5C4DCB3935B518D4623E6C8C68A4FB13B492B155E06EE3D16BCE6C3E79AC891742AF3B8D01767542EB6B7BC8EC71579136ADE2BC39FD07AFA207C3D3012229267DCDF6CC3E9DB25AD378F836763BC517DDA13CD264C90983D73E2C9E2703740DB4C38773B49625967933F41FF0220F40C976385367675005FE20AECB7FBC1EF5C71255BEFE4A39CE59ADA83F148C5E4383BC65F0440A1F5826537EE40CD55862E7239ABFAA1D458F64F7423668EFE8E1E979B34EE18A71F82BD1975E09EE1613D9F45870B98B9855D28F3C00DA8B9740F50E0C51E506DF1C7C804FBD2A1DD912DEE604B2080069AFC5095D23D726D94552EB7986C14C86ADB5A1306C6B074F5D3605A6C2189C4D22E1C8795FDB77803C60E3CC04B82A021BB89BE2E3C45AC5B914966D4A3DDCBC32A760ED7BA6291B6C728F13AC684A6B6F0ECBEFC06B54249FDB3633A786E0822B1A2E43C3F59011263DA540FE2B4B5D31F5FE2A0954E45E106E1255EEFF02A717BB9061BDB528CBBB7854956824311A755B68EC1C179213C418AE21B7DCFFA9F9DFD8CAE58FA1D0B88670E5A25934E7F07916844AC026CD5E1F768978FC0F3AF91922014D75E50F4253A2C2E3420DB1856C206CA20651703D4AE01AE22B8C3DAC60B8961586986F17A93258ED44C83DA6276E04A9D0E03B04E93939FBBDBCAD6833960F02337AB1211E72BC180EED3DC605052CF86F31F1960DD8DD46E848584E909800DCF13146B6A71A79AA92F2BF8D254132423794FC2416A412B001C47A9875FA4B866868A9A88487FE410F81BE5236B13BCFE9302BA9443F3C4523CD3ACE7DE93CBEF6D9E4E6090214494027F065AA834CF24F6CBA9293A02934E52F20C1C2BC9609B559846B643BF49CAE7FB8332BB91B719E1F1838D7F63F5C3A7D5107431E3B854E03EBA795DE9C717B0C9D692B566138CB338C3E5C6F5931DC33214B74F3A116BED19B91E27572A5EB875F14EE81A8B5F2CA2C98739C93C04611335D221EE922C62F02E304BBE507E82E329B4359807F595D11BB5CF761619FF685034004A5ABC89BA4DE82FFAAD693221002F399A5F1D11302B68291F85079D10AA2D1C4536C70C7739CD16293EAD510CE3A04D91AB80D5BD2D02A93C6CF5BEF703A2273E628EA272987167F8A3E2F8E53C3FBC907C2A5AB051653051266470D74F14B632AFBEE256AB24CFC2C7F6E035A0580EC3D1DC11DB98C7FE605183884CF3D7F24C4B3A3D05A697F95601C367EDE314FD3D7CDCD618DB63BB7599E4577D6ED62E891CFD85C9B0E43F0CA588CF282A5E5070AF8E9CBEA9F1AA1FEC53CF411C3EC301967130267B769177AF5508DAFB62F5AD7D8AC9445C62E59612A54F77B1606BD9EEA24998726ACA7EBBCE63F73C143A56435B3EEFD63310A6DF908979DE38D04D7CC75B5FAD9548071D7D1647EC6AAD9663DB156622FBA093B1C470C535BA155FF88EB90BB7CAC9BF4CD367F8CF68CBC5129A577C31BAEFDA834CABB52E0D02FF1A44FF9E85BC88F4BE69DD5C1EB9D4A547395DCDF8DD82C1F98252266BA21395B4272A50420000A40A50CCB22546CB50617F2D7FCE96DA0DAA8FD668D3DF70F3639B45D25910B8970A6F26ADB6001DBEC9D78E94D020307793CAC8A4E69865CD8B7565765C4C4686B0941F7945095A4ECF808A46930AC66F0B569908E97E9557400D265AD10D2A4CDD023D421922BAF3DFD93D7120E4F2C4D20900BB32AE8242295B3EC9D61252BDCE14AC6EF5B2F73895DC27E5CDBD878F24369A533B33DD67ED239C61C333C9FD879D267446F1DEE3837B66C410E3AB8B8BC4C782CBD8449C7B2CC89E81C0CD0DBBC2DD6FE3AE7F2537DC3BE3E7EBCE49EB63A76FEE5ED0209650BF6E06344FE0A46693855AF3D87FC61DFA621D5CDCF0A39C80F2715392DF2C12685F37390982BAF96FF6475CB436DBC6DBCE4716781BE983393D197902C1C757B831BA1564149711D3D8231E908C8458AEFE45C3147A71F87E046193C6BF35FCCAABF592E48724C7E0582077FF94EF1DAE47D911BDBCC43876978BA38C7D6372B23DF650AD5F27C95BDBBA2352D492B5873C3835ECD142C5D3007A4D16FA35DEFD4C21F929A8B02ACB71CFCFB9540B489F9F0C2609CC2E26C5E85847D06E82B7E53B37C698659482300A18B9C42E962E9CDA8968ACAB266CF1340298693C87CC18AF9A52832449EAB89E84FE63BCBD45AC3F9BDAE65E62EE8F97F1165E40D874E9EF75763972A9413C81D18A1E551AE0208053B6276841F8470C23BF48F493BE5A0AA94AC10CB69F0E60267BDAE69EEE405312F8056A54C47A80CD01DC81EEABEBD8336FFEDBE19E8D66C566658D0F8EBE7999BFDD8FBC9BCCC59480F98B5701C8CA3156A94794ABFCF3132445832DC9A582AFC83BA2E41B6D64C8A1560880B7DA9976FB61F1C33ED52506570AC3BC65E345629A00A611A442928BD908A93CDDACC7D8D997ADC9AD9EDC836A803FB392593D03A79440D4F2F812B4C76CBD8F01D3B7119E42B98C64865EB2AA1626EF1B4C1877F6E484BC4D776C6C47712E88E9AF422D676103A71EB6CB31F360FC0EE898A6C28950A448D77CC07D513CB6A58D6364CB1480892DEEA7585CC9774A42F6AE49468A65A7215D4112C5B38AE6516798CA6A1281042F435AA4D6872A2AD8FD600638F0297B9C732E3D08AF5EAA9E24334E56C57C931B3D5AD37C5E5A5255B3038311A89C600944C0946008FA7F433EFDF3C60B8CB0083DCE9A46247E7B8C790E9ECCD03CAA10379C13D171B2C912927324A818D3EB762ED56B1B1C6EF068453A75B2C3757AED2D04333A11E21F12060EA5FE58B4649970A194E223CEC7B9D2BE63D57742317E93AA66F422E0AD7689878224E921CC95B53511069CA6C5492779864E3657CAE50AA46CD8BAE0B29D8DDEA69F05D41EEF627749BA606F1A614166D143923E0A43A1822D726613B24F4B7C691205F6C6F569EDC542228BB244A6A133D6A97BA66018F9AC0D79884B2623442536F17D9A3EDCBD00975A5890A34FE87C37B718A67A085A2B3579822D6673A3041BB61EE24072B5B67961B01DE05F348A63E15BFCB48D3EE991BE1699E11A06E02255F522BDBB1F74A5E90BC7F46FAA51EC84D1473BD47A9DDF9B0C226DB8602EF74D9D6A54E2685D6631EF6AC744F51BE6609B30BAA0DFADABAC90F6322C4D6D0CCE589F09A659FD2B4FCD7F70874FC1E32C7602D4A70EE1F1A0424445A3A2015185C80838391C80637B369F43896BB990A00D55D0C44CE10A5BF10C853E7702B9B03AEC1CFEB983ECEB22C22F199776CC7EC01DE1782D27359DE58A4B177B138D59934A2308E937F4A6EDDE167113E87001C6D485974DC7ACD95BD3A0C79436EF4A9305EAF894889CE7AA3FB758C2C98800EE51C37F4204C11716384A997FDD4F9CFDF71723B37B8D4F4B15E457126BB98ED49099F0881E0386F4CCBFB86F246AEA4A2790D1B62B6430E35271025CE8C710A1413D293959B8264F6C41FEA8EB007FFAF1FE0B57A0672F9ADB6734C2F8FBE051DE3B3E80670F8169DCFB30CB6EA4A7A9A7E56ECAFD79B4A8C7E35796F94E89A1795D9B7E19FC40253E27967338BC4883E7205E2D70765C38D8256BB2504BAB38274CD9645F3F9C65CDA32A50D09C1B7F98F0467D9FFE3A7385B6473EC2012F265D06BCD1522BC9B82019163632C63049D60C8F79DAD64BD92EA183B3FEDC67B450B88FFB825E0F3C36443394D6FD02D61D42881823D8E224FB0D93F68D39FE0C8AF40C08C7E5A438B9B686F3280B67CF7998532F53DFC01299C7732A69DE3076F28D14769A324620C5535EED84289AA55B06FFBF2BB4D73FA75AC8EB66609C5486559FCB920A2F4217F7FC25184A27D75B197F6C2A479D6900D1D56CFADAB446F002615736C9D541981928E08B4C4A75B6D9E0ADFA6795E374D71640EB096BD017BC16B9A6E71EFECABECC9E85040D9803C88A5F11F2DAFD49B506CDA6AE0EA5BBA9A627C0E89FA6B0D35FA493E4C853D728B1AB214EFE14E39A999E4872857F039C67024E106454328641577DBC7B74F441B01A613576BF0A21950B079937BC9427464CF4428CA5EC21AA34F55A0F42005845D62355FEA077B9E6111DD2402C715A972F8FA43C317713C71255D834588DBDB63B8F8C1DC5D672B346135E138D835B36334A38B0B1514FDD87EBB6D8FB8DC41D13DA74BE01A1823E417D3F932083FAD5F2FAA0B099DD03A002B5BDA0F1997B65B62E2097B948B406968CF7759AA75936CAA33B3279A1A92882A9C9A7109090E0FACF49790B1AD1BD606D551A806B1EF434D491AE50FCE2FD7B17BD605236E4E20616F7B7E27CA1C0592F25F3AA967EA41A73D72F4FE4F241610D4F7806E603A1A188EED49D4C7EB6F34CEC63F7E8B82F33B16D7CCE26CAC7151F4A7674667406941291FB0B6315CFEDCA1039B1B28C0E3F29FD3AD285B044C3C24D317A4D83D47985A2EB0F661AF5589F647D92554407AB5664187871F4D22869948A11E31E59ABCD8A14E314CC46D88FD8E2F4679C473B02C3FA0B5704BD2ABB65BD4917C3E6ED2CDB400CC4C82F9A7B9BC71C02E0AC7A029C159E894A88426E60599BE62F97223D12E318037A16DF3C2AB4F90A76F6594297CD5580DFC287D080AC03B445A9278F51C61E8D693123262014A2802201D92241C1269ABB4AD0ECC02FFBAE5AF52D2BA5AB08DF8CEF1D5116C809497279E7D4D9754AA5BD616BF0B5EFFD40195FD0BD17A180BCFE0585F8ADB1741F52DC34D403993C71519314F103FC207AED3F205DC546CD7996E2A2CD2712E26008A74B292A75A1011BA15E8D567BFC19A97C4359F5209A93600B81CA32A0CB1333BB535B699C0CE95496EA897292410D8C89B2FB9157002F82CCE582D62ADC159C08C85357FCAA0F9A10D137F09C5CB1F427725732BF1AE5D12C95045DC4B8F04BADF4A3BD6DA9D99E30D0C79C3FC49763883F77397D1908A74D84FC9BE14BE0AE638B4CB261FAC04EE77AA2BAA5745BCB4282ACBFEB4945EC820CF507B834C70DB6ADAD6A3E5D0796B375B6A29B42D7564EF51E43943C708FA28C4F565D5867FD7E6260D44FCDBB491B4F1394120002271EAD1C1DEC08CE3E942EB8D681D837EF9387E960B33762B59459CC1812E8A847F7EAD81E0220F4F0A4896DAE94C2C6967EC578AA4D56D0D7CF72C53D17D57DD00079D10CF2E98282C2060B483735BFEF6197619182D592E3D9D7540929DEA260D6BEE7F38A21C267AD0B7194A1FD37082117529F2DBC64A39E170343ED8B8717796D802A57B57975A1232ECD48C79D2713EC1EF8F6FC731118B78F081B680CCB79A0A4232DE73D1EACA3455AF0331921195A8E70DA28D8BD04C178198D55D6DF1C5A8C1B641C26FCE25270A6D07D2C1B52A824A2C089988C35191A98A6085EF3A000D22452AD2C55DB0B87CF00C6BF2AB7E66E341C03BAEA55899AC814DC988391250A4D666A9F98F4A1CB16C80B23C4A97309AD0D42EA85A2776D3F097587648CE0564826CE4127DD1E7314EA9A9CF4910E17EBDCC40B4CEC74647B7271C3B735DC5AE8E958CC30617F01C3BD61B5515C91C75B98EFD8DF09D8BA8DBD513C5CCDBF7C5152C340500B09EDFBA42EBCA260DA419FE8856B4B1F904782815261B3924A5F9347673C02CA252B666D6498518A79682B321A8BCF2514CFE07E387DE3CCA6F92AFD4C31D2E83381A1FA741F5760845202EDFBB55582D3CFF2FF2B04A7D469825F1976CD2A8C388FF958F88B4E52C5916B30E6FE03BB9FF6D721ABAC2E7EC46CF6DAC3362929F00321FBB0BA622E1E87A279D5B01D43326D4AD95574CCB2B77E5C8F5E7E9670F4F1EAC11DC3716E070A8BA20E1FFB4FDBB0B75FDACEEC6E4C426C31CDCFA95DF4A1E4E6FCA2D6D674E641CD707281B9D5EDB5DEF9AC42A212A1DCC342DE5C1057E49763A791EE7635F8194533BB2541A690688CAC2293FF19F26B12E2CAAD572B616DCD9058918866155347FC3B7DCFC5A9FD84A9E020126E57CB6DBB5C3788D8B20C9D00EA68DCB344988BC7D92AC98E3E6A278CB536F0AD1A0D0DD8A60D2EE9775347EA0654566734F3687FC669D270A4FD2574770740E1E85D8453E4C7A8A97BEB84F229A630632B1CC90857FE2666E08FB105AAEC690B22B9035766D5A2ECDD63326AF9B48A3247D7F4007947B9BEC525611223B0957532B818B5A686A027FC0C5DB24A849EB573CCC55C204A2EA6927CB1E811F17E4E23D11399C3F88874B79B455D9470FB47833B10258B6739C120533FCC0A64E97B87DFFAABC3982A62DAD557F01F926B2D01A44DA5845BAB6C784D1E226539663F9AB7C59FAC757CF8C930D0BA7CC74CD98B7A60C755BF63B2362F854BD0D4327C6829E53421122BE8E46C54687958B142857039E565DABBC660F289F40E3036E5FCB332644C9BFE40F88DD932FAAF338188D4B7DE60C3D9C2153BD024ECC1BF3E7B653A3704A14B7EA6437B03FF83DBFB25413528AE9D4E8BACE91B93323BF6006A982D34981AD395D3E52BD33337D02A8370C088C2616B9CFA71CEA8B1AC23D3053F85C4B4B195B7F1F7B2BC11D0CD5FB5FA4FA64D95D14F0FBC26873F31703E15A74EA25CDACE3D8AD595A2EEFF6385406A2CD9F182C24B05D842DA26AD7CB762C76E5B255803BC6A281243700ED74093B6974B88EF179FE09D70483CDE0282E26EE377D526B088CAE8B72AF4D82DC178D71FD05BA2DDF7A912602EDB6153F45E3250571D1CA84D49E543B3717DE7E876D19C543F0A0EB8AF9774A6E2E7A17C679DCF2345D4775F292B150FD5789DEAD85DD1536E5FBD9D3445FD5A78FD7A9761A8D588A8CC97720523513DED7D6E95CDF640C7F7D0667B3A09134571A2E741DF8A007EA56765AE6EC046BEE94439E675BB49B6E32EA14F56AA3FAB2AA45FEAF65938EFA7D83934B5487896152F7C0409BA2572C18C7EE4EF61A5484963586E10F709A1396AA2565DCD9C0B4736B56D205851D2452CEC5E324FA4CB6B8698EAC2C9CE9074A17558F23FB7BC14868B8E73B424C8CABFADCD4C5A3EBB6903CEB7543FFCC5585B85BFFA94DD2AA324C505D7F08EDBCC0024DA4E5C1671B6CE012E605AA6B1BFD58D92E8353F05DA5893E3D3822D76338A4D8013297C5F643D648A53F62E8920674B58675C64D0C662FA08FBBC1E9FBC088FCA457E14608CB0D0272A4C77735BA3A7A26D1DB6DD2D0845178F4FE627EBA84ABD7679B2F86E3D9AF2171927FC74104A9F198733FDECEE23D2D51431641F657A85D63244E96D2636096315F291C019197E73C9E11B5C5A015C12A43D176F6D33E34D9C423C1050545E4CB89DAB3E6A58A8E2FF3415B4831A91E72718E5D09832C4970D3C3D600CAE926FF8A24ED9D14A5E5A623C7A777639C145D306F20A9A5B4DB24C99F824F40B5BF387A0E1B6B49468A62755CC437E787DF96748EA3FA5E537922307E7C0694699D227350BA020A5DECF680599AD95F00C0D73F50B13E8385C04BA03C0F52BEED8F4C1C1D9132A3B9608AA1039169A8FA850DDB4CF01966CF881C64EBFD758CFB245B486FE5689C20FDA833F67DDDAD4CFE4638BFC7F6D967F039786A330D8393EAC7A52150DD7D5D30F79A09CFA383A5B7E96E3B2EB6BBD66CB3D6D844B0BEE333E06D027E4379259465A38516686255550A6074B1814100A60F84BBC3CE560AAD08B21821CE740D90EF12452BD53516DC90E60A4480CA758401660FE1A6EE8A88B433C14698CCC86C4A270338DDEA2DE2A5ABBE1C5CDA9F2C222590AC705A0C86F927D830EE91FD1A3B9ADF35C4EA05915FAB0F988D17C522971B7FD2431088020CABA03543C1E76255045A198EF900099FF2A982D626A4DD09F0E3B573E0660E2B09A8C0E7000DDCFAD466E890A4746D92AC1877A53215E35B9D3EE718B92A14706FBBC87B18A42D91CD4017AF5C6D2F549A052A09B57CBF186D1E9C004624D4A3A7A8A03A89C47353EACFB90647B2C6B29F73C506835E320DB751A1EAD0538B74DFD39B383FD7042B51CD82CF10DCE0C984AE75C12DE1A5BD614045DC91989095D32250EB1137827EC5E0FF91D5AE8807389D238AC331185DDC332C90CC9EE4394FD9EB81CDF04DE8D22F6856C5BEE1B4E5739FFB19CC8A948D24D764947FCBC99218B4DA2C439DC410BE7262C062486D55AEF977C09A36D9262E2BAA088383422BAAA20F4D8F86C3A4D8422851B6343AA15C4A1DD5EF0ACDE63937BE7D7F7444286BF00621CB279F49B47835925D71E07FCFED911E94D378A73548539CEAA7D8D84EEF4BE67EADF7C7B57452CDC106033D2B22DBB25D05856C4617E144F4E23094ED4D2BCB7A5DD1DEDD661432CD2AA369EC0B32169D52314A8646699B49DA27FC6C233C449884F540068127850D6E383DA6CA607A0806561363928FBB259AB5D98ECCF00B697E1810CB5422AC9B2F12AF205CB3721B5FE1680BE7C8E9B89A6EEE126E75866EB44B48B3DB48CA63818E6EB691002B2130B6C591F2605152E382251153A042708781773146D57C7B16D62D5FCC2252CCDCFF10EFFA1BCF2D4305C34E4F19F07595102B0A23929CC5470B9E16060DFB7D0F28956492A5DCC8825FAB6133D490BE3BCA7141F049A52548BB792E8A84B0C6A2F7B13196BB8C27DBCDAE620019EC8E480E6521393C98866B04863B8736039F42C23CA001E3B83178E1A65FAC153CC2F32EAD32440FF6A8A4AC29762903B32140B49BB59E591B6480BACEDEC7CDC77D89C82F60E23B5B127B72B9A271996E2C9FE310346D739045EDC020668D69D7EFA248FD6F786FDC4A5199685D68084A1B4ECB0719A8781EA366B630F0C18D023F57CB302D92F8153FB99ACA4EC2E16C943FCB944650EF9733C97F66F986945B8531B65CA531798CA139D8A31A1CC2657515B0FF4235F0EA527E0EFF2E83B9F160857956C894E60AD59345C95D2319CA82ED49306307B75800036D0CFE6689BF9672F9D065678861F7E174489B789FAC5D6942A792ABAC3D85359C36D35286A51DB42C022B305D182E65A9D11602B6D2E88AEC5A556EDF3979E1660F162409FA90C3FC1377370C9389CDCB305772A225671345D30055A528F27AAA77819A7819F64AD7185202827EBE0D92A1E30B05BC17F45E8422E2A0DFCD3BF1347841339842F908E30502CEDFFBDBF01E2A1CA4C8F8BFD8489FB6A60F1EA4A2BEA49A9F986A9BFE1792F97D0842B74AFAD6E97902FA043A087F2DF276C5D30DBB274A824208EEC77AF7B84B0D4D18DB495E976EE802AD61672EACD514F7CBD355FC7F11673D9198447BD142B6AC1A6225851BA2D7CD3565CBD3D8A7341915B40F713165D6B4B949140B91AF9F89E46FD45CE4ECCB2C259BAC0DE91ACC11442A8C146623A0A64ABA992816FBCE99C835554B6ECA8C53A04CF70E81067BA2854FD2332E9A3813F9A3F1E039D4CE9F349FC1BF9327492DA648740E5ADB7E470B513B9375D439FADDB93A6B928440A31FF6F1184C33E1342CD3B29AD04C22AA2D68F4F3613450B7CDB2A3590CF60C03401949AEA3AF2060047A25F37B6B4D81783A6E3BEB0E6F3EDF523667F25D6093FFC23C0B38C99DFEAA9A6EECA7A7322ACA8417F80F819CE53A3090811733E71EA07B5D3773553335EA7BDED1128D48087FCC05E5860546186B657233B4A370B26969D7E179C49BE552B0D17DB34537645DA06F6B1E40A897FA632D1623303671A20F38971357C139602A03BD170783F6F061FA433986AE9747F3D235B662D29D1DB7F077004E34133EEBA14B2C271F3C160AB1FEA528C85404EF08A33A23256BB47A0E55AFF01ADB49845AF72057F2B9FCC6C9927EC5EFC0B510D65D81A123D082B3AA20CBAAA1301C425CA97CD8EBB2FC9D0DFA17C8F0010343BE3E4B2764A269C598B8E541E02295707B6D30968C75B5EF76A1E27B6C5190B818AB5D543E3E8525D007AE95B948B53E81E96D349041DD97AC579ABC59FE1AC5302691FA88F8453D90BA87796491EDE09F70C67422AE3BA6A5914219321E3EE34DD59379E412009869E6A611D4E0CFC7A56D645AF62E130779438BB89CA54BD04ECF012C94B59A800987B449BA086C859C91F1FF5D4C2C5A558342B2B836DD427D45C07D8789EBAD66C2445F5931EFCDD4EEC651EE22081953C30F7DFFBE1B98A8295A545F829C256060A36849FD80D4BEA694A404B4252D86496521EA0EF4BA1415BE3C3A4FE687E67E715D15C7DA44CD7FA18A010F46E8F9221466CE53503D3A9840FB77D7765B84D5D4CA19223CCB22FE81BE7215C8DD0E49C84D787FA921456A6943C5892539062313FE024A0C2E24D15D75A8097D0D393C422099BED9259878E4EA02ECF174CA3B8F5C80D01E998487123C10EC2E04043A4D87154BEB2087C7194F74201BDC8FAE3D8F202EE83A21DF9E5B3B0908C9321F4431CF108444CF5A93175B4563B253F84897E3F720E8EE87E6B268DCABA7017BB07C5DD29133B5878B6CBEF6DDE103E3E34D8BF6DF151A3A24C077D8529BCD02681DC9E5701F93939B5AAC45FACE46A5855E4B4C3AF82C303999937C48CF3D88734EAF75E3EAF171768F6F48FE2CD5FA9BF40328E642D2510E331BE5C3AD6632875A9BD51D6904B95BD5C17B24C43971D45055C7AC0299017249A936BA40E3BD17B63B510F4B7A3B4F236BC073EEF4F61CE561D893AB5B0A720D70AC138D47CCD5426C827E1AB13B2C140FD6E6903EEAE7B30A06851759FDAA28810A258306160452486199EDD0F2B44F32361E8EDD4A458A93012DDB8B4C08A565DC49EC6BAFCC759237AE69DA0DA41251D9E7E8509E4A09A8917418C6B2705CF7C463CFE64A67F88749CCB80B8B1B20A33B5D9DC3F1E74BAE981AC670EE2D86D7B4C8E891F3D5C98B3F5455423412C641C0315F27A263DE975D8D6DE1F17D6FA51262D8E6B3F32AFD9EFB72958460B5D58F4BB5CBF5AE1CFF2D2835FA294760854FF53522E2D52981FC276793EE5EDA989EDC921CCDC50D4B63A908BF47587E4FAAE3A8A1BCE3A21E331D9230B6B1C4CEC7743AEBB83EE003690D2CCB27301D88518A43B266A2E2DA78742230B2258E5D1855A990827B3A8B900362791AE617A3DC0BA2D12766A70316229028E09F96EAD7C773158A549AD9E500751D812D3F759468E22B86FF85DFB0C7C79148CE152A813D0B2D3979A3DBE3765102204ECDA68D24FA6330D599481516603607FA04439B9A0498BCB359F1EE20D65A5A84816AD43750AD1838EF4597876291C98E82E1F46A6963C7726C89470E778BD0A65CAD07E2A167AF6067CD058152E9C14979152103A7235DCD0755BDD793F9B23AE031133756EE3448CD1F93985B40EBE72F7F54124838E3787182147B84C3B3BF8CA901253E04BF808E3F3AEB84C05AB5CCA8D0C755D7B0CB02BF9E06F3113FFC098557DA3F439D397251D48D2FADEBC40286A17C66E0A8533328DB4DFCE9BE32F115A293567E4EA004157045D6996C7B73F27ED2F25536C2A381996257FD23EE4D962B663940C2A57442F5A7CB41B4E6615B223E91B55A7F98B416B2A6003D3A27B496F5E1A446DA9F0DED6A5AA0D7C283F34DEF97065049150B136B2D0F7A4207C904D836EB1E35BCA84EF2780068ACEF1942C2B31BF1F89CF218044A30CED4AF8743EF034D7F526989B99390D79D7454961C4606F6AD659487A803F4CF5FDA4F0A039664F3EA84AC4D7E0E805759A79B959906655FFE28609963BD8BEF5C82A50922A9836ADB18C9416358C092D69292C40FB3BA288D4029FC6B200E59C7C2FC9423360B11F157E5286D0A796A74A088E257F00954CA0789E3507E572EF3DBA68E3CDC7AE328F2072BEABC0E901D5F5DB1A1F41D14732F471F089FEA9D022660949C80D350B37B7F2F551DC22F665DE00FDA868F131E30C110CCB4C746663513E9DA22E143796EE2E241CDC47E2BBC148A230157C0378193F75248FE64858899B3B357CDC21CE8A6C79D2438569CDBE5A44015038C0CB8C260EA75698C272C9D5B169A4D2FDA21AAAB502DE3C4609707BA7C1B2E118F3F5B8A17DEE019465C6EA6B098139BCA2E6873D9945791F7D5488EDC2FD08E09973A55415ECC21556C422F2E0057387363A3D762FE41B054D3C5ED107C4628C15A409C0ECF77AA5AB911A7D896C9D106DB44720A42E0F89447B9E8D277859C941A5E49F4A577C0B6B0049972DBEA98A1E57991F6C0D239BA052CF369D94CEA0D2AC4A0F178D0652F9E028E12423D8D14D7C8ACE33F7E9FA9C2F8B987F89B1BC22190146FBF99B124D028A5AC57D4B21A8F2A2C9BF1F67841BCF3F47051EBD205822DD7F13AEF2D9EEC54D465D89C987851630D0F7930B4451914393C31468126AE0C607ADF304433E581A71C5A19356231A9C7D9810D282F3DBE109F6789BB997BB73E97650844F62FA1954D9BA9C227A23A65F500AB459AEC13D0D25DAC9DC885A01912C70005F440B0EB1A2C0FAD96C7D597DA59AD0199F7978D8DC871BCD4B8143420F5F9900600FEEF0D8C908CD259AAF1D446841B2F76827CE888E1B8A2C2C2FA63AA0C63764E173FF170526FA3D7973931E6C1317F9E7175BEC6F2D6D9FB36730A604879CE7B2FF5350D1A689A57C5D366EA0C219A8E839838A0FCF45A2ED7FD08AEFD2BEC15C47391D9D18E42C18F03B068DE6FC160C176499D06ADBBAD50F1773D036CE5AAA26247B4ED0B68415D4CD101C8B97567290CE4068F4CAE9A778F996A3831FFEF44CA682100850BB5B6290AD8CAA7C10878352C707C0E7D0D0D90462DD46C6317755E4151FAF1755106983B75B6F0A3FCB923D56BE32573D59062008A48AD6A4A87D6242FB13DCC2A7354D470633D292F3EC598A24AF75362BF3A4096C7400A1E97E31FFD716D75BDE945F8FE5A2A40C8C557A5181E7C4CF155F0E1F168A0F25F3FBD0D24C743977C12F1B6D0B4CA5042017194AC81EDE63A324CFE149482AEB04CE5209F0BD768C7CE90508DFBF5EA9A66A5A6FE038746852359919DDC76795A68A4B522C86D5CFDBA46BBE140DCC5B377F70FFD7B776AD3A7885C43A9A7B5BCE599415FCAEB0CA7EBC1D51573F95822CB3135B602ADF40AEDE049501F6BA26EFC18D4A5E9814EA2C2C4CF301AF331672896A9B383F7E582F3A09BAE7BBCB9AB088A0D7FE43827C393E5EC27F08BC5E85C4705EDDA2862BEC9A4DD0ED9BC56D592F6062F75719ADB6A9CF1C8C2526D6B79E4F53932AEF6031D30498587788B0569F6C0FB226105FE5CA0B8B5239C3D11C795674DFE2C8B46FE16DFE5C389888775E56BD14DAE9985960D0817E5354FAE5F20147B30001A9E8D89E5BDEC5567561A27A08A84E2DEF8182060C003A8CF5DD667AC830497A9D4BD1D003019630FCA28C1E272C8C2EADB1DBECEF8E2CAB9B60BAFDFBD6D75562294E0E169506FACDFDC559581B86559720FB517AD8A010D64D03ADDD2CF9CFE8D2FD244A4378DE585F2DC009B2ED6DAC2FEC87D6097A25CC720E7DC989332C5A341503B7D03CC57A875A1A26DBA88D840F24EF8C86DBBEF37905CBA382A8A5C9980504D0CD6CEBCF00F7335705BFAFDE3C3F82EB3225E5EC63D6D69EFD015C9C51AF71B23215E4BBA667AD525852CA6C29AE3AB303AFDE0279C45668D02A2AA96625FA7B41B268E783F829A3A2464F22436917940E6EB3B1D313F794BAD2514B35954718CB2D92CD7865EBA847D388F046CC7D5D3E3B57D12714E9BFD4A09A18A8A626CDDBB21FB599EBE030CED022E16D6C65085EFC6911F7D154B8C9787D3C4107110809219414377EB07AF5441DFAF02EED0B6C7A6BAB1D9902D7A3211F22536AEC7A0A365BAC29BF69021B46EC80143CFC6B92DF4B09954DD20371C1E88087D73F0C885A68327486A812A1C9C36DA7E");
byte[] sk = Hex.decode("FFEB02F6010609070CF80CFCFD01F7FBFBFE02010004FFF002020900F2020602FC090000FEFC12F6F6F9F601F6F904F9030101FE04FF020203010B0706FEFFF7040A040900F8050805FDF3FE070D060C0A00FE0CFE0D0D02FBFE0B04EFF90002F7FDFF030307F303FFF8F5F4F60505F9150304FD0AFFFA1500FBF409F801FEF909F3F3010201FCF90B17FDFD0101FC00F002F000FB08050EFEFD06F504F5F906EDFEFEF3FB07FB01FC0106FB0304FBF6080005FDF605FA00FB07FAFFFA07F8FAFF050810EC0001FDF107F9F2EC03F408ED06FFF70009F80C06F60102F6FBF4FB010207FB0A0304F9F6F90C02F80007F30D0C04F5FA0702FDFDFBFE0607FFF0FFF803F30D07FBFB010300FEF9FEFB0A13F007030A06FCFE03FD00FEFCFFFF070B1004F8FAFFFC0D0605FE0306F803FCF30506FD0211FD060507F8FCEF0CFE00FBF80DF20A0F02F8080011FD01EEFDECFDFBFDF5F8F4011210FF0403F8F3EB0D050212F3F80609FFF903F5F309F8FEFF0AFCF6000EF80BF6FEFA0C01F4F3F2F508FA02F8FF0A060009F9F70EFD04FB060005F3FD02FE01FC0DF30AF706090CFC0006FDF80AFD03FFF80BFA0CF30B070B0B07FC1003FB1404F5EC0709030EF701F705FB00FAF2F500000A0406FF08F5F202F8150F070BFFFEFA0603F9040303FC0206F8FCFDF6030507FF03F4070409080C1106F107F20AFAF3FEFF070CFCFFF4F5F10710FDFC070EF7F803FE060103FFF4F6F50D0B0202EFF30CFAF5F80C05FEFE070802F8FCFCFD02F81B100404080213F8F90C04FFFA080AFCFBFAF903F600FB00F60503FB0106F2FEE80003FBF9FFFD14FE04F50C03F70103F2FE00F5FAF600FDEF03F70AF70604FAECFBF70EFF01FAFE080803F20F0D1704FC08ED00F304F904FA020403F207FE0DFDFA040B1006F7F9EF06FCF909F903F7FD06F602080501FDF9FAF40106FA07FB0CF50C07FF12F702080A0900FDFFF8040A0BF20D04FD0F00F8F8FBFC00FAF0F91705F901EAFCFE0304FBF7F6FF0E0802FF0FFC020B02FC0801FE03F2FEFCFBF7FFEFFBF503F8F707000612FD0605040404F7F3F9F6040B01000009F5F901050202FCFCFA03FD1501F6F104000DFBF7000DFF0EFFFE0000030804F1FDF313F403FCFEF7090E0708F702FE0C040BFE0812FBFE0EFB0311F7FBFF00FC01F8F20405F502F40008F8F70FF705FA06E8FD09F8FBF2FB0704FCF4F3F5F9FE0AFFFF05020D06F4020413F500F703E7FFE30401FB04F9EFF407F9FF04000EFDFF0707EF0509FB03F506F9FCFC0400FF0900F3050AF50CEAF7030905EEF50C06FDF8FBFDFBF40400F902FC0300F6FFFDF7FCF1F014FB03FB09FE15FCFD02FAFF07FA05FE01070E0402FDF31102FE010802F902F4F90AF60408F9FBFCFBF503140FFB0DF80B0DFAF9FBFC0102FC06FA03FDFC04F90DFEFB0301F3010C0FFE0FF90207F80703FEEDFF0A000407F1F8000807F7051306FA090800FE0EF4F6F6080AF503F112F106FCFCFEFD0BFE020CF40DFEFFFE0F01F6FF08FE03F40B02F50406F401020301ED01080508F70907FA02FDFEFC030108FE08F708F6FBFD02FFFF0000FBF9F7030505F6060809000BF8FB00FC02FFEAFAFB030309F806020109070DFC030104FDF701F3030518F9FD0800F9F60DFCFF04F8F41108FF0202FE03F6FC02FCF706FCFDFE08FAFB04FA0B01FAFA080209FB0CF1050C0EFB03FE02FEF80CFFFD150803F7FDEB09F8EEF1F2EFFDFBFAFD0A08FEF7ED06FDF4FC03F7FAFBEF07FF06050A0307F710FB04F5FD0100E901FE09F0EBF6F203FBFCFBFA0008FE02FF0A00FA16FBFFF70BF80FEDFB0000EF01FEF900F9140C0E0901010606FDF2F4FC0FFF0EFF0EF8FF06F9080403FC04080BF7FA01F4040705FEFEFC0203010C090AF1FC01FC06FB01ECF3000B010E08EDF0FEF9FBF4FB0DF506F4F007F6FCF3030D0A04FBF9FDFA00000D010C00FBF0010100EAF7030DFFF608FCFEFB0207F601FCF80109020010FF100702F9EFF800F40109FCFE08F8FDF508F2F6FBF6010EFC02FE0101020D030BFCFBF2ED01F8010210080EFCFA000B120017FF051711FF03FAFBFB17F805FAF9FB0102FD09000CF90B1A0AF500FCF60EF7FCFC09F1050DFAF9FEFAFEF7F50CEBF5F8F3FAFCF6F6FAF308F6F505F6F9060A00EC05020AFAFDF9F50200FA0306F707F9FC150A000D0702070B03FAF5FE0EF7160D06FF050004F9FCFB05010107F2F50103F60305030610FF0B070A03F704F602EEF411FFF9F5FBF2F5F00101FE080BF303FB090402F30509031107020102FDF502F5030301F2F8FCFC07EE0A04F4FE030406040802F406F4060FF2020DFDF803FE01FC030AFF06F50A00FDFB12FB00F4EC04FB000B05FFFFF60EEE02FFFFF7F301FC0CFC08FB06EE06F8F9FAFCF5F30BEF01F4FE090400FDFF01F8F20BFCF40D0001F708F20304F906F20201FA0BFBF4FDF309060BF6FCFE1007ECF30202F907FEFA0AFBFB05FDF60BFEF5070CFCF60C00F5FB0AF909F1F40302F90D000503010705EDFFFE0103FC1004090C0007F80012010DEBF3ECFE09000807EFEF09010EF202FD0A04FFFBFFFD02F3010906F808030409F9FC0D010C0200060703040606F407FF0006FE05FBFA00FB0FF6FEF9F8091105EF09010300051304070DF80702FF06F30A01000102F7FF0EFD010500EEFBF802F8F6F9FC0602FE100105FBFFF7F8F00AFCF906FF0401FE02050A0205FB03140B040806FAF900F5F3F906F90FF9F604F602F705FFF8FE0A020C09FF08FE0FFDF6F3F6F2070002F8FEF1F90709000301F307EEFCFB06F9F7FBFEF9F50EFDFFFFFFF508FF00FEF6FEEDF7FC02F3150106F60803FCFD030FF9FF0CFD02EF0510F6020801F70AF7F8080502FFFCFC04F7FB090BF1FBFE0AFEEA0407F8F4FAFFFD0FF5EFFBFAF7EFF7FF000E00F906FBFD01F9F91A00EF0C0502FF050BFAFB09FE04FA0703FCFCEE0507010707EBF3130103FD04EFFE0DFB0503020C0D0AF7FB010000FDF409FDFFFDFB010BFBF404F0FC00F8F007030FF8F5FAFAFB00F700071205FEFF02FCFCFFF2FE01F00C020BFB04FB020206FA04021008FA00F609FD0C06FAF009F60FFDFA07FC090E0C090CFDF9F7FAFA07FB04F20BFFFC0500F8050DFF08FB09F30104FDFCFE02FE0AFC0CF9F70903FA06F6FBFF01F305F8000807F1F9040E07010A03010301010D11F502FDFFFEF2F9F904FE02FEFF09F4FF05E9110309F3F504F3F807F2FCFAFFFA0BF501FD040107FDF816FDFCFF040404F9F7060AEBFEFD07F50000050B00FFFDFD0108FFF806F5F60D09F909F610FB05FD09FF0C06080EFFFDFEFAF7F9F70B05FA01F4FE03FFFEFD00FFFCF8030D07040B00FE03F3EF03FE00F5F8FF00FAF9F80CF9FC0102FFFEFE0B0108FAF7F8FFF805FBFE02FF06FD0311F8FF0CFBFEFE060CFE00060200FDFFFA0C00F30EFC060608EFFEFDF2FA0405030707000108FE05FC050403FEF800060408F301EE03100CFFF700F9F2FEFC040800F8F8070104FA07FCFE01EDFE020A09F00EFA0C04F70CFFF002070BF908F50201FDF8F80AF90CF205020BF41103100205FB0104FDF50502FB02F7F907EDF3FBFC0E0E09FF0C0505050E020700FE00090609F60C03040FFCF8FB090AEDFEF4070AF3050D02EDFF05FC0503040A0AED0803FF09F50201150F0CFFFE0604FAFF0EF801F90CFCFBF9FD04FFFC06FF06F6EF01F811F807FFF9060407FEFF00FF060B030100FF02F902FD08F905FCF50700FC0D09FA0302F901040AEE0602F401FDF6021703F50406F803FEEAF10AFB01070916F0FD11000E060204F707F60802040302F60F0B09F802030001040114FC09FCFC0A0B05F5FEF80F04FDF8FFFD01F8F3F6FBFB00070704FF0FF70A06F3050D06F3FEFB040001F103100F06FA03FD04F4FD02FE05FA06FBF40FFC10F11407F8FB0AF6FEFB0303FBF7FCF4FFFFFFFD00FD05050900F20600FC0601F40D070403FFFA0505FB06F806FF01F4FC030910F70A03F20809FEF0FF04FFEC06FA090404FE01EB010106FFFBFDF9FAF4F91703F7FCFC07FD0DFCFF07000AFD07FBFB050CFA0702FCF60E04F9010603FB0501070AF806F6000BF6F4F9100BF4F90904FA0EFE0203FEFE09FAF3FD03F908FCFFFB05FC06FA0DFC0001FEF803F60200FEF80D10F80E0B030503FEF103140A02FB12FD0301FFFAF8F905000408FD070C03FEECFC01FFFA000F0C050203F9090404FA0710FE0DFE0FF4F8080808EEF404030909FE07F805F800F7FFF9F4EFFA0307FE06070005FA0FF5F3050A0400F8FCFDF001F2F312FB0D030E000C00FDF4050904010602F705F20207F708FA050E0B0206EF04F8FC000410F0F30DF7FFF508F7EAFFF9FDFFFA0504FFFE09F5FEFE1607FCFF0AFEF40206FC03F401FBF7FAF7F50402F3F8F9FCF8000903FEFAF801090504060307FEFE070E0AF6F501030FF501F40407031007F90206FF14F7F9F300FCF008FC0C060AFE04F905FEFC080704F6FDFE01F8FBF0FE080A0509FC05F803FF0E02FE0E05FA02FF1000FE050814FFFB03FBFBFF060CECFD01F901060705FC030B0BFE08F5F70300FDEE08F1F5F70204FDFAF4F6FF0705F50AF5030610F90F0C040DFE050001FBF9FCF60A05FE05060107FE0304F11104E3FCFD03FCFAF7FF0805FF0FFDF8FFFF050101FEFCFAF30C08F2F30107FBFEFF10F0080403F40309FF030B00FB04F50DFC09ECFBF506F711FDFEF401FF06ECFA0600020108F70CFC000DF9FBFD0111FA0002FA01F90008FF0B09000AEEFDEF01F506FFFEF909F80CF806FF0503100206F0F700F602F901F202F9FA1402F705F8FEF80A07FF0CFF000DF808FA0FF7110701FDFE0CFE100500FCFE03F1080EF60B080603FA06FB0802F9F30D03FB03FB020903FD080700FAF8FAF8F9F2FC0707FAFF0208F4FFF7FC140001FD090108F80D0AF1EC0AF909FDEE0500F1060507FAFDF9F6F8EE0204F3ED0308FE0B0101FE0C02F303F5FD0BF9F5F00C040102FAFF05FE0C010408FC06FD03F5FEFA030700F9090109FF0A000108FA0901F5FF00EDFEFD070705FB0600FEF2000E09FDFDF1020500EE0503F2F8FFFEFAF8F803050B0602FDFCFA0C00F708F40602EFED04FF0B04FB0115FEFEF6FF0AF7FB190006EF01FA0BFF02FEFE05FB010107FE02F7FD00F10EF4FEFE01010302FEF4030700030BFDF5F903F503F10D0904000A0A09000106FD0DFF02FA03F701FA02FD0C080F0D04FDF603F6F7F900F8FD0609EE0BF702EEF5F4F4F70105FBFA14F708EEFDF1FBF901F7FDFCF3F40204F9030401FA0203F103F90EF4110704FD00FBF001F60905FA04FD11F305FB0A0C0406F7FB04F6030A03020AFB02FD02FEFF0DFDFB04FDF9FC060B0905FBFBFB0BFF01EDF50200FBFD110D070803FDED0D010C0B0006EE0302040108FFFFFE0304F6070102EA0EF90701FD0711FCFDFBFF08FB06FCFD09EFFB0DFDFF01FFFA04FEFB0DF90A060D0407F8060D02FEFF05F90AF60DFEFEFC0F08FA0102FC01F6F6020501F407F90DFBF500030800FDFC02FC020AFE08F909F0F8FEFFFB03FD10F5F3FD04FEF80BF4F5FFF6FCF5FE03F8030107F500FDFF0DF2F2010AF90007010B07F2FFFB05FA080EFB07E9080614F6FE0E020206FA01F4F5FEF4FFFB03F6F2FD0000F60007090103EB0211F1040203F5F90901050D0F05E5F307F909FAF8FEFD00FEFEF9030C0BF2070605FF0806FC0011040309FF02FDFCFF01F404F80AF9F807FB00F5FF04FC0DF3F504F90DFFF900FD05FA0908F90303F50AFE0CFC0DFB0FFD120906FAFA0813FB02F7030107F700FC05FDFBFBFB020D030BFAFCFE1000F9FEFE050303FFFB10FB0104040B0B09FE0102FCF7FCFC02F6F9FFF90BFFF90F01FFFEFEF9F6F2EFFC0309FBFDF701FA12F605F7EE06FCFE04FFFB03EF0814FA05EFFCFBF0FF0BFB18FEF7090BF3F50011020C060604FDF015F706F30EF30206FE0A0403010507F5FB00F902FC0C03F901F718FD02000703FAFCF70B00FCF3040602FDF8090106F800FBFAFF0BF9F902FB0615F9FF00F401F9030709FF0305FCFB08FFFFF505FB00FBFA00F611F9FC0A0A04FE11FF021207F7FBF702FA010305FE01ED07FD030E11F900FE000101FBF608FD080F0D0DFC0BFDF900080F020FFCFBFC030513FDFFFC0EF7FF07FE0C09F4140602F70201030501FB07F30C040D0603FFFE010603F2F90CF70203FBFCFFF2FE0801F507F8FB0405F8FD07000C0102F4010009FDF5FFF2FE08FE01FF07070908F7FD0E0601120205FB010606F8EEF9FDFBFD04F80304150AFFF9FC09FA0BFFFB03F80B07FDFE02080DFC020CFA01FDFA0B0702FDFBFAFF05EB04FC03F1F90C03F9EE0F030B1202FA12060505FFFEFDFBFC01FE02FEFE1400070AF8FD0204F7F80DF10714020805FE02040106050C0315F60704FC1201080A0307FE0004100A05F407FDF60AFEFFFCF40400F9FFFCF9F810F00203FBFFFF07030A00010E04F5F106FDFA0EF80D12FAFAF20EFB05F20307FEFFF2F809FE05070800020009F0F6FEF7EC0A0601F2FEFA0AF508FE060004F606FBFBFC05FDFBFE02F9FCF7011100F6FAECFAF7EF030EF9FD0DFC000202FA0B0103FAFD03FCFAF8000F0703FBFDF4FD08FDED09F70B07FE0006F5F508F202FDFD0BF2020807FB0FFAFFFD04010408FA0803FFFDF7F00001FEF4FD01FDFB0E05F4F8F9F6F3F40406F709FA0EF805F7FE010B0309FBFBFE0706FE0B03000D0701FCF30610F3FEFAFFF6F80311FF09F60804EFFD0F080706F805F104FFFF0605FCFD05F9FB040BF614F5FC0502FA0705F4F6FCF407F4FAFE03F6130600FF06FE05FD0208FEF90AF7FCFFFEFDFC0EF6011101DC12FDF70407F609080D0CFD02030AF4000305FAFAFBF10C05F6F0F9FCFE0009F7000100FC08010DFDF805FDFDF5F7F7EC11011103F9060505F4FE07FE03FC0308040E04FEFB0305F9F5040AEFF9F50601FF010AFE0C00FEF6F9FE0BF80303FE0303FEF40A070D080308FE05FFFCFC11FFF501F9FAFAFBFAF9F701F9F5070703FAF7FCFFFA0C02FE0D07FEF20FFDF8F80705FAFF02FE0308FEFC01010C00F70813061103FFFC01F90CF3050C010F05F50101FB1202F805080D0701F7F302ED0AF40B0CFCFD0005F707F813F9FE02FC0101100401F90CF70B08FE0108010000170004FD06FEFCFB010106F9FFF80702150D02F902F8F1FA10FE03F9FB09F1F6FEFF0906FEEB10FB06FE04FBF5FBF806CFC6B92DF4B09954DD20371C1E88087D73F0C885A68327486A812A1C9C36DA7E4F5C254B6292FB5C3DB9561B8793D8AE3E1611423AC0A9F8CFC13E1C85FEC6B5");
int smlen = 2881;
byte[] sm = Hex.decode("498A996E2B6C14E9C84617F4D63149C4676855D15CDC54A85F1BA00CD5FE550C6120227A77605DE227878113DF3137E13ACEC54F42856C0AECCEB53E1E96760ED6DE0E3F353ED4E4BCDB6B1AAA5CAD3CE1DD882C6BB12D3CF9D1C9888624A54D3E024783DD2C39DD54EA4FFEB280B0E546008CA0C779C8917E8FBBC7A79BEEA32D5E6652FE93D8B4737D47D8DD0C1600D5DB9135B74C0ED6E94D9FF02D06F951FB680902009EB68C34028EEE5176E1D64EF869E14C0AB577197444149CC6EFC60871899B1AC9DA86F8373A1273A97BCE318F40BC6A2AF35CEB52A5EA853BA0588531B87B0E1170EA6F464948A55A84920C97AA9D3960B9A099E947608A1E393C634DBE5DCBC6F0BD55E853470F6AB286CDD126B52A29BE7465542D477E3386821901595597E4D6583B6E16326D4AE71A2967FE20BB755A12CB7037614D3600A2B02D4C8DBEE17670CE7B4B144C3D2BEEE9FF6049B94DE4011DC401687E83211AA37E7A9D043A0582A9A7DFDB0B5A3A4AC8CC58F9634DAD9730311F2CDDEE205FDFBF160DA631FB11D0D0DA9FB42223194B18A5850E80C3537F8148A965EEF7B9A2A81C69DDA4797B28A0FBF4FDB31559F940AB7F47021CCD5881934487A6CB751845BBABCF3D213BAB2C61D21F06927DFAD28581E2F8377E2A36319240DD8380BD85DD1A5BF4828AA4F8F5E11534F4ADFCD1B881DD8A094890B20C4F67F5C1545B4065B84F0B28A64630E332ED2426CE04754BD23E52A90299FF399B240D04CD6677E782409D7AE46F5CF718BA1227CE673C42B1CC0E759429F6486AEEF5CF9BE96087ADAC32606B3D2FA53254C62B9617FE0C8D0490C7C7A77C9D54DFF076D44DE2864E3AF3037511C05D2603354C2AC19D94B6CCB6C6362D57B85C6D3E40E5960F7D3DD00ACE24B07AC41014CDF58B106A6D61B0909DDABE19AB78FA29C5987E7CDE6D5D084C278417645995976C74CB7D9A7D6597A83CE1654209325B788F056220F672CCB16051EC94B34F89B6DD33859F6961432294DAA66805488E894BBCE31BD4BF29BBEFA3B987857A4EA2F87AE9F6B5EECB8BC3DF90547833F3240071AD5A5464CBC9F42DC0E9E96DBBFE1AB2681CE2DC100F07CFF7480DE919AB27A2F51204BBF779380B337A550371960757D3BEFEE45AC13792F9F885AC22AAB4A5263364078AD1474B206BC54795B69380B0056F9CE8325B7B780B6AF7DB44F3AFEC558CD93FA268A6AB9AB6714ADD72C93B5BB011D974F8D2D778BC476C5F41ECF7C7D48E632716EA393973BD67F7496078F937AA45FB33E8ADA4CE5192DFB244A1D8290BBD29F239CBCADAC9E1D260D22781B7B41E8A42ABE21FD0D3E3517AB941AD09013EDE52EB9081F731A7935B14E1A9132FF2EEB2C53ADDBCDD3A9656F5E22B0F6470DC961BC0C1B38BACE2F16649536D28271D7BB9C76BE5B63ED2663C5842335A783C524FCEE69D6964874D4BB56418EDB945EFB097001506561A1ACFCD03B15B42A009C9B150CD1FF57104737E7978185F980B333523FCD89F522A59055515A4895E68C07161C47320CF1E542F03EEA4CEBC76266E2C85916638CA4C054F0F085BDCF2A84B5666932A23FF8A40EA90F6CE2888731E88FB7D90CC24D66934B2FF378E662CC57D516072698CAF09EE3759AD305A30C0C222992D3A22DA664A25B74043D338DCFC6A70C786853AABF31B6B5C49D2BE0BFB0CF214467B511643106E729F4756B147467530F9477503BFB9393D36D4A9F964956DCC0C6ADA0A4CDA17D794F7C6A32C7D8E146C6769B810F97F9FF47BC187C57158684280AAED7807D2FF6B9AC3F4E11CEB29F112C30903983FBF38F5D118F084A5ED22E020F066BD458716B491DB9A9A26AFA5C187FEC28BB67C878F82EFAC22675C0D2B6D62DC1804D7933D68441A9F66419314D66540F30BC7B1A8D1F10F5677BC3C6E236F6D5827F70E3F471686F640A8253582F0E5FF146C3BCA53CAEF22BE026BE891BDB96697549DB993B9A4A1FB4B8034FA9EBE42F7A953155A050CE106EAA94C885E225F2FE61E254BECD43E34DE41385DEBB456CFB70FF8C0E46E19224D5FDB7A38F4D2BFA314DA933D8A93CC8ADB99344641DED33E8AAFE639FB38AA9026DBFA1F0C754192A57B8933C99181DF62C9F8101B86A743BF7D07924EBD6C14EF54CC8ED397D73AE2EAE7E2FB4D6456EE7C68FE6DC0912DF23414FC15575E7B84C161A5BF8CE69738211BA13614B1A40E7507701DF29D3B50C26C547C8E49537D10AACE95424520340A57F1B5B35CE62DC693694A2A68A95409D52DD0A0F167F4212826811993D4F245E56CC36A87C404C3218388947BA63814D3CD5DB8666EC2E2551E8E130E1A1C998F301005A645BFE2EF1D208412F3937246A5A41AA4F3D3A5FA2833B4A30637EA569EE3B2E6B72D90BCB4D79A7022824BD22FCE98905D2DBED895C069031D08B69E0B710B4472BE7BE2DB52898BFFAD6F65D73FD28C8BE578A152E53C9D2F04E206F9BD0714CDFC5FE8E17AE4CDFF12B9CB2EA5CD8CE7FE81B0033C9E1E91A88D3F475012BF6882F3D5A25C1E5BC92B89229D38CAF7314DCBA05636232E8409CEE11E7EA607FEA2FB2E2FDF07EA3994A3129DA426D64DE74186A1F8B432E106B786BBD302FE40889DF80A5B1CCFD129EE0B0DBA5C1D506A8CC69106D6BD5006D2BAF26D51DC9BE072E4BF5EE4D1DF9D7B4235CBC7DEA9813244122DFA753479CB66128753E5C4352D0CAACFC8CC577E2D689028025D72EB6A6BBEFD22F2CB01D5013D86A5F92A1AD6AF48F5B7C9F6AA8BDABC760CA25C0ED93986183F00CF3B9F37385DE183EB614D267DFD6E48C7AE1CFFBF6F977512C756103FBC5AA332F8647CE46D12CCD597A0D982C0CB30D7EC954515793CDB3CEB143DFEE2552ED21EA089A486CA6137CBE87DA4F27008B3758668DE776C46794303E316A3480ECDDC2CD5A97421EF9369CAF27E6AC5A56B7C9D42C64096EE13A1F8795042F24B92566021CAB8A988EA5E5BE324A19CF96BCBE0E5B1E32E932C7F45470D99D785BBEC8F9DA12EF268B330D43238637A16D699EC842CEA24E9BA3F2C58D642C9DC7C482FA73644B5E48B127573237D1F1821206081B7C34809F9839569EE2D2C650347B0EB48B76F1387CB79AC0C6306B9206A65E9C7B1DA55C153FC9D509F5B56AF7DFF6D3909F94E1F7FB57BBAF68555D2203B33F459B5C449113B559EB0272EA9C0D73469B72256C3D730E2752CF64D1AB0B47196FD8C07EC32D2E337242874397A0D5A37ECD4BFBC88C96B1655460FDD63B265D822A13DD20B8837F727BC1ACD58AC33603C73A214E90A59133A72B126240FDBB4BC450FCC19ED6E9FB9DBDA4CA3860A2EAB2CEE7D8A4534D2786695D6DF754F5EF52ADBF642C5F3A46C9A3CCF949A6E6B025856C07F801DEB544BD70C46FE86D4824246E56F171A81CDFD44730D55F89821A0BBFA449B9D0FBA039731AE81CF0612CD4316B0BAA743CB7E9DB42708D40C60A95973DC9CED8C5FEBCA232B093D7A5D6342325233187B9B2593288F6ECC0F163315598AE526861DEB3FE0A1DB1BD649D9550BFFFF90AE242DA3E2D67DB09C248C74C60EA83BBD56490E539C5D486EDD707CCF6C310C3E3A713A09183AD749D6FDCA2959AAF0B9FE73C2FF4373EEF3D4085951EB92ED015733D35DA818F48946648140A01951FA411FDE51792036B04A4A4CD3E5166DCAF152346FEEEE3F585F24532582CFE064DBADC33FF102A39BB4BC05247A3C78820B2639CE455866A344B557ED08172184BE286B0F8611236B68A9A97969795A6DF73F55D9D740B21C7D4832972EB79E033BB48F39B4560B0CA338D85577F76F38BD69626CFCF6969D40102291DA41BD67E7BCECA8BEE6D3AD58681630DDF7EEAE5A50F19AA0D1C353F36377D0628E0EB299F0464063AB8B1CB89CF512001949E1E66C68A750871AE0A3A5FA2108AB4E2920A08892D68719E092B48C3043325E5944F62D4098452B4A8CC63CC0792E256448F42C8DF5AB191A13DD00033600D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8");
doTestKAT(QTESLASecurityCategory.PROVABLY_SECURE_I, pk, sk, seed, msg, sm);
}
/*
# qTesla-p-III
*/
public void testCatPIIIVector0()
{
byte[] seed = Hex.decode("061550234D158C5EC95595FE04EF7A25767F2E24CC2BC479D09D86DC9ABCFDE7056A8C266F9EF97ED08541DBD2E1FFA1");
int mlen = 33;
byte[] msg = Hex.decode("D81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8");
byte[] pk = Arrays.concatenate(Hex.decode("14BE5C398A69D45B0E7A63672036E007981E846337FEE6A01789E7CAFDCD43B59471207B844CCA4240A56CF1DC37941B8669BB2E93B7A84687411425B04ADFDD81011B8DF309F9BC8069B5A0F53292F6F6D1A6B9191CFA8FE8DE932A1403296B3D6492B457849EF361481655174882C2A899482AC9236901E094BE6BE9113E9EB7B18E0018C46CAB21F14502C63553D383BDC53CA1064CE6BC6704EA05161F0C9071428340DD0342F66F0422AAB29950ED8A95363404759A8E08677223A08806814EBC824D40D89F7560175631533BCA8DF81DCED3828EA539BE87328C14183C91A6C24E496227C6F6A98197A8ECE46D5912D99F72D17651F5850901CF4C060B4D1E5C860C12FA479342652B54D5E5F58AC2449C6248483B900E8F7A2654DF3ECD76453450BC4162FD1AA9A36B6468C0E37A18F54A572E9E35C2047513466BE99BCBCAA678E0FBE657488CC110A27393BEC4841A4E7B784DAC3F840DA102438041AEC6BEC4AC261FE118994D38CC1461927D3C08AA4B3A22E2393FC49B5A5C408182FF943C1F59B143BF0F11420C78FC29162F9E2EB81277FD7DD8779F3FCC9FDB0E6065B1C41272709A716DC204C51B47533CE1B3BAE15EB050073E878F70696B92E6C20870E8F3C290CE4812E00C1341D4E36A9ED8BB974EF13A8CECD32F4D36A1E912CBC1A65458454BF58A874245EEEBB41F7FE6D30CAF412010D91F1D455F904459FC9E259C812D584EAAAA200395D23868E838DC7F78C1CFB23BAC26788C10A0DEC2AE358DF79980543B274C096D194D1750CCB74C0DCBE3C30B50B74C8FF33EC1C0C93B65747A01A85D56B17FC2F0CF091E7D98979028FC0151E3E3A3BAE05D0FA5BB9FB9B62F031E8DD9D597E5758DC1632B6040D72B0D65B1C566AB9F846C547C8809E678D86EAE55280F2E365C0B6539D3108763D7D6A3821992B9F0052152D8A4469CFA02B332DA1A41A340452D481660DDD8B2107FF8968113DAE0C4BDAEDB087B9868AC0E3DA8E8B7F54D5FA4EC26C94B18F1919E4E5181079A8C4DD2C2F6FB416D302FC298D943EB43A6B588EF9C9498036A0D59C85FB37FC4EA9C8084DA4C25193330359483EF8D9603B38E9A7107478762557A590D1DC1D07FCEFC9EC969F6811A92B69B184F8E605A489D0872232702464AC8616BF9EBD7ED82657541C3D96C3922B7E2C31A7722CA36B4DDA4CB775071AED78E2829241C9E20096BD64AA69FBB47571BAF11EF42918BC0606486AD5838EA8794B2519A5289C48517AABA1E51217C49718DE8040875D1E1049B0372A2C307E2EF6E43503314540D3C0D054ABFDC85FC8BB4E5B48FF071F0FCFE3BAD96E02108302EFECD21380FE59E1038D7E7D79EBFBC4DEB14CFD1114367EA1E64DD950A84B11E9C1815CA4AD3971EB20752EEF63E2F2A188277A93CA022C1AC3E0CDBE94110240F3D7FA1264385CA9B997BF24C086897D8B23E585D3BFA4F8B611C578F789BE382502A2A14D2CFD899842FC88B300D5E929DCF9388E9F60782DE92F344598901225B94B48C7CDDA04C5141A7296C3046173161A8B902FA9C830FAFD04CA53F62B11403E1D96906ECDDD190C77DDA4350F2FC8A33AF7C5C9BE9DB0C73F726F2730D27A32B85845032A20BFC5454E8C8E3A4501C7A04B5AE82140A65511CF68CBBA3A82F18448B84C0E576BDCC94C2482C08B95E03A66ED9D0206DAB74C32E160A16BCCE9F699AC3E9872BE87774168891C148314C1500B506B6272C87AFA7034899BA202E66DC224A60F824E9FF51C846D651C5FF5215F828093458D60BA1488FE84494A2D26F5BE5A484AE6B57CA2E5502C101A1C4C828A70AC1E7AD3D71CF8E5A4847A56F3D110D18FD501A0A60AF0950518ADD4008540799CC1D1D66DF821D92877B80A6C58780EC34B1C97CBE9ADDF79F923ACD142FBBDF39293A0ECB17F2424C2AEB5714710D2749DBC02351656F54B5268E114B549D1111CE4BA441974AC989AD24B5E1B07C2A74802F1C09014C752A898E0EE9D51485E370644988FC3DC0A531EB6609962AE8C583179833700E944BC002394A5A93F11B69D9F90E5EA56C139873241A8EA824C8ADA018A5A4247D8C46BCE6768FC310C2C4C3E6D3A91158A2F21B37AAE306860C60B890B4EA1F2A3ACBA3BA2D256031E0BC8683A41F454DD5E4929C6201C639A9C6BC26628ABF45B1540BB2F94D0D5D7515B8A553A0CBE3504F76EB5B5A3EA8FC6E115807303199A5ED93E1170F021CD9F48D5E7C260348754E4079926C69D6B911FCB5BA642A68D81477C4631A089037CF95C623C52BB59D697300E0919307E21CF9B0116C009FB38ED08380E2E3C26320A29BC2A01379E202BA115CEB0D61C299F71DD8E153AF3EBDEC1D0187836F6771FB71923CE6E1ED3265492E4728CCD62267B1D49F84200BC094769860C3409F5B07C55CA5A046BA1089CF0685B6BA6804335E8F196FBDCD01174EED8B35338C44CA3B666A5E7620C822E1D14449763FEBBA08840D446987A9308C02F307BF645F00A63888101535C3E256147BFE3A1B93992FA132B95CF3DA5CA76EBC1B1118D4469274628C047C647E76E69A21DA235B837F0EC5DB7A684E28FA38229704E38C012B82F5FC2329B7B8C32643D606C923D4D1CF945361A4E86F637107DD98DDE0767BE55991E42F422D7136CB12989434C2E2D73F9D6089AEAD7B002DA0C823877F102DAF2D827488BC5047F932828EC1598277A68C0A043EE333C25E8BA09B513B71053136C43AC637DE604A801B5D031053957F2AAFABE3B322466393C38B3E79FD3883D4B26952579C7FBF27BA3161BE47EC05C36274C486B28069B85F3A1CCC0729B67D4065CFCAF822314FE481A97410EECB6E629196CA2B4936FDABE460F9323C541220F6B81097DE9F2243598577EE8A931E02A7A4C99019C95A8D981B0DFD84E14FFD36651748B9B39358809587AA66ACE6F700727B16649545E3EF19A88C5840BD1993ABF60DAA5E75F3A8479EEEE400DACE2B9B56A010F5B704A45A9CF67123F3B72E00E3218B08D01EC3E62CA297B95777993D30E7ECEBB84E2C89F3008AABC787E2F463A0E8AD93708B441791389B447999044F2C297F300A09955F7FDE9312696728C4D57C41CD0D6DD171E1DC8ED13C71FEBDCC6E11FAF5661A4762AF1E481D290A99B714A5A9943210F686DDC15F52135DA1C324FE13AB500EF8990A7DA916D36704C0A2770172706F76559377B6B698235A2CA0950603E3664C2B18139E964F8A65EEDF920766960D7AF2C454EA459C8C8A8A0BAC144026EF3E07655E0468FDB0A070D02766ECE413F0CC6B0E8AB6141DCEC4B7176F747CA888BDE34072025FC5903954033E8C2E238C863DF874AE2352E69D6481D3EBA028CC82DAEED636307E25019613B69BFB3C3E789889F12120D6F82E6F147199D426448FB133DA20E2EA35916831652017E7D549BDCF3B2847457021F10F9EECAFE9D8F6B603AAB7C6D66204555BBA86C30F6411720BA1387C7420E39FAE827F454B851B1B6D7FF850338B9F6621F1C00D0160A61B1A5B2C1F416C6B3BF455A4C3E675E5C2CDFCE355C08513A06691497DD1A317DA84C14CC5FCBC8FF1F49DCD820117CD4E11FB545D5503BA4BD4B479A76FC62A30D3202E22643C4151874AD5A4394277246F72BD4F5D09C98112BAE11B037B00125E1BD1E20BA234DD5400A72A63342CDB726EC5AF987CA91330D77F3BD4CEAC2FFAD7579E8112C81758D9140FFD0AFAE0B6BB60CB78F40FDAD784F9085E2134F778FFA2FF71121D9D07E48DBF28864052D851831DF4EB89BD661882C4207E3F5685068D89D0DFD3F73C8072C946125A64B6EBF957C94D4A04409EF9B17FB5A1A7916C4610CBFED3474E563387B69793B3528650FD68C741E260A2CC5D2A229FB00CF4DADC7ABF168EF983F613F2B508A8C465171035D8FF0616BC319BD2B98C88C5728EF92086E4AD316247A199F6A123AFBAC048ACB1E0DAF62A0E17730674F61A801EFC2E6505E9E6029C862C29E79FBEDDEE69F8FCAB716723D6A99B8B091216259185A65C5A9461413EF8616B9102F0BB6FE68E014C62290345C2C89E77511D9746052A188A41AB3E1E141684B38020051EF0E4EE77C979A7B7EE08B91338ED742E30E91250741BE8D1EA6B4B105F428528506B646A027E82711C56D7503049021809C050E2FF3FF1001AEA49FAD40AF255713D431DD7BF6BB62B15B3F22EE53B4FECC7E865B3881A15488C18AC052C1DD90F21637D1E06034649DC8CED834F4A95C511AC19815C86BCE452CE0A9C15BA0B7E98E92280C9F8C7F2260CCE46687B46702F2EC81926B3A4BC9BF7C6E28247B5E248C231B84CCD95131D63DFCD33652D2C1B89025EC954F6C9987412F707846201BA2A07D80AEF7612E2CEA5B473980380736076583D140C71BAFF5C46023D03AFBEDF45132E16D02FA0152A0505DD9E20A4624CFCDB09737E08DD5FD1CF20C1896B7660163B564FCE0CC7B1339D74138550CCED7C7B950CAE55706EDAD6BFCF3C9447AD3D4D2CDE6B952702C0C1E1C3E3272959EC3F82233562959608B8DD7501D1BE022326331AC674D71C01883A216D8801880D14D2934A2BFF3087D3B4E28851C86180F474A4937DCCD901F3BADB1148946EB6FD8E50CAFA588749AA6987B2DB6EC838EA3712D09DF128C6D6810079C2EF26CF4F2082CC539A7B569455AD124E42347195C641B4291C6AE909119DA25E8C99B966B2EB3B009208971C159E4B03DEFD15052E53C398952988548F8D2470371D4142E80D074877E115735135478DA878947939BFB19D4B8410B7AE39B6EC7A7AB040BE4113848B806834DA4DFE8FBCA104D061D884C491DDBE44EF645DF53D89E468884C8692C8F5AFE3CAC08ABE231E721D93F76234604207D1B243FE4C9E69739D49E69ED4E68BB249EA4AE384A811B8005823BB893E8504DB7F0257A13F6DA14DFED71AC59FDB02603D11968F8631F4BC4F0548F51807F22CEB49A932AA154A9CB31318CB2C86413589177E97FB308092EFA08AAF8C4CF0316ABCC8BBB55DA9410721B5B90DFDE4682496CB040240B900A00BDF7D3E19796FF6378333D95D609EADF839E7E9BB05636C5B68DAB394E059844FDBB26DB9013F34FFAA96C88799A3B3CC8F192442A03FEA9F69E5E000D0B2E1EFD05B4D3953C63C0B71E7EED50A97F725542DB6B0D451C64971A9A600CDD5AA8EC6252E2AE8F73C16CADC0786CD970262780642FA8C320896980D596887B76476307A41820A008FBFDA15EE8126027B188092C4AEA08A734558DC1F680D8CE12C25F315421B7CB353C7D5363F06CCCB2806045E2663716188F439A9F654F8736D06BD0F98E1B53F5A5B1444F0CF43F1672DDCCA7AEB76ED2061124B5870C62C4AA66C03EE94DE1615627747D1D930A8DF250E9351FC8CB88E451FEAB0550DC351111F3DFBCA5B58F71A635F68F101F9FC5208084E75C4FD5E7C5664452A9733E481FEC874D17E85DF09FEC044B0ED303930F20600BCE3A9715654A13BC9194822E1008256B8482C6FDDA2E5A342D8CD120638152D48D7F3E25AA7589599B82E4AD175C5C4B09261337EA014AFF273F026F27019E2BC917CFDE737179BF8B8D9F563D4275F9BAA21D17AB16A5B8B93505F6C95BE36CD7277401EBAD6EFA0303678432227E125E6759270593C4903A7C8ABF8F7246E9A070A01C10BAE9168E261C1FCF8D8AE558A3050358F1D389445181A6F1BAE1685B66D1EA41B294CEDED9458325FEC7C0291762DD7CE6219B1D1615082C472CAEB7D616BFE1756622F212AFDAB6A0A597F03A7779ACAA95A4E385E36D4288A72123ED083BD8D9B939F6CA155E29451C81698B8236BAB70127029A258A6B0D6434F02CCB26A846457440990A72EC9EF332851197B6325E2D8499B8C70057F0C8BA6763404EACB43489E2F301B233FD66FE7D47B199A93CC355E1CFC350754D09104938A17F287C88E916AB3E45CE0A44987385E0E56B923BAC0D80EFE37779E570C20470B9B019A60C471D425437F8665B15D3287D02D4E93964778225A1428B579F4C68DA0B3BDE33C2A5014B34D93DA567BF52D11F530E032B0388F8964BBF09AA58FA6B64F4B463E2C3735DA10519312E98D5A55A01A326E6DCBA3F036AEC91206B089E3A1C19785C582263EF808860C79311A10E6E3F77C70FE96A0FE25C85C08A1CD43FF0D9A5447CC7601EBBB429D030AD2E28110258DAF68B9F90C92D4ADEBD0065CC9D1B090F57C93F8C773B913F8C150C6337FB6B32E4216105C91F13188A65E870DC3CCF8EBE18C19865D98645CC4CA866B04E55D8CCB25F6C3AB52DB299BF304D34EBD68C184D552C899DC57A03C783A46E01A8F82AAA35296930A687E6A99250641DC62E9A02D7CA5C96174198753BBE09C1A2A36F09B1A7CA42A787C16D2FB9BF739CCDEFED80CE40BE9EADB69DDEF02B6860A240E4A216A4D50A917D523C9CE43C26B56E4F87B7EAA8960283117D5B396989719476036E7C9DCCB3277192A502177F2FD5A24403C747D70E26B7D824988369517631223EC3B6D7233001020A54C2414C0C4FE3CF37057C59A4B2268197E17D097E24945D95508F23B10794DC904684E33203A6B074A466AFFB3AFA48A830EE6F1AE1DF35C703D5910AC3E71EC4805E402C2743D3BC9D824B02D0760525B5F738196A7E575D921331A61D2F5BD838A3A8A287E2718E538A22D57525AF21854A1B1F0C8044C756618ACAE9B294D5E36D84F720303600C8241CA2C117726CF6E5550DE534892A14115F7920491B9A54A84BE3C2A0E168D3E9ECF1BE3E7E7CFEC206CB22D97273A830514FAE42FF5B2D7FC1589E097217C16D658FFC1C08FA3FB37445B75A3AAEB0CFE91D234037DF9C824EFCB05034C1C2C89949032E90C760D038DDD894205EA12B1E6033F185AE335E0FFA129C19C435490DF53EC30C1B6B7261D1FB89E5427B8D0103BC8D8370ABC42A9B0CDC301D4B9827D27D2FFD361C93976234BC699108DB4B540EF89329CAC0933C1274487C80E4E8F128F54E5EDEC60A102585F408E890B52E590393318359EBCB710586261EDC1E66646B514660D006A2C126CBEFC21EC431D1E99D706BEAC7EC79D06A909D02AD7A694C672F13A16FEB9D51C3F11465A51512F14D23413CD10D7F9D47FAC45B751086E084CB1CBC39E64994C9696B0A3337B9A6E07151E85D91B46AB81E716798604FAEA1830C8EA55082C7F6206FC50ED18FA013934665F21233485597FB9767663E548E60A07ED62AB3A704D7950612032ACF4F811157B292F6FEA408F56CD1EFE1A6D3B8E616EBFE756F5055817F857073E69709B538CD7E863020FD0139FBA6AB3343B88E8A2C25EF716091E41F7B6022F3C06C148F2E819106CA03FA29A6B50E18BD16C347F7C3BBB4A331B98A4DDE7FFD3E6B7A70933844EF37A4F576B14FED215FA4747145CD5008CF90A996CCB7CCABE698566B97A4EF00B605792EF99E260CB9A5D86A0B153E6991A8720457A003003DB44D39EBD567FE9CCF84CCD6C59A765C272A15C683082282D3B103D556FC6160F4126FBC57FED0C183515D5C423229F1805BD2868E3AD8B901455CF8C7A1D2DD6225277C613ABCB6B6F3105C423D502669F729FFED2B857C7979C21CB74403024F3141534294AAF0C5B9C9E4ECD542BF31860009C24E4746D0A3ADB396B91F362F4C3FB5DEB7AEDE2B470487F2EACB3649264AF0C8154A3DC085497EB95DD60D4E6D8F82321BC84945FEE29CC232005E4506127A26FF094F11AB5E63FE9A9F328E817490907FB60DEC2CA22CB435F5562BE22A376A75C0965FF209C7CFEF14F3483D890FE0B659CAD716497C5377EFEE0BC2018581FE10A580A76BE0430A0015F4172DD42E1DB4684ECD7E43C6AB7F18F999591050F46FBC6E92E11A59167423B52D0F820267D604AD671732ABB111CC0AE8C4ED2899B070C7D3DC7D68DFA2154D6906964901414788D29C7F3501B61133E0DA145FD88B0487DA2B9466C988E30BFA9634D35646A81071D3FC599CFB0DFDAAC0D1EC9605BBFE4158E0F63D542728CE577AE346DED77D6C3202808E653E1D4F11461E764DE863E4D2FD87F715630B39C8DD867580572D8C4970AC640022B0CB82897D3779156ED9A10734CCA402EF088DAD77A12242F003453512399794C688E9347CE657424738B335C49D59E7AA2B422B327849484418CE24C45621E6C07D1D5E816D3A6D6A9A65DDB4D1BB04EAA72F37C7B4DB39EA71B99192D7587A5BBF51328412797E1902999C4579903A302F9831EDBEBB3795DD1D09B288CC1A257C4349EAF7E334E9B966C34699B6685BC80DFC1AA1A5DE83306195562AC896840516973777AF437EAADF751714892D84B63517E187731C34A11402204438CF587B8CC19DCF05C826049C0E3304C5A0E3029FC16D2F8B3DA03C2B169A6F6D6A44ED0F35826EBCE85BE7F4DBEBF1302CB042E0AFC3A349FFF98B50C8993FC24131B3DA02B5DC1155DF5FA3CF0B884D9F0892E26B1FD140BA03C4F877BB9C58A99FEB3322F26D5272CA6D000A83BADFE9585385078CAC90E7301F2AFB393147327793BD0A4DC2578846A4E7D69C0F5419D272F1F022DAAE4CF662E9CF59B972AE8A20FA21845A3A5009C23402EA65C2E3DE16209260909A6CAC11FC5A05F61EB20D2C888E3091E0044B80FEB0E3B96292E6AD661FA9B6F7ED9915538D42D44F182CF103956C59C3C6140606DC18F93BE449DC1E2F20986BE14D67EE1BD0003BB18181CB441D070D74EB4E26F9BAC32E64C1EEA97A26C88BD264FDF1A12EC31FD0553E66478425E453B82E0C13DA9DEDA7328C28C278765D1D3B022B2B5B3FB7CEE42C254811E85105D39ACE8E2B64F0BCCEF03571039B7FD9CC2886CDD057EEB9C8C5A47122FBC9B192843B861433113DCAED72885B1F8644A68D21444E59A4ED3E474B1753B4CE034E9E6DBDB4F41CA00BF45A8D1F0B229642082F87D266EA02A972C0D314276236CA5F2013E15092DE373C6F144BE76002843C2C0EE081EBA4A4C59A20FE826F4BD0FCA63C9C06B3DFAB222221D1BD4CBB603AEA2DBFBD6BC722CF479709788D3F518A6D0B542772208E0478F19D00276057D4D7A3C7C391D10C715333011096D1CB7A3646AE5168E3085FC987A0729FCE0D35808667C4F76C7FCB2410BDD80126E56A3C5C72522489D2593F95A862BD5803A0CB0A4843AFFF2400825D41F421B5E7E29D68737273A5645C2142CDA30AD09F0ACB3B720B9C28732C9291442F9502861197CABE46753797A57ED183983F4D940C80043702EB0068F74C514A3A9DEE904EC3854E91E6C33C5BE6770F57ED0540AED19DE64D3304B53EF5F0120E96A4DB66CB4FFC9B3FA79B8D29966AA2CD4522E84DB0DA115EEB79C1457341729C4E91768E92F0FDB0B7E2DC0725E6A98409A73C6400BA4180B4F00C8701090D34017B3C8CB3A6308BB44E843416FD6ECE1773FFDFCA953835945B67BFCCD563A47044F238F00E1CC82095B649BE6176F7A67F5FE8032EB8F155428C7C6635EEDE69176847AB40D2E60BAEB3018395A60BC3AE9AE32B06153A8AAB22FC2C944D8887E0B8A6BE6E3DD39CCE2E0C85C38B8EFD0A08B06F941A86E17800A88CC036021F9D023014C80DC9CA772079A2CB23EAC1F8D78B284D15CEDE7E5367546B1D71CC0332F09ED4BE7C9F0E62F5A80FF462D477AC30D282269A433E36508C6495BEBE3115ED517A24270F048216508D8C20887CF524AC40980E3766E028D553EB34AB7DEC4CB96A940DD15218AA17B8444B4934DE09F0C87D89923B7227F5AEBAE3AA6146B3BFA1A790B3C98CB8F8F711D349E5A524EA9DC5128862AB31F7AF61BE71CE9893044B0770877258685260D5E0AF6B69FF034212B72134B17F4BF2948BD12BB087E82416595A4E92AEFDC505956A449239927BA368220336CE8CE8928A1B997BEB69A42817C44C13CA0DE4FF65FCD100197338877DCA198D7C4DF1484AEECB4107833407751904A83BF8F39269A8EDC405E285E2854B84DA2B200371E126CEDA464B0600EBC9A89BA0A36EAA063F5F442440E669A48A76CC5F9A63105D06FB801B3968CB3BCF5C4C7263088A1712E1777870C5A3240A85500E3ED0B6BA588096C082D07049053DBC16DAAE9828F1B0576E5B003927AF8FD04CA0E38E7BD50FF1CFDB59E794F46520AE42270189176750DE56BC996AF0D47581A18CDFB469717E8861BE49807F38AE1ACCE1036B695D8F67AD2C7963951646EA6D792723894B70ED65368141A4C09CEC5A43812359E0ED2AF1FCB2198FB0C129D2E60EB7F3384460BF79A0F94FA20C97D602008D1408100D37B1563437DB470037C57E2E21D0C011A618E350C203CF459A3F8FE514236183A200BC90658AFEE37F0B94AB329A00361827B7C08D2F2A3B7153C9568426DC1D44D1E07EBF2BC07BCEFC31B5519690C4FD6758DC0AC5FE0E5CFBAF3641267503E0DFB689C4463567996A285FADB4D58F437A66455D5D38A648083FE6E5E0568A03274306D5BC413F1AF7DAAB5C283A22F0AE3498211EE4AD2680A3DE270F89F9F40A53329F91A6E0947244C6181C155A4E2E74C770A684B3B3F8C6E456F2E43F4EB2D0D3C5B07390D9E011E8D2D20E0842A84912185298022B627E87D7D04154960486150C9A721A750A035F601C701C7984296B71ED3680FEE28E5A47D4A78AF3142D4E034D26C431377C81D2201B87D52E57075A1D908A2E0200F9D16B602300A2316A19A1F9996A441D46BF4D1701335F742A8785CE099A948E1A8A12B867F8358BDB7FE440DCCC234A1A81C23D6CAD1D8129D815CD4B4E6073BAC8A78F6CCBE8CD0ABE28D65F309103DEB98F3FBAE877AFBB549D44E2399B8A07C4544985D9C88EA99C679F6177091ED64C374CBB54940771A59E4FB36D241F0764756F29428600961A0FB52E1E6B86012E74654B04337616067BA23B8BBB76C922C7B224614179F3199C007A7FCF534051B40A25DB8B20921C8DF46993D1D0BCD2D175DDB5F04905E9EA93C175754821DD2E07A38F06072A43ADA69A441EFE77AAC95327B869570970E8260F36401C4C7401077ACF0C2F7D3BC23B846BCE0D61F50911CDCFE1A11707565E4D52BCA7B78C61D96296D29B30E483E6C1EEA2534A783439E2D23740730092B170215427A78E079453565EFFA6EBD79EF6D03A39ABA3DC4C6165FA01DCC81E354FB986A09E543488C61F746F6BD7449666DA0D2A267C70C22B52E79E8A5270045EBDBC36A06E6F7AEB85635E91998F2DEC2D8F9FCDD5C955EE34CF4D4E039D59B9171AF084A7E1537C42C8A82B6FEBF3A528165DC465259E1CF7668F33A8D3E03927983AC29B1D052D4E12918A9FFB56C803A10ACDA79F00EE70967776D285CB7A1CC4D99F96B54B2B33429EAE0BF84FC914C182FFE66796DE6F06320B68B398DD92D757B80B4292141D6ABAD1A62394E0E5B71DE09588778741559E37A4FFC2780FCA13284C4BA15E0CA6CBBE2925C448D9D0C8C07699F30CDECC811707B4314C94CC6C2EB1A80346CB4338906CC013B532249260119E518227EE8149A7EB04C349CF4BADA1FE48D38B33B52648B59DB2A85F88C46B61BC37A3245C2B87566231A5AE26D645124993E8CB3FE1604C8CFE35737A654A248DAA21A20760DA210FFCC343B316FEA913658ADD411AE53EA837DA8B2E79DC92CAC6B4986543F5255206B807B9FBE07B56B3E211E337D71EBC1EF53A5C5E51EF044384995C87E1DEEB1DB610EAAF1A1EA866BC8B2E9560C2CCF522333E699E91C92CB4C9A615B967D2D4E992B1A8170428151AD7847849D713B41AF5D44802BECFA50F7DBCA626C5F60C5E9BAAAC67109570175944384E65AA6B624A73034F1C4459624A3D826E97848A0339417AC185B4DF9144E9EF9B691080E20B9BE8452D4633D106E65146EA35F7B12A9105A986FB8B68E31B301F8DB3ABB804244DC01C76E52C4C6972DFACDA999D48AF3561E849B10F00D06916172F27A490BFEF1E8D0FF3CB21F013409A7C1F2CE475B62CC5A86E527BBF369FBCF605BA881401DF460E0EDE1347FB49BBCCD01A0E12D7D97C771F30768E8AEDA387E3AE6E01615EB00F34734AC6DD320C8D97DDBC8F71D64438213D17147B9A0E188BF1C09D1686809F383384BB7101DCA45137C07632D5BF488013EA2D7FBEC4B2538B491081F90C47DA522D919EBCB87D83D941D06832A51C3D51F3439ABD64DB94EF540B86F627AFAB8779E0A52DA8ADC5285CD427965E223F2ECFBEEF8E41540381DA43D8A754B68F78D644A020BBFD295836E854B785CBC0B781CEA596D12ED21B0423368DF51A4252B0E2C4E73BA50841E36B8712A31166C935A4E41F6BBDDC2FD215496F1778C57C233C45B721069A5316D152F98689AE2A9383C9E7453B463F22E21BC78940944D9DF3301136FD829EA11E33A17B22505A2E0A34833E88B28650F67332D244E99587D8A528F891B1AA55A0A54FBE434E8815BB466D0CD0E2663892A0571775D1E513785CDC9938913309B15088C4D90A94C670CA65264791909EA3ACD5EEB929012DF6961400A53E0893EDBE432B0C595FB9CDC288523E70271AF36696A1D2E78DB6D7D3887A17F7C02D277185E7DA1521B7A45BA29AFB235048A403D86DAA6F9289F1612C440263A239254C219E695C402C56011D8AA75C163493B9BD37264A7F452208422988220A1D4A075AEF58E86A778149CB17D094BBDD10A61F94362295EB0D543411DCC6E5FDEED7F400CDD5EBC1BF8F7058B9FDFA71200157A10051D7E1753F92C14C0AC15198D82D7CAAC166B684F719E5F99730CC881A62AAE7351D0DA0C0052EE2D4BCD6D1AE038D0EF496F9F453DE414DBD5207EC64B5591291373D401E13A6AA04C4FF71D46E6657A6E888B9F480B340B160477CE7637816174BB060AF9039409DCC68950C74143080CA9B3BCCECE0DF5FD9A2F42FFD515C82606B324C997F0DB44653A83084A7C4EDB0A2E9D7C8630F5ECEE75313CC5FFB722A9F4FC45FCBEF0CA06384C22C1BD468A5CE5469369A50882254F79A63600B6D17360A318BD243050255A1B05921192D6A69211C26C68AFBEB94FB8C9CF9BE2068A5B0C9507BD2EFF6285473FC6A81AB96002E75792270E39EBC1C0258A63863E7CC9E58D8BF24D1E45B76E2C311F0F7420AB3156C4E7D5326045D861C3C2A25E344E41E11C61254462436A2C1D352990A3DA220E41B23017ABD92FD0C414C08C7C0F9754476D771EF6D542D09A61D025C34540BB18F143E80FCD41EA4A2B21E626E11AC84D1DFFCFA69DF901711FE916EEC4F8F0D131B7762F037BCCCB5DD818CF3292A17EBB0A83B02E8BE29827CB97C68025B6E36767762A854A334D07D46684A530332240BE0BA2B44F48FBDE026D1FD33D22650A2DA2331CAF89E4604A6ED8E262E31E23955D6660DDD5C028E841599E56210008F93D18EA746A8B0964037958B3F4CAB95CAE5201F664A68D2FBBFF221000AAFA138D8758FADD641ADD4931C261E218C7947BD7E79E7365E056BEF562A66299DFD2217C68F22568E8E64BBC228601E8D9915EEE3272E31DDB00F156539CC2C8964600608EC3D87CA3248EBB2CB5AE59C05C1294C22E5E2A22282BD7BC71AAEC0DE44D9FBF542A5B15429A95B6A1FA6EC76E171449EB682795F89D326227B05201652B89162C3035A368BF32DBEC955CD854DEED3E74B313ACA18508EBF16C8562A9E6CA624E1134589C3849B2E35AE1C569E736D7B6F11FF136AA6E61534D6EB96866139E7967102A095D4D9FA0B89817A156DAE43671818759A159BA1D3D894A7C9640091BF18B15B3419B0410A00ECBF11E70015AF7A3E0284547091BCFD92275FB2878FF78ABA5952741FE5EF76DCB5986B403945E9BBE3D681415F6FB106B684A88BBBE0E8311C1DBE95236846427F20583CE4F50C1E40750E074036EA7883184A4B1BF1C480141A082F62C112771B3C33517F2CD20B5E869F1D996BD7F62013F29BF8FD8C6A0324E1ED064D9B207D6A8434B104F4335806092B80EDF84D4A39B4173183A86317B77B0D1D13927251185A91896CC313775D466CCDF52250A6D36EDFB97419225F544BF0F0F179FD0E0EAACBF5DD87B76A31603BE31627EB12EF466EACAD5B3BDE7385F6AE1C4390D6248EB03A689DF78D4D63B53BCEE6117139ADF8AE3AD2249FD181F6554003999BC98F571B0B39930BAD526C1C0F1AF3F358B4F1228FF03FA69A8262C4AEA024B3E4984FC3DF5CA639410A70947216B0A82476E8BF4ADF0A52F18EBC0F79000B0854479349D5ADF2276C3FFDDB86B907D9A3E6F202CAE8178E20B656EA1B5FD4B686D6D4F9A5F106341A0CFB85FBFF11C1F285CE0C9C7C33322B28103406469689CA2AF8CF68D1F6226C08EA72F6813BD8D8A8B3FEED6D1CEE51CE8807781A4CA7125B8857A520FD126B663081642EA95E8CA9D76D1D2052CB60AB54C6CB9DA1C0AC094A46E1ECABD8AC28B4C93E76DFDA534975F36529BCB1B1827AEEC5F55C82CA9645AD172298FC2C1BFC38AA1066B2EE6AB32132058F34C5F17F66D0CE4863FE636EA2EF032C9B77696E37F1261C80E3AC7C7633393C68B29E809000A2C266A51FCF085B24DC4F55ED477A8878904D080E55471AB3CFA53E5730EE3AE85E52EEC2235BDA6267A18684FC1309F11C5E60FFCCD739107A649F2D760A4496E289CE4BE12A5AF1C16F53B4F88388447E13EE2B789E31F1DE44572A01A187F0D8A1D9FB3F4EB2A0938CFEEED42618AB5FC161AF9A89E54C476D24E30D6046864A3BE2829BDE851DDC11CCD255D5D961F3DDD1B8887D7D5642D2C787E9343B494A691E9474E86BA7D14A1B77DEBD1F6871960F48C42691789E718D69A58C94503ADE097B7C35AD8A44B1ECC51F60D4BC5FB08D5955C83B34FB8D90A2E2306791F7EE9FE820F204005746A79F6B34F33BB0D01AF35EDAB77BC3CAB56B3612F34574CCD94A9AFAFC6F12EFFD2B4BB5C3A540A052ABAFB5A58EB4A061BB575345A8546E1EB2E94AEA8569883A674206C6E3F370400D40E6A2582785FC2A62865FB96CC9F5588452D6210B0286F3C5B80DD613D8EBB934A53910F90AC21091B340243CBA168E42C481BC0E8A72414C9DE279581AFF1CE44BA05E7C04A8F0EBC9B1AC4539D2FBE519186173B0B8CAA9CFB39E75A9C3E172961CBD68D2ACAA37FD9FB238947CF34E220C06BCA10EABA0718B4EA77AC24E94985E7941A787108134F2AEB8596482671540E3C03A51F68F0CA1757E64F2F8159B285061C9BA19CF22B6D0C6E455D146824F3100B69E1914E4448200C330C05930D1F5457A34CE4EB08D0BCD5F1445455E259337E2E30920342009AF94E63B6ED85D399524EF3149C10F5C5A086F9FC26F2A9B273FC5915E73CF4A628BFD4513C7983024410EFF8A30C3380F2E50AAC7821F11DE55F9A3B2C81BD0F2CBBAD36E2B9C45FB28260CB8663A953C4E766918F1AFF791DBFA682E2786BF33F4CB170922E43200274A45D57E4F1FE8A2FC2ACD5591C903D4E0C8874700984F0B8D196568133E60BA5A3C4B1A4C688CF7184ED4E9C078E2B14A576842933F12B5779D606ECC64FCE28262AF818E70DD813CB32D9CFECAE0E4E62696E5C300459D1D71B3F39500097EA25A81FD840CB6BE80EB5AA72C8F04164221E77A12DDFCB980489E73D82D6F1C2024FD39AA14FF870E4CD3C8F2CEF2D1DB745AAC14E80B1DF21D7640872706511A39F300BDE1C215C3C4C040E00F579E852E3AD6D79A7CEDD8DF5C9F11FC0C459A3CDD0206EF21459767D98B558783F9880932FAB544B89BC844EABEE7C94308DE1334DCA8A2964812B76EFF74C44172B0665AD790CB8EF74A8A080E9C728BE030115CB39ACE40E44FEC1A95025C46937C7BB67013E4FD84B569EDEB29BF4028C7685C181229E5ADC18E72C2AF605043B42425CBB0A546E92B4F347115DDBF28BEDA859D46550B4F8531C873F960DA53B590AC354FAC61B124EA0880E4D728EA1DC61A7360DDB38EA0D08AC7A0063FF988065A66A709E03110812F8040B713AF9656D4C5B34460C2181772B1D7A57E188DD40ED6598E741B14B70B9EB14B6160DDF3C7B00A57B5B092405A4BC98C99EF51D22D06CAED110C7E8F09329793CCCC913CECA91E73EB605C08066D5E05FC5692B291BCB3B700C6310F2374DC515125E6B884D5167CD87F1A244C37CCF7BFB8F4BA23A516284B396EAB7E533E19F77FFF8C62684906637BB770B2001E786B2001CE07241A3A079319AAFB635120A7C029D3C70109B6DB7F9AB61E00DA79EE8EF06EF056F3628317E571C254F99078E09305854D6721E406926DA57994BB0FA93EB23D00D0EB1860FD33550DD43FC7F967850621691B313C799B1C196CDF53D5A65EF497133F589C3C96322843EE1404EFDF86609B764B9DD34064F6D2EECAE7697E75B004BD11079577D614A89B16E1AD58E010672BF8C2BC227AD9F1FC3F2B05243F0DB236F08804A42F63F663404772F85FC695591E69AA6019CD6B31024CC1C4264391E0C9D08EC4E896B59F6FA181FF6F477911E4C10EC6353C7131744E09842B0B9401DD2C5B89655339303A79C425C8C13547B9A29441119F682801DD11FA26AFDA02858A6F6421472C3200894060C9D671C4B7034A149E8C873E79B0800CE347B83E93EB5A42CF433488B16416819CBEBA38919B80A91968FCD32A00859D50D96F8F63651444BF0600E368C6B1870BAFFC845D8E4E59729A60995FF74805CE47D7A1EA847C174C1C130F20B18290C9C4CE8764D66DABF4FFA83D2F979ED313474B5934D22125E847147F65A76D106CE89225AD2975582CBC4C1DB1108EC59964CE839560FB924D7722D5F177AD6C37A3F116520127C88905F2994F70DB17A5EFF068F45CC3362F467191FFE4A42129A6404FDF61C73278DF985388FA20265B01EC5890405CFE6AED7748FB68226FB6247B3E989028DA71690B1F7211EAD7C1A5B5EE2915121D145CF2B3F2132D49547FAF752A157434C3DB8F69386B55F4354743C093EB7B996C4EC3B4E046158D7C937321178864499FFF8C890C286239E51F480DA10F0DD0F38CA84D4DFBCE2394F981AF92C93ECF3AAEE468E0E4D3A0EA1A33DF4EB95112A9482FF323204A9C230D9DAE43E18A6D0F290FC174E93EBCA3D3DE2CDC14DE43001106CC04783BEF86A45BD596C7138686E4C09233B78E19F7193F3135F49BC89E43386F2C1DB34215FB6918C9DDA989A760101BBD2E010DFBD4AC20FE04F676F46CF4255236F52108812D97D3CC64AC48B4DEB7BE327F61AAA4D52C6AC2BCCFB2ED8A894F7523C7F2F84887D0A310C9A57824831B6E09A31037F093081E97A4401FA23221B415F7B2853832A861AC5692B2921BD4A829D8C46176CB0D9AFA4E2A613B6ABEF0C421562D74AB6B7EC530C4CAF36F4AC70D4A6BC48C998D830E6AA167AA9E92A8975968FADEE4A8431556FEFA5CD8216005A225605B24DC095568166BB728401AD5418C062F81F83B6EEA6AD9DA335DC07B84CAA1C75525108640A1CF2A27DE5DCACC1741E7A627AD640A18B8783CE7E371C23968A8205AC7EFC4A6844DFED2A8FE126266A41E67494887EABAF60C3FC744C2FCFE09239FCFE91A6C034CC1FA5240858BB0174736387BE896EDFC6606FA39ADA03E886E5F660F9BA3688C07ECEB02D0944910DEB1B5ED6C65699E8DF4C973F2E0131D28AC2B9DCA39D10A7DB6050FC4C2111C41EF1967382EEFAE507E88553E2DB6AB50358600AD0FE8A0A4B00C81117CEFA33F93AC918DB4F758BD8B59F05265CE533B9FC67316C739922DB96783745F531A663DF80C703F5CE7C34AD57165583E219693291058AFD0C1EBC180E89F7A47E5B15CE41E1A70D6D43D2F6B60DD7605EB50C7E3AFF67CA9BD348D9790291F5C4D30D0DA8DE07FE303C576A5B39A39E55C615F83348DACA47264CDF4136037569D2CF0484E52C461AC8D22E7F91250B9B306ACE71DED5637263955538D04AC316123807C9286ABBD14538223CF2A446ED8110615280F015EB0330C3E9AA77DD7C11938F434CE346943E06913AE4CE6CE112B4F6DD95124F4233BD27E897C05C441A6F36DB3B565212FC1A8E9771C968E826CC1B9E6AA4AF5F3ACCBF6518B38FF4026FD247158505CC109F60CC4D4DFEDB0E9B885309B5DB3F48CA00128EEB4CCBB8AFA45758CAE49122DC109DFB171F4A85D40460BCFCBA5A9487196420DC858EDA59E30C52F2883A5DA570099CF4C225DA6500D869AE955BE49FA22C62AE7C710974F1236F59AC43222114F9AD6E6E9945309FEC819D23E146D8F643C61BA50291C6701920DE883970502641CED2F342D13E059A5061F1DD117961AA5ADBB190AD4BD5781D2AF9992CF3A09E52FD2E867FB180665C0A059637328B9FE2F4560216034104E1BB00E5C82C46B274291C0EA50320214BC228398C27AD8F8C82D746083A04F934E4DC2C0B7070710803C1F9B9084CA91ACDF2DC0A34B53EF39143E88835A104487CEAF380A7C00DACE48A3728D2048438FD3EC255D68A566DA4180490A3CCD5788603CDD559606EC5EFB8861CC1CDC5BA49301BD5163498B37DA0CFD8A8E585380F7237A319AD7F1EA1C32BD49C561451A17EDFA47485BE0BE077725C9560A0C262A8B534A9716483123BA790CDD9094BEFCEAEB7C093E571198796C4A21517523B2D091E2FCF42AD241ACA64D980CA44FDA91098E0F688E3A081706D43D460CE9403236AED42BB55DF1D5672DE8871CCE42464920E98D316F7F4FDBF930A1F0D828127B1931965B499257A8E8533C6CA30CCF312EC468E0A70004A45B073A163A3B943159552D6DEC090C822BC8093A467C7831818D6FB5CACA20347AF117E79F555348EAA278F1493AD684C973AE1B5B1DD1BEB92A771890E43E078F08300BE9B3394B18B1CAA976A034830C43679C3D831C416DF4C3334A9EA6253630131451AC729609BB45AF9AD6FF27E570EA438E33787F29040AFD12A7B1C770FC39A9274B3605419B4A641FB61AD1442B223C8A7C58980BAF33864C87B1C41E25200D880B4D26CAB5BCB3B5460A6940A222986672CF947B473CAF496386F510EBC49532C8993F2856DF67FF8205E3C0F9104D997906D24CEC47FF9339760C4AD1191D192F145188E4683F8B41C7E7A43BB118B44384622F2281C6C0CF74B849A673357A768D524C0D5C57681230B8B681FEB2C027DCCDA83ED450E7B6726436BE85BB645B16FD8DE7D67FE20ECC380AC5459F878AA0E8D418527882EA23F6431941367CF8BA6F9E763CFFDD811BFC4F7C5D4FE2CC8F7E31A172B1503F0B1DFC4271CEB480983E6B1E42F36539D1E6AFCF646890AC4924063565EAA55ACFFD9ED231A68BC0CC1E198C05C4B3A98E8612DA8740E09F92D488EC9201D4EE6DB698437A8AD8D393645AC72B20270FCE1C139984E4D790387BC7AB8F8960ACD6A6A79D07102DEE1488124CB28B382AC997FCACE34785E95768BA9273D7B8F4A1BFD64B76049464656D7C3467CA9441F99AF5E8DAA0B0DD66F2C8EB2BE46FDA405EC84C9B013F7063C38920083B1B54A183A313B3DD1AFB62DA777F180EDED072209104C0238C12FCB0A0FCB45CC7179FCC7B9516FC787BD0A8B235BA225C7EB8DF92BD14D2E1880AFD08C68FA9E43462F2E8465E8299C25F0ED4C9457E0C42BEA4F13465A0922A8C3BF445CA8DEBC442F6FF8142AC2D2F192152F97B0E79C44A4A42B57C23152693A31EF631286FAA44E51729A28D63784CC425DD30B5FA97781D575FA125C16DB0CAAC298C6E9DC57F38DF5BE47C26102D326A64CAB4C0932F9B909A3C3EF473CBEA1FAEA6BF97DC7EC0F1AAB05F855E8DC4CADD0B9473416BA30D0D52CBA5D45778DEC65172CC0782FA328FE58007529EAA28AD270F69117C062CE48636DD7F8B56012E626033FC0928BD4E016E5905D22E34ED7B0FB5622B1B0889F1033F3939A18B15F79FFF981A8AC831AB36C70685A641F759B6663B1F1E7A25119B6BFA2696B5109D0F82E2C685F51148CF94D6C993BE07872BC40E0538C74F7C0DC9C32CF6F9D887DBFF48168DF7EEC618484894850734BE482D7AE8AC92E5989943489523E1AAF9A8055D1509CDB3409EC497A472E51DCC8417818768A8CB2C2AB08334FB2BD14A8AB091BA153AFE1EDD671C14ADC068A31980D1D66097C2AFF335C68097EAF985892CBB52B9CE86C9A09A0D839F2904BD9FECCB2C7AF44041634B014CE0013520E84E63EEDA9BACD8D562031B9696C285CB5E9B644263F1A0F5553B0BEBAF708577ED5ADCA02C235B1E1D1168249D14AB0C9744DEAF03A4E15880837C13BB9D5344EC101434835A21AB034529FC496A4838FCCDE9D48501DBD9A3BC1868B80207EDEE6B67A883324A243B9314480C1F5F9096A5B147B87C4672914C2FF585DE510A194F730B33308BDB063DCD924FD4207083FF23C19739332632F899E0818F68960712EC0B41DDD220706F9A16B0757E6B6C759BCF54A9F42A3C212AEB60FA3881E6D26CCD92912F2F877C5FACE9640A6EF1DF1BB453CA111965B75E479CEA035D963EC59062B871834F8448593AA5B0951BFC927B495CFA796F11079C0047F3DE6823DA6E2C01414E0B55C3E949734678E6116A91F0C9B181251D18B02F515D07AAF37709A6308AEC77829D0411020C3BC10278499E947F8EC8EEA659CF1A5618208B01C2DE8ACF88C6AE4F45669FF6A541CE73132D8F87DA60A4C99AC33189CB9532E77A0B0027D11F2C3D709F972FB82E552F1C70B1CDD683BE63746DBDE3E82E27A91940FA80528CFE358741896361D783D92B110936397085CE25198E4C0EDDAEF80DD80FBC2B4D45F77C763BEFADB2FDD37E6258C2ADDB563D716F8CAE3D7352C863AC96AF178642E3C0115FC515D8397212BC4ACA838A01ED3448AB7524A611937437A73863B8407DE0C925D291F227C3ECD98169FE7A7A00A89A8477B083E0BA548B5D81AF84EF7A0F58E571C305D26A0D1A9B175AA9A0BC00C6DEA795A42E3046BDF4B26C89B3BA4402E983B6FACE5B0067460EA8E12494EAE0A34C5642902695815AC8DA4A5DD7D4C023CE3F32231B6B743CA9DFFB34E5814B99350A5028C0E012754FFA7F8EC955201091C41268E88860A26075138CFB8398F540746ECB74FB8F45233A7BA9398B36B372C7B5E4C60D5006B21A0BEF8D443C66CE4398F31A2150FA53ACD8B91E2A5B1A71C3108B849F4EBA1B2018DCCB7A041CAD0492A5B2B7D31509C411FA6D424CC248B80412423EDB3BE697C016D42C2500CAC819A4003B2E588020EF0EF8E8F7B0A432060881C81055FA2F573F1DD0A3030327869F704FC1795C6B9B4F9038AAF1771A0F83962D6BF12340B8DB0E49B8086A6051BB1EE112C0534229043ABCA1262877BC858AD98936D71D1004EB193244201DB0D014947141D0C42A1696283B02E5D23722696B1D092220874543405356BAC809B34E50EF1614202F48A3F78A82D8A885792CAA4B77F9CF09BF3715D0A25C1C604CC5266BBB1405EFDBEB4F21D80E9F2716B652763A2E87E854E174BEBC2D52C610B8B707D8419E01211440B86A9F2625E6C0FEB16D2ECF45843867132BDA4C3433F8BD6269FAAEFD21E5B101472700FA6DBB5D28E9B0F7936BDD220C036F04159DD3888C4BC8F017FF020183B8DB45822F3303E3DE3188DC6351D6BAF425AD15D47CC3095ACC6B747015A821AAF5DD10407DEB3337CCB403C0E94133994E989F785A642CB90794E91B8F36BC520FD74BC727582649AA698BE7F640982F17FE1C64CF07E51D1E307B16C8765D9596DBEFE0A1E3EC39234BADFA6D58214A91FA01900DE41BA8E22BB49456E61700D0A38D97C4E7C4A23A574866D481A9C606FC83A2D117932B73B2B541A1527DB1DDCD52B6ABEB81A8BC52C4D9CAC3081804264CCF66F775E0258510DC4045CB802CC8A111FD18EBDC79F661B929E33E347AD48562FA5579BB35D694C759EE500645842718DC91A2B9FEB4D72F4624BDB4D5EB5E02529F3E03F51917503FE008B585D03DB4BC1BF29F6590DC37DA1F445A282E44A3C3836708E3014D5516852E1276A2815895639D31DC3F95C22969FCCD643182F83EA2607BDA84B2E84252B7004839C1C2B5AF1803319A2CF87458726E748AB78B35D12C15FBC0BC84ECF20EB85098508307210AF120B4E1B4ECA176FC605FC13FDD73486D00A9FC6996DCDE6139C10DDF4DC868E79215D588B35100D03044AF5838538B093A6E78B5070EFEA4038397708AEB21DE1B81872947196E24B9280B4387D1F03DE22E21309C58C3E108A4E5E4D408DE170494304325388721724E8C5251C233869F80F6E7A9692720DF0C3C5C8B8C21D5CD177E9F47F722D96819C98785B1CAFB87EA6B0269F6B3641209523E643CD045F31A980DD2323BADA84E14FE9289F48617B95D0ACBAE4C6083EC9F5C092013D32658DD482039ACE8CBE64557C9BC742D29E0531F6FAC091738772836DB264852FDF89788513F2F5D6378D5CFAA62BA68F7A119981BE1C014886C0644DD2F28E469E3395DCAE1D4563122A4D2B2B0ED14A35C66873970A1DEEEFECA97BE750C08C514D05520DD7C89F5C588068FBF21229A6F86ADBC0AC79272E102C4055EEF9590CA0FC907D44C2466F3E075DED383772A1E894C244E2AEAED44766B9C910EBB858B169C8C8B70621156D0EC12833566E0C8E7441FA68918D6C91A0471A0C8D6E99299DDC6CE636ED2A0698898AC65DE14C04D505EE658FCCB3AD4346B1CEEED208940EF0EE2F3A1719BD6F0C8DF1F91756C47FA5843CA3351DD12509670605CE2394EDC2A19071C89CE827991DDEC83631422487B3AFA34876F1C0424B34753CEC2E82B76D02CF73828014DA48885CD6098707728C75B1C3FE23EB47633CB724C098D937176C07FBAF6C4909945BDDD62D068D70D54B2DE5C2474923042C7B4C32C8FC63A2BA2D41453154"), Hex.decode("CA09DF7F89B9B339C8D506B4E0E73FF145F5F87FE26354532E7EED21C6FE3355A737BFA0264CF661B9CE14128695D598254BAF3EC5C44273B375B70FE7E6457358C2459C1C19D589DFCD9895498E28A94D7BCEB9EB4C1CD113012AA3719165B7CD0507DCEB55F284CE537E82F60C0F83834833D02B6D825DA2AF1BCC6007B13F4F3666F02248A83843DE6ABAC5CC4A68608C261AE7CF5D8809956C9EA249AB005D0571D7399F7E51E5C730A15AB556E87C08067EC122998E0B4EA0C7D51B681FC82A8640333401C37179007B3DF4648D221CF2601F0B4223619F7474682A2607AF01FC5E6D40BD78E10982EF070C16706093A2B408583277D42D76DCE0D2607695A48254E8533E48DDBEFA39AA25060FF3BDB9B234964DC82B662DEA346505375A42A1405A78F294D4402ECA92C725F243E2B9D0C2974C05D45BCA30B97072CED73B30837F13EC7FC0F80000D26DD73D5E90F707C60157A7CBEC0749DA50CA136D517D1445FCFE770711F172854881BA302EC27A960F2CAB2BDE5B0631D2CA040CCB2850E85A868E0217384A46F266141EB354413F08D1EECD054632846123B83C9C15A03D83D9446A6127273F943538D60B8D7E98C9A9703CA87605F3BAA03D8BE3049F05394059DE0141541F3F08C298D05B0C3030CC6984077D5CDF9AE9D42DB1FB342CBEBC411A53A51438984B3B4CE07B272FB6D2FF5680E0BB6325CB137A3F26A6C86E5715B3C3E41A84DE438A94754DB0A19A1D18CF587680FFA2C435454C148040DE321E13E31929B348810F95852E0B6855F8E31E227C71C1062C8C61EC404A1F4F2CF73EBF86E92050368794E2388F5C58D171251BE631CCE534FF0437675B630A2473AA239F1ECA4E641369E9C67382D41A5111BDE590202A2336CA8FDB8132767C0D59E3081586C665802899275448463FF284AC49205500ADE4E93F7040725399509BB692C8EA04A092311030594C51730517D3C96D79EF3014AC404595D70E764F83D5B871C8678C0819239D3D8D63B1E29515E4AC731CCD93421EE6FC3AE78F520F40DBEB6B74ABFBD4355923B9F66E2ECDC39832420D7C575B89C82F3679EED6460D6249AB4CE037E8C835F18406ACF8CAB6DA80333B1B8201E0AAD1B3C8DFD828D1CF50B60FA5672F7091ABA26A21996B27A0ADB819F1B03785C83D004F8E000D8FA81956A378DBBC03154F766D536B1EFE75BB1C3BE660209E5D1E4ED205DE0B856138B57451DFEB1592ABC9625D8352738D50A1D1BA0ECE4CB4854CC187C7F35467879294D66B95F022C1ACCE296CF76D780770EC9CEEC099111BEC60E6BCB031D45318156BD59AD2F05A0264282C167326E07ABBD40D924D8A3C314D586B5F4423C081EA3EB8F9D4F85240106C55074BF1B38D335FDAC2BBEDFC6F61F02DD6F5472DDAB4CB5F84C09E804C35E35AC9637428D7BBFC889D32E78E2E0174F792D66C2940FFF090108D26E2FAAE166A92538B761C1C8FBDF4882102C2F607ADF275C20943D16527BD748A83B04BB8FD5018C5C5DF0A985644CEEBE3C200741EE8A39BD6247C662D7C1A24B500F08BF11E8E460203BCA47406D48D82502A41DEF1DC7FC9295E193FAE94057244B0F786F7A24E454699432CFE2F3F7472C63FC21131C7B9F6DF8BCE2D930CE65FCA9014A732D7BDED658D1A6CC154D7D995A9B1CBCA84DF26A2B65B080E462D1799E85575413D61A38C260E25B69E9C3A039BEE3395FC1DAE10B2C158CDDF4319C347074D89B27848AA6B05A13ACD6C51187313FDA50882E6B83B30CFB2319B4F3B3F5AC3A95B0E8A5C9B85E60E79AB7483DAA8B4769C14B75E28923839BC9A50AC8B2D424624A9F3A1B531F0921330B7B9D97C839AD64B1D2F9DA93B3A8E1A2C9A72F0D647C8D2E5004164B18130C39F54678E73E22F716CFA467918E440A159A8514A40ED2F0DA6873B9952F5D25414D2B2F4C21FFF321EEC20AB81E24B106AC33C648E96AFF7F293B7A8D676E21CFFF481EEF83F61674398AA01669004B5F7F86E54A7AFA6301392BABACECB2C18E0D14039514F982FFA26E024B5927E6DDCCCED9FEDB07A3FABA8C6445D0D63099832B133089E79388D62EF391D6CC089A742662A5898D7314C901D71004ED6C6D85B4E4561AFB8AC3CA25B1179474CA69D0E7AD185D9F1A3D8D066F8399BECBA4D430906446C3622F920826437E642CEFD375783C7D5A2A31326C0634F2A88422C456065D8BB515D818FF1ECD30FFD6A377103E933C086BAA9A12C068302E281739709008E2CFE66186A0471501082D1417EED5D233301683D2939B3D4C8A92FD5C4C3B28182FED67CFDA6A0D61269E2E123457BF8E436F57224C7F8BF7B63718DAA975C0681DB31508AC84634FFD75E55ECF9EBF27A59BD3D06BB909077D16C1A8C82F6340301FBECA553183CD09D72C320B97F1EF43C96F7DCFE0076DDAFC532C6057EE06C16120AC0145CD02DFD64106AC7AFF4F555E0ECC0CB244A21919E8EC955C18D320BE0B336FCA69D3FCFEBE59CD11D23D048102CB13879DF6C1A325B97534C5C4720411D490458ED1C5C04342E25CA0C94C2ADD754F672F80FD2E3EE424F7891AB751F27259EA65889B92FFA7C04B24D4076166ABA495F969944E6C41A3815AFA860B1465BAAF4A0FB2E139D366980B47E9F72D723A00D4D26AF88248DA3494B939D70352131D3D994E2E988E25CFA3DA83A53CA9B4215CF894AE103770BD04A4C75CBB423829D82E959D29BF84E83C5280DA95E27B5EBB45767C5CBE425A6B431FBD9EE12D694AC45268E81C26716255162288A20622ECFAE30724329A136D714DEF2B8AF842831F3472BD071414EAF694A8524369E97FAE312ACA6498DF1834CE9D8F96D1265AA59EA68124C32F75CB8C1259DED4D7FD0F5212DA0B2828B74FFF17D4FE475D81A9BF87C5F539A934025C6E07D853C2DC58A4AF75461D94BB5C32FD4A98D37F1DC90418F3F1EA9220CF6807B505A503F628A8969751161254226A93F20E1D042748E873296C1492D1ED5FC9AB7A8EECAFF71F114A49C8C192971AAFDE226C93EA168065FB0F03703D3B24247DCC7293AD97C1710CCAEA9FBA6FAC896A8ED9449AA16A76FB53B20C0C80EBC53F109F6E37582ACB14C916068B288052CA8389F456401D84FB3117552969A693669526E62D48ADCF24B2BC60381BDC3B138B25E2832409800FF7AD3009DECA801F408C8B251EC39BB4DCE6179119563F6FB451E43F93A83DA917C81E5C77809243F212865AE369996D62660F3AB34BCEE7F6FD8D1A23B0A8318211D16F4AEBD258B70F3C7E2D8DC69F2B52CCA0B7EE70B10B6C2D910A62BDB02160582C0641043A84F9AE710DB30E718245111CE2DCB00B82B1DA1D29F5D059BCF062DBFCB5DA4674E14947E8138B127D2DD201C4859035E4E92FE7B7717E971E3801827B7436E7FBC790791A2010A8232BA0BF3129B9C54BE3DE5DE4DA1D4CF6347D8287671C65E91E5BD86C5E69AC636C25511F6226DB92A5B6E92272E3342D3B605E2BAEA289121B14B19A4DF74D4941B24DBA840330BFFEF87F906BEC30A48AE50C9721CABDD5F12ADAA1D33A0391D7FE225BD111FC4A85447248C6033D9B531CB387FA3B29C70A4314F0C88DFD8070529BA8A52033B4379ADA6E37263D6301CADD83A9900ED804A628D98772577DCD8D8BFCFA64814983F96A90F9536E68BC05869EF1A1F99FC90EAE48E55066AEEEF9CB156142007037BADEF631DF535340188F5F2E7A415EB79889E6283256F4223FCC58D484D75F987EE3BF546C6070053C66D779C0F210925E30A152E80B19ED8FBBFDDE55801CA44E435481E27C5E04F27C57DC147E026290510BC09331B0EDFFFDBCD2A66AD13898E223818F4806196DA24F9B91AFC4E9B571581E0002DD6BF91331F3A640952ECE5DD244FE1474838595D8308B22DB80D560F4E37D3954859C074456446851D91E9E99E53FE2C3D9D0BF95A36C882092C40060AD0884D17295F7D454397B515FEBAB538C3BDA2BC4C1F93A0CCAF2C77E400347A6A31A1DBCEB24F008318957CE9D399E4ADD2A5844D2FCCDEA92D5CD3789F624AB34F2A387D600BACD5443AA18DEBF5096228F6F249C6632676ABD554875E7C3E8DCCC89F00B16343E164BF643825FC40DCBFD909A188B93985951D3D281441202D3D75C27CBAB4D20A5CCA82403FD5A4AD92ECE876177CD2C7B140A479BD55E9066BE4BF1AC453AD389C3311DC40311C590241B6B612BCEDF7987B8CFD11D65D3F249C9D7C638445C6092243099681F502303AA7766C7D1314F575BDDB3F388AEBDE83A6C1514F4C881C3698AC89BDA978BB9B04637BE90F1867F7126CF5EB458F681016556BC551514BC8B90ECF78DCB2914BBC40A925D2401A07AA6D1AE6085D710106B6433A1CD1A34C4CB1A752CBA1536E5C30279E7775DCA27ABC86EF7A26067C801631AD6BFD286AECCFBAB22532F51EF33ACA53FF8F80AB55CE2C0502F798FE4E727BCCD8B99364DA5417E24836F97B98EF05878C9CAD1CCB42A1443023173FD11EA32C5570F031686AC51C0FB9259336892E863EFBD7AE5691C69046CA1A6B11D7D16D528A89864258131F85F0C0A9F51F07DC3A8FC3ADE3B817D2DB1769745E4E59FD5AA1DC7F1C6422C7A51C23846DD21429AC07DB6769923B4650F9DCD06D25DC524912DA42567BFCFB1A9A0EA98BA0526C6BE7FCBC86CED7CBCAC9AB6CFC261675187DE67B3950861F58E47E0742D8F5CF35CCEE41622D0584F89F0C829F8191A2D33D68A64F518E2F50D44BD616D721DEC74E6597AAB4002FC87DBD9679014F9A887715CB2515559FD80946B41A4D27490AB25560E4A1FADA6834CF2D543EB9DE5378D07842BB8450104D39342E21B522E3A0FAAFC9D0771AC27B1706AF93B13C8AEBCC8D46EF5392760967A3B31E4900D5A4CB080B793558A56C1F1C4CDC41FEB54E85FA8444C7DCD7C364D8411EA0ABBCAEC8FC06EA482B59987226B025B6B455C31A1FDA8F6BCC1F00E5D2E9B605B330EA0A407B58AC110DCF1E7476A9DF332752EC63D50DAC7B4380D1ED52F080B060F79F2F145D318E9A09BA567B9863C23D943D58B3EE7B2A07D80402D11F1FB0B4CFEA9170AB3430AF016E08DA6A1AE4DE84E0BEF97C43FA2FDAA6EF9336E8F7D18D7DD0B953D832BE2C4FC05498BD8EFF0BDA01B065A0D0CE54E6C580031A79F19C1536BB261E43028AD8A0A4D4AADA0D5E7C498960289F462672AE9AE4C2A11973D0DC5A66F628BCCBC580D0D507874D01A68BC2720F82847FAD98E5BC13444663B246F5C269146F64A0F4FD6FC1F4AB9105C19A92566F8F341410C7788164A97D8ABF531C2860DB9004950BE0A92EE7E5D7B88D20183479419B5B2520AEE1EDDC951A4E6D4290BA2387A003609E5C826C470EE476F9D0109826F16415B0B746D87D093A006022A6F38E4EFC21548DFE5030C7BB45248067F5F9904A8FB874725D5BB4137D2E427C170845CC2C8DB4F20FB0A6BBF368AA9C4F206FEC9A4A567E65060DC133DCEE08DFC67656EB917BBBF1CFDBD1F315D71A75E8754A4AA9AB6D35BC618CFFB2DF03E796CC00D687CA807BB974CB1B298F1D31ED2FFE0D273460BF10BC99FDFF602C619E6A42EC55817C0CE483598EBFD917DD06451E96466DFA089D67EE1157F2C9D7C409EE5B50C048DE8BD31F0F297774B226661645719A8B8045EB2912820780A49A7C5EC24CAB39A218FF6C74576C5810B1788417CA180552BDDD82F2ADC38CF91192E2F268EF78827DA8A5754A6AC6D2F860EAA20A863E54694DB6C27D2DB37CAB532319F64804A5CA5C311A26BE6699830AE8B4B2DD67980CE9B51D828F6B1887B81681014C9874C50E043F2E0A8D7D36B914A6EAC8E0DD581384CD66E87A43760C838896AF808C33122356AB7C0680249EAD3A291C90883EDD4BA914DEE43DF13E1A70844C08326882A818CA5BD068C58AC34BA919D25EDCE6211866772FCEC1B985D651BD472DDAE6B03A6A9E0BA00DDB3FA2D62B07B82E05A3A7A7933CF0FB8EC22399B3EC77849B8D53BD7781971352EC1359951E8D4FD06244BBC2C6EA645BC37C491DE1C2EFCB1A88D903960EFA4C461CA21B4059164012537260B060652BD9ACC36D0223D575866530A9FD7DE11DCF18FE44BB84C0C6205D77196F349DC914736AB83CB87506989F83A627F3DE150523C1BEEFD9528489017C023B6738516692CE73CB32E13AA3B902DD2D0A7908760D12D6B170E3D04048ADCD8B8DF55FD18082F911F87E93113E1A66611F176AA53DC6EA272D6B76115AA6E210B9F1C23EB8E06EE521A3806917D584ED58CAA992C340660725EABA1DEA69C5AB8F05395B7B0BA8F414BC63E6FD42AF6AAF2A5CBC0AB15D57E7211E02A8344056E53A665F20EB760237A5CFF3547F84F4098936C4C05BAAAA6B6D7D64F07F9A047CE77E5B2E6234ACD3279386C6FDD5233141F8A799D62DA14D03869C6DCEF12883DA4A846FA286C8D5B09522619FA037D88EC559101C42A3B4379142EA7520513A51ACC3EB818C00450CB7F485E4FF855A9224FA37A89177C09DE1246FE245C366F4A96513C2E8A1CD77C4DE2F6422FE7204C4E501EF7273A1192AD5B2E6D974C472562BE666BF1261CB15CE9F9E24709AEB55A96FD838FD041F1274554046222BAE29F29666D3FEB06145BD3481A1B82B65D3FEF880491F39C21EBB2C03C70648ABFA376749E9FB3BC3997CF4A7F94932F37D35BEE18597C85A223A45D1A3D3A426D0D7060CC412483495EC11A0535DF8D8A6B92DAE50FB18E37848364E6D97E2D4B7CC63BBF3CFA62AB2E32321016A48B8193E82A2D3984ED573CADFFB90CB8357D85F6220E99EB60063A84B3E3841A34FF102075F90672A3AB1055D016DB70557AD7FD0D02DAC7D6794625010E685FA19F2334AF6F660473D066E280359DD5D2AC4080CE28D228066BA663A8040FDF8E72AD16ACB7661C993813E5AA016131BFAAA80437E04167E6759F93C453D64A0EF4DDA10057FB60D522F059A994E679027037BEC7F60DB81281007CFA16176569A663413265B7C308E04192E9D87E48D8C15259BC288672969A94AA2954E2D210AAE043E02C030A11E96C9D0983B2ECF3BEDECE727F834615731C26D5F187AE0423F5B34408288876254129112778DC998B713490346C955AC0E0CC86D52423A8C552E815902E686E28FA466190B2FE042A23835A45B3045CF300AB66DF4A0615C93164EBA72FF460EBC6A728A7B304E6719C719FB18410D3DEDAA751C02FF06FE18E8C26485580ABE81784D3C73CE72F734ED688EDAE3A06D8529FCF7900C029FB0AE926A601FF3739FE6EC7C5891D32F91DBF47985004A766B3C93611DCCC47D3E6F435EE0D21BBC0281D4D273172B3952617E24AC292037D6047982A6BDD0BCED4653CF5E07F7662A250107AD9EDFF0396913048030F87ECAF23310B9A83E01A46EC9CDD028CAEBB3DA078553C3FB3C61F7D41ADB0AA0B890447A0C07BF9FEB04DBC5C7162A036007D5C8E3199B21AC6498DDCB5760292783B0C8FF3D88431ADF9ADB23209197B5A1460F7BE09826EF91D1B6A6F011BF52CAAEF9AD34488C0594A3A4EB34CF41527EF56DCA2EAB729518984A1E30FA5296759F08EC6DEBDBF5D1ADC02C6DAF13B2D69020ABE3419DFB38FA3A9A8F7782A30F980B09BB1242DF82413B2FFF6640126088E213C9F8C3C2A6EC4DB005907AB48D1DF60382C61A14683A5030D2F81A89CBA572EECCCF26976EF2D61BED698F127392E71C5CA93C0C61217E92ED22FB1870E425100E46EB34B06819DFA694AECBD922A0187853C8BF33BC07EC68CCE254D4F6B5918A0297F6DF27C62313B4C67878C91A0410AA1B6142C0BB263AF02FF80BF4154BF14CC29C5ADF9BEC2A205031148B634B8D65E688D3C4431529C03B91784C7EAD5ECF020842A47F327142AACBB901586BC571BA17F2BDEE218C53A9E58333033182A667273AEC10D1CF900858DCC504694459D0840528C2F52FF2D0C080DE481B0B169696E3B36866E50CDDEB398B63989382DC2734E032179F2084FEDDE0CDAF2837E8C11444C1470DF1E054CDA96DE7971AFFB6A1E8B34D84F4408BDC7E932F5A2C63214891E0C16CBF8C20C145D18371B1DC6A339FD19116EB884AEDA668D8EE2CB85F68CD0B9488E24C06C75F53A6D9BFDBC71C8BB17E1202EEB10B7D3AA7F9AAF31457DD4981426D21E91DD76CEB24EA982E68A12F77850297B0592C9287996834958C2560BAEA0F3BB8E76BBB1224FDED7AF1D4A6ED880BD95F128F32BD392B3FD343D58E8C5BCC9B1424BBDBEAE26A2120AD759136DA7F28381B9F84CC902C4BA639294255F6344483CE34B37FDEEC50544A1D26184E76D05A6B0FCE9606870FD32E0E2619C7D6E280DED92194A60D5E7CCD7487E0602BABB62FE3A4EF15846B7683E7F0D262AC233C735ED78DE58194D288435700A78661B753ED26054DF4FEEE0923EEE786E5F6FA1A6666697D33436A4E9A3054CC82ACF0BD2FCF903464A2389C87A67D669538696E658D1CE6DDCA9AEE1131AFCA2DB21376D43E382A4B9810C454E1B613ECB972B9BD60FF35AE698B653864DFBE219E9205FFABA6700B514F41936440D926B3D1DD2AD696E8E86107AF6663A43FB4F199E5F271ED3F6759C54FAF4843B9EA3F0814C7301C77995A43DE6793E15027DF52FD7EAF2AF3811667430E52451F56DDF85BF290F8811D586A3184836217DFFBD78CE485E72D209AE267BB4952DF8D301A55A6BB1368FC522A398D35B59FECCA5F89C0635D83E6730990983D47AC6AB7E7DA85F57599C3C69F85DFF280BCCB38C2F515AA60957ECBB2F2010958C234ABE4CC7D755A82B017BDC2BAC5FCAFA7C9D392CD32769641DBC5D8C8CC3E376C66991A0CCB4B440015B3084665163C4876F488224AB6E8E0B2C215C541084A4A15CD774FD71F110121570E8C05A06064F8FDD1442BC841A78D6FD42B3D398EF2470231BBC717619E01144E51952F8F1EC605DF00F6D98D5F18C1D26E0271BD9D51CB27C09F99CB749286A46DA3DA77F3645D181DD9E24D3DCD01FC0BE2347E588A4042A49526BF89ECDB3B6A1DB48760C03B6362F42852FD49AA903840F557EA0FF6920C678F1AD06BD5C8E7BBC1343673FBA164218E09720F453E54273DD42BE2B20DE1870C7BB6312F833F76F2C5F2250414A5F3554AD28548F29C4273AE67830B361ED8ACAD7A4E13C7C832DA0958A9178BAFB4A40017CEB4E9697F8B0C055904D1DAFB539D48DE75A3D2BDA6B7E00510968CD9C5F4B290E25C79E46BB9562C5999B4762B053660FCE627FC6E92CB6288C529A72938EF591413371E263D8D71949F64C3001BC323F8F03F2834E34FE4CDD96E61305ED478CF278D3598E07960B6B749C34C22F5875FC0F5BB93EBB3A157EE54200C2360F08A03196FEFCD8471360384F32314E2F90CBBF887BD63C444A097A04F9679E373E9A6A0FE0FC730E471483485891261A1579A54B76BC8165E243E4CB7377DF346237CB311D6E1758F4BFA3FE6A0FF05D3B82BA44BDCD5E8C9E418DF41F81DC989967D329C3D53454D6A4D58D41B8AFA036DE038ED2D8E9132E9357740B33B918C8CF243DB3460092FB6E5E264A1924AC4F249B9A774493C4C3D2AC7B672B1E998540A2609D4049D8F5F63CDB1ACA366B7278CF90579926B3C55230C64246A65FDCBDEE57C8BDB34E36508999A9856B1CF748DFC999827D58558B77B322E0091E1A630C1C486997FF7B56E9CAA0621E569D11E0C3325CE6076F1A30F812A0692BACB338BA1F55B82FF39D7498BEAABA06AFEEC76FEDD62F97BA9027666DE9F49FAB64B54107B51988801325D9B51119E4AC32EFFBE13D1FE28ABFABA759A04781FE98E6881F29C994AA1BC5E9D0DD9EFEB18484D717176903A74D3EE1B27D54CB0E33CCD93887828523E41D115F7B51E7E0D5D43DC484F1BAE8111100C3F30E72968DFF0462780AAE01168088FB3EFCC30F329667489018AB35A9691FB76A6AACE8B02B872437127962AE12BFD8C82DBEF2DD89EFBA3DB2B63C2801C0EE6BD331D21105C1431FB867FCDC51C02DB248861348C543012A8878A6056C8D047270461D51EA4D0A85FEDF1AAA416029B523FABD44E3E25D9F555A1DDBD2C030F3527F758A0EAC9F69428D3F74BE6D8427AF8B0C407E0E7818764AB42004829C8F102AC9822F7766AE94A40A8F8F74F0C0FC1D601702319530BA0AA86326A6C555845D1C85DC723A07FDFD4C6F85C2F5C4D912CDEA186D12EE418839CE1F9456A42C603605D42BDD9C41DC40DD0720BF99AA3FB0E2A807EA3A406894C81570A323DD8DC67F445A53FE0DCB0C0835293EDBD4F850116D2B3896D1ED631455D9C9C5255BFB20453A2DF76E9EE3460A09C24D08CAAC998A080677D755283BCF4E4EBED728A81A6713B1A988164586DA4A96E666F5ED8AB824D7931C4E5EC3B6AF1D623A3ADDA1EAB6E7ACE419CD63E81CD93E81EA4D2A64D25A59DA51999707157A512B4033F52C89ABA4DEAC79217F725F8D881E3ECA42FD0A7C08520E273C9E2EE15D3E704AE06312116D3668E85E41E94DAD2FB0F4A506FD40431251AB643E4A866B361CC42963DFA57E9249904EFCFB430F30346A02EC19997F96A3FE2AEB5574C9D065B68804109F32ED27CC6DDFA24D86583C58494960A78AA820D143542694708F53973150FFA3C3EB73B04592CBE8EC365EFF2EBB491298E16E11125D37B6072D67C21E87EBC8B410943AEB7D8E23C17E2C45C05F46AA6F852759A78B07CD5463CB30395A5B407765D9CD99B00D40176D050D0AB736D663BFDA7110520639D1536022A0F99C9A4995DE1D6AAFC7F8C33423ADE5376E95744DBC797742F7F24258FB3AC93249B5BB7112A23E2D1F8316803D2FA940C5B5D3D66D13819370DE2FDC4A90494EB5CCC69A1421D0DF68424A0CCB0E53A7BD18682556A540436A8B43B0213F27958CCB5D5A474CBA693567663521140F3A4BBF5848CB4D77932A1050299404ADFA629566CDB21F91358CD918AA65109C971335E041A0661BEB972AC835A451A66B6AF503148DB5587540D4137A770B16412C9709AA6500364A38A24CB9C826EA367A62D330403E90A0BE83BB4E3980487F0B67A046B2876032524B5F185A6E4A9410CA7D9231DB109AB0EE09B25024F570C2B57192AE98AB0466A20D634F266413FE8F3E702DA112B6DA139191CD5D398ED9D1445A83E237954E9921C55308DCB34EE24B7068B69DC4A7E096A18FD968C2C3E23FE75249341C79366F4806436EA5EA1E7CBAEE87EE61E50A08EA13666C241A2F35B04FA20EA1D52C809F0C30D9D80A8BE6903C93CC448608FA51ED25A02A9D3DF93024BF9D262EB032A16DAA0F16D60BBD333E7E211059947CA4B794D581C56B8DB4E46921D2928C6A9AB5F58BDD0C8D9660CB9304A5FA488F46B54D65161AB28B2354B341A694D0D0BE2C6847BD19A532D5E34129D917CC1534B1EF2A3B69317DA0A5740262DA7626252A11B4F49D6C95E215762B642384373C4931EB8B879EF1FF2355702DDB6A367C9D82DF33539F9C15B38C764A1AD42C627A691423702064EF10C105B54BC05EB2CEF02BBC15F05A6E0DD6208E61AAD7D95422BA752DF35B71EAF8CCF4710B7908C7BDD42E52DE294BA2844CD5F801242BA10BE8A9839C5F4E51F9994D0C147C392FFEED44D66FE8AA8E5DF1FFF1FD88D7A2ECD4780D6586B128F6406E5299C7B5C903654B0D098D6D0C605009FF29249D6FA05015A3D8FCA3476F09097832ABBF8C5709DC14F167F4B256DB7B29199F481060BBDD60C3BA82C1051A5D4D8B6D6C81CCF9149720FA74C54DD17C3729E63D1AF55CF4F29A854D1339746C20B6BFA5C9A6408DDEA5C76EF52051BB31B2EC2145C9CE79F7E8377BA78043CB3E2B64463950FE6CF5865844520276378A55C34D2E861072D6A405FB28AAB1C32E6702FC93A3AB9A45FB51A0287E5286B94525DA50F0E95CDE3D82F6D8B65B13ABDF66B018D760F7C51C78EC19EF0BE026D237170AE0FB000EDC54790357C4015DC70BF1478627A3D021483D6ED3907FEC1094F10E03E30C3EC0A1AFF76120EE48D042E12BC6F27BDB7910CAD39D562B74B056E6E87132B46105AC0739CF50176FC6232AE0E673AF496C6201C95CC46254164498735CC12198C50C925E9259F041445ED012D31E10631782C8D69143A0FA5B0DFF7324D33D0C419FAD821F41392823D7E00BC923554002D0F88179BEE302EBFF417120DA81CA9797D29A92AD4DA741B0E12E81E09CC209C90095BC99EB7C172E1221A208E771B293CFD706660260635DA6AAFAFCEAF97CD119D6279C0EDB5841E7C9135C563D9A6152D6E548A408BC8F82AC2D9F1827653864872440C86B35DD2F3621F23E59D5B005641735AEB8F51296D5D5083DDD16846AF1F871752A3CD23B8F132BC97769B7684AB075F4E2F216249F68B0C9961A63A836684A439AC01EF6A93D49B09184EB0695D38908F25A734C782982803EB09042B15BC7E7CE2FB717A10771C76207E066B945A03A97A9857C44F1312C5C6BB57C8BE69609B1EA9C241F4A2E6063A92746B5E6FAC9AEA6941E78468A9D464473206CAEECAE33BFCB807CC8C548CD557AEE0E63CBF87971005E435A0E0EF7CB7ED136E8850DFDE05C5A1E5909EBE4DBA52E38038785458FB6E2E6582988D56EF366FA168586F2C3A24B4EE89631D7EF231A46CB78F50FBA33F05AE10F484CBA51DACF02FDA944191C074097A527249D485498B3356CFA2436ACAA4E0E31DEFDA70E2A4936040BFA3443A8A09771DE9180AC6AA017E952B8D2D0023C3AA2C70C89C78B7691C36853013FF77155D6427BFBB4FDF338B4F245607B5B2A1D0A6A1E1774C640D760948DE243AE11CFD829BDA12D117898686162EBAD1B41D6E7B2743FD6D3134313445E409B4732C1FD7FF5E03E797E7C758ED22A1A660A56BB8C53D11FB1F47944C281BA6805642E1FD4D46057C1A86E4D300F64FE88FF0939F154DAD8F31224A790F72A83C83E2F23FC93D3855C24A3027C531DC4C92797A33554468CAE2B88073ACE64A8B506260606540F5024BFE03627AF72FBA4ABF713CC7DD6F90FDAB5490544F936BF2F44E1D501DD010415783C04E735A620FF4195B5D911CCB470161E2B88D42A3D84392A814C668FE08754A97009366DCA99038B81E30E5FC53F4A09F2A10E4B8C40E687687FD93B931C2329EB26742EC6907ABA5600C9415D7B9341896DF4508B9C6FAC0D41E92B72604B0307AFA7EB9BB7B32DED98C62713971BAE10BD258B435AA24CFD91956BC7F96128981EDB49ED70E6A20FD233282C23DBD99AB4787E12FAC6EB42A289A5DF4737A9DAC91079D85F4E14F28387C7C2D0237625E5AE3642A8071AA15740A2B11E49C152687A4E346B243529DE6EB9C9780E9DA5093CEC7A0D74BF5581C1B934827023AC4A618BCFF934B65CEFF21DFAEB2151C7E0C4D64F91AC082801078E97BF131838A3D585B661E691F31AE0B7AB306C91AA6269DA4940352BD7E70CB55AE2483B37FFA8D4F6282935834BD2A171D798A924A78424E56F9881F0C98C2D154B32412B0927A00DEC8F42FC3AB694D6B3503EBD5908385BFF6AAF8FB92DC01D9C67A204A4403F89255A9B06AEA4F8F781383DF3E6BA5ABA36DB31DFAC3F8AAD0F1089DBC8148BB1886D27F4AD398A8C3C4D3BB6077C63ECEC218AA3F8D9CD6E0264B6465BF67869A9CC723500EB937028FC93EE67071DCD10FD50AC8F8D706239BAB3987499A2F0AA916C5C98DF02EF68149F28F2C01111A0AF50996D4026AE1A93CE35C32B23FADBF9010609261BD25C8661BBE64F1CB2F1926027E80F4A3466F04F94B34CB6C3E08771210E306CA8090A32B9861B4B4BB9859548C0A9C3D3D39C4BCB5E55854006037C026904829F30752EC29644F089A0CBEAC2A2E8873A081EA9E5B00FD97E77AF722A15809918033B48080F2C8B9FEC4EDE29C636E013FB4B17738CECAD690E2E8160FE8B299E912CA5E109FB53BD663CED0406D28F1D39AD70201906FA36DB09CD5EA20A9D6411811B169A0C81FDE92EA8F436507DEC21086320CF297070932DBE117427FE13BB4BECC713310609CF0D0077743D618AD60761580D40E8169698DE22934613B13CF86243589709AE6D717F78197AD045EEA1978AA11B0DDE84D347670E4F8CEBD5CF44719D1C2E7D2271446852DEBD3BC14B96F9C82F81B1D460C2637C9D435A544C556785A000A00F8A7033174746581AA4925C923BCE4C0CED41402AA1D107A5D7AAA667B19582DDD31864146D75DD3844042C1E994D6A2E2690A53DA29659B09854674863837B013803961074A6CEABBE1A4954B606FFE63C10F5B716409B876B8F4525A338802B34CA2668FDF2E978EBF82984205E2019BBFD865249A560817DB872B03D000174B7EE0452BA00E20840A1338DAF31679233BFED0C4CC538462062079BC8005DE87199B0DD680E9ECC5037287EB18C08BF1691987637AF6D08736D6E0D8905E2E1ED8CED21CC15FF3F61465CE2C808BB7DAF1F21B08C614762E4D3F42191767D41CB62E32F049DDC6D2FC51F680E4D89CDD6C48A9D2492D1696A05C1470EB680C8F90884B604E25C169F53C8A39FBC6D5BA02C5A474712BA56741236BADC59497F3A7A251CC52A82AFCCBE8B5E729115AF56324EC1F12A59F143ED014BA5F252E2A8CE75B449462002A49977F7C888FD4291E24EA1D0ABDFD8BE24494045EDF43264DADBDE2310A51923CF474C1FD9AF84E877F7C745A2887501EC70C394490ADF817B9134F84DF5B1C0FA17942E374D854B73841E464C2AB9F258252EDA66921804375862E6578EAAEB419417BA21488397E9BB68C99F4127491F5F894089F16A4303D3BB862C17BF225DEBB6258810B317632DEB21F9A9ECB11C5FBEA95AAEAB286377E5B12A71C11CC44B2D656873E6903C729402D2912F37387028655C975D7139248E06726DD12667C8074391789B11E0C68EC2011A7BBAB648FB754C20CA7F3C13D710C4611587D9A1B9D404802F8186963400D6A163D306697C072E638AF78B0E852E917170869E30C81F09C5DBB216367C009F6824D596AEA12F54F1074128ABC68E2F02A5ADBA25377BF1F2D3363619D55999C6C00DC8EC2A3053E28E3FA31BD2C9FD52E5A8A34BEE7F6BFB3A6AADECCE36DA5B77B77D7F5B12449CFB45C3971ED679ACD1427C5BFACAE6A03C3C8EB83CB6A73BB6DE3C5028110EEB4754CCEF4644C1E43809F22EA8EA5B2FD49E3783762494FA7D6FF65496115B993581A0283E686E66A5EC6F6B30CE8CC4258CE23CDA81B19839A5DD7A957515960F2875802388F58B7E5439CD06E56445A708E4F31899DA1DDA68FF0EE90100C9516364A1CE8045D7862B094BA4859DE7378B03A30495405BA7D2316EBCDB5C5292AFECA096A273EE3BE5EDAC093B3675E6AB19EC3C0BC7B1D88DE28CEE9377F9AAAF31769AD4432131A73218B3A11FCE061C9F297581A84E1B277A9FC4EC25D9627574F749D3F843ED73A46C8F0390F6599D335B3A7F591E0F9AC9DAAFBD43E9D056E568C3A2DD3C169052A33D94692CA33E784219C7240A537559AF9FBCC0089453129069F62F27D1F70CB3EB0BE9C555731C47EE166EF9500891513BE587683DA88A9AE9C34C1DF208417625B792997E1AED962BD2719541378C78205DE1F0B38813D2208121F46D36C000047E35098410132DCD171FD2168ADA258EA16641272A19A044D9142C7A861161818F8AC23CD3B07DBFA21AF9663C465340272A7E6932F1EF702DED1ADA76E01BC8054A906B8A11E7128950C05E777773E172831B4143B1C55D34679A6F2167DB63012B480E94956E46BFA5A664AD836ADEDEA8E02FCC1D01129854B3107025726862511339BF37D8BFA97D014B43A5F5AE93621CC7E21B362478725C092A534320B4A0C7902F686578CFAC97845964728AAE31EFD4875B2E0EE4738950693A4221AB31FCFFDCDB6EBE4EE727EF0D60E968DA6CB8B503E7CC293D59FA38170329B67F3D4C059BD0C09321F40719DFC839C00584E86C3B7C52FC88332B3AAE13132A6556566F56FFA0CF65F4311B98A29114A89EE48166DA8A7DEA2AAB7586A0338B3E5ECAE3F8A284B4E1F5B4F13BA7B1C5043FB4AA22F226F3242C7AF2AEF552885081FFE62278268C1FF5A3F24A1BE8F5863A867F136F2646FFB231A8C0CC65CBBA7FD0437BA1A80BD29A1FF18F08FC74BA1875BABE3361BAE394AE78851E4161CC354D16579C1F3DA19B5E8C4DBFBC6F625D75527A595969CE1F59764080B0D7882C99884F6F3A8BCB3AB63616804CB6F7F728D0110D827D8995DDF29731D4AC6F2E91BBE034A85F6434E4A6E93AA30FFC349C3ED2F7021A4421842348C90D606096D10E4392F8210BD5A78EC80C9CAC88005F381152322B40F3031AD300A1F7B0A118F83BF17F05E568F468FE0CE9ABDA646125CA920A10FF9020B384A2CF8767601C2A6CEC71553CA54ADA7954784D74B43E6237C8A3BE4CDAD7342F6603E159F4882F13261D43D41F8ED6B392603FEF00498ACAD5DEC2DA528D6460D2281628F8A76946895A18D318184A40A81CD50A90060DA062C8BBF15E4907821E986191DDB63AAC26E8CCD870C0CF1B7BE5C33ABAE6BAEF55A9FD89E59E3417DA25020A08AF5604179A2232F45A712691C3740F2817A71C5B69E3642BF57E35CDBA612BA5B5A0BF05F2D7C65F51785F90ED2C17898D4D2F62E76999C653768A03763E6D85C643FBACB833DBB1716C9F9E9E86E7A9986B375A2D40727146627A3B5B93CDA240E592942556A42834F76388485C1ED23B0752ED21836EEB731909783A19AE2CB4E487A157CA2C1AF6ED99B75885065FE273005435E85EC66962922C4C8C246160A6AE31CE13D04E48A27DA835948B3288E762C687FE16B160F27C54E1DDAF2E2901E28C1690A90118B7A04B4FA87ECBA45494B3E77E183646F8087F3821266E66127C5A0729BCA1D874C8521526966F3CE1094437287A88234D956B85000C54F654756304C23C4E1E979F985E134C4E4057D89710D3CA2DBE0CCC8B96DD989B0B5DE5ED2E85D9BD9AC48CA0826D1B00024C4D788361DB80F995DDBC23DDF0350F04A67F35AD819397B01210C6AB63D98AC308CF8EF0790E5DEE9883D11D9E0AB8C097ADFA2B2ED761C52B86FBE81DCC1C89A73B76D98E3C694099540C2A2941AD89B713F5EF4CCA5477ACBB646F8AB74B2384EA7DCD7A5D20D5B29DBC49B2646732AE6EF051C879C8AB11E16EF80E2241E7852DA941B8042D08EEE22DF4ABB708B2DEEECE28A9AEA56BB7A1654DE8A77D2AE487099EDE575A5316558E3D099A0E6649D3BF37DB4077D807E7D1C82D9D3BBDF162CD486EFCEB1975696B9B21FDA1A60FFF76304A07841C05ECBADDFFA6443902AD94163464E51DC489A1295FA0F29E5323C6CDC7F85930EA3B12B89CA5A808150430B1E6933975FF37993E65658B212167C8F0A359A33470986C8985B82F15FA9E0839837146605D392FD8ADCBEA9BBB8500B792BDC5B0633E98DDCB5A7B50C798B09C2EA5045694E6E1A1ECE77681C278C68A014EE030CDA031377D2F7EEE3B4558151A03CF2C9AFF390589F0CB3F772454395F63E1FC6B151BB3AE6218FB7F3B6A5AAED22A0944CD916023EAC65FB7A47C919B53AFCC0D1EA295B09777A4191D647B95153E70596D8D3671EEAF863FC6A0D956D0EB38DC91A72C6F68960731A17BC99EA47FA484D041A2AD6A861E0CD9C0EE4CF618989A3B146158088907584F0C2B1350E9163465CA8168B45E5288E8FEFCAD919D1CC54AEF5C82973A7EC74C23E3A64D0D2C94D845C360E43A9C38D8E26BCC3BE901DC89B98CA50C71453110E0D587D1BFF8B72D3066C8079C08FC8C179E09CB9F02FC3677A07689F2212B0793FB9303F9414152E80C24EFF0C5D7AEC991BC42BA622D309D2EA4716E31A50739DCC97A6269D3E66B7D3959AB40B8ED047B4FB20D58C7E067D28520BB2F2DA582D9EEAB21BBC66B6B3BBB6EA1F6C5BF1E4B3707C3D00A53F636A40AE882F101916397A32B8502DF50494A304688A189A4BE736F56227A73E4A5BCC68FBD548CCB46EF5E52C65CC5B3CC52295C77777B323BE13C5F0FF5B9EB1DDEA64B4A5DD7E84BB1870AB5DB087056AA2C8570BD444656545C4E41BE2D0AD22D1658372AC4E100524392CABBB49305B21FC643C1090A065224A74118C9D2F90E8CA3B40A21E631FBDC87B8C0A585DCB7D841F4996B15146C709C728BA7682E1CCE7F6D29E387DC918F51E3DC2FFD19186538B7D7D14F5BB021322A88B9BD145C2152424076C513561C1B3EAD8CE7BFD850D1957C5A2546542F332E320A525BED6BC94DC6FAC1511B3810200DCDAD2A22800819350E93FE7A967E0DE29BDFBDFF40E851774B73D93B0F62D07FFA18827E0565A043EA9CA41EF5C5D8578303AC0F3EF83A19F592A216F1E8ECDE9B8E2FD466DE77A1D2951B4FEB21C121EB8F032A2196383499DA9838C802322B72D8D64A837B831FFA32305CECDE8860BEE3AB03EE2159C2D8C083A889D7670E14643FC9620101281382359546F190E0EE29D546D546A0B45F42E4590265AAE23B9A877AC0A38321AE6FC787BC7868804E431D4290805475699860B827981F75386E7CA6A90A1A18C6D9533A72320649368E6577B1D9BAD80DA0F673E0669A4D3545AFB7F0810A03B218BB02F6E69B63DE570FE001F3FEF952FBBF30F85A0F0A72479ADB8BD4ED5D840335DA8D8656D1D39CA0C216DDBD0D276BA8D80DE10975C9EF520E8E1BF01796111FCDC33533AE0A338CAEAC146E218AE2B49F9CB021BFCA75B619D74A5BBAF305C213F4D7D2306B24D00E18A57BF95C8079AF0C31A6B979AEE3690E43CA70AB4E8798020FE173A49E3C855FBA4048E860E6647F5B9F10A05457459B4C07B58817E6C2CF4A230564F2020CF6D2B0DBAED99805E5BFEA9434DD7B45C892472D12E2E43D6BD13DD3A81C045BD6D8927295CD5D32F06180ECB43CC76CA0A8CEB5B0296B5E80E35FCFA4599B2DA64A3A2DD63ED64F680076111908444B94E124457654C1EA646638B8018344B4B82D1A6F59022C0E8817FF891195663F8A2AD043F6F59199CB17C5CAA9EBCA040BE65E617B7FD40BD0E97B0B66CA53E8F7D4943822313623F3748F61D4EC04396B9C01D2033CB097FFA4C076D81E82264336B1AA73F55433114D52B534A11203F97CAA7028383EA61807B4E88F85B491562423094C517044786A09EA4B808CF67748E34A13BDCF805BCB3A2A0F4326A8ED902ACA98A3456B3CEAC037DB88A0488E9973016B28060CE70378A86C51523071E3F4B91B08E8D97C0C9DCCAF6D3A143ADC3220DFD5C75301032D9A10D01E4A2AAF88E8D9B39ED25A5B2E9E336271E7C3949DA8F7D70C7501ED7DE7A400C2902D242BE5A78DE6140D7B4D1B625462D5254E9D83130CB7B5CEE943926B3F33B84F0FBD65A8D03C309B4F6F136DE8DB9E6653909EA5D65D6A5065514AD5B2F84509D456925B2C9F938D9D217F2962855D09AE1C836E54AA3C125FDFA020CA7DCD50CE2BD712EAD879A24533F8AFBB1E0AF0C54D60935E7F87BD9DD2CA3F49554CED5BE81897AA398301F7C0FF2894680A0042B52C88D8324E4DE5816C81407920E2A2E70196C0C00028C02B4315C00FD38BDAE9A72852923A77BC03FE28C07CA3CCF8087A22924B0FC18C9BBF774F55B8A5E30FF5478DAC9B28D390C7F82EB327F8EAFEF4AC0E9E25C9316F72E0D2D985C84381F3EAA924500A86CA4995E68A361A2D7CCE7DD05891007FD44A9E43776963DE127679D07C1E6D3BA9D4F2AD943244C18B4E869D273240366958A6E588A6CBA3E6F8D4F8E1C021D0BDAAE3B40E92A7B63AC343094957F2F4517AAAC843EA56159AB85948FA98DCD6BE81664C2DD2C882DBB91C9BCD29C1157C2C47883197D64179F12E3CB4BD0B778EC63DE092DA4FEC408045780D7F15C2712ACE9701802D3B50449550915701FF00F32CEA32565299F5137E6BFFDCF2B1540467712CDAA4C87CEBB42D7088AF4EA726B583449223E01BB125AB9C821B4F824F24791BBD01BF252BBCEC50060A69EE1F977BA62CCE1BF92C2181963DA86F7790A34C367A293F459C2EC4D488C9E574D1704D8FB112196F160C046E4C4AC0F6EF271AA947D88F7DC0EC7D7819780F3243A74BFAA6B66C2A9322D959219F465D8294EAC9A12285B4E2896A87F2E0BC51295C553E323F6D4E133FEA0E5E545FFDB971D1FF36CA1B45B6E44E1213DE0461C5CB01272039605361F620D431CEB205AA6A1F07F9FF9A4B2F0963522B476600A619C4F40319CEE9DEEF8E6635BF4F84056E97102329ECC6DFB80DA921D3B57122B8E5D9CA835BF4CE7431DD5F659AE22D3130F1C6290AEBE862EA4AB896C5BCA7935345D605A12E9EB45C21CEC26C2BBFA5E961F6CA943724F384319D252DBC66EB9210E8CA0032F5A54EAAF856AB7FA10F417310D09EFE3B44D9E55918141388427E5B4883B1F06035EE69E2A04D48D258C730FF178CC73B40415C9324723B59DBF07FE376A1255405CACD341EE9754024403E9215A73C33D9199DC35D3F9788C40E8CB6443F2040D216A522C1EE1612127D04454154255B501FCE244C5FFCD92FC7FF846E34CEDA2BC1F4A2132158C06A0999DB4B97A8E7A91751B750391F5AE003859A13AEA355CED13C8DA4E7AE3755AE942DB818F8AA1FD0B485131A53E823B81C316FD0D1185A452EE57FA09514B6464E64BCB92642F0FA43B71FA30C6918111053F957A91B41A478C7663D7A389D7E206843A83CE3E05218564ACA2BB6E1A283F3CE0533483A4D14AC54740528394F6158B12B0EE1D28CB26AE56231BA4EF9F3890AC41CE4D86792660E67AF491B46A6324954149AF79E12E452F5353F75E0A8DADF3C0779C3E63435E1438C320986236626000CCFC182896DC07CB36478B2A8453536277EEABA63E2E0515816D03C6DB95A05A32B984D50B0633535B2BD64AEF002B7F60C9370F844074715FBA08D34FD800F570F80FD269895ECF007BC37988AF09D14DF303C367160B6D09AC1E5640FBD1990272D363BD8EAAC07C03AEC98C49A80697B2D09338692734DE4B928107545AFC9CB62E081EF19ACD2688D6F29A3A8E6179C835A5118E129604BF94A75D08F96EF9591FF82DB016F1B8562F4DF888B170D175E50683AA19F4E94D8B730EBC75F50F3345DE17F98F73D17CED558BDEA0C4C689C3B4E3A46F3001A28E62B2CF337B5C28332EA5C046213643EE8F45D416447E84CE62AE4F6F853F068FBC70B821578B8BA41C3C5E0BD6B110A3B6CB0EA698D0010A45B8A7594F8077BE609138EDA8903AB3E7BD5AD6DE2D237AC92C7300076C3180A89BF8526EB6047B91114456FC813C20169E4E1BDEEB08A3FD15C51FD010890EA56856C42494C6F725031E0189F06ED80967707C22C9762C98A43BC07BA4CD13F911D6F342D3D663D5F60F9FAE435942E0DD7B64D197A082F080500291D79EF923A9CFACDDE43F059312A0DE76E7978ED69C70B4962ED8555DDC11452D33B163A508DC1DFC7940BCE7974B549A906F8B6AAF455131200E29EDC113CEA11D9F82CE643DD4511BCA5FA39DEE315E483601CDEBFC9196D92208FBAB0155FCD2A09C903F0018AA9B3913E6CFDCC307DC2B6A25FC7F21154821BADFD3A0252ADA968824AE2B88498A0948AE26D421AA6347C28901B5A437C1988FD8F6558A2A2176DCC41F6D42C2BCDA8374A0F3428B4E2B04E630E2E53E791028479C1132C37AA04E35A83F74C0BE0B71DC67B7E846E4B654972863C9D011737670C54A94E6B87E0196961B831D8BC89BE14CED0D69172CD5897AB87B2C1443B8FC46A7D8D91686BBBB1C1768B4D2439E9455271A4205C6F5EE26C45C627CD835B4CE0ADA396DA301641C7880E28A3145C841939B59B08F02B8C22C9D8EB02F4AED5E1A575DAADC17040B93B9069C10E985AC22DDF080A44458904D87A1AA106DE4B93F1648D36ABC89C80353C5C261A96C976AB63607FA22095C088C62C46550D7D15571076BB1F55A45D70D55A146EC430A31763255D290A0A5E8E7B5E366FBC616D528D022A39F6611723D43AC3E212B880F970E2196E692F8DDC9A09C122C5A57E6ED8A5EF4FB1F3ABE1FEE93D8FFF5140E0E096F38F3B94A53ED8071F544C3EE5B91CBB4EE9DBE7757C6736D83B6857D8ED8FC4220912E0495384C99542FB2D4A397EEAAE1D7161DEFFB35ACA0FA6FACFBC3F0A49018AE3A0A3D2907783D3186F0FF415E853E6C2887E01B033183210B8B0D910069CDA654AA6473F83C8CB217C6858369F73FAF6FBAC0052F5905839EAB7F55A9AF05E4CFD311DD2A212AC971791E6F89E621CF9FB193341207A20901597CD39EF0EE43D182B9AA11BFD18FA894D08522C038762027C49F37930A6D4B442D8450101A265FDDDAFA9138352E15C376068270769413110DE83A559EA8FCD0749B760818174207E713A80F54860CC4248A33721F57E531B579829D97408EB3666E47BC3407608EB076586801C686576440DF0FD0814B1704FAED76F01E8A3DA8664A1B3B070A3BB214C006AD0ED54B7C1724B28CA86008D961A094037EEEC0CF3330995AFF8FD9E3CACD820256F0D5E21B788ABCAA5282D74B3442581D18F4FB843F238AAD72B25A5E64376C2394ACE2308710B1799B0586040A135F5248DC0C9F0A6914C51C9FE1C9A4AC6C4C4D2A71E7535BB9643D87B5184B2774E1224269CDB787C403A9CB9C71B764965AD754D58601F29E1D403181EDC29A57F172EAD40723DF6DBEE0975337A0ED3CA20740359A892758062E97AAC98A6B9422BE031F119D910083FE7D780F50D55DE53B502C7BB623A8EDAD819AFA8FE82BFFA63289697795479C88396AC59157D6A5604350ADAF6975C45BB564486C46EA20E61F94CF3E0168D3CBCF3588B406AA1AADE22CF3129E91C998E62EAD3211A851ACCD13FD8232AD344C4147CDD1C338308130ECFEFDA8746ED0CD790596F142887F3A1B4F09C34B4F0327DCE6E46BEE1265D6C749622A1A0619D363FEF1390B5BADEC4D204B278820386BC20F8459730512D658EB11F150C58F2E01F21F262E3609577C80C580D0A896F309DB48EB998EA9CDD84535483DE96A46CA9738D91E00899436C24A32B6373616530EC33BDC39404ECA1682DE771BD6CAEB399CA3AB0851C4A62E6325DF72AC6EF548FA6E30584F52FA82123A72558C0E2FC632934924421E808FC306556BAF84E1B0218620FA3CAC343982615A5CB180B61D659EF1D26F6DE302EB71A3B4F562C22024018F2BEBA680C07957FDEF2EA4CBD813D786D1665A41F4723D2BAD5220178355361F0C2459390F2A8DF121AEAB228FEACE5702BE8A24A2824F5F710DD6E5E52301B152EA673778F0BE3EFA55314F43C577002ACF31E0FA904EA130712268270D867EC9A40E5671510FF23D0F81F70FED27B8EFFE44EFCCAC0B37BE7BDC146FD4A46D8B6F50ACF08CC21FBF17C44FBC0E2382D3551FB7B91105315BFC032004F968F31400B7D418778F52903149E143A0452DD731614DBBA337444417357DB8E6372BB5447715841952D7F72BE2E8C7FF56B5B1C017A4E83084519676B1F8345670B5E7773CDF61905CF1173CE0DC3703045214E6BBC32FB7397C6E0C6669001ADDAC54B7E29D06486FBB650F06ECA51385BFF5EA4CF84E3CA90D1F2646182F6977A93D4BB41BDCB4AAC7EAEB82EB80343910EBAD848C6DFBB70CB021296F47EA773F31C03ECB6920DF8C904D00640F8AF6A20E3194D5F42CAD2EB5DA0436478F09398FEB609F07C930CB756005A30EBBE192025614C409D84CBEC1821D7477814C687F4A8A7670C54161A222EFB9C09385720AD26F23EA7A1BE11842AD6CB7AB0C931475AE33618CB7F695AAF3E9DBF5C0689D13BF78DC4F7D0DD50AF00BB2328A160B26C5C8171C9AE61271321A6A54A5A4AC45A9682D4E699E9876BF7CF9A289EA0F6CE572FB2DF712C54C78735DAEE5AA413F808B933E82240B2BD937298A6196B88A70EE8CF4FD8C5710F898F61C186476D4BB77457FA71FC3278D7CC93100E124F597322570192D14EE1FCB65B56879A2CB8F7BF784AE8D1A66330BD9257443BED893F38044024A4D264251FB9214DE3B4378D4EC413644D751E1C96B3202DC79643164DF41E2591110F85C1F825E47185F43919F3391730E120187E4AE521CC75320970CB99CDC60E0C6FD9B04D33978683AAD36ED35B8873420D2C0297F91C4174F0D6B448EFF31286FB6ACD30E71C6B40C33084B5B9BC1EDFA241294E7841A7C03116922A2DC332D41284C0A0C2D85D89358061E560D4F634B0A9145358BBC9059D1B51E91F959E25815AB851F676A2C868D8E1A4C52CB6250348965DCE3DD13ECA9BCE89ACFC748559879AD070ABE3489024FA8EC9009232C7C858A22D559FA421F19FBDED910DCB6209E45062D1454B51DDBFF1F078A4532539C43019C7866ABBD5DFBBFF8DE61140F9E59A46ED3B91F83E1F2A20AFEF525E9BBA573A2D8B8944E9F350635232426A902329F805E590A49A44B011FBD34364378A123D086989F69639E77B968EFCADEBAAA00E59790681F624F8E32D7D31070430C5B0775BD9CC1D2CD4C0FEB8961B0D3E6465F3AF9EC89802B56C748BD4971CAC0AB14889B952AB25047215AC93DDABAE2DDA4276CC9EC74F732381608A302CD1AD95BC47384DFC13592DD5795544B8FA092A176C70D1148F176C8B1780159D4B1E2F9B264731C74BE745B3499DFB3D8980588E66C548136513CDDC14731FF59256DCFB696772A1480063BFB31B158B17862D0C913F0949C0848A84AAD08E456C71B4A9912242991168BEFC1B788E1CFAC0D29402750CE40895B536ACE81BA85AE7490FE43D2EDBD1D0F3261463612096992D5D8304F5F50BACB94447CDB617E62588916365C1123323F52C53D9DB7A8A1DA4A21F90A9BA345838285A43BBD1AB43472DF326437B8F619CAA6CAA6698FA223B1777F64FAC391FA387B4807A23AF218309F952E93C6F60108781003EEBA89F522FE0ADB82C1128EC57DA4E652A462FA7745A483A3195B8EEF2ACDB16B123418FEB3587490104861F0AF6E1C8A66A9FE3FB002EA26C3BF4D4A6577F651A50D15F53870305FDC40C610282DB9741A5E062D91F7E70034B4D5285D9EABD5426FF6DA4F4CE4F50772A0A61D98309A6F2CADCB76985FC00A570DAA0770207AA76D0B9988816C1FF5E1AC4B8C4169042916EEB683DE186DD390C49946C5A02CF5810888A369FF41FB1EAB5D28D1DC1A2AC0314D81EB5363C97D2FB6267D26D34A3658E66517CDB1F0BA512338D0C6374473C004FFF464A882810D97FCEE3669B6407F8CFEC4947237AF003CADB48E1981D3884E2C5907054F2D32B9E797F2C1BD271DDD030DF634E45D777510399D91EA105523B30C917407220F67B210C4D8EAF1CAFCE19AAAD17B8C803D9FA03A0241CD392083C0B517F3B5C17A1ACF7FC570985C303A562722AA0AF0800C633559D5801A0A45AFD4C4AFB1D93237A3870916FEA1BC05C34678A42F00BEB1BA03727C9BE887E7AAD67DBD192A31E6FD204E86922CFB3A27926955B96AF2AD03F781CB29A483C143E36A9ACA2C9F8354CAA89E96E9F03958E5BBB905E037A1513B0C90F7B9EE55E0CEDAC0D3A078AD5BE57EDC90FD10C2164D2EB5F0A8D92E7EA3217930E6648B0C48C23BDE188E584F48024DE64BF7A3498528EF0F105C6601A9810D4887D98FB940B27458A0A3D10C7808C778680401BF9B3CA4D40FB00582E6701311DC3B3FE34C5D28C5E27FA0581D8372246D253618B37602ED05B360DDDB03B1F29E30AC7D35BA507B75B1CE915D6C3A8567B01885C394CE083C213E977D06F8C0E34B5EBDB3CCD0D30849F3FC3EF00316AFF02DE794366FD1E51BE8C68142C8E673F8EF7E7C3357C042CA017E97EFCE31759AF3431CFBB9E5618383B259FF449A577B18C1475D22184BE92171A3D3B479B2279269856D6308E11341FFAC0294875F4A25A6616002AEA328BD9E17970EC589C7EB5BBEC2E57F94962B6455407727B59187126D2C84A17706429693885EFB98302680E2C4B391E6C5FBF14B0E1626E1914E3DAA24F365179A8B41AAE02C44A03883EE6F2F615286B47F0282B82764EEAC83CE825B704079B4A4F608DF52D5BC5BE0EDA7CD030402E4485569B8B4C6AF9EE25C7A6FB78A28985F0AA2964828FE648C60A1C44EBFEC99BF514A75CF170CF5CBA2153199E124B8CAA5091616CA3084E01AF0FF18C3309FBF9C0C52E76B5C368B5767FBEB09E872ABC9420D10ACCCD679C02DCF86726EF0D348FEB9B4BCACA463E61DE6B20D7AC1C3ED649704D87A56018ABDCE091A714B88F88C3F4E8F18020AC56F1357C0535615C3C94B8D912E81ED5D77F2CE121366B96F5290BDE36B7FD8FF01A4BC0A0005EE4163828B9CE06542DC11DC0108C5EAF4598CD07D6F05157A04FA7A79488EB6D429CF1BF6A45218C93A1DFDFA016900C2EAC81840906C512EDFD1828C7146D14E9993EB14A4EB3F6350D27B502D4B0D65547A28DA8C0BB46D947954CF8DEAC0AC65FC2175EEF882A4344559E4EB3A22FF081BFC52CD8110B8A2C0C9AEF20A7D89386888F6C061CA6B5F546B8F2D84FC42335BD6B0BDE86E6517FE1EBFCD5E84E6226770C41A903BF094D1F32A1C48973B0E257C281B07C2850B85B20491EEA77483EE11A357A182D9581888BC358834D349D1B77BC33C9D8F5993CDED3F3A44195B6CF18E3244E18C6AA9284EA677FB25B1363848D2545A7DE701A7DF13E59FC857B973B24469643855A0B4CF1104F9CA9A51DBD1596069E2CDD50E1536E0086441958BF43C3CDB51C236D36C9A1C64AD34DA5CC4AF4DC562CDDDB34100398F4BFD5E46E1A163ECB2B3905D28B4F2A32367AF138BE4C2AADDD341A4D1313958DD26E0FDF136EF84A60314C1530D079B453750CEA10E26D0696457CD5E7B601160C55DC0598CDA15EC094CD07A986E04D69C4464AFC7154049F620428F63088B0ED525242CDE9F6D116A7D150E6A04A51BAA36AC8EB33124849B255FB3AEFF612494AD0652208C2490F0A42FA55DD3CDEA6566A8074DD783226E7308A15350B80288104250A46F8351F3BF5ED1649DBC1F6CEAA9548BC0CAA19AA09B43562DBFCD4258F72B37643CCD8F9766C994D6A15966DF8BC281C942BDD8F94DC038C30F639A77FC2CA67D723A82ED02C38A3ADBC13CFBC403465698C90952CFCD8D0911FE18807FEABE9FC07D21D8C4C0A15B2A13061A282C64EB91945132D0DB70966273E20A0110768717BEC389E8921864FED429326935B960262880C0759478FCE67B3A6B3AA09839863102EF31D72A4840141632B75401C152FEC0C9B7C87088D67F70B339384970618F584325A238AA52034A11D4E2185182B5E4F778E02BC16279CC56BFBA0B93DC30ECAC64C5F121D4EFDDA6F36491F4E8BBFDE0AE82007BEC87AA960F0F4CC51C645CCF35DE6640F8B18A9BEC0497948BE1B3AAFC8B5F9DC6138297CC9B47DAD38DB0379AD9B5F4E289C20F1D34010CBEB012BFBF4CCA7322A20D340FC9B96C1C50F381D5565FD680A2F91169ACCC136B243E9F100BA3B2AD484D3CDEB999B3E686194FA19EC6A4BB71883BDC965E6C94ABCB2AD4EE1F3302C2968D7794424DF8ED0862AD4F59C99B2F9678A623FF2023FE2424250E9519C3C095FC83B6206CF44AA8207407AB5A2364ED9BB0904AD53A3B12F467C0C61319C8B85A7BC10D6E2C30C10F271A7C254FDC0729018B16B734039B7C9353692416DB1FDEAE1F6BD6116021BC884B10C1E8F4B1783451D8218AB372BEB89762D127372F8E276344119B24F35B04648A755B0AB4DCB2B920F6CA7E2C4D4C9D985F79ACA6D7A09A154FCB4393D4ACC949E86D21DC8A5B60A1E7F2AF3B5984D3CF8238EBB4C099321B0AE61BFF564CA411C2324A64491B88442916D6BC5E5F92AA5E445BBC9F379DFAAD01CABB1CD16D3FA9A0DAE3360817B3306FE07399985C0184E2EB6985177433BCFBDC42E08C90E8EC11C5033A1D9294EBB0B8D34E6668E1422046E6A3413EEA78344FA0DE3E929C739B5EA75DE9ADC43E5AC5C75DEC03679FDC85434A38B981C8BCF1CD53006D69416CADFB1C0E89AE314291E50740A289A0D035850FB0CFE2AD082FF6C45A572F549CEA96142C2D06855DC18CA64FA80FE0BFB9C323CEA8EEB8887652E2926732BCC85D1874A58886C6955322966F1B5655648309E3B2A26105CC819A33ED2477CAFF9B83271E50221073828070A4F3E33CF919B64469E0B8A893D24DAB1762EEEF8CA43C64027FC5E32D701C9736C9CC6CAB1269493D17B2875E4AEC2CAA5ADB052D341F5820E31E6940C0983560A5CDD816C2907004D2FFFEAEAA5B1E5F08A615FE1FCEEAFC136051E40E360D15C10B01D3781CD684D5EE9BC642D07CE4361C7F588DAC40CC6B80485632E9C1A46BCCCC4D2CFD39AA00B34E293429831BBD56C2430EE5614B96A5C036329451001396757D59204DC2EAFB5DE7BBFA09B4574E09D96F8E4CC4387E97075B436B7B1A125AEFB483ECD818596FC393AE6C8E9319D8CA5A6B55C64BB4351A8462E3F7050A2068AB58BA7D101D25822E70D3FA4FC4EBB5EE373874E400313531DF74A84C8239C464C53C334C359B34025CFDC4743FF229AF5391A6CE1D928BBBFB7FA1245902A2D4024B04736D838310254786D33BC97D42317743DE29E15971DA694059280C8EF92D80AF930A67B529DF55799CC0CAFAFF440DB8EE20B05B62E92FF447786F393416ADE380F2F7448C26CB5245DC51D3D2301AA12BBA23DDFCA473030F0EFA1CEA7764BBB5DB7212C4BAF1ED33501D6260CFEDE17A65291C1A87950E0279690E26472321AF5A9EFC5420AB4B860475C9DA1DE8F981CDFC79AFA684908D00F83D3E3CD1F07C9DB029C842796085D0663F4CDB373FF6A08002588EB1F77FFF4B9CC1A010289C9FDAF2A4DFE46F873562D26377F8B38104496698C6BF788F5A209A991B1ED84655462E3C8D29B83A99081C59FB3FADE0E9C75089D64E0DC93E8A58E95E4338544A89EC42AE145A7D95F9F590C8250F5D3F96ECC242B1870DB664A26BDA04E1DEEEC8C1BC44802F1D5C7434BC24759991C272836CFD0552B422AACEDFFC38C1A0F605E900903950136F97EAB802E392BE90451F25D04806B835549B113F9D6CCC88CF63E9F0872AA74FFE918D79EE2A2FAC79214E59023CEAA90E5EE5A34EDB93B9829DD672D1E3CA3BB159265BE00282183F28231309AAD2066FD6B32F0FC759980C905C50E2CB70546CFD876810490A40C29301C29A2C4DB2494D2DD5E3FC23E6AA8DFBDD820C41B1EF24C815A140A0B5950E22DB2BD7D74018A7C62C72150C95BD1AF7A5E88D244D5292102D6BF9719F9A6ED97B007DAAAC0B957110A4857B0FEAB94A0AC86A1A1978D4FA78E093238CD2C1C703FF256741F6F88151AC4B0DFCE627FD95D296019254147E5171BB3E59E6820D03F1B00B8116A295E7791B418D459DD57A21CC86500252DC8AB5B54DEB4CC7EB095FEF08AF51164708C54246BB912DA8EC424A6F853D0219D41C281C75C80A5258809DFEEBA702392F79E22100345046B86A17877B25E6DC2F8ABC1C53518247C0DA07B9D62C6C8308D61102C07E9D8B6CF3500A2830E186768D5385BD412BD0E3813026673FAA80DF47DEA18A8428FC1C266F30E93BBC2EAA32984189D249EBFB1312BC033530156DFF0C245B224E8F9A23A16AB089F8CAC35740665A2CE53847C559721D2903E9985D4093C6BE582054551422099DDC250581ECCBCDF9A89A062A1763214ABDA2A15E61B822E6BD7EB38998AC120E158233C34D2123A304111BB015A45C33D8F0C5DA622E35F955C0CECCBF9518421932870B2DDA10E6D2B3521D43260D8A19478C7DD0FFF96A51466B2E2701AD14E6D93667E61E78F1B89B3CC06515DADC48D46786742A71F9EB99B32A0FD8191EFAB70BEDBA9A07A8BD95FA35E162F5E95BB52666455C7214DF84BBE5EBD6285EC904D7F1F8B5B43EB7137FFFFA484CE26EF63DAA836137EB886B873514B84CA4708C7AE3F2973D6F2AF0246B99C930110CA9D456E99CDF275981575BBC2CCEE86956D971FF8DE8099BECE101DDF2772C266C2C5F2FB010528B21566B6CF0E8160DD495D6104CFA36448FD077124724C9C084A737093ED6ADEDD846F2B640F426C5D10E30598BF08D70CD114B8C8CCDFF36EED37599E6DD630C6AB7A28B23C55613AC4484A1C53D5B911A570F6E2F45122840929CA2E1BF0654ED678009B835F3425110E3EF2B5D746DB38024A0422BF2468F8F995C02DB9464E7E7D3CF71D677ACC109C5CF90DDBB58D2A096D30487B61E8659675E97C959CA822C92D872102CC6B90608CEE167D9B132D23429BEBCCA3A46301DD7415474A90F274406BA79343AA36A1DE8340C9402D4E519441D861478F0C5C3AE06C2A0CFB50436C473E2C2E2DB86A5828CC32884022D13E8CD42C09FCE8AE291228224FB5052F28F5A70EE2419E4A596E15236F10C36FFC09ACAA7E497BDB1C1293F2C7C3225D07969761B60198CB4C662A8E50EF8F5D8B9A03E7F93DF84C727A3A005D82ABB842124C87B9DD25800525B5E6748D5CC3932E8EDD092466201C6121A55F3090FCC3F81DFA48341BFF0A3AF4A3B38E73413E979C14AE201640E7E5EF7191037900B2331710A9AF82C5FD70CF9AA49168004531033593684FABD0190A64CFD2B458A9FD4B07E54BA1CE053F093841C84736BC28C5C4E050AFD58521FF9EA090C040B3ABE2DD4AAAD0C197921D03C3543889B5D1C7AA9850236A3B4DA07EC2FBDC309E058035CF5241D239BF090491028C1983A3560A93B028017D1E9538B688B487D0ADA40D0B71B6BED780A9EEFAB9402DB6B21644FEEE7000664F1AC6BE81900873C92345F50651C15901B41CD0A5BF5C742ED5D96F651582A2898A350198525AA32197A3C232A9B383DA9DD8C81567AAAADE83C66487DD6F24819178CD280252CC1AB5CBE515D2FC757AA9BABAB3A4F45AB0CB8682E86D3DBFA6084A5B77E78D17810ACBB55ACCD7EE74FBE624EA81E8B1804BEF83E426B76E004B228CA84DF4106DC33629D5CD45D4E345ED466FD3EB9E35E0F20D96FD6652DC6BEB8AE21BF46A1873BB6512FE102CB825FA4DA430A641045AD787B770006256DC8E845B33EB29FB82AB6D96D988FB428A25C61639272C261F2EC32AB60DE093C66E71D73CA586BA027DAE901839AF404EF7E01E4D2A30148DA9802C2C91DA78A02B41423BBBB011C29790ADC46FD4A488D23B8D473A21876B204ECEE0A50AC8EB5403973888265090F4A6F6F6ACB489CFB2173154928B19C849596F815B06EA270318CE585BF748BD8E1218090107B9887F83AF018B6A4E791247042C208D71A49EEE71620BACC8831398C302C752F95E4C79BAB3709323C04036068797532393509B6ACF47ACFD5F2DE0684C13C7824D6FC8984F25400A0E437AAA3F3556909B093709F5618C3301DAA5F52F2F3202F34083C248031CB88E54E138427A863959135C7F61E95A8BB0937B646F27B471772B78200E2BDB77CA6F5D373C2A7BA08EFAD330AC8A08C4810A1AD52E6033C738B15E3B471A9C550E26061A6947B2B1B36945F85A205C20B25CF4730064A1B05C5CF1D4453498271D560E7CA4F3868BD279CE2743464B58F38480F1B9728220630D4F09E09C32BFD7AACF46F0C730DCDDACE8FF2C781A929A59C0AF4E237050F418637353666B90B574F901686C18088990E2BCC1424327800C630641C315D89E2DD2FB6ABC7385077E1BBDCAB92C20FB27B8D3D1A34E25284C8EBAC0C00CA0791A9F443C53BC13FCC8C3C1E1F40E12BAFA69E1661E17F58B4F05362511955DD23ACD62A3ACCDBF800CB1CCD8785EE66CA60514DB48D6EC5CB9E3E64ADBBA43FEE5AB077DCDE6D295796330BCF3FA9A0D58A437561CC9C00D6B3230418CA4D5E82231C07624495EA8AA899DC8F42E5E99CA542ECCFAFBBF2E8149C824E466E40B35141F07332600C98DE345C3DED7EC0BB3437ABB9E14428CDD5E3DA0CB3FFA21007921CBF1F32B04E7372D4AE4F83D557887D2678FD6229150F64E1DC21B34EBA49A2BA7C3F02D586E53645828E1AE7E42FC9931D1FC61D391ECDCEB3EA0A48ACD2A6BD6CC69481D76D024BD139041E16AF196BF3095A59C79ECA55DA7EDEB74C99AE836BC4CCD81F632C6258006CDE3BE0AFAC92386BC841C2291C7915BFE630E1D3124F4EB90CA4FE87CE8507BE49394C7AFF19E33E0CCEA628477B461641224D3B05931128C4D34C57E65F2B8D78E050DE20CF506B1EA44E345250A5267A0A61576484A8E92E43B4306AB2F3E85646BB386019516AAE9927EDADEF34E29C0390AC4203EBA0488B3624A34FD9927B31B5C606170EB94E83A91BB284E1C8CDCB0F4B360200AF4B659943D388653F85C9352AE19488DB79A2FE1305E2BB8FD331A397E1985743E789E4C63912E06B14B66C82285AE4357FACEA39E7F82083EA60194CDB07A7C7700804527712F4708BFB430C38C102BA6BF437C608A61AECFEC2C5AFE516E0C9941884DBBD1BCC3165121209025A39429A312A03C1DCD1A69B0DAFFA9246FA3F869B62975FC8601162B240F677CF56C2158BD5A9D835EB8E07D1A8DA24A7EA24723223B56543DDB4B42BAC5CCD94AE87333058CE939E590599DF0F85A3BF02B02B67EB303C59FB86195034D560E225E70F5E55B4F43386004D9CE6AE430C3AD91D76C1CB4315680CF71C7F2B4B86068E225CE232342E9FC1AD173721A3CB94FB6C34F5E9E00A68DB4D3B597F092020E51BF4F5BA6C434450D896274AC2A021C675DF5E43868169573B0BCABC9B7C79C781F0AC0C108B18773B1EDA20E8583E59048E5D4A603310C94687BAB4FFED461E045A4BC3A3B15744A5188337A98555C70E11F018DC6CC6DD4A3EBB5BF00CA901B7A207E6C021C66DB8926D09F9151E800878979D15A2ED571750222E095A4A1546BF319561639E988981F5513410CCC60EF95C5C6768D83F980423433E0A4322458E6B007F43AB7342969B99790F094BEFDC2DE15FA1871E494B503802BAC8CB842563182321621C210975CEC766A0FFC308D808E5BD8D56666192144621A208AA516A71D3F9C2CEF6F02511900229B46DF8BC708C44E3D8A298F708196BC66F75F91732E5AF062775A9ACA36CE2DA64BC"));
byte[] sk = Hex.decode("07FEFF0702FB0106EFFCF40401F9FA0B03FF04FDF2FA0F0201F40810FC02FB0D140204050CF617FF00FD0805FDFB060007F2F2F6FA08FB05080504FF0801F306EEF5F8F607070202FDF9F3F6FAF5FF0703FCF1FBFD05FBFE03FBFD0509EFFF090BFFF903F20002F309FE0302F7F3050906FE110207F5F1060DEDFAF909FBFC1502FD010707FBFEF3FD03000A0301FCFAFAF50500FE06F50D030008F1FA130006F804030AFEFF08F5050800F603F60700FB08F80D0AFC06FF0FFF01FB00F7FE05FEF9F60301FBFE0A04F9FD05F402FC00FF09F70EFDFEF7F10808FB01FD030203F3FE0EF8F5080207FFF30D0201080A03EEF60104FC02FEF9FA0A02021000040705FEFF03FD06020009FD05FC06050204020A0D08FAF9F1050DFB07080A0405FC09FD1003090E0C000703060204FBF806000AFDF7F4FE0A0104FF04FBF6FA02F7EDFDEF050710EC0B0209F90600FF0703070509FA0CFCF9FC0304F6FFFA03F3FE0202FBFF0812FD1409FE02FBF5F80B08FF07FDFF06050209F609F90BF6FC0013EF020E0F0B04F4FA050DFF0BF8F5EF0AFCFEFBF70512EF10F505FAF7FFF9FCF7FAFDFC0808FE0A030CF8F50C02FD03F108040612F80214F6FC030C00F30B0EFA00FDF80C000603F809FF0304040AFEF807F60B05F5FAF6FBFA0A0A12FE0007FE0AFC06FE040606FC08F9FFF6FE0AF6FB04F6FB060C00FAFCFDFE0800FBFB05F7F20004FDF6FD02FC0210FB040DF604FC06EFFCFAFBF7F6F9F003FCF9FB050801F900FE0A02FF09FA0203F1F900FA06F501FA10FAF806FCFA03000908FC020AFCF70102F9FE05F202F2FF0900F702F4F1FE06FAFBFD08040705FFE9FCF90907FDFAF00F010B010B02F4FFF90FFB0401FF05FE08FF02F3FDF3FFFF10FB000FFF07030B0205020D0B01040BFBFFF9F71AF00306FEF704F3020AFE03F0FE1801000AFBFAF7FEF7EB03FB08060A020109FC0E0107FB020BF80506FA0CFD0116F603070E0808040AF60808FB04F903FEF1020204FB060FEBFD04FF07F8040708F807FEFCF9020A0A00F6F80A0D01FB02F5FEF40908F401FF02F8F50B060205FC11FA0404FBFF0305FF01FD0303FC0DFF030A0AFD0009FD06FB03010BFE0B0A0D0003F3FA07EEFF070008F7090206EDFAF9040709F50D07FEF50EF9F7FFF8040208FB03F6FDFEEB06F5EF03FCF506110200F6000D030603F3FCFB0E0EFFFA02F504030B090B02F90806FE0D04FC06F6FE04F90607170106FEFCF6FA05FBF0F6030600F4EF03FAF802F30004F30703F5F8FD05FEF0ECF9FC0209F906F5FA05070CF60FF709FEFAFB0D0305FF0102F807F703F0F40D0204FD02FDF108F80D0CF7FAFA070503FB0307FDFAFEFE08FA02F80D0B0AF7F710FC03FBFDEF07F9FD010104F1FEF1F4090507FA1101ED0B050212F80E02FE000708F5FFF202F500F7040DF303F3FEF4FC0D050105FFFF0A01F4F6FFFCF6FA0001F908FFF3F3F8060AFD150107FBF3FFFB05FA08F6000DFD11EEF9FEFF000CF600FA020204F70F0909FFF3FBFD0906F7F5060512020803FC0001FF0C05F8FEFBFBFEFE05F90307FEF7EA081105070102FAF706FFF41407FEF901F806FCF105030F0100FDFA01010807FFFB07F50DF4FBF70D01F805FAFCFF000AE6FE0D00F80AFB0007000009F8F8EEF3FA13FBFCFD05F9F503040EF608050CFC0E060304FBF80E00080901F7050C0007F9F009FCFD0001F9FB180EFFF9EFF400FA0206FE05FE06F6FEFE00F207F0F9030A0AFF00F6FE01FE0C090404F7F0FF04060F0B0806FDFDF6FBFBF2FFF4FAF80CF9FFFAFFFE000703060BF900F80A01FEFFFF0201FA00FE0BEC03F7FA00F8F60C040300F6FC03FC000014FD09F80203F7FC0A0D0007F806EFFF0409FF0007FF06ED0A0A02F3F1EF0403F8070405EF0102EA06FA0206000308FA0205010FFFFCF6EF0C16FAF7FA010DFD0503150EF903060803040004FD01FE010607FC15020808020406FDF5F304F7F8F6060AF7F7030CFC01050404FB01F8F8080905F70607060AF3F303F50501031200F502001205FE01030503FF0400F2F2080AF7F9F8020DFFF5FF03F8070806FB06020704EF02FD0C0108F90808FF0109F70BFC0BFFF30801130A09080202040EFFF504F5010704050A01EDFB0DFB1109FA0605FB030CFD01FC1601FAF9FD09FF0CFFFDFCFCF5F8F50606F9F8060102FBFFFBFB080CF913FB0409F9F90C0EFCF8F9FDFEF602F4FCFDFC040902050AF8FCF9FEF40C0A04100701F60E0901FC0200FF08FAFFFA05F70803FC0E0707F9010A0600FB010CFA06FD010EFEF7F7030011F202FFF5FFF20706F7FD03F50205F70500FAFFF705EEF7080C0A03020C0001000702FE02000404FC0105F0F7FFF0F7F6FB020DFEFBFDF0FF07FD090202FE080201000B0409070AF807020EF402FE1003FE02061202F8FF02F200EBF90BF8FDFBFF04000704FF0306F7F3FA04FD04FE0CFDF80BF804020501F3000403FAF8F704FEF80FFEFF06FCFA0109FE0AF200FC05F3FEF90701F40E00F1F8FD020BFA0B09ECF2FC090800FD05F109FAF708EB0C0D01F30AFD0B06F70004F9FF0902F604FAFC02FFFB02F5F50900FFF811FCFFFF09041402F5F604FC07FE01F4FD02F0FAFC0005FCF8FD06F80003FDF9FD0EF7FDF907F5FF07030B03FDFE00FE000F000A0D0303031508FAFA07FD0314FF0CFA0B0206FAFCFA02FE01F7FB03F70004F7F409FB04FFFE0601FF0AFA05F90401F51005020A08FF0A0CF805F5FF02FF0501F503F8FCFD000403F5FDF1F805EDFEF9FD0B04000008FF07FB0C14F8F9FB08F8FFFA05EFFBFF0002FDFAF2F802F8FB1A0202FC0010FBFBFEF9F705FDFCFA07FE14FA010D070B0105000008FCEF04F6FD0B04F9FFF00DFC0A050608F9FAFAFE00F7030BF50BFD10F5FA0F0100080C10FD0600FBF30A0A0CF4FF01F20A0E0D0CF4150000FC00FC00FF0E07FCFAF90CFDFDFCFDFCFEFCFEEE0A03FC07F80205F902F60A0208F3F7FEF90202FD00030004F2FAF903FBF80103060FFFF9EFFF01F412EC0A0105F901FF0E0A03080202F6FF09FBF209FA0DE805F4FBF506060110FC00050FF5EFF50A0BFEFF04FE14F3FF020EF802020508F5F9FEF90806FCFD050E0711070D01FA060205FF0204EFFEFDFB07FEFD00F90B030508F6EF02FE16F400FDFB060304F701F3F4F90501FB03F8F404E5FF02FB0A00F8FE0C0B000AFBFCFBFF00FAF2F5FFEB05F0FA05F5FFFA0408FB00F90204FF01FEF00C12FF01F8F6070402000502FCFC0B04010E021103FF0BEF09EAFDFB06FDF9FA080CFF11F90AFCFAFFFE0301030001EE0EF3FF0000F40FFEFB08EA00000F08FBFD10F307F1F5F200050105F9FB0AFD031302F4FFEEFE00F709080BF7FD06FE0EF5EB010DFD0607F707FA08EE08FB0007FF08010102FA00FB00000803FD04F806020500F8060CF4F9060EF9FE020A05FB0CFC0006070202F6F20003FD0DF106FA0206F10304FDF80F00FDF6EEFFFDFE0FEBFC0D1BFB05FDFF02FA0806F7FCF1FAFD0403FF06F80E01FBFBFC0C02F203F90B0B02FA0CF815FFFE080201FB16FA02040802F50503FDFFF8F7FBFD020202F8060D0601FC04F1030202F30FFEFCF50BF60901F306FE0605F9F8F502020A0406FAF80208FDF8F9FCFFFD0EF30B04FFF5FD040001F8040105010100FE0E00FDFB0606FA04F505F9F811040607FD080500FA07F300FFFBFEF0F5FD0209F802FF04FFF9FCF9FF0AFBF800F80AF9FC09F9F6FB0EF80805130B06FFFF0104F40603F10001FAFD06EDE5F8F90C05FF1202FEF000EA0006F801FFFAF1130CFDF9FCF806F913FFFE120609FAFB06000CFBF804F40BF4FCEC00FEFD01FB0307111206F9F1FF06FE020CFDF802FC0003F9FEFE06FEFBFBFB0BF8FB0C04030BFB00FC0405F8FD16FBFF0207EA08FEF5FA0F07F50506FE00F3F20BFC0A07F702080FF509060203FD0505FD0BF6F905021206FAFDFF03FFFC01F20204FEF6010009FF0BFDFC0C120402FF0602FC0106F40601FDF6010B0611FFFFFFFFF8F5F7FEFCF5FB02F805F50105FEFF0202FF09EC0408FC03EDFA00F306FCF8FD0301FBFA08F8FD0007FCFFF6061011F80E090D07050506FAF00AF8FFF40304FE020AFCFF0CFFFB0BFD0E0C05F50C02F60EFEFDEDFF090802FE09000BFF06F208FAF9FF07F500050901F508F1EC0BF9F6F30FF8F006F6F50007F107EBFFF80406FA090401FBF812F608F4FB09FB0FF8F0F1EEFBFE050011FF0AF7FDF201070C050EFEF5EFFD01FF08F500F3090BFCF201FEF90BFA0DEE01FDF8F5040109FA03FE0601F30D02F904FEF804FE070700FB12FAFDF9FA13030A02FAFFF60407FA02FCFEF3010E04FC04FAFCF4F7F802090307070F03F808F911F4FBF004FCF704FB0B13F8030B01F307FBF405FFF30105FAFC07040605FB0006F7031001FE120600FB02FD08FFF60C0709050108FC0CEEF41AF40DFD02FAF50AF6FEF10000F2FEFDF0F6FBF9F30BEE0D0E0105F6FF01F105070E06FEFF0713FBEBF8FF06F50100F504FDFBFD080AF9F6EDF9EBF60B09FE0C00FDFDFE00F51EF9050E0A030101F70A01FF02071BF2FEFCFF040309FA03FBFEFC14FCFDF6FC01FB0AFF020206F6FA0D11F7090BF9FCFD07FC080709FE06F4FDF5FDFBFF01FA0F0607FC02080601FF0506F7010808030006FCF8080F0200F2EF0AFF03EDFB03EEFA02F00AFFF80DFA11FDFA0FF801010BEE0103FA02F5FE03010704FCF6FEFF07FC0901FEFFFDFAFDFCF002EF02080506091208FA0B0AFB0116FD00FE0416FE01F70B0DF60110FF0608F60507F701F6FF06F3FFFE0BFCFCFBFBF80204FDFF11F307010301F6FAF003FE050704FD02FFFAF503000103F0FDFF1006060EF1FAFE00F8FE0A08FC02F8FA051406F508F8080306FEF8FE0F0108001305030DEE07060608FF07FE1107FDF80105F20A10FA03010C02FAFEEDF3FBFCFE060104FCFF01FF06F6F5FDF4FD0904F702FB0EF6FEFE01F8FAFB0003FBFB01F915F407FDFDFA01F9FC0A000807F5F8F4FDEFFE09050B0BFCF9FA030103F2FDF907FEFAF70502000FF50605FCFDFE0A05FDF5000201FE0EFAF613F9FB000404EF00FE0D04F901FBF60CF7FFFD0203F8FDF70301F2EB020405FFFD03FB09020405F5FD06FD10FD06F5F5F808090404FFFDFE08F9EFFF05040CF5F412FF03F4EE0308001007EF0BEE05FAF80FFA02080807F90001F8020906F4F2FAF901F501060800FC0306081601FAFD07010EF606FD05F9F305FDF504FDFF060F0606110A0002FA030007F80E040BFFFF070100F6050008FB05F8EEF70005FC0409FE0007FFFA1000FE08FD030B0104030D0106F8F9F4FA0901F8F7FEFE000D0FEB08FF020B0605010B010EFDF500F6FB02F6F8070000030AF6FC0702FAF90DFDF80009F901060B07FEFDF002F206F109000DFDF1FCFCFBEF07F7F307F608FD00F803F809F9010408FCFFF807FD00FC0DFDEDF90706FFF7FF0DFA02FA00F60000100205050B00F602FFFBF70BF60001000A09060A0A0A05F7FD01EE0EF8020BF5F006070AFD040B01F2040EF0F60AF90BFC03F9F102FDF50000F3FB090FFC0705F209090304FFFA07FDFA02060507F705EFFF0BFA01F2FBFDF503FEF5050E01F908F406030005FDFC1603F601FE00FE03F407F50308FEFF0403F90204F509F1FDFD0503FB05090802070D07F9F8EE050E0107FB00FB03FA07FBEE0012F310E4FF04FE000C01FDFF0206FBFDFEFD0802F6FC030702FB0203F7FE00FAF6F8ECF5010DFE00040BF3FF05FD0807F2FFF9FEF9FB08F7F7F6FBFE010708EEFD04FEFFED0209F703EF07FB0AEC020BFF060AFC040308FE030D05F109120CF80001F4F708FDFDFCF80B00F203F8F6040203020010030BF9FAF9FFF404F6F9FBFDF6FEF8F7FC01F2FCF8F3FFFFFCF7F20B0F0A00FBFCFD0408F50DFEFF08F504ECFD13FD10FD08FD05FF06F70407000C1005FAF7FBFBF304050DEC0101FF0CF1060010FDF9FF0705F404EF0307F9000106F801FB06F802F8FF080C0CECFE07F5F4FD06FCFC0401F7FE050EF3F9FE03FCF10302FF08040907000104F90303FE11F80602F5F70201FDFA060FFD03F40A1205F205070AFDFC0A0002FE01F902FFECF9000D00060EF0FB0D06EBF50C02F614F4080402FB000704FBF706020814FF0A01FC0A0E00F0F8F607F8F608F1050C04060213030BF60606F9040C03FBFFF3120403FDE70003F4010EEB090001F40903F8F9F5EF06110D08FD03FF0408FDF50D0407F9070201F9FEF4140F04000A07FA08FEE907030A05F6F8F4F7FC09F502FAF808F6F6FF06FA0100FF0B0D03ECF50AF7F0FAFD0A040901FD0FEFF70BFDF104F600FDF5F1F80DED0D070009F907EDEDEFF201F90B03F90D0301F5F706F402F5F7FFFF0AFBFFFAFF08F9FEF5120405FEF808FF05010A0AF9FD0DFDFAFAFBFD01EAF6FE0BF3F7080306F60D000403FEF90AFB03F70D06F907FDF811FDF806F707ED03FE0900F508FF0C07F704130805F6FA0300FCF900F804FCFB010309FAF9FE04F505F501FEFB00F4FA0A0500FF020A03F90EFFF80305F8FCFC03F20408F5FE00FA0009FAF80EFD0A0311FBFF0D00F9060505F60504FFFEFEFE0AEE0A010EFCF701FFF80302F0F9FCFDF5011209F8F80500F4EC090CFD0601F612FEFB0F0201FCF31007F7FCFFFD0F09F01013010707FB020307020402F9FF00FB00000E050600F7FAFB02FAFE0CFFEE050E020D07010304FFFCF9FB1101060907F606FCFAF9FFF90408FAFE080DF8F7040C07EFFCF7FBFE0CFCF40DF908F0FFF80803FD13FE000208FC0EF6040AF1FD01F2FDFF0800F80FFD0FF807FFF9FB01FAF8F9FCF8F7030CF7FC0305FE04010003080AFC0300F5FE04060AFAF114FFFDF5FFFFF70AF7170416FE0AF70207FB0AF5FDFA06F3FC10FD01FB040A03F9030707F708070507F308FB0AFA04020404F8EBFA06FCF403FDF7F7FC0D070306F5FA000AF0FDF300010EF8F9FEFEF904F801FBFDFEFE04F2F0FAF8F2F005020FFEF7F9F4040AFF000BFB03FD02F9FDFCF6FD11F815F701F2FF000CF7FF000AFB0F06FF011400FD04FE050209FC03FAF807FBF8FD060201FD07F607FF010E110AF2FBFBFD17F11508FC0202FA06F90B0A0602EF02FCF0F203F4F8FFFDEEFBFC0512FF01FB0103FFFCF5FCFB00F703FC0A09FD02F8FDF4FA07FFF404FBFB0CFDFFF1030610F3F6F5010017F501F505F4F603F1FF0A04060209FC010608EEFF05F60604FAF90202FB030502F4FD05F70312FAFF0007FCFB0B020C07090AF9F2F6F8F203F1FBFF000207030411FA01FFFE0303EFFE0606FEF6FD000901F900FD07FD0B00FC050004070DFD050CF50B0D03000104FC0002FCF6FCFFF008050D0002F00CFC0506FA030DF604EEFDF90609E902F5060AF7FA0A0309F90BFE02010E0B0405FFF6FAF80307FD09FFFDFFEE06E8FF090805F5FDF6F90C07F40C04FB0BFA04FBE604040DFFFEEF05ED020108FA00F804FEF00304FBFDF702FB02FAFA06E208040402F2F4080501FDFA00070DFAEF11030F10FDFB08FE0B08090101F1FEF7F5FF02FDF8FA02F8FEF8FAFDF4F5FF0809010108F80106FC0701FA0C0B0DFD050301EFEFF7FE04070A050C0BF6F308FC06090207FF0AF4FF09000A020304F5FE0204FC01000101E9FBFFFF090303F5EB1802011204090EF80004F9FEFFECF2FCFCF303F8F505FF07F80700040D08FE08F00006040006F9FAF7000C09F804FFFC00F910EAF8F80700FCF5F6FF0213F8FEFAF8150208FBF80803EE06FAF504EEF50F0800FAFCFFFA02030211F50CF6F8F004FBFC01FD0BF20CF7F60100F7FA05FFEE0507030807F8FCF6FB01FA010600FC05010308F61402F605FCF9FFF40601FCF9F605FF05FE0011F80AF9FC03FD00010B11F8F90802F9FC0600F50A02120501FA11FD03010AFC030C040405FB02FB04F0FAFCFBF700FC10FCF6FC01F301FCF803090DFA18FB0701030DFD02F204080806F106FEE9FDF507FF1505F8F8F8010C030909FD050306F40F08FE120A0C050102F7FBFB000604F8FDF8FEF8FE080AFDFD08FF00F007FC0003000401FDFFFAFC030401F2F6020CFDF80401F7F807FB07020C000C0101FEF6FEFDF60811140E08011407F905FA04F504F60AEDFB0210EFE405FBFFF9F0FB04F9F311F7FAF104F0F6000009F8F5F8F7F303FD0201041A04FC0509050301FE03F109F1F7F9F10311FFF3FB01F8F9F6F6F8F80AFBFDF20AFCFF0CFF01FBF8F4080DF502F201F0F7FC0AEC0713F6F90206F7FEF502FD05F9EB110001F8020706FA02F80105F404FD13F8F5FAF104FB0E0301FCFD04FBFF02F5FDEF03FEFBFD010D0708FFF4F6FEFFFEFD0CFEFD01F8FA1207090001050AF20909F50513FA06F3FBF4F7F40301010307FBF60103FB0B0AEDFC0D08FE09060A03120CFCFC1800F5FA030AF901F2E8F903F201F7050DF8F9FDED06FEF8F0F5060507F5031001FD05F3F008FE0BF9FE03F5000600FA0103FD06F8FDF9090CFDF60CFE050A05FFF8F206FD0904FC0200000106EF07F301FD08F701EDFD0300070F1404F30BF506F4FC09FAFFECF8F7FCFDFAFB07F60AFD0AFD03EE090900F80207F0FE04FE060A0B0603FDF9FC0000FBF3080B07F90904F0F808FC00F9FEFA04FFFE05FDF3F206F8FDFB03FB07FA010CF60DF7010FFEFFF40407F302FEF0F80D011306FE06F905F312FCF10107F3060310FFFDF507FF02F3FEF1FBF700FB060305050803F90703FA0405020BFC02FE03F315FF12F80806F80201FA020E00F9F9F90309FF080D0501FBF512050201FD08010AFBF606F00908FD09FBF30810FBF7FD130109FCEDFBFEF901FC01FC0FFC0403F51A1603F20812EB0404F9FDF700FB08F5EDFF01F108FE030CFCFDE9FF040703FC061100020C04FDEDF9F8FC0A0603FC02FE0AF806FA04050AFB0AF2F4F6FBF4090E060504FF0703FB010401040606F9010C00FC0B080400FBFD0B0C0505FBF3FCFCFEF610040D0808FEF4F001FB000EFF070806FFFCFEF406F9F4F8EFFFFC0605F80805EB0403F91313FF0303FC010206FE06F4F7FF000AFDFBF707FAFE04EE090A08EE0AF8F9FCF7F50C0308020C02F3FB030701FF0D08050BFBFCF9FE1200030704FFFCF9F3F00CF7FDF805F501050302F7F9F3F8F608FEF105FE05EFF6F7FBFF05FE0713FCF80D0B0303FC05020B13FEFEF9F1FD15FFFE01FAF508FAF703FDF81208FFF9F90700F4FDFFFEF502FDF90B0C05070701FE0AFAF9FD0706100007FEFA0DFEFC0BF8FDF6FD0104FB0309F706FC0606F101F9FEFCFB1302FCF4FFFCFA03FCFF07FFFD1509EF13030001EE040105F901F908EF09F7FE05FEF1F60CFEF7F50704EE05F801F70208FD01FEF812FEFAF50102F4EE0102F10906F902FA1316F3F60406EDFAFBF7F5F808FD04F807060701FF09FAF4F604F60002EEFCF2FC13FEFA02FDFA0814030207F6150004F6F501F10708FA0FF7F9FA0108F2F705020101F30E0906F50F0BFAF7EF0907FA0003F4F8040A08FC03FFFAF4F8060605FCF807FB0DFFF6FDFBF7FEF8060F05FFF700F1090907F403EC03F705FB10030E0AFAF7F7FD030AF6F205F603F3FB0AFAFF07F40BFF03FC08FE04FAFA0001F60903F602060DF6FBFF0801EF02F7FE000E0BFEFAFDF506F503FAEAFDF5FEF50C09FFFD00F9F6F809F9FA090102F5FF0000050A0400FD0DFD0705ECEFFFF7030200F2EBFAFA02040E0CFCFBFD00F90600FBEF0609F0FE03FCF9FDFC05FB08F3FB130DFF0F0208FB1006FDFA02F902FB1108FDFFF8FEFD0311FFFA0502FBF905FD0AFEF50C08FC06F1FBF7F40003FD07FF060809FBFEF30A0500F6080BF60D0CFC030707F5F413F903FE040006040A0C0403F612090002050E0AF610FB0401FDECFBF7020DF9030405F609F0F0ED0103050FFD0B070506F808FBF6FB0519020703F808000609F402FF0907F3F9FC0704F7FCF7FBFB0D070AFA0BFCFC130AF804F2FF040105F0F1020408FDFCF9F407F7FBFDF300FBFC050A0E12F4031504FAFD0214FDF103F2FEFC0801FEFEFEF91502F10700FF08FCFB01FD060C01F6FC01FD070107FFEEF010FD0B0208FA00F7040103FF0BF904FEFF02FC07FEFE0007F80305030204FA03F9E8000D02FFF4F4F60408040105F2FC0DFD0504110102FE0F00E706F301F7FF0108F90305FA0202F3FCF612F101FEFBF80E0C09FDFD000013FEF6FEF6FE0BFF03170001EC0501FBF4FDF0F80BFEFD111C02FFFC06F801F8FDF9010BFE09F6050602020BFB0C05F90401ED0FF6060E02E9FFFFF700FE0E0304F2F5F6FBFAFCFD03FCF5040417FDF506FB05000BF8FFF1FE0405F102FEFCFE08040C0F06ECF6F6F9F4FFF9F9FBF8F1FE00FFF40CF4FD07FB0503010B15F3FEF90CEEF80AFF0BFE08FFFAF3FB0AF301FEFDFD01020706FEF5F714F601FD040A0A0D0A0BFF07FA0700EFFDFDFBFC06FDFE00F804F3FF00FF0AFAF9F801050F07FC0310F7FA08FAFF0203FEF6EEEBFF000009F906FA0A0CEEFFF1F7F4FEF3F5F4FFFC10FB080608FFF6F906FCF6FE0D00FF040B02FC0BFF00060D01060A0AF600F50CFFFCFBFFFBF9F8FE070EF5FEF8FBF606FB000DF706EE04FBF0030BF000F3F8FDF002FA070A0603FB02FC01FEFA0407FA00F2FFFDF2F80BF607F70402FC07F211FDF8FF0101FDEDF601F4FBEB04F0FB04FCFD050101080A0AF50302FC0803FE1200FEFDFDF3EE090E050DF9F803EEF1F4F802FCFD11FB02F4FE02040A0C03FF1506F806FEF9FCFE01FCF4FD0104FA02FCF9EC0911FAF2FD06FD03030A05F50A04F4FEF7FF0B050001FB07F80601FEFE0CF9F7EF0C1209FE06FF07FEFA0600FF02080207FFFAF5F407F5FAF500F90303F81106F90BFC050FF900000D07FD02F9090306F90107F407F3F7000007FDFC090003FEFA00F307FDEEF0F9FFF70CFF0BFAF9EB0B040605F70504FA00020CFEFF09FD0CFD03FB00FF0CFE0205FC02FB08FE06FCFF06FD070108FC0DF60E070EF7040D00FF00F1FE0108FBFD090008F7F812F006F7F2F60916F0FD0F02030404010502FEF6F0FBF10BFDFCF3FD0F0FFE08FF00FD02FD0602FE00040CF100010AFCFFF90818F800FC010F0AF60A0403FAFBFF030803080DFDF9FEFC070E0AF30200FBFCFBF913FBF3F9F9F1F7EB0C06FCFF040D01F0FF080009FA0C0AFF0505040008FDF6FE01FDF8FAFD01F9F90708010908FEFAFEFC010C000312040804F6F8FD0406020D0004000405F8F8070EF8F4FC070706F80A05F4F90803FEF3FC00F6F206FA0CFAEB00FC00000AF2FBF705FF0AFFFF0604FF040709040401FE1505F1000EFA030F0BFFFE0602FD03FEF5FF03FBF0000F07FB030000EF01FDFA09F80A0606F804F5EB10F502080606FE0A0703FFFC0308F40806FEFFF9F6FDFBFFF1FD090501FAFB050E0BF9FEF8FFFE00F701FFFAFE04FF0204FE0CFCFF00FCEB0F0D0006070606FB0802FB07FB060306F907EFFFFFF8FA0AFE02FEF70F06F8010100041211020608F505030407F400FEEE09F9F3040D0B00F703FDFD01FA0004050E01FCF801F6010806060308FC0AFE070BF813F9FE0F0EF8F700F708FBFCF2FDFC0DFEF4F7F70BF9F4FEFCFCFC0BFFFE0AFFFFF6FDFAFEF7FD0C1005040AFBFC10F9F907FE0AFB090808050100FCF901FB190FF20C00F8090106000C050AFC0A0201FA0902FE0503F2FAFF06F0FAF6FB050204F905F604F6FCF90005FDFB00FC0B05F1FDFEFB00FEF703F705F8080A12FCFEFA08120001ECFEF7F40FFC05060008FBFFF607FAFDF403FAF616F8F402F9ED1204090A05EB00EEFC10FD03F602FA0FFD010807060504FCFFFFFE0C0BFEF7F7F4010C0AFDFA040EFE0415F702F3F3F905FC0A0102010B05F4FFF7FBFBF701F80EF400FA03F8FEFC08F9F91BFC05FEECF90B06F907F9FBF409FA02F70605F5F6FC09F5FC0BFFFEF007FC0B080001FAEFFA0DFBFEFD0504FD0CFA0205F6F908ECEEF8EFFFFA02FC03020BFFFAFA0E03FE08F400EF0102F8F1FD0002FDEB060AF9060808060712030401F603F5EB01F6F604FBF8F0FDF201F50AFD000606FB03FF010E01F9F707FD000C04FD020F0600020AF403FE0707F902FA0CF8000503FFFA09041019FF0CFDF8F0F5FCEC0BF7FEF80610FF04000504F5F907F204ED0009F70002FF03010208FE08070404F606FE11F4020C0505FD05FDFF00FAFDFD03FDF10A0103FCF801FEF4FD0604FAFDF2020004FB0A021DF90308FB03030109F008FF01FF05090007F107FFF70607070600FBF602FC09FEEE00F7ECF201FCFB00FE0000FA0803FAFCF8FB03FAF8FAFC0B0903FF0906041003FBF901F900FE05FCFEF5FB020203FB00FFFB050B0503050003FEF8FB050105F9FE00F9070802FC0BF6FC0FEF08F406FE0313070404FFF8FBF9FA090AFBF9FD01F4020504FE020FF8F3FA00080308000C0FF6FD010BE603F305FBFFFB0111FCF5FC09F5FC0D111200FD0306FF1101030608FF04FF07FFF6F40301F303FEFD0903FE13F201FF03FFF5F703FD0A10FAFB0105FDFD0D040FFEFEF8F60CFA10F2FE00F404F7000DF304FCFCF40F0209FB020300F7F1FDFEF5FCF8F9F7FE0DFA04F20D02FF0B0EF80AFB0AF90A01FBF303FDF2FAF706F802F806F60209FB010702F5F502F9FAFCFCFEF9FCFDFAF80108FDF609FB00F6F1F7F607FB0C0101FB0BF00BFFF71A0104F004FEF3FD01F90DFB04F507010B09FDFBFC18FFFAFC040EFE09040004060708F8FDFFFD01050703FDEDFA08F5F4F0F2090811030701140AF9FC03050306FF0A0D0109F5F1FF0107FC0200030DF801F5ED0613FFFEEE0C0A030705FB0A0E00F8F5FC0A0C02FCFEF9070F0208030E01EFFB08F5090A05F8FEF7FDFD1001FEFB0209F70F0202FA02F900FCFE0208FCFFF4FAEBF7F6FE010801F606EB04FC0BFC04FC00F8F805F10FFA050DF30407FD04F0FBFA01F602F8FD04FD060EFC080F070F0014FB050F0106FEF00503F4F5FEFAF600F0FDFA0FF604FA0F09020010EFF5FEF904FC090904FE050900FFFA05FE0BFB00F9FAF4FDF4FEFA0CFC0D040701060204080E06040402FAFB00000006FE04F0FB1200FCFDFBFE020C0A0BFA010C0CF2FB030404F90D0208FD0900F7F9FC030CF3EE0416FE08FF0DFEF0F3F4070DF904F907EF07FFFA04060406F0000D00F3070406F6F5F808F4F8FB0B05F90EFD0705FEF0F9FB0803090C02FBFEF6FCF1F3F9020405FD07F30EDE000108FB06FCFEFEFDF3FDFBF4FC0302010204F2FBF50309FFFCFFF500FE0C0A0A0E05E9FEF90609F80405EEF8FD020303FE0AFE16FEFFFDFEF6FB07ECF308FFFF07FB0A03F6FD0004080FF902FEFEF70A09030A0910F80E000E11060DF505FDFF0402090C0FF708F6F2FDF505F5010706F90606040704FDFAFF00FBF7FAFF0D0A0110010201FAFAFB1706FE0203FD03F6F5FCF8F20D021205FD050BF6F1F10205040BFEF3FCFBFEF9FEF1FD0500F9F9000106EF08000908F4F8F0F4F8F90602FF0601F3ECFD04F6FE0C010202F4030001F900080704FB030108F9FDFEF8030602FE04070BF8F50713F8FAF102FB0DE6FC07FB04F707FC0E01EFF80B00FC05FAFEFDFCFDF703FF0706F8EE0308FAFDF501FF02FCFDFFF2F5020B0B10010D000A0A01FEFDFD02F60205FAFFF109FA0804FB040F02050012F603FEFC06000FFF01F8000A0613FD0BFAF6FDF806ECFD09F20000F2F8FFFEFD14FFFCFDFE16050C03FC030D0811FD16FE12FFFF140CFEF2FA0806F205FD08EBF2020905F9F2F9090601060300FFF9FA14FA0B05F4FEFD08FE0D0A0003FE07F7FBF8F7FCF502F70204110C1101F601FDF1080D02FF06000403FAF90701040AF0FB0103F5F903F4F0F510F5FEEF0A0107F505FF0401FCFD05FD030B060FF9F602FCF8EBFE06010DF70DFDFA06FDFDFDFA04FD00FB08FAFF090108FB05F00C0BF700FB04FD05F6FEF2F80608FC03FEF7F7020B050FF60EEF0600F7F50A0C0305F7F6FBF3FD06FB06FAFF0012FB0602FF0705F700FB06FF09FD040206F202F401FF07030105F8F305000E04FFF7F8F804FA04F70006FA0BFEFBF8FDFFEF08FBFE02ED03020BF506F7FC03070400020E0608FE04E9FB0106FCFEECF902FE041700F6F605F6FF05FE00030404000D0500F8050200FBEF0AFF01FEFCF40604FEFD0A080008EFFAF7FC0607F9FE0106060108F4F7F3F004FAEDF7FD06F8EC03FD030E031108090A090301FEF60603FDF501060A06F9F9FBFDEE0D0805040902F403FBF901F8FA0602F602FAFEFC02050C0902030A030D0D08F30609F80CF70507FBF6FD08FEF7FEF909F6F90808F8FEF904000BF809FC01FC0C0DFB0AF20404F912FFF501F60A05F2030B0614FF030000FC0008F60C05F200FA070104FE0FFB090C0E0806F0FEFEF8010000FA0305090507F6FFFAFD0D020BF80511FB01160A03FA04F309F9FB0D0D0302FFFAFE05FEF901FD09F51201FF0F05130503F8F7FD02FAFAF903070D0BFD0D0C0605EB07060909FE0D0CF500FCFEFD1306010502FBF4FCFA100DF0FEF9030009020009040901F607F8FBFFF70CFD04020708FEF506FCFEFEFAF702FDF705030902F9FA01FF0110FCFB0702F9FA0BF70C0A02020B0705FB0000FB11FFF2F80BFEFA14F7F6030108080001F111030715FDED0A0B05FAF5F7FBF605FCFD0401F3FEE7F20007060E020503090608060306FA0DF4F202F4F2FD05010B0005F7F7FE05FBF50BFFFAF80707F706EDF8FDFEFAF3FF010905FE0B000909FB0AFFF801FA0D0C05F7E1090200030B00090BFA06FAFBFA0A03051201FB0600F4010F03F80B0AF1FCFFFEF101F704F4F201030214FBE0FCFFFE0CFEF2F5FB0B02FBF8FD02F5F2FA0405FEF60BF705FD00F909FEFFF301000902F510F000010001FBFBFDF0FFFD0E05FFFAF1F91304FE04FF0201FD0A06090305FA03F0FE01F6F802FBFFFFFB01F4FB0AEB080308F9F201FFF403FC0C0AFDEF0F010203EDF3FF09030606FFFCFE040101FB02FEF3FD06F6EF02F6FDFFFD0100FB12FDFEFFF604020F07050B0F1AFD0406F7FAFEF2F70F0A090BF108FFFA0402F2FEF7FDF9F5F500F9F5FF0F06F50A0204FBF6F70A06F707FD06FA03080306FDFB0905FEFA08F00B0FFF11010403040600FFFA02070202F30A03FBF1040C0F0008FBF904F70E02060A08FDFEF5F3F6FBF80807090AF6FBF7F601FCF41700F806FA0201FBFC0B0BFBFC08F1F401FAFE0D0406000407FA090505090BFD0B0507F4FD0A09F90408090AF8FCF40CFA0B0218FBFD0411FEFE1004FDF201F80213000509FF110CFA01FA0201F602060811F30900FEFBFFFCF10106080A081107F1FF0C0303F506F6F703030AFCFBFA0EFD02F4020102E805F90501030FF4FA0409020109F2080BFE01F91302FCF61803000CF4050BFBF5FA11FE03FC031402F8F0F802F9F6FA0D1508060605070AF406FDFBFA000C0A04F90003FBFA0E0007FF0000060600FCFF01FD0009FDFFFDFFF50D00FCF5F5F3061308F1FEFD060903FF03FCF7F2FEFF06010904F214F703FE0104000B0405FA06FBFDFE03F50202110EFEEF041205EA070607FB00F9FE03F8F7FCF60F0512FCF70200FDF804FD0702FF030804160803FD0C0906FE03F7FF070E0219F5FAFF05F20401F904FDF2FA050C00FDF102F4F60BF90CF307F9F6FCF5010BFA0601FFEE07FBFEFE15FEFA0CFFF5010DFE06F60700F6FB05F708ED1201FCEB0AFD01ECF7FDF5FC010300FE02FDFEF7F50803F4FC05110400E90211020901F705F606F802FC09FF0B0AF9F9F7FEFFFB0CFFFDF309FCFD03FD0F0FFD09FB02010CF30001FD0103FEF1FF08F8FDF3100AF908EA07070201FD050C03FA0D1104FBF7FB08F20EF9FF01FCFF080313F70001F8FD0B05FB11F7FD0109FE000DFCF603F8F80A02F905FFF80CF9050607F80204FE100000FF020B04FDFB0109FB1001F7FFF8EBF4F408FD0F0BF9030EFCF4FCF600FE030807FD04F8F3F8FB0A08EE050304020606FF03F80AF006F1FFF806170305FCF507F704F80A10F7FC01F900F602FCF8FB0009F10704FA0404FE0FF70400F000FFF701FAFD09030203070901FCECF206090109000B0FFE0A040203F7FA0BFBFF02F800F9F8F9FCFC0C0504F9010FF9FF08030504FE050104F8F813FBFE0B00FFFA050603100505070003FF0D020FFE01FB05EC12FDFEF009F4F4050BF6FDF20802FAFC020C02ECFE010602FE01FBEFFFFE06FC100EFEF6F6070AF9FC05FB05F701040909FD03F1FAF400FB07F908000A03EF01031005F511F9FEFBFC06050812EBFCF90103060516F8FBFAFEF9FD020AFE0A0C01FEFEFF05F40303EB07FD0106F9F601051206FE0E00FD03FD0E050C05F3FCF400F110F804FEFC0902080807F80CFAEF0A0F01EFF40D0305FBFF02020B040000F50706FD04FBFCFDFAFEF604FEF905FB0B08F6000C0E0700FFFB040209FD04F5F202030309FF02030D0A060B0404F0140201F7FEFE06F3030F06FD06F2FC04EFF6FDFA060407FCF30508070703EB03F9F70A010C0C020EFDF8FEFEFD0B0C0BF0FFF90714FB01F90FF60AFEFAF407FC0BEF1205F001FF0508FBF0F5FCFFFD04FBF9FE00FA0A090E0CFAF7F3FF0200020905F8FF050CFFFCF8FBFE110200FB060AEEFE15FD0BFB09070FFEFC12EEF80D06FD0108FB0805FA02FA110A0607FFECFA00F904F3FF06FB0C08050A000AF212FFFEF5F50204120305F803F5010508FCF80202F90F02F81705000007FB07FB120300FF07F7FA01F9FD0A0212F8FAFCF7FBF40705FB0B070204FAFFFEFC04020D08F5F70C04100FF9FCFDFBF7FFF3000A0800ED02000A0304FFFB00F7F80A0706070115FFFA01FAFAFBFD01F8FBFD02020204010AFDF703FDF2F10801FBF8F9FCFDF7FEFB12FC06FD0AEBF6F600FA0BFBFE06FFFEF9F9F3FD0701F3FF080CED10F500FC01F4090E050407010903040807060404F8F5FB05FFF1090CF0080BFDF30903F9F804FBEC00F60201F50302F6FF07060807F4EC05F8FE060DF8E208F300FDFCFDFEEB08F4090104F50106040E0B0D031608FDFF0E09F80DFE05F603FD10F705F9FB0609FCFA02030C03F806F806060506030807FE0107060005FA0EF81108F6EF0C06FC04F707FC04F202F7F60B0307F3030306080EFF0B0BF8F9FF0106FF07060104FE0A00F00204F9FE100708FCFCFDF002F4FAF6FE02FF07F30B08FE0E0CFAFA09FEFE0508100CFB0C030F0306FDF9010FFA03F6FDFA08F605FA08FFFDF407FCFF0600F416FB07FA0206FAFA03FA0507F3070E03100BFA01F602000C090004FCF6F30FFAF2FAF804F8FD00FE06060601030307060002000105FD04F608FF0101F90AF6100900FA0500F601F70909FDF1070C09FC02F4FC0805090DF10BF9010F05FBFB130DF20106F104F202FF06FCF1130CF8BC708C44E3D8A298F708196BC66F75F91732E5AF062775A9ACA36CE2DA64BCF62CAA4F63293C7A8F894856E9F263EB9CA4A0648141B4B0EA3A2D3364C36A83");
int smlen = 6209;
byte[] sm = Hex.decode("3FB2759E1BCA07730566D4FBBF3FC19A39C68F190095789EC555884EE97E9ACDB09109C5A9CA96658603D63A5A23C9D8DB7D8C54D07738E958BDA1E631ADED4329AE16B183374E1C3976DF1EC94BC79B773E8569973EDA418AC903B534A83B8B2F7CF7856ECED63F2626530EBBE3D22A734B457F2B1F168225753A0F3B030251CE7F414740D707D10A65BA6F7464E0291749AB9CC694A81CF54AB8AA21F3687D197FD3AD1EB37EAB1A19A67B1C396BC480B2CA19D650FCD9335FF245863787275540D7D1F5FCB278C558AD6CF15C154073A846B51754D45A2439FC08382E93CB657E1CFD3B3DEE5394C5F81513041A356D2EB938CF196B1B4BF96186ED75697745A3304BFA7ED23F77DFEBEC60A2C2441EE6B695CD17E2166956CACA25B09DE505187CBA23F62D86D0871BD6B8FD2D116743110DA3386A7401DAEF39506C9091B5D32675660A7380C5E837FB7206604C1A4931B8D6D452C5F4095EC1B7EF0CD11710DCB6A18749B788079AB1902135B62280D928167559696A3A2EAEFADE345F91D8CE49EBB109CC926C28077AB5B1B9BA946D929C2BB969061829A6E58A0FA5B168F5A1A7722CDF9A23CD75946CFAD9D624F4DB6A47C78EDA05EDBFE164F6FCB4C32BED70FC7D04BEAD5392F26ACF330B99A9A4140B5ACD0F215A16CC463F6BC4B7BD5D81B51F98C586E58C68BE97ADA48CED599933F2CDD994B9B52B3D93C44D9ACA191FDC0FD894C8AFD58B05D73432D6A90991FA87089B68D7CD7D1B136F7E3BF0FD266F82D13B1E456FBB6E29DF3D330E2D9440AC0AB5805C524463EDCA6D27ACB13B1B4F0881FF3A5A19E2D512A84192FDEA959FB87A555610DD44497EF3AAE91D075EECF7945FC2B8FC531B53FCD236687D05457999E1B3510D92FA433205E4E42E5B474E2FE7EAFD88BCD3375DAEDA0FAE4D40A63E09F2C99CD9620279BD1C34A8AD5B014CE8898B17AB33C1BD311CBF3CA6EBE0C9217AE3D09D978C0A8A41FC558A8D31BF37FEF59D1F46575CCEEA07F500E1CD85CD00FC20B449892E9C463C60342F526CA6F25F6291DC72330B5DA6C24CBC0CC75D8146CCFBD1FA47D36250EE5113BD9A54846E40FCDE4CF33E38328B48BCA3953C99495AB14B5AE2ADAE893181B1AD49EFF63D3A432DAA67572006A4001179363EAAA1701FF939D69FAA27EBD7BF71DA1029C84B4980251ED9C19AE67591AC719D2038D39BBF95B29B217A95CE10DDADF65CCD90A6BE492CFE0345D5AB3BA26F44846E96E330E853D68132B6F5B1B8913C02997551E55EF4A2C48B0EED24060FD549087E85ABDFADFB35B13D9A44EC677818EC64CF1446EB9F012160E5998272993377D8B751F87F8F370D904642EE9AEAEECF498ABEFD14FDFF1DB90C41401FC4F6DF93429A944ED1F90D834D7C5FBE5651FE291488605872926ED853C0B23E958DF376C75AE1909BCE043EA6AC3B035ED0350C07DE7749F7181E2DB5C5A4CFF983634AC34A4D416CBECAB4BC40C96EE2AB20A513E865B792F2BFCCDE4F9107CB9887F3FA77F4FA9D625EB32FB856036768F6E89424345BEC0CE938D71C37DE7C0CC130957C15D06E764D819AEB5E05328C50BBF7B01EA9F2952D5861705FE66A8EF3F22295C408259901ADF5E675A9D72125467B18C75A0CA5C84BE77E8A678FCB1A98EFD90496527B509CEE1DF01B1C535273B109E5ED1F8C6012EB79C7F5F5B9412A4F7DE6FFDE45F10F79BF1135A370C953BEF71EECBA75718A56441049B8C306E371B02250B179ADC42B9DC0963C9D6F991F66AFAF05B7ADFE8FFA71E8FF3BF14B08550A8499F543A8FA45C4BEF6D4635EAF889652E4EC4E24B7343C48F32C61C661291747B6FF99057C797B7FE93A58FC219D44C3973E1C11973F8CC00A29EB43235E0B9DE326F134FA55CFEF1B7D1AA00FFFCD8A3F9AFA1127EDD97C5D20D642203F65D5C5151AE773B3683ECE96726CC61C13997CC8C8F291D77779686E33BC09EEA6B8739122D2B90B78022F368B01833D94ECB2091BB45A45AA7784603502B1C54657F8A7F6E122C7B46393A466933BD806FB4411288DCABEA5E2788AB0C088AC9A45C587C087CA9FD4C131969BC9F2025DB8FA4484CBEF0C6C7D887FC22599C28593DC8D586ED81D38D35249D7E01FF6DB898CEE78B6214EF2C215B76E55FB0A65CA3EBBB5586F4255AA2BD802C5E2B60A6051B5C4BFDB48C4520290F2FB1BD5A6D156CA375C1E700765F9923ACA126D41CDBA2F2DF339D143870CDC2964B20483154EB8E8D59651C17FA7898176073DD353B629D327BA130F2E56A9594D177A1EE82847BA8F8AFDC669F7BE160F1EA6C6EFB747D9BAB0AC58DCDC8D33B5F7BAABE5274DD7D4B5AA439C713615D4B255814A5D2AF44D5382264F3F9F48872A38D36D1F15C90FB768C9B690EC989FF28CC135D29330D84EA33EB173271DDF8F5DF885076251370F59AC0E4DEEF640D5C04ECE8778C1D8F839462C5504916CBF555167836076C88A848903B3779E007745F3CCC8282CC526306DD63492F0A004A99821D1BBC065A255F4FDCF426BF97CF9933DA6A79B577919F7605446A25CB549A3057785522EF5A56E3288D42D714163F16A36EBC6607779691C7A1E5C420E24A64299AA03930DE872575A18A0D004CE7CCBE85BE4227F2146E176F0B0689BF51988ACAC366444E2281B5A81FA505E01223818185BE05074AF0C94C4B99F1AE6CB4033487DB1EA46B3A59A1B840845570F468F6E8BE1CEC813148FC421A4A62BEC0D8CE9DBE73AC17D44FE36C93DDCAB402EDB129BAA93795AE54608169F58BD8D115EC6392DBC2BEF8BBFB820827E76B266F480D4E7229B4119C35AE0AE1F222DAD22DD9CB3DBC76D80722F74E6BA87C7918BF33811850F3C9300E0FC880B889CD3EF2C3E2D63B21AB7A05867B460D7B96050BA8F812B79B29851CE5EA92202BB553972EB1ED8CB82289987EF0B314D2E787DDE3CAD96238D7BD182CC404F8B19F3FD4AA55C75DFEAFBF6228A37B72CF57152B4CF7A65872ECAACA21FAC42849BD2D1A5812196AC6A52EB51709710AE1BE2345465DD98D42135BDF67C1A022A338F4E60686746B62B2624FCA52A46DBE515714A2C8E9CF76B14D2A7FA3A734D27657DE99C8A0A5883A1A9ACD6568A0F5926E93AF2017CCF8623C7363CB52390A93FD1143C575AD3B35EEC387321EC87B93C16FF30DC8848DAD229B0CC561F75F64D948A0CD82AC62DDE0AB9DD13973E9B6A19DEC429620A6BD52F0203820F3D2DB2369D121A093E64071E926919BB8B7BB0C3E58EDD9A69F5ED8A1C7210290BFADCE31284BB69C5F02B5E8D13F19E159FF334DFC5AC94798E1C87230424AD32FAC495299F357F74D914FBA9349F0D26491444C5A7B2F0388ED098A182122BA1C1A8FB751C52376E4385449B06F92C3005EF39BDB758AB542F7B3BA43A9D6D3B1B88977712E0A8F08C898AF5DEA1DD4E83BFB763DCDDFD34EF33E208F98AF8F90AC173ADDAC9E701B3F014560A1D029598D91C6A5715A4102F2162B8FA44A4B9F002E0E1C8D2C5906745708648A690B8CA89E6ECDF1BA155EF1D256305D94D790A856C79E39A22470824AD09A52F96D15CA3B0C09D19CE23C7880D774AC00D59C3009183163FC98FF74F99E03A550283A8D300E1C618678E2F8EC2D69B15E822571ED7A5F35D6FCBE5AEEDB56FFB6352D60434CCA2C5DBA90E82AD9298FB1369A06A1FE93098C86AAEDBF846F59A3390845B8EDD2FB8D08622AF52DFF43F1918EFCE00D5184BC19D4C782027248DCD875EC1B9BDBFDC7DE08A92E4838AE7871B897D9F5BD23256B9686CB001B5B2DBE7D79B2094E2B26C103C38E81F51A75DB8871A6AD28AB5AADF94BECF43D928B155FD4900A3F0F2332B992C0091B8B21D8609BFE9A1EA84313ACB83ADBC8478320BEBEDA9AEF0BC1A9B3FC4BCEEC226D13AE4A5163DEA4D019B148EF98285717AC45A935CB71B103FFFD9B6739CF1916AF5F3D61AC37CD9584DB4A2F9A24D38F61B83232DD33680DC30C32CFB9DBA27A6BA2BB8B2159F3EDA7F37402212755225CD99CC1A37A99F2413A4C57D1A73D9BA1DD02E310DAD355A14FD01A3EED8F73008607775AF0A5BE621EC16F2111A5148F977E9F79460450CC21AC5FCD8EB04BBA536385563D288BF592D3ED7BFA3A12CD9F914CD0C35770A4A928705D25E13AB4A05C437E009595B14381A5E215870EB468B06607F30FD88CACD1C11478BAB4372B9438AE4DB6C606941BCE98322E0FDCF59009DFC5E7A4C483B00DDF2386A236272DBA0D8064F27B7C1BE90DA8B592CEA17EB33ABD5A7E19DD69A805A6AEB6773D0E8CF6450C3C2FE55E0B7180CDD8863106D75431482BDF9C182977B91330B0F0ABF796D5348CD84FE0036E52860F7801ECD8EA9E69784994D425CD5ED09A63251835A233ECA4CA9B9AF6CF154AE4465EBF089F19D32024AA2C144DA004F84A7A6F22C3D71600245AFF5F1E5A1D9D5CF24FCFC0228A534E9E6447CE7DDEBD8DCCAB3BC0933DB333A39031EEA2EF6B81A9BB34A7F67554FDFCA8048FCD97E76CC082A93FC4F98D32910B895682D1FB3F5E97E463131F56364283ECF2AE029149B9CB73817AEECA497360C23ADCE8111D86E2C7005ADD2C8C0503A99DC91D30F9D20866C17E296649B161416C181F136608A05434074D567CDE728F7B31B60B97C04055698E108E6A2A65A77EDBFBB2F05AEABABF166B6DF25DC3A70062050C779CBBA550A62F021CD6222165082EC37858901D0A46C815579AA998EEBF4B3387B6BD71B0F16EF5B68CBC6A47E1A3DE015331953F3D3510385F1E048ECB84E7EF929142225DF16234EBD672B686D297E5A9168C6F97EF6C97501D4E086E9D73D1994D3C38C912691D8F0E00E0E2F0CD95B42F3F70194E3183BF9537188D1105D44839F7F3EDAB0E10232DAA9FC673D6071F3589095B6C392A766F0DC9D9B8DD563B1EB82076CBBB7C5636C516D3F200A3B43D384E79042E936E51C3D1A4D3F621CF738EE51D6D29F22D658E2370410E841A5CA7C3122AC26BF26730AEC0B23D8CDB46B6F3E0C4EF15410B15D83BCDF67BF2AD9EDBBC3890F70670FBFF86A4645A58F1EB5C49C8F6973CFEE2E1E38879F59D1740172A52744BCD839CACAC94BC3DBDA37A97A2FBDAD6AE0CCDF080B57CDE454092D763A1020E176515075DCC37148AEDAC1C7BA090B12DBA260F08F04C689661EB926716ADF5FB7159822E226BD3DE2EBEE1F98685CBD99CCFB09A6C9FBFBE377A122FDC01B9B7FD82F759129A6D0B0FCC9E8AD566A19FA04C12B95C4154E35215F5F11255493AFD5E66B73D4E0572F01454D1848A13BC0A9374BDC90994B0004D9D2EAC8FB506E7CD764A1B2A9016BEDDBFB987741FB68265E5B05CDFA46A4A7A1BC25ABFEF37118CE8118BCF92F32C433E5252D8DFC195D4CE5699A2CDC1612EAA171423E6299F86C2A976DB4C1E421E140BFEE8406DC649C57FE27A77CAF3481B8687DB07F9921790AB5D502CED457C3538E688F143A69175A535101E1DEE82C5E39A579DA178CE233105BA5275E27E79441548D9E0F70CBEC5C7E179D6FD8E167F90C3A79D964CC23CFE18D6BC300753961BAEF0EC6AEDDDCFB1760B6DB3D0B667B8E120CD3F867017507783F223106CA7753D94BC60E65538589FA87807F7AB8791C1957C9510A9FBB91D513DE0ED7166155E911A5622A6A49DCF1DE3DEA4072E5DA75583B6EFE781FBFE31F7AE50F4FB8897586B8078144CAE9842CEDA34EB9E0B996E3CA46F11BCCA46ECB81DFB191236046294BB0120ADFDA2EC0DBB7D4CC6353BE9E64FD668710B1CCD305349C0B7877566E3DDC4E21985FA6000229004DFEA9F39421476A5E33C9163CDAE4C7676B1097E48C70DCBD4B39CE4AAC3ACFE73CE9C0D826B8A61CCA0DD2340C860E57496A1915BF065AA6557E26A151603D31CA94410E6C3E6D5AC80FF6F71DAE371D020CEBFB58EC73017C8D2D6D6221598678D752DBBA95113CDF71848D2E05D22613451627456A96D15BD277EE04884F3F296B0DC5314EBA22356CE09D4C0BB7246419D8674E4D10EF64B3F057D95E70BF1086ADDB100453D81E19939BB18AAC1343FABE39E308284A8D6A38BE238B6E0503A504727AC20B48A2C26C130E7A9678BEF07A1828ADDAB90740526F99C11D3217E001172CDD33D6D6E949A8ECB963C0A5283189AE8C98B21933FF691931758E842977A4F3F337252105CF22AD836F91E4FE5CE97FE4CE59EBCC4DA2A56D9413BD356BF65EF6FB2CA2201EB31BA56D717D2F9C038BFA76A52610AEA57D45500A1408AA8876AFF585A2FF309C3EC852B9568AE1CF9D97635759932E61D61DD6E67402912EC538BD0DF9D0BF25C862C91E301AC499E64C061FC14E89EC361A10FA0C85132BCEE7AF028C663BE3B0E12EAC52F691FB66E58E34EF2AF4C5A9DB0A0AB01DA372E39BB824F9D6AF847DF6A08F680B4F99466D6E6F404F0B92210D641375ECBC0C10A38DD1CF449A75BF2420A294EECD649013E160D793A247D1649E03A535292ED3D88EF7901DC845CD9703BF0948DB61C08EA89C33A3DA436874AD22ABEC43A5F2896833E15B3102A66E2A7D69D272FFFD4CC8979B9733718B95B605166DBE16ED1FD1C5CB2571E7D9FEAB2BAF693448C1E9613E8FBB25E05E2838390F3D9D2CA88D4B1739AEF4039A168E908D245ED38CA96F98569FFEA949946B76BF6F1DCA0B866CF0AE157314A28B76654EFECBABBA1C58ACB48E61587B42DE0F5BF8D5A3DB6C2E1D1632894D940CF10F71390B1DE07A4DEC38EA93A67439361E71FD8149D26DD8A21E9B98DA1FCC014052D0FF54DA3B2A335D0122FAA1332B193043A9119BAB7BC8F3209812B5280625C44ADBCB92907B6C387E0BDB1B9EDC0377C03E305C7333897588C2EFDDDC82E95ACAA329839EAE514F8E8A46A9126847933E73820922CF62528DB950EAF940F72A7383A486F5E210120987173A75A7D1B12097287F9146735A7BA110E22BE8B2FE720B2DA6CD8D59C8A32E5B43BCB9B42B78103BA2C25C13693AD4F2CF49A93D4B543AD7E4BE7E7304074E906D114E77C9448A8318E71F67C3C5A3B3379B40D44D9D1740C8D5003B03AA614099CB77B97A1B121DE9F75A69CCE3B7F1A2AF7B2B7702919F45544F778D5DFB9B7DB1C5AD98B36ECF231300178EF1154F4B93CE197815F6C5D2C3A3EC2A3E6F9FCC360B47D5A362BF4A41982ADE9C1377EE1162A9ADA02B966F502931045537D5CFA700C5EE0B818C8B280CDC07B1C34046A908D31CAE7681AB7A59AC371326211C170E9240B4B00222F628ED734ED39D5D0A4D1D4937202F82A531B94084FFB7033595460B41C5DC021D955C8EBDD8787140F60FFA21BFE680234BF5EE2F3F998FD9662A657BABDF4FE4A3191D7456B928BA2C0F08596015B803CE938522A88B44292223DA54BB1A0318ED439C5E0B1513AF667D1AEB8A0228AACDADDB02F689CD43FD15B8B10B12359EB83936F9191BD4671A3EF7F5998B70EBE29E551CBC4EEB214DD776AB62B20D1DB533CB2621AC0D00D88BE1E21243DCEAA1494EBD581992F6F9171B9FEBE919DA5B61A99D2D5C3A23EB447EAD4857F217CE80CC5765E014B851CDB56518160B69C56F4A1FB9542792390FF4DF407E1BE94408A2C856DAF3F95EF4E1D3CDFCD5ADC8F9BFC95F5D7A9AF8835DF3205FD81BCBB06DC10A72E57855DF16794F3B0F0EC83B36922267755777517875390D7E5520D46610B5008ECE82C08E20888C4785A1CADA07E929E1324EF710D48212B739EB5276A4C895C46BE8A405332DF93E93BED6C2075261F90DB4ABA03B4F7884B663268AE18C11479098611FCB7B0F9645E315819995DF3F3A45221A6DB71874A0585A197A01E67CBC85DB02A4B3ED2BEEE43031E7065BEB838C601BF2B161633BC9C04B506564E5DF517F1445140029665EFB724F5F5D88FF654AB18A6D65AB04E3F36720A26E4D9676148020D634FF0B74DCC828394F9AFCE7C8443097A0091FE8255F03D5A9B5AA00FE9E6056B11BB772AA6361C51938447B57F3195081483AA1DF6B5A71D050AAD3C855A770A1636019DB9EE75875D542848A285140B1B7FE054B4FFC719CAAA3B21FC5BE4B92F45D7A99254733303DDDA18AB271CCB2DACA27B600CB5CA50E857070CDB657FE559B21CFB3C596B24727501707B64A657E3B46FF1DA18842E0227C02261F88EBA6F9502856752D5D5B6208FE660645860E42A32786C3E54E8AF6DCD3E9ADB76BC0200A4A17B1CD89815301AC45EA3070EA99FEFA310B7FDBCFBE817EF28A04F44A76B38015A27985E5D9D706997C1DF67CCAC869D4FC9972AF47FE2908C3B1349728796903DA78F67562D693418345E041FC6F9E3A991299EC387C53CA9DDC0428001216637F92AA19BED77CAEBBC2BD3972AF5B07FADF92F54E82210ADFD3623939BDEB5D5BDB019D89A1EBDDD98C1B1D6BDD854EBB594516183B32C24F4C8DF07943CE77857AA0F10D27D3FF0DEDE7026F924E34153F9741CB2D7394401B20BCC53965ABDD26881FD3CF2AC83825E1DC1D1402F679BA8AC57737EDF7FE7860580424559DFD9042C88DFDE010943F3C3BFF61283143C46BA1E85CDE3284AE526CD5DEA7A401F07AF0A88586C599FF640B4B9C4C601E650D7E9E4092A940F9E4771084112F8D8A7FA8E5DC43DF8214242AB81E8FB5A097F80E01C9B436C125DD616FF680DBB16A24F90F45A42CC1A05111E062348D14C1EFFAD81C4D8D734FCBFBEADE3D3F8A039FAA2A2C9957E835AD55B22E75BF57BB556AC8");
doTestKAT(QTESLASecurityCategory.PROVABLY_SECURE_III, pk, sk, seed, msg, sm);
}
}