<?xml version="1.0" encoding="UTF-8"?>
<zaznam xmlns="http://portal.gov.cz/rejstriky/ISRS/1.2/"><data><identifikator><idSmlouvy>32208793</idSmlouvy><idVerze>34358897</idVerze></identifikator><odkaz>https://smlouvy.gov.cz/smlouva/34358897</odkaz><casZverejneni>2025-08-06T14:29:56+02:00</casZverejneni><smlouva><subjekt><datovaSchranka>jwaeuen</datovaSchranka><nazev>Krajská nemocnice Liberec, a.s.</nazev><ico>27283933</ico><adresa>Husova 1430/34, 46001 Liberec, CZ</adresa></subjekt><smluvniStrana><nazev>Johnson  &amp; Johnson, s.r.o.</nazev><ico>41193075</ico><adresa>Walterovo náměstí 329/1 Praha 5 - Jinonice</adresa></smluvniStrana><predmet>Rámcová dohoda s nemocnicí o spolupráci na cyklu školení</predmet><datumUzavreni>2025-08-06</datumUzavreni><cisloSmlouvy>S2025/00629/00</cisloSmlouvy><hodnotaBezDph>108900</hodnotaBezDph></smlouva><prilohy><priloha><data>77u/Sm9obnNvblN6Sm9obnNvbgoKUsOBbWNvdsOBIERPSE9EQSBzIE5FTU9DTklDw40sCm8gU1BPTFVQUkFDSSBOQSBDWUtMVSBTS3BMRU5JCnYgTkVNT0NOSUNJIFNLT0xJVEVMRSAodiBTVFJFRElTS1UKRVhDRUxFTkNFKQoKKGTDoWxlIGplbiDigJ5kb2hvZGEiKQoKVnp0YWh1acOtY8OtIHNlIGsgxI3DrXNsdSDFvsOhZG9zdGkgSENDOiBDWk9UT1QwMDYwNAoKTUFTVEVSIEFHUkVFTUVOVCBXSVRIIFRIRSBIT1NQSVRBTApGT1IgQ09PUEVSQVRJT04gT04gQSBDWUNMRSBPRgpUUkFJTklORyBTRVNTSU9OUyBBVCBUSEUgSU5TVFJVQ1RPUidTCkhPU1BJVEFMIChDRU5URVIgT0YgRVhDRUxMRU5DRSkKCihoZXJlaW5hZnRlciByZWZlcnJlZCB0byBhcyDigJxBZ3JlZW1lbnQiKQoKQXBwbGljYWJsZSB0byBIQ0MnUyByZXF1ZXN0IG51bWJlcjoKCiAKCnV6YXbFmWVuw6EgbWV6aToKCkpvaG5zb24gJiBKb2huc29uLCBzdi5yLm8uLCBzcG9sZcSNbm9zdCB6YWxvxb5lbsOhCmEgZXhpc3R1asOtY8OtIHBvZGxlIHByw6F2YSBDZXNrZSByZXB1Ymxpa3ksIHNlIHPDrWRsZW0KV2FsdGVyb3ZvIG7DoW3Em3N0w60gMzI5LzEsIEppbm9uaWNlLCAxNTggMDAgUHJhaGEKNSwgQ2Vza8OhIHJlcHVibGlrYSwgSUNPOiA0MTE5MzA3NSwgemFwc2Fuw6EKCnZvYmNob2Ruw61tIHJlanN0xZnDrWt1IHZlZGVuw6ltIE3Em3N0c2vDvW0Kc291ZGVtIHYgUHJhemUsIG9kZMOtbCBDLCB2bG/FvmthIDQ3MTEsCnphc3RvdXBlbmE6CgooZMOhbGUgamVuIOKAnkomSuKAnCk7CgphCgpLcmFqc2vDoSBuZW1vY25pY2UgTGliZXJlYywgYS5zLgoKc2Ugc8OtZGxlbTogSHVzb3ZhIDE0MzAvMzQsIExpYmVyZWMgfCAtIFN0YXLDqQpNxJtzdG8sIDQ2MCAwMSDigJ4KCklDOiAyNzI4MzkzMywgRElDOiBDWjI3MjgzOTMzLAoKWmFwc2Fuw6F5IG9iY2hvZG7DrW0gcmVqc3TFmcOta3UgdSBLcmFqc2vDqWhvCmVvdWR1IHYgVXN0w60gbmFkIExhYmVtLCBvZGTDrWwgQiwgdmxvxb5rYSAxNjUxLApPw5ouIDM2NjMxNDYxLzAxMDAsIHZlZGVuw6lobyAwIEtvbWVyxI1uw60KYmFua3kgTGliZXJlYwoKemFzdG91cGVub3U6CgooZMOhbGUgamVuIOKAnm5lbW9jbmljZeKAnCk7CgpKJkogYSBuZW1vY25pY2UgZMOhbGUgc3BvbGXEjW7EmyB0w6nFviBqYWtvIOKAnnNtbHV2bsOtCnN0cmFueS4KCnwuCsWga29sZW7DrQoKMS4gU3BvbGXEjW5vc3QgSiZKIHByb2hsYcWhdWplLCDFvmUgdXbDoWTDrSBuYSB0cmgKemRyYXZvdG5pY2vDqSBwcm9zdMWZZWRreSAo4oCedsO9cm9iZWsvdsO9cm9ia3nigJwpCgpDWk9UT1QwMDYwNAoKRW50ZXJlZCBpbnRvIGJ5IGFuZCBiZXR3ZWVuOgoKSm9obnNvbiAmIEpvaG5zb24sIHMuci5vLiwgYSBjb21wYW55CmVzdGFibGlzaGVkIGFuZCBleGlzdGluZyB1bmRlciB0aGUgbGF3cyBvZiB0aGUKQ3plY2ggUmVwdWJsaWMsIGhhdmluZyBpdHMgcmVnaXN0ZXJlZCBvZmZpY2UgYXQKV2FsdGVyb3ZvIG7DoW3Em3N0w60gMzI5LzEsIEppbm9uaWNlLCAxNTggMDAgUHJhZ3VlCjUsc3plY2ggUmVwdWJsaWMsIGNvbXBhbnkgaWRlbnRpZmljYXRpb24gbnVtYmVyCihJQ1EpOiA0MTE5MzA3NSwgcmVnaXN0ZXJlZCBpbiB0aGUgQ29tbWVyY2lhbApSZWdpc3RlciBtYWludGFpbmVkIGJ5IHRoZSBNdW5pY2lwYWwgQ291cnQgaW4KUHJhZ3VlLCBTZWN0aW9uIEMsIEluc2VydCA0NzExLCByZXByZXNlbnRlZCBieToKCihoZXJlaW5hZnRlciByZWZlcnJlZCB0byBhcyDigJxKJkoiKTsKYW5kCgpLcmFqc2vDoSBuZW1vY25pY2UgTGliZXJlYywgYS5zLgoKUmVnaXN0ZXJlZCBvZmZpY2U6IEh1c292YSAxNDMwLzM0LCBMaWJlcmVjIHwgLQpTdGFyw6kgTcSbc3RvLCA0NjAwMQoKSUM6IDI3MjgzOTMzLCBESUM6IENaMjcyODM5MzMsCgpyZWdpc3RlcmVkIGluIHRoZSBDb21tZXJlaWFsIFJlZ2lzdGVyIG1haW50YWluZWQKYnkgdGhlIFJlZ2lvbmFsIENvdXJ0IGluIFVzdMOtIG5hZCBMYWJlbSwgc2VjdGlvbgpCLCBJbnNlcnQgMTY1MSwKCkJhbmsgYWNjb3VudDogMzY2MzE0NjEvMDEwMCwgbWFpbmF0YWluZWQgYnkKQ29tbWVyY2lhbCBCYW5rIExpYmVyZWMKClJlcHJlc2VudGVkIGJ5OgoKKGhlcmVpbmFmdGVyIHJlZmVycmVkIHRvIGFzIHRoZSDigJxIb3NwaXRhbCIpOwoKV2hpbGUgSiZKIGFuZCB0aGUgSG9zcGl0YWwgam9pbnRseSBzaGFsbCBiZQpyZWZlcnJlZCB0byBhcyB0aGUg4oCcUGFydGllcyIuCgpUcmFpbmluZwoxLiBKJkogcmVwcmVzZW50cyB0aGF0IGl0IHBsYWNlcyBvbiB0aGUgbWFya2V0Cm1lZGljYWwgZGV2aWNlcyAo4oCcUHJvZHVjdChzKSIpIHVzZWQgaW4gdGhlCgogCgpKb2huc29uU3pKb2huc29uCgpwb3XFvsOtdmFuw6kgbsOhc2xlZHVqw61jw61tIHpwxa9zb2JlbToKesOha3Jva3kgKOKAnnrDoWtyb2t5KikuCgoyLiBOZW1vY25pY2UgcHJvaGxhxaF1amUsIMW+ZSBtw6EgdnVteXNsdQp1bW/Fvm5pdCBsw6lrYcWZxa9tIGEgamluw71tIHpkcmF2b3RuaWNrw71tCnByYWNvdm7DrWvFr20gcG92xJvFmWVuw71tIHNwb2xlxI1ub3N0w60gSiZKCijigJ7DusSNYXN0bsOtY2kgxaFrb2xlbsOt4oCcKSDDusSNYXN0IG5hIHrDoWtyb2PDrWNoCnByb3bDoWTEm27DvWNoIGzDqWthxZllbSB6xZlhZCB6YW3Em3N0bmFuY8WvCm5lbW9jbmljZSAo4oCexaFrb2xpdGVs4oCcKSwga3RlcsO9IGJ1ZGUgcHJvdsOhZMSbdAp6w6Frcm9reSBhIHBvc2t5dG5lIGtvbnp1bHRhY2UgayB2w71yb2Jrxa9tIGEvaGVibwpsw6lrYcWZc2vDvW0gdGVjaG5pa8OhbSB0w71rYWrDrWPDrW0gc2UgesOha3Jva8WvCijigJ7FoWtvbGVuw63igJwpLiBTa29sZWjDrSBidWRvdSBwcm9iw61oYXQgdnNvdWxhZHUKJiByw6FtY292w71tIHByb2dyYW1lbSB1dmVkZW7DvW0gdiBwxZnDrWxvemUgMS4KCm9wZXJhxI1uw60KCjMuIMWga29sZW7DrSBidWRvdSBvcmdhbml6b3bDoW5hIHRhaywgxb5lCgp2xaFpY2huaSDDusSNYXN0bsOtY2kgxaBrb2xlbsOtIHNlIHrDusSNYXN0bsOtIMWga29sZW7DrSBqZWhvCnNsZWRvdsOhbsOtbSBwxZnDrW1vIG5hIG9wZXJhxI1uw61tIHPDoWxlCijigJ5zdGFjaW9uw6Ftw60gxaFrb2xlbsOt4oCcKS4KCjQuIFrDoWtyb2sgYnVkZSBwcm92w6FkxJt0IHBvdXplIMWga29saXRlbCwKaGVkb2hvZGhvdS1JaSBzZSBzbWx1dm7DrSBzdHJhbnksIHZvYmplZGjDoXZjZQp1dmVkZW7DqSB2IMSNbC4gfC4gb2RzdC4gOCwgxb5lIGJ1ZGUgxaBrb2xpdGVsaSBhc2lzdG92YXQKZGFsxaHDrSDEjWxlbiBuZW1vY25pxI1uw61obyBwZXJzb27DoWx1IG5lYm8gxb5lIMWga29saXRlbApidWRlIGFzaXN0b3ZhdCBkYWzFocOtbXUgxI1sZW51IG5lbW9jbmnEjW7DrWhvCnBlcnNvbsOhbHUuIFXEjWFzdGjDrWNpIMWga29sZW7DrSBzZSB6w7rEjWFzdG7DrSDFoGtvbGVuw60KamFrbyBwb3pvcm92YXRlbGUuCgo1LiBaYSB2w71iZXIgemRyYXZvdG5pY2vDvWNoIHByb3N0xZllZGvFrywKesOha3Jva3UsIGEgdiByw6FtY2kgesOha3Jva3UsIGNoaXJ1cmdpY2vDvWNoIHRlY2huaWsKcG91xb5pdMO9Y2ggYmVoZW0gY2hpcnVyZ2lja8OpaG8gesOha3Jva3UsIG5lc2UKdsO9bHXEjW5vdSBvZHBvdmVkbm9zdCDFoGtvbGl0ZWwgYS9oZWJvIG9zb2JhCnByb3bDoWTEm2rDrWPDrSB6w6Frcm9rLgoKNi4gTmVtb2NuaWNlIHNvdWhsYXPDrSAmIHByb3ZlZGVuw61tIGN5a2x1Cm1heGltw6FsbsSbIDEyIHN0YWNpb27DoXJuw61jaCDFoGtvbGVuw60gdiBuZW1vY25pY2kKb2QgMDEuMDkuMjAyNSBkbyAwMS4wOS4yMDI3IHNlIHphcG9qZW7DrW0gbmVqbcOpbsSbCjIwIHBhY2llbnTFryBwb2RzdHVwdWrDrWPDrWNoIHrDoWtyb2suIFBva3VkIGJ1ZGUKc2t1dGXEjW7DvSBwb8SNZXQgcGFjaWVudMWvIHV2ZWRlbsO9Y2ggdiBwxZllZGNob3rDrQp2ZXRlIG5pxb7FocOtLCBuZW1vY25pY2Ugc291aGxhc8OtICYgcHJvdmVkZW7DrW0KxaBrb2xlbsOtICYgbWVuxaHDrW0gcG/EjXRlbSBwYWNpZW50xa8uCgo3LiBTcG9sZcSNbm9zdCBKJkogbcOhIHByw6F2byB6YWRhdCBuZW1vY25pY2kKb2JqZWRuw6F2a3kgdMO9a2Fqw61jw60gc2UgcmVhbGl6YWNlIMWga29sZW7DrQoo4oCeb2JqZWRuw6F2a3nigJwpLiBWem9yIG9iamVkbsOhdmt5IHR2b8WZw60gcMWZw61sb2h1IDIuCk5lbW9jbmljZSBuZXByb2RsZW7EmyB6YcWhbGUgc3BvbGXEjW5vc3RpIEomSgppbmZvcm1hY2UgdMO9a2Fqw61jw60gc2UgcMWZaWpldMOtIG5lYm8gb2Rtw610bnV0w60Kb2JqZWRuw6F2a3ksIHDFmWnEjWVtxb4gdHl0byBpbmZvcm1hY2UgYnVkb3UKcG9za3l0bnV0eSBlbGVrdHJvbmlja291IChlLW1haWwpIG5lYm8gcMOtc2Vtbm91CmZvcm1vdS4gTmljIHYgdGV0byBkb2hvZGUgbmV6YXZhenVqZSBzcG9sZcSNbm9zdApKJkogemFkw6F2YXQgamFrZWtvbGkgb2JqZWRuw6F2a3kuCgo4LiBKZWRub2hvIHN0YWNpb27DoXJuw61obyDFoGtvbGVuw60gc2Ugc23DrQp6w7rEjWFzdG5pdCBtYXhpbcOhbG7EmyA2IMO6xI1hc3Ruw61rxa8uIFNwb2xlxI1ub3N0IEomSgpqZSBvcHLDoXZuxJtuYSB1csSNaXQgw7rEjWFzdG7DrWt5IMWga29sZW7DrSBhIHBvc2t5dG5vdXQKbmVtb2NuaWNpIHNlem5hbSDDusSNYXN0bsOta8WvIMWga29sZW7DrSBoYSBmb3JtdWzDocWZaSwKamVob8W+IHZ6b3IgamUgcMWZaXBvamVuIGpha28gcMWZw61sb2hhIDMuIFNwb2xlxI1ub3N0Cgpmb2xsb3dpbmcgbWFubmVyOiBzdXJnaWNhbCBwcm9jZWR1cmVzCijigJxQcm9jZWR1cmVzIikuCjIuIFRoZSBIb3NwaXRhbCByZXByZXNlbnRzIHRoYXQgaXQgaWh0ZWhkcyB0bwoKZW5hYmxlIGRvY3RvcnMgYW5kIG90aGVyIGhlYWx0aGNhcmUgcHJvZmVzc2lvbmFscwpkZXNpZ25hdGVkIGJ5IEomSiAo4oCcVHJhaW5pbmcgUGFsdGljaXBhbnTEjykgdG8KcGFydGljaXBhdGUgaW4gdGhlIFByb2NlZHVyZXMgcGVyZm9ybWVkIGJ5IGEKZG9jdG9yIGZyb20gdGhlIEhvc3BpdGFsIHBlcnNvbm5lbCAo4oCcSW5zdHJ1Y3RvciIpCndobyB3aWxsIHBlcmZvcm0gUHJvY2VkdXJlcyBhbmQgcHJvdmlkZQpjb25zdWx0YXRpb25zIG9uIFByb2R1Y3RzIGFoZC9vciBtZWRpY2FsCnRlY2huaXF1ZXMgcmVsYXRpbmcgdG8gdGhlIFByb2NlZHVyZXMgKOKAnFRyYWluaW5nClNlc3Npb24iKS4gVHJhaW5pbmcgU2Vzc2lvbnMgc2hhbGwgYmUgY2FycmllZCBvdXQKaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBmcmFtZXdvcmsgYWdlbmRhCmluZGljYXRlZCBpaCBBcHBlbmRpeCAxLgoKMy4gVGhlIFRyYWluaW5nIFNlc3Npb24gc2hhbGwgYmUgb3JnYW5pemVkIGloCnN1Y2ggYSB3YXkgdGhhdDoKCmFsbCBUcmFpbmluZyBQYXJ0aWNpcGFodHMgcGFydGljaXBhdGUgaW4KdGhlIFRyYWluaW5nIFNlc3Npb24gYnkgb2JzZXJ2aWhnIGl0IGRpcmVjdGx5IGluIHRoZQpvcGVyYXRpbmcgdGhlYXRyZSAo4oCcU3RhdGlvbmFyeSBUcmFpbmluZwpTZXNzaW9uIikuCgo0LiBUaGUgUHJvY2VkdXJlIHNoYWxsIGJlIHBlcmZvcm1lZCBieSB0aGUKSW5zdHJ1Y3RvciBvbmx5LCB1bmxlc3MgdGhlIFBhcnRpZXMgYWdyZWUsIGluIHRoZQpPcmRlciByZWZlcnJlZCB0byBpaCBBcnRpY2xlIHwuKDgpLCB0aGF0IHRoZSBJbnN0cnVjdG9yCndpbGwgYmUgYXNzaXN0ZWQgYnkgYW5vdGhlciBIb3NwaXRhbCBwZXJzb25uZWwKbWVtYmVyIG9yIHRoYXQgdGhlIEluc3RydWN0b3Igd2lsbCBhc3Npc3QgYW5vdGhlcgpIb3NwaXRhbCBwZXJzb25uZWwgbWVtYmVyLiBUcmFpbmluZyBQYXJ0aWNpcGFodHMKd2lsbCBhdHRlbmQgdGhlIFRyYWluaW5nIFNlc3Npb24gYXMgb2JzZXJ2ZXJzLgoKNS4gVGhlIGNob2ljZSBvZiBtZWRpY2FsIGRldmljZXMsIHRoZQpQcm9jZWR1cmUgYW5kLCBhcyBwYXJ0IG9mIHRoZSBQcm9jZWR1cmUsIHN1cmdpY2FsCnRlY2huaXF1ZXMgdXNlZCBkdXJpbmcgdGhlIHN1cmdlcnksIHNoYWxsIGJlIHRoZQpzb2xlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBJbnN0cnVjdG9yIGFoZC9vciBvdGhlcgpwZXJzb24gcGVyZm9ybWluZyB0aGUgUHJvY2VkdXJlLgoKNi4gVGhlIEhvc3BpdGFsIGNvbnNlaHRzIHRvIHRoZSBjb25kdWN0IG9mIGEKY3ljbGUgb2YgdXAgdG8gMTIgc3RhdGlvbmFyeSBUcmFpbmluZyBTZXNzaW9ucyBhdAp0aGUgSG9zcGl0YWwgZnJvbSAwMS4wOS4yMDI1IHRvIDAxLjA5LjIwMjcgd2l0aCB0aGUKaW52b2x2ZW1lbnQgb2YgYXQgbGVhc3QgMjAgcGF0aWVudHMgc3ViamVjdGVkIHRvIHRoZQpQcm9jZWR1cmUuIElmIHRoZSBhY3R1YWwgbnVtYmVyIG9mIHBhdGllbnRzCnJlZmVycmVkIHRvIGluIHRoZSBwcmVjZWRpbmcgc2VodGVoY2UgaXMgbG93ZXIsIHRoZQpIb3NwaXRhbCBjb25zZWh0cyB0byB0aGUgcGVyZm9ybWFuY2Ugb2YgVHJhaW5pbmcKU2Vzc2lvbnMgd2l0aCBmZXdlciBwYXRpZW50cy4KCjcuIEomSiBzaGFsbCBoYXZlIHRoZSByaWdodCB0byBwbGFjZSBvcmRlciB3aXRoCnRoZSBIb3NwaXRhbCByZWdhcmRpbmcgdGhlIGNvbmR1Y3Qgb2YgVHJhaW5pbmcKU2Vzc2lvbnMgKOKAnE9yZGVycyIpLiBUaGUgdGVtcGxhdGUgT3JkZXIKY29uc3RpdHV0ZXMgQXBwZW5kaXggMi4gVGhlIEhvc3BpdGFsIHNoYWxsCnByb21wdGx5IHNlbmQgdG8gSiZKIGluZm9ybWF0aW9uIGNvbmNlcm5pbmcKYWNjZXB0YW5jZSBvciByZWZ1c2FsIG9mIHRoZSBPcmRlciwgd2hlcmVhcyBzdWNoCmluZm9ybWF0aW9uIHNoYWxsIGJlIHByb3ZpZGVkIGluIGEgZWxlY3Ryb25pYwptYW5uZXIgKGVtYWlsKSBvciB3cml0dGVuIGZvcm0uIE5vdGhpbmcgaW4gdGhpcwpBZ3JlZW1lbnQgc2hhbGwgb2JsaWdlIEomSiB0byBwbGFjZSBhbnkgT3JkZXJzLgoKOC4gQSBtYXhpbXVtIG9mIDYgVHJhaW5pbmcgUGFydGljaXBhaHRzIG1heQpwYXJ0aWNpcGF0ZSBpbiBhIHNpbmdsZSBzdGF0aW9uYXJ5IFRyYWluaW5nIFNlc3Npb24uCkomSiBzaGFsbCBiZSBhdXRob3JpemVkIHRvIGRlc2lnaGF0ZSBUcmFpbmluZwpQYXJ0aWNpcGFodHMgYW5kIHRvIHByb3ZpZGUgdGhlIEhvc3BpdGFsIHdpdGggYSBsaXN0Cm9mIFRyYWluaW5nIFBhcnRpY2lwYWh0cyBvbiBhIGZvcm0gYSBzcGVjaW1lbiBvZgoKIAoKSm9obnNvblN6Sm9obnNvbgoKSiZKIG9kcG92w61kw6EgemEgemFzbGFuw60gcG96dsOhbmVrIMO6xI1hc3Ruw61rxa9tCsWga29sZW7DrS4KCjkuIELEm2hlbSBzdGFjaW9uw6FybsOtaG8gxaBrb2xlbsOtIMWga29saXRlbCBuZWJvCm9zb2JhIHZlZG91Y8OtIMWga29sZW7DrSBzbcOtIHBvxb7DoWRhdCDDusSNYXN0bsOta2EKxaBrb2xlbsOtLCBhYnkgb3B1c3RpbCBvcGVyYcSNbsOtIHNhbCwgcG9rdWQgY2hvdmFuw60KdG9ob3RvIMO6xI1hc3Ruw61rYSDFoGtvbGVuw60gbmFydcWhdWplIMWZw6FkbsOpIHByb3bDoWTEm27DrQp6w6Frcm9rdSwgJiDEjcOtbcW+IG5lbW9jbmljZSBzb3VobGFzw60uCgoxMC4gUGxuxJtuw60gdMOpdG8gZG9ob2R5IG5lbW9jbmljw60gbmV6bmFtZW5hLArFvmVqZSBuZW1vY25pY2UgcG92aW5uYSBwxZlpam1vdXRqYWtla29saSB6w6F2YXpreQp6YW3Em8WZZW7DqSBuYSB6dsO9xaFlbsOtIMO6cm92bsSbIHByb2RlamUKemRyYXZvdG5pY2vDvWNoIHByb3N0xZllZGvFryBzcG9sZcSNbm9zdGkgSiZKLgoKMTEuIFNwb2xlxI1ub3N0IEomSiB1emF2xZllIHNhbW9zdGF0bmUgZG9ob2R5CnNlIMWga29saXRlbGksIGt0ZcWZw60gdmVkb3UgxaBrb2xlbsOtLiBEb2hvZHkgc3Rhbm92w60Kb2RtxJtueSDFoGtvbGl0ZWzFryB6YSBwcm92w6FkxJtuw60gxaBrb2xlbsOtLCBzxI3DrW3FvgpuZW1vY25pY2UgdMOtbXRvIHNvdWhsYXPDrS4KCjEyLiBOZW1vY25pY2UgbmVwb3NreXRuZSBzcG9sZcSNbm9zdGkgSiZKCsW+w6FkbsOpIGluZm9ybWFjZSBpZGVudGlmaWt1asOtY8OtIHBhY2llbnR5LgpJSS4KT2Rwb3bEm2Rub3N0CjEuIE5lbW9jbmljZSBzaSB6YWNob3bDoSBwbG5vdSBvZHBvdsSbZG5vc3QKCnbFr8SNaSBzdsO9bSBwYWNpZW50xa9tIGFzdmVtdSBwZXJzb27DoWx1IGJlegpvaGxlZHUgbmEgcHJvdsOhZMSbbsOtIGRvaG9keS4gU3BvbGXEjW5vc3QgSiZKCm9kcG92w61kw6EgemEgw7pqbXkgenDFr3NvYmVuw6kgemF2YWRhbWkgdsO9cm9ia8WvLAprdGVyw6kgcG9kbMOpaGFqw60gb2JlY27DvW0gcHJhdmlkbMWvbSBwcm8Kb2Rwb3ZlZG5vc3QgemEgxaBrb2R1IHpwxa9zb2Jlbm91IHZhZG91CnbDvXJvYmt1LiBOZW1vY25pY2Ugc2kgemFjaG92w6EgcGxhdG7DqSBwb2ppxaF0xJtuw60Kb2LEjWFuc2tvcHLDoXZuw60gb2Rwb3ZlZG5vc3RpLCBrdGVyZSBzZSB2enRhaHVqZQpuYSBsw6nEjWJ1IHBhY2llbnTFrywgdsSNZXRuZSBwcm92w6FkxJtuw60gesOha3Jva3UKxaBrb2xpdGVsZW0gYWppbsO9bWkgxI1sZW55IG5lbW9jbmnEjW7DrWhvIHBlcnNvbsOhbHUKxaBrb2xpdGVsZS4KCjIuIFBva3VkIGplIHRvIG1vxb5uw6kgYXZob2RuZSwgbmVtb2NuaWNlCnNvdWhsYXPDrSBzIHBvdcW+aXTDrW0gdsO9cm9ia8WvIGEgcG9zdHVwdSDFoGtvbGVuw60uCgozLiBOZW1vY25pY2UgesOtc2vDoSB2xaFlY2hueSBuZXpieXRuZQpzb3VobGFzeSBwYWNpZW50YSB2c291bGFkdSBzZSB6w6Frb25lbSDEjS4KMzcyLzIwMTEgU2IuLCB6w6Frb24gbyB6ZHJhdm90bsOtY2ggc2x1xb5iw6FjaAphIG9wcmF2bmVuw612ecW+YWRvdmFuZSB2IHNvdXZpc2xvc3RpIHNlIMWga29sZW7DrW0uCgo0LiBOZW1vY25pY2UgYnVkZSBwbG5pdCBkb2hvZHUgdiBzb3VsYWR1CnMgcG9kbcOtbmthbWkgc3BvbHVwcmFjZSBwxZlpcG9qZW7DvW1pIGpha28KcMWZw61sb2hhIDggYSBkb2Ryxb7DrSB2xaFlY2hueSBwbGF0bsOpIHDFmWVkcGlzeSB0w71rYWrDrWPDrQpzZSBDT1ZJRC0xOSBhL25lYm8gaW5mZWvEjW7DrWNoIG9uZW1vY27Em27DrSwKdsSNZXRuxJsgbmFwxZnDrWtsYWQgesOhdmF6a8WvIHTDvWthasOtY8OtY2ggc2UgQ09WSUQtMTkKc3Rhbm92ZW7DvWNoIHYgcMWZw61sb3plIDguCgp3aGljaCBpcyBhdHRhY2hlZCBhcyBBcHBlbmRpeCAzLiBKJkogc2hhbGwgYmUKcmVzcG9uc2libGUgZm9yIHNlbmRpbmcgaW52aXRhdGlvbnMgdG8gdGhlIFRyYWluaW5nClBhcnRpY2lwYW50cy4KCjkuIER1cmluZyB0aGUgU3RhdGlvbmFyeSBUcmFpbmluZyBTZXNzaW9uLCB0aGUKSW5zdHJ1Y3RvciBvciB0aGUgcGVyc29uIGNvbmR1Y3RpbmcgdGhlIFRyYWluaW5nCm1heSBhc2sgYW55IFRyYWluaW5nIFBhcnRpY2lwYW50IHRvIGxlYXZlIHRoZQpvcGVyYXRpbmcgdGhlYXRlciBpZiB0aGUgY29uZHVjdCBvZiBzdWNoIFRyYWluaW5nClBhcnRpY2lwYW50IGludGVyZmVyZXMgd2l0aCB0aGUgcHJvcGVyIHBlcmZvcm1hbmNlCm9mIHRoZSBQcm9jZWR1cmUsIHRvIHdoaWNoIHRoZSBIb3NwaXRhbCBjb25zZW50cy4KCjEwLiBFbnRydXN0aW5nIHRoZSBIb3NwaXRhbCB3aXRoIHRoZQpwZXJmb3JtYW5jZSBvZnRoaXMgQWdyZWVtZW50IHNoYWxsIG5vdCBtZWFuIHRoYXQKdGhlIEhvc3BpdGFsIGlzIG9ibGlnZWQgdG8gYWNjZXB0IGFueSBvYmxpZ2F0aW9ucwphaW1lZCBhdCBpbmNyZWFzaW5nIHRoZSBsZXZlbCBvZiBzYWxlIG9mIEomSiBtZWRpY2FsCmRldmljZXMuCgoxMS4gSiZKIHdpbGwgZW50ZXIgaW50byBzZXBhcmF0ZSBhZ3JlZW1lbnRzIHdpdGgKdGhlIEluc3RydWN0b3JzIGNvbmR1Y3RpbmcgVHJhaW5pbmcgU2Vzc2lvbnMuIFRoZQphZ3JlZW1lbnRzIHNoYWxsIHNldCB0aGUgSW5zdHJ1Y3RvcnMnIHJlbXVuZXJhdGlvbgpmb3IgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBUcmFpbmluZyBTZXNzaW9ucywgdG8Kd2hpY2ggdGhlIEhvc3BpdGFsIGhlcmVieSBjb25zZW50cy4KCjEyLiBUaGUgSG9zcGl0YWwgc2hhbGwgbm90IHByb3ZpZGUgYW55IHBhdGllbnQtCmlkZW50aWZ5aW5nIGluZm9ybWF0aW9uIHRvIEomSi4KCklJLgpMaWFiaWxpdHkKMS4gVGhlIEhvc3BpdGFsIHNoYWxsIHJldGFpbiBmdWxsIGxpYWJpbGl0eSB0b3dhcmRzCml0cyBwYXRpZW50cyBhbmQgaXRzIHBlcnNvbm5lbCByZWdhcmRsZXNzIG9mIHRoZQpleGVjdXRpb24gb2YgdGhlIEFncmVlbWVudC4gSiZKIGlzIHxpYWJ8ZSBmb3IKZGFtYWdlIGNhdXNlZCBieSBQcm9kdWN0KHMpIGRlZmVjdHMsIHdoaWNoIGFyZQpzdWJqZWN0IHRvIGdlbmVyYWwgcHJvZHVjdCBsaWFiaWxpdHkgcnVsZXMuIFRoZQpIb3NwaXRhbCBzaGFsbCBtYWludGFpbiBhIHZhbGlkIGNpdmlsIGxpYWJpbGl0eQppbnN1cmFuY2UgY292ZXJpbmcgdGhlIHRyZWF0bWVudCBvZiBwYXRpZW50cywKaW5jbHVkaW5nIHRoZSBwZXJmb3JtYW5jZSBvZnRoZSBQcm9jZWR1cmUgYnkgdGhlCgpJbnN0cnVjdG9yIGFuZCBvdGhlciBtZW1iZXJzIG9mIEhvc3BpdGFsCnBlcnNvbm5lbCBvZiB0aGUgSW5zdHJ1Y3Rvci4KCjIuIFRoZSBIb3NwaXRhbCBjb25zZW50cyB0byB0aGUgdXNlLCBhcyBmYXIgYXMKcG9zc2libGUgYW5kIGFwcHJvcHJpYXRlLCBvZiB0aGUgUHJvZHVjdHMgYW5kIHRoZQpUcmFpbmluZyBTZXNzaW9uIFByb2NlZHVyZS4KCjMuIFRoZSBIb3NwaXRhbCBzaGFsbCBvYnRhaW4gYXx8IG5lY2Vzc2FyeQpwYXRpZW50J3MgY29uc2VudHMgaW4gYWNjb3JkYW5jZSB3aXRoIEFjdCBOby4KMzcyLzIwMTEgQ29sbC4sIHRoZSBIZWFsdGggU2VydmljZXMgQWN0IGFuZAphdXRob3JpemF0aW9ucyByZXF1aXJlZCBpbiBjb25uZWN0aW9uIHdpdGggdGhlClRyYWluaW5nIFNlc3Npb24uCgo0LiBUaGUgSG9zcGl0YWwgc2hhbGwgcGVyZm9ybSB0aGUgQWdyZWVtZW50IGluCmFjY29yZGFuY2Ugd2l0aCB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdGhlCmNvb3BlcmF0aW9uIGF0dGFjaGVkIGFzIEFwcGVuZGl4IDggYW5kIHNoYWxsCmNvbXBseSB3aXRoIGFsbCBhcHBsaWNhYmxlIENPVklELTE5IGFuZC9vcgpjb21tdW5pY2FibGUgZGlzZWFzZXMgcmVndWxhdGlvbnMsIGluY2x1ZGluZyBidXQKCiAKCkpvaG5zb25TekpvaG5zb24KCk9kbcSbbmEKCjEuIEpha28gb2RtxJtudSB6YSB1bW/Fvm7Em27DrSBwcm92w6FkxJtuw60gxaBrb2xlbsOtCnVocmFkw60gc3BvbGXEjW5vc3QgSiZKIG5lbW9jbmljaSwgZG8gMzAgZG7FryBvZApwxZlpamV0w60gcGxhdG7DqSBmYWt0dXJ5L3Z5dcSNdG92w6Fow60sIHBvcGxhdGVrIDkwNzUgS8SNCihzbG92eTogRGV2ZXR0aXPDrWNzZWRtZGVzw6F0cGV0IGtvcnVuIMSNZXNrw71jaCkKYnJ1dHRvIHphIHN0YWNpb27DoXJuw60gxaBrb2xlbsOtLiBPZG3Em25hIHphaHJudWplIGRhxYgKeiBwxZlpZGFuw6kgaG9kbm90eSwgcG9rdWQgcG9za3l0b3bDoW7DrSBzbHXFvmJ5CnBvZGzDqWjDoSBEUEguIEZha3R1cmEvdnl1xI10b3bDoWjDrSBzZSBtdXPDrSB2eXN0YXZpdApuZWpwb3pkxJtqaSAxNSBkbsWvIHBvIHBsaGVow60gc2x1xb5lYiwgbmEga3RlcmUgc2UKdnp0YWh1amUgcMWZw61zbHXFoW7DoSBvYmplZG7DoXZrYS4gRmFrdHVydS92eXXEjXRvdsOhaMOtCmx6ZSB2eXN0YXZpdCBhIMO6aHJhZHUgbmEgamVqw61tIHrDoWtsYWTEmyBsemUgcHJvdsOpc3QKcG91emUgdmUgdnp0YWh1IGtlIHNsdcW+YsOhbSwga3RlcsOpIGJ5bHkgcG9za3l0bnV0eS4KVWhyYWRhIGZha3R1cnkgamUgcG9kbcOtbsSbbmEgZG9sb8W+ZWjDrW0gZG9rbGFkdSB6ZQpzdHJhbnkgbmVtb2NuaWNlLCBuw61txb4gbmVtb2NuaWNlIG9iamVrdGl2bsSbCnBvdHZyZMOtL3Byb2vDocW+ZSBwb3NreXRudXTDrSBmYWt0dXJvdmFoZSBzbHXFvmJ5LiBWCnDFmcOtcGFkxJssIMW+ZSBzcG9sZcSNbm9zdCBKJkogdnlob2Rub3TDrSB0YWtvdsO9CmRva2xhZC9wb3R2cnplaMOtIHphIG5lZG9zdGF0ZcSNbsO9LCBqZSBvcHLDoXZuxJtuYQp2ecW+w6FkYXQgc2kgb2QgbmVtb2NuaWNlIGRvZGF0ZcSNbsOpIHBvdHZyemVuw60KcHJva2F6dWrDrWPDrSBwcm92ZWRlbsOtIHDFmcOtc2x1xaFuw6lobyDFoGtvbGVow60vc2x1xb5ieS4KCjIuIFbFoWVjaG55IHBsYXRieSBuYSB6w6FrbGFkxJsgdMOpdG8gZG9ob2R5CmJ1ZG91IHByb3ZlZGVueSBiYW5rb3Zuw61tIHDFmWV2b2RlbSBhdsO9bHXEjWhlCm5hIGJhbmtvdm7DrSB1xI1ldHZlZGVow70gaGVtb2NuaWPDrXYgemVtaSwga2RlIG3DoQpzw61kbG8uIEZha3R1cnkgaGVibyB2ecO6xI10b3bDoW7DrSBtdXPDrSBzcGzFiG92YXQKbsOhbGXFvml0b3N0aSBzdGFub3ZlbmUgcGxhdG7DvW1pIHByw6F2bsOtbWkgcMWZZWRwaXN5LAp6ZWptZW5hIG7DoWxlxb5pdG9zdGkgc3Rhbm92ZW7DqSB2IMKpIDI5IHrDoWtvbmEgxI0uCjIzNS8yMDA0IFNiLiwgbyBkYW5pIHogcMWZaWRhbsOpIGhvZG5vdHksIHZlIHpuxJtuw60KcG96ZMSbasWhw61jaCBwxZllZHBpc8WvLCB2xI1ldG5lIMSNw6FzdGt5IG9kbcSbbnkKenbDvcWhZW7DqSBvIHDFmcOtc2x1xaFub3UgRFBIIHZlIHbDvcWhaSBkbGUgcMWZw61zbHXFoW7DvWNoCnByw6F2bsOtY2ggcMWZZWRwaXPFryBwbGF0bsO9Y2ggYSDDusSNaW5uw71jaCBrIGRhdHUKemRhbml0ZWxuw6lobyBwbG7Em27DrSwgcG9rdWQgc2UgRFBIIG5hIG9kbcSbbnUKcG91xb5pamUuCgozLiBTcG9sZcSNbm9zdCBKJkogbmVidWRlIHBvdmlubmEgdWhyYWRpdArFvsOhZG5vdSBzbHXFvmJ1LCBrdGVyw6EgbmVieWxhIGRvaG9kbnV0YQphIHNjaHbDoWxlbmEgc21sdXZuw61taSBzdHJhbmFtaSB2IG9iamVkbsOhdmNlLgoKNC4gTmVtb2NuaWNlIHByb2hsYcWhdWplLCDFvmUgYnVkZSBkb2Ryxb5vdmF0CnDFmcOtc2x1xaFuw6kgZGHFiG92w6kgesOha29ueS4gTmVtb2NuaWNlIGJ1ZGUKb2Rwb3bEm2RuYSB6YSBzcHLDoXZuw6kgdnlwb8WZw6Fkw6Fuw60gYXZ5a8OhesOhaMOtCnDFmcOtbcO9Y2ggZGFuw60gdMO9a2Fqw61jw61jaCBzZSBmYWt0dXJvdmFow71jaCBhIHDFmWlqYXTDvWNoCsSNw6FzdGVrLgoKNS4gU3BvbGXEjW5vc3QgSiZKIHByb2hsYcWhdWplLCDFvmUgamUgcGzDoXRjZW0KRFBILgo2LiBTcG9sZcSNbm9zdCBKJkogaGVwcm9wbGF0w60gbsOha2xhZHkgbmEKCnrDoWtyb2t5IHByb3bDoWTEm27DqSBiZWhlbSDFoGtvbGVuw60uIFNtbHV2bsOtIHN0cmFueQoKaG90IGxpbWl0ZWQgdG8gdGhlIG9ibGlnYXRpb25zIHJlZ2FyZGluZyBDT1ZJRC0xOQphcyBzZXQgb3V0IGloIEFwcGVuZGl4IDguCgpSZW11bmVyYXRpb24KCjEuIEFzIHRoZSByZW11bmVyYXRpb24gZm9yIGVuYWJsaW5nIHRoZQpjb25kdWN0IG9mdGhlIFRyYWluaW5nIFNlc3Npb24sIEomSiBzaGFsbCBwYXkgdGhlCkhvc3BpdGFsLCB3aXRoaW4gMzAgZGF5cyBvZiByZWNlaXB0IG9mIGEgdmFsaWQKaWh2b2ljZS9iaWxsLCBhIGZlZSBvZiBDWksgOTA3NSAoc2F5IGhpaGV0aG91c2FoZApzZXZlaHR5LWZpdmUgQ3plY2ggQ3Jvd25lKSBDemVjaCBDcm93bmUpIGdyb3NzCmZvciBhIHN0YXRpb25hcnkgVHJhaW5pbmcgU2Vzc2lvbi4gVGhlCnJlbXVuZXJhdGlvbiBpbmNsdWRlcyB2YWx1ZS1hZGRlZCB0YXggaWggc28gZmFyIGFzCnRoZSBwcm92aXNpb24gb2YgdGhlIHNlcnZpY2UgaXMgc3ViamVjdCB0byBWQVQuIFRoZQppaHZvaWNlL2JpbGwgc2hvdWxkIGJlIGlzc3VlZCBobyBsYXRlciB0aGFuIDE1IGRheXMKYWZ0ZXIgdGhlIHNlcnZpY2VzIGNvdmVyZWQgYnkgdGhlIHJlbGV2YW50IE9yZGVyCmhhdmUgYmVlbiBwZXJmb3JtZWQuIFRoZSBpaHZvaWNlL2JpbGwgbWF5IGJlCmlzc3VlZCBhbmQgdGhlIHBheW1lbnQgbWFkZSBvbiB0aGF0IGJhc2lzIG9ubHkgaW4KcmVzcGVjdCBvZiB0aGUgc2VydmljZXMgdGhhdCBoYXZlIGJlZW4gZGVsaXZlcmVkLgpUaGUgcGF5bWVudCBvZiB0aGUgaWh2b2ljZSBpcyBzdWJqZWN0IHRvIHRoZQpvYmplY3RpdmUgcHJvb2Ygb2Ygc2VydmljZSwgdGhhdCBtdXN0IGJlIHByb3ZpZGVkIGJ5CnRoZSBIb3NwaXRhbCBmb3IgdGhlIHNlcnZpY2VzIGlodm9pY2VkLiBJbiB0aGUgZXZlbnQKdGhhdCBKJkogY29uc2lkZXJzIHN1Y2ggYSBkb2N1bWVuVWNvbmZpcm1hdGlvbgp0byBiZSBpaHN1ZmZpY2llaHQsIEomSiBpcyBlaHRpdGxlZCB0byByZXF1ZXN0IGZyb20gdGhlCkhvc3BpdGFsIGFoIGFkZGl0aW9uYWwgY29uZmlybWF0aW9uIHByb3ZpaGcgdGhlCnBlcmZvcm1hbmNlIG9mIHRoZSByZWxldmFudCBUcmFpbmluZwpTZXNzaW9uL3NlcnZpY2UuCgoyLiBBbGwgcGF5bWVudHMgbWFkZSB1bmRlciB0aGlzIEFncmVlbWVudApzaGFsbCBiZSBtYWRlIGJ5IGJhbmsgdHJhbnNmZXIgYW5kIHNvbGVseSB0byB0aGUKYmFuayBhY2NvdW50IG1haW50YWluZWQgYnkgdGhlIEhvc3BpdGFsIGloIGl0J3MgdGhlCmNvdW50cnkgd2hlcmUgaXQgaGFzIGl0cyBzZWF0LiBJaHZvaWNlcyBvciBiaWxscyBzaGFsbApiZSBpc3N1ZWQgaWggY29tcGxpYW5jZSB3aXRoIGFwcGxpY2FibGUgbGVnYWwKcmVndWxhdGlvbnMsIGloIHBhcnRpY3VsYXIgU2VjdGlvbiAyOSBvZiB0aGUgQWN0IGhvCjIzNS8yMDA0IFNiLiwgb24gVmFsdWUgQWRkZWQgVGF4LCBhcyBhbWVuZGVkLAppbmNsdWRpbmcgdGhlIGFtb3VudCBvZiB0aGUgcmVtdW5lcmF0aW9uCmluY3JlYXNlZCBieSBWQVQgYXQgdGhlIHJhdGUgcHVyc3VhbnQgdG8KYXBwbGljYWJsZSBsYXdzIGloIGVmZmVjdCBhcyBhdCB0aGUgZGF0ZSBvZiB0YXhhYmxlCnN1cHBseSwgaWYgVkFUIGlzIGFwcGxpY2FibGUgaW4gcmVsYXRpb24gdG8gdGhlCnJlbXVuZXJhdGlvbi4KCjMuIEomSiBzaGFsbCBub3QgYmUgb2JsaWdlZCB0byBwYXkgZm9yIGFueQpzZXJ2aWNlIHdoaWNoIGhhcyBub3QgYmVlbiBhZ3JlZWQgYW5kIGFwcHJvdmVkCmJ5IHRoZSBQYXJ0aWVzIGluIHRoZSBPcmRlci4KCjQuIFRoZSBIb3NwaXRhbCBkZWNsYXJlcyB0aGF0IGl0IHdpbGwgY29tcGx5IHdpdGgKdGhlIHJlbGV2YW50IHRheCBsYXdzLiBUaGUgSG9zcGl0YWwgc2hhbGwgYmUKcmVzcG9uc2libGUgZm9yIHRoZSBjb3JyZWN0IHNldHRsZW1lbnQgYW5kCnJlcG9ydGluZyBvZiBkaXJlY3QgdGF4ZXMgcmVsYXRpbmcgdG8gdGhlIGFtb3VodHMKaWh2b2ljZWQgYW5kIHJlY2VpdmVkLgoKNS4gSiZKIGRlY2xhcmVzIHRoYXQgaXQgaXMgYSBWQVQgcGF5ZXIuCgo2LiBUaGUgY29zdHMgb2YgUHJvY2VkdXJlcyBwZXJmb3JtZWQgZHVyaW5nClRyYWluaW5nIFNlc3Npb25zIHNoYWxsIG5vdCBiZSByZWltYnVyc2VkIGJ5IEomSi4KCiAKCkpvaG5zb25TekpvaG5zb24KCnDFmWlqw61tYWrDrSwgxb5lIG9kbWVuYSBzcGxhdG7DoSBhIHVocmF6ZW5hIHBvZGxlIMSNbC4gfHx8Cm9kc3QuIDEgYnVkZSBwxZllZHN0YXZvdmF0IHBsbm91IG7DoWhyYWR1IHphIHBsbsSbbsOtCnTDqXRvIGRvaG9keS4KCjcuIFNtbHV2bsOtIHN0cmFueSB1em7DoXZhasOtLCDFvmUgdsO9xaFlIHV2ZWRlbsOhCm9kbWVuYSBwxZllZHN0YXZ1amUgc3ByYXZlZGxpdm91IHRyxb5uw60gaG9kbm90dQp0xJtjaHRvIHNsdcW+ZWIgYSBuZWJ5bGEgdXLEjWVuYSB6cMWvc29iZW0sIGt0ZXLDvSBieQpicmF8IHYgw7p2YWh1IHJvenNhaCBuZWJvIGhvZG5vdHUgamFrw71jaGtvbGkgamluw71jaAoKdnp0YWjFryBleGlzdHVqw61jw61jaCBtZXppIHNwb2xlxI1ub3N0w60gSiZKCmFuZW1vY25pY8OtLCBhxb5lIG5la2xhZGUgbmEgbmVtb2NuaWNpCnBvxb5hZGF2ZWssIGFieSBuYWt1cG92YWxhLCBwb3XFvsOtdmFsYSwKcHJvcGFnb3ZhbGEgbmVibyB6cHJvc3TFmWVka292YWxhIG5ha3VwCgpqYWtlaG9rb2xpIHbDvXJvYmt1IHNwb2xlxI1ub3N0aSBKJkogbmVibyBqZWrDrWNoCnDFmWlkcnXFvmVuw71jaCBzcG9sZcSNbm9zdMOtLgoKOC4gTmVtb2NuaWNlIG5lYnVkZSDDusSNdG92YXQgw7rEjWFzdG7DrWtvdmkKxaBrb2xlbsOtIMW+YWRuw6kgZG9kYXRlxI1uw6kgcG9wbGF0a3kgemEgamVobyDDusSNYXN0IG5hCsWga29sZW7DrS4KCjkuIFBhY2llbnTFr20sIHBsw6F0Y8WvbSBhbmkgdMWZZXTDrW0gc3RyYW7DoW0sIGpha28KanNvdSB2ZcWZZWpuw6kgbmVibyBzb3Vrcm9tZSB6ZHJhdm90bsOtIHBvamnFocWlb3ZueQpuZWJvIHNwb2xlxI1ub3N0aSwgbmVidWRvdSDDusSNdG92w6FueSDFvmFkbsOpCmRvZGF0ZcSNbsOpIHBvcGxhdGt5IHBseW5vdWPDrSB6IHBsbsSbbsOtIHTDqXRvIGRvaG9keQphbmkgeiBwcm92w6FkxJtuw60gxaBrb2xlbsOtLgoKMTAuIFBsYXRieSBwb2RsZSB0w6l0byBkb2hvZHkgYnVkb3UgcHJvdsOhZMSbbnkKbmEgYmFua292bsOtIMO6xI1ldCBuZW1vY25pY2U6CgphKSBKbcOpbm8gbWFqaXRlbGUKbmVtb2NuaWNlIExpYmVyZWMsIGEucy4KCmIpIMSMw61zbG8gw7rEjXR1OiAzNjYzMTQ2MS8wMTAwCgpJQkFOOiBDWjk2IDAxMDAgMDAwMCAwMDAwIDM2NjMgMTQ2MQoKU1dJRlQ6IEtPTUJDWlBQCgowKSBOw6F6ZXYgYmFua3k6IEtvbWVyxI1uw60gYmFua2EsIGFzLgoKw7rEjXR1OiBLcmFqcyBrw6EKCklWLgoKRG9iYSBwbGF0bm9zdGkgYSB1a29uxI1lbsOtIGRvaG9keQoKMS4gVGF0byBkb2hvZGEgbmFidWRlIHBsYXRub3N0aSBhIMO6xI1pbm5vc3RpCnYgZGVuIHBvZHBpc3UgZG9ob2R5IGEg4oCUIG5lYnVkZS1JaSB2eXBvdsSbemVuYQpkxZnDrXZlLCBqYWsgamUgdXZlZGVubyBuw63FvmUg4oCUIGJ1ZGUgdcSNaW5uYSBkbwowMS4wOS4yMDI3LiBBdsWhYWsgcG9kbGVoYS1JaSB2xaFhayB0YXRvIGRvaG9kYQp1dmXFmWVqbsSbbsOtIHYgcmVnaXN0cnUgc21sdXYsIG5hYsO9dsOhIMO6xI1pbm5vc3RpIGRsZQp1c3Rhbm92ZW7DrSB6w6Frb25hIG8gcmVnaXN0cnUgc21sdXYuCgoyLiBTbWx1dm7DrSBzdHJhbnkgdWplZG5hfHkgdXphdsWZZW7DrSB0w6l0bwpkb2hvZHkgdiBww61zZW1uw6kgZm9ybcSbLiBUYXRvIGRvaG9kYSBtxa/FvmUgYsO9dAptZW5lbmEgbmVibyB6cnXFoWVuYSwgcG9rdWQgbmVuw60gdiBkb2hvZMSbCnV2ZWRlbm8gamluYWssIHBvdXplIHDDrXNlbW7EmywgYSB0byB2IHDFmcOtcGFkxJsKem1lbiBkb2hvZHkgxI3DrXNsb3ZhbsO9bWkgZG9kYXRreSwga3RlcsOpIG11c8OtIGLDvXQKcG9kZXBzw6FueSBvcHLDoXZuxJtuw71taSB6w6FzdHVwY2kgb2JvdSBzbWx1dm7DrWNoCnN0cmFuLgoKVGhlIFBhcnRpZXMgYWNjZXB0IHRoYXQgdGhlIHJlbXVuZXJhdGlvbiBkdWUgYW5kCnBhaWQgcHVyc3VhbnQgdG8gQXJ0aWNsZSB8fHwoMSkgc2hhbGwgY29uc3RpdHV0ZSBmdXx8CmNvbXBlbnNhdGlvbiBmb3IgdGhlIHBlcmZvcm1hbmNlIG9mIHRoaXMKQWdyZWVtZW50LgoKNy4gVGhlIFBhcnRpZXMgYWNrbm93bGVkZ2UgdGhhdCB0aGUgYWJvdmUKcmVtdW5lcmF0aW9uIGNvbnN0aXR1dGVzIHRoZSBmYWlyIG1hcmtldCB2YWx1ZSBvZgpzdWNoIHNlcnZpY2VzIGFuZCBoYXMgbm90IGJlZW4gZGV0ZXJtaW5lZCBpbiB0aGUKbWFubmVyIHRoYXQgd291bGQgdGFrZSBpbnRvIGFjY291bnQgdGhlIHNjb3BlIG9yCnZhbHVlIG9mIGFueSBvdGhlciByZWxhdGlvbnNoaXBzIGV4aXN0aW5nIGJldHdlZW4KSiZKIGFuZCB0aGUgSG9zcGl0YWwgYW5kIHRoYXQgaXQgZG9lcyBub3QgbWFrZSB0aGUKSG9zcGl0YWwgcmVxdWlyZWQgdG8gcHVyY2hhc2UsIHVzZSwgcHJvbW90ZSBvcgppbnRlcm1lZGlhdGUgaW4gcHVyY2hhc2Ugb2YgYW55IHByb2R1Y3Qgb2YgSiZKIG9yCml0cyBhZmZpbGlhdGVzLgoKOC4gVGhlIEhvc3BpdGFsIHNoYWxsIG5vdCBjaGFyZ2UgYW55IGFkZGl0aW9uYWwKZmVlIHRvIHRoZSBUcmFpbmluZyBQYXJ0aWNpcGFudCBmb3IgaGlzL2hlcgpwYXJ0aWNpcGF0aW9uIGluIHRoZSBUcmFpbmluZyBTZXNzaW9uLgoKOS4gUGF0aWVudHMsIHBheWVycyBvciB0aGlyZCBwYXJ0aWVzIHN1Y2ggYXMKcHVibGljIG9yIHByaXZhdGUgaGVhbHRoIGluc3VyYW5jZSBzY2hlbWVzIG9yCmNvbXBhbmllcyBzaGFsbCBub3QgYmUgY2hhcmdlZCBhbnkgYWRkaXRpb25hbApmZWVzIHJlc3VsdGluZyBmcm9tIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGlzCkFncmVlbWVudCBvciBmcm9tIHRoZSBjb25kdWN0IG9mIFRyYWluaW5nClNlc3Npb25zLgoKMTAuIFBheW1lbnQgdW5kZXIgdGhpcyBBZ3JlZW1lbnQgc2hhbGwgYmUKbWFkZSB0byB0aGUgSG9zcGl0YWwncyBiYW5rIGFjY291bnQ6CgphKSBBY2NvdW50IGhvbGRlciBuYW1lOiBLcmFqc2vDoQpuZW1vY25pY2UgTGliZXJlYywgYS5zLgpiKSBBY2NvdW50IG51bWJlcjogMzY2MzE0NjEgLzAxMDAKSUJBTjogQ1o5NiAwMTAwIDAwMDAgMDAwMCAzNjYzIDE0NjEKU1dJRlQ6IEtPTUJDWlBQCmMpIEJhbmsgbmFtZTogS29tZXLEjW7DrSBiYW5rYSwgYXMuCklWLgpUZXJtIGFuZCB0ZXJtaW5hdGlvbgoxLiBUaGlzIEFncmVlbWVudCBzaGFsbCBiZSB2YWxpZCBhbmQgZWZmZWN0aXZlCgpmcm9tIHRoZSBkYXkgb2YgaXRzIHNpZ25pbmcgYW5kIOKAlCB1bmxlc3MgdGVybWluYXRlZAplYXJsaWVyIGFzIHByb3ZpZGVkIGZvciBiZWxvdyDigJQgc2hhbGwgYmUgZWZmZWN0aXZlCnVudGlsIDAxLjA5LjIwMjcuIEhvd2V2ZXIsIHNob3VsZCB0aGlzIEFncmVlbWVudApiZSBzdWJqZWN0IHRvIHB1YmxpY2F0aW9uIGluIHRoZSBDb250cmFjdHMgUmVnaXN0ZXIsCml0IHNoYWxsIGJlIGVmZmVjdGl2ZSBhY2NvcmRpbmcgdG8gcmVzcGVjdGl2ZQpwcm92aXNpb25zIG9mIHRoZSBDb250cmFjdHMgUmVnaXN0ZXIgQWN0LgoKMi4gVGhlIFBhcnRpZXMgaGF2ZSBhZ3JlZWQgdG8gY29uY2x1ZGUgdGhpcwpBZ3JlZW1lbnQgaW4gd3JpdHRlbiBmb3JtLiBUaGlzIEFncmVlbWVudCBtYXkgYmUKYW1lbmRlZCBvciB0ZXJtaW5hdGVkLCB1bmxlc3Mgb3RoZXJ3aXNlCnNwZWNpZmllZCBpbiB0aGUgQWdyZWVtZW50LCBvbmx5IGluIHdyaXRpbmcsIGluIHRoZQpjYXNlIG9mIGNoYW5nZXMgdG8gdGhlIEFncmVlbWVudCBieSBudW1iZXJlZAphbWVuZG1lbnRzIHRoYXQgbXVzdCBiZSBzaWduZWQgYnkgdGhlCmF1dGhvcml6ZWQgcmVwcmVzZW50YXRpdmVzIG9mIGJvdGggUGFydGllcy4KCiAKCkpvaG5zb25TekpvaG5zb24KCjMuIFBybyDDusSNZWx5IHTDqXRvIGRvaG9keSBzbG92YSDigJ5ww61zZW1uxJvigJwKbmVibyDigJ5ww61zZW1uw70gemFocm51asOtIGphayB2bGFzdG5vcnXEjW7Emwpwb2RlcHNhbm91IGxpc3Rpbm91LCB0YWsgaSBlbGVrdHJvbmlja8O9IGRva3VtZW50CnBvZGVwc2Fuw70gdXpuw6F2YW7DvW0gZWxla3Ryb25pY2vDvW0gcG9kcGlzZW0sCm5pa29saSB2xaFhayBwcm9zdMO9IGUtbWFpbCDEjWkgZmF4LgoKNC4gUG9rdWQgbsSba3RlcsOpIHplIHNtbHV2bsOtY2ggc3RyYW4gbmVidWRlCnBsbml0IG5lYm8gcG9ydcWhw60gcG9kc3RhdG5lIHVzdGFub3ZlbsOtIHTDqXRvCmRvaG9keSBhIGhlaGFwcmF2w60gdGVudG8gbmVkb3N0YXRlayBuZWJvCnBvcnXFoWVuw60gZG8gNyAoc2VkbWkpIGRuxa8gb2QgcMWZaWpldMOtIHDDrXNlbW7DqWhvCm96bsOhbWVuw60gb2QgZHJ1aMOpIHNtbHV2bsOtIHN0cmFueSwgYnVkZSBtw610IHRhdG8KZHJ1aMOhIHNtbHV2bsOtIHN0cmFuYSBwcsOhdm8gdnlwb3bEm2TEm3QgdHV0byBkb2hvZHUKc3bDvXBvdmVkaMOtIGRvYm91IDcgKHNlZG1pKSBkbsWvIG9kZSBkbmUKZG9ydcSNZW7DrSB2w71wb3bEm2RpIGRydWjDqSBzbWx1dm7DrSBzdHJhbsSbLgoKNS4gS3RlcsOha29saXYgemUgc21sdXZuw61jaCBzdHJhbiBqZSBvcHLDoXZuxJtuYQpww61zZW1uxJsgdnlwb3bEm2TEm3QgdHV0byBkb2hvZHUgYmV6IHVkw6Fuw60gZMWvdm9kdQomIHbDvXBvdsSbZG7DrSBkb2JvdSwga3RlcsOpIMSNaW7DrSBkdmEgdMO9ZG55IG9kZSBkbmUKZG9ydcSNZW7DrSB2w71wb3bEm2RpIGRydWjDqSBzbWx1dm7DrSBzdHJhbsSbLgoKNi4gUGxhdG5vc3QgYXbDvWtsYWQgZG9ob2R5IGFvYmplZGjDoXZlaywKcGxoZWjDrSB6w6F2YXprxa8gcGx5bm91Y8OtY2ggeiBkb2hvZHkKYSBvYmplZG7DoXZlaywgZMWvc2xlZGt5IG5lcGxuxJtuw60gbmVibwpuZXNwcsOhdm7DqWhvIHBsaGVow60gaSBkxa9zbGVka3lqZWppY2ggbmVwbGF0bm9zdGkgc2UKxZnDrWTDrSDEjWVza8O9bSBwcsOhdmVtLiBWxaFlY2hueSBzcG9yeSBwbHlub3Vjw60KeiBwbG7Em27DrSB0w6l0byBkb2hvZHkgYnVkb3UgcG9kbMOpaGF0IHByYXZvbW9jaQrEjWVza8O9Y2ggc291ZMWvIGFidWRvdSByb3pob2RvdsOhbnkgdmVjbmUgYQptw61zdG7EmyBwxZnDrXNsdcWhbsO9bSBzb3VkZW0uCgo3LiBLdGVyw6lrb2xpIHplIHNtbHV2bsOtY2ggc3RyYW4gbcWvxb5lCnMgb2thbcW+aXRvdSDDusSNaW5ub3N0aSBrZHlrb2xpIHZ5cG92ZWRldCBqYWtvdWtvbGkKb2JqZWRuw6F2a3UsIHBva3VkIG5lbsOtIHNjaG9wbmEgcGxuaXQgc3ZlIHrDoXZhemt5CnogZMWvdm9kxa8gcMWZw61tbyBzb3V2aXNlasOtY8OtY2ggcyBwbGF0bsO9bWkgcMWZaWphdMO9bWkKb3BhdMWZZW7DrW1pIHYgZMWvc2xlZGt1IHBhbmRlbWllIENPVklELTE5Owp2dGFrb3ZlIHNpdHVhY2kgbmVidWRlIG3DrXQgxb7DoWRuw6kgemUgc21sdXZuw61jaApzdHJhbiDFvsOhZG7DqSBkYWzFocOtIHrDoXZhemt5IHbFr8SNaSBkcnVow6kgc21sdXZuw60Kc3RyYW5lLCB2xI1ldG5lIHrDoXZhemvFryB6YXBsYXRpdCB6YSB6Ym/FvsOtIG5lYm8Kc2x1xb5ieSwga3RlcsOpIG5lYnlseSBza3V0ZcSNbmUgZG9kw6FueSBwxZllZAp2eXBvdsSbemVow61tIG9iamVkbsOhdmt5LiBLcm9txJsgdG9obyBtxa/FvmUKc3BvbGXEjW5vc3QgSiZKIHpydcWhaXQgamFrZWtvbGkgc2V0a8OhbsOtIHBvZGxlIHTDqXRvCmRvaG9keSwgYmV6IHZ6bmlrdSBwb3Zpbm5vc3RpLCB2IHDFmcOtcGFkxJsgZXBpZGVtaWUKbmVibyBwYW5kZW1pZSwgdiBzb3V2aXNsb3N0aSBzIG7DrcW+IHZ5ZGFqw60gcMWZw61zbHXFoW7DqQpvcmfDoW55IHVwb3pvcm7Em27DrSBoZWJvIHZhcm92w6Fuw60gcHJvIGNlc3R1asOtY8OtLAprdGVyw6EgbmVkb3BvcnXEjXVqw60gc2plZG7DoXbDoW7DrSBjZXN0IGRvIG3DrXN0YQprb27DoW7DrSBzY2jFr3preSwgcG9rdWQgdG8gbmVuw60gbmV6Ynl0bsSbLCBuZWJvCnYgcMWZw61wYWTEmyBqYWvDqWtvbGkgamluw6kgbWltb8WZw6FkbsOpIHVkw6Fsb3N0aSBtaW1vCmtvbnRyb2x1IGt0ZXLDqWtvbGkgemUgc21sdXZuw61jaCBzdHJhbiwgdmplasOtbcW+Cgpkxa9zbGVka3UgYnVkZSBvcmdhbml6b3bDoW7DrSBzZXRrw6Fuw60gbmVibwpwb3NreXRvdsOhbsOtIHNsdcW+ZWIgcG9kbGUgdMOpdG8gZG9ob2R5CmhlZG9wb3J1xI1vdmFoZSwgbmV6w6Frb25uw6kgbmVibyBuZW1vxb5uw6ksCgpuZWJvIHBva3VkIGplIHByYXZkxJtwb2RvYm7DqSwgxb5lIHNldGvDoW7DrSBidWRlCnDFmWVkc3Rhdm92YXQgdsO9em5hbW5vdSBocm96YnUgcHJvIHpkcmF2w60KYSBiZXpwZcSNbm9zdCDDusSNYXN0bsOta8WvLgoKMy4gRm9yIHRoZSBwdXJwb3NlcyBvZiB0aGlzIEFncmVlbWVudCB3b3JkcwrigJxpbiB3cml0aW5nIiBvciDigJx3cml0dGVuIiBpbmNsdWRlIGVpdGhlciBhIHBhcGVyCmRvY3VtZW50IHNpZ25lZCBieSBoYW5kIG9yIGFuIGVsZWN0cm9uaWMKZG9jdW1lbnQgc2lnbmVkIHdpdGggYSByZWNvZ2hpc2VkIGVsZWN0cm9uaWMKc2lnbmF0dXJlLCBidXQgZG8gbm90IGluY2x1ZGUgYSBtZXJlIGUtbWFpbCBvciBmYXguCgo0LiBJZiBhbnkgUGFydHkgZmFpbHMgdG8gcGVyZm9ybSBvciBicmVhY2hlcyBhCm1hdGVyaWFsIHByb3Zpc2lvbiBvZnRoaXMgQWdyZWVtZW50IGFuZCB0aGVuIGRvZXMKbm90IHJlbWVkeSBzdWNoIGZhaWx1cmUgb3IgYnJlYWNoIHdpdGhpbiA3IChzZXZlbikKZGF5cyBvZiByZWNlaXZpbmcgYSB3cml0dGVuIG5vdGljZSBmcm9tIHRoZSBvdGhlcgpQYXJ0eSwgc3VjaCBvdGhlciBQYXJ0eSBzaGFsbCBoYXZlIHRoZSByaWdodCB0bwp0ZXJtaW5hdGUgdGhpcyBBZ3JlZW1lbnQgdXBvbiBub3RpY2Ugb2YgNyAoc2V2ZW4pCmRheXMgY29tbWVoY2loZyBvbiB0aGUgZGF5IG9uIHdoaWNoIHRoZSBub3RpY2UKaXMgZGVsaXZlcmVkIHRvIHRoZSBvdGhlciBQYXJ0eS4KCjUuIEVpdGhlciBvZiB0aGUgUGFydGllcyBpcyBlaHRpdGxlZCB0byB0ZXJtaW5hdGUKdGhpcyBBZ3JlZW1lbnQgaWggd3JpdGluZyB3aXRob3V0IGNhdXNlIHdpdGggYSB0d28Kd2Vla3MnIG5vdGljZSBwZXJpb2QgY29tbWVoY2loZyBvbiB0aGUgZGF5IG9uCndoaWNoIHRoZSBub3RpY2UgaXMgZGVsaXZlcmVkIHRvIHRoZSBvdGhlciBQYXJ0eS4KCjYuIFRoZSB2YWxpZGl0eSBhbmQgaW50ZXJwcmV0YXRpb24gb2YgdGhlCkFncmVlbWVudCBhbmQgdGhlIE9yZGVycywgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZQpvYmxpZ2F0aW9ucyBhcmlzaWhnIHRoZXJlZnJvbSwgdGhlIGNvbnNlcXVlbmNlcyBvZgpob24tcGVyZm9ybWFoY2Ugb3IgaW1wcm9wZXIgcGVyZm9ybWFuY2UgYXMgd2VsbAphcyB0aGUgY29uc2VxdWVuY2VzIG9mIHRoZWlyIGludmFsaWRpdHkgc2hhbGwgYmUKZ292ZXJoZWQgYnkgdGhlIEN6ZWNoIGxhdy4gQXx8IGRpc3B1dGVzIGFyaXNpaGcgb3V0Cm9mIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGlzIEFncmVlbWVudCBzaGFsbCBiZQpzdWJtaXR0ZWQgdG8gdGhlIGp1cmlzZGljdGlvbiBvZiB0aGUgQ3plY2ggY291cnRzCmFuZCBzaGFsbCBiZSBzZXR0bGVkIGJ5IHRoZSBjb3VydHdpdGggc3ViamVjdCBtYXR0ZXIKYW5kIHRlcnJpdG9yaWFsIGp1cmlzZGljdGlvbi4KCjcuIEVpdGhlciBQYXJ0eSBtYXkgdGVybWluYXRlIGFueSBPcmRlciB3aXRoCmltbWVkaWF0ZSBlZmZlY3QgYXQgYW55IHRpbWUgaWYgaXQgaXMgdW5hYmxlIHRvCmNvbXBseSB3aXRoIGl0cyBvYmxpZ2F0aW9ucyBmb3IgcmVhc29ucyBkaXJlY3RseQpyZWxhdGVkIHRvIHRoZSBtZWFzdXJlcyBpaCBwbGFjZSBhcyBhIHJlc3VsdCBvZiB0aGUKQ09WSUQtMTkgcGFuZGVtaWU7IGloIHN1Y2ggYSBzaXR1YXRpb24sIG5laXRoZXIKUGFydHkgc2hhbGwgaGF2ZSBhbnkgZnVydGhlciBvYmxpZ2F0aW9ucyB0b3dhcmRzCnRoZSBvdGhlciBQYXJ0eSwgaW5jbHVkaW5nIG9ibGlnYXRpb25zIHRvIHBheSBmb3IKZ29vZHMgb3Igc2VydmljZXMgaG90IGFjdHVhbGx5IGRlbGl2ZXJlZCBiZWZvcmUKdGVybWluYXRpb24gb2YgdGhlIE9yZGVyLiBJbiBhZGRpdGlvbiwgSiZKIG1heQpjYW5jZWwgYW55IG1lZXRpbmcgdW5kZXIgdGhpcyBBZ3JlZW1lbnQsIHdpdGhvdXQKbGlhYmlsaXR5LCBpbiB0aGUgZXZlbnQgb2YgYW4gZXBpZGVtaWUgb3IgcGFuZGVtaWUgaWgKY29ubmVjdGlvbiB3aXRoIHdoaWNoIHRoZSBjb21wZXRlbnQgYXV0aG9yaXRpZXMKaXNzdWUgdHJhdmVsIGFsZXJ0cyBvciB3YXJoaWhncyBhZHZpc2luZyBhZ2FpbnN0CmFycmFoZ2loZyB0cmF2ZWwgdG8gdGhlIG1lZXRpbmcgdmVudWUgaWYgaG90Cm5lY2Vzc2FyeSwgb3IgaW4gdGhlIGV2ZW50IG9mIGFueSBvdGhlciBlbWVyZ2VuY3kKYmV5b25kIHRoZSBjb250cm9sIG9mIGVpdGhlciBQYXJ0eSwgcmVuZGVyaW5nIHRoZQpvcmdhbml6YXRpb24gb2YgdGhlIG1lZXRpbmcgb3IgcHJvdmlzaW9uIG9mIHRoZQpzZXJ2aWNlcyB1bmRlciB0aGlzIEFncmVlbWVudCB1aGFkdmlzYWJsZSwgaWxsZWdhbApvciBpbXBvc3NpYmxlLCBvciBpZiB0aGUgbWVldGluZyBpcyBsaWtlbHkgdG8gcG9zZSBhCnNpZ25pZmljYW50IHRocmVhdCB0byB0aGUgaGVhbHRoIGFuZCBzYWZldHkgb2YgdGhlCnBhcnRpY2lwYW50cy4KCiAKCkpvaG5zb25TekpvaG5zb24KClYuClV2ZcWZZWpuxJtuw60gZG9ob2R5IHYgcmVnaXN0cnUgc21sdXYKCjEuIFNtbHV2bsOtIHN0cmFueSBzZSBkb2hvZGx5LCDFvmUgcHJvIHDFmcOtcGFkLCDFvmUKdGF0byBkb2hvZGEgdnnFvmFkdWplIHV2ZcWZZWpuxJtuw60gdiByZWdpc3RydSBzbWx1dgpkbGUgesOha29uYSDEjS4gMzQwLzIwMTUgU2IuLCBvIHp2bMOhxaF0bsOtY2gKcG9kbcOtbmvDoWNoIMO6xI1pbm5vc3RpIG5la3RlcsO9Y2ggc21sdXYsCnV2ZcWZZWrFiG92w6Fuw60gdGVjaHRvIHNtbHV2IGEgbyByZWdpc3RydSBzbWx1diwgdmUKem7Em27DrSBwb3pkxJtqxaHDrWNoIHDFmWVkcGlzxa8gKOKAnnrDoWtvbiBvIHJlZ2lzdHJ1CnNtbHV24oCcKSwgdXZlxZllam7Em27DrSBkb2hvZHkgemFqaXN0w60gbmVtb2NuaWNlLCBhIHRvCm5lanBvemTEm2ppIGRvIDMwIGRuw60gb2QgdXphdsWZZW7DrSB0w6l0byBkb2hvZHkgYQpwbG7EmyB2IHNvdWxhZHUgcyBwb8W+YWRhdmt5IHrDoWtvbmEgbyByZWdpc3RydQpzbWx1di4KCjIuIE5lbW9jbmljZSBzZSB6YXZhenVqZToKCihhKSB6bmXEjWl0ZWxuaXQgdiBkb2hvZMSbIHDFmWVkIGplasOtbSBvZGVzbMOhbsOtbQpzcHJhdmNpIHJlZ2lzdHJ1IHNtbHV2IHR5IGplasOtIMSNw6FzdGksIGt0ZXLDqSBqc291IGRsZQp6w6Frb25hIG8gcmVnaXN0cnUgc21sdXYgdnlsb3XEjWVueSB6IHV2ZcWZZWpuxJtuw60sIGEKdG8gemVqbcOpbmEgdHlqZWrDrSDEjcOhc3RpLCBrdGVyw6kgb2JzYWh1asOtIG9zb2Juw60gw7pkYWplCnphbWVzdG5hbmN1IMSNaSBqaW7DvWNoIHByYWNvdm7DrWvFryBzcG9sZcSNbm9zdGkgSiZKCm5lYm8gb2JjaG9kbsOtIHRhamVtc3R2w60gc3BvbGXEjW5vc3RpIEomSiwgbyBqZWhvxb4Kem5lxI1pdGVsbmVuw60gc3BvbGXEjW5vc3QgSiZKIGUtbWFpbGVtIHBvxb5hZGEKbmVtb2NuaWNpLgoKKGIpIHZ5cGxuaXQgdmUgZm9ybXVsw6HFmWkgcHJvIHV2ZcWZZWpuxJtuw60gZG9ob2R5CnYgcmVnaXN0cnUgc21sdXYgYWRyZXN1IGRhdG92w6kgc2NocsOhbmt5CnNwb2xlxI1ub3N0aSBKJkosIGFieSBzcHJhdmNlIHJlZ2lzdHJ1IHNtbHV2IG1vaGwKc3BvbGXEjW5vc3RpIEomSiB6YXNsYXQgcG90dnJ6ZW7DrSBvIHV2ZcWZZWpuxJtuw60KcG9kbGUgwqkgNSBvZHN0LiA0IHrDoWtvbmEgbyByZWdpc3RydSBzbWx1di4KCjMuIE5ldXZlxZllam7DrS1JaSBuZW1vY25pY2UgdHV0byBkb2hvZHUgdgpyZWdpc3RydSBzbWx1diB2ZSBsaMWvdMSbIHVqZWRuYW5lIHYgxI1sLiBWLiBvZHN0LiAxLApidWRlIHNwb2xlxI1ub3N0IEomSiBvcHLDoXZuxJtuYSB0dXRvIGRvaG9kdQp1dmXFmWVqbml0IHYgcmVnaXN0cnUgc21sdXYgc2FtYS4KCjQuIFVqZWRuYW7DrSB0b2hvdG8gxI1sLiBWLiBzZSBwb3XFvmlqw60gbXV0YXRpcwptdXRhbmRpcyB0YWvDqSBuYSB1dmXFmWVqxYhvdsOhbsOtIGpha2Vob2tvbGkgZG9kYXRrdQprIHTDqXRvIGRvaG9kZSB2IHJlZ2lzdHJ1IHNtbHV2LgoKVkkuClrDoXbEm3JlxI1uw6EgdXN0YW5vdmVuw60KCjEuIFRhdG8gZG9ob2RhIHDFmWVkc3RhdnVqZSB1cGxub3UgZG9ob2R1Cm1lemkgc21sdXZuw61taSBzdHJhbmFtaSB2ZSB2enRhaHUga2plasOtbXUKcMWZZWRtxJt0dSBhIG5haHJhenVqZSB2xaFlY2huYSB1amVkbmFuw60sIGRvaG9keQpuZWJvIHNvdWhsYXN5IHTDvWthasOtY8OtIHNlIHDFmWVkbcSbdHUgdMOpdG8gZG9ob2R5CnZ5asOhZMWZZW7DqSBzbWx1dm7DrSBzdHJhbmFtaSwgxI1sZW55IGplamljaCBvcmfDoW7FrwpuZWJvIHphbWVzdG5hbmNpIHDFmWVkIHBvZHBpc2VtIGRvaG9keS4KCjIuIFBvZGxlIHTDqXRvIGRvaG9keSBidWRlIHZ6dGFoIG1lemkKc3BvbGXEjW5vc3TDrSBKJkogYSBuZW1vY25pY8OtIHZ6dGFoZW0gbmV6w6F2aXNsw71jaApkb2RhdmF0ZWzFry4gVHV0byBkb2hvZHUgYW5pIMW+w6FkbsOpIHNsdcW+YnkKClYuCgpEaXNjbG9zdXJlIG9mIHRoZSBBZ3JlZW1lbnQgaW4gdGhlIGNvbnRyYWN0cwpyZWdpc3RlcgoKMS4gVGhlIFBhcnRpZXMgYWdyZWUgdGhhdCBpbiBjYXNlIHRoaXMKQWdyZWVtZW50IHJlcXVpcmVzIGl0cyBwdWJsaWNhdGlvbiBpbiB0aGUgcmVnaXN0ZXIgb2YKY29udHJhY3RzIHVuZGVyIHRoZSBBY3QgTm8uIDM0MC8yMDE1IFNiLiwgb24gdGhlClNwZWNpYWwgQ29uZGl0aW9ucyBmb3IgdGhlIEVmZmVjdGl2ZW5lc3Mgb2YgQ2VydGFpbgpDb250cmFjdHMsIHRoZSBQdWJsaXNoaW5nIG9mIHN1Y2ggQ29udHJhY3RzIGFuZAp0aGUgUmVnaXN0ZXIgb2YgQ29udHJhY3RzLCBhcyBhbWVuZGVkCijigJxDb250cmFjdHMgUmVnaXN0ZXIgQWN0IiksIHRoZSBwdWJsaWNhdGlvbiB3aWxsIGJlCmVuc3VyZWQgYnkgdGhlIEhvc3BpdGFsIG5vIHxhdGVyIHRoYW4gd2l0aGluIDMwCmRheXMgYWZ0ZXIgdGhlIGNvbmNsdXNpb24gb2YgdGhpcyBBZ3JlZW1lbnQgYW5kCmZ1bGx5IGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoZQpDb250cmFjdHMgUmVnaXN0ZXIgQWN0LgoKMi4gVGhlIEhvc3BpdGFsIHVuZGVydGFrZXMgdG86CgooYSkgbWFrZSB1bnJlYWRhYmxlIGluIHRoZSBBZ3JlZW1lbnQsIHByaW9yIHRvCnNlbmRpbmcgaXQgdG8gdGhlIGNvbnRyYWN0cyByZWdpc3RlciBhZG1pbmlzdHJhdG9yLAp0aG9zZSBwYXJ0cyBvZiB0aGUgQWdyZWVtZW50IHRoYXQgYXJlIGV4Y2x1ZGVkCmZyb20gcHVibGljYXRpb24gcHVyc3VhbnQgdG8gdGhlIENvbnRyYWN0cyBSZWdpc3RlcgpBY3QsIGluIHBhcnRpY3VsYXIgdGhvc2UgcGFydHMgdGhlcmVvZiB0aGF0IGNvbnRhaW4KcGVyc29uYWwgZGF0YSBvZiBlbXBsb3llZXMgb3Igb3RoZXIgd29ya2VycyBvZgpKJkogb3IgSiZKJ3MgVHJhZGUgU2VjcmV0cyB0aGF0IEomSiB3aWxsIHJlcXVlc3QKdGhlIEhvc3BpdGFsLCBieSBlLW1haWwsIHRvIG1ha2UgdW5yZWFkYWJsZS4KCihiKSBmaWxsIGluIHRoZSBhZGRyZXNzIG9mIEomSidzIGRhdGEgYm94IG9uIHRoZQpmb3JtIGZvciBwdWJsaWNhdGlvbiBvZiB0aGUgQWdyZWVtZW50IGluIHRoZQpjb250cmFjdCByZWdpc3Rlciwgc28gdGhhdCB0aGUgY29udHJhY3RzIHJlZ2lzdGVyCmFkbWluaXN0cmF0b3IgaXMgYWJsZSB0byBzZW5kIEomSiBhIGNvbmZpcm1hdGlvbiBvZgpwdWJsaWNhdGlvbiBwdXJzdWFudCB0byBTZWN0aW9uIDUoNCkgb2YgdGhlCkNvbnRyYWN0cyBSZWdpc3RlciBBY3QuCgozLiBJZiB0aGUgSG9zcGl0YWwgZG9lcyBub3QgcHVibGlzaCB0aGlzCkFncmVlbWVudCBpbiB0aGUgY29udHJhY3RzIHJlZ2lzdGVyIHdpdGhpbiB0aGUgdGltZQpsaW1pdCBzdGlwdWxhdGVkIGluIEFydGljbGUgVi4oMSksIEomSiB3aWxsIGJlIGVudGl0bGVkCnRvIHB1Ymxpc2ggdGhpcyBBZ3JlZW1lbnQgaW4gdGhlIGNvbnRyYWN0cyByZWdpc3RlcgppdHNlbGYuCgo0LiBUaGUgcHJvdmlzaW9ucyBvZiB0aGlzIEFydGljbGUgVi4gd2lsbCBhbHNvCmFwcGx5IG11dGF0aXMgbXV0YW5kaXMgdG8gdGhlIHB1YmxpY2F0aW9uIG9mIGFueQphbWVuZG1lbnQgdG8gdGhpcyBBZ3JlZW1lbnQgaW4gdGhlIGNvbnRyYWN0cwpyZWdpc3Rlci4KClZJLgpGaW5hbCBwcm92aXNpb25zCgoxLiBUaGlzIEFncmVlbWVudCBjb25zdGl0dXRlcyB0aGUgZW50aXJlCnVuZGVyc3RhbmRpbmcgYmV0d2VlbiB0aGUgUGFydGllcyByZWdhcmRpbmcgaXRzCnN1YmplY3QgbWF0dGVyIGFuZCBzaGFsbCByZXBsYWNlIGFueQphcnJhbmdlbWVudHMsIGFncmVlbWVudHMgb3IgYXBwcm92YWxzIHJlbGF0aW5nIHRvCnRoZSBzdWJqZWN0IG1hdHRlciBoZXJlb2YsIGV4cHJlc3NlZCBieSB0aGUKUGFydGllcywgdGhlIG1lbWJlcnMgb2Z0aGVpciBib2RpZXMgb3IgZW1wbG95ZWVzLApiZWZvcmUgQWdyZWVtZW50IHNpZ25pbmcuCgoyLiBVbmRlciB0aGUgQWdyZWVtZW50LCB0aGUgcmVsYXRpb25zaGlwCmJldHdlZW4gSiZKIGFuZCB0aGUgSG9zcGl0YWwgc2hhbGwgYmUgdGhhdCBvZgppbmRlcGVuZGVudCBjb250cmFjdG9ycy4gTmVpdGhlciB0aGUgQWdyZWVtZW50CgogCgpKb2huc29uU3pKb2huc29uCgpwb3NreXRvdmFuw6kgbmEgamVqw61tIHrDoWtsYWTEmyBuZWx6ZSB2eWtsw6FkYXQgdGFrLArFvmUgdnl0dsOhxZllasOtIHZ6dGFoIHptb2NuaXRlSS1vYmNob2Row60gesOhc3R1cGNlCm5lYm8gc3BvbGXEjW7DvSBwb2RuaWsgbWV6aSBzcG9sZcSNbm9zdMOtIEomSgphaGVtb2NuaWPDrSBhIHNwb2xlxI1ub3N0IEomSiBhbmkgbmVtb2NuaWNlCm5lYnVkb3Ugb3Byw6F2bsSbbmkgdXphdsOtcmF0IGpha2Vrb2xpIHrDoXZhemt5CmptZW5lbSBkcnVow6kgc21sdXZuw60gc3RyYW55LgoKMy4gTmVtb2NuaWNlIGhlcMWZZXZlZGUgxb7DoWRuZSBwb3Zpbm5vc3RpCnBvZGxlIHTDqXRvIGRvaG9keSBhbmkgdHV0byBkb2hvZHUgc2Ftb3Rub3UgbmEKxb7DoWRub3Ugamlub3Ugb3NvYnUgYmV6IHDFmWVkY2hvesOtaG8gc2NodsOhbGVuw60gemUKc3RyYW55IHNwb2xlxI1ub3N0aSBKJkouCgo0LiAuSmUtbGkgbmVibyBzdGFoZS1JaSBzZSBrdGVyw6lrb2xpIHVqZWRuw6Fuw60gdMOpdG8KZG9ob2R5IHpkw6FubGl2w71tLCBoZXBsYXRow71tIMSNaSBoZXZ5bWFoYXRlbGjDvW0sCm5lYnVkZSB0byBtw610IHZsaXYgbmEgcGxhdG5vc3QgYSB2eW1haGF0ZWxub3N0Cm9zdGF0bsOtY2ggdWplZG7DoW7DrSB0w6l0byBkb2hvZHkuIFNtbHV2bsOtIHN0cmFueSBzZQp6YXZhenVqw60gbmFocmFkaXQgemTDoW5saXbDqSwgbmVwbGF0bsOpIG5lYm8KaGV2eW1haGF0ZWxoZSB1amVkbsOhbsOtIG5vdsO9bSB1amVkbsOhbsOtbSwgamVob8W+CnpuZW7DrSBidWRlIG9kcG92w61kYXQgw7pteXNsdSB2eWrDoWTFmWVoZW11CnDFr3ZvZG7DrW0gdWplZG7DoW7DrW0gYSB0b3V0byBkb2hvZG91IGpha28KY2Vsa2VtLgoKNS4gVGF0byBkb2hvZGEgamUgdnlob3RvdmVuYSB2ZSBkdm91CnN0ZWpub3Bpc2VjaCwgeiBuaWNoxb4ga2HFvmTDoSBzbWx1dm7DrSBzdHJhbmEgb2JkcsW+w60KcG8gamVkbm9tIHZ5aG90b3ZlbsOtLiAuSmUtSWkgdGF0byBkb2hvZGEKcG9kZXBpc292w6FoYSBlbGVrdHJvbmlja3ksIGthxb5kw6EgemUgc21sdXZuw61jaApzdHJhbiBvYmRyxb7DrSBqZWrDrSBzaG9kbmUgZWxla3Ryb25pY2t5IHBvZGVwc2Fuw6kKdnlob3RvdmVuw60uCgo2LiBWIHDFmcOtcGFkxJsgcm96cG9yxa8gbWV6aSDEjWVza8O9bSBhIGFuZ2xpY2vDvW0Kem7Em27DrW0gZG9ob2R5IG3DoSBwxZllZG5vc3QgxI1lc2tlIHpuxJtuw60uCgo3LiBOw6FzbGVkdWrDrWPDrSBwxZnDrWxvaHkgdHZvxZnDrSBuZWTDrWxub3Ugc291xI3DoXN0CnTDqXRvIGRvaG9keS4gViBwxZnDrXBhZMSbIGpha8O9Y2hrb2xpIHJvenBvcsWvIG1lemkKcMWZw61sb2hvdSBhIHNhbW90bm91IGRvaG9kb3UgbcOhIHDFmWVkbm9zdApkb2hvZGE6Cgpob3IgYW55IHNlcnZpY2VzIHByb3ZpZGVkIGhlcmV1aGRlciBzaGFsbCBiZQpjb25zdHJ1ZWQgYXMgY3JlYXRpbmcgdGhlIHByaWhjaXBhSS1hZ2VodApyZWxhdGlvbnNoaXAgb3Igam9pbnQgdmVudHVyZSBiZXR3ZWVuIEomSiBhbmQgdGhlCkhvc3BpdGFsIGFuZCBuZWl0aGVyIEomSiBob3IgdGhlIEhvc3BpdGFsIHNoYWxsCmhhdmUgdGhlIGF1dGhvcml0eSB0byBlbnRlciBpbnRvIGFueSBvYnxpZ2F0aW9uIG9uCmJlaGFsZiBvZiBhbnkgb3RoZXIgUGFydHkuCgozLiBUaGUgSG9zcGl0YWwgc2hhbGwgaG90IHRyYW5zZmVyIGFueQpvYmxpZ2F0aW9ucyBoZXJldWhkZXIgb2YgdGhlIEFncmVlbWVudCBpdHNlbGYgdG8KYW55IG90aGVyIHBlcnNvbiB3aXRob3V0IHRoZSBwcmlvciBhcHByb3ZhbCBvZiBKJkouCgo0LiBJZiBhbnkgcHJvdmlzaW9uIG9mIHRoaXMgQWdyZWVtZW50IGJlY29tZXMKb3N0ZWhzaWJsZSwgaW52YWxpZCBvciB1aGVoZm9yY2VhYmxlLCBpdCB3aWxsIG5vdAphZmZlY3QgdGhlIHZhbGlkaXR5IGFuZCBlaGZvcmNlYWJpbGl0eSBvZiBvdGhlcgpwcm92aXNpb25zIG9mIHRoaXMgQWdyZWVtZW50LiBUaGUgUGFydGllcwp1aGRlcnRha2UgdG8gcmVwbGFjZSB0aGUgb3N0ZWhzaWJsZSwgaW52YWxpZCBvcgp1aGVoZm9yY2VhYmxlIHByb3Zpc2lvbiB3aXRoIGEgbmV3IHByb3Zpc2lvbiwgdGhlCndvcmRpbmcgb2Ygd2hpY2ggd2lsbCBjb3JyZXNwb25kIHRvIHRoZSBpbnRlbnRpb24KCmV4cHJlc3NlZCBpbiB0aGUgb3JpZ2luYWwgcHJvdmlzaW9uIGFuZCB0aGlzCkFncmVlbWVudCBhcyBhIHdob2xlLgo1LiBUaGlzIEFncmVlbWVudCBoYXMgYmVlbiBleGVjdXRlZCBpaCB0d28KCmNvdW50ZXJwYXJ0cywgb2Ygd2hpY2ggZWFjaCBQYXJ0eSB3aWxsIHJlY2VpdmUgb25lLgpsaCBjYXNlIHRoYXQgdGhpcyBBZ3JlZW1lbnQgaXMgc2lnbmVkCmVsZWN0cm9uaWNhbGx5LCBlYWNoIFBhcnR5IHdpbGwgcmVjZWl2ZSBpdHMgaWRlbnRpY2FsCmVsZWN0cm9uaWMgdmVyc2lvbi4KCjYuIEluIHRoZSBldmVudCBvZiBhbnkgZGlzY3JlcGFoY2llcyBiZXR3ZWVuCnRoZSBDemVjaCBhbmQgRW5nbGlzaCB2ZXJzaW9ucyBvZiB0aGUgQWdyZWVtZW50LAp0aGUgQ3plY2ggdmVyc2lvbiBzaGFsbCBwcmV2YWlsLgoKNy4gRm9sbG93aW5nIEFwcGVuZGljZXMgZm9ybSBhaCBpbnRlZ3JhbCBwYXJ0Cm9mIHRoaXMgQWdyZWVtZW50LiBsaCBjYXNlIG9mIGFueSBkaXNjcmVwYWhjaWVzCmJldHdlZW4gdGhlIEFwcGVuZGljZXMgYW5kIHRoZSBBZ3JlZW1lbnQgaXRzZWxmLAp0aGUgQWdyZWVtZW50IHNoYWxsIHByZXZhaWw6CgogCgpKb2huc29uU3pKb2huc29uCgpTZXpuYW0gcMWZw61sb2g6CgpQxZnDrWxvaGEgMS4gUHJvZ3JhbQpQxZnDrWxvaGEgMi4gVnpvciBvYmplZG5hdmt5CgpQxZnDrWxvaGEgMy4gSW5mb3JtYWNlIG8gw7rEjWFzdG7DrWPDrWNoIMWga29sZW7DrQpQxZnDrWxvaGEgNC4gUG9kbcOtbmt5IHBvc2t5dG92w6Fuw60gc2x1xb5lYgpQxZnDrWxvaGEgNS4gRG9kcsW+b3ZhbsOtIHByb3Rpa29ydXDEjW7DrWNoIHrDoWtvbsWvClDFmcOtbG9oYSA2LiBJbmZvcm1hY2UgbyBwcmF2aWRsZWNoIHpwcmFjb3bDoW7DrQoKb3NvYm7DrWNoIMO6ZGFqxa8KClphIHNwb2xlxI1ub3N0IEomSi9Gb3IgSiZKOgoKRGF0dW0gYSBwb2RwaXMvRGF0ZSBhbmQgc2lnbmF0dXJlOgoKWmEgbmVtb2NuaWNpL0ZvciBIb3NwaXRhbDoKCkRhdHVtIGEgcG9kcGlzL0RhdGUgYW5kIHNpZ25hdHVyZToKCkxpc3Qgb2YgQXBwZW5kaWNlczoKCkFwcGVuZGl4IDEuIEFnZW5kYQpBcHBlbmRpeCAyLiBUZW1wbGF0ZSBPcmRlcgoKQXBwZW5kaXggMy4gSW5mb3JtYXRpb24gYWJvdXQgVHJhaW5pbmcgU2Vzc2lvbgpQYXJ0aWNpcGFudHMKCkFwcGVuZGl4IDQuIFRlcm1zIGFuZCBDb25kaXRpb25zIG9mIFByb3Zpc2lvbgpvZiB0aGUgU2VydmljZXMKCkFwcGVuZGl4IDUuIENvbXBsaWFuY2Ugd2l0aCBBbnRpLUNvcnJ1cHRpb24KTGF3cwoKQXBwZW5kaXggNi4gSW5mb3JtYXRpb24gb24gUGVyc29uYWwgRGF0YQpQcm9jZXNzaW5nIFJ1bGVzCgpqZWRuYXRlbGthCgpESWdJdGFsbHkgc2xnbmVkIGJ5CgpEYXRlOiAyMDI1MDcwNCAxMDoyNzo0NiArMDInMDAnCkFkb2JlIEFjcm9iYXQgdmVyc2lvbjogMjAyNC4wMDIuMjA3NTkKCnDFmWVkc2VkYSBwxZllZHN0YXZlbnN0dmEsCgpEaWdpdMOhbG7EmyBwb2RlcHNhbAoKRGF0dW06IDIwMjUwMzA2CjEwOjI1OjU1ICswMicwMCcKCiAKClBPRFBJUyBUw4lUTyBET0hPRFkgbXVzw60gTsOJU1QgREFUVU0gUE9EUElTVQpET0tVTUVOVFUKCiAKCiAKClNJR05BVFVSRSBPRiBUSElTIEFHUkVFTUVOVCBTSE9VTEQgQkVBUiBUSEUKREFURSBPRiBTSUdOQVRVUkUgT0YgVEhFIERPQ1VNRU5UCgogCgogCgpKb2huc29uJkowaG5zb24KClDFmcOtbG9oYSAxCgpQcm9nIHJhbQoKSW4tSG9zcMOtdGFsIENvdXJzZQoKSW7igJRIb3NwaUxhSSBUcmFpbmluZwpCYXJpYXRyaWMgJiBNZXRhYm9saWMgUwoKeHhtLiAyMDI1CgogCgrCqSBydW11LiBIbnNwaW0KfAoKbG52dHRlZCBmdWN1bHR5CgpIZWFkIHVsIFN1dWdtIElsdXQuCgpfIFN1cmdlcnkgRHBsLgpQcm9ncmFtIE9WRUknVklHVlYKbSdhIGFkdmFuY2VkIHByb2NjcHRvJ2Fow61wIGxyYWlubWcgaW4gQmFyaWF0cmljICYgTW90YWJvSGMgU3VyZ2VyeSBpcyBkZXNpZ25lZCBtIGd1aWRlCnN1cmdlbSAnIHNldGVtw61uZyBhcHByY3ByaWF0ZSBwYXRpZW50cyBmb3IgSWFwYXJvc2NvcGljIHByb2NlZEpsZXMgZW5zdXJtZyBzYWZlCnBhbmVtIHByZXBhcmF0aW9uIGFuZCBwb3Ntb21uZyBlZmZlY3R3ZWx5IG9yZ2FubWcgRW5kIFxlYWRtZyB0aGUgb2EgdGVhbSwKcGUnZm9ybXRuZyBrZXkgc3VyZ3RjYXQgc3RlcHMsIGFuZCBwdmV2ZW1tZyBlbmQgbWFuYWdpbmcgYlxlZWRoZyBvciBuw610J2VyCmNvdnBuY2F0bW5zICpuZXVhaW1uZyB3bSB0bm90dWRlIGxpdiByc3VyZ2VyeXNlc3NvbiAnbWVyYWN0dHZlbGVjbXJlcy4gYW5kIFEmQQo9c2dtPXV0Pi4gYXYgYSd1bmVKIGFMID5tIDs7IGJlPkwgdS1hY3VjZXMsIHRpdS4gYW5kIC5lY2xuaXF1ZXMgdHUgdmVtZSBzdXRnaXdsID11bHMuCgogCgogICAKCiAKCmJlbnQgcmVxdWlyZW1lbnRzCgogCgpUaGlzIC5uYW1lIGlzIHNwZWMgY3pIeSB0YWlsZ3JlZCBmb3IgYWR2YW5jZWQgYmFyw61hbWMgc3VyZ2VvaHMgd2hvIGFyZSBlYWdlciBtCmV4cGFuZCB0aGVuIGtub3dsZWRnZSBhbmQgZXhwZW5sc2UuIFBlbWPDrXBhbnRzIHNob251IG1lZXQgbWUgZm9uY3dtZyBjbXNuYSAmCm1ud3Z1bSBtIHRocmVlIHllYXJzIG0gZXZyZW5lbWUgLm4gSWFwYXJuc25ucHcgc3VyZ2VyeSwgc3VtbWFyeSBlbW1tbXFtIG1yCnBlJ2Zvcm1tZyBCYW5hbmljICYgTWV0YWJvSGMgU3VnZXJ5LiBhbmQgYWNjZXNzIHRvIGFudXJvcHLDrWV0ZSBPUiBxdWlwcnJlaHQgKG8KY2Fycnkgb3V0IG1lc2UgcHJvY2VkdXJlcy4KCuKAnuKAngpJbnN0aXR1dGUKCiAKCkFwcGVuZGl4IDEKQWdlbmRhCgpBZ2VuZGEgbW5tb2RhdG1uCgp4eC4gMjAyNSAnIFRCRAotIDc6MzAgV2V0b293ZS4gXG50cm9kdWN0aW9uICYgUHJlcm9wIGNpc2N1c3PDrWFuCi0gOTowMCBsZWUgcy5sdmdlcnkgM3gKCkhlc3RhdW1uCgokCjAKOgoKfCBtbXM6IG5uIG13IHdncHJ5ICggKGRpc2Vhc2UgcGFuZW0gLSBUQkQKaW5kw61jYS4gSWx2IFNVw41Rw41DR0kgW3ZlZcOtbmVuTCBET1ZXREnDjUNFw43DjUxKVVN2IERPU0lWREQKY2FyZSBtbnV3dykgXG1lcmFjw63DrXZlIGV2aWRlbmNlcmh6c2VkIG1zY3VzcydtbnMKCicgUSZBCgoxNTozMCBDdG9zaW5nCgogICAKCkptCkluc3RpdHV0ZQoKIAoKIAoKMTAKCkpvaG5zb24mZDBobnNvbgoKQWdlbmRhIExhYyBJQ2bigJRudGFjCkRheWx3byA3OjMwM21mMDE6MDBwbQoKIm8gV2FsayBmcm9tIG1lICdMJ0rDrWVsdG8gbWUgSG9zcGl0YWoKLSA4OjAwIExpdmMgU3VyZ2VyeSBDYXNlcwoKIAoKLSAxMkMwIEx1bmNoIGFuZCBkZWJydGVmCi4gXFItSMONSiBDam9zam5nCgpUcmFuc2ZlcnMKSG90ZWwgJiBSZXN0YXVyYW50IDcgSFVHIGFyZSBhamogd2p0aGluIHdhbGtpbmcKZGlzdGFuY2UKCuKAnuKAngpJbnN0aXR1dGUKCiAKCiAKCjExCgpKb2huc29uU3pKb2huc29uCgpQxZnDrWxvaGEgMgpWem9yIG9iamVkbsOhdmt5CgrFoEtPTEVOw40gLSBPQkpFRE7DgVZLQQoKViBzb3VsYWR1ICYgZG9ob2RvdSB6ZSBkbmUga2xpa251dMOtbSB2eWJlcnRlIGRhdHVtLgoKc3BvbGXEjW5vc3QgSiZKIHDFmWVka2zDoWTDoSBvYmplZG7DoXZreSBuYQpuw6FzbGVkdWrDrWPDrSDFoGtvbGVuw606CgoxLiBEYXR1bSDFoWtvbGVuw606IGRoZSBrbGlrbnV0w61tIHZ5YmVydGUgZGF0dW0KMi4gVHlwIMWha29sZW7DrTogc3RhY2lvbsOhcm7DrSDFoGtvbGVuw60KCjMuIFDFmWlqYXRlbG5vc3QgcG/FmWl6b3bDoW7DrSB6w6F6bmFtdQrFoWtvbGVuw606IE5lCgo0LiBQb8SNZXQgcGFjaWVudMWvOiBbYnVkZSB2eXBsaGVob10KCjUuIFBvxI1ldCDDusSNYXN0bsOta8WvIMWha29sZW7DrTogW2J1ZGUKCnZ5cGxoZWhvXQoKOS4gT3NvYmEgcHJvdsOhZMSbasOtY8OtIHrDoWtyb2s6IFt2eWJlcnRlOgpTa29saXRlbCAvIFNrb2xpdGVsICYgYXNpc3RlbmPDrSDEjWxlbmEgbmVtb2NuacSNbsOtaG8KcGVyc29uw6FsdSAvIENsZW4gbmVtb2NuacSNbsOtaG8gcGVyc29uw6FsdQoKJiBhc2lzdGVuY8OtIMWga29saXRlfGVdCgo3LiBQcm9ncmFtIMWha29sZW7DrTogW2J1ZGUgdnlwbGhlaG9dCgo4LiBEYWzFocOtIHVqZWRuw6Fuw606IFt1dmVkdGUgZGFsxaHDrSBwxZnDrXBhZG7DoQp1amVkbsOhbsOtIG1lemkgc21sdXZuw61taSBzdHJhbmFtaV0KClByb3PDrW0gc2TEm2x0ZSBuZXByb2RsZW7EmywgemRhIGplIG9iamVkbsOhdmthCnDFmWlqYXTDoSBoZWJvIHphbcOtdG51dMOpLgoKQXBwZW5kaXggMgpUZW1wbGF0ZSBPcmRlcgoKVFJBSU5JTkcgU0VTU0lPTiDigJQgT1JERVIKCkFjdGloZyBwdXJzdWFudCB0byB0aGUgYWdyZWVtZW50IG9mIGNsaWNrIHRvIHNlbGVjdAp0aGUgZGF0ZSAsIEomSiBzdWJtaXRzIG9yZGVycyBmb3IgdGhlIGZvbGxvd2luZwpUcmFpbmluZyBTZXNzaW9uOgoKMS4gRGF0ZSBvZiBUcmFpbmluZyBTZXNzaW9uOiBjbGljayB0byBzZWxlY3QKdGhlIGRhdGUKCjIuIFR5cGUgb2YgVHJhaW5pbmcgU2Vzc2lvbjogc3RhdGlvbmFyeQpUcmFpbmluZyBTZXNzaW9uCgozLiBUaGUgYWNjZXB0YWJpbGl0eSBvZiByZWNvcmRpbmcgdGhlClRyYWluaW5nIFNlc3Npb246Tm8KCjQuIE51bWJlciBvZiBwYXRpZW50czogW3RvIGJlIGNvbXBsZXRlZF0KCjUuIE51bWJlciBvZiBUcmFpbmluZyBQYXJ0aWNpcGFudHM6IFt0byBiZQpjb21wbGV0ZWRdCgo2LiBQZXJzb24gcGVyZm9ybWluZyB0aGUgUHJvY2VkdXJlOgoKW3NlfGVjdDogSW5zdHJ1Y3Rvci8gSW5zdHJ1Y3RvciB3aXRoIHRoZSBhc3Npc3RhbmNlCm9mIGEgSG9zcGl0YWwgcGVyc29ubmVsIG1lbWJlciAvIEhvc3BpdGFsCnBlcnNvbm5lbCBtZW1iZXJ3aXRoIHRoZSBhc3Npc3RhbmNlIG9mdGhlCnxoc3RydWN0b3JdCgo3LiBUcmFpbmluZyBTZXNzaW9uIGFnZW5kYTogW3RvIGJlCmNvbXBsZXRlZF0KOC4gT3RoZXIgYXJyYW5nZW1lbnRzOiBbc3BlY2lmeSBvdGhlcgoKYXJyYW5nZW1lbnRzIGJldHdlZW4gdGhlIFBhcnRpZXMsIGlmIGFoeV0KClBsZWFzZSBhZHZpc2Ugd2l0aG91dCBkZWxheSBpZiB0aGUgT3JkZXIgaXMKYWNjZXB0ZWQgb3IgcmVqZWN0ZWQuCgogCgoxMgoKSm9obnNvblN6Sm9obnNvbgoKUMWZw61sb2hhIDMKCkluZm9ybWFjZSBvIMO6xI1hc3Ruw61jw61jaCDFoWtvbGVuaQoKSm9obnNvblN6Sm9obnNvbgpLIHJ1a8OhbTogSm1lbm8gQWRyZXNhIG5lbW9jbmljZS4KCkRhdHVtOiBrbGlrbnV0w61tIHZ5YmVydGUgZGF0dW0KClbDocW+ZW7DoSBwYW7DrSwgdsOhxb5lbsO9IHBhbmUsClRhdG8genByw6F2YSBzZSB0w71rw6EgxaBrb2xlbsOtIHNuYXp2ZW0gdXZlZHRlCm5hemV2IGtvbmFuZWhvIHZlIFZhxaFlbSDDunN0YXZ1IGRuZSBrbGlrbnV0w61tCgp2eWJlcnRlIGRhdHVtIG5hIHrDoWtsYWTEmyBkb2hvZHkgZG5lIGtsaWtudXTDrW0KdnliZXJ0ZSBkYXR1bQoKxaBrb2xlbsOtIHNlIHrDusSNYXN0bsOtCnByYWNvdm7DrWNpOgoKQy4KCm5hc2xlZHVqw61jw60gemRyYXZvdG5pxI10w60KCkptw6lubyBhIHDFmWlqbWVuw606Ck5lbW9jbmljZToKCsOaxI1hc3Ruw61rOgoKUyBwb3pkcmF2ZW0sCkomSgoKQXBwZW5kaXggMwoKSW5mb3JtYXRpb24gYWJvdXQgVHJhaW5pbmcgU2Vzc2lvbgpQYXJ0aWNpcGFudHMKCkF0dG46IE5hbWUgSG9zcGl0YWwgYWRkcmVzcy4KCkRhdGU6IGNsaWNrdG8gc2VsZWN0IHRoZSBkYXRlCgpEZWFyIFNpci9NYWRhbSwKClRoaXMgbWVzc2FnZSBjb25jZXJucyB0aGUgVHJhaW5pbmcgU2Vzc2lvbgplbnRpdGxlZCBpbnNlcnQgdGhlIHRpdGxlLCBoZWxkIGF0IHlvdXIgZmFjaWxpdHkgb24gY2xpY2sKY2xpY2t0byBzZWxlY3QgdGhlIGRhdGUgdW5kZXIgdGhlIGFncmVlbWVudCBvZiBjbGljawp0byBzZWxlY3QgdGhlIGRhdGUKClRoZSBmb2xsb3dpbmcgaGVhbHRoY2FyZSBwcm9mZXNzaW9uYWxzCnBhcnRpY2lwYXRlIGluIHRoZSBUcmFpbmluZyBTZXNzaW9uOgoKTm8uCgpXaWxsCgpGdUlJIG5hbWU6Ckhvc3BpdGFsOgpQYXJ0aWNpcGFudDoKCllvdXJzIGZhaXRoZnVsbHksCkomSgoKIAoKMTMKCkpvaG5zb25TekpvaG5zb24KClDFmcOtbG9oYSA0CgpQb2Rtw61ua3kgcG9za3l0b3bDoW7DrSBzbHXFvmViCgpQxZllZG3Em3Qgc3BvbHVwcsOhY2UKCjEuIFNwb2xlxI1ub3N0IEomSiBtw6EgcHLDoXZvIHDFmWVkbG/Fvml0CnDFmWlwb23DrW5reSwgdsO9aHJhZHkgYWRvcG9ydcSNZW7DrSB0w71rYWrDrWPDrSBzZQp6cMWvc29idSBwbG5lbsOtIHDFmWVkbcSbdHUgZG9ob2R5IGFuZW1vY25pY2UKKGTDoWxlIGplbiDigJ5kb2RhdmF0ZWzigJwpIHNvdWhsYXPDrSwgxb5lIHR5dG8gcMWZaXBvbcOtbmt5LAp2w71ocmFkeSBhZG9wb3J1xI1lbsOtIG5lcHJvZGxlbsSbIHphcHJhY3VqZS4KUG9rdWQgbmVidWRvdSBwxZlpcG9tw61ua3kgYSB2w71ocmFkeSBwxZllZGxvxb5lbsOpCnNwb2xlxI1ub3N0w60gSiZKIGJyw6FueSB2IMO6dmFodSwgYnVkZSBzcG9sZcSNbm9zdApKJkogb3ByYXZuZW5hIHZ5cG92xJtkxJt0IGRvaG9kdSBzb2thbcW+aXRvdQrDusSNaW5ub3N0w60uCgoyLiAuSmUtbGkgZG9kYXZhdGVsZW0gZnl6aWNrw6Egb3NvYmEsIGJ1ZGUKZG9kYXZhdGVsIHBsbml0IGRvaG9kdSBvc29ibmUuCgozLiBEb2RhdmF0ZWwgdnluYWxvxb7DrSBiZWhlbSBwbG5lbsOtIGRvaG9keQrFmWFkbm91IHDDqcSNaSB2IHJvenNhaHUgc3ZlIGt2YWxpZmlrYWNlCmEgZG92ZWRub3N0w60sIGEgcG9rdWQgbmVuw60gZG9kYXZhdGVsZW0gZnl6aWNrw6EKb3NvYmEg4oCUIHYgcm96c2FodSBrdmFsaWZpa2FjZSBhIGRvdmVkbm9zdMOtIHN2w71jaAp6YW3Em3N0bmFuY8WvLgoKNC4gUG9rdWQgamUgZG9kYXZhdGVsZW0gZnl6aWNrw6Egb3NvYmEsCnByb2hsYcWhdWplLCDFvmUgdXphdsWZZW7DrSB0w6l0byBkb2hvZHkgbmVwb3J1xaF1amUKxb5hZG7DqSBpbnRlcm7DrSBwxZllZHBpc3kgdmplasOtbSBtw61zdMSbIHphbWVzdG5hbmksCm5lbmFydcWhdWplIGplasOtIHBvdmlubm9zdGkgemFtZXN0bmFuY2UgcG9kbGUKcHLDoXZuw61jaCBwxZllZHBpc8WvLCBuZXZlZGUga2Ugc3TFmWV0dSB6w6FqbcWvIG1lemkKZG9kYXZhdGVsZW0gYSBqZWhvIGZ1bmtjZW1pLgoKNS4gRG9ob2RhIG5lemF2YXp1amUgZG9kYXZhdGVsZSwgYWJ5CnDFmWlqw61tYWwgamFrZWtvbGkgesOhdmF6a3ksIHZqZWppY2jFviBkxa9zbGVka3UgYnkgc2UKenbDvcWhaWxhIHVyb3ZlbiBwcm9kZWrFryBuZWJvIHBvdcW+w612YW7DrQp6ZHJhdm90bmlja8O9Y2ggcHJvc3TFmWVka8WvIHZ5cmFiZW7DvWNoIG5lYm8KZGlzdHJpYnVvdmFuw71jaCBzcG9sZcSNbm9zdMOtIEomSi4KCjYuIFNwb2xlxI1ub3N0IEomSiBwcm9obGHFoXVqZSwgxb5lIHBvZHBpcwphcGxuZW7DrSBkb2hvZHkgbmVidWRlIHDFmcOtxI1pbm91IGpha8O9Y2hrb2xpCnBvdmlubm9zdMOtIG5hIHN0cmFuxJsgZG9kYXZhdGVsZSwga3RlcsOpIG5lanNvdQp1dmVkZW55IHYgZG9ob2TEmywgemVqbcOpbmEgcG9rdWQgamRlIG8gcHJvdsOhZMSbbsOtCsSNaW5ub3N0w60sIGt0ZXLDqSBieSBtb2hseSBvdmxpdm5pdCBwcm9kZWogdsO9cm9ia8WvCnNwb2xlxI1ub3N0aSBKJkouCgpEw7p2xJtybsOhIHBvdmFoYSAhIHZyw6FjZW7DrSBkb2t1bWVudMWvCgoxLiBWZSB2enRhaHUgayBwb3NreXRvdsOhbsOtIHNsdcW+ZWIKZGVmaW5vdmFuw71jaCB2dGV0byBkb2hvZGUgbcWvxb5lIHNwb2xlxI1ub3N0IEomSgpwxZllZGF0IGRvZGF2YXRlbGkgaW5mb3JtYWNlIHTDvWthasOtY8OtIHNlIHNwb2xlxI1ub3N0aQpKJkosIHbEjWV0bsSbIGluZm9ybWFjw60ga2Ugc3TDoXZhasOtY8OtbSBuZWJvIGJ1ZG91Y8OtbQp2w71yb2Jrxa9tLCBwcm9jZXPFr20sIHRlY2huaWthbSBuZWJvIGtub3ctaG93LAprdGVyZSBqc291IGTFr3bEm3Juw6kgbmVibyBwYXRlbnRvdmFuw6kgYWplamljaMW+CnpwxZnDrXN0dXBuxJtuw60gYnkgbW9obG8gc3BvbGXEjW5vc3RpIEomSiB6cMWvc29iaXQKbmVuYXByYXZpdGVsbm91IHVqbXUgKHNvdWhybm7EmyDigJ5kxa92xJtybsOpCgpBcHBlbmRpeCA0CgpUZXJtcyBhbmQgQ29uZGl0aW9ucyBvZiB0aGUgUHJvdmlzaW9uIG9mIHRoZQpTZXJ2aWNlcwoKU3ViamVjdCBvZiBDb29wZXJhdGlvbgoKMS4gSiZKIHNoYWxsIGhhdmUgdGhlIHJpZ2h0IHRvIHN1Ym1pdApjb21tZW50cywgcmVzZXJ2YXRpb25zIGFuZCBzdWdnZXN0aW9ucyByZWxhdGluZwp0byB0aGUgbWFubmVyIG9mIHBlcmZvcm1hbmNlIG9mIHRoZSBzdWJqZWN0IG1hdHRlcgpvZiB0aGUgQWdyZWVtZW50LCBhbmQgSG9zcGl0YWwgKGhlcmVpbmFmdGVyCnJlZmVycmVkIHRvIGFzIHRoZSDigJxDb250cmFjdG9yIikgYWdyZWVzIHRvIHByb21wdGx5CmluY29ycG9yYXRlIHN1Y2ggY29tbWVudHMsIHJlc2VydmF0aW9ucyBhbmQKc3VnZ2VzdGlvbnMuIFdoZW4gdGhlIGNvbW1lbnRzIGFuZCByZXNlcnZhdGlvbnMKc3VibWl0dGVkIGJ5IEomSiBhcmUgbm90IHRha2VuIGludG8gY29uc2lkZXJhdGlvbiwKSiZKIHNoYWxsIGJlIGVudGl0fGVkIHRvIHRlcm1pbmF0ZSB0aGUgQWdyZWVtZW50CndpdGggaW1tZWRpYXRlIGVmZmVjdC4KCjIuIHxmIHRoZSBDb250cmFjdG9yIGlzIGEgbmF0dXJhbCBwZXJzb24sIHRoZQpDb250cmFjdG9yIHNoYWxsIHBlcmZvcm0gdGhlIEFncmVlbWVudCBpbiBwZXJzb24uCgozLiBUaGUgQ29udHJhY3RvciBzaGFsbCB1c2UgZHVlIGRpbGlnZW5jZQp3aGlsZSBwZXJmb3JtaW5nIHRoZSBBZ3JlZW1lbnQgdG8gdGhlIGV4dGVudCBvZgpoaXMvaGVyIGV4cGVydGlzZSBhbmQgc2tpbGxzLCBhbmQgaWZ0aGUgQ29udHJhY3RvciBpcwpub3QgYSBuYXR1cmFsIHBlcnNvbiDigJQgdG8gdGhlIGV4dGVudCBvZiB0aGUgZXhwZXJ0aXNlCmFuZCBza2lsbHMgb2YgaXRzIGVtcGxveWVlcy4KCjQuIHxmdGhlIENvbnRyYWN0b3IgaXMgYSBuYXR1cmFsIHBlcnNvbiwgaGUvc2hlCnJlcHJlc2VudHMgdGhhdCB0aGUgY29uY2x1c2lvbiBvZiB0aGlzIEFncmVlbWVudApkb2VzIG5vdCBjb25zdGl0dXRlIGEgYnJlYWNoIG9mIGFueSBpbnRlcm5hbApyZWd1bGF0aW9ucyBhdCBoaXMvaGVyIHBsYWNlIG9mIGVtcGxveW1lbnQsIGRvZXMKbm90IGludGVyZmVyZSB3aXRoIGhpcy9oZXIgZHV0aWVzIGFzIGFuIGVtcGxveWVlCnVuZGVydGhlIGxhd3MsIGRvZXMgbm90IHxlYWQgdG8gYSBjb25mbGljdCBvZiBpbnRlcmVzdApiZXR3ZWVuIHRoZSBDb250cmFjdG9yIGFuZCBoaXMvaGVyIGZ1bmN0aW9ucy4KCjUuIFRoZSBBZ3JlZW1lbnQgc2hhbGwgbm90IG9ibGlnZSB0aGUKQ29udHJhY3RvciB0byBhY2NlcHQgYW55IG9ibGlnYXRpb25zIGFzIGEgcmVzdWx0IG9mCndoaWNoIHRoZSBsZXZlbCBvZiBzYWxlIG9yIHVzZSBvZiBtZWRpY2FsIGRldmljZXMKbWFudWZhY3R1cmVkIG9yIGRpc3RyaWJ1dGVkIGJ5IEomSiB3b3VsZCBpbmNyZWFzZS4KCjYuIEomSiByZXByZXNlbnRzIHRoYXQgdGhlIHNpZ25pbmcgYW5kCnBlcmZvcm1hbmNlIG9mdGhlIEFncmVlbWVudCBzaGFsbCBub3QgZ2l2ZSByaXNlIHRvCmFueSBvYmxpZ2F0aW9ucyBvbiB0aGUgQ29udHJhY3RvcidzIHBhcnQgdGhhdCBhcmUgbm90Cmxpc3RlZCBpbiB0aGUgQWdyZWVtZW50LCBpbiBwYXJ0aWN1bGFyIGNvbmNlcm5pbmcgdGhlCnRha2luZyBvZiBhY3Rpdml0aWVzIHRoYXQgbWlnaHQgaW5mbHVlbmNlIHRoZSBwdXJjaGFzZQpvZiBKJkogcHJvZHVjdHMuCgpDb25maWRlbnRpYWxpdHlsIFJldHVybiBvZiBkb2N1bWVudHMKCjEuIEluIHJlbGF0aW9uIHRvIHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUKc2VydmljZXMgZGVmaW5lZCBpbiB0aGlzIEFncmVlbWVudCwgSiZKIG1heQp0cmFuc2ZlciB0byB0aGUgQ29udHJhY3RvciBpbmZvcm1hdGlvbiByZWxhdGluZyB0bwpKJkosIGluY2x1ZGluZyBpbmZvcm1hdGlvbiByZWxhdGluZyB0byB0aGUgZXhpc3Rpbmcgb3IKZnV0dXJlIHByb2R1Y3RzLCBwcm9jZXNzZXMsIHRlY2huaXF1ZXMgb3Iga25vdy0KaG93LCB3aGljaCBpcyBjb25maWRlbnRpYXwgb3IgcHJvcHJpZXRhcnksIGFuZCB3aG9zZQpkaXNjbG9zdXJlIG1pZ2h0IGNhdXNlIGlycmV2ZXJzaWJsZSBkYW1hZ2UgdG8gSiZKCihjb2xsZWN0aXZlbHkg4oCcQ29uZmlkZW50aWFsIEluZm9ybWF0aW9uIikuIEFzIHRoZQoKIAoKMTQKCkpvaG5zb25TekpvaG5zb24KCmluZm9ybWFjZeKAnCkuIERvZGF2YXRlbCBqYWtvIHDFmcOtamVtY2UgaW5mb3JtYWPDrQpzb3VobGFzw60sIMW+ZSBuZXpwxZnDrXN0dXBuw60gZMWvdsSbcm7DqSBpbmZvcm1hY2Ugxb5hZG7DqQpvc29ixJssIHBva3VkIG5lesOtc2vDoSBwxZllZGNob3rDrSBww61zZW1uw6kKb3Byw6F2bsSbbsOtIG9kIHNwb2xlxI1ub3N0aSBKJkouIERhbGUsIHBvIHVrb27EjWVuw60KbmVibyB2eXByxaFlbsOtIGRvaG9keSB6IGpha8OpaG9rb2xpIGTFr3ZvZHUgbmVibyBuYQrFvsOhZG9zdCBzcG9sZcSNbm9zdGkgSiZKIGRvZGF2YXRlbCBuZXByb2RsZW7EmyB2cmF0w60Kc3BvbGXEjW5vc3RpIEomSiB2xaFlY2hueSBvcmlnaW5hbHkgYSBrb3BpZQpkb2t1bWVudMWvIG5lYm8gamluw71jaCBtYXRlcmnDoWzFrywga3RlcsOpIGpzb3UKZMWvdsSbcm7DvW1pIGluZm9ybWFjZW1pIG5lYm8gZMWvdsSbcm7DqSBpbmZvcm1hY2UKb2JzYWh1asOtLiBQb3Zpbm5vc3RpIHTDvWthasOtY8OtIHNlIGTFr3bEm3Juw71jaAppbmZvcm1hY8OtIHRha2UgcMWZZXRydmFqw60gcG8gZG9idSA1IGxldCBwbyB1a29uxI1lbsOtCm5lYm8gdnlwcsWhZW7DrSBkb2hvZHkuCgoyLiBQb2t1ZCBzcG9sZcSNbm9zdCBKJkogZG9ydcSNw60gZG9kYXZhdGVsaQpqYWtla29saSBkb2t1bWVudHkgc291dmlzZWrDrWPDrSAmIHBsbsSbbsOtbSBkb2hvZHkKbmVibyBuZXpieXRuw6kgcHJvIGplasOtIHBsbmVuaSwgZG9kYXZhdGVsIHNvdWhsYXPDrSwKxb5lIHR5dG8gZG9rdW1lbnR5IMWZYWRuxJsgdWxvxb7DrSBhemFicmFuw60gdMWZZXTDrW0Kc3RyYW7DoW0gdnDFmcOtc3R1cHUga3RlbXRvIGRva3VtZW50xa9tLgpEb2RhdmF0ZWwgdnJhdMOtIHR5dG8gZG9rdW1lbnR5IHNwb2xlxI1ub3N0aSBKJkoKcG90w6ksIGNvIGJ1ZG91IHNsdcW+YnkgdXZlZGVuZSB2xI1sLiB8IGRvaG9keQpwb3NreXRudXR5LCB0ZWR5IHZ5cHLFoWVuw60gZG9ob2R5LgoKMy4gRG9kYXZhdGVsIG5lenDFmcOtc3R1cG7DrSBzcG9sZcSNbm9zdGkgSiZKCsW+YWRuw6kgZMWvdsSbcm7DqSBpbmZvcm1hY2UgbmFsZcW+ZWrDrWPDrWppbsO9bSBvc29iYW0sCnbEjWV0bmUgamluw71jaCBrbGllbnTFryBkb2RhdmF0ZWxlLCBhbmkgc3BvbGXEjW5vc3QKSiZKIG5lcMWZZXN2xJtkxI3DrSBramVqaWNoIHZ5dcW+aXTDrS4KClByw6F2YSBkdcWhZXZuw61obyB2bGFzdG5pY3R2w60KCjEuIERvZGF2YXRlbCB0w61tdG8gYmVyZSBuYSB2xJtkb23DrSBhIHNvdWhsYXPDrQpzIHTDrW0sIMW+ZSB2ZcWha2Vyw6kgb2JqZXZ5IGEgdnluw6FsZXp5LCBhxaUgamnFvgpwYXRlbnRvdmF0ZWxuZSDEjWkgbmlrb2xpdiwgdnpuaWtsw6kgbmEgemFrbGFkZSBuZWJvIHYKc291dmlzbG9zdGkgJiBkb2hvZG91LCB6ZWptZW5hIG1hcmtldGluZ292w6kKaW5mb3JtYWNlLCBsw6nEjWVibsOpIHBvc3R1cHkgbmVibyBwcm9jZWR1cnksCm1hcmtldGluZ292w6kgxI1pIG9iY2hvZG7DrSBwb3N0dXB5LCBwcm9jZWR1cnkgbmVibwptZXRvZGlrYSBhIHByb2R1a3R5IGEgamVqaWNoIGlub3ZhY2UsIG5lYm8KamFrw6lrb2xpdiBkb2t1bWVudHksIGTDrWxhLCB6YXpuYW15LCB2aWRlYSDEjWkgamluw6kKdsO9c3R1cHkgdnpuaWtsw6kgdiBzb3V2aXNsb3N0aSAmIHBsbsSbbsOtbSBkbGUgZG9ob2R5CijigJ52w71zdHVwasWlKSwgYSB2ZcWha2Vyw6EgcHLDoXZhIGsgbmltLCB6ZWptZW5hCmpha2Frb2xpIHNvdXZpc2Vqw61jw60gcHJhdmEgZHXFoWV2bsOtaG8gdmxhc3RuaWN0dsOtIGEKdmXFoWtlcsOhIHByw6F2YSBrIGplamljaCB2w71rb251ICjigJ5wcsOhdmEgZHXFoWV2bsOtaG8Kdmxhc3RuaWN0dsOt4oCcKSBqc291IHYgbmVqxaFpcsWhw61tIHByYXZuZSBwxZnDrXB1c3RuZW0Kcm96c2FodSB2w71ocmFkbsOtbSB2bGFzdG5pY3R2w61tIHNwb2xlxI1ub3N0aSBKJkouClNwb2xlxI1ub3N0IEomSiBqZSBvcHLDoXZuxJtuYSB1xb7DrXZhdCB2w71zdHVweQpsaWJvdm9sbmUgZGxlIHN2w6lobyB1dsOhxb5lbsOtLCBiZXogamFrw71jaGtvbGkKb21lemVuw60gY28gZG8gw7p6ZW3DrSwgbW5vxb5zdHbDrSwgxI1hc3UgxI1pIHpwxa9zb2J1CnXFvml0w60sIGxpYm92b2xuZSAmIG5pbWkgbmFrbGFkYXQgYSBwb3NreXRub3V0IGplCnTFmWV0w61tIG9zb2LDoW0sIHplam1lbmEgcG9za3l0b3ZhdGVsxa9tCnpkcmF2b3Ruw61jaCBzbHXFvmViLCBhIGTDoWxlIGplIGpha2tvbGkgdXByYXZpdCwgZG9wbG5pdCwKZG9rb27EjWl0IMSNaSBqYWtrb2xpIGppbmFrIHptxJtuaXQgbmVibyB6YWhybm91dCBkbwpqaW7DvWNoIGNlbGvFryAodsSNZXRuxJsgamVqaWNoIHNwb2plbsOtIHMgKGppbsO9bSkKYXV0b3Jza8O9bSBkw61sZW0gbmVibyB6YcWZYXplbsOtIGRvIHNvdWJvcm7DqWhvCmF1dG9yc2vDqWhvIGTDrWxhKSwgYSB0byBpIHByb3N0xZllZG5pY3R2w61tIHTFmWV0w60gb3NvYnkuCkRvZGF2YXRlbCB0ZWR5IHTDrW10byBiZXrDunBsYXRuxJsgcG9zdHVwdWplCnNwb2xlxI1ub3N0aSBKJkogdmXFoWtlcsOhIHByw6F2YSBkdcWhZXZuw61obwp2bGFzdG5pY3R2w60gYSBwcsOhdmEgayBqZWppY2ggdsO9a29udSB2IG5lasWhaXLFocOtbQoKaW5mb3JtYXRpb24gcmVjaXBpZW50LCB0aGUgQ29udHJhY3RvciBhZ3JlZXMgbm90IHRvCmRpc2Nsb3NlIHRoZSBDb25maWRlbnRpYWwgSW5mb3JtYXRpb24gdG8gYW55IHBlcnNvbgp1bmxlc3MgdGhlIENvbnRyYWN0b3Igb2J0YWlucyB0aGUgcHJpb3Igd3JpdHRlbgphdXRob3JpemF0aW9uIGZyb20gSiZKLiBNb3Jlb3ZlciwgYWZ0ZXIgQWdyZWVtZW50CnRlcm1pbmF0aW9uIG9yIGV4cGlyYXRpb24gZm9yIGFueSByZWFzb24gb3IgYXQgdGhlCnJlcXVlc3Qgb2YgSiZKLCB0aGUgQ29udHJhY3RvciBzaGFsbCBwcm9tcHRseSByZXR1cm4KdG8gSiZKIGF8fCBvcmlnaW5hbHMgYW5kIGNvcGllcyBvZiB0aGUgZG9jdW1lbnRzIG9yCm90aGVyIG1hdGVyaWFscyBjb25zdGl0dXRpbmcgb3IgY29udGFpbmluZyB0aGUKQ29uZmlkZW50aWFsIEluZm9ybWF0aW9uLiBUaGUgb2JsaWdhdGlvbnMgcmVsYXRpbmcgdG8KdGhlIENvbmZpZGVudGlhbCBJbmZvcm1hdGlvbiBzaGFsbCBhbHNvIHN1cnZpdmUgZm9yIDUKeWVhcnMgYWZ0ZXIgdGVybWluYXRpb24gb3IgZXhwaXJhdGlvbiBvZiB0aGUKQWdyZWVtZW50LgoKMi4gfGYgSiZKIGRlbGl2ZXJzIHRvIHRoZSBDb250cmFjdG9yIGFueQpkb2N1bWVudHMgcmVsYXRlZCB0byBvciBuZWNlc3NhcnkgZm9yIEFncmVlbWVudApwZXJmb3JtYW5jZSwgdGhlIENvbnRyYWN0b3IgYWdyZWVzIHRvIHByb3Blcmx5CnN0b3JlIHN1Y2ggZG9jdW1lbnRzIGFuZCBwcmV2ZW50IGFjY2VzcyBvZiB0aGlyZApwYXJ0aWVzIHRvIHN1Y2ggZG9jdW1lbnRzLiBUaGUgQ29udHJhY3RvciBzaGFsbApyZXR1cm4gc3VjaCBkb2N1bWVudHMgdG8gSiZKIGFmdGVyIHRoZSBzZXJ2aWNlcwpzcGVjaWZpZWQgaW4gQXJ0aWNsZSB8IG9mIHRoZSBBZ3JlZW1lbnQgaGF2ZSBiZWVuCnBlcmZvcm1lZCBhbmQgdGh1cyBhZnRlciB0aGUgZXhwaXJhdGlvbiBvZiB0aGUKQWdyZWVtZW50LgoKMy4gVGhlIENvbnRyYWN0b3Igc2hhbGwgbm90IGRpc2Nsb3NlIHRvIEomSiBvcgppbmR1Y2UgSiZKIHRvIHVzZSBhbnkgY29uZmlkZW50aWF8IGluZm9ybWF0aW9uCmJlbG9uZ2luZyB0byBvdGhlciBwZXJzb25zLCBpbmNsdWRpbmcgb3RoZXIgY2xpZW50cwpvZiB0aGUgQ29udHJhY3Rvci4KCkludGVsbGVjdHVhbCBQcm9wZXJ0eSBSaWdodHMKCjEuIFRoZSBDb250cmFjdG9yIGhlcmVieSBhY2tub3dsZWRnZXMgYW5kCmFncmVlcyB0aGF0IGFueSBkaXNjb3ZlcmllcyBhbmQgaW52ZW50aW9ucywKcGF0ZW50YWJsZSBvciBub3QsIGFyaXNpbmcgb3V0IG9mIG9yIGluIGNvbm5lY3Rpb24Kd2l0aCB0aGlzIEFncmVlbWVudCwgaW5jbHVkaW5nIHdpdGhvdXQgfGltaXRhdGlvbgptYXJrZXRpbmcgaW5mb3JtYXRpb24sIG1lZGljYWwgcHJvY2VkdXJlcyBvcgpwcm9jZXNzZXMsIG1hcmtldGluZyBvciBidXNpbmVzcyBwcmFjdGljZXMsCnByb2NlZHVyZXMgb3IgbWV0aG9kb2xvZ3ksIGFuZCBwcm9kdWN0cyBhbmQKaW1wcm92ZW1lbnRzIHRoZXJldG8sIG9yIGFueSBkb2N1bWVudCwgd29yaywKcmVjb3JkaW5nLCB2aWRlbyBvciBvdGhlciBkZWxpdmVyYWJsZSBnZW5lcmF0ZWQgaW4KY29ubmVjdGlvbiB3aXRoIHRoZSBwZXJmb3JtYW5jZSBwdXJzdWFudCB0byB0aGUKQWdyZWVtZW50ICgiRGVsaXZlcmFibGVzICIpLCBhbmQgYW55IHJpZ2h0cyB0bwp0aGVtLCBpbmNsdWRpbmcgYW55IHJlbGF0ZWQgaW50ZXx8ZWN0dWF8IHByb3BlcnR5CnJpZ2h0cyBhbmQgYW55IHJpZ2h0cyB0byB0aGVpciBleGVyY2lzZSAo4oCcSW50ZWxsZWN0dWFsClByb3BlcnR5IFJpZ2h0cyIpIHdpbGwgYmUsIHRvIHRoZSBmdWxsZXN0IGxlZ2FsbHkKcGVybWlzc2libGUgZXh0ZW50LCB0aGUgZXhjbHVzaXZlIHByb3BlcnR5IG9mIEomSi4KSiZKIHdpbGwgYmUgZW50aXRsZWQgdG8gdXNlIGFueSBEZWxpdmVyYWJsZXMgYXQgaXRzCm93biBkaXNjcmV0aW9uLCB3aXRob3V0IGFueSB8aW1pdGF0aW9ucyBpbiB0ZXJyaXRvcnksCnF1YW50aXR5LCB0aW1lIG9yIG1hbm5lciBvZiB1c2UsIHRvIGRpc3Bvc2Ugb2Z0aGVtCmF0IGl0cyBvd24gZGlzY3JldGlvbiBhbmQgdG8gcHJvdmlkZSB0aGVtIHRvIHRoaXJkCnBhcnRpZXMsIGluIHBhcnRpY3VsYXIgdG8gaGVhbHRoY2FyZSBwcm92aWRlcnMsIGFuZCB0bwphbHRlciwgY29tcGxldGUsIGZpbmFsaXplIG9yIG90aGVyd2lzZSBtb2RpZnkgdGhlbSBvcgppbmNsdWRlIHRoZW0gaW4gb3RoZXIgY29tcG9zaXRpb25zIChpbmNsdWRpbmcgdGhlaXIKY29tYmluYXRpb24gd2l0aCBhKG5vdGhlcikgY29weXJpZ2h0ZWQgd29yayBvcgp0aGVpciBpbmNsdXNpb24gaW4gYSBjb21wb3NpdGUgY29weXJpZ2h0ZWQgd29yayksCmluY2x1ZGluZyBieSB1c2luZyBhIHRoaXJkIHBhcnR5IHRvIGRvIHNvLiBUaGUKQ29udHJhY3RvciB0aHVzIGhlcmVieSBhc3NpZ25zIHRvIEomSiwgZnJlZS1vZi0KY2hhcmdlLCBhbnkgfG50ZXx8ZWN0dWF8IFByb3BlcnR5IFJpZ2h0cyBhbmQgdGhlCgogCgoxNQoKSm9obnNvblN6Sm9obnNvbgoKcHJhdm5lIHDFmcOtcHVzdG5lbSByb3pzYWh1LCB2xI1ldG5lIG5lb21lemVuw6lobwpvcHJhdm5lbsOtamUgcG9zdG91cGl0IG5lb21lemVuZW11IHBvxI10dSB0xZlldMOtY2gKb3NvYiBhIHVkZWxpdCB0ZW10byB0xZlldMOtbSBvc29iw6FtIG9wcmF2bmVuaSBqZQpkw6FsZSBwb3N0b3VwaXQgZGFsxaHDrW0gdMWZZXTDrW0gb3NvYsOhbS4KCjIuIFYgcMWZw61wYWRlY2gsIGtkeSBwb3N0b3VwZW7DrSBrdGVyw6lob2tvbGkKcHJhdmEgZHXFoWV2bsOtaG8gdmxhc3RuaWN0dsOtIGFuZWJvIHByw6F2YSBrIGplaG8KdsO9a29udSBkfGUgb2RzdGF2Y2UgMSB0w6l0byBzZWtjZSBuZW7DrSBwcmF2bmUKcMWZw61wdXN0bsOpLCBkb2RhdmF0ZWwgdMOtbXRvIHBvc2t5dHVqZSBzcG9sZcSNbm9zdGkKSiZKIHbDvWhyYWRuw60sIGJlesO6cGxhdG5vdSBsaWNlbmNpIGsgdsO9a29udQp0YWtvdmVobyBwcmF2YSBkdcWhZXZuw61obyB2bGFzdG5pY3R2w60g4oCUIHplam3DqW5hIGsKdsO9a29udSBwcmF2YSB1xb7DrXZhdCBqYWvDvWtvbGkgdsO9c3R1cCBtYWrDrWPDrSBwb3ZhaHUKYXV0b3Jza8OpaG8gZMOtbGEsIGEgdG8gdiBuZWrFoWlyxaHDrW0gcHJhdm5lIHDFmcOtcHVzdG5lbQpyb3pzYWh1LCBtaW1vIGppbsOpLCBrIGpha2VtdWtvbGkgw7rEjWVsdSwgYmV6Cmpha8O9Y2hrb2xpIG9tZXplbsOtIHBva3VkIGpkZSBvIMO6emVtw60sIG1ub8W+c3R2w60sCnpwxa9zb2IgdcW+aXTDrSBuZWJvIMSNYXMgKHMgdsO9amlta292b3Ugb21lemVuw60KcGx5bm91Y8OtY2ggemUgc2Ftb3Ruw6kgcG92YWh5IGRvdMSNZW7DqWhvIHByYXZhCmR1xaFldm7DrWhvIHZsYXN0bmljdHbDrSksIHbEjWV0bmUgbmVvbWV6ZW7DqWhvIChpKQpvcHLDoXZuxJtuw60gcG9za3l0bm91dCBwb2RsaWNlbmNpIG5lb21lemVuZW11CnBvxI10dSB0xZlldMOtY2ggb3NvYiBhIHVkZWxpdCBqaW0gb3Byw6F2bsSbbsOtIGsgZGFsxaHDrW11CnBvc2t5dG51dMOtIHBvZGxpY2VuY8OtIGRhbMWhw61tIHTFmWV0w61tIG9zb2LDoW0sIChpaSkKb3Byw6F2bsSbbsOtIHR1dG8gdsO9aHJhZG7DrSB8aWNlbmNpIHBvc3RvdXBpdApuZW9tZXplbmVtdSBwb8SNdHUgdMWZZXTDrWNoIG9zb2IgYSB1ZGVsaXQgamltCm9wcsOhdm7Em27DrSB0dXRvIHbDvWhyYWRuw60gfGljZW5jaSBkYWxlIHBvc3RvdXBpdApkYWzFocOtbSB0xZlldMOtbSBvc29iw6FtIGEgKGlpaSkgb3Byw6F2bsSbbsOtIHbDvXN0dXB5CnVwcmF2aXQsIGRvcGxuaXQsIGRva29uxI1pdCDEjWkgamFra29saSBqaW5ha3ptZW5pdCBuZWJvCmplIHphaHJub3V0IGRvIGppbsO9Y2ggY2Vsa8WvICh2xI1ldG7EmyBqZWppY2ggc3BvamVuw60gcwooamluw71tKSBhdXRvcnNrw71tIGTDrWxlbSBuZWJvIHphxZlhemVuw60gZG8Kc291Ym9ybsOpaG8gYXV0b3Jza8OpaG8gZMOtbGEpLCBhIHRvIGkgcHJvc3TFmWVkbmljdHbDrW0KdMWZZXTDrSBvc29ieS4gU3BvbGXEjW5vc3QgSiZKIG5lbsOtIHBvdmlubmEgdHV0bwp2w71ocmFkbsOtIHxpY2VuY2kgdnl1xb7DrXQuCgozLiBEb2RhdmF0ZWwgcHJvaGxhxaF1amUgYSB6YXJ1xI11amUsIMW+ZSBqZQpvcHLDoXZuxJtuIHVkZWxpdCBzcG9sZcSNbm9zdGkgSiZKIG9wcsOhdm7Em27DrSBkbGUgdMOpdG8Kc2VrY2UsIGFuacW+IGJ5IHBvcnXFoWlsIHByYXZhIHTFmWV0w61jaCBvc29iLiBEb2RhdmF0ZWwKb2TFoWtvZG7DrSBzcG9sZcSNbm9zdCBKJkogemFqYWtla29saXYgbmFyb2t5dMWZZXTDrWNoCnN0cmFuIHogZMWvdm9kdSBwb3J1xaFlbsOtIHByYXYgZHXFoWV2bsOtaG8gdmxhc3RuaWN0dsOtCmt2w71zdHVwxa9tLiBEb2RhdmF0ZWxvdmEgT2RtxJtuYSB6YSBwb3NreXRudXTDrQp0ZWNodG8gb3Byw6F2bsSbbsOtIHNwb2xlxI1ub3N0aSBKJkosIGplIGppxb4gemFocm51dGEKdiBvZG1lbmUgemEgc2x1xb5ieS4gQnVkZS1JaSB6IGpha8OpaG9rb2xpIGTFr3ZvZHUKbnV0bmUgdnnEjcOtc2xpdCB2w73FoWkgdGFrb3ZlIG9kbcSbbnksIHBhayDEjWluw60gNSAlCnogb2RtxJtueSB6YSBzbHXFvmJ5LgoKNC4gVWtvbsSNZW7DrSBuZWJvIHZ5cHLFoWVuw60gZG9ob2R5IG5lYnVkZQptw610IHZsaXYgbmEgcHLDoXZhIHNtbHV2bsOtY2ggc3RyYW4gdmUgdnp0YWh1CmsgdsO9c3R1cMWvbSBkbGUgdMOpdG8gcMWZw61sb2h5LgoKVsWhZW9iZWNuw6EgdXN0YW5vdmVuw60KCjEuIFBva3VkIGplIGRvZGF2YXRlbGVtIGZ5emlja8OhIG9zb2JhIGEgbmEKcG9za3l0b3ZhbsOtIHNsdcW+ZWIgcG9kbGUgdMOpdG8gZG9ob2R5IHNlIHZ6dGFodWrDrQpwcm9mZXNuw60ga29kZXh5IGEvbmVibyBwcmFjb3Zuw60gcMWZZWRwaXN5CnZ5xb5hZHVqw61jw60gc2NodmFsZW5pIHByb2Zlc27DrWhvIHNkcnXFvmVuw60gYS9uZWJvCnphbcSbc3RuYXZhdGVsZSwgZG9kYXZhdGVsIHphamlzdMOtIHrDrXNrw6Fuw60gdGFrb3ZlaG8KCnJpZ2h0cyB0byB0aGVpciBleGVyY2lzZSwgdG8gdGhlIGZ1bGxlc3QgbGVnYWxseQpwZXJtaXNzaWJsZSBleHRlbnQsIGluY2x1ZGluZyBhbiB1bmxpbWl0ZWQgcmlnaHQgdG8KZnVydGhlciBhc3NpZ24gdGhlbSB0byBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIHRoaXJkCnBhcnRpZXMgYW5kIHRvIGdyYW50IHRvIHN1Y2ggdGhpcmQgcGFydGllcyB0aGUgcmlnaHQgdG8KZnVydGhlciBhc3NpZ24gdGhlbSB0byBvdGhlciB0aGlyZCBwYXJ0aWVzLgoKMi4gV2hlcmUgYXBwbGljYWJsZSBsYXdzIHByZWNsdWRlIHRoZQphc3NpZ25tZW50IG9mIGFueSBvZiB0aGUgfG50ZXx8ZWN0dWF8IFByb3BlcnR5ClJpZ2h0cyBhbmQvb3Igb2YgdGhlIHJpZ2h0IHRvIGl0cyBleGVyY2lzZSBwdXJzdWFudCB0bwphcnRpY2xlIDEgb2YgdGhpcyBzZWN0aW9uLCB0aGUgQ29udHJhY3RvciBoZXJlYnkKZ3JhbnRzIHRvIEomSiBhbiBleGNsdXNpdmUsIHJveWFsdHktZnJlZSBsaWNlbnNlIHRvCmV4ZXJjaXNlIGFueSBzdWNoIHxudGV8fGVjdHVhfCBQcm9wZXJ0eSBSaWdodHMg4oCUIGluCnBhcnRpY3VsYXIsIHRvIGV4ZXJjaXNlIHRoZSByaWdodCB0byB1c2UgYW55CkRlbGl2ZXJhYmxlIGhhdmluZyB0aGUgbmF0dXJlIG9mIGEgY29weXJpZ2h0ZWQgd29yawrigJQgdG8gdGhlIGZ1bGxlc3QgbGVnYWxseSBwZXJtaXNzaWJsZSBleHRlbnQsIGFtb25nCm90aGVycywgZm9yIGFueSBwdXJwb3NlLCB3aXRob3V0IGFueSB8aW1pdGF0aW9ucyBpbgp0ZXJyaXRvcnksIHF1YW50aXR5LCBtYW5uZXIgb2YgdXNlIG9yIHRpbWUgKHdpdGggdGhlCmV4Y2VwdGlvbiBvZiB8aW1pdGF0aW9ucyBhcmlzaW5nIGZyb20gdGhlIHZlcnkgbmF0dXJlCm9mIHRoZSB8bnRlfHxlY3R1YXwgUHJvcGVydHkgUmlnaHQgaW4gcXVlc3Rpb24pLAppbmNsdWRpbmcgYW4gdW5saW1pdGVkIChpKSByaWdodCB0byBncmFudCBhIHN1Yi1JaWNlbnNlCnRvIGFuIHVubGltaXRlZCBudW1iZXIgb2Z0aGlyZCBwYXJ0aWVzIGFuZCB0byBncmFudAp0aGVtIHRoZSByaWdodCB0byBncmFudCBhIGZ1cnRoZXIgc3ViLUlpY2Vuc2UgdG8gb3RoZXIKdGhpcmQgcGFydGllcywgKGlpKSByaWdodCB0byBhc3NpZ24gdGhpcyBleGNsdXNpdmUKbGljZW5zZSB0byBhbiB1bmxpbWl0ZWQgbnVtYmVyIG9mIHRoaXJkIHBhcnRpZXMgYW5kCnRvIGdyYW50IHRoZW0gdGhlIHJpZ2h0IHRvIGZ1cnRoZXIgYXNzaWduIHRoaXMKZXhjbHVzaXZlIGxpY2Vuc2UgdG8gb3RoZXIgdGhpcmQgcGFydGllcyBhbmQgKGlpaSkgcmlnaHQKdG8gYWx0ZXIsIGNvbXBsZXRlLCBmaW5hbGl6ZSBvciBvdGhlcndpc2UgbW9kaWZ5IGFueQpEZWxpdmVyYWJsZXMgb3IgdG8gaW5jfHVkZSB0aGVtIGluIG90aGVyCmNvbXBvc2l0aW9ucyAoaW5jbHVkaW5nIHRoZWlyIGNvbWJpbmF0aW9uIHdpdGgKYShub3RoZXIpIGNvcHlyaWdodGVkIHdvcmsgb3IgdGhlaXIgaW5jbHVzaW9uIGluIGEKY29tcG9zaXRlIGNvcHlyaWdodGVkIHdvcmspLCBpbmNsdWRpbmcgYnkgdXNpbmcgYQp0aGlyZCBwYXJ0eSB0byBkbyBzby4gSiZKIGlzIG5vdCBvYmxpZ2VkIHRvIHVzZSB0aGUKYWJvdmUgZXhjbHVzaXZlIGxpY2Vuc2UuCgozLiBUaGUgQ29udHJhY3RvciByZXByZXNlbnRzIGFuZCB3YXJyYW50cwp0aGF0IGl0IGlzIGVudGl0fGVkIHRvIGdyYW50IHRoZSBDbGllbnQgdGhlIHJpZ2h0cyB1bmRlcgp0aGlzIHNlY3Rpb24gd2l0aG91dCBpbmZyaW5naW5nIGFueSB0aGlyZCBwYXJ0aWVz4oCcCnJpZ2h0cy4gVGhlIENvbnRyYWN0b3Igc2hhbGwgaW5kZW1uaWZ5IEomSiBmcm9tIGFuZAphZ2FpbnN0IGFueSB0aGlyZCBwYXJ0eSBjbGFpbXMgZHVlIHRvIGEgdmlvbGF0aW9uIG9mCmludGV8fGVjdHVhfCBwcm9wZXJ0eSByaWdodHMgdG8gdGhlIGRlbGl2ZXJhYmxlcy4gVGhlCkNvbnRyYWN0b3IncyByZW11bmVyYXRpb24gZm9yIGdyYW50aW5nIHRoZXNlIHJpZ2h0cwp0byB0aGUgSiZKIGlzIGFscmVhZHkgaW5jbHVkZWQgaW4gdGhlIHJlbXVuZXJhdGlvbgpmb3IgdGhlIHNlcnZpY2VzLiB8ZiBpdCBpcyBuZWNlc3NhcnksIGZvciBhbnkgcmVhc29uLAp0byBxdWFudGlmeSB0aGUgYW1vdW50IG9mIHN1Y2ggcmVtdW5lcmF0aW9uLCB0aGVuCml0IGFtb3VudHMgdG8gNSUgb2YgdGhlIHJlbXVuZXJhdGlvbiBmb3IgdGhlCnNlcnZpY2VzLgoKNC4gVGVybWluYXRpb24gb3IgZXhwaXJhdGlvbiBvZiB0aGUgQWdyZWVtZW50CnNoYWxsIG5vdCBhZmZlY3QgdGhlIHJpZ2h0cyBvZnRoZSBQYXJ0aWVzIGluIHJlbGF0aW9uIHRvCnRoZSBEZWxpdmVyYWJsZXMgYXMgc2V0IG91dCBpbiB0aGlzIEFwcGVuZGl4LgoKR2VuZXJhbCBwcm92aXNpb25zCgoxLiBXaGVyZSB0aGUgQ29udHJhY3RvciBpcyBhIG5hdHVyYWwgcGVyc29uCmFuZCB0aGUgcHJvdmlzaW9uIG9mIHRoZSBzZXJ2aWNlcyB1bmRlciB0aGUKQWdyZWVtZW50IGlzIHN1YmplY3QgdG8gY29kZXMgb2YgcHJvZmVzc2lvbmFsCmNvbmR1Y3QgYW5kL29yIHdvcmsgcmVndWxhdGlvbnMgcmVxdWlyaW5nIHRoZQphcHByb3ZhbCBmcm9tIGEgcHJvZmVzc2lvbmFsIGJvZHkgYW5kL29yIGVtcGxveWVyLAoKIAoKMTYKCkpvaG5zb25TekpvaG5zb24KCnNjaHZhbGVuaS4gUG9rdWQgZG9kYXZhdGVsZW0gbmVuw60gZnl6aWNrw6Egb3NvYmEKYW5hIHBvc2t5dG92YW7DrSBzbHXFvmViIHBvZGxlIHTDqXRvIGRvaG9keSBzZQp2enRhaHVqw60gb21lemVuw60gdXZlZGVuYSB2cMWZZWRjaG96w60gdmV0ZSwKZG9kYXZhdGVsIHphamlzdMOtLCDFvmUgamVobyB6YW1lc3RuYW5jaSwga3RlcmUgcG92xJvFmcOtCnBvc2t5dG92w6Fuw61tIHNsdcW+ZWIgcG9kbGUgdMOpdG8gZG9ob2R5LCB6w61za2Fqw60KdGFrb3ZlIHNjaHbDoWxlbsOtLiBOYSDFvsOhZG9zdCBzcG9sZcSNbm9zdGkgSiZKCnDFmWVkbG/FvsOtIGRvZGF2YXRlbCBuZXByb2RsZW7EmyBww61zZW1uw70gZMWva2F6Cm8gesOtc2vDoW7DrSBwxZnDrXNsdcWhbsO9Y2ggc2NodmFsZW5pLgoKMi4gRG9kYXZhdGVsIGpha28gZnl6aWNrw6Egb3NvYmEgYnVkZQppbmZvcm1vdmF0IHNwb2xlxI1ub3N0IEomSiwgamVzdGxpxb5lIHppc2thIHBvc3RhdmVuw60sCmt0ZXLDqSBtdSB1bW/FvsWIdWplIG92bGl2xYhvdmF0IG5ha3VwbsOtIHJvemhvZG51dMOtCmpha2Vob2tvbGkgc3ViamVrdHUsIGEgdG8gYmVoZW0gdHJ2YW7DrSBkb2hvZHkKYSBkbyA2IG3Em3PDrWPFryBwbyBqZWrDrW0gdnlwcsWhZW7DrSBuZWJvIHVrb27EjWVuw60uClRhdG8gbmFrdXBuw60gcm96aG9kbnV0w60gc2UgbW9ob3UgdMO9a2F0IHRlbmRlcsWvCm9yZ2FuaXpvdmFuw71jaCB6ZHJhdm90bmlja8O9bWkgb3JnYW55IG5lYm8Kcm96aG9kbnV0w60gdsO9Ym9yxa8gcHJvIHVocmFkeSBsw6lrxa8gdmUgdmXFmWVqbsO9Y2gKbmVtb2NuaWPDrWNoIG5lYm8gc291a3JvbcO9Y2ggc3ViamVrdGVjaC4KViBwxZnDrXBhZMSbIHRha292ZWhvIG96bmFtZW7DrSBidWRlIG3DrXQgc3BvbGXEjW5vc3QKSiZKIHByYXZvIHZ5cG92xJtkxJt0IHDDrXNlbW7EmyBkb2hvZHUgcyBva2Ftxb5pdG91CsO6xI1pbm5vc3TDrS4KCjMuIFBva3VkIGplIGRvZGF2YXRlbCwgamFrbyBmeXppY2vDoSBvc29iYSwKemFtxJtzdG7DoW4gb3Jnw6FuZW0gdmXFmWVqbsOpaG8gemRyYXbDrSwgbmVibyBqYWtvCmRvZGF2YXRlbCBvdmxpdsWIdWplIG5ha3VwbsOtIHJvemhvZG51dMOtIHDFmWlqw61tYW7DoQp2ZGFuZW0gb3JnYW51LCBzcG9sZcSNbm9zdCBKJkogamUgb3Byw6F2bsSbbmEKCnDDrXNlbW7EmyBpbmZvcm1vdmF0IGRvZGF2YXRlbG92YQp6YW1lc3RuYXZhdGV8ZS9vYmplZG5hdGV8ZSBvIHRvbSwgxb5lIGJ5bGEKdXphdsWZZW5hIHRhdG8gZG8gaG9kYS4gS28gcGlpIG96bmFtZW7DrQoKemFtZXN0bmF2YXRlbGkvb2JqZWRuYXRlbGkgemHFoWxlIHRha2UgZG9kYXZhdGVsaS4KCjQuIERvZGF2YXRlbCBidWRlIHNwb2x1cHJhY292YXQgc2UKc3BvbGXEjW5vc3TDrSBKJkogbmEgcG9kcm9ibsOpIHNwZWNpZmlrYWNpIHJvenNhaHUKc2x1xb5lYiwgbmEga3RlcmUgc2Ugdnp0YWh1asOtIG9iamVkbsOhdmt5LgoKNS4gVnJhbWNpIHBvc2t5dG92w6Fuw60gc2x1xb5lYiwgZG9kYXZhdGVsCnNvdWhsYXPDrSwgxb5lIGJ1ZGUgaW5mb3Jtb3ZhdCDDusSNYXN0bsOta3kgamVkbmFuw60sIMW+ZQpzcG9sZcSNbm9zdCBKJkogcGxhdMOtIGRvZGF2YXRlbGkgcG9wbGF0ZWsKdnNvdXZpc2xvc3RpIHNwb3NreXRvdmFuw61tIHNsdcW+ZWIuIFDFr3NvYmVuw60Kc3BvbGXEjW5vc3RpIEomSiBqYWtvIHbDvXJvYmNlIMSNaSBkaXN0cmlidXRvcmEKemRyYXZvdG5pY2vDvWNoIHByb3N0xZllZGvFryBqZSByZWd1bG92w6FubwpwxZnDrXNsdcWhbsO9bWkgemFrb255LiBWxaFlY2huYSBwcm9obMOhxaFlbsOtIHXEjWluxJtuYQpkb2RhdmF0ZWxlbSBuZWJvIGplaG8gemFtZXN0bmFuY2kgdmUgdnp0YWh1Cmt2w71yb2Jrxa9tIHNwb2xlxI1ub3N0aSBKJkosIHBva3VkIGpkZSBvamVqaWNoCnBvdcW+aXTDrSwgYmV6cGXEjW5vc3QgYSB2w71rb24gYS9uZWJvIHNrdXRlxI1uZSBuZWJvCnBvdGVuY2nDoWxuw60ga2xpbmlja8OpIHbDvXNsZWRreSwgYcWlIHXFviBwb3pvcm92YW7DqQpuZWJvIG/EjWVrw6F2YW7DqSwgYnVkb3UgcMWZZXNuw6EsIHDFmWltxJvFmWVuxJsKdnl2w6HFvmVuYSwgbmV6YXZhZGVqw61jw60gYSBidWRvdSBvYnNhaG92YXQga2zDrcSNb3bDqQppbmZvcm1hY2Ugb3puYcSNZW7DrSwgYmV6cGXEjW5vc3RpIGF1xI1pbm5vc3RpCnRha292ZWhvIHbDvXJvYmt1LiBQb2t1ZCBkb2RhdmF0ZWwgbmVibyBqZWhvCnphbWVzdG5hbmNpIHZ5asOhZMWZw60gc3bFr2ogbsOhem9yLCBtdXPDrSBqYXNuZSB1dsOpc3QsCsW+ZSBzZSBqZWRuYSBvamVqaWNoIG5hem9yIGHFvmUgbmVuw60gbnV0bsOpCnBvZHBvcm92w6FuIHNwb2xlxI1ub3N0w60gSiZKIG5lYm8gbsSba3Rlcm91IHogamVqw61jaApwxZlpZHJ1xb5lbsO9Y2ggc3BvbGXEjW5vc3TDrS4KCjYuIFBva3VkIHNpIHNtbHV2bsOtIHN0cmFueSBtZXppIHNlYm91CnZ5bWVuw60gb3NvYm7DrSDDumRhamUgc3bDvWNoIHrDoXN0dXBjxa8sCgp0aGUgQ29udHJhY3RvciBzaGFsbCBlbnN1cmUgdGhhdCBzdWNoIGFwcHJvdmFsIGlzCm9idGFpbmVkLiBXaGVyZSB0aGUgQ29udHJhY3RvciBpcyBub3QgYSBuYXR1cmFsCnBlcnNvbiBhbmQgdGhlIHByb3Zpc2lvbiBvZiB0aGUgc2VydmljZXMgdW5kZXIgdGhlCkFncmVlbWVudCBpcyBzdWJqZWN0IHRvIHRoZSB8aW1pdGF0aW9ucyBpbmRpY2F0ZWQgaW4KdGhlIHByZWNlZGluZyBzZW50ZW5jZSwgdGhlIENvbnRyYWN0b3Igc2hhbGwKZW5zdXJlIHRoYXQgaXRzIGVtcGxveWVlcyB0byBXaG9tIGl0IGVudHJ1c3RzIHRoZQpwcm92aXNpb24gb2YgdGhlIHNlcnZpY2VzIHVuZGVyIHRoZSBBZ3JlZW1lbnQKb2J0YWluIHN1Y2ggYXBwcm92YWwuIEF0IHRoZSByZXF1ZXN0IG9mIEomSiwgdGhlCkNvbnRyYWN0b3Igc2hhbGwgcHJvbXB0bHkgcHJvdmlkZSB3cml0dGVuIGV2aWRlbmNlCm9mIG9idGFpbmluZyB0aGUgcmVsZXZhbnQgYXBwcm92YWxzLgoKMi4gVGhlIENvbnRyYWN0b3IgYmVpbmcgYSBuYXR1cmFsIHBlcnNvbiBzaGFsbApub3RpZnkgSiZKIGlmIGl0IG9idGFpbnMgYSBwb3NpdGlvbiBhbGxvd2luZyB0bwppbmZsdWVuY2UgdGhlIHB1cmNoYXNpbmcgZGVjaXNpb25zIG9mIGFueSBlbnRpdHksCmR1cmluZyB0aGUgdGVybSBvZiB0aGUgQWdyZWVtZW50IGFuZCB3aXRoaW4gNgptb250aHMgYWZ0ZXIgZXhwaXJhdGlvbiBvciB0ZXJtaW5hdGlvbiBoZXJlb2YuIFN1Y2gKcHVyY2hhc2luZyBkZWNpc2lvbnMgbWF5IGNvbmNlcm4gdGVuZGVycwpvcmdhbml6ZWQgYnkgaGVhbHRoIGF1dGhvcml0aWVzIG9yIGRlY2lzaW9ucyBieSBkcnVnCnJlaW1idXJzZW1lbnQgY29tbWl0dGVlcyBhdCBwdWJsaWMgaG9zcGl0YWxzIG9yCnByaXZhdGUgZW50aXRpZXMuIEluIHRoZSBldmVudCBvZiBzdWNoIG5vdGlmaWNhdGlvbiwKSiZKIHNoYWxsIGhhdmUgdGhlIHJpZ2h0IHRvIHRlcm1pbmF0ZSB0aGUgQWdyZWVtZW50CndpdGggaW1tZWRpYXRlIGVmZmVjdCBieSB3cml0dGVuIG5vdGljZS4KCjMuIFdoZXJlIHRoZSBDb250cmFjdG9yLCBiZWluZyBhIG5hdHVyYWwKcGVyc29uLCBpcyBlbXBsb3llZCBieSBhIHB1YmxpYyBoZWFsdGggaW5zdGl0dXRpb24sCm9yLCBhcyBhIGNvbnRyYWN0b3IsIGluZmx1ZW5jZXMgcHVyY2hhc2luZyBkZWNpc2lvbnMKdGFrZW4gaW4gdGhhdCBpbnN0aXR1dGlvbiwgSiZKIGlzIGVudGl0bGVkIHRvIG5vdGlmeSB0aGUKQ29udHJhY3RvcidzIGVtcGxveWVyL2NvbnRyYWN0IGdpdmVyIGluIHdyaXRpbmcgb2YKdGhlIGZhY3QgdGhhdCB0aGUgQWdyZWVtZW50IGhhcyBiZWVuIGNvbmNsdWRlZC4gQQpjb3B5IG9mIHRoZSBub3RpZmljYXRpb24gdG8gdGhlIGVtcGxveWVyL2NvbnRyYWN0CmdpdmVyIHNoYWxsIGFsc28gYmUgc2VudCB0byB0aGUgQ29udHJhY3Rvci4KCjQuIFRoZSBDb250cmFjdG9yIHNoYWxsIGNvb3BlcmF0ZSB3aXRoIEomSiBpbgpTcGVjaWZ5aW5nIGluIGRldGFpfCB0aGUgc2NvcGUgb2YgdGhlIHNlcnZpY2VzCmNvdmVyZWQgYnkgdGhlIE9yZGVycy4KCjUuIEFzIHBhcnQgb2Ygc2VydmljZSBwcm92aXNpb24sIHRoZSBDb250cmFjdG9yCmFncmVlcyB0byBpbmZvcm0gdGhlIHBhcnRpY2lwYW50cyBvZnRoZSBtZWV0aW5nIHRoYXQKSiZKIHBheXMgdGhlIENvbnRyYWN0b3IgYSBmZWUgaW4gY29ubmVjdGlvbiB3aXRoCnRoZSBzZXJ2aWNlcyBwcm92aWRlZC4gVGhlIG9wZXJhdGlvbnMgb2YgSiZKIGFzIGEKbWFudWZhY3R1cmVyIG9yIGEgZGlzdHJpYnV0b3Igb2YgbWVkaWNhbCBkZXZpY2VzIGFyZQpyZWd1bGF0ZWQgYnkgdGhlIGFwbGljYWJsZSBsYXdzLiBBfHwgc3RhdGVtZW50cwptYWRlIGJ5IHRoZSBDb250cmFjdG9yIG9yIGl0cyBlbXBsb3llZXMKY29uY2VybmluZyBKJkogcHJvZHVjdHMgYXMgcmVnYXJkcyB0aGVpciB1c2UsCnNhZmV0eSBhbmQgcGVyZm9ybWFuY2UgYW5kL29yIGFjdHVhfCBvciBwb3RlbnRpYWwKY3xpbmljYXwgcmVzdWx0cywgd2hldGhlcm9ic2VydmVkIG9yIGV4cGVjdGVkLCBzaGFsbApiZSBhY2N1cmF0ZSwgcmVhc29uYWJseSBiYWxhbmNlZCwgbm90IG1pc2xlYWRpbmcKYW5kIHNoYWxsIGluY2x1ZGUga2V5IGluZm9ybWF0aW9uIG9uIHRoZSB8YWJlfHxpbmcsCnNhZmV0eSBhbmQgZWZmaWNhY3kgb2Ygc3VjaCBwcm9kdWN0LiBXaGVuIHRoZQpDb250cmFjdG9yIG9yIGl0cyBlbXBsb3llZXMgZXhwcmVzcyB0aGVpciBvcGluaW9uLAp0aGV5IG11c3QgY3xlYXJ8eSBzdGF0ZSB0aGF0IHRoaXMgaXMgdGhlaXIgb3BpbmlvbiBhbmQKdGhhdCBpdCBpcyBub3QgbmVjZXNzYXJpbHkgc3VwcG9ydGVkIGJ5IEomSiBvciBhbnkgb2YKaXRzIGFmZmlsaWF0ZXMuCgo2LiB8Zgp0aGVtc2VsdmVzCgp0aGUKdGhlCgpiZXR3ZWVuCnRoZWlyCgpQYXJ0aWVzIGV4Y2hhbmdlCnBlcnNvbmFsIGRhdGEgb2YKCiAKCjE3CgpKb2huc29uU3pKb2huc29uCgp6YW3Em3N0bmFuY8WvIG5lYm8gamluw71jaCBwxZlpZHJ1xb5lbsO9Y2ggb3NvYgpvZHBvdsSbZG7DvWNoIHphIGtvbnRha3R5IHZ6YWxlxb5pdG9zdGVjaApzb3V2aXNlasOtY8OtY2ggc3BsbsSbbsOtbSB0w6l0byBkb2hvZHkgbmVibwpvZHBvdsSbZG7DvWNoIHphIGplasOtIHBsbmVuaSwgcMWZaWrDrW1hasOtY8OtIHN0cmFuYQp6cHJhY3VqZSB0eXRvIG9zb2Juw60gw7pkYWplIHZ5bHVjbmUgdmUgeXp0YWh1IGsgdMOpdG8KZG9ob2RlIGFwcm8gdWNlbHkgamVqw61obyBwbG5lbmkuIFVkYWplIGJ1ZG91CnZ0YWtvdmVtIHDFmcOtcGFkZSB6cMWZw61zdHVwbsSbbnkgbmEgemFrbGFkZSDEjWwuIDYKb2RzdC4gMS4gcMOtc20uIGYpIE5hxZnDrXplbsOtIEV2cm9wc2vDqWhvIHBhcmxhbWVudHUKYVJhZHkgKEVVKSAyMDE2LzY3OSB6ZSBkbmUgMjcuIGR1Ym5hIDIwMTYKb29jaHJhbmUgZnl6aWNrw71jaCBvc29iIHZzb3V2aXNsb3N0aSBzZQp6cHJhY292w6Fuw61tIG9zb2Juw61jaCDDumRhasWvIGEgb3ZvbG5lbSBwb2h5YnUKdMSbY2h0byDDumRhasWvIGEgb3pydcWgZW7DrSBzbWVybmljZSA5NS80NiBFUwoob2JlY25lIG5hxZnDrXplbsOtIG8gb2NocmFuxJsgb3NvYm7DrWNoIMO6ZGFqxa8pLCB0YWtlCm96bmHEjW92YW7DqWhvIGpha28gR0RQUiBJbmZvcm1hY2UgbyBwcmF2aWRsZWNoCnpwcmFjb3ZhbsOtIHbDvcWhZSB1dmVkZW7DvWNoIG9zb2Juw61jaCDDumRhasWvCnDFmWlqYXTDvWNoIHNwb2xlxI1ub3N0w60gSiZKIG9kIGRvZGF2YXRlbGUganNvdQpzb3XEjcOhc3TDrSBwxZnDrWxvaHkgSW5mb3JtYWNlIG8gcHJhdmlkbGVjaCB6cHJhY292w6Fuw60Kb3NvYm7DrWNoIMO6ZGFqxa8uIFDFmWVkIHDFmWVkw6Fuw61tIGpha8O9Y2hrb2xpCm9zb2Juw61jaCDDumRhasWvIHN2w71jaCB6w6FzdHVwY8WvLCB6YW3Em3N0bmFuY8WvCm5lYm8gamluw71jaCBzcG9sZcSNbsOta8WvIHNwb2xlxI1ub3N0aSBKJkogc2UKZG9kYXZhdGVsIHphdmF6dWplIHN1Ympla3R1IHVkYWrFryBwb3NreXRub3V0CmluZm9ybWFjZSB1dmVkZW7DqSB2IHDFmcOtbG96ZSBJbmZvcm1hY2UKbyBwcmF2aWRsZWNoIHpwcmFjb3bDoW7DrSBvc29ibsOtY2ggw7pkYWrFry4KCjcuIELEm2hlbSBwbG7Em27DrSBzbHXFvmViIHBvZGxlIHTDqXRvIGRvaG9keQpidWRlIGRvZGF2YXRlbCBkb2Ryxb5vdmF0IHbFoWVjaG55IHBsYXRuw6kgcHLDoXZuw60KYSBzcHLDoXZuw60gcMWZZWRwaXN5IGRlZmlub3ZhbmUgdiBwxZnDrWxvemUKRG9kcsW+b3bDoW7DrSBwcm90aWtvcnVwxI1uw61jaCB6w6Frb27Fry4gRG9kYXZhdGVsCnphcnXEjXVqZSwgxb5lIG5lcG9kbMOpaMOhIMW+YWRuw71tIHrDoXZhemvFr20sIGplxb4gYnkKcMWZZWthxb5lbHksIGJyYW5pbHkgbmVibyBvbWV6b3ZhbHkgamVobyBzY2hvcG5vc3QKcGxuaXQgcG92aW5ub3N0aSBwb2RsZSB0w6l0byBkb2hvZHkuCgpQb3Zpbm5vc3RpIHTDvWthasOtY8OtIHNlIG9uZW1vY27Em27DrSBDT1ZJRC0xOQoKMS4gRG9kYXZhdGVsIGJ1ZGUgZG9kcsW+b3ZhdCB2xaFlY2hueSBtw61zdG7DrQpwxZllZHBpc3kgc291dmlzZWrDrWPDrSBzb25lbW9jbmVuw61tIENPVklELTE5CmEvbmVibyBpbmZla8SNbsOtbWkgb25lbW9jbsSbbsOtbWksIHZjZXRuZSBwcmF2aWRlbApzdGFub3ZlbsO9Y2ggbsOtxb5lLgoKMi4gRG9kYXZhdGVsIHNtw60sIHYgbcOtxZllIHVwcmF2ZW7DqSB2dGV0bwpkb2hvZGUsIHBvc2t5dG92YXQgcGxuZW7DrSB1dmVkZW7DqSB2IHRldG8gZG9ob2RlCnZwcm9zdG9yYWNoIHNwb2xlxI1ub3N0aSBKJkogYS9uZWJvIG5hIGppbsO9Y2gKbcOtc3RlY2ggKOKAnsW+aXZlIGFrY2XigJwpIG5lYm8gcHJvc3TFmWVkbmljdHbDrW0KaW50ZXJuZXR1LgoKMy4gViBwxZnDrXBhZMSbIHBvc2t5dG92w6Fuw60gc2x1xb5lYiDFvml2w71jaCBha2PDrQpzZSBzbWx1dm7DrSBzdHJhbnkgZG9ob2RseSB0YWt0bzoKCmEpIFNwb2xlxI1ub3N0IEomSiBwcm9obGHFoXVqZSwgxb5lIHBvZG5pa2xhCmEgYnVkZSBpIG5hZMOhbGUgcG9kbmlrYXQgdsWhZWNobnkgcMWZaW3Em8WZZW7DqSBrcm9reQpzY8OtbGVtIG1pbmltYWxpem92YXQgamFrZWtvbGkgcml6aWtvIG5ha2F6eQppbmZla8SNbsOtbSBvbmVtb2NuZW7DrW0gemUgc3RyYW55IGRvZGF2YXRlbGUKbmVibyBqZWhvIHphbcSbc3RuYW5jxa8sIGt0ZcWZw60gcG9za3l0dWrDrSBzbHXFvmJ5CnBvZGxlIHTDqXRvIGRvaG9keSwgemF0w61tY28gc2Ugw7rEjWFzdG7DrSDFvml2w71jaCBha2PDrSwKYSBzb3XEjWFzbsSbIHV6bmF2YSwgxb5lIG5lbsOtIG1vxb5uw6kgdsWhZWNobmEgdGF0bwpyaXppa2EgZWxpbWlub3ZhdC4KCnJlcHJlc2VudGF0aXZlcywgZW1wbG95ZWVzIG9yIG90aGVyIGFzc29jaWF0ZXMKY29tcGV0ZW50IGZvciBjb250YWN0cyBpbiBtYXR0ZXJzIHJlbGF0ZWQgdG8gdGhlCnBlcmZvcm1hbmNlIG9mIHRoZSBBZ3JlZW1lbnQgb3IgcmVzcG9uc2libGUgZm9yIGl0cwpwZXJmb3JtYW5jZSwgdGhlIHJlY2VpdmluZyBQYXJ0eSBzaGFsbCBwcm9jZXNzCnN1Y2ggcGVyc29uYWwgZGF0YSBzb2xlbHkgaW4gcmVsYXRpb24gdG8gdGhlCkFncmVlbWVudCBhbmQgZm9yIHB1cnBvc2VzIG9mIGl0cyBwZXJmb3JtYW5jZS4KRGF0YSBzaGFsbCBiZSBtYWRlIGF2YWlsYWJsZSBpbiBzdWNoIGEgY2FzZSBvbiB0aGUKYmFzaXMgb2YgQXJ0aWNsZSA2KDEpKGYpIG9mIFJlZ3VsYXRpb24gKEVVKSAyMDE2LzY3OQpvZiB0aGUgRXVyb3BlYW4gUGFybGlhbWVudCBhbmQgb2YgdGhlIENvdW5jaWwgb2YKMjcgQXByaWwgMjAxNiBvbiB0aGUgcHJvdGVjdGlvbiBvZiBuYXR1cmFsIHBlcnNvbnMKd2l0aCByZWdhcmQgdG8gdGhlIHByb2Nlc3Npbmcgb2YgcGVyc29uYWwgZGF0YSBhbmQKb24gdGhlIGZyZWUgbW92ZW1lbnQgb2Ygc3VjaCBkYXRhLCBhbmQgcmVwZWFsaW5nCkRpcmVjdGl2ZSA5NS80Ni9FQyAoR2VuZXJhbCBEYXRhIFByb3RlY3Rpb24KUmVndWxhdGlvbiksIGFsc28gcmVmZXJyZWQgdG8gYXMgR0RQUiBJbmZvcm1hdGlvbgpvbiB0aGUgcnVsZXMgb2YgcHJvY2Vzc2luZyBvZiB0aGUgYWJvdmUgcGVyc29uYWwKZGF0YSByZWNlaXZlZCBieSBKJkogZnJvbSB0aGUgQ29udHJhY3RvciBpcwppbmNsdWRlZCBpbiBBcHBlbmRpeCBJbmZvcm1hdGlvbiBvbiBQZXJzb25hbCBEYXRhClByb2Nlc3NpbmcgUnVsZXMuIEJlZm9yZSB0cmFuc2ZlcnJpbmcgdG8gSiZKIGFueQpwZXJzb25hbCBkYXRhIG9mIGl0cyByZXByZXNlbnRhdGl2ZXMsIGVtcGxveWVlcyBvcgpvdGhlciBhc3NvY2lhdGVzLCB0aGUgQ29udHJhY3RvciB1bmRlcnRha2VzIHRvCnByb3ZpZGUgdGhlIGRhdGEgc3ViamVjdCB3aXRoIHRoZSBpbmZvcm1hdGlvbgpzcGVjaWZpZWQgaW4gQXBwZW5kaXggSW5mb3JtYXRpb24gb24gUGVyc29uYWwgRGF0YQpQcm9jZXNzaW5nIFJ1bGVzLgoKNy4gV2hpbGUgcGVyZm9ybWluZyB0aGUgc2VydmljZXMgdW5kZXIgdGhlCkFncmVlbWVudCwgdGhlIENvbnRyYWN0b3Igc2hhbGwgY29tcGx5IHdpdGggYWxsCmFwcGxpY2FibGUgbGF3cyBhbmQgcmVndWxhdGlvbnMgZGVmaW5lZCBpbgpBcHBlbmRpeCBDb21wbGlhbmNlIFdpdGggQW50aS1Db3JydXB0aW9uIExhd3MuClRoZSBDb250cmFjdG9yIHdhcnJhbnRzIHRoYXQgaXQgaXMgbm90IHN1YmplY3QgdG8gYW55Cm9ibGlnYXRpb24gdGhhdHdvdWxkIGludGVyZmVyZSB3aXRoLCBoaW5kZXIgb3IgcmVzdHJpY3QKdGhlIGFiaWxpdHkgdG8gcGVyZm9ybSBpdHMgb2JsaWdhdGlvbnMgdW5kZXIgdGhlCkFncmVlbWVudC4KCk9ibGlnYXRpb25zIHJlbGF0ZWQgdG8gQ09WSUQtMTkKCjEuIFRoZSBDb250cmFjdG9yIHNoYWxsIGNvbXBseSB3aXRoIGFsbCB8b2NhfApyZWd1bGF0aW9ucyByZWxhdGVkIHRvIENPVklELTE5IGFuZC9vcgpjb21tdW5pY2FibGUgZGlzZWFzZXMsIGluY2x1ZGluZyB0aGUgcnVsZXMgc2V0IG91dApiZWxvdy4KCjIuIFRoZSBDb250cmFjdG9yIG1heSwgdG8gdGhlIGV4dGVudApyZWd1bGF0ZWQgaW4gdGhlIEFncmVlbWVudCwgcHJvdmlkZSB0aGUKcGVyZm9ybWFuY2UgY29udGVtcGxhdGVkIGluIHRoZSBBZ3JlZW1lbnQgaW4gdGhlCnByZW1pc2VzIG9mIEomSiBhbmQvb3IgaW4gb3RoZXIgbG9jYXRpb25zICjigJxMaXZlCkV2ZW50cyIpIG9yIHZpYSB0aGUgSW50ZXJuZXQuCgozLiBJbiBjYXNlIG9mIHByb3Zpc2lvbiBvZiB0aGUgc2VydmljZXMgZHVyaW5nCkxpdmUgRXZlbnRzLCB0aGUgUGFydGllcyBhZ3JlZSBhcyBmb2xsb3dzOgphKSBKJkogcmVwcmVzZW50cyB0aGF0IGl0IGhhcyB0YWtlbiBhbmQgc2hhbGwKCmNvbnRpbnVlIHRvIHRha2UgcmVhc29uYWJsZSBzdGVwcyB0byBtaW5pbWl6ZSBhbnkKcmlzayBvZiBpbmZlY3Rpb24gYnkgdGhlIENvbnRyYWN0b3Igb3IgaXRzIGVtcGxveWVlcwp3aG8gcHJvdmlkZSB0aGUgc2VydmljZXMgdW5kZXJ0aGUgQWdyZWVtZW50IHdpdGgKYSBjb21tdW5pY2FibGUgZGlzZWFzZSB3aGlsZSBwYXJ0aWNpcGF0aW5nIGluIExpdmUKRXZlbnRzLCBhdCB0aGUgc2FtZSB0aW1lIHJlY29nbml6aW5nIHRoYXQgaXQgaXMgbm90CnBvc3NpYmxlIHRvIGV8aW1pbmF0ZSBhfHwgc3VjaCByaXNrcy4KCiAKCjE4CgpKb2huc29uU3pKb2huc29uCgpiKSBEb2RhdmF0ZWwgKGkpIHByb2hsYcWhdWplIGEgemFydcSNdWplLCDFvmUKdnByxa9iZWh1IMW+aXbDvWNoIGFrY8OtIG5lYnVkZSBkb2RhdmF0ZWwgYS9uZWJvCmplaG8gcGVyc29uYWwsIHBvZGxlIG5lamxlcMWhw61obyB2xJtkb23DrSBhIHN2xJtkb23DrQpkb2RhdmF0ZWxlLCB0cnDEm3Qgxb5hZG7DvW0gaW5mZWvEjW7DrW0gb25lbW9jbmVuw61tCmFuaSBqZWhvIHDFmcOtem5ha3ksIHbEjWV0bsSbIG5hcMWZw61rbGFkIHp2w73FoWVuw6kKdGVwbG90eSwgYSAoaWkpIHphdmF6dWplIHNlLCDFvmUgZG9kYXZhdGVsIGFuaSDFvsOhZG7DvQrEjWxlbmplaG8gcGVyc29uw6FsdSBzZSBuZXrDusSNYXN0bsOtIMW+YWRuw6kgxb5pdmUgYWtjZSwKYSBwb2t1ZCBzZSBqw60gamnFviDDusSNYXN0bsOtLCBva2Ftxb5pdGUgamkgb3B1c3TDrSwgcG9rdWQKYnVkZSBtw610IGTFr3ZvZG5vdSBvYmF2dSB2ZWRvdWPDrSBrIHBvZGV6xZllbsOtLCDFvmUKdHJww60gaW5mZWvEjW7DrW0gb25lbW9jbmVuw61tIG5lYm8gdHJww60gcMWZw616bmFreQppbmZla8SNbsOtaG8gb25lbW9jbmVuaS4gVnDFmcOtcGFkZSwgxb5lIGRvZGF2YXRlbAphL25lYm8gamFrw71rb2xpIMSNbGVuIGplaG8gcGVyc29uw6FsdSBvcHVzdMOtIMW+aXZvdQpha2NpLCBqYWsgamUgcG9wc8Ohbm8gdsO9xaFlLCBzb3VobGFzw60gZG9kYXZhdGVsLCDFvmUKYnVkZSBuZXByb2RsZW7EmyBhIHBsbsSbIGluZm9ybW92YXQgemFtZXN0bmFuY2UKc3BvbGXEjW5vc3RpIEomSiBwxZnDrXRvbW7DqSBuYSDFvml2w6kgYWtjaSBvcMWZw61jaW5lCm9wdcWhdMSbbsOtIMW+aXZlIGFrY2UgZG9kYXZhdGVsZW0gbmVibyDEjWxlbmVtIGplaG8KcGVyc29uw6FsdSBhIHBvc2t5dG5lIHNwb2x1cHLDoWNpIGEgcG9tb2MsIGt0ZXJvdQptb2hvdSBzcG9sZcSNbm9zdCBKJkosIGplasOtIHDFmWlkcnXFvmVuw6kgc3BvbGXEjW5vc3RpCmEgesOhc3R1cGNpIHBvxb5hZG92YXQgcMWZaSBwb3N1em92w6Fuw60gb2tvbG5vc3TDrQphIGTFr3NsZWRrxa8gc3RhdnUgZG9kYXZhdGVsZSBuZWJvIMSNbGVuYSBqZWhvCnBlcnNvbsOhbHUgYSBwxZlpIHBvZG5pa2Fuw60gb3BhdMWZZW7DrSBrIG7DoXByYXbEmyBuZWJvCmppbsO9Y2ggb3BhdMWZZW7DrS4KCmMpIERvZGF2YXRlbCBzb3VobGFzw60sIChpKSDFvmUgb24gYS9uZWJvIGplaG8KcGVyc29uYWwgc2UgesO6xI1hc3Ruw60gxb5pdsO9Y2ggYWtjw60gbmEgdmxhc3Ruw60gcml6aWtvIGEKKGlpKSDFvmUgYW5pIHNwb2xlxI1ub3N0IEomSiBhbmkgamVqw60gcMWZaWRydcW+ZW7DqQpzcG9sZcSNbm9zdGksIGplasOtIMWZZWRpdGVsZSwgdmVkb3Vjw60gcHJhY292bsOtY2ksCnphbWVzdG5hbmNpLCB6bW9jbsSbbmNpLCBkb2RhdmF0ZWxlLCBkaXN0cmlidXRvxZlpCmFuaSB6YXN0dXBjaSBuZW1hasOtIMW+w6FkbsOpIHrDoXZhemt5IHZzb3V2aXNsb3N0aQpzxb5pdsO9bWkgYWtjZW1pIGEgZG9kYXZhdGVsIHNlIHTDrW10byB6xZnDrWthCmpha8O9Y2hrb2xpIG7DoXJva8WvIHTDvWthasOtY8OtY2ggc2UgKEEpIHN0YXZ1IMSNaXN0b3R5CnByb3N0b3J1LCBrZGUgc2Uga29uw6Egxb5pdmEgYWtjZSBuZWJvIG7Em2t0ZXLDqSBqZWrDrQrEjcOhc3QsIHbEjWV0bsSbIG5hcMWZw61rbGFkIG3DrXN0bm9zdGksIGtkZSBzZSBrb27DoSDFvml2YQpha2NlLCBqaW7DvWNoIG3DrXN0bm9zdMOtLCBjaG9kZWIsIHNwb2xlxI1uw71jaCBwcm9zdG9yLApqw61kZWxuw61jaCBwcm9zdG9yLCBwYXJrb3ZpxaHFpSwgbmFieXRrdSwgdnliYXZlbsOtLAptYXRlcmlhbHUsIGtsaW1hdGl6YWNlIG5lYm8gamluw71jaCBzeXN0w6ltxa8gbmVibwpqYWvDvWNoa29saSBqaW7DvWNoIHphxZnDrXplbsOtIG5lYm8gdsSbY8OtLCBhIChCKSB6ZHJhdsOtCnbFoWVjaCBvc29iIMO6xI1hc3Ruw61jw61jaCBzZSDFvml2w71jaCBha2PDrSBhamFrZWtvbGkKb3NvYnksIGt0ZXLDoSBqZSBuZWJvIGJ5bGEgempha2Vob2tvbGkgZMWvdm9kdQpwxZnDrXRvbW5hIG5hIMW+aXbDvWNoIGFrY8OtY2ggbmVibyBuYSBqYWvDqWtvbGkgamVqw60KxI3DoXN0aSwgamFrIGplIHBvcHPDoW5vIHbDvcWhZS4gRG9kYXZhdGVsIHTDrW10bwpzb3VobGFzw60sIMW+ZSBuZXBvZG5pa25lIMW+YWRuw6kgcHJhdm7DrSBvcGF0xZllbsOtIGFuaQpuZWJ1ZGUgxI1pbml0IHNwb2xlxI1ub3N0IEomSiBhbmkgamVqw60gcMWZaWRydcW+ZW7DqQpzcG9sZcSNbm9zdGkgb2Rwb3bEm2Ruw6kgemFqYWtla29saSBuYXJva3ksIG5haHJhZHkKxaBrb2QsIGRsdWh5LCBmaW5hbsSNbsOtIHZ5cm92bmFuw60sIHJvemhvZG51dMOtIGFuaSBqaW7DqQpuYWtsYWR5IGF2w71kYWplLCBrdGVyw6kgbW9ob3UgdnpuaWtub3V0CnYgc291dmlzbG9zdGkgJiBuYWthem91IGRvZGF2YXRlbGUgbmVibyDEjWxlbmEgamVobwpwZXJzb27DoWx1IGpha8O9bWtvbGkgaW5mZWvEjW7DrW0gb25lbW9jbmVuw61tCmJlaGVtIMW+aXbDvWNoIGFrY8OtLgoKYikgVGhlIENvbnRyYWN0b3IgKGkpIHJlcHJlc2VudHMgYW5kIHdhcnJhbnRzCnRoYXQgdGhyb3VnaG91dCB0aGUgTGlmZSBFdmVudHMgdGhlIENvbnRyYWN0b3IKYW5kL29yIGl0cyBwZXJzb25uZWwgc2hhbGwsIHRvIHRoZSBiZXN0IG9mCkNvbnRyYWN0b3IncyBrbm93bGVkZ2UgYW5kIGJlbGllZiwgYmUgZnJlZSBmcm9tIGFueQpjb21tdW5pY2FibGUgZGlzZWFzZXMgb3IgdGhlaXIgc3ltcHRvbXMsCmluY2x1ZGluZyBidXQgbm90IHxpbWl0ZWQgdG8gZWxldmF0ZWQgdGVtcGVyYXR1cmUsCmFuZCAoaWkpIHVuZGVydGFrZXMgdGhhdCBuZWl0aGVyIHRoZSBDb250cmFjdG9yIG5vdAphbnkgbWVtYmVyIG9mIGl0cyBwZXJzb25uZWwgc2hhbGwgcGFydGljaXBhdGUgaW4gYW55CkxpdmUgRXZlbnQgYW5kLCBpZnRoZXkgYWxyZWFkeSBwYXJ0aWNpcGF0ZSBpbiBpdCwgc2hhbGwKaW1tZWRpYXRlbHkgbGVhdmUgaXQgaWYgdGhleSBoYXZlIHJlYXNvbmFibGUKZ3JvdW5kcyB0byBzdXNwZWN0IHRoYXQgdGhleSBhcmUgc3VmZmVyaW5nIGZyb20gb3IKZXhwZXJpZW5jaW5nIHRoZSBzeW1wdG9tcyBvZiBhIGNvbW11bmljYWJsZQpkaXNlYXNlLiBJbiB0aGUgZXZlbnQgdGhhdCB0aGUgQ29udHJhY3RvciBhbmQvb3IgYW55Cm1lbWJlciBvZiBpdHMgcGVyc29ubmVsIGxlYXZlIHRoZSBMaXZlIEV2ZW50IGFzCmRlc2NyaWJlZCBhYm92ZSwgdGhlIENvbnRyYWN0b3IgYWdyZWVzIHRvIHByb21wdGx5CmFuZCBmdXx8eSBub3RpZnkgdGhlIGVtcGxveWVlcyBvZiBKJkogcHJlc2VudCBhdCB0aGUKTGl2ZSBFdmVudCBvZnRoZSBjYXVzZSBvZiBsZWF2aW5nIHRoZSBMaXZlIEV2ZW50IGJ5CnRoZSBDb250cmFjdG9yIG9yIGEgbWVtYmVyIG9mIGl0cyBwZXJzb25uZWwgYW5kIHRvCnByb3ZpZGUgYW55IGNvb3BlcmF0aW9uIGFuZCBhc3Npc3RhbmNlIHRoYXQgSiZKLAppdHMgYWZmaWxpYXRlcyBhbmQgcmVwcmVzZW50YXRpdmVzIG1heSByZXF1ZXN0IGluCm9yZGVyIHRvIGFzc2VzcyB0aGUgY2lyY3Vtc3RhbmNlcyBhbmQKY29uc2VxdWVuY2VzIG9mIHRoZSBjb25kaXRpb24gb2YgdGhlIENvbnRyYWN0b3Igb3IKYSBtZW1iZXIgb2YgaXRzIHBlcnNvbm5lbCBhbmQgdG8gdGFrZSByZW1lZGlhfCBvcgpvdGhlciBhY3Rpb24uCgpjKSBUaGUgQ29udHJhY3RvciBhZ3JlZXMgKGkpIHRoYXQgdGhlCkNvbnRyYWN0b3IgYW5kL29yIGl0cyBwZXJzb25uZWwgd2lsbCBwYXJ0aWNpcGF0ZSBpbgpMaXZlIEV2ZW50cyBhdCB0aGVpciBvd24gcmlzayBhbmQgKGlpKSB0aGF0IG5laXRoZXIgSiZKCm5vciBpdHMgYWZmaWxpYXRlcywgbm9yIHRoZWlyIGRpcmVjdG9ycywgb2ZmaWNlcnMsCmVtcGxveWVlcywgYWdlbnRzLCBjb250cmFjdG9ycywgZGlzdHJpYnV0b3JzIG9yCnJlcHJlc2VudGF0aXZlcywgaGF2ZSBhbnkgb2JsaWdhdGlvbnMgaW4gY29ubmVjdGlvbgp3aXRoIExpdmUgRXZlbnRzIGFuZCB0aGUgQ29udHJhY3RvciBoZXJlYnkgd2FpdmVzCmFueSBjbGFpbXMgcmVsYXRpbmcgdG8gKEEpIHRoZSBzdGF0ZSBvZiBjfGVhbnxpbmVzcyBvZgp0aGUgYXJlYSB3aGVyZSB0aGUgTGl2ZSBFdmVudCwgb3IgYW55IHBhcnQgdGhlcmVvZiwKaXMgYmVpbmcgaGVsZCwgaW5jbHVkaW5nIGJ1dCBub3QgfGltaXRlZCB0byB0aGUgcm9vbQp3aGVyZSB0aGUgTGl2ZSBFdmVudCBpcyBiZWluZyBoZWxkLCBvdGhlciByb29tcywKaGFsbHdheXMsIGNvbW1vbiBhcmVhcywgZGluaW5nIGFyZWFzLCBjYXIgcGFya3MsCmZ1cm5pdHVyZSwgZXF1aXBtZW50LCBtYXRlcmlhbHMsIEhWQUMgb3Igb3RoZXIKc3lzdGVtcywgb3Jhbnkgb3RoZXJmYWNpfGl0aWVzb3J0aGluZ3MsIGFuZCAoQikgdGhlCmhlYWx0aCBvZiBhbGwgcGVyc29ucyBhdHRlbmRpbmcgTGl2ZSBFdmVudHMgYW5kIGFueQpwZXJzb24gd2hvIGZvciBhbnkgcmVhc29uIGlzIG9yIHdhcyBwcmVzZW50IGF0IExpdmUKRXZlbnRzLCBvciBhbnkgcGFydCB0aGVyZW9mLCBhcyBkZXNjcmliZWQgYWJvdmUuClRoZSBDb250cmFjdG9yIGhlcmVieSBhZ3JlZXMgbm90IHRvIHRha2UgYW55IGxlZ2FsCmFjdGlvbiBvciBob2xkIEomSiBhbmQvb3IgaXRzIGFmZmlsaWF0ZXMgfGlhYnxlIGZvciBhbnkKY2xhaW1zLCBkYW1hZ2VzLCB8aWFiaXxpdGllcywgc2V0dGxlbWVudHMsIGRlY2lzaW9ucwpvciBvdGhlciBjb3N0cyBhbmQgZXhwZW5zZXMgdGhhdCBtYXkgYXJpc2UgaW4KY29ubmVjdGlvbiB3aXRoIHRoZSBjb250cmFjdGlvbiBieXRoZSBDb250cmFjdG9yIG9yCmEgbWVtYmVyIG9mIGl0cyBwZXJzb25uZWwgb2YgYW55IGNvbW11bmljYWJsZQpkaXNlYXNlIGR1cmluZyBMaXZlIEV2ZW50cy4KCiAKCjE5CgpKb2huc29uU3pKb2huc29uCgpQxZnDrWxvaGEgNQoKRG9kcsW+b3bDoW7DrSBwcm90aWtvcnVwxI1uw61jaCB6w6Frb27FrwoKQmV6IG9obGVkdSBuYSB0bywgemRhIGNva298aSB2IHRldG8gZG9ob2RlIHN0YW5vdsOtCmppbmFrLCBuZW1vY25pY2UgKGTDoWxlIGplbiBqYWtvIOKAnmRvZGF2YXRlbOKAnCkKc291aGxhc8OtIHMgbsOhc2xlZHVqw61jw61taSBwb2Rtw61ua2FtaToKCjEuIERvZGF2YXRlbCBuZXNtw60gcHJvdmFkZXQgxb5hZG5vdSDEjWlubm9zdCwKa3RlcsOhIGplIHZlIHN0xZlldHUgJiBqYWvDvW1pa29saSBtw61zdG7DrW1pIG5lYm8gamluw71taQpwcm90aWtvcnVwxI1uw61taSB6YWtvbnkgKGRhbGUgc291aHJubsSbIGplbiBqYWtvCuKAnnByb3Rpa29ydXDEjW7DrSB6w6Frb255KSwgamXFviBzZSBtb2hvdSB2enRhaG92YXQKbmEgamVkbnUgbmVibyBvYsSbIHN0cmFueSB0w6l0byBkb2hvZHkuCgoyLiBEb2RhdmF0ZWwgbmVzbcOtLCBwxZnDrW1vIGFuaSBuZXDFmcOtbW8sCnByb3ZhZGV0IHBsYXRieSwgbmFiw616ZXQgYW5pIHDFmWV2YWRldCBmaW5hbsSNbsOtCm9kbcSbbnUgYW5pIG9zb2Juw60gcHJvc3BlY2gsIGFuaSBzbGlib3ZhdCwgxb5lCnByb3ZlZGUgdGFrb3ZvdSBwbGF0YnUsIG5hYsOtZG5lIG5lYm8gcMWZZXZlZGUKZmluYW7EjW7DrSBvZG3Em251IG5lYm8gb3NvYm7DrSBwcm9zcGVjaCB2bGFkbsOtbQrDusWZZWRuw61rxa9tLCBzdMOhdG7DrW0gemFtxJtzdG5hbmPFr20sIHBvbGl0aWNrw71tCnN0cmFuw6FtLCBwb2xpdGlja8O9bSBrYW5kaWTDoXTFr20gbmVibyBqaW7DvW0gdMWZZXTDrW0Kc3RyYW5hbSB6YXBvamVuw71tIGRvIHRyYW5zYWtjZSAmIGPDrWxlbSBvdmxpdm5pdApyb3pob2RudXTDrSB0w71rYWrDrWPDrSBzZSBzcG9sZcSNbm9zdGkgSiZKIGEvbmVibyBqZWrDrWNoCmFrdGl2aXQgenDFr3NvYmVtLCBrdGVyw70gYnkgcG9ydcWhb3ZhbCBwcm90aWtvcnVwxI1uw60KemFrb255LgoKMy4gRG9kYXZhdGVsIG5lemFwb2rDrSDFvmFkbmVobyB2bGFkbsOtaG8Kw7rFmWVkbsOta2EgYW5pIHN0YXRuaWhvIHphbWVzdG5hbmNlIGRvIHByb3ZhZGVuaQpkb2hvZHkgYmV6IHrDrXNrw6Fuw60gc291aGxhc3UgemUgc3RyYW55IHNwb2xlxI1ub3N0aQpKJkogYSwgdiBwxZnDrXBhZMSbIHBvdMWZZWJ5LCBvZCBwxZnDrXNsdcWhbsO9Y2ggb3Jnw6Fuxa8KYSBuYWTFmcOtemVuw71jaCBwxZnDrXNsdcWhbsOpaG8gdmxhZG7DrWhvIMO6xZllZG7DrWthIG5lYm8Kc3TDoXRuw61obyB6YW1lc3RuYW5jZS4gRMOhbGUgYnVkZSBtw610IGRvZGF2YXRlbApwb3Zpbm5vc3Qgb2thbcW+aXRlIGluZm9ybW92YXQgcMOtc2VtbsSbIHNwb2xlxI1ub3N0CkomSiwgxb5lIG9zb2JhIHphcG9qZW5hIGRvIHByb3ZhZGVuw60gZG9ob2R5IHNlCnN0YWxhIHZsYWRuw61tIMO6xZllZG7DrWtlbSBuZWJvIHN0YXRuaW0KemFtxJtzdG5hbmNlbSwgxI1sZW5lbSBwb2xpdGlja8OpIHN0cmFueSBuZWJvCmthbmRpZMOhdGVtIG5hIHBvbGl0aWNrw70gw7rFmWFkLCBqYWttaWxlIHNlIGRvZGF2YXRlbApvIHTDqXRvIHNrdXRlxI1ub3N0aSBkb3p2w60uIFBvxb5hZGF2ZWsgcG9wc2Fuw70gdiB0w6l0bwrEjcOhc3RpIHNlIG5ldnp0YWh1amUgbmEgemFtxJtzdG5hbmNlIGRvZGF2YXRlbGUsCmt0ZXLDvSBqZSBzdMOhdG7DrW0gcG9kbmlrZW0uCgo0LiBEb2RhdmF0ZWwgbcOhIHBvdmlubm9zdCB1csSNaXQKemFtZXN0bmFuY2UsIGt0ZXLDvSBidWRlIHByb8Wha29sZW4gcG9kbGUgcG90xZllYnkKc3BvbGXEjW5vc3TDrSBKJkosIHBva3VkIGpkZSBvIHByb3Rpa29ydXDEjW7DrSB6YWtvbnkKYXBsYXRuZSBwxZllZHBpc3kgb2ludGVyYWtjaSBzZSB6ZHJhdm90bmlja8O9bWkKcHJhY292bsOta3ksIHYgc291bGFkdSAmIHVqZWRuYW7DrW1pIG1lemkKc21sdXZuw61taSBzdHJhbmFtaS4gVXLEjWVuw70gemFtZXN0bmFuZWMgcG90ZQpwb3NreXRuZSDFoGtvbGVuw60gbyBwcm90aWtvcnVwxI1uw61jaCB6YWtvbmVjaCwKJiB2eXXFvml0w61tIHZob2Ruw71jaCDFoGtvbGljw61jaCBtYXRlcmnDoWzFrwpwb3NreXRudXTDvWNoIHNwb2xlxI1ub3N0w60gSiZKLCBuZWptw6luxJsgamVkbm91IHphCnJvaywgcHJvIHbFoWVjaG55IG9zb2J5IHphbcSbc3RuYW7DqSBkb2RhdmF0ZWxlbSwKa3RlcmUgdnlrb27DoXZhasOtIHVrb2x5IHBybyBzcG9sZcSNbm9zdCBKJkogYSBwxZlpCnBsbsSbbsOtIHN2w71jaCBwb3Zpbm5vc3TDrSBrb211bmlrdWrDrSBzdmxhZG7DrW1pCsO6xZllZG7DrWt5IG5lYm8gemRyYXZvdG5pY2vDvW1pIHByYWNvdm7DrWt5LiBQb2t1ZApzZSBzcG9sZcSNbm9zdCBKJkogYWRvZGF2YXRlbCBkb2hvZG5vdSwgbcWvxb5lCgpBcHBlbmRpeCA1CgpDb21wbGlhbmNlIHdpdGggQW50aS1Db3JydXB0aW9uIExhd3MKCk5vdHdpdGhzdGFuZGluZyBhbnl0aGluZyB0byB0aGUgY29udHJhcnkgaW4gdGhlCkFncmVlbWVudCwgdGhlIEhvc3BpdGFsKGhlcmVpbmFmdGVyIHJlZmVycmVkIHRvIGFzCnRoZSDigJxDb250cmFjdG9yIikgYWdyZWVzIHRvIHRoZSBmb2xsb3dpbmcgdGVybXM6CgoxLiBUaGUgQ29udHJhY3RvciBzaGFsbCBub3QgY29uZHVjdCBhbnkKYWN0aXZpdGllcyB3aGljaCBjb25mfGljdCB3aXRoIGFueSB8b2NhfCBvciBvdGhlciBhbnRpLQpjb3JydXB0aW9uIGxhd3MgKGhlcmVpbmFmdGVyIGNvfHxlY3RpdmV8eSByZWZlcnJlZCB0bwphcyB0aGUg4oCcQW50aS1Db3JydXB0aW9uIExhd3MiKSwgd2hpY2ggbWF5IGJlCmFwcGxpY2FibGUgdG8gb25lIG9yIGJvdGggUGFydGllcyBvZnRoZSBBZ3JlZW1lbnQuCjIuIFRoZSBDb250cmFjdG9yIHNoYWxsIG5vdCwgZGlyZWN0bHkgb3IKaW5kaXJlY3RseSwgbWFrZSBwYXltZW50cywgb2ZmZXIgb3IgdHJhbnNmZXIgYW55CmZpbmFuY2lhbCBvciBwZXJzb25hbCBiZW5lZml0LCBvciBwcm9taXNlIHRvIG1ha2UKYW55IHBheW1lbnQsIG9mZmVyIG9yIHRyYW5zZmVyIGFueSBmaW5hbmNpYWwgb3IKcGVyc29uYWwgYmVuZWZpdCB0byBnb3Zlcm5tZW50IG9mZmljaWFscywKZ292ZXJubWVudCBlbXBsb3llZXMsIHBvbGl0aWNhbCBwYXJ0aWVzLCBwb2xpdGljYWwKY2FuZGlkYXRlcyBvciBvdGhlciB0aGlyZCBwYXJ0aWVzIGludm9sdmVkIGluIHRoZQp0cmFuc2FjdGlvbiBpbiBvcmRlciB0byBpbmZsdWVuY2UgZGVjaXNpb25zCmNvbmNlcm5pbmcgSiZKIGFuZC9vciBpdHMgYWN0aXZpdGllcyBpbiB0aGUgd2F5IHRoYXQKd291bGQgdmlvfGF0ZSB0aGUgQW50aS1Db3JydXB0aW9uIExhd3MuCgozLiBUaGUgQ29udHJhY3RvciBzaGFsbCBub3QgZW5nYWdlIGFueQpnb3Zlcm5tZW50IG9mZmljaWFsIG9yIGdvdmVybm1lbnQgZW1wbG95ZWUgaW4KaW1wbGVtZW50YXRpb24gb2YgdGhlIEFncmVlbWVudCB3aXRob3V0IG9idGFpbmluZwphIGNvbnNlbnQgZnJvbSBKJkogYW5kLCBpZiBuZWNlc3NhcnksIGZyb20KY29tcGV0ZW50IGF1dGhvcml0aWVzIGFuZCBzdXBlcmlvcnMgb2YgdGhlIHJlbGV2YW50CmdvdmVybm1lbnQgb2ZmaWNpYWwgb3IgZ292ZXJubWVudCBlbXBsb3llZS4gSW4KYWRkaXRpb24sIHRoZSBDb250cmFjdG9yIHNoYWxsIGhhdmUgYW4gb2JsaWdhdGlvbiB0bwppbW1lZGlhdGVseSBpbmZvcm0gSiZKIGluIHdyaXRpbmcgdGhhdCBhIHBlcnNvbgppbnZvbHZlZCBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YgdGhlIEFncmVlbWVudApoYXMgYmVjb21lIGEgZ292ZXJubWVudCBvZmZpY2lhbCBvciBhIGdvdmVybm1lbnQKZW1wbG95ZWUsIGEgbWVtYmVyIG9mIGEgcG9saXRpY2FsIHBhcnR5IG9yIGEKY2FuZGlkYXRlIGZvciBhIHBvbGl0aWNhbCBvZmZpY2UgYXMgc29vbiBhcyB0aGUKQ29udHJhY3RvciBiZWNvbWVzIGF3YXJlIHRoZXJlb2YuIFRoZQpyZXF1aXJlbWVudCBkZXNjcmliZWQgaW4gdGhpcyBzZWN0aW9uIHNoYWxsIG5vdAphcHBseSB0byBlbXBsb3llZXMgb2YgdGhlIENvbnRyYWN0b3Igd2hvIGlzIGEKc3RhdGUtb3duZWQgZW50ZXJwcmlzZS4KCjQuIFRoZSBDb250cmFjdG9yIGhhcyBhbiBvYmxpZ2F0aW9uIHRvCmRlc2lnbmF0ZSBhbiBlbXBsb3llZSB0byBiZSB0cmFpbmVkLCBhcwphcHByb3ByaWF0ZSwgYnkgSiZKIGluIEFudGktQ29ycnVwdGlvbiBMYXdzIGFuZAphcHBsaWNhYmxlIHJlZ3VsYXRpb25zIG9uIGludGVyYWN0aW9ucyB3aXRoCmhlYWx0aGNhcmUgcHJvZmVzc2lvbmFscywgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZQphcnJhbmdlbWVudHMgbWFkZSBieSB0aGUgcGFydGllcy4gVGhlIGRlc2lnbmF0ZWQKZW1wbG95ZWUgc2hhbGwgdGhlbiBiZSByZXF1aXJlZCB0byBwcm92aWRlIHRyYWluaW5nCmluIEFudGktQ29ycnVwdGlvbiBMYXdzLCB1c2luZyBhcHByb3ByaWF0ZSB0cmFpbmluZwptYXRlcmlhbHMgcHJvdmlkZWQgYnkgSiZKLCBhdCBsZWFzdCBvbmNlIGEgeWVhciBmb3IKYWxsIHRoZSBwZXJzb25zIGVtcGxveWVkIGJ5IHRoZSBDb250cmFjdG9yIHdobwpjYXJyeSBvdXQgdGFza3MgZm9yIEomSiBhbmQgaW50ZXJhY3Qgd2l0aApnb3Zlcm5tZW50IG9mZmljaWFscyBvciBoZWFsdGhjYXJlIHByb2Zlc3Npb25hbHMgaW4KdGhlIHBlcmZvcm1hbmNlIG9mIHRoZWlyIGR1dGllcy4gfGYgSiZKIGFuZCB0aGUKQ29udHJhY3RvciBhZ3JlZSwgdHJhaW5pbmcgZm9yIHRoZSBDb250cmFjdG9yJ3MKCiAKCjIwCgpKb2huc29uU3pKb2huc29uCgrFoGtvbGVuw60gcHJvIHphbcSbc3RuYW5jZSBkb2RhdmF0ZWxlIHBvc2t5dG5vdXQKcMWZw61tbyBzcG9sZcSNbm9zdCBKJkouIERvZGF2YXRlbCBidWRlIHRha8OpIG11c2V0CnBvc2t5dG5vdXQgxaBrb2xlbsOtIG5lYm8gxaBrb2xpY8OtIG1hdGVyacOhbHkgdsWhZW0Kc3ViZG9kYXZhdGVsxa9tIHphcG9qZW7DvW0gZG8gcHJvdmFkZW5pIGRvaG9keQoocG9rdWQgZG9ob2RhIOKAniB1bW/FvsWIdWplIGRvZGF2YXRlbGkgdnl1xb7DrXQKc3ViZG9kYXZhdGVsZSkuIFNrb2xlbsOtIGFtYXRlcmlhbHkgcG9za3l0bnV0w6kKc3BvbGXEjW5vc3TDrSBKJkogbmV6cHJvxaF0J3Vqw60gZG9kYXZhdGVsZSBqYWvDvWNoa29saQpwb3Zpbm5vc3RpIG5lc291dmlzZWrDrWPDrWNoIHNkb2hvZG91LiBEb2RhdmF0ZWwKbmV2eXXFvmlqZSDFoGtvbGVuw60gYSBtYXRlcmnDoWx5IG9kIHNwb2xlxI1ub3N0aSBKJkoKayBwbG7Em27DrSB0YWtvdsO9Y2ggcG92aW5ub3N0w60uCgo1LiBEb2RhdmF0ZWwgYnVkZSBtdXNldCwgamVkbm91IHphIHJvaywgdmUKZm9ybcSbIHV2ZWRlbmUgc3BvbGXEjW5vc3TDrSBKJkosIHDFmWVkbG/Fvml0CnByb2hsw6HFoWVuw60sIGt0ZXLDqSB1dsOhZMOtLCDFvmU6CgphKSB2xaFlY2hueSBvc29ieSB6YW3Em3N0bmFuw6kgZG9kYXZhdGVsZW0sCmt0ZXJlIHZ5a29uYXZhasOtIHVrb2x5IHBybyBzcG9sZcSNbm9zdCBKJkoKYSBrb211bmlrdWrDrSAmIHZsYWRuw61taSDDusWZZWRuw61reSBuZWJvCnpkcmF2b3RuaWNrw71taSBwcmFjb3Zuw61reSBwxZlpIHBsbsSbbsOtIHN2w71jaApwb3Zpbm5vc3TDrSwgYnl8eSBwcm/FoWtvbGVueSBhIG9iZHLFvmVseSDFoGtvbGljw60KbWF0ZXJpw6FseSB0w71rYWrDrWPDrSBzZSBwcm90aWtvcnVwxI1uw61jaCB6w6Frb27FrwphIHBsYXRuw71jaCBwxZllZHBpc8WvIG8ga29tdW5pa2FjaSBzZQp6ZHJhdm90bmlja8O9bWkgcHJhY292bsOta3kgYSDFvmUgZG9kYXZhdGVsIHBvc2t5dGwKxaBrb2xlbsOtIGEgxaBrb2xpY8OtIG1hdGVyacOhbHkgdnl2aW51dMOpIHNwb2xlxI1ub3N0w60gSiZKCnN2w71tIHN1YmRvZGF2YXRlbMWvbSB6YXBvamVuw71tIGRvIHByb3ZhZGVuaQpkb2hvZHk7CgpiKSBwb2RsZSBpbmZvcm1hY8OtIHZkcsW+ZW7DrSBkb2RhdmF0ZWxlLApkb2RhdmF0ZWwsIGplaG8gemFtZXN0bmFuY2kgYXN1YmRvZGF2YXRlbGUKemFwb2plbsOtIGRvIHByb3ZhZGVuaSBkb2hvZHkgbmVwb3J1xaFpbGkgxb5hZG7DqQpwcm90aWtvcnVwxI1uw60gemFrb255OwoKYykgbmVkb8WhbG8gayDFvsOhZG7DvW0gem1lbmFtCnUgemFtxJtzdG5hbmPFryBkb2RhdmF0ZWxlIG96bmHEjWVuw71jaCBqYWtvCuKAnmtsw63EjW92w70gcGVyc29uYWzigJwgdiBzb3VsYWR1ICYgZG9ob2RvdSB1emF2xZllbm91Cm1lemkgc3BvbGXEjW5vc3TDrSBKJkogYWRvZGF2YXRlbGVtLCBzdsO9amlta291CnptZW4gdXZlZGVuw71jaCB2IHNlem5hbXUgcMWZaWxvxb5lbsOpbQprIHrDoXpuYW3Fr20gcMWZZWRsb8W+ZW7DvW0gZG9kYXZhdGVsZW07CgpkKSBkb2RhdmF0ZWwgbmVwcm92ZWRsIMW+w6FkbsOpIHptxJtueSB2ZQp2eXXFvsOtdsOhbsOtIHN1YmRvZGF2YXRlbMWvIHBybyBwb3NreXRvdsOhbsOtIHNsdcW+ZWIKcHJvIHNwb2xlxI1ub3N0IEomSiB2IHNvdWxhZHUgcyB0b3V0byBkb2hvZG91LAomIHbDvWppbWtvdSAoMSkgb2tvbG5vc3TDrSBwb3ZvbGVuw71jaCBkb2hvZG91IGEgKDIpCnptZW4gdXZlZGVuw71jaCB2IHNlem5hbXUgcMWZaWxvxb5lbsOpbQpremF6bmFtxa9tIHDFmWVkbG/FvmVuw71tIGRvZGF2YXRlbGVtOyBhCgplKSBkb2RhdmF0ZWwgdWRyxb51amUgYWt0dWFsbsOtCnphem5hbXkgcG90xZllYm7DqSBwcm8gcHJva2F6YW7DrQpwb8W+YWRhdmvFryB0ZXRvIHDFmcOtbG9oeS4KCjYuIERvZGF2YXRlbCBtdXPDrSB2w6lzdCB6YXpuYW15ICh2xI1ldG5lCmZpbmFuxI1uw61jaCB6YXpuYW11KSBhc2hyb21hxb5kb3ZhdCBwb2Rwxa9ybsOpCmRva3VtZW50eSB2ZSB2enRhaHUga29ic2FodSB0w6l0byBkb2hvZHksCmF6cMWZw61zdHVwbml0IGplIHNwb2xlxI1ub3N0aSBKJkogYWplasOtbSBhdWRpdG9yxa9tCnZzb3VsYWR1IHNwb8W+YWRhdmt5IHNwb2xlxI1ub3N0aSBKJkogc2PDrWxlbQp6ZG9rdW1lbnRvdmF0IG5lYm8gb3bEm8WZaXQgc291bGFkIHMgdG91dG8gcMWZw61sb2hvdS4KCmEgcMWZZXNuw6kKZG9kcsW+b3ZhbsOtCgplbXBsb3llZXMgbWF5IGJlIHByb3ZpZGVkIGRpcmVjdGx5IGJ5IEomSi4gVGhlCkNvbnRyYWN0b3Igc2hhbGwgYWxzbyBiZSByZXF1aXJlZCB0byBwcm92aWRlIHRyYWluaW5nCm9yIHRyYWluaW5nIG1hdGVyaWFscyB0byBhbGwgc3ViY29udHJhY3RvcnMgaW52b2x2ZWQKaW4gdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBBZ3JlZW1lbnQgKHRvIHRoZQpleHRlbnQgdGhlIEFncmVlbWVudCBhbGxvd3MgdGhlIENvbnRyYWN0b3IgdG8KZW5nYWdlIHN1YmNvbnRyYWN0b3JzKS4gVGhlIHRyYWluaW5nIGFuZCBtYXRlcmlhbHMKcHJvdmlkZWQgYnkgSiZKIHNoYWxsIG5vdCByZWxlYXNlIHRoZSBDb250cmFjdG9yCmZyb20gYW55IG9ibGlnYXRpb25zIG5vdCByZWxhdGVkIHRvIHRoZSBBZ3JlZW1lbnQuClRoZSBDb250cmFjdG9yIHNoYWxsIG5vdCB1c2UgSiZKJ3MgdHJhaW5pbmdzIGFuZAptYXRlcmlhbHMgdG8gY2Fycnkgb3V0IHN1Y2ggb2JsaWdhdGlvbnMuCgo1LiBUaGUgQ29udHJhY3RvciBzaGFsbCBiZSByZXF1aXJlZCwgb25jZSBhCnllYXIsIGluIHRoZSBmb3JtIHNwZWNpZmllZCBieSBKJkosIHRvIHN1Ym1pdCBhCmRlY2xhcmF0aW9uIHN0YXRpbmcgdGhhdDoKCmEpIGFsbCB0aGUgcGVyc29ucyBlbXBsb3llZCBieSB0aGUKQ29udHJhY3Rvciwgd2hvIGNhcnJ5IG91dCB0YXNrcyBmb3IgSiZKIGFuZCBpbnRlcmFjdAp3aXRoIGdvdmVybm1lbnQgb2ZmaWNpYWxzIG9yIGhlYWx0aGNhcmUKcHJvZmVzc2lvbmFscyBpbiB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlaXIgZHV0aWVzLApoYXZlIGJlZW4gcHJvdmlkZWQgd2l0aCB0cmFpbmluZyBhbmQgdHJhaW5pbmcKbWF0ZXJpYWxzIHJlZ2FyZGluZyBBbnRpLUNvcnJ1cHRpb24gTGF3cyBhbmQgdGhlCmFwcGxpY2FibGUgcmVndWxhdGlvbnMgb24gaW50ZXJhY3Rpb25zIHdpdGgKaGVhbHRoY2FyZSBwcm9mZXNzaW9uYWxzIGFuZCB0aGF0IHRoZSBDb250cmFjdG9yCmhhcyBwcm92aWRlZCB0cmFpbmluZyBhbmQgdHJhaW5pbmcgbWF0ZXJpYWxzCmRldmVsb3BlZCBieSBKJkogdG8gdGhlIENvbnRyYWN0b3IncwpzdWJjb250cmFjdG9ycyBlbmdhZ2VkIGluIHRoZSBBZ3JlZW1lbnQKaW1wbGVtZW50YXRpb247CgpiKSBhY2NvcmRpbmcgdG8gdGhlIGluZm9ybWF0aW9uIGhlfGQgYnkgdGhlCkNvbnRyYWN0b3IsIHRoZSBDb250cmFjdG9yLCBpdHMgZW1wbG95ZWVzIGFuZApzdWJjb250cmFjdG9ycyBpbnZvbHZlZCBpbiB0aGUgaW1wbGVtZW50YXRpb24gb2YKdGhlIEFncmVlbWVudCBoYXZlIG5vdCB2aW9sYXRlZCBhbnkgQW50aS0KQ29ycnVwdGlvbiBMYXdzOwoKYykgdGhlcmUgaGF2ZSBiZWVuIG5vIGNoYW5nZXMgaW4gdGhlCkNvbnRyYWN0b3IncyBlbXBsb3llZXMgZGVzaWduYXRlZCBhcyAiS2V5ClBlcnNvbm5lbCIgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBhZ3JlZW1lbnQKZW50ZXJlZCBpbnRvIGJ5IEomSiBhbmQgdGhlIENvbnRyYWN0b3IsIGV4Y2VwdCBmb3IKdGhlIGNoYW5nZXMgc2hvd24gaW4gdGhlIGxpc3QgZW5jbG9zZWQgd2l0aCB0aGUKcmVjb3JkcyBzdWJtaXR0ZWQgYnkgdGhlIENvbnRyYWN0b3I7CgpkKSBUaGUgQ29udHJhY3RvciBoYXMgbm90IG1hZGUgYW55IGNoYW5nZXMKaW4gdGhlIHVzZSBvZiBzdWJjb250cmFjdG9ycyBmb3IgdGhlIHByb3Zpc2lvbiBvZiB0aGUKc2VydmljZXMgdG8gSiZKIGluIGFjY29yZGFuY2Ugd2l0aCB0aGUgQWdyZWVtZW50LApleGNlcHQgZm9yICgxKSB0aGUgY2lyY3Vtc3RhbmNlcyBwZXJtaXR0ZWQgYnkgdGhlCkFncmVlbWVudCBhbmQgKDIpIHRoZSBjaGFuZ2VzIGRldGFpbGVkIGluIHRoZSBsaXN0CmVuY2xvc2VkIHdpdGggdGhlIHJlY29yZHMgc3VibWl0dGVkIGJ5IHRoZQpDb250cmFjdG9yOyBhbmQKCmUpIFRoZSBDb250cmFjdG9yIGhhcyBrZXB0IGFjdHVhfCBhbmQKYWNjdXJhdGUgcmVjb3JkcyBuZWNlc3NhcnkgdG8gZGVtb25zdHJhdGUKY29tcGxpYW5jZSB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YgdGhpcyBBcHBlbmRpeC4KNi4gVGhlIENvbnRyYWN0b3IgaXMgcmVxdWlyZWQgdG8ga2VlcCByZWNvcmRzCihpbmNsdWRpbmcgZmluYW5jaWFsIHJlY29yZHMpIGFuZCBjb3x8ZWN0IHN1cHBvcnRpbmcKZG9jdW1lbnRzIHJlbGF0ZWQgdG8gdGhlIGNvbnRlbnQgb2YgdGhpcwpBZ3JlZW1lbnQsIGFuZCB0byBtYWtlIHRoZW0gYXZhaWxhYmxlIHRvIEomSiBhbmQKaXRzIGF1ZGl0b3JzIGluIGFjY29yZGFuY2Ugd2l0aCBKJkoncyByZXF1aXJlbWVudHMsCmluIG9yZGVyIHRvIGRvY3VtZW50IG9yIHZlcmlmeSBjb21wbGlhbmNlIHdpdGggdGhpcwpBcHBlbmRpeC4KCiAKCjIxCgpKb2huc29uU3pKb2huc29uCgpQb2t1ZCBkb2RhdmF0ZWwgbmVkb2Ryxb7DrSBwb8W+YWRhdmt5IHRldG8gcMWZw61sb2h5LApidWRlIHNlIHRvdG8gbmVkb2Ryxb5lbsOtIHBvxb5hZGF2a8WvIHBvdmHFvm92YXQgemEKesOhdmHFvm7DqSBwb3J1xaFlbsOtIGRvaG9keSBhIHYgdGFrb3bDqW0gcMWZw61wYWTEmyBtw6EKc3BvbGXEjW5vc3QgSiZKIHByYXZvIG9rYW3Fvml0ZSBww61zZW1uxJsgdnlwb3bEm2TEm3QKZG9ob2R1ICYgZG9kYXZhdGVsZW0sIGFuacW+IHNwb2xlxI1ub3N0aSBKJkoKdnpuaWtub3Uga3bFr2xpIHZ5cG92xJt6ZW7DrSBkb2hvZHkgamFrZWtvbGkgZmluYW7EjW7DrQpuZWJvIGpha8Opa29saSBqaW7DqSB6w6F2YXpreS4KCnxmIHRoZSBDb250cmFjdG9yIGZhaWxzIHRvIGNvbXBseSB3aXRoIHRoZSBvYmxpZ2F0aW9ucwp1bmRlciB0aGlzIEFwcGVuZGl4LCBzdWNoIG5vbi1jb21wbGlhbmNlIHNoYWxsIGJlCmRlZW1lZCB0byBjb25zdGl0dXRlIGEgbWF0ZXJpYWwgYnJlYWNoIG9mIHRoZQpBZ3JlZW1lbnQgYW5kIGluIHN1Y2ggYSBjYXNlIEomSiBzaGFsbCBoYXZlIHRoZQpyaWdodCB0byB0ZXJtaW5hdGUgdGhlIEFncmVlbWVudCB3aXRoIHRoZQpDb250cmFjdG9yIGltbWVkaWF0ZWx5LCB1cG9uIGEgd3JpdHRlbiBub3RpY2UsCndpdGhvdXQgSiZKIGluY3VycmluZyBhbnkgZmluYW5jaWFsIG9yIGFueSBvdGhlcgp8aWFiaXxpdHkgZm9yIGFncmVlbWVudCB0ZXJtaW5hdGlvbi4KCiAKCjIyCgpKb2huc29uU3pKb2huc29uCgpQxZnDrWxvaGEgNgoKSW5mb3JtYWNlIG8gcHJhdmlkbGVjaCB6cHJhY292w6Fuw60gb3NvYm7DrWNoCsO6ZGFqxa8KClR5dG8gaW5mb3JtYWNlIHNlIHZ6dGFodWrDrSBrb3NvYm7DrW0gw7pkYWrFr20KemFtxJtzdG5hbmPFryBhc3BvbGXEjW7DrWvFryBvYmNob2Ruw61obyBwYXJ0bmVyYQpzcG9sZcSNbm9zdGkgSm9obnNvbiAmIEpvaG5zb24gcy5yLm8uLCBrdGVyw6kgZGFuw70KcGFydG5lciBwxZllZGF2YSBzcG9sZcSNbm9zdGkgdnJhbWNpIG9iY2hvZG7DrWNoCnZ6dGFoxa8sIGFieSBwxZllZGV2xaHDrW0gdXNuYWRuaWwgb2JjaG9kbsOtIGtvbnRha3R5CnTDvWthasOtY8OtIHNlIHBsbmVuaSBzbWxvdXZ5IHV6YXbFmWVuw6kgbWV6aQpvYmNob2Ruw61tIHBhcnRuZXJlbSBhc3BvbGXEjW5vc3TDrSBKb2huc29uICYKSm9obnNvbiBzLnIuby4KClBvIHDFmWlqZXTDrSBvc29ibsOtY2ggw7pkYWrFryB6YW1lc3RuYW5jdSBuZWJvCnNwb2xlxI1uw61rxa8gemFwb2plbsO9Y2ggZG8gcGxuZW5pIHNtbG91dnkgbmVibyB6YQpuZSBvZHBvdsSbZG7DvWNoIG5hIHN0cmFuxJsgb2JjaG9kbsOtaG8gcGFydG5lcmEKKGTDoWxlIGplbiDigJ5vc29ibsOtIMO6ZGFqZeKAnCkgc2Ugc3BvbGXEjW5vc3QgSm9obnNvbgomIEpvaG5zb24gcy5yby4sIHNwb2xlxI1ub3N0IHphbG/FvmVuw6EgYSBleGlzdHVqw61jw60KcG9kbGUgcHLDoXZhIENlc2tlIHJlcHVibGlreSwgc2Ugc8OtZGxlbSBXYWx0ZXJvdm8KbsOhbcSbc3TDrSAzMjkvMSwgSmlub25pY2UsIDE1OCAwMCBQcmFoYSA1LCBDZXNrYQpyZXB1Ymxpa2EsIElDTzogNDExOTMwNzUsIHphcHNhbsOhIHYgb2JjaG9kbsOtbQpyZWpzdMWZw61rdSB2ZWRlbsOpbSBNxJtzdHNrw71tIHNvdWRlbSB2IFByYXplLApvZGTDrWwgQywgdmxvxb5rYSA0NzExIHN0YW5lIHNwcmF2Y2UgdWRhasWvIChkw6FsZSBqZW4K4oCec3Byw6F2Y2Ugw7pkYWrFr+KAnCkuIFNwcmF2Y2UgdWRhasWvIHpwcmFjdWplIG9zb2Juw60Kw7pkYWplIHYgc291bGFkdSAmIG5hxZnDrXplbsOtbSAoRVUpIDIwMTYvNjc5IHplIGRuZQoyNy4gZHVibmEgMjAxNiAoT2JlY27DqSBuYcWZw616ZW7DrSBvIG9jaHJhbsSbCm9zb2Juw61jaCDDumRhasWvKSAoZMOhbGUgamVuIOKAnkdEUFLigJwpLiBQcmF2aWRsYSBwcm8KenByYWNvdsOhbsOtIG9zb2Juw61jaCDDumRhasWvIGpzb3UgdXZlZGVuYSBuw63FvmUuCgoxLiDDmsSNZWx5IGFwcsOhdm7DrQpvc29ibsOtY2ggw7pkYWrFry4KU3ByYXZjZSB1ZGFqxa8genByYWNvdmF2YSBvc29ibsOtIMO6ZGFqZSBuYQp6YWtsYWRlIG9wcsOhdm7Em27DqWhvIHpham11IChwcmF2bsOtIGTFr3ZvZCBwb2RsZQrEjWwuIDYgb2RzdC4gMSBww61zbS4gZikgR0RQUikgcHJvIG7DoXNsZWR1asOtY8OtIHVjZWx5CnpwcmFjb3ZhbsOtOgoKZMWvdm9keSB6cHJhY292w6Fuw60KCmEpIGtvbnRha3RvdsOhbsOtIHYgesOhbGXFvml0b3N0ZWNoIHBsbsSbbsOtCnNtbG91dnk7CmIpIGFkbWluaXN0cmF0aXZuw60gdWNlbHksIHZjZXRuZSBvcmdhbml6YWNlCgpzcG9sdXByYWNlIGFkb2h8ZWR1IG5hZCBwbG7Em27DrW0gc2x1xb5lYiBuZWJvCmppbsO9Y2ggesOhdmF6a8WvIG9iY2hvZG7DrW0gcGFydG5lcmVtIHBvZGxlIHTDqXRvCnNtbG91dnk7CgpjKSBkxa9rYXpuw60gdWNlbHkgdMO9a2Fqw61jw60gc2UgcGxuxJtuw60gc21sb3V2eSwKCmQpIHVwbGF0xYhvdsOhbsOtIG5hcm9rxa8gdmUgdnp0YWh1IGsgcHJvdsOhZMSbbsOpCm9iY2hvZG7DrSDEjWlubm9zdGkuCgoyLiBLYXRlZ29yaWUgb3NvYm7DrWNoIMO6ZGFqxa8sCnDFmWVkbcSbdGVtIHpwcmFjb3bDoW7DrQoKa3RlcsOpIGpzb3UKCkFwcGVuZGl4IDYKCkluZm9ybWF0aW9uIG9uIFBlcnNvbmFsIERhdGEgUHJvY2Vzc2luZwpSdWxlcwoKVGhpcyBpbmZvcm1hdGlvbiBhcHBsaWVzIHRvIHBlcnNvbmFsIGRhdGEgb2YKZW1wbG95ZWVzIGFuZCBhc3NvY2lhdGVzIG9mIHRoZSBCdXNpbmVzcyBQYXJ0bmVyCm9mIEpvaG5zb24gJiBKb2huc29uIHMuci5vLiB3aGljaCBhcmUgdHJhbnNmZXJyZWQKdG8gdGhlIENvbXBhbnkgYnkgdGhhdCBQYXJ0bmVyIGFzIHBhcnQgb2YgYnVzaW5lc3MKcmVsYXRpb25zaGlwcywgbW9zdCBzaWduaWZpY2FudGx5IHRvIGZhY2l8aXRhdGUKYnVzaW5lc3MgY29udGFjdHMgcmVsYXRpbmcgdG8gcGVyZm9ybWFuY2Ugb2YgdGhlCkNvbnRyYWN0IGVudGVyZWQgaW50byBieSBhbmQgYmV0d2VlbiB0aGUgQnVzaW5lc3MKUGFydG5lciBhbmQgSm9obnNvbiAmIEpvaG5zb24gcy5yLm8uCgpVcG9uIHJlY2VpcHQgb2YgdGhlIHBlcnNvbmFsIGRhdGEgb2YgdGhlIGVtcGxveWVlcwpvciBhc3NvY2lhdGVzIGludm9sdmVkIGluIG9yIHJlc3BvbnNpYmxlIGZvcgpDb250cmFjdCBwZXJmb3JtYW5jZSBvbiB0aGUgcGFydCBvZiB0aGUgQnVzaW5lc3MKUGFydG5lciAoaGVyZWluYWZ0ZXIgdGhlIOKAnFBlcnNvbmFsIERhdGEiKSwKSm9obnNvbiAmIEpvaG5zb24sIHNyby4sIGEgY29tcGFueSBlc3RhYmxpc2hlZAphbmQgZXhpc3RpbmcgdW5kZXIgdGhlIGxhd3Mgb2Z0aGUgQ3plY2ggUmVwdWJsaWMsCmhhdmluZyBpdHMgcmVnaXN0ZXJlZCBvZmZpY2UgYXQgV2FsdGVyb3ZvIG7DoW3Em3N0w60KMzI5LzEsIEppbm9uaWNlLCAxNTggMDAgUHJhZ3VlIDUsIFF6ZWNoIFJlcHVibGljLApjb21wYW55IGlkZW50aWZpY2F0aW9uIG51bWJlciAoSUNRKTogNDExOTMwNzUsCnJlZ2lzdGVyZWQgaW4gdGhlIENvbW1lcmNpYWwgUmVnaXN0ZXIgbWFpbnRhaW5lZApieSB0aGUgTXVuaWNpcGFsIENvdXJ0IGluIFByYWd1ZSwgU2VjdGlvbiBDLCBJbnNlcnQKNDcxMSBzaGFsbCBiZWNvbWUgdGhlIGRhdGEgY29udHJvfHxlciAoaGVyZWluYWZ0ZXIKdGhlIOKAnERhdGEgQ29udHJvbGxlciIpLiBUaGUgUGVyc29uYWwgRGF0YSBzaGFsbCBiZQpwcm9jZXNzZWQgYnkgdGhlIERhdGEgQ29udHJvbGxlciBpbiBsaW5lIHdpdGgKUmVndWxhdGlvbiAoRVUpIDIwMTYvNjc5IG9mIDI3IEFwcmlsIDIwMTYKKEdlbmVyYWwgRGF0YSBQcm90ZWN0aW9uIFJlZ3VsYXRpb24pIChoZXJlaW5hZnRlcgp0aGUg4oCcR0RQUiIpLiBUaGUgUGVyc29uYWwgRGF0YSBwcm9jZXNzaW5nIHJ1bGVzCmFyZSBkZXRhaWxlZCBiZWxvdy4KCjEuIFB1cnBvc2VzIGFuZCBsZWdhbApQZXJzb25hbCBEYXRhIHByb2Nlc3NpbmcuCgpUaGUgRGF0YSBDb250cm9sbGVyIHNoYWxsIHByb2Nlc3MgdGhlIFBlcnNvbmFsCkRhdGEgb24gdGhlIGJhc2lzIG9mIGEgbGVnaXRpbWF0ZSBpbnRlcmVzdCAobGVnYWwKYmFzaXMgdW5kZXIgQXJ0aWNsZSA2KDEpKGYpIG9mIHRoZSBHRFBSKSBmb3IgdGhlCmZvbGxvd2luZyBwcm9jZXNzaW5nIHB1cnBvc2VzOgoKZ3JvdW5kcyBmb3IKCmEpIGNvbnRhY3RpbmcgaW4gbWF0dGVycyByZWxhdGluZyB0byBDb250cmFjdApwZXJmb3JtYW5jZTsKYikgYWRtaW5pc3RyYXRpdmUgcHVycG9zZXMsIGluY2x1ZGluZyB0aGUKCm9yZ2FuaXphdGlvbiBvZiBjb29wZXJhdGlvbiBhbmQgc3VwZXJ2aXNpb24gb3Zlcgp0aGUgcGVyZm9ybWFuY2Ugb2Ygc2VydmljZXMgb3Igb3RoZXIgb2JsaWdhdGlvbnMgYnkKdGhlIEJ1c2luZXNzIFBhcnRuZXIgdW5kZXIgdGhlIENvbnRyYWN0OwoKYykgZXZpZGVudGlhcnkgcHVycG9zZXMgcmVsYXRpbmcgdG8gQ29udHJhY3QKcGVyZm9ybWFuY2UsCgpkKSBhc3NlcnRpbmcgY2xhaW1zIGluIHJlbGF0aW9uIHRvIHRoZQoKY28gbmQgdWN0ZWQgYnVzaW5lc3MgYWN0aXZpdHkuCgoyLiBDYXRlZ29yaWVzIG9mIFBlcnNvbmFsIERhdGEgc3ViamVjdCB0bwpwcm9jZXNzaW5nCgogCgoyMwoKSm9obnNvblN6Sm9obnNvbgoKU3ByYXZjZSB1ZGFqxa8gc23DrSB2IHrDoXNhZMSbIHpwcmFjb3bDoXZhdCBwcm8gw7rEjWVseQp1dmVkZW7DqSB2IGJvZGUxIG5hc2xlZHVqw61jw60ga2F0ZWdvcmllIG9zb2Juw61jaArDumRhasWvOgoKYSkgaWRlbnRpZmlrYcSNbsOtIMO6ZGFqZTogam3DqW5vIGEgcMWZw61qbWVuw60sCgpiKSBvYmNob2Ruw60gw7pkYWplOiBmdW5rY2UsIG3DrXN0byB2w71rb251CnByw6FjZSwKCmMpIGtvbnRha3Ruw60gw7pkYWplOiB0ZWxlZm9ubsOtIMSNw61zbG8sIGUtbWFpbG92YQoKYWRyZXNhLCDEjcOtc2xvIGZheHUuCgozLiBQxZnDrWplbWNpIMO6ZGFqxa8KCktvc29ibsOtbSDDumRhasWvbSBtb2hvdSBtw610IHDFmcOtc3R1cCBuYXNsZWR1asOtY8OtCnDFmcOtamVtY2kgw7pkYWrFrzoKCmEpIG9wcsOhdm7Em27DrSB6YW3Em3N0bmFuY2kgc3Byw6F2Y2Ugw7pkYWrFryDigJQKZGJhbWUgbmEgdG8sIGFieSBuYcWhaSB6YW1lc3RuYW5jaSBieXxpIHZob2Ruw71tCnpwxa9zb2JlbSBwcm/FoWtvbGVuaSB2b2JsYXN0aSBvY2hyYW55IG9zb2Juw61jaArDumRhasWvIHTDrW0sIMW+ZSBzZSBzZXpuw6Ftw60gcyBuYcWhaW1pIGludGVybsOtbWkKesOhc2FkYW1pIGEgcG9zdHVweSBvY2hyYW55IG9zb2Juw61jaCDDumRhasWvLCBuZWJvCmZvcm1vdSB2eWhyYXplbsO9Y2ggxaBrb2xpY8OtY2ggcHJvZ3JhbcWvLiBWxaFlY2hueQpvc29ieSBvcHLDoXZuxJtuw6kgenByYWNvdsOhdmF0IG9zb2Juw60gdWRhamUgJiBuaW1pCm11c8OtIHphY2jDoXpldCBqYWtvICYgZMWvdsSbcm7DvW1pIGEgY2hyw6FuaXQgamUgcMWZZWQKbmVvcHLDoXZuxJtuw71tIHpwxZnDrXN0dXBuxJtuw61tLAoKYikgcG9za3l0b3ZhdGVsZSBzbHXFvmViLCB2xI1ldG7EmyDEjWxlbsWvCnN0ZWpuw6kgc2t1cGlueSBqYWtvIEpvaG5zb24gJiBKb2huc29uIHMuci5vLiwKemVqbWVuYSBzdWJqZWt0eSB6YWppxaF0dWrDrWPDrSBJVCBzbHXFvmJ5IGEgbsOhc3Ryb2plLApzdWJqZWt0eSBzcG9sdXByYWN1asOtY8OtIHNlIHNwcmF2Y2VtIMO6ZGFqxa8gdmUKdnp0YWh1IGvFmWXFoGVuw60gw7rEjWV0bsOtY2ggesOhbGXFvml0b3N0w60sIGRhxYhvdsO9Y2gKesOhbGXFvml0b3N0w60sIHByYXZuaWNoIHrDoWxlxb5pdG9zdMOtIGFvcHJhdm5lbsOtCnphbWVzdG5hbmNpIHRlY2h0byBzdWJqZWt0xa8sIGt0ZcWZw60gYnlsaSBzbWx1dm7Emwpwb3bEm8WZZW5pIHpwcmFjb3bDoW7DrW0gb3NvYm7DrWNoIMO6ZGFqxa8gdnJhbWNpCnBsbmVuw60gc2x1xb5lYiBwcm8gc3Byw6F2Y2UgdWRhasWvOyBhdsWhYWsgcG91emUKdm5lemJ5dG5lbSByb3pzYWh1IHBybyBqZWppY2ggxZlhZG5lIHBsbmVuw60g4oCUCmsgb3NvYm7DrW0gw7pkYWrFr20gbWFqw60gcMWZw61zdHVwIHBvdXplIG9zb2J5LCBrdGVyw6kKbWFqw60gb3Byw6F2bsSbbsO9IGTFr3ZvZCBrdGFrb3ZlbSBwxZnDrXN0dXB1Cnpkxa92b2TFryDDumtvbMWvLCBrdGVyw6kgcGxuw60sIGFzbHXFvmViLCBrdGVyw6kKcG9za3l0dWrDrSwgYSBrdGXFmcOtIG11c8OtIHphY2jDoXpldCBzIHTEm21pdG8gdWRhamkgamFrbwpzZMWvdmVybsO9bWkgYWNocmFuaXQgamUgcHJvdGkgbmVvcHLDoXZuxJtuw6ltdQpwb3XFvml0w60uCgo0LiBQxZllZMOhbsOtIMO6ZGFqxa8gZG8gdMWZZXTDrWNoIHplbcOtClpwxZnDrXN0dXBuxJtuw60gb3NvYm7DrWNoIMO6ZGFqxa9tIG7Em2t0ZXLDvW0KcMWZw61qZW1jxa9tIG3Fr8W+ZSB2w6lzdCBramVqaWNoIHDFmWVkw6Fuw60gZG8gdMWZZXTDrWNoCnplbcOtLCBqYWtvIGpzb3U6CgphKSB6ZW3EmyBtaW1vIEV2cm9wc2vDvSBob3Nwb2TDocWZc2vDvSBwcm9zdG9yCihFSFApLCB2ZSB2enRhaHUsIGsgbmltxb4gRXZyb3Bza8OhIGtvbWlzZSB2eWRhbGEKcm96aG9kbnV0w60gbyBwxZlpbcSbxZllbsOpIHVyb3ZuaSBvY2hyYW55IHVkYWrFrzsKCkFzIGEgbWF0dGVyIG9mIHByaW5jaXBsZSwgdGhlIERhdGEgQ29udHJvbGxlciBtYXkKcHJvY2VzcyB0aGUgZm9sbG93aW5nIGNhdGVnb3JpZXMgb2YgUGVyc29uYWwgRGF0YQpmb3IgcHVycG9zZXMgcmVmZXJyZWQgdG8gaW4gaXRlbSAxOgoKYSkgaWRlbnRpZmljYXRpb24gZGV0YWlsczogZnV8fCBuYW1lLApiKSBidXNpbmVzcyBkZXRhaWxzOiBwb3NpdGlvbiwgcGxhY2Ugb2Ygd29yaywKYykgY29udGFjdCBkZXRhaWxzOiBwaG9uZSBudW1iZXIsIGVtYWlsCgphZGRyZXNzLCBmYXggbnVtYmVyLgoKMy4gRGF0YSByZWNpcGllbnRzClRoZSBmb2xsb3dpbmcgZGF0YSByZWNpcGllbnRzIG1heSBoYXZlIGFjY2VzcyB0bwpQZXJzb25hbCBEYXRhOgoKYSkgYXV0aG9yaXplZCBlbXBsb3llZXMgb2YgdGhlIERhdGEKQ29udHJvbGxlciDigJQgd2UgbWFrZSBzdXJlIHRoYXQgb3VyIGVtcGxveWVlcyBhcmUKcHJvcGVybHkgdHJhaW5lZCBvbiBwZXJzb25hbCBkYXRhIHByb3RlY3Rpb24gYnkKZmFtaWxpYXJpemluZyB0aGVtIHdpdGggb3VyIGludGVybmFsIHBlcnNvbmFsIGRhdGEKcHJvdGVjdGlvbiBwb2xpY2llcyBhbmQgcHJvY2VkdXJlcyBvciBieSBkZWRpY2F0ZWQKdHJhaW5pbmcgcHJvZ3JhbXMuIEF8fCB0aG9zZSBhdXRob3JpemVkIHRvIHByb2Nlc3MKdGhlIFBlcnNvbmFsIERhdGEgc2hhbGwgYmUgcmVxdWlyZWQgdG8ga2VlcCB0aGVtCmNvbmZpZGVudGlhfCBhbmQgcHJvdGVjdCB0aGVtIGFnYWluc3QgdW5hdXRob3JpemVkCmRpc2Nsb3N1cmUsCgpiKSBzZXJ2aWNlIHByb3ZpZGVycywgaW5jbHVkaW5nIG1lbWJlcnMKb2Z0aGUgc2FtZSBncm91cCBhcyBKb2huc29uICYgSm9obnNvbiBzLnIuby4sCmluIHBhcnRpY3VsYXIgZW50aXRpZXMgcHJvdmlkaW5nIElUIHNlcnZpY2VzIGFuZCB0b29scywKZW50aXRpZXMgY29vcGVyYXRpbmcgd2l0aCB0aGUgRGF0YSBDb250cm9sbGVyIGluCnJlbGF0aW9uIHRvIHRoZSBoYW5kbGluZyBvZiBhY2NvdW50aW5nIG1hdHRlcnMsIHRheAptYXR0ZXJzLCBsZWdhbCBtYXR0ZXJzIGFuZCBhdXRob3JpemVkIGVtcGxveWVlcyBvZgpzdWNoIGVudGl0aWVzIHdobyBoYXZlIGJlZW4gY29udHJhY3R1YXx8eQplbnRydXN0ZWQgd2l0aCB0aGUgcHJvY2Vzc2luZyBvZiBQZXJzb25hbCBEYXRhIGluCm9yZGVyIHRvIHBlcmZvcm0gdGhlIHNlcnZpY2VzIGZvciB0aGUgRGF0YQpDb250cm9sbGVyOyBob3dldmVyLCBvbnx5IHRvIHRoZSBleHRlbnQgbmVjZXNzYXJ5CmZvciB0aGVpciBwcm9wZXIgcGVyZm9ybWFuY2Ug4oCUIFBlcnNvbmFsIERhdGEgYXJlCm9ubHkgYWNjZXNzZWQgYnkgaW5kaXZpZHVhbHMgd2hvIGhhdmUganVzdGlmaWVkCnJlYXNvbiB0byBoYXZlIHN1Y2ggYW4gYWNjZXNzIGR1ZSB0byB0aGUgdGFza3MKdGhleSBwZXJmb3JtIGFuZCB0aGUgc2VydmljZXMgdGhleSBwcm92aWRlLCBhbmQKd2hvIGFyZSByZXF1aXJlZCB0byBrZWVwIHRoZSBkYXRhIGNvbmZpZGVudGlhfCBhbmQKdG8gcHJvdGVjdCB0aGUgZGF0YSBhZ2FpbnN0IHVuYXV0aG9yaXplZCB1c2UuCgo0LiBEYXRhIHRyYW5zZmVyIHRvIHRoaXJkIGNvdW50cmllcwpEaXNjbG9zdXJlIG9mIHRoZSBQZXJzb25hbCBEYXRhIHRvIGNlcnRhaW4KcmVjaXBpZW50cyBzaGFsbCByZXN1bHQgaW4gdGhlaXIgdHJhbnNmZXIgdG8gdGhpcmQKY291bnRyaWVzLCBzdWNoIGFzOgoKYSkgY291bnRyaWVzIG91dHNpZGUgdGhlIEV1cm9wZWFuIEVjb25vbWljCkFyZWEgKEVFQSkgaW4gcmVzcGVjdCBvZiB3aGljaCB0aGUgRXVyb3BlYW4KQ29tbWlzc2lvbiBoYXMgaXNzdWVkIGEgZGVjaXNpb24gb24gYW4gYWRlcXVhdGUKbGV2ZWwgb2YgcHJvdGVjdGlvbiBmb3IgZGF0YTsKCiAKCjI0CgpKb2huc29uU3pKb2huc29uCgpiKSB6ZW1lIG1pbW8gRUhQLCB2amVqaWNoxb4gcMWZw61wYWRlCm5lZXhpc3R1amUgxb5hZG7DqSByb3pob2RudXTDrSBFdnJvcHNrw6kga29taXNlCm8gcMWZaW3Em8WZZW5vc3RpIG9jaHJhbnkgb3NvYm7DrWNoIMO6ZGFqxa8uIFBva3VkIHNlCm9zb2Juw60gw7pkYWplIHDFmWVkw6F2YWrDrSBwxZnDrWplbWPFr20gdiB0xJtjaHRvIHTFmWV0w61jaAp6ZW3DrWNoLCBzcHJhdmNlIHVkYWrFryB2eXXFvmlqZSBvZHBvdsOtZGFqw61jw60Kb2NocmFubmEgb3BhdMWZZW7DrSB2ZSB2enRhaHUga3DFmWVkYXZhbsO9bQrDumRhasWvbSwgamFrbyBqc291IHN0YW5kYXJkbsOtIHNtbHV2bsOtIGRvbG/Fvmt5LAp6YXZhem5hIHBvZG5pa292w6EgcHJhdmlkbGEuCgo1LiBEb2JhIHVjaG92w6F2w6Fuw60gw7pkYWrFrwoKT3NvYm7DrSDDumRhamUgc2UgdWNob3bDoXZhasOtIG5lam3DqW7EmyBwbyBkb2J1CnRydsOhbsOtIHNtbG91dnkgbWV6aSBzcHJhdmNlbSDDumRhasWvIGEgb2JjaG9kbsOtbQpwYXJ0bmVyZW0sIGplasOtxb4gcHJvdmFkZW5pIHphaHJub3ZhbG8gc3ViamVrdHkKdWRhasWvLiBLZHlrb2xpIGplIHRvIG5lemJ5dG7DqSB6IGTFr3ZvZHUgZMWva2F6bsOtY2gKw7rEjWVsxa8sIG1vaG91IHNlIG9zb2Juw60gw7pkYWplIHRha2UgdWNob3ZhdmF0IGHFvgpkbyB2eXByxaFlbsOtIHVzdGFub3ZlbsOtIG8gcHJvbWzEjWVuw60gbsOhcm9rxa8KeiBkxa92b2R1IHByb3Zvem92YW7DqSBwb2RuaWthdGVsc2vDqSDEjWlubm9zdGkgbmVibwp1a29uxI1lbsOtIHNvdWRuw61jaCDFmcOtemVuw60gdmUgdnp0YWh1IGt1dmVkZW5lCnNtbG91dmUuCgo2LiBQcmF2aWRsYQrDumRhasWvCgpPc29ibsOtIMO6ZGFqZSBzZSB6cHJhdmlkbGEgesOtc2vDoXZhasOtIG9kIG9iY2hvZG7DrWhvCnBhcnRuZXJhLiBPYmNob2Ruw60gcGFydG5lciBidWRlIG9kcG92w61kYXQgemEKaW5mb3Jtb3ZhbsOtIHN1Ympla3TFryDDumRhasWvIG8gcGxhbm92YW5lbQpwb3NreXRudXTDrSBqZWppY2ggdWRhasWvIHNwcmF2Y2kgw7pkYWrFryBhIG8gcm96c2FodQphZMWvdm9kZWNoIHRvaG90byBwb3NreXRudXTDrS4gT3NvYm7DrSDDumRhamUgbHplCnRha8OpIHrDrXNrYXQgcMWZw61tbyBvZCBzdWJqZWt0xa8gdWRhasWvLiBQb3NreXRvdsOhbsOtCm9zb2Juw61jaCDDumRhasWvIGplIGRvYnJvdm9sbsOpOyBqZSB2xaFhayBuZXpieXRuw6kgcHJvCnBsbsSbbsOtIHNtbG91dnkuIE5lcG9za3l0bnV0w60gdWRhasWvIG3Fr8W+ZSB6dMOtxb5pdApuZWJvIHpuZW1vxb5uaXQgc3BvbHVwcsOhY2kgc2UgemFtxJtzdG5hbmNlbSBuZWJvCnNwb2xlxI1uw61rZW0gb2JjaG9kbsOtaG8gcGFydG5lcmEuCgpzaHJvbWHFvsSPb3bDoW7DrSBvc29ibsOtY2gKCjcuIFByw6F2YQpvc29ibsOtY2ggw7pkYWrFrwpTdWJqZWt0IHVkYWrFryBtxa/FvmUgdXBsYXRuaXQgdmUgdnp0YWh1IGtlIHNwcmF2Y2kKdWRhasWvIHplam1lbmEgbmFzbGVkdWrDrWPDrSBwcsOhdmE6CgphKSBwcsOhdm8gcG/FvmFkb3ZhdCBwxZnDrXN0dXAga2Ugc3bDvW0gb3NvYm7DrW0Kw7pkYWrFr20gYSB6w61za2F0IGluZm9ybWFjZSBvIGplamljaCB6cHJhY292w6Fuw60sCmEgdiBwxZnDrXBhZMSbLCDFvmUganNvdSBuZXDFmWVzbsOpLCBwcmF2byBwb8W+YWRvdmF0CmplamljaCBvcHJhdnUgKHBvZGxlIMSNbMOhbmt1IDE1IGEgMTYgR0RQUiksCgpzb3V2aXNlasOtY8OtIHNlIHpwcmFjb3bDoW7DrW0KCmIpIHByYXZvIHBvxb5hZG92YXQgb21lemVuw60genByYWNvdmFuw60Kc3bDvWNoIMO6ZGFqxa8gdiBzaXR1YWPDrWNoIGEgemEgcG9kbcOtbmVrIHV2ZWRlbsO9Y2gKdiDEjWzDoW5rdSAxOCBHRFBSIChzdWJqZWt0IHVkYWrFryBtxa/FvmUgcG/FvmFkb3ZhdApvbWV6ZW7DrSB6cHJhY292YW7DrSBzdsO9Y2ggb3NvYm7DrWNoIMO6ZGFqxa8sCnphdMOtbWNvIHNlIG92xJvFmXVqZSBwxZllc25vc3QgdWRhasWvIG5lYm8gcHJvYsOtaGEKenZhxb5vdsOhbsOtIGplaG8gbmFtaXRreSB2xa/EjWkgenByYWNvdmFuw60gdWRhasWvLgpTdWJqZWt0IHVkYWrFryBtw6EgdG90byBwcsOhdm8gdGFrw6kgdiBwxZnDrXBhZMSbLCDFvmUgZGxlCgpiKSBjb3VudHJpZXMgb3V0c2lkZSB0aGUgRUVBIGluIHRoZSBjYXNlIG9mCndoaWNoIHRoZXJlIGlzIG5vIHBlcnNvbmFsIGRhdGEgcHJvdGVjdGlvbgphZGVxdWFjeSBkZWNpc2lvbiBvZiB0aGUgRXVyb3BlYW4gQ29tbWlzc2lvbi4KV2hlcmUgdGhlIFBlcnNvbmFsIERhdGEgYXJlIHRyYW5zZmVycmVkIHRvCnJlY2lwaWVudHMgaW4gc3VjaCB0aGlyZCBjb3VudHJpZXMsIHRoZSBEYXRhCkNvbnRyb2xsZXIgc2hhbGwgdXNlIGFkZXF1YXRlIHByb3RlY3RpdmUgbWVhc3VyZXMKaW4gcmVzcGVjdCBvZiB0aGUgZGF0YSBiZWluZyB0cmFuc2ZlcnJlZCwgc3VjaCBhcwpTdGFuZGFyZCBDb250cmFjdHVhbCBDbGF1c2VzLCBCaW5kaW5nIENvcnBvcmF0ZQpSdWxlcy4KCjUuIERhdGEgc3RvcmFnZSBwZXJpb2QKClRoZSBQZXJzb25hbCBEYXRhIHNoYWxsIGJlIHJldGFpbmVkIGZvciBhdCBsZWFzdCB0aGUKZHVyYXRpb24gb2YgdGhlIHRlcm0gb2YgdGhlIENvbnRyYWN0IGJldHdlZW4gdGhlCkRhdGEgQ29udHJvbGxlciBhbmQgdGhlIEJ1c2luZXNzIFBhcnRuZXIsIHRoZQppbXBsZW1lbnRhdGlvbiBvZndoaWNoIGludm9sdmVkIHRoZSBkYXRhIHN1YmplY3RzLgpXaGVuZXZlciBuZWNlc3NhcnkgZm9yIGV2aWRlbnRpYXJ5IHB1cnBvc2VzLApQZXJzb25hbCBEYXRhIG1heSBhbHNvIGJlIHJldGFpbmVkIHVudGl8IHRoZSBleHBpcnkKb2YgdGhlIHN0YXR1dGUgb2YgfGltaXRhdGlvbnMgb24gY2xhaW1zIGR1ZSB0byB0aGUKYnVzaW5lc3MgYWN0aXZpdHkgcnVuIG9yIHRoZSBjb25jbHVzaW9uIG9mIGNvdXJ0CnByb2NlZWRpbmdzIHJlbGF0ZWQgdG8gdGhlIHNhaWQgQ29udHJhY3QuCgo2LiBQZXJzb25hbCBEYXRhIGNvbGxlY3Rpb24gcnVsZXMKCkFzIGEgcnVsZSwgUGVyc29uYWwgRGF0YSBzaGFsbCBiZSBvYnRhaW5lZCBmcm9tIHRoZQpCdXNpbmVzcyBQYXJ0bmVyLiBUaGUgQnVzaW5lc3MgUGFydG5lciBzaGFsbCBiZQpyZXNwb25zaWJsZSBmb3Igbm90aWZ5aW5nIHRoZSBkYXRhIHN1YmplY3RzIGFib3V0IHRoZQpwbGFubmVkIHByb3Zpc2lvbiBvZiB0aGVpciBkYXRhIHRvIHRoZSBEYXRhCkNvbnRyb2xsZXIgYW5kIGFib3V0IHRoZSBzY29wZSBvZiBhbmQgcmVhc29ucyBmb3IKc3VjaCBwcm92aXNpb24uIFBlcnNvbmFsIERhdGEgbWF5IGFsc28gYmUKb2J0YWluZWQgZGlyZWN0bHkgZnJvbSB0aGUgZGF0YSBzdWJqZWN0cy4gUHJvdmlzaW9uCm9mIHRoZSBQZXJzb25hbCBEYXRhIGlzIHZvbHVudGFyeTsgaG93ZXZlciwgaXQgaXMKbmVjZXNzYXJ5IGZvciBDb250cmFjdCBwZXJmb3JtYW5jZS4gRmFpbHVyZSB0bwpwcm92aWRlIHRoZSBkYXRhIG1heSBtYWtlIGl0IGRpZmZpY3VsdCBvciBpbXBvc3NpYmxlCnRvIGNvb3BlcmF0ZSB3aXRoIGFuIGVtcGxveWVlIG9yIGFzc29jaWF0ZSBvZiB0aGUKQnVzaW5lc3MgUGFydG5lci4KNy4gUmlnaHRzIHJlbGF0ZWQgdG8gUGVyc29uYWwgRGF0YQpwcm9jZXNzaW5nCgpUaGUgZGF0YSBzdWJqZWN0IG1heSBleGVyY2lzZSwgaW4gcGFydGljdWxhciwgdGhlCmZvbGxvd2luZyByaWdodHMgaW4gcmVsYXRpb24gdG8gdGhlIERhdGEgQ29udHJvbGxlcjoKCmEpIHRoZSByaWdodCB0byByZXF1ZXN0IGFjY2VzcyB0byB0aGVpciBQZXJzb25hbApEYXRhIGFuZCBvYnRhaW4gaW5mb3JtYXRpb24gYWJvdXQgdGhlaXIgcHJvY2Vzc2luZywKYW5kIGluIHRoZSBldmVudCB0aGF0IHRoZXkgYXJlIGluYWNjdXJhdGUsIHRoZSByaWdodAp0byByZXF1ZXN0IHRoZWlyIHJlY3RpZmljYXRpb24gKHVuZGVyIEFydGljbGVzIDE1IGFuZAoxNiBvZnRoZSBHRFBSKSwKCmIpIHRoZSByaWdodCB0byByZXF1ZXN0IHJlc3RyaWN0aW9uIG9mIHByb2Nlc3NpbmcKb2Z0aGVpciBkYXRhIGluIHNpdHVhdGlvbnMgYW5kIG9uIHRoZSB0ZXJtcyBzcGVjaWZpZWQKaW4gQXJ0aWNsZSAxOCBvZiB0aGUgR0RQUiAodGhlIGRhdGEgc3ViamVjdCBtYXkKcmVxdWVzdCByZXN0cmljdGlvbiBvZiBwcm9jZXNzaW5nIG9mIHRoZWlyIHBlcnNvbmFsCmRhdGEgd2hpbGUgdGhlIGFjY3VyYWN5IG9mIHRoZWlyIGRhdGEgaXMgdmVyaWZpZWQgb3IKcGVuZGluZyBjb25zaWRlcmF0aW9uIG9mIHRoZWlyIG9iamVjdGlvbiB0byBkYXRhCnByb2Nlc3NpbmcuIFRoZSBkYXRhIHN1YmplY3QgYWxzbyBoYXMgdGhpcyByaWdodCBpZiwKCiAKCjI1CgpKb2huc29uU3pKb2huc29uCgpqZWhvIG7DoXpvcnUgamUgenByYWNvdsOhbsOtIGplaG8gdWRhasWvIG5lemFrb25uZSwKYWxlIG1hIG7DoW1pdGt5IHByb3RpIG9rYW3Fvml0w6ltdSB2w71tYXp1IHVkYWrFrwpuZWJvIHBvdMWZZWJ1amUgZGVsxaHDrSBkb2J1LCBuZcW+IGplIHDFmWlqYXRhIGRvYmEKenByYWNvdmFuw60sIHBybyBzdGFub3ZlbsOtIG5lYm8gb2JoYWpvYnUgc3bDvWNoCm7DoXJva8WvKSwKCmMpIHByYXZvIHBvxb5hZG92YXQgdsO9bWF6IMO6ZGFqxa8gdiBzb3VsYWR1CnMgxI1sw6Fua2VtIDE3IEdEUFIgKOKAnnByw6F2byBiw710IHphcG9tZW51dOKAnCksCgpkKSBwcmF2byB2em7DqXN0IGtkeWtvbGkgbmFtaXRrdSBwcm90aQp6cHJhY292YW7DrSBzdsO9Y2ggb3NvYm7DrWNoIMO6ZGFqxa8gemTFr3ZvZMWvCnTDvWthasOtY8OtY2ggc2UgamVobyBrb25rcmV0bsOtIHNpdHVhY2UsIHBva3VkIGpzb3UKw7pkYWplIHpwcmFjb3bDoXbDoW55IHNwcmF2Y2VtIHVkYWrFryBwxZlpIHNsZWRvdsOhbsOtCmplaG8gbGVnaXRpbW7DrWNoIHrDoWptxa8gKHBvZGxlIMSNbC4gMjEgb2RzdC4gMSBHRFBSKS4KClZlIHZ6dGFodSBremFsZcW+aXRvc3RlbSB0w71rYWrDrWPDrW0gc2UgenByYWNvdmFuw60Kw7pkYWrFryBhIHVwbGF0xYhvdsOhbsOtIHByYXYgc3ViamVrdMWvIMO6ZGFqxa8gamUgbW/Fvm7DqQprb250YWt0b3ZhdCBzcHJhdmNlIMO6ZGFqxa8sIGEgdG8gcMOtc2VtbsSbIG5hCm7DoXNsZWR1asOtY8OtIGFkcmVzZTogV2FsdGVyb3ZvIG7DoW3Em3N0w60gMzI5LzEsCkppbm9uaWNlLCAxNTggMDAgUHJhaGEgNSwgQ2Vza2EgcmVwdWJsaWthLCBuZWJvCm5hIG7DoXNsZWR1asOtY8OtIGUtbWFpbG92b3UgYWRyZXN1OgoKKGRvIHTEm2xhIGUtbWFpSXUgemFkZWp0ZSDigJ51cGxhdG7Em27DrSBwcmF2IEdEUFLigJwpLAphdGFrZSBwb3bEm8WZZW5jZSBwcm8gb2NocmFudSBvc29ibsOtY2ggw7pkYWrFrwpqbWVub3ZhbsOpaG8gc3ByYXZjZW0gw7pkYWrFryBuYSBlbWFpbG92w6kKYWRyZXNlOiBPc29iYSwga3RlcsOhCnBvZGFsYSDFvsOhZG9zdCB0w71rYWrDrWPDrSBzZSB6cHJhY292w6Fuw60gb3NvYm7DrWNoCsO6ZGFqxa8gdnJhbWNpIHbDvWtvbnUgc3bDvWNoIHByw6F2LCBtxa/FvmUgYsO9dApzcHJhdmNlbSB1ZGFqxa8gcG/FvmFkYW5hIG8gem9kcG92xJt6ZW7DrSBuZWtvbGlrYQpvdGF6ZWt0w71rYWrDrWPDrWNoIHNlIG9zb2Juw61jaCDDumRhasWvLCBhYnkgbW9obGEgYsO9dApvdmXFmWVuYSBqZWrDrSB0b3Rvxb5ub3N0LgoKU3ViamVrdCB1ZGFqxa8gbcWvxb5lIGTDoWxlIHBvZGF0IHN0w63Fvm5vc3Qgb2hsZWRuZQp6cMWvc29idcW+cHJhY292YW7DrWplaG8gb3NvYm7DrWNoIMO6ZGFqxa8gc3ByYXZjZW0KdWRhasWvIFXFmWFkdSBwcm8gb2NocmFudSBvc29ibsOtY2ggw7pkYWrFrzsKd3d3LnVvb3Vjei4KCmluIHRoZWlyIG9waW5pb24sIHRoZSBwcm9jZXNzaW5nIG9mIHRoZWlyIGRhdGEgaXMKdW5sYXdmdWwsIGJ1dCB0aGV5IG9wcG9zZSB0aGUgaW1tZWRpYXRlIGVyYXN1cmUgb2YKdGhlIGRhdGEgb3IgaWZ0aGV5IG5lZWQgdGhlIGRhdGEgZm9yIGEgbG9uZ2VyIHBlcmlvZAoKdGhhbiB0aGUgYWRvcHRlZCBwcm9jZXNzaW5nIHBlcmlvZCwgZm9yIHRoZQplc3RhYmxpc2htZW50IG9yIGRlZmVuc2Ugb2YgdGhlaXIgY2xhaW1zKSwKYykgdGhlIHJpZ2h0IHRvIHJlcXVlc3QgZXJhc3VyZSBvZiBkYXRhIGluCgprZWVwaW5nIHdpdGggQXJ0aWNsZSAxNyBvZiB0aGUgR0RQUiAodGhlIOKAnHJpZ2h0IHRvCmJlIGZvcmdvdHRlbiIpLAoKZCkgdGhlIHJpZ2h0IHRvIG9iamVjdCwgYXQgYW55IHRpbWUsIHRvIHRoZQpwcm9jZXNzaW5nIG9mIHRoZWlyIFBlcnNvbmFsIERhdGEgb24gZ3JvdW5kcwpyZWxhdGluZyB0byB0aGVpciBwYXJ0aWN1bGFyIHNpdHVhdGlvbiBpZiB0aGUgZGF0YSBhcmUKcHJvY2Vzc2VkIGJ5IHRoZSBEYXRhIENvbnRyb2xsZXIgaW4gdGhlIHB1cnN1aXQgb2YKaXRzIGxlZ2l0aW1hdGUgaW50ZXJlc3RzICh1bmRlciBBcnRpY2xlIDIxICgxKSBvZiB0aGUKR0RQUikuCgpJdCBpcyBwb3NzaWJsZSB0byBjb250YWN0IHRoZSBEYXRhIENvbnRyb2xsZXIgd2l0aApyZWdhcmQgdG8gbWF0dGVycyByZWxhdGluZyB0byB0aGUgcHJvY2Vzc2luZyBvZiBkYXRhCmFuZCB0aGUgZXhlcmNpc2Ugb2YgdGhlIHJpZ2h0cyBvZiB0aGUgZGF0YSBzdWJqZWN0cwpieSB3cml0aW5nIHRvIHRoZSBmb2xsb3dpbmcgYWRkcmVzczogV2FsdGVyb3ZvCm7DoW3Em3N0w60gMzI5LzEsIEppbm9uaWNlLCAxNTggMDAgUHJhaGEgNSwgQ2Vza2EKcmVwdWJsaWthLCBvciB0byB0aGUgZm9sbG93aW5nIGVtYWlsIGFkZHJlc3M6CihlbnRlcmluZwoiZXhlcmNpc2luZyBHRFBSIHJpZ2h0cyIgaW4gdGhlIGJvZHkgb2Z0aGUgZW1haWwpLAphcyB3ZWxsIGFzIHRoZSBEYXRhIFByb3RlY3Rpb24gT2ZmaWNlciBhcHBvaW50ZWQgYnkKdGhlIERhdGEgQ29udHJvbGxlciBhdCB0aGUgZW1haWwgYWRkcmVzczoKQSBwZXJzb24gd2hvIGhhcwpzdWJtaXR0ZWQgYSByZXF1ZXN0IGNvbmNlcm5pbmcgdGhlaXIgUGVyc29uYWwgRGF0YQpwcm9jZXNzaW5nIGFzIHBhcnQgb2YgdGhlIGV4ZXJjaXNlIG9mIHRoZWlyIHJpZ2h0cwptYXkgYmUgYXNrZWQgYnkgdGhlIERhdGEgQ29udHJvbGxlciB0byBhbnN3ZXIgYQpudW1iZXIgb2YgcXVlc3Rpb25zIHJlbGF0aW5nIHRvIHRoZWlyIFBlcnNvbmFsIERhdGEKc28gdGhhdCB0aGVpciBpZGVudGl0eSBtYXkgYmUgdmVyaWZpZWQuCgpGdXJ0aGVybW9yZSwgdGhlIGRhdGEgc3ViamVjdCBtYXkgbG9kZ2UgYQpjb21wbGFpbnQgYWJvdXQgdGhlIHdheSB0aGVpciBwZXJzb25hbCBkYXRhIGFyZQpwcm9jZXNzZWQgYnkgdGhlIERhdGEgQ29udHJvbGxlciB0byB0aGUgT2ZmaWNlIGZvcgpQZXJzb25hbCBEYXRhIFByb3RlY3Rpb247IHd3dy51b291Y3ouCgogCgoyNgoK</data><hash algoritmus="sha256">05babbf9525b1d60e38a5033c787efe5943d5b3fe93a82aab2f6e84d4500cc73</hash><nazevSouboru>[A] S20250062900 Rámcová dohoda s nemocnicí o spolupráci na cyklu školení.txt</nazevSouboru></priloha></prilohy><casGenerovani>2026-07-03T23:00:47+02:00</casGenerovani><platnyZaznam>1</platnyZaznam></data><potvrzeni><hash algoritmus="sha256">aa164301649f42db9302807171919ecfd3cc3cc191c8ca36aa0b269d0ec66e45</hash><elektronickaZnacka/></potvrzeni></zaznam>
