a:3:{s:4:"name";s:16:"searchandreplace";s:4:"dirs";a:4:{i:0;s:16:"searchandreplace";i:1;s:21:"searchandreplace/l10n";i:2;s:29:"searchandreplace/l10n/fr-utf8";i:3;s:24:"searchandreplace/l10n/fr";}s:5:"files";a:7:{s:39:"searchandreplace/l10n/fr-utf8/main.lang";s:3024:"O1NlYXJjaCBhbmQgcmVwbGFjZSB0ZXh0IGluIGVudHJpZXMgYW5kIGNvbW1lbnRzLg0KUmVjaGVyY2hlIGV0IHJlbXBsYWNlIGR1IHRleHRlIGRhbnMgbGVzIGJpbGxldHMgZXQgY29tbWVudGFpcmVzLg0KDQo7U2VhcmNoIGFuZCByZXBsYWNlIGFsbG93cyB5b3UgdG8gc2VhcmNoIHBhcnRzIG9mIHRleHQgYW5kIHRvIHJlcGxhY2UgdGhlbSB3aXRoIG90aGVycyBpbiB0aGUgZW50cmllcyBhbmQgY29tbWVudHMuDQpTZWFyY2ggYW5kIHJlcGxhY2Ugdm91cyBwZXJtZXQgZGUgcmVjaGVyY2hlciBkZXMgcG9ydGlvbnMgZGUgdGV4dGUgZXQgZGUgbGVzIHJlbXBsYWNlciBwYXIgZCdhdXRyZXMgZGFucyBsZXMgYmlsbGV0cyBldCBsZXMgY29tbWVudGFpcmVzLg0KDQo7SXQncyB1c2VmdWwsIGZvciBleGFtcGxlLCB3aGVuIHlvdSBhcmUgbG9va2luZyBmb3IgYSBzcGVjaWZpYyBjb21tZW50IGFuZCB5b3UgZG9uJ3QgcmVtZW1iZXIgd2hlcmUgaXQgaXMuIE9yIHdoZW4gd2hlbiB5b3UgaGF2ZSBjaGFuZ2VkIHRoZSBjb2RlcyBmb3Igc21pbGllcyBhbmQgeW91IHdhbnQgdGhlIG9sZCBldmVudHMgaW4gY29tbWVudHMgdG8gY2hhbmdlIHRvby4NCklsIGVzdCB1dGlsZSwgcGFyIGV4ZW1wbGUsIHF1YW5kIHZvdXMgY2hlcmNoZXogbGUgY29tbWVudGFpcmUgZCd1biBkZSB2b3MgdmlzaXRldXJzIHF1ZSB2b3VzIG5lIHJldHJvdXZleiBwYXMuIE91IGFsb3JzIGxvcnNxdWUgdm91cyBjaGFuZ2V6IGxlcyBjb2RlcyBwb3VyIHZvcyBzbWlsZXlzIGV0IHF1ZSB2b3VzIHZvdWxleiBxdWUgbGVzIGFuY2llbm5lcyBvY2N1cmVuY2VzIGRhbnMgbGVzIGNvbW1lbnRhaXJlcyBjaGFuZ2VudCBhdXNzaS4NCg0KO1dhcm5pbmcgOiBhcyBiZWZvcmUgYWxsIG9wZXJhdGlvbnMgb24gdGhlIGRhdGFiYXNlLCB5b3UgbXVzdCBtYWtlIGEgYmFja3VwLg0KQXR0ZW50aW9uIDogY29tbWUgYXZhbnQgdG91dGVzIGxlcyBvcMOpcmF0aW9ucyBzdXIgbGEgYmFzZSBkZSBkb25uw6llcywgaWwgZXN0IGltcMOpcmF0aWYgZGUgZmFpcmUgdW5lIHNhdXZlZ2FyZGUuDQoNCjtTZWFyY2ggOg0KUmVjaGVyY2hlciA6DQoNCjtSZXBsYWNlIHdpdGggOg0KUmVtcGxhY2VyIHBhciA6DQoNCjtTZWFyY2ggaW4gdGFibGVzIDoNClJlY2hlcmNoZXIgZGFucyBsZXMgdGFibGVzIDoNCg0KO2VudHJpZXMNCmJpbGxldHMNCg0KO2NvbW1lbnRzDQpjb21tZW50YWlyZXMNCg0KO0JldHdlZW4NCkVudHJlIGxlDQoNCjthbmQNCmV0IGxlDQoNCjtpbmNsdWRlZA0KaW5jbHVzDQoNCjtZZWFyLU1vbnRoLURheQ0KQW5uw6llLU1vaXMtSm91cg0KDQo7Q2FzZS1pbnNlbnNpdGl2ZSAoZG9lc24ndCBjYXJlIG9mIHVwcGVyL2xvd2VyIGNhc2UpIFJlcXVpcmVzIFBIUCA1IG9yICsuDQpJbnNlbnNpYmxlIMOgIGxhIGNhc3NlIChuZSB0aWVudCBwYXMgY29tcHRlIGRlcyBtYWp1c2N1bGVzL21pbnVzY3VsZXMpIE7DqWNlc3NpdGUgUEhQIDUgb3UgKy4NCg0KO0ltcG9ydGFudA0KSW1wb3J0YW50DQoNCjtTdWNoIGFuIG9wZXJhdGlvbiBjb3VsZCB0YWtlIHNvbWUgdGltZS4gUGxlYXNlIGJlIHBhdGllbnQuDQpVbmUgdGVsbGUgb3DDqXJhdGlvbiBwZXV0IHByZW5kcmUgdW4gY2VydGFpbiB0ZW1wcy4gU295ZXogcGF0aWVudC4NCg0KO1NlYXJjaCBvbmx5DQpSZWNoZXJjaGVyIHNldWxlbWVudA0KDQo7Q2xpY2sgaGVyZSB0byBkaXNwbGF5IGFsbCBldmVudHMgb2YgdGhlIHRleHQgaW4gdGhlIHNlbGVjdGVkIHRhYmxlcy4NCkNsaXF1ZXogaWNpIHBvdXIgYWZmaWNoZXIgdG91dGVzIGxlcyBvY2N1cmVuY2VzIGR1IHRleHRlIGRhbnMgbGVzIHRhYmxlcyBzw6lsZWN0aW9ubsOpZXMuDQoNCjtTZWFyY2ggdGhlbiByZXBsYWNlDQpSZWNoZXJjaGVyIHB1aXMgcmVtcGxhY2VyDQoNCjtDbGljayBoZXJlIHRvIHJlcGxhY2UgYWxsIGV2ZW50cyBvZiB0aGUgdGV4dCB3aXRoIHRoZSByZXBsYWNpbmcgb25lLg0KQ2xpcXVleiBpY2kgcG91ciByZW1wbGFjZXIgdG91dGVzIGxlcyBvY2N1cmVuY2VzIGR1IHRleHRlIHBhciBjZWx1aSDDoCByZW1wbGFjZXIuDQoNCjtTZWFyY2ggcmVzdWx0cyA6DQpSw6lzdWx0YXRzIGRlIGxhIHJlY2hlcmNoZSA6DQoNCjtUYWJsZQ0KVGFibGUNCg0KO1ZpZXcgZW50cnkNClZvaXIgbGUgYmlsbGV0DQoNCjtWaWV3IGNvbW1lbnQNClZvaXIgbGUgY29tbWVudGFpcmUNCg0KO1JlcGxhY2VkICENClJlbXBsYWPDqSAhDQoNCjtFcnJvciAhDQpFcnJldXIgIQ0KDQo7Tm8gcmVzdWx0IGluDQpBdWN1biByw6lzdWx0YXQgZGFucyBsZXM=";s:34:"searchandreplace/l10n/fr/main.lang";s:3008:"O1NlYXJjaCBhbmQgcmVwbGFjZSB0ZXh0IGluIGVudHJpZXMgYW5kIGNvbW1lbnRzLg0KUmVjaGVyY2hlIGV0IHJlbXBsYWNlIGR1IHRleHRlIGRhbnMgbGVzIGJpbGxldHMgZXQgY29tbWVudGFpcmVzLg0KDQo7U2VhcmNoIGFuZCByZXBsYWNlIGFsbG93cyB5b3UgdG8gc2VhcmNoIHBhcnRzIG9mIHRleHQgYW5kIHRvIHJlcGxhY2UgdGhlbSB3aXRoIG90aGVycyBpbiB0aGUgZW50cmllcyBhbmQgY29tbWVudHMuDQpTZWFyY2ggYW5kIHJlcGxhY2Ugdm91cyBwZXJtZXQgZGUgcmVjaGVyY2hlciBkZXMgcG9ydGlvbnMgZGUgdGV4dGUgZXQgZGUgbGVzIHJlbXBsYWNlciBwYXIgZCdhdXRyZXMgZGFucyBsZXMgYmlsbGV0cyBldCBsZXMgY29tbWVudGFpcmVzLg0KDQo7SXQncyB1c2VmdWwsIGZvciBleGFtcGxlLCB3aGVuIHlvdSBhcmUgbG9va2luZyBmb3IgYSBzcGVjaWZpYyBjb21tZW50IGFuZCB5b3UgZG9uJ3QgcmVtZW1iZXIgd2hlcmUgaXQgaXMuIE9yIHdoZW4gd2hlbiB5b3UgaGF2ZSBjaGFuZ2VkIHRoZSBjb2RlcyBmb3Igc21pbGllcyBhbmQgeW91IHdhbnQgdGhlIG9sZCBldmVudHMgaW4gY29tbWVudHMgdG8gY2hhbmdlIHRvby4NCklsIGVzdCB1dGlsZSwgcGFyIGV4ZW1wbGUsIHF1YW5kIHZvdXMgY2hlcmNoZXogbGUgY29tbWVudGFpcmUgZCd1biBkZSB2b3MgdmlzaXRldXJzIHF1ZSB2b3VzIG5lIHJldHJvdXZleiBwYXMuIE91IGFsb3JzIGxvcnNxdWUgdm91cyBjaGFuZ2V6IGxlcyBjb2RlcyBwb3VyIHZvcyBzbWlsZXlzIGV0IHF1ZSB2b3VzIHZvdWxleiBxdWUgbGVzIGFuY2llbm5lcyBvY2N1cmVuY2VzIGRhbnMgbGVzIGNvbW1lbnRhaXJlcyBjaGFuZ2VudCBhdXNzaS4NCg0KO1dhcm5pbmcgOiBhcyBiZWZvcmUgYWxsIG9wZXJhdGlvbnMgb24gdGhlIGRhdGFiYXNlLCB5b3UgbXVzdCBtYWtlIGEgYmFja3VwLg0KQXR0ZW50aW9uIDogY29tbWUgYXZhbnQgdG91dGVzIGxlcyBvcOlyYXRpb25zIHN1ciBsYSBiYXNlIGRlIGRvbm7pZXMsIGlsIGVzdCBpbXDpcmF0aWYgZGUgZmFpcmUgdW5lIHNhdXZlZ2FyZGUuDQoNCjtTZWFyY2ggOg0KUmVjaGVyY2hlciA6DQoNCjtSZXBsYWNlIHdpdGggOg0KUmVtcGxhY2VyIHBhciA6DQoNCjtTZWFyY2ggaW4gdGFibGVzIDoNClJlY2hlcmNoZXIgZGFucyBsZXMgdGFibGVzIDoNCg0KO2VudHJpZXMNCmJpbGxldHMNCg0KO2NvbW1lbnRzDQpjb21tZW50YWlyZXMNCg0KO0JldHdlZW4NCkVudHJlIGxlDQoNCjthbmQNCmV0IGxlDQoNCjtpbmNsdWRlZA0KaW5jbHVzDQoNCjtZZWFyLU1vbnRoLURheQ0KQW5u6WUtTW9pcy1Kb3VyDQoNCjtDYXNlLWluc2Vuc2l0aXZlIChkb2Vzbid0IGNhcmUgb2YgdXBwZXIvbG93ZXIgY2FzZSkgUmVxdWlyZXMgUEhQIDUgb3IgKy4NCkluc2Vuc2libGUg4CBsYSBjYXNzZSAobmUgdGllbnQgcGFzIGNvbXB0ZSBkZXMgbWFqdXNjdWxlcy9taW51c2N1bGVzKSBO6WNlc3NpdGUgUEhQIDUgb3UgKy4NCg0KO0ltcG9ydGFudA0KSW1wb3J0YW50DQoNCjtTdWNoIGFuIG9wZXJhdGlvbiBjb3VsZCB0YWtlIHNvbWUgdGltZS4gUGxlYXNlIGJlIHBhdGllbnQuDQpVbmUgdGVsbGUgb3DpcmF0aW9uIHBldXQgcHJlbmRyZSB1biBjZXJ0YWluIHRlbXBzLiBTb3lleiBwYXRpZW50Lg0KDQo7U2VhcmNoIG9ubHkNClJlY2hlcmNoZXIgc2V1bGVtZW50DQoNCjtDbGljayBoZXJlIHRvIGRpc3BsYXkgYWxsIGV2ZW50cyBvZiB0aGUgdGV4dCBpbiB0aGUgc2VsZWN0ZWQgdGFibGVzLg0KQ2xpcXVleiBpY2kgcG91ciBhZmZpY2hlciB0b3V0ZXMgbGVzIG9jY3VyZW5jZXMgZHUgdGV4dGUgZGFucyBsZXMgdGFibGVzIHPpbGVjdGlvbm7pZXMuDQoNCjtTZWFyY2ggdGhlbiByZXBsYWNlDQpSZWNoZXJjaGVyIHB1aXMgcmVtcGxhY2VyDQoNCjtDbGljayBoZXJlIHRvIHJlcGxhY2UgYWxsIGV2ZW50cyBvZiB0aGUgdGV4dCB3aXRoIHRoZSByZXBsYWNpbmcgb25lLg0KQ2xpcXVleiBpY2kgcG91ciByZW1wbGFjZXIgdG91dGVzIGxlcyBvY2N1cmVuY2VzIGR1IHRleHRlIHBhciBjZWx1aSDgIHJlbXBsYWNlci4NCg0KO1NlYXJjaCByZXN1bHRzIDoNClLpc3VsdGF0cyBkZSBsYSByZWNoZXJjaGUgOg0KDQo7VGFibGUNClRhYmxlDQoNCjtWaWV3IGVudHJ5DQpWb2lyIGxlIGJpbGxldA0KDQo7VmlldyBjb21tZW50DQpWb2lyIGxlIGNvbW1lbnRhaXJlDQoNCjtSZXBsYWNlZCAhDQpSZW1wbGFj6SAhDQoNCjtFcnJvciAhDQpFcnJldXIgIQ0KDQo7Tm8gcmVzdWx0IGluDQpBdWN1biBy6XN1bHRhdCBkYW5zIGxlcw==";s:25:"searchandreplace/desc.xml";s:324:"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iSVNPLTg4NTktMSI/Pg0KPHBsdWdpbiBuYW1lPSJzZWFyY2hhbmRyZXBsYWNlIiB2ZXJzaW9uPSIxLjAuMCIgYWN0aXZlPSIxIj4NCgk8YXV0aG9yPmstbmV0PC9hdXRob3I+DQoJPGxhYmVsPlNlYXJjaCBhbmQgcmVwbGFjZTwvbGFiZWw+DQoJPGRlc2M+U2VhcmNoIGFuZCByZXBsYWNlIHRleHQgaW4gZW50cmllcyBhbmQgY29tbWVudHMuPC9kZXNjPg0KPC9wbHVnaW4+DQo=";s:25:"searchandreplace/icon.png";s:2380:"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";s:31:"searchandreplace/icon_large.png";s:9720:"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";s:26:"searchandreplace/index.php";s:15056:"PD9waHAKIyBTZWFyY2ggYW5kIHJlcGxhY2UgcGx1Z2luIGZvciBEb3RjbGVhcgojIGJ5IGstbmV0CiMgaHR0cDovL3d3dy5rLW5ldHdlYi5uZXQvCiMKIyBQbGVhc2UgY29udGFjdCBtZSBiZWZvcmUgbW9kaWZ5aW5nIGl0LgojCiMgKioqKiogQkVHSU4gTElDRU5TRSBCTE9DSyAqKioqKgojIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIFNlYXJjaCBhbmQgcmVwbGFjZS4KIyBDb3B5cmlnaHQgKGMpIDIwMDYgay1uZXQKIwojIFNlYXJjaCBhbmQgcmVwbGFjZSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgojIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiMgCiMgRG90Q2xlYXIgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojIAojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCBEb3RDbGVhcjsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQojIEZvdW5kYXRpb24sIEluYy4sIDU5IFRlbXBsZSBQbGFjZSwgU3VpdGUgMzMwLCBCb3N0b24sIE1BICAwMjExMS0xMzA3ICBVU0EKIwojICoqKioqIEVORCBMSUNFTlNFIEJMT0NLICoqKioqCgokdGhlcGx1Z2luID0gYXJyYXkoKTsKJHRoZXBsdWdpblsnZGlyJ10gPSAnc2VhcmNoYW5kcmVwbGFjZSc7CgpidWZmZXI6OnN0cignPGgyPlNlYXJjaCBhbmQgcmVwbGFjZTwvaDI+Jy4iXG4iKTsKCmJ1ZmZlcjo6c3RyKAoJJzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4nLiJcbiIuCgknPCEtLScuIlxuIi4KCSdmdW5jdGlvbiBzYXJfY2hlY2tmb3JtKCkgeycuIlxuIi4KCScJaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwnc2FyZm9ybV9zdHJ0b3NlYXJjaFwnKS52YWx1ZSA9PSBcJ1wnIHx8IChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcJ3NhcmZvcm1fc2VhcmNoaW5fcG9zdFwnKS5jaGVja2VkID09IFwnXCcgJiYgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCdzYXJmb3JtX3NlYXJjaGluX2NvbW1lbnRcJykuY2hlY2tlZCA9PSBcJ1wnKSkgeycuIlxuIi4KCScJCXJldHVybiBmYWxzZTsnLiJcbiIuCgknCX0gZWxzZSB7Jy4iXG4iLgoJJwkJcmV0dXJuIHRydWU7Jy4iXG4iLgoJJwl9Jy4iXG4iLgoJJ30nLiJcbiIuCgknLy8tLT4nLiJcbiIuCgknPC9zY3JpcHQ+Jy4iXG4iLgoJJzxwIHN0eWxlPSJvdmVyZmxvdzogaGlkZGVuOyI+Jy4iXG4iLgoJJwk8aW1nIHNyYz0idG9vbHMvJy4kdGhlcGx1Z2luWydkaXInXS4nL2ljb25fbGFyZ2UucG5nIiBhbHQ9ImxvZ28iIHdpZHRoPSI5NiIgaGVpZ2h0PSI5NiIgc3R5bGU9ImZsb2F0OiBsZWZ0OyBtYXJnaW46IDAgMTBweDsiIC8+Jy4iXG4iLgoJJwknLl9fKCdTZWFyY2ggYW5kIHJlcGxhY2UgYWxsb3dzIHlvdSB0byBzZWFyY2ggcGFydHMgb2YgdGV4dCBhbmQgdG8gcmVwbGFjZSB0aGVtIHdpdGggb3RoZXJzIGluIHRoZSBlbnRyaWVzIGFuZCBjb21tZW50cy4nKS4nPGJyIC8+Jy4iXG4iLgoJJwknLl9fKCdJdFwncyB1c2VmdWwsIGZvciBleGFtcGxlLCB3aGVuIHlvdSBhcmUgbG9va2luZyBmb3IgYSBzcGVjaWZpYyBjb21tZW50IGFuZCB5b3UgZG9uXCd0IHJlbWVtYmVyIHdoZXJlIGl0IGlzLiBPciB3aGVuIHdoZW4geW91IGhhdmUgY2hhbmdlZCB0aGUgY29kZXMgZm9yIHNtaWxpZXMgYW5kIHlvdSB3YW50IHRoZSBvbGQgZXZlbnRzIGluIGNvbW1lbnRzIHRvIGNoYW5nZSB0b28uJykuIlxuIi4KCSc8L3A+Jy4iXG4iLgoJJzxwIGNsYXNzPSJlcnJldXIiPjxzdHJvbmc+Jy5fXygnV2FybmluZyA6IGFzIGJlZm9yZSBhbGwgb3BlcmF0aW9ucyBvbiB0aGUgZGF0YWJhc2UsIHlvdSBtdXN0IG1ha2UgYSBiYWNrdXAuJykuJzwvc3Ryb25nPjwvcD4nLiJcbiIuCgknPHA+Jm5ic3A7PC9wPicuIlxuIi4KCSc8Zm9ybSBhY3Rpb249InRvb2xzLnBocD9wPScuJHRoZXBsdWdpblsnZGlyJ10uJyIgbWV0aG9kPSJwb3N0Ij4nLiJcbiIuCgknPGRpdiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IHdpZHRoOiAzMDBweDsgb3ZlcmZsb3c6IGhpZGRlbjsiPicuIlxuIi4KCScJPHN0cm9uZz4nLl9fKCdTZWFyY2ggOicpLic8L3N0cm9uZz48YnIgLz4nLiJcbiIuCgknCTxpbnB1dCB0eXBlPSJ0ZXh0IiBpZD0ic2FyZm9ybV9zdHJ0b3NlYXJjaCIgbmFtZT0ic2FyZm9ybV9zdHJ0b3NlYXJjaCIgc3R5bGU9IndpZHRoOiAyNTBweDsiIHZhbHVlPSInLighZW1wdHkoJF9QT1NUWydzYXJmb3JtX3N0cnRvc2VhcmNoJ10pID8gaHRtbHNwZWNpYWxjaGFycygkX1BPU1RbJ3NhcmZvcm1fc3RydG9zZWFyY2gnXSkgOiAnJykuJyIgLz4nLiJcbiIuCgknPC9kaXY+Jy4iXG4iLgoJJzxkaXYgc3R5bGU9Im92ZXJmbG93OiBoaWRkZW47Ij4nLiJcbiIuCgknCTxzdHJvbmc+Jy5fXygnUmVwbGFjZSB3aXRoIDonKS4nPC9zdHJvbmc+PGJyIC8+Jy4iXG4iLgoJJwk8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InNhcmZvcm1fc3RydG9yZXBsYWNlIiBuYW1lPSJzYXJmb3JtX3N0cnRvcmVwbGFjZSIgc3R5bGU9IndpZHRoOiAyNTBweDsiIHZhbHVlPSInLighZW1wdHkoJF9QT1NUWydzYXJmb3JtX3N0cnRvcmVwbGFjZSddKSA/IGh0bWxzcGVjaWFsY2hhcnMoJF9QT1NUWydzYXJmb3JtX3N0cnRvcmVwbGFjZSddKSA6ICcnKS4nIiAvPicuIlxuIi4KCSc8L2Rpdj4nLiJcbiIuCgknPHA+Jy4iXG4iLgoJJwknLl9fKCdTZWFyY2ggaW4gdGFibGVzIDonKS4iXG4iLgoJJwk8bGFiZWwgZm9yPSJzYXJmb3JtX3NlYXJjaGluX3Bvc3QiIHN0eWxlPSJtYXJnaW4tbGVmdDogMTBweDsiPjxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9InNhcmZvcm1fc2VhcmNoaW5fcG9zdCIgbmFtZT0ic2FyZm9ybV9zZWFyY2hpbl9wb3N0IicuKGlzc2V0KCRfUE9TVFsnc2FyZm9ybV9zZWFyY2hpbl9wb3N0J10pIHx8ICghaXNzZXQoJF9QT1NUWydzYXJmb3JtX3NlYXJjaGluX3Bvc3QnXSkgJiYgIWlzc2V0KCRfUE9TVFsnc2FyZm9ybV9zZWFyY2hpbl9jb21tZW50J10pKSA/ICcgY2hlY2tlZD0iY2hlY2tlZCInIDogJycpLicgLz4gPGlucz4nLkRCX1BSRUZJWC4ncG9zdDwvaW5zPiAmbmJzcDsgJm5ic3A7ICZuYnNwOyA8c3BhbiBzdHlsZT0iY29sb3I6ICM5OTk7Ij4vLyA8ZW0+Jy5fXygnZW50cmllcycpLic8L2VtPjwvc3Bhbj48L2xhYmVsPicuIlxuIi4KCScJPGxhYmVsIGZvcj0ic2FyZm9ybV9zZWFyY2hpbl9jb21tZW50IiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDEwcHg7Ij48aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJzYXJmb3JtX3NlYXJjaGluX2NvbW1lbnQiIG5hbWU9InNhcmZvcm1fc2VhcmNoaW5fY29tbWVudCInLihpc3NldCgkX1BPU1RbJ3NhcmZvcm1fc2VhcmNoaW5fY29tbWVudCddKSB8fCAoIWlzc2V0KCRfUE9TVFsnc2FyZm9ybV9zZWFyY2hpbl9wb3N0J10pICYmICFpc3NldCgkX1BPU1RbJ3NhcmZvcm1fc2VhcmNoaW5fY29tbWVudCddKSkgPyAnIGNoZWNrZWQ9ImNoZWNrZWQiJyA6ICcnKS4nIC8+IDxpbnM+Jy5EQl9QUkVGSVguJ2NvbW1lbnQ8L2lucz4gJm5ic3A7ICZuYnNwOyAmbmJzcDsgPHNwYW4gc3R5bGU9ImNvbG9yOiAjOTk5OyI+Ly8gPGVtPicuX18oJ2NvbW1lbnRzJykuJzwvZW0+PC9zcGFuPjwvbGFiZWw+Jy4iXG4iLgoJJzwvcD4nLiJcbiIuCgknPHA+Jy4iXG4iLgoJJwknLl9fKCdCZXR3ZWVuJykuJyA8aW5wdXQgdHlwZT0idGV4dCIgaWQ9InNhcmZvcm1fc2VhcmNoZGF0ZV9mcm9tIiBuYW1lPSJzYXJmb3JtX3NlYXJjaGRhdGVfZnJvbSIgdmFsdWU9IicuKCFlbXB0eSgkX1BPU1RbJ3NhcmZvcm1fc2VhcmNoZGF0ZV9mcm9tJ10pID8gJF9QT1NUWydzYXJmb3JtX3NlYXJjaGRhdGVfZnJvbSddIDogJzE5NzAtMDEtMDEnKS4nIiBzdHlsZT0id2lkdGg6IDEwMHB4OyIgLz4nLiJcbiIuCgknCScuX18oJ2FuZCcpLicgPGlucHV0IHR5cGU9InRleHQiIGlkPSJzYXJmb3JtX3NlYXJjaGRhdGVfdG8iIG5hbWU9InNhcmZvcm1fc2VhcmNoZGF0ZV90byIgdmFsdWU9IicuKCFlbXB0eSgkX1BPU1RbJ3NhcmZvcm1fc2VhcmNoZGF0ZV90byddKSA/ICRfUE9TVFsnc2FyZm9ybV9zZWFyY2hkYXRlX3RvJ10gOiBkYXRlKCdZLW0tZCcpKS4nIiBzdHlsZT0id2lkdGg6IDEwMHB4OyIgLz4gJy5fXygnaW5jbHVkZWQnKS4nLiAoJy5fXygnWWVhci1Nb250aC1EYXknKS4nKScuIlxuIi4KCSc8L3A+Jy4iXG4iLgoJJzxwJy4oIWZ1bmN0aW9uX2V4aXN0cygnc3RyaXBvcycpIHx8ICFmdW5jdGlvbl9leGlzdHMoJ3N0cl9pcmVwbGFjZScpID8gJyBzdHlsZT0iY29sb3I6ICM5OTk7IicgOiAnJykuJz4nLiJcbiIuCgknCTxsYWJlbCBmb3I9InNhcmZvcm1fY2FzZWluc2Vuc2l0aXZlIj48aW5wdXQgdHlwZT0iY2hlY2tib3giJy4oIWZ1bmN0aW9uX2V4aXN0cygnc3RyaXBvcycpIHx8ICFmdW5jdGlvbl9leGlzdHMoJ3N0cl9pcmVwbGFjZScpID8gJyBkaXNhYmxlZD0iZGlzYWJsZWQiJyA6ICcnKS4nIGlkPSJzYXJmb3JtX2Nhc2VpbnNlbnNpdGl2ZSIgbmFtZT0ic2FyZm9ybV9jYXNlaW5zZW5zaXRpdmUiJy4oaXNzZXQoJF9QT1NUWydzYXJmb3JtX3Jlc3BlY3RjYXNzZSddKSA/ICcgY2hlY2tlZD0iY2hlY2tlZCInIDogJycpLicgLz4gJy5fXygnQ2FzZS1pbnNlbnNpdGl2ZSAoZG9lc25cJ3QgY2FyZSBvZiB1cHBlci9sb3dlciBjYXNlKSBSZXF1aXJlcyBQSFAgNSBvciArLicpLic8L2xhYmVsPicuIlxuIi4KCSc8L3A+Jy4iXG4iLgoJJzxwPjxzdHJvbmc+Jy5fXygnSW1wb3J0YW50JykuJzwvc3Ryb25nPiZuYnNwOzogJy5fXygnU3VjaCBhbiBvcGVyYXRpb24gY291bGQgdGFrZSBzb21lIHRpbWUuIFBsZWFzZSBiZSBwYXRpZW50LicpLic8L3A+Jy4iXG4iLgoJJzxwPicuIlxuIi4KCScJPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9InNhcmZvcm1fc2VhcmNoIiBuYW1lPSJzYXJmb3JtX3NlYXJjaCIgb25jbGljaz0iamF2YXNjcmlwdDpyZXR1cm4oc2FyX2NoZWNrZm9ybSgpKTsiIHZhbHVlPSInLl9fKCdTZWFyY2ggb25seScpLiciIC8+ICcuX18oJ0NsaWNrIGhlcmUgdG8gZGlzcGxheSBhbGwgZXZlbnRzIG9mIHRoZSB0ZXh0IGluIHRoZSBzZWxlY3RlZCB0YWJsZXMuJykuJzxiciAvPicuIlxuIi4KCScJPGlucHV0IHR5cGU9InN1Ym1pdCIgaWQ9InNhcmZvcm1fcmVwbGFjZSIgbmFtZT0ic2FyZm9ybV9yZXBsYWNlIiBvbmNsaWNrPSJqYXZhc2NyaXB0OnJldHVybihzYXJfY2hlY2tmb3JtKCkpOyIgdmFsdWU9IicuX18oJ1NlYXJjaCB0aGVuIHJlcGxhY2UnKS4nIiAvPiAnLl9fKCdDbGljayBoZXJlIHRvIHJlcGxhY2UgYWxsIGV2ZW50cyBvZiB0aGUgdGV4dCB3aXRoIHRoZSByZXBsYWNpbmcgb25lLicpLiJcbiIuCgknPC9wPicuIlxuIi4KCSc8L2Zvcm0+Jy4iXG4iKTsKaWYgKChpc3NldCgkX1BPU1RbJ3NhcmZvcm1fc2VhcmNoJ10pIHx8IGlzc2V0KCRfUE9TVFsnc2FyZm9ybV9yZXBsYWNlJ10pKSAmJiAhZW1wdHkoJF9QT1NUWydzYXJmb3JtX3N0cnRvc2VhcmNoJ10pKSB7CgkkYWN0ID0gKGlzc2V0KCRfUE9TVFsnc2FyZm9ybV9yZXBsYWNlJ10pID8gJ3JlcGxhY2UnIDogJ3NlYXJjaCcpOwoJYnVmZmVyOjpzdHIoCgkJJzxwPiZuYnNwOzwvcD4nLiJcbiIuCgkJJzxwPjxzdHJvbmc+Jy5fXygnU2VhcmNoIHJlc3VsdHMgOicpLic8L3N0cm9uZz48L3A+Jy4iXG4iLgoJCSc8ZGl2IHN0eWxlPSJwYWRkaW5nOiAwIDEwcHggMTBweCAxMHB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZFOyBib3JkZXItdG9wOiAxcHggc29saWQgI0RDQjsgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgI0ZFQjsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNGRUI7IGJvcmRlci1sZWZ0OiAxcHggc29saWQgI0RDQjsiPicuIlxuIik7CgoJJHN0cl90b3NlYXJjaCA9ICRfUE9TVFsnc2FyZm9ybV9zdHJ0b3NlYXJjaCddOwoJJHN0cl90b3JlcGxhY2UgPSAhZW1wdHkoJF9QT1NUWydzYXJmb3JtX3N0cnRvcmVwbGFjZSddKSA/ICRfUE9TVFsnc2FyZm9ybV9zdHJ0b3JlcGxhY2UnXSA6ICcnOwoJJHNlYXJjaGRhdGVfZnJvbSA9ICFlbXB0eSgkX1BPU1RbJ3NhcmZvcm1fc2VhcmNoZGF0ZV9mcm9tJ10pID8gJF9QT1NUWydzYXJmb3JtX3NlYXJjaGRhdGVfZnJvbSddLicgMDA6MDA6MDAnIDogJzE5NzAtMDEtMDEgMDA6MDA6MDAnOwoJJHNlYXJjaGRhdGVfdG8gPSAhZW1wdHkoJF9QT1NUWydzYXJmb3JtX3NlYXJjaGRhdGVfdG8nXSkgPyAkX1BPU1RbJ3NhcmZvcm1fc2VhcmNoZGF0ZV90byddLicgMjM6NTk6NTknIDogZGF0ZSgnWS1tLWQgSDppOnMnKTsKCSRjYXNlc2Vuc2l0aXZlID0gaXNzZXQoJF9QT1NUWydzYXJmb3JtX2Nhc2VpbnNlbnNpdGl2ZSddKSA/IGZhbHNlIDogdHJ1ZTsKCQoJJGZ1bmN0aW9ucyA9IGFycmF5KCk7CgkkZnVuY3Rpb25zWydzdHJwb3MnXSA9ICgkY2FzZXNlbnNpdGl2ZSA/ICdzdHJwb3MnIDogJ3N0cmlwb3MnKTsKCSRmdW5jdGlvbnNbJ3N0cl9yZXBsYWNlJ10gPSAoJGNhc2VzZW5zaXRpdmUgPyAnc3RyX3JlcGxhY2UnIDogJ3N0cl9pcmVwbGFjZScpOwoJCglpZiAoIWVtcHR5KCRzdHJfdG9zZWFyY2gpKSB7CgkJJHRvZG90YWJsZXMgPSBhcnJheSgpOwoJCWlmIChpc3NldCgkX1BPU1RbJ3NhcmZvcm1fc2VhcmNoaW5fcG9zdCddKSkgewoJCQkkdG9kb3RhYmxlc1tdID0gJ3Bvc3QnOwoJCX0KCQlpZiAoaXNzZXQoJF9QT1NUWydzYXJmb3JtX3NlYXJjaGluX2NvbW1lbnQnXSkpIHsKCQkJJHRvZG90YWJsZXNbXSA9ICdjb21tZW50JzsKCQl9CgkJZm9yZWFjaCAoJHRvZG90YWJsZXMgYXMgJHRvZG90YWJsZSkgewoJCQlpZiAoJHRvZG90YWJsZSA9PSAncG9zdCcpIHsKCQkJCSR0b2RvZmllbGRzID0gYXJyYXkoJ3Bvc3RfY2hhcG8nLCAncG9zdF9jaGFwb193aWtpJywgJ3Bvc3RfY29udGVudCcsICdwb3N0X2NvbnRlbnRfd2lraScpOwoJCQl9IGVsc2UgaWYgKCR0b2RvdGFibGUgPT0gJ2NvbW1lbnQnKSB7CgkJCQkkdG9kb2ZpZWxkcyA9IGFycmF5KCdjb21tZW50X2NvbnRlbnQnKTsKCQkJfQoJCQkkc3FsID0gIlNFTEVDVCAqIEZST00gYCIuREJfUFJFRklYLiR0b2RvdGFibGUuImAgV0hFUkUgYCIuJHRvZG90YWJsZS4iX2R0YCA+PSAnIi4kc2VhcmNoZGF0ZV9mcm9tLiInIEFORCBgIi4kdG9kb3RhYmxlLiJfZHRgIDw9ICciLiRzZWFyY2hkYXRlX3RvLiInOyI7CgkJCWlmICgkcnMgPSAkY29uLT5zZWxlY3QoJHNxbCkpIHsKCQkJCSRuYk9jY3VycyA9IDA7CgkJCQl3aGlsZSAoJHJzLT5mZXRjaCgpKSB7CgkJCQkJZm9yZWFjaCAoJHRvZG9maWVsZHMgYXMgJGN1cnJlbnRmaWVsZCkgewoJCQkJCQkkaiA9IDA7CgkJCQkJCSRzb3VyY2V0ZXh0ID0gJHJzLT5mKCRjdXJyZW50ZmllbGQpOwoJCQkJCQkkc291cmNldGV4dCA9IChzdHJ0b2xvd2VyKCRibG9nLT5lbmNvZGluZykgPT0gJ3V0Zi04JyA/IHV0ZjhfZGVjb2RlKCRzb3VyY2V0ZXh0KSA6ICRzb3VyY2V0ZXh0KTsKCQkJCQkJJHN0cl90b3NlYXJjaCA9IChzdHJ0b2xvd2VyKCRibG9nLT5lbmNvZGluZykgPT0gJ3V0Zi04JyA/IHV0ZjhfZGVjb2RlKCRzdHJfdG9zZWFyY2gpIDogJHN0cl90b3NlYXJjaCk7CgkJCQkJCXdoaWxlICgkZnVuY3Rpb25zWydzdHJwb3MnXSgkc291cmNldGV4dCwgJHN0cl90b3NlYXJjaCwgJGopICE9PSBmYWxzZSkgewoJCQkJCQkJJHN0cnBvcyA9ICRmdW5jdGlvbnNbJ3N0cnBvcyddKCRzb3VyY2V0ZXh0LCAkc3RyX3Rvc2VhcmNoLCAkaik7CgkJCQkJCQkkc3RybGVuID0gc3RybGVuKCRzdHJfdG9zZWFyY2gpOwoJCQkJCQkJJG5iY2hhcnNlYWNoc2lkZSA9ICgkc3RybGVuID4gNDAgPyAxMCA6IDMwIC0gZmxvb3IoJHN0cmxlbi8yKSk7CgkJCQkJCQkkdGVtcCA9ICgkc3RycG9zIC0gJG5iY2hhcnNlYWNoc2lkZSA8IDAgPyAnJyA6ICcuLi4nKS5zdHJfcmVwbGFjZSgiXG4iLCAnJm5ic3A7Jywgc3RyX3JlcGxhY2UoJyAnLCAnJm5ic3A7JywgaHRtbHNwZWNpYWxjaGFycyhzdWJzdHIoJHNvdXJjZXRleHQsICgkc3RycG9zIC0gJG5iY2hhcnNlYWNoc2lkZSA8IDAgPyAwIDogJHN0cnBvcyAtICRuYmNoYXJzZWFjaHNpZGUpLCAoJHN0cnBvcyAtICRuYmNoYXJzZWFjaHNpZGUgPCAwID8gJHN0cnBvcyA6ICRuYmNoYXJzZWFjaHNpZGUpKSkpKTsKCQkJCQkJCSR0ZW1wIC49ICc8c3BhbiBzdHlsZT0iY29sb3I6ICNDMDA7Ij48c3Ryb25nPicuc3RyX3JlcGxhY2UoIlxuIiwgJyZuYnNwOycsIHN0cl9yZXBsYWNlKCcgJywgJyZuYnNwOycsIGh0bWxzcGVjaWFsY2hhcnMoc3Vic3RyKCRzb3VyY2V0ZXh0LCAkc3RycG9zLCAkc3RybGVuKSkpKS4nPC9zdHJvbmc+PC9zcGFuPic7CgkJCQkJCQkkdGVtcCAuPSBzdHJfcmVwbGFjZSgiXG4iLCAnJm5ic3A7Jywgc3RyX3JlcGxhY2UoJyAnLCAnJm5ic3A7JywgaHRtbHNwZWNpYWxjaGFycyhzdWJzdHIoJHNvdXJjZXRleHQsICRzdHJwb3MgKyAkc3RybGVuLCAkbmJjaGFyc2VhY2hzaWRlKSkpKS4oJHN0cnBvcyArICRzdHJsZW4gKyAkbmJjaGFyc2VhY2hzaWRlID4gc3RybGVuKCRzb3VyY2V0ZXh0KSA/ICcnIDogJy4uLicpOwoJCQkJCQkJJHRlbXAgPSAoc3RydG9sb3dlcigkYmxvZy0+ZW5jb2RpbmcpID09ICd1dGYtOCcgPyB1dGY4X2VuY29kZSgkdGVtcCkgOiAkdGVtcCk7CgkJCQkJCQlpZiAoJGogPT0gMCkgewoJCQkJCQkJCWJ1ZmZlcjo6c3RyKCc8cCBzdHlsZT0ibWFyZ2luLXRvcDogMzBweDsgbWFyZ2luLWxlZnQ6IDEwcHg7IHBhZGRpbmctbGVmdDogMTBweDsgYm9yZGVyLWxlZnQ6IDJweCBzb2xpZCAjQ0NDOyI+Jy4iXG4iLgoJCQkJCQkJCScJPHN0cm9uZz4nLl9fKCdUYWJsZScpLicgPGlucz4nLkRCX1BSRUZJWC4kdG9kb3RhYmxlLic8L2lucz48L3N0cm9uZz4gJm5ic3A7IEAgPGlucz4nLiR0b2RvdGFibGUuJ19pZDwvaW5zPiA9ICcuJHJzLT5mKCR0b2RvdGFibGUuJ19pZCcpLicgJm5ic3A7ICZndDsgJm5ic3A7IDxlbT48aW5zPicuJGN1cnJlbnRmaWVsZC4nPC9pbnM+PC9lbT4nLicgJm5ic3A7ICZuYnNwOyA8aW1nIHNyYz0iaW1hZ2VzL2ljb19nb3RvLnBuZyIgYWx0PSIiIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgLz4gPGEgaHJlZj0iJy4oJHRvZG90YWJsZSA9PSAnY29tbWVudCcgPyAncG9zdGVyLnBocD9wb3N0X2lkPScuJHJzLT5mKCdwb3N0X2lkJykuJyNjJy4kcnMtPmYoJ2NvbW1lbnRfaWQnKSA6ICgkdG9kb3RhYmxlID09ICdwb3N0JyA/ICdwb3N0ZXIucGhwP3Bvc3RfaWQ9Jy4kcnMtPmYoJ3Bvc3RfaWQnKSA6ICcjJykpLiciPicuKCR0b2RvdGFibGUgPT0gJ3Bvc3QnID8gX18oJ1ZpZXcgZW50cnknKSA6IF9fKCdWaWV3IGNvbW1lbnQnKSkuJzwvYT4nLic8YnIgLz48YnIgLz4nLiJcbiIpOwoJCQkJCQkJfQoJCQkJCQkJYnVmZmVyOjpzdHIoJwk8c3BhbiBzdHlsZT0ibWFyZ2luLWxlZnQ6IDE1cHg7IGZvbnQtZmFtaWx5OiBcJ0NvdXJpZXIgbmV3XCcsIENvdXJpZXIsIG1vbm87IGNvbG9yOiAjOTk5OyI+Jy4kdGVtcC4nPC9zcGFuPjxiciAvPjxiciAvPicuIlxuIik7CgkJCQkJCQkkdGVtcCA9IChzdHJ0b2xvd2VyKCRibG9nLT5lbmNvZGluZykgPT0gJ3V0Zi04JyA/IHV0ZjhfZGVjb2RlKCR0ZW1wKSA6ICR0ZW1wKTsKCQkJCQkJCSRqID0gJHN0cnBvcyArIDE7CgkJCQkJCQkkbmJPY2N1cnMrKzsKCQkJCQkJfQoJCQkJCQlpZiAoJGogPiAwKSB7CgkJCQkJCQlidWZmZXI6OnN0cignPC9wPicuIlxuIik7CgkJCQkJCX0KCQkJCQkJJHNvdXJjZXRleHQgPSAoc3RydG9sb3dlcigkYmxvZy0+ZW5jb2RpbmcpID09ICd1dGYtOCcgPyB1dGY4X2VuY29kZSgkc291cmNldGV4dCkgOiAkc291cmNldGV4dCk7CgkJCQkJCSRzdHJfdG9zZWFyY2ggPSAoc3RydG9sb3dlcigkYmxvZy0+ZW5jb2RpbmcpID09ICd1dGYtOCcgPyB1dGY4X2VuY29kZSgkc3RyX3Rvc2VhcmNoKSA6ICRzdHJfdG9zZWFyY2gpOwoJCQkJCQlpZiAoJGFjdCA9PSAncmVwbGFjZScgJiYgJGogPiAwKSB7CgkJCQkJCQkkc291cmNldGV4dCA9ICRmdW5jdGlvbnNbJ3N0cl9yZXBsYWNlJ10oJHN0cl90b3NlYXJjaCwgJHN0cl90b3JlcGxhY2UsICRzb3VyY2V0ZXh0KTsKCQkJCQkJCSRzcWwgPSAiVVBEQVRFIGAiLkRCX1BSRUZJWC4kdG9kb3RhYmxlLiJgIFNFVCBgIi4kY3VycmVudGZpZWxkLiJgID0gJyIuJGNvbi0+ZXNjYXBlU3RyKCRzb3VyY2V0ZXh0KS4iJyBXSEVSRSBgIi4kdG9kb3RhYmxlLiJfaWRgID0gIi4kcnMtPmYoJHRvZG90YWJsZS4nX2lkJykuIiBMSU1JVCAxOyI7CgkJCQkJCQlpZiAoJGNvbi0+ZXhlY3V0ZSgkc3FsKSkgewoJCQkJCQkJCWJ1ZmZlcjo6c3RyKCc8cCBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMzBweDsgY29sb3I6ICMwMzk7Ij48aW1nIHNyYz0iaW1hZ2VzL2NoZWNrX29uLnBuZyIgYWx0PSJPayIgd2lkdGg9IjEyIiBoZWlnaHQ9IjEyIiAvPiA8c3Ryb25nPicuX18oJ1JlcGxhY2VkICEnKS4nPC9zdHJvbmc+PC9wPicuIlxuIik7CgkJCQkJCQl9IGVsc2UgewoJCQkJCQkJCWJ1ZmZlcjo6c3RyKCc8cCBzdHlsZT0ibWFyZ2luLWJvdHRvbTogMzBweDsgY29sb3I6ICM5MDA7Ij48aW1nIHNyYz0iaW1hZ2VzL2NoZWNrX29mZi5wbmciIGFsdD0iT2siIHdpZHRoPSIxMiIgaGVpZ2h0PSIxMiIgLz4gPHN0cm9uZz4nLl9fKCdFcnJvciAhJykuJzwvc3Ryb25nPjwvcD4nLiJcbiIpOwoJCQkJCQkJfQoJCQkJCQl9CgkJCQkJfQoJCQkJfQoJCQkJaWYgKCRuYk9jY3VycyA9PSAwKSB7CgkJCQkJYnVmZmVyOjpzdHIoJzxwPicuX18oJ05vIHJlc3VsdCBpbicpLicgJy4oJHRvZG90YWJsZSA9PSAncG9zdCcgPyBfXygnZW50cmllcycpIDogX18oJ2NvbW1lbnRzJykpLicuPC9wPicuIlxuIik7CgkJCQl9CgkJCX0KCQl9Cgl9CglidWZmZXI6OnN0cignPC9kaXY+Jy4iXG4iKTsKfQpidWZmZXI6OnN0cigKCSc8cCBzdHlsZT0idGV4dC1hbGlnbjogY2VudGVyOyI+PGEgaHJlZj0iaHR0cDovL3d3dy5rLW5ldHdlYi5uZXQvYmxvZy9pbmRleC5waHA/MjAwNi8wNi8xMS81Ny1wbHVnaW4tZG90Y2xlYXItc2VhcmNoLWFuZC1yZXBsYWNlIj5QbHVnaW4gJmNvcHk7IGstbmV0PC9hPjwvcD4nLiJcbiIpOwo/Pg==";s:24:"searchandreplace/COPYING";s:23988:"CQkgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKCQkgICAgICAgVmVyc2lvbiAyLCBKdW5lIDE5OTEKCiBDb3B5cmlnaHQgKEMpIDE5ODksIDE5OTEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCiA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcwogb2YgdGhpcyBsaWNlbnNlIGRvY3VtZW50LCBidXQgY2hhbmdpbmcgaXQgaXMgbm90IGFsbG93ZWQuCgoJCQkgICAgUHJlYW1ibGUKCiAgVGhlIGxpY2Vuc2VzIGZvciBtb3N0IHNvZnR3YXJlIGFyZSBkZXNpZ25lZCB0byB0YWtlIGF3YXkgeW91cgpmcmVlZG9tIHRvIHNoYXJlIGFuZCBjaGFuZ2UgaXQuICBCeSBjb250cmFzdCwgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYwpMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8gc2hhcmUgYW5kIGNoYW5nZSBmcmVlCnNvZnR3YXJlLS10byBtYWtlIHN1cmUgdGhlIHNvZnR3YXJlIGlzIGZyZWUgZm9yIGFsbCBpdHMgdXNlcnMuICBUaGlzCkdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXBwbGllcyB0byBtb3N0IG9mIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24ncyBzb2Z0d2FyZSBhbmQgdG8gYW55IG90aGVyIHByb2dyYW0gd2hvc2UgYXV0aG9ycyBjb21taXQgdG8KdXNpbmcgaXQuICAoU29tZSBvdGhlciBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gc29mdHdhcmUgaXMgY292ZXJlZCBieQp0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGluc3RlYWQuKSAgWW91IGNhbiBhcHBseSBpdCB0bwp5b3VyIHByb2dyYW1zLCB0b28uCgogIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKcHJpY2UuICBPdXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZXMgYXJlIGRlc2lnbmVkIHRvIG1ha2Ugc3VyZSB0aGF0IHlvdQpoYXZlIHRoZSBmcmVlZG9tIHRvIGRpc3RyaWJ1dGUgY29waWVzIG9mIGZyZWUgc29mdHdhcmUgKGFuZCBjaGFyZ2UgZm9yCnRoaXMgc2VydmljZSBpZiB5b3Ugd2lzaCksIHRoYXQgeW91IHJlY2VpdmUgc291cmNlIGNvZGUgb3IgY2FuIGdldCBpdAppZiB5b3Ugd2FudCBpdCwgdGhhdCB5b3UgY2FuIGNoYW5nZSB0aGUgc29mdHdhcmUgb3IgdXNlIHBpZWNlcyBvZiBpdAppbiBuZXcgZnJlZSBwcm9ncmFtczsgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCgogIFRvIHByb3RlY3QgeW91ciByaWdodHMsIHdlIG5lZWQgdG8gbWFrZSByZXN0cmljdGlvbnMgdGhhdCBmb3JiaWQKYW55b25lIHRvIGRlbnkgeW91IHRoZXNlIHJpZ2h0cyBvciB0byBhc2sgeW91IHRvIHN1cnJlbmRlciB0aGUgcmlnaHRzLgpUaGVzZSByZXN0cmljdGlvbnMgdHJhbnNsYXRlIHRvIGNlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBmb3IgeW91IGlmIHlvdQpkaXN0cmlidXRlIGNvcGllcyBvZiB0aGUgc29mdHdhcmUsIG9yIGlmIHlvdSBtb2RpZnkgaXQuCgogIEZvciBleGFtcGxlLCBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2Ygc3VjaCBhIHByb2dyYW0sIHdoZXRoZXIKZ3JhdGlzIG9yIGZvciBhIGZlZSwgeW91IG11c3QgZ2l2ZSB0aGUgcmVjaXBpZW50cyBhbGwgdGhlIHJpZ2h0cyB0aGF0CnlvdSBoYXZlLiAgWW91IG11c3QgbWFrZSBzdXJlIHRoYXQgdGhleSwgdG9vLCByZWNlaXZlIG9yIGNhbiBnZXQgdGhlCnNvdXJjZSBjb2RlLiAgQW5kIHlvdSBtdXN0IHNob3cgdGhlbSB0aGVzZSB0ZXJtcyBzbyB0aGV5IGtub3cgdGhlaXIKcmlnaHRzLgoKICBXZSBwcm90ZWN0IHlvdXIgcmlnaHRzIHdpdGggdHdvIHN0ZXBzOiAoMSkgY29weXJpZ2h0IHRoZSBzb2Z0d2FyZSwgYW5kCigyKSBvZmZlciB5b3UgdGhpcyBsaWNlbnNlIHdoaWNoIGdpdmVzIHlvdSBsZWdhbCBwZXJtaXNzaW9uIHRvIGNvcHksCmRpc3RyaWJ1dGUgYW5kL29yIG1vZGlmeSB0aGUgc29mdHdhcmUuCgogIEFsc28sIGZvciBlYWNoIGF1dGhvcidzIHByb3RlY3Rpb24gYW5kIG91cnMsIHdlIHdhbnQgdG8gbWFrZSBjZXJ0YWluCnRoYXQgZXZlcnlvbmUgdW5kZXJzdGFuZHMgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlCnNvZnR3YXJlLiAgSWYgdGhlIHNvZnR3YXJlIGlzIG1vZGlmaWVkIGJ5IHNvbWVvbmUgZWxzZSBhbmQgcGFzc2VkIG9uLCB3ZQp3YW50IGl0cyByZWNpcGllbnRzIHRvIGtub3cgdGhhdCB3aGF0IHRoZXkgaGF2ZSBpcyBub3QgdGhlIG9yaWdpbmFsLCBzbwp0aGF0IGFueSBwcm9ibGVtcyBpbnRyb2R1Y2VkIGJ5IG90aGVycyB3aWxsIG5vdCByZWZsZWN0IG9uIHRoZSBvcmlnaW5hbAphdXRob3JzJyByZXB1dGF0aW9ucy4KCiAgRmluYWxseSwgYW55IGZyZWUgcHJvZ3JhbSBpcyB0aHJlYXRlbmVkIGNvbnN0YW50bHkgYnkgc29mdHdhcmUKcGF0ZW50cy4gIFdlIHdpc2ggdG8gYXZvaWQgdGhlIGRhbmdlciB0aGF0IHJlZGlzdHJpYnV0b3JzIG9mIGEgZnJlZQpwcm9ncmFtIHdpbGwgaW5kaXZpZHVhbGx5IG9idGFpbiBwYXRlbnQgbGljZW5zZXMsIGluIGVmZmVjdCBtYWtpbmcgdGhlCnByb2dyYW0gcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHdlIGhhdmUgbWFkZSBpdCBjbGVhciB0aGF0IGFueQpwYXRlbnQgbXVzdCBiZSBsaWNlbnNlZCBmb3IgZXZlcnlvbmUncyBmcmVlIHVzZSBvciBub3QgbGljZW5zZWQgYXQgYWxsLgoKICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAptb2RpZmljYXRpb24gZm9sbG93LgoKCQkgICAgR05VIEdFTkVSQUwgUFVCTElDIExJQ0VOU0UKICAgVEVSTVMgQU5EIENPTkRJVElPTlMgRk9SIENPUFlJTkcsIERJU1RSSUJVVElPTiBBTkQgTU9ESUZJQ0FUSU9OCgogIDAuIFRoaXMgTGljZW5zZSBhcHBsaWVzIHRvIGFueSBwcm9ncmFtIG9yIG90aGVyIHdvcmsgd2hpY2ggY29udGFpbnMKYSBub3RpY2UgcGxhY2VkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVyIHNheWluZyBpdCBtYXkgYmUgZGlzdHJpYnV0ZWQKdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIFRoZSAiUHJvZ3JhbSIsIGJlbG93LApyZWZlcnMgdG8gYW55IHN1Y2ggcHJvZ3JhbSBvciB3b3JrLCBhbmQgYSAid29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSIKbWVhbnMgZWl0aGVyIHRoZSBQcm9ncmFtIG9yIGFueSBkZXJpdmF0aXZlIHdvcmsgdW5kZXIgY29weXJpZ2h0IGxhdzoKdGhhdCBpcyB0byBzYXksIGEgd29yayBjb250YWluaW5nIHRoZSBQcm9ncmFtIG9yIGEgcG9ydGlvbiBvZiBpdCwKZWl0aGVyIHZlcmJhdGltIG9yIHdpdGggbW9kaWZpY2F0aW9ucyBhbmQvb3IgdHJhbnNsYXRlZCBpbnRvIGFub3RoZXIKbGFuZ3VhZ2UuICAoSGVyZWluYWZ0ZXIsIHRyYW5zbGF0aW9uIGlzIGluY2x1ZGVkIHdpdGhvdXQgbGltaXRhdGlvbiBpbgp0aGUgdGVybSAibW9kaWZpY2F0aW9uIi4pICBFYWNoIGxpY2Vuc2VlIGlzIGFkZHJlc3NlZCBhcyAieW91Ii4KCkFjdGl2aXRpZXMgb3RoZXIgdGhhbiBjb3B5aW5nLCBkaXN0cmlidXRpb24gYW5kIG1vZGlmaWNhdGlvbiBhcmUgbm90CmNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlOyB0aGV5IGFyZSBvdXRzaWRlIGl0cyBzY29wZS4gIFRoZSBhY3Qgb2YKcnVubmluZyB0aGUgUHJvZ3JhbSBpcyBub3QgcmVzdHJpY3RlZCwgYW5kIHRoZSBvdXRwdXQgZnJvbSB0aGUgUHJvZ3JhbQppcyBjb3ZlcmVkIG9ubHkgaWYgaXRzIGNvbnRlbnRzIGNvbnN0aXR1dGUgYSB3b3JrIGJhc2VkIG9uIHRoZQpQcm9ncmFtIChpbmRlcGVuZGVudCBvZiBoYXZpbmcgYmVlbiBtYWRlIGJ5IHJ1bm5pbmcgdGhlIFByb2dyYW0pLgpXaGV0aGVyIHRoYXQgaXMgdHJ1ZSBkZXBlbmRzIG9uIHdoYXQgdGhlIFByb2dyYW0gZG9lcy4KCiAgMS4gWW91IG1heSBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSdzCnNvdXJjZSBjb2RlIGFzIHlvdSByZWNlaXZlIGl0LCBpbiBhbnkgbWVkaXVtLCBwcm92aWRlZCB0aGF0IHlvdQpjb25zcGljdW91c2x5IGFuZCBhcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlCmNvcHlyaWdodCBub3RpY2UgYW5kIGRpc2NsYWltZXIgb2Ygd2FycmFudHk7IGtlZXAgaW50YWN0IGFsbCB0aGUKbm90aWNlcyB0aGF0IHJlZmVyIHRvIHRoaXMgTGljZW5zZSBhbmQgdG8gdGhlIGFic2VuY2Ugb2YgYW55IHdhcnJhbnR5OwphbmQgZ2l2ZSBhbnkgb3RoZXIgcmVjaXBpZW50cyBvZiB0aGUgUHJvZ3JhbSBhIGNvcHkgb2YgdGhpcyBMaWNlbnNlCmFsb25nIHdpdGggdGhlIFByb2dyYW0uCgpZb3UgbWF5IGNoYXJnZSBhIGZlZSBmb3IgdGhlIHBoeXNpY2FsIGFjdCBvZiB0cmFuc2ZlcnJpbmcgYSBjb3B5LCBhbmQKeW91IG1heSBhdCB5b3VyIG9wdGlvbiBvZmZlciB3YXJyYW50eSBwcm90ZWN0aW9uIGluIGV4Y2hhbmdlIGZvciBhIGZlZS4KCiAgMi4gWW91IG1heSBtb2RpZnkgeW91ciBjb3B5IG9yIGNvcGllcyBvZiB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbgpvZiBpdCwgdGh1cyBmb3JtaW5nIGEgd29yayBiYXNlZCBvbiB0aGUgUHJvZ3JhbSwgYW5kIGNvcHkgYW5kCmRpc3RyaWJ1dGUgc3VjaCBtb2RpZmljYXRpb25zIG9yIHdvcmsgdW5kZXIgdGhlIHRlcm1zIG9mIFNlY3Rpb24gMQphYm92ZSwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOgoKICAgIGEpIFlvdSBtdXN0IGNhdXNlIHRoZSBtb2RpZmllZCBmaWxlcyB0byBjYXJyeSBwcm9taW5lbnQgbm90aWNlcwogICAgc3RhdGluZyB0aGF0IHlvdSBjaGFuZ2VkIHRoZSBmaWxlcyBhbmQgdGhlIGRhdGUgb2YgYW55IGNoYW5nZS4KCiAgICBiKSBZb3UgbXVzdCBjYXVzZSBhbnkgd29yayB0aGF0IHlvdSBkaXN0cmlidXRlIG9yIHB1Ymxpc2gsIHRoYXQgaW4KICAgIHdob2xlIG9yIGluIHBhcnQgY29udGFpbnMgb3IgaXMgZGVyaXZlZCBmcm9tIHRoZSBQcm9ncmFtIG9yIGFueQogICAgcGFydCB0aGVyZW9mLCB0byBiZSBsaWNlbnNlZCBhcyBhIHdob2xlIGF0IG5vIGNoYXJnZSB0byBhbGwgdGhpcmQKICAgIHBhcnRpZXMgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZS4KCiAgICBjKSBJZiB0aGUgbW9kaWZpZWQgcHJvZ3JhbSBub3JtYWxseSByZWFkcyBjb21tYW5kcyBpbnRlcmFjdGl2ZWx5CiAgICB3aGVuIHJ1biwgeW91IG11c3QgY2F1c2UgaXQsIHdoZW4gc3RhcnRlZCBydW5uaW5nIGZvciBzdWNoCiAgICBpbnRlcmFjdGl2ZSB1c2UgaW4gdGhlIG1vc3Qgb3JkaW5hcnkgd2F5LCB0byBwcmludCBvciBkaXNwbGF5IGFuCiAgICBhbm5vdW5jZW1lbnQgaW5jbHVkaW5nIGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2UgYW5kIGEKICAgIG5vdGljZSB0aGF0IHRoZXJlIGlzIG5vIHdhcnJhbnR5IChvciBlbHNlLCBzYXlpbmcgdGhhdCB5b3UgcHJvdmlkZQogICAgYSB3YXJyYW50eSkgYW5kIHRoYXQgdXNlcnMgbWF5IHJlZGlzdHJpYnV0ZSB0aGUgcHJvZ3JhbSB1bmRlcgogICAgdGhlc2UgY29uZGl0aW9ucywgYW5kIHRlbGxpbmcgdGhlIHVzZXIgaG93IHRvIHZpZXcgYSBjb3B5IG9mIHRoaXMKICAgIExpY2Vuc2UuICAoRXhjZXB0aW9uOiBpZiB0aGUgUHJvZ3JhbSBpdHNlbGYgaXMgaW50ZXJhY3RpdmUgYnV0CiAgICBkb2VzIG5vdCBub3JtYWxseSBwcmludCBzdWNoIGFuIGFubm91bmNlbWVudCwgeW91ciB3b3JrIGJhc2VkIG9uCiAgICB0aGUgUHJvZ3JhbSBpcyBub3QgcmVxdWlyZWQgdG8gcHJpbnQgYW4gYW5ub3VuY2VtZW50LikKClRoZXNlIHJlcXVpcmVtZW50cyBhcHBseSB0byB0aGUgbW9kaWZpZWQgd29yayBhcyBhIHdob2xlLiAgSWYKaWRlbnRpZmlhYmxlIHNlY3Rpb25zIG9mIHRoYXQgd29yayBhcmUgbm90IGRlcml2ZWQgZnJvbSB0aGUgUHJvZ3JhbSwKYW5kIGNhbiBiZSByZWFzb25hYmx5IGNvbnNpZGVyZWQgaW5kZXBlbmRlbnQgYW5kIHNlcGFyYXRlIHdvcmtzIGluCnRoZW1zZWx2ZXMsIHRoZW4gdGhpcyBMaWNlbnNlLCBhbmQgaXRzIHRlcm1zLCBkbyBub3QgYXBwbHkgdG8gdGhvc2UKc2VjdGlvbnMgd2hlbiB5b3UgZGlzdHJpYnV0ZSB0aGVtIGFzIHNlcGFyYXRlIHdvcmtzLiAgQnV0IHdoZW4geW91CmRpc3RyaWJ1dGUgdGhlIHNhbWUgc2VjdGlvbnMgYXMgcGFydCBvZiBhIHdob2xlIHdoaWNoIGlzIGEgd29yayBiYXNlZApvbiB0aGUgUHJvZ3JhbSwgdGhlIGRpc3RyaWJ1dGlvbiBvZiB0aGUgd2hvbGUgbXVzdCBiZSBvbiB0aGUgdGVybXMgb2YKdGhpcyBMaWNlbnNlLCB3aG9zZSBwZXJtaXNzaW9ucyBmb3Igb3RoZXIgbGljZW5zZWVzIGV4dGVuZCB0byB0aGUKZW50aXJlIHdob2xlLCBhbmQgdGh1cyB0byBlYWNoIGFuZCBldmVyeSBwYXJ0IHJlZ2FyZGxlc3Mgb2Ygd2hvIHdyb3RlIGl0LgoKVGh1cywgaXQgaXMgbm90IHRoZSBpbnRlbnQgb2YgdGhpcyBzZWN0aW9uIHRvIGNsYWltIHJpZ2h0cyBvciBjb250ZXN0CnlvdXIgcmlnaHRzIHRvIHdvcmsgd3JpdHRlbiBlbnRpcmVseSBieSB5b3U7IHJhdGhlciwgdGhlIGludGVudCBpcyB0bwpleGVyY2lzZSB0aGUgcmlnaHQgdG8gY29udHJvbCB0aGUgZGlzdHJpYnV0aW9uIG9mIGRlcml2YXRpdmUgb3IKY29sbGVjdGl2ZSB3b3JrcyBiYXNlZCBvbiB0aGUgUHJvZ3JhbS4KCkluIGFkZGl0aW9uLCBtZXJlIGFnZ3JlZ2F0aW9uIG9mIGFub3RoZXIgd29yayBub3QgYmFzZWQgb24gdGhlIFByb2dyYW0Kd2l0aCB0aGUgUHJvZ3JhbSAob3Igd2l0aCBhIHdvcmsgYmFzZWQgb24gdGhlIFByb2dyYW0pIG9uIGEgdm9sdW1lIG9mCmEgc3RvcmFnZSBvciBkaXN0cmlidXRpb24gbWVkaXVtIGRvZXMgbm90IGJyaW5nIHRoZSBvdGhlciB3b3JrIHVuZGVyCnRoZSBzY29wZSBvZiB0aGlzIExpY2Vuc2UuCgogIDMuIFlvdSBtYXkgY29weSBhbmQgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSAob3IgYSB3b3JrIGJhc2VkIG9uIGl0LAp1bmRlciBTZWN0aW9uIDIpIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9ybSB1bmRlciB0aGUgdGVybXMgb2YKU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBwcm92aWRlZCB0aGF0IHlvdSBhbHNvIGRvIG9uZSBvZiB0aGUgZm9sbG93aW5nOgoKICAgIGEpIEFjY29tcGFueSBpdCB3aXRoIHRoZSBjb21wbGV0ZSBjb3JyZXNwb25kaW5nIG1hY2hpbmUtcmVhZGFibGUKICAgIHNvdXJjZSBjb2RlLCB3aGljaCBtdXN0IGJlIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiBTZWN0aW9ucwogICAgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bSBjdXN0b21hcmlseSB1c2VkIGZvciBzb2Z0d2FyZSBpbnRlcmNoYW5nZTsgb3IsCgogICAgYikgQWNjb21wYW55IGl0IHdpdGggYSB3cml0dGVuIG9mZmVyLCB2YWxpZCBmb3IgYXQgbGVhc3QgdGhyZWUKICAgIHllYXJzLCB0byBnaXZlIGFueSB0aGlyZCBwYXJ0eSwgZm9yIGEgY2hhcmdlIG5vIG1vcmUgdGhhbiB5b3VyCiAgICBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyBzb3VyY2UgZGlzdHJpYnV0aW9uLCBhIGNvbXBsZXRlCiAgICBtYWNoaW5lLXJlYWRhYmxlIGNvcHkgb2YgdGhlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUsIHRvIGJlCiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgU2VjdGlvbnMgMSBhbmQgMiBhYm92ZSBvbiBhIG1lZGl1bQogICAgY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2U7IG9yLAoKICAgIGMpIEFjY29tcGFueSBpdCB3aXRoIHRoZSBpbmZvcm1hdGlvbiB5b3UgcmVjZWl2ZWQgYXMgdG8gdGhlIG9mZmVyCiAgICB0byBkaXN0cmlidXRlIGNvcnJlc3BvbmRpbmcgc291cmNlIGNvZGUuICAoVGhpcyBhbHRlcm5hdGl2ZSBpcwogICAgYWxsb3dlZCBvbmx5IGZvciBub25jb21tZXJjaWFsIGRpc3RyaWJ1dGlvbiBhbmQgb25seSBpZiB5b3UKICAgIHJlY2VpdmVkIHRoZSBwcm9ncmFtIGluIG9iamVjdCBjb2RlIG9yIGV4ZWN1dGFibGUgZm9ybSB3aXRoIHN1Y2gKICAgIGFuIG9mZmVyLCBpbiBhY2NvcmQgd2l0aCBTdWJzZWN0aW9uIGIgYWJvdmUuKQoKVGhlIHNvdXJjZSBjb2RlIGZvciBhIHdvcmsgbWVhbnMgdGhlIHByZWZlcnJlZCBmb3JtIG9mIHRoZSB3b3JrIGZvcgptYWtpbmcgbW9kaWZpY2F0aW9ucyB0byBpdC4gIEZvciBhbiBleGVjdXRhYmxlIHdvcmssIGNvbXBsZXRlIHNvdXJjZQpjb2RlIG1lYW5zIGFsbCB0aGUgc291cmNlIGNvZGUgZm9yIGFsbCBtb2R1bGVzIGl0IGNvbnRhaW5zLCBwbHVzIGFueQphc3NvY2lhdGVkIGludGVyZmFjZSBkZWZpbml0aW9uIGZpbGVzLCBwbHVzIHRoZSBzY3JpcHRzIHVzZWQgdG8KY29udHJvbCBjb21waWxhdGlvbiBhbmQgaW5zdGFsbGF0aW9uIG9mIHRoZSBleGVjdXRhYmxlLiAgSG93ZXZlciwgYXMgYQpzcGVjaWFsIGV4Y2VwdGlvbiwgdGhlIHNvdXJjZSBjb2RlIGRpc3RyaWJ1dGVkIG5lZWQgbm90IGluY2x1ZGUKYW55dGhpbmcgdGhhdCBpcyBub3JtYWxseSBkaXN0cmlidXRlZCAoaW4gZWl0aGVyIHNvdXJjZSBvciBiaW5hcnkKZm9ybSkgd2l0aCB0aGUgbWFqb3IgY29tcG9uZW50cyAoY29tcGlsZXIsIGtlcm5lbCwgYW5kIHNvIG9uKSBvZiB0aGUKb3BlcmF0aW5nIHN5c3RlbSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSBydW5zLCB1bmxlc3MgdGhhdCBjb21wb25lbnQKaXRzZWxmIGFjY29tcGFuaWVzIHRoZSBleGVjdXRhYmxlLgoKSWYgZGlzdHJpYnV0aW9uIG9mIGV4ZWN1dGFibGUgb3Igb2JqZWN0IGNvZGUgaXMgbWFkZSBieSBvZmZlcmluZwphY2Nlc3MgdG8gY29weSBmcm9tIGEgZGVzaWduYXRlZCBwbGFjZSwgdGhlbiBvZmZlcmluZyBlcXVpdmFsZW50CmFjY2VzcyB0byBjb3B5IHRoZSBzb3VyY2UgY29kZSBmcm9tIHRoZSBzYW1lIHBsYWNlIGNvdW50cyBhcwpkaXN0cmlidXRpb24gb2YgdGhlIHNvdXJjZSBjb2RlLCBldmVuIHRob3VnaCB0aGlyZCBwYXJ0aWVzIGFyZSBub3QKY29tcGVsbGVkIHRvIGNvcHkgdGhlIHNvdXJjZSBhbG9uZyB3aXRoIHRoZSBvYmplY3QgY29kZS4KCiAgNC4gWW91IG1heSBub3QgY29weSwgbW9kaWZ5LCBzdWJsaWNlbnNlLCBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtCmV4Y2VwdCBhcyBleHByZXNzbHkgcHJvdmlkZWQgdW5kZXIgdGhpcyBMaWNlbnNlLiAgQW55IGF0dGVtcHQKb3RoZXJ3aXNlIHRvIGNvcHksIG1vZGlmeSwgc3VibGljZW5zZSBvciBkaXN0cmlidXRlIHRoZSBQcm9ncmFtIGlzCnZvaWQsIGFuZCB3aWxsIGF1dG9tYXRpY2FsbHkgdGVybWluYXRlIHlvdXIgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZS4KSG93ZXZlciwgcGFydGllcyB3aG8gaGF2ZSByZWNlaXZlZCBjb3BpZXMsIG9yIHJpZ2h0cywgZnJvbSB5b3UgdW5kZXIKdGhpcyBMaWNlbnNlIHdpbGwgbm90IGhhdmUgdGhlaXIgbGljZW5zZXMgdGVybWluYXRlZCBzbyBsb25nIGFzIHN1Y2gKcGFydGllcyByZW1haW4gaW4gZnVsbCBjb21wbGlhbmNlLgoKICA1LiBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlLCBzaW5jZSB5b3UgaGF2ZSBub3QKc2lnbmVkIGl0LiAgSG93ZXZlciwgbm90aGluZyBlbHNlIGdyYW50cyB5b3UgcGVybWlzc2lvbiB0byBtb2RpZnkgb3IKZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBvciBpdHMgZGVyaXZhdGl2ZSB3b3Jrcy4gIFRoZXNlIGFjdGlvbnMgYXJlCnByb2hpYml0ZWQgYnkgbGF3IGlmIHlvdSBkbyBub3QgYWNjZXB0IHRoaXMgTGljZW5zZS4gIFRoZXJlZm9yZSwgYnkKbW9kaWZ5aW5nIG9yIGRpc3RyaWJ1dGluZyB0aGUgUHJvZ3JhbSAob3IgYW55IHdvcmsgYmFzZWQgb24gdGhlClByb2dyYW0pLCB5b3UgaW5kaWNhdGUgeW91ciBhY2NlcHRhbmNlIG9mIHRoaXMgTGljZW5zZSB0byBkbyBzbywgYW5kCmFsbCBpdHMgdGVybXMgYW5kIGNvbmRpdGlvbnMgZm9yIGNvcHlpbmcsIGRpc3RyaWJ1dGluZyBvciBtb2RpZnlpbmcKdGhlIFByb2dyYW0gb3Igd29ya3MgYmFzZWQgb24gaXQuCgogIDYuIEVhY2ggdGltZSB5b3UgcmVkaXN0cmlidXRlIHRoZSBQcm9ncmFtIChvciBhbnkgd29yayBiYXNlZCBvbiB0aGUKUHJvZ3JhbSksIHRoZSByZWNpcGllbnQgYXV0b21hdGljYWxseSByZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUKb3JpZ2luYWwgbGljZW5zb3IgdG8gY29weSwgZGlzdHJpYnV0ZSBvciBtb2RpZnkgdGhlIFByb2dyYW0gc3ViamVjdCB0bwp0aGVzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucy4gIFlvdSBtYXkgbm90IGltcG9zZSBhbnkgZnVydGhlcgpyZXN0cmljdGlvbnMgb24gdGhlIHJlY2lwaWVudHMnIGV4ZXJjaXNlIG9mIHRoZSByaWdodHMgZ3JhbnRlZCBoZXJlaW4uCllvdSBhcmUgbm90IHJlc3BvbnNpYmxlIGZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHRvCnRoaXMgTGljZW5zZS4KCiAgNy4gSWYsIGFzIGEgY29uc2VxdWVuY2Ugb2YgYSBjb3VydCBqdWRnbWVudCBvciBhbGxlZ2F0aW9uIG9mIHBhdGVudAppbmZyaW5nZW1lbnQgb3IgZm9yIGFueSBvdGhlciByZWFzb24gKG5vdCBsaW1pdGVkIHRvIHBhdGVudCBpc3N1ZXMpLApjb25kaXRpb25zIGFyZSBpbXBvc2VkIG9uIHlvdSAod2hldGhlciBieSBjb3VydCBvcmRlciwgYWdyZWVtZW50IG9yCm90aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKZXhjdXNlIHlvdSBmcm9tIHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZS4gIElmIHlvdSBjYW5ub3QKZGlzdHJpYnV0ZSBzbyBhcyB0byBzYXRpc2Z5IHNpbXVsdGFuZW91c2x5IHlvdXIgb2JsaWdhdGlvbnMgdW5kZXIgdGhpcwpMaWNlbnNlIGFuZCBhbnkgb3RoZXIgcGVydGluZW50IG9ibGlnYXRpb25zLCB0aGVuIGFzIGEgY29uc2VxdWVuY2UgeW91Cm1heSBub3QgZGlzdHJpYnV0ZSB0aGUgUHJvZ3JhbSBhdCBhbGwuICBGb3IgZXhhbXBsZSwgaWYgYSBwYXRlbnQKbGljZW5zZSB3b3VsZCBub3QgcGVybWl0IHJveWFsdHktZnJlZSByZWRpc3RyaWJ1dGlvbiBvZiB0aGUgUHJvZ3JhbSBieQphbGwgdGhvc2Ugd2hvIHJlY2VpdmUgY29waWVzIGRpcmVjdGx5IG9yIGluZGlyZWN0bHkgdGhyb3VnaCB5b3UsIHRoZW4KdGhlIG9ubHkgd2F5IHlvdSBjb3VsZCBzYXRpc2Z5IGJvdGggaXQgYW5kIHRoaXMgTGljZW5zZSB3b3VsZCBiZSB0bwpyZWZyYWluIGVudGlyZWx5IGZyb20gZGlzdHJpYnV0aW9uIG9mIHRoZSBQcm9ncmFtLgoKSWYgYW55IHBvcnRpb24gb2YgdGhpcyBzZWN0aW9uIGlzIGhlbGQgaW52YWxpZCBvciB1bmVuZm9yY2VhYmxlIHVuZGVyCmFueSBwYXJ0aWN1bGFyIGNpcmN1bXN0YW5jZSwgdGhlIGJhbGFuY2Ugb2YgdGhlIHNlY3Rpb24gaXMgaW50ZW5kZWQgdG8KYXBwbHkgYW5kIHRoZSBzZWN0aW9uIGFzIGEgd2hvbGUgaXMgaW50ZW5kZWQgdG8gYXBwbHkgaW4gb3RoZXIKY2lyY3Vtc3RhbmNlcy4KCkl0IGlzIG5vdCB0aGUgcHVycG9zZSBvZiB0aGlzIHNlY3Rpb24gdG8gaW5kdWNlIHlvdSB0byBpbmZyaW5nZSBhbnkKcGF0ZW50cyBvciBvdGhlciBwcm9wZXJ0eSByaWdodCBjbGFpbXMgb3IgdG8gY29udGVzdCB2YWxpZGl0eSBvZiBhbnkKc3VjaCBjbGFpbXM7IHRoaXMgc2VjdGlvbiBoYXMgdGhlIHNvbGUgcHVycG9zZSBvZiBwcm90ZWN0aW5nIHRoZQppbnRlZ3JpdHkgb2YgdGhlIGZyZWUgc29mdHdhcmUgZGlzdHJpYnV0aW9uIHN5c3RlbSwgd2hpY2ggaXMKaW1wbGVtZW50ZWQgYnkgcHVibGljIGxpY2Vuc2UgcHJhY3RpY2VzLiAgTWFueSBwZW9wbGUgaGF2ZSBtYWRlCmdlbmVyb3VzIGNvbnRyaWJ1dGlvbnMgdG8gdGhlIHdpZGUgcmFuZ2Ugb2Ygc29mdHdhcmUgZGlzdHJpYnV0ZWQKdGhyb3VnaCB0aGF0IHN5c3RlbSBpbiByZWxpYW5jZSBvbiBjb25zaXN0ZW50IGFwcGxpY2F0aW9uIG9mIHRoYXQKc3lzdGVtOyBpdCBpcyB1cCB0byB0aGUgYXV0aG9yL2Rvbm9yIHRvIGRlY2lkZSBpZiBoZSBvciBzaGUgaXMgd2lsbGluZwp0byBkaXN0cmlidXRlIHNvZnR3YXJlIHRocm91Z2ggYW55IG90aGVyIHN5c3RlbSBhbmQgYSBsaWNlbnNlZSBjYW5ub3QKaW1wb3NlIHRoYXQgY2hvaWNlLgoKVGhpcyBzZWN0aW9uIGlzIGludGVuZGVkIHRvIG1ha2UgdGhvcm91Z2hseSBjbGVhciB3aGF0IGlzIGJlbGlldmVkIHRvCmJlIGEgY29uc2VxdWVuY2Ugb2YgdGhlIHJlc3Qgb2YgdGhpcyBMaWNlbnNlLgoKICA4LiBJZiB0aGUgZGlzdHJpYnV0aW9uIGFuZC9vciB1c2Ugb2YgdGhlIFByb2dyYW0gaXMgcmVzdHJpY3RlZCBpbgpjZXJ0YWluIGNvdW50cmllcyBlaXRoZXIgYnkgcGF0ZW50cyBvciBieSBjb3B5cmlnaHRlZCBpbnRlcmZhY2VzLCB0aGUKb3JpZ2luYWwgY29weXJpZ2h0IGhvbGRlciB3aG8gcGxhY2VzIHRoZSBQcm9ncmFtIHVuZGVyIHRoaXMgTGljZW5zZQptYXkgYWRkIGFuIGV4cGxpY2l0IGdlb2dyYXBoaWNhbCBkaXN0cmlidXRpb24gbGltaXRhdGlvbiBleGNsdWRpbmcKdGhvc2UgY291bnRyaWVzLCBzbyB0aGF0IGRpc3RyaWJ1dGlvbiBpcyBwZXJtaXR0ZWQgb25seSBpbiBvciBhbW9uZwpjb3VudHJpZXMgbm90IHRodXMgZXhjbHVkZWQuICBJbiBzdWNoIGNhc2UsIHRoaXMgTGljZW5zZSBpbmNvcnBvcmF0ZXMKdGhlIGxpbWl0YXRpb24gYXMgaWYgd3JpdHRlbiBpbiB0aGUgYm9keSBvZiB0aGlzIExpY2Vuc2UuCgogIDkuIFRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gbWF5IHB1Ymxpc2ggcmV2aXNlZCBhbmQvb3IgbmV3IHZlcnNpb25zCm9mIHRoZSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAgU3VjaCBuZXcgdmVyc2lvbnMgd2lsbApiZSBzaW1pbGFyIGluIHNwaXJpdCB0byB0aGUgcHJlc2VudCB2ZXJzaW9uLCBidXQgbWF5IGRpZmZlciBpbiBkZXRhaWwgdG8KYWRkcmVzcyBuZXcgcHJvYmxlbXMgb3IgY29uY2VybnMuCgpFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRoZSBQcm9ncmFtCnNwZWNpZmllcyBhIHZlcnNpb24gbnVtYmVyIG9mIHRoaXMgTGljZW5zZSB3aGljaCBhcHBsaWVzIHRvIGl0IGFuZCAiYW55CmxhdGVyIHZlcnNpb24iLCB5b3UgaGF2ZSB0aGUgb3B0aW9uIG9mIGZvbGxvd2luZyB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMKZWl0aGVyIG9mIHRoYXQgdmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUKU29mdHdhcmUgRm91bmRhdGlvbi4gIElmIHRoZSBQcm9ncmFtIGRvZXMgbm90IHNwZWNpZnkgYSB2ZXJzaW9uIG51bWJlciBvZgp0aGlzIExpY2Vuc2UsIHlvdSBtYXkgY2hvb3NlIGFueSB2ZXJzaW9uIGV2ZXIgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24uCgogIDEwLiBJZiB5b3Ugd2lzaCB0byBpbmNvcnBvcmF0ZSBwYXJ0cyBvZiB0aGUgUHJvZ3JhbSBpbnRvIG90aGVyIGZyZWUKcHJvZ3JhbXMgd2hvc2UgZGlzdHJpYnV0aW9uIGNvbmRpdGlvbnMgYXJlIGRpZmZlcmVudCwgd3JpdGUgdG8gdGhlIGF1dGhvcgp0byBhc2sgZm9yIHBlcm1pc3Npb24uICBGb3Igc29mdHdhcmUgd2hpY2ggaXMgY29weXJpZ2h0ZWQgYnkgdGhlIEZyZWUKU29mdHdhcmUgRm91bmRhdGlvbiwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgd2Ugc29tZXRpbWVzCm1ha2UgZXhjZXB0aW9ucyBmb3IgdGhpcy4gIE91ciBkZWNpc2lvbiB3aWxsIGJlIGd1aWRlZCBieSB0aGUgdHdvIGdvYWxzCm9mIHByZXNlcnZpbmcgdGhlIGZyZWUgc3RhdHVzIG9mIGFsbCBkZXJpdmF0aXZlcyBvZiBvdXIgZnJlZSBzb2Z0d2FyZSBhbmQKb2YgcHJvbW90aW5nIHRoZSBzaGFyaW5nIGFuZCByZXVzZSBvZiBzb2Z0d2FyZSBnZW5lcmFsbHkuCgoJCQkgICAgTk8gV0FSUkFOVFkKCiAgMTEuIEJFQ0FVU0UgVEhFIFBST0dSQU0gSVMgTElDRU5TRUQgRlJFRSBPRiBDSEFSR0UsIFRIRVJFIElTIE5PIFdBUlJBTlRZCkZPUiBUSEUgUFJPR1JBTSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkgQVBQTElDQUJMRSBMQVcuICBFWENFUFQgV0hFTgpPVEhFUldJU0UgU1RBVEVEIElOIFdSSVRJTkcgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORC9PUiBPVEhFUiBQQVJUSUVTClBST1ZJREUgVEhFIFBST0dSQU0gIkFTIElTIiBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTU0VECk9SIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GCk1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBUSEUgRU5USVJFIFJJU0sgQVMKVE8gVEhFIFFVQUxJVFkgQU5EIFBFUkZPUk1BTkNFIE9GIFRIRSBQUk9HUkFNIElTIFdJVEggWU9VLiAgU0hPVUxEIFRIRQpQUk9HUkFNIFBST1ZFIERFRkVDVElWRSwgWU9VIEFTU1VNRSBUSEUgQ09TVCBPRiBBTEwgTkVDRVNTQVJZIFNFUlZJQ0lORywKUkVQQUlSIE9SIENPUlJFQ1RJT04uCgogIDEyLiBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOIFdSSVRJTkcKV0lMTCBBTlkgQ09QWVJJR0hUIEhPTERFUiwgT1IgQU5ZIE9USEVSIFBBUlRZIFdITyBNQVkgTU9ESUZZIEFORC9PUgpSRURJU1RSSUJVVEUgVEhFIFBST0dSQU0gQVMgUEVSTUlUVEVEIEFCT1ZFLCBCRSBMSUFCTEUgVE8gWU9VIEZPUiBEQU1BR0VTLApJTkNMVURJTkcgQU5ZIEdFTkVSQUwsIFNQRUNJQUwsIElOQ0lERU5UQUwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIEFSSVNJTkcKT1VUIE9GIFRIRSBVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUgUFJPR1JBTSAoSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRApUTyBMT1NTIE9GIERBVEEgT1IgREFUQSBCRUlORyBSRU5ERVJFRCBJTkFDQ1VSQVRFIE9SIExPU1NFUyBTVVNUQUlORUQgQlkKWU9VIE9SIFRISVJEIFBBUlRJRVMgT1IgQSBGQUlMVVJFIE9GIFRIRSBQUk9HUkFNIFRPIE9QRVJBVEUgV0lUSCBBTlkgT1RIRVIKUFJPR1JBTVMpLCBFVkVOIElGIFNVQ0ggSE9MREVSIE9SIE9USEVSIFBBUlRZIEhBUyBCRUVOIEFEVklTRUQgT0YgVEhFClBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFUy4KCgkJICAgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKCgkgICAgSG93IHRvIEFwcGx5IFRoZXNlIFRlcm1zIHRvIFlvdXIgTmV3IFByb2dyYW1zCgogIElmIHlvdSBkZXZlbG9wIGEgbmV3IHByb2dyYW0sIGFuZCB5b3Ugd2FudCBpdCB0byBiZSBvZiB0aGUgZ3JlYXRlc3QKcG9zc2libGUgdXNlIHRvIHRoZSBwdWJsaWMsIHRoZSBiZXN0IHdheSB0byBhY2hpZXZlIHRoaXMgaXMgdG8gbWFrZSBpdApmcmVlIHNvZnR3YXJlIHdoaWNoIGV2ZXJ5b25lIGNhbiByZWRpc3RyaWJ1dGUgYW5kIGNoYW5nZSB1bmRlciB0aGVzZSB0ZXJtcy4KCiAgVG8gZG8gc28sIGF0dGFjaCB0aGUgZm9sbG93aW5nIG5vdGljZXMgdG8gdGhlIHByb2dyYW0uICBJdCBpcyBzYWZlc3QKdG8gYXR0YWNoIHRoZW0gdG8gdGhlIHN0YXJ0IG9mIGVhY2ggc291cmNlIGZpbGUgdG8gbW9zdCBlZmZlY3RpdmVseQpjb252ZXkgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAp0aGUgImNvcHlyaWdodCIgbGluZSBhbmQgYSBwb2ludGVyIHRvIHdoZXJlIHRoZSBmdWxsIG5vdGljZSBpcyBmb3VuZC4KCiAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgogICAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yCiAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgoKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCgogICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICAgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCiAgICBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKCgpBbHNvIGFkZCBpbmZvcm1hdGlvbiBvbiBob3cgdG8gY29udGFjdCB5b3UgYnkgZWxlY3Ryb25pYyBhbmQgcGFwZXIgbWFpbC4KCklmIHRoZSBwcm9ncmFtIGlzIGludGVyYWN0aXZlLCBtYWtlIGl0IG91dHB1dCBhIHNob3J0IG5vdGljZSBsaWtlIHRoaXMKd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKCiAgICBHbm9tb3Zpc2lvbiB2ZXJzaW9uIDY5LCBDb3B5cmlnaHQgKEMpIHllYXIgbmFtZSBvZiBhdXRob3IKICAgIEdub21vdmlzaW9uIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWTsgZm9yIGRldGFpbHMgdHlwZSBgc2hvdyB3Jy4KICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKICAgIHVuZGVyIGNlcnRhaW4gY29uZGl0aW9uczsgdHlwZSBgc2hvdyBjJyBmb3IgZGV0YWlscy4KClRoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQpwYXJ0cyBvZiB0aGUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZS4gIE9mIGNvdXJzZSwgdGhlIGNvbW1hbmRzIHlvdSB1c2UgbWF5CmJlIGNhbGxlZCBzb21ldGhpbmcgb3RoZXIgdGhhbiBgc2hvdyB3JyBhbmQgYHNob3cgYyc7IHRoZXkgY291bGQgZXZlbiBiZQptb3VzZS1jbGlja3Mgb3IgbWVudSBpdGVtcy0td2hhdGV2ZXIgc3VpdHMgeW91ciBwcm9ncmFtLgoKWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHlvdXIKc2Nob29sLCBpZiBhbnksIHRvIHNpZ24gYSAiY29weXJpZ2h0IGRpc2NsYWltZXIiIGZvciB0aGUgcHJvZ3JhbSwgaWYKbmVjZXNzYXJ5LiAgSGVyZSBpcyBhIHNhbXBsZTsgYWx0ZXIgdGhlIG5hbWVzOgoKICBZb3lvZHluZSwgSW5jLiwgaGVyZWJ5IGRpc2NsYWltcyBhbGwgY29weXJpZ2h0IGludGVyZXN0IGluIHRoZSBwcm9ncmFtCiAgYEdub21vdmlzaW9uJyAod2hpY2ggbWFrZXMgcGFzc2VzIGF0IGNvbXBpbGVycykgd3JpdHRlbiBieSBKYW1lcyBIYWNrZXIuCgogIDxzaWduYXR1cmUgb2YgVHkgQ29vbj4sIDEgQXByaWwgMTk4OQogIFR5IENvb24sIFByZXNpZGVudCBvZiBWaWNlCgpUaGlzIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZG9lcyBub3QgcGVybWl0IGluY29ycG9yYXRpbmcgeW91ciBwcm9ncmFtIGludG8KcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdSBtYXkKY29uc2lkZXIgaXQgbW9yZSB1c2VmdWwgdG8gcGVybWl0IGxpbmtpbmcgcHJvcHJpZXRhcnkgYXBwbGljYXRpb25zIHdpdGggdGhlCmxpYnJhcnkuICBJZiB0aGlzIGlzIHdoYXQgeW91IHdhbnQgdG8gZG8sIHVzZSB0aGUgR05VIExlc3NlciBHZW5lcmFsClB1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLgo=";}}