MS4gSU5UUk9EVUNUSU9OCgpXaW5lIGVzdCB1biBwcm9ncmFtbWUgcXVpIHBlcm1ldCBkJ2V46WN1dGVyIGxlcyBsb2dpY2llbHMg6WNyaXRzCnBvdXIgTWljcm9zb2Z0IFdpbmRvd3MgKGNvbXByZW5hbnQgbGVzIGV46WN1dGFibGVzIERPUywgV2luZG93cyAzLngKZXQgV2luMzIpIHN1ciB1biBVbml4LiBJbCBlc3QgY29tcG9z6SBkJ3VuIGNoYXJnZXVyIHF1aSBjaGFyZ2UgZXQKZXjpY3V0ZSB1biBiaW5haXJlIE1pY3Jvc29mdCBXaW5kb3dzLCBhaW5zaSBxdWUgZCd1bmUgbGlicmFpcmllIChhcHBlbOllCldpbmVsaWIpIHF1aSBpbXBs6W1lbnRlIGxlcyBhcHBlbHMgZGUgbCdBUEkgZGUgV2luZG93cyBwYXIgbGV1cgrpcXVpdmFsZW50IFVuaXggb3UgWDExLiBDZXR0ZSBsaWJyYWlyaWUgcGV1dCDpZ2FsZW1lbnQg6nRyZSB1dGlsaXPpZQpwb3VyIHBvcnRlciBkdSBjb2RlIFdpbjMyIHZlcnMgdW4gZXjpY3V0YWJsZSBVbml4IG5hdGlmcy4KCldpbmUgZXN0IHVuIGxvZ2ljaWVsIGxpYnJlLCBkaXN0cmlidekgc291cyBHTlUgTEdQTDsgbGlzZXogbGUgZmljaGllcgpMSUNFTkNFIHBvdXIgbGVzIGTpdGFpbHMuCgoyLiBEyU1BUlJBR0UgUkFQSURFCgpN6m1lIHNpIHZvdXMgY29tcGlsZXog4CBwYXJ0aXIgZGVzIHNvdXJjZXMsIGlsIGVzdCByZWNvbW1hbmTpIGQndXRpbGlzZXIKbCdJbnN0YWxsYXRldXIgZGUgV2luZSBwb3VyIGNvbnN0cnVpcmUgZXQgaW5zdGFsbGVyIFdpbmUuIMAgcGFydGlyIGR1CnLpcGVydG9pcmUgbGUgcGx1cyDpbGV26SBkZXMgc291cmNlcyBkZSBXaW5lIChxdWkgY29udGllbnQgY2UgZmljaGllciksCmV46WN1dGV6IDoKCi4vdG9vbHMvd2luZWluc3RhbGwKClBvdXIgZXjpY3V0ZXIgbGVzIHByb2dyYW1tZXMsIHRhcGV6ICJ3aW5lIFtvcHRpb25zXSBwcm9ncmFtbWUiLiBQb3VyIGRlcwppbmZvcm1hdGlvblMgY29tcGzpbWVudGFpcmVzIGV0IGRlcyBy6XNvbHV0aW9ucyBkZSBwcm9ibOhtZXMsIGxpc2V6IGxlCnJlc3RlIGRlIGNlIGZpY2hpZXIsIGxlcyBwYWdlcyAibWFuIiBkZSBXaW5lLCBsZXMgZmljaGllcnMgZGFucyBsZQpy6XBlcnRvaXJlIGRlIGRvY3VtZW50YXRpb24gZGVzIHNvdXJjZXMgZGUgV2luZSAodm9pciAiRE9DVU1FTlRBVElPTiIpLApldCBzdXJ0b3V0IGxlcyBub21icmV1c2VzIGluZm9ybWF0aW9ucyBxdWUgdm91cyB0cm91dmVyZXogc3VyCmh0dHA6Ly93d3cud2luZWhxLmNvbS4KCjMuIENPTkZJR1VSQVRJT04gTslDRVNTQUlSRQoKUG91ciBjb21waWxlciBldCBleOljdXRlciBXaW5lLCB2b3VzIGRldmV6IGF2b2lyIHVuIGRlcyBzeXN06G1lcwpkJ2V4cGxvaXRhdGlvbiBxdWkgc3VpdCA6CgoJTGludXggdmVyc2lvbiAyLjAuMzYgb3Ugc3Vw6XJpZXVyCglGcmVlQlNEIDQueCBvciBGcmVlQlNEIDUtQ1VSUkVOVCBvdSBzdXDpcmlldXIKCVNvbGFyaXMgeDg2IDIuNSBvdSBzdXDpcmlldXIKCU5ldEJTRC1jdXJyZW50CgrJdGFudCBkb25u6SBxdWUgV2luZSBu6WNlc3NpdGUgdW5lIGltcGzpbWVudGF0aW9uIGRlcyAidGhyZWFkcyIgYXUgbml2ZWF1IGR1Cm5veWF1LCBzZXVscyBsZXMgc3lzdOhtZXMgZCdleHBsb2l0YXRpb24gbWVudGlvbm7pcyBjaS1oYXV0IHNvbnQgc3VwcG9ydOlzLgpEJ2F1dHJlcyBzeXN06G1lcyBkJ2V4cGxvaXRhdGlvbiBxdWkgaW1wbOltZW50ZW50IGxlcyAidGhyZWFkcyIgbm95YXUgcGV1dmVudArqdHJlIHN1cHBvcnTpcyBkYW5zIGxlIGZ1dHVyLgoKSW5mb3JtYXRpb24gTGludXggOgogIEJpZW4gcXVlIExpbnV4IDIuMi54IGRldnJhaXQgZW5jb3JlIGZvbnRpb25uZXIgZXQgcXVlIExpbnV4IDIuMC54IHBvdXJyYWl0CiAgZW5jb3JlIG1hcmNoZXIgKGRlcyB2ZXJzaW9ucyBwbHVzIGFuY2llbm5lcyBkZSAyLjAueCBhdmFpZW50IGRlcyBwbGFudGFnZXMKICBk+yBhdXggInRocmVhZHMiKSwgaWwgZXN0IHBy6WbpcmFibGUgZCdhdm9pciB1biBub3lhdSBy6WNlbnQgdGVsIHF1ZSAyLjQueC4KCkluZm9ybWF0aW9uIEZyZWVCU0QgOgogIEFzc3VyZXotdm91cyBkJ2F2b2lyIGxlcyBvcHRpb25zIFVTRVJfTERULCBTWVNWU0hNLCBTWVNWU0VNLCBhbmQgU1lTVk1TRwogIGVuY2xhbmNo6WVzIGRhbnMgdm90cmUgbm95YXUuCiAgUGx1cyBkJ2luZm9ybWF0aW9uIGVzdCBzaXR16WUgZGFucyBsJ2FyYnJlIGRlIHBvcnRzIDoKICBmdHA6Ly9mdHAuZnJlZWJzZC5vcmcvcHViL0ZyZWVCU0QvcG9ydHMvcG9ydHMvZW11bGF0b3JzL3dpbmUvCgpJbmZvcm1hdGlvbiBTb2xhcmlzIDoKICBJbCBlc3QgcGx1cyBxdWUgcHJvYmFibGUgcXVlIHZvdXMgZGV2cmV6IGNvbnN0cnVpcmUgV2luZSBhdmVjIGxhIGNoYe5uZQogIGQnb3V0aWxzIEdOVSAoZ2NjLCBnYXMsIGV0Yy4pLiBBdmVydGlzc2VtZW50IDogaW50YWxsZXIgZ2FzIG4nYXNzdXJlIHBhcwogIHF1J2lsIHNlcmEgdXRpbGlz6SBwYXIgZ2NjLiAgUmVjb21wbGlsZXIgZ2NjIGFwcuhzIGwnaW5zdGFsbGF0aW9uIGRlIGdhcwogIG91IGNy6WVyIHVuIGxpZW4gc3ltYm9saXF1ZSBkZSBjYywgYXMgZXQgbGQgdmVycyBsZXMgb3V0aWxzIEdOVSBzZW1ibGUKICBu6WNlc3NhaXJlLgoKSW5mb3JtYXRpb24gTmV0QlNEIDoKICBBc3N1cmV6LXZvdXMgZCdhdm9pciBsZXMgb3B0aW9ucyBVU0VSX0xEVCwgU1lTVlNITSwgU1lTVlNFTSwgYW5kIFNZU1ZNU0cKICBlbmNsYW5jaOllcyBkYW5zIHZvdHJlIG5veWF1LgoKU3lzdOhtZXMgZGUgZmljaGllciBzdXBwb3J06XMgOgogIFdpbmUgZGV2cmFpdCBmb25jdGlvbm5lciBzdXIgbGEgcGx1cGFydCBkZXMgc3lzdOhtZXMgZGUgZmljaGllci4gQ2VwZW5kYW50CiAgV2luZSBzJ2Fycup0ZXJhIGF1IGTpbWFycmFnZSBzaSB1bXNkb3MgZXN0IHV0aWxpc+kgcG91ciBsZSBy6XBlcnRvaXJlIC90bXAuCiAgUXVlbHF1ZXMgcHJvYmzobWVzIGRlIGNvbXBhdGliaWxpdOkgb250IGF1c3NpIOl06SByYXBwb3J06XMgc3VyCiAgbCd1dGlsaXNhdGlvbiBkZXMgZmljaGllcnMgYWNj6WTpcyBhdSB0cmF2ZXJzIGRlIFNhbWJhLiBFZ2FsZW1lbnQsIHB1aXNxdWUKICBOVEZTIG5lIHBldXQg6nRyZSB1dGlsaXPpIGVuIHPpY3VyaXTpIHF1J2F2ZWMgdW4gYWNj6HMgZW4gbGVjdHVyZSBzZXVsIHBvdXIKICBsZSBtb21lbnQsIG5vdXMgcmVjb21tYW5kb25zIGRlIG5lIHBhcyB1dGlsaXNlciBOVEZTLCBwYXJjZSBxdWUgbGVzCiAgcHJvZ3JhbW1lcyBXaW5kb3dzIG9uIGJlc29pbiBkZXMgYWNj6HMgZW4g6WNyaXR1cmUgcHJlc3F1ZSBwYXJ0b3V0LiBTaSB2b3VzCiAgYXZleiBkZXMgZmljaGllciBOVEZTLCBjb3BpZXogbGVzIHZlcnMgdW5lIGxvY2FsaXNhdGlvbiBhY2Nlc3NpYmxlIGVuCiAg6WNyaXR1cmUuCgpDb25maWd1cmF0aW9uIHJlcXVpc2UgZGUgYmFzZSA6ClZvdXMgYXZleiBiZXNvaW4gZCdhdm9pciBsZXMgZmljaGllcnMgImluY2x1ZGUiIGRlIFgxMSBpbnN0YWxs6XMKKGFwcGVs6XMgeGxpYjZnLWRldiBwb3VyIERlYmlhbiBldCBYRnJlZTg2LWRldmVsIHBvdXIgUmVkSGF0KS4KCkNvbmZpZ3VyYXRpb24gcmVxdWlzZSBkZXMgb3V0aWxzIGRlIGNvbXBpbGF0aW9uIDoKU3VyIGxlcyBzeXN06G1lIHg4NiwgZ2NjID49IDIuNy4yIGVzdCBu6WNlc3NhaXJlLiBMZXMgdmVyc2lvbnMgaW5m6XJpZXVyZXMg4ApsYSAyLjcuMi4zIHBldXZlbnQgY3LpZXIgZGVzIGVubnVpcyBsb3NycXVlIGNlcnRhaW5zIGZpY2hpZXJzIHNvbnQgY29tcGls6XMKYXZlYyBsJ29wdGltaXNhdGlvbiwgc291dmVudCBk+yDgIGRlcyBwcm9ibOhtZXMgZGUgZ2VzdGlvbiBkJ2VuLXTqdGUgZGUgZmljaGllci4KcGdjYyBuZSBmb25jdGlvbm5lIHBhcyBhY3R1ZWxsZW1lbnQgYXZlYyBXaW5lLiBMYSBjYXVzZSBkZSBjZSBwcm9ibOhtZSBlc3QKaW5jb25udWUuCgrJdmlkZW1tZW50LCB2b3VzIGF1cmV6IGJlc29pbiBkZSAibWFrZSIgKHRy6HMgcHJvYmFibGVtZW50IEdOVSBtYWtlKS4KClZvdXMgYXVyZXog6WdhbGVtZW50IGJlc29pbiBkZSBmbGV4IHZlcnNpb24gMi41IG91IHN1cOlyaWV1cmUgZXQgeWFjYy4KQmlzb24gZm9uY3Rpb25uZXJhIGVuIHJlcGxhY2VtZW50IGRlIHlhY2MuIFNpIHZvdXMgdXRpbGlzZXogUmVkSGF0IG91IERlYmlhbiwKaW5zdGFsbGV6IGxlcyBwYXF1ZXRzIGZsZXggZXQgYmlzb24uCgpMaWJyYWlyaWVzIG9wdGlvbm5lbGxlcyA6CiAgU2kgdm91cyB2b3VsZXogdW4gc3VwcG9ydCBkJ2ltcHJlc3Npb24g4CBsJ2FpZGUgZGUgQ1VQUywgU1ZQIGluc3RhbGxleiDgIGxhCiAgZm9pcyBsZXMgcGFja2FnZXMgY3VwcyBldCBjdXBzLWRldmVsLgoKUG91ciBsZSB0cmFpdGVtZW50IGF1dG9tYXRpcXVlIGRlcyBzY3JpcHRzIGRlIGxhIHPpcmllIGRlIHRlc3RzLCB2b3VzIGF1cmV6CulnYWxlbWVudCBiZXNvaW4gZGVzIGVuLXTqdGVzIGRlIGTpdmVsb3BwZW1lbnQgZGUgbGlicGVybCAocGFja2FnZSBsaWJwZXJsLWRldgpzb3VzIERlYmlhbikuCgpQb3VyIGxhIGNvbmZpZ3VyYXRpb24gbuljZXNzYWlyZSBzaSB2b3VzIGF2ZXogbCdpbnRlbnRpb24gZGUgY29uc3RydWlyZSBsYQpkb2N1bWVudGF0aW9uIHZvdXMtbeptZSB2b3lleiBsYSBzZWN0aW9uICJET0NVTUVOVEFUSU9OIi4KCjQuIENPTVBJTEFUSU9OCgpBdSBjYXMgb/kgdm91cyBjaG9pc2lzc2V6IGRlIG5lIHBhcyB1dGlsaXNlciB3aW5laW5zdGFsbCwgZXjpY3V0ZXIgbGVzIGNvbS0KbWFuZGVzIHN1aXZhbnRlcyBwb3VyIGNvbnN0cnVpcmUgV2luZSA6CgouL2NvbmZpZ3VyZQptYWtlIGRlcGVuZAptYWtlCgpDZWxhIHZhIGNvbnN0dWlyZSBsZSBwcm9ncmFtbWUgIndpbmUiIGV0IGRlIG5vbWJyZXV4IGJpbmFpcmVzL2xpYnJhaXJpZXMgZGUKc3VwcG9ydC4KTGUgcHJvZ3JhbW1lICJ3aW5lIiBjaGFyZ2VyYSBldCBleOljdXRlcmEgbGVzIGV46WN1dGFibGVzIFdpbmRvd3MuCkxhIGxpYnJhaXJpZSAibGlid2luZSIgKCJXaW5lbGliIikgcGV1dCDqdHJlIHV0aWxpc+llIHBvdXIgY29tcGlsZXIgZXQgbGllcgpsZSBjb2RlIHNvdXJjZSBXaW5kb3dzIHNvdXMgVW5peC4KClBvdXIgdm9pciBsZXMgb3B0aW9ucyBkZSBjb21waWxhdGlvbiwgdGFwZXogLi9jb25maWd1cmUgLS1oZWxwLgoKUG91ciBtZXR0cmUg4CBqb3VyIHVuZSBub3V2ZWxsZSB2ZXJzaW9uIGVuIHV0aWxpc2FudCBsZXMgZmljaGllcnMgcGF0Y2gsIHRvdXQKZCdhYm9yZCBhbGxlciBkYW5zIGxlIHLpcGVydG9pcmUgZGUgcGx1cyBoYXV0IG5pdmVhdSBkZSBsYSB2ZXJzaW9uIGFjdHVlbGxlCihjZWx1aSBxdWkgY29udGllbnQgY2UgZmljaGllciBSRUFETUUuZnIpLiBFbnN1aXRlIGZhaXJlIHVuICJtYWtlIGNsZWFuIiwgZXQKcGF0Y2hlciBsYSB2ZXJzaW9uIGF2ZWMgOgoKICAgIGd1bnppcCAtYyBwYXRjaC1maWxlIHwgcGF0Y2ggLXAxCgpBdmVjICJwYXRjaC1maWxlIiBxdWkgZXN0IGxlIG5vbSBkdSBmaWNoaWVyIGRlIHBhdGNoZSAocXVlbHF1ZSBjaG9zZSBkZQpzaW1pbGFpcmUg4CBXaW5lLXl5bW1kZC5kaWZmLmd6KS4gVm91cyBwb3V2ZXogculleOljdXRlciAiLi9jb25maWd1cmUiLCBldAplbnN1aXRlIHRhcGVyICJtYWtlIGRlcGVuZCAmJiBtYWtlIi4KCjUuIFNFVFVQCgpVbiBmb2lzIHF1ZSBXaW5lIGEg6XTpIGNvbnN0cnVpdCBjb3JyZWN0ZW1lbnQsIHZvdXMgcG91dmV6IHRhcGV6ICJtYWtlIGluc3RhbGwiOwpjZWxhIGluc3RhbGxlcmEgbCdleOljdXRhYmxlIHdpbmUsIGxlcyBwYWdlcyBtYW4gV2luZSBldCBxdWVscXVlcyBhdXRyZXMgZmljaGllcnMKbuljZXNzYWlyZXMuCgpOJ291YmxpZXogcGFzIGRlIGTpc2luc2F0bGxlciB0b3V0ZXMgbGVzIGluc3RhbGxhdGlvbnMgcHLpY+lkYW50ZXMgZGUgd2luZS4KRXNzYXlleiBzb2l0ICJkcGtnIC1yIHdpbmUiLCAicnBtIC1lIHdpbmUiIG91ICJtYWtlIHVuaW5zdGFsbCIgYXZhbnQKZCdpbnN0YWxsZXIuCgpTaSB2b3UgZOlzaXJleiBsaXJlIGxhIGRvY3VtZW50YXRpb24gZm91cm5pZSBhdmVjIGxlcyBzb3VyY2VzIGRlIFdpbmUsIHZveWV6IGxhCnNlY3Rpb24gIkRPQ1VNRU5UQVRJT04iLgoKV2luZSBhIGJlc29pbiBkJ3VuIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbiBub21t6SAiY29uZmlnIiBkYW5zIHZvdHJlIHLpcGVydG9pcmUKfi8ud2luZS4gTGUgZm9ybWF0IGRlIGNlIGZpY2hpZXIgZXN0IGV4cGxpcXXpIGRhbnMgbGEgcGFnZSBtYW4gZHUgZmljaGllciBkZQpjb25maWd1cmF0aW9uIChkb2N1bWVudGF0aW9uL3dpbmUuY29uZi5tYW4pLgpMZSBmaWNoaWVyIGRvY3VtZW50YXRpb24vc2FtcGxlcy9jb25maWcgY29udGllbnQgdW4gZXhlbXBsZSBkZSBmaWNoaWVyIGRlCmNvbmZpZ3VyYXRpb24gcXVpIGRvaXQg6nRyZSBhZGFwdOkgZXQgY29waekgdmVycyBsYSBsb2NhbGlzYXRpb24gbWVudGlvbm7pZQpjaS1kZXNzdXMuCgpOJ291YmxpZXogcGFzIGQnYWpvdXRlciBkZXMgZW50cullcyBkZSByZWdpc3RyZSB2aXJ0dWVsbGUgZW4gYXBwbGljYW50CndpbmVkZWZhdWx0LnJlZyBhdmVjIHByb2dyYW1zL3JlZ2VkaXQvLiBWb3lleiBsZSBy6XBlcnRvaXJlIGRvY3VtZW50YXRpb24vIHBvdXIKbGVzIGTpdGFpbHMuCgpOYXZpZ3VleiBkYW5zIGxhIHNlY3Rpb24gU3VwcG9ydCDgIGh0dHA6Ly93d3cud2luZWhxLmNvbS8gcG91ciBwbHVzIGQnYXN0dWNlcwpkZSBjb25maWd1cmF0aW9uLgoKRW4gY2FzIGQnZXJyZXVyIGRlIGNoYXJnZW1lbnQgZGUgbGlicmFpcmllIChwYXIgZXhlbXBsZQoiRXJyb3Igd2hpbGUgbG9hZGluZyBzaGFyZWQgbGlicmFyaWVzOiBsaWJudGRsbC5zbyIpLCBhc3N1cmV6IHZvdXMgZCdham91dGVyCmxlIGNoZW1pbiBkZXMgbGlicmFpcmllcyDgIC9ldGMvbGQuc28uY29uZiBldCBleOljdXRlciBsZGNvbmZpZyBlbiB0YW50IHF1ZSByb290LgoKUG91ciBwb3V2b2lyIHbpcmlmaWVyIGwnZXhhY3RpdHVkZSBkZSBsJ2Vudmlyb25uZW1lbnQgZG9udCB2b3VzIGF2ZXogYmVzb2luIHBvdXIKcXVlIFdpbmUgcydleOljdXRlIGNvcnJlY3RlbWVudCwgdm91cyBwb3V2ZXogZXjpY3V0ZXIgIi4vdG9vbHMvd2luZWNoZWNrIHwgbGVzcyIuClZvdXMgYXVyZXogdW4gc2NvcmUgZW4gcG91cmNlbnRhZ2UgaW5kaXF1YW50ICJsJ2V4YWN0aXR1ZGUgZGUgbGEgY29uZmlndXJhdGlvbgpkZSBXaW5lIi4gQ2UgcHJvZ3JhbW1lIGVzdCBlbmNvcmUgZW4gZOl2ZWxvcHBlbWVudCBhbHBoYSwgaWwgbidlZmZlY3R1ZSBwYXMKZW5jb3JlIHVuIHbpcml0YWJsZSB0ZXN0IGVuIHByb2ZvbmRldXIsIGlsIGRldnJhaXQgY2VwZW5kYW50IOp0cmUgdXRpbGUgZGFucwp1bmUgcHJlbWnocmUgdulyaWZpY2F0aW9uLgoKTGlzZXogbGVzIHBhZ2UgbWFuIGRlIHdpbmUuY29uZiBwb3VyIHNhdm9pciBjb21tZW50IGJhc2N1bGVyIGVuIHVuIG1vZGUgdGV4dGUKdW5pcXVlbWVudC4KCjYuIEVYyUNVVEVSIERFUyBQUk9HUkFNTUVTCgpMb3JzcXVlIGwnb24gaW52b3F1ZSBXaW5lLCB2b3VzIHBvdXZleiBzcOljaWZpZXIgbGUgY2hlbWluIGVudGllciB2ZXJzCmwnZXjpY3V0YWJsZSBvdSBzZXVsZW1lbnQgbGUgbm9tIGRlIGZpY2hpZXIuCgpQb3VyIGV46WN1dGVyIFNvbGl0YWlyZSBwYXIgZXhlbXBsZSA6CgoJd2luZSBzb2wJCSAgIChlbiB1dGlsaXNhbnQgbGUgY2hlbWluIGQnYWNj6HMgc3DpY2lmaekKCXdpbmUgc29sLmV4ZQkJCWRhbnMgbGUgZmljaGllciAiY29uZmlnIiBwb3VyIGxvY2FsaXNlcgoJCQkJCWxlIGZpY2hpZXIpCgoJd2luZSBjOlxcd2luZG93c1xcc29sLmV4ZSAgKGVuIHV0aWxpc2FudCBsYSBzeW50YXhlIGRlIGZpY2hpZXJzIERPUykKCgl3aW5lIC91c3Ivd2luZG93cy9zb2wuZXhlICAoZW4gdXRpbGlzYW50IGxhIHN5bnRheGUgZGUgZmljaGllcnMgVW5peCkKCgl3aW5lIC0tIHNvbC5leGUgL3BhcmFtZXRyZTEgLXBhcmFtZXRyZTIgcGFyYW1ldHJlMwoJCQkoZW4gYXBwZWxhbnQgbGUgcHJvZ3JhbW1lIGF2ZWMgZGVzIHBhcmFt6HRyZXMpCgpOb3RlOiBsZSBjaGVtaW4gZHUgZmljaGllciBzZXJhIOlnYWxlbWVudCBhZGRpdGlvbm7pIGF1IGNoZW1pbiBwYXIgZOlmYXV0CiAgICAgIGxvcnNxdWUgbGUgbm9tIGVudGllciBlc3Qg6WNyaXQgc3VyIGxhIGxpZ25lIGRlIGNvbW1hbmRlLgoKV2luZSBuJ2VzdCBwYXMgZW5jb3JlIGNvbXBsZXQsIGFpbnNpIHF1ZWxxdWUgcHJvZ3JhbW1lcyBwZXV2ZW50IHBsYW50ZXIuIFNlbG9uCnF1ZSB2b3VzIGF2ZXogaW5zdGFsbOkgY29ycmVjdGVtZW50IHdpbmVkYmcgZCdhcHLocyBkb2N1bWVudGF0aW9uL2RlYnVnZ2VyLnNnbWwsCnZvdXMgZW50cmVyZXogZGFucyBsZSBk6WJvZ3VldXIgdm91cyBwZXJtZXR0YW50IGQnZW5xdep0ZXIgZXQgZGUgculzb3VkcmUgbGUKcHJvYmzobWUuIFBvdXIgcGx1cyBkJ2luZm9ybWF0aW9uIHN1ciBsYSBtYW5p6HJlIGRlIGxlIGZhaXJlLCB2ZXVpbGxleiBsaXJlCmxlIGZpY2hpZXIgZG9jdW1lbnRhdGlvbi9kZWJ1Z2dpbmcuc2dtbC4KClZvdXMgZGV2cmlleiBzYXV2ZWdhcmRlciB0b3VzIHZvcyBmaWNoaWVyIGltcG9ydGFudCBhdXF1ZWxzIHZvdXMgZG9ubmV6IGFjY+hzCuAgV2luZSBvdSB1dGlsaXNlciB1bmUgY29waWUgc3DpY2lhbGUgcG91ciBXaW5lLCBwdWlzcXVlIGRhbnMgY2VydGFpbiBjYXMgZGVzCnV0aWxpc2F0ZXVycyBvbnQgcmFwcG9ydOkgZGVzIGNvcnJ1cHRpb25zIGRlIGZpY2hpZXJzLiBOZSBQQVMK6XjpY3V0ZXIgbCdFeHBsb3JhdGV1ciwgcGFyIGV4ZW1wbGUsIHNpIHZvdXMgbidhdmV6IHBhcyB1bmUgY29waWUgcHJvcHJlLApwdWlzcXVlIGlsIHJlbm9tbWUvY29ycm9tcHQgcGFyZm9pcyBwbHVzaWV1cnMgculwZXJ0b2lyZXMuIE3qbWUgY2VydGFpbmVzCmFwcGxpY2F0aW9uIE1TIHRlbGxlIE1lc3NlbmdlciBwYXIgZXhlbXBsZSBuZSBzb250IHBhcyBz+3JlcyBwdWlzcXUnZWxsZQpwZXV2ZW50IGxhbmNlciBsJ0V4cGxvcmF0ZXVyIGRhbnMgY2VydGFpbnMgY2FzLiBDZXJ0YWluZXMgY29ycnVwdGlvbnMKcGFydGljdWxp6HJlcyB0ZWxsZSAoISQhJCEkISQucGZyKSBwZXV0IGR1IG1vaW5zIOp0cmUgcGFydGllbGxlbWVudApmaXjpZSBlbiB1dGlsaXNhbnQgbGEgbel0aG9kZSBk6WNyaXRlIHBhcgpodHRwOi8vaG9tZS5uZXhnby5kZS9hbmRpLm1vaHIvZG93bmxvYWQvZGVjb3JydXB0X2V4cGxvcmVyCgo3LiBET0NVTUVOVEFUSU9OCgpDZXJ0YWluZXMgZG9jdW1lbnRhdGlvbnMgKGRpdmVycyBHdWlkZXMgV2luZSBldGMpIHBldXZlbnQg6nRyZSB0cm91dullcyBkYW5zCmxlIHLpcGVydG9pcmUgZG9jdW1lbnRhdGlvbi8gKOAgcGFydCBjZXV4IGRpc3BvbmlibGVzIOlnYWxlbWVudCBzdXIgV2luZUhRKQoKU2kgdm91IHZvdWxleiBjb25zdHJ1aXJlIGxlcyBmaWNoaWVyIFNHTUwgaWNpLCB2b3VzIHBvdXZleiBleOljdXRlciBsYQpjb21tYW5kZSAibWFrZSBkb2MiIGRhbnMgbGUgculwZXJ0b2lyZSBkb2N1bWVudGF0aW9uLy4KUG91ciBsZSBmYWlyZSB2b3VzIGF1cnJleiBiZXNvaW4gZGVzIG91dGlscyBkdSBwYWNrYWdlIHNnbWwgKHBvdXIgZGIyaHRtbCwKZGIycHMsIGRiMnBkZikgbm9tbelzIDoKRGViaWFuOgkJZG9jYm9vay11dGlscwpNYW5kcmFrZToJc2dtbC10b29scy1BLkIuQy1ERG1kawpTdVNFOgkJZG9jYmt0bHMtQS5CQi5DLURECgo4LiBPUFRFTklSIFBMVVMgRCdJTkZPUk1BVElPTlMKCldXVzoJQmF1Y291cCBkJ2luZm9ybWF0aW9ucyDgIHByb3BvcyBkZSBXaW5lIHNvbnQgZGlzcG9uaWJsZXMgc3VyIFdpbmVIUSDgCglodHRwOi8vd3d3LndpbmVocS5jb20vIDogZGl2ZXJzIEd1aWRlcyBXaW5lLCBiYXNlIGRlIGRvbm7pZQoJZCdhcHBsaWNhdGlvbnMsIHN1aXZpdCBkZSBib2d1ZXMuIEMnZXN0IHByb2JhYmxlbWVudCBsZSBtZWlsbGV1ciBwb2ludAoJZGUgZOlwYXJ0LgoKRkFROglMYSBGb2lyZSBBdXggUXVlc3Rpb25zIGRlIFdpbmUgZXN0IGxvY2FsaXPpZSDgIDoKCWh0dHA6Ly93d3cud2luZWhxLmNvbS9GQVEKClVzZW5ldDoJVm91cyBwb3V2ZXogcGFybGVyIGRlcyBwcm9ibOhtZXMgb3Ugculzb2x1dGlvbnMgZW4gcmVsYXRpb24gYXZlYyBXaW5lCglvdSBvcHRlbmlyIGRlIGwnYWlkZSBzdXIgY29tcC5lbXVsYXRvcnMubXMtd2luZG93cy53aW5lLgoKQnVnczoJUmFwcG9ydGV6IGxlcyBib2d1ZXMg4CBXaW5lIEJ1Z3ppbGxhIOAgaHR0cDovL2J1Z3Mud2luZWhxLmNvbQoJU1ZQIGNoZXJjaGV6IHRvdXQgZCdhYm9yZCBkYW5zIGxhIGJhc2UgZGUgZG9ubullIGRlIGJ1Z3ppbGxhCglwb3VyIGNvbnRy9GxlciBxdWUgbGUgcHJvYmzobWUgbidlc3QgcGFzIGTpauAgZOljb3V2ZXJ0IGF2YW50CglkZSBwb3N0ZXIgdW4gcmFwcG9ydCBkZSBib2d1ZS4gVm91cyBwb3V2ZXog6WdhbGVtZW50IHJhcHBvcnRlcgoJZGVzIHJhcHBvcnRzIGRlIGJvZ3VlIOAgY29tcC5lbXVsYXRvcnMubXMtd2luZG93cy53aW5lLgoJU1ZQIGxpc2V6IGxlIGZpY2hpZXIgZG9jdW1lbnRhdGlvbi9idWdzLnNnbWwgcG91ciBjb25uYe50cmUgbGVzCglpbmZvcm1hdGlvbnMgbuljZXNzYWlyZXMuCgpJUkM6CUwnYWlkZSBlbiBsaWduZSBlc3QgZGlzcG9uaWJsZSBzdXIgbGUgY2FubmFsICNXaW5lSFEgc3VyCglpcmMuZnJlZW5vZGUubmV0LgoKQ1ZTOglMJ2FyYnJlIGRlIGTpdmVsb3BwZW1lbnQgYWN0dWVsIGRlIFdpbmUgZXN0IGRpc3BvbmlibGUgYXUgdHJhdmVycwoJZGUgQ1ZTLgoJQWxsZXogc3VyIGh0dHA6Ly93d3cud2luZWhxLmNvbS9jdnMgcG91ciBwbHVzIGQnaW5mb3JtYXRpb25zCgpNYWlsaW5nIGxpc3RzOgoJSWwgZXhpc3RlIGRlIG11bHRpcGxlcyBtYWlsaW5nIGxpc3RzIHBvdXIgbGVzIGTpdmVsb3BwZXVycyBkZSBXaW5lOwoJcmVwcG9ydGV6LXZvdXMg4CBodHRwOi8vd3d3LndpbmVocS5jb20vZm9ydW1zIHBvdXIgZGUgcGx1cwoJYW1wbGVzIGluZm9ybWF0aW9ucy4KClNpIHZvdXMgYWpvdXRleiBxdWVscXVlY2hvc2Ugb3UgZml4ZXogdW4gYm9ndWUsIGVudm95ZXogdW4gcGF0Y2ggKGRhbnMgbGUKZm9ybWF0ICdkaWZmIC11JyApIOAgbGEgbGlzdGUgZGUgZGlmZnVzaW9uIHdpbmUtcGF0Y2hlc0B3aW5laHEuY29tICBwb3VyIHNvbgppbmNsdXNpb24gZGFucyBsYSBwcm9jaGFpbmUgdmVyc2lvbi4KCi0tCkFsZXhhbmRyZSBKdWxsaWFyZApqdWxsaWFyZEB3aW5laHEuY29tCg==