KnZlcnNpb242LnR4dCogIEZvciBWaW0gdmVyc2lvbiA3LjQuICBMYXN0IGNoYW5nZTogMjAxMyBKdWwgMjgKCgoJCSAgVklNIFJFRkVSRU5DRSBNQU5VQUwgICAgYnkgQnJhbSBNb29sZW5hYXIKCgpXZWxjb21lIHRvIFZpbSBWZXJzaW9uIDYuMCEgIEEgbGFyZ2UgbnVtYmVyIG9mIGZlYXR1cmVzIGhhcyBiZWVuIGFkZGVkLiAgVGhpcwpmaWxlIG1lbnRpb25zIGFsbCB0aGUgbmV3IGl0ZW1zIHRoYXQgaGF2ZSBiZWVuIGFkZGVkLCBjaGFuZ2VzIHRvIGV4aXN0aW5nCmZlYXR1cmVzIGFuZCBidWcgZml4ZXMgY29tcGFyZWQgdG8gVmltIDUueC4KClNlZSB8dmlfZGlmZi50eHR8IGZvciBhbiBvdmVydmlldyBvZiBkaWZmZXJlbmNlcyBiZXR3ZWVuIFZpIGFuZCBWaW0gNi4wLgpTZWUgfHZlcnNpb240LnR4dHwgZm9yIGRpZmZlcmVuY2VzIGJldHdlZW4gVmltIDMuMCBhbmQgVmltIDQuMC4KU2VlIHx2ZXJzaW9uNS50eHR8IGZvciBkaWZmZXJlbmNlcyBiZXR3ZWVuIFZpbSA0LjAgYW5kIFZpbSA1LjAuCgpJTkNPTVBBVElCTEUgQ0hBTkdFUwkJCXxpbmNvbXBhdGlibGUtNnwKCkN1cnNvciBwb3NpdGlvbiBpbiBWaXN1YWwgbW9kZQkJfGN1cnBvcy12aXN1YWx8CnN1YnN0aXR1dGUgY29tbWFuZCBWaSBjb21wYXRpYmxlCXxzdWJzdGl0dXRlLUNSfApnbG9iYWwgb3B0aW9uIHZhbHVlcyBpbnRyb2R1Y2VkCQl8bmV3LWdsb2JhbC12YWx1ZXN8CidmaWxlZW5jb2RpbmcnIGNoYW5nZWQJCQl8ZmlsZWVuY29kaW5nLWNoYW5nZWR8CkRpZ3JhcGhzIGNoYW5nZWQJCQl8ZGlncmFwaHMtY2hhbmdlZHwKRmlsZXR5cGUgZGV0ZWN0aW9uIGNoYW5nZWQJCXxmaWxldHlwZWRldGVjdC1jaGFuZ2VkfApVbmxpc3RlZCBidWZmZXJzIGludHJvZHVjZWQJCXxuZXctdW5saXN0ZWQtYnVmZmVyc3wKQ1RSTC1VIGluIENvbW1hbmQtbGluZSBtb2RlIGNoYW5nZWQJfENUUkwtVS1jaGFuZ2VkfApDdGFncyBnb25lCQkJCXxjdGFncy1nb25lfApEb2N1bWVudGF0aW9uIHJlb3JnYW5pemVkCQl8ZG9jdW1lbnRhdGlvbi02fApNb2RlbGVzcyBzZWxlY3Rpb24gYW5kIGNsaXBib2FyZAl8bW9kZWxlc3MtYW5kLWNsaXBib2FyZHwKU21hbGwgaW5jb21wYXRpYmlsaXRpZXMJCQl8aW5jb21wLXNtYWxsLTZ8CgpORVcgRkVBVFVSRVMJCQkJfG5ldy02fAoKRm9sZGluZwkJCQkJfG5ldy1mb2xkaW5nfApWZXJ0aWNhbGx5IHNwbGl0IHdpbmRvd3MJCXxuZXctdmVydHNwbGl0fApEaWZmIG1vZGUJCQkJfG5ldy1kaWZmLW1vZGV8CkVhc3kgVmltOiBjbGljay1hbmQtdHlwZQkJfG5ldy1ldmltfApVc2VyIG1hbnVhbAkJCQl8bmV3LXVzZXItbWFudWFsfApGbGV4aWJsZSBpbmRlbnRpbmcJCQl8bmV3LWluZGVudC1mbGV4fApFeHRlbmRlZCBzZWFyY2ggcGF0dGVybnMJCXxuZXctc2VhcmNocGF0fApVVEYtOCBzdXBwb3J0CQkJCXxuZXctdXRmLTh8Ck11bHRpLWxhbmd1YWdlIHN1cHBvcnQJCQl8bmV3LW11bHRpLWxhbmd8ClBsdWdpbiBzdXBwb3J0CQkJCXxuZXctcGx1Z2luc3wKRmlsZXR5cGUgcGx1Z2lucwkJCXxuZXctZmlsZXR5cGUtcGx1Z2luc3wKRmlsZSBicm93c2VyCQkJCXxuZXctZmlsZS1icm93c2VyfApFZGl0aW5nIGZpbGVzIG92ZXIgYSBuZXR3b3JrCQl8bmV3LW5ldHdvcmstZmlsZXN8CldpbmRvdyBmb3IgY29tbWFuZC1saW5lIGVkaXRpbmcJCXxuZXctY21kd2lufApEZWJ1Z2dpbmcgbW9kZQkJCQl8bmV3LWRlYnVnLW1vZGV8CkN1cnNvciBpbiB2aXJ0dWFsIHBvc2l0aW9uCQl8bmV3LXZpcnRlZGl0fApEZWJ1Z2dlciBpbnRlcmZhY2UJCQl8bmV3LWRlYnVnLWl0ZnwKQ29tbXVuaWNhdGlvbiBiZXR3ZWVuIFZpbXMJCXxuZXctdmltLXNlcnZlcnwKQnVmZmVyIHR5cGUgb3B0aW9ucwkJCXxuZXctYnVmdHlwZXwKUHJpbnRpbmcJCQkJfG5ldy1wcmludGluZ3wKUG9ydHMJCQkJCXxwb3J0cy02fApRdWlja2ZpeCBleHRlbmRlZAkJCXxxdWlja2ZpeC02fApPcGVyYXRvciBtb2RpZmllcnMJCQl8bmV3LW9wZXJhdG9yLW1vZHwKU2VhcmNoIFBhdGgJCQkJfG5ldy1zZWFyY2gtcGF0aHwKV3JpdGluZyBmaWxlcyBpbXByb3ZlZAkJCXxuZXctZmlsZS13cml0aW5nfApBcmd1bWVudCBsaXN0CQkJCXxuZXctYXJndW1lbnQtbGlzdHwKUmVzdG9yZSBhIFZpZXcJCQkJfG5ldy1WaWV3fApDb2xvciBzY2hlbWVzCQkJCXxuZXctY29sb3Itc2NoZW1lc3wKVmFyaW91cyBuZXcgaXRlbXMJCQl8bmV3LWl0ZW1zLTZ8CgpJTVBST1ZFTUVOVFMJCQkJfGltcHJvdmVtZW50cy02fAoKQ09NUElMRSBUSU1FIENIQU5HRVMJCQl8Y29tcGlsZS1jaGFuZ2VzLTZ8CgpCVUcgRklYRVMJCQkJfGJ1Zy1maXhlcy02fAoKVkVSU0lPTiA2LjEJCQl8dmVyc2lvbi02LjF8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuMXwKQWRkZWQJCQkJCXxhZGRlZC02LjF8CkZpeGVkCQkJCQl8Zml4ZWQtNi4xfAoKVkVSU0lPTiA2LjIJCQl8dmVyc2lvbi02LjJ8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuMnwKQWRkZWQJCQkJCXxhZGRlZC02LjJ8CkZpeGVkCQkJCQl8Zml4ZWQtNi4yfAoKVkVSU0lPTiA2LjMJCQl8dmVyc2lvbi02LjN8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuM3wKQWRkZWQJCQkJCXxhZGRlZC02LjN8CkZpeGVkCQkJCQl8Zml4ZWQtNi4zfAoKVkVSU0lPTiA2LjQJCQl8dmVyc2lvbi02LjR8CkNoYW5nZWQJCQkJCXxjaGFuZ2VkLTYuNHwKQWRkZWQJCQkJCXxhZGRlZC02LjR8CkZpeGVkCQkJCQl8Zml4ZWQtNi40fAoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CklOQ09NUEFUSUJMRSBDSEFOR0VTCQkJCSppbmNvbXBhdGlibGUtNioKClRoZXNlIGNoYW5nZXMgYXJlIGluY29tcGF0aWJsZSB3aXRoIHByZXZpb3VzIHJlbGVhc2VzLiAgQ2hlY2sgdGhpcyBsaXN0IGlmIHlvdQpydW4gaW50byBhIHByb2JsZW0gd2hlbiB1cGdyYWRpbmcgZnJvbSBWaW0gNS54IHRvIDYuMAoKCkN1cnNvciBwb3NpdGlvbiBpbiBWaXN1YWwgbW9kZQkJCSpjdXJwb3MtdmlzdWFsKgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCldoZW4gZ29pbmcgZnJvbSBvbmUgd2luZG93IHRvIGFub3RoZXIgd2luZG93IG9uIHRoZSBzYW1lIGJ1ZmZlciB3aGlsZSBpbgpWaXN1YWwgbW9kZSwgdGhlIGN1cnNvciBwb3NpdGlvbiBvZiB0aGUgb3RoZXIgd2luZG93IGlzIGFkanVzdGVkIHRvIGtlZXAgdGhlCnNhbWUgVmlzdWFsIGFyZWEuICBUaGlzIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgc3RhcnQgb2YgdGhlIFZpc3VhbCBhcmVhIGluIG9uZQp3aW5kb3cgYW5kIHRoZSBlbmQgaW4gYW5vdGhlci4gIEluIHZpbSA1LnggdGhlIGN1cnNvciBwb3NpdGlvbiBvZiB0aGUgb3RoZXIKd2luZG93IHdvdWxkIGJlIHVzZWQsIHdoaWNoIGNvdWxkIGJlIGFueXdoZXJlIGFuZCB3YXMgbm90IHZlcnkgdXNlZnVsLgoKClN1YnN0aXR1dGUgY29tbWFuZCBWaSBjb21wYXRpYmxlCQkqc3Vic3RpdHV0ZS1DUioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBzdWJzdGl0dXRlIHN0cmluZyAodGhlICJ0byIgcGFydCBvZiB0aGUgc3Vic3RpdHV0ZSBjb21tYW5kKSBoYXMgYmVlbiBtYWRlClZpIGNvbXBhdGlibGUuICBQcmV2aW91c2x5IGEgQ1RSTC1WIGhhZCBhIHNwZWNpYWwgbWVhbmluZyBhbmQgY291bGQgYmUgdXNlZCB0bwpwcmV2ZW50IGEgPENSPiB0byBpbnNlcnQgYSBsaW5lIGJyZWFrLiAgVGhpcyBtYWRlIGl0IGltcG9zc2libGUgdG8gaW5zZXJ0IGEKQ1RSTC1WIGJlZm9yZSBhIGxpbmUgYnJlYWsuICBOb3cgYSBiYWNrc2xhc2ggaXMgdXNlZCB0byBwcmV2ZW50IGEgPENSPiB0bwpjYXVzZSBhIGxpbmUgYnJlYWsuICBTaW5jZSB0aGUgbnVtYmVyIG9mIGJhY2tzbGFzaGVzIGlzIGhhbHZlZCwgaXQgaXMgc3RpbGwKcG9zc2libGUgdG8gaW5zZXJ0IGEgbGluZSBicmVhayBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLiAgVGhpcyBub3cgd29ya3MganVzdApsaWtlIFZpLCBidXQgaXQncyBub3QgY29tcGF0aWJsZSB3aXRoIFZpbSB2ZXJzaW9ucyBiZWZvcmUgNi4wLgoKV2hlbiBhICI6cyIgY29tbWFuZCBkb2Vzbid0IG1ha2UgYW55IHN1YnN0aXR1dGlvbnMsIGl0IG5vIGxvbmdlciBzZXRzIHRoZSAnWwphbmQgJ10gbWFya3MuICBUaGlzIGlzIG5vdCByZWxhdGVkIHRvIFZpLCBzaW5jZSBpdCBkb2Vzbid0IGhhdmUgdGhlc2UgbWFya3MuCgoKR2xvYmFsIG9wdGlvbiB2YWx1ZXMgaW50cm9kdWNlZAkJCSpuZXctZ2xvYmFsLXZhbHVlcyoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlcmUgYXJlIG5vdyBnbG9iYWwgdmFsdWVzIGZvciBvcHRpb25zIHdoaWNoIGFyZSBsb2NhbCB0byBhIGJ1ZmZlciBvciB3aW5kb3cuClByZXZpb3VzbHkgdGhlIGxvY2FsIG9wdGlvbnMgd2VyZSBjb3BpZWQgZnJvbSBvbmUgYnVmZmVyIHRvIGFub3RoZXIuICBXaGVuCmVkaXRpbmcgYW5vdGhlciBmaWxlIHRoaXMgY291bGQgY2F1c2Ugb3B0aW9uIHZhbHVlcyBmcm9tIGEgbW9kZWxpbmUgdG8gYmUgdXNlZApmb3IgdGhlIHdyb25nIGZpbGUuICBOb3cgdGhlIGdsb2JhbCB2YWx1ZXMgYXJlIHVzZWQgd2hlbiBlbnRlcmluZyBhIGJ1ZmZlcgp0aGF0IGhhcyBub3QgYmVlbiB1c2VkIGJlZm9yZS4gIEFsc28sIHdoZW4gZWRpdGluZyBhbm90aGVyIGJ1ZmZlciBpbiBhIHdpbmRvdywKdGhlIGxvY2FsIHdpbmRvdyBvcHRpb25zIGFyZSByZXNldCB0byB0aGVpciBnbG9iYWwgdmFsdWVzLiAgVGhlICI6c2V0IiBjb21tYW5kCnNldHMgYm90aCB0aGUgbG9jYWwgYW5kIGdsb2JhbCB2YWx1ZXMsIHRoaXMgaXMgc3RpbGwgY29tcGF0aWJsZS4gIEJ1dCBhCm1vZGVsaW5lIG9ubHkgc2V0cyB0aGUgbG9jYWwgdmFsdWUsIHRoaXMgaXMgbm90IGJhY2t3YXJkcyBjb21wYXRpYmxlLgoKIjpsZXQgJm9wdCA9IHZhbCIgbm93IHNldHMgdGhlIGxvY2FsIGFuZCBnbG9iYWwgdmFsdWVzLCBsaWtlICI6c2V0Ii4gIE5ldwpjb21tYW5kcyBoYXZlIGJlZW4gYWRkZWQgdG8gc2V0IHRoZSBnbG9iYWwgb3IgbG9jYWwgdmFsdWU6Cgk6bGV0ICZvcHQgPSB2YWwJCWxpa2UgIjpzZXQiCgk6bGV0ICZnOm9wdCA9IHZhbAlsaWtlICI6c2V0Z2xvYmFsIgoJOmxldCAmbDpvcHQgPSB2YWwJbGlrZSAiOnNldGxvY2FsIgoKCidmaWxlZW5jb2RpbmcnIGNoYW5nZWQJCQkJKmZpbGVlbmNvZGluZy1jaGFuZ2VkKgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgonZmlsZWVuY29kaW5nJyB3YXMgdXNlZCBpbiBWaW0gNS54IHRvIHNldCB0aGUgZW5jb2RpbmcgdXNlZCBpbnNpZGUgYWxsIG9mIFZpbS4KVGhpcyB3YXMgYSBiaXQgc3RyYW5nZSwgYmVjYXVzZSBpdCB3YXMgbG9jYWwgdG8gYSBidWZmZXIgYW5kIHdvcmtlZCBmb3IgYWxsCmJ1ZmZlcnMuICBJdCBjb3VsZCBuZXZlciBiZSBkaWZmZXJlbnQgYmV0d2VlbiBidWZmZXJzLCBiZWNhdXNlIGl0IGNoYW5nZWQgdGhlCndheSB0ZXh0IGluIGFsbCBidWZmZXJzIHdhcyBpbnRlcnByZXRlZC4KSXQgaXMgbm93IHVzZWQgZm9yIHRoZSBlbmNvZGluZyBvZiB0aGUgZmlsZSByZWxhdGVkIHRvIHRoZSBidWZmZXIuICBJZiB5b3UKc3RpbGwgc2V0ICdmaWxlZW5jb2RpbmcnIGl0IGlzIGxpa2VseSB0byBiZSBvdmVyd3JpdHRlbiBieSB0aGUgZGV0ZWN0ZWQKZW5jb2RpbmcgZnJvbSAnZmlsZWVuY29kaW5ncycsIHRodXMgaXQgaXMgIm1vc3RseSBoYXJtbGVzcyIuClRoZSBvbGQgRmlsZUVuY29kaW5nIGF1dG9jb21tYW5kIG5vdyBkb2VzIHRoZSBzYW1lIGFzIHRoZSBuZXcgRW5jb2RpbmdDaGFuZ2VkCmV2ZW50LgoKCkRpZ3JhcGhzIGNoYW5nZWQJCQkJKmRpZ3JhcGhzLWNoYW5nZWQqCi0tLS0tLS0tLS0tLS0tLS0KClRoZSBkZWZhdWx0IGRpZ3JhcGhzIG5vdyBjb3JyZXNwb25kIHRvIFJGQzEzNDUuICBUaGlzIGlzIHZlcnkgZGlmZmVyZW50IGZyb20Kd2hhdCB3YXMgdXNlZCBpbiBWaW0gNS54LiB8ZGlncmFwaHN8CgoKRmlsZXR5cGUgZGV0ZWN0aW9uIGNoYW5nZWQJCQkqZmlsZXR5cGVkZXRlY3QtY2hhbmdlZCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBmaWxldHlwZSBkZXRlY3Rpb24gcHJldmlvdXNseSB3YXMgdXNpbmcgdGhlICJmaWxldHlwZSIgYXV0b2NvbW1hbmQgZ3JvdXAuClRoaXMgY2F1c2VkIGNvbmZ1c2lvbiB3aXRoIHRoZSBGaWxlVHlwZSBldmVudCBuYW1lIChjYXNlIGlzIGlnbm9yZWQpLiAgVGhlCmdyb3VwIGlzIG5vdyBjYWxsZWQgImZpbGV0eXBlZGV0ZWN0Ii4gIEl0IHN0aWxsIHdvcmtzLCBidXQgaWYgdGhlICJmaWxldHlwZSIKZ3JvdXAgaXMgdXNlZCB0aGUgYXV0b2NvbW1hbmRzIHdpbGwgbm90IGJlIHJlbW92ZWQgYnkgIjpmaWxldHlwZSBvZmYiLgogICBUaGUgc3VwcG9ydCBmb3IgJ3J1bnRpbWVwYXRoJyBoYXMgbWFkZSB0aGUgIm15ZmlsZXR5cGVmaWxlIiBhbmQKIm15c3ludGF4ZmlsZSIgbWVjaGFuaXNtIG9ic29sZXRlLiAgVGhleSBhcmUgc3RpbGwgdXNlZCBmb3IgYmFja3dhcmRzCmNvbXBhdGliaWxpdHkuCgpUaGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBGaWxlVHlwZSBldmVudCBhbmQgc2V0dGluZyB0aGUgJ3N5bnRheCcgb3B0aW9uIHdhcwpwcmV2aW91c2x5IGluIHRoZSAic3ludGF4IiBhdXRvY29tbWFuZCBncm91cC4gIFRoYXQgY2F1c2VkIGNvbmZ1c2lvbiB3aXRoIHRoZQpTeW50YXggZXZlbnQgbmFtZS4gIFRoZSBncm91cCBpcyBub3cgY2FsbGVkICJzeW50YXhzZXQiLgoKVGhlIGRpc3RyaWJ1dGVkIHN5bnRheCBmaWxlcyBubyBsb25nZXIgY29udGFpbiAic3ludGF4IGNsZWFyIi4gIFRoYXQgbWFrZXMgaXQKcG9zc2libGUgdG8gaW5jbHVkZSBvbmUgaW4gdGhlIG90aGVyIHdpdGhvdXQgdHJpY2tzLiAgVGhlIHN5bnRheCBpcyBub3cKY2xlYXJlZCB3aGVuIHRoZSAnc3ludGF4JyBvcHRpb24gaXMgc2V0IChieSBhbiBhdXRvY29tbWFuZCBhZGRlZCBmcm9tCnN5bmxvYWQudmltKS4gIFRoaXMgbWFrZXMgdGhlIHN5bnRheCBjbGVhcmVkIHdoZW4gdGhlIHZhbHVlIG9mICdzeW50YXgnIGRvZXMKbm90IGNvcnJlc3BvbmQgdG8gYSBzeW50YXggZmlsZS4gIFByZXZpb3VzbHkgdGhlIGV4aXN0aW5nIGhpZ2hsaWdodGluZyB3YXMKa2VwdC4KCgpVbmxpc3RlZCBidWZmZXJzIGludHJvZHVjZWQJCQkqbmV3LXVubGlzdGVkLWJ1ZmZlcnMqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlcmUgaXMgbm93IGEgZGlmZmVyZW5jZSBiZXR3ZWVuIGJ1ZmZlcnMgd2hpY2ggZG9uJ3QgYXBwZWFyIGluIHRoZSBidWZmZXIKbGlzdCBhbmQgYnVmZmVycyB3aGljaCBhcmUgcmVhbGx5IG5vdCBpbiB0aGUgYnVmZmVyIGxpc3QuICBDb21tYW5kcyBsaWtlCiI6bHMiLCAiOmJuZXh0IiwgIjpibGFzdCIgYW5kIHRoZSBCdWZmZXJzIG1lbnUgd2lsbCBza2lwIGJ1ZmZlcnMgbm90IGluIHRoZQpidWZmZXIgbGlzdC4gfHVubGlzdGVkLWJ1ZmZlcnwKVGhlICdidWZsaXN0ZWQnIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBtYWtlIGEgYnVmZmVyIGFwcGVhciBpbiB0aGUgYnVmZmVyIGxpc3QKb3Igbm90LgoKU2V2ZXJhbCBjb21tYW5kcyB0aGF0IHByZXZpb3VzbHkgYWRkZWQgYSBidWZmZXIgdG8gdGhlIGJ1ZmZlciBsaXN0IG5vdyBjcmVhdGUKYW4gdW5saXN0ZWQgYnVmZmVyLiAgVGhpcyBtZWFucyB0aGF0IGEgIjpibmV4dCIgYW5kICI6YmFsbCIgd2lsbCBub3QgZmluZCB0aGVzZQpmaWxlcyB1bnRpbCB0aGV5IGhhdmUgYWN0dWFsbHkgYmVlbiBlZGl0ZWQuICBGb3IgZXhhbXBsZSwgYnVmZmVycyB1c2VkIGZvciB0aGUKYWx0ZXJuYXRpdmUgZmlsZSBieSAiOndyaXRlIGZpbGUiIGFuZCAiOnJlYWQgZmlsZSIuCiAgIE90aGVyIGNvbW1hbmRzIHByZXZpb3VzbHkgY29tcGxldGVseSBkZWxldGVkIGEgYnVmZmVyIGFuZCBub3cgb25seSByZW1vdmUKdGhlIGJ1ZmZlciBmcm9tIHRoZSBidWZmZXIgbGlzdC4gIENvbW1hbmRzIHJlbHlpbmcgb24gYSBidWZmZXIgbm90IHRvIGJlCnByZXNlbnQgbWlnaHQgZmFpbC4gIEZvciBleGFtcGxlLCBhICI6YmRlbGV0ZSIgY29tbWFuZCBpbiBhbiBhdXRvY29tbWFuZCB0aGF0CnJlbGllZCBvbiBzb21ldGhpbmcgZm9sbG93aW5nIHRvIGZhaWwgKHdhcyB1c2VkIGluIHRoZSBhdXRvbWF0aWMgdGVzdHMpLgp8OmJ3aXBlb3V0fCBjYW4gYmUgdXNlZCBmb3IgdGhlIG9sZCBtZWFuaW5nIG9mICI6YmRlbGV0ZSIuCgpUaGUgQnVmRGVsZXRlIGF1dG9jb21tYW5kIGV2ZW50IGlzIG5vdyB0cmlnZ2VyZWQgd2hlbiBhIGJ1ZmZlciBpcyByZW1vdmVkIGZyb20KdGhlIGJ1ZmZlciBsaXN0LiAgVGhlIEJ1ZkNyZWF0ZSBldmVudCBpcyBvbmx5IHRyaWdnZXJlZCB3aGVuIGEgYnVmZmVyIGlzCmNyZWF0ZWQgdGhhdCBpcyBhZGRlZCB0byB0aGUgYnVmZmVyIGxpc3QsIG9yIHdoZW4gYW4gZXhpc3RpbmcgYnVmZmVyIGlzIGFkZGVkCnRvIHRoZSBidWZmZXIgbGlzdC4gIEJ1ZkFkZCBpcyBhIG5ldyBuYW1lIGZvciBCdWZDcmVhdGUuClRoZSBuZXcgQnVmTmV3IGV2ZW50IGlzIGZvciBjcmVhdGluZyBhbnkgYnVmZmVyIGFuZCBCdWZXaXBlb3V0IGZvciByZWFsbHkKZGVsZXRpbmcgYSBidWZmZXIuCgpXaGVuIGRvaW5nIEluc2VydCBtb2RlIGNvbXBsZXRpb24sIG9ubHkgYnVmZmVycyBpbiB0aGUgYnVmZmVyIGxpc3QgYXJlCnNjYW5uZWQuICBBZGRlZCB0aGUgJ1UnIGZsYWcgdG8gJ2NvbXBsZXRlJyB0byBkbyBjb21wbGV0aW9uIGZyb20gdW5saXN0ZWQKYnVmZmVycy4KClVubGlzdGVkIGJ1ZmZlcnMgYXJlIG5vdCBzdG9yZWQgaW4gYSB2aW1pbmZvIGZpbGUuCgoKQ1RSTC1VIGluIENvbW1hbmQtbGluZSBtb2RlIGNoYW5nZWQJCSpDVFJMLVUtY2hhbmdlZCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClVzaW5nIENUUkwtVSB3aGVuIGVkaXRpbmcgdGhlIGNvbW1hbmQgbGluZSBjbGVhcmVkIHRoZSB3aG9sZSBsaW5lLiAgTW9zdApzaGVsbHMgb25seSBkZWxldGUgdGhlIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBjdXJzb3IuICBNYWRlIGl0IHdvcmsgbGlrZSB0aGF0LgooU3RldmUgV2FsbCkKCllvdSBjYW4gZ2V0IHRoZSBvbGQgYmVoYXZpb3Igd2l0aCBDVFJMLUUgQ1RSTC1VOiA+Cgk6Y25vcmVtYXAgPEMtVT4gPEMtRT48Qy1VPgoKCkN0YWdzIGdvbmUJCQkJCSpjdGFncy1nb25lKgotLS0tLS0tLS0tCgpDdGFncyBpcyBubyBsb25nZXIgcGFydCBvZiB0aGUgVmltIGRpc3RyaWJ1dGlvbi4gIEl0J3Mgbm93IGEgZ3Jvd24tdXAgcHJvZ3JhbQpieSBpdHNlbGYsIGl0IGRlc2VydmVzIHRvIGJlIGRpc3RyaWJ1dGVkIHNlcGFyYXRlbHkuCkN0YWdzIGNhbiBiZSBmb3VuZCBoZXJlOiBodHRwOi8vY3RhZ3Muc2YubmV0Ly4KCgpEb2N1bWVudGF0aW9uIHJlb3JnYW5pemVkCQkJKmRvY3VtZW50YXRpb24tNioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIGRvY3VtZW50YXRpb24gaGFzIGJlZW4gcmVvcmdhbml6ZWQsIGFuIGl0ZW0gbWF5IG5vdCBiZSB3aGVyZSB5b3UgZm91bmQgaXQKaW4gVmltIDUueC4KLSBUaGUgdXNlciBtYW51YWwgd2FzIGFkZGVkLCBzb21lIGl0ZW1zIGhhdmUgYmVlbiBtb3ZlZCB0byBpdCBmcm9tIHRoZQogIHJlZmVyZW5jZSBtYW51YWwuCi0gVGhlIHF1aWNrIHJlZmVyZW5jZSBpcyBub3cgaW4gYSBzZXBhcmF0ZSBmaWxlIChzbyB0aGF0IGl0IGNhbiBiZSBwcmludGVkKS4KClRoZSBleGFtcGxlcyBpbiB0aGUgZG9jdW1lbnRhdGlvbiB3ZXJlIHByZXZpb3VzbHkgbWFya2VkIHdpdGggYSAiPiIgaW4gdGhlCmZpcnN0IGNvbHVtbi4gIFRoaXMgbWFkZSBpdCBkaWZmaWN1bHQgdG8gY29weS9wYXN0ZSB0aGVtLiAgVGhlcmUgaXMgbm93IGEKc2luZ2xlICI+IiBiZWZvcmUgdGhlIGV4YW1wbGUgYW5kIGl0IGVuZHMgYXQgYSAiPCIgb3IgYSBub24tYmxhbmsgaW4gdGhlIGZpcnN0CmNvbHVtbi4gIFRoaXMgYWxzbyBsb29rcyBiZXR0ZXIgd2l0aG91dCBoaWdobGlnaHRpbmcuCgonaGVscGZpbGUnIGlzIG5vIGxvbmdlciB1c2VkIHRvIGZpbmQgdGhlIGhlbHAgdGFncyBmaWxlLiAgVGhpcyBhbGxvd3MgYSB1c2VyCnRvIGFkZCBpdHMgb3duIGhlbHAgZmlsZXMgKGUuZy4sIGZvciBwbHVnaW5zKS4KCgpNb2RlbGVzcyBzZWxlY3Rpb24gYW5kIGNsaXBib2FyZAkJKm1vZGVsZXNzLWFuZC1jbGlwYm9hcmQqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGUgbW9kZWxlc3Mgc2VsZWN0aW9uIGlzIHVzZWQgdG8gc2VsZWN0IHRleHQgd2hlbiBWaXN1YWwgbW9kZSBjYW4ndCBiZSB1c2VkLApmb3IgZXhhbXBsZSB3aGVuIGVkaXRpbmcgdGhlIGNvbW1hbmQgbGluZSBvciBhdCB0aGUgbW9yZSBwcm9tcHQuCkluIFZpbSA1LnggdGhlIG1vZGVsZXNzIHNlbGVjdGlvbiB3YXMgYWx3YXlzIHVzZWQuICBPbiBNUy1XaW5kb3dzIHRoaXMgY2F1c2VkCnRoZSBjbGlwYm9hcmQgdG8gYmUgb3ZlcndyaXR0ZW4sIHdpdGggbm8gd2F5IHRvIGF2b2lkIHRoYXQuICBUaGUgbW9kZWxlc3MKc2VsZWN0aW9uIG5vdyBvYmV5cyB0aGUgJ2EnIGFuZCAnQScgZmxhZ3MgaW4gJ2d1aW9wdGlvbnMnIGFuZCAiYXV0b3NlbGVjdCIgYW5kCiJhdXRvc2VsZWN0bWwiIGluICdjbGlwYm9hcmQnLiAgQnkgZGVmYXVsdCB0aGVyZSBpcyBubyBhdXRvbWF0aWMgY29weSBvbgpNUy1XaW5kb3dzLiAgVXNlIHRoZSB8Y19DVFJMLVl8IGNvbW1hbmQgdG8gbWFudWFsbHkgY29weSB0aGUgc2VsZWN0aW9uLgoKVG8gZ2V0IHRoZSBvbGQgYmVoYXZpb3IgYmFjaywgZG8gdGhpczogPgoKCTpzZXQgY2xpcGJvYXJkXj1hdXRvc2VsZWN0bWwgZ3Vpb3B0aW9ucys9QQoKClNtYWxsIGluY29tcGF0aWJpbGl0aWVzCQkJCSppbmNvbXAtc21hbGwtNioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCidiYWNrdXBkaXInLCAnY2RwYXRoJywgJ2RpcmVjdG9yeScsICdlcXVhbHByZycsICdlcnJvcmZpbGUnLCAnZm9ybWF0cHJnJywKJ2dyZXBwcmcnLCAnaGVscGZpbGUnLCAnbWFrZWVmJywgJ21ha2VwcmcnLCAna2V5d29yZHByZycsICdjc2NvcGVwcmcnLAondmltaW5mbycgYW5kICdydW50aW1lcGF0aCcgY2FuIG5vIGxvbmdlciBiZSBzZXQgZnJvbSBhIG1vZGVsaW5lLCBmb3IgYmV0dGVyCnNlY3VyaXR5LgoKUmVtb3ZlZCAnXycgZnJvbSB0aGUgJ2JyZWFrYXQnIGRlZmF1bHQ6IEl0J3MgY29tbW9ubHkgdXNlZCBpbiBrZXl3b3Jkcy4KClRoZSBkZWZhdWx0IGZvciAnbW91c2VoaWRlJyBpcyBvbiwgYmVjYXVzZSB0aGlzIHdvcmtzIHdlbGwgZm9yIG1vc3QgcGVvcGxlLgoKVGhlIEFtaWdhIGJpbmFyeSBpcyBub3cgYWx3YXlzIGNvbXBpbGVkIHdpdGggImJpZyIgZmVhdHVyZXMuICBUaGUgImJpZyIgYmluYXJ5CmFyY2hpdmUgbm8gbG9uZ2VyIGV4aXN0cy4KClRoZSBpdGVtcyAiW1JPXSIsICJbK10iLCAiW2hlbHBdIiwgIltQcmV2aWV3XSIgYW5kICJbZmlsZXR5cGVdIiBpbgonc3RhdHVzbGluZScgbm8gbG9uZ2VyIGhhdmUgYSBsZWFkaW5nIHNwYWNlLgoKTm9uLVVuaXggc3lzdGVtczogV2hlbiBleHBhbmRpbmcgd2lsZGNhcmRzIGZvciB0aGUgVmltIGFyZ3VtZW50cywgZG9uJ3QgdXNlCidzdWZmaXhlcycuICBJdCBub3cgd29ya3MgYXMgaWYgdGhlIHNoZWxsIGhhZCBleHBhbmRlZCB0aGUgYXJndW1lbnRzLgoKVGhlICdsaXNwJywgJ3NtYXJ0aW5kZW50JyBhbmQgJ2NpbmRlbnQnIG9wdGlvbnMgYXJlIG5vdCBzd2l0Y2hlZCBvZmYgd2hlbgoncGFzdGUnIGlzIHNldC4gIFRoZSBhdXRvLWluZGVudGluZyBpcyBkaXNhYmxlZCB3aGVuICdwYXN0ZScgaXMgc2V0LCBidXQKbWFudWFsIGluZGVudGluZyB3aXRoICI9IiBzdGlsbCB3b3Jrcy4KCldoZW4gZm9ybWF0dGluZyB3aXRoICI9IiB1c2VzICdjaW5kZW50JyBvciAnaW5kZW50ZXhwcicgaW5kZW50aW5nLCBhbmQgdGhlcmUKaXMgbm8gY2hhbmdlIGluIGluZGVudCwgdGhpcyBpcyBub3QgY291bnRlZCBhcyBhIGNoYW5nZSAoJ21vZGlmaWVkJyBpc24ndCBzZXQKYW5kIHRoZXJlIGlzIG5vdGhpbmcgdG8gdW5kbykuCgpSZXBvcnQgJ21vZGlmaWVkJyBhcyBjaGFuZ2VkIHdoZW4gJ2ZpbGVlbmNvZGluZycgb3IgJ2ZpbGVmb3JtYXQnIHdhcyBzZXQuClRodXMgaXQgcmVmbGVjdHMgdGhlIHBvc3NpYmlsaXR5IHRvIGFiYW5kb24gdGhlIGJ1ZmZlciB3aXRob3V0IGxvc2luZyBjaGFuZ2VzLgoKVGhlICJTYXZlIEFzIiBtZW51IGVudHJ5IG5vdyBlZGl0cyB0aGUgc2F2ZWQgZmlsZS4gIE1vc3QgcGVvcGxlIGV4cGVjdCBpdCB0bwp3b3JrIGxpa2UgdGhpcy4KCkEgYnVmZmVyIGZvciBhIGRpcmVjdG9yeSBpcyBubyBsb25nZXIgYWRkZWQgdG8gdGhlIEJ1ZmZlcnMgbWVudS4KClJlbmFtZWQgPFJldHVybj4gdG8gPEVudGVyPiwgc2luY2UgdGhhdCdzIHdoYXQgaXQncyBjYWxsZWQgb24gbW9zdCBrZXlib2FyZHMuClRodXMgaXQncyBub3cgdGhlIGhpdC1lbnRlciBwcm9tcHQgaW5zdGVhZCBvZiB0aGUgaGl0LXJldHVybiBwcm9tcHQuCkNhbiBtYXAgPEVudGVyPiBqdXN0IGxpa2UgPENSPiBvciA8UmV0dXJuPi4KClRoZSBkZWZhdWx0IGZvciB0aGUgJ3ZpbWluZm8nIG9wdGlvbiBpcyBub3cgJzIwLCI1MCxoIHdoZW4gJ2NvbXBhdGlibGUnIGlzbid0CnNldC4gIE1vc3QgcGVvcGxlIHdpbGwgd2FudCB0byB1c2UgaXQsIGluY2x1ZGluZyBiZWdpbm5lcnMsIGJ1dCBpdCByZXF1aXJlZApzZXR0aW5nIHRoZSBvcHRpb24sIHdoaWNoIGlzbid0IHRoYXQgZWFzeS4KCkFmdGVyIHVzaW5nICI6Y29sZGVyIiB0aGUgbmV3ZXIgZXJyb3IgbGlzdHMgYXJlIG92ZXJ3cml0dGVuLiAgVGhpcyBtYWtlcyBpdApwb3NzaWJsZSB0byB1c2UgIjpncmVwIiB0byBicm93c2UgaW4gYSB0cmVlLWxpa2Ugd2F5LiAgTXVzdCB1c2UgIjpjbmV3ZXIgOTkiCnRvIGdldCB0aGUgb2xkIGJlaGF2aW9yLgoKVGhlIHBhdHRlcm5zIGluICdlcnJvcmZvcm1hdCcgd291bGQgc29tZXRpbWVzIGlnbm9yZSBjYXNlIChNUy1XaW5kb3dzKSBhbmQKc29tZXRpbWVzIG5vdCAoVW5peCkuICBOb3cgY2FzZSBpcyBhbHdheXMgaWdub3JlZC4gIEFkZCAiXEMiIHRvIHRoZSBwYXR0ZXJuIHRvCm1hdGNoIGNhc2UuCgpUaGUgMTYgYml0IE1TLURPUyB2ZXJzaW9uIGlzIG5vdyBjb21waWxlZCB3aXRob3V0IHRoZSArbGlzdGNtZHMgZmVhdHVyZQooYnVmZmVyIGxpc3QgbWFuaXB1bGF0aW9uIGNvbW1hbmRzKS4gIFRoZXkgYXJlIG5vdCBvZnRlbiBuZWVkZWQgYW5kIHRoaXMKZXhlY3V0YWJsZSBuZWVkcyB0byBiZSBzbWFsbGVyLgoKJ3Nlc3Npb25vcHRpb25zJyBub3cgaW5jbHVkZXMgImN1cmRpciIgYnkgZGVmYXVsdC4gIFRoaXMgbWVhbnMgdGhhdCByZXN0b3JpbmcKYSBzZXNzaW9uIHdpbGwgcmVzdWx0IGluIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBiZWluZyByZXN0b3JlZCwgaW5zdGVhZCBvZgpnb2luZyB0byB0aGUgZGlyZWN0b3J5IHdoZXJlIHRoZSBzZXNzaW9uIGZpbGUgaXMgbG9jYXRlZC4KCkEgc2Vzc2lvbiBkZWxldGVkIGFsbCBidWZmZXJzLCBkZWxldGluZyBhbGwgbWFya3MuICBOb3cga2VlcCB0aGUgYnVmZmVyIGxpc3QsCml0IHNob3VsZG4ndCBodXJ0IGZvciBzb21lIGV4aXN0aW5nIGJ1ZmZlcnMgdG8gcmVtYWluIHByZXNlbnQuCldoZW4gdGhlIGFyZ3VtZW50IGxpc3QgaXMgZW1wdHkgIjphcmdkZWwgKiIgY2F1c2VkIGFuIGVycm9yIG1lc3NhZ2UuCgpObyBsb25nZXIgcHV0IHRoZSBzZWFyY2ggcGF0dGVybiBmcm9tIGEgdGFnIGp1bXAgaW4gdGhlIGhpc3RvcnkuCgpVc2UgIlNwZWNpYWxLZXkiIGhpZ2hsaWdodGluZyBmb3IgdW5wcmludGFibGUgY2hhcmFjdGVycyBpbnN0ZWFkIG9mICJOb25UZXh0Ii4KVGhlIGlkZWEgaXMgdGhhdCB1bnByaW50YWJsZSB0ZXh0IG9yIGFueSB0ZXh0IHRoYXQncyBkaXNwbGF5ZWQgZGlmZmVyZW50bHkKZnJvbSB0aGUgY2hhcmFjdGVycyBpbiB0aGUgZmlsZSBpcyB1c2luZyAiU3BlY2lhbEtleSIsIGFuZCAiTm9uVGV4dCIgaXMgdXNlZApmb3IgdGV4dCB0aGF0IGRvZXNuJ3QgcmVhbGx5IGV4aXN0IGluIHRoZSBmaWxlLgoKTW90aWYgbm93IHVzZXMgdGhlIHN5c3RlbSBkZWZhdWx0IGNvbG9ycyBmb3IgdGhlIG1lbnUgYW5kIHNjcm9sbGJhci4gIFVzZWQgdG8KYmUgZ3JleS4gIEl0J3Mgc3RpbGwgcG9zc2libGUgdG8gc2V0IHRoZSBjb2xvcnMgd2l0aCAiOmhpZ2hsaWdodCIgY29tbWFuZHMgYW5kCnJlc291cmNlcy4KCkZvcm1hdHRpbmcgdGV4dCB3aXRoICJncSIgYnJlYWtzIGEgcGFyYWdyYXBoIGF0IGEgbm9uLWVtcHR5IGJsYW5rIGxpbmUuClByZXZpb3VzbHkgdGhlIGxpbmUgd291bGQgYmUgcmVtb3ZlZCwgd2hpY2ggd2Fzbid0IHZlcnkgdXNlZnVsLgoKIjpub3JtYWwiIGRvZXMgbm8gbG9uZ2VyIGhhbmcgd2hlbiB0aGUgYXJndW1lbnQgZW5kcyBpbiBoYWxmIGEgY29tbWFuZC4KUHJldmlvdXNseSBWaW0gd291bGQgd2FpdCBmb3IgbW9yZSBjaGFyYWN0ZXJzIHRvIGJlIHR5cGVkLCB3aXRob3V0IHVwZGF0aW5nCnRoZSBzY3JlZW4uICBOb3cgaXQgcHJldGVuZHMgYW4gPEVzYz4gd2FzIHR5cGVkLgoKQml0bWFwcyBmb3IgdGhlIHRvb2xiYXIgYXJlIG5vIGxvbmdlciBzZWFyY2hlZCBmb3IgaW4gIiRWSU0vYml0bWFwcyIgYnV0IGluCnRoZSAiYml0bWFwcyIgZGlyZWN0b3JpZXMgaW4gJ3J1bnRpbWVwYXRoJy4KCk5vdyB1c2UgdGhlIENtZGxpbmUtbW9kZSBtZW51cyBmb3IgdGhlIGhpdC1lbnRlciBwcm9tcHQgaW5zdGVhZCBvZiB0aGUgTm9ybWFsCm1vZGUgbWVudXMuICBUaGlzIGdlbmVyYWxseSB3b3JrcyBiZXR0ZXIgYW5kIGFsbG93cyB1c2luZyB0aGUgIkNvcHkiIG1lbnUgdG8KcHJvZHVjZSBDVFJMLVkgdG8gY29weSB0aGUgbW9kZWxlc3Mgc2VsZWN0aW9uLgoKTW92ZWQgdGhlIGZvbnQgc2VsZWN0aW9uIGZyb20gdGhlIFdpbmRvdyB0byB0aGUgRWRpdCBtZW51LCB0b2dldGhlciB3aXRoIHRoZQpvdGhlciBzZXR0aW5ncy4KClRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgJ2lzZm5hbWUnIGluY2x1ZGUgbW9yZSBjaGFyYWN0ZXJzIHRvIG1ha2UgImdmIiB3b3JrCmJldHRlci4KCkNoYW5nZWQgdGhlIGxpY2Vuc2UgZm9yIHRoZSBkb2N1bWVudGF0aW9uIHRvIHRoZSBPcGVuIFB1YmxpY2F0aW9uIExpY2Vuc2UuClRoaXMgc2VlbWVkIGZhaXIsIGNvbnNpZGVyaW5nIHRoZSBpbmNsdXNpb24gb2YgcGFydHMgb2YgdGhlIFZpbSBib29rLCB3aGljaCBpcwphbHNvIHB1Ymxpc2hlZCB1bmRlciB0aGUgT1BMLiAgVGhlIGRvd25zaWRlIGlzIHRoYXQgd2UgY2FuJ3QgZm9yY2Ugc29tZW9uZSB3aG8Kd291bGQgc2VsbCBjb3BpZXMgb2YgdGhlIG1hbnVhbCB0byBjb250cmlidXRlIHRvIFVnYW5kYS4KCkFmdGVyICAiYXl5ICBkb24ndCBsZXQgICIieXkgIG9yICA6bGV0IEAiID0gdmFsICBvdmVyd3JpdGUgdGhlICJhIHJlZ2lzdGVyLgpVc2UgdGhlIHVubmFtZWQgcmVnaXN0ZXIgaW5zdGVhZC4KCk1TRE9TOiBBIHBhdHRlcm4gIiouKiIgcHJldmlvdXNseSBhbHNvIG1hdGNoZWQgYSBmaWxlIG5hbWUgd2l0aG91dCBhIGRvdC4KVGhpcyB3YXMgaW5jb25zaXN0ZW50IHdpdGggb3RoZXIgdmVyc2lvbnMuCgpJbiBJbnNlcnQgbW9kZSwgQ1RSTC1PIENUUkwtXCBDVFJMLU4ge2NtZH0gcmVtYWlucyBpbiBOb3JtYWwgbW9kZS4gIFByZXZpb3VzbHkKaXQgd291bGQgZ28gYmFjayB0byBJbnNlcnQgbW9kZSwgdGh1cyBjb25mdXNpbmcgdGhlIG1lYW5pbmcgb2YgQ1RSTC1cIENUUkwtTiwKd2hpY2ggaXMgc3VwcG9zZWQgdG8gdGFrZSB1cyB0byBOb3JtYWwgbW9kZSAoZXNwZWNpYWxseSBpbiAiOmFtZW51IikuCgpBbGxvdyB1c2luZyAiOiIgY29tbWFuZHMgYWZ0ZXIgYW4gb3BlcmF0b3IuICBDb3VsZCBiZSB1c2VkIHRvIGltcGxlbWVudCBhIG5ldwptb3ZlbWVudCBjb21tYW5kLiAgVGh1cyBpdCBubyBsb25nZXIgYWJvcnRzIGEgcGVuZGluZyBvcGVyYXRvci4KCkZvciB0aGUgQW1pZ2EgdGhlICItZCB7ZGV2aWNlfSIgYXJndW1lbnQgd2FzIHBvc3NpYmxlLiAgV2hlbiBjb21waWxlZCB3aXRoIHRoZQpkaWZmIGZlYXR1cmUsIHRoaXMgbm8gbG9uZ2VyIHdvcmtzLiAgVXNlICItZGV2IHtkZXZpY2V9IiBpbnN0ZWFkLiB8LWRldnwKCk1hZGUgdGhlIGRlZmF1bHQgbWFwcGluZ3MgZm9yIDxTLUluc2VydD4gaW4gSW5zZXJ0IG1vZGUgaW5zZXJ0IHRoZSB0ZXh0CmxpdGVyYWxseSwgYXZvaWRzIHRoYXQgc3BlY2lhbCBjaGFyYWN0ZXJzIGxpa2UgQlMgY2F1c2Ugc2lkZSBlZmZlY3RzLgoKVXNpbmcgIjpjb25maXJtIiBhcHBsaWVkIHRvIHRoZSByZXN0IG9mIHRoZSBsaW5lLiAgTm93IGl0IGFwcGxpZXMgb25seSB0byB0aGUKY29tbWFuZCByaWdodCBhZnRlciBpdC4gIFRodXMgIjpjb25maXJtIGlmIHggfCBlZGl0IHwgZW5kaWYiIG5vIGxvbmdlciB3b3JrcywKdXNlICI6aWYgeCB8IGNvbmZpcm0gZWRpdCB8IGVuZGlmIi4gIFRoaXMgd2FzIHRoZSBvcmlnaW5hbCBpbnRlbnRpb24sIHRoYXQgaXQKd29ya2VkIGRpZmZlcmVudGx5IHdhcyBhIGJ1Zy4KCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpORVcgRkVBVFVSRVMJCQkJCQkqbmV3LTYqCgpGb2xkaW5nCQkJCQkJCSpuZXctZm9sZGluZyoKLS0tLS0tLQoKVmltIGNhbiBub3cgZGlzcGxheSBhIGJ1ZmZlciB3aXRoIHRleHQgZm9sZGVkLiAgVGhpcyBhbGxvd3Mgb3ZlcnZpZXdpbmcgdGhlCnN0cnVjdHVyZSBvZiBhIGZpbGUgcXVpY2tseS4gIEl0IGlzIGFsc28gcG9zc2libGUgdG8geWFuaywgZGVsZXRlIGFuZCBwdXQKZm9sZGVkIHRleHQsIGZvciBleGFtcGxlIHRvIG1vdmUgYSBmdW5jdGlvbiB0byBhbm90aGVyIHBvc2l0aW9uLgoKVGhlcmUgaXMgYSB3aG9sZSBidW5jaCBvZiBuZXcgY29tbWFuZHMgYW5kIG9wdGlvbnMgcmVsYXRlZCB0byBmb2xkaW5nLgpTZWUgfGZvbGRpbmd8LgoKClZlcnRpY2FsbHkgc3BsaXQgd2luZG93cwkJCQkqbmV3LXZlcnRzcGxpdCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpXaW5kb3dzIGNhbiBhbHNvIGJlIHNwbGl0IHZlcnRpY2FsbHkuICBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUgd2luZG93cwpzaWRlIGJ5IHNpZGUuICBPbmUgbmljZSB1c2UgZm9yIHRoaXMgaXMgdG8gY29tcGFyZSB0d28gc2ltaWxhciBmaWxlcyAoc2VlCnxuZXctZGlmZi1tb2RlfCkuICBUaGUgJ3Njcm9sbGJpbmQnIG9wdGlvbiBjYW4gYmUgdXNlZCB0byBzeW5jaHJvbml6ZQpzY3JvbGxpbmcuCgpBIHZlcnRpY2FsIHNwbGl0IGNhbiBiZSBjcmVhdGVkIHdpdGggdGhlIGNvbW1hbmRzOgoJOnZzcGxpdAkgIG9yICBDVFJMLVcgdiAgb3IgQ1RSTC1XIENUUkwtVgl8OnZzcGxpdHwKCTp2bmV3CQkJCQkJfDp2bmV3fAoJOnZlcnRpY2FsIHtjbWR9CQkJCQl8OnZlcnRpY2FsfApUaGUgbGFzdCBvbmUgaXMgYSBtb2RpZmllciwgd2hpY2ggaGFzIGEgbWVhbmluZyBmb3IgYW55IGNvbW1hbmQgdGhhdCBzcGxpdHMgYQp3aW5kb3cuICBGb3IgZXhhbXBsZTogPgoJOnZlcnRpY2FsIHN0YWcgbWFpbgpXaWxsIHZlcnRpY2FsbHkgc3BsaXQgdGhlIHdpbmRvdyBhbmQganVtcCB0byB0aGUgdGFnICJtYWluIiBpbiB0aGUgbmV3IHdpbmRvdy4KCk1vdmluZyBmcm9tIHdpbmRvdyB0byB3aW5kb3cgaG9yaXpvbnRhbGx5IGNhbiBiZSBkb25lIHdpdGggdGhlIHxDVFJMLVdfaHwgYW5kCnxDVFJMLVdfbHwgY29tbWFuZHMuICBUaGUgfENUUkwtV19rfCBhbmQgfENUUkwtV19qfCBjb21tYW5kcyBoYXZlIGJlZW4gY2hhbmdlZAp0byBqdW1wIHRvIHRoZSB3aW5kb3cgYWJvdmUgb3IgYmVsb3cgdGhlIGN1cnNvciBwb3NpdGlvbi4KClRoZSB2ZXJ0aWNhbCBhbmQgaG9yaXpvbnRhbCBzcGxpdHMgY2FuIGJlIG1peGVkIGFzIHlvdSBsaWtlLiAgUmVzaXppbmcgd2luZG93cwppcyBlYXN5IHdoZW4gdXNpbmcgdGhlIG1vdXNlLCBqdXN0IHBvc2l0aW9uIHRoZSBwb2ludGVyIG9uIGEgc3RhdHVzIGxpbmUgb3IKdmVydGljYWwgc2VwYXJhdG9yIGFuZCBkcmFnIGl0LiAgSW4gdGhlIEdVSSBhIHNwZWNpYWwgbW91c2UgcG9pbnRlciBzaGFwZQppbmRpY2F0ZXMgd2hlcmUgeW91IGNhbiBkcmFnIGEgc3RhdHVzIG9yIHNlcGFyYXRvciBsaW5lLgoKVG8gcmVzaXplIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93cyB1c2UgdGhlIHxDVFJMLVdfPHwgYW5kIHxDVFJMLVdfPnwgY29tbWFuZHMuClRvIG1ha2UgYSB3aW5kb3cgdGhlIG1heGltdW0gd2lkdGggdXNlIHRoZSBDVFJMLVcgfCBjb21tYW5kIHxDVFJMLVdfYmFyfC4KClRvIGZvcmNlIGEgbmV3IHdpbmRvdyB0byB1c2UgdGhlIGZ1bGwgd2lkdGggb3IgaGVpZ2h0IG9mIHRoZSBWaW0gd2luZG93LAp0aGVzZSB0d28gbW9kaWZpZXJzIGFyZSBhdmFpbGFibGU6Cgk6dG9wbGVmdCB7Y21kfQkJTmV3IHdpbmRvdyBhcHBlYXJzIGF0IHRoZSB0b3Agd2l0aCBmdWxsCgkJCQl3aWR0aCBvciBhdCB0aGUgbGVmdCB3aXRoIGZ1bGwgaGVpZ2h0LgoJOmJvdHJpZ2h0IHtjbWR9CQlOZXcgd2luZG93IGFwcGVhcnMgYXQgdGhlIGJvdHRvbSB3aXRoIGZ1bGwKCQkJCXdpZHRoIG9yIGF0IHRoZSByaWdodCB3aXRoIGZ1bGwgaGVpZ2h0LgpUaGlzIGNhbiBiZSBjb21iaW5lZCB3aXRoICI6dmVydGljYWwiIHRvIGZvcmNlIGEgdmVydGljYWwgc3BsaXQ6ID4KCTp2ZXJ0IGJvdCBkc3BsaXQgREVCVUcKVGhpcyB3aWxsIG9wZW4gYSB3aW5kb3cgYXQgdGhlIGZhciByaWdodCwgb2NjdXB5aW5nIHRoZSBmdWxsIGhlaWdodCBvZiB0aGUgVmltCndpbmRvdywgd2l0aCB0aGUgY3Vyc29yIG9uIHRoZSBmaXJzdCBkZWZpbml0aW9uIG9mICJERUJVRyIuClRoZSBoZWxwIHdpbmRvdyBpcyBvcGVuZWQgYXQgdGhlIHRvcCwgbGlrZSAiOnRvcGxlZnQiIHdhcyB1c2VkLCBpZiB0aGUgY3VycmVudAp3aW5kb3cgaXMgZmV3ZXIgdGhhbiA4MCBjaGFyYWN0ZXJzIHdpZGUuCgpBIGZldyBvcHRpb25zIGNhbiBiZSB1c2VkIHRvIHNldCB0aGUgcHJlZmVyZW5jZXMgZm9yIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93cy4KVGhleSB3b3JrIHNpbWlsYXIgdG8gdGhlaXIgZXhpc3RpbmcgaG9yaXpvbnRhbCBlcXVpdmFsZW50czoKCWhvcml6b250YWwJdmVydGljYWwgfgoJJ3NwbGl0YmVsb3cnCSdzcGxpdHJpZ2h0JwoJJ3dpbmhlaWdodCcJJ3dpbndpZHRoJwoJJ3dpbm1pbmhlaWdodCcJJ3dpbm1pbndpZHRoJwpJdCdzIHBvc3NpYmxlIHRvIHNldCAnd2lubWlud2lkdGgnIHRvIHplcm8sIHNvIHRoYXQgdGVtcG9yYXJpbHkgdW51c2VkIHdpbmRvd3MKaGFyZGx5IHRha2UgdXAgc3BhY2Ugd2l0aG91dCBjbG9zaW5nIHRoZW0uCgpUaGUgbmV3ICdlYWRpcmVjdGlvbicgb3B0aW9uIHRlbGxzIHdoZXJlICdlcXVhbGFsd2F5cycgYXBwbGllczoKCTpzZXQgZWFkaXJlY3Rpb249Ym90aAkJYm90aCBkaXJlY3Rpb25zCgk6c2V0IGVhZGlyZWN0aW9uPXZlcgkJZXF1YWxpemUgd2luZG93IGhlaWdodHMKCTpzZXQgZWFkaXJlY3Rpb249aG9yCQllcXVhbGl6ZSB3aW5kb3dzIHdpZHRocwpUaGlzIGNhbiBiZSB1c2VkIHRvIGF2b2lkIGNoYW5naW5nIHdpbmRvdyBzaXplcyB3aGVuIHlvdSB3YW50IHRvIGtlZXAgdGhlbS4KClNpbmNlIHdpbmRvd3MgY2FuIGJlY29tZSBxdWl0ZSBuYXJyb3cgd2l0aCB2ZXJ0aWNhbCBzcGxpdHMsIHRleHQgbGluZXMgd2lsbApvZnRlbiBub3QgZml0LiAgVGhlICdzaWRlc2Nyb2xsb2ZmJyBoYXMgYmVlbiBhZGRlZCB0byBrZWVwIHNvbWUgY29udGV4dCBsZWZ0CmFuZCByaWdodCBvZiB0aGUgY3Vyc29yLiAgVGhlICdsaXN0Y2hhcnMnIG9wdGlvbiBoYXMgYmVlbiBleHRlbmRlZCB3aXRoIHRoZQoicHJlY2VkZXMiIGl0ZW0sIHRvIHNob3cgYSAiPCIgZm9yIGV4YW1wbGUsIHdoZW4gdGhlcmUgaXMgdGV4dCBsZWZ0IG9mZiB0aGUKc2NyZWVuLiAoVXR6LVV3ZSBIYXVzKQoKIi1PIiBjb21tYW5kIGxpbmUgYXJndW1lbnQ6IExpa2UgIi1vIiBidXQgc3BsaXQgd2luZG93cyB2ZXJ0aWNhbGx5LiAoU2NvdHQKVXJiYW4pCgpBZGRlZCBjb21tYW5kcyB0byBtb3ZlIHRoZSBjdXJyZW50IHdpbmRvdyB0byB0aGUgdmVyeSB0b3AgKENUUkwtVyBLKSwgYm90dG9tCihDVFJMLVcgSiksIGxlZnQgKENUUkwtVyBIKSBhbmQgcmlnaHQgKENUUkwtVyBMKS4gIEluIHRoZSBuZXcgcG9zaXRpb24gdGhlCndpbmRvdyB1c2VzIHRoZSBmdWxsIHdpZHRoL2hlaWdodCBvZiB0aGUgc2NyZWVuLgoKV2hlbiB0aGVyZSBpcyBub3QgZW5vdWdoIHJvb20gaW4gdGhlIHN0YXR1cyBsaW5lIGZvciBib3RoIHRoZSBmaWxlIG5hbWUgYW5kCnRoZSBydWxlciwgdXNlIHVwIHRvIGhhbGYgdGhlIHdpZHRoIGZvciB0aGUgcnVsZXIuICBVc2VmdWwgZm9yIG5hcnJvdyB3aW5kb3dzLgoKCkRpZmYgbW9kZQkJCQkJCSpuZXctZGlmZi1tb2RlKgotLS0tLS0tLS0KCkluIGRpZmYgbW9kZSBWaW0gc2hvd3MgdGhlIGRpZmZlcmVuY2VzIGJldHdlZW4gdHdvLCB0aHJlZSBvciBmb3VyIGZpbGVzLgpGb2xkaW5nIGlzIHVzZWQgdG8gaGlkZSB0aGUgcGFydHMgb2YgdGhlIGZpbGUgdGhhdCBhcmUgZXF1YWwuCkhpZ2hsaWdodGluZyBpcyB1c2VkIHRvIHNob3cgZGVsZXRlZCBhbmQgY2hhbmdlZCBsaW5lcy4KU2VlIHxkaWZmLW1vZGV8LgoKQW4gZWFzeSB3YXkgdG8gc3RhcnQgaW4gZGlmZiBtb2RlIGlzIHRvIHN0YXJ0IFZpbSBhcyAidmltZGlmZiBmaWxlMSBmaWxlMiIuCkFkZGVkIHRoZSB2aW1kaWZmIG1hbnBhZ2UuCgpJbiBhIHJ1bm5pbmcgVmltIHRoZSB8OmRpZmZzcGxpdHwgY29tbWFuZCBzdGFydHMgZGlmZiBtb2RlIGZvciB0aGUgY3VycmVudApmaWxlIGFuZCBhbm90aGVyIGZpbGUuICBUaGUgfDpkaWZmcGF0Y2h8IGNvbW1hbmQgc3RhcnRzIGRpZmYgbW9kZSB1c2luZyB0aGUKY3VycmVudCBmaWxlIGFuZCBhIHBhdGNoIGZpbGUuICBUaGUgfDpkaWZmdGhpc3wgY29tbWFuZCBzdGFydHMgZGlmZiBtb2RlIGZvcgp0aGUgY3VycmVudCB3aW5kb3cuCgpEaWZmZXJlbmNlcyBjYW4gYmUgcmVtb3ZlZCB3aXRoIHRoZSB8OmRpZmZnZXR8IGFuZCB8OmRpZmZwdXR8IGNvbW1hbmRzLgoKLSBUaGUgJ2RpZmYnIG9wdGlvbiBzd2l0Y2hlcyBkaWZmIG1vZGUgb24gaW4gYSB3aW5kb3cuCi0gVGhlIHw6ZGlmZnVwZGF0ZXwgY29tbWFuZCByZWZyZXNoZXMgdGhlIGRpZmZzLgotIFRoZSAnZGlmZm9wdCcgb3B0aW9uIGNoYW5nZXMgaG93IGRpZmZzIGFyZSBkaXNwbGF5ZWQuCi0gVGhlICdkaWZmZXhwcicgb3B0aW9uIGNhbiBiZSBzZXQgaG93IGEgZGlmZiBpcyB0byBiZSBjcmVhdGVkLgotIFRoZSAncGF0Y2hleHByJyBvcHRpb24gY2FuIGJlIHNldCBob3cgcGF0Y2ggaXMgYXBwbGllZCB0byBhIGZpbGUuCi0gQWRkZWQgdGhlICJkaWZmIiBmb2xkaW5nIG1ldGhvZC4gIFdoZW4gb3BlbmluZyBhIHdpbmRvdyBmb3IgZGlmZi1tb2RlLCBzZXQKICAnZm9sZGxldmVsJyB0byB6ZXJvIGFuZCAnZm9sZGVuYWJsZScgb24sIHRvIGNsb3NlIHRoZSBmb2xkcy4KLSBBZGRlZCB0aGUgRGlmZkFkZCwgRGlmZkNoYW5nZSwgRGlmZkRlbGV0ZSBhbmQgRGlmZlRleHQgaGlnaGxpZ2h0IGdyb3VwcyB0bwogIHNwZWNpZnkgdGhlIGhpZ2hsaWdodGluZyBmb3IgZGlmZmVyZW5jZXMuICBUaGUgZGVmYXVsdHMgYXJlIHVnbHkuLi4KLSBVbml4OiBtYWtlIGEgdmltZGlmZiBzeW1ib2xpYyBsaW5rIGZvciAibWFrZSBpbnN0YWxsIi4KLSBSZW1vdmVkIHRoZSBub3cgb2Jzb2xldGUgInZpbWRpZmYudmltIiBzY3JpcHQgZnJvbSB0aGUgZGlzdHJpYnV0aW9uLgotIEFkZGVkIHRoZSAiW2MiIGFuZCAiXWMiIGNvbW1hbmRzIHRvIG1vdmUgdG8gdGhlIG5leHQvcHJldmlvdXMgY2hhbmdlIGluIGRpZmYKICBtb2RlLgoKCkVhc3kgVmltOiBjbGljay1hbmQtdHlwZQkJCQkqbmV3LWV2aW0qCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKZVZpbSBzdGFuZHMgZm9yICJFYXN5IFZpbSIuICBUaGlzIGlzIGEgc2VwYXJhdGUgcHJvZ3JhbSwgYnV0IGNhbiBhbHNvIGJlCnN0YXJ0ZWQgYXMgInZpbSAteSIuCgpUaGlzIHN0YXJ0cyBWaW0gd2l0aCAnaW5zZXJ0bW9kZScgc2V0IHRvIGFsbG93IGNsaWNrLWFuZC10eXBlIGVkaXRpbmcuICBUaGUKJFZJTVJVTlRJTUUvZXZpbS52aW0gc2NyaXB0IGlzIHVzZWQgdG8gYWRkIG1hcHBpbmdzIGFuZCBzZXQgb3B0aW9ucyB0byBiZSBhYmxlCnRvIGRvIG1vc3QgdGhpbmdzIGxpa2UgTm90ZXBhZC4gIFRoaXMgaXMgb25seSBmb3IgcGVvcGxlIHdobyBjYW4ndCBzdGFuZCB0d28KbW9kZXMuCgplVmlldyBkb2VzIHRoZSBzYW1lIGJ1dCBpbiByZWFkb25seSBtb2RlLgoKSW4gdGhlIEdVSSBhIENUUkwtQyBub3cgb25seSBpbnRlcnJ1cHRzIHdoZW4gYnVzeSB3aXRoIHNvbWV0aGluZywgbm90IHdoZW4Kd2FpdGluZyBmb3IgYSBjaGFyYWN0ZXIuICBBbGxvd3MgdXNpbmcgQ1RSTC1DIHRvIGNvcHkgdGV4dCB0byB0aGUgY2xpcGJvYXJkLgoKClVzZXIgbWFudWFsCQkJCQkJKm5ldy11c2VyLW1hbnVhbCoKLS0tLS0tLS0tLS0KClRoZSB1c2VyIG1hbnVhbCBoYXMgYmVlbiBhZGRlZC4gIEl0IGlzIG9yZ2FuaXNlZCBhcm91bmQgZWRpdGluZyB0YXNrcy4gIEl0CnJlYWRzIGxpa2UgYSBib29rLCBmcm9tIHN0YXJ0IHRvIGVuZC4gIEl0IHNob3VsZCBhbGxvdyBiZWdpbm5lcnMgdG8gc3RhcnQKbGVhcm5pbmcgVmltLiAgSXQgaGVscHMgZXZlcnlib2R5IHRvIGxlYXJuIHVzaW5nIHRoZSBtb3N0IHVzZWZ1bCBWaW0gZmVhdHVyZXMuCkl0IGlzIG11Y2ggZWFzaWVyIHRvIHJlYWQgdGhhbiB0aGUgcmVmZXJlbmNlIG1hbnVhbCwgYnV0IG9taXRzIGRldGFpbHMuICBTZWUKfHVzZXItbWFudWFsfC4KClRoZSB1c2VyIG1hbnVhbCBpbmNsdWRlcyBwYXJ0cyBvZiB0aGUgVmltIGJvb2sgYnkgU3RldmUgT3VhbGxpbmUgfGZyb21ib29rfC4KSXQgaXMgcHVibGlzaGVkIHVuZGVyIHRoZSBPUEwgfG1hbnVhbC1jb3B5cmlnaHR8LgoKV2hlbiBzeW50YXggaGlnaGxpZ2h0aW5nIGlzIG5vdCBlbmFibGVkLCB0aGUgY2hhcmFjdGVycyBpbiB0aGUgaGVscCBmaWxlIHdoaWNoCm1hcmsgZXhhbXBsZXMgKCc+JyBhbmQgJzwnKSBhbmQgaGVhZGVyIGxpbmVzICgnficpIGFyZSByZXBsYWNlZCB3aXRoIGEgc3BhY2UuCgpXaGVuIGNsb3NpbmcgdGhlIGhlbHAgd2luZG93LCB0aGUgd2luZG93IGxheW91dCBpcyByZXN0b3JlZCBmcm9tIGJlZm9yZQpvcGVuaW5nIGl0LCBpZiB0aGUgd2luZG93IGxheW91dCBkaWRuJ3QgY2hhbmdlIHNpbmNlIHRoZW4uCldoZW4gb3BlbmluZyB0aGUgaGVscCB3aW5kb3csIHB1dCBpdCBhdCB0aGUgdG9wIG9mIHRoZSBWaW0gd2luZG93IGlmIHRoZQpjdXJyZW50IHdpbmRvdyBpcyBmZXdlciB0aGFuIDgwIGNoYXJhY3RlcnMgYW5kIG5vdCBmdWxsIHdpZHRoLgoKCkZsZXhpYmxlIGluZGVudGluZwkJCQkJKm5ldy1pbmRlbnQtZmxleCoKLS0tLS0tLS0tLS0tLS0tLS0tCgpBdXRvbWF0aWMgaW5kZW50aW5nIGlzIG5vdyBwb3NzaWJsZSBmb3IgYW55IGxhbmd1YWdlLiAgSXQgd29ya3Mgd2l0aCBhIFZpbQpzY3JpcHQsIHdoaWNoIG1ha2VzIGl0IHZlcnkgZmxleGlibGUgdG8gY29tcHV0ZSB0aGUgaW5kZW50LgoKVGhlICI6ZmlsZXR5cGUgaW5kZW50IG9uIiBjb21tYW5kIGVuYWJsZXMgdXNpbmcgdGhlIHByb3ZpZGVkIGluZGVudCBzY3JpcHRzLgpUaGlzIGlzIGV4cGxhaW5lZCBpbiB0aGUgdXNlciBtYW51YWw6IHwzMC4zfC4KClRoZSAnaW5kZW50ZXhwcicgb3B0aW9uIGlzIGV2YWx1YXRlZCB0byBnZXQgdGhlIGluZGVudCBmb3IgYSBsaW5lLiAgVGhlCidpbmRlbnRrZXlzJyBvcHRpb24gdGVsbHMgd2hlbiB0byB0cmlnZ2VyIHJlLWluZGVudGluZy4gIE5vcm1hbGx5IHRoZXNlCm9wdGlvbnMgYXJlIHNldCBmcm9tIGFuIGluZGVudCBzY3JpcHQuICBMaWtlIFN5bnRheCBmaWxlcywgaW5kZW50IHNjcmlwdHMgd2lsbApiZSBjcmVhdGVkIGFuZCBtYWludGFpbmVkIGJ5IG1hbnkgcGVvcGxlLgoKCkV4dGVuZGVkIHNlYXJjaCBwYXR0ZXJucwkJCQkqbmV3LXNlYXJjaHBhdCoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpBZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gbWF0Y2ggbW9yZSB0aGFuIG9uZSBsaW5lIHdpdGggYSBwYXR0ZXJuLiAocGFydGx5IGJ5CkxvaWMgR3JlbmllKQpOZXcgaXRlbXMgaW4gYSBzZWFyY2ggcGF0dGVybiBmb3IgbXVsdGktbGluZSBtYXRjaGVzOgpcbgkJbWF0Y2ggZW5kLW9mLWxpbmUsIGFsc28gaW4gW10KXF9bXQkJbWF0Y2ggY2hhcmFjdGVycyBpbiByYW5nZSBhbmQgZW5kLW9mLWxpbmUKXF94CQltYXRjaCBjaGFyYWN0ZXIgY2xhc3MgYW5kIGVuZC1vZi1saW5lClxfLgkJbWF0Y2ggYW55IGNoYXJhY3RlciBvciBlbmQtb2YtbGluZQpcX14JCW1hdGNoIHN0YXJ0LW9mLWxpbmUsIGNhbiBiZSB1c2VkIGFueXdoZXJlIGluIHRoZSByZWdleHAKXF8kCQltYXRjaCBlbmQtb2YtbGluZSwgY2FuIGJlIHVzZWQgYW55d2hlcmUgaW4gdGhlIHJlZ2V4cAoKVmFyaW91cyBvdGhlciBuZXcgaXRlbXMgaW4gc2VhcmNoIHBhdHRlcm5zOgpcYwkJaWdub3JlIGNhc2UgZm9yIHRoZSB3aG9sZSBwYXR0ZXJuClxDCQltYXRjaCBjYXNlIGZvciB0aGUgd2hvbGUgcGF0dGVybgpcbQkJbWFnaWMgb24gZm9yIHRoZSBmb2xsb3dpbmcKXE0JCW1hZ2ljIG9mZiBmb3IgdGhlIGZvbGxvd2luZwpcdgkJbWFrZSBmb2xsb3dpbmcgY2hhcmFjdGVycyAidmVyeSBtYWdpYyIKXFYJCW1ha2UgZm9sbG93aW5nIGNoYXJhY3RlcnMgInZlcnkgbm9tYWdpYyIKClxAIQkJZG9uJ3QgbWF0Y2ggYXRvbSBiZWZvcmUgdGhpcy4KCQlFeGFtcGxlOiAiZm9vXChiYXJcKVxAISIgbWF0Y2hlcyAiZm9vICIgYnV0IG5vdCAiZm9vYmFyIi4KXEA9CQltYXRjaCBhdG9tLCByZXN1bHRpbmcgaW4gIHplcm8td2lkdGggbWF0Y2gKCQlFeGFtcGxlOiAiZm9vXChiYXJcKVxAPSIgbWF0Y2hlcyAiZm9vIiBpbiAiZm9vYmFyIi4KXEA8IQkJZG9uJ3QgbWF0Y2ggcHJlY2VkaW5nIGF0b20gYmVmb3JlIHRoZSBjdXJyZW50IHBvc2l0aW9uClxAPD0JCW1hdGNoIHByZWNlZGluZyBhdG9tIGJlZm9yZSB0aGUgY3VycmVudCBwb3NpdGlvbgpcQD4JCW1hdGNoIHByZWNlZGluZyBhdG9tIGFzIGEgc3ViZXhwcmVzc2lvbgoKXCYJCW1hdGNoIG9ubHkgd2hlbiBicmFuY2ggYmVmb3JlIGFuZCBhZnRlciBpdCBtYXRjaAoKXCVbXQkJb3B0aW9uYWxseSBtYXRjaCBhIGxpc3Qgb2YgYXRvbXM7ICJlbmRcJVtpZl0iIG1hdGNoZXMgImVuZCIsCgkJImVuZGkiIGFuZCAiZW5kaWYiClwlKFwpCQlsaWtlIFwoXCksIGJ1dCB3aXRob3V0IGNyZWF0aW5nIGEgYmFjay1yZWZlcmVuY2U7IHRoZXJlIGNhbiBiZQoJCWFueSBudW1iZXIgb2YgdGhlc2UsIG92ZXJjb21lcyB0aGUgbGltaXQgb2YgbmluZSBcKCBcKSBwYWlycwpcJV4JCW1hdGNoIHN0YXJ0LW9mLWZpbGUgKENoYXNlIFRpbmdsZXkpClwlJAkJbWF0Y2ggZW5kLW9mLWZpbGUgKENoYXNlIFRpbmdsZXkpClwlIwkJTWF0Y2ggd2l0aCB0aGUgY3Vyc29yIHBvc2l0aW9uLiAoQ2hhc2UgVGluZ2xleSkKXD8JCUp1c3QgbGlrZSAiXD0iIGJ1dCBjYW4ndCBiZSB1c2VkIGluIGEgIj8iIGNvbW1hbmQuCgpcJTIzbAkJbWF0Y2ggaW4gbGluZSAyMwpcJTwyM2wJCW1hdGNoIGJlZm9yZSBsaW5lIDIzClwlPjIzbAkJbWF0Y2ggYWZ0ZXIgbGluZSAyMwpcJTIzYywgXCU8MjNjLCBcJT4yM2MgICBtYXRjaCBpbi9iZWZvcmUvYWZ0ZXIgY29sdW1uIDIzClwlMjN2LCBcJTwyM3YsIFwlPjIzdgltYXRjaCBpbi9iZWZvcmUvYWZ0ZXIgdmlydHVhbCBjb2x1bW4gMjMKCgpGb3Igc3ludGF4IGl0ZW1zOgpceiguLi5cKQlleHRlcm5hbCByZWZlcmVuY2UgbWF0Y2ggc2V0IChpbiByZWdpb24gc3RhcnQgcGF0dGVybikKXHoxIC0gXHo5CWV4dGVybmFsIHJlZmVyZW5jZSBtYXRjaCB1c2UgKGluIHJlZ2lvbiBza2lwIG9yIGVuZCBwYXR0ZXJuKQoJKFNjb3R0IEJpZ2hhbSkKClx6cwkJdXNlIHBvc2l0aW9uIGFzIHN0YXJ0IG9mIG1hdGNoClx6ZQkJdXNlIHBvc2l0aW9uIGFzIGVuZCBvZiBtYXRjaAoKUmVtb3ZlZCBsaW1pdCBvZiBtYXRjaGluZyBvbmx5IHVwIHRvIDMyNzY3IHRpbWVzIHdpdGggKiwgXCssIGV0Yy4KCkFkZGVkIHN1cHBvcnQgdG8gbWF0Y2ggbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLiAocGFydGx5IGJ5IE11cmFva2EgVGFybykKTWFkZSAiXDwiIGFuZCAiXD4iIHdvcmsgZm9yIFVURi04LiAoTXVyYW9rYSBUYXJvKQoKClVURi04IHN1cHBvcnQJCQkJCQkqbmV3LXV0Zi04KgotLS0tLS0tLS0tLS0tCgpWaW0gY2FuIG5vdyBlZGl0IGZpbGVzIGluIFVURi04IGVuY29kaW5nLiAgVXAgdG8gMzEgYml0IGNoYXJhY3RlcnMgY2FuIGJlCnVzZWQsIGJ1dCBvbmx5IDE2IGJpdCBjaGFyYWN0ZXJzIGFyZSBkaXNwbGF5ZWQuICBVcCB0byB0d28gY29tYmluaW5nCmNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZCwgdGhleSBvdmVycHJpbnQgdGhlIHByZWNlZGluZyBjaGFyYWN0ZXIuCkRvdWJsZS13aWRlIGNoYXJhY3RlcnMgYXJlIGFsc28gc3VwcG9ydGVkLiAgU2VlIHxVVEYtOHwuCgpVQ1MtMiwgVUNTLTQgYW5kIFVURi0xNiBlbmNvZGluZ3MgYXJlIHN1cHBvcnRlZCB0b28sIHRoZXkgYXJlIGNvbnZlcnRlZCB0bwpVVEYtOCBpbnRlcm5hbGx5LiAgVGhlcmUgaXMgYWxzbyBzdXBwb3J0IGZvciBlZGl0aW5nIFVuaWNvZGUgZmlsZXMgaW4gYSBMYXRpbjEKZW52aXJvbm1lbnQuICBPdGhlciBlbmNvZGluZ3MgYXJlIGNvbnZlcnRlZCB3aXRoIGljb252KCkgb3IgYW4gZXh0ZXJuYWwKY29udmVydGVyIHNwZWNpZmllZCB3aXRoICdjaGFyY29udmVydCcuCgpNYW55IG5ldyBpdGVtcyBmb3IgTXVsdGktYnl0ZSBzdXBwb3J0OgotIEFkZGVkICdlbmNvZGluZycgb3B0aW9uOiBzcGVjaWZpZXMgY2hhcmFjdGVyIGVuY29kaW5nIHVzZWQgaW5zaWRlIFZpbS4gIEl0CiAgY2FuIGJlIGFueSA4LWJpdCBlbmNvZGluZywgc29tZSBkb3VibGUtYnl0ZSBlbmNvZGluZ3Mgb3IgVW5pY29kZS4KICBJdCBpcyBpbml0aWFsaXplZCBmcm9tIHRoZSBlbnZpcm9ubWVudCB3aGVuIGEgc3VwcG9ydGVkIHZhbHVlIGlzIGZvdW5kLgotIEFkZGVkICdmaWxlZW5jb2RpbmcnIGFuZCAnZmlsZWVuY29kaW5ncyc6IHNwZWNpZnkgY2hhcmFjdGVyIGNvZGluZyBpbiBhCiAgZmlsZSwgc2ltaWxhciB0byAnZmlsZWZvcm1hdCcgYW5kICdmaWxlZm9ybWF0cycuCiAgV2hlbiAnZW5jb2RpbmcnIGlzICJ1dGYtOCIgYW5kICdmaWxlZW5jb2RpbmdzJyBpcyAidXRmLTgsbGF0aW4xIiB0aGlzIHdpbGwKICBhdXRvbWF0aWNhbGx5IHN3aXRjaCB0byBsYXRpbjEgaWYgYSBmaWxlIGRvZXMgbm90IGNvbnRhaW4gdmFsaWQgVVRGLTguCi0gQWRkZWQgJ2JvbWInIG9wdGlvbiBhbmQgZGV0ZWN0aW9uIG9mIGEgQk9NIGF0IHRoZSBzdGFydCBvZiBhIGZpbGUuICBDYW4gYmUKICB1c2VkIHdpdGggInVjcy1ib20iIGluICdmaWxlZW5jb2RpbmdzJyB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCBhIFVuaWNvZGUKICBmaWxlIGlmIGl0IHN0YXJ0cyB3aXRoIGEgQk9NLiAgRXNwZWNpYWxseSB1c2VmdWwgb24gTVMtV2luZG93cyAoTlQgYW5kCiAgMjAwMCksIHdoaWNoIHVzZXMgdWNzLTJsZSBmaWxlcyB3aXRoIGEgQk9NIChlLmcuLCB3aGVuIGV4cG9ydGluZyB0aGUKICByZWdpc3RyeSkuCi0gQWRkZWQgdGhlICd0ZXJtZW5jb2RpbmcnIG9wdGlvbjogU3BlY2lmaWVzIHRoZSBlbmNvZGluZyB1c2VkIGZvciB0aGUKICB0ZXJtaW5hbC4gIFVzZWZ1bCB0byBwdXQgVmltIGluIHV0Zi04IG1vZGUgd2hpbGUgaW4gYSBub24tVW5pY29kZSBsb2NhbGU6ID4KICAgIDpsZXQgJnRlcm1lbmNvZGluZyA9ICZlbmNvZGluZwogICAgOnNldCBlbmNvZGluZz11dGYtOAotIFdoZW4gJ3ZpbWluZm8nIGNvbnRhaW5zIHRoZSAnYycgZmxhZywgdGhlIHZpbWluZm8gZmlsZSBpcyBjb252ZXJ0ZWQgZnJvbSB0aGUKICAnZW5jb2RpbmcnIGl0IHdhcyB3cml0dGVuIHdpdGggdG8gdGhlIGN1cnJlbnQgJ2VuY29kaW5nJy4KLSBBZGRlZCAiOnNjcmlwdGVuY29kaW5nIiBjb21tYW5kOiBjb252ZXJ0IGxpbmVzIGluIGEgc291cmNlZCBzY3JpcHQgdG8KICAnZW5jb2RpbmcnLiAgVXNlZnVsIGZvciBtZW51IGZpbGVzLgotIEFkZGVkICdndWlmb250d2lkZScgdG8gc3BlY2lmeSBhIGZvbnQgZm9yIGRvdWJsZS13aWRlIGNoYXJhY3RlcnMuCi0gQWRkZWQgS29yZWFuIHN1cHBvcnQgZm9yIGNoYXJhY3RlciBjbGFzcyBkZXRlY3Rpb24uICBBbHNvIGZpeCBjbHMoKSBpbgogIHNlYXJjaC5jLiAoQ2hvbmctRGFlIFBhcmspCi0gV2luMzI6IFR5cGluZyBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgd2l0aG91dCBJTUUuIChBbGV4YW5kZXIgU21pc2hsYWpldikKLSBXaW4zMiB3aXRoIE1pbmd3OiBjb21waWxlIHdpdGggaWNvbnYgbGlicmFyeS4gKFJvbiBBYXJvbikKLSBXaW4zMiB3aXRoIE1TVkM6IGR5bmFtaWNhbGx5IGxvYWQgaWNvbnYuZGxsIGxpYnJhcnkuIChNdXJhb2thIFRhcm8pCi0gTWFrZSBpdCBwb3NzaWJsZSB0byBidWlsZCBhIHZlcnNpb24gd2l0aCBtdWx0aS1ieXRlIGFuZCBpY29udiBzdXBwb3J0IHdpdGgKICBCb3JsYW5kIDUuNS4gIChZYXN1aGlybyBNYXRzdW1vdG8pCi0gQWRkZWQgJ2RlbGNvbWJpbmUnIG9wdGlvbjogRGVsZXRlIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VwYXJhdGVseS4gKFJvbgogIEFhcm9uKQotIFRoZSAieGZvbnRzZXQiIGZlYXR1cmUgaXNuJ3QgcmVxdWlyZWQgZm9yICJ4aW0iLiAgVGhlc2UgYXJlIG5vdyB0d28KICBpbmRlcGVuZGVudCBmZWF0dXJlcy4KLSBYSU06IGVuYWJsZSBYSU0gd2hlbiB0eXBpbmcgYSBsYW5ndWFnZSBjaGFyYWN0ZXIgKEluc2VydCBtb2RlLCBTZWFyY2gKICBwYXR0ZXJuLCAiZiIgb3IgInIiIGNvbW1hbmQpLiAgRGlzYWJsZSBYSU0gd2hlbiB0eXBpbmcgYSBOb3JtYWwgbW9kZQogIGNvbW1hbmQuCi0gV2hlbiB0aGUgWElNIGlzIGFjdGl2ZSwgc2hvdyAiWElNIiBpbiB0aGUgJ3Nob3dtb2RlJyBtZXNzYWdlLiAoTmFtIFN1bmdIeXVuKQotIFN1cHBvcnQgIkN1cnNvcklNIiBmb3IgWElNLiAgKE5hbSBTdW5nSHl1bikKLSBBZGRlZCAnbScgZmxhZyB0byAnZm9ybWF0b3B0aW9ucyc6IFdoZW4gd3JhcHBpbmcgd29yZHMsIGFsbG93IHNwbGl0dGluZyBhdAogIGVhY2ggbXVsdGlieXRlIGNoYXJhY3Rlciwgbm90IG9ubHkgYXQgYSBzcGFjZS4KLSBNYWRlICI6c3ludGF4IGtleXdvcmQiIHdvcmsgd2l0aCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuCi0gQWRkZWQgc3VwcG9ydCBmb3IgVW5pY29kZSB1cHBlci9sb3dlcmNhc2UgZmxpcHBpbmcgYW5kIGNvbXBhcmluZy4gKGJhc2VkIG9uCiAgcGF0Y2ggYnkgUmFwaGFlbCBGaW5rZWwpCiAgTGV0ICJ+IiBvbiBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgdGhhdCBoYXZlIGEgdGhpcmQgY2FzZSAoInRpdGxlIGNhc2UiKQogIHN3aXRjaCBiZXR3ZWVuIHRoZSB0aHJlZSBjYXNlcy4gKFJhcGhhZWwgRmlua2VsKQoKQWxsb3cgZGVmaW5pbmcgZGlncmFwaHMgZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KQWRkZWQgUkZDMTM0NSBkaWdyYXBocyBmb3IgVW5pY29kZS4KTW9zdCBOb3JtYWwgbW9kZSBjb21tYW5kcyB0aGF0IGFjY2VwdCBhIGNoYXJhY3RlciBhcmd1bWVudCwgbGlrZSAiciIsICJ0IiBhbmQKImYiIG5vdyBhY2NlcHQgYSBkaWdyYXBoLiAgVGhlICdEJyBmbGFnIGluICdjcG9wdGlvbnMnIGRpc2FibGVzIHRoaXMgdG8gcmVtYWluClZpIGNvbXBhdGlibGUuCgpBZGRlZCBMYW5ndWFnZSBtYXBwaW5nIGFuZCAna2V5bWFwJyB0byBiZSBhYmxlIHRvIHR5cGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzOgotIEFkZGVkIHRoZSAiOmxtYXAiIGNvbW1hbmQgYW5kIGZyaWVuZHM6IERlZmluZSBtYXBwaW5ncyB0aGF0IGFyZSB1c2VkIHdoZW4KICB0eXBpbmcgY2hhcmFjdGVycyBpbiB0aGUgbGFuZ3VhZ2Ugb2YgdGhlIHRleHQuICBBbHNvIGZvciAiciIsICJ0IiwgZXRjLiAgSW4KICBJbnNlcnQgYW5kIENvbW1hbmQtbGluZSBtb2RlIENUUkwtXiBzd2l0Y2hlcyB0aGUgdXNlIG9mIHRoZSBtYXBwaW5ncyBvbi9vZmYuCiAgQ1RSTC1eIGFsc28gdG9nZ2xlcyB0aGUgdXNlIG9mIGFuIGlucHV0IG1ldGhvZCB3aGVuIG5vIGxhbmd1YWdlIG1hcHBpbmdzIGFyZQogIHByZXNlbnQuICBBbGxvd3Mgc3dpdGNoaW5nIHRoZSBJTSBiYWNrIG9uIGhhbGZ3YXkgdHlwaW5nLgotICI8Y2hhci0xMjM+IiBhcmd1bWVudCB0byAiOm1hcCIsIGFsbG93cyB0byBzcGVjaWZ5IHRoZSBkZWNpbWFsLCBvY3RhbCBvcgogIGhleGFkZWNpbWFsIHZhbHVlIG9mIGEgY2hhcmFjdGVyLgotIEltcGxlbWVudGVkIHRoZSAna2V5bWFwJyBvcHRpb246IExvYWQgYSBrZXltYXAgZmlsZS4gIFVzZXMgIjpsbm9yZW1hcCIgdG8KICBkZWZpbmUgbWFwcGluZ3MgZm9yIHRoZSBrZXltYXAuICBUaGUgbmV3ICI6bG9hZGtleW1hcCIgY29tbWFuZCBpcyB1c2VkIGluCiAgdGhlIGtleW1hcCBmaWxlLgotIEFkZGVkICdrJyBmbGFnIGluICdzdGF0dXNsaW5lJzogVmFsdWUgb2YgImI6a2V5bWFwX25hbWUiIG9yICdrZXltYXAnIHdoZW4KICBpdCdzIGJlaW5nIHVzZWQuICBVc2VzICI8bGFuZz4iIHdoZW4gbm8ga2V5bWFwIGlzIGxvYWRlZCBhbmQgIjpsbWFwInMgYXJlCiAgYWN0aXZlLiAgU2hvdyB0aGlzIHRleHQgaW4gdGhlIGRlZmF1bHQgc3RhdHVzbGluZSB0b28uCi0gQWRkZWQgdGhlICdpbWluc2VydCcgYW5kICdpbXNlYXJjaCcgb3B0aW9uczogU3BlY2lmeSB1c2Ugb2YgbGFuZ21hcCBtYXBwaW5ncwogIGFuZCBJbnB1dCBNZXRob2Qgd2l0aCBhbiBvcHRpb24uIChNdXJhb2thIFRhcm8pCiAgQWRkZWQgJ2ltY21kbGluZScgb3B0aW9uOiBXaGVuIHNldCB0aGUgaW5wdXQgbWV0aG9kIGlzIGFsd2F5cyBlbmFibGVkIHdoZW4KICBzdGFydGluZyB0byBlZGl0IGEgY29tbWFuZCBsaW5lLiAgVXNlZnVsIGZvciBhIFhJTSB0aGF0IHVzZXMgZGVhZCBrZXlzIHRvCiAgdHlwZSBhY2NlbnRlZCBjaGFyYWN0ZXJzLgogIEFkZGVkICdpbWFjdGl2YXRla2V5JyBvcHRpb24gdG8gYmV0dGVyIGNvbnRyb2wgWElNLiAgKE11cmFva2EgVGFybykKLSBXaGVuIHR5cGluZyBhIG1hcHBpbmcgdGhhdCdzIG5vdCBmaW5pc2hlZCB5ZXQsIGRpc3BsYXkgdGhlIGxhc3QgY2hhcmFjdGVyCiAgdW5kZXIgdGhlIGN1cnNvciBpbiBJbnNlcnQgbW9kZSBhbmQgQ29tbWFuZC1saW5lIG1vZGUuICBMb29rcyBnb29kIGZvciBkZWFkCiAgY2hhcmFjdGVycy4KLSBNYWRlIHRoZSAnbGFuZ21hcCcgb3B0aW9uIHJlY29nbml6ZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuICBCdXQgbWFwcGluZyBvbmx5CiAgd29ya3MgZm9yIDgtYml0IGNoYXJhY3RlcnMuICBIZWxwcyB3aGVuIHVzaW5nIFVURi04LgotIFVzZSBhIGRpZmZlcmVudCBjdXJzb3IgZm9yIHdoZW4gIjpsbWFwIiBtYXBwaW5ncyBhcmUgYWN0aXZlLiAgQ2FuIHNwZWNpZnkKICB0d28gaGlnaGxpZ2h0IGdyb3VwcyBmb3IgYW4gaXRlbSBpbiAnZ3VpY3Vyc29yJy4gIEJ5IGRlZmF1bHQgImxDdXJzb3IiIGFuZAogICJDdXJzb3IiIGFyZSBlcXVhbCwgdGhlIHVzZXIgbXVzdCBzZXQgYSBjb2xvciBoZSBsaWtlcy4KICBVc2UgdGhlIGN1cnNvciBjb2xvciBmb3IgaGFuZ3VsIGlucHV0IGFzIHdlbGwuIChTdW5nLUh5dW4gTmFtKQotIFNob3cgIihsYW5nKSIgZm9yICdzaG93bW9kZScgd2hlbiBsYW5ndWFnZSBtYXBwaW5nIGlzIGVuYWJsZWQuCi0gVVRGLTg6IE1hZGUgInIiIHdvcmsgd2l0aCBhICI6bG1hcCIgdGhhdCBpbmNsdWRlcyBhIGNvbXBvc2luZyBjaGFyYWN0ZXIuCiAgQWxzbyB3b3JrcyBmb3IgImYiLCB3aGljaCBub3cgd29ya3MgdG8gZmluZCBhIGNoYXJhY3RlciB0aGF0IGluY2x1ZGVzIGEKICBjb21wb3NpbmcgY2hhcmFjdGVyLgoKT3RoZXIgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgYWRkaXRpb25zOgotIFN1cHBvcnQgZG91YmxlLWJ5dGUgc2luZ2xlLXdpZHRoIGNoYXJhY3RlcnMgZm9yIGV1Yy1qcDogQ2hhcmFjdGVycyBzdGFydGluZwogIHdpdGggMHg4RS4gIEFkZGVkIFNjcmVlbkxpbmVzMltdIHRvIHN0b3JlIHRoZSBzZWNvbmQgYnl0ZS4KCgpNdWx0aS1sYW5ndWFnZSBzdXBwb3J0CQkJCQkqbmV3LW11bHRpLWxhbmcqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSBtZXNzYWdlcyB1c2VkIGluIFZpbSBjYW4gYmUgdHJhbnNsYXRlZC4gIFNldmVyYWwgdHJhbnNsYXRpb25zIGFyZQphdmFpbGFibGUuICBUaGlzIHVzZXMgdGhlIGdldHRleHQgbWVjaGFuaXNtLiAgSXQgYWxsb3dzIGFkZGluZyBhIHRyYW5zbGF0aW9uCndpdGhvdXQgcmVjb21waWxpbmcgVmltLiAgfG11bHRpLWxhbmd8IChwYXJ0bHkgYnkgTWFyY2luIERhbGVja2kpCgpUaGUgdHJhbnNsYXRpb24gZmlsZXMgYXJlIGluIHRoZSBzcmMvcG8gZGlyZWN0b3J5LiAgVGhlIHNyYy9wby9SRUFETUUudHh0IGZpbGUKZXhwbGFpbnMgYSBmZXcgdGhpbmdzIGFib3V0IGRvaW5nIGEgdHJhbnNsYXRpb24uCgpNZW51IHRyYW5zbGF0aW9ucyBhcmUgYXZhaWxhYmxlIGFzIHdlbGwuICBUaGlzIHVzZXMgdGhlIG5ldyB8Om1lbnV0cmFuc2xhdGV8CmNvbW1hbmQuICBUaGUgdHJhbnNsYXRpb25zIGFyZSBmb3VuZCBpbiB0aGUgcnVudGltZSBkaXJlY3RvcnkgImxhbmciLiAgVGhpcwphbGxvd3MgYSB1c2VyIHRvIGFkZCBhIHRyYW5zbGF0aW9uLgoKQWRkZWQgfDpsYW5ndWFnZXwgY29tbWFuZCB0byBzZXQgdGhlIGxhbmd1YWdlIChsb2NhbGUpIGZvciBtZXNzYWdlcywgdGltZSBhbmQKY2hhcmFjdGVyIHR5cGUuICBUaGlzIGFsbG93cyBzd2l0Y2hpbmcgbGFuZ3VhZ2VzIGluIFZpbSB3aXRob3V0IGNoYW5naW5nIHRoZQpsb2NhbGUgb3V0c2lkZSBvZiBWaW0uCgpNYWRlIGl0IHBvc3NpYmxlIHRvIGhhdmUgdmltdHV0b3IgdXNlIGRpZmZlcmVudCBsYW5ndWFnZXMuICAoRWR1YXJkbyBGZXJuYW5kZXopClNwYW5pc2ggKEVkdWFyZG8gRmVybmFuZGV6KSwgSXRhbGlhbiAoQW50b25pbyBDb2xvbWJvKSwgSmFwYW5lc2UgKFlhc3VoaXJvCk1hdHN1bW90bykgYW5kIEZyZW5jaCAoQWRyaWVuIEJlYXUpIHRyYW5zbGF0aW9ucyBhcmUgaW5jbHVkZWQuCkFkZGVkICJ2aW10dXRvci5iYXQiOiBzY3JpcHQgdG8gc3RhcnQgVmltIG9uIGEgY29weSBvZiB0aGUgdHV0b3IgZmlsZSBmb3IKTVMtV2luZG93cy4gKERhbiBTaGFycCkKCi0gQWRkZWQgdjpsYW5nIHZhcmlhYmxlIHRvIGJlIGFibGUgdG8gZ2V0IGN1cnJlbnQgbGFuZ3VhZ2Ugc2V0dGluZy4KICAoTWFyY2luIERhbGVja2kpICBBbHNvIHY6bGNfdGltZSBhbmQgdjpjdHlwZS4KLSBNYWtlIGl0IHBvc3NpYmxlIHRvIHRyYW5zbGF0ZSB0aGUgZGlhbG9ncyB1c2VkIGJ5IHRoZSBtZW51cy4gIFVzZXMgZ2xvYmFsCiAgIm1lbnV0cmFuc18iIHZhcmlhYmxlcy4gICI6bWVudXRyYW5zIGNsZWFyIiBkZWxldGVzIHRoZW0uCi0gcmVtb3ZlZCAiYnJva2VuIGxvY2FsZSIgKE1hcmNpbiBEYWxlY2tpKS4KLSBEb24ndCB1c2UgY29sb3IgbmFtZXMgaW4gaWNvbnMsIHVzZSBSR0IgdmFsdWVzLiAgVGhlIG5hbWVzIGNvdWxkIGJlCiAgdHJhbnNsYXRlZC4KLSBXaW4zMjogQWRkZWQgZ2xvYmFsIElNRSBzdXBwb3J0IChNdXJhb2thKQotIFdpbjMyOiBBZGRlZCBkeW5hbWljIGxvYWRpbmcgb2YgSU1FIHN1cHBvcnQuCi0gIjptZXNzYWdlcyIgcHJpbnRzIGEgbWVzc2FnZSBhYm91dCB3aG8gbWFpbnRhaW5zIHRoZSBtZXNzYWdlcyBvciB0aGUKICB0cmFuc2xhdGlvbnMuICBVc2VmdWwgdG8gZmluZCBvdXQgd2hlcmUgdG8gbWFrZSBhIHJlbWFyayBhYm91dCBhIHdyb25nCiAgdHJhbnNsYXRpb24uCi0gLS1kaXNhYmxlLW5scyBhcmd1bWVudCBmb3IgY29uZmlndXJlOiBEaXNhYmxlIHVzZSBvZiBnZXR0ZXh0KCkuIChTdW5nLUh5dW4KICBOYW0pCi0gQWRkZWQgTkxTIHN1cHBvcnQgZm9yIFdpbjMyIHdpdGggdGhlIE1pbmdXIGNvbXBpbGVyLiAoRWR1YXJkbyBGZXJuYW5kZXopCi0gV2hlbiBhdmFpbGFibGUsIGNhbGwgYmluZF90ZXh0ZG9tYWluX2NvZGVzZXQoKSB0byBoYXZlIGdldHRleHQoKSB0cmFuc2xhdGUKICBtZXNzYWdlcyB0byAnZW5jb2RpbmcnLiAgVGhpcyByZXF1aXJlcyBHTlUgZ2V0dGV4dCAwLjEwLjM2IG9yIGxhdGVyLgotIEFkZGVkIGdldHRleHQgc3VwcG9ydCBmb3IgV2luMzIuICBUaGlzIG1lYW5zIG1lc3NhZ2VzIHdpbGwgYmUgdHJhbnNsYXRlZAogIHdoZW4gdGhlIGxvY2FsZSBpcyBzZXQgYW5kIGxpYmludGwuZGxsIGNhbiBiZSBmb3VuZC4gIChNdXJhb2thIFRhcm8pCiAgQWxzbyBtYWRlIGl0IHdvcmsgd2l0aCBNaW5nVyBjb21waWxlci4gIChFZHVhcmRvIEZlcm5hbmRleikKICBEZXRlY3QgdGhlIGxhbmd1YWdlIGFuZCBzZXQgJExBTkcgdG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSB0cmFuc2xhdGVkIG1lc3NhZ2VzCiAgKGlmIHN1cHBvcnRlZCkuICBBbHNvIHVzZSAkTEFORyB0byBzZWxlY3QgYSBsYW5ndWFnZSwgdjpsYW5nIGlzIGEgdmVyeQogIGRpZmZlcmVudCBraW5kIG9mIG5hbWUuCi0gTWFkZSBndmltZXh0LmRsbCB1c2UgdHJhbnNsYXRlZCBtZXNzYWdlcywgaWYgcG9zc2libGUuIChZYXN1aGlybyBNYXRzdW1vdG8pCgoKUGx1Z2luIHN1cHBvcnQJCQkJCSpuZXctcGx1Z2lucyoKLS0tLS0tLS0tLS0tLS0KClRvIG1ha2UgaXQgcmVhbGx5IGVhc3kgdG8gbG9hZCBhIFZpbSBzY3JpcHQgd2hlbiBzdGFydGluZyBWaW0sIHRoZSAicGx1Z2luIgpydW50aW1lIGRpcmVjdG9yeSBjYW4gYmUgdXNlZC4gIEFsbCAiKi52aW0iIGZpbGVzIGluIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseQpsb2FkZWQuICBGb3IgVW5peCwgdGhlIGRpcmVjdG9yeSAifi8udmltL3BsdWdpbiIgaXMgdXNlZCBieSBkZWZhdWx0LiAgVGhlCidydW50aW1lcGF0aCcgb3B0aW9uIGNhbiBiZSBzZXQgdG8gbG9vayBpbiBvdGhlciBkaXJlY3RvcmllcyBmb3IgcGx1Z2lucy4KfGxvYWQtcGx1Z2luc3wgfGFkZC1wbHVnaW58CgpUaGUgfDpydW50aW1lfCBjb21tYW5kIGhhcyBiZWVuIGFkZGVkIHRvIGxvYWQgb25lIG9yIG1vcmUgZmlsZXMgaW4KJ3J1bnRpbWVwYXRoJy4KClN0YW5kYXJkIHBsdWdpbnM6Cm5ldHJ3LnZpbSAtIEVkaXQgZmlsZXMgb3ZlciBhIG5ldHdvcmsgfG5ldy1uZXR3b3JrLWZpbGVzfApnemlwLnZpbSAtIEVkaXQgY29tcHJlc3NlZCBmaWxlcwpleHBsb3Jlci52aW0gLSBCcm93c2UgZGlyZWN0b3JpZXMgfG5ldy1maWxlLWJyb3dzZXJ8CgpBZGRlZCBzdXBwb3J0IGZvciBsb2NhbCBoZWxwIGZpbGVzLiB8YWRkLWxvY2FsLWhlbHB8LgpXaGVuIHNlYXJjaGluZyBmb3IgaGVscCB0YWdzLCBhbGwgImRvYy90YWdzIiBmaWxlcyBpbiAncnVudGltZXBhdGgnIGFyZSB1c2VkLgpBZGRlZCB0aGUgIjpoZWxwdGFncyIgY29tbWFuZDogR2VuZXJhdGUgYSB0YWdzIGZpbGUgZm9yIGEgaGVscCBkaXJlY3RvcnkuClRoZSBmaXJzdCBsaW5lIG9mIGVhY2ggaGVscCBmaWxlIGlzIGF1dG9tYWdpY2FsbHkgYWRkZWQgdG8gdGhlICJMT0NBTApBRERJVElPTlMiIHNlY3Rpb24gaW4gZG9jL2hlbHAudHh0LgoKQWRkZWQgdGhlIDx1bmlxdWU+IGFyZ3VtZW50IHRvICI6bWFwIjogb25seSBhZGQgYSBtYXBwaW5nIHdoZW4gaXQgd2Fzbid0CmRlZmluZWQgYmVmb3JlLgoKV2hlbiBkaXNwbGF5aW5nIGFuIG9wdGlvbiB2YWx1ZSB3aXRoICd2ZXJib3NlJyBzZXQgd2lsbCBnaXZlIGEgbWVzc2FnZSBhYm91dAp3aGVyZSB0aGUgb3B0aW9uIHdhcyBsYXN0IHNldC4gIFZlcnkgdXNlZnVsIHRvIGZpbmQgb3V0IHdoaWNoIHNjcmlwdCBkaWQgc2V0CnRoZSB2YWx1ZS4KClRoZSBuZXcgfDpzY3JpcHRuYW1lc3wgY29tbWFuZCBkaXNwbGF5cyBhIGxpc3Qgb2YgYWxsIHNjcmlwdHMgdGhhdCBoYXZlIGJlZW4Kc291cmNlZC4KCkdVSTogRm9yIEF0aGVuYSwgTW90aWYgYW5kIEdUSyBsb29rIGZvciBhIHRvb2xiYXIgYml0bWFwIGluIHRoZSAiYml0bWFwcyIKZGlyZWN0b3JpZXMgaW4gJ3J1bnRpbWVwYXRoJy4gIEFsbG93cyBhZGRpbmcgeW91ciBvd24gYml0bWFwcy4KCgpGaWxldHlwZSBwbHVnaW5zCQkJCSpuZXctZmlsZXR5cGUtcGx1Z2lucyoKLS0tLS0tLS0tLS0tLS0tLS0KCkEgbmV3IGdyb3VwIG9mIGZpbGVzIGhhcyBiZWVuIGFkZGVkIHRvIGRvIHNldHRpbmdzIGZvciBzcGVjaWZpYyBmaWxlIHR5cGVzLgpUaGVzZSBjYW4gYmUgb3B0aW9ucyBhbmQgbWFwcGluZ3Mgd2hpY2ggYXJlIHNwZWNpZmljYWxseSB1c2VkIGZvciBvbmUgdmFsdWUgb2YKJ2ZpbGV0eXBlJy4KClRoZSBmaWxlcyBhcmUgbG9jYXRlZCBpbiAiJFZJTVJVTlRJTUUvZnRwbHVnaW4iLiAgVGhlICdydW50aW1lcGF0aCcgb3B0aW9uCm1ha2VzIGl0IHBvc3NpYmxlIHRvIHVzZSBzZXZlcmFsIHNldHMgb2YgcGx1Z2luczogWW91ciBvd24sIHN5c3RlbS13aWRlLAppbmNsdWRlZCBpbiB0aGUgVmltIGRpc3RyaWJ1dGlvbiwgZXRjLgoKVG8gYmUgYWJsZSB0byBtYWtlIHRoaXMgd29yaywgc2V2ZXJhbCBmZWF0dXJlcyB3ZXJlIGFkZGVkOgotIEFkZGVkIHRoZSAiczoiIHZhcmlhYmxlcywgbG9jYWwgdG8gYSBzY3JpcHQuICBBdm9pZHMgbmFtZSBjb25mbGljdHMgd2l0aAogIGdsb2JhbCB2YXJpYWJsZXMuICBUaGV5IGNhbiBiZSB1c2VkIGluIHRoZSBzY3JpcHQgYW5kIGluIGZ1bmN0aW9ucywKICBhdXRvY29tbWFuZHMgYW5kIHVzZXIgY29tbWFuZHMgZGVmaW5lZCBpbiB0aGUgc2NyaXB0LiAgVGhleSBhcmUga2VwdCBiZXR3ZWVuCiAgaW52b2NhdGlvbnMgb2YgdGhlIHNhbWUgc2NyaXB0LiAgfHM6dmFyfAotIEFkZGVkIHRoZSBnbG9iYWwgdmFsdWUgZm9yIGxvY2FsIG9wdGlvbnMuICBUaGlzIHZhbHVlIGlzIHVzZWQgd2hlbiBvcGVuaW5nCiAgYSBuZXcgYnVmZmVyIG9yIGVkaXRpbmcgYW5vdGhlciBmaWxlLiAgVGhlIG9wdGlvbiB2YWx1ZSBzcGVjaWZpZWQgaW4gYQogIG1vZGVsaW5lIG9yIGZpbGV0eXBlIHNldHRpbmcgaXMgbm90IGNhcnJpZWQgb3ZlciB0byBhbm90aGVyIGJ1ZmZlci4KICAiOnNldCIgc2V0cyBib3RoIHRoZSBsb2NhbCBhbmQgdGhlIGdsb2JhbCB2YWx1ZS4KICAiOnNldGxvY2FsIiBzZXRzIHRoZSBsb2NhbCBvcHRpb24gdmFsdWUgb25seS4KICAiOnNldGdsb2JhbCIgc2V0cyBvciBkaXNwbGF5cyB0aGUgZ2xvYmFsIHZhbHVlIGZvciBhIGxvY2FsIG9wdGlvbi4KICAiOnNldGxvY2FsIG5hbWU8IiBzZXRzIGEgbG9jYWwgb3B0aW9uIHRvIGl0cyBnbG9iYWwgdmFsdWUuCi0gQWRkZWQgdGhlIGJ1ZmZlci1sb2NhbCB2YWx1ZSBmb3Igc29tZSBnbG9iYWwgb3B0aW9uczogJ2VxdWFscHJnJywgJ21ha2VwcmcnLAogICdlcnJvcmZvcm1hdCcsICdncmVwcHJnJywgJ3BhdGgnLCAnZGljdGlvbmFyeScsICd0aGVzYXVydXMnLCAndGFncycsCiAgJ2luY2x1ZGUnIGFuZCAnZGVmaW5lJy4gIFRoaXMgYWxsb3dzIHNldHRpbmcgYSBsb2NhbCB2YWx1ZSBmb3IgdGhlc2UgZ2xvYmFsCiAgb3B0aW9ucywgd2l0aG91dCBtYWtpbmcgaXQgaW5jb21wYXRpYmxlLgotIEFkZGVkIG1hcHBpbmdzIGFuZCBhYmJyZXZpYXRpb25zIGxvY2FsIHRvIGEgYnVmZmVyOiAiOm1hcCA8YnVmZmVyPiIuCi0gSW4gYSBtYXBwaW5nICI8TGVhZGVyPiIgY2FuIGJlIHVzZWQgdG8gZ2V0IHRoZSB2YWx1ZSBvZiB0aGUgIm1hcGxlYWRlciIKICB2YXJpYWJsZS4gIFRoaXMgc2ltcGxpZmllcyBtYXBwaW5ncyB0aGF0IHVzZSAibWFwbGVhZGVyIi4gICI8TGVhZGVyPiIKICBkZWZhdWx0cyB0byAiXCIuICAiPExvY2FsTGVhZGVyPiIgZG9lcyB0aGUgc2FtZSB3aXRoICJtYXBsb2NhbGxlYWRlciIuICBUaGlzCiAgaXMgdG8gYmUgdXNlZCBmb3IgbWFwcGluZ3MgbG9jYWwgdG8gYSBidWZmZXIuCi0gQWRkZWQgPFNJRD4gU2NyaXB0IElEIHRvIGRlZmluZSBmdW5jdGlvbnMgYW5kIG1hcHBpbmdzIGxvY2FsIHRvIGEgc2NyaXB0LgotIEFkZGVkIDxzY3JpcHQ+IGFyZ3VtZW50IHRvICI6bm9yZW1hcCIgYW5kICI6bm9yZW1lbnUiOiBPbmx5IHJlbWFwCiAgc2NyaXB0LWxvY2FsIG1hcHBpbmdzLiAgQXZvaWRzIHRoYXQgbWFwcGluZ3MgZnJvbSBvdGhlciBzY3JpcHRzIGdldCBpbiB0aGUKICB3YXksIGJ1dCBkb2VzIGFsbG93IHVzaW5nIG1hcHBpbmdzIGRlZmluZWQgaW4gdGhlIHNjcmlwdC4KLSBVc2VyIGNvbW1hbmRzIGNhbiBiZSBsb2NhbCB0byBhIGJ1ZmZlcjogIjpjb21tYW5kIC1idWZmZXIiLgoKVGhlIG5ldyAiOnNldGZpbGV0eXBlIiBjb21tYW5kIGlzIHVzZWQgaW4gdGhlIGZpbGV0eXBlIGRldGVjdGlvbiBhdXRvY29tbWFuZHMsCnRvIGF2b2lkIHRoYXQgJ2ZpbGV0eXBlJyBpcyBzZXQgdHdpY2UuCgoKRmlsZSBicm93c2VyCQkJCQkJKm5ldy1maWxlLWJyb3dzZXIqCi0tLS0tLS0tLS0tLQoKV2hlbiBlZGl0aW5nIGEgZGlyZWN0b3J5LCB0aGUgZXhwbG9yZXIgcGx1Z2luIHdpbGwgbGlzdCB0aGUgZmlsZXMgaW4gdGhlCmRpcmVjdG9yeS4gIFByZXNzaW5nIDxFbnRlcj4gb24gYSBmaWxlIG5hbWUgZWRpdHMgdGhhdCBmaWxlLiAgUHJlc3NpbmcgPEVudGVyPgpvbiBhIGRpcmVjdG9yeSBtb3ZlcyB0aGUgYnJvd3NlciB0byB0aGF0IGRpcmVjdG9yeS4KClRoZXJlIGFyZSBzZXZlcmFsIG90aGVyIHBvc3NpYmlsaXRpZXMsIHN1Y2ggYXMgb3BlbmluZyBhIGZpbGUgaW4gdGhlIHByZXZpZXcKd2luZG93LCByZW5hbWluZyBmaWxlcyBhbmQgZGVsZXRpbmcgZmlsZXMuCgoKRWRpdGluZyBmaWxlcyBvdmVyIGEgbmV0d29yawkJCQkqbmV3LW5ldHdvcmstZmlsZXMqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkZpbGVzIHN0YXJ0aW5nIHdpdGggc2NwOi8vLCByY3A6Ly8sIGZ0cDovLyBhbmQgaHR0cDovLyBhcmUgcmVjb2duaXplZCBhcwpyZW1vdGUgZmlsZXMuICBBbiBhdHRlbXB0IGlzIG1hZGUgdG8gYWNjZXNzIHRoZXNlIGZpbGVzIHdpdGggdGhlIGluZGljYXRlZAptZXRob2QuICBGb3IgaHR0cDovLyBvbmx5IHJlYWRpbmcgaXMgcG9zc2libGUsIGZvciB0aGUgb3RoZXJzIHdyaXRpbmcgaXMgYWxzbwpzdXBwb3J0ZWQuICBVc2VzIHRoZSBuZXRydy52aW0gc2NyaXB0IGFzIGEgc3RhbmRhcmQgInBsdWdpbiIuIHxuZXRyd3wKCk1hZGUgImdmIiB3b3JrIG9uIGEgVVJMLiAgSXQgbm8gbG9uZ2VyIGFzc3VtZXMgdGhlIGZpbGUgaXMgbG9jYWwgb24gdGhlCmNvbXB1dGVyIChtb3N0bHkgZGlkbid0IHdvcmsgYW55d2F5LCBiZWNhdXNlIHRoZSBmdWxsIHBhdGggd2FzIHJlcXVpcmVkKS4KQWRqdXN0ZWQgdGVzdDIgZm9yIHRoaXMuCgpBbGxvdyB1c2luZyBhIFVSTCBpbiAncGF0aCcuICBNYWtlcyAiOmZpbmQgaW5kZXguaHRtbCIgd29yay4KCkdUSzogQWxsb3cgZHJvcHBpbmcgYSBodHRwOi8vIGFuZCBmdHA6Ly8gVVJMIG9uIFZpbS4gIFRoZSBuZXRydyBwbHVnaW4gdGFrZXMKY2FyZSBvZiBkb3dubG9hZGluZyB0aGUgZmlsZS4gKE1pS2FlbCBCZXJ0aGUpCgoKV2luZG93IGZvciBjb21tYW5kLWxpbmUgZWRpdGluZwkJCQkqbmV3LWNtZHdpbioKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKVGhlIENvbW1hbmQtbGluZSB3aW5kb3cgY2FuIGJlIHVzZWQgdG8gZWRpdCBhIGNvbW1hbmQtbGluZSB3aXRoIE5vcm1hbCBhbmQKSW5zZXJ0IG1vZGUgY29tbWFuZHMuICBXaGVuIGl0IGlzIG9wZW5lZCBpdCBjb250YWlucyB0aGUgaGlzdG9yeS4gIFRoaXMgYWxsb3dzCmNvcHlpbmcgcGFydHMgb2YgcHJldmlvdXMgY29tbWFuZCBsaW5lcy4gfGNtZHdpbnwKClRoZSBjb21tYW5kLWxpbmUgd2luZG93IGNhbiBiZSBvcGVuZWQgZnJvbSB0aGUgY29tbWFuZC1saW5lIHdpdGggdGhlIGtleQpzcGVjaWZpZWQgYnkgdGhlICdjZWRpdCcgb3B0aW9uIChsaWtlIE52aSkuICBJdCBjYW4gYWxzbyBiZSBvcGVuZWQgZGlyZWN0bHkKZnJvbSBOb3JtYWwgbW9kZSB3aXRoICJxOiIsICJxLyIgYW5kICJxPyIuCgpUaGUgJ2NtZHdpbmhlaWdodCcgaXMgdXNlZCB0byBzcGVjaWZ5IHRoZSBpbml0aWFsIGhlaWdodCBvZiB0aGUgd2luZG93LgoKSW4gSW5zZXJ0IG1vZGUgQ1RSTC1YIENUUkwtViBjYW4gYmUgdXNlZCB0byBjb21wbGV0ZSBhbiBFeCBjb21tYW5kIGxpbmUsIGxpa2UKaXQncyBkb25lIG9uIHRoZSBjb21tYW5kLWxpbmUuICBUaGlzIGlzIGFsc28gdXNlZnVsIGZvciB3cml0aW5nIFZpbSBzY3JpcHRzIQoKQWRkaXRpb25hbGx5LCB0aGVyZSBpcyAiaW1wcm92ZWQgRXggbW9kZSIuICBFbnRlcmVkIHdoZW4gVmltIGlzIHN0YXJ0ZWQgYXMKImV4aW0iIG9yICJ2aW0gLUUiLCBhbmQgd2l0aCB0aGUgImdRIiBjb21tYW5kLiAgV29ya3MgbGlrZSByZXBlYXRlZCB1c2Ugb2YKIjoiLCB3aXRoIGZ1bGwgY29tbWFuZC1saW5lIGVkaXRpbmcgYW5kIGNvbXBsZXRpb24uIChVbGYgQ2FybHNzb24pCgoKRGVidWdnaW5nIG1vZGUJCQkJCQkqbmV3LWRlYnVnLW1vZGUqCi0tLS0tLS0tLS0tLS0tCgpJbiBkZWJ1Z2dpbmcgbW9kZSBzb3VyY2VkIHNjcmlwdHMgYW5kIHVzZXIgZnVuY3Rpb25zIGNhbiBiZSBleGVjdXRlZCBsaW5lIGJ5CmxpbmUuICBUaGVyZSBhcmUgY29tbWFuZHMgdG8gc3RlcCBvdmVyIGEgY29tbWFuZCBvciBzdGVwIGludG8gaXQuIHxkZWJ1Zy1tb2RlfAoKQnJlYWtwb2ludHMgY2FuIGJlIHNldCB0byBydW4gdW50aWwgYSBjZXJ0YWluIGxpbmUgaW4gYSBzY3JpcHQgb3IgdXNlcgpmdW5jdGlvbiBpcyBleGVjdXRlZC4gfDpicmVha2FkZHwKCkRlYnVnZ2luZyBjYW4gYmUgc3RhcnRlZCB3aXRoICI6ZGVidWcge2NtZH0iIHRvIGRlYnVnIHdoYXQgaGFwcGVucyB3aGVuIGEKY29tbWFuZCBleGVjdXRlcy4gIFRoZSB8LUR8IGFyZ3VtZW50IGNhbiBiZSB1c2VkIHRvIGRlYnVnIHdoaWxlIHN0YXJ0aW5nIHVwLgoKCkN1cnNvciBpbiB2aXJ0dWFsIHBvc2l0aW9uCQkJCSpuZXctdmlydGVkaXQqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpBZGRlZCB0aGUgJ3ZpcnR1YWxlZGl0JyBvcHRpb246IEFsbG93IHBvc2l0aW9uaW5nIHRoZSBjdXJzb3Igd2hlcmUgdGhlcmUgaXMgbm8KYWN0dWFsIGNoYXJhY3RlciBpbiBJbnNlcnQgbW9kZSwgVmlzdWFsIG1vZGUgb3IgYWx3YXlzLiAoTWF0dGhpYXMgS3JhbW0pClRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgaW4gVmlzdWFsLWJsb2NrIG1vZGUuICBJdCBhbGxvd3MgcG9zaXRpb25pbmcgYQpjb3JuZXIgb2YgdGhlIGFyZWEgd2hlcmUgdGhlcmUgaXMgbm8gdGV4dCBjaGFyYWN0ZXIuICAoTWFueSBpbXByb3ZlbWVudHMgYnkKQ2hhc2UgVGluZ2xleSkKCgpEZWJ1Z2dlciBpbnRlcmZhY2UJCQkJCSpuZXctZGVidWctaXRmKgotLS0tLS0tLS0tLS0tLS0tLS0KClRoaXMgd2FzIG9yaWdpbmFsbHkgbWFkZSB0byB3b3JrIHdpdGggU3VuIFZpc3VhbCBXb3Jrc2hvcC4gKEdvcmRvbiBQcmlldXIpClNlZSB8ZGVidWdnZXIudHh0fCwgfHNpZ24udHh0fCBhbmQgfHdvcmtzaG9wLnR4dHwuCgpBZGRlZCB0aGUgIjpzaWduIiBjb21tYW5kIHRvIGRlZmluZSBhbmQgcGxhY2Ugc2lnbnMuICBUaGV5IGNhbiBiZSBkaXNwbGF5ZWQKd2l0aCB0d28gQVNDSUkgY2hhcmFjdGVycyBvciBhbiBpY29uLiAgVGhlIGxpbmUgYWZ0ZXIgaXQgY2FuIGJlIGhpZ2hsaWdodGVkLgpVc2VmdWwgdG8gZGlzcGxheSBicmVha3BvaW50cyBhbmQgdGhlIGN1cnJlbnQgUEMgcG9zaXRpb24uCgpBZGRlZCB0aGUgfDp3c3ZlcmJ8IGNvbW1hbmQgdG8gZXhlY3V0ZSBkZWJ1Z2dlciBjb21tYW5kcy4KCkFkZGVkIGJhbGxvb24gc3R1ZmY6ICdiYWxsb29uZGVsYXknIGFuZCAnYmFsbG9vbmV2YWwnIG9wdGlvbnMuCgpBZGRlZCAiaWNvbj0iIGFyZ3VtZW50IGZvciAiOm1lbnUiLiAgQWxsb3dzIGRlZmluaW5nIGEgc3BlY2lmaWMgaWNvbiBmb3IgYQpUb29sQmFyIGl0ZW0uCgoKQ29tbXVuaWNhdGlvbiBiZXR3ZWVuIFZpbXMJCQkJKm5ldy12aW0tc2VydmVyKgotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKQWRkZWQgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHR3byBWaW1zLiAgTWFrZXMgaXQgcG9zc2libGUgdG8gc2VuZCBjb21tYW5kcyBmcm9tCm9uZSBWaW0gdG8gYW5vdGhlci4gIFdvcmtzIGZvciBYLVdpbmRvd3MgYW5kIE1TLVdpbmRvd3MgfGNsaWVudHNlcnZlcnwuCgpVc2UgIi0tcmVtb3RlIiB0byBoYXZlIGZpbGVzIGJlIGVkaXRlZCBpbiBhbiBhbHJlYWR5IHJ1bm5pbmcgVmltLgpVc2UgIi0tcmVtb3RlLXdhaXQiIHRvIGRvIHRoZSBzYW1lIGFuZCB3YWl0IGZvciB0aGUgZWRpdGluZyB0byBmaW5pc2guClVzZSAiLS1yZW1vdGUtc2VuZCIgdG8gc2VuZCBjb21tYW5kcyBmcm9tIG9uZSBWaW0gdG8gYW5vdGhlci4KVXNlICItLXJlbW90ZS1leHByIiB0byBoYXZlIGFuIGV4cHJlc3Npb24gZXZhbHVhdGVkIGluIGFub3RoZXIgVmltLgpVc2UgIi0tc2VydmVybGlzdCIgdG8gbGlzdCB0aGUgY3VycmVudGx5IGF2YWlsYWJsZSBWaW0gc2VydmVycy4gIChYIG9ubHkpClRoZXJlIGFyZSBhbHNvIGZ1bmN0aW9ucyB0byBjb21tdW5pY2F0ZSBiZXR3ZWVuIHRoZSBzZXJ2ZXIgYW5kIHRoZSBjbGllbnQuCnxyZW1vdGVfc2VuZCgpfCB8cmVtb3RlX2V4cHIoKXwKCihYLXdpbmRvd3MgdmVyc2lvbiBpbXBsZW1lbnRlZCBieSBGbGVtbWluZyBNYWRzZW4sIE1TLVdpbmRvd3MgdmVyc2lvbiBieSBQYXVsCk1vb3JlKQoKQWRkZWQgdGhlIGNvbW1hbmQgc2VydmVyIG5hbWUgdG8gdGhlIHdpbmRvdyB0aXRsZSwgc28geW91IGNhbiBzZWUgd2hpY2ggc2VydmVyCm5hbWUgYmVsb25ncyB0byB3aGljaCBWaW0uCgpSZW1vdmVkIHRoZSBPbGVWaW0gZGlyZWN0b3J5IGFuZCBTZW5kVG9WaW0uZXhlIGFuZCBFZGl0V2l0aFZpbS5leGUgZnJvbSB0aGUKZGlzdHJpYnV0aW9uLiAgQ2FuIG5vdyB1c2UgImd2aW0gLS1yZW1vdGUiIGFuZCAiZ3ZpbSAtLXJlbW90ZS1zZW5kIiwgd2hpY2ggaXMKcG9ydGFibGUuCgpHVEsrOiBTdXBwb3J0IHJ1bm5pbmcgVmltIGluc2lkZSBhbm90aGVyIHdpbmRvdy4gIFVzZXMgdGhlIC0tc29ja2V0aWQgYXJndW1lbnQKKE5laWwgQmlyZCkKCgpCdWZmZXIgdHlwZSBvcHRpb25zCQkJCQkqbmV3LWJ1ZnR5cGUqCi0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSAnYnVmdHlwZScgYW5kICdidWZoaWRkZW4nIG9wdGlvbnMgaGF2ZSBiZWVuIGFkZGVkLiAgVGhleSBjYW4gYmUgc2V0IHRvCmhhdmUgZGlmZmVyZW50IGtpbmRzIG9mIGJ1ZmZlcnMuICBGb3IgZXhhbXBsZToKLSAnYnVmdHlwZScgPSAicXVpY2tmaXgiOiBidWZmZXIgd2l0aCBlcnJvciBsaXN0Ci0gJ2J1ZnR5cGUnID0gIm5vZmlsZSIgYW5kICdidWZoaWRkZW4nID0gImRlbGV0ZSI6IHNjcmF0Y2ggYnVmZmVyIHRoYXQgd2lsbCBiZQogIGRlbGV0ZWQgYXMgc29vbiBhcyB0aGVyZSBpcyBubyB3aW5kb3cgZGlzcGxheWluZyBpdC4KCididWZoaWRkZW4nIGNhbiBiZSB1c2VkIHRvIG92ZXJydWxlIHRoZSAnaGlkZGVuJyBvcHRpb24gZm9yIG9uZSBidWZmZXIuCgpJbiBjb21iaW5hdGlvbiB3aXRoICdidWZsaXN0ZWQnIGFuZCAnc3dhcGZpbGUnIHRoaXMgb2ZmZXJzIHRoZSBwb3NzaWJpbGl0eSB0bwp1c2UgdmFyaW91cyBraW5kcyBvZiBzcGVjaWFsIGJ1ZmZlcnMuICBTZWUgfHNwZWNpYWwtYnVmZmVyc3wuCgoKUHJpbnRpbmcJCQkJCQkqbmV3LXByaW50aW5nKgotLS0tLS0tLQoKSW5jbHVkZWQgZmlyc3QgaW1wbGVtZW50YXRpb24gb2YgdGhlICI6aGFyZGNvcHkiIGNvbW1hbmQgZm9yIHByaW50aW5nCnRvIHBhcGVyLiAgRm9yIE1TLVdpbmRvd3MgYW55IGluc3RhbGxlZCBwcmludGVyIGNhbiBiZSB1c2VkLiAgRm9yIG90aGVyCnN5c3RlbXMgYSBQb3N0U2NyaXB0IGZpbGUgaXMgZ2VuZXJhdGVkLCB3aGljaCBjYW4gYmUgcHJpbnRlZCB3aXRoIHRoZQoncHJpbnRleHByJyBvcHRpb24uCihNUy1XaW5kb3dzIHBhcnQgYnkgVmluY2UgTmVncmksIFZpcGluIEFyYXZpbmQsIFBvc3RTY3JpcHQgYnkgVmluY2UgTmVncmkgYW5kCk1pa2UgV2lsbGlhbXMpCgpNYWRlICI6aGFyZGNvcHkiIHdvcmsgd2l0aCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuIChNdXJhb2thIFRhcm8sIFlhc3VoaXJvCk1hdHN1bW90bykKCkFkZGVkIG9wdGlvbnMgdG8gdHVuZSB0aGUgd2F5IHByaW50aW5nIHdvcmtzOiAoVmluY2UgTmVncmkpCi0gJ3ByaW50b3B0aW9ucycgZGVmaW5lcyB2YXJpb3VzIHRoaW5ncy4KLSAncHJpbnRoZWFkZXInIHNwZWNpZmllcyB0aGUgaGVhZGVyIGZvcm1hdC4gIEFkZGVkICJOIiBmaWVsZCB0byAnc3RhdHVzbGluZScKICBmb3IgdGhlIHBhZ2UgbnVtYmVyLgotICdwcmludGZvbnQnIHNwZWNpZmllcyB0aGUgZm9udCBuYW1lIGFuZCBhdHRyaWJ1dGVzLgotICdwcmludGRldmljZScgZGVmaW5lcyB0aGUgZGVmYXVsdCBwcmludGVyIGZvciAiOmhhcmRjb3B5ISIuCgoKUG9ydHMJCQkJCQkJKnBvcnRzLTYqCi0tLS0tCgpQb3J0IHRvIE9TLzM5MCBVbml4IChSYWxmIFNjaGFuZGwpCi0gQSBsb3Qgb2YgY2hhbmdlcyB0byBoYW5kbGUgRUJDRElDIGVuY29kaW5nLgotIENoYW5nZWQgQ3RybCgneCcpIHRvIEN0cmxfeCBkZWZpbmUuCgpJbmNsdWRlZCBqc2Jtb3VzZSBzdXBwb3J0LiAoRGFycmVuIEdhcnRoKQpTdXBwb3J0IGZvciBkZWMgbW91c2UgaW4gVW5peC4gKFN0ZXZlIFdhbGwpCgpQb3J0IHRvIDE2LWJpdCBNUyBXaW5kb3dzIChXaW5kb3dzIDMuMXgpIChWaW5jZSBOZWdyaSkKClBvcnQgdG8gUU5YLiAgU3VwcG9ydHMgdGhlIFBob3RvbiBHVUksIG1vdXNlLCBldGMuIChKdWxpYW4gS2lucmFpZCkKCkFsbG93IGNyb3NzLWNvbXBpbGluZyB0aGUgV2luMzIgdmVyc2lvbiB3aXRoIE1ha2VfbWluZy5tYWsuIChSb24gQWFyb24pCkFkZGVkIFB5dGhvbiBzdXBwb3J0IGZvciBjb21waWxpbmcgd2l0aCBNaW5ndy4gKFJvbiBBYXJvbikKCkRvcyAzMiBiaXQ6IEFkZGVkIHN1cHBvcnQgdGhlIFdpbmRvd3MgY2xpcGJvYXJkLiAoRGF2aWQgS290Y2hhbikKCldpbjMyOiBEeW5hbWljYWxseSBsb2FkIFBlcmwgYW5kIFB5dGhvbi4gIEFsbG93cyBjb21waWxpbmcgVmltIHdpdGggdGhlc2UKaW50ZXJmYWNlcyBhbmQgd2lsbCB0cnkgdG8gZmluZCB0aGUgRExMcyBhdCBydW50aW1lLiAoTXVyYW9rYSBUYXJvKQoKQ29tcGlsaW5nIHRoZSBXaW4zMiBHVUkgd2l0aCBDeWd3aW4uICBBbHNvIGNvbXBpbGUgdmltcnVuLCBkb3NpbnN0IGFuZAp1bmluc3RhbGwuICAoR2VyZnJpZWQpCgpNYWM6IE1ha2UgVmltIGNvbXBpbGUgd2l0aCB0aGUgZnJlZSBNUFcgY29tcGlsZXIgc3VwcGxpZWQgYnkgQXBwbGUuICBBbmQKdXBkYXRlcyBmb3IgQ29kZVdhcnJpb3IuIChBeGVsIEtpZWxob3JuKQoKQWRkZWQgdHlwZWNhc3RzIGFuZCBpZmRlZnMgYXMgYSBzdGFydCB0byBtYWtlIFZpbSB3b3JrIG9uIFdpbjY0IChHZW9yZ2UKUmVpbGx5KQoKClF1aWNrZml4IGV4dGVuZGVkCQkJCQkqcXVpY2tmaXgtNioKLS0tLS0tLS0tLS0tLS0tLS0KCkFkZGVkIHRoZSAiZXJyb3Igd2luZG93Ii4gIEl0IGNvbnRhaW5zIGFsbCB0aGUgZXJyb3JzIG9mIHRoZSBjdXJyZW50IGVycm9yCmxpc3QuICBQcmVzc2luZyA8RW50ZXI+IGluIGEgbGluZSBtYWtlcyBWaW0ganVtcCB0byB0aGF0IGxpbmUgKGluIGFub3RoZXIKd2luZG93KS4gIFRoaXMgbWFrZXMgaXQgZWFzeSB0byBuYXZpZ2F0ZSB0aHJvdWdoIHRoZSBlcnJvciBsaXN0Lgp8cXVpY2tmaXgtd2luZG93fC4KCi0gfDpjb3Blbnwgb3BlbnMgdGhlIHF1aWNrZml4IHdpbmRvdy4KLSB8OmNjbG9zZXwgY2xvc2VzIHRoZSBxdWlja2ZpeCB3aW5kb3cuCi0gfDpjd2luZG93fCB0YWtlcyBjYXJlIHRoYXQgdGhlcmUgaXMgYSBxdWlja2ZpeCB3aW5kb3cgb25seSB3aGVuIHRoZXJlIGFyZQogIHJlY29nbml6ZWQgZXJyb3JzLiAoRGFuIFNoYXJwKQoKLSBRdWlja2ZpeCBhbHNvIGtub3dzICJpbmZvIiwgbmV4dCB0byAid2FybmluZyIgYW5kICJlcnJvciIgdHlwZXMuICAiJUkiIGNhbiBiZQogIHVzZWQgZm9yIHRoZSBzdGFydCBvZiBhIG11bHRpLWxpbmUgaW5mb3JtYXRpb25hbCBtZXNzYWdlLiAoVG9ueSBMZW5laXMpCi0gVGhlICIlcCIgYXJndW1lbnQgY2FuIGJlIHVzZWQgaW4gJ2Vycm9yZm9ybWF0JyB0byBnZXQgdGhlIGNvbHVtbiBudW1iZXIgZnJvbQogIGEgbGluZSB3aGVyZSAiXiIgcG9pbnRzIHRvIHRoZSBjb2x1bW4uIChTdGVmYW4gUm9lbWVyKQotIFdoZW4gdXNpbmcgIiVmIiBpbiAnZXJyb3Jmb3JtYXQnIG9uIGEgRE9TL1dpbmRvd3Mgc3lzdGVtLCBhbHNvIGluY2x1ZGUgImM6IgogIGluIHRoZSBmaWxlbmFtZSwgZXZlbiB3aGVuIHVzaW5nICIlZjoiLgoKCk9wZXJhdG9yIG1vZGlmaWVycwkJCQkJKm5ldy1vcGVyYXRvci1tb2QqCi0tLS0tLS0tLS0tLS0tLS0tLQoKSW5zZXJ0ICJ2IiwgIlYiIG9yIENUUkwtViBiZXR3ZWVuIGFuIG9wZXJhdG9yIGFuZCBhIG1vdGlvbiBjb21tYW5kIHRvIGZvcmNlCnRoZSBvcGVyYXRvciB0byB3b3JrIGNoYXJhY3Rlcndpc2UsIGxpbmV3aXNlIG9yIGJsb2Nrd2lzZS4gfG9fdnwKCgpTZWFyY2ggUGF0aAkJCQkJCSpuZXctc2VhcmNoLXBhdGgqCi0tLS0tLS0tLS0tCgpWaW0gY2FuIHNlYXJjaCBpbiBhIGRpcmVjdG9yeSB0cmVlIG5vdCBvbmx5IGluIGRvd253YXJkcyBidXQgYWxzbyB1cHdhcmRzLgpXb3JrcyBmb3IgdGhlICdwYXRoJywgJ2NkcGF0aCcgYW5kICd0YWdzJyBvcHRpb25zLiAoUmFsZiBTY2hhbmRsKQoKQWxzbyB1c2UgIioqIiBmb3IgJ3RhZ3MnIG9wdGlvbi4gKFJhbGYgU2NoYW5kbCkKCkFkZGVkICdpbmNsdWRlZXhwcicsIGNhbiBiZSB1c2VkIHRvIG1vZGlmeSBmaWxlIG5hbWUgZm91bmQgYnkgJ2luY2x1ZGUnCm9wdGlvbi4KQWxzbyB1c2UgJ2luY2x1ZGVleHByJyBmb3IgImdmIiBhbmQgIjxjZmlsZT4iIHdoZW4gdGhlIGZpbGUgY2FuJ3QgYmUgZm91bmQKd2l0aG91dCBtb2RpZmljYXRpb24uICBVc2VmdWwgZm9yIGRvaW5nICJnZiIgb24gdGhlIG5hbWUgYWZ0ZXIgYW4gaW5jbHVkZSBvcgppbXBvcnQgc3RhdGVtZW50LgoKQWRkZWQgdGhlICdjZHBhdGgnIG9wdGlvbjogTG9jYXRpb25zIHRvIGZpbmQgYSAiOmNkIiBhcmd1bWVudC4gKFJhZikKCkFkZGVkIHRoZSAnc3VmZml4ZXNhZGQnIG9wdGlvbjogU3VmZml4ZXMgdG8gYmUgYWRkZWQgdG8gYSBmaWxlIG5hbWUgd2hlbgpzZWFyY2hpbmcgZm9yIGEgZmlsZSBmb3IgdGhlICJnZiIsICJbSSIsIGV0Yy4gY29tbWFuZHMuCgoKV3JpdGluZyBmaWxlcyBpbXByb3ZlZAkJCQkJKm5ldy1maWxlLXdyaXRpbmcqCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCkFkZGVkIHRoZSAnYmFja3VwY29weScgb3B0aW9uOiBTZWxlY3Qgd2hldGhlciBhIGZpbGUgaXMgdG8gYmUgY29waWVkIG9yCnJlbmFtZWQgdG8gbWFrZSBhIGJhY2t1cCBmaWxlLiAgVXNlZnVsIG9uIFVuaXggdG8gc3BlZWQgdXAgd3JpdGluZyBhbiBvcmRpbmFyeQpmaWxlLiAgVXNlZnVsIG9uIG90aGVyIHN5c3RlbXMgdG8gcHJlc2VydmUgZmlsZSBhdHRyaWJ1dGVzIGFuZCB3aGVuIGVkaXRpbmcgYQpmaWxlIG9uIGEgVW5peCBmaWxlc3lzdGVtLgoKQWRkZWQgdGhlICdhdXRvd3JpdGVhbGwnIG9wdGlvbi4gIFdvcmtzIGxpa2UgJ2F1dG93cml0ZScgYnV0IGZvciBtb3JlCmNvbW1hbmRzLgoKQWRkZWQgdGhlICdiYWNrdXBza2lwJyBvcHRpb246IEEgbGlzdCBvZiBmaWxlIHBhdHRlcm5zIHRvIHNraXAgbWFraW5nIGEgYmFja3VwCmZpbGUgd2hlbiBpdCBtYXRjaGVzLiAgVGhlIGRlZmF1bHQgZm9yIFVuaXggaW5jbHVkZXMgIi90bXAvKiIsIHRoaXMgbWFrZXMKImNyb250YWIgLWUiIHdvcmsuCgpBZGRlZCBzdXBwb3J0IGZvciBBY2Nlc3MgQ29udHJvbCBMaXN0cyAoQUNMKSBmb3IgRnJlZUJTRCBhbmQgV2luMzIuICBUaGUgQUNMCmlzIGNvcGllZCBmcm9tIHRoZSBvcmlnaW5hbCBmaWxlIHRvIHRoZSBuZXcgZmlsZSAob3IgdGhlIGJhY2t1cCBpZiBpdCdzCmNvcGllZCkuCkFDTCBpcyBhbHNvIHN1cHBvcnRlZCBmb3IgQUlYLCBTb2xhcmlzIGFuZCBnZW5lcmljIFBPU0lYLiAoVG9tYXMgT2dyZW4pCkFuZCBvbiBTR0kuCgoKQXJndW1lbnQgbGlzdAkJCQkJCSpuZXctYXJndW1lbnQtbGlzdCoKLS0tLS0tLS0tLS0tLQoKVGhlIHN1cHBvcnQgZm9yIHRoZSBhcmd1bWVudCBsaXN0IGhhcyBiZWVuIGV4dGVuZGVkLiAgSXQgY2FuIG5vdyBiZQptYW5pcHVsYXRlZCB0byBjb250YWluIHRoZSBmaWxlcyB5b3Ugd2FudCBpdCB0byBjb250YWluLgoKVGhlIGFyZ3VtZW50IGxpc3QgY2FuIG5vdyBiZSBsb2NhbCB0byBhIHdpbmRvdy4gIEl0IGlzIGNyZWF0ZWQgd2l0aCB0aGUKfDphcmdsb2NhbHwgY29tbWFuZC4gIFRoZSB8OmFyZ2dsb2JhbHwgY29tbWFuZCBjYW4gYmUgdXNlZCB0byBnbyBiYWNrIHRvIHRoZQpnbG9iYWwgYXJndW1lbnQgbGlzdC4KClRoZSB8OmFyZ2RvfCBjb21tYW5kIGV4ZWN1dGVzIGEgY29tbWFuZCBvbiBhbGwgZmlsZXMgaW4gdGhlIGFyZ3VtZW50IGxpc3QuCgpGaWxlIG5hbWVzIGNhbiBiZSBhZGRlZCB0byB0aGUgYXJndW1lbnQgbGlzdCB3aXRoIHw6YXJnYWRkfC4gIEZpbGUgbmFtZXMgY2FuCmJlIHJlbW92ZWQgd2l0aCB8OmFyZ2RlbGV0ZXwuCgoiIyMiIGNhbiBiZSB1c2VkIGxpa2UgIiMiLCBpdCBpcyByZXBsYWNlZCBieSBhbGwgdGhlIG5hbWVzIGluIHRoZSBhcmd1bWVudApsaXN0IGNvbmNhdGVuYXRlZC4gIFVzZWZ1bCBmb3IgIjpncmVwIGZvbyAjIyIuCgpUaGUgfDphcmdlZGl0fCBhZGRzIGEgZmlsZSB0byB0aGUgYXJndW1lbnQgbGlzdCBhbmQgZWRpdHMgaXQuICBMaWtlICI6YXJnYWRkIgphbmQgdGhlbiAiOmVkaXQiLgoKClJlc3RvcmUgYSBWaWV3CQkJCQkJKm5ldy1WaWV3KgotLS0tLS0tLS0tLS0tLQoKVGhlICI6bWt2aWV3IiBjb21tYW5kIHdyaXRlcyBhIFZpbSBzY3JpcHQgd2l0aCB0aGUgc2V0dGluZ3MgYW5kIG1hcHBpbmdzIGZvcgpvbmUgd2luZG93LiAgV2hlbiB0aGUgY3JlYXRlZCBmaWxlIGlzIHNvdXJjZWQsIHRoZSB2aWV3IG9mIHRoZSB3aW5kb3cgaXMKcmVzdG9yZWQuICBJdCdzIGxpa2UgIjpta3Nlc3Npb24iIGZvciBvbmUgd2luZG93LgpUaGUgVmlldyBhbHNvIGNvbnRhaW5zIHRoZSBsb2NhbCBhcmd1bWVudCBsaXN0IGFuZCBtYW51YWxseSBjcmVhdGVkLCBvcGVuZWQKYW5kIGNsb3NlZCBmb2xkcy4KCkFkZGVkIHRoZSAiOmxvYWR2aWV3IiBjb21tYW5kIGFuZCB0aGUgJ3ZpZXdkaXInIG9wdGlvbjogQWxsb3dzIGZvciBzYXZpbmcgYW5kCnJlc3RvcmluZyB2aWV3cyBvZiBhIGZpbGUgd2l0aCBzaW1wbGUgY29tbWFuZHMuICAiOm1rdmlldyAxIiBzYXZlcyB2aWV3IDEgZm9yCnRoZSBjdXJyZW50IGZpbGUsICI6bG9hZHZpZXcgMSIgbG9hZHMgaXQgYWdhaW4uICBBbHNvIGFsbG93cyBxdWlja2x5IHN3aXRjaGluZwpiZXR3ZWVuIHR3byB2aWV3cyBvbiBvbmUgZmlsZS4gIEFuZCBzYXZpbmcgYW5kIHJlc3RvcmluZyBtYW51YWwgZm9sZHMgYW5kIHRoZQpmb2xkaW5nIHN0YXRlLgoKQWRkZWQgJ3ZpZXdvcHRpb25zJyB0byBzcGVjaWZ5IGhvdyAiOm1rdmlldyIgd29ya3MuCgoiOm1rc2Vzc2lvbiIgbm93IGFsc28gd29ya3MgZmluZSB3aXRoIHZlcnRpY2FsIHNwbGl0cy4gIEl0IGhhcyBiZWVuIGZ1cnRoZXIKaW1wcm92ZWQgYW5kIHJlc3RvcmVzIHRoZSB2aWV3IG9mIGVhY2ggd2luZG93LiAgSXQgYWxzbyB3b3JrcyBwcm9wZXJseSB3aXRoCnByZXZpZXcgYW5kIHF1aWNrZml4IHdpbmRvd3MuCgonc2Vzc2lvbm9wdGlvbnMnIGlzIHVzZWQgZm9yICI6bWt2aWV3IiBhcyB3ZWxsLgpBZGRlZCAiY3VyZGlyIiBhbmQgInNlc2RpciIgdG8gJ3Nlc3Npb25vcHRpb25zJy4gIEFsbG93cyBzZWxlY3Rpb24gb2Ygd2hhdAp0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2lsbCBiZSByZXN0b3JlZCB0by4KClRoZSBzZXNzaW9uIGZpbGUgbm93IGFsc28gY29udGFpbnMgdGhlIGFyZ3VtZW50IGxpc3QocykuCgoKQ29sb3Igc2NoZW1lcwkJCQkJCSpuZXctY29sb3Itc2NoZW1lcyoKLS0tLS0tLS0tLS0tLQoKU3VwcG9ydCBmb3IgbG9hZGluZyBhIGNvbG9yIHNjaGVtZS4gIEFkZGVkIHRoZSAiOmNvbG9yc2NoZW1lIiBjb21tYW5kLgpBdXRvbWF0aWNhbGx5IGFkZCBtZW51IGVudHJpZXMgZm9yIGF2YWlsYWJsZSBzY2hlbWVzLgpTaG91bGQgbm93IHByb3Blcmx5IHJlc2V0IHRoZSBjb2xvcnMgd2hlbiAnYmFja2dyb3VuZCcgb3IgJ3RfQ28nIGlzIGNoYW5nZWQuCiI6aGlnaGxpZ2h0IGNsZWFyIiBzZXRzIHRoZSBkZWZhdWx0IGNvbG9ycyBhZ2Fpbi4KIjpzeW50YXggcmVzZXQiIHNldHMgdGhlIHN5bnRheCBoaWdobGlnaHQgY29sb3JzIGJhY2sgdG8gdGhlIGRlZmF1bHRzLgpGb3IgIjpzZXQgYmcmIiBndWVzcyB0aGUgdmFsdWUuICBUaGlzIGFsbG93cyBhIGNvbG9yIHNjaGVtZSB0byBzd2l0Y2ggYmFjayB0bwp0aGUgZGVmYXVsdCBjb2xvcnMuCldoZW4gc3ludGF4IGhpZ2hsaWdodGluZyBpcyBzd2l0Y2hlZCBvbiBhbmQgYSBjb2xvciBzY2hlbWUgd2FzIGRlZmluZWQsIHJlbG9hZAp0aGUgY29sb3Igc2NoZW1lIHRvIGRlZmluZSB0aGUgY29sb3JzLgoKClZhcmlvdXMgbmV3IGl0ZW1zCQkJCQkqbmV3LWl0ZW1zLTYqCi0tLS0tLS0tLS0tLS0tLS0tCgpOb3JtYWwgbW9kZSBjb21tYW5kczogfgoKImdpIgkJSnVtcCB0byB0aGUgXiBtYXJrIGFuZCBzdGFydCBJbnNlcnQgbW9kZS4gIEFsc28gd29ya3Mgd2hlbiB0aGUKCQltYXJrIGlzIGp1c3QgYWZ0ZXIgdGhlIGxpbmUuIHxnaXwKCiJnJ20iIGFuZCAiZ2BtIgoJCUp1bXAgdG8gYSBtYXJrIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGp1bXBsaXN0LiAgTm93IHlvdSBjYW4gdXNlCgkJZ2AiIHRvIGp1bXAgdG8gdGhlIGxhc3Qga25vd24gcG9zaXRpb24gaW4gYSBmaWxlIHdpdGhvdXQgc2lkZQoJCWVmZmVjdHMuICBBbHNvIHVzZWZ1bCBpbiBtYXBwaW5ncy4KClsnLCBbYCwgXScgYW5kIF1gCgkJbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBuZXh0L3ByZXZpb3VzIGxvd2VyY2FzZSBtYXJrLgoKZ18JCUdvIHRvIGxhc3Qgbm9uLWJsYW5rIGluIGxpbmUuIChTdGV2ZSBXYWxsKQoKCk9wdGlvbnM6IH4KCidhdXRvcmVhZCcJV2hlbiBkZXRlY3RlZCB0aGF0IGEgZmlsZSBjaGFuZ2VkIG91dHNpZGUgb2YgVmltLAoJCWF1dG9tYXRpY2FsbHkgcmVhZCBhIGJ1ZmZlciBhZ2FpbiB3aGVuIGl0J3Mgbm90IGNoYW5nZWQuCgkJSXQgaGFzIGEgZ2xvYmFsIGFuZCBhIGxvY2FsIHZhbHVlLiAgVXNlICI6c2V0bG9jYWwgYXV0b3JlYWQ8IgoJCXRvIGdvIGJhY2sgdG8gdXNpbmcgdGhlIGdsb2JhbCB2YWx1ZSBmb3IgJ2F1dG9yZWFkJy4KCidkZWJ1ZycJCVdoZW4gc2V0IHRvICJtc2ciIGl0IHdpbGwgcHJpbnQgZXJyb3IgbWVzc2FnZXMgdGhhdCB3b3VsZAoJCW90aGVyd2lzZSBiZSBvbWl0dGVkLiAgVXNlZnVsIGZvciBkZWJ1Z2dpbmcgJ2luZGVudGV4cHInIGFuZAoJCSdmb2xkZXhwcicuCgonbGlzcHdvcmRzJwlMaXN0IG9mIHdvcmRzIHVzZWQgZm9yIGxpc3AgaW5kZW50aW5nLiAgSXQgd2FzIHByZXZpb3VzbHkgaGFyZAoJCWNvZGVkLiAgQWRkZWQgYSBudW1iZXIgb2YgTGlzcCBuYW1lcyB0byB0aGUgZGVmYXVsdC4KCidmb2xkLi4uJwlNYW55IG5ldyBvcHRpb25zIGZvciBmb2xkaW5nLgoKJ21vZGlmaWFibGUnCVdoZW4gb2ZmLCBpdCBpcyBpbXBvc3NpYmxlIHRvIG1ha2UgY2hhbmdlcyB0byBhIGJ1ZmZlci4KCQlUaGUgJW0gYW5kICVNIGl0ZW1zIGluICdzdGF0dXNsaW5lJyBzaG93IGEgJy0nLgoKJ3ByZXZpZXd3aW5kb3cnIFNldCBpbiB0aGUgcHJldmlldyB3aW5kb3cuICBVc2VkIGluIGEgc2Vzc2lvbiBmaWxlIHRvIG1hcmsgYQoJCXdpbmRvdyBhcyB0aGUgcHJldmlldyB3aW5kb3cuCgoncHJpbnRmb250JwoncHJpbnRleHByJwoncHJpbnRoZWFkZXInCidwcmludGRldmljZScKJ3ByaW50b3B0aW9ucycJZm9yICI6aGFyZGNvcHkiLgoKJ2J1Zmxpc3RlZCcJTWFrZXMgYSBidWZmZXIgYXBwZWFyIGluIHRoZSBidWZmZXIgbGlzdCBvciBub3QuCgpVc2UgInZpbXt2ZXJzaW9ufToiIGZvciBtb2RlbGluZXMsIG9ubHkgdG8gYmUgZXhlY3V0ZWQgd2hlbiB0aGUgdmVyc2lvbiBpcwo+PSB7dmVyc2lvbn0uICBBbHNvICJ2aW0+e3ZlcnNpb259IiwgInZpbTx7dmVyc2lvbn0iIGFuZCAidmltPXt2ZXJzaW9ufSIuCgoKRXggY29tbWFuZHM6IH4KCjpzYXZbZWFzXVshXSB7ZmlsZX0KCQlXb3JrcyBsaWtlICI6dyBmaWxlIiBhbmQgIjplICMiLCBidXQgd2l0aG91dCBsb2FkaW5nIHRoZSBmaWxlCgkJYWdhaW4gYW5kIGF2b2lkaW5nIG90aGVyIHNpZGUgZWZmZWN0cy4gfDpzYXZlYXN8Cgo6c2lsZW50WyFdIHtjbWR9CgkJRXhlY3V0ZSBhIGNvbW1hbmQgc2lsZW50bHkuICBBbHNvIGRvbid0IHVzZSBhIGRlbGF5IHRoYXQgd291bGQKCQljb21lIGFmdGVyIHRoZSBtZXNzYWdlLiAgQW5kIGRvbid0IGRvICdzaG93bWF0Y2gnLgoJCVJJU0NPUzogUmVtb3ZlZCB0aGF0ICIhfmNtZCIgZGlkbid0IG91dHB1dCBhbnl0aGluZywgYW5kCgkJZGlkbid0IHdhaXQgZm9yIDxFbnRlcj4gYWZ0ZXJ3YXJkcy4gIENhbiB1c2UgIjpzaWxlbnQgIWNtZCIKCQlub3cuCjptZW51IDxzaWxlbnQ+ICBBZGQgYSBtZW51IHRoYXQgd29uJ3QgZWNobyBFeCBjb21tYW5kcy4KOm1hcCA8c2lsZW50PiAgIEFkZCBhIG1hcHBpbmcgdGhhdCB3b24ndCBlY2hvIEV4IGNvbW1hbmRzLgoKOmNoZWNrdGltZQlDaGVjayBmb3IgY2hhbmdlZCBidWZmZXJzLgoKOnZlcmJvc2Uge2NtZH0gIFNldCAndmVyYm9zZScgZm9yIG9uZSBjb21tYW5kLgoKOmVjaG9tc2cge2V4cHJ9CjplY2hvZXJyIHtleHByfSBMaWtlICI6ZWNobyIgYnV0IHN0b3JlIHRoZSBtZXNzYWdlIGluIHRoZSBoaXN0b3J5LiAoTWFyawoJCVdhZ2dvbmVyKQoKOmdyZXBhZGQJV29ya3MganVzdCBsaWtlICI6Z3JlcCIgYnV0IGFkZHMgdG8gdGhlIGN1cnJlbnQgZXJyb3IgbGlzdAoJCWluc3RlYWQgb2YgZGVmaW5pbmcgYSBuZXcgbGlzdC4gfDpncmVwYWRkfAoKOmZpbmlzaAkJRmluaXNoIHNvdXJjaW5nIGEgZmlsZS4gIENhbiBiZSB1c2VkIHRvIHNraXAgdGhlIHJlc3Qgb2YgYSBWaW0KCQlzY3JpcHQuIHw6ZmluaXNofAoKOmxlZnRhYm92ZQo6YWJvdmVsZWZ0CVNwbGl0IGxlZnQvYWJvdmUgY3VycmVudCB3aW5kb3cuCgo6cmlnaHRiZWxvdwo6YmVsb3dyaWdodAlTcGxpdCByaWdodC9iZWxvdyBjdXJyZW50IHdpbmRvdy4KCjpmaXJzdCwgOmJmaXJzdCwgOnB0Zmlyc3QsIGV0Yy4KCQlBbGlhcyBmb3IgIjpyZXdpbmQiLiAgSXQncyBtb3JlIGxvZ2ljYWwgY29tcGFyZWQgdG8gIjpsYXN0Ii4KCjplbmV3CQlFZGl0IGEgbmV3LCB1bm5hbWVkIGJ1ZmZlci4gIFRoaXMgaXMgbmVlZGVkLCBiZWNhdXNlICI6ZWRpdCIKCQlyZS1lZGl0cyB0aGUgc2FtZSBmaWxlLiAoV2FsbCkKCjpxdWl0YWxsCVNhbWUgYXMgIjpxYWxsIi4KCjptYXRjaAkJRGVmaW5lIG1hdGNoIGhpZ2hsaWdodGluZyBsb2NhbCB0byBhIHdpbmRvdy4gIEFsbG93cwoJCWhpZ2hsaWdodGluZyBhbiBpdGVtIGluIHRoZSBjdXJyZW50IHdpbmRvdyB3aXRob3V0IGludGVyZmVyaW5nCgkJd2l0aCBzeW50YXggaGlnaGxpZ2h0aW5nLgoKOm1lbnUgZW5hYmxlCjptZW51IGRpc2FibGUJQ29tbWFuZHMgdG8gZW5hYmxlL2Rpc2FibGUgbWVudSBlbnRyaWVzIHdpdGhvdXQgcmVtb3ZpbmcgdGhlbS4KCQkoTW9uaXNoIFNoYWgpCgo6d2luZG8JCUV4ZWN1dGUgYSBjb21tYW5kIGluIGFsbCB3aW5kb3dzLgo6YnVmZG8JCUV4ZWN1dGUgYSBjb21tYW5kIGluIGFsbCBidWZmZXJzLgoKOndpbmNtZAkJV2luZG93IChDVFJMLVcpIGNvbW1hbmQuICBVc2VmdWwgd2hlbiBhIE5vcm1hbCBtb2RlIGNvbW1hbmQKCQljYW4ndCBiZSB1c2VkIChlLmcuLCBmb3IgYSBDdXJzb3JIb2xkIGF1dG9jb21tYW5kKS4gIFNlZQoJCXxDdXJzb3JIb2xkLWV4YW1wbGV8IGZvciBhIG5pY2UgYXBwbGljYXRpb24gd2l0aCBpdC4KCjpsY2QgYW5kIDpsY2hkaXIKCQlTZXQgbG9jYWwgZGlyZWN0b3J5IGZvciBhIHdpbmRvdy4gKEJlbmppZSBDaGVuKQoKOmhpZGUge2NvbW1hbmR9CgkJRXhlY3V0ZSB7Y29tbWFuZH0gd2l0aCAnaGlkZGVuJyBzZXQuCgo6ZW1lbnUJCWluIFZpc3VhbCBtb2RlIHRvIGV4ZWN1dGUgYSAiOnZtZW51IiBlbnRyeS4KCjpwb3B1cAkJUG9wIHVwIGEgcG9wdXAgbWVudS4KCjpyZWRyYXcJCVJlZHJhdyB0aGUgc2NyZWVuIGV2ZW4gd2hlbiBidXN5IHdpdGggYSBzY3JpcHQgb3IgZnVuY3Rpb24uCgo6aGFyZGNvcHkJUHJpbnQgdG8gcGFwZXIuCgo6Y29tcGlsZXIJTG9hZCBhIFZpbSBzY3JpcHQgdG8gZG8gc2V0dGluZ3MgZm9yIGEgc3BlY2lmaWMgY29tcGlsZXIuCgo6eiMJCUxpc3QgbnVtYmVyZWQgbGluZXMuIChCb2hkYW4gVmxhc3l1aykKCgpOZXcgbWFya3M6IH4KCicoIGFuZCAnKQlCZWdpbiBvciBlbmQgb2YgY3VycmVudCBzZW50ZW5jZS4gIFVzZWZ1bCBpbiBFeCBjb21tYW5kcy4KJ3sgYW5kICd9CUJlZ2luIG9yIGVuZCBvZiBjdXJyZW50IHBhcmFncmFwaC4gIFVzZWZ1bCBpbiBFeCBjb21tYW5kcy4KJy4JCVBvc2l0aW9uIG9mIHRoZSBsYXN0IGNoYW5nZSBpbiB0aGUgY3VycmVudCBidWZmZXIuCideCQlQb3NpdGlvbiB3aGVyZSBJbnNlcnQgbW9kZSB3YXMgc3RvcHBlZC4KClN0b3JlIHRoZSBeIGFuZCAuIG1hcmtzIGluIHRoZSB2aW1pbmZvIGZpbGUuICBNYWtlcyBpdCBwb3NzaWJsZSB0byBqdW1wIHRvIHRoZQpsYXN0IGluc2VydCBwb3NpdGlvbiBvciBjaGFuZ2VkIHRleHQuCgoKTmV3IGZ1bmN0aW9uczogfgphcmdpZHgoKQlDdXJyZW50IGluZGV4IGluIGFyZ3VtZW50IGxpc3QuCmJ1Zmxpc3RlZCgpCUNoZWNrcyBpZiB0aGUgYnVmZmVyIGV4aXN0cyBhbmQgaGFzICdidWZsaXN0ZWQnIHNldC4KY2luZGVudCgpCUdldCBpbmRlbnQgYWNjb3JkaW5nIHRvICdjaW5kZW50Jy4KZXZlbnRoYW5kbGVyKCkJUmV0dXJucyAxIHdoZW4gaW5zaWRlIGFuIGV2ZW50IGhhbmRsZXIgYW5kIGludGVyYWN0aXZlCgkJY29tbWFuZHMgY2FuJ3QgYmUgdXNlZC4KZXhlY3V0YWJsZSgpCUNoZWNrcyBpZiBhIHByb2dyYW0gb3IgYmF0Y2ggc2NyaXB0IGNhbiBiZSBleGVjdXRlZC4KZmlsZXdyaXRhYmxlKCkJQ2hlY2tzIGlmIGEgZmlsZSBjYW4gYmUgd3JpdHRlbi4gKFJvbiBBYXJvbikKZm9sZGNsb3NlZCgpCUZpbmQgb3V0IGlmIHRoZXJlIGlzIGEgY2xvc2VkIGZvbGQuIChKb2hhbm5lcyBaZWxsbmVyKS4KZm9sZGNsb3NlZW5kKCkJRmluZCB0aGUgZW5kIG9mIGEgY2xvc2VkIGZvbGQuCmZvbGRsZXZlbCgpCUZpbmQgb3V0IHRoZSBmb2xkbGV2ZWwuIChKb2hhbm5lcyBaZWxsbmVyKQpmb3JlZ3JvdW5kKCkJTW92ZSB0aGUgR1VJIHdpbmRvdyB0byB0aGUgZm9yZWdyb3VuZC4KZ2V0Y2hhcigpCUdldCBvbmUgY2hhcmFjdGVyIGZyb20gdGhlIHVzZXIuICBDYW4gYmUgdXNlZCB0byBkZWZpbmUgYQoJCW1hcHBpbmcgdGhhdCB0YWtlcyBhbiBhcmd1bWVudC4KZ2V0Y2hhcm1vZCgpCUdldCBsYXN0IHVzZWQga2V5IG1vZGlmaWVyLgpnZXRidWZ2YXIoKQlnZXRzIHRoZSB2YWx1ZSBvZiBhbiBvcHRpb24gb3IgbG9jYWwgdmFyaWFibGUgaW4gYSBidWZmZXIgKFJvbgoJCUFhcm9uKQpnZXRmc2l6ZSgpCVJldHVybiB0aGUgc2l6ZSBvZiBhIGZpbGUuCmdldHdpbnZhcigpCWdldHMgdGhlIHZhbHVlIG9mIGFuIG9wdGlvbiBvciBsb2NhbCB2YXJpYWJsZSBpbiBhIHdpbmRvdyAoUm9uCgkJQWFyb24pCmdsb2JwYXRoKCkJRmluZCBtYXRjaGluZyBmaWxlcyBpbiBhIGxpc3Qgb2YgZGlyZWN0b3JpZXMuCmhhc21hcHRvKCkJRGV0ZWN0IGlmIGEgbWFwcGluZyB0byBhIHN0cmluZyBpcyBhbHJlYWR5IHByZXNlbnQuCmljb252KCkJCUNvbnZlcnQgYSBzdHJpbmcgZnJvbSBvbmUgZW5jb2RpbmcgdG8gYW5vdGhlci4KaW5kZW50KCkJZ2V0cyB0aGUgaW5kZW50IG9mIGEgbGluZSAoUm9uIEFhcm9uKQppbnB1dGRpYWxvZygpCUxpa2UgaW5wdXQoKSBidXQgdXNlIGEgR1VJIGRpYWxvZyB3aGVuIHBvc3NpYmxlLiAgQ3VycmVudGx5CgkJb25seSB3b3JrcyBmb3IgV2luMzIsIE1vdGlmLCBBdGhlbmEgYW5kIEdUSy4KCQlVc2UgaW5wdXRkaWFsb2coKSBmb3IgdGhlIEVkaXQvU2V0dGluZ3MvVGV4dCBXaWR0aCBtZW51LiAgQWxzbwoJCWZvciB0aGUgSGVscC9GaW5kLi4gYW5kIFRvb2xiYXIgRmluZEhlbHAgaXRlbXMuCgkJKFdpbjMyIHN1cHBvcnQgYnkgVGhvcmUgQi4gS2FybHNlbikKCQkoV2luMTYgc3VwcG9ydCBieSBWaW5jZSBOZWdyaSkKaW5wdXRzZWNyZXQoKQlBc2sgdGhlIHVzZXIgdG8gdHlwZSBhIHN0cmluZyB3aXRob3V0IHNob3dpbmcgdGhlIHR5cGVkIGtleXMuCgkJKENoYXJsZXMgQ2FtcGJlbGwpCmxpYmNhbGwoKQlmb3IgVW5peCAoTmVpbCBCaXJkLCBKb2hhbm5lcyBaZWxsbmVyLCBTdGVwaGVuIFdhbGwpCmxpYmNhbGxucigpCWZvciBXaW4zMiBhbmQgVW5peApsaXNwaW5kZW50KCkJR2V0IGluZGVudCBhY2NvcmRpbmcgdG8gJ2xpc3AnLgptb2RlKCkJCVJldHVybiBhIHN0cmluZyB0aGF0IGluZGljYXRlcyB0aGUgY3VycmVudCBtb2RlLgpuZXh0bm9uYmxhbmsoKQlTa2lwIGJsYW5rIGxpbmVzIGZvcndhcmRzLgpwcmV2bm9uYmxhbmsoKQlTa2lwIGJsYW5rIGxpbmVzIGJhY2t3YXJkcy4gIFVzZWZ1bCB0byBmb3IgaW5kZW50IHNjcmlwdHMuCnJlc29sdmUoKQlNUy1XaW5kb3dzOiByZXNvbHZlIGEgc2hvcnRjdXQgdG8gdGhlIGZpbGUgaXQgcG9pbnRzIHRvLgoJCVVuaXg6IHJlc29sdmUgYSBzeW1ib2xpYyBsaW5rLgpzZWFyY2goKQlTZWFyY2ggZm9yIGEgcGF0dGVybi4Kc2VhcmNocGFpcigpCVNlYXJjaCBmb3IgbWF0Y2hpbmcgcGFpci4gIENhbiBiZSB1c2VkIGluIGluZGVudCBmaWxlcyB0byBmaW5kCgkJdGhlICJpZiIgbWF0Y2hpbmcgYW4gZW5kaWYuCnNldGJ1ZnZhcigpCXNldHMgYW4gb3B0aW9uIG9yIHZhcmlhYmxlIGxvY2FsIHRvIGEgYnVmZmVyIChSb24gQWFyb24pCnNldHdpbnZhcigpCXNldHMgYW4gb3B0aW9uIG9yIHZhcmlhYmxlIGxvY2FsIHRvIGEgd2luZG93IChSb24gQWFyb24pCnN0cmlkeCgpCVNlYXJjaCBmb3IgZmlyc3Qgb2NjdXJyZW5jZSBvZiBvbmUgc3RyaW5nIGluIGFub3RoZXIuCnN0cnJpZHgoKQlTZWFyY2ggZm9yIGxhc3Qgb2NjdXJyZW5jZSBvZiBvbmUgc3RyaW5nIGluIGFub3RoZXIuCnRvbG93ZXIoKQlDb252ZXJ0IHN0cmluZyB0byBhbGwtbG93ZXJjYXNlLgp0b3VwcGVyKCkJQ29udmVydCBzdHJpbmcgdG8gYWxsLXVwcGVyY2FzZS4KdHlwZSgpCQlDaGVjayB0aGUgdHlwZSBvZiBhbiBleHByZXNzaW9uLgp3aW5jb2woKQl3aW5kb3cgY29sdW1uIG9mIHRoZSBjdXJzb3IKd2lud2lkdGgoKQlXaWR0aCBvZiBhIHdpbmRvdy4gKEpvaGFubmVzIFplbGxuZXIpCndpbmxpbmUoKQl3aW5kb3cgbGluZSBvZiB0aGUgY3Vyc29yCgoKQWRkZWQgZXhwYW5zaW9uIG9mIGN1cmx5IGJyYWNlcyBpbiB2YXJpYWJsZSBhbmQgZnVuY3Rpb24gbmFtZXMuICBUaGlzIGNhbiBiZQp1c2VkIGZvciB2YXJpYWJsZSBuYW1lcyB0aGF0IGluY2x1ZGUgdGhlIHZhbHVlIG9mIGFuIG9wdGlvbi4gIE9yIGEgcHJpbWl0aXZlCmZvcm0gb2YgYXJyYXlzLiAoVmluY2UgTmVncmkpCgoKTmV3IGF1dG9jb21tYW5kIGV2ZW50czogfgpCdWZXaW5FbnRlcglUcmlnZ2VyZWQgd2hlbiBhIGJ1ZmZlciBpcyBkaXNwbGF5ZWQgaW4gYSB3aW5kb3csIGFmdGVyIHVzaW5nCgkJdGhlIG1vZGVsaW5lcy4gIENhbiBiZSB1c2VkIHRvIGxvYWQgYSB2aWV3LgpCdWZXaW5MZWF2ZQlUcmlnZ2VyZWQgd2hlbiBhIGJ1ZmZlciBpcyBubyBsb25nZXIgaW4gYSB3aW5kb3cuICBBbHNvCgkJdHJpZ2dlcmVkIHdoZW4gZXhpdGluZyBWaW0uICBDYW4gYmUgdXNlZCB0byBzYXZlIHZpZXdzLgpGaWxlQ2hhbmdlZFJPCVRyaWdnZXJlZCBiZWZvcmUgbWFraW5nIHRoZSBmaXJzdCBjaGFuZ2UgdG8gYSByZWFkLW9ubHkgZmlsZS4KCQlDYW4gYmUgdXNlZCB0byBjaGVjay1vdXQgdGhlIGZpbGUuIChTY290dCBHcmFoYW0pClRlcm1SZXNwb25zZQlUcmlnZ2VyZWQgd2hlbiB0aGUgdGVybWluYWwgcmVwbGllcyB0byB0aGUgdmVyc2lvbi1yZXF1ZXN0LgoJCVRoZSB2OnRlcm1yZXNwb25zZSBpbnRlcm5hbCB2YXJpYWJsZSBob2xkcyB0aGUgcmVzdWx0LiAgQ2FuIGJlCgkJdXNlZCB0byByZWFjdCB0byB0aGUgdmVyc2lvbiBvZiB0aGUgdGVybWluYWwuICAoUm9uYWxkIFNjaGlsZCkKRmlsZVJlYWRDbWQJVHJpZ2dlcmVkIGJlZm9yZSByZWFkaW5nIGEgZmlsZS4KQnVmUmVhZENtZAlUcmlnZ2VyZWQgYmVmb3JlIHJlYWRpbmcgYSBmaWxlIGludG8gYSBidWZmZXIuCkZpbGVXcml0ZUNtZAlUcmlnZ2VyZWQgYmVmb3JlIHdyaXRpbmcgYSBmaWxlLgpCdWZXcml0ZUNtZAlUcmlnZ2VyZWQgYmVmb3JlIHdyaXRpbmcgYSBidWZmZXIgaW50byBhIGZpbGUuCkZpbGVBcHBlbmRDbWQJVHJpZ2dlcmVkIGJlZm9yZSBhcHBlbmRpbmcgdG8gYSBmaWxlLgpGdW5jVW5kZWZpbmVkCVRyaWdnZXJlZCB3aGVuIGEgdXNlciBmdW5jdGlvbiBpcyBub3QgZGVmaW5lZC4gKFJvbiBBYXJvbikKClRoZSBhdXRvY29tbWFuZHMgZm9yIHRoZSAqQ21kIGV2ZW50cyByZWFkIG9yIHdyaXRlIHRoZSBmaWxlIGluc3RlYWQgb2Ygbm9ybWFsCmZpbGUgcmVhZC93cml0ZS4gIFVzZSB0aGlzIGluIG5ldHJ3LnZpbSB0byBiZSBhYmxlIHRvIGVkaXQgZmlsZXMgb24gYSByZW1vdGUKc3lzdGVtLiAoQ2hhcmxlcyBDYW1wYmVsbCkKCgpOZXcgU3ludGF4IGZpbGVzOiB+CgpiZGYJCUJERiBmb250IGRlZmluaXRpb24gKE5pa29sYWkgV2VpYnVsbCkKY2F0YWxvZwkJU0dNTCBjYXRhbG9nIChKb2hhbm5lcyBaZWxsbmVyKQpkZWJjaGFuZ2Vsb2cJRGViaWFuIENoYW5nZWxvZyAoV2ljaGVydCBBa2tlcm1hbikKZGViY29udHJvbAlEZWJpYW4gQ29udHJvbCAoV2ljaGVydCBBa2tlcm1hbikKZG90CQlkb3QgKE1hcmt1cyBNb3R0bCkKZHNsCQlEU1NTTCBzeW50YXggKEpvaGFubmVzIFplbGxuZXIpCmV0ZXJtCQlFdGVybSBjb25maWd1cmF0aW9uIChOaWtvbGFpIFdlaWJ1bGwpCmluZGVudAkJSW5kZW50IHByb2ZpbGUgKE5pa29sYWkgV2VpYnVsbCkKbGZ0cAkJTEZUUCAoTmlrb2xhaSBXZWlidWxsKQpseW54CQlMeW54IGNvbmZpZyAoRG91ZyBLZWFybnMpCm11c2gJCW11c2ggc291cmNlY29kZSAoQmVrIE9iZXJpbikKbmF0dXJhbAkJTmF0dXJhbCAoTWFya28gTGVpcGVydCkKcGlscmMJCVBhbCByZXNvdXJjZSBjb21waWxlciAoQnJpYW4gU2NoYXUpCnBsbQkJUEwvTSAoUGhpbGlwcGUgQ291bG9uZ2VzKQpwb3ZpbmkJCVBvdnJheSBjb25maWd1cmF0aW9uIChEYXZpZCBOZWNhcykKcmF0cG9pc29uCVJhdHBvaXNvbiBjb25maWcvY29tbWFuZCAoRG91ZyBLZWFybnMpCnJlYWRsaW5lCXJlYWRsaW5lIGNvbmZpZyAoTmlrb2xhaSBXZWlidWxsKQpzY3JlZW4JCVNjcmVlbiBSQyAoTmlrb2xhaSBXZWlidWxsKQpzcGVjbWFuCQlTcGVjbWFuIChPciBGcmV1bmQpCnNxbGZvcm1zCVNRTCpGb3JtcyAoQXVzdGluIFppZWdsZXIpCnRlcm1pbmZvCXRlcm1pbmZvIChOaWtvbGFpIFdlaWJ1bGwpCnRpZHkJCVRpZHkgY29uZmlndXJhdGlvbiAoRG91ZyBLZWFybnMpCndnZXQJCVdnZXQgY29uZmlndXJhdGlvbiAoRG91ZyBLZWFybnMpCgoKVXBkYXRlZCBtYW55IHN5bnRheCBmaWxlcyB0byB3b3JrIGJvdGggd2l0aCBWaW0gNS43IGFuZCA2LjAuCgpJbnRlcmZhY2UgdG8gUnVieS4gKFNodWdvIE1hZWRhKQpTdXBwb3J0IGR5bmFtaWMgbG9hZGluZyBvZiB0aGUgUnVieSBpbnRlcmZhY2Ugb24gTVMtV2luZG93cy4gKE11cmFva2EgVGFybykKU3VwcG9ydCB0aGlzIGZvciBNaW5ndyB0b28uIChCZW5vaXQgQ2VycmluYSkKCldpbjMyOiBBZGRlZCBwb3NzaWJpbGl0eSB0byBsb2FkIFRDTCBkeW5hbWljYWxseS4gKE11cmFva2EgVGFybykKQWxzbyBmb3IgQm9ybGFuZCA1LjUuIChEYW4gU2hhcnApCgpXaW4zMjogV2hlbiBlZGl0aW5nIGEgZmlsZSB0aGF0IGlzIGEgc2hvcnRjdXQgKCoubG5rIGZpbGUpLCBlZGl0IHRoZSBmaWxlIGl0CmxpbmtzIHRvLiAgVW5sZXNzICdiaW5hcnknIGlzIHNldCwgdGhlbiBlZGl0IHRoZSBzaG9ydGN1dCBmaWxlIGl0c2VsZi4KKFlhc3VoaXJvIE1hdHN1bW90bykKClRoZSAiOmNvbW1hbmQiIGNvbW1hbmQgbm93IGFjY2VwdHMgYSAiLWJhciIgYXJndW1lbnQuICBUaGlzIGFsbG93cyB0aGUgdXNlcgpjb21tYW5kIHRvIGJlIGZvbGxvd2VkIGJ5ICJ8IGNvbW1hbmQiLgoKVGhlIHByZXZpZXcgd2luZG93IGlzIG5vdyBhbHNvIHVzZWQgYnkgdGhlc2UgY29tbWFuZHM6Ci0gfDpwZWRpdHwgZWRpdHMgdGhlIHNwZWNpZmllZCBmaWxlIGluIHRoZSBwcmV2aWV3IHdpbmRvdwotIHw6cHNlYXJjaHwgc2VhcmNoZXMgZm9yIGEgd29yZCBpbiBpbmNsdWRlZCBmaWxlcywgbGlrZSB8OmlqdW1wfCwgYW5kCiAgZGlzcGxheXMgdGhlIGZvdW5kIHRleHQgaW4gdGhlIHByZXZpZXcgd2luZG93LgpBZGRlZCB0aGUgQ1RSTC1XIFAgY29tbWFuZDogZ28gdG8gcHJldmlldyB3aW5kb3cuCgpNUy1ET1MgYW5kIE1TLVdpbmRvd3MgYWxzbyByZWFkIHRoZSBzeXN0ZW0td2lkZSB2aW1yYyBmaWxlICRWSU0vdmltcmMuICBNb3N0bHkKZm9yIE5UIHN5c3RlbXMgd2l0aCBtdWx0aXBsZSB1c2Vycy4KCkEgZG91YmxlLWNsaWNrIG9mIHRoZSBtb3VzZSBvbiBhIGNoYXJhY3RlciB0aGF0IGhhcyBhICIlIiBtYXRjaCBzZWxlY3RzIGZyb20KdGhhdCBjaGFyYWN0ZXIgdG8gdGhlIG1hdGNoLiAgU2ltaWxhciB0byAidiUiLgoKIi1TIHNlc3Npb24udmltIiBhcmd1bWVudDogU291cmNlIGEgc2NyaXB0IGZpbGUgd2hlbiBzdGFydGluZyB1cC4gIENvbnZlbmllbnQKd2F5IHRvIHN0YXJ0IFZpbSB3aXRoIGEgc2Vzc2lvbiBmaWxlLgoKQWRkZWQgIi0tY21kIHtjb21tYW5kfSIgVmltIGFyZ3VtZW50IHRvIGV4ZWN1dGUgYSBjb21tYW5kIGJlZm9yZSBhIHZpbXJjIGZpbGUKaXMgbG9hZGVkLiAoVmluY2UgTmVncmkpCgpBZGRlZCB0aGUgIi1NIiBWaW0gYXJndW1lbnQ6IHJlc2V0ICdtb2RpZmlhYmxlJyBhbmQgJ3dyaXRlJywgdGh1cyBkaXNhbGxvdwptYWtpbmcgY2hhbmdlcyBhbmQgd3JpdGluZyBmaWxlcy4KCkFkZGVkIHJ1bnRpbWUvZGVsbWVudS52aW0uICBTb3VyY2UgdGhpcyB0byByZW1vdmUgYWxsIG1lbnVzIGFuZCBwcmVwYXJlIGZvcgpsb2FkaW5nIG5ldyBtZW51cy4gIFVzZWZ1bCB3aGVuIGNoYW5naW5nICdsYW5nbWVudScuCgpQZXJsIHNjcmlwdCB0byBmaWx0ZXIgUGVybCBlcnJvciBtZXNzYWdlcyB0byBxdWlja2ZpeCB1c2FibGUgZm9ybWF0LiAoSm9lcmcKWmllZmxlKQoKQWRkZWQgcnVudGltZS9tYWNyb3MvbGVzcy52aW06IFZpbSBzY3JpcHQgdG8gc2ltdWxhdGUgbGVzcywgYnV0IHdpdGggc3ludGF4CmhpZ2hsaWdodGluZy4KCk1TLVdpbmRvd3MgaW5zdGFsbCBwcm9ncmFtOiAoSm9uIE1lcnopCi0gVGhlIFdpbjMyIHByb2dyYW0gY2FuIG5vdyBjcmVhdGUgc2hvcnRjdXRzIG9uIHRoZSBkZXNrdG9wIGFuZCBpbnN0YWxsIFZpbSBpbgogIHRoZSBTdGFydCBtZW51LgotIFBvc3NpYmx5IHJlbW92ZSBvbGQgIkVkaXQgd2l0aCBWaW0iIGVudHJpZXMuCi0gVGhlIFZpbSBleGVjdXRhYmxlIGlzIG5ldmVyIG1vdmVkIG9yICRQQVRIIGNoYW5nZWQuICBBIHNtYWxsIGJhdGNoIGZpbGUgaXMKICBjcmVhdGVkIGluIGEgZGlyZWN0b3J5IGluICRQQVRILiAgRmV3ZXIgY2hvaWNlcyB0byBiZSBtYWRlLgotIERldGVjdCBhbHJlYWR5IGluc3RhbGxlZCBWaW0gdmVyc2lvbnMgYW5kIG9mZmVyIHRvIHVuaW5zdGFsbCB0aGVtIGZpcnN0LgoKSW1wcm92ZWQgdGhlIE1TLVdpbmRvd3MgdW5pbnN0YWwgcHJvZ3JhbS4gIEl0IG5vdyBhbHNvIGRlbGV0ZXMgdGhlIGVudHJpZXMgaW4KdGhlIFN0YXJ0IG1lbnUsIGljb25zIGZyb20gdGhlIGRlc2t0b3AgYW5kIHRoZSBjcmVhdGVkIGJhdGNoIGZpbGVzLiAoSm9uIE1lcnopCkFsc28gbWFkZSBpdCBwb3NzaWJsZSB0byBkZWxldGUgb25seSBzb21lIG9mIHRoZXNlLiAgQWxzbyB1bnJlZ2lzdGVyIGd2aW0gZm9yCk9MRS4KCkdlbmVyYXRlIGEgc2VsZi1pbnN0YWxsaW5nIFZpbSBwYWNrYWdlIGZvciBNUy1XaW5kb3dzLiAgVGhpcyB1c2VzIE5TSVMuIChKb24KTWVyeiBldCBhbC4pCgpBZGRlZCAiOmZpbGV0eXBlIGRldGVjdCIuICBUcnkgZGV0ZWN0aW5nIHRoZSBmaWxldHlwZSBhZ2Fpbi4gIEhlbHBzIHdoZW4Kd3JpdGluZyBhIG5ldyBzaGVsbCBzY3JpcHQsIGFmdGVyIGFkZGluZyAiIyEvYmluL2NzaCIuCgpBZGRlZCAiOmF1Z3JvdXAhIG5hbWUiIHRvIGRlbGV0ZSBhbiBhdXRvY29tbWFuZCBncm91cC4gIE5lZWRlZCBmb3IgdGhlCmNsaWVudC1zZXJ2ZXIgIi0tcmVtb3RlLXdhaXQiLgoKQWRkIHRoZSBWaW0gdmVyc2lvbiBudW1iZXIgdG8gdGhlIHZpbWluZm8gZmlsZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcuCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KSU1QUk9WRU1FTlRTCQkJCQkJKmltcHJvdmVtZW50cy02KgoKQWRkZWQgdGhlICduJyBmbGFnIGluICdjcG9wdGlvbnMnOiBXaGVuIG9taXR0ZWQgdGV4dCBvZiB3cmFwcGVkIGxpbmVzIGlzIG5vdApwdXQgYmV0d2VlbiBsaW5lIG51bWJlcnMgZnJvbSAnbnVtYmVyJyBvcHRpb24uICBNYWtlcyBpdCBhIGxvdCBlYXNpZXIgdG8gcmVhZAp3cmFwcGVkIGxpbmVzLgoKV2hlbiB0aGVyZSBpcyBhIGZvcm1hdCBlcnJvciBpbiBhIHRhZ3MgZmlsZSwgdGhlIGJ5dGUgcG9zaXRpb24gaXMgcmVwb3J0ZWQgc28KdGhhdCB0aGUgZXJyb3IgY2FuIGJlIGxvY2F0ZWQuCgoiZ2YiIHdvcmtzIGluIFZpc3VhbCBtb2RlOiBVc2UgdGhlIHNlbGVjdGVkIHRleHQgYXMgdGhlIGZpbGUgbmFtZS4gKENoYXNlClRpbmdsZXkpCgpBbGxvdyBhbWJpZ3VvdXMgbWFwcGluZ3MuICBUaHVzICJhYSIgYW5kICJhYWEiIGNhbiBib3RoIGJlIG1hcHBlZCwgdGhlIGxvbmdlc3QKbWF0Y2hpbmcgb25lIGlzIHVzZWQuICBFc3BlY2lhbGx5IHVzZWZ1bCBmb3IgIjpsbWFwIiBhbmQgJ2tleW1hcCcuCgpFbmNyeXB0aW9uOiBBc2sgdGhlIGtleSB0byBiZSB0eXBlZCB0d2ljZSB3aGVuIGNyeXB0aW5nIHRoZSBmaXJzdCB0aW1lLgpPdGhlcndpc2UgYSB0eXBvIG1pZ2h0IGNhdXNlIHRoZSB0ZXh0IHRvIGJlIGxvc3QgZm9yZXZlci4gKENoYXNlIFRpbmdsZXkpCgpUaGUgd2luZG93IHRpdGxlIG5vdyBoYXMgIlZJTSIgb24gdGhlIGVuZC4gIFRoZSBmaWxlIG5hbWUgY29tZXMgZmlyc3QsIHVzZWZ1bAppbiB0aGUgdGFza2Jhci4gIEEgIisiIGlzIGFkZGVkIHdoZW4gdGhlIGZpbGUgaXMgbW9kaWZpZWQuICAiPSIgaXMgYWRkZWQgZm9yCmEgcmVhZC1vbmx5IGZpbGUuICAiLSIgaXMgYWRkZWQgZm9yIGEgZmlsZSB3aXRoICdtb2RpZmlhYmxlJyBvZmYuCgpJbiBWaXN1YWwgbW9kZSwgbWVudGlvbiB0aGUgc2l6ZSBvZiB0aGUgc2VsZWN0ZWQgYXJlYSBpbiB0aGUgJ3Nob3djbWQnCnBvc2l0aW9uLgoKQWRkZWQgdGhlICJiOmNoYW5nZWR0aWNrIiB2YXJpYWJsZS4gIEluY3JlbWVudGVkIGF0IGVhY2ggY2hhbmdlLCBhbHNvIGZvcgp1bmRvLiAgQ2FuIGJlIHVzZWQgdG8gdGFrZSBhY3Rpb24gb25seSBpZiB0aGUgYnVmZmVyIGhhcyBiZWVuIGNoYW5nZWQuCgpJbiB0aGUgcmVwbGFjZW1lbnQgc3RyaW5nIG9mIGEgIjpzIiBjb21tYW5kICJcPSIgY2FuIGJlIHVzZWQgdG8gcmVwbGFjZSB3aXRoCnRoZSByZXN1bHQgb2YgYW4gZXhwcmVzc2lvbi4gIEZyb20gdGhpcyBleHByZXNzaW9uIHRoZSBzdWJtYXRjaCgpIGZ1bmN0aW9uIGNhbgpiZSB1c2VkIHRvIGFjY2VzcyBzdWJtYXRjaGVzLgoKV2hlbiBkb2luZyAiOnFhbGwiIGFuZCB0aGVyZSBpcyBhIGNoYW5nZSBpbiBhIGJ1ZmZlciB0aGF0IGlzIGJlaW5nIGVkaXRlZCBpbgphbm90aGVyIHdpbmRvdywganVtcCB0byB0aGF0IHdpbmRvdywgaW5zdGVhZCBvZiBlZGl0aW5nIHRoYXQgYnVmZmVyIGluIHRoZQpjdXJyZW50IHdpbmRvdy4KCkFkZGVkIHRoZSAiKytlbmM9IiBhbmQgIisrZmY9IiBhcmd1bWVudHMgdG8gZmlsZSByZWFkL3dyaXRlIGNvbW1hbmRzIHRvIGZvcmNlCnVzaW5nIHRoZSBnaXZlbiAnZW5jb2RpbmcnIG9yICdmaWxlZm9ybWF0Jy4gIEFuZCBhZGRlZCB0aGUgInY6Y21kYXJnIgp2YXJpYWJsZSwgdG8gYmUgdXNlZCBmb3IgRmlsZVJlYWRDbWQgYXV0b2NvbW1hbmRzIHRoYXQgcmVhZC93cml0ZSB0aGUgZmlsZQp0aGVtc2VsdmVzLgoKV2hlbiByZWFkaW5nIHN0ZGluLCBmaXJzdCByZWFkIHRoZSB0ZXh0IGluIGJpbmFyeSBtb2RlIGFuZCB0aGVuIHJlLXJlYWQgaXQKd2l0aCBhdXRvbWF0aWMgc2VsZWN0aW9uIG9mICdmaWxlZm9ybWF0JyBhbmQgJ2ZpbGVlbmNvZGluZycuICBUaGlzIGF2b2lkcwpwcm9ibGVtcyB3aXRoIG5vdCBiZWluZyBhYmxlIHRvIHJld2luZCB0aGUgZmlsZSAoZS5nLiwgd2hlbiBhIGxpbmUgbmVhciB0aGUKZW5kIG9mIHRoZSBmaWxlIGVuZHMgaW4gTEYgaW5zdGVhZCBvZiBDUi1MRikuCldoZW4gcmVhZGluZyB0ZXh0IGZyb20gc3RkaW4gYW5kIHRoZSBidWZmZXIgaXMgZW1wdHksIGRvbid0IG1hcmsgaXQgY2hhbmdlZC4KQWxsb3dzIGV4aXRpbmcgd2l0aG91dCB0cm91YmxlLgoKQWRkZWQgYW4gSUQgdG8gbWFueSBlcnJvciBtZXNzYWdlcy4gIFRoaXMgd2lsbCBtYWtlIGl0IGVhc2llciB0byBmaW5kIGhlbHAgZm9yCmEgbWVzc2FnZS4KCkluc2VydCBtb2RlOgotICJDVFJMLUcgaiIgYW5kICJDVFJMLUcgayIgY2FuIGJlIHVzZWQgdG8gaW5zZXJ0IGluIGFub3RoZXIgbGluZSBpbiB0aGUgc2FtZQogIGNvbHVtbi4gIFVzZWZ1bCBmb3IgZWRpdGluZyBhIHRhYmxlLgotIEFkZGVkIFRoZXNhdXJ1cyBjb21wbGV0aW9uIHdpdGggQ1RSTC1YIENUUkwtVC4gKFZpbmNlIE5lZ3JpKQotIEFkZGVkIHRoZSAndGhlc2F1cnVzJyBvcHRpb24sIHRvIHVzZSBpbnN0ZWFkIG9mICdkaWN0aW9uYXJ5JyBmb3IgdGhlc2F1cnVzCiAgY29tcGxldGlvbi4gIEFkZGVkIHRoZSAncycgZmxhZyBpbiAnY29tcGxldGUnLgotIE1hZGUgQ1RSTC1YIENUUkwtTCBpbiBJbnNlcnQgbW9kZSB1c2UgdGhlICdjb21wbGV0ZScgb3B0aW9uLiAgSXQgbm93IGFsc28KICBzY2FucyBvdGhlciBsb2FkZWQgYnVmZmVycyBmb3IgbWF0Y2hpbmcgbGluZXMuCi0gQ1RSTC1SIG5vdyBhbHNvIHdvcmtzIGluIEluc2VydCBtb2RlIHdoaWxlIGRvaW5nIGNvbXBsZXRpb24gd2l0aCBDVFJMLVggb3IKICBDVFJMLU4uIChOZWlsIEJpcmQpCi0gV2hlbiBkb2luZyBJbnNlcnQgbW9kZSBjb21wbGV0aW9uLCB3aGVuIGNvbXBsZXRpb24gaXMgZmluaXNoZWQgY2hlY2sgZm9yIGEKICBtYXRjaCB3aXRoIHdvcmRzIGZyb20gJ2NpbmtleXMnIG9yICdpbmRlbnRrZXlzJy4KClBlcmZvcm1hbmNlOgotIE1hZGUgZGlzcGxheSB1cGRhdGluZyBtb3JlIGVmZmljaWVudC4gIEluc2VydC9kZWxldGUgbGluZXMgbWF5IGJlIHVzZWQgZm9yCiAgYWxsIGNoYW5nZXMsIGFsc28gZm9yIHVuZG8vcmVkby4KLSBUaGUgZGlzcGxheSBpcyBub3QgcmVkcmF3biB3aGVuIHRoZXJlIGlzIHR5cGVhaGVhZCBpbiBJbnNlcnQgbW9kZS4gIFNwZWVkcwogIHVwIENUUkwtUiBhIGxvdC4KLSBJbXByb3ZlZCBzcGVlZCBvZiBzY3JlZW4gb3V0cHV0IGZvciAzMiBiaXQgRE9TIHZlcnNpb24uIChWaW5jZSBOZWdyaSkKLSBXaGVuIGRyYWdnaW5nIHdpdGggdGhlIG1vdXNlLCB0aGVyZSBpcyBhIGxvb2thaGVhZCB0byBza2lwIG1vdXNlIGNvZGVzIHdoZW4KICB0aGVyZSBpcyBhbm90aGVyIG9uZSBuZXh0LiAgTWFrZXMgZHJhZ2dpbmcgd2l0aCB0aGUgbW91c2UgYSBsb3QgZmFzdGVyLgotIEFsc28gYSBtZW1vcnkgdXNhZ2UgaW1wcm92ZW1lbnQ6IFdoZW4gY2FsbGluZyB1X3NhdmUgd2l0aCBhIHNpbmdsZSBsaW5lLAogIGRvbid0IHNhdmUgaXQgaWYgdGhlIGxpbmUgd2FzIHJlY2VudGx5IHNhdmVkIGZvciB0aGUgc2FtZSB1bmRvIGFscmVhZHkuCi0gV2hlbiB1c2luZyBhIHNjcmlwdCB0aGF0IGFwcGVuZHMgb25lIGNoYXJhY3RlciBhdCBhIHRpbWUsIHRoZSBhbW91bnQgb2YKICBhbGxvY2F0ZWQgbWVtb3J5IHdhcyBncm93aW5nIHN0ZWFkaWx5LiAgQWxzbyB3aGVuICd1bmRvbGV2ZWxzJyBpcyAtMS4KICBDYXVzZWQgYnkgdGhlIGxpbmUgc2F2ZWQgZm9yICJVIiBuZXZlciB0byBiZSBmcmVlZC4gIE5vdyBmcmVlIGFuIHVuZG8gYmxvY2sKICB3aGVuIGl0IGJlY29tZXMgZW1wdHkuCi0gR1VJIGFuZCBEb3MzMjogVXNlIGEgdmVydGljYWwgc2Nyb2xsIHJlZ2lvbiwgdG8gbWFrZSBzY3JvbGxpbmcgaW4gYQogIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93IGZhc3Rlci4gIE5vIG5lZWQgdG8gcmVkcmF3IHRoZSB3aG9sZSB3aW5kb3cuCi0gV2hlbiBzY3JvbGxpbmcgaXNuJ3QgcG9zc2libGUgd2l0aCB0ZXJtaW5hbCBjb2RlcyAoZS5nLiwgZm9yIGEgdmVydGljYWxseQogIHNwbGl0IHdpbmRvdykgcmVkcmF3IGZyb20gU2NyZWVuTGluZXNbXS4gIFRoYXQgc2hvdWxkIGJlIGZhc3RlciB0aGFuIGdvaW5nCiAgdGhyb3VnaCB0aGUgbGluZXMgd2l0aCB3aW5fbGluZSgpLCBlc3BlY2lhbGx5IHdoZW4gdXNpbmcgc3ludGF4CiAgaGlnaGxpZ2h0aW5nLgotIFRoZSBTeW50YXggbWVudSBpcyBub3cgcHJlLWdlbmVyYXRlZCBieSBhIHNlcGFyYXRlIHNjcmlwdC4gIE1ha2VzIGxvYWRpbmcKICB0aGUgbWVudSA3MCUgZmFzdGVyLiAgVGhpcyBjYW4gaGFsdmUgdGhlIHN0YXJ0dXAgdGltZSBvZiBndmltLgotIFdoZW4gZG9pbmcgIjpoZWxwIHRhZyIsIGRvbid0IG9wZW4gaGVscC50eHQgZmlyc3QsIGp1bXAgZGlyZWN0bHkgdG8gdGhlIGhlbHAKICB0YWcuICBJdCdzIGZhc3RlciBhbmQgYXZvaWRzIGFuIGV4dHJhIG1lc3NhZ2UuCi0gV2luMzI6IFdoZW4gYSBmaWxlIG5hbWUgZG9lc24ndCBlbmQgaW4gIi5sbmsiIGRvbid0IHRyeSByZXNvbHZpbmcgYQogIHNob3J0Y3V0LCBpdCB0YWtlcyBxdWl0ZSBhIGJpdCBvZiB0aW1lLgotIERvbid0IHVwZGF0ZSB0aGUgbW91c2UgcG9pbnRlciBzaGFwZSB3aGlsZSB0aGVyZSBhcmUgdHlwZWFoZWFkIGNoYXJhY3RlcnMuCi0gQ2hhbmdlIE1FVEFbXSBmcm9tIGEgc3RyaW5nIGludG8gYW4gYXJyYXksIGF2b2lkcyB1c2luZyBzdHJjaHIoKSBvbiBpdC4KLSBEb24ndCBjbGVhciB0aGUgY29tbWFuZCBsaW5lIHdoZW4gYWRkaW5nIGNoYXJhY3RlcnMsIGF2b2lkcyB0aGF0IHNjcmVlbl9maWxsCiAgaXMgY2FsbGVkIGJ1dCBkb2Vzbid0IGRvIGFueXRoaW5nLgoKUm9idXN0bmVzczoKLSBVbml4OiBDaGVjayBmb3IgcnVubmluZyBvdXQgb2Ygc3RhY2sgc3BhY2Ugd2hlbiBleGVjdXRpbmcgYSByZWdleHAuICBBdm9pZHMKICBhIG5hc3R5IGNyYXNoLiAgT25seSB3b3JrcyB3aGVuIHRoZSBzeXN0ZW0gc3VwcG9ydHMgcnVubmluZyB0aGUgc2lnbmFsCiAgZnVuY3Rpb24gb24gYW5vdGhlciBzdGFjay4KLSBEaXNhbGxvdyAiOnNvdXJjZSA8ZGlybmFtZT4iLiAgT24gdW5peCBpdCdzIHBvc3NpYmxlIHRvIHJlYWQgYSBkaXJlY3RvcnksCiAgZG9lcyBub3QgbWFrZSBzZW5zZSB0byB1c2UgaXQgYXMgVmltIGNvbW1hbmRzLgoKU2VjdXJpdHk6Ci0gV2hlbiByZWFkaW5nIGZyb20gb3Igd3JpdGluZyB0byBhIHRlbXBvcmFyeSBmaWxlLCBjaGVjayB0aGF0IGl0IGlzbid0IGEKICBzeW1ib2xpYyBsaW5rLiAgR2l2ZXMgc29tZSBwcm90ZWN0aW9uIGFnYWluc3Qgc3ltbGluayBhdHRhY2tzLgotIFdoZW4gY3JlYXRpbmcgYSBiYWNrdXAgZmlsZSBjb3B5IG9yIGEgc3dhcCBmaWxlLCBjaGVjayBmb3IgaXQgYWxyZWFkeQogIGV4aXN0aW5nIHRvIGF2b2lkIGEgc3ltbGluayBhdHRhY2suIChDb2xpbiBQaGlwcHMpCi0gRXZhbHVhdGluZyBvcHRpb25zIHdoaWNoIGFyZSBhbiBleHByZXNzaW9uIGlzIGRvbmUgaW4gYSB8c2FuZGJveHwuICBJZiB0aGUKICBvcHRpb24gd2FzIHNldCBieSBhIG1vZGVsaW5lLCBpdCBjYW5ub3QgY2F1c2UgZGFtYWdlLgotIFVzZSBhIHNlY3VyZSB3YXkgdG8gZ2VuZXJhdGUgdGVtcCBmaWxlIG5hbWVzOiBDcmVhdGUgYSBwcml2YXRlIGRpcmVjdG9yeSBmb3IKICB0ZW1wIGZpbGVzLiAgVXNlZCBmb3IgVW5peCwgTVMtRE9TIGFuZCBPUy8yLgotICdtYWtlZWYnIGNhbiBiZSBlbXB0eSwgd2hpY2ggbWVhbnMgdGhhdCBhbiBpbnRlcm5hbGx5IGdlbmVyYXRlZCBmaWxlIG5hbWUgaXMKICB1c2VkLiAgVGhlIG9sZCBkZWZhdWx0IHdhcyAiL3RtcC9maWxlIiwgd2hpY2ggaXMgYSBzZWN1cml0eSByaXNrLgogIFdyaXRpbmcgJ21ha2VlZicgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5IGZhaWxzIGluIGEgcmVhZC1vbmx5IGRpcmVjdG9yeSBhbmQKICBjYXVzZXMgdHJvdWJsZSB3aGVuIHVzaW5nICI6Z3JlcCIgb24gYWxsIGZpbGVzLiAgTWFkZSB0aGUgZGVmYXVsdCBlbXB0eSBmb3IKICBhbGwgc3lzdGVtcywgc28gdGhhdCBhIHRlbXAgZmlsZSBpcyB1c2VkLgotIFRoZSBjb21tYW5kIGZyb20gYSB0YWdzIGZpbGUgaXMgZXhlY3V0ZWQgaW4gdGhlIHNhbmRib3ggZm9yIGJldHRlciBzZWN1cml0eS4KLSBUaGUgUnVieSwgVGNsIGFuZCBQeXRob24gaW50ZXJmYWNlcyBjYW5ub3QgYmUgdXNlZCBmcm9tIHRoZSBzYW5kYm94LiAgVGhleQogIG1pZ2h0IGRvIGRhbmdlcm91cyB0aGluZ3MuICBQZXJsIGlzIHN0aWxsIHBvc3NpYmxlLCBidXQgbGltaXRlZCB0byB0aGUgU2FmZQogIGVudmlyb25tZW50LiAoRG9ubmllIFNtaXRoKQoKU3ludGF4IGhpZ2hsaWdodGluZzoKLSBPcHRpbWl6ZWQgdGhlIHNwZWVkIGJ5IGNhY2hpbmcgdGhlIHN0YXRlIHN0YWNrIGFsbCBvdmVyIHRoZSBmaWxlLCBub3QganVzdAogIHRoZSBwYXJ0IGJlaW5nIGRpc3BsYXllZC4gIFJlcXVpcmVkIGZvciBmb2xkaW5nLgotIEFkZGVkICI6c3ludGF4IHN5bmMgZnJvbXN0YXJ0IjogQWx3YXlzIHBhcnNlIGZyb20gdGhlIHN0YXJ0IG9mIHRoZSBmaWxlLgotIEFkZGVkIHRoZSAiZGlzcGxheSIgYXJndW1lbnQgZm9yIHN5bnRheCBpdGVtczogdXNlIHRoZSBpdGVtIG9ubHkgd2hlbgogIGRpc3BsYXlpbmcgdGhlIHJlc3VsdC4gIENhbiBtYWtlIHBhcnNpbmcgZmFzdGVyIGZvciB0ZXh0IHRoYXQgaXNuJ3QgZ29pbmcgdG8KICBiZSBkaXNwbGF5ZWQuCi0gV2hlbiB1c2luZyBDVFJMLUwsIHRoZSBjYWNoZWQgc3RhdGVzIGFyZSBkZWxldGVkLCB0byBmb3JjZSBwYXJzaW5nIHRoZSB0ZXh0CiAgYWdhaW4uCi0gVXNlIGVsZmhhc2ggYWxnb3JpdGhtIGZvciB0YWJsZSBvZiBrZXl3b3Jkcy4gIFRoaXMgc2hvdWxkIGdpdmUgYSBiZXR0ZXIKICBkaXN0cmlidXRpb24gYW5kIHNwZWVkdXAga2V5d29yZCBsb29rdXAuIChDYW1wYmVsbCkKLSBBbHNvIGFsbG93IHRoZSAibGMiIGxlYWRpbmcgY29udGV4dCBmb3Igc2tpcCBhbmQgZW5kIHBhdHRlcm5zLiAoU2NvdHQKICBCaWdoYW0pCi0gU3ludGF4IGl0ZW1zIGNhbiBoYXZlIHRoZSAiZXh0ZW5kIiBhcmd1bWVudCB0byB1bmRvIHRoZSBlZmZlY3Qgb2YgYQogICJrZWVwZW5kIiBhcmd1bWVudCBvZiBhbiBpdGVtIGl0IGlzIGNvbnRhaW5lZCBpbi4gIE1ha2VzIGl0IHBvc3NpYmxlIHRvIGhhdmUKICBzb21lIGNvbnRhaW5lZCBpdGVtcyBleHRlbmQgYSByZWdpb24gd2hpbGUgb3RoZXJzIGRvbid0LgotICI6c3ludGF4IGNsZWFyIiBub3cgZGVsZXRlcyB0aGUgYjpjdXJyZW50X3N5bnRheCB2YXJpYWJsZS4gIFRoYXQncyBsb2dpY2FsLAogIHNpbmNlIG5vIHN5bnRheCBpcyBkZWZpbmVkIGFmdGVyIHRoaXMgY29tbWFuZC4KLSBBZGRlZCAiOnN5bnRheCBlbmFibGUiOiBzd2l0Y2ggb24gc3ludGF4IGhpZ2hsaWdodGluZyB3aXRob3V0IGNoYW5naW5nIHRoZQogIGNvbG9ycy4gIFRoaXMgYWxsb3dzIHNwZWNpZnlpbmcgdGhlIGNvbG9ycyBpbiB0aGUgLnZpbXJjIGZpbGUgd2l0aG91dCB0aGUKICBuZWVkIGZvciBhIG15c3ludGF4ZmlsZS4KLSBBZGRlZCAiOnN5bnRheCByZXNldCI6IHJlc2V0IHRoZSBjb2xvcnMgdG8gdGhlaXIgZGVmYXVsdHMuCi0gQWRkZWQgdGhlICJjb250YWlucz1UT1AiIGFuZCAiY29udGFpbnM9Q09OVEFJTkVEIiBhcmd1bWVudHMuICBNYWtlcyBpdAogIHBvc3NpYmxlIHRvIGRlZmluZSBhIHRyYW5zcGFyZW50IGl0ZW0gdGhhdCBkb2Vzbid0IGNvbnRhaW4gaXRzZWxmLgotIEFkZGVkIGEgImNvbnRhaW5lZGluIiBhcmd1bWVudCB0byBzeW50YXggaXRlbXMuICBBbGxvd3MgYWRkaW5nIGEgY29udGFpbmVkCiAgaXRlbSB0byBhbiBleGlzdGluZyBpdGVtIChlLmcuLCB0byBoaWdobGlnaHQgYSBuYW1lIGluIGEgY29tbWVudCkuCgpNb2RlbGVzcyBzZWxlY3Rpb246Ci0gV2hlbiBpbiB0aGUgY29tbWFuZC1saW5lIHdpbmRvdywgdXNlIG1vZGVsZXNzIHNlbGVjdGlvbiBpbiB0aGUgb3RoZXIKICB3aW5kb3dzLiAgTWFrZXMgaXQgcG9zc2libGUgdG8gY29weSB2aXNpYmxlIHRleHQgdG8gdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cuCi0gU3VwcG9ydCBtb2RlbGVzcyBzZWxlY3Rpb24gb24gdGhlIGNtZGxpbmUgaW4gYSB0ZXJtaW5hbC4gIFByZXZpb3VzbHkgaXQgd2FzCiAgb25seSBwb3NzaWJsZSBmb3IgdGhlIEdVSS4KLSBNYWtlIGRvdWJsZS1yaWdodC1jbGljayBpbiBtb2RlbGVzcyBzZWxlY3Rpb24gc2VsZWN0IGEgd2hvbGUgd29yZC4gIFNpbmdsZQogIHJpZ2h0IGNsaWNrIGRvZXNuJ3QgdXNlIHRoZSB3b3JkIHNlbGVjdGlvbiBzdGFydGVkIGJ5IGEgZG91YmxlLWxlZnQtY2xpY2suCiAgTWFrZXMgaXQgd29yayBsaWtlIGluIFZpc3VhbCBtb2RlLgotIFRoZSBtb2RlbGVzcyBzZWxlY3Rpb24gbm8gbG9uZ2VyIGhhcyBhbiBpbXBsaWVkIGF1dG9tYXRpYyBjb3B5IHRvIHRoZQogIGNsaXBib2FyZC4gIEl0IG5vdyBvYmV5cyB0aGUgJ2EnIGFuZCAnQScgZmxhZ3MgaW4gJ2d1aW9wdGlvbnMnIG9yCiAgImF1dG9zZWxlY3QiIGFuZCAiYXV0b3NlbGVjdG1sIiBpbiAnY2xpcGJvYXJkJy4KLSBBZGRlZCB0aGUgQ1RSTC1ZIGNvbW1hbmQgaW4gQ21kbGluZS1tb2RlIHRvIGNvcHkgdGhlIG1vZGVsZXNzIHNlbGVjdGlvbiB0bwogIHRoZSBjbGlwYm9hcmQuICBBbHNvIHdvcmtzIGF0IHRoZSBoaXQtZW50ZXIgcHJvbXB0IGFuZCB0aGUgbW9yZSBwcm9tcHQuCiAgUmVtb3ZlZCB0aGUgbWFwcGluZ3MgaW4gcnVudGltZS9tc3dpbi52aW0gZm9yIENUUkwtWSBhbmQgQ1RSTC1aIGluCiAgY21kbGluZS1tb2RlIHRvIGJlIGFibGUgdG8gdXNlIENUUkwtWSBpbiB0aGUgbmV3IHdheS4KClJlZHVjZWQgdGhlIGFtb3VudCBvZiBzdGFjayBzcGFjZSB1c2VkIGJ5IHJlZ21hdGNoKCkgdG8gYWxsb3cgaXQgdG8gaGFuZGxlCmNvbXBsaWNhdGVkIHBhdHRlcm5zIG9uIGEgbG9uZ2VyIHRleHQuCgonaXNmbmFtZScgbm93IGluY2x1ZGVzICclJyBhbmQgJyMnLiAgTWFrZXMgInZpbSBkaXJcI2ZpbGUiIHdvcmsgZm9yIE1TLURPUy4KCkFkZGVkIGtleXBhZCBzcGVjaWFsIGtleXMgPGtFbnRlcj4sIDxrMD4gLSA8azk+LiAgV2hlbiBub3QgbWFwcGVkIHRoZXkgYmVoYXZlCmxpa2UgdGhlIEFTQ0lJIGVxdWl2YWxlbnQuIChJdmFuIFdlbGxlc3ogYW5kIFZpbmNlIE5lZ3JpKQpSZWNvZ25pemUgYSBmZXcgbW9yZSB4dGVybSBrZXlzOiA8Qy1SaWdodD4sIDxDLUxlZnQ+LCA8Qy1FbmQ+LCA8Qy1Ib21lPgoKQWxzbyB0cmlnZ2VyIHRoZSBCdWZVbmxvYWQgZXZlbnQgd2hlbiBWaW0gaXMgZ29pbmcgdG8gZXhpdC4gIFBlcmhhcHMgYSBzY3JpcHQKbmVlZHMgdG8gZG8gc29tZSBjbGVhbmluZyB1cC4KCkV4cGFuZCBleHByZXNzaW9uIGluIGJhY2t0aWNrczogYD17ZXhwcn1gLiAgQ2FuIGJlIHVzZWQgd2hlcmUgYmFja3RpY2sKZXhwYW5zaW9uIGlzIGRvbmUuIChWaW5jZSBOZWdyaSkKCkdVSToKLSBBZGRlZCAnTCcgYW5kICdSJyBmbGFncyBpbiAnZ3Vpb3B0aW9ucyc6IEFkZCBhIGxlZnQgb3IgcmlnaHQgc2Nyb2xsYmFyIG9ubHkKICB3aGVuIHRoZXJlIGlzIGEgdmVydGljYWxseSBzcGxpdCB3aW5kb3cuCi0gWDExOiBXaGVuIGEgY29sb3IgY2FuJ3QgYmUgYWxsb2NhdGVkLCB1c2UgdGhlIG5lYXJlc3QgbWF0Y2ggZnJvbSB0aGUKICBjb2xvcm1hcC4gIFRoaXMgYXZvaWRzIHRoYXQgYmxhY2sgaXMgdXNlZCBmb3IgbWFueSB0aGluZ3MuIChNb25pc2ggU2hhaCkKICBBbHNvIGRvIHRoaXMgZm9yIHRoZSBtZW51IGFuZCBzY3JvbGxiYXIsIHRvIGF2b2lkIHRoYXQgdGhleSBiZWNvbWUgYmxhY2suCi0gV2luMzIgYW5kIFgxMTogQWRkZWQgJ21vdXNlc2hhcGUnIG9wdGlvbjogQWRqdXN0IHRoZSBtb3VzZSBwb2ludGVyIHNoYXBlIHRvCiAgdGhlIGN1cnJlbnQgbW9kZS4gKFZpbmNlIE5lZ3JpKQotIEFkZGVkIHRoZSAnbGluZXNwYWNlJyBvcHRpb246IEluc2VydCBhIHBpeGVsIGxpbmUgYmV0d2VlbiBsaW5lcy4gKE5hbSkKLSBBbGxvdyBtb2RlbGVzcyBzZWxlY3Rpb24gKHdpdGhvdXQgbW92aW5nIHRoZSBjdXJzb3IpIGJ5IGtlZXBpbmcgQ1RSTCBhbmQKICBTSElGVCBwcmVzc2VkLiAoSXZhbiBXZWxsZXN6KQotIE1vdGlmOiBhZGRlZCB0b29sYmFyLiAoR29yZG9uIFByaWV1cikgIEFsc28gYWRkZWQgdG9vbHRpcHMuCi0gQXRoZW5hOiBhZGRlZCB0b29sYmFyIGFuZCB0b29sdGlwcy4gKERhdmlkIEhhcnJpc29uIC0tIGJhc2VkIG9uIEdvcmRvbgogIFByaWV1cidzIHdvcmspCi0gTWFkZSB0aGUgJ3Rvb2xiYXInIG9wdGlvbiB3b3JrIGZvciBBdGhlbmEgYW5kIE1vdGlmLiAgQ2FuIG5vdyBzd2l0Y2ggYmV0d2VlbgogIHRleHQgYW5kIGljb25zIG9uIHRoZSBmbHkuICAoRGF2aWQgSGFycmlzb24pCi0gU3VwcG9ydCBtZW51IHNlcGFyYXRvciBsaW5lcyBmb3IgQXRoZW5hLiAgKERhdmlkIEhhcnJpc29uKQotIEF0aGVuYTogQWRqdXN0IHRoZSBhcnJvdyBwaXhtYXAgdXNlZCBpbiBhIHB1bGxyaWdodCBtZW51IHRvIHRoZSBzaXplIG9mIHRoZQogIGZvbnQuIChEYXZpZCBIYXJyaXNvbikKLSBXaW4zMjogQWRkZWQgImMiIGZsYWcgdG8gJ2d1aWZvbnQnIHRvIGJlIGFibGUgdG8gc3BlY2lmeSB0aGUgY2hhcnNldC4gKEFydGVtCiAgS2hvZHVzaCkKLSBXaGVuIG5vIC0tZW5hYmxlLXhpbSBhcmd1bWVudCBpcyBnaXZlbiwgYXV0b21hdGljYWxseSBlbmFibGUgaXQgd2hlbiBhIFggR1VJCiAgaXMgdXNlZC4gIFJlcXVpcmVkIGZvciBkZWFkIGtleSBzdXBwb3J0IChhbmQgbXVsdGktYnl0ZSBpbnB1dCkuCi0gQWZ0ZXIgYSBmaWxlIHNlbGVjdGlvbiBkaWFsb2csIGNoZWNrIHRoYXQgdGhlIGVkaXRlZCBmaWxlcyB3ZXJlIG5vdCBjaGFuZ2VkCiAgb3IgZGVsZXRlZC4gIFRoZSBXaW4zMiBkaWFsb2cgYWxsb3dzIGRlbGV0aW5nIGFuZCByZW5hbWluZyBmaWxlcy4KLSBNb3RpZiBhbmQgQXRoZW5hOiBBZGRlZCBzdXBwb3J0IGZvciAiZWRpdHJlcyIuIChNYXJjaW4gRGFsZWNraSkKLSBNb3RpZiBhbmQgQXRoZW5hOiBBZGRlZCAibWVudUZvbnQiIHRvIGJlIGFibGUgdG8gc3BlY2lmeSBhIGZvbnQgb3IgZm9udHNldAogIGZvciB0aGUgbWVudXMuICBDYW4gYWxzbyBiZSBzZXQgd2l0aCB0aGUgIk1lbnUiIGhpZ2hsaWdodCBncm91cC4gIFVzZWZ1bAogIHdoZW4gdGhlIGxvY2FsZSBpcyBkaWZmZXJlbnQgZnJvbSAnZW5jb2RpbmcnLiAoRGF2aWQgSGFycmlzb24pCiAgV2hlbiBGT05UU0VUX0FMV0FZUyBpcyBkZWZpbmVkLCBhbHdheXMgdXNlIGEgZm9udHNldCBmb3IgdGhlIG1lbnVzLiAgU2hvdWxkCiAgYXZvaWQgdHJvdWJsZSB3aXRoIGNoYW5naW5nIGZyb20gYSBmb250IHRvIGEgZm9udHNldC4gIChEYXZpZCBIYXJyaXNvbikKLSBIaWdobGlnaHRpbmcgYW5kIGZvbnQgZm9yIHRoZSB0b29sdGlwcyBjYW4gYmUgc3BlY2lmaWVkIHdpdGggdGhlICJUb29sdGlwIgogIGhpZ2hsaWdodCBncm91cC4gKERhdmlkIEhhcnJpc29uKQotIFRoZSBDbWRsaW5lLW1vZGUgbWVudXMgY2FuIGJlIHVzZWQgYXQgdGhlIG1vcmUtcHJvbXB0LiAgVGhpcyBtb3N0bHkgd29ya3MKICBmaW5lLCBiZWNhdXNlIHRoZXkgc3RhcnQgd2l0aCBhIENUUkwtQy4gIFRoZSAiQ29weSIgbWVudSB3b3JrcyB0byBjb3B5IHRoZQogIG1vZGVsZXNzIHNlbGVjdGlvbi4gIEFsbG93cyBjb3B5aW5nIHRoZSBvdXRwdXQgb2YgIjpzZXQgYWxsIiBvciAiOmludHJvIgogIHdpdGhvdXQgYXV0by1zZWxlY3Rpb24uCi0gV2hlbiBzdGFydGluZyB0aGUgR1VJIHdoZW4gdGhlcmUgaXMgbm8gdGVybWluYWwgY29ubmVjdGVkIHRvIHN0ZG91dCBhbmQKICBzdGRlcnIsIGRpc3BsYXkgZXJyb3IgbWVzc2FnZXMgaW4gYSBkaWFsb2cuICBQcmV2aW91c2x5IHRoZXkgd291bGRuJ3QgYmUKICBkaXNwbGF5ZWQgYXQgYWxsLgotIEFsbG93IHNldHRpbmcgJ2Jyb3dzZWRpcicgdG8gdGhlIG5hbWUgb2YgYSBkaXJlY3RvcnksIHRvIGJlIHVzZWQgZm9yIHRoZQogIGZpbGUgZGlhbG9nLiAoRGFuIFNoYXJwKQotIGI6YnJvd3NlZmlsdGVyIGFuZCBnOmJyb3dzZWZpbHRlciBjYW4gYmUgc2V0IHRvIHRoZSBmaWx0ZXJzIHVzZWQgZm9yIHRoZQogIGZpbGUgZGlhbG9nLiAgU3VwcG9ydGVkIGZvciBXaW4zMiBhbmQgTW90aWYgR1VJLiAoRGFuIFNoYXJwKQoKWDExOgotIFN1cHBvcnQgZm9yIHRoZSBjbGlwYm9hcmQgc2VsZWN0aW9uIGFzIHJlZ2lzdGVyICIrLiAgV2hlbiBleGl0aW5nIG9yCiAgc3VzcGVuZGluZyBjb3B5IHRoZSBzZWxlY3Rpb24gdG8gY3V0IGJ1ZmZlciAwLiAgU2hvdWxkIGFsbG93IGNvcHkvcGFzdGUgd2l0aAogIG1vcmUgYXBwbGljYXRpb25zIGluIGEgWDExLXN0YW5kYXJkIHdheS4gIChOZWlsIEJpcmQpCi0gVXNlIHRoZSBYIGNsaXBib2FyZCBpbiBhbnkgdGVybWluYWwsIG5vdCBqdXN0IGluIGFuIHh0ZXJtLgogIEFkZGVkICJleGNsdWRlOiIgaW4gJ2NsaXBib2FyZCc6IFNwZWNpZnkgYSBwYXR0ZXJuIHRvIG1hdGNoIGFnYWluc3QgdGVybWluYWwKICBuYW1lcyBmb3Igd2hpY2ggbm8gY29ubmVjdGlvbiBzaG91bGQgYmUgbWFkZSB0byB0aGUgWCBzZXJ2ZXIuICBUaGUgZGVmYXVsdAogIGN1cnJlbnRseSB3b3JrIGZvciBGcmVlQlNEIGFuZCBMaW51eCBjb25zb2xlcy4KLSBBZGRlZCBhIGZldyBtZXNzYWdlcyBmb3Igd2hlbiAndmVyYm9zZScgaXMgbm9uLXplcm8gdG8gc2hvdyB3aGF0IGhhcHBlbnMKICB3aGVuIHRyeWluZyB0byBjb25uZWN0IHRvIHRoZSBYIHNlcnZlci4gIFNob3VsZCBoZWxwIHdoZW4gdHJ5aW5nIHRvIGZpbmQgb3V0CiAgd2h5IHN0YXJ0dXAgaXMgc2xvdy4KCkdUSyBHVUk6IChwYXJ0bHkgYnkgTWFyY2luIERhbGVja2kpCi0gV2l0aCBzb21lIGZvbnRzIHRoZSBjaGFyYWN0ZXJzIGNhbiBiZSB0YWxsZXIgdGhhbiBhc2NlbnQgKyBkZXNjZW50LiAgRS5nLiwKICAiLW1pc2MtZml4ZWQtKi0qLSotKi0xOC0qLSotKi0qLSotaXNvMTA2NDYtMSIuICBBZGQgb25lIHRvIHRoZSBjaGFyYWN0ZXIKICBjZWxsIGhlaWdodC4KLSBJbXBsZW1lbnQgIm5vIiB2YWx1ZSBmb3IgJ3dpbmFsdGtleXMnOiBkb24ndCB1c2UgQWx0LUtleSBhcyBhIG1lbnUgc2hvcnRjdXQsCiAgd2hlbiAnd2FrJyBjaGFuZ2VkIGFmdGVyIGNyZWF0aW5nIHRoZSBtZW51cy4KLSBTZXR0aW5nICd3YWsnIGFmdGVyIHRoZSBHVUkgc3RhcnRlZCB3b3Jrcy4KLSByZWN5Y2xlIHRleHQgR0MncyB0byByZWR1Y2UgY29tbXVuaWNhdGlvbi4KLSBBZGp1c3QgaWNvbiBzaXplIHRvIHdpbmRvdyBtYW5hZ2VyLgotIENsZWFudXAgaW4gZm9udCBoYW5kbGluZy4KLSBSZXBsYWNlIFhRdWVyeUNvbG9yIHdpdGggR0RLIGNhbGxzLgotIEdub21lIHN1cHBvcnQuICBEZXRlY3RzIEdub21lIGluIGNvbmZpZ3VyZSBhbmQgdXNlcyBkaWZmZXJlbnQgd2lkZ2V0cy4KICBPdGhlcndpc2UgaXQncyBtdWNoIGxpa2UgR1RLLiAoQW5keSBLYWhuKQogIEl0IGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQsIGJlY2F1c2UgaXQgY2F1c2VzIGEgZmV3IHByb2JsZW1zLgotIFJlbW92ZWQgdGhlIHNwZWNpYWwgY29kZSB0byBmb3JrIGZpcnN0IGFuZCB0aGVuIHN0YXJ0IHRoZSBHVUkuICBOb3cgdXNlCiAgX2V4aXQoKSBpbnN0ZWFkIG9mIGV4aXQoKSwgdGhpcyB3b3JrcyBmaW5lIHdpdGhvdXQgc3BlY2lhbCB0cmlja3MuCi0gRGlhbG9ncyBzb21ldGltZXMgYXBwZWFyZWQgYSBiaXQgZmFyIGF3YXkuICBQb3NpdGlvbiB0aGUgZGlhbG9ncyBpbnNpZGUKICB0aGUgZ3ZpbSB3aW5kb3cuIChCcmVudCBWZXJuZXIpCi0gV2hlbiBkcm9wcGluZyBhIGZpbGUgb24gVmltLCByZW1vdmUgZXh0cmEgc2xhc2hlcyBmcm9tIHRoZSBzdGFydCBvZiB0aGUKICBwYXRoLiAgQWxzbyBzaG9ydGVuIHRoZSBmaWxlIG5hbWUgaWYgcG9zc2libGUuCgpNb3RpZjogKE1hcmNpbiBEYWxlY2tpKQotIE1hZGUgdGhlIGRpYWxvZyBsYXlvdXQgYmV0dGVyLgotIEFkZGVkIGZpbmQgYW5kIGZpbmQvcmVwbGFjZSBkaWFsb2dzLgotIEZvciB0aGUgbWVudXMsIGNoYW5nZSAiaXNvLTg4NTkiIHRvICJpc29fODg1OSIsIExpbnV4IGFwcGVhcnMgdG8gbmVlZCB0aGlzLgotIEFkZGVkIGljb24gdG8gZGlhbG9ncywgbGlrZSBmb3IgR1RLLgotIFVzZSBYUE0gYml0bWFwcyBmb3IgdGhlIGljb24gd2hlbiBwb3NzaWJsZS4gIFVzZSB0aGUgU29sYXJpcyBYcG1QLmggaW5jbHVkZQogIGZpbGUgd2hlbiBpdCdzIGF2YWlsYWJsZS4KLSBDaGFuZ2UgdGhlIHNoYWRvdyBvZiB0aGUgdG9vbGJhciBpdGVtcyB0byBnZXQgYSB2aXN1YWwgZmVlZGJhY2sgb2YgaXQgYmVpbmcKICBwcmVzc2VkIG9uIG5vbi1MZXNzVGlmLgotIFVzZSBnYWRnZXRzIGluc3RlYWQgb2Ygd2luZG93cyBmb3Igc29tZSBpdGVtcyBmb3Igc3BlZWQuCgpDb21tYW5kIGxpbmUgY29tcGxldGlvbjoKLSBDb21wbGV0ZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBuYW1lcy4gKE1pa2UgU3RlZWQpCi0gRm9yICI6Y29tbWFuZCIsIGFkZGVkIGEgZmV3IGNvbXBsZXRpb24gbWV0aG9kczogIm1hcHBpbmciLCAiZnVuY3Rpb24iLAogICJleHByZXNzaW9uIiBhbmQgImVudmlyb25tZW50Ii4KLSBXaGVuIGEgZnVuY3Rpb24gZG9lc24ndCB0YWtlIGFyZ3VtZW50cywgbGV0IGNvbXBsZXRpb24gYWRkICgpIGluc3RlYWQgb2YgKC4KCkZvciBNUy1ET1MsIE1TLVdpbmRvd3MgYW5kIE9TLzI6IEV4cGFuZCAlVkFSJSBlbnZpcm9ubWVudCB2YXJpYWJsZXMgbGlrZSAkVkFSLgooV2FsdGVyIEJyaXNjb2UpCgpSZWRpcmVjdCBtZXNzYWdlcyB0byB0aGUgY2xpcGJvYXJkICI6cmVkaXIgQCoiIGFuZCB0byB0aGUgdW5uYW1lZCByZWdpc3RlcgoiOnJlZGlyIEAiIi4gKFdhbGwpCgoiOmxldCBALyA9ICcnIiBjbGVhcnMgdGhlIHNlYXJjaCBwYXR0ZXJuLCBpbnN0ZWFkIG9mIHNldHRpbmcgaXQgdG8gYW4gZW1wdHkKc3RyaW5nLgoKRXhwcmVzc2lvbiBldmFsdWF0aW9uOgotICI/IDoiIGNhbiBiZSB1c2VkIGxpa2UgaW4gQy4KLSBjb2woIiQiKSByZXR1cm5zIHRoZSBsZW5ndGggb2YgdGhlIGN1cnNvciBsaW5lIHBsdXMgb25lLiAoU3RlcGhlbiBQLiBXYWxsKQotIE9wdGlvbmFsIGV4dHJhIGFyZ3VtZW50IGZvciBtYXRjaCgpLCBtYXRjaGVuZCgpIGFuZCBtYXRjaHN0cigpOiBPZmZzZXQgdG8KICBzdGFydCBsb29raW5nIGZvciBhIG1hdGNoLgotIE1hZGUgdGhpcmQgYXJndW1lbnQgdG8gc3RycGFydCgpIG9wdGlvbmFsLiAgKFBhdWwgTW9vcmUsIFpkZW5layBTZWtlcmEpCi0gZXhpc3RzKCkgY2FuIGFsc28gYmUgdXNlZCB0byBjaGVjayBmb3IgRXggY29tbWFuZHMgYW5kIGRlZmluZWQgYXV0b2NvbW1hbmRzLgotIEFkZGVkIGV4dHJhIGFyZ3VtZW50IHRvIGlucHV0KCk6IERlZmF1bHQgdGV4dC4KLSBBbHNvIHNldCAidjplcnJtc2ciIHdoZW4gdXNpbmcgIjpzaWxlbnQhIGNtZCIuCi0gQWRkZWQgdGhlIHY6cHJldmNvdW50IHZhcmlhYmxlOiB2OmNvdW50IGZvciB0aGUgcHJldmlvdXMgY29tbWFuZC4KLSBBZGRlZCAidjpwcm9nbmFtZSIsIG5hbWUgd2l0aCB3aGljaCBWaW0gd2FzIHN0YXJ0ZWQuIChWaW5jZSBOZWdyaSkKLSBJbiB0aGUgdmVyYm9zZSBtZXNzYWdlIGFib3V0IHJldHVybmluZyBmcm9tIGEgZnVuY3Rpb24sIGFsc28gc2hvdyB0aGUgcmV0dXJuCiAgdmFsdWUuCgpDc2NvcGU6Ci0gQWRkZWQgdGhlIGNzY29wZV9jb25uZWN0aW9uKCkgZnVuY3Rpb24uIChBbmR5IEthaG4pCi0gIjpjc2NvcGUga2lsbCAtMSIga2lsbHMgYWxsIGNzY29wZSBjb25uZWN0aW9ucy4gKEFuZHkgS2FobikKLSBBZGRlZCB0aGUgJ2NzY29wZXBhdGhjb21wJyBvcHRpb24uIChTY290dCBIYXVjaykKLSBBZGRlZCAiOnNjc2NvcGUiIGNvbW1hbmQsIHNwbGl0IHdpbmRvdyBhbmQgZXhlY3V0ZSBDc2NvcGUgY29tbWFuZC4gKEphc29uCiAgRHVlbGwpCgpWTVM6Ci0gQ29tbWFuZCBsaW5lIGFyZ3VtZW50cyBhcmUgYWx3YXlzIHVwcGVyY2FzZS4gIEludGVycHJldCBhICItWCIgYXJndW1lbnQgYXMKICAiLXgiIGFuZCAiLS9YIiBhcyAiLVgiLgotIFNldCAnbWFrZXByZycgYW5kICdncmVwcHJnJyB0byBtZWFuaW5nZnVsIGRlZmF1bHRzLiAoWm9sdGFuIEFycGFkZmZ5KQotIFVzZSB0aGUgWC1jbGlwYm9hcmQgZmVhdHVyZSBhbmQgdGhlIFggY29tbWFuZCBzZXJ2ZXIuIChab2x0YW4gQXJwYWRmZnkpCgpNYWNpbnRvc2g6IChEYW55IFN0LUFtYW50KQotIEFsbG93IGEgdGFncyBmaWxlIHRvIGhhdmUgQ1IsIENSLUxGIG9yIExGIGxpbmUgc2VwYXJhdG9yLiAoQXhlbCBLaWVsaG9ybikKLSBDYXJib25pemVkICh3aGlsZSBrZWVwaW5nIG5vbiBDYXJib24gY29kZSkKICAoU29tZSB3b3JrICJzdG9sZW4iIGZyb20gQW1tb24gU2tpZG1vcmUpCi0gSW1wcm92ZWQgdGhlIG1lbnUgaXRlbSBpbmRleCBoYW5kbGluZyAoc2hvdWxkIGJlIGZhc3RlcikKLSBSdW50aW1lIGNvbW1hbmRzIG5vdyBoYW5kbGUgLyBpbiBmaWxlIG5hbWUgKE1hY09TIDkgdmVyc2lvbikKLSBBZGRlZCAiOndpbnBvcyIgc3VwcG9ydC4KLSBTdXBwb3J0IHVzaW5nICJ+IiBpbiBmaWxlIG5hbWVzIGZvciBob21lIGRpcmVjdG9yeS4KCk9wdGlvbnM6Ci0gV2hlbiB1c2luZyBzZXQgKz0gb3IgXj0gLCBjaGVjayBmb3IgaXRlbXMgdXNlZCB0d2ljZS4gIER1cGxpY2F0ZXMgYXJlCiAgcmVtb3ZlZC4gIChWaW5jZSBOZWdyaSkKLSBXaGVuIHNldHRpbmcgYW4gb3B0aW9uIHRoYXQgaXMgYSBsaXN0IG9mIGZsYWdzLCByZW1vdmUgZHVwbGljYXRlIGZsYWdzLgotIElmIHBvc3NpYmxlLCB1c2UgZ2V0cmxpbWl0KCkgdG8gc2V0ICdtYXhtZW10b3QnIGFuZCAnbWF4bWVtJy4gKFBpbmEpCi0gQWRkZWQgImFscGhhIiB0byAnbnJmb3JtYXRzJzogaW5jcmVtZW50IG9yIGRlY3JlbWVudCBhbiBhbHBoYWJldGljIGNoYXJhY3RlcgogIHdpdGggQ1RSTC1BIGFuZCBDVFJMLVguCi0gIjpzZXQgb3B0JnZpIiBzZXRzIGFuIG9wdGlvbiB0byBpdHMgVmkgZGVmYXVsdCwgIjpzZXQgb3B0JnZpbSIgdG8gaXRzIFZpbQogIGRlZmF1bHQuICBVc2VmdWwgdG8gc2V0ICdjcG8nIHRvIGl0cyBWaW0gZGVmYXVsdCB3aXRob3V0IGtub3dpbmcgd2hhdCBmbGFncwogIHRoYXQgaW5jbHVkZXMuCi0gJ3Njcm9sbG9mZicgbm93IGFsc28gYXBwbGllcyB0byBhIGxvbmcsIHdyYXBwZWQgbGluZSB0aGF0IGRvZXNuJ3QgZml0IGluIHRoZQogIHdpbmRvdy4KLSBBZGRlZCBtb3JlIG9wdGlvbiBzZXR0aW5ncyB0byB0aGUgZGVmYXVsdCBtZW51cy4KLSBVcGRhdGVkIHRoZSBvcHRpb24gd2luZG93IHdpdGggbmV3IG9wdGlvbnMuICBNYWRlIGl0IGEgYml0IGVhc2llciB0byByZWFkLgoKSW50ZXJuYWwgY2hhbmdlczoKLSBTcGxpdCBsaW5lIHBvaW50ZXJzIGluIHRleHQgcGFydCBhbmQgYXR0cmlidXRlcyBwYXJ0LiAgQWxsb3dzIGZvciBmdXR1cmUKICBjaGFuZ2UgdG8gbWFrZSBhdHRyaWJ1dGUgbW9yZSB0aGFuIG9uZSBieXRlLgotIFByb3ZpZGUgYSBxc29ydCgpIGZ1bmN0aW9uIGZvciBzeXN0ZW1zIHRoYXQgZG9uJ3QgaGF2ZSBpdC4KLSBDaGFuZ2VkIHRoZSBiaWcgc3dpdGNoIGZvciBOb3JtYWwgbW9kZSBjb21tYW5kcyBpbnRvIGEgdGFibGUuICBUaGlzIGNsZWFucwogIHVwIHRoZSBjb2RlIGNvbnNpZGVyYWJseSBhbmQgYXZvaWRzIHRyb3VibGUgZm9yIHNvbWUgb3B0aW1pemluZyBjb21waWxlcnMuCi0gQXNzaWduZWQgYSBuZWdhdGl2ZSB2YWx1ZSB0byBzcGVjaWFsIGtleXMsIHRvIGF2b2lkIHRoZW0gYmVpbmcgbWl4ZWQgdXAgd2l0aAogIFVuaWNvZGUgY2hhcmFjdGVycy4KLSBHbG9iYWwgdmFyaWFibGVzIGV4cGFuZF9jb250ZXh0IGFuZCBleHBhbmRfcGF0dGVybiB3ZXJlIG5vdCBzdXBwb3NlZCB0byBiZQogIGdsb2JhbC4gIFBhc3MgdGhlbSB0byBFeHBhbmRPbmUoKSBhbmQgYWxsIGZ1bmN0aW9ucyBjYWxsZWQgYnkgaXQuCi0gTm8gbG9uZ2VyIHVzZSB0aGUgZ2xvYmFsIHJlZ19pYyBmbGFnLiAgSXQgY2F1c2VkIHRyb3VibGUgYW5kIGluIGEgZmV3IHBsYWNlcwogIGl0IHdhcyBub3Qgc2V0LgotIFJlbW92ZWQgdGhlIHVzZSBvZiB0aGUgc3R1ZmYgYnVmZmVyIGZvciAiKiIsICJLIiwgQ1RSTC1dLCBldGMuICBBdm9pZHMKICBwcm9ibGVtIHdpdGggYXV0b2NvbW1hbmRzLgotIE1vdmVkIHNvbWUgY29kZSBmcm9tIGV4X2RvY21kLmMgdG8gZXhfY21kczIuYy4gIFRoZSBmaWxlIHdhcyBnZXR0aW5nIHRvbwogIGJpZy4gIEFsc28gbW92ZWQgc29tZSBjb2RlIGZyb20gc2NyZWVuLmMgdG8gbW92ZS5jLgotIERvbid0IGluY2x1ZGUgdGhlIENSQyB0YWJsZSBmb3IgZW5jcnlwdGlvbiwgZ2VuZXJhdGUgaXQuICBTYXZlcyBxdWl0ZSBhIGJpdAogIG9mIHNwYWNlIGluIHRoZSBzb3VyY2UgY29kZS4gKE1hdHRoaWFzIEtyYW1tKQotIFJlbmFtZWQgbXVsdGlieXRlLmMgdG8gbWJ5dGUuYyB0byBhdm9pZCBhIHByb2JsZW0gd2l0aCA4LjMgZmlsZXN5c3RlbXMuCi0gUmVtb3ZlZCB0aGUgR1RLIGltcGxlbWVudGF0aW9uIG9mICI6ZmluZGhlbHAiLCBpdCBub3cgdXNlcyB0aGUKICBUb29sQmFyLkZpbmRIZWxwICBtZW51IGVudHJ5LgotIFJlbmFtZWQgbWNoX3dpbmRleGl0KCkgdG8gbWNoX2V4aXQoKSwgbWNoX2luaXQoKSB0byBtY2hfZWFybHlfaW5pdCgpIGFuZAogIG1jaF9zaGVsbGluaXQoKSB0byBtY2hfaW5pdCgpLgoKSGlnaGxpZ2h0aW5nOgotIEluIGEgIjpoaWdobGlnaHQiIGxpc3RpbmcsIHNob3cgInh4eCIgd2l0aCB0aGUgaGlnaGxpZ2h0IGNvbG9yLgotIEFkZGVkIHN1cHBvcnQgZm9yIHh0ZXJtIHdpdGggODggb3IgMjU2IGNvbG9ycy4gIFRoZSByaWdodCBjb2xvciBudW1iZXJzIHdpbGwKICBiZSB1c2VkIGZvciB0aGUgbmFtZSB1c2VkIGluIGEgIjpoaWdobGlnaHQiIGNvbW1hbmQuIChTdGV2ZSBXYWxsKQotIEFkZGVkICJkZWZhdWx0IiBhcmd1bWVudCBmb3IgIjpoaWdobGlnaHQiLiAgV2hlbiBpbmNsdWRlZCwgdGhlIGNvbW1hbmQgaXMKICBpZ25vcmVkIGlmIGhpZ2hsaWdodGluZyBmb3IgdGhlIGdyb3VwIHdhcyBhbHJlYWR5IGRlZmluZWQuCiAgQWxsIHN5bnRheCBmaWxlcyBub3cgdXNlICI6aGkgZGVmYXVsdCAuLi4iIHRvIGFsbG93IHRoZSB1c2VyIHRvIHNwZWNpZnkKICBjb2xvcnMgaW4gaGlzIHZpbXJjIGZpbGUuICBBbHNvLCB0aGUgImlmIGRpZF94eHhfc3ludGF4X2luaXRzIiBpcyBub3QgbmVlZGVkCiAgYW55bW9yZS4gIFRoaXMgZ3JlYXRseSBzaW1wbGlmaWVzIHVzaW5nIG5vbi1kZWZhdWx0IGNvbG9ycyBmb3IgYSBzcGVjaWZpYwogIGxhbmd1YWdlLgotIEFkanVzdGVkIGNvbG9ydGVzdC52aW06IEluY2x1ZGVkIGNvbG9ycyBvbiBub3JtYWwgYmFja2dyb3VuZCBhbmQgcmVkdWNlZCB0aGUKICBzaXplIGJ5IHVzaW5nIGEgd2hpbGUgbG9vcC4gKFJhZmFlbCBHYXJjaWEtU3VhcmV6KQotIEFkZGVkIHRoZSAiRGFya1llbGxvdyIgY29sb3IgbmFtZS4gIEp1c3QgdG8gbWFrZSB0aGUgbGlzdCBvZiBzdGFuZGFyZCBjb2xvcnMKICBjb25zaXN0ZW50LCBpdCdzIG5vdCByZWFsbHkgYSBuaWNlIGNvbG9yIHRvIHVzZS4KCldoZW4gYW4geHRlcm0gaXMgaW4gOC1iaXQgbW9kZSB0aGlzIGlzIGRldGVjdGVkIGJ5IHRoZSBjb2RlIHJldHVybmVkIGZvcgp8dF9SVnwuICBBbGwga2V5IGNvZGVzIGFyZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCB0byB0aGVpciA4LWJpdCB2ZXJzaW9ucy4KClRoZSBPUFRfVENBUF9RVUVSWSBpbiB4dGVybSBwYXRjaCBsZXZlbCAxNDEgYW5kIGxhdGVyIGlzIHVzZWQgdG8gb2J0YWluIHRoZQphY3R1YWwga2V5IGNvZGVzIHVzZWQgYW5kIHRoZSBudW1iZXIgb2YgY29sb3JzIGZvciB0X0NvLiAgT25seSB3aGVuIHx0X1JWfCBpcwphbHNvIHVzZWQuCgoiOmJyb3dzZSBzZXQiIG5vdyBhbHNvIHdvcmtzIGluIHRoZSBjb25zb2xlIG1vZGUuICAiOmJyb3dzZSBlZGl0IiB3aWxsIGdpdmUgYW4KZXJyb3IgbWVzc2FnZS4KCiI6YmRlbGV0ZSIgYW5kICI6YnVubG9hZCIgb25seSByZXBvcnQgdGhlIG51bWJlciBvZiBkZWxldGVkL3VubG9hZGVkIGJ1ZmZlcnMKd2hlbiBtb3JlIHRoYW4gJ3JlcG9ydCcuICBUaGUgbWVzc2FnZSB3YXMgYW5ub3lpbmcgd2hlbiBkZWxldGluZyBhIGJ1ZmZlciBpbiBhCnNjcmlwdC4KCkp1bXAgbGlzdDoKLSBUaGUgbnVtYmVyIG9mIG1hcmtzIGtlcHQgaW4gdGhlIGp1bXBsaXN0IGhhcyBiZWVuIGluY3JlYXNlZCBmcm9tIDUwIHRvIDEwMC4KLSBUaGUganVtcGxpc3QgaXMgbm93IHN0b3JlZCBpbiB0aGUgdmltaW5mbyBmaWxlLiAgQ1RSTC1PIGNhbiBiZSB1c2VkIHRvIGp1bXAKICB0byBwb3NpdGlvbnMgZnJvbSBhIHByZXZpb3VzIGVkaXQgc2Vzc2lvbi4KLSBXaGVuIGRvaW5nICI6c3BsaXQiIGNvcHkgdGhlIGp1bXBsaXN0IHRvIHRoZSBuZXcgd2luZG93LgoKQWxzbyBzZXQgdGhlICdbIGFuZCAnXSBtYXJrcyBmb3IgdGhlICJ+IiBhbmQgInIiIGNvbW1hbmRzLiAgVGhlc2UgbWFya3MgYXJlCm5vdyBhbHdheXMgc2V0IHdoZW4gbWFraW5nIGEgY2hhbmdlIHdpdGggYSBOb3JtYWwgbW9kZSBjb21tYW5kLgoKUHl0aG9uIGludGVyZmFjZTogQWxsb3cgc2V0dGluZyB0aGUgd2lkdGggb2YgYSB2ZXJ0aWNhbGx5IHNwbGl0IHdpbmRvdy4gKEpvaG4KQ29vaykKCkFkZGVkICI9d29yZCIgYW5kICI9fndvcmQiIHRvICdjaW5rZXlzJyAoYWxzbyB1c2VkIGluICdpbmRlbnRrZXlzJykuCgpBZGRlZCAiajEiIGFyZ3VtZW50IGluICdjaW5vcHRpb25zJzogaW5kZW50IHt9IGluc2lkZSAoKSBmb3IgSmF2YS4gKEpvaGFubmVzClplbGxuZXIpCkFkZGVkIHRoZSAibCIgZmxhZyBpbiAnY2lub3B0aW9ucycuIChBbmR1aW4gV2l0aGVycykKQWRkZWQgJ0MnLCAnVScsICd3JyBhbmQgJ20nIGZsYWdzIHRvICdjaW5vcHRpb25zJy4gKFNlcnZhdGl1cyBCcmFuZHQpCgpXaGVuIGRvaW5nICI6d2FsbCIgb3IgIjp3cWFsbCIgYW5kIGEgbW9kaWZpZWQgYnVmZmVyIGRvZXNuJ3QgaGF2ZSBhIG5hbWUsCm1lbnRpb24gaXRzIGJ1ZmZlciBudW1iZXIgaW4gdGhlIGVycm9yIG1lc3NhZ2UuCgoiOmZ1bmN0aW9uIE5hbWUiIGxpc3RzIHRoZSBmdW5jdGlvbiB3aXRoIGxpbmUgbnVtYmVycy4gIE1ha2VzIGl0IGVhc2llciB0bwpmaW5kIG91dCB3aGVyZSBhbiBlcnJvciBoYXBwZW5lZC4KCkluIG5vbi1ibG9ja3dpc2UgVmlzdWFsIG1vZGUsICJyIiByZXBsYWNlcyBhbGwgc2VsZWN0ZWQgY2hhcmFjdGVycyB3aXRoIHRoZQp0eXBlZCBvbmUsIGxpa2UgaW4gYmxvY2t3aXNlIFZpc3VhbCBtb2RlLgoKV2hlbiBlZGl0aW5nIHRoZSBsYXN0IGZpbGUgaW4gdGhlIGFyZ3VtZW50IGxpc3QgaW4gYW55IHdheSwgYWxsb3cgZXhpdGluZy4KUHJldmlvdXNseSB0aGlzIHdhcyBvbmx5IHBvc3NpYmxlIHdoZW4gZ2V0dGluZyB0byB0aGF0IGZpbGUgd2l0aCAiOm5leHQiIG9yCiI6bGFzdCIuCgpBZGRlZCB0aGUgJzEnIGZsYWcgdG8gJ2Zvcm1hdG9wdGlvbnMnLiAoVml0IFN0cmFkYWwpCkFkZGVkICduJyBmbGFnIGluICdmb3JtYXRvcHRpb25zJzogZm9ybWF0IGEgbnVtYmVyZWQgbGlzdC4KClN3YXAgZmlsZToKLSBXaGVuIGEgc3dhcCBmaWxlIGFscmVhZHkgZXhpc3RzLCBhbmQgdGhlIHVzZXIgc2VsZWN0cyAiRGVsZXRlIiBhdCB0aGUKICBBVFRFTlRJT04gcHJvbXB0LCB1c2UgdGhlIHNhbWUgIi5zd3AiIHN3YXBmaWxlLCB0byBhdm9pZCBjcmVhdGluZyBhICIuc3dvIgogIGZpbGUgd2hpY2ggd29uJ3QgYWx3YXlzIGJlIGZvdW5kLgotIFdoZW4gZ2l2aW5nIHRoZSBBVFRFTlRJT04gbWVzc2FnZSBhbmQgdGhlIGRhdGUgb2YgdGhlIGZpbGUgaXMgbmV3ZXIgdGhhbiB0aGUKICBkYXRlIG9mIHN3YXAgZmlsZSwgZ2l2ZSBhIHdhcm5pbmcgYWJvdXQgdGhpcy4KLSBNYWRlIHRoZSBpbmZvIGZvciBhbiBleGlzdGluZyBzd2FwIGZpbGUgYSBiaXQgc2hvcnRlciwgc28gdGhhdCBpdCBzdGlsbCBmaXRzCiAgb24gYSAyNCBsaW5lIHNjcmVlbi4KLSBJdCB3YXMgcG9zc2libGUgdG8gbWFrZSBhIHN5bWxpbmsgd2l0aCB0aGUgbmFtZSBvZiBhIHN3YXAgZmlsZSwgbGlua2luZyB0byBhCiAgZmlsZSB0aGF0IGRvZXNuJ3QgZXhpc3QuICBWaW0gd291bGQgdGhlbiBzaWxlbnRseSB1c2UgYW5vdGhlciBmaWxlIChpZiBvcGVuCiAgd2l0aCBPX0VYQ0wgcmVmdXNlcyBhIHN5bWxpbmspLiAgTm93IGNoZWNrIGZvciBhIHN5bWxpbmsgdG8gZXhpc3QuICBBbHNvIGRvCiAgYW5vdGhlciBjaGVjayBmb3IgYW4gZXhpc3Rpbmcgc3dhcCBmaWxlIGp1c3QgYmVmb3JlIGNyZWF0aW5nIGl0IHRvIGNhdGNoIGEKICBzeW1saW5rIGF0dGFjay4KClRoZSBnIENUUkwtRyBjb21tYW5kIGFsc28gd29ya3MgaW4gVmlzdWFsIG1vZGUgYW5kIGNvdW50cyB0aGUgbnVtYmVyIG9mIHdvcmRzLgooQ2hhc2UgVGluZ2xleSkKCkdpdmUgYW4gZXJyb3IgbWVzc2FnZSB3aGVuIHVzaW5nICdzaGVsbCcgYW5kIGl0J3MgZW1wdHkuCgpBZGRlZCB0aGUgcG9zc2liaWxpdHkgdG8gaW5jbHVkZSAiJXMiIGluICdzaGVsbHBpcGUnLgoKQWRkZWQgInVoZXgiIHZhbHVlIGZvciAnZGlzcGxheSc6IHNob3cgbm9uLXByaW50YWJsZSBjaGFyYWN0ZXJzIGFzIDx4eD4uClNob3cgdW5wcmludGFibGUgY2hhcmFjdGVycyB3aXRoIE5vblRleHQgaGlnaGxpZ2h0aW5nLCBhbHNvIGluIHRoZSBjb21tYW5kCmxpbmUuCgpXaGVuIGFza2VkIHRvIGRpc3BsYXkgdGhlIHZhbHVlIG9mIGEgaGlkZGVuIG9wdGlvbiwgdGVsbCBpdCdzIG5vdCBzdXBwb3J0ZWQuCgpXaW4zMjoKLSBXaGVuIGRyb3BwaW5nIGEgc2hvcnRjdXQgb24gZ3ZpbSAoLmxuayBmaWxlKSBlZGl0IHRoZSB0YXJnZXQsIG5vdCB0aGUKICBzaG9ydGN1dCBpdHNlbGYuICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQotIEFkZGVkIEMgdmVyc2lvbnMgb2YgdGhlIE9wZW5XaXRoVmltIGFuZCBTZW5kVG9WaW0gcHJvZ3JhbXMuIChXYWx0ZXIgQnJpc2NvZSkKLSBXaGVuICdzaGVsbCcgaXMgImNtZCIgb3IgImNtZC5leGUiLCBzZXQgJ3NoZWxscmVkaXInIHRvIHJlZGlyZWN0IHN0ZGVyciB0b28uCiAgQWxzbyBjaGVjayBmb3IgdGhlIFVuaXggc2hlbGwgbmFtZXMuCi0gV2hlbiAkSE9NRURSSVZFIGFuZCAkSE9NRVBBVEggYXJlIGRlZmluZWQsIHVzZSB0aGVtIHRvIGRlZmluZSAkSE9NRS4gIChDcmFpZwogIEJhcmtob3VzZSkKCldpbjMyIGNvbnNvbGUgdmVyc2lvbjoKLSBJbmNsdWRlcyB0aGUgdXNlciBhbmQgc3lzdGVtIG5hbWUgaW4gdGhlICI6dmVyc2lvbiIgbWVzc2FnZSwgd2hlbiBhdmFpbGFibGUuCiAgSXQgZ2VuZXJhdGVzIGEgcGF0aGRlZi5jIGZpbGUgZm9yIHRoaXMuICAoSm9uIE1pbmVyKQotIFNldCB0aGUgd2luZG93IGljb24gdG8gVmltJ3MgaWNvbiAob25seSBmb3IgV2luZG93cyAyMDAwKS4gIFdoaWxlIGV4ZWN1dGluZwogIGEgc2hlbGwgY29tbWFuZCwgbW9kaWZ5IHRoZSB3aW5kb3cgdGl0bGUgdG8gc2hvdyB0aGlzLiAgV2hlbiBleGl0aW5nLAogIHJlc3RvcmUgdGhlIGN1cnNvciBwb3NpdGlvbiB0b28uICAoQ3JhaWcgQmFya2hvdXNlKQotIFRoZSBXaW4zMiBjb25zb2xlIHZlcnNpb24gY2FuIGJlIGNvbXBpbGVkIHdpdGggT0xFIHN1cHBvcnQuICBJdCBjYW4gb25seQogIGZ1bmN0aW9uIGFzIGEgY2xpZW50LCBub3QgYXMgYW4gT0xFIHNlcnZlci4KCkVycm9yZm9ybWF0OgotIExldCAiJXAiIGluICdlcnJvcmZvcm1hdCcgKGNvbHVtbiBvZiBlcnJvciBpbmRpY2F0ZWQgYnkgYSByb3cgb2YgY2hhcmFjdGVycykKICBhbHNvIGFjY2VwdCBhIGxpbmUgb2YgZG90cy4KLSBBZGRlZCAiJXYiIGl0ZW0gaW4gJ2Vycm9yZm9ybWF0JzogVmlydHVhbCBjb2x1bW4gbnVtYmVyLiAoRGFuIFNoYXJwKQotIEFkZGVkIGEgZGVmYXVsdCAnZXJyb3Jmb3JtYXQnIHZhbHVlIGZvciBWTVMuIChKaW0gQnVzaCkKClRoZSAicCIgY29tbWFuZCBjYW4gbm93IGJlIHVzZWQgaW4gVmlzdWFsIG1vZGUuICBJdCBvdmVyd3JpdGVzIHRoZSBzZWxlY3RlZAp0ZXh0IHdpdGggdGhlIGNvbnRlbnRzIG9mIGEgcmVnaXN0ZXIuCgpIaWdobGlnaHQgdGhlIDw+IGl0ZW1zIGluIHRoZSBpbnRybyBtZXNzYWdlIHRvIG1ha2UgY2xlYXIgdGhleSBhcmUgc3BlY2lhbC4KCldoZW4gdXNpbmcgdGhlICJjIiBmbGFnIGZvciAiOnN1YnN0aXR1dGUiLCBhbGxvdyB0eXBpbmcgImwiIGZvciByZXBsYWNpbmcgdGhpcwppdGVtIGFuZCB0aGVuIHN0b3A6ICJsYXN0Ii4KCldoZW4gcHJpbnRpbmcgYSB2ZXJib3NlIG1lc3NhZ2UgYWJvdXQgc291cmNpbmcgYW5vdGhlciBmaWxlLCBwcmludCB0aGUgbGluZQpudW1iZXIuCgpXaGVuIHJlc2l6aW5nIHRoZSBWaW0gd2luZG93LCBkb24ndCB1c2UgJ2VxdWFsYWx3YXlzJy4gIEF2b2lkcyB0aGF0IG1ha2luZyB0aGUKVmltIHdpbmRvdyBzbWFsbGVyIG1ha2VzIHNwbGl0IHdpbmRvd3MgYmlnZ2VyLiAgQW5kIGl0J3Mgd2hhdCB0aGUgZG9jcyBzYXkuCgpXaGVuIHR5cGluZyBDVFJMLUQgaW4gSW5zZXJ0IG1vZGUsIGp1c3QgYWZ0ZXIgYW4gYXV0b2luZGVudCwgdGhlbiBoaXR0aW5nIENSCmtlcHQgdGhlIHJlbWFpbmluZyB3aGl0ZSBzcGFjZS4gIE5vdyBtYWRlIGl0IHdvcmsgbGlrZSBCUzogZGVsZXRlIHRoZQphdXRvaW5kZW50IHRvIGF2b2lkIGEgYmxhbmsgbm9uLWVtcHR5IGxpbmUgcmVzdWx0cy4KCkFkZGVkIGEgR2V0SHduZCgpIGNhbGwgdG8gdGhlIE9MRSBpbnRlcmZhY2UuICAoVmluY2UgTmVncmkpCgpNYWRlICI6bm9ybWFsIiB3b3JrIGluIGFuIGV2ZW50IGhhbmRsZXIuICBVc2VmdWwgd2hlbiBkcm9wcGluZyBhIGZpbGUgb24gVmltCmFuZCBmb3IgQ3Vyc29ySG9sZCBhdXRvY29tbWFuZHMuCgpGb3IgdGhlIE1TLVdpbmRvd3MgdmVyc2lvbiwgZG9uJ3QgY2hhbmdlIHRvIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIGZpbGUgd2hlbiBhCnNsYXNoIGlzIHVzZWQgaW5zdGVhZCBvZiBhIGJhY2tzbGFzaC4gIEV4cGxvcmVyIHNob3VsZCBhbHdheXMgdXNlIGEgYmFja3NsYXNoLAp0aGUgdXNlciBjYW4gdXNlIGEgc2xhc2ggd2hlbiB0eXBpbmcgdGhlIGNvbW1hbmQuCgpUaW1lc3RhbXBzOgotIFdoZW4gYSBidWZmZXIgd2FzIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0gYW5kIHJlZ2FpbmluZyBmb2N1cywgZ2l2ZSBhIGRpYWxvZwogIHRvIGFsbG93IHRoZSB1c2VyIHRvIHJlbG9hZCB0aGUgZmlsZS4gIE5vdyBhbHNvIGZvciBvdGhlciBHVUlzIHRoYW4KICBNUy1XaW5kb3dzLiAgQW5kIGFsc28gdXNlZCBpbiB0aGUgY29uc29sZSwgd2hlbiBjb21waWxlZCB3aXRoIGRpYWxvZwogIHN1cHBvcnQuCi0gSW5zcGVjdCB0aGUgZmlsZSBjb250ZW50cyB0byBmaW5kIG91dCBpZiBpdCByZWFsbHkgY2hhbmdlZCwgaWdub3JlCiAgc2l0dWF0aW9ucyB3aGVyZSBvbmx5IHRoZSB0aW1lIHN0YW1wIGNoYW5nZWQgKGUuZy4sIGNoZWNraW5nIHRoZSBmaWxlIG91dAogIGZyb20gQ1ZTKS4KLSBXaGVuIGNoZWNraW5nIHRoZSB0aW1lc3RhbXAsIGZpcnN0IGNoZWNrIGlmIHRoZSBmaWxlIHNpemUgY2hhbmdlZCwgdG8gYXZvaWQKICBhIGZpbGUgY29tcGFyZSB0aGVuLiAgTWFrZXMgaXQgcXVpY2tlciBmb3IgbGFyZ2UgKGxvZykgZmlsZXMgdGhhdCBhcmUKICBhcHBlbmRlZCB0by4KLSBEb24ndCBnaXZlIGEgd2FybmluZyBmb3IgYSBjaGFuZ2VkIG9yIGRlbGV0ZWQgZmlsZSB3aGVuICdidWZ0eXBlJyBpcyBzZXQuCi0gTm8gbG9uZ2VyIHdhcm4gZm9yIGEgY2hhbmdlZCBkaXJlY3RvcnkuICBUaGlzIGF2b2lkcyB0aGF0IHRoZSBmaWxlIGV4cGxvcmVyCiAgcHJvZHVjZXMgd2FybmluZ3MuCi0gQ2hlY2tpbmcgdGltZXN0YW1wcyBpcyBvbmx5IGRvbmUgZm9yIGJ1ZmZlcnMgdGhhdCBhcmUgbm90IGhpZGRlbi4gIFRoZXNlCiAgd2lsbCBiZSBjaGVja2VkIHdoZW4gdGhleSBiZWNvbWUgdW5oaWRkZW4uCi0gV2hlbiBjaGVja2luZyBmb3IgYSBmaWxlIGJlaW5nIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0sIGFsc28gY2hlY2sgaWYgdGhlCiAgZmlsZSBwZXJtaXNzaW9ucyBjaGFuZ2VkLiAgV2hlbiB0aGUgZmlsZSBjb250ZW50cyBkaWRuJ3QgY2hhbmdlIGJ1dCB0aGUKICBwZXJtaXNzaW9ucyBkaWQsIGdpdmUgYSB3YXJuaW5nLgotIEF2b2lkIGNoZWNraW5nIHRvbyBvZnRlbiwgb3RoZXJ3aXNlIHRoZSBkaWFsb2cga2VlcHMgcG9wcGluZyB1cCBmb3IgYSBsb2cKICBmaWxlIHRoYXQgc3RlYWRpbHkgZ3Jvd3MuCgpNYXBwaW5nIDxNLUE+IHdoZW4gJ2VuY29kaW5nJyBpcyAibGF0aW4xIiBhbmQgdGhlbiBzZXR0aW5nICdlbmNvZGluZycgdG8KInV0Zi04IiBjYXVzZXMgdGhlIGZpcnN0IGJ5dGUgb2YgYSBtdWx0aS1ieXRlIHRvIGJlIG1hcHBlZC4gIENhbiBjYXVzZSB2ZXJ5CmhhcmQgdG8gZmluZCBwcm9ibGVtcy4gIERpc2FsbG93IG1hcHBpbmcgcGFydCBvZiBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLgoKRm9yICI6cHl0aG9uIiBhbmQgIjp0Y2wiIGFjY2VwdCBhbiBpbi1saW5lIHNjcmlwdC4gKEpvaGFubmVzIFplbGxuZXIpCkFsc28gZm9yICI6cnVieSIgYW5kICI6cGVybCIuIChCZW5vaXQgQ2VycmluYSkKCk1hZGUgIjpzeW4gaW5jbHVkZSIgdXNlICdydW50aW1lcGF0aCcgd2hlbiB0aGUgZmlsZSBuYW1lIGlzIG5vdCBhIGZ1bGwgcGF0aC4KCldoZW4gJ3N3aXRjaGJ1ZicgY29udGFpbnMgInNwbGl0IiBhbmQgdGhlIGN1cnJlbnQgd2luZG93IGlzIGVtcHR5LCBkb24ndCBzcGxpdAp0aGUgd2luZG93LgoKVW5peDogQ2F0Y2ggU0lHUFdSIHRvIHByZXNlcnZlIGZpbGVzIHdoZW4gdGhlIHBvd2VyIGlzIGFib3V0IHRvIGdvIGRvd24uCgpTbmlmZiBpbnRlcmZhY2U6IChBbnRvbiBMZWhlcmJhdWVyKQotIGZpeGVkIHdpbmRvd3MgY29kZSwgZXNwLiB0aGUgZXZlbnQgaGFuZGxpbmcgc3R1ZmYKLSBhZGFwdGF0aW9ucyBmb3Igc25pZmYgNC54ICgkU05JRkZfRElSNCkKLSBzdXBwb3J0IGZvciBhZGRpbmcgc25pZmYgcmVxdWVzdHMgYXQgcnVudGltZQoKU3VwcG9ydCB0aGUgbm90YXRpb24gPEEteD4gYXMgYW4gYWxpYXMgZm9yIDxNLXg+LiAgVGhpcyBsb2dpY2FsLCBzaW5jZSB0aGUgQWx0CmtleSBpcyB1c2VkLgoKIjpmaW5kIiBhY2NlcHRzIGEgY291bnQsIHdoaWNoIG1lYW5zIHRoYXQgdGhlIGNvdW50J3RoIG1hdGNoIGluICdwYXRoJyBpcwp1c2VkLgoKIjpscyIgYW5kICI6YnVmZmVycyIgb3V0cHV0IHNob3dzIG1vZGlmaWVkL3JlYWRvbmx5L21vZGlmaWFibGUgZmxhZy4gIFdoZW4gYQpidWZmZXIgaXMgYWN0aXZlIHNob3cgImEiIGluc3RlYWQgb2Ygbm90aGluZy4gIFdoZW4gYSBidWZmZXIgaXNuJ3QgbG9hZGVkCnNob3cgbm90aGluZyBpbnN0ZWFkIG9mICItIi4KClVuaXggaW5zdGFsbDoKLSBXaGVuIGluc3RhbGxpbmcgdGhlIHRvb2xzLCBzZXQgYWJzb2x1dGUgcGF0aHMgaW4gdG9vbHMgc2NyaXB0cyBlZm1fcGVybC5wbAogIGFuZCBtdmUuYXdrLiAgQXZvaWRzIHRoYXQgdGhlIHVzZXIgaGFzIHRvIGVkaXQgdGhlc2UgZmlsZXMuCi0gSW5zdGFsbCBJY29ucyBmb3IgS0RFIHdoZW4gdGhlIGRpcmVjdG9yaWVzIGV4aXN0IGFuZCB0aGUgaWNvbnMgZG8gbm90IGV4aXN0CiAgeWV0LgoKQWRkZWQgaGFzKCJ3aW45NSIpLCB0byBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gTVMtV2luZG93cyA5NS85OC9NRSBhbmQKTlQvMjAwMC9YUCBpbiBhIFZpbSBzY3JpcHQuCgpXaGVuIGEgIjpjZCIgY29tbWFuZCB3YXMgdHlwZWQsIGVjaG8gdGhlIG5ldyBjdXJyZW50IGRpcmVjdG9yeS4gKERhbiBTaGFycCkKCldoZW4gdXNpbmcgIjp3aW5wb3MiIGJlZm9yZSB0aGUgR1VJIHdpbmRvdyBoYXMgYmVlbiBvcGVuZWQsIHJlbWVtYmVyIHRoZQp2YWx1ZXMgdW50aWwgaXQgaXMgb3BlbmVkLgoKSW4gdGhlICI6dmVyc2lvbiIgb3V0cHV0LCBhZGQgIi9keW4iIGZvciBmZWF0dXJlcyB0aGF0IGFyZSBkeW5hbWljYWxseSBsb2FkZWQuClRoaXMgaW5kaWNhdGVzIHRoZSBmZWF0dXJlIG1heSBub3QgYWx3YXlzIHdvcmsuCgpPbiBXaW5kb3dzIE5UIGl0IGlzIHBvc3NpYmxlIHRoYXQgYSBkaXJlY3RvcnkgaXMgcmVhZC1vbmx5LCBidXQgYSBmaWxlIGNhbiBiZQpkZWxldGVkLiAgV2hlbiBtYWtpbmcgYSBiYWNrdXAgYnkgcmVuYW1pbmcgdGhlIGZpbGUgYW5kICdiYWNrdXBkaXInIGRvZXNuJ3QKdXNlIHRoZSBjdXJyZW50IGRpcmVjdG9yeSwgdGhpcyBjYXVzZXMgdGhlIG9yaWdpbmFsIGZpbGUgdG8gYmUgZGVsZXRlZCwKd2l0aG91dCB0aGUgcG9zc2liaWxpdHkgdG8gY3JlYXRlIGEgbmV3IGZpbGUuICBHaXZlIGFuIGV4dHJhIGVycm9yIG1lc3NhZ2UKdGhlbiB0byB3YXJuIHRvIHVzZXIgYWJvdXQgdGhpcy4KCk1hZGUgQ1RSTC1SIENUUkwtTyBhdCB0aGUgY29tbWFuZCBsaW5lIHdvcmsgbGlrZSBDVFJMLVIgQ1RSTC1SLCBzbyB0aGF0IGl0J3MKY29uc2lzdGVudCB3aXRoIEluc2VydCBtb2RlLgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNPTVBJTEUgVElNRSBDSEFOR0VTCQkJCQkqY29tcGlsZS1jaGFuZ2VzLTYqCgpBbGwgZ2VuZXJhdGVkIGZpbGVzIGhhdmUgYmVlbiBtb3ZlZCBvdXQgb2YgdGhlICJzcmMiIGRpcmVjdG9yeS4gIFRoaXMgbWFrZXMgaXQKZWFzeSB0byBzZWUgd2hpY2ggZmlsZXMgYXJlIG5vdCBlZGl0ZWQgYnkgaGFuZC4gIFRoZSBmaWxlcyBnZW5lcmF0ZWQgYnkKY29uZmlndXJlIGFyZSBub3cgaW4gdGhlICJzcmMvYXV0byIgZGlyZWN0b3J5LiAgRm9yIFVuaXgsIGNvbXBpbGVkIG9iamVjdApmaWxlcyBnbyBpbiB0aGUgb2JqZWN0cyBkaXJlY3RvcnkuCgpUaGUgc291cmNlIGFyY2hpdmUgd2FzIG92ZXIgdGhlIDEuNE0gZmxvcHB5IGxpbWl0LiAgVGhlIGFyY2hpdmVzIGFyZSBub3cgc3BsaXQKdXAgaW50byB0d28gcnVudGltZSBhbmQgdHdvIHNvdXJjZSBhcmNoaXZlcy4gIEFsc28gcHJvdmlkZSBhIGJ6aXAyIGNvbXByZXNzZWQKYXJjaGl2ZSB0aGF0IGNvbnRhaW5zIGFsbCB0aGUgc291cmNlcyBhbmQgcnVudGltZSBmaWxlcy4KCkFkZGVkICJyZWNvbmZpZyIgYXMgYSB0YXJnZXQgZm9yIG1ha2UuICBVc2VmdWwgd2hlbiBjaGFuZ2luZyBzb21lIG9mIHRoZQphcmd1bWVudHMgdGhhdCByZXF1aXJlIGZsdXNoaW5nIHRoZSBjYWNoZSwgc3VjaCBhcyBzd2l0Y2hpbmcgZnJvbSBHVEsgdG8KTW90aWYuICBBZGp1c3RlZCB0aGUgbWVhbmluZyBvZiBHVUlfSU5DX0xPQyBhbmQgR1VJX0xJQl9MT0MgdG8gYmUgY29uc2lzdGVudApvdmVyIGRpZmZlcmVudCBHVUlzLgoKQWRkZWQgc3JjL1JFQURNRS50eHQgdG8gZ2l2ZSBhbiBvdmVydmlldyBvZiB0aGUgbWFpbiBwYXJ0cyBvZiB0aGUgc291cmNlIGNvZGUuCgpUaGUgVW5peCBNYWtlZmlsZSBub3cgZnVsbHkgc3VwcG9ydHMgdXNpbmcgJChERVNURElSKSB0byBpbnN0YWxsIHRvIGEgc3BlY2lmaWMKbG9jYXRpb24uICBSZXBsYWNlcyB0aGUgbWFudWFsIHNldHRpbmcgb2YgKkVORExPQyB2YXJpYWJsZXMuCgpBZGRlZCB0aGUgcG9zc2liaWxpdHkgZm9yIGEgbWFpbnRhaW5lciBvZiBhIGJpbmFyeSB2ZXJzaW9uIHRvIGluY2x1ZGUgaGlzCmUtbWFpbCBhZGRyZXNzIHdpdGggdGhlIC0td2l0aC1jb21waWxlZGJ5IGNvbmZpZ3VyZSBhcmd1bWVudC4KCkluY2x1ZGVkIGZlYXR1cmVzIGFyZSBub3cgZ3JvdXBlZCBpbiAidGlueSIsICJzbWFsbCIsICJub3JtYWwiLCAiYmlnIiBhbmQKImh1Z2UiLiAgVGhpcyByZXBsYWNlcyAibWluLWZlYXR1cmVzIiBhbmQgIm1heC1mZWF0dXJlcyIuICBVc2luZyAidGlueSIKZGlzYWJsZXMgbXVsdGlwbGUgd2luZG93cyBmb3IgYSByZWFsbHkgc21hbGwgVmltLgoKRm9yIHRoZSB0aW55IHZlcnNpb24gb3Igd2hlbiBGRUFUX1dJTkRPV1MgaXMgbm90IGRlZmluZWQ6IEZpcnN0d2luIGFuZCBsYXN0d2luCmFyZSBlcXVhbCB0byBjdXJ3aW4gYW5kIGRvbid0IHVzZSB3X25leHQgYW5kIHdfcHJldi4KCkFkZGVkIHRoZSArbGlzdGNtZHMgZmVhdHVyZS4gIENhbiBiZSB1c2VkIHRvIGNvbXBpbGUgd2l0aG91dCB0aGUgVmltIGNvbW1hbmRzCnRoYXQgbWFuaXB1bGF0ZSB0aGUgYnVmZmVyIGxpc3QgYW5kIGFyZ3VtZW50IGxpc3QgKHRoZSBidWZmZXIgbGlzdCBpdHNlbGYgaXMKc3RpbGwgdGhlcmUsIGNhbid0IGRvIHdpdGhvdXQgaXQpLgoKQWRkZWQgdGhlICt2cmVwbGFjZSBmZWF0dXJlLiAgSXQgaXMgZGlzYWJsZWQgaW4gdGhlICJzbWFsbCIgdmVyc2lvbiB0byBhdm9pZAp0aGF0IHRoZSAxNiBiaXQgRE9TIHZlcnNpb24gcnVucyBvdXQgb2YgbWVtb3J5LgoKUmVtb3ZlZCBHVEsrIHN1cHBvcnQgZm9yIHZlcnNpb25zIG9sZGVyIHRoYW4gMS4xLjE2LgoKVGhlIGNvbmZpZ3VyZSBjaGVja3MgZm9yIHVzaW5nIFBUWXMgaGF2ZSBiZWVuIGltcHJvdmVkLiAgQ29kZSB0YWtlbiBmcm9tIGEKcmVjZW50IHZlcnNpb24gb2Ygc2NyZWVuLgoKQWRkZWQgY29uZmlndXJlIG9wdGlvbnMgdG8gaW5zdGFsbCBWaW0sIEV4IGFuZCBWaWV3IHVuZGVyIGFub3RoZXIgbmFtZSAoZS5nLiwKdmltNiwgZXg2IGFuZCB2aWV3NikuCgpBZGRlZCAiLS13aXRoLWdsb2JhbC1ydW50aW1lIiBjb25maWd1cmUgYXJndW1lbnQuICBBbGxvd3Mgc3BlY2lmeWluZyB0aGUKZ2xvYmFsIGRpcmVjdG9yeSB1c2VkIGluIHRoZSAncnVudGltZXBhdGgnIGRlZmF1bHQuCgpNYWRlIGVuYWJsaW5nIHRoZSBTTmlGRisgaW50ZXJmYWNlIHBvc3NpYmxlIHdpdGggYSBjb25maWd1cmUgYXJndW1lbnQuCgpDb25maWd1cmUgbm93IGFsd2F5cyBjaGVja3MgL3Vzci9sb2NhbC9saWIgZm9yIGxpYnJhcmllcyBhbmQKL3Vzci9sb2NhbC9pbmNsdWRlIGZvciBpbmNsdWRlIGZpbGVzLiAgSGVscHMgZmluZGluZyB0aGUgc3R1ZmYgZm9yIGljb252KCkgYW5kCmdldHRleHQoKS4KCk1vdmVkIHRoZSBjb21tYW5kIGxpbmUgaGlzdG9yeSBzdHVmZiBpbnRvIHRoZSArY21kbGluZV9oaXN0IGZlYXR1cmUsIHRvCmV4Y2x1ZGUgdGhlIGNvbW1hbmQgbGluZSBoaXN0b3J5IGZyb20gdGhlIHRpbnkgdmVyc2lvbi4KCk1TLVdpbmRvd3M6IE1vdmVkIGNvbW1vbiBmdW5jdGlvbnMgZnJvbSBXaW4xNiBhbmQgV2luMzIgdG8gb3NfbXN3aW4uYy4gIEF2b2lkcwpoYXZpbmcgdG8gY2hhbmdlIHR3byBmaWxlcyBmb3Igb25lIHByb2JsZW0uICAoVmluY2UgTmVncmkpCgpNb3ZlZCBjb21tb24gY29kZSBmcm9tIGd1aV93MTYuYyBhbmQgZ3VpX3czMi5jIHRvIGd1aV93NDguYyAoVmluY2UgTmVncmkpCgpUaGUganVtcGxpc3QgaXMgbm93IGEgc2VwYXJhdGUgZmVhdHVyZS4gIEl0IGlzIGRpc2FibGVkIGZvciB0aGUgInNtYWxsIgp2ZXJzaW9uICgxNiBiaXQgTVMtRE9TKS4KClJlbmFtZWQgYWxsIHR5cGVzIGVuZGluZyBpbiBfdCB0byBlbmQgaW4gX1QuICBBdm9pZHMgcG90ZW50aWFsIHByb2JsZW1zIHdpdGgKc3lzdGVtIHR5cGVzLgoKQWRkZWQgYSBjb25maWd1cmUgY2hlY2sgZm9yIFgxMSBoZWFkZXIgZmlsZXMgdGhhdCBpbXBsaWNpdGx5IGRlZmluZSB0aGUgcmV0dXJuCnR5cGUgdG8gaW50LiAoU3RldmUgV2FsbCkKCiJtYWtlIGRvc2xhbmciIGluIHRoZSB0b3AgZGlyZWN0b3J5IG1ha2VzIGFuIGFyY2hpdmUgd2l0aCB0aGUgbWVudSBhbmQgLm1vCmZpbGVzIGZvciBXaW5kb3dzLiAgVGhpcyB1c2VzIHRoZSBmaWxlcyBnZW5lcmF0ZWQgb24gVW5peCwgdGhlc2Ugc2hvdWxkIHdvcmsKb24gTVMtV2luZG93cyBhcyB3ZWxsLgoKTWVyZ2VkIGEgbGFyZ2UgcGFydCBvZiBvc192bXMuYyB3aXRoIG9zX3VuaXguYy4gIFRoZSBjb2RlIHdhcyBkdXBsaWNhdGVkIGluCnRoZSBwYXN0IHdoaWNoIG1hZGUgbWFpbnRlbmFuY2UgbW9yZSB3b3JrLiAgKFpvbHRhbiBBcnBhZGZmeSkKClVwZGF0ZWQgdGhlIEJvcmxhbmQgQyB2ZXJzaW9uIDUgTWFrZWZpbGU6IChEYW4gU2hhcnApCi0gRml4ZWQgdGhlIFBlcmwgYnVpbGQKLSBBZGRlZCBweXRob24gYW5kIHRjbCBidWlsZHMKLSBBZGRlZCBkeW5hbWljIHBlcmwgYW5kIGR5bmFtaWMgcHl0aG9uIGJ1aWxkcwotIEFkZGVkIHVuaW5zdGFsLmV4ZSBidWlsZAotIFVzZSAieWVzIiBhbmQgIm5vIiBmb3IgdGhlIG9wdGlvbnMsIGxpa2UgaW4gTWFrZV9tdmMubWFrLgoKV2luMzI6IE1lcmdlZCBNYWtlX2d2Yy5tYWsgYW5kIE1ha2Vfb3ZjLm1hayBpbnRvIG9uZSBmaWxlOiBNYWtlX2l2Yy5tYWsuICBJdCdzCm11Y2ggc21hbGxlciwgbWFueSB1bm5lY2Vzc2FyeSB0ZXh0IGhhcyBiZWVuIHJlbW92ZWQuIChXYWx0ZXIgQnJpc2NvZSkKQWRkZWQgTWFrZV9kdmMubWFrIHRvIGJlIGFibGUgdG8gZGVidWcgZXhlIGdlbmVyYXRlZCB3aXRoIE1ha2VfbXZjLm1hayBpbgpNUy1EZXZzdHVkaW8uIChXYWx0ZXIgQnJpc2NvZSkKCk1TLVdpbmRvd3M6IFRoZSBiaWcgZ3ZpbS5leGUsIHdoaWNoIGluY2x1ZGVzIE9MRSwgbm93IGFsc28gaW5jbHVkZXMKZHluYW1pY2FsbHkgbG9hZGVkIFRjbCwgUGVybCBhbmQgUHl0aG9uLiAgVGhpcyB1c2VzIEFjdGl2ZVBlcmwgNS42LjEsCkFjdGl2ZVB5dGhvbiAyLjEuMSBhbmQgQWN0aXZlVENMIDguMy4zCgpBZGRlZCBBQ19FWEVFWFQgdG8gY29uZmlndXJlLmluLCB0byBjaGVjayBpZiB0aGUgZXhlY3V0YWJsZSBuZWVkcyAiLmV4ZSIgZm9yCkN5Z3dpbiBvciBNaW5nVy4gIFJlbmFtZWQgU1VGRklYIHRvIEVYRUVYVCBpbiBNYWtlZmlsZS4KCldpbjMyOiBMb2FkIGNvbWRsZzMyLmRsbCBkZWxheWVkIGZvciBmYXN0ZXIgc3RhcnR1cC4gIE9ubHkgd2hlbiB1c2luZyBWQyA2LgooVmlwaW4gQXJhdmluZCkKCldpbjMyOiBXaGVuIGNvbXBpbGluZyB3aXRoIEJvcmxhbmQsIGFsbG93IHVzaW5nIElNRS4gKFlhc3VoaXJvIE1hdHN1bW90bykKCldpbjMyOiBBZGRlZCBNYWtlZmlsZSBmb3IgQm9ybGFuZCA1IHRvIGNvbXBpbGUgZ3ZpbWV4dC5kbGwuIChZYXN1aGlybwpNYXRzdW1vdG8pCgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KQlVHIEZJWEVTCQkJCQkJKmJ1Zy1maXhlcy02KgoKV2hlbiBjaGVja2luZyB0aGUgY29tbWFuZCBuYW1lIGZvciAiZ3ZpbSIsICJleCIsIGV0Yy4gaWdub3JlIGNhc2UuICBSZXF1aXJlZApmb3Igc3lzdGVtcyB3aGVyZSBjYXNlIGlzIGlnbm9yZWQgaW4gY29tbWFuZCBuYW1lcy4KClNlYXJjaCBwYXR0ZXJuICJbYS1jLWVdIiBhbHNvIG1hdGNoZWQgYSAnZCcgYW5kIGRpZG4ndCBtYXRjaCBhICctJy4KCldoZW4gZG91YmxlLWNsaWNraW5nIGluIGFub3RoZXIgd2luZG93LCB3YXNuJ3QgcmVjb2duaXplZCBhcyBkb3VibGUgY2xpY2ssCmJlY2F1c2UgdG9wbGluZSBpcyBkaWZmZXJlbnQuICBBZGRlZCBzZXRfbW91c2VfdG9wbGluZSgpLgoKVGhlIEJST0tFTl9MT0NBTEUgY2hlY2sgd2FzIGJyb2tlbi4gIChNYXJjaW4gRGFsZWNraSkKCldoZW4gInRfQ28iIGlzIHNldCwgdGhlIGRlZmF1bHQgY29sb3JzIHJlbWFpbiB0aGUgc2FtZSwgdGh1cyB3cm9uZy4gIFJlc2V0IHRoZQpjb2xvcnMgYWZ0ZXIgY2hhbmdpbmcgInRfQ28iLiAoU3RldmUgV2FsbCkKCldoZW4gZXhpdGluZyB3aXRoICI6d3FhbGwiIHRoZSBtZXNzYWdlcyBhYm91dCB3cml0aW5nIGZpbGVzIGNvdWxkIG92ZXJ3cml0ZQplYWNoIG90aGVyIGFuZCBiZSBsb3N0IGZvcmV2ZXIuCgpXaGVuIHN0YXJ0aW5nIFZpbSB3aXRoIGFuIGV4dHJlbWVseSBsb25nIGZpbGUgbmFtZSAoYXJvdW5kIDEwMjQgY2hhcmFjdGVycykgaXQKd291bGQgY3Jhc2guICBBZGRlZCBhIGZldyBjaGVja3MgdG8gYXZvaWQgYnVmZmVyIG92ZXJmbG93cy4KCkNUUkwtRSBjb3VsZCBnZXQgc3R1Y2sgaW4gYSBmaWxlIHdpdGggdmVyeSBsb25nIGxpbmVzLgoKIjphdSBzeW50YXg8VGFiPiIgZXhwYW5kZWQgZXZlbnQgbmFtZXMgd2hpbGUgaXQgc2hvdWxkIGV4cGFuZCBncm91cHMgc3RhcnRpbmcKd2l0aCAic3ludGF4Ii4KCldoZW4gZXhwYW5kaW5nIGEgZmlsZSBuYW1lIGNhdXNlZCBhbiBlcnJvciAoZS5nLiwgZm9yIDxhbWF0Y2g+KSBpdCB3YXMKcHJvZHVjZWQgZXZlbiB3aGVuIGluc2lkZSBhbiAiaWYgMCIuCgonY2luZGVudCcgZm9ybWF0dGVkIEMgY29tbWVudHMgZGlmZmVyZW50bHkgZnJvbSB3aGF0IHRoZSAnY29tbWVudHMnIG9wdGlvbgpzcGVjaWZpZWQuIChTdGV2ZSBXYWxsKQoKRGVmYXVsdCBmb3IgJ2dyZXBwcmcnIGRpZG4ndCBpbmNsdWRlIHRoZSBmaWxlIG5hbWUgd2hlbiBvbmx5IGdyZXBwaW5nIGluIG9uZQpmaWxlLiAgTm93IC9kZXYvbnVsbCBoYXMgYmVlbiBhZGRlZCBmb3IgVW5peC4KCk9wZW5pbmcgdGhlIG9wdGlvbiB3aW5kb3cgdHdpY2UgY2F1c2VkIHRyb3VibGUuICBOb3cgdGhlIGN1cnNvciBnb2VzIHRvIHRoZQpleGlzdGluZyBvcHRpb24gd2luZG93LgoKIjpzdmlldyIgYW5kICI6dmlldyIgZGlkbid0IHNldCAncmVhZG9ubHknIGZvciBhbiBleGlzdGluZyBidWZmZXIuICBOb3cgZG8gc2V0CidyZWFkb25seScsIHVubGVzcyB0aGUgYnVmZmVyIGlzIGFsc28gZWRpdGVkIGluIGFub3RoZXIgd2luZG93LgoKR1RLIEdVSTogV2hlbiAnZ3Vpb3B0aW9ucycgZXhjbHVkZWQgJ2cnLCB0aGUgbW9yZSBwcm9tcHQgY2F1c2VkIHRoZSB0b29sYmFyCmFuZCBtZW51YmFyIHRvIGRpc2FwcGVhciBhbmQgcmVzaXplIHRoZSB3aW5kb3cgKHdoaWNoIGNsZWFycyB0aGUgdGV4dCkuCk5vdyBhbHdheXMgZ3JleS1vdXQgdGhlIHRvcGxldmVsIG1lbnVzIHRvIGF2b2lkIHRoYXQgdGhlIG1lbnViYXIgY2hhbmdlcyBzaXplCm9yIGRpc2FwcGVhcnMuCgpXaGVuIHJlLXVzaW5nIHRoZSBjdXJyZW50IGJ1ZmZlciBmb3IgYSBuZXcgYnVmZmVyLCBidWZmZXItbG9jYWwgdmFyaWFibGVzIHdlcmUKbm90IGRlbGV0ZWQuCgpHVUk6IHdoZW4gJ3Njcm9sbG9mZicgaXMgMCBkcmFnZ2luZyB0aGUgbW91c2UgYWJvdmUgdGhlIHdpbmRvdyBkaWRuJ3QgY2F1c2UgYQpkb3duIHNjcm9sbC4gIE5vdyBwYXNzIG9uIGEgbW91c2UgZXZlbnQgd2l0aCBtb3VzZV9yb3cgc2V0IHRvIC0xLgoKV2luMzI6IENvbnNvbGUgdmVyc2lvbiBkaWRuJ3Qgd29yayBvbiB0ZWxuZXQsIGJlY2F1c2Ugb2Ygc3dpdGNoaW5nIGJldHdlZW4gdHdvCmNvbnNvbGUgc2NyZWVucy4gIE5vdyB1c2Ugb25lIGNvbnNvbGUgc2NyZWVuIGFuZCBzYXZlL3Jlc3RvcmUgdGhlIGNvbnRlbnRzCndoZW4gbmVlZGVkLiAgKENyYWlnIEJhcmtob3VzZSkKCldoZW4gcmVhZGluZyBhIGZpbGUgdGhlIG1hZ2ljIG51bWJlciBmb3IgZW5jcnlwdGlvbiB3YXMgaW5jbHVkZWQgaW4gdGhlIGZpbGUKbGVuZ3RoLiAoQW50b25pbyBDb2xvbWJvKQoKVGhlIHF1aWNrZml4IHdpbmRvdyBjb250YWluZWQgbGVhZGluZyB3aGl0ZXNwYWNlIGFuZCBOVUxzIGZvciBtdWx0aS1saW5lCm1lc3NhZ2VzLiAoRGF2aWQgSGFycmlzb24pCgpXaGVuIHVzaW5nIGNzY29wZSwgcmVkdW5kYW50IHRhZ3Mgd2VyZSByZW1vdmVkLiAgVGhpcyBjYXVzZWQgYSBudW1iZXJpbmcKcHJvYmxlbSwgYmVjYXVzZSB0aGV5IHdlcmUgYWxsIGxpc3RlZC4gIERvbid0IHJlbW92ZSByZWR1bmRhbnQgY3Njb3BlIHRhZ3MuCihEYXZpZCBCdXN0b3MpLgoKQ3Njb3BlOiBUZXN0IGZvciB3aGljaCBtYXRjaGVzIGFyZSBpbiB0aGUgY3VycmVudCBidWZmZXIgc29tZXRpbWVzIGZhaWxlZCwKY2F1c2luZyBhIGp1bXAgdG8gYW5vdGhlciBtYXRjaCB0aGFuIHNlbGVjdGVkLiAoRGF2aWQgQnVzdG9zKQoKV2luMzI6IEJ1ZmZlciBvdmVyZmxvdyB3aGVuIGFkZGluZyBhIGNoYXJzZXQgbmFtZSBpbiBhIGZvbnQuCgondGl0bGVzdHJpbmcnIGFuZCAnaWNvbnN0cmluZycgd2VyZSBldmFsdWF0aW5nIGFuIGV4cHJlc3Npb24gaW4gdGhlIGN1cnJlbnQKY29udGV4dCwgd2hpY2ggY291bGQgYmUgYSB1c2VyIGZ1bmN0aW9uLCB3aGljaCBpcyBhIHByb2JsZW0gZm9yIGxvY2FsCnZhcmlhYmxlcyB2cyBnbG9iYWwgdmFyaWFibGVzLgoKV2luMzIgR1VJOiBNYXBwaW5nIDxNLUY+IGRpZG4ndCB3b3JrLiAgTm93IGhhbmRsZSBTSElGVCBhbmQgQ1RSTCBpbgpfT25TeXNDaGFyKCkuCgpXaW4zMiBHVUk6IChvbiBubyBmaWxlKSwgOnZzPENSPjpxPENSPiBsZWZ0IGEgdHJhaWwgb2YgcGl4ZWxzIGRvd24gdGhlIG1pZGRsZS4KQ291bGQgYWxzbyBoYXBwZW4gZm9yIHRoZSBydWxlci4gIHNjcmVlbl9wdXRzKCkgZGlkbid0IGNsZWFyIHRoZSByaWdodCBjaGFyIGluClNjcmVlbkxpbmVzW10gZm9yIHRoZSBib2xkIHRyaWNrLgoKV2luMzI6ICI6JSFzb3J0fHVuaXEiIGRpZG4ndCB3b3JrLCBiZWNhdXNlIHRoZSBpbnB1dCBmaWxlIG5hbWUgdG91Y2hlcyB0aGUKInwiLiAgSW5zZXJ0IGEgc3BhY2UgYmVmb3JlIHRoZSAifCIuCgpPUy8yOiBFeHBhbmRpbmcgd2lsZGNhcmRzIGluY2x1ZGVkIG5vbi1leGlzdGluZyBmaWxlcy4gIENhdXNlZCAiOnJ1bnRpbWUiIHRvCmZhaWwsIHdoaWNoIGNhdXNlZCBzeW50YXggaGlnaGxpZ2h0aW5nIHRvIGZhaWwuCgpQYXN0aW5nIGEgcmVnaXN0ZXIgY29udGFpbmluZyBDVFJMLVIgb24gdGhlIGNvbW1hbmQgbGluZSBjb3VsZCBjYXVzZSBhbgplbmRsZXNzIGxvb3AgdGhhdCBjYW4ndCBiZSBpbnRlcnJ1cHRlZC4gIE5vdyBpdCBjYW4gYmUgc3RvcHBlZCB3aXRoIENUUkwtQy4KCldoZW4gJ3ZlcmJvc2UnIGlzIHNldCwgYSBtZXNzYWdlIGZvciBmaWxlIHJlYWQvd3JpdGUgY291bGQgb3ZlcndyaXRlIHRoZQpwcmV2aW91cyBtZXNzYWdlLgpXaGVuICd2ZXJib3NlJyBpcyBzZXQsIHRoZSBoZWFkZXIgZnJvbSAiOnNlbGVjdCIgd2FzIHB1dCBhZnRlciB0aGUgbGFzdAptZXNzYWdlLiAgTm93IHN0YXJ0IGEgbmV3IGxpbmUuCgpUaGUgaGl0LWVudGVyIHByb21wdCByZWFjdGVkIHRvIHRoZSByZXNwb25zZSBvZiB0aGUgdF9SViBzdHJpbmcsIGNhdXNpbmcKbWVzc2FnZXMgYXQgc3RhcnR1cCB0byBkaXNhcHBlYXIuCgpXaGVuIHRfQ28gd2FzIHNldCB0byAxLCBjb2xvcnMgd2VyZSBzdGlsbCB1c2VkLiAgTm93IG9ubHkgdXNlIGNvbG9yIHdoZW4gdF9Dbwo+IDEuCgpMaXN0aW5nIGZ1bmN0aW9ucyB3aXRoICI6ZnVuY3Rpb24iIGRpZG4ndCBxdWl0IHdoZW4gJ3EnIG9yICc6JyB3YXMgdHlwZWQgYXQKdGhlIG1vcmUgcHJvbXB0LgoKVXNlIG1rc3RlbXAoKSBpbnN0ZWFkIG9mIG1rdGVtcCgpIHdoZW4gaXQncyBhdmFpbGFibGUsIGF2b2lkcyBhIHdhcm5pbmcgZm9yCmxpbmtpbmcgb24gRnJlZUJTRC4KCldoZW4gZG9pbmcgSW5zZXJ0IG1vZGUgY29tcGxldGlvbiBpdCdzIHBvc3NpYmxlIHRoYXQgYl9zZm5hbWUgaXMgTlVMTC4gIERvbid0CmdpdmUgaXQgdG8gcHJpbnRmKCkgZm9yIHRoZSAiU2Nhbm5pbmciIG1lc3NhZ2UuCgoiOnNldCBydW50aW1lcGF0aC09JFZJTVJVTlRJTUUiIGRpZG4ndCB3b3JrLCBiZWNhdXNlIGV4cGFuc2lvbiBvZiB3aWxkY2FyZHMKd2FzIGRvbmUgYWZ0ZXIgdHJ5aW5nIHRvIHJlbW92ZSB0aGUgc3RyaW5nLiAgTm93IGZvciAiOnNldCBvcHQrPXZhbCIgYW5kICI6c2V0Cm9wdC09dmFsIiB0aGUgZXhwYW5zaW9uIG9mIHdpbGRjYXJkcyBpcyBkb25lIGJlZm9yZSBhZGRpbmcgb3IgcmVtb3ZpbmcgInZhbCIuCgpVc2luZyBDVFJMLVYgd2l0aCB0aGUgInIiIGNvbW1hbmQgd2l0aCBhIGJsb2Nrd2lzZSBWaXN1YWwgc2VsZWN0aW9uIGluc2VydGVkIGEKQ1RSTC1WIGluc3RlYWQgb2YgZ2V0dGluZyBhIHNwZWNpYWwgY2hhcmFjdGVyLgoKVW5peDogQ2hhbmdlZCB0aGUgb3JkZXIgb2YgbGlicmFyaWVzOiBQdXQgLWxYZG1jcCBhZnRlciAtbFgxMSBhbmQgLWxTTSAtbElDRQphZnRlciAtbFhkbWNwLiAgU2hvdWxkIGZpeCBsaW5rIHByb2JsZW0gb24gSFAtVVggMTAuMjAuCgpEb24ndCByZW1vdmUgdGhlIGxhc3QgIi1sbSIgZnJvbSB0aGUgbGluayBsaW5lLiAgVmltIG1heSBsaW5rIGJ1dCBmYWlsIGxhdGVyCndoZW4gdGhlIEdVSSBzdGFydHMuCgpXaGVuIHRoZSBzaGVsbCByZXR1cm5zIHdpdGggYW4gZXJyb3Igd2hlbiB0cnlpbmcgdG8gZXhwYW5kIHdpbGRjYXJkcywgZG8KaW5jbHVkZSB0aGUgcGF0dGVybiB3aGVuIHRoZSAiRVdfTk9URk9VTkQiIGZsYWcgd2FzIHNldC4KV2hlbiBleHBhbmRpbmcgd2lsZGNhcmRzIHdpdGggdGhlIHNoZWxsIGZhaWxzLCBnaXZlIGEgY2xlYXIgZXJyb3IgbWVzc2FnZQppbnN0ZWFkIG9mIGp1c3QgIjEgcmV0dXJuZWQiLgoKU2VsZWN0aW5nIGEgVmlzdWFsIGJsb2NrLCB3aXRoIHRoZSBzdGFydCBwYXJ0bHkgb24gYSBUYWIsIGRlbGV0aW5nIGl0IGxlYXZlcwp0aGUgY3Vyc29yIHRvbyBmYXIgdG8gdGhlIGxlZnQuICBDYXVzZXMgInMiIHRvIHdvcmsgaW4gdGhlIHdyb25nIHBvc2l0aW9uLgoKUG91bmQgc2lnbiBpbiBub3JtYWwuYyBjYXVzZWQgdHJvdWJsZSBvbiBzb21lIGNvbXBpbGVycy4gIFVzZSAweEEzIGluc3RlYWQuCgpXYXJuaW5nIGZvciBjaGFuZ2luZyBhIHJlYWQtb25seSBmaWxlIHdhc24ndCBnaXZlbiB3aGVuICdpbnNlcnRtb2RlJyB3YXMgc2V0LgoKV2luMzI6IFdoZW4gJ3NoZWxseHF1b3RlJyBpcyBzZXQgdG8gYSBkb3VibGUgcXVvdGUgKGUuZy4sIHVzaW5nIGNzaCksICI6IXN0YXJ0Cm5vdGVwYWQgZmlsZSIgZG9lc24ndCB3b3JrLiAgUmVtb3ZlIHRoZSBkb3VibGUgcXVvdGVzIGFkZGVkIGJ5ICdzaGVsbHhxdW90ZScKd2hlbiB1c2luZyAiOiFzdGFydCIuIChQYXZvbCBKdWhhcykKClRoZSAiPGYtYXJncz4iIGFyZ3VtZW50IG9mICI6Y29tbWFuZCIgZGlkbid0IGFjY2VwdCBUYWJzIGZvciB3aGl0ZSBzcGFjZS4KQWxzbywgZG9uJ3QgYWRkIGFuIGVtcHR5IGFyZ3VtZW50IHdoZW4gdGhlcmUgYXJlIHRyYWlsaW5nIGJsYW5rcy4KCiI6ZSB0ZXN0XFxqZSIgZWRpdGVkICJ0ZXN0XGplIiwgYnV0ICI6bmV4dCB0ZXN0XFxqZSIgZWRpdGVkICJ0ZXN0amUiLgpCYWNrc2xhc2hlcyB3ZXJlIHJlbW92ZWQgb25lIHRpbWUgdG9vIG1hbnkgZm9yICI6bmV4dCIuCgpWTVM6ICJnZiIgZGlkbid0IHdvcmsgcHJvcGVybHkuICBVc2Ugdm1zX2ZpeGZpbGVuYW1lKCkgdG8gdHJhbnNsYXRlIHRoZSBmaWxlCm5hbWUuIChab2x0YW4gQXJwYWRmZnkpCgpBZnRlciAiOmhpIE5vcm1hbCBjdGVybWJnPWJsYWNrIGN0ZXJtZmc9d2hpdGUiIGFuZCBzdXNwZW5kaW5nIFZpbSBub3QgYWxsCmNoYXJhY3RlcnMgYXJlIHJlZHJhd24gd2l0aCB0aGUgcmlnaHQgYmFja2dyb3VuZC4KCldoZW4gZG9pbmcgIm1ha2UgdGVzdCIgd2l0aG91dCArZXZhbCBvciArd2luZG93cyBmZWF0dXJlLCBtYW55IHRlc3RzIGZhaWxlZC4KTm93IGhhdmUgdGVzdDEgZ2VuZXJhdGUgYSBzY3JpcHQgdG8gY29weSB0aGUgY29ycmVjdCBvdXRwdXQsIHNvIHRoYXQgYSB0ZXN0CnRoYXQgZG9lc24ndCB3b3JrIGlzIHNraXBwZWQuCgpPbiBGcmVlQlNEIHRoZSBQZXJsIGludGVyZmFjZSBhZGRlZCAiLWxjIiB0byB0aGUgbGluayBjb21tYW5kIGFuZCBQeXRob24gYWRkZWQKIi1wdGhyZWFkIi4gIFRoZXNlIHR3byBkb24ndCB3b3JrIHRvZ2V0aGVyLCBiZWNhdXNlIHRoZSBsaWJjX3IgbGlicmFyeSBzaG91bGQKYmUgdXNlZC4gIFJlbW92ZWQgIi1sYyIgZnJvbSBQZXJsLCBpdCBzaG91bGQgbm90IGJlIG5lZWRlZC4KQWxzbzogQWRkICItcHRocmVhZCIgdG8gJExJQlMsIHNvIHRoYXQgdGhlIGNoZWNrcyBmb3IgZnVuY3Rpb25zIGlzIGRvbmUgd2l0aApsaWJjX3IuICBTaWdhbHRzdGFjaygpIGFwcGVhcnMgdG8gYmUgbWlzc2luZyBmcm9tIGxpYmNfci4KClRoZSBTeW50YXggc3ViLW1lbnVzIHdlcmUgZ2V0dGluZyB0b28gbG9uZywgcmVvcmdhbml6ZWQgdGhlbSBhbmQgYWRkZWQgYW5vdGhlcgpsZXZlbCBmb3Igc29tZSBsYW5ndWFnZXMuCgpWaXN1YWwgYmxvY2sgInIiZXBsYWNlIGRpZG4ndCB3b3JrIHdlbGwgd2hlbiBhIFRhYiBpcyBwYXJ0bHkgaW5jbHVkZWQuCihNYXR0aGlhcyBLcmFtbSkKCldoZW4geWFua2luZyBhIFZpc3VhbCBibG9jaywgd2hlcmUgc29tZSBsaW5lcyBlbmQgaGFsZndheSB0aGUgYmxvY2ssIHB1dHRpbmcKdGhlIHRleHQgc29tZXdoZXJlIGVsc2UgZG9lc24ndCBpbnNlcnQgYSBibG9jay4gIFBhZGQgd2l0aCBzcGFjZXMgZm9yIG1pc3NpbmcKY2hhcmFjdGVycy4gIEFkZGVkICJ5X3dpZHRoIiB0byBzdHJ1Y3QgeWFua3JlZy4gKE1hdHRoaWFzIEtyYW1tKQoKSWYgYSBzdWJzdGl0dXRlIHN0cmluZyBoYXMgYSBtdWx0aWJ5dGUgY2hhcmFjdGVyIGFmdGVyIGEgYmFja3NsYXNoIG9ubHkgdGhlCmZpcnN0IGJ5dGUgb2YgaXQgd2FzIHNraXBwZWQuIChNdXJhb2thIFRhcm8pCgpXaW4zMjogTnVtZXJpYyBrZXlwYWQga2V5cyB3ZXJlIG1pc3NpbmcgZnJvbSB0aGUgYnVpbHRpbiB0ZXJtY2FwIGVudHJ5LgoKV2hlbiBhIGZpbGUgd2FzIHJlYWQtb25seSAiOndhISIgZGlkbid0IGZvcmNlIGl0IHRvIGJlIHdyaXR0ZW4uIChWaW5jZSBOZWdyaSkKCkFtaWdhOiBBIGZpbGUgbmFtZSBzdGFydGluZyB3aXRoIGEgY29sb24gd2FzIGNvbnNpZGVyZWQgYWJzb2x1dGUgYnV0IGl0IGlzbid0LgpBbWlnYTogIjpwd2QiIGFkZGVkIGEgc2xhc2ggd2hlbiBpbiB0aGUgcm9vdCBvZiBhIGRyaXZlLgoKRG9uJ3QgbGV0ICd0dHltb3VzZScgZGVmYXVsdCB0byAiZGVjIiB3aGVuIGNvbXBpbGVkIHdpdGggZGVjIG1vdXNlIHN1cHBvcnQuCkl0IGJyZWFrcyB0aGUgZ3BtIG1vdXNlIChMaW51eCBjb25zb2xlKS4KClRoZSBwcm90b3R5cGVzIGZvciB0aGUgUGVybCBpbnRlcmZhY2UgZGlkbid0IHdvcmsgZm9yIHRocmVhZGVkIFBlcmwuICBBZGRlZCBhCnNlZCBjb21tYW5kIHRvIHJlbW92ZSB0aGUgcHJvdG90eXBlcyBmcm9tIHByb3RvL2lmX3BlcmwucHJvIGFuZCBhZGRlZCB0aGVtCm1hbnVhbGx5IHRvIGlmX3BlcmwueHMuCgpXaGVuICI6dyEiIHJlc2V0cyB0aGUgJ3JlYWRvbmx5JyBvcHRpb24gdGhlIHRpdGxlIGFuZCBzdGF0dXMgbGluZXMgd2VyZSBub3QKdXBkYXRlZC4KCiI6YXJncyIgc2hvd2VkIHRoZSBjdXJyZW50IGZpbGUgd2hlbiB0aGUgYXJndW1lbnQgbGlzdCB3YXMgZW1wdHkuICBNYWRlIHRoaXMKd29yayBsaWtlIFZpOiBkaXNwbGF5IG5vdGhpbmcuCgoiOTk6PEMtVT5lY2hvIHY6Y291bnQiIGVjaG9lZCAiOTkiIGluIE5vcm1hbCBtb2RlLCBidXQgMCBpbiBWaXN1YWwgbW9kZS4KRG9uJ3Qgc2V0IHY6Y291bnQgd2hlbiBleGVjdXRpbmcgYSBzdHVmZmVkIGNvbW1hbmQuCgpBbWlnYTogR290IGEgcmVxdWVzdGVyIGZvciAiaG9tZToiIGJlY2F1c2UgaXQncyBpbiB0aGUgZGVmYXVsdCBydW50aW1lIHBhdGguCkRvbid0IGJyaW5nIHVwIGEgcmVxdWVzdGVyIHdoZW4gc2VhcmNoaW5nIGZvciBhIGZpbGUgaW4gJ3BhdGgnLCBzb3VyY2luZyB0aGUKLnZpbXJjIGZpbGUgb3IgdXNpbmcgIjpydW50aW1lIi4KCldpbjE2IGFuZCBXaW4zMjogQ29uc2lkZXJlZCBhIGZpbGUgIlxwYXRoXGZpbGUiIGFic29sdXRlLiAgQ2FuIGNhdXNlIHRoZSBzYW1lCmZpbGUgdG8gYXBwZWFyIGFzIHR3byBkaWZmZXJlbnQgYnVmZmVycy4KCldpbjMyOiBSZW5hbWluZyBhIGZpbGUgdG8gYW4gZW1wdHkgc3RyaW5nIGNyYXNoZWQgVmltLiAgSGFwcGVuZWQgd2hlbiB1c2luZwpleHBsb3Jlci52aW0gYW5kIGhpdHRpbmcgRVNDIGF0IHRoZSByZW5hbWUgcHJvbXB0LgoKV2luMzI6IHN0cmZ0aW1lKCkgY3Jhc2hlZCB3aGVuIGNhbGxlZCB3aXRoIGEgIi0xIiB2YWx1ZSBmb3IgdGhlIHRpbWUuCgpXaW4zMiB3aXRoIEJvcmxhbmQgY29tcGlsZXI6IG1jaF9GdWxsTmFtZSgpIGRpZG4ndCB3b3JrLCBjYXVzZWQgdGFnIGZpbGUgbm90CnRvIGJlIGZvdW5kLgoKQ3Njb3BlIHNvbWV0aW1lcyBqdW1wZWQgdG8gdGhlIHdyb25nIHRhZy4gKERhdmlkIEJ1c3RvcykKCk9TLzI6IENvdWxkIG5vdCBmaW5kIHRoZSB0YWdzIGZpbGUuICBtY2hfZXhwYW5kX3dpbGRjYXJkcygpIGFkZGVkIGFub3RoZXIKc2xhc2ggdG8gYSBkaXJlY3RvcnkgbmFtZS4KCldoZW4gdXNpbmcgIj4+IiB0aGUgYF0gbWFyayB3YXMgbm90IGluIHRoZSBsYXN0IGNvbHVtbi4KCldoZW4gVmltIHdhcyBjb21waWxlZCB3aXRob3V0IG1lbnUgc3VwcG9ydCwgZmlsZXR5cGUudmltIHdhcyBzdGlsbCB0cnlpbmcgdG8Kc291cmNlIHRoZSBtZW51LnZpbSBzY3JpcHQuIChSYWZhZWwgR2FyY2lhLVN1YXJleikKCiI6cHRhZyIgYWRkZWQgYW4gaXRlbSB0byB0aGUgdGFnIHN0YWNrLgoKV2luMzIgSU1FOiAiZ3IiIGRpZG4ndCB1c2UgSU1FIG1vZGUuCgpJbiB0aGUgInZpbSAtLWhlbHAiIG1lc3NhZ2UgdGhlIHRlcm0gIm9wdGlvbnMiIHdhcyB1c2VkIGZvciBhcmd1bWVudHMuICBUaGF0J3MKY29uZnVzaW5nLCBjYWxsIHRoZW0gImFyZ3VtZW50cyIuCgpXaGVuIHRoZXJlIGFyZSB0d28gd2luZG93cywgYW5kIGEgQnVmVW5sb2FkIGF1dG9jb21tYW5kIGZvciBjbG9zaW5nIHdpbmRvdyAjMQpjbG9zZWQgd2luZG93ICMyLCBWaW0gd291bGQgY3Jhc2guCgpXaGVuIHRoZXJlIGlzIGEgcHJldmlldyB3aW5kb3cgYW5kIG9ubHkgb25lIG90aGVyIHdpbmRvdywgIjpxIiB3b3VsZG4ndCBleGl0LgoKSW4gSW5zZXJ0IG1vZGUsIHdoZW4gY2FuY2VsbGluZyBhIGRpZ3JhcGggd2l0aCBFU0MsIHRoZSAnPycgd2Fzbid0IHJlbW92ZWQuCgpPbiBVbml4IGdsb2IoIi4qIikgcmV0dXJuZWQgIi4iIGFuZCAiLi4iLCBvbiBXaW5kb3dzIGl0IGRpZG4ndC4gIE9uIFdpbmRvd3MKZ2xvYigiKiIpIGFsc28gcmV0dXJuZWQgZmlsZXMgc3RhcnRpbmcgd2l0aCBhIGRvdC4gIE1hZGUgdGhpcyB3b3JrIGxpa2UgVW5peApvbiBhbGwgc3lzdGVtcy4KCldpbjMyOiBSZW1vdmVkIG9sZCBjb2RlIHRvIG9wZW4gYSBjb25zb2xlLiAgVmltcnVuIGlzIG5vdyB1c2VkIGFuZCB3b3JrcyBmaW5lLgoKQ29tcHV0ZSB0aGUgcm9vbSBuZWVkZWQgYnkgdGhlIGludHJvIG1lc3NhZ2UgYWNjdXJhdGVseSwgc28gdGhhdCBpdCBhbHNvIGZpdHMKb24gYSAyNSBsaW5lIGNvbnNvbGUuIChDcmFpZyBCYXJraG91c2UpCgoiOnB0bmV4dCIgd2FzIGJyb2tlbi4gIE5vdyByZW1lbWJlciB0aGUgbGFzdCB0YWcgdXNlZCBpbiB0aGUgcHJldmlldyB3aW5kb3cKc2VwYXJhdGVseSBmcm9tIHRoZSB0YWdzdGFjay4KCkRpZG4ndCBjaGVjayBmb3IgIi1kaXNwbGF5IiBiZWluZyB0aGUgbGFzdCBhcmd1bWVudC4gKFdpY2hlcnQgQWtrZXJtYW4pCgpHVEsgR1VJOiBXaGVuIHN0YXJ0aW5nICJndmltIiB1bmRlciBzb21lIGNvbmRpdGlvbnMgdGhlcmUgd291bGQgYmUgYW4gWCBlcnJvci4KRG9uJ3QgcmVwbGFjZSB0aGUgZXJyb3IgaGFuZGxlciB3aGVuIGNyZWF0aW5nIHRoZSB4dGVybSBjbGlwYm9hcmQuIChXaWNoZXJ0CkFra2VybWFuKQoKQWRkaW5nIGEgc3BhY2UgYWZ0ZXIgYSBoZWxwIHRhZyBjYXVzZWQgdGhlIHRhZyBub3QgdG8gYmUgZm91bmQuICBFLmcuLCAiOmhlCmF1dG9pbmRlbnQgIi4KCldhcyB0cnlpbmcgdG8gZXhwYW5kIGEgVVJMIGludG8gYSBmdWxsIHBhdGggbmFtZS4gIE9uIFdpbmRvd3MgdGhpcyByZXN1bHRlZCBpbgp0aGUgY3VycmVudCBkaXJlY3RvcnkgdG8gYmUgcHJlcGVuZGVkIHRvIHRoZSBVUkwuICBBZGRlZCB2aW1faXNBYnNOYW1lKCkgYW5kCnZpbV9GdWxsTmFtZSgpIHRvIGF2b2lkIHRoYXQgdmFyaW91cyBtYWNoaW5lIHNwZWNpZmljIGZ1bmN0aW9ucyBkbyBpdApkaWZmZXJlbnRseS4KCiI6biAqLmMiICI6Y2QgLi4iICI6biIgZGlkbid0IHVzZSB0aGUgb3JpZ2luYWwgZGlyZWN0b3J5IG9mIHRoZSBmaWxlLiAgVmkgb25seQpkb2VzIGl0IGZvciB0aGUgY3VycmVudCBmaWxlIChsb29rcyBsaWtlIGEgYnVnKS4gIE5vdyByZW1lbWJlciB0aGUgYnVmZmVyIHVzZWQKZm9yIHRoZSBlbnRyeSBpbiB0aGUgYXJndW1lbnQgbGlzdCBhbmQgdXNlIGl0cyBuYW1lIChhZGp1c3RlZCB3aGVuIGRvaW5nCiI6Y2QiKSwgdW5sZXNzIGl0J3MgZGVsZXRlZC4KCldoZW4gaW5zZXJ0aW5nIGEgc3BlY2lhbCBrZXkgYXMgaXRzIG5hbWUgKCI8Rjg+IiBhcyBmb3VyIGNoYXJhY3RlcnMpIGFmdGVyCm1vdmluZyBhcm91bmQgaW4gSW5zZXJ0IG1vZGUsIHVuZG8gZGlkbid0IHdvcmsgcHJvcGVybHkuCgpNb3RpZiBHVUk6IFdoZW4gdXNpbmcgdGhlIHJpZ2h0IG1vdXNlIGJ1dHRvbiwgZm9yIHNvbWUgcGVvcGxlIGd2aW0gZnJvemUgZm9yCmEgY291cGxlIG9mIHNlY29uZHMgKE1vdGlmIDEuMj8pLiAgVGhpcyBkb2Vzbid0IGhhcHBlbiB3aGVuIHRoZXJlIGlzIG5vIFBvcHVwCm1lbnUuICBTb2x2ZWQgYnkgb25seSBjcmVhdGluZyBhIHBvcHVwIG1lbnUgd2hlbiAnbW91c2Vtb2RlbCcgaXMgInBvcHVwIiBvcgoicG9wdXBfc2V0cG9zIi4gKERhdmlkIEhhcnJpc29uKQoKTW90aWY6IFdoZW4gYWRkaW5nIG1hbnkgbWVudSBpdGVtcywgdGhlICJIZWxwIiBtZW51IGRpc2FwcGVhcmVkIGJ1dCB0aGUKbWVudWJhciBkaWRuJ3Qgd3JhcC4gIE5vdyBtYW51YWxseSBzZXQgdGhlIG1lbnViYXIgaGVpZ2h0LgoKV2hlbiB1c2luZyA8QlM+IGluIEluc2VydCBtb2RlIHRvIHJlbW92ZSBhIGxpbmUgYnJlYWssIG9yIHVzaW5nICJKIiB0byBqb2luCmxpbmVzLCB0aGUgY3Vyc29yIGNvdWxkIGVuZCB1cCBoYWxmd2F5IGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuIChNdXJhb2thIFRhcm8pCgpSZW1vdmVkIGRlZmluaW5nIFNWUjQgaW4gY29uZmlndXJlLiAgSXQgY2F1c2VzIHByb2JsZW1zIGZvciBzb21lIFggaGVhZGVyCmZpbGVzIGFuZCBkb2Vzbid0IGFwcGVhciB0byBiZSB1c2VkIGFueXdoZXJlLgoKV2hlbiAnd2lsZGlnbm9yZScgaXMgdXNlZCwgJ2lnbm9yZWNhc2UnIGZvciBhIHRhZyBtYXRjaCB3YXMgbm90IHdvcmtpbmcuCgpXaGVuICd3aWxkaWdub3JlJyBjb250YWlucyAiKn4iIGl0IHdhcyBpbXBvc3NpYmxlIHRvIGVkaXQgYSBmaWxlIGVuZGluZyBpbiBhCiJ+Ii4gIE5vdyBkb24ndCByZWNvZ25pemUgYSBmaWxlIGVuZGluZyBpbiAifiIgYXMgY29udGFpbmluZyB3aWxkY2FyZHMuCgpEaXNhYmxlZCB0aGUgbW91c2UgY29kZSBmb3IgT1MvMi4gIEl0IHdhcyBub3QgcmVhbGx5IHVzZWQuCgoiOm1rc2Vzc2lvbiIgYWx3YXlzIHVzZWQgdGhlIGZ1bGwgcGF0aCBuYW1lIGZvciBhIGJ1ZmZlciwgYWxzbyB3aGVuIHRoZSBzaG9ydApuYW1lIGNvdWxkIGJlIHVzZWQuCiI6bWt2aW1yYyIgYW5kICI6bWtzZXNzaW9uIiBkaWRuJ3Qgc2F2ZSAnd2lsZGNoYXInIGFuZCAncGFzdGV0b2dnbGUnIGluIHN1Y2ggYQp3YXkgdGhhdCB0aGV5IHdvdWxkIGJlIHJlc3RvcmVkLiAgTm93IHVzZSB0aGUga2V5IG5hbWUgaWYgcG9zc2libGUsIHRoaXMgaXMKcG9ydGFibGUuCgpBZnRlciByZWNvdmVyaW5nIGEgZmlsZSBhbmQgYWJhbmRvbmluZyBpdCwgYW4gIjplZGl0IiBjb21tYW5kIGRpZG4ndCBnaXZlIHRoZQpBVFRFTlRJT04gcHJvbXB0IGFnYWluLiAgV291bGQgYmUgdXNlZnVsIHRvIGJlIGFibGUgdG8gZGVsZXRlIHRoZSBmaWxlIGluIGFuCmVhc3kgd2F5LiAgUmVzZXQgdGhlIEJGX1JFQ09WRVJFRCBmbGFnIHdoZW4gdW5sb2FkaW5nIHRoZSBidWZmZXIuCgpoaXN0ZGVsKCkgY291bGQgbWF0Y2ggb3IgaWdub3JlIGNhc2UsIGRlcGVuZGluZyBvbiB3aGF0IGhhcHBlbmVkIGJlZm9yZSBpdC4KTm93IGFsd2F5cyBtYXRjaCBjYXNlLgoKV2hlbiBhIHdpbmRvdyBzaXplIHdhcyBzcGVjaWZpZWQgd2hlbiBzcGxpdHRpbmcgYSB3aW5kb3csIGl0IHdvdWxkIHN0aWxsIGdldAp0aGUgc2l6ZSBmcm9tICd3aW5oZWlnaHQnIG9yICd3aW53aWR0aCcgaWYgaXQncyBsYXJnZXIuCgpXaGVuIHVzaW5nICJhcHBlbmQiIG9yICJpbnNlcnQiIGluc2lkZSBhIGZ1bmN0aW9uIGRlZmluaXRpb24sIGEgbGluZSBzdGFydGluZwp3aXRoICJmdW5jdGlvbiIgb3IgImVuZGZ1bmN0aW9uIiBjYXVzZWQgY29uZnVzaW9uLiAgTm93IHJlY29nbml6ZSB0aGUgY29tbWFuZHMKYW5kIHNraXAgbGluZXMgdW50aWwgYSAiLiIuCgpBdCB0aGUgZW5kIG9mIGFueSBmdW5jdGlvbiBvciBzb3VyY2VkIGZpbGUgbmVlZF93YWl0X3JldHVybiBjb3VsZCBiZSByZXNldCwKY2F1c2luZyBtZXNzYWdlcyB0byBkaXNhcHBlYXIgd2hlbiByZWRyYXdpbmcuCgpXaGVuIGluIGEgd2hpbGUgbG9vcCB0aGUgbGluZSBudW1iZXIgZm9yIGVycm9yIG1lc3NhZ2VzIHN0YXllZCBmaXhlZC4gIE5vdyB0aGUKbGluZSBudW1iZXIgaXMgcmVtZW1iZXJlZCBpbiB0aGUgd2hpbGUgbG9vcC4KCiJjZCBjOi8iIGRpZG4ndCB3b3JrIG9uIE1TLURPUy4gIG1jaF9pc2RpcigpIHJlbW92ZWQgYSB0cmFpbGluZyBzbGFzaC4KCk1TLVdpbmRvd3M6IGdldGZ0aW1lKCkgZGlkbid0IHdvcmsgd2hlbiBhIGRpcmVjdG9yeSBoYWQgYSB0cmFpbGluZyBzbGFzaCBvcgpiYWNrc2xhc2guICBEaWRuJ3Qgc2hvdyB0aGUgdGltZSBpbiB0aGUgZXhwbG9yZXIgYmVjYXVzZSBvZiB0aGlzLgoKV2hlbiBkb2luZyB3aWxkY2FyZCBjb21wbGV0aW9uLCBhIGRpcmVjdG9yeSAiYS8iIHNvcnRlZCBhZnRlciAiYS1iIi4gIE5vdwpyZWNvZ25pemUgcGF0aCBzZXBhcmF0b3JzIHdoZW4gc29ydGluZyBmaWxlcy4KCk5vbi1Vbml4IHN5c3RlbXM6IFdoZW4gZWRpdGluZyAiYzovZGlyLy4uL2ZpbGUiIGFuZCAiYzovZmlsZSIgdGhleSB3ZXJlCmNyZWF0ZWQgYXMgZGlmZmVyZW50IGJ1ZmZlcnMsIGFsdGhvdWdoIGl0J3MgdGhlIHNhbWUgZmlsZS4gIEV4cGFuZCB0byBhIGZ1bGwKZmlsZSBuYW1lIGFsc28gd2hlbiBhbiBhYnNvbHV0ZSBuYW1lIGNvbnRhaW5zICIuLiIuCgoiZyYiIGRpZG4ndCByZXBlYXQgdGhlIGxhc3Qgc3Vic3RpdHV0ZSBwcm9wZXJseS4KCldoZW4gJ2NsaXBib2FyZCcgd2FzIHNldCB0byAidW5uYW1lZCIsIGEgIlkiIGNvbW1hbmQgd291bGQgbm90IHdyaXRlIHRvICIwLgpOb3cgbWFrZSBhIGNvcHkgb2YgcmVnaXN0ZXIgMCB0byB0aGUgY2xpcGJvYXJkIHJlZ2lzdGVyLgoKV2hlbiB0aGUgc2VhcmNoIHBhdHRlcm4gbWF0Y2hlcyBpbiBtYW55IHdheXMsIGl0IGNvdWxkIG5vdCBhbHdheXMgYmUKaW50ZXJydXB0ZWQgd2l0aCBhIENUUkwtQy4gIEFuZCBDVFJMLUMgd291bGQgaGF2ZSB0byBiZSBoaXQgb25jZSBmb3IgZXZlcnkKbGluZSB3aGVuICdobHNlYXJjaCcgaXMgb24uCldoZW4gJ2luY3NlYXJjaCcgaXMgb24gYW5kIGludGVycnVwdGluZyB0aGUgc2VhcmNoIGZvciBhIG1hdGNoLCBkb24ndCBhYmFuZG9uCnRoZSBjb21tYW5kIGxpbmUuCgpXaGVuIHR1cm5pbmcgYSBkaXJlY3RvcnkgbmFtZSBpbnRvIGEgZnVsbCBwYXRoLCBlLmcuLCB3aXRoIGZuYW1lbW9kaWZ5KCksCnNvbWV0aW1lcyBhIHNsYXNoIHdhcyBhZGRlZC4gIE1ha2UgdGhpcyBjb25zaXN0ZW50OiBEb24ndCBhZGQgYSBzbGFzaC4KCldoZW4gYSBmaWxlIG5hbWUgY29udGFpbnMgYSAiISIsIHVzaW5nIGl0IGluIGEgc2hlbGwgY29tbWFuZCB3aWxsIGNhdXNlCnRyb3VibGU6ICI6IWNhdCAlIi4gIEVzY2FwZSB0aGUgIiEiIHRvIGF2b2lkIHRoYXQuICBFc2NhcGUgaXQgYW5vdGhlciB0aW1lCndoZW4gJ3NoZWxsJyBjb250YWlucyAic2giLgoKQ29tcGxldGluZyBhIGZpbGUgbmFtZSB0aGF0IGhhcyBhIHRhaWwgdGhhdCBzdGFydHMgd2l0aCBhICJ+IiBkaWRuJ3Qgd29yazoKIjplIHZpZXcvfjxUYWI+Ii4KClVzaW5nIGEgIjpjb21tYW5kIiBhcmd1bWVudCB0aGF0IGNvbnRhaW5zIDwgYW5kID4gYnV0IG5vdCBmb3IgYSBzcGVjaWFsCmFyZ3VtZW50IHdhcyBub3Qgc2tpcHBlZCBwcm9wZXJseS4KClRoZSBET1MgaW5zdGFsbCBwcm9ncmFtOiBPbiBXaW4yMDAwIHRoZSBjaGVjayBmb3IgYSB2aW0uZXhlIG9yIGd2aW0uZXhlIGluCiRQQVRIIGRpZG4ndCB3b3JrLCBpdCBhbHdheXMgZm91bmQgaXQgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgpSZW5hbWUgdGhlIHZpbS5leGUgaW4gdGhlIGN1cnJlbnQgZGlyIHRvIGF2b2lkIHRoaXMuIChXYWx0ZXIgQnJpc2NvZSkKCkluIHRoZSBNUy1ET1MvV2luZG93cyBpbnN0YWxsIHByb2dyYW0sIHVzZSAlVklNJSBpbnN0ZWFkIG9mIGFuIGFic29sdXRlIHBhdGgsCnNvIHRoYXQgbW92aW5nIFZpbSByZXF1aXJlcyBvbmx5IG9uZSBjaGFuZ2UgaW4gdGhlIGJhdGNoIGZpbGUuCgpNYWM6IG1jaF9GdWxsTmFtZSgpIGNoYW5nZWQgdGhlICJmbmFtZSIgYXJndW1lbnQgYW5kIGRpZG4ndCBhbHdheXMgaW5pdGlhbGl6ZQp0aGUgYnVmZmVyLgoKTVMtRE9TOiBtY2hfRnVsbE5hbWUoKSBkaWRuJ3QgZml4IGZvcndhcmQvYmFja3dhcmQgc2xhc2hlcyBpbiBhbiBhYnNvbHV0ZSBmaWxlCm5hbWUuCgoiZWNobyBleHBhbmQoIiU6cDpoIikiIHdpdGggYW4gZW1wdHkgZmlsZSBuYW1lIHJlbW92ZWQgb25lIGRpcmVjdG9yeSBuYW1lIG9uCk1TLURPUy4gIEZvciBVbml4LCB3aGVuIHRoZSBmaWxlIG5hbWUgaXMgYSBkaXJlY3RvcnksIHRoZSBkaXJlY3RvcnkgbmFtZSB3YXMKcmVtb3ZlZC4gIE5vdyBtYWtlIGl0IGNvbnNpc3RlbnQ6ICIlOnAiIGFkZHMgYSBwYXRoIHNlcGFyYXRvciBmb3IgYWxsIHN5c3RlbXMsCmJ1dCBubyBwYXRoIHNlcGFyYXRvciBpcyBhZGRlZCBpbiBvdGhlciBzaXR1YXRpb25zLgoKVW5peDogV2hlbiBjaGVja2luZyBmb3IgYSBDVFJMLUMgKGNvdWxkIGhhcHBlbiBhbnkgdGltZSkgYW5kIHRoZXJlIGlzIGFuIFgKZXZlbnQgKGUuZy4sIGNsaXBib2FyZCB1cGRhdGVkKSBhbmQgdGhlcmUgaXMgdHlwZWFoZWFkLCBWaW0gd291bGQgaGFuZyB1bnRpbCBhCmNoYXJhY3RlciB3YXMgdHlwZWQuCgpNUy1ET1MsIE1TLVdpbmRvd3MgYW5kIEFtaWdhOiBleHBhbmRpbmcgIiRFTlYvZm9vIiB3aGVuICRFTlYgZW5kcyBpbiBhIGNvbG9uLApoYWQgdGhlIHNsYXNoIHJlbW92ZWQuCgoiOmhlIFxePSIgZ2F2ZSBhbiBlcnJvciBmb3IgdXNpbmcgXF8uICAiOmhlIF49IiBkaWRuJ3QgZmluZCB0YWcgOnNldF49LiAgRXZlbgoiaGUgOnNldF49IiBkaWRuJ3QgZmluZCBpdC4KCkEgdGFncyBmaWxlIG5hbWUgIkQ6L3RhZ3MiIHdhcyB1c2VkIGFzIGZpbGUgInRhZ3MiIGluICJEOiIuICBUaGF0IGRvZXNuJ3Qgd29yawp3aGVuIHRoZSBjdXJyZW50IHBhdGggZm9yIEQ6IGlzbid0IHRoZSByb290IG9mIHRoZSBkcml2ZS4KClJlbW92ZWQgY2FsbHMgdG8gWHRJbml0aWFsaXplV2lkZ2V0Q2xhc3MoKSwgdGhleSBzaG91bGRuJ3QgYmUgbmVjZXNzYXJ5LgoKV2hlbiB1c2luZyBhIGR0dGVybSBvciB2YXJpb3VzIG90aGVyIGNvbG9yIHRlcm1pbmFscywgYW5kIHRoZSBOb3JtYWwgZ3JvdXAgaGFzCmJlZW4gc2V0IHRvIHVzZSBhIGRpZmZlcmVudCBiYWNrZ3JvdW5kIGNvbG9yLCB0aGUgYmFja2dyb3VuZCB3b3VsZG4ndCBhbHdheXMKYmUgZGlzcGxheWVkIHdpdGggdGhhdCBjb2xvci4gIEFkZGVkIGNoZWNrIGZvciAidXQiIHRlcm1jYXAgZW50cnk6IElmIGl0J3MKbWlzc2luZywgY2xlYXJpbmcgdGhlIHNjcmVlbiB3b24ndCBnaXZlIHVzIHRoZSBjdXJyZW50IGJhY2tncm91bmQgY29sb3IuICBOZWVkCnRvIGRyYXcgZWFjaCBjaGFyYWN0ZXIgaW5zdGVhZC4gIFZpbSBub3cgYWxzbyB3b3JrcyB3aGVuIHRoZSAiY2wiIChjbGVhcgpzY3JlZW4pIHRlcm1jYXAgZW50cnkgaXMgbWlzc2luZy4KCldoZW4gcmVwZWF0aW5nIGEgIi8iIHNlYXJjaCBjb21tYW5kIHdpdGggYSBsaW5lIG9mZnNldCwgdGhlICJuIiBkaWQgdXNlIHRoZQpvZmZzZXQgYnV0IGRpZG4ndCBtYWtlIHRoZSBtb3Rpb24gbGluZXdpc2UuICBNYWRlICJkL3BhdC8rMiIgYW5kICJkbiIgZG8gdGhlCnNhbWUuCgpXaW4zMjogVHJ5aW5nIHRvIHVzZSAiOnRlYXJvZmYiIGZvciBhIG1lbnUgdGhhdCBkb2Vzbid0IGV4aXN0IGNhdXNlZCBhIGNyYXNoLgoKT3BlblBUWSgpIGRpZG4ndCB3b3JrIG9uIFNlcXVlbnQuICBBZGQgYSBjb25maWd1cmUgY2hlY2sgZm9yIGdldHBzZXVkb3R0eSgpLgoKQy1pbmRlbnRpbmc6IEluZGVudGVkIGEgbGluZSBzdGFydGluZyB3aXRoICIpIiB3aXRoIHRoZSBtYXRjaGluZyAiKCIsIGJ1dCBub3QKYSBsaW5lIHN0YXJ0aW5nIHdpdGggIngpIiBsb29rcyBzdHJhbmdlLiAgQWxzbyBjb21wdXRlIHRoZSBpbmRlbnQgZm9yIGFsaWduaW5nCndpdGggaXRlbXMgaW5zaWRlIHRoZSAoKSBhbmQgdXNlIHRoZSBsb3dlc3QgaW5kZW50LgoKTVMtRE9TIGFuZCBXaW5kb3dzOiAiOm4gKi52aW0iIGFsc28gbWF0Y2hlZCBmaWxlcyBlbmRpbmcgaW4gIn4iLgpNb3ZlZCBtY2hfZXhwYW5kcGF0aCgpIGZyb20gb3Nfd2luMTYuYyBhbmQgb3NfbXNkb3MuYyB0byBtaXNjMS5jLCB0aGV5IGFyZQplcXVhbC4KCk1hY2ludG9zaDogKERhbnkgU3QtQW1hbnQpCi0gSW4gVmktY29tcGF0aWJsZSBtb2RlIGRpZG4ndCByZWFkIGZpbGVzIHdpdGggQ1IgbGluZSBzZXBhcmF0b3JzLgotIEZpeGVkIGEgYnVnIGluIHRoZSBoYW5kbGluZyBvZiBBY3RpdmF0ZS9EZWFjdGl2YXRlIEV2ZW50Ci0gRml4ZWQgYSBidWcgaW4gZ3VpX21jaF9kaWFsb2cgKHVzaW5nIHdyb25nIHBvaW50ZXIpCgpNdWx0aWJ5dGUgR0RLIFhJTTogV2hpbGUgY29tcG9zaW5nIGEgbXVsdGlieXRlLXdvcmQsIGlmIHVzZXIgcHJlc3NlcyBhCm1vdXNlIGJ1dHRvbiwgdGhlbiB0aGUgd29yZCBpcyByZW1vdmVkLiAgSXQgc2hvdWxkIHJlbWFpbiBhbmQgY29tcG9zaW5nIGVuZC4KKFN1bmctSHl1biBOYW0pCgpNUy1ET1MsIE1TLVdpbmRvd3MgYW5kIE9TLzI6IFdoZW4gcmVhZGluZyBmcm9tIHN0ZGluLCBhdXRvbWF0aWMgQ1ItTEYKY29udmVyc2lvbiBieSB0aGUgQyBsaWJyYXJ5IGdvdCBpbiB0aGUgd2F5IG9mIGRldGVjdGluZyBhICJkb3MiICdmaWxlZm9ybWF0Jy4KCldoZW4gJ3NtYXJ0Y2FzZScgaXMgc2V0LCBwYXR0ZXJucyB3aXRoICJcUyIgd291bGQgYWxzbyBtYWtlICdpZ25vcmVjYXNlJwpyZXNldC4KCldoZW4gY2xpY2tpbmcgdGhlIG1vdXNlIGluIGEgY29sdW1uIGxhcmdlciB0aGFuIDIyMiwgaXQgbW92ZWQgdG8gdGhlIGZpcnN0CmNvbHVtbi4gIENhbid0IGVuY29kZSBhIGxhcmdlciBudW1iZXIgaW4gYSBjaGFyYWN0ZXIuICBOb3cgbGltaXQgdGhlIG51bWJlciB0bwoyMjIsIGRvbid0IGp1bXAgYmFjayB0byB0aGUgZmlyc3QgY29sdW1uLgoKR1VJOiBJbiBzb21lIHZlcnNpb25zIENTSSB3b3VsZCBjYXVzZSB0cm91YmxlLCBlaXRoZXIgd2hlbiB0eXBlZCBkaXJlY3RseSBvcgp3aGVuIHBhcnQgb2YgYSBtdWx0aS1ieXRlIHNlcXVlbmNlLgoKV2hlbiB1c2luZyBtdWx0aWJ5dGUgY2hhcmFjdGVycyBpbiBhICI6bm9ybWFsIiBjb21tYW5kLCBhIHRyYWlsaW5nIGJ5dGUgdGhhdAppcyBDU0kgb3IgS19TUEVDSUFMIGNhdXNlZCBwcm9ibGVtcy4KCldpbGRtZW51IGRpZG4ndCBoYW5kbGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgoKIjpzbGVlcCAxMCIgY291bGQgbm90IGJlIGludGVycnVwdGVkIG9uIFdpbmRvd3MsIHdoaWxlICJncyIgY291bGQuICBNYWRlIHRoZW0KYm90aCB3b3JrIHRoZSBzYW1lLgoKVW5peDogV2hlbiB3YWl0aW5nIGZvciBhIGNoYXJhY3RlciBpcyBpbnRlcnJ1cHRlZCBieSBhbiBYLXdpbmRvd3MgZXZlbnQgKGUuZy4sCnRvIG9idGFpbiB0aGUgY29udGVudHMgb2YgdGhlIHNlbGVjdGlvbiksIHRoZSB3YWl0IHRpbWUgd291bGQgbm90IGJlIGhvbm9yZWQuCkEgbWVzc2FnZSBjb3VsZCBiZSBvdmVyd3JpdHRlbiBxdWlja2x5LiAgTm93IGNvbXB1dGUgdGhlIHJlbWFpbmluZyB3YWl0aW5nCnRpbWUuCgpXaW5kb3dzOiBDb21wbGV0aW5nICJcXHNoYXJlXGMkXFMiIGluc2VydGVkIGEgYmFja3NsYXNoIGJlZm9yZSB0aGUgJCBhbmQgdGhlbgp0aGUgbmFtZSBpcyBpbnZhbGlkLiAgRG9uJ3QgaW5zZXJ0IHRoZSBiYWNrc2xhc2guCgpXaGVuIGRvaW5nIGFuIGF1dG8td3JpdGUgYmVmb3JlICI6bWFrZSIsIElPYnVmZiB3YXMgb3ZlcndyaXR0ZW4gYW5kIHRoZSB3cm9uZwp0ZXh0IGRpc3BsYXllZCBsYXRlci4KCk9uIHRoZSBNYWMgdGhlIGRpcmVjdG9yaWVzICJjOi90bXAiIGFuZCAiYzovdGVtcCIgd2VyZSB1c2VkIGluIHRoZSBkZWZhdWx0cwpmb3IgJ2JhY2t1cGRpcicgYW5kICdkaXJlY3RvcnknLCB0aGV5IGRvbid0IGV4aXN0LgoKVGhlIGNoZWNrIGZvciBhIG5ldyBmaWxlIG5vdCB0byBiZSBvbiBhbiBNUy1ET1MgZmlsZXN5c3RlbSBjcmVhdGVkIHRoZSBmaWxlCnRlbXBvcmFyaWx5LCB3aGljaCBjYW4gYmUgc2xvdy4gIERvbid0IGRvIHRoaXMgaWYgdGhlcmUgaXMgYW5vdGhlciBjaGVjayBmb3IKdGhlIHN3YXAgZmlsZSBiZWluZyBvbiBhbiBNUy1ET1MgZmlsZXN5c3RlbS4KCkRvbid0IGdpdmUgdGhlICJDaGFuZ2luZyBhIHJlYWRvbmx5IGZpbGUiIHdhcm5pbmcgd2hlbiByZWFkaW5nIGZyb20gc3RkaW4uCgpXaGVuIHVzaW5nIHRoZSAiU2F2ZSBBcyIgbWVudSBlbnRyeSBhbmQgbm90IGVudGVyaW5nIGEgZmlsZSBuYW1lLCB3b3VsZCBnZXQgYW4KZXJyb3IgbWVzc2FnZSBmb3IgdGhlIHRyYWlsaW5nICI6ZWRpdCAjIi4gIE5vdyBvbmx5IGRvIHRoYXQgd2hlbiB0aGUKYWx0ZXJuYXRlIGZpbGUgbmFtZSB3YXMgY2hhbmdlZC4KCldoZW4gVmltIG93bnMgdGhlIFgxMSBzZWxlY3Rpb24gYW5kIGlzIGJlaW5nIHN1c3BlbmRlZCwgYW4gYXBwbGljYXRpb24gdGhhdAp0cmllcyB0byB1c2UgdGhlIHNlbGVjdGlvbiBoYW5ncy4gIFdoZW4gVmltIGNvbnRpbnVlcyBpdCBjb3VsZCBubyBsb25nZXIKb2J0YWluIHRoZSBzZWxlY3Rpb24uICBOb3cgZ2l2ZSB1cCB0aGUgc2VsZWN0aW9uIHdoZW4gc3VzcGVuZGluZy4KCm9wdGlvbi5oIGFuZCBnbG9iYWxzLmggd2VyZSBpbmNsdWRlZCBpbiBzb21lIGZpbGVzLCB3aGlsZSB0aGV5IHdlcmUgYWxyZWFkeQppbmNsdWRlZCBpbiB2aW0uaC4gIE1vdmVkIHRoZSBkZWZpbml0aW9uIG9mIEVYVEVSTiB0byB2aW0uaCB0byBhdm9pZCBkb2luZyBpdAp0d2ljZS4KCldoZW4gcmVwZWF0aW5nIGFuIG9wZXJhdG9yIHRoYXQgdXNlZCBhIHNlYXJjaCBwYXR0ZXJuIGFuZCB0aGUgc2VhcmNoIHBhdHRlcm4KY29udGFpbmVkIGNoYXJhY3RlcnMgdGhhdCBoYXZlIGEgc3BlY2lhbCBtZWFuaW5nIG9uIHRoZSBjbWRsaW5lIChlLmcuLCBDVFJMLVUpCml0IGRpZG4ndCB3b3JrLgoKRml4ZWQgdmFyaW91cyBwcm9ibGVtcyB3aXRoIHVzaW5nIEtfU1BFQ0lBTCAoMHg4MCkgYW5kIENTSSAoMHg5YikgYXMgYSBieXRlIGluCmEgKG11bHRpYnl0ZSkgY2hhcmFjdGVyLiAgRm9yIGV4YW1wbGUsIHRoZSAiciIgY29tbWFuZCBjb3VsZCBub3QgYmUgcmVwZWF0ZWQuCgpUaGUgRE9TL1dpbmRvd3MgaW5zdGFsbCBwcm9ncmFtIGRpZG4ndCBhbHdheXMgd29yayBmcm9tIGEgZGlyZWN0b3J5IHdpdGggYQpsb25nIGZpbGVuYW1lLCBiZWNhdXNlICRWSU0gYW5kIHRoZSBleGVjdXRhYmxlIG5hbWUgd291bGQgbm90IGhhdmUgdGhlIHNhbWUKcGF0aC4KCk11bHRpLWJ5dGU6Ci0gVXNpbmcgYW4gYW55LWJ1dCBjaGFyYWN0ZXIgcmFuZ2UgW154XSBpbiBhIHJlZ2V4cCBkaWRuJ3Qgd29yayBmb3IgVVRGLTguCiAgKE11cmFva2EgVGFybykKLSBXaGVuIGJhY2tzcGFjaW5nIG92ZXIgaW5zZXJ0ZWQgY2hhcmFjdGVycyBpbiBSZXBsYWNlIG1vZGUgbXVsdGktYnl0ZQogIGNoYXJhY3RlcnMgd2VyZSBub3QgaGFuZGxlZCBjb3JyZWN0bHkuIChNdXJhb2thIFRhcm8pCi0gU2VhcmNoIGNvbW1hbmRzICIjIiBhbmQgIioiIGRpZG4ndCB3b3JrIHdpdGggbXVsdGlieXRlIGNoYXJhY3RlcnMuIChNdXJhb2thCiAgVGFybykKLSBXb3JkIGNvbXBsZXRpb24gaW4gSW5zZXJ0IG1vZGUgZGlkbid0IHdvcmsgd2l0aCBtdWx0aWJ5dGUgY2hhcmFjdGVycy4KICAoTXVyYW9rYSBUYXJvKQotIEF0aGVuYS9Nb3RpZiBHVUk6IHdoZW4gJ2xpbmVzcGFjZScgaXMgbm9uLXplcm8gdGhlIGN1cnNvciB3b3VsZCBiZSBkcmF3biB0b28KICB3aWRlIChudW1iZXIgb2YgYnl0ZXMgaW5zdGVhZCBvZiBjZWxsIHdpZHRoKS4KLSBXaGVuIGNoYW5naW5nICdlbmNvZGluZycgdG8gImV1Yy1qcCIgYW5kIGluc2VydGluZyBhIGNoYXJhY3RlciBWaW0gd291bGQKICBjcmFzaC4KLSBGb3IgZXVjLWpwIGNoYXJhY3RlcnMgcG9zaXRpb25pbmcgdGhlIGN1cnNvciB3b3VsZCBzb21ldGltZXMgYmUgd3JvbmcuCiAgQWxzbywgd2l0aCB0d28gY2hhcmFjdGVycyB3aXRoIDB4OGUgbGVhZGluZyBieXRlIG9ubHkgdGhlIGZpcnN0IG9uZSB3b3VsZCBiZQogIGRpc3BsYXllZC4KLSBXaGVuIHVzaW5nIERZTkFNSUNfSUNPTlYgb24gV2luMzIgY29udmVyc2lvbiBtaWdodCBmYWlsIGJlY2F1c2Ugb2YgdXNpbmcgdGhlCiAgd3JvbmcgZXJyb3IgbnVtYmVyLiAoTXVyYW9rYSBUYXJvKQotIFVzaW5nIEFsdC14IGluIHRoZSBHVUkgd2hpbGUgJ2VuY29kaW5nJyB3YXMgc2V0IHRvICJ1dGYtOCIgZGlkbid0IHByb2R1Y2UKICB0aGUgcmlnaHQgY2hhcmFjdGVyLgotIFdoZW4gdXNpbmcgVmlzdWFsIGJsb2NrIHNlbGVjdGlvbiBhbmQgb25seSB0aGUgbGVmdCBoYWx2ZSBvZiBhIGRvdWJsZS13aWRlCiAgY2hhcmFjdGVyIGlzIHNlbGVjdGVkLCB0aGUgaGlnaGxpZ2h0aW5nIGNvbnRpbnVlZCB0byB0aGUgZW5kIG9mIHRoZSBsaW5lLgotIFZpc3VhbC1ibG9jayBkZWxldGUgZGlkbid0IHdvcmsgcHJvcGVybHkgd2hlbiBkZWxldGluZyB0aGUgcmlnaHQgaGFsdmUgb2YgYQogIGRvdWJsZS13aWRlIGNoYXJhY3Rlci4KLSBPdmVyc3RyaWtlIG1vZGUgZm9yIHRoZSBjbWRsaW5lIHJlcGxhY2VkIG9ubHkgdGhlIGZpcnN0IGJ5dGUgb2YgYSBtdWx0aWJ5dGUKICBjaGFyYWN0ZXIuCi0gVGhlIGN1cnNvciBpbiBSZXBsYWNlIG1vZGUgKGFsc28gaW4gdGhlIGNtZGxpbmUpIHdhcyB0byBzbWFsbCBvbiBhCiAgZG91YmxlLXdpZGUgY2hhcmFjdGVyLgotIFdoZW4gYSBtdWx0aWJ5dGUgY2hhcmFjdGVyIGNvbnRhaW5lZCBhIDB4ODAgYnl0ZSwgaXQgZGlkbid0IHdvcmsgKHdhcyB1c2luZwogIGEgQ1NJIGJ5dGUgaW5zdGVhZCkuIChNdXJhb2thIFRhcm8pCi0gV29yZHdpc2Ugc2VsZWN0aW9uIHdpdGggdGhlIG1vdXNlIGRpZG4ndCB3b3JrLgotIFlhbmtpbmcgYSBtb2RlbGVzcyBzZWxlY3Rpb24gb2YgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGRpZG4ndCB3b3JrLgotIFdoZW4gJ3NlbGVjdGlvbicgaXMgImV4Y2x1c2l2ZSIsIHNlbGVjdGluZyBhIHdvcmQgdGhhdCBlbmRzIGluIGEgbXVsdGktYnl0ZQogIGNoYXJhY3RlciB1c2VkIHdyb25nIGhpZ2hsaWdodGluZyBmb3IgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIuCgpXaW4zMiB3aXRoIE1ha2VfbXZjLm1hazogRGlkbid0IGNvbXBpbGUgZm9yIGRlYnVnZ2luZy4gKENyYWlnIEJhcmtob3VzZSkKCldpbjMyIEdVSTogV2hlbiAidmltcnVuLmV4ZSIgaXMgdXNlZCB0byBleGVjdXRlIGFuIGV4dGVybmFsIGNvbW1hbmQsIGRvbid0CmdpdmUgYSBtZXNzYWdlIGJveCB3aXRoIHRoZSByZXR1cm4gdmFsdWUsIGl0IHdhcyBhbHJlYWR5IHByaW50ZWQgYnkgdmltcnVuLgpBbHNvIGF2b2lkIHByaW50aW5nIHRoZSByZXR1cm4gdmFsdWUgb2YgdGhlIHNoZWxsIHdoZW4gIjpzaWxlbnQhIiBpcyB1c2VkLgoKV2luMzI6IHNlbGVjdGluZyBhIGxvdCBvZiB0ZXh0IGFuZCB1c2luZyB0aGUgImZpbmQvcmVwbGFjZSIgZGlhbG9nIGNhdXNlZCBhCmNyYXNoLgoKWDExIEdVSTogV2hlbiB0eXBpbmcgYSBjaGFyYWN0ZXIgd2l0aCB0aGUgOHRoIGJpdCBzZXQgYW5kIHRoZSBNZXRhL0FsdAptb2RpZmllciwgdGhlIG1vZGlmaWVyIHdhcyByZW1vdmVkIHdpdGhvdXQgY2hhbmdpbmcgdGhlIGNoYXJhY3Rlci4KClRydW5jYXRpbmcgYSBtZXNzYWdlIHRvIG1ha2UgaXQgZml0IG9uIHRoZSBjb21tYW5kIGxpbmUsIHVzaW5nICIuLi4iIGZvciB0aGUKbWlkZGxlLCBkaWRuJ3QgYWx3YXlzIGNvbXB1dGUgdGhlIHNwYWNlIGNvcnJlY3RseS4KCkNvdWxkIG5vdCBpbWFwIDxDLUA+LiAgTm93IGl0IHdvcmtzIGxpa2UgPE51bD4uCgpWTVM6Ci0gRml4ZWQgYSBmZXcgdGhpbmdzIGZvciBWQVhDLiAgb3Nfdm1zX2ZpeC5jb20gaGFkIHNvbWUgc3RyYW5nZSBDVFJMLU0KICBjaGFyYWN0ZXJzLiAoWm9sdGFuIEFycGFkZmZ5IGFuZCBKb2huIFcuIEhhbWlsbCkKLSBBZGRlZCBWTVMtc3BlY2lmaWMgZGVmYXVsdHMgZm9yIHRoZSAnaXNmbmFtZScgYW5kICdpc3ByaW50JyBvcHRpb25zLgogIChab2x0YW4gQXJwYWRmZnkpCi0gUmVtb3ZlZCBvc192bXNfb3NkZWYuaCwgaXQncyBubyBsb25nZXIgdXNlZC4KClRoZSBnemlwIHBsdWdpbiB1c2VkIGEgIjpub3JtYWwiIGNvbW1hbmQsIHRoaXMgZG9lc24ndCB3b3JrIHdoZW4gZHJvcHBpbmcgYQpjb21wcmVzc2VkIGZpbGUgb24gVmltLgoKSW4gdmVyeSByYXJlIHNpdHVhdGlvbnMgYSBiaW5hcnkgc2VhcmNoIGZvciBhIHRhZyB3b3VsZCBmYWlsLCBiZWNhdXNlIGFuCnVuaW5pdGlhbGl6ZWQgdmFsdWUgaGFwcGVucyB0byBiZSBoYWxmIHRoZSBzaXplIG9mIHRoZSB0YWcgZmlsZS4gKE5hcmVuZHJhbikKCldoZW4gdXNpbmcgQnVmRW50ZXIgYW5kIEJ1ZkxlYXZlIGF1dG9jb21tYW5kcyB0byBlbmFibGUvZGlzYWJsZSBhIG1lbnUsIGl0Cndhc24ndCB1cGRhdGVkIHJpZ2h0IGF3YXkuCgpXaGVuIGRvaW5nIGEgcmVwbGFjZSB3aXRoIHRoZSAiYyJvbmZpcm0gZmxhZywgdGhlIGN1cnNvciB3YXMgcG9zaXRpb25lZCBhZnRlcgp0aGUgcnVsZXIsIGluc3RlYWQgb2YgYWZ0ZXIgdGhlIHF1ZXN0aW9uLiAgV2l0aCBhIGxvbmcgcmVwbGFjZW1lbnQgc3RyaW5nIHRoZQpzY3JlZW4gY291bGQgc2Nyb2xsIHVwIGFuZCBjYXVzZSBhICJtb3JlIiBwcm9tcHQuICBOb3cgdGhlIG1lc3NhZ2UgaXMKdHJ1bmNhdGVkIHRvIG1ha2UgaXQgZml0LgoKTW90aWY6IFRoZSBhdXRvY29uZiBjaGVjayBmb3IgdGhlIFhwIGxpYnJhcnkgZGlkbid0IHdvcmsuCgpXaGVuICd2ZXJib3NlJyBpcyBzZXQgdG8gbGlzdCBsaW5lcyBvZiBhIHNvdXJjZWQgZmlsZSwgZGVmaW5pbmcgYSBmdW5jdGlvbgp3b3VsZCByZXNldCB0aGUgY291bnRlciB1c2VkIGZvciB0aGUgIm1vcmUiIHByb21wdC4KCkluIHRoZSBXaW4zMiBmaW5kL3JlcGxhY2UgZGlhbG9nLCBhICcvJyBjaGFyYWN0ZXIgY2F1c2VkIHByb2JsZW1zLiAgRXNjYXBlIGl0CndpdGggYSBiYWNrc2xhc2guCgpTdGFydGluZyBhIHNoZWxsIHdpdGggIjpzaCIgd2FzIGRpZmZlcmVudCBmcm9tIHN0YXJ0aW5nIGEgc2hlbGwgZm9yIENUUkwtWgp3aGVuIHN1c3BlbmRpbmcgZG9lc24ndCB3b3JrLiAgVGhleSBub3cgd29yayB0aGUgc2FtZSB3YXkuCgpKdW1waW5nIHRvIGEgZmlsZSBtYXJrIHdoaWxlIGluIGEgY2hhbmdlZCBidWZmZXIgZ2F2ZSBhICJtYXJrIG5vdCBzZXQiIGVycm9yLgoKIjpleGVjdXRlIGhpc3RnZXQoImNtZCIpIiBjYXVzZXMgYW4gZW5kbGVzcyBsb29wIGFuZCBjcmFzaGVkIFZpbS4gIE5vdyBjYXRjaAphbGwgY29tbWFuZHMgdGhhdCBjYXVzZSB0b28gbXVjaCByZWN1cnNpdmVuZXNzLgoKUmVtb3ZlZCAiRmFpbGVkIHRvIG9wZW4gaW5wdXQgbWV0aG9kIiBlcnJvciBtZXNzYWdlLCB0b28gbWFueSBwZW9wbGUgZ290IHRoaXMKd2hlbiB0aGV5IGRpZG4ndCB3YW50IHRvIHVzZSBhIFhJTS4KCkdVSTogV2hlbiBjb21waWxlZCB3aXRob3V0IHRoZSArd2luZG93cyBmZWF0dXJlLCB0aGUgc2Nyb2xsYmFyIHdvdWxkIHN0YXJ0CmJlbG93IGxpbmUgb25lLgoKUmVtb3ZlZCB0aGUgdHJpY2sgd2l0aCByZWRlZmluaW5nIGNoYXJhY3RlciBjbGFzcyBmdW5jdGlvbnMgZnJvbSByZWdleHAuYy4KCldpbjMyIEdVSTogRmluZCBkaWFsb2cgZ2l2ZXMgZm9jdXMgYmFjayB0byBtYWluIHdpbmRvdywgd2hlbiB0eXBpbmcgYQpjaGFyYWN0ZXIgbW91c2UgcG9pbnRlciBpcyBibGFua2VkLCBpdCBkaWRuJ3QgcmVhcHBlYXIgd2hlbiBtb3ZpbmcgaXQgaW4gdGhlCmRpYWxvZyB3aW5kb3cuIChWaW5jZSBOZWdyaSkKCldoZW4gcmVjb3JkaW5nIGFuZCB0eXBpbmcgYSBDVFJMLUMsIG5vIGNoYXJhY3RlciB3YXMgcmVjb3JkZWQuICBXaGVuIGluIEluc2VydAptb2RlIG9yIGNhbmNlbGxpbmcgaGFsZiBhIGNvbW1hbmQsIHBsYXlpbmcgYmFjayB0aGUgcmVjb3JkZWQgc2VxdWVuY2Ugd291bGRuJ3QKd29yay4gIE5vdyByZWNvcmQgdGhlIENUUkwtQy4KCldoZW4gdGhlIEdVSSB3YXMgc3RhcnRlZCwgbW91c2UgY29kZXMgZm9yIERFQyBhbmQgbmV0dGVybSB3ZXJlIHN0aWxsIGNoZWNrZWQKZm9yLgoKR1VJOiBXaGVuIHNjcm9sbGluZyBhbmQgJ3dyaXRlZGVsYXknIGlzIG5vbi16ZXJvLCB0aGUgY2hhcmFjdGVyIHVuZGVyIHRoZQpjdXJzb3Igd2FzIGRpc3BsYXllZCBpbiB0aGUgd3JvbmcgcG9zaXRpb24gKG9uZSBsaW5lIGFib3ZlL2JlbG93IHdpdGgKQ1RSTC1FL0NUUkwtWSkuCgpBICI6bm9ybWFsIiBjb21tYW5kIHdvdWxkIHJlc2V0IHRoZSAnc2Nyb2xsYmluZCcgaW5mby4gIENhdXNlcyBwcm9ibGVtcyB3aGVuCnVzaW5nIGEgIjpub3JtYWwiIGNvbW1hbmQgaW4gYW4gYXV0b2NvbW1hbmQgZm9yIG9wZW5pbmcgYSBmaWxlLgoKV2luZG93cyBHVUk6IGEgcG9pbnQgc2l6ZSB3aXRoIGEgZG90LCBsaWtlICI3LjUiLCB3YXNuJ3QgcmVjb2duaXplZC4gKE11cmFva2EKVGFybykKCldoZW4gJ3Njcm9sbGJpbmQnIHdhc24ndCBzZXQgd291bGQgc3RpbGwgcmVtZW1iZXIgdGhlIGN1cnJlbnQgcG9zaXRpb24sCndhc3RpbmcgdGltZS4KCkdUSzogQ3Jhc2ggd2hlbiAnc2hlbGwnIGRvZXNuJ3QgZXhpc3QgYW5kIGRvaW5nIjohbHMiLiAgVXNlIF9leGl0KCkgaW5zdGVhZCBvZgpleGl0KCkgd2hlbiB0aGUgY2hpbGQgY291bGRuJ3QgZXhlY3V0ZSB0aGUgc2hlbGwuCgpNdWx0aS1ieXRlOgotIEdVSSB3aXRoIGRvdWJsZS1ieXRlIGVuY29kaW5nOiBhIG1vdXNlIGNsaWNrIGluIGxlZnQgaGFsdmUgb2YgZG91YmxlLXdpZGUKICBjaGFyYWN0ZXIgcHV0IHRoZSBjdXJzb3IgaW4gcHJldmlvdXMgY2hhci4KLSBVc2luZyBkb3VibGUtYnl0ZSBlbmNvZGluZyBhbmQgJ3NlbGVjdGlvbicgaXMgImV4Y2x1c2l2ZSI6ICJ2ZXkiIGFuZCAiXlZleSIKICBpbmNsdWRlZCB0aGUgY2hhcmFjdGVyIGFmdGVyIHRoZSB3b3JkLgotIFdoZW4gdXNpbmcgYSBkb3VibGUtYnl0ZSBlbmNvZGluZyBhbmQgdGhlcmUgaXMgYSBsZWFkIGJ5dGUgYXQgdGhlIGVuZCBvZiB0aGUKICBsaW5lLCB0aGUgcHJlY2VkaW5nIGxpbmUgd291bGQgYmUgZGlzcGxheWVkLiAgImdhIiBhbHNvIHNob3dlZCB3cm9uZyBpbmZvLgotICJnZiIgZGlkbid0IGluY2x1ZGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUgY3Vyc29yIHByb3Blcmx5LgogIChNdXJhb2thIFRhcm8pCgpHVUk6IFRoZSBjdXJzb3Igd2FzIHNvbWV0aW1lcyBub3QgcmVtb3ZlZCB3aGVuIHNjcm9sbGluZy4gIENoYW5nZWQgdGhlIHBvbGljeQpmcm9tIHJlZHJhd2luZyB0aGUgY3Vyc29yIGFmdGVyIGVhY2ggY2FsbCB0byBndWlfd3JpdGUoKSB0byBvbmx5IHVwZGF0ZSBpdCBhdAp0aGUgZW5kIG9mIHVwZGF0ZV9zY3JlZW4oKSBvciB3aGVuIHNldHRpbmcgdGhlIGN1cnNvciBwb3NpdGlvbi4gIEFsc28gb25seQp1cGRhdGUgdGhlIHNjcm9sbGJhcnMgYXQgdGhlIGVuZCBvZiB1cGRhdGVfc2NyZWVuKCksIHRoYXQncyB0aGUgb25seSBwbGFjZQp3aGVyZSB0aGUgd2luZG93IHRleHQgbWF5IGhhdmUgYmVlbiBzY3JvbGxlZC4KCkZvcm1hdHRpbmcgIi8qPFRhYj5sb25nIHRleHQiLCBwcm9kdWNlZCAiKiA8VGFiPiIgaW4gdGhlIG5leHQgbGluZS4gIE5vdwpyZW1vdmUgdGhlIHNwYWNlIGJlZm9yZSB0aGUgVGFiLgpGb3JtYXR0aW5nICIvKjxUYWI+ICBsb25nIHRleHQiLCBwcm9kdWNlZCAiKiA8VGFiPiBsb25nIHRleHQiIGluIHRoZSBuZXh0CmxpbmUuICBOb3cga2VlcCB0aGUgc3BhY2UgYWZ0ZXIgdGhlIFRhYi4KCkluIHNvbWUgcGxhY2VzIG5vbi1BU0NJSSBhbHBoYWJldGljYWwgY2hhcmFjdGVycyB3ZXJlIGFjY2VwdGVkLCB3aGljaCBjb3VsZApjYXVzZSBwcm9ibGVtcy4gIEZvciBleGFtcGxlLCAiOlgiIChYIGJlaW5nIHN1Y2ggYSBjaGFyYWN0ZXIpLgoKV2hlbiBhIHBhdHRlcm4gbWF0Y2hlcyB0aGUgZW5kIG9mIHRoZSBsaW5lLCB0aGUgbGFzdCBjaGFyYWN0ZXIgaW4gdGhlIGxpbmUgd2FzCmhpZ2hsaWdodGVkIGZvciAnaGxzZWFyY2gnLiAgVGhhdCBsb29rcyB3cm9uZyBmb3IgIi9cJTNjIi4gIE5vdyBoaWdobGlnaHQgdGhlCmNoYXJhY3RlciBqdXN0IGFmdGVyIHRoZSBsaW5lLgoKTW90aWY6IElmIGEgZGlhbG9nIHdhcyBjbG9zZWQgYnkgY2xpY2tpbmcgb24gdGhlICJYIiBvZiB0aGUgd2luZG93IGZyYW1lIFZpbQp3b3VsZCBubyBsb25nZXIgcmVzcG9uZC4KCldoZW4gdXNpbmcgQ1RSTC1YIG9yIENUUkwtQSBvbiBhIG51bWJlciB3aXRoIG1hbnkgbGVhZGluZyB6ZXJvcywgVmltIHdvdWxkCmNyYXNoLiAoTWF0c3Vtb3RvKQoKV2hlbiAnaW5zZXJ0bW9kZScgaXMgc2V0LCB0aGUgbWFwcGluZyBpbiBtc3dpbi52aW0gZm9yIENUUkwtViBkaWRuJ3Qgd29yayBpbgpTZWxlY3QgbW9kZS4gIEluc2VydCBtb2RlIHdhc24ndCByZXN0YXJ0ZWQgYWZ0ZXIgb3ZlcndyaXRpbmcgdGhlIHRleHQuCk5vdyBhbGxvdyBuZXN0aW5nIEluc2VydCBtb2RlIHdpdGggaW5zZXJ0IGFuZCBjaGFuZ2UgY29tbWFuZHMuICBDVFJMLU8KY3dmb288RXNjPiBub3cgYWxzbyB3b3Jrcy4KCkNsaWNraW5nIHdpdGggdGhlIHJpZ2h0IG1vdXNlIGJ1dHRvbiBpbiBhbm90aGVyIHdpbmRvdyBzdGFydGVkIFZpc3VhbCBtb2RlLApidXQgdXNlZCB0aGUgc3RhcnQgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgd2luZG93LiAgQ2F1c2VkIG1sX2dldCBlcnJvcnMgd2hlbgp0aGUgbGluZSBudW1iZXIgd2FzIGludmFsaWQuICBOb3cgc3RheSBpbiB0aGUgc2FtZSB3aW5kb3cuCgpXaGVuICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiLCAiZ3YiIHNvbWV0aW1lcyBzZWxlY3RlZCBvbmUgY2hhcmFjdGVyIGZld2VyLgoKV2hlbiAnY29tbWVudHMnIGNvbnRhaW5zIG1vcmUgdGhhbiBvbmUgc3RhcnQvbWlkZGxlL2VuZCB0cmlwbGV0LCB0aGUgb3B0aW9uYWwKZmxhZ3MgY291bGQgYmUgbWl4ZWQgdXAuICBBbHNvIGRpZG4ndCBhbGlnbiB0aGUgZW5kIHdpdGggdGhlIG1pZGRsZSBwYXJ0LgoKRG91YmxlLXJpZ2h0LWNsaWNrIGluIFZpc3VhbCBtb2RlIGRpZG4ndCB1cGRhdGUgdGhlIHNob3duIG1vZGUuCgpXaGVuIHRoZSBOb3JtYWwgZ3JvdXAgaGFzIGEgZm9udCBuYW1lLCBpdCB3YXMgbmV2ZXIgdXNlZCB3aGVuIHN0YXJ0aW5nIHVwLgpOb3cgdXNlIGl0IHdoZW4gJ2d1aWZvbnQnIGFuZCAnZ3VpZm9udHNldCcgYXJlIGVtcHR5LgpTZXR0aW5nIGEgZm9udCBuYW1lIHRvIGEgaGlnaGxpZ2h0IGdyb3VwIGJlZm9yZSB0aGUgR1VJIHdhcyBzdGFydGVkIGRpZG4ndAp3b3JrLgoKIm1ha2UgdGVzdCIgZGlkbid0IHVzZSB0aGUgbmFtZSBvZiB0aGUgZ2VuZXJhdGVkIFZpbSBleGVjdXRhYmxlLgoKJ2NpbmRlbnQnIHByb2JsZW1zOgotIEFsaWduZWQgd2l0aCBhbiAiZWxzZSIgaW5zaWRlIGEgZG8td2hpbGUgbG9vcCBmb3IgYSBsaW5lIGJlbG93IHRoYXQgbG9vcC4KICAoTWVpa2VsIEJyYW5kbWV5ZXIpCi0gQSBsaW5lIGJlZm9yZSBhIGZ1bmN0aW9uIHdvdWxkIGJlIGluZGVudGVkIGV2ZW4gd2hlbiB0ZXJtaW5hdGVkIHdpdGggYQogIHNlbWljb2xvbi4gKE1laWtlbCBCcmFuZG1leWVyKQotICdjaW5kZW50JyBnYXZlIHRvbyBtdWNoIGluZGVudCB0byBhIGxpbmUgYWZ0ZXIgYSAifTsiIHRoYXQgZW5kcyBhbiBhcnJheQogIGluaXQuCi0gU3VwcG9ydCBkZWNsYXJhdGlvbiBsaW5lcyBlbmRpbmcgaW4gIiwiIGFuZCAiXCIuICAoTWVpa2VsIEJyYW5kbWV5ZXIpCi0gQSBjYXNlIHN0YXRlbWVudCBpbnNpZGUgYSBkby13aGlsZSBsb29wIHdhcyB1c2VkIGZvciBpbmRlbnRpbmcgYSBsaW5lIGFmdGVyCiAgdGhlIGRvLXdoaWxlIGxvb3AuIChNZWlrZWwgQnJhbmRtZXllcikKLSBXaGVuIHNraXBwaW5nIGEgc3RyaW5nIGluIGEgbGluZSB3aXRoIG9uZSBkb3VibGUgcXVvdGUgaXQgY291bGQgY29udGludWUgaW4KICB0aGUgcHJldmlvdXMgbGluZS4gKE1laWtlbCBCcmFuZG1leWVyKQoKV2hlbiAnbGlzdCcgaXMgc2V0LCAnaGxzZWFyY2gnIGRpZG4ndCBoaWdobGlnaHQgYSBtYXRjaCBhdCB0aGUgZW5kIG9mIHRoZQpsaW5lLiAgTm93IGhpZ2hsaWdodCB0aGUgJyQnLgoKVGhlIFBhc3RlIG1lbnUgaXRlbSBpbiB0aGUgbWVudSBiYXIsIHRoZSBwb3B1cCBtZW51IGFuZCB0aGUgdG9vbGJhciB3ZXJlIGFsbApkaWZmZXJlbnQuICBOb3cgbWFkZSB0aGVtIGFsbCBlcXVhbCB0byBob3cgaXQgd2FzIGRvbmUgaW4gbXN3aW4udmltLgoKc3RfZGV2IGNhbiBiZSBzbWFsbGVyIHRoYW4gInVuc2lnbmVkIi4gIFRoZSBjb21waWxlciBtYXkgZ2l2ZSBhbiBvdmVyZmxvdwp3YXJuaW5nLiAgQWRkZWQgYSBjb25maWd1cmUgY2hlY2sgZm9yIGRldl90LgoKQXRoZW5hOiBjbG9zaW5nIGEgY29uZmlybSgpIGRpYWxvZyBraWxsZWQgVmltLgoKVmFyaW91cyB0eXBvcyBpbiB0aGUgZG9jdW1lbnRhdGlvbi4gKE1hdHQgRHVuZm9yZCkKClB5dGhvbiBpbnRlcmZhY2U6IFRoZSBkZWZpbml0aW9uIG9mIF9ERUJVRyBjb3VsZCBjYXVzZSB0cm91YmxlLCB1bmRlZmluZSBpdC4KVGhlIGVycm9yIG1lc3NhZ2UgZm9yIG5vdCBiZWluZyBhYmxlIHRvIGxvYWQgdGhlIHNoYXJlZCBsaWJyYXJ5IHdhc24ndAp0cmFuc2xhdGVkLiAgKE11cmFva2EgVGFybykKCk1hYzogKERhbnkgU3QtQW1hbnQgYW5kIEF4ZWwgS2llbGhvcm4pCi0gU2V2ZXJhbCBmaXhlcy4KLSBWaW0gd2FzIGVhdGluZyA4MCUgb2YgdGhlIENQVSB0aW1lLgotIFRoZSBwcm9qZWN0IG9zX21hYy5wYnhwcm9qIGRpZG4ndCB3b3JrLCAgTW92ZWQgaXQgdG8gYSBzdWJkaXJlY3RvcnkuCi0gTWFkZSB0aGUgbWVudSBwcmlvcml0eSB3b3JrIGZvciB0aGUgbWVudWJhci4KLSBGaXhlZCBhIHByb2JsZW0gd2l0aCBkcmFnZ2luZyB0aGUgc2Nyb2xsYmFyLgotIENsZWFuZWQgdXAgdGhlIHZhcmlvdXMgI2lmZGVmcy4KClVuaXg6IFdoZW4gY2F0Y2hpbmcgYSBkZWFkbHkgc2lnbmFsIGFuZCB3ZSBrZWVwIGdldHRpbmcgb25lIHVzZSBfZXhpdCgpIHRvCmV4aXQgaW4gYSBxdWljayBhbmQgZGlydHkgd2F5LgoKQXRoZW5hIG1lbnUgb3JkZXJpbmcgZGlkbid0IHdvcmsgY29ycmVjdGx5LiAoRGF2aWQgSGFycmlzb24pCgpBICI6bWFrZSIgb3IgIjpncmVwIiBjb21tYW5kIHdpdGggYSBsb25nIGFyZ3VtZW50IGNvdWxkIGNhdXNlIGEgY3Jhc2guCgpEb2luZyAiOm5ldyBmaWxlIiBhbmQgdXNpbmcgIlF1aXQiIGZvciB0aGUgQVRURU5USU9OIGRpYWxvZyBzdGlsbCBvcGVuZWQgYSBuZXcKd2luZG93LgoKR1RLOiBXaGVuIHN0YXJ0aW5nIHRoZSBHVUkgYW5kIHRoZXJlIGlzIGFuIGVycm9yIGluIHRoZSAudmltcmMgZmlsZSwgZG9uJ3QKcHJlc2VudCB0aGUgd2FpdC1yZXR1cm4gcHJvbXB0LCBzaW5jZSB0aGUgbWVzc2FnZSB3YXMgZ2l2ZW4gaW4gdGhlIHRlcm1pbmFsLgoKV2hlbiB0aGVyZSB3YXMgYW4gZXJyb3IgaW4gYSAudmltcmMgZmlsZSB0aGUgdGVybWluYWwgd2hlcmUgZ3ZpbSB3YXMgc3RhcnRlZApjb3VsZCBiZSBjbGVhcmVkLiAgU2V0IG1zZ19yb3cgaW4gbWFpbi5jIGJlZm9yZSB3cml0aW5nIGFueSBtZXNzYWdlcy4KCkdUSyBhbmQgWDExIEdVSTogV2hlbiB0cnlpbmcgdG8gcmVhZCBjaGFyYWN0ZXJzIGZyb20gdGhlIHVzZXIgKGUuZy4gd2l0aAppbnB1dCgpKSBiZWZvcmUgdGhlIFZpbSB3aW5kb3cgd2FzIG9wZW5lZCBjYXVzZWQgVmltIHRvIGhhbmcgd2hlbiBpdCB3YXMKc3RhcnRlZCBmcm9tIHRoZSBkZXNrdG9wLgoKT1MvMzkwIHVzZXMgMzEgYml0IHBvaW50ZXJzLiAgVGhhdCBicm9rZSBzb21lIGNvbXB1dGF0aW9ucyB3aXRoIE1BWF9DT0wuClJlZHVjZSBNQVhfQ09MIGJ5IG9uZSBiaXQgZm9yIE9TLzM5MC4gKFJhbGYgU2NoYW5kbCkKCldoZW4gZGVmaW5pbmcgYSBmdW5jdGlvbiBhbmQgaXQgYWxyZWFkeSBleGlzdHMsIFZpbSBkaWRuJ3Qgc2F5IGl0IGV4aXN0ZWQKdW50aWwgYWZ0ZXIgdHlwaW5nIGl0LiAgTm93IGRvIHRoaXMgcmlnaHQgYXdheSB3aGVuIHR5cGluZyBpdC4KClRoZSBtZXNzYWdlIHJlbWVtYmVyZWQgZm9yIGRpc3BsYXlpbmcgbGF0ZXIgKGtlZXBfbXNnKSB3YXMgc29tZXRpbWVzIHBvaW50aW5nCmludG8gYSBnZW5lcmljIGJ1ZmZlciwgd2hpY2ggbWlnaHQgYmUgY2hhbmdlZCBieSB0aGUgdGltZSB0aGUgbWVzc2FnZSBpcwpkaXNwbGF5ZWQuICBOb3cgbWFrZSBhIGNvcHkgb2YgdGhlIG1lc3NhZ2UuCgpXaGVuIHVzaW5nIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBpbiBhIG1lbnUgYW5kIGEgdHJhaWxpbmcgYnl0ZSBpcyBhIGJhY2tzbGFzaCwKdGhlIG1lbnUgd291bGQgbm90IGJlIGNyZWF0ZWQgY29ycmVjdGx5LiAgKE11cmFva2EgVGFybykKVXNpbmcgYSBtdWx0aWJ5dGUgY2hhcmFjdGVyIGluIHRoZSBzdWJzdGl0dXRlIHN0cmluZyB3aGVyZSBhIHRyYWlsIGJ5dGUgaXMgYQpiYWNrc2xhc2ggZGlkbid0IHdvcmsuICAoTXVyYW9rYSBUYXJvKQoKV2hlbiBzZXR0aW5nICJ0X0NvIiBpbiBhIHZpbXJjIGZpbGUsIHRoZW4gc2V0dGluZyBpdCBhdXRvbWF0aWNhbGx5IGZyb20gYW4KeHRlcm0gdGVybXJlc3BvbnNlIGFuZCB0aGVuIHNldHRpbmcgaXQgYWdhaW4gbWFudWFsbHkgY2F1c2VkIGEgY3Jhc2guCgpXaGVuIGdldHRpbmcgdGhlIHZhbHVlIG9mIGEgc3RyaW5nIG9wdGlvbiB0aGF0IGlzIG5vdCBzdXBwb3J0ZWQsIHRoZSBudW1iZXIKemVybyB3YXMgcmV0dXJuZWQuICBUaGlzIGJyZWFrcyBhIGNoZWNrIGxpa2UgIiZlbmMgPT0gImFzZGYiLiAgTm93IGFuIGVtcHR5CnN0cmluZyBpcyByZXR1cm5lZCBmb3Igc3RyaW5nIG9wdGlvbnMuCgpDcmFzaGVkIHdoZW4gc3RhcnRpbmcgdGhlIEdUSyBHVUkgd2hpbGUgdXNpbmcgJ25vdGl0bGUnIGluIHRoZSB2aW1yYywgc2V0dGluZwondGl0bGUnIGluIHRoZSBndmltcmMgYW5kIHN0YXJ0aW5nIHRoZSBHVUkgd2l0aCAiOmd1aSIuICBDbG9zZWQgdGhlIGNvbm5lY3Rpb24KdG8gdGhlIFggc2VydmVyIGFjY2lkZW50YWxseS4KCkhhZCB0byBoaXQgcmV0dXJuIGFmdGVyIHNlbGVjdGluZyBhbiBlbnRyeSBmb3IgIjp0cyIuCgpUaGUgbWVzc2FnZSBmcm9tICI6Y24iIG1lc3NhZ2Ugd2FzIHNvbWV0aW1lcyBjbGVhcmVkLiAgTm93IGRpc3BsYXkgaXQgYWZ0ZXIKcmVkcmF3aW5nIGlmIGl0IGRvZXNuJ3QgY2F1c2UgYSBzY3JvbGwgKHRydW5jYXRlZCB3aGVuIG5lY2Vzc2FyeSkuCgpoYW5ndWxpbi5jIGRpZG4ndCBjb21waWxlIHdoZW4gdGhlIEdVSSB3YXMgZGlzYWJsZWQuICBEaXNhYmxlIGl0IHdoZW4gaXQgd29uJ3QKd29yay4KCldoZW4gc2V0dGluZyBhIHRlcm1jYXAgb3B0aW9uIGxpa2UgInRfQ08iLCB0aGUgdmFsdWUgY291bGQgYmUgZGlzcGxheWVkIGFzCmJlaW5nIGZvciBhIG5vcm1hbCBrZXkgd2l0aCBhIG1vZGlmaWVyLCBsaWtlICI8TS09PiIuCgpXaGVuIGV4cGFuZGluZyB0aGUgYXJndW1lbnQgbGlzdCwgZW50cmllcyB3aGljaCBhcmUgYSBkaXJlY3RvcnkgbmFtZSBkaWQgbm90CmdldCBpbmNsdWRlZC4gIFRoaXMgc3RvcHBlZCAidmltIGM6LyIgZnJvbSBvcGVuaW5nIHRoZSBmaWxlIGV4cGxvcmVyLgoKIjpzeW4gbWF0Y2ggc2QgIl4iIG5leHRncm91cD1hc2RmIiBza2lwcGVkIHRoZSBmaXJzdCBjb2x1bW4gYW5kIG1hdGNoZWQgdGhlCm5leHRncm91cCBpbiB0aGUgc2Vjb25kIGNvbHVtbi4KCkdVSTogV2hlbiAnbGF6eXJlZHJhdycgaXMgc2V0LCAnc2hvd21hdGNoJyBkaWRuJ3Qgd29yay4gIFJlcXVpcmVkIGZsdXNoaW5nCnRoZSBvdXRwdXQuCgpEb24ndCBkZWZpbmUgdGhlIDxOZXRNb3VzZT4gdGVybWNvZGUgaW4gYW4geHRlcm0sIHJlZHVjZXMgdGhlIHByb2JsZW0gd2hlbgpzb21lb25lIHR5cGVzIDxFc2M+IH0gaW4gSW5zZXJ0IG1vZGUuCgpNYWRlIHNsYXNoX2FkanVzdCgpIHdvcmsgY29ycmVjdGx5IGZvciBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuIChZYXN1aGlybwpNYXRzdW1vdG8pClVzaW5nIGEgZmlsZW5hbWUgaW4gQmlnNSBlbmNvZGluZyBmb3IgYXV0b2NvbW1hbmRzIGRpZG4ndCB3b3JrIChiYWNrc2xhc2ggaW4KdHJhaWxieXRlKS4gIChZYXN1aGlybyBNYXRzdW1vdG8pCgpET1MgYW5kIFdpbmRvd3M6IEV4cGFuZGluZyAqLnZpbSBhbHNvIG1hdGNoZWQgZmlsZS52aW1mb28uICBFeHBhbmQgcGF0aCBsaWtlClVuaXggdG8gYXZvaWQgcHJvYmxlbXMgd2l0aCBXaW5kb3dzIGRpciBmdW5jdGlvbnMuICBNZXJnZWQgdGhlIERPUyBhbmQgV2luMzIKZnVuY3Rpb25zLgoKV2luMzI6IEd2aW1leHQgY291bGQgbm90IGVkaXQgbW9yZSB0aGFuIGEgZmV3IGZpbGVzIGF0IG9uY2UsIHRoZSBsZW5ndGggb2YgdGhlCmFyZ3VtZW50IHdhcyBmaXhlZC4KCiJscyAtMSAqIHwgeGFyZ3MgdmltIiB3b3JrZWQsIGJ1dCB0aGUgaW5wdXQgd2FzIGluIGNvb2tlZCBtb2RlLiAgTm93IHN3aXRjaCB0bwpyYXcgbW9kZSB3aGVuIG5lZWRlZC4gIFVzZSBkdXAoKSB0byBjb3B5IHRoZSBzdGRlcnIgZmlsZSBkZXNjcmlwdG9yIHRvIHN0ZGluCnRvIG1ha2Ugc2hlbGwgY29tbWFuZHMgd29yay4gIE5vIGxvbmdlciByZXF1aXJlcyBhbiBleHRlcm5hbCBwcm9ncmFtIHRvIGRvCnRoaXMuCgpXaGVuIHVzaW5nICI6ZmlsZXR5cGUgb2ZmIiwgZnRwbHVnaW4gYW5kIGluZGVudCB1c2FnZSB3b3VsZCBiZSBzd2l0Y2hlZCBvZmYgYXQKdGhlIHNhbWUgdGltZS4gIERvbid0IGRvIHRoaXMsIHNldHRpbmcgJ2ZpbGV0eXBlJyBtYW51YWxseSBjYW4gc3RpbGwgdXNlIHRoZW0uCgpHVUk6IFdoZW4gd3JpdGluZyBhIGRvdWJsZS1ieXRlIGNoYXJhY3RlciwgaXQgY291bGQgYmUgc3BsaXQgdXAgaW4gdHdvIGNhbGxzCnRvIGd1aV93cml0ZSgpLCB3aGljaCBkb2Vzbid0IHdvcmsuICBOb3cgZmx1c2ggYmVmb3JlIHRoZSBvdXRwdXQgYnVmZmVyCmJlY29tZXMgZnVsbC4KCldoZW4gJ2xhc3RzdGF0dXMnIGlzIHNldCBhbmQgJ2NtZGhlaWdodCcgaXMgdHdvIG9yIGJpZ2dlciwgdGhlIGludHJvIG1lc3NhZ2UKd291bGQgYmUgd3JpdHRlbiBvdmVyIHRoZSBzdGF0dXMgbGluZS4KVGhlICI6aW50cm8iIGNvbW1hbmQgZGlkbid0IHdvcmsgd2hlbiB0aGVyZSB3YXNuJ3QgZW5vdWdoIHJvb20uCgpDb25maWd1cmluZyBmb3IgUnVieSBmYWlsZWQgd2l0aCBhIHJlY2VudCB2ZXJzaW9uIG9mIFJ1YnkuIChBa2lub3JpIE11c2hhKQoKQXRoZW5hOiBXaGVuIGRlbGV0aW5nIHRoZSBkaXJlY3RvcnkgaW4gd2hpY2ggVmltIHdhcyBzdGFydGVkLCB1c2luZyB0aGUgZmlsZQpicm93c2VyIG1hZGUgVmltIGV4aXQuICBSZW1vdmVkIHRoZSB1c2Ugb2YgWHRBcHBFcnJvcigpLgoKV2hlbiB1c2luZyBhdXRvY29uZiAyLjUwLCBVTklYIHdhcyBub3QgZGVmaW5lZC4gIE1vdmVkIHRoZSBjb21tZW50IGZvciAiI3VuZGVmClVOSVgiIHRvIGEgc2VwYXJhdGUgbGluZS4KCldpbjMyOiBEaXNhYmxlZCBfT25XaW5kb3dQb3NDaGFuZ2luZygpIHRvIG1ha2UgbWF4aW1pemUgd29yayBiZXR0ZXIuCgpXaW4zMjogQ29tcGlsaW5nIHdpdGggVkMgNC4wIGRpZG4ndCB3b3JrLiAoV2FsdGVyIEJyaXNjb2UpCgpBdGhlbmE6Ci0gRmluYWxseSBmaXhlZCB0aGUgcHJvYmxlbXMgd2l0aCBkZWxldGluZyBhIG1lbnUuIChEYXZpZCBIYXJyaXNvbikKLSBBdGhlbmE6IFdoZW4gY2xvc2luZyB0aGUgY29uZmlybSgpIGRpYWxvZywgd29ya2VkIGxpa2UgT0sgd2FzIHByZXNzZWQsCiAgaW5zdGVhZCBvZiBDYW5jZWwuCgpUaGUgZmlsZSBleHBsb3JlciBkaWRuJ3Qgd29yayBpbiBjb21wYXRpYmxlIG1vZGUsIGJlY2F1c2Ugb2YgbGluZQpjb250aW51YXRpb24uCgpEaWRuJ3QgZ2l2ZSBhbiBlcnJvciBtZXNzYWdlIGZvciAiOmRpZ3JhcGggYSIuCgpXaGVuIHVzaW5nIEV4IG1vZGUgaW4gdGhlIEdVSSBhbmQgdHlwaW5nIGEgc3BlY2lhbCBrZXksIDxCUz4gZGlkbid0IGRlbGV0ZSBpdApjb3JyZWN0bHkuICBOb3cgZGlzcGxheSAnPycgZm9yIGEgc3BlY2lhbCBrZXkuCgpXaGVuIGFuIG9wZXJhdG9yIGlzIHBlbmRpbmcsIGNsaWNraW5nIGluIGFub3RoZXIgd2luZG93IG1hZGUgaXQgYXBwbHkgdG8gdGhhdAp3aW5kb3csIGV2ZW4gdGhvdWdoIHRoZSBsaW5lIG51bWJlcnMgY291bGQgYmUgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4KCldoZW4gYSBmdW5jdGlvbiBjYWxsIGRvZXNuJ3QgaGF2ZSBhIHRlcm1pbmF0aW5nICIpIiBWaW0gY291bGQgY3Jhc2guCgpQZXJsIGludGVyZmFjZTogY291bGQgY3Jhc2ggb24gZXhpdCB3aXRoIHBlcmwgNS42LjEuIChBbmR1aW4gV2l0aGVycykKClVzaW5nICVQIGluICdlcnJvcmZvcm1hdCcgd2Fzbid0IGhhbmRsZWQgY29ycmVjdGx5LiAoVG9tYXMgWmVsbGVyaW4pCgpVc2luZyBhIHN5bnRheCBjbHVzdGVyIHRoYXQgaW5jbHVkZXMgaXRzZWxmIG1hZGUgVmltIGNyYXNoLgoKR1VJOiBXaXRoICdscycgc2V0IHRvIDIsIGRyYWdnaW5nIHRoZSBzdGF0dXMgbGluZSBhbGwgdGhlIHdheSB1cCwgdGhlbiBtYWtpbmcKdGhlIFZpbSB3aW5kb3cgc21hbGxlcjogQ291bGQgbm90IHRoZSBkcmFnIHN0YXR1cyBsaW5lIGFueW1vcmUuCgoidmltIC1jIHN0YXJ0aW5zZXJ0ISBmaWxlIiBwbGFjZWQgY3Vyc29yIG9uIGxhc3QgY2hhciBvZiBhIGxpbmUsIGluc3RlYWQgb2YKYWZ0ZXIgaXQuICBBICI6c2V0IiBjb21tYW5kIGluIHRoZSBidWZmZXIgbWVudSBzZXQgd19zZXRfY3Vyc3dhbnQuICBOb3cgZG9uJ3QKZG8gdGhpcyB3aGVuIHdfY3Vyc3dhbnQgaXMgTUFYQ09MLgoKV2luMzI6IFdoZW4gdGhlIGd2aW0gd2luZG93IHdhcyBtYXhpbWl6ZWQgYW5kIHNlbGVjdGluZyBhbm90aGVyIGZvbnQsIHRoZQp3aW5kb3cgd291bGQgbm8gbG9uZ2VyIGZpbGwgdGhlIHNjcmVlbi4KClRoZSBsaW5lIHdpdGggJ3Bhc3RldG9nZ2xlJyBpbiAiOm9wdGlvbnMiIGRpZG4ndCBzaG93IHRoZSByaWdodCB2YWx1ZSB3aGVuIGl0CmlzIGEgc3BlY2lhbCBrZXkuICBIaXR0aW5nIDxDUj4gZGlkbid0IHdvcmsgZWl0aGVyLgoKRm9ybWF0dGluZyB0ZXh0LCByZXN1bHRpbmcgaW4gYSAlIGxhbmRpbmcgaW4gdGhlIGZpcnN0IGxpbmUsIHJlcGVhdGVkIHRoZSAlIGluCnRoZSBmb2xsb3dpbmcgbGluZXMsIGxpa2UgaXQncyB0aGUgc3RhcnQgb2YgYSBjb21tZW50LgoKR1RLOiBXaGVuIGFkZGluZyBhIHRvb2xiYXIgaXRlbSB3aGlsZSBndmltIGlzIGFscmVhZHkgcnVubmluZywgaXQgd2Fzbid0CnBvc3NpYmxlIHRvIHVzZSB0aGUgdG9vbHRpcC4gIE5vdyBpdCB3b3JrcyBieSBhZGRpbmcgdGhlIHRvb2x0aXAgZmlyc3QuCgpUaGUgb3V0cHV0IG9mICJnIENUUkwtRyIgbWVudGlvbmVkICJDaGFyIiBidXQgaXQncyBhY3R1YWxseSBieXRlcy4KClNlYXJjaGluZyBmb3IgdGhlIGVuZCBvZiBhIG9uZWxpbmUgcmVnaW9uIGRpZG4ndCB3b3JrIGNvcnJlY3RseSB3aGVuIHRoZXJlIGlzCmFuIG9mZnNldCBmb3IgdGhlIGhpZ2hsaWdodGluZy4KClN5bnRheCBoaWdobGlnaHRpbmc6IFdoZW4gc3luY2hyb25pemluZyBvbiBDLWNvbW1lbnRzLCAvLyovIHdhcyBzZWVuIGFzIHRoZQpzdGFydCBvZiBhIGNvbW1lbnQuCgpXaW4zMjogV2l0aG91dCBzY3JvbGxiYXJzIHByZXNlbnQsIHRoZSBNUyBtb3VzZSBzY3JvbGwgd2hlZWwgZGlkbid0IHdvcmsuCkFsc28gaGFuZGxlIHRoZSBzY3JvbGxiYXJzIHdoZW4gdGhleSBhcmUgbm90IHZpc2libGUuCgpNb3RpZjogV2hlbiB0aGVyZSBpcyBubyByaWdodCBzY3JvbGxiYXIsIHRoZSBib3R0b20gc2Nyb2xsYmFyIHdvdWxkIHN0aWxsCmxlYXZlIHJvb20gZm9yIGl0LiAgKE1hcmNpbiBEYWxlY2tpKQoKV2hlbiBjaGFuZ2luZyAnZ3VpY3Vyc29yJyBhbmQgdGhlIHZhbHVlIGlzIGludmFsaWQsIHNvbWUgb2YgdGhlIGVmZmVjdHMgd291bGQKc3RpbGwgdGFrZSBwbGFjZS4gIE5vdyBmaXJzdCBjaGVjayBmb3IgZXJyb3JzIGFuZCBvbmx5IG1ha2UgdGhlIG5ldyB2YWx1ZQplZmZlY3RpdmUgd2hlbiBpdCdzIE9LLgoKVXNpbmcgIkEiIEluIFZpc3VhbCBibG9jayBtb2RlLCBhcHBlbmRpbmcgdG8gbGluZXMgdGhhdCBkb24ndCBleHRlbmQgaW50byB0aGUKYmxvY2ssIHBhZGRpbmcgd2FzIHdyb25nLgoKV2hlbiBwYXN0aW5nIGEgYmxvY2sgb2YgdGV4dCwgYSBjaGFyYWN0ZXIgdGhhdCBvY2N1cGllcyBtb3JlIHRoYW4gb25lIHNjcmVlbgpjb2x1bW4gY291bGQgYmUgZGVsZXRlZCBhbmQgc3BhY2VzIGluc2VydGVkIGluc3RlYWQuICBOb3cgb25seSBkbyB0aGF0IHdpdGggYQp0YWIuCgpGaXhlZCBjb252ZXJzaW9uIG9mIGRvY3VtZW50YXRpb24gdG8gSFRNTCB1c2luZyBQZXJsLiAoRGFuIFNoYXJwKQoKR2l2ZSBhbiBlcnJvciBtZXNzYWdlIHdoZW4gYSBtZW51IG5hbWUgc3RhcnRzIHdpdGggYSBkb3QuCgpBdm9pZCBhIGhhbmcgd2hlbiBleGVjdXRpbmcgYSBzaGVsbCBmcm9tIHRoZSBHVUkgb24gSFAtVVggYnkgcHVzaGluZyAicHRlbSIKZXZlbiB3aGVuIHN5cy9wdGVtLmggaXNuJ3QgcHJlc2VudC4KCldoZW4gY3JlYXRpbmcgdGhlIHRlbXAgZGlyZWN0b3J5LCBtYWtlIHN1cmUgdW1hc2sgaXMgMDc3LCBvdGhlcndpc2UgdGhlCmRpcmVjdG9yeSBpcyBub3QgYWNjZXNzaWJsZSB3aGVuIGl0IHdhcyBzZXQgdG8gMDE3Ny4KClVuaXg6IFdoZW4gcmVzaXppbmcgdGhlIHdpbmRvdyBhbmQgYSByZWRyYXcgaXMgYSBiaXQgc2xvdywgY291bGQgZ2V0IGEgd2luZG93CnJlc2l6ZSBldmVudCB3aGlsZSByZWRyYXdpbmcsIHJlc3VsdGluZyBpbiBhIG1lc3NlZCB1cCB3aW5kb3cuICBBbnkgaW5wdXQKKGUuZy4sIGEgbW91c2UgY2xpY2spIHdvdWxkIHJlZHJhdy4KClRoZSAiJUIiIGl0ZW0gaW4gdGhlIHN0YXR1cyBsaW5lIGJlY2FtZSB6ZXJvIGluIEluc2VydCBtb2RlICh0aGF0J3Mgbm9ybWFsKQpmb3IgYW5vdGhlciB0aGFuIHRoZSBjdXJyZW50IHdpbmRvdy4KClRoZSBtZW51IGVudHJpZXMgdG8gY29udmVydCB0byB4eGQgYW5kIGJhY2sgZGlkbid0IHdvcmsgaW4gSW5zZXJ0IG1vZGUuCgpXaGVuICI6dmdsb2JhbCIgZGlkbid0IGZpbmQgYSBsaW5lIHdoZXJlIHRoZSBwYXR0ZXJuIGRvZXNuJ3QgbWF0Y2gsIHRoZSBlcnJvcgptZXNzYWdlIHdvdWxkIGJlIHRoZSB3cm9uZyB3YXkgYXJvdW5kLgoKV2hlbiBpZ25vcmluZyBhIG11bHRpLWxpbmUgZXJyb3IgbWVzc2FnZSB3aXRoICIlLUEiLCB0aGUgY29udGludWF0aW9uIGxpbmVzCndvdWxkIGJlIHVzZWQgYW55d2F5LiAoU2VydmF0aXVzIEJyYW5kdCkKCiJncngiIG9uIGEgZG91YmxlLXdpZGUgY2hhcmFjdGVyIGluc2VydGVkICJ4IiwgaW5zdGVhZCBvZiByZXBsYWNpbmcgdGhlCmNoYXJhY3RlciB3aXRoICJ4ICIuICAiZ1IiIG9uIDx4eD4gKCdkaXNwbGF5JyBzZXQgdGhlICJ1aGV4IikgZGlkbid0IHJlcGxhY2UKYXQgYWxsLiAgV2hlbiBkb2luZyAiZ1J4eCIgb24gYSBjb250cm9sIGNoYXJhY3RlciB0aGUgZmlyc3QgIngiIHdvdWxkIGJlCmluc2VydGVkLCBicmVha2luZyB0aGUgYWxpZ25tZW50LgoKQWRkZWQgIjApIiB0byAnY2lua2V5cycsIHNvIHRoYXQgd2hlbiB0eXBpbmcgYSApIGl0IGlzIHB1dCBpbiB0aGUgc2FtZSBwbGFjZQphcyB3aGVyZSAiPT0iIHdvdWxkIHB1dCBpdC4KCldpbjMyOiBXaGVuIG1heGltaXplZCwgYWRkaW5nL3JlbW92aW5nIHRvb2xiYXIgZGlkbid0IHJlc2l6ZSB0aGUgdGV4dCBhcmVhLgoKV2hlbiB1c2luZyA8Qy1SaWdodE1vdXNlPiBhIGNvdW50IHdhcyBkaXNjYXJkZWQuCgpXaGVuIHR5cGluZyBDVFJMLVYgYW5kIDxSaWdodE1vdXNlPiBpbiB0aGUgY29tbWFuZCBsaW5lLCB3b3VsZCBpbnNlcnQKPExlZnRNb3VzZT4uCgpVc2luZyAidmlzIiBvciAidmFzIiB3aGVuICdzZWxlY3Rpb24nIGlzIGV4Y2x1c2l2ZSBkaWRuJ3QgaW5jbHVkZSB0aGUgbGFzdApjaGFyYWN0ZXIuCgpXaGVuIGFkZGluZyB0byBhbiBvcHRpb24gbGlrZSAnZ3JlcHByZycsIGxlYWRpbmcgc3BhY2Ugd291bGQgYmUgbG9zdC4gIERvbid0CmV4cGFuZCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2hlbiB0aGVyZSBpcyBubyBjb21tYSBzZXBhcmF0aW5nIHRoZSBpdGVtcy4KCkdVSTogV2hlbiB1c2luZyBhIGJvbGQtaXRhbGljIGZvbnQsIHdvdWxkIHN0aWxsIHVzZSB0aGUgYm9sZCB0cmljayBhbmQKdW5kZXJsaW5pbmcuCgpNb3RpZjogVGhlIGRlZmF1bHQgYnV0dG9uIGRpZG4ndCB3b3JrIGluIGRpYWxvZ3MsIHRoZSBmaXJzdCBvbmUgd2FzIGFsd2F5cwp1c2VkLiAgSGFkIHRvIGdpdmUgaW5wdXQgZm9jdXMgdG8gdGhlIGRlZmF1bHQgYnV0dG9uLgoKV2hlbiB1c2luZyBDVFJMLVQgdG8ganVtcCB3aXRoaW4gdGhlIHNhbWUgZmlsZSwgdGhlICcnIG1hcmsgd2Fzbid0IHNldC4KClVuZG8gd2Fzbid0IFZpIGNvbXBhdGlibGUgd2hlbiB1c2luZyB0aGUgJ2MnIGZsYWcgZm9yICI6cyIuICBOb3cgaXQgdW5kb2VzIHRoZQp3aG9sZSAiOnMiIGNvbW1hbmQgaW5zdGVhZCBvZiBlYWNoIGNvbmZpcm1lZCByZXBsYWNlbWVudC4KClRoZSBCdWZmZXJzIG1lbnUsIHdoZW4gdG9ybi1vZmYsIGRpc2FwcGVhcmVkIHdoZW4gYmVpbmcgcmVmcmVzaGVkLiAgQWRkIGEKZHVtbXkgaXRlbSB0byBhdm9pZCB0aGlzLgoKUmVtb3ZlZCBjYWxsaW5nIG1zZ19zdGFydCgpIGluIG1haW4oKSwgaXQgc2hvdWxkIG5vdCBiZSBuZWVkZWQuCgp2aW1fc3RycGJyaygpIGRpZCBub3Qgc3VwcG9ydCBtdWx0aWJ5dGUgY2hhcmFjdGVycy4gKE11cmFva2EgVGFybykKClRoZSBBbWlnYSB2ZXJzaW9uIGRpZG4ndCBjb21waWxlLCB0aGUgY29kZSB3YXMgdG9vIGJpZyBmb3IgcmVsYXRpdmUganVtcHMuCk1vdmVkIGEgZmV3IGZpbGVzIGZyb20gZXhfZG9jbWQuYyB0byBleF9jbWRzMi5jCgpXaGVuIGV2YWx1YXRpbmcgdGhlICI9IHJlZ2lzdGVyIHJlc3VsdGVkIGluIHRoZSAiPSByZWdpc3RlciBiZWluZyBjaGFuZ2VkLCBWaW0Kd291bGQgY3Jhc2guCgpXaGVuIGRvaW5nICI6dmlldyBmaWxlIiBhbmQgaXQgZmFpbHMsIHRoZSBjdXJyZW50IGJ1ZmZlciB3YXMgbWFkZSByZWFkLW9ubHkuCgpNb3RpZjogRm9yIHNvbWUgcGVvcGxlIHRoZSBzZXBhcmF0b3JzIGluIHRoZSB0b29sYmFyIGRpc2FwcGVhcmVkIHdoZW4gcmVzaXppbmcKdGhlIFZpbSB3aW5kb3cuIChNYXJjaW4gRGFsZWNraSkKCldpbjMyIEdVSTogd2hlbiBzZXR0aW5nICdsaW5lcycgdG8gYSBodWdlIG51bWJlciwgd291bGQgbm90IGNvbXB1dGUgdGhlCmF2YWlsYWJsZSBzcGFjZSBjb3JyZWN0bHkuICBXYXMgY291bnRpbmcgdGhlIG1lbnUgaGVpZ2h0IHR3aWNlLgoKQ29udmVyc2lvbiBvZiB0aGUgZG9jcyB0byBIVE1MIGRpZG4ndCBoYW5kbGUgdGhlIGxpbmUgd2l0aCB0aGUgK3F1aWNrZml4IHRhZwpjb3JyZWN0bHkuIChBbnRvbmlvIENvbG9tYm8pCgpXaW4zMjogZm5hbWVfY2FzZSgpIGRpZG4ndCBoYW5kbGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGNvcnJlY3RseS4gKFlhc3VoaXJvCk1hdHN1bW90bykKClRoZSBDeWd3aW4gdmVyc2lvbiBoYWQgdHJvdWJsZSB3aXRoIGZjaGRpcigpLiAgRG9uJ3QgdXNlIHRoYXQgZnVuY3Rpb24gZm9yCkN5Z3dpbi4KClRoZSBnZW5lcmljIGNoZWNrIGluIHNjcmlwdHMudmltIGZvciAiY29uZiIgc3ludGF4IHdhcyBkb25lIGJlZm9yZSBzb21lIGNoZWNrcwppbiBmaWxldHlwZS52aW0sIHJlc3VsdGluZyBpbiAiY29uZiIgc3ludGF4IHRvbyBvZnRlbi4KCkRvczMyOiBUeXBpbmcgbGFnZ2VkIGJlaGluZC4gIFdvdWxkIHdhaXQgZm9yIG9uZSBiaW9zdGljayB3aGVuIGNoZWNraW5nIGlmIGEKY2hhcmFjdGVyIGlzIGF2YWlsYWJsZS4KCkdUSzogV2hlbiBzZXR0aW5nICdjb2x1bW5zJyB3aGlsZSBzdGFydGluZyB1cCAiZ3ZpbSIsIHdvdWxkIHNldCB0aGUgd2lkdGggb2YKdGhlIHRlcm1pbmFsIGl0IHdhcyBzdGFydGVkIGluLgoKV2hlbiB1c2luZyBFU0MgaW4gSW5zZXJ0IG1vZGUsIGFuIGF1dG9pbmRlbnQgdGhhdCB3cmFwcyB0byB0aGUgbmV4dCBsaW5lCmNhdXNlZCB0aGUgY3Vyc29yIHRvIG1vdmUgdG8gdGhlIGVuZCBvZiB0aGUgbGluZSB0ZW1wb3JhcmlseS4gIFdoZW4gdGhlCmNoYXJhY3RlciBiZWZvcmUgdGhlIGN1cnNvciB3YXMgYSBkb3VibGUtd2lkZSBtdWx0aS1ieXRlIGNoYXJhY3RlciB0aGUgY3Vyc29yCndvdWxkIGJlIG9uIHRoZSByaWdodCBoYWx2ZSwgd2hpY2ggY2F1c2VzIHByb2JsZW1zIHdpdGggc29tZSB0ZXJtaW5hbHMuCgpEaWRuJ3QgaGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBjb3JyZWN0bHkgd2hlbiBleHBhbmRpbmcgYSBmaWxlIG5hbWUuCihZYXN1aGlybyBNYXRzdW1vdG8pCgpXaW4zMiBHVUk6IEVycm9ycyBnZW5lcmF0ZWQgYmVmb3JlIHRoZSBHVUkgaXMgZGVjaWRlZCB0byBzdGFydCB3ZXJlIG5vdApyZXBvcnRlZC4KCmdsb2JwYXRoKCkgZGlkbid0IHJlc2VydmUgZW5vdWdoIHJvb20gZm9yIGNvbmNhdGVuYXRlZCByZXN1bHRzLiAoQW5kdWluCldpdGhlcnMpCgpXaGVuIGV4cGFuZGluZyBhbiBvcHRpb24gdGhhdCBpcyB2ZXJ5IGxvbmcgYWxyZWFkeSwgZG9uJ3QgZG8gdGhlIGV4cGFuc2lvbiwgaXQKd291bGQgYmUgdHJ1bmNhdGVkIHRvIE1BWFBBVEhMLiAoQW5kdWluIFdpdGhlcnMpCgpXaGVuICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiLCB1c2luZyAiRngiIGluIFZpc3VhbCBtb2RlIG9ubHkgbW92ZWQgdW50aWwKanVzdCBhZnRlciB0aGUgY2hhcmFjdGVyLgoKV2hlbiB1c2luZyBJTUUgb24gdGhlIGNvbnNvbGUgdG8gZW50ZXIgYSBmaWxlIG5hbWUsIHRoZSBzY3JlZW4gbWF5IHNjcm9sbCB1cC4KUmVkcmF3IHRoZSBzY3JlZW4gdGhlbi4gKFlhc3VoaXJvIE1hdHN1bW90bykKCk1vdGlmOiBJbiB0aGUgZmluZC9yZXBsYWNlIGRpYWxvZyB0aGUgIlJlcGxhY2UiIGJ1dHRvbiBkaWRuJ3Qgd29yayBmaXJzdCB0aW1lLApzZWNvbmQgdGltZSBpdCByZXBsYWNlZCBhbGwgbWF0Y2hlcy4gIFJlbW92ZWQgdGhlIHVzZSBvZiAiOnMvLy9jIi4KR1RLOiBTaW1pbGFyIHByb2JsZW1zIHdpdGggdGhlIGZpbmQvcmVwbGFjZSBkaWFsb2csIG1vdmVkIHRoZSBjb2RlIHRvIGEgY29tbW9uCmZ1bmN0aW9uLgoKWDExOiBVc2Ugc2hhcmVkIEdDJ3MgZm9yIHRleHQuIChNYXJjaW4gRGFsZWNraSkKCiJdaSIgZm91bmQgdGhlIG1hdGNoIHVuZGVyIHRoZSBjdXJzb3IsIGluc3RlYWQgb2YgdGhlIGZpcnN0IG9uZSBiZWxvdyBpdC4KU2FtZSBmb3IgIl1JIiwgIl0gQ1RSTC1JIiwgIl1kIiwgIl1EIiBhbmQgIl0gQ1RSTC1EIi4KCldpbjE2OiBXaGVuIG1heGltaXplZCBhbmQgdGhlIGZvbnQgaXMgY2hhbmdlZCwgZG9uJ3QgY2hhbmdlIHRoZSB3aW5kb3cgc2l6ZS4KKFZpbmNlIE5lZ3JpKQoKV2hlbiAnbGJyJyBpcyBzZXQsIGRlbGV0aW5nIGEgYmxvY2sgb2YgdGV4dCBjb3VsZCBsZWF2ZSB0aGUgY3Vyc29yIGluIHRoZQp3cm9uZyBwb3NpdGlvbi4KCldpbjMyOiBXaGVuIG9wZW5pbmcgYSBmaWxlIHdpdGggdGhlICJFZGl0IHdpdGggVmltIiBwb3B1cCBtZW51IGVudHJ5LAp3aWxkY2FyZHMgd291bGQgY2F1c2UgdHJvdWJsZS4gIEFkZGVkIHRoZSAiLS1saXRlcmFsIiBhcmd1bWVudCB0byBhdm9pZApleHBhbmRpbmcgZmlsZSBuYW1lcy4KCldoZW4gdXNpbmcgImd2IiwgaXQgZGlkbid0IHJlc3RvcmUgdGhhdCAiJCIgd2FzIHVzZWQgaW4gVmlzdWFsIGJsb2NrIG1vZGUuCgpXaW4zMiBHVUk6IFdoaWxlIHdhaXRpbmcgZm9yIGEgc2hlbGwgY29tbWFuZCB0byBmaW5pc2gsIHRoZSB3aW5kb3cgd2Fzbid0CnJlZHJhd24gYXQgYWxsLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQoKU3ludGF4IGhpZ2hsaWdodGluZzogQSBtYXRjaCB0aGF0IGNvbnRpbnVlcyBvbiBhIG5leHQgbGluZSBiZWNhdXNlIG9mIGEKY29udGFpbmVkIHJlZ2lvbiBkaWRuJ3QgZW5kIHdoZW4gdGhhdCByZWdpb24gZW5kZWQuCgpUaGUgIjpzIiBjb21tYW5kIGRpZG4ndCBhbGxvdyBmbGFncyBsaWtlICdlJyBhbmQgJ2knIHJpZ2h0IGFmdGVyIGl0LgoKV2hlbiB1c2luZyAiOnMiIHRvIHNwbGl0IGEgbGluZSwgbWFya3Mgd2VyZSBtb3ZlZCB0byB0aGUgbmV4dCBsaW5lLiAgVmkga2VlcHMKdGhlbSBpbiB0aGUgZmlyc3QgbGluZS4KCldoZW4gdXNpbmcgIjpuIiAiOnJldyIsIHRoZSBwcmV2aW91cyBjb250ZXh0IG1hcmsgd2FzIGF0IHRoZSB0b3Agb2YgdGhlIGZpbGUsCndoaWxlIFZpIHB1dHMgaXQgaW4gdGhlIHNhbWUgcGxhY2UgYXMgdGhlIGN1cnNvci4gIE1hZGUgaXQgVmkgY29tcGF0aWJsZS4KCkZpeGVkIFZpIGluY29tcGF0aWJpbGl0eTogVGV4dCB3YXMgbm90IHB1dCBpbiByZWdpc3RlciAxIHdoZW4gdXNpbmcgImMiIGFuZAoiZCIgd2l0aCBhIG1vdGlvbiBjaGFyYWN0ZXIsIHdoZW4gZGVsZXRpbmcgd2l0aGluIG9uZSBsaW5lIHdpdGggb25lIG9mIHRoZQpjb21tYW5kczogJSAoICkgYDxjaGFyYWN0ZXI+IC8gPyBOIG4geyB9CgpXaW4zMiBHVUk6IFRoZSB0b29sdGlwIGZvciB0ZWFyLW9mZiBpdGVtcyByZW1haW5lZCB3aGVuIHRoZSB0ZWFyLW9mZiBpdGVtIHdhcwpubyBsb25nZXIgc2VsZWN0ZWQuCgpHVUk6IFdoZW4gdHlwaW5nICI6IiBhdCB0aGUgbW9yZSBwcm9tcHQsIHdvdWxkIHJldHVybiB0byBOb3JtYWwgbW9kZSBhbmQgbm90CnJlZHJhdyB0aGUgc2NyZWVuLgoKV2hlbiBzdGFydGluZyBWaW0gd2l0aCBhbiBhcmd1bWVudCAiLWMgZy9hdC9wIiB0aGUgcHJpbnRlZCBsaW5lcyB3b3VsZApvdmVyd3JpdGUgZWFjaCBvdGhlci4KCkJlT1M6IERpZG4ndCBjb21waWxlLiAgQ29uZmlndXJlIGRpZG4ndCBhZGQgdGhlIG9zX2Jlb3MgZmlsZXMsIHRoZSBRTlggY2hlY2sKcmVtb3ZlZCB0aGVtLiAgVmFyaW91cyBjaGFuZ2VzIHRvIG9zX2Jlb3MuY2MuIChKb3NodWEgSGFiZXJtYW4pClJlbW92ZWQgdGhlIGNoZWNrIGZvciB0aGUgaGFyZHdhcmUgcGxhdGZvcm0sIHRoZSBCZUJveCBoYXMgbm90IGJlZW4gcHJvZHVjZWQKZm9yIGEgbG9uZyB0aW1lIG5vdy4KCldpbjMyIEdVSTogZG9uJ3QgdXNlIGEgbWVzc2FnZSBib3ggd2hlbiB0aGUgc2hlbGwgcmV0dXJucyBhbiBlcnJvciBjb2RlLApkaXNwbGF5IHRoZSBtZXNzYWdlIGluIHRoZSBWaW0gd2luZG93LgoKTWFrZV9tdmMubWFrIGFsd2F5cyBpbmNsdWRlZCAiL2RlYnVnIiBmb3IgbGlua2luZy4gICJHVUk9bm8iIGFyZ3VtZW50IGRpZG4ndAp3b3JrLiAgVXNlICJERUJVRz15ZXMiIGluc3RlYWQgb2YgIkRFQlVHPTEiIHRvIG1ha2UgaXQgY29uc2lzdGVudC4gKERhbiBTaGFycCkKCldoZW4gYSBsaW5lIGluIHRoZSB0YWdzIGZpbGUgZW5kZWQgaW4gOyIgKG5vIFRBQiBmb2xsb3dpbmcpIHRoZSBjb21tYW5kIHdvdWxkCm5vdCBiZSByZWNvZ25pemVkIGFzIGEgc2VhcmNoIGNvbW1hbmQuCgpYMTE6IFRoZSBpbnB1dE1ldGhvZCByZXNvdXJjZSBuZXZlciB3b3JrZWQuICBEb24ndCB1c2UgdGhlICJub25lIiBpbnB1dCBtZXRob2QKZm9yIFNHSSwgaXQgYXBwYXJlbnRseSBtYWtlcyB0aGUgZmlyc3QgY2hhcmFjdGVyIGluIElucHV0IG1ldGhvZCBkcm9wcGVkLgoKRml4ZWQgaW5jb3JyZWN0IHRlc3RzIGluIG9zX21hYy5oLiAoQXhlbCBLaWVsaG9ybikKCldpbjMyIGNvbnNvbGU6IFdoZW4gdGhlIGNvbnNvbGUgd2hlcmUgVmltIHJ1bnMgaW4gaXMgY2xvc2VkLCBWaW0gY291bGQgaGFuZyBpbgp0cnlpbmcgdG8gcmVzdG9yZSB0aGUgd2luZG93IGljb24uIChZYXN1aGlybyBNYXRzdW1vdG8pCgpXaGVuIHVzaW5nICI6M2NhbGwgZnVuYygpIiBvciAiOjMsM2NhbGwgZnVuYygpIHRoZSBsaW5lIG51bWJlciB3YXMgaWdub3JlZC4KCldoZW4gJ3Nob3dicmVhaycgYW5kICdsaW5lYnJlYWsnIHdlcmUgYm90aCBzZXQsIFZpc3VhbCBoaWdobGlnaHRpbmcgc29tZXRpbWVzCmNvbnRpbnVlZCB1bnRpbCB0aGUgZW5kIG9mIHRoZSBsaW5lLgoKR1RLIEdVSTogVGVhcm9mZiBpdGVtcyB3ZXJlIGFkZGVkIGV2ZW4gd2hlbiAnZ3Vpb3B0aW9ucycgZGlkbid0IGNvbnRhaW4gJ3QnCndoZW4gc3RhcnRpbmcgdXAuCgpNUy1XaW5kb3dzOiBXaGVuIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBpbmNsdWRlcyBhICJ+Iiwgc2VhcmNoaW5nIGZpbGVzIHdpdGgKImdmIiBvciAiOmZpbmQiIGRpZG4ndCB3b3JrLiAgQSAiJCIgaW4gdGhlIGRpcmVjdG9yeSBoYWQgdGhlIHNhbWUgcHJvYmxlbS4KQWRkZWQgbWNoX2hhc19leHBfd2lsZGNhcmQoKSBmdW5jdGlvbnMuCgpXaGVuIHJlZHVjaW5nIHRoZSBWaW0gd2luZG93IGhlaWdodCB3aGlsZSBzdGFydGluZyB1cCwgd291bGQgZ2V0IGFuCm91dC1vZi1tZW1vcnkgZXJyb3IgbWVzc2FnZS4KCldoZW4gZWRpdGluZyBhIHZlcnkgbG9uZyBzZWFyY2ggcGF0dGVybiwgJ2luY3NlYXJjaCcgY2F1c2VkIHRoZSByZWRyYXcgb2YgdGhlCmNvbW1hbmQgbGluZSB0byBmYWlsLgoKTW90aWYgR1VJOiBPbiBzb21lIHN5c3RlbXMgdGhlICJIZWxwIiBtZW51IHdvdWxkIG5vdCBiZSBvbiB0aGUgZmFyIHJpZ2h0LCBhcwppdCBzaG91bGQgYmUuICBPbiBzb21lIG90aGVyIHN5c3RlbXMgKGVzcC4gSVJJWCkgdGhlIGNvbW1hbmQgbGluZSB3b3VsZCBub3QKY29tcGxldGVseSBzaG93LiAgU29sdXRpb24gaXMgdG8gb25seSByZXNpemUgdGhlIG1lbnViYXIgZm9yIExlc3N0aWYuCgpVc2luZyAiJSIgaW4gYSBsaW5lIHRoYXQgY29udGFpbnMgIlxcIiB0d2ljZSBkaWRuJ3QgdGFrZSBjYXJlIG9mIHRoZSBxdW90ZXMKcHJvcGVybHkuICBOb3cgbWFrZSBhIGRpZmZlcmVuY2UgYmV0d2VlbiBcIiBhbmQgXFwiLgoKRm9yIG5vbi1Vbml4IHN5c3RlbXMgYSBkdW1teSBmaWxlIGlzIGNyZWF0ZWQgd2hlbiBmaW5kaW5nIGEgc3dhcCBuYW1lIHRvCmRldGVjdCBhIDguMyBmaWxlc3lzdGVtLiAgV2hlbiB0aGVyZSBpcyBhbiBleGlzdGluZyBzd2FwIGZpbGUsIHdvdWxkIGdldCBhCndhcm5pbmcgZm9yIHRoZSBmaWxlIGJlaW5nIGNyZWF0ZWQgb3V0c2lkZSBvZiBWaW0uICBBbHNvLCB3aGVuIGNsb3NpbmcgdGhlIFZpbQp3aW5kb3cgdGhlIGZpbGUgd291bGQgcmVtYWluLgoKTW90aWY6IFRoZSBtZW51IGhlaWdodCB3YXMgYWx3YXlzIGNvbXB1dGVkLCB1c2luZyBhICItbWVudWhlaWdodCIgYXJndW1lbnQKd2FzIHNldHRpbmcgdGhlIHJvb20gZm9yIHRoZSBjb21tYW5kIGxpbmUuICBOb3cgbWFrZSBjbGVhciB0aGUgYXJndW1lbnQgaXMgbm90CnN1cHBvcnRlZC4KCkZvciBzb21lIChFQkNESUMpIHN5c3RlbXMsIFBPVU5EIHdhcyBlcXVhbCB0byAnIycuICBBZGRlZCBhbiAjaWYgZm9yIHRoYXQgdG8KYXZvaWQgYSBkdXBsaWNhdGUgY2FzZSBpbiBhIHN3aXRjaC4KClRoZSBHVUkgbWF5IGhhdmUgcHJvYmxlbXMgd2hlbiBmb3JraW5nLiAgQWx3YXlzIGNhbGwgX2V4aXQoKSBpbnN0ZWFkIG9mIGV4aXQoKQppbiB0aGUgcGFyZW50LCB0aGUgY2hpbGQgd2lsbCBjYWxsIGV4aXQoKS4KCldpbjMyIEdVSTogQWNjZW50ZWQgY2hhcmFjdGVycyB3ZXJlIG9mdGVuIHdyb25nIGluIGRpYWxvZ3MgYW5kIHRlYXJvZmYgbWVudXMuCk5vdyB1c2UgQ1BfQUNQIGluc3RlYWQgb2YgQ1BfT0VNQ1AuIChWaW5jZSBOZWdyaSkKCldoZW4gZGlzcGxheWluZyB0ZXh0IHdpdGggc3ludGF4IGhpZ2hsaWdodGluZyBjYXVzZXMgYW4gZXJyb3IgKGUuZy4sIHJ1bm5pbmcKb3V0IG9mIHN0YWNrKSB0aGUgc3ludGF4IGhpZ2hsaWdodGluZyBpcyBkaXNhYmxlZCB0byBhdm9pZCBmdXJ0aGVyIG1lc3NhZ2VzLgoKV2hlbiBhIGNvbW1hbmQgaW4gYSAudmltcmMgb3IgLmd2aW1yYyBjYXVzZXMgYW4gQVRURU5USU9OIHByb21wdCwgYW5kIFZpbSB3YXMKc3RhcnRlZCBmcm9tIHRoZSBkZXNrdG9wIChubyBwbGFjZSB0byBkaXNwbGF5IG1lc3NhZ2VzKSBpdCB3b3VsZCBoYW5nLiAgTm93Cm9wZW4gdGhlIEdVSSB3aW5kb3cgZWFybHkgdG8gYmUgYWJsZSB0byBkaXNwbGF5IHRoZSBtZXNzYWdlcyBhbmQgcG9wIHVwIHRoZQpkaWFsb2cuCgoicjxDUj4iIG9uIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgZGVsZXRlZCBvbmx5IHRoZSBmaXJzdCBieXRlIG9mIHRoZQpjaGFyYWN0ZXIuICAiM3I8Q1I+IiBkZWxldGVkIHRocmVlIGJ5dGVzIGluc3RlYWQgb2YgdGhyZWUgY2hhcmFjdGVycy4KCldoZW4gaW50ZXJydXB0aW5nIHJlYWRpbmcgYSBmaWxlLCBWaSBjb25zaWRlcnMgdGhlIGJ1ZmZlciBtb2RpZmllZC4gIEFkZGVkIHRoZQonaScgZmxhZyBpbiAnY3BvcHRpb25zJyBmbGFnIGZvciB0aGlzICh3ZSBkb24ndCB3YW50IGl0IG1vZGlmaWVkIHRvIGJlIGFibGUgdG8KZG8gIjpxIikuCgpXaGVuIHVzaW5nIGFuIGl0ZW0gaW4gJ2d1aWN1cnNvcicgdGhhdCBzdGFydHMgd2l0aCBhIGNvbG9uLCBWaW0gd291bGQgZ2V0CnN0dWNrIG9yIGNyYXNoLgoKV2hlbiBwdXR0aW5nIGEgZmlsZSBtYXJrIGluIGEgaGVscCBmaWxlIGFuZCBsYXRlciBqdW1waW5nIGJhY2sgdG8gaXQsIHRoZQpvcHRpb25zIHdvdWxkIG5vdCBiZSBzZXQuICBFeHRlbmRlZCB0aGUgbW9kZWxpbmUgaW4gYWxsIGhlbHAgZmlsZXMgdG8gbWFrZQp0aGlzIHdvcmsgYmV0dGVyLgoKV2hlbiBhIG1vZGVsaW5lIGNvbnRhaW5lZCAiOjoiIHRoZSBsb2NhbCBvcHRpb24gdmFsdWVzIHdvdWxkIGJlIHByaW50ZWQuICBOb3cKaWdub3JlIGl0LgoKU29tZSBoZWxwIGZpbGVzIGRpZCBub3QgdXNlIGEgOC4zIG5hbWVzLCB3aGljaCBjYXVzZXMgcHJvYmxlbXMgd2hlbiB1c2luZwpNUy1ET1MgdW56aXAuICBSZW5hbWVkICJtdWx0aWJ5dGUudHh0IiB0byAibWJ5dGUudHh0IiwgInJpZ2h0bGVmdC50eHQiIHRvCiJyaWxlZnQudHh0IiwgInRhZ3NlYXJjaC50eHQiIHRvICJ0YWdzcmNoLnR4dCIsICJvc19yaXNjb3MudHh0IiB0bwoib3NfcmlzYy50eHQiLgoKV2hlbiBWaXN1YWwgbW9kZSBpcyBibG9ja3dpc2UsIHVzaW5nICJpdyIgb3IgImF3IiBtYWRlIGl0IGNoYXJhY3Rlcndpc2UuICBUaGF0CmRvZXNuJ3Qgc2VlbSByaWdodCwgb25seSBkbyB0aGlzIHdoZW4gaW4gbGluZXdpc2UgbW9kZS4gIEJ1dCB0aGVuIGRvIGl0CmFsd2F5cywgbm90IG9ubHkgd2hlbiBzdGFydCBhbmQgZW5kIG9mIFZpc3VhbCBtb2RlIGFyZSBlcXVhbC4KCldoZW4gdXNpbmcgInZpdyIgb24gYSBzaW5nbGUtbGV0dGVyIHdvcmQgYW5kICdzZWxlY3Rpb24nIGlzIGV4Y2x1c2l2ZSwgd291bGQKbm90IGluY2x1ZGUgdGhlIHdvcmQuCgpXaGVuIGZvcm1hdHRpbmcgdGV4dCBmcm9tIEluc2VydCBtb2RlLCB1c2luZyBDVFJMLU8sIGNvdWxkIG1lc3MgdXAgdW5kbwppbmZvcm1hdGlvbi4KCldoaWxlIHdyaXRpbmcgYSBmaWxlIChhbHNvIGZvciB0aGUgYmFja3VwIGZpbGUpIHRoZXJlIHdhcyBubyBjaGVjayBmb3IgYW4KaW50ZXJydXB0IChoaXR0aW5nIENUUkwtQykuICBWaW0gY291bGQgaGFuZyB3aGVuIHdyaXRpbmcgYSBsYXJnZSBmaWxlIG92ZXIgYQpzbG93IG5ldHdvcmssIGFuZCBtb3ZpbmcgdGhlIG1vdXNlIGRpZG4ndCBtYWtlIGl0IGFwcGVhciAod2hlbiAnbW91c2VoaWRlJyBpcwpzZXQpIGFuZCB0aGUgc2NyZWVuIHdhc24ndCB1cGRhdGVkIGluIHRoZSBHVUkuICBBbHNvIGFsbG93IGludGVycnVwdGluZyB3aGVuCnN5bmNpbmcgdGhlIHN3YXAgZmlsZSwgaXQgY2FuIHRha2UgYSBsb25nIHRpbWUuCgpXaGVuIHVzaW5nICI6bWtzZXNzaW9uIiB3aGlsZSB0aGVyZSBpcyBoZWxwIHdpbmRvdywgaXQgd291bGQgbGF0ZXIgYmUgcmVzdG9yZWQKdG8gdGhlIHJpZ2h0IGZpbGUgYnV0IG5vdCBtYXJrZWQgYXMgYSBoZWxwIGJ1ZmZlci4gICI6aGVscCIgd291bGQgdGhlbiBvcGVuCmFub3RoZXIgd2luZG93LiAgTm93IHVzZSB0aGUgdmFsdWUgImhlbHAiIGZvciAnYnVmdHlwZScgdG8gbWFyayBhIGhlbHAgYnVmZmVyLgoKVGhlIHNlc3Npb24gZmlsZSBjb250YWluZWQgYWJzb2x1dGUgcGF0aCBuYW1lcyBpbiBvcHRpb24gdmFsdWVzLCB0aGF0IGRvZXNuJ3QKd29yayB3aGVuIHRoZSBob21lIGRpcmVjdG9yeSBkZXBlbmRzIG9uIHRoZSBzaXR1YXRpb24uICBSZXBsYWNlIHRoZSBob21lCmRpcmVjdG9yeSB3aXRoIH4vIHdoZW4gcG9zc2libGUuCgpXaGVuIHVzaW5nICdzaG93YnJlYWsnIGEgVEFCIGp1c3QgYWZ0ZXIgdGhlIHNob3duIGJyZWFrIHdvdWxkIG5vdCBiZSBjb3VudGVkCmNvcnJlY3RseSwgdGhlIGN1cnNvciB3b3VsZCBiZSBwb3NpdGlvbmVkIHdyb25nLgoKV2l0aCAnc2hvd2JyZWFrJyBzZXQgdG8gIi0tLT4iIG9yICItLS0tLS0tPiIgYW5kICdzdHMnIHNldCB0byA0LCBpbnNlcnRpbmcKdGFicyBkaWQgbm90IHdvcmsgcmlnaHQuICBDb3VsZCBjYXVzZSBhIGNyYXNoLiAgQmFja3NwYWNpbmcgd2FzIGFsc28gd3JvbmcsCmNvdWxkIGdldCBzdHVjayBhdCBhIGxpbmUgYnJlYWsuCgpXaW4zMjogY3Jhc2hlZCB3aGVuIHRlYXJpbmcgb2ZmIGEgbWVudSB3aXRoIG92ZXIgMzAwIGl0ZW1zLgoKR1VJOiBBIG1lbnUgb3IgdG9vbGJhciBpdGVtIHdvdWxkIGFwcGVhciB3aGVuIG9ubHkgYSB0b29sdGlwIHdhcyBkZWZpbmVkIGZvcgppdC4KCldoZW4gJ3Njcm9sbG9mZicgaXMgbm9uLXplcm8gYW5kICIkIiBpcyBpbiAnY3BvcHRpb25zJywgdXNpbmcgInMiIHdoaWxlIHRoZQpsYXN0IGxpbmUgb2YgdGhlIGZpbGUgaXMgdGhlIGZpcnN0IGxpbmUgb24gc2NyZWVuLCB0aGUgdGV4dCB3YXNuJ3QgZGlzcGxheWVkLgoKV2hlbiBydW5uaW5nICJhdXRvY29uZiIsIGRlbGV0ZSB0aGUgY29uZmlndXJlIGNhY2hlIHRvIGZvcmNlIHN0YXJ0aW5nIGNsZWFubHkKd2hlbiBjb25maWd1cmUgaXMgcnVuIGFnYWluLgoKV2hlbiBjaGFuZ2luZyB0aGUgTm9ybWFsIGNvbG9ycyBmb3IgY3Rlcm0sIHRoZSB2YWx1ZSBvZiAnYmFja2dyb3VuZCcgd2FzCmNoYW5nZWQgZXZlbiB3aGVuIHRoZSBHVUkgd2FzIHVzZWQuCgpUaGUgd2FybmluZyBmb3IgYSBtaXNzaW5nIHZpbXJ1bi5leGUgd2FzIGFsd2F5cyBnaXZlbiBvbiBzdGFydHVwLCBidXQgc29tZQpwZW9wbGUganVzdCBlZGl0aW5nIGEgZmlsZSBkb24ndCBuZWVkIHRvIGJlIGJvdGhlcmVkIGJ5IGl0LiAgT25seSBzaG93IGl0IHdoZW4KdmltcnVuIHdvdWxkIGJlIHVzZWQuCgpXaGVuIHVzaW5nICIlIiBpbiBhIG11bHRpYnl0ZSB0ZXh0IGl0IGNvdWxkIGdldCBjb25mdXNlZCBieSB0cmFpbGJ5dGVzIHRoYXQKbWF0Y2guIChNdXJhb2thIFRhcm8pCgpUZXJtY2FwIGVudHJ5IGZvciBSaXNjT1Mgd2FzIHdyb25nLCB1c2luZyA3IGFuZCA4IGluIG9jdGFsIGNvZGVzLgoKQXRoZW5hOiBUaGUgdGl0bGUgb2YgYSBkaWFsb2cgd2luZG93IGFuZCB0aGUgZmlsZSBzZWxlY3RvciB3aW5kb3cgd2VyZSBub3QKc2V0LiAoRGF2aWQgSGFycmlzb24pCgpUaGUgImh0bWxMaW5rIiBoaWdobGlnaHQgZ3JvdXAgc3BlY2lmaWVkIGNvbG9ycywgd2hpY2ggZ2l2ZXMgcHJvYmxlbXMgd2hlbgp1c2luZyBhIGNvbG9yIHNjaGVtZS4gIEFkZGVkIHRoZSAiVW5kZXJsaW5lZCIgaGlnaGxpZ2h0IGdyb3VwIGZvciB0aGlzLgoKQWZ0ZXIgdXNpbmcgIjppbnNlcnQiIG9yICI6Y2hhbmdlIiB0aGUgJ1sgbWFyayB3b3VsZCBiZSBvbmUgbGluZSB0b28gbG93LgoKV2hlbiBsb29raW5nIGZvciB0aGUgZmlsZSBuYW1lIGFmdGVyIGEgbWF0Y2ggd2l0aCAnaW5jbHVkZScgb25lIGNoYXJhY3RlciB3YXMKc2tpcHBlZC4gIFNhbWUgZm9yICdkZWZpbmUnLgoKV2luMzIgYW5kIERKR1BQOiBXaGVuIGVkaXRpbmcgYSBmaWxlIHdpdGggYSBzaG9ydCBuYW1lIGluIGEgZGlyZWN0b3J5LCBhbmQKZWRpdGluZyB0aGUgc2FtZSBmaWxlIGJ1dCB1c2luZyB0aGUgbG9uZyBuYW1lLCB3b3VsZCBlbmQgdXAgd2l0aCB0d28gYnVmZmVycwpvbiB0aGUgc2FtZSBmaWxlLgoKImdmIiBvbiBhIGZpbGVuYW1lIHRoYXQgc3RhcnRzIHdpdGggIi4uLyIgb25seSB3b3JrZWQgd2hlbiB0aGUgZmlsZSBiZWluZwplZGl0ZWQgaXMgaW4gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LiAgQW4gaW5jbHVkZSBmaWxlIHNlYXJjaCBkaWRuJ3Qgd29yawpwcm9wZXJseSBmb3IgZmlsZXMgc3RhcnRpbmcgd2l0aCAiLi4vIiBvciAiLiIuICBOb3cgc2VhcmNoIGJvdGggcmVsYXRpdmUgdG8KdGhlIGZpbGUgYW5kIHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeS4KCldoZW4gJ3ByaW50aGVhZGVyJywgJ3RpdGxlc3RyaW5nJywgJ2ljb25zdHJpbmcnLCAncnVsZXJmb3JtYXQnIG9yICdzdGF0dXNsaW5lJwpjb250YWluZWQgIiV7IiBidXQgbm8gZm9sbG93aW5nICJ9IiBtZW1vcnkgd2FzIGNvcnJ1cHRlZCBhbmQgYSBjcmFzaCBjb3VsZApoYXBwZW4uCgoiOjBhcHBlbmQiIGFuZCB0aGVuIGluc2VydGluZyB0d28gbGluZXMgZGlkIG5vdCByZWRyYXcgdGhlIGJsYW5rIGxpbmVzIHRoYXQKd2VyZSBzY3JvbGxlZCBiYWNrIGRvd24uCgpXaGVuIHVzaW5nIGluc2VydCBtb2RlIGNvbXBsZXRpb24gaW4gYSBuYXJyb3cgd2luZG93LCB0aGUgbWVzc2FnZSBjYXVzZWQgYQpzY3JvbGwgdXAuICBOb3cgc2hvcnRlbiB0aGUgbWVzc2FnZSBpZiBpdCBkb2Vzbid0IGZpdCBhbmQgYXZvaWQgd3JpdGluZyB0aGUKcnVsZXIgb3ZlciB0aGUgbWVzc2FnZS4KClhJTSBzdGlsbCBkaWRuJ3Qgd29yayBjb3JyZWN0bHkgb24gc29tZSBzeXN0ZW1zLCBlc3BlY2lhbGx5IFNHSS9JUklYLiAgQWRkZWQKdGhlICdpbWRpc2FibGUnIG9wdGlvbiwgd2hpY2ggaXMgc2V0IGJ5IGRlZmF1bHQgZm9yIHRoYXQgc3lzdGVtLgoKUGF0Y2ggNi4wYXcuMDA4ClByb2JsZW06ICAgIFdoZW4gdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBhIGZpbGUgbmFtZSBpcyBvdmVyIDEyNywgdGhlIEJ1ZmZlcnMKCSAgICBtZW51IGVudHJ5IHdvdWxkIGdldCBhIG5lZ2F0aXZlIHByaW9yaXR5IGFuZCBjYXVzZSBwcm9ibGVtcy4KU29sdXRpb246ICAgUmVkdWNlIHRoZSBtdWx0aXBsaWVyIGZvciB0aGUgZmlyc3QgY2hhcmFjdGVyIHdoZW4gY29tcHV0aW5nCgkgICAgdGhlIGhhc2ggdmFsdWUgZm9yIGEgQnVmZmVycyBtZW51IGVudHJ5LgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMGF3LjAxMApQcm9ibGVtOiAgICBXaW4zMjogIjpicm93c2UgZWRpdCBkaXIvZGlyIiBkaWRuJ3Qgd29yay4gKFZpa2FzKQpTb2x1dGlvbjogICBDaGFuZ2Ugc2xhc2hlcyB0byBiYWNrc2xhc2hlcyBpbiB0aGUgZGlyZWN0b3J5IHBhc3NlZCB0byB0aGUgZmlsZQoJICAgIGJyb3dzZXIuCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKQXRoZW5hIGZpbGUgYnJvd3NlcjogT24gc29tZSBzeXN0ZW1zIHdjc3RvbWJzKCkgY2FuJ3QgYmUgdXNlZCB0byBnZXQgdGhlCmxlbmd0aCBvZiBhIG11bHRpLWJ5dGUgc3RyaW5nLiAgVXNlIHRoZSBtYXhpbXVtIGxlbmd0aCB0aGVuLiAoWWFzdWhpcm8KTWF0c3Vtb3RvKQoKUGF0Y2ggNi4wYXguMDAxClByb2JsZW06ICAgIFdoZW4gJ3BhdGNobW9kZScgaXMgc2V0LCBhcHBlbmRpbmcgdG8gYSBmaWxlIGdpdmVzIGFuIGVtcHR5CgkgICAgb3JpZ2luYWwgZmlsZS4gKEVkIFJhbHN0b24pClNvbHV0aW9uOiAgIEFsc28gbWFrZSBhIGJhY2t1cCBjb3B5IHdoZW4gYXBwZW5kaW5nIGFuZCAncGF0Y2htb2RlJyBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjBheC4wMDIKUHJvYmxlbTogICAgV2hlbiAncGF0Y2htb2RlJyBpcyBzZXQsIGFwcGVuZGluZyB0byBhIGNvbXByZXNzZWQgZmlsZSBnaXZlcyBhbgoJICAgIHVuY29tcHJlc3NlZCBvcmlnaW5hbCBmaWxlLiAoRWQgUmFsc3RvbikKU29sdXRpb246ICAgQ3JlYXRlIHRoZSBvcmlnaW5hbCBmaWxlIGJlZm9yZSBkZWNvbXByZXNzaW5nLgpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2d6aXAudmltCgpQYXRjaCA2LjBheC4wMDUKUHJvYmxlbTogICAgQXRoZW5hIGZpbGUgc2VsZWN0b3Iga2VlcHMgdGhlIHRpdGxlIG9mIHRoZSBmaXJzdCBpbnZvY2F0aW9uLgpTb2x1dGlvbjogICBTZXQgdGhlIHRpdGxlIGVhY2ggdGltZSB0aGUgZmlsZSBzZWxlY3RvciBpcyBvcGVuZWQuIChEYXZpZAoJICAgIEhhcnJpc29uKQpGaWxlczoJICAgIHNyYy9ndWlfYXRfZnMuYwoKUGF0Y2ggNi4wYXguMDA3ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgR1BNIChtb3VzZSBkcml2ZXIgaW4gYSBMaW51eCBjb25zb2xlKSBhIGRvdWJsZSBjbGljayBpcwoJICAgIGludGVycHJldGVkIGFzIGEgc2Nyb2xsIHdoZWVsIGNsaWNrLgpTb2x1dGlvbjogICBDaGVjayBpZiBHUE0gaXMgYmVpbmcgdXNlZCB3aGVuIGRlY2lkaW5nIGlmIGEgbW91c2UgZXZlbnQgaXMgZm9yCgkgICAgdGhlIHNjcm9sbCB3aGVlbC4KRmlsZXM6CSAgICBzcmMvdGVybS5jCgpQYXRjaCA2LjBheC4wMTAKUHJvYmxlbTogICAgVGhlIEVkaXQuU2F2ZSBtZW51IGFuZCB0aGUgU2F2ZSB0b29sYmFyIGJ1dHRvbiBkaWRuJ3Qgd29yayB3aGVuCgkgICAgdGhlIGJ1ZmZlciBoYXMgbm8gZmlsZSBuYW1lLgpTb2x1dGlvbjogICBVc2UgYSBmaWxlIGJyb3dzZXIgdG8gYXNrIGZvciBhIGZpbGUgbmFtZS4gIEFsc28gZml4IHRoZSB0b29sYmFyCgkgICAgRmluZCBpdGVtIGluIFZpc3VhbCBtb2RlLgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMGF4LjAxMgpQcm9ibGVtOiAgICBXaGVuICdjcG9wdGlvbnMnIGNvbnRhaW5zICIkIiwgYnJlYWtpbmcgYSBsaW5lIGZvciAndGV4dHdpZHRoJwoJICAgIGRvZXNuJ3QgcmVkcmF3IHByb3Blcmx5LiAoU3RlZmFuIFNjaHVsemUpClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgZG9sbGFyIGJlZm9yZSBicmVha2luZyB0aGUgbGluZS4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjBheC4wMTQKUHJvYmxlbTogICAgV2luMzI6IE9uIFdpbmRvd3MgOTggIjptYWtlIC1mIGZpbGUiIGRvZXNuJ3Qgd29yayB3aGVuICdzaGVsbCcgaXMKCSAgICAiY29tbWFuZC5jb20iIGFuZCAnbWFrZXByZycgaXMgIm5tYWtlIi4gIFRoZSBlbnZpcm9ubWVudCBpc24ndAoJICAgIHBhc3NlZCBvbiB0byAibm1ha2UiLgpTb2x1dGlvbjogICBBbHNvIHVzZSB2aW1ydW4uZXhlIHdoZW4gcmVkaXJlY3RpbmcgdGhlIG91dHB1dCBvZiBhIGNvbW1hbmQuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMGF4LjAxNgpQcm9ibGVtOiAgICBUaGUgdmVyc2lvbiBudW1iZXIgd2FzIHJlcG9ydGVkIHdyb25nIGluIHRoZSBpbnRybyBzY3JlZW4uClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIHZlcnNpb24gbnVtYmVyIHdpdGggdHdvIGFkZGl0aW9uYWwgbGV0dGVycy4KRmlsZXM6CSAgICBzcmMvdmVyc2lvbi5jCgpQYXRjaCA2LjBheC4wMTkKUHJvYmxlbTogICAgV2hlbiBzY3JvbGxpbmcgYSB3aW5kb3cgd2l0aCBmb2xkcyB1cHdhcmRzLCBzd2l0Y2hpbmcgdG8gYW5vdGhlcgoJICAgIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93IGFuZCBiYWNrIG1heSBub3QgdXBkYXRlIHRoZSBzY3JvbGxiYXIuClNvbHV0aW9uOiAgIExpbWl0IHdfYm90bGluZSB0byB0aGUgbnVtYmVyIG9mIGxpbmVzIGluIHRoZSBidWZmZXIgcGx1cyBvbmUuCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpWRVJTSU9OIDYuMQkJCQkJCSp2ZXJzaW9uLTYuMSoKClRoaXMgc2VjdGlvbiBpcyBhYm91dCBpbXByb3ZlbWVudHMgbWFkZSBiZXR3ZWVuIHZlcnNpb24gNi4wIGFuZCA2LjEuCgpUaGlzIGlzIGEgYnVnLWZpeCByZWxlYXNlLCB0aGVyZSBhcmUgbm90IHJlYWxseSBhbnkgbmV3IGZlYXR1cmVzLgoKCkNoYW5nZWQJCQkJCQkJKmNoYW5nZWQtNi4xKgotLS0tLS0tCgonaW1pbnNlcnQnIGFuZCAnaW1zZWFyY2gnIGFyZSBubyBsb25nZXIgc2V0IGFzIGEgc2lkZSBlZmZlY3Qgb2YgZGVmaW5pbmcgYQpsYW5ndWFnZS1tYXBwaW5nIHVzaW5nICI6bG1hcCIuCgoKQWRkZWQJCQkJCQkJKmFkZGVkLTYuMSoKLS0tLS0KClN5bnRheCBmaWxlczoKYW1wbAkJQU1QTCAoRGF2aWQgS3JpZWYpCmFudAkJQW50IChKb2hhbm5lcyBaZWxsbmVyKQpiYWFuCQlCYWFuIChIZXIgdmFuIGRlIFZsaWVydCkKY3MJCUMjIChKb2hhbm5lcyBaZWxsbmVyKQpsaWZlbGluZXMJTGlmZWxpbmVzIChQYXRyaWNrIFRleGllcikKbHNjcmlwdAkJTG90dXNTY3JpcHQgKFRhcnluIEVhc3QpCm1vbwkJTU9PIChUaW1vIEZyZW5heSkKbnNpcwkJTlNJUyAoQWxleCBKYWt1c2hldikKcHBkCQlQb3N0c2NyaXB0IFByaW50ZXIgRGVzY3JpcHRpb24gKEJqb2VybiBKYWNrZSkKcnBsCQlSUEwvMiAoSm9lbCBCZXJ0cmFuZCkKc2NpbGFiCQlTY2lsYWIgKEJlbm9pdCBIYW1lbGluKQpzcGxpbnQJCVNwbGludCAoUmFsZiBXaWxkZW5odWVzKQpzcWxqCQlTUUxKIChBbmRyZWFzIEZpc2NoYmFjaCkKd3ZkaWFsCQlXdkRpYWwgKFByYWhsYWQgVmFpZHlhbmF0aGFuKQp4Zjg2Y29uZglYRnJlZTg2IGNvbmZpZyAoTmlrb2xhaSBXZWlidWxsKQp4bW9kbWFwCQlYbW9kbWFwIChOaWtvbGFpIFdlaWJ1bGwpCnhzbHQJCVhzbHQgKEpvaGFubmVzIFplbGxuZXIpCm1vbmsJCU1vbmsgKE1pa2UgTGl0aGVybGFuZCkKeHNkCQlYc2QgKEpvaGFubmVzIFplbGxuZXIpCmNkbAkJQ0RMIChSYXVsIFNlZ3VyYSBBY2V2ZWRvKQpzZW5kcHIJCVNlbmQtcHIgKEhlbmRyaWsgU2Nob2x6KQoKQWRkZWQgaW5kZW50IGZpbGUgZm9yIFNjaGVtZS4gKERvcmFpIFNpdGFyYW0pCkFkZGVkIGluZGVudCBmaWxlIGZvciBQcm9sb2cuIChLb250cmEgR2VyZ2VseSkKQWRkZWQgaW5kZW50IGZpbGUgZm9yIFBvdnJheSAoRGF2aWQgTmVjYXMpCkFkZGVkIGluZGVudCBmaWxlIGZvciBJREwgKEFsZWtzYW5kYXIgSmVsZW5haykKQWRkZWQgQyMgaW5kZW50IGFuZCBmdHBsdWdpbiBzY3JpcHRzLgoKQWRkZWQgVWtyYWluaWFuIG1lbnUgdHJhbnNsYXRpb25zLiAoQm9oZGFuIFZsYXN5dWspCkFkZGVkIEFTQ0lJIHZlcnNpb24gb2YgdGhlIEN6ZWNoIG1lbnVzLiAoSmlyaSBCcmV6aW5hKQoKQWRkZWQgU2ltcGxpZmllZCBDaGluZXNlIHRyYW5zbGF0aW9uIG9mIHRoZSB0dXRvci4gKE1lbmRlbCBMIENoYW4pCgpBZGRlZCBSdXNzaWFuIGtleW1hcCBmb3IgeWF3ZXJ0eSBrZXlib2FyZC4KCkFkZGVkIGFuIGV4cGxhbmF0aW9uIG9mIHVzaW5nIHRoZSB2aW1yYyBmaWxlIGluIHRoZSB0dXRvci4KQ2hhbmdlZCB0dXRvci52aW0gdG8gZ2V0IHRoZSByaWdodCBlbmNvZGluZyBmb3IgdGhlIFRhaXdhaW5lc2UgdHV0b3IuCgpBZGRlZCBSdXNzaWFuIHR1dG9yLiAoQW5kcmV5IEtpc2VsZXYpCkFkZGVkIFBvbGlzaCB0dXRvci4gKE1pa29sYWogTWFjaG93c2tpKQoKQWRkZWQgZGFya2JsdWUgY29sb3Igc2NoZW1lLiAoQm9oZGFuIFZsYXN5dWspCgpXaGVuIHBhY2tpbmcgdGhlIGRvcyBsYW5ndWFnZSBhcmNoaXZlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGUgdGhlIC5tbyBmaWxlcwp0aGF0IGFyZSByZXF1aXJlZC4KCkltcHJvdmVkIE5TSVMgc2NyaXB0IHRvIHN1cHBvcnQgTlNJUyAxODAuICBBZGRlZCBpY29ucyBmb3IgdGhlCmVuYWJsZWQvZGlzYWJsZWQgc3RhdHVzLiAoTWlyZWsgUHJ1Y2huaWspCgpjcDEyNTAgdmVyc2lvbiBvZiB0aGUgU2xvdmFrIG1lc3NhZ2UgdHJhbnNsYXRpb25zLgoKQ29tcGlsZXIgcGx1Z2lucyBmb3IgSVJJWCBjb21waWxlcnMuIChEYXZpZCBIYXJyaXNvbikKCgpGaXhlZAkJCQkJCQkqZml4ZWQtNi4xKgotLS0tLQoKVGhlIGxpY2Vuc2UgdGV4dCB3YXMgdXBkYXRlZCB0byBtYWtlIHRoZSBtZWFuaW5nIGNsZWFyZXIgYW5kIG1ha2UgaXQKY29tcGF0aWJsZSB3aXRoIHRoZSBHTlUgR1BMLiAgT3RoZXJ3aXNlIGRpc3RyaWJ1dG9ycyBoYXZlIGEgcHJvYmxlbSB3aGVuCmxpbmtpbmcgVmltIHdpdGggYSBHUEwnZWQgbGlicmFyeS4KCldoZW4gaW5zdGFsbGluZyB0aGUgImxlc3Muc2giIHNjcmlwdCBpdCB3YXMgbm90IG1hZGUgZXhlY3V0YWJsZS4gKENodWNrIEJlcmcpCgpXaW4zMjogVGhlICI5IiBrZXkgb24gdGhlIG51bXBhZCB3YXNuJ3Qgd29ya2luZy4gKEp1bGlhbiBLaW5yYWlkKQoKVGhlIE5TSVMgaW5zdGFsbCBzY3JpcHQgZGlkbid0IHdvcmsgd2l0aCBOU0lTIDEuODAgb3IgbGF0ZXIuICBBbHNvIGFkZApWaW0tc3BlY2lmaWMgaWNvbnMuIChQcnVjaG5paykKClRoZSBzY3JpcHQgZm9yIGNvbnZlcnNpb24gdG8gSFRNTCBjb250YWluZWQgYW4gImlmIiBpbiB0aGUgd3JvbmcgcGxhY2UuCihNaWNoYWVsIEdlZGRlcykKCkFsbG93IHVzaW5nICI6YXNjaWkiIGluIHRoZSBzYW5kYm94LCBpdCdzIGhhcm1sZXNzLgoKUmVtb3ZlZCBjcmVhdCgpIGZyb20gb3NkZWYyLmguaW4sIGl0IHdhc24ndCB1c2VkIGFuZCBtYXkgY2F1c2UgYSBwcm9ibGVtIHdoZW4KaXQncyByZWRlZmluZWQgdG8gY3JlYXQ2NCgpLgoKVGhlIHRleHQgZmlsZXMgaW4gdGhlIFZpc1ZpbSBkaXJlY3Rvcnkgd2VyZSBpbiAiZG9zIiBmb3JtYXQuICBUaGlzIGNhdXNlZApwcm9ibGVtcyB3aGVuIGFwcGx5aW5nIGEgcGF0Y2guICBOb3cga2VlcCB0aGVtIGluICJ1bml4IiBmb3JtYXQgYW5kIGNvbnZlcnQKdGhlbSB0byAiZG9zIiBmb3JtYXQgb25seSBmb3IgdGhlIFBDIGFyY2hpdmVzLgoKQWRkIHJ1YnkgZmlsZXMgdG8gdGhlIGRvcyBzb3VyY2UgYXJjaGl2ZSwgdGhleSBjYW4gYmUgdXNlZCBieSBNYWtlX212Yy5tYWsuCihNaXJlayBQcnVjaG5paykKCiJjcCAtZiIgZG9lc24ndCB3b3JrIG9uIGFsbCBzeXN0ZW1zLiAgQ2hhbmdlICJjcCAtZiIgaW4gdGhlIE1ha2VmaWxlIHRvICJybQotZiIgYW5kICJjcCIuCgpEaWRuJ3QgY29tcGlsZSBvbiBhIENvbXBhcSBUYW5kZW0gSGltYWxheWEgT1NTLiAoTWljaGFlbCBBLiBCZW56aW5nZXIpCgpUaGUgR1RLIGZpbGUgc2VsZWN0aW9uIGRpYWxvZyBkaWRuJ3QgaW5jbHVkZSB0aGUgIkNyZWF0ZSBEaXIiLCAiRGVsZXRlIEZpbGUiCmFuZCAiUmVuYW1lIEZpbGUiIGJ1dHRvbnMuCgpXaGVuIGRvaW5nICI6YnJvd3NlIHNvdXJjZSIgdGhlIGRpYWxvZyBoYXMgdGhlIHRpdGxlICJSdW4gTWFjcm8iLiAgQmV0dGVyCndvdWxkIGJlICJTb3VyY2UgVmltIHNjcmlwdCIuIChZZWdhcHBhbiBMYWtzaG1hbmFuKQoKV2luMzI6IERvbid0IHVzZSB0aGUgcHJpbnRlciBmb250IGFzIGRlZmF1bHQgZm9yIHRoZSBmb250IGRpYWxvZy4KCiJtYWtlIGRvc2xhbmciIGRpZG4ndCB3b3JrIHdoZW4gY29uZmlndXJlIGRpZG4ndCBydW4gKHlldCkuICBTZXQgJE1BS0VNTyB0bwoieWVzIi4gKE1pcmVrIFBydWNobmlrKQoKVGhlIFRvb2xCYXIgVGFnSnVtcCBpdGVtIHVzZWQgImddIiwgd2hpY2ggcHJvbXB0cyBmb3IgYSBzZWxlY3Rpb24gZXZlbiB3aGVuCnRoZXJlIGlzIG9ubHkgb25lIG1hdGNoaW5nIHRhZy4gIFVzZSAiZzxDLV0+IiBpbnN0ZWFkLgoKVGhlIG1pbmcgbWFrZWZpbGUgZm9yIG1lc3NhZ2UgdHJhbnNsYXRpb25zIGRpZG4ndCBoYXZlIHRoZSByaWdodCBsaXN0IG9mCmZpbGVzLgoKVGhlIE1TLVdpbmRvd3MgMy4xIHZlcnNpb24gY29tcGxhaW5zIGFib3V0IExJQklOVEwuRExMIG5vdCBmb3VuZC4gIENvbXBpbGUKdGhpcyB2ZXJzaW9uIHdpdGhvdXQgbWVzc2FnZSB0cmFuc2xhdGlvbnMuCgpUaGUgQm9ybGFuZCA1IG1ha2VmaWxlIGNvbnRhaW5lZCBhIGNoZWNrIGZvciBSdWJ5IHdoaWNoIGlzIG5vIGxvbmdlciBuZWVkZWQuClRoZSBVUkxzIGZvciB0aGUgVENMIGxpYnJhcnkgd2FzIG91dGRhdGVkLiAoRGFuIFNoYXJwKQoKVGhlIGV2aXNvLnBzIGZpbGUgd2FzIG1pc3NpbmcgZnJvbSB0aGUgRE9TIHJ1bnRpbWUgYXJjaGl2ZSwgaXQncyBuZWVkZWQgZm9yCnByaW50aW5nIFBvc3RTY3JpcHQgaW4gdGhlIDMyYml0IERPUyB2ZXJzaW9uLgoKSW4gbWVudSBmaWxlcyAiOnNjcmlwdGVuY29kaW5nIiB3YXMgdXNlZCBpbiBhIHdyb25nIHdheSBhZnRlciBwYXRjaCA2LjFhLjAzMgpOb3cgdXNlICI6c2NyaXB0ZW5jb2RpbmciIGluIHRoZSBmaWxlIHdoZXJlIHRoZSB0cmFuc2xhdGlvbnMgYXJlIGdpdmVuLiAgRG8KdGhlIHNhbWUgZm9yIGFsbCBtZW51cyBpbiBsYXRpbjEgZW5jb2RpbmcuCgpJbmNsdWRlZCBhIGxvdCBvZiBmaXhlcyBmb3IgdGhlIE1hY2ludG9zaCwgbW9zdGx5IHRvIG1ha2UgaXQgd29yayB3aXRoIENhcmJvbi4KKERhbnkgU3RBbWFudCwgQXhlbCBLaWVsaG9ybiwgQmVuamkgRmlzaGVyKQoKSW1wcm92ZWQgdGhlIHZpbXR1dG9yIHNoZWxsIHNjcmlwdCB0byB1c2UgJFRNUERJUiB3aGVuIGl0IGV4aXN0cywgYW5kIGRlbGV0ZQp0aGUgY29waWVkIGZpbGUgd2hlbiBleGl0aW5nIGluIGFuIGFibm9ybWFsIHdheS4gKE1heCBJc2NoZW5rbykKCldoZW4gImljb252LmRsbCIgY2FuJ3QgYmUgZm91bmQsIHRyeSB1c2luZyAibGliaWNvbnYuZGxsIi4KCldoZW4gZW5jcnlwdGlvbiBpcyB1c2VkLCBmaWx0ZXJpbmcgd2l0aCBhIHNoZWxsIGNvbW1hbmQgd2Fzbid0IHBvc3NpYmxlLgoKREpHUFA6ICI6Y2QgYzoiIGFsd2F5cyBmYWlsZWQsIGNhbid0IGdldCBwZXJtaXNzaW9ucyBmb3IgImM6Ii4KV2luMzI6ICI6Y2QgYzovIiBmYWlsZWQgaWYgdGhlIHByZXZpb3VzIGN1cnJlbnQgZGlyZWN0b3J5IG9uIGM6IGhhZCBiZWNvbWUKaW52YWxpZC4KCkRKR1BQOiBTaGlmdC1EZWwgYW5kIERlbCBib3RoIHByb2R1Y2UgXDMxNlwxMjMuICBEZWZhdWx0IG1hcHBpbmcgZm9yIERlbCBpcwp3cm9uZy4gIERpc2FibGVkIGl0LgoKRGVwZW5kZW5jaWVzIG9uIGhlYWRlciBmaWxlcyBpbiBNaW5nVyBtYWtlZmlsZSB3YXMgd3JvbmcuCgpXaW4zMjogRG9uJ3QgdXNlIEFDTCBzdHVmZiBmb3IgTVNWQyA0LjIsIGl0J3Mgbm90IHN1cHBvcnRlZC4gKFdhbHRlciBCcmlzY29lKQoKV2luMzIgd2l0aCBCb3JsYW5kOiBiY2MuY2ZnIHdhcyBjYWNoaW5nIHRoZSB2YWx1ZSBmb3IgJChCT1IpLCBidXQgcHJvdmlkaW5nIGEKZGlmZmVyZW50IGFyZ3VtZW50IHRvIG1ha2UgZGlkbid0IHJlZ2VuZXJhdGUgaXQuCgpXaW4zMiB3aXRoIE1TVkM6IE1ha2VfaXZjLm1hayBnZW5lcmF0ZXMgYSBuZXcgaWZfb2xlLmggaW4gYSBkaWZmZXJlbnQKZGlyZWN0b3J5LCB0aGUgaWZfb2xlLmggaW4gdGhlIHNyYyBkaXJlY3RvcnkgbWF5IGJlIHVzZWQgaW5zdGVhZC4gIERlbGV0ZSB0aGUKZGlzdHJpYnV0ZWQgZmlsZS4KCldoZW4gYSB3aW5kb3cgaXMgdmVydGljYWxseSBzcGxpdCBhbmQgdGhlbiAiOmJhbGwiIGlzIHVzZWQsIHRoZSB3aW5kb3cgbGF5b3V0CmlzIG1lc3NlZCB1cCwgY2FuIGNhdXNlIGEgY3Jhc2guIChNdXJhb2thIFRhcm8pCgpXaGVuICdpbnNlcnRtb2RlJyBpcyBzZXQsIHVzaW5nIEZpbGUvTmV3IG1lbnUgYW5kIHRoZW4gZG91YmxlIGNsaWNraW5nLCAiaSIgaXMKc29vbiBpbnNlcnRlZC4gKE1lcmxpbiBIYW5zZW4pCgpXaGVuIFNlbGVjdCBtb2RlIGlzIGFjdGl2ZSBhbmQgdXNpbmcgdGhlIEJ1ZmZlcnMgbWVudSB0byBzd2l0Y2ggdG8gYW5vdGhlcgpidWZmZXIsIGFuIG9sZCBzZWxlY3Rpb24gY29tZXMgYmFjay4gIFJlc2V0IFZJc3VhbF9yZXNlbGVjdCBmb3IgYSAiOmJ1ZmZlciIKY29tbWFuZC4KCldoZW4gU2VsZWN0IG1vZGUgaXMgYWN0aXZlIGFuZCAnaW5zZXJ0bW9kZScgaXMgc2V0LCB1c2luZyB0aGUgQnVmZmVycyBtZW51IHRvCnN3aXRjaCB0byBhbm90aGVyIGJ1ZmZlciwgZGlkIG5vdCByZXR1cm4gdG8gSW5zZXJ0IG1vZGUuICBNYWtlIHN1cmUKInJlc3RhcnRfZWRpdCIgaXMgc2V0LgoKV2hlbiBkb3VibGUgY2xpY2tpbmcgb24gdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBhIHdvcmQgd2hpbGUgJ3NlbGVjdGlvbicgaXMKImV4Y2x1c2l2ZSIgZGlkbid0IHNlbGVjdCB0aGF0IHdvcmQuCgoKUGF0Y2ggNi4wLjAwMQpQcm9ibGVtOiAgICBMb2FkaW5nIHRoZSBzaC52aW0gc3ludGF4IGZpbGUgY2F1c2VzIGVycm9yIG1lc3NhZ2VzLiAoQ29yaW5uYQoJICAgIFZpbnNjaGVuKQpTb2x1dGlvbjogICBBZGQgYW4gImlmIi4gKENoYXJsZXMgQ2FtcGJlbGwpCkZpbGVzOgkgICAgcnVudGltZS9zeW50YXgvc2gudmltCgpQYXRjaCA2LjAuMDAyClByb2JsZW06ICAgIFVzaW5nIGEgJ0AnIGl0ZW0gaW4gJ3ZpbWluZm8nIGRvZXNuJ3Qgd29yay4gKE1hcmtvIExlaXBlcnQpClNvbHV0aW9uOiAgIEFkZCAnQCcgdG8gdGhlIGxpc3Qgb2YgYWNjZXB0ZWQgaXRlbXMuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMDAzClByb2JsZW06ICAgIFRoZSBjb25maWd1cmUgY2hlY2sgZm9yIEFDTHMgb24gQUlYIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgRml4IHRoZSB0ZXN0IHByb2dyYW0gc28gdGhhdCBpdCBjb21waWxlcy4gKFRvbWFzIE9ncmVuKQpGaWxlczoJICAgIHNyYy9jb25maWd1cmUuaW4sIHNyYy9hdXRvL2NvbmZpZ3VyZQoKUGF0Y2ggNi4wLjAwNApQcm9ibGVtOiAgICBUaGUgZmluZC9yZXBsYWNlIGRpYWxvZyBkb2Vzbid0IHJldXNlIGEgcHJldmlvdXMgYXJndW1lbnQKCSAgICBwcm9wZXJseS4KU29sdXRpb246ICAgQWZ0ZXIgcmVtb3ZpbmcgYSAiXFYiIHRlcm1pbmF0ZSB0aGUgc3RyaW5nLiAoWndhbmUgTXdhaWthbWJvKQpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4wLjAwNQpQcm9ibGVtOiAgICBJbiBJbnNlcnQgbW9kZSwgIkNUUkwtTyA6bHMiIGhhcyBhIGRlbGF5IGJlZm9yZSByZWRyYXdpbmcuClNvbHV0aW9uOiAgIERvbid0IGRlbGF5IGp1c3QgYWZ0ZXIgd2FpdF9yZXR1cm4oKSB3YXMgY2FsbGVkLiAgQWRkZWQgdGhlCgkgICAgZGlkX3dhaXRfcmV0dXJuIGZsYWcuCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL21lc3NhZ2UuYywgc3JjL25vcm1hbC5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMC4wMDYKUHJvYmxlbTogICAgV2l0aCBhIHZlcnRpY2FsIHNwbGl0LCAnbnVtYmVyJyBzZXQgYW5kICdzY3JvbGxvZmYnIG5vbi16ZXJvLAoJICAgIG1ha2luZyB0aGUgd2luZG93IHdpZHRoIHZlcnkgc21hbGwgY2F1c2VzIGEgY3Jhc2guIChOaWtsYXMKCSAgICBMaW5kc3Ryb20pClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIHplcm8gd2lkdGguCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKUGF0Y2ggNi4wLjAwNwpQcm9ibGVtOiAgICBXaGVuIHNldHRpbmcgJ2ZpbGV0eXBlJyB3aGlsZSB0aGVyZSBpcyBubyBGaWxlVHlwZSBhdXRvY29tbWFuZCwgYQoJICAgIGZvbGxvd2luZyAiOnNldGZpbGV0eXBlIiB3b3VsZCBzZXQgJ2ZpbGV0eXBlJyBhZ2Fpbi4gKEtvYnVzCgkgICAgUmV0aWVmKQpTb2x1dGlvbjogICBTZXQgZGlkX2ZpbGV0eXBlIGFsd2F5cyB3aGVuICdmaWxldHlwZScgaGFzIGJlZW4gc2V0LgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjAwOApQcm9ibGVtOiAgICAnaW1kaXNhYmxlJyBpcyBtaXNzaW5nIGZyb20gdGhlIG9wdGlvbnMgd2luZG93LiAoTWljaGFlbCBOYXVtYW5uKQpTb2x1dGlvbjogICBBZGQgYW4gZW50cnkgZm9yIGl0LgpGaWxlczoJICAgIHJ1bnRpbWUvb3B0d2luLnZpbQoKUGF0Y2ggNi4wLjAwOQpQcm9ibGVtOiAgICBOZXh0c3RlcCBkb2Vzbid0IGhhdmUgU19JU0JMSy4gKEpvaG4gQmVwcHUpClNvbHV0aW9uOiAgIERlZmluZSBTX0lTQkxLIHVzaW5nIFNfSUZCTEsuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguaAoKUGF0Y2ggNi4wLjAxMApQcm9ibGVtOiAgICBVc2luZyAiZ2YiIG9uIGEgZmlsZSBuYW1lIHN0YXJ0aW5nIHdpdGggIi4vIiBvciAiLi4vIiBpbiBhIGJ1ZmZlcgoJICAgIHdpdGhvdXQgYSBuYW1lIGNhdXNlcyBhIGNyYXNoLiAoUm95IExld2lzKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBOVUxMIGZpbGUgbmFtZS4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4wLjAxMQpQcm9ibGVtOiAgICBQeXRob246IEFmdGVyIHJlcGxhY2luZyBvciBkZWxldGluZyBsaW5lcyBnZXQgYW4gbWxfZ2V0IGVycm9yLgoJICAgIChMZW8gTGlwZWxpcykKU29sdXRpb246ICAgQWRqdXN0IHRoZSBjdXJzb3IgcG9zaXRpb24gZm9yIGRlbGV0ZWQgb3IgYWRkZWQgbGluZXMuCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjAuMDEyClByb2JsZW06ICAgIFBvbGlzaCB0cmFuc2xhdGlvbnMgY29udGFpbiBwcmludGYgZm9ybWF0IGVycm9ycywgdGhpcyBjYW4gcmVzdWx0CgkgICAgaW4gYSBjcmFzaCB3aGVuIHVzaW5nIG9uZSBvZiB0aGVtLgpTb2x1dGlvbjogICBGaXggZm9yIHRyYW5zbGF0ZWQgbWVzc2FnZXMuIChNaWNoYWwgUG9saXRvd3NraSkKRmlsZXM6CSAgICBzcmMvcG8vcGwucG8KClBhdGNoIDYuMC4wMTMKUHJvYmxlbTogICAgVXNpbmcgIjpzaWxlbnQhIGNtZCIgc3RpbGwgZ2l2ZXMgc29tZSBlcnJvciBtZXNzYWdlcywgbGlrZSBmb3IgYW4KCSAgICBpbnZhbGlkIHJhbmdlLiAoU2FsbWFuIEhhbGltKQpTb2x1dGlvbjogICBSZXNldCBlbXNnX3NpbGVudCBhZnRlciBjYWxsaW5nIGVtc2coKSBpbiBkb19vbmVfY21kKCkuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMC4wMTQKUHJvYmxlbTogICAgV2hlbiAnbW9kaWZpYWJsZScgaXMgb2ZmIGFuZCAndmlydHVhbGVkaXQnIGlzICJhbGwiLCAicngiIG9uIGEgVEFCCgkgICAgc3RpbGwgY2hhbmdlcyB0aGUgYnVmZmVyLiAoTXVyYW9rYSBUYXJvKQpTb2x1dGlvbjogICBDaGVjayBpZiBzYXZpbmcgdGhlIGxpbmUgZm9yIHVuZG8gZmFpbHMuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMDE1ClByb2JsZW06ICAgIFdoZW4gJ2Nwb3B0aW9ucycgaW5jbHVkZXMgIlMiIGFuZCAiZmlsZXR5cGUgcGx1Z2luIG9uIiBoYXMgYmVlbgoJICAgIHVzZWQsIGNhbiBnZXQgYW4gZXJyb3IgZm9yIGRlbGV0aW5nIHRoZSBiOmRpZF9mdHBsdWdpbiB2YXJpYWJsZS4KCSAgICAoUmFscGggSGVuZGVyc29uKQpTb2x1dGlvbjogICBPbmx5IGRlbGV0ZSB0aGUgdmFyaWFibGUgd2hlbiBpdCBleGlzdHMuCkZpbGVzOgkgICAgcnVudGltZS9mdHBsdWdpbi52aW0KClBhdGNoIDYuMC4wMTYKUHJvYmxlbTogICAgYnVmbnIoKSwgYnVmbmFtZSgpIGFuZCBidWZ3aW5ucigpIGRvbid0IGZpbmQgdW5saXN0ZWQgYnVmZmVycyB3aGVuCgkgICAgdGhlIGFyZ3VtZW50IGlzIGEgc3RyaW5nLiAoSGFyaSBLcmlzaG5hIERhcmEpCgkgICAgQWxzbyBmb3Igc2V0YnVmdmFyKCkgYW5kIGdldGJ1ZnZhcigpLgpTb2x1dGlvbjogICBBbHNvIGZpbmQgdW5saXN0ZWQgYnVmZmVycy4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMDE3ClByb2JsZW06ICAgIFdoZW4gJ3R0eWJ1aWx0aW4nIGlzIHNldCBhbmQgYSBidWlsdGluIHRlcm1jYXAgZW50cnkgZGVmaW5lcyB0X0NvCgkgICAgYW5kIHRoZSBleHRlcm5hbCBvbmUgZG9lc24ndCwgaXQgZ2V0cyByZXNldCB0byBlbXB0eS4gKERhdmlkCgkgICAgSGFycmlzb24pClNvbHV0aW9uOiAgIE9ubHkgc2V0IHRfQ28gd2hlbiBpdCB3YXNuJ3Qgc2V0IHlldC4KRmlsZXM6CSAgICBzcmMvdGVybS5jCgpQYXRjaCA2LjAuMDE4ClByb2JsZW06ICAgIEluaXRpYWxpemluZyAnZW5jb2RpbmcnIG1heSBjYXVzZSBhIGNyYXNoIHdoZW4gc2V0bG9jYWxlKCkgaXMgbm90CgkgICAgdXNlZC4gKERhbnkgU3QtQW1hbnQpClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIE5VTEwgcG9pbnRlci4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4wLjAxOQpQcm9ibGVtOiAgICBDb252ZXJ0aW5nIGEgc3RyaW5nIHdpdGggbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIHRvIGEgcHJpbnRhYmxlCgkgICAgc3RyaW5nLCBlLmcuLCB3aXRoIHN0cnRyYW5zKCksIG1heSBjYXVzZSBhIGNyYXNoLiAoVG9tYXMgWmVsbGVyaW4pClNvbHV0aW9uOiAgIENvcnJlY3RseSBjb21wdXRlIHRoZSBsZW5ndGggb2YgdGhlIHJlc3VsdCBpbiB0cmFuc3N0cigpLgpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMKClBhdGNoIDYuMC4wMjAKUHJvYmxlbTogICAgV2hlbiBvYnRhaW5pbmcgdGhlIHZhbHVlIG9mIGEgZ2xvYmFsIHZhcmlhYmxlIGludGVybmFsbHksIGNvdWxkCgkgICAgZ2V0IHRoZSBmdW5jdGlvbi1sb2NhbCB2YWx1ZSBpbnN0ZWFkLiAgQXBwbGllcyB0byB1c2luZyA8TGVhZGVyPgoJICAgIGFuZCA8TG9jYWxMZWFkZXI+IGFuZCByZXNldHRpbmcgaGlnaGxpZ2h0aW5nIGluIGEgZnVuY3Rpb24uClNvbHV0aW9uOiAgIFByZXBlbmQgImc6IiB0byB0aGUgdmFyaWFibGUgbmFtZS4gKEFyaWMgQmx1bWVyKQpGaWxlczoJICAgIHNyYy9zeW50YXguYywgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4wLjAyMQpQcm9ibGVtOiAgICBUaGUgJ2NzY29wZXBhdGhjb21wJyBvcHRpb24gZGlkbid0IHdvcmsuClNvbHV0aW9uOiAgIENoYW5nZSBVU0VfQ1NDT1BFIHRvIEZFQVRfQ1NDT1BFLiAoTWFyayBGZW5nKQpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjAyMgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHRoZSAnbGFuZ21hcCcgb3B0aW9uLCB0aGUgc2Vjb25kIGNoYXJhY3RlciBvZiBhIGNvbW1hbmQKCSAgICBzdGFydGluZyB3aXRoICJnIiBpc24ndCBhZGp1c3RlZC4KU29sdXRpb246ICAgQXBwbHkgJ2xhbmdtYXAnIHRvIHRoZSBzZWNvbmQgY2hhcmFjdGVyLiAoQWxleCBLYXByYW5vZmYpCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMDIzClByb2JsZW06ICAgIExvYWRpbmcgdGhlIGxoYXNrZWxsIHN5bnRheCBkb2Vzbid0IHdvcmsuIChUaG9yZSBCLiBLYXJsc2VuKQpTb2x1dGlvbjogICBVc2UgIjpydW50aW1lIiBpbnN0ZWFkIG9mICJzb3VyY2UiIHRvIGxvYWQgaGFza2VsbC52aW0uCkZpbGVzOgkgICAgcnVudGltZS9zeW50YXgvbGhhc2tlbGwudmltCgpQYXRjaCA2LjAuMDI0ClByb2JsZW06ICAgIFVzaW5nICJDVFJMLVYgdSA5OTAwIiBpbiBJbnNlcnQgbW9kZSBtYXkgY2F1c2UgYSBjcmFzaC4gKE5vYWgKCSAgICBMZXZpdHQpClNvbHV0aW9uOiAgIERvbid0IGluc2VydCBhIE5VTCBieXRlIGluIHRoZSB0ZXh0LCB1c2UgYSBuZXdsaW5lLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjAuMDI1ClByb2JsZW06ICAgIFRoZSBwYXR0ZXJuICJcdngoLnwkKSIgZG9lc24ndCBtYXRjaCAieCIgYXQgdGhlIGVuZCBvZiBhIGxpbmUuCgkgICAgKFByZWJlbiBQZXBwZSBHdWxkYmVyZykKU29sdXRpb246ICAgQWx3YXlzIHNlZSBhICIkIiBhcyBlbmQtb2YtbGluZSBhZnRlciAiXHYiLiAgRG8gdGhlIHNhbWUgZm9yICJeIi4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMC4wMjYKUHJvYmxlbTogICAgR1RLOiBXaGVuIHVzaW5nIGFycm93IGtleXMgdG8gbmF2aWdhdGUgdGhyb3VnaCB0aGUgbWVudXMsIHRoZQoJICAgIHNlcGFyYXRvcnMgYXJlIHNlbGVjdGVkLgpTb2x1dGlvbjogICBTZXQgdGhlIHNlcGFyYXRvcnMgImluc2Vuc2l0aXZlIi4gKFBhdmVsIEthbmtvdnNreSkKRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4wLjAyNwpQcm9ibGVtOiAgICBWTVM6IFByaW50aW5nIGRvZXNuJ3Qgd29yaywgdGhlIGZpbGUgaXMgZGVsZXRlZCB0b28gcXVpY2tseS4KCSAgICBObyBsb25nZXIgbmVlZCB0aGUgVk1TIHNwZWNpZmljIHByaW50aW5nIG1lbnUuCgkgICAgZ2V0aG9zdG5hbWUoKSBpcyBub3QgYXZhaWxhYmxlIHdpdGggVkFYQy4KCSAgICBUaGUgbWFrZWZpbGUgd2FzIGxhY2tpbmcgc2VsZWN0aW9uIG9mIHRoZSB0aW55LWh1Z2UgZmVhdHVyZSBzZXQuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgJ3ByaW50ZXhwcicgb3B0aW9uIGRlZmF1bHQuICBGaXggdGhlIG90aGVyIHByb2JsZW1zIGFuZAoJICAgIHVwZGF0ZSB0aGUgZG9jdW1lbnRhdGlvbi4gIChab2x0YW4gQXJwYWRmZnkpCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3Nfdm1zLnR4dCwgcnVudGltZS9tZW51LnZpbSwgc3JjL0lOU1RBTEx2bXMudHh0LAoJICAgIHNyYy9NYWtlX3Ztcy5tbXMsIHNyYy9vcHRpb24uYywgc3JjL29zX3VuaXguYywgc3JjL29zX3Ztc19jb25mLmgKClBhdGNoIDYuMC4wMjgKUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSB3aXRob3V0ICt2aXJ0dWFsZWRpdCBhbmQgd2l0aCArdmlzdWFsZXh0cmEuIChHZXphCgkgICAgTGFrbmVyKQpTb2x1dGlvbjogICBBZGQgYW4gI2lmZGVmIGZvciArdmlydHVhbGVkaXQuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMDI5ClByb2JsZW06ICAgIFdoZW4gbWFraW5nIGEgY2hhbmdlIGluIGxpbmUgMSwgdGhlbiBpbiBsaW5lIDIgYW5kIHRoZW4gZGVsZXRpbmcKCSAgICBsaW5lIDEsIHVuZG8gaW5mbyBjb3VsZCBiZSB3cm9uZy4gIE9ubHkgd2hlbiB0aGUgY2hhbmdlcyBhcmUgdW5kb25lCgkgICAgYXQgb25jZS4gKEdlcmhhcmQgSG9jaGhvbHplcikKU29sdXRpb246ICAgV2hlbiBub3Qgc2F2aW5nIGEgbGluZSBmb3IgdW5kbyBiZWNhdXNlIGl0IHdhcyBhbHJlYWR5IGRvbmUKCSAgICBiZWZvcmUsIHJlbWVtYmVyIGZvciB3aGljaCBlbnRyeSB0aGUgbGFzdCBsaW5lIG11c3QgYmUgY29tcHV0ZWQuCgkgICAgQWRkZWQgdWVfZ2V0Ym90X2VudHJ5IHBvaW50ZXIgZm9yIHRoaXMuICBXaGVuIHRoZSBudW1iZXIgb2YgbGluZXMKCSAgICBjaGFuZ2VzLCBhZGp1c3QgdGhlIHBvc2l0aW9uIG9mIG5ld2VyIHVuZG8gZW50cmllcy4KRmlsZXM6CSAgICBzcmMvc3RydWN0cy5oLCBzcmMvdW5kby5jCgpQYXRjaCA2LjAuMDMwClByb2JsZW06ICAgIFVzaW5nICI6c291cmNlISBmaWxlIiBkb2Vzbid0IHdvcmsgaW5zaWRlIGEgbG9vcCBvciBhZnRlcgoJICAgICI6YXJnZG8iLiAoUGF2b2wgSnVoYXMpClNvbHV0aW9uOiAgIEV4ZWN1dGUgdGhlIGNvbW1hbmRzIGluIHRoZSBmaWxlIHJpZ2h0IGF3YXksIGRvIG5vdCBsZXQgdGhlIG1haW4KCSAgICBsb29wIGRvIGl0LgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2dldGNoYXIuYywgc3JjL2dsb2JhbHMuaCwKCSAgICBzcmMvcHJvdG8vZXhfZG9jbWQucHJvLCBzcmMvcHJvdG8vZ2V0Y2hhci5wcm8KClBhdGNoIDYuMC4wMzEKUHJvYmxlbTogICAgTmV4dHN0ZXAgZG9lc24ndCBoYXZlIHNldGVudigpIG9yIHB1dGVudigpLiAgKEpvaG4gQmVwcHUpClNvbHV0aW9uOiAgIE1vdmUgcHV0ZW52KCkgZnJvbSBwdHkuYyB0byBtaXNjMi5jCkZpbGVzOgkgICAgc3JjL21pc2MyLmMsIHNyYy9wdHkuYwoKUGF0Y2ggNi4wLjAzMgpQcm9ibGVtOiAgICBXaGVuIGNoYW5naW5nIGEgc2V0dGluZyB0aGF0IGFmZmVjdHMgYWxsIGZvbGRzLCB0aGV5IGFyZSBub3QKCSAgICBkaXNwbGF5ZWQgaW1tZWRpYXRlbHkuClNvbHV0aW9uOiAgIFNldCB0aGUgcmVkcmF3IGZsYWcgaW4gZm9sZFVwZGF0ZUFsbCgpLgpGaWxlczoJICAgIHNyYy9mb2xkLmMKClBhdGNoIDYuMC4wMzMKUHJvYmxlbTogICAgVXNpbmcgJ3dpbGRtZW51JyBvbiBNUy1XaW5kb3dzLCBmaWxlIG5hbWVzIHRoYXQgaW5jbHVkZSBhIHNwYWNlCgkgICAgYXJlIG9ubHkgZGlzcGxheWVkIHN0YXJ0aW5nIHdpdGggdGhhdCBzcGFjZS4gKFhpZSBZdWhlbmcpClNvbHV0aW9uOiAgIERvbid0IHJlY29nbml6ZSBhIGJhY2tzbGFzaCBiZWZvcmUgYSBzcGFjZSBhcyBhIHBhdGggc2VwYXJhdG9yLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4wLjAzNApQcm9ibGVtOiAgICBDYWxsaW5nIHNlYXJjaHBhaXIoKSB3aXRoIHRocmVlIGFyZ3VtZW50cyBjb3VsZCByZXN1bHQgaW4gYSBjcmFzaAoJICAgIG9yIHN0cmFuZ2UgZXJyb3IgbWVzc2FnZS4gKEthbGxlIEJqb3JrbGlkKQpTb2x1dGlvbjogICBEb24ndCB1c2UgdGhlIGZpZnRoIGFyZ3VtZW50IHdoZW4gdGhlcmUgaXMgbm8gZm91cnRoIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4wMzUKUHJvYmxlbTogICAgVGhlIG1lbnUgaXRlbSBFZGl0L0dsb2JhbF9TZXR0aW5ncy9Ub2dnbGVfVG9vbGJhciBkb2Vzbid0IHdvcmsKCSAgICB3aGVuICdpZ25vcmVjYXNlJyBpcyBzZXQuIChBbGxlbiBDYXN0YWJhbikKU29sdXRpb246ICAgQWx3YXlzIG1hdGNoIGNhc2Ugd2hlbiBjaGVja2luZyBpZiBhIGZsYWcgaXMgYWxyZWFkeSBwcmVzZW50IGluCgkgICAgJ2d1aW9wdGlvbnMnLgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMC4wMzYKUHJvYmxlbTogICAgT1MvMiwgTVMtRE9TIGFuZCBNUy1XaW5kb3dzOiBVc2luZyBhIHBhdGggdGhhdCBzdGFydHMgd2l0aCBhCgkgICAgc2xhc2ggaW4gJ3RhZ3MnIGRvZXNuJ3Qgd29yayBhcyBleHBlY3RlZC4gKE1hdGhpYXMgS29laHJlcikKU29sdXRpb246ICAgT25seSB1c2UgdGhlIGRyaXZlLCBub3QgdGhlIHdob2xlIHBhdGggdG8gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LgoJICAgIEFsc28gbWFrZSBpdCB3b3JrIGZvciAiYzpkaXIvZmlsZSIuCkZpbGVzOgkgICAgc3JjL21pc2MyLmMKClBhdGNoIDYuMC4wMzcKUHJvYmxlbTogICAgV2hlbiB0aGUgdXNlciBoYXMgc2V0ICJkaWRfaW5zdGFsbF9zeW50YXhfbWVudSIgdG8gYXZvaWQgdGhlCgkgICAgZGVmYXVsdCBTeW50YXggbWVudSBpdCBzdGlsbCBhcHBlYXJzLiAoVmlyZ2lsaW8pClNvbHV0aW9uOiAgIERvbid0IGFkZCB0aGUgdGhyZWUgZGVmYXVsdCBpdGVtcyB3aGVuICJkaWRfaW5zdGFsbF9zeW50YXhfbWVudSIKCSAgICBpcyBzZXQuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4wLjAzOApQcm9ibGVtOiAgICBXaGVuICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiLCBkZWxldGluZyBhIGJsb2NrIG9mIHRleHQgYXQgdGhlCgkgICAgZW5kIG9mIGEgbGluZSBjYW4gbGVhdmUgdGhlIGN1cnNvciBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgbGluZS4KU29sdXRpb246ICAgQ29ycmVjdCB0aGUgY3Vyc29yIHBvc2l0aW9uLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjAzOQpQcm9ibGVtOiAgICAiZ1AiIGxlYXZlcyB0aGUgY3Vyc29yIGluIHRoZSB3cm9uZyBwb3NpdGlvbiB3aGVuICd2aXJ0dWFsZWRpdCcgaXMKCSAgICB1c2VkLiAgVXNpbmcgImMiIGluIGJsb2Nrd2lzZSBWaXN1YWwgbW9kZSBsZWF2ZXMgdGhlIGN1cnNvciBpbiBhCgkgICAgc3RyYW5nZSBwb3NpdGlvbi4KU29sdXRpb246ICAgRm9yICJnUCIgcmVzZXQgdGhlICJjb2xhZGQiIGZpZWxkIGZvciB0aGUgJ10gbWFyay4gIEZvciAiYyIgbGVhdmUKCSAgICB0aGUgY3Vyc29yIG9uIHRoZSBsYXN0IGluc2VydGVkIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMC4wNDAKUHJvYmxlbTogICAgV2hlbiAnZmlsZWVuY29kaW5nJyBpcyBpbnZhbGlkIGFuZCB3cml0aW5nIGZhaWxzIGJlY2F1c2Ugb2YKCSAgICB0aGlzLCB0aGUgb3JpZ2luYWwgZmlsZSBpcyBnb25lLiAoRXJpYyBDYXJsaWVyKQpTb2x1dGlvbjogICBSZXN0b3JlIHRoZSBvcmlnaW5hbCBmaWxlIGZyb20gdGhlIGJhY2t1cC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4wNDEKUHJvYmxlbTogICAgVXNpbmcgIjpsYW5ndWFnZSBtZXNzYWdlcyBlbiIgd2hlbiBMQ19NRVNTQUdFUyBpcyB1bmRlZmluZWQKCSAgICByZXN1bHRzIGluIHNldHRpbmcgTENfQ1RZUEUuIChFcmljIENhcmxpZXIpClNvbHV0aW9uOiAgIFNldCAkTENfTUVTU0FHRVMgaW5zdGVhZC4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4wLjA0MgpQcm9ibGVtOiAgICAiOm1rc2Vzc2lvbiIgY2FuJ3QgaGFuZGxlIGZpbGUgbmFtZXMgd2l0aCBhIHNwYWNlLgpTb2x1dGlvbjogICBFc2NhcGUgc3BlY2lhbCBjaGFyYWN0ZXJzIGluIGZpbGUgbmFtZXMgd2l0aCBhIGJhY2tzbGFzaC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4wLjA0MwpQcm9ibGVtOiAgICBQYXRjaCA2LjAuMDQxIHdhcyB3cm9uZy4KU29sdXRpb246ICAgVXNlIG1jaF9nZXRlbnYoKSBpbnN0ZWFkIG9mIHZpbV9nZXRlbnYoKS4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4wLjA0NApQcm9ibGVtOiAgICBVc2luZyBhICJjb250YWluZWRpbiIgbGlzdCBmb3IgYSBzeW50YXggaXRlbSBkb2Vzbid0IHdvcmsgZm9yIGFuCgkgICAgaXRlbSB0aGF0IGRvZXNuJ3QgaGF2ZSBhICJjb250YWlucyIgYXJndW1lbnQuICBBbHNvLCAiY29udGFpbmVkaW4iCgkgICAgZG9lc24ndCBpZ25vcmUgYSB0cmFuc3BhcmVudCBpdGVtLiAoVGltbyBGcmVuYXkpClNvbHV0aW9uOiAgIFdoZW4gdGhlcmUgaXMgYSAiY29udGFpbmVkaW4iIGFyZ3VtZW50IHNvbWV3aGVyZSwgYWx3YXlzIGNoZWNrIGZvcgoJICAgIGNvbnRhaW5lZCBpdGVtcy4gIERvbid0IGNoZWNrIGZvciB0aGUgdHJhbnNwYXJlbnQgaXRlbSBidXQgdGhlCgkgICAgaXRlbSBpdCdzIGNvbnRhaW5lZCBpbi4KRmlsZXM6CSAgICBzcmMvc3RydWN0cy5oLCBzcmMvc3ludGF4LmMKClBhdGNoIDYuMC4wNDUKUHJvYmxlbTogICAgQWZ0ZXIgY3JlYXRpbmcgYSBmb2xkIHdpdGggYSBWaXN1YWwgc2VsZWN0aW9uLCBhbm90aGVyIHdpbmRvdwoJICAgIHdpdGggdGhlIHNhbWUgYnVmZmVyIHN0aWxsIGhhcyBpbnZlcnRlZCB0ZXh0LiAoU2FtaSBTYWxvbmVuKQpTb2x1dGlvbjogICBSZWRyYXcgdGhlIGludmVydGVkIHRleHQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMDQ2ClByb2JsZW06ICAgIFdoZW4gZ2V0cmxpbWl0KCkgcmV0dXJucyBhbiA4IGJ5dGUgbnVtYmVyIHRoZSBjaGVjayBmb3IgcnVubmluZwoJICAgIG91dCBvZiBzdGFjayBtYXkgZmFpbC4gKEFudGhvbnkgTWVpamVyKQpTb2x1dGlvbjogICBTa2lwIHRoZSBzdGFjayBjaGVjayBpZiB0aGUgbGltaXQgZG9lc24ndCBmaXQgaW4gYSBsb25nLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZy5oLmluLCBzcmMvY29uZmlndXJlLmluLAoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMC4wNDcKUHJvYmxlbTogICAgVXNpbmcgYSByZWdleHAgd2l0aCAiXChcKSIgaW5zaWRlIGEgIlwlW10iIGl0ZW0gY2F1c2VzIGEgY3Jhc2guCgkgICAgKFNhbXVlbCBMYWNhcykKU29sdXRpb246ICAgRG9uJ3QgYWxsb3cgbmVzdGVkIGF0b21zIGluc2lkZSAiXCVbXSIuCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjAuMDQ4ClByb2JsZW06ICAgIFdpbjMyOiBJbiB0aGUgY29uc29sZSB0aGUgbW91c2UgZG9lc24ndCBhbHdheXMgd29yayBjb3JyZWN0bHkuCgkgICAgU29tZXRpbWVzIGFmdGVyIGdldHRpbmcgZm9jdXMgYSBtb3VzZSBtb3ZlbWVudCBpcyBpbnRlcnByZXRlZCBsaWtlCgkgICAgYSBidXR0b24gY2xpY2suClNvbHV0aW9uOiAgIFVzZSBhIGRpZmZlcmVudCBmdW5jdGlvbiB0byBvYnRhaW4gdGhlIG51bWJlciBvZiBtb3VzZSBidXR0b25zLgoJICAgIEF2b2lkIHJlY29nbml6aW5nIGEgYnV0dG9uIHByZXNzIGZyb20gdW5kZWZpbmVkIGJpdHMuIChWaW5jZSBOZWdyaSkKRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4wLjA0OQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGV2aW0gdGhlIGludHJvIHNjcmVlbiBpcyBtaXNsZWFkaW5nLiAoQWRyaWFuIE5hZ2xlKQpTb2x1dGlvbjogICBNZW50aW9uIHdoZXRoZXIgJ2luc2VydG1vZGUnIGlzIHNldCBhbmQgdGhlIG1lbnVzIHRvIGJlIHVzZWQuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbSwgc3JjL3ZlcnNpb24uYwoKUGF0Y2ggNi4wLjA1MApQcm9ibGVtOiAgICBVVEYtODogInZpdyIgZG9lc24ndCBpbmNsdWRlIG5vbi1BU0NJSSBjaGFyYWN0ZXJzIGJlZm9yZSB0aGUKCSAgICBjdXJzb3IuIChCZXJ0aWxvIFdlbm5lcmdyZW4pClNvbHV0aW9uOiAgIFVzZSBkZWNfY3Vyc29yKCkgaW5zdGVhZCBvZiBkZWNyZW1lbnRpbmcgdGhlIGNvbHVtbiBudW1iZXIuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjAuMDUxClByb2JsZW06ICAgIFVURi04OiBVc2luZyBDVFJMLVIgb24gdGhlIGNvbW1hbmQgbGluZSBkb2Vzbid0IGluc2VydCBjb21wb3NpbmcKCSAgICBjaGFyYWN0ZXJzLiAoUm9uIEFhcm9uKQpTb2x1dGlvbjogICBBbHNvIGluY2x1ZGUgdGhlIGNvbXBvc2luZyBjaGFyYWN0ZXJzIGFuZCBmaXggcmVkcmF3aW5nIHRoZW0uCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMsIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjA1MgpQcm9ibGVtOiAgICBUaGUgY2hlY2sgZm9yIHJsaW1fdCBpbiBwYXRjaCA2LjAuMDQ2IGRvZXMgbm90IHdvcmsgb24gc29tZQoJICAgIHN5c3RlbXMuIChaZGVuZWsgU2VrZXJhKQpTb2x1dGlvbjogICBBbHNvIGxvb2sgaW4gc3lzL3Jlc291cmNlLmggZm9yIHJsaW1fdC4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMC4wNTMgKGV4dHJhKQpQcm9ibGVtOiAgICBWYXJpb3VzIHByb2JsZW1zIHdpdGggUU5YLgpTb2x1dGlvbjogICBNaW5vciBmaXggZm9yIGNvbmZpZ3VyZS4gIFN3aXRjaCBvbiB0ZXJtaW5hbCBjbGlwYm9hcmQgc3VwcG9ydCBpbgoJICAgIG1haW4uYy4gIEZpeCAicHRlcm0iIG1vdXNlIHN1cHBvcnQuICBvc19xbnguYyBkaWRuJ3QgYnVpbGQgd2l0aG91dAoJICAgIHBob3Rvbi4gKEp1bGlhbiBLaW5yYWlkKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2d1aV9waG90b24uYywKCSAgICBzcmMvbWFpbi5jLCBzcmMvbWlzYzIuYywgc3JjL29wdGlvbi5oLCBzcmMvb3NfcW54LmMsIHNyYy9vc19xbnguaCwKCSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMC4wNTQKUHJvYmxlbTogICAgV2hlbiB1c2luZyBtc3dpbi52aW0sIENUUkwtViBwYXN0ZXMgYSBibG9jayBvZiB0ZXh0IGxpa2UgaXQgaXMKCSAgICBub3JtYWwgdGV4dC4gIFVzaW5nIENUUkwtViBpbiBibG9ja3dpc2UgVmlzdWFsIG1vZGUgbGVhdmVzICJ4IgoJICAgIGNoYXJhY3RlcnMgYmVoaW5kLgpTb2x1dGlvbjogICBNYWtlIENUUkwtViB3b3JrIGFzIGl0IHNob3VsZC4gIERvIHRoZSBzYW1lIGZvciB0aGUgUGFzdGUgbWVudQoJICAgIGVudHJpZXMuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbSwgcnVudGltZS9tc3dpbi52aW0KClBhdGNoIDYuMC4wNTUKUHJvYmxlbTogICAgR1RLOiBUaGUgc2VsZWN0aW9uIGlzbid0IGNvcGllZCB0aGUgZmlyc3QgdGltZS4KU29sdXRpb246ICAgT3duIHRoZSBzZWxlY3Rpb24gYXQgdGhlIHJpZ2h0IG1vbWVudC4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4wLjA1NgpQcm9ibGVtOiAgICBVc2luZyAiQ1RSTC1PIGN3IiBpbiBJbnNlcnQgbW9kZSByZXN1bHRzIGluIGEgbmVzdGVkIEluc2VydCBtb2RlLgoJICAgIDxFc2M+IGRvZXNuJ3QgbGVhdmUgSW5zZXJ0IG1vZGUgdGhlbi4KU29sdXRpb246ICAgT25seSB1c2UgbmVzdGVkIEluc2VydCBtb2RlIHdoZW4gJ2luc2VydG1vZGUnIGlzIHNldCBvciB3aGVuIGEKCSAgICBtYXBwaW5nIGlzIHVzZWQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMDU3ClByb2JsZW06ICAgIFVzaW5nICI6d2luY21kIGd9IiBpbiBhIGZ1bmN0aW9uIGRvZXNuJ3Qgd29yay4gIChHYXJ5IEhvbGxvd2F5KQpTb2x1dGlvbjogICBFeGVjdXRlIHRoZSBjb21tYW5kIGRpcmVjdGx5LCBpbnN0ZWFkIG9mIHB1dHRpbmcgaXQgaW4gdGhlCgkgICAgdHlwZWFoZWFkIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMsIHNyYy9wcm90by9ub3JtYWwucHJvLCBzcmMvd2luZG93LmMKClBhdGNoIDYuMC4wNTgKUHJvYmxlbTogICAgV2hlbiBhIEN1cnNvcmhvbGQgYXV0b2NvbW1hbmQgbW92ZWQgdGhlIGN1cnNvciwgdGhlIHJ1bGVyIHdhc24ndAoJICAgIHVwZGF0ZWQuIChCb2hkYW4gVmxhc3l1aykKU29sdXRpb246ICAgVXBkYXRlIHRoZSBydWxlciBhZnRlciBleGVjdXRpbmcgdGhlIGF1dG9jb21tYW5kcy4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMC4wNTkKUHJvYmxlbTogICAgSGlnaGxpZ2h0aW5nIGZvciAnaGxzZWFyY2gnIGlzbid0IHZpc2libGUgaW4gbGluZXMgdGhhdCBhcmUKCSAgICBoaWdobGlnaHRlZCBmb3IgZGlmZiBoaWdobGlnaHRpbmcuICAoR2FyeSBIb2xsb3dheSkKU29sdXRpb246ICAgTGV0ICdobHNlYXJjaCcgaGlnaGxpZ2h0aW5nIG92ZXJydWxlIGRpZmYgaGlnaGxpZ2h0aW5nLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4wLjA2MApQcm9ibGVtOiAgICBNb3RpZjogV2hlbiB0aGUgdG9vbHRpcCBpcyB0byBiZSBwb3BwZWQgdXAsIFZpbSBjcmFzaGVzLgoJICAgIChHYXJ5IEhvbGxvd2F5KQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBOVUxMIHJldHVybiB2YWx1ZSBmcm9tIGd1aV9tb3RpZl9mb250c2V0MmZvbnRsaXN0KCkuCkZpbGVzOgkgICAgc3JjL2d1aV9iZXZhbC5jCgpQYXRjaCA2LjAuMDYxClByb2JsZW06ICAgIFRoZSB0b29sYmFyIGJ1dHRvbnMgdG8gbG9hZCBhbmQgc2F2ZSBhIHNlc3Npb24gZG8gbm90IGNvcnJlY3RseQoJICAgIHVzZSB2OnRoaXNfc2Vzc2lvbi4KU29sdXRpb246ICAgQ2hlY2sgZm9yIHY6dGhpc19zZXNzaW9uIHRvIGJlIGVtcHR5IGluc3RlYWQgb2YgZXhpc3RpbmcuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4wLjA2MgpQcm9ibGVtOiAgICBDcmFzaCB3aGVuICd2ZXJib3NlJyBpcyA+IDMgYW5kIHVzaW5nICI6c2hlbGwiLiAoWWVnYXBwYW4KCSAgICBMYWtzaG1hbmFuKQpTb2x1dGlvbjogICBBdm9pZCBnaXZpbmcgYSBOVUxMIHBvaW50ZXIgdG8gcHJpbnRmKCkuICBBbHNvIG91dHB1dCBhIG5ld2xpbmUKCSAgICBhbmQgc3dpdGNoIHRoZSBjdXJzb3Igb24uCkZpbGVzOgkgICAgc3JjL21pc2MyLmMKClBhdGNoIDYuMC4wNjMKUHJvYmxlbTogICAgV2hlbiAnY3BvcHRpb25zJyBpbmNsdWRlcyAiJCIsIHVzaW5nICJjdyIgdG8gdHlwZSBhICcpJyBvbiB0b3Agb2YKCSAgICB0aGUgIiQiIGRvZXNuJ3QgdXBkYXRlIHN5bnRheCBoaWdobGlnaHRpbmcgYWZ0ZXIgaXQuClNvbHV0aW9uOiAgIFN0b3AgZGlzcGxheWluZyB0aGUgIiQiIHdoZW4gdHlwaW5nIGEgJyknIGluIGl0cyBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMC4wNjQgKGV4dHJhKQpQcm9ibGVtOiAgICBUaGUgTlNJUyBpbnN0YWxsIHNjcmlwdCBkb2Vzbid0IHdvcmsgd2l0aCBuZXdlciB2ZXJzaW9ucyBvZiBOU0lTLgoJICAgIFRoZSBkaWZmIGZlYXR1cmUgZG9lc24ndCB3b3JrIHdoZW4gdGhlcmUgaXNuJ3QgYSBnb29kIGRpZmYuZXhlIG9uCgkgICAgdGhlIHN5c3RlbS4KU29sdXRpb246ICAgUmVwbGFjZSB0aGUgR2V0UGFyZW50RGlyIGluc3RydWN0aW9uIGJ5IGEgdXNlciBmdW5jdGlvbi4KCSAgICBGaXggYSBmZXcgY29zbWV0aWMgcHJvYmxlbXMuICBVc2UgZGVmaW5lZCBjb25zdGFudHMgZm9yIHRoZQoJICAgIHZlcnNpb24gbnVtYmVyLCBzbyB0aGF0IGl0J3MgZGVmaW5lZCBpbiBvbmUgcGxhY2Ugb25seS4KCSAgICBPbmx5IGFjY2VwdCB0aGUgaW5zdGFsbCBkaXJlY3Rvcnkgd2hlbiBpdCBlbmRzIGluICJ2aW0iLgoJICAgIChFZHVhcmRvIEZlcm5hbmRleikKCSAgICBBZGQgYSBkaWZmLmV4ZSBhbmQgdXNlIGl0IGZyb20gdGhlIGRlZmF1bHQgX3ZpbXJjLgpGaWxlczoJICAgIG5zaXMvZ3ZpbS5uc2ksIG5zaXMvUkVBRE1FLnR4dCwgc3JjL2Rvc2luc3QuYwoKUGF0Y2ggNi4wLjA2NQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6bm9ybWFsIiBpbiAnaW5kZW50ZXhwcicgaXQgbWF5IHVzZSByZWRvIGNoYXJhY3RlcnMKCSAgICBiZWZvcmUgaXRzIGFyZ3VtZW50LiAgKE5laWwgQmlyZCkKU29sdXRpb246ICAgU2F2ZSBhbmQgcmVzdG9yZSB0aGUgc3R1ZmYgYnVmZmVyIGluIGV4X25vcm1hbCgpLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2V0Y2hhci5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjAuMDY2ClByb2JsZW06ICAgIFNvbWV0aW1lcyB1bmRvIGZvciBvbmUgY29tbWFuZCBpcyBzcGxpdCBpbnRvIHR3byB1bmRvIGFjdGlvbnMuCgkgICAgKEhhbGltIFNhbG1hbikKU29sdXRpb246ICAgRG9uJ3Qgc2V0IHRoZSB1bmRvLXN5bmNlZCBmbGFnIHdoZW4gcmV1c2luZyBhIGxpbmUgdGhhdCB3YXMKCSAgICBhbHJlYWR5IHNhdmVkIGZvciB1bmRvLgpGaWxlczoJICAgIHNyYy91bmRvLmMKClBhdGNoIDYuMC4wNjcKUHJvYmxlbTogICAgaWZfeGNtZHNydi5jIGRvZXNuJ3QgY29tcGlsZSBvbiBzeXN0ZW1zIHdoZXJlIGZkX3NldCBpc24ndCBkZWZpbmVkCgkgICAgaW4gdGhlIHVzdWFsIGhlYWRlciBmaWxlIChlLmcuLCBBSVgpLiAoTWFyayBXYWdnb25lcikKU29sdXRpb246ICAgSW5jbHVkZSBzeXMvc2VsZWN0LmggaW4gaWZfeGNtZHNydi5jIGZvciBzeXN0ZW1zIHRoYXQgaGF2ZSBpdC4KRmlsZXM6CSAgICBzcmMvaWZfeGNtZHNydi5jCgpQYXRjaCA2LjAuMDY4ClByb2JsZW06ICAgIFdoZW4gZm9ybWF0dGluZyBhIFZpc3VhbGx5IHNlbGVjdGVkIGFyZWEgd2l0aCAiZ3EiIGFuZCB0aGUgbnVtYmVyCgkgICAgb2YgbGluZXMgaW5jcmVhc2VzIHRoZSBsYXN0IGxpbmUgbWF5IG5vdCBiZSByZWRyYXduIGNvcnJlY3RseS4KCSAgICAoWWVnYXBwYW4gTGFrc2htYW5hbikKU29sdXRpb246ICAgQ29ycmVjdCB0aGUgYXJlYSB0byBiZSByZWRyYXduIGZvciBpbnNlcnRlZC9kZWxldGVkIGxpbmVzLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjA2OQpQcm9ibGVtOiAgICBVc2luZyAiSyIgb24gYSB3b3JkIHRoYXQgaW5jbHVkZXMgYSAiISIgY2F1c2VzIGEgIk5vIHByZXZpb3VzCgkgICAgY29tbWFuZCIgZXJyb3IsIGJlY2F1c2UgdGhlICIhIiBpcyBleHBhbmRlZC4gKENyYWlnIEplZmZyaWVzKQpTb2x1dGlvbjogICBQdXQgYSBiYWNrc2xhc2ggYmVmb3JlIHRoZSAiISIuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMDcwClByb2JsZW06ICAgIFdpbjMyOiBUaGUgZXJyb3IgbWVzc2FnZSBmb3IgYSBmYWlsZWQgZHluYW1pYyBsaW5raW5nIG9mIGEgUGVybCwKCSAgICBSdWJ5LCBUY2wgYW5kIFB5dGhvbiBsaWJyYXJ5IGlzIHVuY2xlYXIgYWJvdXQgd2hhdCB3ZW50IHdyb25nLgpTb2x1dGlvbjogICBHaXZlIHRoZSBuYW1lIG9mIHRoZSBsaWJyYXJ5IG9yIGZ1bmN0aW9uIHRoYXQgY291bGQgbm90IGJlIGxvYWRlZC4KCSAgICBBbHNvIGZvciB0aGUgaWNvbnYgYW5kIGdldHRleHQgbGlicmFyaWVzIHdoZW4gJ3ZlcmJvc2UnIGlzIHNldC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvaWZfcGVybC54cywgc3JjL2lmX3B5dGhvbi5jLCBzcmMvaWZfcnVieS5jLAoJICAgIHNyYy9pZl90Y2wuYywgc3JjL21ieXRlLmMsIHNyYy9vc193aW4zMi5jLCBzcmMvcHJvdG8vaWZfcGVybC5wcm8sCgkgICAgc3JjL3Byb3RvL2lmX3B5dGhvbi5wcm8sIHNyYy9wcm90by9pZl9ydWJ5LnBybywKCSAgICBzcmMvcHJvdG8vaWZfdGNsLnBybywgc3JjL3Byb3RvL21ieXRlLnBybwoKUGF0Y2ggNi4wLjA3MQpQcm9ibGVtOiAgICBUaGUgImlyaXMtYW5zaSIgYnVpbHRpbiB0ZXJtY2FwIGlzbid0IHZlcnkgZ29vZC4KU29sdXRpb246ICAgRml4IHRoZSB3cm9uZyBlbnRyaWVzLiAoRGF2aWQgSGFycmlzb24pCkZpbGVzOgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4wLjA3MgpQcm9ibGVtOiAgICBXaGVuICdsYXp5cmVkcmF3JyBpcyBzZXQsIGEgbWFwcGluZyB0aGF0IHN0b3BzIFZpc3VhbCBtb2RlLCBtb3ZlcwoJICAgIHRoZSBjdXJzb3IgYW5kIHN0YXJ0cyBWaXN1YWwgbW9kZSBhZ2FpbiBjYXVzZXMgYSByZWRyYXcgcHJvYmxlbS4KCSAgICAoQnJpYW4gU2lsdmVybWFuKQpTb2x1dGlvbjogICBSZWRyYXcgYm90aCB0aGUgb2xkIGFuZCB0aGUgbmV3IFZpc3VhbCBhcmVhIHdoZW4gbmVjZXNzYXJ5LgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjAuMDczIChleHRyYSkKUHJvYmxlbTogICAgREpHUFA6IFdoZW4gdXNpbmcgQ1RSTC1aIHRvIHN0YXJ0IGEgc2hlbGwsIHRoZSBwcm9tcHQgaXMgaGFsZndheQoJICAgIHRoZSB0ZXh0LiAoVm9sa2VyIEtpZWZlbCkKU29sdXRpb246ICAgUG9zaXRpb24gdGhlIHN5c3RlbSBjdXJzb3IgYmVmb3JlIHN0YXJ0aW5nIHRoZSBzaGVsbC4KRmlsZXM6CSAgICBzcmMvb3NfbXNkb3MuYwoKUGF0Y2ggNi4wLjA3NApQcm9ibGVtOiAgICBXaGVuIHVzaW5nICImIiBpbiBhIHN1YnN0aXR1dGUgc3RyaW5nIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgd2l0aAoJICAgIGEgdHJhaWxieXRlIDB4NWMgaXMgbm90IGhhbmRsZWQgY29ycmVjdGx5LgpTb2x1dGlvbjogICBSZWNvZ25pemUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGluc2lkZSB0aGUgIiYiIHBhcnQuIChNdXJhb2thIFRhcm8pCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjAuMDc1ClByb2JsZW06ICAgIFdoZW4gY2xvc2luZyBhIGhvcml6b250YWxseSBzcGxpdCB3aW5kb3cgd2hpbGUgJ2VhZGlyZWN0aW9uJyBpcwoJICAgICJob3IiIGFub3RoZXIgaG9yaXpvbnRhbGx5IHNwbGl0IHdpbmRvdyBpcyBzdGlsbCByZXNpemVkLiAoQXJvbgoJICAgIEdyaWZmaXMpClNvbHV0aW9uOiAgIE9ubHkgcmVzaXplIHdpbmRvd3MgaW4gdGhlIHNhbWUgdG9wIGZyYW1lIGFzIHRoZSB3aW5kb3cgdGhhdCBpcwoJICAgIHNwbGl0IG9yIGNsb3NlZC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jLCBzcmMvcHJvdG8vd2luZG93LnBybywgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjAuMDc2ClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIHdyb25nIHBvaW50ZXIgdHlwZSB3aGVuIGNvbXBpbGluZy4KU29sdXRpb246ICAgVXNlIGNoYXIgaW5zdGVhZCBvZiBjaGFyX3UgcG9pbnRlci4KRmlsZXM6CSAgICBzcmMvdmVyc2lvbi5jCgpQYXRjaCA2LjAuMDc3ClByb2JsZW06ICAgIFBhdGNoIDYuMC4wNzUgd2FzIGluY29tcGxldGUuClNvbHV0aW9uOiAgIEZpeCBhbm90aGVyIGNhbGwgdG8gd2luX2VxdWFsKCkuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMDc4ClByb2JsZW06ICAgIFVzaW5nICJkYXciIGF0IHRoZSBlbmQgb2YgYSBsaW5lIG9uIGEgc2luZ2xlLWNoYXJhY3RlciB3b3JkIGRpZG4ndAoJICAgIGluY2x1ZGUgdGhlIHdoaXRlIHNwYWNlIGJlZm9yZSBpdC4gIEF0IHRoZSBlbmQgb2YgdGhlIGZpbGUgaXQKCSAgICBkaWRuJ3Qgd29yayBhdCBhbGwuICAoR2F2aW4gU2luY2xhaXIpClNvbHV0aW9uOiAgIEluY2x1ZGUgdGhlIHdoaXRlIHNwYWNlIGJlZm9yZSB0aGUgd29yZC4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMC4wNzkKUHJvYmxlbTogICAgV2hlbiAiVyIgaXMgaW4gJ2Nwb3B0aW9ucycgYW5kICdiYWNrdXBjb3B5JyBpcyAibm8iIG9yICJhdXRvIiwgY2FuCgkgICAgc3RpbGwgb3ZlcndyaXRlIGEgcmVhZC1vbmx5IGZpbGUsIGJlY2F1c2UgaXQncyByZW5hbWVkLiAoR2FyeQoJICAgIEhvbGxvd2F5KQpTb2x1dGlvbjogICBBZGQgYSBjaGVjayBmb3IgYSByZWFkLW9ubHkgZmlsZSBiZWZvcmUgcmVuYW1pbmcgdGhlIGZpbGUgdG8KCSAgICBiZWNvbWUgdGhlIGJhY2t1cC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4wODAKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIHNlc3Npb24gZmlsZSB0aGF0IGhhcyB0aGUgc2FtZSBmaWxlIGluIHR3byB3aW5kb3dzLAoJICAgIHRoZSBmaWxlaW5mbygpIGNhbGwgaW4gZG9fZWNtZCgpIGNhdXNlcyBhIHNjcm9sbCBhbmQgYSBoaXQtZW50ZXIKCSAgICBwcm9tcHQuIChSb2JlcnQgV2ViYikKU29sdXRpb246ICAgRG9uJ3Qgc2Nyb2xsIHRoaXMgbWVzc2FnZSB3aGVuICdzaG9ydG1lc3MnIGNvbnRhaW5zICdPJy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjAuMDgxClByb2JsZW06ICAgIEFmdGVyIHVzaW5nICI6c2F2ZWFzIiB0aGUgbmV3IGJ1ZmZlciBuYW1lIGlzIGFkZGVkIHRvIHRoZSBCdWZmZXJzCgkgICAgbWVudSB3aXRoIGEgd3JvbmcgbnVtYmVyLiAoQ2hhdWstTWVhbiBQcm91bSkKU29sdXRpb246ICAgVHJpZ2dlciBCdWZGaWxlUHJlIGFuZCBCdWZGaWxlUG9zdCBldmVudHMgZm9yIHRoZSByZW5hbWVkIGJ1ZmZlcgoJICAgIGFuZCBCdWZBZGQgZm9yIHRoZSBvbGQgbmFtZSAod2hpY2ggaXMgd2l0aCBhIG5ldyBidWZmZXIpLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMC4wODIKUHJvYmxlbTogICAgV2hlbiBzd2FwcGluZyBzY3JlZW5zIGluIGFuIHh0ZXJtIGFuZCB0aGVyZSBpcyBhbiAoZXJyb3IpIG1lc3NhZ2UKCSAgICBmcm9tIHRoZSB2aW1yYyBzY3JpcHQsIHRoZSBzaGVsbCBwcm9tcHQgaXMgYWZ0ZXIgdGhlIG1lc3NhZ2UuClNvbHV0aW9uOiAgIE91dHB1dCBhIG5ld2xpbmUgd2hlbiB0aGVyZSB3YXMgb3V0cHV0IG9uIHRoZSBhbHRlcm5hdGUgc2NyZWVuLgoJICAgIEFsc28gd2hlbiBzdGFydGluZyB0aGUgR1VJLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMC4wODMKUHJvYmxlbTogICAgR1RLOiBXaGVuIGNvbXBpbGVkIHdpdGhvdXQgbWVudSBzdXBwb3J0IHRoZSBidXR0b25zIGluIGEgZGlhbG9nCgkgICAgZG9uJ3QgaGF2ZSBhbnkgdGV4dC4gKEVyaWsgRWRlbG1hbm4pClNvbHV0aW9uOiAgIEFkZCB0aGUgdGV4dCBhbHNvIHdoZW4gR1RLX1VTRV9BQ0NFTCBpc24ndCBkZWZpbmVkLiAgQW5kIGRlZmluZQoJICAgIEdUS19VU0VfQUNDRUwgYWxzbyB3aGVuIG5vdCB1c2luZyBtZW51cy4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jCgpQYXRjaCA2LjAuMDg0ClByb2JsZW06ICAgIFVURi04OiBhICJyIiBjb21tYW5kIHdpdGggYW4gYXJndW1lbnQgdGhhdCBpcyBhIGtleW1hcCBmb3IgYQoJICAgIGNoYXJhY3RlciB3aXRoIGEgY29tcG9zaW5nIGNoYXJhY3RlciBjYW4ndCBiZSByZXBlYXRlZCB3aXRoICIuIi4KCSAgICAoUmFwaGFlbCBGaW5rZWwpClNvbHV0aW9uOiAgIEFkZCB0aGUgY29tcG9zaW5nIGNoYXJhY3RlcnMgdG8gdGhlIHJlZG8gYnVmZmVyLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4wLjA4NQpQcm9ibGVtOiAgICBXaGVuICdtb3VzZWZvY3VzJyBpcyBzZXQsIHVzaW5nICJzIiB0byBnbyB0byBJbnNlcnQgbW9kZSBhbmQgdGhlbgoJICAgIG1vdmluZyB0aGUgbW91c2UgcG9pbnRlciB0byBhbm90aGVyIHdpbmRvdyBzdG9wcyBJbnNlcnQgbW9kZSwKCSAgICB3aGlsZSB0aGlzIGRvZXNuJ3QgaGFwcGVuIHdpdGggImEiIG9yICJpIi4gKFJvYmVydCBXZWJiKQpTb2x1dGlvbjogICBSZXNldCBmaW5pc2hfb3AgYmVmb3JlIGNhbGxpbmcgZWRpdCgpLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4wLjA4NgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICJndSIgdGhlIG1lc3NhZ2Ugc2F5cyAifmVkIi4KU29sdXRpb246ICAgTWFrZSB0aGUgbWVzc2FnZSBzYXkgImNoYW5nZWQiLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjA4NyAobGFuZykKUHJvYmxlbTogICAgTWVzc2FnZSB0cmFuc2xhdGlvbnMgYXJlIGluY29ycmVjdCwgd2hpY2ggbWF5IGNhdXNlIGEgY3Jhc2guCgkgICAgKFBldGVyIEZpZ3VyYSkKCSAgICBUaGUgVHVya2lzaCB0cmFuc2xhdGlvbnMgbmVlZGVkIG1vcmUgd29yayBhbmQgdGhlIG1haW50YWluZXIKCSAgICBkaWRuJ3QgaGF2ZSB0aW1lLgpTb2x1dGlvbjogICBGaXggb3JkZXIgb2YgcHJpbnRmIGFyZ3VtZW50cy4gIFJlbW92ZSAlMiRkIGNvbnN0cnVjdHMuCgkgICAgQWRkICItdiIgdG8gbXNnZm10IHRvIGdldCBhIHdhcm5pbmcgZm9yIHdyb25nIHRyYW5zbGF0aW9ucy4KCSAgICBEb24ndCBpbnN0YWxsIHRoZSBUdXJraXNoIHRyYW5zbGF0aW9ucyBmb3Igbm93LgoJICAgIFVwZGF0ZSBhIGZldyBtb3JlIHRyYW5zbGF0aW9ucy4KRmlsZXM6CSAgICBzcmMvcG8vTWFrZWZpbGUsIHNyYy9wby9hZi5wbywgc3JjL3BvL2NzLnBvLCBzcmMvcG8vY3MuY3AxMjUwLnBvLAoJICAgIHNyYy9wby9kZS5wbywgc3JjL3BvL2VzLnBvLCBzcmMvcG8vZnIucG8sIHNyYy9wby9pdC5wbywKCSAgICBzcmMvcG8vamEucG8sIHNyYy9wby9qYS5zamlzLnBvLCBzcmMvcG8va28ucG8sIHNyYy9wby9wbC5wbywKCSAgICBzcmMvcG8vc2sucG8sIHNyYy9wby91ay5wbywgc3JjL3BvL3poX0NOLlVURi04LnBvLAoJICAgIHNyYy9wby96aF9DTi5jcDkzNi5wbywgc3JjL3BvL3poX0NOLnBvLCBzcmMvcG8vemhfVFcucG8KClBhdGNoIDYuMC4wODgKUHJvYmxlbTogICAgIi4iIGRvZXNuJ3Qgd29yayBhZnRlciB1c2luZyAicngiIGluIFZpc3VhbCBtb2RlLiAgKENoYXJsZXMKCSAgICBDYW1wYmVsbCkKU29sdXRpb246ICAgQWxzbyBzdG9yZSB0aGUgcmVwbGFjZW1lbnQgY2hhcmFjdGVyIGluIHRoZSByZWRvIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4wODkKUHJvYmxlbTogICAgSW4gYSBDIGZpbGUsIHVzaW5nICI9PSIgdG8gYWxpZ24gYSBsaW5lIHN0YXJ0aW5nIHdpdGggIiogICIgYWZ0ZXIKCSAgICBhIGxpbmUgd2l0aCAiKiAtIiBpbmRlbnRzIG9uZSBzcGFjZSB0b28gZmV3LiAgKFBpZXQgRGVscG9ydCkKU29sdXRpb246ICAgQWxpZ24gd2l0aCB0aGUgcHJldmlvdXMgbGluZSBpZiB0aGUgY29tbWVudC1zdGFydC1zdHJpbmcgbWF0Y2hlcwoJICAgIHRoZXJlLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjAuMDkwClByb2JsZW06ICAgIFdoZW4gYSB3cmFwcGluZyBsaW5lIGRvZXMgbm90IGZpdCBpbiBhIHdpbmRvdyBhbmQgJ3Njcm9sbG9mZicgaXMKCSAgICBiaWdnZXIgdGhhbiBoYWxmIHRoZSB3aW5kb3cgaGVpZ2h0LCBtb3ZpbmcgdGhlIGN1cnNvciBsZWZ0IG9yCgkgICAgcmlnaHQgY2F1c2VzIHRoZSBzY3JlZW4gdG8gZmxhc2ggYmFkbHkuIChMdWJvbWlyIEhvc3QpClNvbHV0aW9uOiAgIFdoZW4gdGhlcmUgaXMgbm90IGVub3VnaCByb29tIHRvIHNob3cgJ3Njcm9sbG9mZicgc2NyZWVuIGxpbmVzIGFuZAoJICAgIG5lYXIgdGhlIGVuZCBvZiB0aGUgbGluZSwgc2hvdyB0aGUgZW5kIG9mIHRoZSBsaW5lLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMC4wOTEKUHJvYmxlbTogICAgVXNpbmcgQ1RSTC1PIGluIEluc2VydCBtb2RlLCB3aGlsZSAndmlydHVhbGVkaXQnIGlzICJhbGwiIGFuZCB0aGUKCSAgICBjdXJzb3IgaXMgYWZ0ZXIgdGhlIGVuZC1vZi1saW5lLCBtb3ZlcyB0aGUgY3Vyc29yIGxlZnQuIChZZWdhcHBhbgoJICAgIExha3NobWFuYW4pClNvbHV0aW9uOiAgIEtlZXAgdGhlIGN1cnNvciBpbiB0aGUgc2FtZSBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjAuMDkyClByb2JsZW06ICAgIFRoZSBleHBsb3JlciBwbHVnaW4gZG9lc24ndCBpZ25vcmUgY2FzZSBvZiAnc3VmZml4ZXMnIG9uCgkgICAgTVMtV2luZG93cy4gKE1pa2UgV2lsbGlhbXMpClNvbHV0aW9uOiAgIE1hdGNoIG9yIGlnbm9yZSBjYXNlIGFzIGFwcHJvcHJpYXRlIGZvciB0aGUgT1MuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZXhwbG9yZXIudmltCgpQYXRjaCA2LjAuMDkzClByb2JsZW06ICAgIFdoZW4gdGhlIFRjbCBsaWJyYXJ5IGNvdWxkbid0IGJlIGxvYWRlZCBkeW5hbWljYWxseSwgZ2V0IGFuIGVycm9yCgkgICAgbWVzc2FnZSB3aGVuIGNsb3NpbmcgYSBidWZmZXIgb3Igd2luZG93LiAoTXVyYW9rYSBUYXJvKQpTb2x1dGlvbjogICBPbmx5IGZyZWUgc3RydWN0dXJlcyBpZiBhbHJlYWR5IHVzaW5nIHRoZSBUY2wgaW50ZXJwcmV0ZXIuCkZpbGVzOgkgICAgc3JjL2lmX3RjbC5jCgpQYXRjaCA2LjAuMDk0ClByb2JsZW06ICAgIEF0aGVuYTogV2hlbiBjbGlja2luZyBpbiB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgVmltIGNyYXNoZXMuCgkgICAgKFBhdWwgQWNrZXJzdmlsbGVyKQpTb2x1dGlvbjogICBVc2UgdGhlIHRodW1iIHNpemUgaW5zdGVhZCBvZiB0aGUgd2luZG93IHBvaW50ZXIgb2YgdGhlIHNjcm9sbGJhcgoJICAgICh3aGljaCBpcyBOVUxMKS4gKERhdmlkIEhhcnJpc29uKQoJICAgIEFsc28gYXZvaWQgdGhhdCBzY3JvbGxpbmcgZ29lcyB0aGUgd3Jvbmcgd2F5IGluIGEgbmFycm93IHdpbmRvdy4KRmlsZXM6CSAgICBzcmMvZ3VpX2F0aGVuYS5jCgpQYXRjaCA2LjAuMDk1ClByb2JsZW06ICAgIFBlcmw6IERlbGV0aW5nIGxpbmVzIG1heSBsZWF2ZSB0aGUgY3Vyc29yIGJleW9uZCB0aGUgZW5kIG9mIHRoZQoJICAgIGZpbGUuClNvbHV0aW9uOiAgIENoZWNrIHRoZSBjdXJzb3IgcG9zaXRpb24gYWZ0ZXIgZGVsZXRpbmcgYSBsaW5lLiAoU2VyZ3VlaSkKRmlsZXM6CSAgICBzcmMvaWZfcGVybC54cwoKUGF0Y2ggNi4wLjA5NgpQcm9ibGVtOiAgICBXaGVuICI6c2F2ZWFzIGZuYW1lIiBmYWlscyBiZWNhdXNlIHRoZSBmaWxlIGFscmVhZHkgZXhpc3RzLCB0aGUKCSAgICBmaWxlIG5hbWUgaXMgY2hhbmdlZCBhbnl3YXkgYW5kIGEgZm9sbG93aW5nICI6dyIgd2lsbCBvdmVyd3JpdGUKCSAgICB0aGUgZmlsZS4gKEVyaWMgQ2FybGllcikKU29sdXRpb246ICAgRG9uJ3QgY2hhbmdlIHRoZSBmaWxlIG5hbWUgaWYgdGhlIGZpbGUgYWxyZWFkeSBleGlzdHMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4wLjA5NwpQcm9ibGVtOiAgICBSZS1pbmRlbnRpbmcgaW4gSW5zZXJ0IG1vZGUgd2l0aCBDVFJMLUYgbWF5IGNhdXNlIGEgY3Jhc2ggd2l0aCBhCgkgICAgbXVsdGktYnl0ZSBlbmNvZGluZy4KU29sdXRpb246ICAgQXZvaWQgdXNpbmcgYSBjaGFyYWN0ZXIgYmVmb3JlIHRoZSBzdGFydCBvZiBhIGxpbmUuIChTZXJnZXkKCSAgICBWbGFzb3YpCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4wLjA5OApQcm9ibGVtOiAgICBHVEs6IFdoZW4gdXNpbmcgR25vbWUgdGhlICJTZWFyY2giIGFuZCAiU2VhcmNoIGFuZCBSZXBsYWNlIiBkaWFsb2cKCSAgICBib3hlcyBhcmUgbm90IHRyYW5zbGF0ZWQuClNvbHV0aW9uOiAgIERlZmluZSBFTkFCTEVfTkxTIGJlZm9yZSBpbmNsdWRpbmcgZ25vbWUuaC4gKEVkdWFyZG8gRmVybmFuZGV6KQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjAuMDk5ClByb2JsZW06ICAgIEN5Z3dpbjogV2hlbiBydW5uaW5nIFZpIGNvbXBhdGlibGUgTVMtRE9TIGxpbmUgZW5kaW5ncyBjYXVzZQoJICAgIHRyb3VibGUuClNvbHV0aW9uOiAgIE1ha2UgdGhlIGRlZmF1bHQgZm9yICdmaWxlZm9ybWF0cycgInVuaXgsZG9zIiBpbiBWaSBjb21wYXRpYmxlCgkgICAgbW9kZS4gIChNaWNoYWVsIFNjaGFhcCkKRmlsZXM6CSAgICBzcmMvb3B0aW9uLmgKClBhdGNoIDYuMC4xMDAKUHJvYmxlbTogICAgIjpiYWRkICswIHRlc3QlZmlsZSIgY2F1c2VzIGEgY3Jhc2guClNvbHV0aW9uOiAgIFRha2UgaW50byBhY2NvdW50IHRoYXQgdGhlICIrMCIgaXMgTlVMIHRlcm1pbmF0ZWQgd2hlbiBhbGxvY2F0aW5nCgkgICAgcm9vbSBmb3IgcmVwbGFjaW5nIHRoZSAiJSIuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMC4xMDEKUHJvYmxlbTogICAgIjpta3Nlc3Npb24iIGRvZXNuJ3QgcmVzdG9yZSBlZGl0aW5nIGEgZmlsZSB0aGF0IGhhcyBhICcjJyBvciAnJScKCSAgICBpbiBpdHMgbmFtZS4gIChXb2xmZ2FuZyBCbGFua2VuYnVyZykKU29sdXRpb246ICAgUHV0IGEgYmFja3NsYXNoIGJlZm9yZSB0aGUgJyMnIGFuZCAnJScuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMC4xMDIKUHJvYmxlbTogICAgV2hlbiBjaGFuZ2luZyBmb2xkcyB0aGUgY3Vyc29yIG1heSBhcHBlYXIgaGFsZndheSBhIGNsb3NlZCBmb2xkLgoJICAgIChOYW0gU3VuZ0h5dW4pClNvbHV0aW9uOiAgIFNldCB3X2NsaW5lX2ZvbGRlZCBjb3JyZWN0bHkuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKUGF0Y2ggNi4wLjEwMwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICdzY3JvbGxiaW5kJyBhIGxhcmdlIHZhbHVlIG9mICdzY3JvbGxvZmYnIHdpbGwgbWFrZSB0aGUKCSAgICBzY3JvbGwgYmluZGluZyBzdG9wIG5lYXIgdGhlIGVuZCBvZiB0aGUgZmlsZS4gKENvZW4gRW5nZWxiYXJ0cykKU29sdXRpb246ICAgRG9uJ3QgdXNlICdzY3JvbGxvZmYnIHdoZW4gbGltaXRpbmcgdGhlIHRvcGxpbmUgZm9yIHNjcm9sbAoJICAgIGJpbmRpbmcuIChEYW55IFN0QW1hbnQpCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMTA0ClByb2JsZW06ICAgIE11bHRpLWJ5dGU6IFdoZW4gJyQnIGlzIGluICdjcG9wdGlvbnMnLCB0eXBpbmcgYSBkb3VibGUtd2lkZQoJICAgIGNoYXJhY3RlciB0aGF0IG92ZXJ3cml0ZXMgdGhlIGxlZnQgaGFsdmUgb2YgYW4gb2xkIGRvdWJsZS13aWRlCgkgICAgY2hhcmFjdGVyIGNhdXNlcyBhIHJlZHJhdyBwcm9ibGVtIGFuZCB0aGUgY3Vyc29yIHN0b3BzIGJsaW5raW5nLgpTb2x1dGlvbjogICBDbGVhciB0aGUgcmlnaHQgaGFsZiBvZiB0aGUgb2xkIGNoYXJhY3Rlci4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMC4xMDUKUHJvYmxlbTogICAgTXVsdGktYnl0ZTogSW4gYSB3aW5kb3cgb2Ygb25lIGNvbHVtbiB3aWRlLCB3aXRoIHN5bnRheAoJICAgIGhpZ2hsaWdodGluZyBlbmFibGVkIGEgY3Jhc2ggbWlnaHQgaGFwcGVuLgpTb2x1dGlvbjogICBTa2lwIGdldHRpbmcgdGhlIHN5bnRheCBhdHRyaWJ1dGUgd2hlbiB0aGUgY2hhcmFjdGVyIGRvZXNuJ3QgZml0CgkgICAgYW55d2F5LiAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMC4xMDYgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB0aGUgcHJpbnRlciBmb250IGlzIHdyb25nLCB0aGVyZSBpcyBubyBlcnJvciBtZXNzYWdlLgpTb2x1dGlvbjogICBHaXZlIGFuIGFwcHJvcHJpYXRlIGVycm9yIG1lc3NhZ2UuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMC4xMDcgKGV4dHJhKQpQcm9ibGVtOiAgICBWaXNWaW06IFdoZW4gZWRpdGluZyBhbm90aGVyIGZpbGUsIGEgbW9kaWZpZWQgZmlsZSBtYXkgYmUgd3JpdHRlbgoJICAgIHVuZXhwZWN0ZWRseSBhbmQgd2l0aG91dCB3YXJuaW5nLgpTb2x1dGlvbjogICBTcGxpdCB0aGUgd2luZG93IGlmIGEgZmlsZSB3YXMgbW9kaWZpZWQuCkZpbGVzOgkgICAgVmlzVmltL0NvbW1hbmRzLmNwcAoKUGF0Y2ggNi4wLjEwOApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGZvbGRpbmcgY291bGQgdHJ5IGRpc3BsYXlpbmcgbGluZSB6ZXJvLCByZXN1bHRpbmcgaW4gYW4KCSAgICBlcnJvciBmb3IgYSBOVUxMIHBvaW50ZXIuClNvbHV0aW9uOiAgIFN0b3AgZGVjcmVtZW50aW5nIHdfdG9wbGluZSB3aGVuIHRoZSBmaXJzdCBsaW5lIG9mIGEgd2luZG93IGlzIGluCgkgICAgYSBjbG9zZWQgZm9sZC4KRmlsZXM6CSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMC4xMDkKUHJvYmxlbTogICAgWElNOiBXaGVuIHRoZSBpbnB1dCBtZXRob2QgaXMgZW5hYmxlZCwgcmVwZWF0aW5nIGFuIGluc2VydGlvbiB3aXRoCgkgICAgIi4iIGRpc2FibGVzIGl0LiAoTWFyY2VsIFN2aXRhbHNreSkKU29sdXRpb246ICAgRG9uJ3Qgc3RvcmUgdGhlIGlucHV0IG1ldGhvZCBzdGF0dXMgd2hlbiBhIGNvbW1hbmQgY29tZXMgZnJvbSB0aGUKCSAgICBzdHVmZiBidWZmZXIuCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMC4xMTAKUHJvYmxlbTogICAgVXNpbmcgdW5kbyBhZnRlciBleGVjdXRpbmcgIk94G2pBeBtrZGQiIGZyb20gYSByZWdpc3RlciBpbgoJICAgIGFuIGVtcHR5IGJ1ZmZlciBnaXZlcyBhbiBlcnJvciBtZXNzYWdlLiAgKEdlcmhhcmQgSG9jaGhvbHplcikKU29sdXRpb246ICAgRG9uJ3QgYWRqdXN0IHRoZSBib3R0b20gbGluZSBudW1iZXIgb2YgYW4gdW5kbyBibG9jayB3aGVuIGl0J3MKCSAgICB6ZXJvLiAgQWRkIGEgdGVzdCBmb3IgdGhpcyBwcm9ibGVtLgpGaWxlczoJICAgIHNyYy91bmRvLmMsIHNyYy90ZXN0ZGlyL3Rlc3QyMC5pbiwgc3JjL3Rlc3RkaXIvdGVzdDIwLm9rCgpQYXRjaCA2LjAuMTExClByb2JsZW06ICAgIFRoZSB2aXJ0Y29sKCkgZnVuY3Rpb24gZG9lc24ndCB0YWtlIGNhcmUgb2YgJ3ZpcnR1YWxlZGl0Jy4KU29sdXRpb246ICAgQWRkIHRoZSBjb2x1bW4gb2Zmc2V0IHdoZW4gbmVlZGVkLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMTEyClByb2JsZW06ICAgIFRoZSBleHBsb3JlciBwbHVnaW4gZG9lc24ndCBzb3J0IGRpcmVjdG9yaWVzIHdpdGggYSBzcGFjZSBvcgoJICAgIHNwZWNpYWwgY2hhcmFjdGVyIGFmdGVyIGEgZGlyZWN0b3J5IHdpdGggYSBzaG9ydGVyIG5hbWUuClNvbHV0aW9uOiAgIElnbm9yZSB0aGUgdHJhaWxpbmcgc2xhc2ggd2hlbiBjb21wYXJpbmcgZGlyZWN0b3J5IG5hbWVzLiAgKE1pa2UKCSAgICBXaWxsaWFtcykKRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9leHBsb3Jlci52aW0KClBhdGNoIDYuMC4xMTMKUHJvYmxlbTogICAgIjplZGl0IH4vZm5hbWUiIGRvZXNuJ3Qgd29yayBpZiAkSE9NRSBpbmNsdWRlcyBhIHNwYWNlLiAgQWxzbywKCSAgICBleHBhbmRpbmcgd2lsZGNhcmRzIHdpdGggdGhlIHNoZWxsIG1heSBmYWlsLiAoSm9obiBEYW5pZWwpClNvbHV0aW9uOiAgIEVzY2FwZSBzcGFjZXMgd2l0aCBhIGJhY2tzbGFzaCB3aGVuIG5lZWRlZC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL21pc2MxLmMsIHNyYy9wcm90by9taXNjMS5wcm8sIHNyYy9vc191bml4LmMKClBhdGNoIDYuMC4xMTQKUHJvYmxlbTogICAgVXNpbmcgIjpwIiB3aXRoIGZuYW1lbW9kaWZ5KCkgZGlkbid0IGV4cGFuZCAifi8iIG9yICJ+dXNlci8iIHRvIGEKCSAgICBmdWxsIHBhdGguICBGb3IgV2luMzIgdGhlIGN1cnJlbnQgZGlyZWN0b3J5IHdhcyBwcmVwZW5kZWQuCgkgICAgKE1pY2hhZWwgR2VkZGVzKQpTb2x1dGlvbjogICBFeHBhbmQgdGhlIGhvbWUgZGlyZWN0b3J5LgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4xMTUgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB1c2luZyBhIGRpYWxvZyB3aXRoIGEgdGV4dGZpZWxkIGl0IGNhbm5vdCBzY3JvbGwgdGhlCgkgICAgdGV4dC4KU29sdXRpb246ICAgQWRkIEVTX0FVVE9IU0NST0xMIHRvIHRoZSB0ZXh0ZmllbGQgc3R5bGUuIChQZWRybyBHb21lcykKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjAuMTE2IChleHRyYSkKUHJvYmxlbTogICAgTVMtV2luZG93cyBOVC8yMDAwL1hQOiBmaWxld3JpdGFibGUoKSBkb2Vzbid0IHdvcmsgY29ycmVjdGx5IGZvcgoJICAgIGZpbGVzeXN0ZW1zIHRoYXQgdXNlIEFDTHMuClNvbHV0aW9uOiAgIFVzZSBBQ0wgZnVuY3Rpb25zIHRvIGNoZWNrIGlmIGEgZmlsZSBpcyB3cml0YWJsZS4gKE1pa2UgV2lsbGlhbXMpCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL21hY3Jvcy5oLCBzcmMvb3Nfd2luMzIuYywgc3JjL3Byb3RvL29zX3dpbjMyLnBybwoKUGF0Y2ggNi4wLjExNyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiB3aGVuIGRpc2FibGluZyB0aGUgbWVudSwgInNldCBsaW5lcz05OTkiIGRvZXNuJ3QgdXNlIGFsbAoJICAgIHRoZSBhdmFpbGFibGUgc2NyZWVuIHNwYWNlLgpTb2x1dGlvbjogICBEb24ndCBzdWJ0cmFjdCB0aGUgZml4ZWQgY2FwdGlvbiBoZWlnaHQgYnV0IHRoZSByZWFsIG1lbnUgaGVpZ2h0CgkgICAgZnJvbSB0aGUgYXZhaWxhYmxlIHNjcmVlbiBzcGFjZS4gIEFsc286IEF2b2lkIHJlY3Vyc2lvbiBpbgoJICAgIGd1aV9tc3dpbl9nZXRfbWVudV9oZWlnaHQoKS4KRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjAuMTE4ClByb2JsZW06ICAgIFdoZW4gJFRNUERJUiBpcyBhIHJlbGF0aXZlIHBhdGgsIHRoZSB0ZW1wIGRpcmVjdG9yeSBpcyBtaXNzaW5nIGEKCSAgICB0cmFpbGluZyBzbGFzaCBhbmQgaXNuJ3QgZGVsZXRlZCB3aGVuIFZpbSBleGl0cy4gKFBldGVyIEhvbG0pClNvbHV0aW9uOiAgIEFkZCB0aGUgc2xhc2ggYWZ0ZXIgZXhwYW5kaW5nIHRoZSBkaXJlY3RvcnkgdG8gYW4gYWJzb2x1dGUgcGF0aC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4xMTkgKGRlcGVuZHMgb24gcGF0Y2ggNi4wLjExNikKUHJvYmxlbTogICAgVk1TOiBmaWxld3JpdGFibGUoKSBkb2Vzbid0IHdvcmsgcHJvcGVybHkuClNvbHV0aW9uOiAgIFVzZSB0aGUgc2FtZSBtZXRob2QgYXMgZm9yIFVuaXguIChab2x0YW4gQXJwYWRmZnkpCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjEyMApQcm9ibGVtOiAgICBUaGUgY29udmVyc2lvbiB0byBodG1sIGlzbid0IGNvbXBhdGlibGUgd2l0aCBYSFRNTC4KU29sdXRpb246ICAgUXVvdGUgdGhlIHZhbHVlcy4gKEplc3MgVGhyeXNvZWUpCkZpbGVzOgkgICAgcnVudGltZS9zeW50YXgvMmh0bWwudmltCgpQYXRjaCA2LjAuMTIxIChleHRyYSkgKGRlcGVuZHMgb24gcGF0Y2ggNi4wLjExNikKUHJvYmxlbTogICAgV2luMzI6IEFmdGVyIHBhdGNoIDYuMC4xMTYgVmltIGRvZXNuJ3QgY29tcGlsZSB3aXRoIG1pbmd3MzIuClNvbHV0aW9uOiAgIEFkZCBhbiAjaWZkZWYgSEFWRV9BQ0wuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMC4xMjIgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4xNjogU2FtZSByZXNpemUgcHJvYmxlbXMgYXMgcGF0Y2ggNi4wLjExNyBmaXhlZCBmb3IgV2luMzIuICBBbmQKCSAgICBkaWFsb2cgdGV4dGZpZWxkIHByb2JsZW0gZnJvbSBwYXRjaCA2LjAuMTE1LgpTb2x1dGlvbjogICBTZXQgb2xkX21lbnVfaGVpZ2h0IG9ubHkgd2hlbiB1c2VkLiAgQWRkIEVTX0FVVE9IU0NST0xMIGZsYWcuCgkgICAgKFZpbmNlIE5lZ3JpKQpGaWxlczoJICAgIHNyYy9ndWlfdzE2LmMKClBhdGNoIDYuMC4xMjMgKGRlcGVuZHMgb24gcGF0Y2ggNi4wLjExOSkKUHJvYmxlbTogICAgV2luMTY6IENvbXBpbGF0aW9uIHByb2JsZW1zLgpTb2x1dGlvbjogICBNb3ZlICImJiIgdG8gb3RoZXIgbGluZXMuIChWaW5jZSBOZWdyaSkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjAuMTI0ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSAiOnN1YnN0aXR1dGUiIGNvbW1hbmQgdGhhdCBzdGFydHMgd2l0aCAiXD0iCgkgICAgKGV2YWx1YXRlZCBhcyBhbiBleHByZXNzaW9uKSwgIn4iIHdhcyBzdGlsbCByZXBsYWNlZCB3aXRoIHRoZQoJICAgIHByZXZpb3VzIHN1YnN0aXR1dGUgc3RyaW5nLgpTb2x1dGlvbjogICBTa2lwIHRoZSByZXBsYWNlbWVudCB3aGVuIHRoZSBzdWJzdGl0dXRlIHN0cmluZyBzdGFydHMgd2l0aCAiXD0iLgoJICAgIEFsc28gYWRqdXN0IHRoZSBkb2N1bWVudGF0aW9uIGFib3V0IGRvdWJsaW5nIGJhY2tzbGFzaGVzLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMsIHJ1bnRpbWUvZG9jL2NoYW5nZS50eHQKClBhdGNoIDYuMC4xMjUgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB1c2luZyB0aGUgbXVsdGlfYnl0ZV9pbWUgZmVhdHVyZSBwcmVzc2luZyB0aGUgc2hpZnQKCSAgICBrZXkgd291bGQgYmUgaGFuZGxlZCBhcyBpZiBhIGNoYXJhY3RlciB3YXMgZW50ZXJlZCwgdGh1cyBtYXBwaW5ncwoJICAgIHdpdGggYSBzaGlmdGVkIGtleSBkaWRuJ3Qgd29yay4gKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIElnbm9yZSBwcmVzc2luZyB0aGUgc2hpZnQsIGNvbnRyb2wgYW5kIGFsdCBrZXlzLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjAuMTI2ClByb2JsZW06ICAgIFRoZSBweXRob24gbGlicmFyeSB3YXMgYWx3YXlzIHN0YXRpY2FsbHkgbGlua2VkLgpTb2x1dGlvbjogICBMaW5rIHRoZSBweXRob24gbGlicmFyeSBkeW5hbWljYWxseS4gKE1hdHRoaWFzIEtsb3NlKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4wLjEyNwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgdGVybWluYWwgdGhhdCBzd2FwcyBzY3JlZW5zIGFuZCB0aGUgTm9ybWFsIGJhY2tncm91bmQKCSAgICBjb2xvciBoYXMgYSBkaWZmZXJlbnQgYmFja2dyb3VuZCwgdXNpbmcgYW4gZXh0ZXJuYWwgY29tbWFuZCBtYXkKCSAgICBjYXVzZSB0aGUgY29sb3Igb2YgdGhlIHdyb25nIHNjcmVlbiB0byBiZSBjaGFuZ2VkLiAoTWFyayBXYWdnb25lcikKU29sdXRpb246ICAgRG9uJ3QgY2FsbCBzY3JlZW5fc3RvcF9oaWdobGlnaHQoKSBpbiBzdG9wdGVybWNhcCgpLgpGaWxlczoJICAgIHNyYy90ZXJtLmMKClBhdGNoIDYuMC4xMjgKUHJvYmxlbTogICAgV2hlbiBtb3ZpbmcgYSB2ZXJ0aWNhbGx5IHNwbGl0IHdpbmRvdyB0byB0aGUgZmFyIGxlZnQgb3IgcmlnaHQsCgkgICAgdGhlIHNjcm9sbGJhcnMgYXJlIG5vdCBhZGp1c3RlZC4gKFNjb3R0IEUgTGVlKSAgV2hlbiAnbW91c2Vmb2N1cycKCSAgICBpcyBzZXQgdGhlIG1vdXNlIHBvaW50ZXIgd2Fzbid0IGFkanVzdGVkLgpTb2x1dGlvbjogICBBZGp1c3QgdGhlIHNjcm9sbGJhcnMgYW5kIHRoZSBtb3VzZSBwb2ludGVyLgpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4wLjEyOQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgdmVyeSBsb25nIGZpbGUgbmFtZSwgIjpscyIgKHJlcGVhdGVkIGEgZmV3IHRpbWVzKQoJICAgIGNhdXNlcyBhIGNyYXNoLiAgVGVzdCB3aXRoICJ2aW0gYHBlcmwgLWUgJ3ByaW50ICJBIngxMDAwJ2AiLgoJICAgIChUZWplZGEpClNvbHV0aW9uOiAgIFRlcm1pbmF0ZSBhIHN0cmluZyBiZWZvcmUgZ2V0dGluZyBpdHMgbGVuZ3RoIGluIGJ1Zmxpc3RfbGlzdCgpLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4wLjEzMApQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6Y3ByZXYiIHdoaWxlIHRoZSBlcnJvciB3aW5kb3cgaXMgb3BlbiwgYW5kIHRoZSBuZXcKCSAgICBsaW5lIGF0IHRoZSB0b3Agd3JhcHMsIHRoZSB3aW5kb3cgaXNuJ3QgY29ycmVjdGx5IGRyYXduLgoJICAgIChZZWdhcHBhbiBMYWtzaG1hbmFuKQpTb2x1dGlvbjogICBXaGVuIHJlZHJhd2luZyB0aGUgdG9wbGluZSBkb24ndCBzY3JvbGwgdHdpY2UuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjAuMTMxClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYnVmbmFtZSgpIGFuZCB0aGVyZSBhcmUgdHdvIG1hdGNoZXMgZm9yIGxpc3RlZCBidWZmZXJzCgkgICAgYW5kIG9uZSBtYXRjaCBmb3IgYW4gdW5saXN0ZWQgYnVmZmVyLCB0aGUgdW5saXN0ZWQgYnVmZmVyIGlzIHVzZWQuCgkgICAgKEFyaWMgQmx1bWVyKQpTb2x1dGlvbjogICBXaGVuIHRoZXJlIGlzIGEgbWF0Y2ggd2l0aCBhIGxpc3RlZCBidWZmZXIsIGRvbid0IGNoZWNrIGZvcgoJICAgIHVubGlzdGVkIGJ1ZmZlcnMuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjAuMTMyClByb2JsZW06ICAgIFdoZW4gc2V0dGluZyAnaW1pbnNlcnQnIGluIHRoZSB2aW1yYyBhbmQgdXNpbmcgYW4geHRlcm0gd2l0aCB0d28KCSAgICBzY3JlZW5zIHRoZSBydWxlciBpcyBkcmF3biBpbiB0aGUgd3Jvbmcgc2NyZWVuLiAoSWdvciBHb2xkZW5iZXJnKQpTb2x1dGlvbjogICBPbmx5IGRyYXcgdGhlIHJ1bGVyIHdoZW4gdXNpbmcgdGhlIHJpZ2h0IHNjcmVlbi4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4xMzMKUHJvYmxlbTogICAgV2hlbiBvcGVuaW5nIGFub3RoZXIgYnVmZmVyIHdoaWxlICdrZXltYXAnIGlzIHNldCBhbmQgJ2ltaW5zZXJ0JwoJICAgIGlzIHplcm8sICdpbWluc2VydCcgaXMgc2V0IHRvIG9uZSB1bmV4cGVjdGVkbHkuIChJZ29yIEdvbGRlbmJlcmcpClNvbHV0aW9uOiAgIERvbid0IHNldCAnaW1pbnNlcnQnIGFzIGEgc2lkZSBlZmZlY3Qgb2YgZGVmaW5pbmcgYSAiOmxtYXAiCgkgICAgbWFwcGluZy4gIE9ubHkgZG8gdGhhdCB3aGVuICdrZXltYXAnIGlzIHNldC4KRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jLCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4xMzQKUHJvYmxlbTogICAgV2hlbiBjb21wbGV0aW5nICI6c2V0IHRhZ3M9IiBhIHBhdGggd2l0aCBhbiBlbWJlZGRlZCBzcGFjZSBjYXVzZXMKCSAgICB0aGUgY29tcGxldGlvbiB0byBzdG9wLiAoU2VrdG9yIHZhbiBTa2lqbGVuKQpTb2x1dGlvbjogICBFc2NhcGUgc3BhY2VzIHdpdGggYmFja3NsYXNoZXMsIGxpa2UgZm9yICI6c2V0IHBhdGg9Ii4gIEFsc28gdGFrZQoJICAgIGJhY2tzbGFzaGVzIGludG8gYWNjb3VudCB3aGVuIHNlYXJjaGluZyBmb3IgdGhlIHN0YXJ0IG9mIHRoZSBwYXRoCgkgICAgdG8gY29tcGxldGUgKGUuZy4sIGZvciAnYmFja3VwZGlyJyBhbmQgJ2NzY29wZXByZycpLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL29wdGlvbi5jLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjAuMTM1ClByb2JsZW06ICAgIE1lbnVzIHRoYXQgYXJlIG5vdCBzdXBwb3NlZCB0byBkbyBhbnl0aGluZyB1c2VkICI8TnVsPiIsIHdoaWNoCgkgICAgc3RpbGwgcHJvZHVjZWQgYW4gZXJyb3IgYmVlcC4KCSAgICBXaGVuIENUUkwtTyBpcyBtYXBwZWQgZm9yIEluc2VydCBtb2RlLCAiOmFtZW51IiBjb21tYW5kcyBkaWRuJ3QKCSAgICB3b3JrIGluIEluc2VydCBtb2RlLgoJICAgIE1lbnUgbGFuZ3VhZ2UgZmFsbHMgYmFjayB0byBFbmdsaXNoIHdoZW4gJExBTkcgZW5kcyBpbiAiQGV1cm8iLgpTb2x1dGlvbjogICBVc2UgIjxOb3A+IiBmb3IgYSBtZW51IGl0ZW0gdGhhdCBkb2Vzbid0IGRvIGFueXRoaW5nLCBqdXN0IGxpa2UKCSAgICBtYXBwaW5ncy4KCSAgICBVc2UgIjphbm9yZW1lbnUiIGluc3RlYWQgb2YgIjphbWVudSIuCgkgICAgSWdub3JlICJAZXVybyIgaW4gdGhlIGxvY2FsZSBuYW1lLgpGaWxlczoJICAgIHJ1bnRpbWUvbWFrZW1lbnUudmltLCBydW50aW1lL21lbnUudmltLCBzcmMvbWVudS5jCgpQYXRjaCA2LjAuMTM2ClByb2JsZW06ICAgIFdoZW4gY29tcGxldGluZyBpbiBJbnNlcnQgbW9kZSwgYSBtYXBwaW5nIGNvdWxkIGJlIHVuZXhwZWN0ZWRseQoJICAgIGFwcGxpZWQuClNvbHV0aW9uOiAgIERvbid0IHVzZSBtYXBwaW5ncyB3aGVuIGNoZWNraW5nIGZvciBhIHR5cGVkIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjAuMTM3ClByb2JsZW06ICAgIEdVSTogV2hlbiB1c2luZyB0aGUgZmluZCBvciBmaW5kL3JlcGxhY2UgZGlhbG9nIGZyb20gSW5zZXJ0IG1vZGUsCgkgICAgdGhlIGlucHV0IG1vZGUgaXMgc3RvcHBlZC4KU29sdXRpb246ICAgRG9uJ3QgdXNlIHRoZSBpbnB1dCBtZXRob2Qgc3RhdHVzIHdoZW4gdGhlIG1haW4gd2luZG93IGRvZXNuJ3QKCSAgICBoYXZlIGZvY3VzLgpGaWxlczoJICAgIHNyYy91aS5jCgpQYXRjaCA2LjAuMTM4ClByb2JsZW06ICAgIEdVSTogV2hlbiB1c2luZyB0aGUgZmluZCBvciBmaW5kL3JlcGxhY2UgZGlhbG9nIGZyb20gSW5zZXJ0IG1vZGUsCgkgICAgdGhlIHRleHQgaXMgaW5zZXJ0ZWQgd2hlbiBDVFJMLU8gaXMgbWFwcGVkLiAoQW5kcmUgUGFuZykKCSAgICBXaGVuIG9wZW5pbmcgdGhlIGRpYWxvZyBhZ2FpbiwgYSB3aG9sZSB3b3JkIHNlYXJjaCBpc24ndAoJICAgIHJlY29nbml6ZWQuCgkgICAgV2hlbiBkb2luZyAicmVwbGFjZSBhbGwiIGEgd2hvbGUgd29yZCBzZWFyY2ggd2FzIG5ldmVyIGRvbmUuClNvbHV0aW9uOiAgIERvbid0IHB1dCBhIHNlYXJjaCBvciByZXBsYWNlIGNvbW1hbmQgaW4gdGhlIGlucHV0IGJ1ZmZlciwKCSAgICBleGVjdXRlIGl0IGRpcmVjdGx5LgoJICAgIFJlY29nbml6ZSAiXDwiIGFuZCAiXD4iIGFmdGVyIHJlbW92aW5nICJcViIuCgkgICAgQWRkICJcPCIgYW5kICJcPiIgYWxzbyBmb3IgInJlcGxhY2UgYWxsIi4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMC4xMzkKUHJvYmxlbTogICAgV2hlbiBzdG9wcGluZyAnd2lsZG1lbnUnIGNvbXBsZXRpb24sIHRoZSBzdGF0dXNsaW5lIG9mIHRoZQoJICAgIGJvdHRvbS1sZWZ0IHZlcnRpY2FsbHkgc3BsaXQgd2luZG93IGlzbid0IHJlZHJhd24uIChZZWdhcHBhbgoJICAgIExha3NobWFuYW4pClNvbHV0aW9uOiAgIFJlZHJhdyBhbGwgdGhlIGJvdHRvbSBzdGF0dXNsaW5lcy4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL3Byb3RvL3NjcmVlbi5wcm8sIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4wLjE0MApQcm9ibGVtOiAgICBNZW1vcnkgYWxsb2NhdGVkIGZvciBsb2NhbCBtYXBwaW5ncyBhbmQgYWJicmV2aWF0aW9ucyBpcyBsZWFrZWQKCSAgICB3aGVuIHRoZSBidWZmZXIgaXMgd2lwZWQgb3V0LgpTb2x1dGlvbjogICBDbGVhciB0aGUgbG9jYWwgbWFwcGluZ3Mgd2hlbiBkZWxldGluZyBhIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9nZXRjaGFyLmMsIHNyYy9wcm90by9nZXRjaGFyLnBybywgc3JjL3ZpbS5oCgpQYXRjaCA2LjAuMTQxClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjplbmV3IiBpbiBhbiBlbXB0eSBidWZmZXIsIHNvbWUgYnVmZmVyLWxvY2FsIHRoaW5ncwoJICAgIGFyZSBub3QgY2xlYXJlZC4gIGI6a2V5bWFwX25hbWUgaXMgbm90IHNldC4KU29sdXRpb246ICAgQ2xlYXIgdXNlciBjb21tYW5kcyBhbmQgbWFwcGluZ3MgbG9jYWwgdG8gdGhlIGJ1ZmZlciB3aGVuIHJlLXVzaW5nCgkgICAgdGhlIGN1cnJlbnQgYnVmZmVyLiAgUmVsb2FkIHRoZSBrZXltYXAuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjAuMTQyClByb2JsZW06ICAgIFdoZW4gUHl0aG9uIGlzIGxpbmtlZCBzdGF0aWNhbGx5LCBsb2FkaW5nIGR5bmFtaWMgZXh0ZW5zaW9ucyBtaWdodAoJICAgIGZhaWwuClNvbHV0aW9uOiAgIEFkZCBhbiBleHRyYSBsaW5raW5nIGZsYWcgd2hlbiBuZWVkZWQuIChBbmRyZXcgUm9kaW9ub2ZmKQpGaWxlczoJICAgIHNyYy9jb25maWd1cmUuaW4sIHNyYy9hdXRvL2NvbmZpZ3VyZQoKUGF0Y2ggNi4wLjE0MwpQcm9ibGVtOiAgICBXaGVuIGEgc3ludGF4IGl0ZW0gaW5jbHVkZXMgYSBsaW5lIGJyZWFrIGluIGEgcGF0dGVybiwgdGhlIHN5bnRheAoJICAgIG1heSBub3QgYmUgdXBkYXRlZCBwcm9wZXJseSB3aGVuIG1ha2luZyBhIGNoYW5nZS4KU29sdXRpb246ICAgQWRkIHRoZSAibGluZWJyZWFrcyIgYXJndW1lbnQgdG8gIjpzeW4gc3luYyIuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvc3ludGF4LnR4dCwgc3JjL3NjcmVlbi5jLCBzcmMvc3RydWN0cy5oLCBzcmMvc3ludGF4LmMKClBhdGNoIDYuMC4xNDQKUHJvYmxlbTogICAgQWZ0ZXIgcGF0Y2ggNi4wLjA4OCByZWRvaW5nICJ2ZVUiIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgRG9uJ3QgYWRkIHRoZSAiVSIgdG8gdGhlIHJlZG8gYnVmZmVyLCBpdCB3aWxsIGJlIHVzZWQgYXMgYW4gdW5kbwoJICAgIGNvbW1hbmQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMTQ1ClByb2JsZW06ICAgIFdoZW4gVmltIGNhbid0IHJlYWQgYW55IGlucHV0IGl0IG1pZ2h0IGdldCBzdHVjay4gIFdoZW4KCSAgICByZWRpcmVjdGluZyBzdGRpbiBhbmQgc3RkZXJyIFZpbSB3b3VsZCBub3QgcmVhZCBjb21tYW5kcyBmcm9tIGEKCSAgICBmaWxlLiAgKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIFdoZW4gcmVwZWF0ZWRseSB0cnlpbmcgdG8gcmVhZCBhIGNoYXJhY3RlciB3aGVuIGl0J3Mgbm90IHBvc3NpYmxlLAoJICAgIGV4aXQgVmltLiAgV2hlbiBzdGRpbiBhbmQgc3RkZXJyIGFyZSBub3QgYSB0dHksIHN0aWxsIHRyeSByZWFkaW5nCgkgICAgZnJvbSB0aGVtLCBidXQgZG9uJ3QgZG8gYSBibG9ja2luZyB3YWl0LgpGaWxlczoJICAgIHNyYy91aS5jCgpQYXRjaCA2LjAuMTQ2ClByb2JsZW06ICAgIFdoZW4gJ3N0YXR1c2xpbmUnIGNvbnRhaW5zICIleyctJ30iIHRoaXMgcmVzdWx0cyBpbiBhIHplcm8uCgkgICAgKE1pbGFuIFZhbmN1cmEpClNvbHV0aW9uOiAgIERvbid0IGhhbmRsZSBudW1iZXJzIHdpdGggYSBtaW51cyBhcyBhIG51bWJlciwgdGhleSB3ZXJlIG5vdAoJICAgIGRpc3BsYXllZCBhbnl3YXkuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjAuMTQ3ClByb2JsZW06ICAgIEl0J3Mgbm90IGVhc3kgdG8gbWFyayBhIFZpbSB2ZXJzaW9uIGFzIGJlaW5nIG1vZGlmaWVkLiAgVGhlIG5ldwoJICAgIGxpY2Vuc2UgcmVxdWlyZXMgdGhpcy4KU29sdXRpb246ICAgQWRkIHRoZSAtLW1vZGlmaWVkLWJ5IGFyZ3VtZW50IHRvIGNvbmZpZ3VyZSBhbmQgdGhlIE1PRElGSUVEX0JZCgkgICAgZGVmaW5lLiAgSXQncyB1c2VkIGluIHRoZSBpbnRybyBzY3JlZW4gYW5kIHRoZSAiOnZlcnNpb24iIG91dHB1dC4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9jb25maWcuaC5pbiwKCSAgICBzcmMvZmVhdHVyZS5oLCBzcmMvdmVyc2lvbi5jCgpQYXRjaCA2LjAuMTQ4ClByb2JsZW06ICAgIEFmdGVyICJwIiBpbiBhbiBlbXB0eSBsaW5lLCBgWyBnb2VzIHRvIHRoZSBzZWNvbmQgY2hhcmFjdGVyLgoJICAgIChLb250cmEgR2VyZ2VseSkKU29sdXRpb246ICAgRG9uJ3QgaW5jcmVtZW50IHRoZSBjb2x1bW4gbnVtYmVyIGluIGFuIGVtcHR5IGxpbmUuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMTQ5ClByb2JsZW06ICAgIFRoZSBwYXR0ZXJuICJcKC5cey19XCkqIiBjYXVzZXMgYSBoYW5nLiAgV2hlbiB1c2luZyBhIHNlYXJjaAoJICAgIHBhdHRlcm4gdGhhdCBjYXVzZXMgYSBzdGFjayBvdmVyZmxvdyB0byBiZSBkZXRlY3RlZCBWaW0gY291bGQKCSAgICBzdGlsbCBoYW5nLgpTb2x1dGlvbjogICBDb3JyZWN0bHkgcmVwb3J0ICJvcGVyYW5kIGNvdWxkIGJlIGVtcHR5IiB3aGVuIHVzaW5nICJcey19Ii4KCSAgICBDaGVjayBmb3IgIm91dF9vZl9zdGFjayIgaW5zaWRlIGxvb3BzIHRvIGF2b2lkIGEgaGFuZy4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMC4xNTAKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIG11bHRpLWJ5dGUgZW5jb2RpbmcsIHBhdGNoIDYuMC4xNDggY2F1c2VzICJwIiB0byB3b3JrCgkgICAgbGlrZSAiUCIuIChTdW5nLUh5dW4gTmFtKQpTb2x1dGlvbjogICBDb21wdXRlIHRoZSBieXRlIGxlbmd0aCBvZiBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjE1MQpQcm9ibGVtOiAgICBSZWRyYXdpbmcgdGhlIHN0YXR1cyBsaW5lIGFuZCBydWxlciBjYW4gYmUgd3Jvbmcgd2hlbiBpdCBjb250YWlucwoJICAgIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KU29sdXRpb246ICAgVXNlIGNoYXJhY3RlciB3aWR0aCBhbmQgYnl0ZSBsZW5ndGggY29ycmVjdGx5LiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4wLjE1MgpQcm9ibGVtOiAgICBzdHJ0cmFucygpIGNvdWxkIGhhbmcgb24gYW4gaWxsZWdhbCBVVEYtOCBieXRlIHNlcXVlbmNlLgpTb2x1dGlvbjogICBTa2lwIG92ZXIgaWxsZWdhbCBieXRlcy4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jCgpQYXRjaCA2LjAuMTUzClByb2JsZW06ICAgIFdoZW4gdXNpbmcgKGlsbGVnYWwpIGRvdWJsZS1ieXRlIGNoYXJhY3RlcnMgYW5kIFZpbSBzeW50YXgKCSAgICBoaWdobGlnaHRpbmcgVmltIGNhbiBjcmFzaC4gKFlhc3VoaXJvIE1hdHN1bW90bykKU29sdXRpb246ICAgSW5jcmVhc2UgYSBwb2ludGVyIG92ZXIgYSBjaGFyYWN0ZXIgaW5zdGVhZCBvZiBhIGJ5dGUuCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjAuMTU0ClByb2JsZW06ICAgIE1TLURPUyBhbmQgTVMtV2luZG93czogVGhlIG1lbnUgZW50cmllcyBmb3IgeHhkIGRvbid0IHdvcmsgd2hlbgoJICAgIHRoZXJlIGlzIG5vIHh4ZCBpbiB0aGUgcGF0aC4KCSAgICBXaGVuIGNvbnZlcnRpbmcgYmFjayBmcm9tIEhleCB0aGUgZmlsZXR5cGUgbWF5IHJlbWFpbiAieHhkIiBpZiBpdAoJICAgIGlzIG5vdCBkZXRlY3RlZC4KU29sdXRpb246ICAgV2hlbiB4eGQgaXMgbm90IGluIHRoZSBwYXRoIHVzZSB0aGUgb25lIGluIHRoZSBydW50aW1lIGRpcmVjdG9yeSwKCSAgICB3aGVyZSB0aGUgaW5zdGFsbCBwcm9ncmFtIGhhcyBwdXQgaXQuCgkgICAgQ2xlYXIgdGhlICdmaWxldHlwZScgb3B0aW9uIGJlZm9yZSBkZXRlY3RpbmcgdGhlIG5ldyB2YWx1ZS4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjAuMTU1ClByb2JsZW06ICAgIE1hYzogY29tcGlsYXRpb24gcHJvYmxlbXMgaW4gdWkuYyBhZnRlciBwYXRjaCA2LjAuMTQ1LiAoQXhlbAoJICAgIEtpZWxob3JuKQpTb2x1dGlvbjogICBEb24ndCBjYWxsIG1jaF9pbmNoYXIoKSB3aGVuIE5PX0NPTlNPTEUgaXMgZGVmaW5lZC4KRmlsZXM6CSAgICBzcmMvdWkuYwoKUGF0Y2ggNi4wLjE1NgpQcm9ibGVtOiAgICBTdGFydGluZyBWaW0gd2l0aCB0aGUgLWIgYXJndW1lbnQgYW5kIHR3byBmaWxlcywgIjpuZXh0IiBkb2Vzbid0CgkgICAgc2V0ICdiaW5hcnknIGluIHRoZSBzZWNvbmQgZmlsZSwgbGlrZSBWaW0gNS43LiAoTm9ybWFuIERpYW1vbmQpClNvbHV0aW9uOiAgIFNldCB0aGUgZ2xvYmFsIHZhbHVlIGZvciAnYmluYXJ5Jy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4xNTcKUHJvYmxlbTogICAgV2hlbiBkZWZpbmluZyBhIHVzZXIgY29tbWFuZCB3aXRoICItY29tcGxldGU9ZGlyIiBmaWxlcyB3aWxsIGFsc28KCSAgICBiZSBleHBhbmRlZC4gIEFsc28sICItY29tcGxldGU9bWFwcGluZyIgZG9lc24ndCBhcHBlYXIgdG8gd29yay4KCSAgICAoTWljaGFlbCBOYXVtYW5uKQpTb2x1dGlvbjogICBVc2UgdGhlIGV4cGFuc2lvbiBmbGFncyBkZWZpbmVkIHdpdGggdGhlIHVzZXIgY29tbWFuZC4KCSAgICBIYW5kbGUgZXhwYW5kaW5nIG1hcHBpbmdzIHNwZWNpZmljYWxseS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4wLjE1OApQcm9ibGVtOiAgICBXaGVuIGdldHRpbmcgdGhlIHdhcm5pbmcgZm9yIGEgZmlsZSBiZWluZyBjaGFuZ2VkIG91dHNpZGUgb2YgVmltCgkgICAgYW5kIHJlbG9hZGluZyB0aGUgZmlsZSwgdGhlICdyZWFkb25seScgb3B0aW9uIGlzIHJlc2V0LCBldmVuIHdoZW4KCSAgICB0aGUgcGVybWlzc2lvbnMgZGlkbid0IGNoYW5nZS4gKE1hcmNlbCBTdml0YWxza3kpClNvbHV0aW9uOiAgIEtlZXAgJ3JlYWRvbmx5JyBzZXQgd2hlbiByZWxvYWRpbmcgYSBmaWxlIGFuZCB0aGUgcGVybWlzc2lvbnMKCSAgICBkaWRuJ3QgY2hhbmdlLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjE1OQpQcm9ibGVtOiAgICBXaWxkY2FyZCBleHBhbnNpb24gZm9yICI6ZW1lbnUiIGFsc28gc2hvd3Mgc2VwYXJhdG9ycy4KU29sdXRpb246ICAgU2tpcCBtZW51IHNlcGFyYXRvcnMgZm9yICI6ZW1lbnUiLCAiOnBvcHVwIiBhbmQgIjp0ZWFyb2ZmIi4KCSAgICBBbHNvLCBkb24ndCBoYW5kbGUgIjp0bWVudSIgYXMgaWYgaXQgd2FzICI6dGVhcm9mZiIuICBBbmQgbGVhdmUKCSAgICBvdXQgdGhlIGFsdGVybmF0aXZlcyB3aXRoICImIiBpbmNsdWRlZC4KRmlsZXM6CSAgICBzcmMvbWVudS5jCgpQYXRjaCA2LjAuMTYwClByb2JsZW06ICAgIFdoZW4gY29tcGlsaW5nIHdpdGggR0NDIDMuMC4yIGFuZCB1c2luZyB0aGUgIi1PMiIgYXJndW1lbnQsIHRoZQoJICAgIG9wdGltaXplciBjYXVzZXMgYSBwcm9ibGVtIHRoYXQgbWFrZXMgVmltIGNyYXNoLgpTb2x1dGlvbjogICBBZGQgYSBjb25maWd1cmUgY2hlY2sgdG8gYXZvaWQgIi1PMiIgZm9yIHRoaXMgdmVyc2lvbiBvZiBnY2MuCkZpbGVzOgkgICAgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2F1dG8vY29uZmlndXJlCgpQYXRjaCA2LjAuMTYxIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IEJpdG1hcHMgZG9uJ3Qgd29yayB3aXRoIHNpZ25zLgpTb2x1dGlvbjogICBNYWtlIGl0IHBvc3NpYmxlIHRvIHVzZSBiaXRtYXBzIHdpdGggc2lnbnMuIChNdXJhb2thIFRhcm8pCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL2ZlYXR1cmUuaCwgc3JjL2d1aV93MzIuYywgc3JjL2d1aV94MTEuYywKCSAgICBzcmMvcHJvdG8vZ3VpX3czMi5wcm8sIHNyYy9wcm90by9ndWlfeDExLnBybwoKUGF0Y2ggNi4wLjE2MgpQcm9ibGVtOiAgICBDbGllbnQtc2VydmVyOiBBbiBlcnJvciBtZXNzYWdlIGZvciBhIHdyb25nIGV4cHJlc3Npb24gYXBwZWFycyBpbgoJICAgIHRoZSBzZXJ2ZXIgaW5zdGVhZCBvZiB0aGUgY2xpZW50LgpTb2x1dGlvbjogICBQYXNzIHRoZSBlcnJvciBtZXNzYWdlIGZyb20gdGhlIHNlcnZlciB0byB0aGUgY2xpZW50LiAgQWxzbwoJICAgIGFkanVzdCB0aGUgZXhhbXBsZSBjb2RlLiAoRmxlbW1pbmcgTWFkc2VuKQpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9pZl94Y21kc3J2LmMsIHNyYy9tYWluLmMsIHNyYy9vc19tc3dpbi5jLAoJICAgIHNyYy9wcm90by9pZl94Y21kc3J2LnBybywgc3JjL3Byb3RvL29zX21zd2luLnBybywKCSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgcnVudGltZS90b29scy94Y21kc3J2X2NsaWVudC5jCgpQYXRjaCA2LjAuMTYzClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBHVUkgZGlhbG9nLCBhIGZpbGUgbmFtZSBpcyBzb21ldGltZXMgdXNlZCBsaWtlIGl0IHdhcwoJICAgIGEgZGlyZWN0b3J5LgpTb2x1dGlvbjogICBTZXBhcmF0ZSBwYXRoIGFuZCBmaWxlIG5hbWUgcHJvcGVybHkuCgkgICAgRm9yIEdUSywgTW90aWYgYW5kIEF0aGVuYSBjb25jYXRlbmF0ZSBkaXJlY3RvcnkgYW5kIGZpbGUgbmFtZSBmb3IKCSAgICB0aGUgZGVmYXVsdCBzZWxlY3Rpb24uCkZpbGVzOgkgICAgc3JjL2RpZmYuYywgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2NtZHMyLmMsIHNyYy9leF9kb2NtZC5jLAoJICAgIHNyYy9ndWlfYXRoZW5hLmMsIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWlfbW90aWYuYywgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4wLjE2NApQcm9ibGVtOiAgICBBZnRlciBwYXRjaCA2LjAuMTM1IHRoZSBtZW51IGVudHJpZXMgZm9yIHBhc3RpbmcgZG9uJ3Qgd29yayBpbgoJICAgIEluc2VydCBhbmQgVmlzdWFsIG1vZGUuIChNdXJhb2thIFRhcm8pClNvbHV0aW9uOiAgIEFkZCA8c2NyaXB0PiB0byBhbGxvdyBzY3JpcHQtbG9jYWwgbWFwcGluZ3MuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4wLjE2NQpQcm9ibGVtOiAgICBVc2luZyAtLXJlbW90ZSBhbmQgZXhlY3V0aW5nIGxvY2FsbHkgZ2l2ZXMgdW5hdm9pZGFibGUgZXJyb3IKCSAgICBtZXNzYWdlcy4KU29sdXRpb246ICAgQWRkIC0tcmVtb3RlLXNpbGVudCBhbmQgLS1yZW1vdGUtd2FpdC1zaWxlbnQgdG8gc2lsZW50bHkgZXhlY3V0ZQoJICAgIGxvY2FsbHkuCgkgICAgRm9yIFdpbjMyIHRoZXJlIHdhcyBubyBlcnJvciBtZXNzYWdlIHdoZW4gYSBzZXJ2ZXIgZGlkbid0IGV4aXN0LgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9pZl94Y21kc3J2LmMsIHNyYy9tYWluLmMsIHNyYy9vc19tc3dpbi5jLAoJICAgIHNyYy9wcm90by9pZl94Y21kc3J2LnBybywgc3JjL3Byb3RvL29zX21zd2luLnBybwoKUGF0Y2ggNi4wLjE2NgpQcm9ibGVtOiAgICBHVUk6IFRoZXJlIGlzIG5vIHdheSB0byBhdm9pZCBkaWFsb2dzIHRvIHBvcCB1cC4KU29sdXRpb246ICAgQWRkIHRoZSAnYycgZmxhZyB0byAnZ3Vpb3B0aW9ucyc6IFVzZSBjb25zb2xlIGRpYWxvZ3MuICAoWWVnYXBwYW4KCSAgICBMYWtzaG1hbmFuKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvb3B0aW9uLmgsIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMC4xNjcKUHJvYmxlbTogICAgV2hlbiAnZmlsZWVuY29kaW5ncycgaXMgImxhdGluMiIgc29tZSBjaGFyYWN0ZXJzIGluIHRoZSBoZWxwIGZpbGVzCgkgICAgYXJlIGRpc3BsYXllZCB3cm9uZy4KU29sdXRpb246ICAgRm9yY2UgdGhlICdmaWxlZW5jb2RpbmcnIGZvciB0aGUgaGVscCBmaWxlcyB0byBiZSAibGF0aW4xIi4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4xNjgKUHJvYmxlbTogICAgIjolcy9cbi8jLyIgZG9lc24ndCByZXBsYWNlIGF0IGFuIGVtcHR5IGxpbmUuIChCcnVjZSBEZVZpc3NlcikKU29sdXRpb246ICAgRG9uJ3Qgc2tpcCBtYXRjaGVzIGFmdGVyIGpvaW5pbmcgdHdvIGxpbmVzLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMC4xNjkKUHJvYmxlbTogICAgV2hlbiBydW4gYXMgZXZpbSBhbmQgdGhlIEdVSSBjYW4ndCBiZSBzdGFydGVkIHdlIGdldCBzdHVjayBpbiBhCgkgICAgdGVybWluYWwgd2l0aG91dCBtZW51cyBpbiBJbnNlcnQgbW9kZS4KU29sdXRpb246ICAgRXhpdCB3aGVuIHVzaW5nICJldmltIiBhbmQgImd2aW0gLXkiIHdoZW4gdGhlIEdVSSBjYW4ndCBiZQoJICAgIHN0YXJ0ZWQuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4wLjE3MApQcm9ibGVtOiAgICBXaGVuIHByaW50aW5nIGRvdWJsZS13aWR0aCBjaGFyYWN0ZXJzIHRoZSBzaXplIG9mIHRhYnMgYWZ0ZXIgdGhlbQoJICAgIGlzIHdyb25nLiAgKE11cmFva2EgVGFybykKU29sdXRpb246ICAgQ29ycmVjdGx5IGNvbXB1dGUgdGhlIGNvbHVtbiBhZnRlciBhIGRvdWJsZS13aWR0aCBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMC4xNzEKUHJvYmxlbTogICAgV2l0aCAna2V5bW9kZWwnIGluY2x1ZGluZyAic3RhcnRzZWwiLCBpbiBJbnNlcnQgbW9kZSBhZnRlciB0aGUgZW5kCgkgICAgb2YgYSBsaW5lLCBzaGlmdC1MZWZ0IGRvZXMgbm90IG1vdmUgdGhlIGN1cnNvci4gKFN0ZXZlIEhhbGwpClNvbHV0aW9uOiAgIENUUkwtTyBkb2Vzbid0IG1vdmUgdGhlIGN1cnNvciBsZWZ0LCBuZWVkIHRvIGRvIHRoYXQgZXhwbGljaXRseS4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjAuMTcyClByb2JsZW06ICAgIENUUkwtUSBkb2Vzbid0IHJlcGxhY2UgQ1RSTC1WIGFmdGVyIENUUkwtWCBpbiBJbnNlcnQgbW9kZSB3aGlsZSBpdAoJICAgIGRvZXMgaW4gbW9zdCBvdGhlciBzaXR1YXRpb25zLgpTb2x1dGlvbjogICBNYWtlIENUUkwtWCBDVFJMLVEgd29yayBsaWtlIENUUkwtWCBDVFJMLVYgaW4gSW5zZXJ0IG1vZGUuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4wLjE3MwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICJQIiB0byBpbnNlcnQgYSBsaW5lIGJyZWFrIHRoZSBjdXJzb3IgcmVtYWlucyBwYXN0IHRoZQoJICAgIGVuZCBvZiB0aGUgbGluZS4KU29sdXRpb246ICAgQ2hlY2sgZm9yIHRoZSBjdXJzb3IgYmVpbmcgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGxpbmUuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMTc0ClByb2JsZW06ICAgIEFmdGVyIHVzaW5nICJnZCIgb3IgImdEIiB0aGUgc2VhcmNoIGRpcmVjdGlvbiBmb3IgIm4iIG1heSBzdGlsbCBiZQoJICAgIGJhY2t3YXJkcy4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIFJlc2V0IHRoZSBzZWFyY2ggZGlyZWN0aW9uIHRvIGZvcndhcmQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jLCBzcmMvc2VhcmNoLmMsIHNyYy9wcm90by9zZWFyY2gucHJvCgpQYXRjaCA2LjAuMTc1ClByb2JsZW06ICAgICI6aGVscCAvXHooXCkiIGRvZXNuJ3Qgd29yay4gKFRob21hcyBLb2VobGVyKQpTb2x1dGlvbjogICBEb3VibGUgdGhlIGJhY2tzbGFzaGVzLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMC4xNzYKUHJvYmxlbTogICAgV2hlbiBraWxsZWQgYnkgYSBzaWduYWwgYXV0b2NvbW1hbmRzIGFyZSBzdGlsbCB0cmlnZ2VyZWQgYXMgaWYKCSAgICBub3RoaW5nIGhhcHBlbmVkLgpTb2x1dGlvbjogICBBZGQgdGhlIHY6ZHlpbmcgdmFyaWFibGUgdG8gYWxsb3cgYXV0b2NvbW1hbmRzIHRvIHdvcmsgZGlmZmVyZW50bHkKCSAgICB3aGVuIGEgZGVhZGx5IHNpZ25hbCBoYXMgYmVlbiB0cmFwcGVkLgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9vc191bml4LmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4wLjE3NwpQcm9ibGVtOiAgICBXaGVuICdjb21tZW50c3RyaW5nJyBpcyBlbXB0eSBhbmQgJ2ZvbGRtZXRob2QnIGlzICJtYXJrZXIiLCAiemYiCgkgICAgZG9lc24ndCB3b3JrLiAoVGhvbWFzIFMuIFVyYmFuKQpTb2x1dGlvbjogICBBZGQgdGhlIG1hcmtlciBldmVuIHdoZW4gJ2NvbW1lbnRzdHJpbmcnIGlzIGVtcHR5LgpGaWxlczoJICAgIHNyYy9mb2xkLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4wLjE3OApQcm9ibGVtOiAgICBVbmluaXRpYWxpemVkIG1lbW9yeSByZWFkIGZyb20geHBfYmFja3NsYXNoIGZpZWxkLgpTb2x1dGlvbjogICBJbml0aWFsaXplIHhwX2JhY2tzbGFzaCBmaWVsZCBwcm9wZXJseS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9taXNjMS5jLCBzcmMvdGFnLmMKClBhdGNoIDYuMC4xNzkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gZGlzcGxheWluZyBVVEYtOCBjaGFyYWN0ZXJzIG1heSByZWFkIHVuaW5pdGlhbGl6ZWQKCSAgICBtZW1vcnkuClNvbHV0aW9uOiAgIEFkZCB1dGZjX3B0cjJsZW5fY2hlY2tfbGVuKCkgdG8gYXZvaWQgcmVhZGluZyBwYXN0IHRoZSBlbmQgb2YgYQoJICAgIHN0cmluZy4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYywgc3JjL3Byb3RvL21ieXRlLnBybywgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4wLjE4MApQcm9ibGVtOiAgICBFeHBhbmRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIGluIGEgc3RyaW5nIHRoYXQgZW5kcyBpbiBhCgkgICAgYmFja3NsYXNoIGNvdWxkIGdvIHBhc3QgdGhlIGVuZCBvZiB0aGUgc3RyaW5nLgpTb2x1dGlvbjogICBEZXRlY3QgdGhlIHRyYWlsaW5nIGJhY2tzbGFzaC4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4wLjE4MQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6Y2QgZGlyIiBtZW1vcnkgd2FzIGxlYWtlZC4KU29sdXRpb246ICAgRnJlZSB0aGUgYWxsb2NhdGVkIG1lbW9yeS4gIEFsc28gYXZvaWQgYW4gdW5pbml0aWFsaXplZCBtZW1vcnkKCSAgICByZWFkLgpGaWxlczoJICAgIHNyYy9taXNjMi5jCgpQYXRjaCA2LjAuMTgyClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSByZWdleHAgb24gbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLCBjb3VsZCB0cnkgdG8gcmVhZCBhCgkgICAgY2hhcmFjdGVyIGJlZm9yZSB0aGUgc3RhcnQgb2YgdGhlIGxpbmUuClNvbHV0aW9uOiAgIERvbid0IGRlY3JlbWVudCBhIHBvaW50ZXIgdG8gYmVmb3JlIHRoZSBzdGFydCBvZiB0aGUgbGluZS4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMC4xODMKUHJvYmxlbTogICAgTGVha2luZyBtZW1vcnkgd2hlbiAiOmZ1bmMhIiByZWRlZmluZXMgYSBmdW5jdGlvbi4KU29sdXRpb246ICAgRnJlZSB0aGUgZnVuY3Rpb24gbmFtZSB3aGVuIGl0J3Mgbm90IHVzZWQuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjE4NApQcm9ibGVtOiAgICBMZWFraW5nIG1lbW9yeSB3aGVuIGV4cGFuZGluZyBvcHRpb24gdmFsdWVzLgpTb2x1dGlvbjogICBEb24ndCBhbHdheXMgY29weSB0aGUgZXhwYW5kZWQgb3B0aW9uIGludG8gYWxsb2NhdGVkIG1lbW9yeS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4xODUKUHJvYmxlbTogICAgQ3Jhc2ggaW4gVmltIHdoZW4gcGFzdGluZyBhIHNlbGVjdGlvbiBpbiBhbm90aGVyIGFwcGxpY2F0aW9uLCBvbiBhCgkgICAgNjQgYml0IG1hY2hpbmUuClNvbHV0aW9uOiAgIEZpeCB0aGUgZm9ybWF0IGZvciBhbiBBdG9tIHRvIDMyIGJpdHMuIChQZXRlciBEZXJyKQpGaWxlczoJICAgIHNyYy91aS5jCgpQYXRjaCA2LjAuMTg2ClByb2JsZW06ICAgIFgxMTogVGhyZWUgd2FybmluZ3Mgd2hlbiBjb21waWxpbmcgdGhlIGNsaWVudC1zZXJ2ZXIgY29kZS4KU29sdXRpb246ICAgQWRkIGEgdHlwZWNhc3QgdG8gdW5zaWduZWQgY2hhci4KRmlsZXM6CSAgICBzcmMvaWZfeGNtZHNydi5jCgpQYXRjaCA2LjAuMTg3ClByb2JsZW06ICAgICJJIiBpbiBWaXN1YWwgbW9kZSBhbmQgdGhlbiAidSIgcmVwb3J0cyB0b28gbWFueSBjaGFuZ2VzLiAoQW5kcmV3CgkgICAgU3RyeWtlcikKCSAgICAiSSIgaW4gVmlzdWFsIGxpbmV3aXNlIG1vZGUgYWRqdXN0cyB0aGUgaW5kZW50IGZvciBubyBhcHBhcmVudAoJICAgIHJlYXNvbi4KU29sdXRpb246ICAgT25seSBzYXZlIHRob3NlIGxpbmVzIGZvciB1bmRvIHRoYXQgYXJlIGNoYW5nZWQuCgkgICAgRG9uJ3QgY2hhbmdlIHRoZSBpbmRlbnQgYWZ0ZXIgaW5zZXJ0aW5nIGluIFZpc3VhbCBsaW5ld2lzZSBtb2RlLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjE4OApQcm9ibGVtOiAgICBXaW4zMjogQWZ0ZXIgcGF0Y2ggNi4wLjE2MSBzaWducyBkZWZpbmVkIGluIHRoZSB2aW1yYyBmaWxlIGRvbid0CgkgICAgd29yay4KU29sdXRpb246ICAgSW5pdGlhbGl6ZSB0aGUgc2lnbiBpY29ucyBhZnRlciBpbml0aWFsaXppbmcgdGhlIEdVSS4gKFZpbmNlCgkgICAgTmVncmkpCkZpbGVzOgkgICAgc3JjL2d1aS5jLCBzcmMvZ3VpX3gxMS5jCgpQYXRjaCA2LjAuMTg5ClByb2JsZW06ICAgIFRoZSBzaXplIG9mIHRoZSBWaXN1YWwgYXJlYSBpc24ndCBhbHdheXMgZGlzcGxheWVkIHdoZW4gc2Nyb2xsaW5nCgkgICAgKCdydWxlcicgb2ZmLCAnc2hvd2NtZCcgb24pLiAgQWxzbyBub3Qgd2hlbiB1c2luZyBhIHNlYXJjaAoJICAgIGNvbW1hbmQuIChTeWx2YWluIEhpdGllcikKU29sdXRpb246ICAgUmVkaXNwbGF5IHRoZSBzaXplIG9mIHRoZSBzZWxlY3Rpb24gYWZ0ZXIgc2hvd2luZyB0aGUgbW9kZS4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMC4xOTAKUHJvYmxlbTogICAgR1VJOiB3aGVuICdtb3VzZScgaXMgZW1wdHkgYSBjbGljayB3aXRoIHRoZSBtaWRkbGUgYnV0dG9uIHN0aWxsCgkgICAgbW92ZXMgdGhlIGN1cnNvci4KU29sdXRpb246ICAgUGFzdGUgYXQgdGhlIGN1cnNvciBwb3NpdGlvbiBpbnN0ZWFkIG9mIHRoZSBtb3VzZSBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4xOTEKUHJvYmxlbTogICAgV2hlbiBubyBzZXJ2ZXJzIGFyZSBhdmFpbGFibGUgc2VydmVybGlzdCgpIGdpdmVzIGFuIGVycm9yIGluc3RlYWQKCSAgICBvZiByZXR1cm5pbmcgYW4gZW1wdHkgc3RyaW5nLiAoSGFyaSBLcmlzaG5hKQpTb2x1dGlvbjogICBEb24ndCBnaXZlIGFuIGVycm9yIG1lc3NhZ2UuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjE5MgpQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0LCAieWxqIiBnb2VzIHRvIHRoZSB3cm9uZyBjb2x1bW4uIChBbmRyZXcKCSAgICBOaWtpdGluKQpTb2x1dGlvbjogICBSZXNldCB0aGUgZmxhZyB0aGF0IHdfdmlydGNvbCBpcyB2YWxpZCB3aGVuIG1vdmluZyB0aGUgY3Vyc29yIGJhY2sKCSAgICB0byB0aGUgc3RhcnQgb2YgdGhlIG9wZXJhdGVkIGFyZWEuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMTkzClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQsIGNvbCgiLiIpIGFmdGVyIHRoZSBlbmQgb2YgdGhlIGxpbmUKCSAgICBzaG91bGQgcmV0dXJuIG9uZSBleHRyYS4KU29sdXRpb246ICAgQWRkIG9uZSB0byB0aGUgY29sdW1uLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4xOTQKUHJvYmxlbTogICAgIi0tcmVtb3RlLXNpbGVudCIgdHJpZXMgdG8gc2VuZCBhIHJlcGx5IHRvIHRoZSBjbGllbnQsIGxpa2UgaXQgd2FzCgkgICAgIi0tcmVtb3RlLXdhaXQiLgpTb2x1dGlvbjogICBQcm9wZXJseSBjaGVjayBmb3IgdGhlIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMC4xOTUKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIHNldCBhbmQgYSBzZWFyY2ggc3RhcnRzIGluIHZpcnR1YWwgc3BhY2UKCSAgICAiOmNhbGwgc2VhcmNoKCd4JykiIGdvZXMgdG8gdGhlIHdyb25nIHBvc2l0aW9uLiAoRXJpYyBMb25nKQpTb2x1dGlvbjogICBSZXNldCBjb2xhZGQgd2hlbiBmaW5kaW5nIGEgbWF0Y2guCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjAuMTk2ClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQsICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiIGFuZCB2aXN1YWxseQoJICAgIHNlbGVjdGluZyBwYXJ0IG9mIGEgdGFiIGF0IHRoZSBzdGFydCBvZiBhIGxpbmUsICJ4IiBqb2lucyBpdCB3aXRoCgkgICAgdGhlIHByZXZpb3VzIGxpbmUuICBBbHNvLCB3aGVuIHRoZSBzZWxlY3Rpb24gc3BhbnMgbW9yZSB0aGFuIG9uZQoJICAgIGxpbmUgdGhlIHdob2xlIHRhYiBpcyBkZWxldGVkLgpTb2x1dGlvbjogICBUYWtlIGNvbGFkZCBpbnRvIGFjY291bnQgd2hlbiBhZGp1c3RpbmcgZm9yICdzZWxlY3Rpb24nIGJlaW5nCgkgICAgImV4Y2x1c2l2ZSIuICBBbHNvIGV4cGFuZCBhIHRhYiBpbnRvIHNwYWNlcyB3aGVuIGRlbGV0aW5nIG1vcmUKCSAgICB0aGFuIG9uZSBsaW5lLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jCgpQYXRjaCA2LjAuMTk3ClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgYW5kICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiLCAidiR4IgoJICAgIGRvZXNuJ3QgZGVsZXRlIHRoZSBsYXN0IGNoYXJhY3RlciBpbiB0aGUgbGluZS4gKEVyaWMgTG9uZykKU29sdXRpb246ICAgRG9uJ3QgcmVzZXQgdGhlIGluY2x1c2l2ZSBmbGFnLiAoSGVsbXV0IFN0aWVnbGVyKQpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4wLjE5OApQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0IGFuZCAnc2hvd2JyZWFrJyBpcyBub3QgZW1wdHksIG1vdmluZyB0aGUKCSAgICBjdXJzb3Igb3ZlciB0aGUgbGluZSBicmVhayBkb2Vzbid0IHdvcmsgcHJvcGVybHkuIChFcmljIExvbmcpClNvbHV0aW9uOiAgIE1ha2UgZ2V0dmlzY29sKCkgYW5kIGdldHZpc2NvbDIoKSB1c2UgZ2V0dnZjb2woKSB0byBvYnRhaW4gdGhlCgkgICAgdmlydHVhbCBjdXJzb3IgcG9zaXRpb24uICBBZGp1c3QgY29sYWR2YW5jZSgpIGFuZCBvbmVsZWZ0KCkgdG8KCSAgICBza2lwIG92ZXIgdGhlICdzaG93YnJlYWsnIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL21pc2MyLmMKClBhdGNoIDYuMC4xOTkKUHJvYmxlbTogICAgTXVsdGktYnl0ZTogY291bGQgdXNlIGljb252KCkgYWZ0ZXIgY2FsbGluZyBpY29udl9lbmQoKS4KCSAgICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBTdG9wIGNvbnZlcnRpbmcgaW5wdXQgYW5kIG91dHB1dCBzdHJlYW0gYWZ0ZXIgY2FsbGluZyBpY29udl9lbmQoKS4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4wLjIwMApQcm9ibGVtOiAgICBBIHNjcmlwdCB0aGF0IHN0YXJ0cyB3aXRoICIjIXBlcmwiIGlzbid0IHJlY29nbml6ZWQgYXMgYSBQZXJsCgkgICAgZmlsZXR5cGUuClNvbHV0aW9uOiAgIElnbm9yZSBhIG1pc3NpbmcgcGF0aCBpbiBhIHNjcmlwdCBoZWFkZXIuICBBbHNvLCBzcGVlZCB1cAoJICAgIHJlY29nbml6aW5nIHNjcmlwdHMgYnkgc2ltcGxpZnlpbmcgdGhlIHBhdHRlcm5zIHVzZWQuCkZpbGVzOgkgICAgcnVudGltZS9zY3JpcHRzLnZpbQoKUGF0Y2ggNi4wLjIwMQpQcm9ibGVtOiAgICBXaGVuIHNjcm9sbGJpbmRpbmcgYW5kIGRvaW5nIGEgbG9uZyBqdW1wLCBzd2l0Y2hpbmcgd2luZG93cyBqdW1wcwoJICAgIHRvIGFub3RoZXIgcG9zaXRpb24gaW4gdGhlIGZpbGUuICBTY3JvbGxpbmcgYSBmZXcgbGluZXMgYXQgYSB0aW1lCgkgICAgaXMgT0suIChKb2hhbm5lcyBaZWxsbmVyKQpTb2x1dGlvbjogICBXaGVuIHNldHRpbmcgd190b3BsaW5lIHJlc2V0IHRoZSBmbGFnIHRoYXQgaW5kaWNhdGVzIHdfYm90bGluZSBpcwoJICAgIHZhbGlkLgpGaWxlczoJICAgIHNyYy9kaWZmLmMKClBhdGNoIDYuMC4yMDIKUHJvYmxlbTogICAgVGhlICJpY29uPSIgYXJndW1lbnQgZm9yIHRoZSBtZW51IGNvbW1hbmQgdG8gZGVmaW5lIGEgdG9vbGJhciBpY29uCgkgICAgd2l0aCBhIGZpbGUgZGlkbid0IHdvcmsgZm9yIEdUSy4gKENocmlzdGlhbiBKLiBSb2JpbnNvbikKCSAgICBGb3IgTW90aWYgYW5kIEF0aGVuYSBhIGZ1bGwgcGF0aCB3YXMgcmVxdWlyZWQuClNvbHV0aW9uOiAgIFNlYXJjaCB0aGUgaWNvbiBmaWxlIHVzaW5nIHRoZSBzcGVjaWZpZWQgcGF0aC4gIEV4cGFuZCBlbnZpcm9ubWVudAoJICAgIHZhcmlhYmxlcyBpbiB0aGUgZmlsZSBuYW1lLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWlfeDExLmMKClBhdGNoIDYuMC4yMDMKUHJvYmxlbTogICAgQ2FuIGNoYW5nZSAnZmlsZWZvcm1hdCcgZXZlbiB0aG91Z2ggJ21vZGlmaWFibGUnIGlzIG9mZi4KCSAgICAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgQ29ycmVjdCBjaGVjayBmb3Iga2luZCBvZiBzZXQgY29tbWFuZC4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4yMDQKUHJvYmxlbTogICAgIjp1bmxldCIgZG9lc24ndCB3b3JrIGZvciB2YXJpYWJsZXMgd2l0aCBjdXJseSBicmFjZXMuIChUaG9tYXMKCSAgICBTY290dCBVcmJhbikKU29sdXRpb246ICAgSGFuZGxlIHZhcmlhYmxlIG5hbWVzIHdpdGggY3VybHkgYnJhY2VzIHByb3Blcmx5LiAoVmluY2UgTmVncmkpCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjIwNSAoZXh0cmEpClByb2JsZW06ICAgICJndmltIC1mIiBzdGlsbCBmb3JrcyB3aGVuIHVzaW5nIHRoZSBiYXRjaCBzY3JpcHQgdG8gc3RhcnQgVmltLgpTb2x1dGlvbjogICBBZGQgYW4gYXJndW1lbnQgdG8gInN0YXJ0IiB0byB1c2UgYSBmb3JlZ3JvdW5kIHNlc3Npb24gKE1pY2hhZWwKCSAgICBHZWRkZXMpCkZpbGVzOgkgICAgc3JjL2Rvc2luc3QuYwoKUGF0Y2ggNi4wLjIwNgpQcm9ibGVtOiAgICBVbml4OiBpZiBleHBhbmRpbmcgYSB3aWxkY2FyZCBpbiBhIGZpbGUgbmFtZSByZXN1bHRzIGluIGEKCSAgICB3aWxkY2FyZCBjaGFyYWN0ZXIgYW5kIHRoZXJlIGFyZSBtb3JlIHBhcnRzIGluIHRoZSBwYXRoIHdpdGggYQoJICAgIHdpbGRjYXJkLCBpdCBpcyBleHBhbmRlZCBhZ2Fpbi4KCSAgICBXaW5kb3dzOiAiOmVkaXQgXFthYmNdIiBjb3VsZCBuZXZlciBlZGl0IHRoZSBmaWxlICJbYWJjXSIuClNvbHV0aW9uOiAgIERvbid0IGV4cGFuZCB3aWxkY2FyZHMgaW4gYWxyZWFkeSBleHBhbmRlZCBwYXJ0cy4KCSAgICBEb24ndCByZW1vdmUgYmFja3NsYXNoZXMgdXNlZCB0byBlc2NhcGUgdGhlIHNwZWNpYWwgbWVhbmluZyBvZiBhCgkgICAgd2lsZGNhcmQ7IGNhbiBlZGl0ICJbYWJjXSIgaWYgJ1snIGlzIHJlbW92ZWQgZnJvbSAnaXNmbmFtZScuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMsIHNyYy9vc191bml4LmMKClBhdGNoIDYuMC4yMDcgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIHNob3J0Y3V0cyBhbmQgc3RhcnQgbWVudSBlbnRyaWVzIGxldCBWaW0gc3RhcnR1cCBpbiB0aGUKCSAgICBkZXNrdG9wIGRpcmVjdG9yeSwgd2hpY2ggaXMgbm90IHZlcnkgdXNlZnVsLgpTb2x1dGlvbjogICBMZXQgc2hvcnRjdXRzIHN0YXJ0IFZpbSBpbiAkSE9NRSBvciAkSE9NRURJUiRIT01FUEFUSC4KRmlsZXM6CSAgICBzcmMvZG9zaW5zdC5jCgpQYXRjaCA2LjAuMjA4ClByb2JsZW06ICAgIEdVSTogV2hlbiB1c2luZyBhIGtleW1hcCBhbmQgdGhlIGN1cnNvciBpcyBub3QgYmxpbmtpbmcsIENUUkwtXiBpbgoJICAgIEluc2VydCBtb2RlIGRvZXNuJ3QgZGlyZWN0bHkgY2hhbmdlIHRoZSBjdXJzb3IgY29sb3IuICAoQWxleAoJICAgIFNvbG93KQpTb2x1dGlvbjogICBGb3JjZSBhIHJlZHJhdyBvZiB0aGUgY3Vyc29yIGFmdGVyIENUUkwtXi4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjAuMjA5ClByb2JsZW06ICAgIEdVSSBHVEs6IEFmdGVyIHNlbGVjdGluZyBhICdndWlmb250JyB3aXRoIHRoZSBmb250IGRpYWxvZyB0aGVyZQoJICAgIGFyZSByZWRyYXcgcHJvYmxlbXMgZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KU29sdXRpb246ICAgU2VwYXJhdGUgdGhlIGZvbnQgZGlhbG9nIGZyb20gc2V0dGluZyB0aGUgbmV3IGZvbnQgbmFtZSB0byBhdm9pZAoJICAgIHRoYXQgIioiIGlzIHVzZWQgdG8gZmluZCB3aWRlIGFuZCBib2xkIGZvbnRzLgoJICAgIFdoZW4gcmVkcmF3aW5nIGV4dHJhIGNoYXJhY3RlcnMgZm9yIHRoZSBib2xkIHRyaWNrLCB0YWtlIGNhcmUgb2YKCSAgICBVVEYtOCBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9ndWkuYywgc3JjL2d1aV9ndGtfeDExLmMsIHNyYy9vcHRpb24uYywgc3JjL3Byb3RvL2d1aS5wcm8sCgkgICAgc3JjL3Byb3RvL2d1aV9ndGtfeDExLnBybwoKUGF0Y2ggNi4wLjIxMApQcm9ibGVtOiAgICBBZnRlciBwYXRjaCA2LjAuMTY3IGl0J3Mgbm8gbG9uZ2VyIHBvc3NpYmxlIHRvIGVkaXQgYSBoZWxwIGZpbGUgaW4KCSAgICBhbm90aGVyIGVuY29kaW5nIHRoYW4gbGF0aW4xLgpTb2x1dGlvbjogICBMZXQgdGhlICIrK2VuYz0iIGFyZ3VtZW50IG92ZXJydWxlIHRoZSBlbmNvZGluZy4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4yMTEKUHJvYmxlbTogICAgV2hlbiByZWFkaW5nIGEgZmlsZSBmYWlscywgdGhlIGJ1ZmZlciBpcyBlbXB0eSwgYnV0IGl0IG1pZ2h0IHN0aWxsCgkgICAgYmUgcG9zc2libGUgdG8gd3JpdGUgaXQgd2l0aCAiOnciIGxhdGVyLiAgVGhlIG9yaWdpbmFsIGZpbGUgaXMKCSAgICBsb3N0IHRoZW4uIChTdGV2ZSBBbWVyaWdlKQpTb2x1dGlvbjogICBTZXQgdGhlICdyZWFkb25seScgb3B0aW9uIGZvciB0aGUgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjIxMgpQcm9ibGVtOiAgICBHVUkgR1RLOiBjb25maXJtKCJmb28iLCAiIikgY2F1c2VzIGEgY3Jhc2guClNvbHV0aW9uOiAgIERvbid0IG1ha2UgYSBub24tZXhpc3RpbmcgYnV0dG9uIHRoZSBkZWZhdWx0LiAgQWRkIGEgZGVmYXVsdCAiT0siCgkgICAgYnV0dG9uIGlmIG5vbmUgaXMgc3BlY2lmaWVkLgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMC4yMTMKUHJvYmxlbTogICAgV2hlbiBhIGZpbGUgbmFtZSBjb250YWlucyB1bnByaW50YWJsZSBjaGFyYWN0ZXJzLCBDVFJMLUcgYW5kIG90aGVyCgkgICAgY29tbWFuZHMgZG9uJ3Qgd29yayB3ZWxsLgpTb2x1dGlvbjogICBUdXJuIHVucHJpbnRhYmxlIGludG8gcHJpbnRhYmxlIGNoYXJhY3RlcnMuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvY2hhcnNldC5jCgpQYXRjaCA2LjAuMjE0ClByb2JsZW06ICAgIFdoZW4gdGhlcmUgaXMgYSBidWZmZXIgd2l0aG91dCBhIG5hbWUsIGVtcHR5IGVudHJpZXMgYXBwZWFyIGluIHRoZQoJICAgIGp1bXBsaXN0IHNhdmVkIGluIHRoZSB2aW1pbmZvIGZpbGUuClNvbHV0aW9uOiAgIERvbid0IHdyaXRlIGp1bXBsaXN0IGVudHJpZXMgd2l0aG91dCBhIGZpbGUgbmFtZS4KRmlsZXM6CSAgICBzcmMvbWFyay5jCgpQYXRjaCA2LjAuMjE1ClByb2JsZW06ICAgIEFmdGVyIHVzaW5nICIvIiBmcm9tIFZpc3VhbCBtb2RlIHRoZSBQYXN0ZSBtZW51IGFuZCBUb29sYmFyCgkgICAgZW50cmllcyBkb24ndCB3b3JrLiAgUGFzdGluZyB3aXRoIHRoZSBtaWRkbGUgbW91c2UgZG9lc24ndCB3b3JrCgkgICAgYW5kIG1vZGVsZXNzIHNlbGVjdGlvbiBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIFVzZSB0aGUgY29tbWFuZCBsaW5lIG1vZGUgbWVudXMgYW5kIHVzZSB0aGUgbW91c2UgbGlrZSBpbiB0aGUKCSAgICBjb21tYW5kIGxpbmUuCkZpbGVzOgkgICAgc3JjL2d1aS5jLCBzcmMvbWVudS5jLCBzcmMvdWkuYwoKUGF0Y2ggNi4wLjIxNgpQcm9ibGVtOiAgICBBZnRlciByZWxvYWRpbmcgYSBmaWxlLCBkaXNwbGF5ZWQgaW4gYW5vdGhlciB3aW5kb3cgdGhhbiB0aGUKCSAgICBjdXJyZW50IG9uZSwgd2hpY2ggd2FzIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0gdGhlIHBhcnQgb2YgdGhlIGZpbGUKCSAgICBhcm91bmQgdGhlIGN1cnNvciBzZXQgYnkgYXV0b2NvbW1hbmRzIG1heSBiZSBkaXNwbGF5ZWQsIGJ1dAoJICAgIGp1bXBpbmcgYmFjayB0byB0aGUgb3JpZ2luYWwgY3Vyc29yIHBvc2l0aW9uIHdoZW4gZW50ZXJpbmcgdGhlCgkgICAgd2luZG93IGFnYWluLgpTb2x1dGlvbjogICBSZXN0b3JlIHRoZSB0b3BsaW5lIG9mIHRoZSB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjAuMjE3ClByb2JsZW06ICAgIFdoZW4gZ2V0dGluZyBoZWxwIGZyb20gYSBoZWxwIGZpbGUgdGhhdCB3YXMgdXNlZCBiZWZvcmUsIGFuIGVtcHR5CgkgICAgdW5saXN0ZWQgYnVmZmVyIHJlbWFpbnMgaW4gdGhlIGJ1ZmZlciBsaXN0LiAoRXJpYyBMb25nKQpTb2x1dGlvbjogICBXaXBlIG91dCB0aGUgYnVmZmVyIHVzZWQgdG8gZG8gdGhlIHRhZyBqdW1wIGZyb20uCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZXhfY21kcy5jLCBzcmMvcHJvdG8vYnVmZmVyLnBybwoKUGF0Y2ggNi4wLjIxOApQcm9ibGVtOiAgICBXaXRoIGV4cGxvcmVyIHBsdWdpbjogInZpbSAtbyBmaWxlbmFtZSBkaXJuYW1lIiBkb2Vzbid0IGxvYWQgdGhlCgkgICAgZXhwbG9yZXIgd2luZG93IHVudGlsIGVudGVyaW5nIHRoZSB3aW5kb3cuClNvbHV0aW9uOiAgIENhbGwgczpFZGl0RGlyKCkgZm9yIGVhY2ggd2luZG93IGFmdGVyIHN0YXJ0aW5nIHVwLgpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2V4cGxvcmVyLnZpbQoKUGF0Y2ggNi4wLjIxOQpQcm9ibGVtOiAgICAiOnNldGxvY2FsIiBhbmQgIjpzZXRnbG9iYWwiLCB3aXRob3V0IGFyZ3VtZW50cywgZGlzcGxheSB0ZXJtaW5hbAoJICAgIG9wdGlvbnMuIChaZGVuZWsgU2VrZXJhKQpTb2x1dGlvbjogICBTa2lwIHRlcm1pbmFsIG9wdGlvbnMgZm9yIHRoZXNlIHR3byBjb21tYW5kcy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMC4yMjAKUHJvYmxlbTogICAgQWZ0ZXIgcGF0Y2ggNi4wLjIxOCBnZXQgYSBiZWVwIG9uIHN0YXJ0dXAuIChNdXJhb2thIFRhcm8pClNvbHV0aW9uOiAgIERvbid0IHRyeSBnb2luZyB0byBhbm90aGVyIHdpbmRvdyB3aGVuIHRoZXJlIGlzbid0IG9uZS4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9leHBsb3Jlci52aW0KClBhdGNoIDYuMC4yMjEKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOmJkZWwiIGFuZCBhbGwgb3RoZXIgYnVmZmVycyBhcmUgdW5sb2FkZWQgdGhlIGxvd2VzdAoJICAgIG51bWJlcmVkIGJ1ZmZlciBpcyBqdW1wZWQgdG8gaW5zdGVhZCBvZiB0aGUgbW9zdCByZWNlbnQgb25lLiAoRGF2ZQoJICAgIENlY2lsKQpTb2x1dGlvbjogICBQcmVmZXIgYW4gdW5sb2FkZWQgYnVmZmVyIGZyb20gdGhlIGp1bXBsaXN0LgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4wLjIyMgpQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0IGFuZCB1c2luZyBhdXRvaW5kZW50LCBwcmVzc2luZyBFc2MgYWZ0ZXIKCSAgICBzdGFydGluZyBhIG5ldyBsaW5lIGxlYXZlcyBiZWhpbmQgcGFydCBvZiB0aGUgYXV0b2luZGVudC4gKEhlbG11dAoJICAgIFN0aWVnbGVyKQpTb2x1dGlvbjogICBBZnRlciBkZWxldGluZyB0aGUgbGFzdCBjaGFyIGluIHRoZSBsaW5lIGFkanVzdCB0aGUgY3Vyc29yCgkgICAgcG9zaXRpb24gaW4gZGVsX2J5dGVzKCkuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMsIHNyYy9vcHMuYwoKUGF0Y2ggNi4wLjIyMwpQcm9ibGVtOiAgICBXaGVuIHNwbGl0dGluZyBhIHdpbmRvdyB0aGF0IGNvbnRhaW5zIHRoZSBleHBsb3JlciwgaGl0dGluZyBDUiBvbgoJICAgIGEgZmlsZSBuYW1lIGdpdmVzIGVycm9yIG1lc3NhZ2VzLgpTb2x1dGlvbjogICBTZXQgdGhlIHdpbmRvdyB2YXJpYWJsZXMgYWZ0ZXIgc3BsaXR0aW5nIHRoZSB3aW5kb3cuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZXhwbG9yZXIudmltCgpQYXRjaCA2LjAuMjI0ClByb2JsZW06ICAgIFdoZW4gJ3NpZGVzY3JvbGwnIGFuZCAnc2lkZXNjcm9sbG9mZicgYXJlIHNldCBpbiBhIG5hcnJvdyB3aW5kb3cKCSAgICB0aGUgdGV4dCBtYXkganVtcCBsZWZ0LXJpZ2h0IGFuZCB0aGUgY3Vyc29yIGlzIGRpc3BsYXllZCBpbiB0aGUKCSAgICB3cm9uZyBwb3NpdGlvbi4gKEFyaWMgQmx1bWVyKQpTb2x1dGlvbjogICBXaGVuIHRoZXJlIGlzIG5vdCBlbm91Z2ggcm9vbSwgY29tcHV0ZSB0aGUgbGVmdCBjb2x1bW4gZm9yIHRoZQoJICAgIHdpbmRvdyB0byBwdXQgdGhlIGN1cnNvciBpbiB0aGUgbWlkZGxlLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMC4yMjUKUHJvYmxlbTogICAgSW4gVmlzdWFsIG1vZGUgImdrIiBnZXRzIHN0dWNrIGluIGEgY2xvc2VkIGZvbGQuIChTcmluYXRoCgkgICAgQXZhZGhhbnVsYSkKU29sdXRpb246ICAgQmVoYXZlIGRpZmZlcmVudGx5IGluIGEgY2xvc2VkIGZvbGQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjAuMjI2ClByb2JsZW06ICAgIFdoZW4gZG9pbmcgIjpyZWNvdmVyIGZpbGUiIGdldCB0aGUgQVRURU5USU9OIHByb21wdC4KCSAgICBBZnRlciByZWNvdmVyaW5nIHRoZSBzYW1lIGZpbGUgZml2ZSB0aW1lcyBnZXQgYSByZWFkIGVycm9yIG9yIGEKCSAgICBjcmFzaC4gIChBbGV4IERhdmlzKQpTb2x1dGlvbjogICBTZXQgdGhlIHJlY292ZXJ5bW9kZSBmbGFnIGJlZm9yZSBzZXR0aW5nIHRoZSBmaWxlIG5hbWUuCgkgICAgQ29ycmVjdCB0aGUgYW1vdW50IG9mIHVzZWQgbWVtb3J5IGZvciB0aGUgc2l6ZSBvZiBibG9jayB6ZXJvLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjAuMjI3IChleHRyYSkKUHJvYmxlbTogICAgVGhlIFJJU0MgT1MgcG9ydCBoYXMgc2V2ZXJhbCBwcm9ibGVtcy4KU29sdXRpb246ICAgVXBkYXRlIHRoZSBtYWtlZmlsZSBhbmQgZml4IHNvbWUgb2YgdGhlIHByb2JsZW1zLiAoQW5keSBXaW5nYXRlKQpGaWxlczoJICAgIHNyYy9NYWtlX3JvLm1haywgc3JjL29zX3Jpc2Nvcy5jLCBzcmMvb3NfcmlzY29zLmgsCgkgICAgc3JjL3Byb3RvL29zX3Jpc2Nvcy5wcm8sIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4wLjIyOApQcm9ibGVtOiAgICBBZnRlciBwdXR0aW5nIHRleHQgaW4gVmlzdWFsIG1vZGUgdGhlICddIG1hcmsgaXMgbm90IGF0IHRoZSBlbmQgb2YKCSAgICB0aGUgcHV0IHRleHQuCgkgICAgVW5kbyBkb2Vzbid0IHdvcmsgcHJvcGVybHkgd2hlbiBwdXR0aW5nIGEgd29yZCBpbnRvIGEgVmlzdWFsCgkgICAgc2VsZWN0aW9uIHRoYXQgc3BhbnMgbW9yZSB0aGFuIG9uZSBsaW5lLgpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSAnXSBtYXJrIGZvciB0aGUgZGVsZXRpbmcgdGhlIFZpc3VhbGx5IHNlbGVjdGVkIHRleHQuCgkgICAgI2lmZGVmIGNvZGUgdGhhdCBkZXBlbmRzIG9uIEZFQVRfVklTVUFMIHByb3Blcmx5LgoJICAgIEFsc28gZml4IHRoYXQgImQiIGNyb3NzaW5nIGxpbmUgYm91bmRhcnkgcHV0cyAnWyBqdXN0IGJlZm9yZQoJICAgIGRlbGV0ZWQgdGV4dC4KCSAgICBGaXggdW5kbyBieSBzYXZpbmcgYWxsIGRlbGV0ZWQgbGluZXMgYXQgb25jZS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL2dsb2JhbHMuaCwgc3JjL25vcm1hbC5jLCBzcmMvb3BzLmMsCgkgICAgc3JjL3N0cnVjdHMuaCwgc3JjL3ZpbS5oCgpQYXRjaCA2LjAuMjI5ClByb2JsZW06ICAgIE11bHRpLWJ5dGU6IFdpdGggJ20nIGluICdmb3JtYXRvcHRpb25zJywgZm9ybWF0dGluZyBkb2Vzbid0IGJyZWFrCgkgICAgYXQgYSBtdWx0aS1ieXRlIGNoYXIgZm9sbG93ZWQgYnkgYW4gQVNDSUkgY2hhciwgYW5kIHRoZSBvdGhlciB3YXkKCSAgICBhcm91bmQuIChNdXJhb2thIFRhcm8pCgkgICAgV2hlbiBqb2luaW5nIGxpbmVzIGEgc3BhY2UgaXMgaW5zZXJ0ZWQgYmV0d2VlbiBtdWx0aS1ieXRlCgkgICAgY2hhcmFjdGVycywgd2hpY2ggaXMgbm90IGFsd2F5cyB3YW50ZWQuClNvbHV0aW9uOiAgIENoZWNrIGZvciBtdWx0aS1ieXRlIGNoYXJhY3RlciBiZWZvcmUgYW5kIGFmdGVyIHRoZSBicmVha3BvaW50LgoJICAgIERvbid0IGluc2VydCBhIHNwYWNlIGJlZm9yZSBvciBhZnRlciBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIHdoZW4KCSAgICBqb2luaW5nIGxpbmVzIGFuZCB0aGUgJ00nIGZsYWcgaXMgaW4gJ2Zvcm1hdG9wdGlvbnMnLiAgRG9uJ3QKCSAgICBpbnNlcnQgYSBzcGFjZSBiZXR3ZWVuIG11bHRpLWJ5dGUgY2hhcmFjdGVycyB3aGVuIHRoZSAnQicgZmxhZyBpcwoJICAgIGluICdmb3JtYXRvcHRpb25zJy4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvb3BzLmMsIHNyYy9vcHRpb24uaAoKUGF0Y2ggNi4wLjIzMApQcm9ibGVtOiAgICBUaGUgIjoiIHVzZWQgYXMgYSBtb3Rpb24gYWZ0ZXIgYW4gb3BlcmF0b3IgaXMgZXhjbHVzaXZlLCBidXQKCSAgICBzb21ldGltZXMgaXQgc2hvdWxkIGJlIGluY2x1c2l2ZS4KU29sdXRpb246ICAgTWFrZSB0aGUgInYiIGluIGJldHdlZW4gYW4gb3BlcmF0b3IgYW5kIG1vdGlvbiB0b2dnbGUKCSAgICBpbmNsdXNpdmUvZXhjbHVzaXZlLiAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBydW50aW1lL2RvYy9tb3Rpb24udHh0LCBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4yMzEKUHJvYmxlbTogICAgImdkIiBhbmQgImdEIiBkb24ndCB3b3JrIHdoZW4gdGhlIHZhcmlhYmxlIG1hdGNoZXMgaW4gYSBjb21tZW50CgkgICAganVzdCBhYm92ZSB0aGUgbWF0Y2ggdG8gYmUgZm91bmQuIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBDb250aW51ZSBzZWFyY2hpbmcgaW4gdGhlIGZpcnN0IGNvbHVtbiBiZWxvdyB0aGUgY29tbWVudC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMC4yMzIKUHJvYmxlbTogICAgInZpbSAtLXZlcnNpb24iIHByaW50cyBvbiBzdGRlcnIgd2hpbGUgInZpbSAtLWhlbHAiIHByaW50cyBvbgoJICAgIHN0ZG91dC4KU29sdXRpb246ICAgTWFrZSAidmltIC0tdmVyc2lvbiIgdXNlIHN0ZG91dC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9zdGFydGluZy50eHQsIHNyYy9nbG9iYWxzLmgsIHNyYy9tYWluLmMsIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMC4yMzMKUHJvYmxlbTogICAgIlwxXHssOH0iIGluIGEgcmVnZXhwIGlzIG5vdCBhbGxvd2VkLCBidXQgaXQgc2hvdWxkIHdvcmssIGJlY2F1c2UKCSAgICB0aGVyZSBpcyBhbiB1cHBlciBsaW1pdC4gIChKaW0gQmF0dGxlKQpTb2x1dGlvbjogICBBbGxvdyB1c2luZyAiXHttaW4sbWF4fSIgYWZ0ZXIgYW4gYXRvbSB0aGF0IGNhbiBiZSBlbXB0eSBpZiB0aGVyZQoJICAgIGlzIGFuIHVwcGVyIGxpbWl0LgpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4wLjIzNApQcm9ibGVtOiAgICBJdCdzIG5vdCBlYXN5IHRvIHNldCB0aGUgY3Vyc29yIHBvc2l0aW9uIHdpdGhvdXQgbW9kaWZ5aW5nIG1hcmtzLgpTb2x1dGlvbjogICBBZGQgdGhlIGN1cnNvcigpIGZ1bmN0aW9uLiAoWWVnYXBwYW4gTGFrc2htYW5hbikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYwoKUGF0Y2ggNi4wLjIzNQpQcm9ibGVtOiAgICBXaGVuIHdyaXRpbmcgYSBmaWxlIGFuZCByZW5hbWluZyB0aGUgb3JpZ2luYWwgZmlsZSB0byBtYWtlIHRoZQoJICAgIGJhY2t1cCwgcGVybWlzc2lvbnMgY291bGQgY2hhbmdlIHdoZW4gc2V0dGluZyB0aGUgb3duZXIuClNvbHV0aW9uOiAgIE9ubHkgc2V0IHRoZSBvd25lciB3aGVuIGl0J3MgbmVlZGVkIGFuZCBzZXQgdGhlIHBlcm1pc3Npb25zIGFnYWluCgkgICAgYWZ0ZXJ3YXJkcy4KCSAgICBXaGVuICdiYWNrdXBjb3B5JyBpcyAiYXV0byIgY2hlY2sgdGhhdCB0aGUgb3duZXIgYW5kIHBlcm1pc3Npb25zCgkgICAgb2YgYSBuZXdseSBjcmVhdGVkIGZpbGUgY2FuIGJlIHNldCBwcm9wZXJseS4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4yMzYKUHJvYmxlbTogICAgIjplZGl0IiB3aXRob3V0IGFyZ3VtZW50IHNob3VsZCBtb3ZlIGN1cnNvciB0byBsaW5lIDEgaW4gVmkKCSAgICBjb21wYXRpYmxlIG1vZGUuClNvbHV0aW9uOiAgIEFkZCAnZycgZmxhZyB0byAnY3BvcHRpb25zJy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgc3JjL2V4X2RvY21kLmMsIHNyYy9vcHRpb24uaAoKUGF0Y2ggNi4wLjIzNwpQcm9ibGVtOiAgICBJbiBhIEMgZmlsZSwgdXNpbmcgdGhlIGZpbGV0eXBlIHBsdWdpbiwgcmUtaW5kZW50aW5nIGEgY29tbWVudAoJICAgIHdpdGggdHdvIHNwYWNlcyBhZnRlciB0aGUgbWlkZGxlICIqIiBkb2Vzbid0IGFsaWduIHByb3Blcmx5LgpTb2x1dGlvbjogICBEb24ndCB1c2UgYSBtaWRkbGUgZW50cnkgZnJvbSBhIHN0YXJ0L21pZGRsZS9lbmQgdG8gbGluZSB1cCB3aXRoCgkgICAgdGhlIHN0YXJ0IG9mIHRoZSBjb21tZW50IHdoZW4gdGhlIHN0YXJ0IHBhcnQgZG9lc24ndCBtYXRjaCB3aXRoCgkgICAgdGhlIGFjdHVhbCBjb21tZW50IHN0YXJ0LgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjAuMjM4ClByb2JsZW06ICAgIFVzaW5nIGEgIjpzdWJzdGl0dXRlIiBjb21tYW5kIHdpdGggYSBzdWJzdGl0dXRlKCkgY2FsbCBpbiB0aGUKCSAgICBzdWJzdGl0dXRpb24gZXhwcmVzc2lvbiBjYXVzZXMgZXJyb3JzLiAoU3JpbmF0aCBBdmFkaGFudWxhKQpTb2x1dGlvbjogICBTYXZlIGFuZCByZXN0b3JlIHBvaW50ZXJzIHdoZW4gZG9pbmcgc3Vic3RpdHV0aW9uIHJlY3Vyc2l2ZWx5LgpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4wLjIzOQpQcm9ibGVtOiAgICBVc2luZyAiQSIgdG8gYXBwZW5kIGFmdGVyIGEgVmlzdWFsbHkgc2VsZWN0ZWQgYmxvY2sgd2hpY2ggaXMgYWZ0ZXIKCSAgICB0aGUgZW5kIG9mIHRoZSBsaW5lLCBzcGFjZXMgYXJlIGluc2VydGVkIGluIHRoZSB3cm9uZyBsaW5lIGFuZAoJICAgIG90aGVyIHVuZXhwZWN0ZWQgZWZmZWN0cy4gKE1pY2hhZWwgTmF1bWFubikKU29sdXRpb246ICAgRG9uJ3QgYWR2YW5jZSB0aGUgY3Vyc29yIHRvIHRoZSBuZXh0IGxpbmUuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjAuMjQwClByb2JsZW06ICAgIFdpbjMyOiBidWlsZGluZyB3aXRoIFB5dGhvbiAyLjIgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBBZGQgc3VwcG9ydCBmb3IgUHl0aG9uIDIuMiB3aXRoIGR5bmFtaWMgbGlua2luZy4gKFBhdWwgTW9vcmUpCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjAuMjQxClByb2JsZW06ICAgIFdpbjMyOiBFeHBhbmRpbmcgdGhlIG9sZCB2YWx1ZSBvZiBhbiBvcHRpb24gdGhhdCBpcyBhIHBhdGggdGhhdAoJICAgIHN0YXJ0cyB3aXRoIGEgYmFja3NsYXNoLCBhbiBleHRyYSBiYWNrc2xhc2ggaXMgaW5zZXJ0ZWQuClNvbHV0aW9uOiAgIE9ubHkgaW5zZXJ0IGJhY2tzbGFzaGVzIHdoZXJlIG5lZWRlZC4KCSAgICBBbHNvIGhhbmRsZSBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgcHJvcGVybHkgd2hlbiByZW1vdmluZwoJICAgIGJhY2tzbGFzaGVzLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4wLjI0MgpQcm9ibGVtOiAgICBHVUk6IE9uIGEgc3lzdGVtIHdpdGggYW4gRXhjZWVkIFggc2VydmVyIHNvbWV0aW1lcyBnZXQgYSAiQmFkCgkgICAgV2luZG93IiBlcnJvci4gKFRvbW1pIE1hZWtpdGFsbykKU29sdXRpb246ICAgV2hlbiBmb3JraW5nLCB1c2UgYSBwaXBlIHRvIHdhaXQgaW4gdGhlIHBhcmVudCBmb3IgdGhlIGNoaWxkIHRvCgkgICAgaGF2ZSBkb25lIHRoZSBzZXRzaWQoKSBjYWxsLgpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4wLjI0MwpQcm9ibGVtOiAgICBVbml4OiAidmltIC0tdmVyc2lvbiIgb3V0cHV0cyBhIE5MIGJlZm9yZSB0aGUgbGFzdCBsaW5lIGluc3RlYWQgb2YKCSAgICBhZnRlciBpdC4gKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIFNlbmQgdGhlIE5MIHRvIHRoZSBzYW1lIG91dHB1dCBzdHJlYW0gYXMgdGhlIHRleHQuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYywgc3JjL29zX3VuaXguYywgc3JjL3Byb3RvL21lc3NhZ2UucHJvCgpQYXRjaCA2LjAuMjQ0ClByb2JsZW06ICAgIE11bHRpLWJ5dGU6IFByb2JsZW1zIHdpdGggKGlsbGVnYWwpIFVURi04IGNoYXJhY3RlcnMgaW4gbWVudSBhbmQKCSAgICBmaWxlIG5hbWUgKGUuZy4sIGljb24gdGV4dCwgc3RhdHVzIGxpbmUpLgpTb2x1dGlvbjogICBDb3JyZWN0bHkgaGFuZGxlIHVucHJpbnRhYmxlIGNoYXJhY3RlcnMuICBDYXRjaCBpbGxlZ2FsIFVURi04CgkgICAgY2hhcmFjdGVycyBhbmQgcmVwbGFjZSB0aGVtIHdpdGggPHh4Pi4gIFRydW5jYXRpbmcgdGhlIHN0YXR1cyBsaW5lCgkgICAgd2Fzbid0IGRvbmUgY29ycmVjdGx5IGF0IGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykKCSAgICBBZGRlZCBjb3JyZWN0X2NtZHNwb3MoKSBhbmQgdHJhbnNjaGFyX2J5dGUoKS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9jaGFyc2V0LmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZ3VpLmMsCgkgICAgc3JjL21lc3NhZ2UuYywgc3JjL3NjcmVlbi5jLCBzcmMvdmltLmgKClBhdGNoIDYuMC4yNDUKUHJvYmxlbTogICAgQWZ0ZXIgdXNpbmcgYSBjb2xvciBzY2hlbWUsIHNldHRpbmcgdGhlICdiYWNrZ3JvdW5kJyBvcHRpb24gbWlnaHQKCSAgICBub3Qgd29yay4gKFBldGVyIEhvcnN0KQpTb2x1dGlvbjogICBEaXNhYmxlIHRoZSBjb2xvciBzY2hlbWUgaWYgaXQgc3dpdGNoZXMgJ2JhY2tncm91bmQnIGJhY2sgdG8gdGhlCgkgICAgd3JvbmcgdmFsdWUuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjAuMjQ2ClByb2JsZW06ICAgICI6ZWNob21zZyIgZGlkbid0IHVzZSB0aGUgaGlnaGxpZ2h0aW5nIHNldCBieSAiOmVjaG9obCIuIChHYXJ5CgkgICAgSG9sbG93YXkpClNvbHV0aW9uOiAgIFVzZSB0aGUgc3BlY2lmaWVkIGF0dHJpYnV0ZXMgZm9yIHRoZSBtZXNzYWdlLiAoWWVnYXBwYW4KCSAgICBMYWtzaG1hbmFuKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4yNDcKUHJvYmxlbTogICAgR1RLIEdVSTogQ2FuJ3QgdXNlIGd2aW0gaW4gYSBrcGFydCB3aWRnZXQuClNvbHV0aW9uOiAgIEFkZCB0aGUgIi0tZWNoby13aWQiIGFyZ3VtZW50IHRvIGxldCBWaW0gZWNobyB0aGUgd2luZG93IElEIG9uCgkgICAgc3Rkb3V0LiAoUGhpbGlwcGUgRnJlbXkpCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0LCBzcmMvZ2xvYmFscy5oLCBzcmMvZ3VpX2d0a194MTEuYywKCSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjAuMjQ4ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgY29tcHJlc3NlZCBoZWxwIGZpbGVzIGFuZCAnZW5jb2RpbmcnIGlzbid0ICJsYXRpbjEiLAoJICAgIFZpbSBjb252ZXJ0cyB0aGUgaGVscCBmaWxlIGJlZm9yZSBkZWNvbXByZXNzaW5nLiAoRGF2aWQgUmV2aWVqbykKU29sdXRpb246ICAgRG9uJ3QgY29udmVydCBhIGhlbHAgZmlsZSB3aGVuICdiaW5hcnknIGlzIHNldC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4yNDkKUHJvYmxlbTogICAgInZpbSAtdCBlZGl0IC1jICdzdGEgZXhfaGVscCciIGRvZXNuJ3QgbW92ZSBjdXJzb3IgdG8gZWRpdCgpLgpTb2x1dGlvbjogICBEb24ndCBzZXQgdGhlIGN1cnNvciBvbiB0aGUgZmlyc3QgbGluZSBmb3IgIi1jIiBhcmd1bWVudHMgd2hlbgoJICAgIHRoZXJlIGFsc28gaXMgYSAiLXQiIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMC4yNTAgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWNpbnRvc2g6IFZhcmlvdXMgcHJvYmxlbXMgd2hlbiBjb21waWxpbmcuClNvbHV0aW9uOiAgIFZhcmlvdXMgZml4ZXMsIG1vc3RseSAjaWZkZWZzLiAoRGFueSBTdC4gQW1hbnQpCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYywgc3JjL21haW4uYywgc3JjL21pc2MyLmMsIHNyYy9vc19tYWMuaCwKCSAgICBzcmMvb3NfbWFjLnBicHJvai9wcm9qZWN0LnBieHByb2osIHNyYy9vc191bml4LmMKClBhdGNoIDYuMC4yNTEgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWNpbnRvc2g6IG1lbnUgc2hvcnRjdXRzIGFyZSBub3QgdmVyeSBjbGVhci4KU29sdXRpb246ICAgU2hvdyB0aGUgc2hvcnRjdXQgd2l0aCB0aGUgTWFjIGNsb3ZlciBzeW1ib2wuIChyYWluZG9nKQpGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMKClBhdGNoIDYuMC4yNTIKUHJvYmxlbTogICAgV2hlbiBhIHVzZXIgZnVuY3Rpb24gd2FzIGRlZmluZWQgd2l0aCAiYWJvcnQiLCBhbiBlcnJvciB0aGF0IGlzCgkgICAgbm90IGluc2lkZSBpZi9lbmRpZiBvciB3aGlsZS9lbmR3aGlsZSBkb2Vzbid0IGFib3J0IHRoZSBmdW5jdGlvbi4KCSAgICAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgRG9uJ3QgcmVzZXQgZGlkX2Vtc2cgd2hlbiB0aGUgZnVuY3Rpb24gaXMgdG8gYmUgYWJvcnRlZC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4wLjI1MwpQcm9ibGVtOiAgICBXaGVuICdpbnNlcnRtb2RlJyBpcyBzZXQsIGFmdGVyICI8Qy1PPjplZGl0IGZpbGUiIHRoZSBuZXh0IDxDLU8+CgkgICAgZG9lc24ndCB3b3JrLiAoQmVuamkgRmlzaGVyKSAgPEMtTD4gaGFzIHRoZSBzYW1lIHByb2JsZW0uClNvbHV0aW9uOiAgIFJlc2V0IG5lZWRfc3RhcnRfaW5zZXJ0bW9kZSBvbmNlIGluIGVkaXQoKS4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjAuMjU0IChleHRyYSkKUHJvYmxlbTogICAgQm9ybGFuZCBDKysgNS41OiBDaGVja2luZyBmb3Igc3RhY2sgb3ZlcmZsb3cgZG9lc24ndCB3b3JrCgkgICAgY29ycmVjdGx5LiAgTWF0dGVycyB3aGVuIHVzaW5nIGEgY29tcGxpY2F0ZWQgcmVnZXhwLgpTb2x1dGlvbjogICBSZW1vdmUgLU4tIGZyb20gTWFrZV9iYzUubWFrLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9NYWtlX2JjNS5tYWsKClBhdGNoIDYuMC4yNTUgKGV4dHJhKSAoZGVwZW5kcyBvbiBwYXRjaCA2LjAuMTE2IGFuZCA2LjAuMTIxKQpQcm9ibGVtOiAgICBXaW4zMjogQUNMIHN1cHBvcnQgZG9lc24ndCB3b3JrIHdlbGwgb24gU2FtYmEgZHJpdmVzLgpTb2x1dGlvbjogICBBZGQgYSBjaGVjayBmb3Igd29ya2luZyBBQ0wgc3VwcG9ydC4gKE1pa2UgV2lsbGlhbXMpCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMC4yNTYgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogIjpoaWdobGlnaHQgQ29tbWVudCBndWlmZz1hc2RmIiBkb2VzIG5vdCBnaXZlIGFuIGVycm9yCgkgICAgbWVzc2FnZS4gKFJhbmRhbGwgVy4gIE1vcnJpcykgIEFsc28gZm9yIG90aGVyIHN5c3RlbXMuClNvbHV0aW9uOiAgIEFkZCBndWlfZ2V0X2NvbG9yKCkgdG8gZ2l2ZSBvbmUgZXJyb3IgbWVzc2FnZSBmb3IgYWxsIHN5c3RlbXMuCkZpbGVzOgkgICAgc3JjL2d1aS5jLCBzcmMvZ3VpX2FtaWdhLmMsIHNyYy9ndWlfYXRoZW5hLmMsIHNyYy9ndWlfbW90aWYuYywKCSAgICBzcmMvZ3VpX3Jpc2Nvcy5jLCBzcmMvZ3VpX3gxMS5jLCBzcmMvZ3VpX2d0a194MTEuYywKCSAgICBzcmMvcHJvdG8vZ3VpLnBybywgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjAuMjU3ClByb2JsZW06ICAgIFdpbjMyOiBXaGVuICdtb3VzZWZvY3VzJyBpcyBzZXQgYW5kIHRoZXJlIGlzIGEgQnVmUmVhZAoJICAgIGF1dG9jb21tYW5kLCBhZnRlciB0aGUgZGlhbG9nIGZvciBwZXJtaXNzaW9ucyBjaGFuZ2VkIG91dHNpZGUgb2YKCSAgICBWaW06ICdtb3VzZWZvY3VzJyBzdG9wcyB3b3JraW5nLiAoUm9iZXJ0IFdlYmIpClNvbHV0aW9uOiAgIFJlc2V0IG5lZWRfbW91c2VfY29ycmVjdCBhZnRlciBjaGVja2luZyB0aW1lc3RhbXBzLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4wLjI1OApQcm9ibGVtOiAgICBXaGVuICdzY3JvbGxvZmYnIGlzIDk5OSBhbmQgdGhlcmUgYXJlIGZvbGRzLCB0aGUgdGV4dCBjYW4ganVtcCB1cAoJICAgIGFuZCBkb3duIHdoZW4gbW92aW5nIHRoZSBjdXJzb3IgZG93biBuZWFyIHRoZSBlbmQgb2YgdGhlIGZpbGUuCgkgICAgKEx1Ym9taXIgSG9zdCkKU29sdXRpb246ICAgV2hlbiBwdXR0aW5nIHRoZSBjdXJzb3IgaGFsZndheSB0aGUgd2luZG93IHN0YXJ0IGNvdW50aW5nIGxpbmVzIGF0CgkgICAgdGhlIGVuZCBvZiBhIGZvbGQuCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKUGF0Y2ggNi4wLjI1OQpQcm9ibGVtOiAgICBNUy1ET1M6IGFmdGVyIGVkaXRpbmcgdGhlIGNvbW1hbmQgbGluZSB0aGUgY3Vyc29yIHNoYXBlIG1heSByZW1haW4KCSAgICBsaWtlIGluIEluc2VydCBtb2RlLiAoVm9sa2VyIEtpZWZlbCkKU29sdXRpb246ICAgUmVzZXQgdGhlIGN1cnNvciBzaGFwZSBhZnRlciBlZGl0aW5nIHRoZSBjb21tYW5kIGxpbmUuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMC4yNjAKUHJvYmxlbTogICAgR1VJOiBNYXkgY3Jhc2ggd2hpbGUgc3RhcnRpbmcgdXAgd2hlbiBnaXZpbmcgYW4gZXJyb3IgbWVzc2FnZSBmb3IKCSAgICBtaXNzaW5nIGNvbG9yLiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgRG9uJ3QgY2FsbCBndWlfd3JpdGUoKSB3aGVuIHN0aWxsIHN0YXJ0aW5nIHVwLiAgRG9uJ3QgZ2l2ZSBlcnJvcgoJICAgIG1lc3NhZ2UgZm9yIGVtcHR5IGNvbG9yIG5hbWUuICBEb24ndCB1c2UgJ3RfdmInIHdoaWxlIHRoZSBHVUkgaXMKCSAgICBzdGlsbCBzdGFydGluZyB1cC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9ndWkuYywgc3JjL21pc2MxLmMsIHNyYy91aS5jCgpQYXRjaCA2LjAuMjYxClByb2JsZW06ICAgIG5yMmNoYXIoKSBhbmQgY2hhcjJucigpIGRvbid0IHdvcmsgd2l0aCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIFVzZSAnZW5jb2RpbmcnIGZvciB0aGVzZSBmdW5jdGlvbnMuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMKClBhdGNoIDYuMC4yNjIgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogSU1FIGRvZXNuJ3Qgd29yayBwcm9wZXJseS4gIE9uSW1lQ29tcG9zaXRpb24oKSBpc24ndCB1c2VkCgkgICAgYXQgYWxsLgpTb2x1dGlvbjogICBBZGp1c3QgdmFyaW91cyB0aGluZ3MgZm9yIElNRS4KRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oLCBzcmMvZ3VpX3czMi5jLCBzcmMvbWJ5dGUuYywgc3JjL3Byb3RvL3VpLnBybywKCSAgICBzcmMvc3RydWN0cy5oLCBzcmMvdWkuYwoKUGF0Y2ggNi4wLjI2MwpQcm9ibGVtOiAgICBHVEs6IFdoZW4gYSBkaWFsb2cgaXMgY2xvc2VkIGJ5IHRoZSB3aW5kb3cgbWFuYWdlciwgVmltIGhhbmdzLgoJICAgIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pClNvbHV0aW9uOiAgIFVzZSBHVEtfV0lER0VUX0RSQVdBQkxFKCkgaW5zdGVhZCBvZiBHVEtfV0lER0VUX1ZJU0lCTEUoKS4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4wLjI2NApQcm9ibGVtOiAgICBUaGUgYW1vdW50IG9mIHZpcnR1YWwgbWVtb3J5IGlzIHVzZWQgdG8gaW5pdGlhbGl6ZSAnbWF4bWVtdG90JywKCSAgICB3aGljaCBtYXkgYmUgbXVjaCBtb3JlIHRoYW4gdGhlIGFtb3VudCBvZiBwaHlzaWNhbCBtZW1vcnksCgkgICAgcmVzdWx0aW5nIGluIGEgbG90IG9mIHN3YXBwaW5nLgpTb2x1dGlvbjogICBHZXQgdGhlIGFtb3VudCBvZiBwaHlzaWNhbCBtZW1vcnkgd2l0aCBzeXNjdGwoKSwgc3lzY29uZigpIG9yCgkgICAgc3lzaW5mbygpIHdoZW4gcG9zc2libGUuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvY29uZmlnLmguaW4sCgkgICAgc3JjL29zX3VuaXguYywgc3JjL29zX3VuaXguaAoKUGF0Y2ggNi4wLjI2NQpQcm9ibGVtOiAgICBXaW4zMjogVXNpbmcgYmFja3NwYWNlIHdoaWxlICdma21hcCcgaXMgc2V0IGNhdXNlcyBhIGNyYXNoLgoJICAgIChKYW1zaGlkIE9hc2ptb2hhKQpTb2x1dGlvbjogICBEb24ndCB0cnkgbWFwcGluZyBzcGVjaWFsIGtleXMuCkZpbGVzOgkgICAgc3JjL2ZhcnNpLmMKClBhdGNoIDYuMC4yNjYKUHJvYmxlbTogICAgVGhlIHJlbmFtZSgpIGZ1bmN0aW9uIGRlbGV0ZXMgdGhlIGZpbGUgaWYgdGhlIG9sZCBhbmQgdGhlIG5ldyBuYW1lCgkgICAgYXJlIHRoZSBzYW1lLiAoVm9sa2VyIEtpZWZlbCkKU29sdXRpb246ICAgRG9uJ3QgZG8gYW55dGhpbmcgaWYgdGhlIG5hbWVzIGFyZSBlcXVhbC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMC4yNjcKUHJvYmxlbTogICAgVVRGLTg6IEFsdGhvdWdoICdpc3ByaW50JyBzYXlzIGEgY2hhcmFjdGVyIGlzIHByaW50YWJsZSwKCSAgICB1dGZfY2hhcjJjZWxscygpIHN0aWxsIGNvbnNpZGVycyBpdCB1bnByaW50YWJsZS4KU29sdXRpb246ICAgVXNlIHZpbV9pc3ByaW50YygpIGZvciBjaGFyYWN0ZXJzIHVwdG8gMHgxMDAuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMC4yNjggKGV4dHJhKSAoZGVwZW5kcyBvbiBwYXRjaCA2LjAuMjU1KQpQcm9ibGVtOiAgICBXaW4zMjogQUNMIGNoZWNrIGNyYXNoZXMgd2hlbiB1c2luZyBmb3J3YXJkIHNsYXNoIGluIGZpbGUgbmFtZS4KU29sdXRpb246ICAgSW1wcm92ZSB0aGUgY2hlY2sgZm9yIHRoZSBwYXRoIGluIHRoZSBmaWxlIG5hbWUuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMC4yNjkKUHJvYmxlbTogICAgVW5wcmludGFibGUgY2hhcmFjdGVycyBpbiBhIGZpbGUgbmFtZSBtYXkgY2F1c2UgcHJvYmxlbXMgd2hlbgoJICAgIHVzaW5nIHRoZSAnc3RhdHVzbGluZScgb3B0aW9uIG9yIHdoZW4gJ2J1ZnR5cGUnIGlzICJub2ZpbGUiLgpTb2x1dGlvbjogICBjYWxsIHRyYW5zX2NoYXJhY3RlcnMoKSBmb3IgdGhlIHJlc3VsdGluZyBzdGF0dXNsaW5lLiAoWWFzdWhpcm8KCSAgICBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvc2NyZWVuLmMsIHNyYy9jaGFyc2V0LmMKClBhdGNoIDYuMC4yNzAgKGRlcGVuZHMgb24gcGF0Y2ggNi4wLjI2NykKUHJvYmxlbTogICAgQSB0YWIgY2F1c2VzIFVURi04IHRleHQgdG8gYmUgZGlzcGxheWVkIGluIHRoZSB3cm9uZyBwb3NpdGlvbi4KCSAgICAoUm9uIEFhcm9uKQpTb2x1dGlvbjogICBDb3JyZWN0IHV0Zl9jaGFyMmNlbGxzKCkgYWdhaW4uCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMWEuMDAxIChleHRyYSkKUHJvYmxlbTogICAgMzJiaXQgRE9TOiBjb3B5aW5nIHRleHQgdG8gdGhlIGNsaXBib2FyZCBtYXkgY2F1c2UgYSBjcmFzaC4KCSAgICAoSm9uYXRoYW4gRCBKb2huc3RvbikKU29sdXRpb246ICAgRG9uJ3QgY29weSBvbmUgYnl0ZSB0b28gbXVjaCBpbiBTZXRDbGlwYm9hcmREYXRhKCkuCkZpbGVzOgkgICAgc3JjL29zX21zZG9zLmMKClBhdGNoIDYuMWEuMDAyClByb2JsZW06ICAgIEdUSzogT24gc29tZSBjb25maWd1cmF0aW9ucywgd2hlbiBjbG9zaW5nIGEgZGlhbG9nIGZyb20gdGhlIHdpbmRvdwoJICAgIG1hbmFnZXIsIFZpbSBoYW5ncy4KU29sdXRpb246ICAgQ2F0Y2ggdGhlICJkZXN0cm95IiBzaWduYWwuIChBcmljIEJsdW1lcikKRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jCgpQYXRjaCA2LjFhLjAwMwpQcm9ibGVtOiAgICBNdWx0aS1ieXRlOiBXaXRoIFVURi04IGRvdWJsZS13aWRlIGNoYXIgYW5kICd2aXJ0dWFsZWRpdCcgc2V0OgoJICAgIHlhbmtpbmcgaW4gVmlzdWFsIG1vZGUgZG9lc24ndCBpbmNsdWRlIHRoZSBsYXN0IGJ5dGUuIChFcmljIExvbmcpClNvbHV0aW9uOiAgIERvbid0IGFkZCBhIHNwYWNlIGZvciBhIGRvdWJsZS13aWRlIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMWEuMDA0IChleHRyYSkKUHJvYmxlbTogICAgTUlOR1c6IHVuZGVmaW5lZCB0eXBlLiAoUm9uIEFhcm9uKQpTb2x1dGlvbjogICBNYWtlIEdldENvbXBvc2l0aW9uU3RyaW5nX2luVUNTMigpIHN0YXRpYy4KRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jLCBzcmMvcHJvdG8vZ3VpX3czMi5wcm8KClBhdGNoIDYuMWEuMDA1IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6ICI6aGFyZGNvcHkiIGRvZXNuJ3Qgd29yayBhZnRlciAiOmhhcmRjb3B5ISIuIChKb25hdGhhbgoJICAgIEpvaG5zdG9uKQpTb2x1dGlvbjogICBEb24ndCBrZWVwIHRoZSBkcml2ZXIgY29udGV4dCB3aGVuIHVzaW5nICI6aGFyZGNvcHkhIi4gKFZpbmNlCgkgICAgTmVncmkpCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMWEuMDA2ClByb2JsZW06ICAgIG11bHRpLWJ5dGU6IGFmdGVyIHNldHRpbmcgJ2VuY29kaW5nJyB0aGUgd2luZG93IHRpdGxlIG1pZ2h0IGJlCgkgICAgd3JvbmcuClNvbHV0aW9uOiAgIEZvcmNlIHJlc2V0dGluZyB0aGUgdGl0bGUuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjFhLjAwNwpQcm9ibGVtOiAgICBGaWxldHlwZSBkZXRlY3Rpb24gZm9yICIqLmluYyIgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBVc2UgYSAiOmxldCIgY29tbWFuZC4gKERhdmlkIFNjaHdlaWtlcnQpCkZpbGVzOgkgICAgcnVudGltZS9maWxldHlwZS52aW0KClBhdGNoIDYuMWEuMDA4IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IEFDTCBkZXRlY3Rpb24gZm9yIG5ldHdvcmsgc2hhcmVzIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgSW5jbHVkZSB0aGUgdHJhaWxpbmcgKGJhY2spc2xhc2ggaW4gdGhlIHJvb3QgcGF0aC4gKE1pa2UgV2lsbGlhbXMpCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMWEuMDA5ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIlxAPD0iIG9yICJcQDwhIiBpbiBhIHBhdHRlcm4sIGEgIlwxIiBtYXkgcmVmZXIgdG8gYSAoKQoJICAgIHBhcnQgdGhhdCBmb2xsb3dzLCBidXQgaXQgZ2VuZXJhdGVzIGFuIGVycm9yIG1lc3NhZ2UuClNvbHV0aW9uOiAgIEFsbG93IGEgZm9yd2FyZCByZWZlcmVuY2Ugd2hlbiB0aGVyZSBpcyBhIGZvbGxvd2luZyAiXEA8PSIgb3IKCSAgICAiXEA8ISIuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvcGF0dGVybi50eHQsIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4xYS4wMTAKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOmhlbHAiIGFuZCBvcGVuaW5nIGEgbmV3IHdpbmRvdywgdGhlIGFsdGVybmF0ZSBmaWxlCgkgICAgaXNuJ3Qgc2V0LgpTb2x1dGlvbjogICBTZXQgdGhlIGFsdGVybmF0ZSBmaWxlIHRvIHRoZSBwcmV2aW91c2x5IGVkaXRlZCBmaWxlLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMWEuMDExClByb2JsZW06ICAgIEdUSzogIjpzZXQgY289NzciLCBjaGFuZ2Ugd2lkdGggd2l0aCB0aGUgbW91c2UsICI6c2V0IGNvPTc3IgoJICAgIGRvZXNuJ3QgcmVzaXplIHRoZSB3aW5kb3cuIChEYXJyZW4gSGllYmVydCkKU29sdXRpb246ICAgU2V0IHRoZSBmb3JtIHNpemUgYWZ0ZXIgaGFuZGxpbmcgYSByZXNpemUgZXZlbnQuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMWEuMDEyClByb2JsZW06ICAgIEdUSzogVGhlIGZpbGUgYnJvd3NlciBhbHdheXMgcmV0dXJucyBhIGZ1bGwgcGF0aC4gKExvaG5lcikKU29sdXRpb246ICAgU2hvcnRlbiB0aGUgZmlsZSBuYW1lIGlmIHBvc3NpYmxlLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMWEuMDEzClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIj1+d29yZCIgaW4gJ2NpbmtleXMnIG9yICdpbmRlbnRrZXlzJywgdGhlIGNhc2Ugb2YgdGhlCgkgICAgbGFzdCBjaGFyYWN0ZXIgb2YgdGhlIHdvcmQgaXNuJ3QgaWdub3JlZC4gKFJhdWwgU2VndXJhIEFjZXZlZG8pClNvbHV0aW9uOiAgIElnbm9yZSBjYXNlIHdoZW4gY2hlY2tpbmcgdGhlIGxhc3QgdHlwZWQgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMWEuMDE0ClByb2JsZW06ICAgIEFmdGVyIHBhdGNoIDYuMWEuMDA2IGNhbid0IGNvbXBpbGUgd2l0aG91dCB0aGUgdGl0bGUgZmVhdHVyZS4KU29sdXRpb246ICAgQWRkIGFuICNpZmRlZi4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMWEuMDE1ClByb2JsZW06ICAgIE1TLVdpbmRvd3M6IFdoZW4gZXhwYW5kaW5nIGEgZmlsZSBuYW1lIHRoYXQgY29udGFpbnMgYSAnWycgb3IgJ3snCgkgICAgYW4gZXh0cmEgYmFja3NsYXNoIGlzIGluc2VydGVkLiAoUmF1bCBTZWd1cmEgQWNldmVkbykKU29sdXRpb246ICAgQXZvaWQgYWRkaW5nIHRoZSBiYWNrc2xhc2guCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMWEuMDE2ClByb2JsZW06ICAgIENvbXBsZXRpb24gYWZ0ZXIgIjpsYW5ndWFnZSIgZG9lc24ndCBpbmNsdWRlICJ0aW1lIi4gKFJhdWwgU2VndXJhCgkgICAgQWNldmVkbykKU29sdXRpb246ICAgQWRkIHRoZSBhbHRlcm5hdGl2ZSB0byB0aGUgY29tcGxldGlvbnMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMWEuMDE3ClByb2JsZW06ICAgIENsaWNraW5nIHRoZSBtb3VzZSBpbiB0aGUgdG9wIHJvdyBvZiBhIHdpbmRvdyB3aGVyZSB0aGUgZmlyc3QgbGluZQoJICAgIGRvZXNuJ3QgZml0IG1vdmVzIHRoZSBjdXJzb3IgdG8gdGhlIHdyb25nIGNvbHVtbi4KU29sdXRpb246ICAgQWRkIHRoZSBza2lwY29sIGFsc28gZm9yIHRoZSB0b3Agcm93IG9mIGEgd2luZG93LgpGaWxlczoJICAgIHNyYy91aS5jCgpQYXRjaCA2LjFhLjAxOApQcm9ibGVtOiAgICBXaGVuICdzY3JvbGxvZmYnIGlzIG9uZSBhbmQgdGhlIHdpbmRvdyBoZWlnaHQgaXMgb25lLCAiZ2oiIGNhbiBwdXQKCSAgICB0aGUgY3Vyc29yIGFib3ZlIHRoZSB3aW5kb3cuIChSYXVsIFNlZ3VyYSBBY2V2ZWRvKQpTb2x1dGlvbjogICBEb24ndCBsZXQgc2tpcGNvbCBiZWNvbWUgYmlnZ2VyIHRoYW4gdGhlIGN1cnNvciBjb2x1bW4uCkZpbGVzOgkgICAgc3JjL21vdmUuYwoKUGF0Y2ggNi4xYS4wMTkKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIGNvbXBvc2luZyBjaGFyYWN0ZXIgb24gdG9wIG9mIGFuIEFTQ0lJIGNoYXJhY3RlciwgdGhlCgkgICAgImwiIGNvbW1hbmQgY2xlYXJzIHRoZSBjb21wb3NpbmcgY2hhcmFjdGVyLiAgT25seSB3aGVuICdydWxlcicgYW5kCgkgICAgJ3Nob3djbWQnIGFyZSBvZmYuIChSYXBoYWVsIEZpbmtlbCkKU29sdXRpb246ICAgRG9uJ3QgbW92ZSB0aGUgY3Vyc29yIGJ5IGRpc3BsYXlpbmcgY2hhcmFjdGVycyB3aGVuIHRoZXJlIGFyZQoJICAgIGNvbXBvc2luZyBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xYS4wMjAKUHJvYmxlbTogICAgR1RLOiBhZnRlciBwYXRjaCA2LjFhLjAxMSByZXNpemluZyB3aXRoIHRoZSBtb3VzZSBkb2Vzbid0IGFsd2F5cwoJICAgIHdvcmsgd2VsbCBmb3Igc21hbGwgc2l6ZXMuIChBZHJpZW4gQmVhdSkKU29sdXRpb246ICAgVXNlIGFub3RoZXIgd2F5IHRvIGF2b2lkIHRoZSBwcm9ibGVtIHdpdGggIjpzZXQgY289NzciLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjFhLjAyMQpQcm9ibGVtOiAgICBTZXZlcmFsIFN5bnRheCBtZW51IGVudHJpZXMgYXJlIHdyb25nIG9yIGNvbmZ1c2luZy4KU29sdXRpb246ICAgUmVwaHJhc2UgYW5kIGNvcnJlY3QgdGhlIG1lbnUgZW50cmllcy4gKEFkcmllbiBCZWF1KQpGaWxlczoJICAgIHJ1bnRpbWUvbWFrZW1lbnUudmltLCBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjFhLjAyMgpQcm9ibGVtOiAgICBBIHRhZ3MgZmlsZSBtaWdodCBiZSB1c2VkIHR3aWNlIG9uIGNhc2UgaW5zZW5zaXRpdmUgc3lzdGVtcy4KCSAgICAoUmljayBTd2FudG9uKQpTb2x1dGlvbjogICBEb24ndCB1c2UgdGhlIHNhbWUgZmlsZSBuYW1lIHR3aWNlIGluIHRoZSBkZWZhdWx0IGZvciB0aGUgJ3RhZ3MnCgkgICAgb3B0aW9uLiAgSWdub3JlIGNhc2Ugd2hlbiBjb21wYXJpbmcgbmFtZXMgb2YgYWxyZWFkeSB2aXNpdGVkCgkgICAgZmlsZXMuCkZpbGVzOgkgICAgc3JjL21pc2MyLmMsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xYS4wMjMKUHJvYmxlbTogICAgV2hlbiBzdGFydGluZyB0aGUgR1VJIGdldCAiQyIgY2hhcmFjdGVycyBlY2hvZWQgaW4gdGhlIHRlcm1pbmFsLgpTb2x1dGlvbjogICBEb24ndCB0cnkgc2VuZGluZyBhIGNsZWFyLXNjcmVlbiBjb21tYW5kIHdoaWxlIHRoZSBHVUkgaXMgc3RhcnRpbmcKCSAgICB1cC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMWEuMDI0ClByb2JsZW06ICAgIEluIG90aGVyIGVkaXRvcnMgQ1RSTC1GIGlzIG9mdGVuIHVzZWQgZm9yIGEgZmluZCBkaWFsb2cuClNvbHV0aW9uOiAgIEluIGV2aW0gdXNlIENUUkwtRiBmb3IgdGhlIGZpbmQgZGlhbG9nLgpGaWxlczoJICAgIHJ1bnRpbWUvZXZpbS52aW0KClBhdGNoIDYuMWEuMDI1ClByb2JsZW06ICAgIFRoZSBjaG9pY2VzIGZvciB0aGUgZmlsZWZvcm1hdCBkaWFsb2cgY2FuJ3QgYmUgdHJhbnNsYXRlZC4KU29sdXRpb246ICAgQWRkIGc6bWVudXRyYW5zX2ZpbGVmb3JtYXRfY2hvaWNlcy4gKEFkcmllbiBCZWF1KQpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMWEuMDI2ClByb2JsZW06ICAgIEluZGVudGluZyBKYXZhIGZpbGVzIGlzIHdyb25nIHdpdGggInRocm93cyIsICJleHRlbmRzIiBhbmQKCSAgICAiaW1wbGVtZW50cyIgY2xhdXNlcy4KU29sdXRpb246ICAgVXBkYXRlIHRoZSBKYXZhIGluZGVudCBzY3JpcHQuCkZpbGVzOgkgICAgcnVudGltZS9pbmRlbnQvamF2YS52aW0KClBhdGNoIDYuMWEuMDI3ClByb2JsZW06ICAgIEEgZmV3IFN5bnRheCBtZW51IGVudHJpZXMgbWlzc2luZyBvciBpbmNvcnJlY3QuClNvbHV0aW9uOiAgIEFkZCBhbmQgY29ycmVjdCB0aGUgbWVudSBlbnRyaWVzLiAoQWRyaWVuIEJlYXUpCgkgICAgU2hvcnRlbiBhIGZldyBtZW51cyB0byBhdm9pZCB0aGV5IGJlY29tZSB0b28gbG9uZy4KRmlsZXM6CSAgICBydW50aW1lL21ha2VtZW51LnZpbSwgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4xYS4wMjgKUHJvYmxlbTogICAgWElNOiBwcm9ibGVtcyB3aXRoIGZlZWRiYWNrIGFuZCBzb21lIGlucHV0IG1ldGhvZHMuClNvbHV0aW9uOiAgIFVzZSBpY29udiBmb3IgY2FsY3VsYXRpbmcgdGhlIGNlbGxzLiAgUmVtb3ZlIHRoZSBxdWV1ZSBmb3IKCSAgICBrZXlfcHJlc3NfZXZlbnQgb25seSB3aGVuIHRleHQgd2FzIGNoYW5nZWQuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL21ieXRlLmMsIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xYS4wMjkKUHJvYmxlbTogICAgQWZ0ZXIgcGF0Y2ggNi4xYS4wMjggY2FuJ3QgY29tcGlsZSBHVEsgdmVyc2lvbiB3aXRoIFhJTSBidXQKCSAgICB3aXRob3V0IG11bHRpLWJ5dGUgY2hhcnMuClNvbHV0aW9uOiAgIEFkZCBhbiAjaWZkZWYuIChBc2Nod2luIE1hcnNtYW4pCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMWEuMDMwClByb2JsZW06ICAgIFdpdGggZG91YmxlLWJ5dGUgZW5jb2RpbmdzIHRvdXBwZXIoKSBhbmQgdG9sb3dlcigpIG1heSBoYXZlIHdyb25nCgkgICAgcmVzdWx0cy4KU29sdXRpb246ICAgU2tpcCBkb3VibGUtYnl0ZSBjaGFyYWN0ZXJzLiAoRXJpYyBMb25nKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMWEuMDMxClByb2JsZW06ICAgIEFjY2Vzc2luZyB0aGUgJ2JhbGxvb25kZWxheScgdmFyaWFibGUgbWF5IGNhdXNlIGEgY3Jhc2guClNvbHV0aW9uOiAgIE1ha2UgdGhlIHZhcmlhYmxlIGZvciAnYmFsbG9vbmRlbGF5JyBhIGxvbmcuIChPbGFmIFNlaWJlcnQpCkZpbGVzOgkgICAgc3JjL29wdGlvbi5oCgpQYXRjaCA2LjFhLjAzMiAoZXh0cmEpClByb2JsZW06ICAgIFNvbWUgbWVudSBmaWxlcyB1c2VkIGEgd3JvbmcgZW5jb2RpbmcgbmFtZSBmb3IgInNjcmlwdGVuY29kaW5nIi4KU29sdXRpb246ICAgTW92ZSB0aGUgdHJhbnNsYXRpb25zIHRvIGEgc2VwYXJhdGUgZmlsZSwgd2hpY2ggaXMgc291cmNlZCBhZnRlcgoJICAgIHNldHRpbmcgInNjcmlwdGVuY29kaW5nIi4KCSAgICBBbHNvIGFkZCBDemVjaCBtZW51IHRyYW5zbGF0aW9ucyBpbiBBU0NJSSBhbmQgdXBkYXRlIHRoZSBvdGhlcgoJICAgIGVuY29kaW5ncy4KRmlsZXM6CSAgICBydW50aW1lL2xhbmcvbWVudV9jc19jei5pc29fODg1OS0xLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9jc19jei5pc29fODg1OS0yLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9jemVjaF9jemVjaF9yZXB1YmxpYy4xMjUwLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9jemVjaF9jemVjaF9yZXB1YmxpYy4xMjUyLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9jemVjaF9jemVjaF9yZXB1YmxpYy5hc2NpaS52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfZGVfZGUuaXNvXzg4NTktMS52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfZGVfZGUubGF0aW4xLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9mcl9mci5pc29fODg1OS0xLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9mcl9mci5sYXRpbjEudmltLAoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X2ZyZW5jaF9mcmFuY2UuMTI1Mi52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfZ2VybWFuX2dlcm1hbnkuMTI1Mi52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfamFfanAuZXVjLWpwLnZpbSwKCSAgICBydW50aW1lL2xhbmcvbWVudV9qYV9qcC51dGYtOC52aW0sCgkgICAgcnVudGltZS9sYW5nL21lbnVfamFwYW5lc2VfamFwYW4uOTMyLnZpbQoKUGF0Y2ggNi4xYS4wMzMKUHJvYmxlbTogICAgWElNOiBkb2Vzbid0IHJlc2V0IGlucHV0IGNvbnRleHQuClNvbHV0aW9uOiAgIGNhbGwgeGltX3Jlc2V0KCkgd2l0aCBpbV9zZXRfYWN0aXZlKEZBTFNFKS4gKFRha3VoaXJvIE5pc2hpb2thKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjFhLjAzNCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgQUNMIGNoZWNrcyBmb3IgYSByZWFkb25seSBmaWxlIHN0aWxsIGRvbid0IHdvcmsgd2VsbC4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBBQ0wgY2hlY2tzLCBnbyBiYWNrIHRvIGhvdyBpdCB3b3JrZWQgaW4gVmltIDYuMC4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4xYS4wMzUKUHJvYmxlbTogICAgbXVsdGktYnl0ZTogV2hlbiB1c2luZyAiOnNoIiBpbiB0aGUgR1VJLCB0eXBlZCBhbmQgZGlzcGxheWVkCgkgICAgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGFyZSBub3QgaGFuZGxlZCBjb3JyZWN0bHkuClNvbHV0aW9uOiAgIERlYWwgd2l0aCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgdG8gYW5kIGZyb20gdGhlIHNoZWxsLiAoWWFzdWhpcm8KCSAgICBNYXRzdW1vdG8pICBBbHNvIGhhbmRsZSBVVEYtOCBjb21wb3NpbmcgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjFhLjAzNgpQcm9ibGVtOiAgICBHVEs6IHRoZSBzYXZlLXlvdXJzZWxmIGV2ZW50IHdhcyBub3QgaGFuZGxlZC4KU29sdXRpb246ICAgQ2F0Y2ggdGhlIHNhdmUteW91cnNlbGYgZXZlbnQgYW5kIHByZXNlcnZlIHN3YXAgZmlsZXMuIChOZWlsIEJpcmQpCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMWEuMDM3ClByb2JsZW06ICAgIFRoZSBNUy1XaW5kb3dzIGtleSBtYXBwaW5nIGRvZXNuJ3QgaW5jbHVkZSBDVFJMLVMgZm9yIHNhdmluZy4KCSAgICAoVmxhZCBTYW5kcmluaSkKU29sdXRpb246ICAgTWFwIENUUkwtUyB0byAiOnVwZGF0ZSIuCkZpbGVzOgkgICAgcnVudGltZS9tc3dpbi52aW0KClBhdGNoIDYuMWEuMDM4ClByb2JsZW06ICAgIFNvbGFyaXM6IEluY2x1ZGluZyBib3RoIHN5cy9zeXNjdGwuaCBhbmQgc3lzL3N5c2luZm8uaCBkb2Vzbid0CgkgICAgd29yay4gKEFudG9uaW8gQ29sb21ibykKU29sdXRpb246ICAgRG9uJ3QgaW5jbHVkZSBzeXMvc3lzaW5mby5oIHdoZW4gbm90IGNhbGxpbmcgc3lzaW5mbygpLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMWEuMDM5ClByb2JsZW06ICAgIE5vdCBhbGwgdmlzdWFsIGJhc2ljIGZpbGVzIGFyZSByZWNvZ25pemVkLgpTb2x1dGlvbjogICBBZGQgY2hlY2tzIHRvIGNhdGNoICouY3RsIGZpbGVzLiAoUmF1bCBTZWd1cmEgQWNldmVkbykKRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbQoKUGF0Y2ggNi4xYS4wNDAKUHJvYmxlbTogICAgQSAqLnBsIGZpbGUgaXMgcmVjb2duaXplZCBhcyBQZXJsLCBidXQgaXQgY291bGQgYmUgYSBwcm9sb2cgZmlsZS4KU29sdXRpb246ICAgQ2hlY2sgdGhlIGZpcnN0IG5vbi1lbXB0eSBsaW5lLiAoS29udHJhIEdlcmdlbHkpCkZpbGVzOgkgICAgcnVudGltZS9maWxldHlwZS52aW0KClBhdGNoIDYuMWEuMDQxClByb2JsZW06ICAgIFdoZW4gcHJlc3NpbmcgdGhlIGxlZnQgbW91c2UgYnV0dG9uIGluIHRoZSBjb21tYW5kIGxpbmUgYW5kIHRoZW0KCSAgICBtb3ZpbmcgdGhlIG1vdXNlIHVwd2FyZHMsIG5lYXJseSBhbGwgdGhlIHRleHQgaXMgc2VsZWN0ZWQuClNvbHV0aW9uOiAgIERvbid0IHRyeSBleHRlbmRpbmcgYSBtb2RlbGVzcyBzZWxlY3Rpb24gd2hlbiB0aGVyZSBpc24ndCBvbmUuCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMWEuMDQyClByb2JsZW06ICAgIFdoZW4gbWVyZ2luZyBmaWxlcywgIjpkaWZmcHV0IiBhbmQgIjpkaWZmZ2V0IiBhcmUgdXNlZCBhIGxvdCwgYnV0CgkgICAgdGhleSByZXF1aXJlIGEgbG90IG9mIHR5cGluZy4KU29sdXRpb246ICAgQWRkICJkcCIgZm9yICI6ZGlmZnB1dCIgYW5kICJkbyIgZm9yICI6ZGlmZmdldCIuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZGlmZi50eHQsIHNyYy9kaWZmLmMsIHNyYy9ub3JtYWwuYywgc3JjL3Byb3RvL2RpZmYucHJvCgoKUGF0Y2ggNi4xYi4wMDEgKGV4dHJhKQpQcm9ibGVtOiAgICBDaGVja2luZyBmb3Igd2lsZGNhcmRzIGluIGEgcGF0aCBkb2VzIG5vdCBoYW5kbGUgbXVsdGktYnl0ZQoJICAgIGNoYXJhY3RlcnMgd2l0aCBhIHRyYWlsIGJ5dGUgd2hpY2ggaXMgYSB3aWxkY2FyZC4KU29sdXRpb246ICAgSGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBjb3JyZWN0bHkuIChNdXJhb2thIFRhcm8pCkZpbGVzOgkgICAgc3JjL29zX2FtaWdhLmMsIHNyYy9vc19tYWMuYywgc3JjL29zX21zZG9zLmMsIHNyYy9vc19tc3dpbi5jLAoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMWIuMDAyClByb2JsZW06ICAgIEEgcmVnZXhwIHRoYXQgZW5kcyBpbiAiXHsiIGlzIG5vdCBmbGFnZ2VkIGFzIGFuIGVycm9yLiAgTWF5IGNhdXNlCgkgICAgYSBzdGFjayBvdmVyZmxvdyB3aGVuICdpbmNzZWFyY2gnIGlzIHNldC4gKEdlcmhhcmQgSG9jaGhvbHplcikKU29sdXRpb246ICAgSGFuZGxlIGEgbWlzc2luZyAifSIgYXMgYW4gZXJyb3IuCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjFiLjAwMyAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBSSVNDIE9TIEdVSSBkb2Vzbid0IGNvbXBpbGUuClNvbHV0aW9uOiAgIEluY2x1ZGUgY2hhbmdlcyBzaW5jZSBWaW0gNS43LiAoQW5keSBXaW5nYXRlKQpGaWxlczoJICAgIHNyYy9NYWtlX3JvLm1haywgc3JjL2d1aV9yaXNjb3MuYywgc3JjL29zX3Jpc2Nvcy5jLAoJICAgIHNyYy9vc19yaXNjb3MuaCwgc3JjL3Byb3RvL2d1aV9yaXNjb3MucHJvCgpQYXRjaCA2LjFiLjAwNApQcm9ibGVtOiAgICBjb2woIic+IikgcmV0dXJucyBhIG5lZ2F0aXZlIG51bWJlciBmb3IgbGluZXdpc2Ugc2VsZWN0aW9uLiAoTmVpbAoJICAgIEJpcmQpClNvbHV0aW9uOiAgIERvbid0IGFkZCBvbmUgdG8gTUFYQ09MLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMWIuMDA1ClByb2JsZW06ICAgIFVzaW5nIGEgc2VhcmNoIHBhdHRlcm4gdGhhdCBjYXVzZXMgYW4gb3V0LW9mLXN0YWNrIGVycm9yIHdoaWxlCgkgICAgJ2hsc2VhcmNoJyBpcyBzZXQga2VlcHMgZ2l2aW5nIHRoZSBoaXQtRW50ZXIgcHJvbXB0LgoJICAgIEEgc2VhcmNoIHBhdHRlcm4gdGhhdCB0YWtlcyBhIGxvbmcgdGltZSBkZWxheXMgdHlwaW5nIHdoZW4KCSAgICAnaW5jc2VhcmNoJyBpcyBzZXQuClNvbHV0aW9uOiAgIFN0b3AgJ2hsc2VhcmNoJyBoaWdobGlnaHRpbmcgd2hlbiB0aGUgcmVnZXhwIGNhdXNlcyBhbiBlcnJvci4KCSAgICBTdG9wIHNlYXJjaGluZyBmb3IgJ2luY3NlYXJjaCcgd2hlbiBhIGNoYXJhY3RlciBpcyB0eXBlZC4KRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oLCBzcmMvbWVzc2FnZS5jLCBzcmMvc2NyZWVuLmMsIHNyYy9zZWFyY2guYywKCSAgICBzcmMvdmltLmgKClBhdGNoIDYuMWIuMDA2ClByb2JsZW06ICAgIFdoZW4gZW50ZXJpbmcgYSBjb21wb3NpbmcgY2hhcmFjdGVyIG9uIHRoZSBjb21tYW5kIGxpbmUgd2l0aAoJICAgIENUUkwtViwgdGhlIHRleHQgaXNuJ3QgcmVkcmF3biBjb3JyZWN0bHkuClNvbHV0aW9uOiAgIFJlZHJhdyB0aGUgdGV4dCB1bmRlciBhbmQgYWZ0ZXIgdGhlIGN1cnNvci4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4xYi4wMDcKUHJvYmxlbTogICAgV2hlbiB0aGUgY3Vyc29yIGlzIGluIHRoZSB3aGl0ZSBzcGFjZSBiZXR3ZWVuIHR3byBzZW50ZW5jZXMsICJkaXMiCgkgICAgZGVsZXRlcyB0aGUgZmlyc3QgY2hhcmFjdGVyIG9mIHRoZSBmb2xsb3dpbmcgc2VudGVuY2UsICJkYXMiCgkgICAgZGVsZXRlcyBhIHNwYWNlIGFmdGVyIHRoZSBzZW50ZW5jZS4KU29sdXRpb246ICAgQmFja3VwIHRoZSBjdXJzb3Igb25lIGNoYXJhY3RlciBpbiB0aGVzZSBzaXR1YXRpb25zLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4xYi4wMDgKUHJvYmxlbTogICAgKi54c2wgZmlsZXMgYXJlIG5vdCByZWNvZ25pemVkIGFzIHhzbHQgYnV0IHhtbC4KCSAgICBNb25rIGZpbGVzIGFyZSBub3QgcmVjb2duaXplZC4KU29sdXRpb246ICAgRGVsZXRlIHRoZSBkdXBsaWNhdGUgbGluZSBmb3IgKi54c2wuIChKb2hhbm5lcyBaZWxsbmVyKQoJICAgIFJlY29nbml6ZSBtb25rIGZpbGVzLgpGaWxlczoJICAgIHJ1bnRpbWUvZmlsZXR5cGUudmltCgpQYXRjaCA2LjFiLjAwOQpQcm9ibGVtOiAgICBDYW4ndCBhbHdheXMgY29tcGlsZSBzbWFsbCBmZWF0dXJlcyBhbmQgdGhlbiBhZGRpbmcgZXZhbCBmZWF0dXJlLAoJICAgICJzYW5kYm94IiBpcyB1bmRlZmluZWQuIChBeGVsIEtpZWxob3JuKQpTb2x1dGlvbjogICBBbHdheXMgZGVmaW5lICJzYW5kYm94IiB3aGVuIHRoZSBldmFsIGZlYXR1cmUgaXMgdXNlZC4KRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oCgpQYXRjaCA2LjFiLjAxMCAoZXh0cmEpClByb2JsZW06ICAgIFdoZW4gY29tcGlsaW5nIGd2aW1leHQuY3BwIHdpdGggTVNWQyA0LjIgZ2V0IGEgbnVtYmVyIG9mIHdhcm5pbmdzLgpTb2x1dGlvbjogICBDaGFuZ2UgInRydWUiIHRvICJUUlVFIi4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIEd2aW1FeHQvZ3ZpbWV4dC5jcHAKClBhdGNoIDYuMWIuMDExClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSB2ZXJ5IGxvbmcgc3RyaW5nIGZvciBjb25maXJtKCksIGNhbid0IHF1aXQgdGhlCgkgICAgZGlzcGxheWluZyBhdCB0aGUgbW9yZSBwcm9tcHQuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgSnVtcCB0byB0aGUgZW5kIG9mIHRoZSBtZXNzYWdlIHRvIHNob3cgdGhlIGNob2ljZXMuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4xYi4wMTIKUHJvYmxlbTogICAgTXVsdGktYnl0ZTogV2hlbiAnc2hvd2JyZWFrJyBpcyBzZXQgYW5kIGEgZG91YmxlLXdpZGUgY2hhcmFjdGVyCgkgICAgZG9lc24ndCBmaXQgYXQgdGhlIHJpZ2h0IHdpbmRvdyBlZGdlIHRoZSBjdXJzb3IgZ2V0cyBzdHVjayB0aGVyZS4KCSAgICBVc2luZyBjdXJzb3ItbGVmdCBnZXRzIHN0dWNrIHdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQuICAoRXJpYwoJICAgIExvbmcpClNvbHV0aW9uOiAgIEZpeCB0aGUgd2F5IHRoZSBleHRyYSAiPiIgY2hhcmFjdGVyIGlzIGNvdW50ZWQgd2hlbiAnc2hvd2JyZWFrJyBpcwoJICAgIHNldC4gIERvbid0IGNvcnJlY3QgY3Vyc29yIGZvciB2aXJ0dWFsIGVkaXRpbmcgb24gYSBkb3VibGUtd2lkZQoJICAgIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvZWRpdC5jCgpQYXRjaCA2LjFiLjAxMwpQcm9ibGVtOiAgICBBIHVzZXIgY29tbWFuZCB0aGF0IHBhcnRseSBtYXRjaGVzIHdpdGggYSBidWZmZXItbG9jYWwgdXNlcgoJICAgIGNvbW1hbmQgYW5kIG1hdGNoZXMgZnVsbCB3aXRoIGEgZ2xvYmFsIHVzZXIgY29tbWFuZCB1bm5lY2Vzc2FyaWx5CgkgICAgZ2l2ZXMgYW4gJ2FtYmlndW91cyBjb21tYW5kJyBlcnJvci4KU29sdXRpb246ICAgRmluZCB0aGUgZnVsbCBnbG9iYWwgbWF0Y2ggZXZlbiBhZnRlciBhIHBhcnRseSBsb2NhbCBtYXRjaC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xYi4wMTQKUHJvYmxlbTogICAgRUJDRElDOiBzd2l0Y2hpbmcgbW91c2UgZXZlbnRzIG9mZiBjYXVzZXMgZ2FyYmFnZSBvbiBzY3JlZW4uCgkgICAgUG9zaXRpb25pbmcgdGhlIGN1cnNvciBpbiB0aGUgR1VJIGNhdXNlcyBnYXJiYWdlLgpTb2x1dGlvbjogICBJbnNlcnQgYW4gRVNDIGluIHRoZSB0ZXJtaW5hbCBjb2RlLiAoUmFsZiBTY2hhbmRsKQoJICAgIFVzZSAiXGIiIGluc3RlYWQgb2YgIlwwMTAiIGZvciBLU19MRS4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jLCBzcmMvdGVybS5jCgpQYXRjaCA2LjFiLjAxNQpQcm9ibGVtOiAgICBWaW10dXRvciBoYXMgYSB0eXBvLiAgR2V0IGEgd2FybmluZyBmb3IgInRlbXBmaWxlIiBpZiBpdAoJICAgIGRvZXNuJ3QgZXhpc3QuClNvbHV0aW9uOiAgIE1vdmUgYSBxdW90ZSB0byB0aGUgZW5kIG9mIGEgbGluZS4gKE1heCBJc2NoZW5rbykKCSAgICBVc2UgIm1rdGVtcCIgZmlyc3QsIG1vcmUgc3lzdGVtcyBoYXZlIGl0LgpGaWxlczoJICAgIHNyYy92aW10dXRvcgoKUGF0Y2ggNi4xYi4wMTYKUHJvYmxlbTogICAgR1RLOiBsb2FkaW5nIGEgZm9udHNldCB0aGF0IHdvcmtzIHBhcnRseSwgVmltIG1pZ2h0IGhhbmcgb3IgY3Jhc2guClNvbHV0aW9uOiAgIEF2b2lkIHRoYXQgY2hhcl93aWR0aCBiZWNvbWVzIHplcm8uIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMWIuMDE3ClByb2JsZW06ICAgIEdVSTogV2hlbiB1c2luZyAiOnNoZWxsIiBhbmQgdGhlcmUgaXMgYSBiZWVwLCBub3RoaW5nIGhhcHBlbnMuClNvbHV0aW9uOiAgIENhbGwgdmltX2JlZXAoKSB0byBwcm9kdWNlIHRoZSBiZWVwIGZyb20gdGhlIHNoZWxsLiAoWWFzdWhpcm8KCSAgICBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4xYi4wMTggKGRlcGVuZHMgb24gNi4xYi4wMDYpClByb2JsZW06ICAgIFdoZW4gZW50ZXJpbmcgdGhlIGVuY3J5cHRpb24ga2V5LCBzcGVjaWFsIGtleXMgbWF5IHN0aWxsIHJldmVhbAoJICAgIHRoZSB0eXBlZCBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBNYWtlIHN1cmUgc3RhcnMgYXJlIHVzZWQgb3Igbm90aGluZyBpcyBzaG93biBpbiBhbGwgY2FzZXMuCkZpbGVzOgkgICAgc3JjL2RpZ3JhcGguYywgc3JjL2dldGNoYXIuYywgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMWIuMDE5IChkZXBlbmRzIG9uIDYuMWIuMDA1KQpQcm9ibGVtOiAgICBBIHNlYXJjaCBwYXR0ZXJuIHRoYXQgdGFrZXMgYSBsb25nIHRpbWUgc2xvd3MgZG93biB0eXBpbmcgd2hlbgoJICAgICdpbmNzZWFyY2gnIGlzIHNldC4KU29sdXRpb246ICAgUGFzcyBTRUFSQ0hfUEVFSyB0byBkb3NlYXJjaCgpLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjFiLjAyMApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHRoZSBtYXRjaGl0IHBsdWdpbiwgIiUiIGZpbmRzIGEgbWF0Y2ggb24gdGhlICJlbmQiIG9mIGEKCSAgICAiOnN5bnRheCByZWdpb24iIGNvbW1hbmQgaW4gVmltIHNjcmlwdHMuClNvbHV0aW9uOiAgIFNraXAgb3ZlciAiOnN5bnRheCByZWdpb24iIGNvbW1hbmRzIGJ5IHNldHRpbmcgYjptYXRjaF9za2lwLgpGaWxlczoJICAgIHJ1bnRpbWUvZnRwbHVnaW4vdmltLnZpbQoKUGF0Y2ggNi4xYi4wMjEKUHJvYmxlbTogICAgd2hlbiAnbW91c2Vmb2N1cycgaXMgc2V0LCBDVFJMLVcgQ1RSTC1dIHNvbWV0aW1lcyBkb2Vzbid0IHdhcnAgdGhlCgkgICAgcG9pbnRlciB0byB0aGUgbmV3IHdpbmRvdy4gKFJvYmVydCBXZWJiKQpTb2x1dGlvbjogICBEb24ndCByZXNldCBuZWVkX21vdXNlX2NvcnJlY3Qgd2hlbiBjaGVja2luZyB0aGUgdGltZXN0YW1wIG9mIGEKCSAgICBmaWxlLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xYi4wMjIKUHJvYmxlbTogICAgV2l0aCBsb3RzIG9mIGZvbGRzICJqIiBkb2VzIG5vdCBvYmV5ICdzY3JvbGxvZmYnIHByb3Blcmx5LgoJICAgIChTcmluYXRoIEF2YWRoYW51bGEpClNvbHV0aW9uOiAgIEdvIHRvIGVuZCBvZiB0aGUgZm9sZCBiZWZvcmUgY291bnRpbmcgY29udGV4dCBsaW5lcy4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjFiLjAyMwpQcm9ibGVtOiAgICBPbiBNUy1XaW5kb3dzIHN5c3RlbSgpIG1heSBjYXVzZSBjaGVja2luZyB0aW1lc3RhbXBzLCBiZWNhdXNlIFZpbQoJICAgIGxvc2VzIGFuZCBnYWlucyBpbnB1dCBmb2N1cywgd2hpbGUgdGhpcyBkb2Vzbid0IGhhcHBlbiBvbiBVbml4LgpTb2x1dGlvbjogICBEb24ndCBjaGVjayB0aW1lc3RhbXBzIHdoaWxlIHN5c3RlbSgpIGlzIGJ1c3kuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9maWxlaW8uYywgc3JjL2dsb2JhbHMuaCwgc3JjL21pc2MxLmMKClBhdGNoIDYuMWIuMDI0IChleHRyYSkKUHJvYmxlbTogICAgR2V0dGV4dCAwLjExIGNvbXBsYWlucyB0aGF0ICJzamlzIiBpcyBub3QgYSBzdGFuZGFyZCBuYW1lLgpTb2x1dGlvbjogICBVc2UgImNwOTMyIiBpbnN0ZWFkLgpGaWxlczoJICAgIHNyYy9wby9zamlzY29yci5jCgpQYXRjaCA2LjFiLjAyNSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIGNsb3NpbmcgZ3ZpbSB3aGlsZSBpdCBpcyBtaW5pbWl6ZWQgIGFuZCBoYXMgYSBjaGFuZ2VkCgkgICAgZmlsZSwgdGhlIGZpbGUtY2hhbmdlZCBkaWFsb2cgcG9wcyB1cCBpbiBhIGNvcm5lciBvZiB0aGUgc2NyZWVuLgpTb2x1dGlvbjogICBQdXQgdGhlIGRpYWxvZyBpbiB0aGUgbWlkZGxlIG9mIHRoZSBzY3JlZW4uCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4xYi4wMjYKUHJvYmxlbTogICAgV2hlbiAnZGlmZm9wdCcgY29udGFpbnMgJ2l3aGl0ZScgYnV0IG5vdCAnaWNhc2UnOiBkaWZmZXJlbmNlcyBpbgoJICAgIGNhc2UgYXJlIG5vdCBoaWdobGlnaHRlZCBwcm9wZXJseS4gKEdlcmhhcmQgSG9jaGhvbHplcikKU29sdXRpb246ICAgRG9uJ3QgaWdub3JlIGNhc2Ugd2hlbiBpZ25vcmluZyB3aGl0ZSBzcGFjZSBkaWZmZXJlbmNlcy4KRmlsZXM6CSAgICBzcmMvZGlmZi5jCgpQYXRjaCA2LjFiLjAyNwpQcm9ibGVtOiAgICAidmltIC0tcmVtb3RlICsiIG1heSBjYXVzZSBhIGNyYXNoLgpTb2x1dGlvbjogICBDaGVjayBmb3IgbWlzc2luZyBmaWxlIG5hbWUgYXJndW1lbnQuIChNYXJ0aW4gS2FobGVydCkKRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjFiLjAyOCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjE2OiBDYW4ndCBjb21waWxlIGFmdGVyIHBhdGNoIDYuMWIuMDI1LgpTb2x1dGlvbjogICBBZGQgY29kZSBzcGVjaWZpY2FsbHkgZm9yIFdpbjE2LiAoVmluY2UgTmVncmkpCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4xYi4wMjkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gYSBkaXJlY3Rvcnkgb24gYW4gTlRGUyBwYXJ0aXRpb24gaXMgcmVhZC9leGVjdXRlIChubwoJICAgIGRlbGV0ZSxtb2RpZnksd3JpdGUpIGFuZCB0aGUgZmlsZSBoYXMgbW9kaWZ5IHJpZ2h0cywgdHJ5aW5nIHRvCgkgICAgd3JpdGUgdGhlIGZpbGUgZGVsZXRlcyBpdC4gIE1ha2luZyB0aGUgZmlsZSByZWFkL3dyaXRlL2V4ZWN1dGUKCSAgICAobm90IGRlbGV0ZSkgc29sdmVzIGl0LiAoTWFyayBDYW51cCkKU29sdXRpb246ICAgVXNlIHRoZSBVbml4IGNvZGUgdG8gY2hlY2sgZm9yIGEgd3JpdGFibGUgZGlyZWN0b3J5LiAgSWYgbm90LCB0aGVuCgkgICAgbWFrZSBhIGJhY2t1cCBjb3B5IGFuZCBvdmVyd3JpdGUgdGhlIGZpbGUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjFiLjAzMCAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogc21hbGwgbWlzdGFrZSBpbiB0aGUgYnVpbGQgc2NyaXB0IGFuZCBwcm90b3R5cGVzLgpTb2x1dGlvbjogICBGaXggdGhlIGJ1aWxkIHNjcmlwdCBhbmQgYWRkIHRoZSBwcm90b3R5cGVzLiAoQXhlbCBLaWVsaG9ybikKRmlsZXM6CSAgICBzcmMvb3NfbWFjLmJ1aWxkLCBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjFiLjAzMSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyIEdVSTogIjpzZXQgZ3VpZm9udD0qIiBkb2Vzbid0IHNldCAnZ3VpZm9udCcgdG8gdGhlIHJlc3VsdGluZwoJICAgIGZvbnQgbmFtZS4gKFZsYWQgU2FuZHJpbmkpClNvbHV0aW9uOiAgIFB1dCB0aGUgY29kZSBiYWNrIGluIGd1aV9tY2hfaW5pdF9mb250KCkgdG8gZm9ybSB0aGUgZm9udCBuYW1lIG91dAoJICAgIG9mIHRoZSBsb2dmb250LgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMWIuMDMyClByb2JsZW06ICAgIEF0aGVuYTogU2V0dGluZyBhIGNvbG9yIHNjaGVtZSBiZWZvcmUgdGhlIEdVSSBoYXMgc3RhcnRlZCBjYXVzZXMgYQoJICAgIGNyYXNoLiAoVG9kZCBCbHVtZXIpClNvbHV0aW9uOiAgIERvbid0IHRyeSB1c2luZyBjb2xvciBuYW1lcyB0aGF0IGhhdmVuJ3QgYmVlbiBzZXQgeWV0LgpGaWxlczoJICAgIHNyYy9ndWlfYXRoZW5hLmMKClBhdGNoIDYuMWIuMDMzClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBjb3VudCBhZnRlciBhICI6cyIgY29tbWFuZCBtYXkgZ2V0IG1sX2dldCBlcnJvcnMuCgkgICAgKERpZXRtYXIgTGFuZykKU29sdXRpb246ICAgQ2hlY2sgdGhhdCB0aGUgcmVzdWx0aW5nIHJhbmdlIGRvZXMgbm90IGdvIHBhc3QgdGhlIGVuZCBvZiB0aGUKCSAgICBidWZmZXIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xYi4wMzQKUHJvYmxlbTogICAgQWZ0ZXIgc291cmNpbmcgbXN3aW4udmltLCB3aGVuIHVzaW5nIDxDLVMtUmlnaHQ+IGFmdGVyCgkgICAgYXV0by1pbmRlbnRpbmcgYW5kIHRoZW4gPERlbD4sIGdldCB3YXJuaW5nIGZvciBhbGxvY2F0aW5nCgkgICAgcmlkaWN1bG91cyBhbW91bnQgb2YgbWVtb3J5LiAoRGF2ZSBEZWxncmVjbykKU29sdXRpb246ICAgQWRqdXN0IHRoZSBzdGFydCBvZiB0aGUgVmlzdWFsIGFyZWEgd2hlbiBkZWxldGluZyB0aGUgYXV0by1pbmRlbnQuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xYi4wMzUKUHJvYmxlbTogICAgV2hlbiB1c2luZyBldmltLCBkcm9wcGluZyBhIGZpbGUgb24gVmltIGFuZCB0aGVuIGRvdWJsZSBjbGlja2luZwoJICAgIG9uIGEgd29yZCwgaXQgaXMgY2hhbmdlZCB0byAiaSIuIChNZXJsaW4gSGFuc2VuKQpTb2x1dGlvbjogICBSZXNldCBuZWVkX3N0YXJ0X2luc2VydG1vZGUgYWZ0ZXIgZWRpdGluZyB0aGUgZmlsZS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpWRVJTSU9OIDYuMgkJCQkJCSp2ZXJzaW9uLTYuMioKClRoaXMgc2VjdGlvbiBpcyBhYm91dCBpbXByb3ZlbWVudHMgbWFkZSBiZXR3ZWVuIHZlcnNpb24gNi4xIGFuZCA2LjIuCgpUaGlzIGlzIG1haW5seSBhIGJ1Zy1maXggcmVsZWFzZS4gIFRoZXJlIGFyZSBhbHNvIGEgZmV3IG5ldyBmZWF0dXJlcy4KCk1haW4gbmV3IGZlYXR1cmVzOgotIFN1cHBvcnQgZm9yIEdUSyAyLiAoRGFuaWVsIEVsc3RuZXIpCi0gU3VwcG9ydCBmb3IgZWRpdGluZyBBcmFiaWMgdGV4dC4gKE5hZGltIFNoYWlrbGkgJiBJc2FtIEJheWF6aWRpKQotICI6dHJ5IiBjb21tYW5kIGFuZCBleGNlcHRpb24gaGFuZGxpbmcuIChTZXJ2YXRpdXMgQnJhbmR0KQotIFN1cHBvcnQgZm9yIHRoZSBuZVh0YXcgR1VJIHRvb2xraXQgKG1vc3RseSBsaWtlIEF0aGVuYSkuIChBbGV4ZXkgRnJvbG9mZikKLSBDc2NvcGUgc3VwcG9ydCBmb3IgV2luMzIuIChLaG9yZXYgU2VyZ2V5KQotIFN1cHBvcnQgZm9yIFBvc3RTY3JpcHQgcHJpbnRpbmcgaW4gdmFyaW91cyA4LWJpdCBlbmNvZGluZ3MuIChNaWtlIFdpbGxpYW1zKQoKCkNoYW5nZWQJCQkJCQkJKmNoYW5nZWQtNi4yKgotLS0tLS0tCgpSZW1vdmVkIHRoZSBzY2hlbWUgaW5kZW50IGZpbGUsIHRoZSBpbnRlcm5hbCBMaXNwIGluZGVudGluZyB3b3JrcyB3ZWxsIG5vdy4KCk1vdmVkIHRoZSBHdmltRVh0LCBPbGVWaW0gYW5kIFZpc1ZpbSBkaXJlY3RvcmllcyBpbnRvIHRoZSAic3JjIiBkaXJlY3RvcnkuClRoaXMgaXMgbW9yZSBjb25zaXN0ZW50IHdpdGggaG93IHh4ZCBpcyBoYW5kbGVkLgoKVGhlIFZpc1ZpbS5kbGwgZmlsZSBpcyBpbnN0YWxsZWQgaW4gdGhlIHRvcCBkaXJlY3RvcnksIG5leHQgdG8gZ3ZpbWV4dC5kbGwsCmluc3RlYWQgb2YgaW4gYSBzdWJkaXJlY3RvcnkgIlZpc1ZpbSIuICBGaXhlcyB0aGF0IE5TSVMgd2FzIHVuaW5zdGFsbGluZyBpdApmcm9tIHRoZSB3cm9uZyBkaXJlY3RvcnkuCgpSZW1vdmVkIHRoZSBhcnQgaW5kZW50IGZpbGUsIGl0IGRpZG4ndCBkbyBhbnl0aGluZy4KCnN1Ym1hdGNoKCkgcmV0dXJuZWQgbGluZSBicmVha3Mgd2l0aCBDUiBpbnN0ZWFkIG9mIExGLgoKQ2hhbmdlZCB0aGUgV2luMzIgTWFrZWZpbGVzIHRvIGJlY29tZSBtb3JlIHVuaWZvcm0gYW5kIGNvbXBpbGUgZ3ZpbWV4dC5kbGwuCihEYW4gU2hhcnApCgonY2luZGVudCc6IEFsaWduIGEgIi8vIiBjb21tZW50IHdpdGggYSAiLy8iIGNvbW1lbnQgaW4gYSBwcmV2aW91cyBsaW5lLgooSGVsbXV0IFN0aWVnbGVyKQoKUHJldmlvdXNseSBvbmx5IGZvciB4dGVybS1saWtlIHRlcm1pbmFscyBwYXJlbnQgd2lkZ2V0cyB3ZXJlIGZvbGxvd2VkIHRvIGZpbmQKdGhlIHRpdGxlIGFuZCBpY29uIGxhYmVsLiAgTm93IGRvIHRoaXMgZm9yIGFsbCB0ZXJtaW5hbCBlbXVsYXRvcnMuCgpNYWRlIGl0IHBvc3NpYmxlIHRvIHJlY29nbml6ZSBiYWNrc2xhc2hlcyBmb3IgIiUiIG1hdGNoaW5nLiAgVGhlICdNJyBmbGFnIGluCidjcG9wdGlvbnMnIGRpc2FibGVzIGl0LiAoSGFha29uIFJpaXNlcikKClJlbW92ZWQgdGhlIE1ha2VfdGNjLm1hayBtYWtlZmlsZSBmb3IgVHVyYm8gQy4gIEl0IGRpZG4ndCB3b3JrIGFuZCB3ZSBwcm9iYWJseQpjYW4ndCBtYWtlIGl0IHdvcmsgKHRoZSBjb21waWxlciBydW5zIG91dCBvZiBtZW1vcnkpLgoKRXZlbiB0aG91Z2ggdGhlIGRvY3VtZW50YXRpb24gcmVmZXJzIHRvIGtleXdvcmRzLCAiWyBDVFJMLUQiIHdhcyB1c2luZwonaXNpZGVudCcgdG8gZmluZCBtYXRjaGVzLiAgQ2hhbmdlZCBpdCB0byB1c2UgJ2lza2V5d29yZCcuICBBbHNvIGFwcGxpZXMgdG8Kb3RoZXIgY29tbWFuZHMgdGhhdCBzZWFyY2ggZm9yIGRlZmluZWQgd29yZHMgaW4gaW5jbHVkZWQgZmlsZXMgc3VjaCBhcwoiOmRzZWFyY2giLCAiW0QiIGFuZCAiW2QiLgoKTWFkZSAna2V5d29yZHByZycgZ2xvYmFsLWxvY2FsLiAoQ2hyaXN0aWFuIFJvYmluc29uKQoKRW5hYmxlZCB0aGUgTmV0YmVhbnMgaW50ZXJmYWNlIGJ5IGRlZmF1bHQuICBSZXZlcnNlZCB0aGUgY29uZmlndXJlIGFyZ3VtZW50CmZyb20gIi0tZW5hYmxlLW5ldGJlYW5zIiB0byAiLS1kaXNhYmxlLW5ldGJlYW5zIi4KCgpBZGRlZAkJCQkJCQkqYWRkZWQtNi4yKgotLS0tLQoKTmV3IG9wdGlvbnM6CgknYXJhYmljJwoJJ2FyYWJpY3NoYXBlJwoJJ2FtYml3aWR0aCcKCSdhdXRvY2hkaXInCgknY2FzZW1hcCcKCSdjb3B5aW5kZW50JwoJJ2NzY29wZXF1aWNrZml4JwoJJ3ByZXNlcnZlaW5kZW50JwoJJ3ByaW50ZW5jb2RpbmcnCgkncmlnaHRsZWZ0Y21kJwoJJ3Rlcm1iaWRpJwoJJ3Rvb2xiYXJpY29uc2l6ZScKCSd3aW5maXhoZWlnaHQnCgpOZXcga2V5bWFwczoKCVNlcmJpYW4gKEFsZWtzYW5kYXIgVmVzZWxpbm92aWMpCglDaGluZXNlIFBpbnlpbiAoRnJlZHJpayBSb3ViZXJ0KQoJRXNwZXJhbnRvIChBbnRvaW5lIEouIE1lY2hlbHluY2spCgpOZXcgc3ludGF4IGZpbGVzOgoJVmFsZ3JpbmQgKFJvZ2VyIEx1ZXRoaSkKCVNtYXJ0eSB0ZW1wbGF0ZSAoTWFuZnJlZCBTdGllbnN0cmEpCglNeVNRTCAoS2VubmV0aCBQcm9ub3ZpY2kpCglSb2NrTGludXggcGFja2FnZSBkZXNjcmlwdGlvbiAoUGlvdHIgRXNkZW4tVGVtcHNraSkKCU1NSVggKERpcmsgSHVlc2tlbikKCWdrcmVsbG1yYyAoRGF2aWQgTmVjYXMpCglUaWxkZSAoVG9iaWFzIFJ1bmR0cm9tKQoJTG9ndGFsayAoUGF1bG8gTW91cmEpCglQTFAgKEp1ZXJkIFdhYWxib2VyKQoJZnZ3bTJtNCAoRGF2aWQgTmVjYXMpCglJUGZpbHRlciAoSGVuZHJpayBTY2hvbHopCglmc3RhYiAoUmFkdSBEaW5laXUpCglRdWFrZSAoTmlrb2xhaSBXZWlidWxsKQoJT2NjYW0gKE1hcmlvIFNjaHdlaWdsZXIpCglscGMgKFNoaXpodSBQYW4pCglFeGltIGNvbmYgKERhdmlkIE5lY2FzKQoJRURJRiAoQXJ0ZW0gWmFua292aWNoKQoJLmN2c3JjIChOaWtvbGFpIFdlaWJ1bGwpCgkuZmV0Y2htYWlscmMgKE5pa29sYWkgV2VpYnVsbCkKCUdOVSBncGcgKE5pa29sYWkgV2VpYnVsbCkKCUdydWIgKE5pa29sYWkgV2VpYnVsbCkKCU1vZGNvbmYgKE5pa29sYWkgV2VpYnVsbCkKCVJDUyAoRG1pdHJ5IFZhc2lsaWV2KQoJQXJ0IChEb3JhaSBTaXRhcmFtKQoJUmVuZGVybWFuIEludGVyZmFjZSBCeXRlc3RyZWFtIChBbmRyZXcgSiBCcm9tYWdlKQoJTWFpbGNhcCAoRG91ZyBLZWFybnMpCglTdWJ2ZXJzaW9uIGNvbW1pdCBmaWxlIChEbWl0cnkgVmFzaWxpZXYpCglNaWNyb3NvZnQgSURMIChWYWRpbSBaZWl0bGluKQoJV2lsZFBhY2tldHMgRXRoZXJQZWVrIERlY29kZXIgKENocmlzdG9waGVyIFNoaW5uKQoJU3B5Y2UgKFJpbW9uIEJhcnIpCglSZXNvbHYuY29uZiAoUmFkdSBEaW5laXUpCglBNjUgKENsZW1lbnMgS2lyY2hnYXR0ZXJlcikKCXNzaGNvbmZpZyBhbmQgc3NoZGNvbmZpZyAoRGF2aWQgTmVjYXMpCglDaGVldGFoIGFuZCBIVE1MQ2hlZXRhaCAoTWF4IElzY2hlbmtvKQoJUGFja2V0IGZpbHRlciAoQ2FtaWVsIERvYmJlbGFhcikKCk5ldyBpbmRlbnQgZmlsZXM6CglFaWZmZWwgKERhdmlkIENsYXJrZSkKCVRpbGRlIChUb2JpYXMgUnVuZHRyb20pCglPY2NhbSAoTWFyaW8gU2Nod2VpZ2xlcikKCUFydCAoRG9yYWkgU2l0YXJhbSkKCVBIUCAoTWlsZXMgTG90dCkKCUR5bGFuIChCcmVudCBGdWxnaGFtKQoKTmV3IHR1dG9yIHRyYW5zbGF0aW9uczoKCVNsb3ZhayAoTHVib3MgQ2Vsa28pCglHcmVlayAoQ2hyaXN0b3MgS29udGFzKQoJR2VybWFuIChKb2FjaGltIEhvZm1hbm4pCglOb3J3ZWdpYW4gKNh5dmluZCBIb2xtKQoKTmV3IGZpbGV0eXBlIHBsdWdpbnM6CglPY2NhbSAoTWFyaW8gU2Nod2VpZ2xlcikKCUFydCAoRG9yYWkgU2l0YXJhbSkKCWFudC52aW0sIGFzcHZicy52aW0sIGNvbmZpZy52aW0sIGNzYy52aW0sIGNzaC52aW0sIGR0ZC52aW0sIGh0bWwudmltLAoJanNwLnZpbSwgcGFzY2FsLnZpbSwgcGhwLnZpbSwgc2dtbC52aW0sIHNoLnZpbSwgc3ZnLnZpbSwgdGNzaC52aW0sCgl4aHRtbC52aW0sIHhtbC52aW0sIHhzZC52aW0uICAoRGFuIFNoYXJwKQoKTmV3IGNvbXBpbGVyIHBsdWdpbnM6CglDaGVja3N0eWxlIChEb3VnIEtlYXJucykKCWc3NyAoUmFsZiBXaWxkZW5odWVzKQoJZm9ydHJhbiAoSm9oYW5uLUd1ZW50ZXIgU2ltb24pCglYbWxsaW50IChEb3VnIEtlYXJucykKCVJ1YnkgKFRpbSBIYW1tZXJxdWlzdCkKCU1vZGVsc2ltIHZjb20gKFBhdWwgQmFsZW1lKQoKTmV3IG1lbnUgdHJhbnNsYXRpb25zOgoJQnJhemlsaWFuIChKb3PpIGRlIFBhdWxhKQoJQnJpdGlzaCAoTWlrZSBXaWxsaWFtcykKCUtvcmVhbiBpbiBVVEYtOC4gKE5hbSBTdW5nSHl1bikKCU5vcndlZ2lhbiAo2Hl2aW5kIEhvbG0pCglTZXJiaWFuIChBbGVrc2FuZGFyIEplbGVuYWspCgpOZXcgbWVzc2FnZSB0cmFuc2xhdGlvbiBmb3IgTm9yd2VnaWFuLiAo2Hl2aW5kIEhvbG0pCgpOZXcgY29sb3Igc2NoZW1lOgoJZGVzZXJ0IChIYW5zIEZ1Z2FsKQoKQXJhYmljIHNwZWNpZmljIGZlYXR1cmVzLiAgJ2FyYWJpY3NoYXBlJywgJ3Rlcm1iaWRpJywgJ2FyYWJpYycgYW5kCidyaWdodGxlZnRjbWQnIG9wdGlvbnMuICAoTmFkaW0gU2hhaWtsaSAmIElzYW0gQmF5YXppZGkpCgpTdXBwb3J0IGZvciBuZVh0YXcgR1VJIHRvb2xraXQsIG1vc3RseSBsaWtlIEF0aGVuYS4gKEFsZXhleSBGcm9sb2ZmKQoKV2luMzI6IGNzY29wZSBzdXBwb3J0LiAoS2hvcmV2IFNlcmdleSkKClZNUzogdmFyaW91cyBpbXByb3ZlbWVudHMgdG8gZG9jdW1lbnRhdGlvbiBhbmQgbWFrZWZpbGVzLiAgKFpvbHRhbiBBcnBhZGZmeSkKCkFkZGVkICJ4IiBrZXkgdG8gdGhlIGV4cGxvcmVyIHBsdWdpbjogZXhlY3V0ZSB0aGUgZGVmYXVsdCBhY3Rpb24uIChZYXN1aGlybwpNYXRzdW1vdG8pCgpDb21waWxlIGd2aW1leHQuZGxsIHdpdGggTWluZ1cuIChSZW5lIGRlIFp3YXJ0KQoKQWRkIHRoZSAidG9odG1sLnZpbSIgcGx1Z2luLiAgSXQgZGVmaW5lcyB0aGUgIjpUT2h0bWwiIHVzZXIgY29tbWFuZCwgYW4gZWFzeQp3YXkgdG8gY29udmVydCB0ZXh0IHRvIEhUTUwuCgpBZGRlZCAiOnRyeSIgLyAiOmNhdGNoIiAvICI6ZmluYWxseSIgLyAiOmVuZHRyeSIgY29tbWFuZHMuICBBZGQgRTk5OSBudW1iZXJzCnRvIGFsbCBlcnJvciBtZXNzYWdlcywgc28gdGhhdCB0aGV5IGNhbiBiZSBjYXVnaHQgYnkgdGhlIG51bWJlci4KKFNlcnZhdGl1cyBCcmFuZHQpCk1vdmVkIHBhcnQgb2YgZXhfZG9jbWQuYyB0byB0aGUgbmV3IGV4X2V2YWwuYyBzb3VyY2UgZmlsZS4KCkluY2x1ZGUgc3VwcG9ydCBmb3IgR1RLKyAyLjIueCAoRGFuaWVsIEVsc3RuZXIpCkFkZHMgdGhlICJ+IiByZWdpc3RlcjogZHJhZyAmIGRyb3AgdGV4dC4KQWRkcyB0aGUgJ3Rvb2xiYXJpY29uc2l6ZScgb3B0aW9uLgpBZGQgLURhbGxvY2Egd2hlbiBydW5uaW5nIGxpbnQgdG8gd29yayBhcm91bmQgYSBwcm9ibGVtIHdpdGggYWxsb2NhKCkKcHJvdG90eXBlLgoKV2hlbiBzZWxlY3RpbmcgYW4gaXRlbSBpbiB0aGUgZXJyb3Igd2luZG93IHRvIGp1bXAgdG8sIHRha2Ugc29tZSBlZmZvcnQgdG8KZmluZCBhbiBvcmRpbmFyeSB3aW5kb3cgdG8gc2hvdyB0aGUgZmlsZSBpbiAobm90IGEgcHJldmlldyB3aW5kb3cpLgoKU3VwcG9ydCBmb3IgUG9zdFNjcmlwdCBwcmludGluZyBvZiB2YXJpb3VzIDgtYml0IGVuY29kaW5ncy4gKE1pa2UgV2lsbGlhbXMpCgppbnB1dGRpYWxvZygpIGFjY2VwdHMgYSB0aGlyZCBhcmd1bWVudCB0aGF0IGlzIHVzZWQgd2hlbiB0aGUgZGlhbG9nIGlzCmNhbmNlbGxlZC4gIE1ha2VzIGl0IHBvc3NpYmxlIHRvIHNlZSBhIGRpZmZlcmVuY2UgYmV0d2VlbiBjYW5jZWxsaW5nIGFuZAplbnRlcmluZyBub3RoaW5nLgoKSW5jbHVkZWQgQWFwIHJlY2lwZXMuICBDYW4gYmUgdXNlZCB0byB1cGRhdGUgVmltIHRvIHRoZSBsYXRlc3QgdmVyc2lvbiwKYnVpbGRpbmcgYW5kIGluc3RhbGxpbmcuCgoiLyIgb3B0aW9uIGluICdjaW5vcHRpb25zJzogZXh0cmEgaW5kZW50IGZvciBjb21tZW50IGxpbmVzLiAoSGVsbXV0IFN0aWVnbGVyKQoKVmltIHZhcmlhYmxlICJ2OnJlZ2lzdGVyIiBhbmQgZnVuY3Rpb25zIHNldHJlZygpLCBnZXRyZWcoKSBhbmQgZ2V0cmVndHlwZSgpLgooTWljaGFlbCBHZWRkZXMpCgoidiIgZmxhZyBpbiAnY3BvcHRpb25zJzogTGVhdmUgdGV4dCBvbiBzY3JlZW4gd2l0aCBiYWNrc3BhY2UgaW4gSW5zZXJ0IG1vZGUuCihQaGlsbGlwIFZhbmRyeSkKCkRvc2luc3QuZXhlIGFsc28gZmluZHMgZ3ZpbWV4dC5kbGwgaW4gdGhlICJHdmltRXh0IiBkaXJlY3RvcnkuICBVc2VmdWwgd2hlbgpydW5uaW5nIGluc3RhbGwgaW4gdGhlICJzcmMiIGRpcmVjdG9yeSBmb3IgdGVzdGluZy4KClN1cHBvcnQgdGFnIGZpbGVzIHRoYXQgd2VyZSBzb3J0ZWQgd2l0aCBjYXNlIGlnbm9yZWQuIChGbGVtbWluZyBNYWRzZW4pCgpXaGVuIGNvbXBsZXRpbmcgYSB3aWxkY2FyZCBpbiBhIGxlYWRpbmcgcGF0aCBlbGVtZW50LCBhcyBpbiAiLi4vKi9NYWtlZmlsZSIsCm9ubHkgdGhlIGxhc3QgcGFydCAoIk1ha2VmaWxlIikgd2FzIGxpc3RlZC4gIFN1cHBvcnQgY3VzdG9tIGRlZmluZWQKY29tbWFuZCBsaW5lIGNvbXBsZXRpb24uICAoRmxlbW1pbmcgTWFkc2VuKQoKQWxzbyByZWNvZ25pemUgInJ4dnQiIGFzIGFuIHh0ZXJtLWxpa2UgdGVybWluYWwuIChUb21hcyBTdHlibG8pCgpQcm9wZXIgWDExIHNlc3Npb24gbWFuYWdlbWVudC4gIEZpeGVzIHRoYXQgdGhlIFdNX1NBVkVfWU9VUlNFTEYgZXZlbnQgd2FzIG5vdAp1c2VkIGJ5IHBvcHVsYXIgZGVza3RvcHMuICAoTmVpbCBCaXJkKQpOb3QgdXNlZCBmb3IgR25vbWUgMiwgaXQgaGFzIGl0cyBvd24gaGFuZGxpbmcuCgpTdXBwb3J0IEJPUiwgREVCVUcgYW5kIFNQQVdOTyBhcmd1bWVudHMgZm9yIHRoZSBCb3JsYW5kIDMgTWFrZWZpbGUuIChXYWx0ZXIKQnJpc2NvZSkKClN1cHBvcnQgcGFnZSBicmVha3MgZm9yIHByaW50aW5nLiAgQWRkcyB0aGUgImZvcm1mZWVkIiBmaWVsZCBpbgoncHJpbnRvcHRpb25zJy4gIChNaWtlIFdpbGxpYW1zKQoKTWFjIE9TWDogbXVsdGktbGFuZ3VhZ2Ugc3VwcG9ydDogaWNvbnYgYW5kIGdldHRleHQuIChNdXJhb2thIFRhcm8sIEF4ZWwKS2llbGhvcm4pCgoiXFoiIGZsYWcgaW4gcGF0dGVybnM6IGlnbm9yZSBkaWZmZXJlbmNlcyBpbiBjb21iaW5pbmcgY2hhcmFjdGVycy4gKFJvbiBBYXJvbikKCkFkZGVkICdwcmVzZXJ2ZWluZGVudCcgYW5kICdjb3B5aW5kZW50JyBvcHRpb25zLiAgVGhleSB1c2UgZXhpc3Rpbmcgd2hpdGUKc3BhY2UgY2hhcmFjdGVycyBpbnN0ZWFkIG9mIHVzaW5nIFRhYnMgYXMgbXVjaCBhcyBwb3NzaWJsZS4gKENocmlzIExlaXNobWFuKQoKVXBkYXRlZCBVbmljb2RlIHRhYmxlcyB0byBVbmljb2RlIDQuMC4gKFJhcGhhZWwgRmlua2VsKQoKU3VwcG9ydCBmb3IgdGhlIG1vdXNlIHdoZWVsIGluIHJ4dnQuIChBSURBIFNoaW5yYSkKCldpbjMyOiBBZGRlZCAiOjgiIGZpbGUgbW9kaWZpZXIgdG8gZ2V0IHNob3J0IGZpbGVuYW1lLiAgVGVzdDUwIHRlc3RzIHRoZSAiOjgiCmV4cGFuc2lvbiBvbiBXaW4zMiBzeXN0ZW1zLiAoTWljaGFlbCBHZWRkZXMpCgonY3Njb3BlcXVpY2tmaXgnIG9wdGlvbjogT3BlbiBxdWlja2ZpeCB3aW5kb3cgZm9yIENzY29wZSBjb21tYW5kcy4gIEFsc28KY2xlYW51cCB0aGUgY29kZSBmb3IgZ2l2aW5nIG1lc3NhZ2VzLiAgKEtob3JldiBTZXJnZXkpCgpHVUk6IFN1cHBvcnQgbW9yZSB0aGFuIDIyMiBjb2x1bW5zIGZvciBtb3VzZSBwb3NpdGlvbnMuCgoiOnN0b3BpbnNlcnQiIGNvbW1hbmQ6IERvbid0IHJldHVybiB0byBJbnNlcnQgbW9kZS4KCiJpbnRlcnJ1cHQiIGNvbW1hbmQgZm9yIGRlYnVnIG1vZGUuICBVc2VmdWwgZm9yIHNpbXVsYXRpbmcgQ1RSTC1DLiAoU2VydmF0aXVzCkJyYW5kdCkKCgpGaXhlZAkJCQkJCQkqZml4ZWQtNi4yKgotLS0tLQoKUmVtb3ZlZCBhIGZldyB1bnVzZWQgI2RlZmluZXMgZnJvbSBjb25maWcuaC5pbiwgb3Nfb3MyX2NmZy5oIGFuZCBvc192bXNfY29uZi5oLgoKVGhlIFZpbSBpY29ucyBpbiBQTkcgZm9ybWF0IGRpZG4ndCBoYXZlIGEgdHJhbnNwYXJlbnQgYmFja2dyb3VuZC4gKEdyZWcKUm9lbG9mcykKCkZpeGVkIGEgbGFyZ2UgbnVtYmVyIG9mIHNwZWxsaW5nIG1pc3Rha2VzIGluIHRoZSBkb2NzLiAoQWRyaSBWZXJob2VmKQoKVGhlICNkZWZpbmVzIGZvciBwcm90b3R5cGUgZ2VuZXJhdGlvbiB3ZXJlIGNhdXNpbmcgdHJvdWJsZS4gIENoYW5nZWQgdGhlbSB0bwp0eXBlZGVmcy4KCkEgbmV3IHZlcnNpb24gb2YgbGliaW50bC5oIHVzZXMgX19hc21fXywgd2hpY2ggY29uZnVzZXMgY3Byb3RvLiAgRGVmaW5lIGEKZHVtbXkgX19hc21fXyBtYWNyby4KCldoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgY2FuJ3QgbW92ZSB0byBoYWxmd2F5IGFuIHVucHJpbnRhYmxlIGNoYXJhY3Rlci4KQ3JpcHBsZXMgQ1RSTC1WIHNlbGVjdGlvbi4gKFRhcm8gTXVyYW9rYSkKQWxsb3cgbW92aW5nIHRvIGhhbGZ3YXkgYW4gdW5wcmludGFibGUgY2hhcmFjdGVyLiAgRG9uJ3QgbGV0IGdldHZ2Y29sKCkgY2hhbmdlCnRoZSBwb3MtPmNvbGFkZCBhcmd1bWVudC4KCldoZW4gYSB0YWIgd3JhcHMgdG8gdGhlIG5leHQgbGluZSwgJ2xpc3RjaGFycycgaXMgc2V0IGFuZCAnZm9sZGNvbHVtbicgaXMKbm9uLXplcm8sIG9ubHkgb25lIGNoYXJhY3RlciBvZiB0aGUgZm9sZGNvbHVtbiBpcyBoaWdobGlnaHRlZC4gKE11cmFva2EgVGFybykKCldoZW4gdXNpbmcgIjpjYXRjaCIgd2l0aG91dCBhbiBhcmd1bWVudCBWaW0gY3Jhc2hlcy4gKFlhc3VoaXJvIE1hdHN1bW90bykKV2hlbiBubyBhcmd1bWVudCBnaXZlbiB1c2UgdGhlICIuKiIgcGF0dGVybi4KCldpbjMyOiBXaGVuIGd2aW0uZXhlIGlzIHN0YXJ0ZWQgZnJvbSBhIHNob3J0Y3V0IHdpdGggdGhlIHdpbmRvdyBzdHlsZSBwcm9wZXJ0eQpzZXQgdG8gbWF4aW1pemUgVmltIGRvZXNuJ3Qgc3RhcnQgd2l0aCBhIG1heGltaXplZCB3aW5kb3cuIChZYXN1aGlybwpNYXRzdW1vdG8pICBPcGVuIHRoZSB3aW5kb3cgd2l0aCB0aGUgZGVmYXVsdCBzaXplIGFuZCBkb24ndCBjYWxsIFNob3dXaW5kb3coKQphZ2FpbiB3aGVuIGl0J3MgYWxyZWFkeSB2aXNpYmxlLiAoSGVsbXV0IFN0aWVnbGVyKQoKZ3VpX2d0ay5jIHVzZWQgTUFYLCBidXQgaXQncyB1bmRlZmluZWQgdG8gYXZvaWQgYSBjb25mbGljdCB3aXRoIHN5c3RlbSBoZWFkZXIKZmlsZXMuCgpXaW4zMjogV2hlbiBjbG9zaW5nIGEgd2luZG93IGZyb20gYSBtYXBwaW5nIHNvbWUgcGl4ZWxzIHJlbWFpbiBvbiB0aGUKc3RhdHVzbGluZS4gKFlhc3VoaXJvIE1hdHN1bW90bykKCkEgY29sdW1uIG51bWJlciBpbiBhbiBlcnJvcmZvcm1hdCB0aGF0IGdvZXMgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGxpbmUgbWF5CmNhdXNlIGEgY3Jhc2guCgoiOnRocm93ICd0ZXN0JyIgY3Jhc2hlcyBWaW0uIChZYXN1aGlybyBNYXRzdW1vdG8pCgpUaGUgZmlsZSBzZWxlY3RvcidzIHNjcm9sbGJhciBjb2xvcnMgYXJlIG5vdCBzZXQgYWZ0ZXIgZG9pbmcgYSAiOmhpIFNjcm9sbGJhcgpndWlmZz1jb2xvciIuICBBbmQgdGhlIGZpbGUgc2VsZWN0b3IncyBjb2xvcnMgYXJlIG5vdCBjaGFuZ2VkIGJ5IHRoZQpjb2xvcnNjaGVtZSBjb21tYW5kLiAgKERhdmlkIEhhcnJpc29uKQoKTW90aWY6IFdoZW4gY29tcGlsaW5nIHdpdGggRkVBVF9GT09URVIgZGVmaW5lZCwgdGhlIHRleHQgYXJlYSBnZXRzIGEgZmV3CnBpeGVscyBleHRyYSBzcGFjZSBvbiB0aGUgcmlnaHQuICBSZW1vdmUgdGhlIHNwZWNpYWwgY2FzZSBpbgpndWlfZ2V0X2Jhc2Vfd2lkdGgoKS4gKERhdmlkIEhhcnJpc29uKQoKVXNpbmcgQ1RSTC1SIENUUkwtUCBpbiBJbnNlcnQgbW9kZSBwdXRzIHRoZSAnXSBtYXJrIGluIHRoZSB3cm9uZyBwb3NpdGlvbi4KKEhlbG11dCBTdGllZ2xlcikKCldoZW4gJ2Zvcm1hdG9wdGlvbnMnIGluY2x1ZGVzICJhd2N0IiBhIG5vbi1jb21tZW50IHdhc24ndCBhdXRvLWZvcm1hdHRlZC4KClVzaW5nIGEgIi0tY21kIiBhcmd1bWVudCBtb3JlIHRoYW4gMTAgdGltZXMgY2F1c2VkIGEgY3Jhc2guCgpERUMgc3R5bGUgbW91c2Ugc3VwcG9ydCBkaWRuJ3Qgd29yayBpZiB0aGUgcGFnZSBmaWVsZCBpcyBub3QgZW1wdHkuCihVcmliYXJyaSkKCiJ2aW0gLWwgb25lIHR3byIgZGlkIG9ubHkgc2V0ICdsaXNwJyBpbiB0aGUgZmlyc3QgZmlsZS4gIFZpIGRvZXMgaXQgZm9yIGV2ZXJ5CmZpbGUuCgoiOnNldCB0dzwiIGRpZG4ndCB3b3JrLiAgV2FzIGNoZWNraW5nIGZvciAnXicgaW5zdGVhZCBvZiAnPCcuCgpJbiAiOmhhcmRjb3B5ID4gJS5wcyIgdGhlICIlIiB3YXMgbm90IGV4cGFuZGVkIHRvIHRoZSBjdXJyZW50IGZpbGVuYW1lLgoKTWFkZSAiOnJlZHJhdyIgYWxzbyB1cGRhdGUgdGhlIFZpc3VhbCBhcmVhLgoKV2hlbiBhIG5vdCBpbXBsZW1lbnRlZCBjb21tYW5kLCBzdWNoIGFzICI6cGVybCIsIGhhcyB3cm9uZyBhcmd1bWVudHMgdGhlIGxlc3MKaW1wb3J0YW50IGVycm9yIHdhcyByZXBvcnRlZCwgZ2l2aW5nIHRoZSB1c2VyIHRoZSBpZGVhIHRoZSBjb21tYW5kIGNvdWxkIHdvcmsuCgpPbiBub24tVW5peCBzeXN0ZW1zIGF1dG9jb21tYW5kcyBmb3Igd3JpdGluZyBkaWQgbm90IGF0dGVtcHQgYSBtYXRjaCB3aXRoIHRoZQpzaG9ydCBmaWxlIG5hbWUsIGNhdXNpbmcgYSBwYXR0ZXJuIGxpa2UgImEvYiIgdG8gZmFpbC4KClZNUzogZV9zY3JlZW5tb2RlIHdhcyBub3QgZGVmaW5lZCBhbmQgYSBmZXcgb3RoZXIgZml4ZXMgZm9yIFZNUy4gKFpvbHRhbgpBcnBhZGZmeSkKCnJlZHJhd19tc2coKSBkZXBlbmRlZCBvbiBGRUFUX0FSQUJJQyBpbnN0ZWFkIG9mIEZFQVRfUklHSFRMRUZULiAoV2FsdGVyCkJyaXNjb2UpCgpWYXJpb3VzIGNoYW5nZXMgZm9yIHRoZSBQQyBNYWtlZmlsZXMuIChXYWx0ZXIgQnJpc2NvZSkKClVzZSBfdHJ1ZW5hbWUoKSBpbnN0ZWFkIG9mIG91ciBvd24gY29kZSB0byBleHBhbmQgYSBmaWxlIG5hbWUgaW50byBhIGZ1bGwKcGF0aC4gKFdhbHRlciBCcmlzY29lKQoKRXJyb3IgaW4gZmlsZXR5cGUgY2hlY2sgZm9yIC9ldGMvbW9kdXRpbHMuIChMdWJvbWlyIEhvc3QpCgpDc2NvcGUgaW50ZXJmYWNlOiBhbGxvY2F0ZWQgYSBidWZmZXIgdG9vIHNtYWxsLgoKV2luMTY6IHJlbW92ZSBhIHRyYWlsaW5nIGJhY2tzbGFzaCBmcm9tIGEgcGF0aCB3aGVuIG9idGFpbmluZyB0aGUgcGVybWlzc2lvbgpmbGFncy4gKFZpbmNlIE5lZ3JpKQoKV2hlbiBzZWFyY2hpbmcgZm9yIHRhZ3Mgd2l0aCBjYXNlIGlnbm9yZWQgVmltIGNvdWxkIGhhbmcuCgpXaGVuIHNlYXJjaGluZyBkaXJlY3RvcmllcyB3aXRoIGEgc3RvcGRpciBjb3VsZCBnZXQgYSBjcmFzaC4gIERpZCBub3QKcmUtYWxsb2NhdGUgZW5vdWdoIG1lbW9yeS4gKFZpbmNlIE5lZ3JpKQoKQSB1c2VyIGNvbW1hbmQgbWF5IGNhdXNlIGEgY3Jhc2guICBEb24ndCB1c2UgdGhlIGNvbW1hbmQgaW5kZXggd2hlbiBpdCdzCm5lZ2F0aXZlLiAoVmluY2UgTmVncmkpCgpwdXRlbnYoKSBkaWRuJ3Qgd29yayBmb3IgTWluZ1cgYW5kIEN5Z3dpbi4gKERhbiBTaGFycCkKCk1hbnkgZnVuY3Rpb25zIHdlcmUgY29tbW9uIGJldHdlZW4gb3NfbXNkb3MuYyBhbmQgb3Nfd2luMTYuYy4gIFVzZSBvc19tc2Rvcy5jCmZvciBjb21waWxpbmcgdGhlIFdpbjE2IHZlcnNpb24gYW5kIHJlbW92ZSB0aGUgZnVuY3Rpb25zIGZyb20gb3Nfd2luMTYuYy4KKFZpbmNlIE5lZ3JpKQoKRm9yIHRlcm1pbmFscyB0aGF0IGJlaGF2ZSBsaWtlIGFuIHh0ZXJtIGJ1dCBkaWRuJ3QgaGF2ZSBhIG5hbWUgdGhhdCBpcwpyZWNvZ25pemVkLCB0aGUgd2luZG93IHRpdGxlIHdvdWxkIG5vdCBhbHdheXMgYmUgc2V0LgoKV2hlbiBzeW50YXggaGlnaGxpZ2h0aW5nIGlzIG9mZiAiOmhhcmRjb3B5IiBjb3VsZCBzdGlsbCBhdHRlbXB0IHByaW50aW5nCmNvbG9ycy4KCkNyYXNoIHdoZW4gdXNpbmcgIjpjYXRjaCIgd2l0aG91dCBhbiBhcmd1bWVudC4gIChTZXJ2YXRpdXMgQnJhbmR0KQoKV2luMzI6ICI6biAjIiBkb3VibGVkIHRoZSBiYWNrc2xhc2hlcy4KCkZpeGVkIEFyYWJpYyBzaGFwaW5nIGZvciB0aGUgY29tbWFuZCBsaW5lLiAoTmFkaW0gU2hhaWtsaSkKCkF2b2lkIHNwbGl0dGluZyB1cCBhIHN0cmluZyBkaXNwbGF5ZWQgb24gdGhlIGNvbW1hbmQgbGluZSBpbnRvIGluZGl2aWR1YWwKY2hhcmFjdGVycywgaXQgYnJlYWtzIEFyYWJpYyBzaGFwaW5nLgoKVXBkYXRlZCBDeWd3aW4gYW5kIE1pbmdXIG1ha2VmaWxlcyB0byB1c2UgbW9yZSBkZXBlbmRlbmNpZXMuIChEYW4gU2hhcnApCgoyaHRtbC52aW0gZGlkbid0IHdvcmsgd2l0aCAnbm9tYWdpYycgc2V0LgoKV2hlbiBhIGxvY2FsIGFyZ3VtZW50IGxpc3QgaXMgdXNlZCBhbmQgZG9pbmcgIjpvbmx5IiBWaW0gY291bGQgY3Jhc2ggbGF0ZXIuCihNdXJhb2thIFRhcm8pCgpXaGVuIHVzaW5nICIlUCIgaW4gJ3N0YXR1c2xpbmUnIGFuZCB0aGUgZmlsbGNoYXIgaXMgIi0iLCBhIHBlcmNlbnRhZ2Ugb2YgMyUKY291bGQgcmVzdWx0IGluICItMyUiLiAgQWxzbyBhdm9pZCBjaGFuZ2luZyBhIHNwYWNlIGluc2lkZSBhIGZpbGVuYW1lIHRvIHRoZQpmaWxsIGNoYXJhY3Rlci4KCk1Td2luOiBIYW5kbGluZyBvZiBiYWNrc2xhc2hlcyBhbmQgZG91YmxlIHF1b3RlcyBmb3IgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwp3YXMgbm90IGxpa2Ugd2hhdCBvdGhlciBhcHBsaWNhdGlvbnMgZG8uICAoV2FsdGVyIEJyaXNjb2UpCgpUZXN0MzIgc29tZXRpbWVzIGRpZG4ndCB3b3JrLCBiZWNhdXNlIHRlc3QxMS5vdXQgd2FzIHdyaXR0ZW4gYXMgVEVTVDExLk9VVC4KCkF2b2lkIHBvaW50ZXIgY29udmVyc2lvbnMgd2FybmluZ3MgZm9yIEJvcmxhbmQgQyA1LjUgaW4gZG9zaW5zdC5jIGFuZAp1bmluc3RhbC5jLgoKTW9yZSBpbXByb3ZlbWVudHMgZm9yIE1ha2VfYmMzLm1hayBmaWxlLiAoV2FsdGVyIEJyaXNjb2UpCgpXaGVuICI6c3luIHN5bmMgbGluZWJyZWFrcz0xIiBpcyB1c2VkLCBlZGl0aW5nIHRoZSBmaXJzdCBsaW5lIGNhdXNlZCBhIHJlZHJhdwpvZiB0aGUgd2hvbGUgc2NyZWVuLgoKTWFraW5nIHRyYW5zbGF0ZWQgbWVzc2FnZXMgZGlkbid0IHdvcmssIGlmX3BlcmwueHMgd2Fzbid0IGZvdW5kLiAoVmxhZApTYW5kcmluaSkKCk1vdGlmIGFuZCBBdGhlbmE6IG1vdmluZyBWaW0gdG8gdGhlIGZvcmVncm91bmQgZGlkbid0IHVuaWNvbmlmeSBpdC4gIFVzZQpYTWFwUmFpc2VkKCkgaW5zdGVhZCBvZiBYUmFpc2VXaW5kb3coKS4gKFNyaWthbnRoIFNhbmthcmFuKQoKV2hlbiB1c2luZyAiOnB0YWciIGluIGEgd2luZG93IHdoZXJlICdzY3JvbGxiaW5kJyBpcyBzZXQgdGhlIHByZXZpZXcgd2luZG93CndvdWxkIGFsc28gaGF2ZSAnc2Nyb2xsYmluZCcgc2V0LiAgQWxzbyByZXNldCAnZm9sZGNvbHVtbicgYW5kICdkaWZmJy4KClZhcmlvdXMgY29tbWFuZHMgdGhhdCBzcGxpdCBhIHdpbmRvdyB0b29rIG92ZXIgJ3Njcm9sbGJpbmQnLCB3aGljaCBpcyBoYXJkbHkKZXZlciBkZXNpcmVkLiAgRXNwLiBmb3IgInE6IiBhbmQgIjpjb3BlbiIuICBNb3N0bHkgcmVzZXQgJ3Njcm9sbGJpbmQnIHdoZW4Kc3BsaXR0aW5nIGEgd2luZG93LgoKV2hlbiAnc2hlbGxzbGFzaCcgaXMgc2V0IGluIHRoZSB2aW1yYyBmaWxlIHRoZSBmaXJzdCBlbnRyeSBvZiAiOnNjcmlwdG5hbWVzIgp3b3VsZCBzdGlsbCBoYXZlIGJhY2tzbGFzaGVzLiAgRW50cmllcyBpbiB0aGUgcXVpY2tmaXggbGlzdCBjb3VsZCBhbHNvIGhhdmUKd3JvbmcgKGJhY2spc2xhc2hlcy4KCldpbjMyOiBwcmludGVyIGRpYWxvZyB0ZXh0cyB3ZXJlIG5vdCB0cmFuc2xhdGVkLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQoKV2hlbiB1c2luZyBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIHdpdGggYSBLX1NQRUNJQUwgYnl0ZSBvciBhIHNwZWNpYWwga2V5IGNvZGUKd2l0aCAiLS1yZW1vdGUtc2VuZCIgdGhlIHJlY2VpdmVkIGJ5dGUgc2VxdWVuY2Ugd2FzIG1hbmdsZWQuICBQdXQgaXQgaW4gdGhlCnR5cGVhaGVhZCBidWZmZXIgaW5zdGVhZCBvZiB0aGUgaW5wdXQgYnVmZmVyLgoKV2luMzI6IFRoZSBjdXJzb3IgcG9zaXRpb24gd2FzIGluY29ycmVjdCBhZnRlciBjaGFuZ2luZyBjdXJzb3Igc2hhcGUuCihZYXN1aGlybyBNYXRzdW1vdG8pLgoKV2luMzI6IFdoZW4gJ2VuY29kaW5nJyBpcyBub3QgdGhlIGN1cnJlbnQgY29kZXBhZ2UgdGhlIHRpdGxlIGNvdWxkIG5vdCBiZSBzZXQKdG8gbm9uLWFzY2lpIGNoYXJhY3RlcnMuCgoidmltIC1kIHNjcDovL21hY2hpbmUvZmlsZTEgc2NwOi8vbWFjaGluZS9maWxlMiIgZGlkIG5vdCB3b3JrLCB0aGVyZSB3YXMgb25seQpvbmUgd2luZG93LiAgRml4ZWQgdGhlIG5ldHJ3IHBsdWdpbiBub3QgdG8gd2lwZSBvdXQgdGhlIGJ1ZmZlciBpZiBpdCBpcwpkaXNwbGF5ZWQgaW4gb3RoZXIgd2luZG93cy4KCiIvJCIgY2F1c2VkICJlIiBpbiBsYXN0IGNvbHVtbiBvZiBzY3JlZW4gdG8gZGlzYXBwZWFyLCBhIGhpZ2hsaWdodGVkIGJsYW5rIHdhcwpkaXNwbGF5ZWQgaW5zdGVhZC4KCiI6cy8gKlx6ZVxuLy9lIiByZW1vdmVkIHRoZSBsaW5lIGJyZWFrIGFuZCBpbnRyb2R1Y2VkIGFyYml0cmFyeSB0ZXh0LiAgV2FzCnVzaW5nIHRoZSBsaW5lIGNvdW50IGluY2x1ZGluZyB3aGF0IG1hdGNoZWQgYWZ0ZXIgdGhlICJcemUiLgoKVXNpbmcgdGhlICJjIiBmbGFnIHdpdGggIjpzIiBjaGFuZ2VkIHRoZSBiZWhhdmlvciB3aGVuIGEgbGluZSBicmVhayBpcwpyZXBsYWNlZCBhbmQgIlxAPD0iIGlzIHVzZWQuICBXaXRob3V0ICJjIiBhIGZvbGxvd2luZyBtYXRjaCB3YXMgbm90IGZvdW5kLgoKIjolcy9cdkFAPD1cbkJAPS8vZ2NlIiBnb3Qgc3R1Y2sgb24gIkFcbkIiIHdoZW4gZW50ZXJpbmcgIm4iLgoKVk1TOiBhZGQgSEFWRV9TVFJGVElNRSBpbiB0aGUgY29uZmlnIGZpbGUuIChab2x0YW4gQXJwYWRmZnkpCgpXaGVuIGEgZGVsZXRlIHByb21wdHMgaWYgYSBkZWxldGUgc2hvdWxkIGNvbnRpbnVlIHdoZW4geWFua2luZyBpcyBub3QKcG9zc2libGUsIHJlc3RvcmUgbXNnX3NpbGVudCBhZnRlcndhcmRzLgoKIjpzaWduIiBkaWQgbm90IGNvbXBsYWluIGFib3V0IGEgbWlzc2luZyBhcmd1bWVudC4KCldoZW4gYWRkaW5nIG9yIGRlbGV0aW5nIGEgc2lnbiAnaGxzZWFyY2gnIGhpZ2hsaWdodGluZyBjb3VsZCBkaXNhcHBlYXIuClVzZSB0aGUgZ2VuZXJpYyBmdW5jdGlvbnMgZm9yIHVwZGF0aW5nIHNpZ25zLgoKT24gTVMtV2luZG93cyBOVCwgMksgYW5kIFhQIGRvbid0IHVzZSBjb21tYW5kLmNvbSBidXQgY21kLmV4ZSBmb3IgdGVzdGluZy4KTWFrZXMgdGhlIHRlc3RzIHdvcmsgb24gbW9yZSBzeXN0ZW1zLgoKSW4gdGhlIERPUyB0ZXN0cyBkb24ndCBjcmVhdGUgIi90bXAiIHRvIGF2b2lkIGFuIGVycm9yLgoKTWFjIGNsYXNzaWM6IFByb2JsZW1zIHdpdGggcmVhZGluZyBmaWxlcyB3aXRoIENSIHZzIENSL0xGLiAgUmVseSBvbiB0aGUKbGlicmFyeSB2ZXJzaW9uIG9mIGZnZXRzKCkgdG8gd29yayBjb3JyZWN0bHkgZm9yIE1ldHJvd2Vya3MgMi4yLiAoQXhlbApLaWVsaG9ybikKCldoZW4gdHlwaW5nIGEgcGFzc3dvcmQgYSAiKiIgd2FzIHNob3duIGZvciBlYWNoIGJ5dGUgaW5zdGVhZCBvZiBmb3IgZWFjaApjaGFyYWN0ZXIuICBBZGRlZCBtdWx0aS1ieXRlIGhhbmRsaW5nIHRvIGRpc3BsYXlpbmcgdGhlIHN0YXJzLiAoWWFzdWhpcm8KTWF0c3Vtb3RvKQoKV2hlbiB1c2luZyBQZXJsIDUuNiBhY2Nlc3NpbmcgJGN1cmJ1ZiBkb2Vzbid0IHdvcmsuICBBZGQgYW4gI2lmZGVmIHRvIHVzZQpkaWZmZXJlbnQgY29kZSBmb3IgNS42IGFuZCA1LjguICAoRGFuIFNoYXJwKQoKTWluZ1cgYW5kIEN5Z3dpbjogRG9uJ3Qgc3RyaXAgdGhlIGRlYnVnIGV4ZWN1dGFibGUuIChEYW4gU2hhcnApCgpBbiBhc3NpZ25tZW50IHRvIGEgdmFyaWFibGUgd2l0aCBjdXJsaWVzIHRoYXQgaW5jbHVkZXMgIj09IiBkb2Vzbid0IHdvcmsuClNraXAgb3ZlciB0aGUgY3VybGllcyBiZWZvcmUgc2VhcmNoaW5nIGZvciBhbiAiPSIuIChWaW5jZSBOZWdyaSkKCldoZW4gY2FuY2VsbGluZyB0aGUgc2VsZWN0aW9uIG9mIGFsdGVybmF0ZSBtYXRjaGluZyB0YWdzIHRoZSB0YWcgc3RhY2sgaW5kZXgKY291bGQgYmUgYWR2YW5jZWQgdG9vIGZhciwgcmVzdWx0aW5nIGluIGFuIGVycm9yIG1lc3NhZ2Ugd2hlbiB1c2luZyBDVFJMLVQuCgoKUGF0Y2ggNi4xLjAwMQpQcm9ibGVtOiAgICBXaGVuIGZvcm1hdHRpbmcgVVRGLTggdGV4dCBpdCBtaWdodCBiZSB3cmFwcGVkIGF0IGEgc3BhY2UgdGhhdCBpcwoJICAgIGZvbGxvd2VkIGJ5IGEgY29tcG9zaW5nIGNoYXJhY3Rlci4gKFJhcGhhZWwgRmlua2VsKQoJICAgIEFsc28gY29ycmVjdCBhIGRpc3BsYXkgZXJyb3IgZm9yIHJlbW92aW5nIGEgY29tcG9zaW5nIGNoYXIgb24gdG9wCgkgICAgb2YgYSBzcGFjZS4KU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgY29tcG9zaW5nIGNoYXJhY3RlciBvbiBhIHNwYWNlLgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9taXNjMS5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4wMDIgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogYWZ0ZXIgYSAiOnBvcHVwIiBjb21tYW5kIHRoZSBtb3VzZSBwb2ludGVyIHN0YXlzIGhpZGRlbi4KU29sdXRpb246ICAgVW5oaWRlIHRoZSBtb3VzZSBwb2ludGVyIGJlZm9yZSBzaG93aW5nIHRoZSBtZW51LgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMS4wMDMKUHJvYmxlbTogICAgV2hlbiAnbGFzdHN0YXR1cycgaXMgemVybyBhbmQgdGhlcmUgaXMgYSB2ZXJ0aWNhbCBzcGxpdCwgdGhlCgkgICAgdmVydGljYWwgc2VwYXJhdG9yIGlzIGRyYXduIGluIHRoZSBjb21tYW5kIGxpbmUuIChTcmlrYW50CgkgICAgU2Fua2FyYW4pClNvbHV0aW9uOiAgIERvbid0IGRyYXcgdGhlIHZlcnRpY2FsIHNlcGFyYXRvciB3aGVyZSB0aGVyZSBpcyBubyBzdGF0dXNsaW5lLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjAwNApQcm9ibGVtOiAgICBVbmljb2RlIDMuMiBjaGFuZ2VzIHdpZHRoIGFuZCBjb21wb3Npbmcgb2YgYSBmZXcgY2hhcmFjdGVycy4KCSAgICAoTWFya3VzIEt1aG4pClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgVW5pY29kZSBmdW5jdGlvbnMgZm9yIHRoZSBjaGFyYWN0ZXIgd2lkdGggYW5kIGNvbXBvc2luZwoJICAgIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMS4wMDUKUHJvYmxlbTogICAgV2hlbiB1c2luZyBtb3JlIHRoYW4gNTAgaXRlbXMgaW4gJ3N0YXR1c2xpbmUnIFZpbSBtaWdodCBjcmFzaC4KCSAgICAoU3RldmUgSGFsbCkKU29sdXRpb246ICAgSW5jcmVtZW50IGl0ZW1jbnQgaW4gY2hlY2tfc3RsX29wdGlvbigpLiAoRmxlbW1pbmcgTWFkc2VuKQpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjAwNgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICJQIiBpbiBWaXN1YWwgbW9kZSB0byBwdXQgbGluZXdpc2Ugc2VsZWN0ZWQgdGV4dCwgdGhlCgkgICAgd3JvbmcgdGV4dCBpcyBkZWxldGVkLiAoSmFrdWIgVHVyc2tpKQpTb2x1dGlvbjogICBQdXQgdGhlIHRleHQgYmVmb3JlIHRoZSBWaXN1YWwgYXJlYSBhbmQgY29ycmVjdCB0aGUgdGV4dCB0byBiZQoJICAgIGRlbGV0ZWQgZm9yIHRoZSBpbnNlcnRlZCBsaW5lcy4KCSAgICBBbHNvIGZpeCB0aGF0ICJwIiBvZiBsaW5ld2lzZSB0ZXh0IGluIFZpc3VhbCBibG9jayBtb2RlIGRvZXNuJ3QKCSAgICB3b3JrIGNvcnJlY3RseS4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMsIHNyYy9vcHMuYwoKUGF0Y2ggNi4xLjAwNwpQcm9ibGVtOiAgICBVc2luZyAiOmZpbGV0eXBlIHBsdWdpbiBvZmYiIHdoZW4gZmlsZXR5cGUgcGx1Z2lucyB3ZXJlIG5ldmVyCgkgICAgZW5hYmxlZCBjYXVzZXMgYW4gZXJyb3IgbWVzc2FnZS4gKFlpdSBXaW5nKQpTb2x1dGlvbjogICBVc2UgIjpzaWxlbnQhIiB0byBhdm9pZCB0aGUgZXJyb3IgbWVzc2FnZS4KRmlsZXM6CSAgICBydW50aW1lL2Z0cGx1Z29mLnZpbQoKUGF0Y2ggNi4xLjAwOApQcm9ibGVtOiAgICBUaGUgIiUiIGNvbW1hbmQgZG9lc24ndCBpZ25vcmUgXCIgaW5zaWRlIGEgc3RyaW5nLCBpdCdzIHNlZW4gYXMKCSAgICB0aGUgZW5kIG9mIHRoZSBzdHJpbmcuIChLZW4gQ2xhcmspClNvbHV0aW9uOiAgIFNraXAgYSBkb3VibGUgcXVvdGUgcHJlY2VkZWQgYnkgYW4gb2RkIG51bWJlciBvZiBiYWNrc2xhc2hlcy4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMS4wMDkKUHJvYmxlbTogICAgVmltIGNyYXNoZXMgd2hlbiB1c2luZyBhIGh1Z2UgbnVtYmVyIGZvciB0aGUgbWF4d2lkIHZhbHVlIGluIGEKCSAgICBzdGF0dXNsaW5lLiAoUm9iZXJ0IE0uIE5vd290bmlhaykKU29sdXRpb246ICAgQ2hlY2sgZm9yIGFuIG92ZXJmbG93IHRoYXQgbWFrZXMgbWF4d2lkIG5lZ2F0aXZlLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjAxMApQcm9ibGVtOiAgICBTZWFyY2hpbmcgYmFja3dhcmRzIGZvciBhIHF1ZXN0aW9uIG1hcmsgd2l0aCAiP1w/IiBkb2Vzbid0IHdvcmsuCgkgICAgKEFsYW4gSXNhYWMpICBTYW1lIHByb2JsZW0gaW4gIjpzP1w/PyIgYW5kICI6Zz9cPz8iLgpTb2x1dGlvbjogICBDaGFuZ2UgdGhlICJcPyIgaW4gYSBwYXR0ZXJuIHRvICI/IiB3aGVuIHVzaW5nICI/IiBhcyBkZWxpbWl0ZXIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9wcm90by9yZWdleHAucHJvLCBzcmMvcmVnZXhwLmMsCgkgICAgc3JjL3NlYXJjaC5jLCBzcmMvc3ludGF4LmMsIHNyYy90YWcuYwoKUGF0Y2ggNi4xLjAxMQpQcm9ibGVtOiAgICBYSU06IGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgd2hlbiAnbnVtYmVyJyBpcyBzZXQuICBBbHNvLCBhIGZvY3VzCgkgICAgcHJvYmxlbSB3aGVuIHNlbGVjdGluZyBjYW5kaWRhdGVzLgpTb2x1dGlvbjogICBGaXggdGhlIFhJTSBwcm9ibGVtcy4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMDEyClByb2JsZW06ICAgIEEgc3lzdGVtKCkgY2FsbCBtaWdodCBmYWlsIGlmIGZyZWFkKCkgZG9lcyBDUi1MRiB0byBMRgoJICAgIHRyYW5zbGF0aW9uLgpTb2x1dGlvbjogICBPcGVuIHRoZSBvdXRwdXQgZmlsZSBpbiBiaW5hcnkgbW9kZS4gKFBhdm9sIEh1aGFzKQpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjEuMDEzClByb2JsZW06ICAgIFdpbjMyOiBUaGUgZGVmYXVsdCBmb3IgJ3ByaW50ZXhwcicgZG9lc24ndCB3b3JrIHdoZW4gdGhlcmUgYXJlCgkgICAgc3BlY2lhbCBjaGFyYWN0ZXJzIGluICdwcmludGRldmljZScuClNvbHV0aW9uOiAgIEFkZCBkb3VibGUgcXVvdGVzIGFyb3VuZCB0aGUgZGV2aWNlIG5hbWUuIChNaWtlIFdpbGxpYW1zKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbi50eHQsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjAxNApQcm9ibGVtOiAgICBBbiBvcGVyYXRvciBsaWtlICJyIiB1c2VkIGluIFZpc3VhbCBibG9jayBtb2RlIGRvZXNuJ3QgdXNlCgkgICAgJ3ZpcnR1YWxlZGl0JyB3aGVuIGl0J3Mgc2V0IHRvICJibG9jayIuClNvbHV0aW9uOiAgIENoZWNrIGZvciAndmlydHVhbGVkaXQnIGJlaW5nIGFjdGl2ZSBpbiBWaXN1YWwgYmxvY2sgbW9kZSB3aGVuIHRoZQoJICAgIG9wZXJhdG9yIHdhcyBzdGFydGVkLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvbWlzYzIuYywgc3JjL25vcm1hbC5jLAoJICAgIHNyYy9vcHMuYywgc3JjL3VuZG8uYwoKUGF0Y2ggNi4xLjAxNQpQcm9ibGVtOiAgICBBZnRlciBwYXRjaCA2LjEuMDE0IGNhbid0IGNvbXBpbGUgd2l0aCB0aW55IGZlYXR1cmVzLiAoQ2hyaXN0aWFuCgkgICAgSi4gUm9iaW5zb24pClNvbHV0aW9uOiAgIEFkZCB0aGUgbWlzc2luZyBkZWZpbmUgb2YgdmlydHVhbF9vcC4KRmlsZXM6CSAgICBzcmMvdmltLmgKClBhdGNoIDYuMS4wMTYgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogT3V0cHV0dGluZyBIZWJyZXcgb3IgQXJhYmljIHRleHQgbWlnaHQgaGF2ZSBhIHByb2JsZW0gd2l0aAoJICAgIHJldmVyc2luZy4KU29sdXRpb246ICAgUmVwbGFjZSB0aGUgUmV2T3V0KCkgZnVuY3Rpb24gd2l0aCBFVE9fSUdOT1JFTEFOR1VBR0UuIChSb24gQWFyb24pCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjAxNwpQcm9ibGVtOiAgICBDeWd3aW46IEFmdGVyIHBhdGNoIDYuMS4wMTIgU3RpbGwgZG9lc24ndCBkbyBiaW5hcnkgZmlsZSBJL08uCgkgICAgKFBhdm9sIEp1aGFzKQpTb2x1dGlvbjogICBEZWZpbmUgQklOQVJZX0ZJTEVfSU8gZm9yIEN5Z3dpbi4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5oCgpQYXRjaCA2LjEuMDE4ClByb2JsZW06ICAgIEVycm9yIG1lc3NhZ2Ugd2hlbiB1c2luZyBjdGVybSBoaWdobGlnaHRpbmcuIChMZW9uYXJkbyBEaSBMZWxsYSkKU29sdXRpb246ICAgUmVtb3ZlIGEgYmFja3NsYXNoIGJlZm9yZSBhIHF1ZXN0aW9uIG1hcmsuCkZpbGVzOgkgICAgcnVudGltZS9zeW50YXgvY3Rlcm0udmltCgpQYXRjaCA2LjEuMDE5IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IEZpbGUgbmFtZSBpcyBtZXNzZWQgdXAgd2hlbiBlZGl0aW5nIGp1c3QgYSBkcml2ZSBuYW1lLgoJICAgIChXYWx0ZXIgQnJpc2NvZSkKU29sdXRpb246ICAgQXBwZW5kIGEgTlVMIGFmdGVyIHRoZSBkcml2ZSBuYW1lLiAoVmluY2UgTmVncmkpCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMS4wMjAKUHJvYmxlbTogICAgY29sKCInPiIpIHJldHVybnMgYSBodWdlIG51bWJlciBhZnRlciB1c2luZyBWaXN1YWwgbGluZSBtb2RlLgpTb2x1dGlvbjogICBSZXR1cm4gdGhlIGxlbmd0aCBvZiB0aGUgbGluZSBpbnN0ZWFkLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4wMjEgKGRlcGVuZHMgb24gcGF0Y2ggNi4xLjAwOSkKUHJvYmxlbTogICAgVmltIGNyYXNoZXMgd2hlbiB1c2luZyBhIGh1Z2UgbnVtYmVyIGZvciB0aGUgbWlud2lkIHZhbHVlIGluIGEKCSAgICBzdGF0dXNsaW5lLiAoUm9iZXJ0IE0uIE5vd290bmlhaykKU29sdXRpb246ICAgQ2hlY2sgZm9yIGFuIG92ZXJmbG93IHRoYXQgbWFrZXMgbWlud2lkIG5lZ2F0aXZlLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjAyMgpQcm9ibGVtOiAgICBHcmFiYmluZyB0aGUgc3RhdHVzIGxpbmUgYWJvdmUgdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cgd29ya3MgbGlrZQoJICAgIHRoZSBib3R0b20gc3RhdHVzIGxpbmUgd2FzIGdyYWJiZWQuIChKaW0gQmF0dGxlKQpTb2x1dGlvbjogICBNYWtlIGl0IHBvc3NpYmxlIHRvIGdyYWIgdGhlIHN0YXR1cyBsaW5lIGFib3ZlIHRoZSBjb21tYW5kLWxpbmUKCSAgICB3aW5kb3csIHNvIHRoYXQgaXQgY2FuIGJlIHJlc2l6ZWQuCkZpbGVzOgkgICAgc3JjL3VpLmMKClBhdGNoIDYuMS4wMjMgKGV4dHJhKQpQcm9ibGVtOiAgICBWTVM6IHJ1bm5pbmcgdGVzdHMgZG9lc24ndCB3b3JrIHByb3Blcmx5LgpTb2x1dGlvbjogICBBZGp1c3QgdGhlIG1ha2VmaWxlLiAoWm9sdGFuIEFycGFkZmZ5KQpGaWxlczoJICAgIHNyYy90ZXN0ZGlyL01ha2Vfdm1zLm1tcwoKUGF0Y2ggNi4xLjAyNApQcm9ibGVtOiAgICBXaGVuIGhlYWRlciBmaWxlcyB1c2UgYSBuZXcgc3ludGF4IGZvciBkZWNsYXJpbmcgZnVuY3Rpb25zLCBWaW0KCSAgICBjYW4ndCBmaWd1cmUgb3V0IG1pc3NpbmcgcHJvdG90eXBlcyBwcm9wZXJseS4KU29sdXRpb246ICAgQWNjZXB0IGJyYWNlcyBhcm91bmQgYSBmdW5jdGlvbiBuYW1lLiAoTS4gV2FybmVyIExvc2gpCkZpbGVzOgkgICAgc3JjL29zZGVmLnNoCgpQYXRjaCA2LjEuMDI1ClByb2JsZW06ICAgIEZpdmUgbWVzc2FnZXMgZm9yICJ2aW0gLS1oZWxwIiBkb24ndCBzdGFydCB3aXRoIGEgY2FwaXRhbC4gKFZsYWQKCSAgICBTYW5kcmluaSkKU29sdXRpb246ICAgTWFrZSB0aGUgbWVzc2FnZXMgY29uc2lzdGVudC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuMDI2ClByb2JsZW06ICAgICoucGF0Y2ggZmlsZXMgYXJlIG5vdCByZWNvZ25pemVkIGFzIGRpZmYgZmlsZXMuICBJbiBhIHNjcmlwdCBhCgkgICAgIlZBUj12YWwiIGFyZ3VtZW50IGFmdGVyICJlbnYiIGlzbid0IGlnbm9yZWQuICBQSFAgc2NyaXB0cyBhcmUgbm90CgkgICAgcmVjb2duaXplZC4KU29sdXRpb246ICAgQWRkICoucGF0Y2ggZm9yIGRpZmYgZmlsZXR5cGVzLiAgSWdub3JlICJWQVI9dmFsIi4gIFJlY29nbml6ZSBQSFAKCSAgICBzY3JpcHRzLiAoUm9tYW4gTmV1aGF1c2VyKQpGaWxlczoJICAgIHJ1bnRpbWUvZmlsZXR5cGUudmltLCBydW50aW1lL3NjcmlwdHMudmltCgpQYXRjaCA2LjEuMDI3ClByb2JsZW06ICAgIFdoZW4gJ2ZvbGRjb2x1bW4nIGlzIG5vbi16ZXJvLCBhIHNwZWNpYWwgY2hhcmFjdGVyIHRoYXQgd3JhcHMgdG8KCSAgICB0aGUgbmV4dCBsaW5lIGRpc3R1cmJzIHRoZSBmb2xkY29sdW1uIGhpZ2hsaWdodGluZy4gIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykKU29sdXRpb246ICAgT25seSB1c2UgdGhlIHNwZWNpYWwgaGlnaGxpZ2h0aW5nIHdoZW4gZHJhd2luZyB0ZXh0IGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMDI4ClByb2JsZW06ICAgIENsaWVudC1zZXJ2ZXI6IFdoZW4gYSAtLXJlbW90ZS1leHByIGZhaWxzLCBWaW0gc3RpbGwgZXhpdHMgd2l0aAoJICAgIHN0YXR1cyB6ZXJvLgpTb2x1dGlvbjogICBFeGl0IFZpbSB3aXRoIGEgbm9uLXplcm8gc3RhdHVzIHRvIGluZGljYXRlIHRoZSAtLXJlbW90ZS1leHByCgkgICAgZmFpbGVkLiAoVGhvbWFzIFNjb3R0IFVyYmFuKQpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4wMjkKUHJvYmxlbTogICAgV2hlbiAnZW5jb2RpbmcnIGlzIGFuIDgtYml0IGVuY29kaW5nIG90aGVyIHRoYW4gImxhdGluMSIsIGVkaXRpbmcKCSAgICBhIHV0Zi04IG9yIG90aGVyIFVuaWNvZGUgZmlsZSB1c2VzIHRoZSB3cm9uZyBjb252ZXJzaW9uLiAoSmFuCgkgICAgRmVkYWspClNvbHV0aW9uOiAgIERvbid0IHVzZSBVbmljb2RlIHRvIGxhdGluMSBjb252ZXJzaW9uIGZvciA4LWJpdCBlbmNvZGluZ3Mgb3RoZXIKCSAgICB0aGFuICJsYXRpbjEiLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjAzMApQcm9ibGVtOiAgICBXaGVuIENUUkwtTiBpcyBtYXBwZWQgaW4gSW5zZXJ0IG1vZGUsIGl0IGlzIGFsc28gbWFwcGVkIGFmdGVyCgkgICAgQ1RSTC1YIENUUkwtTiwgd2hpbGUgaXQgaXMgbm90IG1hcHBlZCBhZnRlciBDVFJMLVggQ1RSTC1GLgoJICAgIChLb250cmEgR2VyZ2VseSkKU29sdXRpb246ICAgRG9uJ3QgbWFwIENUUkwtTiBhZnRlciBDVFJMLVggQ1RSTC1OLiAgU2FtZSBmb3IgQ1RSTC1QLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKClBhdGNoIDYuMS4wMzEKUHJvYmxlbTogICAgQ3lnd2luOiBYeGQgY291bGQgcmVhZCBhIGZpbGUgaW4gdGV4dCBtb2RlIGluc3RlYWQgb2YgYmluYXJ5IG1vZGUuClNvbHV0aW9uOiAgIFVzZSAicmIiIG9yICJydCIgd2hlbiBuZWVkZWQuIChQYXZvbCBKdWhhcykKRmlsZXM6CSAgICBzcmMveHhkL3h4ZC5jCgpQYXRjaCA2LjEuMDMyClByb2JsZW06ICAgIENhbid0IHNwZWNpZnkgYSBxdWlja2ZpeCBmaWxlIHdpdGhvdXQganVtcGluZyB0byB0aGUgZmlyc3QgZXJyb3IuClNvbHV0aW9uOiAgIEFkZCB0aGUgIjpjZ2V0ZmlsZSIgY29tbWFuZC4gKFllZ2FwcGFuIExha3NobWFuYW4pCkZpbGVzOgkgICAgcnVudGltZS9kb2MvaW5kZXgudHh0LCBydW50aW1lL2RvYy9xdWlja2ZpeC50eHQsIHNyYy9leF9jbWRzLmgsCgkgICAgc3JjL3F1aWNrZml4LmMKClBhdGNoIDYuMS4wMzMKUHJvYmxlbTogICAgR1VJOiBXaGVuIHRoZSBzZWxlY3Rpb24gaXMgbG9zdCBhbmQgdGhlIFZpc3VhbCBoaWdobGlnaHRpbmcgaXMKCSAgICBjaGFuZ2VkIHRvIHVuZGVybGluaW5nLCB0aGUgY3Vyc29yIGlzIGxlZnQgaW4gYSBkaWZmZXJlbnQKCSAgICBwb3NpdGlvbi4gKENocmlzdGlhbiBNaWNob24pClNvbHV0aW9uOiAgIFVwZGF0ZSB0aGUgY3Vyc29yIHBvc2l0aW9uIGFmdGVyIHJlZHJhd2luZyB0aGUgc2VsZWN0aW9uLgpGaWxlczoJICAgIHNyYy91aS5jCgpQYXRjaCA2LjEuMDM0ClByb2JsZW06ICAgIEEgQ1ZTIGRpZmYgZmlsZSBpc24ndCByZWNvZ25pemVkIGFzIGRpZmYgZmlsZXR5cGUuClNvbHV0aW9uOiAgIFNraXAgbGluZXMgc3RhcnRpbmcgd2l0aCAiPyAiIGJlZm9yZSBjaGVja2luZyBmb3IgYW4gIkluZGV4OiIgbGluZS4KRmlsZXM6CSAgICBydW50aW1lL3NjcmlwdHMudmltCgpQYXRjaCA2LjEuMDM1IChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMDE2KQpQcm9ibGVtOiAgICBXaW4zMjogT3V0cHV0dGluZyBIZWJyZXcgb3IgQXJhYmljIHRleHQgbWlnaHQgaGF2ZSBhIHByb2JsZW0gd2l0aAoJICAgIHJldmVyc2luZyBvbiBNUy1XaW5kb3dzIDk1Lzk4L01FLgpTb2x1dGlvbjogICBSZXN0b3JlIHRoZSBSZXZPdXQoKSBmdW5jdGlvbiBhbmQgdXNlIGl0IGluIHNwZWNpZmljIHNpdHVhdGlvbnMKCSAgICBvbmx5LiAoUm9uIEFhcm9uKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMS4wMzYKUHJvYmxlbTogICAgVGhpcyBjb21tYW5kIG1heSBjYXVzZSBhIGNyYXNoOiAiOnYvLi8sLy8taiIuIChSYWxmIEFyZW5zKQpTb2x1dGlvbjogICBDb21wdXRlIHRoZSByaWdodCBsZW5ndGggb2YgdGhlIHJlZ2V4cCB3aGVuIGl0J3MgZW1wdHkuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjEuMDM3ClByb2JsZW06ICAgIFdoZW4gJ2xhenlyZWRyYXcnIGlzIHNldCwgcHJlc3NpbmcgInEiIGF0IHRoZSBoaXQtZW50ZXIgcHJvbXB0CgkgICAgY2F1c2VzIGFuIGluY29tcGxldGUgcmVkcmF3IGFuZCB0aGUgY3Vyc29yIGlzbid0IHBvc2l0aW9uZWQuCgkgICAgKEx1Ym9taXIgSG9zdCkKU29sdXRpb246ICAgT3ZlcnJ1bGUgJ2xhenlyZWRyYXcnIHdoZW4gZG9fcmVkcmF3IGlzIHNldC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4wMzgKUHJvYmxlbTogICAgTXVsdGktYnl0ZTogV2hlbiBhICI6cyIgY29tbWFuZCBjb250YWlucyBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyCgkgICAgd2hlcmUgdGhlIHRyYWlsIGJ5dGUgaXMgJ34nIHRoZSB0ZXh0IGlzIG1lc3NlZCB1cC4KU29sdXRpb246ICAgUHJvcGVybHkgc2tpcCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgaW4gcmVndGlsZGUoKSAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4xLjAzOQpQcm9ibGVtOiAgICBXaGVuIGZvbGRzIGFyZSBkZWZpbmVkIGFuZCB0aGUgZmlsZSBpcyBjaGFuZ2VkIG91dHNpZGUgb2YgVmltLAoJICAgIHJlbG9hZGluZyB0aGUgZmlsZSBkb2Vzbid0IHVwZGF0ZSB0aGUgZm9sZHMuIChBbmRlcnMKCSAgICBTY2hhY2stTmllbHNlbikKU29sdXRpb246ICAgUmVjb21wdXRlIHRoZSBmb2xkcyBhZnRlciByZWxvYWRpbmcgdGhlIGZpbGUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMDQwClByb2JsZW06ICAgIFdoZW4gY2hhbmdpbmcgZGlyZWN0b3J5IGZvciBleHBhbmRpbmcgYSBmaWxlIG5hbWUgZmFpbHMgdGhlcmUgaXMKCSAgICBubyBlcnJvciBtZXNzYWdlLgpTb2x1dGlvbjogICBHaXZlIGFuIGVycm9yIG1lc3NhZ2UgZm9yIHRoaXMgc2l0dWF0aW9uLiAgRG9uJ3QgY2hhbmdlIGRpcmVjdG9yeQoJICAgIGlmIHdlIGNhbid0IHJldHVybiB0byB0aGUgb3JpZ2luYWwgZGlyZWN0b3J5LgpGaWxlczoJICAgIHNyYy9kaWZmLmMsIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvbWlzYzEuYywKCSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMDQxClByb2JsZW06ICAgICI6bWt2aW1yYyIgZG9lc24ndCBoYW5kbGUgYSBtYXBwaW5nIHRoYXQgaGFzIGEgbGVhZGluZyBzcGFjZSBpbgoJICAgIHRoZSByaHMuIChEYXZ5ZCBPbmRyZWprbykKU29sdXRpb246ICAgSW5zZXJ0IGEgQ1RSTC1WIGJlZm9yZSB0aGUgbGVhZGluZyBzcGFjZS4gIEFsc28gZGlzcGxheSBsZWFkaW5nCgkgICAgYW5kIHRyYWlsaW5nIHdoaXRlIHNwYWNlIGluIDw+IGZvcm0uCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYywgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4xLjA0MgpQcm9ibGVtOiAgICAidmltIC1yIiBkb2Vzbid0IHNob3cgYWxsIG1hdGNoZXMgd2hlbiAnd2lsZGlnbm9yZScgcmVtb3ZlcyBzd2FwCgkgICAgZmlsZXMuIChTdGV2ZSBUYWxsZXkpClNvbHV0aW9uOiAgIEtlZXAgYWxsIG1hdGNoaW5nIHN3YXAgZmlsZSBuYW1lcy4KRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCgpQYXRjaCA2LjEuMDQzClByb2JsZW06ICAgIEFmdGVyIHBhdGNoIDYuMS4wNDAgYSBmZXcgd2FybmluZ3MgYXJlIHByb2R1Y2VkLgpTb2x1dGlvbjogICBBZGQgYSB0eXBlIGNhc3QgdG8gImNoYXIgKiIgZm9yIG1jaF9jaGRpcigpLiAoQXhlbCBLaWVsaG9ybikKRmlsZXM6CSAgICBzcmMvZGlmZi5jLCBzcmMvZXhfZG9jbWQuYy5jLCBzcmMvbWlzYzEuYywgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xLjA0NCAoZXh0cmEpClByb2JsZW06ICAgIEdVSTogV2hlbiB1c2luZyB0aGUgZmluZC9yZXBsYWNlIGRpYWxvZyB3aXRoIHRleHQgdGhhdCBjb250YWlucyBhCgkgICAgc2xhc2gsIGFuIGludmFsaWQgc3Vic3RpdHV0ZSBjb21tYW5kIGlzIGdlbmVyYXRlZC4KCSAgICBPbiBXaW4zMiBhIGZpbmQgZG9lc24ndCB3b3JrIHdoZW4gJ2luc2VydG1vZGUnIGlzIHNldC4KU29sdXRpb246ICAgRXNjYXBlIHNsYXNoZXMgd2l0aCBhIGJhY2tzbGFzaC4KCSAgICBNYWtlIHRoZSBXaW4zMiwgTW90aWYgYW5kIEdUSyBndWkgdXNlIGNvbW1vbiBjb2RlIGZvciB0aGUKCSAgICBmaW5kL3JlcGxhY2UgZGlhbG9nLgoJICAgIEFkZCB0aGUgIm1hdGNoIGNhc2UiIG9wdGlvbiBmb3IgTW90aWYgYW5kIEdUSy4KRmlsZXM6CSAgICBzcmMvZmVhdHVyZS5oLCBzcmMvcHJvdG8vZ3VpLnBybywgc3JjL2d1aS5jLCBzcmMvZ3VpLmgsCgkgICAgc3JjL2d1aV9tb3RpZi5jLCBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjEuMDQ1ClByb2JsZW06ICAgIEluIFZpc3VhbCBtb2RlLCB3aXRoIGxvdHMgb2YgZm9sZHMgYW5kICdzY3JvbGxvZmYnIHNldCB0byA5OTksCgkgICAgbW92aW5nIHRoZSBjdXJzb3IgZG93biBuZWFyIHRoZSBlbmQgb2YgdGhlIGZpbGUgY2F1c2VzIHRoZSB0ZXh0IHRvCgkgICAganVtcCB1cCBhbmQgZG93bi4gKEx1Ym9taXIgSG9zdCkKU29sdXRpb246ICAgVGFrZSBpbnRvIGFjY291bnQgdGhhdCB0aGUgY3Vyc29yIG1heSBiZSBvbiB0aGUgbGFzdCBsaW5lIG9mIGEKCSAgICBjbG9zZWQgZm9sZC4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjEuMDQ2ClByb2JsZW06ICAgIFgxMSBHVUk6ICI6c2V0IGxzcD0yIGdjcj1uLXYtaTpob3IxLWJsaW5rb24wIiBkcmF3cyBhIGJsYWNrCgkgICAgcmVjdGFuZ2xlLiAgIjpzZXQgbHNwPTIgZ2NyPW4tdi1pOmhvcjEwLWJsaW5rb24wIiBtYWtlcyB0aGUgY3Vyc29yCgkgICAgZGlzYXBwZWFyLiAgKE5hbSBTdW5nSHl1bikKU29sdXRpb246ICAgQ29ycmVjdGx5IGNvbXB1dGUgdGhlIGhlaWdodCBvZiB0aGUgaG9yaXpvbnRhbCBjdXJzb3IuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMsIHNyYy9ndWlfeDExLmMKClBhdGNoIDYuMS4wNDcKUHJvYmxlbTogICAgV2hlbiBza2lwcGluZyBjb21tYW5kcyBhZnRlciBhbiBlcnJvciB3YXMgZW5jb3VudGVyZWQsIGV4cHJlc3Npb25zCgkgICAgZm9yICI6aWYiLCAiO2Vsc2VpZiIgYW5kICI6d2hpbGUiIGFyZSBzdGlsbCBldmFsdWF0ZWQuClNvbHV0aW9uOiAgIFNraXAgdGhlIGV4cHJlc3Npb24gYWZ0ZXIgYW4gZXJyb3IuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMDQ4ClByb2JsZW06ICAgIFVuaWNvZGUgMy4yIGNoYW5nZXMgd2VyZSBtaXNzaW5nIGEgZmV3IEhhbmd1bCBKYW1vIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIFJlY29nbml6ZSBtb3JlIGNoYXJhY3RlcnMgYXMgY29tcG9zaW5nIGNoYXJhY3RlcnMuIChKdW5nc2hpayBTaGluKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjEuMDQ5IChleHRyYSkKUHJvYmxlbTogICAgT24gYSAzMiBiaXQgZGlzcGxheSBhIHZhbGlkIGNvbG9yIG1heSBjYXVzZSBhbiBlcnJvciBtZXNzYWdlLAoJICAgIGJlY2F1c2UgaXRzIHBpeGVsIHZhbHVlIGlzIG5lZ2F0aXZlLiAoQ2hyaXMgUGF1bHNvbi1FbGxpcykKU29sdXRpb246ICAgQ2hlY2sgZm9yIC0xMTExMSBpbnN0ZWFkIG9mIHRoZSBjb2xvciBiZWluZyBuZWdhdGl2ZS4KCSAgICBEb24ndCBhZGQgb25lIHRvIHRoZSBwaXhlbCB2YWx1ZSwgLTEgbWF5IGJlIHVzZWQgZm9yIHdoaXRlLgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9ndWkuYywgc3JjL2d1aS5oLCBzcmMvZ3VpX2FtaWdhLmMsCgkgICAgc3JjL2d1aV9hdGhlbmEuYywgc3JjL2d1aV9iZW9zLmNjLCBzcmMvZ3VpX2d0a194MTEuYywKCSAgICBzcmMvZ3VpX21hYy5jLCBzcmMvZ3VpX21vdGlmLmMsIHNyYy9ndWlfcGhvdG9uLmMsCgkgICAgc3JjL2d1aV9yaXNjb3MuYywgc3JjL2d1aV93MTYuYywgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYywKCSAgICBzcmMvZ3VpX3gxMS5jLCBzcmMvbWJ5dGUuYywgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuMDUwIChkZXBlbmRzIG9uIDYuMS4wNDkpClByb2JsZW06ICAgIEFmdGVyIHBhdGNoIDYuMS4wNDkgdGhlIG5vbi1HVUkgdmVyc2lvbiBkb2Vzbid0IGNvbXBpbGUuClNvbHV0aW9uOiAgIEFkZCBhbiAjaWZkZWYgRkVBVF9HVUkuICAoUm9iZXJ0IFN0YW50b24pCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuMDUxIChkZXBlbmRzIG9uIDYuMS4wNDQpClByb2JsZW06ICAgIERvZXNuJ3QgY29tcGlsZSB3aXRoIEdVSSBhbmQgc21hbGwgZmVhdHVyZXMuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgI2lmIGZvciBnYV9hcHBlbmQoKS4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4xLjA1MgpQcm9ibGVtOiAgICBVbml4OiBUaGUgZXhlY3V0YWJsZSgpIGZ1bmN0aW9uIGRvZXNuJ3Qgd29yayB3aGVuIHRoZSAid2hpY2giCgkgICAgY29tbWFuZCBpc24ndCBhdmFpbGFibGUuClNvbHV0aW9uOiAgIEdvIHRocm91Z2ggJFBBVEggbWFudWFsbHkuICBBbHNvIG1ha2VzIGl0IHdvcmsgZm9yIFZNUy4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMDUzClByb2JsZW06ICAgIFdoZW4gJ3Nlc3Npb25vcHRpb25zJyBjb250YWlucyAiZ2xvYmFscyIsIG9yICJsb2NhbG9wdGlvbnMiIGFuZCBhbgoJICAgIG9wdGlvbiB2YWx1ZSBjb250YWlucyBhIGxpbmUgYnJlYWssIHRoZSByZXN1bHRpbmcgc2NyaXB0IGlzIHdyb25nLgpTb2x1dGlvbjogICBVc2UgIlxuIiBhbmQgIlxyIiBmb3IgYSBsaW5lIGJyZWFrLiAoU3JpbmF0aCBBdmFkaGFudWxhKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4wNTQKUHJvYmxlbTogICAgR1VJOiBBIG1vdXNlIGNsaWNrIGlzIG5vdCByZWNvZ25pemVkIGF0IHRoZSBtb3JlIHByb21wdCwgZXZlbiB3aGVuCgkgICAgJ21vdXNlJyBpbmNsdWRlcyAncicuClNvbHV0aW9uOiAgIFJlY29nbml6ZSBhIG1vdXNlIGNsaWNrIGF0IHRoZSBtb3JlIHByb21wdC4KCSAgICBBbHNvIGFjY2VwdCBhIG1vdXNlIGNsaWNrIGluIHRoZSBsYXN0IGxpbmUgaW4gdGhlIEdVSS4KCSAgICBBZGQgIm1sIiBlbnRyeSBpbiAnbW91c2VzaGFwZScuCkZpbGVzOgkgICAgc3JjL2d1aS5jLCBzcmMvbWVzc2FnZS5jLCBzcmMvbWlzYzEuYywgc3JjL21pc2MyLmMsIHNyYy9vcHRpb24uYywKCSAgICBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjEuMDU1ClByb2JsZW06ICAgIFdoZW4gZWRpdGluZyBhIGNvbXByZXNzZWQgZmlsZSwgVmltIHdpbGwgaW5zcGVjdCB0aGUgY29udGVudHMgdG8KCSAgICBndWVzcyB0aGUgZmlsZXR5cGUuClNvbHV0aW9uOiAgIERvbid0IHNvdXJjZSBzY3JpcHRzLnZpbSBmb3IgLlosIC5neiwgLmJ6MiwgLnppcCBhbmQgLnRneiBmaWxlcy4KRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbSwgcnVudGltZS9wbHVnaW4vZ3ppcC52aW0KClBhdGNoIDYuMS4wNTYKUHJvYmxlbTogICAgTG9hZGluZyB0aGUgU3ludGF4IG1lbnUgY2FuIHRha2UgcXVpdGUgYSBiaXQgb2YgdGltZS4KU29sdXRpb246ICAgQWRkIHRoZSAic2tpcF9zeW50YXhfc2VsX21lbnUiIHZhcmlhYmxlLiAgV2hlbiBpdCdzIGRlZmluZWQgdGhlCgkgICAgYXZhaWxhYmxlIHN5bnRheCBmaWxlcyBhcmUgbm90IGluIHRoZSBTeW50YXggbWVudS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9ndWkudHh0LCBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjEuMDU3ClByb2JsZW06ICAgIEFuIEVTQyBpbnNpZGUgYSBtYXBwaW5nIGRvZXNuJ3Qgd29yayBhcyBkb2N1bWVudGVkIHdoZW4KCSAgICAnaW5zZXJ0bW9kZScgaXMgc2V0LCBpdCBkb2VzIGdvIGZyb20gVmlzdWFsIG9yIE5vcm1hbCBtb2RlIHRvCgkgICAgSW5zZXJ0IG1vZGUuIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIE1ha2UgaXQgd29yayBhcyBkb2N1bWVudGVkLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjA1OApQcm9ibGVtOiAgICBXaGVuIHRoZXJlIGlzIGEgY2xvc2VkIGZvbGQganVzdCBhYm92ZSB0aGUgZmlyc3QgbGluZSBpbiB0aGUKCSAgICB3aW5kb3csIHVzaW5nIENUUkwtWCBDVFJMLVkgaW4gSW5zZXJ0IG1vZGUgd2lsbCBzaG93IG9ubHkgb25lIGxpbmUKCSAgICBvZiB0aGUgZm9sZC4gKEFsZXhleSBNYXJpbmljaGV2KQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSB0b3BsaW5lIGJ5IHB1dHRpbmcgaXQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBmb2xkLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMS4wNTkKUHJvYmxlbTogICAgIjpyZWRpciA+IH4vZmlsZSIgZG9lc24ndCB3b3JrLiAoU3RlcGhlbiBSYXNrdSkKU29sdXRpb246ICAgRXhwYW5kIGVudmlyb25tZW50IHZhcmlhYmxlcyBpbiB0aGUgIjpyZWRpciA+IiBhcmd1bWVudC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjA2MApQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0IGFuZCAnc2VsZWN0aW9uJyBpcyAiZXhjbHVzaXZlIiwgZGVsZXRpbmcKCSAgICBhIGNoYXJhY3RlciBqdXN0IGJlZm9yZSBhIHRhYiBjaGFuZ2VzIHRoZSB0YWIgaW50byBzcGFjZXMuICBVbmRvCgkgICAgZG9lc24ndCByZXN0b3JlIHRoZSB0YWIuIChIZWxtdXQgU3RpZWdsZXIpClNvbHV0aW9uOiAgIERvbid0IHJlcGxhY2UgdGhlIHRhYiBieSBzcGFjZXMgd2hlbiBpdCdzIG5vdCBuZWVkZWQuICBDb3JyZWN0bHkKCSAgICBzYXZlIHRoZSBsaW5lIGJlZm9yZSBpdCdzIGNoYW5nZWQuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjEuMDYxClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgYW5kICdzZWxlY3Rpb24nIGlzICJleGNsdXNpdmUiLCBhIFZpc3VhbAoJICAgIHNlbGVjdGlvbiB0aGF0IGVuZHMganVzdCBhZnRlciBhIHRhYiBkb2Vzbid0IGluY2x1ZGUgdGhhdCB0YWIgaW4KCSAgICB0aGUgaGlnaGxpZ2h0aW5nLiAgKEhlbG11dCBTdGllZ2xlcikKU29sdXRpb246ICAgVXNlIGEgZGlmZmVyZW50IHdheSB0byBleGNsdWRlIHRoZSBjaGFyYWN0ZXIgdW5kZXIgdGhlIGN1cnNvci4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4wNjIKUHJvYmxlbTogICAgVGhlICJtYW4iIGZpbGV0eXBlIHBsdWdpbiBkb2Vzbid0IHdvcmsgcHJvcGVybHkgb24gU29sYXJpcyA1LgpTb2x1dGlvbjogICBVc2UgYSBkaWZmZXJlbnQgd2F5IHRvIGRldGVjdCB0aGF0ICJtYW4gLXMiIHNob3VsZCBiZSB1c2VkLiAoSHVnaAoJICAgIFNhc3NlKQpGaWxlczoJICAgIHJ1bnRpbWUvZnRwbHVnaW4vbWFuLnZpbQoKUGF0Y2ggNi4xLjA2MwpQcm9ibGVtOiAgICBKYXZhIGluZGVudGluZyBkb2Vzbid0IHdvcmsgcHJvcGVybHkuClNvbHV0aW9uOiAgIElnbm9yZSBjb21tZW50cyB3aGVuIGNoZWNraW5nIGlmIHRoZSBpbmRlbnQgZG9lc24ndCBpbmNyZWFzZSBhZnRlcgoJICAgIGEgIn0iLgpGaWxlczoJICAgIHJ1bnRpbWUvaW5kZW50L2phdmEudmltCgpQYXRjaCA2LjEuMDY0ClByb2JsZW06ICAgIFRoZSBVUkxzIHRoYXQgdGhlIG5ldHJ3IHBsdWdpbiByZWNvZ25pemVkIGZvciBmdHAgYW5kIHJjcCBkaWQgbm90CgkgICAgY29uZm9ybSB0byB0aGUgc3RhbmRhcmQgbWV0aG9kOi8vW3VzZXJAXWhvc3RbOnBvcnRdL3BhdGguClNvbHV0aW9uOiAgIFVzZSBmdHA6Ly9bdXNlckBdaG9zdFtbOiNdcG9ydF0vcGF0aCwgd2hpY2ggc3VwcG9ydHMgYm90aCB0aGUgbmV3CgkgICAgYW5kIHRoZSBwcmV2aW91cyBzdHlsZS4gIEFsc28gYWRkZWQgYSBiaXQgb2YgZGF2L2NhZGF2ZXIgc3VwcG9ydC4KCSAgICAoQ2hhcmxlcyBDYW1wYmVsbCkKRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9uZXRydy52aW0KClBhdGNoIDYuMS4wNjUKUHJvYmxlbTogICAgVk1TOiBUaGUgY29sb3JzY2hlbWUsIGtleW1hcCBhbmQgY29tcGlsZXIgbWVudXMgYXJlIG5vdCBmaWxsZWQgaW4uClNvbHV0aW9uOiAgIElnbm9yZSBjYXNlIHdoZW4gbG9va2luZyBmb3IgIi52aW0iIGZpbGVzLiAoQ29lbiBFbmdlbGJhcnRzKQpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMS4wNjYgKGV4dHJhKQpQcm9ibGVtOiAgICBXaGVuIGNhbGxpbmcgc3lzdGVtKCkgaW4gYSBwbHVnaW4gcmVhZGluZyBzdGRpbiBoYW5ncy4KU29sdXRpb246ICAgRG9uJ3Qgc2V0IHRoZSB0ZXJtaW5hbCB0byBSQVcgbW9kZSB3aGVuIGl0IHdhc24ndCBpbiBSQVcgbW9kZQoJICAgIGJlZm9yZSB0aGUgc3lzdGVtKCkgY2FsbC4KRmlsZXM6CSAgICBzcmMvb3NfYW1pZ2EuYywgc3JjL29zX21zZG9zLmMsIHNyYy9vc19yaXNjb3MuYywgc3JjL29zX3VuaXguYywKCSAgICBzcmMvb3Nfd2luMTYuYywgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMS4wNjcKUHJvYmxlbTogICAgIjpzZXQgdmltaW5mbys9ZjAiIGlzIG5vdCB3b3JraW5nLiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBDaGVjayB0aGUgImYiIGZsYWcgaW5zdGVhZCBvZiAiJyIgaW4gJ3ZpbWluZm8nLgpGaWxlczoJICAgIHNyYy9tYXJrLmMKClBhdGNoIDYuMS4wNjgKUHJvYmxlbTogICAgV2hlbiBhIGZpbGUgaXMgcmVsb2FkZWQgYWZ0ZXIgaXQgd2FzIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0sIGRpZmYKCSAgICBtb2RlIGlzbid0IHVwZGF0ZWQuIChNaWNoYWVsIE5hdW1hbm4pClNvbHV0aW9uOiAgIEludmFsaWRhdGUgdGhlIGRpZmYgaW5mbyBzbyB0aGF0IGl0J3MgdXBkYXRlZCB3aGVuIG5lZWRlZC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4wNjkKUHJvYmxlbTogICAgV2hlbiAnc2hvd21hdGNoJyBpcyBzZXQgYW5kICIkIiBpcyBpbiAnY3BvcHRpb25zJywgdXNpbmcKCSAgICAiQ308RXNjPiIgbWF5IGZvcmdldCB0byByZW1vdmUgdGhlICIkIi4gKFByZWJlbiBHdWxkYmVyZykKU29sdXRpb246ICAgUmVzdG9yZSBkb2xsYXJfdmNvbCBhZnRlciBkaXNwbGF5aW5nIHRoZSBtYXRjaGluZyBjdXJzb3IgcG9zaXRpb24uCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjEuMDcwIChkZXBlbmRzIG9uIDYuMS4wNjApClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmcgZm9yIHNpZ25lZC91bnNpZ25lZCBtaXNtYXRjaC4gKE1pa2UgV2lsbGlhbXMpClNvbHV0aW9uOiAgIEFkZCBhIHR5cGVjYXN0IHRvIGludC4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMS4wNzEKUHJvYmxlbTogICAgV2hlbiAnc2VsZWN0aW9uJyBpcyBleGNsdXNpdmUsIGcgQ1RSTC1HIGluIFZpc3VhbCBtb2RlIGNvdW50cyBvbmUKCSAgICBjaGFyYWN0ZXIgdG9vIG11Y2guIChEYXZpZCBOZWNhcykKU29sdXRpb246ICAgU3VidHJhY3Qgb25lIGZyb20gdGhlIGVuZCBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMS4wNzIKUHJvYmxlbTogICAgV2hlbiBhIGZpbGUgbmFtZSBpbiBhIHRhZ3MgZmlsZSBzdGFydHMgd2l0aCBodHRwOi8vIG9yIHNvbWV0aGluZwoJICAgIGVsc2UgZm9yIHdoaWNoIHRoZXJlIGlzIGEgQnVmUmVhZENtZCBhdXRvY29tbWFuZCwgdGhlIGZpbGUgaXNuJ3QKCSAgICBvcGVuZWQgYW55d2F5LgpTb2x1dGlvbjogICBDaGVjayBpZiB0aGVyZSBpcyBhIG1hdGNoaW5nIEJ1ZlJlYWRDbWQgYXV0b2NvbW1hbmQgYW5kIHRyeSB0bwoJICAgIG9wZW4gdGhlIGZpbGUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvcHJvdG8vZmlsZWlvLnBybywgc3JjL3RhZy5jCgpQYXRjaCA2LjEuMDczIChleHRyYSkKUHJvYmxlbTogICAgQkM1OiBDYW4ndCBlYXNpbHkgc3BlY2lmeSBhIHRpbnksIHNtYWxsLCBub3JtYWwsIGJpZyBvciBodWdlCgkgICAgdmVyc2lvbi4KU29sdXRpb246ICAgQWxsb3cgc2VsZWN0aW5nIHRoZSB2ZXJzaW9uIHdpdGggdGhlIEZFQVRVUkVTIHZhcmlhYmxlLiAoQWppdAoJICAgIFRoYWtrYXIpCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1hawoKUGF0Y2ggNi4xLjA3NApQcm9ibGVtOiAgICBXaGVuICdjZHBhdGgnIGluY2x1ZGVzICIuLi8uLiIsIGNoYW5naW5nIHRvIGEgZGlyZWN0b3J5IGluIHdoaWNoCgkgICAgd2UgY3VycmVudGx5IGFscmVhZHkgYXJlIGRvZXNuJ3Qgd29yay4gIGZmX2NoZWNrX3Zpc2l0ZWQoKSBhZGRzCgkgICAgdGhlIGRpcmVjdG9yeSBib3RoIHdoZW4gdXNpbmcgaXQgYXMgdGhlIHJvb3QgZm9yIHNlYXJjaGluZyBhbmQgZm9yCgkgICAgdGhlIGFjdHVhbCBtYXRjaGVzLiAoU3RlcGhlbiBSYXNrdSkKU29sdXRpb246ICAgVXNlIGEgc2VwYXJhdGUgbGlzdCBmb3IgdGhlIGFscmVhZHkgc2VhcmNoZWQgZGlyZWN0b3JpZXMuCkZpbGVzOgkgICAgc3JjL21pc2MyLmMKClBhdGNoIDYuMS4wNzUgKGRlcGVuZHMgb24gNi4xLjA3MikKUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSBmaWxlaW8uYyBvbiBNUy1XaW5kb3dzLgpTb2x1dGlvbjogICBBZGQgYSBkZWNsYXJhdGlvbiBmb3IgdGhlICJwIiBwb2ludGVyLiAoTWFkb2thIE1hY2hpdGFuaSkKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4wNzYgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWNpbnRvc2g6IGV4cGxvcmVyIHBsdWdpbiBkb2Vzbid0IHdvcmsgb24gTWFjIENsYXNzaWMuCgkgICAgSU1FIGRvZXNuJ3Qgd29yay4gIERpYWxvZyBib3hlcyBkb24ndCB3b3JrIG9uIE1hYyBPUyBYClNvbHV0aW9uOiAgIEZpeCBleHBsb3JlciBwbHVnaW4gYW5kIGtleSBtb2RpZmllcnMuIChBeGVsIEtpZWxob3JuKQoJICAgIEZpeCBJTUUgc3VwcG9ydC4gKE11cmFva2EgVGFybykKCSAgICBEaXNhYmxlIGRpYWxvZyBib3hlcy4gKEJlbmppIEZpc2hlcikKRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZmVhdHVyZS5oLCBzcmMvZ3VpX21hYy5jLCBzcmMvb3NfbWFjLmMKClBhdGNoIDYuMS4wNzcKUHJvYmxlbTogICAgT24gYSBEZWJpYW4gc3lzdGVtIHdpdGggQUNMIGxpbmtpbmcgZmFpbHMuIChMdWJvbWlyIEhvc3QpClNvbHV0aW9uOiAgIFdoZW4gdGhlICJhY2wiIGxpYnJhcnkgaXMgdXNlZCwgY2hlY2sgaWYgdGhlICJhdHRyIiBsaWJyYXJ5IGlzCgkgICAgcHJlc2VudCBhbmQgdXNlIGl0LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2xpbmsuc2gKClBhdGNoIDYuMS4wNzgKUHJvYmxlbTogICAgV2hlbiB1c2luZyAnZm9sZG1ldGhvZCcgIm1hcmtlciIgYW5kIHRoZSBlbmQgbWFya2VyIGFwcGVhcnMgYmVmb3JlCgkgICAgdGhlIHN0YXJ0IG1hcmtlciBpbiB0aGUgZmlsZSwgbm8gZm9sZCBpcyBmb3VuZC4gKE5henJpIFJhbWxpeSkKU29sdXRpb246ICAgRG9uJ3QgbGV0IHRoZSBmb2xkIGRlcHRoIGdvIG5lZ2F0aXZlLgpGaWxlczoJICAgIHNyYy9mb2xkLmMKClBhdGNoIDYuMS4wNzkKUHJvYmxlbTogICAgV2hlbiB1c2luZyAicyIgaW4gVmlzdWFsIGJsb2NrIG1vZGUgd2l0aCAndmlydHVhbGVkaXQnIHNldCwgd2hlbgoJICAgIHRoZSBzZWxlY3RlZCBibG9jayBpcyBhZnRlciB0aGUgZW5kIG9mIHNvbWUgbGluZXMgdGhlIHdyb25nIHRleHQKCSAgICBpcyBpbnNlcnRlZCBhbmQgc29tZSBsaW5lcyBhcmUgc2tpcHBlZC4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIEluc2VydCB0aGUgcmlnaHQgdGV4dCBhbmQgZXh0ZW5kIHNob3J0IGxpbmVzLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4xLjA4MApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGdjYyB3aXRoIC91c3IvbG9jYWwgYWxyZWFkeSBpbiB0aGUgc2VhcmNoIHBhdGgsIGFkZGluZwoJICAgIGl0IGFnYWluIGNhdXNlcyBwcm9ibGVtcy4KU29sdXRpb246ICAgQWRqdXN0IGNvbmZpZ3VyZS5pbiB0byBhdm9pZCBhZGRpbmcgL3Vzci9sb2NhbC9pbmNsdWRlIGFuZAoJICAgIC91c3IvbG9jYWwvbGliIHdoZW4gdXNpbmcgR0NDIGFuZCB0aGV5IGFyZSBhbHJlYWR5IHVzZWQuIChKb2hhbm5lcwoJICAgIFplbGxuZXIpCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjEuMDgxClByb2JsZW06ICAgICI6aGVscCBDVFJMLVxfQ1RSTC1OIiBkb2Vzbid0IHdvcmsuICAoQ2hyaXN0aWFuIEouIFJvYmluc29uKQpTb2x1dGlvbjogICBEb3VibGUgdGhlIGJhY2tzbGFzaCB0byBhdm9pZCB0aGUgc3BlY2lhbCBtZWFuaW5nIG9mICJcXyIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjA4MgpQcm9ibGVtOiAgICBPbiBNUy1XaW5kb3dzIHRoZSB2aW1yY19leGFtcGxlLnZpbSBzY3JpcHQgaXMgc291cmNlZCBhbmQgdGhlbgoJICAgIG1zd2luLnZpbS4gIFRoaXMgZW5hYmxlcyB1c2luZyBzZWxlY3QgbW9kZSwgYnV0IHNpbmNlICJwIiBpcwoJICAgIG1hcHBlZCBpdCBkb2Vzbid0IHJlcGxhY2UgdGhlIHNlbGVjdGlvbi4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBtYXBwaW5nIG9mICJwIiBmcm9tIHZpbXJjX2V4YW1wbGUudmltLCBpdCdzIG9ic29sZXRlLgoJICAgIChWbGFkIFNhbmRyaW5pKQpGaWxlczoJICAgIHJ1bnRpbWUvdmltcmNfZXhhbXBsZS52aW0KClBhdGNoIDYuMS4wODMKUHJvYmxlbTogICAgV2hlbiAkTEFORyBpcyAic2siIG9yICJza19zayIsIHRoZSBTbG92YWsgbWVudSBmaWxlIGlzbid0IGZvdW5kLgoJICAgIChNYXJ0aW4gTGFja28pClNvbHV0aW9uOiAgIEd1ZXNzIHRoZSByaWdodCBtZW51IGZpbGUgYmFzZWQgb24gdGhlIHN5c3RlbS4KRmlsZXM6CSAgICBydW50aW1lL2xhbmcvbWVudV9za19zay52aW0KClBhdGNoIDYuMS4wODQgKGRlcGVuZHMgb24gNi4xLjA4MCkKUHJvYmxlbTogICAgImluY2x1ZGUiIGFuZCAibGliIiBhcmUgbWl4ZWQgdXAgd2hlbiBjaGVja2luZyB0aGUgZGlyZWN0b3JpZXMgZ2NjCgkgICAgYWxyZWFkeSBzZWFyY2hlcy4KU29sdXRpb246ICAgU3dhcCB0aGUgdmFyaWFibGUgbmFtZXMuIChTdW5IbyBLaW0pCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjEuMDg1ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgQ1RSTC1PIENUUkwtXCBDVFJMLU4gZnJvbSBJbnNlcnQgbW9kZSwgdGhlIGRpc3BsYXllZAoJICAgIG1vZGUgIihpbnNlcnQpIiBpc24ndCByZW1vdmVkLiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBDbGVhciB0aGUgY29tbWFuZCBsaW5lLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjA4NiAoZGVwZW5kcyBvbiA2LjEuMDQ5KQpQcm9ibGVtOiAgICBUaGUgZ3VpZmcgY29sb3IgZm9yIEN1cnNvcklNIGRvZXNuJ3QgdGFrZSBlZmZlY3QuClNvbHV0aW9uOiAgIFVzZSB0aGUgZm9yZWdyb3VuZCBjb2xvciB3aGVuIGl0J3MgZGVmaW5lZC4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMS4wODcKUHJvYmxlbTogICAgQSB0aGVzYXVydXMgd2l0aCBKYXBhbmVzZSBjaGFyYWN0ZXJzIGhhcyBwcm9ibGVtcyB3aXRoIGNoYXJhY3RlcnMKCSAgICBpbiBkaWZmZXJlbnQgd29yZCBjbGFzc2VzLgpTb2x1dGlvbjogICBPbmx5IHNlcGFyYXRlIHdvcmRzIHdpdGggc2luZ2xlLWJ5dGUgbm9uLXdvcmQgY2hhcmFjdGVycy4KCSAgICAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMS4wODggKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogbm8gZGVidWdnaW5nIGluZm8gaXMgZ2VuZXJhdGVkLiAgVGFncyBmaWxlIGV4Y2x1ZGVzIC5jcHAKCSAgICBmaWxlcy4KU29sdXRpb246ICAgQWRkICIvbWFwIiB0byBjb21waWxlciBmbGFncy4gIEFkZCAiKi5jcHAiIHRvIGN0YWdzIGNvbW1hbmQuCgkgICAgKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjEuMDg5ClByb2JsZW06ICAgIE9uIEJTREkgc3lzdGVtcyB0aGVyZSBpcyBubyBzc19zcCBmaWVsZCBpbiBzdGFja190LiAoUm9iZXJ0IEphbikKU29sdXRpb246ICAgVXNlIHNzX2Jhc2UgaW5zdGVhZC4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9jb25maWcuaC5pbiwKCSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMDkwClByb2JsZW06ICAgIENUUkwtRiBnZXRzIHN0dWNrIHdoZW4gJ3Njcm9sbG9mZicgaXMgbm9uLXplcm8gYW5kIHRoZXJlIGlzIGEgbWl4CgkgICAgb2YgbG9uZyB3cmFwcGluZyBsaW5lcyBhbmQgYSBub24td3JhcHBpbmcgbGluZS4KU29sdXRpb246ICAgQ2hlY2sgdGhhdCBDVFJMLUYgc2Nyb2xscyBhdCBsZWFzdCBvbmUgbGluZS4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjEuMDkxClByb2JsZW06ICAgIEdUSzogQ2FuJ3QgY2hhbmdlIHByZWVkaXRzdGF0ZSB3aXRob3V0IHNldHRpbmcgJ2ltYWN0aXZhdGVrZXknLgpTb2x1dGlvbjogICBBZGQgc29tZSBjb2RlIHRvIGNoYW5nZSBwcmVlZGl0c3RhdGUgZm9yIE9uVGhlU3BvdC4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjEuMDkyClByb2JsZW06ICAgICI6bWFwY2xlYXIgPGJ1ZmZlcj4iIGRvZXNuJ3Qgd29yay4gKFNyaWthbnRoIEFkYXlhcGFsYW0pClNvbHV0aW9uOiAgIEFsbG93IGFuIGFyZ3VtZW50IGZvciAiOm1hcGNsZWFyIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oCgpQYXRjaCA2LjEuMDkzIChleHRyYSkKUHJvYmxlbTogICAgTWFjIGFuZCBNUy1XaW5kb3dzIEdVSTogd2hlbiBzY3JvbGxpbmcgd2hpbGUgIjpzIiBpcyB3b3JraW5nIHRoZQoJICAgIHJlc3VsdHMgY2FuIGJlIG1lc3NlZCB1cCwgYmVjYXVzZSB0aGUgY3Vyc29yIGlzIG1vdmVkLgpTb2x1dGlvbjogICBEaXNhbGxvdyBkaXJlY3Qgc2Nyb2xsaW5nIHdoZW4gbm90IHdhaXRpbmcgZm9yIGEgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMsIHNyYy9ndWlfdzE2LmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMS4wOTQKUHJvYmxlbTogICAgQ3lnd2luOiBQYXNzaW5nIGEgZmlsZSBuYW1lIHRoYXQgaGFzIGJhY2tzbGFzaGVzIGlzbid0IGhhbmRsZWQKCSAgICB2ZXJ5IHdlbGwuClNvbHV0aW9uOiAgIENvbnZlcnQgZmlsZSBuYW1lIGFyZ3VtZW50cyB0byBQb3NpeC4gIChDaHJpcyBNZXRjYWxmKQpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4wOTUKUHJvYmxlbTogICAgV2hlbiB1c2luZyBzaWducyBjYW4gZnJlZSBhbiBpdGVtIG9uIHRoZSBzdGFjay4KCSAgICBPdmVycnVsaW5nIHNpZ24gY29sb3JzIGRvZXNuJ3Qgd29yay4gKFNyaWthbnRoIFNhbmthcmFuKQpTb2x1dGlvbjogICBEb24ndCBmcmVlIHRoZSBpdGVtIG9uIHRoZSBzdGFjay4gIFVzZSBOVUxMIGluc3RlYWQgb2YgIm5vbmUiIGZvcgoJICAgIHRoZSB2YWx1ZSBvZiB0aGUgY29sb3IuCkZpbGVzOgkgICAgc3JjL2d1aV94MTEuYwoKUGF0Y2ggNi4xLjA5NgpQcm9ibGVtOiAgICBXaGVuIGVyYXNpbmcgdGhlIHJpZ2h0IGhhbHZlIG9mIGEgZG91YmxlLWJ5dGUgY2hhcmFjdGVyLCBpdCBtYXkKCSAgICBjYXVzZSBmdXJ0aGVyIGNoYXJhY3RlcnMgdG8gYmUgZXJhc2VkLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBNYWtlIHN1cmUgb25seSBvbmUgY2hhcmFjdGVyIGlzIGVyYXNlZC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4wOTcgKGRlcGVuZHMgb24gNi4xLjA5MCkKUHJvYmxlbTogICAgV2hlbiAnc2Nyb2xsb2ZmJyBpcyBzZXQgdG8gYSBodWdlIHZhbHVlLCBDVFJMLUYgYXQgdGhlIGVuZCBvZiB0aGUKCSAgICBmaWxlIHNjcm9sbHMgb25lIGxpbmUuIChMdWJvbWlyIEhvc3QpClNvbHV0aW9uOiAgIERvbid0IHNjcm9sbCB3aGVuIENUUkwtRiBkZXRlY3RzIHRoZSBlbmQtb2YtZmlsZS4KRmlsZXM6CSAgICBzcmMvbW92ZS5jCgpQYXRjaCA2LjEuMDk4ClByb2JsZW06ICAgIE1TLVdpbmRvd3M6IFdoZW4gdGhlIHh4ZCBwcm9ncmFtIGlzIHVuZGVyICJjOlxwcm9ncmFtIGZpbGVzIiB0aGUKCSAgICAiQ29udmVydCB0byBIZXgiIG1lbnUgZG9lc24ndCB3b3JrLiAoQnJpYW4gTWF0aGlzKQpTb2x1dGlvbjogICBQdXQgdGhlIHBhdGggdG8geHhkIGluIGRvdWJsZSBxdW90ZXMuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4xLjA5OQpQcm9ibGVtOiAgICBNZW1vcnkgY29ycnVwdGVkIHdoZW4gY2xvc2luZyBhIGZvbGQgd2l0aCBtb3JlIHRoYW4gOTk5OTkgbGluZXMuClNvbHV0aW9uOiAgIEFsbG9jYXRlIG1vcmUgc3BhY2UgZm9yIHRoZSBmb2xkIHRleHQuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMTAwIChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMDg4KQpQcm9ibGVtOiAgICBXaW4zMjogVkM1IGFuZCBlYXJsaWVyIGRvbid0IHN1cHBvcnQgdGhlIC9tYXBpbmZvIG9wdGlvbi4KU29sdXRpb246ICAgQWRkICIvbWFwaW5mbyIgb25seSB3aGVuICJNQVA9bGluZXMiIGlzIHNwZWNpZmllZC4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjEuMTAxClByb2JsZW06ICAgIEFmdGVyIHVzaW5nICI6b3B0aW9ucyIgdGhlIHRhYnN0b3Agb2YgYSBuZXcgd2luZG93IGlzIDE1LiAgRW50cnkKCSAgICBpbiAiOm9wdGlvbnMiIHdpbmRvdyBmb3IgJ2F1dG93cml0ZWFsbCcgaXMgd3JvbmcuIChBbnRvaW5lIEoKCSAgICBNZWNoZWx5bmNrKSAgQ2FuJ3QgaW5zZXJ0IGEgc3BhY2UgaW4gYW4gb3B0aW9uIHZhbHVlLgpTb2x1dGlvbjogICBVc2UgIjpzZXRsb2NhbCIgaW5zdGVhZCBvZiAiOnNldCIuICBDaGFuZ2UgImF3IiB0byAiYXdhIi4KCSAgICBEb24ndCBtYXAgc3BhY2UgaW4gSW5zZXJ0IG1vZGUuCkZpbGVzOgkgICAgcnVudGltZS9vcHR3aW4udmltCgpQYXRjaCA2LjEuMTAyClByb2JsZW06ICAgIFVucHJpbnRhYmxlIGFuZCBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgaW4gYSBzdGF0dXNsaW5lIGl0ZW0gYXJlIG5vdAoJICAgIHRydW5jYXRlZCBjb3JyZWN0bHkuIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIENvdW50IHRoZSB3aWR0aCBvZiBjaGFyYWN0ZXJzIGluc3RlYWQgb2YgdGhlIG51bWJlciBvZiBieXRlcy4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4xMDMKUHJvYmxlbTogICAgQSBmdW5jdGlvbiByZXR1cm5pbmcgZnJvbSBhIHdoaWxlIGxvb3AsIHdpdGggJ3ZlcmJvc2UnIHNldCB0byAxMgoJICAgIG9yIGhpZ2hlciwgZG9lc24ndCBtZW50aW9uIHRoZSByZXR1cm4gdmFsdWUuICBBIGZ1bmN0aW9uIHdpdGggdGhlCgkgICAgJ2Fib3J0JyBhdHRyaWJ1dGUgbWF5IHJldHVybiAtMSB3aGlsZSB0aGUgdmVyYm9zZSBtZXNzYWdlIHNheXMKCSAgICBzb21ldGhpbmcgZWxzZS4KU29sdXRpb246ICAgTW92ZSB0aGUgdmVyYm9zZSBtZXNzYWdlIGFib3V0IHJldHVybmluZyBmcm9tIGEgZnVuY3Rpb24gdG8KCSAgICBjYWxsX2Z1bmMoKS4gKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjEwNApQcm9ibGVtOiAgICBHQ0MgMy4xIGFwcGVhcnMgdG8gaGF2ZSBhbiBvcHRpbWl6ZXIgcHJvYmxlbSB0aGF0IG1ha2VzIHRlc3QgMwoJICAgIGNyYXNoLgpTb2x1dGlvbjogICBGb3IgR0NDIDMuMSBhZGQgLWZuby1zdHJlbmd0aC1yZWR1Y2UgdG8gYXZvaWQgdGhlIG9wdGltaXplciBidWcuCgkgICAgRmlsdGVyIG91dCBleHRyYSBpbmZvIGZyb20gImdjYyAtLXZlcnNpb24iLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4xLjEwNQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIGRlZmF1bHQgZm9yICdzaGVsbHBpcGUnIGRvZXNuJ3QgcmVkaXJlY3Qgc3RkZXJyLiAoRGlvbgoJICAgIE5pY29sYWFzKQpTb2x1dGlvbjogICBSZWRpcmVjdCBzdGRlcnIsIGRlcGVuZGluZyBvbiB0aGUgc2hlbGwgKGxpa2UgZm9yICdzaGVsbHJlZGlyJykuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjEuMTA2ClByb2JsZW06ICAgIFRoZSBtYXplIHByb2dyYW0gY3Jhc2hlcy4KU29sdXRpb246ICAgQ2hhbmdlICIxMSIgdG8gIjI3IiBhbmQgaXQgd29ya3MuIChHcmVnIFJvZWxvZnMpCkZpbGVzOgkgICAgcnVudGltZS9tYWNyb3MvbWF6ZS9tYXplYW5zaS5jCgpQYXRjaCA2LjEuMTA3ClByb2JsZW06ICAgIFdoZW4gJ2xpc3QnIGlzIHNldCB0aGUgY3VycmVudCBsaW5lIGluIHRoZSBlcnJvciB3aW5kb3cgbWF5IGJlCgkgICAgZGlzcGxheWVkIHdyb25nLiAoTXVyYW9rYSBUYXJvKQpTb2x1dGlvbjogICBEb24ndCBjb250aW51ZSB0aGUgbGluZSBhZnRlciB0aGUgJCBoYXMgYmVlbiBkaXNwbGF5ZWQgYW5kIHRoZQoJICAgIHJpZ2h0bW9zdCBjb2x1bW4gaXMgcmVhY2hlZC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4xMDgKUHJvYmxlbTogICAgV2hlbiBpbnRlcnJ1cHRpbmcgYSBmaWx0ZXIgY29tbWFuZCBzdWNoIGFzICIhIXNsZWVwIDIwIiB0aGUgZmlsZQoJICAgIGJlY29tZXMgcmVhZC1vbmx5LiAoTWFyayBCcmFkZXIpClNvbHV0aW9uOiAgIE9ubHkgc2V0IHRoZSByZWFkLW9ubHkgZmxhZyB3aGVuIG9wZW5pbmcgYSBidWZmZXIgaXMgaW50ZXJydXB0ZWQuCgkgICAgV2hlbiB0aGUgc2hlbGwgY29tbWFuZCB3YXMgaW50ZXJydXB0ZWQsIHJlYWQgdGhlIG91dHB1dCB0aGF0IHdhcwoJICAgIHByb2R1Y2VkIHNvIGZhci4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4xMDkKUHJvYmxlbTogICAgV2hlbiAnZWFkaXJlY3Rpb24nIGlzICJob3IiLCB1c2luZyBDVFJMLVcgPSBkb2Vzbid0IGVxdWFsaXplIHRoZQoJICAgIHdpbmRvdyBoZWlnaHRzLiAoUm9tYW4gTmV1aGF1c2VyKQpTb2x1dGlvbjogICBJZ25vcmUgJ2VhZGlyZWN0aW9uJyBmb3IgQ1RSTC1XID0KRmlsZXM6CSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMS4xMTAKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOmJhZGQgZmlsZSIgd2hlbiAiZmlsZSIgaXMgYWxyZWFkeSBwcmVzZW50IGJ1dCBub3QKCSAgICBsaXN0ZWQsIGl0IHN0YXlzIHVubGlzdGVkLiAoRGF2aWQgRnJleSkKU29sdXRpb246ICAgU2V0ICdidWZsaXN0ZWQnLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4xLjExMQpQcm9ibGVtOiAgICBJdCdzIG5vdCBwb3NzaWJsZSB0byBkZXRlY3QgdXNpbmcgdGhlIFVuaXggc291cmNlcyBvbiBXaW4zMiBvciBNYWMuClNvbHV0aW9uOiAgIEFkZCBoYXMoIm1hY3VuaXgiKSBhbmQgaGFzKCJ3aW4zMnVuaXgiKS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjExMgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6YXJnZG8iLCAiOmJ1ZmRvIiBvciAiOndpbmRvIiwgQ1RSTC1PIGRvZXNuJ3QgZ28gdG8KCSAgICB0aGUgY3Vyc29yIHBvc2l0aW9uIGZyb20gYmVmb3JlIHRoaXMgY29tbWFuZCBidXQgZXZlcnkgcG9zaXRpb24KCSAgICB3aGVyZSB0aGUgYXJndW1lbnQgd2FzIGV4ZWN1dGVkLgpTb2x1dGlvbjogICBPbmx5IHJlbWVtYmVyIHRoZSBjdXJzb3IgcG9zaXRpb24gZnJvbSBiZWZvcmUgdGhlICI6YXJnZG8iLAoJICAgICI6YnVmZG8iIGFuZCAiOndpbmRvIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYywgc3JjL21hcmsuYwoKUGF0Y2ggNi4xLjExMwpQcm9ibGVtOiAgICAiOmJ1ZmRvIGJ3aXBlIiBvbmx5IHdpcGVzIG91dCBoYWxmIHRoZSBidWZmZXJzLiAgKFJvbWFuIE5ldWhhdXNlcikKU29sdXRpb246ICAgRGVjaWRlIHdoYXQgYnVmZmVyIHRvIGdvIHRvIG5leHQgYmVmb3JlIGV4ZWN1dGluZyB0aGUgY29tbWFuZC4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjExNApQcm9ibGVtOiAgICAiOnB5dGhvbiBpbXBvcnQgdmltIiwgIjpweXRob24gdmltLmN1cnJlbnQuYnVmZmVyWzA6MF0gPSBbXSIgZ2l2ZXMKCSAgICBhIGxhbGxvYygwKSBlcnJvci4gKENocmlzIFNvdXRoZXJuKQpTb2x1dGlvbjogICBEb24ndCBhbGxvY2F0ZSBhbiBhcnJheSB3aGVuIGl0J3Mgc2l6ZSBpcyB6ZXJvLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4xLjExNQpQcm9ibGVtOiAgICAiZGFzIiBvbiB0aGUgd2hpdGUgc3BhY2UgYXQgdGhlIGVuZCBvZiBhIHBhcmFncmFwaCBkb2VzIG5vdCBkZWxldGUKCSAgICB0aGUgIi4iIHRoZSBzZW50ZW5jZSBlbmRzIHdpdGguClNvbHV0aW9uOiAgIERvbid0IGV4Y2x1ZGUgdGhlIGxhc3QgY2hhcmFjdGVyIHdoZW4gaXQgaXMgbm90IHdoaXRlIHNwYWNlLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4xLjExNgpQcm9ibGVtOiAgICBXaGVuICdlbmRvZmxpbmUnIGlzIGNoYW5nZWQgd2hpbGUgJ2JpbmFyeScgaXMgc2V0IGEgZmlsZSBzaG91bGQgYmUKCSAgICBjb25zaWRlcmVkIG1vZGlmaWVkLiAoT2xhZiBCdWRkZW5oYWdlbikKU29sdXRpb246ICAgUmVtZW1iZXIgdGhlICdlb2wnIHZhbHVlIHdoZW4gZWRpdGluZyBzdGFydGVkIGFuZCBjb25zaWRlciB0aGUKCSAgICBmaWxlIGNoYW5nZWQgd2hlbiB0aGUgY3VycmVudCB2YWx1ZSBpcyBkaWZmZXJlbnQgYW5kICdiaW5hcnknIGlzCgkgICAgc2V0LiAgQWxzbyBmaXggdGhhdCB0aGUgd2luZG93IHRpdGxlIGlzbid0IHVwZGF0ZWQgd2hlbiAnZmYnIG9yCgkgICAgJ2JpbicgY2hhbmdlcy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMS4xMTcKUHJvYmxlbTogICAgU21hbGwgcHJvYmxlbSB3aXRoIGVkaXRpbmcgYSBmaWxlIG92ZXIgZnRwOiBhbmQgd2l0aCBDeWd3aW4uClNvbHV0aW9uOiAgIFJlbW92ZSBhIGRvdCBmcm9tIGEgIjpub3JtYWwiIGNvbW1hbmQuICBVc2UgImN5Z2RyaXZlIiB3aGVyZQoJICAgIGFwcHJvcHJpYXRlLiAgKENoYXJsZXMgQ2FtcGJlbGwpCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vbmV0cncudmltCgpQYXRjaCA2LjEuMTE4ClByb2JsZW06ICAgIFdoZW4gYSBmaWxlIGluIGRpZmYgbW9kZSBpcyByZWxvYWRlZCBiZWNhdXNlIGl0IGNoYW5nZWQgb3V0c2lkZQoJICAgIG9mIFZpbSwgb3RoZXIgd2luZG93cyBpbiBkaWZmIG1vZGUgYXJlIG5vdCBhbHdheXMgdXBkYXRlZC4KCSAgICAoTWljaGFlbCBOYXVtYW5uKQpTb2x1dGlvbjogICBBZnRlciByZWxvYWRpbmcgYSBmaWxlIGluIGRpZmYgbW9kZSBtYXJrIGFsbCB3aW5kb3dzIGluIGRpZmYgbW9kZQoJICAgIGZvciByZWRyYXcuCkZpbGVzOgkgICAgc3JjL2RpZmYuYwoKUGF0Y2ggNi4xLjExOSAoZXh0cmEpClByb2JsZW06ICAgIFdpdGggdGhlIFNuaWZmIGludGVyZmFjZSwgdXNpbmcgU25pZmYgNC4wLlggb24gSFAtVVgsIHRoZXJlIG1heSBiZQoJICAgIGEgY3Jhc2ggd2hlbiBjb25uZWN0aW5nIHRvIFNuaWZmLgpTb2x1dGlvbjogICBJbml0aWFsaXplIHNuaWZmX3JxX3NlcCBzdWNoIHRoYXQgaXRzIHZhbHVlIGNhbiBiZSBjaGFuZ2VkLgoJICAgIChNYXJ0aW4gRWdsb2ZmKQpGaWxlczoJICAgIHNyYy9pZl9zbmlmZi5jCgpQYXRjaCA2LjEuMTIwIChkZXBlbmRzIG9uIDYuMS4wOTcpClByb2JsZW06ICAgIFdoZW4gJ3Njcm9sbG9mZicgaXMgbm9uLXplcm8gYW5kIHRoZXJlIGFyZSBmb2xkcywgQ1RSTC1GIGF0IHRoZQoJICAgIGVuZCBvZiB0aGUgZmlsZSBzY3JvbGxzIHBhcnQgb2YgYSBjbG9zZWQgZm9sZC4gIChMdWJvbWlyIEhvc3QpClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgZmlyc3QgbGluZSB0byB0aGUgc3RhcnQgb2YgYSBmb2xkLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMS4xMjEgKGRlcGVuZHMgb24gNi4xLjA5OCkKUHJvYmxlbTogICAgV2hlbiBzdGFydGluZyBTZWxlY3QgbW9kZSBmcm9tIEluc2VydCBtb2RlLCB0aGVuIHVzaW5nIHRoZSBQYXN0ZQoJICAgIG1lbnUgZW50cnksIHRoZSBjdXJzb3IgaXMgbGVmdCBiZWZvcmUgdGhlIGxhc3QgcGFzdGVkIGNoYXJhY3Rlci4KCSAgICAoTWFyaW8gU2Nod2VpZ2xlcikKU29sdXRpb246ICAgU2V0IHRoZSBjdXJzb3IgZm9yIEluc2VydCBtb2RlIG9uZSBjaGFyYWN0ZXIgdG8gdGhlIHJpZ2h0LgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMS4xMjIKUHJvYmxlbTogICAgIjpmaWxlIG5hbWUiIGNyZWF0ZXMgYSBuZXcgYnVmZmVyIHRvIGhvbGQgdGhlIG9sZCBidWZmZXIgbmFtZSwKCSAgICB3aGljaCBiZWNvbWVzIHRoZSBhbHRlcm5hdGUgZmlsZS4gIFRoaXMgYnVmZmVyIGlzIHVuZXhwZWN0ZWRseQoJICAgIGxpc3RlZC4KU29sdXRpb246ICAgQ3JlYXRlIHRoZSBidWZmZXIgZm9yIHRoZSBhbHRlcm5hdGUgbmFtZSB1bmxpc3RlZC4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuMTIzClByb2JsZW06ICAgIEEgIjptYXRjaCIgY29tbWFuZCB3aXRoIG1vcmUgdGhhbiBvbmUgYXJndW1lbnQgZG9lc24ndCByZXBvcnQgYW4KCSAgICBlcnJvci4KU29sdXRpb246ICAgQ2hlY2sgZm9yIGV4dHJhIGNoYXJhY3RlcnMuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMTI0ClByb2JsZW06ICAgIFdoZW4gdHJ5aW5nIHRvIGV4aXQgYW5kIHRoZXJlIGlzIGEgaGlkZGVuIGJ1ZmZlciB0aGF0IGhhZCAnZW9sJwoJICAgIG9mZiBhbmQgJ2Jpbicgc2V0IGV4aXRpbmcgaXNuJ3QgcG9zc2libGUuIChKb2huIE1jR293YW4pClNvbHV0aW9uOiAgIFNldCBiX3N0YXJ0X2VvbCB3aGVuIGNsZWFyaW5nIHRoZSBidWZmZXIuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuMTI1ClByb2JsZW06ICAgIEV4cGxvcmVyIHBsdWdpbiBhc2tzIGZvciBzYXZpbmcgYSBtb2RpZmllZCBidWZmZXIgZXZlbiB3aGVuIGl0J3MKCSAgICBvcGVuIGluIGFub3RoZXIgd2luZG93IGFzIHdlbGwuClNvbHV0aW9uOiAgIENvdW50IHRoZSBudW1iZXIgb2Ygd2luZG93cyB1c2luZyB0aGUgYnVmZmVyLgpGaWxlczoJICAgIHJ1bnRpbWUvcGx1Z2luL2V4cGxvcmVyLnZpbQoKUGF0Y2ggNi4xLjEyNgpQcm9ibGVtOiAgICBBZGRpbmcgdGhlIGNob2ljZXMgaW4gdGhlIHN5bnRheCBtZW51IGlzIGNvbnN1bWluZyBtdWNoIG9mIHRoZQoJICAgIHN0YXJ0dXAgdGltZSBvZiB0aGUgR1VJIHdoaWxlIGl0J3Mgbm90IG9mdGVuIHVzZWQuClNvbHV0aW9uOiAgIE9ubHkgYWRkIHRoZSBjaG9pY2VzIHdoZW4gdGhlIHVzZXIgd2FudHMgdG8gdXNlIHRoZW0uCkZpbGVzOgkgICAgTWFrZWZpbGUsIHJ1bnRpbWUvbWFrZW1lbnUudmltLCBydW50aW1lL21lbnUudmltLAoJICAgIHJ1bnRpbWUvc3lubWVudS52aW0sIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4xLjEyNwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICItLXJlbW90ZSBmaWxlIiBhbmQgdGhlIHNlcnZlciBoYXMgJ2luc2VydG1vZGUnIHNldCwKCSAgICBjb21tYW5kcyBhcmUgaW5zZXJ0ZWQgaW5zdGVhZCBvZiBiZWluZyBleGVjdXRlZC4gKE5pa2xhcyBWb2xiZXJzKQpTb2x1dGlvbjogICBHbyB0byBOb3JtYWwgbW9kZSBhZ2FpbiBhZnRlciB0aGUgIjpkcm9wIiBjb21tYW5kLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4xMjgKUHJvYmxlbTogICAgVGhlIGV4cHJlc3Npb24gImlucHV0KCd2ZXJ5IGxvbmcgcHJvbXB0JykiIHB1dHMgdGhlIGN1cnNvciBpbiB0aGUKCSAgICB3cm9uZyBsaW5lIChjb2x1bW4gaXMgT0spLgpTb2x1dGlvbjogICBBZGQgdGhlIHdyYXBwZWQgbGluZXMgdG8gdGhlIGluZGVudC4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4xLjEyOQpQcm9ibGVtOiAgICBPbiBTb2xhcmlzIGVkaXRpbmcgImZpbGUvIiBhbmQgdGhlbiAiZmlsZSIgcmVzdWx0cyBpbiB1c2luZyB0aGUKCSAgICBzYW1lIGJ1ZmZlci4gIChKaW0gQmF0dGxlKQpTb2x1dGlvbjogICBCZWZvcmUgdXNpbmcgc3RhdCgpLCBjaGVjayB0aGF0IHRoZXJlIGlzIG5vIGlsbGVnYWwgdHJhaWxpbmcKCSAgICBzbGFzaC4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWcuaC5pbiwgc3JjL2NvbmZpZ3VyZS5pbiwKCSAgICBzcmMvbWFjcm9zLmggc3JjL21pc2MyLmMsIHNyYy9wcm90by9taXNjMi5wcm8KClBhdGNoIDYuMS4xMzAKUHJvYmxlbTogICAgVGhlIGRvY3VtZW50YXRpb24gZm9yIHNvbWUgb2YgdGhlICdlcnJvcmZvcm1hdCcgaXRlbXMgaXMgdW5jbGVhci4KU29sdXRpb246ICAgQWRkIG1vcmUgZXhhbXBsZXMgYW5kIGV4cGxhaW4gaGFyZCB0byB1bmRlcnN0YW5kIGl0ZW1zLiAoU3RlZmFuCgkgICAgUm9lbWVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3F1aWNrZml4LnR4dAoKUGF0Y2ggNi4xLjEzMQpQcm9ibGVtOiAgICBYMTEgR1VJOiB3aGVuIGV4cGFuZGluZyBhIENTSSBieXRlIGluIHRoZSBpbnB1dCBzdHJlYW0gdG8gS19DU0ksCgkgICAgdGhlIENTSSBieXRlIGl0c2VsZiBpc24ndCBjb3BpZWQuClNvbHV0aW9uOiAgIENvcHkgdGhlIENTSSBieXRlLgpGaWxlczoJICAgIHNyYy9ndWlfeDExLmMKClBhdGNoIDYuMS4xMzIKUHJvYmxlbTogICAgRXhlY3V0aW5nIGEgcmVnaXN0ZXIgaW4gRXggbW9kZSBtYXkgY2F1c2UgY29tbWFuZHMgdG8gYmUgc2tpcHBlZC4KCSAgICAoSm9obiBNY0dvd2FuKQpTb2x1dGlvbjogICBJbiBFeCBtb2RlIHVzZSBhbiBleHRyYSBjaGVjayBpZiB0aGUgcmVnaXN0ZXIgY29udGVudHMgd2FzCgkgICAgY29uc3VtZWQsIHRvIGF2b2lkIGlucHV0IGdvZXMgaW50byB0aGUgdHlwZWFoZWFkIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjEzMwpQcm9ibGVtOiAgICBXaGVuIGRyYXdpbmcgZG91YmxlLXdpZGUgY2hhcmFjdGVycyBpbiB0aGUgc3RhdHVzbGluZSwgbWF5IGNsZWFyCgkgICAgaGFsZiBvZiBhIGNoYXJhY3Rlci4gKFlhc3VoaXJvIE1hdHN1bW90bykKU29sdXRpb246ICAgRm9yY2UgcmVkcmF3IG9mIHRoZSBuZXh0IGNoYXJhY3RlciBieSBzZXR0aW5nIHRoZSBhdHRyaWJ1dGVzCgkgICAgaW5zdGVhZCBvZiBwdXR0aW5nIGEgTlVMIGluIFNjcmVlbkxpbmVzW10uICBEbyBwdXQgYSBOVUwgaW4KCSAgICBTY3JlZW5MaW5lc1tdIHdoZW4gb3ZlcndyaXRpbmcgaGFsZiBvZiBhIGRvdWJsZS13aWRlIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4xMzQKUHJvYmxlbTogICAgQW4gZXJyb3IgZm9yIGEgdHJhaWxpbmcgYXJndW1lbnQgb2YgIjptYXRjaCIgc2hvdWxkIG5vdCBiZSBnaXZlbgoJICAgIGFmdGVyICI6aWYgMCIuIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBPbmx5IGRvIHRoZSBjaGVjayB3aGVuIGV4ZWN1dGluZyBjb21tYW5kcy4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjEzNQpQcm9ibGVtOiAgICBQYXNzaW5nIGEgY29tbWFuZCB0byB0aGUgc2hlbGwgdGhhdCBpbmNsdWRlcyBhIG5ld2xpbmUgYWx3YXlzIGhhcwoJICAgIGEgYmFja3NsYXNoIGJlZm9yZSB0aGUgbmV3bGluZS4KU29sdXRpb246ICAgUmVtb3ZlIG9uZSBiYWNrc2xhc2ggYmVmb3JlIHRoZSBuZXdsaW5lLiAgKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4xMzYKUHJvYmxlbTogICAgV2hlbiAkVEVSTSBpcyAibGludXgiIHRoZSBkZWZhdWx0IGZvciAnYmFja2dyb3VuZCcgaXMgImRhcmsiLCBldmVuCgkgICAgdGhvdWdoIHRoZSBHVUkgdXNlcyBhIGxpZ2h0IGJhY2tncm91bmQuIChIdWdoIEFsbGVuKQpTb2x1dGlvbjogICBEb24ndCBtYXJrIHRoZSBvcHRpb24gYXMgc2V0IHdoZW4gZGVmYXVsdGluZyB0byAiZGFyayIgZm9yIHRoZQoJICAgIGxpbnV4IGNvbnNvbGUuICBBbHNvIHJlc2V0ICdiYWNrZ3JvdW5kJyB0byAibGlnaHQiIHdoZW4gdGhlIEdVSQoJICAgIGhhcyBhIGxpZ2h0IGJhY2tncm91bmQuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjEuMTM3ClByb2JsZW06ICAgIENvbnZlcnRpbmcgdG8gSFRNTCBoYXMgYSBjbHVtc3kgd2F5IG9mIGRlYWxpbmcgd2l0aCB0YWJzIHdoaWNoIG1heQoJICAgIGNoYW5nZSB0aGUgaGlnaGxpZ2h0aW5nLgpTb2x1dGlvbjogICBSZXBsYWNlIHRhYnMgd2l0aCBzcGFjZXMgYWZ0ZXIgY29udmVydGluZyBhIGxpbmUgdG8gSFRNTC4gKFByZWJlbgoJICAgIEd1bGRiZXJnKQpGaWxlczoJICAgIHJ1bnRpbWUvc3ludGF4LzJodG1sLnZpbQoKUGF0Y2ggNi4xLjEzOCAoZGVwZW5kcyBvbiA2LjEuMTI2KQpQcm9ibGVtOiAgICBBZGRpbmcgZXh0cmEgaXRlbXMgdG8gdGhlIFN5bnRheCBtZW51IGNhbid0IGJlIGRvbmUgd2hlbiB0aGUgIlNob3cKCSAgICBpbmRpdmlkdWFsIGNob2ljZXMiIG1lbnUgaXMgdXNlZC4KU29sdXRpb246ICAgVXNlICI6cnVudGltZSEiIGluc3RlYWQgb2YgIjpzb3VyY2UiLCBzbyB0aGF0IGFsbCBzeW5tZW51LnZpbQoJICAgIGZpbGVzIGluIHRoZSBydW50aW1lIHBhdGggYXJlIGxvYWRlZC4gKFNlcnZhdGl1cyBCcmFuZHQpCgkgICAgQWxzbyBmaXggdGhhdCBhIHRyYW5zbGF0ZWQgbWVudSBjYW4ndCBiZSByZW1vdmVkLgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMS4xMzkKUHJvYmxlbTogICAgQ3lnd2luOiBQQVRIX01BWCBpcyBub3QgZGVmaW5lZC4KU29sdXRpb246ICAgSW5jbHVkZSBsaW1pdHMuaC4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuMTQwClByb2JsZW06ICAgIEN5Z3dpbjogIjphcmdzIGBscyAqLmNgIiBkb2VzIG5vdCB3b3JrIGlmIHRoZSBzaGVsbCBjb21tYW5kCgkgICAgcHJvZHVjZXMgQ1IgTkwgbGluZSBzZXBhcmF0b3JzLgpTb2x1dGlvbjogICBSZW1vdmUgdGhlIENSIGNoYXJhY3RlcnMgb3Vyc2VsdmVzLiAoUGF2b2wgSnVoYXMpCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xLjE0MQpQcm9ibGVtOiAgICAiOndpbmNtZCBneCIgbWF5IGNhdXNlIHByb2JsZW1zIHdoZW4gbWl4ZWQgd2l0aCBvdGhlciBjb21tYW5kcy4KCSAgICAiOndpbmNtZCBjIiBkb2Vzbid0IGNsb3NlIHRoZSB3aW5kb3cgaW1tZWRpYXRlbHkuIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIFBhc3MgdGhlIGV4dHJhIGNvbW1hbmQgY2hhcmFjdGVyIGRpcmVjdGx5IGluc3RlYWQgb2YgdXNpbmcgdGhlCgkgICAgc3R1ZmYgYnVmZmVyIGFuZCBjYWxsIGV4X2Nsb3NlKCkgZGlyZWN0bHkuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9ub3JtYWwuYywgc3JjL3Byb3RvL25vcm1hbC5wcm8sCgkgICAgc3JjL3Byb3RvL3dpbmRvdy5wcm8sIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4xLjE0MgpQcm9ibGVtOiAgICBEZWZpbmluZyBwYXJhZ3JhcGhzIHdpdGhvdXQgYSBzZXBhcmF0aW5nIGJsYW5rIGxpbmUgaXNuJ3QKCSAgICBwb3NzaWJsZS4gIFBhcmFncmFwaHMgY2FuJ3QgYmUgZm9ybWF0dGVkIGF1dG9tYXRpY2FsbHkuClNvbHV0aW9uOiAgIEFsbG93IGRlZmluaW5nIHBhcmFncmFwaHMgd2l0aCBsaW5lcyB0aGF0IGVuZCBpbiB3aGl0ZSBzcGFjZS4KCSAgICBBZGRlZCB0aGUgJ3cnIGFuZCAnYScgZmxhZ3MgaW4gJ2Zvcm1hdG9wdGlvbnMnLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2NoYW5nZS50eHQsIHNyYy9lZGl0LmMsIHNyYy9taXNjMS5jLCBzcmMvbm9ybWFsLmMsCgkgICAgc3JjL29wdGlvbi5oLCBzcmMvb3BzLmMsIHNyYy9wcm90by9lZGl0LnBybywgc3JjL3Byb3RvL29wcy5wcm8sCgkgICAgc3JjL3ZpbS5oCgpQYXRjaCA2LjEuMTQzIChkZXBlbmRzIG9uIDYuMS4xNDIpClByb2JsZW06ICAgIEF1dG8gZm9ybWF0dGluZyBuZWFyIHRoZSBlbmQgb2YgdGhlIGZpbGUgbW92ZXMgdGhlIGN1cnNvciB0byBhCgkgICAgd3JvbmcgcG9zaXRpb24uICBJbiBJbnNlcnQgbW9kZSBzb21lIGxpbmVzIGFyZSBtYWRlIG9uZSBjaGFyIHRvbwoJICAgIG5hcnJvdy4gIFdoZW4gZGVsZXRpbmcgYSBsaW5lIHVuZG8gbWlnaHQgbm90IGFsd2F5cyB3b3JrIHByb3Blcmx5LgpTb2x1dGlvbjogICBEb24ndCBhbHdheXMgbW92ZSB0byB0aGUgZW5kIG9mIHRoZSBsaW5lIGluIHRoZSBsYXN0IGxpbmUuICBEb24ndAoJICAgIHBvc2l0aW9uIHRoZSBjdXJzb3IgcGFzdCB0aGUgZW5kIG9mIHRoZSBsaW5lIGluIEluc2VydCBtb2RlLgoJICAgIEFmdGVyIGRlbGV0aW5nIGEgbGluZSBzYXZlIHRoZSBjdXJzb3IgbGluZSBmb3IgdW5kby4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvb3BzLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjE0NApQcm9ibGVtOiAgICBPYnRhaW5pbmcgdGhlIHNpemUgb2YgYSBsaW5lIGluIHNjcmVlbiBjaGFyYWN0ZXJzIGNhbiBiZSB3cm9uZy4KCSAgICBBIHBvaW50ZXIgbWF5IHdyYXAgYXJvdW5kIHplcm8uClNvbHV0aW9uOiAgIEluIHdpbl9saW5ldGFic2l6ZSgpIGNoZWNrIGZvciBhIE1BWENPTCBsZW5ndGggYXJndW1lbnQuIChKaW0KCSAgICBEdW5sZWF2eSkKRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jCgpQYXRjaCA2LjEuMTQ1ClByb2JsZW06ICAgIEdUSzogRHJhZyZkcm9wIHdpdGggbW9yZSB0aGFuIDMgZmlsZXMgbWF5IGNhdXNlIGEgY3Jhc2guIChNaWNrYWVsCgkgICAgTWFyY2hhbmQpClNvbHV0aW9uOiAgIFJld3JpdGUgdGhlIGNvZGUgdGhhdCBwYXJzZXMgdGhlIHJlY2VpdmVkIGxpc3Qgb2YgZmlsZXMgdG8gYmUgbW9yZQoJICAgIHJvYnVzdC4KRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvZ3VpX2d0a194MTEuYwoKUGF0Y2ggNi4xLjE0NgpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiBXaGVuICRIT01FIGlzIGNvbnN0cnVjdGVkIGZyb20gJEhPTUVEUklWRSBhbmQKCSAgICAkSE9NRVBBVEgsIGl0IGlzIG5vdCB1c2VkIGZvciBzdG9yaW5nIHRoZSBfdmltaW5mbyBmaWxlLiAgKE5vcm1hbAoJICAgIERpYW1vbmQpClNvbHV0aW9uOiAgIFNldCAkSE9NRSB3aXRoIHRoZSB2YWx1ZSBvYnRhaW5lZCBmcm9tICRIT01FRFJJVkUgYW5kICRIT01FUEFUSC4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4xLjE0NyAoZXh0cmEpClByb2JsZW06ICAgIE1TLVdpbmRvd3M6IFdoZW4gYSBkaWFsb2cgaGFzIG5vIGRlZmF1bHQgYnV0dG9uLCBwcmVzc2luZyBFbnRlcgoJICAgIGVuZHMgaXQgYW55d2F5IGFuZCBhbGwgYnV0dG9ucyBhcmUgc2VsZWN0ZWQuClNvbHV0aW9uOiAgIERvbid0IGVuZCBhIGRpYWxvZyB3aGVuIHRoZXJlIGlzIG5vIGRlZmF1bHQgYnV0dG9uLiAgRG9uJ3Qgc2VsZWN0CgkgICAgYWxsIGJ1dHRvbiB3aGVuIHRoZXJlIGlzIG5vIGRlZmF1bHQuIChWaW5jZSBOZWdyaSkKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMTQ4IChleHRyYSkKUHJvYmxlbTogICAgTVMtV2luZG93czogQUNMIGlzIG5vdCBwcm9wZXJseSBzdXBwb3J0ZWQuClNvbHV0aW9uOiAgIEFkZCBhbiBhY2Nlc3MoKSByZXBsYWNlbWVudCB0aGF0IGFsc28gd29ya3MgZm9yIEFDTC4gKE1pa2UKCSAgICBXaWxsaWFtcykKRmlsZXM6CSAgICBydW50aW1lL2RvYy9lZGl0aW5nLnR4dCwgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMS4xNDkgKGV4dHJhKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiBDYW4ndCB1c2UgZGlmZiBtb2RlIGZyb20gdGhlIGZpbGUgZXhwbG9yZXIuClNvbHV0aW9uOiAgIEFkZCBhICJkaWZmIHdpdGggVmltIiBjb250ZXh0IG1lbnUgZW50cnkuIChEYW4gU2hhcnApCkZpbGVzOgkgICAgR3ZpbUV4dC9ndmltZXh0LmNwcCwgR3ZpbUV4dC9ndmltZXh0LmgKClBhdGNoIDYuMS4xNTAKUHJvYmxlbTogICAgT1MvMiwgTVMtV2luZG93cyBhbmQgTVMtRE9TOiBXaGVuICdzaGVsbHNsYXNoJyBpcyBzZXQgZ2V0Y3dkKCkKCSAgICBzdGlsbCB1c2VzIGJhY2tzbGFzaC4gKFllZ2FwcGFuIExha3NobWFuYW4pClNvbHV0aW9uOiAgIEFkanVzdCBzbGFzaGVzIGluIGdldGN3ZCgpLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4xNTEgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIE5URlMgc3Vic3RyZWFtIGlzbid0IGNvcGllZC4KU29sdXRpb246ICAgQ29weSB0aGUgc3Vic3RyZWFtIHdoZW4gbWFraW5nIGEgYmFja3VwIGNvcHkuIChNdXJhb2thIFRhcm8pCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvb3Nfd2luMzIuYywgc3JjL3Byb3RvL29zX3dpbjMyLnBybwoKUGF0Y2ggNi4xLjE1MgpQcm9ibGVtOiAgICBXaGVuICRMQU5HIGlzIGlzbzg4NTktMSB0cmFuc2xhdGVkIG1lbnVzIGFyZSBub3QgdXNlZC4KU29sdXRpb246ICAgQ2hhbmdlIGlzbzg4NTkgdG8gaXNvXzg4NTkuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4xLjE1MwpQcm9ibGVtOiAgICBTZWFyY2hpbmcgaW4gaW5jbHVkZWQgZmlsZXMgbWF5IHNlYXJjaCByZWN1cnNpdmVseSB3aGVuIHRoZSBwYXRoCgkgICAgc3RhcnRzIHdpdGggIi4uLyIuICAoU3ZlbiBCZXJrdmVucy1NYXR0aGlqc3NlKQpTb2x1dGlvbjogICBDb21wYXJlIGZ1bGwgZmlsZSBuYW1lcywgdXNlIGlub2RlL2RldmljZSB3aGVuIHBvc3NpYmxlLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4xLjE1NCAoZXh0cmEpClByb2JsZW06ICAgIERKR1BQOiAidmltIC1oIiBsZWF2ZXMgdGhlIGN1cnNvciBpbiBhIHdyb25nIHBvc2l0aW9uLgpTb2x1dGlvbjogICBEb24ndCBwb3NpdGlvbiB0aGUgY3Vyc29yIHVzaW5nIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGVzLiAoSmltCgkgICAgRHVubGVhdnkpCkZpbGVzOgkgICAgc3JjL29zX21zZG9zLmMKClBhdGNoIDYuMS4xNTUKUHJvYmxlbTogICAgV2luMzI6IEN1cnNvciBtYXkgc29tZXRpbWVzIGRpc2FwcGVhciBpbiBJbnNlcnQgbW9kZS4KU29sdXRpb246ICAgQ2hhbmdlICJob3IxMCIgaW4gJ2d1aWN1cnNvcicgdG8gImhvcjE1Ii4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjE1NgpQcm9ibGVtOiAgICBDb252ZXJzaW9uIGJldHdlZW4gREJDUyBhbmQgVUNTLTIgaXNuJ3QgaW1wbGVtZW50ZWQgY2xlYW5seS4KU29sdXRpb246ICAgQ2xlYW4gdXAgYSBmZXcgdGhpbmdzLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjEuMTU3ClByb2JsZW06ICAgICdobHNlYXJjaCcgaGlnaGxpZ2h0cyBvbmx5IHRoZSBzZWNvbmQgY29tbWEgaW4gIiwsLCwsIiB3aXRoCgkgICAgIi8sXEA8PVteLF0qIi4gKFByZWJlbiBHdWxkYmVyZykKU29sdXRpb246ICAgQWxzbyBjaGVjayBmb3IgYW4gZW1wdHkgbWF0Y2ggdG8gc3RhcnQganVzdCBhZnRlciBhIHByZXZpb3VzCgkgICAgbWF0Y2guCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMTU4ClByb2JsZW06ICAgICJ6cyIgYW5kICJ6ZSIgZG9uJ3Qgd29yayBjb3JyZWN0bHkgd2l0aCAiOnNldCBub3dyYXAgc2lzbz0xIi4KCSAgICAoUHJlYmVuIEd1bGRiZXJnKQpTb2x1dGlvbjogICBUYWtlICdzaXNvJyBpbnRvIGFjY291bnQgd2hlbiBjb21wdXRpbmcgdGhlIGhvcml6b250YWwgc2Nyb2xsCgkgICAgcG9zaXRpb24gZm9yICJ6cyIgYW5kICJ6ZSIuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMTU5ClByb2JsZW06ICAgIFdoZW4gZXhwYW5kaW5nIGFuIGFiYnJldmlhdGlvbiB0aGF0IGluY2x1ZGVzIGEgbXVsdGktYnl0ZQoJICAgIGNoYXJhY3RlciB0b28gbWFueSBjaGFyYWN0ZXJzIGFyZSBkZWxldGVkLiAoQW5kcmV5IFVyYXpvdikKU29sdXRpb246ICAgRGVsZXRlIHRoZSBhYmJyZXZpYXRpb24gY291bnRpbmcgY2hhcmFjdGVycyBpbnN0ZWFkIG9mIGJ5dGVzLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKClBhdGNoIDYuMS4xNjAKUHJvYmxlbTogICAgIjokcmVhZCBmaWxlLmd6IiBkb2Vzbid0IHdvcmsuIChQcmViZW4gR3VsZGJlcmcpClNvbHV0aW9uOiAgIERvbid0IHVzZSB0aGUgJ1sgbWFyayBhZnRlciBpdCBoYXMgYmVjb21lIGludmFsaWQuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZ3ppcC52aW0KClBhdGNoIDYuMS4xNjEgKGRlcGVuZHMgb24gNi4xLjE1OCkKUHJvYmxlbTogICAgV2FybmluZyBmb3Igc2lnbmVkL3Vuc2lnbmVkIGNvbXBhcmUuICBDYW4gc2V0ICdzaXNvJyB0byBhIG5lZ2F0aXZlCgkgICAgdmFsdWUuIChNaWtlIFdpbGxpYW1zKQpTb2x1dGlvbjogICBBZGQgYSB0eXBlY2FzdC4gIEFkZCBhIGNoZWNrIGZvciAnc2lzbycgYmVpbmcgbmVnYXRpdmUuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jLCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMS4xNjIKUHJvYmxlbTogICAgUHl0aG9uIGludGVyZmFjZTogRGlkbid0IGluaXRpYWxpemUgdGhyZWFkcyBwcm9wZXJseS4KU29sdXRpb246ICAgQ2FsbCBQeUV2YWxfSW5pdFRocmVhZHMoKSB3aGVuIHN0YXJ0aW5nIHVwLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4xLjE2MwpQcm9ibGVtOiAgICBXaW4zMjogQ2FuJ3QgY29tcGlsZSB3aXRoIFB5dGhvbiBhZnRlciA2LjEuMTYyLgpTb2x1dGlvbjogICBEeW5hbWljYWxseSBsb2FkICBQeUV2YWxfSW5pdFRocmVhZHMoKS4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMS4xNjQKUHJvYmxlbTogICAgSWYgJ21vZGlmaWFibGUnIGlzIG9mZiwgY29udmVydGluZyB0byB4eGQgZmFpbHMgYW5kICdmaWxldHlwZScgaXMKCSAgICBjaGFuZ2VkIHRvICJ4eGQiIGFueXdheS4KU29sdXRpb246ICAgRG9uJ3QgY2hhbmdlICdmaWxldHlwZScgd2hlbiBjb252ZXJzaW9uIGZhaWxlZC4KRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjEuMTY1ClByb2JsZW06ICAgIE1ha2luZyBjaGFuZ2VzIGluIHNldmVyYWwgbGluZXMgYW5kIHRoZW4gYSBjaGFuZ2UgaW4gb25lIG9mIHRoZXNlCgkgICAgbGluZXMgdGhhdCBzcGxpdHMgaXQgaW4gdHdvIG9yIG1vcmUgbGluZXMsIHVuZG8gaW5mb3JtYXRpb24gd2FzCgkgICAgY29ycnVwdGVkLiAgTWF5IGNhdXNlIGEgY3Jhc2guIChEYXZlIEZpc2hidXJuKQpTb2x1dGlvbjogICBXaGVuIHNraXBwaW5nIHRvIHNhdmUgYSBsaW5lIGZvciB1bmRvIGJlY2F1c2UgaXQgd2FzIGFscmVhZHkKCSAgICBzYXZlZCwgbW92ZSBpdCB0byBiZWNvbWUgdGhlIGxhc3Qgc2F2ZWQgbGluZSwgc28gdGhhdCB3aGVuIHRoZQoJICAgIGNvbW1hbmQgY2hhbmdlcyB0aGUgbGluZSBjb3VudCBvdGhlciBzYXZlZCBsaW5lcyBhcmUgbm90IGludm9sdmVkLgpGaWxlczoJICAgIHNyYy91bmRvLmMKClBhdGNoIDYuMS4xNjYKUHJvYmxlbTogICAgV2hlbiAnYXV0b2luZGVudCcgaXMgc2V0IGFuZCBtc3dpbi52aW0gaGFzIGJlZW4gc291cmNlZCwgcGFzdGluZwoJICAgIHdpdGggQ1RSTC1WIGp1c3QgYWZ0ZXIgYXV0by1pbmRlbnRpbmcgcmVtb3ZlcyB0aGUgaW5kZW50LiAoU2hsb21pCgkgICAgRmlzaCkKU29sdXRpb246ICAgRmlyc3QgaW5zZXJ0IGFuICJ4IiBhbmQgZGVsZXRlIGl0IGFnYWluLCBzbyB0aGF0IHRoZSBhdXRvLWluZGVudAoJICAgIHJlbWFpbnMuCkZpbGVzOgkgICAgcnVudGltZS9tc3dpbi52aW0KClBhdGNoIDYuMS4xNjcKUHJvYmxlbTogICAgV2hlbiBnaXZpbmcgYSBuZWdhdGl2ZSBhcmd1bWVudCB0byAiOnJldGFiIiBzdHJhbmdlIHRoaW5ncyBzdGFydAoJICAgIGhhcHBlbmluZy4gKEhhbnMgR2luemVsKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBuZWdhdGl2ZSB2YWx1ZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuMTY4ClByb2JsZW06ICAgIFByZXNzaW5nIENUUkwtQyBhdCB0aGUgaGl0LWVudGVyIHByb21wdCBkb2Vzbid0IGVuZCB0aGUgcHJvbXB0LgpTb2x1dGlvbjogICBNYWtlIENUUkwtQyBzdG9wIHRoZSBoaXQtZW50ZXIgcHJvbXB0LgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMS4xNjkKUHJvYmxlbTogICAgYnVmZXhpc3RzKCkgZmluZHMgYSBidWZmZXIgYnkgdXNpbmcgdGhlIG5hbWUgb2YgYSBzeW1ib2xpYyBsaW5rIHRvCgkgICAgaXQsIGJ1dCBidWZucigpIGRvZXNuJ3QuIChZZWdhcHBhbiBMYWtzaG1hbmFuKQpTb2x1dGlvbjogICBXaGVuIGJ1Zm5yKCkgY2FuJ3QgZmluZCBhIGJ1ZmZlciwgdHJ5IHVzaW5nIHRoZSBzYW1lIG1ldGhvZCBhcwoJICAgIGJ1ZmV4aXN0cygpLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4xNzAKUHJvYmxlbTogICAgVXNpbmcgIjpta3Nlc3Npb24iIHVzZXMgdGhlIGRlZmF1bHQgc2Vzc2lvbiBmaWxlIG5hbWUsIGJ1dCAidmltCgkgICAgLVMiIGRvZXNuJ3QuIChIYW5zIEdpbnplbCkKU29sdXRpb246ICAgVXNlIHRoZSBkZWZhdWx0IHNlc3Npb24gZmlsZSBuYW1lIGlmICItUyIgaXMgdGhlIGxhc3QgY29tbWFuZAoJICAgIGxpbmUgYXJndW1lbnQgb3IgYW5vdGhlciBvcHRpb24gZm9sbG93cy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9zdGFydGluZy50eHQsIHNyYy9tYWluLmMKClBhdGNoIDYuMS4xNzEKUHJvYmxlbTogICAgV2hlbiBvcGVuaW5nIGEgbGluZSBqdXN0IGFib3ZlIGEgY2xvc2VkIGZvbGQgd2l0aCAiTyIgYW5kIHRoZQoJICAgIGNvbW1lbnQgbGVhZGVyIGlzIGF1dG9tYXRpY2FsbHkgaW5zZXJ0ZWQsIHRoZSBjdXJzb3IgaXMgZGlzcGxheWVkCgkgICAgaW4gdGhlIGZpcnN0IGNvbHVtbi4gKFN1bmctSHl1biBOYW0pClNvbHV0aW9uOiAgIFVwZGF0ZSB0aGUgZmxhZyB0aGF0IGluZGljYXRlcyB0aGUgY3Vyc29yIGlzIGluIGEgY2xvc2VkIGZvbGQuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMS4xNzIKUHJvYmxlbTogICAgQ29tbWFuZCBsaW5lIGNvbXBsZXRpb24gb2YgIjp0YWcgL3BhdCIgZG9lcyBub3Qgc2hvdyB0aGUgc2FtZQoJICAgIHJlc3VsdHMgYXMgdGhlIHRhZ3MgdGhlIGNvbW1hbmQgYWN0dWFsbHkgZmluZHMuIChHaWxsZXMgUm95KQpTb2x1dGlvbjogICBEb24ndCBtb2RpZnkgdGhlIHBhdHRlcm4gdG8gbWFrZSBpdCBhIHJlZ2V4cC4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL3RhZy5jCgpQYXRjaCA2LjEuMTczClByb2JsZW06ICAgIFdoZW4gdXNpbmcgcmVtb3RlIGNvbnRyb2wgdG8gZWRpdCBhIHBvc2l0aW9uIGluIGEgZmlsZSBhbmQgdGhpcwoJICAgIGZpbGUgaXMgdGhlIGN1cnJlbnQgYnVmZmVyIGFuZCBpdCdzIG1vZGlmaWVkLCB0aGUgd2luZG93IGlzIHNwbGl0CgkgICAgYW5kIHRoZSAiOmRyb3AiIGNvbW1hbmQgZmFpbHMuClNvbHV0aW9uOiAgIERvbid0IHNwbGl0IHRoZSB3aW5kb3csIGtlZXAgZWRpdGluZyB0aGUgc2FtZSBidWZmZXIuCgkgICAgVXNlIHRoZSAiOmRyb3AiIGNvbW1hbmQgaW4gVmlzVmltIHRvIGF2b2lkIHRoZSBwcm9ibGVtIHRoZXJlLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvcHJvdG8vZXhfY21kczIucHJvLAoJICAgIFZpc1ZpbS9Db21tYW5kcy5jcHAKClBhdGNoIDYuMS4xNzQKUHJvYmxlbTogICAgSXQgaXMgZGlmZmljdWx0IHRvIGtub3cgaW4gYSBzY3JpcHQgd2hldGhlciBhbiBvcHRpb24gbm90IG9ubHkKCSAgICBleGlzdHMgYnV0IHJlYWxseSB3b3Jrcy4KU29sdXRpb246ICAgQWRkICJleGlzdHMoJytvcHRpb24nKSIuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4xNzUKUHJvYmxlbTogICAgV2hlbiByZWFkaW5nIGNvbW1hbmRzIGZyb20gYSBwaXBlIGFuZCBhIENUUkwtQyBpcyBwcmVzc2VkLCBWaW0KCSAgICB3aWxsIGhhbmcuIChQaWV0IERlbHBvcnQpClNvbHV0aW9uOiAgIERvbid0IGtlZXAgcmVhZGluZyBjaGFyYWN0ZXJzIHRvIGNsZWFyIHR5cGVhaGVhZCB3aGVuIGFuIGludGVycnVwdAoJICAgIHdhcyBkZXRlY3RlZCwgc3RvcCB3aGVuIGEgc2luZ2xlIENUUkwtQyBpcyByZWFkLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMsIHNyYy91aS5jCgpQYXRjaCA2LjEuMTc2ClByb2JsZW06ICAgIFdoZW4gdGhlIHN0YWNrIGxpbWl0IGlzIHZlcnkgYmlnIGEgZmFsc2Ugb3V0LW9mLXN0YWNrIGVycm9yIG1heQoJICAgIGJlIGRldGVjdGVkLgpTb2x1dGlvbjogICBBZGQgYSBjaGVjayBmb3Igb3ZlcmZsb3cgb2YgdGhlIHN0YWNrIGxpbWl0IGNvbXB1dGF0aW9uLiAoSmltCgkgICAgRHVubGVhdnkpCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4xLjE3NyAoZGVwZW5kcyBvbiA2LjEuMTQxKQpQcm9ibGVtOiAgICAiOndpbmNtZCIgZG9lcyBub3QgYWxsb3cgYSBmb2xsb3dpbmcgY29tbWFuZC4gKEdhcnkgSm9obnNvbikKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgZm9sbG93aW5nICIgfCBjbWQiLiAgQWxzbyBnaXZlIGFuIGVycm9yIGZvciB0cmFpbGluZwoJICAgIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4xNzgKUHJvYmxlbTogICAgV2hlbiAnZXhwYW5kdGFiJyBpcyBzZXQgInI8Qy1WPjxUYWI+IiBzdGlsbCBleHBhbmRzIHRoZSBUYWIuCgkgICAgKEJydWNlIGRlVmlzc2VyKQpTb2x1dGlvbjogICBSZXBsYWNlIHdpdGggYSBsaXRlcmFsIFRhYi4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMS4xNzkgKGRlcGVuZHMgb24gNi4xLjA5MSkKUHJvYmxlbTogICAgV2hlbiB1c2luZyBYMTFSNSBYSU1QcmVzZXJ2ZVN0YXRlIGlzIHVuZGVmaW5lZC4gKEFsYmVydCBDaGluKQpTb2x1dGlvbjogICBJbmNsdWRlIHRoZSBtaXNzaW5nIGRlZmluaXRpb25zLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjEuMTgwClByb2JsZW06ICAgIFVzZSBvZiB0aGUgR1VJIGNvZGUgZm9yIGZvcmtpbmcgaXMgaW5jb25zaXN0ZW50LgpTb2x1dGlvbjogICBEZWZpbmUgTUFZX0ZPUksgYW5kIHVzZSBpdCBmb3IgbGF0ZXIgI2lmZGVmcy4gKEJlbiBGb3dsd2VyKQpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4xLjE4MQpQcm9ibGVtOiAgICBJZiB0aGUgdGVybWluYWwgZG9lc24ndCB3cmFwIGZyb20gdGhlIGxhc3QgY2hhciBpbiBhIGxpbmUgdG8gdGhlCgkgICAgbmV4dCBsaW5lLCB0aGUgbGFzdCBjb2x1bW4gaXMgYmxhbmtlZCBvdXQuIChQZXRlciBLYXJwKQpTb2x1dGlvbjogICBEb24ndCBvdXRwdXQgYSBzcGFjZSB0byBtYXJrIHRoZSB3cmFwLCBidXQgdGhlIHNhbWUgY2hhcmFjdGVyCgkgICAgYWdhaW4uCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMTgyIChkZXBlbmRzIG9uIDYuMS4xNDIpClByb2JsZW06ICAgIEl0IGlzIG5vdCBwb3NzaWJsZSB0byBhdXRvLWZvcm1hdCBjb21tZW50cyBvbmx5LiAoTW9zaGUgS2FtaW5za3kpClNvbHV0aW9uOiAgIFdoZW4gdGhlICdhJyBhbmQgJ2MnIGZsYWdzIGFyZSBpbiAnZm9ybWF0b3B0aW9ucycgb25seSBhdXRvLWZvcm1hdAoJICAgIGNvbW1lbnRzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2NoYW5nZS50eHQsIHNyYy9lZGl0LmMKClBhdGNoIDYuMS4xODMKUHJvYmxlbTogICAgV2hlbiAnZmVuY3MnIGlzIGVtcHR5IGFuZCAnZW5jJyBpcyB1dGYtOCwgcmVhZGluZyBhIGZpbGUgd2l0aAoJICAgIGlsbGVnYWwgYnl0ZXMgZ2l2ZXMgIkNPTlZFUlNJT04gRVJST1IiIGV2ZW4gdGhvdWdoIG5vIGNvbnZlcnNpb24KCSAgICBpcyBkb25lLiAgJ3JlYWRvbmx5JyBpcyBzZXQsIGV2ZW4gdGhvdWdoIHdyaXRpbmcgdGhlIGZpbGUgcmVzdWx0cwoJICAgIGluIGFuIHVubW9kaWZpZWQgZmlsZS4KU29sdXRpb246ICAgRm9yIHRoaXMgc3BlY2lmaWMgZXJyb3IgdXNlICJJTExFR0FMIEJZVEUiIGFuZCBkb24ndCBzZXQKCSAgICAncmVhZG9ubHknLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjE4NCAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBleHRyYSBtb3VzZSBidXR0b25zIGZvdW5kIG9uIHNvbWUgbWljZSBkb24ndCB3b3JrLgpTb2x1dGlvbjogICBTdXBwb3J0IHR3byBleHRyYSBidXR0b25zIGZvciBNUy1XaW5kb3dzLiAoTWljaGFlbCBHZWRkZXMpCkZpbGVzOgkgICAgcnVudGltZS9kb2MvdGVybS50eHQsIHNyYy9lZGl0LmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZ3VpLmMsCgkgICAgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYywgc3JjL2tleW1hcC5oLCBzcmMvbWVzc2FnZS5jLAoJICAgIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL25vcm1hbC5jLCBzcmMvdmltLmgKClBhdGNoIDYuMS4xODUgKGRlcGVuZHMgb24gNi4xLjE4MikKUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSB3aXRob3V0ICtjb21tZW50cyBmZWF0dXJlLgpTb2x1dGlvbjogICBBZGQgI2lmZGVmIEZFQVRfQ09NTUVOVFMuIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xLjE4NiAoZGVwZW5kcyBvbiA2LjEuMTc3KQpQcm9ibGVtOiAgICAiOndpbmNtZCIgZG9lcyBub3QgYWxsb3cgYSBmb2xsb3dpbmcgY29tbWVudC4gKEFyaWMgQmx1bWVyKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBmb2xsb3dpbmcgZG91YmxlIHF1b3RlLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMTg3ClByb2JsZW06ICAgIFVzaW5nICI6ZG9hcmciIHdpdGggJ2hpZGRlbicgc2V0IGFuZCB0aGUgY3VycmVudCBmaWxlIGlzIHRoZSBvbmx5CgkgICAgYXJndW1lbnQgYW5kIHdhcyBtb2RpZmllZCBnaXZlcyBhbiBlcnJvciBtZXNzYWdlLiAoUHJlYmVuCgkgICAgR3VsZGJlcmcpClNvbHV0aW9uOiAgIERvbid0IHRyeSByZS1lZGl0aW5nIHRoZSBzYW1lIGZpbGUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMS4xODggKGRlcGVuZHMgb24gNi4xLjE3MykKUHJvYmxlbTogICAgVW51c2VkIHZhcmlhYmxlIGluIHRoZSBzbWFsbCB2ZXJzaW9uLgpTb2x1dGlvbjogICBNb3ZlIHRoZSBkZWNsYXJhdGlvbiBmb3IgInAiIGluc2lkZSAjaWZkZWYgRkVBVF9MSVNUQ01EUy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjE4OQpQcm9ibGVtOiAgICBpbnB1dGRpYWxvZygpIGRvZXNuJ3Qgd29yayB3aGVuICdjJyBpcyBpbiAnZ3Vpb3B0aW9ucycuIChBcmljCgkgICAgQmx1bWVyKQpTb2x1dGlvbjogICBGYWxsIGJhY2sgdG8gdGhlIGlucHV0KCkgZnVuY3Rpb24gaW4gdGhpcyBzaXR1YXRpb24uCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjE5MCAoZXh0cmEpClByb2JsZW06ICAgIFZNUzogZG9lc24ndCBidWlsZCB3aXRoIEdUSyBHVUkuICBWYXJpb3VzIG90aGVyIHByb2JsZW1zLgpTb2x1dGlvbjogICBGaXggYnVpbGRpbmcgZm9yIEdUSy4gIEltcHJvdmVkIFBlcmwsIFB5dGhvbiBhbmQgVENMIHN1cHBvcnQuCgkgICAgSW1wcm92ZWQgVk1TIGRvY3VtZW50YXRpb24uIChab2x0YW4gQXJwYWRmZnkpCgkgICAgQWRkZWQgVmltdHV0b3IgZm9yIFZNUyAoVC4gUi4gV3lhbnQpCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3Nfdm1zLnR4dCwgc3JjL0lOU1RBTEx2bXMudHh0LCBzcmMvZ3VpX2d0a19mLmgsCgkgICAgc3JjL2lmX3RjbC5jLCBzcmMvbWFpbi5jLCBzcmMvZ3VpX2d0a192bXMuaCwgc3JjL01ha2Vfdm1zLm1tcywKCSAgICBzcmMvb3Nfdm1zLm9wdCwgc3JjL3Byb3RvL2lmX3RjbC5wcm8sIHZpbXR1dG9yLmNvbSwKCSAgICBzcmMvdGVzdGRpci9NYWtlX3Ztcy5tbXMKClBhdGNoIDYuMS4xOTEKUHJvYmxlbTogICAgV2hlbiB1c2luZyAidmltIC1zIHNjcmlwdCIgYW5kIHJlZGlyZWN0aW5nIHRoZSBvdXRwdXQsIHRoZSBkZWxheQoJICAgIGZvciB0aGUgIk91dHB1dCBpcyBub3QgdG8gYSB0ZXJtaW5hbCIgd2FybmluZyBzbG93cyBWaW0gZG93biB0b28KCSAgICBtdWNoLgpTb2x1dGlvbjogICBEb24ndCBkZWxheSB3aGVuIHJlYWRpbmcgY29tbWFuZHMgZnJvbSBhIHNjcmlwdC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuMTkyClByb2JsZW06ICAgICI6ZGlmZnNwbGl0IiBkb2Vzbid0IGFkZCAiaG9yIiB0byAnc2Nyb2xsb3B0Jy4gKEdhcnkgSm9obnNvbikKU29sdXRpb246ICAgQWRkICJob3IiIHRvICdzY3JvbGxvcHQnIGVhY2ggdGltZSAiOmRpZmZzcGxpdCIgaXMgdXNlZC4KRmlsZXM6CSAgICBzcmMvZGlmZi5jLCBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuMTkzClByb2JsZW06ICAgIENyYXNoIGluIGluX2lkX2xpc3QoKSBmb3IgYW4gaXRlbSB3aXRoIGEgImNvbnRhaW5lZGluIiBsaXN0LiAoRGF2ZQoJICAgIEZpc2hidXJuKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBuZWdhdGl2ZSBzeW50YXggaWQsIHVzZWQgZm9yIGtleXdvcmRzLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4xLjE5NApQcm9ibGVtOiAgICBXaGVuICJ0X3RpIiBpcyBzZXQgYnV0IGl0IGRvZXNuJ3QgY2F1c2Ugc3dhcHBpbmcgdGVybWluYWwgcGFnZXMsCgkgICAgIlpaIiBtYXkgY2F1c2UgdGhlIHNoZWxsIHByb21wdCB0byBhcHBlYXIgb24gdG9wIG9mIHRoZSBmaWxlLXdyaXRlCgkgICAgbWVzc2FnZS4KU29sdXRpb246ICAgU2Nyb2xsIHRoZSB0ZXh0IHVwIGluIHRoZSBWaW0gcGFnZSBiZWZvcmUgc3dhcHBpbmcgdG8gdGhlIHRlcm1pbmFsCgkgICAgcGFnZS4gKE1pY2hhZWwgU2Nocm9lZGVyKQpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS4xOTUKUHJvYmxlbTogICAgVGhlIHF1aWNrZml4IGFuZCBwcmV2aWV3IHdpbmRvd3MgYWx3YXlzIGtlZXAgdGhlaXIgaGVpZ2h0LCB3aGlsZQoJICAgIG90aGVyIHdpbmRvd3MgY2FuJ3QgZml4IHRoZWlyIGhlaWdodC4KU29sdXRpb246ICAgQWRkIHRoZSAnd2luZml4aGVpZ2h0JyBvcHRpb24sIHNvIHRoYXQgYSBmaXhlZCBoZWlnaHQgY2FuIGJlCgkgICAgc3BlY2lmaWVkIGZvciBhbnkgd2luZG93LiAgQWxzbyBmaXggdGhhdCB0aGUgd2lsZG1lbnUgbWF5IHJlc2l6ZSBhCgkgICAgb25lLWxpbmUgd2luZG93IHRvIGEgdHdvLWxpbmUgd2luZG93IGlmICdscycgaXMgemVyby4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgcnVudGltZS9vcHR3aW4udmltLCBzcmMvZXhfY21kcy5jLAoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvb3B0aW9uLmMsIHNyYy9xdWlja2ZpeC5jLAoJICAgIHNyYy9zY3JlZW4uYywgc3JjL3N0cnVjdHMuaCwgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjEuMTk2ICAoZGVwZW5kcyBvbiA2LjEuMDg0KQpQcm9ibGVtOiAgICBPbiBNYWMgT1MgWCAxMC4yIGdlbmVyYXRpbmcgb3NkZWYuaCBmYWlscy4KU29sdXRpb246ICAgQWRkIC1uby1jcHAtcHJlY29tcCB0byBhdm9pZCB1c2luZyBwcmVjb21waWxlZCBoZWFkZXIgZmlsZXMsIHdoaWNoCgkgICAgZGlzYWJsZXMgcHJpbnRpbmcgdGhlIHNlYXJjaCBwYXRoLiAoQmVuIEZvd2xlcikKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS4xOTcKUHJvYmxlbTogICAgIjpoZWxwIDxDLVY+PEMtXD48Qy1WPjxDLU4+IiAocmVzdWx0aW5nIGluIDwxYz48MGU+KSBnaXZlcyBhbgoJICAgIGVycm9yIG1lc3NhZ2UuIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBEb3VibGUgdGhlIGJhY2tzbGFzaCBpbiAiQ1RSTC1cIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuMTk4IChleHRyYSkgKGRlcGVuZHMgb24gNi4xLjA3NikKUHJvYmxlbTogICAgTWFjIE9TIFg6IERpYWxvZ3VlcyBkb24ndCB3b3JrLgpTb2x1dGlvbjogICBGaXggYSBjcmFzaGluZyBwcm9ibGVtIGZvciBzb21lIEdVSSBkaWFsb2d1ZXMuICBGaXggYSBwcm9ibGVtIHdoZW4KCSAgICBzYXZpbmcgdG8gYSBuZXcgZmlsZSBmcm9tIHRoZSBHVUkuIChQZXRlciBDdWNrYSkKRmlsZXM6CSAgICBzcmMvZmVhdHVyZS5oLCBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjEuMTk5ClByb2JsZW06ICAgICdndWlmb250d2lkZScgZG9lc24ndCB3b3JrIG9uIFdpbjMyLgpTb2x1dGlvbjogICBPdXRwdXQgZWFjaCB3aWRlIGNoYXJhY3RlciBzZXBhcmF0ZWx5LiAoTWljaGFlbCBHZWRkZXMpCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjEuMjAwClByb2JsZW06ICAgICI6c3luIHN5bmMgZnJvbXN0YXJ0IiBpcyBub3Qgc2tpcHBlZCBhZnRlciAiOmlmIDAiLiAgVGhpcyBjYW4gbWFrZQoJICAgIHN5bnRheCBoaWdobGlnaHRpbmcgdmVyeSBzbG93LgpTb2x1dGlvbjogICBDaGVjayAiZWFwLT5za2lwIiBhcHByb3ByaWF0ZWx5LiAoUm9iIFdlc3QpCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuMjAxIChkZXBlbmRzIG9uIDYuMS4xOTIpClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIGlsbGVnYWwgcG9pbnRlciBjb21iaW5hdGlvbi4gKFpvbHRhbiBBcnBhZGZmeSkKU29sdXRpb246ICAgQWRkIGEgdHlwZWNhc3QuCkZpbGVzOgkgICAgc3JjL2RpZmYuYwoKUGF0Y2ggNi4xLjIwMiAgKGV4dHJhKShkZXBlbmRzIG9uIDYuMS4xNDgpClByb2JsZW06ICAgIFdpbjMyOiBmaWxld3JpdGFibGUoKSBkb2Vzbid0IHdvcmsgcHJvcGVybHkgb24gZGlyZWN0b3JpZXMuClNvbHV0aW9uOiAgIGZpeCBmaWxld3JpdGFibGUoKS4gKE1pa2UgV2lsbGlhbXMpCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMS4yMDMKUHJvYmxlbTogICAgIjolcy9+Ly8iIGNhdXNlcyBhIGNyYXNoIGFmdGVyICI6JXMveC8vIi4gKEdhcnkgSG9sbG93YXkpClNvbHV0aW9uOiAgIEF2b2lkIHJlYWRpbmcgcGFzdCB0aGUgZW5kIG9mIGEgbGluZSB3aGVuICJ+IiBpcyBlbXB0eS4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMS4yMDQgKGRlcGVuZHMgb24gNi4xLjEyOSkKUHJvYmxlbTogICAgV2FybmluZyBmb3IgYW4gaWxsZWdhbCBwb2ludGVyIG9uIFNvbGFyaXMuClNvbHV0aW9uOiAgIEFkZCBhIHR5cGVjYXN0LiAoRGVyZWsgV3lhdHQpCkZpbGVzOgkgICAgc3JjL21pc2MyLmMKClBhdGNoIDYuMS4yMDUKUHJvYmxlbTogICAgVGhlIGd6aXAgcGx1Z2luIGNoYW5nZXMgdGhlIGFsdGVybmF0ZSBmaWxlIHdoZW4gZWRpdGluZyBhCgkgICAgY29tcHJlc3NlZCBmaWxlLiAoT2xpdmVyIEZ1Y2hzKQpTb2x1dGlvbjogICBUZW1wb3JhcmlseSByZW1vdmUgdGhlICdhJyBhbmQgJ0EnIGZsYWdzIGZyb20gJ2NwbycuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZ3ppcC52aW0KClBhdGNoIDYuMS4yMDYKUHJvYmxlbTogICAgVGhlIHNjcmlwdCBnZW5lcmF0ZWQgd2l0aCAiOm1rc2Vzc2lvbiIgZG9lc24ndCB3b3JrIHByb3Blcmx5IHdoZW4KCSAgICBzb21lIGNvbW1hbmRzIGFyZSBtYXBwZWQuClNvbHV0aW9uOiAgIFVzZSAiOm5vcm1hbCEiIGluc3RlYWQgb2YgIjpub3JtYWwiLiAgQW5kIHVzZSAiOndpbmNtZCIgd2hlcmUKCSAgICBwb3NzaWJsZS4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL2ZvbGQuYwoKUGF0Y2ggNi4xLjIwNwpQcm9ibGVtOiAgICBJbmRlbnRpbmcgYSBKYXZhIGZpbGUgaGFuZ3MgYmVsb3cgYSBsaW5lIHdpdGggYSBjb21tZW50IGFmdGVyIGEKCSAgICBjb21tYW5kLgpTb2x1dGlvbjogICBCcmVhayBvdXQgb2YgYSBsb29wLiAoQW5kcmUgUGFuZykKCSAgICBBbHNvIGxpbmUgdXAgfSB3aXRoIG1hdGNoaW5nIHsuCkZpbGVzOgkgICAgcnVudGltZS9pbmRlbnQvamF2YS52aW0KClBhdGNoIDYuMS4yMDgKUHJvYmxlbTogICAgQ2FuJ3QgdXNlIHRoZSBidWZmZXIgbnVtYmVyIGZyb20gdGhlIFB5dGhvbiBpbnRlcmZhY2UuClNvbHV0aW9uOiAgIEFkZCBidWZmZXIubnVtYmVyLiAoTWljaGFsIFZpdGVjZWspCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjEuMjA5ClByb2JsZW06ICAgIFByaW50aW5nIGRvZXNuJ3Qgd29yayBvbiBNYWMgT1MgY2xhc3NpYy4KU29sdXRpb246ICAgVXNlIGEgIjoiIGZvciBwYXRoIHNlcGFyYXRvciB3aGVuIG9wZW5pbmcgdGhlIHJlc291cmNlIGZpbGUuIChBeGVsCgkgICAgS2llbGhvcm4pCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMS4yMTAKUHJvYmxlbTogICAgV2hlbiB0aGVyZSBpcyBhbiBpY29udigpIGNvbnZlcnNpb24gZXJyb3Igd2hlbiByZWFkaW5nIGEgZmlsZQoJICAgIHRoZXJlIGNhbiBiZSBhbiBlcnJvciB0aGUgbmV4dCB0aW1lIGljb252KCkgaXMgdXNlZC4KU29sdXRpb246ICAgUmVzZXQgdGhlIHN0YXRlIG9mIHRoZSBpY29udigpIGRlc2NyaXB0b3IuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMjExClByb2JsZW06ICAgIFRoZSBtZXNzYWdlICJ1c2UgISB0byBvdmVycmlkZSIgaXMgY29uZnVzaW5nLgpTb2x1dGlvbjogICBNYWtlIGl0ICJhZGQgISB0byBvdmVycmlkZSIuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZXZhbC5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2ZpbGVpby5jLAoJICAgIHNyYy9nbG9iYWxzLmgKClBhdGNoIDYuMS4yMTIKUHJvYmxlbTogICAgV2hlbiBWaW0gd2FzIHN0YXJ0ZWQgd2l0aCAiLVIiICI6bmV3IiBjcmVhdGVzIGEgYnVmZmVyCgkgICAgJ25vcmVhZG9ubHknIHdoaWxlICI6ZW5ldyIgaGFzICdyZWFkb25seScgc2V0LiAoUHJlYmVuIEd1bGRiZXJnKQpTb2x1dGlvbjogICBEb24ndCBzZXQgJ3JlYWRvbmx5IGluIGEgbmV3IGVtcHR5IGJ1ZmZlciBmb3IgIjplbmV3Ii4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjIxMwpQcm9ibGVtOiAgICBVc2luZyBDVFJMLVcgSCBtYXkgY2F1c2UgYSBiaWcgZ2FwIHRvIGFwcGVhciBiZWxvdyB0aGUgbGFzdAoJICAgIHdpbmRvdy4gKEFyaWMgQmx1bWVyKQpTb2x1dGlvbjogICBEb24ndCBzZXQgdGhlIHdpbmRvdyBoZWlnaHQgd2hlbiB0aGVyZSBpcyBhIHZlcnRpY2FsIHNwbGl0LgoJICAgIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjEuMjE0ClByb2JsZW06ICAgIFdoZW4gaW5zdGFsbGluZyBWaW0gYW5kIHRoZSBydW50aW1lIGZpbGVzIHdlcmUgY2hlY2tlZCBvdXQgZnJvbQoJICAgIENWUyB0aGUgQ1ZTIGRpcmVjdG9yaWVzIHdpbGwgYWxzbyBiZSBpbnN0YWxsZWQuClNvbHV0aW9uOiAgIEF2b2lkIGluc3RhbGxpbmcgdGhlIENWUyBkaXJzIGFuZCB0aGVpciBjb250ZW50cy4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMS4yMTUKUHJvYmxlbTogICAgV2luMzI6ICI6cHdkIiB1c2VzIGJhY2tzbGFzaGVzIGV2ZW4gd2hlbiAnc2hlbGxzbGFzaCcgaXMgc2V0LgoJICAgIChYaWFuZ2ppYW5nIE1hKQpTb2x1dGlvbjogICBBZGp1c3QgYmFja3NsYXNoZXMgYmVmb3JlIHByaW50aW5nIHRoZSBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMjE2ClByb2JsZW06ICAgIFdoZW4gZHluYW1pY2FsbHkgbG9hZGluZyB0aGUgaWNvbnYgbGlicmFyeSwgdGhlIGVycm9yIGNvZGVzIG1heSBiZQoJICAgIGNvbmZ1c2VkLgpTb2x1dGlvbjogICBVc2Ugc3BlY2lmaWMgZXJyb3IgY29kZXMgZm9yIGljb252IGFuZCByZWRlZmluZSB0aGVtIGZvciBkeW5hbWljCgkgICAgbG9hZGluZy4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9tYnl0ZS5jLCBzcmMvdmltLmgKClBhdGNoIDYuMS4yMTcKUHJvYmxlbTogICAgV2hlbiBzb3VyY2luZyB0aGUgc2FtZSBWaW0gc2NyaXB0IHVzaW5nIGEgZGlmZmVyZW50IG5hbWUgKHN5bWJvbGljCgkgICAgbGluayBvciBNUy1XaW5kb3dzIDguMyBuYW1lKSBpdCBpcyBsaXN0ZWQgdHdpY2Ugd2l0aAoJICAgICI6c2NyaXB0bmFtZXMiLiAgKFRvbnkgTWVjaGVseW5jaykKU29sdXRpb246ICAgVHVybiB0aGUgc2NyaXB0IG5hbWUgaW50byBhIGZ1bGwgcGF0aCBiZWZvcmUgdXNpbmcgaXQuICBPbiBVbml4CgkgICAgY29tcGFyZSBpbm9kZS9kZXZpY2UgbnVtYmVycy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjIxOApQcm9ibGVtOiAgICBObyBlcnJvciBtZXNzYWdlIGZvciB1c2luZyB0aGUgZnVuY3Rpb24gYXJndW1lbnQgIjUrIi4gIChTZXJ2YXRpdXMKCSAgICBCcmFuZHQpClNvbHV0aW9uOiAgIEdpdmUgYW4gZXJyb3IgbWVzc2FnZSBpZiBhIGZ1bmN0aW9uIG9yIHZhcmlhYmxlIGlzIGV4cGVjdGVkIGJ1dCBpcwoJICAgIG5vdCBmb3VuZC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjE5ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjphbWVudSA6YiAxPENSPiIgd2l0aCBhIFZpc3VhbCBzZWxlY3Rpb24gYW5kCgkgICAgJ2luc2VydG1vZGUnIGlzIHNldCwgVmltIGRvZXMgbm90IHJldHVybiB0byBJbnNlcnQgbW9kZS4gKE1pY2thZWwKCSAgICBNYXJjaGFuZCkKU29sdXRpb246ICAgQWRkIHRoZSBjb21tYW5kIENUUkwtXCBDVFJMLUcgdGhhdCBnb2VzIHRvIEluc2VydCBtb2RlIGlmCgkgICAgJ2luc2VydG1vZGUnIGlzIHNldCBhbmQgdG8gTm9ybWFsIG1vZGUgb3RoZXJ3aXNlLiAgQXBwZW5kIHRoaXMgdG8KCSAgICBtZW51cyBkZWZpbmVkIHdpdGggIjphbWVudSIuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjIyMApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgQnVmUmVhZFBvc3QgYXV0b2NvbW1hbmQgdGhhdCBjaGFuZ2VzIHRoZSBsaW5lIGNvdW50LAoJICAgIGUuZy4sICIkLTFqb2luIiwgcmVsb2FkaW5nIGEgZmlsZSB0aGF0IHdhcyBjaGFuZ2VkIG91dHNpZGUgVmltCgkgICAgZG9lcyBub3Qgd29yayBwcm9wZXJseS4gKEFsYW4gRyBJc2FhYykKU29sdXRpb246ICAgTWFrZSB0aGUgYnVmZmVyIGVtcHR5IGJlZm9yZSByZWFkaW5nIHRoZSBuZXcgdmVyc2lvbiBvZiB0aGUgZmlsZS4KCSAgICBTYXZlIHRoZSBsaW5lcyBpbiBhIGR1bW15IGJ1ZmZlciwgc28gdGhhdCB0aGV5IGNhbiBiZSBwdXQgYmFjawoJICAgIHdoZW4gcmVhZGluZyB0aGUgZmlsZSBmYWlscy4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9leF9jbWRzLmMsIHNyYy9maWxlaW8uYywgc3JjL2dsb2JhbHMuaCwKCSAgICBzcmMvcHJvdG8vYnVmZmVyLnBybwoKUGF0Y2ggNi4xLjIyMQpQcm9ibGVtOiAgICBDaGFuZ2luZyBjYXNlIG1heSBub3Qgd29yayBwcm9wZXJseSwgZGVwZW5kaW5nIG9uIHRoZSBjdXJyZW50CgkgICAgbG9jYWxlLgpTb2x1dGlvbjogICBBZGQgdGhlICdjYXNlbWFwJyBvcHRpb24gdG8gbGV0IHRoZSB1c2VyIGNob3NlIGhvdyBjaGFuZ2luZyBjYXNlCgkgICAgaXMgdG8gYmUgZG9uZS4KCSAgICBBbHNvIGZpeCBsb3dlcmluZyBjYXNlIHdoZW4gYW4gVVRGLTggY2hhcmFjdGVyIGRvZXNuJ3Qga2VlcCB0aGUKCSAgICBzYW1lIGJ5dGUgbGVuZ3RoLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvYXNjaWkuaCwgc3JjL2F1dG8vY29uZmlndXJlLAoJICAgIHNyYy9idWZmZXIuYywgc3JjL2NoYXJzZXQuYywgc3JjL2NvbmZpZy5oLmluLCBzcmMvY29uZmlndXJlLmluLAoJICAgIHNyYy9kaWZmLmMsIHNyYy9lZGl0LmMsIHNyYy9ldmFsLmMsIHNyYy9leF9jbWRzMi5jLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL2ZpbGVpby5jLCBzcmMvZ3VpX2FtaWdhLmMKCSAgICBzcmMvZ3VpX21hYy5jLCBzcmMvZ3VpX3Bob3Rvbi5jLCBzcmMvZ3VpX3c0OC5jLCBzcmMvZ3VpX2Jlb3MuY2MsCgkgICAgc3JjL21hY3Jvcy5oLCBzcmMvbWFpbi5jLCBzcmMvbWJ5dGUuYywgc3JjL21lbnUuYywgc3JjL21lc3NhZ2UuYywKCSAgICBzcmMvbWlzYzEuYywgc3JjL21pc2MyLmMsIHNyYy9vcHRpb24uYywgc3JjL29zX21zZG9zLmMsCgkgICAgc3JjL29zX21zd2luLmMsIHNyYy9wcm90by9jaGFyc2V0LnBybywgc3JjL3JlZ2V4cC5jLCBzcmMvb3B0aW9uLmgsCgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuMjIyIChkZXBlbmRzIG9uIDYuMS4yMTkpClByb2JsZW06ICAgIFBhdGNoIDYuMS4yMTkgd2FzIGluY29tcGxldGUuClNvbHV0aW9uOiAgIEFkZCB0aGUgY2hhbmdlcyBmb3IgIjphbWVudSIuCkZpbGVzOgkgICAgc3JjL21lbnUuYwoKUGF0Y2ggNi4xLjIyMyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIElNRSBpcyBhY3RpdmF0ZWQgJ2ltaW5zZXJ0JyBpcyBzZXQsIGJ1dCBpdCBtaWdodCBuZXZlcgoJICAgIGJlIHJlc2V0IHdoZW4gSU1FIGlzIGRpc2FibGVkLiAoTXVyYW9rYSBUYXJvKQoJICAgIEFsbCBzeXN0ZW1zOiAnaW1pbnNlcnQnIGlzIHNldCB0byAyIHdoZW4gbGVhdmluZyBJbnNlcnQgbW9kZSwgZXZlbgoJICAgIHdoZW4gbGFuZ21hcCBpcyBiZWluZyB1c2VkLiAoUGV0ZXIgVmFsYWNoKQpTb2x1dGlvbjogICBEb24ndCBzZXQgImJfcF9pbWluc2VydCIgaW4gX09uSW1lTm90aWZ5KCkuIChNdXJhb2thIFRhcm8pCgkgICAgRG9uJ3Qgc3RvcmUgdGhlIHN0YXR1cyBvZiB0aGUgaW5wdXQgbWV0aG9kIGluICdpbWluc2VydCcgd2hlbgoJICAgICdpbWluc2VydCcgaXMgb25lLiAgQWxzbyBmb3IgZWRpdGluZyB0aGUgY29tbWFuZCBsaW5lIGFuZCBmb3IKCSAgICBhcmd1bWVudHMgdG8gTm9ybWFsIG1vZGUgY29tbWFuZHMuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjIyNApQcm9ibGVtOiAgICAiZXhwYW5kKCckVkFSJykiIHJldHVybnMgYW4gZW1wdHkgc3RyaW5nIHdoZW4gdGhlIGV4cGFuZGVkICRWQVIKCSAgICBpcyBub3QgYW4gZXhpc3RpbmcgZmlsZS4gKEFyaWMgQmx1bWVyKQpTb2x1dGlvbjogICBJbmNsdWRlZCBub24tZXhpc3RpbmcgZmlsZXMsIGFzIGRvY3VtZW50ZWQuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjIyNQpQcm9ibGVtOiAgICBVc2luZyA8Qy1PPjxDLV4+IGluIEluc2VydCBtb2RlIGhhcyBhIGRlbGF5IHdoZW4gc3RhcnRpbmcgInZpbSAtdQoJICAgIE5PTkUiIGFuZCAiOnNldCBub2NwIGhpZGRlbiIuIChFbW1hbnVlbCkgIGRvX2VjbWQoKSB1c2VzCgkgICAgZmlsZWluZm8oKSwgdGhlIHJlZHJhdyBpcyBkb25lIGFmdGVyIGEgZGVsYXkgdG8gZ2l2ZSB0aGUgdXNlciB0aW1lCgkgICAgdG8gcmVhZCB0aGUgbWVzc2FnZS4KU29sdXRpb246ICAgUHV0IHRoZSBtZXNzYWdlIGZyb20gZmlsZWlvKCkgaW4gImtlZXBfbXNnIiwgc28gdGhhdCB0aGUgcmVkcmF3IGlzCgkgICAgZG9uZSBiZWZvcmUgdGhlIGRlbGF5IChzdGlsbCBuZWVkZWQgdG8gYXZvaWQgdGhlIG1vZGUgbWVzc2FnZQoJICAgIG92ZXJ3cml0ZXMgdGhlIGZpbGVpbmZvKCkgbWVzc2FnZSkuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuMjI2ClByb2JsZW06ICAgIFVzaW5nICI6ZGVidWciIHdpdGggYSAiOm5vcm1hbCIgY29tbWFuZCBtYXkgY2F1c2UgYSBoYW5nLiAgKENvbGluCgkgICAgS2VpdGgpClNvbHV0aW9uOiAgIFNhdmUgdGhlIHR5cGVhaGVhZCBidWZmZXIgd2hlbiBvYnRhaW5pbmcgYSBkZWJ1ZyBjb21tYW5kLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jLCBzcmMvZ2V0Y2hhci5jLCBzcmMvcHJvdG8vZ2V0Y2hhci5wcm8KClBhdGNoIDYuMS4yMjcKUHJvYmxlbTogICAgSXQgaXMgcG9zc2libGUgdG8gdXNlIGEgdmFyaWFibGUgbmFtZSAiYXNkZjphc2RmIiBhbmQgIjpsZXQgajphc2RmCgkgICAgPSA1IiBkb2VzIG5vdCBnaXZlIGFuIGVycm9yIG1lc3NhZ2UuIChNaWtvbGFqIE1hY2hvd3NraSkKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgIjoiIGluc2lkZSB0aGUgdmFyaWFibGUgbmFtZS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjI4IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFRoZSBzcGVjaWFsIG91dHB1dCBmdW5jdGlvbiBmb3IgSGFuZ3VsIGlzIHVzZWQgdG9vIG9mdGVuLAoJICAgIGNhdXNpbmcgc3BlY2lhbCBoYW5kbGluZyBmb3Igb3RoZXIgc2l0dWF0aW9ucyB0byBiZSBza2lwcGVkLgoJICAgIGJJbkNvbXBvc2l0aW9uIGlzIGFsd2F5cyBGQUxTRSwgY2F1c2luZyBJbWVHZXRUZW1wQ29tcG9zaXRpb24oKQoJICAgIGFsd2F5cyB0byByZXR1cm4gTlVMTC4KU29sdXRpb246ICAgUmVtb3ZlIEhhbkV4dFRleHRPdXQoKS4gIERlbGV0ZSB0aGUgZGVhZCBjb2RlIGFyb3VuZAoJICAgIGJJbkNvbXBvc2l0aW9uIGFuZCBJbWVHZXRUZW1wQ29tcG9zaXRpb24oKS4KRmlsZXM6CSAgICBzcmMvZ3VpX3cxNi5jLCBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjEuMjI5ClByb2JsZW06ICAgIFdpbjMyOiBDb252ZXJzaW9uIHRvL2Zyb20gb2Z0ZW4gdXNlZCBjb2RlcGFnZXMgcmVxdWlyZXMgdGhlIGljb252CgkgICAgbGlicmFyeSwgd2hpY2ggaXMgbm90IGFsd2F5cyBhdmFpbGFibGUuClNvbHV0aW9uOiAgIFVzZSBzdGFuZGFyZCBNUy1XaW5kb3dzIGZ1bmN0aW9ucyBmb3IgdGhlIGNvbnZlcnNpb24gd2hlbgoJICAgIHBvc3NpYmxlLiAobW9zdGx5IGJ5IEdsZW5uIE1heW5hcmQpCgkgICAgQWxzbyBmaXhlcyBtaXNzaW5nIGRlY2xhcmF0aW9uIGZvciBwYXRjaCA2LjEuMjIwLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjIzMCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjE2OiBidWlsZGluZyBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIEV4Y2x1ZGUgdGhlIFhCVVRUT04gaGFuZGxpbmcuIChWaW5jZSBOZWdyaSkKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjEuMjMxClByb2JsZW06ICAgIERvdWJsZSBjbGlja2luZyB3aXRoIHRoZSBtb3VzZSB0byBzZWxlY3QgYSB3b3JkIGRvZXMgbm90IHdvcmsgZm9yCgkgICAgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBVc2UgdmltX2lzd29yZGMoKSBpbnN0ZWFkIG9mIHZpbV9pc0lEYygpLiAgVGhpcyBtZWFucyAnaXNrZXl3b3JkJwoJICAgIGlzIHVzZWQgaW5zdGVhZCBvZiAnaXNpZGVudCcuICBBbHNvIGZpeCB0aGF0IG1peGluZyBBU0NJSSB3aXRoCgkgICAgbXVsdGktYnl0ZSB3b3JkIGNoYXJhY3RlcnMgZG9lc24ndCB3b3JrLCB0aGUgbW91c2UgY2xhc3MgZm9yCgkgICAgcHVuY3R1YXRpb24gYW5kIHdvcmQgY2hhcmFjdGVycyB3YXMgbWl4ZWQgdXAuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMjMyIChkZXBlbmRzIG9uIDYuMS4yMjYpClByb2JsZW06ICAgIFVzaW5nIGV4X25vcm1hbF9idXN5IHdoaWxlIGl0IG1pZ2h0IG5vdCBiZSBhdmFpbGFibGUuIChBeGVsCgkgICAgS2llbGhvcm4pClNvbHV0aW9uOiAgIE9ubHkgdXNlIGV4X25vcm1hbF9idXN5IHdoZW4gRkVBVF9FWF9FWFRSQSBpcyBkZWZpbmVkLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjEuMjMzClByb2JsZW06ICAgICI6aGVscCBleHByLXx8IiBkb2VzIG5vdCB3b3JrLgpTb2x1dGlvbjogICBEb24ndCB1c2UgdGhlICd8JyBhcyBhIGNvbW1hbmQgc2VwYXJhdG9yCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjIzNCAoZGVwZW5kcyBvbiA2LjEuMjE3KQpQcm9ibGVtOiAgICBHZXQgYSB3YXJuaW5nIGZvciB1c2luZyBhIG5lZ2F0aXZlIHZhbHVlIGZvciBzdF9kZXYuClNvbHV0aW9uOiAgIERvbid0IGFzc2lnbiBhIG5lZ2F0aXZlIHZhbHVlIHRvIHN0X2Rldi4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjIzNSAoZGVwZW5kcyBvbiA2LjEuMjIzKQpQcm9ibGVtOiAgICAnaW1pbnNlcnQnIGlzIGNoYW5nZWQgZnJvbSAxIHRvIDIgd2hlbiBsZWF2aW5nIEluc2VydCBtb2RlLiAoUGV0ZXIKCSAgICBWYWxhY2gpClNvbHV0aW9uOiAgIENoZWNrICJTdGF0ZSIgYmVmb3JlIHJlc2V0dGluZyBpdCB0byBOT1JNQUwuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4xLjIzNgpQcm9ibGVtOiAgICBNZW1vcnkgbGVha3Mgd2hlbiBhcHBlbmRpbmcgbGluZXMgZm9yICI6ZGlmZmdldCIgb3IgIjpkaWZmcHV0IiBhbmQKCSAgICB3aGVuIHJlbG9hZGluZyBhIGNoYW5nZWQgYnVmZmVyLgpTb2x1dGlvbjogICBGcmVlIGEgbGluZSBhZnRlciBjYWxsaW5nIG1sX2FwcGVuZCgpLgpGaWxlczoJICAgIHNyYy9kaWZmLmMsIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjIzNwpQcm9ibGVtOiAgICBQdXR0aW5nIGluIFZpc3VhbCBibG9jayBtb2RlIGRvZXMgbm90IHdvcmsgY29ycmVjdGx5IHdoZW4gIiQiIHdhcwoJICAgIHVzZWQgb3Igd2hlbiB0aGUgZmlyc3QgbGluZSBpcyBzaG9ydC4gIChDaHJpc3RpYW4gTWljaG9uKQpTb2x1dGlvbjogICBGaXJzdCBkZWxldGUgdGhlIHNlbGVjdGVkIHRleHQgYW5kIHRoZW4gcHV0IHRoZSBuZXcgdGV4dC4gIFNhdmUKCSAgICBhbmQgcmVzdG9yZSByZWdpc3RlcnMgYXMgbmVjZXNzYXJ5LgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jLCBzcmMvcHJvdG8vb3BzLnBybywKCSAgICBzcmMvdmltLmgKClBhdGNoIDYuMS4yMzggKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogVGhlICJpY29uPSIgYXJndW1lbnQgZm9yIHRoZSAiOm1lbnUiIGNvbW1hbmQgZG9lcyBub3QKCSAgICBzZWFyY2ggZm9yIHRoZSBiaXRtYXAgZmlsZS4KU29sdXRpb246ICAgRXhwYW5kIGVudmlyb25tZW50IHZhcmlhYmxlcyBhbmQgc2VhcmNoIGZvciB0aGUgYml0bWFwIGZpbGUuCgkgICAgKFZpbmNlIE5lZ3JpKQoJICAgIE1ha2UgaXQgY29uc2lzdGVudCwgdXNlIHRoZSBzYW1lIG1lY2hhbmlzbSBmb3IgWDExIGFuZCBHVEsuCkZpbGVzOgkgICAgc3JjL2d1aS5jIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfeDExLmMsCgkgICAgc3JjL3Byb3RvL2d1aS5wcm8KClBhdGNoIDYuMS4yMzkKUHJvYmxlbTogICAgR2l2aW5nIGFuIGVycm9yIGZvciBtaXNzaW5nIDplbmRpZiBvciA6ZW5kd2hpbGUgd2hlbiBiZWluZwoJICAgIGludGVycnVwdGVkLgpTb2x1dGlvbjogICBEb24ndCBnaXZlIHRoZXNlIG1lc3NhZ2VzIHdoZW4gaW50ZXJydXB0ZWQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS4yNDAgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMiB3aXRoIEJDQyA1OiBDUFUgbWF5IGJlIGRlZmluZWQgaW4gdGhlIGVudmlyb25tZW50LCB3aGljaAoJICAgIGNhdXNlcyBhIHdyb25nIGFyZ3VtZW50IGZvciB0aGUgY29tcGlsZXIuIChXYWx0ZXIgQnJpc2NvZSkKU29sdXRpb246ICAgVXNlIENQVU5SIGluc3RlYWQgb2YgQ1BVLgpGaWxlczoJICAgIHNyYy9NYWtlX2JjNS5tYWsKClBhdGNoIDYuMS4yNDEKUHJvYmxlbTogICAgU29tZXRoaW5nIGdvZXMgd3Jvbmcgd2hlbiBkcmF3aW5nIG9yIHVuZHJhd2luZyB0aGUgY3Vyc29yLgpTb2x1dGlvbjogICBSZW1lbWJlciB3aGVuIHRoZSBjdXJzb3IgaW52YWxpZCBpbiBhIGJldHRlciB3YXkuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjEuMjQyClByb2JsZW06ICAgIFdoZW4gcGFzdGluZyBhIGxhcmdlIG51bWJlciBvZiBsaW5lcyBvbiB0aGUgY29tbWFuZCBsaW5lIGl0IGlzIG5vdAoJICAgIHBvc3NpYmxlIHRvIGludGVycnVwdC4gKEplYW4gSm9yZGFhbikKU29sdXRpb246ICAgQ2hlY2sgZm9yIGFuIGludGVycnVwdCBhZnRlciBlYWNoIHBhc3RlZCBsaW5lLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4xLjI0MyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHRoZSBPTEUgdmVyc2lvbiBpcyBzdGFydGVkIGFuZCB3YXNuJ3QgcmVnaXN0ZXJlZCwgYQoJICAgIG1lc3NhZ2UgcG9wcyB1cCB0byBzdWdnZXN0IHJlZ2lzdGVyaW5nLCBldmVuIHdoZW4gdGhpcyBpc24ndAoJICAgIHBvc3NpYmxlICh3aGVuIHRoZSByZWdpc3RyeSBpcyBub3Qgd3JpdGFibGUpLgpTb2x1dGlvbjogICBDaGVjayBpZiByZWdpc3RlcmluZyBpcyBwb3NzaWJsZSBiZWZvcmUgYXNraW5nIHdoZXRoZXIgaXQgc2hvdWxkCgkgICAgYmUgZG9uZS4gKFdhbHRlciBCcmlzY29lKQoJICAgIEFsc28gYXZvaWQgcmVzdGFydGluZyBWaW0gYWZ0ZXIgcmVnaXN0ZXJpbmcuCkZpbGVzOgkgICAgc3JjL2lmX29sZS5jcHAKClBhdGNoIDYuMS4yNDQKUHJvYmxlbTogICAgUGF0Y2ggNi4xLjIzNyB3YXMgbWlzc2luZyB0aGUgZGlmZiBmb3IgdmltLmguIChJZ29yIEdvbGRlbmJlcmcpClNvbHV0aW9uOiAgIEluY2x1ZGUgaXQgaGVyZS4KRmlsZXM6CSAgICBzcmMvdmltLmgKClBhdGNoIDYuMS4yNDUKUHJvYmxlbTogICAgQ29tcGFyaW5nIHdpdGggaWdub3JlZCBjYXNlIGRvZXMgbm90IHdvcmsgcHJvcGVybHkgZm9yIFVuaWNvZGUKCSAgICB3aXRoIGEgbG9jYWxlIHdoZXJlIGNhc2UgZm9sZGluZyBhbiBBU0NJSSBjaGFyYWN0ZXIgcmVzdWx0cyBpbiBhCgkgICAgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuIChHbGVubiBNYXluYXJkKQpTb2x1dGlvbjogICBIYW5kbGUgaWdub3JlLWNhc2UgY29tcGFyZSBmb3IgVW5pY29kZSBkaWZmZXJlbnRseS4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4xLjI0NgpQcm9ibGVtOiAgICAiOmJsYXN0IiBnb2VzIHRvIHRoZSBmaXJzdCBidWZmZXIgaWYgdGhlIGxhc3Qgb25lIGlzIHVubGlzdGVkLgoJICAgIChBbmRyZXcgU3RyeWtlcikKU29sdXRpb246ICAgRnJvbSB0aGUgbGFzdCBidWZmZXIgc2VhcmNoIGJhY2t3YXJkcyBmb3IgdGhlIGZpcnN0IGxpc3RlZCBidWZmZXIKCSAgICBpbnN0ZWFkIG9mIGZvcndhcmRzLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMjQ3ClByb2JsZW06ICAgIEFDTCBzdXBwb3J0IGRvZXNuJ3QgYWx3YXlzIHdvcmsgcHJvcGVybHkuClNvbHV0aW9uOiAgIEFkZCBhIGNvbmZpZ3VyZSBhcmd1bWVudCB0byBkaXNhYmxlIEFDTCAiLS1kaXNhYmxlLWFjbCIuIChUaGllcnJ5CgkgICAgVmlnbmF1ZCkKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS4yNDgKUHJvYmxlbTogICAgVHlwaW5nICdxJyBhdCB0aGUgbW9yZS1wcm9tcHQgZm9yICI6bGV0IiBkb2VzIG5vdCBxdWl0IHRoZQoJICAgIGxpc3RpbmcuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgUXVpdCB0aGUgbGlzdGluZyB3aGVuIGdvdF9pbnQgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yNDkKUHJvYmxlbTogICAgQ2FuJ3QgZXhwYW5kIGEgcGF0aCBvbiB0aGUgY29tbWFuZCBsaW5lIGlmIGl0IGluY2x1ZGVzIGEgInwiIGFzIGEKCSAgICB0cmFpbCBieXRlIG9mIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuClNvbHV0aW9uOiAgIENoZWNrIGZvciBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4yNTAKUHJvYmxlbTogICAgV2hlbiBjaGFuZ2luZyB0aGUgdmFsdWUgb2YgJ2xpbmVzJyBpbnNpZGUgdGhlIGV4cHJlc3Npb24gc2V0IHdpdGgKCSAgICAnZGlmZmV4cHInIFZpbSBtaWdodCBjcmFzaC4gKERhdmUgRmlzaGJ1cm4pClNvbHV0aW9uOiAgIERvbid0IGFsbG93IGNoYW5naW5nIHRoZSBzY3JlZW4gc2l6ZSB3aGlsZSB1cGRhdGluZyB0aGUgc2NyZWVuLgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9vcHRpb24uYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMjUxClByb2JsZW06ICAgIENhbid0IHVzZSBjb21wbGV0aW9uIGZvciAiOmxjZCIgYW5kICI6bGNoZGlyIiBsaWtlICI6Y2QiLgpTb2x1dGlvbjogICBFeHBhbmQgZGlyZWN0b3J5IG5hbWVzIGZvciB0aGVzZSBjb21tYW5kcy4gKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4yNTIKUHJvYmxlbTogICAgInZpfSIgZG9lcyBub3QgaW5jbHVkZSBhIGxpbmUgYnJlYWsgd2hlbiB0aGUgIn0iIGlzIGF0IHRoZSBzdGFydAoJICAgIG9mIGEgZm9sbG93aW5nIGxpbmUuIChLYW1pbCBCdXJ6eW5za2kpClNvbHV0aW9uOiAgIEluY2x1ZGUgdGhlIGxpbmUgYnJlYWsuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjEuMjUzIChleHRyYSkKUHJvYmxlbTogICAgV2luMzIgd2l0aCBDeWd3aW46IENoYW5nZXMgdGhlIHBhdGggb2YgYXJndW1lbnRzIGluIGEgd3Jvbmcgd2F5LgoJICAgIChYaWFuZ2ppYW5nIE1hKQpTb2x1dGlvbjogICBEb24ndCB1c2UgY3lnd2luX2NvbnZfdG9fcG9zaXhfcGF0aCgpIGZvciB0aGUgV2luMzIgdmVyc2lvbi4KCSAgICBVcGRhdGUgdGhlIEN5Z3dpbiBtYWtlZmlsZSB0byBzdXBwb3J0IG1vcmUgZmVhdHVyZXMuICAoRGFuIFNoYXJwKQpGaWxlczoJICAgIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9pZl9vbGUuY3BwLCBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuMjU0ClByb2JsZW06ICAgIGV4aXN0cygiZm9ve2Jhcn0iKSBkb2VzIG5vdCB3b3JrLiAgJzp1bmxldCB2eyJhIn1yJyBkb2VzIG5vdCB3b3JrLgoJICAgICI6bGV0IHZ7YX1yMSB2e2F9cjIiIGRvZXMgbm90IHdvcmsuICI6ZnVuYyBGeygxKX0iIGRvZXMgbm90IHdvcmsuCgkgICAgIjpkZWxmdW5jIEZ7IiBkb2VzIG5vdCBnaXZlIGFuIGVycm9yIG1lc3NhZ2UuICAnOmRlbGZ1bmMgRnsiRiJ9JwoJICAgIGRvZXMgbm90IHdvcmsuClNvbHV0aW9uOiAgIFN1cHBvcnQgbWFnaWMgYnJhY2VzIGZvciB0aGUgZXhpc3RzKCkgYXJndW1lbnQuIChWaW5jZSBOZWdyaSkKCSAgICBDaGVjayBmb3IgdHJhaWxpbmcgY29tbWVudHMgZXhwbGljaXRseSBmb3IgIjp1bmxldCIuICBBZGQgc3VwcG9ydAoJICAgIGZvciBtYWdpYyBicmFjZXMgaW4gZnVydGhlciBhcmd1bWVudHMgb2YgIjpsZXQiLiAgTG9vayBmb3IgYQoJICAgIHBhcmVudGhlc2lzIG9ubHkgYWZ0ZXIgdGhlIGZ1bmN0aW9uIG5hbWUuICAoU2VydmF0aXVzIEJyYW5kdCkKCSAgICBBbHNvIGV4cGFuZCBtYWdpYyBicmFjZXMgZm9yICJleGlzdHMoJypleHByJykiLiAgR2l2ZSBhbiBlcnJvcgoJICAgIG1lc3NhZ2UgZm9yIGFuIGludmFsaWQgIjpkZWxmdW5jIiBhcmd1bWVudC4gIEFsbG93IHF1b3RlcyBpbiB0aGUKCSAgICAiOmRlbGZ1bmMiIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9jbWRzLmgsIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMjU1IChkZXBlbmRzIG9uIDYuMS4yNTQpClByb2JsZW06ICAgIENyYXNoIHdoZW4gbG9hZGluZyBtZW51LnZpbSBhIHNlY29uZCB0aW1lLiAoQ2hyaXN0aWFuIFJvYmluc29uKQoJICAgICI6dW5sZXQgZ2FyYmFnZSBmb28iIHRyaWVzIHVubGV0dGluZyAiZm9vIiBhZnRlciBhbiBlcnJvciBtZXNzYWdlLgoJICAgIChTZXJ2YXRpdXMgQnJhbmR0KQoJICAgIFZlcnkgbG9uZyBmdW5jdGlvbiBhcmd1bWVudHMgY2F1c2UgdmVyeSBsb25nIG1lc3NhZ2VzIHdoZW4KCSAgICAndmVyYm9zZScgaXMgMTQgb3IgaGlnaGVyLgpTb2x1dGlvbjogICBBdm9pZCByZWFkaW5nIGZyb20gdW5pbml0aWFsaXplZCBtZW1vcnkuCgkgICAgQnJlYWsgb3V0IG9mIGEgbG9vcCBhZnRlciBhbiBpbnZhbGlkIGFyZ3VtZW50IGZvciAiOnVubGV0Ii4KCSAgICBUcnVuY2F0ZSBsb25nIGZ1bmN0aW9uIGFyZ3VtZW50cyB0byA4MCBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yNTYgKGRlcGVuZHMgb24gNi4xLjI1NSkKUHJvYmxlbTogICAgRGVmaW5pbmcgYSBmdW5jdGlvbiBhZnRlciAiOmlmIDAiIGNvdWxkIHN0aWxsIGNhdXNlIGFuIGVycm9yCgkgICAgbWVzc2FnZSBmb3IgYW4gZXhpc3RpbmcgZnVuY3Rpb24uCgkgICAgTGVha2luZyBtZW1vcnkgd2hlbiB0aGVyZSBhcmUgdHJhaWxpbmcgY2hhcmFjdGVycyBmb3IgIjpkZWxmdW5jIi4KU29sdXRpb246ICAgQ2hlY2sgdGhlICJza2lwIiBmbGFnLiAgRnJlZSB0aGUgbWVtb3J5LiAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjU3ClByb2JsZW06ICAgICI6Y3dpbmRvdyIgYWx3YXlzIHNldHMgdGhlIHByZXZpb3VzIHdpbmRvdyB0byB0aGUgbGFzdCBidXQgb25lCgkgICAgd2luZG93LiAgKEJlbmppIEZpc2hlcikKU29sdXRpb246ICAgU2V0IHRoZSBwcmV2aW91cyB3aW5kb3cgcHJvcGVybHkuCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuYywgc3JjL3F1aWNrZml4LmMsIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4xLjI1OApQcm9ibGVtOiAgICBCdWZmZXJzIG1lbnUgZG9lc24ndCB3b3JrIHByb3Blcmx5IGZvciBtdWx0aWJ5dGUgYnVmZmVyIG5hbWVzLgpTb2x1dGlvbjogICBVc2UgYSBwYXR0ZXJuIHRvIGdldCB0aGUgbGVmdCBhbmQgcmlnaHQgcGFydCBvZiB0aGUgbmFtZS4KCSAgICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMS4yNTkgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWM6IHdpdGggJ3BhdGNobW9kZScgaXMgdXNlZCBmaWxlbmFtZXMgYXJlIHRydW5jYXRlZC4KU29sdXRpb246ICAgSW5jcmVhc2UgdGhlIEJBU0VOQU1FTEVOIGZvciBNYWMgT1MgWC4gKEVkIFJhbHN0b24pCkZpbGVzOgkgICAgc3JjL29zX21hYy5oCgpQYXRjaCA2LjEuMjYwIChkZXBlbmRzIG9uIDYuMS4xMDQpClByb2JsZW06ICAgIEdDQyAzLjIgc3RpbGwgc2VlbXMgdG8gaGF2ZSBhbiBvcHRpbWl6ZXIgcHJvYmxlbS4gKFp2aSBIYXInRWwpClNvbHV0aW9uOiAgIFVzZSB0aGUgc2FtZSBjb25maWd1cmUgY2hlY2sgYXMgdXNlZCBmb3IgR0NDIDMuMS4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS4yNjEKUHJvYmxlbTogICAgV2hlbiBkZWxldGluZyBhIGxpbmUgaW4gYSBidWZmZXIgd2hpY2ggaXMgbm90IHRoZSBjdXJyZW50IGJ1ZmZlciwKCSAgICB1c2luZyB0aGUgUGVybCBpbnRlcmZhY2UgRGVsZXRlKCksIHRoZSBjdXJzb3IgaW4gdGhlIGN1cnJlbnQKCSAgICB3aW5kb3cgbWF5IG1vdmUuIChDaHJpcyBIb3VzZXIpClNvbHV0aW9uOiAgIERvbid0IGFkanVzdCB0aGUgY3Vyc29yIHBvc2l0aW9uIHdoZW4gY2hhbmdpbmcgYW5vdGhlciBidWZmZXIuCkZpbGVzOgkgICAgc3JjL2lmX3BlcmwueHMKClBhdGNoIDYuMS4yNjIKUHJvYmxlbTogICAgV2hlbiBqdW1waW5nIG92ZXIgZm9sZHMgd2l0aCAielsiLCAiemoiIGFuZCAiemsiIHRoZSBwcmV2aW91cwoJICAgIHBvc2l0aW9uIGlzIG5vdCByZW1lbWJlcmVkLiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIFNldCB0aGUgcHJldmlvdXMgY29udGV4dCBtYXJrIGJlZm9yZSBqdW1waW5nLgpGaWxlczoJICAgIHNyYy9mb2xkLmMKClBhdGNoIDYuMS4yNjMKUHJvYmxlbTogICAgV2hlbiB0eXBpbmcgYSBtdWx0aS1ieXRlIGNoYXJhY3RlciB0aGF0IHRyaWdnZXJzIGFuIGFiYnJldmlhdGlvbgoJICAgIGl0IGlzIG5vdCBpbnNlcnRlZCBwcm9wZXJseS4KU29sdXRpb246ICAgSGFuZGxlIGFkZGluZyB0aGUgdHlwZWQgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4xLjI2NCAoZGVwZW5kcyBvbiBwYXRjaCA2LjEuMjU0KQpQcm9ibGVtOiAgICBleGlzdHMoKSBkb2VzIG5vdCB3b3JrIGZvciBidWlsdC1pbiBmdW5jdGlvbnMuIChTdGV2ZSBXYWxsKQpTb2x1dGlvbjogICBEb24ndCBjaGVjayBmb3IgdGhlIGZ1bmN0aW9uIG5hbWUgdG8gc3RhcnQgd2l0aCBhIGNhcGl0YWwuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjI2NQpQcm9ibGVtOiAgICBsaWJjYWxsKCkgY2FuIGJlIHVzZWQgaW4gJ2ZvbGRleHByJyB0byBjYWxsIGFueSBzeXN0ZW0gZnVuY3Rpb24uCgkgICAgcmVuYW1lKCksIGRlbGV0ZSgpIGFuZCByZW1vdGVfc2VuZCgpIGNhbiBhbHNvIGJlIHVzZWQgaW4KCSAgICAnZm9sZGV4cHInLiAgVGhlc2UgYXJlIHNlY3VyaXR5IHByb2JsZW1zLiAoR2VvcmdpIEd1bmluc2tpKQpTb2x1dGlvbjogICBEb24ndCBhbGxvdyB1c2luZyBsaWJjYWxsKCksIHJlbmFtZSgpLCBkZWxldGUoKSwgcmVtb3RlX3NlbmQoKSBhbmQKCSAgICBzaW1pbGFyIGZ1bmN0aW9ucyBpbiB0aGUgc2FuZGJveC4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjY2IChkZXBlbmRzIG9uIDYuMS4yNjUpClByb2JsZW06ICAgIFdpbjMyOiBjb21waWxlIGVycm9yIGluIGV2YWwuYy4gKEJpbGwgTWNDYXJ0aHkpClNvbHV0aW9uOiAgIE1vdmUgYSB2YXJpYWJsZSBkZWNsYXJhdGlvbi4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjEuMjY3ClByb2JsZW06ICAgIFVzaW5nICJwIiB0byBwYXN0ZSBpbnRvIGEgVmlzdWFsIHNlbGVjdGVkIGFyZWEgbWF5IGNhdXNlIGEgY3Jhc2guClNvbHV0aW9uOiAgIEFsbG9jYXRlIGVub3VnaCBtZW1vcnkgZm9yIHNhdmluZyB0aGUgcmVnaXN0ZXIgY29udGVudHMuIChNdXJhb2thCgkgICAgVGFybykKRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMS4yNjgKUHJvYmxlbTogICAgV2hlbiB0cmlnZ2VyaW5nIGFuIGFiYnJldmlhdGlvbiB3aXRoIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIsIHRoaXMKCSAgICBjaGFyYWN0ZXIgaXMgbm90IGNvcnJlY3RseSBpbnNlcnRlZCBhZnRlciBleHBhbmRpbmcgdGhlCgkgICAgYWJicmV2aWF0aW9uLiAoVGFybyBNdXJhb2thKQpTb2x1dGlvbjogICBBZGQgQUJCUl9PRkYgdG8gYWxsIGNoYXJhY3RlcnMgYWJvdmUgMHhmZi4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4xLjI2OQpQcm9ibGVtOiAgICBBZnRlciB1c2luZyBpbnB1dCgpIHRleHQgd3JpdHRlbiB3aXRoICI6cmVkaXIiIGdldHMgZXh0cmEgaW5kZW50LgoJICAgIChEYXZpZCBGaXNoYnVybikKU29sdXRpb246ICAgUmVzdG9yZSBtc2dfY29sIGFmdGVyIHVzaW5nIGlucHV0KCkuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMS4yNzAgKGRlcGVuZHMgb24gNi4xLjI2MCkKUHJvYmxlbTogICAgR0NDIDMuMi4xIHN0aWxsIHNlZW1zIHRvIGhhdmUgYW4gb3B0aW1pemVyIHByb2JsZW0uClNvbHV0aW9uOiAgIFVzZSB0aGUgc2FtZSBjb25maWd1cmUgY2hlY2sgYXMgdXNlZCBmb3IgR0NDIDMuMS4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMS4yNzEKUHJvYmxlbTogICAgV2hlbiBjb21waWxpbmcgd2l0aG91dCB0aGUgK3N5bnRheCBmZWF0dXJlIHRoZXJlIGFyZSBlcnJvcnMuClNvbHV0aW9uOiAgIERvbid0IHVzZSBzb21lIGNvZGUgZm9yIHN5bnRheCBoaWdobGlnaHRpbmcuIChSb2dlciBDb3JuZWxpdXMpCgkgICAgTWFrZSB0ZXN0IDQ1IHdvcmsgd2l0aG91dCBzeW50YXggaGlnaGxpZ2h0aW5nLgoJICAgIEFsc28gZml4IGFuIGVycm9yIGluIGEgcGF0dGVybiBtYXRjaGluZzogIlwlKCIgd2FzIG5vdCBzdXBwb3J0ZWQuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9yZWdleHAuYywgc3JjL3Rlc3RkaXIvdGVzdDQ1LmluCgpQYXRjaCA2LjEuMjcyClByb2JsZW06ICAgIEFmdGVyIHVzaW5nICI6c2V0IGRlZmluZTwiIGEgY3Jhc2ggbWF5IGhhcHBlbi4gKENocmlzdGlhbiBSb2JpbnNvbikKU29sdXRpb246ICAgTWFrZSBhIGNvcHkgb2YgdGhlIG9wdGlvbiB2YWx1ZSBpbiBhbGxvY2F0ZWQgbWVtb3J5LgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjI3MwpQcm9ibGVtOiAgICBXaGVuIHRoZSBjdXJzb3IgZG9lc24ndCBibGluaywgcmVkcmF3aW5nIGFuIGV4cG9zZWQgYXJlYSBtYXkgaGlkZQoJICAgIHRoZSBjdXJzb3IuClNvbHV0aW9uOiAgIEFsd2F5cyBkcmF3IHRoZSBjdXJzb3IsIGFsc28gd2hlbiBpdCBkaWRuJ3QgbW92ZS4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMS4yNzQgKGRlcGVuZHMgb24gNi4xLjIxMCkKUHJvYmxlbTogICAgUmVzZXR0aW5nIHRoZSBpY29udigpIHN0YXRlIGFmdGVyIGVhY2ggZXJyb3IgaXMgd3JvbmcgZm9yIGFuCgkgICAgaW5jb21wbGV0ZSBzZXF1ZW5jZS4KU29sdXRpb246ICAgRG9uJ3QgcmVzZXQgdGhlIGljb252KCkgc3RhdGUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMjc1ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgInYiIGluIGEgc3RhcnR1cCBzY3JpcHQsIGdldCB3YXJuaW5nIG1lc3NhZ2UgdGhhdAoJICAgIHRlcm1pbmFsIGNhbm5vdCBoaWdobGlnaHQuIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBPbmx5IGdpdmUgdGhlIG1lc3NhZ2UgYWZ0ZXIgdGhlIHRlcm1pbmFsIGhhcyBiZWVuIGluaXRpYWxpemVkLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjI3NgpQcm9ibGVtOiAgICAiZ3ZpbSAtLXJlbW90ZSBmaWxlIiBkb2Vzbid0IHByb21wdCBmb3IgYW4gZW5jcnlwdGlvbiBrZXkuClNvbHV0aW9uOiAgIFRoZSBmdXJ0aGVyIGNoYXJhY3RlcnMgdGhlIGNsaWVudCBzZW5kcyB0byB0aGUgc2VydmVyIGFyZSB1c2VkLgoJICAgIEFkZGVkIGlucHV0c2F2ZSgpIGFuZCBpbnB1dHJlc3RvcmUoKSB0byBhbGxvdyBwcm9tcHRpbmcgdGhlCgkgICAgdXNlciBkaXJlY3RseSBhbmQgbm90IHVzaW5nIHR5cGVhaGVhZC4KCSAgICBBbHNvIGZpeCBwb3NzaWJsZSBtZW1vcnkgbGVhayBmb3IgIjpub3JtYWwiLgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2dldGNoYXIuYywKCSAgICBzcmMvbWFpbi5jLCBzcmMvcHJvdG8vZ2V0Y2hhci5wcm8sIHNyYy9wcm90by91aS5wcm8sCgkgICAgc3JjL3J1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvc3RydWN0cy5oLCBzcmMvdWkuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjEuMjc3IChkZXBlbmRzIG9uIDYuMS4yNzYpClByb2JsZW06ICAgIENvbXBpbGF0aW9uIGVycm9yIHdoZW4gYnVpbGRpbmcgd2l0aCBzbWFsbCBmZWF0dXJlcy4KU29sdXRpb246ICAgRGVmaW5lIHRyYXNoX2lucHV0X2J1ZigpIHdoZW4gbmVlZGVkLiAoS2VsdmluIExlZSkKRmlsZXM6CSAgICBzcmMvdWkuYwoKUGF0Y2ggNi4xLjI3OApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHNpZ25zIHRoZSBsaW5lIG51bWJlciBvZiBhIGNsb3NlZCBmb2xkIGRvZXNuJ3QgbGluZSB1cAoJICAgIHdpdGggdGhlIG90aGVyIGxpbmUgbnVtYmVycy4gKEthbWlsIEJ1cnp5bnNraSkKU29sdXRpb246ICAgSW5zZXJ0IHR3byBzcGFjZXMgZm9yIHRoZSBzaWduIGNvbHVtbi4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4yNzkKUHJvYmxlbTogICAgVGhlIHByb3RvdHlwZSBmb3Igc21zZygpIGFuZCBzbXNnX2F0dHIoKSBkbyBub3QgbWF0Y2ggdGhlIGZ1bmN0aW9uCgkgICAgZGVmaW5pdGlvbi4gIFRoaXMgbWF5IGNhdXNlIHRyb3VibGUgZm9yIHNvbWUgY29tcGlsZXJzLiAoTml4KQpTb2x1dGlvbjogICBVc2UgdmFfbGlzdCBmb3Igc3lzdGVtcyB0aGF0IGhhdmUgc3RkYXJnLmguICBVc2UgImludCIgaW5zdGVhZCBvZgoJICAgICJ2b2lkIiBmb3IgdGhlIHJldHVybiB0eXBlLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZy5oLmluLCBzcmMvY29uZmlndXJlLmluLAoJICAgIHNyYy9wcm90by5oLCBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjEuMjgwClByb2JsZW06ICAgIEl0J3MgcG9zc2libGUgdG8gdXNlIGFuIGFyZ3VtZW50ICJmaXJzdGxpbmUiIG9yICJsYXN0bGluZSIgZm9yIGEKCSAgICBmdW5jdGlvbiBidXQgdXNpbmcgImE6Zmlyc3RsaW5lIiBvciAiYTpsYXN0bGluZSIgaW4gdGhlIGZ1bmN0aW9uCgkgICAgd29uJ3Qgd29yay4gIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIEdpdmUgYW4gZXJyb3IgbWVzc2FnZSBmb3IgdGhlc2UgYXJndW1lbnRzLgoJICAgIEFsc28gYXZvaWQgdGhhdCB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGJvZHkgY2F1c2VzIGEgd2hvbGUgcm93IG9mCgkgICAgZXJyb3JzLCBza2lwIG92ZXIgaXQgYWZ0ZXIgYW4gZXJyb3IgaW4gdGhlIGZpcnN0IGxpbmUuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjI4MQpQcm9ibGVtOiAgICBJbiBJbnNlcnQgbW9kZSBDVFJMLVggQ1RSTC1HIGxlYXZlcyB0aGUgY3Vyc29yIGFmdGVyIHRoZSBydWxlci4KU29sdXRpb246ICAgU2V0IHRoZSBjdXJzb3IgcG9zaXRpb24gYmVmb3JlIHdhaXRpbmcgZm9yIHRoZSBhcmd1bWVudCBvZiBDVFJMLUcuCgkgICAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjEuMjgyClByb2JsZW06ICAgIEVsdmlzIHVzZXMgInNlIiBpbiBhIG1vZGVsaW5lLCBWaW0gZG9lc24ndCByZWNvZ25pemUgdGhpcy4KU29sdXRpb246ICAgQWxzbyBhY2NlcHQgInNlICIgd2hlcmUgInNldCAiIGlzIGFjY2VwdGVkIGluIGEgbW9kZWxpbmUuCgkgICAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4yODMKUHJvYmxlbTogICAgRm9yICI6c2lnbiIgdGhlIGljb24gZmlsZSBuYW1lIGNhbm5vdCBjb250YWluIGEgc3BhY2UuClNvbHV0aW9uOiAgIEhhbmRsZSBiYWNrc2xhc2hlcyBpbiB0aGUgZmlsZSBuYW1lLiAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjEuMjg0ClByb2JsZW06ICAgIE9uIFNvbGFyaXMgdGhlcmUgaXMgYSB3YXJuaW5nIGZvciAic3RydWN0IHV0aW1idWYiLgpTb2x1dGlvbjogICBNb3ZlIGluY2x1ZGluZyAidXRpbWUuaCIgdG8gb3V0c2lkZSB0aGUgZnVuY3Rpb24uIChEZXJlayBXeWF0dCkKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4yODUKUHJvYmxlbTogICAgQ2FuJ3Qgd2lwZSBvdXQgYSBidWZmZXIgd2l0aCAnYnVmaGlkZScgb3B0aW9uLgpTb2x1dGlvbjogICBBZGQgIndpcGUiIHZhbHVlIHRvICdidWZoaWRlJy4gKFllZ2FwcGFuIExha3NobWFuYW4pCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9idWZmZXIuYywgc3JjL29wdGlvbi5jLAoJICAgIHNyYy9xdWlja2ZpeC5jCgpQYXRjaCA2LjEuMjg2ClByb2JsZW06ICAgICdzaG93YnJlYWsnIGNhbm5vdCBjb250YWluIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KU29sdXRpb246ICAgQWxsb3cgdXNpbmcgYWxsIHByaW50YWJsZSBjaGFyYWN0ZXJzIGZvciAnc2hvd2JyZWFrJy4KRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvbW92ZS5jLCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMS4yODcgKGRlcGVuZHMgb24gNi4xLjI4NSkKUHJvYmxlbTogICAgRWZmZWN0IG9mICJkZWxldGUiIGFuZCAid2lwZSIgaW4gJ2J1ZmhpZGUnIHdlcmUgbWl4ZWQgdXAuClNvbHV0aW9uOiAgIFdpcGUgb3V0IHdoZW4gd2lwaW5nIG91dCBpcyBhc2tlZCBmb3IuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuMjg4ClByb2JsZW06ICAgICI6c2lsZW50IGZ1bmN0aW9uIEYiIGhhbmdzLiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIERvbid0IHVzZSBtc2dfY29sLCBpdCBpcyBub3QgaW5jcmVtZW50ZWQgd2hlbiB1c2luZyAiOnNpbGVudCIuCgkgICAgQWxzbyBtYWRlIHRoZSBmdW5jdGlvbiBvdXRwdXQgbG9vayBhIGJpdCBiZXR0ZXIuICBEb24ndCB0cmFuc2xhdGUKCSAgICAiZnVuY3Rpb24iLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yODkgKGRlcGVuZHMgb24gNi4xLjI3OCkKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgcG9pbnRlci4gKEF4ZWwgS2llbGhvcm4pClNvbHV0aW9uOiAgIEFkZCBhIHR5cGVjYXN0IGZvciAiICAiLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjI5MCAoZXh0cmEpClByb2JsZW06ICAgIFRydW5jYXRpbmcgbG9uZyB0ZXh0IGZvciBtZXNzYWdlIGJveCBtYXkgYnJlYWsgbXVsdGktYnl0ZQoJICAgIGNoYXJhY3Rlci4KU29sdXRpb246ICAgQWRqdXN0IHRvIHN0YXJ0IG9mIG11bHRpLWJ5dGUgY2hhcmFjdGVyLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjEuMjkxIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IENUUkwtQCBkb2Vzbid0IHdvcmsuICBEb24ndCBldmVuIGdldCBhIG1lc3NhZ2UgZm9yIGl0LgpTb2x1dGlvbjogICBSZWNvZ25pemUgdGhlIGtleWNvZGUgZm9yIENUUkwtQC4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjEuMjkyIChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMjUzKQpQcm9ibGVtOiAgICBXaW4zMjogQ2FuJ3QgY29tcGlsZSB3aXRoIG5ldyBNaW5nVyBjb21waWxlci4KCSAgICBCb3JsYW5kIDUgbWFrZWZpbGUgZG9lc24ndCBnZW5lcmF0ZSBwYXRoZGVmLmMuClNvbHV0aW9uOiAgIFJlbW92ZSAtd3dpZGUtbXVsdGlwbHkgYXJndW1lbnQuIChSZW5lIGRlIFp3YXJ0KQoJICAgIFZhcmlvdXMgZml4ZXMgZm9yIG90aGVyIHByb2JsZW1zIGluIFdpbjMyIG1ha2VmaWxlcy4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvTWFrZV9iYzUubWFrLCBzcmMvTWFrZV9jeWcubWFrLCBzcmMvTWFrZV9taW5nLm1haywKCSAgICBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjEuMjkzClByb2JsZW06ICAgIGJ5dGUybGluZSgpIHJldHVybnMgYSB3cm9uZyByZXN1bHQgZm9yIHNvbWUgdmFsdWVzLgpTb2x1dGlvbjogICBDaGFuZ2UgIj49IiB0byAiPiIgaW4gbWxfZmluZF9saW5lX29yX29mZnNldCgpLiAoQnJhZGZvcmQgQyBTbWl0aCkKCSAgICBBZGQgb25lIHRvIHRoZSBsaW5lIG51bWJlciB3aGVuIGF0IHRoZSBlbmQgb2YgYSBibG9jay4KRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCgpQYXRjaCA2LjEuMjk0ClByb2JsZW06ICAgIENhbid0IGluY2x1ZGUgYSBtdWx0aS1ieXRlIGNoYXJhY3RlciBpbiBhIHN0cmluZyBieSBpdHMgaGV4IHZhbHVlLgoJICAgIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIEFkZCAiXHUuLi4uIjogYSBjaGFyYWN0ZXIgc3BlY2lmaWVkIHdpdGggdXAgdG8gZm91ciBoZXggbnVtYmVycwoJICAgIGFuZCBzdG9yZWQgYWNjb3JkaW5nIHRvIHRoZSB2YWx1ZSBvZiAnZW5jb2RpbmcnLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS4yOTUgKGV4dHJhKQpQcm9ibGVtOiAgICBQcm9jZXNzaW5nIHRoZSBjcy5wbyBmaWxlIGdlbmVyYXRlcyBhbiBlcnJvci4gKFJhaHVsIEFncmF3YWwpClNvbHV0aW9uOiAgIEZpeCB0aGUgcHJpbnRmIGZvcm1hdCBjaGFyYWN0ZXJzIGluIHRoZSB0cmFuc2xhdGlvbi4KRmlsZXM6CSAgICBzcmMvcG8vY3MucG8KClBhdGNoIDYuMS4yOTYKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gY2FuY2VsbGluZyB0aGUgZm9udCBkaWFsb2cgJ2d1aWZvbnQnIHJlbWFpbnMgc2V0IHRvCgkgICAgIioiLgpTb2x1dGlvbjogICBSZXN0b3JlIHRoZSBvbGQgdmFsdWUgb2YgJ2d1aWZvbnQnIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjEuMjk3ClByb2JsZW06ICAgICJtYWtlIHRlc3QiIGZhaWxzIGluIHRlc3Q2IGluIGFuIFVURi04IGVudmlyb25tZW50LiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBCZWZvcmUgZXhlY3V0aW5nIHRoZSBCdWZSZWFkUG9zdCBhdXRvY29tbWFuZHMgc2F2ZSB0aGUgY3VycmVudAoJICAgIGZpbGVlbmNvZGluZywgc28gdGhhdCB0aGUgZmlsZSBpc24ndCBtYXJrZWQgY2hhbmdlZC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4yOTgKUHJvYmxlbTogICAgV2hlbiB1c2luZyBzaWducyBhbmQgdGhlIGZpcnN0IGxpbmUgb2YgYSBjbG9zZWQgZm9sZCBoYXMgYSBzaWduCgkgICAgaXQgY2FuIGJlIHJlZHJhd24gYXMgaWYgdGhlIGZvbGQgd2FzIG9wZW4uICAoS2FtaWwgQnVyenluc2tpKQpTb2x1dGlvbjogICBEb24ndCByZWRyYXcgYSBzaWduIGluc2lkZSBhIGNsb3NlZCBmb2xkLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjI5OQpQcm9ibGVtOiAgICAiOmVkaXQgK3NldFwgcm8gZmlsZSIgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBIYWx2ZSB0aGUgbnVtYmVyIG9mIGJhY2tzbGFzaGVzIGluIHRoZSAiK2NtZCIgYXJndW1lbnQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4zMDAgKGV4dHJhKQpQcm9ibGVtOiAgICBIYW5kbGluZyBvZiBFVE9fSUdOT1JFTEFOR1VBR0UgaXMgY29uZnVzaW5nLgpTb2x1dGlvbjogICBDbGVhbiB1cCB0aGUgaGFuZGxpbmcgb2YgRVRPX0lHTk9SRUxBTkdVQUdFLiAoR2xlbm4gTWF5bmFyZCkKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMzAxIChleHRyYSkKUHJvYmxlbTogICAgRnJlbmNoIHRyYW5zbGF0aW9uIG9mIGZpbGUtc2F2ZSBkaWFsb2cgZG9lc24ndCBzaG93IGZpbGUgbmFtZS4KU29sdXRpb246ICAgSW5zZXJ0IGEgc3RhciBpbiB0aGUgcHJpbnRmIHN0cmluZy4gKEZyYW5jb2lzIFRlcnJvdCkKRmlsZXM6CSAgICBzcmMvcG8vZnIucG8KClBhdGNoIDYuMS4zMDIKUHJvYmxlbTogICAgQ291bnRpbmcgbGluZXMgb2YgdGhlIFZpc3VhbCBhcmVhIGlzIGluY29ycmVjdCBmb3IgY2xvc2VkIGZvbGRzLgoJICAgIChNaWtvbGFqIE1hY2hvd3NraSkKU29sdXRpb246ICAgQ29ycmVjdCB0aGUgc3RhcnQgYW5kIGVuZCBmb3IgdGhlIGNsb3NlZCBmb2xkLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4xLjMwMyAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBUb3AvQm90dG9tL0FsbCB0ZXh0IGRvZXMgbm90IGFsd2F5cyBmaXQgaW4gdGhlIHJ1bGVyIHdoZW4KCSAgICB0cmFuc2xhdGVkIHRvIEphcGFuZXNlLiAgUHJvYmxlbSB3aXRoIGEgY2hhcmFjdGVyIGJlaW5nIHdpZGVyIHdoZW4KCSAgICBpbiBhIGJvbGQgZm9udC4KU29sdXRpb246ICAgVXNlIEVUT19QRFkgdG8gc3BlY2lmeSB0aGUgd2lkdGggb2YgZWFjaCBjaGFyYWN0ZXIuIChZYXN1aGlybwoJICAgIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMzA0IChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMjkyKQpQcm9ibGVtOiAgICBXaW4zMjogUG9zdHNjcmlwdCBpcyBhbHdheXMgZW5hYmxlZCBpbiB0aGUgTWluZ1cgTWFrZWZpbGUuCgkgICAgUGF0aGRlZi5jIGlzbid0IGdlbmVyYXRlZCBwcm9wZXJseSB3aXRoIE1ha2VfYmM1Lm1hay4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBDaGFuZ2UgYW4gaWZkZWYgdG8gYW4gaWZlcS4gKE1hZG9rYSBNYWNoaXRhbmkpCgkgICAgVXNlIHRoZSBCb3JsYW5kIG1ha2UgcmVkaXJlY3Rpb24gdG8gZ2VuZXJhdGUgcGF0aGRlZi5jLiAoTWF1cmljZQoJICAgIEJhcm51bSkKRmlsZXM6CSAgICBzcmMvTWFrZV9iYzUubWFrLCBzcmMvTWFrZV9taW5nLm1hawoKUGF0Y2ggNi4xLjMwNQpQcm9ibGVtOiAgICBXaGVuICd2ZXJib3NlJyBpcyAxNCBvciBoaWdoZXIsIGEgZnVuY3Rpb24gY2FsbCBtYXkgY2F1c2UgcmVhZGluZwoJICAgIHVuaW5pdGlhbGl6ZWQgZGF0YS4gKFdhbHRlciBCcmlzY29lKQpTb2x1dGlvbjogICBDaGVjayBmb3IgZW5kLW9mLXN0cmluZyBpbiB0cnVuY19zdHJpbmcoKS4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjEuMzA2ClByb2JsZW06ICAgIFRoZSBBSVggVmlzdWFsQWdlIGNjIGNvbXBpbGVyIGRvZXNuJ3QgZGVmaW5lIF9fU1REQ19fLgpTb2x1dGlvbjogICBVc2UgX19FWFRFTkRFRF9fIGxpa2UgX19TVERDX18uIChKZXNzIFRocnlzb2VlKQpGaWxlczoJICAgIHNyYy9vc191bml4LmgKClBhdGNoIDYuMS4zMDcKUHJvYmxlbTogICAgV2hlbiBhIGRvdWJsZS1ieXRlIGNoYXJhY3RlciBoYXMgYW4gaWxsZWdhbCB0YWlsIGJ5dGUgdGhlIGRpc3BsYXkKCSAgICBpcyBtZXNzZWQgdXAuIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIERyYXcgIlhYIiBpbnN0ZWFkIG9mIHRoZSB3cm9uZyBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuMzA4ClByb2JsZW06ICAgIENhbid0IHJlc2V0IHRoZSBWaXN1YWwgbW9kZSByZXR1cm5lZCBieSB2aXN1YWxtb2RlKCkuClNvbHV0aW9uOiAgIFVzZSBhbiBvcHRpb25hbCBhcmd1bWVudCB0byB2aXN1YWxtb2RlKCkuIChDaGFybGVzIENhbXBiZWxsKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvZXZhbC5jLCBzcmMvbm9ybWFsLmMsCgkgICAgc3JjL3N0cnVjdHMuaAoKUGF0Y2ggNi4xLjMwOQpQcm9ibGVtOiAgICBUaGUgdHV0b3IgZG9lc24ndCBzZWxlY3QgR2VybWFuIGlmIHRoZSBsb2NhbGUgbmFtZSBpcwoJICAgICJHZXJtYW5fR2VybWFueS4xMjUyIi4gKEpvYWNoaW0gSG9mbWFubikKU29sdXRpb246ICAgQ2hlY2sgZm9yICJHZXJtYW4iIGluIHRoZSBsb2NhbGUgbmFtZS4gIEFsc28gY2hlY2sgZm9yCgkgICAgIi5nZSIuICBBbmQgaW5jbHVkZSB0aGUgR2VybWFuIGFuZCBHcmVlayB0dXRvcnMuCkZpbGVzOgkgICAgcnVudGltZS90dXRvci90dXRvci5kZSwgcnVudGltZS90dXRvci90dXRvci52aW0sCgkgICAgcnVudGltZS90dXRvci90dXRvci5nciwgcnVudGltZS90dXRvci90dXRvci5nci5jcDczNwoKUGF0Y2ggNi4xLjMxMCAoZGVwZW5kcyBvbiA2LjEuMzA3KQpQcm9ibGVtOiAgICBBbGwgZG91YmxlLWJ5dGUgY2hhcmFjdGVycyBhcmUgZGlzcGxheWVkIGFzICJYWCIuClNvbHV0aW9uOiAgIFVzZSAiPj0gMzIiIGluc3RlYWQgb2YgIjwgMzIiLiAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4zMTEgKGV4dHJhKQpQcm9ibGVtOiAgICBWTVM6IHBhdGggaW4gd2luZG93IHRpdGxlIGRvZXNuJ3QgaW5jbHVkZSBuZWNlc3Nhcnkgc2VwYXJhdG9yLgoJICAgIGZpbGUgdmVyc2lvbiBkb2Vzbid0IGFsd2F5cyB3b3JrIHByb3Blcmx5IHdpdGggVW5peC4KCSAgICBDcmFzaGVzIGJlY2F1c2Ugb2YgbWVtb3J5IG92ZXJ3cml0ZSBpbiBHVUkuCgkgICAgRGlkbid0IGFsd2F5cyBoYW5kbGUgZmlsZXMgd2l0aCBsb3dlcmNhc2UgYW5kIGNvcnJlY3QgcGF0aC4KU29sdXRpb246ICAgRml4IHRoZSBwcm9ibGVtcy4gIFJlbW92ZSB1bm5lY2Vzc2FyeSBmaWxlIG5hbWUgdHJhbnNsYXRpb25zLgoJICAgIChab2x0YW4gQXJwYWRmZnkpCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZXhfY21kczIuYywgc3JjL2ZpbGVpby5jLCBzcmMvbWVtbGluZS5jLAoJICAgIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL29zX3VuaXguYywgc3JjL29zX3Ztcy5jLCBzcmMvdGFnLmMKClBhdGNoIDYuMS4zMTIKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiOnNpbGVudCIgZGVidWdnaW5nIGlzIGFsc28gZG9uZSBzaWxlbnRseS4KU29sdXRpb246ICAgRGlzYWJsZSBzaWxlbmNlIHdoaWxlIGF0IHRoZSBkZWJ1ZyBwcm9tcHQuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMS4zMTMKUHJvYmxlbTogICAgV2hlbiBhICI6ZHJvcCBmbmFtZSIgY29tbWFuZCBpcyB1c2VkIGFuZCAiZm5hbWUiIGlzIG9wZW4gaW4KCSAgICBhbm90aGVyIHdpbmRvdywgaXQgaXMgYWxzbyBvcGVuZWQgaW4gdGhlIGN1cnJlbnQgd2luZG93LgpTb2x1dGlvbjogICBDaGFuZ2UgdG8gdGhlIHdpbmRvdyB3aXRoICJmbmFtZSIgaW5zdGVhZC4KCSAgICBEb24ndCByZWRlZmluZSB0aGUgYXJndW1lbnQgbGlzdCB3aGVuIGRyb3BwaW5nIG9ubHkgb25lIGZpbGUuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvd2luZG93cy50eHQsIHNyYy9leF9jbWRzMi5jLCBzcmMvZXhfY21kcy5jLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvcHJvdG8vZXhfY21kczIucHJvLCBzcmMvcHJvdG8vZXhfZG9jbWQucHJvCgpQYXRjaCA2LjEuMzE0IChkZXBlbmRzIG9uIDYuMS4xMjYpClByb2JsZW06ICAgIE1pc3NpbmcgYmFja3NsYXNoIGluICJHZW5lcmljIENvbmZpZyBmaWxlIiBzeW50YXggbWVudS4KU29sdXRpb246ICAgSW5zZXJ0IHRoZSBiYWNrc2xhc2guIChaYWsgQmVjaykKRmlsZXM6CSAgICBydW50aW1lL21ha2VtZW51LnZpbSwgcnVudGltZS9zeW5tZW51LnZpbQoKUGF0Y2ggNi4xLjMxNSAoZXh0cmEpClByb2JsZW06ICAgIEEgdmVyeSBsb25nIGhvc3RuYW1lIG1heSBsZWFkIHRvIGFuIHVudGVybWluYXRlZCBzdHJpbmcuICBGYWlsaW5nCgkgICAgdG8gb2J0YWluIGEgaG9zdG5hbWUgbWF5IHJlc3VsdCBpbiBnYXJiYWdlLiAgKFdhbHRlciBCcmlzY29lKQpTb2x1dGlvbjogICBBZGQgYSBOVUwgYXQgdGhlIGVuZCBvZiB0aGUgaG9zdG5hbWUgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9vc19tYWMuYywgc3JjL29zX21zZG9zLmMsIHNyYy9vc191bml4LmMsIHNyYy9vc193aW4xNi5jLAoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjEuMzE2ClByb2JsZW06ICAgIFdoZW4gZXhpdGluZyB3aXRoICJ3cSIgYW5kIHRoZXJlIGlzIGEgaGlkZGVuIGJ1ZmZlciwgYWZ0ZXIgdGhlCgkgICAgImZpbGUgY2hhbmdlZCIgZGlhbG9nIHRoZXJlIGlzIGEgd2FybmluZyBmb3IgYSBjaGFuZ2VkIGJ1ZmZlci4KCSAgICAoQWppdCBUaGFra2FyKQpTb2x1dGlvbjogICBEbyB1cGRhdGUgdGhlIGJ1ZmZlciB0aW1lc3RhbXBzIHdoZW4gZXhpdGluZy4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMS4zMTcKUHJvYmxlbTogICAgQ2xvc2luZyBhIHdpbmRvdyBtYXkgY2F1c2Ugc29tZSBvZiB0aGUgcmVtYWluaW5nIHdpbmRvd3MgdG8gYmUKCSAgICBwb3NpdGlvbmVkIHdyb25nIGlmIHRoZXJlIGlzIGEgbWl4IG9mIGhvcml6b250YWwgYW5kIHZlcnRpY2FsCgkgICAgc3BsaXRzLiAoU3RlZmFuIEluZ2kgVmFsZGltYXJzc29uKQpTb2x1dGlvbjogICBVcGRhdGUgdGhlIGZyYW1lIHNpemVzIGJlZm9yZSB1cGRhdGluZyB0aGUgd2luZG93IHBvc2l0aW9ucy4KRmlsZXM6CSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMS4zMTgKUHJvYmxlbTogICAgYXV0by9wYXRoZGVmLmMgY2FuIGluY2x1ZGUgd3JvbmcgcXVvdGVzIHdoZW4gYSBjb21waWxlciBmbGFnCgkgICAgaW5jbHVkZXMgcXVvdGVzLgpTb2x1dGlvbjogICBQdXQgYSBiYWNrc2xhc2ggYmVmb3JlIHRoZSBxdW90ZXMgaW4gY29tcGlsZXIgZmxhZ3MuIChTaGlucmEgQWlkYSkKRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMS4zMTkgKGRlcGVuZHMgb24gNi4xLjI3NikKUHJvYmxlbTogICAgVXNpbmcgIi0tcmVtb3RlICtjbWQgZmlsZSIgZG9lcyBub3QgZXhlY3V0ZSAiY21kIi4KU29sdXRpb246ICAgQ2FsbCBpbnB1dHJlc3RvcmUoKSBpbiB0aGUgc2FtZSBjb21tYW5kIGxpbmUgYXMgaW5wdXRzYXZlKCksCgkgICAgb3RoZXJ3aXNlIGl0IHdpbGwgbmV2ZXIgZ2V0IGV4ZWN1dGVkLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4zMjAgKGRlcGVuZHMgb24gNi4xLjMxMykKUHJvYmxlbTogICAgV2hlbiBhICI6ZHJvcCBvbmVcIGZpbGUiIGNvbW1hbmQgaXMgdXNlZCB0aGUgZmlsZSAib25lXCBmaWxlIiBpcwoJICAgIG9wZW5lZCwgdGhlIGJhY2tzbGFzaCBpcyBub3QgcmVtb3ZlZC4gKFRhcm8gTXVyYW9rYSkKU29sdXRpb246ICAgSGFuZGxlIGJhY2tzbGFzaGVzIGNvcnJlY3RseS4gIEFsd2F5cyBzZXQgdGhlIGFyZ3VtZW50IGxpc3QgdG8KCSAgICBrZWVwIGl0IHNpbXBsZS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy93aW5kb3dzLnR4dCwgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjMyMQpQcm9ibGVtOiAgICBXaGVuICdtb3VzZScgaW5jbHVkZXMgJ24nIGJ1dCBub3QgJ3YnLCBkb24ndCBhbGxvdyBzdGFydGluZyBWaXN1YWwKCSAgICBtb2RlIHdpdGggdGhlIG1vdXNlLgpTb2x1dGlvbjogICBEb24ndCB1c2UgTU9VU0VfTUFZX1ZJUyB3aGVuIHRoZXJlIGlzIG5vICd2JyBpbiAnbW91c2UnLiAoRmxlbW1pbmcKCSAgICBNYWRzZW4pCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuMzIyIChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMzE1KQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIGhvc3QgbmFtZSBpcyBhbHdheXMgIlBDICIgcGx1cyB0aGUgcmVhbCBob3N0IG5hbWUuClNvbHV0aW9uOiAgIERvbid0IGluc2VydCAiUEMgIiBiZWZvcmUgdGhlIGhvc3QgbmFtZS4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4xLjMyMwpQcm9ibGVtOiAgICAiOnJlZ2lzdGVycyIgZG9lc24ndCBzdG9wIGxpc3RpbmcgZm9yIGEgInEiIGF0IHRoZSBtb3JlIHByb21wdC4KCSAgICAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIENoZWNrIGZvciBpbnRlcnJ1cHQgYW5kIGdvdF9pbnQuCkZpbGVzOgkgICAgc3JjL29wcy5jLCBzcmMvcHJvdG8vb3BzLnBybwoKUGF0Y2ggNi4xLjMyNApQcm9ibGVtOiAgICBDcmFzaCB3aGVuIGRyYWdnaW5nIGEgdmVydGljYWwgc2VwYXJhdG9yIHdoZW4gPExlZnRNb3VzZT4gaXMKCSAgICByZW1hcHBlZCB0byBqdW1wIHRvIGFub3RoZXIgd2luZG93LgpTb2x1dGlvbjogICBQYXNzIHRoZSB3aW5kb3cgcG9pbnRlciB0byB0aGUgZnVuY3Rpb24gZG9pbmcgdGhlIGRyYWdnaW5nIGluc3RlYWQKCSAgICBvZiBhbHdheXMgdXNpbmcgdGhlIGN1cnJlbnQgd2luZG93LiAoRGFuaWVsIEVsc3RuZXIpCgkgICAgQWxzbyBmaXggdGhhdCBzdGFydGluZyBhIGRyYWcgY2hhbmdlcyB3aW5kb3cgZm9jdXMuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jLCBzcmMvcHJvdG8vd2luZG93LnBybywgc3JjL3VpLmMsIHNyYy92aW0uaCwKCSAgICBzcmMvd2luZG93LmMKClBhdGNoIDYuMS4zMjUKUHJvYmxlbTogICAgU2hpZnQtVGFiIGlzIG5vdCBhdXRvbWF0aWNhbGx5IHJlY29nbml6ZWQgaW4gYW4geHRlcm0uClNvbHV0aW9uOiAgIEFkZCA8RXNjPltaIGFzIHRoZSB0ZXJtY2FwIGNvZGUuIChBbmRyZXcgUGltbG90dCkKRmlsZXM6CSAgICBzcmMvdGVybS5jCgpQYXRjaCA2LjEuMzI2ClByb2JsZW06ICAgIFVzaW5nIGEgc2VhcmNoIHBhdHRlcm4gbWF5IHJlYWQgZnJvbSB1bmluaXRpYWxpemVkIGRhdGEgKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBJbml0aWFsaXplIHBvaW50ZXJzIHRvIE5VTEwuCkZpbGVzOgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjEuMzI3ClByb2JsZW06ICAgIFdoZW4gb3BlbmluZyB0aGUgIm1ieXRlLnR4dCIgaGVscCBmaWxlIHRoZSB1dGYtOCBjaGFyYWN0ZXJzIGFyZQoJICAgIHVucmVhZGFibGUsIGJlY2F1c2UgdGhlIGZpbGVlbmNvZGluZyBpcyBmb3JjZWQgdG8gYmUgbGF0aW4xLgpTb2x1dGlvbjogICBDaGVjayBmb3IgdXRmLTggZW5jb2RpbmcgZmlyc3QgaW4gaGVscCBmaWxlcy4gKERhbmllbCBFbHN0bmVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL21ieXRlLnR4dCwgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjEuMzI4ClByb2JsZW06ICAgIFByb3RvdHlwZSBmb3IgZW5jX2Nhbm9uX3NlYXJjaCgpIGlzIG1pc3NpbmcuClNvbHV0aW9uOiAgIEFkZCB0aGUgcHJvdG90eXBlLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMS4zMjkKUHJvYmxlbTogICAgV2hlbiBlZGl0aW5nIGEgZmlsZSAiYSBiIGMiIHJlcGxhY2luZyAiJSIgaW4gIjpDbWQgJSIgb3IgIjpuZXh0ICUiCgkgICAgZG9lcyBub3Qgd29yayBwcm9wZXJseS4gIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgQWx3YXlzIGVzY2FwZSBzcGFjZXMgd2hlbiBleHBhbmRpbmcgIiUiLiAgRG9uJ3Qgc3BsaXQgYXJndW1lbnQgZm9yCgkgICAgPGYtYXJncz4gaW4gYSB1c2VyIGNvbW1hbmQgd2hlbiBvbmx5IG9uZSBhcmd1bWVudCBpcyB1c2VkLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuMzMwClByb2JsZW06ICAgIEdUSywgTW90aWYgYW5kIEF0aGVuYTogS2V5cGFkIGtleXMgcHJvZHVjZSB0aGUgc2FtZSBjb2RlIGFzCgkgICAgbm9uLWtleXBhZCBrZXlzLCBtYWtpbmcgaXQgaW1wb3NzaWJsZSB0byBtYXAgdGhlbSBzZXBhcmF0ZWx5LgpTb2x1dGlvbjogICBVc2UgZGlmZmVyZW50IHRlcm1jYXAgY29kZXMgZm9yIHRoZSBrZXlwYWQga2V5cy4gKE5laWwgQmlyZCkKRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYywgc3JjL2d1aV94MTEuYwoKUGF0Y2ggNi4xLjMzMQpQcm9ibGVtOiAgICBXaGVuIHRyYW5zbGF0aW5nIHRoZSBoZWxwIGZpbGVzLCAiTE9DQUwgQURESVRJT05TIiBubyBsb25nZXIgbWFya3MKCSAgICB0aGUgc3BvdCB3aGVyZSBoZWxwIGZpbGVzIGZyb20gcGx1Z2lucyBhcmUgdG8gYmUgbGlzdGVkLgpTb2x1dGlvbjogICBBZGQgYSAibG9jYWwtYWRkaXRpb25zIiB0YWcgYW5kIHVzZSB0aGF0IHRvIGZpbmQgdGhlIHJpZ2h0IHNwb3QuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvaGVscC50eHQsIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMS4zMzIgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogTG9hZGluZyBQZXJsIGR5bmFtaWNhbGx5IGRvZXNuJ3Qgd29yayB3aXRoIFBlcmwgNS44LgoJICAgIFBlcmwgNS44IGFsc28gZG9lcyBub3Qgd29yayB3aXRoIEN5Z3dpbiBhbmQgTWluZy4KU29sdXRpb246ICAgQWRqdXN0IHRoZSBmdW5jdGlvbiBjYWxscy4gKFRhcm8gTXVyYW9rYSkKCSAgICBBZGp1c3QgdGhlIGN5ZyBhbmQgbWluZyBtYWtlZmlsZXMuIChEYW4gU2hhcnApCkZpbGVzOgkgICAgc3JjL01ha2VfY3lnLm1haywgc3JjL01ha2VfbWluZy5tYWssIHNyYy9NYWtlX212Yy5tYWssCgkgICAgc3JjL2lmX3BlcmwueHMKClBhdGNoIDYuMS4zMzMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQ2FuJ3QgaGFuZGxlIFVuaWNvZGUgdGV4dCBvbiB0aGUgY2xpcGJvYXJkLgoJICAgIENhbid0IHBhc3MgTlVMIGJ5dGUsIGl0IGJlY29tZXMgYSBsaW5lIGJyZWFrLiAgKEJydWNlIERlVmlzc2VyKQpTb2x1dGlvbjogICBTdXBwb3J0IFVuaWNvZGUgZm9yIHRoZSBjbGlwYm9hcmQgKFJvbiBBYXJvbiBhbmQgR2xlbm4gTWF5bmFyZCkKCSAgICBBbHNvIHN1cHBvcnQgY29weS9wYXN0ZSBvZiBOVUwgYnl0ZXMuCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMsIHNyYy9vc193aW4xNi5jIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjEuMzM0IChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMzAzKQpQcm9ibGVtOiAgICBQcm9ibGVtIHdpdGggZHJhd2luZyBIZWJyZXcgY2hhcmFjdGVycy4KU29sdXRpb246ICAgT25seSB1c2UgRVRPX1BEWSBmb3IgV2luZG93cyBOVCBhbmQgdGhlIGxpa2UuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjMzNSAoZXh0cmEpClByb2JsZW06ICAgIEZhaWx1cmUgb2Ygb2J0YWluaW5nIHRoZSBjdXJzb3IgcG9zaXRpb24gYW5kIHdpbmRvdyBzaXplIGlzCgkgICAgaWdub3JlZC4KU29sdXRpb246ICAgUmVtb3ZlIGEgc2VtaWNvbG9uIGFmdGVyIGFuICJpZiIuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuMzM2IChleHRyYSkKUHJvYmxlbTogICAgV2FybmluZyBmb3IgdXNlIG9mIGZ1bmN0aW9uIHByb3RvdHlwZXMgb2Ygc21zZygpLgpTb2x1dGlvbjogICBEZWZpbmUgSEFWRV9TVERBUkdfSC4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9vc193aW4zMi5oCgpQYXRjaCA2LjEuMzM3ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgImZpbmlzaCIgaW4gZGVidWcgbW9kZSBpbiBmdW5jdGlvbiBCKCkgZm9yICI6Y2FsbAoJICAgIEEoQigpKSIgZG9lcyBub3Qgc3RvcCBhZnRlciBCKCkgaXMgZmluaXNoZWQuClNvbHV0aW9uOiAgIEluY3JlYXNlIGRlYnVnX2xldmVsIHdoaWxlIGV2YWx1YXRpbmcgYSBmdW5jdGlvbi4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjMzOApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGEgbWVudSB0aGF0IGNoZWNrcyBvdXQgdGhlIGN1cnJlbnQgZmlsZSBmcm9tIEluc2VydAoJICAgIG1vZGUsIHRoZXJlIGlzIG5vIHdhcm5pbmcgZm9yIHRoZSBjaGFuZ2VkIGZpbGUgdW50aWwgZXhpdGluZwoJICAgIEluc2VydCBtb2RlLiAgKFNyaWthbnRoIFNhbmthcmFuKQpTb2x1dGlvbjogICBBZGQgYSBjaGVjayBmb3IgbmVlZF9jaGVja190aW1lc3RhbXBzIGluIHRoZSBJbnNlcnQgbW9kZSBsb29wLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMS4zMzkKUHJvYmxlbTogICAgQ29tcGxldGlvbiBkb2Vzbid0IGFsbG93ICJnOiIgaW4gIjpsZXQgZzpkaWRfPFRhYj4iLiAoQmVuamkKCSAgICBGaXNoZXIpClNvbHV0aW9uOiAgIFJldHVybiAiZzp2YXIiIGZvciBnbG9iYWwgdmFyaWFibGVzIHdoZW4gdGhhdCBpcyB3aGF0IGlzIGJlaW5nCgkgICAgZXhwYW5kZWQuIChGbGVtbWluZyBNYWRzZW4pCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4xLjM0MCAoZXh0cmEsIGRlcGVuZHMgb24gNi4xLjMzMikKUHJvYmxlbTogICAgV2luMzI6IENhbid0IGNvbXBpbGUgdGhlIFBlcmwgaW50ZXJmYWNlIHdpdGggbm1ha2UuClNvbHV0aW9uOiAgIERvbid0IGNvbXBhcmUgdGhlIHZlcnNpb24gbnVtYmVyIGFzIGEgc3RyaW5nIGJ1dCBhcyBhIG51bWJlci4KCSAgICAoSnVlcmdlbiBLcmFlbWVyKQpGaWxlczoJICAgIHNyYy9NYWtlX212Yy5tYWsKClBhdGNoIDYuMS4zNDEKUHJvYmxlbTogICAgSW4gSW5zZXJ0IG1vZGUgd2l0aCAncmlnaHRsZWZ0JyBzZXQgdGhlIGN1cnNvciBpcyBkcmF3biBoYWxmd2F5IGEKCSAgICBkb3VibGUtd2lkZSBjaGFyYWN0ZXIuICBGb3IgQ1RSTC1SIGFuZCBDVFJMLUsgaW4gSW5zZXJ0IG1vZGUgdGhlICIKCSAgICBvciA/IGlzIG5vdCBkaXNwbGF5ZWQuClNvbHV0aW9uOiAgIERyYXcgdGhlIGN1cnNvciBpbiB0aGUgbmV4dCBjaGFyYWN0ZXIgY2VsbC4gIERpc3BsYXkgdGhlICIgb3IgPwoJICAgIG92ZXIgdGhlIHJpZ2h0IGhhbGYgb2YgdGhlIGRvdWJsZS13aWRlIGNoYXJhY3Rlci4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKSAgQWxzbyBmaXggdGhhdCBjYW5jZWxsaW5nIGEgZGlncmFwaCBkb2Vzbid0IHJlZHJhdwoJICAgIGEgZG91YmxlLWJ5dGUgY2hhcmFjdGVyIGNvcnJlY3RseS4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZ3VpLmMsIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjEuMzQyIChkZXBlbmRzIG9uIDYuMS4zNDEpClByb2JsZW06ICAgIFdpdGggJ3JpZ2h0bGVmdCcgc2V0IHR5cGluZyAiYyIgb24gYSBkb3VibGUtd2lkZSBjaGFyYWN0ZXIgY2F1c2VzCgkgICAgdGhlIGN1cnNvciB0byBiZSBkaXNwbGF5ZWQgb25lIGNlbGwgdG8gdGhlIGxlZnQuClNvbHV0aW9uOiAgIERyYXcgdGhlIGN1cnNvciBpbiB0aGUgbmV4dCBjaGFyYWN0ZXIgY2VsbC4gIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjEuMzQzIChkZXBlbmRzIG9uIDYuMS4zNDIpClByb2JsZW06ICAgIENhbm5vdCBjb21waWxlIHdpdGggdGhlICttdWx0aV9ieXRlIGZlYXR1cmUgYnV0IHdpdGhvdXQgK3JpZ2h0bGVmdC4KCSAgICBDYW5ub3QgY29tcGlsZSB3aXRob3V0IHRoZSBHVUkuClNvbHV0aW9uOiAgIEZpeCB0aGUgI2lmZGVmcy4gIChwYXJ0bHkgYnkgTmFtIFN1bmdIeXVuKQpGaWxlczoJICAgIHNyYy9ndWkuYywgc3JjL21ieXRlLmMsIHNyYy91aS5jCgpQYXRjaCA2LjEuMzQ0ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjpzaWxlbnQgZmlsZXR5cGUiIHRoZSBvdXRwdXQgaXMgc3RpbGwgcHV0IGluIHRoZQoJICAgIG1lc3NhZ2UgaGlzdG9yeS4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBEb24ndCBhZGQgbWVzc2FnZXMgaW4gdGhlIGhpc3Rvcnkgd2hlbiAiOnNpbGVudCIgaXMgdXNlZC4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjEuMzQ1IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6ICdpbWRpc2FibGUnIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgTWFrZSAnaW1kaXNhYmxlJyB3b3JrLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMS4zNDYKUHJvYmxlbTogICAgVGhlIHNjcm9sbCB3aGVlbCBjYW4gb25seSBzY3JvbGwgdGhlIGN1cnJlbnQgd2luZG93LgpTb2x1dGlvbjogICBNYWtlIHRoZSBzY3JvbGwgd2hlZWwgc2Nyb2xsIHRoZSB3aW5kb3cgdGhhdCB0aGUgbW91c2UgcG9pbnRzIHRvLgoJICAgIChEYW5pZWwgRWxzdG5lcikKRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZ3VpLmMsIHNyYy9ub3JtYWwuYywgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4xLjM0NwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGNzY29wZSB0byBsaXN0IG1hdGNoaW5nIHRhZ3MsIHRoZSBsaXN0ZWQgbnVtYmVyIGlzCgkgICAgc29tZXRpbWVzIG5vdCBlcXVhbCB0byB3aGF0IGNzY29wZSB1c2VzLiAoVmlocmVuIE1pbGV2KQpTb2x1dGlvbjogICBGb3IgY3Njb3BlIHRhZ3MgdXNlIG9ubHkgb25lIHRhYmxlLCBkb24ndCBnaXZlIHRhZ3MgaW4gdGhlIGN1cnJlbnQKCSAgICBmaWxlIGEgaGlnaGVyIHByaW9yaXR5LgpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4xLjM0OApQcm9ibGVtOiAgICBXaWxkbW9kZSB3aXRoIHdpbGRtZW51OiAiOnNldCB3aWxkbW9kZT1saXN0LGZ1bGwiLCAiOmNvbG9yc2NoZW1lCgkgICAgPHRhYj4iIHJlc3VsdHMgaW4gInplbGxuZXIiIGluc3RlYWQgb2YgdGhlIGZpcnN0IGVudHJ5LiAoQW5hbmQKCSAgICBIYXJpaGFyYW4pClNvbHV0aW9uOiAgIERvbid0IGNhbGwgRXhwYW5kT25lKCkgZnJvbSBnbG9icGF0aCgpLiAoRmxlbW1pbmcgTWFkc2VuKQpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjEuMzQ5ClByb2JsZW06ICAgICJ2aW0gLS1zZXJ2ZXJsaXN0IiB3aGVuIG5vIHNlcnZlciB3YXMgZXZlciBzdGFydGVkIGdpdmVzIGFuIGVycm9yCgkgICAgbWVzc2FnZSB3aXRob3V0ICJcbiIuCgkgICAgInZpbSAtLXNlcnZlcmxpc3QiIGRvZXNuJ3QgZXhpdCB3aGVuIHRoZSBYIHNlcnZlciBjYW4ndCBiZQoJICAgIGNvbnRhY3RlZCwgaXQgc3RhcnRzIFZpbSB1bmV4cGVjdGVkbHkuIChSaWNhcmRvIFNpZ25lcykKU29sdXRpb246ICAgRG9uJ3QgZ2l2ZSBhbiBlcnJvciB3aGVuIG5vIFZpbSBzZXJ2ZXIgd2FzIGV2ZXIgc3RhcnRlZC4KCSAgICBUcmVhdCBmYWlsaW5nIG9mIG9wZW5pbmcgdGhlIGRpc3BsYXkgZXF1YWwgdG8gZXJyb3JzIGluc2lkZSB0aGUKCSAgICByZW1vdGUqKCkgZnVuY3Rpb25zLiAoRmxlbW1pbmcgTWFkc2VuKQpGaWxlczoJICAgIHNyYy9pZl94Y21kc3J2LmMsIHNyYy9tYWluLmMKClBhdGNoIDYuMS4zNTAKUHJvYmxlbTogICAgV2hlbiBlbnRlcmluZyBhIGJ1ZmZlciB3aXRoICI6Ym5leHQiIGZvciB0aGUgZmlyc3QgdGltZSwgdXNpbmcgYW4KCSAgICBhdXRvY29tbWFuZCB0byByZXN0b3JlIHRoZSBsYXN0IHVzZWQgY3Vyc29yIHBvc2l0aW9uIGRvZXNuJ3Qgd29yay4KCSAgICAoUGFvbG8gR2lhcnVzc28pClNvbHV0aW9uOiAgIERvbid0IHVzZSB0aGUgbGFzdCBrbm93biBjdXJzb3IgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgVmltCgkgICAgaW52b2NhdGlvbiBpZiBhbiBhdXRvY29tbWFuZCBjaGFuZ2VkIHRoZSBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4zNTEgKGRlcGVuZHMgb24gNi4xLjM0OSkKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBzdGFydGluZyBWaW0gdGhlIGZpcnN0IHRpbWUgaW4gYW4gWCBzZXJ2ZXIuIChKb2huCgkgICAgTWNHb3dhbikKU29sdXRpb246ICAgRG9uJ3QgY2FsbCB4RnJlZSgpIHdpdGggYSBmaXhlZCBzdHJpbmcuCkZpbGVzOgkgICAgc3JjL2lmX3hjbWRzcnYuYwoKUGF0Y2ggNi4xLjM1MiAoZXh0cmEsIGRlcGVuZHMgb24gNi4xLjM0NSkKUHJvYmxlbTogICAgV2luMzI6IENyYXNoIHdoZW4gc2V0dGluZyAiaW1kaXNhYmxlIiBpbiBfdmltcmMuClNvbHV0aW9uOiAgIERvbid0IGNhbGwgSU1FIGZ1bmN0aW9ucyB3aGVuIGltbTMyLmRsbCB3YXMgbm90IGxvYWRlZCAoeWV0KS4KCSAgICBBbHNvIGFkZCB0eXBlY2FzdHMgdG8gYXZvaWQgQ29tcGlsZXIgd2FybmluZ3MgZm9yCgkgICAgSW1tQXNzb2NpYXRlQ29udGV4dCgpIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMS4zNTMgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4zMzQpClByb2JsZW06ICAgIFByb2JsZW0gd2l0aCBkcmF3aW5nIEFyYWJpYyBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBEb24ndCB1c2UgRVRPX1BEWSwgZG8gdXNlIHBhZGRpbmcuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjM1NCAoZXh0cmEsIGRlcGVuZHMgb24gNi4xLjMzMykKUHJvYmxlbTogICAgTVMtV2luZG93cyA5ODogTm90ZXBhZCBjYW4ndCBwYXN0ZSB0ZXh0IGNvcGllZCBmcm9tIFZpbSB3aGVuCgkgICAgJ2VuY29kaW5nJyBpcyAidXRmLTgiLgpTb2x1dGlvbjogICBBbHNvIG1ha2UgQ0ZfVEVYVCBhdmFpbGFibGUgb24gdGhlIGNsaXBib2FyZC4gKFJvbiBBYXJvbikKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4xLjM1NQpQcm9ibGVtOiAgICBJbiBhIHJlZ2V4cCAnXG4nIHdpbGwgbmV2ZXIgbWF0Y2ggYW55dGhpbmcgaW4gYSBzdHJpbmcuClNvbHV0aW9uOiAgIE1ha2UgJ1xuJyBtYXRjaCBhIG5ld2xpbmUgY2hhcmFjdGVyLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2VkaXQuYywgc3JjL2V2YWwuYywgc3JjL2V4X2NtZHMyLmMsCgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZmlsZWlvLmMsIHNyYy9taXNjMS5jLAoJICAgIHNyYy9vcHRpb24uYywgc3JjL29zX21hYy5jLCBzcmMvb3NfdW5peC5jLCBzcmMvcXVpY2tmaXguYywKCSAgICBzcmMvcmVnZXhwLmMsIHNyYy9zZWFyY2guYywgc3JjL3N5bnRheC5jLCBzcmMvdGFnLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4xLjM1NiAoZXh0cmEsIGRlcGVuZHMgb24sIHdlbGwsIGVoLCBzZXZlcmFsIG90aGVycykKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZ3MgZm9yIHVzaW5nIGNvbnZlcnRfc2V0dXAoKSBhbmQgYSBmZXcgb3RoZXIKCSAgICB0aGluZ3MuClNvbHV0aW9uOiAgIEFkZCB0eXBlY2FzdHMuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMsIHNyYy9vc19tc3dpbi5jLCBzcmMvcHJvdG8vb3Nfd2luMzIucHJvLCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4xLjM1NwpQcm9ibGVtOiAgICBDUiBpbiB0aGUgcXVpY2tmaXggd2luZG93IGp1bXBzIHRvIHRoZSBlcnJvciB1bmRlciB0aGUgY3Vyc29yLCBidXQKCSAgICB0aGlzIGRvZXNuJ3Qgd29yayBpbiBJbnNlcnQgbW9kZS4gKFNyaWthbnRoIFNhbmthcmFuKQpTb2x1dGlvbjogICBIYW5kbGUgQ1IgaW4gSW5zZXJ0IG1vZGUgaW4gdGhlIHF1aWNrZml4IHdpbmRvdy4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjEuMzU4ClByb2JsZW06ICAgIFRoZSB0dXRvciBkb2Vzbid0IHNlbGVjdCBhbm90aGVyIGxvY2FsZSB2ZXJzaW9uIHByb3Blcmx5LgpTb2x1dGlvbjogICBJbnNlcnQgdGhlICJsZXQiIGNvbW1hbmQuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgcnVudGltZS90dXRvci90dXRvci52aW0KClBhdGNoIDYuMS4zNTkgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWMgQ2FyYm9uOiBWaW0gZG9lc24ndCBnZXQgZm9jdXMgd2hlbiBzdGFydGVkIGZyb20gdGhlIGNvbW1hbmQKCSAgICBsaW5lLiAgQ3Jhc2ggd2hlbiB1c2luZyBob3Jpem9udGFsIHNjcm9sbCBiYXIuClNvbHV0aW9uOiAgIFNldCBWaW0gYXMgdGhlIGZyb250cHJvY2Vzcy4gIEZpeCBzY3JvbGxpbmcuICAoUGV0ZXIgQ3Vja2EpCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYwoKUGF0Y2ggNi4xLjM2MCAoZGVwZW5kcyBvbiA2LjEuMzQxKQpQcm9ibGVtOiAgICBJbiBJbnNlcnQgbW9kZSBDVFJMLUsgRVNDIG1lc3NlcyB1cCBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyLgoJICAgIChBbmRlcnMgSGVsbWVyc3NvbikKU29sdXRpb246ICAgU2F2ZSBhbGwgYnl0ZXMgb2YgYSBjaGFyYWN0ZXIgd2hlbiBkaXNwbGF5aW5nIGEgY2hhcmFjdGVyCgkgICAgdGVtcG9yYXJpbHkuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL3Byb3RvL3NjcmVlbi5wcm8sIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjM2MQpQcm9ibGVtOiAgICBDYW5ub3QganVtcCB0byBhIGZpbGUgbWFyayB3aXRoICI6J00iLgpTb2x1dGlvbjogICBBbGxvdyBqdW1waW5nIHRvIGFub3RoZXIgZmlsZSBmb3IgYSBtYXJrIGluIGFuIEV4IGFkZHJlc3Mgd2hlbiBpdAoJICAgIGlzIHRoZSBvbmx5IHRoaW5nIGluIHRoZSBjb21tYW5kIGxpbmUuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4zNjIKUHJvYmxlbTogICAgdGdldGVudCgpIG1heSByZXR1cm4gemVybyBmb3Igc3VjY2Vzcy4gdGdldGZsYWcoKSBtYXkgcmV0dXJuIC0xCgkgICAgZm9yIGFuIGVycm9yLgpTb2x1dGlvbjogICBDaGVjayB0Z2V0ZmxhZygpIGZvciByZXR1cm5pbmcgYSBwb3NpdGl2ZSB2YWx1ZS4gIEFkZCBhbiBhdXRvY29uZgoJICAgIGNoZWNrIGZvciB0aGUgdmFsdWUgdGhhdCB0Z2V0ZW50KCkgcmV0dXJucy4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWcuaC5pbiwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4xLjM2MwpQcm9ibGVtOiAgICBieXRlMmxpbmUoKSBjYW4gcmV0dXJuIG9uZSBtb3JlIHRoYW4gdGhlIG51bWJlciBvZiBsaW5lcy4KU29sdXRpb246ICAgUmV0dXJuIC0xIGlmIHRoZSBvZmZzZXQgaXMgb25lIGJ5dGUgcGFzdCB0aGUgZW5kLgpGaWxlczoJICAgIHNyYy9tZW1saW5lLmMKClBhdGNoIDYuMS4zNjQKUHJvYmxlbTogICAgVGhhdCB0aGUgRmlsZUNoYW5nZWRTaGVsbCBhdXRvY29tbWFuZCBldmVudCBuZXZlciBuZXN0cyBtYWtlcyBpdAoJICAgIGRpZmZpY3VsdCB0byByZWxvYWQgYSBmaWxlIGluIGEgbm9ybWFsIHdheS4KU29sdXRpb246ICAgQWxsb3cgbmVzdGluZyBmb3IgdGhlIEZpbGVDaGFuZ2VkU2hlbGwgZXZlbnQgYnV0IGRvIG5vdCBhbGxvdwoJICAgIHRyaWdnZXJpbmcgaXRzZWxmIGFnYWluLgoJICAgIEFsc28gYXZvaWQgYXV0b2NvbW1hbmRzIGZvciB0aGUgY21kbGluZSB3aW5kb3cgaW4gcmFyZSBjYXNlcy4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL2ZpbGVpby5jLCBzcmMvd2luZG93LmMKClBhdGNoIDYuMS4zNjUgKGRlcGVuZHMgb24gNi4xLjIxNykKUHJvYmxlbTogICAgU2V0dGluZyBhIGJyZWFrcG9pbnQgaW4gYSBzb3VyY2VkIGZpbGUgd2l0aCBhIHJlbGF0aXZlIHBhdGggbmFtZQoJICAgIGRvZXNuJ3Qgd29yay4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIEV4cGFuZCB0aGUgZmlsZSBuYW1lIHRvIGEgZnVsbCBwYXRoLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjEuMzY2ClByb2JsZW06ICAgIENhbid0IHVzZSBWaW0gd2l0aCBOZXRiZWFucy4KU29sdXRpb246ICAgQWRkIHRoZSBOZXRiZWFucyBpbnRlcmZhY2UuICBJbmNsdWRlcyBzdXBwb3J0IGZvciBzaWduIGljb25zIGFuZAoJICAgICItZmciIGFuZCAiLWJnIiBhcmd1bWVudHMgZm9yIEdUSy4gIEFkZCB0aGUgJ2F1dG9jaGRpcicKCSAgICBvcHRpb24uICAoR29yZG9uIFByaWV1ciwgR2VvcmdlIEhlcm5hbmRleiwgRGF2ZSBXZWF0aGVyZm9yZCkKCSAgICBNYWtlIGl0IHBvc3NpYmxlIHRvIGRpc3BsYXkgYm90aCBhIHNpZ24gd2l0aCBhIHRleHQgYW5kIG9uZSB3aXRoCgkgICAgbGluZSBoaWdobGlnaHRpbmcgaW4gdGhlIHNhbWUgbGluZS4KCSAgICBBZGQgc3VwcG9ydCBmb3IgQWdpZGUsIGludGVyZmFjZSB2ZXJzaW9uIDIuMS4KCSAgICBBbHNvIGZpeCB0aGF0IHdoZW4gJ2lza2V5d29yZCcgaW5jbHVkZXMgJz8nIHRoZSAiKiIgY29tbWFuZAoJICAgIGRvZXNuJ3Qgd29yayBwcm9wZXJseSBvbiBhIHdvcmQgdGhhdCBpbmNsdWRlcyAiPyIgKEJpbGwgTWNDYXJ0aHkpOgoJICAgIERvbid0IGVzY2FwZSAiPyIgdG8gIlw/IiB3aGVuIHNlYXJjaGluZyBmb3J3YXJkLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL01ha2VmaWxlLCBydW50aW1lL2RvYy9uZXRiZWFucy50eHQsCgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHJ1bnRpbWUvZG9jL3ZhcmlvdXMudHh0LAoJICAgIHNyYy9NYWtlZmlsZSwgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvYnVmZmVyLmMsIHNyYy9jb25maWcuaC5pbiwKCSAgICBzcmMvY29uZmlnLm1rLmluLCBzcmMvY29uZmlndXJlLmluLCBzcmMvZWRpdC5jLCBzcmMvZXhfY21kcy5jLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZmVhdHVyZS5oLCBzcmMvZmlsZWlvLmMsIHNyYy9nbG9iYWxzLmgsCgkgICAgc3JjL2d1aS5jLCBzcmMvZ3VpX2JldmFsLmMsIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvZ3VpX3gxMS5jLAoJICAgIHNyYy9tYWluLmMsIHNyYy9tZW1saW5lLmMsIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL21vdmUuYywKCSAgICBzcmMvbmJkZWJ1Zy5jLCBzcmMvbmJkZWJ1Zy5oLCBzcmMvbmV0YmVhbnMuYywgc3JjL25vcm1hbC5jLAoJICAgIHNyYy9vcHMuYywgc3JjL29wdGlvbi5jLCBzcmMvb3B0aW9uLmgsIHNyYy9wcm90by9idWZmZXIucHJvLAoJICAgIHNyYy9wcm90by9ndWlfYmV2YWwucHJvLCBzcmMvcHJvdG8vZ3VpX2d0a194MTEucHJvLAoJICAgIHNyYy9wcm90by9ndWlfeDExLnBybywgc3JjL3Byb3RvL21pc2MyLnBybywKCSAgICBzcmMvcHJvdG8vbmV0YmVhbnMucHJvLCBzcmMvcHJvdG8vbm9ybWFsLnBybywgc3JjL3Byb3RvL3VpLnBybywKCSAgICBzcmMvcHJvdG8uaCwgc3JjL3NjcmVlbi5jLCBzcmMvc3RydWN0cy5oLCBzcmMvdWkuYywgc3JjL3VuZG8uYywKCSAgICBzcmMvdmltLmgsIHNyYy93aW5kb3cuYywgc3JjL3dvcmtzaG9wLmMKClBhdGNoIDYuMS4zNjcgKGRlcGVuZHMgb24gNi4xLjM2NSkKUHJvYmxlbTogICAgU2V0dGluZyBhIGJyZWFrcG9pbnQgaW4gYSBmdW5jdGlvbiBkb2Vzbid0IHdvcmsuICBGb3IgYSBzb3VyY2VkCgkgICAgZmlsZSBpdCBkb2Vzbid0IHdvcmsgd2hlbiBzeW1ib2xpYyBsaW5rcyBhcmUgaW52b2x2ZWQuICAoU2VydmF0aXVzCgkgICAgQnJhbmR0KQpTb2x1dGlvbjogICBFeHBhbmQgdGhlIGZpbGUgbmFtZSBpbiB0aGUgc2FtZSB3YXkgYXMgZG9fc291cmNlKCkgZG9lcy4gIERvbid0CgkgICAgcHJlcGVuZCB0aGUgcGF0aCB0byBhIGZ1bmN0aW9uIG5hbWUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMS4zNjgKUHJvYmxlbTogICAgQ29tcGxldGlvbiBmb3IgIjptYXAiIGRvZXMgbm90IGluY2x1ZGUgPHNpbGVudD4gYW5kIDxzY3JpcHQ+LgoJICAgICI6bWtleHJjIiBkbyBub3Qgc2F2ZSB0aGUgPHNpbGVudD4gYXR0cmlidXRlIG9mIG1hcHBpbmdzLgpTb2x1dGlvbjogICBBZGQgIjxzaWxlbnQ+IiB0byB0aGUgZ2VuZXJhdGVkIG1hcCBjb21tYW5kcyB3aGVuIGFwcHJvcHJpYXRlLgoJICAgIChEYXZpZCBFbHN0bmVyKQoJICAgIEFkZCA8c2lsZW50PiBhbmQgPHNjcmlwdD4gdG8gY29tbWFuZCBsaW5lIGNvbXBsZXRpb24uCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4xLjM2OSAoZXh0cmEpClByb2JsZW06ICAgIFZNUzogVmltIGhhbmdzIHdoZW4gYXR0ZW1wdGluZyB0byBlZGl0IGEgcmVhZC1vbmx5IGZpbGUgaW4gdGhlCgkgICAgdGVybWluYWwuICBQcm9ibGVtIHdpdGggVk1TIGZpbGVuYW1lcyBmb3IgcXVpY2tmaXguClNvbHV0aW9uOiAgIFJld3JpdGUgbG93IGxldmVsIGlucHV0LiAgUmVtb3ZlIHZlcnNpb24gbnVtYmVyIGZyb20gZmlsZSBuYW1lIGluCgkgICAgYSBjb3VwbGUgbW9yZSBwbGFjZXMuICBGaXggY3Jhc2ggYWZ0ZXIgcGF0Y2ggNi4xLjM2Mi4gIENvcnJlY3QKCSAgICByZXR1cm4gY29kZSBmb3Igc3lzdGVtKCkuICAoWm9sdGFuIEFycGFkZmZ5LCBUb21hcyBTdGVobGlrKQpGaWxlczoJICAgIHNyYy9taXNjMS5jLCBzcmMvb3NfdW5peC5jLCBzcmMvb3Nfdm1zLmMsIHNyYy9wcm90by9vc192bXMucHJvLAoJICAgIHNyYy9vc192bXNfY29uZi5oLCBzcmMvcXVpY2tmaXguYywgc3JjL3VpLmMKClBhdGNoIDYuMS4zNzAKUHJvYmxlbTogICAgI2lmZGVmIG5lc3RpbmcgaXMgdW5jbGVhci4KU29sdXRpb246ICAgSW5zZXJ0IHNwYWNlcyB0byBpbmRpY2F0ZSB0aGUgbmVzdGluZy4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMzcxClByb2JsZW06ICAgICIlViIgaW4gJ3N0YXR1c2xpbmUnIGRvZXNuJ3Qgc2hvdyAiMC0xIiBpbiBhbiBlbXB0eSBsaW5lLgpTb2x1dGlvbjogICBBZGQgb25lIHRvIHRoZSBjb2x1bW4gd2hlbiBjb21wYXJpbmcgd2l0aCB2aXJ0dWFsIGNvbHVtbiAoQW5kcmV3CgkgICAgUGltbG90dCkKRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4zNzIKUHJvYmxlbTogICAgV2l0aCAxNiBiaXQgaW50cyB0aGVyZSBhcmUgY29tcGlsZXIgd2FybmluZ3MuIChXYWx0ZXIgQnJpc2NvZSkKU29sdXRpb246ICAgQ2hhbmdlIGludCBpbnRvIGxvbmcuCkZpbGVzOgkgICAgc3JjL3N0cnVjdHMuaCwgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuMzczClByb2JsZW06ICAgIFRoZSBkZWZhdWx0IHBhZ2UgaGVhZGVyIGZvciBwcmludGluZyBpcyBub3QgdHJhbnNsYXRlZC4KU29sdXRpb246ICAgQWRkIF8oKSBhcm91bmQgdGhlIHR3byBwbGFjZXMgd2hlcmUgIlBhZ2UiIGlzIHVzZWQuIChNaWtlCgkgICAgV2lsbGlhbXMpICBUcmFuc2xhdGUgdGhlIGRlZmF1bHQgdmFsdWUgb2YgdGhlICd0aXRsZW9sZCcgYW5kCgkgICAgJ3ByaW50aGVhZGVyJyBvcHRpb25zLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jLCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMS4zNzQgKGV4dHJhKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiBDYW5ub3QgYnVpbGQgR3ZpbUV4dCB3aXRoIE1pbmdXIG9yIEN5Z3dpbi4KU29sdXRpb246ICAgQWRkIG1ha2VmaWxlIGFuZCBtb2RpZmllZCByZXNvdXJjZSBmaWxlcy4gKFJlbmUgZGUgWndhcnQpCgkgICAgQWxzbyBzdXBwb3J0IEN5Z3dpbi4gKEFsZWphbmRybyBMb3Blel9WYWxlbmNpYSkKRmlsZXM6CSAgICBHdmltRXh0L01ha2VfY3lnLm1haywgR3ZpbUV4dC9NYWtlX21pbmcubWFrLCBHdmltRXh0L01ha2VmaWxlLAoJICAgIEd2aW1FeHQvZ3ZpbWV4dF9taW5nLmRlZiwgR3ZpbUV4dC9ndmltZXh0X21pbmcucmMKClBhdGNoIDYuMS4zNzUKUHJvYmxlbTogICAgTVMtV2luZG93czogJzohZGlyICIlIicgZG9lcyBub3Qgd29yayBmb3IgYSBmaWxlIG5hbWUgd2l0aCBzcGFjZXMuCgkgICAgKFhpYW5namlhbmcgTWEpClNvbHV0aW9uOiAgIERvbid0IGluc2VydCBiYWNrc2xhc2hlcyBmb3Igc3BhY2VzIGluIGEgc2hlbGwgY29tbWFuZC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjM3NgpQcm9ibGVtOiAgICAidmltIC0tdmVyc2lvbiIgYW5kICJ2aW0gLS1oZWxwIiBoYXZlIGEgbm9uLXplcm8gZXhpdCBjb2RlLgoJICAgIFRoYXQgaXMgdW51c3VhbC4gKFBldGVzZWEpClNvbHV0aW9uOiAgIFVzZSBhIHplcm8gZXhpdCBjb2RlLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMS4zNzcKUHJvYmxlbTogICAgQ2FuJ3QgYWRkIHdvcmRzIHRvICdsaXNwd29yZHMnIG9wdGlvbi4KU29sdXRpb246ICAgQWRkIFBfQ09NTUEgYW5kIFBfTk9EVVAgZmxhZ3MuIChIYWFrb24gUmlpc2VyKQpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4xLjM3OApQcm9ibGVtOiAgICBXaGVuIHR3byBidWZmZXItbG9jYWwgdXNlciBjb21tYW5kcyBhcmUgYW1iaWd1b3VzLCBhIGZ1bGwgbWF0Y2gKCSAgICB3aXRoIGEgZ2xvYmFsIHVzZXIgY29tbWFuZCBpc24ndCBmb3VuZC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBEZXRlY3QgdGhpcyBzaXR1YXRpb24gYW5kIGFjY2VwdCB0aGUgZ2xvYmFsIGNvbW1hbmQuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMS4zNzkKUHJvYmxlbTogICAgTGludXggd2l0aCBrZXJuZWwgMi4yIGNhbid0IHVzZSB0aGUgYWx0ZXJuYXRlIHN0YWNrIGluIGNvbWJpbmF0aW9uCgkgICAgd2l0aCB0aHJlYWRpbmcsIGNhdXNlcyBhbiBpbmZpbml0ZSBsb29wLgpTb2x1dGlvbjogICBEb24ndCB1c2UgdGhlIGFsdGVybmF0ZSBzdGFjayBpbiB0aGlzIHNpdHVhdGlvbi4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuMzgwClByb2JsZW06ICAgIFdoZW4gJ3dpbm1pbmhlaWdodCcgaXMgemVybyBhbmQgdGhlIHF1aWNrZml4IHdpbmRvdyBpcyB6ZXJvIGxpbmVzLAoJICAgIGVudGVyaW5nIHRoZSB3aW5kb3cgZG9lc24ndCBtYWtlIGl0IGhpZ2hlci4gKENocmlzdGlhbiBKLgoJICAgIFJvYmluc29uKQpTb2x1dGlvbjogICBNYWtlIHN1cmUgdGhlIGN1cnJlbnQgd2luZG93IGlzIGF0IGxlYXN0IG9uZSBsaW5lIGhpZ2guCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjEuMzgxClByb2JsZW06ICAgIFdoZW4gYSBCdWZXcml0ZUNtZCBpcyB1c2VkIGFuZCBpdCBsZWF2ZXMgdGhlIGJ1ZmZlciBtb2RpZmllZCwgdGhlCgkgICAgd2luZG93IG1heSBzdGlsbCBiZSBjbG9zZWQuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgUmV0dXJuIEZBSUwgZnJvbSBidWZfd3JpdGUoKSB3aGVuIHRoZSBidWZmZXIgaXMgc3RpbGwgbW9kaWZpZWQKCSAgICBhZnRlciBhIEJ1ZldyaXRlQ21kIGF1dG9jb21tYW5kIHdhcyB1c2VkLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjM4MiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyIEdVSTogV2hlbiB1c2luZyB0d28gbW9uaXRvcnMsIHRoZSBjb2RlIHRoYXQgY2hlY2tzL2ZpeGVzIHRoZQoJICAgIHdpbmRvdyBzaXplIGFuZCBwb3NpdGlvbiAoZS5nLiB3aGVuIGEgZm9udCBjaGFuZ2VzKSBkb2Vzbid0IHdvcmsKCSAgICBwcm9wZXJseS4gIChHZW9yZ2UgUmVpbGx5KQpTb2x1dGlvbjogICBIYW5kbGUgYSBkb3VibGUgbW9uaXRvciBzaXR1YXRpb24uIChIZWxtdXQgU3RpZWdsZXIpCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4xLjM4MwpQcm9ibGVtOiAgICBUaGUgZmlsbGluZyBvZiB0aGUgc3RhdHVzIGxpbmUgZG9lc24ndCB3b3JrIHByb3Blcmx5IGZvcgoJICAgIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4gKE5hbSBTdW5nSHl1bikKCSAgICBUaGVyZSBpcyBubyBjaGVjayBmb3IgZ29pbmcgcGFzdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuClNvbHV0aW9uOiAgIFByb3Blcmx5IGRpc3Rpbmd1aXNoIGNoYXJhY3RlcnMgYW5kIGJ5dGVzLiAgUHJvcGVybHkgY2hlY2sgZm9yCgkgICAgcnVubmluZyBvdXQgb2YgYnVmZmVyIHNwYWNlLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V4X2NtZHMyLmMsIHNyYy9wcm90by9idWZmZXIucHJvLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS4zODQKUHJvYmxlbTogICAgSXQgaXMgbm90IHBvc3NpYmxlIHRvIGZpbmQgaWYgYSBjZXJ0YWluIHBhdGNoIGhhcyBiZWVuIGluY2x1ZGVkLgoJICAgIChMdWJvbWlyIEhvc3QpClNvbHV0aW9uOiAgIFN1cHBvcnQgdXNpbmcgaGFzKCkgdG8gY2hlY2sgaWYgYSBwYXRjaCB3YXMgaW5jbHVkZWQuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZXZhbC50eHQsIHNyYy9ldmFsLmMsIHNyYy9wcm90by92ZXJzaW9uLnBybywKCSAgICBzcmMvdmVyc2lvbi5jCgpQYXRjaCA2LjEuMzg1IChkZXBlbmRzIG9uIDYuMS4zODMpClByb2JsZW06ICAgIENhbid0IGNvbXBpbGUgd2l0aG91dCB0aGUgbXVsdGktYnl0ZSBmZWF0dXJlLgpTb2x1dGlvbjogICBNb3ZlIGFuICNpZmRlZi4gIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuMzg2ClByb2JsZW06ICAgIEdldCBkdXBsaWNhdGUgdGFncyB3aGVuIHJ1bm5pbmcgIjpoZWxwdGFncyIuClNvbHV0aW9uOiAgIERvIHRoZSBvdGhlciBoYWx2ZSBvZiBtb3ZpbmcgYSBzZWN0aW9uIHRvIGFub3RoZXIgaGVscCBmaWxlLgpGaWxlczoJICAgIHJ1bnRpbWUvdGFnc3JjaC50eHQKClBhdGNoIDYuMS4zODcgKGRlcGVuZHMgb24gNi4xLjM3MykKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgcG9pbnRlciBjYXN0LgpTb2x1dGlvbjogICBBZGQgKGNoYXJfdSAqKS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMS4zODggKGRlcGVuZHMgb24gNi4xLjM4NCkKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgcG9pbnRlciBjYXN0LgpTb2x1dGlvbjogICBBZGQgKGNoYXIgKikuICBPbmx5IGluY2x1ZGUgaGFzX3BhdGNoKCkgd2hlbiB1c2VkLgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy92ZXJzaW9uLmMKClBhdGNoIDYuMS4zODkgKGRlcGVuZHMgb24gNi4xLjM2NikKUHJvYmxlbTogICAgQmFsbG9vbiBldmFsdWF0aW9uIGRvZXNuJ3Qgd29yayBmb3IgR1RLLgoJICAgIGhhcygiYmFsbG9vbl9ldmFsIikgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBBZGQgYmFsbG9vbiBldmFsdWF0aW9uIGZvciBHVEsuICBBbHNvIGltcHJvdmUgZGlzcGxheWluZyBvZiBzaWducy4KCSAgICAoRGFuaWVsIEVsc3RuZXIpCgkgICAgQWxzbyBtYWtlICI6Z3VpIiBzdGFydCB0aGUgbmV0YmVhbnMgY29ubmVjdGlvbiBhbmQgYXZvaWQgdXNpbmcKCSAgICBuZXRiZWFucyBmdW5jdGlvbnMgd2hlbiB0aGUgY29ubmVjdGlvbiBpcyBub3Qgb3Blbi4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUsIHNyYy9mZWF0dXJlLmgsIHNyYy9ndWkuYywgc3JjL2d1aS5oLAoJICAgIHNyYy9ndWlfYmV2YWwuYywgc3JjL2d1aV9iZXZhbC5oLCBzcmMvZ3VpX2d0ay5jLAoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvZXZhbC5jLCBzcmMvbWVtbGluZS5jLCBzcmMvbWVudS5jLAoJICAgIHNyYy9uZXRiZWFucy5jLCBzcmMvcHJvdG8vZ3VpX2JldmFsLnBybywgc3JjL3Byb3RvL2d1aV9ndGsucHJvLAoJICAgIHNyYy9zdHJ1Y3RzLmgsIHNyYy9zeW50YXguYywgc3JjL3VpLmMsIHNyYy93b3Jrc2hvcC5jCgpQYXRjaCA2LjEuMzkwIChkZXBlbmRzIG9uIDYuMS4zODkpClByb2JsZW06ICAgIEl0J3Mgbm90IHBvc3NpYmxlIHRvIHRlbGwgVmltIHRvIHNhdmUgYW5kIGV4aXQgdGhyb3VnaCB0aGUKCSAgICBOZXRiZWFucyBpbnRlcmZhY2UuICBXb3VsZCBzdGlsbCB0cnkgdG8gc2VuZCBiYWxsb29uIGV2YWwgdGV4dAoJICAgIGFmdGVyIHRoZSBjb25uZWN0aW9uIGlzIGNsb3NlZC4KCSAgICBDYW4ndCB1c2UgVW5pY29kZSBjaGFyYWN0ZXJzIGZvciBzaWduIHRleHQuClNvbHV0aW9uOiAgIEFkZCBmdW5jdGlvbnMgInNhdmVBbmRFeGl0IiBhbmQgImdldE1vZGlmaWVkIi4gIENoZWNrIGZvciBhCgkgICAgd29ya2luZyBjb25uZWN0aW9uIGJlZm9yZSBzZW5kaW5nIGEgYmFsbG9vblRleHQgZXZlbnQuCgkgICAgdmFyaW91cyBvdGhlciBjbGVhbnVwcy4KCSAgICBTdXBwb3J0IGFueSBjaGFyYWN0ZXIgZm9yIHNpZ24gdGV4dC4gKERhbmllbCBFbHN0bmVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL25ldGJlYW5zLnR4dCwgcnVudGltZS9kb2Mvc2lnbi50eHQsIHNyYy9leF9jbWRzLmMsCgkgICAgc3JjL25ldGJlYW5zLmMsIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjM5MQpQcm9ibGVtOiAgICBtbF9nZXQoKSBlcnJvciB3aGVuIHVzaW5nIHZpcnR1YWxlZGl0LiAoQ2hhcmxlcyBDYW1wYmVsbCkKU29sdXRpb246ICAgR2V0IGEgbGluZSBmcm9tIGEgc3BlY2lmaWMgd2luZG93LCBub3QgdGhlIGN1cnJlbnQgb25lLgpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMKClBhdGNoIDYuMS4zOTIgKGRlcGVuZHMgb24gNi4xLjM4MykKUHJvYmxlbTogICAgSGlnaGxpZ2h0aW5nIGluIHRoZSAnc3RhdHVzbGluZScgaXMgaW4gdGhlIHdyb25nIHBvc2l0aW9uIHdoZW4gYW4KCSAgICBpdGVtIGlzIHRydW5jYXRlZC4gKFphayBCZWNrKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBzdGFydCBvZiAnc3RhdHVzbGluZScgaXRlbXMgcHJvcGVybHkgZm9yIGEgdHJ1bmNhdGVkCgkgICAgaXRlbS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMKClBhdGNoIDYuMS4zOTMKUHJvYmxlbTogICAgV2hlbiBjb21waWxlZCB3aXRoIFB5dGhvbiBhbmQgdGhyZWFkcywgZGV0YWNoaW5nIHRoZSB0ZXJtaW5hbCBtYXkKCSAgICBjYXVzZSBWaW0gdG8gbG9vcCBmb3JldmVyLgpTb2x1dGlvbjogICBBZGQgLXB0aHJlYWQgdG8gJENGTEFHUyB3aGVuIHVzaW5nIFB5dGhvbiBhbmQgZ2NjLiAoRGFuaWVsCgkgICAgRWxzdG5lcikKRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjEuMzk0IChkZXBlbmRzIG9uIDYuMS4zOTApClByb2JsZW06ICAgIFRoZSBuZXRiZWFucyBpbnRlcmZhY2UgZG9lc24ndCByZWNvZ25pemUgbXVsdGlieXRlIGdseXBoIG5hbWVzLgpTb2x1dGlvbjogICBDaGVjayB0aGUgbnVtYmVyIG9mIGNlbGxzIHJhdGhlciB0aGFuIGJ5dGVzIHRvIGRlY2lkZQoJICAgIHdoZXRoZXIgYSBnbHlwaCBuYW1lIGlzIG5vdCBhIGZpbGVuYW1lLiAoRGFuaWVsIEVsc3RuZXIpCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMS4zOTUgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4zNjkpClByb2JsZW06ICAgIFZNUzogT0xEX1ZNUyBpcyBuZXZlciBkZWZpbmVkLiAgTWlzc2luZyBmdW5jdGlvbiBwcm90b3R5cGUuClNvbHV0aW9uOiAgIERlZmluZSBPTERfVk1TIGluIE1ha2Vfdm1zLm1tcy4gIEFkZCB2bXNfc3lzX3N0YXR1cygpIHRvCgkgICAgb3Nfdm1zLnByby4gKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvTWFrZV92bXMubW1zLCBzcmMvcHJvdG8vb3Nfdm1zLnBybwoKUGF0Y2ggNi4xLjM5NiAoZGVwZW5kcyBvbiA2LjEuMzMwKQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyBmb3IgdXNpbmcgZW51bS4KU29sdXRpb246ICAgQWRkIHR5cGVjYXN0IHRvIGNoYXJfdS4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYywgc3JjL2d1aV94MTEuYwoKUGF0Y2ggNi4xLjM5NyAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBpbnN0YWxsIHByb2dyYW0gbWF5IHVzZSBhIHdyb25nIHBhdGggZm9yIHRoZSBkaWZmIGNvbW1hbmQgaWYKCSAgICB0aGVyZSBpcyBhIHNwYWNlIGluIHRoZSBpbnN0YWxsIGRpcmVjdG9yeSBwYXRoLgpTb2x1dGlvbjogICBVc2UgZG91YmxlIHF1b3RlcyBhcm91bmQgdGhlIHBhdGggaWYgbmVjZXNzYXJ5LiAoQWxlamFuZHJvCgkgICAgTG9wZXotVmFsZW5jaWEpICBBbHNvIHVzZSBkb3VibGUgcXVvdGVzIGFyb3VuZCB0aGUgZmlsZSBuYW1lCgkgICAgYXJndW1lbnRzLgpGaWxlczoJICAgIHNyYy9kb3NpbnN0LmMKClBhdGNoIDYuMS4zOTgKUHJvYmxlbTogICAgU2F2aW5nIHRoZSB0eXBlYWhlYWQgZm9yIGRlYnVnIG1vZGUgY2F1c2VzIHRyb3VibGUgZm9yIGEgdGVzdAoJICAgIHNjcmlwdC4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIEFkZCB0aGUgIjpkZWJ1Z2dyZWVkeSIgY29tbWFuZCB0byBhdm9pZCBzYXZpbmcgdGhlIHR5cGVhaGVhZC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9yZXBlYXQudHh0LCBzcmMvZXhfY21kcy5oLCBzcmMvZXhfY21kczIuYywKCSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL3Byb3RvL2V4X2NtZHMyLnBybwoKUGF0Y2ggNi4xLjM5OQpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciB1bnVzZWQgdmFyaWFibGUuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgdmFyaWFibGUgdHdvX29yX21vcmUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjQwMCAoZGVwZW5kcyBvbiA2LjEuMzgxKQpQcm9ibGVtOiAgICBXaGVuIGEgQnVmV3JpdGVDbWQgd2lwZXMgb3V0IHRoZSBidWZmZXIgaXQgbWF5IHN0aWxsIGJlIGFjY2Vzc2VkLgpTb2x1dGlvbjogICBEb24ndCB0cnkgYWNjZXNzaW5nIGEgYnVmZmVyIHRoYXQgaGFzIGJlZW4gd2lwZWQgb3V0LgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjQwMSAoZXh0cmEpClByb2JsZW06ICAgIEJ1aWxkaW5nIHRoZSBXaW4xNiB2ZXJzaW9uIHdpdGggQm9ybGFuZCA1LjAxIGRvZXNuJ3Qgd29yay4KCSAgICAibWFrZSB0ZXN0IiBkb2Vzbid0IHdvcmsgd2l0aCBNYWtlX2Rvcy5tYWsuIChXYWx0ZXIgQnJpc2NvZSkKU29sdXRpb246ICAgVmFyaW91cyBmaXhlcyB0byB0aGUgdzE2IG1ha2VmaWxlLiAoV2FsdGVyIEJyaXNjb2UpCgkgICAgRG9uJ3QgdXNlIGRlbHRyZWUuICBVc2UgIm1rZGlyIFx0bXAiIGluc3RlYWQgb2YgIm1rZGlyIC90bXAiLgpGaWxlczoJICAgIHNyYy9NYWtlX3cxNi5tYWssIHNyYy90ZXN0ZGlyL01ha2VfZG9zLm1hawoKUGF0Y2ggNi4xLjQwMgpQcm9ibGVtOiAgICBXaGVuIGV2YWx1YXRpbmcgYSBmdW5jdGlvbiBuYW1lIHdpdGggY3VybHkgYnJhY2VzLCBhbiBlcnJvcgoJICAgIGlzIG5vdCBoYW5kbGVkIGNvbnNpc3RlbnRseS4KU29sdXRpb246ICAgQWNjZXB0IHRoZSByZXN1bHQgb2YgYSBjdXJseSBicmFjZXMgZXhwcmVzc2lvbiB3aGVuIGFuCgkgICAgZXJyb3Igd2FzIGVuY291bnRlcmVkLiAgU2tpcCBldmFsdWF0aW5nIGFuIGV4cHJlc3Npb24gaW4gY3VybHkKCSAgICBicmFjZXMgd2hlbiBza2lwcGluZy4gIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMS40MDMgKGV4dHJhKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzIDE2IGJpdDogY29tcGlsZXIgd2FybmluZ3MuClNvbHV0aW9uOiAgIEFkZCB0eXBlY2FzdHMuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYywgc3JjL2d1aV93NDguYywgc3JjL29zX21zd2luLmMsIHNyYy9vc193aW4xNi5jLAoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4xLjQwNCAoZXh0cmEpClByb2JsZW06ICAgIFZhcmlvdXMgc21hbGwgcHJvYmxlbXMuClNvbHV0aW9uOiAgIEZpeCBjb21tZW50cy4gIFZhcmlvdXMgc21hbGwgYWRkaXRpb25zLCBjaGFuZ2VzIGluIGluZGVudCwgcmVtb3ZhbAoJICAgIG9mIHVudXNlZCBpdGVtcyBhbmQgZml4ZXMuCkZpbGVzOgkgICAgTWFrZWZpbGUsIFJFQURNRS50eHQsIHJ1bnRpbWUvbWVudS52aW0sIHJ1bnRpbWUvdmltcmNfZXhhbXBsZS52aW0sCgkgICAgc3JjL0lOU1RBTEwsIHNyYy9JTlNUQUxMb2xlLnR4dCwgc3JjL01ha2VfYmM1Lm1haywKCSAgICBzcmMvTWFrZV9jeWcubWFrLCBzcmMvTWFrZV9taW5nLm1haywgc3JjL01ha2VmaWxlLAoJICAgIHNyYy9jb25maWcuaC5pbiwgc3JjL2VkaXQuYywgc3JjL2V2YWwuYywgc3JjL2V4X2NtZHMyLmMsCgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZmlsZWlvLmMsIHNyYy9nZXRjaGFyLmMsCgkgICAgc3JjL2d1aS5jLCBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX3Bob3Rvbi5jLCBzcmMvaWZfY3Njb3BlLmMsCgkgICAgc3JjL2lmX3B5dGhvbi5jLCBzcmMva2V5bWFwLmgsIHNyYy9tYXJrLmMsIHNyYy9tYnl0ZS5jLAoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy9taXNjMS5jLCBzcmMvbWlzYzIuYywgc3JjL25vcm1hbC5jLAoJICAgIHNyYy9vcHRpb24uYywgc3JjL29zX29zMl9jZmcuaCwgc3JjL29zX3dpbjMyLmMsCgkgICAgc3JjL3Byb3RvL2dldGNoYXIucHJvLCBzcmMvcHJvdG8vbWVzc2FnZS5wcm8sCgkgICAgc3JjL3Byb3RvL3JlZ2V4cC5wcm8sIHNyYy9zY3JlZW4uYywgc3JjL3N0cnVjdHMuaCwgc3JjL3N5bnRheC5jLAoJICAgIHNyYy90ZXJtLmMsIHNyYy90ZXN0ZGlyL3Rlc3QxNS5pbiwgc3JjL3Rlc3RkaXIvdGVzdDE1Lm9rLAoJICAgIHNyYy92aW0ucmMsIHNyYy94eGQvTWFrZV9jeWcubWFrLCBzcmMveHhkL01ha2VmaWxlCgpQYXRjaCA2LjEuNDA1ClByb2JsZW06ICAgIEEgZmV3IGZpbGVzIGFyZSBtaXNzaW5nIGZyb20gdGhlIHRvcGxldmVsIE1ha2VmaWxlLgpTb2x1dGlvbjogICBBZGQgdGhlIG1pc3NpbmcgZmlsZXMuCkZpbGVzOgkgICAgTWFrZWZpbGUKClBhdGNoIDYuMS40MDYgKGRlcGVuZHMgb24gNi4xLjM5MikKUHJvYmxlbTogICAgV2hlbiBhIHN0YXR1c2xpbmUgaXRlbSBkb2Vzbid0IGZpdCBhcmJpdHJhcnkgdGV4dCBhcHBlYXJzLgoJICAgIChDaHJpc3RpYW4gSi4gUm9iaW5zb24pClNvbHV0aW9uOiAgIFdoZW4gdGhlcmUgaXMganVzdCBlbm91Z2ggcm9vbSBidXQgbm90IGZvciB0aGUgIjwiIHRydW5jYXRlIHRoZQoJICAgIHN0YXR1c2xpbmUgaXRlbSBsaWtlIHRoZXJlIGlzIG5vIHJvb20uCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuNDA3ClByb2JsZW06ICAgICI6c2V0IHNjcm9sbGJpbmQgfCBoZWxwIiBzY3JvbGxiaW5kcyB0aGUgaGVscCB3aW5kb3cuIChBbmRyZXcKCSAgICBQaW1sb3R0KQpTb2x1dGlvbjogICBSZXNldCAnc2Nyb2xsYmluZCcgd2hlbiBvcGVuaW5nIGEgaGVscCB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjQwOApQcm9ibGVtOiAgICBXaGVuICdyaWdodGxlZnQnIGlzIHNldCB1bnByaW50YWJsZSBjaGFyYWN0ZXIgMHgwYyBpcyBkaXNwbGF5ZWQgYXMKCSAgICAiPmMwPCIuClNvbHV0aW9uOiAgIFJldmVyc2UgdGhlIHRleHQgb2YgdGhlIGhleCBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuNDA5ClByb2JsZW06ICAgIEdlbmVyYXRpbmcgdGFncyBmb3IgdGhlIGhlbHAgZG9lc24ndCB3b3JrIGZvciBzb21lIGxvY2FsZXMuClNvbHV0aW9uOiAgIFNldCBMQU5HPUMgTENfQUxMPUMgaW4gdGhlIGVudmlyb25tZW50IGZvciAic29ydCIuIChEYW5pZWwKCSAgICBFbHN0bmVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL01ha2VmaWxlCgpQYXRjaCA2LjEuNDEwIChkZXBlbmRzIG9uIDYuMS4zOTApClByb2JsZW06ICAgIExpbmtpbmcgZXJyb3Igd2hlbiBjb21waWxpbmcgd2l0aCBOZXRiZWFucyBidXQgd2l0aG91dCBzaWduIGljb25zLgoJICAgIChNYWx0ZSBOZXVtYW5uKQpTb2x1dGlvbjogICBEb24ndCBkZWZpbmUgYnVmX3NpZ25jb3VudCgpIHdoZW4gc2lnbiBpY29ucyBhcmUgdW5hdmFpbGFibGUuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuNDExClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQsIGhpZ2hsaWdodGluZyBhIFZpc3VhbCBibG9jayBiZXlvbmQgdGhlCgkgICAgZW5kIG9mIGEgbGluZSBtYXkgYmUgd3JvbmcuClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIHZpcnR1YWwgY29sdW1uIHdoZW4gdGhlIGVuZCBvZiB0aGUgbGluZSBpcyBiZWZvcmUgdGhlCgkgICAgZGlzcGxheWVkIHBhcnQgb2YgdGhlIGxpbmUuIChNdXJhb2thIFRhcm8pCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuNDEyClByb2JsZW06ICAgIFdoZW4gc3dhcHBpbmcgdGVybWluYWwgc2NyZWVucyBhbmQgdXNpbmcgIjpndWkiIHRvIHN0YXJ0IHRoZSBHVUksCgkgICAgdGhlIHNoZWxsIHByb21wdCBtYXkgYmUgYWZ0ZXIgYSBoaXQtZW50ZXIgcHJvbXB0LgpTb2x1dGlvbjogICBPdXRwdXQgYSBuZXdsaW5lIGluIHRoZSB0ZXJtaW5hbCB3aGVuIHN0YXJ0aW5nIHRoZSBHVUkgYW5kIHRoZXJlCgkgICAgd2FzIGEgaGl0LWVudGVyIHByb21wdC4uCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjEuNDEzClByb2JsZW06ICAgIFdoZW4gJ2NsaXBib2FyZCcgY29udGFpbnMgInVubmFtZWQiLCAicCIgaW4gVmlzdWFsIG1vZGUgZG9lc24ndAoJICAgIHdvcmsgY29ycmVjdGx5LgpTb2x1dGlvbjogICBTYXZlIHRoZSByZWdpc3RlciBiZWZvcmUgb3ZlcndyaXRpbmcgaXQgYW5kIHB1dCB0aGUgcmVzdWx0aW5nIHRleHQKCSAgICBvbiB0aGUgY2xpcGJvYXJkIGFmdGVyd2FyZHMuICAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jCgpQYXRjaCA2LjEuNDE0IChleHRyYSwgZGVwZW5kcyBvbiA2LjEuMzY5KQpQcm9ibGVtOiAgICBWTVM6IFZpbSBidXN5IHdhaXRzIHdoZW4gd2FpdGluZyBmb3IgaW5wdXQuClNvbHV0aW9uOiAgIERlbGF5IGZvciBhIHNob3J0IHdoaWxlIGJlZm9yZSBnZXR0aW5nIGFub3RoZXIgY2hhcmFjdGVyLiAgKFpvbHRhbgoJICAgIEFycGFkZmZ5KQpGaWxlczoJICAgIHNyYy9vc192bXMuYwoKUGF0Y2ggNi4xLjQxNQpQcm9ibGVtOiAgICBXaGVuIHRoZXJlIGlzIGEgdmVydGljYWwgc3BsaXQgYW5kIGEgcXVpY2tmaXggd2luZG93LCByZWR1Y2luZyB0aGUKCSAgICBzaXplIG9mIHRoZSBWaW0gd2luZG93IG1heSByZXN1bHQgaW4gYSB3cm9uZyB3aW5kb3cgbGF5b3V0IGFuZCBhCgkgICAgY3Jhc2guClNvbHV0aW9uOiAgIFdoZW4gcmVkdWNpbmcgdGhlIHdpbmRvdyBzaXplIGFuZCB0aGVyZSBpcyBub3QgZW5vdWdoIHNwYWNlIGZvcgoJICAgICd3aW5maXhoZWlnaHQnIHNldCB0aGUgZnJhbWUgaGVpZ2h0IHRvIHRoZSBsYXJnZXIgaGVpZ2h0LCBzbyB0aGF0CgkgICAgdGhlcmUgaXMgYSByZXRyeSB3aGlsZSBpZ25vcmluZyAnd2luZml4aGVpZ2h0Jy4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4xLjQxNiAoZGVwZW5kcyBvbiA2LjEuMzY2KQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHRoZSBOZXRiZWFucyBpbnRlcmZhY2UsIGEgbGluZSB3aXRoIGEgc2lnbiBjYW5ub3QgYmUKCSAgICBjaGFuZ2VkLgpTb2x1dGlvbjogICBSZXNwZWN0IHRoZSBHVUFSREVET0ZGU0VUIGZvciBzaWduIElEcyB3aGVuIGNoZWNraW5nIGZvciBhIGd1YXJkZWQKCSAgICBhcmVhLgpGaWxlczoJICAgIHNyYy9uZXRiZWFucy5jCgpQYXRjaCA2LjEuNDE3ClByb2JsZW06ICAgIFVucHJpbnRhYmxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBhcmUgbm90IGhhbmRsZWQgY29ycmVjdGx5LgoJICAgIE11bHRpLWJ5dGUgY2hhcmFjdGVycyBhYm92ZSAweGZmZmYgYXJlIGRpc3BsYXllZCBhcyBhbm90aGVyCgkgICAgY2hhcmFjdGVyLgpTb2x1dGlvbjogICBIYW5kbGUgdW5wcmludGFibGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLiAgRGlzcGxheSBtdWx0aS1ieXRlCgkgICAgY2hhcmFjdGVycyBhYm92ZSAweGZmZmYgd2l0aCBhIG1hcmtlci4gIFJlY29nbml6ZSBVVEYtMTYgd29yZHMgYW5kCgkgICAgQk9NIHdvcmRzIGFzIHVucHJpbnRhYmxlLiAgKERhbmllbCBFbHN0bmVyKQpGaWxlczoJICAgIHNyYy9jaGFyc2V0LmMsIHNyYy9tYnl0ZS5jLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMS40MTgKUHJvYmxlbTogICAgVGhlIHJlc3VsdCBvZiBzdHJmdGltZSgpIGlzIGluIHRoZSBjdXJyZW50IGxvY2Fscy4gIE5lZWQgdG8KCSAgICBjb252ZXJ0IGl0IHRvICdlbmNvZGluZycuClNvbHV0aW9uOiAgIE9idGFpbiB0aGUgY3VycmVudCBsb2NhbGUgYW5kIGNvbnZlcnQgdGhlIGFyZ3VtZW50IGZvciBzdHJmdGltZSgpCgkgICAgdG8gaXQgYW5kIHRoZSByZXN1bHQgYmFjayB0byAnZW5jb2RpbmcnLiAgKERhbmllbCBFbHN0bmVyKQpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9jbWRzLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvbWJ5dGUuYywKCSAgICBzcmMvcHJvdG8vbWJ5dGUucHJvLCBzcmMvb3B0aW9uLmMsIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjEuNDE5ClByb2JsZW06ICAgIFZpbSBkb2Vzbid0IGNvbXBpbGUgb24gQUlYIDUuMS4KU29sdXRpb246ICAgRG9uJ3QgZGVmaW5lIF9OT19QUk9UTyBvbiB0aGlzIHN5c3RlbS4gKFVyaWJhcnJpKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4xLjQyMCAoZXh0cmEpClByb2JsZW06ICAgIGNvbnZlcnRfaW5wdXQoKSBoYXMgYW4gdW5uZWNlc3NhcnkgU1RSTEVOKCkuCgkgICAgQ29udmVyc2lvbiBmcm9tIFVDUy0yIHRvIGEgY29kZXBhZ2UgdXNlcyB3b3JkIGNvdW50IGluc3RlYWQgb2YKCSAgICBieXRlIGNvdW50LgpTb2x1dGlvbjogICBSZW1vdmUgdGhlIFNUUkxFTigpIGNhbGwuIChEYW5pZWwgRWxzdG5lcikKCSAgICBBbHdheXMgdXNlIGJ5dGUgY291bnQgZm9yIHN0cmluZ19jb252ZXJ0KCkuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYywgc3JjL21ieXRlLmMKClBhdGNoIDYuMS40MjEgKGV4dHJhLCBkZXBlbmRzIG9uIDYuMS4zNTQpClByb2JsZW06ICAgIE1TLVdpbmRvd3MgOXg6IFdoZW4gcHV0dGluZyB0ZXh0IG9uIHRoZSBjbGlwYm9hcmQgaXQgY2FuIGJlIGluCgkgICAgdGhlIHdyb25nIGVuY29kaW5nLgpTb2x1dGlvbjogICBDb252ZXJ0IHRleHQgdG8gdGhlIGFjdGl2ZSBjb2RlcGFnZSBmb3IgQ0ZfVEVYVC4gKEdsZW5uIE1heW5hcmQpCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMS40MjIKUHJvYmxlbTogICAgRXJyb3IgaW4gLnZpbXJjIGRvZXNuJ3QgY2F1c2UgaGl0LWVudGVyIHByb21wdCB3aGVuIHN3YXBwaW5nCgkgICAgc2NyZWVucy4gKE5laWwgQmlyZCkKU29sdXRpb246ICAgU2V0IG1zZ19kaWRhbnkgYWxzbyB3aGVuIHNlbmRpbmcgYSBtZXNzYWdlIHRvIHRoZSB0ZXJtaW5hbAoJICAgIGRpcmVjdGx5LgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMS40MjMKUHJvYmxlbTogICAgQ2FuJ3QgZmluZCBhcmJpdHJhcnkgdGV4dCBpbiBoZWxwIGZpbGVzLgpTb2x1dGlvbjogICBBZGRlZCB0aGUgIjpoZWxwZ3JlcCIgY29tbWFuZC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy92YXJpb3VzLnR4dCwgc3JjL2V4X2NtZHMuaCwgc3JjL2V4X2RvY21kLmMsCgkgICAgc3JjL3Byb3RvL3F1aWNrZml4LnBybywgc3JjL3F1aWNrZml4LmMKClBhdGNoIDYuMS40MjQgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogR3ZpbSBjb21waWxlZCB3aXRoIFZDKysgNy4wIHJ1biBvbiBXaW5kb3dzIDk1IGRvZXMgbm90IHNob3cKCSAgICBtZW51IGl0ZW1zLgpTb2x1dGlvbjogICBEZWZpbmUgJFdJTlZFUiB0byBhdm9pZCBhbiBleHRyYSBpdGVtIGlzIGFkZGVkIHRvIE1FTlVJVEVNSU5GTy4KCSAgICAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9NYWtlX212Yy5tYWsKClBhdGNoIDYuMS40MjUKUHJvYmxlbTogICAgIjpoZWxwdGFncyAkVklNUlVOVElNRS9kb2MiIGRvZXMgbm90IGFkZCB0aGUgImhlbHAtdGFncyIgdGFnLgpTb2x1dGlvbjogICBEbyBhZGQgdGhlICJoZWxwLXRhZ3MiIHRhZyBmb3IgdGhhdCBzcGVjaWZpYyBkaXJlY3RvcnkuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjQyNgpQcm9ibGVtOiAgICAiLS1yZW1vdGUtd2FpdCArY21kIGZpbGUiIHdhaXRzIGZvcmV2ZXIuIChWYWxlcnkgS29uZGFrb2ZmKQpTb2x1dGlvbjogICBEb24ndCB3YWl0IGZvciB0aGUgIitjbWQiIGFyZ3VtZW50IHRvIGhhdmUgYmVlbiBlZGl0ZWQuCkZpbGVzOgkgICAgc3JjL21haW4uYwoKUGF0Y2ggNi4xLjQyNwpQcm9ibGVtOiAgICBTZXZlcmFsIGVycm9yIG1lc3NhZ2VzIGZvciByZWdleHAgcGF0dGVybnMgYXJlIG5vdCB0cmFuc2xhdGVkLgpTb2x1dGlvbjogICBVc2UgXygpIHByb3Blcmx5LiAoTXVyYW9rYSBUYXJvKQpGaWxlczoJICAgIHNyYy9yZWdleHAuYwoKUGF0Y2ggNi4xLjQyOApQcm9ibGVtOiAgICBGcmVlQlNEOiB3YWl0KCkgbWF5IGhhbmcgd2hlbiBjb21waWxlZCB3aXRoIFB5dGhvbiBzdXBwb3J0IGFuZAoJICAgIGRvaW5nIGEgc3lzdGVtKCkgY2FsbCBpbiBhIHN0YXJ0dXAgc2NyaXB0LgpTb2x1dGlvbjogICBVc2Ugd2FpdHBpZCgpIGluc3RlYWQgb2Ygd2FpdCgpIGFuZCBwb2xsIGV2ZXJ5IDEwIG1zZWMsIGp1c3QgbGlrZQoJICAgIHdoYXQgaXMgZG9uZSBpbiB0aGUgR1VJLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS40MjkgKGRlcGVuZHMgb24gNi4xLjM5MCkKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiB1c2luZyBzaG93bWFya3MudmltIHBsdWdpbi4gKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIENoZWNrIGZvciBzaWduX2dldF90ZXh0KCkgcmV0dXJuaW5nIGEgTlVMTCBwb2ludGVyLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4xLjQzMApQcm9ibGVtOiAgICBJbiBMaXNwIGNvZGUgYmFja3NsYXNoZWQgcGFyZW5zIHNob3VsZCBiZSBpZ25vcmVkIGZvciAiJSIuIChEb3JhaSkKU29sdXRpb246ICAgU2tpcCBvdmVyIGJhY2tzbGFzaGVkIHBhcmVucy4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMS40MzEKUHJvYmxlbTogICAgRGVidWcgY29tbWFuZHMgZW5kIHVwIGluIHJlZGlyZWN0ZWQgdGV4dC4KU29sdXRpb246ICAgRGlzYWJsZSByZWRpcmVjdGlvbiB3aGlsZSBoYW5kbGluZyBkZWJ1ZyBjb21tYW5kcy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4xLjQzMiAoZGVwZW5kcyBvbiA2LjEuMzc1KQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiAiOm1ha2UgJTpwIiBpbnNlcnRzIGV4dHJhIGJhY2tzbGFzaGVzLiAoRGF2aWQgUmVubmFsbHMpClNvbHV0aW9uOiAgIERvbid0IGFkZCBiYWNrc2xhc2hlcywgaGFuZGxlIGl0IGxpa2UgIjohY21kIi4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjQzMwpQcm9ibGVtOiAgICAiOnBvcHVwIiBvbmx5IHdvcmtzIGZvciBXaW4zMi4KU29sdXRpb246ICAgQWRkICI6cG9wdXAiIHN1cHBvcnQgZm9yIEdUSy4gIChEYW5pZWwgRWxzdG5lcikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9ndWkudHh0LCBzcmMvZXhfZG9jbWQuYywgc3JjL2d1aV9ndGsuYywgc3JjL21lbnUuYywKCSAgICBzcmMvcHJvdG8vZ3VpX2d0ay5wcm8KClBhdGNoIDYuMS40MzQgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB0aGVyZSBhcmUgbW9yZSB0aGFuIDMyNzY3IGxpbmVzLCB0aGUgc2Nyb2xsYmFyIGhhcyBhCgkgICAgcm91bmRvZmYgZXJyb3IuClNvbHV0aW9uOiAgIE1ha2UgYSBjbGljayBvbiBhbiBhcnJvdyBtb3ZlIG9uZSBsaW5lLiAgQWxzbyBtb3ZlIHRoZSBjb2RlIHRvCgkgICAgZ3VpX3c0OC5jLCB0aGVyZSBpcyBoYXJkbHkgYW55IGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgMTYgYml0IGFuZAoJICAgIDMyIGJpdCB2ZXJzaW9ucy4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9ndWlfdzE2LmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMS40MzUKUHJvYmxlbTogICAgIjp3aW5zaXplIHgiIHJlc2l6ZXMgdGhlIFZpbSB3aW5kb3cgdG8gdGhlIG1pbmltYWwgc2l6ZS4gKEFuZHJldwoJICAgIFBpbWxvdHQpClNvbHV0aW9uOiAgIEdpdmUgYW4gZXJyb3IgbWVzc2FnZSBmb3Igd3JvbmcgYXJndW1lbnRzIG9mICI6d2luc2l6ZSIgYW5kCgkgICAgIjp3aW5wb3MiLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjEuNDM2ClByb2JsZW06ICAgIFdoZW4gYSBsb25nIFVURi04IGZpbGUgY29udGFpbnMgYW4gaWxsZWdhbCBieXRlIGl0J3MgaGFyZCB0byBmaW5kCgkgICAgb3V0IHdoZXJlIGl0IGlzLiAoUm9uIEFhcm9uKQpTb2x1dGlvbjogICBBZGQgdGhlIGxpbmUgbnVtYmVyIHRvIHRoZSBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4xLjQzNyAoZXh0cmEsIGRlcGVuZHMgb24gNi4xLjQyMSkKUHJvYmxlbTogICAgVXNpbmcgbXVsdGktYnl0ZSBmdW5jdGlvbnMgd2hlbiB0aGV5IGFyZSBub3QgYXZhaWxhYmxlLgpTb2x1dGlvbjogICBQdXQgdGhlIGNsaXBib2FyZCBjb252ZXJzaW9uIGluc2lkZSBhbiAjaWZkZWYuIChWaW5jZSBOZWdyaSkKCSAgICBBbHNvIGZpeCBhIHBvaW50ZXIgdHlwZSBtaXN0YWtlLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMS40MzgKUHJvYmxlbTogICAgV2hlbiBQZXJsIGhhcyB0aHJlYWQgc3VwcG9ydCBWaW0gY2Fubm90IHVzZSB0aGUgUGVybCBpbnRlcmZhY2UuClNvbHV0aW9uOiAgIEFkZCBhIGNvbmZpZ3VyZSBjaGVjayBhbmQgZGlzYWJsZSBQZXJsIHdoZW4gaXQgd2lsbCBub3Qgd29yay4KCSAgICAoQXJvbiBHcmlmZmlzKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4xLjQzOQpQcm9ibGVtOiAgICBOZXRiZWFuczogQSAiY3JlYXRlIiBmdW5jdGlvbiBkb2Vzbid0IGFjdHVhbGx5IGNyZWF0ZSBhIGJ1ZmZlciwKCSAgICBmb2xsb3dpbmcgZnVuY3Rpb25zIG1heSBmYWlsLgpTb2x1dGlvbjogICBDcmVhdGUgYSBWaW0gYnVmZmVyIHdpdGhvdXQgYSBuYW1lIHdoZW4gImNyZWF0ZSIgaXMgY2FsbGVkLgoJICAgIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL25ldGJlYW5zLnR4dCwgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMS40NDAKUHJvYmxlbTogICAgVGhlICJAKiIgY29tbWFuZCBkb2Vzbid0IG9idGFpbiB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIHRoZQoJICAgIGNsaXBib2FyZC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBPYnRhaW4gdGhlIGNsaXBib2FyZCB0ZXh0IGJlZm9yZSBleGVjdXRpbmcgdGhlIGNvbW1hbmQuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjEuNDQxClByb2JsZW06ICAgICJ6aiIgYW5kICJ6ayIgY2Fubm90IGJlIHVzZWQgYXMgYSBtb3Rpb24gY29tbWFuZCBhZnRlciBhbgoJICAgIG9wZXJhdG9yLiAoUmFsZiBIZXR6ZWwpClNvbHV0aW9uOiAgIEFjY2VwdCB0aGVzZSBjb21tYW5kcyBhcyBtb3Rpb24gY29tbWFuZHMuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuNDQyClByb2JsZW06ICAgIFVuaWNvZGUgMy4yIGRlZmluZXMgbW9yZSBzcGFjZSBhbmQgcHVuY3R1YXRpb24gY2hhcmFjdGVycy4KU29sdXRpb246ICAgQWRkIHRoZSBuZXcgY2hhcmFjdGVycyB0byB0aGUgVW5pY29kZSB0YWJsZXMuIChSYXBoYWVsIEZpbmtlbCkKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4xLjQ0MyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgZ3ZpbWV4dC5kbGwgYnVpbGQgd2l0aCBCb3JsYW5kIDUuNSByZXF1aXJlcyBhbm90aGVyCgkgICAgRExMLgpTb2x1dGlvbjogICBCdWlsZCBhIHN0YXRpY2FsbHkgbGlua2VkIHZlcnNpb24gYnkgZGVmYXVsdC4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBHdmltRXh0L01ha2VfYmM1Lm1hawoKUGF0Y2ggNi4xLjQ0NCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBFbmFibGluZyBhIGJ1aWxkIHdpdGggZ2V0dGV4dCBzdXBwb3J0IGlzIG5vdCBjb25zaXN0ZW50LgpTb2x1dGlvbjogICBVc2UgIkdFVFRFWFQiIGZvciBCb3JsYW5kIGFuZCBtc3ZjIG1ha2VmaWxlcy4gKERhbiBTaGFycCkKRmlsZXM6CSAgICBzcmMvTWFrZV9iYzUubWFrLCBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjEuNDQ1IChleHRyYSkKUHJvYmxlbTogICAgREpHUFA6IGdldCB3YXJuaW5nIGZvciBhcmd1bWVudCBvZiBwdXRlbnYoKQpTb2x1dGlvbjogICBEZWZpbmUgSEFWRV9QVVRFTlYgdG8gdXNlIERKR1BQJ3MgcHV0ZW52KCkuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvb3NfbXNkb3MuaAoKUGF0Y2ggNi4xLjQ0NiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgTWluZ1cgbWFrZWZpbGUgdXNlcyBhIGRpZmZlcmVudCBzdHlsZSBvZiBhcmd1bWVudHMgdGhhbgoJICAgIG90aGVyIG1ha2VmaWxlcy4KCSAgICBEeW5hbWljIElNRSBpcyBub3Qgc3VwcG9ydGVkIGZvciBDeWd3aW4uClNvbHV0aW9uOiAgIFVzZSAibm8iIGFuZCAieWVzIiBzdHlsZSBhcmd1bWVudHMuICBSZW1vdmUgdGhlIHVzZSBvZiB0aGUKCSAgICBkeW4tbWluZy5oIGluY2x1ZGUgZmlsZS4gKERhbiBTaGFycCkKCSAgICBEbyBub3QgaW5jbHVkZSB0aGUgaW1lLmggZmlsZSBhbmQgYWRqdXN0IHRoZSBtYWtlZmlsZS4gKEFsZWphbmRybwoJICAgIExvcGV6LVZhbGVuY2lhKQpGaWxlczoJICAgIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9NYWtlX21pbmcubWFrLCBzcmMvZ3VpX3czMi5jLAoJICAgIHNyYy9pZl9wZXJsLnhzLCBzcmMvaWZfcHl0aG9uLmMsIHNyYy9pZl9ydWJ5LmMsIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjEuNDQ3ClByb2JsZW06ICAgICJtYWtlIGluc3RhbGwiIHVzZXMgIm1ha2UiIGRpcmVjdGx5IGZvciBnZW5lcmF0aW5nIGhlbHAgdGFncy4KU29sdXRpb246ICAgVXNlICQoTUFLRSkgaW5zdGVhZCBvZiAibWFrZSIuIChUaW0gTW9vbmV5KQpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4xLjQ0OApQcm9ibGVtOiAgICAndGl0bGVzdHJpbmcnIGhhcyBhIGRlZmF1bHQgbWF4aW11bSB3aWR0aCBvZiA1MCBjaGFycyBwZXIgaXRlbS4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBkZWZhdWx0IG1heGltdW0gKGFsc28gZm9yICdzdGF0dXNsaW5lJykuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjEuNDQ5ClByb2JsZW06ICAgIFdoZW4gIjEiIGFuZCAiYSIgYXJlIGluICdmb3JtYXRvcHRpb25zJywgYXV0by1mb3JtYXR0aW5nIGFsd2F5cwoJICAgIG1vdmVzIGEgbmV3bHkgYWRkZWQgY2hhcmFjdGVyIHRvIHRoZSBuZXh0IGxpbmUuIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBEb24ndCBtb3ZlIGEgc2luZ2xlIGNoYXJhY3RlciB0byB0aGUgbmV4dCBsaW5lIHdoZW4gaXQgd2FzIGp1c3QKCSAgICB0eXBlZC4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjEuNDUwClByb2JsZW06ICAgIFRlcm1jYXAgZW50cnkgImtCIiBmb3IgYmFjay10YWIgaXMgbm90IHJlY29nbml6ZWQuClNvbHV0aW9uOiAgIFVzZSBiYWNrLXRhYiBhcyB0aGUgc2hpZnQtdGFiIGNvZGUuCkZpbGVzOgkgICAgc3JjL2tleW1hcC5oLCBzcmMvbWlzYzIuYywgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4xLjQ1MQpQcm9ibGVtOiAgICBHVUk6IFdoZW4gdGV4dCBpbiB0aGUgZmluZCBkaWFsb2cgY29udGFpbnMgYSBzbGFzaCwgYSBiYWNrc2xhc2ggaXMKCSAgICBpbnNlcnRlZCB0aGUgbmV4dCB0aW1lIGl0IGlzIG9wZW5lZC4gKE1lenopClNvbHV0aW9uOiAgIFJlbW92ZSBlc2NhcGVkIGJhY2tzbGFzaGVzIGFuZCBxdWVzdGlvbiBtYXJrcy4gKERhbmllbCBFbHN0bmVyKQpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4xLjQ1MiAoZXh0cmEsIGFmdGVyIDYuMS40NDYpClByb2JsZW06ICAgIFdpbjMyOiBJTUUgc3VwcG9ydCBkb2Vzbid0IHdvcmsgZm9yIE1TVkMuClNvbHV0aW9uOiAgIFVzZSBfTVNDX1ZFUiBpbnN0ZWFkIG9mIF9fTVNWQy4gKEFsZWphbmRybyBMb3Blei1WYWxlbmNpYSkKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjEuNDUzIChhZnRlciA2LjEuNDI5KQpQcm9ibGVtOiAgICBXaGVuIGNvbXBpbGVkIHdpdGhvdXQgc2lnbiBpY29ucyBidXQgd2l0aCBzaWduIHN1cHBvcnQsIGFkZGluZyBhCgkgICAgc2lnbiBtYXkgY2F1c2UgYSBjcmFzaC4KU29sdXRpb246ICAgQ2hlY2sgZm9yIHRoZSB0ZXh0IHNpZ24gdG8gZXhpc3QgYmVmb3JlIHVzaW5nIGl0LiAoS2FtaWwKCSAgICBCdXJ6eW5za2kpCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuNDU0IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IHBhc3RpbmcgUnVzc2lhbiB0ZXh0IGluIFZpbSB3aXRoICdlbmMnIHNldCB0byBjcDEyNTEKCSAgICByZXN1bHRzIGluIHV0Zi04IGJ5dGVzLiAgKFBlcmVseXVic2tpeSkKCSAgICBDb252ZXJzaW9uIGZyb20gREJDUyB0byBVQ1MyIGRvZXMgbm90IHdvcmsgd2hlbiAnZW5jb2RpbmcnIGlzIG5vdAoJICAgIHRoZSBhY3RpdmUgY29kZXBhZ2UuClNvbHV0aW9uOiAgIEludHJvZHVjZSBlbmNfY29kZXBhZ2UgYW5kIHVzZSBpdCBmb3IgY29udmVyc2lvbiB0byAnZW5jb2RpbmcnCgkgICAgKEdsZW5uIE1heW5hcmQpCgkgICAgVXNlIE11bHRpQnl0ZVRvV2lkZUNoYXIoKSBhbmQgV2lkZUNoYXJUb011bHRpQnl0ZSgpIGluc3RlYWQgb2YKCSAgICBpY29udigpLiAgU2hvdWxkIGRvIG1vc3QgbmVlZGVkIGNvbnZlcnNpb25zIHdpdGhvdXQgaWNvbnYuZGxsLgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9ndWlfdzMyLmMsIHNyYy9tYnl0ZS5jLCBzcmMvb3NfbXN3aW4uYywKCSAgICBzcmMvcHJvdG8vbWJ5dGUucHJvLCBzcmMvcHJvdG8vb3NfbXN3aW4ucHJvLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjEuNDU1ClByb2JsZW06ICAgIFNvbWUgVW5pY29kZSBjaGFyYWN0ZXJzIGNhbiBiZSBvbmUgb3IgdHdvIGNoYXJhY3RlciBjZWxscyB3aWRlLgpTb2x1dGlvbjogICBBZGQgdGhlICdhbWJpd2lkdGgnIG9wdGlvbiB0byB0ZWxsIFZpbSBob3cgdG8gZGlzcGxheSB0aGVzZQoJICAgIGNoYXJhY3RlcnMuIChKdW5nc2hpayBTaGluKQoJICAgIEFsc28gcmVzZXQgdGhlIHNjcmlwdCBJRCB3aGVuIHNldHRpbmcgYW4gb3B0aW9uIHRvIGl0cyBkZWZhdWx0CgkgICAgdmFsdWUsIHNvIHRoYXQgIjp2ZXJib3NlIHNldCIgd29uJ3QgZ2l2ZSB3cm9uZyBpbmZvLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL29wdGlvbnMudHh0LCBzcmMvbWJ5dGUuYywgc3JjL29wdGlvbi5jLCBzcmMvb3B0aW9uLmgKClBhdGNoIDYuMS40NTYgKGV4dHJhLCBhZnRlciA2LjEuNDU0KQpQcm9ibGVtOiAgICBXaW4zMjogSU1FIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgSW1tR2V0Q29tcG9zaXRpb25TdHJpbmdXKCkgcmV0dXJucyB0aGUgc2l6ZSBpbiBieXRlcywgbm90IHdvcmRzLgoJICAgIChZYXN1aGlybyBNYXRzdW1vdG8pICBBbHNvIGZpeCB0eXBlY2FzdCBwcm9ibGVtLgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjEuNDU3ClByb2JsZW06ICAgIEFuIGVtcHR5IHJlZ2lzdGVyIGluIHZpbWluZm8gY2F1c2VzIGNvbnZlcnNpb24gdG8gZmFpbC4KU29sdXRpb246ICAgRG9uJ3QgY29udmVydCBhbiBlbXB0eSBzdHJpbmcuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL21ieXRlLmMKClBhdGNoIDYuMS40NTgKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgcG9pbnRlci4KU29sdXRpb246ICAgQWRkIGEgdHlwZWNhc3QuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4xLjQ1OSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBsaWJjYWxsKCkgbWF5IHJldHVybiBhbiBpbnZhbGlkIHBvaW50ZXIgYW5kIGNhdXNlIFZpbSB0bwoJICAgIGNyYXNoLgpTb2x1dGlvbjogICBBZGQgYSBzdHJpY3QgY2hlY2sgZm9yIHRoZSByZXR1cm5lZCBwb2ludGVyLiAoQnJ1Y2UgTWVsbG93cykKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4xLjQ2MApQcm9ibGVtOiAgICBHVEs6IGFmdGVyIHNjcm9sbGluZyB0aGUgdGV4dCBvbmUgbGluZSB3aXRoIGEga2V5LCBjbGlja2luZyB0aGUKCSAgICBhcnJvdyBvZiB0aGUgc2Nyb2xsYmFyIGRvZXMgbm90IGFsd2F5cyB3b3JrLiAoTmFtIFN1bmdIeXVuKQpTb2x1dGlvbjogICBBbHdheXMgdXBkYXRlIHRoZSBzY3JvbGxiYXIgdGh1bWIgd2hlbiB0aGUgdmFsdWUgY2hhbmdlZCwgZXZlbgoJICAgIHdoZW4gaXQgd291bGQgbm90IG1vdmUsIGxpa2UgZm9yIFJJU0NPUy4gIChEYW5pZWwgRWxzdG5lcikKRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9ndWkuaAoKUGF0Y2ggNi4xLjQ2MQpQcm9ibGVtOiAgICBXaGVuIGEga2V5bWFwIGlzIGFjdGl2ZSwgdHlwaW5nIGEgY2hhcmFjdGVyIGluIFNlbGVjdCBtb2RlIGRvZXMKCSAgICBub3QgdXNlIGl0LiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBBcHBseSBJbnNlcnQgbW9kZSBtYXBwaW5nIHRvIHRoZSBjaGFyYWN0ZXIgdHlwZWQgaW4gU2VsZWN0IG1vZGUuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjEuNDYyClByb2JsZW06ICAgIFdoZW4gYXV0b2NvbW1hbmRzIHdpcGUgb3V0IGEgYnVmZmVyLCBhIGNyYXNoIG1heSBoYXBwZW4uIChIYXJpCgkgICAgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBEb24ndCBkZWNyZW1lbnQgdGhlIHdpbmRvdyBjb3VudCBvZiBhIGJ1ZmZlciBiZWZvcmUgY2FsbGluZyB0aGUKCSAgICBhdXRvY29tbWFuZHMgZm9yIGl0LiAgV2hlbiByZS11c2luZyB0aGUgY3VycmVudCBidWZmZXIsIHdhdGNoIG91dAoJICAgIGZvciBhdXRvY29tbWFuZHMgY2hhbmdpbmcgdGhlIGN1cnJlbnQgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V4X2NtZHMuYywgc3JjL3Byb3RvL2J1ZmZlci5wcm8KClBhdGNoIDYuMS40NjMKUHJvYmxlbTogICAgV2hlbiB3cml0aW5nIGEgY29tcHJlc3NlZCBmaWxlLCB0aGUgZmlsZSBuYW1lIHRoYXQgZ3ppcCBzdG9yZXMgaW4KCSAgICB0aGUgZmlsZSBpcyB0aGUgd2VpcmQgdGVtcG9yYXJ5IGZpbGUgbmFtZS4gKERhdmlkIFJlbm5hbGxzKQpTb2x1dGlvbjogICBVc2UgdGhlIHJlYWwgZmlsZSBuYW1lIHdoZW4gcG9zc2libGUuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZ3ppcC52aW0KClBhdGNoIDYuMS40NjQKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiB1c2luZyBDKysgc3ludGF4IGhpZ2hsaWdodGluZy4gKEdlcmhhcmQgSG9jaGhvbHplcikKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgbmVnYXRpdmUgaW5kZXguCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjEuNDY1IChhZnRlciA2LjEuNDU0KQpQcm9ibGVtOiAgICBDb21waWxlIGVycm9yIHdoZW4gdXNpbmcgY3lnd2luLgpTb2x1dGlvbjogICBDaGFuZ2UgI2lmZGVmIFdJTjMyIHRvICNpZmRlZiBXSU4zMjY0LiAoQWxlamFuZHJvIExvcGV6LVZhbGVuY2lhKQoJICAgIFVuZGVmaW5lIFdJTjMyIGFmdGVyIGluY2x1ZGluZyB3aW5kb3dzLmgKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4xLjQ2NgpQcm9ibGVtOiAgICBUaGUgIi1mIiBhcmd1bWVudCBpcyBhIGJpdCBvYnNjdXJlLgpTb2x1dGlvbjogICBBZGQgdGhlICItLW5vZm9yayIgYXJndW1lbnQuICBJbXByb3ZlIHRoZSBoZWxwIHRleHQgYSBiaXQuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvc3RhcnRpbmcudHh0LCBzcmMvbWFpbi5jCgpQYXRjaCA2LjEuNDY3ClByb2JsZW06ICAgIFNldHRpbmcgdGhlIHdpbmRvdyB0aXRsZSBkb2Vzbid0IHdvcmsgZm9yIENoaW5lc2UuClNvbHV0aW9uOiAgIFVzZSBhbiBYMTEgZnVuY3Rpb24gdG8gY29udmVydCB0ZXh0IHRvIGEgdGV4dCBwcm9wZXJ0eS4gKEtlbnRhcm8KCSAgICBOYWthemF3YSkKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjEuNDY4ClByb2JsZW06ICAgICI6bWtzZXNzaW9uIiBhbHNvIHN0b3JlcyBmb2xkcyBmb3IgYnVmZmVycyB3aGljaCB3aWxsIG5vdCBiZQoJICAgIHJlc3RvcmVkLgpTb2x1dGlvbjogICBPbmx5IHN0b3JlIGZvbGRzIGZvciBhIGJ1ZmZlciB3aXRoICdidWZ0eXBlJyBlbXB0eSBhbmQgaGVscCBmaWxlcy4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4xLjQ2OQpQcm9ibGVtOiAgICAnbGlzdGNoYXJzJyBjYW5ub3QgY29udGFpbiBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIEhhbmRsZSBtdWx0aS1ieXRlIFVURi04IGxpc3QgY2hhcmFjdGVycy4gKE1hdHRoZXcgU2Ftc29ub2ZmKQpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy9vcHRpb24uYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjEuNDcwIChsYW5nKQpQcm9ibGVtOiAgICBQb2xpc2ggbWVzc2FnZXMgZG9uJ3Qgc2hvdyB1cCBjb3JyZWN0bHkgb24gTVMtV2luZG93cy4KU29sdXRpb246ICAgQ29udmVydCBtZXNzYWdlcyB0byBjcDEyNTAuIChNaWtvbGFqIE1hY2hvd3NraSkKCSAgICBBbHNvIGFkZCBFbmdsaXNoIG1lc3NhZ2UgdHJhbnNsYXRpb25zLCBiZWNhdXNlIGl0IGdvdCBpbiB0aGUgd2F5CgkgICAgb2YgdGhlIHBhdGNoLgpGaWxlczoJICAgIE1ha2VmaWxlLCBzcmMvcG8vTWFrZWZpbGUsIHNyYy9wby9lbl9nYi5wbywgc3JjL3BvL3BsLnBvCgpQYXRjaCA2LjEuNDcxClByb2JsZW06ICAgICI6anVtcHMiIG91dHB1dCBjb250aW51ZXMgYWZ0ZXIgcHJlc3NpbmcgInEiIGF0IHRoZSBtb3JlLXByb21wdC4KCSAgICAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIENoZWNrIGZvciAiZ290X2ludCIgYmVpbmcgc2V0LgpGaWxlczoJICAgIHNyYy9tYXJrLmMKClBhdGNoIDYuMS40NzIKUHJvYmxlbTogICAgV2hlbiB0aGVyZSBpcyBhbiBhdXRoZW50aWNhdGlvbiBlcnJvciB3aGVuIGNvbm5lY3RpbmcgdG8gdGhlIFgKCSAgICBzZXJ2ZXIgVmltIGV4aXRzLgpTb2x1dGlvbjogICBVc2UgWFNldElPRXJyb3JIYW5kbGVyKCkgdG8gY2F0Y2ggdGhlIGVycm9yIGFuZCBsb25nam1wKCkgdG8gYXZvaWQKCSAgICB0aGUgZXhpdC4gIEFsc28gZG8gdGhpcyBpbiB0aGUgbWFpbiBsb29wLCBzbyB0aGF0IHdoZW4gdGhlIFgKCSAgICBzZXJ2ZXIgZXhpdHMgYSBWaW0gcnVubmluZyBpbiBhIGNvbnNvbGUgaXNuJ3Qga2lsbGVkLgpGaWxlczoJICAgIHNyYy9nbG9iYWxzLmgsIHNyYy9tYWluLmMsIHNyYy9vc191bml4LmMKClBhdGNoIDYuMS40NzMKUHJvYmxlbTogICAgUmVmZXJyaW5nIHRvICRjdXJ3aW4gb3IgJGN1cmJ1ZiBpbiBQZXJsIDUuNiBjYXVzZXMgYSBjcmFzaC4KU29sdXRpb246ICAgQWRkICJwVEhYXyIgdG8gY3VyX3ZhbCgpLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9pZl9wZXJsLnhzCgpQYXRjaCA2LjEuNDc0ClByb2JsZW06ICAgIFdoZW4gb3BlbmluZyB0aGUgY29tbWFuZC1saW5lIHdpbmRvdyBpbiBFeCBtb2RlIGl0J3MgaW1wb3NzaWJsZSB0bwoJICAgIGdvIGJhY2suIChQYXZvbCBKdWhhcykKU29sdXRpb246ICAgUmVzZXQgImV4bW9kZV9hY3RpdmUiIGFuZCByZXN0b3JlIGl0IHdoZW4gdGhlIGNvbW1hbmQtbGluZSB3aW5kb3cKCSAgICBpcyBjbG9zZWQuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKCgpQYXRjaCA2LjJmLjAwMQpQcm9ibGVtOiAgICBUaGUgY29uZmlndXJlIGNoZWNrIGZvciBSdWJ5IGRpZG4ndCB3b3JrIHByb3Blcmx5IGZvciBSdWJ5IDEuOC4wLgpTb2x1dGlvbjogICBDaGFuZ2UgdGhlIHdheSB0aGUgUnVieSBjaGVjayBpcyBkb25lLiAoQXJvbiBHcmlmZmlzKQpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yZi4wMDIKUHJvYmxlbTogICAgVGhlIG91dHB1dCBvZiAiOmxzIiBkb2Vzbid0IHNob3cgd2hldGhlciBhIGJ1ZmZlciBoYWQgcmVhZCBlcnJvcnMuClNvbHV0aW9uOiAgIEFkZCB0aGUgIngiIGZsYWcgaW4gdGhlICI6bHMiIG91dHB1dC4KRmlsZXM6CSAgICBydW50aW1lL2RvYy93aW5kb3dzLnR4dCwgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjJmLjAwMwpQcm9ibGVtOiAgICBUZXN0NDkgZG9lc24ndCBwcm9wZXJseSB0ZXN0IHRoZSBiZWhhdmlvciBvZiAiOmNhdGNoIiB3aXRob3V0IGFuCgkgICAgYXJndW1lbnQuClNvbHV0aW9uOiAgIFVwZGF0ZSB0ZXN0NDkuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q0OS5vaywgc3JjL3Rlc3RkaXIvdGVzdDQ5LnZpbQoKUGF0Y2ggNi4yZi4wMDQKUHJvYmxlbTogICAgInZpbSAtLXZlcnNpb24iIGFsd2F5cyB1c2VzIENSL0xGIGluIHRoZSBvdXRwdXQuClNvbHV0aW9uOiAgIE9taXQgdGhlIENSLgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy9vc191bml4LmMKClBhdGNoIDYuMmYuMDA1ClByb2JsZW06ICAgIFR3byBlcnJvciBtZXNzYWdlcyB3aXRob3V0IGEgY29sb24gYWZ0ZXIgdGhlIG51bWJlci4KU29sdXRpb246ICAgQWRkIHRoZSBjb2xvbi4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKClBhdGNoIDYuMmYuMDA2ClByb2JsZW06ICAgIFdoZW4gc2F2aW5nIGEgZmlsZSB0YWtlcyBhIHdoaWxlIGFuZCBWaW0gcmVnYWlucyBmb2N1cyB0aGlzIGNhbgoJICAgIHJlc3VsdCBpbiBhICJmaWxlIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0iIHdhcm5pbmcgYW5kIG1sX2dldCgpCgkgICAgZXJyb3JzLiAoTWlrZSBXaWxsaWFtcykKU29sdXRpb246ICAgQWRkIHRoZSAiYl9zYXZpbmciIGZsYWcgdG8gYXZvaWQgY2hlY2tpbmcgdGhlIHRpbWVzdGFtcCB3aGlsZSB0aGUKCSAgICBidWZmZXIgaXMgYmVpbmcgc2F2ZWQuIChNaWNoYWVsIFNjaGFhcCkKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMmYuMDA3ClByb2JsZW06ICAgIElyaXggY29tcGlsZXIgY29tcGxhaW5zIGFib3V0IG11bHRpcGxlIGRlZmluZWQgc3ltYm9scy4KCSAgICB2c25wcmludGYoKSBpcyBub3QgYXZhaWxhYmxlLiAgKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIEluc2VydCBFWFRFUk4gZm9yIHZhcmlhYmxlcyBpbiBnbG9iYWxzLmguICBDaGFuZ2UgdGhlIGNvbmZpZ3VyZQoJICAgIGNoZWNrIGZvciB2c25wcmludGYoKSBmcm9tIGNvbXBpbGluZyB0byBsaW5raW5nLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2dsb2JhbHMuaAoKUGF0Y2ggNi4yZi4wMDgKUHJvYmxlbTogICAgVGhlIEFhcCByZWNpcGUgZG9lc24ndCB3b3JrIHdpdGggQWFwIDAuMTQ5LgpTb2x1dGlvbjogICBDaGFuZ2UgdGFyZ2V0YXJnIHRvIFRBUkdFVEFSRy4gIFVwZGF0ZSB0aGUgbXlzaWduIGZpbGUuCkZpbGVzOgkgICAgc3JjL21haW4uYWFwLCBzcmMvbXlzaWduCgpQYXRjaCA2LjJmLjAwOSAoZXh0cmEpClByb2JsZW06ICAgIFNtYWxsIHByb2JsZW0gd2hlbiBidWlsZGluZyB3aXRoIEJvcmxhbmQgNS4wMS4KU29sdXRpb246ICAgVXNlIG1rZGlyKCkgaW5zdGVhZCBvZiBfbWtkaXIoKS4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9kb3NpbnN0LmgKClBhdGNoIDYuMmYuMDEwClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIG1pc3NpbmcgcHJvdG90eXBlcy4KU29sdXRpb246ICAgQWRkIG1pc3NpbmcgcHJvdG90eXBlcy4gKFdhbHRlciBCcmlzY29lKQpGaWxlczoJICAgIHNyYy9pZl9jc2NvcGUuYwoKUGF0Y2ggNi4yZi4wMTEKUHJvYmxlbTogICAgVGhlIGNvbmZpZ3VyZSBzY3JpcHQgZG9lc24ndCB3b3JrIHdpdGggYXV0b2NvbmYgMi41eC4KU29sdXRpb246ICAgQWRkIHNxdWFyZSBicmFja2V0cyBhcm91bmQgYSBoZWFkZXIgY2hlY2suIChBcm9uIEdyaWZmaXMpCgkgICAgTm90ZTogdG91Y2ggc3JjL2F1dG8vY29uZmlndXJlIGFmdGVyIGFwcGx5aW5nIHRoaXMgcGF0Y2guCkZpbGVzOgkgICAgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yZi4wMTIKUHJvYmxlbTogICAgIjplY2hvZXJyIiBkb2Vzbid0IHdvcmsgY29ycmVjdGx5IGluc2lkZSB0cnkvZW5kdHJ5LgpTb2x1dGlvbjogICBEb24ndCByZXNldCBkaWRfZW1zZyBpbnNpZGUgYSB0cnkvZW5kdHJ5LiAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjJmLjAxMyAoZXh0cmEpClByb2JsZW06ICAgIE1hY2ludG9zaDogQ29tcGlsZXIgd2FybmluZyBmb3IgYSB0cmlncmFwaC4KU29sdXRpb246ICAgSW5zZXJ0IGEgYmFja3NsYXNoIGJlZm9yZSBlYWNoIHF1ZXN0aW9uIG1hcmsuIChQZXRlciBDdWNrYSkKRmlsZXM6CSAgICBzcmMvb3NfbWFjLmgKClBhdGNoIDYuMmYuMDE0IChleHRyYSkKUHJvYmxlbTogICAgTWFjaW50b3NoOiBleF9ldmFsIGlzIG5vdCBpbmNsdWRlZCBpbiB0aGUgcHJvamVjdCBmaWxlLgpTb2x1dGlvbjogICBBZGQgZXhfZXZhbC4gKERhbnkgU3QtQW1hbnQpCkZpbGVzOgkgICAgc3JjL29zX21hYy5wYnByb2ovcHJvamVjdC5wYnhwcm9qCgpQYXRjaCA2LjJmLjAxNSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIGNoYW5naW5nIGhlYWRlciBmaWxlcyBub3QgYWxsIHNvdXJjZSBmaWxlcyBpbnZvbHZlZAoJICAgIGFyZSByZWNvbXBpbGVkLgpTb2x1dGlvbjogICBJbXByb3ZlIHRoZSBkZXBlbmRlbmN5IHJ1bGVzLiAoRGFuIFNoYXJwKQpGaWxlczoJICAgIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9NYWtlX21pbmcubWFrCgpQYXRjaCA2LjJmLjAxNgpQcm9ibGVtOiAgICAidmltIC0tdmVyc2lvbiA+IGZmIiBvbiBub24tVW5peCBzeXN0ZW1zIHJlc3VsdHMgaW4gYSBmaWxlIHdpdGggYQoJICAgIG1pc3NpbmcgbGluZSBicmVhayBhdCB0aGUgZW5kLiAoQmlsbCBNY0NBcnRoeSkKU29sdXRpb246ICAgQWRkIGEgbGluZSBicmVhay4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjJmLjAxNwpQcm9ibGVtOiAgICBVbml4OiBzdGFydGluZyBWaW0gaW4gdGhlIGJhY2tncm91bmQgYW5kIHRoZW4gYnJpbmdpbmcgaXQgdG8gdGhlCgkgICAgZm9yZWdyb3VuZCBtYXkgY2F1c2UgdGhlIHRlcm1pbmFsIHNldHRpbmdzIHRvIGJlIHdyb25nLgpTb2x1dGlvbjogICBDaGVjayBmb3IgdGNzZXRhdHRyKCkgdG8gcmV0dXJuIGFuIGVycm9yLCByZXRyeSB3aGVuIGl0IGRvZXMuCgkgICAgKFBhdWwgVGFwcGVyKQpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMmYuMDE4ClByb2JsZW06ICAgIE1hYyBPUyBYIDEwLjI6IE9LIGlzIGRlZmluZWQgdG8gemVybyBpbiBjdXJzdXMuaCB3aGlsZSBWaW0gdXNlcwoJICAgIG9uZS4gIFJlZGVmaW5pbmcgaXQgY2F1c2VzIGEgd2FybmluZyBtZXNzYWdlLgpTb2x1dGlvbjogICBVbmRlZmluZSBPSyBiZWZvcmUgZGVmaW5pbmcgaXQgdG8gb25lLiAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy92aW0uaAoKUGF0Y2ggNi4yZi4wMTkKUHJvYmxlbTogICAgTWFjIE9TIFggMTAuMjogQ09MT1JfQkxBQ0sgYW5kIENPTE9SX1dISVRFIGFyZSBkZWZpbmVkIGluCgkgICAgY3Vyc2VzLmguClNvbHV0aW9uOiAgIFJlbmFtZSB0aGVtIHRvIFBSQ09MT1JfQkxBQ0sgYW5kIFBSQ09MT1JfV0hJVEUuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMmYuMDIwClByb2JsZW06ICAgIFdpbjMyOiB0ZXN0NTAgcHJvZHVjZXMgYmVlcHMgYW5kIGZhaWxzIHdpdGggc29tZSB2ZXJzaW9ucyBvZiBkaWZmLgpTb2x1dGlvbjogICBSZW1vdmUgZW1wdHkgbGluZXMgYW5kIGNvbnZlcnQgdGhlIG91dHB1dCB0byBkb3MgZmlsZWZvcm1hdC4KRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0NTAuaW4KClBhdGNoIDYuMmYuMDIxClByb2JsZW06ICAgIFJ1bm5pbmcgY29uZmlndXJlIHdpdGggIi0tZW5hYmxlLW5ldGJlYW5zIiBkaXNhYmxlcyBOZXRiZWFucy4KCSAgICAoR29yZG9uIFByaWV1cikKU29sdXRpb246ICAgRml4IHRoZSB0ZXN0cyBpbiBjb25maWd1cmUuaW4gd2hlcmUgdGhlIGRlZmF1bHQgaXMgdG8gZW5hYmxlIGEKCSAgICBmZWF0dXJlLiAgRml4IHRoYXQgIi0tZW5hYmxlLWFjbCIgcmVwb3J0ZWQgInllcyIgY29uZnVzaW5nbHkuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvbXlzaWduCgpQYXRjaCA2LjJmLjAyMgpQcm9ibGVtOiAgICBBIGJvZ3VzIHZhbHVlIGZvciAnZm9sZG1hcmtlcicgaXMgbm90IHJlamVjdGVkLCBwb3NzaWJseSBjYXVzaW5nIGEKCSAgICBoYW5nLiAoRGVyZWsgV3lhdHQpClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIG5vbi1lbXB0eSBzdHJpbmcgYmVmb3JlIGFuZCBhZnRlciB0aGUgY29tbWEuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjJmLjAyMwpQcm9ibGVtOiAgICBXaGVuIHRoZSBoZWxwIGZpbGVzIGFyZSBub3QgaW4gJFZJTVJVTlRJTUUgYnV0ICdoZWxwZmlsZScgaXMKCSAgICBjb3JyZWN0IFZpbSBzdGlsbCBjYW4ndCBmaW5kIHRoZSBoZWxwIGZpbGVzLgpTb2x1dGlvbjogICBBbHNvIGxvb2sgZm9yIGEgdGFncyBmaWxlIGluIHRoZSBkaXJlY3Rvcnkgb2YgJ2hlbHBmaWxlJy4KRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMmYuMDI0ClByb2JsZW06ICAgIFdoZW4gJ2RlbGNvbWJpbmUnIGlzIHNldCBhbmQgYSBjaGFyYWN0ZXIgaGFzIG1vcmUgdGhhbiB0d28KCSAgICBjb21wb3NpbmcgY2hhcmFjdGVycyAieCIgZGVsZXRlcyB0aGVtIGFsbC4KU29sdXRpb246ICAgQWx3YXlzIGRlbGV0ZSBvbmx5IHRoZSBsYXN0IGNvbXBvc2luZyBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMmYuMDI1ClByb2JsZW06ICAgIFdoZW4gcmVhZGluZyBhIGZpbGUgZnJvbSBzdGRpbiB0aGF0IGhhcyBET1MgbGluZSBlbmRpbmdzIGJ1dCBhCgkgICAgbWlzc2luZyBlbmQtb2YtbGluZSBmb3IgdGhlIGxhc3QgbGluZSAnZmlsZWZvcm1hdCcgYmVjb21lcyAidW5peCIuCgkgICAgKEJpbGwgTWNDYXJ0aHkpClNvbHV0aW9uOiAgIERvbid0IGFkZCB0aGUgbWlzc2luZyBsaW5lIGJyZWFrIHdoZW4gcmUtcmVhZGluZyB0aGUgdGV4dCBmcm9tIHRoZQoJICAgIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMmYuMDI2ClByb2JsZW06ICAgIFdoZW4gdHlwaW5nIG5ldyB0ZXh0IGF0IHRoZSBjb21tYW5kIGxpbmUsIG9sZCBjb21wb3NpbmcgY2hhcmFjdGVycwoJICAgIG1heSBiZSBkaXNwbGF5ZWQuClNvbHV0aW9uOiAgIERvbid0IHJlYWQgY29tcG9zaW5nIGNoYXJhY3RlcnMgZnJvbSBhZnRlciB0aGUgZW5kIG9mIHRoZQoJICAgIHRleHQgdG8gYmUgZGlzcGxheWVkLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvbWJ5dGUuYywgc3JjL21lc3NhZ2UuYywgc3JjL3Byb3RvL21ieXRlLnBybywKCSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMmYuMDI3ClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIGZvciB1bnNpZ25lZCBjaGFyIHBvaW50ZXJzLiAoVG9ueSBMZW5laXMpClNvbHV0aW9uOiAgIEFkZCB0eXBlY2FzdHMgdG8gY2hhciBwb2ludGVyLgpGaWxlczoJICAgIHNyYy9xdWlja2ZpeC5jCgpQYXRjaCA2LjJmLjAyOApQcm9ibGVtOiAgICBHVEs6IFdoZW4gJ2ltYWN0aXZhdGVrZXknIGlzIGVtcHR5IGFuZCBYSU0gaXMgaW5hY3RpdmUgaXQgY2FuJ3QgYmUKCSAgICBtYWRlIGFjdGl2ZSBhZ2Fpbi4gIEN1cnNvciBpc24ndCB1cGRhdGVkIGltbWVkaWF0ZWx5IHdoZW4gY2hhbmdpbmcKCSAgICBYSU0gYWN0aXZhdGlvbi4gIEphcGFuZXNlIFhJTSBtYXkgaGFuZyB3aGVuIHVzaW5nICdpbWFjdGl2YXRla2V5Jy4KCSAgICBDYW4ndCBhY3RpdmF0ZSBYSU0gYWZ0ZXIgdHlwaW5nIGZGdFQgY29tbWFuZCBvciAiOnNoIi4KU29sdXRpb246ICAgUHJvcGVybHkgc2V0IHRoZSBmbGFnIHRoYXQgaW5kaWNhdGVzIHRoZSBJTSBpcyBhY3RpdmUuICBVcGRhdGUgdGhlCgkgICAgY3Vyc29yIHJpZ2h0IGF3YXkuICBEbyBub3Qgc2VuZCBhIGtleS1yZWxlYXNlIGV2ZW50LiAgSGFuZGxlCgkgICAgTm9ybWFsIG1vZGUgYW5kIHJ1bm5pbmcgYW4gZXh0ZXJuYWwgY29tbWFuZCBkaWZmZXJlbnRseS4KCSAgICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjJmLjAyOQpQcm9ibGVtOiAgICBNaXhpbmcgdXNlIG9mIGludCBhbmQgZW51bS4KU29sdXRpb246ICAgQWRqdXN0IGFyZ3VtZW50IHR5cGUgb2YgY3NfdXNhZ2VfbXNnKCkuICBGaXggd3JvbmcgdHlwZWRlZi4KRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMsIHNyYy9pZl9jc2NvcGUuaAoKUGF0Y2ggNi4yZi4wMzAgKGFmdGVyIDYuMmYuMDI4KQpQcm9ibGVtOiAgICBDdXJzb3IgbW92ZXMgdXAgd2hlbiB1c2luZyBYSU0uClNvbHV0aW9uOiAgIFJlc2V0IGltX3ByZWVkaXRfY3Vyc29yLiAgKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yZi4wMzEKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBsaXN0aW5nIGEgZnVuY3Rpb24gYXJndW1lbnQgaW4gdGhlIGRlYnVnZ2VyLiAoUm9uIEFhcm9uKQpTb2x1dGlvbjogICBJbml0IHRoZSBuYW1lIGZpZWxkIG9mIGFuIGFyZ3VtZW50IHRvIE5VTEwuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yZi4wMzIKUHJvYmxlbTogICAgV2hlbiBhIHdyaXRlIGZhaWxzIGZvciBhICI6c2lsZW50ISIgd2hpbGUgaW5zaWRlIHRyeS9lbmR0cnkgdGhlCgkgICAgQnVmV3JpdGVQb3N0IGF1dG9jb21tYW5kcyBhcmUgbm90IHRyaWdnZXJlZC4KU29sdXRpb246ICAgQ2hlY2sgdGhlIGVtc2dfc2lsZW50IGZsYWcgaW4gc2hvdWxkX2Fib3J0KCkuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9leF9ldmFsLmMsIHNyYy90ZXN0ZGlyL3Rlc3Q0OS5vaywgc3JjL3Rlc3RkaXIvdGVzdDQ5LnZpbQoKUGF0Y2ggNi4yZi4wMzMKUHJvYmxlbTogICAgQ3Njb3BlOiByZS1lbnRyYW5jZSBwcm9ibGVtIGZvciAiOmNzY29wZSIgY29tbWFuZC4gIENoZWNraW5nIGZvcgoJICAgIGR1cGxpY2F0ZSBkYXRhYmFzZSBkaWRuJ3Qgd29yayB3ZWxsIGZvciBXaW45NS4gIERpZG4ndCBjaGVjayBmb3IKCSAgICBkdXBsaWNhdGUgZGF0YWJhc2VzIGFmdGVyIGFuIGVtcHR5IGVudHJ5LgpTb2x1dGlvbjogICBEb24ndCBzZXQgcG9zdHBvbmVkX3NwbGl0IHRvbyBlYXJseS4gIFJlbWVtYmVyIGZpcnN0IGVtcHR5CgkgICAgZGF0YWJhc2UgZW50cnkuIChTZXJnZXkgS2hvcmV2KQpGaWxlczoJICAgIHNyYy9pZl9jc2NvcGUuYwoKUGF0Y2ggNi4yZi4wMzQKUHJvYmxlbTogICAgVGhlIG5ldGJlYW5zIGludGVyZmFjZSBjYW5ub3QgYmUgdXNlZCBvbiBzeXN0ZW1zIHdpdGhvdXQKCSAgICB2c25wcmludGYoKS4gKFRvbnkgTGVuZWlzKQpTb2x1dGlvbjogICBVc2UgRU1TRygpLCBFTVNHTigpIGFuZCBFTVNHMigpIGluc3RlYWQuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4yZi4wMzUKUHJvYmxlbTogICAgVGhlIGNvbmZpZ3VyZSBjaGVjayBmb3IgdGhlIG5ldGJlYW5zIGludGVyZmFjZSBkb2Vzbid0IHdvcmsgaWYgdGhlCgkgICAgc29ja2V0IGFuZCBuc2wgbGlicmFyaWVzIGFyZSByZXF1aXJlZC4KU29sdXRpb246ICAgQ2hlY2sgZm9yIHRoZSBzb2NrZXQgYW5kIG5zbCBsaWJyYXJpZXMgYmVmb3JlIHRoZSBuZXRiZWFucyBjaGVjay4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4KClBhdGNoIDYuMmYuMDM2ClByb2JsZW06ICAgIE1vdmluZyBsZWZ0d2FyZHMgb3ZlciB0ZXh0IHdpdGggYW4gaWxsZWdhbCBVVEYtOCBieXRlIG1vdmVzIG9uZQoJICAgIGJ5dGUgaW5zdGVhZCBvZiBvbmUgY2hhcmFjdGVyLgpTb2x1dGlvbjogICBJZ25vcmUgYW4gaWxsZWdhbCBieXRlIGFmdGVyIHRoZSBjdXJzb3IgcG9zaXRpb24uCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMmYuMDM3ClByb2JsZW06ICAgIFdoZW4gcmVjZWl2aW5nIGEgTmV0YmVhbnMgY29tbWFuZCBhdCB0aGUgaGl0LWVudGVyIG9yIG1vcmUgcHJvbXB0CgkgICAgdGhlIHNjcmVlbiBpcyByZWRyYXduIGJ1dCBWaW0gaXMgc3RpbGwgd2FpdGluZyBhdCB0aGUgcHJvbXB0LgpTb2x1dGlvbjogICBRdWl0IHRoZSBwcm9tcHQgbGlrZSBhIENUUkwtQyB3YXMgdHlwZWQuCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMmYuMDM4ClByb2JsZW06ICAgIFRoZSBkZXBlbmRlbmN5IHRvIHJ1biBhdXRvY29uZiBjYXVzZXMgYSBwYXRjaCBmb3IgY29uZmlndXJlLmluCgkgICAgdG8gcnVuIGF1dG9jb25mLCBldmVuIHRob3VnaCB0aGUgY29uZmlndXJlIHNjcmlwdCB3YXMgdXBkYXRlZCBhcwoJICAgIHdlbGwuClNvbHV0aW9uOiAgIE9ubHkgcnVuIGF1dG9jb25mIHdpdGggIm1ha2UgYXV0b2NvbmYiLgpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4yZi4wMzkKUHJvYmxlbTogICAgQ1RSTC1XIEsgbWFrZXMgdGhlIG5ldyB0b3Agd2luZG93IHZlcnkgaGlnaC4KU29sdXRpb246ICAgV2hlbiAnZXF1YWxhbHdheXMnIGlzIHNldCBlcXVhbGl6ZSB0aGUgd2luZG93IGhlaWdodHMuCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClZFUlNJT04gNi4zCQkJCQkJKnZlcnNpb24tNi4zKgoKVGhpcyBzZWN0aW9uIGlzIGFib3V0IGltcHJvdmVtZW50cyBtYWRlIGJldHdlZW4gdmVyc2lvbiA2LjIgYW5kIDYuMy4KClRoaXMgaXMgbWFpbmx5IGEgYnVnLWZpeCByZWxlYXNlLiAgVGhlcmUgYXJlIGFsc28gYSBmZXcgbmV3IGZlYXR1cmVzLgpUaGUgbWFqb3IgbnVtYmVyIG9mIG5ldyBpdGVtcyBpcyBpbiB0aGUgcnVudGltZSBmaWxlcyBhbmQgdHJhbnNsYXRpb25zLgoKCkNoYW5nZWQJCQkJCQkJKmNoYW5nZWQtNi4zKgotLS0tLS0tCgpUaGUgaW50cm8gbWVzc2FnZSBhbHNvIGRpc3BsYXlzIGEgbm90ZSBhYm91dCBzcG9uc29yaW5nIFZpbSwgbWl4ZWQgcmFuZG9tbHkKd2l0aCB0aGUgbWVzc2FnZSBhYm91dCBoZWxwaW5nIGNoaWxkcmVuIGluIFVnYW5kYS4KCkluY2x1ZGVkIHRoZSB0cmFuc2xhdGVkIG1lbnVzLCBrZXltYXBzIGFuZCB0dXRvcnMgd2l0aCB0aGUgbm9ybWFsIHJ1bnRpbWUKZmlsZXMuICBUaGUgc2VwYXJhdGUgImxhbmciIGFyY2hpdmUgbm93IG9ubHkgY29udGFpbnMgdHJhbnNsYXRlZCBtZXNzYWdlcy4KCk1hZGUgdGhlIHRyYW5zbGF0ZWQgbWVudSBmaWxlIG5hbWVzIGEgYml0IG1vcmUgY29uc2lzdGVudC4gIFVzZSAibGF0aW4xIiBmb3IKImlzb184ODU5LTEiIGFuZCAiaXNvXzg4NTktMTUiLgoKUmVtb3ZlZCB0aGUgImZpbGVfc2VsZWN0LnZpbSIgc2NyaXB0IGZyb20gdGhlIGRpc3RyaWJ1dGlvbi4gIEl0J3Mgbm90IG1vcmUKdXNlZnVsIHRoYW4gb3RoZXIgc2NyaXB0cyB0aGF0IGNhbiBiZSBkb3dubG9hZGVkIGZyb20gd3d3LnZpbS5vcmcuCgpUaGUgInJ1bnRpbWUvZG9jL3RhZ3MiIGZpbGUgaXMgbm93IGFsd2F5cyBpbiB1bml4IGZpbGVmb3JtYXQuICBPbiBNUy1XaW5kb3dzCml0IHVzZWQgdG8gYmUgZG9zIGZpbGVmb3JtYXQsIGJ1dCAiOmhlbHB0YWdzIiBnZW5lcmF0ZXMgYSB1bml4IGZvcm1hdCBmaWxlLgoKCkFkZGVkCQkJCQkJCSphZGRlZC02LjMqCi0tLS0tCgpOZXcgY29tbWFuZHM6Cgk6Y05maWxlCQlnbyB0byBsYXN0IGVycm9yIGluIHByZXZpb3VzIGZpbGUKCTpjcGZpbGUJCWlkZW0KCTpjaGFuZ2VzCXByaW50IHRoZSBjaGFuZ2UgbGlzdAoJOmtlZXBtYXJrcwlmb2xsb3dpbmcgY29tbWFuZCBrZWVwcyBtYXJrcyB3aGVyZSB0aGV5IGFyZQoJOmtlZXBqdW1wcwlmb2xsb3dpbmcgY29tbWFuZCBrZWVwcyBqdW1wbGlzdCBhbmQgbWFya3MKCTpsb2NrbWFya3MJZm9sbG93aW5nIGNvbW1hbmQga2VlcHMgbWFya3Mgd2hlcmUgdGhleSBhcmUKCTpyZWRyYXdzdGF0dXMJZm9yY2UgYSByZWRyYXcgb2YgdGhlIHN0YXR1cyBsaW5lKHMpCgpOZXcgb3B0aW9uczoKCSdhbnRpYWxpYXMnCU1hYyBPUyBYOiB1c2Ugc21vb3RoLCBhbnRpYWxpYXNlZCBmb250cwoJJ2hlbHBsYW5nJwlwcmVmZXJyZWQgaGVscCBsYW5ndWFnZXMKClN5bnRheCBmaWxlczoKCUFyY2ggaW52ZW50b3J5IChOaWtvbGFpIFdlaWJ1bGwpCglDYWxlbmRhciAoTmlrb2xhaSBXZWlidWxsKQoJQ2ggKFdheW5lIENoZW5nKQoJQ29udHJvbGxhYmxlIFJlZ2V4IE11dGlsYXRvciAoTmlrb2xhaSBXZWlidWxsKQoJRCAoSmFzb24gTWlsbHMpCglEZXNrdG9wIChNaWtvbGFqIE1hY2hvd3NraSkKCURpcmNvbG9ycyAoTmlrb2xhaSBXZWlidWxsKQoJRWxpbmtzIGNvbmZpZ3VyYXRpb24gKE5pa29sYWkgV2VpYnVsbCkKCUZBU00gKFJvbiBBYXJvbikKCUdyQURTIHNjcmlwdHMgKFN0ZWZhbiBGcm9uemVrKQoJSWNld20gbWVudSAoSmFtZXMgTWFobGVyKQoJTERJRiAoWmFrIEpvaG5zb24pCglMb2NhbGUgaW5wdXQsIGZkY2MuIChEd2F5bmUgQmFpbGV5KQoJUGluZm8gY29uZmlnIChOaWtvbGFpIFdlaWJ1bGwpCglQeXJleCAoTWFyY28gQmFyaXNpb25lKQoJUmVsYXggTkcgQ29tcGFjdCAoTmlrb2xhaSBXZWlidWxsKQoJU2xpY2UgKE1vcmVsIEJvZGluKQoJVkFYIE1hY3JvIEFzc2VtYmx5IChUb20gVWlqbGRlcnQpCglncmFkcyAoU3RlZmFuIEZyb256ZWspCglsaWJhbyAoTmlrb2xhaSBXZWlidWxsKQoJbXBsYXllciAoTmlrb2xhaSBXZWlidWxsKQoJcnN0IChOaWtvbGFpIFdlaWJ1bGwpCgl0Y3NoIChHYXV0YW0gSXllcikKCXlhbWwgKE5pa29sYWkgV2VpYnVsbCkKCkNvbXBpbGVyIHBsdWdpbnM6CglBVFQgZG90IChNYXJjb3MgTWFjZWRvKQoJQXBwbGUgUHJvamVjdCBCdWlsZGVyIChBbGV4YW5kZXIgdm9uIEJlbG93KQoJSW50ZWwgKERhdmlkIEhhcnJpc29uKQoJYmRmIChOaWtvbGFpIFdlaWJ1bGwpCglpY2MgKFBldGVyIFB1Y2spCglqYXZhYyAoRG91ZyBLZWFybnMpCgluZWF0byAoTWFyY29zIE1hY2VkbykKCW9uc2dtbHMgKFJvYmVydCBCLiBSb3dzb21lKQoJcGVybCAoQ2hyaXN0aWFuIEouIFJvYmluc29uKQoJcnN0IChOaWtvbGFpIFdlaWJ1bGwpCglzZSAoU21hcnRFaWZmZWwpIChEb3VnIEtlYXJucykKCXRjbCAoRG91ZyBLZWFybnMpCgl4bWx3ZiAoUm9iZXJ0IEIuIFJvd3NvbWUpCgpGaWxldHlwZSBwbHVnaW5zOgoJQWFwIChCcmFtIE1vb2xlbmFhcikKCUNoIChXYXluZSBDaGVuZykKCUNzcyAoTmlrb2xhaSBXZWlidWxsKQoJUHlyZXggKE1hcmNvIEJhcmlzaW9uZSkKCVJzdCAoTmlrb2xhaSBXZWlidWxsKQoKSW5kZW50IHNjcmlwdHM6CglBYXAgKEJyYW0gTW9vbGVuYWFyKQoJQ2ggKFdheW5lIENoZW5nKQoJRG9jQm9vayAoTmlrb2xhaSBXZWlidWxsKQoJTWV0YVBvc3QgKEV1Z2VuZSBNaW5rb3Zza2lpKQoJT2JqZWN0aXZlLUMgKEthenVub2J1IEt1cml5YW1hKQoJUHlyZXggKE1hcmNvIEJhcmlzaW9uZSkKCVJzdCAoTmlrb2xhaSBXZWlidWxsKQoJVGNzaCAoR2F1dGFtIEl5ZXIpCglYRnJlZTg2IGNvbmZpZ3VyYXRpb24gZmlsZSAoTmlrb2xhaSBXZWlidWxsKQoJWnNoIChOaWtvbGFpIFdlaWJ1bGwpCgpLZXltYXBzOgoJR3JlZWsgZm9yIGNwMTI1MyAoUGFuYWdpb3RpcyBMb3VyaWRhcykKCUh1bmdhcmlhbiAoTWFneWFyKSAoTGFzemxvIFphdmFsZXRhKQoJUGVyc2lhbi1JcmFuaWFuIChCZWhuYW0gRXNmYWhib2QpCgpNZXNzYWdlIHRyYW5zbGF0aW9uczoKCUNhdGFsYW4gKEVybmVzdCBBZHJvZ3VlKQoJUnVzc2lhbiAoVmFzc2lseSBSYWdvc2luKQoJU3dlZGlzaCAoSm9oYW4gU3ZlZGJlcmcpCgpNZW51IHRyYW5zbGF0aW9uczoKCUNhdGFsYW4gKEVybmVzdCBBZHJvZ3VlKQoJUnVzc2lhbiAoVGltIEFsZXhlZXZza3kpCglTd2VkaXNoIChKb2hhbiBTdmVkYmVyZykKClR1dG9yIHRyYW5zbGF0aW9uczoKCUNhdGFsYW4gKEVybmVzdCBBZHJvZ3VlKQoJUnVzc2lhbiBpbiBjcDEyNTEgKEFsZXhleSBGcm9sb2ZmKQoJU2xvdmFrIGluIGNwMTI1MCBhbmQgaXNvODg1OS0yIChMdWJvcyBDZWxrbykKCVN3ZWRpc2ggKEpvaGFuIFN2ZWRiZXJnKQoJS29yZWFuIChLZWUtV29uIFNlbykKCVVURi04IHZlcnNpb24gb2YgdGhlIEphcGFuZXNlIHR1dG9yIChZYXN1aGlybyBNYXRzdW1vdG8pIFVzZSB0aGlzIGFzCgkJdGhlIG9yaWdpbmFsLCBjcmVhdGUgdGhlIG90aGVyIEphcGFuZXNlIHR1dG9yIGJ5IGNvbnZlcnNpb24uCgpJbmNsdWRlZCAicnVzc2lhbi50eHQiIGhlbHAgZmlsZS4gKFZhc3NpbHkgUmFnb3NpbikKCkluY2x1ZGUgRW5jYXBzdWxhdGVkIFBvc3RTY3JpcHQgYW5kIFBERiB2ZXJzaW9ucyBvZiB0aGUgVmltIGxvZ28gaW4gdGhlIGV4dHJhCmFyY2hpdmUuCgpUaGUgaGVscCBoaWdobGlnaHRpbmcgZmluZHMgdGhlIGhpZ2hsaWdodCBncm91cHMgYW5kIHNob3dzIHRoZW0gaW4gdGhlIGNvbG9yCnRoYXQgaXMgYWN0dWFsbHkgYmVpbmcgdXNlZC4gKGlkZWEgZnJvbSBZYWtvdiBMZXJuZXIpCgpUaGUgYmlnIFdpbjMyIHZlcnNpb24gaXMgbm93IGNvbXBpbGVkIHdpdGggUnVieSBpbnRlcmZhY2UsIHZlcnNpb24gMS44LiAgRm9yClB5dGhvbiB2ZXJzaW9uIDIuMyBpcyB1c2VkLiAgRm9yIFBlcmwgdmVyc2lvbiA1LjggaXMgdXNlZC4KClRoZSAiZnRkZXRlY3QiIGRpcmVjdG9yeSBpcyBtZW50aW9uZWQgaW4gdGhlIGRvY3VtZW50YXRpb24uICBUaGUgRE9TIGluc3RhbGwKcHJvZ3JhbSBjcmVhdGVzIGl0LgoKCkZpeGVkCQkJCQkJCSpmaXhlZC02LjMqCi0tLS0tCgpUZXN0IDQyIGZhaWxlZCBvbiBNUy1XaW5kb3dzLiAgU2V0IGFuZCByZXNldCAnZmlsZWZvcm1hdCcgYW5kICdiaW5hcnknIG9wdGlvbnMKaGVyZSBhbmQgdGhlcmUuICAoV2FsdGVyIEJyaXNjb2UpCgpUaGUgZXhwbG9yZXIgcGx1Z2luIGRpZG4ndCB3b3JrIGZvciBkb3VibGUtYnl0ZSAnZW5jb2Rpbmcncy4KClVzZSAiY29weSAveSIgaW4gTWFrZV9iYzUubWFrIHRvIGF2b2lkIGEgcHJvbXB0IGZvciBvdmVyd3JpdGluZy4KClBhdGNoIDYuMi4wMDEKUHJvYmxlbTogICAgVGhlICI6c3RvcGluc2VydCIgY29tbWFuZCBkb2Vzbid0IGhhdmUgYSBoZWxwIHRhZy4KU29sdXRpb246ICAgQWRkIHRoZSB0YWcuIChBbnRvaW5lIEouICBNZWNoZWx5bmNrKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2luc2VydC50eHQsIHJ1bnRpbWUvZG9jL3RhZ3MKClBhdGNoIDYuMi4wMDIKUHJvYmxlbTogICAgV2hlbiBjb21waWxlZCB3aXRoIHRoZSArbXVsdGlfYnl0ZSBmZWF0dXJlIGJ1dCB3aXRob3V0ICtldmFsLAoJICAgIGRpc3BsYXlpbmcgVVRGLTggY2hhcmFjdGVycyBtYXkgY2F1c2UgYSBjcmFzaC4gKEthcnN0ZW4gSG9wcCkKU29sdXRpb246ICAgQWxzbyBzZXQgdGhlIGRlZmF1bHQgZm9yICdhbWJpd2lkdGgnIHdoZW4gY29tcGlsZWQgd2l0aG91dCB0aGUKCSAgICArZXZhbCBmZWF0dXJlLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjAwMwpQcm9ibGVtOiAgICBHVEsgMjogZG91YmxlLXdpZGUgY2hhcmFjdGVycyBiZWxvdyAyNTYgYXJlIG5vdCBkaXNwbGF5ZWQKCSAgICBjb3JyZWN0bHkuClNvbHV0aW9uOiAgIENoZWNrIHRoZSBjZWxsIHdpZHRoIGZvciBjaGFyYWN0ZXJzIGFib3ZlIDEyNy4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjIuMDA0ClByb2JsZW06ICAgIFdpdGggYSBsaW5lLVZpc3VhbCBzZWxlY3Rpb24gYXQgdGhlIGVuZCBvZiB0aGUgZmlsZSBhICJwIiBjb21tYW5kCgkgICAgcHV0cyB0aGUgdGV4dCBvbmUgbGluZSB1cHdhcmRzLgpTb2x1dGlvbjogICBEZXRlY3QgdGhhdCB0aGUgbGFzdCBsaW5lIHdhcyBkZWxldGVkIGFuZCBwdXQgZm9yd2FyZC4gKFRhcm8KCSAgICBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjAwNQpQcm9ibGVtOiAgICBHVEs6IHRoZSAiRmluZCIgYW5kICJGaW5kIGFuZCBSZXBsYWNlIiB0b29scyBkb24ndCB3b3JrLiAoQXNjaHdpbgoJICAgIE1hcnNtYW4pClNvbHV0aW9uOiAgIFNob3cgdGhlIGRpYWxvZyBhZnRlciBjcmVhdGluZyBpdC4gIChEYXZpZCBOZWNhcykKRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jCgpQYXRjaCA2LjIuMDA2ClByb2JsZW06ICAgIFRoZSBOZXRiZWFucyBjb2RlIGNvbnRhaW5zIGFuIG9ic29sZXRlIGZ1bmN0aW9uIHRoYXQgdXNlcyAidmltNjEiCgkgICAgYW5kIHNldHMgdGhlIGZhbGwtYmFjayB2YWx1ZSBmb3IgJFZJTVJVTlRJTUUuClNvbHV0aW9uOiAgIERlbGV0ZSB0aGUgb2Jzb2xldGUgZnVuY3Rpb24uCkZpbGVzOgkgICAgc3JjL21haW4uYywgc3JjL25ldGJlYW5zLmMsIHNyYy9wcm90by9uZXRiZWFucy5wcm8KClBhdGNoIDYuMi4wMDcKUHJvYmxlbTogICAgTGlzdGluZyB0YWdzIGZvciBDc2NvcGUgZG9lc24ndCBhbHdheXMgd29yay4KU29sdXRpb246ICAgQXZvaWQgdXNpbmcgc21nc19hdHRyKCkuIChTZXJnZXkgS2hvcmV2KQpGaWxlczoJICAgIHNyYy9pZl9jc2NvcGUuYwoKUGF0Y2ggNi4yLjAwOApQcm9ibGVtOiAgICBYSU0gd2l0aCBHVEsgMjogQWZ0ZXIgYmFja3NwYWNpbmcgcHJlZWRpdCBjaGFyYWN0ZXJzIGFyZSB3cm9uZy4KU29sdXRpb246ICAgUmVzZXQgdGhlIGN1cnNvciBwb3NpdGlvbi4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjAwOQpQcm9ibGVtOiAgICBXaW4zMjogVGhlIHNlbGYtaW5zdGFsbGluZyBleGVjdXRhYmxlICJGdWxsIiBzZWxlY3Rpb24gb25seQoJICAgIHNlbGVjdHMgc29tZSBvZiB0aGUgaXRlbXMgdG8gaW5zdGFsbC4gKFNhbG1hbiBNb2hzaW4pClNvbHV0aW9uOiAgIENoYW5nZSBjb21tYXMgdG8gc3BhY2VzIGluIGJldHdlZW4gc2VjdGlvbiBudW1iZXJzLgpGaWxlczoJICAgIG5zaXMvZ3ZpbS5uc2kKClBhdGNoIDYuMi4wMTAKUHJvYmxlbTogICAgV2hlbiAndmlydHVhbGVkaXQnIGlzIGVmZmVjdGl2ZSBhbmQgYSBsaW5lIHN0YXJ0cyB3aXRoIGEKCSAgICBtdWx0aS1ieXRlIGNoYXJhY3RlciwgbW92aW5nIHRoZSBjdXJzb3IgcmlnaHQgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBPYnRhaW4gdGhlIHJpZ2h0IGNoYXJhY3RlciB0byBjb21wdXRlIHRoZSBjb2x1bW4gb2Zmc2V0LiAoVGFybwoJICAgIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYwoKUGF0Y2ggNi4yLjAxMQpQcm9ibGVtOiAgICBBbHBoYSBPU0YxOiBzdGF0KCkgaXMgYSBtYWNybyBhbmQgZG9lc24ndCBhbGxvdyBhbiAjaWZkZWYgaGFsZndheS4KCSAgICAoTW9zaGUgS2FtaW5za3kpClNvbHV0aW9uOiAgIE1vdmUgdGhlICNpZmRlZiBvdXRzaWRlIG9mIHN0YXQoKS4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMDEyClByb2JsZW06ICAgIE1heSBoYW5nIHdoZW4gcG9sbGluZyBmb3IgYSBjaGFyYWN0ZXIuClNvbHV0aW9uOiAgIEJyZWFrIHRoZSB3YWl0IGxvb3Agd2hlbiBub3Qgd2FpdGluZyBmb3IgYSBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjAxMyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgcmVnaXN0cnkga2V5IGZvciB1bmluc3RhbGxpbmcgR3ZpbUV4dCBzdGlsbCB1c2VzICI2LjEiLgpTb2x1dGlvbjogICBDaGFuZ2UgdGhlIHZlcnNpb24gbnVtYmVyIHRvICI2LjIiLiAoQWppdCBUaGFra2FyKQpGaWxlczoJICAgIHNyYy9HdmltRXh0L0d2aW1FeHQucmVnCgpQYXRjaCA2LjIuMDE0IChhZnRlciA2LjIuMDEyKQpQcm9ibGVtOiAgICBYU01QIGRvZXNuJ3Qgd29yayB3aGVuIHVzaW5nIHBvbGwoKS4KU29sdXRpb246ICAgVXNlIHhzbXBfaWR4IGluc3RlYWQgb2YgZ3BtX2lkeC4gKE5laWwgQmlyZCkKRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMDE1ClByb2JsZW06ICAgIFRoZSAreHNtcCBmZWF0dXJlIGlzIG5ldmVyIGVuYWJsZWQuClNvbHV0aW9uOiAgIE1vdmUgdGhlICNkZWZpbmUgZm9yIFVTRV9YU01QIHRvIGJlbG93IHdoZXJlIFdBTlRfWDExIGlzIGRlZmluZWQuCgkgICAgKEFsZXhleSBGcm9sb2ZmKQpGaWxlczoJICAgIHNyYy9mZWF0dXJlLmgKClBhdGNoIDYuMi4wMTYKUHJvYmxlbTogICAgVXNpbmcgIjpzY3Njb3BlIGZpbmQiIHdpdGggJ2NzY29wZXF1aWNrZml4JyBkb2VzIG5vdCBhbHdheXMgc3BsaXQKCSAgICB0aGUgd2luZG93LiAoR2FyeSBKb2huc29uKQoJICAgIFdpbjMyOiAiOmNzY29wZSBhZGQiIGNvdWxkIG1ha2UgdGhlIHNjcmlwdCB0aGF0IGNvbnRhaW5zIGl0CgkgICAgcmVhZC1vbmx5IHVudGlsIHRoZSBjb3JyZXNwb25kaW5nICI6Y3Njb3BlIGtpbGwiLgoJICAgIEVycm9ycyBkdXJpbmcgIjpjc2NvcGUgYWRkIiBtYXkgbm90IGJlIGhhbmRsZWQgcHJvcGVybHkuClNvbHV0aW9uOiAgIFdoZW4gdXNpbmcgdGhlIHF1aWNrZml4IHdpbmRvdyBtYXkgbmVlZCB0byBzcGxpdCB0aGUgd2luZG93LgoJICAgIEF2b2lkIGZpbGUgaGFuZGxlIGluaGVyaXRhbmNlIGZvciB0aGUgc2NyaXB0LgoJICAgIENoZWNrIGZvciBhIGZhaWxlZCBjb25uZWN0aW9uIGFuZC9vciBwcm9jZXNzLiAgKFNlcmdleSBLaG9yZXYpCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMsIHNyYy9pZl9jc2NvcGUuYwoKUGF0Y2ggNi4yLjAxNwpQcm9ibGVtOiAgICBUZXN0MTEgc29tZXRpbWVzIHByb21wdHMgdGhlIHVzZXIsIGJlY2F1c2UgYSBmaWxlIHdvdWxkIGhhdmUgYmVlbgoJICAgIGNoYW5nZWQgb3V0c2lkZSBvZiBWaW0uIChBbnRvbmlvIENvbG9tYm8pClNvbHV0aW9uOiAgIEFkZCBhIEZpbGVDaGFuZ2VkU2hlbGwgYXV0b2NvbW1hbmQgdG8gYXZvaWQgdGhlIHByb21wdC4KRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0MTEuaW4KClBhdGNoIDYuMi4wMTgKUHJvYmxlbTogICAgV2hlbiB1c2luZyB0aGUgWFNNUCBwcm90b2NvbCBhbmQgcmVhZGluZyBmcm9tIHN0ZGluIFZpbSBtYXkgd2FpdAoJICAgIGZvciBhIGtleSB0byBiZSBwcmVzc2VkLgpTb2x1dGlvbjogICBBdm9pZCB0aGF0IFJlYWxXYWl0Rm9yQ2hhcigpIGlzIHVzZWQgcmVjdXJzaXZlbHkuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjAxOSAobGFuZykKUHJvYmxlbTogICAgTG9hZGluZyB0aGUgUG9ydHVndWVzZSBtZW51IGNhdXNlcyBhbiBlcnJvciBtZXNzYWdlLgpTb2x1dGlvbjogICBKb2luIHR3byBsaW5lcy4gIChKb3NlIFBlZHJvIE9saXZlaXJhLCBKb3PpIGRlIFBhdWxhKQpGaWxlczoJICAgIHJ1bnRpbWUvbGFuZy9tZW51X3B0X2JyLnZpbQoKUGF0Y2ggNi4yLjAyMApQcm9ibGVtOiAgICBUaGUgIlN5bnRheC9TZXQgc3ludGF4IG9ubHkiIG1lbnUgaXRlbSBjYXVzZXMgYW4gZXJyb3IgbWVzc2FnZS4KCSAgICAoT3l2aW5kIEhvbG0pClNvbHV0aW9uOiAgIFNldCB0aGUgc2NyaXB0LWxvY2FsIHZhcmlhYmxlIGluIGEgZnVuY3Rpb24uIChCZW5qaSBGaXNoZXIpCkZpbGVzOgkgICAgcnVudGltZS9zeW5tZW51LnZpbQoKUGF0Y2ggNi4yLjAyMQpQcm9ibGVtOiAgICBUaGUgdXNlciBtYW51YWwgc2VjdGlvbiBvbiBleGNlcHRpb25zIGNvbnRhaW5zIHNtYWxsIG1pc3Rha2VzLgpTb2x1dGlvbjogICBHaXZlIGEgZ29vZCBleGFtcGxlIG9mIGFuIGVycm9yIHRoYXQgY291bGQgYmUgbWlzc2VkIGFuZCBvdGhlcgoJICAgIGltcHJvdmVtZW50cy4gKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgcnVudGltZS9kb2MvdXNyXzQxLnR4dAoKUGF0Y2ggNi4yLjAyMiAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBBZnRlciBkZWxldGluZyBhIG1lbnUgaXRlbSBpdCBzdGlsbCBhcHBlYXJzIGluIGEgdGVhci1vZmYKCSAgICB3aW5kb3cuClNvbHV0aW9uOiAgIFNldCB0aGUgbW9kZSB0byB6ZXJvIGZvciB0aGUgZGVsZXRlZCBpdGVtLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuMi4wMjMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogTWFrZV9pdmMubWFrIGRvZXMgbm90IGNsZWFuIGV2ZXJ5dGhpbmcuClNvbHV0aW9uOiAgIERlbGV0ZSBtb3JlIGZpbGVzIGluIHRoZSBjbGVhbiBydWxlLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL01ha2VfaXZjLm1hawoKUGF0Y2ggNi4yLjAyNCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBDb21waWxlciB3YXJuaW5ncyBmb3IgdHlwZWNhc3RzLgpTb2x1dGlvbjogICBVc2UgRFdPUkQgaW5zdGVhZCBvZiBXT1JELiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4yLjAyNQpQcm9ibGVtOiAgICBNaXNzaW5nIHByb3RvdHlwZSBmb3Igc2lnYWx0c3RhY2soKS4KU29sdXRpb246ICAgQWRkIHRoZSBwcm90b3R5cGUgd2hlbiBpdCBpcyBub3QgZm91bmQgaW4gYSBoZWFkZXIgZmlsZS4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMDI2ClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIHV0aW1lcygpIGFyZ3VtZW50LgpTb2x1dGlvbjogICBBZGQgYSB0eXBlY2FzdC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi4wMjcKUHJvYmxlbTogICAgV2FybmluZyBmb3IgdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KU29sdXRpb246ICAgU2V0IG1iX2wgdG8gb25lIHdoZW4gbm90IHVzaW5nIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjIuMDI4ClByb2JsZW06ICAgIENzY29wZSBjb25uZWN0aW9uIG1heSBraWxsIFZpbSBwcm9jZXNzIGFuZCBvdGhlcnMuClNvbHV0aW9uOiAgIENoZWNrIGZvciBwaWQgYmVpbmcgbGFyZ2VyIHRoYW4gb25lLiAoS2hvcmV2IFNlcmdleSkKRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKClBhdGNoIDYuMi4wMjkKUHJvYmxlbTogICAgV2hlbiB1c2luZyB0aGUgcmVtb3RlIHNlcnZlciBmdW5jdGlvbmFsaXR5IFZpbSBtYXkgbGVhayBtZW1vcnkuCgkgICAgKFNyaWthbnRoIFNhbmthcmFuKQpTb2x1dGlvbjogICBGcmVlIHRoZSByZXN1bHQgb2YgWExpc3RQcm9wZXJ0aWVzKCkuCkZpbGVzOgkgICAgc3JjL2lmX3hjbWRzcnYuYwoKUGF0Y2ggNi4yLjAzMApQcm9ibGVtOiAgICBNYWM6IFdhcm5pbmcgZm9yIG5vdCBiZWluZyBhYmxlIHRvIHVzZSBwcmVjb21waWxlZCBoZWFkZXIgZmlsZXMuClNvbHV0aW9uOiAgIERvbid0IHJlZGVmaW5lIHNlbGVjdC4gIFVzZSAtbm8tY3BwLXByZWNvbXAgZm9yIGNvbXBpbGluZywgc28gdGhhdAoJICAgIGZ1bmN0aW9uIHByb3RvdHlwZXMgYXJlIHN0aWxsIGZvdW5kLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMsIHNyYy9vc2RlZi5zaAoKUGF0Y2ggNi4yLjAzMQpQcm9ibGVtOiAgICBUaGUgbGFuZ21lbnUgZW50cnkgaW4gdGhlIG9wdGlvbnMgd2luZG93IGRvZXNuJ3Qgd29yay4gKFJvZG9sZm8KCSAgICBMaW1hKQoJICAgIFdpdGggR1RLIDEgdGhlICI6b3B0aW9ucyIgY29tbWFuZCBjYXVzZXMgYW4gZXJyb3IgbWVzc2FnZS4KCSAgICAoTWljaGFlbCBOYXVtYW5uKQpTb2x1dGlvbjogICBDaGFuZ2UgImxtZW51IiB0byAibGFuZ21lbnUiLiAgT25seSBkaXNwbGF5IHRoZSAndGJpcycgb3B0aW9uIGZvcgoJICAgIEdUSyAyLgpGaWxlczoJICAgIHJ1bnRpbWUvb3B0d2luLnZpbQoKUGF0Y2ggNi4yLjAzMgpQcm9ibGVtOiAgICBUaGUgbHBjIGZpbGV0eXBlIGlzIG5ldmVyIHJlY29nbml6ZWQuIChTaGl6aHUgUGFuKQpTb2x1dGlvbjogICBDaGVjayBmb3IgZzpscGNfc3ludGF4X2Zvcl9jIGluc3RlYWQgb2YgdGhlIGxvY2FsIHZhcmlhYmxlCgkgICAgbHBjX3N5bnRheF9mb3JfYy4gKEJlbmppIEZpc2hlcikKRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbQoKUGF0Y2ggNi4yLjAzMyAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogVmFyaW91cyBjb21waWxlciB3YXJuaW5ncy4KU29sdXRpb246ICAgRG9uJ3QgaW5jbHVkZSBDbGFzc2ljLW9ubHkgaGVhZGVycyBpbiBVbml4IHZlcnNpb24uCgkgICAgUmVtb3ZlIHJlZmVyZW5jZXMgdG8gc2V2ZXJhbCB1bnVzZWQgdmFyaWFibGVzLiAoQmVuIEZvd2xlcikKCSAgICBGaXggZG91YmxlIGRlZmluaXRpb24gb2YgREVGQVVMVF9URVJNLgoJICAgIFVzZSBpbnQgaW5zdGVhZCBvZiB1bnNpZ25lZCBzaG9ydCBmb3IgcGl4ZWwgdmFsdWVzLCBzbyB0aGF0IHRoZQoJICAgIG5lZ2F0aXZlIGVycm9yIHZhbHVlcyBhcmUgcmVjb2duaXplZC4KRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jLCBzcmMvdGVybS5jCgpQYXRjaCA2LjIuMDM0ClByb2JsZW06ICAgIE1hYzogQ29tcGlsZXIgd2FybmluZyBmb3IgcmVkZWZpbmluZyBERUZBVUxUX1RFUk0uClNvbHV0aW9uOiAgIEZpeCBkb3VibGUgZGVmaW5pdGlvbiBvZiBERUZBVUxUX1RFUk0uCkZpbGVzOgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4yLjAzNQpQcm9ibGVtOiAgICBNYWM6IENvbXBpbGVyIHdhcm5pbmdzIGluIFB5dGhvbiBpbnRlcmZhY2UuClNvbHV0aW9uOiAgIE1ha2UgYSBkaWZmZXJlbmNlIGJldHdlZW4gcHVyZSBNYWMgYW5kIFVuaXgtTWFjLiAoUGV0ZXIgQ3Vja2EpCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMDM2IChleHRyYSkKUHJvYmxlbTogICAgTWFjIFVuaXggdmVyc2lvbjogSWYgZm9vIGlzIGEgZGlyZWN0b3J5LCB0aGVuICI6ZSBmPFRhYj4iIHNob3VsZAoJICAgIGV4cGFuZCB0byAiOmUgZm9vLyIgaW5zdGVhZCBvZiAiOmUgZm9vIiAuICAoVmFkaW0gWmVpdGxpbikKU29sdXRpb246ICAgRGVmaW5lIERPTlRfQUREX1BBVEhTRVBfVE9fRElSIG9ubHkgZm9yIHB1cmUgTWFjLiAoQmVuamkgRmlzaGVyKQpGaWxlczoJICAgIHNyYy9vc19tYWMuaAoKUGF0Y2ggNi4yLjAzNwpQcm9ibGVtOiAgICBXaW4zMjogY29udmVydGluZyBhbiBlbmNvZGluZyBuYW1lIHRvIGEgY29kZXBhZ2UgY291bGQgcmVzdWx0IGluCgkgICAgYW4gYXJiaXRyYXJ5IG51bWJlci4KU29sdXRpb246ICAgbWFrZSBlbmNuYW1lMmNvZGVwYWdlKCkgcmV0dXJuIHplcm8gaWYgdGhlIGVuY29kaW5nIG5hbWUgZG9lc24ndAoJICAgIGNvbnRhaW4gYSBjb2RlcGFnZSBudW1iZXIuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMi4wMzggKGV4dHJhKQpQcm9ibGVtOiAgICBXYXJuaW5nIG1lc3NhZ2VzIHdoZW4gdXNpbmcgdGhlIE1pbmdXIGNvbXBpbGVyLiAoQmlsbCBNY0NhcnRoeSkKCSAgICBDYW4ndCBjb21waWxlIGNvbnNvbGUgdmVyc2lvbiB3aXRob3V0ICttb3VzZSBmZWF0dXJlLgpTb2x1dGlvbjogICBJbml0aWFsaXplIHZhcmlhYmxlcywgYWRkIHBhcmVudGhlc2lzLgoJICAgIEFkZCBhbiAjaWZkZWYgYXJvdW5kIGdfbk1vdXNlQ2xpY2suIChBaml0IFRoYWtrYXIpCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL29zX3dpbjMyLmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9kb3NpbnN0LmMKClBhdGNoIDYuMi4wMzkgKGV4dHJhKQpQcm9ibGVtOiAgICBNb3JlIHdhcm5pbmcgbWVzc2FnZXMgd2hlbiB1c2luZyB0aGUgTWluZ1cgY29tcGlsZXIuClNvbHV0aW9uOiAgIEluaXRpYWxpemUgdmFyaWFibGVzLiAoQmlsbCBNY0NhcnRoeSkKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4yLjA0MApQcm9ibGVtOiAgICBGcmVlQlNEOiBDcmFzaCB3aGlsZSBzdGFydGluZyB1cCB3aGVuIGNvbXBpbGVkIHdpdGggK3hzbXAgZmVhdHVyZS4KU29sdXRpb246ICAgUGFzcyBhIG5vbi1OVUxMIGFyZ3VtZW50IHRvIEljZUFkZENvbm5lY3Rpb25XYXRjaCgpLgpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMi4wNDEgKGV4dHJhLCBhZnRlciA2LjIuMDMzKQpQcm9ibGVtOiAgICBNYWM6IENvbXBpbGVyIHdhcm5pbmdzIGZvciBjb252ZXJzaW9uIHR5cGVzLCBtaXNzaW5nIHByb3RvdHlwZSwKCSAgICBtaXNzaW5nIHJldHVybiB0eXBlLgpTb2x1dGlvbjogICBDaGFuZ2Ugc3NjYW5mICIlaGQiIHRvICIlZCIsIHRoZSBhcmd1bWVudCBpcyBhbiBpbnQgbm93LiAgQWRkCgkgICAgZ3VpX21jaF9pbml0X2NoZWNrKCkgcHJvdG90eXBlLiAgQWRkICJpbnQiIHRvIHRlcm1saWIgZnVuY3Rpb25zLgpGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMsIHNyYy9wcm90by9ndWlfbWFjLnBybywgc3JjL3Rlcm1saWIuYy4KClBhdGNoIDYuMi4wNDIgKGV4dHJhKQpQcm9ibGVtOiAgICBDeWd3aW46IGdjYyAzLjIgaGFzIGFuIG9wdGltaXplciBwcm9ibGVtLCBzb21ldGltZXMgY2F1c2luZyBhCgkgICAgY3Jhc2guClNvbHV0aW9uOiAgIEFkZCAtZm5vLXN0cmVuZ3RoLXJlZHVjZSB0byB0aGUgY29tcGlsZXIgYXJndW1lbnRzLiAoRGFuIFNoYXJwKQpGaWxlczoJICAgIHNyYy9NYWtlX2N5Zy5tYWsKClBhdGNoIDYuMi4wNDMKUHJvYmxlbTogICAgQ29tcGlsaW5nIHdpdGggYm90aCBuZXRiZWFucyBhbmQgd29ya3Nob3AgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBNb3ZlIHRoZSBzaGVsbFJlY3RhbmdsZSgpIGZ1bmN0aW9uIHRvIGd1aV94MTEuYy4gKEdvcmRvbiBQcmlldXIpCkZpbGVzOgkgICAgc3JjL2d1aV94MTEuYywgc3JjL2ludGVncmF0aW9uLmMsIHNyYy9uZXRiZWFucy5jLAoJICAgIHNyYy9wcm90by9uZXRiZWFucy5wcm8KClBhdGNoIDYuMi4wNDQKUHJvYmxlbTogICAgIjphdSBmaWxldHlwZWRldGVjdCIgZ2l2ZXMgYW4gZXJyb3IgZm9yIGEgbm9uLWV4aXN0aW5nIGV2ZW50IG5hbWUsCgkgICAgYnV0IGl0J3MgYWN0dWFsbHkgYSBub24tZXhpc3RpbmcgZ3JvdXAgbmFtZS4gKEFudG9pbmUgTWVjaGVseW5jaykKU29sdXRpb246ICAgTWFrZSB0aGUgZXJyb3IgbWVzc2FnZSBjbGVhcmVyLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4yLjA0NQpQcm9ibGVtOiAgICBPYnRhaW5pbmcgdGhlICcoIG1hcmsgY2hhbmdlcyB0aGUgJycgbWFyay4gKEdhcnkgSG9sbG93YXkpClNvbHV0aW9uOiAgIERvbid0IHNldCB0aGUgJycgbWFyayB3aGVuIHNlYXJjaGluZyBmb3IgdGhlIHN0YXJ0L2VuZCBvZiB0aGUKCSAgICBjdXJyZW50IHNlbnRlbmNlL3BhcmFncmFwaC4KRmlsZXM6CSAgICBzcmMvbWFyay5jCgpQYXRjaCA2LjIuMDQ2ClByb2JsZW06ICAgIFdoZW4gZXZhbHVhdGluZyBhbiBhcmd1bWVudCBvZiBhIGZ1bmN0aW9uIHRocm93cyBhbiBleGNlcHRpb24gdGhlCgkgICAgZnVuY3Rpb24gaXMgc3RpbGwgY2FsbGVkLiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIERvbid0IGNhbGwgdGhlIGZ1bmN0aW9uIHdoZW4gYW4gZXhjZXB0aW9uIHdhcyB0aHJvd24uCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjA0NyAoZXh0cmEpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIHdoZW4gdXNpbmcgTWluZ1cuIChCaWxsIE1jQ2FydGh5KQpTb2x1dGlvbjogICBHaXZlIHRoZSBzX2R3TGFzdENsaWNrVGltZSB2YXJpYWJsZSBhIHR5cGUuICBJbml0aWFsaXplIGR3RW5kVGltZS4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjA0OApQcm9ibGVtOiAgICBUaGUgUHl0aG9uIGludGVyZmFjZSBkb2Vzbid0IGNvbXBpbGUgd2l0aCBQeXRob24gMi4zIHdoZW4KCSAgICBkeW5hbWljYWxseSBsb2FkZWQuClNvbHV0aW9uOiAgIFVzZSBkbGxfUHlPYmplY3RfTWFsbG9jIGFuZCBkbGxfUHlPYmplY3RfRnJlZS4gKFBhdWwgTW9vcmUpCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMDQ5ClByb2JsZW06ICAgIFVzaW5nIGEgIi1yYW5nZT0iIGFyZ3VtZW50IHdpdGggIjpjb21tYW5kIiBkb2Vzbid0IHdvcmsgYW5kCgkgICAgZG9lc24ndCBnZW5lcmF0ZSBhbiBlcnJvciBtZXNzYWdlLgpTb2x1dGlvbjogICBHZW5lcmF0ZSBhbiBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMDUwClByb2JsZW06ICAgIFRlc3QgMzIgZGlkbid0IHdvcmsgb24gTVMtV2luZG93cy4KU29sdXRpb246ICAgV3JpdGUgdGhlIHRlbXAgZmlsZSBpbiBVbml4IGZpbGVmb3JtYXQuIChXYWx0ZXIgQnJpc2NvZSkKRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0MzIuaW4KClBhdGNoIDYuMi4wNTEKUHJvYmxlbTogICAgV2hlbiB1c2luZyAiXD1zdWJtYXRjaCgwKSIgaW4gYSAiOnMiIGNvbW1hbmQsIGxpbmUgYnJlYWtzIGJlY29tZQoJICAgIE5VTCBjaGFyYWN0ZXJzLgpTb2x1dGlvbjogICBDaGFuZ2UgTkwgdG8gQ1IgY2hhcmFjdGVycywgc28gdGhhdCB0aGV5IGJlY29tZSBsaW5lIGJyZWFrcy4KRmlsZXM6CSAgICBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMi4wNTIKUHJvYmxlbTogICAgQSBmZXcgbWVzc2FnZXMgYXJlIG5vdCB0cmFuc2xhdGVkLgpTb2x1dGlvbjogICBBZGQgXygpIHRvIHRoZSBtZXNzYWdlcy4gKE11cmFva2EgVGFybykKRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjIuMDUzClByb2JsZW06ICAgIFByb3RvdHlwZSBmb3IgYnplcm8oKSBkb2Vzbid0IG1hdGNoIG1vc3Qgc3lzdGVtcy4KU29sdXRpb246ICAgVXNlICJ2b2lkICoiIGluc3RlYWQgb2YgImNoYXIgKiIgYW5kICJzaXplX3QiIGluc3RlYWQgb2YgImludCIuCkZpbGVzOgkgICAgc3JjL29zZGVmMS5oLmluCgpQYXRjaCA2LjIuMDU0ClByb2JsZW06ICAgIEEgZG91YmxlLWJ5dGUgY2hhcmFjdGVyIHdpdGggYSBzZWNvbmQgYnl0ZSB0aGF0IGlzIGEgYmFja3NsYXNoCgkgICAgY2F1c2VzIHByb2JsZW1zIGluc2lkZSBhIHN0cmluZy4KU29sdXRpb246ICAgU2tpcCBvdmVyIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBpbiBhIHN0cmluZyBwcm9wZXJseS4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4wNTUKUHJvYmxlbTogICAgVXNpbmcgY29sKCcuJykgZnJvbSBDVFJMLU8gaW4gSW5zZXJ0IG1vZGUgZG9lcyBub3QgcmV0dXJuIHRoZQoJICAgIGNvcnJlY3QgdmFsdWUgZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4KU29sdXRpb246ICAgQ29ycmVjdCB0aGUgY3Vyc29yIHBvc2l0aW9uIHdoZW4gaXQgaXMgbmVjZXNzYXJ5LCBtb3ZlIHRvIHRoZQoJICAgIGZpcnN0IGJ5dGUgb2YgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlci4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjIuMDU2IChleHRyYSkKUHJvYmxlbTogICAgQnVpbGRpbmcgd2l0aCBTbmlmZisrIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgVXNlIHRoZSBtdWx0aS10aHJlYWRlZCBsaWJjIHdoZW4gbmVlZGVkLiAoSG9sZ2VyIERpdHRpbmcpCkZpbGVzOgkgICAgc3JjL01ha2VfbXZjLm1hawoKUGF0Y2ggNi4yLjA1NyAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogV2l0aCAtRE1BQ09TX1ggcHV0ZW52KCkgaXMgZGVmaW5lZCB0d2ljZSwgaXQgaXMgaW4gYSBzeXN0ZW0KCSAgICBsaWJyYXJ5LiAgR2V0IGEgd2FybmluZyBmb3IgcmVkZWZpbmluZyBPSy4gIFVudXNlZCB2YXJpYWJsZXMgaW4KCSAgICBvc19tYWMuYwpTb2x1dGlvbjogICBEZWZpbmUgSEFWRV9QVVRFTlYuICBVbmRlZmluZSBPSyBhZnRlciBpbmNsdWRpbmcgY3Vyc2VzLmguCgkgICAgUmVtb3ZlIGRlY2xhcmF0aW9ucyBmb3IgdW51c2VkIHZhcmlhYmxlcy4KRmlsZXM6CSAgICBzcmMvb3NfbWFjLmMsIHNyYy9vc19tYWMuaCwgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMDU4ClByb2JsZW06ICAgIFdoZW4gJ2F1dG9jaGRpcicgaXMgc2V0ICI6Ym5leHQiIHRvIGEgYnVmZmVyIHdpdGhvdXQgYSBuYW1lIGNhdXNlcwoJICAgIGEgY3Jhc2guClNvbHV0aW9uOiAgIERvbid0IGNhbGwgdmltX2NoZGlyZmlsZSgpIHdoZW4gdGhlIGZpbGUgbmFtZSBpcyBOVUxMLiAoVGFybwoJICAgIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjIuMDU5ClByb2JsZW06ICAgIFdoZW4gJ3Njcm9sbG9mZicgaXMgYSBsYXJnZSBudW1iZXIgYW5kIGxpc3RpbmcgY29tcGxldGlvbiByZXN1bHRzCgkgICAgb24gdGhlIGNvbW1hbmQgbGluZSwgdGhlbiBleGVjdXRpbmcgYSBjb21tYW5kIHRoYXQganVtcHMgY2xvc2UgdG8KCSAgICB3aGVyZSB0aGUgY3Vyc29yIHdhcyBiZWZvcmUsIHBhcnQgb2YgdGhlIHNjcmVlbiBpcyBub3QgdXBkYXRlZC4KCSAgICAoWWFrb3YgTGVybmVyKQpTb2x1dGlvbjogICBEb24ndCBza2lwIHJlZHJhd2luZyBwYXJ0IG9mIHRoZSB3aW5kb3cgd2hlbiBpdCB3YXMgc2Nyb2xsZWQuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuMDYwIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gJ2VuY29kaW5nJyBpcyBzZXQgdG8gImlzby04ODU5LTciIGNvcHkvcGFzdGUgdG8vZnJvbQoJICAgIHRoZSBjbGlwYm9hcmQgZ2l2ZXMgYSBsYWxsb2MoMCkgZXJyb3IuIChLcml0b24gS3lyaW1pcykKU29sdXRpb246ICAgV2hlbiB0aGUgc3RyaW5nIGxlbmd0aCBpcyB6ZXJvIGFsbG9jYXRlIG9uZSBieXRlLiAgQWxzbyBmaXggdGhhdAoJICAgIHdoZW4gdGhlIGxlbmd0aCBvZiB0aGUgVW5pY29kZSB0ZXh0IGlzIHplcm8gKGNvbnZlcnNpb24gZnJvbQoJICAgICdlbmNvZGluZycgdG8gVUNTLTIgd2FzIG5vdCBwb3NzaWJsZSkgdGhlIG5vcm1hbCB0ZXh0IGlzIHVzZWQuCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMi4wNjEKUHJvYmxlbTogICAgR1VJOiBVc2luZyB0aGUgbGVmdCBtb3VzZSBidXR0b24gd2l0aCB0aGUgc2hpZnQga2V5IHNob3VsZCB3b3JrCgkgICAgbGlrZSAiKiIgYnV0IGl0IHNjcm9sbHMgaW5zdGVhZC4gKE1hcnRpbiBCZWxsZXIpClNvbHV0aW9uOiAgIERvbid0IHJlY29nbml6ZSBhbiByeHZ0IHNjcm9sbCB3aGVlbCBldmVudCB3aGVuIHVzaW5nIHRoZSBHVUkuCkZpbGVzOgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4yLjA2MgpQcm9ibGVtOiAgICBXaGVuIG9uZSBidWZmZXIgdXNlcyBhIHN5bnRheCB3aXRoICJjb250YWluZWRpbiIgYW5kIGFub3RoZXIKCSAgICBidWZmZXIgZG9lcyBub3QsIHJlZHJhd2luZyBkZXBlbmRzIG9uIHdoYXQgdGhlIGN1cnJlbnQgYnVmZmVyIGlzLgoJICAgIChCcmV0dCBQZXJzaGluZyBTdGFobG1hbikKU29sdXRpb246ICAgVXNlICJzeW5fYnVmIiBpbnN0ZWFkIG9mICJjdXJidWYiIHRvIGdldCB0aGUgYl9zeW5fY29udGFpbmVkaW4KCSAgICBmbGFnLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4yLjA2MwpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGN1c3RvbSBjb21wbGV0aW9uIGVuZCB1cCB3aXRoIG5vIG1hdGNoZXMuClNvbHV0aW9uOiAgIE1ha2UgY21kX251bWZpbGVzIGFuZCBjbWRfZmlsZXMgbG9jYWwgdG8gY29tcGxldGlvbiB0byBhdm9pZCB0aGF0CgkgICAgdGhleSBhcmUgb3ZlcndyaXR0ZW4gd2hlbiBFeHBhbmRPbmUoKSBpcyBjYWxsZWQgcmVjdXJzaXZlbHkgYnkKCSAgICBmX2dsb2IoKS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9wcm90by9leF9nZXRsbi5wcm8sCgkgICAgc3JjL21pc2MxLmMsIHNyYy9zdHJ1Y3RzLmgsIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjA2NApQcm9ibGVtOiAgICByZXNvbHZlKCkgb25seSBoYW5kbGVzIG9uZSBzeW1ib2xpYyBsaW5rLCBuZWVkIHRvIHJlcGVhdCBpdCB0bwoJICAgIHJlc29sdmUgYWxsIG9mIHRoZW0uICBUaGVuIG5lZWQgdG8gc2ltcGxpZnkgdGhlIGZpbGUgbmFtZS4KU29sdXRpb246ICAgTWFrZSByZXNvbHZlKCkgcmVzb2x2ZSBhbGwgc3ltYm9saWMgbGlua3MgYW5kIHNpbXBsaWZ5IHRoZSByZXN1bHQuCgkgICAgQWRkIHNpbXBsaWZ5KCkgdG8ganVzdCBzaW1wbGlmeSBhIGZpbGUgbmFtZS4gIEZpeCB0aGF0IHRlc3Q0OQoJICAgIGRvZXNuJ3Qgd29yayBpZiAvdG1wIGlzIGEgc3ltYm9saWMgbGluay4gIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvZXZhbC5jLCBzcmMvdGFnLmMsCgkgICAgc3JjL3Rlc3RkaXIvdGVzdDQ5LnZpbQoKUGF0Y2ggNi4yLjA2NQpQcm9ibGVtOiAgICAiOndpbmRvIDEyMyIgb25seSB1cGRhdGVzIG90aGVyIHdpbmRvd3Mgd2hlbiBlbnRlcmluZyB0aGVtLgoJICAgIChXYWx0ZXIgQnJpc2NvZSkKU29sdXRpb246ICAgVXBkYXRlIHRoZSB0b3BsaW5lIGJlZm9yZSBnb2luZyB0byB0aGUgbmV4dCB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMi4wNjYgKGV4dHJhKQpQcm9ibGVtOiAgICBSdWJ5IGludGVyZmFjZSBkb2Vzbid0IHdvcmsgd2l0aCBSdWJ5IDEuOC4wLgpTb2x1dGlvbjogICBDaGFuZ2UgImRlZm91dCIgdG8gInN0ZG91dCIuIChBcm9uIEdyaWZmaXMpCgkgICAgQ2hhbmdlIGR5bmFtaWMgbG9hZGluZy4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvaWZfcnVieS5jLCBzcmMvTWFrZV9tdmMubWFrCgpQYXRjaCA2LjIuMDY3ClByb2JsZW06ICAgIFdoZW4gc2VhcmNoaW5nIGZvciBhIHN0cmluZyB0aGF0IHN0YXJ0cyB3aXRoIGEgY29tcG9zaW5nIGNoYXJhY3RlcgoJICAgIHRoZSBjb21tYW5kIGxpbmUgaXNuJ3QgZHJhd24gcHJvcGVybHkuClNvbHV0aW9uOiAgIERvbid0IGNvdW50IHRoZSBzcGFjZSB0byBkcmF3IHRoZSBjb21wb3NpbmcgY2hhcmFjdGVyIG9uIGFuZAoJICAgIGFkanVzdCB0aGUgY3Vyc29yIGNvbHVtbiBhZnRlciBkcmF3aW5nIHRoZSBzdHJpbmcuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYwoKUGF0Y2ggNi4yLjA2OApQcm9ibGVtOiAgICBFdmVudHMgZm9yIHRoZSBuZXRiZWFucyBpbnRlcmZhY2UgdGhhdCBpbmNsdWRlIGEgZmlsZSBuYW1lIHdpdGgKCSAgICBzcGVjaWFsIGNoYXJhY3RlcnMgZG9uJ3Qgd29yayBwcm9wZXJseS4KU29sdXRpb246ICAgVXNlIG5iX3F1b3RlKCkgb24gdGhlIGZpbGUgbmFtZS4gKFNlcmdleSBLaG9yZXYpCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMi4wNjkgKGFmdGVyIDYuMi4wNjQpClByb2JsZW06ICAgIFVudXNlZCB2YXJpYWJsZXMgImxpbWl0IiBhbmQgIm5ld19zdCIgYW5kIHVudXNlZCBsYWJlbCAiZmFpbCIgaW4KCSAgICBzb21lIHNpdHVhdGlvbi4gKEJpbGwgTWNDYXJ0aHkpClNvbHV0aW9uOiAgIFB1dCB0aGUgZGVjbGFyYXRpb25zIGluc2lkZSBhbiAjaWZkZWYuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjA3MCAoYWZ0ZXIgNi4yLjA2OSkKUHJvYmxlbTogICAgU3RpbGwgdW51c2VkIHZhcmlhYmxlICJuZXdfc3QiLiAoQmlsbCBNY0NhcnRoeSkKU29sdXRpb246ICAgTW92ZSB0aGUgZGVjbGFyYXRpb24gdG8gdGhlIHJpZ2h0IGJsb2NrIHRoaXMgdGltZS4KRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMi4wNzEKUHJvYmxlbTogICAgJ3N0YXR1c2xpbmUnIGNhbiBvbmx5IGNvbnRhaW4gNTAgJSBpdGVtcy4gKEFudG9ueSBTY3JpdmVuKQpTb2x1dGlvbjogICBBbGxvdyA4MCBpdGVtcyBhbmQgbWVudGlvbiBpdCBpbiB0aGUgZG9jcy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb24udHh0LCBzcmMvdmltLmgKClBhdGNoIDYuMi4wNzIKUHJvYmxlbTogICAgV2hlbiB1c2luZyBleHByZXNzaW9uIGZvbGRpbmcsIGZvbGRleHByKCkgbW9zdGx5IHJldHVybnMgLTEgZm9yCgkgICAgdGhlIHByZXZpb3VzIGxpbmUsIHdoaWNoIG1ha2VzIGl0IGRpZmZpY3VsdCB0byB3cml0ZSBhIGZvbGQKCSAgICBleHByZXNzaW9uLgpTb2x1dGlvbjogICBNYWtlIHRoZSBsZXZlbCBvZiB0aGUgcHJldmlvdXMgbGluZSBhdmFpbGFibGUgd2hpbGUgc3RpbGwgbG9va2luZwoJICAgIGZvciB0aGUgZW5kIG9mIGEgZm9sZC4KRmlsZXM6CSAgICBzcmMvZm9sZC5jCgpQYXRjaCA2LjIuMDczClByb2JsZW06ICAgIFdoZW4gYWRkaW5nIGRldGVjdGlvbiBvZiBhIHNwZWNpZmljIGZpbGV0eXBlIGZvciBhIHBsdWdpbiB5b3UgbmVlZAoJICAgIHRvIGVkaXQgImZpbGV0eXBlLnZpbSIuClNvbHV0aW9uOiAgIFNvdXJjZSBmaWxlcyBmcm9tIHRoZSAiZnRkZXRlY3QiIGRpcmVjdG9yeSwgc28gdGhhdCBhIGZpbGV0eXBlCgkgICAgZGV0ZWN0aW9uIHBsdWdpbiBvbmx5IG5lZWRzIHRvIGJlIGRyb3BwZWQgaW4gYSBkaXJlY3RvcnkuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZmlsZXR5cGUudHh0LCBydW50aW1lL2RvYy91c3JfMDUudHh0LAoJICAgIHJ1bnRpbWUvZG9jL3Vzcl80MS50eHQsIHJ1bnRpbWUvZmlsZXR5cGUudmltCgpQYXRjaCA2LjIuMDc0ClByb2JsZW06ICAgIFdhcm5pbmdzIHdoZW4gY29tcGlsaW5nIHRoZSBQeXRob24gaW50ZXJmYWNlLiAoQWppdCBUaGFra2FyKQpTb2x1dGlvbjogICBVc2UgQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbnMuCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMDc1ClByb2JsZW06ICAgIFdoZW4gdGhlIHRlbXAgZmlsZSBmb3Igd3JpdGluZyB2aW1pbmZvIGNhbid0IGJlIHVzZWQgIk5VTEwiCgkgICAgYXBwZWFycyBpbiB0aGUgZXJyb3IgbWVzc2FnZS4gKEJlbiBMYXZlbmRlcikKU29sdXRpb246ICAgUHJpbnQgdGhlIG9yaWdpbmFsIGZpbGUgbmFtZSB3aGVuIHRoZXJlIGlzIG5vIHRlbXAgZmlsZSBuYW1lLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4wNzYKUHJvYmxlbTogICAgVGhlIHRhZ3MgbGlzdGVkIGZvciBjc2NvcGUgYXJlIGluIHRoZSB3cm9uZyBvcmRlci4gKEpvaGFubmVzCgkgICAgU3RlemVuYmFjaCkKU29sdXRpb246ICAgUmVtb3ZlIHRoZSByZW9yZGVyaW5nIG9mIHRhZ3MgZm9yIHRoZSBjdXJyZW50IGZpbGUuIChTZXJnZXkKCSAgICBLaG9yZXYpCkZpbGVzOgkgICAgc3JjL2lmX2NzY29wZS5jCgpQYXRjaCA2LjIuMDc3ClByb2JsZW06ICAgIFdoZW4gYSB1c2VyIGZ1bmN0aW9uIHNwZWNpZmllcyBjdXN0b20gY29tcGxldGlvbiwgdGhlIGZ1bmN0aW9uCgkgICAgZ2V0cyBhIHplcm8gYXJndW1lbnQgaW5zdGVhZCBvZiBhbiBlbXB0eSBzdHJpbmcgd2hlbiB0aGVyZSBpcyBubwoJICAgIHdvcmQgYmVmb3JlIHRoZSBjdXJzb3IuIChQcmViZW4gR3VsZGJlcmcpClNvbHV0aW9uOiAgIERvbid0IGNvbnZlcnQgYW4gZW1wdHkgc3RyaW5nIHRvIGEgemVyby4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuMDc4ClByb2JsZW06ICAgICJtYWtlIHRlc3QiIGRvZXNuJ3Qgd29yayBpZiBWaW0gd2Fzbid0IGNvbXBpbGVkIHlldC4gKEVkIEF2aXMpClNvbHV0aW9uOiAgIEJ1aWxkIFZpbSBiZWZvcmUgcnVubmluZyB0aGUgdGVzdHMuCkZpbGVzOgkgICAgc3JjL01ha2VmaWxlCgpQYXRjaCA2LjIuMDc5ClByb2JsZW06ICAgICI6dyArK2VuYz11dGYtOCAhY21kIiBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIENoZWNrIGZvciB0aGUgIisrIiBhcmd1bWVudCBiZWZvcmUgdGhlICIhIi4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjA4MApQcm9ibGVtOiAgICBXaGVuICd0X3RpJyBpcyBub3QgZW1wdHkgYnV0IGRvZXNuJ3Qgc3dhcCBzY3JlZW5zLCB1c2luZyAiWloiIGluCgkgICAgYW4gdW5tb2RpZmllZCBmaWxlIGRvZXNuJ3QgY2xlYXIgdGhlIGxhc3QgbGluZS4KU29sdXRpb246ICAgQ2FsbCBtc2dfY2xyX2VvcygpIHdoZW4gbmVlZGVkLiAoTWljaGFlbCBTY2hyb2VkZXIpCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjA4MQpQcm9ibGVtOiAgICBQcm9ibGVtIHdoZW4gdXNpbmcgYSBsb25nIG11bHRpYnl0ZSBzdHJpbmcgZm9yIHRoZSBzdGF0dXNsaW5lLgpTb2x1dGlvbjogICBVc2UgdGhlIHJpZ2h0IHBvaW50ZXIgdG8gZ2V0IHRoZSBjZWxsIHNpemUuIChUYXJvIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjIuMDgyClByb2JsZW06ICAgIENhbid0IGNvbXBpbGUgd2l0aCBQZXJsIDUuOC4xLgpTb2x1dGlvbjogICBSZW5hbWUgImVfbnVtYmVyIiB0byAiZV9udW1iZXJfZXhwIi4gKFNhc2NoYSBCbGFuaykKRmlsZXM6CSAgICBzcmMvZGlncmFwaC5jLCBzcmMvZ2xvYmFscy5oCgpQYXRjaCA2LjIuMDgzClByb2JsZW06ICAgIFdoZW4gYSBjb21waWxlciB1c2VzIF5eXl4gdG8gbWFyayBhIHdvcmQgdGhlIGluZm9ybWF0aW9uIGlzIG5vdAoJICAgIHZpc2libGUgaW4gdGhlIHF1aWNrZml4IHdpbmRvdy4gKFNyaWthbnRoIFNhbmthcmFuKQpTb2x1dGlvbjogICBEb24ndCByZW1vdmUgdGhlIGluZGVudCBmb3IgYSBsaW5lIHRoYXQgaXMgbm90IHJlY29nbml6ZWQgYXMgYW4KCSAgICBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9xdWlja2ZpeC5jCgpQYXRjaCA2LjIuMDg0ClByb2JsZW06ICAgICJnXyIgaW4gVmlzdWFsIG1vZGUgYWx3YXlzIGdvZXMgdG8gdGhlIGNoYXJhY3RlciBhZnRlciB0aGUgbGluZS4KCSAgICAoSmVhbi1SZW5lIERhdmlkKQpTb2x1dGlvbjogICBJZ25vcmUgdGhlIE5VTCBhdCB0aGUgZW5kIG9mIHRoZSBsaW5lLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjA4NQpQcm9ibGVtOiAgICAiOnZlcmJvc2Ugc2V0IHRzIiBkb2Vzbid0IHNheSBhbiBvcHRpb24gd2FzIHNldCB3aXRoIGEgIi1jIiBvcgoJICAgICItLWNtZCIgYXJndW1lbnQuClNvbHV0aW9uOiAgIFJlbWVtYmVyIHRoZSBvcHRpb24gd2FzIHNldCBmcm9tIGEgVmltIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9tYWluLmMsIHNyYy9leF9jbWRzMi5jLCBzcmMvdmltLmgKClBhdGNoIDYuMi4wODYKUHJvYmxlbTogICAgInsiIGFuZCAifSIgc3RvcCBpbnNpZGUgYSBjbG9zZWQgZm9sZC4KU29sdXRpb246ICAgT25seSBzdG9wIG9uY2UgaW5zaWRlIGEgY2xvc2VkIGZvbGQuIChTdGVwaGVuIFJpZWhtKQpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4yLjA4NwpQcm9ibGVtOiAgICBDVFJMLV4gZG9lc24ndCB1c2UgdGhlICdjb25maXJtJyBvcHRpb24uICBTYW1lIHByb2JsZW0gd2l0aAoJICAgICI6Ym5leHQiLiAoWWFrb3YgTGVybmVyKQpTb2x1dGlvbjogICBQdXQgdXAgYSBkaWFsb2cgZm9yIGEgY2hhbmdlZCBmaWxlIHdoZW4gJ2NvbmZpcm0nIGlzIHNldCBpbiBtb3JlCgkgICAgc2l0dWF0aW9ucy4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4wODgKUHJvYmxlbTogICAgV2hlbiAnc2lkZXNjcm9sbG9mZicgaXMgc2V0ICdzaG93bWF0Y2gnIGRvZXNuJ3Qgd29yayBjb3JyZWN0bHkgaWYKCSAgICB0aGUgbWF0Y2ggaXMgbGVzcyB0aGFuICdzaWRlc2Nyb2xsb2ZmJyBvZmYgZnJvbSB0aGUgc2lkZSBvZiB0aGUKCSAgICB3aW5kb3cuICAoUm9sYW5kIFN0YWhuKQpTb2x1dGlvbjogICBTZXQgJ3NpZGVzY3JvbGxvZmYnIHRvIHplcm8gd2hpbGUgZGlzcGxheWluZyB0aGUgbWF0Y2guCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjIuMDg5ClByb2JsZW06ICAgICI6c2V0IGlzays9IiBhZGRzIGEgY29tbWEuIChNYXJrIFdhZ2dvbmVyKQpTb2x1dGlvbjogICBEb24ndCBhZGQgYSBjb21tYSB3aGVuIHRoZSBhZGRlZCB2YWx1ZSBpcyBlbXB0eS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi4wOTAgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogTWluZ1cgY29tcGlsZXIgY29tcGxhaW5zIGFib3V0ICNwcmFnbWFzLiAoQmlsbCBNY0NhcnRoeSkKU29sdXRpb246ICAgUHV0IGFuICNpZmRlZiBhcm91bmQgdGhlICNwcmFnbWFzLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuMDkxClByb2JsZW06ICAgIFdoZW4gYW4gYXV0b2NvbW1hbmQgaXMgdHJpZ2dlcmVkIHdoZW4gYSBmaWxlIGlzIGRyb3BwZWQgb24gVmltIGFuZAoJICAgIGl0IHByb2R1Y2VzIG91dHB1dCwgbWVzc2FnZXMgZnJvbSBhIGZvbGxvd2luZyBjb21tYW5kIG1heSBiZQoJICAgIHNjcm9sbGVkIHVuZXhwZWN0ZWRseS4gKERhdmlkIFJlbm5hbGxzKQpTb2x1dGlvbjogICBTYXZlIGFuZCByZXN0b3JlIG1zZ19zY3JvbGwgaW4gaGFuZGxlX2Ryb3AoKS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjA5MgpQcm9ibGVtOiAgICBJbnZhbGlkIGl0ZW1zIGFwcGVhciBpbiB0aGUgaGVscCBmaWxlIHRhZ3MuIChBbnRvbmlvIENvbG9tYm8pClNvbHV0aW9uOiAgIE9ubHkgYWNjZXB0IHRhZ3Mgd2l0aCB3aGl0ZSBzcGFjZSBiZWZvcmUgdGhlIGZpcnN0ICIqIi4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9kb2N0YWdzLmMsIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4wOTMKUHJvYmxlbTogICAgIjpubm9yZW1lbnUiIGFsc28gZGVmaW5lcyBtZW51IGZvciBWaXN1YWwgbW9kZS4gKEtsYXVzIEJvc2F1KQpTb2x1dGlvbjogICBDaGVjayB0aGUgc2Vjb25kIGNvbW1hbmQgY2hhcmFjdGVyIGZvciBhbiAibyIsIG5vdCB0aGUgdGhpcmQuCkZpbGVzOgkgICAgc3JjL21lbnUuYwoKUGF0Y2ggNi4yLjA5NApQcm9ibGVtOiAgICBDYW4ndCBjb21waWxlIHdpdGggR1RLIGFuZCB0aW55IGZlYXR1cmVzLgpTb2x1dGlvbjogICBJbmNsdWRlIGhhbmRsZV9kcm9wKCkgYW5kIHZpbV9jaGRpcmZpbGUoKSB3aGVuIEZFQVRfRE5EIGlzIGRlZmluZWQuCgkgICAgRG8gbm90IHRyeSB0byBzcGxpdCB0aGUgd2luZG93LgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4yLjA5NQpQcm9ibGVtOiAgICBUaGUgbWVzc2FnZSAiQ2Fubm90IGdvIHRvIGJ1ZmZlciB4IiBpcyBjb25mdXNpbmcgZm9yICI6YnVmIDYiLgoJICAgIChGcmFucyBFbmdsaWNoKQpTb2x1dGlvbjogICBNYWtlIGl0ICJCdWZmZXIgeCBkb2VzIG5vdCBleGlzdCIuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jCgpQYXRjaCA2LjIuMDk2ClByb2JsZW06ICAgIFdpbjMyOiAiOmxldCBAKiA9ICcnIiBwdXQgYSBuZXdsaW5lIG9uIHRoZSBjbGlwYm9hcmQuIChLbGF1cwoJICAgIEJvc2F1KQpTb2x1dGlvbjogICBQdXQgemVybyBieXRlcyBvbiB0aGUgY2xpcGJvYXJkIGZvciBhbiBlbXB0eSBzdHJpbmcuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjIuMDk3ClByb2JsZW06ICAgIFNldHRpbmcgb3IgcmVzZXR0aW5nICdpbnNlcnRtb2RlJyBpbiBhIEJ1ZkVudGVyIGF1dG9jb21tYW5kCgkgICAgZG9lc24ndCBhbHdheXMgaGF2ZSBpbW1lZGlhdGUgZWZmZWN0LiAoTmFnZ2VyKQpTb2x1dGlvbjogICBXaGVuICdpbnNlcnRtb2RlJyBpcyBzZXQsIHNldCBuZWVkX3N0YXJ0X2luc2VydG1vZGUsIHdoZW4gaXQncwoJICAgIHJlc2V0IHNldCBzdG9wX2luc2VydF9tb2RlLgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjA5OCAoYWZ0ZXIgNi4yLjA5NykKUHJvYmxlbTogICAgQ2FuJ3QgYnVpbGQgVmltIHdpdGggdGlueSBmZWF0dXJlcy4gKENocmlzdGlhbiBKLiBSb2JpbnNvbikKU29sdXRpb246ICAgRGVjbGFyZSBzdG9wX2luc2VydF9tb2RlIGFsd2F5cy4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZ2xvYmFscy5oCgpQYXRjaCA2LjIuMDk5IChleHRyYSkKUHJvYmxlbTogICAgVGVzdCA0OSBmYWlscy4gKE1pa29sYWogTWFjaG93c2tpKQpTb2x1dGlvbjogICBUaGUgUG9saXNoIHRyYW5zbGF0aW9uIG11c3Qgbm90IGNoYW5nZSAiRTExNiIgdG8gIlIxMTYiLgpGaWxlczoJICAgIHNyYy9wby9wbC5wbwoKUGF0Y2ggNi4yLjEwMApQcm9ibGVtOiAgICAibWFrZSBwcm90byIgZmFpbHMgd2hlbiBjb21waWxlZCB3aXRoIHRoZSBQZXJsIGludGVyZmFjZS4KU29sdXRpb246ICAgUmVtb3ZlICItZm5vLioiIGZyb20gUEVSTF9DRkxBR1MsIGNwcm90byBzZWVzIGl0IGFzIGl0cyBvcHRpb24uCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjIuMTAxClByb2JsZW06ICAgIFdoZW4gdXNpbmcgc3ludGF4IGZvbGRpbmcsIG9wZW5pbmcgYSBmaWxlIHNsb3dzIGRvd24gYSBsb3Qgd2hlbgoJICAgIGl0J3Mgc2l6ZSBpbmNyZWFzZXMgYnkgb25seSAyMCUuIChHYXJ5IEpvaG5zb24pClNvbHV0aW9uOiAgIFRoZSBhcnJheSB3aXRoIGNhY2hlZCBzeW50YXggc3RhdGVzIGlzIGxlYWtpbmcgZW50cmllcy4gIEFmdGVyCgkgICAgY2xlYW5pbmcgdXAgdGhlIGxpc3Qgb2J0YWluIHRoZSBjdXJyZW50IGVudHJ5IGFnYWluLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4yLjEwMgpQcm9ibGVtOiAgICBUaGUgbWFjcm9zIGVxdWFsKCkgYW5kIENSIGNvbmZsaWN0IHdpdGggYSBDYXJib24gaGVhZGVyIGZpbGUuClNvbHV0aW9uOiAgIFJlbmFtZSBlcXVhbCgpIHRvIGVxdWFscG9zKCkuICBSZW5hbWUgQ1IgdG8gQ0FSLgoJICAgIERvIHRoaXMgaW4gdGhlIG5vbi1leHRyYSBmaWxlcyBvbmx5LgpGaWxlczoJICAgIHNyYy9hc2NpaS5oLCBzcmMvYnVmZmVyLmMsIHNyYy9jaGFyc2V0LmMsIHNyYy9lZGl0LmMsIHNyYy9ldmFsLmMsCgkgICAgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2NtZHMyLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvZmlsZWlvLmMsCgkgICAgc3JjL2dldGNoYXIuYywgc3JjL2d1aS5jLCBzcmMvZ3VpX2F0aGVuYS5jLCBzcmMvZ3VpX2d0a194MTEuYywKCSAgICBzcmMvZ3VpX21vdGlmLmMsIHNyYy9tYWNyb3MuaCwgc3JjL21hcmsuYywgc3JjL21lc3NhZ2UuYywKCSAgICBzcmMvbWlzYzEuYywgc3JjL21pc2MyLmMsIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jLCBzcmMvb3NfdW5peC5jLAoJICAgIHNyYy9yZWdleHAuYywgc3JjL3NlYXJjaC5jLCBzcmMvdWkuYywgc3JjL3dvcmtzaG9wLmMKClBhdGNoIDYuMi4xMDMgKGV4dHJhKQpQcm9ibGVtOiAgICBUaGUgbWFjcm9zIGVxdWFsKCkgYW5kIENSIGNvbmZsaWN0IHdpdGggYSBDYXJib24gaGVhZGVyIGZpbGUuClNvbHV0aW9uOiAgIFJlbmFtZSBlcXVhbCgpIHRvIGVxdWFscG9zKCkuICBSZW5hbWUgQ1IgdG8gQ0FSLgoJICAgIERvIHRoaXMgaW4gdGhlIGV4dHJhIGZpbGVzIG9ubHkuCkZpbGVzOgkgICAgc3JjL2d1aV9waG90b24uYywgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4yLjEwNApQcm9ibGVtOiAgICBVbm1hdGNoZWQgYnJhY2VzIGluIHRoZSB0YWJsZSB3aXRoIG9wdGlvbnMuClNvbHV0aW9uOiAgIE1vdmUgdGhlICJ9LCIgb3V0c2lkZSBvZiB0aGUgI2lmZGVmLiAoWWFrb3YgTGVybmVyKQpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjEwNQpQcm9ibGVtOiAgICBXaGVuIHRoZSBjdXJzb3IgaXMgcGFzdCB0aGUgZW5kIG9mIHRoZSBsaW5lIHdoZW4gY2FsbGluZwoJICAgIGdldF9jX2luZGVudCgpIGEgY3Jhc2ggbWlnaHQgb2NjdXIuClNvbHV0aW9uOiAgIERvbid0IGxvb2sgcGFzdCB0aGUgZW5kIG9mIHRoZSBsaW5lLiAoTkogVmVyZW5pbmkpCkZpbGVzOgkgICAgc3JjL21pc2MxLmMKClBhdGNoIDYuMi4xMDYKUHJvYmxlbTogICAgVGFnIHNlYXJjaGluZyBnZXRzIHN0dWNrIG9uIGEgdmVyeSBsb25nIGxpbmUgaW4gdGhlIHRhZ3MgZmlsZS4KU29sdXRpb246ICAgV2hlbiBza2lwcGluZyBiYWNrIHRvIHNlYXJjaCB0aGUgZmlyc3QgbWF0Y2hpbmcgdGFnIHJlbWVtYmVyIHRoZQoJICAgIG9mZnNldCB3aGVyZSBzZWFyY2hpbmcgc3RhcnRlZCBsb29raW5nIGZvciBhIGxpbmUgYnJlYWsuCkZpbGVzOgkgICAgc3JjL3RhZy5jCgpQYXRjaCA2LjIuMTA3IChleHRyYSkKUHJvYmxlbTogICAgVGhlIE5ldEJlYW5zIGludGVyZmFjZSBjYW5ub3QgYmUgdXNlZCBvbiBXaW4zMi4KU29sdXRpb246ICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBOZXRCZWFucyBmb3IgV2luMzIuICBBZGQgc3VwcG9ydCBmb3IgcmVhZGluZwoJICAgIFhQTSBmaWxlcyBvbiBXaW4zMi4gIEFsc28gZml4ZXMgdGhhdCBhIHNpZ24gaWNvbiB3aXRoIGEgc3BhY2UgaW4KCSAgICB0aGUgZmlsZSBuYW1lIGRpZCBub3Qgd29yayB0aHJvdWdoIHRoZSBOZXRCZWFucyBpbnRlcmZhY2UuCgkgICAgKFNlcmdleSBLaG9yZXYpCgkgICAgQWxzbzogYXZvaWQgcmVwZWF0aW5nIGVycm9yIG1lc3NhZ2VzIHdoZW4gdGhlIGNvbm5lY3Rpb24gaXMgbG9zdC4KRmlsZXM6CSAgICBNYWtlZmlsZSwgcnVudGltZS9kb2MvbmV0YmVhbnMudHh0LCBzcmMvTWFrZV9iYzUubWFrLAoJICAgIHNyYy9NYWtlX2N5Zy5tYWssIHNyYy9NYWtlX21pbmcubWFrLCBzcmMvTWFrZV9tdmMubWFrLAoJICAgIHNyYy9iaWd2aW0uYmF0LCBzcmMvZmVhdHVyZS5oLCBzcmMvZ3VpX2JldmFsLmMsIHNyYy9ndWlfYmV2YWwuaCwKCSAgICBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jLCBzcmMvbWVudS5jLCBzcmMvbmJkZWJ1Zy5jLAoJICAgIHNyYy9uYmRlYnVnLmgsIHNyYy9uZXRiZWFucy5jLCBzcmMvb3NfbXN3aW4uYywgc3JjL29zX3dpbjMyLmgsCgkgICAgc3JjL3Byb3RvL2d1aV9iZXZhbC5wcm8sIHNyYy9wcm90by9ndWlfdzMyLnBybywKCSAgICBzcmMvcHJvdG8vbmV0YmVhbnMucHJvLCBzcmMvcHJvdG8uaCwgc3JjL3ZlcnNpb24uYywgc3JjL3ZpbS5oLAoJICAgIHNyYy94cG1fdzMyLmMsIHNyYy94cG1fdzMyLmgKClBhdGNoIDYuMi4xMDgKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBnaXZpbmcgYSBtZXNzYWdlIGFib3V0IGlnbm9yaW5nIGNhc2UgaW4gYSB0YWcuIChNYW5mcmVkCgkgICAgS3VlaG4pClNvbHV0aW9uOiAgIFVzZSBhIGxvbmdlciBidWZmZXIgZm9yIHRoZSBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjEwOQpQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyB3aXRoIHZhcmlvdXMgQW1pZ2EgY29tcGlsZXJzLgpTb2x1dGlvbjogICBBZGQgdHlwZWNhc3QsIHByb3RvdHlwZXMsIGV0IGFsLiB0aGF0IGFyZSBhbHNvIHVzZWZ1bCBmb3Igb3RoZXIKCSAgICBzeXN0ZW1zLiAgKEZsYXZpbyBTdGFuY2hpbmEpCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL29wcy5jCgpQYXRjaCA2LjIuMTEwClByb2JsZW06ICAgIFdoZW4gJExBTkcgaW5jbHVkZXMgdGhlIGVuY29kaW5nLCBhIG1lbnUgd2l0aG91dCBhbiBlbmNvZGluZyBuYW1lCgkgICAgaXMgbm90IGZvdW5kLgpTb2x1dGlvbjogICBBbHNvIGxvb2sgZm9yIGEgbWVudSBmaWxlIHdpdGhvdXQgYW55IGVuY29kaW5nLgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMi4xMTEKUHJvYmxlbTogICAgRW5jb2RpbmcgImNwMTI1MSIgaXMgbm90IHJlY29nbml6ZWQuClNvbHV0aW9uOiAgIEFkZCAiY3AxMjUxIiB0byB0aGUgdGFibGUgb2YgZW5jb2RpbmdzLiAoQWxleGV5IEZyb2xvZmYpCkZpbGVzOgkgICAgc3JjL21ieXRlLmMKClBhdGNoIDYuMi4xMTIKUHJvYmxlbTogICAgQWZ0ZXIgYXBwbHlpbmcgcGF0Y2hlcyB0ZXN0MzIgZmFpbHMuIChBbnRvbmlvIENvbG9tYm8pClNvbHV0aW9uOiAgIEhhdmUgIm1ha2UgY2xlYW4iIGluIHRoZSB0ZXN0ZGlyIGRlbGV0ZSAqLnJlaiBhbmQgKi5vcmlnIGZpbGVzLgoJICAgIFVzZSB0aGlzIHdoZW4gZG9pbmcgIm1ha2UgY2xlYW4iIGluIHRoZSBzcmMgZGlyZWN0b3J5LgpGaWxlczoJICAgIHNyYy9NYWtlZmlsZSwgc3JjL3Rlc3RkaXIvTWFrZWZpbGUKClBhdGNoIDYuMi4xMTMKUHJvYmxlbTogICAgVXNpbmcgIjpzdGFydGluc2VydCIgYWZ0ZXIgIiQiIHdvcmtzIGxpa2UgImEiIGluc3RlYWQgb2YgImkiLgoJICAgIChBaml0IFRoYWtrYXIpClNvbHV0aW9uOiAgIFJlc2V0ICJ3X2N1cnN3YW50IiBmb3IgIjpzdGFydGluc2VydCIgYW5kIHJlc2V0IG9fZW9sIGluIGVkaXQoKS4KRmlsZXM6CSAgICBzcmMvZWRpdC5jLCBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjExNApQcm9ibGVtOiAgICBXaGVuIHN0ZG91dCBpcyBwaXBlZCB0aHJvdWdoICJ0ZWUiLCB0aGUgc2l6ZSBvZiB0aGUgc2NyZWVuIG1heSBub3QKCSAgICBiZSBjb3JyZWN0LgpTb2x1dGlvbjogICBVc2Ugc3RkaW4gaW5zdGVhZCBvZiBzdGRvdXQgZm9yIGlvY3RsKCkgd2hlbiBzdGRpbiBpcyBhIHR0eSBhbmQKCSAgICBzdGRvdXQgaXNuJ3QuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjExNSAoZXh0cmEpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIHdpdGggdmFyaW91cyBBbWlnYSBjb21waWxlcnMuClNvbHV0aW9uOiAgIEFkZCB0eXBlY2FzdCwgcHJvdG90eXBlcywgZXQgYWwuICBUaG9zZSBjaGFuZ2VzIHRoYXQgYXJlCgkgICAgQW1pZ2Etc3BlY2lmaWMuIChGbGF2aW8gU3RhbmNoaW5hKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL21lbWZpbGUuYywgc3JjL29zX2FtaWdhLmMsIHNyYy9vc19hbWlnYS5oLAoJICAgIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjExNiAoZXh0cmEpClByb2JsZW06ICAgIEdlcm1hbiBrZXlib2FyZCB3aXRoIE51bWxvY2sgc2V0IGRpZmZlcmVudCBmcm9tIHN5c3RlbSBzdGFydHVwCgkgICAgY2F1c2VzIHByb2JsZW1zLgpTb2x1dGlvbjogICBJZ25vcmUga2V5cyB3aXRoIGNvZGUgMHhmZi4gKEhlbG11dCBTdGllZ2xlcikKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjIuMTE3ClByb2JsZW06ICAgIEJyZWFrcG9pbnRzIGluIGxvb3BzIG9mIHNvdXJjZWQgZmlsZXMgYW5kIGZ1bmN0aW9ucyBhcmUgbm90CgkgICAgZGV0ZWN0ZWQuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgQ2hlY2sgZm9yIGJyZWFrcG9pbnRzIHdoZW4gdXNpbmcgbGluZXMgdGhhdCB3ZXJlIHByZXZpb3VzbHkgcmVhZC4KCSAgICAoU2VydmF0aXVzIEJyYW5kdCkKRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfY21kczIuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9wcm90by9ldmFsLnBybywKCSAgICBzcmMvcHJvdG8vZXhfY21kczIucHJvCgpQYXRjaCA2LjIuMTE4IChleHRyYSkKUHJvYmxlbTogICAgTWFjOiBDb21waWxpbmcgaXMgZG9uZSBpbiBhIG5vbi1zdGFuZGFyZCB3YXkuClNvbHV0aW9uOiAgIFVzZSB0aGUgVW5peCBtZXRob2QgZm9yIE1hYyBPUyBYLCB3aXRoIGF1dG9jb25mLiAgQWRkICJDQVJCT05HVUkiCgkgICAgdG8gTWFrZWZpbGUgYW5kIGNvbmZpZ3VyZS4gKEVyaWMgS293KQoJICAgIE1vdmUgYSBmZXcgcHJvdG90eXBlcyBmcm9tIG9zX21hYy5wcm8gdG8gZ3VpX21hYy5wcm8uCkZpbGVzOgkgICAgc3JjL01ha2VmaWxlLCBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sCgkgICAgc3JjL2NvbmZpZy5tay5pbiwgc3JjL2d1aV9tYWMuYywgc3JjL29zX21hYy5oLCBzcmMvb3NfbWFjb3N4LmMsCgkgICAgc3JjL3Byb3RvL2d1aV9tYWMucHJvLCBzcmMvcHJvdG8vb3NfbWFjLnBybywKCSAgICBzcmMvaW5mcGxpc3QueG1sLCBzcmMvdmltLmgKClBhdGNoIDYuMi4xMTkgKGFmdGVyIDYuMi4xMDcpClByb2JsZW06ICAgIFdoZW4gcGFja2luZyB0aGUgTVMtV2luZG93cyBhcmNoaXZlcyBhIGZldyBmaWxlcyBhcmUgbWlzc2luZy4KCSAgICAoR3VvcGVuZyBXZW4pClNvbHV0aW9uOiAgIEFkZCBndWlfYmV2YWwuKiB0byB0aGUgbGlzdCBvZiBnZW5lcmljIHNvdXJjZSBmaWxlcy4KRmlsZXM6CSAgICBNYWtlZmlsZQoKUGF0Y2ggNi4yLjEyMApQcm9ibGVtOiAgICBXaW4zMiBHVUk6IFRoZSBjb25zb2xlIGRpYWxvZ3MgYXJlIG5vdCBzdXBwb3J0ZWQgb24gTVMtV2luZG93cywKCSAgICBkaXNhYmxpbmcgdGhlICdjJyBmbGFnIG9mICdndWlvcHRpb25zJy4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIERlZmluZSBGRUFUX0NPTl9ESUFMT0cgYWxzbyBmb3IgR1VJLW9ubHkgYnVpbGRzLgpGaWxlczoJICAgIHNyYy9mZWF0dXJlLmgKClBhdGNoIDYuMi4xMjEgKGFmdGVyIDYuMi4xMTgpClByb2JsZW06ICAgIE5vdCBhbGwgbWFrZSBwcm9ncmFtcyBzdXBwb3J0ICIrPSIuIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBVc2UgYSBub3JtYWwgYXNzaWdubWVudC4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4xMjIgKGFmdGVyIDYuMi4xMTkpClByb2JsZW06ICAgIE5vdCBhbGwgc2hlbGxzIGNhbiBleHBhbmQgW15+XS4gIEZpbGUgbWlzc2luZy4gIChHdW9wZW5nIFdlbikKU29sdXRpb246ICAgVXNlIGEgc2ltcGxlciBwYXR0ZXJuLiAgQWRkIHRoZSBBYXAgcmVjaXBlIGZvciB0aGUgbWF6ZSBwcm9ncmFtCgkgICAgYW5kIGEgY2xlYW4gdmVyc2lvbiBvZiB0aGUgc291cmNlIGNvZGUuCkZpbGVzOgkgICAgTWFrZWZpbGUsIHJ1bnRpbWUvbWFjcm9zL21hemUvTWFrZWZpbGUsCgkgICAgcnVudGltZS9tYWNyb3MvbWF6ZS9SRUFETUUudHh0LCBydW50aW1lL21hY3Jvcy9tYXplL21haW4uYWFwLAoJICAgIHJ1bnRpbWUvbWFjcm9zL21hemUvbWF6ZWNsZWFuLmMKClBhdGNoIDYuMi4xMjMgKGFmdGVyIDYuMi4xMTgpClByb2JsZW06ICAgIFJ1bm5pbmcgY29uZmlndXJlIGZhaWxzLiAoVG9ueSBMZW5laXMpClNvbHV0aW9uOiAgIENoYW5nZSAiPT0iIHRvICI9IiBmb3IgYSB0ZXN0LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yLjEyNCAoYWZ0ZXIgNi4yLjEyMSkoZXh0cmEpClByb2JsZW06ICAgIE1hYzogUmVjdXJzaXZlIHVzZSBvZiBNNEZMQUdTIGNhdXNlcyBwcm9ibGVtcy4gIFdoZW4gcnVubmluZyBWaW0KCSAgICBkaXJlY3RseSBpdCBjYW4ndCBmaW5kIHRoZSBydW50aW1lIGZpbGVzLiAgKEVtaWx5IEphY2tzb24pCgkgICAgVXNpbmcgR05VIGNvbnN0cnVjdHMgY2F1c2VzIHdhcm5pbmdzIHdpdGggb3RoZXIgbWFrZSBwcm9ncmFtcy4KCSAgICAoUm9uYWxkIFNjaGlsZCkKU29sdXRpb246ICAgVXNlIGFub3RoZXIgbmFtZSBmb3IgdGhlIE00RkxBR1MgdmFyaWFibGUuCgkgICAgRG9uJ3QgcmVtb3ZlICJWaW0uYXBwIiBmcm9tIHRoZSBwYXRoLgoJICAgIFVwZGF0ZSB0aGUgZXhwbGFuYXRpb24gZm9yIGNvbXBpbGluZyBvbiB0aGUgTWFjLiAoRXJpYyBLb3cpCgkgICAgRG9uJ3QgdXNlICQoc2hlbGwgKSBhbmQgJChhZGRwcmVmaXggKS4KRmlsZXM6CSAgICBzcmMvSU5TVEFMTG1hYy50eHQsIHNyYy9NYWtlZmlsZSwgc3JjL21pc2MxLmMKClBhdGNoIDYuMi4xMjUgKGFmdGVyIDYuMi4xMDcpClByb2JsZW06ICAgIFRoZSAid2luc29jazIuaCIgZmlsZSBpc24ndCBhbHdheXMgYXZhaWxhYmxlLgpTb2x1dGlvbjogICBEb24ndCBpbmNsdWRlIHRoaXMgaGVhZGVyIGZpbGUuCkZpbGVzOgkgICAgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMi4xMjYKUHJvYmxlbTogICAgVHlwaW5nIENUUkwtQyBhdCBhIGNvbmZpcm0oKSBwcm9tcHQgZG9lc24ndCB0aHJvdyBhbiBleGNlcHRpb24uClNvbHV0aW9uOiAgIFJlc2V0ICJtYXBwZWRfY3RybF9jIiBpbiBnZXRfa2V5c3Ryb2tlKCksIHNvIHRoYXQgImdvdF9pbnQiIGlzIHNldAoJICAgIGluIF9PbkNoYXIoKS4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4yLjEyNyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyIGNvbnNvbGU6IFR5cGluZyBDVFJMLUMgZG9lc24ndCB0aHJvdyBhbiBleGNlcHRpb24uClNvbHV0aW9uOiAgIFNldCBnb3RfaW50IGltbWVkaWF0ZWx5IHdoZW4gQ1RSTC1DIGlzIHR5cGVkLCBkb24ndCB3YWl0IGZvcgoJICAgIG1jaF9icmVha2NoZWNrKCkgYmVpbmcgY2FsbGVkLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuMTI4IChhZnRlciA2LjIuMTE4KQpQcm9ibGVtOiAgICBzcmMvYXV0by9jb25maWd1cmUgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCBzcmMvY29uZmlndXJlLmluLgpTb2x1dGlvbjogICBVc2UgdGhlIG5ld2x5IGdlbmVyYXRlZCBjb25maWd1cmUgc2NyaXB0LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZQoKUGF0Y2ggNi4yLjEyOQpQcm9ibGVtOiAgICBXaGVuICdudW1iZXInIGlzIHNldCAnd3JhcG1hcmdpbicgZG9lcyBub3Qgd29yayBWaS1jb21wYXRpYmxlLgoJICAgIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIFJlZHVjZSB0aGUgdGV4dHdpZHRoIHdoZW4gJ251bWJlcicgaXMgc2V0LiAgQWxzbyBmb3IgJ2ZvbGRjb2x1bW4nCgkgICAgYW5kIHNpbWlsYXIgdGhpbmdzLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMi4xMzAgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMiBjb25zb2xlOiBXaGVuICdyZXN0b3Jlc2NyZWVuJyBpcyBub3Qgc2V0IGV4aXRpbmcgVmltIGNhdXNlcwoJICAgIHRoZSBzY3JlZW4gdG8gYmUgY2xlYXJlZC4gKE1pY2hhZWwgQS4gTWFuZ2lubykKU29sdXRpb246ICAgRG9uJ3QgY2xlYXIgdGhlIHNjcmVlbiB3aGVuIGV4aXRpbmcgYW5kICdyZXN0b3Jlc2NyZWVuJyBpc24ndCBzZXQuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMi4xMzEgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogRm9udCBoYW5kbGVzIGFyZSBsZWFrZWQuClNvbHV0aW9uOiAgIEZyZWUgaXRhbGljLCBib2xkIGFuZCBib2xkLWl0YWxpYyBoYW5kbGVzIGJlZm9yZSBvdmVyd3JpdGluZyB0aGVtLgoJICAgIChNaWNoYWVsIFdvb2tleSkKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjIuMTMyIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IGNvbnNvbGUgdmVyc2lvbiBkb2Vzbid0IHdvcmsgb24gbGF0ZXN0IFdpbmRvd3MgU2VydmVyIDIwMDMuClNvbHV0aW9uOiAgIENvcHkgMTIwMDAgaW5zdGVhZCBvZiAxNTAwMCBjZWxscyBhdCBhIHRpbWUgdG8gYXZvaWQgcnVubmluZyBvdXQKCSAgICBvZiBtZW1vcnkuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMi4xMzMKUHJvYmxlbTogICAgV2hlbiBzdGFydGluZyB0aGUgR1VJIGEgYm9ndXMgZXJyb3IgbWVzc2FnZSBhYm91dCAnaW1hY3RpdmF0ZWtleScKCSAgICBtYXkgYmUgZ2l2ZW4uClNvbHV0aW9uOiAgIE9ubHkgY2hlY2sgdGhlIHZhbHVlIG9mICdpbWFjdGl2YXRla2V5JyB3aGVuIHRoZSBHVUkgaXMgcnVubmluZy4KRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjEzNCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHNjcm9sbGluZyBwYXJ0cyBvZiB0aGUgd2luZG93IGFyZSByZWRyYXduIHdoZW4gdGhpcwoJICAgIGlzbid0IG5lY2Vzc2FyeS4KU29sdXRpb246ICAgT25seSBpbnZhbGlkYXRlIHBhcnRzIG9mIHRoZSB3aW5kb3cgd2hlbiB0aGV5IGFyZSBvYnNjdXJlZCBieQoJICAgIG90aGVyIHdpbmRvd3MuIChNaWNoYWVsIFdvb2tleSkKRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjIuMTM1ClByb2JsZW06ICAgIEFuIGl0ZW0gPD4gaW4gdGhlICI6Y29tbWFuZCIgYXJndW1lbnQgaXMgaW50ZXJwcmV0ZWQgYXMgPGFyZ3M+LgpTb2x1dGlvbjogICBBdm9pZCB0aGF0IDw+IGlzIHJlY29nbml6ZWQgYXMgPGFyZ3M+LgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMTM2ClByb2JsZW06ICAgICI6ZSArK2VuYz1sYXRpbjEgbmV3ZmlsZSIgZG9lc24ndCBzZXQgJ2ZlbmMnIHdoZW4gdGhlIGZpbGUgZG9lc24ndAoJICAgIGV4aXN0LiAgKE1pcm9zbGF3IERvYnJ6YW5za2ktTmV1bWFubikKU29sdXRpb246ICAgU2V0ICdmaWxlZW5jb2RpbmcnIHRvIHRoZSBzcGVjaWZpZWQgZW5jb2Rpbmcgd2hlbiBlZGl0aW5nIGEgZmlsZQoJICAgIHRoYXQgZG9lcyBub3QgZXhpc3QuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuMTM3ClByb2JsZW06ICAgICJkOmNtZDxDUj4iIGNhbm5vdCBiZSByZXBlYXRlZCB3aXRoICIuIi4gIEJyZWFrcyByZXBlYXRpbmcgImQlIgoJICAgIHdoZW4gdXNpbmcgdGhlIG1hdGNoaXQgcGx1Z2luLgpTb2x1dGlvbjogICBTdG9yZSB0aGUgY29tbWFuZCB0byBiZSByZXBlYXRlZC4gIFRoaXMgaXMgcmVzdHJpY3RlZCB0bwoJICAgIHNpbmdsZS1saW5lIGNvbW1hbmRzLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvbm9ybWFsLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjEzOCAoZXh0cmEpClByb2JsZW06ICAgIENvbXBpbGF0aW9uIHByb2JsZW0gb24gVk1TIHdpdGggZHluYW1pYyBidWZmZXIgb24gdGhlIHN0YWNrLgpTb2x1dGlvbjogICBSZWFkIG9uZSBieXRlIGxlc3MgdGhhbiB0aGUgc2l6ZSBvZiB0aGUgYnVmZmVyLCBzbyB0aGF0IHdlIGNhbgoJICAgIGNoZWNrIGZvciB0aGUgc3RyaW5nIGxlbmd0aCB3aXRob3V0IGFuIGV4dHJhIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvb3Nfdm1zLmMKClBhdGNoIDYuMi4xMzkKUHJvYmxlbTogICAgQ29kZSBpcyByZXBlYXRlZCBpbiB0aGUgdHdvIFBlcmwgZmlsZXMuClNvbHV0aW9uOiAgIE1vdmUgY29tbW9uIGNvZGUgZnJvbSBpZl9wZXJsLnhzIGFuZCBpZl9wZXJsc2Zpby5jIHRvIHZpbS5oLgoJICAgIEFsc28gZml4IGEgcHJvYmxlbSB3aXRoIGdlbmVyYXRpbmcgcHJvdG90eXBlcy4KRmlsZXM6CSAgICBzcmMvaWZfcGVybC54cywgc3JjL2lmX3BlcmxzZmlvLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjE0MCAoYWZ0ZXIgNi4yLjEyMSkKUHJvYmxlbTogICAgTWFjOiBDb21waWxpbmcgd2l0aCBQeXRob24gYW5kIFBlcmwgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBBZGp1c3QgdGhlIGNvbmZpZ3VyZSBjaGVjayBmb3IgUHl0aG9uIHRvIHVzZSAiLWZyYW1ld29yayBQeXRob24iCgkgICAgZm9yIFB5dGhvbiAyLjMgb24gTWFjIE9TL1guCgkgICAgTW92ZSAiLWxkbCIgYWZ0ZXIgIkR5bmFMb2FkZXIuYSIgaW4gdGhlIGxpbmsgY29tbWFuZC4KCSAgICBDaGFuZ2UgInBlcmxsaWJzIiB0byAiUEVSTF9MSUJTIi4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9jb25maWcubWsuaW4KClBhdGNoIDYuMi4xNDEgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWM6IFRoZSBiX0ZTU3BlYyBmaWVsZCBpcyBzb21ldGltZXMgdW51c2VkLgpTb2x1dGlvbjogICBDaGFuZ2UgdGhlICNpZmRlZiB0byBGRUFUX0NXX0VESVRPUiBhbmQgZGVmaW5lZCBpdCBpbiBmZWF0dXJlLmgKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9ndWlfbWFjLmMsIHNyYy9zdHJ1Y3RzLmgsIHNyYy9mZWF0dXJlLmgKClBhdGNoIDYuMi4xNDIgKGFmdGVyIDYuMi4xMjQpClByb2JsZW06ICAgIE1hYzogYnVpbGRpbmcgd2l0aG91dCBHVUkgdGhyb3VnaCBjb25maWd1cmUgZG9lc24ndCB3b3JrLgoJICAgIFdoZW4gdGhlIHN5c3RlbSBpcyBzbG93LCB1bnBhY2tpbmcgdGhlIHJlc291cmNlIGZpbGUgdGFrZXMgdG9vCgkgICAgbG9uZy4KU29sdXRpb246ICAgRG9uJ3QgYWx3YXlzIGRlZmluZSBGRUFUX0dVSV9NQUMgd2hlbiBNQUNPUyBpcyBkZWZpbmVkLCBkZWZpbmUgaXQKCSAgICBpbiB0aGUgTWFrZWZpbGUuCgkgICAgQWRkIGEgY29uZmlndXJlIG9wdGlvbiB0byBza2lwIERhcndpbiBkZXRlY3Rpb24uCgkgICAgVXNlIGEgUHl0aG9uIHNjcmlwdCB0byB1bnBhY2sgdGhlIHJlc291cmNlcyB0byBhdm9pZCBhIHJhY2UKCSAgICBjb25kaXRpb24uIChUYXJvIE11cmFva2EpCkZpbGVzOgkgICAgTWFrZWZpbGUsIHNyYy9NYWtlZmlsZSwgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLAoJICAgIHNyYy9kZWhxeC5weSwgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMTQzClByb2JsZW06ICAgIFVzaW5nICJLIiBvbiBWaXN1YWxseSBzZWxlY3RlZCB0ZXh0IGRvZXNuJ3Qgd29yayBpZiBpdCBlbmRzIGluCgkgICAgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlci4KU29sdXRpb246ICAgSW5jbHVkZSBhbGwgdGhlIGJ5dGVzIG9mIHRoZSBsYXN0IGNoYXJhY3Rlci4gKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4xNDQKUHJvYmxlbTogICAgV2hlbiAiZzpodG1sX3VzZV9jc3MiIGlzIHNldCB0aGUgSFRNTCBoZWFkZXIgZ2VuZXJhdGVkIGJ5IHRoZQoJICAgIDJodG1sIHNjcmlwdCBpcyB3cm9uZy4KU29sdXRpb246ICAgQWRkIHRoZSBoZWFkZXIgYWZ0ZXIgYWRkaW5nIEhSRUYgZm9yIGxpbmtzLgoJICAgIEFsc28gdXNlICI6bm9ybWFsISIgaW5zdGVhZCBvZiAiOm5vcm1hbCIgdG8gYXZvaWQgbWFwcGluZ3MKCSAgICBnZXR0aW5nIGluIHRoZSB3YXkuCkZpbGVzOgkgICAgcnVudGltZS9zeW50YXgvMmh0bWwudmltCgpQYXRjaCA2LjIuMTQ1IChhZnRlciA2LjIuMTM5KQpQcm9ibGVtOiAgICBVbmRlZmluaW5nICJib29sIiBkb2Vzbid0IHdvcmsgZm9yIG9sZGVyIHN5c3RlbXMuIChXb2p0ZWsgUGlsb3J6KQpTb2x1dGlvbjogICBPbmx5IHVuZGVmaW5lICJib29sIiBvbiBNYWMgT1MuCkZpbGVzOgkgICAgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMTQ2ClByb2JsZW06ICAgIE9uIHNvbWUgc3lzdGVtcyB0aGUgcHJvdG90eXBlIGZvciBpY29udigpIGlzIHdyb25nLCBjYXVzaW5nIGEKCSAgICB3YXJuaW5nIG1lc3NhZ2UuClNvbHV0aW9uOiAgIFVzZSBhIGNhc3QgKHZvaWQgKikgdG8gYXZvaWQgdGhlIHdhcm5pbmcuIChDaGFybGVzIENhbXBiZWxsKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYywgc3JjL21ieXRlLmMKClBhdGNoIDYuMi4xNDcKUHJvYmxlbTogICAgIjpzL3BhdC9cPWNvbCgnLicpIiBhbHdheXMgcmVwbGFjZXMgd2l0aCAiMSIuClNvbHV0aW9uOiAgIFNldCB0aGUgY3Vyc29yIHRvIHRoZSBzdGFydCBvZiB0aGUgbWF0Y2ggYmVmb3JlIHN1YnN0aXR1dGluZy4KCSAgICAoSGVsbXV0IFN0aWVnbGVyKQpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4xNDgKUHJvYmxlbTogICAgQ2FuJ3QgYnJlYWsgYW4gSW5zZXJ0IGludG8gc2V2ZXJhbCB1bmRvYWJsZSBwYXJ0cy4KU29sdXRpb246ICAgQWRkIHRoZSBDVFJMLUcgdSBjb21tYW5kLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2luc2VydC50eHQsIHNyYy9lZGl0LmMKClBhdGNoIDYuMi4xNDkKUHJvYmxlbTogICAgV2hlbiB0aGUgY3Vyc29yIGlzIG9uIGEgbGluZSBwYXN0IDIxLDQ3NCw3NDggdGhlIGluZGljYXRlZAoJICAgIHBlcmNlbnRhZ2Ugb2YgdGhlIHBvc2l0aW9uIGlzIGludmFsaWQuICBXaXRoIHRoYXQgbWFueSBsaW5lcwoJICAgICIxMDAlIiBjYXVzZXMgYSBuZWdhdGl2ZSBjdXJzb3IgbGluZSBudW1iZXIsIHJlc3VsdGluZyBpbiBhIGNyYXNoLgoJICAgIChEYW5pZWwgR291am90KQpTb2x1dGlvbjogICBEaXZpZGUgYnkgMTAwIGluc3RlYWQgb2YgbXVsdGlwbHlpbmcuICBBdm9pZCBvdmVyZmxvdyB3aGVuCgkgICAgY29tcHV0aW5nIHRoZSBsaW5lIG51bWJlciBmb3IgIjEwMCUiLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V4X2NtZHMyLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjE1MApQcm9ibGVtOiAgICBXaGVuIGRvaW5nICJ2aW0gLSA8IGZpbGUiIGxpbmVzIGFyZSBicm9rZW4gYXQgTlVMIGNoYXJzLgoJICAgIChEYW5pZWwgR291am90KQpTb2x1dGlvbjogICBDaGFuZ2UgTkwgY2hhcmFjdGVycyBiYWNrIHRvIE5VTCB3aGVuIHJlYWRpbmcgZnJvbSB0aGUgdGVtcAoJICAgIGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi4xNTEKUHJvYmxlbTogICAgV2hlbiBkb2luZyAidmltIC0tcmVtb3RlICtzdGFydGluc2VydCBmaWxlIiBzb21lIGNvbW1hbmRzIGFyZQoJICAgIGluc2VydGVkIGFzIHRleHQuIChLbGF1cyBCb3NhdSkKU29sdXRpb246ICAgUHV0IGFsbCB0aGUgaW5pdCBjb21tYW5kcyBpbiBvbmUgRXggbGluZSwgbm90IHVzaW5nIGEgPENSPiwgc28KCSAgICB0aGF0IEluc2VydCBtb2RlIGlzbid0IHN0YXJ0ZWQgdG9vIGVhcmx5LgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMi4xNTIKUHJvYmxlbTogICAgVGhlIGN1cnNvcigpIGZ1bmN0aW9uIGRvZXNuJ3QgcmVzZXQgdGhlIGNvbHVtbiBvZmZzZXQgZm9yCgkgICAgJ3ZpcnR1YWxlZGl0Jy4KU29sdXRpb246ICAgUmVzZXQgdGhlIG9mZnNldCB0byB6ZXJvLiAoSGVsbXV0IFN0aWVnbGVyKQpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4xNTMKUHJvYmxlbTogICAgV2luMzI6ICI6bGFuZyBnZXJtYW4iIGRvZXNuJ3QgdXNlIEdlcm1hbiBtZXNzYWdlcy4KU29sdXRpb246ICAgQWRkIGEgdGFibGUgdG8gdHJhbnNsYXRlIHRoZSBXaW4zMiBsYW5ndWFnZSBuYW1lcyB0byB0d28tbGV0dGVyCgkgICAgbGFuZ3VhZ2UgY29kZXMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMi4xNTQKUHJvYmxlbTogICAgUHl0aG9uIGJhaWxzIG91dCB3aGVuIGdpdmluZyBhIHdhcm5pbmcgbWVzc2FnZS4gKEV1Z2VuZQoJICAgIE1pbmtvdnNraWkpClNvbHV0aW9uOiAgIFNldCBzeXMuYXJndltdIHRvIGFuIGVtcHR5IHN0cmluZy4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMi4xNTUKUHJvYmxlbTogICAgV2luMzI6IFVzaW5nICI6dGp1bXAgd3d3IiBpbiBhIGhlbHAgZmlsZSBnaXZlcyB0d28gcmVzdWx0cy4KCSAgICAoRGF2ZSBSb2JlcnRzKQpTb2x1dGlvbjogICBJZ25vcmUgZGlmZmVyZW5jZXMgYmV0d2VlbiBzbGFzaGVzIGFuZCBiYWNrc2xhc2hlcyB3aGVuIGNoZWNraW5nCgkgICAgZm9yIGlkZW50aWNhbCB0YWcgbWF0Y2hlcy4KRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMi4xNTYgKGFmdGVyIDYuMi4xMjUpClByb2JsZW06ICAgIFdpbjMyOiBOZXRiZWFucyBmYWlscyB0byBidWlsZCwgRUlOVFIgaXMgbm90IGRlZmluZWQuClNvbHV0aW9uOiAgIFJlZGVmaW5lIEVJTlRSIHRvIFdTQUVJTlRSLiAoTWlrZSBXaWxsaWFtcykKRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4yLjE1NwpQcm9ibGVtOiAgICBVc2luZyAiJXAiIGluICdlcnJvcmZvcm1hdCcgZ2l2ZXMgYSBjb2x1bW4gbnVtYmVyIHRoYXQgaXMgdG9vCgkgICAgaGlnaC4KU29sdXRpb246ICAgU2V0IHRoZSBmbGFnIHRvIHVzZSB0aGUgbnVtYmVyIGFzIGEgdmlydHVhbCBjb2x1bW4uICAoTGVmdGVyaXMKCSAgICBLb3V0c29sb3VrYXMpCkZpbGVzOgkgICAgc3JjL3F1aWNrZml4LmMKClBhdGNoIDYuMi4xNTgKUHJvYmxlbTogICAgVGhlIHNlZCBjb21tYW5kIG9uIFNvbGFyaXMgYW5kIEhQVVggZG9lc24ndCB3b3JrIGZvciBhIGxpbmUgdGhhdAoJICAgIGRvZXNuJ3QgZW5kIGluIGEgbmV3bGluZS4KU29sdXRpb246ICAgQWRkIGEgbmV3bGluZSB3aGVuIGZlZWRpbmcgdGV4dCB0byBzZWQuIChNYXJrIFdhZ2dvbmVyKQpGaWxlczoJICAgIHNyYy9jb25maWd1cmUuaW4sIHNyYy9hdXRvL2NvbmZpZ3VyZQoKUGF0Y2ggNi4yLjE1OQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIGV4cHJlc3Npb24gZm9sZGluZyBhbmQgJ2ZvbGRvcGVuJyBpcyAidW5kbyIgYW4gdW5kbwoJICAgIGNvbW1hbmQgZG9lc24ndCBhbHdheXMgb3BlbiB0aGUgZm9sZC4KU29sdXRpb246ICAgU2F2ZSBhbmQgcmVzdG9yZSB0aGUgS2V5VHlwZWQgdmFyaWFibGUgd2hlbiBldmFsdWF0aW5nICdmb2xkZXhwcicuCgkgICAgKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvZm9sZC5jCgpQYXRjaCA2LjIuMTYwClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyAiYWxsIiBhbmQgJ3NlbGVjdGlvbicgaXMgImV4Y2x1c2l2ZSIsCgkgICAgc2VsZWN0aW5nIGEgZG91YmxlLXdpZHRoIGNoYXJhY3RlciBiZWxvdyBhIHNpbmdsZS13aWR0aCBjaGFyYWN0ZXIKCSAgICBtYXkgY2F1c2UgYSBjcmFzaC4KU29sdXRpb246ICAgQXZvaWQgb3ZlcmZsb3cgb24gdW5zaWduZWQgaW50ZWdlciBkZWNyZW1lbnQuIChUYXJvIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMTYxIChleHRyYSkKUHJvYmxlbTogICAgVk1TOiBNaXNzaW5nIGhlYWRlciBmaWxlLiAgUmVhZGluZyBpbnB1dCBidXN5IGxvb3BzLgpTb2x1dGlvbjogICBJbmNsdWRlIHRlcm1kZWYuaC4gIEF2b2lkIHRoZSB1c2Ugb2YgYSB3YWl0IGZ1bmN0aW9uIGluCgkgICAgdm1zX3JlYWQoKS4gIChGcmFuayBSaWVzKQpGaWxlczoJICAgIHNyYy9vc191bml4LmgsIHNyYy9vc192bXMuYwoKUGF0Y2ggNi4yLjE2MgpQcm9ibGVtOiAgICAiOnJlZHJhdyIgZG9lc24ndCBhbHdheXMgZGlzcGxheSB0aGUgdGV4dCB0aGF0IGluY2x1ZGVzIHRoZSBjdXJzb3IKCSAgICBwb3NpdGlvbiwgZS5nLiBhZnRlciAiOmNhbGwgY3Vyc29yKDEsIDApIi4gKEV1Z2VuZSBNaW5rb3Zza2lpKQpTb2x1dGlvbjogICBDYWxsIHVwZGF0ZV90b3BsaW5lKCkgYmVmb3JlIHJlZHJhd2luZy4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjE2MwpQcm9ibGVtOiAgICAibWFrZSBpbnN0YWxsIiBtYXkgYWxzbyBjb3B5IEFBUERJUiBkaXJlY3Rvcmllcy4KU29sdXRpb246ICAgRGVsZXRlIEFBUERJUiBkaXJlY3RvcmllcywganVzdCBsaWtlIENWUyBkaXJlY3Rvcmllcy4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4xNjQgKGFmdGVyIDYuMi4xNDQpClByb2JsZW06ICAgIFdoZW4gImc6aHRtbF91c2VfY3NzIiBpcyBzZXQgdGhlIEhUTUwgaGVhZGVyIGdlbmVyYXRlZCBieSB0aGUKCSAgICAyaHRtbCBzY3JpcHQgaXMgc3RpbGwgd3JvbmcuClNvbHV0aW9uOiAgIFNlYXJjaCBmb3IgYSBzdHJpbmcgaW5zdGVhZCBvZiBqdW1waW5nIHRvIGEgZml4ZWQgbGluZSBudW1iZXIuCgkgICAgR28gdG8gdGhlIHN0YXJ0IG9mIHRoZSBsaW5lIGJlZm9yZSBpbnNlcnRpbmcgdGhlIGhlYWRlci4KCSAgICAoSmVzcyBUaHJ5c29lZSkKRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC8yaHRtbC52aW0KClBhdGNoIDYuMi4xNjUKUHJvYmxlbTogICAgVGhlIGNvbmZpZ3VyZSBjaGVja3MgaGFuZyB3aGVuIHVzaW5nIGF1dG9jb25mIDIuNTcuClNvbHV0aW9uOiAgIEludm9rZSBBQ19QUk9HUkFNX0VHUkVQIHRvIHNldCAkRUdSRVAuIChBcm9uIEdyaWZmaXMpCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjIuMTY2ClByb2JsZW06ICAgIFdoZW4gJEdaSVAgY29udGFpbnMgIi1OIiBlZGl0aW5nIGNvbXByZXNzZWQgZmlsZXMgZG9lc24ndCB3b3JrCgkgICAgcHJvcGVybHkuClNvbHV0aW9uOiAgIEFkZCAiLW4iIHRvICJnemlwIC1kIiB0byBhdm9pZCByZXN0b3JpbmcgdGhlIGZpbGUgbmFtZS4gKE95dmluZAoJICAgIEhvbG0pCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZ3ppcC52aW0KClBhdGNoIDYuMi4xNjcKUHJvYmxlbTogICAgVGhlIFB5dGhvbiBpbnRlcmZhY2UgbGVha3MgbWVtb3J5IHdoZW4gYXNzaWduaW5nIGxpbmVzIHRvIGEKCSAgICBidWZmZXIuIChTZXJnZXkgS2hvcmV2KQpTb2x1dGlvbjogICBEbyBub3QgY29weSB0aGUgbGluZSB3aGVuIGNhbGxpbmcgbWxfcmVwbGFjZSgpLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4yLjE2OApQcm9ibGVtOiAgICBQeXRob24gaW50ZXJmYWNlOiBUaGVyZSBpcyBubyB3YXkgdG8gZ2V0IHRoZSBpbmRpY2VzIGZyb20gYSByYW5nZQoJICAgIG9iamVjdC4KU29sdXRpb246ICAgQWRkIHRoZSAic3RhcnQiIGFuZCAiZW5kIiBhdHRyaWJ1dGVzLiAoTWF1cmljZSBTLiBCYXJudW0pCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jLCBydW50aW1lL2RvYy9pZl9weXRoLnR4dAoKUGF0Y2ggNi4yLjE2OQpQcm9ibGVtOiAgICBUaGUgcHJvdG90eXBlIGZvciBfWG1ibGVuKCkgYXBwZWFycyBpbiBhIHJlY2VudCBYRnJlZTg2IGhlYWRlcgoJICAgIGZpbGUsIGNhdXNpbmcgYSB3YXJuaW5nIGZvciBvdXIgcHJvdG90eXBlLiAoSGlzYXNoaSBUIEZ1amluYWthKQpTb2x1dGlvbjogICBNb3ZlIHRoZSBwcm90b3R5cGUgdG8gYW4gb3NkZWYgZmlsZSwgc28gdGhhdCBpdCdzIGZpbHRlcmVkIG91dC4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYywgc3JjL29zZGVmMi5oLmluCgpQYXRjaCA2LjIuMTcwClByb2JsZW06ICAgIFdoZW4gdXNpbmcgU3VuIFdvcmtTaG9wIHRoZSBjdXJyZW50IGRpcmVjdG9yeSBpc24ndCBjaGFuZ2VkIHRvCgkgICAgd2hlcmUgdGhlIGZpbGUgaXMuClNvbHV0aW9uOiAgIFNldCB0aGUgJ2F1dG9jaGRpcicgb3B0aW9uIHdoZW4gdXNpbmcgV29ya1Nob3AuICBBbmQgYXZvaWQgdXNpbmcKCSAgICB0aGUgYmFzZW5hbWUgd2hlbiAnYXV0b2NoZGlyJyBpcyBub3Qgc2V0LgpGaWxlczoJICAgIHNyYy9ndWlfeDExLmMsIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4xNzEgKGFmdGVyIDYuMi4xNjMpClByb2JsZW06ICAgIFRoZSAiLW9yIiBhcmd1bWVudCBvZiAiZmluZCIgZG9lc24ndCB3b3JrIGZvciBTeXNWIHN5c3RlbXMuClNvbHV0aW9uOiAgIFVzZSAiLW8iIGluc3RlYWQuIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4yLjE3MiAoYWZ0ZXIgNi4yLjE2OSkKUHJvYmxlbTogICAgVGhlIHByb3RvdHlwZSBmb3IgX1htYmxlbigpIHN0aWxsIGNhdXNlcyB0cm91YmxlLgpTb2x1dGlvbjogICBJbmNsdWRlIHRoZSBYMTEgaGVhZGVyIGZpbGUgdGhhdCBkZWZpbmVzIHRoZSBwcm90b3R5cGUuCkZpbGVzOgkgICAgc3JjL29zZGVmMi5oLmluLCBzcmMvb3NkZWYuc2gKClBhdGNoIDYuMi4xNzMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogUnVieSBpbnRlcmZhY2UgZG9lc24ndCB3b3JrIHdpdGggUnVieSAxLjguMCBmb3Igb3RoZXIKCSAgICBjb21waWxlcnMgdGhhbiBNU1ZDLgpTb2x1dGlvbjogICBGaXggdGhlIEJDNSwgQ3lnd2luIGFuZCBNaW5ndyBtYWtlZmlsZXMuIChEYW4gU2hhcnApCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1haywgc3JjL01ha2VfY3lnLm1haywgc3JjL01ha2VfbWluZy5tYWsKClBhdGNoIDYuMi4xNzQKUHJvYmxlbTogICAgQWZ0ZXIgdGhlICI6aW50cm8iIG1lc3NhZ2Ugb25seSBhIG1vdXNlIGNsaWNrIGluIHRoZSBsYXN0IGxpbmUKCSAgICBnZXRzIHBhc3QgdGhlIGhpdC1yZXR1cm4gcHJvbXB0LgpTb2x1dGlvbjogICBBY2NlcHQgYSBjbGljayBhdCBvciBiZWxvdyB0aGUgaGl0LXJldHVybiBwcm9tcHQuCkZpbGVzOgkgICAgc3JjL2d1aS5jLCBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjIuMTc1ClByb2JsZW06ICAgIENoYW5naW5nICdiYWNrdXBleHQnIGluIGEgKldyaXRlUHJlIGF1dG9jb21tYW5kIGRvZXNuJ3Qgd29yay4KCSAgICAoV2lsbGlhbSBOYXR0ZXIpClNvbHV0aW9uOiAgIE1vdmUgdGhlIHVzZSBvZiBwX2JleCB0byBhZnRlciBleGVjdXRpbmcgdGhlICpXcml0ZVByZQoJICAgIGF1dG9jb21tYW5kcy4gIEFsc28gYXZvaWRzIHJlYWRpbmcgYWxsb2NhdGVkIG1lbW9yeSBhZnRlciBmcmVlaW5nLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4yLjE3NgpQcm9ibGVtOiAgICBBY2NlbnRlZCBjaGFyYWN0ZXJzIGluIHRyYW5zbGF0ZWQgaGVscCBmaWxlcyBhcmUgbm90IGhhbmRsZWQKCSAgICBjb3JyZWN0bHkuIChGYWJpZW4gVmF5c3NpZXJlKQpTb2x1dGlvbjogICBJbmNsdWRlICIxOTItMjU1IiBpbiAnaXNrZXl3b3JkJyBmb3IgdGhlIGhlbHAgd2luZG93LgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4xNzcgKGV4dHJhKQpQcm9ibGVtOiAgICBWaXNWaW06IE9wZW5pbmcgYSBmaWxlIHdpdGggYSBzcGFjZSBpbiB0aGUgbmFtZSBkb2Vzbid0IHdvcmsuIChSb2IKCSAgICBSZXR0ZXIpICBBcmJpdHJhcnkgY29tbWFuZHMgYXJlIGJlaW5nIGV4ZWN1dGVkLiAoTmVpbCBCaXJkKQpTb2x1dGlvbjogICBQdXQgYSBiYWNrc2xhc2ggaW4gZnJvbnQgb2YgZXZlcnkgc3BhY2UgaW4gdGhlIGZpbGUgbmFtZS4KCSAgICAoR2VyYXJkIEJsYWlzKSAgVGVybWluYXRlIHRoZSBDVFJMLVwgQ1RSTC1OIGNvbW1hbmQgd2l0aCBhIE5VTC4KRmlsZXM6CSAgICBzcmMvVmlzVmltL0NvbW1hbmRzLmNwcCwgc3JjL1Zpc1ZpbS9WaXNWaW0ucmMKClBhdGNoIDYuMi4xNzgKUHJvYmxlbTogICAgUGVvcGxlIHdobyBkb24ndCBrbm93IGhvdyB0byBleGl0IFZpbSB0cnkgcHJlc3NpbmcgQ1RSTC1DLgpTb2x1dGlvbjogICBHaXZlIGEgbWVzc2FnZSBob3cgdG8gZXhpdCBWaW0gd2hlbiBDVFJMLUMgaXMgcHJlc3NlZCBhbmQgaXQKCSAgICBkb2Vzbid0IGNhbmNlbCBhbnl0aGluZy4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4xNzkgKGV4dHJhKQpQcm9ibGVtOiAgICBUaGUgZW5fZ2IgbWVzc2FnZXMgZmlsZSBpc24ndCBmb3VuZCBvbiBjYXNlIHNlbnNpdGl2ZSBzeXN0ZW1zLgpTb2x1dGlvbjogICBSZW5hbWUgZW5fZ2IgdG8gZW5fR0IuIChNaWtlIFdpbGxpYW1zKQpGaWxlczoJICAgIHNyYy9wby9lbl9nYi5wbywgc3JjL3BvL2VuX0dCLnBvLCBzcmMvcG8vTWFrZV9taW5nLm1haywKCSAgICBzcmMvcG8vTWFrZV9tdmMubWFrLCBzcmMvcG8vTWFrZWZpbGUsIHNyYy9wby9SRUFETUVfbXZjLnR4dAoKUGF0Y2ggNi4yLjE4MApQcm9ibGVtOiAgICBDb21waWxpbmcgd2l0aCBHVEsyIG9uIFdpbjMyIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgSW5jbHVkZSBnZGt3aW4zMi5oIGluc3RlYWQgb2YgZ2RreC5oLiAoU3JpbmF0aCBBdmFkaGFudWxhKQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMsIHNyYy9ndWlfZ3RrX2YuYywgc3JjL2d1aV9ndGtfeDExLmMsIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjIuMTgxIChhZnRlciA2LjIuMTcxKQpQcm9ibGVtOiAgICBUaGUgIi1vIiBhcmd1bWVudCBvZiAiZmluZCIgaGFzIGxvd2VyIHByaW9yaXR5IHRoYW4gdGhlIGltcGxpZWQKCSAgICAiYW5kIiB3aXRoICItcHJpbnQiLgpTb2x1dGlvbjogICBBZGQgcGFyZW50aGVzaXMgYXJvdW5kIHRoZSAiLW8iIGV4cHJlc3Npb24uIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4yLjE4MiAoYWZ0ZXIgNi4yLjA5NCkKUHJvYmxlbTogICAgQ29tcGlsYXRpb24gd2l0aCB0aW55IGZlYXR1cmVzIGZhaWxzIGJlY2F1c2Ugb2YgbWlzc2luZwoJICAgIGdldF9wYXN0X2hlYWQoKSBmdW5jdGlvbi4KU29sdXRpb246ICAgQWRqdXN0IHRoZSAjaWZkZWYgZm9yIGdldF9wYXN0X2hlYWQoKS4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4yLjE4MyAoYWZ0ZXIgNi4yLjE3OCkKUHJvYmxlbTogICAgV2FybmluZyBmb3IgY2hhci91bnNpZ25lZCBjaGFyIG1peHVwLgpTb2x1dGlvbjogICBVc2UgTVNHKCkgaW5zdGVhZCBvZiBtc2coKS4gKFRvbnkgTGVuZWlzKQpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjE4NApQcm9ibGVtOiAgICBXaXRoICdmb3JtYXRvcHRpb25zJyBzZXQgdG8gIjFhdyIgaW5zZXJ0aW5nIHRleHQgbWF5IGNhdXNlIHRoZQoJICAgIHBhcmFncmFwaCB0byBiZSBlbmRlZC4gKEFsYW4gU2NobWl0dCkKU29sdXRpb246ICAgVGVtcG9yYXJpbHkgYWRkIGFuIGV4dHJhIHNwYWNlIHRvIG1ha2UgdGhlIHBhcmFncmFwaCBjb250aW51ZQoJICAgIGFmdGVyIG1vdmluZyB0aGUgd29yZCBhZnRlciB0aGUgY3Vyc29yIHRvIHRoZSBuZXh0IGxpbmUuCgkgICAgQWxzbyBmb3JtYXQgd2hlbiBwcmVzc2luZyBFc2MuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL25vcm1hbC5jLCBzcmMvcHJvdG8vZWRpdC5wcm8KClBhdGNoIDYuMi4xODUKUHJvYmxlbTogICAgUmVzdG9yaW5nIGEgc2Vzc2lvbiB3aXRoIHplcm8taGVpZ2h0IHdpbmRvd3MgZG9lcyBub3Qgd29yawoJICAgIHByb3Blcmx5LiAoQ2hhcmxlcyBDYW1wYmVsbCkKU29sdXRpb246ICAgQWNjZXB0IGEgemVybyBhcmd1bWVudCB0byAiOnJlc2l6ZSIgYXMgaW50ZW5kZWQuICBBZGQgYSB3aW5kb3cKCSAgICBudW1iZXIgYXJndW1lbnQgdG8gIjpyZXNpemUiIHRvIGJlIGFibGUgdG8gc2V0IHRoZSBzaXplIG9mIG90aGVyCgkgICAgd2luZG93cywgYmVjYXVzZSB0aGUgY3VycmVudCB3aW5kb3cgY2Fubm90IGJlIHplcm8taGVpZ2h0LgoJICAgIEZpeCB0aGUgZXhwbG9yZXIgcGx1Z2luIHRvIGF2b2lkIGNoYW5naW5nIHRoZSB3aW5kb3cgc2l6ZXMuICBBZGQKCSAgICB0aGUgd2lucmVzdGNtZCgpIGZ1bmN0aW9uIGZvciB0aGlzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBydW50aW1lL3BsdWdpbi9leHBsb3Jlci52aW0sIHNyYy9ldmFsLmMsCgkgICAgc3JjL2V4X2NtZHMuaCwgc3JjL2V4X2RvY21kLmMsIHNyYy9wcm90by93aW5kb3cucHJvLCBzcmMvd2luZG93LmMKClBhdGNoIDYuMi4xODYgKGFmdGVyIDYuMi4xODUpClByb2JsZW06ICAgIERvY3VtZW50YXRpb24gZmlsZSBldmFsLnR4dCBjb250YWlucyBleGFtcGxlcyB3aXRob3V0IGluZGVudC4KU29sdXRpb246ICAgSW5zZXJ0IHRoZSBpbmRlbnQuICBBbHNvIGZpeCBvdGhlciBtaXN0YWtlcy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dAoKUGF0Y2ggNi4yLjE4NwpQcm9ibGVtOiAgICBVc2luZyBJbnN1cmUrKyByZXZlYWxzIGEgbnVtYmVyIG9mIGJ1Z3MuICAoRG9taW5pcXVlIFBlbGxlKQpTb2x1dGlvbjogICBJbml0aWFsaXplIHZhcmlhYmxlcyB3aGVyZSBuZWVkZWQuICBGcmVlIGFsbG9jYXRlZCBtZW1vcnkgdG8gYXZvaWQKCSAgICBsZWFrcy4gIEZpeCBjb21wYXJpbmcgdGFncyB0byBhdm9pZCByZWFkaW5nIHBhc3QgYWxsb2NhdGVkIG1lbW9yeS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9kaWZmLmMsIHNyYy9maWxlaW8uYywgc3JjL21hcmsuYywgc3JjL21pc2MxLmMsCgkgICAgc3JjL21pc2MyLmMsIHNyYy9vcHMuYywgc3JjL29wdGlvbi5jLCBzcmMvdGFnLmMsIHNyYy91aS5jCgpQYXRjaCA2LjIuMTg4IChleHRyYSkKUHJvYmxlbTogICAgTVMtV2luZG93czogTXVsdGktYnl0ZSBjaGFyYWN0ZXJzIGluIGEgZmlsZW5hbWUgY2F1c2UgdHJvdWJsZSBmb3IKCSAgICB0aGUgd2luZG93IHRpdGxlLgpTb2x1dGlvbjogICBSZXR1cm4gd2hlbiB0aGUgd2lkZSBmdW5jdGlvbiBmb3Igc2V0dGluZyB0aGUgdGl0bGUgZGlkIGl0cyB3b3JrLgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMi4xODkKUHJvYmxlbTogICAgV2hlbiBzZXR0aW5nICd2aW1pbmZvJyBhZnRlciBlZGl0aW5nIGEgbmV3IGJ1ZmZlciBpdHMgbWFya3MgYXJlCgkgICAgbm90IHN0b3JlZC4gKEtlaXRoIFJvYmVydHMpClNvbHV0aW9uOiAgIFNldCB0aGUgImJfbWFya3NfcmVhZCIgZmxhZyB3aGVuIHNraXBwaW5nIHRvIHJlYWQgbWFya3MgZnJvbSB0aGUKCSAgICB2aW1pbmZvIGZpbGUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuMTkwClByb2JsZW06ICAgIFdoZW4gZWRpdGluZyBhIGNvbXByZXNzZWQgZmlsZXMsIG1hcmtzIGFyZSBsb3N0LgpTb2x1dGlvbjogICBBZGQgdGhlICI6bG9ja21hcmtzIiBtb2RpZmllciBhbmQgdXNlIGl0IGluIHRoZSBnemlwIHBsdWdpbi4KCSAgICBNYWtlIGV4aXN0cygpIGFsc28gY2hlY2sgZm9yIGNvbW1hbmQgbW9kaWZpZXJzLCBzbyB0aGF0IHRoZQoJICAgIGV4aXN0ZW5jZSBvZiAiOmxvY2ttYXJrcyIgY2FuIGJlIGNoZWNrZWQgZm9yLgoJICAgIEFsc28gYWRkICI6a2VlcG1hcmtzIiB0byBhdm9pZCB0aGF0IG1hcmtzIGFyZSBkZWxldGVkIHdoZW4KCSAgICBmaWx0ZXJpbmcgdGV4dC4KCSAgICBXaGVuIGRlbGV0aW5nIGxpbmVzIHB1dCBtYXJrcyAnQSAtICdaIGFuZCAnMCAtICc5IGF0IHRoZSBmaXJzdAoJICAgIGRlbGV0ZWQgbGluZSBpbnN0ZWFkIG9mIGNsZWFyaW5nIHRoZSBtYXJrLiAgVGhleSB3ZXJlIGtlcHQgaW4gdGhlCgkgICAgdmltaW5mbyBmaWxlIGFueXdheS4KCSAgICBBdm9pZCB0aGF0IHRoZSBnemlwIHBsdWdpbiBwdXRzIGRlbGV0ZWQgdGV4dCBpbiByZWdpc3RlcnMuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvbW90aW9uLnR4dCwgcnVudGltZS9wbHVnaW4vZ3ppcC52aW0sIHNyYy9leF9jbWRzLmMsCgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9tYXJrLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMi4xOTEKUHJvYmxlbTogICAgVGhlIGludHJvIG1lc3NhZ2UgaXMgb3V0ZGF0ZWQuICBJbmZvcm1hdGlvbiBhYm91dCBzcG9uc29yaW5nIGFuZAoJICAgIHJlZ2lzdGVyaW5nIGlzIG1pc3NpbmcuClNvbHV0aW9uOiAgIFNob3cgaW5mbyBhYm91dCBzcG9uc29yaW5nIGFuZCByZWdpc3RlcmluZyBWaW0gaW4gdGhlIGludHJvCgkgICAgbWVzc2FnZSBub3cgYW5kIHRoZW4uICBBZGQgaGVscCBmaWxlIGFib3V0IHNwb25zb3JpbmcuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvaGVscC50eHQsIHJ1bnRpbWUvZG9jL3Nwb25zb3IudHh0LCBydW50aW1lL2RvYy90YWdzLAoJICAgIHJ1bnRpbWUvbWVudS52aW0sIHNyYy92ZXJzaW9uLmMKClBhdGNoIDYuMi4xOTIKUHJvYmxlbTogICAgVXNpbmcgQ1RSTC1UIGFuZCBDVFJMLUQgd2l0aCAiZ1IiIG1lc3NlcyB1cCB0aGUgdGV4dC4gIChKb25hdGhhbgoJICAgIEhhbmtpbnMpClNvbHV0aW9uOiAgIEF2b2lkIGNhbGxpbmcgY2hhbmdlX2luZGVudCgpIHJlY3Vyc2l2ZWx5LgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMi4xOTMKUHJvYmxlbTogICAgV2hlbiByZWNhbGxpbmcgYSBzZWFyY2ggcGF0dGVybiBmcm9tIHRoZSBoaXN0b3J5IGZyb20gYSAiOnMsYS9jLCIKCSAgICBjb21tYW5kIHRoZSAnLycgZW5kcyB0aGUgc2VhcmNoIHN0cmluZy4gKEpDIHZhbiBXaW5rZWwpClNvbHV0aW9uOiAgIFN0b3JlIHRoZSBzZXBhcmF0b3IgY2hhcmFjdGVyIHdpdGggdGhlIGhpc3RvcnkgZW50cmllcy4gIEVzY2FwZQoJICAgIGNoYXJhY3RlcnMgd2hlbiBuZWVkZWQsIHJlcGxhY2UgdGhlIG9sZCBzZXBhcmF0b3Igd2l0aCB0aGUgbmV3IG9uZS4KCSAgICBBbHNvIGZpeGVzIHRoYXQgcmVjYWxsaW5nIGEgIi8iIHNlYXJjaCBmb3IgYSAiPyIgY29tbWFuZCBtZXNzZXMgdXAKCSAgICB0cmFpbGluZyBmbGFncy4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL25vcm1hbC5jLCBzcmMvcHJvdG8vZXhfZ2V0bG4ucHJvLAoJICAgIHNyYy9zZWFyY2guYywgc3JjL3RhZy5jCgpQYXRjaCA2LjIuMTk0IChhZnRlciA2LjIuMDY4KQpQcm9ibGVtOiAgICBGb3IgTmV0QmVhbnMsIGluc3RlYWQgb2Ygd3JpdGluZyB0aGUgZmlsZSBhbmQgc2VuZGluZyBhbiBldmVudAoJICAgIGFib3V0IGl0LCB0ZWxsIE5ldEJlYW5zIHRvIHdyaXRlIHRoZSBmaWxlLgpTb2x1dGlvbjogICBBZGQgdGhlICJzYXZlIiBjb21tYW5kLCAibmV0YmVhbnNCdWZmZXIiIGNvbW1hbmQgYW5kCgkgICAgImJ1dHRvblJlbGVhc2UiIGV2ZW50IHRvIHRoZSBuZXRiZWFucyBwcm90b2NvbC4gIFVwZGF0ZWQgdGhlCgkgICAgaW50ZXJmYWNlIHRvIHZlcnNpb24gMi4yLiAgKEdvcmRvbiBQcmlldXIpCgkgICAgQWxzbzogb3BlbiBhIGZvbGQgd2hlbiB0aGUgY3Vyc29yIGhhcyBiZWVuIHBvc2l0aW9uZWQuCgkgICAgQWxzbzogZml4IG1lbW9yeSBsZWFrLCBmcmVlIHJlc3VsdCBvZiBuYl9xdW90ZSgpLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL25ldGJlYW5zLnR4dCwgc3JjL2ZpbGVpby5jLCBzcmMvbmV0YmVhbnMuYywKCSAgICBzcmMvbm9ybWFsLmMsIHNyYy9wcm90by9uZXRiZWFucy5wcm8sIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMi4xOTUgKGFmdGVyIDYuMi4xOTApClByb2JsZW06ICAgIENvbXBpbGluZyBmYWlscyBmb3IgbWlzc2luZyBDUE9fUkVNTUFSSyBzeW1ib2wuClNvbHV0aW9uOiAgIEFkZCB0aGUgcGF0Y2ggSSBmb3Jnb3QgdG8gaW5jbHVkZS4uLgpGaWxlczoJICAgIHNyYy9vcHRpb24uaAoKUGF0Y2ggNi4yLjE5NiAoYWZ0ZXIgNi4yLjE5MSkKUHJvYmxlbTogICAgUmVidWlsZGluZyB0aGUgZG9jdW1lbnRhdGlvbiBkb2Vzbid0IHVzZSB0aGUgc3BvbnNvci50eHQgZmlsZS4KU29sdXRpb246ICAgQWRkIHNwb25zb3IudHh0IHRvIHRoZSBNYWtlZmlsZS4gKENocmlzdGlhbiBKLiBSb2JpbnNvbikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9NYWtlZmlsZQoKUGF0Y2ggNi4yLjE5NwpQcm9ibGVtOiAgICBJdCBpcyBub3QgcG9zc2libGUgdG8gZm9yY2UgYSByZWRyYXcgb2Ygc3RhdHVzIGxpbmVzLiAoR2FyeQoJICAgIEpvaG5zb24pClNvbHV0aW9uOiAgIEFkZCB0aGUgIjpyZWRyYXdzdGF0dXMiIGNvbW1hbmQuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvdmFyaW91cy50eHQsIHNyYy9leF9jbWRzLmgsIHNyYy9leF9kb2NtZC5jLAoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4yLjE5OApQcm9ibGVtOiAgICBBIGZldyBtZXNzYWdlcyBhcmUgbm90IHRyYW5zbGF0ZWQuIChFcm5lc3QgQWRyb2d1ZSkKU29sdXRpb246ICAgTWFyayB0aGUgbWVzc2FnZXMgdG8gYmUgdHJhbnNsYXRlZC4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjIuMTk5IChhZnRlciA2LjIuMTk0KQpQcm9ibGVtOiAgICBWaW0gZG9lc24ndCB3b3JrIHBlcmZlY3RseSB3ZWxsIHdpdGggTmV0QmVhbnMuClNvbHV0aW9uOiAgIFdoZW4gTmV0QmVhbnMgc2F2ZXMgdGhlIGZpbGUsIHJlc2V0IHRoZSB0aW1lc3RhbXAgdG8gYXZvaWQgImZpbGUKCSAgICBjaGFuZ2VkIiB3YXJuaW5ncy4gIENsb3NlIGEgYnVmZmVyIGluIGEgcHJvcGVyIHdheS4gIERvbid0IHRyeQoJICAgIGdpdmluZyBhIGRlYnVnIG1lc3NhZ2Ugd2l0aCBhbiBpbnZhbGlkIHBvaW50ZXIuICBTZW5kIGEKCSAgICBuZXdEb3RBbmRNYXJrIG1lc3NhZ2Ugd2hlbiBuZWVkZWQuICBSZXBvcnQgYSBjaGFuZ2UgYnkgdGhlICJyIgoJICAgIGNvbW1hbmQgdG8gTmV0QmVhbnMuICAoR29yZG9uIFByaWV1cikKRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYywgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMjAwClByb2JsZW06ICAgIFdoZW4gcmVjb3ZlcmluZyBhIGZpbGUsICdmaWxlZm9ybWF0JyBpcyBhbHdheXMgdGhlIGRlZmF1bHQsIHRodXMKCSAgICB3cml0aW5nIHRoZSBmaWxlIG1heSByZXN1bHQgaW4gZGlmZmVyZW5jZXMuIChQZW5lbG9wZSBGdWRkKQpTb2x1dGlvbjogICBCZWZvcmUgcmVjb3ZlcmluZyB0aGUgZmlsZSB0cnkgcmVhZGluZyB0aGUgb3JpZ2luYWwgZmlsZSB0byBvYnRhaW4KCSAgICB0aGUgdmFsdWVzIG9mICdmaWxlZm9ybWF0JywgJ2ZpbGVlbmNvZGluZycsIGV0Yy4KRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCgpQYXRjaCA2LjIuMjAxClByb2JsZW06ICAgIFdoZW4gJ2F1dG93cml0ZWFsbCcgaXMgc2V0ICI6cWFsbCIgc3RpbGwgcmVmdXNlcyB0byBleGl0IGlmIHRoZXJlCgkgICAgaXMgYSBtb2RpZmllZCBidWZmZXIuIChBbnRvaW5lIE1lY2hlbHluY2spClNvbHV0aW9uOiAgIEF0dGVtcHQgd3JpdGluZyBtb2RpZmllZCBidWZmZXJzIGFzIGludGVuZGVkLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjIuMjAyClByb2JsZW06ICAgIEZpbGV0eXBlIG5hbWVzIG9mIENISUxMIGFuZCBjaCBzY3JpcHQgYXJlIGNvbmZ1c2luZy4KU29sdXRpb246ICAgUmVuYW1lICJjaCIgdG8gImNoaWxsIiBhbmQgImNoc2NyaXB0IiB0byAiY2giLgpGaWxlczoJICAgIHJ1bnRpbWUvZmlsZXR5cGUudmltLCBydW50aW1lL21ha2VtZW51LnZpbSwgcnVudGltZS9zeW5tZW51LnZpbQoJICAgIHJ1bnRpbWUvc3ludGF4L2NoLnZpbSwgcnVudGltZS9zeW50YXgvY2hpbGwudmltCgpQYXRjaCA2LjIuMjAzClByb2JsZW06ICAgIFdpdGggY2hhcmFjdGVyd2lzZSB0ZXh0IHRoYXQgaGFzIG1vcmUgdGhhbiBvbmUgbGluZSwgIjNQIiB3b3JrcwoJICAgIHdyb25nLiAgIjNwIiBoYXMgdGhlIHNhbWUgcHJvYmxlbS4gIFRoZXJlIGFsc28gaXMgYSBkaXNwbGF5CgkgICAgcHJvYmxlbS4gKERhbmllbCBHb3Vqb3QpClNvbHV0aW9uOiAgIFBlcmZvcm0gY2hhcmFjdGVyd2lzZSBwdXRzIHdpdGggYSBjb3VudCBpbiB0aGUgcmlnaHQgcG9zaXRpb24uCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjIuMjA0IChhZnRlciA2LjIuMDg2KQpQcm9ibGVtOiAgICAiXV0iIGluIGEgZmlsZSB3aXRoIGNsb3NlZCBmb2xkcyBtb3ZlcyB0byB0aGUgZW5kIG9mIHRoZSBmaWxlLgoJICAgIChOYW0gU3VuZ0h5dW4pClNvbHV0aW9uOiAgIEZpbmQgb25lIHBvc2l0aW9uIGluIGVhY2ggY2xvc2VkIGZvbGQsIHRoZW4gbW92ZSB0byBhZnRlciB0aGUgZm9sZC4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMi4yMDUgKGV4dHJhKQpQcm9ibGVtOiAgICBNUy1XaW5kb3dzOiBXaGVuIHRoZSB0YXNrYmFyIGlzIGF0IHRoZSBsZWZ0IG9yIHRvcCBvZiB0aGUgc2NyZWVuLAoJICAgIHRoZSBWaW0gd2luZG93IHBsYWNlbWVudCBpcyB3cm9uZy4KU29sdXRpb246ICAgQ29tcHV0ZSB0aGUgc2l6ZSBhbmQgcG9zaXRpb24gb2YgdGhlIHdpbmRvdyBjb3JyZWN0bHkuIChUYXJvCgkgICAgTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjIuMjA2ClByb2JsZW06ICAgIE11bHRpLWJ5dGUgY2hhcmFjdGVycyBjYW5ub3QgYmUgdXNlZCBhcyBob3RrZXlzIGluIGEgY29uc29sZQoJICAgIGRpYWxvZy4gIChNYXR0aWFzIEVya2lzc29uKQpTb2x1dGlvbjogICBIYW5kbGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzIHByb3Blcmx5LiAgQWxzbyBwdXQgKCkgb3IgW10gYXJvdW5kCgkgICAgZGVmYXVsdCBob3RrZXlzLgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy9tYWNyb3MuaAoKUGF0Y2ggNi4yLjIwNwpQcm9ibGVtOiAgICBXaGVuICdlbmNvZGluZycgaXMgYSBtdWx0aS1ieXRlIGVuY29kaW5nLCBleHBhbmRpbmcgYW4KCSAgICBhYmJyZXZpYXRpb24gdGhhdCBzdGFydHMgd2hlcmUgaW5zZXJ0aW9uIHN0YXJ0ZWQgcmVzdWx0cyBpbgoJICAgIGNoYXJhY3RlcnMgYmVmb3JlIHRoZSBpbnNlcnRpb24gdG8gYmUgZGVsZXRlZC4gIChYaWFuZ2ppYW5nIE1hKQpTb2x1dGlvbjogICBTdG9wIHNlYXJjaGluZyBsZWZ0d2FyZHMgZm9yIHRoZSBzdGFydCBvZiB0aGUgd29yZCBhdCB0aGUgcG9zaXRpb24KCSAgICB3aGVyZSBpbnNlcnRpb24gc3RhcnRlZC4KRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jCgpQYXRjaCA2LjIuMjA4ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgZm9sZCBtYXJrZXJzLCB0aHJlZSBsaW5lcyBpbiBhIHJvdyBoYXZlIHRoZSBzdGFydAoJICAgIG1hcmtlciBhbmQgZGVsZXRpbmcgdGhlIGZpcnN0IG9uZSB3aXRoICJkZCIsIGEgbmVzdGVkIGZvbGQgaXMgbm90CgkgICAgZGVsZXRlZC4gIChLYW1pbCBCdXJ6eW5za2kpCgkgICAgVXNpbmcgbWFya2VyIGZvbGRpbmcsIGEgbGV2ZWwgMSBmb2xkIGRvZXNuJ3Qgc3RvcCB3aGVuIGl0IGlzCgkgICAgZm9sbG93ZWQgYnkgInt7ezIiLCBzdGFydGluZyBhIGxldmVsIDIgZm9sZC4KU29sdXRpb246ICAgRG9uJ3Qgc3RvcCB1cGRhdGluZyBmb2xkcyBhdCB0aGUgZW5kIG9mIGEgY2hhbmdlIHdoZW4gdGhlIG5lc3RpbmcKCSAgICBsZXZlbCBvZiBmb2xkcyBpcyBsYXJnZXIgdGhhbiB0aGUgZm9sZCBsZXZlbC4KCSAgICBDb3JyZWN0bHkgY29tcHV0ZSB0aGUgbnVtYmVyIG9mIGZvbGRzIHRoYXQgc3RhcnQgYXQgInt7ezIiLgoJICAgIEFsc28gYXZvaWQgYSBjcmFzaCBmb3IgYSBOVUxMIHBvaW50ZXIuCkZpbGVzOgkgICAgc3JjL2ZvbGQuYwoKUGF0Y2ggNi4yLjIwOQpQcm9ibGVtOiAgICBBIGJvZ3VzIGZvbGQgaXMgY3JlYXRlZCB3aGVuIHVzaW5nICJQIiB3aGlsZSB0aGUgY3Vyc29yIGlzIGluIHRoZQoJICAgIG1pZGRsZSBvZiBhIGNsb3NlZCBmb2xkLiAoS2FtaWwgQnVyenluc2tpKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBsaW5lIG51bWJlciB3aGVyZSBtYXJrcyBhcmUgbW9kaWZpZWQgZm9yIGNsb3NlZCBmb2xkcy4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMi4yMTAgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWMgT1NYOiBhbnRpYWxpYXNlZCBmb250cyBhcmUgbm90IHN1cHBvcnRlZC4KU29sdXRpb246ICAgQWRkIHRoZSAnYW50aWFsaWFzJyBvcHRpb24gdG8gc3dpdGNoIG9uIGFudGlhbGlhc2luZyBvbiBNYWMgT1NYCgkgICAgMTAuMiBhbmQgbGF0ZXIuIChQZXRlciBDdWNrYSkKRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgc3JjL2d1aV9tYWMuYywgc3JjL29wdGlvbi5oLCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi4yMTEgKGV4dHJhKQpQcm9ibGVtOiAgICBDb2RlIGZvciBoYW5kbGluZyBmaWxlIGRyb3BwZWQgb24gVmltIGlzIGR1cGxpY2F0ZWQuClNvbHV0aW9uOiAgIE1vdmUgdGhlIGNvbW1vbiBjb2RlIHRvIGd1aV9oYW5kbGVfZHJvcCgpLgoJICAgIEFkZCBjb2RlIHRvIGRyb3AgdGhlIGZpbGVzIGluIHRoZSB3aW5kb3cgdW5kZXIgdGhlIGN1cnNvci4KCSAgICBTdXBwb3J0IGRyYWcmZHJvcCBvbiB0aGUgTWFjaW50b3NoLiAgKFRhcm8gTXVyYW9rYSkKCSAgICBXaGVuIGRyb3BwaW5nIGEgZGlyZWN0b3J5IG5hbWUgZWRpdCB0aGF0IGRpcmVjdG9yeSAodXNpbmcgdGhlCgkgICAgZXhwbG9yZXIgcGx1Z2luKQoJICAgIEZpeCB0aGF0IGNoYW5naW5nIGRpcmVjdG9yeSB3aXRoIFNoaWZ0IHByZXNzZWQgZGlkbid0IHdvcmsgZm9yCgkgICAgcmVsYXRpdmUgcGF0aCBuYW1lcy4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9ndWkuYywgc3JjL2d1aV9ndGtfeDExLmMsIHNyYy9ndWlfbWFjLmMsCgkgICAgc3JjL2d1aV93NDguYywgc3JjL3Byb3RvL2ZpbGVpby5wcm8sIHNyYy9wcm90by9ndWkucHJvCgpQYXRjaCA2LjIuMjEyIChhZnRlciA2LjIuMTk5KQpQcm9ibGVtOiAgICBOZXRCZWFuczogUmVwbGFjaW5nIHdpdGggYSBjb3VudCBpcyBub3QgaGFuZGxlZCBjb3JyZWN0bHkuClNvbHV0aW9uOiAgIE1vdmUgcmVwb3J0aW5nIHRoZSBjaGFuZ2Ugb3V0c2lkZSBvZiB0aGUgbG9vcCBmb3IgdGhlIGNvdW50LgoJICAgIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjIxMyAoYWZ0ZXIgNi4yLjIwOCkKUHJvYmxlbTogICAgVXNpbmcgbWFya2VyIGZvbGRpbmcsICJ7e3sxIiBkb2Vzbid0IHN0YXJ0IGEgbmV3IGZvbGQgd2hlbiBhbHJlYWR5CgkgICAgYXQgZm9sZCBsZXZlbCAxLiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgQ29ycmVjdGx5IGNvbXB1dGUgdGhlIG51bWJlciBvZiBmb2xkcyB0aGF0IHN0YXJ0IGF0ICJ7e3sxIi4KRmlsZXM6CSAgICBzcmMvZm9sZC5jCgpQYXRjaCA2LjIuMjE0IChhZnRlciA2LjIuMjExKSAoZXh0cmEpClByb2JsZW06ICAgIFdhcm5pbmcgZm9yIGFuIHVudXNlZCB2YXJpYWJsZS4KU29sdXRpb246ICAgRGVsZXRlIHRoZSBkZWNsYXJhdGlvbi4gKEJpbGwgTWNDYXJ0aHkpCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4yLjIxNQpQcm9ibGVtOiAgICBOZXRCZWFuczogcHJvYmxlbXMgc2F2aW5nIGFuIHVubW9kaWZpZWQgZmlsZS4KU29sdXRpb246ICAgQWRkIGlzTmV0YmVhbnNNb2RpZmllZCgpIGZ1bmN0aW9uLiAgRGlzYWJsZSBuZXRiZWFuc191bm1vZGlmaWVkKCkuCgkgICAgKEdvcmRvbiBQcmlldXIpCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvbmV0YmVhbnMuYywgc3JjL3Byb3RvL25ldGJlYW5zLnBybywKCSAgICBydW50aW1lL2RvYy9uZXRiZWFucy50eHQsIHJ1bnRpbWUvZG9jL3RhZ3MKClBhdGNoIDYuMi4yMTYgKGFmdGVyIDYuMi4yMDYpClByb2JsZW06ICAgIE11bHRpLWJ5dGUgY2hhcmFjdGVycyBzdGlsbCBjYW5ub3QgYmUgdXNlZCBhcyBob3RrZXlzIGluIGEgY29uc29sZQoJICAgIGRpYWxvZy4gIChNYXR0aWFzIEVya2lzc29uKQpTb2x1dGlvbjogICBNYWtlIGdldF9rZXlzdHJva2UoKSBoYW5kbGUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjIuMjE3ClByb2JsZW06ICAgIEdUSzogc2V0dGluZyB0aGUgdGl0bGUgZG9lc24ndCBhbHdheXMgd29yayBjb3JyZWN0bHkuClNvbHV0aW9uOiAgIEludm9rZSBndWlfbWNoX3NldHRpdGxlKCkuIChUb21hcyBTdGVobGlrKQpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMi4yMTgKUHJvYmxlbTogICAgV2FybmluZyBmb3IgZnVuY3Rpb24gd2l0aG91dCBwcm90b3R5cGUuClNvbHV0aW9uOiAgIEFkZCBhcmd1bWVudCB0eXBlcyB0byB0aGUgbXNnQ0IgZmllbGQgb2YgdGhlIEJhbGxvb25FdmFsIHN0cnVjdC4KRmlsZXM6CSAgICBzcmMvZ3VpX2JldmFsLmgKClBhdGNoIDYuMi4yMTkKUHJvYmxlbTogICAgU3ludGF4IGhpZ2hsaWdodGluZyBoYW5ncyBvbiBhbiBlbXB0eSBtYXRjaCBvZiBhbiBpdGVtIHdpdGggYQoJICAgIG5leHRncm91cC4gIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBSZW1lbWJlciB0aGF0IHRoZSBpdGVtIGhhcyBhbHJlYWR5IG1hdGNoZWQgYW5kIGRvbid0IG1hdGNoIGl0CgkgICAgYWdhaW4gYXQgdGhlIHNhbWUgcG9zaXRpb24uCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjIuMjIwClByb2JsZW06ICAgIFdoZW4gYSBWaW0gc2VydmVyIHJ1bnMgaW4gYSBjb25zb2xlIGEgcmVtb3RlIGNvbW1hbmQgaXNuJ3QgaGFuZGxlZAoJICAgIGJlZm9yZSBhIGtleSBpcyB0eXBlZC4gIChKb3NodWEgTmV1aGVpc2VsKQpTb2x1dGlvbjogICBEb24ndCB0cnkgcmVhZGluZyBtb3JlIGlucHV0IHdoZW4gYSBjbGllbnQtc2VydmVyIGNvbW1hbmQgaGFzIGJlZW4KCSAgICByZWNlaXZlZC4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuMjIxClByb2JsZW06ICAgIE5vIGZpbGUgbmFtZSBjb21wbGV0aW9uIGZvciAiOmNzY29wZSBhZGQiLgpTb2x1dGlvbjogICBBZGQgdGhlIFhGSUxFIGZsYWcgdG8gIjpjc2NvcGUiLiAoR2FyeSBKb2huc29uKQpGaWxlczoJICAgIHNyYy9leF9jbWRzLmgKClBhdGNoIDYuMi4yMjIKUHJvYmxlbTogICAgVXNpbmcgIi0tcmVtb3RlIiBzZXZlcmFsIHRpbWVzIG9uIGEgcm93IG9ubHkgb3BlbnMgc29tZSBvZiB0aGUKCSAgICBmaWxlcy4gKERhbnkgU3QtQW1hbnQpClNvbHV0aW9uOiAgIERvbid0IGRlbGV0ZSBhbGwgdHlwZWFoZWFkIHdoZW4gdGhlIHNlcnZlciByZWNlaXZlcyBhIGNvbW1hbmQgZnJvbQoJICAgIGEgY2xpZW50LCBvbmx5IGRlbGV0ZSB0eXBlZCBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMi4yMjMKUHJvYmxlbTogICAgQ3Njb3BlOiBBdm9pZCBhIGhhbmcgd2hlbiBjc2NvcGUgd2FpdHMgZm9yIGEgcmVzcG9uc2Ugd2hpbGUgVmltCgkgICAgd2FpdHMgZm9yIGEgcHJvbXB0LgoJICAgIEVycm9yIG1lc3NhZ2VzIGZyb20gQ3Njb3BlIG1lc3MgdXAgdGhlIGRpc3BsYXkuClNvbHV0aW9uOiAgIERldGVjdCB0aGUgaGl0LWVudGVyIG1lc3NhZ2UgYW5kIHJlc3BvbmQgYnkgc2VuZGluZyBhIHJldHVybgoJICAgIGNoYXJhY3RlciB0byBjc2NvcGUuIChHYXJ5IEpvaG5zb24pCgkgICAgVXNlIEVNU0coKSBhbmQgc3RyZXJyb3IoKSB3aGVuIHBvc3NpYmxlLiAgUmVwbGFjZSBwZXJyb3IoKSB3aXRoCgkgICAgUEVSUk9SKCkgZXZlcnl3aGVyZSwgYWRkIGVtc2czKCkuCkZpbGVzOgkgICAgc3JjL2RpZmYuYywgc3JjL2lmX2NzY29wZS5jLCBzcmMvaW50ZWdyYXRpb24uYywgc3JjL21lc3NhZ2UuYywKCSAgICBzcmMvcHJvdG8vbWVzc2FnZS5wcm8sIHNyYy9taXNjMi5jLCBzcmMvbmV0YmVhbnMuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMjI0ClByb2JsZW06ICAgIE1hYzogQ2FuJ3QgY29tcGlsZSB3aXRoIHNtYWxsIGZlYXR1cmVzLiAoQXhlbCBLaWVsaG9ybikKU29sdXRpb246ICAgQWxzbyBpbmNsdWRlIHZpbV9jaGRpcmZpbGUoKSB3aGVuIGNvbXBpbGluZyBmb3IgdGhlIE1hYy4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4yLjIyNQpQcm9ibGVtOiAgICBOZXRCZWFuczogUmVwb3J0ZWQgbW9kaWZpZWQgc3RhdGUgaXNuJ3QgZXhhY3RseSByaWdodC4KU29sdXRpb246ICAgUmVwb3J0IGEgZmlsZSBiZWluZyBtb2RpZmllZCBpbiB0aGUgTmV0QmVhbnMgd2F5LgpGaWxlczoJICAgIHNyYy9uZXRiZWFucy5jCgpQYXRjaCA2LjIuMjI2IChhZnRlciA2LjIuMTA3KSAoZXh0cmEpClByb2JsZW06ICAgIFRoZSAid3MyLTMyLmxpYiIgZmlsZSBpc24ndCBhbHdheXMgYXZhaWxhYmxlLgpTb2x1dGlvbjogICBVc2UgIldTb2NrMzIubGliIiBpbnN0ZWFkLiAoVGFybyBNdXJhb2thLCBEYW4gU2hhcnApCkZpbGVzOgkgICAgc3JjL01ha2VfY3lnLm1haywgc3JjL01ha2VfbWluZy5tYWssIHNyYy9NYWtlX212Yy5tYWsKClBhdGNoIDYuMi4yMjcgKGV4dHJhKQpQcm9ibGVtOiAgICBUaGUgIlBDIiBzeW1ib2wgaXMgZGVmaW5lZCBidXQgbm90IHVzZWQgYW55d2hlcmUuClNvbHV0aW9uOiAgIFJlbW92ZSAiLURQQyIgZnJvbSB0aGUgbWFrZWZpbGVzLgpGaWxlczoJICAgIHNyYy9NYWtlX2JjMy5tYWssIHNyYy9NYWtlX2JjNS5tYWssIHNyYy9NYWtlX2N5Zy5tYWssCgkgICAgc3JjL01ha2VfbWluZy5tYWsKClBhdGNoIDYuMi4yMjgKUHJvYmxlbTogICAgUmVjZWl2aW5nIENUUkwtXCBDVFJMLU4gYWZ0ZXIgdHlwaW5nICJmIiBvciAibSIgZG9lc24ndCBzd2l0Y2ggVmltCgkgICAgYmFjayB0byBOb3JtYWwgbW9kZS4gIFNhbWUgZm9yIENUUkwtXCBDVFJMLUcuClNvbHV0aW9uOiAgIENoZWNrIGlmIHRoZSBjaGFyYWN0ZXIgdHlwZWQgYWZ0ZXIgYSBjb21tYW5kIGlzIENUUkwtXCBhbmQgb2J0YWluCgkgICAgYW5vdGhlciBjaGFyYWN0ZXIgdG8gY2hlY2sgZm9yIENUUkwtTiBvciBDVFJMLUcsIHdhaXRpbmcgdXAgdG8KCSAgICAndHRpbWVvdXRsZW4nIG1zZWMuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMjI5ClByb2JsZW06ICAgICI6ZnVuY3Rpb24iIHdpdGggYSBuYW1lIHRoYXQgdXNlcyBtYWdpYyBjdXJsaWVzIGRvZXMgbm90IHdvcmsKCSAgICBpbnNpZGUgYSBmdW5jdGlvbi4gIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBTa2lwIG92ZXIgdGhlIGZ1bmN0aW9uIG5hbWUgcHJvcGVybHkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjIzMCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBhIGNvbXBsZXggcGF0dGVybiBtYXkgY2F1c2UgYSBjcmFzaC4KU29sdXRpb246ICAgVXNlIF9fdHJ5IGFuZCBfX2V4Y2VwdCB0byBjYXRjaCB0aGUgZXhjZXB0aW9uIGFuZCBoYW5kbGUgaXQKCSAgICBncmFjZWZ1bGx5LCB3aGVuIHBvc3NpYmxlLiAgQWRkIG15cmVzZXRzdGtvZmx3KCkgdG8gcmVzZXQgdGhlCgkgICAgc3RhY2sgb3ZlcmZsb3cuIChCZW5qYW1pbiBQZXRlcnNvbikKRmlsZXM6CSAgICBzcmMvTWFrZV9iYzUubWFrLCBzcmMvb3NfbXN3aW4uYyBzcmMvb3Nfd2luMzIuYywgc3JjL29zX3dpbjMyLmgsCgkgICAgc3JjL3Byb3RvL29zX3dpbjMyLnBybywgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjIuMjMxIChhZnRlciA2LjIuMDQ2KQpQcm9ibGVtOiAgICBWYXJpb3VzIHByb2JsZW1zIHdoZW4gYW4gZXJyb3IgZXhjZXB0aW9uIGlzIHJhaXNlZCBmcm9tIHdpdGhpbiBhCgkgICAgYnVpbHRpbiBmdW5jdGlvbi4gIFdoZW4gaXQgaXMgaW52b2tlZCB3aGlsZSBldmFsdWF0aW5nIGFyZ3VtZW50cwoJICAgIHRvIGEgZnVuY3Rpb24gZm9sbG93aW5nIGFyZ3VtZW50cyBhcmUgc3RpbGwgZXZhbHVhdGVkLiAgV2hlbgoJICAgIGludm9rZWQgd2l0aCBhIGxpbmUgcmFuZ2UgaXQgd2lsbCBiZSBjYWxsZWQgZm9yIHJlbWFpbmluZyBsaW5lcy4KU29sdXRpb246ICAgVXBkYXRlICJmb3JjZV9hYm9ydCIgYWxzbyBhZnRlciBjYWxsaW5nIGEgYnVpbHRpbiBmdW5jdGlvbiwgc28KCSAgICB0aGF0IGFib3J0aW5nKCkgYWx3YXlzIHJldHVybnMgdGhlIGNvcnJlY3QgdmFsdWUuIChTZXJ2YXRpdXMKCSAgICBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2V2YWwuYywgc3JjL2V4X2V2YWwuYywgc3JjL3Byb3RvL2V4X2V2YWwucHJvLAoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q0OS5vaywgc3JjL3Rlc3RkaXIvdGVzdDQ5LnZpbQoKUGF0Y2ggNi4yLjIzMgpQcm9ibGVtOiAgICAiOnB5dGhvbiB2aW0uY29tbWFuZCgncHl0aG9uIHByaW50IDIqMicpIiBjcmFzaGVzIFZpbS4gIChFdWdlbmUKCSAgICBNaW5rb3Zza2lpKQpTb2x1dGlvbjogICBEaXNhbGxvdyBleGVjdXRpbmcgYSBQeXRob24gY29tbWFuZCByZWN1cnNpdmVseSBhbmQgZ2l2ZSBhbiBlcnJvcgoJICAgIG1lc3NhZ2UuCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMjMzClByb2JsZW06ICAgIE9uIE1hYyBPU1ggYWRkaW5nIC1wdGhyZWFkIGZvciBQeXRob24gb25seSBnZW5lcmF0ZXMgYSB3YXJuaW5nLgoJICAgIFRoZSB0ZXN0IGZvciBQZXJsIHRocmVhZHMgcmVqZWN0cyBQZXJsIHdoaWxlIGl0J3MgT0suCgkgICAgVGNsIGRvZXNuJ3Qgd29yayBhdCBhbGwuCgkgICAgVGhlIHRlc3QgZm9yIFJ1YnkgZmFpbHMgaWYgcnVieSBleGlzdHMgYnV0IHRoZXJlIGFyZSBubyBoZWFkZXIKCSAgICBmaWxlcy4gIFRoZSBSdWJ5IGxpYnJhcnkgaXNuJ3QgZGV0ZWN0ZWQgcHJvcGVybHkKU29sdXRpb246ICAgQXZvaWQgYWRkaW5nIC1wdGhyZWFkIG9uIE1hYyBPU1guICBBY2NlcHQgUGVybCB0aHJlYWRzIHdoZW4gaXQncwoJICAgIG5vdCB0aGUgNS41IHRocmVhZHMuCgkgICAgVXNlIHRoZSBUY2wgZnJhbWV3b3JrIGZvciBoZWFkZXIgZmlsZXMuICBGb3IgUnVieSByZW5hbWUgY1dpbmRvdwoJICAgIHRvIGNWaW1XaW5kb3cgdG8gYXZvaWQgYSBuYW1lIGNsYXNoLiAoS2VuIFNjb3R0KQoJICAgIE9ubHkgZW5hYmxlIFJ1Ynkgd2hlbiB0aGUgaGVhZGVyIGZpbGVzIGNhbiBiZSBmb3VuZC4gIFVzZSAiLWxydWJ5IgoJICAgIGluc3RlYWQgb2YgImxpYnJ1YnkuYSIgd2hlbiBpdCBjYW4ndCBiZSBmb3VuZC4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9pZl9ydWJ5LmMKClBhdGNoIDYuMi4yMzQKUHJvYmxlbTogICAgR1RLIDIgR1VJOiAiOnNwIiBhbmQgdGhlICI6cSIgbGVhdmVzIHRoZSBjdXJzb3Igb24gdGhlIGNvbW1hbmQKCSAgICBsaW5lLgpTb2x1dGlvbjogICBGbHVzaCBvdXRwdXQgYmVmb3JlIHJlbW92aW5nIHNjcm9sbGJhcnMuICBBbHNvIGRvIHRoaXMgaW4gb3RoZXIKCSAgICBwbGFjZXMgd2hlcmUgZ3VpX21jaF8qKCkgZnVuY3Rpb25zIGFyZSBpbnZva2VkLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMsIHNyYy9vcHRpb24uYywgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjIuMjM1IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IEN1cnNvciBpc24ndCByZW1vdmVkIHdpdGggYSAyNXg4MCB3aW5kb3cgYW5kIGRvaW5nOgoJICAgICIxODMwaWE8RXNjPjQwMGEtPEVzYz4wdzAiLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpTb2x1dGlvbjogICBSZW1vdmUgdGhlIGNhbGwgdG8gZ3VpX3VuZHJhd19jdXJzb3IoKSBmcm9tIGd1aV9tY2hfaW5zZXJ0X2xpbmVzKCkuCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4yLjIzNgpQcm9ibGVtOiAgICBVc2luZyBndmltIHdpdGggQWdpZGUgZ2l2ZXMgImNvbm5lY3Rpb24gbG9zdCIgZXJyb3IgbWVzc2FnZXMuClNvbHV0aW9uOiAgIE9ubHkgZ2l2ZSB0aGUgImNvbm5lY3Rpb24gbG9zdCIgbWVzc2FnZSB3aGVuIHRoZSBidWZmZXIgd2FzIG9uY2UKCSAgICBvd25lZCBieSBOZXRCZWFucy4KRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYywgc3JjL3N0cnVjdHMuaAoKUGF0Y2ggNi4yLjIzNwpQcm9ibGVtOiAgICBHVEsgMjogVGhhaSB0ZXh0IGlzIGRyYXduIHdyb25nLiAgSXQgY2hhbmdlcyB3aGVuIG1vdmluZyB0aGUKCSAgICBjdXJzb3Igb3ZlciBpdC4KU29sdXRpb246ICAgRGlzYWJsZSB0aGUgc2hhcGluZyBlbmdpbmUsIGl0IG1vdmVzIGNvbWJpbmluZyBjaGFyYWN0ZXJzIHRvIGEKCSAgICB3cm9uZyBwb3NpdGlvbiBhbmQgY29tYmluZXMgY2hhcmFjdGVycywgd2hpbGUgZHJhd2luZyB0aGUgY3Vyc29yCgkgICAgZG9lc24ndCBjb21iaW5lIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMi4yMzggKGFmdGVyIDYuMi4yMzEpClByb2JsZW06ICAgICI6ZnVuY3Rpb24iIGRvZXMgbm90IHdvcmsgaW5zaWRlIGEgd2hpbGUgbG9vcC4gKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIEFkZCBnZXRfd2hpbGVfbGluZSgpIGFuZCBwYXNzIGl0IHRvIGRvX29uZV9jbWQoKSB3aGVuIGluIGEgd2hpbGUKCSAgICBsb29wLCBzbyB0aGF0IGFsbCBsaW5lcyBhcmUgc3RvcmVkIGFuZCBjYW4gYmUgdXNlZCBhZ2FpbiB3aGVuCgkgICAgcmVwZWF0aW5nIHRoZSBsb29wLgoJICAgIEFkanVzdCB0ZXN0IDQ5IHNvIHRoYXQgaXQgY2hlY2tzIGZvciB0aGUgZml4ZWQgcHJvYmxlbXMuCgkgICAgKFNlcnZhdGl1cyBCcmFuZHQpCkZpbGVzOgkgICAgc3JjL2RpZ3JhcGguYywgc3JjL2V4X2NtZHMyLmMsIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZXZhbC5jLAoJICAgIHNyYy9wcm90by9leF9jbWRzMi5wcm8sIHNyYy9wcm90by9leF9kb2NtZC5wcm8sCgkgICAgc3JjL3Rlc3RkaXIvdGVzdDQ5LmluLCBzcmMvdGVzdGRpci90ZXN0NDkub2ssCgkgICAgc3JjL3Rlc3RkaXIvdGVzdDQ5LnZpbQoKUGF0Y2ggNi4yLjIzOQpQcm9ibGVtOiAgICBHVEsgMjogV2l0aCBjbG9zZWQgZm9sZHMgdGhlIGFycm93IGJ1dHRvbnMgb2YgYSB2ZXJ0aWNhbCBzY3JvbGxiYXIKCSAgICBvZnRlbiBkb2Vzbid0IHNjcm9sbC4gKE1vc2hlIEthbWluc2t5KQpTb2x1dGlvbjogICBIYWNraXNoIHNvbHV0aW9uOiBEZXRlY3QgdGhhdCB0aGUgYnV0dG9uIHdhcyBwcmVzc2VkIGZyb20gdGhlCgkgICAgbW91c2UgcG9pbnRlciBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpLmMKClBhdGNoIDYuMi4yNDAKUHJvYmxlbTogICAgR1RLIDI6IFNlYXJjaGluZyBmb3IgYml0bWFwcyBmb3IgdGhlIHRvb2xiYXIgZG9lc24ndCB3b3JrIGFzIHdpdGgKCSAgICBvdGhlciBzeXN0ZW1zLiAgTmVlZCB0byBleHBsaWNpdGx5IHVzZSAiaWNvbj1uYW1lIi4gIChOZWQgS29ueiwKCSAgICBDaHJpc3RpYW4gSi4gIFJvYmluc29uKQpTb2x1dGlvbjogICBTZWFyY2ggZm9yIGljb25zIGxpa2UgZG9uZSBmb3IgTW90aWYuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYwoKUGF0Y2ggNi4yLjI0MQpQcm9ibGVtOiAgICBHVEsgMjogU2VhcmNoIGFuZCBTZWFyY2gvUmVwbGFjZSBkaWFsb2dzIGFyZSBzeW5jZWQsIHRoYXQgbWFrZXMgbm8KCSAgICBzZW5zZS4gIEJ1dHRvbnMgYXJlIHNvbWV0aW1lcyBncmV5ZWQtb3V0LiAoSmVyZW15IE1lc3NlbmdlcikKU29sdXRpb246ICAgUmVtb3ZlIHRoZSBjb2RlIHRvIHN5bmMgdGhlIHR3byBkaWFsb2dzLiAgQWRqdXN0IHRoZSBjb2RlIHRvIHJlYWN0CgkgICAgdG8gYW4gZW1wdHkgc2VhcmNoIHN0cmluZyB0byBhbHNvIHdvcmsgZm9yIEdUSzIuIChEYXZpZCBOZWNhcykKRmlsZXM6CSAgICBzcmMvZ3VpX2d0ay5jCgpQYXRjaCA2LjIuMjQyClByb2JsZW06ICAgIEdub21lOiAidmltIC0taGVscCIgb25seSBzaG93cyB0aGUgR25vbWUgYXJndW1lbnRzLCBub3QgdGhlIFZpbQoJICAgIGFyZ3VtZW50cy4KU29sdXRpb246ICAgRG9uJ3QgbGV0IHRoZSBHbm9tZSBjb2RlIHJlbW92ZSB0aGUgIi0taGVscCIgYXJndW1lbnQgYW5kIGRvbid0CgkgICAgZXhpdCBhdCB0aGUgZW5kIG9mIHVzYWdlKCkuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMsIHNyYy9tYWluLmMKClBhdGNoIDYuMi4yNDMgKGV4dHJhKQpQcm9ibGVtOiAgICBNYWM6IERyb3BwaW5nIGEgZmlsZSBvbiBhIFZpbSBpY29uIGNhdXNlcyBhIGhpdC1lbnRlciBwcm9tcHQuClNvbHV0aW9uOiAgIE1vdmUgdGhlIGRyb3BwZWQgZmlsZXMgdG8gdGhlIGdsb2JhbCBhcmd1bWVudCBsaXN0LCBpbnN0ZWFkIG9mIHRoZQoJICAgIHVzdWFsIGRyb3AgaGFuZGxpbmcuIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvbWFpbi5jLCBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjIuMjQ0ClByb2JsZW06ICAgICc6ZWNobyAiXHhmNyInIGRpc3BsYXlzIHRoZSBpbGxlZ2FsIGJ5dGUgYXMgaWYgaXQgd2FzIGEgY2hhcmFjdGVyCgkgICAgYW5kIGxlYXZlcyAiY2hvIiBhZnRlciBpdC4KU29sdXRpb246ICAgV2hlbiBjaGVja2luZyB0aGUgbGVuZ3RoIG9mIGEgVVRGLTggYnl0ZSBzZXF1ZW5jZSBhbmQgaXQncyBzaG9ydGVyCgkgICAgdGhhbiB0aGUgbnVtYmVyIG9mIGJ5dGVzIGF2YWlsYWJsZSwgYXNzdW1lIGl0J3MgYW4gaWxsZWdhbCBieXRlLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjIuMjQ1ClByb2JsZW06ICAgIENvbXBsZXRpb24gZG9lc24ndCB3b3JrIGZvciAiOmtlZXBtYXJrcyIgYW5kICI6bG9ja21hcmtzIi4KU29sdXRpb246ICAgQWRkIHRoZSBjb21tYW5kIG1vZGlmaWVycyB0byB0aGUgdGFibGUgb2YgY29tbWFuZHMuIChNYWRva2EKCSAgICBNYWNoaXRhbmkpCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuaCwgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMi4yNDYKUHJvYmxlbTogICAgTWFjOiBTdGFydGluZyBWaW0gZnJvbSBGaW5kZXIgZG9lc24ndCBzaG93IGVycm9yIG1lc3NhZ2VzLgpTb2x1dGlvbjogICBSZWNvZ25pemUgdGhhdCBvdXRwdXQgaXMgYmVpbmcgZGlzcGxheWVkIGJ5IHN0ZGVyciBiZWluZwoJICAgICIvZGV2L2NvbnNvbGUiLiAgKEVja2VoYXJkIEJlcm5zKQpGaWxlczoJICAgIHNyYy9tYWluLmMsIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMi4yNDcgKGFmdGVyIDYuMi4xOTMpClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBzZWFyY2ggcGF0dGVybiBmcm9tIHRoZSB2aW1pbmZvIGZpbGUgdGhlIGxhc3QKCSAgICBjaGFyYWN0ZXIgaXMgcmVwbGFjZWQgd2l0aCBhICcvJy4KU29sdXRpb246ICAgU3RvcmUgdGhlIHNlcGFyYXRvciBjaGFyYWN0ZXIgaW4gdGhlIHJpZ2h0IHBsYWNlLiAoS2VsdmluIExlZSkKRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4yLjI0OApQcm9ibGVtOiAgICBHVEs6IFdoZW4gWElNIGlzIGVuYWJsZWQgbm9ybWFsICIyIiBhbmQga2V5cGFkICIyIiBjYW5ub3QgYmUKCSAgICBkaXN0aW5ndWlzaGVkLgpTb2x1dGlvbjogICBEZXRlY3QgdGhhdCBYSU0gY2hhbmdlcyB0aGUga2V5cGFkIGtleSB0byB0aGUgZXhwZWN0ZWQgQVNDSUkKCSAgICBjaGFyYWN0ZXIgYW5kIGZhbGwgYmFjayB0byB0aGUgbm9uLVhJTSBjb2RlLiAoTmVpbCBCaXJkKQpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvbWJ5dGUuYywgc3JjL3Byb3RvL21ieXRlLnBybwoKUGF0Y2ggNi4yLjI0OQpQcm9ibGVtOiAgICAiOmNuZXh0IiBtb3ZlcyB0byB0aGUgZXJyb3IgaW4gdGhlIG5leHQgZmlsZSwgYnV0IHRoZXJlIGlzIG5vCgkgICAgbWV0aG9kIHRvIGdvIGJhY2suClNvbHV0aW9uOiAgIEFkZCAiOmNwZmlsZSIgYW5kICI6Y05maWxlIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oLCBzcmMvcXVpY2tmaXguYywgc3JjL3ZpbS5oLCBydW50aW1lL2RvYy9xdWlja2ZpeC50eHQKClBhdGNoIDYuMi4yNTAKUHJvYmxlbTogICAgTWVtb3J5IGxlYWtzIHdoZW4gdXNpbmcgc2lnbnMuIChYYXZpZXIgZGUgR2F5ZSkKU29sdXRpb246ICAgRGVsZXRlIHRoZSBsaXN0IG9mIHNpZ25zIHdoZW4gdW5sb2FkaW5nIGEgYnVmZmVyLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4yLjI1MQpQcm9ibGVtOiAgICBHVEs6IFRoZSAndicgZmxhZyBpbiAnZ3Vpb3B0aW9ucycgZG9lc24ndCB3b3JrLiAoU3RldmUgSGFsbCkKCSAgICBPcmRlciBvZiBidXR0b25zIGlzIHJldmVyc2VkIGZvciBHVEsgMi4yLjQuICBEb24ndCBhbHdheXMgZ2V0CgkgICAgZm9jdXMgYmFjayBhZnRlciBoYW5kbGluZyBhIGRpYWxvZy4KU29sdXRpb246ICAgTWFrZSBidXR0b25zIGFwcGVhciB2ZXJ0aWNhbGx5IHdoZW4gZGVzaXJlZC4gIFJldmVyc2UgdGhlIG9yZGVyIGluCgkgICAgd2hpY2ggYnV0dG9ucyBhcmUgYWRkZWQgdG8gYSBkaWFsb2cuICBNb3ZlIG1vdXNlIHBvaW50ZXIgYXJvdW5kCgkgICAgd2hlbiB0aGUgZGlhbG9nIGlzIGRvbmUgYW5kIHdlIGRvbid0IGhhdmUgZm9jdXMuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYwoKUGF0Y2ggNi4yLjI1MiAoZXh0cmEsIGFmdGVyIDYuMi4yNDMpClByb2JsZW06ICAgIE1hYzogRHJvcHBpbmcgYSBmaWxlIG9uIGEgVmltIGljb24gY2F1c2VzIGEgaGl0LWVudGVyIHByb21wdCBmb3IKCSAgICBNYWMgT1MgY2xhc3NpYy4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSAjaWZkZWYgZnJvbSB0aGUgY29kZSB0aGF0IGZpeGVzIGl0IGZvciBNYWMgT1NYLgpGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMKClBhdGNoIDYuMi4yNTMKUHJvYmxlbTogICAgV2hlbiAndGFnc3RhY2snIGlzIG5vdCBzZXQgYSAiOnRhZyBpZCIgY29tbWFuZCBkb2VzIG5vdCB3b3JrIGFmdGVyCgkgICAgYSAiOnRqdW1wIiBjb21tYW5kLgpTb2x1dGlvbjogICBTZXQgIm5ld190YWciIHdoZW4gJ3RhZ3N0YWNrJyBpc24ndCBzZXQuIChHLiBOYXJlbmRyYW4pCkZpbGVzOgkgICAgc3JjL3RhZy5jCgpQYXRjaCA2LjIuMjU0ClByb2JsZW06ICAgIE1heSBydW4gb3V0IG9mIHNwYWNlIGZvciBlcnJvciBtZXNzYWdlcy4KU29sdXRpb246ICAgS2VlcCByb29tIGZvciB0d28gbW9yZSBieXRlcy4KRmlsZXM6CSAgICBzcmMvcXVpY2tmaXguYwoKUGF0Y2ggNi4yLjI1NQpQcm9ibGVtOiAgICBHVEs6IEEgbmV3IGl0ZW0gaW4gdGhlIHBvcHVwIG1lbnUgaXMgcHV0IGp1c3QgYWZ0ZXIgaW5zdGVhZCBvZgoJICAgIGp1c3QgYmVmb3JlIHRoZSByaWdodCBpdGVtLiAoR2FicmllbCBaYWNobWFubikKU29sdXRpb246ICAgRG9uJ3QgaW5jcmVtZW50IHRoZSBtZW51IGl0ZW0gaW5kZXguCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYwoKUGF0Y2ggNi4yLjI1NgpQcm9ibGVtOiAgICBNYWM6ICJtYWNyb21hbiIgZW5jb2RpbmcgaXNuJ3QgcmVjb2duaXplZCwgbmVlZCB0byB1c2UKCSAgICAiOGJpdC1tYWNyb21hbiIuClNvbHV0aW9uOiAgIFJlY29nbml6ZSAibWFjcm9tYW4iIHdpdGggYW4gYWxpYXMgIm1hYyIuIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjI1NyAoYWZ0ZXIgNi4yLjI1MCkKUHJvYmxlbTogICAgU2lnbnMgYXJlIGRlbGV0ZWQgZm9yICI6YmRlbCIsIGJ1dCB0aGV5IGNvdWxkIHN0aWxsIGJlIHVzZWZ1bC4KU29sdXRpb246ICAgRGVsZXRlIHNpZ25zIG9ubHkgZm9yICI6YndpcGUiLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4yLjI1OApQcm9ibGVtOiAgICBHVUk6IGNhbid0IGRpc2FibGUgKGdyZXktb3V0KSBhIHBvcHVwIG1lbnUgaXRlbS4gIChBaml0IFRoYWtrYXIpClNvbHV0aW9uOiAgIExvb3Agb3ZlciB0aGUgcG9wdXAgbWVudXMgZm9yIGFsbCBtb2Rlcy4KRmlsZXM6CSAgICBzcmMvbWVudS5jCgpQYXRjaCA2LjIuMjU5ClByb2JsZW06ICAgIElmIHRoZXJlIGFyZSBtZXNzYWdlcyB3aGVuIGV4aXRpbmcsIG9uIHRoZSBjb25zb2xlIHRoZXJlIGlzIGEKCSAgICBoaXQtZW50ZXIgcHJvbXB0IHdoaWxlIHRoZSBtZXNzYWdlIGNhbiBiZSByZWFkOyBpbiB0aGUgR1VJIHRoZQoJICAgIG1lc3NhZ2UgbWF5IG5vdCBiZSB2aXNpYmxlLgpTb2x1dGlvbjogICBVc2UgdGhlIGhpdC1lbnRlciBwcm9tcHQgd2hlbiB0aGVyZSBpcyBhbiBlcnJvciBtZXNzYWdlIGZyb20KCSAgICB3cml0aW5nIHRoZSB2aW1pbmZvIGZpbGUgb3IgYXV0b2NvbW1hbmRzLCBvciB3aGVuIHRoZXJlIGlzIGFueQoJICAgIG91dHB1dCBpbiB0aGUgR1VJIGFuZCAndmVyYm9zZScgaXMgc2V0LiAgRG9uJ3QgdXNlIGEgaGl0LWVudGVyCgkgICAgcHJvbXB0IGZvciB0aGUgbm9uLUdVSSB2ZXJzaW9uIHVubGVzcyB0aGVyZSBpcyBhbiBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMi4yNjAKUHJvYmxlbTogICAgR1RLIDI6IENhbid0IHF1aXQgYSBkaWFsb2cgd2l0aCA8RXNjPi4KCSAgICBHVEsgMSBhbmQgMjogPEVudGVyPiBhbHdheXMgZ2l2ZXMgYSByZXN1bHQsIGV2ZW4gd2hlbiB0aGUgZGVmYXVsdAoJICAgIGJ1dHRvbiBoYXMgYmVlbiBkaXNhYmxlZC4KU29sdXRpb246ICAgSGFuZGxlIHRoZXNlIGtleXMgZXhwbGljaXRseS4gIFdoZW4gbm8gZGVmYXVsdCBidXR0b24gaXMgc3BlY2lmaWVkCgkgICAgdXNlIHRoZSBmaXJzdCBvbmUgKHdvcmtzIG1vc3RseSBsaWtlIGl0IHdhcyBiZWZvcmUpLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrLmMKClBhdGNoIDYuMi4yNjEKUHJvYmxlbTogICAgV2hlbiAnYXV0b2luZGVudCcgYW5kICdjaW5kZW50JyBhcmUgc2V0IGFuZCBhIGxpbmUgaXMgcmVjb2duaXplZAoJICAgIGFzIGEgY29tbWVudCwgc3RhcnRpbmcgYSBuZXcgbGluZSB3b24ndCBkbyAnY2luZGVudCcgZm9ybWF0dGluZy4KU29sdXRpb246ICAgQWxzbyB1c2UgJ2NpbmRlbnQnIGZvcm1hdHRpbmcgZm9yIGxpbmVzIHRoYXQgYXJlIHVzZWQgYXMgYQoJICAgIGNvbW1lbnQuIChTZXJ2YXRpdXMgQnJhbmR0KQpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjIuMjYyClByb2JsZW06ICAgIDEgQ1RSTC1XIHcgYmVlcHMsIGV2ZW4gdGhvdWdoIGdvaW5nIHRvIHRoZSBmaXJzdCB3aW5kb3cgaXMKCSAgICBwb3NzaWJsZS4gKENoYXJsZXMgQ2FtcGJlbGwpClNvbHV0aW9uOiAgIERvbid0IGJlZXAuCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjIuMjYzClByb2JsZW06ICAgIExpbnQgd2FybmluZ3M6IER1cGxpY2F0ZSBmdW5jdGlvbiBwcm90b3R5cGVzLCBkdXBsaWNhdGUgbWFjcm9zLAoJICAgIHVzZSBvZiBhIHplcm8gY2hhcmFjdGVyIGluc3RlYWQgb2YgYSB6ZXJvIHBvaW50ZXIsIHVudXNlZAoJICAgIHZhcmlhYmxlLiAgQ2xlYXJpbmcgYWxsb2NhdGVkIG1lbW9yeSBpbiBhIGNvbXBsaWNhdGVkIHdheS4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBmdW5jdGlvbiBwcm90b3R5cGVzIGZyb20gZmFyc2kuaC4gIFJlbW92ZSB0aGUKCSAgICBkdXBsaWNhdGVkIGxpbmVzIGluIGtleW1hcC5oLiAgQ2hhbmdlIGdldHZjb2woKSBhcmd1bWVudCBmcm9tIE5VTAoJICAgIHRvIE5VTEwuICBSZW1vdmUgdGhlICJjb2wiIHZhcmlhYmxlIGluIHJlZ21hdGNoKCkuICBVc2UKCSAgICBsYWxsb2NfY2xlYXIoKSBpbnN0ZWFkIG9mIGxhbGxvYygpLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL2ZhcnNpLmgsIHNyYy9rZXltYXAuaCwgc3JjL29wcy5jLCBzcmMvcmVnZXhwLmMsIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4yLjI2NCAoYWZ0ZXIgNi4yLjI0NykKUHJvYmxlbTogICAgV3JpdGluZyBwYXN0IGFsbG9jYXRlZCBtZW1vcnkgd2hlbiB1c2luZyBhIGNvbW1hbmQgbGluZSBmcm9tIHRoZQoJICAgIHZpbWluZm8gZmlsZS4KU29sdXRpb246ICAgU3RvcmUgdGhlIE5VTCBpbiB0aGUgcmlnaHQgcGxhY2UuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMi4yNjUKUHJvYmxlbTogICAgQWx0aG91Z2ggIjpzZXQiIGlzIG5vdCBhbGxvd2VkIGluIHRoZSBzYW5kYm94LCAiOmxldCAmb3B0ID0gdmFsIgoJICAgIHdvcmtzLgpTb2x1dGlvbjogICBEbyBhbGxvdyBjaGFuZ2luZyBvcHRpb25zIGluIHRoZSBzYW5kYm94LCBidXQgbm90IHRoZSBvbmVzIHRoYXQKCSAgICBjYW4ndCBiZSBjaGFuZ2VkIGZyb20gYSBtb2RlbGluZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oLCBzcmMvb3B0aW9ucy5jCgpQYXRjaCA2LjIuMjY2ClByb2JsZW06ICAgIFdoZW4gcmVkaXJlY3Rpbmcgb3V0cHV0IGFuZCB1c2luZyAiOnNpbGVudCIsIGxpbmUgYnJlYWtzIGFyZQoJICAgIG1pc3NpbmcgZnJvbSBvdXRwdXQgb2YgIjptYXAiIGFuZCAiOnRzZWxlY3QiLiAgQWxpZ25tZW50IG9mCgkgICAgY29sdW1ucyBpcyB3cm9uZy4KU29sdXRpb246ICAgSW5zZXJ0IGEgbGluZSBicmVhayB3aGVyZSAibXNnX2RpZG91dCIgd2FzIHRlc3RlZC4gIFVwZGF0ZSBtc2dfY29sCgkgICAgd2hlbiByZWRpcmVjdGluZyBhbmQgdXNpbmcgIjpzaWxlbnQiLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMsIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMi4yNjcgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogIiYmIiBpbiBhIHRlYXJvZmYgbWVudSBpcyBub3Qgc2hvd24uIChMdWMgSGVybWl0dGUpClNvbHV0aW9uOiAgIFVzZSB0aGUgIm5hbWUiIGl0ZW0gZnJvbSB0aGUgbWVudSBpbnN0ZWFkIG9mIHRoZSAiZG5hbWUiIGl0ZW0uCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYywgc3JjL21lbnUuYwoKUGF0Y2ggNi4yLjI2OApQcm9ibGVtOiAgICBHVUk6IFdoZW4gY2hhbmdpbmcgJ2d1aW9wdGlvbnMnIHBhcnQgb2YgdGhlIHdpbmRvdyBtYXkgYmUgb2ZmCgkgICAgc2NyZWVuLiAoUmFuZGFsbCBNb3JyaXMpClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgc2l6ZSBvZiB0aGUgd2luZG93IHdoZW4gY2hhbmdpbmcgJ2d1aW9wdGlvbnMnLCBidXQgb25seQoJICAgIHdoZW4gYWRkaW5nIHNvbWV0aGluZy4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMi4yNjkKUHJvYmxlbTogICAgRGlmZiBtb2RlIGRvZXMgbm90IGhpZ2hsaWdodCBhIGNoYW5nZSBpbiBhIGNvbWJpbmluZyBjaGFyYWN0ZXIuCgkgICAgKFJhcGhhZWwgRmlua2VsKQpTb2x1dGlvbjogICBNYWtlIGRpZmZfZmluZF9jaGFuZ2UoKSBtdWx0aS1ieXRlIGF3YXJlOiBmaW5kIHRoZSBzdGFydCBieXRlIG9mCgkgICAgYSBjaGFyYWN0ZXIgdGhhdCBjb250YWlucyBhIGNoYW5nZS4KRmlsZXM6CSAgICBzcmMvZGlmZi5jCgpQYXRjaCA2LjIuMjcwClByb2JsZW06ICAgIENvbXBsZXRpb24gaW4gSW5zZXJ0IG1vZGUsIHRoZW4gcmVwZWF0aW5nIHdpdGggIi4iLCBkb2Vzbid0IGhhbmRsZQoJICAgIGNvbXBvc2luZyBjaGFyYWN0ZXJzIGluIHRoZSBjb21wbGV0ZWQgdGV4dC4gKFJhcGhhZWwgRmlua2VsKQpTb2x1dGlvbjogICBEb24ndCBza2lwIG92ZXIgY29tcG9zaW5nIGNoYXJzIHdoZW4gYWRkaW5nIGNvbXBsZXRlZCB0ZXh0IHRvIHRoZQoJICAgIHJlZG8gYnVmZmVyLgpGaWxlczoJICAgIHNyYy9nZXRjaGFyLmMKClBhdGNoIDYuMi4yNzEKUHJvYmxlbTogICAgTmV0QmVhbnM6IENhbid0IGRvICJ0YWlsIC1mIiBvbiB0aGUgbG9nLiAgUGFzc2luZyBzb2NrZXQgaW5mbyB3aXRoCgkgICAgYW4gYXJndW1lbnQgb3IgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IHNlY3VyZS4KU29sdXRpb246ICAgV2FpdCBhZnRlciBpbml0aWFsaXppbmcgdGhlIGxvZy4gIEFsbG93IHBhc3NpbmcgdGhlIHNvY2tldCBpbmZvCgkgICAgdGhyb3VnaCBhIGZpbGUuIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL25ldGJlYW5zLnR4dCwgc3JjL21haW4uYywgc3JjL25ldGJlYW5zLmMKClBhdGNoIDYuMi4yNzIKUHJvYmxlbTogICAgV2hlbiB0aGUgInBvIiBkaXJlY3RvcnkgZXhpc3RzLCBidXQgInBvL01ha2VmaWxlIiBkb2Vzbid0LAoJICAgIGJ1aWxkaW5nIGZhaWxzLiAgTWFrZSBsb29wcyB3aGVuIHRoZSAicG8iIGRpcmVjdG9yeSBoYXMgYmVlbgoJICAgIGRlbGV0ZWQgYWZ0ZXIgcnVubmluZyBjb25maWd1cmUuClNvbHV0aW9uOiAgIENoZWNrIGZvciB0aGUgInBvL01ha2VmaWxlIiBpbnN0ZWFkIG9mIGp1c3QgdGhlICJwbyIgZGlyZWN0b3J5LgoJICAgIENoZWNrIHRoaXMgYWdhaW4gYmVmb3JlIHRyeWluZyB0byBydW4gbWFrZSB3aXRoIHRoYXQgTWFrZWZpbGUuCkZpbGVzOgkgICAgc3JjL2F1dG8vY29uZmlndXJlLCBzcmMvY29uZmlndXJlLmluLCBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4yNzMKUHJvYmxlbTogICAgQ2hhbmdpbmcgdGhlIHNvcnQgb3JkZXIgaW4gYW4gZXhwbG9yZXIgd2luZG93IGZvciBhbiBlbXB0eQoJICAgIGRpcmVjdG9yeSBwcm9kdWNlcyBlcnJvciBtZXNzYWdlcy4gKERvdWcgS2Vhcm5zKQpTb2x1dGlvbjogICBXaGVuIGFuIGludmFsaWQgcmFuZ2UgaXMgdXNlZCBmb3IgYSBmdW5jdGlvbiB0aGF0IGlzIG5vdCBnb2luZyB0bwoJICAgIGJlIGV4ZWN1dGVkLCBza2lwIG92ZXIgdGhlIGFyZ3VtZW50cyBhbnl3YXkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjI3NApQcm9ibGVtOiAgICAiOnByaW50IiBza2lwcyBlbXB0eSBsaW5lcyB3aGVuICdsaXN0JyBpcyBzZXQgYW5kIHRoZXJlIGlzIG5vCgkgICAgImVvbCIgaW4gJ2xpc3RjaGFycycuIChZYWtvdiBMZXJuZXIpClNvbHV0aW9uOiAgIFNraXAgb3V0cHV0dGluZyBhIHNwYWNlIGZvciBhbiBlbXB0eSBsaW5lIG9ubHkgd2hlbiAnbGlzdCcgaXMgc2V0CgkgICAgYW5kIHRoZSBlbmQtb2YtbGluZSBjaGFyYWN0ZXIgaXMgbm90IGVtcHR5LgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMi4yNzUgKGV4dHJhLCBhZnRlciA2LjIuMjY3KQpQcm9ibGVtOiAgICBXYXJuaW5nIGZvciB1bmluaXRpYWxpemVkIHZhcmlhYmxlIHdoZW4gdXNpbmcgZ2NjLgpTb2x1dGlvbjogICBJbml0aWFsaXplICJhY0xlbiIgdG8gemVyby4gKEJpbGwgTWNDYXJ0aHkpCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4yLjI3NgpQcm9ibGVtOiAgICAiOmVjaG8gWCgpIiBkb2VzIG5vdCBwdXQgYSBsaW5lIGJyZWFrIGJldHdlZW4gdGhlIG1lc3NhZ2UgdGhhdCBYKCkKCSAgICBkaXNwbGF5cyBhbmQgdGhlIHRleHQgdGhhdCBYKCkgcmV0dXJucy4gKFlha292IExlcm5lcikKU29sdXRpb246ICAgSW52b2tlIG1zZ19zdGFydCgpIGFmdGVyIGV2YWx1YXRpbmcgdGhlIGFyZ3VtZW50LgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4yNzcKUHJvYmxlbTogICAgVmltIGNyYXNoZXMgd2hlbiBhICI6cnVudGltZSBmdHBsdWdpbi9hZGEudmltIiBjYXVzZXMgYSByZWN1cnNpdmUKCSAgICBsb29wLiAoUm9iZXJ0IE5vd290bmlhaykKU29sdXRpb246ICAgUmVzdG9yZSAibXNnX2xpc3QiIGJlZm9yZSByZXR1cm5pbmcgZnJvbSBkb19jbWRsaW5lKCkuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMi4yNzgKUHJvYmxlbTogICAgVXNpbmcgIm11Y2giIGluc3RlYWQgb2YgIm1hbnkiLgpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBlcnJvciBtZXNzYWdlLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi4yNzkKUHJvYmxlbTogICAgVGhlcmUgaXMgbm8gZGVmYXVsdCBjaG9pY2UgZm9yIGEgY29uZmlybSgpIGRpYWxvZywgbm93IHRoYXQgaXQgaXMKCSAgICBwb3NzaWJsZSBub3QgdG8gaGF2ZSBhIGRlZmF1bHQgY2hvaWNlLgpTb2x1dGlvbjogICBNYWtlIHRoZSBmaXJzdCBjaG9pY2UgdGhlIGRlZmF1bHQgY2hvaWNlLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2V2YWwudHh0LCBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuMjgwClByb2JsZW06ICAgICJkbyIgYW5kICI6ZGlmZmdldCIgZG9uJ3Qgd29yayBpbiB0aGUgZmlyc3QgbGluZSBhbmQgdGhlIGxhc3QgbGluZQoJICAgIG9mIGEgYnVmZmVyLiAoQXJvbiBHcmlmZmlzKQpTb2x1dGlvbjogICBGaW5kIGEgZGlmZmVyZW5jZSBhYm92ZSB0aGUgZmlyc3QgbGluZSBhbmQgYmVsb3cgdGhlIGxhc3QgbGluZS4KCSAgICBBbHNvIGZpeCBhIGZldyBkaXNwbGF5IHVwZGF0aW5nIGJ1Z3MuCkZpbGVzOgkgICAgc3JjL2RpZmYuYywgc3JjL2ZvbGQuYywgc3JjL21vdmUuYwoKUGF0Y2ggNi4yLjI4MQpQcm9ibGVtOiAgICBQb3N0U2NyaXB0IHByaW50aW5nIGRvZXNuJ3Qgd29yayBvbiBNYWMgT1MgWCAxMC4zLjIuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgaGVhZGVyIGZpbGUuIChNaWtlIFdpbGxpYW1zKQpGaWxlczoJICAgIHJ1bnRpbWUvcHJpbnQvcHJvbG9nLnBzCgpQYXRjaCA2LjIuMjgyClByb2JsZW06ICAgIFdoZW4gdXNpbmcgQ1RSTC1PIHRvIGdvIGJhY2sgdG8gYSBoZWxwIGZpbGUsIGl0IGJlY29tZXMgbGlzdGVkLgoJICAgIChBbmRyZXcgTmVzYml0KQoJICAgIFVzaW5nICI6dGFnIiBvciAiOnRqdW1wIiBpbiBhIGhlbHAgZmlsZSBkb2Vzbid0IGtlZXAgdGhlIGhlbHAgZmlsZQoJICAgIHNldHRpbmdzIChlLmcuIGZvciAnaXNrZXl3b3JkJykuClNvbHV0aW9uOiAgIERvbid0IG1hcmsgYSBidWZmZXIgYXMgbGlzdGVkIHdoZW4gaXRzIGhlbHAgZmxhZyBpcyBzZXQuICBQdXQgYWxsCgkgICAgdGhlIG9wdGlvbiBzZXR0aW5ncyBmb3IgYSBoZWxwIGJ1ZmZlciB0b2dldGhlciBpbiBkb19lY21kKCkuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjI4MwpQcm9ibGVtOiAgICBUaGUgImxvY2FsIGFkZGl0aW9ucyIgaW4gaGVscC50eHQgYXJlIHVzZWQgd2l0aG91dCBjb252ZXJzaW9uLAoJICAgIGNhdXNpbmcgbGF0aW4xIGNoYXJhY3RlcnMgc2hvd2luZyB1cCB3cm9uZyB3aGVuICdlbmMnIGlzIHV0Zi04LgoJICAgIChBbnRvaW5lIEouIE1lY2hlbHluY2spClNvbHV0aW9uOiAgIENvbnZlcnQgdGhlIHRleHQgdG8gJ2VuY29kaW5nJy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjIuMjg0ClByb2JsZW06ICAgIExpc3RpbmcgYSBmdW5jdGlvbiBwdXRzICJlbmRmdW5jdGlvbiIgaW4gdGhlIG1lc3NhZ2UgaGlzdG9yeS4KCSAgICBUeXBpbmcgInEiIGF0IHRoZSBtb3JlIHByb21wdCBpc24ndCBoYW5kbGVkIGNvcnJlY3RseSB3aGVuIGxpc3RpbmcKCSAgICB2YXJpYWJsZXMgYW5kIGZ1bmN0aW9ucy4gIChIYXJhIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgRG9uJ3QgdXNlIG1zZygpIGZvciAiZW5kZnVuY3Rpb24iLiAgQ2hlY2sgImdvdF9pbnQiIHJlZ3VsYXJseS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuMjg1ClByb2JsZW06ICAgIEdVSTogSW4gYSBzaW5nbGUgd3JhcHBlZCBsaW5lIHRoYXQgZmlsbHMgdGhlIHdpbmRvdywgImdqIiBpbiB0aGUKCSAgICBsYXN0IHNjcmVlbiBsaW5lIGxlYXZlcyB0aGUgY3Vyc29yIGJlaGluZC4gKEl2YW4gVGFyYXNvdikKU29sdXRpb246ICAgVW5kcmF3IHRoZSBjdXJzb3IgYmVmb3JlIHNjcm9sbGluZyB0aGUgdGV4dCB1cC4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMi4yODYKUHJvYmxlbTogICAgV2hlbiB0cnlpbmcgdG8gcmVuYW1lIGEgZmlsZSBhbmQgaXQgZG9lc24ndCBleGlzdCwgdGhlIGRlc3RpbmF0aW9uCgkgICAgZmlsZSBpcyBkZWxldGVkIGFueXdheS4gKEx1YyBEZXV4KQpTb2x1dGlvbjogICBEb24ndCBkZWxldGUgdGhlIGRlc3RpbmF0aW9uIHdoZW4gdGhlIHNvdXJjZSBkb2Vzbid0IGV4aXN0LiAoVGFybwoJICAgIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuMjg3IChhZnRlciA2LjIuMjY0KQpQcm9ibGVtOiAgICBEdXBsaWNhdGUgbGluZXMgYXJlIGFkZGVkIHRvIHRoZSB2aW1pbmZvIGZpbGUuClNvbHV0aW9uOiAgIENvbXBhcmUgd2l0aCBleGlzdGluZyBlbnRyaWVzIHdpdGhvdXQgYW4gb2Zmc2V0LiAgQWxzbyBmaXhlcwoJICAgIHJlYWRpbmcgdmVyeSBsb25nIGhpc3RvcnkgbGluZXMgZnJvbSB2aW1pbmZvLgpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jCgpQYXRjaCA2LjIuMjg4IChleHRyYSkKUHJvYmxlbTogICAgTWFjOiBBbiBleHRlcm5hbCBwcm9ncmFtIGNhbid0IGJlIGludGVycnVwdGVkLgpTb2x1dGlvbjogICBEb24ndCB1c2UgdGhlICdjJyBrZXkgZm9yIGJhY2tzcGFjZS4gKEVja2VoYXJkIEJlcm5zKQpGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMKClBhdGNoIDYuMi4yODkKUHJvYmxlbTogICAgQ29tcGlsaW5nIHRoZSBUY2wgaW50ZXJmYWNlIHdpdGggdGhyZWFkIHN1cHBvcnQgY2F1c2VzICI6bWFrZSIgdG8KCSAgICBmYWlsLiAgKEp1ZXJnZW4gU2FsaykKU29sdXRpb246ICAgVXNlICRUQ0xfREVGUyBmcm9tIHRoZSBUY2wgY29uZmlnIHNjcmlwdCB0byBvYnRhaW4gdGhlIHJlcXVpcmVkCgkgICAgY29tcGlsZSBmbGFncyBmb3IgdXNpbmcgdGhlIHRocmVhZCBsaWJyYXJ5LgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yLjI5MCAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogVGhlIG1vdXNld2hlZWwgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBBZGQgbW91c2V3aGVlbCBzdXBwb3J0LiAgQWxzbyBmaXggdXBkYXRpbmcgdGhlIHRodW1iIGFmdGVyIGEgZHJhZwoJICAgIGFuZCB0aGVuIHVzaW5nIGFub3RoZXIgd2F5IHRvIHNjcm9sbC4gIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjIuMjkxIChleHRyYSkKUHJvYmxlbTogICAgTWFjOiB0aGUgcGx1cyBidXR0b24gYW5kIGNsb3NlIGJ1dHRvbiBkb24ndCBkbyBhbnl0aGluZy4KU29sdXRpb246ICAgTWFrZSB0aGUgcGx1cyBidXR0b24gbWF4aW1pemUgdGhlIHdpbmRvdyBhbmQgdGhlIGNsb3NlIGJ1dHRvbgoJICAgIGNsb3NlIFZpbS4gKEVja2VoYXJkIEJlcm5zKQpGaWxlczoJICAgIHNyYy9ndWkuYywgc3JjL2d1aV9tYWMuYwoKUGF0Y2ggNi4yLjI5MgpQcm9ibGVtOiAgICBNb3RpZjogV2hlbiByZW1vdmluZyBHVUkgYXJndW1lbnRzIGZyb20gYXJndltdIGEgInBzIC1lZiIgc2hvd3MKCSAgICB0aGUgbGFzdCBhcmd1bWVudCByZXBlYXRlZC4KU29sdXRpb246ICAgU2V0IGFyZ3ZbYXJnY10gdG8gTlVMTC4gKE1pY2hhZWwgSmFydmlzKQpGaWxlczoJICAgIHNyYy9ndWlfeDExLmMKClBhdGNoIDYuMi4yOTMgKGFmdGVyIDYuMi4yNTUpClByb2JsZW06ICAgIEdUSzogQSBuZXcgaXRlbSBpbiBhIG1lbnUgaXMgcHV0IGJlZm9yZSB0aGUgdGVhcm9mZiBpdGVtLgpTb2x1dGlvbjogICBEbyBpbmNyZW1lbnQgdGhlIG1lbnUgaXRlbSBpbmRleCBmb3Igbm9uLXBvcHVwIG1lbnUgaXRlbXMuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYwoKUGF0Y2ggNi4yLjI5NCAoZXh0cmEpClByb2JsZW06ICAgIE1hYzogQ2Fubm90IHVzZSBtb2RpZmllcnMgd2l0aCBTcGFjZSwgVGFiLCBFbnRlciBhbmQgRXNjYXBlLgpTb2x1dGlvbjogICBIYW5kbGUgYWxsIG1vZGlmaWVycyBmb3IgdGhlc2Uga2V5cy4gIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvZ3VpX21hYy5jCgpQYXRjaCA2LjIuMjk1ClByb2JsZW06ICAgIFdoZW4gaW4gZGVidWcgbW9kZSwgcmVjZWl2aW5nIGEgbWVzc2FnZSBmcm9tIGEgcmVtb3RlIGNsaWVudAoJICAgIGNhdXNlcyBhIGNyYXNoLiAgRXZhbHVhdGluZyBhbiBleHByZXNzaW9uIGNhdXNlcyBWaW0gdG8gd2FpdCBmb3IKCSAgICAiY29udCIgdG8gYmUgdHlwZWQsIHdpdGhvdXQgYSBwcm9tcHQuICAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIERpc2FibGUgZGVidWdnaW5nIHdoZW4gZXZhbHVhdGluZyBhbiBleHByZXNzaW9uIGZvciBhIGNsaWVudC4KCSAgICAoTWljaGFlbCBHZWRkZXMpICBEb24ndCB0cnkgcmVhZGluZyBpbnRvIHRoZSB0eXBlYWhlYWQgYnVmZmVyIHdoZW4KCSAgICBpdCBtYXkgaGF2ZSBiZWVuIGZpbGxlZCBpbiBhbm90aGVyIHdheS4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL2dldGNoYXIuYywgc3JjL2lmX3hjbWRzcnYuYywgc3JjL21haW4uYywKCSAgICBzcmMvbWlzYzEuYywgc3JjL3Byb3RvL2dldGNoYXIucHJvLCBzcmMvcHJvdG8vbWFpbi5wcm8sCgkgICAgc3JjL3Byb3RvL29zX3VuaXgucHJvLCBzcmMvcHJvdG8vdWkucHJvLCBzcmMvc3RydWN0cy5oLAoJICAgIHNyYy9vc191bml4LmMsIHNyYy91aS5jCgpQYXRjaCA2LjIuMjk2IChleHRyYSkKUHJvYmxlbTogICAgU2FtZSBhcyA2LjIuMjk1LgpTb2x1dGlvbjogICBFeHRyYSBmaWxlcyBmb3IgcGF0Y2ggNi4yLjI5NS4KRmlsZXM6CSAgICBzcmMvb3NfYW1pZ2EuYywgc3JjL29zX21zZG9zLmMsIHNyYy9vc19yaXNjb3MuYywgc3JjL29zX3dpbjMyLmMsCgkgICAgc3JjL3Byb3RvL29zX2FtaWdhLnBybywgc3JjL3Byb3RvL29zX21zZG9zLnBybywKCSAgICBzcmMvcHJvdG8vb3NfcmlzY29zLnBybywgc3JjL3Byb3RvL29zX3dpbjMyLnBybwoKUGF0Y2ggNi4yLjI5NyAoYWZ0ZXIgNi4yLjIzMikKUHJvYmxlbTogICAgQ2Fubm90IGludm9rZSBQeXRob24gY29tbWFuZHMgcmVjdXJzaXZlbHkuClNvbHV0aW9uOiAgIFdpdGggUHl0aG9uIDIuMyBhbmQgbGF0ZXIgdXNlIHRoZSBhdmFpbGFibGUgbWVjaGFuaXNtcyB0byBpbnZva2UKCSAgICBQeXRob24gcmVjdXJzaXZlbHkuIChNYXR0aGV3IE11ZWxsZXIpCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMjk4ClByb2JsZW06ICAgIEEgY2hhbmdlIGFsd2F5cyBzZXRzIHRoZSAnLiBtYXJrIGFuZCBhbiBpbnNlcnQgYWx3YXlzIHNldHMgdGhlICdeCgkgICAgbWFyaywgZXZlbiB3aGVuIHRoaXMgaXMgbm90IHdhbnRlZC4KCSAgICBDYW5ub3QgZ28gYmFjayB0byB0aGUgcG9zaXRpb24gb2Ygb2xkZXIgY2hhbmdlcyB3aXRob3V0IHVuZG9pbmcKCSAgICB0aG9zZSBjaGFuZ2VzLgpTb2x1dGlvbjogICBBZGQgdGhlICI6a2VlcGp1bXBzIiBjb21tYW5kIG1vZGlmaWVyLgoJICAgIEFkZCB0aGUgImcsIiBhbmQgImc7IiBjb21tYW5kcy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9tb3Rpb24udHh0LCBzcmMvZXhfY21kcy5oLCBzcmMvZXhfZG9jbWQuYywgc3JjL2VkaXQuYywKCSAgICBzcmMvbWFyay5jLCBzcmMvbWlzYzEuYywgc3JjL25vcm1hbC5jLCBzcmMvcHJvdG8vbWFyay5wcm8sCgkgICAgc3JjL3N0cnVjdHMuaCwgc3JjL3VuZG8uYwoKUGF0Y2ggNi4yLjI5OQpQcm9ibGVtOiAgICBDYW4gb25seSB1c2Ugb25lIGxhbmd1YWdlIGZvciBoZWxwIGZpbGVzLgpTb2x1dGlvbjogICBBZGQgdGhlICdoZWxwbGFuZycgb3B0aW9uIHRvIHNlbGVjdCB0aGUgcHJlZmVycmVkIGxhbmd1YWdlKHMpLgoJICAgIE1ha2UgIjpoZWxwdGFncyIgZ2VuZXJhdGUgdGFncyBmaWxlcyBmb3IgYWxsIGxhbmd1YWdlcy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgcnVudGltZS9kb2MvdmFyaW91cy50eHQsIHNyYy9NYWtlZmlsZSwKCSAgICBzcmMvZXhfY21kcy5jLCBzcmMvZXhfY21kczIuYywgc3JjL2V4X2NtZHMuaCwgc3JjL2V4X2dldGxuLmMsCgkgICAgc3JjL25vcm1hbC5jLCBzcmMvb3B0aW9uLmMsIHNyYy9vcHRpb24uaCwgc3JjL3Byb3RvL2V4X2NtZHMucHJvLAoJICAgIHNyYy9wcm90by9leF9jbWRzMi5wcm8sIHNyYy9wcm90by9vcHRpb24ucHJvLCBzcmMvc3RydWN0cy5oLAoJICAgIHNyYy90YWcuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMzAwIChhZnRlciA2LjIuMjk3KQpQcm9ibGVtOiAgICBDYW5ub3QgYnVpbGQgUHl0aG9uIGludGVyZmFjZSB3aXRoIFB5dGhvbiAyLjIgb3IgZWFybGllci4KU29sdXRpb246ICAgQWRkIGEgc2VtaWNvbG9uLgpGaWxlczoJICAgIHNyYy9pZl9weXRob24uYwoKUGF0Y2ggNi4yLjMwMQpQcm9ibGVtOiAgICBUaGUgInNlbGVjdCBhbGwiIGl0ZW0gZnJvbSB0aGUgcG9wdXAgbWVudSBkb2Vzbid0IHdvcmsgZm9yIFNlbGVjdAoJICAgIG1vZGUuClNvbHV0aW9uOiAgIFVzZSB0aGUgc2FtZSBjb21tYW5kcyBhcyBmb3IgdGhlICJFZGl0LnNlbGVjdCBhbGwiIG1lbnUuCgkgICAgKEJlbmppIEZpc2hlcikKRmlsZXM6CSAgICBydW50aW1lL21lbnUudmltCgpQYXRjaCA2LjIuMzAyClByb2JsZW06ICAgIFVzaW5nICJDVFJMLU8gLiIgaW4gSW5zZXJ0IG1vZGUgZG9lc24ndCB3b3JrIHByb3Blcmx5LiAoQmVuamkKCSAgICBGaXNoZXIpClNvbHV0aW9uOiAgIFJlc3RvcmUgInJlc3RhcnRfZWRpdCIgYWZ0ZXIgYW4gaW5zZXJ0IGNvbW1hbmQgdGhhdCB3YXMgbm90IHR5cGVkLgoJICAgIEF2b2lkIHdhaXRpbmcgd2l0aCBkaXNwbGF5aW5nIHRoZSBtb2RlIHdoZW4gdGhlcmUgaXMgbm8gdGV4dCB0byBiZQoJICAgIG92ZXJ3cml0dGVuLgoJICAgIEZpeCB0aGF0ICJDVFJMLU8gLiIgc29tZXRpbWVzIGRvZXNuJ3QgcHV0IHRoZSBjdXJzb3IgYmFjayBhZnRlcgoJICAgIHRoZSBlbmQtb2YtbGluZS4gIE9ubHkgcmVzZXQgdGhlIGZsYWcgdGhhdCBDVFJMLU8gd2FzIHVzZWQgcGFzdAoJICAgIHRoZSBlbmQgb2YgdGhlIGxpbmUgd2hlbiByZXN0YXJ0aW5nIGVkaXRpbmcuICBVcGRhdGUgIm9fbG51bSIKCSAgICBudW1iZXIgd2hlbiBpbnNlcnRpbmcgdGV4dCBhbmQgIm9fZW9sIiBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL2VkaXQuYywgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMzAzClByb2JsZW06ICAgIENhbm5vdCB1c2UgVW5pY29kZSBkaWdyYXBocyB3aGlsZSAnZW5jb2RpbmcnIGlzIG5vdCBVbmljb2RlLgpTb2x1dGlvbjogICBDb252ZXJ0IHRoZSBjaGFyYWN0ZXIgZnJvbSBVbmljb2RlIHRvICdlbmNvZGluZycgd2hlbiBuZWVkZWQuCgkgICAgVXNlIHRoZSBVbmljb2RlIGRpZ3JhcGhzIGZvciB0aGUgTWFjaW50b3NoLiAoRWNrZWhhcmQgQmVybnMpCkZpbGVzOgkgICAgc3JjL2RpZ3JhcGguYwoKUGF0Y2ggNi4yLjMwNCAoZXh0cmEsIGFmdGVyIDYuMi4yNTYpClByb2JsZW06ICAgIE1hYzogTm8gcHJvcGVyIHN1cHBvcnQgZm9yICdlbmNvZGluZycuICBDb252ZXJzaW9uIHdpdGhvdXQgaWNvbnYoKQoJICAgIGlzIG5vdCBwb3NzaWJsZS4KU29sdXRpb246ICAgQ29udmVydCBpbnB1dCBmcm9tICd0ZXJtZW5jb2RpbmcnIHRvICdlbmNvZGluZycuICBBZGQKCSAgICBtYWNfc3RyaW5nX2NvbnZlcnQoKS4gIENvbnZlcnQgdGV4dCBmb3IgdGhlIGNsaXBib2FyZCB3aGVuIG5lZWRlZC4KCSAgICAoRWNrZWhhcmQgQmVybnMpCkZpbGVzOgkgICAgc3JjL2d1aV9tYWMuYywgc3JjL21ieXRlLmMsIHNyYy9zdHJ1Y3RzLmgsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjMwNSAoYWZ0ZXIgNi4yLjMwMCkKUHJvYmxlbTogICAgV2luMzI6IENhbm5vdCBidWlsZCBQeXRob24gaW50ZXJmYWNlIHdpdGggUHl0aG9uIDIuMy4gKEFqaXQKCSAgICBUaGFra2FyKQpTb2x1dGlvbjogICBBZGQgdHdvIGZ1bmN0aW9ucyB0byB0aGUgZHluYW1pYyBsb2FkaW5nIGZlYXR1cmUuCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjIuMzA2IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IEJ1aWxkaW5nIGNvbnNvbGUgdmVyc2lvbiB3aXRoIEJDQyA1LjUgZ2l2ZXMgYSB3YXJuaW5nIGZvcgoJICAgIGdldF9jbWRfYXJncygpIHByb3RvdHlwZSBtaXNzaW5nLiAgKEFqaXQgVGhha2thcikKU29sdXRpb246ICAgRG9uJ3QgYnVpbGQgb3NfdzMyZXhlLmMgZm9yIHRoZSBjb25zb2xlIHZlcnNpb24uCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1hawoKUGF0Y2ggNi4yLjMwNyAoYWZ0ZXIgNi4yLjI5OSkKUHJvYmxlbTogICAgSW5zdGFsbGluZyBoZWxwIGZpbGVzIGZhaWxzLgpTb2x1dGlvbjogICBFeHBhbmQgd2lsZGNhcmRzIGZvciB0cmFuc2xhdGVkIGhlbHAgZmlsZXMgc2VwYXJhdGVseS4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuMi4zMDgKUHJvYmxlbTogICAgTm90IGFsbCBzeXN0ZW1zIGhhdmUgIndob2FtaSIsIHJlc3VsdGluZyBpbiBhbiBlbXB0eSB1c2VyIG5hbWUuClNvbHV0aW9uOiAgIFVzZSAibG9nbmFtZSIgd2hlbiBwb3NzaWJsZSwgIndob2FtaSIgb3RoZXJ3aXNlLiAgKERhdmlkIEJveWNlKQpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4yLjMwOQpQcm9ibGVtOiAgICAiM2dyeCIgd2FpdHMgZm9yIHR3byBFU0MgdG8gYmUgdHlwZWQuICAoSmVucyBQYXVsdXMpClNvbHV0aW9uOiAgIEFwcGVuZCB0aGUgRVNDIHRvIHRoZSBzdHVmZiBidWZmZXIgd2hlbiByZWRvaW5nIHRoZSAiZ3IiIGluc2VydC4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjIuMzEwClByb2JsZW06ICAgIFdoZW4gc2V0dGluZyAndW5kb2xldmVscycgdG8gLTEsIG1ha2luZyBhIGNoYW5nZSBhbmQgc2V0dGluZwoJICAgICd1bmRvbGV2ZWxzJyB0byBhIHBvc2l0aXZlIHZhbHVlIGFuICJ1bmRvIGxpc3QgY29ycnVwdCIgZXJyb3IKCSAgICBvY2N1cnMuIChNYWRva2EgTWFjaGl0YW5pKQpTb2x1dGlvbjogICBTeW5jIHVuZG8gYmVmb3JlIGNoYW5naW5nICd1bmRvbGV2ZWxzJy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi4zMTEgKGFmdGVyIDYuMi4yOTgpClByb2JsZW06ICAgIFdoZW4gbWFraW5nIHNldmVyYWwgY2hhbmdlcyBpbiBvbmUgbGluZSB0aGUgY2hhbmdlbGlzdCBncm93cwoJICAgIHF1aWNrbHkuICBUaGVyZSBpcyBubyBlcnJvciBtZXNzYWdlIGZvciByZWFjaGluZyB0aGUgZW5kIG9mIHRoZQoJICAgIGNoYW5nZWxpc3QuICBSZWFkaW5nIGNoYW5nZWxpc3QgbWFya3MgZnJvbSB2aW1pbmZvIGRvZXNuJ3Qgd29yawoJICAgIHByb3Blcmx5LgpTb2x1dGlvbjogICBPbmx5IG1ha2UgYSBuZXcgZW50cnkgaW4gdGhlIGNoYW5nZWxpc3Qgd2hlbiBtYWtpbmcgYSBjaGFuZ2UgaW4KCSAgICBhbm90aGVyIGxpbmUgb3IgJ3RleHR3aWR0aCcgY29sdW1ucyBhd2F5LiAgQWRkIEU2NjIsIEU2NjMgYW5kIEU2NjQKCSAgICBlcnJvciBtZXNzYWdlcy4gIFB1dCBhIGNoYW5nZWxpc3QgbWFyayBmcm9tIHZpbWluZm8gb25lIHBvc2l0aW9uCgkgICAgYmVmb3JlIHRoZSBlbmQuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvbW90aW9uLnR4dCwgc3JjL21hcmsuYywgc3JjL21pc2MxLmMsIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjMxMiAoYWZ0ZXIgNi4yLjI5OSkKUHJvYmxlbTogICAgIm1ha2UgaW5zdGFsbCIgY2xlYXJzIHRoZSBzY3JlZW4gd2hlbiBpbnN0YWxsaW5nIHRoZSBkb2NzLgpTb2x1dGlvbjogICBFeGVjdXRlICI6aGVscHRhZ3MiIGluIHNpbGVudCBtb2RlLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL01ha2VmaWxlCgpQYXRjaCA2LjIuMzEzClByb2JsZW06ICAgIFdoZW4gb3BlbmluZyBmb2xkcyBpbiBhIGRpZmYgd2luZG93LCBvdGhlciBkaWZmIHdpbmRvd3Mgbm8gbG9uZ2VyCgkgICAgc2hvdyB0aGUgc2FtZSB0ZXh0LgpTb2x1dGlvbjogICBTeW5jIHRoZSBmb2xkcyBpbiBkaWZmIHdpbmRvd3MuCkZpbGVzOgkgICAgc3JjL2RpZmYuYywgc3JjL2ZvbGQuYywgc3JjL21vdmUuYywgc3JjL3Byb3RvL2RpZmYucHJvLAoJICAgIHNyYy9wcm90by9tb3ZlLnBybwoKUGF0Y2ggNi4yLjMxNApQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0ICJyeCIgbWF5IGNhdXNlIGEgY3Jhc2ggd2l0aCBhIGJsb2Nrd2lzZQoJICAgIHNlbGVjdGlvbiBhbmQgdXNpbmcgIiQiLiAoTW9yaXR6IE9yYmFjaCkKU29sdXRpb246ICAgRG9uJ3QgdHJ5IHJlcGxhY2luZyBjaGFycyBpbiBhIGxpbmUgdGhhdCBoYXMgbm8gY2hhcmFjdGVycyBpbiB0aGUKCSAgICBibG9jay4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuMi4zMTUKUHJvYmxlbTogICAgVXNpbmcgQ1RSTC1DIGluIGEgVmlzdWFsIG1vZGUgbWFwcGluZyB3aGlsZSAnaW5zZXJ0bW9kZScgaXMgc2V0CgkgICAgc3RvcHMgVmltIGZyb20gcmV0dXJuaW5nIHRvIEluc2VydCBtb2RlLgpTb2x1dGlvbjogICBEb24ndCByZXNldCAicmVzdGFydF9lZGl0IiB3aGVuIGEgQ1RSTC1DIGlzIGZvdW5kIGFuZCAnaW5zZXJ0bW9kZScKCSAgICBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMzE2IChhZnRlciA2LjIuMzEyKQpQcm9ibGVtOiAgICAibWFrZSBpbnN0YWxsIiB0cmllcyBjb25uZWN0aW5nIHRvIHRoZSBYIHNlcnZlciB3aGVuIGluc3RhbGxpbmcKCSAgICB0aGUgZG9jcy4gKFN0ZXBoZW4gVGhvbWFzKQpTb2x1dGlvbjogICBBZGQgdGhlICItWCIgYXJndW1lbnQuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvTWFrZWZpbGUKClBhdGNoIDYuMi4zMTcgKGFmdGVyIDYuMi4zMTMpClByb2JsZW06ICAgIFdoZW4gdXNpbmcgInppIiBpbiBhIGRpZmYgd2luZG93LCBvdGhlciBkaWZmIHdpbmRvd3MgYXJlIG5vdAoJICAgIGFkanVzdGVkLiAoUmljaGFyZCBDdXJub3cpClNvbHV0aW9uOiAgIERpc3RyaWJ1dGUgYSBjaGFuZ2UgaW4gJ2ZvbGRlbmFibGUnIHRvIG90aGVyIGRpZmYgd2luZG93cy4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMi4zMTgKUHJvYmxlbTogICAgV2hlbiBjb21waWxpbmcgd2l0aCBfVEhSRUFEX1NBRkUgZXh0ZXJuYWwgY29tbWFuZHMgZG9uJ3QgZWNobwoJICAgIHR5cGVkIGNoYXJhY3RlcnMuClNvbHV0aW9uOiAgIERvbid0IHNldCB0aGUgdGVybWluYWwgbW9kZSB0byBUTU9ERV9TTEVFUCB3aGVuIGl0J3MgYWxyZWFkeSBhdAoJICAgIFRNT0RFX0NPT0suCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4yLjMxOSAoZXh0cmEpClByb2JsZW06ICAgIEJ1aWxkaW5nIGd2aW1leHQuZGxsIHdpdGggTWluZ3cgZG9lc24ndCB3b3JrIHByb3Blcmx5LgpTb2x1dGlvbjogICBVc2UgZ2NjIGluc3RlYWQgb2YgZGxsd3JhcC4gIFVzZSBsb25nIG9wdGlvbiBuYW1lcy4gKEFsZWphbmRybwoJICAgIExvcGV6LVZhbGVuY2lhKQpGaWxlczoJICAgIHNyYy9HdmltRXh0L01ha2VfbWluZy5tYWsKClBhdGNoIDYuMi4zMjAKUHJvYmxlbTogICAgV2luMzI6IEFkZGluZyBhbmQgcmVtb3ZpbmcgdGhlIG1lbnViYXIgcmVzaXplcyB0aGUgVmltIHdpbmRvdy4KCSAgICAoSm9uYXRob24gTWVyeikKU29sdXRpb246ICAgRG9uJ3QgbGV0IGEgcmVzaXplIGV2ZW50IGNoYW5nZSAnbGluZXMnIHVuZXhwZWN0ZWRseS4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMi4zMjEKUHJvYmxlbTogICAgV2hlbiB1c2luZyBtb2RlbGVzcyBzZWxlY3Rpb24sIHdyYXBwaW5nIGxpbmVzIGFyZSBub3QgcmVjb2duaXplZCwKCSAgICBhIGxpbmUgYnJlYWsgaXMgYWx3YXlzIGluc2VydGVkLgpTb2x1dGlvbjogICBBZGQgTGluZVdyYXBzW10gdG8gcmVtZW1iZXIgd2hldGhlciBhIGxpbmUgd3JhcHBlZCBvciBub3QuCkZpbGVzOgkgICAgc3JjL2dsb2JhbHMuaCwgc3JjL3NjcmVlbi5jLCBzcmMvdWkuYwoKUGF0Y2ggNi4yLjMyMgpQcm9ibGVtOiAgICBXaXRoICdzaG93Y21kJyBzZXQsIGFmdGVyIHR5cGluZyAiZGQiIHRoZSBuZXh0ICJkIiBtYXkgbm90IGJlCgkgICAgZGlzcGxheWVkLiAoSmVucyBQYXVsdXMpClNvbHV0aW9uOiAgIFJlZHJhdyB0aGUgY29tbWFuZCBsaW5lIGFmdGVyIHVwZGF0aW5nIHRoZSBzY3JlZW4sIHNjcm9sbGluZyBtYXkKCSAgICBoYXZlIHNldCAiY2xlYXJfY21kbGluZSIuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuMzIzClByb2JsZW06ICAgIFdpbjMyOiBleHBhbmRpbmcgIn4vZmlsZSIgaW4gYW4gYXV0b2NvbW1hbmQgcGF0dGVybiByZXN1bHRzIGluCgkgICAgYmFja3NsYXNoZXMsIHdoaWxlIHRoaXMgcGF0dGVybiBzaG91bGQgb25seSBoYXZlIGZvcndhcmQgc2xhc2hlcy4KU29sdXRpb246ICAgTWFrZSBleHBhbmRpbmcgZW52aXJvbm1lbnQgdmFyaWFibGVzIHJlc3BlY3QgJ3NoZWxsc2xhc2gnIGFuZCBzZXQKCSAgICBwX3NzbCB3aGVuIGV4cGFuZGluZyB0aGUgYXV0b2NvbW1hbmQgcGF0dGVybi4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9taXNjMS5jLCBzcmMvcHJvdG8vZmlsZWlvLnBybwoKUGF0Y2ggNi4yLjMyNCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiB3aGVuICJ2aW1ydW4uZXhlIiBoYXMgYSBwYXRoIHdpdGggd2hpdGUgc3BhY2UsIHN1Y2ggYXMKCSAgICAiUHJvZ3JhbSBGaWxlcyIsIGV4ZWN1dGluZyBleHRlcm5hbCBjb21tYW5kcyBtYXkgZmFpbC4KU29sdXRpb246ICAgUHV0IGRvdWJsZSBxdW90ZXMgYXJvdW5kIHRoZSBwYXRoIHRvICJ2aW1ydW4iLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuMzI1ClByb2JsZW06ICAgIFdoZW4gJEhPTUUgaW5jbHVkZXMgYSBzcGFjZSwgZG9pbmcgIjpzZXQgdGFncz1+L3RhZ3MiIGRvZXNuJ3QKCSAgICB3b3JrLCB0aGUgc3BhY2UgaXMgdXNlZCB0byBzZXBhcmF0ZSBmaWxlIG5hbWVzLiAgKEJyZXR0IFN0YWhsbWFuKQpTb2x1dGlvbjogICBFc2NhcGUgdGhlIHNwYWNlIHdpdGggYSBiYWNrc2xhc2guCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMzI2ClByb2JsZW06ICAgICI6d2luZG8gc2V0IHN5bnRheD1mb28iIGRvZXNuJ3Qgd29yay4gIChUaW0gQ2hhc2UpClNvbHV0aW9uOiAgIERvbid0IGNoYW5nZSAnZXZlbnRpZ25vcmUnIGZvciAiOndpbmRvIi4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4yLjMyNwpQcm9ibGVtOiAgICBXaGVuIGZvcm1hdHRpbmcgdGV4dCBhbGwgbWFya3MgaW4gdGhlIGZvcm1hdHRlZCBsaW5lcyBhcmUgbG9zdC4KCSAgICBBIHdvcmQgaXMgbm90IGpvaW5lZCB0byBhIHByZXZpb3VzIGxpbmUgd2hlbiB0aGlzIHdvdWxkIGJlCgkgICAgcG9zc2libGUuICAoTWlrb2xhaiBNYWNob3dza2kpClNvbHV0aW9uOiAgIFRyeSB0byBrZWVwIG1hcmtzIGluIHRoZSBzYW1lIHBvc2l0aW9uIGFzIG11Y2ggYXMgcG9zc2libGUuCgkgICAgQWxzbyBrZWVwIG1hcmsgcG9zaXRpb25zIHdoZW4gam9pbmluZyBsaW5lcy4KCSAgICBTdGFydCBhdXRvLWZvcm1hdHRpbmcgaW4gdGhlIHByZXZpb3VzIGxpbmUgd2hlbiBhcHByb3ByaWF0ZS4KCSAgICBBZGQgdGhlICJndyIgb3BlcmF0b3I6IExpa2UgImdxIiBidXQga2VlcCB0aGUgY3Vyc29yIHdoZXJlIGl0IGlzLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2NoYW5nZS50eHQsIHNyYy9lZGl0LmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9tYXJrLmMsCgkgICAgc3JjL21pc2MxLmMsIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jLCBzcmMvcHJvdG8vZWRpdC5wcm8sCgkgICAgc3JjL3Byb3RvL21hcmsucHJvLCBzcmMvcHJvdG8vb3BzLnBybywgc3JjL3N0cnVjdHMuaCwgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuMzI4ClByb2JsZW06ICAgIFhJTSB3aXRoIEdUSzogSXQgaXMgaGFyZCB0byB1bmRlcnN0YW5kIHdoYXQgWElNIGlzIGRvaW5nLgpTb2x1dGlvbjogICBBZGQgeGltX2xvZygpIHRvIGxvZyBYSU0gZXZlbnRzIGFuZCBoZWxwIHdpdGggZGVidWdnaW5nLgpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjIuMzI5ClByb2JsZW06ICAgICI6PSIgZG9lcyBub3Qgd29yayBWaSBjb21wYXRpYmxlLiAoQW50b255IFNjcml2ZW4pClNvbHV0aW9uOiAgIFByaW50IHRoZSBsYXN0IGxpbmUgbnVtYmVyIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQgbGluZS4gIERvbid0CgkgICAgcHJpbnQgImxpbmUiLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmgsIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuMzMwIChleHRyYSwgYWZ0ZXIgNi4yLjI2NykKUHJvYmxlbTogICAgV2luMzI6IENyYXNoIHdoZW4gdGVhcmluZyBvZmYgYSBtZW51LgpTb2x1dGlvbjogICBUZXJtaW5hdGUgYSBzdHJpbmcgd2l0aCBhIE5VTC4gKFlhc3VoaXJvIE1hdHN1bW90bykKRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jCgpQYXRjaCA2LjIuMzMxIChhZnRlciA2LjIuMzI3KQpQcm9ibGVtOiAgICAiZ3dhcCIgbGVhdmVzIGN1cnNvciBpbiB0aGUgd3JvbmcgbGluZS4KU29sdXRpb246ICAgUmVtZW1iZXIgdGhlIGN1cnNvciBwb3NpdGlvbiBiZWZvcmUgZmluZGluZyB0aGUgZW5kcyBvZiB0aGUKCSAgICBwYXJhZ3JhcGguCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jLCBzcmMvb3BzLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMi4zMzIgKGV4dHJhKQpQcm9ibGVtOiAgICBBbWlnYTogQ29tcGlsZSBlcnJvciBmb3Igc3RyaW5nIGFycmF5LiBDb21waWxpbmcgdGhlIEFtaWdhIEdVSQoJICAgIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgVXNlIGEgY2hhciBwb2ludGVyIGluc3RlYWQuICBNb3ZlIGluY2x1ZGluZyAiZ3VpX2FtaWdhLmgiIHRvIGFmdGVyCgkgICAgaW5jbHVkaW5nICJ2aW0uaCIuICBBZGQgYSBzZW1pY29sb24uIChBbGkgQWtjYWFnYWMpCkZpbGVzOgkgICAgc3JjL2d1aV9hbWlnYS5jLCBzcmMvb3NfYW1pZ2EuYwoKUGF0Y2ggNi4yLjMzMyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBwcmludGluZyBkb2Vzbid0IHdvcmsgd2l0aCBzcGVjaWZpZWQgZm9udCBjaGFyc2V0LgpTb2x1dGlvbjogICBVc2UgdGhlIHNwZWNpZmllZCBmb250IGNoYXJzZXQuIChNaWtlIFdpbGxpYW1zKQpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjIuMzM0IChleHRyYSwgYWZ0ZXIgNi4yLjI5NikKUHJvYmxlbTogICAgV2luMzI6IGV2YWx1YXRpbmcgY2xpZW50IGV4cHJlc3Npb24gaW4gZGVidWcgbW9kZSByZXF1aXJlcyB0eXBpbmcKCSAgICAiY29udCIuClNvbHV0aW9uOiAgIFVzZSBldmFsX2NsaWVudF9leHByX3RvX3N0cmluZygpLgpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjIuMzM1ClByb2JsZW06ICAgIFRoZSAiOnNpZ24iIGNvbW1hbmQgY2Fubm90IGJlIGZvbGxvd2VkIGJ5IGFub3RoZXIgY29tbWFuZC4KU29sdXRpb246ICAgQWRkIFRSTEJBUiB0byB0aGUgY29tbWFuZCBmbGFncy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5oCgpQYXRjaCA2LjIuMzM2IChhZnRlciA2LjIuMzI3KQpQcm9ibGVtOiAgICBNaXh1cCBvZiBpdGVtcyBpbiBhbiBleHByZXNzaW9uLgpTb2x1dGlvbjogICBNb3ZlICI9PSBOVUwiIHRvIHRoZSByaWdodCBzcG90LgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMi4zMzcgKGV4dHJhLCBhZnRlciA2LjIuMzE5KQpQcm9ibGVtOiAgICBCdWlsZGluZyBndmltZXh0LmRsbCB3aXRoIE1pbmd3IGRvZXNuJ3Qgd29yayBwcm9wZXJseS4KU29sdXRpb246ICAgRml4IHdoaXRlIHNwYWNlIGFuZCBvdGhlciBkZXRhaWxzLiAoQWxlamFuZHJvIExvcGV6LVZhbGVuY2lhKQpGaWxlczoJICAgIHNyYy9HdmltRXh0L01ha2VfbWluZy5tYWsKClBhdGNoIDYuMi4zMzggKGFmdGVyIDYuMi4zMzEpClByb2JsZW06ICAgIFdoZW4gdW5kb2luZyAiZ3dhcCIgdGhlIGN1cnNvciBpcyBhbHdheXMgcHV0IGF0IHRoZSBzdGFydCBvZiB0aGUKCSAgICBwYXJhZ3JhcGguICBXaGVuIHVuZG9pbmcgYXV0by1mb3JtYXR0aW5nIHRoZSBjdXJzb3IgbWF5IGJlIGFib3ZlCgkgICAgdGhlIGNoYW5nZS4KU29sdXRpb246ICAgVHJ5IHRvIG1vdmUgdGhlIGN1cnNvciBiYWNrIHRvIHdoZXJlIGl0IHdhcyBvciB0byB0aGUgZmlyc3QgbGluZQoJICAgIHRoYXQgYWN0dWFsbHkgY2hhbmdlZC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMsIHNyYy9vcHMuYywgc3JjL3VuZG8uYwoKUGF0Y2ggNi4yLjMzOQpQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHVzaW5nIG1hbnkgZGlmZmVyZW50IGhpZ2hsaWdodCBncm91cHMgYW5kIGEgVXNlcgoJICAgIGhpZ2hsaWdodCBncm91cC4gIChKdWVyZ2VuIEtyYWVtZXIpClNvbHV0aW9uOiAgIERvIG5vdCB1c2UgdGhlIHNnX25hbWVfdSBwb2ludGVyIHdoZW4gaXQgaXMgTlVMTC4gIEFsc28gc2ltcGxpZnkKCSAgICB1c2Ugb2YgdGhlIGhpZ2hsaWdodCBncm91cCB0YWJsZS4KRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMi4zNDAKUHJvYmxlbTogICAgIjpyZWciIGRvZXNuJ3Qgc2hvdyB0aGUgYWN0dWFsIGNvbnRlbnRzIG9mIHRoZSBjbGlwYm9hcmQgaWYgaXQgd2FzCgkgICAgZmlsbGVkIG91dHNpZGUgb2YgVmltLiAoU3R1YXJ0IE1hY0RvbmFsZCkKU29sdXRpb246ICAgT2J0YWluIHRoZSBjbGlwYm9hcmQgY29udGVudHMgYmVmb3JlIGRpc3BsYXlpbmcgaXQuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjIuMzQxIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gdGhlIHBhdGggdG8gZGlmZi5leGUgY29udGFpbnMgYSBzcGFjZSBhbmQgdXNpbmcgdGhlCgkgICAgdmltcmMgZ2VuZXJhdGVkIGJ5IHRoZSBpbnN0YWxsIHByb2dyYW0sIGRpZmYgbW9kZSBkb2VzIG5vdCB3b3JrLgpTb2x1dGlvbjogICBQdXQgdGhlIGZpcnN0IGRvdWJsZSBxdW90ZSBqdXN0IGJlZm9yZSB0aGUgc3BhY2UgaW5zdGVhZCBvZiBiZWZvcmUKCSAgICB0aGUgcGF0aC4KRmlsZXM6CSAgICBzcmMvZG9zaW5zdC5jCgpQYXRjaCA2LjIuMzQyIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IG1hY3JvcyBhcmUgbm90IGFsd2F5cyB1c2VkIGFzIGV4cGVjdGVkLgpTb2x1dGlvbjogICBEZWZpbmUgV0lOVkVSIHRvIDB4MDQwMCBpbnN0ZWFkIG9mIDB4NDAwLiAoQWxlamFuZHJvCgkgICAgTG9wZXotVmFsZW5jaWEpCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1haywgc3JjL01ha2VfY3lnLm1haywgc3JjL01ha2VfbXZjLm1hawoKUGF0Y2ggNi4yLjM0MwpQcm9ibGVtOiAgICBUaXRsZSBkb2Vzbid0IHdvcmsgd2l0aCBzb21lIHdpbmRvdyBtYW5hZ2Vycy4gIFgxMTogU2V0dGluZyB0aGUKCSAgICB0ZXh0IHByb3BlcnR5IGZvciB0aGUgd2luZG93IHRpdGxlIGlzIGhhcmQgY29kZWQuClNvbHV0aW9uOiAgIFVzZSBTVFJJTkcgZm9ybWF0IHdoZW4gcG9zc2libGUuICBVc2UgdGhlIFVURi04IGZ1bmN0aW9uIHdoZW4KCSAgICBpdCdzIGF2YWlsYWJsZSBhbmQgJ2VuY29kaW5nJyBpcyB1dGYtOC4gVXNlCgkgICAgWFN0cmluZ0xpc3RUb1RleHRQcm9wZXJ0eSgpLiAgRG8gdGhlIHNhbWUgZm9yIHRoZSBpY29uIG5hbWUuCgkgICAgKERhdmlkIEhhcnJpc29uKQpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMi4zNDQgKGV4dHJhLCBhZnRlciA2LjIuMzM3KQpQcm9ibGVtOiAgICBDYW5ub3QgYnVpbGQgZ3ZpbWV4dC5kbGwgd2l0aCBNaW5nVyBvbiBMaW51eC4KU29sdXRpb246ICAgQWRkIHN1cHBvcnQgZm9yIGNyb3NzIGNvbXBpbGluZy4gKFJvbmFsZCBIb2VsbHdhcnRoKQpGaWxlczoJICAgIHNyYy9HdmltRXh0L01ha2VfbWluZy5tYWsKClBhdGNoIDYuMi4zNDUgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogQ29weS9wYXN0ZSBiZXR3ZWVuIHR3byBWaW1zIGZhaWxzIGlmICdlbmNvZGluZycgaXMgbm90IHNldAoJICAgIHByb3Blcmx5IG9yIHRoZXJlIGFyZSBpbGxlZ2FsIGJ5dGVzLgpTb2x1dGlvbjogICBVc2UgYSByYXcgYnl0ZSBmb3JtYXQuICBBbHdheXMgc2V0IGl0IHdoZW4gY29weWluZy4gIFdoZW4gcGFzdGluZwoJICAgIHVzZSB0aGUgcmF3IGZvcm1hdCBpZiAnZW5jb2RpbmcnIGlzIHRoZSBzYW1lLgpGaWxlczoJICAgIHNyYy9vc19tc3dpbi5jLCBzcmMvb3Nfd2luMTYuYywgc3JjL29zX3dpbjMyLmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjM0NgpQcm9ibGVtOiAgICBXaW4zMiBjb25zb2xlOiBBZnRlciB1c2luZyAiY2hjcCIgVmltIGRvZXMgbm90IGRldGVjdCB0aGUKCSAgICBkaWZmZXJlbnQgY29kZXBhZ2UuClNvbHV0aW9uOiAgIFVzZSBHZXRDb25zb2xlQ1AoKSBhbmQgd2hlbiBpdCBpcyBkaWZmZXJlbnQgZnJvbSBHZXRBQ1AoKSBzZXQKCSAgICAndGVybWVuY29kaW5nJy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi4zNDcgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogWFAgdGhlbWUgc3VwcG9ydCBpcyBtaXNzaW5nLgpTb2x1dGlvbjogICBBZGQgYSBtYW5pZmVzdCBhbmQgcmVmZXIgdG8gaXQgZnJvbSB0aGUgcmVzb3VyY2UgZmlsZS4gIChNaWNoYWVsCgkgICAgV29va2V5KQpGaWxlczoJICAgIE1ha2VmaWxlLCBzcmMvZ3ZpbS5leGUubW5mLCBzcmMvdmltLnJjCgpQYXRjaCA2LjIuMzQ4ClByb2JsZW06ICAgIFdpbjMyOiAidmltIGM6XGRpclwodGVzdCkiIGRvZXNuJ3Qgd29yaywgYmVjYXVzZSB0aGUgJ2lzZm5hbWUnCgkgICAgZGVmYXVsdCB2YWx1ZSBkb2Vzbid0IGNvbnRhaW4gcGFyZW50aGVzaXMuClNvbHV0aW9uOiAgIFRlbXBvcmFyaWx5IGFkZCAnKCcgYW5kICcpJyB0byAnaXNmbmFtZScgd2hlbiBleHBhbmRpbmcgZmlsZSBuYW1lCgkgICAgYXJndW1lbnRzLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMi4zNDkKUHJvYmxlbTogICAgRmluZGluZyBhIG1hdGNoIHVzaW5nICdtYXRjaHBhaXJzJyBtYXkgY2F1c2UgYSBjcmFzaC4KCSAgICAnbWF0Y2hwYWlycycgaXMgbm90IHVzZWQgZm9yICdzaG93bWF0Y2gnLgpTb2x1dGlvbjogICBEb24ndCBsb29rIHBhc3QgdGhlIE5VTCBpbiAnbWF0Y2hwYWlycycuICBVc2UgJ21hdGNocGFpcnMnIGZvcgoJICAgICdzaG93bWF0Y2gnLiAoRGF2ZSBPbHN6ZXdrc2tpKQpGaWxlczoJICAgIHNyYy9taXNjMS5jLCBzcmMvbm9ybWFsLmMsIHNyYy9wcm90by9zZWFyY2gucHJvLCBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMi4zNTAKUHJvYmxlbTogICAgTm90IGVub3VnaCBpbmZvIGFib3V0IHN0YXJ0dXAgdGltaW5nLgpTb2x1dGlvbjogICBBZGQgYSBmZXcgbW9yZSBUSU1FX01TRygpIGNhbGxzLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMi4zNTEKUHJvYmxlbTogICAgV2luMzI6ICRIT01FIG1heSBiZSBzZXQgdG8gJVVTRVJQUk9GSUxFJS4KU29sdXRpb246ICAgRXhwYW5kICVWQVIlIGF0IHRoZSBzdGFydCBvZiAkSE9NRS4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4yLjM1MiAoYWZ0ZXIgNi4yLjMzNSkKUHJvYmxlbTogICAgIjpzaWduIHRleHRobD18fCIgZG9lcyBub3Qgd29yay4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBjaGVjayBmb3IgYSBmb2xsb3dpbmcgY29tbWFuZC4gIEdpdmUgYW4gZXJyb3IgZm9yIGV4dHJhCgkgICAgYXJndW1lbnRzIGFmdGVyICJidWZmPTEiLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMsIHNyYy9leF9jbWRzLmgKClBhdGNoIDYuMi4zNTMgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogU3VwcG9ydGVkIHNlcnZlciBuYW1lIGxlbmd0aCBpcyBsaW1pdGVkLiAoUGF1bCBCb3NzaSkKU29sdXRpb246ICAgVXNlIE1BWF9QQVRIIGluc3RlYWQgb2YgMjUuCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMi4zNTQgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB0aGUgbW91c2UgcG9pbnRlciBpcyBvbiBhIHRlYXItb2ZmIG1lbnUgaXQgaXMgaGlkZGVuCgkgICAgd2hlbiB0eXBpbmcgYnV0IGlzIG5vdCByZWRpc3BsYXllZCB3aGVuIG1vdmVkLiAoTWFya3ggSGFja21hbm4pClNvbHV0aW9uOiAgIEhhbmRsZSB0aGUgcG9pbnRlciBtb3ZlIGV2ZW50IGZvciB0aGUgdGVhci1vZmYgbWVudSB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4yLjM1NSAoYWZ0ZXIgNi4yLjMwMykKUHJvYmxlbTogICAgV2hlbiAnZW5jb2RpbmcnIGlzIGEgZG91YmxlLWJ5dGUgZW5jb2RpbmcgZGlmZmVyZW50IGZyb20gdGhlCgkgICAgY3VycmVudCBsb2NhbGUsIHRoZSB3aWR0aCBvZiBjaGFyYWN0ZXJzIGlzIG5vdCBjb3JyZWN0LgoJICAgIFBvc3NpYmxlIGZhaWx1cmUgYW5kIG1lbW9yeSBsZWFrIHdoZW4gdXNpbmcgaWNvbnYsIFVuaWNvZGUKCSAgICBkaWdyYXBocyBhbmQgJ2VuY29kaW5nJyBpcyBub3QgInV0Zi04Ii4KU29sdXRpb246ICAgVXNlIGljb252KCkgdG8gZGlzY292ZXIgdGhlIGFjdHVhbCB3aWR0aCBvZiBjaGFyYWN0ZXJzLgoJICAgIEFkZCB0aGUgInZjX2ZhaWwiIGZpZWxkIHRvIHZpbWNvbnZfVC4KCSAgICBXaGVuIGNvbnZlcnRpbmcgYSBkaWdyYXBoLCBpbml0IHRoZSBjb252ZXJzaW9uIHR5cGUgdG8gTk9ORSBhbmQKCSAgICBjbGVhbnVwIGFmdGVyd2FyZHMuCkZpbGVzOgkgICAgc3JjL2RpZ3JhcGguYywgc3JjL21ieXRlLmMsIHNyYy9zdHJ1Y3RzLmgKClBhdGNoIDYuMi4zNTYKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIGRvdWJsZS1ieXRlICdlbmNvZGluZycgYW5kICdzZWxlY3Rpb24nIGlzCgkgICAgImV4Y2x1c2l2ZSIsICJ2eSIgb25seSB5YW5rcyB0aGUgZmlyc3QgYnl0ZSBvZiBhIGRvdWJsZS1ieXRlCgkgICAgY2hhcmFjdGVyLiAgKFhpYW5namlhbmcgTWEpClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIGNvbHVtbiBpbiB1bmFkanVzdF9mb3Jfc2VsKCkgdG8gcG9zaXRpb24gb24gdGhlIGZpcnN0CgkgICAgYnl0ZSwgYWx3YXlzIGluY2x1ZGUgdGhlIHRyYWlsaW5nIGJ5dGUgb2YgdGhlIHNlbGVjdGVkIHRleHQuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMzU3IChhZnRlciA2LjIuMzIxKQpQcm9ibGVtOiAgICBNZW1vcnkgbGVhayB3aGVuIHJlc2l6aW5nIHRoZSBWaW0gd2luZG93LgpTb2x1dGlvbjogICBGcmVlIHRoZSBMaW5lV3JhcHMgYXJyYXkuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuMzU4IChhZnRlciA2LjIuMjk5KQpQcm9ibGVtOiAgICBNZW1vcnkgbGVhayB3aGVuIHVzaW5nICI6aGVscCIgYW5kIHRoZSBsYW5ndWFnZSBkb2Vzbid0IG1hdGNoLgpTb2x1dGlvbjogICBGcmVlIHRoZSBhcnJheSB3aXRoIG1hdGNoaW5nIHRhZ3MuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4yLjM1OSAoYWZ0ZXIgNi4yLjM1MikKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgbG9uZyB0byBpbnQgdHlwZSBjYXN0LgpTb2x1dGlvbjogICBBZGQgZXhwbGljaXQgdHlwZSBjYXN0LgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi4zNjAKUHJvYmxlbTogICAgIjEwMHwiIGluIGFuIGVtcHR5IGxpbmUgcmVzdWx0cyBpbiBhIHJ1bGVyICIxLDAtMTAwIi4gKFBhdm9sCgkgICAgSnVoYXMpClNvbHV0aW9uOiAgIFJlY29tcHV0ZSB3X3ZpcnRjb2wgaWYgdGhlIHRhcmdldCBjb2x1bW4gd2FzIG5vdCByZWFjaGVkLgpGaWxlczoJICAgIHNyYy9taXNjMi5jCgpQYXRjaCA2LjIuMzYxIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFJ1biBndmltLCAiOnNldCBnby09bSIsIHVzZSBBbHQtVGFiLCBrZWVwIEFsdCBwcmVzc2VkIHdoaWxlCgkgICAgcHJlc3NpbmcgRXNjLCB0aGVuIHJlbGVhc2UgQWx0OiBDdXJzb3IgZGlzYXBwZWFycyBhbmQgdHlwaW5nIGEga2V5CgkgICAgY2F1c2VzIGEgYmVlcC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBEb24ndCBpZ25vcmUgdGhlIFdNX1NZU0tFWVVQIGV2ZW50IHdoZW4gdGhlIG1lbnUgaXMgZGlzYWJsZWQuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYwoKUGF0Y2ggNi4yLjM2MiAoZXh0cmEsIGFmdGVyIDYuMi4zNDcpClByb2JsZW06ICAgIFdpbjMyOiBUaGUgbWFuaWZlc3QgY2F1c2VzIEd2aW0gbm90IHRvIHdvcmsuIChEYXZlIFJvYmVydHMpClNvbHV0aW9uOiAgIENoYW5nZSAieDg2IiB0byAiWDg2Ii4gKFNlcmdlIFBpcm90dGUpCkZpbGVzOgkgICAgc3JjL2d2aW0uZXhlLm1uZgoKUGF0Y2ggNi4yLjM2MwpQcm9ibGVtOiAgICBJbiBhbiBlbXB0eSBmaWxlIHdpdGggJ3Nob3dtb2RlJyBvZmYsICJpIiBkb2Vzbid0IGNoYW5nZSB0aGUgcnVsZXIKCSAgICBmcm9tICIwLTEiIHRvICIxIi4gIFR5cGluZyAieDxCUz4iIGRvZXMgc2hvdyAiMSIsIGJ1dCB0aGVuIDxFc2M+CgkgICAgZG9lc24ndCBtYWtlIGl0ICIwLTEiIGFnYWluLiAgU2FtZSBwcm9ibGVtIGZvciBydWxlciBpbgoJICAgIHN0YXR1c2xpbmUuICAoQW5kcmV3IFBpbWxvdHQpClNvbHV0aW9uOiAgIFJlbWVtYmVyIHRoZSAiZW1wdHkgbGluZSIgZmxhZyB3aXRoIEluc2VydCBtb2RlIGFuZCdlZCB0byBpdC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMi4zNjQKUHJvYmxlbTogICAgSFRNTCB2ZXJzaW9uIG9mIHRoZSBkb2N1bWVudGF0aW9uIGRvZXNuJ3QgbWVudGlvbiB0aGUgZW5jb2RpbmcsCgkgICAgd2hpY2ggaXMgYSBwcm9ibGVtIGZvciBtYnl0ZS50eHQuClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgYXdrIHNjcmlwdC4gKElseWEgU2hlcikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9tYWtlaHRtbC5hd2sKClBhdGNoIDYuMi4zNjUKUHJvYmxlbTogICAgVGhlIGNvbmZpZ3VyZSBjaGVja3MgZm9yIFBlcmwgYW5kIFB5dGhvbiBtYXkgYWRkIGNvbXBpbGUgYW5kIGxpbmsKCSAgICBhcmd1bWVudHMgdGhhdCBicmVhayBidWlsZGluZyBWaW0uClNvbHV0aW9uOiAgIERvIGEgc2FuaXR5IGNoZWNrOiB0cnkgYnVpbGRpbmcgd2l0aCB0aGUgYXJndW1lbnRzLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbgoKUGF0Y2ggNi4yLjM2NgpQcm9ibGVtOiAgICBXaGVuIHRoZSBHVUkgY2FuJ3Qgc3RhcnQgYmVjYXVzZSBubyB2YWxpZCBmb250IGlzIGZvdW5kLCB0aGVyZSBpcwoJICAgIG5vIGVycm9yIG1lc3NhZ2UuIChVZ2VuKQpTb2x1dGlvbjogICBBZGQgYW4gZXJyb3IgbWVzc2FnZS4KRmlsZXM6CSAgICBzcmMvZ3VpLmMKClBhdGNoIDYuMi4zNjcKUHJvYmxlbTogICAgQnVpbGRpbmcgdGhlIGhlbHAgdGFncyBmaWxlIHdoaWxlIGluc3RhbGxpbmcgbWF5IGZhaWwgaWYgdGhlcmUgaXMKCSAgICBhbm90aGVyIFZpbSBpbiAkUEFUSC4KU29sdXRpb246ICAgU3BlY2lmeSB0aGUganVzdCBpbnN0YWxsZWQgVmltIGV4ZWN1dGFibGUuIChHb3Jkb24gUHJpZXVyKQpGaWxlczoJICAgIHNyYy9NYWtlZmlsZQoKUGF0Y2ggNi4yLjM2OApQcm9ibGVtOiAgICBXaGVuICdhdXRvY2hkaXInIGlzIHNldCwgY2xvc2luZyBhIHdpbmRvdyBkb2Vzbid0IGNoYW5nZSB0byB0aGUKCSAgICBkaXJlY3Rvcnkgb2YgdGhlIG5ldyBjdXJyZW50IHdpbmRvdy4gKFNhbG1hbiBIYWxpbSkKU29sdXRpb246ICAgSGFuZGxlICdhdXRvY2hkaXInIGFsd2F5cyB3aGVuIGEgd2luZG93IGJlY29tZXMgdGhlIGN1cnJlbnQgb25lLgpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4yLjM2OQpQcm9ibGVtOiAgICBWYXJpb3VzIG1lbW9yeSBsZWFrczogd2hlbiB1c2luZyBnbG9icGF0aCgpLCB3aGVuIHNlYXJjaGluZyBmb3IKCSAgICBoZWxwIHRhZ3MgZmlsZXMsIHdoZW4gZGVmaW5pbmcgYSBmdW5jdGlvbiBpbnNpZGUgYSBmdW5jdGlvbiwgd2hlbgoJICAgIGdpdmluZyBhbiBlcnJvciBtZXNzYWdlIHRocm91Z2ggYW4gZXhjZXB0aW9uLCBmb3IgdGhlIGZpbmFsICIuIgoJICAgIGxpbmUgaW4gIjphcHBlbmQiLCBpbiBleHByZXNzaW9uICJjb25kID8gYSA6IGIiIHRoYXQgZmFpbHMgYW5kIGZvcgoJICAgIG1pc3NpbmcgIikiIGluIGFuIGV4cHJlc3Npb24uICBVc2luZyBOVUxMIHBvaW50ZXIgd2hlbiBhZGRpbmcKCSAgICBmaXJzdCB1c2VyIGNvbW1hbmQgYW5kIGZvciBwb2ludGVyIGNvbXB1dGF0aW9ucyB3aXRoIHJlZ2V4cC4KCSAgICAodGVzdHMgYnkgRG9taW5pcXVlIFBlbGxlKQpTb2x1dGlvbjogICBGaXggdGhlIGxlYWtzIGJ5IGZyZWVpbmcgdGhlIGFsbG9jYXRlZCBtZW1vcnkuICBEb24ndCB1c2UgdGhlCgkgICAgYXJyYXkgb2YgdXNlciBjb21tYW5kcyB3aGVuIHRoZXJlIGFyZSBubyBlbnRyaWVzLiAgVXNlIGEgbWFjcm8KCSAgICBpbnN0ZWFkIG9mIGEgZnVuY3Rpb24gY2FsbCBmb3Igc2F2aW5nIGFuZCByZXN0b3JpbmcgcmVnZXhwIHN0YXRlcy4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfY21kcy5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2dldGxuLmMsCgkgICAgc3JjL21pc2MyLmMsIHNyYy9yZWdleHAuYywgc3JjL3NjcmVlbi5jLCBzcmMvdGFnLmMKClBhdGNoIDYuMi4zNzAgKGV4dHJhLCBhZnRlcjYuMi4zNDEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIHRoZSBwYXRoIHRvIGRpZmYuZXhlIGNvbnRhaW5zIGEgc3BhY2UgYW5kIHVzaW5nIHRoZQoJICAgIHZpbXJjIGdlbmVyYXRlZCBieSB0aGUgaW5zdGFsbCBwcm9ncmFtLCBkaWZmIG1vZGUgbWF5IG5vdCB3b3JrLgoJICAgIChBbGVqYW5kcm8gTG9wZXotVmFsZW5jaWEpClNvbHV0aW9uOiAgIERvIG5vdCB1c2UgZG91YmxlIHF1b3RlcyBmb3IgYXJndW1lbnRzIHRoYXQgZG8gbm90IGhhdmUgYSBzcGFjZS4KRmlsZXM6CSAgICBzcmMvZG9zaW5zdC5jCgpQYXRjaCA2LjIuMzcxClByb2JsZW06ICAgIFdoZW4gJ3ZpcnR1YWxlZGl0JyBpcyBzZXQgYW5kIHRoZXJlIGlzIGEgVGFiIGJlZm9yZSB0aGUgbmV4dCAieCIsCgkgICAgImR0eCIgZG9lcyBub3QgZGVsZXRlIHRoZSB3aG9sZSBUYWIuIChLZW4gSGFzaGlzaGkpClNvbHV0aW9uOiAgIE1vdmUgdGhlIGN1cnNvciB0byB0aGUgbGFzdCBwb3NpdGlvbiBvZiB0aGUgVGFiLiAgQWxzbyBmb3IKCSAgICAiZGY8VGFiPiIuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMzcyClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYmFsbG9vbiBldmFsdWF0aW9uLCBubyB2YWx1ZSBpcyBkaXNwbGF5ZWQgZm9yIG1lbWJlcnMKCSAgICBvZiBzdHJ1Y3R1cmVzIGFuZCBpdGVtcyBvZiBhbiBhcnJheS4KU29sdXRpb246ICAgSW5jbHVkZSAiLT4iLCAiLiIgYW5kICJbKl0iIGluIHRoZSBleHByZXNzaW9uLgpGaWxlczoJICAgIHNyYy9ndWlfYmV2YWwuYywgc3JjL25vcm1hbC5jLCBzcmMvdmltLmgKClBhdGNoIDYuMi4zNzMKUHJvYmxlbTogICAgV2hlbiAnd2lubWluaGVpZ2h0JyBpcyB6ZXJvIGFuZCBhIHdpbmRvdyBpcyByZWR1Y2VkIHRvIHplcm8KCSAgICBoZWlnaHQsIHRoZSBydWxlciBhbHdheXMgc2F5cyAiVG9wIiBpbnN0ZWFkIG9mIHRoZSBjdXJzb3IKCSAgICBwb3NpdGlvbi4gKEFudG9pbmUgSi4gTWVjaGVseW5jaykKU29sdXRpb246ICAgRG9uJ3QgcmVjb21wdXRlIHdfdG9wbGluZSBmb3IgYSB6ZXJvLWhlaWdodCB3aW5kb3cuCkZpbGVzOgkgICAgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjIuMzc0ClByb2JsZW06ICAgICI6ZWNobyAiaGVsbG8iIHwgc2lsZW50IG5vcm1hbCBuIiByZW1vdmVzIHRoZSAiaGVsbG8iIG1lc3NhZ2UuCgkgICAgKFNlcnZhdGl1cyBCcmFuZHQpClNvbHV0aW9uOiAgIERvbid0IGVjaG8gdGhlIHNlYXJjaCBzdHJpbmcgd2hlbiAiOnNpbGVudCIgd2FzIHVzZWQuICBBbHNvIGRvbid0CgkgICAgc2hvdyB0aGUgbW9kZS4gIEluIGdlbmVyYWw6IGRvbid0IGNsZWFyIHRvIHRoZSBlbmQgb2YgdGhlIHNjcmVlbi4KRmlsZXM6CSAgICBzcmMvZ3VpLmMsIHNyYy9tZXNzYWdlLmMsIHNyYy9vc191bml4LmMsIHNyYy9wcm90by9tZXNzYWdlLnBybywKCSAgICBzcmMvc2NyZWVuLmMsIHNyYy9zZWFyY2guYywgc3JjL3dpbmRvdy5jCgpQYXRjaCA2LjIuMzc1ClByb2JsZW06ICAgIFdoZW4gY2hhbmdpbmcgJ2d1aW9wdGlvbnMnIHRoZSBoaXQtZW50ZXIgcHJvbXB0IG1heSBiZSBiZWxvdyB0aGUKCSAgICBlbmQgb2YgdGhlIFZpbSB3aW5kb3cuClNvbHV0aW9uOiAgIENhbGwgc2NyZWVuX2FsbG9jKCkgYmVmb3JlIHNob3dpbmcgdGhlIHByb21wdC4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjIuMzc2ClByb2JsZW06ICAgIFdpbjMyOiBSdWJ5IGludGVyZmFjZSBjYW5ub3QgYmUgZHluYW1pY2FsbHkgbGlua2VkIHdpdGggUnVieSAxLjYuClNvbHV0aW9uOiAgIEFkZCAjaWZkZWZzIGFyb3VuZCB1c2Ugb2YgcmJfdzMyX3NucHJpbnRmKCkuICAoQmVub+50IENlcnJpbmEpCkZpbGVzOgkgICAgc3JjL2lmX3J1YnkuYwoKUGF0Y2ggNi4yLjM3NyAoYWZ0ZXIgNi4yLjM3MikKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZ3MgZm9yIHNpZ25lZC91bnNpZ25lZCBjb21wYXJlLiAoTWljaGFlbCBXb29rZXkpClNvbHV0aW9uOiAgIEFkZCB0eXBlIGNhc3QuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuMzc4IChleHRyYSwgYWZ0ZXIgNi4yLjExOCkKUHJvYmxlbTogICAgTWFjOiBjYW5ub3QgYnVpbGQgd2l0aCBQcm9qZWN0IEJ1aWxkZXIuClNvbHV0aW9uOiAgIEFkZCByZW1vdmVfdGFpbF93aXRoX2V4dCgpIHRvIGxvY2F0ZSBhbmQgcmVtb3ZlIHRoZSAiYnVpbGQiCgkgICAgZGlyZWN0b3J5IGZyb20gdGhlIHJ1bnRpbWUgcGF0aC4gIEluY2x1ZGUgb3NfdW5peC5jIHdoZW4gbmVlZGVkLgoJICAgIChEYW55IFN0IEFtYW50KQpGaWxlczoJICAgIHNyYy9taXNjMS5jLCBzcmMvb3NfbWFjb3N4LmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjM3OQpQcm9ibGVtOiAgICBVc2luZyAiOm1rdmltcmMiIGluIHRoZSAiOm9wdGlvbnMiIHdpbmRvdyBzZXRzICdidWZoaWRkZW4nIHRvCgkgICAgImRlbGV0ZSIuIChNaWNoYWVsIE5hdW1hbm4pClNvbHV0aW9uOiAgIERvIG5vdCBhZGQgYnVmZmVyLXNwZWNpZmljIG9wdGlvbiB2YWx1ZXMgdG8gYSBnbG9iYWwgdmltcmMgZmlsZS4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi4zODAgKGV4dHJhKQpQcm9ibGVtOiAgICBET1M6ICJtYWtlIHRlc3QiIGZhaWxzIHdoZW4gcnVubmluZyBpdCBhZ2Fpbi4gIENhbid0ICJtYWtlIHRlc3QiCgkgICAgd2l0aCBCb3JsYW5kIEMuClNvbHV0aW9uOiAgIE1ha2Ugc3VyZSAiLm91dCIgZmlsZXMgYXJlIGRlbGV0ZWQgd2hlbiB0aGV5IGdldCBpbiB0aGUgd2F5LiAgQWRkCgkgICAgYSAidGVzdCIgdGFyZ2V0IHRvIHRoZSBCb3JsYW5kIEMgTWFrZWZpbGUuCkZpbGVzOgkgICAgc3JjL01ha2VfYmM1Lm1haywgc3JjL3Rlc3RkaXIvTWFrZV9kb3MubWFrCgpQYXRjaCA2LjIuMzgxClByb2JsZW06ICAgIFNldHRpbmcgJ2ZpbGVlbmNvZGluZycgdG8gYSBjb21tYSBzZXBhcmF0ZWQgbGlzdCAoY29uZnVzaW5nIGl0CgkgICAgd2l0aCAnZmlsZWVuY29kaW5ncycpIGRvZXMgbm90IHJlc3VsdCBpbiBhbiBlcnJvciBtZXNzYWdlLgoJICAgIFNldHRpbmcgJ2ZpbGVlbmNvZGluZycgaW4gYW4gZW1wdHkgZmlsZSBtYXJrcyBpdCBhcyBtb2RpZmllZC4KCSAgICBUaGVyZSBpcyBubyAiKyIgaW4gdGhlIHRpdGxlIGFmdGVyIHNldHRpbmcgJ2ZpbGVlbmNvZGluZycuClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIGNvbW1hIGluICdmaWxlZW5jb2RpbmcnLiAgT25seSBjb25zaWRlciBhIG5vbi1lbXB0eQoJICAgIGZpbGUgbW9kaWZpZWQgYnkgY2hhbmdpbmcgJ2ZpbGVlbmNvZGluZycuICBVcGRhdGUgdGhlIHRpdGxlIGFmdGVyCgkgICAgY2hhbmdpbmcgJ2ZpbGVlbmNvZGluZycuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMzgyClByb2JsZW06ICAgIFJ1bm5pbmcgIm1ha2UgdGVzdCIgcHV0cyBtYXJrcyBmcm9tIHRlc3QgZmlsZXMgaW4gdmltaW5mby4KU29sdXRpb246ICAgU3BlY2lmeSBhIGRpZmZlcmVudCB2aW1pbmZvIGZpbGUgdG8gdXNlLgpGaWxlczoJICAgIHNyYy90ZXN0ZGlyL3Rlc3QxNS5pbiwgc3JjL3Rlc3RkaXIvdGVzdDQ5LmluCgpQYXRjaCA2LjIuMzgzClByb2JsZW06ICAgICI6aGkgZm9vIHRlcm09J2JsYSIgY3Jhc2hlcyBWaW0uIChBbnRvbnkgU2NyaXZlbikKU29sdXRpb246ICAgQ2hlY2sgdGhhdCB0aGUgY2xvc2luZyAnIGlzIHRoZXJlLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4yLjM4NApQcm9ibGVtOiAgICAiOm1lbnUgYS4mYiIgIjp1bm1lbnUgYS5iIiBvbmx5IHdvcmtzIGlmICImYiIgaXNuJ3QgdHJhbnNsYXRlZC4KU29sdXRpb246ICAgQWxzbyBjb21wYXJlIHRoZSBuYW1lcyB3aXRob3V0ICcmJyBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9tZW51LmMKClBhdGNoIDYuMi4zODUgIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IGZvcndhcmRfc2xhc2goKSBhbmQgdHJhc2hfaW5wdXRfYnVmKCkgYXJlIHVuZGVmaW5lZCB3aGVuCgkgICAgY29tcGlsaW5nIHdpdGggc21hbGwgZmVhdHVyZXMuIChBaml0IFRoYWtrYXIpClNvbHV0aW9uOiAgIENoYW5nZSB0aGUgI2lmZGVmcyBmb3IgZm9yd2FyZF9zbGFzaCgpLiAgRG9uJ3QgY2FsbAoJICAgIHRyYXNoX2lucHV0X2J1ZigpIGlmIHRoZSBpbnB1dCBidWZmZXIgaXNuJ3QgdXNlZC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuMzg2ClByb2JsZW06ICAgIFdhc3RpbmcgdGltZSB0cnlpbmcgdG8gcmVhZCBtYXJrcyBmcm9tIHRoZSB2aW1pbmZvIGZpbGUgZm9yIGEKCSAgICBidWZmZXIgd2l0aG91dCBhIG5hbWUuClNvbHV0aW9uOiAgIFNraXAgcmVhZGluZyBtYXJrcyB3aGVuIHRoZSBidWZmZXIgaGFzIG5vIG5hbWUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuMzg3ClByb2JsZW06ICAgIFRoZXJlIGlzIG5vIGhpZ2hsaWdodGluZyBvZiB0cmFuc2xhdGVkIGl0ZW1zIGluIGhlbHAgZmlsZXMuClNvbHV0aW9uOiAgIFNlYXJjaCBmb3IgYSAiaGVscF9hYi52aW0iIHN5bnRheCBmaWxlIHdoZW4gdGhlIGhlbHAgZmlsZSBpcwoJICAgIGNhbGxlZCAiKi5hYngiLiAgQWxzbyBpbXByb3ZlIHRoZSBoZWxwIGhpZ2hsaWdodGluZyBhIGJpdC4KRmlsZXM6CSAgICBydW50aW1lL3N5bnRheC9oZWxwLnZpbQoKUGF0Y2ggNi4yLjM4OApQcm9ibGVtOiAgICBHVEs6IFdoZW4gZGlzcGxheWluZyBzb21lIGRvdWJsZS13aWR0aCBjaGFyYWN0ZXJzIHRoZXkgYXJlIGRyYXduCgkgICAgYXMgc2luZ2xlLXdpZHRoLCBiZWNhdXNlIG9mIGNvbnZlcnNpb24gdG8gVVRGLTguClNvbHV0aW9uOiAgIENoZWNrIHRoZSB3aWR0aCB0aGF0IEdUSyB1c2VzIGFuZCBhZGQgYSBzcGFjZSBpZiBpdCdzIG9uZSBpbnN0ZWFkCgkgICAgb2YgdHdvLgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jCgpQYXRjaCA2LjIuMzg5ClByb2JsZW06ICAgIFdoZW4gd29ya2luZyBvdmVyIGEgc2xvdyBjb25uZWN0aW9uLCBpdCdzIHZlcnkgYW5ub3lpbmcgdGhhdCB0aGUKCSAgICBsYXN0IGxpbmUgaXMgcGFydGx5IGRyYXduIGFuZCB0aGVuIGNsZWFyZWQgZm9yIGV2ZXJ5IGNoYW5nZS4KU29sdXRpb246ICAgRG9uJ3QgcmVkcmF3IHRoZSBib3R0b20gbGluZSBpZiBubyByb3dzIHdlcmUgaW5zZXJ0ZWQgb3IgZGVsZXRlZC4KCSAgICBEb24ndCBkcmF3IHRoZSBsaW5lIGlmIHdlIGtub3cgIkAiIGxpbmVzIHdpbGwgYmUgdXNlZC4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMi4zOTAKUHJvYmxlbTogICAgVXNpbmcgInIqIiBpbiBWaXN1YWwgbW9kZSBvbiBtdWx0aS1ieXRlIGNoYXJhY3RlcnMgb25seSByZXBsYWNlcwoJICAgIGV2ZXJ5IG90aGVyIGNoYXJhY3Rlci4gKFR5c29uIFJvYmVydHMpClNvbHV0aW9uOiAgIENvcnJlY3QgdGhlIGN1cnNvciBwb3NpdGlvbiBhZnRlciByZXBsYWNpbmcgZWFjaCBjaGFyYWN0ZXIuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjIuMzkxIChleHRyYSkKUHJvYmxlbTogICAgVGhlICI6aGlnaGxpZ2h0IiBjb21tYW5kIGlzIG5vdCB0ZXN0ZWQuClNvbHV0aW9uOiAgIEFkZCBhIHRlc3Qgc2NyaXB0IGZvciAiOmhpZ2hsaWdodCIuCkZpbGVzOgkgICAgc3JjL3Rlc3RkaXIvTWFrZWZpbGUsIHNyYy90ZXN0ZGlyL01ha2VfYW1pZ2EubWFrLAoJICAgIHNyYy90ZXN0ZGlyL01ha2VfZG9zLm1haywgc3JjL3Rlc3RkaXIvTWFrZV9vczIubWFrLAoJICAgIHNyYy90ZXN0ZGlyL01ha2Vfdm1zLm1tcywgc3JjL3Rlc3RkaXIvdGVzdDUxLmluLAoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q1MS5vawoKUGF0Y2ggNi4yLjM5MiAoYWZ0ZXIgNi4yLjM4NCkKUHJvYmxlbTogICAgVW51c2VkIHZhcmlhYmxlLgpTb2x1dGlvbjogICBSZW1vdmUgImRsZW4iLgpGaWxlczoJICAgIHNyYy9tZW51LmMKClBhdGNoIDYuMi4zOTMKUHJvYmxlbTogICAgV2hlbiB1c2luZyB2ZXJ5IGxvbmcgbGluZXMgdGhlIHZpbWluZm8gZmlsZSBjYW4gYmVjb21lIHZlcnkgYmlnLgpTb2x1dGlvbjogICBBZGQgdGhlICJzIiBmbGFnIHRvICd2aW1pbmZvJzogc2tpcCByZWdpc3RlcnMgd2l0aCBtb3JlIHRoYW4gdGhlCgkgICAgc3BlY2lmaWVkIEtieXRlIG9mIHRleHQuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9vcHMuYywgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuMzk0ICAoYWZ0ZXIgNi4yLjM5MSkKUHJvYmxlbTogICAgVGVzdCA1MSBmYWlscyBvbiBhIHRlcm1pbmFsIHdpdGggOCBjb2xvcnMuIChUb255IExlbmVpcykKU29sdXRpb246ICAgVXNlICJEYXJrQmx1ZSIgaW5zdGVhZCBvZiAiQmx1ZSIgdG8gYXZvaWQgdGhlICJib2xkIiBhdHRyaWJ1dGUuCkZpbGVzOgkgICAgc3JjL3Rlc3RkaXIvdGVzdDUxLmluCgpQYXRjaCA2LjIuMzk1ClByb2JsZW06ICAgIFdoZW4gdXNpbmcgIjp0YWciIG9yICI6cG9wIiB0aGUgcHJldmlvdXMgbWF0Y2hpbmcgdGFnIGlzIHVzZWQuCgkgICAgQnV0IHNpbmNlIHRoZSBjdXJyZW50IGZpbGUgaXMgZGlmZmVyZW50LCB0aGUgb3JkZXJpbmcgb2YgdGhlIHRhZ3MKCSAgICBtYXkgY2hhbmdlLgpTb2x1dGlvbjogICBSZW1lbWJlciB3aGF0IHRoZSBjdXJyZW50IGJ1ZmZlciB3YXMgZm9yIHdoZW4gcmUtdXNpbmcgY3VyX21hdGNoLgpGaWxlczoJICAgIHNyYy9lZGl0LmMsIHNyYy9leF9jbWRzLmMsIHNyYy9wcm90by90YWcucHJvLCBzcmMvc3RydWN0cy5oLAoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjM5NgpQcm9ibGVtOiAgICBXaGVuIENUUkwtVCBqdW1wcyB0byBhbm90aGVyIGZpbGUgYW5kIGFuIGF1dG9jb21tYW5kIG1vdmVzIHRoZQoJICAgIGN1cnNvciB0byB0aGUgJyIgbWFyaywgZG9uJ3QgZW5kIHVwIG9uIHRoZSByaWdodCBsaW5lLiAgKE1pY2hhbAoJICAgIE1hbGVja2kpClNvbHV0aW9uOiAgIFNldCB0aGUgbGluZSBudW1iZXIgYWZ0ZXIgbG9hZGluZyB0aGUgZmlsZS4KRmlsZXM6CSAgICBzcmMvdGFnLmMKClBhdGNoIDYuMi4zOTcKUHJvYmxlbTogICAgV2hlbiB1c2luZyBhIGRvdWJsZS1ieXRlICdlbmNvZGluZycgbWFwcGluZyA8TS14PiBkb2Vzbid0IHdvcmsuCgkgICAgKFlhc3VoaXJvIE1hdHN1bW90bykKU29sdXRpb246ICAgRG8gbm90IHNldCB0aGUgOHRoIGJpdCBvZiB0aGUgY2hhcmFjdGVyIGJ1dCB1c2UgYSBtb2RpZmllci4KRmlsZXM6CSAgICBzcmMvZ3VpX2d0a194MTEuYywgc3JjL2d1aV94MTEuYywgc3JjL21pc2MyLmMKClBhdGNoIDYuMi4zOTggKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMiBjb25zb2xlOiBubyBleHRyYSBrZXkgbW9kaWZpZXJzIGFyZSBzdXBwb3J0ZWQuClNvbHV0aW9uOiAgIEVuY29kZSB0aGUgbW9kaWZpZXJzIGludG8gdGhlIGlucHV0IHN0cmVhbS4gIEFsc28gZml4IHRoYXQgc3BlY2lhbAoJICAgIGtleXMgYXJlIGNvbnZlcnRlZCBhbmQgc3RvcCB3b3JraW5nIHdoZW4gJ3RlbmMnIGlzIHNldC4gIEFsc28gZml4CgkgICAgdGhhdCB3aGVuICd0ZW5jJyBpcyBpbml0aWFsaXplZCB0aGUgaW5wdXQgYW5kIG91dHB1dCBjb252ZXJzaW9uIGlzCgkgICAgbm90IHNldHVwIHByb3Blcmx5IHVudGlsICdlbmMnIG9yICd0ZW5jJyBpcyBzZXQuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYywgc3JjL29wdGlvbi5jLCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjM5OQpQcm9ibGVtOiAgICBBICI6c2V0IiBjb21tYW5kIHRoYXQgZmFpbHMgc3RpbGwgd3JpdGVzIGEgbWVzc2FnZSB3aGVuIGl0IGlzCgkgICAgaW5zaWRlIGEgdHJ5L2NhdGNoIGJsb2NrLgpTb2x1dGlvbjogICBJbmNsdWRlIGFsbCB0aGUgdGV4dCBvZiB0aGUgbWVzc2FnZSBpbiB0aGUgZXJyb3IgbWVzc2FnZS4KRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jLCBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi40MDAKUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSBpZl94Y21kc3J2LmMgb24gSFAtVVggMTEuMC4KU29sdXRpb246ICAgSW5jbHVkZSBoZWFkZXIgZmlsZSBwb2xsLmguIChNYWx0ZSBOZXVtYW5uKQpGaWxlczoJICAgIHNyYy9pZl94Y21kc3J2LmMKClBhdGNoIDYuMi40MDEKUHJvYmxlbTogICAgV2hlbiBvcGVuaW5nIGEgYnVmZmVyIHRoYXQgd2FzIHByZXZpb3VzbHkgb3BlbmVkLCBWaW0gZG9lcyBub3QKCSAgICByZXN0b3JlIHRoZSBjdXJzb3IgcG9zaXRpb24gaWYgdGhlIGZpcnN0IGxpbmUgc3RhcnRzIHdpdGggd2hpdGUKCSAgICBzcGFjZS4gIChHcmVnb3J5IE1hcmdvKQpTb2x1dGlvbjogICBEb24ndCBza2lwIHJlc3RvcmluZyB0aGUgY3Vyc29yIHBvc2l0aW9uIGlmIGl0IGlzIHBhc3QgdGhlIGJsYW5rcwoJICAgIGluIHRoZSBmaXJzdCBsaW5lLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYwoKUGF0Y2ggNi4yLjQwMgpQcm9ibGVtOiAgICBNYWM6ICJtYWtlIGluc3RhbGwiIGRvZXNuJ3QgZ2VuZXJhdGUgaGVscCB0YWdzLiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBHZW5lcmF0ZSBoZWxwIHRhZ3MgYmVmb3JlIGNvcHlpbmcgdGhlIHJ1bnRpbWUgZmlsZXMuCkZpbGVzOgkgICAgc3JjL01ha2VmaWxlCgpQYXRjaCA2LjIuNDAzClByb2JsZW06ICAgICI6QHkiIGNoZWNrcyBzdGRpbiBpZiB0aGVyZSBhcmUgbW9yZSBjb21tYW5kcyB0byBleGVjdXRlLiAgVGhpcwoJICAgIGZhaWxzIGlmIHN0ZGluIGlzIG5vdCBjb25uZWN0ZWQsIGUuZy4sIHdoZW4gc3RhcnRpbmcgdGhlIEdVSSBmcm9tCgkgICAgS0RFLiAoTmVkIEtvbnopClNvbHV0aW9uOiAgIE9ubHkgY2hlY2sgZm9yIGEgbmV4dCBjb21tYW5kIGlmIHRoZXJlIHN0aWxsIGlzIHR5cGVhaGVhZC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjQwNApQcm9ibGVtOiAgICBPdXIgb3duIGZ1bmN0aW9uIHRvIGRldGVybWluZSB3aWR0aCBvZiBVbmljb2RlIGNoYXJhY3RlcnMgbWF5IGdldAoJICAgIG91dGRhdGVkLiAoTWFya3VzIEt1aG4pClNvbHV0aW9uOiAgIFVzZSB3Y3dpZHRoKCkgd2hlbiBpdCBpcyBhdmFpbGFibGUuICBBbHNvIHVzZSBpc3dwcmludCgpLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL2NvbmZpZ3VyZS5pbiwgc3JjL2NvbmZpZy5oLmluLCBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjQwNQpQcm9ibGVtOiAgICBDYW5ub3QgbWFwIHplcm8gd2l0aG91dCBicmVha2luZyB0aGUgY291bnQgYmVmb3JlIGEgY29tbWFuZC4KCSAgICAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBEaXNhYmxlIG1hcHBpbmcgemVybyB3aGVuIGVudGVyaW5nIGEgY291bnQuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYywgc3JjL2dsb2JhbHMuaCwgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjIuNDA2ClByb2JsZW06ICAgICI6aGVscCBcenMiLCAiOmhlbHAgXEA9IiBhbmQgc2ltaWxhciBkb24ndCBmaW5kIHVzZWZ1bCBoZWxwLgpTb2x1dGlvbjogICBQcmVwZW5kICIvXCIgdG8gdGhlIGFyZ3VtZW50cyB0byBmaW5kIHRoZSBkZXNpcmVkIGhlbHAgdGFnLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMi40MDcgKGFmdGVyIDYuMi4yOTkpClByb2JsZW06ICAgICI6aGVscCBcQDw9IiBkb2Vzbid0IGZpbmQgaGVscC4KU29sdXRpb246ICAgQXZvaWQgdGhhdCAiOmhlbHAgXEA8PSIgc2VhcmNoZXMgZm9yIHRoZSAiPD0iIGxhbmd1YWdlLgpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjQwOApQcm9ibGVtOiAgICAiOmNvbXBpbGVyIiBpcyBub3QgY29uc2lzdGVudDogU2V0cyBsb2NhbCBvcHRpb25zIGFuZCBhIGdsb2JhbAoJICAgIHZhcmlhYmxlLiAoRG91Z2xhcyBQb3R0cykgIFRoZXJlIGlzIG5vIGVycm9yIG1lc3NhZ2Ugd2hlbiBhCgkgICAgY29tcGlsZXIgaXMgbm90IHN1cHBvcnRlZC4KU29sdXRpb246ICAgVXNlICI6Y29tcGlsZXIhIiB0byBzZXQgYSBjb21waWxlciBnbG9iYWxseSwgb3RoZXJ3aXNlIGl0J3MgbG9jYWwKCSAgICB0byB0aGUgYnVmZmVyIGFuZCAiYjpjdXJyZW50X2NvbXBpbGVyIiBpcyB1c2VkLiAgR2l2ZSBhbiBlcnJvcgoJICAgIHdoZW4gbm8gY29tcGlsZXIgc2NyaXB0IGNvdWxkIGJlIGZvdW5kLgoJICAgIE5vdGU6IHVwZGF0ZWQgY29tcGlsZXIgcGx1Z2lucyBjYW4gYmUgZm91bmQgYXQKCSAgICBmdHA6Ly9mdHAudmltLm9yZy9wdWIvdmltL3J1bnRpbWUvY29tcGlsZXIvCkZpbGVzOgkgICAgcnVudGltZS9jb21waWxlci9tc3ZjLnZpbSwgcnVudGltZS9kb2MvcXVpY2tmaXgudHh0LCBzcmMvZXZhbC5jLAoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjIuNDA5ClByb2JsZW06ICAgIFRoZSBjdXJzb3IgZW5kcyB1cCBpbiB0aGUgbGFzdCBjb2x1bW4gaW5zdGVhZCBvZiBhZnRlciB0aGUgbGluZQoJICAgIHdoZW4gZG9pbmcgImkvLzxFc2M+byIgd2l0aCAnaW5kZW50ZXhwcicgc2V0IHRvICJjaW5kZW50KHY6bG51bSkiLgoJICAgIChUb2J5IEFsbHNvcHApClNvbHV0aW9uOiAgIEFkanVzdCB0aGUgY3Vyc29yIGFzIGlmIGluIEluc2VydCBtb2RlLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjIuNDEwIChhZnRlciA2LjIuMzg5KQpQcm9ibGVtOiAgICBJbiBkaWZmIG1vZGUsIHdoZW4gdGhlcmUgYXJlIG1vcmUgZmlsbGVyIGxpbmVzIHRoYW4gZml0IGluIHRoZQoJICAgIHdpbmRvdywgdGhleSBhcmUgbm90IGRyYXduLgpTb2x1dGlvbjogICBDaGVjayBmb3IgZmlsbGVyIGxpbmVzIHdoZW4gc2tpcHBpbmcgdG8gZHJhdyBhIGxpbmUgdGhhdCBkb2Vzbid0CgkgICAgZml0LgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4yLjQxMQpQcm9ibGVtOiAgICBBICJcbiIgaW5zaWRlIGEgc3RyaW5nIGlzIG5vdCBzZWVuIGFzIGEgbGluZSBicmVhayBieSB0aGUgcmVndWxhcgoJICAgIGV4cHJlc3Npb24gbWF0Y2hpbmcuIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgQWRkIHRoZSB2aW1fcmVnZXhlY19ubCgpIGZ1bmN0aW9uIGZvciBzdHJpbmdzIHdoZXJlICJcbiIgaXMgdG8gYmUKCSAgICBtYXRjaGVkIHdpdGggYSBsaW5lIGJyZWFrLgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9leF9ldmFsLmMsIHNyYy9wcm90by9yZWdleHAuYywgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjIuNDEyClByb2JsZW06ICAgIFJ1Ynk6ICJydWJ5IDw8IEVPRiIgaW5zaWRlIGEgZnVuY3Rpb24gZG9lc24ndCBhbHdheXMgd29yay4gIEFsc28KCSAgICBmb3IgIjpweXRob24iLCAiOnRjbCIgYW5kICI6cGVybCIuClNvbHV0aW9uOiAgIENoZWNrIGZvciAiPDwgbWFya2VyIiBhbmQgc2tpcCB1bnRpbCAibWFya2VyIiBiZWZvcmUgY2hlY2tpbmcgZm9yCgkgICAgImVuZGZ1bmN0aW9uIi4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuNDEzIChhZnRlciA2LjIuNDExKQpQcm9ibGVtOiAgICBNaXNzaW5nIHByb3RvdHlwZSBmb3IgdmltX3JlZ2V4ZWNfbmwoKS4gKE1hcmNlbCBTdml0YWxza3kpClNvbHV0aW9uOiAgIE5vdyByZWFsbHkgaW5jbHVkZSB0aGUgcHJvdG90eXBlLgpGaWxlczoJICAgIHNyYy9wcm90by9yZWdleHAucHJvCgpQYXRjaCA2LjIuNDE0ClByb2JsZW06ICAgIFRoZSBmdW5jdGlvbiB1c2VkIGZvciBjdXN0b20gY29tcGxldGlvbiBvZiB1c2VyIGNvbW1hbmRzIGNhbm5vdAoJICAgIGhhdmUgPFNJRD4gdG8gbWFrZSBpdCBsb2NhbC4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBQYXNzIHRoZSBTSUQgb2YgdGhlIHNjcmlwdCB3aGVyZSB0aGUgdXNlciBjb21tYW5kIHdhcyBkZWZpbmVkIG9uCgkgICAgdG8gdGhlIGNvbXBsZXRpb24uICBBbHNvIGNsZWFuIHVwICNpZmRlZnMuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9ldmFsLmMsIHNyYy9leF9nZXRsbi5jLCBzcmMvc3RydWN0cy5oCgpQYXRjaCA2LjIuNDE1ClByb2JsZW06ICAgIFZpbSBtYXkgY3Jhc2ggYWZ0ZXIgYSBzZXF1ZW5jZSBvZiBldmVudHMgdGhhdCBjaGFuZ2UgdGhlIHdpbmRvdwoJICAgIHNpemUuICBUaGUgd2luZG93IGxheW91dCBhc3N1bWVzIGEgbGFyZ2VyIHdpbmRvdyB0aGFuIGlzIGFjdHVhbGx5CgkgICAgYXZhaWxhYmxlLiAoU2VydmF0aXVzIEJyYW5kdCkKU29sdXRpb246ICAgSW52b2tlIHdpbl9uZXdfc2hlbGxzaXplKCkgZnJvbSBzY3JlZW5hbGxvYygpIGluc3RlYWQgb2YgZnJvbQoJICAgIHNldF9zaGVsbHNpemUoKS4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMsIHNyYy90ZXJtLmMKClBhdGNoIDYuMi40MTYKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgaW5jb21wYXRpYmxlIHBvaW50ZXIuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgIiYiIGluIHRoZSBjYWxsIHRvIHBvbGwoKS4gKFhhdmllciBkZSBHYXllKQpGaWxlczoJICAgIHNyYy9vc191bml4LmMKClBhdGNoIDYuMi40MTcgKGFmdGVyIDYuMi4zOTMpClByb2JsZW06ICAgIE1hbnkgcGVvcGxlIGZvcmdldCB0aGF0IHRoZSAnIicgaXRlbSBpbiAndmltaW5mbycgbmVlZHMgdG8gYmUKCSAgICBwcmVjZWRlZCB3aXRoIGEgYmFja3NsYXNoLApTb2x1dGlvbjogICBBZGQgJzwnIGFzIGFuIGFsaWFzIGZvciB0aGUgJyInIGl0ZW0uCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9vcHMuYywgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjIuNDE4ClByb2JsZW06ICAgIFVzaW5nICI6bm5vcmVtYXAgPEYxMj4gOmVjaG8gImNoZWVzZSIgYW5kICI6Y2FiYnIgY2hlZXNlIHh4eCI6CgkgICAgd2hlbiBwcmVzc2luZyA8RjEyPiBzdGlsbCB1c2VzIHRoZSBhYmJyZXZpYXRpb24uIChIYXJpIEtyaXNobmEpClNvbHV0aW9uOiAgIEFsc28gYXBwbHkgIm5vcmVtYXAiIHRvIGFiYnJldmlhdGlvbnMuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYwoKUGF0Y2ggNi4yLjQxOSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBDYW5ub3Qgb3BlbiB0aGUgVmltIHdpbmRvdyBpbnNpZGUgYW5vdGhlciBhcHBsaWNhdGlvbi4KU29sdXRpb246ICAgQWRkIHRoZSAiLVAiIGFyZ3VtZW50IHRvIHNwZWNpZnkgdGhlIHdpbmRvdyB0aXRsZSBvZiB0aGUKCSAgICBhcHBsaWNhdGlvbiB0byBydW4gaW5zaWRlLiAoWmlibyBaaGFvKQpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL3N0YXJ0aW5nLnR4dCwgc3JjL21haW4uYywgc3JjL2d1aV93MzIuYywKCSAgICBzcmMvZ3VpX3c0OC5jLCBzcmMvaWZfb2xlLmNwcCwgc3JjL29zX21zd2luLmMsCgkgICAgc3JjL3Byb3RvL2d1aV93MzIucHJvCgpQYXRjaCA2LjIuNDIwClByb2JsZW06ICAgIENhbm5vdCBzcGVjaWZ5IGEgZmlsZSB0byBiZSBlZGl0ZWQgaW4gYmluYXJ5IG1vZGUgd2l0aG91dCBzZXR0aW5nCgkgICAgdGhlIGdsb2JhbCB2YWx1ZSBvZiB0aGUgJ2JpbmFyeScgb3B0aW9uLgpTb2x1dGlvbjogICBTdXBwb3J0ICI6ZWRpdCArK2JpbiBmaWxlIi4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9lZGl0aW5nLnR4dCwgc3JjL2J1ZmZlci5jLCBzcmMvZXZhbC5jLCBzcmMvZXhfY21kcy5oLAoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZmlsZWlvLmMsIHNyYy9taXNjMi5jCgpQYXRjaCA2LjIuNDIxClByb2JsZW06ICAgIENhbm5vdCBzZXQgdGhlICdbIGFuZCAnXSBtYXJrLCB3aGljaCBtYXkgYmUgbmVjZXNzYXJ5IHdoZW4gYW4KCSAgICBhdXRvY29tbWFuZCBzaW11bGF0ZXMgcmVhZGluZyBhIGZpbGUuClNvbHV0aW9uOiAgIEFsbG93IHVzaW5nICJtWyIgYW5kICJtXSIuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvbW90aW9uLnR4dCwgc3JjL21hcmsuYwoKUGF0Y2ggNi4yLjQyMgpQcm9ibGVtOiAgICBJbiBDVFJMLVggY29tcGxldGlvbiBtZXNzYWdlcyB0aGUgIi8iIG1ha2VzIHRoZW0gbGVzcyByZWFkYWJsZS4KU29sdXRpb246ICAgUmVtb3ZlIHRoZSBzbGFzaGVzLiAoQW50b255IFNjcml2ZW4pCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4yLjQyMwpQcm9ibGVtOiAgICAiOnZlcnRpY2FsIHdpbmNtZCBdIiBkb2VzIG5vdCBzcGxpdCB2ZXJ0aWNhbGx5LgpTb2x1dGlvbjogICBBZGQgInBvc3Rwb25lZF9zcGxpdF9mbGFncyIuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9pZl9jc2NvcGUuYywgc3JjL3RhZy5jCgpQYXRjaCA2LjIuNDI0ClByb2JsZW06ICAgIEEgQnVmRW50ZXIgYXV0b2NvbW1hbmQgdGhhdCBzZXRzIGFuIG9wdGlvbiBzdG9wcyAnbW91c2Vmb2N1cycgZnJvbQoJICAgIHdvcmtpbmcgaW4gSW5zZXJ0IG1vZGUgKE5vcm1hbCBtb2RlIGlzIE9LKS4gKEdyZWdvcnkgU2VpZG1hbikKU29sdXRpb246ICAgSW4gdGhlIEluc2VydCBtb2RlIGxvb3AgaW52b2tlIGd1aV9tb3VzZV9jb3JyZWN0KCkgd2hlbiBuZWVkZWQuCkZpbGVzOgkgICAgc3JjL2VkaXQuYwoKUGF0Y2ggNi4yLjQyNQpQcm9ibGVtOiAgICBWZXJ0aWNhbCBzcGxpdCBhbmQgY29tbWFuZCBsaW5lIHdpbmRvdzogY2FuIG9ubHkgZHJhZyBzdGF0dXMgbGluZQoJICAgIGFib3ZlIHRoZSBjbWRsaW5lIHdpbmRvdyBvbiB0aGUgcmlnaHRoYW5kIHNpZGUsIG5vdCBsZWZ0aGFuZCBzaWRlLgpTb2x1dGlvbjogICBDaGVjayB0aGUgc3RhdHVzIGxpbmUgcm93IGluc3RlYWQgb2YgdGhlIHdpbmRvdyBwb2ludGVyLgpGaWxlczoJICAgIHNyYy91aS5jCgpQYXRjaCA2LjIuNDI2ClByb2JsZW06ICAgIEEgc3ludGF4IHJlZ2lvbiBlbmQgbWF0Y2ggd2l0aCBhIG1hdGNoZ3JvdXAgdGhhdCBpbmNsdWRlcyBhIGxpbmUKCSAgICBicmVhayBvbmx5IGhpZ2hsaWdodHMgdGhlIGxhc3QgbGluZSB3aXRoIG1hdGNoZ3JvdXAuIChHYXJ5CgkgICAgSG9sbG93YXkpClNvbHV0aW9uOiAgIEFsc28gdXNlIHRoZSBsaW5lIG51bWJlciBvZiB0aGUgcG9zaXRpb24gd2hlcmUgdGhlIHJlZ2lvbgoJICAgIGhpZ2hsaWdodGluZyBlbmRzLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4yLjQyNyAoZXh0cmEpClByb2JsZW06ICAgIFdoZW4gcGFzdGluZyBhIGxvdCBvZiB0ZXh0IGluIGEgbXVsdGktYnl0ZSBlbmNvZGluZywgY29udmVyc2lvbgoJICAgIGZyb20gJ3Rlcm1lbmNvZGluZycgdG8gJ2VuY29kaW5nJyBtYXkgZmFpbCBmb3Igc29tZSBjaGFyYWN0ZXJzLgoJICAgIChLdWFuZy1jaGUgV3UpClNvbHV0aW9uOiAgIFdoZW4gdGhlcmUgaXMgYW4gaW5jb21wbGV0ZSBieXRlIHNlcXVlbmNlIGF0IHRoZSBlbmQgb2YgdGhlIHJlYWQKCSAgICB0ZXh0IGtlZXAgaXQgZm9yIHRoZSBuZXh0IHRpbWUuCkZpbGVzOgkgICAgc3JjL21ieXRlLmMsIHNyYy9vc19hbWlnYS5jLCBzcmMvb3NfbXN3aW4uYywgc3JjL3Byb3RvL21ieXRlLnBybywKCSAgICBzcmMvcHJvdG8vb3NfbXN3aW4ucHJvLCBzcmMvdWkuYwoKUGF0Y2ggNi4yLjQyOApQcm9ibGVtOiAgICBUaGUgWDExIGNsaXBib2FyZCBzdXBwb3J0cyB0aGUgVmltIHNlbGVjdGlvbiBmb3IgY2hhci9saW5lL2Jsb2NrCgkgICAgbW9kZSwgYnV0IHNpbmNlIHRoZSBlbmNvZGluZyBpcyBub3QgaW5jbHVkZWQgIGNhbid0IGNvcHkvcGFzdGUKCSAgICBiZXR3ZWVuIHR3byBWaW1zIHdpdGggYSBkaWZmZXJlbnQgJ2VuY29kaW5nJy4KU29sdXRpb246ICAgQWRkIGEgbmV3IHNlbGVjdGlvbiBmb3JtYXQgdGhhdCBpbmNsdWRlcyB0aGUgJ2VuY29kaW5nJy4gIFBlcmZvcm0KCSAgICBjb252ZXJzaW9uIHdoZW4gbmVjZXNzYXJ5LgpGaWxlczoJICAgIHNyYy9ndWlfZ3RrX3gxMS5jLCBzcmMvdWkuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuNDI5ClByb2JsZW06ICAgIFVuaXg6IGdsb2IoKSBkb2Vzbid0IHdvcmsgZm9yIGEgZGlyZWN0b3J5IHdpdGggYSBzaW5nbGUgcXVvdGUgaW4KCSAgICB0aGUgbmFtZS4gKE5henJpIFJhbWxpeSkKU29sdXRpb246ICAgV2hlbiB1c2luZyB0aGUgc2hlbGwgdG8gZXhwYW5kLCBvbmx5IHB1dCBkb3VibGUgcXVvdGVzIGFyb3VuZAoJICAgIHNwYWNlcyBhbmQgc2luZ2xlIHF1b3Rlcywgbm90IHRoZSB3aG9sZSB0aGluZy4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuNDMwClByb2JsZW06ICAgIEJPTSBhdCBzdGFydCBvZiBhIHZpbSBzY3JpcHQgZmlsZSBpcyBub3QgcmVjb2duaXplZCBhbmQgY2F1c2VzIGFuCgkgICAgZXJyb3IgbWVzc2FnZS4KU29sdXRpb246ICAgRGV0ZWN0IHRoZSBCT00gYW5kIHNraXAgb3ZlciBpdC4gIEFsc28gZml4IHRoYXQgYWZ0ZXIgdXNpbmcKCSAgICAiOnNjcmlwdGVuY29kaW5nIiB0aGUgaWNvbnYoKSBmaWxlIGRlc2NyaXB0b3Igd2FzIG5vdCBjbG9zZWQKCSAgICAobWVtb3J5IGxlYWspLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjIuNDMxClByb2JsZW06ICAgIFdoZW4gdXNpbmcgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyLCB0aGUgc2Nyb2xsaW5nIGlzIGxpbWl0ZWQgdG8KCSAgICB0aGUgbGVuZ3RoIG9mIHRoZSBjdXJzb3IgbGluZS4KU29sdXRpb246ICAgTWFrZSB0aGUgc2Nyb2xsIGxpbWl0IGRlcGVuZCBvbiB0aGUgbG9uZ2VzdCB2aXNpYmxlIGxpbmUuICBUaGUKCSAgICBjdXJzb3IgaXMgbW92ZWQgd2hlbiBuZWNlc3NhcnkuICBJbmNsdWRpbmcgdGhlICdoJyBmbGFnIGluCgkgICAgJ2d1aW9wdGlvbnMnIGRpc2FibGVzIHRoaXMuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvZ3VpLnR4dCwgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9ndWkuYywKCSAgICBzcmMvbWlzYzIuYywgc3JjL29wdGlvbi5oCgpQYXRjaCA2LjIuNDMyIChhZnRlciA2LjIuNDMwIGFuZCA2LjIuNDMxKQpQcm9ibGVtOiAgICBMaW50IHdhcm5pbmdzLgpTb2x1dGlvbjogICBBZGQgdHlwZSBjYXN0cy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYywgc3JjL2d1aS5jCgpQYXRjaCA2LjIuNDMzClByb2JsZW06ICAgIFRyYW5zbGF0aW5nICJWSVNVQUwiIGFuZCAiQkxPQ0siIHNlcGFyYXRlbHkgZG9lc24ndCBnaXZlIGEgZ29vZAoJICAgIHJlc3VsdC4gKEFsZWphbmRybyBMb3BleiBWYWxlbmNpYSkKU29sdXRpb246ICAgVXNlIGEgc3RyaW5nIGZvciBlYWNoIGNvbWJpbmF0aW9uLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4yLjQzNCAoYWZ0ZXIgNi4yLjQzMSkKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZy4gKFNhbG1hbiBIYWxpbSkKU29sdXRpb246ICAgQWRkIHR5cGUgY2FzdHMuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjIuNDM1ClByb2JsZW06ICAgIFdoZW4gdGhlcmUgYXJlIHZlcnRpY2FsbHkgc3BsaXQgd2luZG93cyB0aGUgbWluaW1hbCBWaW0gd2luZG93CgkgICAgaGVpZ2h0IGlzIGNvbXB1dGVkIHdyb25nLgpTb2x1dGlvbjogICBVc2UgZnJhbWVfbWluaGVpZ2h0KCkgdG8gY29ycmVjdGx5IGNvbXB1dGUgdGhlIG1pbmltYWwgaGVpZ2h0LgpGaWxlczoJICAgIHNyYy93aW5kb3cuYwoKUGF0Y2ggNi4yLjQzNgpQcm9ibGVtOiAgICBSdW5uaW5nIHRoZSB0ZXN0cyBjaGFuZ2VzIHRoZSB1c2VyJ3MgdmltaW5mbyBmaWxlLgpTb2x1dGlvbjogICBJbiB0ZXN0IDQ5IHRlbGwgdGhlIGV4dHJhIFZpbSB0byB1c2UgdGhlIHRlc3QgdmltaW5mbyBmaWxlLgpGaWxlczoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q0OS52aW0KClBhdGNoIDYuMi40MzcKUHJvYmxlbTogICAgIjpta3Nlc3Npb24iIGFsd2F5cyBwdXRzICJzZXQgbm9jb21wYXRpYmxlIiBpbiB0aGUgc2Vzc2lvbiBmaWxlLgoJICAgIFRoaXMgY2hhbmdlcyBvcHRpb24gc2V0dGluZ3MuIChSb24gQWFyb24pClNvbHV0aW9uOiAgIEFkZCBhbiAiaWYiIHRvIG9ubHkgY2hhbmdlICdjb21wYXRpYmxlJyB3aGVuIG5lZWRlZC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjQzOApQcm9ibGVtOiAgICBXaGVuIHRoZSAndicgZmxhZyBpcyBwcmVzZW50IGluICdjcG9wdGlvbnMnLCBiYWNrc3BhY2luZyBhbmQgdGhlbgoJICAgIHR5cGluZyB0ZXh0IGFnYWluOiBvbmUgY2hhcmFjdGVyIHRvbyBtdWNoIGlzIG92ZXJ0eXBlZCBiZWZvcmUKCSAgICBpbnNlcnRpbmcgaXMgZG9uZSBhZ2Fpbi4KU29sdXRpb246ICAgU2V0ICJkb2xsYXJfdmNvbCIgdG8gdGhlIHJpZ2h0IGNvbHVtbi4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjIuNDM5ClByb2JsZW06ICAgIEdUSyAyOiBDaGFuZ2luZyAnbGluZXMnIG1heSBjYXVzZSBhIG1pc21hdGNoIGJldHdlZW4gdGhlIHdpbmRvdwoJICAgIGxheW91dCBhbmQgdGhlIHNpemUgb2YgdGhlIHdpbmRvdy4KU29sdXRpb246ICAgRGlzYWJsZSB0aGUgaGFjayB3aXRoIGZvcmNlX3NoZWxsX3Jlc2l6ZV9pZGxlKCkuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMi40NDAKUHJvYmxlbTogICAgV2hlbiAnbGF6eXJlZHJhdycgaXMgc2V0IHRoZSB3aW5kb3cgdGl0bGUgaXMgc3RpbGwgdXBkYXRlZC4KCSAgICBUaGUgc2l6ZSBvZiB0aGUgVmlzdWFsIGFyZWEgYW5kIHRoZSBydWxlciBhcmUgZGlzcGxheWVkIHRvbyBvZnRlbi4KU29sdXRpb246ICAgUG9zdHBvbmUgcmVkcmF3aW5nIHRoZSB3aW5kb3cgdGl0bGUuICBPbmx5IHNob3cgdGhlIFZpc3VhbCBhcmVhCgkgICAgc2l6ZSB3aGVuIHdhaXRpbmcgZm9yIGEgY2hhcmFjdGVyLiAgRG9uJ3QgZHJhdyB0aGUgcnVsZXIKCSAgICB1bm5lY2Vzc2FyeS4KRmlsZXM6CSAgICBzcmMvYnVmZmVyLmMsIHNyYy9ub3JtYWwuYywgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuNDQxClByb2JsZW06ICAgICI6dW5hYmJyZXZpYXRlIGZvbyAiIGRvZXNuJ3Qgd29yaywgYmVjYXVzZSBvZiB0aGUgdHJhaWxpbmcgc3BhY2UsCgkgICAgd2hpbGUgYW4gYWJicmV2aWF0aW9uIHdpdGggYSB0cmFpbGluZyBzcGFjZSBpcyBub3QgcG9zc2libGUuIChQYXVsCgkgICAgSm9sbHkpClNvbHV0aW9uOiAgIEFjY2VwdCBhIG1hdGNoIHdpdGggdGhlIGxocyBvZiBhbiBhYmJyZXZpYXRpb24gd2l0aG91dCB0aGUKCSAgICB0cmFpbGluZyBzcGFjZS4KRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jCgpQYXRjaCA2LjIuNDQyClByb2JsZW06ICAgIENhbm5vdCBtYW5pcHVsYXRlIHRoZSBjb21tYW5kIGxpbmUgZnJvbSBhIGZ1bmN0aW9uLgpTb2x1dGlvbjogICBBZGQgZ2V0Y21kbGluZSgpLCBnZXRjbWRwb3MoKSBhbmQgc2V0Y21kcG9zKCkgZnVuY3Rpb25zIGFuZCB0aGUKCSAgICBDVFJMLVwgZSBjb21tYW5kLgpGaWxlczoJICAgIHJ1bnRpbWUvZG9jL2NtZGxpbmUudHh0LCBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYwoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvb3BzLmMsIHNyYy9wcm90by9leF9nZXRsbi5wcm8sCgkgICAgc3JjL3Byb3RvL29wcy5wcm8KClBhdGNoIDYuMi40NDMKUHJvYmxlbTogICAgV2l0aCAiOnNpbGVudCEgZWNob2VyciBzb21ldGhpbmciIHlvdSBkb24ndCBnZXQgdGhlIHBvc2l0aW9uIG9mCgkgICAgdGhlIGVycm9yLiAgZW1zZygpIG9ubHkgd3JpdGVzIHRoZSBtZXNzYWdlIGl0c2VsZiBhbmQgcmV0dXJucy4KU29sdXRpb246ICAgQWxzbyByZWRpcmVjdCB0aGUgcG9zaXRpb24gb2YgdGhlIGVycm9yLgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMi40NDQKUHJvYmxlbTogICAgV2hlbiBhZGRpbmcgdGhlICdjJyBmbGFnIHRvIGEgIjpzdWJzdGl0dXRlIiBjb21tYW5kIGl0IG1heSByZXBsYWNlCgkgICAgbW9yZSB0aW1lcyB0aGFuIHdpdGhvdXQgdGhlICdjJyBmbGFnLiAgSGFwcGVucyBmb3IgYSAgbWF0Y2ggdGhhdAoJICAgIHN0YXJ0cyB3aXRoICJcemUiIChNYXJjZWwgU3ZpdGFsc2spIGFuZCB3aGVuIHVzaW5nICJcQDw9IiAoS2xhdXMKCSAgICBCb3NhdSkuClNvbHV0aW9uOiAgIENvcnJlY3QgInByZXZfbWF0Y2hjb2wiIHdoZW4gcmVwbGFjaW5nIHRoZSBsaW5lLiAgRG9uJ3QgcmVwbGFjZQoJICAgIHRoZSBsaW5lIHdoZW4gdGhlIHBhdHRlcm4gdXNlcyBsb29rLWJlaGluZCBtYXRjaGluZy4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvcHJvdG8vcmVnZXhwLnBybywgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjIuNDQ1ClByb2JsZW06ICAgIENvcHlpbmcgdmltdHV0b3IgdG8gL3RtcC9zb21ldGhpbmcgaXMgbm90IHNlY3VyZSwgYSBzeW1saW5rIG1heQoJICAgIGNhdXNlIHRyb3VibGUuClNvbHV0aW9uOiAgIENyZWF0ZSBhIGRpcmVjdG9yeSBhbmQgY3JlYXRlIHRoZSBmaWxlIGluIGl0LiAgVXNlICJ1bWFzayIgdG8KCSAgICBjcmVhdGUgdGhlIGRpcmVjdG9yeSB3aXRoIG1vZGUgNzAwLiAgKFN0ZWZhbiBOb3JkaGF1c2VuKQpGaWxlczoJICAgIHNyYy92aW10dXRvcgoKUGF0Y2ggNi4yLjQ0NiAoYWZ0ZXIgNi4yLjQwNCkKUHJvYmxlbTogICAgVXNpbmcgbGlicmFyeSBmdW5jdGlvbnMgd2N3aWR0aCgpIGFuZCBpc3dwcmludCgpIHJlc3VsdHMgaW4KCSAgICBkaXNwbGF5IHByb2JsZW1zIGZvciBIZWJyZXcgY2hhcmFjdGVycy4gKFJvbiBBYXJvbikKU29sdXRpb246ICAgRGlzYWJsZSB0aGUgY29kZSB0byB1c2UgdGhlIGxpYnJhcnkgZnVuY3Rpb25zLCB1c2Ugb3VyIG93bi4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjQ0NyAoYWZ0ZXIgNi4yLjQ0MCkKUHJvYmxlbTogICAgTm93IHRoYXQgdGhlIHRpdGxlIGlzIG9ubHkgdXBkYXRlZCB3aGVuIHJlZHJhd2luZywgaXQgaXMgbm8gbG9uZ2VyCgkgICAgcG9zc2libGUgdG8gc2hvdyBpdCB3aGlsZSBleGVjdXRpbmcgYSBmdW5jdGlvbi4gKE1hZG9rYSBNYWNoaXRhbmkpClNvbHV0aW9uOiAgIE1ha2UgIjpyZWRyYXciIGFsc28gdXBkYXRlIHRoZSB0aXRsZS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjQ0OCAoYWZ0ZXIgNi4yLjQyNykKUHJvYmxlbTogICAgTWFjOiBjb252ZXJzaW9uIGRvbmUgd2hlbiAndGVybWVuY29kaW5nJyBkaWZmZXJzIGZyb20gJ2VuY29kaW5nJwoJICAgIGZhaWxzIHdoZW4gcGFzdGluZyBhIGxvbmdlciB0ZXh0LgpTb2x1dGlvbjogICBDaGVjayBmb3IgYW4gaW5jb21wbGV0ZSBzZXF1ZW5jZSBhdCB0aGUgZW5kIG9mIHRoZSBjaHVuayB0byBiZQoJICAgIGNvbnZlcnRlZC4gKEVja2VoYXJkIEJlcm5zKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jCgpQYXRjaCA2LjIuNDQ5IChhZnRlciA2LjIuNDMxKQpQcm9ibGVtOiAgICBHZXQgZXJyb3IgbWVzc2FnZXMgd2hlbiBzd2l0Y2hpbmcgZmlsZXMuClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIHZhbGlkIGxpbmUgbnVtYmVyIHdoZW4gY2FsY3VsYXRpbmcgdGhlIHdpZHRoIG9mIHRoZQoJICAgIGhvcml6b250YWwgc2Nyb2xsYmFyLiAoSGVsbXV0IFN0aWVnbGVyKQpGaWxlczoJICAgIHNyYy9ndWkuYwoKUGF0Y2ggNi4yLjQ1MApQcm9ibGVtOiAgICAiICAjaW5jbHVkZSIgYW5kICIgICNkZWZpbmUiIGFyZSBub3QgcmVjb2duaXplZCB3aXRoIHRoZSBkZWZhdWx0CgkgICAgb3B0aW9uIHZhbHVlcyBmb3IgJ2luY2x1ZGUnIGFuZCAnZGVmaW5lZCcuIChSRyBLaXJhbikKU29sdXRpb246ICAgQWRqdXN0IHRoZSBkZWZhdWx0IHZhbHVlcyB0byBhbGxvdyB3aGl0ZSBzcGFjZSBiZWZvcmUgdGhlICMuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4yLjQ1MQpQcm9ibGVtOiAgICBHVEs6IHdoZW4gdXNpbmcgWElNIHRoZXJlIGFyZSB2YXJpb3VzIHByb2JsZW1zLCBpbmNsdWRpbmcgc2V0dGluZwoJICAgICdtb2RpZmllZCcgYW5kIGJyZWFraW5nIHVuZG8gYXQgdGhlIHdyb25nIG1vbWVudC4KU29sdXRpb246ICAgQWRkICJ4aW1fY2hhbmdlZF93aGlsZV9wcmVlZGl0aW5nIiwgInByZWVkaXRfZW5kX2NvbCIgYW5kCgkgICAgaW1faXNfcHJlZWRpdGluZygpLiAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9leF9nZXRsbi5jLCBzcmMvZ2xvYmFscy5oLCBzcmMvZ3VpX2d0ay5jLCBzcmMvZ3VpX2d0a194MTEuYywKCSAgICBzcmMvbWJ5dGUuYywgc3JjL21pc2MxLmMsIHNyYy9wcm90by9tYnl0ZS5wcm8sIHNyYy9zY3JlZW4uYywKCSAgICBzcmMvdW5kby5jCgpQYXRjaCA2LjIuNDUyClByb2JsZW06ICAgIEluIGRpZmYgbW9kZSwgd2hlbiBEaWZmQWRkIGFuZCBEaWZmVGV4dCBoaWdobGlnaHQgc2V0dGluZ3MgYXJlCgkgICAgZXF1YWwsIGFuIGFkZGVkIGxpbmUgaXMgaGlnaGxpZ2h0ZWQgd2l0aCBEaWZmQ2hhbmdlLiAoVG9tIFNjaHVtbSkKU29sdXRpb246ICAgUmVtZW1iZXIgdGhlIGRpZmYgaGlnaGxpZ2h0IHR5cGUgaW5zdGVhZCBvZiB0aGUgYXR0cmlidXRlcy4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMi40NTMKUHJvYmxlbTogICAgIjpzL2Zvb1x8XG5iYXIveC9nIiBkb2VzIG5vdCByZXBsYWNlIHR3byB0aW1lcyBpbiAiZm9vXG5iYXIiLgoJICAgIChQYXZlbCBQYXB1c2hldikKU29sdXRpb246ICAgV2hlbiB0aGUgcGF0dGVybiBjYW4gbWF0Y2ggYSBsaW5lIGJyZWFrIGFsc28gdHJ5IG1hdGNoaW5nIGF0IHRoZQoJICAgIE5VTCBhdCB0aGUgZW5kIG9mIGEgbGluZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvcmVnZXhwLmMKClBhdGNoIDYuMi40NTQKUHJvYmxlbTogICAgIjpsZXQgYjpjaGFuZ2VkdGljayIgZG9lc24ndCB3b3JrLiAoQWxhbiBTY2htaXR0KSAgIjpsZXQKCSAgICBiOmNoYW5nZWR0aWNrID0gOTkiIGRvZXMgbm90IGdpdmUgYW4gZXJyb3IgbWVzc2FnZS4KU29sdXRpb246ICAgQWRkIGNvZGUgdG8gcmVjb2duaXplICI6bGV0IGI6Y2hhbmdlZHRpY2siLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuMi40NTUgKGFmdGVyIDYuMi4yOTcpClByb2JsZW06ICAgIEluIFB5dGhvbiBjb21tYW5kcyB0aGUgY3VycmVudCBsb2NhbGUgY2hhbmdlcyBob3cgY2VydGFpbiBQeXRob24KCSAgICBmdW5jdGlvbnMgd29yay4gKEV1Z2VuZSBNLiBNaW5rb3Zza2lpKQpTb2x1dGlvbjogICBTZXQgdGhlIExDX05VTUVSSUMgbG9jYWxlIHRvICJDIiB3aGlsZSBleGVjdXRpbmcgYSBQeXRob24gY29tbWFuZC4KRmlsZXM6CSAgICBzcmMvaWZfcHl0aG9uLmMKClBhdGNoIDYuMi40NTYgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogRWRpdGluZyBhIGZpbGUgYnkgaXRzIFVuaWNvZGUgbmFtZSAoZHJvcHBpbmcgaXQgb24gVmltIG9yCgkgICAgdXNpbmcgdGhlIGZpbGUgc2VsZWN0aW9uIGRpYWxvZykgZG9lc24ndCB3b3JrLiAoWWFrb3YgTGVybmVyLCBBbGV4CgkgICAgSmFrdXNoZXYpClNvbHV0aW9uOiAgIFVzZSB3aWRlIGNoYXJhY3RlciBmdW5jdGlvbnMgd2hlbiBmaWxlIG5hbWVzIGFyZSBpbnZvbHZlZCBhbmQKCSAgICBjb252ZXJ0IGZyb20vdG8gJ2VuY29kaW5nJyB3aGVyZSBuZWVkZWQuCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYywgc3JjL21hY3Jvcy5oLCBzcmMvbWVtZmlsZS5jLCBzcmMvbWVtbGluZS5jLAoJICAgIHNyYy9vc19tc3dpbi5jLCBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjQ1NyAoYWZ0ZXIgNi4yLjI0NCkKUHJvYmxlbTogICAgV2hlbiAnZW5jb2RpbmcnIGlzICJ1dGYtOCIgYW5kIHdyaXRpbmcgdGV4dCB3aXRoIGNoYXJzIGFib3ZlIDB4ODAKCSAgICBpbiBsYXRpbjEsIGNvbnZlcnNpb24gaXMgd3JvbmcgZXZlcnkgODIwMCBieXRlcy4gKE95dmluZCBIb2xtKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSB1dGZfcHRyMmxlbl9jaGVja19sZW4oKSBmdW5jdGlvbiBhbmQgZml4IHRoZSBwcm9ibGVtCgkgICAgb2YgZGlzcGxheWluZyAweGY3IGluIHV0ZmNfcHRyMmxlbl9jaGVja19sZW4oKS4KRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4yLjQ1OApQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgc2V0ICIkIiBkb2Vzbid0IG1vdmUgdG8gdGhlIGVuZCBvZiBhbgoJICAgIHVucHJpbnRhYmxlIGNoYXJhY3RlciwgY2F1c2luZyAieSQiIG5vdCB0byBpbmNsdWRlIHRoYXQgY2hhcmFjdGVyLgoJICAgIChGcmVkIE1hKQpTb2x1dGlvbjogICBTZXQgImNvbGFkZCIgdG8gbW92ZSB0aGUgY3Vyc29yIHRvIHRoZSBlbmQgb2YgdGhlIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvbWlzYzIuYwoKUGF0Y2ggNi4yLjQ1OSAoYWZ0ZXIgNi4yLjQ1NCkKUHJvYmxlbTogICAgVmFyaWFibGUgImIiIGNhbm5vdCBiZSB3cml0dGVuLiAoU2FsbWFuIEhhbGltKQpTb2x1dGlvbjogICBDb21wYXJlIHN0cmluZ3MgcHJvcGVybHkuCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4yLjQ2MCAoZXh0cmEsIGFmdGVyIDYuMi40NTYpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmdzIGZvciBtaXNzaW5nIHByb3RvdHlwZXMuClNvbHV0aW9uOiAgIEluY2x1ZGUgdGhlIG1pc3NpbmcgcHJvdG90eXBlcy4KRmlsZXM6CSAgICBzcmMvcHJvdG8vb3Nfd2luMzIucHJvCgpQYXRjaCA2LjIuNDYxClByb2JsZW06ICAgIEFmdGVyIHVzaW5nIGEgc2VhcmNoIGNvbW1hbmQgIngiIHN0YXJ0cyBwdXR0aW5nIHNpbmdsZSBjaGFyYWN0ZXJzCgkgICAgaW4gdGhlIG51bWJlcmVkIHJlZ2lzdGVycy4KU29sdXRpb246ICAgUmVzZXQgInVzZV9yZWdfb25lIiBhdCB0aGUgcmlnaHQgbW9tZW50LgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKUGF0Y2ggNi4yLjQ2MgpQcm9ibGVtOiAgICBGaW5kaW5nIGEgbWF0Y2hpbmcgcGFyZW50aGVzaXMgZG9lcyBub3QgY29ycmVjdGx5IGhhbmRsZSBhCgkgICAgYmFja3NsYXNoIGluIGEgdHJhaWxpbmcgYnl0ZS4KU29sdXRpb246ICAgSGFuZGxlIG11bHRpLWJ5dGUgY2hhcmFjdGVycyBjb3JyZWN0bHkuIChUYXJvIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjIuNDYzIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IEFuIE5URlMgZmlsZSBzeXN0ZW0gbWF5IGNvbnRhaW4gZmlsZXMgd2l0aCBleHRyYSBpbmZvCgkgICAgc3RyZWFtcy4gIFRoZSBjdXJyZW50IG1ldGhvZCB0byBjb3B5IHRoZW0gY3JlYXRlcyBvbmUgYW5kIHRoZW4KCSAgICBkZWxldGVzIGl0IGFnYWluLiAgKFBldGVyIFRvZW5uaWVzKSAgQWxzbywgb25seSB0aHJlZSBzdHJlYW1zIHdpdGgKCSAgICBoYXJkIGNvZGVkIG5hbWVzIGFyZSBjb3BpZWQuClNvbHV0aW9uOiAgIFVzZSBCYWNrdXBSZWFkKCkgdG8gY2hlY2sgd2hpY2ggaW5mbyBzdHJlYW1zIHRoZSBvcmlnaW5hbCBmaWxlCgkgICAgY29udGFpbnMgYW5kIG9ubHkgY29weSB0aGVzZSBzdHJlYW1zLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuNDY0IChleHRyYSwgYWZ0ZXIgNi4yLjQyNykKUHJvYmxlbTogICAgQW1pZ2E6IENvbXBpbGF0aW9uIGVycm9yIHdpdGggZ2NjLiAoQWxpIEFrY2FhZ2FjKQpTb2x1dGlvbjogICBNb3ZlIHRoZSAjaWZkZWYgb3V0c2lkZSBvZiBSZWFkKCkuCkZpbGVzOgkgICAgc3JjL29zX2FtaWdhLmMKClBhdGNoIDYuMi40NjUKUHJvYmxlbTogICAgV2hlbiByZXNpemluZyB0aGUgR1VJIHdpbmRvdyB0aGUgd2luZG93IG1hbmFnZXIgc29tZXRpbWVzIG1vdmVzIGl0CgkgICAgbGVmdCBvZiBvciBhYm92ZSB0aGUgc2NyZWVuLiAoTWljaGFlbCBNY0NhcnR5KQpTb2x1dGlvbjogICBDaGVjayB0aGUgd2luZG93IHBvc2l0aW9uIGFmdGVyIHJlc2l6aW5nIGl0IGFuZCBtb3ZlIGl0IG9udG8gdGhlCgkgICAgc2NyZWVuIHdoZW4gaXQgaXNuJ3QuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjIuNDY2IChleHRyYSwgYWZ0ZXIgNi4yLjQ1NikKUHJvYmxlbTogICAgV2luMzI6IENvbXBpbGluZyB3aXRoIEJvcmxhbmQgQyBmYWlscywgYW5kIGFuIHVuL3NpZ25lZCB3YXJuaW5nLgpTb2x1dGlvbjogICBSZWRlZmluZSB3Y3NpY21wKCkgdG8gd2NzY21waSgpIGFuZCBhZGQgdHlwZSBjYXN0cy4gKFlhc3VoaXJvCgkgICAgTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjIuNDY3IChleHRyYSwgYWZ0ZXIgNi4yLjQ2MykKUHJvYmxlbTogICAgV2luMzI6IGNhbid0IGNvbXBpbGUgd2l0aG91dCBtdWx0aS1ieXRlIGZlYXR1cmUuIChBaml0IFRoYWtrYXIpClNvbHV0aW9uOiAgIEFkZCAjaWZkZWZzIGFyb3VuZCB0aGUgaW5mbyBzdHJlYW0gY29kZS4KRmlsZXM6CSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjQ2OApQcm9ibGVtOiAgICBDb21waWxlciB3YXJuaW5ncyBmb3Igc2hhZG93ZWQgdmFyaWFibGVzLiAoTWF0dGhpYXMgTW9ocikKU29sdXRpb246ICAgRGVsZXRlIHN1cGVyZmx1b3VzIHZhcmlhYmxlcyBhbmQgcmVuYW1lIG90aGVycy4KRmlsZXM6CSAgICBzcmMvZXZhbC5jLCBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2V2YWwuYywgc3JjL2lmX2NzY29wZS5jLAoJICAgIHNyYy9mb2xkLmMsIHNyYy9vcHRpb24uYywgc3JjL29zX3VuaXguYywgc3JjL3F1aWNrZml4LmMsCgkgICAgc3JjL3JlZ2V4cC5jCgpQYXRjaCA2LjIuNDY5IChleHRyYSwgYWZ0ZXIgNi4yLjQ1NikKUHJvYmxlbTogICAgV2luMzI6IENhbid0IGNyZWF0ZSBzd2FwIGZpbGUgd2hlbiAnZW5jb2RpbmcnIGRpZmZlcnMgZnJvbSB0aGUKCSAgICBhY3RpdmUgY29kZSBwYWdlLiAoS3JpdG9uIEt5cmltaXMpClNvbHV0aW9uOiAgIEluIGVuY190b191Y3MyKCkgdGVybWluYXRlIHRoZSBjb252ZXJ0ZWQgc3RyaW5nIHdpdGggYSBOVUwKRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4yLjQ3MApQcm9ibGVtOiAgICBUaGUgbmFtZSByZXR1cm5lZCBieSB0ZW1wbmFtZSgpIG1heSBiZSBlcXVhbCB0byB0aGUgZmlsZSB1c2VkIGZvcgoJICAgIHNoZWxsIG91dHB1dCB3aGVuIGlnbm9yaW5nIGNhc2UuClNvbHV0aW9uOiAgIFNraXAgJ08nIGFuZCAnSScgaW4gdGVtcG5hbWUoKS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuNDcxClByb2JsZW06ICAgICItTC91c3IvbGliIiBpcyB1c2VkIGluIHRoZSBsaW5rIGNvbW1hbmQsIGV2ZW4gdGhvdWdoIGl0J3MKCSAgICBzdXBwb3NlZCB0byBiZSBmaWx0ZXJlZCBvdXQuICItbHciIGFuZCAiLWxkbCIgYXJlIG5vdAoJICAgIGF1dG9tYXRpY2FsbHkgYWRkZWQgd2hlbiBuZWVkZWQgZm9yICItbFhtdSIuIChBbnRvbmlvIENvbG9tYm8pClNvbHV0aW9uOiAgIENoZWNrIGZvciBhIHNwYWNlIGFmdGVyIHRoZSBhcmd1bWVudCBpbnN0ZWFkIG9mIGJlZm9yZS4gIEFsc28KCSAgICByZW1vdmUgIi1SL3Vzci9saWIiIGlmIGl0J3MgdGhlcmUuICBDaGVjayBmb3IgIi1sdyIgYW5kICItbGRsIgoJICAgIGJlZm9yZSB0cnlpbmcgIi1sWG11Ii4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWd1cmUuaW4sIHNyYy9saW5rLnNoCgpQYXRjaCA2LjIuNDcyClByb2JsZW06ICAgIFdoZW4gdXNpbmcgYSBGaWxlQ2hhbmdlZFNoZWxsIGF1dG9jb21tYW5kIHRoYXQgY2hhbmdlcyB0aGUgY3VycmVudAoJICAgIGJ1ZmZlciwgYSBidWZmZXIgZXhpc3RzIHRoYXQgY2FuJ3QgYmUgd2lwZWQgb3V0LgoJICAgIEFsc28sIFZpbSBzb21ldGltZXMgY3Jhc2hlcyB3aGVuIGV4ZWN1dGluZyBhbiBleHRlcm5hbCBjb21tYW5kCgkgICAgdGhhdCBjaGFuZ2VzIHRoZSBidWZmZXIgYW5kIGEgRmlsZUNoYW5nZWRTaGVsbCBhdXRvY29tbWFuZCBpcwoJICAgIHVzZWQuICAoSGFyaSBLcmlzaG5hIERhcmEpCgkgICAgVXNlcnMgYXJlIGNvbmZ1c2VkIGJ5IHRoZSB3YXJuaW5nIGZvciBhIGZpbGUgYmVpbmcgY2hhbmdlZCBvdXRzaWRlCgkgICAgb2YgVmltLgpTb2x1dGlvbjogICBBdm9pZCB0aGF0IHRoZSB3aW5kb3cgY291bnRlciBmb3IgYSBidWZmZXIgaXMgaW5jcmVtZW50ZWQgdHdpY2UuCgkgICAgQXZvaWQgdGhhdCBidWZfY2hlY2tfdGltZXN0YW1wKCkgaXMgdXNlZCByZWN1cnNpdmVseS4KCSAgICBBZGQgYSBoaW50IHRvIGxvb2sgaW4gdGhlIGhlbHAgZm9yIG1vcmUgaW5mby4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jLCBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi40NzMKUHJvYmxlbTogICAgVXNpbmcgQ1RSTC1dIGluIGEgaGVscCBidWZmZXIgd2l0aG91dCBhIG5hbWUgY2F1c2VzIGEgY3Jhc2guClNvbHV0aW9uOiAgIENoZWNrIGZvciBuYW1lIHRvIGJlIHByZXNlbnQgYmVmb3JlIHVzaW5nIGl0LiAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjQ3NCAoZXh0cmEsIGFmdGVyIDYuMi40NTYpClByb2JsZW06ICAgIFdoZW4gVmltIGlzIHN0YXJ0aW5nIHVwIGNvbnZlcnNpb24gaXMgZG9uZSB1bm5lY2Vzc2FyaWx5LiAgRmFpbHVyZQoJICAgIHRvIGZpbmQgdGhlIHJ1bnRpbWUgZmlsZXMgb24gV2luZG93cyA5OC4gKFJhbmRhbGwgVy4gTW9ycmlzKQpTb2x1dGlvbjogICBJbml0IGVuY19jb2RlcGFnZSBuZWdhdGl2ZSwgb25seSB1c2UgaXQgd2hlbiBub3QgbmVnYXRpdmUuCgkgICAgRG9uJ3QgdXNlIEdldEZpbGVBdHRyaWJ1dGVzVygpIG9uIFdpbmRvd3MgOTggb3IgZWFybGllci4KRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oLCBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jLCBzcmMvb3NfbXN3aW4uYywKCSAgICBzcmMvb3Nfd2luMzIuYwoKUGF0Y2ggNi4yLjQ3NQpQcm9ibGVtOiAgICBDb21tYW5kcyBhZnRlciAicGVybCA8PEVPRiIgYXJlIHBhcnNlZCBhcyBWaW0gY29tbWFuZHMgd2hlbiB0aGV5CgkgICAgYXJlIG5vdCBleGVjdXRlZC4KU29sdXRpb246ICAgUHJvcGVybHkgc2tpcCBvdmVyIHRoZSBwZXJsIGNvbW1hbmRzLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jLCBzcmMvZXhfZ2V0bG4uYywgc3JjL2lmX3BlcmwueHMsIHNyYy9pZl9weXRob24uYywKCSAgICBzcmMvaWZfcnVieS5jLCBzcmMvaWZfdGNsLmMsIHNyYy9taXNjMi5jCgpQYXRjaCA2LjIuNDc2ClByb2JsZW06ICAgIFdoZW4gcmVsb2FkaW5nIGEgaGlkZGVuIGJ1ZmZlciBjaGFuZ2VkIG91dHNpZGUgb2YgVmltIGFuZCB0aGUKCSAgICBjdXJyZW50IGJ1ZmZlciBpcyByZWFkLW9ubHksIHRoZSByZWxvYWRlZCBidWZmZXIgYmVjb21lcwoJICAgIHJlYWQtb25seS4gIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgU2F2ZSB0aGUgJ3JlYWRvbmx5JyBmbGFnIG9mIHRoZSByZWxvYWRlZCBidWZmZXIgaW5zdGVhZCBvZiB0aGUKCSAgICBjdXJyZW50IGJ1ZmZlci4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi40NzcKUHJvYmxlbTogICAgVXNpbmcgcmVtb3RlX3NlbmQodjpzZXJ2ZXJuYW1lLCAiXDxDLVY+IikgY2F1c2VzIFZpbSB0byBoYW5nLgoJICAgIChZYWtvdiBMZXJuZXIpClNvbHV0aW9uOiAgIFdoZW4gdGhlIHJlc3VsdGluZyBzdHJpbmcgaXMgZW1wdHkgZG9uJ3Qgc2V0IHJlY2VpdmVkX2Zyb21fY2xpZW50LgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuMi40NzgKUHJvYmxlbTogICAgV2luMzI6ICItLXJlbW90ZSBmaWxlIiBmYWlscyBjaGFuZ2luZyBkaXJlY3RvcnkgaWYgdGhlIGN1cnJlbnQKCSAgICBkaXJlY3RvcnkgbmFtZSBzdGFydHMgd2l0aCBhIHNpbmdsZSBxdW90ZS4gIChJZXN0eW4gV2FsdGVycykKU29sdXRpb246ICAgQWRkIGEgYmFja3NsYXNoIHdoZXJlIGl0IHdpbGwgYmUgcmVtb3ZlZCBsYXRlci4KRmlsZXM6CSAgICBzcmMvbWFpbi5jLCBzcmMvbWlzYzIuYywgc3JjL3Byb3RvL21pc2MyLnBybwoKUGF0Y2ggNi4yLjQ3OQpQcm9ibGVtOiAgICBUaGUgZXJyb3IgbWVzc2FnZSBmb3IgZXJyb3JzIGR1cmluZyByZWNvdmVyeSBnb2VzIHVubm90aWNlZC4KU29sdXRpb246ICAgQXZvaWQgdGhhdCB0aGUgaGl0LWVudGVyIHByb21wdCBvdmVyd3JpdGVzIHRoZSBtZXNzYWdlLiAgQWRkIGEgZmV3CgkgICAgbGluZXMgdG8gbWFrZSB0aGUgZXJyb3Igc3RhbmQgb3V0LgpGaWxlczoJICAgIHNyYy9tYWluLmMsIHNyYy9tZXNzYWdlLmMsIHNyYy9tZW1saW5lLmMKClBhdGNoIDYuMi40ODAKUHJvYmxlbTogICAgTmV0QmVhbnM6IFVzaW5nIG5lZ2F0aXZlIGluZGV4IGluIGFycmF5LiAgYmFja3NsYXNoIGF0IGVuZCBvZgoJICAgIG1lc3NhZ2UgbWF5IGNhdXNlIFZpbSB0byBjcmFzaC4gKFhhdmllciBkZSBHYXllKQpTb2x1dGlvbjogICBJbml0aWFsaXplIGJ1Zl9saXN0X3VzZWQgdG8gemVyby4gQ2hlY2sgZm9yIHRyYWlsaW5nIGJhY2tzbGFzaC4KRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4yLjQ4MQpQcm9ibGVtOiAgICBXaGVuIHdyaXRpbmcgYSBmaWxlIGl0IGlzIG5vdCBwb3NzaWJsZSB0byBzcGVjaWZ5IHRoYXQgaGFyZCBhbmQvb3IKCSAgICBzeW1saW5rcyBhcmUgdG8gYmUgYnJva2VuIGluc3RlYWQgb2YgcHJlc2VydmVkLgpTb2x1dGlvbjogICBBZGQgdGhlICJicmVha3N5bWxpbmsiIGFuZCAiYnJlYWtoYXJkbGluayIgdmFsdWVzIHRvICdiYWNrdXBjb3B5Jy4KCSAgICAoU2ltb24gRWtzdHJhbmQpCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHNyYy9maWxlaW8uYywgc3JjL29wdGlvbi5jLCBzcmMvb3B0aW9uLmgKClBhdGNoIDYuMi40ODIKUHJvYmxlbTogICAgUmVwZWF0aW5nIGluc2VydCBvZiBDVFJMLUsgMSBTIGRvZXNuJ3Qgd29yay4gIFRoZSBzdXBlcnNjcmlwdCAxIGlzCgkgICAgY29uc2lkZXJlZCB0byBiZSBhIGRpZ2l0LiAoSnVlcmdlbiBLcmFlbWVyKQpTb2x1dGlvbjogICBJbiB2aW1faXNkaWdpdCgpIG9ubHkgYWNjZXB0ICcwJyB0byAnOScuICBVc2UgVklNX0lTRElHSVQoKSBmb3IKCSAgICBzcGVlZCB3aGVyZSBwb3NzaWJsZS4gIEFsc28gYWRkIHZpbV9pc3hkaWdpdCgpLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2NoYXJzZXQuYywgc3JjL2RpZmYuYywgc3JjL2RpZ3JhcGguYywKCSAgICBzcmMvZWRpdC5jLCBzcmMvZXZhbC5jLCwgc3JjL2V4X2NtZHMuYywgc3JjL2V4X2NtZHMyLmMsCgkgICAgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9ldmFsLmMsIHNyYy9leF9nZXRsbi5jLAoJICAgIHNyYy9pZl94Y21kc3J2LmMsIHNyYy9mYXJzaS5jLCBzcmMvZmlsZWlvLmMsIHNyYy9mb2xkLmMsCgkgICAgc3JjL2dldGNoYXIuYywgc3JjL2d1aS5jLCBzcmMvaWZfY3Njb3BlLmMsIHNyYy9tYWNyb3MuaCwKCSAgICBzcmMvbWFpbi5jLCBzcmMvbWFyay5jLCBzcmMvbWJ5dGUuYywgc3JjL21lbnUuYywgc3JjL21pc2MxLmMsCgkgICAgc3JjL21pc2MyLmMsIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jLCBzcmMvb3B0aW9uLmMsCgkgICAgc3JjL3Byb3RvL2NoYXJzZXQucHJvLCBzcmMvcmVnZXhwLmMsIHNyYy9zY3JlZW4uYywgc3JjL3NlYXJjaC5jLAoJICAgIHNyYy9zeW50YXguYywgc3JjL3RhZy5jLCBzcmMvdGVybS5jLCBzcmMvdGVybWxpYi5jCgpQYXRjaCA2LjIuNDgzIChleHRyYSwgYWZ0ZXIgNi4yLjQ4MikKUHJvYmxlbTogICAgU2VlIDYuMi40ODIuClNvbHV0aW9uOiAgIEV4dHJhIHBhcnQgb2YgcGF0Y2ggNi4yLjQ4Mi4KRmlsZXM6CSAgICBzcmMvZ3VpX3Bob3Rvbi5jLCBzcmMvZ3VpX3c0OC5jLCBzcmMvb3NfbXNkb3MuYywgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMi40ODQKUHJvYmxlbTogICAgTVMtV2luZG93czogV2l0aCB0aGUgaW5jbHVkZWQgZGlmZi5leGUsIGRpZmZlcmVuY2VzIGFmdGVyIGEgQ1RSTC1aCgkgICAgYXJlIG5vdCByZWNvZ25pemVkLiAgKFBldGVyIEtlcmVzenRlcykKU29sdXRpb246ICAgV3JpdGUgdGhlIGZpbGVzIHdpdGggdW5peCBmaWxlZm9ybWF0IGFuZCBpbnZva2UgZGlmZiB3aXRoIC0tYmluYXJ5CgkgICAgaWYgcG9zc2libGUuCkZpbGVzOgkgICAgc3JjL2RpZmYuYwoKUGF0Y2ggNi4yLjQ4NQpQcm9ibGVtOiAgICBBIEJ1ZldyaXRlQ21kIGF1dG9jb21tYW5kIGNhbm5vdCBrbm93IGlmICIhIiB3YXMgdXNlZCBvciBub3QuCgkgICAgKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBBZGQgdGhlIHY6Y21kYmFuZyB2YXJpYWJsZS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9ldmFsLnR4dCwgc3JjL2V2YWwuYywgc3JjL3Byb3RvL2V2YWwucHJvLAoJICAgIHNyYy9maWxlaW8uYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjIuNDg2ICg2LjIuNDgyKQpQcm9ibGVtOiAgICBEaWZmIGZvciBldmFsLmMgaXMgbWlzc2luZy4KU29sdXRpb246ICAgQWRkaXRpb24gdG8gcGF0Y2ggNi4yLjQ4Mi4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjIuNDg3IChleHRyYSwgYWZ0ZXIgNi4yLjQ1NikKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZ3MgZm9yIHdyb25nIHByb3RvdHlwZS4gKEFsZWphbmRybyBMb3BleiBWYWxlbmNpYSkKU29sdXRpb246ICAgRGVsZXRlIHRoZSBwcm90b3R5cGUgZm9yIEhhbmRsZV9XTV9Ob3RpZnkoKS4KRmlsZXM6CSAgICBzcmMvcHJvdG8vZ3VpX3czMi5wcm8KClBhdGNoIDYuMi40ODgKUHJvYmxlbTogICAgTWlzc2luZyAiKSIgaW4gKi5jaCBmaWxldHlwZSBkZXRlY3Rpb24uClNvbHV0aW9uOiAgIEFkZCB0aGUgIikiLiAgKENpYXJhbiBNY0NyZWVzaCkKRmlsZXM6CSAgICBydW50aW1lL2ZpbGV0eXBlLnZpbQoKUGF0Y2ggNi4yLjQ4OQpQcm9ibGVtOiAgICBXaGVuIGFjY2lkZW50YWxseSBvcGVuaW5nIGEgc2Vzc2lvbiBpbiBWaW0gd2hpY2ggaGFzIGFscmVhZHkgYmVlbgoJICAgIG9wZW5lZCBpbiBhbm90aGVyIFZpbSB0aGVyZSBpcyBhIGxvbmcgcm93IG9mIEFUVEVOVElPTiBwcm9tcHRzLgoJICAgIE5lZWQgdG8gcXVpdCBlYWNoIG9mIHRoZW0gdG8gZ2V0IG91dC4gKFJvYmVydCBXZWJiKQpTb2x1dGlvbjogICBBZGQgdGhlICJBYm9ydCIgYWx0ZXJuYXRpdmUgdG8gdGhlIGRpYWxvZy4KRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCgpQYXRjaCA2LjIuNDkwClByb2JsZW06ICAgIFdpdGggJ3BhcmFncmFwaCcgaXQgaXMgbm90IHBvc3NpYmxlIHRvIHVzZSBhIHNpbmdsZSBkb3QgYXMgYQoJICAgIHBhcmFncmFwaCBib3VuZGFyeS4gIChEb3JhaSBTaXRhcmFtKQpTb2x1dGlvbjogICBBbGxvdyB1c2luZyAiICAiICh0d28gc3BhY2VzKSBpbiAncGFyYWdyYXBoJyB0byBtYXRjaCAiLiQiIG9yCgkgICAgIi4gJCIKRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuMi40OTEKUHJvYmxlbTogICAgRGVjcmVtZW50aW5nIGEgcG9zaXRpb24gZG9lc24ndCB0YWtlIGNhcmUgb2YgbXVsdGktYnl0ZSBjaGFycy4KU29sdXRpb246ICAgQWRqdXN0IHRoZSBjb2x1bW4gZm9yIG11bHRpLWJ5dGUgY2hhcmFjdGVycy4gIFJlbW92ZSBtYl9kZWMoKS4KCSAgICAoWWFzdWhpcm8gTWF0c3Vtb3RvKQpGaWxlczoJICAgIHNyYy9tYnl0ZS5jLCBzcmMvbWlzYzIuYywgc3JjL3Byb3RvL21ieXRlLnBybwoKUGF0Y2ggNi4yLjQ5MgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICI6cmVkcmF3IiB3aGlsZSB0aGVyZSBpcyBhIG1lc3NhZ2UsIHRoZSBuZXh0ICI6ZWNobyIKCSAgICBzdGlsbCBjYXVzZXMgdGV4dCB0byBzY3JvbGwuIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIFJlc2V0IG1zZ19kaWRvdXQgYW5kIG1zZ19jb2wsIHNvIHRoYXQgYWZ0ZXIgIjpyZWRyYXciIHRoZSBuZXh0CgkgICAgbWVzc2FnZSBvdmVyd3JpdGVzIGFuIGV4aXN0aW5nIG9uZS4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4yLjQ5MwpQcm9ibGVtOiAgICAiQHgiIGRvZXNuJ3Qgd29yayB3aGVuICdpbnNlcnRtb2RlJyBpcyBzZXQuIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIFB1dCAicmVzdGFydF9lZGl0IiBpbiB0aGUgdHlwZWFoZWFkIGJ1ZmZlciwgc28gdGhhdCBpdCdzIHVzZWQKCSAgICBhZnRlciBleGVjdXRpbmcgdGhlIHJlZ2lzdGVyIGNvbnRlbnRzLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4yLjQ5NApQcm9ibGVtOiAgICBVc2luZyBkaWZmIG1vZGUgd2l0aCB0d28gd2luZG93cywgd2hlbiBtb3ZpbmcgaG9yaXpvbnRhbGx5IGluCgkgICAgaW5zZXJ0ZWQgbGluZXMsIGEgZm9sZCBpbiB0aGUgb3RoZXIgd2luZG93IG1heSBvcGVuLgpTb2x1dGlvbjogICBDb21wdXRlIHRoZSBsaW5lIG51bWJlciBpbiB0aGUgb3RoZXIgd2luZG93IGNvcnJlY3RseS4KRmlsZXM6CSAgICBzcmMvZGlmZi5jCgpQYXRjaCA2LjIuNDk1IChleHRyYSwgYWZ0ZXIgNi4yLjQ1NikKUHJvYmxlbTogICAgV2luMzI6IFRoZSBmaWxlIGRpYWxvZyBkb2Vzbid0IHdvcmsgb24gV2luZG93cyA5NS4KU29sdXRpb246ICAgUHV0IHRoZSB3aWRlIGNvZGUgb2YgZ3VpX21jaF9icm93c2UoKSBpbiBndWlfbWNoX2Jyb3dzZVcoKSBhbmQgdXNlCgkgICAgaXQgb25seSBvbiBXaW5kb3dzIE5ULzIwMDAvWFAuCkZpbGVzOgkgICAgc3JjL2d1aV93MzIuYywgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4yLjQ5NgpQcm9ibGVtOiAgICBGcmVlQlNEIDQueDogV2hlbiBjb21waWxlZCB3aXRoIHRoZSBwdGhyZWFkIGxpYnJhcnkgKFB5dGhvbikgYQoJICAgIGNvbXBsaWNhdGVkIHBhdHRlcm4gbWF5IGNhdXNlIFZpbSB0byBjcmFzaC4gIENhdGNoaW5nIHRoZSBzaWduYWwKCSAgICBkb2Vzbid0IHdvcmsuClNvbHV0aW9uOiAgIFdoZW4gY29tcGlsZWQgd2l0aCB0aHJlYWRzLCBpbnN0ZWFkIG9mIHVzaW5nIHRoZSBub3JtYWwgc3RhY2tzaXplCgkgICAgbGltaXQsIHVzZSB0aGUgc2l6ZSBvZiB0aGUgaW5pdGlhbCBzdGFjay4KRmlsZXM6CSAgICBzcmMvYXV0by9jb25maWd1cmUsIHNyYy9jb25maWcuaC5pbiwgc3JjL2NvbmZpZ3VyZS5pbiwKCSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjIuNDk3IChleHRyYSkKUHJvYmxlbTogICAgUnVzc2lhbiBtZXNzYWdlcyBhcmUgb25seSBhdmFpbGFibGUgaW4gb25lIGVuY29kaW5nLgpTb2x1dGlvbjogICBDb252ZXJ0IHRoZSBtZXNzYWdlcyB0byBNUy1XaW5kb3dzIGNvZGVwYWdlcy4gKFZhc3NpbHkgUmFnb3NpbikKRmlsZXM6CSAgICBzcmMvcG8vTWFrZWZpbGUKClBhdGNoIDYuMi40OTgKUHJvYmxlbTogICAgTm9uLWxhdGluMSBoZWxwIGZpbGVzIGFyZSBub3QgcHJvcGVybHkgc3VwcG9ydGVkLgpTb2x1dGlvbjogICBTdXBwb3J0IHV0Zi04IGhlbHAgZmlsZXMgYW5kIGNvbnZlcnQgdGhlbSB0byAnZW5jb2RpbmcnIHdoZW4KCSAgICBuZWVkZWQuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjIuNDk5ClByb2JsZW06ICAgIFdoZW4gd3JpdGluZyBhIGZpbGUgYW5kIGhhbHRpbmcgdGhlIHN5c3RlbSwgdGhlIGZpbGUgbWlnaHQgYmUgbG9zdAoJICAgIHdoZW4gdXNpbmcgYSBqb3VybmFsaW5nIGZpbGUgc3lzdGVtLgpTb2x1dGlvbjogICBVc2UgZnN5bmMoKSB0byBmbHVzaCB0aGUgZmlsZSBkYXRhIHRvIGRpc2sgYWZ0ZXIgd3JpdGluZyBhIGZpbGUuCgkgICAgKFJhZGltIEtvbGFyKQpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4yLjUwMCAoZXh0cmEpClByb2JsZW06ICAgIFRoZSBET1MvTVMtV2luZG93cyB0aGUgaW5zdGFsbGVyIGRvZXNuJ3QgdXNlIHRoZSAtLWJpbmFyeSBmbGFnIGZvcgoJICAgIGRpZmYuClNvbHV0aW9uOiAgIEFkZCAtLWJpbmFyeSB0byB0aGUgZGlmZiBhcmd1bWVudCBpbiBNeURpZmYoKS4gKEFsZWphbmRybyBMb3Blei0KCSAgICBWYWxlbmNpYSkKRmlsZXM6CSAgICBzcmMvZG9zaW5zdC5jCgpQYXRjaCA2LjIuNTAxClByb2JsZW06ICAgIFZpbSBkb2VzIG5vdCBjb21waWxlIHdpdGggTW9ycGhPUy4KU29sdXRpb246ICAgQWRkIGEgTWFrZWZpbGUgYW5kIGEgZmV3IGNoYW5nZXMgdG8gbWFrZSBWaW0gd29yayB3aXRoIE1vcnBoT1MuCgkgICAgKEFsaSBBa2NhYWdhYykKRmlsZXM6CSAgICBydW50aW1lL2RvYy9vc19hbWlnYS50eHQsIHNyYy9JTlNUQUxMYW1pLnR4dCwKCSAgICBzcmMvTWFrZV9tb3JwaG9zLm1haywgc3JjL21lbWZpbGUuYywgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4yLjUwMgpQcm9ibGVtOiAgICBCdWlsZGluZyBmYWlscyBmb3IgZ2VuZXJhdGluZyBtZXNzYWdlIGZpbGVzLgpTb2x1dGlvbjogICBBZGQgZHVtbXkgbWVzc2FnZSBmaWxlcy4KRmlsZXM6CSAgICBzcmMvcG8vY2EucG8sIHNyYy9wby9ydS5wbywgc3JjL3BvL3N2LnBvCgpQYXRjaCA2LjIuNTAzClByb2JsZW06ICAgIE1hYzogQ2FuJ3QgY29tcGlsZSBNYWNSb21hbiBjb252ZXJzaW9ucyB3aXRob3V0IHRoZSBHVUkuClNvbHV0aW9uOiAgIEFsc28gbGluayB3aXRoIHRoZSBDYXJib24gZnJhbWV3b3JrIGZvciB0aGUgdGVybWluYWwgdmVyc2lvbiwgZm9yCgkgICAgdGhlIE1hY1JvbWFuIGNvbnZlcnNpb24gZnVuY3Rpb25zLiAoRWNrZWhhcmQgQmVybnMpCgkgICAgUmVtb3ZlIC1sdGVybWNhcCBmcm9tIHRoZSBHVUkgbGluayBjb21tYW5kLCBpdCBpcyBub3QgbmVlZGVkLgpGaWxlczoJICAgIHNyYy9hdXRvL2NvbmZpZ3VyZSwgc3JjL01ha2VmaWxlLCBzcmMvY29uZmlndXJlLmluCgpQYXRjaCA2LjIuNTA0ClByb2JsZW06ICAgIFZhcmlvdXMgcHJvYmxlbXMgd2l0aCAnY2luZGVudCcsIGFtb25nIHdoaWNoIHRoYXQgYQoJICAgIGxpc3Qgb2YgdmFyaWFibGUgZGVjbGFyYXRpb25zIGlzIG5vdCBpbmRlbnRlZCBwcm9wZXJseS4KU29sdXRpb246ICAgRml4IHRoZSB3cm9uZyBpbmRlbnRpbmcuICBJbXByb3ZlIGluZGVudGluZyBvZiBDKysgbWV0aG9kcy4KCSAgICBBZGQgdGhlICdpJywgJ2InIGFuZCAnVycgb3B0aW9ucyB0byAnY2lub3B0aW9ucycuIChtb3N0bHkgYnkKCSAgICBIZWxtdXQgU3RpZWdsZXIpCgkgICAgSW1wcm92ZSBpbmRlbnRpbmcgb2YgcHJlcHJvY2Vzc29yLWNvbnRpbnVhdGlvbiBsaW5lcy4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9pbmRlbnQudHh0LCBzcmMvbWlzYzEuYywgc3JjL3Rlc3RkaXIvdGVzdDMuaW4sCgkgICAgc3JjL3Rlc3RkaXIvdGVzdDMub2sKClBhdGNoIDYuMi41MDUKUHJvYmxlbTogICAgSGVscCBmb3IgLVAgYXJndW1lbnQgaXMgbWlzc2luZy4gKFJvbmFsZCBIb2VsbHdhcnRoKQpTb2x1dGlvbjogICBBZGQgdGhlIHBhdGNoIHRoYXQgd2FzIG1pc3NpbmcgaW4gNi4yLjQxOS4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9zdGFydGluZy50eHQKClBhdGNoIDYuMi41MDYgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiAnZW5jb2RpbmcnIGlzIGEgY29kZXBhZ2UgdGhlbiByZWFkaW5nIGEgdXRmLTggZmlsZQoJICAgIG9ubHkgd29ya3Mgd2hlbiBpY29udiBpcyBhdmFpbGFibGUuICBXcml0aW5nIGEgZmlsZSBpbiBhbm90aGVyCgkgICAgY29kZXBhZ2UgdXNlcyB0aGUgd3Jvbmcga2luZCBvZiBjb252ZXJzaW9uLgpTb2x1dGlvbjogICBVc2UgaW50ZXJuYWwgY29udmVyc2lvbiBmdW5jdGlvbnMuICBFbmFibGUgcmVhZGluZyBhbmQgd3JpdGluZwoJICAgIGZpbGVzIHdpdGggJ2ZpbGVlbmNvZGluZycgZGlmZmVyZW50IGZyb20gJ2VuY29kaW5nJyBmb3IgYWxsIHZhbGlkCgkgICAgY29kZXBhZ2VzIGFuZCB1dGYtOCB3aXRob3V0IHRoZSBuZWVkIGZvciBpY29udi4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMsIHNyYy90ZXN0ZGlyL01ha2VfZG9zLm1haywgc3JjL3Rlc3RkaXIvdGVzdDUyLmluLAoJICAgIHNyYy90ZXN0ZGlyL3Rlc3Q1Mi5vawoKUGF0Y2ggNi4yLjUwNwpQcm9ibGVtOiAgICBUaGUgb3duZXJzaGlwIG9mIHRoZSBmaWxlIHdpdGggdGhlIHBhc3N3b3JkIGZvciB0aGUgTmV0QmVhbnMKCSAgICBjb25uZWN0aW9uIGlzIG5vdCBjaGVja2VkLiAgIi1uYj17ZmlsZX0iIGRvZXNuJ3Qgd29yayBmb3IgR1RLLgpTb2x1dGlvbjogICBPbmx5IGFjY2VwdCB0aGUgZmlsZSB3aGVuIG93bmVkIGJ5IHRoZSB1c2VyIGFuZCBub3QgYWNjZXNzaWJsZSBieQoJICAgIG90aGVycy4gIERldGVjdCAiLW5iPSIgZm9yIEdUSy4KRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYywgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMi41MDgKUHJvYmxlbTogICAgV2luMzI6ICJ2OmxhbmciIGRvZXMgbm90IHNob3cgdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgZm9yIG1lc3NhZ2VzIGlmCgkgICAgaXQgZGlmZmVycyBmcm9tIHRoZSBvdGhlciBsb2NhbGUgc2V0dGluZ3MuClNvbHV0aW9uOiAgIFVzZSB0aGUgdmFsdWUgb2YgdGhlICRMQ19NRVNTQUdFUyBlbnZpcm9ubWVudCB2YXJpYWJsZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4yLjUwOSAoYWZ0ZXIgNi4yLjUwOCkKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiAkTEFORyBpcyBub3Qgc2V0LgpTb2x1dGlvbjogICBBZGQgY2hlY2sgZm9yIE5VTEwgcG9pbnRlci4gKFJvbiBBYXJvbikKRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4yLjUxMCAoYWZ0ZXIgNi4yLjUwNykKUHJvYmxlbTogICAgV2FybmluZyBmb3IgcG9pbnRlciBjb252ZXJzaW9uLgpTb2x1dGlvbjogICBBZGQgYSB0eXBlIGNhc3QuCkZpbGVzOgkgICAgc3JjL2d1aV9ndGtfeDExLmMKClBhdGNoIDYuMi41MTEKUHJvYmxlbTogICAgVGFncyBpbiBSdXNzaWFuIGhlbHAgZmlsZXMgYXJlIGluIHV0Zi04IGVuY29kaW5nLCB3aGljaCBtYXkgYmUKCSAgICBkaWZmZXJlbnQgZnJvbSAnZW5jb2RpbmcnLgpTb2x1dGlvbjogICBVc2UgdGhlICJUQUdfRklMRV9FTkNPRElORyIgZmllbGQgaW4gdGhlIHRhZ3MgZmlsZSB0byBzcGVjaWZ5IHRoZQoJICAgIGVuY29kaW5nIG9mIHRoZSB0YWdzLiAgQ29udmVydCBoZWxwIHRhZ3MgZnJvbSAnZW5jb2RpbmcnIHRvIHRoZQoJICAgIHRhZyBmaWxlIGVuY29kaW5nIHdoZW4gc2VhcmNoaW5nIGZvciBtYXRjaGVzLCBkbyB0aGUgcmV2ZXJzZSB3aGVuCgkgICAgbGlzdGluZyBoZWxwIHRhZ3MuCkZpbGVzOgkgICAgcnVudGltZS9kb2MvdGFnc3JjaC50eHQsIHNyYy9leF9jbWRzLmMsIHNyYy90YWcuYwoKUGF0Y2ggNi4yLjUxMgpQcm9ibGVtOiAgICBUcmFuc2xhdGluZyAiXCJcbiIgaXMgdXNlbGVzcy4gKEdlcmZyaWVkIEZ1Y2hzKQpTb2x1dGlvbjogICBSZW1vdmUgdGhlIF8oKSBhcm91bmQgaXQuCkZpbGVzOgkgICAgc3JjL21haW4uYywgc3JjL21lbWxpbmUuYwoKUGF0Y2ggNi4yLjUxMyAoYWZ0ZXIgNi4yLjUwNykKUHJvYmxlbTogICAgTmV0QmVhbnM6IHRoZSBjaGVjayBmb3Igb3duaW5nIHRoZSBjb25uZWN0aW9uIGluZm8gZmlsZSBjYW4gYmUKCSAgICBzaW1wbGlmaWVkLiAoTmlrb2xheSBNb2xjaGFub3YpClNvbHV0aW9uOiAgIE9ubHkgY2hlY2sgaWYgdGhlIGFjY2VzcyBtb2RlIGlzIHJpZ2h0LgpGaWxlczoJICAgIHNyYy9uZXRiZWFucy5jCgpQYXRjaCA2LjIuNTE0ClByb2JsZW06ICAgIFdoZW4gYSBoaWdobGlnaHQvc3ludGF4IGdyb3VwIG5hbWUgY29udGFpbnMgaW52YWxpZCBjaGFyYWN0ZXJzCgkgICAgdGhlcmUgaXMgbm8gd2FybmluZy4KU29sdXRpb246ICAgQWRkIGFuIGVycm9yIGZvciB1bnByaW50YWJsZSBjaGFyYWN0ZXJzIGFuZCBhIHdhcm5pbmcgZm9yIG90aGVyCgkgICAgaW52YWxpZCBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4yLjUxNQpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHRoZSBvcHRpb25zIHdpbmRvdyAnc3dhcGZpbGUnIGlzIHJlc2V0LgpTb2x1dGlvbjogICBVc2UgIjpzZXRsb2NhbCIgaW5zdGVhZCBvZiAiOnNldCIuCkZpbGVzOgkgICAgcnVudGltZS9vcHR3aW4udmltCgpQYXRjaCA2LjIuNTE2ClByb2JsZW06ICAgIFRoZSBzaWduIGNvbHVtbiBjYW5ub3QgYmUgc2VlbiwgbG9va3MgbGlrZSB0aGVyZSBhcmUgdHdvIHNwYWNlcwoJICAgIGJlZm9yZSB0aGUgdGV4dC4gKFJvYiBSZXR0ZXIpClNvbHV0aW9uOiAgIEFkZCB0aGUgU2lnbkNvbHVtbiBoaWdobGlnaHQgZ3JvdXAuCkZpbGVzOgkgICAgcnVudGltZS9kb2Mvb3B0aW9ucy50eHQsIHJ1bnRpbWUvZG9jL3NpZ24udHh0LCBzcmMvb3B0aW9uLmMsCgkgICAgc3JjL3NjcmVlbi5jLCBzcmMvc3ludGF4LmMsIHNyYy92aW0uaAoKUGF0Y2ggNi4yLjUxNwpQcm9ibGVtOiAgICBVc2luZyAicioiIGluIFZpc3VhbCBtb2RlIG9uIG11bHRpLWJ5dGUgY2hhcmFjdGVycyByZXBsYWNlcwoJICAgIHRvbyBtYW55IGNoYXJhY3RlcnMuICBJbiBWaXN1YWwgQmxvY2sgbW9kZSByZXBsYWNpbmcgd2l0aCBhCgkgICAgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBBZGp1c3QgdGhlIG9wZXJhdG9yIGVuZCBmb3IgdGhlIGRpZmZlcmVuY2UgaW4gYnl0ZSBsZW5ndGggb2YgdGhlCgkgICAgb3JpZ2luYWwgYW5kIHRoZSByZXBsYWNlZCBjaGFyYWN0ZXIuICBJbnNlcnQgYWxsIGJ5dGVzIG9mIGEKCSAgICBtdWx0aS1ieXRlIGNoYXJhY3RlciwgdGFrZSBjYXJlIG9mIGRvdWJsZS13aWRlIGNoYXJhY3RlcnMuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjIuNTE4ClByb2JsZW06ICAgIExhc3QgbGluZSBvZiBhIHdpbmRvdyBpcyBub3QgdXBkYXRlZCBhZnRlciB1c2luZyAiSiIgYW5kIHRoZW4gIkQiLgoJICAgIChBZHJpIFZlcmhvZWYpClNvbHV0aW9uOiAgIFdoZW4gbm8gbGluZSBpcyBmb3VuZCBiZWxvdyBhIGNoYW5nZSB0aGF0IGRvZXNuJ3QgbmVlZCB1cGRhdGluZywKCSAgICB1cGRhdGUgYWxsIGxpbmVzIGJlbG93IHRoZSBjaGFuZ2UuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjIuNTE5ClByb2JsZW06ICAgIE1hYzogY2Fubm90IHJlYWQvd3JpdGUgZmlsZXMgaW4gTWFjUm9tYW4gZm9ybWF0LgpTb2x1dGlvbjogICBEbyBpbnRlcm5hbCBjb252ZXJzaW9uIGZyb20vdG8gTWFjUm9tYW4gdG8vZnJvbSB1dGYtOCBhbmQgbGF0aW4xLgoJICAgIChFY2tlaGFyZCBCZXJucykKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMi41MjAgKGV4dHJhKQpQcm9ibGVtOiAgICBUaGUgTlNJUyBpbnN0YWxsZXIgaXMgb3V0ZGF0ZWQuClNvbHV0aW9uOiAgIE1ha2UgaXQgd29yayB3aXRoIE5TSVMgMi4wLiAgQWxzbyBpbmNsdWRlIGNvbnNvbGUgZXhlY3V0YWJsZXMgZm9yCgkgICAgV2luIDk1Lzk4L01FIGFuZCBXaW4gTlQvMjAwMC9YUC4gIFVzZSBMWldBIGNvbXByZXNzaW9uLiAgVXNlCgkgICAgIi9vbmFtZSIgdG8gYXZvaWQgaGF2aW5nIHRvIHJlbmFtZSBmaWxlcyBiZWZvcmUgcnVubmluZyBOU0lTLgpGaWxlczoJICAgIE1ha2VmaWxlLCBuc2lzL2d2aW0ubnNpCgpQYXRjaCA2LjIuNTIxClByb2JsZW06ICAgIFdoZW4gdXNpbmcgc2lsZW50IEV4IG1vZGUgdGhlICJjaGFuZ2luZyBhIHJlYWRvbmx5IGZpbGUiIHdhcm5pbmcKCSAgICBpcyBvbWl0dGVkIGJ1dCB0aGUgb25lIHNlY29uZCB3YWl0IGlzbid0LiAoWWFrb3YgTGVybmVyKQpTb2x1dGlvbjogICBTa2lwIHRoZSBkZWxheSB3aGVuICJzaWxlbnRfbW9kZSIgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjIuNTIyClByb2JsZW06ICAgIEdVSTogd2hlbiBjaGFuZ2luZyAnY21kaGVpZ2h0JyBpbiB0aGUgZ3ZpbXJjIGZpbGUgdGhlIHdpbmRvdwoJICAgIGxheW91dCBpcyBtZXNzZWQgdXAuIChLZWl0aCBEYXJ0KQpTb2x1dGlvbjogICBTa2lwIHVwZGF0aW5nIHRoZSB3aW5kb3cgbGF5b3V0IHdoZW4gY2hhbmdpbmcgJ2NtZGhlaWdodCcgd2hpbGUKCSAgICBzdGlsbCBzdGFydGluZyB1cC4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMi41MjMKUHJvYmxlbTogICAgV2hlbiBsb2FkaW5nIGEgc2Vzc2lvbiBhbmQgYWJvcnRpbmcgd2hlbiBhIHN3YXAgZmlsZSBhbHJlYWR5CgkgICAgZXhpc3RzLCB0aGUgdXNlciBpcyBsZWZ0IHdpdGggdXNlbGVzcyB3aW5kb3dzLiAoUm9iZXJ0IFdlYmIpClNvbHV0aW9uOiAgIExvYWQgb25lIGZpbGUgYmVmb3JlIGNyZWF0aW5nIHRoZSB3aW5kb3dzLgpGaWxlczoJICAgIHNyYy9leF9kb2NtZC5jCgpQYXRjaCA2LjIuNTI0IChleHRyYSwgYWZ0ZXIgNi4yLjUyMCkKUHJvYmxlbTogICAgV2luMzI6ICh1bilpbnN0YWxsaW5nIGd2aW1leHQuZGxsIG1heSBmYWlsIGlmIGl0IHdhcyB1c2VkLgoJICAgIFRoZSBkZXNrdG9wIGFuZCBzdGFydCBtZW51IGxpbmtzIGFyZSBjcmVhdGVkIGZvciB0aGUgY3VycmVudCB1c2VyCgkgICAgaW5zdGVhZCBvZiBhbGwgdXNlcnMuCgkgICAgVXNpbmcgdGhlIGhvbWUgZGlyZWN0b3J5IGFzIHdvcmtpbmcgZGlyZWN0b3J5IGZvciB0aGUgbGlua3MgaXMgYQoJICAgIGJhZCBpZGVhIGZvciBtdWx0aS11c2VyIHN5c3RlbXMuCgkgICAgQ2Fubm90IHVzZSBWaW0gZnJvbSB0aGUgIk9wZW4gV2l0aC4uLiIgbWVudS4KU29sdXRpb246ICAgRm9yY2UgYSByZWJvb3QgaWYgbmVjZXNzYXJ5LiAoQWxlamFuZHJvIExvcGV6LVZhbGVuY2lhKSAgQWxzbyB1c2UKCSAgICBtYWNyb3MgZm9yIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIHNvdXJjZSBhbmQgcnVudGltZSBmaWxlcy4gIFVzZQoJICAgICJDU0lETF9DT01NT05fKiIgaW5zdGVhZCBvZiAiQ1NJRExfKiIgd2hlbiBwb3NzaWJsZS4KCSAgICBEbyBub3Qgc3BlY2lmeSBhIHdvcmtpbmcgZGlyZWN0b3J5IGluIHRoZSBsaW5rcy4KCSAgICBBZGQgVmltIHRvIHRoZSAiT3BlbiBXaXRoLi4uIiBtZW51LiAoR2l1c2VwcGUgQmlsb3R0YSkKRmlsZXM6CSAgICBuc2lzL2d2aW0ubnNpLCBzcmMvZG9zaW5zdC5jLCBzcmMvZG9zaW5zdC5oLCBzcmMvdW5pbnN0YWwuYwoKUGF0Y2ggNi4yLjUyNQpQcm9ibGVtOiAgICBXaGVuIHRoZSBoaXN0b3J5IGNvbnRhaW5zIGEgdmVyeSBsb25nIGxpbmUgIjpoaXN0b3J5IiBjYXVzZXMgYQoJICAgIGNyYXNoLiAoVm9sa2VyIEtpZWZlbCkKU29sdXRpb246ICAgU2hvcnRlbiB0aGUgaGlzdG9yeSBlbnRyeSB0byBmaXQgaXQgaW4gb25lIGxpbmUuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMi41MjYKUHJvYmxlbTogICAgV2hlbiBzOmxhbmcgaXMgImphIiB0aGUgSmFwYW5lc2UgbWVudXMgYXJlIG5vdCB1c2VkLgpTb2x1dGlvbjogICBBZGQgJ2VuY29kaW5nJyB0byB0aGUgbGFuZ3VhZ2Ugd2hlbiB0aGVyZSBpcyBubyBjaGFyc2V0LgpGaWxlczoJICAgIHJ1bnRpbWUvbWVudS52aW0KClBhdGNoIDYuMi41MjcKUHJvYmxlbTogICAgVGhlIDJodG1sIHNjcmlwdCB1c2VzICI6d2luY21kIHAiLCB3aGljaCBicmVha3Mgd2hlbiB1c2luZyBzb21lCgkgICAgYXV0b2NvbW1hbmRzLgpTb2x1dGlvbjogICBSZW1lbWJlciB0aGUgd2luZG93IG51bWJlcnMgYW5kIGp1bXAgdG8gdGhlbSB3aXRoICI6d2luY21kIHciLgoJICAgIEFsc28gYWRkIFhIVE1MIHN1cHBvcnQuIChQYW5hZ2lvdGlzIElzc2FyaXMpCkZpbGVzOgkgICAgcnVudGltZS9zeW50YXgvMmh0bWwudmltCgpQYXRjaCA2LjIuNTI4ClByb2JsZW06ICAgIE5ldEJlYW5zOiBDaGFuZ2VzIG9mIHRoZSAifiIgY29tbWFuZCBhcmUgbm90IHJlcG9ydGVkLgpTb2x1dGlvbjogICBDYWxsIG5ldGJlYW5zX2luc2VydGVkKCkgYWZ0ZXIgcGVyZm9ybWluZyAifiIuIChHb3Jkb24gUHJpZXVyKQoJICAgIEFsc28gY2hhbmdlIE5ldEJlYW5zIGRlYnVnZ2luZyB0byBhcHBlbmQgdG8gdGhlIGxvZyBmaWxlLgoJICAgIEFsc28gZml4IHRoYXQgIn4iIGluIFZpc3VhbCBibG9jayBtb2RlIGNoYW5nZXMgdG9vIG11Y2ggaWYgdGhlcmUKCSAgICBhcmUgbXVsdGktYnl0ZSBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9uYmRlYnVnLmMsIHNyYy9ub3JtYWwuYywgc3JjL29wcy5jCgpQYXRjaCA2LjIuNTI5IChleHRyYSkKUHJvYmxlbTogICAgVmlzVmltIG9ubHkgd29ya3MgZm9yIEFkbWluLiAgRG9pbmcgaXQgZm9yIG9uZSB1c2VyIGRvZXNuJ3Qgd29yay4KCSAgICAoQWxleGFuZHJlIEdvdXJhdWQpClNvbHV0aW9uOiAgIFdoZW4gcmVnaXN0ZXJpbmcgdGhlIG1vZHVsZSBmYWlscywgc2ltcGx5IGNvbnRpbnVlLgpGaWxlczoJICAgIHNyYy9WaXNWaW0vVmlzVmltLmNwcAoKUGF0Y2ggNi4yLjUzMApQcm9ibGVtOiAgICBXYXJuaW5nIGZvciBtaXNzaW5nIHByb3RvdHlwZSBvbiB0aGUgQW1pZ2EuClNvbHV0aW9uOiAgIEluY2x1ZGUgdGltZS5oCkZpbGVzOgkgICAgc3JjL3ZlcnNpb24uYwoKUGF0Y2ggNi4yLjUzMQpQcm9ibGVtOiAgICBJbiBzaWxlbnQgZXggbW9kZSBubyBtZXNzYWdlcyBhcmUgZ2l2ZW4sIHdoaWNoIG1ha2VzIGRlYnVnZ2luZwoJICAgIHZlcnkgZGlmZmljdWx0LgpTb2x1dGlvbjogICBEbyBvdXRwdXQgbWVzc2FnZXMgd2hlbiAndmVyYm9zZScgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMsIHNyYy91aS5jCgpQYXRjaCA2LjIuNTMyIChleHRyYSkKUHJvYmxlbTogICAgQ29tcGlsaW5nIGZvciBXaW4zMnMgd2l0aCBWQyA0LjEgZG9lc24ndCB3b3JrLgpTb2x1dGlvbjogICBEb24ndCB1c2UgQ1BfVVRGOCBpZiBpdCdzIG5vdCBkZWZpbmVkLiAgRG9uJ3QgdXNlIENTSURMX0NPTU1PTioKCSAgICB3aGVuIG5vdCBkZWZpbmVkLgpGaWxlczoJICAgIHNyYy9kb3NpbnN0LmgsIHNyYy9maWxlaW8uYwoKV2luMzIgY29uc29sZTogQWZ0ZXIgcGF0Y2ggNi4yLjM5OCBFeCBtb2RlIGRpZCBub3Qgd29yay4gKFlhc3VoaXJvIE1hdHN1bW90bykKClBhdGNoIDYuM2EuMDAxClByb2JsZW06ICAgIFdpbjMyOiBpZiB0ZXN0aW5nIGZvciB0aGUgIi0tYmluYXJ5IiBvcHRpb24gZmFpbHMsIGRpZmYgaXNuJ3QgdXNlZAoJICAgIGF0IGFsbC4KU29sdXRpb246ICAgSGFuZGxlIHRoZSAib2siIGZsYWcgcHJvcGVybHkuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2RpZmYuYwoKUGF0Y2ggNi4zYS4wMDIKUHJvYmxlbTogICAgTmV0QmVhbnM6IEFuIGluc2VydCBjb21tYW5kIGZyb20gTmV0QmVhbnMgYmV5b25kIHRoZSBlbmQgb2YgYQoJICAgIGJ1ZmZlciBjcmFzaGVzIFZpbS4gKFhhdmllciBkZSBHYXllKQpTb2x1dGlvbjogICBVc2UgYSBsb2NhbCBwb3NfVCBzdHJ1Y3R1cmUgZm9yIHRoZSBwb3NpdGlvbi4KRmlsZXM6CSAgICBzcmMvbmV0YmVhbnMuYwoKUGF0Y2ggNi4zYS4wMDMKUHJvYmxlbTogICAgRTMxNSBlcnJvciB3aXRoIGF1dG8tZm9ybWF0dGluZyBjb21tZW50cy4gKEhlbnJ5IFZhbiBSb2Vzc2VsKQpTb2x1dGlvbjogICBQYXNzIHRoZSBsaW5lIG51bWJlciB0byBzYW1lX2xlYWRlcigpLgpGaWxlczoJICAgIHNyYy9vcHMuYwoKUGF0Y2ggNi4zYS4wMDQKUHJvYmxlbTogICAgVGVzdDMyIGZhaWxzIG9uIFdpbmRvd3MgWFAgZm9yIHRoZSBESkdQUCB2ZXJzaW9uLiAgUmVuYW1pbmcKCSAgICB0ZXN0MTEub3V0IGZhaWxzLgpTb2x1dGlvbjogICBEb24ndCB0cnkgcmVuYW1pbmcsIGNyZWF0ZSBuZXcgZmlsZXMgdG8gdXNlIGZvciB0aGUgdGVzdC4KRmlsZXM6CSAgICBzcmMvdGVzdGRpci90ZXN0MzIuaW4sIHNyYy90ZXN0ZGlyL3Rlc3QzMi5vawoKUGF0Y2ggNi4zYS4wMDUKUHJvYmxlbTogICAgIjpjaGVja3BhdGghIiBkb2VzIG5vdCB1c2UgJ2luY2x1ZGVleHByJy4KU29sdXRpb246ICAgVXNlIGEgZmlsZSBuYW1lIHRoYXQgd2FzIGZvdW5kIGRpcmVjdGx5LiAgV2hlbiBhIGZpbGUgd2FzIG5vdAoJICAgIGZvdW5kIGFuZCB0aGUgbG9jYXRlZCBuYW1lIGlzIGVtcHR5LCB1c2UgdGhlIHJlc3Qgb2YgdGhlIGxpbmUuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjNhLjAwNgpQcm9ibGVtOiAgICAieWlwIiBtb3ZlcyB0aGUgY3Vyc29yIHRvIHRoZSBmaXJzdCB5YW5rZWQgbGluZSwgYnV0IG5vdCB0byB0aGUKCSAgICBmaXJzdCBjb2x1bW4uICBMb29rcyBsaWtlIG5vdCBhbGwgdGV4dCB3YXMgeWFua2VkLiAoSmVucyBQYXVsdXMpClNvbHV0aW9uOiAgIE1vdmUgdGhlIGN1cnNvciB0byB0aGUgZmlyc3QgY29sdW1uLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4zYS4wMDcKUHJvYmxlbTogICAgJ2NpbmRlbnQnIHJlY29nbml6ZXMgImVudW0iIGJ1dCBub3QgInR5cGVkZWYgZW51bSIuClNvbHV0aW9uOiAgIFNraXAgb3ZlciAidHlwZWRlZiIgYmVmb3JlIGNoZWNraW5nIGZvciAiZW51bSIuIChIZWxtdXQgU3RpZWdsZXIpCgkgICAgQWxzbyBhdm9pZCB0aGF0IHNlYXJjaGluZyBmb3IgdGhpcyBpdGVtIGdvZXMgdG9vIGZhciBiYWNrLgpGaWxlczoJICAgIHNyYy9taXNjMS5jLCBzcmMvdGVzdGRpci90ZXN0My5pbiwgc3JjL3Rlc3RkaXIvdGVzdDMub2sKClBhdGNoIDYuM2EuMDA4IChleHRyYSkKUHJvYmxlbTogICAgV2luZG93cyA5ODogU29tZSBvZiB0aGUgd2lkZSBmdW5jdGlvbnMgYXJlIG5vdCBpbXBsZW1lbnRlZCwKCSAgICByZXN1bHRpbmcgaW4gZmlsZSBJL08gdG8gZmFpbC4gIFRoaXMgZGVwZW5kcyBvbiB3aGF0IFVuaWNvZGUKCSAgICBzdXBwb3J0IGlzIGluc3RhbGxlZC4KU29sdXRpb246ICAgSGFuZGxlIHRoZSBmYWlsdXJlIGFuZCBmYWxsIGJhY2sgdG8gbm9uLXdpZGUgZnVuY3Rpb25zLgpGaWxlczoJICAgIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjNhLjAwOQpQcm9ibGVtOiAgICBXaW4zMjogQ29tcGxldGlvbiBvZiBmaWxlbmFtZXMgZG9lcyBub3Qgd29yayBwcm9wZXJseSB3aGVuCgkgICAgJ2VuY29kaW5nJyBkaWZmZXJzIGZyb20gdGhlIGFjdGl2ZSBjb2RlIHBhZ2UuClNvbHV0aW9uOiAgIFVzZSB3aWRlIGZ1bmN0aW9ucyBmb3IgZXhwYW5kaW5nIHdpbGRjYXJkcyB3aGVuIGFwcHJvcHJpYXRlLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjNhLjAxMCAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBDaGFyYWN0ZXJzIGluIHRoZSB3aW5kb3cgdGl0bGUgdGhhdCBkbyBub3QgYXBwZWFyIGluIHRoZQoJICAgIGFjdGl2ZSBjb2RlcGFnZSBhcmUgcmVwbGFjZWQgYnkgYSBxdWVzdGlvbiBtYXJrLgpTb2x1dGlvbjogICBVc2UgRGVmV2luZG93UHJvY1coKSBpbnN0ZWFkIG9mIERlZldpbmRvd1Byb2MoKSB3aGVuIHBvc3NpYmxlLgpGaWxlczoJICAgIHNyYy9nbGJsX2ltZS5jcHAsIHNyYy9nbG9iYWxzLmgsIHNyYy9wcm90by9ndWlfdzE2LnBybywKCSAgICBzcmMvcHJvdG8vZ3VpX3czMi5wcm8sIHNyYy9ndWlfdzE2LmMsIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuM2EuMDExClByb2JsZW06ICAgIFVzaW5nIHRoZSBleHBsb3JlciBwbHVnaW4gY2hhbmdlcyBhIGxvY2FsIGRpcmVjdG9yeSB0byB0aGUgZ2xvYmFsCgkgICAgZGlyZWN0b3J5LgpTb2x1dGlvbjogICBEb24ndCB1c2UgIjpjaGRpciIgdG8gcmVzdG9yZSB0aGUgY3VycmVudCBkaXJlY3RvcnkuICBNYWtlCgkgICAgImV4cGFuZCgnJTpwJykiIHJlbW92ZSAiLy4uLyIgYW5kICIvLi8iIGl0ZW1zIGZyb20gdGhlIHBhdGguCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZXhwbG9yZXIudmltLCBzcmMvZXZhbC5jLCBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjNhLjAxMiAoZXh0cmEpClByb2JsZW06ICAgIE9uIFdpbmRvd3MgOTggdGhlIGluc3RhbGxlciBkb2Vzbid0IHdvcmssIGRvbid0IGV2ZW4gZ2V0IHRoZSAiSQoJICAgIGFncmVlIiBidXR0b24uICBUaGUgY2hlY2sgZm9yIHRoZSBwYXRoIGVuZGluZyBpbiAidmltIiBtYWtlcyB0aGUKCSAgICBicm93c2UgZGlhbG9nIGhhcmQgdG8gdXNlLiAgVGhlIGRlZmF1bHQgcGF0aCB3aGVuIG5vIHByZXZpb3VzIFZpbQoJICAgIGlzIGluc3RhbGxlZCBpcyAiYzpcdmltIiBpbnN0ZWFkIG9mICJjOlxQcm9ncmFtIEZpbGVzXFZpbSIuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgYmFja2dyb3VuZCBncmFkaWVudCBjb21tYW5kLiAgQ2hhbmdlIHRoZQoJICAgIC5vblZlcmlmeUluc3REaXIgZnVuY3Rpb24gdG8gYSBsZWF2ZSBmdW5jdGlvbiBmb3IgdGhlIGRpcmVjdG9yeQoJICAgIHBhZ2UuICBEb24ndCBsZXQgdGhlIGluc3RhbGwgcHJvZ3JhbSBkZWZhdWx0IHRvIGM6XHZpbSB3aGVuIG5vCgkgICAgcGF0aCBjb3VsZCBiZSBmb3VuZC4KRmlsZXM6CSAgICBuc2lzL2d2aW0ubnNpLCBzcmMvZG9zaW5zdC5jCgpQYXRjaCA2LjNhLjAxMyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBDaGFyYWN0ZXJzIGluIHRoZSBtZW51IHRoYXQgYXJlIG5vdCBpbiB0aGUgYWN0aXZlIGNvZGVwYWdlCgkgICAgYXJlIGdhcmJsZWQuClNvbHV0aW9uOiAgIENvbnZlcnQgbWVudSBzdHJpbmdzIGZyb20gJ2VuY29kaW5nJyB0byB0aGUgYWN0aXZlIGNvZGVwYWdlLgpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMsIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuM2EuMDE0ClByb2JsZW06ICAgIFVzaW5nIG11bHRpLWJ5dGUgdGV4dCBhbmQgaGlnaGxpZ2h0aW5nIGluIGEgc3RhdHVzbGluZSBjYXVzZXMgZ2FwcwoJICAgIHRvIGFwcGVhci4gKEhlbG11dCBTdGllZ2xlcikKU29sdXRpb246ICAgQWR2YW5jZSB0aGUgY29sdW1uIGJ5IHRleHQgd2lkdGggaW5zdGVhZCBvZiBudW1iZXIgb2YgYnl0ZXMuICBBZGQKCSAgICB0aGUgdmltX3N0cm5zaXplKCkgZnVuY3Rpb24uCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYywgc3JjL3Byb3RvL2NoYXJzZXQucHJvLCBzcmMvc2NyZWVuLmMKClBhdGNoIDYuM2EuMDE1ClByb2JsZW06ICAgIFVzaW5nIHRoZSAic2VsZWN0IGFsbCIgbWVudSBpdGVtIHdoZW4gJ2luc2VydG1vZGUnIGlzIHNldCBhbmQKCSAgICBjbGlja2luZyB0aGUgbW91c2UgYnV0dG9uIGRvZXNuJ3QgcmV0dXJuIHRvIEluc2VydCBtb2RlLiAgVGhlCgkgICAgQnVmZmVycy9EZWxldGUgbWVudSBkb2Vzbid0IG9mZmVyIGEgY2hvaWNlIHRvIGFiYW5kb24gYSBjaGFuZ2VkCgkgICAgYnVmZmVyLiAgKEplbnMgUGF1bHVzKQpTb2x1dGlvbjogICBEb24ndCB1c2UgQ1RSTC1cIENUUkwtTi4gIEFkZCAiOmNvbmZpcm0iIGZvciB0aGUgQnVmZmVycyBtZW51CgkgICAgaXRlbXMuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbQoKUGF0Y2ggNi4zYS4wMTYKUHJvYmxlbTogICAgQWZ0ZXIgY2FuY2VsbGluZyB0aGUgIjpjb25maXJtIiBkaWFsb2cgdGhlIGVycm9yIG1lc3NhZ2UgYW5kCgkgICAgaGl0LWVudGVyIHByb21wdCBtYXkgbm90IGJlIGRpc3BsYXllZCBwcm9wZXJseS4KU29sdXRpb246ICAgRmx1c2ggb3V0cHV0IGFmdGVyIHNob3dpbmcgdGhlIGRpYWxvZy4KRmlsZXM6CSAgICBzcmMvbWVzc2FnZS5jCgpQYXRjaCA2LjNhLjAxNwpQcm9ibGVtOiAgICBzZXJ2ZXJuYW1lKCkgZG9lc24ndCB3b3JrIHdoZW4gVmltIHdhcyBzdGFydGVkIHdpdGggdGhlICItWCIKCSAgICBhcmd1bWVudCBvciB3aGVuIHRoZSAiZXhjbHVkZSIgaW4gJ2NsaXBib2FyZCcgbWF0Y2hlcyB0aGUgdGVybWluYWwKCSAgICBuYW1lLiAgKFJvYmVydCBOb3dvdG5pYWspClNvbHV0aW9uOiAgIEZvcmNlIGNvbm5lY3RpbmcgdG8gdGhlIFggc2VydmVyIHdoZW4gdXNpbmcgY2xpZW50LXNlcnZlcgoJICAgIGNvbW1hbmRzLgpGaWxlczoJICAgIHNyYy9ldmFsLmMsIHNyYy9nbG9iYWxzLmgsIHNyYy9vc191bml4LmMKClBhdGNoIDYuM2EuMDE4IChhZnRlciA2LjNhLjAxNykKUHJvYmxlbTogICAgQ29tcGlsZXIgd2FybmluZyBmb3IgcmV0dXJuIHZhbHVlIG9mIG1ha2VfY29ubmVjdGlvbigpLgpTb2x1dGlvbjogICBVc2Ugdm9pZCByZXR1cm4gdHlwZS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjNhLjAxOSAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiB0eXBpbmcgbm9uLWxhdGluMSBjaGFyYWN0ZXJzIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgSW52b2tlIF9PbkNoYXIoKSBkaXJlY3RseSB0byBhdm9pZCB0aGF0IHRoZSBhcmd1bWVudCBpcyB0cnVuY2F0ZWQKCSAgICB0byBhIGJ5dGUuICBDb252ZXJ0IHRoZSBVVEYtMTYgY2hhcmFjdGVyIHRvIGJ5dGVzIGFjY29yZGluZyB0bwoJICAgICdlbmNvZGluZycgYW5kIGlnbm9yZSAndGVybWVuY29kaW5nJy4gIFNhbWUgZm9yIF9PblN5c0NoYXIoKS4KRmlsZXM6CSAgICBzcmMvZ3VpX3czMi5jLCBzcmMvZ3VpX3c0OC5jCgpQYXRjaCA2LjNhLjAyMCAoZXh0cmEpClByb2JsZW06ICAgIE1pc3Npbmcgc3VwcG9ydCBmb3IgQVJPUyAoQW1pZ2FPUyByZWltcGxlbWVudGF0aW9uKS4gIEFtaWdhIEdVSQoJICAgIGRvZXNuJ3Qgd29yay4KU29sdXRpb246ICAgQWRkIEFST1Mgc3VwcG9ydC4gIChBZGFtIENob2Rvcm93c2tpKQoJICAgIEZpeCBBbWlnYSBHVUkgcHJvYmxlbXMuIChHZW9yZyBTdGVnZXIsIEFsaSBBa2NhYWdhYykKRmlsZXM6CSAgICBNYWtlZmlsZSwgc3JjL01ha2VfYXJvcy5tYWssIHNyYy9ndWlfYW1pZ2EuYywgc3JjL2d1aV9hbWlnYS5oLAoJICAgIHNyYy9tZW1maWxlLmMsIHNyYy9vc19hbWlnYS5jLCBzcmMvdGVybS5jCgpQYXRjaCA2LjNhLjAyMSAoYWZ0ZXIgNi4zYS4wMTcpClByb2JsZW06ICAgIENhbid0IGNvbXBpbGUgd2l0aCBYMTEgYnV0IHdpdGhvdXQgR1VJLgpTb2x1dGlvbjogICBQdXQgdXNlIG9mICJndWkuaW5fdXNlIiBpbnNpZGUgYW4gI2lmZGVmLgpGaWxlczoJICAgIHNyYy9ldmFsLmMKClBhdGNoIDYuM2EuMDIyClByb2JsZW06ICAgIFdoZW4gdHlwaW5nIFRhYnMgd2hlbiAnc29mdHRhYnN0b3AnIGlzIHVzZWQgYW5kICdsaXN0JyBpcyBzZXQgYQoJICAgIHRhYiBpcyBjb3VudGVkIGZvciB0d28gc3BhY2VzLgpTb2x1dGlvbjogICBVc2UgdGhlICJMIiBmbGFnIGluICdjcG9wdGlvbnMnIHRvIHRlbGwgd2hldGhlciBhIHRhYiBpcyBjb3VudGVkCgkgICAgYXMgdHdvIHNwYWNlcyBvciBhcyAndGFic3RvcCcuIChBbnRvbnkgU2NyaXZlbikKRmlsZXM6CSAgICBydW50aW1lL2RvYy9vcHRpb25zLnR4dCwgc3JjL2VkaXQuYwoKUGF0Y2ggNi4zYS4wMjMKUHJvYmxlbTogICAgQ29tcGxldGlvbiBvbiB0aGUgY29tbWFuZCBsaW5lIGRvZXNuJ3QgaGFuZGxlIGJhY2tzbGFzaGVzCgkgICAgcHJvcGVybHkuICBPbmx5IHRoZSB0YWlsIG9mIG1hdGNoZXMgaXMgc2hvd24sIGV2ZW4gd2hlbiBub3QKCSAgICBjb21wbGV0aW5nIGZpbGVuYW1lcy4KU29sdXRpb246ICAgV2hlbiB0dXJuaW5nIHRoZSBzdHJpbmcgaW50byBhIHBhdHRlcm4gZG91YmxlIGJhY2tzbGFzaGVzLiAgRG9uJ3QKCSAgICBvbWl0IHRoZSBwYXRoIHdoZW4gbm90IGV4cGFuZGluZyBmaWxlcyBvciBkaXJlY3Rvcmllcy4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4zYS4wMjQKUHJvYmxlbTogICAgVGhlICJzYXZlIGFsbCIgdG9vbGJhciBpdGVtIGZhaWxzIGZvciBidWZmZXJzIHRoYXQgZG9uJ3QgaGF2ZSBhCgkgICAgbmFtZS4gIFdoZW4gdXNpbmcgIjp3YSIgb3IgY2xvc2luZyB0aGUgVmltIHdpbmRvdyBhbmQgdGhlcmUgYXJlCgkgICAgbmFtZWxlc3MgYnVmZmVycywgYnJvd3NpbmcgZm9yIGEgbmFtZSBtYXkgY2F1c2UgdGhlIG5hbWUgYmVpbmcKCSAgICBnaXZlbiB0byB0aGUgd3JvbmcgYnVmZmVyIG9yIG5vdCBzdG9yZWQgcHJvcGVybHkuICAiOmJyb3dzZSIgb25seQoJICAgIHdvcmtlZCBmb3Igb25lIGZpbGUuClNvbHV0aW9uOiAgIFVzZSAiOmNvbmZpcm0gYnJvd3NlIiBmb3IgInNhdmUgYWxsIi4KCSAgICBQYXNzIGJ1ZmZlciBhcmd1bWVudCB0byBzZXRmbmFtZSgpLiAgUmVzdG9yZSAiYnJvd3NlIiBmbGFnIGFuZAoJICAgICJmb3JjZWl0IiBhZnRlciBkb2luZyB0aGUgd29yayBmb3Igb25lIGZpbGUuCkZpbGVzOgkgICAgcnVudGltZS9tZW51LnZpbSwgc3JjL2J1ZmZlci5jLCBzcmMvZXhfY21kcy5jLCBzcmMvZXhfY21kczIuYywKCSAgICBzcmMvZXhfZG9jbWQuYywgc3JjL2V4X2dldGxuLmMsIHNyYy9maWxlaW8uYywgc3JjL21lbWxpbmUuYywKCSAgICBzcmMvbWVzc2FnZS5jLCBzcmMvd2luZG93LmMsIHNyYy9wcm90by9idWZmZXIucHJvLAoJICAgIHNyYy9wcm90by9leF9jbWRzMi5wcm8sIHNyYy9wcm90by9tZW1saW5lLnBybwoKUGF0Y2ggNi4zYS4wMjUKUHJvYmxlbTogICAgU2V0dGluZyAndmlydHVhbGVkaXQnIG1vdmVzIHRoZSBjdXJzb3IuIChCZW5qaSBGaXNoZXIpClNvbHV0aW9uOiAgIFVwZGF0ZSB0aGUgdmlydHVhbCBjb2x1bW4gYmVmb3JlIHVzaW5nIGl0LgpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4zYS4wMjYgKGV4dHJhLCBhZnRlciA2LjNhLjAwOCkKUHJvYmxlbTogICAgRWRpdGluZyBmaWxlcyBvbiBXaW5kb3dzIDk4IGRvZXNuJ3Qgd29yayB3aGVuICdlbmNvZGluZycgaXMKCSAgICAidXRmLTgiIChBbnRvaW5lIE1lY2hlbHluY2spCgkgICAgV2FybmluZyBmb3IgbWlzc2luZyBmdW5jdGlvbiBwcm90b3R5cGUuClNvbHV0aW9uOiAgIEZvciBhbGwgd2lkZSBmdW5jdGlvbnMgY2hlY2sgaWYgaXQgZmFpbGVkIGJlY2F1c2UgaXQgaXMgbm90CgkgICAgaW1wbGVtZW50ZWQuICBVc2UgQU5TSSBmdW5jdGlvbiBkZWNsYXJhdGlvbiBmb3IgY2hhcl90b19zdHJpbmcoKS4KRmlsZXM6CSAgICBzcmMvZ3VpX3c0OC5jLCBzcmMvb3NfbXN3aW4uYywgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuM2EuMDI3IChleHRyYSwgYWZ0ZXIgNi4zYS4wMjYpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmcgZm9yIGZ1bmN0aW9uIGFyZ3VtZW50LgpTb2x1dGlvbjogICBEZWNsYXJlIGJvdGggY2hhciBhbmQgV0NIQVIgYXJyYXlzLgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuM2EuMDI4ClByb2JsZW06ICAgICI6bm9ybWFsIC4iIGRvZXNuJ3Qgd29yayBpbnNpZGUgYSBmdW5jdGlvbiwgYmVjYXVzZSByZWRvIGlzIHNhdmVkCgkgICAgYW5kIHJlc3RvcmVkLiAoQmVuamkgRmlzaGVyKQpTb2x1dGlvbjogICBNYWtlIGEgY29weSBvZiB0aGUgcmVkbyBidWZmZXIgd2hlbiBleGVjdXRpbmcgYSBmdW5jdGlvbi4KRmlsZXM6CSAgICBzcmMvZ2V0Y2hhci5jCgpQYXRjaCA2LjNiLjAwMSAoZXh0cmEpClByb2JsZW06ICAgIEJjYyA1OiBUaGUgZ2VuZXJhdGVkIGF1dG8vcGF0aGRlZiBjYW4ndCBiZSBjb21waWxlZC4KU29sdXRpb246ICAgRml4IHRoZSB3YXkgcXVvdGVzIGFuZCBiYWNrc2xhc2hlcyBhcmUgZXNjYXBlZC4KRmlsZXM6CSAgICBzcmMvTWFrZV9iYzUubWFrCgpQYXRjaCA2LjNiLjAwMgpQcm9ibGVtOiAgICBXaW4zMjogY29udmVyc2lvbiBkdXJpbmcgZmlsZSB3cml0ZSBmYWlscyB3aGVuIGEgZG91YmxlLWJ5dGUKCSAgICBjaGFyYWN0ZXIgaXMgc3BsaXQgb3ZlciB0d28gd3JpdGVzLgpTb2x1dGlvbjogICBGaXggdGhlIGNvbnZlcnNpb24gcmV0cnkgd2l0aG91dCBhIHRyYWlsaW5nIGJ5dGUuIChUYXJvIE11cmFva2EpCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjNiLjAwMyAoZXh0cmEpClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIGNvbXBpbGluZyB3aXRoIEJvcmxhbmQgQyA1LjUgYW5kICdlbmNvZGluZycgaXMgInV0Zi04IgoJICAgIHRoZW4gVmltIGNhbid0IG9wZW4gZmlsZXMgdW5kZXIgTVMtV2luZG93cyA5OC4gKEFudG9pbmUgSi4KCSAgICBNZWNoZWx5bmNrKQpTb2x1dGlvbjogICBEb24ndCB1c2UgX3dzdGF0KCksIF93b3BlbigpIGFuZCBfd2ZvcGVuKCkgaW4gdGhpcyBzaXR1YXRpb24uCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMsIHNyYy9vc193aW4zMi5jCgpQYXRjaCA2LjNiLjAwNApQcm9ibGVtOiAgICAiOmhlbHBncmVwIiBpbmNsdWRlcyBhIHRyYWlsaW5nIENSIGluIHRoZSB0ZXh0IGxpbmUuClNvbHV0aW9uOiAgIFJlbW92ZSB0aGUgQ1IuCkZpbGVzOgkgICAgc3JjL3F1aWNrZml4LmMKClBhdGNoIDYuM2IuMDA1ClByb2JsZW06ICAgICI6ZWNobyAmZzphaSIgcmVzdWx0cyBpbiB0aGUgbG9jYWwgb3B0aW9uIHZhbHVlLiAoU2FsbWFuIEhhbGltKQpTb2x1dGlvbjogICBQYXNzIHRoZSBmbGFncyBmcm9tIGZpbmRfb3B0aW9uX2VuZCgpIHRvIGdldF9vcHRpb25fdmFsdWUoKS4KRmlsZXM6CSAgICBzcmMvZXZhbC5jCgpQYXRjaCA2LjNiLjAwNgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nICJtc3dpbi52aW0iLCBDVFJMLVYgaW4gSW5zZXJ0IG1vZGUgbGVhdmVzIGN1cnNvciBiZWZvcmUKCSAgICBsYXN0IHBhc3RlZCBjaGFyYWN0ZXIuICAoTWF0aGV3IERhdmlzKQpTb2x1dGlvbjogICBVc2UgdGhlIHNhbWUgUGFzdGUoKSBmdW5jdGlvbiBhcyBpbiBtZW51LnZpbS4KRmlsZXM6CSAgICBydW50aW1lL21zd2luLnZpbQoKUGF0Y2ggNi4zYi4wMDcKUHJvYmxlbTogICAgU2Vzc2lvbiBmaWxlIGRvZXNuJ3QgcmVzdG9yZSB2aWV3IG9uIHdpbmRvd3MgcHJvcGVybHkuIChSb2JlcnQKCSAgICBXZWJiKQpTb2x1dGlvbjogICBSZXN0b3JlIHdpbmRvdyBzaXplcyBib3RoIGJlZm9yZSBhbmQgYWZ0ZXIgcmVzdG9yaW5nIHRoZSB2aWV3LCBzbwoJICAgIHRoYXQgdGhlIHZpZXcsIGN1cnNvciBwb3NpdGlvbiBhbmQgc2l6ZSBhcmUgcmVzdG9yZWQgcHJvcGVybHkuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuM2IuMDA4ClByb2JsZW06ICAgIFVzaW5nICI6ZmluYWxseSIgaW4gYSB1c2VyIGNvbW1hbmQgZG9lc24ndCBhbHdheXMgd29yay4gKEhhcmkKCSAgICBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIERvbid0IGFzc3VtZSB0aGF0IHVzaW5nIGdldGV4bGluZSgpIG1lYW5zIHRoZSBjb21tYW5kIHdhcyB0eXBlZC4KRmlsZXM6CSAgICBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4zYi4wMDkgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB0aGUgLVAgYXJndW1lbnQgaXMgbm90IGZvdW5kIGluIGEgd2luZG93IHRpdGxlLCB0aGVyZQoJICAgIGlzIG5vIGVycm9yIG1lc3NhZ2UuClNvbHV0aW9uOiAgIFdoZW4gdGhlIHdpbmRvdyBjYW4ndCBiZSBmb3VuZCBnaXZlIGFuIGVycm9yIG1lc3NhZ2UgYW5kIGV4aXQuCgkgICAgQWxzbyB1c2UgdHJ5L2V4Y2VwdCB0byBjYXRjaCBmYWlsaW5nIHRvIG9wZW4gdGhlIE1ESSB3aW5kb3cuCgkgICAgKE1pY2hhZWwgV29va2V5KQpGaWxlczoJICAgIHNyYy9ndWlfdzMyLmMKClBhdGNoIDYuM2IuMDEwClByb2JsZW06ICAgIFdpbjMyOiBVc2luZyB0aGUgIi1EIiBhcmd1bWVudCBhbmQgZXhwYW5kaW5nIGFyZ3VtZW50cyBtYXkgY2F1c2UgYQoJICAgIGhhbmcsIGJlY2F1c2UgdGhlIHRlcm1pbmFsIGlzbid0IGluaXRpYWxpemVkIHlldC4gKFZpbmNlIE5lZ3JpKQpTb2x1dGlvbjogICBEb24ndCBnbyBpbnRvIGRlYnVnIG1vZGUgYmVmb3JlIHRoZSB0ZXJtaW5hbCBpcyBpbml0aWFsaXplZC4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjNiLjAxMQpQcm9ibGVtOiAgICBVc2luZyBDVFJMLVwgZSB3aGlsZSBvYnRhaW5pbmcgYW4gZXhwcmVzc2lvbiBhYm9ydHMgdGhlIGNvbW1hbmQKCSAgICBsaW5lLiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIEluc2VydCB0aGUgQ1RSTC1cIGUgYXMgdHlwZWQuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuM2IuMDEyIChhZnRlciA2LjNiLjAxMCkKUHJvYmxlbTogICAgQ2FuJ3QgY29tcGlsZSB3aXRoIHRpbnkgZmVhdHVyZXMuIChOb3JiZXJ0IFRyZXRrb3dza2kpClNvbHV0aW9uOiAgIEFkZCAjaWZkZWZzLgpGaWxlczoJICAgIHNyYy9tYWluLmMKClBhdGNoIDYuM2IuMDEzClByb2JsZW06ICAgIExvYWRpbmcgYSBzZXNzaW9uIGZpbGUgcmVzdWx0cyBpbiBlZGl0aW5nIHRoZSB3cm9uZyBmaWxlIGluIHRoZQoJICAgIGZpcnN0IHdpbmRvdyB3aGVuIHRoaXMgaXMgbm90IHRoZSBmaWxlIGF0IHRoZSBjdXJyZW50IHBvc2l0aW9uIGluCgkgICAgdGhlIGFyZ3VtZW50IGxpc3QuIChSb2JlcnQgV2ViYikKU29sdXRpb246ICAgQ2hlY2sgd19hcmdfaWR4X2ludmFsaWQgdG8gZGVjaWRlIHdoZXRoZXIgdG8gZWRpdCBhIGZpbGUuCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuM2IuMDE0ClByb2JsZW06ICAgICI6cnVudGltZSEgZm9vKi52aW0iIG1heSB1c2luZyBmcmVlZCBtZW1vcnkgd2hlbiBhIHNvdXJjZWQgc2NyaXB0CgkgICAgY2hhbmdlcyB0aGUgdmFsdWUgb2YgJ3J1bnRpbWVwYXRoJy4KU29sdXRpb246ICAgTWFrZSBhIGNvcHkgb2YgJ3J1bnRpbWVwYXRoJyB3aGVuIGxvb3Bpbmcgb3ZlciB0aGUgbWF0Y2hlcy4KRmlsZXM6CSAgICBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4zYi4wMTUKUHJvYmxlbTogICAgR2V0IGxhbGxvYygwKSBlcnJvciB3aGVuIHVzaW5nICJwIiBpbiBWaXN1YWwgbW9kZSB3aGlsZQoJICAgICdjbGlwYm9hcmQnIGNvbnRhaW5zICJhdXRvc2VsZWN0LHVubmFtZWQiLiAoTWFyayBXYWdvbm5lcikKU29sdXRpb246ICAgQXZvaWQgYWxsb2NhdGluZyB6ZXJvIGJ5dGVzLiAgT2J0YWluIHRoZSBjbGlwYm9hcmQgd2hlbiBuZWNlc3NhcnkuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjNiLjAxNgpQcm9ibGVtOiAgICBXaGVuICd2aXJ0dWFsZWRpdCcgaXMgdXNlZCAieCIgZG9lc24ndCBkZWxldGUgdGhlIGxhc3QgY2hhcmFjdGVyCgkgICAgb2YgYSBsaW5lIHRoYXQgaGFzIGFzIG1hbnkgY2hhcmFjdGVycyBhcyAnY29sdW1ucycuIChZYWtvdiBMZXJuZXIpClNvbHV0aW9uOiAgIFdoZW4gdGhlIGN1cnNvciBpc24ndCBtb3ZlZCBsZXQgb25lcmlnaHQoKSByZXR1cm4gRkFJTC4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjNiLjAxNwpQcm9ibGVtOiAgICBXaW4zMjogInZpbSAtLXJlbW90ZS13YWl0IiBkb2Vzbid0IGV4aXQgd2hlbiB0aGUgc2VydmVyIGZpbmlzaGVkCgkgICAgZWRpdGluZyB0aGUgZmlsZS4gKERhdmlkIEZpc2hidXJuKQpTb2x1dGlvbjogICBJbiB0aGUgcnJoZWxwZXIgcGx1Z2luIGNoYW5nZSBiYWNrc2xhc2hlcyB0byBmb3J3YXJkIHNsYXNoZXMgYW5kCgkgICAgZXNjYXBlIHNwZWNpYWwgY2hhcmFjdGVycy4KRmlsZXM6CSAgICBydW50aW1lL3BsdWdpbi9ycmhlbHBlci52aW0KClBhdGNoIDYuM2IuMDE4ClByb2JsZW06ICAgIFRoZSBsaXN0IG9mIGhlbHAgZmlsZXMgaW4gdGhlICJsb2NhbCBhZGRpdGlvbnMiIHRhYmxlIGRvZXNuJ3QKCSAgICByZWNvZ25pemUgdXRmLTggZW5jb2RpbmcuIChZYXN1aGlybyBNYXRzdW1vdG8pClNvbHV0aW9uOiAgIFJlY29nbml6ZSB1dGYtOCBjaGFyYWN0ZXJzLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuM2IuMDE5ClByb2JsZW06ICAgIFdoZW4gJFZJTVJVTlRJTUUgaXMgbm90IGEgZnVsbCBwYXRoIG5hbWUgdGhlICJsb2NhbCBhZGRpdGlvbnMiCgkgICAgdGFibGUgbGlzdHMgYWxsIHRoZSBoZWxwIGZpbGVzLgpTb2x1dGlvbjogICBVc2UgZnVsbHBhdGhjbXAoKSBpbnN0ZWFkIG9mIGZuYW1lY21wKCkgdG8gY29tcGFyZSB0aGUgZGlyZWN0b3J5CgkgICAgbmFtZXMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4zYi4wMjAKUHJvYmxlbTogICAgV2hlbiB1c2luZyBDVFJMLV4gd2hlbiBlbnRlcmluZyBhIHNlYXJjaCBzdHJpbmcsIHRoZSBpdGVtIGluIHRoZQoJICAgIHN0YXR1c2xpbmUgdGhhdCBpbmRpY2F0ZXMgdGhlIGtleW1hcCBpcyBub3QgdXBkYXRlZC4gKElseWEKCSAgICBEb2dvbGF6a3kpClNvbHV0aW9uOiAgIE1hcmsgdGhlIHN0YXR1c2xpbmVzIGZvciB1cGRhdGluZy4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4zYi4wMjEKUHJvYmxlbTogICAgVGhlIHN3YXBmaWxlIGlzIG5vdCByZWFkYWJsZSBmb3Igb3RoZXJzLCB0aGUgQVRURU5USU9OIHByb21wdCBkb2VzCgkgICAgbm90IHNob3cgYWxsIGluZm8gd2hlbiBzb21lb25lIGVsc2UgaXMgZWRpdGluZyB0aGUgc2FtZSBmaWxlLgoJICAgIChNYXJjZWwgU3ZpdGFsc2t5KQpTb2x1dGlvbjogICBVc2UgdGhlIHByb3RlY3Rpb24gb2Ygb3JpZ2luYWwgZmlsZSBmb3IgdGhlIHN3YXBmaWxlIGFuZCBzZXQgaXQKCSAgICBhZnRlciBjcmVhdGluZyB0aGUgc3dhcGZpbGUuCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jCgpQYXRjaCA2LjNiLjAyMgpQcm9ibGVtOiAgICBVc2luZyAiNHYiIHRvIHNlbGVjdCBmb3VyIHRpbWVzIHRoZSBvbGQgVmlzdWFsIGFyZWEgbWF5IHB1dCB0aGUKCSAgICBjdXJzb3IgYmV5b25kIHRoZSBlbmQgb2YgdGhlIGxpbmUuIChKZW5zIFBhdWx1cykKU29sdXRpb246ICAgQ29ycmVjdCB0aGUgY3Vyc29yIGNvbHVtbi4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuM2IuMDIzClByb2JsZW06ICAgIFdoZW4gIjNkaXAiIHN0YXJ0cyBpbiBhbiBlbXB0eSBsaW5lLCB3aGl0ZSBsaW5lcyBhZnRlciB0aGUKCSAgICBub24td2hpdGUgbGluZXMgYXJlIG5vdCBkZWxldGVkLiAoSmVucyBQYXVsdXMpClNvbHV0aW9uOiAgIEluY2x1ZGUgdGhlIHdoaXRlIGxpbmVzLgpGaWxlczoJICAgIHNyYy9zZWFyY2guYwoKUGF0Y2ggNi4zYi4wMjQKUHJvYmxlbTogICAgIjJkYXciIGRvZXMgbm90IGRlbGV0ZSBsZWFkaW5nIHdoaXRlIHNwYWNlIGxpa2UgImRhdyIgZG9lcy4gIChKZW5zCgkgICAgUGF1bHVzKQpTb2x1dGlvbjogICBJbmNsdWRlIHRoZSB3aGl0ZSBzcGFjZSB3aGVuIGEgY291bnQgaXMgdXNlZC4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKClBhdGNoIDYuM2IuMDI1ClByb2JsZW06ICAgIFBlcmNlbnRhZ2UgaW4gcnVsZXIgaXNuJ3QgdXBkYXRlZCB3aGVuIGEgbGluZSBpcyBkZWxldGVkLiAoSmVucwoJICAgIFBhdWx1cykKU29sdXRpb246ICAgQ2hlY2sgZm9yIGEgY2hhbmdlIGluIGxpbmUgY291bnQgd2hlbiBkZWNpZGluZyB0byB1cGRhdGUgdGhlIHJ1bGVyLgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYywgc3JjL3N0cnVjdHMuaAoKUGF0Y2ggNi4zYi4wMjYKUHJvYmxlbTogICAgV2hlbiBzZWxlY3RpbmcgImFib3J0IiBhdCB0aGUgQVRURU5USU9OIHByb21wdCBmb3IgYSBmaWxlIHRoYXQgaXMKCSAgICBhbHJlYWR5IGJlaW5nIGVkaXRlZCBWaW0gY3Jhc2hlcy4KU29sdXRpb246ICAgRG9uJ3QgYWJvcnQgY3JlYXRpbmcgYSBuZXcgYnVmZmVyIHdoZW4gd2UgcmVhbGx5IG5lZWQgaXQuCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvdmltLmgKClBhdGNoIDYuM2IuMDI3ClByb2JsZW06ICAgIFdpbjMyOiBXaGVuIGVuYWJsaW5nIHRoZSBtZW51IGluIGEgbWF4aW1pemVkIHdpbmRvdywgVmltIHVzZXMgbW9yZQoJICAgIGxpbmVzIHRoYW4gd2hhdCBpcyByb29tIGZvci4gKFNoaXpodSBQYW4pClNvbHV0aW9uOiAgIFdoZW4gZGVjaWRpbmcgdG8gY2FsbCBzaGVsbF9yZXNpemVkKCksIGFsc28gY29tcGFyZSB0aGUgdGV4dCBhcmVhCgkgICAgc2l6ZSB3aXRoIFJvd3MgYW5kIENvbHVtbnMsIG5vdCBqdXN0IHdpdGggc2NyZWVuX1Jvd3MgYW5kCgkgICAgc2NyZWVuX0NvbHVtbnMuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjNiLjAyOApQcm9ibGVtOiAgICBXaGVuIGluIGRpZmYgbW9kZSwgc2V0dGluZyAncmlnaHRsZWZ0JyBjYXVzZXMgYSBjcmFzaC4gKEVkZGluZSkKU29sdXRpb246ICAgQ2hlY2sgZm9yIGxhc3QgY29sdW1uIGRpZmZlcmVudGx5IHdoZW4gJ3JpZ2h0bGVmdCcgaXMgc2V0LgpGaWxlczoJICAgIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4zYi4wMjkKUHJvYmxlbTogICAgV2luMzI6IHdhcm5pbmcgZm9yIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuClNvbHV0aW9uOiAgIEluaXRpYWxpemUgdG8gemVyby4KRmlsZXM6CSAgICBzcmMvbWlzYzEuYwoKUGF0Y2ggNi4zYi4wMzAKUHJvYmxlbTogICAgQWZ0ZXIgVmlzdWFsbHkgc2VsZWN0aW5nIGZvdXIgY2hhcmFjdGVycywgY2hhbmdpbmcgaXQgdG8gb3RoZXIKCSAgICB0ZXh0LCBWaXN1YWxseSBzZWxlY3RpbmcgYW5kIHlhbmtpbmcgdHdvIGNoYXJhY3RlcnM6ICIuIiBjaGFuZ2VzCgkgICAgZm91ciBjaGFyYWN0ZXJzLCBhbm90aGVyICIuIiBjaGFuZ2VzIHR3byBjaGFyYWN0ZXJzLiAoUm9iZXJ0IFdlYmIpClNvbHV0aW9uOiAgIERvbid0IHN0b3JlIHRoZSBzaXplIG9mIHRoZSBWaXN1YWwgYXJlYSB3aGVuIHJlZG8gaXMgYWN0aXZlLgpGaWxlczoJICAgIHNyYy9ub3JtYWwuYwoKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClZFUlNJT04gNi40CQkJCQkJKnZlcnNpb24tNi40KgoKVGhpcyBzZWN0aW9uIGlzIGFib3V0IGltcHJvdmVtZW50cyBtYWRlIGJldHdlZW4gdmVyc2lvbiA2LjMgYW5kIDYuNC4KClRoaXMgaXMgYSBidWctZml4IHJlbGVhc2UuICBUaGVyZSBhcmUgYWxzbyBhIGZldyBuZXcgZmVhdHVyZXMuICBUaGUgbWFqb3IKbnVtYmVyIG9mIG5ldyBpdGVtcyBpcyBpbiB0aGUgcnVudGltZSBmaWxlcyBhbmQgdHJhbnNsYXRpb25zLgoKVGhlIGJpZyBNUy1XaW5kb3dzIHZlcnNpb24gbm93IHVzZXM6CglSdWJ5IHZlcnNpb24gMS44LjMKCVBlcmwgdmVyc2lvbiA1LjguNwoJUHl0aG9uIHZlcnNpb24gMi40LjIKCgpDaGFuZ2VkCQkJCQkJCSpjaGFuZ2VkLTYuNCoKLS0tLS0tLQoKUmVtb3ZlZCBydW50aW1lL3Rvb2xzL3RjbHRhZ3MsIEV4dWJlcmFudCBjdGFncyBkb2VzIGl0IGJldHRlci4KCgpBZGRlZAkJCQkJCQkqYWRkZWQtNi40KgotLS0tLQoKQWxzYWNvbmYgc3ludGF4IGZpbGUgKE5pa29sYWkgV2VpYnVsbCkKRXJ1Ynkgc3ludGF4LCBpbmRlbnQsIGNvbXBpbGVyIGFuZCBmdHBsdWdpbiBmaWxlIChEb3VnIEtlYXJucykKRXN0ZXJlbCBzeW50YXggZmlsZSAoTWF1cml6aW8gVHJhbmNoZXJvKQpNYXRoZW1hdGljYSBpbmRlbnQgZmlsZSAoU3RldmUgTGF5bGFuZCkKTmV0cmMgc3ludGF4IGZpbGUgKE5pa29sYWkgV2VpYnVsbCkKUEhQIGNvbXBpbGVyIGZpbGUgKERvdWcgS2Vhcm5zKQpQYXNjYWwgaW5kZW50IGZpbGUgKE5laWwgQ2FydGVyKQpQcmVzY3JpYmUgc3ludGF4IGZpbGUgKEtsYXVzIE11dGgpClJ1Ynl1bml0IGNvbXBpbGVyIGZpbGUgKERvdWcgS2Vhcm5zKQpTTVRQcmMgc3ludGF4IGZpbGUgKEtvcm5lbCBLaWVsY3pld3NraSkKU3Vkb2VycyBzeW50YXggZmlsZSAoTmlrb2xhaSBXZWlidWxsKQpUUFAgc3ludGF4IGZpbGUgKEdlcmZyaWVkIEZ1Y2hzKQpWSERMIGZ0cGx1Z2luIGZpbGUgKFIuIFNoYW5rYXIpClZlcmlsb2ctQU1TIHN5bnRheCBmaWxlIChTLiBNeWxlcyBQcmF0aGVyKQoKQnVsZ2FyaWFuIGtleW1hcCAoQWxiZXJ0byBNYXJkZWdhbikKQ2FuYWRpYW4ga2V5bWFwIChFcmljIEpvYW5pcykKCkh1bmdhcmlhbiBtZW51IHRyYW5zbGF0aW9ucyBpbiBVVEYtOCAoS2FudHJhIEdlcmdlbHkpClVrcmFpbmlhbiBtZW51IHRyYW5zbGF0aW9ucyAoQm9oZGFuIFZsYXN5dWspCgpJcmlzaCBtZXNzYWdlIHRyYW5zbGF0aW9ucyAoS2V2aW4gUGF0cmljayBTY2FubmVsbCkKCkNvbmZpZ3VyZSBhbHNvIGNoZWNrcyBmb3IgdGNsc2g4LjQuCgoKRml4ZWQJCQkJCQkJKmZpeGVkLTYuNCoKLS0tLS0KCiJkRnhkOyIgZGVsZXRlZCB0aGUgY2hhcmFjdGVyIHVuZGVyIHRoZSBjdXJzb3IsICJkOyIgZGlkbid0IHJlbWVtYmVyIHRoZQpleGNsdXNpdmVuZXNzIG9mIHRoZSBtb3Rpb24uCgpXaGVuIHVzaW5nICJzZXQgbGFzdHN0YXR1cz0yIGNtZGhlaWdodD0yIiBpbiB0aGUgLmd2aW1yYyB5b3UgbWF5IG9ubHkgZ2V0IG9uZQpsaW5lIGZvciB0aGUgY21kbGluZS4gKENocmlzdGlhbiBSb2JpbnNvbikgIEludm9rZSBjb21tYW5kX2hlaWdodCgpIGFmdGVyIHRoZQpHVUkgaGFzIHN0YXJ0ZWQgdXAuCgpHY2Mgd291bGQgd2FybiAiZGVyZWZlcmVuY2luZyB0eXBlLXB1bm5lZCBwb2ludGVyIHdpbGwgYnJlYWsgc3RyaWN0IC1hbGlhc2luZwpydWxlcyIuICBBdm9pZCB1c2luZyB0eXBlY2FzdHMgZm9yIHZhcmlhYmxlIHBvaW50ZXJzLgoKR2NjIDMueCBpbnRlcnByZXRzIHRoZSAtTU0gYXJndW1lbnQgZGlmZmVyZW50bHkuICBDaGFuZ2UgIi1JIC9wYXRoIiB0bwoiLWlzeXN0ZW0gL3BhdGgiIGZvciAibWFrZSBkZXBlbmQiLgoKClBhdGNoIDYuMy4wMDEKUHJvYmxlbTogICAgIjpicm93c2Ugc3BsaXQiIGdpdmVzIHRoZSBmaWxlIHNlbGVjdGlvbiBkaWFsb2cgdHdpY2UuIChHb3Jkb24KCSAgICBCYXplbGV5KSAgU2FtZSBwcm9ibGVtIGZvciAiOmJyb3dzZSBkaWZmcGF0Y2giLgpTb2x1dGlvbjogICBSZXNldCBjbWRtb2QuYnJvd3NlIGJlZm9yZSBjYWxsaW5nIGRvX2VjbWQoKS4KRmlsZXM6CSAgICBzcmMvZGlmZi5jLCBzcmMvZXhfZG9jbWQuYwoKUGF0Y2ggNi4zLjAwMgpQcm9ibGVtOiAgICBXaGVuIHVzaW5nIHRyYW5zbGF0ZWQgaGVscCBmaWxlcyB3aXRoIG5vbi1BU0NJSSBsYXRpbjEgY2hhcmFjdGVycwoJICAgIGluIHRoZSBmaXJzdCBsaW5lIHRoZSB1dGYtOCBkZXRlY3Rpb24gaXMgd3JvbmcuClNvbHV0aW9uOiAgIFByb3Blcmx5IGRldGVjdCB1dGYtOCBjaGFyYWN0ZXJzLiAgV2hlbiBhIG1peCBvZiBlbmNvZGluZ3MgaXMKCSAgICBkZXRlY3RlZCBjb250aW51ZSB3aXRoIHRoZSBuZXh0IGxhbmd1YWdlIGFuZCBhdm9pZCBhICJubyBtYXRjaGVzIgoJICAgIGVycm9yIGJlY2F1c2Ugb2YgImdvdF9pbnQiIGJlaW5nIHNldC4gIEFkZCB0aGUgZGlyZWN0b3J5IG5hbWUgdG8KCSAgICB0aGUgZXJyb3IgbWVzc2FnZSBmb3IgYSBkdXBsaWNhdGUgdGFnLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmMKClBhdGNoIDYuMy4wMDMKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiB1c2luZyBhIGNvbnNvbGUgZGlhbG9nIGFuZCB0aGUgZmlyc3QgY2hvaWNlIGRvZXMgbm90CgkgICAgaGF2ZSBhIGRlZmF1bHQgYnV0dG9uLiAoRGFyaW4gT2hhc2hpKQpTb2x1dGlvbjogICBBbGxvY2F0ZSB0d28gbW9yZSBjaGFyYWN0ZXJzIGZvciB0aGUgW10gYXJvdW5kIHRoZSBjaGFyYWN0ZXIgZm9yCgkgICAgdGhlIGRlZmF1bHQgY2hvaWNlLgpGaWxlczoJICAgIHNyYy9tZXNzYWdlLmMKClBhdGNoIDYuMy4wMDQKUHJvYmxlbTogICAgV2hlbiBzZWFyY2hpbmcgZm9yIGEgbG9uZyBzdHJpbmcgKDE0MCBjaGFycyBpbiBhIDgwIGNvbHVtbgoJICAgIHRlcm1pbmFsKSBnZXQgdGhyZWUgaGl0LWVudGVyIHByb21wdHMuIChSb2JlcnQgV2ViYikKU29sdXRpb246ICAgQXZvaWQgdGhlIGhpdC1lbnRlciBwcm9tcHQgd2hlbiBnaXZpbmcgdGhlIG1lc3NhZ2UgZm9yIHdyYXBwaW5nCgkgICAgYXJvdW5kIHRoZSBlbmQgb2YgdGhlIGJ1ZmZlci4gIERvbid0IGdpdmUgdGhhdCBtZXNzYWdlIGFnYWluIHdoZW4KCSAgICB0aGUgc3RyaW5nIHdhcyBub3QgZm91bmQuCkZpbGVzOgkgICAgc3JjL21lc3NhZ2UuYywgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjMuMDA1ClByb2JsZW06ICAgIENyYXNoIHdoZW4gc2VhcmNoaW5nIGZvciBhIHBhdHRlcm4gd2l0aCBhIGNoYXJhY3RlciBvZmZzZXQgYW5kCgkgICAgc3RhcnRpbmcgaW4gYSBjbG9zZWQgZm9sZC4gKEZyYW5rIEJ1dGxlcikKU29sdXRpb246ICAgQ2hlY2sgZm9yIHRoZSBjb2x1bW4gdG8gYmUgcGFzdCB0aGUgZW5kIG9mIHRoZSBsaW5lLiAgQWxzbyBmaXgKCSAgICB0aGF0IGEgcGF0dGVybiB3aXRoIGEgY2hhcmFjdGVyIG9mZnNldCByZWxhdGl2ZSB0byB0aGUgZW5kIGlzbid0CgkgICAgcmVhZCBiYWNrIGZyb20gdGhlIHZpbWluZm8gcHJvcGVybHkuCkZpbGVzOgkgICAgc3JjL3NlYXJjaC5jCgpQYXRjaCA2LjMuMDA2ClByb2JsZW06ICAgICI6YnJlYWthZGQgZmlsZSAqZm9vIiBwcmVwZW5kcyB0aGUgY3VycmVudCBkaXJlY3RvcnkgdG8gdGhlIGZpbGUKCSAgICBwYXR0ZXJuLiAoSGFyaSBLcmlzaG5hIERhcmEpClNvbHV0aW9uOiAgIEtlZXAgdGhlIHBhdHRlcm4gYXMtaXMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMyLmMKClBhdGNoIDYuMy4wMDcKUHJvYmxlbTogICAgV2hlbiB0aGVyZSBpcyBhIGJ1ZmZlciB3aXRoICdidWZ0eXBlJyBzZXQgdG8gIm5vZmlsZSIgYW5kIHVzaW5nIGEKCSAgICAiOmNkIiBjb21tYW5kLCB0aGUgc3dhcCBmaWxlIGlzIG5vdCBkZWxldGVkIHdoZW4gZXhpdGluZy4KU29sdXRpb246ICAgVXNlIHRoZSBmdWxsIHBhdGggb2YgdGhlIHN3YXAgZmlsZSBhbHNvIGZvciAibm9maWxlIiBidWZmZXJzLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4zLjAwOApQcm9ibGVtOiAgICBDb21waWxpbmcgZmFpbHMgdW5kZXIgT1MvMi4KU29sdXRpb246ICAgSW5jbHVkZSAiZV9zY3JlZW5tb2RlIiBhbHNvIGZvciBPUy8yLiAoRGF2aWQgU2FuZGVycykKRmlsZXM6CSAgICBzcmMvZ2xvYmFscy5oCgpQYXRjaCA2LjMuMDA5IChhZnRlciA2LjMuMDA2KQpQcm9ibGVtOiAgICAiOmJyZWFrYWRkIGZpbGUgL3BhdGgvZm9vLnZpbSIgZG9lcyBub3QgbWF0Y2ggd2hlbiBhIHN5bWJvbGljIGxpbmsKCSAgICBpcyBpbnZvbHZlZC4gIChTZXJ2YXRpdXMgQnJhbmR0KQpTb2x1dGlvbjogICBEbyBleHBhbmQgdGhlIHBhdHRlcm4gd2hlbiBpdCBkb2VzIG5vdCBzdGFydCB3aXRoICIqIi4KRmlsZXM6CSAgICBydW50aW1lL2RvYy9yZXBlYXQudHh0LCBzcmMvZXhfY21kczIuYwoKUGF0Y2ggNi4zLjAxMApQcm9ibGVtOiAgICBXaGVuIHdyaXRpbmcgdG8gYSBuYW1lZCBwaXBlIHRoZXJlIGlzIGFuIGVycm9yIGZvciBmc3luYygpCgkgICAgZmFpbGluZy4KU29sdXRpb246ICAgSWdub3JlIHRoZSBmc3luYygpIGVycm9yIGZvciBkZXZpY2VzLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4zLjAxMQpQcm9ibGVtOiAgICBDcmFzaCB3aGVuIHRoZSBjb21wbGV0aW9uIGZ1bmN0aW9uIG9mIGEgdXNlci1jb21tYW5kIHVzZXMgYQoJICAgICJub3JtYWwgOmNtZCIgY29tbWFuZC4gIChIYXJpIEtyaXNobmEgRGFyYSkKU29sdXRpb246ICAgU2F2ZSB0aGUgY29tbWFuZCBsaW5lIHdoZW4gaW52b2tpbmcgdGhlIGNvbXBsZXRpb24gZnVuY3Rpb24uCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMy4wMTIKUHJvYmxlbTogICAgSW50ZXJuYWwgbGFsbG9jKDApIGVycm9yIHdoZW4gdXNpbmcgYSBjb21wbGljYXRlZCBtdWx0aS1saW5lCgkgICAgcGF0dGVybiBpbiBhIHN1YnN0aXR1dGUgY29tbWFuZC4gKEx1YyBIZXJtaXR0ZSkKU29sdXRpb246ICAgQXZvaWQgZ29pbmcgcGFzdCB0aGUgZW5kIG9mIGEgbGluZS4KRmlsZXM6CSAgICBzcmMvZXhfY21kcy5jCgpQYXRjaCA2LjMuMDEzClByb2JsZW06ICAgIENyYXNoIHdoZW4gZWRpdGluZyBhIGNvbW1hbmQgbGluZSBhbmQgdHlwaW5nIENUUkwtUiA9IHRvIGV2YWx1YXRlCgkgICAgYSBmdW5jdGlvbiB0aGF0IHVzZXMgIm5vcm1hbCA6Y21kIi4gKEhhcmkgS3Jpc2huYSBEYXJhKQpTb2x1dGlvbjogICBTYXZlIGFuZCByZXN0b3JlIHRoZSBjb21tYW5kIGxpbmUgd2hlbiBldmFsdWF0aW5nIGFuIGV4cHJlc3Npb24KCSAgICBmb3IgQ1RSTC1SID0uCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMsIHNyYy9vcHMuYywgc3JjL3Byb3RvL2V4X2dldGxuLnBybywKCSAgICBzcmMvcHJvdG8vb3BzLnBybwoKUGF0Y2ggNi4zLjAxNApQcm9ibGVtOiAgICBXaGVuIHVzaW5nIENoaW5lc2Ugb3IgVGFpd2FuZXNlIHRoZSBkZWZhdWx0IGZvciAnaGVscGxhbmcnIGlzCgkgICAgd3JvbmcuIChTaW1vbiBMaWFuZykKU29sdXRpb246ICAgVXNlIHRoZSBwYXJ0IG9mIHRoZSBsb2NhbGUgbmFtZSBhZnRlciAiemhfIi4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMKClBhdGNoIDYuMy4wMTUKUHJvYmxlbTogICAgVGhlIHN0cmluZyB0aGF0IHdpbnJlc3RjbWQoKSByZXR1cm5zIG1heSBlbmQgaW4gZ2FyYmFnZS4KU29sdXRpb246ICAgTlVMLXRlcm1pbmF0ZSB0aGUgc3RyaW5nLiAoV2FsdGVyIEJyaXNjb2UpCkZpbGVzOgkgICAgc3JjL2V2YWwuYwoKUGF0Y2ggNi4zLjAxNgpQcm9ibGVtOiAgICBUaGUgZGVmYXVsdCB2YWx1ZSBmb3IgJ2RlZmluZScgaGFzICJccyIgYmVmb3JlICcjJy4KU29sdXRpb246ICAgQWRkIGEgc3RhciBhZnRlciAiXHMiLiAoSGVyY3VsYW5vIGRlIExpbWEgRWlubG9mdCBOZXRvKQpGaWxlczoJICAgIHNyYy9vcHRpb24uYwoKUGF0Y2ggNi4zLjAxNwpQcm9ibGVtOiAgICAiOHp6IiBtYXkgbGVhdmUgdGhlIGN1cnNvciBiZXlvbmQgdGhlIGVuZCBvZiB0aGUgbGluZS4gKE5pa28KCSAgICBNYWF0amVzKQpTb2x1dGlvbjogICBDb3JyZWN0IHRoZSBjdXJzb3IgY29sdW1uIGFmdGVyIG1vdmluZyB0byBhbm90aGVyIGxpbmUuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjMuMDE4ClByb2JsZW06ICAgICI6MGFyZ2FkZCB6ZXJvIiBhZGRlZCB0aGUgYXJndW1lbnQgYWZ0ZXIgdGhlIGZpcnN0IG9uZSwgaW5zdGVhZCBvZgoJICAgIGJlZm9yZSBpdC4gKEFkcmkgVmVyaG9lZikKU29sdXRpb246ICAgQWNjZXB0IGEgemVybyByYW5nZSBmb3IgIjphcmdhZGQiLgpGaWxlczoJICAgIHNyYy9leF9jbWRzLmgKClBhdGNoIDYuMy4wMTkKUHJvYmxlbTogICAgQ3Jhc2ggaW4gc3RhcnR1cCBmb3IgZGVidWcgdmVyc2lvbi4gKERhdmlkIFJlbm5hbHMpClNvbHV0aW9uOiAgIE1vdmUgdGhlIGNhbGwgdG8gbmJkZWJ1Z193YWl0KCkgdG8gYWZ0ZXIgYWxsb2NhdGluZyBOYW1lQnVmZi4KRmlsZXM6CSAgICBzcmMvbWFpbi5jCgpQYXRjaCA2LjMuMDIwClByb2JsZW06ICAgIFdoZW4gJ2VuY29kaW5nJyBpcyAidXRmLTgiIGFuZCAnZGVsY29tYmluZScgaXMgc2V0LCAiZHciIGRvZXMgbm90CgkgICAgZGVsZXRlIGEgd29yZCBidXQgb25seSBhIGNvbWJpbmluZyBjaGFyYWN0ZXIgb2YgdGhlIGZpcnN0CgkgICAgY2hhcmFjdGVyLCBpZiB0aGVyZSBpcyBvbmUuIChSYXBoYWVsIEZpbmtlbCkKU29sdXRpb246ICAgQ29ycmVjdGx5IGNoZWNrIHRoYXQgb25lIGNoYXJhY3RlciBpcyBiZWluZyBkZWxldGVkLgpGaWxlczoJICAgIHNyYy9taXNjMS5jCgpQYXRjaCA2LjMuMDIxClByb2JsZW06ICAgIFdoZW4gdGhlIGxhc3QgY2hhcmFjdGVyIG9mIGEgZmlsZSBuYW1lIGlzIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIKCSAgICBhbmQgdGhlIGxhc3QgYnl0ZSBpcyBhIHBhdGggc2VwYXJhdG9yLCB0aGUgZmlsZSBjYW5ub3QgYmUgZWRpdGVkLgpTb2x1dGlvbjogICBDaGVjayBmb3IgdGhlIGxhc3QgYnl0ZSB0byBiZSBwYXJ0IG9mIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIuCgkgICAgKFRhcm8gTXVyYW9rYSkKRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMy4wMjIgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB0aGUgbGFzdCBjaGFyYWN0ZXIgb2YgYSBmaWxlIG5hbWUgaXMgYSBtdWx0aS1ieXRlCgkgICAgY2hhcmFjdGVyIGFuZCB0aGUgbGFzdCBieXRlIGlzIGEgcGF0aCBzZXBhcmF0b3IsIHRoZSBmaWxlIGNhbm5vdAoJICAgIGJlIHdyaXR0ZW4uICBBIHRyYWlsIGJ5dGUgdGhhdCBpcyBhIHNwYWNlIG1ha2VzIHRoYXQgYSBmaWxlIGNhbm5vdAoJICAgIGJlIG9wZW5lZCBmcm9tIHRoZSBjb21tYW5kIGxpbmUuClNvbHV0aW9uOiAgIFJlY29nbml6ZSBkb3VibGUtYnl0ZSBjaGFyYWN0ZXJzIHdoZW4gcGFyc2luZyB0aGUgY29tbWFuZCBsaW5lLgoJICAgIEluIG1jaF9zdGF0KCkgY2hlY2sgZm9yIHRoZSBsYXN0IGJ5dGUgdG8gYmUgcGFydCBvZiBhIG11bHRpLWJ5dGUKCSAgICBjaGFyYWN0ZXIuICAoVGFybyBNdXJhb2thKQpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMsIHNyYy9vc19tc3dpbi5jCgpQYXRjaCA2LjMuMDIzClByb2JsZW06ICAgIFdoZW4gdGhlICJ0byIgcGFydCBvZiBhIG1hcHBpbmcgc3RhcnRzIHdpdGggaXRzICJmcm9tIiBwYXJ0LAoJICAgIGFiYnJldmlhdGlvbnMgZm9yIHRoZSBzYW1lIGNoYXJhY3RlcnMgaXMgbm90IHBvc3NpYmxlLiAgRm9yCgkgICAgZXhhbXBsZSwgd2hlbiA8U3BhY2U+IGlzIG1hcHBlZCB0byBzb21ldGhpbmcgdGhhdCBzdGFydHMgd2l0aCBhCgkgICAgc3BhY2UsIHR5cGluZyA8U3BhY2U+IGRvZXMgbm90IGV4cGFuZCBhYmJyZXZpYXRpb25zLgpTb2x1dGlvbjogICBPbmx5IGRpc2FibGUgZXhwYW5kaW5nIGFiYnJldmlhdGlvbnMgd2hlbiBhIG1hcHBpbmcgaXMgbm90CgkgICAgcmVtYXBwZWQsIGRvbid0IGRpc2FibGUgaXQgd2hlbiB0aGUgUkhTIG9mIGEgbWFwcGluZyBzdGFydHMgd2l0aAoJICAgIHRoZSBMSFMuCkZpbGVzOgkgICAgc3JjL2dldGNoYXIuYywgc3JjL3ZpbS5oCgpQYXRjaCA2LjMuMDI0ClByb2JsZW06ICAgIEluIGEgZmV3IHBsYWNlcyBhIHN0cmluZyBpbiBhbGxvY2F0ZWQgbWVtb3J5IGlzIG5vdCB0ZXJtaW5hdGVkCgkgICAgd2l0aCBhIE5VTC4KU29sdXRpb246ICAgQWRkIGdhX2FwcGVuZChOVUwpIGluIHNjcmlwdF9nZXQoKSwgZ3VpX2RvX2ZpbmRyZXBsKCkgYW5kCgkgICAgc2VydmVyR2V0VmltTmFtZXMoKS4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL2d1aS5jLCBzcmMvaWZfeGNtZHNydi5jLCBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4zLjAyNSAoZXh0cmEpClByb2JsZW06ICAgIE1pc3NpbmcgTlVMIGZvciBsaXN0IG9mIHNlcnZlciBuYW1lcy4KU29sdXRpb246ICAgQWRkIGdhX2FwcGVuZChOVUwpIGluIHNlcnZlckdldFZpbU5hbWVzKCkuCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMy4wMjYKUHJvYmxlbTogICAgV2hlbiB+Ly52aW0vYWZ0ZXIvc3ludGF4L3N5bmNvbG9yLnZpbSBjb250YWlucyBhIGNvbW1hbmQgdGhhdAoJICAgIHJlbG9hZHMgdGhlIGNvbG9ycyBhbiBlbmRsZXNzIGxvb3AgYW5kL29yIGEgY3Jhc2ggbWF5IG9jY3VyLgpTb2x1dGlvbjogICBPbmx5IGZyZWUgdGhlIG9sZCB2YWx1ZSBvZiBhbiBvcHRpb24gd2hlbiBpdCB3YXMgb3JpZ2luYWxseQoJICAgIGFsbG9jYXRlZC4gIExpbWl0IHJlY3Vyc2l2ZW5lc3Mgb2YgaW5pdF9oaWdobGlnaHQoKSB0byA1IGxldmVscy4KRmlsZXM6CSAgICBzcmMvb3B0aW9uLmMsIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4zLjAyNwpQcm9ibGVtOiAgICBWTVM6IFdyaXRpbmcgYSBmaWxlIG1heSBpbnNlcnQgZXh0cmEgQ1IgY2hhcmFjdGVycy4gIE5vdCBhbGwKCSAgICB0ZXJtaW5hbHMgYXJlIHJlY29nbml6ZWQgY29ycmVjdGx5LiAgVnQzMjAgZG9lc24ndCBzdXBwb3J0IGNvbG9ycy4KCSAgICBFbnZpcm9ubWVudCB2YXJpYWJsZXMgYXJlIG5vdCBleHBhbmRlZCBjb3JyZWN0bHkuClNvbHV0aW9uOiAgIFVzZSBhbm90aGVyIG1ldGhvZCB0byB3cml0ZSBmaWxlcy4gIEFkZCB2dDMyMCB0ZXJtY2FwIGNvZGVzIGZvcgoJICAgIGNvbG9ycy4gIChab2x0YW4gQXJwYWRmZnkpCkZpbGVzOgkgICAgc3JjL2ZpbGVpby5jLCBzcmMvbWlzYzEuYywgc3JjL29zX3VuaXguYywgc3JjL3N0cnVjdHMuaCwKCSAgICBzcmMvdGVybS5jCgpQYXRjaCA2LjMuMDI4ClByb2JsZW06ICAgIFdoZW4gYXBwZW5kaW5nIHRvIGEgZmlsZSB0aGUgQk9NIG1hcmtlciBtYXkgYmUgd3JpdHRlbi4gIChBbGV4CgkgICAgSmFrdXNoZXYpClNvbHV0aW9uOiAgIERvIG5vdCB3cml0ZSB0aGUgQk9NIG1hcmtlciB3aGVuIGFwcGVuZGluZy4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMy4wMjkKUHJvYmxlbTogICAgQ3Jhc2ggd2hlbiBpbnNlcnRpbmcgYSBsaW5lIGJyZWFrLiAoV2FsdGVyIEJyaXNjb2UpClNvbHV0aW9uOiAgIEluIHRoZSBzeW50YXggaGlnaGxpZ2h0aW5nIGNvZGUsIGRvbid0IHVzZSBhbiBvbGQgc3RhdGUgYWZ0ZXIgYQoJICAgIGNoYW5nZSB3YXMgbWFkZSwgY3VycmVudF9jb2wgbWF5IGJlIHBhc3QgdGhlIGVuZCBvZiB0aGUgbGluZS4KRmlsZXM6CSAgICBzcmMvc3ludGF4LmMKClBhdGNoIDYuMy4wMzAKUHJvYmxlbTogICAgR1RLIDI6IENyYXNoIHdoZW4gc291cmNpbmcgYSBzY3JpcHQgdGhhdCBkZWxldGVzIHRoZSBtZW51cywgc2V0cwoJICAgICdlbmNvZGluZycgdG8gInV0Zi04IiBhbmQgbG9hZHMgdGhlIG1lbnVzIGFnYWluLiAgR1RLIGVycm9yCgkgICAgbWVzc2FnZSB3aGVuIHRvb2x0aXAgdGV4dCBpcyBpbiBhIHdyb25nIGVuY29kaW5nLgpTb2x1dGlvbjogICBEb24ndCBjb3B5IGNoYXJhY3RlcnMgZnJvbSB0aGUgb2xkIHNjcmVlbiB0byB0aGUgbmV3IHNjcmVlbiB3aGVuCgkgICAgc3dpdGNoaW5nICdlbmNvZGluZycgdG8gdXRmLTgsIHRoZXkgbWF5IGJlIGludmFsaWQuICBPbmx5IHNldCB0aGUKCSAgICB0b29sdGlwIHdoZW4gaXQgaXMgdmFsaWQgdXRmLTguCkZpbGVzOgkgICAgc3JjL2d1aV9ndGsuYywgc3JjL21ieXRlLmMsIHNyYy9wcm90by9tYnl0ZS5wcm8sIHNyYy9zY3JlZW4uYwoKUGF0Y2ggNi4zLjAzMQpQcm9ibGVtOiAgICBXaGVuIGVudGVyaW5nIGEgbWFwcGluZyBhbmQgcHJlc3NpbmcgVGFiIGhhbGZ3YXkgdGhlIGNvbW1hbmQgbGluZQoJICAgIGlzbid0IHJlZHJhd24gcHJvcGVybHkuIChBZHJpIFZlcmhvZWYpClNvbHV0aW9uOiAgIFJlcG9zaXRpb24gdGhlIGN1cnNvciBhZnRlciBkcmF3aW5nIG92ZXIgdGhlICIuLi4iIG9mIHRoZQoJICAgIGNvbXBsZXRpb24gYXR0ZW1wdC4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4zLjAzMgpQcm9ibGVtOiAgICBVc2luZyBQeXRob24gMi4zIHdpdGggdGhyZWFkcyBkb2Vzbid0IHdvcmsgcHJvcGVybHkuClNvbHV0aW9uOiAgIFJlbGVhc2UgdGhlIGxvY2sgYWZ0ZXIgaW5pdGlhbGl6YXRpb24uCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjMuMDMzClByb2JsZW06ICAgIFdoZW4gYSBtYXBwaW5nIGVuZHMgaW4gYSBOb3JtYWwgbW9kZSBjb21tYW5kIG9mIG1vcmUgdGhhbiBvbmUKCSAgICBjaGFyYWN0ZXIgVmltIGRvZXNuJ3QgcmV0dXJuIHRvIEluc2VydCBtb2RlLgpTb2x1dGlvbjogICBDaGVjayB0aGF0IHRoZSBtYXBwaW5nIGhhcyBlbmRlZCBhZnRlciBvYnRhaW5pbmcgYWxsIGNoYXJhY3RlcnMgb2YKCSAgICB0aGUgTm9ybWFsIG1vZGUgY29tbWFuZC4KRmlsZXM6CSAgICBzcmMvbm9ybWFsLmMKClBhdGNoIDYuMy4wMzQKUHJvYmxlbTogICAgVk1TOiBjcmFzaCB3aGVuIHVzaW5nICI6aGVscCIuClNvbHV0aW9uOiAgIEF2b2lkIHVzaW5nICJ0YWdzLT8/Iiwgc29tZSBPcGVuIFZNUyBzeXN0ZW1zIGNhbid0IGhhbmRsZSB0aGUgIj8iCgkgICAgd2lsZGNhcmQuICAoWm9sdGFuIEFycGFkZmZ5KQpGaWxlczoJICAgIHNyYy90YWcuYwoKUGF0Y2ggNi4zLjAzNSAoZXh0cmEpClByb2JsZW06ICAgIFJJU0MgT1M6IENvbXBpbGUgZXJyb3JzLgpTb2x1dGlvbjogICBDaGFuZ2UgZV9zY3Jlbm1vZGUgdG8gZV9zY3JlZW5tb2RlLiAgQ2hhbmdlIHRoZSB3YXkKCSAgICBfX3Jpc2Nvc2lmeV9jb250cm9sIGlzIHNldC4gIEltcHJvdmUgdGhlIG1ha2VmaWxlLiAgKEFuZHkgV2luZ2F0ZSkKRmlsZXM6CSAgICBzcmMvb3NfcmlzY29zLmMsIHNyYy9zZWFyY2guYywgc3JjL01ha2Vfcm8ubWFrCgpQYXRjaCA2LjMuMDM2ClByb2JsZW06ICAgIG1sX2dldCBlcnJvcnMgd2hlbiB0aGUgd2hvbGUgZmlsZSBpcyBhIGZvbGQsIHN3aXRjaGluZwoJICAgICdmb2xkbWV0aG9kJyBhbmQgZG9pbmcgInpqIi4gKENocmlzdGlhbiBKLiBSb2JpbnNvbikgV2FzIG5vdAoJICAgIGRlbGV0aW5nIHRoZSBmb2xkIGJ1dCBjcmVhdGluZyBhIGZvbGQgd2l0aCB6ZXJvIGxpbmVzLgpTb2x1dGlvbjogICBEZWxldGUgdGhlIGZvbGQgcHJvcGVybHkuCkZpbGVzOgkgICAgc3JjL2ZvbGQuYwoKUGF0Y2ggNi4zLjAzNyAoYWZ0ZXIgNi4zLjAzMikKUHJvYmxlbTogICAgV2FybmluZyBmb3IgdW51c2VkIHZhcmlhYmxlLgpTb2x1dGlvbjogICBDaGFuZ2UgdGhlICNpZmRlZnMgZm9yIHRoZSBzYXZlZCB0aHJlYWQgc3R1ZmYuCkZpbGVzOgkgICAgc3JjL2lmX3B5dGhvbi5jCgpQYXRjaCA2LjMuMDM4IChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdoZW4gdGhlICJmaWxlIGNoYW5nZWQiIGRpYWxvZyBwb3BzIHVwIGFmdGVyIGEgY2xpY2sgdGhhdAoJICAgIGdpdmVzIGd2aW0gZm9jdXMgYW5kIG5vdCBtb3ZpbmcgdGhlIG1vdXNlIGFmdGVyIHRoYXQsIHRoZSBlZmZlY3QKCSAgICBvZiB0aGUgY2xpY2sgbWF5IG9jY3VyIHdoZW4gbW92aW5nIHRoZSBtb3VzZSBsYXRlci4gKEtlbiBDbGFyaykKCSAgICBIYXBwZW5lZCBiZWNhdXNlIHRoZSByZWxlYXNlIGV2ZW50IHdhcyBtaXNzZWQuClNvbHV0aW9uOiAgIENsZWFyIHRoZSBzX2J1dHRvbl9wZW5kaW5nIHZhcmlhYmxlIHdoZW4gYW55IGlucHV0IGlzIHJlY2VpdmVkLgpGaWxlczoJICAgIHNyYy9ndWlfdzQ4LmMKClBhdGNoIDYuMy4wMzkKUHJvYmxlbTogICAgV2hlbiAnbnVtYmVyJyBpcyBzZXQgYW5kIGluc2VydGluZyBsaW5lcyBqdXN0IGFib3ZlIHRoZSBmaXJzdAoJICAgIGRpc3BsYXllZCBsaW5lIChpbiBhbm90aGVyIHdpbmRvdyBvbiB0aGUgc2FtZSBidWZmZXIpLCB0aGUgbGluZQoJICAgIG51bWJlcnMgYXJlIG5vdCB1cGRhdGVkLiAgKEhpdGllciBTeWx2YWluKQpTb2x1dGlvbjogICBXaGVuICdudW1iZXInIGlzIHNldCBhbmQgbGluZXMgYXJlIGluc2VydGVkL2RlbGV0ZWQgcmVkcmF3IGFsbAoJICAgIGxpbmVzIGJlbG93IHRoZSBjaGFuZ2UuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjMuMDQwClByb2JsZW06ICAgIEVycm9yIGhhbmRsaW5nIGRvZXMgbm90IGFsd2F5cyB3b3JrIHByb3Blcmx5IGFuZCBtYXkgY2F1c2UgYQoJICAgIGJ1ZmZlciB0byBiZSBtYXJrZWQgYXMgaWYgaXQncyB2aWV3ZWQgaW4gYSB3aW5kb3cgd2hpbGUgaXQgaXNuJ3QuCgkgICAgQWxzbyB3aGVuIHNlbGVjdGluZyAiQWJvcnQiIGF0IHRoZSBhdHRlbnRpb24gcHJvbXB0LgpTb2x1dGlvbjogICBBZGQgZW50ZXJfY2xlYW51cCgpIGFuZCBsZWF2ZV9jbGVhbnVwKCkgZnVuY3Rpb25zIHRvIG1vdmUKCSAgICBzYXZpbmcvcmVzdG9yaW5nIHRoaW5ncyBmb3IgZXJyb3IgaGFuZGxpbmcgdG8gb25lIHBsYWNlLgoJICAgIENsZWFyIGEgYnVmZmVyIHJlYWQgZXJyb3Igd2hlbiBpdCdzIHVubG9hZGVkLgpGaWxlczoJICAgIHNyYy9idWZmZXIuYywgc3JjL2V4X2RvY21kLmMsIHNyYy9leF9ldmFsLmMsCgkgICAgc3JjL3Byb3RvL2V4X2V2YWwucHJvLCBzcmMvc3RydWN0cy5oLCBzcmMvdmltLmgKClBhdGNoIDYuMy4wNDEgKGV4dHJhKQpQcm9ibGVtOiAgICBXaW4zMjogV2hlbiB0aGUgcGF0aCB0byBhIGZpbGUgaGFzIFJ1c3NpYW4gY2hhcmFjdGVycywgIjpjZCAlOnA6aCIKCSAgICBkb2Vzbid0IHdvcmsuIChWYWxlcnkgS29uZGFrb2ZmKQpTb2x1dGlvbjogICBVc2UgYSB3aWRlIGZ1bmN0aW9uIHRvIGNoYW5nZSBkaXJlY3RvcnkuCkZpbGVzOgkgICAgc3JjL29zX21zd2luLmMKClBhdGNoIDYuMy4wNDIKUHJvYmxlbTogICAgV2hlbiB0aGVyZSBpcyBhIGNsb3NlZCBmb2xkIGF0IHRoZSB0b3Agb2YgdGhlIHdpbmRvdywgQ1RSTC1YCgkgICAgQ1RSTC1FIGluIEluc2VydCBtb2RlIHJlZHVjZXMgdGhlIHNpemUgb2YgdGhlIGZvbGQgaW5zdGVhZCBvZgoJICAgIHNjcm9sbGluZyB0aGUgdGV4dCB1cC4gKEdhdXRhbSkKU29sdXRpb246ICAgU2Nyb2xsIG92ZXIgdGhlIGNsb3NlZCBmb2xkLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMKClBhdGNoIDYuMy4wNDMKUHJvYmxlbTogICAgJ2hsc2VhcmNoJyBoaWdobGlnaHRpbmcgc29tZXRpbWVzIGRpc2FwcGVhcnMgd2hlbiBpbnNlcnRpbmcgdGV4dAoJICAgIGluIFBIUCBjb2RlIHdpdGggc3ludGF4IGhpZ2hsaWdodGluZy4gKE1hcmNlbCBTdml0YWxza3kpClNvbHV0aW9uOiAgIERvbid0IHVzZSBwb2ludGVycyB0byByZW1lbWJlciB3aGVyZSBhIG1hdGNoIHdhcyBmb3VuZCwgdXNlIGFuCgkgICAgaW5kZXguICBUaGUgcG9pbnRlcnMgbWF5IGJlY29tZSBpbnZhbGlkIHdoZW4gc2VhcmNoaW5nIGluIG90aGVyCgkgICAgbGluZXMuCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjMuMDQ0IChleHRyYSkKUHJvYmxlbTogICAgTWFjOiBXaGVuICdsaW5lc3BhY2UnIGlzIG5vbi16ZXJvIHRoZSBJbnNlcnQgbW9kZSBjdXJzb3IgbGVhdmVzCgkgICAgcGl4ZWxzIGJlaGluZC4gKFJpY2hhcmQgU2FuZGlsYW5kcykKU29sdXRpb246ICAgRXJhc2UgdGhlIGNoYXJhY3RlciBjZWxsIGJlZm9yZSBkcmF3aW5nIHRoZSB0ZXh0IHdoZW4gbmVlZGVkLgpGaWxlczoJICAgIHNyYy9ndWlfbWFjLmMKCgpQYXRjaCA2LjMuMDQ1ClByb2JsZW06ICAgIFVudXN1YWwgY2hhcmFjdGVycyBpbiBhbiBvcHRpb24gdmFsdWUgbWF5IGNhdXNlIHVuZXhwZWN0ZWQKCSAgICBiZWhhdmlvciwgZXNwZWNpYWxseSBmb3IgYSBtb2RlbGluZS4gKENpYXJhbiBNY0NyZWVzaCkKU29sdXRpb246ICAgRG9uJ3QgYWxsb3cgc2V0dGluZyB0ZXJtY2FwIG9wdGlvbnMgb3IgJ3ByaW50ZGV2aWNlJyBpbiBhCgkgICAgbW9kZWxpbmUuICBEb24ndCBsaXN0IG9wdGlvbnMgZm9yICJ0ZXJtY2FwIiBhbmQgImFsbCIgaW4gYQoJICAgIG1vZGVsaW5lLiAgRG9uJ3QgYWxsb3cgdW51c3VhbCBjaGFyYWN0ZXJzIGluICdmaWxldHlwZScsICdzeW50YXgnLAoJICAgICdiYWNrdXBleHQnLCAna2V5bWFwJywgJ3BhdGNobW9kZScgYW5kICdsYW5nbWVudScuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jLCBydW50aW1lL2RvYy9vcHRpb25zLnR4dAoKUGF0Y2ggNi4zLjA0NgpQcm9ibGVtOiAgICAiOnJlZ2lzdGVycyIgZG9lc24ndCBzaG93IG11bHRpLWJ5dGUgY2hhcmFjdGVycyBwcm9wZXJseS4KCSAgICAoVmFsZXJ5IEtvbmRha29mZikKU29sdXRpb246ICAgR2V0IHRoZSBsZW5ndGggb2YgZWFjaCBjaGFyYWN0ZXIgYmVmb3JlIGRpc3BsYXlpbmcgaXQuCkZpbGVzOgkgICAgc3JjL29wcy5jCgpQYXRjaCA2LjMuMDQ3IChleHRyYSkKUHJvYmxlbTogICAgV2luMzIgd2l0aCBCb3JsYW5kIEMgNS41IG9uIFdpbmRvd3MgWFA6IEEgbmV3IGZpbGUgaXMgY3JlYXRlZCB3aXRoCgkgICAgcmVhZC1vbmx5IGF0dHJpYnV0ZXMuIChUb255IE1lY2hlbHluY2spClNvbHV0aW9uOiAgIERvbid0IHVzZSB0aGUgX3dvcGVuKCkgZnVuY3Rpb24gZm9yIEJvcmxhbmQuCkZpbGVzOgkgICAgc3JjL29zX3dpbjMyLmMKClBhdGNoIDYuMy4wNDggKGV4dHJhKQpQcm9ibGVtOiAgICBCdWlsZCBwcm9ibGVtcyB3aXRoIFZNUyBvbiBJQTY0LgpTb2x1dGlvbjogICBBZGQgZGVwZW5kZW5jaWVzIHRvIHRoZSBidWlsZCBmaWxlLiAoWm9sdGFuIEFycGFkZmZ5KQpGaWxlczoJICAgIHNyYy9NYWtlX3Ztcy5tbXMKClBhdGNoIDYuMy4wNDkgKGFmdGVyIDYuMy4wNDUpClByb2JsZW06ICAgIENvbXBpbGVyIHdhcm5pbmcgZm9yICJjaGFyIiB2cyAiY2hhcl91IiBtaXh1cC4gKFpvbHRhbiBBcnBhZGZmeSkKU29sdXRpb246ICAgQWRkIGEgdHlwZWNhc3QuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjMuMDUwClByb2JsZW06ICAgIFdoZW4gU0lHSFVQIGlzIHJlY2VpdmVkIHdoaWxlIGJ1c3kgZXhpdGluZywgbm9uLXJlZW50cmFudAoJICAgIGZ1bmN0aW9ucyBzdWNoIGFzIGZyZWUoKSBtYXkgY2F1c2UgYSBjcmFzaC4KU29sdXRpb246ICAgSWdub3JlIFNJR0hVUCB3aGVuIGV4aXRpbmcgYmVjYXVzZSBvZiBhbiBlcnJvci4gKFNjb3R0IEFuZGVyc29uKQpGaWxlczoJICAgIHNyYy9taXNjMS5jLCBzcmMvbWFpbi5jCgpQYXRjaCA2LjMuMDUxClByb2JsZW06ICAgIFdoZW4gJ3dpbGRtZW51JyBpcyBzZXQgYW5kIGNvbXBsZXRlZCBmaWxlIG5hbWVzIGNvbnRhaW4gbXVsdGktYnl0ZQoJICAgIGNoYXJhY3RlcnMgVmltIG1heSBjcmFzaC4KU29sdXRpb246ICAgUmVzZXJ2ZSByb29tIGZvciBtdWx0aS1ieXRlIGNoYXJhY3RlcnMuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL3NjcmVlbi5jCgpQYXRjaCA2LjMuMDUyIChleHRyYSkKUHJvYmxlbTogICAgV2luZG93cyA5ODogdHlwZWQga2V5cyB0aGF0IGFyZSBub3QgQVNDSUkgbWF5IG5vdCB3b3JrIHByb3Blcmx5LgoJICAgIEZvciBleGFtcGxlIHdpdGggYSBSdXNzaWFuIGlucHV0IG1ldGhvZC4gKEppcmkgSmV6ZGluc2t5KQpTb2x1dGlvbjogICBBc3N1bWUgdGhhdCB0aGUgY2hhcmFjdGVycyBhcnJpdmUgaW4gdGhlIGN1cnJlbnQgY29kZXBhZ2UgaW5zdGVhZAoJICAgIG9mIFVDUy0yLiAgUGVyZm9ybSBjb252ZXJzaW9uIGJhc2VkIG9uIHRoYXQuCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4zLjA1MwpQcm9ibGVtOiAgICBXaW4zMjogIjpsb2FkdmlldyIgY2Fubm90IGZpbmQgYSBmaWxlIHdpdGggbm9uLUFTQ0lJIGNoYXJhY3RlcnMuCgkgICAgKFZhbGVyaWUgS29uZGFrb2ZmKQpTb2x1dGlvbjogICBVc2UgbWNoX29wZW4oKSBpbnN0ZWFkIG9mIG9wZW4oKSB0byBvcGVuIHRoZSBmaWxlLgpGaWxlczoJICAgIHNyYy9leF9jbWRzMi5jCgpQYXRjaCA2LjMuMDU0ClByb2JsZW06ICAgIFdoZW4gJ2luc2VydG1vZGUnIGlzIHNldCA8Qy1MPjRpeHh4PEMtTD4gaGFuZ3MgVmltLiAoSmVucyBQYXVsdXMpCgkgICAgVmltIGlzIGFjdHVhbGx5IHN0aWxsIHdvcmtpbmcgYnV0IHJlZHJhdyBpcyBkaXNhYmxlZC4KU29sdXRpb246ICAgV2hlbiBzdG9wcGluZyBJbnNlcnQgbW9kZSB3aXRoIENUUkwtTCBkb24ndCBwdXQgYW4gRXNjIGluIHRoZSByZWRvCgkgICAgYnVmZmVyIGJ1dCBhIENUUkwtTC4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjMuMDU1IChhZnRlciA2LjMuMDEzKQpQcm9ibGVtOiAgICBDYW4ndCB1c2UgZ2V0Y21kbGluZSgpLCBnZXRjbWRwb3MoKSBvciBzZXRjbWRwb3MoKSB3aXRoIDxDLVI+PQoJICAgIHdoZW4gZWRpdGluZyBhIGNvbW1hbmQgbGluZS4gIFVzaW5nIDxDLVw+ZSBtYXkgY3Jhc2ggVmltLiAoUGV0ZXIKCSAgICBXaW50ZXJzKQpTb2x1dGlvbjogICBXaGVuIG1vdmluZyBjY2xpbmUgb3V0IG9mIHRoZSB3YXkgZm9yIHJlY3Vyc2l2ZSB1c2UsIG1ha2UgaXQKCSAgICBhdmFpbGFibGUgdG8gdGhlIGZ1bmN0aW9ucyB0aGF0IG5lZWQgaXQuICBBbHNvIHNhdmUgYW5kIHJlc3RvcmUKCSAgICBjY2xpbmUgd2hlbiBjYWxsaW5nIGdldF9leHByX2xpbmUoKS4gIE1ha2UgY2NsaW5lLmNtZGJ1ZiBOVUxMIGF0CgkgICAgdGhlIGVuZCBvZiBnZXRjbWRsaW5lKCkuCkZpbGVzOgkgICAgc3JjL2V4X2dldGxuLmMKClBhdGNoIDYuMy4wNTYKUHJvYmxlbTogICAgVGhlIGxhc3QgY2hhcmFjdGVycyBvZiBhIG11bHRpLWJ5dGUgZmlsZSBuYW1lIG1heSBub3QgYmUgZGlzcGxheWVkCgkgICAgaW4gdGhlIHdpbmRvdyB0aXRsZS4KU29sdXRpb246ICAgQXZvaWQgdG8gcmVtb3ZlIGEgbXVsdGktYnl0ZSBjaGFyYWN0ZXIgd2hlcmUgdGhlIGxhc3QgYnl0ZSBsb29rcwoJICAgIGxpa2UgYSBwYXRoIHNlcGFyYXRvciBjaGFyYWN0ZXIuIChZYXN1aGlybyBNYXRzdW1vdG8pCkZpbGVzOgkgICAgc3JjL2J1ZmZlci5jLCBzcmMvZXhfZ2V0bG4uYwoKUGF0Y2ggNi4zLjA1NwpQcm9ibGVtOiAgICBXaGVuIGZpbHRlcmluZyBsaW5lcyBmb2xkcyBhcmUgbm90IHVwZGF0ZWQuIChDYXJsIE9zdGVyd2lzY2gpClNvbHV0aW9uOiAgIFVwZGF0ZSBmb2xkcyBmb3IgZmlsdGVyZWQgbGluZXMuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4zLjA1OApQcm9ibGVtOiAgICBXaGVuICdmb2xkY29sdW1uJyBpcyBlcXVhbCB0byB0aGUgd2luZG93IHdpZHRoIGFuZCAnd3JhcCcgaXMgb24KCSAgICBWaW0gbWF5IGNyYXNoLiAgRGlzYWJsaW5nIHRoZSB2ZXJ0aWNhbCBzcGxpdCBmZWF0dXJlIGJyZWFrcwoJICAgIGNvbXBpbGluZy4gIChQZXRlciBXaW50ZXJzKQpTb2x1dGlvbjogICBDaGVjayBmb3IgemVybyByb29tIGZvciB3cmFwcGVkIHRleHQuICBNYWtlIGNvbXBpbGluZyB3aXRob3V0CgkgICAgdmVydGljYWwgc3BsaXRzIHBvc3NpYmxlLgpGaWxlczoJICAgIHNyYy9tb3ZlLmMsIHNyYy9xdWlja2ZpeC5jLCBzcmMvc2NyZWVuLmMsIHNyYy9uZXRiZWFucy5jCgpQYXRjaCA2LjMuMDU5ClByb2JsZW06ICAgIENyYXNoIHdoZW4gZXhwYW5kaW5nIGFuICI6ZWRpdCIgY29tbWFuZCBjb250YWluaW5nIHNldmVyYWwgc3BhY2VzCgkgICAgd2l0aCB0aGUgc2hlbGwuIChCcmlhbiBIaXJ0KQpTb2x1dGlvbjogICBBbGxvY2F0ZSBlbm91Z2ggc3BhY2UgZm9yIHRoZSBxdW90ZXMuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4zLjA2MApQcm9ibGVtOiAgICBVc2luZyBDVFJMLVIgQ1RSTC1PIGluIEluc2VydCBtb2RlIHdpdGggYW4gaW52YWxpZCByZWdpc3RlciBuYW1lCgkgICAgc3RpbGwgY2F1c2VzIHNvbWV0aGluZyB0byBiZSBpbnNlcnRlZC4KU29sdXRpb246ICAgQ2hlY2sgdGhlIHJlZ2lzdGVyIG5hbWUgZm9yIGJlaW5nIHZhbGlkLgpGaWxlczoJICAgIHNyYy9lZGl0LmMKClBhdGNoIDYuMy4wNjEKUHJvYmxlbTogICAgV2hlbiBlZGl0aW5nIGEgdXRmLTggZmlsZSBpbiBhbiB1dGYtOCB4dGVybSBhbmQgdGhlcmUgaXMgYQoJICAgIG11bHRpLWJ5dGUgY2hhcmFjdGVyIGluIHRoZSBsYXN0IGNvbHVtbiwgZGlzcGxheWluZyBpcyBtZXNzZWQgdXAuCgkgICAgKEpv62wgUmlvKQpTb2x1dGlvbjogICBDaGVjayBmb3IgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlciwgbm90IGEgbXVsdGktY29sdW1uIGNoYXJhY3Rlci4KRmlsZXM6CSAgICBzcmMvc2NyZWVuLmMKClBhdGNoIDYuMy4wNjIKUHJvYmxlbTogICAgIjpub3JtYWwhIGdRIiBoYW5ncy4KU29sdXRpb246ICAgUXVpdCBnZXRjbWRsaW5lKCkgYW5kIGRvX2V4bW9kZSgpIHdoZW4gb3V0IG9mIHR5cGVhaGVhZC4KRmlsZXM6CSAgICBzcmMvZXhfZ2V0bG4uYywgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMy4wNjMKUHJvYmxlbTogICAgV2hlbiBhIEN1cnNvckhvbGQgYXV0b2NvbW1hbmQgY2hhbmdlcyB0byBhbm90aGVyIHdpbmRvdwoJICAgICh0ZW1wb3JhcmlseSkgJ21vdXNlZm9jdXMnIHN0b3BzIHdvcmtpbmcuClNvbHV0aW9uOiAgIENhbGwgZ3VpX21vdXNlX2NvcnJlY3QoKSBhZnRlciB0cmlnZ2VyaW5nIEN1cnNvckhvbGQuCkZpbGVzOgkgICAgc3JjL2d1aS5jCgpQYXRjaCA2LjMuMDY0ClByb2JsZW06ICAgIGxpbmUyYnl0ZShsaW5lKCIkIikgKyAxKSBzb21ldGltZXMgcmV0dXJucyB0aGUgd3JvbmcgbnVtYmVyLgoJICAgIChDaGFybGVzIENhbXBiZWxsKQpTb2x1dGlvbjogICBGbHVzaCB0aGUgY2FjaGVkIGxpbmUgYmVmb3JlIGNvdW50aW5nIHRoZSBieXRlcy4KRmlsZXM6CSAgICBzcmMvbWVtbGluZS5jCgpQYXRjaCA2LjMuMDY1ClByb2JsZW06ICAgIFRoZSBldXJvIGRpZ3JhcGggZG9lc24ndCBhbHdheXMgd29yay4KU29sdXRpb246ICAgQWRkIGFuICJlPSIgZGlncmFwaCBmb3IgVW5pY29kZSBldXJvIGNoYXJhY3RlciBhbmQgYWRqdXN0IHRoZQoJICAgIGhlbHAgZmlsZXMuCkZpbGVzOgkgICAgc3JjL2RpZ3JhcGguYywgcnVudGltZS9kb2MvZGlncmFwaC50eHQKClBhdGNoIDYuMy4wNjYKUHJvYmxlbTogICAgQmFja3VwIGZpbGUgbWF5IGdldCB3cm9uZyBwZXJtaXNzaW9ucy4KU29sdXRpb246ICAgVXNlIHBlcm1pc3Npb25zIG9mIG9yaWdpbmFsIGZpbGUgZm9yIGJhY2t1cCBmaWxlIGluIG1vcmUgcGxhY2VzLgpGaWxlczoJICAgIHNyYy9maWxlaW8uYwoKUGF0Y2ggNi4zLjA2NyAoYWZ0ZXIgNi4zLjA2NikKUHJvYmxlbTogICAgTmV3bHkgY3JlYXRlZCBmaWxlIGdldHMgZXhlY3V0ZSBwZXJtaXNzaW9uLgpTb2x1dGlvbjogICBDaGVjayBmb3IgInBlcm0iIHRvIGJlIG5lZ2F0aXZlIGJlZm9yZSB1c2luZyBpdC4KRmlsZXM6CSAgICBzcmMvZmlsZWlvLmMKClBhdGNoIDYuMy4wNjgKUHJvYmxlbTogICAgV2hlbiBlZGl0aW5nIGEgY29tcHJlc3NlZCBmaWxlIHh4eC5neiB3aGljaCBpcyBhIHN5bWJvbGljIGxpbmsgdG8KCSAgICB0aGUgYWN0dWFsIGZpbGUgYSAiOndyaXRlIiByZW5hbWVzIHRoZSBsaW5rLgpTb2x1dGlvbjogICBSZXNvbHZlIHRoZSBsaW5rLCBzbyB0aGF0IHRoZSBhY3R1YWwgZmlsZSBpcyByZW5hbWVkIGFuZAoJICAgIGNvbXByZXNzZWQuCkZpbGVzOgkgICAgcnVudGltZS9wbHVnaW4vZ3ppcC52aW0KClBhdGNoIDYuMy4wNjkKUHJvYmxlbTogICAgV2hlbiBjb252ZXJ0aW5nIHRleHQgd2l0aCBpbGxlZ2FsIGNoYXJhY3RlcnMgVmltIG1heSBjcmFzaC4KU29sdXRpb246ICAgQXZvaWQgdGhhdCB0b28gbXVjaCBpcyBzdWJ0cmFjdGVkIGZyb20gdGhlIGxlbmd0aC4gKERhIFdvb24gSnVuZykKRmlsZXM6CSAgICBzcmMvbWJ5dGUuYwoKUGF0Y2ggNi4zLjA3MApQcm9ibGVtOiAgICBBZnRlciAiOnNldCBudW1iZXIgbGluZWJyZWFrIHdyYXAiIGFuZCBhIHZlcnRpY2FsIHNwbGl0LCBtb3ZpbmcKCSAgICB0aGUgdmVydGljYWwgc2VwYXJhdG9yIGZhciBsZWZ0IHdpbGwgY3Jhc2ggVmltLiAoR2VvcmcgRGFobikKU29sdXRpb246ICAgQXZvaWQgZGl2aWRpbmcgYnkgemVyby4KRmlsZXM6CSAgICBzcmMvY2hhcnNldC5jCgpQYXRjaCA2LjMuMDcxClByb2JsZW06ICAgIFRoZSBtZXNzYWdlIGZvciBDVFJMLVggbW9kZSBpcyBzdGlsbCBkaXNwbGF5ZWQgYWZ0ZXIgYW4gZXJyb3IgZm9yCgkgICAgJ3RoZXNhdXJ1cycgb3IgJ2RpY3Rpb25hcnknIGJlaW5nIGVtcHR5LgpTb2x1dGlvbjogICBDbGVhciAiZWRpdF9zdWJtb2RlIi4KRmlsZXM6CSAgICBzcmMvZWRpdC5jCgpQYXRjaCA2LjMuMDcyClByb2JsZW06ICAgIENyYXNoIGluIGdpdmluZyBzdWJzdGl0dXRlIG1lc3NhZ2Ugd2hlbiBsYW5ndWFnZSBpcyBDaGluZXNlIGFuZAoJICAgIGVuY29kaW5nIGlzIHV0Zi04LiAoWW9uZ3dlaSkKU29sdXRpb246ICAgTWFrZSB0aGUgbXNnX2J1ZiBzaXplIGxhcmdlciB3aGVuIHVzaW5nIG11bHRpLWJ5dGUuCkZpbGVzOgkgICAgc3JjL3ZpbS5oCgpQYXRjaCA2LjMuMDczClByb2JsZW06ICAgIFdpbjMyIEdVSTogV2hlbiB0aGUgVmltIHdpbmRvdyBpcyBwYXJ0bHkgYWJvdmUgb3IgYmVsb3cgdGhlCgkgICAgc2NyZWVuLCBzY3JvbGxpbmcgY2F1c2VzIGRpc3BsYXkgZXJyb3JzIHdoZW4gdGhlIHRhc2tiYXIgaXMgbm90IG9uCgkgICAgdGhhdCBzaWRlLgpTb2x1dGlvbjogICBVc2UgdGhlIFNXX0lOVkFMSURBVEUgZmxhZyB3aGVuIHRoZSBWaW0gd2luZG93IGlzIHBhcnRseSBiZWxvdyBvcgoJICAgIGFib3ZlIHRoZSBzY3JlZW4uCkZpbGVzOgkgICAgc3JjL2d1aV93NDguYwoKUGF0Y2ggNi4zLjA3NApQcm9ibGVtOiAgICBXaGVuIG1zd2luLnZpbSBpcyB1c2VkIGFuZCAnaW5zZXJ0bW9kZScgaXMgc2V0LCB0eXBpbmcgdGV4dCBpbgoJICAgIFNlbGVjdCBtb2RlIGFuZCB0aGVuIHVzaW5nIENUUkwtViByZXN1bHRzIGluIDxTTlI+OTlfUGFzdGVnaS4KCSAgICAoR2VvcmcgRGFobikKU29sdXRpb246ICAgV2hlbiByZXN0YXJ0X2VkaXQgaXMgc2V0IHVzZSAiZCIgaW5zdGVhZCBvZiAiYyIgdG8gcmVtb3ZlIHRoZQoJICAgIHNlbGVjdGVkIHRleHQgdG8gYXZvaWQgY2FsbGluZyBlZGl0KCkgdHdpY2UuCkZpbGVzOgkgICAgc3JjL25vcm1hbC5jCgpQYXRjaCA2LjMuMDc1ClByb2JsZW06ICAgIEFmdGVyIHVubG9hZGluZyBhbm90aGVyIGJ1ZmZlciwgc3ludGF4IGhpZ2hsaWdodGluZyBpbiB0aGUgY3VycmVudAoJICAgIGJ1ZmZlciBtYXkgYmUgd3Jvbmcgd2hlbiBpdCB1c2VzICJjb250YWluZWRpbiIuIChFcmljIEFybm9sZCkKU29sdXRpb246ICAgVXNlICJidWYiIGluc3RlYWQgb2YgImN1cmJ1ZiIgaW4gc3ludGF4X2NsZWFyKCkuCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjMuMDc2ClByb2JsZW06ICAgIENyYXNoIHdoZW4gdXNpbmcgY3Njb3BlIGFuZCB0aGVyZSBpcyBhIHBhcnNlIGVycm9yIChlLmcuLCBsaW5lIHRvbwoJICAgIGxvbmcpLiAoQWxleGV5IEkuIEZyb2xvZmYpClNvbHV0aW9uOiAgIFBhc3MgdGhlIGFjdHVhbCBudW1iZXIgb2YgbWF0Y2hlcyB0byBjc19tYW5hZ2VfbWF0Y2hlcygpIGFuZAoJICAgIGNvcnJlY3RseSBoYW5kbGUgdGhlIGVycm9yIHNpdHVhdGlvbi4KRmlsZXM6CSAgICBzcmMvaWZfY3Njb3BlLmMKClBhdGNoIDYuMy4wNzcgKGV4dHJhKQpQcm9ibGVtOiAgICBWTVM6IEZpcnN0IGNoYXJhY3RlciBpbnB1dCBhZnRlciBFU0Mgd2FzIG5vdCByZWNvZ25pemVkLgpTb2x1dGlvbjogICBBZGRlZCBUUk0kTV9UTV9USU1FRCBpbiB2bXNfcmVhZCgpLiAgKFpvbHRhbiBBcnBhZGZmeSkKRmlsZXM6CSAgICBzcmMvb3Nfdm1zLmMKClBhdGNoIDYuMy4wNzggKGV4dHJhLCBhZnRlciA2LjMuMDc3KQpQcm9ibGVtOiAgICBWTVM6IFBlcmZvcm1hbmNlIGlzc3VlIGFmdGVyIHBhdGNoIDYuMy4wNzcKU29sdXRpb246ICAgQWRkIGEgdGltZW91dCBpbiB0aGUgaXRlbWxpc3QuICAoWm9sdGFuIEFycGFkZmZ5KQpGaWxlczoJICAgIHNyYy9vc192bXMuYwoKUGF0Y2ggNi4zLjA3OQpQcm9ibGVtOiAgICBDcmFzaCB3aGVuIGV4ZWN1dGluZyBhIGNvbW1hbmQgaW4gdGhlIGNvbW1hbmQgbGluZSB3aW5kb3cgd2hpbGUKCSAgICBzeW50YXggaGlnaGxpZ2h0aW5nIGlzIGVuYWJsZWQuIChQZXJvIEJyYm9yYSkKU29sdXRpb246ICAgRG9uJ3QgdXNlIGEgcG9pbnRlciB0byBhIGJ1ZmZlciB0aGF0IGhhcyBiZWVuIGRlbGV0ZWQuCkZpbGVzOgkgICAgc3JjL3N5bnRheC5jCgpQYXRjaCA2LjMuMDgwIChleHRyYSkKUHJvYmxlbTogICAgV2luMzI6IFdpdGggJ2VuY29kaW5nJyBzZXQgdG8gdXRmLTggd2hpbGUgdGhlIGN1cnJlbnQgY29kZXBhZ2UgaXMKCSAgICBDaGluZXNlIGVkaXRpbmcgYSBmaWxlIHdpdGggc29tZSBzcGVjaWZpYyBjaGFyYWN0ZXJzIGluIHRoZSBuYW1lCgkgICAgZmFpbHMuClNvbHV0aW9uOiAgIFVzZSBfd2Z1bGxwYXRoKCkgaW5zdGVhZCBvZiBfZnVsbHBhdGgoKSB3aGVuIG5lY2Vzc2FyeS4KRmlsZXM6CSAgICBzcmMvb3NfbXN3aW4uYwoKUGF0Y2ggNi4zLjA4MQpQcm9ibGVtOiAgICBVbml4OiBnbG9iKCkgbWF5IGV4ZWN1dGUgYSBzaGVsbCBjb21tYW5kIHdoZW4gaXQncyBub3Qgd2FudGVkLgoJICAgIChHZW9yZ2kgR3VuaW5za2kpClNvbHV0aW9uOiAgIFZlcmlmeSB0aGUgc2FuZGJveCBmbGFnIGlzIG5vdCBzZXQuCkZpbGVzOgkgICAgc3JjL29zX3VuaXguYwoKUGF0Y2ggNi4zLjA4MiAoYWZ0ZXIgNi4zLjA4MSkKUHJvYmxlbTogICAgVW5peDogZXhwYW5kKCkgbWF5IGV4ZWN1dGUgYSBzaGVsbCBjb21tYW5kIHdoZW4gaXQncyBub3Qgd2FudGVkLgoJICAgIChHZW9yZ2kgR3VuaW5za2kpClNvbHV0aW9uOiAgIEEgbW9yZSBnZW5lcmljIHNvbHV0aW9uIHRoYW4gNi4zLjA4MS4KRmlsZXM6CSAgICBzcmMvb3NfdW5peC5jCgpQYXRjaCA2LjMuMDgzClByb2JsZW06ICAgIFZNUzogVGhlIHZ0MzIwIHRlcm1jYXAgZW50cnkgaXMgaW5jb21wbGV0ZS4KU29sdXRpb246ICAgQWRkIG1pc3NpbmcgZnVuY3Rpb24ga2V5cy4gIChab2x0YW4gQXJwYWRmZnkpCkZpbGVzOgkgICAgc3JjL3Rlcm0uYwoKUGF0Y2ggNi4zLjA4NCAoZXh0cmEpClByb2JsZW06ICAgIEN5Z3dpbjogY29tcGlsaW5nIHdpdGggREVCVUcgZG9lc24ndCB3b3JrLiAgUGVybCBwYXRoIHdhcyBpZ25vcmVkLgoJICAgIEZhaWx1cmUgd2hlbiAkKE9VVERJUikgYWxyZWFkeSBleGlzdHMuICAicG8iIG1ha2VmaWxlIGlzIG1pc3NpbmcuClNvbHV0aW9uOiAgIFVzZSBjaGFuZ2VzIHRlc3RlZCBpbiBWaW0gNy4gKFRvbnkgTWVjaGVseW5jaykKRmlsZXM6CSAgICBzcmMvTWFrZV9jeWcubWFrLCBzcmMvcG8vTWFrZV9jeWcubWFrCgpQYXRjaCA2LjMuMDg1ClByb2JsZW06ICAgIENyYXNoIGluIHN5bnRheCBoaWdobGlnaHRpbmcgY29kZS4gKE1hcmMgRXNwaWUpClNvbHV0aW9uOiAgIFByZXZlbnQgY3VycmVudF9jb2wgZ29pbmcgcGFzdCB0aGUgZW5kIG9mIHRoZSBsaW5lLgpGaWxlczoJICAgIHNyYy9zeW50YXguYwoKUGF0Y2ggNi4zLjA4NiAoZXh0cmEpClByb2JsZW06ICAgIENhbid0IHByb2R1Y2UgbWVzc2FnZSB0cmFuc2xhdGlvbiBmaWxlIHdpdGggbXNnZm10IHRoYXQgY2hlY2tzCgkgICAgcHJpbnRmIHN0cmluZ3MuClNvbHV0aW9uOiAgIEZpeCB0aGUgUnVzc2lhbiB0cmFuc2xhdGlvbi4KRmlsZXM6CSAgICBzcmMvcG8vcnUucG8sIHNyYy9wby9ydS5jcDEyNTEucG8KClBhdGNoIDYuMy4wODcKUHJvYmxlbTogICAgTVMtRE9TOiBDcmFzaC4gKEphc29uIEhvb2QpClNvbHV0aW9uOiAgIERvbid0IGNhbGwgZm5hbWVfY2FzZSgpIHdpdGggYSBOVUxMIHBvaW50ZXIuCkZpbGVzOgkgICAgc3JjL2V4X2NtZHMuYwoKUGF0Y2ggNi4zLjA4OApQcm9ibGVtOiAgICBFZGl0aW5nICIuaW4iIGNhdXNlcyBlcnJvciBFMjE4LiAoU3RlZmFuIEthcmxzc29uKQpTb2x1dGlvbjogICBSZXF1aXJlIHNvbWUgY2hhcmFjdGVycyBiZWZvcmUgIi5pbiIuICBTYW1lIGZvciAiLm9yaWciIGFuZCBvdGhlcnMuCkZpbGVzOgkgICAgcnVudGltZS9maWxldHlwZS52aW0KClBhdGNoIDYuMy4wODkKUHJvYmxlbTogICAgQSBzZXNzaW9uIGZpbGUgZG9lc24ndCB3b3JrIHdoZW4gY3JlYXRlZCB3aGlsZSB0aGUgY3VycmVudAoJICAgIGRpcmVjdG9yeSBjb250YWlucyBhIHNwYWNlIG9yIHRoZSBkaXJlY3Rvcnkgb2YgdGhlIHNlc3Npb24gZmlsZXMKCSAgICBjb250YWlucyBhIHNwYWNlLiAoUGFvbG8gR2lhcnJ1c3NvKQpTb2x1dGlvbjogICBFc2NhcGUgc3BhY2VzIHdpdGggYSBiYWNrc2xhc2guCkZpbGVzOgkgICAgc3JjL2V4X2RvY21kLmMKClBhdGNoIDYuMy4wOTAKUHJvYmxlbTogICAgQSB2ZXJ5IGJpZyB2YWx1ZSBmb3IgJ2NvbHVtbnMnIG9yICdsaW5lcycgbWF5IGNhdXNlIGEgY3Jhc2guClNvbHV0aW9uOiAgIExpbWl0IHRoZSB2YWx1ZXMgdG8gMTAwMDAgYW5kIDEwMDAuCkZpbGVzOgkgICAgc3JjL29wdGlvbi5jCgpQYXRjaCA2LjRhLjAwMQpQcm9ibGVtOiAgICBUaGUgVW5peCBNYWtlZmlsZSBjb250YWluZWQgdG9vIG1hbnkgZGVwZW5kZW5jaWVzIGFuZCBhIGZldwoJICAgIHVuY29tbWVudGVkIGxpbmVzLgpTb2x1dGlvbjogICBSdW4gIm1ha2UgZGVwZW5kIiB3aXRoIG1hbnVhbCBjaGFuZ2VzIHRvIGF2b2lkIGEgZ2NjCgkgICAgaW5jb21wYXRpYmlsaXR5LiAgQ29tbWVudCBhIGZldyBsaW5lcy4KRmlsZXM6CSAgICBzcmMvTWFrZWZpbGUKClBhdGNoIDYuNGIuMDAxClByb2JsZW06ICAgIFZpbSByZXBvcnRzICJWaW0gNi40YSIgaW4gdGhlICI6dmVyc2lvbiIgb3V0cHV0LgpTb2x1dGlvbjogICBDaGFuZ2UgImEiIHRvICJiIi4gKFRvbnkgTWVjaGVseW5jaykKRmlsZXM6CSAgICBzcmMvdmVyc2lvbi5oCgpQYXRjaCA2LjRiLjAwMgpQcm9ibGVtOiAgICBJbiBJbnNlcnQgbW9kZSwgcGFzdGluZyBhIG11bHRpLWJ5dGUgY2hhcmFjdGVyIGFmdGVyIHRoZSBlbmQgb2YKCSAgICB0aGUgbGluZSBsZWF2ZXMgdGhlIGN1cnNvciBqdXN0IGJlZm9yZSB0aGF0IGNoYXJhY3Rlci4KU29sdXRpb246ICAgTWFrZSBzdXJlICJnUCIgbGVhdmVzIHRoZSBjdXJzb3IgaW4gdGhlIHJpZ2h0IHBsYWNlIHdoZW4KCSAgICAndmlydHVhbGVkaXQnIGlzIHNldC4KRmlsZXM6CSAgICBzcmMvb3BzLmMKClBhdGNoIDYuNGIuMDAzIChhZnRlciA2LjRiLjAwMikKUHJvYmxlbTogICAgVGhlIHByb2JsZW0gc3RpbGwgZXhpc3RzIHdoZW4gJ2VuY29kaW5nJyBpcyBzZXQgdG8gImNwOTM2Ii4KU29sdXRpb246ICAgRml4IHRoZSBwcm9ibGVtIGluIGdldHZ2Y29sKCksIGNvbXB1dGUgdGhlIGNvbGFkZCBmaWVsZCBjb3JyZWN0bHkuCkZpbGVzOgkgICAgc3JjL2NoYXJzZXQuYywgc3JjL29wcy5jCgpQYXRjaCA2LjRiLjAwNApQcm9ibGVtOiAgICBTZWxlY3RpbmcgYSB7fSBibG9jayB3aXRoICJ2aUIiIGluY2x1ZGVzIHRoZSAnfScgd2hlbiB0aGVyZSBpcyBhbgoJICAgIGVtcHR5IGxpbmUgYmVmb3JlIGl0LgpTb2x1dGlvbjogICBEb24ndCBhZHZhbmNlIHRoZSBjdXJzb3IgdG8gaW5jbHVkZSBhIGxpbmUgYnJlYWsgd2hlbiBpdCdzIGFscmVhZHkKCSAgICBhdCB0aGUgbGluZSBicmVhay4KRmlsZXM6CSAgICBzcmMvc2VhcmNoLmMKCgogdmltOnR3PTc4OnRzPTg6ZnQ9aGVscDpub3JsOgo=