V2UgYXJlIGxvb2tpbmcgZm9yIGEgcG9zdGRvY3RvcmFsIHJlc2VhcmNoIGFzc29jaWF0ZSB0byBq b2luIG91ciByZXNlYXJjaCB0ZWFtIHRvIGV4YW1pbmUgcmVzdG9yYXRpb24gYW5kIGZ1ZWwgcmVk dWN0aW9uIG9wcG9ydHVuaXRpZXMgaW4gZmlyZS1hZGFwdGVkIGZvcmVzdCBlY29zeXN0ZW1zIGlu IE1pc3NvdXJpLCBPaGlvLCBhbmQgTWlubmVzb3RhLiAgVGhlIGluZGl2aWR1YWwsIGFsb25nIHdp dGggb3RoZXIgdGVhbSBtZW1iZXJzLCB3aWxsIHdvcmsgdG8gaWRlbnRpZnkgcmVmZXJlbmNlIGNv bmRpdGlvbnMsIGFzc2VzcyBmaXJlIHJpc2tzLCBhbmQgZGV2ZWxvcCBtb2RlbGluZyBhcHByb2Fj aGVzIGZvciBwcmlvcml0aXppbmcgcmVzdG9yYXRpb24gb3Bwb3J0dW5pdGllcyBpbiB0aHJlZSBz dHVkeSBsYW5kc2NhcGVzLiAgDQoNCiANCg0KVGhpcyBwb3NpdGlvbuKAmXMgcHJpbWFyeSByZXNl YXJjaCBvYmplY3RpdmVzIGFyZTogDQoNCiANCg0K74GxICAgICBRdWFudGlmeSBoaXN0b3JpY2Fs IGZvcmVzdCBjb25kaXRpb25zIChzdWNoIGFzIHN0YW5kIHN0cnVjdHVyZSwgc3BlY2llcyBjb21w b3NpdGlvbiwgYW5kIGRlbnNpdHkpIGFuZCByZWZlcmVuY2UgdGFyZ2V0cyBmb3IgcmVzdG9yYXRp b24gZm9yIGZpcmUtYWRhcHRlZCBvYWsgKE1PIGFuZCBPSCkgb3IgcGluZSAoTU4pIGRvbWluYXRl ZCBlY29zeXN0ZW1zIHVzaW5nIEdMTyBzdXJ2ZXkgZGF0YSBhbmQgc3BhdGlhbCBtb2RlbGluZzsN Cg0K74GxICAgICBEZXZlbG9wIGEgZGVzY3JpcHRpb24gb2YgdGhlIGNvbnRlbXBvcmFyeSBjb25k aXRpb24gZm9yIHRoZXNlIHRocmVlIGVjb3N5c3RlbXMgdXNpbmcgZm9yZXN0IGludmVudG9yeSBh bmQgYW5hbHlzaXMgKEZJQSkgYW5kIG90aGVyIGRhdGEgc291cmNlczsNCg0K74GxICAgICBEZXZl bG9wIGZpcmUgcmlzayBtYXBzIGZvciBjb250ZW1wb3JhcnkgbGFuZHNjYXBlcyB1c2luZyBGSUEs IHN0YXRlIGFuZCBuYXRpb25hbCwgYW5kIHdpbGRsYW5kLXVyYmFuIGludGVyZmFjZSBkYXRhOyAN Cg0K74GxICAgICBQcm9kdWNlIG1hcHBlZCwgc3BhdGlhbGx5IG9wdGltaXplZCwgcmVzdG9yYXRp b24gcHJpb3JpdHkgaW5kaWNlcyAoZm9yIHRoZSB0aHJlZSByZWdpb25hbCBsYW5kc2NhcGVzKSB0 aGF0IHByaW9yaXRpemUgcmVzdG9yYXRpb24gZWZmb3J0cyBiYXNlZCBvbiBjdXJyZW50IGZvcmVz dCBjb25kaXRpb25zLCBsYW5kc2NhcGUgcmFyaXR5IG9mIHRoZSBkZXNpcmVkIGNvbmRpdGlvbiwg Y29zdCB0byByZXN0b3JlLCBhbmQgZmlyZSByaXNrLCBwYXJ0aWN1bGFybHkgYXMgaXQgcGVydGFp bnMgdG8gcGVvcGxlIGFuZCBjb21tdW5pdGllcy4NCg0KIA0KDQpUaGUgcG9zaXRpb24gaXMgbG9j YXRlZCBhdCB0aGUgVW5pdmVyc2l0eSBvZiBNaXNzb3VyaS1Db2x1bWJpYS4gIFRoZSBzY2llbnRp c3Qgd2lsbCB3b3JrIHdpdGggZGF0YSBmcm9tIE1pc3NvdXJpLCBPaGlvLCBhbmQgTWlubmVzb3Rh LCBhbmQgd2lsbCBjb2xsYWJvcmF0ZSB3aXRoIGFuIGVpZ2h0LW1lbWJlciB0ZWFtIG9mIHNjaWVu dGlzdHMgZnJvbSBhbGwgdGhyZWUgc3RhdGVzLiAgICANCg0KIA0KDQpRdWFsaWZpZWQgY2FuZGlk YXRlcyBtdXN0IGhhdmUgYSBQaEQgaW4gbGFuZHNjYXBlIGVjb2xvZ3ksIGJpb2dlb2dyYXBoeSwg Zm9yZXN0IGVjb3N5c3RlbXMgYW5kIGNvbW11bml0aWVzLCBvciByZWxhdGVkIGZpZWxkcy4gIFNr aWxscyBpbiBHSVMsIHN0YXRpc3RpY3MsIGFuZCBicm9hZC1zY2FsZSBlbnZpcm9ubWVudGFsIGFu ZCBwaHlzaWNhbCBkYXRhIGFuYWx5c2lzIGFyZSBkZXNpcmFibGUuIEV4Y2VsbGVudCB3cml0aW5n IGFuZCBjb21tdW5pY2F0aW9uIHNraWxscyBhcmUgbmVlZGVkLCBhcyBpcyB0aGUgZGVzaXJlIHRv IHdvcmsgYXMgYSB0ZWFtIG1lbWJlci4gVGhlIHBvc2l0aW9uIGlzIGFubnVhbGx5IHJlbmV3YWJs ZSB3aXRoIGZ1bmRpbmcgY29tbWl0dGVkIGZvciBhdCBsZWFzdCB0aHJlZSB5ZWFycy4gU2FsYXJ5 IGlzIGNvbXBldGl0aXZlIGFuZCBjb21tZW5zdXJhdGUgd2l0aCBleHBlcmllbmNlLiANCg0KIA0K DQpIT1cgVE8gQVBQTFk6IEFuIGFwcGxpY2F0aW9uIHNob3VsZCBjb25zaXN0IG9mIGEgY292ZXIg bGV0dGVyLCBjdXJyaWN1bHVtIHZpdGEsIGFuZCBjb250YWN0IGluZm9ybWF0aW9uIGZvciAzIHJl ZmVyZW5jZXMuIFRoZXNlIG1hdGVyaWFscyBjYW4gYmUgc3VibWl0dGVkIGVsZWN0cm9uaWNhbGx5 IHRvIA0KDQogDQoNCkRyLiBIb25nIFMuIEhlIChoZWhAbWlzc291cmkuZWR1KSwgDQoNCkRyLiBE YW5pZWwgRGV5IChkZGV5QGZzLmZlZC51cyksIGFuZA0KDQpEci4gSm9obiBLYWJyaWNrIChqa2Fi cmlja0Bmcy5mZWQudXMpLiAgDQoNCiANCg0KUmV2aWV3IG9mIGFwcGxpY2F0aW9ucyB3aWxsIGJl Z2luIGltbWVkaWF0ZWx5LCBhbmQgd2lsbCBjb250aW51ZSB1bnRpbCBhIHN1aXRhYmxlIGNhbmRp ZGF0ZSBpcyBmb3VuZC4gIFRoZSBkZXNpcmFibGUgc3RhcnRpbmcgZGF0ZSBpcyBmYWxsIDIwMDcg YnV0IGEgbGF0ZXIgc3RhcnQgaXMgbmVnb3RpYWJsZS4NCg0KIA0KDQpGb3IgbW9yZSBpbmZvcm1h dGlvbiBhYm91dCB0aGUgVW5pdmVyc2l0eSBvZiBNaXNzb3VyaSBhdCBDb2x1bWJpYSwgY2hlY2sN Cg0KaHR0cDovL3d3dy5taXNzb3VyaS5lZHUvICAgICAgICAgICAgDQoNCiANCg0KRm9yIGluZm9y bWF0aW9uIGFib3V0IHRoZSBjaXR5IG9mIENvbHVtYmlhLCBjaGVjayB0aGVzZSB3ZWIgc2l0ZXMu DQoNCiANCg0KQ29sdW1iaWHigJlzIENoYW1iZXIgb2YgQ29tbWVyY2UNCg0KaHR0cDovL2NoYW1i ZXIuY29sdW1iaWEubW8udXMvdl9jb21tdW5pdHkuaHRtbCANCg0KIA0KDQpDb2x1bWJpYeKAmXMg VmlzaXRvcnMgQnVyZWF1ICAgICAgICAgIA0KDQpodHRwOi8vd3d3LnZpc2l0Y29sdW1iaWFtby5j b20vICAgICANCg0KaHR0cDovL3d3dy5jb2x1bWJpYXJlZGkuY29tL1F1YWxpdHkvIA0KDQogDQoN CiANCg0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQ0KDQpIb25nIFMuIEhlLCBQaEQNCg0KU2Nob29sIG9mIE5hdHVyYWwgUmVzb3VyY2VzDQoN ClVuaXZlcnNpdHkgb2YgTWlzc291cmktQ29sdW1iaWENCg0KMjAzIEFCTlIgQnVpbGRpbmcNCg0K Q29sdW1iaWEsIE1PIDY1MjAzDQoNClRlbDogNTczLTg4Mi03NzE3ICBGYXg6IDU3My04ODItMTk3 Nw0KDQpFbWFpbDogaGVoQG1pc3NvdXJpLmVkdQ0KDQp3d3cubWlzc291cmkuZWR1L35sYW5kaXMN Cg0KIA0KDQogDQoNCg==