MjAwNi0xMi0yMyAgS2F6dSBIaXJhdGEgIDxrYXp1QGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWd1cmUudGd0OiBSZWNvZ25pemUgZmlkby4KCjIwMDYtMTItMTggIFBlZHJvIEFsdmVzICA8cGVkcm9fYWx2ZXNAcG9ydHVnYWxtYWlsLnB0PgoKCSogcGUtZGxsLmMgKHBlX2JmZF9pc19kbGwpOiBOZXcgZnVuY3Rpb24uCgkqIHBlLWRsbC5oIChwZV9iZmRfaXNfZGxsKTogRGVjbGFyZS4KCSogZW11bHRlbXBsL3BlLmVtIChnbGRfJHtFTVVMQVRJT05fTkFNRX1fcmVjb2duaXplZF9maWxlKTogUmVjb2duaXplCglkbGxzIHVzaW5nIHBlX2JmZF9pc19kbGwgaW5zdGVhZCBvZiB1c2luZyB0aGUgZmlsZW5hbWUgZXh0ZW5zaW9uLgoKMjAwNi0xMi0xNSAgVWxyaWNoIFdlaWdhbmQgIDx1d2VpZ2FuZEBkZS5pYm0uY29tPgoKCSogY29uZmlndXJlLnRndCAoTkFUSVZFX0xJQl9ESVJTKTogU3BlY2lmeSBmb3Igc3B1LSotZWxmKi4KCjIwMDYtMTItMTIgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5hbSAobGRfVEVYSU5GT1MpOiBTZXQuCgkobGQuaW5mbyBsZC5kdmkgbGQuaHRtbCk6IERlbGV0ZSBydWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgoyMDA2LTEyLTEyICBJbmEgUGFuZGl0ICA8aW5hcEBrcGl0Y3VtbWlucy5jb20+CgoJKiBsZGxhbmcuYyAocHJpbnRfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50KTogUHJpbnQgbG9hZCBhZGRyZXNzCgl3aGVuIGxtYSBkaWZmZXJzIGZyb20gdm1hLgoKMjAwNi0xMi0xMSAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZ3VyZS5pbjogRGVmaW5lIEdFTklOU1JDX05FVkVSLgoJKiBkb2MvTWFrZWZpbGUuYW0gKGxkLmluZm8pOiBSZW1vdmUgc3JjZGlyIHByZWZpeC4KCShNQUlOVEFJTkVSQ0xFQU5GSUxFUyk6IEFkZCBpbmZvIGZpbGUuCgkoRElTVENMRUFORklMRVMpOiBQcmV0ZW5kIHRvIGFkZCBpbmZvIGZpbGUuCgkqIHBvL01ha2UtaW4gKC5wby5nbW8pOiBQdXQgZ21vIGZpbGVzIGluIG9iamRpci4KCSogY29uZmlndXJlLCBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZWQuCgoyMDA2LTEyLTA0ICBKYW4gQmV1bGljaCAgPGpiZXVsaWNoQG5vdmVsbC5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCR7RU1VTEFUSU9OX05BTUV9X2FmdGVyX29wZW4pOiBDcmVhdGUKCS5laF9mcmFtZV9oZHIgc2VjdGlvbiBoZXJlLgoKMjAwNi0xMS0yNyAgSWFuIExhbmNlIFRheWxvciAgPGlhbkBhaXJzLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChFWFRSQV9ESVNUKTogUHV0IHNwdV9vdmwubyBpbiB0aGUgZW11bHRlbXBsCglzdWJkaXJlY3RvcnkuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwNi0xMS0yNyAgQm9iIFdpbHNvbiAgPGJvYi53aWxzb25AYWNtLm9yZz4KCgkqIGVtdWx0ZW1wbC94dGVuc2FlbGYuZW0gKFhTSEFMX0FCSSk6IEFkZCBkZWZhdWx0IGRlZmluaXRpb24uCgkocmVwbGFjZV9pbnNuX3NlY193aXRoX3Byb3Bfc2VjKTogVXNlIGJmZF9tYWtlX3NlY3Rpb25fd2l0aF9mbGFncy4KCURlbGV0ZSByZWR1bmRhbnQgY29kZSB0byBzZXQgc2VjdGlvbnMgZmxhZ3MgYW5kIGFsaWdubWVudC4KCSh4dF9jb25maWdfaW5mb191bnBhY2tfYW5kX2NoZWNrLCBjaGVja194dGVuc2FfaW5mbyk6IE5ldy4KCShlbGZfeHRlbnNhX2FmdGVyX29wZW4pOiBJdGVyYXRlIG92ZXIgaW5wdXQgc3RhdGVtZW50cyBpbnN0ZWFkIG9mCglsaW5rX2luZm8uaW5wdXRfYmZkcy4KCShlbGZfeHRlbnNhX2JlZm9yZV9hbGxvY2F0aW9uKTogTGlrZXdpc2UuICBDYWxsIGNoZWNrX3h0ZW5zYV9pbmZvIGZvcgoJZWFjaCBpbnB1dCwgYW5kIHdyaXRlIGEgbmV3IC54dGVuc2EuaW5mbyBzZWN0aW9uIGluIHRoZSBvdXRwdXQuCgoyMDA2LTExLTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogY29uZmlndXJlLmluIChMSU5HVUFTKTogQWRkIGdhLgoJKiBwby9nYS5wbzogTmV3IElyaXNoIHRyYW5zbGF0aW9uLgoKMjAwNi0xMS0yMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCSogbGQudGV4aW5mbzogRml4IGEgdHlwby4KCjIwMDYtMTEtMjAgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBlbXVscGFyYW1zL2VsZjMyX3NwdS5zaCAoT1RIRVJfU0VDVElPTlMpOiBEZWZpbmUuCgoyMDA2LTExLTEzICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogZW11bHRlbXBsL2FybWVsZi5lbSAoYXJtX2VsZl9iZWZvcmVfYWxsb2NhdGlvbik6IE9ubHkgY2FsbAoJYmZkX2VsZjMyX2FybV9wcm9jZXNzX2JlZm9yZV9hbGxvY2F0aW9uIGlmIG5vIGR5bmFtaWMgc2VjdGlvbnMuCgoyMDA2LTExLTA4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQqX2JlZm9yZV9hbGxvY2F0aW9uKTogQWRqdXN0IG91dHB1dCBzZWN0aW9uCglzaXplIGZvciB3YXJuaW5nIHNlY3Rpb25zLgoKMjAwNi0xMS0wNiAgVmxhZGltaXIgUHJ1cyAgPHZsYWRpbWlyQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKGdsZCpfYmVmb3JlX2FsbG9jYXRpb24pOiBEb24ndCBwcmVwZW5kCgkid2FybmluZyIgdG8gdGhlIG1lc3NhZ2UuCgoyMDA2LTEwLTMxICBQZWRybyBBbHZlcyAgPHBlZHJvX2FsdmVzQHBvcnR1Z2FsbWFpbC5wdD4KCgkqIHBlLWRsbC5jIChhdXRvZmlsdGVyX2VudHJ5X3R5cGUpOiBDaGFuZ2UgbmFtZSB0byBjb25zdC4KCShwZV9kZXRhaWxzX3R5cGUpIDogQ2hhbmdlIHRhcmdldF9uYW1lLCBvYmplY3RfdGFyZ2V0IGFuZAoJYXV0b2ZpbHRlcl9zeW1ib2xsaXN0IHRvIGNvbnN0LgoJKGF1dG9maWx0ZXJfc3ltYm9sbGlzdF9nZW5lcmljKTogQ2hhbmdlIHRvIGNvbnN0LgoJKGF1dG9maWx0ZXJfc3ltYm9sbGlzdF9pMzg2LCBwZV9kZXRhaWxfbGlzdCwgcGVfZGV0YWlscywKCWF1dG9maWx0ZXJfbGlibGlzdCwgYXV0b2ZpbHRlcl9vYmpsaXN0IGF1dG9maWx0ZXJfc3ltYm9scHJlZml4bGlzdCwKCWF1dG9maWx0ZXJfc3ltYm9sc3VmZml4bGlzdCk6IExpa2V3aXNlLgoJKGlzX2ltcG9ydCk6IEZpeCBpbmRlbnRhdGlvbi4KCShhdXRvX2V4cG9ydCk6IENoYW5nZSBhZnB0ciB0byBjb25zdC4gIE1vdmUgbmFtZSBkZWNsYXJhdGlvbiB0bwoJYmVnaW5uaW5nIG9mIHNjb3BlLgoJKG1ha2VfdGFpbCk6IENsZWFyIHVuZGVmaW5lZCBieXRlLgoJKGptcF9peDg2X2J5dGVzLCBqbXBfc2hfYnl0ZXMsIGptcF9taXBzX2J5dGVzLCBqbXBfYXJtX2J5dGVzKTogQ2hhbmdlCgl0byBjb25zdC4KCShtYWtlX29uZSk6IENoYW5nZSBqbXBfYnl0ZXMgdG8gY29uc3QuICBNYWtlIGlkYXRhJDYgbWVtYmVyIHNpemUKCWFyaXRobWV0aWMgZXhwbGljaXQgYW5kIGFkZCBjb21tZW50LgoKMjAwNi0xMC0zMCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGxkLzMxMTEKCSogbGQuaCAoYXJnc190eXBlKTogUmVtb3ZlIHJlZHVjZV9tZW1vcnlfb3ZlcmhlYWRzLgoKCSogbGRsYW5nLmMgKGxhbmdfbWFwKTogVXBkYXRlZC4KCShzZWN0aW9uX2FscmVhZHlfbGlua2VkKTogTGlrZXdpc2UuCgkocHJpbnRfaW5wdXRfc2VjdGlvbik6IExpa2V3aXNlLgoJKiBsZG1haW4uYyAobWFpbik6IExpa2V3aXNlLgoJKiBsZXhzdXAuYyAocGFyc2VfYXJncyk6IExpa2V3aXNlLgoKMjAwNi0xMC0yOSAgUGVkcm8gQWx2ZXMgIDxwZWRyb19hbHZlc0Bwb3J0dWdhbG1haWwucHQ+CgoJKiBwZS1kbGwuYyAobWFrZV9zaW5nbGV0b25fbmFtZV90aHVuayk6IFJlLWFkZCB0aGUgTlVMTCB0ZXJtaW5hdG9yLgoKMjAwNi0xMC0yNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChsYW5nX21hcCk6IERvbid0IHNheSBTRUNfTElOS0VSX0NSRUFURUQgYW5kIFNFQ19LRUVQCglzZWN0aW9ucyBoYXZlIGJlZW4gZGlzY2FyZGVkLgoJKGxhbmdfZG9fdmVyc2lvbl9leHBvcnRzX3NlY3Rpb24pOiBTZXQgU0VDX0tFRVAgb24gZXhwb3J0IHNlY3Rpb24uCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoYmVmb3JlX2FsbG9jYXRpb24pOiBTZXQgU0VDX0tFRVAgb24gd2FybmluZwoJc2VjdGlvbnMuCgoyMDA2LTEwLTI2ICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KICAgICAgICAgICAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGNvbmZpZ3VyZS50Z3QgKGFybSpsaW51eCopOiBTdXBwb3J0IGJvdGggYmlnLSBhbmQgbGl0dGxlLWVuZGlhbi4KCjIwMDYtMTAtMjUgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVtdWxwYXJhbXMvaHBwYTY0bGludXguc2ggKExBUkdFX1NFQ1RJT05TKTogUmVuYW1lZCB0byAuLi4KCShPVEhFUl9CU1NfU0VDVElPTlMpOiBUaGlzLgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2MgKE9USEVSX0JTU19TRUNUSU9OUyk6IFN1cHBvcnQgTEFSR0VfU0VDVElPTlMuCgkoTEFSR0VfU0VDVElPTlMpOiBNb3ZlIC5sYnNzIHNlY3Rpb25zIHRvIE9USEVSX0JTU19TRUNUSU9OUy4KCjIwMDYtMTAtMjUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgkgICAgVHJldm9yIFNtaWdpZWwgIDxUcmV2b3JfU21pZ2llbEBwbGF5c3RhdGlvbi5zb255LmNvbT4KCSAgICBZdWtpc2hpZ2UgU2hpYmF0YSAgPHNoaWJhdGFAcmQuc2NlaS5zb255LmNvLmpwPgoJICAgIE5vYnVoaXNhIEZ1amluYW1pICA8Zm5hbWlAcmQuc2NlaS5zb255LmNvLmpwPgoJICAgIFRha2Vha2kgRnVrdW9rYSAgPGZ1a3Vva2FAcmQuc2NlaS5zb255LmNvLmpwPgoKCSogZW11bHBhcmFtcy9lbGYzMl9zcHUuc2g6IE5ldyBmaWxlLgoJKiBlbXVsdGVtcGwvc3B1X2luYy5zOiBOZXcgZmlsZS4KCSogZW11bHRlbXBsL3NwdV9vdmwuUzogTmV3IGZpbGUuCgkqIGVtdWx0ZW1wbC9zcHVfb3ZsLm86IE5ldyBmaWxlLgoJKiBlbXVsdGVtcGwvc3B1ZWxmLmVtOiBOZXcgZmlsZS4KCSogTWFrZWZpbGUuYW06IEFkZCBTUFUgc3VwcG9ydC4KCSogY29uZmlndXJlLnRndDogTGlrZXdpc2UuCgkqIGxkbGFuZy5jIChsb2FkX3N5bWJvbHMpOiBNYWtlIGdsb2JhbC4KCSogbGRsYW5nLmggKGxvYWRfc3ltYm9scyk6IERlY2xhcmUuCgkqIHNjcmlwdHRlbXBsL2VsZi5zYyAoT1RIRVJfQlNTX1NFQ1RJT05TKTogQWRkLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDYtMTAtMjQgIEJlbiBFbGxpc3RvbiAgPGJqZUBhdS5pYm0uY29tPgoKCSogbGV4c3VwLmMgKHBhcnNlX2FyZ3MpOiBBZGQgYSBjb21tZW50IG5vdGluZyBhIGZhbGwtdGhyb3VnaC4KCjIwMDYtMTAtMjQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGNvbmZpZ3VyZS5pbiAoQUNfQ0hFQ0tfSEVBREVSUyk6IEFkZCBsaW1pdHMuaCBhbmQgc3lzL3BhcmFtLmguCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZWQuCgkqIGNvbmZpZy5pbjogTGlrZXdpc2UuCgoyMDA2LTEwLTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHBhcmFtcy9oODMwMGVsZi5zaCAoVElOWV9EQVRBX1NFQ1RJT04sIFRJTllfQlNTX1NFQ1RJT04pOiBEb24ndAoJc2V0IHNlY3Rpb24gYWRkcmVzcyBvbiBhIHJlbG9jYXRhYmxlIGxpbmsuCgoJKiBsZC50ZXhpbmZvIChPdXRwdXQgU2VjdGlvbiBEaXNjYXJkaW5nKTogRml4IHhyZWYuCgoyMDA2LTEwLTIxICBLYXogS29qaW1hICA8a2tvamltYUByci5paWo0dS5vci5qcD4KCgkqIGVtdWxwYXJhbXMvc2hlbGYzMi5zaDogU2V0IGRlZmF1bHQgc3RhY2sgdG8gMHg4MDAwMC4KCSogZW11bHBhcmFtcy9zaGVsZjY0LnNoOiBMaWtld2lzZS4KCjIwMDYtMTAtMjAgIFJpY2hhcmQgU2FuZGlmb3JkICA8cmljaGFyZEBjb2Rlc291cmNlcnkuY29tPgoKCSogZW11bHBhcmFtcy9lbGYzMmJtaXAuc2ggKE9USEVSX0dPVF9SRUxPQ19TRUNUSU9OUyk6IERlZmluZS4KCSogZW11bHBhcmFtcy9lbGYzMmJtaXBuMzItZGVmcy5zaCAoT1RIRVJfR09UX1JFTE9DX1NFQ1RJT05TKTogTGlrZXdpc2UuCgoyMDA2LTEwLTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2FybWVsZi5lbSAoYXJtX2VsZl9iZWZvcmVfYWxsb2NhdGlvbik6IFJ1bgoJZ2xkJHtFTVVMQVRJT05fTkFNRX1fYmVmb3JlX2FsbG9jYXRpb24gbGF0ZXIuCgkqIGxkbGFuZy5jIChsYW5nX3NpemVfc2VjdGlvbnNfMSk6IFJldmVydCAyMDA2LTA5LTE1IGNoYW5nZS4KCjIwMDYtMTAtMTggIFJveSBNYXJwbGVzICA8dWJlcmxvcmRAZ2VudG9vLm9yZz4KCgkqIGVtdWxwYXJhbXMvZWxmNjRfc3BhcmNfZmJzZC5zaCAoT1VUUFVUX0ZPUk1BVCk6IERlZmluZSBhcwoJZWxmNjQtc3BhcmMtZnJlZWJzZC4KCjIwMDYtMTAtMTggIEpvc2VwaCBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlndXJlLnRndCAoaVszLTddODYtKi1saW51eC0qKTogQWxzbyBkZWZpbmUKCXRhcmdfZXh0cmFfbGlicGF0aCBpbiB3YW50NjQgY2FzZS4KCSogZW11bHBhcmFtcy9lbGZfeDg2XzY0LnNoOiBIYW5kbGUgaVszLTddODYtKi1saW51eC0qIHRoZSBzYW1lIGFzCgl4ODZfNjQqLWxpbnV4Ki4KCjIwMDYtMTAtMTcgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBzY3JpcHR0ZW1wbC9lbGYuc2MgKElOVEVSUCk6IERlbGV0ZS4gIE1vdmUgZGVmaW5pdGlvbiB0by4uCgkoSU5JVElBTF9SRUFET05MWV9TRUNUSU9OUyk6IC4uaGVyZS4KCSogZW11bHBhcmFtcy9jcmlzZWxmLnNoIChJTklUSUFMX1JFQURPTkxZX1NFQ1RJT05TKTogSW5jbHVkZSAuaW50ZXJwLgoJKiBlbXVscGFyYW1zL2VsZjMyYm1pcC5zaCAoSU5JVElBTF9SRUFET05MWV9TRUNUSU9OUyk6IERpdHRvLgoJKiBlbXVscGFyYW1zL2VsZjMyYm1pcG4zMi1kZWZzLnNoIChJTklUSUFMX1JFQURPTkxZX1NFQ1RJT05TKTogRGl0dG8uCgoyMDA2LTEwLTE3ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmMgKHN0cmlwX2V4Y2x1ZGVkX291dHB1dF9zZWN0aW9ucyk6IERvIHN0cmlwIHNlY3Rpb25zCgl0aGF0IGRlZmluZSBzeW1zLCBidXQgZG9uJ3QgaWdub3JlIHRoZW0uCgkqIGxkLnRleGluZm8gKE91dHB1dCBTZWN0aW9uIERpc2NhcmRpbmcpOiBSZXZpc2UuCgkqIGVtdWx0ZW1wbC9hcm1jb2ZmLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9maW5pc2gpOiBBbHdheXMgY2FsbAoJZmluaXNoX2RlZmF1bHQuCgoyMDA2LTEwLTE2ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJpY2hhcmRAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChlZWxmNjRibWlwLmMpOiBEZXBlbmQgb24gZW11bHBhcmFtcy9lbGY2NGJtaXAtZGVmcy5zaC4KCShlZWxmNjRidHNtaXAuYywgZWVsZjY0bHRzbWlwLmMpOiBMaWtld2lzZS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwbjMyLWRlZnMuc2ggKElOSVRJQUxfUkVBRE9OTFlfU0VDVElPTlMpOiBJbmNsdWRlCgkucmVnaW5mbyByYXRoZXIgdGhhbiAuTUlQUy5vcHRpb25zLgoJKiBlbXVscGFyYW1zL2VsZjY0Ym1pcC1kZWZzLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9lbGY2NGJtaXAuc2g6IEluY2x1ZGUgaXQuCgkoQ09NTU9OUEFHRVNJWkUpOiBEZWxldGUuCgkqIGVtdWxwYXJhbXMvZWxmNjRidHNtaXAuc2g6IEFzIGZvciBlbGY2NGJtaXAuc2guCgoyMDA2LTEwLTEyICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZW11bHRlbXBsL3h0ZW5zYWVsZi5lbSAoaXNfaW5jb25zaXN0ZW50X2xpbmtvbmNlX3NlY3Rpb24pOiBDaGVjawoJZm9yIGxpbmtvbmNlIFhDQyBleGNlcHRpb24gdGFibGVzICgiLmUiIGFuZCAiLmgiKS4KCjIwMDYtMTAtMTEgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbXVscGFyYW1zL2VsZjMyeHRlbnNhLnNoIChURVhUX1BMVCk6IEVuYWJsZS4KCShPVEhFUl9SRUFET05MWV9TRUNUSU9OUyk6IEFkZCBsaW5rb25jZSAueHRfZXhjZXB0X3RhYmxlIHNlY3Rpb25zLgoJKE9USEVSX1JFQURXUklURV9TRUNUSU9OUyk6IEFkZCBsaW5rb25jZSAueHRfZXhjZXB0X2Rlc2Mgc2VjdGlvbnMuCgkoT1RIRVJfU0RBVEFfU0VDVElPTlMpOiBOZXcuCgkqIHNjcmlwdHRlbXBsL2VsZnh0ZW5zYS5zYzogSW1wb3J0IGNoYW5nZXMgZnJvbSBlbGYuc2MuCgoyMDA2LTEwLTExICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX2FwcGVuZF9keW5hbWljX2xpc3QpOiBXaGVuIGFwcGVuZGluZywgYWRkIGFsbCBlbGVtZW50cwoJb2YgdGhlIGR5bmFtaWMgbGlzdCByYXRoZXIgdGhhbiBqdXN0IHRoZSBmaXJzdCBlbnRyeS4KCjIwMDYtMTAtMTAgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbXVscGFyYW1zL2VsZjMyeHRlbnNhLnNoIChHRU5FUkFURV9QSUVfU0NSSVBUKTogRW5hYmxlLgoKMjAwNi0xMC0wNiAgTWlrZSBGcnlzaW5nZXIgIDx2YXBpZXJAZ2VudG9vLm9yZz4KCgkqIGdlbnNjcmlwdHMuc2g6IFJlc3BlY3QgTElCUEFUSF9TVUZGSVggd2hlbiBub3QgdXNpbmcgc3lzcm9vdC4KCjIwMDYtMTAtMDQgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbXVscGFyYW1zL3h0ZW5zYS1jb25maWcuc2g6IERlbGV0ZSBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZjMyeHRlbnNhLnNoOiBTZXQgTUFYUEFHRVNJWkUgaGVyZSBpbnN0ZWFkIG9mIGluY2x1ZGluZwoJeHRlbnNhLWNvbmZpZy5zaC4KCSogTWFrZWZpbGUuYW0gKGVlbGYzMnh0ZW5zYS5jKTogUmVtb3ZlIGRlcGVuZGVuY3kgb24geHRlbnNhLWNvbmZpZy5zaC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA2LTEwLTAzICBQZWRybyBBbHZlcyAgPHBlZHJvX2FsdmVzQHBvcnR1Z2FsbWFpbC5wdD4KCgkqIHBlLWRsbC5jIDogRml4IHR5cG8uCgkoYXV0b2ZpbHRlcl9zeW1ib2xwcmVmaXhsaXN0KSA6IFJlbW92ZSBfX2ltcF8uCgkoaXNfaW1wb3J0KSA6IE5ldy4KCShhdXRvLWV4cG9ydCkgOiBSZW1vdmUgIHJlLWltcG9ydCBjaGVjay4gTW92ZWQgdG8gY2FsbGVycy4KCShwcm9jZXNzX2RlZl9maWxlKSA6IENoZWNrIGlzIHN5bWJvbCBpcyBhbiBpbXBvcnQuIEFsd2F5cwoJdW5kZXJzY29yZSBfX2ltcF8uCglPbmx5IHNraXAgdW5kZXJzY29yZSBvbiB1bmRlcnNjb3JlZCB0YXJnZXRzLgoJKG1ha2Vfb25lKSA6IEFsd2F5cyB1bmRlcnNjb3JlIF9faW1wXy4KCShwZV9jcmVhdGVfcnVudGltZV9yZWxvY2F0b3JfcmVmZXJlbmNlKSA6IE9ubHkgdW5kZXJzY29yZQoJX3BlaTM4Nl9ydW50aW1lX3JlbG9jYXRvciBvbiB1bmRlcnNjb3JlZCB0YXJnZXRzLgoJKHBlX3Byb2Nlc3NfaW1wb3J0X2RlZnMpIDogQWx3YXlzIHVuZGVyc2NvcmUgX19pbXBfLgoJKiBwZS5lbSAoVSkgOiBOZXcgbWFjcm8uCgkoc2V0X3BlX3N1YnN5c3RlbSkgOiBSZW1vdmUgdW5kZXJzY29yZSBmcm9tIF9XaW5NYWluQ1JUU3RhcnR1cAoJb24gd2luY2Ugc3Vic3lzdGVtIGNhc2UuCgkocGVfZmluZF9kYXRhX2ltcG9ydHMpIDogVXNlIFUgb24gIl9oZWFkXyIuCgkoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X3VucmVjb2duaXplZF9maWxlKSA6IFVzZSBVLgoKMjAwNi0wOS0yNiAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGxkLzMyMjMKCVBSIGxkLzMyNjcKCSogbGQudGV4aW5mbzogVXBkYXRlZCBPdXRwdXQgU2VjdGlvbiBEaXNjYXJkaW5nLgoKCSogbGRsYW5nLmggKGxhbmdfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50X3R5cGUpOiBBZGQKCXNlY3Rpb25fcmVsYXRpdmVfc3ltYm9sLgoJKiBsZGxhbmcuYyAoc3RyaXBfZXhjbHVkZWRfb3V0cHV0X3NlY3Rpb25zKTogRG9uJ3Qgc3RyaXAgYQoJc2VjdGlvbiB3aXRoIGEgc3ltYm9sIHJlbGF0aXZlIHRvIGl0LgoJKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogTWFyayBpZiBhbiBvdXRwdXQgc2VjdGlvbiBoYXMgYSBzeW1ib2wKCXN5bWJvbCByZWxhdGl2ZSB0byBpdC4KCjIwMDYtMDktMjUgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBsZC50ZXhpbmZvIChPcHRpb25zKTogVXBkYXRlIGRlc2NyaXB0aW9uIG9mIGxvY2FsIHN5bWJvbHMgZm9yIC1YLgoKMjAwNi0wOS0yMyAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGxkLzMyNDkKCSogc2NyaXB0dGVtcGwvZWxmLnNjOiBEb24ndCBjb21iaW5lIC5nbnUubGlua29uY2UuZC4qcGVyc29uYWxpdHkqCglhbmQgLmdudS5saW5rb25jZS53aS4qIHNlY3Rpb25zIHdpdGggLmRhdGEgYW5kIC5kZWJ1Z19pbmZvIGZvcgoJcmVsb2NhdGFibGUgbGluay4KCjIwMDYtMDktMjAgIEthaSBUaWV0eiAgPEthaS5UaWV0ekBvbmV2aXNpb24uY29tPgoKCSogY29uZmlndXJlLmluOiBBZGQgbmV3IHRhcmdldCB4ODZfNjQtcGMtbWluZ3c2NC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0OiBBZGQgZGVmaW5pdGlvbiBvZiB0YXJnZXQgZW11bGF0aW9uIGkzODZwZXAuCgkqIE1ha2VmaWxlLmFtOiBBZGQgbmV3IHRhcmdldCBmaWxlcyBmb3IgdGFyZ2V0LWFsbC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIHBlLWRsbC5jOiBBZGp1c3QgdG8gYmUgaW5oZXJpdGFibGUgYnkgcGVwX2RsbC5jIGFzIGluY2x1ZGUuCglGaXggbWVtb3J5IG91dCBvZiBib3VuZHMgZXhjZXNzIGZvciBpZGF0YSByZWxvY2F0aW9uIHNlY3Rpb24gZGF0YS4KCSogcGVwLWRsbC5jOiBBZGQgdGFyZ2V0IHNwZWNpZmljIHNoYXJlZCBvYmplY3QgaGFuZGxpbmcuCgkqIHBlcC1kbGwuaDogQWRkIHRhcmdldCBzcGVjaWZpYyBkZWZpbml0aW9ucyBmb3Igc2hhcmVkIG9iamVjdCBoYW5kbGluZy4KCSogZW11bHBhcmFtcy9pMzg2cGVwLnNoOiBBZGQgbmV3IGVtdWxhdGlvbiBwYXJhbXMgZm9yIHRhcmdldCB4ODZfNjQgY29mZi4KCSogZW11bHRlbXBsL3BlcC5lbTogQWRkIG5ldyBlbXVsYXRpb24gZmlsZSBmb3IgdGFyZ2V0IHg4Nl82NCBjb2ZmLgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZS4KCSogc2NyaXB0dGVtcGwvcGVwLnNjOiBBZGQgbGlua2VyIHNjcmlwdCB0ZW1wbGF0ZSBmb3IgdGFyZ2V0IHg4Nl82NCBjb2ZmLgoJKiBORVdTOiBNZW50aW9uIG5ldyB0YXJnZXQuCgoyMDA2LTA5LTE4ICBUaGllbW8gU2V1ZmVyICA8dGhzQG5ldHdvcmtuby5kZT4KCgkqIGNvbmZpZ3VyZS50Z3Q6IEFkZCBtaXBzKmVsLXNkZS1lbGYqIGFuZCBtaXBzKi1zZGUtZWxmKgoJY29uZmlndXJhdGlvbnMuCgoyMDA2LTA5LTE3ICBNZWkgTGlnYW5nICA8bGlnYW5nQHN1bm5vcnRoLmNvbS5jbj4KCgkqIGVtdWxwYXJhbXMvc2NvcmVlbGYuc2g6IE5ldyBmaWxlLgoJKiBlbXVsdGVtcGwvc2NvcmVlbGYuZW06IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5hbTogQWRkIFNjb3JlIGZpbGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndDogQWRkIFNjb3JlIHRhcmdldC4KCSogTkVXUzogTWVudGlvbiBuZXcgdGFyZ2V0IHN1cHBvcnQuCgoyMDA2LTA5LTE2ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoJICAgIFBlZHJvIEFsdmVzICA8cGVkcm9fYWx2ZXNAcG9ydHVnYWxtYWlsLnB0PgoKCSogbGRjdG9yLmM6IE1ha2UgdXNlIG9mIG5ldyBTVFJJTkdfQ09NTUFfTEVOIGFuZCBDT05TVF9TVFJORVEKCW1hY3JvcyBkZWZpbmVkIGluIGJmZC5oLgoJKiBsZG1haW4uYzogTGlrZXdpc2UuCgkqIGxkd3JpdGUuYzogTGlrZXdpc2UuCgkqIGxleHN1cC5jOiBMaWtld2lzZS4KCSogcGUtZGxsLmM6IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvYWl4LmVtOiBMaWtld2lzZS4KCSogZW11bHRlbXBsL2Jlb3MuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvcGUuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwvc3Vub3MuZW06IExpa2V3aXNlLgoJKiBlbXVsdGVtcGwveHRlbnNhZWxmLmVtOiBMaWtld2lzZS4KCjIwMDYtMDktMTUgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJUFIgbGQvMzEwNwoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zXzEpOiBEbyBub3QgYWJvcnQgd2hlbiBlbmNvdW50ZXJpbmcKCWEgbm9uLWVtcHR5IHNlY3Rpb24gdGhhdCBpcyBpZ25vcmVkLiAgSW5zdGVhZCBwcm9kdWNlIGEgd2FybmluZwoJbWVzc2FnZS4KCjIwMDYtMDktMDggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGxkLnRleGluZm86IERvY3VtZW50IC0tZHluYW1pYy1saXN0LWNwcC10eXBlaW5mby4KCjIwMDYtMDktMDcgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIE1ha2VmaWxlLmFtIChDWFgpOiBTZXQgdG8gZysrLgoJKENYWF9GT1JfVEFSR0VUKTogTGlrZXdpc2UuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlZC4KCgkqIE5FV1M6IE1lbnRpb24gLS1keW5hbWljLWxpc3QuCgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCAtLWR5bmFtaWMtbGlzdC4KCgkqIGxkZ3JhbS55OiBTdXBwb3J0IGR5bmFtaWMgbGlzdC4KCgkqIGxkbGFuZy5jIChsYW5nX3Byb2Nlc3MpOiBDYWxsIGxhbmdfZmluYWxpemVfdmVyc2lvbl9leHByX2hlYWQKCW9uIGxpbmtfaW5mby5keW5hbWljIGlmIG5lZWRlZC4KCShsYW5nX2FwcGVuZF9keW5hbWljX2xpc3QpOiBOZXcuCgkobGFuZ19hcHBlbmRfZHluYW1pY19saXN0X2NwcF90eXBlaW5mbyk6IE5ldy4KCSogbGRsYW5nLmggKGxhbmdfYXBwZW5kX2R5bmFtaWNfbGlzdCk6IExpa2V3aXNlLgoJKiBsZGxhbmcuaCAobGFuZ19hcHBlbmRfZHluYW1pY19saXN0X2NwcF90eXBlaW5mbyk6IExpa2V3aXNlLgoKCSogbGRsZXguaCAoaW5wdXRfZW51bSk6IEFkZCBpbnB1dF9keW5hbWljX2xpc3QuCgkqIGxkbGV4Lmw6IEhhbmRsZSBpdC4KCgkqIGxkbWFpbi5jIChtYWluKTogSW5pdGlhbGl6ZSBsaW5rX2luZm8uZHluYW1pYy4KCgkqIGxleHN1cC5jIChvcHRpb25fdmFsdWVzKTogQWRkIE9QVElPTl9EWU5BTUlDX0xJU1QgYW5kCglPUFRJT05fRFlOQU1JQ19MSVNUX0NQUF9UWVBFSU5GTy4KCShsZF9vcHRpb25zKTogQWRkIGVudHJpZXMgZm9yIE9QVElPTl9EWU5BTUlDX0xJU1QgYW5kCglPUFRJT05fRFlOQU1JQ19MSVNUX0NQUF9UWVBFSU5GTy4KCShwYXJzZV9hcmdzKTogSGFuZGxlIE9QVElPTl9EWU5BTUlDX0xJU1QgYW5kCglPUFRJT05fRFlOQU1JQ19MSVNUX0NQUF9UWVBFSU5GTy4KCjIwMDYtMDktMDcgIEpvZWwgU2hlcnJpbGwgPGpvZWwuc2hlcnJpbGxAb2FyY29ycC5jb20+CgoJKiBlbXVscGFyYW1zL2g4MzAwZWxmLnNoOiBfdGlueWRhdGEgc2hvdWxkIG5vdCBiZSBwbGFjZWQgaW4KCXJlbG9jYXRhYmxlcy4KCSogZW11bHBhcmFtcy9oODMwMC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvaDgzMDBzeGVsZi5zaDogTGlrZXdpc2UuCgoyMDA2LTA5LTA1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJUFIgbGQvMzAxNQoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IEVuYWJsZSAiLXogcmVscm8iIG9ubHkgaWYgJENPTU1PTlBBR0VTSVpFCglpcyBkZWZpbmVkLgoKMjAwNi0wOC0yOSAgTmF0aGFuIFNpZHdlbGwgIDxuYXRoYW5AY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxkbGFuZy5jICh3YWxrX3dpbGQpOiBBbGxvdyAqIHRvIGdsb2IgJy8nIGluIHdpbGRjYXJkZWQgbWF0Y2guCgoyMDA2LTA4LTI4ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjOiBFbnN1cmUgdGhhdCBjcnRiZWdpbiBhbmQgY3J0ZW5kIGVudHJpZXMgd2lsbAoJbm90IG1hdGNoIHJhbmRvbSBvYmplY3QgZmlsZXMgaW4gYSBwYXRoIGNvbnRhaW5pbmcgImNydGJlZ2luIiBvcgoJImNydGVuZCIgYXMgcGFydCBvZiBhIGRpcmVjdG9yeSBuYW1lLgoJKiBzY3JpcHR0ZW1wbC9hcm1icGFiaS5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2NyaXNhb3V0LnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmMzJjcnguc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGYzMnNoLXN5bWJpYW4uc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZfY2hhb3Muc2M6IExpa2V3aXNlLgoJKiBzY3JpcHR0ZW1wbC9lbGZkMTB2LnNjOiBMaWtld2lzZS4KCSogc2NyaXB0dGVtcGwvZWxmZDMwdi5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2VsZnh0ZW5zYS5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL2lxMjAwMC5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL21tby5zYzogTGlrZXdpc2UuCgkqIHNjcmlwdHRlbXBsL3hzdG9ybXkxNi5zYzogTGlrZXdpc2UuCgoyMDA2LTA4LTI0ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZW11bHBhcmFtcy9lbGYzMnh0ZW5zYS5zaCAoLnh0LnByb3ApOiBBZGQgLnh0LnByb3AuKi4KCSogc2NyaXB0dGVtcGwvZWxmeHRlbnNhLnNjICgudGV4dCk6IEFkZCAubGl0ZXJhbC4qLgoKMjAwNi0wOC0yNCAgUGVkcm8gQWx2ZXMgIDxwZWRyb19hbHZlc0Bwb3J0dWdhbG1haWwucHQ+CgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zXzEsIGxhbmdfYXNzaWdubWVudF9zdGF0ZW1lbnRfZW51bSk6CglBZGp1c3QgdGhlIGN1cnJlbnQgYWRkcmVzcyBvZiBERUZBVUxUX01FTU9SWV9SRUdJT04gZXZlbgoJd2hlbiBkb3QgaGFzbid0IGNoYW5nZWQuCgoyMDA2LTA4LTIzICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRleHAuYyAoZm9sZF9uYW1lIDxMT0FEQUREUj4pOiBSZXR1cm4gYW4gYWJzb2x1dGUgdmFsdWUKCXJhdGhlciB0aGFuIGEgc2VjdGlvbiByZWxhdGl2ZSB2YWx1ZS4KCjIwMDYtMDgtMjIgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBORVdTOiBNZW50aW9uIExNQSBkZWZhdWx0IGNoYW5nZS4KCSogbGQudGV4aW5mbyAoT3V0cHV0IFNlY3Rpb24gTE1BKTogVXBkYXRlIGRlZmF1bHQgZGVzY3JpcHRpb24uCgkoTG9jYXRpb24gQ291bnRlcik6IENsYXJpZnkgYmFja3dhcmQgbW92ZW1lbnQuCgkqIGxkbGFuZy5jIChsYW5nX3NpemVfc2VjdGlvbnNfMSk6IExlYXZlIG5vbi1hbGxvYyBzZWN0aW9ucyB3aXRoCglkZWZhdWx0IGxtYSBlcXVhbCB0byB2bWEuICBXYXJuIG9uIGJhY2t3YXJkIG1vdmVtZW50IG9mIGRvdC4KCjIwMDYtMDgtMjIgIFBlZHJvIEFsdmVzICA8cGVkcm9fYWx2ZXNAcG9ydHVnYWxtYWlsLnB0PgoKCSogY29uZmlndXJlLnRndDogU2V0IHRhcmdfZW11bCB0byBhcm1fd2luY2VfcGUgZm9yIEFSTQoJV2luZG93cyBDRSB0YXJnZXRzLgoKMjAwNi0wOC0yMiAgUGVkcm8gQWx2ZXMgIDxwZWRyb19hbHZlc0Bwb3J0dWdhbG1haWwucHQ+CgoJKiBNYWtlZmlsZS5hbTogU3BsaXQgYXJtLXdpbmNlIGludG8gaXRzIG93biBlbXVsYXRpb24uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwZS1kbGwuYyA6IERlZmluZSBQRV9BUkNIX2FybV93aW5jZS4KCShwZV9kZXRhaWxfbGlzdCk6IEFkZCBQRV9BUkNIX2FybV93aW5jZSBjYXNlLgoJKG1ha2Vfb25lKTogSGFuZGxlIFBFX0FSQ0hfYXJtX2Vwb2MgYW5kIFBFX0FSQ0hfYXJtX3dpbmNlIGNhc2VzLgoJKiBlbXVscGFyYW1zL2FybV93aW5jZV9wZS5zaDogTmV3IGZpbGUuCgkqIGVtdWx0ZW1wbC9wZS5lbTogSGFuZGxlIG5ldyBUQVJHRVRfSVNfYXJtX3dpbmNlX3BlIGRlZmluZS4KCVJlbWFwIGJmZF9hcm1fYWxsb2NhdGVfaW50ZXJ3b3JraW5nX3NlY3Rpb25zLAoJYmZkX2FybV9nZXRfYmZkX2Zvcl9pbnRlcndvcmtpbmcgYW5kCgliZmRfYXJtX3Byb2Nlc3NfYmVmb3JlX2FsbG9jYXRpb24gZm9yIGFybS1wZSBhbmQgYXJtLXdpbmNlLXBlCgl0YXJnZXRzIHRvby4KCShnbGRfJHtFTVVMQVRJT05fTkFNRX1fcmVjb2duaXplZF9maWxlKTogSGFuZGxlIGFybS13aW5jZSBhbmQKCWFybS1lcG9jIGJmZCBmb3JtYXQgbmFtZXMuCgoyMDA2LTA4LTE4ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZW11bHRlbXBsL2FybWVsZi5lbSAoYXJtX2VsZl9iZWZvcmVfYWxsb2NhdGlvbik6IENhbGwKCWdsZCR7RU1VTEFUSU9OX05BTUV9X2JlZm9yZV9hbGxvY2F0aW9uIGFmdGVyIHNldHRpbmcgaW50ZXJ3b3JraW5nIGJmZC4KCjIwMDYtMDgtMTcgIFBlZHJvIEFsdmVzICA8cGVkcm9fYWx2ZXNAcG9ydHVnYWxtYWlsLnB0PgoKCSogcGUtZGxsLmMgKGF1dG9maWx0ZXJfc3ltYm9scHJlZml4bGlzdCk6IFJlbW92ZSAuaWRhdGEkLgoJKGdlbmVyYXRlX3JlbG9jKTogUmV2ZXJ0IHRvIHNraXBwaW5nIHNlY3Rpb25zIHdpdGhvdXQgYSBTRUNfTE9BRCBmbGFnLAoJYW5kIHRvIG5vdCBza2lwcGluZyAuaWRhdGEqIHNlY3Rpb25zLgoKMjAwNi0wOC0xNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCglQUiAzMDUyCgkqIGxkbGFuZy5oIChsYW5nX291dHB1dF9zZWN0aW9uX3N0YXRlbWVudF90eXBlKTogUmVwbGFjZQoJInByb2Nlc3NlZCIgZmllbGQgd2l0aCAicHJvY2Vzc2VkX3ZtYSIgYW5kICJwcm9jZXNzZWRfbG1hIi4KCSogbGRsYW5nLmMgKGxhbmdfZG9fYXNzaWdubWVudHNfMSk6IE1vdmUgbG1hIHNldHRpbmcgY29kZS4uCgkobGFuZ19zaXplX3NlY3Rpb25zXzEpOiAuLnRvIGhlcmUuCgkobGFuZ19yZXNldF9tZW1vcnlfcmVnaW9ucyk6IEFkanVzdCBmb3IKCWxhbmdfb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50X3R5cGUgY2hhbmdlLgoJKiBsZGV4cC5jIChmb2xkX25hbWUpOiBMaWtld2lzZS4KCjIwMDYtMDgtMDggIFBldGVyIFMuIE1hemluZ2VyICA8cHMubUBnbXgubmV0PgoKCSogZW11bHBhcmFtcy9hcm1lbGYuc2ggKE1BWFBBR0VTSVpFKTogQ2hhbmdlZCB0bwoJIkNPTlNUQU5UIChNQVhQQUdFU0laRSkiLgoKMjAwNi0wOC0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGxkLzMwMDYKCSogbGRsYW5nLmMgKGxhbmdfc2VjdGlvbl9ic3RfdHlwZSk6IE1vdmVkIHRvIC4uLgoJKiBsZGxhbmcuaDogSGVyZS4KCgkqIGxkbGFuZy5oIChsYW5nX3dpbGRfc3RhdGVtZW50X3N0cnVjdCk6IEFkZCBhIHRyZWUgZmllbGQuCgoJKiBsZGxhbmcuYyAod2lsZF9zb3J0X2Zhc3QpOiBVc2UgdGhlIHRyZWUgZmllbGQgZm9yIEJTVC4KCSh3aWxkKTogTGlrZWlzZS4KCShhbmFseXplX3dhbGtfd2lsZF9zZWN0aW9uX2hhbmRsZXIpOiBJbml0aWFsaXplIHRoZSB0cmVlIGZpZWxkLgoKMjAwNi0wOC0wOCAgSC5KLiBMdSAgPGhvbmdqaXUubHVAaW50ZWwuY29tPgoKCVBSIGxkLzMwMDkKCSogbGRsYW5nLmMgKHVwZGF0ZV93aWxkX3N0YXRlbWVudHMpOiBVcGRhdGUgdGhlIHdob2xlIHdpbGQKCXNlY3Rpb24gbGlzdC4KCjIwMDYtMDgtMDQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgkgICAgTWlrZSBGcnlzaW5nZXIgIDxtaWNoYWVsLmZyeXNpbmdlckBhbmFsb2cuY29tPgoKCSogc2NyaXB0dGVtcGwvZWxmLnNjIChVU0VSX0xBQkVMX1BSRUZJWCk6IERlZmluZS4KCShfX3ByZWluaXRfYXJyYXlfc3RhcnQsIF9fcHJlaW5pdF9hcnJheV9lbmQsIF9faW5pdF9hcnJheV9zdGFydCwKCV9faW5pdF9hcnJheV9lbmQsIF9fZmluaV9hcnJheV9zdGFydCwgX19maW5pX2FycmF5X2VuZCwgZWRhdGEsIGVuZCk6CglVc2UgJHtVU0VSX0xBQkVMX1BSRUZJWH0uCgkqIGVtdWxwYXJhbXMvYmZpbi5zaCAoREFUQV9FTkRfU1lNQk9MUyxFTkRfU1lNQk9MUyk6IFVuc2V0LgoJKFVTRVJfTEFCRUxfUFJFRklYKTogU2V0LgoKMjAwNi0wOC0wNCAgTWFyY2VsbyBUb3NhdHRpICA8bWFyY2Vsb0BrdmFjay5vcmc+CgoJKiBsZG1haW4uYyAobWFpbik6IEluaXRpYWxpc2UgcHJpbnRfZ2Nfc2VjdGlvbnMgZmllbGQgb2YgbGlua19pbmZvCglzdHJ1Y3R1cmUuCgkqIGxleHN1cC5jOiBBZGQgLS1wcmludC1nYy1zZWN0aW9ucyBhbmQgLS1uby1wcmludC1nYy1zZWN0aW9ucwoJc3dpdGNoZXMuCgkqIGxkLnRleGluZm86IERvY3VtZW50IG5ldyBzd2l0Y2hlcy4KCSogTkVXUzogTWVudGlvbiBuZXcgc3dpdGNoZXMuCgoyMDA2LTA4LTA0ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJpY2hhcmRAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBLYXp1IEhpcmF0YSAgPGthenVAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBQaGlsIEVkd2FyZHMgIDxwaGlsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZXNoZWxmX3Z4d29ya3MubyBhbmQKCWVzaGxlbGZfdnh3b3Jrcy5vLgoJKGVzaGVsZl92eHdvcmtzLmMsIGVzaGxlbGZfdnh3b3Jrcy5jKTogTmV3IHJ1bGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlLnRndCAoc2gtKi12eHdvcmtzKTogVXNlIHNoZWxmX3Z4d29ya3MgYW5kCglzaGxlbGZfdnh3b3Jrcy4KCSogZW11bHBhcmFtcy9zaGVsZl92eHdvcmtzLnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9zaGxlbGZfdnh3b3Jrcy5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvdnh3b3Jrcy5zaCAoRklOSSk6IFByZWZpeCBfZXRleHQgd2l0aCAke1NZTVBSRUZJWH0uCgkoT1RIRVJfRU5EX1NZTUJPTFMpOiBMaWtld2lzZSBfZWhkci4KCShEQVRBX0VORF9TWU1CT0xTKTogTGlrZXdpc2UgX2VkYXRhLgoJKiBlbXVsdGVtcGwvdnh3b3Jrcy5lbSAodnh3b3Jrc19hZnRlcl9vcGVuKTogQ2hlY2sgd2hldGhlciBvdXRwdXRfYmZkCglpcyBpbmRlZWQgYW4gRUxGIGZpbGUgYmVmb3JlIGRlYWxpbmcgd2l0aCAtLWZvcmNlLWR5bmFtaWMuCgoyMDA2LTA4LTAyICBQZXRyIFNhbGluZ2VyICA8UGV0ci5TYWxpbmdlckBzZXpuYW0uY3o+CgoJUFIgYmludXRpbHMvMjk4MwoJKiBlbXVscGFyYW1zL2VsZl94ODZfNjRfZmJzZC5zaCAoT1VUUFVUX0ZPUk1BVCk6IERlZmluZSBhcwoJZWxmNjQteDg2LTY0LWZyZWVic2QuCgoyMDA2LTA4LTAxICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBsZGxhbmcuYyAoaW5pdF9vcyk6IEFkZCBmbGFncy4gUmVwbGFjZSBiZmRfbWFrZV9zZWN0aW9uIHdpdGgKCWJmZF9tYWtlX3NlY3Rpb25fd2l0aF9mbGFncy4KCShleHBfaW5pdF9vcyk6IFVwZGF0ZWQuCgkobGFuZ19hZGRfc2VjdGlvbik6IENhbGwgaW5pdF9vcyB3aXRoIGZsYWdzLgoJKG1hcF9pbnB1dF90b19vdXRwdXRfc2VjdGlvbnMpOiBMaWtld2lzZS4KCjIwMDYtMDctMjkgIFJpY2hhcmQgU2FuZGlmb3JkICA8cmljaGFyZEBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuYW0gKGVlbGYzMmI0MzAwLmMpOiBVcGRhdGUgZGVwZW5kZW5jaWVzLgoJKGVlbGYzMmJtaXAuYyk6IExpa2V3aXNlLgoJKGVlbGYzMmJzbWlwLmMpOiBMaWtld2lzZS4KCShlZWxmMzJidHNtaXAuYyk6IExpa2V3aXNlLgoJKGVlbGYzMmJ0c21pcG4zMi5jKTogTGlrZXdpc2UuCgkoZWVsZjMybHRzbWlwLmMpOiBMaWtld2lzZS4KCShlZWxmMzJsdHNtaXBuMzIuYyk6IExpa2V3aXNlLgoJKGVlbGYzMmVibWlwLmMpOiBMaWtld2lzZS4KCShlZWxmMzJlYm1pcHZ4d29ya3MuYyk6IExpa2V3aXNlLgoJKGVlbGYzMmVsbWlwLmMpOiBMaWtld2lzZS4KCShlZWxmMzJlbG1pcHZ4d29ya3MuYyk6IExpa2V3aXNlLgoJKGVlbGYzMmJtaXBuMzIuYyk6IExpa2V3aXNlLgoJKGVlbGYzMmxtaXAuYyk6IExpa2V3aXNlLgoJKGVlbGYzMm1pcHN3aW5kaXNzLmMpOiBMaWtld2lzZS4KCShlZWxmMzJsc21pcC5jKTogTGlrZXdpc2UuCgkoZWVsZjY0Ym1pcC5jKTogTGlrZXdpc2UuCgkoZWVsZjY0YnRzbWlwLmMpOiBMaWtld2lzZS4KCShlZWxmNjRsdHNtaXAuYyk6IExpa2V3aXNlLgoJKGVtaXBzYmlnLmMpOiBMaWtld2lzZS4gIENhbm9uaWNhbGl6ZSAke0dFTlNDUklQVFN9IGxpbmUuCgkoZW1pcHNic2QuYyk6IExpa2V3aXNlLgoJKGVtaXBzaWR0LmMpOiBVcGRhdGUgZGVwZW5kZW5jaWVzLgoJKGVtaXBzaWR0bC5jKTogTGlrZXdpc2UuCgkoZW1pcHNsaXQuYyk6IExpa2V3aXNlLgoJKGVtaXBzbG5ld3MuYyk6IExpa2V3aXNlLgoJKGVtaXBzcGUuYyk6IExpa2V3aXNlLiAgRml4ICR7R0VOU0NSSVBUU30gaW52b2NhdGlvbi4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwLnNoIChFWFRSQV9FTV9GSUxFKTogRGVmaW5lLgoJKiBlbXVscGFyYW1zL2VsZjMyYm1pcG4zMi1kZWZzLnNoIChFWFRSQV9FTV9GSUxFKTogTGlrZXdpc2UuCgkqIGVtdWx0ZW1wbC9pcml4LmVtOiBJbmNsdWRlIGVtdWx0ZW1wbC9taXBzZWxmLmVtLgoJKiBlbXVsdGVtcGwvbWlwc2VsZi5lbTogTmV3IGZpbGUuCgoyMDA2LTA3LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2VsZi1nZW5lcmljLmVtIChtYXBfc2VnbWVudHMpOiBSZW9yZ2FuaXNlIGxvb3Agc28gdGhhdAoJbGF5b3V0IGhhcHBlbnMgYmVmb3JlIHNlZ21lbnQgbWFwLiAgRG9uJ3QgZG8gc2VnbWVudCBtYXAgb24KCXJlbG9jYXRhYmxlIGxpbmsuCgoyMDA2LTA3LTI2ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRleHAuYyAoZm9sZF9uYW1lIDxMT0FEQUREUj4pOiBVc2UgdGhlIGxtYS4KCSogbGRsYW5nLmggKGxhbmdfbWVtb3J5X3JlZ2lvbl90eXBlKTogRGVsZXRlIG9sZF9sZW5ndGguICBBZGQKCWxhc3Rfb3MuCgkqIGxkbGFuZy5jIChsYW5nX21lbW9yeV9yZWdpb25fbG9va3VwKTogSW5pdCBuZXcgZmllbGQuCgkobGFuZ19yZXNldF9tZW1vcnlfcmVnaW9ucyk6IFJlc2V0IG5ldyBmaWVsZC4KCShsYW5nX2luc2VydF9vcnBoYW4pOiBEb24ndCBzZXQgbG9hZF9iYXNlLgoJKGxhbmdfbGVhdmVfb3ZlcmxheSk6IExpa2V3aXNlLgoJKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogRGVsZXRlIHVubmVjZXNzYXJ5IGNvZGUgc2V0dGluZyBsbWFfcmVnaW9uCgl0byByZWdpb24uICBDb3JyZWN0IGxtYSByZWdpb24gY2hlY2suCgkobGFuZ19kb19hc3NpZ25tZW50c18xKTogUmVuYW1lIG91dHB1dF9zZWN0aW9uX3N0YXRlbWVudCBwYXJtCgl0byBjdXJyZW50X29zLiAgU2V0IGxtYSBmcm9tIHByZXZpb3VzIHNlY3Rpb24gaW4gcmVnaW9uLgoKCSogbGRsYW5nLmM6IEZvcm1hdHRpbmcuCgoyMDA2LTA3LTI1ICBCb2IgV2lsc29uICA8Ym9iLndpbHNvbkBhY20ub3JnPgoKCSogZW11bHRlbXBsL3h0ZW5zYWVsZi5lbSAoeHRlbnNhX3N0cmlwX2luY29uc2lzdGVudF9saW5rb25jZV9zZWN0aW9ucyk6CglTZXQgZGlzY2FyZGVkIHNlY3Rpb24ncyBvdXRwdXRfc2VjdGlvbiB0byBiZmRfYWJzX3NlY3Rpb25fcHRyLgoKMjAwNi0wNy0yNiAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChhbmFseXplX3dhbGtfd2lsZF9zZWN0aW9uX2hhbmRsZXIpOiBJbml0IGhhbmRsZXJfZGF0YQoJZWFybGllci4KCjIwMDYtMDctMjQgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbXVsdGVtcGwveHRlbnNhZWxmLmVtIChpc19pbmNvbnNpc3RlbnRfbGlua29uY2Vfc2VjdGlvbik6IEFkZCBzcGFjZQoJaW4gZGVwX3NlY19uYW1lIGZvciBudWxsIHRlcm1pbmF0b3IuICBNYWtlIHN1cmUgZGVwX3NlY19uYW1lIGhhcyBhCgkiLnQiIGxpbmtvbmNlIHRhZy4KCjIwMDYtMDctMTQgIE1pY2hhZWwgV2V0aGVyZWxsICA8bWlrZS53ZXRoZXJlbGxAbnRsd29ybGQuY29tPgoKCSogZW11bHBhcmFtcy9lbGZfeDg2XzY0LnNoIChMSUJQQVRIX1NVRkZJWCwgRUxGX0lOVEVSUFJFVEVSX05BTUUpOgoJU2V0IGZvciAqLSotc29sYXJpczIqLgoKMjAwNi0wNy0yNCAgUmFsayBXaWxkZW5odWVzICA8UmFsZi5XaWxkZW5odWVzQGdteC5kZT4KCgkqIGxkLnRleGluZm86IEZpeCBzcGVsbGluZyBtaXN0YWtlcy4KCSogbGRpbnQudGV4aW5mbzogTGlrZXdpc2UuCgoyMDA2LTA3LTIzICBTb25hbCBTYW50YW4gIDxzb25hbC5zYW50YW5AeGlsaW54LmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX3NlY3Rpb25fYnN0KTogTmV3IHN0cnVjdHVyZSBmb3Igc29ydGluZyBzZWN0aW9ucwoJYnkgbmFtZS4KCSh3aWxkX3NvcnRfZmFzdCk6IE5ldyBmdW5jdGlvbjogSW5zZXJ0IGEgc2VjdGlvbiBpbnRvIGEgYmluYXJ5CglzZWFyY2ggdHJlZS4KCShvdXRwdXRfc2VjdGlvbl9jYWxsYmFja19mYXN0KTogTmV3IGZ1bmN0aW9uOiBTdG9yZSBhIHNlY3Rpb24gaW4KCUJTVC4KCShvdXRwdXRfc2VjdGlvbl9jYWxsYmFja190cmVlX3RvX2xpc3QpOiBOZXcgZnVuY3Rpb246IENvbnZlcnQgYQoJQlNUIGludG8gYSBsaXN0LgoJKGFuYWx5emVfd2Fsa193aWxkX3NlY3Rpb25faGFuZGxlcik6IEluaXRpYWxpemUgaGFuZGxlcl9kYXRhCgllbGVtZW50cy4KCSh3aWxkKTogSWYgdGhlIGRhdGEgaXMgc29ydGVkIGJ5IG5hbWUgdXNlIHRoZSBCU1QgbWV0aG9kIHRvIHNvcnQKCXRoZSBuYW1lcy4KCjIwMDYtMDctMTkgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZC5oIChoYW5kbGVfYXNuZWVkZWRfY3JlZik6IERlY2xhcmUuCgkqIGxkY3JlZi5jOiBJbmNsdWRlIG9iamFsbG9jLmguCgkob2xkX3RhYmxlLCBvbGRfY291bnQsIG9sZF90YWIsIGFsbG9jX21hcmspOiBOZXcgdmFyaWFibGVzLgoJKHRhYnNpemUsIGVudHNpemUsIHJlZnNpemUsIG9sZF9zeW1jb3VudCk6IExpa2V3aXNlLgoJKGFkZF9jcmVmKTogVXNlIGJmZF9oYXNoX2FsbG9jYXRlIGZvciByZWZzLgoJKGhhbmRsZV9hc25lZWRlZF9jcmVmKTogTmV3IGZ1bmN0aW9uLgoJKiBsZG1haW4uYyAobm90aWNlKTogQ2FsbCBoYW5kbGVfYXNuZWVkZWRfY3JlZiBmb3IgTlVMTCBuYW1lLgoKMjAwNi0wNy0xNCAgTWljaGFlbCBXZXRoZXJlbGwgIDxtaWtlLndldGhlcmVsbEBudGx3b3JsZC5jb20+CgoJKiBjb25maWd1cmUudGd0IChpWzMtN104Ni0qLXNvbGFyaXMyKiwgaVszLTddODYtKi1zb2xhcmlzKik6IENvcnJlY3QKCXR5cG8gc2V0dGluZyB0YXJnX2V4dHJhX2xpYnBhdGguCgoyMDA2LTA3LTEwICBKYWt1YiBKZWxpbmVrICA8amFrdWJAcmVkaGF0LmNvbT4KCgkqIHNjcmlwdHRlbXBsL2VsZi5zYzogQWRkIC5nbnUuaGFzaCBzZWN0aW9uLgoJKiBlbXVsdGVtcGwvZWxmMzIuZW0gKE9QVElPTl9IQVNIX1NUWUxFKTogRGVmaW5lLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X2FkZF9vcHRpb25zKTogUmVnaXN0ZXIgLS1oYXNoLXN0eWxlIG9wdGlvbi4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9oYW5kbGVfb3B0aW9uKTogSGFuZGxlIGl0LgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X2xpc3Rfb3B0aW9ucyk6IERvY3VtZW50IGl0LgoJKiBsZG1haW4uYyAobWFpbik6IEluaXRpYWxpemUgZW1pdF9oYXNoIGFuZCBlbWl0X2dudV9oYXNoLgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCAtLWhhc2gtc3R5bGUgb3B0aW9uLgoKMjAwNi0wNy0xMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL3poX1RXLnBvOiBOZXcgQ2hpbmVzZSAodHJhZGl0aW9uYWwpIHRyYW5zbGF0aW9uLgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkIHpoX1RXLgoJKiBjb25maWd1cmU6IFJlZ2VuZXJhdGUuCgoyMDA2LTA3LTA3ICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCVBSIGxkLzI4NzQKCSogbGQudGV4aW5mbzogUmVtb3ZlICJVc2luZyBMRCIgZnJvbSB0aGUgdGl0bGUgc2luY2UgaXQgaXMKCXJlZHVuZGFudC4KCjIwMDYtMDctMDYgIE1vaGFtbWVkIEFkbsOobmUgVHJvamV0dGUgIDxhZG5AZGl3aS5vcmc+CgoJUFIgbGQvMjg3NwoJKiBsZC50ZXhpbmZvOiBGaXggc3BlbGxpbmcgbWlzdGFrZXMuCgoyMDA2LTA2LTI3ICBQZWRybyBBbHZlcyAgPHBlZHJvX2FsdmVzQHBvcnR1Z2FsbWFpbC5wdD4KCSAgICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogZW11bHRlbXBsL3BlLmVtIChnbGRfJF9vcGVuX2R5bmFtaWNfYXJjaGl2ZSk6IENvbXB1dGUgbWF4aW11bQoJbGVuZ3RoIG9mIGZvcm1hdCBzdHJpbmdzIGluIHRoZSBsaWJuYW1lX2ZtdFtdIGFycmF5LCByYXRoZXIgdGhhbgoJcmVseWluZyB1cG9uIGEgc3RhdGljYWxseSBjaG9zZW4gdmFsdWUuICBBZGp1c3QgeG1hbGxvYyBjYWxsIHRvCgl1c2UgdGhpcyBsb25nZXN0IGxlbmd0aC4KCjIwMDYtMDYtMjcgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBsZC50ZXhpbmZvICgtcnBhdGgtbGluayk6IENsYXJpZnkgZGlzdGluY3Rpb24gYmV0d2VlbiAtcnBhdGggYW5kCgktcnBhdGgtbGluay4KCjIwMDYtMDYtMjMgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBjb25maWd1cmUudGd0IChpWzMtN104Ni0qLXNvbGFyaXMyKiwgaVszLTddODYtKi1zb2xhcmlzKik6IFNldAoJdGFyZ19leHRyYV9saWJwYXRoLgoKMjAwNi0wNi0yMyAgUGVkcm8gQWx2ZXMgPHBlZHJvX2FsdmVzQHBvcnR1Z2FsbWFpbC5wdD4KCgkqIHBlLWRsbC5jIChwZV9kZXRhaWxzX3R5cGUpOiBBZGQgbmV3IHBvaW50ZXIgZm9yIHN5bWJvbHMgbGlzdAoJYXV0b2ZpbHRlci4KCShhdXRvZmlsdGVyX3N5bWJvbGxpc3QpOiBTcGxpdCBpbnRvIGF1dG9maWx0ZXJfc3ltYm9sbGlzdF9nZW5lcmljCglhbmQgYXV0b2ZpbHRlcl9zeW1ib2xsaXN0X2kzODYuCgkocGVfZGV0YWlsX2xpc3QpOiBBZGQgYXV0b2ZpbHRlcl9zeW1ib2xsaXN0X2kzODYgdG8gaTM4NiBjYXNlIGFuZAoJYXV0b2ZpbHRlcl9zeW1ib2xsaXN0X2dlbmVyaWMgZm9yIGFsbCB0aGUgb3RoZXJzLgoJKGF1dG9maWx0ZXJfc3ltYm9scHJlZml4bGlzdCk6IE1vdmVkIF9mbW9kZSwgX2ltcHVyZV9wdHIsIGN5Z3dpbl9hdHRhY2hfZGxsLAoJY3lnd2luX3ByZW1haW4wLCBjeWd3aW5fcHJlbWFpbjEsIGN5Z3dpbl9wcmVtYWluMiwgY3lnd2luX3ByZW1haW4zLCBlbnZpcm9uLAoJaW50byBhdXRvZmlsdGVyX3N5bWJvbGxpc3RfaTM4Ni4KCShhdXRvX2V4cG9ydCk6IEdldCBhdXRvZmlsdGVyX3N5bWJvbGxpc3QgZnJvbSBwZV9kZXRhaWxzLgoKMjAwNi0wNi0yMiAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCglQUiBsZC8yNzU3CgkqIGVtdWx0ZW1wbC9wZS5lbSAoZ2xkXyRfYWZ0ZXJfb3Blbik6IFdoZW4gcmVwb3J0aW5nIG5vbiBQRSBmb3JtYXQKCW91dHB1dCBmaWxlcyBtZW50aW9uIHRoZSBmaWxlIG5hbWUgYW5kIHRoZSBmYWN0IHRoYXQgaXQgaXMgYW4KCW91dHB1dCBmaWxlLgoKMjAwNi0wNi0yMiAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGVtdWx0ZW1wbC9wZS5lbSAoZ2xkXyR7RU1VTEFUSU9OX05BTUV9X29wZW5fZHluYW1pY19hcmNoaXZlKToKCVJlc3RydWN0dXJlLiAgQWRkIG5hdGl2ZSAiJXMubGliIiBmb3JtYXQgdG8gc2VhcmNoIGxpc3QKCSogbGQudGV4aW5mbyAobm9kZSBXSU4zMik6IFVwZGF0ZSBkb2N1bWVudGF0aW9uIG9uIGR5bmFtaWMgbGliCglzZWFyY2ggb3JkZXIuIEFkZCBhbm90aGVyIHJlYXNvbiBmb3IgdXNpbmcgaW1wb3J0IGxpYnMuCgoyMDA2LTA2LTIxICBNYXJrIFNoaW53ZWxsICA8c2hpbndlbGxAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX2luc2VydF9vcnBoYW4pOiBDb3JyZWN0bHkgaGFuZGxlIHRoZSBjYXNlIHdoZXJlCgl0aGUgc2VjdGlvbiBpcyB0byBlbmQgdXAgYWZ0ZXIgdGhlIHNlY3Rpb24gY3VycmVudGx5IGF0IHRoZSBlbmQKCW9mIHRoZSBsaXN0IGluIG91dHB1dF9iZmQuCgoyMDA2LTA2LTIxICBIYW5zLVBldGVyIE5pbHNzb24gIDxocEBiaXRyYW5nZS5jb20+CgoJKiBlbXVsdGVtcGwvbW1vLmVtOiBJbXByb3ZlIGNvbW1lbnRzLiAgRXhwbGFpbiB3aHkgdGhlcmUncwoJRUxGLXN0dWZmIGhlcmUuCgoyMDA2LTA2LTIxICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogZW11bHRlbXBsL2VsZi1nZW5lcmljLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9tYXBfc2VnbWVudHMpOiBMaW1pdAoJbG9vcCB0byB0ZW4gaXRlcmF0aW9ucy4gIFRocm93IGF3YXkgYW55IHByZXZpb3VzIGxpbmtlciBnZW5lcmF0ZWQKCXNlZ21lbnQgbWFwLgoJKiBsZGxhbmcuYyAobGFuZ19waGRyX2xpc3QpOiBNYWtlIGdsb2JhbC4KCSogbGRsYW5nLmggKGxhbmdfcGhkcl9saXN0KTogRGVjbGFyZS4KCSogTWFrZWZpbGUuYW0gKEVMRl9HRU5fREVQUyk6IERlZmluZS4gIFVzZSBpbiBlbXVsIGRlcHMuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwNi0wNi0yMCAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIE1ha2VmaWxlLmFtIChFTEZfREVQUyk6IERlZmluZS4gIFVzZSBpbiBlbXVsIGZpbGUgZGVwcy4gIEZpeAoJbWFueSBFTEYgZW11bCBmaWxlIGRlcHMgdGhhdCBpbmNvcnJlY3RseSBzYWlkIHRoZXkgbmVlZGVkIGVsZjMyLmVtCglpbnN0ZWFkIG9mIGdlbmVyaWMuZW0uICBBZGQgZ2VuZWxmLmVtIGFzIHJlcXVpcmVkLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogbGRsYW5nLmMgKGxhbmdfcHJvY2Vzcyk6IENhbGwgbGRlbXVsX2ZpbmlzaCBiZWZvcmUKCWxhbmdfY2hlY2tfc2VjdGlvbl9hZGRyZXNzZXMuCgkqIGVtdWxwYXJhbXMvYXJjZWxmLnNoOiBHZW5lcmljIGVsZiB0YXJnZXQgbmVlZHMgZ2VuZWxmLgoJKiBlbXVscGFyYW1zL2QzMHZfZS5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZDMwdl9vLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9kMzB2ZWxmLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMl9kbHguc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMyX2k4NjAuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMyZnIzMC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJmcnYuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMyaXExMC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJpcTIwMDAuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMybXQuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL21uMTAyMDAuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL29yMzIuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL29yMzJlbGYuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL3BqZWxmLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9tc3A0MzBhbGwuc2g6IExpa2V3aXNlLiAgRXh0cmFjdCBjb21tb24gZW50cmllcy4KCSogZW11bHBhcmFtcy9wamxlbGYuc2g6IEluY2x1ZGUgcGplbGYuc2guCgkqIGVtdWxwYXJhbXMvZWxmMzJmcnZmZC5zaCAoRVhUUkFfRU1fRklMRSk6IFVuc2V0LgoJKiBlbXVscGFyYW1zL21uMTAzMDAuc2ggKEVYVFJBX0VNX0ZJTEUpOiBVbnNldC4KCSogZW11bHRlbXBsL2VsZi1nZW5lcmljLmVtOiBOZXcgZmlsZS4KCSogZW11bHRlbXBsL2dlbmVsZi5lbTogTmV3IGZpbGUuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbTogSW5jbHVkZSBlbGYtZ2VuZXJpYy5lbS4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9sYXlvdXRfc2VjdGlvbnNfYWdhaW4pOiBEZWxldGUuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fZmluaXNoKTogQ2FsbCBnbGQke0VNVUxBVElPTl9OQU1FfV9tYXBfc2VnbWVudHMuCgkqIGVtdWx0ZW1wbC9ocHBhZWxmLmVtIChocHBhZWxmX2xheW91dF9zZWN0aW9uc19hZ2Fpbik6IExpa2V3aXNlLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X2ZpbmlzaCk6IFJlbmFtZSBmcm9tIGhwcGFlbGZfZmluaXNoLiAgQ2FsbAoJZ2xkJHtFTVVMQVRJT05fTkFNRX1fbWFwX3NlZ21lbnRzLgoJKExERU1VTF9GSU5JU0gpOiBVcGRhdGUuCgkqIGVtdWx0ZW1wbC9tbW8uZW06IENvcnJlY3QgY29tbWVudC4gIEluY2x1ZGUgZWxmLWJmZC5oIGFuZAoJc291cmNlIGVsZi1nZW5lcmljLmVtLgoJKG1tb19maW5pc2gpOiBDYWxsIGdsZCR7RU1VTEFUSU9OX05BTUV9X21hcF9zZWdtZW50cy4KCSogZW11bHRlbXBsL3BwYzY0ZWxmLmVtIChwcGNfbGF5b3V0X3NlY3Rpb25zX2FnYWluKTogTGlrZXdpc2UuCgkoZ2xkJHtFTVVMQVRJT05fTkFNRX1fZmluaXNoKTogUmVuYW1lIGZyb20gcHBjX2ZpbmlzaC4gIENhbGwKCWdsZCR7RU1VTEFUSU9OX05BTUV9X21hcF9zZWdtZW50cy4KCShMREVNVUxfRklOSVNIKTogVXBkYXRlLgoKMjAwNi0wNi0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkZXhwLmMgKGZvbGRfbmFtZSk6IEFkanVzdCBiZmRfc2l6ZW9mX2hlYWRlcnMgY2FsbC4KCjIwMDYtMDYtMTQgIEtldmluIEYuIFF1aW5uICA8a2V2cXVpbm5AZ2VudG9vLm9yZz4KCgkqIGxkLnRleGluZm86IERvY3VtZW50IG5ldyAteiBsYXp5IG9wdGlvbi4KCSogZW11bHRlbXBsL2VsZjMyLmVtIChnbGQke0VNVUxBVElPTl9OQU1FfV9oYW5kbGVfb3B0aW9uKTogSGFuZGxlCgluZXcgb3B0aW9uLgoJKGdsZCR7RU1VTEFUSU9OX05BTUV9X2xpc3Rfb3B0aW9ucyk6IFVwZGF0ZSBoZWxwIHRleHQuCgoyMDA2LTA2LTEyICBGcmVkIEZpc2ggIDxmbmZAc3BlY2lmaXguY29tPgoKCSogZW11bHBhcmFtcy9lbGYzMmJtaXAuc2ggKE9USEVSX1NFQ1RJT05TKTogS2VlcCB0aGUKCSIubWRlYnVnLjxhYmk+IiBhbmQgIi5nY2NfY29tcGlsZWRfbG9uZzxzaXplPiIgc2VjdGlvbnMKCWdlbmVyYXRlZCBieSBtaXBzIGdjYy4KCjIwMDYtMDYtMTIgIFRoaWVtbyBTZXVmZXIgIDx0aHNAbWlwcy5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjY0Ym1pcC5zaCwgZW11bHBhcmFtcy9lbGY2NGJ0c21pcC5zaCAoQ09NTU9OUEFHRVNJWkUpOgoJRGVmaW5lLgoKMjAwNi0wNi0wOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5oIChsYW5nX2lucHV0X3N0YXRlbWVudF90eXBlKTogVXNlIGJpdGZpZWxkcyBmb3IgYm9vbGVhbnMuCgkqIGxkbGFuZy5jIChzdHJ1Y3Qgb3V0X3NlY3Rpb25faGFzaF9lbnRyeSk6IFJlbmFtZSBmcm9tCglvdXRwdXRfc3RhdGVtZW50X2hhc2hfZW50cnkuICBEZWxldGUgb3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50X3R5cGUKCWVudHJ5LiAgQWRkIHN0YXRlbWVudF91bmlvbl90eXBlIGVudHJ5LiAgQWRqdXN0IGFsbCB1c2Vycy4KCShvdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRfdGFibGUpOiBSZW5hbWUgZnJvbSBvdXRwdXRfc3RhdGVtZW50X3RhYmxlLgoJQWRqdXN0IGFsbCB1c2Vycy4KCShvdXRwdXRfc2VjdGlvbl9zdGF0ZW1lbnRfbmV3ZnVuYyk6IFJlbmFtZSBmcm9tCglvdXRwdXRfc3RhdGVtZW50X25ld2Z1bmMuICBBZGp1c3QgYWxsIHVzZXJzLgoJKG91dHB1dF9zZWN0aW9uX3N0YXRlbWVudF90YWJsZV9pbml0KTogUmVuYW1lIGZyb20KCW91dHB1dF9zdGF0ZW1lbnRfdGFibGVfaW5pdC4gIEFkanVzdCBhbGwgdXNlcnMuCgkob3V0cHV0X3NlY3Rpb25fc3RhdGVtZW50X3RhYmxlX2ZyZWUpOiBSZW5hbWUgZnJvbQoJb3V0cHV0X3N0YXRlbWVudF90YWJsZV9mcmVlLiAgQWRqdXN0IGFsbCB1c2Vycy4KCjIwMDYtMDYtMDcgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogcG8vTWFrZS1pbiAocGRmLCBwcyk6IE5ldyBkdW1teSB0YXJnZXRzLgoKMjAwNi0wNi0wNyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5oIChlbnVtIHNlY3Rpb25fdHlwZSk6IERlbGV0ZSBkc2VjdF9zZWN0aW9uLCBjb3B5X3NlY3Rpb24sCglpbmZvX3NlY3Rpb24gYW5kIG92ZXJsYXlfc2VjdGlvbi4gIEFkZCBub2FsbG9jX3NlY3Rpb24uCgkqIGxkbGFuZy5jIChsYW5nX2FkZF9zZWN0aW9uKTogQWRqdXN0LgoJKiBsZGdyYW0ueSAodHlwZSk6IEFkanVzdC4KCjIwMDYtMDYtMDYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBsZGxhbmcuYyAoaW5pdF9vcyk6IFdoaXRlc3BhY2UuCgkobWFwX2lucHV0X3RvX291dHB1dF9zZWN0aW9ucyk6IERvbid0IGluaXRfb3MgZm9yIGxhbmdfaW5wdXRfc2VjdGlvbi4KCShwcmludF9hbGxfc3ltYm9scyk6IFJlbW92ZSBmb3J3YXJkIGRlY2xhcmF0aW9uLiAgQ29udmVydCB0byBJU08gQy4KCjIwMDYtMDYtMDUgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwby9NYWtlLWluICh0b3BfYnVpbGRkaXIpOiBEZWZpbmUuCgoyMDA2LTA2LTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRleHAuYyAoZXhwX2dldF9hYnNfaW50KTogTWFrZSBlcnJvciBtZXNzYWdlIHRoZSBzYW1lIGFzCglvdGhlcnMgZW1pdHRlZCBpbiB0aGlzIGZpbGUuCgoyMDA2LTA2LTA1ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogY29uZmlnLmluOiBSZWdlbmVyYXRlLgoKMjAwNi0wNi0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jIChsb29rdXBfbmFtZSk6IERlbGV0ZSBkZWFkIGNvZGUuICBSZW1vdmUgRklYTUVzLgoKMjAwNi0wNi0wMyAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xvYmFsX2ZvdW5kKTogTWFrZSBpdCBhIHBvaW50ZXIuCgkoc3RhdF9uZWVkZWQsIHRyeV9uZWVkZWQpOiBBZGp1c3QuCgkoY2hlY2tfbmVlZGVkKTogRG9uJ3Qgc2tpcCBub24tbG9hZGVkIGFzLW5lZWRlZCBlbnRyaWVzLiAgT25seQoJY29uc2lkZXIgZW50cmllcyB3aXRoIGJvdGggZmlsZW5hbWUgYW5kIHRoZV9iZmQgbm9uLW51bGwuCgkoYWZ0ZXJfb3Blbik6IFRyeSBsb2FkaW5nIG5vbi1sb2FkZWQgYXMtbmVlZGVkIGxpYnMgdG8gc2F0aXNmeQoJRFRfTkVFREVEIGxpYnMuCgoyMDA2LTA2LTAyICBKb3NlcGggUy4gTXllcnMgIDxqb3NlcGhAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmFtIChURVhJMkRWSSk6IEFkZCAtSSAkKHRvcF9zcmNkaXIpLy4uL2xpYmliZXJ0eS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA2LTA1LTMxICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogTWFrZWZpbGUuYW06IFJlcGxhY2UgSU5UTExJQlMgYW5kIElOVExERVBTIHdpdGggTElCSU5UTAoJYW5kIExJQklOVExfREVQIGV2ZXJ5d2hlcmUuCgkoSU5UTExJQlMpOiBSZW1vdmUuCgkoSU5DTFVERVMpOiBVc2UgQElOQ0lOVExALgoJKiBjb25maWd1cmUuaW46IFVzZSBaV19HTlVfR0VUVEVYVF9TSVNURVJfRElSIGFuZCBBTV9QT19TVUJESVJTLgoJUmVtb3ZlIGxvY2FsIGNvZGUgZm9yIHBvL01ha2VmaWxlLgoJKiBNYWtlZmlsZS5pbiwgY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDYtMDUtMzAgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVtdWxwYXJhbXMvYXJjZWxmLnNoIChNQVhQQUdFU0laRSk6IENoYW5nZWQgdG8KCSJDT05TVEFOVCAoTUFYUEFHRVNJWkUpIi4KCSogZW11bHBhcmFtcy9hcm1lbGZfbmJzZC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvYXJtZWxmX3Z4d29ya3Muc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2FybW50by5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvYXJtc3ltYmlhbi5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvY3Jpc2xpbnV4LnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMl9pODYwLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMl9pOTYwLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMmFtMzNsaW4uc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMyYmZpbmZkLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMmJtaXBuMzItZGVmcy5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJmcnZmZC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJpMzcwLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMmxwcGNudG8uc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMybWNvcmUuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMyb3BlbnJpc2Muc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMycHBjbnRvLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMnBwY3dpbmRpc3Muc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjMydmF4LnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMnhjMTZ4LnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMnhjMTZ4bC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJ4YzE2eHMuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0X2FpeC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRocHBhLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGY2NG1taXguc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZl9pMzg2X2JlLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGZfaTM4Nl9jaGFvcy5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmX2kzODZfbGRzby5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvaHBwYTY0bGludXguc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2hwcGFsaW51eC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvaHBwYW9ic2Quc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2kzODZseW54LnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9pMzg2bW9zcy5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvaTM4Nm50by5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvaTM4Nm53LnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9tMzJyZWxmX2xpbnV4LnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9tNjhrcHNvcy5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvb3IzMmVsZi5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvcGplbGYuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL3BqbGVsZi5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvcHBjbHlueC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvcHBjbncuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL3NoZWxmMzJfbmJzZC5zaCA6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL3NoZWxmX25ic2Quc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL3NoZWxmX250by5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvc2hsZWxmX250by5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMveHRlbnNhLWNvbmZpZy5zaDogTGlrZXdpc2UuCgoJKiBlbXVscGFyYW1zL2FybWVsZl9saW51eC5zaCAoTUFYUEFHRVNJWkUpOiBDaGFuZ2VkIHRvCgkiQ09OU1RBTlQgKE1BWFBBR0VTSVpFKSIuCgkoQ09NTU9OUEFHRVNJWkUpOiBDaGFuZ2VkIHRvICJDT05TVEFOVCAoQ09NTU9OUEFHRVNJWkUpIi4KCSogZW11bHBhcmFtcy9lbGYzMl9zcGFyYy5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmMzJibWlwLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGYzMnBwY2NvbW1vbi5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRfaWE2NC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRfczM5MC5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmNjRfc3BhcmMuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0YWxwaGEuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZjY0cHBjLnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9lbGZfaTM4Ni5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmX2kzODZfdnh3b3Jrcy5zaDogTGlrZXdpc2UuCgkqIGVtdWxwYXJhbXMvZWxmX3MzOTAuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL2VsZl94ODZfNjQuc2g6IExpa2V3aXNlLgoJKiBlbXVscGFyYW1zL3NobGVsZjMyX2xpbnV4LnNoOiBMaWtld2lzZS4KCSogZW11bHBhcmFtcy9zaGxlbGZfbGludXguc2g6IExpa2V3aXNlLgoKCSogZW11bHBhcmFtcy9lbGYzMmJtaXBuMzIuc2ggKENPTU1PTlBBR0VTSVpFKTogQ2hhbmdlZCB0bwoJIkNPTlNUQU5UIChDT01NT05QQUdFU0laRSkiLgoJKiBlbXVscGFyYW1zL2VsZjMyYnRzbWlwbjMyLnNoOiBMaWtld2lzZS4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1faGFuZGxlX29wdGlvbik6IEFkZAoJIi16IG1heC1wYWdlLXNpemU9IiBhbmQgIi16IGNvbW1vbi1wYWdlLXNpemU9Ii4KCShnbGQke0VNVUxBVElPTl9OQU1FfV9saXN0X29wdGlvbnMpOiBMaWtld2lzZS4KCgkqIGxkLmggKGxkX2NvbmZpZ190eXBlKTogQWRkIG1heHBhZ2VzaXplIGFuZCBjb21tb25wYWdlc2l6ZS4KCgkqIGxkLnRleGluZm86IERvY3VtZW50ICIteiBtYXgtcGFnZS1zaXplPSIgYW5kCgkiLXogY29tbW9uLXBhZ2Utc2l6ZT0iLgoKCSogbGRleHAuYyAoZXhwX3ByaW50X3Rva2VuKTogSGFuZGxlIENPTlNUQU5ULgoJKGZvbGRfbmFtZSk6IExpa2V3aXNlLgoJKiBsZGdyYW0ueTogTGlrZXdpc2UuCgkqIGxkbGV4Lmw6IExpa2V3aXNlLgoKCSogbGRtYWluLmMgKG1haW4pOiBJbml0aWxpYXplIGNvbmZpZy5tYXhwYWdlc2l6ZSBhbmQKCWNvbmZpZy5jb21tb25wYWdlc2l6ZS4gQ2FsbCBiZmRfZW11bF9zZXRfbWF4cGFnZXNpemUgaWYKCWNvbmZpZy5tYXhwYWdlc2l6ZSBpc24ndCAwLiBDYWxsIGJmZF9lbXVsX3NldF9jb21tb25wYWdlc2l6ZSBpZgoJY29uZmlnLmNvbW1vbnBhZ2VzaXplIGNvbmZpZy5tYXhwYWdlc2l6ZSBpc24ndCAwLgoKMjAwNi0wNS0zMCAgTmljayBDbGlmdG9uICA8bmlja2NAcmVkaGF0LmNvbT4KCgkqIHBvL2VzLnBvOiBVcGRhdGVkIFNwYW5pc2ggdHJhbnNsYXRpb24uCgoyMDA2LTA1LTI1ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5jb20+CgoJKiBlbXVscGFyYW1zL2VsZl94ODZfNjQuc2ggKE1BWFBBR0VTSVpFKTogVXBkYXRlZCB0byAweDIwMDAwMC4KCjIwMDYtMDUtMjQgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBsZC8xNDg1CgkqIGNvbmZpZ3VyZS5pbjogVXNlICR7c3JjZGlyfS8uLi9iZmQvY29uZmlnLmJmZCB0byBjaGVjayA2NGJpdAoJYmZkLiAgU3VwcG9ydCA2NGJpdCBob3N0IGZvciAtLWVuYWJsZS10YXJnZXRzPWFsbC4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlZC4KCjIwMDYtMDUtMjQgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby92aS5wbzogVXBkYXRlZCBWaWV0bmFtZXNlIHRyYW5zbGF0aW9uLgoKMjAwNi0wNS0yNCAgQmpvZXJuIEhhYXNlICA8YmpvZXJuLm0uaGFhc2VAd2ViLmRlPgoKCSogY29uZmlndXJlLnRndDogQWRkIGF2cjYgdG8gZW11bGF0aW9uIGxpc3QuCgkqIE1ha2VmaWxlLmFtOiBBZGQgZWF2cjYubyBhbmQgY29ycmVzcG9uZGluZyBydWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZW11bHBhcmFtcy9hdnI2LnNoOiBOZXcgZmlsZS4KCSogZW11bHBhcmFtcy9hdnJYLnNoIChURU1QTEFURV9OQU1FKTogVXNlIGVsZjMyIGluc3RlYWQgb2YgZ2VuZXJpYwoJZm9yIHRhcmdldCBvcHRpb24gc3VwcG9ydC4KCShFWFRSQV9FTV9GSUxFKTogQWRkIHJlZmVyZW5jZSB0byBuZXcgZW0gdGVtcGxhdGUgZmlsZSBhdnJlbGYuCgkqIHNjcmlwdHRlbXBsL2F2ci5zYzogQWRkICIudHJhbXBvbGluZXMiIHNlY3Rpb24uCgkqIGVtdWx0ZW1wbC9hdnJlbGYuZW06IEFkZCBuZXcgZmlsZSBmb3IgdGFyZ2V0IHNwZWNpZmljIG9wdGlvbnMuCgoyMDA2LTA1LTIyICBOaWNrIENsaWZ0b24gIDxuaWNrY0ByZWRoYXQuY29tPgoKCSogc2NyaXB0dGVtcGwvZWxmMzJjcnguc2MgKC5yZGF0YSk6IEFkZCAucm9kYXRhLiouCgoyMDA2LTA1LTE5ICBBbGFuIE1vZHJhICA8YW1vZHJhQGJpZ3BvbmQubmV0LmF1PgoKCSogbGRsYW5nLmMgKGxhbmdfc2l6ZV9zZWN0aW9uc18xKTogRG9uJ3QgY2hlY2sgbWVtIHJlZ2lvbnMgZm9yCglvcy0+aWdub3JlZCBzZWN0aW9ucy4KCjIwMDUtMDUtMTcgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBsZGxhbmcuYyAobGFuZ19zaXplX3NlY3Rpb25zKTogQ2FsbCBsYW5nX3Jlc2V0X21lbW9yeV9yZWdpb25zCgliZWZvcmUgcmVkb2luZyBvbmVfbGFuZ19zaXplX3NlY3Rpb25zX3Bhc3MuCgoyMDA2LTA1LTExICBDYXJsb3MgTydEb25lbGwgIDxjYXJsb3NAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGxkLnRleGluZm86IFJlbmFtZSAiSW5kZXgiIHRvICJMRCBJbmRleCIKCjIwMDYtMDUtMTEgIFBlZHJvIEFsdmVzICA8cGVkcm9fYWx2ZXNAcG9ydHVnYWxtYWlsLnB0PgoKCSogcGUtZGxsLmMgKGF1dG9maWx0ZXJfc3ltYm9sbGlzdCk6IEFkZCBEbGxtYWluLAoJRGxsTWFpbkNSVFN0YXJ0dXAsIF9EbGxNYWluQ1JUU3RhcnR1cCBhbmQgLnRleHQuCgkoYXV0b2ZpbHRlcl9saWJsaXN0KTogQWRkIGxpYmNlZ2NjLgoJKGF1dG9maWx0ZXJfc3ltYm9scHJlZml4bGlzdCk6IEFkZCBfX2ltcF8gYW5kIC5pZGF0YSQuCgkoZ2VuZXJhdGVfcmVsb2MpOiBEbyBub3Qgc2tpcCBzZWN0aW9ucyB3aXRob3V0IGEgU0VDX0xPQUQgZmxhZywKCXRoZXkgY2FuIHN0aWxsIGNvbnRhaW4gcmVsb2NzIHRoYXQgbmVlZCBwcm9jZXNzaW5nLgoJU2tpcCB0aGUgLmlkYXRhJDYgc2VjdGlvbi4KCShqbXBfYXJtX2J5dGVzKTogTmV3IGFycmF5OiBDb250YWlucyBieXRlIGNvZGVzIGZvciBhbiBBUk0ganVtcC4KCShtYWtlX29uZSk6IFVzZSB0aGUgbmV3IGFycmF5LgoJKG1ha2VfaW1wb3J0X2ZpeHVwX2VudHJ5KTogVXNlIC5pZGF0YSQyIGluc3RlYWQgb2YgLmlkYXRhJDMuCgkqIGVtdWx0ZW1wbC9wZS5lbSAoTWFqb3JTdWJzeXN0ZW1WZXJzaW9uKTogU2V0IHRvIDMgZm9yIGFybXBlLgoKMjAwNi0wNS0wNSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkLnRleGluZm86IERvY3VtZW50IFBvd2VyUEMgYW5kIFBvd2VyUEM2NCBvcHRpb25zLgoJKiBnZW4tZG9jLnRleGk6IEVuYWJsZS4KCjIwMDYtMDUtMDIgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5hbSAoQU1fTUFLRUlORk9GTEFHUyk6IEFkZCBsaWJpYmVydHkuCgkoVEVYSTJQT0QpOiBVc2UgQU1fTUFLRUlORk9GTEFHUy4KCShjb25maWdkb2MudGV4aSk6IERvbid0IHNldCB0b3Bfc3JjZGlyLgoJKiBsZC50ZXhpbmZvOiBEb24ndCB1c2UgdG9wX3NyY2Rpci4KCSogYWNsb2NhbC5tNCwgTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGVkLgoKMjAwNi0wNC0xOSAgQWxhbiBNb2RyYSAgPGFtb2RyYUBiaWdwb25kLm5ldC5hdT4KCgkqIGxkbGFuZy5jICh3aWxkKTogVGlkeSBkZWZhdWx0X2NvbW1vbl9zZWN0aW9uIGxvb3AuCgkocHJpbnRfaW5wdXRfc2VjdGlvbik6IEZvcm1hdC4KCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDYtMDQtMTYgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBwby9QT1RGSUxFUy5pbjogUmVnZW5lcmF0ZWQuCgoyMDA2LTA0LTE2ICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlnLmluOiBSZWdlbmVyYXRlZC4KCjIwMDYtMDQtMTQgIERhdmlkIEhlaW5lICA8ZGxoZWluZUB0ZW5zaWxpY2EuY29tPgoJICAgIEJvYiBXaWxzb24gIDxib2Iud2lsc29uQGFjbS5vcmc+CgoJKiBlbXVsdGVtcGwveHRlbnNhZWxmLmVtIChlbGZfeHRlbnNhX2JlZm9yZV9hbGxvY2F0aW9uKTogQ2FsbCBuZXcKCWZ1bmN0aW9uIHRvIHN0cmlwIGluY29uc2lzdGVudCBsaW5rb25jZSBzZWN0aW9ucy4KCShpbnB1dF9zZWN0aW9uX2xpbmtlZF93b3JrZXIsIGlucHV0X3NlY3Rpb25fbGlua2VkKTogTmV3LgoJKGlzX2luY29uc2lzdGVudF9saW5rb25jZV9zZWN0aW9uKTogTmV3LgoJKHh0ZW5zYV9zdHJpcF9pbmNvbnNpc3RlbnRfbGlua29uY2Vfc2VjdGlvbnMpOiBOZXcuCgoyMDA2LTA0LTExICBEaWVnbyBQZXR0ZW7yICA8ZmxhbWVleWVzQGdlbnRvby5vcmc+CgoJKiBlbXVsdGVtcGwvZWxmMzIuZW06IEFkZCBzdXBwb3J0IGZvciBlbGYtaGludHMuaCBvbiBGcmVlQlNECglhbmQgRHJhZ29uZmx5IHRhcmdldHMuCgkqIGNvbmZpZ3VyZS5pbiAoQUNfQ0hFQ0tfSEVBREVSUyk6IEFkZCBlbGYtaGludHMuaC4KCSogTWFrZWZpbGUuYW0gKEhGSUxFUyk6IEFkZCBlbGYtaGludHMtbG9jYWwuaC4KCSogZWxmLWhpbnRzLWxvY2FsLmg6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoKMjAwNi0wNC0wNyAgQmVybmhhcmQgRmlzY2hlciAgPGFsZG90QGdjYy5nbnUub3JnPgoKCSogbGQudGV4aW5mbzogRml4IHR5cG8gaW4gZG9jdW1lbnRhdGlvbiBvZiAtLWNoZWNrLXNlY3Rpb25zLgoKMjAwNi0wNC0wNyAgS2F6IEtvamltYSAgPGtrb2ppbWFAcnIuaWlqNHUub3IuanA+CgoJKiBsZGxhbmcuYyAobG9hZF9zeW1ib2xzKTogU2V0IGFzX25lZWRlZCBhbmQgYWRkX25lZWRlZCBhY2NvcmRpbmcKCXRvIHRoZSBjb3JyZXNwb25kaW5nIHNjcmlwdCdzIGZpZWxkcyB3aGlsZSBwcm9jZXNzaW5nIGl0LgoKMjAwNi0wNC0wNiAgQ2FybG9zIE8nRG9uZWxsICA8Y2FybG9zQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBNYWtlZmlsZS5hbTogQWRkIGluc3RhbGwtaHRtbCwgaW5zdGFsbC1odG1sLWFtLCBhbmQKCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgdGFyZ2V0cy4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS5pbjogQUNfU1VCU1QgZGF0YXJvb3RkaXIsIGRvY2RpciwgaHRtbGRpci4KCSogY29uZmlndXJlOiBSZWdlbmVyYXRlLgoJKiBwby9NYWtlLWluOiBBZGQgaW5zdGFsbC1odG1sIHRhcmdldC4KCjIwMDYtMDQtMDYgIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCgkqIGVtdWx0ZW1wbC9pYTY0ZWxmLmVtOiBTZXQgbGlua19pbmZvLnJlbGF4X3Bhc3MgdG8gMi4gUmVtb3ZlCglsaW5rX2luZm8ubmVlZF9yZWxheF9maW5hbGl6ZS4KCgkqIGxkbGFuZy5jIChyZWxheF9zZWN0aW9ucyk6IE5ldy4KCShsYW5nX3Byb2Nlc3MpOiBVc2UuIENhbGwgcmVsYXhfc2VjdGlvbnMgbGlua19pbmZvLnJlbGF4X3Bhc3MKCXRpbWVzLgoKCSogbGRtYWluLmMgKG1haW4pOiBTZXQgbGlua19pbmZvLnJlbGF4X3Bhc3MgdG8gMS4gUmVtb3ZlCglsaW5rX2luZm8ubmVlZF9yZWxheF9maW5hbGl6ZS4KCjIwMDYtMDQtMDUgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJKiBNYWtlZmlsZS5hbSAoR0VOU0NSSVBUUyk6IFBhc3MgcHJlZml4LgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCSogZ2Vuc2NyaXB0cy5zaDogQWRqdXN0IGZvciBleHRyYSBwYXJhbWV0ZXIuCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAocGFyc2VfbGRfc29fY29uZik6IFJldHVybiB0cnVlIGlmZiBmaWxlCglleGlzdHMuCgkoY2hlY2tfbGRfc29fY29uZik6IFVzZSAke3ByZWZpeH0vZXRjL2xkLnNvLmNvbmYgaWYgaXQgZXhpc3RzLgoJKiBORVdTOiBVcGRhdGUuCgoyMDA2LTA0LTA1ICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJpY2hhcmRAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBEYW5pZWwgSmFjb2Jvd2l0eiAgPGRhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlndXJlLnRndCAoc3BhcmMqLSotdnh3b3JrcyopOiBOZXcgc3RhbnphLgoJKiBlbXVscGFyYW1zL2VsZjMyX3NwYXJjX3Z4d29ya3Muc2g6IE5ldyBmaWxlLgoJKiBNYWtlZmlsZS5hbSAoQUxMX0VNVUxBVElPTlMpOiBBZGQgZWVsZjMyX3NwYXJjX3Z4d29ya3Muby4KCShlZWxmMzJfc3BhcmNfdnh3b3Jrcy5jKTogTmV3IHJ1bGUuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwNi0wNC0wNCAgRXJpYyBCb3RjYXpvdSAgPGVib3RjYXpvdUBhZGFjb3JlLmNvbT4KCgkqIGxkbGFuZy5jIChsYW5nX21hcCk6IFByaW50IHRoZSBsaXN0IG9mIGRpc2NhcmRlZCBpbnB1dCBzZWN0aW9ucy4KCShwcmludF9pbnB1dF9zZWN0aW9uKTogQ2hhbmdlIHBhcmFtZXRlciBhbmQgcHJpbnQgemVyby1zaXplZCBzZWN0aW9ucy4KCShwcmludF9zdGF0ZW1lbnQpOiBBZGp1c3QgY2FsbCB0byBwcmludF9pbnB1dF9zZWN0aW9uLgoKMjAwNi0wNC0wMSAgRGFubnkgU21pdGggIDxkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KCgkqIGRlZmZpbGVwLnkgKGRlZl9pbWFnZV9uYW1lKTogSWYgTElCUkFSWSBvciBOQU1FIHN0YXRlbWVudAoJc3BlY2lmaWVzIGFuIGVtcHR5IHN0cmluZywgcmV0YWluIHRoZSBuYW1lIHNwZWNpZmllZCBvbiBjb21tYW5kCglsaW5lLgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCBhYm92ZS4KCjIwMDYtMDMtMzEgIEpha3ViIEplbGluZWsgIDxqYWt1YkByZWRoYXQuY29tPgoKCSogbGRtaXNjLmMgKHZmaW5mbyk6IFJldmVydCAyMDA1LTEwLTA1IGNoYW5nZXMuICBJZgoJYmZkX2ZpbmRfbmVhcmVzdF9saW5lIHN1Y2NlZWRlZCBmb3IgJUMgb3IgJUQsIGJ1dCBmaWxlbmFtZQoJaXMgTlVMTCwgcHJpbnQgc2VjdGlvbitvZmZzZXQgYXQgdGhlIGVuZC4KCjIwMDYtMDMtMjUgIEJlcm5kIFNjaG1pZHQgIDxiZXJuZC5zY2htaWR0QGFuYWxvZy5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjMyYmZpbmZkLnNoOiBOZXcgZmlsZS4KCSogZW11bHRlbXBsL2JmaW4uZW06IERlbGV0ZS4KCSogZW11bHBhcmFtcy9iZmluLnNoOiBMb3NlIHJlZmVyZW5jZSB0byBiZmluLmVtLgoJKiBNYWtlZmlsZS5hbSAoZWVsZjMyYmZpbi5jKTogTGlrZXdpc2UuCgkoZWVsZjMyYmZpbmZkLmMpOiBOZXcuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBjb25maWd1cmUudGd0IChiZmluLSotZWxmLCBiZmluLSotdWNsaW51eCk6IEFkZCBlbGYzMmJmaW5mZCB0bwoJdGFyZ19leHRyYV9lbXVscy4KCjIwMDYtMDMtMjIgIFJpY2hhcmQgU2FuZGlmb3JkICA8cmljaGFyZEBjb2Rlc291cmNlcnkuY29tPgoJICAgIERhbmllbCBKYWNvYm93aXR6ICA8ZGFuQGNvZGVzb3VyY2VyeS5jb20+CgkgICAgUGhpbCBFZHdhcmRzICA8cGhpbEBjb2Rlc291cmNlcnkuY29tPgoJICAgIFphY2sgV2VpbmJlcmcgIDx6YWNrQGNvZGVzb3VyY2VyeS5jb20+CgkgICAgTWFyayBNaXRjaGVsbCAgPG1hcmtAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBOYXRoYW4gU2lkd2VsbCAgPG5hdGhhbkBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlndXJlLnRndCAobWlwcyplbC0qLXZ4d29ya3MqLCBtaXBzKi0qLXZ4d29ya3MqKTogVXNlCglzZXBhcmF0ZSBWeFdvcmtzIGVtdWxhdGlvbnMuCgkqIGVtdWxwYXJhbXMvZWxmMzJlYm1pcHZ4d29ya3Muc2g6IE5ldyBmaWxlLgoJKiBlbXVscGFyYW1zL2VsZjMyZWxtaXB2eHdvcmtzLnNoOiBOZXcgZmlsZS4KCSogTWFrZWZpbGUuYW0gKEFMTF9FTVVMQVRJT05TKTogQWRkIGVlbGYzMmVibWlwdnh3b3Jrcy5vIGFuZAoJZWVsZjMyZWxtaXB2eHdvcmtzLm8uCgkoZWVsZjMyZWJtaXB2eHdvcmtzLmMsIGVlbGYzMmVsbWlwdnh3b3Jrcy5jKTogTmV3IHJ1bGVzLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDYtMDMtMTYgIEFsYW4gTW9kcmEgIDxhbW9kcmFAYmlncG9uZC5uZXQuYXU+CgoJUFIgMjQzNAoJKiBsZGNyZWYuYyAoYWRkX2NyZWYpOiBBZGp1c3QgYmZkX2hhc2hfdGFibGVfaW5pdCBjYWxscy4KCSogbGRsYW5nLmMgKG91dHB1dF9zdGF0ZW1lbnRfdGFibGVfaW5pdCwgbGFuZ19pbml0KTogTGlrZXdpc2UuCgkqIGxkbWFpbi5jIChhZGRfeXN5bSwgYWRkX3dyYXAsIGFkZF9rZWVwc3ltc19maWxlKTogTGlrZXdpc2UuCgkodW5kZWZpbmVkX3N5bWJvbCk6IExpa2V3aXNlLgoKMjAwNi0wMy0wNyAgUmljaGFyZCBTYW5kaWZvcmQgIDxyaWNoYXJkQGNvZGVzb3VyY2VyeS5jb20+CgkgICAgRGFuaWVsIEphY29ib3dpdHogIDxkYW5AY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBaYWNrIFdlaW5iZXJnICA8emFja0Bjb2Rlc291cmNlcnkuY29tPgoJICAgIE5hdGhhbiBTaWR3ZWxsICA8bmF0aGFuQGNvZGVzb3VyY2VyeS5jb20+CgkgICAgUGF1bCBCcm9vayAgPHBhdWxAY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBSaWNhcmRvIEFuZ3VpYW5vICA8YW5ndWlhbm9AY29kZXNvdXJjZXJ5LmNvbT4KCSAgICBQaGlsIEVkd2FyZHMgIDxwaGlsQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlbXVscGFyYW1zL2FybWVsZl92eHdvcmtzLnNoOiBJbmNsdWRlIHZ4d29ya3Muc2guCgkoTUFYUEFHRVNJWkUpOiBEZWZpbmUuCgkqIGVtdWxwYXJhbXMvdnh3b3Jrcy5zaDogVW5kZWZpbmUgRU1CRURERUQuCgkqIE1ha2VmaWxlLmFtIChlYXJtZWxmX3Z4d29ya3MuYyk6IERlcGVuZCBvbiB2eHdvcmtzLnNoIGFuZCB2eHdvcmtzLmVtLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KCjIwMDYtMDMtMDMgIEJqb2VybiBIYWFzZSAgPGJqb2Vybi5tLmhhYXNlQHdlYi5kZT4KCgkqIHNjcmlwdHRlbXBsL2F2ci5zYzogIEFkZCAqKC5qdW1wdGFibGVzKSAqKC5sb3d0ZXh0KSBzZWN0aW9ucy4KCUFkZCBLRUVQKCkgZGlyZWN0aXZlcy4KCUFkZCAqKC5kYXRhKikgKigucm9kYXRhKSBhbmQgKigucm9kYXRhKikgYW5kICooLmJzcyopIHRvIC5kYXRhIGFuZAoJLmJzcyBvdXRwdXQgc2VjdGlvbnMuCgoyMDA2LTAzLTAzICBSaWNoYXJkIFNhbmRpZm9yZCAgPHJpY2hhcmRAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIGVtdWxwYXJhbXMvdnh3b3Jrcy5zaCAoVlhXT1JLU19CQVNFX0VNX0ZJTEUpOiBOZXcgdmFyaWFibGUuCgkoRVhUUkFfRU1fRklMRSk6IERlZmluZS4KCSogZW11bHRlbXBsL3Z4d29ya3MuZW06IE5ldyBmaWxlLgoJKiBsZC50ZXhpbmZvICgtLWZvcmNlLWR5bmFtaWMpOiBEb2N1bWVudC4KCSogTWFrZWZpbGUuYW0gKGVlbGYzMnBwY3Z4d29ya3MuY20sIGVlbGZfaTM4Nl92eHdvcmtzLmMpOiBEZXBlbmQKCW9uIHZ4d29ya3MuZW0uCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoKMjAwNi0wMy0wMiAgUmljaGFyZCBTYW5kaWZvcmQgIDxyaWNoYXJkQGNvZGVzb3VyY2VyeS5jb20+CgoJKiBlbXVscGFyYW1zL2VsZjMycHBjY29tbW9uLnNoOiBOZXcgZmlsZSwgZXh0cmFjdGVkIGZyb20uLi4KCSogZW11bHBhcmFtcy9lbGYzMnBwYy5zaDogLi4uaGVyZS4KCSogZW11bHBhcmFtcy9lbGYzMnBwY3Z4d29ya3Muc2g6IEluY2x1ZGUgZWxmMzJwcGNjb21tb24uc2gKCWluc3RlYWQgb2YgZWxmMzJwcGMuc2guCgkoQlNTX1BMVCk6IFJlbW92ZSBvdmVycmlkZS4KCSogTWFrZWZpbGUuYW0gKGVlbGYzMmxwcGMuYyk6IERlcGVuZCBvbiBlbGYzMnBwY2NvbW1vbnMuaC4KCShlZWxmMzJscHBjbnRvLmMsIGVlbGYzMmxwcGNzaW0uYywgZWVsZjMycHBjbnRvLmMpOiBMaWtld2lzZS4KCShlZWxmMzJwcGMuYywgZWVsZjMycHBjX2Zic2QuYywgZWVsZjMycHBjc2ltbSk6IExpa2V3aXNlLgoJKGVlbGYzMnBwY2xpbnV4LmMpOiBMaWtld2lzZS4KCShlZWxmMzJwcGN2eHdvcmtzLmMpOiBMaWtld2lzZS4gIEFkZCBtaXNzaW5nIHZ4d29ya3Muc2ggZGVwZW5kZW5jeS4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgoyMDA2LTAyLTI3ICBDYXJsb3MgTydEb25lbGwgIDxjYXJsb3NAY29kZXNvdXJjZXJ5LmNvbT4KCgkqIE1ha2VmaWxlLmFtOiBBZGQgaHRtbCB0YXJnZXQuCgkqIE1ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgoJKiBwby9NYWtlLWluOiBBZGQgaHRtbCB0YXJnZXQuCgoyMDA2LTAyLTE3ICBTaHJpcmFuZyBLaGlzdGkgIDxzaHJpcmFuZ2tAa3BpdGN1bW1pbnMuY29tPgogICAgICAgICAgICBBbmlsIFBhcmFuamFwZSAgIDxhbmlscDFAa3BpdGN1bW1pbnMuY29tPgogICAgICAgICAgICBTaGlsaW4gU2hha3RpICAgIDxzaGlsaW5zQGtwaXRjdW1taW5zLmNvbT4KCgkqIHNjcmlwdHRlbXAvZWxmMzJ4YzE2eC5zYzogRGVmYXVsdCBsaW5rZXIgc2NyaXB0IGZvciB0aW55IG1vZGVsLgoJKiBzY3JpcHR0ZW1wL2VsZjMyeGMxNnhsLnNjOiBEZWZhdWx0IGxpbmtlciBzY3JpcHQgZm9yIGxhcmdlIG1vZGVsLgoJKiBzY3JpcHR0ZW1wL2VsZjMyeGMxNnhzLnNjOiBEZWZhdWx0IGxpbmtlciBzY3JpcHQgZm9yIHNtYWxsIG1vZGVsLgoJKiBlbXVscGFyYW1zL2VsZjMyeGMxNnguc2g6IEVtdWxhdGlvbiBzY3JpcHQgZm9yIHRpbnkgbW9kZWwuCgkqIGVtdWxwYXJhbXMvZWxmMzJ4YzE2eGwuc2g6IEVtdWxhdGlvbiBzY3JpcHQgZm9yIGxhcmdlIG1vZGVsLgoJKiBlbXVscGFyYW1zL2VsZjMyeGMxNnhzLnNoOiBFbXVsYXRpb24gc2NyaXB0IGZvciBzbWFsbCBtb2RlbC4KCSogTWFrZWZpbGUuYW06IEFkZCBlbnRyeSB0byBtYWtlIHhjMTZ4IHRhcmdldC4KCSogTWFrZWZpbGUuaW46IFJlZ2VuZXJhdGUuCgkqIGNvbmZpZ3VyZS50Z3Q6IFNwZWNpZnkgZGVmYXVsdCBhbmQgb3RoZXIgZW11bGF0aW9uIHBhcmFtZXRlcnMKCWZvciB4YzE2eC4KCSogTkVXUzogQW5ub3VuY2UgdGhlIHN1cHBvcnQgZm9yIHRoZSBuZXcgdGFyZ2V0LgoKMjAwNi0wMi0xNiAgTmljayBIdWRzb24gIDxuaWNrLmh1ZHNvbkBkc2wucGlwZXguY29tPgoKCSogY29uZmlndXJlLnRndCAobWlwcyplbC0qLW5ldGJzZCosIG1pcHMqLSotbmV0YnNkKik6CglVc2UgdGhlIHRyYWRpdGlvbmFsIHRhcmdldC4KCjIwMDYtMDItMTMgIEpvc2VwaCBTLiBNeWVycyAgPGpvc2VwaEBjb2Rlc291cmNlcnkuY29tPgoKCSogY29uZmlndXJlLnRndCAoYXJtKmItKi1saW51eC1nbnVlYWJpKTogQ2hhbmdlIHRvCglhcm0qYi0qLWxpbnV4LSplYWJpLgoJKGFybSotKi1saW51eC1nbnVlYWJpKTogQ2hhbmdlIHRvIGFybSotKi1saW51eC0qZWFiaS4KCjIwMDYtMDItMDggIEguSi4gTHUgIDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBsZC8yMjkwCgkqIE5FV1M6IFVwZGF0ZWQgZm9yIHRoZSBMaW51eCBsaW5rZXIgc2VhcmNoIG9yZGVyIGNoYW5nZS4KCgkqIGVtdWx0ZW1wbC9lbGYzMi5lbSAoZ2xkJHtFTVVMQVRJT05fTkFNRX1fYWZ0ZXJfb3Blbik6IENhbGwKCWdsZCR7RU1VTEFUSU9OX05BTUV9X2NoZWNrX2xkX3NvX2NvbmYgYmVmb3JlIGNoZWNraW5nIGRlZmF1bHQKCXNlYXJjaCBkaXJlY3RvcmllcyBmb3IgRFRfTkVFREVEIGVudHJpZXMuCgoyMDA2LTAyLTA3ICBQYXVsIEJyb29rICA8cGF1bEBjb2Rlc291cmNlcnkuY29tPgoKCSogZW11bHRlbXBsL2FybWVsZi5lbTogSW5jbHVkZSBlbGYvYXJtLmguCgkoYXJtX2VsZl9maW5pc2gpOiBTZXQgbG93IGFkZHJlc3MgYml0IGlmIGVudHkgcG9pbnQgaXMgYSBUaHVtYgoJZnVuY3Rpb24uCgoyMDA2LTAyLTAxICBEYW5ueSBTbWl0aCAgPGRhbm55c21pdGhAdXNlcnMuc291cmNlZm9yZ2UubmV0PgoKCSogZGVmZmlsZXAueSAoZGVmX2ltYWdlX25hbWUpOiBJZiB0aGUgaW1hZ2UgbmFtZSBkb2VzIG5vdCBoYXZlCglhIHN1ZmZpeCwgYXBwZW5kIHRoZSBkZWZhdWx0LgoJKiBsZC50ZXhpbmZvOiBEb2N1bWVudCBOQU1FLCBMSUJSQVJZIHVzYWdlIGluIFBFLUNPRkYgLmRlZiBmaWxlcy4KCjIwMDYtMDEtMzEgIERhbm55IFNtaXRoICBkYW5ueXNtaXRoQHVzZXJzLnNvdXJjZWZvcmdlLm5ldAoKCSogTkVXUzogTWVudGlvbiBzdXBwb3J0IGZvciBmb3J3YXJkIGV4cG9ydHMgaW4gUEUtQ09GRiBkbGwncy4KCSogbGQudGV4aW5mbzogRXhwYW5kIGRvY3VtZW50YXRpb24gb2YgRVhQT1JUIHN0YXRlbWVudHMgaW4KCVBFLUNPRkYgLmRlZiBmaWxlcy4KCjIwMDYtMDEtMzEgIEZpbGlwIE5hdmFyYSAgPG5hdmFyYWZAcmVhY3Rvcy5jb20+CgoJKiBkZWZmaWxlLmggKHN0cnVjdCBkZWZfZmlsZV9leHBvcnQpOiBBZGQgZmllbGQgZmxhZ19mb3J3YXJkLgoJKiBwZS1kbGwuYyAocHJvY2Vzc19kZWZfZmlsZSk6IENoZWNrIGZvciBmb3J3YXJkIGV4cG9ydHMuCgkoZ2VuZXJhdGVfZWRhdGEpOiBHZW5lcmF0ZSBmb3J3YXJkIGV4cG9ydCBzeW1ib2xzLgoJKGZpbGxfZWRhdGEpOiBFbWl0IHRoZW0uCgoJKiBwZS1kbGwuYyAocHJvY2Vzc19kZWZfZmlsZSk6IERvbid0IGNyYXNoIG9uIG1hbGZvcm1lZAoJZmFzdGNhbGwgc3ltYm9sIG5hbWVzIGluIC5kZWYgZmlsZS4KCjIwMDYtMDEtMzAgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby92aS5wbzogVXBkYXRlZCBWaWV0bmFtZXNlIHRyYW5zbGF0aW9uLgoKMjAwNi0wMS0yNyAgWWl0emNoYWsgU2NvdHQtVGhvZW5uZXMgIDxzdGhvZW5uYUBlZm4ub3JnPgoKCSogcGUtZGxsLmMgKHBlX2RsbF9nZW5lcmF0ZV9pbXBsaWIpOiBJc3N1ZSAiQ3JlYXRpbmcgbGlicmFyeQoJZmlsZToiIGFzIGluZm9ybWF0aW9uYWwgbWVzc2FnZSwgbm90IGEgd2FybmluZy4KCjIwMDYtMDEtMTggIFJvZ2VyIFNheWxlICA8cm9nZXJAZXllc29wZW4uY29tPgoKCSogZW11bHRlbXBsL2lyaXguZW06IFVzZSBsYmFzZW5hbWUgaW5zdGVhZCBvZiBiYXNlbmFtZS4KCjIwMDYtMDEtMTYgIE5pY2sgQ2xpZnRvbiAgPG5pY2tjQHJlZGhhdC5jb20+CgoJKiBwby96aF9DTi5wbzogTmV3IENoaW5lc2UgKHNpbXBsaWZpZWQpIHRyYW5zbGF0aW9uLgoJKiBjb25maWd1cmUuaW4gKEFMTF9MSU5HVUFTKTogQWRkICJ6aF9DSCIuCgkqIGNvbmZpZ3VyZTogUmVnZW5lcmF0ZS4KCjIwMDYtMDEtMTYgIEJlcm5oYXJkIEZpc2NoZXIgIDxhbGRvdEBnY2MuZ251Lm9yZz4KCgkqIGxkLnRleGluZm8gKE9wdGlvbnMpOiBGaXggdHlwby4KCkZvciBvbGRlciBjaGFuZ2VzIHNlZSBDaGFuZ2VMb2ctMjAwNQoMCkNvcHlyaWdodCAoQykgMjAwNiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KCkNvcHlpbmcgYW5kIGRpc3RyaWJ1dGlvbiBvZiB0aGlzIGZpbGUsIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24sCmFyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkgcHJvdmlkZWQgdGhlIGNvcHlyaWdodApub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuCgpMb2NhbCBWYXJpYWJsZXM6Cm1vZGU6IGNoYW5nZS1sb2cKbGVmdC1tYXJnaW46IDgKZmlsbC1jb2x1bW46IDc0CnZlcnNpb24tY29udHJvbDogbmV2ZXIKRW5kOgo=