ZGlmZiAtLWdpdCBhL0NIQU5HRUxPRyBiL0NIQU5HRUxPRwppbmRleCA5ZjgzYzY1Li4zMTJhM2MxIDEwMDY0NAotLS0gYS9DSEFOR0VMT0cKKysrIGIvQ0hBTkdFTE9HCkBAIC00NSw3ICs0NSw3IEBACiAgICAgICAgICAgICAgICAgICBkbnNtYXNxIHRvIHNlcnZlIG5hbWVzIHRvIHRoZSBtYWNoaW5lIGl0IGlzIHJ1bm5pbmcKICAgICAgICAgICAgICAgICAgIG9uIChwdXQgbmFtZXNlcnZlciAxMjcuMC4wLjEgaW4gL2V0Yy9yZXNvbHYuY29uZiBhbmQKICAgICAgICAgICAgICAgICAgIGdpdmUgZG5zbWFzcSB0aGUgb3B0aW9uIC1yIC9ldGMvcmVzb2x2LmRuc21hc3EpCi0gICAgICAgICAgICAgICg2KSBEbnNtYXNxIHdpbGwgcmUtcmVhZCBpdCdzIHNlcnZlcnMgaWYgdGhlCisgICAgICAgICAgICAgICg2KSBEbnNtYXNxIHdpbGwgcmUtcmVhZCBpdHMgc2VydmVycyBpZiB0aGUKICAgICAgICAgICAgICAgICAgIG1vZGlmaWNhdGlvbiB0aW1lIG9mIHJlc29sdi5jb25mIGNoYW5nZXMuIEFsb25nIHdpdGgKICAgICAgICAgICAgICAgICAgIDQgYWJvdmUgdGhpcyBhbGxvd3MgbmFtZXNlcnZlcnMgdG8gYmUgc2V0CiAJCSAgYXV0b21hdGljYWxseSBieSBwcHAgb3IgZGhjcC4JIApAQCAtMTA3Niw3ICsxMDc2LDcgQEAKIAogCSAgICBOQUsgYXR0ZW1wdHMgdG8gcmVuZXcgYSBwb29sIERIQ1AgbGVhc2Ugd2hlbiBhIHN0YXRpY2FsbHkKIAkgICAgYWxsb2NhdGVkIGFkZHJlc3MgaGFzIGJlY29tZSBhdmFpbGFibGUsIGZvcmNpbmcgYSBob3N0IHRvCi0JICAgIG1vdmUgdG8gaXQncyBhbGxvY2F0ZWQgYWRkcmVzcy4gTG90cyBvZiBwZW9wbGUgaGF2ZQorCSAgICBtb3ZlIHRvIGl0cyBhbGxvY2F0ZWQgYWRkcmVzcy4gTG90cyBvZiBwZW9wbGUgaGF2ZQogCSAgICBzdWdnZXN0ZWQgdGhpcyBjaGFuZ2UgYW5kIGJlZW4gcmVidWZmZWQgKHRoZXkga25vdyB3aG8KIAkgICAgdGhleSBhcmUpIHRoZSBzdHJhd3MgdGhhdCBicm9rZSB0aGUgY2FtZWwncyBiYWNrIHdlcmUgVGltCiAJICAgIEN1dHRzIGFuZCBKYW1pZSBMb2tpZXIuCkBAIC0yMzQzLDUgKzIzNDMsMTI2IEBACiAJICAgIGluZXRkIGlzIGFsc28gbGlzdGVuaW5nIG9uIHRoZSBzYW1lIHBvcnQuIFRoYW5rcyB0byBFcmlrCiAJICAgIEJyb3duIGZvciBzcG90dGluZyB0aGUgcHJvYmxlbS4KIAordmVyc2lvbiAyLjQxCisgICAgICAgICAgICBSZW1vdmUgZGVwcmVjYXRlZCBjYWxscyB3aGVuIGNvbXBpbGVkIGFnYWluc3QgbGliZGJ1cyAxLjEuCisJICAgIAorCSAgICBGaXggInN0cmljdC1hbGlhcyIgd2FybmluZyBpbiBicGYuYworCisJICAgIFJlZHVjZSBkZXBlbmRlbmN5IG9uIEdudS1tYWtlIGluIGJ1aWxkIHN5c3RlbTogZG5zbWFzcSBub3cKKwkgICAgYnVpbGRzIHdpdGggc3lzdGVtIG1ha2UgdW5kZXIgT3BlbkJTRC4KKworCSAgICBQb3J0IHRvIFNvbGFyaXMuIERuc21hc3EgMS54IHVzZWQgdG8gcnVuIHVuZGVyIFNvbGFyaXMsCisJICAgIGFuZCB0aGlzIHJlbGVhc2UgZG9lcyBzbyBhZ2FpbiwgZm9yIFNvbGFyaXMgOSBvciBiZXR0ZXIuCisKKwkgICAgQWxsb3cgdGhlIEROUyBmdW5jdGlvbiB0byBiZSBjb21wbGV0ZWx5IGRpc2FibGVkLCBieQorCSAgICBzZXR0aW5nIHRoZSBwb3J0IHRvIHplcm8gIi0tcG9ydD0wIi4gVGhlIGFsbG93cyBkbnNtYXNxIHRvCisJICAgIGJlIHVzZWQgYXMgYSBzaW1wbGUgREhDUCBzZXJ2ZXIsIHNpbXBsZSBURlRQIHNlcnZlciwgb3IKKwkgICAgYm90aCwgYnV0IHdpdGhvdXQgdGhlIEROUyBzZXJ2ZXIgZ2V0dGluZyBpbiB0aGUgd2F5LgorCisJICAgIEZpeCBhIGJ1ZyB3aGVyZSBOWERPTUFJTiBjb3VsZCBiZSByZXR1cm5lZCBmb3IgYSBxdWVyeQorCSAgICBldmVuIGlmIHRoZSBuYW1lJ3MgdmFsdWUgd2FzIGtub3duIGZvciBhIGRpZmZlcmVudCBxdWVyeQorCSAgICB0eXBlLiBUaGlzIGJ1ZyBjb3VsZCBiZSBwcm9kZGVkIHdpdGggCisgICAgICAgICAgICAtLWxvY2FsPS9kb21haW4vIC0tYWRkcmVzcz0vbmFtZS5kb21haW4vMS4yLjMuNCAKKwkgICAgQW4gSVB2NiBxdWVyeSBmb3IgbmFtZS5kb21haW4gd291bGQgcmV0dXJuIE5YRE9NQUlOLCBhbmQKKwkgICAgbm90IHRoZSBjb3JyZWN0IE5PRVJST1IuIFRoYW5rcyB0byBMYXJzIE5vb2RlbiBmb3IKKwkgICAgc3BvdHRpbmcgdGhlIGJ1ZyBhbmQgSmltYSBmb3IgZGlhZ25vc2lzIG9mIHRoZSBwcm9ibGVtLgorCisJICAgIEFkZGVkIHBlci1zZXJ2ZXIgc3RhdHMgdG8gdGhlIGluZm9ybWF0aW9uIGxvZ2dlZCB3aGVuCisJICAgIGRuc21hc3EgZ2V0cyBTSUdVU1IxLgorCisJICAgIEFkZGVkIGNvdW50cyBvZiBxdWVyaWVzIGZvcndhcmRlZCBhbmQgcXVlcmllcyBhbnN3ZXJlZAorCSAgICBsb2NhbGx5IChmcm9tIHRoZSBjYWNoZSwgL2V0Yy9ob3N0cyBvciBjb25maWcpLgorCisJICAgIEZpeGVkIHBvc3NpYmxlIGNyYXNoIGJ1ZyBpbiBEQnVzIElQdjYgY29kZS4gVGhhbmtzIHRvIE1hdHQKKwkgICAgRG9tc2NoIGFuZCBKaW1hLgorCisJICAgIFRpZ2h0ZW4gY2hlY2tzIGZvciBjbGFzaGVzIGJldHdlZW4gaG9zdHMtZmlsZSBhbmQKKwkgICAgREhDUC1kZXJpdmVkIG5hbWVzLiBNdWx0aXBsZSBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIGEKKwkgICAgbmFtZSBpbiBob3N0cy1maWxlIG5vIGxvbmdlciBjb25mdXNlcyB0aGUgY2hlY2suCisKKwkgICAgQWRkIC0tZGhjcC1uby1vdmVycmlkZSBvcHRpb24gdG8gZml4IHByb2JsZW1zIHdpdGggc29tZQorCSAgICBjb21iaW5hdGlvbnMgb2Ygc3RhZ2UgemVybyBhbmQgc3RhZ2Ugb25lCisJICAgIGJvb3Rsb2FkZXJzLiBUaGFua3MgdG8gU3RldmUgQWxleGFuZGVyIGZvciB0aGUgYnVnIHJlcG9ydC4KKyAgCisJICAgIEFkZCAtLXRmdHAtcG9ydC1yYW5nZSBvcHRpb24uIFRoYW5rcyB0byBEYW5pZWwgTWllcnN3YSBmb3IKKwkgICAgdGhlIHN1Z2dlc3Rpb24uCisgCisJICAgIEFkZCAtLXN0b3AtZG5zLXJlYmluZCBvcHRpb24uIFRoYW5rcyB0byBDb2xsaW4gTXVsbGluZXIKKwkgICAgZm9yIHRoZSBwYXRjaC4KKworCSAgICBBZGRlZCBHUEwgdmVyc2lvbiAzIGFzIGEgbGljZW5zZSBvcHRpb24uCisgCisJICAgIEFkZGVkIC0tYWxsLXNlcnZlcnMgb3B0aW9uLiBUaGFua3MgdG8gUGV0ZXIgTmF1bGxzIGZvciB0aGUKKwkgICAgcGF0Y2guCisKKwkgICAgRXh0ZW5kIHNvdXJjZSBhZGRyZXNzIG1lY2hhbmlzbSBzbyB0aGF0IHRoZSBpbnRlcmZhY2UgdXNlZAorCSAgICB0byBjb250YWN0IGFuIHVwc3RyZWFtIEROUyBzZXJ2ZXIgY2FuIGJlIG5haWxlZAorCSAgICBkb3duLiBTb21ldGhpbmcgbGlrZSAiLS1zZXJ2ZXI9MS4yLjMuNEBldGgxIiB3aWxsIGZvcmNlCisJICAgIHRoZSB1c2Ugb2YgZXRoMSBmb3IgdHJhZmZpYyB0byBETlMtc2VydmVyIDEuMi4zLjQuIFRoaXMKKwkgICAgZmFjaWxpdHkgaXMgb25seSBhdmFpbGFibGUgb24gTGludXggYW5kIFNvbGFyaXMuIFRoYW5rcyB0bworCSAgICBQZXRlciBOYXVsbHMgZm9yIHByb21wdGluZyB0aGlzLgkgICAgIAorCQorCSAgICBBZGQgLS1kaGNwLW9wdHNmaWxlIG9wdGlvbi4gVGhhbmtzIHRvIENhcmxvcyBDYXJ2YWxobyBmb3IKKyAgICAgICAgICAgIHRoZSBzdWdnZXN0aW9uLgorCisJICAgIEZpeGVkIGZhaWx1cmUgdG8gc2V0IHNvdXJjZSBhZGRyZXNzIGZvciBzZXJ2ZXIgY29ubmVjdGlvbnMKKwkgICAgd2hlbiB1c2luZyBUQ1AuIFRoYW5rcyB0byBTaW1vbiBDYXBwZXIgZm9yIGZpbmRpbmcgdGhpcworCSAgICBidWcuCisKKwkgICAgUmVmdXNlIHRvIGdpdmUgYSBESENQIGNsaWVudCB0aGUgYWRkcmVzcyBpdCBhc2tzIGZvciBpZgorCSAgICB0aGUgYWRkcmVzcyByYW5nZSBpbiBxdWVzdGlvbiBpcyBub3QgYXZhaWxhYmxlIHRvIHRoYXQKKwkgICAgcGFydGljdWxhciBob3N0LiBUaGFua3MgdG8gQ2VkcmljIER1dmFsIGZvciB0aGUgYnVnCisJICAgIHJlcG9ydC4gCisKKwkgICAgQ2hhbmdlZCBiZWhhdmlvciBvZiBESENQIHNlcnZlciB0byBhbHdheXMgcmV0dXJuIHRvdGFsIGxlbmd0aCBvZgorCSAgICBhIG5ldyBsZWFzZSBpbiBESENQT0ZGRVIsIGV2ZW4gaWYgYW4gZXhpc3RpbmcgbGVhc2UKKwkgICAgZXhpc3RzLiAoSXQgdXNlZCB0byByZXR1cm4gdGhlIHRpbWUgcmVtYWluaW5nIG9uIHRoZSBsZWFzZQorCSAgICB3aG5lIG9uZSBleGlzdGVkLikgVGhpcyBmaXhlcyBwcm9ibGVtcyB3aXRoIHRoZSBTb255IEVyaWNzc29uCisJICAgIEs2MTBpIHBob25lLiBUaGFua3MgdG8gSGFrb24gU3RvcmRhaGwgZm9yIGZpbmRpbmcgYW5kCisJICAgIGZpeGluZyB0aGlzLgorCisJICAgIEFkZCBETlNNQVNRX0lOVEVSRkFDRSB0byB0aGUgZW52aXJvbm1lbnQgb2YgdGhlCisJICAgIGxlYXNlLWNoYW5nZSBzY3JpcHQuIFRoYW5rcyB0byBOaWtvcyBNYXZyb2dpYW5ub3BvdWxvcyBmb3IKKwkgICAgdGhlIHBhdGNoLgorCisJICAgIEZpeGVkIGJyb2tlbiAtLWFsaWFzIGZ1bmN0aW9uYWxpdHkuIFRoYW5rcyB0byBNaWNoYWVsCisJICAgIE1lZWxpcyBmb3IgdGhlIGJ1ZyByZXBvcnQuCisKKwkgICAgQWRkZWQgRnJlbmNoIHRyYW5zbGF0aW9uIG9mIHRoZSBtYW4gcGFnZS4gVGhhbmsgdG8gR2lsZGFzCisJICAgIExlIE5hZGFuIGZvciB0aGF0LgorCisJICAgIEFkZCAtLWRoY3AtbWF0Y2ggZmxhZywgdG8gY2hlY2sgZm9yIGFyYml0cmFyeSBvcHRpb25zIGluCisJICAgIERIQ1AgbWVzc2FnZXMgZnJvbSBjbGllbnRzLiBUaGlzIGVuYWJsZXMgdXNlIG9mIGRuc21hc3EKKwkgICAgd2l0aCBnUFhFLiBUaGFua3MgdG8gUmFuY2UgSGFsbCBmb3IgdGhlIHN1Z2dlc3Rpb24uCisKKwkgICAgQWRkZWQgLS1kaGNwLWJyb2FkY2FzdCwgdG8gZm9yY2UgYnJvYWRjYXN0IHJlcGxpZXMgdG8gREhDUAorCSAgICBjbGllbnRzIHdoaWNoIG5lZWQgdGhlbSBidXQgYXJlIHRvbyBkdW1iIG9yIHRvbyBvbGQgdG8KKwkgICAgYXNrLiBUaGFua3MgdG8gQm9kbyBCZWxsdXQgZm9yIHRoZSBzdWdnZXN0aW9uLgorCisJICAgIERpc2FibGUgcGF0aC1NVFUgZGlzY292ZXJ5IG9uIERIQ1AgYW5kIFRGVFAgc29ja2V0cy4gVGhpcworCSAgICBpcyBuZXZlciBuZWVkZWQsIGFuZCB0aGUgcHJlc2VuY2Ugb2YgREYgZmxhZ3MgaW4gdGhlIElQCisJICAgIGhlYWRlciBjb25mdXNlcyBzb21lIGJyb2tlbiBQWEUgUk9NUy4gVGhhbmtzIGFnYWluIHRvIEJvZG8KKwkgICAgQmVsbHV0IGZvciBzcG90dGluZyB0aGlzLgorCisJICAgIEZpeCBwcm9ibGVtcyB3aXRoIGFkZHJlc3NlcyB3aGljaCBoYXZlIG11bHRpcGxlIFBUUgorCSAgICByZWNvcmRzIC0gYWxsIGJ1dCBvbmUgb2YgdGhlc2UgY291bGQgZ2V0IGxvc3QuIAorCisJICAgIEZpeCBidWcgd2l0aCAtLWFkZHJlc3MgYW5kIEFOWSBxdWVyeSB0eXBlIHNlZWluZyBSRUZVU0VECisJICAgIHJldHVybiBjb2RlIGluIHJlcGxpZXMuIFRoYW5rcyB0byBNaWtlIFdyaWdodCBmb3Igc3BvdHRpbmcKKwkgICAgdGhlIHByb2JsZW0uCisKKwkgICAgVXBkYXRlIFNwYW5pc2ggdHJhbnNsYXRpb24uIFRoYW5rcyB0byBDaHJpcyBDaGF0aGFtLgorCisJICAgIEFkZCAtLW5lZy10dGwgb3B0aW9uLgorCSAgICAKKwkgICAgQWRkIHdhcm5pbmdzIGFib3V0IHRoZSBiYWQgZWZmZWN0cyBvZiAtLWZpbHRlcndpbjJrIG9uCisJICAgIFNJUCwgWE1QUCBhbmQgR29vZ2xlLXRhbGsgdG8gdGhlIGV4YW1wbGUgY29uZmlnIGZpbGUuCisJICAgIAorCSAgICBGaXggdmFfbGlzdCBhYnVzZSBpbiBsb2cuYy4gVGhpcyBmaXhlcyBjcmFzaGVzIG9uIHBvd2VycGMKKwkgICAgd2hlbiBkZWJ1ZyBtb2RlIGlzIHNldC4gVGhhbmtzIHRvIGNlZHJpYyBEdXZhbCBmb3IgdGhlCisJICAgIHBhdGNoLiAKIAogCisgCisKKwkgICAgCmRpZmYgLS1naXQgYS9DT1BZSU5HLXYzIGIvQ09QWUlORy12MwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NGE5ZWQwCi0tLSAvZGV2L251bGwKKysrIGIvQ09QWUlORy12MwpAQCAtMCwwICsxLDY3NCBAQAorICAgICAgICAgICAgICAgICAgICBHTlUgR0VORVJBTCBQVUJMSUMgTElDRU5TRQorICAgICAgICAgICAgICAgICAgICAgICBWZXJzaW9uIDMsIDI5IEp1bmUgMjAwNworCisgQ29weXJpZ2h0IChDKSAyMDA3IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiA8aHR0cDovL2ZzZi5vcmcvPgorIEV2ZXJ5b25lIGlzIHBlcm1pdHRlZCB0byBjb3B5IGFuZCBkaXN0cmlidXRlIHZlcmJhdGltIGNvcGllcworIG9mIHRoaXMgbGljZW5zZSBkb2N1bWVudCwgYnV0IGNoYW5naW5nIGl0IGlzIG5vdCBhbGxvd2VkLgorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgUHJlYW1ibGUKKworICBUaGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaXMgYSBmcmVlLCBjb3B5bGVmdCBsaWNlbnNlIGZvcgorc29mdHdhcmUgYW5kIG90aGVyIGtpbmRzIG9mIHdvcmtzLgorCisgIFRoZSBsaWNlbnNlcyBmb3IgbW9zdCBzb2Z0d2FyZSBhbmQgb3RoZXIgcHJhY3RpY2FsIHdvcmtzIGFyZSBkZXNpZ25lZAordG8gdGFrZSBhd2F5IHlvdXIgZnJlZWRvbSB0byBzaGFyZSBhbmQgY2hhbmdlIHRoZSB3b3Jrcy4gIEJ5IGNvbnRyYXN0LAordGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGlzIGludGVuZGVkIHRvIGd1YXJhbnRlZSB5b3VyIGZyZWVkb20gdG8KK3NoYXJlIGFuZCBjaGFuZ2UgYWxsIHZlcnNpb25zIG9mIGEgcHJvZ3JhbS0tdG8gbWFrZSBzdXJlIGl0IHJlbWFpbnMgZnJlZQorc29mdHdhcmUgZm9yIGFsbCBpdHMgdXNlcnMuICBXZSwgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgdXNlIHRoZQorR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vc3Qgb2Ygb3VyIHNvZnR3YXJlOyBpdCBhcHBsaWVzIGFsc28gdG8KK2FueSBvdGhlciB3b3JrIHJlbGVhc2VkIHRoaXMgd2F5IGJ5IGl0cyBhdXRob3JzLiAgWW91IGNhbiBhcHBseSBpdCB0bworeW91ciBwcm9ncmFtcywgdG9vLgorCisgIFdoZW4gd2Ugc3BlYWsgb2YgZnJlZSBzb2Z0d2FyZSwgd2UgYXJlIHJlZmVycmluZyB0byBmcmVlZG9tLCBub3QKK3ByaWNlLiAgT3VyIEdlbmVyYWwgUHVibGljIExpY2Vuc2VzIGFyZSBkZXNpZ25lZCB0byBtYWtlIHN1cmUgdGhhdCB5b3UKK2hhdmUgdGhlIGZyZWVkb20gdG8gZGlzdHJpYnV0ZSBjb3BpZXMgb2YgZnJlZSBzb2Z0d2FyZSAoYW5kIGNoYXJnZSBmb3IKK3RoZW0gaWYgeW91IHdpc2gpLCB0aGF0IHlvdSByZWNlaXZlIHNvdXJjZSBjb2RlIG9yIGNhbiBnZXQgaXQgaWYgeW91Cit3YW50IGl0LCB0aGF0IHlvdSBjYW4gY2hhbmdlIHRoZSBzb2Z0d2FyZSBvciB1c2UgcGllY2VzIG9mIGl0IGluIG5ldworZnJlZSBwcm9ncmFtcywgYW5kIHRoYXQgeW91IGtub3cgeW91IGNhbiBkbyB0aGVzZSB0aGluZ3MuCisKKyAgVG8gcHJvdGVjdCB5b3VyIHJpZ2h0cywgd2UgbmVlZCB0byBwcmV2ZW50IG90aGVycyBmcm9tIGRlbnlpbmcgeW91Cit0aGVzZSByaWdodHMgb3IgYXNraW5nIHlvdSB0byBzdXJyZW5kZXIgdGhlIHJpZ2h0cy4gIFRoZXJlZm9yZSwgeW91IGhhdmUKK2NlcnRhaW4gcmVzcG9uc2liaWxpdGllcyBpZiB5b3UgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlIHNvZnR3YXJlLCBvciBpZgoreW91IG1vZGlmeSBpdDogcmVzcG9uc2liaWxpdGllcyB0byByZXNwZWN0IHRoZSBmcmVlZG9tIG9mIG90aGVycy4KKworICBGb3IgZXhhbXBsZSwgaWYgeW91IGRpc3RyaWJ1dGUgY29waWVzIG9mIHN1Y2ggYSBwcm9ncmFtLCB3aGV0aGVyCitncmF0aXMgb3IgZm9yIGEgZmVlLCB5b3UgbXVzdCBwYXNzIG9uIHRvIHRoZSByZWNpcGllbnRzIHRoZSBzYW1lCitmcmVlZG9tcyB0aGF0IHlvdSByZWNlaXZlZC4gIFlvdSBtdXN0IG1ha2Ugc3VyZSB0aGF0IHRoZXksIHRvbywgcmVjZWl2ZQorb3IgY2FuIGdldCB0aGUgc291cmNlIGNvZGUuICBBbmQgeW91IG11c3Qgc2hvdyB0aGVtIHRoZXNlIHRlcm1zIHNvIHRoZXkKK2tub3cgdGhlaXIgcmlnaHRzLgorCisgIERldmVsb3BlcnMgdGhhdCB1c2UgdGhlIEdOVSBHUEwgcHJvdGVjdCB5b3VyIHJpZ2h0cyB3aXRoIHR3byBzdGVwczoKKygxKSBhc3NlcnQgY29weXJpZ2h0IG9uIHRoZSBzb2Z0d2FyZSwgYW5kICgyKSBvZmZlciB5b3UgdGhpcyBMaWNlbnNlCitnaXZpbmcgeW91IGxlZ2FsIHBlcm1pc3Npb24gdG8gY29weSwgZGlzdHJpYnV0ZSBhbmQvb3IgbW9kaWZ5IGl0LgorCisgIEZvciB0aGUgZGV2ZWxvcGVycycgYW5kIGF1dGhvcnMnIHByb3RlY3Rpb24sIHRoZSBHUEwgY2xlYXJseSBleHBsYWlucwordGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhpcyBmcmVlIHNvZnR3YXJlLiAgRm9yIGJvdGggdXNlcnMnIGFuZAorYXV0aG9ycycgc2FrZSwgdGhlIEdQTCByZXF1aXJlcyB0aGF0IG1vZGlmaWVkIHZlcnNpb25zIGJlIG1hcmtlZCBhcworY2hhbmdlZCwgc28gdGhhdCB0aGVpciBwcm9ibGVtcyB3aWxsIG5vdCBiZSBhdHRyaWJ1dGVkIGVycm9uZW91c2x5IHRvCithdXRob3JzIG9mIHByZXZpb3VzIHZlcnNpb25zLgorCisgIFNvbWUgZGV2aWNlcyBhcmUgZGVzaWduZWQgdG8gZGVueSB1c2VycyBhY2Nlc3MgdG8gaW5zdGFsbCBvciBydW4KK21vZGlmaWVkIHZlcnNpb25zIG9mIHRoZSBzb2Z0d2FyZSBpbnNpZGUgdGhlbSwgYWx0aG91Z2ggdGhlIG1hbnVmYWN0dXJlcgorY2FuIGRvIHNvLiAgVGhpcyBpcyBmdW5kYW1lbnRhbGx5IGluY29tcGF0aWJsZSB3aXRoIHRoZSBhaW0gb2YKK3Byb3RlY3RpbmcgdXNlcnMnIGZyZWVkb20gdG8gY2hhbmdlIHRoZSBzb2Z0d2FyZS4gIFRoZSBzeXN0ZW1hdGljCitwYXR0ZXJuIG9mIHN1Y2ggYWJ1c2Ugb2NjdXJzIGluIHRoZSBhcmVhIG9mIHByb2R1Y3RzIGZvciBpbmRpdmlkdWFscyB0bwordXNlLCB3aGljaCBpcyBwcmVjaXNlbHkgd2hlcmUgaXQgaXMgbW9zdCB1bmFjY2VwdGFibGUuICBUaGVyZWZvcmUsIHdlCitoYXZlIGRlc2lnbmVkIHRoaXMgdmVyc2lvbiBvZiB0aGUgR1BMIHRvIHByb2hpYml0IHRoZSBwcmFjdGljZSBmb3IgdGhvc2UKK3Byb2R1Y3RzLiAgSWYgc3VjaCBwcm9ibGVtcyBhcmlzZSBzdWJzdGFudGlhbGx5IGluIG90aGVyIGRvbWFpbnMsIHdlCitzdGFuZCByZWFkeSB0byBleHRlbmQgdGhpcyBwcm92aXNpb24gdG8gdGhvc2UgZG9tYWlucyBpbiBmdXR1cmUgdmVyc2lvbnMKK29mIHRoZSBHUEwsIGFzIG5lZWRlZCB0byBwcm90ZWN0IHRoZSBmcmVlZG9tIG9mIHVzZXJzLgorCisgIEZpbmFsbHksIGV2ZXJ5IHByb2dyYW0gaXMgdGhyZWF0ZW5lZCBjb25zdGFudGx5IGJ5IHNvZnR3YXJlIHBhdGVudHMuCitTdGF0ZXMgc2hvdWxkIG5vdCBhbGxvdyBwYXRlbnRzIHRvIHJlc3RyaWN0IGRldmVsb3BtZW50IGFuZCB1c2Ugb2YKK3NvZnR3YXJlIG9uIGdlbmVyYWwtcHVycG9zZSBjb21wdXRlcnMsIGJ1dCBpbiB0aG9zZSB0aGF0IGRvLCB3ZSB3aXNoIHRvCithdm9pZCB0aGUgc3BlY2lhbCBkYW5nZXIgdGhhdCBwYXRlbnRzIGFwcGxpZWQgdG8gYSBmcmVlIHByb2dyYW0gY291bGQKK21ha2UgaXQgZWZmZWN0aXZlbHkgcHJvcHJpZXRhcnkuICBUbyBwcmV2ZW50IHRoaXMsIHRoZSBHUEwgYXNzdXJlcyB0aGF0CitwYXRlbnRzIGNhbm5vdCBiZSB1c2VkIHRvIHJlbmRlciB0aGUgcHJvZ3JhbSBub24tZnJlZS4KKworICBUaGUgcHJlY2lzZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgY29weWluZywgZGlzdHJpYnV0aW9uIGFuZAorbW9kaWZpY2F0aW9uIGZvbGxvdy4KKworICAgICAgICAgICAgICAgICAgICAgICBURVJNUyBBTkQgQ09ORElUSU9OUworCisgIDAuIERlZmluaXRpb25zLgorCisgICJUaGlzIExpY2Vuc2UiIHJlZmVycyB0byB2ZXJzaW9uIDMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLgorCisgICJDb3B5cmlnaHQiIGFsc28gbWVhbnMgY29weXJpZ2h0LWxpa2UgbGF3cyB0aGF0IGFwcGx5IHRvIG90aGVyIGtpbmRzIG9mCit3b3Jrcywgc3VjaCBhcyBzZW1pY29uZHVjdG9yIG1hc2tzLgorCisgICJUaGUgUHJvZ3JhbSIgcmVmZXJzIHRvIGFueSBjb3B5cmlnaHRhYmxlIHdvcmsgbGljZW5zZWQgdW5kZXIgdGhpcworTGljZW5zZS4gIEVhY2ggbGljZW5zZWUgaXMgYWRkcmVzc2VkIGFzICJ5b3UiLiAgIkxpY2Vuc2VlcyIgYW5kCisicmVjaXBpZW50cyIgbWF5IGJlIGluZGl2aWR1YWxzIG9yIG9yZ2FuaXphdGlvbnMuCisKKyAgVG8gIm1vZGlmeSIgYSB3b3JrIG1lYW5zIHRvIGNvcHkgZnJvbSBvciBhZGFwdCBhbGwgb3IgcGFydCBvZiB0aGUgd29yaworaW4gYSBmYXNoaW9uIHJlcXVpcmluZyBjb3B5cmlnaHQgcGVybWlzc2lvbiwgb3RoZXIgdGhhbiB0aGUgbWFraW5nIG9mIGFuCitleGFjdCBjb3B5LiAgVGhlIHJlc3VsdGluZyB3b3JrIGlzIGNhbGxlZCBhICJtb2RpZmllZCB2ZXJzaW9uIiBvZiB0aGUKK2VhcmxpZXIgd29yayBvciBhIHdvcmsgImJhc2VkIG9uIiB0aGUgZWFybGllciB3b3JrLgorCisgIEEgImNvdmVyZWQgd29yayIgbWVhbnMgZWl0aGVyIHRoZSB1bm1vZGlmaWVkIFByb2dyYW0gb3IgYSB3b3JrIGJhc2VkCitvbiB0aGUgUHJvZ3JhbS4KKworICBUbyAicHJvcGFnYXRlIiBhIHdvcmsgbWVhbnMgdG8gZG8gYW55dGhpbmcgd2l0aCBpdCB0aGF0LCB3aXRob3V0CitwZXJtaXNzaW9uLCB3b3VsZCBtYWtlIHlvdSBkaXJlY3RseSBvciBzZWNvbmRhcmlseSBsaWFibGUgZm9yCitpbmZyaW5nZW1lbnQgdW5kZXIgYXBwbGljYWJsZSBjb3B5cmlnaHQgbGF3LCBleGNlcHQgZXhlY3V0aW5nIGl0IG9uIGEKK2NvbXB1dGVyIG9yIG1vZGlmeWluZyBhIHByaXZhdGUgY29weS4gIFByb3BhZ2F0aW9uIGluY2x1ZGVzIGNvcHlpbmcsCitkaXN0cmlidXRpb24gKHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb24pLCBtYWtpbmcgYXZhaWxhYmxlIHRvIHRoZQorcHVibGljLCBhbmQgaW4gc29tZSBjb3VudHJpZXMgb3RoZXIgYWN0aXZpdGllcyBhcyB3ZWxsLgorCisgIFRvICJjb252ZXkiIGEgd29yayBtZWFucyBhbnkga2luZCBvZiBwcm9wYWdhdGlvbiB0aGF0IGVuYWJsZXMgb3RoZXIKK3BhcnRpZXMgdG8gbWFrZSBvciByZWNlaXZlIGNvcGllcy4gIE1lcmUgaW50ZXJhY3Rpb24gd2l0aCBhIHVzZXIgdGhyb3VnaAorYSBjb21wdXRlciBuZXR3b3JrLCB3aXRoIG5vIHRyYW5zZmVyIG9mIGEgY29weSwgaXMgbm90IGNvbnZleWluZy4KKworICBBbiBpbnRlcmFjdGl2ZSB1c2VyIGludGVyZmFjZSBkaXNwbGF5cyAiQXBwcm9wcmlhdGUgTGVnYWwgTm90aWNlcyIKK3RvIHRoZSBleHRlbnQgdGhhdCBpdCBpbmNsdWRlcyBhIGNvbnZlbmllbnQgYW5kIHByb21pbmVudGx5IHZpc2libGUKK2ZlYXR1cmUgdGhhdCAoMSkgZGlzcGxheXMgYW4gYXBwcm9wcmlhdGUgY29weXJpZ2h0IG5vdGljZSwgYW5kICgyKQordGVsbHMgdGhlIHVzZXIgdGhhdCB0aGVyZSBpcyBubyB3YXJyYW50eSBmb3IgdGhlIHdvcmsgKGV4Y2VwdCB0byB0aGUKK2V4dGVudCB0aGF0IHdhcnJhbnRpZXMgYXJlIHByb3ZpZGVkKSwgdGhhdCBsaWNlbnNlZXMgbWF5IGNvbnZleSB0aGUKK3dvcmsgdW5kZXIgdGhpcyBMaWNlbnNlLCBhbmQgaG93IHRvIHZpZXcgYSBjb3B5IG9mIHRoaXMgTGljZW5zZS4gIElmCit0aGUgaW50ZXJmYWNlIHByZXNlbnRzIGEgbGlzdCBvZiB1c2VyIGNvbW1hbmRzIG9yIG9wdGlvbnMsIHN1Y2ggYXMgYQorbWVudSwgYSBwcm9taW5lbnQgaXRlbSBpbiB0aGUgbGlzdCBtZWV0cyB0aGlzIGNyaXRlcmlvbi4KKworICAxLiBTb3VyY2UgQ29kZS4KKworICBUaGUgInNvdXJjZSBjb2RlIiBmb3IgYSB3b3JrIG1lYW5zIHRoZSBwcmVmZXJyZWQgZm9ybSBvZiB0aGUgd29yaworZm9yIG1ha2luZyBtb2RpZmljYXRpb25zIHRvIGl0LiAgIk9iamVjdCBjb2RlIiBtZWFucyBhbnkgbm9uLXNvdXJjZQorZm9ybSBvZiBhIHdvcmsuCisKKyAgQSAiU3RhbmRhcmQgSW50ZXJmYWNlIiBtZWFucyBhbiBpbnRlcmZhY2UgdGhhdCBlaXRoZXIgaXMgYW4gb2ZmaWNpYWwKK3N0YW5kYXJkIGRlZmluZWQgYnkgYSByZWNvZ25pemVkIHN0YW5kYXJkcyBib2R5LCBvciwgaW4gdGhlIGNhc2Ugb2YKK2ludGVyZmFjZXMgc3BlY2lmaWVkIGZvciBhIHBhcnRpY3VsYXIgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UsIG9uZSB0aGF0CitpcyB3aWRlbHkgdXNlZCBhbW9uZyBkZXZlbG9wZXJzIHdvcmtpbmcgaW4gdGhhdCBsYW5ndWFnZS4KKworICBUaGUgIlN5c3RlbSBMaWJyYXJpZXMiIG9mIGFuIGV4ZWN1dGFibGUgd29yayBpbmNsdWRlIGFueXRoaW5nLCBvdGhlcgordGhhbiB0aGUgd29yayBhcyBhIHdob2xlLCB0aGF0IChhKSBpcyBpbmNsdWRlZCBpbiB0aGUgbm9ybWFsIGZvcm0gb2YKK3BhY2thZ2luZyBhIE1ham9yIENvbXBvbmVudCwgYnV0IHdoaWNoIGlzIG5vdCBwYXJ0IG9mIHRoYXQgTWFqb3IKK0NvbXBvbmVudCwgYW5kIChiKSBzZXJ2ZXMgb25seSB0byBlbmFibGUgdXNlIG9mIHRoZSB3b3JrIHdpdGggdGhhdAorTWFqb3IgQ29tcG9uZW50LCBvciB0byBpbXBsZW1lbnQgYSBTdGFuZGFyZCBJbnRlcmZhY2UgZm9yIHdoaWNoIGFuCitpbXBsZW1lbnRhdGlvbiBpcyBhdmFpbGFibGUgdG8gdGhlIHB1YmxpYyBpbiBzb3VyY2UgY29kZSBmb3JtLiAgQQorIk1ham9yIENvbXBvbmVudCIsIGluIHRoaXMgY29udGV4dCwgbWVhbnMgYSBtYWpvciBlc3NlbnRpYWwgY29tcG9uZW50Cisoa2VybmVsLCB3aW5kb3cgc3lzdGVtLCBhbmQgc28gb24pIG9mIHRoZSBzcGVjaWZpYyBvcGVyYXRpbmcgc3lzdGVtCisoaWYgYW55KSBvbiB3aGljaCB0aGUgZXhlY3V0YWJsZSB3b3JrIHJ1bnMsIG9yIGEgY29tcGlsZXIgdXNlZCB0bworcHJvZHVjZSB0aGUgd29yaywgb3IgYW4gb2JqZWN0IGNvZGUgaW50ZXJwcmV0ZXIgdXNlZCB0byBydW4gaXQuCisKKyAgVGhlICJDb3JyZXNwb25kaW5nIFNvdXJjZSIgZm9yIGEgd29yayBpbiBvYmplY3QgY29kZSBmb3JtIG1lYW5zIGFsbAordGhlIHNvdXJjZSBjb2RlIG5lZWRlZCB0byBnZW5lcmF0ZSwgaW5zdGFsbCwgYW5kIChmb3IgYW4gZXhlY3V0YWJsZQord29yaykgcnVuIHRoZSBvYmplY3QgY29kZSBhbmQgdG8gbW9kaWZ5IHRoZSB3b3JrLCBpbmNsdWRpbmcgc2NyaXB0cyB0bworY29udHJvbCB0aG9zZSBhY3Rpdml0aWVzLiAgSG93ZXZlciwgaXQgZG9lcyBub3QgaW5jbHVkZSB0aGUgd29yaydzCitTeXN0ZW0gTGlicmFyaWVzLCBvciBnZW5lcmFsLXB1cnBvc2UgdG9vbHMgb3IgZ2VuZXJhbGx5IGF2YWlsYWJsZSBmcmVlCitwcm9ncmFtcyB3aGljaCBhcmUgdXNlZCB1bm1vZGlmaWVkIGluIHBlcmZvcm1pbmcgdGhvc2UgYWN0aXZpdGllcyBidXQKK3doaWNoIGFyZSBub3QgcGFydCBvZiB0aGUgd29yay4gIEZvciBleGFtcGxlLCBDb3JyZXNwb25kaW5nIFNvdXJjZQoraW5jbHVkZXMgaW50ZXJmYWNlIGRlZmluaXRpb24gZmlsZXMgYXNzb2NpYXRlZCB3aXRoIHNvdXJjZSBmaWxlcyBmb3IKK3RoZSB3b3JrLCBhbmQgdGhlIHNvdXJjZSBjb2RlIGZvciBzaGFyZWQgbGlicmFyaWVzIGFuZCBkeW5hbWljYWxseQorbGlua2VkIHN1YnByb2dyYW1zIHRoYXQgdGhlIHdvcmsgaXMgc3BlY2lmaWNhbGx5IGRlc2lnbmVkIHRvIHJlcXVpcmUsCitzdWNoIGFzIGJ5IGludGltYXRlIGRhdGEgY29tbXVuaWNhdGlvbiBvciBjb250cm9sIGZsb3cgYmV0d2VlbiB0aG9zZQorc3VicHJvZ3JhbXMgYW5kIG90aGVyIHBhcnRzIG9mIHRoZSB3b3JrLgorCisgIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBuZWVkIG5vdCBpbmNsdWRlIGFueXRoaW5nIHRoYXQgdXNlcnMKK2NhbiByZWdlbmVyYXRlIGF1dG9tYXRpY2FsbHkgZnJvbSBvdGhlciBwYXJ0cyBvZiB0aGUgQ29ycmVzcG9uZGluZworU291cmNlLgorCisgIFRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSBmb3IgYSB3b3JrIGluIHNvdXJjZSBjb2RlIGZvcm0gaXMgdGhhdAorc2FtZSB3b3JrLgorCisgIDIuIEJhc2ljIFBlcm1pc3Npb25zLgorCisgIEFsbCByaWdodHMgZ3JhbnRlZCB1bmRlciB0aGlzIExpY2Vuc2UgYXJlIGdyYW50ZWQgZm9yIHRoZSB0ZXJtIG9mCitjb3B5cmlnaHQgb24gdGhlIFByb2dyYW0sIGFuZCBhcmUgaXJyZXZvY2FibGUgcHJvdmlkZWQgdGhlIHN0YXRlZAorY29uZGl0aW9ucyBhcmUgbWV0LiAgVGhpcyBMaWNlbnNlIGV4cGxpY2l0bHkgYWZmaXJtcyB5b3VyIHVubGltaXRlZAorcGVybWlzc2lvbiB0byBydW4gdGhlIHVubW9kaWZpZWQgUHJvZ3JhbS4gIFRoZSBvdXRwdXQgZnJvbSBydW5uaW5nIGEKK2NvdmVyZWQgd29yayBpcyBjb3ZlcmVkIGJ5IHRoaXMgTGljZW5zZSBvbmx5IGlmIHRoZSBvdXRwdXQsIGdpdmVuIGl0cworY29udGVudCwgY29uc3RpdHV0ZXMgYSBjb3ZlcmVkIHdvcmsuICBUaGlzIExpY2Vuc2UgYWNrbm93bGVkZ2VzIHlvdXIKK3JpZ2h0cyBvZiBmYWlyIHVzZSBvciBvdGhlciBlcXVpdmFsZW50LCBhcyBwcm92aWRlZCBieSBjb3B5cmlnaHQgbGF3LgorCisgIFlvdSBtYXkgbWFrZSwgcnVuIGFuZCBwcm9wYWdhdGUgY292ZXJlZCB3b3JrcyB0aGF0IHlvdSBkbyBub3QKK2NvbnZleSwgd2l0aG91dCBjb25kaXRpb25zIHNvIGxvbmcgYXMgeW91ciBsaWNlbnNlIG90aGVyd2lzZSByZW1haW5zCitpbiBmb3JjZS4gIFlvdSBtYXkgY29udmV5IGNvdmVyZWQgd29ya3MgdG8gb3RoZXJzIGZvciB0aGUgc29sZSBwdXJwb3NlCitvZiBoYXZpbmcgdGhlbSBtYWtlIG1vZGlmaWNhdGlvbnMgZXhjbHVzaXZlbHkgZm9yIHlvdSwgb3IgcHJvdmlkZSB5b3UKK3dpdGggZmFjaWxpdGllcyBmb3IgcnVubmluZyB0aG9zZSB3b3JrcywgcHJvdmlkZWQgdGhhdCB5b3UgY29tcGx5IHdpdGgKK3RoZSB0ZXJtcyBvZiB0aGlzIExpY2Vuc2UgaW4gY29udmV5aW5nIGFsbCBtYXRlcmlhbCBmb3Igd2hpY2ggeW91IGRvCitub3QgY29udHJvbCBjb3B5cmlnaHQuICBUaG9zZSB0aHVzIG1ha2luZyBvciBydW5uaW5nIHRoZSBjb3ZlcmVkIHdvcmtzCitmb3IgeW91IG11c3QgZG8gc28gZXhjbHVzaXZlbHkgb24geW91ciBiZWhhbGYsIHVuZGVyIHlvdXIgZGlyZWN0aW9uCithbmQgY29udHJvbCwgb24gdGVybXMgdGhhdCBwcm9oaWJpdCB0aGVtIGZyb20gbWFraW5nIGFueSBjb3BpZXMgb2YKK3lvdXIgY29weXJpZ2h0ZWQgbWF0ZXJpYWwgb3V0c2lkZSB0aGVpciByZWxhdGlvbnNoaXAgd2l0aCB5b3UuCisKKyAgQ29udmV5aW5nIHVuZGVyIGFueSBvdGhlciBjaXJjdW1zdGFuY2VzIGlzIHBlcm1pdHRlZCBzb2xlbHkgdW5kZXIKK3RoZSBjb25kaXRpb25zIHN0YXRlZCBiZWxvdy4gIFN1YmxpY2Vuc2luZyBpcyBub3QgYWxsb3dlZDsgc2VjdGlvbiAxMAorbWFrZXMgaXQgdW5uZWNlc3NhcnkuCisKKyAgMy4gUHJvdGVjdGluZyBVc2VycycgTGVnYWwgUmlnaHRzIEZyb20gQW50aS1DaXJjdW12ZW50aW9uIExhdy4KKworICBObyBjb3ZlcmVkIHdvcmsgc2hhbGwgYmUgZGVlbWVkIHBhcnQgb2YgYW4gZWZmZWN0aXZlIHRlY2hub2xvZ2ljYWwKK21lYXN1cmUgdW5kZXIgYW55IGFwcGxpY2FibGUgbGF3IGZ1bGZpbGxpbmcgb2JsaWdhdGlvbnMgdW5kZXIgYXJ0aWNsZQorMTEgb2YgdGhlIFdJUE8gY29weXJpZ2h0IHRyZWF0eSBhZG9wdGVkIG9uIDIwIERlY2VtYmVyIDE5OTYsIG9yCitzaW1pbGFyIGxhd3MgcHJvaGliaXRpbmcgb3IgcmVzdHJpY3RpbmcgY2lyY3VtdmVudGlvbiBvZiBzdWNoCittZWFzdXJlcy4KKworICBXaGVuIHlvdSBjb252ZXkgYSBjb3ZlcmVkIHdvcmssIHlvdSB3YWl2ZSBhbnkgbGVnYWwgcG93ZXIgdG8gZm9yYmlkCitjaXJjdW12ZW50aW9uIG9mIHRlY2hub2xvZ2ljYWwgbWVhc3VyZXMgdG8gdGhlIGV4dGVudCBzdWNoIGNpcmN1bXZlbnRpb24KK2lzIGVmZmVjdGVkIGJ5IGV4ZXJjaXNpbmcgcmlnaHRzIHVuZGVyIHRoaXMgTGljZW5zZSB3aXRoIHJlc3BlY3QgdG8KK3RoZSBjb3ZlcmVkIHdvcmssIGFuZCB5b3UgZGlzY2xhaW0gYW55IGludGVudGlvbiB0byBsaW1pdCBvcGVyYXRpb24gb3IKK21vZGlmaWNhdGlvbiBvZiB0aGUgd29yayBhcyBhIG1lYW5zIG9mIGVuZm9yY2luZywgYWdhaW5zdCB0aGUgd29yaydzCit1c2VycywgeW91ciBvciB0aGlyZCBwYXJ0aWVzJyBsZWdhbCByaWdodHMgdG8gZm9yYmlkIGNpcmN1bXZlbnRpb24gb2YKK3RlY2hub2xvZ2ljYWwgbWVhc3VyZXMuCisKKyAgNC4gQ29udmV5aW5nIFZlcmJhdGltIENvcGllcy4KKworICBZb3UgbWF5IGNvbnZleSB2ZXJiYXRpbSBjb3BpZXMgb2YgdGhlIFByb2dyYW0ncyBzb3VyY2UgY29kZSBhcyB5b3UKK3JlY2VpdmUgaXQsIGluIGFueSBtZWRpdW0sIHByb3ZpZGVkIHRoYXQgeW91IGNvbnNwaWN1b3VzbHkgYW5kCithcHByb3ByaWF0ZWx5IHB1Ymxpc2ggb24gZWFjaCBjb3B5IGFuIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBub3RpY2U7CitrZWVwIGludGFjdCBhbGwgbm90aWNlcyBzdGF0aW5nIHRoYXQgdGhpcyBMaWNlbnNlIGFuZCBhbnkKK25vbi1wZXJtaXNzaXZlIHRlcm1zIGFkZGVkIGluIGFjY29yZCB3aXRoIHNlY3Rpb24gNyBhcHBseSB0byB0aGUgY29kZTsKK2tlZXAgaW50YWN0IGFsbCBub3RpY2VzIG9mIHRoZSBhYnNlbmNlIG9mIGFueSB3YXJyYW50eTsgYW5kIGdpdmUgYWxsCityZWNpcGllbnRzIGEgY29weSBvZiB0aGlzIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGUgUHJvZ3JhbS4KKworICBZb3UgbWF5IGNoYXJnZSBhbnkgcHJpY2Ugb3Igbm8gcHJpY2UgZm9yIGVhY2ggY29weSB0aGF0IHlvdSBjb252ZXksCithbmQgeW91IG1heSBvZmZlciBzdXBwb3J0IG9yIHdhcnJhbnR5IHByb3RlY3Rpb24gZm9yIGEgZmVlLgorCisgIDUuIENvbnZleWluZyBNb2RpZmllZCBTb3VyY2UgVmVyc2lvbnMuCisKKyAgWW91IG1heSBjb252ZXkgYSB3b3JrIGJhc2VkIG9uIHRoZSBQcm9ncmFtLCBvciB0aGUgbW9kaWZpY2F0aW9ucyB0bworcHJvZHVjZSBpdCBmcm9tIHRoZSBQcm9ncmFtLCBpbiB0aGUgZm9ybSBvZiBzb3VyY2UgY29kZSB1bmRlciB0aGUKK3Rlcm1zIG9mIHNlY3Rpb24gNCwgcHJvdmlkZWQgdGhhdCB5b3UgYWxzbyBtZWV0IGFsbCBvZiB0aGVzZSBjb25kaXRpb25zOgorCisgICAgYSkgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgeW91IG1vZGlmaWVkCisgICAgaXQsIGFuZCBnaXZpbmcgYSByZWxldmFudCBkYXRlLgorCisgICAgYikgVGhlIHdvcmsgbXVzdCBjYXJyeSBwcm9taW5lbnQgbm90aWNlcyBzdGF0aW5nIHRoYXQgaXQgaXMKKyAgICByZWxlYXNlZCB1bmRlciB0aGlzIExpY2Vuc2UgYW5kIGFueSBjb25kaXRpb25zIGFkZGVkIHVuZGVyIHNlY3Rpb24KKyAgICA3LiAgVGhpcyByZXF1aXJlbWVudCBtb2RpZmllcyB0aGUgcmVxdWlyZW1lbnQgaW4gc2VjdGlvbiA0IHRvCisgICAgImtlZXAgaW50YWN0IGFsbCBub3RpY2VzIi4KKworICAgIGMpIFlvdSBtdXN0IGxpY2Vuc2UgdGhlIGVudGlyZSB3b3JrLCBhcyBhIHdob2xlLCB1bmRlciB0aGlzCisgICAgTGljZW5zZSB0byBhbnlvbmUgd2hvIGNvbWVzIGludG8gcG9zc2Vzc2lvbiBvZiBhIGNvcHkuICBUaGlzCisgICAgTGljZW5zZSB3aWxsIHRoZXJlZm9yZSBhcHBseSwgYWxvbmcgd2l0aCBhbnkgYXBwbGljYWJsZSBzZWN0aW9uIDcKKyAgICBhZGRpdGlvbmFsIHRlcm1zLCB0byB0aGUgd2hvbGUgb2YgdGhlIHdvcmssIGFuZCBhbGwgaXRzIHBhcnRzLAorICAgIHJlZ2FyZGxlc3Mgb2YgaG93IHRoZXkgYXJlIHBhY2thZ2VkLiAgVGhpcyBMaWNlbnNlIGdpdmVzIG5vCisgICAgcGVybWlzc2lvbiB0byBsaWNlbnNlIHRoZSB3b3JrIGluIGFueSBvdGhlciB3YXksIGJ1dCBpdCBkb2VzIG5vdAorICAgIGludmFsaWRhdGUgc3VjaCBwZXJtaXNzaW9uIGlmIHlvdSBoYXZlIHNlcGFyYXRlbHkgcmVjZWl2ZWQgaXQuCisKKyAgICBkKSBJZiB0aGUgd29yayBoYXMgaW50ZXJhY3RpdmUgdXNlciBpbnRlcmZhY2VzLCBlYWNoIG11c3QgZGlzcGxheQorICAgIEFwcHJvcHJpYXRlIExlZ2FsIE5vdGljZXM7IGhvd2V2ZXIsIGlmIHRoZSBQcm9ncmFtIGhhcyBpbnRlcmFjdGl2ZQorICAgIGludGVyZmFjZXMgdGhhdCBkbyBub3QgZGlzcGxheSBBcHByb3ByaWF0ZSBMZWdhbCBOb3RpY2VzLCB5b3VyCisgICAgd29yayBuZWVkIG5vdCBtYWtlIHRoZW0gZG8gc28uCisKKyAgQSBjb21waWxhdGlvbiBvZiBhIGNvdmVyZWQgd29yayB3aXRoIG90aGVyIHNlcGFyYXRlIGFuZCBpbmRlcGVuZGVudAord29ya3MsIHdoaWNoIGFyZSBub3QgYnkgdGhlaXIgbmF0dXJlIGV4dGVuc2lvbnMgb2YgdGhlIGNvdmVyZWQgd29yaywKK2FuZCB3aGljaCBhcmUgbm90IGNvbWJpbmVkIHdpdGggaXQgc3VjaCBhcyB0byBmb3JtIGEgbGFyZ2VyIHByb2dyYW0sCitpbiBvciBvbiBhIHZvbHVtZSBvZiBhIHN0b3JhZ2Ugb3IgZGlzdHJpYnV0aW9uIG1lZGl1bSwgaXMgY2FsbGVkIGFuCisiYWdncmVnYXRlIiBpZiB0aGUgY29tcGlsYXRpb24gYW5kIGl0cyByZXN1bHRpbmcgY29weXJpZ2h0IGFyZSBub3QKK3VzZWQgdG8gbGltaXQgdGhlIGFjY2VzcyBvciBsZWdhbCByaWdodHMgb2YgdGhlIGNvbXBpbGF0aW9uJ3MgdXNlcnMKK2JleW9uZCB3aGF0IHRoZSBpbmRpdmlkdWFsIHdvcmtzIHBlcm1pdC4gIEluY2x1c2lvbiBvZiBhIGNvdmVyZWQgd29yaworaW4gYW4gYWdncmVnYXRlIGRvZXMgbm90IGNhdXNlIHRoaXMgTGljZW5zZSB0byBhcHBseSB0byB0aGUgb3RoZXIKK3BhcnRzIG9mIHRoZSBhZ2dyZWdhdGUuCisKKyAgNi4gQ29udmV5aW5nIE5vbi1Tb3VyY2UgRm9ybXMuCisKKyAgWW91IG1heSBjb252ZXkgYSBjb3ZlcmVkIHdvcmsgaW4gb2JqZWN0IGNvZGUgZm9ybSB1bmRlciB0aGUgdGVybXMKK29mIHNlY3Rpb25zIDQgYW5kIDUsIHByb3ZpZGVkIHRoYXQgeW91IGFsc28gY29udmV5IHRoZQorbWFjaGluZS1yZWFkYWJsZSBDb3JyZXNwb25kaW5nIFNvdXJjZSB1bmRlciB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlLAoraW4gb25lIG9mIHRoZXNlIHdheXM6CisKKyAgICBhKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGluLCBvciBlbWJvZGllZCBpbiwgYSBwaHlzaWNhbCBwcm9kdWN0CisgICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSB0aGUKKyAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSBmaXhlZCBvbiBhIGR1cmFibGUgcGh5c2ljYWwgbWVkaXVtCisgICAgY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2UuCisKKyAgICBiKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGluLCBvciBlbWJvZGllZCBpbiwgYSBwaHlzaWNhbCBwcm9kdWN0CisgICAgKGluY2x1ZGluZyBhIHBoeXNpY2FsIGRpc3RyaWJ1dGlvbiBtZWRpdW0pLCBhY2NvbXBhbmllZCBieSBhCisgICAgd3JpdHRlbiBvZmZlciwgdmFsaWQgZm9yIGF0IGxlYXN0IHRocmVlIHllYXJzIGFuZCB2YWxpZCBmb3IgYXMKKyAgICBsb25nIGFzIHlvdSBvZmZlciBzcGFyZSBwYXJ0cyBvciBjdXN0b21lciBzdXBwb3J0IGZvciB0aGF0IHByb2R1Y3QKKyAgICBtb2RlbCwgdG8gZ2l2ZSBhbnlvbmUgd2hvIHBvc3Nlc3NlcyB0aGUgb2JqZWN0IGNvZGUgZWl0aGVyICgxKSBhCisgICAgY29weSBvZiB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgZm9yIGFsbCB0aGUgc29mdHdhcmUgaW4gdGhlCisgICAgcHJvZHVjdCB0aGF0IGlzIGNvdmVyZWQgYnkgdGhpcyBMaWNlbnNlLCBvbiBhIGR1cmFibGUgcGh5c2ljYWwKKyAgICBtZWRpdW0gY3VzdG9tYXJpbHkgdXNlZCBmb3Igc29mdHdhcmUgaW50ZXJjaGFuZ2UsIGZvciBhIHByaWNlIG5vCisgICAgbW9yZSB0aGFuIHlvdXIgcmVhc29uYWJsZSBjb3N0IG9mIHBoeXNpY2FsbHkgcGVyZm9ybWluZyB0aGlzCisgICAgY29udmV5aW5nIG9mIHNvdXJjZSwgb3IgKDIpIGFjY2VzcyB0byBjb3B5IHRoZQorICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGZyb20gYSBuZXR3b3JrIHNlcnZlciBhdCBubyBjaGFyZ2UuCisKKyAgICBjKSBDb252ZXkgaW5kaXZpZHVhbCBjb3BpZXMgb2YgdGhlIG9iamVjdCBjb2RlIHdpdGggYSBjb3B5IG9mIHRoZQorICAgIHdyaXR0ZW4gb2ZmZXIgdG8gcHJvdmlkZSB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UuICBUaGlzCisgICAgYWx0ZXJuYXRpdmUgaXMgYWxsb3dlZCBvbmx5IG9jY2FzaW9uYWxseSBhbmQgbm9uY29tbWVyY2lhbGx5LCBhbmQKKyAgICBvbmx5IGlmIHlvdSByZWNlaXZlZCB0aGUgb2JqZWN0IGNvZGUgd2l0aCBzdWNoIGFuIG9mZmVyLCBpbiBhY2NvcmQKKyAgICB3aXRoIHN1YnNlY3Rpb24gNmIuCisKKyAgICBkKSBDb252ZXkgdGhlIG9iamVjdCBjb2RlIGJ5IG9mZmVyaW5nIGFjY2VzcyBmcm9tIGEgZGVzaWduYXRlZAorICAgIHBsYWNlIChncmF0aXMgb3IgZm9yIGEgY2hhcmdlKSwgYW5kIG9mZmVyIGVxdWl2YWxlbnQgYWNjZXNzIHRvIHRoZQorICAgIENvcnJlc3BvbmRpbmcgU291cmNlIGluIHRoZSBzYW1lIHdheSB0aHJvdWdoIHRoZSBzYW1lIHBsYWNlIGF0IG5vCisgICAgZnVydGhlciBjaGFyZ2UuICBZb3UgbmVlZCBub3QgcmVxdWlyZSByZWNpcGllbnRzIHRvIGNvcHkgdGhlCisgICAgQ29ycmVzcG9uZGluZyBTb3VyY2UgYWxvbmcgd2l0aCB0aGUgb2JqZWN0IGNvZGUuICBJZiB0aGUgcGxhY2UgdG8KKyAgICBjb3B5IHRoZSBvYmplY3QgY29kZSBpcyBhIG5ldHdvcmsgc2VydmVyLCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UKKyAgICBtYXkgYmUgb24gYSBkaWZmZXJlbnQgc2VydmVyIChvcGVyYXRlZCBieSB5b3Ugb3IgYSB0aGlyZCBwYXJ0eSkKKyAgICB0aGF0IHN1cHBvcnRzIGVxdWl2YWxlbnQgY29weWluZyBmYWNpbGl0aWVzLCBwcm92aWRlZCB5b3UgbWFpbnRhaW4KKyAgICBjbGVhciBkaXJlY3Rpb25zIG5leHQgdG8gdGhlIG9iamVjdCBjb2RlIHNheWluZyB3aGVyZSB0byBmaW5kIHRoZQorICAgIENvcnJlc3BvbmRpbmcgU291cmNlLiAgUmVnYXJkbGVzcyBvZiB3aGF0IHNlcnZlciBob3N0cyB0aGUKKyAgICBDb3JyZXNwb25kaW5nIFNvdXJjZSwgeW91IHJlbWFpbiBvYmxpZ2F0ZWQgdG8gZW5zdXJlIHRoYXQgaXQgaXMKKyAgICBhdmFpbGFibGUgZm9yIGFzIGxvbmcgYXMgbmVlZGVkIHRvIHNhdGlzZnkgdGhlc2UgcmVxdWlyZW1lbnRzLgorCisgICAgZSkgQ29udmV5IHRoZSBvYmplY3QgY29kZSB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uLCBwcm92aWRlZAorICAgIHlvdSBpbmZvcm0gb3RoZXIgcGVlcnMgd2hlcmUgdGhlIG9iamVjdCBjb2RlIGFuZCBDb3JyZXNwb25kaW5nCisgICAgU291cmNlIG9mIHRoZSB3b3JrIGFyZSBiZWluZyBvZmZlcmVkIHRvIHRoZSBnZW5lcmFsIHB1YmxpYyBhdCBubworICAgIGNoYXJnZSB1bmRlciBzdWJzZWN0aW9uIDZkLgorCisgIEEgc2VwYXJhYmxlIHBvcnRpb24gb2YgdGhlIG9iamVjdCBjb2RlLCB3aG9zZSBzb3VyY2UgY29kZSBpcyBleGNsdWRlZAorZnJvbSB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2UgYXMgYSBTeXN0ZW0gTGlicmFyeSwgbmVlZCBub3QgYmUKK2luY2x1ZGVkIGluIGNvbnZleWluZyB0aGUgb2JqZWN0IGNvZGUgd29yay4KKworICBBICJVc2VyIFByb2R1Y3QiIGlzIGVpdGhlciAoMSkgYSAiY29uc3VtZXIgcHJvZHVjdCIsIHdoaWNoIG1lYW5zIGFueQordGFuZ2libGUgcGVyc29uYWwgcHJvcGVydHkgd2hpY2ggaXMgbm9ybWFsbHkgdXNlZCBmb3IgcGVyc29uYWwsIGZhbWlseSwKK29yIGhvdXNlaG9sZCBwdXJwb3Nlcywgb3IgKDIpIGFueXRoaW5nIGRlc2lnbmVkIG9yIHNvbGQgZm9yIGluY29ycG9yYXRpb24KK2ludG8gYSBkd2VsbGluZy4gIEluIGRldGVybWluaW5nIHdoZXRoZXIgYSBwcm9kdWN0IGlzIGEgY29uc3VtZXIgcHJvZHVjdCwKK2RvdWJ0ZnVsIGNhc2VzIHNoYWxsIGJlIHJlc29sdmVkIGluIGZhdm9yIG9mIGNvdmVyYWdlLiAgRm9yIGEgcGFydGljdWxhcgorcHJvZHVjdCByZWNlaXZlZCBieSBhIHBhcnRpY3VsYXIgdXNlciwgIm5vcm1hbGx5IHVzZWQiIHJlZmVycyB0byBhCit0eXBpY2FsIG9yIGNvbW1vbiB1c2Ugb2YgdGhhdCBjbGFzcyBvZiBwcm9kdWN0LCByZWdhcmRsZXNzIG9mIHRoZSBzdGF0dXMKK29mIHRoZSBwYXJ0aWN1bGFyIHVzZXIgb3Igb2YgdGhlIHdheSBpbiB3aGljaCB0aGUgcGFydGljdWxhciB1c2VyCithY3R1YWxseSB1c2VzLCBvciBleHBlY3RzIG9yIGlzIGV4cGVjdGVkIHRvIHVzZSwgdGhlIHByb2R1Y3QuICBBIHByb2R1Y3QKK2lzIGEgY29uc3VtZXIgcHJvZHVjdCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgdGhlIHByb2R1Y3QgaGFzIHN1YnN0YW50aWFsCitjb21tZXJjaWFsLCBpbmR1c3RyaWFsIG9yIG5vbi1jb25zdW1lciB1c2VzLCB1bmxlc3Mgc3VjaCB1c2VzIHJlcHJlc2VudAordGhlIG9ubHkgc2lnbmlmaWNhbnQgbW9kZSBvZiB1c2Ugb2YgdGhlIHByb2R1Y3QuCisKKyAgIkluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbiIgZm9yIGEgVXNlciBQcm9kdWN0IG1lYW5zIGFueSBtZXRob2RzLAorcHJvY2VkdXJlcywgYXV0aG9yaXphdGlvbiBrZXlzLCBvciBvdGhlciBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBpbnN0YWxsCithbmQgZXhlY3V0ZSBtb2RpZmllZCB2ZXJzaW9ucyBvZiBhIGNvdmVyZWQgd29yayBpbiB0aGF0IFVzZXIgUHJvZHVjdCBmcm9tCithIG1vZGlmaWVkIHZlcnNpb24gb2YgaXRzIENvcnJlc3BvbmRpbmcgU291cmNlLiAgVGhlIGluZm9ybWF0aW9uIG11c3QKK3N1ZmZpY2UgdG8gZW5zdXJlIHRoYXQgdGhlIGNvbnRpbnVlZCBmdW5jdGlvbmluZyBvZiB0aGUgbW9kaWZpZWQgb2JqZWN0Citjb2RlIGlzIGluIG5vIGNhc2UgcHJldmVudGVkIG9yIGludGVyZmVyZWQgd2l0aCBzb2xlbHkgYmVjYXVzZQorbW9kaWZpY2F0aW9uIGhhcyBiZWVuIG1hZGUuCisKKyAgSWYgeW91IGNvbnZleSBhbiBvYmplY3QgY29kZSB3b3JrIHVuZGVyIHRoaXMgc2VjdGlvbiBpbiwgb3Igd2l0aCwgb3IKK3NwZWNpZmljYWxseSBmb3IgdXNlIGluLCBhIFVzZXIgUHJvZHVjdCwgYW5kIHRoZSBjb252ZXlpbmcgb2NjdXJzIGFzCitwYXJ0IG9mIGEgdHJhbnNhY3Rpb24gaW4gd2hpY2ggdGhlIHJpZ2h0IG9mIHBvc3Nlc3Npb24gYW5kIHVzZSBvZiB0aGUKK1VzZXIgUHJvZHVjdCBpcyB0cmFuc2ZlcnJlZCB0byB0aGUgcmVjaXBpZW50IGluIHBlcnBldHVpdHkgb3IgZm9yIGEKK2ZpeGVkIHRlcm0gKHJlZ2FyZGxlc3Mgb2YgaG93IHRoZSB0cmFuc2FjdGlvbiBpcyBjaGFyYWN0ZXJpemVkKSwgdGhlCitDb3JyZXNwb25kaW5nIFNvdXJjZSBjb252ZXllZCB1bmRlciB0aGlzIHNlY3Rpb24gbXVzdCBiZSBhY2NvbXBhbmllZAorYnkgdGhlIEluc3RhbGxhdGlvbiBJbmZvcm1hdGlvbi4gIEJ1dCB0aGlzIHJlcXVpcmVtZW50IGRvZXMgbm90IGFwcGx5CitpZiBuZWl0aGVyIHlvdSBub3IgYW55IHRoaXJkIHBhcnR5IHJldGFpbnMgdGhlIGFiaWxpdHkgdG8gaW5zdGFsbAorbW9kaWZpZWQgb2JqZWN0IGNvZGUgb24gdGhlIFVzZXIgUHJvZHVjdCAoZm9yIGV4YW1wbGUsIHRoZSB3b3JrIGhhcworYmVlbiBpbnN0YWxsZWQgaW4gUk9NKS4KKworICBUaGUgcmVxdWlyZW1lbnQgdG8gcHJvdmlkZSBJbnN0YWxsYXRpb24gSW5mb3JtYXRpb24gZG9lcyBub3QgaW5jbHVkZSBhCityZXF1aXJlbWVudCB0byBjb250aW51ZSB0byBwcm92aWRlIHN1cHBvcnQgc2VydmljZSwgd2FycmFudHksIG9yIHVwZGF0ZXMKK2ZvciBhIHdvcmsgdGhhdCBoYXMgYmVlbiBtb2RpZmllZCBvciBpbnN0YWxsZWQgYnkgdGhlIHJlY2lwaWVudCwgb3IgZm9yCit0aGUgVXNlciBQcm9kdWN0IGluIHdoaWNoIGl0IGhhcyBiZWVuIG1vZGlmaWVkIG9yIGluc3RhbGxlZC4gIEFjY2VzcyB0byBhCituZXR3b3JrIG1heSBiZSBkZW5pZWQgd2hlbiB0aGUgbW9kaWZpY2F0aW9uIGl0c2VsZiBtYXRlcmlhbGx5IGFuZAorYWR2ZXJzZWx5IGFmZmVjdHMgdGhlIG9wZXJhdGlvbiBvZiB0aGUgbmV0d29yayBvciB2aW9sYXRlcyB0aGUgcnVsZXMgYW5kCitwcm90b2NvbHMgZm9yIGNvbW11bmljYXRpb24gYWNyb3NzIHRoZSBuZXR3b3JrLgorCisgIENvcnJlc3BvbmRpbmcgU291cmNlIGNvbnZleWVkLCBhbmQgSW5zdGFsbGF0aW9uIEluZm9ybWF0aW9uIHByb3ZpZGVkLAoraW4gYWNjb3JkIHdpdGggdGhpcyBzZWN0aW9uIG11c3QgYmUgaW4gYSBmb3JtYXQgdGhhdCBpcyBwdWJsaWNseQorZG9jdW1lbnRlZCAoYW5kIHdpdGggYW4gaW1wbGVtZW50YXRpb24gYXZhaWxhYmxlIHRvIHRoZSBwdWJsaWMgaW4KK3NvdXJjZSBjb2RlIGZvcm0pLCBhbmQgbXVzdCByZXF1aXJlIG5vIHNwZWNpYWwgcGFzc3dvcmQgb3Iga2V5IGZvcgordW5wYWNraW5nLCByZWFkaW5nIG9yIGNvcHlpbmcuCisKKyAgNy4gQWRkaXRpb25hbCBUZXJtcy4KKworICAiQWRkaXRpb25hbCBwZXJtaXNzaW9ucyIgYXJlIHRlcm1zIHRoYXQgc3VwcGxlbWVudCB0aGUgdGVybXMgb2YgdGhpcworTGljZW5zZSBieSBtYWtpbmcgZXhjZXB0aW9ucyBmcm9tIG9uZSBvciBtb3JlIG9mIGl0cyBjb25kaXRpb25zLgorQWRkaXRpb25hbCBwZXJtaXNzaW9ucyB0aGF0IGFyZSBhcHBsaWNhYmxlIHRvIHRoZSBlbnRpcmUgUHJvZ3JhbSBzaGFsbAorYmUgdHJlYXRlZCBhcyB0aG91Z2ggdGhleSB3ZXJlIGluY2x1ZGVkIGluIHRoaXMgTGljZW5zZSwgdG8gdGhlIGV4dGVudAordGhhdCB0aGV5IGFyZSB2YWxpZCB1bmRlciBhcHBsaWNhYmxlIGxhdy4gIElmIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMKK2FwcGx5IG9ubHkgdG8gcGFydCBvZiB0aGUgUHJvZ3JhbSwgdGhhdCBwYXJ0IG1heSBiZSB1c2VkIHNlcGFyYXRlbHkKK3VuZGVyIHRob3NlIHBlcm1pc3Npb25zLCBidXQgdGhlIGVudGlyZSBQcm9ncmFtIHJlbWFpbnMgZ292ZXJuZWQgYnkKK3RoaXMgTGljZW5zZSB3aXRob3V0IHJlZ2FyZCB0byB0aGUgYWRkaXRpb25hbCBwZXJtaXNzaW9ucy4KKworICBXaGVuIHlvdSBjb252ZXkgYSBjb3B5IG9mIGEgY292ZXJlZCB3b3JrLCB5b3UgbWF5IGF0IHlvdXIgb3B0aW9uCityZW1vdmUgYW55IGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgZnJvbSB0aGF0IGNvcHksIG9yIGZyb20gYW55IHBhcnQgb2YKK2l0LiAgKEFkZGl0aW9uYWwgcGVybWlzc2lvbnMgbWF5IGJlIHdyaXR0ZW4gdG8gcmVxdWlyZSB0aGVpciBvd24KK3JlbW92YWwgaW4gY2VydGFpbiBjYXNlcyB3aGVuIHlvdSBtb2RpZnkgdGhlIHdvcmsuKSAgWW91IG1heSBwbGFjZQorYWRkaXRpb25hbCBwZXJtaXNzaW9ucyBvbiBtYXRlcmlhbCwgYWRkZWQgYnkgeW91IHRvIGEgY292ZXJlZCB3b3JrLAorZm9yIHdoaWNoIHlvdSBoYXZlIG9yIGNhbiBnaXZlIGFwcHJvcHJpYXRlIGNvcHlyaWdodCBwZXJtaXNzaW9uLgorCisgIE5vdHdpdGhzdGFuZGluZyBhbnkgb3RoZXIgcHJvdmlzaW9uIG9mIHRoaXMgTGljZW5zZSwgZm9yIG1hdGVyaWFsIHlvdQorYWRkIHRvIGEgY292ZXJlZCB3b3JrLCB5b3UgbWF5IChpZiBhdXRob3JpemVkIGJ5IHRoZSBjb3B5cmlnaHQgaG9sZGVycyBvZgordGhhdCBtYXRlcmlhbCkgc3VwcGxlbWVudCB0aGUgdGVybXMgb2YgdGhpcyBMaWNlbnNlIHdpdGggdGVybXM6CisKKyAgICBhKSBEaXNjbGFpbWluZyB3YXJyYW50eSBvciBsaW1pdGluZyBsaWFiaWxpdHkgZGlmZmVyZW50bHkgZnJvbSB0aGUKKyAgICB0ZXJtcyBvZiBzZWN0aW9ucyAxNSBhbmQgMTYgb2YgdGhpcyBMaWNlbnNlOyBvcgorCisgICAgYikgUmVxdWlyaW5nIHByZXNlcnZhdGlvbiBvZiBzcGVjaWZpZWQgcmVhc29uYWJsZSBsZWdhbCBub3RpY2VzIG9yCisgICAgYXV0aG9yIGF0dHJpYnV0aW9ucyBpbiB0aGF0IG1hdGVyaWFsIG9yIGluIHRoZSBBcHByb3ByaWF0ZSBMZWdhbAorICAgIE5vdGljZXMgZGlzcGxheWVkIGJ5IHdvcmtzIGNvbnRhaW5pbmcgaXQ7IG9yCisKKyAgICBjKSBQcm9oaWJpdGluZyBtaXNyZXByZXNlbnRhdGlvbiBvZiB0aGUgb3JpZ2luIG9mIHRoYXQgbWF0ZXJpYWwsIG9yCisgICAgcmVxdWlyaW5nIHRoYXQgbW9kaWZpZWQgdmVyc2lvbnMgb2Ygc3VjaCBtYXRlcmlhbCBiZSBtYXJrZWQgaW4KKyAgICByZWFzb25hYmxlIHdheXMgYXMgZGlmZmVyZW50IGZyb20gdGhlIG9yaWdpbmFsIHZlcnNpb247IG9yCisKKyAgICBkKSBMaW1pdGluZyB0aGUgdXNlIGZvciBwdWJsaWNpdHkgcHVycG9zZXMgb2YgbmFtZXMgb2YgbGljZW5zb3JzIG9yCisgICAgYXV0aG9ycyBvZiB0aGUgbWF0ZXJpYWw7IG9yCisKKyAgICBlKSBEZWNsaW5pbmcgdG8gZ3JhbnQgcmlnaHRzIHVuZGVyIHRyYWRlbWFyayBsYXcgZm9yIHVzZSBvZiBzb21lCisgICAgdHJhZGUgbmFtZXMsIHRyYWRlbWFya3MsIG9yIHNlcnZpY2UgbWFya3M7IG9yCisKKyAgICBmKSBSZXF1aXJpbmcgaW5kZW1uaWZpY2F0aW9uIG9mIGxpY2Vuc29ycyBhbmQgYXV0aG9ycyBvZiB0aGF0CisgICAgbWF0ZXJpYWwgYnkgYW55b25lIHdobyBjb252ZXlzIHRoZSBtYXRlcmlhbCAob3IgbW9kaWZpZWQgdmVyc2lvbnMgb2YKKyAgICBpdCkgd2l0aCBjb250cmFjdHVhbCBhc3N1bXB0aW9ucyBvZiBsaWFiaWxpdHkgdG8gdGhlIHJlY2lwaWVudCwgZm9yCisgICAgYW55IGxpYWJpbGl0eSB0aGF0IHRoZXNlIGNvbnRyYWN0dWFsIGFzc3VtcHRpb25zIGRpcmVjdGx5IGltcG9zZSBvbgorICAgIHRob3NlIGxpY2Vuc29ycyBhbmQgYXV0aG9ycy4KKworICBBbGwgb3RoZXIgbm9uLXBlcm1pc3NpdmUgYWRkaXRpb25hbCB0ZXJtcyBhcmUgY29uc2lkZXJlZCAiZnVydGhlcgorcmVzdHJpY3Rpb25zIiB3aXRoaW4gdGhlIG1lYW5pbmcgb2Ygc2VjdGlvbiAxMC4gIElmIHRoZSBQcm9ncmFtIGFzIHlvdQorcmVjZWl2ZWQgaXQsIG9yIGFueSBwYXJ0IG9mIGl0LCBjb250YWlucyBhIG5vdGljZSBzdGF0aW5nIHRoYXQgaXQgaXMKK2dvdmVybmVkIGJ5IHRoaXMgTGljZW5zZSBhbG9uZyB3aXRoIGEgdGVybSB0aGF0IGlzIGEgZnVydGhlcgorcmVzdHJpY3Rpb24sIHlvdSBtYXkgcmVtb3ZlIHRoYXQgdGVybS4gIElmIGEgbGljZW5zZSBkb2N1bWVudCBjb250YWlucworYSBmdXJ0aGVyIHJlc3RyaWN0aW9uIGJ1dCBwZXJtaXRzIHJlbGljZW5zaW5nIG9yIGNvbnZleWluZyB1bmRlciB0aGlzCitMaWNlbnNlLCB5b3UgbWF5IGFkZCB0byBhIGNvdmVyZWQgd29yayBtYXRlcmlhbCBnb3Zlcm5lZCBieSB0aGUgdGVybXMKK29mIHRoYXQgbGljZW5zZSBkb2N1bWVudCwgcHJvdmlkZWQgdGhhdCB0aGUgZnVydGhlciByZXN0cmljdGlvbiBkb2VzCitub3Qgc3Vydml2ZSBzdWNoIHJlbGljZW5zaW5nIG9yIGNvbnZleWluZy4KKworICBJZiB5b3UgYWRkIHRlcm1zIHRvIGEgY292ZXJlZCB3b3JrIGluIGFjY29yZCB3aXRoIHRoaXMgc2VjdGlvbiwgeW91CittdXN0IHBsYWNlLCBpbiB0aGUgcmVsZXZhbnQgc291cmNlIGZpbGVzLCBhIHN0YXRlbWVudCBvZiB0aGUKK2FkZGl0aW9uYWwgdGVybXMgdGhhdCBhcHBseSB0byB0aG9zZSBmaWxlcywgb3IgYSBub3RpY2UgaW5kaWNhdGluZword2hlcmUgdG8gZmluZCB0aGUgYXBwbGljYWJsZSB0ZXJtcy4KKworICBBZGRpdGlvbmFsIHRlcm1zLCBwZXJtaXNzaXZlIG9yIG5vbi1wZXJtaXNzaXZlLCBtYXkgYmUgc3RhdGVkIGluIHRoZQorZm9ybSBvZiBhIHNlcGFyYXRlbHkgd3JpdHRlbiBsaWNlbnNlLCBvciBzdGF0ZWQgYXMgZXhjZXB0aW9uczsKK3RoZSBhYm92ZSByZXF1aXJlbWVudHMgYXBwbHkgZWl0aGVyIHdheS4KKworICA4LiBUZXJtaW5hdGlvbi4KKworICBZb3UgbWF5IG5vdCBwcm9wYWdhdGUgb3IgbW9kaWZ5IGEgY292ZXJlZCB3b3JrIGV4Y2VwdCBhcyBleHByZXNzbHkKK3Byb3ZpZGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEFueSBhdHRlbXB0IG90aGVyd2lzZSB0byBwcm9wYWdhdGUgb3IKK21vZGlmeSBpdCBpcyB2b2lkLCBhbmQgd2lsbCBhdXRvbWF0aWNhbGx5IHRlcm1pbmF0ZSB5b3VyIHJpZ2h0cyB1bmRlcgordGhpcyBMaWNlbnNlIChpbmNsdWRpbmcgYW55IHBhdGVudCBsaWNlbnNlcyBncmFudGVkIHVuZGVyIHRoZSB0aGlyZAorcGFyYWdyYXBoIG9mIHNlY3Rpb24gMTEpLgorCisgIEhvd2V2ZXIsIGlmIHlvdSBjZWFzZSBhbGwgdmlvbGF0aW9uIG9mIHRoaXMgTGljZW5zZSwgdGhlbiB5b3VyCitsaWNlbnNlIGZyb20gYSBwYXJ0aWN1bGFyIGNvcHlyaWdodCBob2xkZXIgaXMgcmVpbnN0YXRlZCAoYSkKK3Byb3Zpc2lvbmFsbHksIHVubGVzcyBhbmQgdW50aWwgdGhlIGNvcHlyaWdodCBob2xkZXIgZXhwbGljaXRseSBhbmQKK2ZpbmFsbHkgdGVybWluYXRlcyB5b3VyIGxpY2Vuc2UsIGFuZCAoYikgcGVybWFuZW50bHksIGlmIHRoZSBjb3B5cmlnaHQKK2hvbGRlciBmYWlscyB0byBub3RpZnkgeW91IG9mIHRoZSB2aW9sYXRpb24gYnkgc29tZSByZWFzb25hYmxlIG1lYW5zCitwcmlvciB0byA2MCBkYXlzIGFmdGVyIHRoZSBjZXNzYXRpb24uCisKKyAgTW9yZW92ZXIsIHlvdXIgbGljZW5zZSBmcm9tIGEgcGFydGljdWxhciBjb3B5cmlnaHQgaG9sZGVyIGlzCityZWluc3RhdGVkIHBlcm1hbmVudGx5IGlmIHRoZSBjb3B5cmlnaHQgaG9sZGVyIG5vdGlmaWVzIHlvdSBvZiB0aGUKK3Zpb2xhdGlvbiBieSBzb21lIHJlYXNvbmFibGUgbWVhbnMsIHRoaXMgaXMgdGhlIGZpcnN0IHRpbWUgeW91IGhhdmUKK3JlY2VpdmVkIG5vdGljZSBvZiB2aW9sYXRpb24gb2YgdGhpcyBMaWNlbnNlIChmb3IgYW55IHdvcmspIGZyb20gdGhhdAorY29weXJpZ2h0IGhvbGRlciwgYW5kIHlvdSBjdXJlIHRoZSB2aW9sYXRpb24gcHJpb3IgdG8gMzAgZGF5cyBhZnRlcgoreW91ciByZWNlaXB0IG9mIHRoZSBub3RpY2UuCisKKyAgVGVybWluYXRpb24gb2YgeW91ciByaWdodHMgdW5kZXIgdGhpcyBzZWN0aW9uIGRvZXMgbm90IHRlcm1pbmF0ZSB0aGUKK2xpY2Vuc2VzIG9mIHBhcnRpZXMgd2hvIGhhdmUgcmVjZWl2ZWQgY29waWVzIG9yIHJpZ2h0cyBmcm9tIHlvdSB1bmRlcgordGhpcyBMaWNlbnNlLiAgSWYgeW91ciByaWdodHMgaGF2ZSBiZWVuIHRlcm1pbmF0ZWQgYW5kIG5vdCBwZXJtYW5lbnRseQorcmVpbnN0YXRlZCwgeW91IGRvIG5vdCBxdWFsaWZ5IHRvIHJlY2VpdmUgbmV3IGxpY2Vuc2VzIGZvciB0aGUgc2FtZQorbWF0ZXJpYWwgdW5kZXIgc2VjdGlvbiAxMC4KKworICA5LiBBY2NlcHRhbmNlIE5vdCBSZXF1aXJlZCBmb3IgSGF2aW5nIENvcGllcy4KKworICBZb3UgYXJlIG5vdCByZXF1aXJlZCB0byBhY2NlcHQgdGhpcyBMaWNlbnNlIGluIG9yZGVyIHRvIHJlY2VpdmUgb3IKK3J1biBhIGNvcHkgb2YgdGhlIFByb2dyYW0uICBBbmNpbGxhcnkgcHJvcGFnYXRpb24gb2YgYSBjb3ZlcmVkIHdvcmsKK29jY3VycmluZyBzb2xlbHkgYXMgYSBjb25zZXF1ZW5jZSBvZiB1c2luZyBwZWVyLXRvLXBlZXIgdHJhbnNtaXNzaW9uCit0byByZWNlaXZlIGEgY29weSBsaWtld2lzZSBkb2VzIG5vdCByZXF1aXJlIGFjY2VwdGFuY2UuICBIb3dldmVyLAorbm90aGluZyBvdGhlciB0aGFuIHRoaXMgTGljZW5zZSBncmFudHMgeW91IHBlcm1pc3Npb24gdG8gcHJvcGFnYXRlIG9yCittb2RpZnkgYW55IGNvdmVyZWQgd29yay4gIFRoZXNlIGFjdGlvbnMgaW5mcmluZ2UgY29weXJpZ2h0IGlmIHlvdSBkbworbm90IGFjY2VwdCB0aGlzIExpY2Vuc2UuICBUaGVyZWZvcmUsIGJ5IG1vZGlmeWluZyBvciBwcm9wYWdhdGluZyBhCitjb3ZlcmVkIHdvcmssIHlvdSBpbmRpY2F0ZSB5b3VyIGFjY2VwdGFuY2Ugb2YgdGhpcyBMaWNlbnNlIHRvIGRvIHNvLgorCisgIDEwLiBBdXRvbWF0aWMgTGljZW5zaW5nIG9mIERvd25zdHJlYW0gUmVjaXBpZW50cy4KKworICBFYWNoIHRpbWUgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywgdGhlIHJlY2lwaWVudCBhdXRvbWF0aWNhbGx5CityZWNlaXZlcyBhIGxpY2Vuc2UgZnJvbSB0aGUgb3JpZ2luYWwgbGljZW5zb3JzLCB0byBydW4sIG1vZGlmeSBhbmQKK3Byb3BhZ2F0ZSB0aGF0IHdvcmssIHN1YmplY3QgdG8gdGhpcyBMaWNlbnNlLiAgWW91IGFyZSBub3QgcmVzcG9uc2libGUKK2ZvciBlbmZvcmNpbmcgY29tcGxpYW5jZSBieSB0aGlyZCBwYXJ0aWVzIHdpdGggdGhpcyBMaWNlbnNlLgorCisgIEFuICJlbnRpdHkgdHJhbnNhY3Rpb24iIGlzIGEgdHJhbnNhY3Rpb24gdHJhbnNmZXJyaW5nIGNvbnRyb2wgb2YgYW4KK29yZ2FuaXphdGlvbiwgb3Igc3Vic3RhbnRpYWxseSBhbGwgYXNzZXRzIG9mIG9uZSwgb3Igc3ViZGl2aWRpbmcgYW4KK29yZ2FuaXphdGlvbiwgb3IgbWVyZ2luZyBvcmdhbml6YXRpb25zLiAgSWYgcHJvcGFnYXRpb24gb2YgYSBjb3ZlcmVkCit3b3JrIHJlc3VsdHMgZnJvbSBhbiBlbnRpdHkgdHJhbnNhY3Rpb24sIGVhY2ggcGFydHkgdG8gdGhhdAordHJhbnNhY3Rpb24gd2hvIHJlY2VpdmVzIGEgY29weSBvZiB0aGUgd29yayBhbHNvIHJlY2VpdmVzIHdoYXRldmVyCitsaWNlbnNlcyB0byB0aGUgd29yayB0aGUgcGFydHkncyBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCBoYWQgb3IgY291bGQKK2dpdmUgdW5kZXIgdGhlIHByZXZpb3VzIHBhcmFncmFwaCwgcGx1cyBhIHJpZ2h0IHRvIHBvc3Nlc3Npb24gb2YgdGhlCitDb3JyZXNwb25kaW5nIFNvdXJjZSBvZiB0aGUgd29yayBmcm9tIHRoZSBwcmVkZWNlc3NvciBpbiBpbnRlcmVzdCwgaWYKK3RoZSBwcmVkZWNlc3NvciBoYXMgaXQgb3IgY2FuIGdldCBpdCB3aXRoIHJlYXNvbmFibGUgZWZmb3J0cy4KKworICBZb3UgbWF5IG5vdCBpbXBvc2UgYW55IGZ1cnRoZXIgcmVzdHJpY3Rpb25zIG9uIHRoZSBleGVyY2lzZSBvZiB0aGUKK3JpZ2h0cyBncmFudGVkIG9yIGFmZmlybWVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIEZvciBleGFtcGxlLCB5b3UgbWF5Citub3QgaW1wb3NlIGEgbGljZW5zZSBmZWUsIHJveWFsdHksIG9yIG90aGVyIGNoYXJnZSBmb3IgZXhlcmNpc2Ugb2YKK3JpZ2h0cyBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZSwgYW5kIHlvdSBtYXkgbm90IGluaXRpYXRlIGxpdGlnYXRpb24KKyhpbmNsdWRpbmcgYSBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0CithbnkgcGF0ZW50IGNsYWltIGlzIGluZnJpbmdlZCBieSBtYWtpbmcsIHVzaW5nLCBzZWxsaW5nLCBvZmZlcmluZyBmb3IKK3NhbGUsIG9yIGltcG9ydGluZyB0aGUgUHJvZ3JhbSBvciBhbnkgcG9ydGlvbiBvZiBpdC4KKworICAxMS4gUGF0ZW50cy4KKworICBBICJjb250cmlidXRvciIgaXMgYSBjb3B5cmlnaHQgaG9sZGVyIHdobyBhdXRob3JpemVzIHVzZSB1bmRlciB0aGlzCitMaWNlbnNlIG9mIHRoZSBQcm9ncmFtIG9yIGEgd29yayBvbiB3aGljaCB0aGUgUHJvZ3JhbSBpcyBiYXNlZC4gIFRoZQord29yayB0aHVzIGxpY2Vuc2VkIGlzIGNhbGxlZCB0aGUgY29udHJpYnV0b3IncyAiY29udHJpYnV0b3IgdmVyc2lvbiIuCisKKyAgQSBjb250cmlidXRvcidzICJlc3NlbnRpYWwgcGF0ZW50IGNsYWltcyIgYXJlIGFsbCBwYXRlbnQgY2xhaW1zCitvd25lZCBvciBjb250cm9sbGVkIGJ5IHRoZSBjb250cmlidXRvciwgd2hldGhlciBhbHJlYWR5IGFjcXVpcmVkIG9yCitoZXJlYWZ0ZXIgYWNxdWlyZWQsIHRoYXQgd291bGQgYmUgaW5mcmluZ2VkIGJ5IHNvbWUgbWFubmVyLCBwZXJtaXR0ZWQKK2J5IHRoaXMgTGljZW5zZSwgb2YgbWFraW5nLCB1c2luZywgb3Igc2VsbGluZyBpdHMgY29udHJpYnV0b3IgdmVyc2lvbiwKK2J1dCBkbyBub3QgaW5jbHVkZSBjbGFpbXMgdGhhdCB3b3VsZCBiZSBpbmZyaW5nZWQgb25seSBhcyBhCitjb25zZXF1ZW5jZSBvZiBmdXJ0aGVyIG1vZGlmaWNhdGlvbiBvZiB0aGUgY29udHJpYnV0b3IgdmVyc2lvbi4gIEZvcgorcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAiY29udHJvbCIgaW5jbHVkZXMgdGhlIHJpZ2h0IHRvIGdyYW50CitwYXRlbnQgc3VibGljZW5zZXMgaW4gYSBtYW5uZXIgY29uc2lzdGVudCB3aXRoIHRoZSByZXF1aXJlbWVudHMgb2YKK3RoaXMgTGljZW5zZS4KKworICBFYWNoIGNvbnRyaWJ1dG9yIGdyYW50cyB5b3UgYSBub24tZXhjbHVzaXZlLCB3b3JsZHdpZGUsIHJveWFsdHktZnJlZQorcGF0ZW50IGxpY2Vuc2UgdW5kZXIgdGhlIGNvbnRyaWJ1dG9yJ3MgZXNzZW50aWFsIHBhdGVudCBjbGFpbXMsIHRvCittYWtlLCB1c2UsIHNlbGwsIG9mZmVyIGZvciBzYWxlLCBpbXBvcnQgYW5kIG90aGVyd2lzZSBydW4sIG1vZGlmeSBhbmQKK3Byb3BhZ2F0ZSB0aGUgY29udGVudHMgb2YgaXRzIGNvbnRyaWJ1dG9yIHZlcnNpb24uCisKKyAgSW4gdGhlIGZvbGxvd2luZyB0aHJlZSBwYXJhZ3JhcGhzLCBhICJwYXRlbnQgbGljZW5zZSIgaXMgYW55IGV4cHJlc3MKK2FncmVlbWVudCBvciBjb21taXRtZW50LCBob3dldmVyIGRlbm9taW5hdGVkLCBub3QgdG8gZW5mb3JjZSBhIHBhdGVudAorKHN1Y2ggYXMgYW4gZXhwcmVzcyBwZXJtaXNzaW9uIHRvIHByYWN0aWNlIGEgcGF0ZW50IG9yIGNvdmVuYW50IG5vdCB0bworc3VlIGZvciBwYXRlbnQgaW5mcmluZ2VtZW50KS4gIFRvICJncmFudCIgc3VjaCBhIHBhdGVudCBsaWNlbnNlIHRvIGEKK3BhcnR5IG1lYW5zIHRvIG1ha2Ugc3VjaCBhbiBhZ3JlZW1lbnQgb3IgY29tbWl0bWVudCBub3QgdG8gZW5mb3JjZSBhCitwYXRlbnQgYWdhaW5zdCB0aGUgcGFydHkuCisKKyAgSWYgeW91IGNvbnZleSBhIGNvdmVyZWQgd29yaywga25vd2luZ2x5IHJlbHlpbmcgb24gYSBwYXRlbnQgbGljZW5zZSwKK2FuZCB0aGUgQ29ycmVzcG9uZGluZyBTb3VyY2Ugb2YgdGhlIHdvcmsgaXMgbm90IGF2YWlsYWJsZSBmb3IgYW55b25lCit0byBjb3B5LCBmcmVlIG9mIGNoYXJnZSBhbmQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoaXMgTGljZW5zZSwgdGhyb3VnaCBhCitwdWJsaWNseSBhdmFpbGFibGUgbmV0d29yayBzZXJ2ZXIgb3Igb3RoZXIgcmVhZGlseSBhY2Nlc3NpYmxlIG1lYW5zLAordGhlbiB5b3UgbXVzdCBlaXRoZXIgKDEpIGNhdXNlIHRoZSBDb3JyZXNwb25kaW5nIFNvdXJjZSB0byBiZSBzbworYXZhaWxhYmxlLCBvciAoMikgYXJyYW5nZSB0byBkZXByaXZlIHlvdXJzZWxmIG9mIHRoZSBiZW5lZml0IG9mIHRoZQorcGF0ZW50IGxpY2Vuc2UgZm9yIHRoaXMgcGFydGljdWxhciB3b3JrLCBvciAoMykgYXJyYW5nZSwgaW4gYSBtYW5uZXIKK2NvbnNpc3RlbnQgd2l0aCB0aGUgcmVxdWlyZW1lbnRzIG9mIHRoaXMgTGljZW5zZSwgdG8gZXh0ZW5kIHRoZSBwYXRlbnQKK2xpY2Vuc2UgdG8gZG93bnN0cmVhbSByZWNpcGllbnRzLiAgIktub3dpbmdseSByZWx5aW5nIiBtZWFucyB5b3UgaGF2ZQorYWN0dWFsIGtub3dsZWRnZSB0aGF0LCBidXQgZm9yIHRoZSBwYXRlbnQgbGljZW5zZSwgeW91ciBjb252ZXlpbmcgdGhlCitjb3ZlcmVkIHdvcmsgaW4gYSBjb3VudHJ5LCBvciB5b3VyIHJlY2lwaWVudCdzIHVzZSBvZiB0aGUgY292ZXJlZCB3b3JrCitpbiBhIGNvdW50cnksIHdvdWxkIGluZnJpbmdlIG9uZSBvciBtb3JlIGlkZW50aWZpYWJsZSBwYXRlbnRzIGluIHRoYXQKK2NvdW50cnkgdGhhdCB5b3UgaGF2ZSByZWFzb24gdG8gYmVsaWV2ZSBhcmUgdmFsaWQuCisKKyAgSWYsIHB1cnN1YW50IHRvIG9yIGluIGNvbm5lY3Rpb24gd2l0aCBhIHNpbmdsZSB0cmFuc2FjdGlvbiBvcgorYXJyYW5nZW1lbnQsIHlvdSBjb252ZXksIG9yIHByb3BhZ2F0ZSBieSBwcm9jdXJpbmcgY29udmV5YW5jZSBvZiwgYQorY292ZXJlZCB3b3JrLCBhbmQgZ3JhbnQgYSBwYXRlbnQgbGljZW5zZSB0byBzb21lIG9mIHRoZSBwYXJ0aWVzCityZWNlaXZpbmcgdGhlIGNvdmVyZWQgd29yayBhdXRob3JpemluZyB0aGVtIHRvIHVzZSwgcHJvcGFnYXRlLCBtb2RpZnkKK29yIGNvbnZleSBhIHNwZWNpZmljIGNvcHkgb2YgdGhlIGNvdmVyZWQgd29yaywgdGhlbiB0aGUgcGF0ZW50IGxpY2Vuc2UKK3lvdSBncmFudCBpcyBhdXRvbWF0aWNhbGx5IGV4dGVuZGVkIHRvIGFsbCByZWNpcGllbnRzIG9mIHRoZSBjb3ZlcmVkCit3b3JrIGFuZCB3b3JrcyBiYXNlZCBvbiBpdC4KKworICBBIHBhdGVudCBsaWNlbnNlIGlzICJkaXNjcmltaW5hdG9yeSIgaWYgaXQgZG9lcyBub3QgaW5jbHVkZSB3aXRoaW4KK3RoZSBzY29wZSBvZiBpdHMgY292ZXJhZ2UsIHByb2hpYml0cyB0aGUgZXhlcmNpc2Ugb2YsIG9yIGlzCitjb25kaXRpb25lZCBvbiB0aGUgbm9uLWV4ZXJjaXNlIG9mIG9uZSBvciBtb3JlIG9mIHRoZSByaWdodHMgdGhhdCBhcmUKK3NwZWNpZmljYWxseSBncmFudGVkIHVuZGVyIHRoaXMgTGljZW5zZS4gIFlvdSBtYXkgbm90IGNvbnZleSBhIGNvdmVyZWQKK3dvcmsgaWYgeW91IGFyZSBhIHBhcnR5IHRvIGFuIGFycmFuZ2VtZW50IHdpdGggYSB0aGlyZCBwYXJ0eSB0aGF0IGlzCitpbiB0aGUgYnVzaW5lc3Mgb2YgZGlzdHJpYnV0aW5nIHNvZnR3YXJlLCB1bmRlciB3aGljaCB5b3UgbWFrZSBwYXltZW50Cit0byB0aGUgdGhpcmQgcGFydHkgYmFzZWQgb24gdGhlIGV4dGVudCBvZiB5b3VyIGFjdGl2aXR5IG9mIGNvbnZleWluZwordGhlIHdvcmssIGFuZCB1bmRlciB3aGljaCB0aGUgdGhpcmQgcGFydHkgZ3JhbnRzLCB0byBhbnkgb2YgdGhlCitwYXJ0aWVzIHdobyB3b3VsZCByZWNlaXZlIHRoZSBjb3ZlcmVkIHdvcmsgZnJvbSB5b3UsIGEgZGlzY3JpbWluYXRvcnkKK3BhdGVudCBsaWNlbnNlIChhKSBpbiBjb25uZWN0aW9uIHdpdGggY29waWVzIG9mIHRoZSBjb3ZlcmVkIHdvcmsKK2NvbnZleWVkIGJ5IHlvdSAob3IgY29waWVzIG1hZGUgZnJvbSB0aG9zZSBjb3BpZXMpLCBvciAoYikgcHJpbWFyaWx5Citmb3IgYW5kIGluIGNvbm5lY3Rpb24gd2l0aCBzcGVjaWZpYyBwcm9kdWN0cyBvciBjb21waWxhdGlvbnMgdGhhdAorY29udGFpbiB0aGUgY292ZXJlZCB3b3JrLCB1bmxlc3MgeW91IGVudGVyZWQgaW50byB0aGF0IGFycmFuZ2VtZW50LAorb3IgdGhhdCBwYXRlbnQgbGljZW5zZSB3YXMgZ3JhbnRlZCwgcHJpb3IgdG8gMjggTWFyY2ggMjAwNy4KKworICBOb3RoaW5nIGluIHRoaXMgTGljZW5zZSBzaGFsbCBiZSBjb25zdHJ1ZWQgYXMgZXhjbHVkaW5nIG9yIGxpbWl0aW5nCithbnkgaW1wbGllZCBsaWNlbnNlIG9yIG90aGVyIGRlZmVuc2VzIHRvIGluZnJpbmdlbWVudCB0aGF0IG1heQorb3RoZXJ3aXNlIGJlIGF2YWlsYWJsZSB0byB5b3UgdW5kZXIgYXBwbGljYWJsZSBwYXRlbnQgbGF3LgorCisgIDEyLiBObyBTdXJyZW5kZXIgb2YgT3RoZXJzJyBGcmVlZG9tLgorCisgIElmIGNvbmRpdGlvbnMgYXJlIGltcG9zZWQgb24geW91ICh3aGV0aGVyIGJ5IGNvdXJ0IG9yZGVyLCBhZ3JlZW1lbnQgb3IKK290aGVyd2lzZSkgdGhhdCBjb250cmFkaWN0IHRoZSBjb25kaXRpb25zIG9mIHRoaXMgTGljZW5zZSwgdGhleSBkbyBub3QKK2V4Y3VzZSB5b3UgZnJvbSB0aGUgY29uZGl0aW9ucyBvZiB0aGlzIExpY2Vuc2UuICBJZiB5b3UgY2Fubm90IGNvbnZleSBhCitjb3ZlcmVkIHdvcmsgc28gYXMgdG8gc2F0aXNmeSBzaW11bHRhbmVvdXNseSB5b3VyIG9ibGlnYXRpb25zIHVuZGVyIHRoaXMKK0xpY2Vuc2UgYW5kIGFueSBvdGhlciBwZXJ0aW5lbnQgb2JsaWdhdGlvbnMsIHRoZW4gYXMgYSBjb25zZXF1ZW5jZSB5b3UgbWF5Citub3QgY29udmV5IGl0IGF0IGFsbC4gIEZvciBleGFtcGxlLCBpZiB5b3UgYWdyZWUgdG8gdGVybXMgdGhhdCBvYmxpZ2F0ZSB5b3UKK3RvIGNvbGxlY3QgYSByb3lhbHR5IGZvciBmdXJ0aGVyIGNvbnZleWluZyBmcm9tIHRob3NlIHRvIHdob20geW91IGNvbnZleQordGhlIFByb2dyYW0sIHRoZSBvbmx5IHdheSB5b3UgY291bGQgc2F0aXNmeSBib3RoIHRob3NlIHRlcm1zIGFuZCB0aGlzCitMaWNlbnNlIHdvdWxkIGJlIHRvIHJlZnJhaW4gZW50aXJlbHkgZnJvbSBjb252ZXlpbmcgdGhlIFByb2dyYW0uCisKKyAgMTMuIFVzZSB3aXRoIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuCisKKyAgTm90d2l0aHN0YW5kaW5nIGFueSBvdGhlciBwcm92aXNpb24gb2YgdGhpcyBMaWNlbnNlLCB5b3UgaGF2ZQorcGVybWlzc2lvbiB0byBsaW5rIG9yIGNvbWJpbmUgYW55IGNvdmVyZWQgd29yayB3aXRoIGEgd29yayBsaWNlbnNlZAordW5kZXIgdmVyc2lvbiAzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgaW50byBhIHNpbmdsZQorY29tYmluZWQgd29yaywgYW5kIHRvIGNvbnZleSB0aGUgcmVzdWx0aW5nIHdvcmsuICBUaGUgdGVybXMgb2YgdGhpcworTGljZW5zZSB3aWxsIGNvbnRpbnVlIHRvIGFwcGx5IHRvIHRoZSBwYXJ0IHdoaWNoIGlzIHRoZSBjb3ZlcmVkIHdvcmssCitidXQgdGhlIHNwZWNpYWwgcmVxdWlyZW1lbnRzIG9mIHRoZSBHTlUgQWZmZXJvIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsCitzZWN0aW9uIDEzLCBjb25jZXJuaW5nIGludGVyYWN0aW9uIHRocm91Z2ggYSBuZXR3b3JrIHdpbGwgYXBwbHkgdG8gdGhlCitjb21iaW5hdGlvbiBhcyBzdWNoLgorCisgIDE0LiBSZXZpc2VkIFZlcnNpb25zIG9mIHRoaXMgTGljZW5zZS4KKworICBUaGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIG1heSBwdWJsaXNoIHJldmlzZWQgYW5kL29yIG5ldyB2ZXJzaW9ucyBvZgordGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZyb20gdGltZSB0byB0aW1lLiAgU3VjaCBuZXcgdmVyc2lvbnMgd2lsbAorYmUgc2ltaWxhciBpbiBzcGlyaXQgdG8gdGhlIHByZXNlbnQgdmVyc2lvbiwgYnV0IG1heSBkaWZmZXIgaW4gZGV0YWlsIHRvCithZGRyZXNzIG5ldyBwcm9ibGVtcyBvciBjb25jZXJucy4KKworICBFYWNoIHZlcnNpb24gaXMgZ2l2ZW4gYSBkaXN0aW5ndWlzaGluZyB2ZXJzaW9uIG51bWJlci4gIElmIHRoZQorUHJvZ3JhbSBzcGVjaWZpZXMgdGhhdCBhIGNlcnRhaW4gbnVtYmVyZWQgdmVyc2lvbiBvZiB0aGUgR05VIEdlbmVyYWwKK1B1YmxpYyBMaWNlbnNlICJvciBhbnkgbGF0ZXIgdmVyc2lvbiIgYXBwbGllcyB0byBpdCwgeW91IGhhdmUgdGhlCitvcHRpb24gb2YgZm9sbG93aW5nIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBlaXRoZXIgb2YgdGhhdCBudW1iZXJlZAordmVyc2lvbiBvciBvZiBhbnkgbGF0ZXIgdmVyc2lvbiBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUKK0ZvdW5kYXRpb24uICBJZiB0aGUgUHJvZ3JhbSBkb2VzIG5vdCBzcGVjaWZ5IGEgdmVyc2lvbiBudW1iZXIgb2YgdGhlCitHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgeW91IG1heSBjaG9vc2UgYW55IHZlcnNpb24gZXZlciBwdWJsaXNoZWQKK2J5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24uCisKKyAgSWYgdGhlIFByb2dyYW0gc3BlY2lmaWVzIHRoYXQgYSBwcm94eSBjYW4gZGVjaWRlIHdoaWNoIGZ1dHVyZQordmVyc2lvbnMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGNhbiBiZSB1c2VkLCB0aGF0IHByb3h5J3MKK3B1YmxpYyBzdGF0ZW1lbnQgb2YgYWNjZXB0YW5jZSBvZiBhIHZlcnNpb24gcGVybWFuZW50bHkgYXV0aG9yaXplcyB5b3UKK3RvIGNob29zZSB0aGF0IHZlcnNpb24gZm9yIHRoZSBQcm9ncmFtLgorCisgIExhdGVyIGxpY2Vuc2UgdmVyc2lvbnMgbWF5IGdpdmUgeW91IGFkZGl0aW9uYWwgb3IgZGlmZmVyZW50CitwZXJtaXNzaW9ucy4gIEhvd2V2ZXIsIG5vIGFkZGl0aW9uYWwgb2JsaWdhdGlvbnMgYXJlIGltcG9zZWQgb24gYW55CithdXRob3Igb3IgY29weXJpZ2h0IGhvbGRlciBhcyBhIHJlc3VsdCBvZiB5b3VyIGNob29zaW5nIHRvIGZvbGxvdyBhCitsYXRlciB2ZXJzaW9uLgorCisgIDE1LiBEaXNjbGFpbWVyIG9mIFdhcnJhbnR5LgorCisgIFRIRVJFIElTIE5PIFdBUlJBTlRZIEZPUiBUSEUgUFJPR1JBTSwgVE8gVEhFIEVYVEVOVCBQRVJNSVRURUQgQlkKK0FQUExJQ0FCTEUgTEFXLiAgRVhDRVBUIFdIRU4gT1RIRVJXSVNFIFNUQVRFRCBJTiBXUklUSU5HIFRIRSBDT1BZUklHSFQKK0hPTERFUlMgQU5EL09SIE9USEVSIFBBUlRJRVMgUFJPVklERSBUSEUgUFJPR1JBTSAiQVMgSVMiIFdJVEhPVVQgV0FSUkFOVFkKK09GIEFOWSBLSU5ELCBFSVRIRVIgRVhQUkVTU0VEIE9SIElNUExJRUQsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorUFVSUE9TRS4gIFRIRSBFTlRJUkUgUklTSyBBUyBUTyBUSEUgUVVBTElUWSBBTkQgUEVSRk9STUFOQ0UgT0YgVEhFIFBST0dSQU0KK0lTIFdJVEggWU9VLiAgU0hPVUxEIFRIRSBQUk9HUkFNIFBST1ZFIERFRkVDVElWRSwgWU9VIEFTU1VNRSBUSEUgQ09TVCBPRgorQUxMIE5FQ0VTU0FSWSBTRVJWSUNJTkcsIFJFUEFJUiBPUiBDT1JSRUNUSU9OLgorCisgIDE2LiBMaW1pdGF0aW9uIG9mIExpYWJpbGl0eS4KKworICBJTiBOTyBFVkVOVCBVTkxFU1MgUkVRVUlSRUQgQlkgQVBQTElDQUJMRSBMQVcgT1IgQUdSRUVEIFRPIElOIFdSSVRJTkcKK1dJTEwgQU5ZIENPUFlSSUdIVCBIT0xERVIsIE9SIEFOWSBPVEhFUiBQQVJUWSBXSE8gTU9ESUZJRVMgQU5EL09SIENPTlZFWVMKK1RIRSBQUk9HUkFNIEFTIFBFUk1JVFRFRCBBQk9WRSwgQkUgTElBQkxFIFRPIFlPVSBGT1IgREFNQUdFUywgSU5DTFVESU5HIEFOWQorR0VORVJBTCwgU1BFQ0lBTCwgSU5DSURFTlRBTCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgQVJJU0lORyBPVVQgT0YgVEhFCitVU0UgT1IgSU5BQklMSVRZIFRPIFVTRSBUSEUgUFJPR1JBTSAoSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBMT1NTIE9GCitEQVRBIE9SIERBVEEgQkVJTkcgUkVOREVSRUQgSU5BQ0NVUkFURSBPUiBMT1NTRVMgU1VTVEFJTkVEIEJZIFlPVSBPUiBUSElSRAorUEFSVElFUyBPUiBBIEZBSUxVUkUgT0YgVEhFIFBST0dSQU0gVE8gT1BFUkFURSBXSVRIIEFOWSBPVEhFUiBQUk9HUkFNUyksCitFVkVOIElGIFNVQ0ggSE9MREVSIE9SIE9USEVSIFBBUlRZIEhBUyBCRUVOIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCitTVUNIIERBTUFHRVMuCisKKyAgMTcuIEludGVycHJldGF0aW9uIG9mIFNlY3Rpb25zIDE1IGFuZCAxNi4KKworICBJZiB0aGUgZGlzY2xhaW1lciBvZiB3YXJyYW50eSBhbmQgbGltaXRhdGlvbiBvZiBsaWFiaWxpdHkgcHJvdmlkZWQKK2Fib3ZlIGNhbm5vdCBiZSBnaXZlbiBsb2NhbCBsZWdhbCBlZmZlY3QgYWNjb3JkaW5nIHRvIHRoZWlyIHRlcm1zLAorcmV2aWV3aW5nIGNvdXJ0cyBzaGFsbCBhcHBseSBsb2NhbCBsYXcgdGhhdCBtb3N0IGNsb3NlbHkgYXBwcm94aW1hdGVzCithbiBhYnNvbHV0ZSB3YWl2ZXIgb2YgYWxsIGNpdmlsIGxpYWJpbGl0eSBpbiBjb25uZWN0aW9uIHdpdGggdGhlCitQcm9ncmFtLCB1bmxlc3MgYSB3YXJyYW50eSBvciBhc3N1bXB0aW9uIG9mIGxpYWJpbGl0eSBhY2NvbXBhbmllcyBhCitjb3B5IG9mIHRoZSBQcm9ncmFtIGluIHJldHVybiBmb3IgYSBmZWUuCisKKyAgICAgICAgICAgICAgICAgICAgIEVORCBPRiBURVJNUyBBTkQgQ09ORElUSU9OUworCisgICAgICAgICAgICBIb3cgdG8gQXBwbHkgVGhlc2UgVGVybXMgdG8gWW91ciBOZXcgUHJvZ3JhbXMKKworICBJZiB5b3UgZGV2ZWxvcCBhIG5ldyBwcm9ncmFtLCBhbmQgeW91IHdhbnQgaXQgdG8gYmUgb2YgdGhlIGdyZWF0ZXN0Citwb3NzaWJsZSB1c2UgdG8gdGhlIHB1YmxpYywgdGhlIGJlc3Qgd2F5IHRvIGFjaGlldmUgdGhpcyBpcyB0byBtYWtlIGl0CitmcmVlIHNvZnR3YXJlIHdoaWNoIGV2ZXJ5b25lIGNhbiByZWRpc3RyaWJ1dGUgYW5kIGNoYW5nZSB1bmRlciB0aGVzZSB0ZXJtcy4KKworICBUbyBkbyBzbywgYXR0YWNoIHRoZSBmb2xsb3dpbmcgbm90aWNlcyB0byB0aGUgcHJvZ3JhbS4gIEl0IGlzIHNhZmVzdAordG8gYXR0YWNoIHRoZW0gdG8gdGhlIHN0YXJ0IG9mIGVhY2ggc291cmNlIGZpbGUgdG8gbW9zdCBlZmZlY3RpdmVseQorc3RhdGUgdGhlIGV4Y2x1c2lvbiBvZiB3YXJyYW50eTsgYW5kIGVhY2ggZmlsZSBzaG91bGQgaGF2ZSBhdCBsZWFzdAordGhlICJjb3B5cmlnaHQiIGxpbmUgYW5kIGEgcG9pbnRlciB0byB3aGVyZSB0aGUgZnVsbCBub3RpY2UgaXMgZm91bmQuCisKKyAgICA8b25lIGxpbmUgdG8gZ2l2ZSB0aGUgcHJvZ3JhbSdzIG5hbWUgYW5kIGEgYnJpZWYgaWRlYSBvZiB3aGF0IGl0IGRvZXMuPgorICAgIENvcHlyaWdodCAoQykgPHllYXI+ICA8bmFtZSBvZiBhdXRob3I+CisKKyAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTogeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQorICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisgICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IKKyAgICAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisgICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKworICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKK0Fsc28gYWRkIGluZm9ybWF0aW9uIG9uIGhvdyB0byBjb250YWN0IHlvdSBieSBlbGVjdHJvbmljIGFuZCBwYXBlciBtYWlsLgorCisgIElmIHRoZSBwcm9ncmFtIGRvZXMgdGVybWluYWwgaW50ZXJhY3Rpb24sIG1ha2UgaXQgb3V0cHV0IGEgc2hvcnQKK25vdGljZSBsaWtlIHRoaXMgd2hlbiBpdCBzdGFydHMgaW4gYW4gaW50ZXJhY3RpdmUgbW9kZToKKworICAgIDxwcm9ncmFtPiAgQ29weXJpZ2h0IChDKSA8eWVhcj4gIDxuYW1lIG9mIGF1dGhvcj4KKyAgICBUaGlzIHByb2dyYW0gY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZOyBmb3IgZGV0YWlscyB0eXBlIGBzaG93IHcnLgorICAgIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXQKKyAgICB1bmRlciBjZXJ0YWluIGNvbmRpdGlvbnM7IHR5cGUgYHNob3cgYycgZm9yIGRldGFpbHMuCisKK1RoZSBoeXBvdGhldGljYWwgY29tbWFuZHMgYHNob3cgdycgYW5kIGBzaG93IGMnIHNob3VsZCBzaG93IHRoZSBhcHByb3ByaWF0ZQorcGFydHMgb2YgdGhlIEdlbmVyYWwgUHVibGljIExpY2Vuc2UuICBPZiBjb3Vyc2UsIHlvdXIgcHJvZ3JhbSdzIGNvbW1hbmRzCittaWdodCBiZSBkaWZmZXJlbnQ7IGZvciBhIEdVSSBpbnRlcmZhY2UsIHlvdSB3b3VsZCB1c2UgYW4gImFib3V0IGJveCIuCisKKyAgWW91IHNob3VsZCBhbHNvIGdldCB5b3VyIGVtcGxveWVyIChpZiB5b3Ugd29yayBhcyBhIHByb2dyYW1tZXIpIG9yIHNjaG9vbCwKK2lmIGFueSwgdG8gc2lnbiBhICJjb3B5cmlnaHQgZGlzY2xhaW1lciIgZm9yIHRoZSBwcm9ncmFtLCBpZiBuZWNlc3NhcnkuCitGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzLCBhbmQgaG93IHRvIGFwcGx5IGFuZCBmb2xsb3cgdGhlIEdOVSBHUEwsIHNlZQorPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisgIFRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBkb2VzIG5vdCBwZXJtaXQgaW5jb3Jwb3JhdGluZyB5b3VyIHByb2dyYW0KK2ludG8gcHJvcHJpZXRhcnkgcHJvZ3JhbXMuICBJZiB5b3VyIHByb2dyYW0gaXMgYSBzdWJyb3V0aW5lIGxpYnJhcnksIHlvdQorbWF5IGNvbnNpZGVyIGl0IG1vcmUgdXNlZnVsIHRvIHBlcm1pdCBsaW5raW5nIHByb3ByaWV0YXJ5IGFwcGxpY2F0aW9ucyB3aXRoCit0aGUgbGlicmFyeS4gIElmIHRoaXMgaXMgd2hhdCB5b3Ugd2FudCB0byBkbywgdXNlIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwKK1B1YmxpYyBMaWNlbnNlIGluc3RlYWQgb2YgdGhpcyBMaWNlbnNlLiAgQnV0IGZpcnN0LCBwbGVhc2UgcmVhZAorPGh0dHA6Ly93d3cuZ251Lm9yZy9waGlsb3NvcGh5L3doeS1ub3QtbGdwbC5odG1sPi4KZGlmZiAtLWdpdCBhL0ZBUSBiL0ZBUQppbmRleCBjYjc0OTk0Li40ODAwZjFiIDEwMDY0NAotLS0gYS9GQVEKKysrIGIvRkFRCkBAIC0xLDcgKzEsNyBAQAogUTogV2h5IGRvZXMgZG5zbWFzcSBvcGVuIFVEUCBwb3J0cyA+MTAyNCBhcyB3ZWxsIGFzIHBvcnQgNTMuCiAgICBJcyB0aGlzIGEgc2VjdXJpdHkgcHJvYmxlbS90cm9qYW4vYmFja2Rvb3I/CiAKLUE6IFRoZSBoaWdoIHBvcnRzIHRoYXQgZG5zbWFzcSBvcGVucyBpcyBmb3IgcmVwbGllcyBmcm9tIHRoZSB1cHN0cmVhbQorQTogVGhlIGhpZ2ggcG9ydHMgdGhhdCBkbnNtYXNxIG9wZW5zIGFyZSBmb3IgcmVwbGllcyBmcm9tIHRoZSB1cHN0cmVhbQogICAgbmFtZXNlcnZlcihzKS4gUXVlcmllcyBmcm9tIGRuc21hc3EgdG8gdXBzdHJlYW0gbmFtZXNlcnZlcnMgYXJlIHNlbnQKICAgIGZyb20gdGhlc2UgcG9ydHMgYW5kIHJlcGxpZXMgcmVjZWl2ZWQgdG8gdGhlbS4gVGhlIHJlYXNvbiBmb3IgZG9pbmcgdGhpcyBpcwogICAgdGhhdCBtb3N0IGZpcmV3YWxsIHNldHVwcyBibG9jayBpbmNvbWluZyBwYWNrZXRzIF90b18gcG9ydCA1MywgaW4gb3JkZXIKQEAgLTM5LDEwICszOSw5IEBACiAKIFE6IFdpbGwgZG5zbWFzcSBjb21waWxlL3J1biBvbiBub24tTGludXggc3lzdGVtcz8KIAotQTogWWVzLCB0aGVyZSBpcyBleHBsaWNpdCBzdXBwb3J0IGZvciAqQlNEIGFuZCBNYWNPUyBYLiBUaGVyZSBhcmUKLSAgIHN0YXJ0LXVwIHNjcmlwdHMgZm9yIE1hY09TIFggVGlnZXIgYW5kIFBhbnRoZXIgaW4gL2NvbnRyaWIuIEVhcmxpZXIKLSAgIGRuc21hc3EgcmVsZWFzZXMgcmFuIHVuZGVyIFNvbGFyaXMsIGJ1dCB0aGF0IGNhcGFiaWxpdHkgaGFzCi0gICByb3R0ZWQuIERuc21hc3Egd2lsbCBsaW5rIHdpdGggdWNsaWJjIHRvIHByb3ZpZGUgc21hbGwKK0E6IFllcywgdGhlcmUgaXMgZXhwbGljaXQgc3VwcG9ydCBmb3IgKkJTRCBhbmQgTWFjT1MgWCBhbmQgU29sYXJpcy4gCisgICBUaGVyZSBhcmUgc3RhcnQtdXAgc2NyaXB0cyBmb3IgTWFjT1MgWCBUaWdlciBhbmQgUGFudGhlciAKKyAgIGluIC9jb250cmliLiBEbnNtYXNxIHdpbGwgbGluayB3aXRoIHVjbGliYyB0byBwcm92aWRlIHNtYWxsCiAgICBiaW5hcmllcyBzdWl0YWJsZSBmb3IgdXNlIGluIGVtYmVkZGVkIHN5c3RlbXMgc3VjaCBhcwogICAgcm91dGVycy4gKFRoZXJlJ3Mgc3BlY2lhbCBjb2RlIHRvIHN1cHBvcnQgbWFjaGluZXMgd2l0aCBmbGFzaAogICAgZmlsZXN5c3RlbXMgYW5kIG5vIGJhdHRlcnktYmFja2VkIFJUQy4pCkBAIC01MCw3ICs0OSw3IEBACiAgICBwb3J0cyBhbmQgYnVpbGRpbmcgZG5zbWFzcSB3aXRoICJtYWtlIE1BS0U9Z21ha2UiIAogICAgRm9yIG90aGVyIHN5c3RlbXMsIHRyeSBhbHRlcmluZyB0aGUgc2V0dGluZ3MgaW4gY29uZmlnLmguCiAgCi1ROiBNeSBjb21wYW5pZXMnIG5hbWVzZXJ2ZXIga25vd3MgYWJvdXQgc29tZSBuYW1lcyB3aGljaCBhcmVuJ3QgaW4gdGhlCitROiBNeSBjb21wYW55J3MgbmFtZXNlcnZlciBrbm93cyBhYm91dCBzb21lIG5hbWVzIHdoaWNoIGFyZW4ndCBpbiB0aGUKICAgIHB1YmxpYyBETlMuIEV2ZW4gdGhvdWdoIEkgcHV0IGl0IGZpcnN0IGluIC9ldGMvcmVzb2x2LmNvbmYsIGl0CiAgICBkb3Nlbid0IHdvcms6IGRuc21hc3Egc2VlbXMgbm90IHRvIHVzZSB0aGUgbmFtZXNlcnZlcnMgaW4gdGhlIG9yZGVyCiAgICBnaXZlbi4gV2hhdCBhbSBJIGRvaW5nIHdyb25nPwpAQCAtMzgwLDYgKzM3OSwxNCBAQAogICAgaHR0cDovL2xpc3RzLnRoZWtlbGxleXMub3JnLnVrL3BpcGVybWFpbC9kbnNtYXNxLWRpc2N1c3MvMjAwNXEzLzAwMDQzMS5odG1sCiAgCiAKK1E6IEknbSB1c2luZyBkbnNtYXNxIG9uIGEgbWFjaGluZSB3aXRoIHRoZSBzaG9yZXdhbGwgZmlyZXdhbGwsIGFuZAorICAgREhDUCBkb2Vzbid0IHdvcmsuIFdoYXQncyB0aGUgcHJvYmxlbT8KKworQTogVGhpcyBhIHZhcmlhbnQgb24gdGhlIGlwdGFibGVzIHByb2JsZW0uIEV4cGxpY2l0IGRldGFpbHMgb24gaG93IHRvCisgICBwcm9jZWVkIGNhbiBiZSBmb3VuZCBhdCAKKyAgIGh0dHA6Ly9saXN0cy50aGVrZWxsZXlzLm9yZy51ay9waXBlcm1haWwvZG5zbWFzcS1kaXNjdXNzLzIwMDdxNC8wMDE3NjQuaHRtbAorCisKIFE6IERuc21hc3EgbG9ncyAicnVubmluZyBhcyByb290IGJlY2F1c2Ugc2V0dGluZyBjYXBhYmlsaXRpZXMgZmFpbGVkIgogICAgd2hlbiBpdCBzdGFydHMgdXAuIFdoeSBkaWQgdGhhdCBoYXBwZW4gYW5kIHdoYXQgY2FuIGRvIHRvIGZpeCBpdD8KIApAQCAtNDI5LDkgKzQzNiw2IEBACiAgICBjaGFpbiByZWFjdGlvbiBydW5hd2F5IHdpbGwgb2NjdXIuIFRvIGF2b2lkIHRoaXMsIHVzZSBzeXNsb2ctbmcKICAgIGFuZCB0dXJuIG9uIHN5c2xvZy1uZydzIGRucy1jYWNoZSBmdW5jdGlvbi4KIAotIAotCi0KIAogCiAKZGlmZiAtLWdpdCBhL01ha2VmaWxlIGIvTWFrZWZpbGUKaW5kZXggNDA2NjI1ZC4uYTY0N2NkOCAxMDA2NDQKLS0tIGEvTWFrZWZpbGUKKysrIGIvTWFrZWZpbGUKQEAgLTEsMTggKzEsNDcgQEAKLVBSRUZJWCA/PSAvdXNyL2xvY2FsCi1CSU5ESVIgPz0gJHtQUkVGSVh9L3NiaW4KLU1BTkRJUiA/PSAke1BSRUZJWH0vc2hhcmUvbWFuCi1MT0NBTEVESVIgPz0gJHtQUkVGSVh9L3NoYXJlL2xvY2FsZQorIyBkbnNtYXNxIGlzIENvcHlyaWdodCAoYykgMjAwMC0yMDA3IFNpbW9uIEtlbGxleQorIworIyAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKKyMgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CisjICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgZGF0ZWQgSnVuZSwgMTk5MSwgb3IKKyMgIChhdCB5b3VyIG9wdGlvbikgdmVyc2lvbiAzIGRhdGVkIDI5IEp1bmUsIDIwMDcuCisjCisjICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyMgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisjICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCisjICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorIyAgICAKKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCisKK1BSRUZJWCA9IC91c3IvbG9jYWwKK0JJTkRJUiA9ICR7UFJFRklYfS9zYmluCitNQU5ESVIgPSAke1BSRUZJWH0vc2hhcmUvbWFuCitMT0NBTEVESVIgPSAke1BSRUZJWH0vc2hhcmUvbG9jYWxlCiAKIFNSQyA9IHNyYwogUE8gPSBwbwogTUFOID0gbWFuCiAKLUNGTEFHUz89IC1PMgorUEtHX0NPTkZJRyA9IHBrZy1jb25maWcKK0FXSyA9IG5hd2sKK0lOU1RBTEwgPSBpbnN0YWxsCisKK0RCVVNfTUlOT1I9IiBgZWNobyAkKENPUFRTKSB8IC4uL2JsZC9wa2ctd3JhcHBlciAkKFBLR19DT05GSUcpIC0tbW9kdmVyc2lvbiBkYnVzLTEgfCAkKEFXSykgLUYgLiAtLSAneyBpZiAoJCQoTkYtMSkpIHByaW50IFwiLUREQlVTX01JTk9SPVwiJCQoTkYtMSkgfSdgIiAKK0RCVVNfQ0ZMQUdTPSJgZWNobyAkKENPUFRTKSB8IC4uL2JsZC9wa2ctd3JhcHBlciAkKFBLR19DT05GSUcpIC0tY2ZsYWdzIGRidXMtMWAiIAorREJVU19MSUJTPSIgIGBlY2hvICQoQ09QVFMpIHwgLi4vYmxkL3BrZy13cmFwcGVyICQoUEtHX0NPTkZJRykgLS1saWJzIGRidXMtMWAiIAorU1VOT1NfVkVSPSIgIGBpZiB1bmFtZSB8IGdyZXAgU3VuT1MgMj4mMSA+L2Rldi9udWxsOyB0aGVuIHVuYW1lIC1yIHwgJChBV0spIC1GIC4gLS0gJ3sgcHJpbnQgXCItRFNVTk9TX1ZFUj1cIiQkMiB9JzsgZmlgIgorU1VOT1NfTElCUz0iIGBpZiB1bmFtZSB8IGdyZXAgU3VuT1MgMj4mMSA+L2Rldi9udWxsOyB0aGVuIGVjaG8gLWxzb2NrZXQgLWxuc2wgLWxwb3NpeDQ7IGZpIGAiCiAKIGFsbCA6ICAgZG5zbWFzcQogCiBkbnNtYXNxIDoKLQkkKE1BS0UpIEkxOE49LUROT19HRVRURVhUIC1mIC4uL2JsZC9NYWtlZmlsZSAtQyAkKFNSQykgZG5zbWFzcSAKKwljZCAkKFNSQykgJiYgJChNQUtFKSBcCisgREJVU19NSU5PUj0kKERCVVNfTUlOT1IpIFwKKyBEQlVTX0NGTEFHUz0kKERCVVNfQ0ZMQUdTKSBcCisgREJVU19MSUJTPSQoREJVU19MSUJTKSBcCisgU1VOT1NfTElCUz0kKFNVTk9TX0xJQlMpIFwKKyBTVU5PU19WRVI9JChTVU5PU19WRVIpIFwKKyAtZiAuLi9ibGQvTWFrZWZpbGUgZG5zbWFzcSAKIAogY2xlYW4gOgogCXJtIC1mICp+ICQoU1JDKS8qLm1vIGNvbnRyaWIvKi8qfiAqLyp+ICQoU1JDKS8qLnBvdCAKQEAgLTIxLDE0ICs1MCwyMSBAQAogaW5zdGFsbCA6IGFsbCBpbnN0YWxsLWNvbW1vbgogCiBpbnN0YWxsLWNvbW1vbiA6Ci0JaW5zdGFsbCAtZCAkKERFU1RESVIpJChCSU5ESVIpIC1kICQoREVTVERJUikkKE1BTkRJUikvbWFuOAotCWluc3RhbGwgLW0gNjQ0ICQoTUFOKS9kbnNtYXNxLjggJChERVNURElSKSQoTUFORElSKS9tYW44IAotCWluc3RhbGwgLW0gNzU1ICQoU1JDKS9kbnNtYXNxICQoREVTVERJUikkKEJJTkRJUikKKwkkKElOU1RBTEwpIC1kICQoREVTVERJUikkKEJJTkRJUikgLWQgJChERVNURElSKSQoTUFORElSKS9tYW44CisJJChJTlNUQUxMKSAtbSA2NDQgJChNQU4pL2Ruc21hc3EuOCAkKERFU1RESVIpJChNQU5ESVIpL21hbjggCisJJChJTlNUQUxMKSAtbSA3NTUgJChTUkMpL2Ruc21hc3EgJChERVNURElSKSQoQklORElSKQogCiBhbGwtaTE4biA6Ci0JJChNQUtFKSBJMThOPS1ETE9DQUxFRElSPSdcIiQoTE9DQUxFRElSKVwiJyAtZiAuLi9ibGQvTWFrZWZpbGUgLUMgJChTUkMpIGRuc21hc3EKKwljZCAkKFNSQykgJiYgJChNQUtFKSBcCisgSTE4Tj0tRExPQ0FMRURJUj0nXCIkKExPQ0FMRURJUilcIicgXAorIERCVVNfTUlOT1I9JChEQlVTX01JTk9SKSBcCisgREJVU19DRkxBR1M9JChEQlVTX0NGTEFHUykgXAorIERCVVNfTElCUz0kKERCVVNfTElCUykgXAorIFNVTk9TX0xJQlM9JChTVU5PU19MSUJTKSBcCisgU1VOT1NfVkVSPSQoU1VOT1NfVkVSKSBcCisgLWYgLi4vYmxkL01ha2VmaWxlIGRuc21hc3EgCiAJY2QgJChQTyk7IGZvciBmIGluICoucG87IGRvIFwKLQkJJChNQUtFKSAtZiAuLi9ibGQvTWFrZWZpbGUgLUMgLi4vJChTUkMpICQke2YlLnBvfS5tbzsgXAorCQljZCAuLi8kKFNSQykgJiYgJChNQUtFKSAtZiAuLi9ibGQvTWFrZWZpbGUgJCR7ZiUucG99Lm1vOyBcCiAJZG9uZQogCiBpbnN0YWxsLWkxOG4gOiBhbGwtaTE4biBpbnN0YWxsLWNvbW1vbgpkaWZmIC0tZ2l0IGEvYmxkL01ha2VmaWxlIGIvYmxkL01ha2VmaWxlCmluZGV4IGMwNzJhOWEuLmU2MjIyOTYgMTAwNjQ0Ci0tLSBhL2JsZC9NYWtlZmlsZQorKysgYi9ibGQvTWFrZWZpbGUKQEAgLTEsMTYgKzEsMTQgQEAKLUNGTEFHUyA/PSAtTzIKLVBLR19DT05GSUcgPz0gcGtnLWNvbmZpZwotCitDRkxBR1MgPSAtV2FsbCAtVyAtTzIKIAogT0JKUyA9IGNhY2hlLm8gcmZjMTAzNS5vIHV0aWwubyBvcHRpb24ubyBmb3J3YXJkLm8gaXNjLm8gbmV0d29yay5vIFwKICAgICAgICBkbnNtYXNxLm8gZGhjcC5vIGxlYXNlLm8gcmZjMjEzMS5vIG5ldGxpbmsubyBkYnVzLm8gYnBmLm8gXAogICAgICAgIGhlbHBlci5vIHRmdHAubyBsb2cubwogCiAuYy5vOgotCSQoQ0MpICQoQ0ZMQUdTKSAkKENPUFRTKSAkKEkxOE4pIGBlY2hvICQoQ09QVFMpIHwgLi4vYmxkL3BrZy13cmFwcGVyICQoUEtHX0NPTkZJRykgLS1jZmxhZ3MgZGJ1cy0xYCAkKFJQTV9PUFRfRkxBR1MpIC1XYWxsIC1XIC1jICQ8CisJJChDQykgJChDRkxBR1MpICQoQ09QVFMpICQoREJVU19NSU5PUikgJChJMThOKSAkKERCVVNfQ0ZMQUdTKSAkKFNVTk9TX1ZFUikgJChSUE1fT1BUX0ZMQUdTKSAtYyAkPAogCiBkbnNtYXNxIDogJChPQkpTKQotCSQoQ0MpICQoTERGTEFHUykgLW8gJEAgICQoT0JKUykgYGVjaG8gJChDT1BUUykgfCAuLi9ibGQvcGtnLXdyYXBwZXIgJChQS0dfQ09ORklHKSAtLWxpYnMgZGJ1cy0xYCAkKExJQlMpIAorCSQoQ0MpICQoTERGTEFHUykgLW8gJEAgICQoT0JKUykgJChEQlVTX0xJQlMpICQoU1VOT1NfTElCUykgJChMSUJTKSAKICAKIGRuc21hc3EucG90IDogJChPQkpTOi5vPS5jKSBkbnNtYXNxLmggY29uZmlnLmgKIAl4Z2V0dGV4dCAtZCBkbnNtYXNxIC0tZm9yZWlnbi11c2VyIC0ta2V5d29yZD1fIC1vIGRuc21hc3EucG90IC1pICQoT0JKUzoubz0uYykKZGlmZiAtLWdpdCBhL2JsZC9pbnN0YWxsLW1hbiBiL2JsZC9pbnN0YWxsLW1hbgppbmRleCBjNTY5Zjg1Li5mNmRlYTc1IDEwMDc1NQotLS0gYS9ibGQvaW5zdGFsbC1tYW4KKysrIGIvYmxkL2luc3RhbGwtbWFuCkBAIC0yLDcgKzIsNyBAQAogCiBmb3IgZiBpbiAqOyBkbwogICBpZiBbIC1kICRmIF07IHRoZW4KLSAgICAgaW5zdGFsbCAtZCAkMS8kZi9tYW44IAorICAgICBpbnN0YWxsIC1tIDc1NSAtZCAkMS8kZi9tYW44IAogICAgICBpbnN0YWxsIC1tIDY0NCAkZi9kbnNtYXNxLjggJDEvJGYvbWFuOAogICAgICBlY2hvIGluc3RhbGxpbmcgJDEvJGYvbWFuOC9kbnNtYXNxLjgKICAgZmkKZGlmZiAtLWdpdCBhL2JsZC9pbnN0YWxsLW1vIGIvYmxkL2luc3RhbGwtbW8KaW5kZXggNzI1YWE4MS4uZTZkNDYyYSAxMDA3NTUKLS0tIGEvYmxkL2luc3RhbGwtbW8KKysrIGIvYmxkL2luc3RhbGwtbW8KQEAgLTEsNyArMSw3IEBACiAjIS9iaW4vc2gKIAogZm9yIGYgaW4gKi5tbzsgZG8KLSAgaW5zdGFsbCAtZCAkMS8ke2YlLm1vfS9MQ19NRVNTQUdFUworICBpbnN0YWxsIC1tIDc1NSAtZCAkMS8ke2YlLm1vfS9MQ19NRVNTQUdFUwogICBpbnN0YWxsIC1tIDY0NCAkZiAkMS8ke2YlLm1vfS9MQ19NRVNTQUdFUy9kbnNtYXNxLm1vCiAgIGVjaG8gaW5zdGFsbGluZyAkMS8ke2YlLm1vfS9MQ19NRVNTQUdFUy9kbnNtYXNxLm1vCiBkb25lCmRpZmYgLS1naXQgYS9ibGQvcGtnLXdyYXBwZXIgYi9ibGQvcGtnLXdyYXBwZXIKaW5kZXggNTVlZmNlZC4uNjY4NTllMiAxMDA3NTUKLS0tIGEvYmxkL3BrZy13cmFwcGVyCisrKyBiL2JsZC9wa2ctd3JhcHBlcgpAQCAtMSw2ICsxLDcgQEAKICMhL2Jpbi9zaAogCi1pZiBncmVwIC1xICJeXCMuKmRlZmluZS4qSEFWRV9EQlVTIiBjb25maWcuaCB8fCBncmVwIC1xIEhBVkVfREJVUyA7IHRoZW4KK2lmIGdyZXAgIl5cIy4qZGVmaW5lLipIQVZFX0RCVVMiIGNvbmZpZy5oIDI+JjEgPi9kZXYvbnVsbCB8fCBcCisgICBncmVwIEhBVkVfREJVUyAyPiYxID4vZGV2L251bGwgOyB0aGVuCiAgIGV4ZWMgJCoKIGZpCiAKZGlmZiAtLWdpdCBhL2Ruc21hc3EuY29uZi5leGFtcGxlIGIvZG5zbWFzcS5jb25mLmV4YW1wbGUKaW5kZXggZjA2NTkwYi4uYzZmZWQwNSAxMDA2NDQKLS0tIGEvZG5zbWFzcS5jb25mLmV4YW1wbGUKKysrIGIvZG5zbWFzcS5jb25mLmV4YW1wbGUKQEAgLTE5LDcgKzE5LDcgQEAKICMgVW5jb21tZW50IHRoaXMgdG8gZmlsdGVyIHVzZWxlc3Mgd2luZG93cy1vcmlnaW5hdGVkIEROUyByZXF1ZXN0cwogIyB3aGljaCBjYW4gdHJpZ2dlciBkaWFsLW9uLWRlbWFuZCBsaW5rcyBuZWVkbGVzc2x5LgogIyBOb3RlIHRoYXQgKGFtb25nc3Qgb3RoZXIgdGhpbmdzKSB0aGlzIGJsb2NrcyBhbGwgU1JWIHJlcXVlc3RzLAotIyBzbyBkb24ndCB1c2UgaXQgaWYgeW91IHVzZSBlZyBLZXJiZXJvcy4KKyMgc28gZG9uJ3QgdXNlIGl0IGlmIHlvdSB1c2UgZWcgS2VyYmVyb3MsIFNJUCwgWE1NUCBvciBHb29nbGUtdGFsay4KICMgVGhpcyBvcHRpb24gb25seSBhZmZlY3RzIGZvcndhcmRpbmcsIFNSViByZWNvcmRzIG9yaWdpbmF0aW5nIGZvcgogIyBkbnNtYXNxICh2aWEgc3J2LWhvc3Q9IGxpbmVzKSBhcmUgbm90IHN1cHByZXNzZWQgYnkgaXQuCiAjZmlsdGVyd2luMmsKQEAgLTYxLDYgKzYxLDE4IEBACiAjIHdlYnNlcnZlci4KICNhZGRyZXNzPS9kb3VibGVjbGljay5uZXQvMTI3LjAuMC4xCiAKKyMgLS1hZGRyZXNzIChhbmQgLS1zZXJ2ZXIpIHdvcmsgd2l0aCBJUHY2IGFkZHJlc3NlcyB0b28uCisjYWRkcmVzcz0vd3d3LnRoZWtlbGxleXMub3JnLnVrL2ZlODA6OjIwZDo2MGZmOmZlMzY6ZjgzCisKKyMgWW91IGNhbiBjb250cm9sIGhvdyBkbnNtYXNxIHRhbGtzIHRvIGEgc2VydmVyOiB0aGlzIGZvcmNlcyAKKyMgcXVlcmllcyB0byAxMC4xLjIuMyB0byBiZSByb3V0ZWQgdmlhIGV0aDEKKyMgLS1zZXJ2ZXI9MTAuMS4yLjNAZXRoMQorCisjIGFuZCB0aGlzIHNldHMgdGhlIHNvdXJjZSAoaWUgbG9jYWwpIGFkZHJlc3MgdXNlZCB0byB0YWxrIHRvCisjIDEwLjEuMi4zIHRvIDE5Mi4xNjguMS4xIHBvcnQgNTUgKHRoZXJlIG11c3QgYmUgYSBpbnRlcmZhY2Ugd2l0aCB0aGF0CisjIElQIG9uIHRoZSBtYWNoaW5lLCBvYnZpb3VzbHkpLgorIyAtLXNlcnZlcj0xMC4xLjIuM0AxOTIuMTY4LjEuMSM1NQorCiAjIElmIHlvdSB3YW50IGRuc21hc3EgdG8gY2hhbmdlIHVpZCBhbmQgZ2lkIHRvIHNvbWV0aGluZyBvdGhlcgogIyB0aGFuIHRoZSBkZWZhdWx0LCBlZGl0IHRoZSBmb2xsb3dpbmcgbGluZXMuCiAjdXNlcj0KQEAgLTE0NSw3ICsxNTcsNyBAQAogIyB0aGUgbmFtZSBmcmVkIGFuZCBJUCBhZGRyZXNzIDE5Mi4xNjguMC42MCBhbmQgbGVhc2UgdGltZSA0NSBtaW51dGVzCiAjZGhjcC1ob3N0PTExOjIyOjMzOjQ0OjU1OjY2LGZyZWQsMTkyLjE2OC4wLjYwLDQ1bQogCi0jIEdpdmUgdGhlIG1hY2hpbmUgd2hpY2ggc2F5cyBpdCdzIG5hbWUgaXMgImJlcnQiIElQIGFkZHJlc3MKKyMgR2l2ZSB0aGUgbWFjaGluZSB3aGljaCBzYXlzIGl0cyBuYW1lIGlzICJiZXJ0IiBJUCBhZGRyZXNzCiAjIDE5Mi4xNjguMC43MCBhbmQgYW4gaW5maW5pdGUgbGVhc2UKICNkaGNwLWhvc3Q9YmVydCwxOTIuMTY4LjAuNzAsaW5maW5pdGUKIApAQCAtMzA5LDYgKzMyMSwxMyBAQAogIyBleHRlcm5hbCBvbmUuIChTZWUgYmVsb3cgZm9yIGhvdyB0byBlbmFibGUgdGhlIFRGVFAgc2VydmVyLikKICNkaGNwLWJvb3Q9cHhlbGludXguMAogCisjIEJvb3QgZm9yIEV0aGVyYm9vdCBnUFhFLiBUaGUgaWRlYSBpcyB0byBzZW5kIHR3byBkaWZmZXJlbnQKKyMgZmlsZW5hbWVzLCB0aGUgZmlyc3QgbG9hZHMgZ1BYRSwgYW5kIHRoZSBzZWNvbmQgdGVsbHMgZ1BYRSB3aGF0IHRvCisjIGxvYWQuIFRoZSBkaGNwLW1hdGNoIHNldHMgdGhlIGdweGUgdGFnIGZvciByZXF1ZXN0cyBmcm9tIGdQWEUuCisjZGhjcC1tYXRjaD1ncHhlLDE3NSAjIGdQWEUgc2VuZHMgYSAxNzUgb3B0aW9uLgorI2RoY3AtYm9vdD1uZXQ6I2dweGUsdW5kaW9ubHkua3B4ZQorI2RoY3AtYm9vdD1teWJvb3RpbWFnZQorIAogIyBFbmFibGUgZG5zbWFzcSdzIGJ1aWx0LWluIFRGVFAgc2VydmVyCiAjZW5hYmxlLXRmdHAKIApkaWZmIC0tZ2l0IGEvZG9jLmh0bWwgYi9kb2MuaHRtbAppbmRleCA2NWI2ODAyLi5kOGI4ZmQ5IDEwMDY0NAotLS0gYS9kb2MuaHRtbAorKysgYi9kb2MuaHRtbApAQCAtMTksOCArMTksOCBAQAogMTAwMCBjbGllbnRzIGlzIGtub3duIHRvIHdvcmspIHdoZXJlIGxvdwogcmVzb3VyY2UgdXNlIGFuZCBlYXNlIG9mIGNvbmZpZ3VyYXRpb24gYXJlIGltcG9ydGFudC4gCiA8UD4KLVN1cHBvcnRlZCBwbGF0Zm9ybXMgaW5jbHVkZSBMaW51eCAod2l0aCBnbGliYyBhbmQgdWNsaWJjKSwgKkJTRCBhbmQKLU1hYyBPUyBYLgorU3VwcG9ydGVkIHBsYXRmb3JtcyBpbmNsdWRlIExpbnV4ICh3aXRoIGdsaWJjIGFuZCB1Y2xpYmMpLCAqQlNELAorU29sYXJpcyBhbmQgTWFjIE9TIFguCiBEbnNtYXNxIGlzIGluY2x1ZGVkIGluIGF0IGxlYXN0IHRoZSBmb2xsb3dpbmcgTGludXggZGlzdHJpYnV0aW9uczoKIEdlbnRvbywgRGViaWFuLCBTbGFja3dhcmUsIFN1c2UsIEZlZG9yYSwKIFNtb290aHdhbGwsIElQLUNvcCwgZmxvcHB5ZncsIEZpcmVib3gsIExFQUYsIEZyZWVzY28sIGZsaTRsLApAQCAtNTksNyArNTksNyBAQAogPC9MST4KIDxMST4KIERuc21hc3EgY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYXV0b21hdGljYWxseSBwaWNrIHVwIHRoZSBhZGRyZXNzZXMgb2YKLWl0J3MgdXBzdHJlYW0gbmFtZXNlcnZlcnMgZnJvbSBwcHAgb3IgZGhjcCBjb25maWd1cmF0aW9uLiBJdCB3aWxsCitpdHMgdXBzdHJlYW0gbmFtZXNlcnZlcnMgZnJvbSBwcHAgb3IgZGhjcCBjb25maWd1cmF0aW9uLiBJdCB3aWxsCiBhdXRvbWF0aWNhbGx5IHJlbG9hZCB0aGlzIGluZm9ybWF0aW9uIGlmIGl0IGNoYW5nZXMuIFRoaXMgZmFjaWxpdHkKIHdpbGwgYmUgb2YgcGFydGljdWxhciBpbnRlcmVzdCB0byBtYWludGFpbmVycyBvZiBMaW51eCBmaXJld2FsbAogZGlzdHJpYnV0aW9ucyBzaW5jZSBpdCBhbGxvd3MgZG5zIGNvbmZpZ3VyYXRpb24gdG8gYmUgbWFkZSBhdXRvbWF0aWMuCmRpZmYgLS1naXQgYS9tYW4vZG5zbWFzcS44IGIvbWFuL2Ruc21hc3EuOAppbmRleCAwOWM3ZmFjLi5mOWZiNTgwIDEwMDY0NAotLS0gYS9tYW4vZG5zbWFzcS44CisrKyBiL21hbi9kbnNtYXNxLjgKQEAgLTUyLDYgKzUyLDE0IEBACiByZWR1Y2UgdGhlIGxvYWQgb24gdGhlIHNlcnZlciBhdCB0aGUgZXhwZW5zZSBvZiBjbGllbnRzIHVzaW5nIHN0YWxlCiBkYXRhIHVuZGVyIHNvbWUgY2lyY3Vtc3RhbmNlcy4KIC5UUAorLkIgLS1uZWctdHRsPTx0aW1lPgorTmVnYXRpdmUgcmVwbGllcyBmcm9tIHVwc3RyZWFtIHNlcnZlcnMgbm9ybWFsbHkgY29udGFpbiB0aW1lLXRvLWxpdmUKK2luZm9ybWF0aW9uIGluIFNPQSByZWNvcmRzIHdoaWNoIGRuc21hc3EgdXNlcyBmb3IgY2FjaGluZy4gSWYgdGhlCityZXBsaWVzIGZyb20gdXBzdHJlYW0gc2VydmVycyBvbWl0IHRoaXMgaW5mb3JtYXRpb24sIGRuc21hc3EgZG9lcyBub3QKK2NhY2hlIHRoZSByZXBseS4gVGhpcyBvcHRpb24gZ2l2ZXMgYSBkZWZhdWx0IHZhbHVlIGZvciB0aW1lLXRvLWxpdmUKKyhpbiBzZWNvbmRzKSB3aGljaCBkbnNtYXNxIHVzZXMgdG8gY2FjaGUgbmVnYXRpdmUgcmVwbGllcyBldmVuIGluIAordGhlIGFic2VuY2Ugb2YgYW4gU09BIHJlY29yZC4gCisuVFAKIC5CIFwtaywgLS1rZWVwLWluLWZvcmVncm91bmQKIERvIG5vdCBnbyBpbnRvIHRoZSBiYWNrZ3JvdW5kIGF0IHN0YXJ0dXAgYnV0IG90aGVyd2lzZSBydW4gYXMKIG5vcm1hbC4gVGhpcyBpcyBpbnRlbmRlZCBmb3IgdXNlIHdoZW4gZG5zbWFzcSBpcyBydW4gdW5kZXIgZGFlbW9udG9vbHMKQEAgLTEwNSw4ICsxMTMsOCBAQAogUHJpbnQgdGhlIHZlcnNpb24gbnVtYmVyLgogLlRQCiAuQiBcLXAsIC0tcG9ydD08cG9ydD4KLUxpc3RlbiBvbiA8cG9ydD4gaW5zdGVhZCBvZiB0aGUgc3RhbmRhcmQgRE5TIHBvcnQgKDUzKS4gVXNlZnVsIG1haW5seSBmb3IKLWRlYnVnZ2luZy4KK0xpc3RlbiBvbiA8cG9ydD4gaW5zdGVhZCBvZiB0aGUgc3RhbmRhcmQgRE5TIHBvcnQgKDUzKS4gU2V0dGluZyB0aGlzCit0byB6ZXJvIGNvbXBsZXRlbHkgZGlzYWJsZXMgRE5TIGZ1bmN0aW9uLCBsZWF2aW5nIG9ubHkgREhDUCBhbmQvb3IgVEZUUC4KIC5UUAogLkIgXC1QLCAtLWVkbnMtcGFja2V0LW1heD08c2l6ZT4KIFNwZWNpZnkgdGhlIGxhcmdlc3QgRUROUy4wIFVEUCBwYWNrZXQgd2hpY2ggaXMgc3VwcG9ydGVkIGJ5IHRoZSBETlMKQEAgLTIzNiwxMCArMjQ0LDIxIEBACiAuVFAgCiAuQiBcLW8sIC0tc3RyaWN0LW9yZGVyCiBCeSBkZWZhdWx0LCBkbnNtYXNxIHdpbGwgc2VuZCBxdWVyaWVzIHRvIGFueSBvZiB0aGUgdXBzdHJlYW0gc2VydmVycwotaXQga25vd3MgYWJvdXQgYW5kIHRyaWVzIHRvIGZhdm91ciBzZXJ2ZXJzIHRvIGFyZSBrbm93biB0bworaXQga25vd3MgYWJvdXQgYW5kIHRyaWVzIHRvIGZhdm91ciBzZXJ2ZXJzIHRoYXQgYXJlIGtub3duIHRvCiBiZSB1cC4gU2V0dGluZyB0aGlzIGZsYWcgZm9yY2VzIGRuc21hc3EgdG8gdHJ5IGVhY2ggcXVlcnkgd2l0aCBlYWNoCiBzZXJ2ZXIgc3RyaWN0bHkgaW4gdGhlIG9yZGVyIHRoZXkgYXBwZWFyIGluIC9ldGMvcmVzb2x2LmNvbmYKIC5UUAorLkIgLS1hbGwtc2VydmVycworQnkgZGVmYXVsdCwgd2hlbiBkbnNtYXNxIGhhcyBtb3JlIHRoYW4gb25lIHVwc3RyZWFtIHNlcnZlciBhdmFpbGFibGUsCitpdCB3aWxsIHNlbmQgcXVlcmllcyB0byBqdXN0IG9uZSBzZXJ2ZXIuIFNldHRpbmcgdGhpcyBmbGFnIGZvcmNlcworZG5zbWFzcSB0byBzZW5kIGFsbCBxdWVyaWVzIHRvIGFsbCBhdmFpbGFibGUgc2VydmVycy4gVGhlIHJlcGx5IGZyb20KK3RoZSBzZXJ2ZXIgd2hpY2ggYW5zd2VycyBmaXJzdCB3aWxsIGJlIHJldHVybmVkIHRvIHRoZSBvcmlnaW5hbCByZXF1ZXN0b3IuCisuVFAKKy5CIC0tc3RvcC1kbnMtcmViaW5kCitSZWplY3QgKGFuZCBsb2cpIGFkZHJlc3NlcyBmcm9tIHVwc3RyZWFtIG5hbWVzZXJ2ZXJzIHdoaWNoIGFyZSBpbiB0aGUKK3ByaXZhdGUgSVAgcmFuZ2VzLiBUaGlzIGJsb2NrcyBhbiBhdHRhY2sgd2hlcmUgYSBicm93c2VyIGJlaGluZCBhCitmaXJld2FsbCBpcyB1c2VkIHRvIHByb2JlIG1hY2hpbmVzIG9uIHRoZSBsb2NhbCBuZXR3b3JrLgorLlRQCiAuQiBcLW4sIC0tbm8tcG9sbAogRG9uJ3QgcG9sbCAvZXRjL3Jlc29sdi5jb25mIGZvciBjaGFuZ2VzLgogLlRQCkBAIC0yNTMsNyArMjcyLDcgQEAKIG9yIGRvbWFpbiBwYXJ0cywgdG8gdXBzdHJlYW0gbmFtZXNlcnZlcnMuIElmIHRoZSBuYW1lIGlzIG5vdCBrbm93bgogZnJvbSAvZXRjL2hvc3RzIG9yIERIQ1AgdGhlbiBhICJub3QgZm91bmQiIGFuc3dlciBpcyByZXR1cm5lZC4KIC5UUAotLkIgXC1TLCAtLWxvY2FsLCAtLXNlcnZlcj1bL1s8ZG9tYWluPl0vW2RvbWFpbi9dXVs8aXBhZGRyPlsjPHBvcnQ+XVtAPHNvdXJjZT5bIzxwb3J0Pl1dXQorLkIgXC1TLCAtLWxvY2FsLCAtLXNlcnZlcj1bL1s8ZG9tYWluPl0vW2RvbWFpbi9dXVs8aXBhZGRyPlsjPHBvcnQ+XVtAPHNvdXJjZS1pcD58PGludGVyZmFjZT5bIzxwb3J0Pl1dCiBTcGVjaWZ5IElQIGFkZHJlc3Mgb2YgdXBzdHJlYW0gc2VydmVycyBkaXJlY3RseS4gU2V0dGluZyB0aGlzIGZsYWcgZG9lcwogbm90IHN1cHByZXNzIHJlYWRpbmcgb2YgL2V0Yy9yZXNvbHYuY29uZiwgdXNlIC1SIHRvIGRvIHRoYXQuIElmIG9uZSBvcgogbW9yZSAKQEAgLTI4NCwxMyArMzAzLDE4IEBACiAuQiBzZXJ2ZXIKIHRvIG1ha2UgY29uZmlndXJhdGlvbiBmaWxlcyBjbGVhcmVyIGluIHRoaXMgY2FzZS4KIAotVGhlIG9wdGlvbmFsIHNlY29uZCBJUCBhZGRyZXNzIGFmdGVyIHRoZSBAIGNoYXJhY3RlciB0ZWxscwotZG5zbWFzcSBob3cgdG8gc2V0IHRoZSBzb3VyY2UgYWRkcmVzcyBvZiB0aGUgcXVlcmllcyB0byB0aGlzCi1uYW1lc2VydmVyLiBJdCBzaG91bGQgYmUgYW4gYWRkcmVzcyBiZWxvbmdpbmcgdG8gdGhlIG1hY2hpbmUgb24gd2hpY2gKK1RoZSBvcHRpb25hbCBzdHJpbmcgYWZ0ZXIgdGhlIEAgY2hhcmFjdGVyIHRlbGxzCitkbnNtYXNxIGhvdyB0byBzZXQgdGhlIHNvdXJjZSBvZiB0aGUgcXVlcmllcyB0byB0aGlzCituYW1lc2VydmVyLiBJdCBzaG91bGQgYmUgYW4gaXAtYWRkcmVzcywgd2hpY2ggc2hvdWxkIGJlbG9uZyB0byB0aGUgbWFjaGluZSBvbiB3aGljaAogZG5zbWFzcSBpcyBydW5uaW5nIG90aGVyd2lzZSB0aGlzIHNlcnZlciBsaW5lIHdpbGwgYmUgbG9nZ2VkIGFuZCB0aGVuCi1pZ25vcmVkLiBUaGUgcXVlcnktcG9ydCBmbGFnIGlzIGlnbm9yZWQgZm9yIGFueSBzZXJ2ZXJzIHdoaWNoIGhhdmUgYQoraWdub3JlZCwgb3IgYW4gaW50ZXJmYWNlIG5hbWUuIElmIGFuIGludGVyZmFjZSBuYW1lIGlzIGdpdmVuLCB0aGVuCitxdWVyaWVzIHRvIHRoZSBzZXJ2ZXIgd2lsbCBiZSBmb3JjZWQgdmlhIHRoYXQgaW50ZXJmYWNlOyBpZiBhbgoraXAtYWRkcmVzcyBpcyBnaXZlbiB0aGVuIHRoZSBzb3VyY2UgYWRkcmVzcyBvZiB0aGUgcXVlcmllcyB3aWxsIGJlIHNldAordG8gdGhhdCBhZGRyZXNzLgorVGhlIHF1ZXJ5LXBvcnQgZmxhZyBpcyBpZ25vcmVkIGZvciBhbnkgc2VydmVycyB3aGljaCBoYXZlIGEKIHNvdXJjZSBhZGRyZXNzIHNwZWNpZmllZCBidXQgdGhlIHBvcnQgbWF5IGJlIHNwZWNpZmllZCBkaXJlY3RseSBhcwotcGFydCBvZiB0aGUgc291cmNlIGFkZHJlc3MuCitwYXJ0IG9mIHRoZSBzb3VyY2UgYWRkcmVzcy4gRm9yY2luZyBxdWVyaWVzIHRvIGFuIGludGVyZmFjZSBpcyBub3QKK2ltcGxlbWVudGVkIG9uIGFsbCBwbGF0Zm9ybXMgc3VwcG9ydGVkIGJ5IGRuc21hc3EuCiAuVFAKIC5CIFwtQSwgLS1hZGRyZXNzPS88ZG9tYWluPi9bZG9tYWluL108aXBhZGRyPgogU3BlY2lmeSBhbiBJUCBhZGRyZXNzIHRvIHJldHVybiBmb3IgYW55IGhvc3QgaW4gdGhlIGdpdmVuIGRvbWFpbnMuCkBAIC0zODEsNyArNDA1LDggQEAKIC5CIGRoY3AtaG9zdAogb3B0aW9ucy4gSWYgdGhlIGxlYXNlIHRpbWUgaXMgZ2l2ZW4sIHRoZW4gbGVhc2VzCiB3aWxsIGJlIGdpdmVuIGZvciB0aGF0IGxlbmd0aCBvZiB0aW1lLiBUaGUgbGVhc2UgdGltZSBpcyBpbiBzZWNvbmRzLAotb3IgbWludXRlcyAoZWcgNDVtKSBvciBob3VycyAoZWcgMWgpIG9yIHRoZSBsaXRlcmFsICJpbmZpbml0ZSIuIFRoaXMKK29yIG1pbnV0ZXMgKGVnIDQ1bSkgb3IgaG91cnMgKGVnIDFoKSBvciB0aGUgbGl0ZXJhbCAiaW5maW5pdGUiLiBUaGUKK21pbmltdW0gbGVhc2UgdGltZSBpcyB0d28gbWludXRyZXMuIFRoaXMKIG9wdGlvbiBtYXkgYmUgcmVwZWF0ZWQsIHdpdGggZGlmZmVyZW50IGFkZHJlc3NlcywgdG8gZW5hYmxlIERIQ1AKIHNlcnZpY2UgdG8gbW9yZSB0aGFuIG9uZSBuZXR3b3JrLiBGb3IgZGlyZWN0bHkgY29ubmVjdGVkIG5ldHdvcmtzIChpZSwKIG5ldHdvcmtzIG9uIHdoaWNoIHRoZSBtYWNoaW5lIHJ1bm5pbmcgZG5zbWFzcSBoYXMgYW4gaW50ZXJmYWNlKSB0aGUKQEAgLTQ2Nyw2ICs0OTIsMTEgQEAKIGFzIHRleHQgdG8gdGhlIHJpZ2h0IG9mICc9JyBpbiAtLWRoY3AtaG9zdC4gVGhlIGFkdmFudGFnZSBvZiBzdG9yaW5nIERIQ1AgaG9zdCBpbmZvcm1hdGlvbgogaW4gdGhpcyBmaWxlIGlzIHRoYXQgaXQgY2FuIGJlIGNoYW5nZWQgd2l0aG91dCByZS1zdGFydGluZyBkbnNtYXNxOgogdGhlIGZpbGUgd2lsbCBiZSByZS1yZWFkIHdoZW4gZG5zbWFzcSByZWNlaXZlcyBTSUdIVVAuCisuVFAKKy5CIC0tZGhjcC1vcHRzZmlsZT08ZmlsZT4KK1JlYWQgREhDUCBvcHRpb24gaW5mb3JtYXRpb24gZnJvbSB0aGUgc3BlY2lmaWVkIGZpbGUuIFRoZSBhZHZhbnRhZ2Ugb2YgCit1c2luZyB0aGlzIG9wdGlvbiBpcyB0aGUgc2FtZSBhcyBmb3IgLS1kaGNwLWhvc3RzZmlsZTogdGhlCitkaGNwLW9wdHNmaWxlIHdpbGwgYmUgcmUtcmVhZCB3aGVuIGRuc21hc3EgcmVjZWl2ZXMgU0lHSFVQLgogLlRQIAogLkIgXC1aLCAtLXJlYWQtZXRoZXJzCiBSZWFkIC9ldGMvZXRoZXJzIGZvciBpbmZvcm1hdGlvbiBhYm91dCBob3N0cyBmb3IgdGhlIERIQ1Agc2VydmVyLiBUaGUKQEAgLTU0Nyw2ICs1NzcsMTQgQEAKIG5vdCBhc2sgZm9yIGl0IGluIHRoZSBwYXJhbWV0ZXIgcmVxdWVzdCBsaXN0LiBUaGlzIGlzIHNvbWV0aW1lcwogbmVlZGVkLCBmb3IgZXhhbXBsZSB3aGVuIHNlbmRpbmcgb3B0aW9ucyB0byBQWEVMaW51eC4KIC5UUAorLkIgLS1kaGNwLW5vLW92ZXJyaWRlCitEaXNhYmxlIHJlLXVzZSBvZiB0aGUgREhDUCBzZXJ2ZXJuYW1lIGFuZCBmaWxlbmFtZSBmaWVsZHMgYXMgZXh0cmEKK29wdGlvbiBzcGFjZS4gSWYgaXQgY2FuLCBkbnNtYXNxIG1vdmVzIHRoZSBib290IHNlcnZlciBhbmQgZmlsZW5hbWUKK2luZm9ybWF0aW9uIChmcm9tIGRoY3AtYm9vdCkgb3V0IG9mIHRoZWlyIGRlZGljYXRlZCBmaWVsZHMgaW50bworREhDUCBvcHRpb25zLiBUaGlzIG1ha2UgZXh0cmEgc3BhY2UgYXZhaWxhYmxlIGluIHRoZSBESENQIHBhY2tldCBmb3IKK29wdGlvbnMgYnV0IGNhbiwgcmFyZWx5LCBjb25mdXNlIG9sZCBvciBicm9rZW4gY2xpZW50cy4gVGhpcyBmbGFnCitmb3JjZXMgInNpbXBsZSBhbmQgc2FmZSIgYmVoYXZpb3VyIHRvIGF2b2lkIHByb2JsZW1zIGluIHN1Y2ggYSBjYXNlLgorLlRQCiAuQiBcLVUsIC0tZGhjcC12ZW5kb3JjbGFzcz08bmV0d29yay1pZD4sPHZlbmRvci1jbGFzcz4KIE1hcCBmcm9tIGEgdmVuZG9yLWNsYXNzIHN0cmluZyB0byBhIG5ldHdvcmsgaWQgdGFnLiBNb3N0IERIQ1AgY2xpZW50cyBwcm92aWRlIGEgCiAidmVuZG9yIGNsYXNzIiB3aGljaCByZXByZXNlbnRzLCBpbiBzb21lIHNlbnNlLCB0aGUgdHlwZSBvZiBob3N0LiBUaGlzIG9wdGlvbiAKQEAgLTU4Miw3ICs2MjAsMTIgQEAKIGFnZW50IElEIGFuZCBvbmUgcHJvdmlkZWQgYnkgYSByZWxheSBhZ2VudCwgdGhlIG5ldHdvcmstaWQgdGFnIGlzIHNldC4KIC5UUAogLkIgLS1kaGNwLXN1YnNjcmlkPTxuZXR3b3JrLWlkPiw8c3Vic2NyaWJlci1pZD4KLU1hcCBmcm9tIFJGQzM5OTMgc3Vic2NyaWJlci1kIHJlbGF5IGFnZW50IG9wdGlvbnMgdG8gbmV0d29yay1pZCB0YWdzLgorTWFwIGZyb20gUkZDMzk5MyBzdWJzY3JpYmVyLWlkIHJlbGF5IGFnZW50IG9wdGlvbnMgdG8gbmV0d29yay1pZCB0YWdzLgorLlRQCisuQiAtLWRoY3AtbWF0Y2g9PG5ldHdvcmstaWQ+LDxvcHRpb24gbnVtYmVyPgorU2V0IHRoZSBuZXR3b3JrLWlkIHRhZyBpZiB0aGUgY2xpZW50IHNlbmRzIGEgREhDUCBvcHRpb24gb2YgdGhlIGdpdmVuCitudW1iZXIuIFRoaXMgY2FuIGJlIHVzZWQgdG8gaWRlbnRpZnkgcGFydGljdWxhciBjbGllbnRzIHdoaWNoIHNlbmQKK2luZm9ybWF0aW9uIHVzaW5nIHByaXZhdGUgb3B0aW9uIG51bWJlcnMuCiAuVFAKIC5CIFwtSiwgLS1kaGNwLWlnbm9yZT08bmV0d29yay1pZD5bLDxuZXR3b3JrLWlkPl0KIFdoZW4gYWxsIHRoZSBnaXZlbiBuZXR3b3JrLWlkcyBtYXRjaCB0aGUgc2V0IG9mIG5ldHdvcmstaWRzIGRlcml2ZWQKQEAgLTU5OCw2ICs2NDEsMTMgQEAKIGRoY3AtaG9zdCBjb25maWd1cmF0aW9uIGluIGRuc21hc3EgYW5kIHRoZSBjb250ZW50cyBvZiAvZXRjL2hvc3RzIGFuZAogL2V0Yy9ldGhlcnMuCiAuVFAKKy5CIC0tZGhjcC1icm9hZGNhc3Q9PG5ldHdvcmstaWQ+Wyw8bmV0d29yay1pZD5dCitXaGVuIGFsbCB0aGUgZ2l2ZW4gbmV0d29yay1pZHMgbWF0Y2ggdGhlIHNldCBvZiBuZXR3b3JrLWlkcyBkZXJpdmVkCitmcm9tIHRoZSBuZXQsIGhvc3QsIHZlbmRvciBhbmQgdXNlciBjbGFzc2VzLCBhbHdheXMgdXNlIGJyb2FkY2FzdCB0bworY29tbXVuaWNhdGUgd2l0aCB0aGUgaG9zdCB3aGVuIGl0IGlzIHVuY29uZmlndXJlZC4gTW9zdCBESENQIGNsaWVudHMgd2hpY2gKK25lZWQgYnJvYWRjYXN0IHJlcGxpZXMgc2V0IGEgZmxhZyBpbiB0aGVpciByZXF1ZXN0cyBzbyB0aGF0IHRoaXMKK2hhcHBlbnMgYXV0b21hdGljYWxseSwgc29tZSBvbGQgQk9PVFAgY2xpZW50cyBkbyBub3QuCisuVFAKIC5CIFwtTSwgLS1kaGNwLWJvb3Q9W25ldDo8bmV0d29yay1pZD4sXTxmaWxlbmFtZT4sWzxzZXJ2ZXJuYW1lPlssPHNlcnZlciBhZGRyZXNzPl1dCiBTZXQgQk9PVFAgb3B0aW9ucyB0byBiZSByZXR1cm5lZCBieSB0aGUgREhDUCBzZXJ2ZXIuIFNlcnZlciBuYW1lIGFuZAogYWRkcmVzcyBhcmUgb3B0aW9uYWw6IGlmIG5vdCBwcm92aWRlZCwgdGhlIG5hbWUgaXMgbGVmdCBlbXB0eSwgYW5kIHRoZQpAQCAtNjc3LDcgKzcyNyw5IEBACiBJZiBhIGxlYXNlIHVzZWQgdG8gaGF2ZSBhIGhvc3RuYW1lLCB3aGljaCBpcwogcmVtb3ZlZCwgYW4gIm9sZCIgZXZlbnQgaXMgZ2VuZXJhdGVkIHdpdGggdGhlIG5ldyBzdGF0ZSBvZiB0aGUgbGVhc2UsIAogaWUgbm8gbmFtZSwgYW5kIHRoZSBmb3JtZXIgbmFtZSBpcyBwcm92aWRlZCBpbiB0aGUgZW52aXJvbm1lbnQgCi12YXJpYWJsZSBETlNNQVNRX09MRF9IT1NUTkFNRS4KK3ZhcmlhYmxlIEROU01BU1FfT0xEX0hPU1ROQU1FLiBETlNNQVNRX0lOVEVSRkFDRSBzdG9yZXMgdGhlIG5hbWUgb2YKK3RoZSBpbnRlcmZhY2Ugb24gd2hpY2ggdGhlIHJldWVzdCBhcnJpdmVkOyB0aGlzIGlzIG5vdCBzZXQgZm9yICJvbGQiCithY3Rpb25zIHdoZW4gZG5zbWFzcSByZXN0YXJ0cy4KIEFsbCBmaWxlIGRlY3JpcHRvcnMgYXJlCiBjbG9zZWQgZXhjZXB0IHN0ZGluLCBzdGRvdXQgYW5kIHN0ZGVyciB3aGljaCBhcmUgb3BlbiB0byAvZGV2L251bGwKIChleGNlcHQgaW4gZGVidWcgbW9kZSkuCkBAIC03NjgsMTIgKzgyMCwyMyBAQAogZmlsZSBkZXNjcmlwdG9yIHBlciB1bmlxdWUgZmlsZSAocGx1cyBhIGZldyBvdGhlcnMpLiBTbyBzZXJ2aW5nIHRoZQogc2FtZSBmaWxlIHNpbXVsdGFuZW91c2x5IHRvIG4gY2xpZW50cyB3aWxsIHVzZSByZXF1aXJlIGFib3V0IG4gKyAxMCBmaWxlCiBkZXNjcmlwdG9ycywgc2VydmluZyBkaWZmZXJlbnQgZmlsZXMgc2ltdWx0YW5lb3VzbHkgdG8gbiBjbGllbnRzIHdpbGwKLXJlcXVpcmUgYWJvdXQgKDIqbikgKyAxMCBkZXNjcmlwdG9ycy4KK3JlcXVpcmUgYWJvdXQgKDIqbikgKyAxMCBkZXNjcmlwdG9ycy4gSWYgCisuQiAtLXRmdHAtcG9ydC1yYW5nZQoraXMgZ2l2ZW4sIHRoYXQgY2FuIGFmZmVjdCB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgY29ubmVjdGlvbnMuCiAuVFAKIC5CIC0tdGZ0cC1uby1ibG9ja3NpemUKIFN0b3AgdGhlIFRGVFAgc2VydmVyIGZyb20gbmVnb3RpYXRpbmcgdGhlICJibG9ja3NpemUiIG9wdGlvbiB3aXRoIGEKIGNsaWVudC4gU29tZSBidWdneSBjbGllbnRzIHJlcXVlc3QgdGhpcyBvcHRpb24gYnV0IHRoZW4gYmVoYXZlIGJhZGx5CiB3aGVuIGl0IGlzIGdyYW50ZWQuCisuVFAKKy5CIC0tdGZ0cC1wb3J0LXJhbmdlPTxzdGFydD4sPGVuZD4KK0EgVEZUUCBzZXJ2ZXIgbGlzdGVucyBvbiBhIHdlbGwta25vd24gcG9ydCAoNjkpIGZvciBjb25uZWN0aW9uIGluaXRpYXRpb24sCitidXQgaXQgYWxzbyB1c2VzIGEgZHluYW1pY2FsbHktYWxsb2NhdGVkIHBvcnQgZm9yIGVhY2gKK2Nvbm5lY3Rpb24uIE5vcm1hbGx5IHRoZXNlIGFyZSBhbGxvY2F0ZWQgYnkgdGhlIE9TLCBidXQgdGhpcyBvcHRpb24KK3NwZWNpZmllcyBhIHJhbmdlIG9mIHBvcnRzIGZvciB1c2UgYnkgVEZUUCB0cmFuc2ZlcnMuIFRoaXMgY2FuIGJlCit1c2VmdWwgd2hlbiBURlRQIGhhcyB0byB0cmF2ZXJzZSBhIGZpcmV3YWxsLiBUaGUgc3RhcnQgb2YgdGhlIHJhbmdlCitjYW5ub3QgYmUgbG93ZXIgdGhhbiAxMDI1IHVubGVzcyBkbnNtYXNxIGlzIHJ1bm5pbmcgYXMgcm9vdC4gVGhlIG51bWJlcgorb2YgY29uY3VycmVudCBURlRQIGNvbm5lY3Rpb25zIGlzIGxpbWl0ZWQgYnkgdGhlIHNpemUgb2YgdGhlIHBvcnQgcmFuZ2UuIAogLlRQICAKIC5CIFwtQywgLS1jb25mLWZpbGU9PGZpbGU+CiBTcGVjaWZ5IGEgZGlmZmVyZW50IGNvbmZpZ3VyYXRpb24gZmlsZS4gVGhlIGNvbmYtZmlsZSBvcHRpb24gaXMgYWxzbyBhbGxvd2VkIGluCkBAIC04MDAsOCArODYzLDggQEAKIG9wdGlvbnMgd2hpY2ggbWF5IG9ubHkgYmUgc3BlY2lmaWVkIG9uY2UsIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgb3ZlcnJpZGVzIAogdGhlIGNvbW1hbmQgbGluZS4gIFF1b3RpbmcgaXMgYWxsb3dlZCBpbiBhIGNvbmZpZyBmaWxlOgogYmV0d2VlbiAiIHF1b3RlcyB0aGUgc3BlY2lhbCBtZWFuaW5ncyBvZiAsOi4gYW5kICMgYXJlIHJlbW92ZWQgYW5kIHRoZQotZm9sbG93aW5nIGVzY2FwZXMgYXJlIGFsbG93ZWQ6IFxcXFwgXFwiIFxcdCBcXGEgXFxiIFxcciBhbmQgXFxuLiBUaGUgbGF0ZXIgCi1jb3JyZXNwb25kaW5nIHRvIHRhYiwgYmVsbCwgYmFja3NwYWNlLCByZXR1cm4gYW5kIG5ld2xpbmUuCitmb2xsb3dpbmcgZXNjYXBlcyBhcmUgYWxsb3dlZDogXFxcXCBcXCIgXFx0IFxcZSBcXGIgXFxyIGFuZCBcXG4uIFRoZSBsYXRlciAKK2NvcnJlc3BvbmRpbmcgdG8gdGFiLCBlc2NhcGUsIGJhY2tzcGFjZSwgcmV0dXJuIGFuZCBuZXdsaW5lLgogLlNIIE5PVEVTCiBXaGVuIGl0IHJlY2VpdmVzIGEgU0lHSFVQLCAKIC5CIGRuc21hc3EgCkBAIC04MDksNyArODcyLDcgQEAKIC5JIC9ldGMvaG9zdHMKIGFuZCAKIC5JIC9ldGMvZXRoZXJzIAotYW5kIGFueSBmaWxlIGdpdmVuIGJ5IC0tZGhjcC1ob3N0c2ZpbGUuCithbmQgYW55IGZpbGUgZ2l2ZW4gYnkgLS1kaGNwLWhvc3RzZmlsZSwgLS1kaGNwLW9wdHNmaWxlIG9yIC0tYWRkbi1ob3N0cy4KIFRoZSBkaGNwIGxlYXNlIGNoYW5nZSBzY3JpcHQgaXMgY2FsbGVkIGZvciBhbGwKIGV4aXN0aW5nIERIQ1AgbGVhc2VzLiBJZiAKIC5CCkBAIC04MjEsMTAgKzg4NCwxMiBAQAogLlBQCiBXaGVuIGl0IHJlY2VpdmVzIGEgU0lHVVNSMSwKIC5CIGRuc21hc3EgCi13cml0ZXMgY2FjaGUgc3RhdGlzdGljcyB0byB0aGUgc3lzdGVtIGxvZy4gSXQgd3JpdGVzIHRoZSBjYWNoZSBzaXplLAord3JpdGVzIHN0YXRpc3RpY3MgdG8gdGhlIHN5c3RlbSBsb2cuIEl0IHdyaXRlcyB0aGUgY2FjaGUgc2l6ZSwKIHRoZSBudW1iZXIgb2YgbmFtZXMgd2hpY2ggaGF2ZSBoYWQgdG8gcmVtb3ZlZCBmcm9tIHRoZSBjYWNoZSBiZWZvcmUKIHRoZXkgZXhwaXJlZCBpbiBvcmRlciB0byBtYWtlIHJvb20gZm9yIG5ldyBuYW1lcyBhbmQgdGhlIHRvdGFsIG51bWJlcgotb2YgbmFtZXMgdGhhdCBoYXZlIGJlZW4gaW5zZXJ0ZWQgaW50byB0aGUgY2FjaGUuIEluIAorb2YgbmFtZXMgdGhhdCBoYXZlIGJlZW4gaW5zZXJ0ZWQgaW50byB0aGUgY2FjaGUuIEZvciBlYWNoIHVwc3RyZWFtCitzZXJ2ZXIgaXQgZ2l2ZXMgdGhlIG51bWJlciBvZiBxdWVyaWVzIHNlbnQsIGFuZCB0aGUgbnVtYmVyIHdoaWNoCityZXN1bHRlZCBpbiBhbiBlcnJvci4gSW4gCiAuQiAtLW5vLWRhZW1vbgogbW9kZSBvciB3aGVuIGZ1bGwgbG9nZ2luZyBpcyBlbmFibGVkICgtcSksIGEgY29tcGxldGUgZHVtcCBvZiB0aGUKIGNvbnRlbnRzIG9mIHRoZSBjYWNoZSBpcyBtYWRlLgpkaWZmIC0tZ2l0IGEvbWFuL2VzL2Ruc21hc3EuOCBiL21hbi9lcy9kbnNtYXNxLjgKaW5kZXggYTg3MWYzMS4uZTJjYzljZCAxMDA2NDQKLS0tIGEvbWFuL2VzL2Ruc21hc3EuOAorKysgYi9tYW4vZXMvZG5zbWFzcS44CkBAIC01NSw2ICs1NSwxNSBAQAogcmVkdWNlIGxhIGNhcmdhIHNvYnJlIGVsIHNlcnZpZG9yIGFsIGNvc3RvIGRlIHF1ZSBsb3MgY2xpZW50ZXMKIHVzYXJhbiBkYXRvcyBh8WVqb3MgYmFqbyBhbGd1bmFzIGNpcmN1bnN0YW5jaWFzLgogLlRQCisuQiAtLW5lZy10dGw9PHRpZW1wbz4KK1Jlc3B1ZXN0YXMgbmVnYXRpdmFzIGRlc2RlIHNlcnZpZG9yZXMgdXBzdHJlYW0gbm9ybWFsbWVudGUgY29udGllbmVuCitpbmZvcm1hY2nzbiB0aW1lLXRvLWxpdmUgKHRpZW1wbyBkZSB2aWRhKSBlbiBleHBlZGllbnRlcyBTT0EgcXVlCitkbnNtYXNxIHVzYSBwYXJhIGhhY2VyIGNhY2jpLiBTaSBsYXMgcmVzcHVlc3RhcyBkZSBzZXJ2aWRvcmVzIHVwc3RyZWFtCitvbWl0ZW4gZXN0YSBpbmZvcm1hY2nzbiwgZG5zbWFzcSBubyBtZXRlIGxhIHJlc3B1ZXN0YSBlbiBlbCBjYWNo6S4KK0VzdGEgb3BjafNuIGJyaW5kYSB1biB2YWxvciBwcmVkZXRlcm1pbmFkbyBwYXJhIGVsIHRpbWUtdG8tbGl2ZSBxdWUKK2Ruc21hc3EgdXNhIHBhcmEgbWV0ZXIgcmVzcHVlc3RhcyBlbiBlbCBjYWNo6SBh+m4gZW4gbGEgYXVzZW5jaWEgZGUKK3VuIGV4cGVkaWVudGUgU09BLgorLlRQCiAuQiBcLWssIC0ta2VlcC1pbi1mb3JlZ3JvdW5kCiBObyBpciBoYWNpYSBlbCBmb25kbyBhbCBpbmljaWFyLCBwZXJvIGFwYXJ0ZSBkZSBlc28gZWplY3V0YXIgY29tbwogbm9ybWFsLiBMYSBpbnRlbmNp824gZGUgZXN0byBlcyBwYXJhIGN1YW5kbyBkbnNtYXNxIGVzIGVqZWN1dGFkbwpAQCAtMTEzLDcgKzEyMiw4IEBACiAuVFAKIC5CIFwtcCwgLS1wb3J0PTxwdWVydG8+CiBFc2N1Y2hhciBlbiBlbCBwdWVydG8gPHB1ZXJ0bz4gZW4gdmV6IGRlbCBwdWVydG8gZXN04W5kYXIgRE5TICg1MykuCi1QcmluY2lwYWxtZW50ZSD6dGlsIHBhcmEgZGVidWdnaW5nLgorRmlqYXIgZXN0byBhIGNlcm8gZGVzaGFiaWxpdGEgY29tcGxldGFtZW50ZSBsYSBmdW5jafNuIEROUywgZGVqYW5kbworc29sbyBESENQIHkvbyBURlRQLgogLlRQCiAuQiBcLVAsIC0tZWRucy1wYWNrZXQtbWF4PTx0YW1h8W8+CiBFc3BlY2lmaWNhciBlbCBwYXF1ZXRlIFVEUCBFRE5TLjAgbeFzIGdyYW5kZSBxdWUgZXMgc29wb3J0YWRvIHBvcgpAQCAtMjYzLDYgKzI3MywxOCBAQAogcHJvYmFyIGNhZGEgYvpzcXVlZGEgY29uIGNhZGEgc2Vydmlkb3IgZXN0cmljdGFtZW50ZSBlbiBlbCBvcmRlbgogcXVlIGFwYXJlY2VuIGVuIC9ldGMvcmVzb2x2LmNvbmYKIC5UUAorLkIgLS1hbGwtc2VydmVycworUG9yIHByZWRldGVybWluYWRvLCBjdWFuZG8gZG5zbWFzcSB0aWVuZSBt4XMgZGUgdW4gc2Vydmlkb3IgdXBzdHJlYW0KK2Rpc3BvbmlibGUsIGVudmlhcuEgYvpzcXVlZGFzIGEgc29sbyB1biBzZXJ2aWRvci4gRmlqYXIgZXN0YSBvcGNp824KK2ZvcnphIGEgZG5zbWFzcSBhIGVudmlhciB0b2RhcyBsYXMgYvpzcXVlZGFzIGEgdG9kb3MgbG9zIHNlcnZpZG9yZXMKK2Rpc3BvbmlibGVzLiBMYSByZXNwdWVzdGEgZGVsIHNlcnZpZG9yIHF1ZSByZXNwb25kYSBwcmltZXJvIHNlcuEKK2RldnVlbHRhIGFsIHNvbGljaXRhbnRlIG9yaWdpbmFsLgorLlRQCisuQiAtLXN0b3AtZG5zLXJlYmluZAorRGVuZWdhciAoeSBiaXRhY29yZWFyKSBkaXJlY2Npb25lcyBkZSBzZXJ2aWRvcmVzIHVwc3RyZWFtIHF1ZSBlc3ThbgorZGVudHJvIGRlIHJhbmdvcyBJUCBwcml2YWRvcy4gRXN0byBibG9xdWVhIHVuIGF0YXF1ZSBkb25kZSB1biBuYXZlZ2Fkb3IKK2RldHLhcyBkZSB1biBmaXJld2FsbCBlcyB1c2FkbyBwYXJhIGFuYWxpemFyIG3hcXVpbmFzIGVuIGxhIHJlZCBsb2NhbC4KKy5UUAogLkIgXC1uLCAtLW5vLXBvbGwKIE5vIHJldmlzYXIgcGVyaW9kaWNhbWVudGUgYSAvZXRjL3Jlc29sdi5jb25mIGVuIGJ1c2NhIGRlIGNhbWJpb3MuCiAuVFAKQEAgLTI3Nyw3ICsyOTksNyBAQAogbm8gc2UgY29ub2NlIGRlc2RlIC9ldGMvaG9zdHMgbyBkZXNkZSBESENQIGVudG9uY2VzIHVuYSByZXNwdWVzdGEKICJubyBlbmNvbnRyYWRvIiBlcyBkZXZ1ZWx0YS4KIC5UUAotLkIgXC1TLCAtLWxvY2FsLCAtLXNlcnZlcj1bL1s8ZG9taW5pbz5dL1tkb21pbmlvL11dWzxkaXJlY2Np824gSVA+WyM8cHVlcnRvPl1bQDxyZW1pdGVudGU+WyM8cHVlcnRvPl1dXQorLkIgXC1TLCAtLWxvY2FsLCAtLXNlcnZlcj1bL1s8ZG9taW5pbz5dL1tkb21pbmlvL11dWzxkaXJlY2Np824gSVA+WyM8cHVlcnRvPl1bQDxJUCBkZSByZW1pdGVudGU+fDxpbnRlcmZhY2U+WyM8cHVlcnRvPl1dCiBFc3BlY2lmaWNhciBsYSBkaXJlY2Np824gSVAgZGUgc2Vydmlkb3JlcyB1cHN0cmVhbSBkaXJlY3RhbWVudGUuIEZpamFyCiBlc3RhIG9wY2nzbiBubyBzdXByaW1lIGxhIGxlY3R1cmEgZGUgL2V0Yy9yZXNvbHYuY29uZiwgdXNlIC1SIHBhcmEKIGhhY2VyIGVzby4gU2kgdW5vIGEgbeFzIGRvbWluaW9zIG9wY2lvbmFsZXMgc29uIGJyaW5kYWRvcywgZXNlIHNlcnZpZG9yCkBAIC0zMDcsMTQgKzMyOSwxOSBAQAogLkIgc2VydmVyCiBwYXJhIGhhY2VyIGxvcyBhcmNoaXZvcyBkZSBjb25maWd1cmFjafNuIG1hcyBjbGFyb3MgZW4gZXN0ZSBjYXNvLgogCi1MYSBzZWd1bmRhIGRpcmVjY2nzbiBJUCBvcGNpb25hbCBkZXNwdelzIGRlbCBjYXLhY3RlciBAIGxlIGRpY2UKLWEgZG5zbWFzcSBjb21vIGZpamFyIGxhIGRpcmVjY2nzbiBkZSByZW1pdGVudGUgZGUgbGFzIGL6c3F1ZWRhcwotaGFjaWEgZXN0ZSBzZXJ2aWRvciBETlMuIERlYmUgc2VyIHVuYSBkaXJlY2Np824gcGVydGVuZWNpZW50ZSBhCi1sYSBt4XF1aW5hIGVuIGxhIGN1YWwgY29ycmUgZG5zbWFzcSwgZGUgZm9ybWEgY29udHJhcmlhIGVzdGEKLWztbmVhIGRlIHNlcnZpZG9yIHNlcuEgYml0YWNvcmVhZGEgeSBkZXNwdelzIGlnbm9yYWRhLiBMYSBvcGNp824KLXF1ZXJ5LXBvcnQgZXMgaWdub3JhZGEgcGFyYSBjdWFscXVpZXIgc2Vydmlkb3JlcyBxdWUgdGVuZ2FuIHVuYQotZGlyZWNjafNuIHJlbWl0ZW50ZSBlc3BlY2lmaWNhZGEsIHBlcm8gZWwgcHVlcnRvIHB1ZWRlIHNlcgotZXNwZWNpZmljYWRvIGRpcmVjdGFtZW50ZSBjb21vIHBhcnRlIGRlIGxhIGRpcmVjY2nzbiByZW1pdGVudGUuCitFbCBzdHJpbmcgb3BjaW9uYWwgZGVzcHVlcyBkZWwgY2Fy4WN0ZXIgQCBsZSBkaWNlIGEgZG5zbWFzcSBjb21vIGZpamFyCitlbCByZW1pdGVudGUgZGUgbGFzIGL6c3F1ZWRhcyBoYWNpYSBlc3RlIHNlcnZpZG9yIEROUy4gRGViZSBzZXIgdW5hCitkaXJlY2Np824gSVAsIGxhIGN1YWwgZGViZSBzZXIgcGVydGVuZWNpZW50ZSBhIGxhIG3hcXVpbmEgZW4gbGEgY3VhbAorY29ycmUgZG5zbWFzcSwgZGUgZm9ybWEgY29udHJhcmlhIGVzdGEgbO1uZWEgZGUgc2Vydmlkb3Igc2Vy4SBiaXRhY29yZWFkYQoreSBkZXNwdelzIGlnbm9yYWRhLCBvIHVuIG5vbWJyZSBkZSBpbnRlcmZhY2UuIFNpIHVuIG5vbWJyZSBkZSBpbnRlcmZhY2UKK2VzIGJyaW5kYWRvLCBlbnRvbmNlcyBi+nNxdWVkYXMgaGFjaWEgZWwgc2Vydmlkb3Igc2Vy4W4gZm9yemFkYXMgdu1hIGVzYQoraW50ZXJmYWNlOyBzaSB1bmEgZGlyZWNjafNuIElQIGVzIGJyaW5kYWRhLCBlbnRvbmNlcyBsYSBkaXJlY2Np824gZGUKK3JlbWl0ZW50ZSBkZSBsYXMgYvpzcXVlZGFzIHNlcuEgZmlqYWRhIGEgZXNhIGRpcmVjY2nzbi4KK0xhIGV0aXF1ZXRhIHF1ZXJ5LXBvcnQgZXMgaWdub3JhZGEgcGFyYSBjdWFscXVpZXIgc2Vydmlkb3JlcyBxdWUgdGVuZ2FuCit1bmEgZGlyZWNjafNuIHJlbWl0ZW50ZSBlc3BlY2lmaWNhZGEsIHBlcm8gZWwgcHVlcnRvIHB1ZWRlIHNlcgorZXNwZWNpZmljYWRvIGRpcmVjdGFtZW50ZSBjb21vIHBhcnRlIGRlIGxhIGRpcmVjY2nzbiByZW1pdGVudGUuIEZvcnphcgorYvpzcXVlZGFzIGEgdW5hIGludGVyZmFjZSBubyBlc3ThIGltcGxlbWVudGFkbyBlbiB0b2RhcyBsYXMgcGxhdGFmb3JtYXMKK3NvcG9ydGFkYXMgcG9yIGRuc21hc3EuCiAuVFAKIC5CIFwtQSwgLS1hZGRyZXNzPS88ZG9taW5pbz4vW2RvbWluaW8vXTxkaXJlY2Np824gSVA+CiBFc3BlY2lmaWNhciB1bmEgZGlyZWNjafNuIElQIHBhcmEgcmV0b3JuYXIgcG9yIGN1YWxxdWllciBob3N0IGVuCkBAIC00OTgsNiArNTI1LDExIEBACiAuQiAtLWRoY3AtaG9zdHNmaWxlPTxhcmNoaXZvPgogTGVlciBpbmZvcm1hY2nzbiBob3N0IERIQ1AgZGVzZGUgZWwgYXJjaGl2byBlc3BlY2lmaWNhZG8uIEVsIGFyY2hpdm8gY29udGllbmUgaW5mb3JtYWNp824gZGUgdW4gaG9zdCBwb3IgbO1uZWEuIEVsIGZvcm1hdG8gZGUgdW5hIGztbmVhIGVzIGlndWFsIHF1ZSB0ZXh0byBoYWNpYSBsYSBkZXJlY2hhIGRlICc9JyBlbiAtLWRoY3AtaG9zdC4gTGEgdmVudGFqYSBkZSBhbG1hY2VuYXIgaW5mb3JtYWNp824gaG9zdCBESENQIGVuIGVzdGUgYXJjaGl2byBlcyBxdWUgcHVlZGUgc2VyIGNhbWJpYWRhIHNpbiB0ZW5lciBxdWUgcmVpbmljaWFyIGRuc21hc3EuIEVsIGFyY2hpdm8gc2Vy4SByZS1sZe1kbyBjdWFuZG8gZG5zbWFzcSByZWNpYmUgdW4gU0lHSFVQLgogLlRQCisuQiAtLWRoY3Atb3B0c2ZpbGU9PGFyY2hpdm8+CitMZWVyIGluZm9ybWFjafNuIHNvYnJlIG9wY2lvbmVzIERIQ1AgZGVzZGUgZWwgYXJjaGl2byBlc3BlY2lmaWNhZG8uIExhCit2ZW50YWphIGRlIHVzYXIgZXN0YSBvcGNp824gZXMgbGEgbWlzbWEgcXVlIGNvbiAtLWRoY3AtaG9zdHNmaWxlOiBlbAorYXJjaGl2byBkaGNwLW9wdHNmaWxlIHNlcuEgcmUtbGXtZG8gY3VhbmRvIGRuc21hc3EgcmVjaWJlIHVuIFNJR0hVUC4KKy5UUAogLkIgXC1aLCAtLXJlYWQtZXRoZXJzCiBMZWVyIC9ldGMvZXRoZXJzIGVuIGJ1c2NhIGRlIGluZm9ybWFjafNuIHNvYnJlIGhvc3RzIHBhcmEgZWwgc2Vydmlkb3IKIERIQ1AuIEVsIGZvcm1hdG8gZGUgL2V0Yy9ldGhlcnMgZXMgdW5hIGRpcmVjY2nzbiBkZSBoYXJkd2FyZSwgc2VndWlkYQpAQCAtNTgwLDYgKzYxMiwxNCBAQAogbGEgbGlzdGEgZGUgcGVkaWRvIGRlIHBhcuFtZXRyb3MuIEVzdG8gc2UgbmVjZXNpdGEgYXZlY2VzLCBwb3IgZWplbXBsbyBjdWFuZG8KIGVudmlhbmRvIG9wY2lvbmVzIGEgUFhFTGludXguCiAuVFAKKy5CIC0tZGhjcC1uby1vdmVycmlkZQorRGVzaGFiaWxpdGFyIGxhIHJldXRpbGl6YWNp824gZGUgbG9zIGNhbXBvcyBESENQIGRlIG5vbWJyZSBkZSBzZXJ2aWRvciB5CithcmNoaXZvIGNvbW8gZXNwYWNpbyBwYXJhIG9wY2lvbmVzIGV4dHJhLiBTaSBwdWVkZSwgZG5zbWFzcSBtdWV2ZSBsYSBpbmZvcm1hY2nzbgorZGVsIHNlcnZpZG9yIGJvb3QgeSBkZWwgbm9tYnJlIGRlIGFyY2hpdm8gKGRlIGRoY3AtYm9vdCkgZGUgc3VzIGNhbXBvcyBkZWRpY2Fkb3MKK2hhY2lhIG9wY2lvbmVzIERIQ1AuIEVzdG8gY3JlYSBlc3BhY2lvIGV4dHJhIGVuIGVsIHBhcXVldGUgREhDUCBwYXJhIG9wY2lvbmVzLAorcGVybyBwdWVkZSByYXJhbWVudGUgY29uZnVuZGlyIGNsaWVudGVzIHZpZWpvcyBvIGRlZmVjdHVvc29zLiBFc3RhIG9wY2nzbiBmb3J6YQorY29tcG9ydGFtaWVudG8gInNpbXBsZSB5IHNlbmNpbGxvIiBwYXJhIHByZXZlbmlyIHByb2JsZW1hcyBlbiB0YWxlcyBjYXNvcy4KKy5UUAogLkIgXC1VLCAtLWRoY3AtdmVuZG9yY2xhc3M9PG5ldHdvcmstaWQ+LDx2ZW5kb3ItY2xhc3M+CiBUcmF6YXIgZGVzZGUgdW4gc3RyaW5nIHZlbmRvci1jbGFzcyBhIHVuIG5ldHdvcmsgaWQuIExhIG1heW9y7WEgZGUgbG9zCiBjbGllbnRlcyBESENQIHByb3ZlZW4gdW5hICJ2ZW5kb3IgY2xhc3MiIGxhIGN1YWwgcmVwcmVzZW50YSwgZW4gY2llcnRvCkBAIC02MTksNiArNjU5LDExIEBACiAuQiAtLWRoY3Atc3Vic2NyaWQ9PG5ldHdvcmstaWQ+LDxzdWJzY3JpYmVyLWlkPgogVHJhemFyIGRlIG9wY2lvbmVzIHJlbGF5IHN1YnNjcmliZXItaWQgUkZDMzk5MyBhIG9wY2lvbmVzIG5ldHdvcmstaWQuCiAuVFAKKy5CIC0tZGhjcC1tYXRjaD08bmV0d29yay1pZD4sPG76bWVybyBkZSBvcGNp824+CitGaWphciBsYSBvcGNp824gbmV0d29yay1pZCBzaSBlbCBjbGllbnRlIGVudu1hIHVuIG9wY2nzbiBESENQIGRlbCBub21icmUKK2JyaW5kYWRvLiBFc3RvIHB1ZWRlIHNlciB1dGlsaXphZG8gcGFyYSBpZGVudGlmaWNhciBjbGllbnRlcyBwYXJ0aWN1bGFyZXMKK3F1ZSBlbnbtYW4gaW5mb3JtYWNp824gdXNhbmRvIG76bWVyb3MgcHJpdmFkb3MgZGUgb3BjaW9uZXMuCisuVFAKIC5CIFwtSiwgLS1kaGNwLWlnbm9yZT08bmV0d29yay1pZD5bLDxuZXR3b3JrLWlkPl0KIEN1YW5kbyB0b2RvcyBsb3MgbmV0d29yayBpZHMgYnJpbmRhZG9zIGNvaW5jaWRhbiBjb24gZWwganVlZ28gZGUKIG5ldHdvcmsgaWRzIGRlcml2YWRvcyBkZSBsYXMgY2xhc2VzIG5ldCwgaG9zdCwgeSB2ZW5kb3IsIGlnbm9yYXIKQEAgLTYzMyw2ICs2NzgsMTQgQEAKIGlnbm9yYWRvcywgeSBob3N0cyBESENQIHNvbiBhZ3JlZ2Fkb3MgYWwgRE5TIHVzYW5kbyBzb2xvIGxhIGNvbmZpZ3VyYWNp824KIGRoY3AtaG9zdCBlbiBkbnNtYXNxIHkgZWwgY29udGVuaWRvIGRlIC9ldGMvaG9zdHMgeSAvZXRjL2V0aGVycy4KIC5UUAorLkIgLS1kaGNwLWJyb2FkY2FzdD08bmV0d29yay1pZD5bLDxuZXR3b3JrLWlkPl0KK0N1YW5kbyB0b2RvcyBsb3MgbmV0d29yay1pZHMgYnJpbmRhZG9zIGNvaW5jaWRlbiBjb24gZWwganVlZ28gZGUgbmV0d29yay1pZHMKK2Rlcml2YWRvcyBkZSBsYSByZWQsIGhvc3QsIGNsYXNlcyBkZSB2ZW5kZWRvciB5IHVzdWFyaW9zLCBzaWVtcHJlIHVzYXIKK2Jyb2FkY2FzdCBwYXJhIGNvbXVuaWNhcnNlIGNvbiBlbCBob3N0IGN1YW5kbyBlc3ThIHNpbiBjb25maWd1cmFyLiBMYQorbWF5b3LtYSBkZSBjbGllbnRlcyBESENQIHF1ZSBuZWNlc2l0YW4gcmVzcHVlc3RhcyBicm9hZGNhc3QgZmlqYW4gdW5hCitvcGNp824gZW4gc3VzIHBlZGlkb3MgcGFyYSBxdWUgZXN0byBwYXNlIGF1dG9tYXRpY2FtZW50ZSwgYWxndW5vcworY2xpZW50ZXMgQk9PVFAgdmllam9zIG5vIGxvIGhhY2VuLgorLlRQCiAuQiBcLU0sIC0tZGhjcC1ib290PVtuZXQ6PG5ldHdvcmstaWQ+LF08ZmlsZW5hbWU+LFs8c2VydmVybmFtZT5bLDxzZXJ2ZXIgYWRkcmVzcz5dXQogRmlqYXIgb3BjaW9uZXMgQk9PVFAgcXVlIGhhbiBkZSBzZXIgZGV2dWVsdGFzIHBvciBlbCBzZXJ2aWRvciBESENQLiBOb21icmUKIHkgZGlyZWNjafNuIGRlIHNlcnZpZG9yIHNvbiBvcGNpb25hbGVzOiBzaSBubyBzb24gYnJpbmRhZGFzLCBlbCBub21icmUgZXMKQEAgLTcxNiw3ICs3NjksOSBAQAogU2kgdW4gYXJyaWVuZG8gc29s7WEgdGVuZXIgdW4gbm9tYnJlIGRlIGhvc3QsIGVsIGN1YWwgZXMgcmVtb3ZpZG8sIHVuCiBldmVudG8gIm9sZCIgZXMgZ2VuZXJhZG8gY29uIGVsIG51ZXZvIGVzdGFkbyBkZWwgYXJyaWVuZG8sIChwb3IgZWplbXBsbywgc2luCiBub21icmUpLCB5IGVsIG5vbWJyZSBhbnRlcmlvciBlcyBicmluZGFkbyBlbiBsYSB2YXJpYWJsZSBkZSBhbWJpZW50ZQotRE5TTUFTUV9PTERfSE9TVE5BTUUuCitETlNNQVNRX09MRF9IT1NUTkFNRS4gRE5TTUFTUV9JTlRFUkZBQ0UgYWxtYWNlbmEgZWwgbm9tYnJlIGRlIGxhIGludGVyZmFjZQorZW4gbGEgY3VhbCBsbGVn8yBlbCBwZWRpZG87IGVzdG8gbm8gZXMgZmlqYWRvIHBhcmEgYWNjaW9uZXMgInZpZWphcyIKK2N1YW5kbyBkbnNtYXNxIHJlLWluaWNpYS4KIFRvZG9zIGxvcyBkZXNjcmlwdG9yZXMgZGUgYXJjaGl2byBlc3ThbiBjZXJyYWRvcwogZXhjZXB0byBzdGRpbiwgc3Rkb3V0LCB5IHN0ZGVyciBsb3MgY3VhbGVzIGVzdOFuIGFiaWVydG9zIGEgL2Rldi9udWxsCiAoZXhjZXB0byBlbiBtb2RvIGRlYnVnKS4KQEAgLTgxMiwxMyArODY3LDI1IEBACiD6bmljbyAobWFzIGFsZ3Vub3Mgb3Ryb3MpLiBEZSB0YWwgbWFuZXJhIHF1ZSBzZXJ2aXJsZSBlbCBtaXNtbyBhcmNoaXZvCiBzaW11bHThbmVvIGEgbiBjbGllbnRlcyByZXF1ZXJpcuEgZWwgdXNvIGRlIG4gKyAxMCBkZXNjcmlwdG9yZXMgZGUgYXJjaGl2bywKIHkgc2VydmlybGVzIGFyY2hpdm9zIGRpZmVyZW50ZXMgc2ltdWx04W5lYW1lbnRlIHJlcXVlcmly4SAoMipuKSArIDEwCi1kZXNjcmlwdG9yZXMuCitkZXNjcmlwdG9yZXMuIFNpCisuQiAtLXRmdHAtcG9ydC1yYW5nZQorZXMgYnJpbmRhZG8sIGVzbyBwdWVkZSBhZmVjdGFyIGVsIG76bWVybyBkZSBjb25leGlvbmVzIHNpbXVsdOFuZWFzLgogLlRQCiAuQiAtLXRmdHAtbm8tYmxvY2tzaXplCiBObyBwZXJtaXRpciBxdWUgZWwgc2Vydmlkb3IgbmVnb2NpZSBsYSBvcGNp824gImJsb2Nrc2l6ZSIgY29uIHVuIGNsaWVudGUuCiBBbGd1bm9zIGNsaWVudGVzIGNvbiBlcnJvcmVzIHBpZGVuIGVzdGEgb3BjafNuIHBlcm8gc2UgcG9ydOFuIG1hbCBjdWFuZG8gc2UKIGxlcyBicmluZGEuCiAuVFAKKy5CIC0tdGZ0cC1wb3J0LXJhbmdlPTxpbmljaW8+LDxmaW5hbD4KK1VuIHNlcnZpZG9yIFRGVFAgZXNjdWNoYSBwb3IgaW5pY2lvcyBkZSBjb25leGnzbiBlbiB1biBwdWVydG8gYmllbiBjb25vY2lkbworKDY5KSwgcGVybyB0YW1iaWVuIHVzYSB1biBwdWVydG8gZGluYW1pY2FtZW50ZSBzZWxlY2Npb25hZG8gcGFyYSBjYWRhCitjb25leGnzbi4gTm9ybWFsbWVudGUgZXN0b3Mgc29uIHNlbGVjY2lvbmFkb3MgcG9yIGVsIHNpc3RlbWEgb3BlcmF0aXZvLAorcGVybyBlc3RhIG9wY2nzbiBlc3BlY2lmaWNhIHVuIHJhbmdvIGRlIHB1ZXJ0b3MgcGFyYSBzZXIgdXNhZG8gcG9yIHRyYW5zZmVyZW5jaWFzCitURlRQLiBFc3RvIHB1ZWRlIHNlciD6dGlsIGN1YW5kbyBURlRQIHRpZW5lIHF1ZSBwYXNhciBhdHJhdmVzIGRlIHVuIGZpcmV3YWxsLgorRWwgY29taWVuem8gZGVsIHJhbmdvIG5vIHB1ZWRlIHNlciBtZW5vciBhIDEwMjUgYSBtZW5vcyBxdWUgZG5zbWFzcSBlc3TpIGNvcnJpZW5kbworY29tbyByb290LiBFbCBu+m1lcm8gZGUgY29uZXhpb25lcyBzaW11bHThbmVhcyBlc3ThIGxpbWl0YWRvIHBvciBlbCB0YW1h8W8gZGVsCityYW5nbyBkZSBwdWVydG9zLgorLlRQCiAuQiBcLUMsIC0tY29uZi1maWxlPTxhcmNoaXZvPgogRXNwZWNpZmljYXIgdW4gYXJjaGl2byBkZSBjb25maWd1cmFjafNuIGRpZmVyZW50ZS4gTGEgb3BjafNuIGNvbmYtZmlsZQogdGFtYmnpbiBlcyBwZXJtaXRpZGEgZW4gYXJjaGl2b3MgZGUgY29uZmlndXJhY2nzbiwgcGFyYSBpbmNsdWlyIG36bHRpcGxlcwpAQCAtODQ1LDggKzkxMiw4IEBACiBzb2xhIHZleiwgZWwgYXJjaGl2byBkZSBjb25maWd1cmFjafNuIGludmFsaWRhIGxhIGztbmVhIGRlIGNvbWFuZG9zLgogTGFzIGNvbWlsbGFzIHNvbiBwZXJtaXRpZGFzIGVuIGVsIGFyY2hpdm8gZGUgY29uZmlndXJhY2nzbjogZW50cmUgY29taWxsYXMKIHRpcG8gIiBsb3Mgc2lnbmlmaWNhZG9zIGVzcGVjaWFsZXMgZGUgLDouIHkgIyBzb24gZWxpbWluYWRvcyB5IGxvcwotc2lndWllbnRlcyBlc2NhcGVzIHNvbiBwZXJtaXRpZG9zOiBcXFxcIFxcIiBcXHQgXFxhIFxcYiBcXHIgeSBcXG4uIEVsCi36bHRpbW8gY29ycmVzcG9uZGUgYSB0YWIsIGJlbGwsIGJhY2tzcGFjZSwgcmV0dXJuIHkgbmV3bGluZS4KK3NpZ3VpZW50ZXMgZXNjYXBlcyBzb24gcGVybWl0aWRvczogXFxcXCBcXCIgXFx0IFxcZSBcXGIgXFxyIHkgXFxuLgorQ29ycmVzcG9uZGVuIGEgdGFiLCBlc2NhcGUsIGJhY2tzcGFjZSwgcmV0dXJuIHkgbmV3bGluZS4KIC5TSCBOT1RBUwogQWwgcmVjaWJpciB1biBTSUdIVVAKIC5CIGRuc21hc3EgCkBAIC04NTQsNyArOTIxLDggQEAKIC5JIC9ldGMvaG9zdHMKIHkKIC5JIC9ldGMvZXRoZXJzCi1hbCBpZ3VhbCBxdWUgY3VhbHF1aWVyIGFyY2hpdm8gYnJpbmRhZG8gY29uIC0tZGhjcC1ob3N0c2ZpbGUuCithbCBpZ3VhbCBxdWUgY3VhbHF1aWVyIGFyY2hpdm8gYnJpbmRhZG8gY29uIC0tZGhjcC1ob3N0c2ZpbGUsIC0tZGhjcC1vcHRzZmlsZSwKK28gLS1hZGRuLWhvc3RzLgogRWwgYXJjaGl2byBndWnzbiBkZSBjYW1iaW8gZGUgYXJyaWVuZG9zIGVzIGxsYW1hZG8gcGFyYSB0b2RvcyBsb3MgYXJyaWVuZG9zCiBESENQIGV4aXN0ZW50ZXMuIFNpCiAuQgpAQCAtODY2LDEwICs5MzQsMTIgQEAKIC5QUAogQWwgcmVjaWJpciB1biBTSUdVU1IxLAogLkIgZG5zbWFzcSAKLWVzY3JpYmUgZXN0YWTtc3RpY2FzIGRlIGNhY2jpIGEgbGEgYml04WNvcmEgZGVsIHNpc3RlbWEuIEVzY3JpYmUgZWwgdGFtYfFvCitlc2NyaWJlIGVzdGFk7XN0aWNhcyBhIGxhIGJpdOFjb3JhIGRlbCBzaXN0ZW1hLiBFc2NyaWJlIGVsIHRhbWHxbwogZGVsIGNhY2jpLCBlbCBudW1lcm8gZGUgbm9tYnJlcyBxdWUgaGFuIHRlbmlkbyBxdWUgc2VyIHJlbW92aWRvcyBkZWwKIGNhY2jpIGFudGVzIGRlIHF1ZSB2ZW5jaWVyYW4gcGFyYSBoYWNlciBlc3BhY2lvIHBhcmEgbm9tYnJlcyBudWV2b3MsIHkgZWwKLW76bWVybyB0b3RhbCBkZSBub21icmVzIHF1ZSBoYW4gc2lkbyBpbnNlcnRhZG9zIGVuIGVsIGNhY2jpLiBFbiBtb2RvCitu+m1lcm8gdG90YWwgZGUgbm9tYnJlcyBxdWUgaGFuIHNpZG8gaW5zZXJ0YWRvcyBlbiBlbCBjYWNo6S4gUGFyYSBjYWRhCitzZXJ2aWRvciB1cHN0cmVhbSBicmluZGEgZWwgbvptZXJvIGRlIGL6c3F1ZWRhcyBlbnZpYWRhcywgeSBlbAorbvptZXJvIHF1ZSByZXN1bHRhcm9uIGVuIGVycm9yLiBFbiBtb2RvCiAuQiAtLW5vLWRhZW1vbgogbyBjdWFuZG8gYml0YWNvculvIGNvbXBsZXRvIGVzdOEgaGFiaWxpdGFkbyAoLXEpLCB1bmEgZGVzY2FyZ2EgY29tcGxldGEgZGUKIGVsIGNvbnRlbmlkbyBkZWwgY2FjaOkgZXMgaGVjaGEuCmRpZmYgLS1naXQgYS9tYW4vZnIvZG5zbWFzcS44IGIvbWFuL2ZyL2Ruc21hc3EuOApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMDdhYWI1Ci0tLSAvZGV2L251bGwKKysrIGIvbWFuL2ZyL2Ruc21hc3EuOApAQCAtMCwwICsxLDExOTcgQEAKKy5USCBETlNNQVNRIDgKKy5TSCBOQU1FCitEbnNtYXNxIFwtIFVuIHNlcnZldXIgREhDUCBldCBjYWNoZSBETlMgcG9pZHMtcGx1bWUuCisuU0ggU1lOT1BTSVMKKy5CIGRuc21hc3EKKy5JIFtPUFRJT05dLi4uCisuU0ggIkRFU0NSSVBUSU9OIgorLkJSIGRuc21hc3EKK2VzdCB1biBzZXJ2ZXVyIERIQ1AgZXQgRE5TIMOgIGZhaWJsZSBlbXByZWludGUgbcOpbW9pcmUuIElsIG9mZnJlIMOgIGxhIGZvaXMgbGVzCitzZXJ2aWNlcyBETlMgZXQgREhDUCBwb3VyIHVuIHLDqXNlYXUgbG9jYWwgKExBTikuCisuUFAKK0Ruc21hc3EgYWNjZXB0ZSBsZXMgcmVxdcOqdGVzIEROUyBldCB5IHLDqXBvbmRzIHNvaXQgZW4gdXRpbGlzYW50IHVuIHBldGl0IGNhY2hlCitsb2NhbCwgc29pdCBlbiBlZmZlY3R1YW50IHVuZSByZXF1w6p0ZSDDoCB1biBzZXJ2ZXVyIEROUyByw6ljdXJzaWYgZXh0ZXJuZSAocGFyCitleGVtcGxlIGNlbHVpIGRlIHZvdHJlIGZvdXJuaXNzZXVyIGQnYWNjw6hzIGludGVybmV0KS4gSWwgY2hhcmdlIGxlIGNvbnRlbnUgZHUKK2ZpY2hpZXIgL2V0Yy9ob3N0cyBhZmluIHF1ZSBsZXMgbm9tcyBsb2NhdXggbidhcHBhcmFpc3NhbnQgcGFzIGRhbnMgbGVzIEROUworZ2xvYmF1eCBzb2llbnQgdG91dCBkZSBtw6ptZSByw6lzb2x1cywgZXQgYXNzdXJlIMOpZ2FsZW1lbnQgbGEgcsOpc29sdXRpb24gZGUgbm9tCitwb3VyIGxlcyBow7R0ZXMgcHLDqXNlbnRzIGRhbnMgbGUgc2VydmljZSBESENQLgorLlBQCitMZSBzZXJ2ZXVyIERIQ1AgRG5zbWFzcSBESENQIHN1cHBvcnRlIGxlcyBkw6lmaW5pdGlvbnMgZCdhZHJlc3NlcyBzdGF0aXF1ZXMsIGxlcworcsOpc2VhdXggbXVsdGlwbGVzLCBsZSByZWxhaSBESENQIGV0IGxlcyBzcMOpY2lmaWNhdGlvbnMgZGUgc291cy1yw6lzZWF1eCBjb25mb3JtZXMKK8OgIGxhIFJGQzMwMTEuIElsIGVudm9pZSBwYXIgZMOpZmF1dCB1biBqZXUgcmFpc29ubmFibGUgZGUgcGFyYW3DqHRyZXMgREhDUCwgZXQKK3BldXQgw6p0cmUgY29uZmlndXLDqSBwb3VyIGVudm95ZXIgbidpbXBvcnRlIHF1ZWwgb3B0aW9uIERIQ1AuCitJbCBpbmNsdXQgdW4gc2VydmV1ciBURlRQIHPDqWN1cmlzw6kgZW4gbGVjdHVyZSBzZXVsZSBwZXJtZXR0YW50IGxlIGTDqW1hcnJhZ2UgdmlhCitsZSByw6lzZWF1L1BYRSBkZSBjbGllbnRzIERIQ1AgZXQgc3VwcG9ydGUgw6lnYWxlbWVudCBsZSBwcm90b2NvbGUgQk9PVFAuCisuUFAKK0Ruc21hc3Egc3VwcG9ydGUgSVB2NiBwb3VyIGxlIEROUyBtYWlzIHBhcyBwb3VyIGxlIERIQ1AuCisuU0ggT1BUSU9OUworTm90ZXMgOiBJbCBlc3QgcG9zc2libGUgZCd1dGlsaXNlciBkZXMgb3B0aW9ucyBzYW5zIGxldXIgZG9ubmVyIGRlIHBhcmFtw6h0cmUuCitEYW5zIGNlIGNhcywgbGEgZm9uY3Rpb24gY29ycmVzcG9uZGFudGUgc2VyYSBkw6lzYWN0aXbDqWUuIFBhciBleGVtcGxlCisuQiAtLXBpZC1maWxlPQorKHNhbnMgcGFyYW3DqHRyZSBhcHLDqHMgbGUgPSkgZMOpc2FjdGl2ZSBsJ8OpY3JpdHVyZSBkdSBmaWNoaWVyIFBJRC4KK1N1ciBCU0QsIMOgIG1vaW5zIHF1ZSBsZSBsb2dpY2llbCBuZSBzb2l0IGNvbXBpbMOpIGF2ZWMgbGEgYmlibGlvdGjDqHF1ZSBHTlUKK2dldG9wdCwgbGEgZm9ybWUgbG9uZ3VlIGRlcyBvcHRpb25zIG5lIGZvbmN0aW9ubmUgcGFzIGVuIGxpZ25lIGRlIGNvbW1hbmRlOyBFbGxlCitlc3QgdG91am91cnMgc3VwcG9ydMOpZSBkYW5zIGxlIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbi4KKy5UUAorLkIgXC1oLCAtLW5vLWhvc3RzCitOZSBwYXMgY2hhcmdlciBsZXMgbm9tcyBkdSBmaWNoaWVyIC9ldGMvaG9zdHMuCisuVFAKKy5CIFwtSCwgLS1hZGRuLWhvc3RzPTxmaWNoaWVyPgorRmljaGllcnMgZCdow7R0ZXMgYWRkaXRpb25uZWxzLiBMaXJlIGxlIGZpY2hpZXIgc3DDqWNpZmnDqSBlbiBwbHVzIGRlIC9ldGMvaG9zdHMuCitTaSAKKy5CIC1oCitlc3Qgc3DDqWNpZmnDqSwgbGlyZSB1bmlxdWVtZW50IGxlIGZpY2hpZXIgc3DDqWNpZmnDqS4gQ2V0dGUgb3B0aW9uIHBldXQgw6p0cmUKK3LDqXDDqXTDqWUgYWZpbiBkJ2Fqb3V0ZXIgZCdhdXRyZXMgZmljaGllcnMuCisuVFAKKy5CIFwtRSwgLS1leHBhbmQtaG9zdHMKK0Fqb3V0ZSBsZSBub20gZGUgZG9tYWluZSBhdXggbm9tcyBzaW1wbGVzIChuZSBjb250ZW5hbnQgcGFzIGRlIHBvaW50IGRhbnMgbGUKK25vbSkgY29udGVudXMgZGFucyBsZSBmaWNoaWVyIC9ldGMvaG9zdHMsIGRlIGxhIG3Dqm1lIGZhw6dvbiBxdWUgcG91ciBsZSBzZXJ2aWNlCitESENQLgorLlRQCisuQiBcLVQsIC0tbG9jYWwtdHRsPTxkdXLDqWU+CitMb3JzcXVlIERuc21hc3EgcsOpcG9uZCBhdmVjIHVuZSBpbmZvcm1hdGlvbiBwcm92ZW5hbnQgZHUgZmljaGllciAvZXRjL2hvc3RzIG91CithdmVjIHVuIGJhaWwgREhDUCwgaWwgZG9ubmUgdW4gdGVtcHMgZGUgdmllICh0aW1lLXRvLWxpdmUpIHBvc2l0aW9ubsOpIMOgIHrDqXJvLAorYWZpbiBkJ2luZGlxdWVyIMOgIGxhIG1hY2hpbmUgZmFpc2FudCBsYSByZXF1w6p0ZSBxdWUgY2VsbGUtY2kgIG5lIGRvaXQgcGFzIMOqdHJlCittaXNlIGRhbnMgdW4gY2FjaGUuIENlY2kgZXN0IGxlIGNvbXBvcnRlbWVudCBjb3JyZWN0IGRhbnMgcHJlc3F1ZSB0b3V0ZXMgbGVzCitzaXR1YXRpb25zLgorQ2V0dGUgb3B0aW9uIHBlcm1ldCBkZSBzcMOpY2lmaWVyIGxhIHZhbGV1ciBkZSB0aW1lLXRvLWxpdmUgw6AgcmV0b3VybmVyIChlbgorc2Vjb25kZXMpLiBDZWxhIHBlcm1ldCBkZSByw6lkdWlyZSBsYSBjaGFyZ2Ugc3VyIGxlIHNlcnZldXIsIG1haXMgbGVzIGNsaWVudHMKK3Jpc3F1ZW50IGQndXRpbGlzZXIgZGVzIGRvbm7DqWVzIHDDqXJpbcOpZXMgZGFucyBjZXJ0YWlucyBjYXMuCisuVFAKKy5CIFwtaywgLS1rZWVwLWluLWZvcmVncm91bmQKK05lIHBhcyBhbGxlciBlbiB0w6JjaGUgZGUgZm9uZCBhdSBsYW5jZW1lbnQsIG1haXMgZW4gZGVob3JzIGRlIGNlbGEsIGZvbmN0aW9ubmVyCitub3JtYWxlbWVudC4gQ2UgbW9kZSBlc3QgcHLDqXZ1IHBvdXIgbGVzIGNhcyBvw7kgRG5zbWFzcSBlc3QgbGFuY8OpIHBhciBkYWVtb250b29scworb3UgbGF1bmNoZC4KKy5UUAorLkIgXC1kLCAtLW5vLWRhZW1vbgorTW9kZSBkZWJ1ZyAoZMOpdmVybWluYWdlKSA6IG5lIHBhcyBhbGxlciBlbiB0w6JjaGUgZGUgZm9uZCwgbmUgcGFzIMOpY3JpcmUgZGUKK2ZpY2hpZXIgcGlkLCBuZSBwYXMgY2hhbmdlciBkJ2lkZW50aWZpYW50IHV0aWxpc2F0ZXVyLCBnw6luw6lyZXIgdW4gw6l0YXQgY29tcGxldAorZHUgY2FjaGUgbG9ycyBkZSBsYSByw6ljZXB0aW9uIGQndW4gc2lnbmFsIFNJR1VTUjEsIGVudm95ZXIgbGVzIGxvZ3Mgc3VyIGxhCitzb3J0aWUgc3RhbmRhcmQgZCdlcnJldXIgKCJzdGRlcnIiKSBkZSBtw6ptZSBxdWUgZGFucyBsZSBzeXNsb2csIG5lIHBhcyBjcsOpZXIgZGUKK3Byb2Nlc3N1cyBmaWxzIHBvdXIgdHJhaXRlciBsZXMgcmVxdcOqdGVzIFRDUC4KKy5UUAorLkIgXC1xLCAtLWxvZy1xdWVyaWVzCitFbnJlZ2lzdHJlciBsZXMgcsOpc3VsdGF0cyBkZXMgcmVxdcOqdGVzIEROUyB0cmFpdMOpZXMgcGFyIERuc21hc3EgZGFucyB1biBmaWNoaWVyCitkZSB0cmFjZXMgKCJsb2dzIikuIEFjdGl2ZSBsYSBnw6luw6lyYXRpb24gZCd1biDDqXRhdCBjb21wbGV0IGR1IGNhY2hlIGxvcnMgZGUgbGEKK3LDqWNlcHRpb24gZCd1biBzaWduYWwgU0lHVVNSMS4KKy5UUAorLkIgXC04LCAtLWxvZy1mYWNpbGl0eT08ZmFjaWxpdHk+CitEw6lmaW5pdCBsYSAiZmFjaWxpdHkiIGRhbnMgbGFxdWVsbGUgRG5zbWFzcSBlbnZlcnJhIHNlcyBlbnRyw6llcyBzeXNsb2csIHBhcgorZMOpZmF1dCBEQUVNT04gb3UgTE9DQUwwIHNpIGxlIG1vZGUgZGVidWcgZXN0IGFjdGl2w6kuIFNpIGxhICJmYWNpbGl0eSIgY29udGllbnQKK2F1IG1vaW5zIHVuIGNhcmFjdMOocmUgIi8iLCBhbG9ycyBEbnNtYXNxIGNvbnNpZMOocmUgcXUnaWwgcydhZ2l0IGQndW4gZmljaGllciBldAorZW52ZXJyYSBsZXMgbG9ncyBkYW5zIGxlIGZpY2hpZXIgY29ycmVzcG9uZGFudCDDoCBsYSBwbGFjZSBkdSBzeXNsb2cuIChMZXMKK2VycmV1cnMgbG9ycyBkZSBsYSBsZWN0dXJlIGRlIGxhIGNvbmZpZ3VyYXRpb24gdm9udCB0b3Vqb3VycyB2ZXJzIGxlIHN5c2xvZywKK21haXMgdG91cyBsZXMgbWVzc2FnZXMgcG9zdMOpcmlldXJlcyDDoCB1biBkw6ltYXJyYWdlIHLDqXVzc2kgc2Vyb250IGV4Y2x1c2l2ZW1lbnQKK2Vudm95w6lzIHZlcnMgbGUgZmljaGllciBkZSBsb2dzKS4gTG9yc3F1ZSBEbnNtYXNxIGVzdCBjb25maWd1csOpIHBvdXIgZW52b3llcgorc2VzIHRyYWNlcyB2ZXJzIHVuIGZpY2hpZXIsIGxhIHLDqWNlcHRpb24gZCd1biBzaWduYWwgU0lHVVNSMiBlbnRyYWluZSBsYQorZmVybWV0dXJlIGV0IHLDqW91dmVydHVyZSBkdSBmaWNoaWVyLiBDZWxhIHBlcm1ldCBsYSByb3RhdGlvbiBkZSBmaWNoaWVycyBkZQordHJhY2VzIHNhbnMgbsOpY2Vzc2l0ZXIgbCdhcnLDqnQgZGUgRG5zbWFzcS4KKy5UUAorLkIgLS1sb2ctYXN5bmNbPTxsaWduZXM+XQorUGVybWV0IGwnZW52b2kgZGUgdHJhY2VzIGRlIG1hbmnDqHJlIGFzeW5jaHJvbmUsIGV0IGRlIG1hbmnDqHJlIG9wdGlvbm5lbGxlLCBsZQorbm9tYnJlIGRlIGxpZ25lcyBkZXZhbnQgw6p0cmUgbWlzZXMgZGFucyBsYSBmaWxlIGQnYXR0ZW50ZSBwYXIgRG5zbWFzcSBsb3JzcXVlCitsJ8OpY3JpdHVyZSB2ZXJzIGxlIHN5c2xvZyBlc3QgbGVudGUuCitEbnNtYXNxIHBldXQgZW52b3llciBzZXMgbG9ncyBkZSBtYW5pw6hyZSBhc3luY2hyb25lIDogY2VsYSBsdWkgcGVybWV0IGRlCitjb250aW51ZXIgw6AgZm9uY3Rpb25uZXIgc2FucyDDqnRyZSBibG9xdcOpIHBhciBsZSBzeXNsb2csIGV0IHBlcm1ldCDDoCBzeXNsb2cKK2QndXRpbGlzZXIgRG5zbWFzcSBwb3VyIGxlcyByw6lzb2x1dGlvbnMgRE5TIHNhbnMgcmlzcXVlIGQnaW50ZXJibG9jYWdlLgorU2kgbGEgZmlsZSBkJ2F0dGVudGUgZGV2aWVudCBwbGVpbmUsIERuc21hc3EgbG9nZ2VyYSBsZSBkw6lwYXNzZW1lbnQgZGUgZmlsZSBldAorbGUgbm9tYnJlIGRlIG1lc3NhZ2VzIHBlcmR1cy4gTGEgbG9uZ3VldXIgcGFyIGTDqWZhdXQgZGUgbGEgZmlsZSBkJ2F0dGVudGUgZXN0IGRlCis1IGV0IHVuZSB2YWxldXIgc2FpbmUgc2VyYSBjb21wcmlzZSBlbnRyZSA1IGV0IDI1LCBhdmVjIHVuZSBsaW1pdGUgbWF4aW11bQoraW1wb3PDqWUgZGUgMTAwLgorLlRQCisuQiBcLXgsIC0tcGlkLWZpbGU9PGNoZW1pbj4KK1Nww6ljaWZpZSB1biBmaWNoaWVyIGRhbnMgbGVxdWVsIHN0b2NrZXIgbGUgbnVtw6lybyBkZSBwcm9jZXNzdXMgKHBpZCkuIExhIHZhbGV1cgorcGFyIGTDqWZhdXQgZXN0IC92YXIvcnVuL2Ruc21hc3EucGlkLgorLlRQCisuQiBcLXUsIC0tdXNlcj08bm9tIGQndXRpbGlzYXRldXI+CitTcMOpY2lmaWUgbCdpZGVudGl0w6kgKG5vbSBkJ3V0aWxpc2F0ZXVyKSBwcmlzZSBwYXIgRG5zbWFzcSBhcHLDqHMgbGUgZMOpbWFycmFnZS4KK0Ruc21hc3EgZG9pdCBub3JtYWxlbWVudCDDqnRyZSBkw6ltYXJyw6kgZW4gdGVtcHMgcXVlIHJvb3QgKCJzdXBlci11dGlsaXNhdGV1ciIpLAorbWFpcyBhYmFuZG9ubmUgc2VzIHByaXZpbMOoZ2VzIGFwcsOocyBsZSBkw6ltYXJyYWdlIGVuIGNoYW5nZWFudCBkJ2lkZW50aXTDqS4KK05vcm1hbGVtZW50IGNldCB1dGlsaXNhdGV1ciBlc3QgbCd1dGlsaXNhdGV1ciBub2JvZHkgKCJwZXJzb25uZSIpLCBtYWlzIGlsIGVzdAorcG9zc2libGUgZCdlbiBkw6lmaW5pciB1biBhdXRyZSBwYXIgbGUgYmlhaXMgZGUgY2UgcGFyYW3DqHRyZS4KKy5UUAorLkIgXC1nLCAtLWdyb3VwPTxub20gZGUgZ3JvdXBlPiAKK1Nww6ljaWZpZSBsZSBncm91cGUgc291cyBsZXF1ZWwgRG5zbWFzcSBzJ2V4w6ljdXRlLiBQYXIgZMOpZmF1dCwgaWwgcydhZ2l0IGR1Citncm91cGUgImRpcCIsIGFmaW4gZGUgZmFjaWxpdGVyIGwnYWNjw6hzIGF1IGZpY2hpZXIgL2V0Yy9wcHAvcmVzb2x2LmNvbmYgcXVpCituJ2VzdCBlbiBnw6luw6lyYWwgcGFzIGVuIGxlY3R1cmUgcGFyIHRvdXQgbGUgbW9uZGUuCisuVFAKKy5CIFwtdiwgLS12ZXJzaW9uCitJbXByaW1lIGxlIG51bcOpcm8gZGUgdmVyc2lvbi4KKy5UUAorLkIgXC1wLCAtLXBvcnQ9PHBvcnQ+CitFY291dGUgc3VyIGxlIHBvcnQgbnVtw6lybyA8cG9ydD4gYXUgbGlldSBkdSBwb3J0IEROUyBzdGFuZGFyZCAoNTMpLiBDZXR0ZSBvcHRpb24KK2VzdCBlc3NlbnRpZWxsZW1lbnQgdXRpbGUgw6AgZGVzIGZpbnMgZGUgZMOpdmVybWluYWdlICgiZGVidWciKS4KKy5UUAorLkIgXC1QLCAtLWVkbnMtcGFja2V0LW1heD08dGFpbGxlPgorU3DDqWNpZmllIGxhIHRhaWxsZSBtYXhpbXVtIGRlIHBhcXVldCBVRFAgRUROUy4wIHN1cHBvcnTDqSBwYXIgbGUgcmVsYWkgRE5TLiBMZQorZMOpZmF1dCBlc3QgZGUgMTI4MCwgcXVpIGVzdCBsYSB2YWxldXIgbWF4aW1hbGUKK3JlY29tbWFuZMOpZSBwb3VyIGV0aGVybmV0IGRhbnMgbGEgUkZDMjY3MS4KKy5UUAorLkIgXC1RLCAtLXF1ZXJ5LXBvcnQ9PG51bcOpcm8gZGUgcG9ydD4KK0Vudm9pZSBldCDDqWNvdXRlIGxlcyByZXF1w6p0ZXMgRE5TIHNvcnRhbnRlcyBkZXB1aXMgbGUgcG9ydCBVRFAgc3DDqWNpZmnDqSBwYXIKKzxudW3DqXJvIGRlIHBvcnQ+LCBldCBub24gc3VyIHVuIHBvcnQgZMOpZmluaSBsb3JzIGRlIGwnZXjDqWN1dGlvbi4gQ2V0dGUgb3B0aW9uCitwZXJtZXQgZGUgc2ltcGxpZmllciBsZXMgcsOoZ2xlcyBkZSBnYXJkZS1iYXJyacOocmUgKCJmaXJld2FsbCIpLiBTYW5zIGNlbGEgZW4KK2VmZmV0LCB2b3RyZSBnYXJkZS1iYXJyacOocmUgc2VyYWl0IG9ibGlnw6kgZCdhY2NlcHRlciBsZXMgY29ubmV4aW9ucyBkZXB1aXMgbGVzCitzZXJ2ZXVycyBETlMgZXh0ZXJuZXMgc3VyIHVuZSBwbGFnZSBkZSBwb3J0cyBVRFAsIG91IGRlIHMnYWRhcHRlciBkeW5hbWlxdWVtZW50CithdSBwb3J0IHV0aWxpc8OpIHBhciBsJ2luc3RhbmNlIGNvdXJhbnRlIGRlIERuc21hc3EuCisuVFAKKy5CIFwtaSwgLS1pbnRlcmZhY2U9PG5vbSBkJ2ludGVyZmFjZT4KK04nw6ljb3V0ZXIgcXVlIHN1ciBsJ2ludGVyZmFjZSByw6lzZWF1IHNww6ljaWZpw6llLiBEbnNtYXNxIGF1am91dGUgYXV0b21hdGlxdWVtZW50CitsJ2ludGVyZmFjZSBsb2NhbGUgKCJsb29wYmFjayIpIMOgIGxhIGxpc3RlIGRlcyBpbnRlcmZhY2VzIGxvcnNxdWUgbCdvcHRpb24KKy5CIC0taW50ZXJmYWNlCitlc3QgdXRpbGlzw6llLgorU2kgYXVjdW5lIG9wdGlvbgorLkIgLS1pbnRlcmZhY2UKK291CisuQiAtLWxpc3Rlbi1hZGRyZXNzCituJ2VzdCBkb25uw6llLCBEbnNtYXNxIMOpY291dGVyYSBzdXIgdG91dGVzIGxlcyBpbnRlcmZhY2VzIGRpc3BvbmlibGVzIHNhdWYKK2NlbGxlKHMpIHNww6ljaWZpw6llKHMpIHBhciBsJ29wdGlvbgorLkIgLS1leGNlcHQtaW50ZXJmYWNlLgorTGVzIGFsaWFzIGQnaW50ZXJmYWNlcyBJUCAoZS1nICJldGgxOjAiKSBuZSBwZXV2ZW50IMOqdHJlIHV0aWxpc8OpcyBuaSBhdmVjCisuQiAtLWludGVyZmFjZQorbmkKKy5CIFwtLWV4Y2VwdC1pbnRlcmZhY2UuCitVdGlsaXNlciBsJ29wdGlvbiAKKy5CIC0tbGlzdGVuLWFkZHJlc3MKK8OgIGxhIHBsYWNlLiAKKy5UUAorLkIgXC1JLCAtLWV4Y2VwdC1pbnRlcmZhY2U9PGludGVyZmFjZSBuYW1lPgorTmUgcGFzIMOpY291dGVyIHN1ciBsJ2ludGVyZmFjZSBzcMOpY2lmacOpZS4gTm90ZXogcXVlIGwnb3JkcmUgZGFucyBsZXNxdWVsbGVzIGxlcworb3B0aW9ucworLkIgXC0tbGlzdGVuLWFkZHJlc3MKKywKKy5CIC0taW50ZXJmYWNlCitldAorLkIgLS1leGNlcHQtaW50ZXJmYWNlCitzb250IGZvdXJuaWVzIG4naW1wb3J0ZSBwYXMsIGV0IHF1ZSBsJ29wdGlvbiAKKy5CIC0tZXhjZXB0LWludGVyZmFjZQorbCdlbXBvcnRlIHRvdWpvdXJzIHN1ciBsZXMgYXV0cmVzLgorLlRQIAorLkIgXC0yLCAtLW5vLWRoY3AtaW50ZXJmYWNlPTxub20gZCdpbnRlcmZhY2U+CitOZSBwYXMgZm91cm5pciBkZSBzZXJ2aWNlIERIQ1Agc3VyIGwnaW50ZXJmYWNlIHNww6ljaWZpw6llLCBtYWlzIGZvdXJuaXIgdG91dCBkZQorbcOqbWUgbGUgc2VydmljZSBETlMuCisuVFAKKy5CIFwtYSwgLS1saXN0ZW4tYWRkcmVzcz08YWRyZXNzZSBJUD4KK0Vjb3V0ZXIgc3VyIGxhIG91IGxlcyBhZHJlc3NlKHMpIElQIHNww6ljaWZpw6llKHMpLiBMZXMgb3B0aW9ucyAKKy5CIFwtLWludGVyZmFjZQorZXQKKy5CIFwtLWxpc3Rlbi1hZGRyZXNzCitwZXV2ZW50LcOqdHJlIHNww6ljaWZpw6llcyBzaW11bHRhbsOpbWVudCwgYXVxdWVsIGNhcyB1biBqZXUgZCdpbnRlcmZhY2VzIGV0CitkJ2FkcmVzc2VzIHNlcm9udCB1dGlsaXPDqWVzLiBOb3RleiBxdWUgc2kKK2F1Y3VuZSBvcHRpb24KKy5CIFwtLWludGVyZmFjZQorbidlc3QgZG9ubsOpZSBhbG9ycyBxdSd1bmUgb3B0aW9uIAorLkIgXC0tbGlzdGVuLWFkZHJlc3MKK2wnZXN0LCBEbnNtYXNxIG4nw6ljb3V0ZXJhIHBhcyBhdXRvbWF0aXF1ZW1lbnQgc3VyIGwnaW50ZXJmYWNlIGxvY2FsZQorKCJsb29wYmFjayIpLiBQb3VyIGFjdGl2ZXIgbCfDqWNvdXRlIHN1ciBsJ2ludGVyZmFjZSBsb2NhbGUsIGlsIGVzdCBhbG9ycworbsOpY2Vzc2FpcmUgZGUgZm91cm5pciBleHBsaWNpdGVtZW50IHNvbiBhZHJlc3NlIElQLCAxMjcuMC4wLjEgdmlhIGwnb3B0aW9uCisuQiBcLS1saXN0ZW4tYWRkcmVzcy4KKy5UUAorLkIgXC16LCAtLWJpbmQtaW50ZXJmYWNlcworU3VyIGxlcyBzeXN0w6htZXMgcXVpIGxlIHN1cHBvcnRlLCBEbnNtYXNxIHMnYXNzb2NpZSBhdmVjIGwnaW50ZXJmYWNlIGpva2VyCisoIndpbGRjYXJkIiksIG3Dqm1lIGxvcnNxdSdpbCBuZSBkb2l0IMOpY291dGVyIHF1ZSBzdXIgY2VydGFpbmVzIGludGVyZmFjZXMuIFBhcgorbGEgc3VpdGUsIGlsIHJlamV0dGUgbGVzIHJlcXXDqnRlcyBhdXhxdWVsbGVzIGlsIG5lIGRvaXQgcGFzIHLDqXBvbmRyZS4gQ2V0dGUKK3NpdHVhdGlvbiBwcsOpc2VudGUgbCdhdmFudGFnZSBkZSBmb25jdGlvbm5lciBtw6ptZSBsb3JzcXVlIGxlcyBpbnRlcmZhY2VzIHZvbnQKK2V0IHZpZW5uZW50IG91IGNoYW5nZW50IGQnYWRyZXNzZXMuIEwnb3B0aW9uIAorLkIgLS1iaW5kLWludGVyZmFjZXMKK2ZvcmNlIERuc21hc3Egw6AgbmUgcsOpZWxsZW1lbnQgcydhc3NvY2llciBxdSdhdmVjIGxlcyBpbnRlcmZhY2VzIHN1ciBsZXNxdWVsbGVzCitpbCBkb2l0IMOpY291dGVyLiBMJ3VuIGRlcyBzZXVscyBjYXMgb8O5IGNldHRlIG9wdGlvbiBlc3QgdXRpbGUgZXN0IGNlbHVpIG/DuSB1bgorYXV0cmUgc2VydmV1ciBkZSBub20gKG91IHVuZSBhdXRyZSBpbnN0YW5jZSBkZSBEbnNtYXNxKSB0b3VybmUgc3VyIGxhIG3Dqm1lCittYWNoaW5lLiBVdGlsaXNlciBjZXR0ZSBvcHRpb24gcGVybWV0IMOpZ2FsZW1lbnQgZCdhdm9pciBwbHVzaWV1cnMgaW5zdGFuY2VzIGRlCitEbnNtYXNxIGZvdXJuaXNzYW50IHVuIHNlcnZpY2UgREhDUCBzdXIgbGEgbcOqbWUgbWFjaGluZS4KKy5UUAorLkIgXC15LCAtLWxvY2FsaXNlLXF1ZXJpZXMKK1JldG91cm5lIGRlcyByw6lwb25zZXMgYXV4IHJlcXXDqnRlcyBETlMgZMOpcGVuZGFudGVzIGRlIGwnaW50ZXJmYWNlIHN1ciBsYXF1ZWxsZQorbGEgcmVxdcOqdGUgYSDDqXTDqSByZcOndWUsIMOgIHBhcnRpciBkdSBmaWNoaWVyIC9ldGMvaG9zdHMuIFNpIHVuIG5vbSBkYW5zCisvZXRjL2hvc3RzIGEgcGx1cyBkJ3VuZSBhZHJlc3NlIGFzc29jacOpZSBhdmVjIGx1aSwgZXQgcXUndW5lIGRlcyBhZHJlc3NlcyBhdQorbW9pbnMgZXN0IGRhbnMgbGUgbcOqbWUgc291cy1yw6lzZWF1IHF1ZSBsJ2ludGVyZmFjZSBzdXIgbGFxdWVsbGUgbGEgcmVxdcOqdGUgYSDDqXTDqQorcmXDp3VlLCBhbG9ycyBuZSByZXRvdXJuZSBxdWUgbGEobGVzKSBhZHJlc3NlKHMpIGR1IHNvdXMtcsOpc2VhdSBjb25zaWTDqXLDqS4gQ2VsYQorcGVybWV0IGQnYXZvaXIgZGFucyAvZXRjL2hvc3RzIHVuIHNlcnZldXIgYXZlYyBkZSBtdWx0aXBsZXMgYWRyZXNzZXMsIHVuZSBwb3VyCitjaGFjdW5lIGRlIHNlcyBpbnRlcmZhY2VzLCBldCBkZSBmb3VybmlyIGF1eCBow7R0ZXMgbCdhZHJlc3NlIGNvcnJlY3RlIChiYXPDqWUgc3VyCitsZSByw6lzZWF1IGF1cXVlbCBpbHMgc29udCBhdHRhY2jDqXMpLiBDZXR0ZSBwb3NzaWJpbGl0w6kgZXN0IGFjdHVlbGxlbWVudCBsaW1pdMOpZQorw6AgSVB2NC4KKy5UUAorLkIgXC1iLCAtLWJvZ3VzLXByaXYKK0ZhdXNzZSByw6lzb2x1dGlvbiBpbnZlcnNlIHBvdXIgbGVzIHLDqXNlYXV4IHByaXbDqXMuIFRvdXRlcyBsZXMgcmVxdcOqdGVzIEROUworaW52ZXJzZXMgcG91ciBkZXMgYWRyZXNzZXMgSVAgcHJpdsOpZXMgKGllIDE5Mi4xNjgueC54LCBldGMuLi4pIHF1aSBuZSBzb250IHBhcwordHJvdXbDqWVzIGRhbnMgL2V0Yy9ob3N0cyBvdSBkYW5zIGxlIGZpY2hpZXIgZGUgYmF1eCBESENQIHNlIHZvaWVudCByZXRvdXJuw6llcwordW5lIHLDqXBvbnNlICJwYXMgZGUgdGVsIGRvbWFpbmUiICgibm8gc3VjaCBkb21haW4iKSBhdSBsaWV1IGQnw6p0cmUgdHJhbnNtaXNlcworYXV4IHNlcnZldXJzIGRlIG5vbSBhbW9udCAoInVwc3RyZWFtIHNlcnZlciIpLgorLlRQCisuQiBcLVYsIC0tYWxpYXM9PGFuY2llbm5lIElQPiw8bm91dmVsbGUgSVA+Wyw8bWFzcXVlPl0KK01vZGlmaWUgbGVzIGFkcmVzc2VzIElQdjQgcmV0b3VybsOpZXMgcGFyIGxlcyBzZXJ2ZXVycyBkZSBub20gYW1vbnQ7Cis8YW5jaWVubmUgSVA+IGVzdCByZW1wbGFjw6llIHBhciA8bm91dmVsbGUgSVA+LiBTaSBsZSA8bWFzcXVlPiBvcHRpb25uZWwgZXN0Citmb3VybmksIGFsb3JzIHRvdXRlIGFkcmVzc2UgY29ycmVzcG9uZGFudCDDoCBsJ2FkcmVzc2UgPGFuY2llbm5lIElQPi88bWFzcXVlPgorc2VyYSByw6nDqWNyaXRlLiBBaW5zaSBwYXIgZXhlbXBsZQorLkIgLS1hbGlhcz0xLjIuMy4wLDYuNy44LjAsMjU1LjI1NS4yNTUuMCAKK21vZGlmaWVyYSAxLjIuMy41NiBlbiA2LjcuOC41NiBldCAxLjIuMy42NyBlbiA2LjcuOC42Ny4gCitDZXR0ZSBmb25jdGlvbm5hbGl0w6kgY29ycmVzcG9uZCDDoCBjZSBxdWUgbGVzIHJvdXRldXJzIENpc2NvIFBJWCBhcHBlbGxlbnQKKyJiaWRvdWlsbGFnZSBETlMiICgiRE5TIGRvY3RvcmluZyIpLgorLlRQIAorLkIgXC1CLCAtLWJvZ3VzLW54ZG9tYWluPTxhZHJlc3NlIElQPgorVHJhbnNmb3JtZSBsZXMgcsOpcG9uc2VzIGNvbnRlbmFudCBsJ2FkcmVzc2UgSVAgZm91cm5pZSBlbiByw6lwb25zZXMgInBhcyBkZSB0ZWwKK2RvbWFpbmUiICgibm8gc3VjaCBkb21haW4iKS4gQ2VjaSBhIHBvdXIgYnV0IGRlIG5ldXRyYWxpc2VyIGxhIG1vZGlmaWNhdGlvbgorc291cm5vaXNlIG1pc2UgZW4gcGxhY2UgcGFyIFZlcmlzaWduIGVuIHNlcHRlbWJyZSAyMDAzLCBsb3JzcXUnaWxzIG9udCBjb21tZW5jw6kKK8OgIHJldG91cm5lciBsJ2FkcmVzc2UgZCd1biBzZXJ2ZXVyIHdlYiBwdWJsaWNpdGFpcmUgZW4gcsOpcG9uc2UgYXV4IHJlcXXDqnRlcyBwb3VyCitsZXMgbm9tcyBkZSBkb21haW5lcyBub24gZW5yZWdpc3Ryw6lzLCBhdSBsaWV1IGRlIGxhIHLDqXBvbnNlIGNvcnJlY3RlICJOWERPTUFJTiIuCitDZXR0ZSBvcHRpb24gZGVtYW5kZSDDoCBEbnNtYXNxIGRlIHJldG91cm5lciBsYSByw6lwb25zZSBjb3JyZWN0ZSBsb3JzcXUnaWwKK2NvbnN0YXRlIGNlIGNvbXBvcnRlbWVudC4gTCdhZHJlc3NlIHJldG91cm7DqWUgcGFyIFZlcmlzaWduIGVuIHNlcHRlbWJyZSAyMDAzCitlc3QgNjQuOTQuMTEwLjExLgorLlRQCisuQiBcLWYsIC0tZmlsdGVyd2luMmsKK0xlcyBkZXJuacOocmVzIHZlcnNpb25zIGRlIHdpbmRvd3MgZm9udCBkZXMgcmVxdcOqdGVzIEROUyBww6lyaW9kaXF1ZXMgYXV4cXVlbGxlcworbm9uIHNldWxlbWVudCBsZXMgc2VydmV1cnMgRE5TIHB1YmxpY3MgbmUgcGV1dmVudCBkb25uZXIgZGUgcsOpcG9uc2UsIG1haXMgcXVpLAorZGUgc3VyY3Jvw650LCBwZXV2ZW50IHBvc2VyIGRlcyBwcm9ibMOobWVzIGVuIGTDqWNsZW5jaGFudCBkZXMgY29ubmV4aW9ucworaW50ZW1wZXN0aXZlcyBwb3VyIGRlcyBsaWVucyByw6lzZWF1eCBhdmVjIGRlcyBjb25uZXhpb25zICLDoCBsYSBkZW1hbmRlIi4gRm91cm5pcgorY2V0dGUgb3B0aW9uIGFjdGl2ZSBsZSBmaWx0cmFnZSBkZXMgcmVxdcOqdGVzIGRlIGNlIHR5cGUuIExlcyByZXF1w6p0ZXMgYmxvcXXDqWVzCitzb250IGxlcyByZXF1w6p0ZXMgcG91ciBsZXMgZW50csOpZXMgZGUgdHlwZSBTT0Egb3UgU1JWLCBhaW5zaSBxdWUgbGVzIHJlcXXDqnRlcyBkZQordHlwZSBBTlkgYXZlYyBkZXMgbm9tcyBwb3Nzw6lkYW50IGRlcyBjYXJhY3TDqHJlcyBzb3VzLWxpZ27DqXMgKHJlcXXDqnRlcyBwb3VyIGRlcworc2VydmV1cnMgTERBUCkuCisuVFAKKy5CIFwtciwgLS1yZXNvbHYtZmlsZT08ZmljaGllcj4KK0xpcyBsZXMgYWRyZXNzZXMgZGVzIHNlcnZldXJzIGRlIG5vbSBhbW9udCBkYW5zIGxlIGZpY2hpZXIgZGUgbm9tIDxmaWNoaWVyPiwKK2F1IGxpZXUgZHUgZmljaGllciAvZXRjL3Jlc29sdi5jb25mLiBQb3VyIGxlIGZvcm1hdCBkZSBjZSBmaWNoaWVyLCB2b2lyIGRhbnMgbGUKK21hbnVlbCBwb3VyCisuQlIgcmVzb2x2LmNvbmYgKDUpIAorbGVzIGVudHLDqWVzIGNvcnJlc3BvbmRhbnQgYXV4IHNlcnZldXJzIGRlIG5vbXMgKG5hbWVzZXJ2ZXIpLiBEbnNtYXNxIHBldXQgbGlyZQorcGx1c2lldXJzIGZpY2hpZXJzIGRlIHR5cGUgcmVzb2x2LmNvbmYsIGxlIHByZW1pZXIgZmljaGllciBzcMOpY2lmacOpIHJlbXBsYWNlIGxlCitmaWNoaWVyIHBhciBkw6lmYXV0LCBsZSBjb250ZW51IGRlcyBzdWl2YW50cyBlc3QgcmFqb3V0w6kgZGFucyBsYSBsaXN0ZSBkZXMKK2ZpY2hpZXJzIMOgIGNvbnN1bHRlci4gU2V1bCBsZSBmaWNoaWVyIGF5YW50IGxhIGRlcm5pw6hyZSBkYXRlIGRlIG1vZGlmaWNhdGlvbgorc2VyYSBjaGFyZ8OpIGVuIG3DqW1vaXJlLgorLlRQCisuQiBcLVIsIC0tbm8tcmVzb2x2CitOZSBwYXMgbGlyZSBsZSBjb250ZW51IGR1IGZpY2hpZXIgL2V0Yy9yZXNvbHYuY29uZi4gTidvYnRlbmlyIGwnYWRyZXNzZSBkZXMKK3NlcnZldXJzIGRlIG5vbSBhbW9udCBxdWUgZGVwdWlzIGxhIGxpZ25lIGRlIGNvbW1hbmRlIG91IGxlIGZpY2hpZXIgZGUKK2NvbmZpZ3VyYXRpb24gZGUgRG5zbWFzcS4KKy5UUAorLkIgXC0xLCAtLWVuYWJsZS1kYnVzCitBdXRvcmlzZXIgbGEgbWlzZSDDoCBqb3VyIGRlIGxhIGNvbmZpZ3VyYXRpb24gZGUgRG5zbWFzcSBwYXIgbGUgYmlhaXMgZCdhcHBlbCBkZQorbcOpdGhvZGVzIERCdXMuIElsIGVzdCBwb3NzaWJsZSBwYXIgY2UgYmlhaXMgZGUgbWV0dHJlIMOgIGpvdXIgbCdhZHJlc3NlIGRlCitzZXJ2ZXVycyBETlMgYW1vbnQgKGV0IGxlcyBkb21haW5lcyBjb3JyZXNwb25kYW50cykgZXQgZGUgdmlkZXIgbGUgY2FjaGUuIENldHRlCitvcHRpb24gbsOpY2Vzc2l0ZSBxdWUgRG5zbWFzcSBzb2l0IGNvbXBpbMOpIGF2ZWMgbGUgc3VwcG9ydCBEQnVzLgorLlRQIAorLkIgXC1vLCAtLXN0cmljdC1vcmRlcgorUGFyIGTDqWZhdXQsIERuc21hc3EgZW52b2llIGxlcyByZXF1w6p0ZXMgw6AgbidpbXBvcnRlIGxlcXVlbCBkZXMgc2VydmV1cnMgYW1vbnRzCitkb250IGlsIGEgY29ubmFpc3NhbmNlIHRvdXQgZW4gZXNzYXlhbnQgZGUgZmF2b3Jpc2VyIGxlcyBzZXJ2ZXVycyBxdSdpbCBzYWl0Citmb25jdGlvbm5lci4gQ2V0dGUgb3B0aW9uIGZvcmNlIERuc21hc3Egw6AgZXNzYXllciBkJ2ludGVycm9nZXIsIHBvdXIgY2hhcXVlCityZXF1w6p0ZSwgbGVzIHNlcnZldXJzIEROUyBkYW5zIGxldXIgb3JkcmUgZCdhcHBhcml0aW9uIGRhbnMgbGUgZmljaGllcgorL2V0Yy9yZXNvbHYuY29uZi4KKy5UUAorLkIgXC1uLCAtLW5vLXBvbGwKK05lIHBhcyB2w6lyaWZpZXIgcsOpZ3VsacOocmVtZW50IHNpIGxlIGZpY2hpZXIgL2V0Yy9yZXNvbHYuY29uZiBhIMOpdMOpIG1vZGlmacOpLgorLlRQCisuQiAtLWNsZWFyLW9uLXJlbG9hZAorTG9yc3F1ZSBsZSBmaWNoaWVyIC9ldGMvcmVzb2x2LmNvbmYgZXN0IHJlbHUsIHZpZGVyIGxlIGNhY2hlIEROUy4KK0NlbGEgZXN0IHV0aWxlIHNpIGxlcyBub3V2ZWF1eCBzZXJ2ZXVycyBzb250IHN1c2NlcHRpYmxlcyBkJ2F2b2lyIGRlcyBkb25uw6llcworZGlmZsOpcmVudGVzIGRlIGNlbGxlcyBzdG9ja8OpZXMgZGFucyBsZSBjYWNoZS4KKy5UUAorLkIgXC1ELCAtLWRvbWFpbi1uZWVkZWQKK0luZGlxdWUgw6AgRG5zbWFzcSBkZSBuZSBqYW1haXMgdHJhbnNtZXR0cmUgZW4gYW1vbnQgZGUgcmVxdcOqdGVzIHBvdXIgZGVzIG5vbXMKK3NpbXBsZXMsIG5lIGNvbXByZW5hbnQgZG9uYyBuaSBwb2ludHMgbmkgbm9tIGRlIGRvbWFpbmUuIFNpIHVuIG5vbSBuJ2VzdCBwYXMKK2RhbnMgL2V0Yy9ob3N0cyBvdSBkYW5zIGxhIGxpc3RlIGRlcyBiYXV4IERIQ1AsIGFsb3JzIHVuZSByw6lwb25zZSBkZSB0eXBlCisibm9uIHRyb3V2w6kiIGVzdCByZW52b3nDqWUuCisuVFAKKy5CIFwtUywgLS1sb2NhbCwgLS1zZXJ2ZXI9Wy9bPGRvbWFpbmU+XS9bZG9tYWluZS9dXVs8QWRyZXNzZSBJUD5bIzxwb3J0Pl1bQDxBZHJlc3NlIElQIHNvdXJjZT5bIzxwb3J0Pl1dXQorU3DDqWNpZmllIGRpcmVjdGVtZW50IGwnYWRyZXNzZSBJUCBkJ3VuIHNlcnZldXIgZGUgbm9tIGFtb250LiBDZXR0ZSBvcHRpb24gbmUKK3N1cHByaW1lIHBhcyBsYSBsZWN0dXJlIGR1IGZpY2hpZXIgL2V0Yy9yZXNvbHYuY29uZiA6IHV0aWxpc2VyIHBvdXIgY2VsYQorbCdvcHRpb24KKy5CIC1SIC4KK1NpIHVuIG91IHBsdXNpZXVycyBub20ocykgZGUgZG9tYWluZShzKSBvcHRpb25uZWwocykgc29udCBmb3VybmlzLCBjZQorc2VydmV1ciBzZXJhIHVuaXF1ZW1lbnQgdXRpbGlzw6kgdW5pcXVlbWVudCBwb3VyIGNlKHMpIGRvbWFpbmUocyksIGV0IHRvdXRlCityZXF1w6p0ZSBjb25jZXJuYW50IGNlKHMpIGRvbWFpbmUocykgc2VyYSBhZHJlc3PDqWUgdW5pcXVlbWVudCDDoCBjZSBzZXJ2ZXVyLgorQ2V0dGUgb3B0aW9uIGVzdCBkZXN0aW7DqWUgYXV4IHNlcnZldXJzIGRlIG5vbSBwcml2w6lzIDogc2kgdm91cyBhdmV6IHVuIHNlcnZldXIKK2RlIG5vbSBzdXIgdm90cmUgcsOpc2VhdSBheWFudCBwb3VyIGFkcmVzc2UgSVAgMTkyLjE2OC4xLjEgZXQgZWZmZWN0dWFudCBsYQorcsOpc29sdXRpb24gZGVzIG5vbXMgZGUgbGEgZm9ybWUgeHh4LmludGVybmFsLnRoZWtlbGxleXMub3JnLnVrLCBhbG9ycworLkIgLVMgL2ludGVybmFsLnRoZWtlbGxleXMub3JnLnVrLzE5Mi4xNjguMS4xIAorZW52ZXJyYSB0b3V0ZXMgbGVzIHJlcXXDqnRlcyBwb3VyIGxlcyBtYWNoaW5lcyBpbnRlcm5lcyB2ZXJzIGNlIHNlcnZldXIgZGUgbm9tLAorYWxvcnMgcXVlIHRvdXRlcyBsZXMgYXV0cmVzIHJlcXXDqnRlcyBzZXJvbnQgYWRyZXNzw6llcyBhdXggc2VydmV1cnMgaW5kaXF1w6lzIGRhbnMKK2xlIGZpY2hpZXIgL2V0Yy9yZXNvbHYuY29uZi4gVW5lIHNww6ljaWZpY2F0aW9uIGRlIG5vbSBkZSBkb21haW5lIHZpZGUsCisuQiAvLyAKK3Bvc3PDqGRlIGxlIHNlbnMgcGFydGljdWxpZXIgZGUgInBvdXIgbGVzIG5vbXMgbm9uIHF1YWxpZmnDqXMgdW5pcXVlbWVudCIsCitjJ2VzdC3DoC1kaXJlIGxlcyBub21zIG5lIHBvc3PDqWRhbnQgcGFzIGRlIHBvaW50cy4gVW4gcG9ydCBub24gc3RhbmRhcmQgcGV1dCDDqnRyZQorcmFqb3V0w6kgw6AgbGEgc3VpdGUgZGVzIGFkcmVzc2VzIElQIGVuIHV0aWxpc2FudCBsZSBjYXJhY3TDqHJlICMuIFBsdXMgZCd1bmUKK29wdGlvbgorLkIgLVMKK2VzdCBhdXRvcmlzw6llLCBlbiByw6lww6l0YW50IGxlcyBkb21haW5lcyBldCBhZHJlc3NlcyBJUCBjb21tZSByZXF1aXMuCisKK0lsIGVzdCDDqWdhbGVtZW50IHBlcm1pcyBkZSBkb25uZXIgdW5lIG9wdGlvbgorLkIgLVMKK2F2ZWMgdW4gbm9tIGRlIGRvbWFpbmUgbWFpcyBzYW5zCithZHJlc3NlIElQOyBDZWxhIGluZm9ybWUgRG5zbWFzcSBxdWUgbGUgZG9tYWluZSBlc3QgbG9jYWwgZXQgcXUnaWwgZG9pdCByw6lwb25kcmUKK2F1eCByZXF1w6p0ZXMgbGUgY29uY2VybmFudCBkZXB1aXMgbGVzIGVudHLDqWVzIGNvbnRlbnVlcyBkYW5zIGxlIGZpY2hpZXIKKy9ldGMvaG9zdHMgb3UgbGVzIGJhdXggREhDUCwgZXQgbmUgZG9pdCBlbiBhdWN1biBjYXMgdHJhbnNtZXR0cmUgbGVzIHJlcXXDqnRlcworYXV4IHNlcnZldXJzIGFtb250cy4KKy5CIGxvY2FsCitlc3Qgc3lub255bWUgZGUKKy5CIHNlcnZlcgorKCJzZXJ2ZXVyIikgYWZpbiBkZSByZW5kcmUgcGx1cyBjbGFpcmUgbCd1dGlsaXNhdGlvbiBkZSBjZXR0ZSBvcHRpb24gcG91ciBjZXQKK3VzYWdlIHBhcnRpY3VsaWVyLgorCitMYSBkZXV4acOobWUgYWRyZXNzZSBJUCBvcHRpb25uZWxsZSBzdWl2YW50IGxlIGNhcmFjdMOocmUgQCBwZXJtZXQgZGUgZMOpZmluaXIKK2wnYWRyZXNzZSBzb3VyY2UgcXVlIERuc21hc3EgZG9pdCB1dGlsaXNlciBjb21tZSBzb3VyY2UgcG91ciBsZXMgcsOpcG9uc2VzIMOgIGNlCitzZXJ2ZXVyIGRlIG5vbS4gSWwgZG9pdCBzJ2FnaXIgZCd1bmUgZGVzIGFkcmVzc2VzIGFwcGFydGVuYW50IMOgIGxhIG1hY2hpbmUgc3VyCitsYXF1ZWxsZSB0b3VybmUgRG5zbWFzcSBvdSBzaW5vbiBsYSBsaWduZSBzZXJhIGlnbm9yw6llIGV0IHVuZSBlcnJldXIgc2VyYQorY29uc2lnbsOpZSBkYW5zIGxlIGpvdXJuYWwgZGVzIMOpdsOpbmVtZW50cy4gTCdvcHRpb24KKy5CIHF1ZXJ5LXBvcnQKK2VzdCBpZ25vcsOpZSBwb3VyIHRvdXMgbGVzIHNlcnZldXJzIGF5YW50IHVuZSBhZHJlc3NlIHNvdXJjZSBzcMOpY2lmacOpZSwgbWFpcyBpbAorZXN0IHBvc3NpYmxlIGRlIGxhIGRvbm5lciBkaXJlY3RlbWVudCBkYW5zIGxhIHNww6ljaWZpY2F0aW9uIGRlIGwnYWRyZXNzZSBzb3VyY2UuCisuVFAKKy5CIFwtQSwgLS1hZGRyZXNzPS88ZG9tYWluZT4vW2RvbWFpbmUvXTxhZHJlc3NlIElQPgorU3DDqWNpZmllIHVuZSBhZHJlc3NlIElQIMOgIHJldG91cm5lciBwb3VyIHRvdXRlIHJlcXXDqnRlIHBvdXIgbGVzIGRvbWFpbmVzIGZvdXJuaXMKK2VuIG9wdGlvbi4gTGVzIHJlcXXDqnRlcyBwb3VyIGNlKHMpIGRvbWFpbmUocykgbmUgc29udCBqYW1haXMgdHJhbnNtaXNlcyBhdXgKK3NlcnZldXJzIGFtb250cyBldCByZcOnb2l2ZW50IGNvbW1lIHLDqXBvbnNlIGwnYWRyZXNzZSBJUCBzcMOpY2lmacOpZSBxdWkgcGV1dCDDqnRyZQordW5lIGFkcmVzc2UgSVB2NCBvdSBJUHY2LiBQb3VyIGRvbm5lciDDoCBsYSBmb2lzIHVuZSBhZHJlc3NlIElQdjQgZXQgdW5lIGFkcmVzc2UKK0lQdjYgcG91ciB1biBkb21haW5lLCB1dGlsaXNlciBwbHVzaWV1cnMgb3B0aW9ucworLkIgLUEuCitJbCBmYXV0IG5vdGVyIHF1ZSBsZQorY29udGVudSBkdSBmaWNoaWVyIC9ldGMvaG9zdHMgZXQgZGUgY2VsdWkgZGVzIGJhdXggREhDUCBzdXBwbGFudGUgY2VjaSBwb3VyIGRlcworbm9tcyBpbmRpdmlkdWVscy4gVW5lIHV0aWxpc2F0aW9uIGNvdXJhbnRlIGRlIGNldHRlIG9wdGlvbiBlc3QgZGUgcmVkaXJpZ2VyIGxhCit0b3RhbGl0w6kgZHUgZG9tYWluZSBkb3VibGVjbGljay5uZXQgdmVycyB1biBzZXJ2ZXVyIHdlYiBsb2NhbCBhZmluIGQnw6l2aXRlciBsZXMKK2Jhbm5pw6hyZXMgcHVibGljaXRhaXJlcy4gTGEgc3DDqWNpZmljYXRpb24gZGUgZG9tYWluZSBmb25jdGlvbm5lIGRlIGxhIG3Dqm1lIGZhw6dvbgorcXVlCisuQiAgLS1zZXJ2ZXIsCithdmVjIGxhIGNhcmFjdMOpcmlzdGlxdWUgc3VwcGzDqW1lbnRhaXJlIHF1ZQorLkIgLyMvCitjb8OvbmNpZGUgYXZlYyB0b3V0IGRvbWFpbmUuIEFpbnNpLAorLkIgLS1hZGRyZXNzPS8jLzEuMi4zLjQKK3JldG91cm5lcmEgMS4yLjMuNCBwb3VyIHRvdXRlIHJlcXXDqnRlCituJ2F5YW50IGRlIHLDqXBvbnNlIG5pIGRhbnMgL2V0Yy9ob3N0cywgbmkgZGFucyBsZXMgYmF1eCBESENQLCBldCBuJ8OpdGFudCBwYXMKK3RyYW5zbWlzZSDDoCB1biBzZXJ2ZXVyIHNww6ljaWZpcXVlIHBhciBsZSBiaWFpcyBkJ3VuZSBkaXJlY3RpdmUKKy5CIC0tc2VydmVyLgorLlRQCisuQiBcLW0sIC0tbXgtaG9zdD08bm9tIGRlIGwnaMO0dGU+W1ssPG5vbSBkdSBNWD5dLDxwcsOpZmVyZW5jZT5dCitTcMOpY2lmaWUgdW4gZW5yZWdpc3RyZW1lbnQgZGUgdHlwZSBNWCBwb3VyIDxub20gZGUgbCdow7R0ZT4gcmV0b3VybmFudCBsZSBub20KK2Rvbm7DqSBkYW5zIDxub20gZHUgTVg+IChzJ2lsIGVzdCBwcsOpc2VudCksIG91IHNpbm9uIGxlIG5vbSBzcMOpY2lmacOpIGRhbnMKK2wnb3B0aW9uCisuQiAtLW14LXRhcmdldAorc2kgZWxsZSBlc3QgcHLDqXNlbnRlLiBTaW5vbiByZXRvdXJuZSBsZSBub20gZGUgbGEgbWFjaGluZQorc3VyIGxhcXVlbGxlIERuc21hc3EgdG91cm5lLiBMYSB2YWxldXIgcGFyIGTDqWZhdXQgKHNww6ljaWZpw6llIGRhbnMgbCdvcHRpb24KKy5CIC0tbXgtdGFyZ2V0CispIGVzdCB1dGlsZSBkYW5zIHVuIHLDqXNlYXUgbG9jYWwgcG91ciByZWRpcmlnZXIgbGVzIGNvdXJyaWVycworw6lsZWN0cm9uaXF1ZXMgdmVycyB1biBzZXJ2ZXVyIGNlbnRyYWwuIExhIHZhbGV1ciBkZSBwcsOpZsOpcmVuY2UgZXN0IG9wdGlvbm5lbGxlCitldCB2YXV0IHBhciBkw6lmYXV0IDEgc2kgZWxsZSBuJ2VzdCBwYXMgc3DDqWNpZmnDqWUuIFBsdXMgZCd1bmUgZW50csOpZSBNWCBwZXV0IMOqdHJlCitmb3VybmllIHBvdXIgdW4gaMO0dGUgZG9ubsOpLgorLlRQIAorLkIgXC10LCAtLW14LXRhcmdldD08bm9tIGQnaMO0dGU+CitTcMOpY2lmaWUgbGEgcsOpcG9uc2UgcGFyIGTDqWZhdXQgZm91cm5pZSBwYXIgRG5zbWFzcSBwb3VyIGxlcyByZXF1w6p0ZXMgc3VyIGRlcworZW5yZWdpc3RyZW1lbnRzIGRlIHR5cGUgTVguIFZvaXIKKy5CIC0tbXgtaG9zdC4KK1NpCisuQiAtLW14LXRhcmdldAorZXN0IGRvbm7DqSBtYWlzIHBhcyBkZQorLkIgLS1teC1ob3N0LAorYWxvcnMgRG5zbWFzcSByZXRvdXJuZSBjb21tZSByw6lwb25zZSB1biBlbnJlZ2lzdHJlbWVudCBNWAorY29udGVuYW50IGxlIG5vbSBkJ2jDtHRlIHNww6ljaWZpw6kgZGFucyBsJ29wdGlvbgorLkIgLS1teC10YXJnZXQKK3BvdXIgdG91dGUgcmVxdcOqdGUKK2NvbmNlcm5hbnQgbGUgTVggZGUgbGEgbWFjaGluZSBzdXIgbGFxdWVsbGUgdG91cm5lIERuc21hc3EuCisuVFAKKy5CIFwtZSwgLS1zZWxmbXgKK0TDqWZpbml0LCBwb3VyIHRvdXRlcyBsZXMgbWFjaGluZXMgbG9jYWxlcywgdW4gTVggY29ycmVzcG9uZGFudCDDoCBsJ2jDtHRlCitjb25zaWTDqXLDqS4gTGVzIG1hY2hpbmVzIGxvY2FsZXMgc29udCBjZWxsZXMgZMOpZmluaWVzIGRhbnMgbGUgZmljaGllciAvZXRjL2hvc3RzCitvdSBkYW5zIHVuIGJhaWwgREhDUC4KKy5UUCAKKy5CIFwtTCwgLS1sb2NhbG14CitEw6lmaW5pdCwgcG91ciB0b3V0ZXMgbGVzIG1hY2hpbmVzIGxvY2FsZXMsIHVuIGVucmVnaXN0cmVtZW50IE1YIHBvaW50YW50IHN1cgorbCdow7R0ZSBzcMOpY2lmacOpIHBhciBteC10YXJnZXQgKG91IGxhIG1hY2hpbmUgc3VyIGxhcXVlbGxlIERuc21hc3EgdG91cm5lKS4gTGVzCittYWNoaW5lcyBsb2NhbGVzIHNvbnQgY2VsbGVzIGTDqWZpbmllcyBkYW5zIGxlIGZpY2hpZXIgL2V0Yy9ob3N0cyBvdSBkYW5zIHVuIGJhaWwKK0RIQ1AuCisuVFAKKy5CIFwtVyAtLXNydi1ob3N0PTxfc2VydmljZT4uPF9wcm90b2NvbGU+Lls8ZG9tYWluZT5dLFs8Y2libGU+Wyw8cG9ydD5bLDxwcmlvcml0w6k+Wyw8cG9pZHM+XV1dXQorU3DDqWNpZmllIHVuIGVucmVnaXN0cmVtZW50IEROUyBkZSB0eXBlIFNSVi4gVm9pciBsYSBSRkMyNzgyIHBvdXIgcGx1cyBkZQorZMOpdGFpbHMuIFNpIGxlIGNoYW1wcyA8ZG9tYWluZT4gbidlc3QgcGFzIGZvdXJuaSwgcHJlbmRzIHBhciBkw6lmYXV0IGxhIHZhbGV1cgorZm91cm5pZSBkYW5zIGwnb3B0aW9uCisuQiAtLWRvbWFpbi4KK0xhIHZhbGV1ciBwYXIgZMOpZmF1dCBwb3VyIGxlIGRvbWFpbmUgZXN0IHZpZGUgZXQgbGUgcG9ydCBwYXIgZMOpZmF1dCBlc3QgMSwgYWxvcnMKK3F1ZSBsZXMgcG9pZHMgZXQgcHJpb3JpdMOpcyBwYXIgZMOpZmF1dCBzb250IDAuIEF0dGVudGlvbiBsb3JzcXVlIHZvdXMgdHJhbnNwb3NlegorZGVzIHZhbGV1cnMgaXNzdWVzIGQndW5lIGNvbmZpZ3VyYXRpb24gQklORCA6IGxlcyBwb3J0cywgcG9pZHMgZXQgcHJpb3JpdMOpcyBzb250CitkYW5zIHVuIG9yZHJlIGRpZmbDqXJlbnRzLiBQb3VyIHVuIHNlcnZpY2UvZG9tYWluZSBkb25uw6ksIHBsdXMgZCd1bgorZW5yZWdpc3RyZW1lbnQgU1JWIGVzdCBhdXRvcmlzw6kgZXQgdG91cyBsZXMgZW5yZWdpc3RyZW1lbnRzIHF1aSBjb8OvbmNpZGVudCBzb250CityZXRvdXJuw6lzIGRhbnMgbGEgcsOpcG9uc2UuCisuVFAKKy5CIFwtWSwgLS10eHQtcmVjb3JkPTxub20+W1ssPHRleHRlPl0sPHRleHRlPl0KK0TDqWZpbml0IHVuIGVucmVnaXN0cmVtZW50IEROUyBkZSB0eXBlIFRYVC4gTGEgdmFsZXVyIGRlIGwnZW5yZWdpc3RyZW1lbnQgVFhUIGVzdAordW4gZW5zZW1ibGUgZGUgY2hhw65uZXMgZGUgY2FyYWN0w6hyZXMsIGRvbmMgdW4gbm9tYnJlIHZhcmlhYmxlIGRlIGNoYcOubmVzIGRlCitjYXJhY3TDqHJlcyBwZXV2ZW50IMOqdHJlIHNww6ljaWZpw6llcywgc8OpcGFyw6llcyBwYXIgZGVzIHZpcmd1bGVzLgorLlRQCisuQiAtLXB0ci1yZWNvcmQ9PG5vbT5bLDxjaWJsZT5dCitEw6lmaW5pdCB1biBlbnJlZ2lzdHJlbWVudCBETlMgZGUgdHlwZSBQVFIuCisuVFAKKy5CIC0taW50ZXJmYWNlLW5hbWU9PG5vbT4sPGludGVyZmFjZT4KK0TDqWZpbml0IHVuIGVudHJlZ2lzdHJlbWVudCBETlMgYXNzb2NpYW50IGxlIG5vbSBhdmVjIGwnYWRyZXNzZSBwcmltYWlyZSBzdXIKK2wnaW50ZXJmYWNlIGRvbm7DqWUgZW4gYXJndW1lbnQuIENldHRlIG9wdGlvbiBzcMOpY2lmaWUgdW4gZW5yZWdpc3RyZW1lbnQgZGUgdHlwZQorQSBwb3VyIGxlIG5vbSBkb25uw6kgZW4gYXJndW1lbnQgZGUgbGEgbcOqbWUgZmHDp29uIHF1ZSBzJ2lsIMOpdGFpdCBkw6lmaW5pIHBhciB1bmUKK2xpZ25lIGRlIC9ldGMvaG9zdHMsIHNhdWYgcXVlIGwnYWRyZXNzZSBuJ2VzdCBwYXMgY29uc3RhbnRlIG1haXMgZMOpcGVuZGFudGUgZGUKK2wnaW50ZXJmYWNlIGTDqWZpbmllLiBTaSBsJ2ludGVyZmFjZSBlc3QgaW5hY3RpdmUsIG5vbiBleGlzdGFudGUgb3Ugbm9uCitjb25maWd1csOpZSwgdW5lIHLDqXBvbnNlIHZpZGUgZXN0IGZvdXJuaWUuIFVuIGVucmVnaXN0cmVtZW50IGludmVyc2UgKFBUUikgZXN0CivDqWdhbGVtZW50IGNyw6nDqSBwYXIgY2V0dGUgb3B0aW9uLCBhc3NvY2lhbnQgbCdhZHJlc3NlIGRlIGwnaW50ZXJmYWNlIGF2ZWMgbGUgbm9tLgorUGx1cyBkJ3VuIG5vbSBwZXV0IMOqdHJlIGFzc29jacOpIMOgIHVuZSBpbnRlcmZhY2UgZG9ubsOpZSBlbiByw6lww6l0YW50IGNldHRlIG9wdGlvbgorcGx1c2lldXJzIGZvaXM7IGRhbnMgY2UgY2FzLCBsJ2VucmVnaXN0cmVtZW50IGludmVyc2UgcG9pbnRlIHZlcnMgbGUgbm9tIGZvdXJuaQorZGFucyBsYSBwcmVtacOocmUgaW5zdGFuY2UgZGUgY2V0dGUgb3B0aW9uLgorLlRQCisuQiBcLWMsIC0tY2FjaGUtc2l6ZT08dGFpbGxlPgorRMOpZmluaXQgbGEgdGFpbGxlIGR1IGNhY2hlIGRlIERuc21hc3EuIExhIHZhbGV1ciBwYXIgZMOpZmF1dCBlc3QgZGUgMTUwIG5vbXMuCitEw6lmaW5pciB1bmUgdmFsZXVyIGRlIHrDqXJvIGTDqXNhY3RpdmUgbGUgY2FjaGUuCisuVFAKKy5CIFwtTiwgLS1uby1uZWdjYWNoZQorRMOpc2FjdGl2ZSBsZSAiY2FjaGUgbsOpZ2F0aWYiLiBMZSAiY2FjaGUgbsOpZ2F0aWYiIHBlcm1ldCDDoCBEbnNtYXNxIGRlIHNlIHNvdXZlbmlyCitkZXMgcsOpcG9uc2VzIGRlIHR5cGUgIm5vIHN1Y2ggZG9tYWluIiBmb3VybmllcyBwYXIgbGVzIHNlcnZldXJzIEROUyBlbiBhbW9udCBldAorZGUgZm91cm5pciBsZXMgcsOpcG9uc2VzIHNhbnMgYXZvaXIgw6AgcmUtdHJhbnNtZXR0cmUgbGVzIHJlcXXDqnRlcyBhdXggc2VydmV1cnMKK2Ftb250LgorLlRQCisuQiBcLTAsIC0tZG5zLWZvcndhcmQtbWF4PTxub21icmUgZGUgcmVxdcOqdGVzPgorRMOpZmluaXQgbGUgbm9tYnJlIG1heGltdW0gZGUgcmVxdcOqdGVzIEROUyBzaW11bHRhbsOpZXMuIExhIHZhbGV1ciBwYXIgZMOpZmF1dCBlc3QKKzE1MCwgY2UgcXVpIGRldnJhaXQgw6p0cmUgc3VmZmlzYW50IGRhbnMgbGEgbWFqb3JpdMOpIGRlcyBjb25maWd1cmF0aW9ucy4gTGEgc2V1bGUKK3NpdHVhdGlvbiBpZGVudGlmacOpZSBkYW5zIGxhcXVlbGxlIGNldHRlIHZhbGV1ciBuw6ljZXNzaXRlIGQnw6p0cmUgYXVnbWVudMOpZSBlc3QKK2xvcnNxdSd1biBzZXJ2ZXVyIHdlYiBhIGxhIHLDqXNvbHV0aW9uIGRlIG5vbSBhY3RpdsOpZSBwb3VyIGwnZW5yZWdpc3RyZW1lbnQgZGUKK3NvbiBqb3VybmFsIGRlcyByZXF1w6p0ZXMsIGNlIHF1aSBwZXV0IGfDqW7DqXJlciB1biBub21icmUgaW1wb3J0YW50IGRlIHJlcXXDqnRlcworc2ltdWx0YW7DqWVzLgorLlRQCisuQiBcLUYsIC0tZGhjcC1yYW5nZT1bW25ldDpdaWRlbnRpZmlhbnQgZGUgcsOpc2VhdSxdPGFkcmVzc2UgZGUgZMOpYnV0Piw8YWRyZXNzZSBkZSBmaW4+W1ssPG1hc3F1ZSBkZSByw6lzZWF1Pl0sPGJyb2FkY2FzdD5dWyw8ZHVyw6llIGRlIGJhaWwgcGFyIGTDqWZhdXQ+XQorQWN0aXZlIGxlIHNlcnZldXIgREhDUC4gTGVzIGFkcmVzc2VzIHNlcm9udCBkb25uw6llcyBkYW5zIGxhIHBsYWdlIGNvbXByaXNlIGVudHJlCis8YWRyZXNzZSBkZSBkw6lidXQ+IGV0IDxhZHJlc3NlIGRlIGZpbj4gZXQgw6AgcGFydGlyIGRlcyBhZHJlc3NlcyBkw6lmaW5pZXMKK3N0YXRpcXVlbWVudCBkYW5zIGwnb3B0aW9uCisuQiBkaGNwLWhvc3QuCitTaSB1bmUgZHVyw6llIGRlIGJhaWwgZXN0IGRvbm7DqWUsIGFsb3JzIGxlcyBiYXV4IHNlcm9udCBkb25uw6lzIHBvdXIgY2V0dGUKK2R1csOpZS4gTGEgZHVyw6llIGRlIGJhaWwgZXN0IGRvbm7DqWUgZW4gc2Vjb25kZXMsIGVuIG1pbnV0ZXMgKGV4ZW1wbGUgOiA0NW0pLAorZW4gaGV1cmVzIChleGVtcGxlIDogMWgpIG91IMOqdHJlIGxhIGNoYWluZSBkZSBjYXJhY3TDqHJlICJpbmZpbml0ZSIgcG91ciB1bmUKK2R1csOpZSBpbmTDqXRlcm1pbsOpZS4gQ2V0dGUgb3B0aW9uIHBldXQgw6p0cmUgcsOpcMOpdMOpZSwgYXZlYyBkaWZmw6lyZW50ZXMgYWRyZXNzZXMsCitwb3VyIGFjdGl2ZXIgbGUgc2VydmljZSBESENQIHN1ciBwbHVzIGQndW4gcsOpc2VhdS4gUG91ciBkZXMgcsOpc2VhdXggZGlyZWN0ZW1lbnQKK2Nvbm5lY3TDqXMgKGMnZXN0LcOgLWRpcmUgZGVzIHLDqXNlYXV4IGRhbnMgbGVzcXVlbHMgbGEgbWFjaGluZSBzdXIgbGFxdWVsbGUgdG91cm5lCitEbnNtYXNxIHBvc3PDqGRlIHVuZSBpbnRlcmZhY2UpLCBsZSBtYXNxdWUgZGUgcsOpc2VhdSBlc3Qgb3B0aW9ubmVsLiBJbCBlc3QgcGFyCitjb250cmUgcmVxdWlzIHBvdXIgbGVzIHLDqXNlYXV4IHBvdXIgbGVzcXVlbHMgbGUgc2VydmljZSBESENQIHNlIGZhaXQgdmlhIHVuCityZWxhaXMgREhDUCAoInJlbGF5IGFnZW50IikuIEwnYWRyZXNzZSBkZSBicm9hZGNhc3QgZXN0IHRvdWpvdXJzIG9wdGlvbm5lbGxlLgorCitTdXIgY2VydGFpbnMgc3lzdMOobWVzLCBEbnNtYXNxIG5lIHBldXQgw6ljb3V0ZXIgcXVlIHN1ciB1bmUgaW50ZXJmYWNlIGxvcnNxdSdpbAordXRpbGlzZSBESENQLCBldCBsZSBub20gZGUgbCdpbnRlcmZhY2UgZG9pdCDDqnRyZSBzcMOpY2lmacOpIHBhciBsJ29wdGlvbiAKKy5CIGludGVyZmFjZS4KK0NldHRlIGxpbWl0YXRpb24gYWZmZWN0ZSB0b3VzIGxlcyBzeXN0w6htZXMgT3BlbkJTRCBhdmFudCBsYSB2ZXJzaW9uIDQuMC4gSWwKK2VzdCB0b3Vqb3VycyBwb3NzaWJsZSBkJ2F2b2lyIHBsdXMgZCd1bmUgcGxhZ2UgREhDUCBwb3VyIHVuIG3Dqm1lIHNvdXMtcsOpc2VhdS4KKworTCdpZGVudGlmaWFudCBkZSByw6lzZWF1IG9wdGlvbm5lbCBlc3QgdW4gbGFiZWwgYWxwaGFudW3DqXJpcXVlIHF1aSBwZXJtZXQgZGUKK21hcnF1ZXIgY2UgcsOpc2VhdSBhZmluIGRlIGZvdXJuaXIgZGVzIG9wdGlvbnMgREhDUCBzcMOpY2lmaXF1ZXMgw6AgY2hhcXVlIHLDqXNlYXUuCitMb3JzcXVlIHByw6lmaXjDqSBwYXIgJ25ldDonLCBsYSBzaWduaWZpY2F0aW9uIGNoYW5nZSBlc3QgYXUgbGlldSBkZSBkw6lmaW5pciB1bgorbGFiZWwsIGlsIGTDqWZpbml0IGxlIGxhYmVsIHBvdXIgbGFxdWVsbGUgbGEgcsOoZ2xlIHMnYXBwbGlxdWUuIFVuIHNldWwgbGFiZWwgcGV1dC0KK8OqdHJlIGTDqWZpbmkgbWFpcyBwbHVzaWV1cnMgbGFiZWxzIHBldXZlbnQgY2/Dr25jaWRlci4KKworTCdhZHJlc3NlIGRlIGZpbiBwZXV0IMOqdHJlIHJlbXBsYWPDqWUgcGFyIGxlIG1vdC1jbGVmCisuQiBzdGF0aWMKKygic3RhdGlxdWUiKSBxdWkgaW5kaXF1ZSDDoCBEbnNtYXNxIGQnYWN0aXZlciBsZSBzZXJ2aWNlIERIQ1AgcG91ciBsZSByw6lzZWF1CitzcMOpY2lmacOpLCBtYWlzIGRlIG5lIHBhcyBhY3RpdmVyIGwnYWxsb2NhdGlvbiBkeW5hbWlxdWUgZCdhZHJlc3NlcyBJUC4gU2V1bHMgbGVzCitow7R0ZXMgcG9zc8OpZGFudCBkZXMgYWRyZXNzZXMgSVAgc3RhdGlxdWVzIGZvdXJuaWVzIHZpYSAKKy5CIGRoY3AtaG9zdAorb3UgcHLDqXNlbnRlcyBkYW5zIGxlIGZpY2hpZXIgL2V0Yy9ldGhlcnMgc2Vyb250IGFsb3JzIHNlcnZpcyBwYXIgbGUgREhDUC4KKy5UUAorLkIgXC1HLCAtLWRoY3AtaG9zdD1bPGFkcmVzc2UgbWF0w6lyaWVsbGU+XVssaWQ6PGlkZW50aWZpYW50IGNsaWVudD58Kl1bLG5ldDo8aWRlbnRpZmlhbnQgZGUgcsOpc2VhdT5dWyw8YWRyZXNzZSBJUD5dWyw8bm9tIGQnaMO0dGU+XVssPGR1csOpZSBkZSBiYWlsPl1bLGlnbm9yZV0KK1Nww6ljaWZpZSBsZXMgcGFyYW3DqHRyZXMgREhDUCByZWxhdGlmcyDDoCB1biBow7R0ZS4gQ2VsYSBwZXJtZXQgw6AgdW5lIG1hY2hpbmUKK3Bvc3PDqWRhbnQgdW5lIGFkcmVzc2UgbWF0w6lyaWVsbGUgc3DDqWNpZmlxdWUgZGUgc2Ugdm9pciB0b3Vqb3VycyBhbGxvdcOpZSBsZXMKK23Dqm1lcyBub20gZCdow7R0ZSwgYWRyZXNzZSBJUCBldCBkdXLDqWUgZGUgYmFpbC4gVW4gbm9tIGQnaMO0dGUgc3DDqWNpZmnDqSBjb21tZQorY2VjaSByZW1wbGFjZSBsZSBub20gZm91cm5pIHBhciBsZSBjbGllbnQgREhDUCBkZSBsYSBtYWNoaW5lIGjDtHRlLiBJbCBlc3QKK8OpZ2FsZW1lbnQgcG9zc2libGUgZCdvbWV0dHJlIGwnYWRyZXNzZSBtYXTDqXJpZWxsZSBldCBkJ2luY2x1cmUgbGUgbm9tIGQnaMO0dGUsCithdXF1ZWwgY2FzIGwnYWRyZXNzZSBJUCBldCBsYSBkdXLDqWUgZGUgYmFpbCBzJ2FwcGxpcXVlcm9udCDDoCB0b3V0ZSBtYWNoaW5lIHNlCityw6ljbGFtYW50IGRlIGNlIG5vbS4gUGFyIGV4ZW1wbGUKKy5CIC0tZGhjcC1ob3N0PTAwOjIwOmUwOjNiOjEzOmFmLHdhcCxpbmZpbml0ZSAKK3Nww6ljaWZpZSDDoCBEbnNtYXNxIGRlIGZvdXJuaXIgw6AgbGEgbWFjaGluZSBkJ2FkcmVzc2UgbWF0w6lyaWVsbGUKKzAwOjIwOmUwOjNiOjEzOmFmIGxlIG5vbSwgZXQgdW4gYmFpbCBkZSBkdXLDqWUgaW5kw6l0ZXJtaW7DqWUuCisKKy5CIC0tZGhjcC1ob3N0PWxhcCwxOTIuMTY4LjAuMTk5IAorc3DDqWNpZmllIMOgIERuc21hc3EgZCdhbGxvdWVyIHRvdWpvdXJzIMOgIGxhIG1hY2hpbmUgcG9ydGFudCBsZSBub20gbGFwCitsJ2FkcmVzc2UgSVAgOTIuMTY4LjAuMTk5LiBMZXMgYWRyZXNzZXMgYWxsb3XDqWVzIGNvbW1lIGNlY2kgbmUgc29udCBwYXMKK2NvbnRyYWludGVzIGRhbnMgdW5lIHBsYWdlIGQnYWRyZXNzZSBzcMOpY2lmacOpZSBwYXIgdW5lIG9wdGlvbiAtLWRoY3AtcmFuZ2UsIG1haXMKK2VsbGVzIGRvaXZlbnQgw6p0cmUgc3VyIHVuIHLDqXNlYXUgc2VydmkgcGFyIGxlIHNlcnZldXIgREhDUC4gSWwgZXN0IHBvc3NpYmxlCitkJ3V0aWxpc2VyIGRlcyBpZGVudGlmaWFudHMgY2xpZW50cyBwbHV0w7R0IHF1ZSBkZXMgYWRyZXNzZXMgbWF0w6lyaWVsbGVzIHBvdXIKK2lkZW50aWZpZXIgbGVzIGjDtHRlcywgZW4gcHLDqWZpeGFudCBwYXIgY2V1eC1jaSBwYXIgJ2lkOicuIEFpbnNpLCAKKy5CIC0tZGhjcC1ob3N0PWlkOjAxOjAyOjAzOjA0LC4uLi4uIAorcsOpZsOocmUgw6AgbCdow7R0ZSBkJ2lkZW50aWZpYW50IDAxOjAyOjAzOjA0LiBJbCBlc3Qgw6lnYWxlbWVudCBwb3NzaWJsZSBkZQorc3DDqWNpZmllciBsJ2lkZW50aWZpYW50IGNsaWVudCBzb3VzIGxhIGZvcm1lIGQndW5lIGNoYcOubmUgZGUgY2FyYWN0w6hyZXMsIGNvbW1lCitjZWNpIDoKKy5CIC0tZGhjcC1ob3N0PWlkOmlkZW50aWZpYW50Y2xpZW50c291c2Zvcm1lZGVjaGFpbmUsLi4uLi4gCitMJ29wdGlvbiBzcMOpY2lhbGUgaWQ6KiBzaWduaWZpZSA6ICJpZ25vcmVyIHRvdXQgaWRlbnRpZmlhbnQgY2xpZW50IGV0IG4ndXRpbGlzZXIKK3F1ZSBsJ2FkcmVzc2UgbWF0w6lyaWVsbGUiLiBDZWxhIGVzdCB1dGlsZSBsb3JzcXUndW4gY2xpZW50IHByw6lzZW50ZSB1bgoraWRlbnRpZmlhbnQgY2xpZW50IG1haXMgcGFzIGxlcyBhdXRyZXMuCisKK1NpIHVuIG5vbSBhcHBhcmHDrnQgZGFucyAvZXRjL2hvc3RzLCBsJ2FkcmVzc2UgYXNzb2Npw6llIHBldXQgw6p0cmUgYWxsb3XDqWUgw6AgdW4KK2JhaWwgREhDUCBtYWlzIHNldWxlbWVudCBzaSB1bmUgb3B0aW9uCisuQiAtLWRoY3AtaG9zdAorc3DDqWNpZmlhbnQgbGUgbm9tIGV4aXN0ZSBwYXIgYWlsbGV1cnMuIExlIG1vdCBjbGVmICJpZ25vcmUiICgiaWdub3JlciIpIGluZGlxdWUKK8OgIERuc21hc3EgZGUgbmUgamFtYWlzIGZvdXJuaXIgZGUgYmFpbCBESENQIMOgIHVuZSBtYWNoaW5lLiBMYSBtYWNoaW5lIHBldXQgw6p0cmUKK3Nww6ljaWZpw6llIHBhciBzb24gYWRyZXNzZSBtYXTDqXJpZWxsZSwgc29uIGlkZW50aWZpYW50IGNsaWVudCBvdSBzb24gbm9tIGQnaMO0dGUuCitQYXIgZXhlbXBsZQorLkIgLS1kaGNwLWhvc3Q9MDA6MjA6ZTA6M2I6MTM6YWYsaWdub3JlCitDZWxhIGVzdCB1dGlsZSBsb3JzcXUndW4gYXV0cmUgc2VydmV1ciBESENQIHN1ciBsZSByw6lzZWF1IGRvaXQgw6p0cmUgdXRpbGlzw6kgcGFyCitjZXJ0YWluZXMgbWFjaGluZXMuIExlIHBhcmFtw6h0cmUgbmV0OjxpZGVudGlmaWFudCByw6lzZWF1PiBwZXJtZXQgZGUgZMOpZmluaXIgdW4KK2lkZW50aWZpYW50IGRlIHLDqXNlYXUgbG9yc3F1ZSBsJ29wdGlvbiBkaGNwLWhvc3QgZXN0IHV0aWxpc8OpZS4gQ2VsYSBwZXV0IHNlcnZpcgorw6Agc8OpbGVjdGlvbm5lciBkZXMgb3B0aW9ucyBESENQIGp1c3RlIHBvdXIgY2V0IGjDtHRlLiBMb3JzcXUndW5lIG1hY2hpbmUgY2/Dr25jaWRlCithdmVjIHVuZSBkaXJlY3RpdmUgZGhjcC1ob3N0IChvdSB1bmUgaW1wbGlxdcOpZSBwYXIgL2V0Yy9ldGhlcnMpLCBhbG9ycworbCdpZGVudGlmaWFudCByw6lzZWF1IHLDqXNlcnbDqSAia25vd24iICgiY29ubnUiKSBlc3QgYXNzb2Npw6kuIENlbGEgcGVybWV0IMOgCitEbnNtYXNxIGQnw6p0cmUgY29uZmlndXLDqSBwb3VyIGlnbm9yZXIgbGVzIHJlcXXDqnRlcyBpc3N1cyBkZSBtYWNoaW5lcyBpbmNvbm51ZQorIHBhciBsZSBiaWFpcyBkZSAKKy5CIC0tZGhjcC1pZ25vcmU9I2tub3duLgorCitMZXMgYWRyZXNzZXMgZXRoZXJuZXQgKG1haXMgcGFzIGxlcyBpZGVudGlmaWFudHMgY2xpZW50cykgcGV1dmVudCDDqnRyZSBkw6lmaW5pZXMKK2F2ZWMgZGVzIG9jdGV0cyBqb2tlciwgYWluc2kgcGFyIGV4ZW1wbGUKKy5CIC0tZGhjcC1ob3N0PTAwOjIwOmUwOjNiOjEzOiosaWdub3JlIAorZGVtYW5kZSDDoCBEbnNtYXNxIGQnaWdub3JlciB1bmUgZ2FtbWUgZCdhZHJlc3NlcyBtYXTDqXJpZWxsZXMuIElsIGVzdCAgw6Agbm90ZXIKK3F1ZSAiKiIgZG9pdC3DqnRyZSBwcsOpY8OpZMOpIGQndW4gY2FyYWN0w6hyZSBkJ8OpY2hhcHBlbWVudCBvdSBtaXMgZW50cmUgZ3VpbGxlbWV0cworbG9yc3F1ZSBzcMOpY2lmacOpIGVuIG9wdGlvbiBkZSBsaWduZSBkZSBjb21tYW5kZSwgbWFpcyBwYXMgZGFucyBsZSBmaWNoaWVyIGRlCitjb25maWd1cmF0aW9uLiBMZXMgYWRyZXNzZXMgbWF0w6lyaWVsbGVzIGNvw69uY2lkZW50IGVuIHByaW5jaXBlIGF2ZWMgbidpbXBvcnRlCitxdWVsIHR5cGUgZGUgcsOpc2VhdSAoQVJQKSwgbWFpcyBpbCBlc3QgcG9zc2libGUgZGUgbGVzIGxpbWl0ZXIgw6AgdW4gc2V1bCB0eXBlCitBUlAgZW4gbGVzIHByw6ljw6lkYW50IGR1IHR5cGUgQVJQIChlbiBIZXhhZMOpY2ltYWwpIGV0IGRlICItIi4gQWluc2kKKy5CIC0tZGhjcC1ob3N0PTA2LTAwOjIwOmUwOjNiOjEzOmFmLDEuMi4zLjQgCitjb8OvbmNpZGVyYSB1bmlxdWVtZW50IGF2ZWMgZGVzIGFkcmVzc2VzIG1hdMOpcmllbGxlcyBUb2tlbi1SaW5nLCBwdWlzcXVlIGxlIHR5cGUKK0FSUCBwb3VyIHVuZSBhZHJlc3NlIFRva2VuLVJpbmcgZXN0IDYuCisuVFAKKy5CIC0tZGhjcC1ob3N0c2ZpbGU9PGZpY2hpZXI+CitMaXMgbGVzIGluZm9ybWF0aW9ucyBkJ2jDtHRlcyBESENQIGRhbnMgbGUgZmljaGllciBzcMOpY2lmacOpLiBMZSBmaWNoaWVyIGNvbnRpZW50CitkZXMgaW5mb3JtYXRpb25zIMOgIHJhaXNvbiBkJ3VuIGjDtHRlIHBhciBsaWduZS4gTGUgZm9ybWF0IGQndW5lIGxpZ25lIGVzdCBsYSBtw6ptZQorcXVlIGxlIHRleHRlIGZvdXJuaSDDoCBsYSBkcm9pdGUgc3VyIGNhcmFjdMOocmUgIj0iIGRhbnMgbCdvcHRpb24KKy5CIC0tZGhjcC1ob3N0LgorTCdhdmFudGFnZSBkZSBzdG9ja2VyIGxlcyBpbmZvcm1hdGlvbnMgc3VyIGxlcyBow7R0ZXMgREhDUCBkYW5zIGNlIGZpY2hpZXIgZXN0CitxdWUgY2VsbGVzLWNpIHBldXZlbnQgw6p0cmUgbW9kaWZpw6llcyBzYW5zIHJlY2hhcmdlciBEbnNtYXNxOyBsZSBmaWNoaWVyIHNlcmEKK3JlbHUgbG9yc3F1ZSBEbnNtYXNxIHJlw6dvaXQgdW4gc2lnbmFsIFNJR0hVUC4KKy5UUCAKKy5CIFwtWiwgLS1yZWFkLWV0aGVycworTGlzIGxlcyBpbmZvcm1hdGlvbnMgZCdow7R0ZXMgREhDUCBkYW5zIGxlIGZpY2hpZXIgL2V0Yy9ldGhlcnMuIExlIGZvcm1hdCBkZQorL2V0Yy9ldGhlcnMgZXN0IHVuZSBhZHJlc3NlIG1hdMOpcmllbGxlIHN1aXZpZSwgc29pdCBwYXIgdW4gbm9tIGQnaMO0dGUsIHNvaXQgcGFyCit1bmUgYWRyZXNzZSBJUCBzb3VzIGxhIGZvcm1lIGRlIDQgY2hpZmZyZXMgc8OpcGFyw6lzIHBhciBkZXMgcG9pbnRzLiBMb3JzcXVlIGx1CitwYXIgRG5zbWFzcSwgY2VzIGxpZ25lcyBvbnQgZXhhY3RlbWVudCBsZSBtw6ptZSBlZmZldCBxdWUgbCdvcHRpb24KKy5CIC0tZGhjcC1ob3N0Citjb250ZW5hbnQgbGVzIG3Dqm1lcyBpbmZvcm1hdGlvbnMuIC9ldGMvZXRoZXJzIGVzdCByZWx1IMOgIGxhIHLDqWNlcHRpb24gZCd1bgorc2lnbmFsIFNJR0hVUCBwYXIgRG5zbWFzcS4KKy5UUAorLkIgXC1PLCAtLWRoY3Atb3B0aW9uPVs8aWRlbnRpZmlhbnRfZGVfcsOpc2VhdT4sWzxpZGVudGlmaWFudF9kZV9yw6lzZWF1PixdXVt2ZW5kb3I6WzxjbGFzc2VfdmVuZGV1cj5dLF1bPG9wdD58b3B0aW9uOjxub20gZCdvcHRpb24+XSxbPHZhbGV1cj5bLDx2YWxldXI+XV0KK1Nww6ljaWZpZSBkZXMgb3B0aW9ucyBkaWZmw6lyZW50ZXMgb3Ugc3VwcGzDqW1lbnRhaXJlcyBwb3VyIGRlcyBjbGllbnRzIERIQ1AuIFBhcgorZMOpZmF1dCwgRG5zbWFzcSBlbnZvaWUgdW4gZW5zZW1ibGUgc3RhbmRhcmQgZCdvcHRpb25zIGF1eCBjbGllbnRzIERIQ1AgOiBsZQorbWFzcXVlIGRlIHLDqXNlYXUgZXQgbCdhZHJlc3NlIGRlIGJyb2FkY2FzdCBzb250IGxlcyBtw6ptZXMgcXVlIHBvdXIgbCdow7R0ZQorc3VyIGxlcXVlbCB0b3VybmUgRG5zbWFzcSwgZXQgbGUgc2VydmV1ciBETlMgYWluc2kgcXVlIGxhIHJvdXRlIHBhciBkw6lmYXV0CitwcmVubmVudCBjb21tZSB2YWxldXIgbCdhZHJlc3NlIGRlIGxhIG1hY2hpbmUgc3VyIGxhcXVlbGxlIHRvdXJuZSBEbnNtYXNxLiBTaQordW5lIG9wdGlvbiBkZSBub20gZGUgZG9tYWluZSBhIMOpdMOpIGTDqWZpbmllLCBzb24gY29udGVudSBlc3QgdHJhbnNtaXMuIENldHRlCitvcHRpb24gZGUgY29uZmlndXJhdGlvbiBwZXJtZXQgZGUgY2hhbmdlciB0b3V0ZXMgY2VzIHZhbGV1cnMgcGFyIGTDqWZhdXQsIG91IGRlCitzcMOpY2lmaWVyIGQnYXV0cmVzIG9wdGlvbnMuIEwnb3B0aW9uIERIQ1Agw6AgdHJhbnNtZXR0cmUgcGV1dCDDqnRyZSBmb3VybmllIHNvdXMKK2Zvcm1lIGQndW4gbm9tYnJlIGTDqWNpbWFsIG91IHNvdXMgbGEgZm9ybWUgIm9wdGlvbjo8bm9tIGQnb3B0aW9uPiIuIExlcyBub21icmVzCitjb3JyZXNwb25kYW50cyBhdXggb3B0aW9ucyBzb250IGTDqWZpbmlzIGRhbnMgbGEgUkZDMjEzMiBldCBzdWl2YW50cy4gTGVzIG5vbXMKK2Qnb3B0aW9ucyBjb25udXMgcGFyIERuc21hc3EgcGV1dmVudCDDqnRyZSBvYnRlbnVzIHZpYSAiRG5zbWFzcSAtLWhlbHAgZGhjcCIuCitQYXIgZXhlbXBsZSwgcG91ciBkw6lmaW5pciBsYSByb3V0ZSBwYXIgZMOpZmF1dCDDoCAxOTIuMTY4LjQuNCwgaWwgZXN0IHBvc3NpYmxlIGRlCitmYWlyZQorLkIgLS1kaGNwLW9wdGlvbj0zLDE5Mi4xNjguNC40IAorb3UKKy5CIC0tZGhjcC1vcHRpb24gPSBvcHRpb246cm91dGVyLCAxOTIuMTY4LjQuNAorb3UgZW5jb3JlLCBwb3VyIHBvc2l0aW9ubmVyIGwnYWRyZXNzZSBkdSBzZXJ2ZXVyIGRlIHRlbXBzIMOgIDE5Mi4xNjguMC40LCBvbiBwZXV0CitmYWlyZQorLkIgLS1kaGNwLW9wdGlvbiA9IDQyLDE5Mi4xNjguMC40IAorb3UgCisuQiAtLWRoY3Atb3B0aW9uID0gb3B0aW9uOm50cC1zZXJ2ZXIsIDE5Mi4xNjguMC40CitMJ2FkcmVzc2UgMC4wLjAuMCBwcmVuZHMgaWNpIGxlIHNlbnMgImQnYWRyZXNzZSBkZSBsYSBtYWNoaW5lIHN1ciBsYXF1ZWxsZQordG91cm5lIERuc21hc3EiLiBMZXMgdHlwZXMgZGUgZG9ubsOpZXMgYXV0b3Jpc8OpZXMgc29udCBkZXMgYWRyZXNzZXMgSVAgc291cyBsYQorZm9ybWUgZGUgNCBjaGlmZnJlcyBzw6lwYXLDqXMgcGFyIGRlcyBwb2ludHMsIHVuIG5vbWJyZSBkw6ljaW1hbCwgdW5lIGxpc3RlIGRlCitjYXJhY3TDqHJlcyBoZXhhZMOpY2ltYXV4IHPDqXBhcsOpcyBwYXIgZGVzIDIgcG9pbnRzLCBvdSB1bmUgY2hhw65uZSBkZSBjYXJhY3TDqHJlcy4KK1NpIGRlcyBpZGVudGlmaWFudHMgZGUgcsOpc2VhdXggc29udCBmb3VybmlzLCBhbG9ycyBjZXR0ZSBvcHRpb24gbidlc3QgZW52b3nDqWUKK3F1J2F1eCByw6lzZWF1eCBkb250IHRvdXMgbGVzIGlkZW50aWZpYW50cyBjb8OvbmNpZGVudC4KKworVW4gdHJhaXRlbWVudCBzcMOpY2lhbCBlc3QgZWZmZWN0dcOpIHN1ciBsZXMgY2hhw65uZXMgZGUgY2FyYWN0w6hyZXMgZm91cm5pZXMgcG91cgorbCdvcHRpb24gMTE5LCBjb25mb3Jtw6ltZW50IMOgIGxhIFJGQyAzMzk3LiBMZXMgY2hhw65uZXMgZGUgY2FyYWN0w6hyZXMgb3UgbGVzCithZHJlc3NlcyBJUCBzb3VzIGZvcm1lIGRlIDQgY2hpZmZyZXMgc8OpcGFyw6lzIHBhciBkZXMgcG9pbnRzIGRvbm7DqXMgZW4gYXJndW1lbnRzCitkZSBsJ29wdGlvbiAxMjAgc29udCB0cmFpdMOpcyBjb25mb3Jtw6ltZW50cyDDoCBsYSBSRkMgMzM2MS4gTGVzIGFkcmVzc2VzIElQIHNvdXMKK2Zvcm1lIGRlIDQgY2hpZmZyZXMgc8OpcGFyw6lzIHBhciBkZXMgcG9pbnRzIHN1aXZpZXMgcGFyIHVuZSBiYXJyZSBtb250YW50ZSAiLyIsCitwdWlzIHVuZSB0YWlsbGUgZGUgbWFzcXVlIHNvbnQgZW5jb2TDqXMgY29uZm9ybcOpbWVudHMgw6AgbGEgUkZDIDM0NDIuCisKK0F0dGVudGlvbiA6IGF1Y3VuIHRlc3QgbifDqXRhbnQgZmFpdCBwb3VyIHbDqXJpZmllciBxdWUgZGVzIGRvbm7DqWVzIGQndW4gdHlwZQorYWTDqXF1YXQgc29udCBlbnZvecOpZXMgcG91ciB1biBudW3DqXJvIGQnb3B0aW9uIGRvbm7DqSwgaWwgZXN0IHRvdXQgw6AgZmFpdCBwb3NzaWJsZQorZGUgcGVyc3VhZGVyIERuc21hc3EgZGUgZ8OpbsOpcmVyIGRlcyBwYXF1ZXRzIERIQ1AgaWxsw6lnYXV4IHBhciB1bmUgdXRpbGlzYXRpb24KK2luY29ycmVjdGUgZGUgY2V0dGUgb3B0aW9uLiBMb3JzcXVlIGxhIHZhbGV1ciBlc3QgdW4gbm9tYnJlIGTDqWNpbWFsLCBEbnNtYXNxCitkb2l0IGTDqXRlcm1pbmVyIGxhIHRhaWxsZSBkZXMgZG9ubsOpZXMuIENlbGEgZXN0IGZhaXQgZW4gZXhhbWluYW50IGxlIG51bcOpcm8gZGUKK2wnb3B0aW9uIGV0L291IGxhIHZhbGV1ciwgbWFpcyBwZXV0LcOqdHJlIMOpdml0w6kgZW4gcmFqb3V0YW50IHVuIHN1ZmZpeGUgZCd1bmUKK2xldHRyZSBjb21tZSBzdWl0IDoKK2IgPSB1biBvY3RldCwgcyA9IDIgb2N0ZXRzLCBpID0gNCBvY3RldHMuIENlbGEgc2VydCBlc3NlbnRpZWxsZW1lbnQgcG91ciBkZXMKK29wdGlvbnMgZW5jYXBzdWzDqWVzIGRlIGNsYXNzZXMgZGUgdmVuZGV1cnMgKHZvaXIgcGx1cyBiYXMpLCBwb3VyIGxlc3F1ZWxsZXMgCitEbnNtYXNxIG5lIHBldXQgZMOpdGVybWluZXIgbGEgdGFpbGxlIGRlIGxhIHZhbGV1ci4gTGVzIGRvbm7DqWVzIGQnb3B0aW9ucworY29uc2lzdGFudCB1bmlxdWVtZW50IGRlIHBvaW50cyBldCBkZSBkw6ljaW1hdXggc29udCBpbnRlcnByw6l0w6llcyBwYXIgRG5zbWFzcQorY29tbWUgZGVzIGFkcmVzc2VzIElQLCBldCBlbnZvecOpZXMgY29tbWUgdGVsbGVzLiBQb3VyIGZvcmNlciBsJ2Vudm9pIHNvdXMgZm9ybWUKK2RlIGNoYcOubmUgZGUgY2FyYWN0w6hyZSwgaWwgZXN0IG7DqWNlc3NhaXJlIGQndXRpbGlzZXIgZGVzIGd1aWxsZW1ldHMgZG91Ymxlcy4gUGFyCitleGVtcGxlLCBsJ3V0aWxpc2F0aW9uIGRlIGwnb3B0aW9uIDY2IHBvdXIgZm91cm5pciB1bmUgYWRyZXNzZSBJUCBzb3VzIGxhIGZvcm1lCitkJ3VuZSBjaGHDrm5lIGRlIGNhcmFjdMOocmVzIGNvbW1lIG5vbSBkZSBzZXJ2ZXVyIFRGVFAsIGlsIGVzdCBuw6ljZXNzYWlyZSBkZSBmYWlyZQorY29tbWUgc3VpdCA6CisuQiAtLWRoY3Atb3B0aW9uPTY2LCIxLjIuMy40IgorCitMZXMgb3B0aW9ucyBlbmNhcHN1bMOpZXMgZGUgY2xhc3NlcyBkZSB2ZW5kZXVycyBwZXV2ZW50LcOqdHJlIGF1c3NpIHNww6ljaWZpw6llcyBlbgordXRpbGlzYW50CisuQiAtLWRoY3Atb3B0aW9uCis6IHBhciBleGVtcGxlCisuQiAtLWRoY3Atb3B0aW9uPXZlbmRvcjpQWEVDbGllbnQsMSwwLjAuMC4wCitlbnZvaWUgbCdvcHRpb24gZW5jYXBzdWzDqWUgZGUgY2xhc3NlIGRlIHZlbmRldXIgIm1mdHAtYWRkcmVzcz0wLjAuMC4wIiDDoAorbidpbXBvcnRlIHF1ZWwgY2xpZW50IGRvbnQgbGEgY2xhc3NlIGRlIHZlbmRldXIgY29ycmVzcG9uZCDDoCAiUFhFQ2xpZW50Ii4gTGEKK2NvcnJlc3BvbmRhbmNlIHBvdXIgbGVzIGNsYXNzZXMgZGUgdmVuZGV1ciBzJ2VmZmVjdHVlIHN1ciBkZXMgc291cy1jaGHDrm5lcyBkZQorY2FyYWN0w6hyZXMgKHZvaXIKKy5CIC0tZGhjcC12ZW5kb3JjbGFzcworcG91ciBwbHVzIGRlIGTDqXRhaWxzKS4gU2kgdW5lIG9wdGlvbiBkZQorY2xhc3NlIGRlIHZlbmRldXIgKG51bcOpcm8gNjApIGVzdCBlbnZvecOpZSBwYXIgRG5zbWFzcSwgYWxvcnMgY2VsYSBlc3QgdXRpbGlzw6kKK3BvdXIgc8OpbGVjdGlvbm5lciBsZXMgb3B0aW9ucyBlbmNhcHN1bMOpZXMsIGRlIHByw6lmw6lyZW5jZSDDoCB0b3V0ZSBvcHRpb24gZW52b3nDqWUKK3BhciBsZSBjbGllbnQuIElsIGVzdCBwb3NzaWJsZSBkJ29tZXR0cmUgY29tcGzDqHRlbWVudCB1bmUgY2xhc3NlIGRlIHZlbmRldXIgOgorLkIgLS1kaGNwLW9wdGlvbj12ZW5kb3I6LDEsMC4wLjAuMAorRGFucyBjZSBjYXMgbCdvcHRpb24gZW5jYXBzdWzDqWUgZXN0IHRvdWpvdXJzIGVudm95w6llLgorTCdhZHJlc3NlIDAuMC4wLjAgbidlc3QgcGFzIHRyYWl0w6llIGRlIG1hbmnDqHJlIHBhcnRpY3VsacOocmUgbG9yc3F1ZSBmb3VybmllIGRhbnMKK3VuZSBvcHRpb24gZW5jYXBzdWzDqWUgZGUgY2xhc3NlIGRlIHZlbmRldXIuCisuVFAKKy5CIC0tZGhjcC1vcHRpb24tZm9yY2U9WzxpZGVudGlmaWFudCBkZSByw6lzZWF1PixbPGlkZW50aWZpYW50IGRlIHLDqXNlYXU+LF1dW3ZlbmRvcjpbPGNsYXNzZSBkZSB2ZW5kZXVyPl0sXTxvcHQ+LFs8dmFsZXVyPlssPHZhbGV1cj5dXQorQ2VsYSBmb25jdGlvbm5lIGV4YWN0ZW1lbnQgZGUgbGEgbcOqbWUgZmHDp29uIHF1ZQorLkIgLS1kaGNwLW9wdGlvbgorc2F1ZiBxdWUgY2V0dGUgb3B0aW9uIHNlcmEgdG91am91cnMgZW52b3nDqWUsIG3Dqm1lIHNpIGxlIGNsaWVudCBuZSBsYSBkZW1hbmRlIHBhcworZGFucyBsYSBsaXN0ZSBkZSBwYXJhbcOqdHJlcyByZXF1aXMuIENlbGEgZXN0IHBhcmZvaXMgbsOpY2Vzc2FpcmUsIHBhciBleGVtcGxlIGxvcnMKK2RlIGxhIGZvdXJuaXR1cmUgZCdvcHRpb25zIMOgIFBYRUxpbnV4LgorLlRQCisuQiBcLVUsIC0tZGhjcC12ZW5kb3JjbGFzcz08aWRlbnRpZmlhbnQgZGUgcsOpc2VhdT4sPGNsYXNzZSBkZSB2ZW5kZXVyPgorQXNzb2NpZSB1bmUgY2hhw65uZSBkZSBjbGFzc2UgZGUgdmVuZGV1ciDDoCB1biBpbmRlbnRpZmlhbnQgZGUgcsOpc2VhdS4gTGEgcGx1cGFydAorZGVzIGNsaWVudHMgREhDUCBmb3Vybmlzc2VudCB1bmUgImNsYXNzZSBkZSB2ZW5kZXVyIiAoInZlbmRvciBjbGFzcyIpIHF1aQorcmVwcsOpc2VudGUsIGQndW5lIGNlcnRhaW5lIGZhw6dvbiwgbGUgdHlwZSBkJ2jDtHRlLiBDZXR0ZSBvcHRpb24gYXNzb2NpZSBkZXMKK2NsYXNzZXMgZGUgdmVuZGV1ciDDoCBkZXMgbGFiZWxzLCBkZSB0ZWxsZSBzb3J0ZSBxdWUgZGVzIG9wdGlvbnMgREhDUCBwZXV2ZW50LcOqdHJlCitmb3VybmllIGRlIG1hbmnDqHJlIHPDqWxlY3RpdmUgYXV4IGRpZmbDqXJlbnRlcyBjbGFzc2VzIGQnaMO0dGVzLiBQYXIgZXhlbXBsZSwKKy5CIGRoY3AtdmVuZG9yY2xhc3M9cHJpbnRlcnMsSGV3bGV0dC1QYWNrYXJkIEpldERpcmVjdAorcGVybWV0IGRlIG4nYWxsb3VlciBkZXMgb3B0aW9ucyBxdSdhdXggaW1wcmltYW50ZXMgSFAgZGUgbGEgbWFuacOocmUgc3VpdmFudGUgOgorLkIgLS1kaGNwLW9wdGlvbj1wcmludGVycywzLDE5Mi4xNjguNC40CitMYSBjaGHDrm5lIGRlIGNhcmFjdMOocmVzIGRlIGxhIGNsYXNzZSBkZSB2ZW5kZXVyIGZvdW5pZSBlbiBhcmd1bWVudCBlc3QgY2hlcmNow6llCitlbiB0ZW1wcyBxdWUgc291cy1jaGHDrm5lIGRlIGNhcmFjdMOocmVzIGF1IHNlaW4gZGUgbGEgY2xhc3NlIGRlIHZlbmRldXIgZm91cm5pZQorcGFyIGxlIGNsaWVudCwgZGUgZmHDp29uIMOgIHBlcm1ldHRyZSBsYSByZWNoZXJjaGUgZCd1biBzb3VzLWVuc2VtYmxlIGRlIGxhIGNoYcOubmUKK2RlIGNhcmFjdMOocmVzICgiZnV6enkgbWF0Y2hpbmciKS4KKy5UUAorLkIgXC1qLCAtLWRoY3AtdXNlcmNsYXNzPTxpZGVudGlmaWFudCBkZSByw6lzZWF1Piw8Y2xhc3NlIHV0aWxpc2F0ZXVyPgorQXNzb2NpZSB1bmUgY2hhw65uZSBkZSBjbGFzc2UgZCd1dGlsaXNhdGV1ciDDoCB1biBpZGVudGlmaWFudCByw6lzZWF1IChlZmZlY3R1ZSBsYQorcmVjaGVyY2hlIHN1ciBkZXMgc291cy1jaGHDrm5lcywgY29tbWUgcG91ciBsZXMgY2xhc3NlcyBkZSB2ZW5kZXVyKS4gTGEgcGx1cGFydAorZGVzIGNsaWVudHMgcGVybWV0dGVudCBkZSBjb25maWd1cmVyIHVuZSAiY2xhc3NlIGQndXRpbGlzYXRldXIiLiBDZXR0ZSBvcHRpb24KK2Fzc29jaWUgdW5lIGNsYXNzZSBkJ3V0aWxpc2F0ZXVyIMOgIHVuIGxhYmVsLCBkZSB0ZWxsZSBtYW5pw6hyZSBxdSdpbCBzb2l0Citwb3NzaWJsZSBkZSBmb3VybmlyIGRlcyBvcHRpb25zIERIQ1Agc3DDqWNpZmlxdWVzIMOgIGRpZmbDqXJlbnRlcyBjbGFzc2VzIGQnaMO0dGVzLgorSWwgZXN0IHBvc3NpYmxlLCBwYXIgZXhlbXBsZSwgZCd1dGlsaXNlciBjZWNpIHBvdXIgZMOpZmluaXIgdW4gc2VydmV1cgorZCdpbXByZXNzaW9uIGRpZmbDqXJlbnQgcG91ciBsZXMgaMO0dGVzIGRlIGxhIGNsYXNzZSAiY29tcHRlcyIgZXQgY2V1eCBkZSBsYQorY2xhc3NlICJpbmfDqW5pZXJpZSIuCisuVFAKKy5CIFwtNCwgLS1kaGNwLW1hYz08aWRlbnRpZmlhbnQgZGUgcsOpc2VhdT4sPGFkcmVzc2UgTUFDPgorQXNzb2NpZSB1bmUgYWRyZXNzZSBtYXTDqXJpZWxsZSAoTUFDKSDDoCB1biBpZGVudGlmaWFudCByw6lzZWF1LiBMJ2FkcmVzc2UKK21hdMOpcmllbGxlIHBldXQgaW5jbHVyZSBkZXMgam9rZXJzLiBQYXIgZXhlbXBsZQorLkIgLS1kaGNwLW1hYz0zY29tLDAxOjM0OjIzOio6KjoqCitwZXJtZXQgZGUgZMOpZmluaXIgbGUgbGFiZWwgIjNjb20iIHBvdXIgbidpbXBvcnRlIHF1ZWwgaMO0dGUgZG9udCBsJ2FkcmVzc2UKK21hdMOpcmllbGxlIGNvw69uY2lkZSBhdmVjIGxlcyBjcml0w6hyZXMgZMOpZmluaXMuCisuVFAKKy5CIC0tZGhjcC1jaXJjdWl0aWQ9PGlkZW50aWZpYW50IGRlIHLDqXNlYXU+LDxpZGVudGlmaWFudCBkZSBjaXJjdWl0PiwgLS1kaGNwLXJlbW90ZWlkPTxpZGVudGlmaWFudCBkZSByw6lzZWF1Piw8aWRlbnRpZmlhbnQgZGlzdGFudD4KK0Fzc29jaWUgZGVzIG9wdGlvbnMgZGUgcmVsYWlzIERIQ1AgaXNzdXMgZGUgbGEgUkZDMzA0NiDDoCBkZXMgaWRlbnRpZmlhbnRzIGRlCityw6lzZWF1LiBDZXR0ZSBpbmZvcm1hdGlvbiBwZXV0LcOqdHJlIGZvdXJuaWUgcGFyIGRlcyByZWxhaXMgREhDUC4gTCdpZGVudGlmaWFudAorZGUgY2lyY3VpdCBvdSBsJ2lkZW50aWZpYW50IGRpc3RhbnQgZXN0IG5vcm1hbGVtZW50IGZvdXJuaSBzb3VzIGxhIGZvcm1lIGQndW5lCitjaGHDrm5lIGRlIHZhbGV1cnMgaGV4YWTDqWNpbWFsZXMgc8OpcGFyw6llcyBwYXIgZGVzICI6IiwgbWFpcyBpbCBlc3Qgw6lnYWxlbWVudAorcG9zc2libGUgcXUnZWxsZSBsZSBzb2l0IHNvdXMgbGEgZm9ybWUgZCd1bmUgc2ltcGxlIGNoYcOubmUgZGUgY2FyYWN0w6hyZXMuIFNpCitsJ2lkZW50aWZpYW50IGRlIGNpcmN1aXQgb3UgZCdhZ2VudCBjb3JyZXNwb25kIGV4YWN0ZW1lbnQgw6AgY2VsdWkgZm91cm5pIHBhciBsZQorcmVsYWlzIERIQ1AsIGFsb3JzIGwnaWRlbnRpZmlhbnQgZGUgcsOpc2VhdSBlc3QgcG9zaXRpb25uw6kuCisuVFAKKy5CIC0tZGhjcC1zdWJzY3JpZD08aWRlbnRpZmlhbnQgZGUgcsOpc2VhdT4sPGlkZW50aWZpYW50IGQnYWJvbm7DqT4KK0Fzc29jaWUgZGVzIG9wdGlvbnMgZGUgcmVsYWlzIERIQ1AgaXNzdWVzIGRlIGxhIFJGQzM5OTMgw6AgZGVzIGlkZW50aWZpYW50cyBkZQorcsOpc2VhdS4KKy5UUAorLkIgXC1KLCAtLWRoY3AtaWdub3JlPTxpZGVudGlmaWFudCBkZSByw6lzZWF1PlssPGlkZW50aWZpYW50IGRlIHLDqXNlYXU+XQorTG9yc3F1ZSB0b3VzIGxlcyBpZGVudGlmaWFudHMgZGUgcsOpc2VhdSBmb3VybmlzIGNvw69uY2lkZW50IGF2ZWMgbGEgbGlzdGUKK2QnaWRlbnRpZmlhbnRzIHLDqXNlYXUgZMOpcml2w6llIGRlcyBjbGFzc2VzIGRlIHLDqXNlYXUsIGjDtHRlLCB2ZW5kZXVyIGV0Cit1dGlsaXNhdGV1ciwgaWdub3JlciBsJ2jDtHRlIGV0IG5lIHBhcyBkb25uZXIgZGUgYmFpbCBESENQLgorLlRQCisuQiAtLWRoY3AtaWdub3JlLW5hbWVzWz08aWRlbnRpZmlhbnQgZGUgcsOpc2VhdT5bLDxpZGVudGlmaWFudCBkZSByw6lzZWF1Pl1dCitMb3JzcXVlIHRvdXMgbGVzIGlkZW50aWZpYW50IGRlIHLDqXNlYXUgY2/Dr25jaWRlbnQgYXZlYyBsYSBsaXN0ZSBkJ2lkZW50aWZpYW50cworcsOpc2VhdSBkw6lyaXbDqWVzIGRlcyBjbGFzc2VzIGRlIHLDqXNlYXUsIGjDtHRlLCB2ZW5kZXVyIGV0IHV0aWxpc2F0ZXVyLCBpZ25vcmVyIGxlCitub20gZGUgbWFjaGluZSBmb3VybmkgcGFyIGwnaMO0dGUuIElsIGVzdCDDoCBub3RlciBxdWUsIMOgIGxhIGRpZmbDqXJlbmNlIGRlCitsJ29wdGlvbiAiZGhjcC1pZ25vcmUiLCBpbCBlc3QgcGVybWlzIGRlIG5lIHBhcyBmb3VybmlyIGQnaWRlbnRpZmlhbnQgcsOpc2VhdS4KK0RhbnMgY2UgY2FzLCBsZXMgbm9tcyBkJ2jDtHRlcyBmb3VybmlzIHBhciBsZXMgY2xpZW50cyBESENQIHNlcm9udCB0b3Vqb3VycworaWdub3LDqXMsIGV0IGxlcyBub21zIGQnaMO0dGVzIHNlcm9udCBham91dMOpcyBhdSBETlMgZW4gdXRpbGlzYW50IHVuaXF1ZW1lbnQgbGEKK2NvbmZpZ3VyYXRpb24gZGhjcC1ob3N0IGRlIERuc21hc3EsIGFpbnNpIHF1ZSBsZSBjb250ZW51IGRlcyBmaWNoaWVycyAvZXRjL2hvc3RzCitldCAvZXRjL2V0aGVycy4KKy5UUAorLkIgXC1NLCAtLWRoY3AtYm9vdD1bbmV0OjxpZGVudGlmaWFudCBkZSByw6lzZWF1PixdPG5vbSBkZSBmaWNoaWVyPixbPG5vbSBkZSBzZXJ2ZXVyPlssPGFkcmVzc2UgZGUgc2VydmV1cj5dXQorU3DDqWNpZmllIGxlcyBvcHRpb25zIEJPT1RQIGRldmFudCDDqnRyZSByZXRvdXJuw6llcyBwYXIgbGUgc2VydmV1ciBESENQLiBMZSBub20gZGUKK3NlcnZldXIgYWluc2kgcXVlIGwnYWRyZXNzZSBzb250IG9wdGlvbm5lbHMgOiBzJ2lscyBuZSBzb250IHBhcyBmb3VybmlzLCBsZSBub20KK2VzdCBsYWlzc8OpIHZpZGUgZXQgbCdhZHJlc3NlIGZvdXJuaWUgZXN0IGNlbGxlIGRlIGxhIG1hY2hpbmUgc3VyIGxhcXVlbGxlCitzJ2V4w6ljdXRlIERuc21hc3EuIFNpIERuc21hc3EgZm91bml0IHVuIHNlcnZpY2UgVEZUUCAodm9pcgorLkIgLS1lbmFibGUtdGZ0cAorKSwgYWxvcnMgc2V1bCB1biBub20gZGUgZmljaGllciBlc3QgcmVxdWlzIGljaSBwb3VyIHBlcm1ldHRyZSB1biBkw6ltYXJyYWdlIHBhcgorbGUgcsOpc2VhdS4KK1NpIGQnw6l2ZW50dWVscyBpZGVudGlmaWFudHMgZGUgcsOpc2VhdSBzb250IGZvdXJuaXMsIGlscyBkb2l2ZW50IGNvw69uY2lkZXIgYXZlYworY2V1eCBkdSBjbGllbnQgcG91ciBxdWUgY2V0IMOpbGVtZW50IGRlIGNvbmZpZ3VyYXRpb24gbHVpIHNvaXQgZW52b3nDqS4gSWwgZXN0IMOgCitub3RlciBxdWUgbGVzIGlkZW50aWZpYW50cyBkZSByw6lzZWF1IGRvaXZlbnQtw6p0cmUgcHLDqWZpeMOpcyBwYXIgIm5ldDoiLgorLlRQICAKKy5CIFwtWCwgLS1kaGNwLWxlYXNlLW1heD08bm9tYnJlPgorTGltaXRlIERuc21hc3Egw6AgdW4gbWF4aW11bSBkZSA8bm9tYnJlPiBiYXV4IERIQ1AuIExlIGTDqWZhdXQgZXN0IGRlIDE1MC4gQ2V0dGUKK2xpbWl0ZSBwZXJtZXQgZCfDqXZpdGVyIGRlcyBhdHRhcXVlcyBkZSBkw6luaSBkZSBzZXJ2aWNlICgiRG9TIikgcGFyIGRlcyBow7R0ZXMKK2Nyw6lhbnQgZGVzIG1pbGxpZXJzIGRlIGJhdXggZXQgdXRpbGlzYW50IGJlYXVjb3VwIGRlIG3DqW1vaXJlIGRhbnMgbGUgcHJvY2Vzc3VzCitEbnNtYXNxLgorLlRQCisuQiBcLUssIC0tZGhjcC1hdXRob3JpdGF0aXZlCitDZXR0ZSBvcHRpb24gZG9pdCDDqnRyZSBkb25uw6llIGxvcnNxdWUgRG5zbWFzcSBlc3QgbGUgc2V1bCBzZXJ2ZXVyIERIQ1Agc3VyIGxlCityw6lzZWF1LiBDZWxhIGNoYW5nZSBsZSBjb21wb3J0ZW1lbnQgcGFyIGTDqWZhdXQgcXVpIGVzdCBjZWx1aSBkJ3VuIHN0cmljdCByZXNwZWN0CitkZXMgUkZDLCBhZmluIHF1ZSBsZXMgcmVxdcOqdGVzIERIQ1AgcG91ciBkZXMgYmF1eCBpbmNvbm51cyBwYXIgZGVzIGjDtHRlcworaW5jb25udXMgbmUgc29pZW50IHBhcyBpZ25vcsOpZXMuIENlbGEgcGVybWV0IMOgIGRlIG5vdXZlYXV4IGjDtHRlcyBkJ29idGVuaXIgZGVzCitiYXV4IHNhbnMgdGVuaXIgY29tcHRlIGRlIGZhc3RpZGlldXNlcyB0ZW1wb3Jpc2F0aW9ucyAoInRpbWVvdXQiKS4gQ2VsYSBwZXJtZXQKK8OpZ2FsZW1lbnQgw6AgRG5zbWFzcSBkZSByZWNvbnN0cnVpcmUgc2EgYmFzZSBkZSBkb25uw6llIGNvbnRlbmFudCBsZXMgYmF1eCBzYW5zCitxdWUgbGVzIGNsaWVudHMgbidhaWVudCBiZXNvaW4gZGUgcmVkZW1hbmRlciB1biBiYWlsLCBzaSBjZWxsZS1jaSBlc3QgcGVyZHVlLgorLlRQCisuQiBcLTMsIC0tYm9vdHAtZHluYW1pYworUGVybWV0IGwnYWxsb2NhdGlvbiBkeW5hbWlxdWUgZCdhZHJlc3NlcyBJUCDDoCBkZXMgY2xpZW50cyBCT09UUC4gVXRpbGlzZXIgY2V0dGUKK29wdGlvbiBhdmVjIHByw6ljYXV0aW9uLCB1bmUgYWRyZXNzZSBhbGxvdcOpZSDDoCB1biBjbGllbnQgQk9PVFAgw6l0YW50IHBlcnDDqXR1ZWxsZSwKK2V0IGRlIGZhaXQgbidlc3QgcGx1cyBkaXNwb25pYmxlcyBwb3VyIGQnYXV0cmVzIGjDtHRlcy4KKy5UUAorLkIgXC01LCAtLW5vLXBpbmcKK1BhciBkw6lmYXV0LCBsZSBzZXJ2ZXVyIERIQ1AgdGVudGUgZGUgcydhc3N1cmVyIHF1J3VuZSBhZHJlc3NlIG4nZXN0IHBhcyB1dGlsaXPDqWUKK2F2YW50IGRlIGwnYWxsb3VlciDDoCB1biBow7R0ZS4gQ2VsYSBlc3QgZmFpdCBlbiBlbnZveWFudCB1bmUgcmVxdcOqdGUgSUNNUCBkZSB0eXBlCisiZWNobyByZXF1ZXN0IiAoYXVzc2kgY29ubnVlIHNvdXMgbGUgbm9tIGRlICJwaW5nIikgw6AgbCdhZHJlc3NlIGVuIHF1ZXN0aW9uLiBTaQorbGUgc2VydmV1ciBvYnRpZW50IHVuZSByw6lwb25zZSwgYWxvcnMgbCdhZHJlc3NlIGRvaXQgZMOpasOgIMOqdHJlIHV0aWxpc8OpZSBldCB1bmUKK2F1dHJlIGVzdCBlc3NhecOpZS4gQ2V0dGUgb3B0aW9uIHBlcm1ldCBkZSBzdXBwcmltZXIgY2V0dGUgdsOpcmlmaWNhdGlvbi4gQQordXRpbGlzZXIgYXZlYyBwcsOpY2F1dGlvbi4KKy5UUAorLkIgLS1sb2ctZGhjcAorVHJhY2VzIGFkZGl0aW9ubmVsbGVzIHBvdXIgbGUgc2VydmljZSBESENQIDogZW5yZWdpc3RyZSB0b3V0ZXMgbGVzIG9wdGlvbnMKK2Vudm95w6llcyBhdXggY2xpZW50cyBESENQIGV0IGxlcyBpZGVudGlmaWFudHMgZGUgcsOpc2VhdXggdXRpbGlzw6lzIHBvdXIgbGEKK2TDqXRlcm1pbmF0aW9uIGRlIGNlbGxlcy1jaS4KKy5UUAorLkIgXC1sLCAtLWRoY3AtbGVhc2VmaWxlPTxjaGVtaW4gZGUgZmljaGllcj4KK1V0aWxpc2UgbGUgZmljaGllciBkb250IGxlIGNoZW1pbiBlc3QgZm91cm5pIHBvdXIgc3RvY2tlciBsZXMgaW5mb3JtYXRpb25zIGRlCitiYXV4IERIQ1AuIFNpIGNldHRlIG9wdGlvbiBlc3QgZm91cm5pZSBtYWlzIHF1J2F1Y3VuZSBvcHRpb24gZGUgdHlwZSBkaGNwLXJhbmdlCituJ2VzdCBkb25uw6llLCBhbG9ycyB1biBjb21wb3J0ZW1lbnQgZGUgdHlwZSBEbnNtYXNxIHZlcnNpb24gMSBlc3QgYWN0aXbDqS4gTGUKK2ZpY2hpZXIgZm91cm5pIGVzdCBzdXBwb3PDqSDDqnRyZSB1biBmaWNoaWVyIGRlIGJhdXggREhDUCBkZSB0eXBlIElTQyBESENQRCBldCBlc3QKK3BhcmNvdXJ1IMOgIGxhIHJlY2hlcmNoZSBkZSBiYXV4IGNvbnRlbmFudCBkZXMgbm9tcyBkJ2jDtHRlcy4gTGVzIG5vbXMgdHJvdXbDqXMKK3NvbnQgcmFqb3V0w6lzIGF1IEROUy4gQ2V0dGUgZm9uY3Rpb25hbGl0w6kgcGV1dCDDqnRyZSBleGNsdWUgZGUgRG5zbWFzcSDDoCBsYQorY29tcGlsYXRpb24sIGF1cXVlbCBjYXMgdW5lIGVycmV1ciBzZXJhIHByb2R1aXRlLiBJbCBlc3Qgw6Agbm90ZXIgcXVlCitsJ2ludMOpZ3JhdGlvbiBhdmVjIHVuIGZpY2hpZXIgZGUgYmF1eCBhdSBmb3JtYXQgSVNDIGVzdCB1bmUgZm9uY3Rpb25hbGl0w6kKK29ic29sw6h0ZS4gRWxsZSBuZSBkZXZyYWl0IHBhcyDDqnRyZSB1dGlsaXPDqWUgZGFucyBsZXMgbm91dmVsbGVzIGluc3RhbGxhdGlvbnMgZXQKK3NlcmEgcmV0aXLDqWUgZGFucyB1bmUgZnV0dXJlIHZlcnNpb24uCisuVFAgCisuQiBcLTYgLS1kaGNwLXNjcmlwdD08Y2hlbWluIGRlIGZpY2hpZXI+CitMb3JzcXUndW4gYmFpbCBESENQIGVzdCBjcsOpw6ksIG91IHF1J3VuIGFuY2llbiBlc3Qgc3VwcHJpbcOpLCBsZSBmaWNoaWVyIGRvbnQgbGUKK2NoZW1pbiAgZXN0IHNww6ljaWZpw6kgZXN0IGV4w6ljdXTDqS4gTGVzIGFyZ3VtZW50cyBmb3VybmlzIMOgIGNlbHVpLWNpIHNvbnQgc29pdAorImFkZCIgKCJham91dGVyIiksICJvbGQiICgiYW5jaWVuIikgb3UgImRlbCIgKCJzdXBwcmltZXIiKSwgc3VpdmkgZGUgbCdhZHJlc3NlCitNQUMgZGUgbCdow7R0ZSAob3UgIjxudWxsPiIpIHB1aXMgbCdhZHJlc3NlIElQIGV0IGxlIG5vbSBkJ2jDtHRlIHNpIGNlbHVpLWNpIGVzdAorY29ubnUuImFkZCIgc2lnbmlmaWUgcXUndW4gYmFpbCBhIMOpdMOpIGNyw6nDqSwgImRlbCIgc2lnbmlmaWUgcXUnaWwgYSDDqXTDqSBzdXBwcmltw6ksCisib2xkIiBub3RpZmllIHF1ZSBsZSBiYWlsIGV4aXN0YWl0IGF1IGxhbmNlbWVudCBkZSBEbnNtYXNxLCBvdSB1biBjaGFuZ2VtZW50CitkJ2FkcmVzc2UgTUFDIG91IGRlIG5vbSBkJ2jDtHRlIHBvdXIgdW4gYmFpbCBleGlzdGFudCAob3UsIGRhbnMgbGUgY2FzIG/DuQorbGVhc2VmaWxlLXJvIGVzdCBzcMOpY2lmacOpLCB1biBjaGFuZ2VtZW50IGRlIGR1csOpZSBkZSBiYWlsIG91IGQnaWRlbnRpZmlhbnQKK2QnaMO0dGUpLiBMZSBwcm9jZXNzdXMgZXN0IGV4w6ljdXTDqSBlbiB0ZW1wcyBxdWUgc3VwZXItdXRpbGlzYXRldXIgKHNpIERuc21hc3EgYQorw6l0w6kgbGFuY8OpIGVuIHRlbXBzIHF1ZSAicm9vdCIpLCBtw6ptZSBzaSBEbnNtYXNxIGVzdCBjb25maWd1csOpIHBvdXIgY2hhbmdlciBzb24KK1VJRCBwb3VyIGNlbGxlIGQndW4gdXRpbGlzYXRldXIgbm9uLXByaXZpbMOpZ2nDqS4gTCdlbnZpcm9ubmVtZW50IGVzdCBow6lyaXTDqSBkZQorY2VsdWkgZGUgbCdpbnZvY2F0aW9uIGR1IHByb2Nlc3N1cyBEbnNtYXNxLCBldCBzaSBsJ2jDtHRlIGZvdXJuaXQgdW4gaWRlbnRpZmlhbnQKK2RlIGNsaWVudCwgY2VsdWktY2kgZXN0IHN0b2Nrw6kgZGFucyBsYSB2YXJpYWJsZSBkJ2Vudmlyb25uZW1lbnQKK0ROU01BU1FfQ0xJRU5UX0lELiBTaSBsZSBjbGllbnQgZm91cm5pdCB1bmUgaW5mb3JtYXRpb24gZGUgY2xhc3NlIGRlIHZlbmRldXIgb3UKK2RlIGNsYXNzZSBkJ3V0aWxpc2F0ZXVyLCBjZWxsZXMtY2kgc29udCBwb3NpdGlvbm7DqWVzIGRhbnMgbGVzIHZhcmlhYmxlcworRE5TTUFTUV9WRU5ET1JfQ0xBU1MgZXQgRE5TTUFTUV9VU0VSX0NMQVNTMCDDoCBETlNNQVNRX1VTRVJfQ0xBU1NuCityZXNwZWN0aXZlbWVudCwgbWFpcyBzZXVsZW1lbnQgcG91ciBsZXMgYWN0aW9ucyAiYWRkIiBldCAib2xkIiBsb3JzcXUndW4gaMO0dGUKK3JlcHJlbmQgdW4gYmFpbCBleGlzdGFudCwgY2VzIHZhcmlhYmxlcyBuJ8OpdGFudCBwYXMgc3RvY2vDqWVzIGRhbnMgbGEgYmFzZSBkZQorYmF1eCBkZSBEbnNtYXNxLiBTaSBEbnNtYXNxIGEgw6l0w6kgY29tcGlsw6kgYXZlYyBsJ29wdGlvbiBIQVZFX0JST0tFTl9SVEMKKygiaG9ybG9nZSBSVEMgZMOpZmVjdHVldXNlIiksIGFsb3JzIGxhIGR1csOpZSBkdSBiYWlsIChlbiBzZWNvbmRlcykgZXN0IHN0b2Nrw6llCitkYW5zIGxhIHZhcmlhYmxlIEROU01BU1FfTEVBU0VfTEVOR1RILCBzaW5vbiBsYSBkYXRlIGQnZXhwaXJhdGlvbiBkdSBiYWlsIGVzdAordG91am91cnMgc3RvY2vDqSBkYW5zIGxhIHZhcmlhYmxlIGQnZW52aXJvbm5lbWVudCBETlNNQVNRX0xFQVNFX0VYUElSRVMuIExlCitub21icmUgZGUgc2Vjb25kZXMgYXZhbnQgZXhwaXJhdGlvbiBlc3QgdG91am91cnMgc3RvY2vDqSBkYW5zCitETlNNQVNRX1RJTUVfUkVNQUlOSU5HLiBTaSB1biBiYWlsIMOpdGFpdCBhc3NvY2nDqSDDoCB1biBub20gZCdow7R0ZSBldCBxdWUgY2VsdWktY2kKK2VzdCBzdXBwcmltw6ksIHVuIMOpdsOqbmVtZW50IGRlIHR5cGUgIm9sZCIgZXN0IGfDqW7DqXLDqSBhdmVjIGxlIG5vdXZlYXUgc3RhdHV0IGR1CitiYWlsLCBjLcOgLWQgc2FucyBub20gZCdow7R0ZSwgZXQgbGUgbm9tIGluaXRpYWwgZXN0IGZvdXJuaSBkYW5zIGxhIHZhcmlhYmxlCitkJ2Vudmlyb25uZW1lbnQgRE5TTUFTUV9PTERfSE9TVE5BTUUuCitUb3VzIGxlcyBkZXNjcmlwdGV1cnMgZGUgZmljaGllcnMgc29udCBmZXJtw6lzLCBzYXVmIHN0ZGluLCBzdGRvdXQgZXQgc3RkZXJyIHF1aQorc29udCBvdXZlcnRzIHN1ciAvZGV2L251bGwgKHNhdWYgZW4gbW9kZSBkw6l2ZXJtaW5hZ2UpLgorTGUgc2NyaXB0IG4nZXN0IHBhcyBsYW5jw6kgZGUgbWFuacOocmUgY29uY3VycmVudGUgOiBzaSB1biBhdXRyZSBjaGFuZ2VtZW50IGRlCitiYWlsIGludGVydmllbnQsIGxlIHNjcmlwdCBuZSBzZXJhIHJlbGFuY8OpIHF1ZSBsb3JzcXVlIGwnZXjDqWN1dGlvbiBhY3R1ZWxsZSBzZXJhCit0ZXJtaW7DqWUuCitBdSBkw6ltYXJyYWdlIGRlIERuc21hc3EsIGxlIHNjcmlwdCBzZXJhIGludm9xdcOpIHBvdXIgY2hhY3VuIGRlcyBiYXV4IGV4aXN0YW50cworZGFucyBsZSBmaWNoaWVyIGRlcyBiYXV4LiBMZSBzY3JpcHQgc2VyYSBsYW5jw6kgYXZlYyBsJ2FjdGlvbiAiZGVsIiBwb3VyIGxlcyBiYXV4CitleHBpcsOpcywgZXQgIm9sZCIgcG91ciBsZXMgYXV0cmVzLiA8Y2hlbWluIGRlIGZpY2hpZXI+IGRvaXQgw6p0cmUgdW4gY2hlbWluCithYnNvbHUgKGMnZXN0LcOgLWRpcmUgcGFydGFudCBkZSBsYSByYWNpbmUgIi8iKSwgYXVjdW5lIHJlY2hlcmNoZSBuJ2F1cmEgbGlldQorZGFucyBsZXMgcsOpcGVydG9pcmVzIGRlIGxhIHZhcmlhYmxlIGQnZW52aXJvbm5lbWVudCBQQVRILiBMb3JzcXVlIERuc21hc3EgcmXDp29pdAordW4gc2lnbmFsIEhVUCwgbGUgc2NyaXB0IHNlcmEgaW52b3F1w6kgYXZlYyB1bmUgYWN0aW9uICJvbGQiIHBvdXIgdG91cyBsZXMgYmF1eAorZXhpc3RhbnRzLgorLlRQIAorLkIgXC05LCAtLWxlYXNlZmlsZS1ybworU3VwcHJpbWVyIGNvbXBsw6h0ZW1lbnQgbCd1c2FnZSBkdSBmaWNoaWVyIHNlcnZhbnQgZGUgYmFzZSBkZSBkb25uw6llIHBvdXIgbGVzCitiYXV4IERIQ1AuIExlIGZpY2hpZXIgbmUgc2VyYSBuaSBjcsOpw6ksIG5pIGx1LCBuaSDDqWNyaXQuIENoYW5nZSBsYSBmYcOnb24gZG9udCBsZQorc2NyaXB0IGRlIGNoYW5nZW1lbnQgZCfDqXRhdCBkZSBiYWlsIGVzdCBsYW5jw6kgKHNpIGNlbHVpLWNpIGVzdCBmb3VybmkgcGFyIGxlCitiaWFpcyBkZSBsJ29wdGlvbgorLkIgLS1kaGNwLXNjcmlwdAorKSwgZGUgc29ydGUgcXVlIGxhIGJhc2UgZGUgZG9ubsOpZXMgZGUgYmF1eCBwdWlzc2UKK8OqdHJlIGNvbXBsw6h0ZW1lbnQgZ8OpcsOpZSBwYXIgbGUgc2NyaXB0IHN1ciB1biBzdG9ja2FnZSBleHRlcm5lLiBFbiBhZGRpdGlvbiBhdXgKK2FjdGlvbnMgZMOpY3JpdGVzIGRhbnMgCisuQiAgLS1kaGNwLXNjcmlwdCwKK2xlIHNjcmlwdCBkZSBjaGFuZ2VtZW50IGQnw6l0YXQgZGUgYmFpbCBlc3QgYXBwZWxsw6kgdW5lIGZvaXMsIGF1IGxhbmNlbWVudCBkZQorRG5zbWFzcSwgYXZlYyBwb3VyIHNldWwgYXJndW1lbnQgImluaXQiLiBMb3JzcXUnYXBwZWxsw6kgZGUgbGEgc29ydGUsIGxlIHNjcmlwdAorZG9pdCBmb3VybmlyIGwnw6l0YXQgZGUgbGEgYmFzZSBkZSBiYXV4LCBkYW5zIGxlIGZvcm1hdCBkZSBmaWNoaWVyIGRlIGJhdXggZGUKK0Ruc21hc3EsIHN1ciBzYSBzb3J0aWUgc3RhbmRhcmQgKHN0ZG91dCkgZXQgcmV0b3VybmVyIHVuIGNvZGUgZGUgcmV0b3VyIGRlIDAuCitQb3NpdGlvbm5lciBjZXR0ZSBvcHRpb24gcHJvdm9xdWUgw6lnYWxlbWVudCB1bmUgaW52b2NhdGlvbiBkdSBzY3JpcHQgZGUKK2NoYW5nZW1lbnQgZCfDqXRhdCBkZSBiYWlsIMOgIGNoYXF1ZSBjaGFuZ2VtZW50IGRlIGwnaWRlbnRpZmlhbnQgZGUgY2xpZW50LCBkZQorbG9uZ3VldXIgZGUgYmFpbCBvdSBkZSBkYXRlIGQnZXhwaXJhdGlvbi4KKy5UUAorLkIgLS1icmlkZ2UtaW50ZXJmYWNlPTxpbnRlcmZhY2U+LDxhbGlhcz5bLDxhbGlhcz5dCitUcmFpdGVyIGxlcyByZXF1w6p0ZXMgREhDUCBhcnJpdmFudCBzdXIgbidpbXBvcnRlIGxhcXVlbGxlIGRlcyBpbnRlcmZhY2VzIDxhbGlhcz4KK2NvbW1lIHNpIGVsbGVzIGFycml2YWllbnQgZGUgbCdpbnRlcmZhY2UgPGludGVyZmFjZT4uIENldHRlIG9wdGlvbiBlc3QKK3VuaXF1ZW1lbnQgZGlzcG9uaWJsZSBzb3VzIEZyZWVCU0QgZXQgRHJhZ29uZmx5QlNELCBldCBlc3QgdW5pcXVlbWVudCBuw6ljZXNzYWlyZQorbG9ycyBkZSBsJ3V0aWxpc2F0aW9uIGRlIHBvbnQgZXRoZXJuZXQgImFuY2llbiBtb2RlIiwgcHVpc3F1ZSBkYW5zIGNlIGNhcyBsZXMKK3BhcXVldHMgYXJyaXZlbnQgc3VyIGRlcyBpbnRlcmZhY2VzICJ0YXAiIG4nYXlhbnQgcGFzIGQnYWRyZXNzZSBJUC4KKy5UUAorLkIgXC1zLCAtLWRvbWFpbj08ZG9tYWluZT4KK1Nww6ljaWZpZSBsZSBkb21haW5lIGR1IHNlcnZldXIgREhDUC4gQ2VsYSBhIGRldXggZWZmZXRzOyB0b3V0IGQnYWJvcmQsIGxlCitzZXJ2ZXVyIERIQ1AgcmV0b3VybmUgbGUgZG9tYWluZSDDoCB0b3VzIGxlcyBow7R0ZXMgbGUgZGVtYW5kYW50LCBkZXV4acOobWVtZW50LAorY2VsYSBzcMOpY2lmaWUgbGUgZG9tYWluZSB2YWxpZGUgcG91ciBsZXMgaMO0dGVzIERIQ1AgY29uZmlndXLDqXMuIExlIGJ1dCBkZSBjZWxhCitlc3QgZGUgY29udHJhaW5kcmUgbGVzIG5vbXMgZCdow7R0ZSBhZmluIHF1J2F1Y3VuIGjDtHRlIHN1ciBsZSBMQU4gbmUgcHVpc3NlCitmb3VybmlyIHZpYSBESENQIHVuIG5vbSB0ZWwgcXVlIHBhciBleGVtcGxlICJtaWNyb3NvZnQuY29tIiBldCBjYXB0dXJlciBkdQordHJhZmljIGRlIG1hbmnDqHJlIGlsbMOpZ2l0aW1lLiBTaSBhdWN1biBub20gZGUgZG9tYWluZSBuJ2VzdCBzcMOpY2lmacOpLCBhbG9ycworbGVzIG5vbXMgZCdow7R0ZXMgYXZlYyB1biBub20gZGUgZG9tYWluZSAoYy3DoC1kIHVuIHBvaW50IGRhbnMgbGUgbm9tKSBzZXJvbnQKK2ludGVyZGl0cyBldCBlbnJlZ2lzdHLDqXMgZGFucyBsZSBqb3VybmFsIChsb2dzKS4gU2kgdW4gc3VmZml4ZSBlc3QgZm91cm5pLCBhbG9ycworbGVzIG5vbXMgZCdow7R0ZXMgcG9zc8OpZGFudCB1biBkb21haW5lIHNvbnQgYXV0b3Jpc8OpcywgcG91ciBwZXUgcXVlIGxlIG5vbSBkZQorZG9tYWluZSBjb8OvbmNpZGUgYXZlYyBsZSBub20gZm91cm5pLiBEZSBwbHVzLCBzaSB1biBzdWZmaXhlIGVzdCBmb3VybmksIGFsb3JzCitsZXMgbm9tcyBkJ2jDtHRlcyBuZSBwb3Nzw6lkYW50IHBhcyBkZSBub20gZGUgZG9tYWluIHNlIHZvaWVudCByYWpvdXRlciBsZQorc3VmZml4ZSBmb3VybmkgZGFucyBsJ29wdGlvbgorLkIgLS1kb21haW4uCitBaW5zaSwgc3VyIG1vbiByw6lzZWF1LCBqZSBwZXV4IGNvbmZpZ3VyZXIKKy5CIC0tZG9tYWluPXRoZWtlbGxleXMub3JnLnVrCitldCBhdm9pciB1bmUgbWFjaGluZSBkb250IGxlIG5vbSBESENQIHNlcmFpdCAibGFwdG9wIi4gTCdhZHJlc3NlIElQIGRlIGNldHRlCittYWNoaW5lIHNlcmEgZGlzcG9uaWJsZSDDoCBsYSBmb2lzIHBvdXIgImxhcHRvcCIgZXQgImxhcHRvcC50aGVrZWxsZXlzLm9yZy51ayIuCitTaSBsYSB2YWxldXIgZm91cm5pZSBwb3VyIDxkb21haW5lPiBlc3QgIiMiLCBhbG9ycyBsZSBub20gZGUgZG9tYWluZSBlc3QKK3Bvc2l0aW9ubsOpIMOgIGxhIHByZW1pw6hyZSB2YWxldXIgZGUgbGEgZGlyZWN0aXZlICJzZWFyY2giIGR1IGZpY2hpZXIKKy9ldGMvcmVzb2x2LmNvbmYgKG91IMOpcXVpdmFsZW50KS4KKy5UUAorLkIgLS1lbmFibGUtdGZ0cAorQWN0aXZlIGxhIGZvbmN0aW9uIHNlcnZldXIgVEZUUC4gQ2VsdWktY2kgZXN0IGRlIG1hbmnDqHJlIGTDqWxpYsOpcsOpZSBsaW1pdMOpIGF1eAorZm9uY3Rpb25zIG7DqWNlc3NhaXJlcyBhdSBkw6ltYXJyYWdlIHBhciBsZSByw6lzZWF1ICgibmV0LWJvb3QiKSBkJ3VuIGNsaWVudCA6IHNldWwKK3VuIGFjY8OocyBlbiBsZWN0dXJlIGVzdCBwb3NzaWJsZSwgZXQgdW5pcXVlbWVudCBlbiBtb2RlIGJpbmFpcmUvb2N0ZXQuIExlcworZXh0ZW5zaW9ucyB0c2l6ZSBldCBibGtzaXplIHNvbnQgc3VwcG9ydMOpZXMuCisuVFAKKy5CIC0tdGZ0cC1yb290PTxyw6lwZXJ0b2lyZT4KK0xlcyBmaWNoaWVycyDDoCBmb3VybmlyIGRhbnMgbGVzIHRyYW5zZmVydHMgVEZUUCBzZXJvbnQgY2hlcmNow6lzIGVuIHByZW5hbnQgbGUKK3LDqXBlcnRvaXJlIGZvdXJuaSBjb21tZSByYWNpbmUuIExvcnNxdWUgY2VsYSBlc3QgZm91cm5pLCBsZXMgY2hlbWlucyBURlRQCitpbmNsdWFudCAiLi4iIHNvbnQgcmVqZXTDqXMsIGFmaW4gZCfDqXZpdGVyIHF1ZSBsZXMgY2xpZW50cyBuZSBwdWlzc2VudCBzb3J0aXIgZGUKK2xhIHJhY2luZSBzcMOpY2lmacOpZS4gTGVzIGNoZW1pbnMgYWJzb2x1cyAoY29tbWVuw6dhbnQgcGFyICIvIikgc29udCBhdXRvcmlzw6lzLAorbWFpcyBpbHMgZG9pdmVudCDDqnRyZSDDoCBsYSByYWNpbmUgVEZUUCBmb3VybmllLgorLlRQCisuQiAtLXRmdHAtdW5pcXVlLXJvb3QKK0Fqb3V0ZXIgbCdhZHJlc3NlIElQIGR1IGNsaWVudCBURlRQIGVuIHRlbXBzIHF1J8OpbMOpbWVudCBkZSBjaGVtaW4sIMOgIGxhIHN1aXRlCitkZSBsYSByYWNpbmUgdGZ0cCAoYWRyZXNzZSBzb3VzIGZvcm1lIGRlIDQgY2hpZmZyZXMgc8OpcGFyw6lzIHBhciBkZXMgcG9pbnRzKS4KK1VuaXF1ZW1lbnQgdmFsYWJsZSBzaSB1bmUgcmFjaW5lIFRGVFAgZXN0IHNww6ljaWZpw6llIGV0IHNpIGxlIHLDqXBlcnRvaXJlCitjb3JyZXNwb25kIGV4aXN0ZS4gQWluc2ksIHNpIGxhIHZhbGV1ciBwb3VyIHRmdHAtcm9vdCBlc3QgIi90ZnRwIiBldCBxdWUgbGUKK2NsaWVudCBkJ2FkcmVzc2UgSVAgMS4yLjMuNCByZXF1aWVydCBsZSBmaWNoaWVyICJtb25maWNoaWVyIiwgYWxvcnMgbGUgY2hlbWluCitlZmZlY3RpdmUgcsOpc3VsdGFudCBzZXJhICIvdGZ0cC8xLjIuMy40L21vbmZpY2hpZXIiIHNpIC90ZnRwLzEuMi4zLjQgZXhpc3RlLCBvdQorIi90ZnRwL21vbmZpY2hpZXIiIGRhbnMgbGUgY2FzIGNvbnRyYWlyZS4KKy5UUAorLkIgLS10ZnRwLXNlY3VyZQorQWN0aXZlIGxlIG1vZGUgVEZUUCBzw6ljdXJpc8OpIDogc2FucyBjZWxhLCB0b3V0IGZpY2hpZXIgbGlzaWJsZQorcGFyIERuc21hc3EgZXN0IGRpc3BvbmlibGUgdmlhIFRGVFAgKGxlcyByw6hnbGVzIGRlIGNvbnRyw7RsZSBkJ2FjY8OocyB1bml4CitoYWJpdHVlbGxlcyBzJ2FwcGxpcXVlbnQpLiBMb3JzcXVlIGwnb3B0aW9uCisuQiAtLXRmdHAtc2VjdXJlCitlc3Qgc3DDqWNpZmnDqWUsIHNldWxzIGxlcyBmaWNoaWVycyBwb3Nzw6lkw6lzIHBhciBsJ3V0aWxpc2F0ZXVyIHNvdXMgbGVxdWVsIHRvdXJuZQorbGUgcHJvY2Vzc3VzIERuc21hc3Egc29udCBhY2Nlc3NpYmxlcy4gU2kgRG5zbWFzcSBlc3QgZXjDqWN1dMOpIGVuIHRlbXBzIHF1ZQorc3VwZXItdXRpbGlzYXRldXIgKCJyb290IiksIGRlcyByw6hnbGVzIGRpZmbDqXJlbnRlcyBzJ2FwcGxpcXVlbnQgOgorLkIgLS10ZnRwLXNlY3VyZQorbidhIGF1Y3VuIGVmZmV0LCBtYWlzIHNldWxzIGxlcyBmaWNoaWVycyBheWFudCB1biBkcm9pdCBkZSBsZWN0dXJlIHBvdXIgdG91dCBsZQorbW9uZGUgc29udCBhY2Nlc3NpYmxlcy4gSWwgbidlc3QgcGFzIHJlY29tbWFuZMOpIGQnZXjDqWN1dGVyIERuc21hc3Egc291cworbCd1dGlsaXNhdGV1ciAicm9vdCIgbG9yc3F1ZSBsZSBzZXJ2aWNlIFRGVFAgZXN0IGFjdGl2w6ksIGV0IGlsIGVzdCBmb3JtZWxsZW1lbnQKK2TDqWNvbnNlaWxsw6kgZGUgbGUgZmFpcmUgc2FucyBmb3VybmlyIGwnb3B0aW9uCisuQiAtLXRmdHAtcm9vdC4KK1NhbnMgY2VsYSwgZW4gZWZmZXQsIGwnYWNjw6hzIGRlIHRvdXMgbGVzIGZpY2hpZXJzIGR1IHNlcnZldXIgcG91ciBsZXF1ZWwgbGUKK2Ryb2l0IGRlIGxlY3R1cmUgcG91ciB0b3V0IGxlIG1vbmRlIGVzdCBwb3NpdGlvbm7DqSAoIndvcmxkLXJlYWRhYmxlIikgZGV2aWVudAorcG9zc2libGUgcGFyIG4naW1wb3J0ZSBxdWVsIGjDtHRlIHN1ciBsZSByw6lzZWF1LgorLlRQCisuQiAtLXRmdHAtbWF4PTxjb25uZXhpb25zPgorRMOpZmluaXQgbGUgbm9tYnJlIG1heGltdW0gZGUgY29ubmV4aW9ucyBURlRQIHNpbXVsdGFuw6llcyBhdXRvcmlzw6llcy4gTGEgdmFsZXVyCitwYXIgZMOpZmF1dCBlc3QgZGUgNTAuIExvcnNxdSd1biBncmFuZCBub21icmUgZGUgY29ubmV4aW9ucyBURlRQIGVzdCBzcMOpY2lmacOpLAoraWwgc2UgcGV1dCBxdWUgbGEgbGltaXRlIGRlIG5vbWJyZSBkZSBkZXNjcmlwdGV1cnMgZGUgZmljaGllcnMgcGFyIHByb2Nlc3N1cworc29pdCBhdHRlaW50ZS4gRG5zbWFzcSBuw6ljZXNzaXRlIHF1ZWxxdWVzIGRlc2NyaXB0ZXVycyBkZSBmaWNoaWVycywgYWluc2kgcXUndW4KK2Rlc2NyaXB0ZXVyIGRlIGZpY2hpZXIgcG91ciBjaGFxdWUgY29ubmV4aW9uIFRGVFAgc2ltdWx0YW7DqWUgZXQgcG91ciBjaGFjdW4gZGVzCitmaWNoaWVycyBkZXZhbnQgw6p0cmUgZm91cm5pcy4gRGUgZmFpdCwgc2VydmlyIGxlIG3Dqm1lIGZpY2hpZXIgw6AgbiBjbGllbnRzIG5lCituw6ljZXNzaXRlcmEgcXUnZW52aXJvbiBuICsgMTAgZGVzY3JpcHRldXJzIGRlIGZpY2hpZXJzLCBhbG9ycyBxdWUgZm91cm5pciBkZXMKK2ZpY2hpZXJzIHRvdXMgZGlmZsOpcmVudHMgw6AgbiBjbGllbnRzIHV0aWxpc2VyYSBlbnZpcm9uICgyKm4pICsgMTAgZGVzY3JpcHRldXJzLgorLlRQCisuQiAtLXRmdHAtbm8tYmxvY2tzaXplCitFbXDDqmNoZSBsZSBzZXJ2ZXVyIFRGVFAgZGUgbsOpZ29jaWVyIGwnb3B0aW9uICJibG9ja3NpemUiICh0YWlsbGUgZGUgYmxvYykgYXZlYworbGVzIGNsaWVudHMuIENlcnRhaW5zIGNsaWVudHMgYnVnZ8OpcyBzcMOpY2lmaWVudCBjZXR0ZSBvcHRpb24gbWFpcyBzZSBjb21wb3J0ZW50CitlbnN1aXRlIGRlIG1hbmnDqHJlIGluY29ycmVjdGUgc2kgY2VsbGUtY2kgZXN0IGFjY29yZMOpZS4KKy5UUAorLkIgLS10ZnRwLXBvcnQtcmFuZ2U9PGTDqWJ1dD4sPGZpbj4KK1VuIHNlcnZldXIgVEZUUCDDqWNvdXRlIHN1ciB1biBudW3DqXJvIGRlIHBvcnQgYmllbiBjb25udSAoNjkpIHBvdXIgbCdpbml0aWF0aW9uCitkZSBsYSBjb25uZXhpb24sIGV0IGFsbG91ZSBkeW5hbWlxdWVtZW50IHVuIHBvcnQgcG91ciBjaGFxdWUgY29ubmV4aW9uLiBDZXMKK251bcOpcm9zIGRlIHBvcnRzIHNvbnQgZW4gcHJpbmNpcGUgYWxsb3XDqXMgcGFyIGxlIHN5c3TDqG1lIGQnZXhwbG9pdGF0aW9uLCBtYWlzCitjZXR0ZSBvcHRpb24gcGVybWV0IGRlIHNww6ljaWZpZXIgdW5lIGdhbW1lIGRlIHBvcnRzIMOgIHV0aWxpc2VyIHBvdXIgbGVzCit0cmFuc2ZlcnRzIFRGVFAuIENlbGEgcGV1dC3DqnRyZSB1dGlsZSBsb3JzcXVlIGNldXgtY2kgZG9pdmVudCB0cmF2ZXJzZXIgdW4KK2Rpc3Bvc2l0aWYgZ2FyZGUtYmFycmnDqHJlICgiZmlyZXdhbGwiKS4gTGUgZMOpYnV0IGRlIGxhIHBsYWdlIG5lIHBldXQtw6p0cmUKK2luZsOpcmlldXIgw6AgMTAyNCDDoCBtb2lucyBxdWUgRG5zbWFzcSBuZSBmb25jdGlvbm5lIGVuIHRlbXBzIHF1ZQorc3VwZXItdXRpbGlzYXRldXIgKCJyb290IikuIExlIG5vbWJyZSBtYXhpbWFsIGRlIGNvbm5leGlvbnMgVEZUUCBjb25jdXJyZW50ZXMKK2VzdCBsaW1pdMOpZSBwYXIgbGEgdGFpbGxlIGRlIGxhIHBsYWdlIGRlIHBvcnRzIGFpbnNpIGTDqWZpbmllLiAKKy5UUAorLkIgXC1DLCAtLWNvbmYtZmlsZT08ZmljaGllcj4KK1Nww6ljaWZpZSB1biBmaWNoaWVyIGRlIGNvbmZpZ3VyYXRpb24gZGlmZsOpcmVudC4gTCdvcHRpb24gImNvbmYtZmlsZSIgZXN0CivDqWdhbGVtZW50IGF1dG9yaXPDqWUgZGFucyBkZXMgZmljaGllcnMgZGUgY29uZmlndXJhdGlvbiwgY2UgcXVpIHBlcm1ldAorbCdpbmNsdXNpb24gZGUgbXVsdGlwbGVzIGZpY2hpZXJzIGRlIGNvbmZpZ3VyYXRpb24uCisuVFAKKy5CIFwtNywgLS1jb25mLWRpcj08csOpcGVydG9pcmU+CitMaXMgdG91cyBsZXMgZmljaGllcnMgZHUgcsOpcGVydG9pcmUgc3DDqWNpZmnDqSBldCBsZXMgdHJhaXRlIGNvbW1lIGRlcyBmaWNoaWVycyBkZQorY29uZmlndXJhdGlvbi4gTGVzIGZpY2hpZXJzIGRvbnQgbGVzIG5vbXMgc2UgdGVybWluZW50IGVuIH4gb3UgY29tbWVuw6dhbnQgcGFyIC4sCithaW5zaSBxdWUgY2V1eCBjb21tZW7Dp2FudCBvdSBzZSB0ZXJtaW5hbnQgcGFyICMgbmUgc29udCBwYXMgcHJpcyBlbiBjb21wdGUuCitDZXR0ZSBvcHRpb24gcGV1dCDDqnRyZSBkb25uw6llIGVuIGxpZ25lIGRlIGNvbW1hbmRlIG91IGRhbnMgdW4gZmljaGllciBkZQorY29uZmlndXJhdGlvbi4KKy5TSCBGSUNISUVSIERFIENPTkZJR1VSQVRJT04KK0F1IGTDqW1hcnJhZ2UsIERuc21hc3EgbGlzCisuSSAvZXRjL2Ruc21hc3EuY29uZiwKK3NpIGNlIGZpY2hpZXIgZXhpc3RlLiAoU3VyIEZyZWVCU0QsIGNlIGZpY2hpZXIgZXN0CisuSSAvdXNyL2xvY2FsL2V0Yy9kbnNtYXNxLmNvbmYKKykgKHZvaXIgY2VwZW5kYW50IGxlcyBvcHRpb25zIAorLkIgXC1DCitldAorLkIgXC03CispLiBMZSBmb3JtYXQgZGUgY2UgZmljaGllciBjb25zaXN0ZSBlbiB1bmUgb3B0aW9uIHBhciBsaWduZSwgZXhhY3RlbWVudCBjb21tZQorbGVzIG9wdGlvbnMgbG9uZ3VlcyBkw6l0YWlsbMOpZXMgZGFucyBsYSBzZWN0aW9uIE9QVElPTlMsIG1haXMgc2FucyDDqnRyZSBwcsOpY8OpZMOpZXMKK3BhciAiLS0iLiBMZXMgbGlnbmVzIGNvbW1lbsOnYW50IHBhciAjIHNvbnQgZGVzIGNvbW1lbnRhaXJlcyBldCBzb250IGlnbm9yw6llcy4KK1BvdXIgbGVzIG9wdGlvbnMgcXVpIG5lIHBldXZlbnQtw6p0cmUgc3DDqWNpZmnDqWVzIHF1J3VuZSBzZXVsZSBmb2lzLCBjZWxsZSBkdQorZmljaGllciBkZSBjb25maWd1cmF0aW9uIHByZW5kcyBsZSBwYXMgc3VyIGNlbGxlIGZvdXJuaWUgZW4gbGlnbmUgZGUgY29tbWFuZGUuCitJbCBlc3QgcG9zc2libGUgZCd1dGlsaXNlciBkZXMgZ3VpbGxlbWV0cyBhZmluIGQnw6l2aXRlciBxdWUgbGVzICIsIiwiOiIsIi4iIGV0CisiIyIgbmUgc29pdCBpbnRlcnByw6p0w6lzLCBldCBpbCBlc3QgcG9zc2libGUgZCd1dGlsaXNlciBsZXMgc8OpcXVlbmNlcworZCfDqWNoYXBwZW1lbnQgc3VpdmFudGVzIDogXFxcXCBcXCIgXFx0IFxcYSBcXGIgXFxyIGV0IFxcbi4gRWxsZXMgY29ycmVzcG9uZGVudAorcmVzcGVjdGl2ZW1lbnQgw6AgbGEgYmFycmUgb2JsaXF1ZSBkZXNjZW5kYW50ZSAoImFudGktc2xhc2giKSwgZ3VpbGxlbWV0cyBkb3VibGVzLAordGFidWxhdGlvbiwgc29ubmVyaWUgKCJiZWxsIiksIHN1cHByZXNzaW9uICgiYmFja3NwYWNlIiksIHJldG91ciAoInJldHVybiIpIGV0Citub3V2ZWxsZSBsaWduZSAoIm5ld2xpbmUiKS4KKy5TSCBOT1RFUworQSBsYSByw6ljZXB0aW9uIGQndW4gc2lnbmFsIFNJR0hVUCwKKy5CIERuc21hc3EKK3ZpZGUgc29uIGNhY2hlIGV0IHJlY2hhcmdlIGxlcyBmaWNoaWVycworLkkgL2V0Yy9ob3N0cworZXQKKy5JIC9ldGMvZXRoZXJzIAorYWluc2kgcXVlIHRvdXQgYXV0cmUgZmljaGllciBzcMOpY2lmacOpIHBhciBsZXMgb3B0aW9ucworLkIgLS1kaGNwLWhvc3RzZmlsZQorLAorLkIgLS1kaGNwLW9wdHNmaWxlCitvdQorLkIgLS1hZGRuLWhvc3RzLgorTGUgc2NyaXB0IGRlIGNoYW5nZW1lbnQgZGUgYmFpbCBlc3QgYXBwZWxsw6kgcG91ciBjaGFxdWUgYmFpbCBESENQIGV4aXN0YW50LiBTaQorbCdvcHRpb24KKy5CIC0tbm8tcG9sbAorZXN0IHBvc2l0aW9ubsOpZSwgYWxvcnMgbGUgZmljaGllcgorLkkgL2V0Yy9yZXNvbHYuY29uZgorZXN0IMOpZ2FsZW1lbnQgcmVjaGFyZ8OpLgorU0lHSFVQIG5lIHByb3ZvcXVlIFBBUyBkZSByZWNoYXJnZW1lbnQgZHUgZmljaGllciBkZSBjb25maWd1cmF0aW9uLgorLlBQCitBIGxhIHLDqWNlcHRpb24gZCd1biBzaWduYWwgU0lHVVNSMSwKKy5CIERuc21hc3EgCivDqWNyaXQgZGVzIHN0YXRpc3RpcXVlcyBkYW5zIGxlcyB0cmFjZXMgc3lzdMOobWUuIExlcyBpbmZvcm1hdGlvbnMgZm91cm5pZXMgc29udCA6CitsYSB0YWlsbGUgZHUgY2FjaGUsIGxlIG5vbWJyZSBkZSBub21zIGF5YW50IMOpdMOpIHN1cHByaW3DqXMgZHUgY2FjaGUgYXZhbnQKK2V4cGlyYXRpb24gYWZpbiBkZSBmYWlyZSBkZSBsYSBwbGFjZSBwb3VyIGxlcyBub3V2ZWF1eCBub21zLCBhaW5zaSBxdWUgbGUgbm9tYnJlCit0b3RhbCBkJ2VudHLDqWVzIGF5YW50IMOpdMOpIGluc8OpcsOpZXMgZGFucyBsZSBjYWNoZS4KK0xvcnNxdWUgRG5zbWFzcSBhIMOpdMOpIGxhbmPDqSB2aWEKKy5CIC0tbm8tZGFlbW9uCitvdSBsb3JzcXVlIGxhIHRyYcOnYWJpbGl0w6kgbWF4aW1hbGUgYSDDqXTDqSBhY3RpdsOpZSAoCisuQiAtcQorKSwgbGEgdG90YWxpdMOpIGR1IGNvbnRlbnUgZHUKK2NhY2hlIGVzdCBkZSBzdXJjcm/DrnQgZm91cm5pZS4KKy5QUCAKK0EgbGEgcsOpY2VwdGlvbiBkJ3VuIHNpZ25hbCBTSUdVU1IyIGV0IGxvcnNxdSdpbCBlbnJlZ2lzdHJlIGRpcmVjdGVtZW50IHNlcwordHJhY2VzIGRhbnMgdW4gZmljaGllciAodm9pcgorLkIgLS1sb2ctZmFjaWxpdHkKKyksIGFsb3JzIAorLkIgRG5zbWFzcQorZmVybWUgZXQgcmUtcm91dnJlIGxlIGZpY2hpZXIgZGUgdHJhY2VzLiBJbCBmYXV0IG5vdGVyIHF1ZSBwZW5kYW50IGNldHRlCitvcMOpcmF0aW9uIERuc21hc3EgbmUgcydleMOpY3V0ZSBwYXMgZW4gdGVtcHMgcXVlICJyb290Ii4gTG9yc3F1J2lsIGNyw6nDqSB1bgorZmljaGllciBkZSB0cmFjZXMgcG91ciBsYSBwcmVtacOocmUgZm9pcywgRG5zbWFzcSBjaGFuZ2UgbGUgcHJvcHJpw6l0YWlyZSBkdQorZmljaGllciBhZmluIGRlIGxlIGZhaXJlIGFwcGFydGVuaXIgw6AgbCd1dGlsaXNhdGV1ciBub24gInJvb3QiIHNvdXMgbGVxdWVsCitEbnNtYXNxIHMnZXjDqWN1dGUuIExlIGxvZ2ljaWVsIGRlIHJvdGF0aW9uIGRlIGZpY2hpZXJzIGRlIHRyYWNlIGxvZ3JvdGF0ZSBkb2l0CivDqnRyZSBjb25maWd1csOpIHBvdXIgY3LDqWVyIHVuIG5vdXZlYXUgZmljaGllciBhdmVjIHVuIHByb3ByacOpdGFpcmUgaWRlbnRpcXVlIGF1CitmaWNoaWVyIGV4aXN0YW50IGF2YW50IGQnZW52b3llciBsZSBzaWduYWwgU0lHVVNSMi4gU2kgdW5lIHJlcXXDqnRlIEROUyBUQ1AgZXN0CitlbiBjb3VycywgbCdhbmNpZW4gZmljaGllciBkZSB0cmFjZXMgcmVzdGUgb3V2ZXJ0IGRhbnMgbGUgcHJvY2Vzc3VzIGZpbHMgcXVpCit0cmFpdGUgbGEgcmVxdcOqdGUgVENQIGV0IGlsIHBldXQgeSDDqnRyZSDDqWNyaXQuIElsIGV4aXN0ZSBjZXBlbmRhbnQgdW5lIGxpbWl0ZQorZGUgMTUwIHNlY29uZGVzIGFwcsOocyBsYXF1ZWxsZSB0b3VzIGxlcyBwcm9jZXNzdXMgdHJhaXRhbnQgZGVzIHJlcXXDqnRlcyBUQ1AKK2V4cGlyZW50IDogcG91ciBjZXR0ZSByYWlzb24sIGlsIGVzdCBwcsOpZsOpcmFibGUgZGUgbmUgcGFzIGNvbmZpZ3VyZXIgbGEKK2NvbXByZXNzaW9uIGRlcyBmaWNoaWVycyBkZSB0cmFjZXMgdmVuYW50IGp1c3RlIGRlIGZhaXJlIGwnb2JqZXQgZCd1bmUgcm90YXRpb24uCitEYW5zIGxlIGNhcyBkZSBsJ3V0aWxpc2F0aW9uIGR1IGxvZ2ljaWVsIGxvZ3JvdGF0ZSwgbGVzIG9wdGlvbnMgcmVxdWlzZXMgc29udAorLkIgY3JlYXRlIAorZXQKKy5CIGRlbGF5Y29tcHJlc3MuCisKKyAKKy5QUAorRG5zbWFzcSBlc3QgdW4gbG9naWNpZWwgZGUgdHJhbnNtaXNzaW9uIGRlIHJlcXXDqnRlcyBETlMgOiBpbCBuJ2VzdCBwYXMgY2FwYWJsZQorZCdlZmZlY3R1ZXIgdW5lIHLDqXNvbHV0aW9uIGRlIG5vbSByw6ljdXJzaXZlIGVuIHBhcnRhbnQgZGVzIHNlcnZldXJzIEROUyByYWNpbmUsCittYWlzIHRyYW5zbWV0IGRlIHRlbGxlcyByZXF1w6p0ZXMgw6AgdW4gc2VydmV1ciBETlMgYW1vbnQgY2FwYWJsZSBkZSB0ZWxsZXMKK3JlY2hlcmNoZXMgcsOpY3Vyc2l2ZXMsIGNlIHF1aSBlc3QgdHlwaXF1ZW1lbnQgbGUgY2FzIGQndW4gc2VydmV1ciBETlMgZGUgRkFJLgorUGFyIGTDqWZhdXQsIERuc21hc3EgbGlzCisuSSAvZXRjL3Jlc29sdi5jb25mCitwb3VyIGTDqWNvdXZyaXIgbGVzIGFkcmVzc2VzIElQIGRlcyBzZXJ2ZXVycyBETlMgYW1vbnRzIMOgIHV0aWxpc2VyLCBwdWlzcXVlIGNldHRlCitpbmZvcm1hdGlvbiBlc3QgZW4gZ8OpbsOpcmFsIHN0b2Nrw6llIMOgIGNldCBlbmRyb2l0LiBBIG1vaW5zIHF1ZSBsJ29wdGlvbgorLkIgLS1uby1wb2xsCituZSBzb2l0IHV0aWxpc8OpZSwKKy5CIERuc21hc3EKK3bDqXJpZmllIGxhIGRhdGUgZGUgbW9kaWZpY2F0aW9uIGR1IGZpY2hpZXIKKy5JIC9ldGMvcmVzb2x2LmNvbmYKKyhvdSBsJ8OpcXVpdmFsZW50IHNpIAorLkIgXC0tcmVzb2x2LWZpbGUgCitlc3QgdXRpbGlzw6kpLCBldCBsZSByZWxpcyBsb3JzcXUnaWwgY2hhbmdlLiBDZWxhIHBlcm1ldCBkZSBkw6lmaW5pciBsZXMgc2VydmV1cnMKK0ROUyBhbW9udCBkZSBtYW5pw6hyZSBkeW5hbWlxdWUgbG9yc3F1ZSBQUFAgb3UgREhDUCBzb250IHV0aWxpc8OpcywgcHVpc3F1ZSBjZXMKK3Byb3RvY29sZXMgZm91cm5pc3NlbnQgY2V0dGUgaW5mb3JtYXRpb24uCitMJ2Fic2VuY2UgZHUgZmljaGllcgorLkkgL2V0Yy9yZXNvbHYuY29uZgorbmUgY29uZHVpdCBwYXMgw6AgdW5lIGVycmV1ciwgcHVpc3F1J2lsIHBldXQgdHLDqHMgYmllbiBuZSBwYXMgw6p0cmUgY3LDqcOpIGF2YW50CitxdSd1bmUgY29ubmV4aW9uIFBQUCBuZSBzb2l0IMOpdGFibGllLiBEYW5zIGNlIGNhcywgRG5zbWFzcSB2w6lyaWZpZSByw6lndWxpw6hyZW1lbnQKK3BvdXIgdm9pciBzaSB1biBmaWNoaWVyCisuSSAvZXRjL3Jlc29sdi5jb25mIAorZXN0IGNyw6nDqS4gRG5zbWFzcSBwZXV0IMOqdHJlIGNvbmZpZ3Vyw6kgcG91ciBsaXJlIHBsdXMgZCd1biBmaWNoaWVyIHJlc29sdi5jb25mLgorQ2VsYSBlc3QgdXRpbGUgc3VyIHVuIG9yZGluYXRldXIgcG9ydGFibGUgb8O5IFBQUCBldCBESENQIHBldXZlbnQtw6p0cmUgdXRpbGlzw6lzIDoKK0Ruc21hc3EgcGV1dCBhbG9ycyDDqnRyZSBjb25maWd1csOpIHBvdXIgbGlyZSDDoCBsYSBmb2lzCisuSSAvZXRjL3BwcC9yZXNvbHYuY29uZiAKK2V0CisuSSAvZXRjL2RoY3BjL3Jlc29sdi5jb25mIAorZXQgdXRpbGlzZXJhIGxlIGNvbnRlbnUgZHUgZmljaGllciBheWFudCBjaGFuZ8OpIGVuIGRlcm5pZXIsIGNlIHF1aSBwZXJtZXQgZGUKK3Bhc3NlciBhdXRvbWF0aXF1ZW1lbnQgZGUgc2VydmV1cnMgRE5TIMOgIGQnYXV0cmVzLgorLlBQCitMZXMgc2VydmV1cnMgYW1vbnRzIHBldXZlbnQgYXVzc2kgw6p0cmUgc3DDqWNpZmnDqXMgc3VyIGxhIGxpZ25lIGRlIGNvbW1hbmRlIG91CitkYW5zIHVuIGZpY2hpZXIgZGUgY29uZmlndXJhdGlvbi4gQ2VzIHNww6ljaWZpY2F0aW9ucyBkZSBzZXJ2ZXVycyBwZXV2ZW50CivDqXZlbnR1ZWxsZW1lbnQgc2Ugdm9pciBhZGpvaW5kcmUgZCd1biBub20gZGUgZG9tYWluZSBxdWkgcHLDqWNpc2Ugw6AgRG5zbWFzcSBxdWVsCitzZXJ2ZXVyIHV0aWxpc2VyIHBvdXIgdHJvdXZlciBsZXMgbm9tcyBkJ3VuIGRvbWFpbmUgZG9ubsOpLgorLlBQCitQb3VyIGNvbmZpZ3VyZXIgRG5zbWFzcSBhZmluIHF1J2lsIHNlIGNvbXBvcnRlIGNvbW1lIHVuIGNhY2hlIHBvdXIgbGEgbWFjaGluZQorc3VyIGxhcXVlbGxlIGlsIHRvdXJuZSwgbWV0dHJlICJuYW1lc2VydmVyIDEyNy4wLjAuMSIgZGFucyBsZSBmaWNoaWVyCisuSSAvZXRjL3Jlc29sdi5jb25mCithZmluIGRlIGZvcmNlciBsZXMgcHJvY2Vzc3VzIGxvY2F1eCDDoCBlbnZveWVyIGxldXJzIHJlcXXDqnRlcyDDoCBEbnNtYXNxLiBFbnN1aXRlLAorc3DDqWNpZmllciBsZXMgc2VydmV1cnMgRE5TIGFtb250IHNvaXQgZW4gbGVzIGZvdXJuaXNzYW50IGRpcmVjdGVtZW50IMOgIERuc21hc3EKK3ZpYSBsJ29wdGlvbgorLkIgXC0tc2VydmVyCitvdSBhbG9ycyBlbiBtZXR0YW50IGxldXJzIGFkcmVzc2VzIGRhbnMgdW4gYXV0cmUgZmljaGllciwgcGFyIGV4ZW1wbGUKKy5JIC9ldGMvcmVzb2x2LmRuc21hc3EKK2V0IGVuIGxhbsOnYW50IERuc21hc3EgYXZlYyBsJ29wdGlvbgorLkIgXC1yIC9ldGMvcmVzb2x2LmRuc21hc3EuCitDZXR0ZSBkZXV4acOobWUgdGVjaG5pcXVlIHBlcm1ldCBsYSBtaXNlLcOgLWpvdXIgZHluYW1pcXVlIGRlcyBhZGRyZXNzZXMgZGUKK3NlcnZldXJzIEROUyBhbW9udCBwYXIgbGUgYmlhaXMgZGUgUFBQIG91IERIQ1AuCisuUFAKK0xlcyBhZHJlc3NlcyBkYW5zIC9ldGMvaG9zdHMgcHJlbm5lbnQgbGUgZGVzc3VzIHN1ciBjZWxsZXMgZm91cm5pZXMgcGFyIGxlCitzZXJ2ZXVyIEROUyBhbW9udCwgYWluc2kgIm1hY29tcGFnbmllLmNvbSAxLjIuMy40IiBkYW5zIC9ldGMvaG9zdHMgYXNzdXJlIHF1ZQorbGVzIHJlcXXDqnRlcyBwb3VyICJtYWNvbXBhZ25pZS5jb20iIHJldG91cm5lcm9udCB0b3Vqb3VycyAxLjIuMy40LCBtw6ptZSBzaSB1bmUKK3JlcXXDqnRlIGF1IHNlcnZldXIgRE5TIGFtb250IHJldG91cm5lcmFpdCB1bmUgYWRyZXNzZSBkaWZmw6lyZW50ZS4gSWwgeSBhIHVuZQorZXhjZXB0aW9uIMOgIGNlY2kgOiBzaSBsZSBETlMgYW1vbnQgY29udGllbnQgdW4gQ05BTUUgcXVpIHBvaW50ZSB2ZXJzIHVuIG5vbQorcHLDqXNlbnQgZGFucyAvZXRjL2hvc3RzLCBhbG9ycyBsYSByZWNoZXJjaGUgZHUgQ05BTUUgdmlhIERuc21hc3EgZm91cm5pcmEKK2wnYWRyZXNzZSBETlMgYW1vbnQuIFBvdXIgY29udG91cm5lciBjZWxhLCBpbCBzdWZmaXQgZGUgbWV0dHJlIGwnZW50csOpZQorY29ycmVzcG9uZGFudCBhdSBDTkFNRSBkYW5zIC9ldGMvaG9zdHMuCisKKy5QUAorbGVzIGlkZW50aWZpYW50cyBkZSByw6lzZWF1IGZvbmN0aW9ubmVudCBjb21tZSBzdWl0IDogRG5zbWFzcSBhc3NvY2llIMOgIGNoYXF1ZQorcmVxdcOqdGUgREhDUCB1biBlbnNlbWJsZSBkJ2lkZW50aWZpYW50cyBkZSByw6lzZWF1OyB1biBwb3VyIGxhIHBsYWdlIGQnYWRyZXNzZQorREhDUCAoCisuQiBkaGNwLXJhbmdlCispIHV0aWxpc8OpZSBwb3VyIGFsbG91ZXIgbCdhZHJlc3NlLCB1bmUgcG91ciBjaGFxdWUgZW50csOpZQorLkIgZGhjcC1ob3N0Cithc3NvY2nDqWUgZXQgw6l2ZW50dWVsbGVtZW50IHVuZSBwb3VyIGNoYXF1ZSBjbGFzc2UgZGUgdmVuZGV1ciBvdSBkJ3V0aWxpc2F0ZXVyCitmb3VybmllIHBhciBsZSBjbGllbnQgREhDUCBkYW5zIHNhIHJlcXXDqnRlLiBMZXMgb3B0aW9ucyBESENQICgKKy5CIGRoY3Atb3B0aW9uIAorKSBheWFudCB1biBpZGVudGlmaWFudCBkZSByw6lzZWF1IHNlcm9udCB1dGlsaXPDqXMgZGUgcHLDqWbDqXJlbmNlIMOgIGNlbGxlcworc2FucyBpZGVudGlmaWFudHMgZGUgcsOpc2VhdSwgcG91ciBwZXUgcXVlCisuSSB0b3VzCitsZXMgbGFiZWxzIGNvcnJlc3BvbmRlbnQuCitMZSBwcsOpZml4ZSAnIycgc3VyIHVuIGxhYmVsIGVzdCB1biBpbmRpY2F0ZXVyIGRlIG7DqWdhdGlvbiwgYWluc2kKKy5CIC0tZGhjcD1vcHRpb249I3B1cnBsZSwzLDEuMi4zLjQKK2Vudm9pZSBsJ29wdGlvbiBsb3JzcXVlIGxlIGxhYmVsICJwdXJwbGUiIG4nZXN0IHBhcyBkYW5zIGxhIGxpc3RlIGRlIGxhYmVscwordmFsaWRlcyBwb3VyIGwnaMO0dGUgY29uc2lkw6lyw6kuCisuUFAKK1NpIGwnaWRlbnRpZmlhbnQgZGUgcsOpc2VhdSBkYW5zIGxhIHBsYWdlIGQnYWRyZXNzZXMgREhDUCAoCisuQiBkaGNwLXJhbmdlIAorKSBlc3QgcHLDqWZpeMOpIHBhciAnbmV0OicsIGFsb3JzIHNhIHNpZ25pZmljYXRpb24gY2hhbmdlIDogYXUgbGlldSBkJ2Fzc29jaWVyIHVuCitsYWJlbCDDoCBsYSBwbGFnZSBzcMOpY2lmacOpZSwgY2VsYSBpbmRpcXVlIHVuIGxhYmVsIGRlIHLDqXNlYXUgZGV2YW50IMOqdHJlIHNww6ljaWZpw6kKK3BhciBsZSBjbGllbnQgREhDUC4gQWluc2ksIHMnaWwgeSBhIHBsdXMgZCd1bmUgcGxhZ2UgZCdhZHJlc3NlcyBESENQIHN1ciB1bgorc291cy1yw6lzZWF1LCBldCBxdWUgbCd1bmUgZXN0IHByw6lmaXjDqWUgcGFyIHVuIGlkZW50aWZpYW50IGRlIHLDqXNlYXUgKHBhciBleGVtcGxlCitsJ3VuIHNww6ljaWZpw6kgZGFucyB1bmUgb3B0aW9uIGRlIGNsYXNzZSBkZSB2ZW5kZXVyKSwgYWxvcnMgdW4gaMO0dGUgYXlhbnQKK2wnaWRlbnRpZmlhbnQgZGUgcsOpc2VhdSBlbiBxdWVzdGlvbiBwb3NpdGlvbm7DqSBzZSB2ZXJyYSBhbGxvdWVyIHVuZSBhZHJlc3NlIGRhbnMKK2xhIHBsYWdlIGQnYWRyZXNzZXMgREhDUCBwcsOpZml4w6llLgorLlBQIAorTGUgc2VydmV1ciBESENQIGludMOpZ3LDqSBkYW5zIERuc21hc3EgZm9uY3Rpb25uZSDDqWdhbGVtZW50IGVuIHRlbXBzIHF1ZSBzZXJ2ZXVyCitCT09UUCwgcG91ciBwZXUgcXVlIGwnYWRyZXNzZSBNQUMgZXQgbCdhZHJlc3NlIElQIGRlcyBjbGllbnRzIHNvaWVudCBmb3VybmllcywKK3F1ZSBjZSBzb2l0IHBhciBsZSBiaWFpcyBkZSBsJ29wdGlvbiAKKy5CIGRoY3AtaG9zdCAKK291IGRhbnMgbGUgZmljaGllcgorLkkgL2V0Yy9ldGhlcnMKKywgZXQgcXVlIGwnb3B0aW9uCisuQiBkaGNwLXJhbmdlIAorc29pdCBwcsOpc2VudGUgYWZpbiBkJ2FjdGl2ZXIgbGUgc2VydmV1ciBESENQIHBvdXIgdW4gcsOpc2VhdSBkb25uw6kgKEwnb3B0aW9uCisuQiAtLWJvb3RwLWR5bmFtaWMKK3N1cHByaW1lIGxhIG7DqWNlc3NpdMOpIGRlcyBhc3NvY2lhdGlvbnMgc3RhdGlxdWVzKS4gTGUgcGFyYW3DqHRyZQorImZpbGVuYW1lIiAobm9tIGRlIGZpY2hpZXIpIGRlIGxhIHJlcXXDqnRlIEJPT1RQIGVzdCBjb21wYXLDqSBhdmVjIGxlcworaWRlbnRpZmlhbnRzIGRlIHLDqXNlYXV4IGRlcyBvcHRpb25zCisuQiAgZGhjcC1vcHRpb24gCithaW5zaSBxdWUgbGUgbGFiZWwgImJvb3RwIiwgY2UgcXVpIHBlcm1ldCBkZSBjb250csO0bGVyIGxlcyBvcHRpb25zIHJldG91cm7DqWVzCithdXggZGlmZsOpcmVudGVzIGNsYXNzZXMgZCdow7R0ZXMuCisKKy5TSCBDT0RFUyBERSBTT1JUSUUKKy5QUAorMCAtIERuc21hc3Egcydlc3QgY29ycmVjdGVtZW50IGxhbmPDqSBlbiB0w6JjaGUgZGUgZm9uZCwgb3UgYWxvcnMgcydlc3QKK2NvcnJlY3RlbWVudCB0ZXJtaW7DqSBzaSBsZSBsYW5jZW1lbnQgZW4gdMOiY2hlIGRlIGZvbmQgbidhIHBhcyDDqXTDqSBhY3RpdsOpLgorLlBQCisxIC0gVW4gcHJvYmzDqG1lIGRlIGNvbmZpZ3VyYXRpb24gYSDDqXTDqSBkw6l0ZWN0w6kuCisuUFAKKzIgLSBVbiBwcm9ibMOobWUgZXN0IHN1cnZlbnUgYXZlYyB1biBhY2PDqHMgcsOpc2VhdSAoYWRyZXNzZSBkw6lqw6AgdXRpbGlzw6llLAordGVudGF0aXZlIGQndXRpbGlzZXIgdW4gcG9ydCBwcml2aWzDqWdpw6kgc2FucyBsZXMgcGVybWlzc2lvbnMgbsOpY2Vzc2FpcmVzKS4KKy5QUAorMyAtIFVuIHByb2Jsw6htZSBlc3Qgc3VydmVudSBhdmVjIHVuZSBvcMOpcmF0aW9uIHN1ciB1biBzeXN0w6htZSBkZSBmaWNoaWVyCisoZmljaGllciBvdSByw6lwZXJ0b2lyZSBtYW5xdWFudCwgcGVybWlzc2lvbnMpLgorLlBQCis0IC0gSW1wb3NzaWJpbGl0w6kgZCdhbGxvdWVyIGRlIGxhIG3DqW1vaXJlLgorLlBQCis1IC0gQXV0cmUgcHJvYmzDqG1lLgorLlBQCisxMSBvdSBwbHVzIC0gdW4gY29kZSBkZSByZXRvdXIgZGlmZsOpcmVudCBkZSAwIGEgw6l0w6kgcmXDp3UgbG9ycyBkZSBsJ2FwcGVsIGF1Citwcm9jZXNzdXMgImluaXQiIGR1IHNjcmlwdCBkZXMgYmFpbHMuIExlIGNvZGUgZGUgcmV0b3VyIGRlIERuc21hc3EgY29ycmVzcG9uZAorYXUgY29kZSBkZSByZXRvdXIgZHUgc2NyaXB0IHBsdXMgMTAuCisKKy5TSCBMSU1JVEVTCitMZXMgdmFsZXVycyBwYXIgZMOpZmF1dCBwb3VyIGxlcyBsaW1pdGVzIGRlIHJlc3NvdXJjZXMgZGUgRG5zbWFzcSBzb250IGVuIGfDqW7DqXJhbAorY29uc2VydmF0cmljZXMgZXQgYXBwcm9wcmnDqWVzIHBvdXIgZGVzIHV0aWxpc2F0aW9ucyBlbWJhcnF1w6llcyBzdXIgZGVzIG1hY2hpbmVzCitkZSB0eXBlIHJvdXRldXIgYXlhbnQgZGVzIHByb2Nlc3NldXJzIGxlbnRzIGV0IHVuZSBtw6ltb2lyZSBsaW1pdMOpZS4gU3VyIGR1CittYXTDqXJpZWwgcGx1cyBwZXJmb3JtYW50LCBpbCBlc3QgcG9zc2libGUgZCdhdWdtZW50ZXIgbGVzIGxpbWl0ZXMgZXQgZGUgZ8OpcmVyCitwbHVzIGRlIGNsaWVudHMuIExlcyByZW1hcnF1ZXMgc3VpdmFudGVzIHMnYXBwbGlxdWVudCDDoCBEbnNtYXNxIHZlcnNpb24gMi4zNyBldAordWx0w6lyaWV1ciA6IGxlcyB2ZXJzaW9ucyBwcsOpY8OpZGVudGVzIG5lIG1vbnRhaWVudCBwYXMgZW4gY2hhcmdlIGF1c3NpIGJpZW4uCisgCisuUFAKK0Ruc21hc3EgZXN0IGNhcGFibGUgZGUgZ8OpcmVyIGxlIEROUyBldCBESENQIHBvdXIgYXUgbW9pbnMgdW4gbWlsbGllciBkZSBjbGllbnRzLgorRXZpZGVtZW50LCBwb3VyIGNlbGEgbGEgdmFsZXVyIGRlIAorLkIgLS1kaGNwLWxlYXNlLW1heAorZG9pdCDDqnRyZSBhdWdtZW50w6llIGV0IGxhIGR1csOpZSBkZXMgYmF1eCBuZSBkb2l0IHBhcyDDqnRyZSB0csOocyBjb3VydGUgKG1vaW5zCitkJ3VuZSBoZXVyZSkuIExhIHZhbGV1ciBkZQorLkIgLS1kbnMtZm9yd2FyZC1tYXggCitwZXV0LcOqdHJlIGF1Z21lbnTDqWUgOiBjb21tZW5jZXIgcGFyIGxhIHJlbmRyZSDDqWdhbGUgYXUgbm9tYnJlIGRlIGNsaWVudHMgZXQKK2wnYXVnbWVudGVyIHNpIGxlIEROUyBzZW1ibGUgbGVudC4gTm90ZXIgcXVlIGxhIHBlcmZvcm1hbmNlIGR1IEROUyBkw6lwZW5kcworw6lnYWxlbWVudCBkZSBsYSBwZXJmb3JtYW5jZSBkZXMgc2VydmV1cnMgYW1vbnRzLiBMYSB0YWlsbGUgZHUgY2FjaGUgRE5TIHBldXQtCivDqnRyZSBhdWdtZW50w6llIDogbGEgbGltaXRlIGVuIGR1ciBlc3QgZGUgMTAwMDAgZW50csOpZXMgZXQgbGEgdmFsZXVyIHBhciBkw6lmYXV0CisoMTUwKSBlc3QgdHLDqHMgYmFzc2UuIEVudm95ZXIgdW4gc2lnbmFsIFNJR1VTUjEgw6AgRG5zbWFzcSBsZSBmYWl0IMOpbWV0dHJlIGRlcworaW5mb3JtYXRpb25zIHV0aWxlcyBwb3VyIHBhcmFtw6l0cmVyIGxhIHRhaWxsZSBkZSBjYWNoZS4gVm9pciBsYSBzZWN0aW9uCisuQiBOT1RFUworcG91ciBwbHVzIGRlIGTDqXRhaWxzLgorLlBQCitMZSBzZXJ2ZXVyIFRGVFAgaW50w6lncsOpIGVzdCBjYXBhYmxlIGRlIHBsdXNpZXVycyB0cmFuc2ZlcnRzIGRlIGZpY2hpZXJzCitzaW11bHRhbsOpcyA6IExhIGxpbWl0ZSBhYnNvbHVlIGVzdCBsacOpZSBhdSBub21icmUgbWF4aW1hbCBkZSBkZXNjcmlwdGV1cnMgZGUKK2ZpY2hpZXJzIGFsbG91w6kgw6AgdW4gcHJvY2Vzc3VzIGV0IMOgIGxhIGNhcGFjaXTDqSBkZSBsJ2FwcGVsIHN5c3TDqG1lIHNlbGVjdCgpIMOgCitnw6lyZXIgdW4gZ3JhbmQgbm9tYnJlIGRlIEhBTkRMRSBkZSBmaWNoaWVyLiBTaSBsYSBsaW1pdGUgZXN0IGZpeMOpZSB0cm9wIGhhdXQgcGFyCitsZSBiaWFpcyBkZQorLkIgLS10ZnRwLW1heAorZWxsZSBzZXJhIHLDqWR1aXRlIGV0IGxhIGxpbWl0ZSBhY3R1ZWxsZSBzZXJhIGVucmVnaXN0csOpZSBhdSBkw6ltYXJyYWdlLiBJbCBmYXV0Citub3RlciBxdWUgcGx1cyBkZSB0cmFuc2ZlcnRzIHNvbnQgcG9zc2libGUgbG9yc3F1ZSBsZSBtw6ptZSBmaWNoaWVyIGVzdCB0cmFuc21pcworYXUgbGlldSBkJ2F2b2lyIHVuIGZpY2hpZXIgZGlmZsOpcmVudCBwb3VyIGNoYXF1ZSB0cmFuc2ZlcnQuCisKKy5QUAorSWwgZXN0IHBvc3NpYmxlIGQndXRpbGlzZXIgRG5zbWFzcSBwb3VyIGJsb3F1ZXIgbGEgcHVibGljaXTDqSBzdXIgbGEgdG9pbGUKK2VuIGFzc29jaWFudCBkZXMgc2VydmV1cnMgZGUgcHVibGljaXTDqSBiaWVuIGNvbm51cyDDoCBsJ2FkcmVzc2UgMTI3LjAuMC4xIG91CiswLjAuMC4wIHBhciBsZSBiaWFpcyBkdSBmaWNoaWVyCisuQiAvZXRjL2hvc3RzIAorb3UgZCd1biBmaWNoaWVyIGQnaMO0dGUgYWRkaXRpb25uZWwuIENldHRlIGxpc3RlIHBldXQtw6p0cmUgdHLDqHMgbG9uZ3VlLCBEbnNtYXNxCitheWFudCDDqXTDqSB0ZXN0w6kgYXZlYyBzdWNjw6hzIGF2ZWMgdW4gbWlsbGlvbiBkZSBub21zLiBDZXR0ZSB0YWlsbGUgZGUgZmljaGllcgorbsOpY2Vzc2l0ZSB1biBwcm9jZXNzZXVyIMOgIDEgR2h6IGV0IGVudmlyb24gNjAgTW8gZGUgUkFNLgorCisuU0ggRklDSElFUlMKKy5JUiAvZXRjL2Ruc21hc3EuY29uZiAKKworLklSIC91c3IvbG9jYWwvZXRjL2Ruc21hc3EuY29uZgorCisuSVIgL2V0Yy9yZXNvbHYuY29uZgorCisuSVIgL2V0Yy9ob3N0cworCisuSVIgL2V0Yy9ldGhlcnMKKworLklSIC92YXIvbGliL21pc2MvZG5zbWFzcS5sZWFzZXMgCisKKy5JUiAvdmFyL2RiL2Ruc21hc3EubGVhc2VzCisKKy5JUiAvdmFyL3J1bi9kbnNtYXNxLnBpZAorLlNIIFZPSVIgQVVTU0kKKy5CUiBob3N0cyAoNSksIAorLkJSIHJlc29sdmVyICg1KQorLlNIIEFVVEVVUgorQ2V0dGUgcGFnZSBkZSBtYW51ZWwgYSDDqXTDqSDDqWNyaXRlIHBhciBTaW1vbiBLZWxsZXkgPHNpbW9uQHRoZWtlbGxleXMub3JnLnVrPi4KKworTGEgdHJhZHVjdGlvbiBkYW5zIHVuIGZyYW7Dp2FpcyBiYW5jYWwgYSDDqXTDqSBjb21taXNlIHBhciBHaWxkYXMgTGUgTmFkYW4KKzwzbnRyMHAxM0BnbWFpbC5jb20+IDogVG91dGUgcsOpdmlzaW9uL2NvcnJlY3Rpb24gcGVybWV0dGFudCBkZSBjb3JyaWdlcgorb3J0aG9ncmFwaGUgb3UgZ3JhbW1haXJlIG1haXMgc3VydG91dCBsZXMgw6l2ZW50dWVsbGVzIGZhdXRlcyBkZSBzZW5zIHNlcmEgbGEKK2JpZW52ZW51ZSEKZGlmZiAtLWdpdCBhL3BvL2RlLnBvIGIvcG8vZGUucG8KaW5kZXggMjY4ZjA1Mi4uNDYyYTUwNiAxMDA2NDQKLS0tIGEvcG8vZGUucG8KKysrIGIvcG8vZGUucG8KQEAgLTYsNyArNiw3IEBACiBtc2dzdHIgIiIKICJQcm9qZWN0LUlkLVZlcnNpb246IGRuc21hc3EgMi4yNFxuIgogIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwNy0wOC0yOSAxMTowOSswMTAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDgtMDItMTIgMTE6MDQrMDAwMFxuIgogIlBPLVJldmlzaW9uLURhdGU6IDIwMDUtMDktMjcgMDk6MzcrMDEwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogU2ltb24gS2VsbGV5IDxzaW1vbkB0aGVrZWxsZXlzLm9yZy51az5cbiIKICJMYW5ndWFnZS1UZWFtOiBHZXJtYW4gPGRlQGxpLm9yZz5cbiIKQEAgLTE1LDM3ICsxNSwzNyBAQAogIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKICJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKIAotIzogY2FjaGUuYzo2NzEKKyM6IGNhY2hlLmM6NjgwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsb2FkIG5hbWVzIGZyb20gJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IGNhY2hlLmM6NzA1IGRoY3AuYzo3MTcKKyM6IGNhY2hlLmM6NzE0IGRoY3AuYzo3NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIGFkZHJlc3MgYXQgJXMgbGluZSAlZCIKIG1zZ3N0ciAiIgogCiAjIEBTaW1vbjogSGVyZSBJIG5lZWQgYW4gZXhhbXBsZSB0byB1bmRlcnN0YW5kIGl0IDopCi0jOiBjYWNoZS5jOjc1MiBkaGNwLmM6NzMxCisjOiBjYWNoZS5jOjc2MSBkaGNwLmM6NzcxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBuYW1lIGF0ICVzIGxpbmUgJWQiCiBtc2dzdHIgIiIKIAogIyBAU2ltb246IEhlcmUgSSBuZWVkIGFuIGV4YW1wbGUgdG8gdW5kZXJzdGFuZCBpdCA6KQotIzogY2FjaGUuYzo3NTkgZGhjcC5jOjc4NQorIzogY2FjaGUuYzo3NjggZGhjcC5jOjgyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWFkICVzIC0gJWQgYWRkcmVzc2VzIgogbXNnc3RyICJsZXNlICVzIC0gJWQgQWRyZXNzZW4iCiAKICMgQFNpbW9uOiAnbGVzZScgaXMgcHJlc2VudCwgaXMgdGhhdCBvaz8gSWYgaXQgc2hvdWxkIGJlIHBhc3QsIGl0IHdvdWxkIGJlCiAjIEBTaW1vbjogImdlbGVzZW46ICVzIC0gJWQgQWRyZXNzZW4iIC0gbm90ZSB0aGUgY29sb24sIGl0J3MgYSBtdXN0LCB0aGVuLgotIzogY2FjaGUuYzo3OTcKKyM6IGNhY2hlLmM6ODA2CiBtc2dpZCAiY2xlYXJlZCBjYWNoZSIKIG1zZ3N0ciAiQ2FjaGUgZ2VsZWVydCIKIAogIyBAU2ltb246ICJDYWNoZSBnZWxlZXJ0IiBpcyBsaXRlcmFsbHkgIkNhY2hlIGVtcHRpZWQiIGJ1dCBJIHRoaW5rIG90aGVyIHRyYW5zbGF0aW9ucyBjb3VsZCBiZSBtaXNsZWFkaW5nCiAjIEBTaW1vbjogKEkgZG9uJ3Qga25vdyBhIGdvb2QgZ2VybWFuIHJlcGxhY2VtZW50IGZvciAiQ2FjaGUiIGJ1dCBBRkFJSyAiQ2FjaGUiIGlzIGNvbW1vbiBpbiBnZXJtYW4pCi0jOiBjYWNoZS5jOjg0NAorIzogY2FjaGUuYzo4NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdCBnaXZpbmcgbmFtZSAlcyB0byB0aGUgREhDUCBsZWFzZSBvZiAlcyBiZWNhdXNlIHRoZSBuYW1lIGV4aXN0cyBpbiAlcyAiCkBAIC01NCw1NyArNTQsNzAgQEAKICJOYW1lICVzIHd1cmRlIG5pY2h0IGRlbSBESENQICdNaWV0ZXInIHZvbiAlcyB6dWdld2llc2VuLCBkYSBkZXIgTmFtZSBpbiAlIgogInNtaXQgZGVyIEFkcmVzc2UgJXMgYmVyZWl0cyBleGlzdGllcnQiCiAKKyM6IGNhY2hlLmM6OTA3CisjLCBjLWZvcm1hdAorbXNnaWQgInRpbWUgJWx1IgorbXNnc3RyICIiCisKICMgQFNpbW9uOiAiTWlldGVyIiBpcyByYXRoZXIgJ2xvZ2RlciwgcmVudGVyLCB0ZW5hbnQsIGxlc3NlZScgYnV0IEkgY291bGRuJ3QgZmluZCBhbnl0aGluZyB0aGF0IGZpdHMgYmV0dGVyLgogIyBAU2ltb246IFNvIEkgdGhvdWdodCBJIHB1dCBpdCBpbiAnJy1tYXJrcyA6KQotIzogY2FjaGUuYzo4ODQKKyM6IGNhY2hlLmM6OTA4CiAjLCBmdXp6eSwgYy1mb3JtYXQKLW1zZ2lkICIiCi0idGltZSAlbHUsIGNhY2hlIHNpemUgJWQsICVkLyVkIGNhY2hlIGluc2VydGlvbnMgcmUtdXNlZCB1bmV4cGlyZWQgY2FjaGUgIgotImVudHJpZXMuIgorbXNnaWQgImNhY2hlIHNpemUgJWQsICVkLyVkIGNhY2hlIGluc2VydGlvbnMgcmUtdXNlZCB1bmV4cGlyZWQgY2FjaGUgZW50cmllcy4iCiBtc2dzdHIgIiIKICJDYWNoZSBHcsO2w59lICVkLCAlZC8lZCBDYWNoZS1FaW5mw7xndW5nZW4gdmVyd2VuZGV0ZW4gbmljaHQgYWJnZWxhdWZlbmUgQ2FjaGUtIgogIkVpbnRyw6RnZSB3aWVkZXIuIgogCisjOiBjYWNoZS5jOjkxMAorIywgYy1mb3JtYXQKK21zZ2lkICJxdWVyaWVzIGZvcndhcmRlZCAldSwgcXVlcmllcyBhbnN3ZXJlZCBsb2NhbGx5ICV1IgorbXNnc3RyICIiCisKKyM6IGNhY2hlLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlcnZlciAlcyMlZDogcXVlcmllcyBzZW50ICV1LCByZXRyaWVkIG9yIGZhaWxlZCAldSIKK21zZ3N0ciAiIgorCiAjIEBTaW1vbjogInJlLXVzZWQiID0gIndpZWRlcnZlcndlbmRlbiIsIGJ1dCBpbiBzdWNoIGEgY2FzZSBpdCBtdXN0IGJlIHNwbGl0IGFwYXJ0IHRvICJ2ZXJ3ZW5kZXQgLi4uIHdpZWRlciIKICMgQFNpbW9uOiAidW5leHBpcmVkIiA9ICJuaWNodCBhYmdlbGF1ZmVuIiAoZXhwaXJlZD1hYmdlbGF1ZmVuKSAtLSBhbHRvZ2V0aGVyIGl0IHNvdW5kcyBjb21wbGljYXRlZCBpbiBnZXJtYW4sCiAjIEBTaW1vbjogSSB3b3VsZCBwcmVmZXIgdG8gdXNlICJub2NoIGfDvGx0aWdlIiA9ICJzdGlsbCB2YWxpZCIsIHdvdWxkIHRoYXQgZml0IHRvIHRoZSBzZW5zZT8gVGhlbiBpdCB3b3VsZCBiZToKICMgQFNpbW9uOiBtc2dzdHIgIkNhY2hlIEdyw7bDn2UgJWQsICVkLyVkIENhY2hlLUVpbmbDvGd1bmdlbiB2ZXJ3ZW5kZXRlbiBub2NoIGfDvGx0aWdlIENhY2hlLUVpbnRyw6RnZSB3aWVkZXIuIgogIyBAU2ltb246IGJ0dywgd2hhdCBpcyB0aGUgIiVkLyVkIi1wYXJ0PwotIzogdXRpbC5jOjE1NyBvcHRpb24uYzo3NTgKKyM6IHV0aWwuYzoxNjAKIG1zZ2lkICJjb3VsZCBub3QgZ2V0IG1lbW9yeSIKIG1zZ3N0ciAiU3BlaWNoZXIgbmljaHQgdmVyZsO8Z2JhciIKIAotIzogdXRpbC5jOjE2NworIzogdXRpbC5jOjE3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgJWQgYnl0ZXMiCiBtc2dzdHIgIiIKIAogIyBAU2ltb246IG5vdCBwZXJmZWN0IGJ1dCBJIGNhbm5vdCBnZXQgbmVhcmVyIHJpZ2h0IG5vdy4KLSM6IHV0aWwuYzoyNzIKKyM6IHV0aWwuYzoyNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5maW5pdGUiCiBtc2dzdHIgInVuZW5kbGljaCIKIAotIzogb3B0aW9uLmM6MTg4CisjOiBvcHRpb24uYzoyNDQKIG1zZ2lkICJTcGVjaWZ5IGxvY2FsIGFkZHJlc3MoZXMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIkxva2FsZSBhYnp1aMO2cmVuZGUgQWRyZXNzZShuKSBhbmdlYmVuLiIKIAogIyBAU2ltb246IFF1aXRlIGxpdGVyYWwgdHJhbnNsYXRpb24sIHNvdW5kcyBub3QgdG9vIHBvbGl0ZSBpbiBnZXJtYW4uCiAjIEBTaW1vbjogSG93IGFib3V0OiAiQml0dGUgZGllIGxva2FsZW4gYWJ6dWjDtnJlbmRlIEFkcmVzc2UobikgYW5nZWJlbi4iCiAjIEBTaW1vbjogPSAiUGxlYXNlIHNwZWNpZnkgdGhlIGxvY2FsIGFkZHJlc3MoZXMpIHRvIGxpc3RlbiBvbi4iCi0jOiBvcHRpb24uYzoxODkKKyM6IG9wdGlvbi5jOjI0NQogbXNnaWQgIlJldHVybiBpcGFkZHIgZm9yIGFsbCBob3N0cyBpbiBzcGVjaWZpZWQgZG9tYWlucy4iCiBtc2dzdHIgIlLDvGNra2Voci1JUC1BZHJlc3NlIGbDvHIgYWxsZSBHZXLDpHRlIGluIGFuZ2ViZW5lbiBEb23DpG5lbiIKIAogIyBAU2ltb246IEkgaG9wZSAiUmV0dXJuIGlwYWRkciIgaXMgc2ltaWxhciB0byAiUmV0dXJuLWlwYWRkciIgYW5kIG5vdCAiUmV0dXJuIHRoZSBpcGFkZHIgLi4uICEiCi0jOiBvcHRpb24uYzoxOTAKKyM6IG9wdGlvbi5jOjI0NgogbXNnaWQgIkZha2UgcmV2ZXJzZSBsb29rdXBzIGZvciBSRkMxOTE4IHByaXZhdGUgYWRkcmVzcyByYW5nZXMuIgogbXNnc3RyICIiCiAiJ0dlZsOkbHNjaHRlJyBSw7xja3fDpHJ0cy1FcmdlYm5pc3NlIGbDvHIgcHJpdmF0ZSBBZHJlc3NiZXJlaWNoZSBuYWNoIFJGQzE5MTgiCiAKICMgQFNpbW9uOiBJJ20gYSBiaXQgdW5zdXJlIGFib3V0IHRoZSBtZWFuaW5nIG9mICJGYWtlIiBoZXJlLCBhbmQgdGhlIGJlc3Qgd29yZCBmb3IgImxvb2t1cCIgaXMgIk5hY2hzZWhlbiIgCiAjIEBTaW1vbjogKHRoYXQgaXMgImxvb2tpbmctZm9yIikgYnV0IEkgdGhpbmsgdGhhdCBjYW5ub3QgYmUgdXNlZC4gIkVyZ2Vibmlzc2UiID0gInJlc3VsdHMiLCBpcyB0aGF0IG5lYXIgZW5vdWdoPwotIzogb3B0aW9uLmM6MTkxCisjOiBvcHRpb24uYzoyNDcKIG1zZ2lkICJUcmVhdCBpcGFkZHIgYXMgTlhET01BSU4gKGRlZmVhdHMgVmVyaXNpZ24gd2lsZGNhcmQpLiIKIG1zZ3N0ciAiQmVoYW5kbGUgSVAtQWRyIGFscyBOWERPTUFJTiAod2VocnQgVmVyaXNpZ24tUGxhdHpoYWx0ZXIgYWIpLiIKIApAQCAtMTE1LDE3ICsxMjgsMTcgQEAKICMgQFNpbW9uOiAgICJCZWhhbmRsZSBJUC1BZHIgYWxzIE5YRE9NQUlOIChnZWdlbiBWZXJpc2lnbnMgUGxhdHpoYWx0ZXItR2VicmF1Y2gpLiIKICMgQFNpbW9uOiA9ICJUcmVhdCBpcGFkZHIgYXMgTlhET01BSU4gKGRlZmVhdHMgVmVyaXNpZ25zIHdpbGRjYXJkIHVzYWdlKS4iID8KICMgQFNpbW9uOiBCdXQgdGhlIGV4cGxhbmF0b3J5KD8pIGVmZmVjdCBpcyBvbmx5IGEgdmVyeSB0aW55IGJpdCBiZXR0ZXIsIEkgYmVsaWV2ZSAtIHdoYXQgZG8gVSB0aGluaz8gCi0jOiBvcHRpb24uYzoxOTIKKyM6IG9wdGlvbi5jOjI0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBjYWNoZSBpbiBlbnRyaWVzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJBbmdhYmUgZGVyIEdyw7bDn2UgZGVzIENhY2hlcyBpbiBFaW50csOkZ2VuIChWb3JlaW5zdGVsbHVuZzogJXMpLiIKIAotIzogb3B0aW9uLmM6MTkzCisjOiBvcHRpb24uYzoyNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBjb25maWd1cmF0aW9uIGZpbGUgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIkFuZ2FiZSBkZXIgS29uZmlndXJhdGlvbnNkYXRlaSAoVm9yZWluc3RlbGx1bmc6ICVzKS4iCiAKLSM6IG9wdGlvbi5jOjE5NAorIzogb3B0aW9uLmM6MjUwCiBtc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZDogcnVuIGluIGRlYnVnIG1vZGUuIgogbXNnc3RyICJOSUNIVCBpbiBkZW4gSGludGVyZ3J1bmQgZ2VoZW46IEJldHJpZWIgaW0gRGVidWctTW9kdXMiCiAKQEAgLTEzMyw0NzkgKzE0Niw1MjMgQEAKICMgQFNpbW9uOiBJIGtub3cgaXQgc291bmRzIGEgYml0IGNsdW1zeSBpbiBlbmdsaXNoLCBidXQgImZvcmsiIHdvdWxkIGJlIGhhcmQgdG8gdW5kZXJzdGFuZAogIyBAU2ltb246IGFuZCB0aGVuIEkgZ2V0IGEgcHJvYmxlbSBiZXR3ZWVuICJnbyIgYW5kICJydW4iIC0gc28uLi4KICMgQFNpbW9uOiAiRGVidWctbW9kZSIgPSAiRmVobGVyc3VjaC1Nb2R1cyIsIGxpdGVyYWxseSwgYnV0IEkgdGhpbmsgIkRlYnVnLU1vZHVzIiBpcyBiZXR0ZXIgOikKLSM6IG9wdGlvbi5jOjE5NQorIzogb3B0aW9uLmM6MjUxCiBtc2dpZCAiRG8gTk9UIGZvcndhcmQgcXVlcmllcyB3aXRoIG5vIGRvbWFpbiBwYXJ0LiIKIG1zZ3N0ciAiQW5mcmFnZW4gb2huZSBEb23DpG5lbi1UZWlsIE5JQ0hUIHdlaXRlcnNjaGlja2VuIgogCiAjIEBTaW1vbjogIndlaXRlcnNjaGlja2VuIiBpcyByYXRoZXIgInBhc3Mgb24iIChJIGhvcGUpIGJ1dCB0aGF0J3MgdGhlIGJlc3QgSSBmb3VuZC4KLSM6IG9wdGlvbi5jOjE5NgorIzogb3B0aW9uLmM6MjUyCiBtc2dpZCAiUmV0dXJuIHNlbGYtcG9pbnRpbmcgTVggcmVjb3JkcyBmb3IgbG9jYWwgaG9zdHMuIgogbXNnc3RyICJSw7xja2dhYmUgYXVmIHNpY2ggc2VsYnN0IHplaWdlbmRlciBNWC1FaW50csOkZ2UgZsO8ciBsb2thbGUgR2Vyw6R0ZSIKIAogIyBAU2ltb246ICJzZWxmLXBvaW50aW5nIiBpcyBhIGJpdCBkaWZmaWN1bHQsIHRoZSBtZWFuaW5nIGlzIGNsZWFyIGJ1dCB0YWtlcyAzLTQgd29yZHMgdG8gZXhwcmVzcyBpdCBpbiBnZXJtYW4uCiAjIEBTaW1vbjogIkdlcsOkdGUiIGlzIGFib3V0ICJoYXJkLWRldmljZXMiLiBUaGVyZSBpcyBhIHdvcmQgZm9yICJob3N0IiAoaXQgaXMgIldpcnQiKSBidXQgaXQgd291bGQgYmUgbWlzbGVhZGluZy4KICMgQFNpbW9uOiBNeSBvbmxpbmUgZGljdCBzdWdnZXN0ICJSZWNobmVyIiAoPSBDb21wdXRlciksIGJ1dCBJIHRoaW5rICJoYXJkLWRldmljZXMiIGlzIGJldHRlciBiZWNhdXNlIGl0J3MgbW9yZSBnZW5lcmFsLgotIzogb3B0aW9uLmM6MTk3CisjOiBvcHRpb24uYzoyNTMKIG1zZ2lkICJFeHBhbmQgc2ltcGxlIG5hbWVzIGluIC9ldGMvaG9zdHMgd2l0aCBkb21haW4tc3VmZml4LiIKIG1zZ3N0ciAiRXJ3ZWl0ZXJlIGVpbmZhY2hlIE5hbWVuIGluIC9ldGMvaG9zdHMgbWl0IGRlciBEb23DpG5lbi1FbmR1bmciCiAKLSM6IG9wdGlvbi5jOjE5OAorIzogb3B0aW9uLmM6MjU0CiBtc2dpZCAiRG9uJ3QgZm9yd2FyZCBzcHVyaW91cyBETlMgcmVxdWVzdHMgZnJvbSBXaW5kb3dzIGhvc3RzLiIKIG1zZ3N0ciAiJ3VuZWNodGUnIEROUy1BbmZyYWdlbiB2b24gV2luZG93cy1SZWNobmVybiBuaWNodCB3ZWl0ZXJsZWl0ZW4iCiAKICMgQFNpbW9uOiBJJ20gYSBiaXQgdW5zdXJlIGFib3V0ICJzcHVyaW91cyIKLSM6IG9wdGlvbi5jOjE5OQorIzogb3B0aW9uLmM6MjU1CiBtc2dpZCAiRW5hYmxlIERIQ1AgaW4gdGhlIHJhbmdlIGdpdmVuIHdpdGggbGVhc2UgZHVyYXRpb24uIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMAorIzogb3B0aW9uLmM6MjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoYW5nZSB0byB0aGlzIGdyb3VwIGFmdGVyIHN0YXJ0dXAgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjAxCisjOiBvcHRpb24uYzoyNTcKIG1zZ2lkICJTZXQgYWRkcmVzcyBvciBob3N0bmFtZSBmb3IgYSBzcGVjaWZpZWQgbWFjaGluZS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjAyCisjOiBvcHRpb24uYzoyNTgKIG1zZ2lkICJSZWFkIERIQ1AgaG9zdCBzcGVjcyBmcm9tIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjAzCi0jLCBjLWZvcm1hdAotbXNnaWQgIkRvIE5PVCBsb2FkICVzIGZpbGUuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIwNAotIywgYy1mb3JtYXQKLW1zZ2lkICJTcGVjaWZ5IGEgaG9zdHMgZmlsZSB0byBiZSByZWFkIGluIGFkZGl0aW9uIHRvICVzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMDUKLW1zZ2lkICJTcGVjaWZ5IGludGVyZmFjZShzKSB0byBsaXN0ZW4gb24uIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIwNgotbXNnaWQgIlNwZWNpZnkgaW50ZXJmYWNlKHMpIE5PVCB0byBsaXN0ZW4gb24uIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIwNwotbXNnaWQgIk1hcCBESENQIHVzZXIgY2xhc3MgdG8gdGFnLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMDgKLW1zZ2lkICJNYXAgUkZDMzA0NiBjaXJjdWl0LWlkIHRvIHRhZy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjA5Ci1tc2dpZCAiTWFwIFJGQzMwNDYgcmVtb3RlLWlkIHRvIHRhZy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjEwCi1tc2dpZCAiTWFwIFJGQzM5OTMgc3Vic2NyaWJlci1pZCB0byB0YWcuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxMQotbXNnaWQgIkRvbid0IGRvIERIQ1AgZm9yIGhvc3RzIHdpdGggdGFnIHNldC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjEyCi1tc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZCwgZG8gTk9UIHJ1biBpbiBkZWJ1ZyBtb2RlLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTMKLW1zZ2lkICJBc3N1bWUgd2UgYXJlIHRoZSBvbmx5IERIQ1Agc2VydmVyIG9uIHRoZSBsb2NhbCBuZXR3b3JrLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiU3BlY2lmeSB3aGVyZSB0byBzdG9yZSBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTUKLW1zZ2lkICJSZXR1cm4gTVggcmVjb3JkcyBmb3IgbG9jYWwgaG9zdHMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxNgotbXNnaWQgIlNwZWNpZnkgYW4gTVggcmVjb3JkLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTcKLW1zZ2lkICJTcGVjaWZ5IEJPT1RQIG9wdGlvbnMgdG8gREhDUCBzZXJ2ZXIuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxOAotIywgYy1mb3JtYXQKLW1zZ2lkICJEbyBOT1QgcG9sbCAlcyBmaWxlLCByZWxvYWQgb25seSBvbiBTSUdIVVAuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxOQotbXNnaWQgIkRvIE5PVCBjYWNoZSBmYWlsZWQgc2VhcmNoIHJlc3VsdHMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyMAotIywgYy1mb3JtYXQKLW1zZ2lkICJVc2UgbmFtZXNlcnZlcnMgc3RyaWN0bHkgaW4gdGhlIG9yZGVyIGdpdmVuIGluICVzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjEKLW1zZ2lkICJTcGVjaWZ5IG9wdGlvbnMgdG8gYmUgc2VudCB0byBESENQIGNsaWVudHMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyMgotbXNnaWQgIkRIQ1Agb3B0aW9uIHNlbnQgZXZlbiBpZiB0aGUgY2xpZW50IGRvZXMgbm90IHJlcXVlc3QgaXQuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyMwotbXNnaWQgIlNwZWNpZnkgcG9ydCB0byBsaXN0ZW4gZm9yIEROUyByZXF1ZXN0cyBvbiAoZGVmYXVsdHMgdG8gNTMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiTWF4aW11bSBzdXBwb3J0ZWQgVURQIHBhY2tldCBzaXplIGZvciBFRE5TLjAgKGRlZmF1bHRzIHRvICVzKS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjI1Ci1tc2dpZCAiTG9nIHF1ZXJpZXMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyNgotbXNnaWQgIkZvcmNlIHRoZSBvcmlnaW5hdGluZyBwb3J0IGZvciB1cHN0cmVhbSBxdWVyaWVzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjcKLW1zZ2lkICJEbyBOT1QgcmVhZCByZXNvbHYuY29uZi4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjI4Ci0jLCBjLWZvcm1hdAotbXNnaWQgIlNwZWNpZnkgcGF0aCB0byByZXNvbHYuY29uZiAoZGVmYXVsdHMgdG8gJXMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjkKLW1zZ2lkICJTcGVjaWZ5IGFkZHJlc3MoZXMpIG9mIHVwc3RyZWFtIHNlcnZlcnMgd2l0aCBvcHRpb25hbCBkb21haW5zLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzAKLW1zZ2lkICJOZXZlciBmb3J3YXJkIHF1ZXJpZXMgdG8gc3BlY2lmaWVkIGRvbWFpbnMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIzMQotbXNnaWQgIlNwZWNpZnkgdGhlIGRvbWFpbiB0byBiZSBhc3NpZ25lZCBpbiBESENQIGxlYXNlcy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjMyCi1tc2dpZCAiU3BlY2lmeSBkZWZhdWx0IHRhcmdldCBpbiBhbiBNWCByZWNvcmQuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIzMwotbXNnaWQgIlNwZWNpZnkgdGltZS10by1saXZlIGluIHNlY29uZHMgZm9yIHJlcGxpZXMgZnJvbSAvZXRjL2hvc3RzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQ2hhbmdlIHRvIHRoaXMgdXNlciBhZnRlciBzdGFydHVwLiAoZGVmYXVsdHMgdG8gJXMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzUKLW1zZ2lkICJNYXAgREhDUCB2ZW5kb3IgY2xhc3MgdG8gdGFnLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzYKLW1zZ2lkICJEaXNwbGF5IGRuc21hc3EgdmVyc2lvbiBhbmQgY29weXJpZ2h0IGluZm9ybWF0aW9uLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzcKLW1zZ2lkICJUcmFuc2xhdGUgSVB2NCBhZGRyZXNzZXMgZnJvbSB1cHN0cmVhbSBzZXJ2ZXJzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzgKLW1zZ2lkICJTcGVjaWZ5IGEgU1JWIHJlY29yZC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM5Ci1tc2dpZCAiRGlzcGxheSB0aGlzIG1lc3NhZ2UuIFVzZSAtLWhlbHAgZGhjcCBmb3Iga25vd24gREhDUCBvcHRpb25zLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDAKLSMsIGZ1enp5LCBjLWZvcm1hdAotbXNnaWQgIlNwZWNpZnkgcGF0aCBvZiBQSUQgZmlsZSAoZGVmYXVsdHMgdG8gJXMpLiIKLW1zZ3N0ciAiQW5nYWJlIGRlciBLb25maWd1cmF0aW9uc2RhdGVpIChWb3JlaW5zdGVsbHVuZzogJXMpLiIKLQotIzogb3B0aW9uLmM6MjQxCi0jLCBjLWZvcm1hdAotbXNnaWQgIlNwZWNpZnkgbWF4aW11bSBudW1iZXIgb2YgREhDUCBsZWFzZXMgKGRlZmF1bHRzIHRvICVzKS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQyCi1tc2dpZCAiQW5zd2VyIEROUyBxdWVyaWVzIGJhc2VkIG9uIHRoZSBpbnRlcmZhY2UgYSBxdWVyeSB3YXMgc2VudCB0by4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQzCi1tc2dpZCAiU3BlY2lmeSBUWFQgRE5TIHJlY29yZC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQ0Ci1tc2dpZCAiU3BlY2lmeSBQVFIgRE5TIHJlY29yZC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQ1Ci1tc2dpZCAiR2l2ZSBETlMgbmFtZSB0byBJUHY0IGFkZHJlc3Mgb2YgaW50ZXJmYWNlLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDYKLW1zZ2lkICJCaW5kIG9ubHkgdG8gaW50ZXJmYWNlcyBpbiB1c2UuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI0NwotIywgYy1mb3JtYXQKLW1zZ2lkICJSZWFkIERIQ1Agc3RhdGljIGhvc3QgaW5mb3JtYXRpb24gZnJvbSAlcy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQ4Ci1tc2dpZCAiRW5hYmxlIHRoZSBEQnVzIGludGVyZmFjZSBmb3Igc2V0dGluZyB1cHN0cmVhbSBzZXJ2ZXJzLCBldGMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI0OQotbXNnaWQgIkRvIG5vdCBwcm92aWRlIERIQ1Agb24gdGhpcyBpbnRlcmZhY2UsIG9ubHkgcHJvdmlkZSBETlMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI1MAotbXNnaWQgIkVuYWJsZSBkeW5hbWljIGFkZHJlc3MgYWxsb2NhdGlvbiBmb3IgYm9vdHAuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI1MQotbXNnaWQgIk1hcCBNQUMgYWRkcmVzcyAod2l0aCB3aWxkY2FyZHMpIHRvIG9wdGlvbiBzZXQuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI1MwotbXNnaWQgIlRyZWF0IERIQ1AgcmVxdWVzdHMgb24gYWxpYXNlcyBhcyBhcnJpdmluZyBmcm9tIGludGVyZmFjZS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjU1Ci1tc2dpZCAiRGlzYWJsZSBJQ01QIGVjaG8gYWRkcmVzcyBjaGVja2luZyBpbiB0aGUgREhDUCBzZXJ2ZXIuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI1NgotbXNnaWQgIlNjcmlwdCB0byBydW4gb24gREhDUCBsZWFzZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24uIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI1NwotbXNnaWQgIlJlYWQgY29uZmlndXJhdGlvbiBmcm9tIGFsbCB0aGUgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI1OAotbXNnaWQgIkxvZyB0byB0aGlzIHN5c2xvZyBmYWNpbGl0eSBvciBmaWxlLiAoZGVmYXVsdHMgdG8gREFFTU9OKSIKLW1zZ3N0ciAiIgotCiAjOiBvcHRpb24uYzoyNTkKLW1zZ2lkICJSZWFkIGxlYXNlcyBhdCBzdGFydHVwLCBidXQgbmV2ZXIgd3JpdGUgdGhlIGxlYXNlIGZpbGUuIgorbXNnaWQgIlJlYWQgREhDUCBvcHRpb24gc3BlY3MgZnJvbSBmaWxlIgogbXNnc3RyICIiCiAKICM6IG9wdGlvbi5jOjI2MAogIywgYy1mb3JtYXQKLW1zZ2lkICJNYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IEROUyBxdWVyaWVzLiAoZGVmYXVsdHMgdG8gJXMpIgorbXNnaWQgIkRvIE5PVCBsb2FkICVzIGZpbGUuIgogbXNnc3RyICIiCiAKICM6IG9wdGlvbi5jOjI2MQogIywgYy1mb3JtYXQKLW1zZ2lkICJDbGVhciBETlMgY2FjaGUgd2hlbiByZWxvYWRpbmcgJXMuIgorbXNnaWQgIlNwZWNpZnkgYSBob3N0cyBmaWxlIHRvIGJlIHJlYWQgaW4gYWRkaXRpb24gdG8gJXMuIgogbXNnc3RyICIiCiAKICM6IG9wdGlvbi5jOjI2MgotbXNnaWQgIklnbm9yZSBob3N0bmFtZXMgcHJvdmlkZWQgYnkgREhDUCBjbGllbnRzLiIKK21zZ2lkICJTcGVjaWZ5IGludGVyZmFjZShzKSB0byBsaXN0ZW4gb24uIgogbXNnc3RyICIiCiAKICM6IG9wdGlvbi5jOjI2MwotbXNnaWQgIkVuYWJsZSBpbnRlZ3JhdGVkIHJlYWQtb25seSBURlRQIHNlcnZlci4iCittc2dpZCAiU3BlY2lmeSBpbnRlcmZhY2UocykgTk9UIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjY0Ci1tc2dpZCAiRXhwb3J0IGZpbGVzIGJ5IFRGVFAgb25seSBmcm9tIHRoZSBzcGVjaWZpZWQgc3VidHJlZS4iCittc2dpZCAiTWFwIERIQ1AgdXNlciBjbGFzcyB0byB0YWcuIgogbXNnc3RyICIiCiAKICM6IG9wdGlvbi5jOjI2NQotbXNnaWQgIkFkZCBjbGllbnQgSVAgYWRkcmVzcyB0byB0ZnRwLXJvb3QuIgorbXNnaWQgIk1hcCBSRkMzMDQ2IGNpcmN1aXQtaWQgdG8gdGFnLiIKIG1zZ3N0ciAiIgogCiAjOiBvcHRpb24uYzoyNjYKLW1zZ2lkICJBbGxvdyBhY2Nlc3Mgb25seSB0byBmaWxlcyBvd25lZCBieSB0aGUgdXNlciBydW5uaW5nIGRuc21hc3EuIgorbXNnaWQgIk1hcCBSRkMzMDQ2IHJlbW90ZS1pZCB0byB0YWcuIgogbXNnc3RyICIiCiAKICM6IG9wdGlvbi5jOjI2NworbXNnaWQgIk1hcCBSRkMzOTkzIHN1YnNjcmliZXItaWQgdG8gdGFnLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNjgKK21zZ2lkICJEb24ndCBkbyBESENQIGZvciBob3N0cyB3aXRoIHRhZyBzZXQuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI2OQorbXNnaWQgIkZvcmNlIGJyb2FkY2FzdCByZXBsaWVzIGZvciBob3N0cyB3aXRoIHRhZyBzZXQuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3MAorbXNnaWQgIkRvIE5PVCBmb3JrIGludG8gdGhlIGJhY2tncm91bmQsIGRvIE5PVCBydW4gaW4gZGVidWcgbW9kZS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjcxCittc2dpZCAiQXNzdW1lIHdlIGFyZSB0aGUgb25seSBESENQIHNlcnZlciBvbiB0aGUgbG9jYWwgbmV0d29yay4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjcyCisjLCBjLWZvcm1hdAorbXNnaWQgIlNwZWNpZnkgd2hlcmUgdG8gc3RvcmUgREhDUCBsZWFzZXMgKGRlZmF1bHRzIHRvICVzKS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjczCittc2dpZCAiUmV0dXJuIE1YIHJlY29yZHMgZm9yIGxvY2FsIGhvc3RzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzQKK21zZ2lkICJTcGVjaWZ5IGFuIE1YIHJlY29yZC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjc1Cittc2dpZCAiU3BlY2lmeSBCT09UUCBvcHRpb25zIHRvIERIQ1Agc2VydmVyLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzYKKyMsIGMtZm9ybWF0Cittc2dpZCAiRG8gTk9UIHBvbGwgJXMgZmlsZSwgcmVsb2FkIG9ubHkgb24gU0lHSFVQLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzcKK21zZ2lkICJEbyBOT1QgY2FjaGUgZmFpbGVkIHNlYXJjaCByZXN1bHRzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzgKKyMsIGMtZm9ybWF0Cittc2dpZCAiVXNlIG5hbWVzZXJ2ZXJzIHN0cmljdGx5IGluIHRoZSBvcmRlciBnaXZlbiBpbiAlcy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjc5Cittc2dpZCAiU3BlY2lmeSBvcHRpb25zIHRvIGJlIHNlbnQgdG8gREhDUCBjbGllbnRzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODAKK21zZ2lkICJESENQIG9wdGlvbiBzZW50IGV2ZW4gaWYgdGhlIGNsaWVudCBkb2VzIG5vdCByZXF1ZXN0IGl0LiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODEKK21zZ2lkICJTcGVjaWZ5IHBvcnQgdG8gbGlzdGVuIGZvciBETlMgcmVxdWVzdHMgb24gKGRlZmF1bHRzIHRvIDUzKS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjgyCisjLCBjLWZvcm1hdAorbXNnaWQgIk1heGltdW0gc3VwcG9ydGVkIFVEUCBwYWNrZXQgc2l6ZSBmb3IgRUROUy4wIChkZWZhdWx0cyB0byAlcykuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4MworbXNnaWQgIkxvZyBETlMgcXVlcmllcy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjg0Cittc2dpZCAiRm9yY2UgdGhlIG9yaWdpbmF0aW5nIHBvcnQgZm9yIHVwc3RyZWFtIEROUyBxdWVyaWVzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODUKK21zZ2lkICJEbyBOT1QgcmVhZCByZXNvbHYuY29uZi4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjg2CisjLCBjLWZvcm1hdAorbXNnaWQgIlNwZWNpZnkgcGF0aCB0byByZXNvbHYuY29uZiAoZGVmYXVsdHMgdG8gJXMpLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODcKK21zZ2lkICJTcGVjaWZ5IGFkZHJlc3MoZXMpIG9mIHVwc3RyZWFtIHNlcnZlcnMgd2l0aCBvcHRpb25hbCBkb21haW5zLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODgKK21zZ2lkICJOZXZlciBmb3J3YXJkIHF1ZXJpZXMgdG8gc3BlY2lmaWVkIGRvbWFpbnMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4OQorbXNnaWQgIlNwZWNpZnkgdGhlIGRvbWFpbiB0byBiZSBhc3NpZ25lZCBpbiBESENQIGxlYXNlcy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjkwCittc2dpZCAiU3BlY2lmeSBkZWZhdWx0IHRhcmdldCBpbiBhbiBNWCByZWNvcmQuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5MQorbXNnaWQgIlNwZWNpZnkgdGltZS10by1saXZlIGluIHNlY29uZHMgZm9yIHJlcGxpZXMgZnJvbSAvZXRjL2hvc3RzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTIKK21zZ2lkICJTcGVjaWZ5IHRpbWUtdG8tbGl2ZSBpbiBzZWNvbmRzIGZvciBuZWdhdGl2ZSBjYWNoaW5nLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTMKKyMsIGMtZm9ybWF0Cittc2dpZCAiQ2hhbmdlIHRvIHRoaXMgdXNlciBhZnRlciBzdGFydHVwLiAoZGVmYXVsdHMgdG8gJXMpLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTQKK21zZ2lkICJNYXAgREhDUCB2ZW5kb3IgY2xhc3MgdG8gdGFnLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTUKK21zZ2lkICJEaXNwbGF5IGRuc21hc3EgdmVyc2lvbiBhbmQgY29weXJpZ2h0IGluZm9ybWF0aW9uLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTYKK21zZ2lkICJUcmFuc2xhdGUgSVB2NCBhZGRyZXNzZXMgZnJvbSB1cHN0cmVhbSBzZXJ2ZXJzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTcKK21zZ2lkICJTcGVjaWZ5IGEgU1JWIHJlY29yZC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjk4Cittc2dpZCAiRGlzcGxheSB0aGlzIG1lc3NhZ2UuIFVzZSAtLWhlbHAgZGhjcCBmb3Iga25vd24gREhDUCBvcHRpb25zLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIlNwZWNpZnkgcGF0aCBvZiBQSUQgZmlsZSAoZGVmYXVsdHMgdG8gJXMpLiIKK21zZ3N0ciAiQW5nYWJlIGRlciBLb25maWd1cmF0aW9uc2RhdGVpIChWb3JlaW5zdGVsbHVuZzogJXMpLiIKKworIzogb3B0aW9uLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNwZWNpZnkgbWF4aW11bSBudW1iZXIgb2YgREhDUCBsZWFzZXMgKGRlZmF1bHRzIHRvICVzKS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzAxCittc2dpZCAiQW5zd2VyIEROUyBxdWVyaWVzIGJhc2VkIG9uIHRoZSBpbnRlcmZhY2UgYSBxdWVyeSB3YXMgc2VudCB0by4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzAyCittc2dpZCAiU3BlY2lmeSBUWFQgRE5TIHJlY29yZC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzAzCittc2dpZCAiU3BlY2lmeSBQVFIgRE5TIHJlY29yZC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzA0Cittc2dpZCAiR2l2ZSBETlMgbmFtZSB0byBJUHY0IGFkZHJlc3Mgb2YgaW50ZXJmYWNlLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMDUKK21zZ2lkICJCaW5kIG9ubHkgdG8gaW50ZXJmYWNlcyBpbiB1c2UuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIERIQ1Agc3RhdGljIGhvc3QgaW5mb3JtYXRpb24gZnJvbSAlcy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzA3Cittc2dpZCAiRW5hYmxlIHRoZSBEQnVzIGludGVyZmFjZSBmb3Igc2V0dGluZyB1cHN0cmVhbSBzZXJ2ZXJzLCBldGMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMwOAorbXNnaWQgIkRvIG5vdCBwcm92aWRlIERIQ1Agb24gdGhpcyBpbnRlcmZhY2UsIG9ubHkgcHJvdmlkZSBETlMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMwOQorbXNnaWQgIkVuYWJsZSBkeW5hbWljIGFkZHJlc3MgYWxsb2NhdGlvbiBmb3IgYm9vdHAuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxMAorbXNnaWQgIk1hcCBNQUMgYWRkcmVzcyAod2l0aCB3aWxkY2FyZHMpIHRvIG9wdGlvbiBzZXQuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxMgorbXNnaWQgIlRyZWF0IERIQ1AgcmVxdWVzdHMgb24gYWxpYXNlcyBhcyBhcnJpdmluZyBmcm9tIGludGVyZmFjZS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzE0Cittc2dpZCAiRGlzYWJsZSBJQ01QIGVjaG8gYWRkcmVzcyBjaGVja2luZyBpbiB0aGUgREhDUCBzZXJ2ZXIuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxNQorbXNnaWQgIlNjcmlwdCB0byBydW4gb24gREhDUCBsZWFzZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24uIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxNgorbXNnaWQgIlJlYWQgY29uZmlndXJhdGlvbiBmcm9tIGFsbCB0aGUgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxNworbXNnaWQgIkxvZyB0byB0aGlzIHN5c2xvZyBmYWNpbGl0eSBvciBmaWxlLiAoZGVmYXVsdHMgdG8gREFFTU9OKSIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMTgKK21zZ2lkICJSZWFkIGxlYXNlcyBhdCBzdGFydHVwLCBidXQgbmV2ZXIgd3JpdGUgdGhlIGxlYXNlIGZpbGUuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJNYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IEROUyBxdWVyaWVzLiAoZGVmYXVsdHMgdG8gJXMpIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJDbGVhciBETlMgY2FjaGUgd2hlbiByZWxvYWRpbmcgJXMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyMQorbXNnaWQgIklnbm9yZSBob3N0bmFtZXMgcHJvdmlkZWQgYnkgREhDUCBjbGllbnRzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjIKK21zZ2lkICJEbyBOT1QgcmV1c2UgZmlsZW5hbWUgYW5kIHNlcnZlciBmaWVsZHMgZm9yIGV4dHJhIERIQ1Agb3B0aW9ucy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzIzCittc2dpZCAiRW5hYmxlIGludGVncmF0ZWQgcmVhZC1vbmx5IFRGVFAgc2VydmVyLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjQKK21zZ2lkICJFeHBvcnQgZmlsZXMgYnkgVEZUUCBvbmx5IGZyb20gdGhlIHNwZWNpZmllZCBzdWJ0cmVlLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjUKK21zZ2lkICJBZGQgY2xpZW50IElQIGFkZHJlc3MgdG8gdGZ0cC1yb290LiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjYKK21zZ2lkICJBbGxvdyBhY2Nlc3Mgb25seSB0byBmaWxlcyBvd25lZCBieSB0aGUgdXNlciBydW5uaW5nIGRuc21hc3EuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJNYXhpbXVtIG51bWJlciBvZiBjb25uY3VycmVudCBURlRQIHRyYW5zZmVycyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjgKKyM6IG9wdGlvbi5jOjMyOAogbXNnaWQgIkRpc2FibGUgdGhlIFRGVFAgYmxvY2tzaXplIGV4dGVuc2lvbi4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY5CisjOiBvcHRpb24uYzozMjkKK21zZ2lkICJFcGhlbWVyYWwgcG9ydCByYW5nZSBmb3IgdXNlIGJ5IFRGVFAgdHJhbnNmZXJzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzAKIG1zZ2lkICJFeHRyYSBsb2dnaW5nIGZvciBESENQLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNzAKKyM6IG9wdGlvbi5jOjMzMQogbXNnaWQgIkVuYWJsZSBhc3luYy4gbG9nZ2luZzsgb3B0aW9uYWxseSBzZXQgcXVldWUgbGVuZ3RoLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo1MDEKKyM6IG9wdGlvbi5jOjMzMgorbXNnaWQgIlN0b3AgRE5TIHJlYmluZGluZy4gRmlsdGVyIHByaXZhdGUgSVAgcmFuZ2VzIHdoZW4gcmVzb2x2aW5nLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzMKK21zZ2lkICJBbHdheXMgcGVyZm9ybSBETlMgcXVlcmllcyB0byBhbGwgc2VydmVycy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzM0Cittc2dpZCAiU2V0IHRhZyBpZiBjbGllbnQgaW5jbHVkZXMgb3B0aW9uIGluIHJlcXVlc3QuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjU4NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVXNhZ2U6IGRuc21hc3EgW29wdGlvbnNdXG4iCiAiXG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6NTAzCisjOiBvcHRpb24uYzo1ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlIHNob3J0IG9wdGlvbnMgb25seSBvbiB0aGUgY29tbWFuZCBsaW5lLlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjUwNQorIzogb3B0aW9uLmM6NTg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlZhbGlkIG9wdGlvbnMgYXJlIDpcbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo1MjYKKyM6IG9wdGlvbi5jOjYxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJLbm93biBESENQIG9wdGlvbnM6XG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6NTk5CisjOiBvcHRpb24uYzo2ODMKIG1zZ2lkICJiYWQgZGhjcC1vcHRpb24iCiBtc2dzdHIgIiIKIAogIyBAU2ltb246IEhlcmUgSSBuZWVkIGFuIGV4YW1wbGUgdG8gdW5kZXJzdGFuZCBpdCA6KQotIzogb3B0aW9uLmM6NjU1CisjOiBvcHRpb24uYzo3MzkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIElQIGFkZHJlc3MiCiBtc2dzdHIgImxlc2UgJXMgLSAlZCBBZHJlc3NlbiIKIAotIzogb3B0aW9uLmM6NzUzCisjOiBvcHRpb24uYzo4MzcKIG1zZ2lkICJiYWQgZG9tYWluIGluIGRoY3Atb3B0aW9uIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjgwOQorIzogb3B0aW9uLmM6ODk1CiBtc2dpZCAiZGhjcC1vcHRpb24gdG9vIGxvbmciCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6ODUzCisjOiBvcHRpb24uYzo5NDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGFjY2VzcyBkaXJlY3RvcnkgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjg3MiB0ZnRwLmM6MzEzCisjOiBvcHRpb24uYzo5NjEgdGZ0cC5jOjM0MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgYWNjZXNzICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo5MTMKKyM6IG9wdGlvbi5jOjk5OAogbXNnaWQgIm9ubHkgb25lIGRoY3AtaG9zdHNmaWxlIGFsbG93ZWQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6OTYyCisjOiBvcHRpb24uYzoxMDA1Cittc2dpZCAib25seSBvbmUgZGhjcC1vcHRzZmlsZSBhbGxvd2VkIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjEwNDkKIG1zZ2lkICJiYWQgTVggcHJlZmVyZW5jZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo5NzEKKyM6IG9wdGlvbi5jOjEwNTMKIG1zZ2lkICJiYWQgTVggbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo5ODkKKyM6IG9wdGlvbi5jOjEwNjcKIG1zZ2lkICJiYWQgTVggdGFyZ2V0IgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjEwMDEKKyM6IG9wdGlvbi5jOjEwNzgKIG1zZ2lkICJjYW5ub3QgcnVuIHNjcmlwdHMgdW5kZXIgdUNsaW51eCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxMTk2IG9wdGlvbi5jOjEyMDcKKyM6IG9wdGlvbi5jOjEyNjUgb3B0aW9uLmM6MTI3MwogbXNnaWQgImJhZCBwb3J0IgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjEzNDkKKyM6IG9wdGlvbi5jOjEyOTMgb3B0aW9uLmM6MTMxOAorbXNnaWQgImludGVyZmFjZSBiaW5kaW5nIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MTQyNworbXNnaWQgImJhZCBwb3J0IHJhbmdlIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjE0NDQKIG1zZ2lkICJiYWQgYnJpZGdlLWludGVyZmFjZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxMzkxCisjOiBvcHRpb24uYzoxNDg1CiBtc2dpZCAiYmFkIGRoY3AtcmFuZ2UiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTQxOQorIzogb3B0aW9uLmM6MTUxMQogbXNnaWQgIm9ubHkgb25lIG5ldGlkIHRhZyBhbGxvd2VkIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE0NjEKKyM6IG9wdGlvbi5jOjE1NTEKIG1zZ2lkICJpbmNvbnNpc3RlbnQgREhDUCByYW5nZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxNjM3CisjOiBvcHRpb24uYzoxNzE5CiBtc2dpZCAiYmFkIERIQ1AgaG9zdCBuYW1lIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE4NjEKKyM6IG9wdGlvbi5jOjE5NTkKIG1zZ2lkICJiYWQgaW50ZXJmYWNlIG5hbWUiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTg4NQorIzogb3B0aW9uLmM6MTk3OQogbXNnaWQgImJhZCBQVFIgcmVjb3JkIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5MDkKLW1zZ2lkICJiYWQgVFhUIHJlY29yZCIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoxOTQxCisjOiBvcHRpb24uYzoxOTk5CiBtc2dpZCAiVFhUIHJlY29yZCBzdHJpbmcgdG9vIGxvbmciCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTk4MAorIzogb3B0aW9uLmM6MjAwMworbXNnaWQgImJhZCBUWFQgcmVjb3JkIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjIwNjMKIG1zZ2lkICJiYWQgU1JWIHJlY29yZCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTkyCisjOiBvcHRpb24uYzoyMDcyCiBtc2dpZCAiYmFkIFNSViB0YXJnZXQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjAwMworIzogb3B0aW9uLmM6MjA4MAogbXNnaWQgImludmFsaWQgcG9ydCBudW1iZXIiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjAxMworIzogb3B0aW9uLmM6MjA4NwogbXNnaWQgImludmFsaWQgcHJpb3JpdHkiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjAyMworIzogb3B0aW9uLmM6MjA5NAogbXNnaWQgImludmFsaWQgd2VpZ2h0IgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwNTQKKyM6IG9wdGlvbi5jOjIxMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmlsZXMgbmVzdGVkIHRvbyBkZWVwIGluICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwNjIgdGZ0cC5jOjQ2NworIzogb3B0aW9uLmM6MjEzOCB0ZnRwLmM6NDk3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMTE0CisjOiBvcHRpb24uYzoyMTk5CiBtc2dpZCAibWlzc2luZyBcIiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMTYxCisjOiBvcHRpb24uYzoyMjQ2CiBtc2dpZCAiYmFkIG9wdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMTYzCisjOiBvcHRpb24uYzoyMjQ4CiBtc2dpZCAiZXh0cmFuZW91cyBwYXJhbWV0ZXIiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjE2NQorIzogb3B0aW9uLmM6MjI1MAogbXNnaWQgIm1pc3NpbmcgcGFyYW1ldGVyIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxNzMKKyM6IG9wdGlvbi5jOjIyNTgKIG1zZ2lkICJlcnJvciIKIG1zZ3N0ciAiIgogCkBAIC02MTQsNjU5ICs2NzEsNjk1IEBACiAjIEBTaW1vbjogKCJrZWluZW4gU3BlaWNoZXIiID0gIm5vIG1lbW9yeSIsICIuLi4gbmljaHQgYmVrb21tZW4iID0gIi4uLiBub3QgZ2V0IikgCiAjIEBTaW1vbjogYm90aCB3b3VsZCBiZSBjb3JyZWN0IC0gYnV0IHdvdWxkIHNvdW5kIHJhdGhlciBjbHVtc3kgaW4gZ2VybWFuCiAjIEBTaW1vbjogaG93IGFib3V0ICJOaWNodCBnZW7DvGdlbmQgU3BlaWNoZXIgdmVyZsO8Z2JhciIgPSAiTm90IGVub3VnaCBtZW1vcnkgYXZhaWxhYmxlIiA/Ci0jOiBvcHRpb24uYzoyMTc5CisjOiBvcHRpb24uYzoyMjY0CiAjLCBjLWZvcm1hdAogbXNnaWQgIiVzIGF0IGxpbmUgJWQgb2YgJSVzIgogbXNnc3RyICIlcyBpbiBaZWlsZSAlZCB2b24gJSVzIgogCi0jOiBvcHRpb24uYzoyMjUyCisjOiBvcHRpb24uYzoyMzA0IG9wdGlvbi5jOjIzMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCAlcyIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNDAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRuc21hc3EgdmVyc2lvbiAlcyAgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjUzCisjOiBvcHRpb24uYzoyNDAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDb21waWxlIHRpbWUgb3B0aW9ucyAlc1xuIgogIlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNTQKKyM6IG9wdGlvbi5jOjI0MDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI1NQorIzogb3B0aW9uLmM6MjQwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJEbnNtYXNxIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0XG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI1NgorIzogb3B0aW9uLmM6MjQwNAogIywgYy1mb3JtYXQKLW1zZ2lkICJ1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIuXG4iCittc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyIG9yIDMuXG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI2NworIzogb3B0aW9uLmM6MjQxNQogbXNnaWQgInRyeSAtLWhlbHAiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI2OQorIzogb3B0aW9uLmM6MjQxNwogbXNnaWQgInRyeSAtdyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjcyCisjOiBvcHRpb24uYzoyNDIwCiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBjb21tYW5kIGxpbmUgb3B0aW9uczogJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjMxMworIzogb3B0aW9uLmM6MjQ2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZ2V0IGhvc3QtbmFtZTogJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjM0MQorIzogb3B0aW9uLmM6MjQ4OQogbXNnaWQgIm9ubHkgb25lIHJlc29sdi5jb25mIGZpbGUgYWxsb3dlZCBpbiBuby1wb2xsIG1vZGUuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIzNTEKKyM6IG9wdGlvbi5jOjI0OTkKIG1zZ2lkICJtdXN0IGhhdmUgZXhhY3RseSBvbmUgcmVzb2x2LmNvbmYgdG8gcmVhZCBkb21haW4gZnJvbS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjM1NCBuZXR3b3JrLmM6NTQ5CisjOiBvcHRpb24uYzoyNTAyIG5ldHdvcmsuYzo2NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIzNzIKKyM6IG9wdGlvbi5jOjI1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gc2VhcmNoIGRpcmVjdGl2ZSBmb3VuZCBpbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBmb3J3YXJkLmM6Mzc2CisjOiBmb3J3YXJkLmM6MzgxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5hbWVzZXJ2ZXIgJXMgcmVmdXNlZCB0byBkbyBhIHJlY3Vyc2l2ZSBxdWVyeSIKIG1zZ3N0ciAiIgogCi0jOiBpc2MuYzo3MyBkbnNtYXNxLmM6NzIzCisjOiBmb3J3YXJkLmM6NDA5Cittc2dpZCAicG9zc2libGUgRE5TLXJlYmluZCBhdHRhY2sgZGV0ZWN0ZWQiCittc2dzdHIgIiIKKworIzogaXNjLmM6NzcgZG5zbWFzcS5jOjc0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gYWNjZXNzICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBpc2MuYzo4OQorIzogaXNjLmM6OTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGxvYWQgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IGlzYy5jOjkzIGRuc21hc3EuYzo3NDUKKyM6IGlzYy5jOjk3IGRuc21hc3EuYzo3NjkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZGluZyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBpc2MuYzoxMTUKKyM6IGlzYy5jOjExOQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbmFtZSBpbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBpc2MuYzoxNzcKKyM6IGlzYy5jOjE4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJJZ25vcmluZyBESENQIGxlYXNlIGZvciAlcyBiZWNhdXNlIGl0IGhhcyBhbiBpbGxlZ2FsIGRvbWFpbiBwYXJ0IgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo0MQorIzogbmV0d29yay5jOjQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gaW50ZXJmYWNlICVzIGluIGJyaWRnZS1pbnRlcmZhY2UiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjM3NyBkbnNtYXNxLmM6MTcwCisjOiBuZXR3b3JrLmM6Mzg5IGRuc21hc3EuYzoxODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBsaXN0ZW5pbmcgc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6Mzg0CisjOiBuZXR3b3JrLmM6Mzk2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgSVBWNiBvcHRpb25zIG9uIGxpc3RlbmluZyBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo0MDIKKyM6IG5ldHdvcmsuYzo0MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGJpbmQgbGlzdGVuaW5nIHNvY2tldCBmb3IgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo0MTAKKyM6IG5ldHdvcmsuYzo0MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGxpc3RlbiBvbiBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo0MjEKKyM6IG5ldHdvcmsuYzo0MzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBURlRQIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjQ5MworIzogbmV0d29yay5jOjU0OQorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gYmluZCBzZXJ2ZXIgc29ja2V0IGZvciAlczogJXMiCittc2dzdHIgIiIKKworIzogbmV0d29yay5jOjU4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJpZ25vcmluZyBuYW1lc2VydmVyICVzIC0gbG9jYWwgaW50ZXJmYWNlIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MDIKKyM6IG5ldHdvcmsuYzo1OTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiaWdub3JpbmcgbmFtZXNlcnZlciAlcyAtIGNhbm5vdCBtYWtlL2JpbmQgc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTE3CisjOiBuZXR3b3JrLmM6NjA2CiBtc2dpZCAidW5xdWFsaWZpZWQiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUxNworIzogbmV0d29yay5jOjYwNgogbXNnaWQgIm5hbWVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MTkKKyM6IG5ldHdvcmsuYzo2MDgKIG1zZ2lkICJkZWZhdWx0IgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MjEKKyM6IG5ldHdvcmsuYzo2MTAKIG1zZ2lkICJkb21haW4iCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUyNAorIzogbmV0d29yay5jOjYxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2luZyBsb2NhbCBhZGRyZXNzZXMgb25seSBmb3IgJXMgJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUyNgorIzogbmV0d29yay5jOjYxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2luZyBuYW1lc2VydmVyICVzIyVkIGZvciAlcyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTI5CisjOiBuZXR3b3JrLmM6NjE4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQodmlhICVzKSIKK21zZ3N0ciAiIgorCisjOiBuZXR3b3JrLmM6NjIwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjEwNgorIzogZG5zbWFzcS5jOjExMAogbXNnaWQgIiIKICJJU0MgZGhjcGQgaW50ZWdyYXRpb24gbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfSVNDX1JFQURFUiBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjEyOAorIzogZG5zbWFzcS5jOjEzMgogbXNnaWQgIlRGVFAgc2VydmVyIG5vdCBhdmFpbGFibGU6IHNldCBIQVZFX1RGVFAgaW4gc3JjL2NvbmZpZy5oIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoxNDIKKyM6IGRuc21hc3EuYzoxMzcKK21zZ2lkICJhc3ljaHJvbm91cyBsb2dnaW5nIGlzIG5vdCBhdmFpbGFibGUgdW5kZXIgU29sYXJpcyIKK21zZ3N0ciAiIgorCisjOiBkbnNtYXNxLmM6MTUxCiBtc2dpZCAibXVzdCBzZXQgZXhhY3RseSBvbmUgaW50ZXJmYWNlIG9uIGJyb2tlbiBzeXN0ZW1zIHdpdGhvdXQgSVBfUkVDVklGIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoxNTIKKyM6IGRuc21hc3EuYzoxNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGZpbmQgbGlzdCBvZiBpbnRlcmZhY2VzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTYwCisjOiBkbnNtYXNxLmM6MTY5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gaW50ZXJmYWNlICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoxNjYKKyM6IGRuc21hc3EuYzoxNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gaW50ZXJmYWNlIHdpdGggYWRkcmVzcyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTgxIGRuc21hc3EuYzo1MzgKKyM6IGRuc21hc3EuYzoxOTIgZG5zbWFzcS5jOjU2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJEQnVzIGVycm9yOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTg0CisjOiBkbnNtYXNxLmM6MTk1CiBtc2dpZCAiREJ1cyBub3QgYXZhaWxhYmxlOiBzZXQgSEFWRV9EQlVTIGluIHNyYy9jb25maWcuaCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MjE2CisjOiBkbnNtYXNxLmM6MjA0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgcGlwZTogJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjIzNworIzogZG5zbWFzcS5jOjIyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZm9yayBpbnRvIGJhY2tncm91bmQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozMzUKKyM6IGRuc21hc3EuYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGNoZGlyIHRvIGZpbGVzeXN0ZW0gcm9vdDogJXMiCittc2dzdHIgIiIKKworIzogZG5zbWFzcS5jOjM0OQorIywgYy1mb3JtYXQKK21zZ2lkICJzdGFydGVkLCB2ZXJzaW9uICVzIEROUyBkaXNhYmxlZCIKK21zZ3N0ciAiIgorCisjOiBkbnNtYXNxLmM6MzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgInN0YXJ0ZWQsIHZlcnNpb24gJXMgY2FjaGVzaXplICVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozMzcKKyM6IGRuc21hc3EuYzozNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAic3RhcnRlZCwgdmVyc2lvbiAlcyBjYWNoZSBkaXNhYmxlZCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzM5CisjOiBkbnNtYXNxLmM6MzU1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBpbGUgdGltZSBvcHRpb25zOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzQ1CisjOiBkbnNtYXNxLmM6MzYxCiBtc2dpZCAiREJ1cyBzdXBwb3J0IGVuYWJsZWQ6IGNvbm5lY3RlZCB0byBzeXN0ZW0gYnVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozNDcKKyM6IGRuc21hc3EuYzozNjMKIG1zZ2lkICJEQnVzIHN1cHBvcnQgZW5hYmxlZDogYnVzIGNvbm5lY3Rpb24gcGVuZGluZyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzUyCisjOiBkbnNtYXNxLmM6MzY4CiBtc2dpZCAic2V0dGluZyAtLWJpbmQtaW50ZXJmYWNlcyBvcHRpb24gYmVjYXVzZSBvZiBPUyBsaW1pdGF0aW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzU3CisjOiBkbnNtYXNxLmM6MzczCiAjLCBjLWZvcm1hdAogbXNnaWQgIndhcm5pbmc6IGludGVyZmFjZSAlcyBkb2VzIG5vdCBjdXJyZW50bHkgZXhpc3QiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM2MgorIzogZG5zbWFzcS5jOjM3OAogbXNnaWQgIndhcm5pbmc6IGlnbm9yaW5nIHJlc29sdi1maWxlIGZsYWcgYmVjYXVzZSBuby1yZXNvbHYgaXMgc2V0IgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozNjUKKyM6IGRuc21hc3EuYzozODEKIG1zZ2lkICJ3YXJuaW5nOiBubyB1cHN0cmVhbSBzZXJ2ZXJzIGNvbmZpZ3VyZWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM2OQorIzogZG5zbWFzcS5jOjM4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJhc3luY2hyb25vdXMgbG9nZ2luZyBlbmFibGVkLCBxdWV1ZSBsaW1pdCBpcyAlZCBtZXNzYWdlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzgxCisjOiBkbnNtYXNxLmM6Mzk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AsIHN0YXRpYyBsZWFzZXMgb25seSBvbiAlLjBzJXMsIGxlYXNlIHRpbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM4MgorIzogZG5zbWFzcS5jOjM5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQLCBJUCByYW5nZSAlcyAtLSAlcywgbGVhc2UgdGltZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6Mzk2CisjOiBkbnNtYXNxLmM6NDEyCiBtc2dpZCAicm9vdCBpcyAiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM5NgorIzogZG5zbWFzcS5jOjQxMgogbXNnaWQgImVuYWJsZWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM5OAorIzogZG5zbWFzcS5jOjQxNAogbXNnaWQgInNlY3VyZSBtb2RlIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo0MTgKKyM6IGRuc21hc3EuYzo0NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVzdHJpY3RpbmcgbWF4aW11bSBzaW11bHRhbmVvdXMgVEZUUCB0cmFuc2ZlcnMgdG8gJWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjQyNworIzogZG5zbWFzcS5jOjQ0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJ3YXJuaW5nOiBzZXR0aW5nIGNhcGFiaWxpdGllcyBmYWlsZWQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo0MjkKKyM6IGRuc21hc3EuYzo0NTEKIG1zZ2lkICJydW5uaW5nIGFzIHJvb3QiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjU0MAorIzogZG5zbWFzcS5jOjU2MwogbXNnaWQgImNvbm5lY3RlZCB0byBzeXN0ZW0gREJ1cyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NjU5CisjOiBkbnNtYXNxLmM6NjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNoaWxkIHByb2Nlc3Mga2lsbGVkIGJ5IHNpZ25hbCAlZCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NjYzCisjOiBkbnNtYXNxLmM6Njg3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNoaWxkIHByb2Nlc3MgZXhpdGVkIHdpdGggc3RhdHVzICVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo2NjcKKyM6IGRuc21hc3EuYzo2OTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo2NzEKKyM6IGRuc21hc3EuYzo2OTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBoZWxwZXI6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo3MDUKKyM6IGRuc21hc3EuYzo3MjkKIG1zZ2lkICJleGl0aW5nIG9uIHJlY2VpcHQgb2YgU0lHVEVSTSIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NzU2CisjOiBkbnNtYXNxLmM6NzgwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHNlcnZlcnMgZm91bmQgaW4gJXMsIHdpbGwgcmV0cnkiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjMyCisjOiBkaGNwLmM6MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBESENQIHNvY2tldCA6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo0MQorIzogZGhjcC5jOjUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgb3B0aW9ucyBvbiBESENQIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjU5CisjOiBkaGNwLmM6NjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHNldCBTT19SRVVTRXtBRERSfFBPUlR9IG9uIERIQ1Agc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6NzIKKyM6IGRoY3AuYzo4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gYmluZCBESENQIHNlcnZlciBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4NQorIzogZGhjcC5jOjk0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgSUNNUCByYXcgc29ja2V0OiAlcy4iCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjEwMAotIywgYy1mb3JtYXQKLW1zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUuIgotbXNnc3RyICIiCi0KLSM6IGRoY3AuYzoxMDMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiaWxsZWdhbCBkb21haW4gJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKLW1zZ3N0ciAiIgotCi0jOiBkaGNwLmM6MjIxCisjOiBkaGNwLmM6MjIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcGFja2V0IHJlY2VpdmVkIG9uICVzIHdoaWNoIGhhcyBubyBhZGRyZXNzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzozNTIKKyM6IGRoY3AuYzozODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCByYW5nZSAlcyAtLSAlcyBpcyBub3QgY29uc2lzdGVudCB3aXRoIG5ldG1hc2sgJXMiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjY2OQorIzogZGhjcC5jOjcwOQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVhZCAlczolcyIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6NzA0CisjOiBkaGNwLmM6NzQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBsaW5lIGF0ICVzIGxpbmUgJWQiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjgyNgorIzogZGhjcC5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUuIgorbXNnc3RyICIiCisKKyM6IGRoY3AuYzo4NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gJXMuIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4MzIKKyM6IGRoY3AuYzo4NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaWxsZWdhbCBkb21haW4gJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKK21zZ3N0ciAiIgorCisjOiBkaGNwLmM6ODYwCiAjLCBjLWZvcm1hdAogbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluICVzLiIKIG1zZ3N0ciAiIgogCi0jIEBTaW1vbjogSGVyZSBJIG5lZWQgYW4gZXhhbXBsZSB0byB1bmRlcnN0YW5kIGl0IDopCi0jOiBkaGNwLmM6ODM5Ci0jLCBmdXp6eSwgYy1mb3JtYXQKLW1zZ2lkICJyZWFkICVzIC0gJWQgaG9zdHMiCi1tc2dzdHIgImxlc2UgJXMgLSAlZCBBZHJlc3NlbiIKKyM6IGRoY3AuYzo4OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaGFzIG1vcmUgdGhlbiBvbmUgYWRkcmVzcyBpbiBob3N0c2ZpbGUsIHVzaW5nICVzIGZvciBESENQIgorbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4NjYKKyM6IGRoY3AuYzo5MDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgKCVzKSBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzo1NAorIzogbGVhc2UuYzo1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiBvciBjcmVhdGUgbGVhc2UgZmlsZSAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzo4MAorIzogbGVhc2UuYzo4NAogbXNnaWQgInRvbyBtYW55IHN0b3JlZCBsZWFzZXMiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzoxMjEKKyM6IGxlYXNlLmM6MTI1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBydW4gbGVhc2UtaW5pdCBzY3JpcHQgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IGxlYXNlLmM6MTI3CisjOiBsZWFzZS5jOjEzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJsZWFzZS1pbml0IHNjcmlwdCByZXR1cm5lZCBleGl0IGNvZGUgJXMiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzoyMzQKKyM6IGxlYXNlLmM6MjM4CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byB3cml0ZSAlczogJXMgKHJldHJ5IGluICV1cykiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjMwMAorIzogcmZjMjEzMS5jOjMwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBhZGRyZXNzIHJhbmdlIGF2YWlsYWJsZSBmb3IgREhDUCByZXF1ZXN0ICVzICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMDEKKyM6IHJmYzIxMzEuYzozMDQKIG1zZ2lkICJ3aXRoIHN1Ym5ldCBzZWxlY3RvciIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzAxCisjOiByZmMyMTMxLmM6MzA0CiBtc2dpZCAidmlhIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMTIKKyM6IHJmYzIxMzEuYzozMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCBwYWNrZXQ6IHRyYW5zYWN0aW9uLWlkIGlzICV1IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMTcKKyM6IHJmYzIxMzEuYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIERIQ1Agc3VibmV0OiAlcy8lcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzE5CisjOiByZmMyMTMxLmM6MzIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBESENQIHJhbmdlOiAlcyAtLSAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzQ3IHJmYzIxMzEuYzozNzgKKyM6IHJmYzIxMzEuYzozNTAgcmZjMjEzMS5jOjM4MQogbXNnaWQgImRpc2FibGVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozOTAgcmZjMjEzMS5jOjg1MgorIzogcmZjMjEzMS5jOjM5MyByZmMyMTMxLmM6ODczCiBtc2dpZCAiYWRkcmVzcyBpbiB1c2UiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjM5MworIzogcmZjMjEzMS5jOjM5NgogbXNnaWQgIm5vIGFkZHJlc3MgY29uZmlndXJlZCIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NDA2IHJmYzIxMzEuYzo3MjAKKyM6IHJmYzIxMzEuYzo0MDkgcmZjMjEzMS5jOjczNgogbXNnaWQgIm5vIGFkZHJlc3MgYXZhaWxhYmxlIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo0MTYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiTGltaXQgb2YgJWQgbGVhc2VzIGV4Y2VlZGVkLiIKLW1zZ3N0ciAiIgotCi0jOiByZmMyMTMxLmM6NDE3IHJmYzIxMzEuYzo4NjIKKyM6IHJmYzIxMzEuYzo0MTggcmZjMjEzMS5jOjg4MwogbXNnaWQgIm5vIGxlYXNlcyBsZWZ0IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo0MjEgcmZjMjEzMS5jOjgyNgorIzogcmZjMjEzMS5jOjQyMSByZmMyMTMxLmM6ODQ3CiBtc2dpZCAid3JvbmcgbmV0d29yayIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NTE5CisjOiByZmMyMTMxLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIklnbm9yaW5nIGRvbWFpbiAlcyBmb3IgREhDUCBob3N0IG5hbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjU5OAorIzogcmZjMjEzMS5jOjYxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJWZW5kb3IgY2xhc3M6ICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo2MDAKKyM6IHJmYzIxMzEuYzo2MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlciBjbGFzczogJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY0MQorIzogcmZjMjEzMS5jOjY1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJkaXNhYmxpbmcgREhDUCBzdGF0aWMgYWRkcmVzcyAlcyBmb3IgJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY2MgorIzogcmZjMjEzMS5jOjY3OAogbXNnaWQgInVua25vd24gbGVhc2UiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY3MSByZmMyMTMxLmM6OTcwCisjOiByZmMyMTMxLmM6Njg3IHJmYzIxMzEuYzo5OTIKIG1zZ2lkICJpZ25vcmVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo2OTEKKyM6IHJmYzIxMzEuYzo3MDcKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IGlzIGxlYXNlZCB0byAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NzAxCisjOiByZmMyMTMxLmM6NzE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3QgdXNpbmcgY29uZmlndXJlZCBhZGRyZXNzICVzIGJlY2F1c2UgaXQgaXMgaW4gdXNlIGJ5IHRoZSBzZXJ2ZXIgb3IgcmVsYXkiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjcwNAorIzogcmZjMjEzMS5jOjcyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgdXNpbmcgY29uZmlndXJlZCBhZGRyZXNzICVzIGJlY2F1c2UgaXQgd2FzIHByZXZpb3VzbHkgZGVjbGluZWQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjcxOCByZmMyMTMxLmM6ODU1CisjOiByZmMyMTMxLmM6NzM0IHJmYzIxMzEuYzo4NzYKIG1zZ2lkICJubyB1bmlxdWUtaWQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjc4OQorIzogcmZjMjEzMS5jOjgwNgogbXNnaWQgIndyb25nIGFkZHJlc3MiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjgwMgorIzogcmZjMjEzMS5jOjgyMwogbXNnaWQgImxlYXNlIG5vdCBmb3VuZCIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6ODM0CisjOiByZmMyMTMxLmM6ODU1CiBtc2dpZCAiYWRkcmVzcyBub3QgYXZhaWxhYmxlIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo4NDUKKyM6IHJmYzIxMzEuYzo4NjYKIG1zZ2lkICJzdGF0aWMgbGVhc2UgYXZhaWxhYmxlIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo4NDkKKyM6IHJmYzIxMzEuYzo4NzAKIG1zZ2lkICJhZGRyZXNzIHJlc2VydmVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzoxMjUyCisjOiByZmMyMTMxLmM6MTI2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWdzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MTMzNAorIzogcmZjMjEzMS5jOjEzNTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHNlbmQgREhDUC9CT09UUCBvcHRpb24gJWQ6IG5vIHNwYWNlIGxlZnQgaW4gcGFja2V0IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzoxNDg4CisjOiByZmMyMTMxLmM6MTUwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJyZXF1ZXN0ZWQgb3B0aW9uczogJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjE1MTkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAic2VydmVyIG5hbWU6ICVzIgotbXNnc3RyICIiCi0KLSM6IHJmYzIxMzEuYzoxNTMxCi0jLCBjLWZvcm1hdAotbXNnaWQgImJvb3RmaWxlIG5hbWU6ICVzIgotbXNnc3RyICIiCi0KLSM6IHJmYzIxMzEuYzoxNTQwCisjOiByZmMyMTMxLmM6MTU1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXh0IHNlcnZlcjogJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0bGluay5jOjU5CisjOiByZmMyMTMxLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZmlsZSBuYW1lOiAlcyIKK21zZ3N0ciAiIgorCisjOiByZmMyMTMxLmM6MTU4MworIywgYy1mb3JtYXQKK21zZ2lkICJzZXJ2ZXIgbmFtZTogJXMiCittc2dzdHIgIiIKKworIzogbmV0bGluay5jOjYzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgbmV0bGluayBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldGxpbmsuYzoyMjYKKyM6IG5ldGxpbmsuYzoyMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV0bGluayByZXR1cm5zIGVycm9yOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkYnVzLmM6MTExCisjOiBkYnVzLmM6MTE1CiBtc2dpZCAiYXR0ZW1wdCB0byBzZXQgYW4gSVB2NiBzZXJ2ZXIgYWRkcmVzcyB2aWEgREJ1cyAtIG5vIElQdjYgc3VwcG9ydCIKIG1zZ3N0ciAiIgogCi0jOiBkYnVzLmM6MjM3CisjOiBkYnVzLmM6MjQxCiBtc2dpZCAic2V0dGluZyB1cHN0cmVhbSBzZXJ2ZXJzIGZyb20gREJ1cyIKIG1zZ3N0ciAiIgogCi0jOiBkYnVzLmM6Mjc1CisjOiBkYnVzLmM6Mjc5CiBtc2dpZCAiY291bGQgbm90IHJlZ2lzdGVyIGEgREJ1cyBtZXNzYWdlIGhhbmRsZXIiCiBtc2dzdHIgIiIKIAotIzogYnBmLmM6NDMKKyM6IGJwZi5jOjE0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIERIQ1AgQlBGIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogYnBmLmM6NzEKKyM6IGJwZi5jOjE3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQIHJlcXVlc3QgZm9yIHVuc3VwcG9ydGVkIGhhcmR3YXJlIHR5cGUgKCVkKSByZWNlaXZlZCBvbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6MTU4CisjOiB0ZnRwLmM6MTczCittc2dpZCAidW5hYmxlIHRvIGdldCBmcmVlIHBvcnQgZm9yIFRGVFAiCittc2dzdHIgIiIKKworIzogdGZ0cC5jOjE4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnN1cHBvcnRlZCByZXF1ZXN0IGZyb20gJXMiCiBtc2dzdHIgIiIKIAotIzogdGZ0cC5jOjIzNgorIzogdGZ0cC5jOjI2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJURlRQIHNlbnQgJXMgdG8gJXMiCiBtc2dzdHIgIiIKIAotIzogdGZ0cC5jOjI1OQorIzogdGZ0cC5jOjI4OQogIywgYy1mb3JtYXQKIG1zZ2lkICJmaWxlICVzIG5vdCBmb3VuZCIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6MzY5CisjOiB0ZnRwLmM6Mzk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgZXJyb3IgJWQgJXMgcmVjZWl2ZWQgZnJvbSAlcyIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6NDAwCisjOiB0ZnRwLmM6NDMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgZmFpbGVkIHNlbmRpbmcgJXMgdG8gJXMiCiBtc2dzdHIgIiIKIAotIzogbG9nLmM6NjkKKyM6IGxvZy5jOjczCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzoxNDYKKyM6IGxvZy5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZhaWxlZCB0byBjaGFuZ2Ugb3duZXIgb2YgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IGxvZy5jOjE2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJvdmVyZmxvdzogJWQgbG9nIGVudHJpZXMgbG9zdCIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzoyMjMKKyM6IGxvZy5jOjIzOAogIywgYy1mb3JtYXQKIG1zZ2lkICJsb2cgZmFpbGVkOiAlcyIKIG1zZ3N0ciAiIgpAQCAtMTI3NCw2ICsxMzY3LDExIEBACiAjIEBTaW1vbjogSSB3b3VsZCBsaWtlIHRvIGhhdmUgYW4gZXhhbXBsZSA6KSAtIGluc3RlYWQgb2YgInZvbiIgaXQgd291bGQgYmUgcG9zc2libGUgdG8gdXNlICJhdXMiLAogIyBAU2ltb246IGJvdGggdHJhbnNsYXRlIHRvICJvZiIgYW5kIG5vdGhpbmcgZWxzZSwgYnV0IGRlcGVuZGluZyBvbiB0aGUgc2Vuc2Ugb25lIGNvdWxkIGJlIGJldHRlciAKICMgQFNpbW9uOiB0aGFuIHRoZSBvdGhlci4KLSM6IGxvZy5jOjM3OAorIzogbG9nLmM6Mzk0CiBtc2dpZCAiRkFJTEVEIHRvIHN0YXJ0IHVwIgogbXNnc3RyICJTdGFydCBnZXNjaGVpdGVydCIKKworIyBAU2ltb246IEhlcmUgSSBuZWVkIGFuIGV4YW1wbGUgdG8gdW5kZXJzdGFuZCBpdCA6KQorIywgZnV6enkKKyN+IG1zZ2lkICJyZWFkICVzIC0gJWQgaG9zdHMiCisjfiBtc2dzdHIgImxlc2UgJXMgLSAlZCBBZHJlc3NlbiIKZGlmZiAtLWdpdCBhL3BvL2VzLnBvIGIvcG8vZXMucG8KaW5kZXggMGJmYzU2NS4uM2M2YTMwNyAxMDA2NDQKLS0tIGEvcG8vZXMucG8KKysrIGIvcG8vZXMucG8KQEAgLTYsNyArNiw3IEBACiBtc2dzdHIgIiIKICJQcm9qZWN0LUlkLVZlcnNpb246IGRuc21hc3EgMi4yNFxuIgogIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwNy0wOC0yOSAxMTowOSswMTAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDgtMDItMTIgMTE6MDQrMDAwMFxuIgogIlBPLVJldmlzaW9uLURhdGU6IDIwMDUtMTAtMDcgMTE6MDQrMDEwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogQ2hyaXN0b3BoZXIgQ2hhdGhhbSA8Y2hyaXNsaW51eEBnbWFpbC5jb20+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogU3BhbmlzaCA8ZXNAbGkub3JnPlxuIgpAQCAtMTUsMzEgKzE1LDMxIEBACiAiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgogIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuICE9IDEpO1xuIgogCi0jOiBjYWNoZS5jOjY3MQorIzogY2FjaGUuYzo2ODAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsb2FkIG5hbWVzIGZyb20gJXM6ICVzIgogbXNnc3RyICJubyBzZSBwdWRvIGNhcmdhciBub21icmVzIGRlc2RlICVzOiAlcyIKIAotIzogY2FjaGUuYzo3MDUgZGhjcC5jOjcxNworIzogY2FjaGUuYzo3MTQgZGhjcC5jOjc1NwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiYmFkIGFkZHJlc3MgYXQgJXMgbGluZSAlZCIKIG1zZ3N0ciAiZGlyZWNjafNuIGVycvNuZWEgZW4gJXMgbO1uZWEgJWQiCiAKLSM6IGNhY2hlLmM6NzUyIGRoY3AuYzo3MzEKKyM6IGNhY2hlLmM6NzYxIGRoY3AuYzo3NzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIG5hbWUgYXQgJXMgbGluZSAlZCIKIG1zZ3N0ciAibm9tYnJlIGVycvNuZW8gZW4gJXMgbO1uZWEgJWQiCiAKLSM6IGNhY2hlLmM6NzU5IGRoY3AuYzo3ODUKKyM6IGNhY2hlLmM6NzY4IGRoY3AuYzo4MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZCAlcyAtICVkIGFkZHJlc3NlcyIKIG1zZ3N0ciAiZGlyZWNjafNuZXMgJXMgLSAlZCBsZe1kYXMiCiAKLSM6IGNhY2hlLmM6Nzk3CisjOiBjYWNoZS5jOjgwNgogbXNnaWQgImNsZWFyZWQgY2FjaGUiCiBtc2dzdHIgImVsIGNhY2jpIGZ1ZSBsaWJlcmFkbyIKIAotIzogY2FjaGUuYzo4NDQKKyM6IGNhY2hlLmM6ODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3QgZ2l2aW5nIG5hbWUgJXMgdG8gdGhlIERIQ1AgbGVhc2Ugb2YgJXMgYmVjYXVzZSB0aGUgbmFtZSBleGlzdHMgaW4gJXMgIgpAQCAtNDgsMzk0ICs0OCw0NDUgQEAKICJubyBvdG9yZ2FuZG8gbm9tYnJlICVzIGFsIGFycmllbmRvIERIQ1AgZGUgJXMgcG9ycXVlIGVsIG5vbWJyZSBleGlzdGUgZW4gJXMgIgogImNvbiBkaXJlY2Np824gJXMiCiAKLSM6IGNhY2hlLmM6ODg0Ci0jLCBmdXp6eSwgYy1mb3JtYXQKLW1zZ2lkICIiCi0idGltZSAlbHUsIGNhY2hlIHNpemUgJWQsICVkLyVkIGNhY2hlIGluc2VydGlvbnMgcmUtdXNlZCB1bmV4cGlyZWQgY2FjaGUgIgotImVudHJpZXMuIgotbXNnc3RyICIiCi0idGllbXBvICVsdSwgdGFtYfFvIGRlIGNhY2jpICVkLCAlZC8lZCBpbnNlcmNp825lcyBkZSBjYWNo6SByZXV0aWxpemFyb24gIgotIm9iamV0b3Mgbm8gdmVuY2lkb3MuIgorIzogY2FjaGUuYzo5MDcKKyMsIGMtZm9ybWF0Cittc2dpZCAidGltZSAlbHUiCittc2dzdHIgInRpZW1wbyAlbHUiCiAKLSM6IHV0aWwuYzoxNTcgb3B0aW9uLmM6NzU4CisjOiBjYWNoZS5jOjkwOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2FjaGUgc2l6ZSAlZCwgJWQvJWQgY2FjaGUgaW5zZXJ0aW9ucyByZS11c2VkIHVuZXhwaXJlZCBjYWNoZSBlbnRyaWVzLiIKK21zZ3N0ciAiIgorInRhbWHxbyBkZSBjYWNo6SAlZCwgJWQvJWQgaW5zZXJjafNuZXMgZGUgY2FjaOkgcmV1dGlsaXphcm9uIG9iamV0b3Mgbm8gIgorInZlbmNpZG9zLiIKKworIzogY2FjaGUuYzo5MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAicXVlcmllcyBmb3J3YXJkZWQgJXUsIHF1ZXJpZXMgYW5zd2VyZWQgbG9jYWxseSAldSIKK21zZ3N0ciAiYvpzcXVlZGFzIHJlZW52aWFkYXMgJXUsIGL6c3F1ZWRhcyByZXNwb25kaWRhcyBsb2NhbG1lbnRlICV1IgorCisjOiBjYWNoZS5jOjkzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZXJ2ZXIgJXMjJWQ6IHF1ZXJpZXMgc2VudCAldSwgcmV0cmllZCBvciBmYWlsZWQgJXUiCittc2dzdHIgInNlcnZpZG9yICVzIyVkOiBi+nNxdWVkYXMgZW52aWFkYXMgJXUsIHJlaW50ZW50YWRhcyBvIGZhbGxpZGFzICV1IgorCisjOiB1dGlsLmM6MTYwCiBtc2dpZCAiY291bGQgbm90IGdldCBtZW1vcnkiCiBtc2dzdHIgIm5vIHNlIHB1ZG8gYWRxdWlyaXIgbWVtb3JpYSIKIAotIzogdXRpbC5jOjE2NworIzogdXRpbC5jOjE3MAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlICVkIGJ5dGVzIgotbXNnc3RyICJubyBzZSBwdWRvIGNhcmdhciAlczogJXMiCittc2dzdHIgIm5vIHNlIHB1ZG8gYWxvY2FyICVkIGJ5dGVzIgogCi0jOiB1dGlsLmM6MjcyCisjOiB1dGlsLmM6Mjc1CiAjLCBjLWZvcm1hdAogbXNnaWQgImluZmluaXRlIgogbXNnc3RyICJpbmZpbml0byIKIAotIzogb3B0aW9uLmM6MTg4CisjOiBvcHRpb24uYzoyNDQKIG1zZ2lkICJTcGVjaWZ5IGxvY2FsIGFkZHJlc3MoZXMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIkVzcGVjaWZpY2FyIGRpcmVjY2nzbihlcykgbG9jYWxlcyBk825kZSBlc2N1Y2hhci4iCiAKLSM6IG9wdGlvbi5jOjE4OQorIzogb3B0aW9uLmM6MjQ1CiBtc2dpZCAiUmV0dXJuIGlwYWRkciBmb3IgYWxsIGhvc3RzIGluIHNwZWNpZmllZCBkb21haW5zLiIKIG1zZ3N0ciAiIgogIlJldG9ybmFyIGlwYWRkciAoZGlyZWNjafNuIElQKSBwYXJhIHRvZG9zIGxvcyBob3N0cyBlbiBsb3MgZG9taW5pb3MgIgogImVzcGVjaWZpY2Fkb3MuIgogCi0jOiBvcHRpb24uYzoxOTAKKyM6IG9wdGlvbi5jOjI0NgogbXNnaWQgIkZha2UgcmV2ZXJzZSBsb29rdXBzIGZvciBSRkMxOTE4IHByaXZhdGUgYWRkcmVzcyByYW5nZXMuIgogbXNnc3RyICIiCiAiRmFsc2lmaWNhciBi+nNxdWVkYXMgcmV2ZXJzYXMgcGFyYSByYW5nb3MgZGUgZGlyZWNjafNuIHByaXZhZG9zIFJGQzE5MTguIgogCi0jOiBvcHRpb24uYzoxOTEKKyM6IG9wdGlvbi5jOjI0NwogbXNnaWQgIlRyZWF0IGlwYWRkciBhcyBOWERPTUFJTiAoZGVmZWF0cyBWZXJpc2lnbiB3aWxkY2FyZCkuIgogbXNnc3RyICJUcmF0YXIgaXBhZGRyIChkaXJlY2Np824gSVApIGNvbW8gTlhET01BSU4gKGRlcnJvdGEgY29tb2TtbiBWZXJpc2lnbikuIgogCi0jOiBvcHRpb24uYzoxOTIKKyM6IG9wdGlvbi5jOjI0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBjYWNoZSBpbiBlbnRyaWVzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICIiCiAiRXNwZWNpZmljYXIgdGFtYfFvIGRlIGNhY2jpIGVuIGN1YW50byBhIGNhbnRpZGFkIGRlIG9iamV0b3MgKCVzIHBvciAiCiAicHJlZGV0ZXJtaW5hZG8pLiIKIAotIzogb3B0aW9uLmM6MTkzCisjOiBvcHRpb24uYzoyNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBjb25maWd1cmF0aW9uIGZpbGUgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIkVzcGVjaWZpY2FyIGFyY2hpdm8gZGUgY29uZmlndXJhY2nzbiAoJXMgcG9yIHByZWRldGVybWluYWRvKS4iCiAKLSM6IG9wdGlvbi5jOjE5NAorIzogb3B0aW9uLmM6MjUwCiBtc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZDogcnVuIGluIGRlYnVnIG1vZGUuIgogbXNnc3RyICJOTyBoYWNlciB1biBmb3JrIGhhY2lhIGVsIGZvbmRvOiBjb3JyZXIgZW4gbW9kbyBkZWJ1Zy4iCiAKLSM6IG9wdGlvbi5jOjE5NQorIzogb3B0aW9uLmM6MjUxCiBtc2dpZCAiRG8gTk9UIGZvcndhcmQgcXVlcmllcyB3aXRoIG5vIGRvbWFpbiBwYXJ0LiIKIG1zZ3N0ciAiTk8gcmVlbnZpYXIgYvpzcXVlZGFzIHNpbiBwYXJ0ZSBkZSBkb21pbmlvLiIKIAotIzogb3B0aW9uLmM6MTk2CisjOiBvcHRpb24uYzoyNTIKIG1zZ2lkICJSZXR1cm4gc2VsZi1wb2ludGluZyBNWCByZWNvcmRzIGZvciBsb2NhbCBob3N0cy4iCiBtc2dzdHIgIlJldG9ybmFyIGV4cGVkaWVudGVzIE1YIGF1dG8tc2XxYWxhZG9yZXMgcGFyYSBob3N0cyBsb2NhbGVzLiIKIAotIzogb3B0aW9uLmM6MTk3CisjOiBvcHRpb24uYzoyNTMKIG1zZ2lkICJFeHBhbmQgc2ltcGxlIG5hbWVzIGluIC9ldGMvaG9zdHMgd2l0aCBkb21haW4tc3VmZml4LiIKIG1zZ3N0ciAiIgogIkV4cGFuZGlyIG5vbWJyZXMgc2ltcGxlcyBlbiAvZXRjL2hvc3RzIGNvbiBkb21haW4tc3VmZml4IChzdWZpam8gZGUgZG9taW5pbykuIgogCi0jOiBvcHRpb24uYzoxOTgKKyM6IG9wdGlvbi5jOjI1NAogbXNnaWQgIkRvbid0IGZvcndhcmQgc3B1cmlvdXMgRE5TIHJlcXVlc3RzIGZyb20gV2luZG93cyBob3N0cy4iCiBtc2dzdHIgIk5vIHJlZW52aWFyIHBlZGlkb3MgRE5TIGZhbHNvcyBkZXNkZSBt4XF1aW5hcyBXaW5kb3dzLiIKIAotIzogb3B0aW9uLmM6MTk5CisjOiBvcHRpb24uYzoyNTUKIG1zZ2lkICJFbmFibGUgREhDUCBpbiB0aGUgcmFuZ2UgZ2l2ZW4gd2l0aCBsZWFzZSBkdXJhdGlvbi4iCiBtc2dzdHIgIkhhYmlsaXRhciBESENQIGRlbnRybyBkZWwgcmFuZ28gYnJpbmRhZG8gY29uIGR1cmFjafNuIGRlbCBhcnJpZW5kby4iCiAKLSM6IG9wdGlvbi5jOjIwMAorIzogb3B0aW9uLmM6MjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoYW5nZSB0byB0aGlzIGdyb3VwIGFmdGVyIHN0YXJ0dXAgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIkNhbWJpYXIgYSBlc3RlIGdydXBvIGRlc3B16XMgZGVsIGluaWNpbyAoJXMgcG9yIHByZWRldGVybWluYWRvKS4iCiAKLSM6IG9wdGlvbi5jOjIwMQorIzogb3B0aW9uLmM6MjU3CiBtc2dpZCAiU2V0IGFkZHJlc3Mgb3IgaG9zdG5hbWUgZm9yIGEgc3BlY2lmaWVkIG1hY2hpbmUuIgogbXNnc3RyICJGaWphciBkaXJlY2Np824gbyBub21icmUgZGUgaG9zdCBwYXJhIHVuYSBt4XF1aW5hIGVzcGVjaWZpY2FkYS4iCiAKLSM6IG9wdGlvbi5jOjIwMgorIzogb3B0aW9uLmM6MjU4CiBtc2dpZCAiUmVhZCBESENQIGhvc3Qgc3BlY3MgZnJvbSBmaWxlIgotbXNnc3RyICIiCittc2dzdHIgIkxlZXIgZXNwZWNpZmljYWNpb25lcyBESENQIGRlIGhvc3QgZGVzZGUgYXJjaGl2byIKIAotIzogb3B0aW9uLmM6MjAzCisjOiBvcHRpb24uYzoyNTkKK21zZ2lkICJSZWFkIERIQ1Agb3B0aW9uIHNwZWNzIGZyb20gZmlsZSIKK21zZ3N0ciAiTGVlciBvcGNpb25lcyBESENQIGRlIGhvc3QgZGVzZGUgYXJjaGl2byIKKworIzogb3B0aW9uLmM6MjYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvIE5PVCBsb2FkICVzIGZpbGUuIgogbXNnc3RyICJOTyBjYXJnYXIgYXJjaGl2byAlcy4iCiAKLSM6IG9wdGlvbi5jOjIwNAorIzogb3B0aW9uLmM6MjYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgYSBob3N0cyBmaWxlIHRvIGJlIHJlYWQgaW4gYWRkaXRpb24gdG8gJXMuIgogbXNnc3RyICJFc3BlY2lmaWNhciB1biBhcmNoaXZvIGRlIGhvc3RzIHBhcmEgc2VyIGxl7WRvIGFkaWNpb25hbG1lbnRlIGEgJXMuIgogCi0jOiBvcHRpb24uYzoyMDUKKyM6IG9wdGlvbi5jOjI2MgogbXNnaWQgIlNwZWNpZnkgaW50ZXJmYWNlKHMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIkVzcGVjaWZpY2FyIGludGVyZmFjZShzKSBkb25kZSBlc2N1Y2hhci4iCiAKLSM6IG9wdGlvbi5jOjIwNgorIzogb3B0aW9uLmM6MjYzCiBtc2dpZCAiU3BlY2lmeSBpbnRlcmZhY2UocykgTk9UIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIkVzcGVjaWZpY2FyIGludGVyZmFjZShzKSBkb25kZSBOTyBlc2N1Y2hhci4iCiAKLSM6IG9wdGlvbi5jOjIwNworIzogb3B0aW9uLmM6MjY0CiAjLCBmdXp6eQogbXNnaWQgIk1hcCBESENQIHVzZXIgY2xhc3MgdG8gdGFnLiIKIG1zZ3N0ciAiVHJhemFyIGNsYXNlIGRlIHVzdWFyaW8gREhDUCBhIGV0aXF1ZXRhLiIKIAotIzogb3B0aW9uLmM6MjA4CisjOiBvcHRpb24uYzoyNjUKIG1zZ2lkICJNYXAgUkZDMzA0NiBjaXJjdWl0LWlkIHRvIHRhZy4iCiBtc2dzdHIgIlRyYXphciBjaXJjdWl0LWlkIChpZGVudGlmaWNhY2nzbiBkZSBjaXJjdWl0bykgUkZDMzA0NiBhIGV0aXF1ZXRhLiIKIAotIzogb3B0aW9uLmM6MjA5CisjOiBvcHRpb24uYzoyNjYKIG1zZ2lkICJNYXAgUkZDMzA0NiByZW1vdGUtaWQgdG8gdGFnLiIKIG1zZ3N0ciAiVHJhemFyIHJlbW90ZS1pZCAoaWRlbnRpZmljYWNp824gcmVtb3RhKSBSRkMzMDQ2IGEgZXRpcXVldGEuIgogCi0jOiBvcHRpb24uYzoyMTAKKyM6IG9wdGlvbi5jOjI2NwogbXNnaWQgIk1hcCBSRkMzOTkzIHN1YnNjcmliZXItaWQgdG8gdGFnLiIKIG1zZ3N0ciAiVHJhemFyIHN1YnNjcmliZXItaWQgKGlkZW50aWZpY2FjafNuIGRlIHN1c2NyaXRvcikgUkZDMzk5MyBhIGV0aXF1ZXRhLiIKIAotIzogb3B0aW9uLmM6MjExCisjOiBvcHRpb24uYzoyNjgKICMsIGZ1enp5CiBtc2dpZCAiRG9uJ3QgZG8gREhDUCBmb3IgaG9zdHMgd2l0aCB0YWcgc2V0LiIKIG1zZ3N0ciAiTm8gaGFjZXIgREhDUCBwYXJhIGhvc3RzIGNvbiBsYSBldGlxdWV0YSBmaWphZGEuIgogCi0jOiBvcHRpb24uYzoyMTIKKyM6IG9wdGlvbi5jOjI2OQorIywgZnV6enkKK21zZ2lkICJGb3JjZSBicm9hZGNhc3QgcmVwbGllcyBmb3IgaG9zdHMgd2l0aCB0YWcgc2V0LiIKK21zZ3N0ciAiRm9yemFyIHJlc3B1ZXN0YXMgYnJvYWRjYXN0IHBhcmEgaG9zdHMgY29uIGV0aXF1ZXRhIGZpamFkYS4iCisKKyM6IG9wdGlvbi5jOjI3MAogbXNnaWQgIkRvIE5PVCBmb3JrIGludG8gdGhlIGJhY2tncm91bmQsIGRvIE5PVCBydW4gaW4gZGVidWcgbW9kZS4iCiBtc2dzdHIgIk5PIGhhY2VyIHVuIGZvcmsgaGFjaWEgZWwgZm9uZG8sIE5PIGNvcnJlciBlbiBtb2RvIGRlYnVnLiIKIAotIzogb3B0aW9uLmM6MjEzCisjOiBvcHRpb24uYzoyNzEKIG1zZ2lkICJBc3N1bWUgd2UgYXJlIHRoZSBvbmx5IERIQ1Agc2VydmVyIG9uIHRoZSBsb2NhbCBuZXR3b3JrLiIKIG1zZ3N0ciAiQXN1bWlyIHF1ZSBzb21vcyBlbCD6bmljbyBzZXJ2aWRvciBESENQIGVuIGxhIHJlZCBsb2NhbC4iCiAKLSM6IG9wdGlvbi5jOjIxNAorIzogb3B0aW9uLmM6MjcyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgd2hlcmUgdG8gc3RvcmUgREhDUCBsZWFzZXMgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIkVzcGVjaWZpY2FyIGRvbmRlIGFsbWFjZW5hciBhcnJpZW5kb3MgREhDUCAoJXMgcG9yIHByZWRldGVybWluYWRvKS4iCiAKLSM6IG9wdGlvbi5jOjIxNQorIzogb3B0aW9uLmM6MjczCiBtc2dpZCAiUmV0dXJuIE1YIHJlY29yZHMgZm9yIGxvY2FsIGhvc3RzLiIKIG1zZ3N0ciAiUmV0b3JuYXIgZXhwZWRpZW50ZXMgTVggcGFyYSBob3N0cyBsb2NhbGVzLiIKIAotIzogb3B0aW9uLmM6MjE2CisjOiBvcHRpb24uYzoyNzQKIG1zZ2lkICJTcGVjaWZ5IGFuIE1YIHJlY29yZC4iCiBtc2dzdHIgIkVzcGVjaWZpY2FyIHVuIGV4cGVkaWVudGUgTVguIgogCi0jOiBvcHRpb24uYzoyMTcKKyM6IG9wdGlvbi5jOjI3NQogbXNnaWQgIlNwZWNpZnkgQk9PVFAgb3B0aW9ucyB0byBESENQIHNlcnZlci4iCiBtc2dzdHIgIkVzcGVjaWZpY2FyIG9wY2lvbmVzIEJPT1RQIGEgc2Vydmlkb3IgREhDUC4iCiAKLSM6IG9wdGlvbi5jOjIxOAorIzogb3B0aW9uLmM6Mjc2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvIE5PVCBwb2xsICVzIGZpbGUsIHJlbG9hZCBvbmx5IG9uIFNJR0hVUC4iCiBtc2dzdHIgIk5PIHJldmlzYXIgYXJjaGl2byAlcyBwZXJp82RpY2FtZW50ZSwgcmVjYXJnYXIgc29sbyBjb24gU0lHSFVQLiIKIAotIzogb3B0aW9uLmM6MjE5CisjOiBvcHRpb24uYzoyNzcKIG1zZ2lkICJEbyBOT1QgY2FjaGUgZmFpbGVkIHNlYXJjaCByZXN1bHRzLiIKIG1zZ3N0ciAiTk8gYWxtYWNlbmFyIGVuIGNhY2jpIHJlc3VsdGFkb3MgZGUgYvpzcXVlZGFzIGZhbGxpZGFzLiIKIAotIzogb3B0aW9uLmM6MjIwCisjOiBvcHRpb24uYzoyNzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlIG5hbWVzZXJ2ZXJzIHN0cmljdGx5IGluIHRoZSBvcmRlciBnaXZlbiBpbiAlcy4iCiBtc2dzdHIgIlVzYXIgc2Vydmlkb3JlcyBETlMgZXN0cmljdGFtZW50ZSBlbiBlbCDzcmRlbiBicmluZGFkbyBlbiAlcy4iCiAKLSM6IG9wdGlvbi5jOjIyMQorIzogb3B0aW9uLmM6Mjc5CiAjLCBmdXp6eQogbXNnaWQgIlNwZWNpZnkgb3B0aW9ucyB0byBiZSBzZW50IHRvIERIQ1AgY2xpZW50cy4iCiBtc2dzdHIgIkVzcGVjaWZpY2FyIG9wY2lvbmVzIHBhcmEgc2VyIGVudmlhZGFzIGEgY2xpZW50ZXMgREhDUC4iCiAKLSM6IG9wdGlvbi5jOjIyMgorIzogb3B0aW9uLmM6MjgwCiBtc2dpZCAiREhDUCBvcHRpb24gc2VudCBldmVuIGlmIHRoZSBjbGllbnQgZG9lcyBub3QgcmVxdWVzdCBpdC4iCiBtc2dzdHIgIk9wY2nzbiBESENQIGVudmlhZGEgYfpuIHNpIGVsIGNsaWVudGUgbm8gbGEgcGlkZS4iCiAKLSM6IG9wdGlvbi5jOjIyMworIzogb3B0aW9uLmM6MjgxCiBtc2dpZCAiU3BlY2lmeSBwb3J0IHRvIGxpc3RlbiBmb3IgRE5TIHJlcXVlc3RzIG9uIChkZWZhdWx0cyB0byA1MykuIgogbXNnc3RyICIiCiAiRXNwZWNpZmljYXIgcHVlcnRvIGRvbmRlIGVzY3VjaGFyIHBvciBi+nNxdWVkYXMgRE5TICg1MyBwb3IgcHJlZGV0ZXJtaW5hZG8pLiIKIAotIzogb3B0aW9uLmM6MjI0CisjOiBvcHRpb24uYzoyODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiTWF4aW11bSBzdXBwb3J0ZWQgVURQIHBhY2tldCBzaXplIGZvciBFRE5TLjAgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIiIKICJUYW1h8W8gbeF4aW1vIGRlIHBhcXVldGVzIFVEUCBzb3BvcnRhZG8gcGFyYSBFRE5TLjAgKCVzIHBvciBwcmVkZXRlcm1pbmFkbykuIgogCi0jOiBvcHRpb24uYzoyMjUKLW1zZ2lkICJMb2cgcXVlcmllcy4iCisjOiBvcHRpb24uYzoyODMKKyMsIGZ1enp5Cittc2dpZCAiTG9nIEROUyBxdWVyaWVzLiIKIG1zZ3N0ciAiQml0YWNvcmVhciBi+nNxdWVkYXMuIgogCi0jOiBvcHRpb24uYzoyMjYKLW1zZ2lkICJGb3JjZSB0aGUgb3JpZ2luYXRpbmcgcG9ydCBmb3IgdXBzdHJlYW0gcXVlcmllcy4iCisjOiBvcHRpb24uYzoyODQKKyMsIGZ1enp5Cittc2dpZCAiRm9yY2UgdGhlIG9yaWdpbmF0aW5nIHBvcnQgZm9yIHVwc3RyZWFtIEROUyBxdWVyaWVzLiIKIG1zZ3N0ciAiRW5mb3J6YXIgZWwgcHVlcnRvIG9yaWdpbmFsIHBhcmEgYvpzcXVlZGFzIHVwc3RyZWFtLiIKIAotIzogb3B0aW9uLmM6MjI3CisjOiBvcHRpb24uYzoyODUKIG1zZ2lkICJEbyBOT1QgcmVhZCByZXNvbHYuY29uZi4iCiBtc2dzdHIgIk5PIGxlZXIgcmVzb2x2LmNvbmYuIgogCi0jOiBvcHRpb24uYzoyMjgKKyM6IG9wdGlvbi5jOjI4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IHBhdGggdG8gcmVzb2x2LmNvbmYgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIkVzcGVjaWZpY2FyIGVsIHBhdGggaGFjaWEgcmVzb2x2LmNvbmYgKCVzIHBvciBwcmVkZXRlcm1pbmFkbykuIgogCi0jOiBvcHRpb24uYzoyMjkKKyM6IG9wdGlvbi5jOjI4NwogbXNnaWQgIlNwZWNpZnkgYWRkcmVzcyhlcykgb2YgdXBzdHJlYW0gc2VydmVycyB3aXRoIG9wdGlvbmFsIGRvbWFpbnMuIgogbXNnc3RyICIiCiAiRXNwZWNpZmljYXIgZGlyZWNjafNuKGVzKSBkZSBzZXJ2aWRvcmVzIHVwc3RyZWFtIGNvbiBkb21pbmlvcyBvcGNpb25hbGVzLiIKIAotIzogb3B0aW9uLmM6MjMwCisjOiBvcHRpb24uYzoyODgKIG1zZ2lkICJOZXZlciBmb3J3YXJkIHF1ZXJpZXMgdG8gc3BlY2lmaWVkIGRvbWFpbnMuIgogbXNnc3RyICJOdW5jYSByZWVudmlhciBi+nNxdWVkYXMgYSBkb21pbmlvcyBlc3BlY2lmaWNhZG9zLiIKIAotIzogb3B0aW9uLmM6MjMxCisjOiBvcHRpb24uYzoyODkKIG1zZ2lkICJTcGVjaWZ5IHRoZSBkb21haW4gdG8gYmUgYXNzaWduZWQgaW4gREhDUCBsZWFzZXMuIgogbXNnc3RyICJFc3BlY2lmaWNhciBlbCBkb21pbmlvIHBhcmEgc2VyIGFzaWduYWRvIGVuIGFycmllbmRvcyBESENQLiIKIAotIzogb3B0aW9uLmM6MjMyCisjOiBvcHRpb24uYzoyOTAKIG1zZ2lkICJTcGVjaWZ5IGRlZmF1bHQgdGFyZ2V0IGluIGFuIE1YIHJlY29yZC4iCiBtc2dzdHIgIkVzcGVjaWZpY2FyIGRlc3Rpbm8gcHJlZGV0ZXJtaW5hZG8gZW4gdW4gZXhwZWRpZW50ZSBNWC4iCiAKLSM6IG9wdGlvbi5jOjIzMworIzogb3B0aW9uLmM6MjkxCiBtc2dpZCAiU3BlY2lmeSB0aW1lLXRvLWxpdmUgaW4gc2Vjb25kcyBmb3IgcmVwbGllcyBmcm9tIC9ldGMvaG9zdHMuIgogbXNnc3RyICIiCiAiRXNwZWNpZmljYXIgdGllbXBvIGRlIHZpZGEgZW4gc2VndW5kb3MgcGFyYSByZXNwdWVzdGFzIGRlc2RlIC9ldGMvaG9zdHMuIgogCi0jOiBvcHRpb24uYzoyMzQKKyM6IG9wdGlvbi5jOjI5MgorIywgZnV6enkKK21zZ2lkICJTcGVjaWZ5IHRpbWUtdG8tbGl2ZSBpbiBzZWNvbmRzIGZvciBuZWdhdGl2ZSBjYWNoaW5nLiIKK21zZ3N0ciAiRXNwZWNpZmljYXIgdGllbXBvIGRlIHZpZGEgZW4gc2VndW5kb3MgcGFyYSBjYWNo6SBuZWdhdGl2by4iCisKKyM6IG9wdGlvbi5jOjI5MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGFuZ2UgdG8gdGhpcyB1c2VyIGFmdGVyIHN0YXJ0dXAuIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJDYW1iaWFyIGEgZXN0ZSB1c3VhcmlvIGRlc3B1ZXMgZGVsIGluaWNpbyAoJXMgcG9yIHByZWRldGVybWluYWRvKS4iCiAKLSM6IG9wdGlvbi5jOjIzNQorIzogb3B0aW9uLmM6Mjk0CiAjLCBmdXp6eQogbXNnaWQgIk1hcCBESENQIHZlbmRvciBjbGFzcyB0byB0YWcuIgogbXNnc3RyICJUcmF6YXIgY2xhc2UgZGUgdmVuZGVkb3IgREhDUCBhIGV0aXF1ZXRhLiIKIAotIzogb3B0aW9uLmM6MjM2CisjOiBvcHRpb24uYzoyOTUKIG1zZ2lkICJEaXNwbGF5IGRuc21hc3EgdmVyc2lvbiBhbmQgY29weXJpZ2h0IGluZm9ybWF0aW9uLiIKIG1zZ3N0ciAiTW9zdHJhciBpbmZvcm1hY2nzbiBzb2JyZSBsYSB2ZXJzafNuIHkgY29weXJpZ2h0IGRlIGRuc21hc3EuIgogCi0jOiBvcHRpb24uYzoyMzcKKyM6IG9wdGlvbi5jOjI5NgogbXNnaWQgIlRyYW5zbGF0ZSBJUHY0IGFkZHJlc3NlcyBmcm9tIHVwc3RyZWFtIHNlcnZlcnMuIgogbXNnc3RyICJUcmFkdWNpciBkaXJlY2Npb25lcyBJUHY0IGRlc2RlIHNlcnZpZG9yZXMgdXBzdHJlYW0uIgogCi0jOiBvcHRpb24uYzoyMzgKKyM6IG9wdGlvbi5jOjI5NwogbXNnaWQgIlNwZWNpZnkgYSBTUlYgcmVjb3JkLiIKIG1zZ3N0ciAiRXNwZWNpZmljYXIgdW4gZXhwZWRpZW50ZSBTUlYuIgogCi0jOiBvcHRpb24uYzoyMzkKKyM6IG9wdGlvbi5jOjI5OAogbXNnaWQgIkRpc3BsYXkgdGhpcyBtZXNzYWdlLiBVc2UgLS1oZWxwIGRoY3AgZm9yIGtub3duIERIQ1Agb3B0aW9ucy4iCiBtc2dzdHIgIk1vc3RyYXIgZXN0ZSBtZW5zYWplLiBVc2FyIC0taGVscCBkaGNwIHBhcmEgb3BjaW9uZXMgREhDUCBjb25vY2lkYXMuIgogCi0jOiBvcHRpb24uYzoyNDAKKyM6IG9wdGlvbi5jOjI5OQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBwYXRoIG9mIFBJRCBmaWxlIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJFc3BlY2lmaWNhciBwYXRoIGRlIGFyY2hpdm8gUElEICglcyBwb3IgcHJlZGV0ZXJtaW5hZG8pLiIKIAotIzogb3B0aW9uLmM6MjQxCisjOiBvcHRpb24uYzozMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBtYXhpbXVtIG51bWJlciBvZiBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiRXNwZWNpZmljYXIgbvptZXJvIG3heGltbyBkZSBhcnJpZW5kb3MgREhDUCAoJXMgcG9yIHByZWRldGVybWluYWRvKS4iCiAKLSM6IG9wdGlvbi5jOjI0MgorIzogb3B0aW9uLmM6MzAxCiBtc2dpZCAiQW5zd2VyIEROUyBxdWVyaWVzIGJhc2VkIG9uIHRoZSBpbnRlcmZhY2UgYSBxdWVyeSB3YXMgc2VudCB0by4iCiBtc2dzdHIgIiIKICJSZXNwb25kZXIgYSBi+nNxdWVkYXMgRE5TIGVuIGJhc2UgYSBsYSBpbnRlcmZhY2UgYSBsYSBjdeFsIGZ1ZXJvbiBlbnZpYWRhcy4iCiAKLSM6IG9wdGlvbi5jOjI0MworIzogb3B0aW9uLmM6MzAyCiBtc2dpZCAiU3BlY2lmeSBUWFQgRE5TIHJlY29yZC4iCiBtc2dzdHIgIkVzcGVjaWZpY2FyIGV4cGVkaWVudGUgRE5TIFRYVC4iCiAKLSM6IG9wdGlvbi5jOjI0NAorIzogb3B0aW9uLmM6MzAzCiAjLCBmdXp6eQogbXNnaWQgIlNwZWNpZnkgUFRSIEROUyByZWNvcmQuIgogbXNnc3RyICJFc3BlY2lmaWNhciBleHBlZGllbnRlIEROUyBQVFIuIgogCi0jOiBvcHRpb24uYzoyNDUKKyM6IG9wdGlvbi5jOjMwNAogbXNnaWQgIkdpdmUgRE5TIG5hbWUgdG8gSVB2NCBhZGRyZXNzIG9mIGludGVyZmFjZS4iCiBtc2dzdHIgIk90b3JnYXIgbm9tYnJlIEROUyBhIGRpcmVjY2nzbiBJUHY0IGRlIGludGVyZmFjZS4iCiAKLSM6IG9wdGlvbi5jOjI0NgorIzogb3B0aW9uLmM6MzA1CiBtc2dpZCAiQmluZCBvbmx5IHRvIGludGVyZmFjZXMgaW4gdXNlLiIKIG1zZ3N0ciAiQWNvcGxhciBzb2xvIGEgaW50ZXJmYWNlcyBlbiB1c28uIgogCi0jOiBvcHRpb24uYzoyNDcKKyM6IG9wdGlvbi5jOjMwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWFkIERIQ1Agc3RhdGljIGhvc3QgaW5mb3JtYXRpb24gZnJvbSAlcy4iCiBtc2dzdHIgIkxlZXIgaW5mb3JtYWNp824gc29icmUgaG9zdHMgREhDUCBlc3ThdGljb3MgZGVzZGUgJXMuIgogCi0jOiBvcHRpb24uYzoyNDgKKyM6IG9wdGlvbi5jOjMwNwogbXNnaWQgIkVuYWJsZSB0aGUgREJ1cyBpbnRlcmZhY2UgZm9yIHNldHRpbmcgdXBzdHJlYW0gc2VydmVycywgZXRjLiIKIG1zZ3N0ciAiSGFiaWxpdGFyIGxhIGludGVyZmFjZSBEQnVzIHBhcmEgZmlqYXIgc2Vydmlkb3JlcyB1cHN0cmVhbSwgZXRjLiIKIAotIzogb3B0aW9uLmM6MjQ5CisjOiBvcHRpb24uYzozMDgKIG1zZ2lkICJEbyBub3QgcHJvdmlkZSBESENQIG9uIHRoaXMgaW50ZXJmYWNlLCBvbmx5IHByb3ZpZGUgRE5TLiIKIG1zZ3N0ciAiTm8gcHJvdmVlciBESENQIGVuIGVzdGEgaW50ZXJmYWNlLCBz82xvIHByb3ZlZXIgRE5TLiIKIAotIzogb3B0aW9uLmM6MjUwCisjOiBvcHRpb24uYzozMDkKIG1zZ2lkICJFbmFibGUgZHluYW1pYyBhZGRyZXNzIGFsbG9jYXRpb24gZm9yIGJvb3RwLiIKIG1zZ3N0ciAiSGFiaWxpdGFyIGFsb2NhY2nzbiBkaW7hbWljYSBkZSBkaXJlY2Np825lcyBwYXJhIEJPT1RQLiIKIAotIzogb3B0aW9uLmM6MjUxCisjOiBvcHRpb24uYzozMTAKICMsIGZ1enp5CiBtc2dpZCAiTWFwIE1BQyBhZGRyZXNzICh3aXRoIHdpbGRjYXJkcykgdG8gb3B0aW9uIHNldC4iCiBtc2dzdHIgIlRyYXphciBkaXJlY2Np824gTUFDIChjb24gY29tb2TtbmVzKSBhIG9wY2nzbiBmaWphZGEuIgogCi0jOiBvcHRpb24uYzoyNTMKKyM6IG9wdGlvbi5jOjMxMgogbXNnaWQgIlRyZWF0IERIQ1AgcmVxdWVzdHMgb24gYWxpYXNlcyBhcyBhcnJpdmluZyBmcm9tIGludGVyZmFjZS4iCiBtc2dzdHIgIlRyYXRhciBwZWRpZG9zIERIQ1AgZW4gYWxpYXMgY29tbyBzaSBsbGVnYXJhbiBkZSBsYSBpbnRlcmZhY2UuIgogCi0jOiBvcHRpb24uYzoyNTUKKyM6IG9wdGlvbi5jOjMxNAogbXNnaWQgIkRpc2FibGUgSUNNUCBlY2hvIGFkZHJlc3MgY2hlY2tpbmcgaW4gdGhlIERIQ1Agc2VydmVyLiIKIG1zZ3N0ciAiIgogIkRlc2hhYmlsaXRhciB2ZXJpZmljYWNp824gZGUgZGlyZWNjafNuZXMgZWNobyBJQ01QIGVuIGVsIHNlcnZpZG9yIERIQ1AuIgogCi0jOiBvcHRpb24uYzoyNTYKKyM6IG9wdGlvbi5jOjMxNQogbXNnaWQgIlNjcmlwdCB0byBydW4gb24gREhDUCBsZWFzZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24uIgogbXNnc3RyICIiCiAiQXJjaGl2byBndWnzbiBwYXJhIGVqZWN1dGFyIGN1YW5kbyBzZSBjcmVhIG8gZGVzdHJ1eWUgdW4gYXJyaWVuZG8gREhDUC4iCiAKLSM6IG9wdGlvbi5jOjI1NworIzogb3B0aW9uLmM6MzE2CiBtc2dpZCAiUmVhZCBjb25maWd1cmF0aW9uIGZyb20gYWxsIHRoZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4iCiBtc2dzdHIgIkxlZXIgY29uZmlndXJhY2nzbiBkZXNkZSB0b2RvcyBsb3MgYXJjaGl2b3MgZW4gZXN0ZSBkaXJlY3RvcmlvLiIKIAotIzogb3B0aW9uLmM6MjU4CisjOiBvcHRpb24uYzozMTcKICMsIGZ1enp5CiBtc2dpZCAiTG9nIHRvIHRoaXMgc3lzbG9nIGZhY2lsaXR5IG9yIGZpbGUuIChkZWZhdWx0cyB0byBEQUVNT04pIgogbXNnc3RyICIiCiAiQml0YWNvcmVhciBhIGVzdGEgZmFjaWxpZGFkIHN5c2xvZyBvIGFyY2hpdm8uIChEQUVNT04gcG9yIHByZWRldGVybWluYWRvKSIKIAotIzogb3B0aW9uLmM6MjU5CisjOiBvcHRpb24uYzozMTgKIG1zZ2lkICJSZWFkIGxlYXNlcyBhdCBzdGFydHVwLCBidXQgbmV2ZXIgd3JpdGUgdGhlIGxlYXNlIGZpbGUuIgogbXNnc3RyICJMZWVyIGFycmllbmRvcyBhbCBpbmljaW8sIHBlcm8gbnVuY2EgZXNjcmliaXIgZWwgYXJjaGl2byBkZSBhcnJpZW5kb3MuIgogCi0jOiBvcHRpb24uYzoyNjAKKyM6IG9wdGlvbi5jOjMxOQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBETlMgcXVlcmllcy4gKGRlZmF1bHRzIHRvICVzKSIKIG1zZ3N0ciAiTvptZXJvIG3heGltbyBkZSBi+nNxdWVkYXMgRE5TIHNpbXVsdOFuZWFzLiAoJXMgcG9yIHByZWRldGVybWluYWRvKSIKIAotIzogb3B0aW9uLmM6MjYxCisjOiBvcHRpb24uYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xlYXIgRE5TIGNhY2hlIHdoZW4gcmVsb2FkaW5nICVzLiIKIG1zZ3N0ciAiTGliZXJhciBjYWNo6SBETlMgYWwgcmVjYXJnYXIgJXMuIgogCi0jOiBvcHRpb24uYzoyNjIKKyM6IG9wdGlvbi5jOjMyMQogbXNnaWQgIklnbm9yZSBob3N0bmFtZXMgcHJvdmlkZWQgYnkgREhDUCBjbGllbnRzLiIKIG1zZ3N0ciAiSWdub3JhciBub21icmVzIGRlIGhvc3QgYnJpbmRhZG9zIHBvciBjbGllbnRlcyBESENQLiIKIAotIzogb3B0aW9uLmM6MjYzCisjOiBvcHRpb24uYzozMjIKK21zZ2lkICJEbyBOT1QgcmV1c2UgZmlsZW5hbWUgYW5kIHNlcnZlciBmaWVsZHMgZm9yIGV4dHJhIERIQ1Agb3B0aW9ucy4iCittc2dzdHIgIiIKKyJOTyByZXV0aWxpemFyIGNhbXBvcyBkZSBub21icmUgZGUgYXJjaGl2byB5IHNlcnZpZG9yIHBhcmEgb3BjaW9uZXMgREhDUCAiCisiZXh0cmEuIgorCisjOiBvcHRpb24uYzozMjMKIG1zZ2lkICJFbmFibGUgaW50ZWdyYXRlZCByZWFkLW9ubHkgVEZUUCBzZXJ2ZXIuIgogbXNnc3RyICJIYWJpbGl0YXIgc2Vydmlkb3IgaW50ZWdyYWRvIFRGVFAgc29sby1sZWN0dXJhLiIKIAotIzogb3B0aW9uLmM6MjY0CisjOiBvcHRpb24uYzozMjQKIG1zZ2lkICJFeHBvcnQgZmlsZXMgYnkgVEZUUCBvbmx5IGZyb20gdGhlIHNwZWNpZmllZCBzdWJ0cmVlLiIKIG1zZ3N0ciAiRXhwb3J0YXIgYXJjaGl2b3Mgdu1hIFRGVFAgc29sbyBkZWwgc3ViLeFyYm9sIGVzcGVjaWZpY2Fkby4iCiAKLSM6IG9wdGlvbi5jOjI2NQorIzogb3B0aW9uLmM6MzI1CiBtc2dpZCAiQWRkIGNsaWVudCBJUCBhZGRyZXNzIHRvIHRmdHAtcm9vdC4iCi1tc2dzdHIgIiIKK21zZ3N0ciAiQWdyZWdhciBJUCBkZSBjbGllbnRlIGEgdGZ0cC1yb290LiIKIAotIzogb3B0aW9uLmM6MjY2CisjOiBvcHRpb24uYzozMjYKIG1zZ2lkICJBbGxvdyBhY2Nlc3Mgb25seSB0byBmaWxlcyBvd25lZCBieSB0aGUgdXNlciBydW5uaW5nIGRuc21hc3EuIgogbXNnc3RyICIiCiAiUGVybWl0aXIgYWNjZXNvIHNvbG8gYSBhcmNoaXZvcyBwZXJ0ZW5lY2llbnRlcyBhbCB1c3VhcmlvIHF1ZSBjb3JyZSBkbnNtYXNxLiIKIAotIzogb3B0aW9uLmM6MjY3CisjOiBvcHRpb24uYzozMjcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIk1heGltdW0gbnVtYmVyIG9mIGNvbm5jdXJyZW50IFRGVFAgdHJhbnNmZXJzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICIiCiAiTvptZXJvIG3heGltbyBkZSB0cmFuc2ZlcmVuY2lhcyBURlRQIHNpbXVsdOFuZWFzICglcyBwb3IgcHJlZGV0ZXJtaW5hZG8pLiIKIAotIzogb3B0aW9uLmM6MjY4CisjOiBvcHRpb24uYzozMjgKIG1zZ2lkICJEaXNhYmxlIHRoZSBURlRQIGJsb2Nrc2l6ZSBleHRlbnNpb24uIgogbXNnc3RyICJEZXNoYWJpbGl0YXIgbGEgZXh0ZW5zafNuIFRGVFAgYmxvY2tzaXplICh0YW1h8W8gZGUgYmxvcXVlKS4iCiAKLSM6IG9wdGlvbi5jOjI2OQorIzogb3B0aW9uLmM6MzI5Cittc2dpZCAiRXBoZW1lcmFsIHBvcnQgcmFuZ2UgZm9yIHVzZSBieSBURlRQIHRyYW5zZmVycy4iCittc2dzdHIgIlJhbmdvIGRlIHB1ZXJ0b3MgZWbtbWVyb3MgcGFyYSBzZXIgdXNhZG9zIHBvciB0cmFuc2ZlcmVuY2lhcyBURlRQLiIKKworIzogb3B0aW9uLmM6MzMwCiBtc2dpZCAiRXh0cmEgbG9nZ2luZyBmb3IgREhDUC4iCiBtc2dzdHIgIkJpdGFjb3JlbyBleHRyYSBwYXJhIERIQ1AuIgogCi0jOiBvcHRpb24uYzoyNzAKKyM6IG9wdGlvbi5jOjMzMQogbXNnaWQgIkVuYWJsZSBhc3luYy4gbG9nZ2luZzsgb3B0aW9uYWxseSBzZXQgcXVldWUgbGVuZ3RoLiIKIG1zZ3N0ciAiSGFiaWxpdGFyIGJpdGFjb3JlbyBhc2luY3Lzbmljbzsgb3BjaW9uYWxtZW50ZSBmaWphciB0YW1h8W8gZGUgY29sYS4iCiAKLSM6IG9wdGlvbi5jOjUwMQorIzogb3B0aW9uLmM6MzMyCittc2dpZCAiU3RvcCBETlMgcmViaW5kaW5nLiBGaWx0ZXIgcHJpdmF0ZSBJUCByYW5nZXMgd2hlbiByZXNvbHZpbmcuIgorbXNnc3RyICJEZXRlbmVyIHJldmluY3VsYWNp824gRE5TLiBGaWx0cmFyIHJhbmdvcyBkZSBJUCBwcml2YWRvcyBhbCByZXNvbHZlci4iCisKKyM6IG9wdGlvbi5jOjMzMworbXNnaWQgIkFsd2F5cyBwZXJmb3JtIEROUyBxdWVyaWVzIHRvIGFsbCBzZXJ2ZXJzLiIKK21zZ3N0ciAiU2llbXByZSByZWFsaXphciBi+nNxdWVkYXMgRE5TIGEgdG9kb3MgbG9zIHNlcnZpZG9yZXMuIgorCisjOiBvcHRpb24uYzozMzQKK21zZ2lkICJTZXQgdGFnIGlmIGNsaWVudCBpbmNsdWRlcyBvcHRpb24gaW4gcmVxdWVzdC4iCittc2dzdHIgIkZpamFyIGV0aXF1ZXRhIHNpIGNsaWVudGUgaW5jbHV5ZSBvcGNp824gZW4gcGVkaWRvLiIKKworIzogb3B0aW9uLmM6NTg1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJVc2FnZTogZG5zbWFzcSBbb3B0aW9uc11cbiIKQEAgLTQ0NCwxNzMgKzQ5NSwxOTIgQEAKICJNb2RvIGRlIHVzbzogZG5zbWFzcSBbb3BjaW9uZXNdXG4iCiAiXG4iCiAKLSM6IG9wdGlvbi5jOjUwMworIzogb3B0aW9uLmM6NTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZSBzaG9ydCBvcHRpb25zIG9ubHkgb24gdGhlIGNvbW1hbmQgbGluZS5cbiIKIG1zZ3N0ciAiVXNhciBvcGNpb25lcyBjb3J0YXMgc29sbyBlbiBsYSBs7W5lYSBkZSBjb21hbmRvcy5cbiIKIAotIzogb3B0aW9uLmM6NTA1CisjOiBvcHRpb24uYzo1ODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVmFsaWQgb3B0aW9ucyBhcmUgOlxuIgogbXNnc3RyICJPcGNpb25lcyB24WxpZGFzIHNvbiA6XG4iCiAKLSM6IG9wdGlvbi5jOjUyNgorIzogb3B0aW9uLmM6NjEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIktub3duIERIQ1Agb3B0aW9uczpcbiIKIG1zZ3N0ciAiT3BjaW9uZXMgREhDUCBjb25vY2lkYXM6XG4iCiAKLSM6IG9wdGlvbi5jOjU5OQorIzogb3B0aW9uLmM6NjgzCiBtc2dpZCAiYmFkIGRoY3Atb3B0aW9uIgogbXNnc3RyICJvcGNp824gZGhjcC1vcHRpb24gZXJy825lYSIKIAotIzogb3B0aW9uLmM6NjU1CisjOiBvcHRpb24uYzo3MzkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIElQIGFkZHJlc3MiCiBtc2dzdHIgImRpcmVjY2nzbiBJUCBlcnLzbmVhIgogCi0jOiBvcHRpb24uYzo3NTMKKyM6IG9wdGlvbi5jOjgzNwogbXNnaWQgImJhZCBkb21haW4gaW4gZGhjcC1vcHRpb24iCiBtc2dzdHIgImRvbWluaW8gZXJy825lbyBlbiBkaGNwLW9wdGlvbiIKIAotIzogb3B0aW9uLmM6ODA5CisjOiBvcHRpb24uYzo4OTUKIG1zZ2lkICJkaGNwLW9wdGlvbiB0b28gbG9uZyIKIG1zZ3N0ciAib3BjafNuIGRoY3Atb3B0aW9uIGRlbWFzaWFkbyBsYXJnYSIKIAotIzogb3B0aW9uLmM6ODUzCisjOiBvcHRpb24uYzo5NDIKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBhY2Nlc3MgZGlyZWN0b3J5ICVzOiAlcyIKIG1zZ3N0ciAibm8gc2UgcHVlZGUgYWNjZXNhciBkaXJlY3RvcmlvICVzOiAlcyIKIAotIzogb3B0aW9uLmM6ODcyIHRmdHAuYzozMTMKKyM6IG9wdGlvbi5jOjk2MSB0ZnRwLmM6MzQzCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgYWNjZXNzICVzOiAlcyIKIG1zZ3N0ciAibm8gc2UgcHVlZGUgYWNjZXNhciAlczogJXMiCiAKLSM6IG9wdGlvbi5jOjkxMworIzogb3B0aW9uLmM6OTk4CiAjLCBmdXp6eQogbXNnaWQgIm9ubHkgb25lIGRoY3AtaG9zdHNmaWxlIGFsbG93ZWQiCi1tc2dzdHIgInNvbG8gdW5hIGV0aXF1ZXRhIG5ldGlkIHBlcm1pdGlkYSIKK21zZ3N0ciAic29sbyB1biBkaGNwLWhvc3RzZmlsZSBwZXJtaXRpZG8iCiAKLSM6IG9wdGlvbi5jOjk2MgorIzogb3B0aW9uLmM6MTAwNQorIywgZnV6enkKK21zZ2lkICJvbmx5IG9uZSBkaGNwLW9wdHNmaWxlIGFsbG93ZWQiCittc2dzdHIgInNvbG8gdW4gZGhjcC1vcHRzZmlsZSBwZXJtaXRpZG8iCisKKyM6IG9wdGlvbi5jOjEwNDkKIG1zZ2lkICJiYWQgTVggcHJlZmVyZW5jZSIKIG1zZ3N0ciAicHJlZmVyZW5jaWEgTVggZXJy825lYSIKIAotIzogb3B0aW9uLmM6OTcxCisjOiBvcHRpb24uYzoxMDUzCiBtc2dpZCAiYmFkIE1YIG5hbWUiCiBtc2dzdHIgIm5vbWJyZSBNWCBlcnLzbmVvIgogCi0jOiBvcHRpb24uYzo5ODkKKyM6IG9wdGlvbi5jOjEwNjcKIG1zZ2lkICJiYWQgTVggdGFyZ2V0IgogbXNnc3RyICJkZXN0aW5vIE1YIGVycvNuZW8iCiAKLSM6IG9wdGlvbi5jOjEwMDEKKyM6IG9wdGlvbi5jOjEwNzgKIG1zZ2lkICJjYW5ub3QgcnVuIHNjcmlwdHMgdW5kZXIgdUNsaW51eCIKIG1zZ3N0ciAibm8gc2UgcHVlZGVuIGNvcnJlciBhcmNoaXZvcyBndWnzbmVzIGJham8gdUNsaW51eCIKIAotIzogb3B0aW9uLmM6MTE5NiBvcHRpb24uYzoxMjA3CisjOiBvcHRpb24uYzoxMjY1IG9wdGlvbi5jOjEyNzMKIG1zZ2lkICJiYWQgcG9ydCIKIG1zZ3N0ciAicHVlcnRvIGVycvNuZW8iCiAKLSM6IG9wdGlvbi5jOjEzNDkKKyM6IG9wdGlvbi5jOjEyOTMgb3B0aW9uLmM6MTMxOAorbXNnaWQgImludGVyZmFjZSBiaW5kaW5nIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgInZpbmN1bGFjafNuIGRlIGludGVyZmFjZSBubyBlc3ThIHNvcG9ydGFkbyIKKworIzogb3B0aW9uLmM6MTQyNworIywgZnV6enkKK21zZ2lkICJiYWQgcG9ydCByYW5nZSIKK21zZ3N0ciAicHVlcnRvIGVycvNuZW8iCisKKyM6IG9wdGlvbi5jOjE0NDQKIG1zZ2lkICJiYWQgYnJpZGdlLWludGVyZmFjZSIKIG1zZ3N0ciAib3BjafNuIGJyaWRnZS1pbnRlcmZhY2UgKGludGVyZmFjZSBwdWVudGUpIGVycvNuZWEiCiAKLSM6IG9wdGlvbi5jOjEzOTEKKyM6IG9wdGlvbi5jOjE0ODUKIG1zZ2lkICJiYWQgZGhjcC1yYW5nZSIKIG1zZ3N0ciAib3BjafNuIGRoY3AtcmFuZ2UgKHJhbmdvIERIQ1ApIGVycvNuZWEiCiAKLSM6IG9wdGlvbi5jOjE0MTkKKyM6IG9wdGlvbi5jOjE1MTEKIG1zZ2lkICJvbmx5IG9uZSBuZXRpZCB0YWcgYWxsb3dlZCIKIG1zZ3N0ciAic29sbyB1bmEgZXRpcXVldGEgbmV0aWQgcGVybWl0aWRhIgogCi0jOiBvcHRpb24uYzoxNDYxCisjOiBvcHRpb24uYzoxNTUxCiBtc2dpZCAiaW5jb25zaXN0ZW50IERIQ1AgcmFuZ2UiCiBtc2dzdHIgInJhbmdvIERIQ1AgaW5jb25zaXN0ZW50ZSIKIAotIzogb3B0aW9uLmM6MTYzNworIzogb3B0aW9uLmM6MTcxOQogIywgZnV6enkKIG1zZ2lkICJiYWQgREhDUCBob3N0IG5hbWUiCi1tc2dzdHIgIm5vbWJyZSBNWCBlcnLzbmVvIgorbXNnc3RyICJub21icmUgZGUgaG9zdCBESENQIGVycvNuZW8iCiAKLSM6IG9wdGlvbi5jOjE4NjEKKyM6IG9wdGlvbi5jOjE5NTkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIGludGVyZmFjZSBuYW1lIgogbXNnc3RyICJub21icmUgZGUgaW50ZXJmYWNlIGVycvNuZW8iCiAKLSM6IG9wdGlvbi5jOjE4ODUKKyM6IG9wdGlvbi5jOjE5NzkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIFBUUiByZWNvcmQiCiBtc2dzdHIgImV4cGVkaWVudGUgUFRSIGVycvNuZW8iCiAKLSM6IG9wdGlvbi5jOjE5MDkKLW1zZ2lkICJiYWQgVFhUIHJlY29yZCIKLW1zZ3N0ciAiZXhwZWRpZW50ZSBUWFQgZXJy825lbyIKLQotIzogb3B0aW9uLmM6MTk0MQorIzogb3B0aW9uLmM6MTk5OQogbXNnaWQgIlRYVCByZWNvcmQgc3RyaW5nIHRvbyBsb25nIgogbXNnc3RyICJleHBlZGllbnRlIFRYVCBkZW1hc2lhZG8gbGFyZ28iCiAKLSM6IG9wdGlvbi5jOjE5ODAKKyM6IG9wdGlvbi5jOjIwMDMKK21zZ2lkICJiYWQgVFhUIHJlY29yZCIKK21zZ3N0ciAiZXhwZWRpZW50ZSBUWFQgZXJy825lbyIKKworIzogb3B0aW9uLmM6MjA2MwogbXNnaWQgImJhZCBTUlYgcmVjb3JkIgogbXNnc3RyICJleHBlZGllbnRlIFNSViBlcnLzbmVvIgogCi0jOiBvcHRpb24uYzoxOTkyCisjOiBvcHRpb24uYzoyMDcyCiBtc2dpZCAiYmFkIFNSViB0YXJnZXQiCiBtc2dzdHIgImRlc3Rpbm8gU1JWIGVycvNuZW8iCiAKLSM6IG9wdGlvbi5jOjIwMDMKKyM6IG9wdGlvbi5jOjIwODAKIG1zZ2lkICJpbnZhbGlkIHBvcnQgbnVtYmVyIgogbXNnc3RyICJu+m1lcm8gZGUgcHVlcnRvIGluduFsaWRvIgogCi0jOiBvcHRpb24uYzoyMDEzCisjOiBvcHRpb24uYzoyMDg3CiBtc2dpZCAiaW52YWxpZCBwcmlvcml0eSIKIG1zZ3N0ciAicHJpb3JpZGFkIGluduFsaWRhIgogCi0jOiBvcHRpb24uYzoyMDIzCisjOiBvcHRpb24uYzoyMDk0CiBtc2dpZCAiaW52YWxpZCB3ZWlnaHQiCiBtc2dzdHIgInBlc28gaW524WxpZG8iCiAKLSM6IG9wdGlvbi5jOjIwNTQKKyM6IG9wdGlvbi5jOjIxMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmlsZXMgbmVzdGVkIHRvbyBkZWVwIGluICVzIgogbXNnc3RyICJhcmNoaXZvcyBqZXJhcnF1aXphZG9zIGRlbWFzaWFkbyBwcm9mdW5kbyBlbiAlcyIKIAotIzogb3B0aW9uLmM6MjA2MiB0ZnRwLmM6NDY3CisjOiBvcHRpb24uYzoyMTM4IHRmdHAuYzo0OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICJubyBzZSBwdWVkZSBsZWVyICVzOiAlcyIKIAotIzogb3B0aW9uLmM6MjExNAorIzogb3B0aW9uLmM6MjE5OQogbXNnaWQgIm1pc3NpbmcgXCIiCiBtc2dzdHIgImZhbHRhIFwiIgogCi0jOiBvcHRpb24uYzoyMTYxCisjOiBvcHRpb24uYzoyMjQ2CiBtc2dpZCAiYmFkIG9wdGlvbiIKIG1zZ3N0ciAib3BjafNuIGVycvNuZWEiCiAKLSM6IG9wdGlvbi5jOjIxNjMKKyM6IG9wdGlvbi5jOjIyNDgKIG1zZ2lkICJleHRyYW5lb3VzIHBhcmFtZXRlciIKIG1zZ3N0ciAicGFy4W1ldHJvIGV4dHJh8W8iCiAKLSM6IG9wdGlvbi5jOjIxNjUKKyM6IG9wdGlvbi5jOjIyNTAKIG1zZ2lkICJtaXNzaW5nIHBhcmFtZXRlciIKIG1zZ3N0ciAicGFy4W1ldHJvIGF1c2VudGUiCiAKLSM6IG9wdGlvbi5jOjIxNzMKKyM6IG9wdGlvbi5jOjIyNTgKIG1zZ2lkICJlcnJvciIKIG1zZ3N0ciAiZXJyb3IiCiAKLSM6IG9wdGlvbi5jOjIxNzkKKyM6IG9wdGlvbi5jOjIyNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgYXQgbGluZSAlZCBvZiAlJXMiCiBtc2dzdHIgIiVzIGVuIGztbmVhICVkIGRlICUlcyIKIAotIzogb3B0aW9uLmM6MjI1MgorIzogb3B0aW9uLmM6MjMwNCBvcHRpb24uYzoyMzM0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZWFkICVzIgorbXNnc3RyICJsZXllbmRvICVzIgorCisjOiBvcHRpb24uYzoyNDAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRuc21hc3EgdmVyc2lvbiAlcyAgJXNcbiIKIG1zZ3N0ciAiRG5zbWFzcSB2ZXJzafNuICVzICAlc1xuIgogCi0jOiBvcHRpb24uYzoyMjUzCisjOiBvcHRpb24uYzoyNDAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDb21waWxlIHRpbWUgb3B0aW9ucyAlc1xuIgpAQCAtNjE5LDY1OCArNjg5LDY5NyBAQAogIk9wY2lvbmVzIGRlIGNvbXBpbGFjafNuICVzXG4iCiAiXG4iCiAKLSM6IG9wdGlvbi5jOjIyNTQKKyM6IG9wdGlvbi5jOjI0MDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG4iCiBtc2dzdHIgIkVzdGUgc29mdHdhcmUgdmllbmUgU0lOIE5JTkdVTkEgR0FSQU5USUEuXG4iCiAKLSM6IG9wdGlvbi5jOjIyNTUKKyM6IG9wdGlvbi5jOjI0MDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG5zbWFzcSBpcyBmcmVlIHNvZnR3YXJlLCBhbmQgeW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdFxuIgogbXNnc3RyICJEbnNtYXNxIGVzIHNvZnR3YXJlIGxpYnJlLCB5IHVzdGVkIGVzdOEgYmllbnZlbmlkbyBhIHJlZGlzdHJpYnVpcmxvXG4iCiAKLSM6IG9wdGlvbi5jOjIyNTYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLlxuIgorIzogb3B0aW9uLmM6MjQwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyIG9yIDMuXG4iCiBtc2dzdHIgImJham8gbG9zIHTpcm1pbm9zIGRlIGxhIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzafNuIDIuXG4iCiAKLSM6IG9wdGlvbi5jOjIyNjcKKyM6IG9wdGlvbi5jOjI0MTUKIG1zZ2lkICJ0cnkgLS1oZWxwIgogbXNnc3RyICJwcnVlYmUgLS1oZWxwIgogCi0jOiBvcHRpb24uYzoyMjY5CisjOiBvcHRpb24uYzoyNDE3CiBtc2dpZCAidHJ5IC13IgogbXNnc3RyICJwcnVlYmUgLXciCiAKLSM6IG9wdGlvbi5jOjIyNzIKKyM6IG9wdGlvbi5jOjI0MjAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImJhZCBjb21tYW5kIGxpbmUgb3B0aW9uczogJXMiCiBtc2dzdHIgIm9wY2lvbmVzIGRlIGztbmVhIGRlIGNvbWFuZG9zIGVycvNuZWFzOiAlcyIKIAotIzogb3B0aW9uLmM6MjMxMworIzogb3B0aW9uLmM6MjQ2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZ2V0IGhvc3QtbmFtZTogJXMiCiBtc2dzdHIgIm5vIHNlIHB1ZWRlIG9idGVuZXIgaG9zdC1uYW1lIChub21icmUgZGUgaG9zdCk6ICVzIgogCi0jOiBvcHRpb24uYzoyMzQxCisjOiBvcHRpb24uYzoyNDg5CiBtc2dpZCAib25seSBvbmUgcmVzb2x2LmNvbmYgZmlsZSBhbGxvd2VkIGluIG5vLXBvbGwgbW9kZS4iCiBtc2dzdHIgInNvbG8gdW4gYXJjaGl2byByZXNvbHYuY29uZiBwZXJtaXRpZG8gZW4gbW9kbyBuby1wb2xsLiIKIAotIzogb3B0aW9uLmM6MjM1MQorIzogb3B0aW9uLmM6MjQ5OQogbXNnaWQgIm11c3QgaGF2ZSBleGFjdGx5IG9uZSByZXNvbHYuY29uZiB0byByZWFkIGRvbWFpbiBmcm9tLiIKIG1zZ3N0ciAiZGViZSBoYWJlciBleOFjdGFtZW50ZSB1biByZXNvbHYuY29uZiBkZXNkZSBkb25kZSBsZWVyIGRvbWluaW8uIgogCi0jOiBvcHRpb24uYzoyMzU0IG5ldHdvcmsuYzo1NDkKKyM6IG9wdGlvbi5jOjI1MDIgbmV0d29yay5jOjY0MAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgJXM6ICVzIgogbXNnc3RyICJubyBzZSBwdWRvIGxlZXIgJXM6ICVzIgogCi0jOiBvcHRpb24uYzoyMzcyCisjOiBvcHRpb24uYzoyNTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHNlYXJjaCBkaXJlY3RpdmUgZm91bmQgaW4gJXMiCiBtc2dzdHIgIm5pbmd1bmEgZGlyZWN0aXZhIGRlIGL6c3F1ZWRhIGVuY29udHJhZGEgZW4gJXMiCiAKLSM6IGZvcndhcmQuYzozNzYKKyM6IGZvcndhcmQuYzozODEKICMsIGMtZm9ybWF0CiBtc2dpZCAibmFtZXNlcnZlciAlcyByZWZ1c2VkIHRvIGRvIGEgcmVjdXJzaXZlIHF1ZXJ5IgogbXNnc3RyICJzZXJ2aWRvciBETlMgJXMgc2UgcmV1c/MgYSBoYWNlciB1bmEgYvpzcXVlZGEgcmVjdXJzaXZhIgogCi0jOiBpc2MuYzo3MyBkbnNtYXNxLmM6NzIzCisjOiBmb3J3YXJkLmM6NDA5Cittc2dpZCAicG9zc2libGUgRE5TLXJlYmluZCBhdHRhY2sgZGV0ZWN0ZWQiCittc2dzdHIgInBvc2libGUgYXRhcXVlIGRlIHJldmluY3VsYWNp824gRE5TIGRldGVjdGFkbyIKKworIzogaXNjLmM6NzcgZG5zbWFzcS5jOjc0NwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGFjY2VzcyAlczogJXMiCiBtc2dzdHIgIm5vIHNlIHB1ZG8gYWNjZXNhciAlczogJXMiCiAKLSM6IGlzYy5jOjg5CisjOiBpc2MuYzo5MwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGxvYWQgJXM6ICVzIgogbXNnc3RyICJubyBzZSBwdWRvIGNhcmdhciAlczogJXMiCiAKLSM6IGlzYy5jOjkzIGRuc21hc3EuYzo3NDUKKyM6IGlzYy5jOjk3IGRuc21hc3EuYzo3NjkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZGluZyAlcyIKIG1zZ3N0ciAibGV5ZW5kbyAlcyIKIAotIzogaXNjLmM6MTE1CisjOiBpc2MuYzoxMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIG5hbWUgaW4gJXMiCiBtc2dzdHIgIm5vbWJyZSBlcnLzbmVvIGVuICVzIgogCi0jOiBpc2MuYzoxNzcKKyM6IGlzYy5jOjE4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJJZ25vcmluZyBESENQIGxlYXNlIGZvciAlcyBiZWNhdXNlIGl0IGhhcyBhbiBpbGxlZ2FsIGRvbWFpbiBwYXJ0IgogbXNnc3RyICIiCiAiSWdub3JhbmRvIGFycmllbmRvIERIQ1AgcGFyYSAlcyBwb3JxdWUgdGllbmUgdW5hIHBhcnRlIGlsZWdhbCBkZSBkb21pbmlvIgogCi0jOiBuZXR3b3JrLmM6NDEKKyM6IG5ldHdvcmsuYzo0NQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAidW5rbm93biBpbnRlcmZhY2UgJXMgaW4gYnJpZGdlLWludGVyZmFjZSIKIG1zZ3N0ciAiaW50ZXJmYWNlIGRlc2Nvbm9jaWRhICVzIGVuIGJyaWRnZS1pbnRlcmZhY2UiCiAKLSM6IG5ldHdvcmsuYzozNzcgZG5zbWFzcS5jOjE3MAorIzogbmV0d29yay5jOjM4OSBkbnNtYXNxLmM6MTgwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgbGlzdGVuaW5nIHNvY2tldDogJXMiCiBtc2dzdHIgIm5vIHNlIHB1ZG8gY3JlYXIgdW4gc29ja2V0IGVzY3VjaGFkb3I6ICVzIgogCi0jOiBuZXR3b3JrLmM6Mzg0CisjOiBuZXR3b3JrLmM6Mzk2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgSVBWNiBvcHRpb25zIG9uIGxpc3RlbmluZyBzb2NrZXQ6ICVzIgogbXNnc3RyICJubyBzZSBwdWRvIGZpamFyIG9wY2lvbmVzIElQdjYgc29icmUgc29ja2V0IGVzY3VjaGFkb3I6ICVzIgogCi0jOiBuZXR3b3JrLmM6NDAyCisjOiBuZXR3b3JrLmM6NDE1CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBiaW5kIGxpc3RlbmluZyBzb2NrZXQgZm9yICVzOiAlcyIKIG1zZ3N0ciAibm8gc2UgcHVkbyBhY29wbGFyIHNvY2tldCBlc2N1Y2hhZG9yIHBhcmEgJXM6ICVzIgogCi0jOiBuZXR3b3JrLmM6NDEwCisjOiBuZXR3b3JrLmM6NDIwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsaXN0ZW4gb24gc29ja2V0OiAlcyIKIG1zZ3N0ciAibm8gc2UgcHVkbyBlc2N1Y2hhciBlbiBzb2NrZXQ6ICVzIgogCi0jOiBuZXR3b3JrLmM6NDIxCisjOiBuZXR3b3JrLmM6NDMyCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIFRGVFAgc29ja2V0OiAlcyIKIG1zZ3N0ciAibm8gc2UgcHVkbyBjcmVhciBzb2NrZXQgVEZUUDogJXMiCiAKLSM6IG5ldHdvcmsuYzo0OTMKKyM6IG5ldHdvcmsuYzo1NDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImZhaWxlZCB0byBiaW5kIHNlcnZlciBzb2NrZXQgZm9yICVzOiAlcyIKK21zZ3N0ciAibm8gc2UgcHVkbyBhY29wbGFyIHNvY2tldCBlc2N1Y2hhZG9yIHBhcmEgJXM6ICVzIgorCisjOiBuZXR3b3JrLmM6NTgyCiAjLCBjLWZvcm1hdAogbXNnaWQgImlnbm9yaW5nIG5hbWVzZXJ2ZXIgJXMgLSBsb2NhbCBpbnRlcmZhY2UiCiBtc2dzdHIgImlnbm9yYW5kbyBzZXJ2aWRvciBETlMgJXMgLSBpbnRlcmZhY2UgbG9jYWwiCiAKLSM6IG5ldHdvcmsuYzo1MDIKKyM6IG5ldHdvcmsuYzo1OTEKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImlnbm9yaW5nIG5hbWVzZXJ2ZXIgJXMgLSBjYW5ub3QgbWFrZS9iaW5kIHNvY2tldDogJXMiCiBtc2dzdHIgImlnbm9yYW5kbyBzZXJ2aWRvciBETlMgJXMgLSBubyBzZSBwdWVkZSBjcmVhci9hY29wbGFyIHNvY2tldDogJXMiCiAKLSM6IG5ldHdvcmsuYzo1MTcKKyM6IG5ldHdvcmsuYzo2MDYKIG1zZ2lkICJ1bnF1YWxpZmllZCIKIG1zZ3N0ciAibm8gY2FsaWZpY2FkbyIKIAotIzogbmV0d29yay5jOjUxNworIzogbmV0d29yay5jOjYwNgogbXNnaWQgIm5hbWVzIgotbXNnc3RyICIiCittc2dzdHIgIm5vbWJyZXMiCiAKLSM6IG5ldHdvcmsuYzo1MTkKKyM6IG5ldHdvcmsuYzo2MDgKIG1zZ2lkICJkZWZhdWx0IgotbXNnc3RyICIiCittc2dzdHIgInByZWRldGVybWluYWRvIgogCi0jOiBuZXR3b3JrLmM6NTIxCisjOiBuZXR3b3JrLmM6NjEwCiBtc2dpZCAiZG9tYWluIgogbXNnc3RyICJkb21pbmlvIgogCi0jOiBuZXR3b3JrLmM6NTI0CisjOiBuZXR3b3JrLmM6NjEzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVzaW5nIGxvY2FsIGFkZHJlc3NlcyBvbmx5IGZvciAlcyAlcyIKIG1zZ3N0ciAidXNhbmRvIGRpcmVjY2lvbmVzIGxvY2FsZXMgc29sbyBwYXJhICVzICVzIgogCi0jOiBuZXR3b3JrLmM6NTI2CisjOiBuZXR3b3JrLmM6NjE1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQgZm9yICVzICVzIgogbXNnc3RyICJ1c2FuZG8gc2Vydmlkb3IgRE5TICVzIyVkIHBhcmEgJXMgJXMiCiAKLSM6IG5ldHdvcmsuYzo1MjkKKyM6IG5ldHdvcmsuYzo2MTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQodmlhICVzKSIKK21zZ3N0ciAidXNhbmRvIHNlcnZpZG9yIEROUyAlcyMlZCh27WEgJXMpIgorCisjOiBuZXR3b3JrLmM6NjIwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQiCiBtc2dzdHIgInVzYW5kbyBzZXJ2aWRvciBETlMgJXMjJWQiCiAKLSM6IGRuc21hc3EuYzoxMDYKKyM6IGRuc21hc3EuYzoxMTAKIG1zZ2lkICIiCiAiSVNDIGRoY3BkIGludGVncmF0aW9uIG5vdCBhdmFpbGFibGU6IHNldCBIQVZFX0lTQ19SRUFERVIgaW4gc3JjL2NvbmZpZy5oIgogbXNnc3RyICIiCiAiaW50ZWdyYWNp824gZGhjcGQgSVNDIG5vIGRpc3BvbmlibGU6IGZpamFyIEhBVkVfSVNDX1JFQURFUiBlbiBzcmMvY29uZmlnLmgiCiAKLSM6IGRuc21hc3EuYzoxMjgKKyM6IGRuc21hc3EuYzoxMzIKICMsIGZ1enp5CiBtc2dpZCAiVEZUUCBzZXJ2ZXIgbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfVEZUUCBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgInNlcnZpZG9yIFRGVFAgbm8gZGlzcG9uaWJsZTogZmlqYXIgSEFWRV9URlRQIGVuIHNyYy9jb25maWcuaCIKIAotIzogZG5zbWFzcS5jOjE0MgorIzogZG5zbWFzcS5jOjEzNworIywgZnV6enkKK21zZ2lkICJhc3ljaHJvbm91cyBsb2dnaW5nIGlzIG5vdCBhdmFpbGFibGUgdW5kZXIgU29sYXJpcyIKK21zZ3N0ciAiYml0YWNvcmVvIGFzaW5jcvNuaWNvIG5vIGVzdOEgZGlzcG9uaWJsZSBiYWpvIFNvbGFyaXMiCisKKyM6IGRuc21hc3EuYzoxNTEKIG1zZ2lkICJtdXN0IHNldCBleGFjdGx5IG9uZSBpbnRlcmZhY2Ugb24gYnJva2VuIHN5c3RlbXMgd2l0aG91dCBJUF9SRUNWSUYiCiBtc2dzdHIgImRlYmUgZmlqYXJzZSBleOFjdGFtZW50ZSB1bmEgaW50ZXJmYWNlIGVuIHNpc3RlbWFzIHJvdG9zIHNpbiBJUF9SRUNWSUYiCiAKLSM6IGRuc21hc3EuYzoxNTIKKyM6IGRuc21hc3EuYzoxNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGZpbmQgbGlzdCBvZiBpbnRlcmZhY2VzOiAlcyIKIG1zZ3N0ciAibm8gc2UgcHVkbyBlbmNvbnRyYXIgbGlzdGEgZGUgaW50ZXJmYWNlczogJXMiCiAKLSM6IGRuc21hc3EuYzoxNjAKKyM6IGRuc21hc3EuYzoxNjkKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5rbm93biBpbnRlcmZhY2UgJXMiCiBtc2dzdHIgImludGVyZmFjZSBkZXNjb25vY2lkYSAlcyIKIAotIzogZG5zbWFzcS5jOjE2NgorIzogZG5zbWFzcS5jOjE3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBpbnRlcmZhY2Ugd2l0aCBhZGRyZXNzICVzIgogbXNnc3RyICJuaW5ndW5hIGludGVyZmFjZSBjb24gZGlyZWNjafNuICVzIgogCi0jOiBkbnNtYXNxLmM6MTgxIGRuc21hc3EuYzo1MzgKKyM6IGRuc21hc3EuYzoxOTIgZG5zbWFzcS5jOjU2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJEQnVzIGVycm9yOiAlcyIKIG1zZ3N0ciAiZXJyb3IgREJ1czogJXMiCiAKLSM6IGRuc21hc3EuYzoxODQKKyM6IGRuc21hc3EuYzoxOTUKIG1zZ2lkICJEQnVzIG5vdCBhdmFpbGFibGU6IHNldCBIQVZFX0RCVVMgaW4gc3JjL2NvbmZpZy5oIgogbXNnc3RyICJEQnVzIG5vIGRpc3BvbmlibGU6IGZpamFyIEhBVkVfREJVUyBlbiBzcmMvY29uZmlnLmgiCiAKLSM6IGRuc21hc3EuYzoyMTYKKyM6IGRuc21hc3EuYzoyMDQKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgcGlwZTogJXMiCiBtc2dzdHIgIm5vIHNlIHB1ZWRlIGNyZWFyIHBpcGU6ICVzIgogCi0jOiBkbnNtYXNxLmM6MjM3CisjOiBkbnNtYXNxLmM6MjI1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBmb3JrIGludG8gYmFja2dyb3VuZDogJXMiCi1tc2dzdHIgIiIKK21zZ3N0ciAibm8gc2UgcHVlZGUgaGFjZXIgZm9yayBoYWNpYSBlbCBmb25kbzogJXMiCiAKLSM6IGRuc21hc3EuYzozMzUKKyM6IGRuc21hc3EuYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGNoZGlyIHRvIGZpbGVzeXN0ZW0gcm9vdDogJXMiCittc2dzdHIgIm5vIHNlIHB1ZWRlIGNhbWJpYXIgZGlyZWN0b3JpbyBhIHJh7XogZGUgc2lzdGVtYSBkZSBhcmNoaXZvczogJXMiCisKKyM6IGRuc21hc3EuYzozNDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN0YXJ0ZWQsIHZlcnNpb24gJXMgRE5TIGRpc2FibGVkIgorbXNnc3RyICJpbmljaWFkbywgdmVyc2nzbiAlcyBETlMgZGVzaGFiaWxpdGFkbyIKKworIzogZG5zbWFzcS5jOjM1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJzdGFydGVkLCB2ZXJzaW9uICVzIGNhY2hlc2l6ZSAlZCIKLW1zZ3N0ciAidmVyc2nzbiAlcyBpbmljaWFkYSwgdGFtYfFvIGRlIGNhY2jpICVkIgorbXNnc3RyICJpbmljaWFkbywgdmVyc2nzbiAlcyB0YW1h8W8gZGUgY2FjaOkgJWQiCiAKLSM6IGRuc21hc3EuYzozMzcKKyM6IGRuc21hc3EuYzozNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAic3RhcnRlZCwgdmVyc2lvbiAlcyBjYWNoZSBkaXNhYmxlZCIKLW1zZ3N0ciAidmVyc2nzbiAlcyBpbmljaWFkYSwgY2FjaOkgZGVzaGFiaWxpdGFkbyIKK21zZ3N0ciAiaW5pY2lhZG8sIHZlcnNp824gJXMgY2FjaOkgZGVzaGFiaWxpdGFkbyIKIAotIzogZG5zbWFzcS5jOjMzOQorIzogZG5zbWFzcS5jOjM1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb21waWxlIHRpbWUgb3B0aW9uczogJXMiCiBtc2dzdHIgIm9wY2lvbmVzIGRlIGNvbXBpbGFjafNuOiAlcyIKIAotIzogZG5zbWFzcS5jOjM0NQorIzogZG5zbWFzcS5jOjM2MQogbXNnaWQgIkRCdXMgc3VwcG9ydCBlbmFibGVkOiBjb25uZWN0ZWQgdG8gc3lzdGVtIGJ1cyIKIG1zZ3N0ciAic29wb3J0ZSBEQnVzIGhhYmlsaXRhZG86IGNvbmVjdGFkbyBhIGJ1cyBkZSBzaXN0ZW1hIgogCi0jOiBkbnNtYXNxLmM6MzQ3CisjOiBkbnNtYXNxLmM6MzYzCiBtc2dpZCAiREJ1cyBzdXBwb3J0IGVuYWJsZWQ6IGJ1cyBjb25uZWN0aW9uIHBlbmRpbmciCiBtc2dzdHIgInNvcG9ydGUgREJ1cyBoYWJpbGl0YWRvOiBjb25lY2Np824gYSBidXMgcGVuZGllbnRlIgogCi0jOiBkbnNtYXNxLmM6MzUyCisjOiBkbnNtYXNxLmM6MzY4CiBtc2dpZCAic2V0dGluZyAtLWJpbmQtaW50ZXJmYWNlcyBvcHRpb24gYmVjYXVzZSBvZiBPUyBsaW1pdGF0aW9ucyIKIG1zZ3N0ciAiIgogImZpamFuZG8gb3BjafNuIC0tYmluZC1pbnRlcmZhY2VzIGRlYmlkbyBhIGxpbWl0YWNpb25lcyBkZSBzaXN0ZW1hIG9wZXJhdGl2byIKIAotIzogZG5zbWFzcS5jOjM1NworIzogZG5zbWFzcS5jOjM3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ3YXJuaW5nOiBpbnRlcmZhY2UgJXMgZG9lcyBub3QgY3VycmVudGx5IGV4aXN0IgogbXNnc3RyICJhZHZlcnRlbmNpYTogaW50ZXJmYWNlICVzIG5vIGV4aXN0ZSBhY3R14WxtZW50ZSIKIAotIzogZG5zbWFzcS5jOjM2MgorIzogZG5zbWFzcS5jOjM3OAogbXNnaWQgIndhcm5pbmc6IGlnbm9yaW5nIHJlc29sdi1maWxlIGZsYWcgYmVjYXVzZSBuby1yZXNvbHYgaXMgc2V0IgotbXNnc3RyICIiCi0iYWR2ZXJ0ZW5jaWE6IGlnbm9yYW5kbyBvcGNp824gcmVzb2x2LWZpbGUgcG9ycXVlIG5vLXJlc29sdiBlc3ThIGZpamFkby4iCittc2dzdHIgImFkdmVydGVuY2lhOiBpZ25vcmFuZG8gb3BjafNuIHJlc29sdi1maWxlIHBvcnF1ZSBuby1yZXNvbHYgZXN04SBmaWphZG8iCiAKLSM6IGRuc21hc3EuYzozNjUKKyM6IGRuc21hc3EuYzozODEKICMsIGZ1enp5CiBtc2dpZCAid2FybmluZzogbm8gdXBzdHJlYW0gc2VydmVycyBjb25maWd1cmVkIgogbXNnc3RyICJhZHZlcnRlbmNpYTogbmluZ/puIHNlcnZpZG9yIHVwc3RyZWFtIGNvbmZpZ3VyYWRvIgogCi0jOiBkbnNtYXNxLmM6MzY5CisjOiBkbnNtYXNxLmM6Mzg1CiAjLCBjLWZvcm1hdAogbXNnaWQgImFzeW5jaHJvbm91cyBsb2dnaW5nIGVuYWJsZWQsIHF1ZXVlIGxpbWl0IGlzICVkIG1lc3NhZ2VzIgogbXNnc3RyICJiaXRhY29yZW8gYXNpbmNy825pY28gaGFiaWxpdGFkbywgbO1taXRlIGRlIGNvbGEgZXMgJWQgbWVuc2FqZXMiCiAKLSM6IGRuc21hc3EuYzozODEKKyM6IGRuc21hc3EuYzozOTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCwgc3RhdGljIGxlYXNlcyBvbmx5IG9uICUuMHMlcywgbGVhc2UgdGltZSAlcyIKIG1zZ3N0ciAiREhDUCwgYXJyaWVuZG9zIGVzdOF0aWNvcyBzb2xvIGVuICUuMHMlcywgdGllbXBvIGRlIGFycmllbmRvICVzIgogCi0jOiBkbnNtYXNxLmM6MzgyCisjOiBkbnNtYXNxLmM6Mzk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AsIElQIHJhbmdlICVzIC0tICVzLCBsZWFzZSB0aW1lICVzIgogbXNnc3RyICJESENQLCByYW5nbyBkZSBJUHMgJXMgLS0gJXMsIHRpZW1wbyBkZSBhcnJpZW5kbyAlcyIKIAotIzogZG5zbWFzcS5jOjM5NgorIzogZG5zbWFzcS5jOjQxMgogbXNnaWQgInJvb3QgaXMgIgogbXNnc3RyICJyb290IGVzICIKIAotIzogZG5zbWFzcS5jOjM5NgorIzogZG5zbWFzcS5jOjQxMgogIywgZnV6enkKIG1zZ2lkICJlbmFibGVkIgogbXNnc3RyICJoYWJpbGl0YWRvIgogCi0jOiBkbnNtYXNxLmM6Mzk4CisjOiBkbnNtYXNxLmM6NDE0CiBtc2dpZCAic2VjdXJlIG1vZGUiCiBtc2dzdHIgIm1vZG8gc2VndXJvIgogCi0jOiBkbnNtYXNxLmM6NDE4CisjOiBkbnNtYXNxLmM6NDQwCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlc3RyaWN0aW5nIG1heGltdW0gc2ltdWx0YW5lb3VzIFRGVFAgdHJhbnNmZXJzIHRvICVkIgogbXNnc3RyICJsaW1pdGFuZG8gbvptZXJvIG3heGltbyBkZSB0cmFuc2ZlcmVuY2lhcyBURlRQIHNpbXVsdOFuZWFzIGEgJWQiCiAKLSM6IGRuc21hc3EuYzo0MjcKKyM6IGRuc21hc3EuYzo0NDkKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIndhcm5pbmc6IHNldHRpbmcgY2FwYWJpbGl0aWVzIGZhaWxlZDogJXMiCiBtc2dzdHIgImFkdmVydGVuY2lhOiBjb25maWd1cmFjafNuIGRlIGNhcGFjaWRhZGVzIGhhIGZhbGxhZG86ICVzIgogCi0jOiBkbnNtYXNxLmM6NDI5CisjOiBkbnNtYXNxLmM6NDUxCiBtc2dpZCAicnVubmluZyBhcyByb290IgogbXNnc3RyICJjb3JyaWVuZG8gY29tbyByb290IgogCi0jOiBkbnNtYXNxLmM6NTQwCisjOiBkbnNtYXNxLmM6NTYzCiBtc2dpZCAiY29ubmVjdGVkIHRvIHN5c3RlbSBEQnVzIgogbXNnc3RyICJjb25lY3RhZG8gYSBEQnVzIGRlIHNpc3RlbWEiCiAKLSM6IGRuc21hc3EuYzo2NTkKKyM6IGRuc21hc3EuYzo2ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hpbGQgcHJvY2VzcyBraWxsZWQgYnkgc2lnbmFsICVkIgogbXNnc3RyICJwcm9jZXNvIGhpam8gZWxpbWluYWRvIHBvciBzZfFhbCAlZCIKIAotIzogZG5zbWFzcS5jOjY2MworIzogZG5zbWFzcS5jOjY4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGlsZCBwcm9jZXNzIGV4aXRlZCB3aXRoIHN0YXR1cyAlZCIKIG1zZ3N0ciAicHJvY2VzbyBoaWpvIGhpem8gZXhpdCBjb24gZXN0YWRvICVkIgogCi0jOiBkbnNtYXNxLmM6NjY3CisjOiBkbnNtYXNxLmM6NjkxCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlczogJXMiCiBtc2dzdHIgIm5vIHNlIHB1ZG8gZWplY3V0YXIgJXM6ICVzIgogCi0jOiBkbnNtYXNxLmM6NjcxCisjOiBkbnNtYXNxLmM6Njk1CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGhlbHBlcjogJXMiCi1tc2dzdHIgIm5vIHNlIHB1ZG8gbGVlciAlczogJXMiCittc2dzdHIgIm5vIHNlIHB1ZG8gY3JlYXIgYXl1ZGFudGU6ICVzIgogCi0jOiBkbnNtYXNxLmM6NzA1CisjOiBkbnNtYXNxLmM6NzI5CiBtc2dpZCAiZXhpdGluZyBvbiByZWNlaXB0IG9mIFNJR1RFUk0iCiBtc2dzdHIgInNhbGllbmRvIGFsIHJlY2liaXIgU0lHVEVSTSIKIAotIzogZG5zbWFzcS5jOjc1NgorIzogZG5zbWFzcS5jOjc4MAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAibm8gc2VydmVycyBmb3VuZCBpbiAlcywgd2lsbCByZXRyeSIKIG1zZ3N0ciAibmluZ/puIHNlcnZpZG9yIGVuY29udHJhZG8gZW4gJXMsIHNlIHJlaW50ZW50YXLhIgogCi0jOiBkaGNwLmM6MzIKKyM6IGRoY3AuYzozOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIERIQ1Agc29ja2V0IDogJXMiCiBtc2dzdHIgIm5vIHNlIHB1ZWRlIGNyZWFyIHNvY2tldCBESENQOiAlcyIKIAotIzogZGhjcC5jOjQxCisjOiBkaGNwLmM6NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHNldCBvcHRpb25zIG9uIERIQ1Agc29ja2V0OiAlcyIKIG1zZ3N0ciAibm8gc2UgcHVkbyBmaWphciBvcGNpb25lcyBlbiBzb2NrZXQgREhDUDogJXMiCiAKLSM6IGRoY3AuYzo1OQorIzogZGhjcC5jOjY4CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc2V0IFNPX1JFVVNFe0FERFJ8UE9SVH0gb24gREhDUCBzb2NrZXQ6ICVzIgogbXNnc3RyICJubyBzZSBwdWRvIGZpamFyIFNPX1JFVVNFe0FERFJ8UE9SVH0gZW4gc29ja2V0IERIQ1A6ICVzIgogCi0jOiBkaGNwLmM6NzIKKyM6IGRoY3AuYzo4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gYmluZCBESENQIHNlcnZlciBzb2NrZXQ6ICVzIgogbXNnc3RyICJubyBzZSBwdWRvIGFjb3BsYXIgc29ja2V0IGRlIHNlcnZpZG9yIERIQ1A6ICVzIgogCi0jOiBkaGNwLmM6ODUKKyM6IGRoY3AuYzo5NAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIElDTVAgcmF3IHNvY2tldDogJXMuIgogbXNnc3RyICJubyBzZSBwdWVkZSBjcmVhciBzb2NrZXQgY3J1ZG8gSUNNUDogJXMuIgogCi0jOiBkaGNwLmM6MTAwCi0jLCBjLWZvcm1hdAotbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCi1tc2dzdHIgImRpcmVjY2nzbiBJUCBkdXBsaWNhZGEgJXMgZW4gZGlyZWN0aXZhIGRoY3AtY29uZmlnLiIKLQotIzogZGhjcC5jOjEwMwotIywgZnV6enksIGMtZm9ybWF0Ci1tc2dpZCAiaWxsZWdhbCBkb21haW4gJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKLW1zZ3N0ciAiZGlyZWNjafNuIElQIGR1cGxpY2FkYSAlcyBlbiBkaXJlY3RpdmEgZGhjcC1jb25maWcuIgotCi0jOiBkaGNwLmM6MjIxCisjOiBkaGNwLmM6MjIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcGFja2V0IHJlY2VpdmVkIG9uICVzIHdoaWNoIGhhcyBubyBhZGRyZXNzIgogbXNnc3RyICJQYXF1ZXRlIERIQ1AgcmVjaWJpZG8gZW4gJXMgc2luIGRpcmVjY2nzbiIKIAotIzogZGhjcC5jOjM1MgorIzogZGhjcC5jOjM4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQIHJhbmdlICVzIC0tICVzIGlzIG5vdCBjb25zaXN0ZW50IHdpdGggbmV0bWFzayAlcyIKIG1zZ3N0ciAicmFuZ28gREhDUCAlcyAtLSAlcyBubyBjb2luY2lkZSBjb24gbeFzY2FyYSBkZSBzdWJyZWQgJXMiCiAKLSM6IGRoY3AuYzo2NjkKKyM6IGRoY3AuYzo3MDkKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byByZWFkICVzOiVzIgogbXNnc3RyICJubyBzZSBwdWRvIGxlZXIgJXM6JXMiCiAKLSM6IGRoY3AuYzo3MDQKKyM6IGRoY3AuYzo3NDQKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImJhZCBsaW5lIGF0ICVzIGxpbmUgJWQiCiBtc2dzdHIgImztbmVhIGVycvNuZWEgZW4gJXMgbO1uZWEgJWQiCiAKLSM6IGRoY3AuYzo4MjYKLSMsIGZ1enp5LCBjLWZvcm1hdAotbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzIGluICVzLiIKKyM6IGRoY3AuYzo4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKIG1zZ3N0ciAiZGlyZWNjafNuIElQIGR1cGxpY2FkYSAlcyBlbiBkaXJlY3RpdmEgZGhjcC1jb25maWcuIgogCi0jOiBkaGNwLmM6ODMyCisjOiBkaGNwLmM6ODUwCisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiAlcy4iCittc2dzdHIgImRpcmVjY2nzbiBJUCBkdXBsaWNhZGEgJXMgZW4gJXMuIgorCisjOiBkaGNwLmM6ODU4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJpbGxlZ2FsIGRvbWFpbiAlcyBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUuIgorbXNnc3RyICJkb21pbmlvIGlsZWdhbCAlcyBlbiBkaXJlY3RpdmEgZGhjcC1jb25maWcuIgorCisjOiBkaGNwLmM6ODYwCiAjLCBjLWZvcm1hdAogbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluICVzLiIKLW1zZ3N0ciAiIgorbXNnc3RyICJkb21pbmlvIGlsZWdhbCAlcyBlbiAlcy4iCiAKLSM6IGRoY3AuYzo4MzkKLSMsIGZ1enp5LCBjLWZvcm1hdAotbXNnaWQgInJlYWQgJXMgLSAlZCBob3N0cyIKLW1zZ3N0ciAiZGlyZWNjafNuZXMgJXMgLSAlZCBsZe1kYXMiCisjOiBkaGNwLmM6ODk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGhhcyBtb3JlIHRoZW4gb25lIGFkZHJlc3MgaW4gaG9zdHNmaWxlLCB1c2luZyAlcyBmb3IgREhDUCIKK21zZ3N0ciAiJXMgdGllbmUgbeFzIGRlIHVuYSBkaXJlY2Np824gZW4gaG9zdHNmaWxlLCB1c2FuZG8gJXMgcGFyYSBESENQIgogCi0jOiBkaGNwLmM6ODY2CisjOiBkaGNwLmM6OTA0CiAjLCBjLWZvcm1hdAogbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzICglcykgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlIgogbXNnc3RyICJkaXJlY2Np824gSVAgZHVwbGljYWRhICVzICglcykgZW4gZGlyZWN0aXZhIGRoY3AtY29uZmlnIgogCi0jOiBsZWFzZS5jOjU0CisjOiBsZWFzZS5jOjU4CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiBvciBjcmVhdGUgbGVhc2UgZmlsZSAlczogJXMiCiBtc2dzdHIgIm5vIHNlIHB1ZWRlIGFicmlyIG8gY3JlYXIgYXJjaGl2byBkZSBhcnJpZW5kb3MgJXM6ICVzIgogCi0jOiBsZWFzZS5jOjgwCisjOiBsZWFzZS5jOjg0CiBtc2dpZCAidG9vIG1hbnkgc3RvcmVkIGxlYXNlcyIKIG1zZ3N0ciAiZGVtYXNpYWRvcyBhcnJpZW5kb3MgYWxtYWNlbmFkb3MiCiAKLSM6IGxlYXNlLmM6MTIxCisjOiBsZWFzZS5jOjEyNQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJ1biBsZWFzZS1pbml0IHNjcmlwdCAlczogJXMiCiBtc2dzdHIgIm5vIHNlIHB1ZWRlIGVqZWN1dGFyIGFyY2hpdm8gZ3Vp824gbGVhc2UtaW5pdCAlczogJXMiCiAKLSM6IGxlYXNlLmM6MTI3CisjOiBsZWFzZS5jOjEzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJsZWFzZS1pbml0IHNjcmlwdCByZXR1cm5lZCBleGl0IGNvZGUgJXMiCiBtc2dzdHIgImFyY2hpdm8gZ3Vp824gbGVhc2UtaW5pdCByZXRvcm7zIGV4aXQgY29kZSAlcyIKIAotIzogbGVhc2UuYzoyMzQKKyM6IGxlYXNlLmM6MjM4CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gd3JpdGUgJXM6ICVzIChyZXRyeSBpbiAldXMpIgogbXNnc3RyICJlcnJvciBhbCBlc2NyaWJpciAlczogJXMgKHJlaW50ZW50YXIgZW4gJXVzKSIKIAotIzogcmZjMjEzMS5jOjMwMAorIzogcmZjMjEzMS5jOjMwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBhZGRyZXNzIHJhbmdlIGF2YWlsYWJsZSBmb3IgREhDUCByZXF1ZXN0ICVzICVzIgogbXNnc3RyICJuaW5n+m4gcmFuZ28gZGUgZGlyZWNjafNuZXMgZGlzcG9uaWJsZSBwYXJhIHBlZGlkbyBESENQICVzICVzIgogCi0jOiByZmMyMTMxLmM6MzAxCisjOiByZmMyMTMxLmM6MzA0CiBtc2dpZCAid2l0aCBzdWJuZXQgc2VsZWN0b3IiCiBtc2dzdHIgImNvbiBzZWxlY3RvciBkZSBzdWJyZWQiCiAKLSM6IHJmYzIxMzEuYzozMDEKKyM6IHJmYzIxMzEuYzozMDQKIG1zZ2lkICJ2aWEiCiBtc2dzdHIgInbtYSIKIAotIzogcmZjMjEzMS5jOjMxMgorIzogcmZjMjEzMS5jOjMxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQIHBhY2tldDogdHJhbnNhY3Rpb24taWQgaXMgJXUiCiBtc2dzdHIgInBhcXVldGUgREhDUDogdHJhbnNhY3Rpb24taWQgKGlkZW50aWZpY2FjafNuIGRlIHRyYW5zYWNjafNuKSBlcyAldSIKIAotIzogcmZjMjEzMS5jOjMxNworIzogcmZjMjEzMS5jOjMyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgREhDUCBzdWJuZXQ6ICVzLyVzIgogbXNnc3RyICJTdWJyZWQgREhDUCBkaXNwb25pYmxlOiAlcy8lcyIKIAotIzogcmZjMjEzMS5jOjMxOQorIzogcmZjMjEzMS5jOjMyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgREhDUCByYW5nZTogJXMgLS0gJXMiCiBtc2dzdHIgIlJhbmdvIERIQ1AgZGlzcG9uaWJsZTogJXMgLS0gJXMiCiAKLSM6IHJmYzIxMzEuYzozNDcgcmZjMjEzMS5jOjM3OAorIzogcmZjMjEzMS5jOjM1MCByZmMyMTMxLmM6MzgxCiBtc2dpZCAiZGlzYWJsZWQiCiBtc2dzdHIgImRlc2hhYmlsaXRhZG8iCiAKLSM6IHJmYzIxMzEuYzozOTAgcmZjMjEzMS5jOjg1MgorIzogcmZjMjEzMS5jOjM5MyByZmMyMTMxLmM6ODczCiBtc2dpZCAiYWRkcmVzcyBpbiB1c2UiCiBtc2dzdHIgImRpcmVjY2nzbiBlbiB1c28iCiAKLSM6IHJmYzIxMzEuYzozOTMKKyM6IHJmYzIxMzEuYzozOTYKIG1zZ2lkICJubyBhZGRyZXNzIGNvbmZpZ3VyZWQiCiBtc2dzdHIgIm5pbmd1bmEgZGlyZWNjafNuIGNvbmZpZ3VyYWRhIgogCi0jOiByZmMyMTMxLmM6NDA2IHJmYzIxMzEuYzo3MjAKKyM6IHJmYzIxMzEuYzo0MDkgcmZjMjEzMS5jOjczNgogbXNnaWQgIm5vIGFkZHJlc3MgYXZhaWxhYmxlIgogbXNnc3RyICJuaW5ndW5hIGRpcmVjY2nzbiBkaXNwb25pYmxlIgogCi0jOiByZmMyMTMxLmM6NDE2Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkxpbWl0IG9mICVkIGxlYXNlcyBleGNlZWRlZC4iCi1tc2dzdHIgIkztbWl0ZSBkZSAlZCBhcnJpZW5kb3MgZXhjZWRpZG8uIgotCi0jOiByZmMyMTMxLmM6NDE3IHJmYzIxMzEuYzo4NjIKKyM6IHJmYzIxMzEuYzo0MTggcmZjMjEzMS5jOjg4MwogbXNnaWQgIm5vIGxlYXNlcyBsZWZ0IgogbXNnc3RyICJubyBzb2JyYSBuaW5n+m4gYXJyaWVuZG8iCiAKLSM6IHJmYzIxMzEuYzo0MjEgcmZjMjEzMS5jOjgyNgorIzogcmZjMjEzMS5jOjQyMSByZmMyMTMxLmM6ODQ3CiBtc2dpZCAid3JvbmcgbmV0d29yayIKIG1zZ3N0ciAicmVkIGVxdWl2b2NhZGEiCiAKLSM6IHJmYzIxMzEuYzo1MTkKKyM6IHJmYzIxMzEuYzo1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiSWdub3JpbmcgZG9tYWluICVzIGZvciBESENQIGhvc3QgbmFtZSAlcyIKLW1zZ3N0ciAiIgorbXNnc3RyICJJZ25vcmFuZG8gZG9taW5pbyAlcyBwYXJhIG5vbWJyZSBkZSBob3N0IERIQ1AgJXMiCiAKLSM6IHJmYzIxMzEuYzo1OTgKKyM6IHJmYzIxMzEuYzo2MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiVmVuZG9yIGNsYXNzOiAlcyIKIG1zZ3N0ciAiQ2xhc2UgZGUgdmVuZGVkb3I6ICVzIgogCi0jOiByZmMyMTMxLmM6NjAwCisjOiByZmMyMTMxLmM6NjE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZXIgY2xhc3M6ICVzIgogbXNnc3RyICJDbGFzZSBkZSB1c3VhcmlvOiAlcyIKIAotIzogcmZjMjEzMS5jOjY0MQorIzogcmZjMjEzMS5jOjY1NwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZGlzYWJsaW5nIERIQ1Agc3RhdGljIGFkZHJlc3MgJXMgZm9yICVzIgogbXNnc3RyICJkZXNoYWJpbGl0YW5kbyBkaXJlY2Np824gREhDUCBlc3ThdGljYSAlcyBwYXJhICVzIgogCi0jOiByZmMyMTMxLmM6NjYyCisjOiByZmMyMTMxLmM6Njc4CiBtc2dpZCAidW5rbm93biBsZWFzZSIKIG1zZ3N0ciAiYXJyaWVuZG8gZGVzY29ub2NpZG8iCiAKLSM6IHJmYzIxMzEuYzo2NzEgcmZjMjEzMS5jOjk3MAorIzogcmZjMjEzMS5jOjY4NyByZmMyMTMxLmM6OTkyCiBtc2dpZCAiaWdub3JlZCIKIG1zZ3N0ciAiaWdub3JhZG8iCiAKLSM6IHJmYzIxMzEuYzo2OTEKKyM6IHJmYzIxMzEuYzo3MDcKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IGlzIGxlYXNlZCB0byAlcyIKIG1zZ3N0ciAibm8gdXNhbmRvIGRpcmVjY2nzbiBjb25maWd1cmFkYSAlcyBwb3JxdWUgZXN04SBhcnJlbmRhZGEgYSAlcyIKIAotIzogcmZjMjEzMS5jOjcwMQorIzogcmZjMjEzMS5jOjcxNwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdCB1c2luZyBjb25maWd1cmVkIGFkZHJlc3MgJXMgYmVjYXVzZSBpdCBpcyBpbiB1c2UgYnkgdGhlIHNlcnZlciBvciByZWxheSIKIG1zZ3N0ciAiIgogIm5vIHVzYW5kbyBkaXJlY2Np824gY29uZmlndXJhZGEgJXMgcG9ycXVlIGVzdOEgZW4gdXNvIHBvciBlbCBzZXJ2aWRvciBvIHJlbGF5IgogCi0jOiByZmMyMTMxLmM6NzA0CisjOiByZmMyMTMxLmM6NzIwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJub3QgdXNpbmcgY29uZmlndXJlZCBhZGRyZXNzICVzIGJlY2F1c2UgaXQgd2FzIHByZXZpb3VzbHkgZGVjbGluZWQiCiBtc2dzdHIgIm5vIHVzYW5kbyBkaXJlY2Np824gY29uZmlndXJhZGEgJXMgcG9ycXVlIGZ16SBwcmV2aWFtZW50ZSBkZW5lZ2FkYSIKIAotIzogcmZjMjEzMS5jOjcxOCByZmMyMTMxLmM6ODU1CisjOiByZmMyMTMxLmM6NzM0IHJmYzIxMzEuYzo4NzYKIG1zZ2lkICJubyB1bmlxdWUtaWQiCiBtc2dzdHIgIm5pbmf6biB1bmlxdWUtaWQgKGlkZW50aWZpY2FjafNuIPpuaWNhKSIKIAotIzogcmZjMjEzMS5jOjc4OQorIzogcmZjMjEzMS5jOjgwNgogbXNnaWQgIndyb25nIGFkZHJlc3MiCiBtc2dzdHIgImRpcmVjY2nzbiBlcXVpdm9jYWRhIgogCi0jOiByZmMyMTMxLmM6ODAyCisjOiByZmMyMTMxLmM6ODIzCiBtc2dpZCAibGVhc2Ugbm90IGZvdW5kIgogbXNnc3RyICJhcnJpZW5kbyBubyBlbmNvbnRyYWRvIgogCi0jOiByZmMyMTMxLmM6ODM0CisjOiByZmMyMTMxLmM6ODU1CiBtc2dpZCAiYWRkcmVzcyBub3QgYXZhaWxhYmxlIgogbXNnc3RyICJkaXJlY2Np824gbm8gZGlzcG9uaWJsZSIKIAotIzogcmZjMjEzMS5jOjg0NQorIzogcmZjMjEzMS5jOjg2NgogbXNnaWQgInN0YXRpYyBsZWFzZSBhdmFpbGFibGUiCiBtc2dzdHIgImFycmllbmRvIGVzdOF0aWNvIGRpc3BvbmlibGUiCiAKLSM6IHJmYzIxMzEuYzo4NDkKKyM6IHJmYzIxMzEuYzo4NzAKIG1zZ2lkICJhZGRyZXNzIHJlc2VydmVkIgogbXNnc3RyICJkaXJlY2Np824gcmVzZXJ2YWRhIgogCi0jOiByZmMyMTMxLmM6MTI1MgorIzogcmZjMjEzMS5jOjEyNjUKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnczogJXMiCiBtc2dzdHIgImV0aXF1ZXRhczogJXMiCiAKLSM6IHJmYzIxMzEuYzoxMzM0CisjOiByZmMyMTMxLmM6MTM1MgogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHNlbmQgREhDUC9CT09UUCBvcHRpb24gJWQ6IG5vIHNwYWNlIGxlZnQgaW4gcGFja2V0IgogbXNnc3RyICJubyBzZSBwdWVkZSBlbnZpYXIgb3BjafNuIERIQ1AvQk9PVFAgJWQ6IG5vIHF1ZWRhIGVzcGFjaW8gZW4gcGFxdWV0ZSIKIAotIzogcmZjMjEzMS5jOjE0ODgKKyM6IHJmYzIxMzEuYzoxNTA3CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJyZXF1ZXN0ZWQgb3B0aW9uczogJXMiCiBtc2dzdHIgIm9wY2lvbmVzIHNvbGljaXRhZGFzOiAlcyIKIAotIzogcmZjMjEzMS5jOjE1MTkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAic2VydmVyIG5hbWU6ICVzIgotbXNnc3RyICJub21icmUgZGUgc2Vydmlkb3I6ICVzIgotCi0jOiByZmMyMTMxLmM6MTUzMQotIywgYy1mb3JtYXQKLW1zZ2lkICJib290ZmlsZSBuYW1lOiAlcyIKLW1zZ3N0ciAibm9tYnJlIGRlIGJvb3RmaWxlOiAlcyIKLQotIzogcmZjMjEzMS5jOjE1NDAKKyM6IHJmYzIxMzEuYzoxNTU2CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJuZXh0IHNlcnZlcjogJXMiCiBtc2dzdHIgInNpZ3VpZW50ZSBzZXJ2aWRvcjogJXMiCiAKLSM6IG5ldGxpbmsuYzo1OQorIzogcmZjMjEzMS5jOjE1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9vdGZpbGUgbmFtZTogJXMiCittc2dzdHIgIm5vbWJyZSBkZSBib290ZmlsZTogJXMiCisKKyM6IHJmYzIxMzEuYzoxNTgzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlcnZlciBuYW1lOiAlcyIKK21zZ3N0ciAibm9tYnJlIGRlIHNlcnZpZG9yOiAlcyIKKworIzogbmV0bGluay5jOjYzCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIG5ldGxpbmsgc29ja2V0OiAlcyIKIG1zZ3N0ciAibm8gc2UgcHVlZGUgY3JlYXIgc29ja2V0IG5ldGxpbms6ICVzIgogCi0jOiBuZXRsaW5rLmM6MjI2CisjOiBuZXRsaW5rLmM6MjMwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJuZXRsaW5rIHJldHVybnMgZXJyb3I6ICVzIgogbXNnc3RyICJuZXRsaW5rIHJldG9ybmEgZXJyb3I6ICVzIgogCi0jOiBkYnVzLmM6MTExCisjOiBkYnVzLmM6MTE1CiBtc2dpZCAiYXR0ZW1wdCB0byBzZXQgYW4gSVB2NiBzZXJ2ZXIgYWRkcmVzcyB2aWEgREJ1cyAtIG5vIElQdjYgc3VwcG9ydCIKIG1zZ3N0ciAiIgogImludGVudG8gZGUgZmlqYXIgZGlyZWNjafNuIGRlIHNlcnZpZG9yIElQdjYgdu1hIERCdXMgLSBubyBoYXkgc29wb3J0ZSBJUHY2IgogCi0jOiBkYnVzLmM6MjM3CisjOiBkYnVzLmM6MjQxCiBtc2dpZCAic2V0dGluZyB1cHN0cmVhbSBzZXJ2ZXJzIGZyb20gREJ1cyIKIG1zZ3N0ciAiZmlqYW5kbyBzZXJ2aWRvcmVzIHVwc3RyZWFtIGRlc2RlIERCdXMiCiAKLSM6IGRidXMuYzoyNzUKKyM6IGRidXMuYzoyNzkKIG1zZ2lkICJjb3VsZCBub3QgcmVnaXN0ZXIgYSBEQnVzIG1lc3NhZ2UgaGFuZGxlciIKIG1zZ3N0ciAibm8gc2UgcHVkbyByZWdpc3RyYXIgdW4gbWFuZWphZG9yIGRlIG1lbnNhamVzIERCdXMiCiAKLSM6IGJwZi5jOjQzCisjOiBicGYuYzoxNDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBESENQIEJQRiBzb2NrZXQ6ICVzIgogbXNnc3RyICJubyBzZSBwdWVkZSBjcmVhciBzb2NrZXQgQlBGIERIQ1A6ICVzIgogCi0jOiBicGYuYzo3MQorIzogYnBmLmM6MTc0CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJESENQIHJlcXVlc3QgZm9yIHVuc3VwcG9ydGVkIGhhcmR3YXJlIHR5cGUgKCVkKSByZWNlaXZlZCBvbiAlcyIKIG1zZ3N0ciAicGVkaWRvIERIQ1AgcG9yIHRpcG8gZGUgaGFyZHdhcmUgbm8tc29wb3J0YWRvICglZCkgcmVjaWJpZG8gZW4gJXMiCiAKLSM6IHRmdHAuYzoxNTgKKyM6IHRmdHAuYzoxNzMKK21zZ2lkICJ1bmFibGUgdG8gZ2V0IGZyZWUgcG9ydCBmb3IgVEZUUCIKK21zZ3N0ciAiaW5jYXBheiBkZSBjb25zZWd1aXIgcHVlcnRvIGxpYnJlIHBhcmEgVEZUUCIKKworIzogdGZ0cC5jOjE4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnN1cHBvcnRlZCByZXF1ZXN0IGZyb20gJXMiCiBtc2dzdHIgInBlZGlkbyBuby1zb3BvcnRhZG8gZGVzZGUgJXMiCiAKLSM6IHRmdHAuYzoyMzYKKyM6IHRmdHAuYzoyNjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVEZUUCBzZW50ICVzIHRvICVzIgogbXNnc3RyICJURlRQIGVudmnzICVzIGEgJXMiCiAKLSM6IHRmdHAuYzoyNTkKKyM6IHRmdHAuYzoyODkKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZpbGUgJXMgbm90IGZvdW5kIgogbXNnc3RyICJhcmNoaXZvICVzIG5vIGVuY29udHJhZG8iCiAKLSM6IHRmdHAuYzozNjkKKyM6IHRmdHAuYzozOTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVEZUUCBlcnJvciAlZCAlcyByZWNlaXZlZCBmcm9tICVzIgogbXNnc3RyICJlcnJvciBURlRQICVkICVzIHJlY2liaWRvIGRlICVzIgogCi0jOiB0ZnRwLmM6NDAwCisjOiB0ZnRwLmM6NDMwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJURlRQIGZhaWxlZCBzZW5kaW5nICVzIHRvICVzIgogbXNnc3RyICJURlRQIG5vIHB1ZG8gZW52aWFyICVzIGEgJXMiCiAKLSM6IGxvZy5jOjY5CisjOiBsb2cuYzo3MwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzIgogbXNnc3RyICJubyBzZSBwdWVkZSBhYnJpciAlczogJXMiCiAKLSM6IGxvZy5jOjE0NgorIzogbG9nLmM6ODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZhaWxlZCB0byBjaGFuZ2Ugb3duZXIgb2YgJXM6ICVzIgorbXNnc3RyICJhZHZlcnRlbmNpYTogbm8gc2UgcHVkbyBjYW1iaWFyIGR1ZfFvIGRlICVzOiAlcyIKKworIzogbG9nLmM6MTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm92ZXJmbG93OiAlZCBsb2cgZW50cmllcyBsb3N0IgogbXNnc3RyICJkZXNib3JkYW1pZW50bzogJWQgZW50cmFkYXMgZGUgYml04WNvcmEgcGVyZGlkYXMiCiAKLSM6IGxvZy5jOjIyMworIzogbG9nLmM6MjM4CiAjLCBjLWZvcm1hdAogbXNnaWQgImxvZyBmYWlsZWQ6ICVzIgogbXNnc3RyICJiaXThY29yYSBmYWxs8zogJXMiCiAKLSM6IGxvZy5jOjM3OAorIzogbG9nLmM6Mzk0CiBtc2dpZCAiRkFJTEVEIHRvIHN0YXJ0IHVwIgogbXNnc3RyICJlbCBpbmljaW8gaGEgRkFMTEFETyIKIAorIywgZnV6enkKKyN+IG1zZ2lkICJyZWFkICVzIC0gJWQgaG9zdHMiCisjfiBtc2dzdHIgImRpcmVjY2nzbmVzICVzIC0gJWQgbGXtZGFzIgorCisjfiBtc2dpZCAiTGltaXQgb2YgJWQgbGVhc2VzIGV4Y2VlZGVkLiIKKyN+IG1zZ3N0ciAiTO1taXRlIGRlICVkIGFycmllbmRvcyBleGNlZGlkby4iCisKICN+IG1zZ2lkICJiYWQgZGhjcC1ob3N0IgogI34gbXNnc3RyICJvcGNp824gZGhjcC1ob3N0IGVycvNuZWEiCiAKZGlmZiAtLWdpdCBhL3BvL2ZpLnBvIGIvcG8vZmkucG8KaW5kZXggNzJjMmIxZC4uYTgyYWI3ZCAxMDA2NDQKLS0tIGEvcG8vZmkucG8KKysrIGIvcG8vZmkucG8KQEAgLTYsNyArNiw3IEBACiBtc2dzdHIgIiIKICJQcm9qZWN0LUlkLVZlcnNpb246IGRuc21hc3EgMi4yNFxuIgogIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwNy0wOC0yOSAxMTowOSswMTAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDgtMDItMTIgMTE6MDQrMDAwMFxuIgogIlBPLVJldmlzaW9uLURhdGU6IDIwMDUtMTEtMjggMjI6MDUrMDAwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogU2ltb24gS2VsbGV5IDxzaW1vbkB0aGVrZWxsZXlzLm9yZy51az5cbiIKICJMYW5ndWFnZS1UZWFtOiBGaW5uaXNoIDx0cmFuc2xhdGlvbi10ZWFtLWZpQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD5cbiIKQEAgLTE1LDEyMTMgKzE1LDEzMDcgQEAKICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiAiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gIT0gMSk7XG4iCiAKLSM6IGNhY2hlLmM6NjcxCisjOiBjYWNoZS5jOjY4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gbG9hZCBuYW1lcyBmcm9tICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBjYWNoZS5jOjcwNSBkaGNwLmM6NzE3CisjOiBjYWNoZS5jOjcxNCBkaGNwLmM6NzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBhZGRyZXNzIGF0ICVzIGxpbmUgJWQiCiBtc2dzdHIgIiIKIAotIzogY2FjaGUuYzo3NTIgZGhjcC5jOjczMQorIzogY2FjaGUuYzo3NjEgZGhjcC5jOjc3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbmFtZSBhdCAlcyBsaW5lICVkIgogbXNnc3RyICIiCiAKLSM6IGNhY2hlLmM6NzU5IGRoY3AuYzo3ODUKKyM6IGNhY2hlLmM6NzY4IGRoY3AuYzo4MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZCAlcyAtICVkIGFkZHJlc3NlcyIKIG1zZ3N0ciAiIgogCi0jOiBjYWNoZS5jOjc5NworIzogY2FjaGUuYzo4MDYKIG1zZ2lkICJjbGVhcmVkIGNhY2hlIgogbXNnc3RyICIiCiAKLSM6IGNhY2hlLmM6ODQ0CisjOiBjYWNoZS5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90IGdpdmluZyBuYW1lICVzIHRvIHRoZSBESENQIGxlYXNlIG9mICVzIGJlY2F1c2UgdGhlIG5hbWUgZXhpc3RzIGluICVzICIKICJ3aXRoIGFkZHJlc3MgJXMiCiBtc2dzdHIgIiIKIAotIzogY2FjaGUuYzo4ODQKKyM6IGNhY2hlLmM6OTA3CiAjLCBjLWZvcm1hdAotbXNnaWQgIiIKLSJ0aW1lICVsdSwgY2FjaGUgc2l6ZSAlZCwgJWQvJWQgY2FjaGUgaW5zZXJ0aW9ucyByZS11c2VkIHVuZXhwaXJlZCBjYWNoZSAiCi0iZW50cmllcy4iCittc2dpZCAidGltZSAlbHUiCiBtc2dzdHIgIiIKIAotIzogdXRpbC5jOjE1NyBvcHRpb24uYzo3NTgKKyM6IGNhY2hlLmM6OTA4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhY2hlIHNpemUgJWQsICVkLyVkIGNhY2hlIGluc2VydGlvbnMgcmUtdXNlZCB1bmV4cGlyZWQgY2FjaGUgZW50cmllcy4iCittc2dzdHIgIiIKKworIzogY2FjaGUuYzo5MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAicXVlcmllcyBmb3J3YXJkZWQgJXUsIHF1ZXJpZXMgYW5zd2VyZWQgbG9jYWxseSAldSIKK21zZ3N0ciAiIgorCisjOiBjYWNoZS5jOjkzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZXJ2ZXIgJXMjJWQ6IHF1ZXJpZXMgc2VudCAldSwgcmV0cmllZCBvciBmYWlsZWQgJXUiCittc2dzdHIgIiIKKworIzogdXRpbC5jOjE2MAogbXNnaWQgImNvdWxkIG5vdCBnZXQgbWVtb3J5IgogbXNnc3RyICIiCiAKLSM6IHV0aWwuYzoxNjcKKyM6IHV0aWwuYzoxNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlICVkIGJ5dGVzIgogbXNnc3RyICIiCiAKLSM6IHV0aWwuYzoyNzIKKyM6IHV0aWwuYzoyNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5maW5pdGUiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTg4CisjOiBvcHRpb24uYzoyNDQKIG1zZ2lkICJTcGVjaWZ5IGxvY2FsIGFkZHJlc3MoZXMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTg5CisjOiBvcHRpb24uYzoyNDUKIG1zZ2lkICJSZXR1cm4gaXBhZGRyIGZvciBhbGwgaG9zdHMgaW4gc3BlY2lmaWVkIGRvbWFpbnMuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5MAorIzogb3B0aW9uLmM6MjQ2CiBtc2dpZCAiRmFrZSByZXZlcnNlIGxvb2t1cHMgZm9yIFJGQzE5MTggcHJpdmF0ZSBhZGRyZXNzIHJhbmdlcy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTkxCisjOiBvcHRpb24uYzoyNDcKIG1zZ2lkICJUcmVhdCBpcGFkZHIgYXMgTlhET01BSU4gKGRlZmVhdHMgVmVyaXNpZ24gd2lsZGNhcmQpLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTIKKyM6IG9wdGlvbi5jOjI0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBjYWNoZSBpbiBlbnRyaWVzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5MworIzogb3B0aW9uLmM6MjQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgY29uZmlndXJhdGlvbiBmaWxlIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5NAorIzogb3B0aW9uLmM6MjUwCiBtc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZDogcnVuIGluIGRlYnVnIG1vZGUuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5NQorIzogb3B0aW9uLmM6MjUxCiBtc2dpZCAiRG8gTk9UIGZvcndhcmQgcXVlcmllcyB3aXRoIG5vIGRvbWFpbiBwYXJ0LiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTYKKyM6IG9wdGlvbi5jOjI1MgogbXNnaWQgIlJldHVybiBzZWxmLXBvaW50aW5nIE1YIHJlY29yZHMgZm9yIGxvY2FsIGhvc3RzLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTcKKyM6IG9wdGlvbi5jOjI1MwogbXNnaWQgIkV4cGFuZCBzaW1wbGUgbmFtZXMgaW4gL2V0Yy9ob3N0cyB3aXRoIGRvbWFpbi1zdWZmaXguIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5OAorIzogb3B0aW9uLmM6MjU0CiBtc2dpZCAiRG9uJ3QgZm9yd2FyZCBzcHVyaW91cyBETlMgcmVxdWVzdHMgZnJvbSBXaW5kb3dzIGhvc3RzLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTkKKyM6IG9wdGlvbi5jOjI1NQogbXNnaWQgIkVuYWJsZSBESENQIGluIHRoZSByYW5nZSBnaXZlbiB3aXRoIGxlYXNlIGR1cmF0aW9uLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDAKKyM6IG9wdGlvbi5jOjI1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGFuZ2UgdG8gdGhpcyBncm91cCBhZnRlciBzdGFydHVwIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMQorIzogb3B0aW9uLmM6MjU3CiBtc2dpZCAiU2V0IGFkZHJlc3Mgb3IgaG9zdG5hbWUgZm9yIGEgc3BlY2lmaWVkIG1hY2hpbmUuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMgorIzogb3B0aW9uLmM6MjU4CiBtc2dpZCAiUmVhZCBESENQIGhvc3Qgc3BlY3MgZnJvbSBmaWxlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMwotIywgYy1mb3JtYXQKLW1zZ2lkICJEbyBOT1QgbG9hZCAlcyBmaWxlLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMDQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiU3BlY2lmeSBhIGhvc3RzIGZpbGUgdG8gYmUgcmVhZCBpbiBhZGRpdGlvbiB0byAlcy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjA1Ci1tc2dpZCAiU3BlY2lmeSBpbnRlcmZhY2UocykgdG8gbGlzdGVuIG9uLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMDYKLW1zZ2lkICJTcGVjaWZ5IGludGVyZmFjZShzKSBOT1QgdG8gbGlzdGVuIG9uLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMDcKLW1zZ2lkICJNYXAgREhDUCB1c2VyIGNsYXNzIHRvIHRhZy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjA4Ci1tc2dpZCAiTWFwIFJGQzMwNDYgY2lyY3VpdC1pZCB0byB0YWcuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIwOQotbXNnaWQgIk1hcCBSRkMzMDQ2IHJlbW90ZS1pZCB0byB0YWcuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxMAotbXNnaWQgIk1hcCBSRkMzOTkzIHN1YnNjcmliZXItaWQgdG8gdGFnLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTEKLW1zZ2lkICJEb24ndCBkbyBESENQIGZvciBob3N0cyB3aXRoIHRhZyBzZXQuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxMgotbXNnaWQgIkRvIE5PVCBmb3JrIGludG8gdGhlIGJhY2tncm91bmQsIGRvIE5PVCBydW4gaW4gZGVidWcgbW9kZS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjEzCi1tc2dpZCAiQXNzdW1lIHdlIGFyZSB0aGUgb25seSBESENQIHNlcnZlciBvbiB0aGUgbG9jYWwgbmV0d29yay4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjE0Ci0jLCBjLWZvcm1hdAotbXNnaWQgIlNwZWNpZnkgd2hlcmUgdG8gc3RvcmUgREhDUCBsZWFzZXMgKGRlZmF1bHRzIHRvICVzKS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjE1Ci1tc2dpZCAiUmV0dXJuIE1YIHJlY29yZHMgZm9yIGxvY2FsIGhvc3RzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTYKLW1zZ2lkICJTcGVjaWZ5IGFuIE1YIHJlY29yZC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjE3Ci1tc2dpZCAiU3BlY2lmeSBCT09UUCBvcHRpb25zIHRvIERIQ1Agc2VydmVyLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTgKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRG8gTk9UIHBvbGwgJXMgZmlsZSwgcmVsb2FkIG9ubHkgb24gU0lHSFVQLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTkKLW1zZ2lkICJEbyBOT1QgY2FjaGUgZmFpbGVkIHNlYXJjaCByZXN1bHRzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjAKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiVXNlIG5hbWVzZXJ2ZXJzIHN0cmljdGx5IGluIHRoZSBvcmRlciBnaXZlbiBpbiAlcy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjIxCi1tc2dpZCAiU3BlY2lmeSBvcHRpb25zIHRvIGJlIHNlbnQgdG8gREhDUCBjbGllbnRzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjIKLW1zZ2lkICJESENQIG9wdGlvbiBzZW50IGV2ZW4gaWYgdGhlIGNsaWVudCBkb2VzIG5vdCByZXF1ZXN0IGl0LiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjMKLW1zZ2lkICJTcGVjaWZ5IHBvcnQgdG8gbGlzdGVuIGZvciBETlMgcmVxdWVzdHMgb24gKGRlZmF1bHRzIHRvIDUzKS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjI0Ci0jLCBjLWZvcm1hdAotbXNnaWQgIk1heGltdW0gc3VwcG9ydGVkIFVEUCBwYWNrZXQgc2l6ZSBmb3IgRUROUy4wIChkZWZhdWx0cyB0byAlcykuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyNQotbXNnaWQgIkxvZyBxdWVyaWVzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjYKLW1zZ2lkICJGb3JjZSB0aGUgb3JpZ2luYXRpbmcgcG9ydCBmb3IgdXBzdHJlYW0gcXVlcmllcy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjI3Ci1tc2dpZCAiRG8gTk9UIHJlYWQgcmVzb2x2LmNvbmYuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyOAotIywgYy1mb3JtYXQKLW1zZ2lkICJTcGVjaWZ5IHBhdGggdG8gcmVzb2x2LmNvbmYgKGRlZmF1bHRzIHRvICVzKS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjI5Ci1tc2dpZCAiU3BlY2lmeSBhZGRyZXNzKGVzKSBvZiB1cHN0cmVhbSBzZXJ2ZXJzIHdpdGggb3B0aW9uYWwgZG9tYWlucy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjMwCi1tc2dpZCAiTmV2ZXIgZm9yd2FyZCBxdWVyaWVzIHRvIHNwZWNpZmllZCBkb21haW5zLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzEKLW1zZ2lkICJTcGVjaWZ5IHRoZSBkb21haW4gdG8gYmUgYXNzaWduZWQgaW4gREhDUCBsZWFzZXMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIzMgotbXNnaWQgIlNwZWNpZnkgZGVmYXVsdCB0YXJnZXQgaW4gYW4gTVggcmVjb3JkLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzMKLW1zZ2lkICJTcGVjaWZ5IHRpbWUtdG8tbGl2ZSBpbiBzZWNvbmRzIGZvciByZXBsaWVzIGZyb20gL2V0Yy9ob3N0cy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM0Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkNoYW5nZSB0byB0aGlzIHVzZXIgYWZ0ZXIgc3RhcnR1cC4gKGRlZmF1bHRzIHRvICVzKS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM1Ci1tc2dpZCAiTWFwIERIQ1AgdmVuZG9yIGNsYXNzIHRvIHRhZy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM2Ci1tc2dpZCAiRGlzcGxheSBkbnNtYXNxIHZlcnNpb24gYW5kIGNvcHlyaWdodCBpbmZvcm1hdGlvbi4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM3Ci1tc2dpZCAiVHJhbnNsYXRlIElQdjQgYWRkcmVzc2VzIGZyb20gdXBzdHJlYW0gc2VydmVycy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM4Ci1tc2dpZCAiU3BlY2lmeSBhIFNSViByZWNvcmQuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIzOQotbXNnaWQgIkRpc3BsYXkgdGhpcyBtZXNzYWdlLiBVc2UgLS1oZWxwIGRoY3AgZm9yIGtub3duIERIQ1Agb3B0aW9ucy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQwCi0jLCBjLWZvcm1hdAotbXNnaWQgIlNwZWNpZnkgcGF0aCBvZiBQSUQgZmlsZSAoZGVmYXVsdHMgdG8gJXMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDEKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiU3BlY2lmeSBtYXhpbXVtIG51bWJlciBvZiBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDIKLW1zZ2lkICJBbnN3ZXIgRE5TIHF1ZXJpZXMgYmFzZWQgb24gdGhlIGludGVyZmFjZSBhIHF1ZXJ5IHdhcyBzZW50IHRvLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDMKLW1zZ2lkICJTcGVjaWZ5IFRYVCBETlMgcmVjb3JkLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDQKLW1zZ2lkICJTcGVjaWZ5IFBUUiBETlMgcmVjb3JkLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDUKLW1zZ2lkICJHaXZlIEROUyBuYW1lIHRvIElQdjQgYWRkcmVzcyBvZiBpbnRlcmZhY2UuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI0NgotbXNnaWQgIkJpbmQgb25seSB0byBpbnRlcmZhY2VzIGluIHVzZS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQ3Ci0jLCBjLWZvcm1hdAotbXNnaWQgIlJlYWQgREhDUCBzdGF0aWMgaG9zdCBpbmZvcm1hdGlvbiBmcm9tICVzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDgKLW1zZ2lkICJFbmFibGUgdGhlIERCdXMgaW50ZXJmYWNlIGZvciBzZXR0aW5nIHVwc3RyZWFtIHNlcnZlcnMsIGV0Yy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQ5Ci1tc2dpZCAiRG8gbm90IHByb3ZpZGUgREhDUCBvbiB0aGlzIGludGVyZmFjZSwgb25seSBwcm92aWRlIEROUy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjUwCi1tc2dpZCAiRW5hYmxlIGR5bmFtaWMgYWRkcmVzcyBhbGxvY2F0aW9uIGZvciBib290cC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjUxCi1tc2dpZCAiTWFwIE1BQyBhZGRyZXNzICh3aXRoIHdpbGRjYXJkcykgdG8gb3B0aW9uIHNldC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjUzCi1tc2dpZCAiVHJlYXQgREhDUCByZXF1ZXN0cyBvbiBhbGlhc2VzIGFzIGFycml2aW5nIGZyb20gaW50ZXJmYWNlLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNTUKLW1zZ2lkICJEaXNhYmxlIElDTVAgZWNobyBhZGRyZXNzIGNoZWNraW5nIGluIHRoZSBESENQIHNlcnZlci4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjU2Ci1tc2dpZCAiU2NyaXB0IHRvIHJ1biBvbiBESENQIGxlYXNlIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbi4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjU3Ci1tc2dpZCAiUmVhZCBjb25maWd1cmF0aW9uIGZyb20gYWxsIHRoZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjU4Ci1tc2dpZCAiTG9nIHRvIHRoaXMgc3lzbG9nIGZhY2lsaXR5IG9yIGZpbGUuIChkZWZhdWx0cyB0byBEQUVNT04pIgotbXNnc3RyICIiCi0KICM6IG9wdGlvbi5jOjI1OQotbXNnaWQgIlJlYWQgbGVhc2VzIGF0IHN0YXJ0dXAsIGJ1dCBuZXZlciB3cml0ZSB0aGUgbGVhc2UgZmlsZS4iCittc2dpZCAiUmVhZCBESENQIG9wdGlvbiBzcGVjcyBmcm9tIGZpbGUiCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjYwCiAjLCBjLWZvcm1hdAotbXNnaWQgIk1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgRE5TIHF1ZXJpZXMuIChkZWZhdWx0cyB0byAlcykiCittc2dpZCAiRG8gTk9UIGxvYWQgJXMgZmlsZS4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjYxCiAjLCBjLWZvcm1hdAotbXNnaWQgIkNsZWFyIEROUyBjYWNoZSB3aGVuIHJlbG9hZGluZyAlcy4iCittc2dpZCAiU3BlY2lmeSBhIGhvc3RzIGZpbGUgdG8gYmUgcmVhZCBpbiBhZGRpdGlvbiB0byAlcy4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjYyCi1tc2dpZCAiSWdub3JlIGhvc3RuYW1lcyBwcm92aWRlZCBieSBESENQIGNsaWVudHMuIgorbXNnaWQgIlNwZWNpZnkgaW50ZXJmYWNlKHMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjYzCi1tc2dpZCAiRW5hYmxlIGludGVncmF0ZWQgcmVhZC1vbmx5IFRGVFAgc2VydmVyLiIKK21zZ2lkICJTcGVjaWZ5IGludGVyZmFjZShzKSBOT1QgdG8gbGlzdGVuIG9uLiIKIG1zZ3N0ciAiIgogCiAjOiBvcHRpb24uYzoyNjQKLW1zZ2lkICJFeHBvcnQgZmlsZXMgYnkgVEZUUCBvbmx5IGZyb20gdGhlIHNwZWNpZmllZCBzdWJ0cmVlLiIKK21zZ2lkICJNYXAgREhDUCB1c2VyIGNsYXNzIHRvIHRhZy4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjY1Ci1tc2dpZCAiQWRkIGNsaWVudCBJUCBhZGRyZXNzIHRvIHRmdHAtcm9vdC4iCittc2dpZCAiTWFwIFJGQzMwNDYgY2lyY3VpdC1pZCB0byB0YWcuIgogbXNnc3RyICIiCiAKICM6IG9wdGlvbi5jOjI2NgotbXNnaWQgIkFsbG93IGFjY2VzcyBvbmx5IHRvIGZpbGVzIG93bmVkIGJ5IHRoZSB1c2VyIHJ1bm5pbmcgZG5zbWFzcS4iCittc2dpZCAiTWFwIFJGQzMwNDYgcmVtb3RlLWlkIHRvIHRhZy4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjY3Cittc2dpZCAiTWFwIFJGQzM5OTMgc3Vic2NyaWJlci1pZCB0byB0YWcuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI2OAorbXNnaWQgIkRvbid0IGRvIERIQ1AgZm9yIGhvc3RzIHdpdGggdGFnIHNldC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjY5Cittc2dpZCAiRm9yY2UgYnJvYWRjYXN0IHJlcGxpZXMgZm9yIGhvc3RzIHdpdGggdGFnIHNldC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjcwCittc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZCwgZG8gTk9UIHJ1biBpbiBkZWJ1ZyBtb2RlLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzEKK21zZ2lkICJBc3N1bWUgd2UgYXJlIHRoZSBvbmx5IERIQ1Agc2VydmVyIG9uIHRoZSBsb2NhbCBuZXR3b3JrLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3BlY2lmeSB3aGVyZSB0byBzdG9yZSBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzMKK21zZ2lkICJSZXR1cm4gTVggcmVjb3JkcyBmb3IgbG9jYWwgaG9zdHMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3NAorbXNnaWQgIlNwZWNpZnkgYW4gTVggcmVjb3JkLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzUKK21zZ2lkICJTcGVjaWZ5IEJPT1RQIG9wdGlvbnMgdG8gREhDUCBzZXJ2ZXIuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJEbyBOT1QgcG9sbCAlcyBmaWxlLCByZWxvYWQgb25seSBvbiBTSUdIVVAuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3NworbXNnaWQgIkRvIE5PVCBjYWNoZSBmYWlsZWQgc2VhcmNoIHJlc3VsdHMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3OAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgbmFtZXNlcnZlcnMgc3RyaWN0bHkgaW4gdGhlIG9yZGVyIGdpdmVuIGluICVzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzkKK21zZ2lkICJTcGVjaWZ5IG9wdGlvbnMgdG8gYmUgc2VudCB0byBESENQIGNsaWVudHMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4MAorbXNnaWQgIkRIQ1Agb3B0aW9uIHNlbnQgZXZlbiBpZiB0aGUgY2xpZW50IGRvZXMgbm90IHJlcXVlc3QgaXQuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4MQorbXNnaWQgIlNwZWNpZnkgcG9ydCB0byBsaXN0ZW4gZm9yIEROUyByZXF1ZXN0cyBvbiAoZGVmYXVsdHMgdG8gNTMpLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWF4aW11bSBzdXBwb3J0ZWQgVURQIHBhY2tldCBzaXplIGZvciBFRE5TLjAgKGRlZmF1bHRzIHRvICVzKS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjgzCittc2dpZCAiTG9nIEROUyBxdWVyaWVzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODQKK21zZ2lkICJGb3JjZSB0aGUgb3JpZ2luYXRpbmcgcG9ydCBmb3IgdXBzdHJlYW0gRE5TIHF1ZXJpZXMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4NQorbXNnaWQgIkRvIE5PVCByZWFkIHJlc29sdi5jb25mLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3BlY2lmeSBwYXRoIHRvIHJlc29sdi5jb25mIChkZWZhdWx0cyB0byAlcykuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4NworbXNnaWQgIlNwZWNpZnkgYWRkcmVzcyhlcykgb2YgdXBzdHJlYW0gc2VydmVycyB3aXRoIG9wdGlvbmFsIGRvbWFpbnMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4OAorbXNnaWQgIk5ldmVyIGZvcndhcmQgcXVlcmllcyB0byBzcGVjaWZpZWQgZG9tYWlucy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjg5Cittc2dpZCAiU3BlY2lmeSB0aGUgZG9tYWluIHRvIGJlIGFzc2lnbmVkIGluIERIQ1AgbGVhc2VzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTAKK21zZ2lkICJTcGVjaWZ5IGRlZmF1bHQgdGFyZ2V0IGluIGFuIE1YIHJlY29yZC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjkxCittc2dpZCAiU3BlY2lmeSB0aW1lLXRvLWxpdmUgaW4gc2Vjb25kcyBmb3IgcmVwbGllcyBmcm9tIC9ldGMvaG9zdHMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5MgorbXNnaWQgIlNwZWNpZnkgdGltZS10by1saXZlIGluIHNlY29uZHMgZm9yIG5lZ2F0aXZlIGNhY2hpbmcuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5MworIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2UgdG8gdGhpcyB1c2VyIGFmdGVyIHN0YXJ0dXAuIChkZWZhdWx0cyB0byAlcykuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5NAorbXNnaWQgIk1hcCBESENQIHZlbmRvciBjbGFzcyB0byB0YWcuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5NQorbXNnaWQgIkRpc3BsYXkgZG5zbWFzcSB2ZXJzaW9uIGFuZCBjb3B5cmlnaHQgaW5mb3JtYXRpb24uIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5NgorbXNnaWQgIlRyYW5zbGF0ZSBJUHY0IGFkZHJlc3NlcyBmcm9tIHVwc3RyZWFtIHNlcnZlcnMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5NworbXNnaWQgIlNwZWNpZnkgYSBTUlYgcmVjb3JkLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTgKK21zZ2lkICJEaXNwbGF5IHRoaXMgbWVzc2FnZS4gVXNlIC0taGVscCBkaGNwIGZvciBrbm93biBESENQIG9wdGlvbnMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5OQorIywgYy1mb3JtYXQKK21zZ2lkICJTcGVjaWZ5IHBhdGggb2YgUElEIGZpbGUgKGRlZmF1bHRzIHRvICVzKS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNwZWNpZnkgbWF4aW11bSBudW1iZXIgb2YgREhDUCBsZWFzZXMgKGRlZmF1bHRzIHRvICVzKS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzAxCittc2dpZCAiQW5zd2VyIEROUyBxdWVyaWVzIGJhc2VkIG9uIHRoZSBpbnRlcmZhY2UgYSBxdWVyeSB3YXMgc2VudCB0by4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzAyCittc2dpZCAiU3BlY2lmeSBUWFQgRE5TIHJlY29yZC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzAzCittc2dpZCAiU3BlY2lmeSBQVFIgRE5TIHJlY29yZC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzA0Cittc2dpZCAiR2l2ZSBETlMgbmFtZSB0byBJUHY0IGFkZHJlc3Mgb2YgaW50ZXJmYWNlLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMDUKK21zZ2lkICJCaW5kIG9ubHkgdG8gaW50ZXJmYWNlcyBpbiB1c2UuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIERIQ1Agc3RhdGljIGhvc3QgaW5mb3JtYXRpb24gZnJvbSAlcy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzA3Cittc2dpZCAiRW5hYmxlIHRoZSBEQnVzIGludGVyZmFjZSBmb3Igc2V0dGluZyB1cHN0cmVhbSBzZXJ2ZXJzLCBldGMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMwOAorbXNnaWQgIkRvIG5vdCBwcm92aWRlIERIQ1Agb24gdGhpcyBpbnRlcmZhY2UsIG9ubHkgcHJvdmlkZSBETlMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMwOQorbXNnaWQgIkVuYWJsZSBkeW5hbWljIGFkZHJlc3MgYWxsb2NhdGlvbiBmb3IgYm9vdHAuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxMAorbXNnaWQgIk1hcCBNQUMgYWRkcmVzcyAod2l0aCB3aWxkY2FyZHMpIHRvIG9wdGlvbiBzZXQuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxMgorbXNnaWQgIlRyZWF0IERIQ1AgcmVxdWVzdHMgb24gYWxpYXNlcyBhcyBhcnJpdmluZyBmcm9tIGludGVyZmFjZS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzE0Cittc2dpZCAiRGlzYWJsZSBJQ01QIGVjaG8gYWRkcmVzcyBjaGVja2luZyBpbiB0aGUgREhDUCBzZXJ2ZXIuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxNQorbXNnaWQgIlNjcmlwdCB0byBydW4gb24gREhDUCBsZWFzZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24uIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxNgorbXNnaWQgIlJlYWQgY29uZmlndXJhdGlvbiBmcm9tIGFsbCB0aGUgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxNworbXNnaWQgIkxvZyB0byB0aGlzIHN5c2xvZyBmYWNpbGl0eSBvciBmaWxlLiAoZGVmYXVsdHMgdG8gREFFTU9OKSIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMTgKK21zZ2lkICJSZWFkIGxlYXNlcyBhdCBzdGFydHVwLCBidXQgbmV2ZXIgd3JpdGUgdGhlIGxlYXNlIGZpbGUuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJNYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IEROUyBxdWVyaWVzLiAoZGVmYXVsdHMgdG8gJXMpIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJDbGVhciBETlMgY2FjaGUgd2hlbiByZWxvYWRpbmcgJXMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyMQorbXNnaWQgIklnbm9yZSBob3N0bmFtZXMgcHJvdmlkZWQgYnkgREhDUCBjbGllbnRzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjIKK21zZ2lkICJEbyBOT1QgcmV1c2UgZmlsZW5hbWUgYW5kIHNlcnZlciBmaWVsZHMgZm9yIGV4dHJhIERIQ1Agb3B0aW9ucy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzIzCittc2dpZCAiRW5hYmxlIGludGVncmF0ZWQgcmVhZC1vbmx5IFRGVFAgc2VydmVyLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjQKK21zZ2lkICJFeHBvcnQgZmlsZXMgYnkgVEZUUCBvbmx5IGZyb20gdGhlIHNwZWNpZmllZCBzdWJ0cmVlLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjUKK21zZ2lkICJBZGQgY2xpZW50IElQIGFkZHJlc3MgdG8gdGZ0cC1yb290LiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjYKK21zZ2lkICJBbGxvdyBhY2Nlc3Mgb25seSB0byBmaWxlcyBvd25lZCBieSB0aGUgdXNlciBydW5uaW5nIGRuc21hc3EuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJNYXhpbXVtIG51bWJlciBvZiBjb25uY3VycmVudCBURlRQIHRyYW5zZmVycyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjgKKyM6IG9wdGlvbi5jOjMyOAogbXNnaWQgIkRpc2FibGUgdGhlIFRGVFAgYmxvY2tzaXplIGV4dGVuc2lvbi4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY5CisjOiBvcHRpb24uYzozMjkKK21zZ2lkICJFcGhlbWVyYWwgcG9ydCByYW5nZSBmb3IgdXNlIGJ5IFRGVFAgdHJhbnNmZXJzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzAKIG1zZ2lkICJFeHRyYSBsb2dnaW5nIGZvciBESENQLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNzAKKyM6IG9wdGlvbi5jOjMzMQogbXNnaWQgIkVuYWJsZSBhc3luYy4gbG9nZ2luZzsgb3B0aW9uYWxseSBzZXQgcXVldWUgbGVuZ3RoLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo1MDEKKyM6IG9wdGlvbi5jOjMzMgorbXNnaWQgIlN0b3AgRE5TIHJlYmluZGluZy4gRmlsdGVyIHByaXZhdGUgSVAgcmFuZ2VzIHdoZW4gcmVzb2x2aW5nLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzMKK21zZ2lkICJBbHdheXMgcGVyZm9ybSBETlMgcXVlcmllcyB0byBhbGwgc2VydmVycy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzM0Cittc2dpZCAiU2V0IHRhZyBpZiBjbGllbnQgaW5jbHVkZXMgb3B0aW9uIGluIHJlcXVlc3QuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjU4NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVXNhZ2U6IGRuc21hc3EgW29wdGlvbnNdXG4iCiAiXG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6NTAzCisjOiBvcHRpb24uYzo1ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlIHNob3J0IG9wdGlvbnMgb25seSBvbiB0aGUgY29tbWFuZCBsaW5lLlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjUwNQorIzogb3B0aW9uLmM6NTg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlZhbGlkIG9wdGlvbnMgYXJlIDpcbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo1MjYKKyM6IG9wdGlvbi5jOjYxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJLbm93biBESENQIG9wdGlvbnM6XG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6NTk5CisjOiBvcHRpb24uYzo2ODMKIG1zZ2lkICJiYWQgZGhjcC1vcHRpb24iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6NjU1CisjOiBvcHRpb24uYzo3MzkKIG1zZ2lkICJiYWQgSVAgYWRkcmVzcyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo3NTMKKyM6IG9wdGlvbi5jOjgzNwogbXNnaWQgImJhZCBkb21haW4gaW4gZGhjcC1vcHRpb24iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6ODA5CisjOiBvcHRpb24uYzo4OTUKIG1zZ2lkICJkaGNwLW9wdGlvbiB0b28gbG9uZyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo4NTMKKyM6IG9wdGlvbi5jOjk0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgYWNjZXNzIGRpcmVjdG9yeSAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6ODcyIHRmdHAuYzozMTMKKyM6IG9wdGlvbi5jOjk2MSB0ZnRwLmM6MzQzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBhY2Nlc3MgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjkxMworIzogb3B0aW9uLmM6OTk4CiBtc2dpZCAib25seSBvbmUgZGhjcC1ob3N0c2ZpbGUgYWxsb3dlZCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo5NjIKKyM6IG9wdGlvbi5jOjEwMDUKK21zZ2lkICJvbmx5IG9uZSBkaGNwLW9wdHNmaWxlIGFsbG93ZWQiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MTA0OQogbXNnaWQgImJhZCBNWCBwcmVmZXJlbmNlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjk3MQorIzogb3B0aW9uLmM6MTA1MwogbXNnaWQgImJhZCBNWCBuYW1lIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjk4OQorIzogb3B0aW9uLmM6MTA2NwogbXNnaWQgImJhZCBNWCB0YXJnZXQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTAwMQorIzogb3B0aW9uLmM6MTA3OAogbXNnaWQgImNhbm5vdCBydW4gc2NyaXB0cyB1bmRlciB1Q2xpbnV4IgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjExOTYgb3B0aW9uLmM6MTIwNworIzogb3B0aW9uLmM6MTI2NSBvcHRpb24uYzoxMjczCiBtc2dpZCAiYmFkIHBvcnQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTM0OQorIzogb3B0aW9uLmM6MTI5MyBvcHRpb24uYzoxMzE4Cittc2dpZCAiaW50ZXJmYWNlIGJpbmRpbmcgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoxNDI3Cittc2dpZCAiYmFkIHBvcnQgcmFuZ2UiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MTQ0NAogbXNnaWQgImJhZCBicmlkZ2UtaW50ZXJmYWNlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjEzOTEKKyM6IG9wdGlvbi5jOjE0ODUKIG1zZ2lkICJiYWQgZGhjcC1yYW5nZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxNDE5CisjOiBvcHRpb24uYzoxNTExCiBtc2dpZCAib25seSBvbmUgbmV0aWQgdGFnIGFsbG93ZWQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTQ2MQorIzogb3B0aW9uLmM6MTU1MQogbXNnaWQgImluY29uc2lzdGVudCBESENQIHJhbmdlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE2MzcKKyM6IG9wdGlvbi5jOjE3MTkKIG1zZ2lkICJiYWQgREhDUCBob3N0IG5hbWUiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTg2MQorIzogb3B0aW9uLmM6MTk1OQogbXNnaWQgImJhZCBpbnRlcmZhY2UgbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxODg1CisjOiBvcHRpb24uYzoxOTc5CiBtc2dpZCAiYmFkIFBUUiByZWNvcmQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTkwOQotbXNnaWQgImJhZCBUWFQgcmVjb3JkIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjE5NDEKKyM6IG9wdGlvbi5jOjE5OTkKIG1zZ2lkICJUWFQgcmVjb3JkIHN0cmluZyB0b28gbG9uZyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTgwCisjOiBvcHRpb24uYzoyMDAzCittc2dpZCAiYmFkIFRYVCByZWNvcmQiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjA2MwogbXNnaWQgImJhZCBTUlYgcmVjb3JkIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5OTIKKyM6IG9wdGlvbi5jOjIwNzIKIG1zZ2lkICJiYWQgU1JWIHRhcmdldCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDAzCisjOiBvcHRpb24uYzoyMDgwCiBtc2dpZCAiaW52YWxpZCBwb3J0IG51bWJlciIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDEzCisjOiBvcHRpb24uYzoyMDg3CiBtc2dpZCAiaW52YWxpZCBwcmlvcml0eSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDIzCisjOiBvcHRpb24uYzoyMDk0CiBtc2dpZCAiaW52YWxpZCB3ZWlnaHQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjA1NAorIzogb3B0aW9uLmM6MjEzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJmaWxlcyBuZXN0ZWQgdG9vIGRlZXAgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjA2MiB0ZnRwLmM6NDY3CisjOiBvcHRpb24uYzoyMTM4IHRmdHAuYzo0OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxMTQKKyM6IG9wdGlvbi5jOjIxOTkKIG1zZ2lkICJtaXNzaW5nIFwiIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxNjEKKyM6IG9wdGlvbi5jOjIyNDYKIG1zZ2lkICJiYWQgb3B0aW9uIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxNjMKKyM6IG9wdGlvbi5jOjIyNDgKIG1zZ2lkICJleHRyYW5lb3VzIHBhcmFtZXRlciIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMTY1CisjOiBvcHRpb24uYzoyMjUwCiBtc2dpZCAibWlzc2luZyBwYXJhbWV0ZXIiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjE3MworIzogb3B0aW9uLmM6MjI1OAogbXNnaWQgImVycm9yIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxNzkKKyM6IG9wdGlvbi5jOjIyNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgYXQgbGluZSAlZCBvZiAlJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI1MgorIzogb3B0aW9uLmM6MjMwNCBvcHRpb24uYzoyMzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgJXMiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjQwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJEbnNtYXNxIHZlcnNpb24gJXMgICVzXG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI1MworIzogb3B0aW9uLmM6MjQwMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ29tcGlsZSB0aW1lIG9wdGlvbnMgJXNcbiIKICJcbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjU0CisjOiBvcHRpb24uYzoyNDAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNTUKKyM6IG9wdGlvbi5jOjI0MDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG5zbWFzcSBpcyBmcmVlIHNvZnR3YXJlLCBhbmQgeW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdFxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNTYKKyM6IG9wdGlvbi5jOjI0MDQKICMsIGMtZm9ybWF0Ci1tc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLlxuIgorbXNnaWQgInVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMiBvciAzLlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNjcKKyM6IG9wdGlvbi5jOjI0MTUKIG1zZ2lkICJ0cnkgLS1oZWxwIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNjkKKyM6IG9wdGlvbi5jOjI0MTcKIG1zZ2lkICJ0cnkgLXciCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI3MgorIzogb3B0aW9uLmM6MjQyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIzMTMKKyM6IG9wdGlvbi5jOjI0NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGdldCBob3N0LW5hbWU6ICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIzNDEKKyM6IG9wdGlvbi5jOjI0ODkKIG1zZ2lkICJvbmx5IG9uZSByZXNvbHYuY29uZiBmaWxlIGFsbG93ZWQgaW4gbm8tcG9sbCBtb2RlLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMzUxCisjOiBvcHRpb24uYzoyNDk5CiBtc2dpZCAibXVzdCBoYXZlIGV4YWN0bHkgb25lIHJlc29sdi5jb25mIHRvIHJlYWQgZG9tYWluIGZyb20uIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIzNTQgbmV0d29yay5jOjU0OQorIzogb3B0aW9uLmM6MjUwMiBuZXR3b3JrLmM6NjQwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byByZWFkICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMzcyCisjOiBvcHRpb24uYzoyNTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHNlYXJjaCBkaXJlY3RpdmUgZm91bmQgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogZm9yd2FyZC5jOjM3NgorIzogZm9yd2FyZC5jOjM4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJuYW1lc2VydmVyICVzIHJlZnVzZWQgdG8gZG8gYSByZWN1cnNpdmUgcXVlcnkiCiBtc2dzdHIgIiIKIAotIzogaXNjLmM6NzMgZG5zbWFzcS5jOjcyMworIzogZm9yd2FyZC5jOjQwOQorbXNnaWQgInBvc3NpYmxlIEROUy1yZWJpbmQgYXR0YWNrIGRldGVjdGVkIgorbXNnc3RyICIiCisKKyM6IGlzYy5jOjc3IGRuc21hc3EuYzo3NDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGFjY2VzcyAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogaXNjLmM6ODkKKyM6IGlzYy5jOjkzCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsb2FkICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBpc2MuYzo5MyBkbnNtYXNxLmM6NzQ1CisjOiBpc2MuYzo5NyBkbnNtYXNxLmM6NzY5CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlYWRpbmcgJXMiCiBtc2dzdHIgIiIKIAotIzogaXNjLmM6MTE1CisjOiBpc2MuYzoxMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIG5hbWUgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogaXNjLmM6MTc3CisjOiBpc2MuYzoxODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiSWdub3JpbmcgREhDUCBsZWFzZSBmb3IgJXMgYmVjYXVzZSBpdCBoYXMgYW4gaWxsZWdhbCBkb21haW4gcGFydCIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NDEKKyM6IG5ldHdvcmsuYzo0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duIGludGVyZmFjZSAlcyBpbiBicmlkZ2UtaW50ZXJmYWNlIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzozNzcgZG5zbWFzcS5jOjE3MAorIzogbmV0d29yay5jOjM4OSBkbnNtYXNxLmM6MTgwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgbGlzdGVuaW5nIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjM4NAorIzogbmV0d29yay5jOjM5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc2V0IElQVjYgb3B0aW9ucyBvbiBsaXN0ZW5pbmcgc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NDAyCisjOiBuZXR3b3JrLmM6NDE1CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBiaW5kIGxpc3RlbmluZyBzb2NrZXQgZm9yICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NDEwCisjOiBuZXR3b3JrLmM6NDIwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsaXN0ZW4gb24gc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NDIxCisjOiBuZXR3b3JrLmM6NDMyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgVEZUUCBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo0OTMKKyM6IG5ldHdvcmsuYzo1NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGJpbmQgc2VydmVyIHNvY2tldCBmb3IgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG5ldHdvcmsuYzo1ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiaWdub3JpbmcgbmFtZXNlcnZlciAlcyAtIGxvY2FsIGludGVyZmFjZSIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTAyCisjOiBuZXR3b3JrLmM6NTkxCiAjLCBjLWZvcm1hdAogbXNnaWQgImlnbm9yaW5nIG5hbWVzZXJ2ZXIgJXMgLSBjYW5ub3QgbWFrZS9iaW5kIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUxNworIzogbmV0d29yay5jOjYwNgogbXNnaWQgInVucXVhbGlmaWVkIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MTcKKyM6IG5ldHdvcmsuYzo2MDYKIG1zZ2lkICJuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTE5CisjOiBuZXR3b3JrLmM6NjA4CiBtc2dpZCAiZGVmYXVsdCIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTIxCisjOiBuZXR3b3JrLmM6NjEwCiBtc2dpZCAiZG9tYWluIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MjQKKyM6IG5ldHdvcmsuYzo2MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNpbmcgbG9jYWwgYWRkcmVzc2VzIG9ubHkgZm9yICVzICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MjYKKyM6IG5ldHdvcmsuYzo2MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNpbmcgbmFtZXNlcnZlciAlcyMlZCBmb3IgJXMgJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUyOQorIzogbmV0d29yay5jOjYxOAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2luZyBuYW1lc2VydmVyICVzIyVkKHZpYSAlcykiCittc2dzdHIgIiIKKworIzogbmV0d29yay5jOjYyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2luZyBuYW1lc2VydmVyICVzIyVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoxMDYKKyM6IGRuc21hc3EuYzoxMTAKIG1zZ2lkICIiCiAiSVNDIGRoY3BkIGludGVncmF0aW9uIG5vdCBhdmFpbGFibGU6IHNldCBIQVZFX0lTQ19SRUFERVIgaW4gc3JjL2NvbmZpZy5oIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoxMjgKKyM6IGRuc21hc3EuYzoxMzIKIG1zZ2lkICJURlRQIHNlcnZlciBub3QgYXZhaWxhYmxlOiBzZXQgSEFWRV9URlRQIGluIHNyYy9jb25maWcuaCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTQyCisjOiBkbnNtYXNxLmM6MTM3Cittc2dpZCAiYXN5Y2hyb25vdXMgbG9nZ2luZyBpcyBub3QgYXZhaWxhYmxlIHVuZGVyIFNvbGFyaXMiCittc2dzdHIgIiIKKworIzogZG5zbWFzcS5jOjE1MQogbXNnaWQgIm11c3Qgc2V0IGV4YWN0bHkgb25lIGludGVyZmFjZSBvbiBicm9rZW4gc3lzdGVtcyB3aXRob3V0IElQX1JFQ1ZJRiIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTUyCisjOiBkbnNtYXNxLmM6MTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBmaW5kIGxpc3Qgb2YgaW50ZXJmYWNlczogJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjE2MAorIzogZG5zbWFzcS5jOjE2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duIGludGVyZmFjZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTY2CisjOiBkbnNtYXNxLmM6MTc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGludGVyZmFjZSB3aXRoIGFkZHJlc3MgJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjE4MSBkbnNtYXNxLmM6NTM4CisjOiBkbnNtYXNxLmM6MTkyIGRuc21hc3EuYzo1NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiREJ1cyBlcnJvcjogJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjE4NAorIzogZG5zbWFzcS5jOjE5NQogbXNnaWQgIkRCdXMgbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfREJVUyBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjIxNgorIzogZG5zbWFzcS5jOjIwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIHBpcGU6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoyMzcKKyM6IGRuc21hc3EuYzoyMjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGZvcmsgaW50byBiYWNrZ3JvdW5kOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzM1CisjOiBkbnNtYXNxLmM6MjM5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBjaGRpciB0byBmaWxlc3lzdGVtIHJvb3Q6ICVzIgorbXNnc3RyICIiCisKKyM6IGRuc21hc3EuYzozNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RhcnRlZCwgdmVyc2lvbiAlcyBETlMgZGlzYWJsZWQiCittc2dzdHIgIiIKKworIzogZG5zbWFzcS5jOjM1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJzdGFydGVkLCB2ZXJzaW9uICVzIGNhY2hlc2l6ZSAlZCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzM3CisjOiBkbnNtYXNxLmM6MzUzCiAjLCBjLWZvcm1hdAogbXNnaWQgInN0YXJ0ZWQsIHZlcnNpb24gJXMgY2FjaGUgZGlzYWJsZWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjMzOQorIzogZG5zbWFzcS5jOjM1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb21waWxlIHRpbWUgb3B0aW9uczogJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM0NQorIzogZG5zbWFzcS5jOjM2MQogbXNnaWQgIkRCdXMgc3VwcG9ydCBlbmFibGVkOiBjb25uZWN0ZWQgdG8gc3lzdGVtIGJ1cyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzQ3CisjOiBkbnNtYXNxLmM6MzYzCiBtc2dpZCAiREJ1cyBzdXBwb3J0IGVuYWJsZWQ6IGJ1cyBjb25uZWN0aW9uIHBlbmRpbmciCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM1MgorIzogZG5zbWFzcS5jOjM2OAogbXNnaWQgInNldHRpbmcgLS1iaW5kLWludGVyZmFjZXMgb3B0aW9uIGJlY2F1c2Ugb2YgT1MgbGltaXRhdGlvbnMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM1NworIzogZG5zbWFzcS5jOjM3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ3YXJuaW5nOiBpbnRlcmZhY2UgJXMgZG9lcyBub3QgY3VycmVudGx5IGV4aXN0IgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozNjIKKyM6IGRuc21hc3EuYzozNzgKIG1zZ2lkICJ3YXJuaW5nOiBpZ25vcmluZyByZXNvbHYtZmlsZSBmbGFnIGJlY2F1c2Ugbm8tcmVzb2x2IGlzIHNldCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzY1CisjOiBkbnNtYXNxLmM6MzgxCiBtc2dpZCAid2FybmluZzogbm8gdXBzdHJlYW0gc2VydmVycyBjb25maWd1cmVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozNjkKKyM6IGRuc21hc3EuYzozODUKICMsIGMtZm9ybWF0CiBtc2dpZCAiYXN5bmNocm9ub3VzIGxvZ2dpbmcgZW5hYmxlZCwgcXVldWUgbGltaXQgaXMgJWQgbWVzc2FnZXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM4MQorIzogZG5zbWFzcS5jOjM5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQLCBzdGF0aWMgbGVhc2VzIG9ubHkgb24gJS4wcyVzLCBsZWFzZSB0aW1lICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozODIKKyM6IGRuc21hc3EuYzozOTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCwgSVAgcmFuZ2UgJXMgLS0gJXMsIGxlYXNlIHRpbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM5NgorIzogZG5zbWFzcS5jOjQxMgogbXNnaWQgInJvb3QgaXMgIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozOTYKKyM6IGRuc21hc3EuYzo0MTIKIG1zZ2lkICJlbmFibGVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozOTgKKyM6IGRuc21hc3EuYzo0MTQKIG1zZ2lkICJzZWN1cmUgbW9kZSIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NDE4CisjOiBkbnNtYXNxLmM6NDQwCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlc3RyaWN0aW5nIG1heGltdW0gc2ltdWx0YW5lb3VzIFRGVFAgdHJhbnNmZXJzIHRvICVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo0MjcKKyM6IGRuc21hc3EuYzo0NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAid2FybmluZzogc2V0dGluZyBjYXBhYmlsaXRpZXMgZmFpbGVkOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NDI5CisjOiBkbnNtYXNxLmM6NDUxCiBtc2dpZCAicnVubmluZyBhcyByb290IgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo1NDAKKyM6IGRuc21hc3EuYzo1NjMKIG1zZ2lkICJjb25uZWN0ZWQgdG8gc3lzdGVtIERCdXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjY1OQorIzogZG5zbWFzcS5jOjY4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGlsZCBwcm9jZXNzIGtpbGxlZCBieSBzaWduYWwgJWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjY2MworIzogZG5zbWFzcS5jOjY4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGlsZCBwcm9jZXNzIGV4aXRlZCB3aXRoIHN0YXR1cyAlZCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NjY3CisjOiBkbnNtYXNxLmM6NjkxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBleGVjdXRlICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NjcxCisjOiBkbnNtYXNxLmM6Njk1CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgaGVscGVyOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NzA1CisjOiBkbnNtYXNxLmM6NzI5CiBtc2dpZCAiZXhpdGluZyBvbiByZWNlaXB0IG9mIFNJR1RFUk0iCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjc1NgorIzogZG5zbWFzcS5jOjc4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBzZXJ2ZXJzIGZvdW5kIGluICVzLCB3aWxsIHJldHJ5IgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzozMgorIzogZGhjcC5jOjM4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgREhDUCBzb2NrZXQgOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6NDEKKyM6IGRoY3AuYzo1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc2V0IG9wdGlvbnMgb24gREhDUCBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo1OQorIzogZGhjcC5jOjY4CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgU09fUkVVU0V7QUREUnxQT1JUfSBvbiBESENQIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjcyCisjOiBkaGNwLmM6ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGJpbmQgREhDUCBzZXJ2ZXIgc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6ODUKKyM6IGRoY3AuYzo5NAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIElDTVAgcmF3IHNvY2tldDogJXMuIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzoxMDAKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKLW1zZ3N0ciAiIgotCi0jOiBkaGNwLmM6MTAzCi0jLCBjLWZvcm1hdAotbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCi1tc2dzdHIgIiIKLQotIzogZGhjcC5jOjIyMQorIzogZGhjcC5jOjIyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQIHBhY2tldCByZWNlaXZlZCBvbiAlcyB3aGljaCBoYXMgbm8gYWRkcmVzcyIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6MzUyCisjOiBkaGNwLmM6MzgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcmFuZ2UgJXMgLS0gJXMgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCBuZXRtYXNrICVzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo2NjkKKyM6IGRoY3AuYzo3MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgJXM6JXMiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjcwNAorIzogZGhjcC5jOjc0NAogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbGluZSBhdCAlcyBsaW5lICVkIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4MjYKKyM6IGRoY3AuYzo4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKK21zZ3N0ciAiIgorCisjOiBkaGNwLmM6ODUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzIGluICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6ODMyCisjOiBkaGNwLmM6ODU4CisjLCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCittc2dzdHIgIiIKKworIzogZGhjcC5jOjg2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbGxlZ2FsIGRvbWFpbiAlcyBpbiAlcy4iCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjgzOQorIzogZGhjcC5jOjg5OQogIywgYy1mb3JtYXQKLW1zZ2lkICJyZWFkICVzIC0gJWQgaG9zdHMiCittc2dpZCAiJXMgaGFzIG1vcmUgdGhlbiBvbmUgYWRkcmVzcyBpbiBob3N0c2ZpbGUsIHVzaW5nICVzIGZvciBESENQIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4NjYKKyM6IGRoY3AuYzo5MDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgKCVzKSBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzo1NAorIzogbGVhc2UuYzo1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiBvciBjcmVhdGUgbGVhc2UgZmlsZSAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzo4MAorIzogbGVhc2UuYzo4NAogbXNnaWQgInRvbyBtYW55IHN0b3JlZCBsZWFzZXMiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzoxMjEKKyM6IGxlYXNlLmM6MTI1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBydW4gbGVhc2UtaW5pdCBzY3JpcHQgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IGxlYXNlLmM6MTI3CisjOiBsZWFzZS5jOjEzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJsZWFzZS1pbml0IHNjcmlwdCByZXR1cm5lZCBleGl0IGNvZGUgJXMiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzoyMzQKKyM6IGxlYXNlLmM6MjM4CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byB3cml0ZSAlczogJXMgKHJldHJ5IGluICV1cykiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjMwMAorIzogcmZjMjEzMS5jOjMwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBhZGRyZXNzIHJhbmdlIGF2YWlsYWJsZSBmb3IgREhDUCByZXF1ZXN0ICVzICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMDEKKyM6IHJmYzIxMzEuYzozMDQKIG1zZ2lkICJ3aXRoIHN1Ym5ldCBzZWxlY3RvciIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzAxCisjOiByZmMyMTMxLmM6MzA0CiBtc2dpZCAidmlhIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMTIKKyM6IHJmYzIxMzEuYzozMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCBwYWNrZXQ6IHRyYW5zYWN0aW9uLWlkIGlzICV1IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMTcKKyM6IHJmYzIxMzEuYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIERIQ1Agc3VibmV0OiAlcy8lcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzE5CisjOiByZmMyMTMxLmM6MzIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBESENQIHJhbmdlOiAlcyAtLSAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzQ3IHJmYzIxMzEuYzozNzgKKyM6IHJmYzIxMzEuYzozNTAgcmZjMjEzMS5jOjM4MQogbXNnaWQgImRpc2FibGVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozOTAgcmZjMjEzMS5jOjg1MgorIzogcmZjMjEzMS5jOjM5MyByZmMyMTMxLmM6ODczCiBtc2dpZCAiYWRkcmVzcyBpbiB1c2UiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjM5MworIzogcmZjMjEzMS5jOjM5NgogbXNnaWQgIm5vIGFkZHJlc3MgY29uZmlndXJlZCIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NDA2IHJmYzIxMzEuYzo3MjAKKyM6IHJmYzIxMzEuYzo0MDkgcmZjMjEzMS5jOjczNgogbXNnaWQgIm5vIGFkZHJlc3MgYXZhaWxhYmxlIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo0MTYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiTGltaXQgb2YgJWQgbGVhc2VzIGV4Y2VlZGVkLiIKLW1zZ3N0ciAiIgotCi0jOiByZmMyMTMxLmM6NDE3IHJmYzIxMzEuYzo4NjIKKyM6IHJmYzIxMzEuYzo0MTggcmZjMjEzMS5jOjg4MwogbXNnaWQgIm5vIGxlYXNlcyBsZWZ0IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo0MjEgcmZjMjEzMS5jOjgyNgorIzogcmZjMjEzMS5jOjQyMSByZmMyMTMxLmM6ODQ3CiBtc2dpZCAid3JvbmcgbmV0d29yayIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NTE5CisjOiByZmMyMTMxLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIklnbm9yaW5nIGRvbWFpbiAlcyBmb3IgREhDUCBob3N0IG5hbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjU5OAorIzogcmZjMjEzMS5jOjYxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJWZW5kb3IgY2xhc3M6ICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo2MDAKKyM6IHJmYzIxMzEuYzo2MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlciBjbGFzczogJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY0MQorIzogcmZjMjEzMS5jOjY1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJkaXNhYmxpbmcgREhDUCBzdGF0aWMgYWRkcmVzcyAlcyBmb3IgJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY2MgorIzogcmZjMjEzMS5jOjY3OAogbXNnaWQgInVua25vd24gbGVhc2UiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY3MSByZmMyMTMxLmM6OTcwCisjOiByZmMyMTMxLmM6Njg3IHJmYzIxMzEuYzo5OTIKIG1zZ2lkICJpZ25vcmVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo2OTEKKyM6IHJmYzIxMzEuYzo3MDcKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IGlzIGxlYXNlZCB0byAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NzAxCisjOiByZmMyMTMxLmM6NzE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3QgdXNpbmcgY29uZmlndXJlZCBhZGRyZXNzICVzIGJlY2F1c2UgaXQgaXMgaW4gdXNlIGJ5IHRoZSBzZXJ2ZXIgb3IgcmVsYXkiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjcwNAorIzogcmZjMjEzMS5jOjcyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgdXNpbmcgY29uZmlndXJlZCBhZGRyZXNzICVzIGJlY2F1c2UgaXQgd2FzIHByZXZpb3VzbHkgZGVjbGluZWQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjcxOCByZmMyMTMxLmM6ODU1CisjOiByZmMyMTMxLmM6NzM0IHJmYzIxMzEuYzo4NzYKIG1zZ2lkICJubyB1bmlxdWUtaWQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjc4OQorIzogcmZjMjEzMS5jOjgwNgogbXNnaWQgIndyb25nIGFkZHJlc3MiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjgwMgorIzogcmZjMjEzMS5jOjgyMwogbXNnaWQgImxlYXNlIG5vdCBmb3VuZCIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6ODM0CisjOiByZmMyMTMxLmM6ODU1CiBtc2dpZCAiYWRkcmVzcyBub3QgYXZhaWxhYmxlIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo4NDUKKyM6IHJmYzIxMzEuYzo4NjYKIG1zZ2lkICJzdGF0aWMgbGVhc2UgYXZhaWxhYmxlIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo4NDkKKyM6IHJmYzIxMzEuYzo4NzAKIG1zZ2lkICJhZGRyZXNzIHJlc2VydmVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzoxMjUyCisjOiByZmMyMTMxLmM6MTI2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWdzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MTMzNAorIzogcmZjMjEzMS5jOjEzNTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHNlbmQgREhDUC9CT09UUCBvcHRpb24gJWQ6IG5vIHNwYWNlIGxlZnQgaW4gcGFja2V0IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzoxNDg4CisjOiByZmMyMTMxLmM6MTUwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJyZXF1ZXN0ZWQgb3B0aW9uczogJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjE1MTkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAic2VydmVyIG5hbWU6ICVzIgotbXNnc3RyICIiCi0KLSM6IHJmYzIxMzEuYzoxNTMxCi0jLCBjLWZvcm1hdAotbXNnaWQgImJvb3RmaWxlIG5hbWU6ICVzIgotbXNnc3RyICIiCi0KLSM6IHJmYzIxMzEuYzoxNTQwCisjOiByZmMyMTMxLmM6MTU1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXh0IHNlcnZlcjogJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0bGluay5jOjU5CisjOiByZmMyMTMxLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZmlsZSBuYW1lOiAlcyIKK21zZ3N0ciAiIgorCisjOiByZmMyMTMxLmM6MTU4MworIywgYy1mb3JtYXQKK21zZ2lkICJzZXJ2ZXIgbmFtZTogJXMiCittc2dzdHIgIiIKKworIzogbmV0bGluay5jOjYzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgbmV0bGluayBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldGxpbmsuYzoyMjYKKyM6IG5ldGxpbmsuYzoyMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV0bGluayByZXR1cm5zIGVycm9yOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkYnVzLmM6MTExCisjOiBkYnVzLmM6MTE1CiBtc2dpZCAiYXR0ZW1wdCB0byBzZXQgYW4gSVB2NiBzZXJ2ZXIgYWRkcmVzcyB2aWEgREJ1cyAtIG5vIElQdjYgc3VwcG9ydCIKIG1zZ3N0ciAiIgogCi0jOiBkYnVzLmM6MjM3CisjOiBkYnVzLmM6MjQxCiBtc2dpZCAic2V0dGluZyB1cHN0cmVhbSBzZXJ2ZXJzIGZyb20gREJ1cyIKIG1zZ3N0ciAiIgogCi0jOiBkYnVzLmM6Mjc1CisjOiBkYnVzLmM6Mjc5CiBtc2dpZCAiY291bGQgbm90IHJlZ2lzdGVyIGEgREJ1cyBtZXNzYWdlIGhhbmRsZXIiCiBtc2dzdHIgIiIKIAotIzogYnBmLmM6NDMKKyM6IGJwZi5jOjE0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIERIQ1AgQlBGIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogYnBmLmM6NzEKKyM6IGJwZi5jOjE3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQIHJlcXVlc3QgZm9yIHVuc3VwcG9ydGVkIGhhcmR3YXJlIHR5cGUgKCVkKSByZWNlaXZlZCBvbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6MTU4CisjOiB0ZnRwLmM6MTczCittc2dpZCAidW5hYmxlIHRvIGdldCBmcmVlIHBvcnQgZm9yIFRGVFAiCittc2dzdHIgIiIKKworIzogdGZ0cC5jOjE4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnN1cHBvcnRlZCByZXF1ZXN0IGZyb20gJXMiCiBtc2dzdHIgIiIKIAotIzogdGZ0cC5jOjIzNgorIzogdGZ0cC5jOjI2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJURlRQIHNlbnQgJXMgdG8gJXMiCiBtc2dzdHIgIiIKIAotIzogdGZ0cC5jOjI1OQorIzogdGZ0cC5jOjI4OQogIywgYy1mb3JtYXQKIG1zZ2lkICJmaWxlICVzIG5vdCBmb3VuZCIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6MzY5CisjOiB0ZnRwLmM6Mzk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgZXJyb3IgJWQgJXMgcmVjZWl2ZWQgZnJvbSAlcyIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6NDAwCisjOiB0ZnRwLmM6NDMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgZmFpbGVkIHNlbmRpbmcgJXMgdG8gJXMiCiBtc2dzdHIgIiIKIAotIzogbG9nLmM6NjkKKyM6IGxvZy5jOjczCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzoxNDYKKyM6IGxvZy5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZhaWxlZCB0byBjaGFuZ2Ugb3duZXIgb2YgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IGxvZy5jOjE2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJvdmVyZmxvdzogJWQgbG9nIGVudHJpZXMgbG9zdCIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzoyMjMKKyM6IGxvZy5jOjIzOAogIywgYy1mb3JtYXQKIG1zZ2lkICJsb2cgZmFpbGVkOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzozNzgKKyM6IGxvZy5jOjM5NAogbXNnaWQgIkZBSUxFRCB0byBzdGFydCB1cCIKIG1zZ3N0ciAiIgpkaWZmIC0tZ2l0IGEvcG8vZnIucG8gYi9wby9mci5wbwppbmRleCA4MmFiYjEzLi5kZGNhMzlmIDEwMDY0NAotLS0gYS9wby9mci5wbworKysgYi9wby9mci5wbwpAQCAtNyw3ICs3LDcgQEAKIG1zZ3N0ciAiIgogIlByb2plY3QtSWQtVmVyc2lvbjogZG5zbWFzcSAyLjM0XG4iCiAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgotIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA3LTA4LTI5IDExOjA5KzAxMDBcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwOC0wMi0xMiAxMTowNCswMDAwXG4iCiAiUE8tUmV2aXNpb24tRGF0ZTogMjAwNS0xMC0wMiAxOTowNSswMTAwXG4iCiAiTGFzdC1UcmFuc2xhdG9yOiAgTGlvbmVsIFRyaWNvbiA8bGlvbmVsLnRyaWNvbkBmcmVlLmZyPlxuIgogIkxhbmd1YWdlLVRlYW06IEZyZW5jaCA8dHJhZHVjQHRyYWR1Yy5vcmc+XG4iCkBAIC0xNiwzMSArMTYsMzEgQEAKICJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiAiUGx1cmFsLUZvcm1zOiBucGx1cmFscz0yOyBwbHVyYWw9KG4gPiAxKTtcbiIKIAotIzogY2FjaGUuYzo2NzEKKyM6IGNhY2hlLmM6NjgwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gbG9hZCBuYW1lcyBmcm9tICVzOiAlcyIKIG1zZ3N0ciAiSW1wb3NzaWJsZSBkZSBjaGFyZ2VyIGxlcyBub21zIOAgcGFydGlyIGRlICVzIDogJW0iCiAKLSM6IGNhY2hlLmM6NzA1IGRoY3AuYzo3MTcKKyM6IGNhY2hlLmM6NzE0IGRoY3AuYzo3NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIGFkZHJlc3MgYXQgJXMgbGluZSAlZCIKIG1zZ3N0ciAibWF1dmFpc2UgYWRyZXNzZSBkYW5zICVzIGxpZ25lICVkIgogCi0jOiBjYWNoZS5jOjc1MiBkaGNwLmM6NzMxCisjOiBjYWNoZS5jOjc2MSBkaGNwLmM6NzcxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBuYW1lIGF0ICVzIGxpbmUgJWQiCiBtc2dzdHIgIm1hdXZhaXMgbm9tIGRhbnMgJXMgbGlnbmUgJWQiCiAKLSM6IGNhY2hlLmM6NzU5IGRoY3AuYzo3ODUKKyM6IGNhY2hlLmM6NzY4IGRoY3AuYzo4MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZCAlcyAtICVkIGFkZHJlc3NlcyIKIG1zZ3N0ciAibGVjdHVyZSAlcyAtICVkIGFkcmVzc2VzIgogCi0jOiBjYWNoZS5jOjc5NworIzogY2FjaGUuYzo4MDYKIG1zZ2lkICJjbGVhcmVkIGNhY2hlIgogbXNnc3RyICJjYWNoZSB2aWTpIgogCi0jOiBjYWNoZS5jOjg0NAorIzogY2FjaGUuYzo4NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdCBnaXZpbmcgbmFtZSAlcyB0byB0aGUgREhDUCBsZWFzZSBvZiAlcyBiZWNhdXNlIHRoZSBuYW1lIGV4aXN0cyBpbiAlcyAiCkBAIC00OSw0MDggKzQ5LDQ1OCBAQAogIm5lIGRvbm5lIHBhcyBkZSBub20gJXMgYXUgYmFpbCBESENQIGRlICVzIHBhcmNlLXF1ZSBsZSBub20gZXhpc3RlIGRhbnMgJXMgIgogImF2ZWMgbCdhZHJlc3NlICVzIgogCi0jOiBjYWNoZS5jOjg4NAorIzogY2FjaGUuYzo5MDcKICMsIGMtZm9ybWF0Ci1tc2dpZCAiIgotInRpbWUgJWx1LCBjYWNoZSBzaXplICVkLCAlZC8lZCBjYWNoZSBpbnNlcnRpb25zIHJlLXVzZWQgdW5leHBpcmVkIGNhY2hlICIKLSJlbnRyaWVzLiIKK21zZ2lkICJ0aW1lICVsdSIKK21zZ3N0ciAiIgorCisjOiBjYWNoZS5jOjkwOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiY2FjaGUgc2l6ZSAlZCwgJWQvJWQgY2FjaGUgaW5zZXJ0aW9ucyByZS11c2VkIHVuZXhwaXJlZCBjYWNoZSBlbnRyaWVzLiIKIG1zZ3N0ciAiIgogInRlbXBzICVsdSwgdGFpbGxlIGRlIGNhY2hlICVkLCAlZC8lZCBpbnNlcnRpb25zIGRhbnMgbGUgY2FjaGUgb250ICIKICJy6XV0aWxpc+llcyBkZXMgZW50cullcyBxdWkgbidvbnQgcGFzIGV4cGly6WVzIgogCi0jOiB1dGlsLmM6MTU3IG9wdGlvbi5jOjc1OAorIzogY2FjaGUuYzo5MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAicXVlcmllcyBmb3J3YXJkZWQgJXUsIHF1ZXJpZXMgYW5zd2VyZWQgbG9jYWxseSAldSIKK21zZ3N0ciAiIgorCisjOiBjYWNoZS5jOjkzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZXJ2ZXIgJXMjJWQ6IHF1ZXJpZXMgc2VudCAldSwgcmV0cmllZCBvciBmYWlsZWQgJXUiCittc2dzdHIgIiIKKworIzogdXRpbC5jOjE2MAogbXNnaWQgImNvdWxkIG5vdCBnZXQgbWVtb3J5IgogbXNnc3RyICJpbXBvc3NpYmxlIGQnYWxsb3VlciBkZSBsYSBt6W1vaXJlIgogCi0jOiB1dGlsLmM6MTY3CisjOiB1dGlsLmM6MTcwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgJWQgYnl0ZXMiCiBtc2dzdHIgImltcG9zc2libGUgZGUgY2hhcmdlciAlcyA6ICVtIgogCi0jOiB1dGlsLmM6MjcyCisjOiB1dGlsLmM6Mjc1CiAjLCBjLWZvcm1hdAogbXNnaWQgImluZmluaXRlIgogbXNnc3RyICJpbGxpbWl06ShlKSIKIAotIzogb3B0aW9uLmM6MTg4CisjOiBvcHRpb24uYzoyNDQKIG1zZ2lkICJTcGVjaWZ5IGxvY2FsIGFkZHJlc3MoZXMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIiIKICJTcOljaWZpZSBsYSBvdSBsZXMgYWRyZXNzZShzKSBsb2NhbGVzIG/5IGxlIGTpbW9uIGRvaXQgc2UgbWV0dHJlIOAgbCfpY291dGUuIgogCi0jOiBvcHRpb24uYzoxODkKKyM6IG9wdGlvbi5jOjI0NQogbXNnaWQgIlJldHVybiBpcGFkZHIgZm9yIGFsbCBob3N0cyBpbiBzcGVjaWZpZWQgZG9tYWlucy4iCiBtc2dzdHIgIiIKICJSZXRvdXJuZSBsZXMgYWRyZXNzZXMgSVAgcG91ciB0b3V0ZXMgbGVzIG1hY2hpbmVzIHBy6XNlbnRlcyBkYW5zIGxlcyAiCiAiZG9tYWluZXMgc3DpY2lmaelzIgogCi0jOiBvcHRpb24uYzoxOTAKKyM6IG9wdGlvbi5jOjI0NgogbXNnaWQgIkZha2UgcmV2ZXJzZSBsb29rdXBzIGZvciBSRkMxOTE4IHByaXZhdGUgYWRkcmVzcyByYW5nZXMuIgogbXNnc3RyICJUcmFkdWN0aW9uIGludmVyc2UgdHJ1cXXpZSBwb3VyIGxhIHBsYWdlIGQnYWRyZXNzZSBwcml26WUgUkZDMTkxOCIKIAotIzogb3B0aW9uLmM6MTkxCisjOiBvcHRpb24uYzoyNDcKIG1zZ2lkICJUcmVhdCBpcGFkZHIgYXMgTlhET01BSU4gKGRlZmVhdHMgVmVyaXNpZ24gd2lsZGNhcmQpLiIKIG1zZ3N0ciAiIgogIlRyYWl0ZSBsJ2FkcmVzc2UgSVAgY29tbWUgdW4gZG9tYWluZSBpbmV4aXN0YW50IE5YRE9NQUlOIChjb250b3VybmUgbGUgIgogInN5c3RlbWUgZGUgcmVkaXJlY3Rpb24gZGUgVmVyaXNpZ24pIgogCi0jOiBvcHRpb24uYzoxOTIKKyM6IG9wdGlvbi5jOjI0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBjYWNoZSBpbiBlbnRyaWVzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICIiCiAiU3DpY2lmaWUgbGUgbm9tYnJlIGQnZW50cullcyBxdWUgY29udGllbmRyYSBsZSBjYWNoZSAocGFyIGTpZmF1dCA6ICVzKS4iCiAKLSM6IG9wdGlvbi5jOjE5MworIzogb3B0aW9uLmM6MjQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgY29uZmlndXJhdGlvbiBmaWxlIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJTcOljaWZpZSBsZSBub20gZHUgZmljaGllciBkZSBjb25maWd1cmF0aW9uIChwYXIgZOlmYXV0IDogJXMpIgogCi0jOiBvcHRpb24uYzoxOTQKKyM6IG9wdGlvbi5jOjI1MAogbXNnaWQgIkRvIE5PVCBmb3JrIGludG8gdGhlIGJhY2tncm91bmQ6IHJ1biBpbiBkZWJ1ZyBtb2RlLiIKIG1zZ3N0ciAiTmUgcGFzc2UgcGFzIGVuIHTiY2hlIGRlIGZvbmQgOiBk6W1hcnJlIGVuIG1vZGUgZGVidWciCiAKLSM6IG9wdGlvbi5jOjE5NQorIzogb3B0aW9uLmM6MjUxCiBtc2dpZCAiRG8gTk9UIGZvcndhcmQgcXVlcmllcyB3aXRoIG5vIGRvbWFpbiBwYXJ0LiIKIG1zZ3N0ciAiTmUgcmV0cmFuc21ldCBwYXMgbGVzIHJlcXXqdGVzIHF1aSBuJ29udCBwYXMgZGUgZG9tYWluZS4iCiAKLSM6IG9wdGlvbi5jOjE5NgorIzogb3B0aW9uLmM6MjUyCiBtc2dpZCAiUmV0dXJuIHNlbGYtcG9pbnRpbmcgTVggcmVjb3JkcyBmb3IgbG9jYWwgaG9zdHMuIgogbXNnc3RyICJSZXRvdXJuZSBsZXMgY2hhbXBzIE1YIHBvdXIgbGVzIG1hY2hpbmVzIGxvY2FsZXMuIgogCi0jOiBvcHRpb24uYzoxOTcKKyM6IG9wdGlvbi5jOjI1MwogbXNnaWQgIkV4cGFuZCBzaW1wbGUgbmFtZXMgaW4gL2V0Yy9ob3N0cyB3aXRoIGRvbWFpbi1zdWZmaXguIgogbXNnc3RyICIiCiAiRXRlbmQgbGVzIG5vbXMgdW5pcXVlcyBkZXMgbWFjaGluZXMgZGFucyAvZXRjL2hvc3RzIGF2ZWMgbGUgc3VmZml4ZSBkdSAiCiAiZG9tYWluZS4iCiAKLSM6IG9wdGlvbi5jOjE5OAorIzogb3B0aW9uLmM6MjU0CiBtc2dpZCAiRG9uJ3QgZm9yd2FyZCBzcHVyaW91cyBETlMgcmVxdWVzdHMgZnJvbSBXaW5kb3dzIGhvc3RzLiIKIG1zZ3N0ciAiIgogIk5lIHJldHJhbnNtZXQgcGFzIGxlcyBmYXVzc2VzIHJlcXXqdGVzIEROUyBlbiBwcm92ZW5hbmNlIGRlcyBtYWNoaW5lcyAiCiAiV2luZG93cy4iCiAKLSM6IG9wdGlvbi5jOjE5OQorIzogb3B0aW9uLmM6MjU1CiBtc2dpZCAiRW5hYmxlIERIQ1AgaW4gdGhlIHJhbmdlIGdpdmVuIHdpdGggbGVhc2UgZHVyYXRpb24uIgogbXNnc3RyICIiCiAiQXV0b3Jpc2UgREhDUCBkYW5zIGxhIHBsYWdlIGQnYWRyZXNzZXMgZG9ubullIHN1ciBsYSBkdXLpZSBkZSB2YWxpZGl06SBkdSAiCiAiYmFpbC4iCiAKLSM6IG9wdGlvbi5jOjIwMAorIzogb3B0aW9uLmM6MjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoYW5nZSB0byB0aGlzIGdyb3VwIGFmdGVyIHN0YXJ0dXAgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIk9uIGNoYW5nZSBwb3VyIGNlIGdyb3VwZSBhcHLocyBsZSBk6W1hcnJhZ2UgKHBhciBk6WZhdXQgOiAlcykuIgogCi0jOiBvcHRpb24uYzoyMDEKKyM6IG9wdGlvbi5jOjI1NwogbXNnaWQgIlNldCBhZGRyZXNzIG9yIGhvc3RuYW1lIGZvciBhIHNwZWNpZmllZCBtYWNoaW5lLiIKIG1zZ3N0ciAiT24gYXNzaWduZSB1bmUgYWRyZXNzZSBvdSB1biBub20gcG91ciB1bmUgbWFjaGluZSBzcOljaWZp6WUuIgogCi0jOiBvcHRpb24uYzoyMDIKKyM6IG9wdGlvbi5jOjI1OAogbXNnaWQgIlJlYWQgREhDUCBob3N0IHNwZWNzIGZyb20gZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDMKKyM6IG9wdGlvbi5jOjI1OQorbXNnaWQgIlJlYWQgREhDUCBvcHRpb24gc3BlY3MgZnJvbSBmaWxlIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJEbyBOT1QgbG9hZCAlcyBmaWxlLiIKIG1zZ3N0ciAiTmUgY2hhcmdlIFBBUyBsZSBmaWNoaWVyICVzLiIKIAotIzogb3B0aW9uLmM6MjA0CisjOiBvcHRpb24uYzoyNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBhIGhvc3RzIGZpbGUgdG8gYmUgcmVhZCBpbiBhZGRpdGlvbiB0byAlcy4iCiBtc2dzdHIgIlNw6WNpZmllIHVuIG5vbSBkZSBmaWNoaWVyIGhvc3RzIOAgbGlyZSBlbiBjb21wbOltZW50IGRlICVzIgogCi0jOiBvcHRpb24uYzoyMDUKKyM6IG9wdGlvbi5jOjI2MgogbXNnaWQgIlNwZWNpZnkgaW50ZXJmYWNlKHMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIlNw6WNpZmllIGxhIG91IGxlcyBpbnRlcmZhY2Uocykgb/kgbGUgZOltb24gZG9pdCBzZSBtZXR0cmUg4CBsJ+ljb3V0ZS4iCiAKLSM6IG9wdGlvbi5jOjIwNgorIzogb3B0aW9uLmM6MjYzCiBtc2dpZCAiU3BlY2lmeSBpbnRlcmZhY2UocykgTk9UIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIlNw6WNpZmllIGxhIG91IGxlcyBpbnRlcmZhY2UocykgcXVlIGxlIGTpbW9uIG5lIGRvaXQgUEFTIHRyYWl0ZXIuIgogCi0jOiBvcHRpb24uYzoyMDcKKyM6IG9wdGlvbi5jOjI2NAogIywgZnV6enkKIG1zZ2lkICJNYXAgREhDUCB1c2VyIGNsYXNzIHRvIHRhZy4iCiBtc2dzdHIgIkFzc29jaWUgbGVzIGNsYXNzZXMgZCd1dGlsaXNhdGV1cnMgKCd1c2VyIGNsYXNzJykgREhDUCBhdXggb3B0aW9ucy4iCiAKLSM6IG9wdGlvbi5jOjIwOAorIzogb3B0aW9uLmM6MjY1CiBtc2dpZCAiTWFwIFJGQzMwNDYgY2lyY3VpdC1pZCB0byB0YWcuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwOQorIzogb3B0aW9uLmM6MjY2CiBtc2dpZCAiTWFwIFJGQzMwNDYgcmVtb3RlLWlkIHRvIHRhZy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjEwCisjOiBvcHRpb24uYzoyNjcKIG1zZ2lkICJNYXAgUkZDMzk5MyBzdWJzY3JpYmVyLWlkIHRvIHRhZy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjExCisjOiBvcHRpb24uYzoyNjgKICMsIGZ1enp5CiBtc2dpZCAiRG9uJ3QgZG8gREhDUCBmb3IgaG9zdHMgd2l0aCB0YWcgc2V0LiIKIG1zZ3N0ciAiTmUgcGFzIGF1dG9yaXNlciBESENQIHBvdXIgbGVzIG1hY2hpbmVzIOludW1lcullcyBkYW5zIGxlcyBvcHRpb25zLiIKIAotIzogb3B0aW9uLmM6MjEyCisjOiBvcHRpb24uYzoyNjkKKyMsIGZ1enp5Cittc2dpZCAiRm9yY2UgYnJvYWRjYXN0IHJlcGxpZXMgZm9yIGhvc3RzIHdpdGggdGFnIHNldC4iCittc2dzdHIgIk5lIHBhcyBhdXRvcmlzZXIgREhDUCBwb3VyIGxlcyBtYWNoaW5lcyDpbnVtZXLpZXMgZGFucyBsZXMgb3B0aW9ucy4iCisKKyM6IG9wdGlvbi5jOjI3MAogbXNnaWQgIkRvIE5PVCBmb3JrIGludG8gdGhlIGJhY2tncm91bmQsIGRvIE5PVCBydW4gaW4gZGVidWcgbW9kZS4iCiBtc2dzdHIgIk5lIHBhc3NlIHBhcyBlbiB04mNoZSBkZSBmb25kLCBuZSBwYXMgcydleOljdXRlciBlbiBtb2RlIGRlYnVnLiIKIAotIzogb3B0aW9uLmM6MjEzCisjOiBvcHRpb24uYzoyNzEKIG1zZ2lkICJBc3N1bWUgd2UgYXJlIHRoZSBvbmx5IERIQ1Agc2VydmVyIG9uIHRoZSBsb2NhbCBuZXR3b3JrLiIKIG1zZ3N0ciAiT24gY29uc2lk6HJlIHF1ZSBsJ29uIGVzdCBsZSBzZXVsIHNlcnZldXIgREhDUCBzdXIgbGUgculzZWF1IGxvY2FsLiIKIAotIzogb3B0aW9uLmM6MjE0CisjOiBvcHRpb24uYzoyNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSB3aGVyZSB0byBzdG9yZSBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiU3DpY2lmaWUgb/kgaWwgZmF1dCBzYXV2ZWdhcmRlciBsZXMgYmF1eCBESENQIChwYXIgZOlmYXV0IDogJXMpLiIKIAotIzogb3B0aW9uLmM6MjE1CisjOiBvcHRpb24uYzoyNzMKIG1zZ2lkICJSZXR1cm4gTVggcmVjb3JkcyBmb3IgbG9jYWwgaG9zdHMuIgogbXNnc3RyICJSZXRvdXJuZSBsZXMgY2hhbXBzIE1YIHBvdXIgbGVzIG1hY2hpbmVzIGxvY2FsZXMuIgogCi0jOiBvcHRpb24uYzoyMTYKKyM6IG9wdGlvbi5jOjI3NAogbXNnaWQgIlNwZWNpZnkgYW4gTVggcmVjb3JkLiIKIG1zZ3N0ciAiU3DpY2lmaWUgdW4gY2hhbXAgTVguIgogCi0jOiBvcHRpb24uYzoyMTcKKyM6IG9wdGlvbi5jOjI3NQogbXNnaWQgIlNwZWNpZnkgQk9PVFAgb3B0aW9ucyB0byBESENQIHNlcnZlci4iCiBtc2dzdHIgIlNw6WNpZmllIGxlcyBvcHRpb25zIEJPT1RQIHBvdXIgbGUgc2VydmV1ciBESENQLiIKIAotIzogb3B0aW9uLmM6MjE4CisjOiBvcHRpb24uYzoyNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG8gTk9UIHBvbGwgJXMgZmlsZSwgcmVsb2FkIG9ubHkgb24gU0lHSFVQLiIKIG1zZ3N0ciAiIgogIk5lIHBhcyBzY3J1dGVyIGxlIGZpY2hpZXIgJXMsIG5lIHJlY2hhcmdlciBsZXMgbW9kaWZpY2F0aW9ucyBxdWUgc3VyICIKICJy6WNlcHRpb24gZHUgc2lnbmFsIFNJR0hVUC4iCiAKLSM6IG9wdGlvbi5jOjIxOQorIzogb3B0aW9uLmM6Mjc3CiBtc2dpZCAiRG8gTk9UIGNhY2hlIGZhaWxlZCBzZWFyY2ggcmVzdWx0cy4iCiBtc2dzdHIgIk5lIHBsYWNlIHBhcyBlbiBjYWNoZSBsZSBy6XN1bHRhdCBkZXMgcmVxdep0ZXMgcXVpIG9udCBlY2hvdellcy4iCiAKLSM6IG9wdGlvbi5jOjIyMAorIzogb3B0aW9uLmM6Mjc4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZSBuYW1lc2VydmVycyBzdHJpY3RseSBpbiB0aGUgb3JkZXIgZ2l2ZW4gaW4gJXMuIgogbXNnc3RyICJVdGlsaXNlIGxlcyBzZXJ2ZXVycyBkZSBub21zIGRhbnMgbCdvcmRyZSBkb25u6SBkYW5zICVzLiIKIAotIzogb3B0aW9uLmM6MjIxCisjOiBvcHRpb24uYzoyNzkKICMsIGZ1enp5CiBtc2dpZCAiU3BlY2lmeSBvcHRpb25zIHRvIGJlIHNlbnQgdG8gREhDUCBjbGllbnRzLiIKIG1zZ3N0ciAiT3B0aW9ucyBzdXBwbOltZW50YWlyZXMg4CBhc3NvY2llciBhdXggY2xpZW50cyBESENQLiIKIAotIzogb3B0aW9uLmM6MjIyCisjOiBvcHRpb24uYzoyODAKIG1zZ2lkICJESENQIG9wdGlvbiBzZW50IGV2ZW4gaWYgdGhlIGNsaWVudCBkb2VzIG5vdCByZXF1ZXN0IGl0LiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjMKKyM6IG9wdGlvbi5jOjI4MQogbXNnaWQgIlNwZWNpZnkgcG9ydCB0byBsaXN0ZW4gZm9yIEROUyByZXF1ZXN0cyBvbiAoZGVmYXVsdHMgdG8gNTMpLiIKIG1zZ3N0ciAiIgogIlNw6WNpZmllIGxlIHBvcnQgb/kgaWwgZmF1dCDpY291dGVyIGxlcyByZXF16nRlcyBETlMgKHBhciBk6WZhdXQgOiA1MykuIgogCi0jOiBvcHRpb24uYzoyMjQKKyM6IG9wdGlvbi5jOjI4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJNYXhpbXVtIHN1cHBvcnRlZCBVRFAgcGFja2V0IHNpemUgZm9yIEVETlMuMCAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiIgogIlRhaWxsZSBtYXhpbWFsZSBkZXMgcGFxdWV0cyBVRFAgc3VwcG9ydOlzIHBvdXIgRUROUy4wIChwYXIgZOlmYXV0IDogJXMpLiIKIAotIzogb3B0aW9uLmM6MjI1Ci1tc2dpZCAiTG9nIHF1ZXJpZXMuIgorIzogb3B0aW9uLmM6MjgzCisjLCBmdXp6eQorbXNnaWQgIkxvZyBETlMgcXVlcmllcy4iCiBtc2dzdHIgIkVucmVnaXN0cmUgbGVzIHJlcXXqdGVzIGRhbnMgdW4gam91cm5hbCBkJ2FjdGl2aXTpLiIKIAotIzogb3B0aW9uLmM6MjI2Ci1tc2dpZCAiRm9yY2UgdGhlIG9yaWdpbmF0aW5nIHBvcnQgZm9yIHVwc3RyZWFtIHF1ZXJpZXMuIgorIzogb3B0aW9uLmM6Mjg0CisjLCBmdXp6eQorbXNnaWQgIkZvcmNlIHRoZSBvcmlnaW5hdGluZyBwb3J0IGZvciB1cHN0cmVhbSBETlMgcXVlcmllcy4iCiBtc2dzdHIgIkZvcmNlIGxlIHBvcnQgZCdvcmlnaW5lIHBvdXIgbGVzIHJlcXXqdGVzIHZlcnMgbGVzIHNlcnZldXJzIGFtb250cy4iCiAKLSM6IG9wdGlvbi5jOjIyNworIzogb3B0aW9uLmM6Mjg1CiBtc2dpZCAiRG8gTk9UIHJlYWQgcmVzb2x2LmNvbmYuIgogbXNnc3RyICJOZSBwYXMgbGlyZSBsZSBmaWNoaWVyIHJlc29sdi5jb25mLiIKIAotIzogb3B0aW9uLmM6MjI4CisjOiBvcHRpb24uYzoyODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBwYXRoIHRvIHJlc29sdi5jb25mIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJTcOljaWZpZSBsZSBjaGVtaW4gcG91ciBsZSBmaWNoaWVyIHJlc29sdi5jb25mIChwYXIgZOlmYXV0IDogJXMpLiIKIAotIzogb3B0aW9uLmM6MjI5CisjOiBvcHRpb24uYzoyODcKIG1zZ2lkICJTcGVjaWZ5IGFkZHJlc3MoZXMpIG9mIHVwc3RyZWFtIHNlcnZlcnMgd2l0aCBvcHRpb25hbCBkb21haW5zLiIKIG1zZ3N0ciAiIgogIlNw6WNpZmllIGxhIG91IGxlcyBhZHJlc3NlcyBkZXMgc2VydmV1cnMgYW1vbnRzIGF2ZWMgZGVzIGRvbWFpbmVzIG9wdGlvbmVscy4iCiAKLSM6IG9wdGlvbi5jOjIzMAorIzogb3B0aW9uLmM6Mjg4CiBtc2dpZCAiTmV2ZXIgZm9yd2FyZCBxdWVyaWVzIHRvIHNwZWNpZmllZCBkb21haW5zLiIKIG1zZ3N0ciAiTmUgamFtYWlzIHJldHJhbnNtZXR0cmUgbGVzIHJlcXXqdGVzIHBvdXIgbGVzIGRvbWFpbmVzIHNw6WNpZmnpcy4iCiAKLSM6IG9wdGlvbi5jOjIzMQorIzogb3B0aW9uLmM6Mjg5CiBtc2dpZCAiU3BlY2lmeSB0aGUgZG9tYWluIHRvIGJlIGFzc2lnbmVkIGluIERIQ1AgbGVhc2VzLiIKIG1zZ3N0ciAiU3DpY2lmaWUgbGUgZG9tYWluZSBxdWkgZG9pdCBldHJlIGFzc2lnbukgYXV4IGJhdXggREhDUC4iCiAKLSM6IG9wdGlvbi5jOjIzMgorIzogb3B0aW9uLmM6MjkwCiBtc2dpZCAiU3BlY2lmeSBkZWZhdWx0IHRhcmdldCBpbiBhbiBNWCByZWNvcmQuIgogbXNnc3RyICJTcOljaWZpZSBsYSBjaWJsZSBwYXIgZOlmYXV0IGRhbnMgdW4gY2hhbXAgTVguIgogCi0jOiBvcHRpb24uYzoyMzMKKyM6IG9wdGlvbi5jOjI5MQogbXNnaWQgIlNwZWNpZnkgdGltZS10by1saXZlIGluIHNlY29uZHMgZm9yIHJlcGxpZXMgZnJvbSAvZXRjL2hvc3RzLiIKIG1zZ3N0ciAiIgogIlNw6WNpZmllIGxlIFRUTCBlbiBzZWNvbmRlcyBwb3VyIGxlcyBy6XBvbnNlcyBxdWkgdXRpbGlzZW50IC9ldGMvaG9zdHMuIgogCi0jOiBvcHRpb24uYzoyMzQKKyM6IG9wdGlvbi5jOjI5MgorIywgZnV6enkKK21zZ2lkICJTcGVjaWZ5IHRpbWUtdG8tbGl2ZSBpbiBzZWNvbmRzIGZvciBuZWdhdGl2ZSBjYWNoaW5nLiIKK21zZ3N0ciAiIgorIlNw6WNpZmllIGxlIFRUTCBlbiBzZWNvbmRlcyBwb3VyIGxlcyBy6XBvbnNlcyBxdWkgdXRpbGlzZW50IC9ldGMvaG9zdHMuIgorCisjOiBvcHRpb24uYzoyOTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2hhbmdlIHRvIHRoaXMgdXNlciBhZnRlciBzdGFydHVwLiAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiQ2hhbmdlIHBvdXIgY2V0IHV0aWxpc2F0ZXVyIGFwcuhzIGxlIGTpbWFycmFnZSAocGFyIGTpZmF1dCA6ICVzKS4iCiAKLSM6IG9wdGlvbi5jOjIzNQorIzogb3B0aW9uLmM6Mjk0CiAjLCBmdXp6eQogbXNnaWQgIk1hcCBESENQIHZlbmRvciBjbGFzcyB0byB0YWcuIgogbXNnc3RyICJBc3NvY2llIGxlcyBjbGFzc2VzIGRlIGZvdXJuaXNzZXVycyAoJ3ZlbmRvciBjbGFzcycpIERIQ1AgYXV4IG9wdGlvbnMuIgogCi0jOiBvcHRpb24uYzoyMzYKKyM6IG9wdGlvbi5jOjI5NQogbXNnaWQgIkRpc3BsYXkgZG5zbWFzcSB2ZXJzaW9uIGFuZCBjb3B5cmlnaHQgaW5mb3JtYXRpb24uIgogbXNnc3RyICJBZmZpY2hlIGxhIHZlcnNpb24gZGUgRG5zbWFzcSBldCBsZXMgaW5mb3JtYXRpb25zIGxp6WVzIGF1IGNvcHlyaWdodC4iCiAKLSM6IG9wdGlvbi5jOjIzNworIzogb3B0aW9uLmM6Mjk2CiBtc2dpZCAiVHJhbnNsYXRlIElQdjQgYWRkcmVzc2VzIGZyb20gdXBzdHJlYW0gc2VydmVycy4iCiBtc2dzdHIgIlRyYWR1aXQgbGVzIGFkcmVzc2VzIElQVjQgZGVzIHNlcnZldXJzIGFtb250cy4iCiAKLSM6IG9wdGlvbi5jOjIzOAorIzogb3B0aW9uLmM6Mjk3CiBtc2dpZCAiU3BlY2lmeSBhIFNSViByZWNvcmQuIgogbXNnc3RyICIgU3DpY2lmaWUgdW4gY2hhbXAgU1JWLiIKIAotIzogb3B0aW9uLmM6MjM5CisjOiBvcHRpb24uYzoyOTgKIG1zZ2lkICJEaXNwbGF5IHRoaXMgbWVzc2FnZS4gVXNlIC0taGVscCBkaGNwIGZvciBrbm93biBESENQIG9wdGlvbnMuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI0MAorIzogb3B0aW9uLmM6Mjk5CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IHBhdGggb2YgUElEIGZpbGUgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlNw6WNpZmllIHVuIGNoZW1pbiBwb3VyIGxlIGZpY2hpZXIgUElEIChwYXIgZOlmYXV0IDogJXMpLiIKIAotIzogb3B0aW9uLmM6MjQxCisjOiBvcHRpb24uYzozMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBtYXhpbXVtIG51bWJlciBvZiBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiU3DpY2lmaWUgbGUgbm9tYnJlIG1heGltdW0gZGUgYmF1eCBESENQIChwYXIgZOlmYXV0IDogJXMpLiIKIAotIzogb3B0aW9uLmM6MjQyCisjOiBvcHRpb24uYzozMDEKIG1zZ2lkICJBbnN3ZXIgRE5TIHF1ZXJpZXMgYmFzZWQgb24gdGhlIGludGVyZmFjZSBhIHF1ZXJ5IHdhcyBzZW50IHRvLiIKIG1zZ3N0ciAiIgogIlJlcG9uZCBhdXggcmVxdep0ZXMgRE5TIGVuIHNlIGJhc2FudCBzdXIgbCdpbnRlcmZhY2Ugb3UgYSDpdOkgZW52b3npZSBsYSAiCiAicmVxdep0ZS4iCiAKLSM6IG9wdGlvbi5jOjI0MworIzogb3B0aW9uLmM6MzAyCiBtc2dpZCAiU3BlY2lmeSBUWFQgRE5TIHJlY29yZC4iCiBtc2dzdHIgIlNw6WNpZmllIHVuIGNoYW1wIEROUyBUWFQiCiAKLSM6IG9wdGlvbi5jOjI0NAorIzogb3B0aW9uLmM6MzAzCiAjLCBmdXp6eQogbXNnaWQgIlNwZWNpZnkgUFRSIEROUyByZWNvcmQuIgogbXNnc3RyICJTcOljaWZpZSB1biBjaGFtcCBETlMgVFhUIgogCi0jOiBvcHRpb24uYzoyNDUKKyM6IG9wdGlvbi5jOjMwNAogbXNnaWQgIkdpdmUgRE5TIG5hbWUgdG8gSVB2NCBhZGRyZXNzIG9mIGludGVyZmFjZS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjQ2CisjOiBvcHRpb24uYzozMDUKIG1zZ2lkICJCaW5kIG9ubHkgdG8gaW50ZXJmYWNlcyBpbiB1c2UuIgogbXNnc3RyICJBc3NvY2lhdGlvbiB1bmlxdWVtZW50IGF1eCBpbnRlcmZhY2VzIHLpc2VhdSBhY3R1ZWxsZW1lbnQgYWN0aXZlcy4iCiAKLSM6IG9wdGlvbi5jOjI0NworIzogb3B0aW9uLmM6MzA2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlJlYWQgREhDUCBzdGF0aWMgaG9zdCBpbmZvcm1hdGlvbiBmcm9tICVzLiIKIG1zZ3N0ciAiTGVjdHVyZSBkZXMgaW5mb3JtYXRpb25zIGRlIERIQ1Agc3RhdGlxdWUg4CBwYXJ0aXIgZGUgJXMuIgogCi0jOiBvcHRpb24uYzoyNDgKKyM6IG9wdGlvbi5jOjMwNwogbXNnaWQgIkVuYWJsZSB0aGUgREJ1cyBpbnRlcmZhY2UgZm9yIHNldHRpbmcgdXBzdHJlYW0gc2VydmVycywgZXRjLiIKIG1zZ3N0ciAiIgogIkF1dG9yaXNlIGwnaW50ZXJmYWNlIERCdXMgcG91ciBsYSBjb25maWd1cmF0aW9uIGRlcyBzZXJ2ZXVycyBhbW9udHMsIGV0Yy4iCiAKLSM6IG9wdGlvbi5jOjI0OQorIzogb3B0aW9uLmM6MzA4CiBtc2dpZCAiRG8gbm90IHByb3ZpZGUgREhDUCBvbiB0aGlzIGludGVyZmFjZSwgb25seSBwcm92aWRlIEROUy4iCiBtc2dzdHIgIiIKICJOZSBwYXMgYXNzdXJlciBkZSBmb25jdGlvbiBESENQIHN1ciBjZXR0ZSBpbnRlcmZhY2UsIG1haXMgc2V1bGVtZW50IGxhICIKICJmb25jdGlvbiBETlMuIgogCi0jOiBvcHRpb24uYzoyNTAKKyM6IG9wdGlvbi5jOjMwOQogbXNnaWQgIkVuYWJsZSBkeW5hbWljIGFkZHJlc3MgYWxsb2NhdGlvbiBmb3IgYm9vdHAuIgogbXNnc3RyICJBdXRvcmlzZSBsJ2FsbG9jYXRpb24gZHluYW1pcXVlIGQnYWRyZXNzZSBwb3VyIGJvb3RwLiIKIAotIzogb3B0aW9uLmM6MjUxCisjOiBvcHRpb24uYzozMTAKICMsIGZ1enp5CiBtc2dpZCAiTWFwIE1BQyBhZGRyZXNzICh3aXRoIHdpbGRjYXJkcykgdG8gb3B0aW9uIHNldC4iCiBtc2dzdHIgIkFzc29jaWUgbCdhZHJlc3NlIE1BQyAoYXZlYyBsZXMgam9rZXJzKSBhdXggb3B0aW9ucy4iCiAKLSM6IG9wdGlvbi5jOjI1MworIzogb3B0aW9uLmM6MzEyCiBtc2dpZCAiVHJlYXQgREhDUCByZXF1ZXN0cyBvbiBhbGlhc2VzIGFzIGFycml2aW5nIGZyb20gaW50ZXJmYWNlLiIKIG1zZ3N0ciAiVHJhaXRlciBsZXMgcmVxdep0ZXMgREhDUCBzdXIgbGVzIGFsaWFzIGNvbW1lIGFycml2YW50IGRlIGwnaW50ZXJmYWNlLiIKIAotIzogb3B0aW9uLmM6MjU1CisjOiBvcHRpb24uYzozMTQKIG1zZ2lkICJEaXNhYmxlIElDTVAgZWNobyBhZGRyZXNzIGNoZWNraW5nIGluIHRoZSBESENQIHNlcnZlci4iCiBtc2dzdHIgIiIKICJTdXBwcmltZSBsYSB26XJpZmljYXRpb24gZCdhZHJlc3NlIHN1ciBsZSBzZXJ2ZXVyIGF1IG1veWVuIGRlIHBhcXVldHMgSUNNUCAiCiAiZWNobyIKIAotIzogb3B0aW9uLmM6MjU2CisjOiBvcHRpb24uYzozMTUKIG1zZ2lkICJTY3JpcHQgdG8gcnVuIG9uIERIQ1AgbGVhc2UgY3JlYXRpb24gYW5kIGRlc3RydWN0aW9uLiIKIG1zZ3N0ciAiU2NyaXB0IOAgZXjpY3V0ZXIgbG9ycyBkZSBsYSBjculhdGlvbiBvdSBkZXN0cnVjdGlvbiBkZSBiYWlsIERIQ1AuIgogCi0jOiBvcHRpb24uYzoyNTcKKyM6IG9wdGlvbi5jOjMxNgogbXNnaWQgIlJlYWQgY29uZmlndXJhdGlvbiBmcm9tIGFsbCB0aGUgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuIgogbXNnc3RyICJMZWN0dXJlIGRlIGxhIGNvbmZpZ3VyYXRpb24gZGFucyB0b3VzIGxlcyBmaWNoaWVycyBkZSBjZSBy6XBlcnRvaXJlLiIKIAotIzogb3B0aW9uLmM6MjU4CisjOiBvcHRpb24uYzozMTcKICMsIGZ1enp5CiBtc2dpZCAiTG9nIHRvIHRoaXMgc3lzbG9nIGZhY2lsaXR5IG9yIGZpbGUuIChkZWZhdWx0cyB0byBEQUVNT04pIgogbXNnc3RyICIiCiAiRW5yZWdpc3RyZXIgbGVzIGpvdXJuYXV4IGQnYWN0aXZpdOkgZGFucyBjZXR0ZSBmYWNpbGl06SBzeXNsb2cuIChk6WZhdXQgOiAiCiAiREFFTU9OKSIKIAotIzogb3B0aW9uLmM6MjU5CisjOiBvcHRpb24uYzozMTgKIG1zZ2lkICJSZWFkIGxlYXNlcyBhdCBzdGFydHVwLCBidXQgbmV2ZXIgd3JpdGUgdGhlIGxlYXNlIGZpbGUuIgogbXNnc3RyICJMZWN0dXJlIGRlcyBiYXV4IGF1IGTpbWFycmFnZSwgbWFpcyBhdWN1bmUg6WNyaXR1cmUgZGUgZmljaGllciBkZSBiYXV4IgogCi0jOiBvcHRpb24uYzoyNjAKKyM6IG9wdGlvbi5jOjMxOQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBETlMgcXVlcmllcy4gKGRlZmF1bHRzIHRvICVzKSIKIG1zZ3N0ciAiU3DpY2lmaWUgbGUgbm9tYnJlIG1heGltdW0gZGUgYmF1eCBESENQIChwYXIgZOlmYXV0IDogJXMpLiIKIAotIzogb3B0aW9uLmM6MjYxCisjOiBvcHRpb24uYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xlYXIgRE5TIGNhY2hlIHdoZW4gcmVsb2FkaW5nICVzLiIKIG1zZ3N0ciAiVmlkZXIgbGUgY2FjaGUgRE5TIGxvcnMgZHUgcmVjaGFyZ2VtZW50IGRlICVzLiIKIAotIzogb3B0aW9uLmM6MjYyCisjOiBvcHRpb24uYzozMjEKIG1zZ2lkICJJZ25vcmUgaG9zdG5hbWVzIHByb3ZpZGVkIGJ5IERIQ1AgY2xpZW50cy4iCiBtc2dzdHIgIklnbm9yZXIgbGVzIG5vbXMgZCdo9HRlcyBmb3VybmlzIHBhciBsZXMgY2xpZW50cyBESENQIgogCi0jOiBvcHRpb24uYzoyNjMKKyM6IG9wdGlvbi5jOjMyMgorbXNnaWQgIkRvIE5PVCByZXVzZSBmaWxlbmFtZSBhbmQgc2VydmVyIGZpZWxkcyBmb3IgZXh0cmEgREhDUCBvcHRpb25zLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjMKIG1zZ2lkICJFbmFibGUgaW50ZWdyYXRlZCByZWFkLW9ubHkgVEZUUCBzZXJ2ZXIuIgogbXNnc3RyICJBY3RpdmVyIGxlIHNlcnZlciBURlRQIGludOlncukgKGZvbmN0aW9ubmFudCBlbiBsZWN0dXJlIHNldWxlbWVudCkiCiAKLSM6IG9wdGlvbi5jOjI2NAorIzogb3B0aW9uLmM6MzI0CiBtc2dpZCAiRXhwb3J0IGZpbGVzIGJ5IFRGVFAgb25seSBmcm9tIHRoZSBzcGVjaWZpZWQgc3VidHJlZS4iCiBtc2dzdHIgIiIKICJOJ2V4cG9ydGVyIHBhciBURlRQIHF1ZSBsZXMgZmljaGllcnMgZGUgbCdhcmJvcmVzY2VuY2UgZGUgZmljaGllciBzcOljaWZp6WUiCiAKLSM6IG9wdGlvbi5jOjI2NQorIzogb3B0aW9uLmM6MzI1CiBtc2dpZCAiQWRkIGNsaWVudCBJUCBhZGRyZXNzIHRvIHRmdHAtcm9vdC4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY2CisjOiBvcHRpb24uYzozMjYKIG1zZ2lkICJBbGxvdyBhY2Nlc3Mgb25seSB0byBmaWxlcyBvd25lZCBieSB0aGUgdXNlciBydW5uaW5nIGRuc21hc3EuIgogbXNnc3RyICIiCiAiQWNj6HMgYXV4IHNldWxzIGZpY2hpZXJzIGFwcGFydGVuYW50cyDgIGwndXRpbGlzYXRldXIgc291cyBsZXF1ZWwgdG91cm5lICIKICJkbnNtYXNxIgogCi0jOiBvcHRpb24uYzoyNjcKKyM6IG9wdGlvbi5jOjMyNwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiTWF4aW11bSBudW1iZXIgb2YgY29ubmN1cnJlbnQgVEZUUCB0cmFuc2ZlcnMgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlNw6WNpZmllIGxlIG5vbWJyZSBtYXhpbXVtIGRlIGJhdXggREhDUCAocGFyIGTpZmF1dCA6ICVzKS4iCiAKLSM6IG9wdGlvbi5jOjI2OAorIzogb3B0aW9uLmM6MzI4CiBtc2dpZCAiRGlzYWJsZSB0aGUgVEZUUCBibG9ja3NpemUgZXh0ZW5zaW9uLiIKIG1zZ3N0ciAiROlzYWN0aXZhdGlvbiBkZSBsJ2V4dGVuc2lvbiBURlRQIKsgdGFpbGxlIGRlIGJsb2MguyIKIAotIzogb3B0aW9uLmM6MjY5CisjOiBvcHRpb24uYzozMjkKK21zZ2lkICJFcGhlbWVyYWwgcG9ydCByYW5nZSBmb3IgdXNlIGJ5IFRGVFAgdHJhbnNmZXJzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzAKIG1zZ2lkICJFeHRyYSBsb2dnaW5nIGZvciBESENQLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNzAKKyM6IG9wdGlvbi5jOjMzMQogbXNnaWQgIkVuYWJsZSBhc3luYy4gbG9nZ2luZzsgb3B0aW9uYWxseSBzZXQgcXVldWUgbGVuZ3RoLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo1MDEKKyM6IG9wdGlvbi5jOjMzMgorbXNnaWQgIlN0b3AgRE5TIHJlYmluZGluZy4gRmlsdGVyIHByaXZhdGUgSVAgcmFuZ2VzIHdoZW4gcmVzb2x2aW5nLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzMKK21zZ2lkICJBbHdheXMgcGVyZm9ybSBETlMgcXVlcmllcyB0byBhbGwgc2VydmVycy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzM0Cittc2dpZCAiU2V0IHRhZyBpZiBjbGllbnQgaW5jbHVkZXMgb3B0aW9uIGluIHJlcXVlc3QuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjU4NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVXNhZ2U6IGRuc21hc3EgW29wdGlvbnNdXG4iCkBAIC00NTksMTczICs1MDksMTkyIEBACiAiVXNhZ2UgOiBkbnNtYXNxIFtvcHRpb25zXVxuIgogIlxuIgogCi0jOiBvcHRpb24uYzo1MDMKKyM6IG9wdGlvbi5jOjU4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2Ugc2hvcnQgb3B0aW9ucyBvbmx5IG9uIHRoZSBjb21tYW5kIGxpbmUuXG4iCiBtc2dzdHIgIlV0aWxpc2V6IGxlcyBvcHRpb25zIGNvdXJ0ZXMgdW5pcXVlbWVudCBzdXIgbGEgbGlnbmUgZGUgY29tbWFuZGUuXG4iCiAKLSM6IG9wdGlvbi5jOjUwNQorIzogb3B0aW9uLmM6NTg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlZhbGlkIG9wdGlvbnMgYXJlIDpcbiIKIG1zZ3N0ciAiTGVzIG9wdGlvbnMgdmFsaWRlcyBzb250IDpcbiIKIAotIzogb3B0aW9uLmM6NTI2CisjOiBvcHRpb24uYzo2MTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiS25vd24gREhDUCBvcHRpb25zOlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjU5OQorIzogb3B0aW9uLmM6NjgzCiBtc2dpZCAiYmFkIGRoY3Atb3B0aW9uIgogbXNnc3RyICJtYXV2YWlzIGRoY3Atb3B0aW9uIgogCi0jOiBvcHRpb24uYzo2NTUKKyM6IG9wdGlvbi5jOjczOQogIywgZnV6enkKIG1zZ2lkICJiYWQgSVAgYWRkcmVzcyIKIG1zZ3N0ciAibGVjdHVyZSAlcyAtICVkIGFkcmVzc2VzIgogCi0jOiBvcHRpb24uYzo3NTMKKyM6IG9wdGlvbi5jOjgzNwogbXNnaWQgImJhZCBkb21haW4gaW4gZGhjcC1vcHRpb24iCiBtc2dzdHIgIm1hdXZhaXMgZG9tYWluZSBkYW5zIGRoY3Atb3B0aW9uIgogCi0jOiBvcHRpb24uYzo4MDkKKyM6IG9wdGlvbi5jOjg5NQogbXNnaWQgImRoY3Atb3B0aW9uIHRvbyBsb25nIgogbXNnc3RyICJkaGNwLW9wdGlvbiB0cm9wIGxvbmciCiAKLSM6IG9wdGlvbi5jOjg1MworIzogb3B0aW9uLmM6OTQyCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgYWNjZXNzIGRpcmVjdG9yeSAlczogJXMiCiBtc2dzdHIgIk5lIHBldXQgcGFzIGxpcmUgbGUgculwZXJ0b2lyZSAlcyA6ICVzIgogCi0jOiBvcHRpb24uYzo4NzIgdGZ0cC5jOjMxMworIzogb3B0aW9uLmM6OTYxIHRmdHAuYzozNDMKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBhY2Nlc3MgJXM6ICVzIgogbXNnc3RyICJOZSBwZXV0IHBhcyBsaXJlICVzIDogJXMiCiAKLSM6IG9wdGlvbi5jOjkxMworIzogb3B0aW9uLmM6OTk4CiAjLCBmdXp6eQogbXNnaWQgIm9ubHkgb25lIGRoY3AtaG9zdHNmaWxlIGFsbG93ZWQiCiBtc2dzdHIgInVuZSBzZXVsZSDpdGlxdWV0dGUgbmV0aWQgZXN0IGF1dG9yaXPpZSIKIAotIzogb3B0aW9uLmM6OTYyCisjOiBvcHRpb24uYzoxMDA1CisjLCBmdXp6eQorbXNnaWQgIm9ubHkgb25lIGRoY3Atb3B0c2ZpbGUgYWxsb3dlZCIKK21zZ3N0ciAidW5lIHNldWxlIOl0aXF1ZXR0ZSBuZXRpZCBlc3QgYXV0b3Jpc+llIgorCisjOiBvcHRpb24uYzoxMDQ5CiBtc2dpZCAiYmFkIE1YIHByZWZlcmVuY2UiCiBtc2dzdHIgIk1hdXZhaXNlIHBy6WZlcmVuY2UgTVgiCiAKLSM6IG9wdGlvbi5jOjk3MQorIzogb3B0aW9uLmM6MTA1MwogbXNnaWQgImJhZCBNWCBuYW1lIgogbXNnc3RyICJtYXV2YWlzIG5vbSBNWCIKIAotIzogb3B0aW9uLmM6OTg5CisjOiBvcHRpb24uYzoxMDY3CiBtc2dpZCAiYmFkIE1YIHRhcmdldCIKIG1zZ3N0ciAibWF1dmFpc2UgY2libGUgTVgiCiAKLSM6IG9wdGlvbi5jOjEwMDEKKyM6IG9wdGlvbi5jOjEwNzgKIG1zZ2lkICJjYW5ub3QgcnVuIHNjcmlwdHMgdW5kZXIgdUNsaW51eCIKIG1zZ3N0ciAibmUgcGV1dCBleOljdXRlciBkZSBzY3JpcHQgc291cyB1Q2xpbnV4IgogCi0jOiBvcHRpb24uYzoxMTk2IG9wdGlvbi5jOjEyMDcKKyM6IG9wdGlvbi5jOjEyNjUgb3B0aW9uLmM6MTI3MwogbXNnaWQgImJhZCBwb3J0IgogbXNnc3RyICJtYXV2YWlzIHBvcnQiCiAKLSM6IG9wdGlvbi5jOjEzNDkKKyM6IG9wdGlvbi5jOjEyOTMgb3B0aW9uLmM6MTMxOAorbXNnaWQgImludGVyZmFjZSBiaW5kaW5nIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MTQyNworIywgZnV6enkKK21zZ2lkICJiYWQgcG9ydCByYW5nZSIKK21zZ3N0ciAibWF1dmFpcyBwb3J0IgorCisjOiBvcHRpb24uYzoxNDQ0CiBtc2dpZCAiYmFkIGJyaWRnZS1pbnRlcmZhY2UiCiBtc2dzdHIgIm1hdXZhaXNlIGludGVyZmFjZS1wb250IgogCi0jOiBvcHRpb24uYzoxMzkxCisjOiBvcHRpb24uYzoxNDg1CiBtc2dpZCAiYmFkIGRoY3AtcmFuZ2UiCiBtc2dzdHIgIm1hdXZhaXNlIHBsYWdlIGQnYWRyZXNzZXMgREhDUCAoZGhjcC1yYW5nZSkiCiAKLSM6IG9wdGlvbi5jOjE0MTkKKyM6IG9wdGlvbi5jOjE1MTEKIG1zZ2lkICJvbmx5IG9uZSBuZXRpZCB0YWcgYWxsb3dlZCIKIG1zZ3N0ciAidW5lIHNldWxlIOl0aXF1ZXR0ZSBuZXRpZCBlc3QgYXV0b3Jpc+llIgogCi0jOiBvcHRpb24uYzoxNDYxCisjOiBvcHRpb24uYzoxNTUxCiBtc2dpZCAiaW5jb25zaXN0ZW50IERIQ1AgcmFuZ2UiCiBtc2dzdHIgInBsYWdlIGQnYWRyZXNzZXMgREhDUCBpbmNvaOlyZW50ZSIKIAotIzogb3B0aW9uLmM6MTYzNworIzogb3B0aW9uLmM6MTcxOQogIywgZnV6enkKIG1zZ2lkICJiYWQgREhDUCBob3N0IG5hbWUiCiBtc2dzdHIgIm1hdXZhaXMgbm9tIE1YIgogCi0jOiBvcHRpb24uYzoxODYxCisjOiBvcHRpb24uYzoxOTU5CiAjLCBmdXp6eQogbXNnaWQgImJhZCBpbnRlcmZhY2UgbmFtZSIKIG1zZ3N0ciAibWF1dmFpc2UgaW50ZXJmYWNlLXBvbnQiCiAKLSM6IG9wdGlvbi5jOjE4ODUKKyM6IG9wdGlvbi5jOjE5NzkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIFBUUiByZWNvcmQiCiBtc2dzdHIgIm1hdXZhaXMgY2hhbXAgU1JWIgogCi0jOiBvcHRpb24uYzoxOTA5Ci1tc2dpZCAiYmFkIFRYVCByZWNvcmQiCi1tc2dzdHIgIm1hdXZhaXMgY2hhbXAgVFhUIgotCi0jOiBvcHRpb24uYzoxOTQxCisjOiBvcHRpb24uYzoxOTk5CiBtc2dpZCAiVFhUIHJlY29yZCBzdHJpbmcgdG9vIGxvbmciCiBtc2dzdHIgImNoYe5uZSBkdSBjaGFtcCBUWFQgdHJvcCBsb25ndWUiCiAKLSM6IG9wdGlvbi5jOjE5ODAKKyM6IG9wdGlvbi5jOjIwMDMKK21zZ2lkICJiYWQgVFhUIHJlY29yZCIKK21zZ3N0ciAibWF1dmFpcyBjaGFtcCBUWFQiCisKKyM6IG9wdGlvbi5jOjIwNjMKIG1zZ2lkICJiYWQgU1JWIHJlY29yZCIKIG1zZ3N0ciAibWF1dmFpcyBjaGFtcCBTUlYiCiAKLSM6IG9wdGlvbi5jOjE5OTIKKyM6IG9wdGlvbi5jOjIwNzIKIG1zZ2lkICJiYWQgU1JWIHRhcmdldCIKIG1zZ3N0ciAibWF1dmFpc2UgY2libGUgU1JWIgogCi0jOiBvcHRpb24uYzoyMDAzCisjOiBvcHRpb24uYzoyMDgwCiBtc2dpZCAiaW52YWxpZCBwb3J0IG51bWJlciIKIG1zZ3N0ciAibnVt6XJvIGRlIHBvcnQgaW52YWxpZGUiCiAKLSM6IG9wdGlvbi5jOjIwMTMKKyM6IG9wdGlvbi5jOjIwODcKIG1zZ2lkICJpbnZhbGlkIHByaW9yaXR5IgogbXNnc3RyICJwcmlvcml06SBpbnZhbGlkZSIKIAotIzogb3B0aW9uLmM6MjAyMworIzogb3B0aW9uLmM6MjA5NAogbXNnaWQgImludmFsaWQgd2VpZ2h0IgogbXNnc3RyICJwb2lkcyBpbnZhbGlkZSIKIAotIzogb3B0aW9uLmM6MjA1NAorIzogb3B0aW9uLmM6MjEzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJmaWxlcyBuZXN0ZWQgdG9vIGRlZXAgaW4gJXMiCiBtc2dzdHIgInRyb3AgZGUgbml2ZWF1eCBkZSBy6WN1cnNpb24gcG91ciBsZXMgZmljaGllcnMgZGFucyAlcyIKIAotIzogb3B0aW9uLmM6MjA2MiB0ZnRwLmM6NDY3CisjOiBvcHRpb24uYzoyMTM4IHRmdHAuYzo0OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICJOZSBwZXV0IHBhcyBsaXJlICVzIDogJXMiCiAKLSM6IG9wdGlvbi5jOjIxMTQKKyM6IG9wdGlvbi5jOjIxOTkKIG1zZ2lkICJtaXNzaW5nIFwiIgogbXNnc3RyICJpbCBtYW5xdWUgXCIiCiAKLSM6IG9wdGlvbi5jOjIxNjEKKyM6IG9wdGlvbi5jOjIyNDYKIG1zZ2lkICJiYWQgb3B0aW9uIgogbXNnc3RyICJtYXV2YWlzZSBvcHRpb24iCiAKLSM6IG9wdGlvbi5jOjIxNjMKKyM6IG9wdGlvbi5jOjIyNDgKIG1zZ2lkICJleHRyYW5lb3VzIHBhcmFtZXRlciIKIG1zZ3N0ciAicGFyYW3odHJlIGVuIHRyb3AiCiAKLSM6IG9wdGlvbi5jOjIxNjUKKyM6IG9wdGlvbi5jOjIyNTAKIG1zZ2lkICJtaXNzaW5nIHBhcmFtZXRlciIKIG1zZ3N0ciAicGFyYW3odHJlIG1hbnF1YW50IgogCi0jOiBvcHRpb24uYzoyMTczCisjOiBvcHRpb24uYzoyMjU4CiBtc2dpZCAiZXJyb3IiCiBtc2dzdHIgImVycmV1ciIKIAotIzogb3B0aW9uLmM6MjE3OQorIzogb3B0aW9uLmM6MjI2NAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBhdCBsaW5lICVkIG9mICUlcyIKIG1zZ3N0ciAiJXMg4CBsYSBsaWduZSAlZCBkZSAlJXMiCiAKLSM6IG9wdGlvbi5jOjIyNTIKKyM6IG9wdGlvbi5jOjIzMDQgb3B0aW9uLmM6MjMzNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZCAlcyIKK21zZ3N0ciAiTGVjdHVyZSBkZSAlcyIKKworIzogb3B0aW9uLmM6MjQwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJEbnNtYXNxIHZlcnNpb24gJXMgICVzXG4iCiBtc2dzdHIgIlZlcnNpb24gZGUgRG5zbWFzcSAlcyAgJXNcbiIKIAotIzogb3B0aW9uLmM6MjI1MworIzogb3B0aW9uLmM6MjQwMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ29tcGlsZSB0aW1lIG9wdGlvbnMgJXNcbiIKQEAgLTYzNCw1MjYgKzcwMyw1NDkgQEAKICJPcHRpb25zIOAgbGEgY29tcGlsYXRpb24gJXNcbiIKICJcbiIKIAotIzogb3B0aW9uLmM6MjI1NAorIzogb3B0aW9uLmM6MjQwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS5cbiIKIG1zZ3N0ciAiQ2UgbG9naWNpZWwgZXN0IGZvdXJuaSBzYW5zIEFVQ1VORSBHQVJBTlRJRS5cbiIKIAotIzogb3B0aW9uLmM6MjI1NQorIzogb3B0aW9uLmM6MjQwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJEbnNtYXNxIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0XG4iCiBtc2dzdHIgIkRuc21hc3EgZXN0IHVuIGxvZ2ljaWVsIGxpYnJlLCBpbCB2b3VzIGVzdCBwZXJtaXMgZGUgbGUgcmVkaXN0cmlidWVyXG4iCiAKLSM6IG9wdGlvbi5jOjIyNTYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLlxuIgorIzogb3B0aW9uLmM6MjQwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyIG9yIDMuXG4iCiBtc2dzdHIgIiIKICJzb3VzIGxlcyB0ZXJtZXMgZGUgbGEgbGljZW5jZSBHUEwgKEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlKSwgdmVyc2lvbiAyLlxuIgogCi0jOiBvcHRpb24uYzoyMjY3CisjOiBvcHRpb24uYzoyNDE1CiBtc2dpZCAidHJ5IC0taGVscCIKIG1zZ3N0ciAiZXNzYXlleiBhdmVjIC0taGVscCIKIAotIzogb3B0aW9uLmM6MjI2OQorIzogb3B0aW9uLmM6MjQxNwogbXNnaWQgInRyeSAtdyIKIG1zZ3N0ciAiZXNzYXlleiBhdmVjIC13IgogCi0jOiBvcHRpb24uYzoyMjcyCisjOiBvcHRpb24uYzoyNDIwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJiYWQgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICVzIgogbXNnc3RyICJtYXV2YWlzZXMgb3B0aW9ucyBlbiBsaWduZSBkZSBjb21tYW5kZSA6ICVzLiIKIAotIzogb3B0aW9uLmM6MjMxMworIzogb3B0aW9uLmM6MjQ2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZ2V0IGhvc3QtbmFtZTogJXMiCiBtc2dzdHIgIm5lIHBldXQgcGFzIG9idGVuaXIgbGUgbm9tIGRlIGxhIG1hY2hpbmUgOiAlcyIKIAotIzogb3B0aW9uLmM6MjM0MQorIzogb3B0aW9uLmM6MjQ4OQogbXNnaWQgIm9ubHkgb25lIHJlc29sdi5jb25mIGZpbGUgYWxsb3dlZCBpbiBuby1wb2xsIG1vZGUuIgogbXNnc3RyICJzZXVsIHVuIGZpY2hpZXIgcmVzb2x2LmNvbmYgZXN0IGF1dG9yaXPpIGRhbnMgbGUgbW9kZSBuby1wb2xsIgogCi0jOiBvcHRpb24uYzoyMzUxCisjOiBvcHRpb24uYzoyNDk5CiBtc2dpZCAibXVzdCBoYXZlIGV4YWN0bHkgb25lIHJlc29sdi5jb25mIHRvIHJlYWQgZG9tYWluIGZyb20uIgogbXNnc3RyICIiCiAidW4gZmljaGllciByZXNvbHYuY29uZiAoZXQgdW4gc2V1bCkgZXN0IG7pY2Vzc2FpcmUgcG91ciB5IHLpY3VwZXJlciBsZSBub20gIgogImRlIGRvbWFpbmUuIgogCi0jOiBvcHRpb24uYzoyMzU0IG5ldHdvcmsuYzo1NDkKKyM6IG9wdGlvbi5jOjI1MDIgbmV0d29yay5jOjY0MAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgJXM6ICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGxpcmUgJXMgOiAlbSIKIAotIzogb3B0aW9uLmM6MjM3MgorIzogb3B0aW9uLmM6MjUyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBzZWFyY2ggZGlyZWN0aXZlIGZvdW5kIGluICVzIgogbXNnc3RyICJwYXMgZGUgZGlyZWN0aXZlIGRlIHJlY2hlcmNoZSB0cm91dullIGRhbnMgJXMiCiAKLSM6IGZvcndhcmQuYzozNzYKKyM6IGZvcndhcmQuYzozODEKICMsIGMtZm9ybWF0CiBtc2dpZCAibmFtZXNlcnZlciAlcyByZWZ1c2VkIHRvIGRvIGEgcmVjdXJzaXZlIHF1ZXJ5IgogbXNnc3RyICJsZSBzZXJ2ZXVyIGRlIG5vbSAlcyBhIHJlZnVz6SBkZSBmYWlyZSB1bmUgcmVjaGVyY2hlIHLpY3Vyc2l2ZSIKIAotIzogaXNjLmM6NzMgZG5zbWFzcS5jOjcyMworIzogZm9yd2FyZC5jOjQwOQorbXNnaWQgInBvc3NpYmxlIEROUy1yZWJpbmQgYXR0YWNrIGRldGVjdGVkIgorbXNnc3RyICIiCisKKyM6IGlzYy5jOjc3IGRuc21hc3EuYzo3NDcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBhY2Nlc3MgJXM6ICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnYWNj6WRlciDgICVzIDogJW0iCiAKLSM6IGlzYy5jOjg5CisjOiBpc2MuYzo5MwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGxvYWQgJXM6ICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNoYXJnZXIgJXMgOiAlbSIKIAotIzogaXNjLmM6OTMgZG5zbWFzcS5jOjc0NQorIzogaXNjLmM6OTcgZG5zbWFzcS5jOjc2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWFkaW5nICVzIgogbXNnc3RyICJMZWN0dXJlIGRlICVzIgogCi0jOiBpc2MuYzoxMTUKKyM6IGlzYy5jOjExOQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbmFtZSBpbiAlcyIKIG1zZ3N0ciAibWF1dmFpcyBub20gZGFucyAlcyIKIAotIzogaXNjLmM6MTc3CisjOiBpc2MuYzoxODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiSWdub3JpbmcgREhDUCBsZWFzZSBmb3IgJXMgYmVjYXVzZSBpdCBoYXMgYW4gaWxsZWdhbCBkb21haW4gcGFydCIKIG1zZ3N0ciAiIgogIk9uIGlnbm9yZSBsZSBiYWlsIERIQ1AgcG91ciAlcyBjYXIgaWwgcG9zc+hkZSB1biBub20gZGUgZG9tYWluZSBpbGzpZ2FsIgogCi0jOiBuZXR3b3JrLmM6NDEKKyM6IG5ldHdvcmsuYzo0NQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAidW5rbm93biBpbnRlcmZhY2UgJXMgaW4gYnJpZGdlLWludGVyZmFjZSIKIG1zZ3N0ciAiaW50ZXJmYWNlICVzIGluY29ubnVlIgogCi0jOiBuZXR3b3JrLmM6Mzc3IGRuc21hc3EuYzoxNzAKKyM6IG5ldHdvcmsuYzozODkgZG5zbWFzcS5jOjE4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGxpc3RlbmluZyBzb2NrZXQ6ICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNy6WVyIHVuZSBzb2NrZXQgZGUgbGVjdHVyZSA6ICVzIgogCi0jOiBuZXR3b3JrLmM6Mzg0CisjOiBuZXR3b3JrLmM6Mzk2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgSVBWNiBvcHRpb25zIG9uIGxpc3RlbmluZyBzb2NrZXQ6ICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnYWN0aXZlciBsZXMgb3B0aW9ucyBJUFY2IHN1ciBsYSBzb2NrZXQgZGUgbGVjdHVyZSA6ICVzIgogCi0jOiBuZXR3b3JrLmM6NDAyCisjOiBuZXR3b3JrLmM6NDE1CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBiaW5kIGxpc3RlbmluZyBzb2NrZXQgZm9yICVzOiAlcyIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaWVyIGxhIHNvY2tldCBkZSBsZWN0dXJlIHBvdXIgJXMgOiAlcyIKIAotIzogbmV0d29yay5jOjQxMAorIzogbmV0d29yay5jOjQyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gbGlzdGVuIG9uIHNvY2tldDogJXMiCiBtc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSBzdXIgbGEgc29ja2V0IDogJXMiCiAKLSM6IG5ldHdvcmsuYzo0MjEKKyM6IG5ldHdvcmsuYzo0MzIKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgVEZUUCBzb2NrZXQ6ICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNy6WVyIHVuZSBzb2NrZXQgZGUgbGVjdHVyZSA6ICVzIgogCi0jOiBuZXR3b3JrLmM6NDkzCisjOiBuZXR3b3JrLmM6NTQ5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gYmluZCBzZXJ2ZXIgc29ja2V0IGZvciAlczogJXMiCittc2dzdHIgImltcG9zc2libGUgZGUgbGllciBsYSBzb2NrZXQgZGUgbGVjdHVyZSBwb3VyICVzIDogJXMiCisKKyM6IG5ldHdvcmsuYzo1ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiaWdub3JpbmcgbmFtZXNlcnZlciAlcyAtIGxvY2FsIGludGVyZmFjZSIKIG1zZ3N0ciAiaWdub3JlIGxlIHNlcnZldXIgZGUgbm9tICVzIC0gaW50ZXJmYWNlIGxvY2FsZSIKIAotIzogbmV0d29yay5jOjUwMgorIzogbmV0d29yay5jOjU5MQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiaWdub3JpbmcgbmFtZXNlcnZlciAlcyAtIGNhbm5vdCBtYWtlL2JpbmQgc29ja2V0OiAlcyIKIG1zZ3N0ciAiaWdub3JlIGxlIHNlcnZldXIgZGUgbm9tICVzIC0gbmUgcGV1dCBjb25zdHJ1aXJlL2xpZXIgbGEgc29ja2V0IDogJW0iCiAKLSM6IG5ldHdvcmsuYzo1MTcKKyM6IG5ldHdvcmsuYzo2MDYKIG1zZ2lkICJ1bnF1YWxpZmllZCIKIG1zZ3N0ciAibm9uLXF1YWxpZmnpKGUpIgogCi0jOiBuZXR3b3JrLmM6NTE3CisjOiBuZXR3b3JrLmM6NjA2CiBtc2dpZCAibmFtZXMiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUxOQorIzogbmV0d29yay5jOjYwOAogbXNnaWQgImRlZmF1bHQiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUyMQorIzogbmV0d29yay5jOjYxMAogbXNnaWQgImRvbWFpbiIKIG1zZ3N0ciAiZG9tYWluZSIKIAotIzogbmV0d29yay5jOjUyNAorIzogbmV0d29yay5jOjYxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2luZyBsb2NhbCBhZGRyZXNzZXMgb25seSBmb3IgJXMgJXMiCiBtc2dzdHIgInV0aWxpc2UgbGVzIGFkcmVzc2VzIGxvY2FsZXMgc2V1bGVtZW50IHBvdXIgJXMgJXMiCiAKLSM6IG5ldHdvcmsuYzo1MjYKKyM6IG5ldHdvcmsuYzo2MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNpbmcgbmFtZXNlcnZlciAlcyMlZCBmb3IgJXMgJXMiCiBtc2dzdHIgInV0aWxpc2UgbGUgc2VydmV1ciBkZSBub20gJXMjJWQgcG91ciAlcyAlcyIKIAotIzogbmV0d29yay5jOjUyOQorIzogbmV0d29yay5jOjYxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNpbmcgbmFtZXNlcnZlciAlcyMlZCh2aWEgJXMpIgorbXNnc3RyICJ1dGlsaXNlIGxlIHNlcnZldXIgZGUgbm9tICVzIyVkIgorCisjOiBuZXR3b3JrLmM6NjIwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQiCiBtc2dzdHIgInV0aWxpc2UgbGUgc2VydmV1ciBkZSBub20gJXMjJWQiCiAKLSM6IGRuc21hc3EuYzoxMDYKKyM6IGRuc21hc3EuYzoxMTAKIG1zZ2lkICIiCiAiSVNDIGRoY3BkIGludGVncmF0aW9uIG5vdCBhdmFpbGFibGU6IHNldCBIQVZFX0lTQ19SRUFERVIgaW4gc3JjL2NvbmZpZy5oIgogbXNnc3RyICIiCiAiTCdpbnTpZ3JhdGlvbiBESENQIElTQyBuJ2VzdCBwYXMgZGlzcG9uaWJsZSA6IGFjdGl2ZXogSEFWRV9JU0NfUkVBREVSIGRhbnMgIgogInNyYy9jb25maWcuaCIKIAotIzogZG5zbWFzcS5jOjEyOAorIzogZG5zbWFzcS5jOjEzMgogIywgZnV6enkKIG1zZ2lkICJURlRQIHNlcnZlciBub3QgYXZhaWxhYmxlOiBzZXQgSEFWRV9URlRQIGluIHNyYy9jb25maWcuaCIKIG1zZ3N0ciAiREJ1cyBuJ2VzdCBwYXMgZGlzcG9uaWJsZSA6IGFjdGl2ZXogSEFWRV9EQlVTIGRhbnMgc3JjL2NvbmZpZy5oIgogCi0jOiBkbnNtYXNxLmM6MTQyCisjOiBkbnNtYXNxLmM6MTM3Cittc2dpZCAiYXN5Y2hyb25vdXMgbG9nZ2luZyBpcyBub3QgYXZhaWxhYmxlIHVuZGVyIFNvbGFyaXMiCittc2dzdHIgIiIKKworIzogZG5zbWFzcS5jOjE1MQogbXNnaWQgIm11c3Qgc2V0IGV4YWN0bHkgb25lIGludGVyZmFjZSBvbiBicm9rZW4gc3lzdGVtcyB3aXRob3V0IElQX1JFQ1ZJRiIKIG1zZ3N0ciAiIgogIlVuZSBpbnRlcmZhY2UgZXQgdW5lIHNldWxlIGRvaXQg6nRyZSBk6WNsYXLpZSBzdXIgbGVzIHN5c3TobWVzIHNhbnMgSVBfUkVDVklGIgogCi0jOiBkbnNtYXNxLmM6MTUyCisjOiBkbnNtYXNxLmM6MTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBmaW5kIGxpc3Qgb2YgaW50ZXJmYWNlczogJXMiCiBtc2dzdHIgImltcG9zc2libGUgZGUgdHJvdXZlciBsYSBsaXN0ZSBkZXMgaW50ZXJmYWNlcyA6ICVzIgogCi0jOiBkbnNtYXNxLmM6MTYwCisjOiBkbnNtYXNxLmM6MTY5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gaW50ZXJmYWNlICVzIgogbXNnc3RyICJpbnRlcmZhY2UgJXMgaW5jb25udWUiCiAKLSM6IGRuc21hc3EuYzoxNjYKKyM6IGRuc21hc3EuYzoxNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gaW50ZXJmYWNlIHdpdGggYWRkcmVzcyAlcyIKIG1zZ3N0ciAicGFzIGQnaW50ZXJmYWNlIGF2ZWMgbCdhZHJlc3NlICVzIgogCi0jOiBkbnNtYXNxLmM6MTgxIGRuc21hc3EuYzo1MzgKKyM6IGRuc21hc3EuYzoxOTIgZG5zbWFzcS5jOjU2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJEQnVzIGVycm9yOiAlcyIKIG1zZ3N0ciAiRXJyZXVyIERCdXMgOiAlcyIKIAotIzogZG5zbWFzcS5jOjE4NAorIzogZG5zbWFzcS5jOjE5NQogbXNnaWQgIkRCdXMgbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfREJVUyBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgIkRCdXMgbidlc3QgcGFzIGRpc3BvbmlibGUgOiBhY3RpdmV6IEhBVkVfREJVUyBkYW5zIHNyYy9jb25maWcuaCIKIAotIzogZG5zbWFzcS5jOjIxNgorIzogZG5zbWFzcS5jOjIwNAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBwaXBlOiAlcyIKIG1zZ3N0ciAiTmUgcGV1dCBwYXMgbGlyZSAlcyA6ICVzIgogCi0jOiBkbnNtYXNxLmM6MjM3CisjOiBkbnNtYXNxLmM6MjI1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBmb3JrIGludG8gYmFja2dyb3VuZDogJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjMzNQorIzogZG5zbWFzcS5jOjIzOQorIywgYy1mb3JtYXQKK21zZ2lkICJjYW5ub3QgY2hkaXIgdG8gZmlsZXN5c3RlbSByb290OiAlcyIKK21zZ3N0ciAiIgorCisjOiBkbnNtYXNxLmM6MzQ5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJzdGFydGVkLCB2ZXJzaW9uICVzIEROUyBkaXNhYmxlZCIKK21zZ3N0ciAiZOltYXJyYWdlIGF2ZWMgbGUgY2FjaGUgZOlzYWN0aXbpICh2ZXJzaW9uICVzKSIKKworIzogZG5zbWFzcS5jOjM1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJzdGFydGVkLCB2ZXJzaW9uICVzIGNhY2hlc2l6ZSAlZCIKIG1zZ3N0ciAiZGVtYXJy6SwgdmVyc2lvbiAlcyAodGFpbGxlIGRlIGNhY2hlICVkKSIKIAotIzogZG5zbWFzcS5jOjMzNworIzogZG5zbWFzcS5jOjM1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJzdGFydGVkLCB2ZXJzaW9uICVzIGNhY2hlIGRpc2FibGVkIgogbXNnc3RyICJk6W1hcnJhZ2UgYXZlYyBsZSBjYWNoZSBk6XNhY3RpdukgKHZlcnNpb24gJXMpIgogCi0jOiBkbnNtYXNxLmM6MzM5CisjOiBkbnNtYXNxLmM6MzU1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBpbGUgdGltZSBvcHRpb25zOiAlcyIKIG1zZ3N0ciAib3B0aW9ucyDgIGxhIGNvbXBpbGF0aW9uIDogJXMiCiAKLSM6IGRuc21hc3EuYzozNDUKKyM6IGRuc21hc3EuYzozNjEKIG1zZ2lkICJEQnVzIHN1cHBvcnQgZW5hYmxlZDogY29ubmVjdGVkIHRvIHN5c3RlbSBidXMiCiBtc2dzdHIgIlN1cHBvcnQgREJ1cyBhdXRvcmlz6SA6IGNvbm5lY3TpIGF1IGJ1cyBzeXN06G1lIgogCi0jOiBkbnNtYXNxLmM6MzQ3CisjOiBkbnNtYXNxLmM6MzYzCiBtc2dpZCAiREJ1cyBzdXBwb3J0IGVuYWJsZWQ6IGJ1cyBjb25uZWN0aW9uIHBlbmRpbmciCiBtc2dzdHIgIlN1cHBvcnQgREJ1cyBhdXRvcmlz6SA6IGNvbm5leGlvbiBhdSBidXMgZW4gYXR0ZW50ZSIKIAotIzogZG5zbWFzcS5jOjM1MgorIzogZG5zbWFzcS5jOjM2OAogbXNnaWQgInNldHRpbmcgLS1iaW5kLWludGVyZmFjZXMgb3B0aW9uIGJlY2F1c2Ugb2YgT1MgbGltaXRhdGlvbnMiCiBtc2dzdHIgIiIKICJhY3RpdmUgbCdvcHRpb24gLS1iaW5kLWludGVyZmFjZXMg4CBjYXVzZSBkZSBsaW1pdGF0aW9ucyBkYW5zIGxlIHN5c3TobWUgIgogImQnZXhwbG9pdGF0aW9uIgogCi0jOiBkbnNtYXNxLmM6MzU3CisjOiBkbnNtYXNxLmM6MzczCiAjLCBjLWZvcm1hdAogbXNnaWQgIndhcm5pbmc6IGludGVyZmFjZSAlcyBkb2VzIG5vdCBjdXJyZW50bHkgZXhpc3QiCiBtc2dzdHIgImF0dGVudGlvbiA6IGwnaW50ZXJmYWNlICVzIG4nZXhpc3RlIHBhcyBhY3R1ZWxsZW1lbnQiCiAKLSM6IGRuc21hc3EuYzozNjIKKyM6IGRuc21hc3EuYzozNzgKIG1zZ2lkICJ3YXJuaW5nOiBpZ25vcmluZyByZXNvbHYtZmlsZSBmbGFnIGJlY2F1c2Ugbm8tcmVzb2x2IGlzIHNldCIKIG1zZ3N0ciAiIgogImF0dGVudGlvbiA6IGwnb3B0aW9uIKsgcmVzb2x2LWZpbGUguyBzZXJhIGlnbm9y6WUgY2FyIKsgbm8tcmVzb2x2ILsgYSDpdOkgIgogInNw6WNpZmnpIgogCi0jOiBkbnNtYXNxLmM6MzY1CisjOiBkbnNtYXNxLmM6MzgxCiAjLCBmdXp6eQogbXNnaWQgIndhcm5pbmc6IG5vIHVwc3RyZWFtIHNlcnZlcnMgY29uZmlndXJlZCIKIG1zZ3N0ciAiY29uZmlndXJhdGlvbiBkZXMgc2VydmV1cnMgYW1vbnRzIOAgcGFydGlyIGRlIERCdXMiCiAKLSM6IGRuc21hc3EuYzozNjkKKyM6IGRuc21hc3EuYzozODUKICMsIGMtZm9ybWF0CiBtc2dpZCAiYXN5bmNocm9ub3VzIGxvZ2dpbmcgZW5hYmxlZCwgcXVldWUgbGltaXQgaXMgJWQgbWVzc2FnZXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM4MQorIzogZG5zbWFzcS5jOjM5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQLCBzdGF0aWMgbGVhc2VzIG9ubHkgb24gJS4wcyVzLCBsZWFzZSB0aW1lICVzIgogbXNnc3RyICJiYXV4IHN0YXRpcXVlcyBESENQIHNldWxlbWVudCBzdXIgJS4wcyVzLCBkdXLpZSBkZSB2YWxpZGl06SBkZSBiYWlsICVzIgogCi0jOiBkbnNtYXNxLmM6MzgyCisjOiBkbnNtYXNxLmM6Mzk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AsIElQIHJhbmdlICVzIC0tICVzLCBsZWFzZSB0aW1lICVzIgogbXNnc3RyICJESENQLCBwbGFnZSBkJ2FkcmVzc2VzICVzIC0tICVzLCBkdXLpZSBkZSBiYWlsICVzIgogCi0jOiBkbnNtYXNxLmM6Mzk2CisjOiBkbnNtYXNxLmM6NDEyCiBtc2dpZCAicm9vdCBpcyAiCiBtc2dzdHIgInJvb3QgZXN0IgogCi0jOiBkbnNtYXNxLmM6Mzk2CisjOiBkbnNtYXNxLmM6NDEyCiAjLCBmdXp6eQogbXNnaWQgImVuYWJsZWQiCiBtc2dzdHIgImTpc2FjdGl26SIKIAotIzogZG5zbWFzcS5jOjM5OAorIzogZG5zbWFzcS5jOjQxNAogbXNnaWQgInNlY3VyZSBtb2RlIgogbXNnc3RyICJtb2RlIHPpY3VyaXPpIgogCi0jOiBkbnNtYXNxLmM6NDE4CisjOiBkbnNtYXNxLmM6NDQwCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlc3RyaWN0aW5nIG1heGltdW0gc2ltdWx0YW5lb3VzIFRGVFAgdHJhbnNmZXJzIHRvICVkIgogbXNnc3RyICJsZSBub21icmUgbWF4aW11bSBkZSB0cmFuc2ZlcnRzIFRGVFAgc2ltdWx0YW7pcyBzZXJhIHJlc3RyZWludCDgICVkIgogCi0jOiBkbnNtYXNxLmM6NDI3CisjOiBkbnNtYXNxLmM6NDQ5CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJ3YXJuaW5nOiBzZXR0aW5nIGNhcGFiaWxpdGllcyBmYWlsZWQ6ICVzIgogbXNnc3RyICJhdHRlbnRpb24gOiBpbXBvc3NpYmxlIGRlIGNvbmZpZ3VyZXIgbGEgY2FwYWNpdOkgJW0iCiAKLSM6IGRuc21hc3EuYzo0MjkKKyM6IGRuc21hc3EuYzo0NTEKIG1zZ2lkICJydW5uaW5nIGFzIHJvb3QiCiBtc2dzdHIgImV4ZWN1dOkgZW4gdGVtcHMgcXVlIHJvb3QiCiAKLSM6IGRuc21hc3EuYzo1NDAKKyM6IGRuc21hc3EuYzo1NjMKIG1zZ2lkICJjb25uZWN0ZWQgdG8gc3lzdGVtIERCdXMiCiBtc2dzdHIgImNvbm5lY3TpIGF1IHN5c3RlbWUgREJ1cyIKIAotIzogZG5zbWFzcS5jOjY1OQorIzogZG5zbWFzcS5jOjY4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGlsZCBwcm9jZXNzIGtpbGxlZCBieSBzaWduYWwgJWQiCiBtc2dzdHIgIkxlIHByb2Nlc3N1cyBmaWxzIGEg6XTpIHRlcm1pbukgcGFyIGxlIHNpZ25hbCAlZCIKIAotIzogZG5zbWFzcS5jOjY2MworIzogZG5zbWFzcS5jOjY4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGlsZCBwcm9jZXNzIGV4aXRlZCB3aXRoIHN0YXR1cyAlZCIKIG1zZ3N0ciAiTGUgcHJvY2Vzc3VzIGZpbHMgcydlc3QgdGVybWlu6SBhdmVjIGxlIHN0YXR1dCAlZCIKIAotIzogZG5zbWFzcS5jOjY2NworIzogZG5zbWFzcS5jOjY5MQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXM6ICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGQnYWNj6WRlciDgICVzIDogJW0iCiAKLSM6IGRuc21hc3EuYzo2NzEKKyM6IGRuc21hc3EuYzo2OTUKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgaGVscGVyOiAlcyIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlICVzIDogJW0iCiAKLSM6IGRuc21hc3EuYzo3MDUKKyM6IGRuc21hc3EuYzo3MjkKIG1zZ2lkICJleGl0aW5nIG9uIHJlY2VpcHQgb2YgU0lHVEVSTSIKIG1zZ3N0ciAic29ydGllIHN1ciBy6WNlcHRpb24gZHUgc2lnbmFsIFNJR1RFUk0iCiAKLSM6IGRuc21hc3EuYzo3NTYKKyM6IGRuc21hc3EuYzo3ODAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIm5vIHNlcnZlcnMgZm91bmQgaW4gJXMsIHdpbGwgcmV0cnkiCiBtc2dzdHIgImF1Y3VuIHNlcnZldXIgdHJvdXbpIGRhbnMgJXMsIHZhIHLpZXNzYXllciIKIAotIzogZGhjcC5jOjMyCisjOiBkaGNwLmM6MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBESENQIHNvY2tldCA6ICVzIgogbXNnc3RyICJuZSBwZXV0IGNy6WVyIGxhIHNvY2tldCBESENQIDogJXMiCiAKLSM6IGRoY3AuYzo0MQorIzogZGhjcC5jOjUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgb3B0aW9ucyBvbiBESENQIHNvY2tldDogJXMiCiBtc2dzdHIgImltcG9zc2libGUgZCdhcHBsaXF1ZXIgbGVzIG9wdGlvbnMgc3VyIGxhIHNvY2tldCBESENQIDogJXMiCiAKLSM6IGRoY3AuYzo1OQorIzogZGhjcC5jOjY4CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc2V0IFNPX1JFVVNFe0FERFJ8UE9SVH0gb24gREhDUCBzb2NrZXQ6ICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGTpY2xhcmVyIFNPX1JFVVNFQUREUiBzdXIgbGEgc29ja2V0IERIQ1AgOiAlcyIKIAotIzogZGhjcC5jOjcyCisjOiBkaGNwLmM6ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGJpbmQgREhDUCBzZXJ2ZXIgc29ja2V0OiAlcyIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaWVyIGxhIHNvY2tldCBzZXJ2ZXVyIERIQ1AgOiAlcyIKIAotIzogZGhjcC5jOjg1CisjOiBkaGNwLmM6OTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBJQ01QIHJhdyBzb2NrZXQ6ICVzLiIKIG1zZ3N0ciAibmUgcGV1dCBjcullciBkZSBzb2NrZXQgZW4gbW9kZSByYXcgcG91ciBJQ01QIDogJXMuIgogCi0jOiBkaGNwLmM6MTAwCi0jLCBjLWZvcm1hdAotbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCi1tc2dzdHIgImFkcmVzc2UgSVAgJXMgZHVwbGlxdellIGRhbnMgbGEgZGlyZWN0aXZlIGRoY3AtY29uZmlnLiIKLQotIzogZGhjcC5jOjEwMwotIywgZnV6enksIGMtZm9ybWF0Ci1tc2dpZCAiaWxsZWdhbCBkb21haW4gJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKLW1zZ3N0ciAiYWRyZXNzZSBJUCAlcyBkdXBsaXF16WUgZGFucyBsYSBkaXJlY3RpdmUgZGhjcC1jb25maWcuIgotCi0jOiBkaGNwLmM6MjIxCisjOiBkaGNwLmM6MjIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcGFja2V0IHJlY2VpdmVkIG9uICVzIHdoaWNoIGhhcyBubyBhZGRyZXNzIgogbXNnc3RyICJQYXF1ZXQgREhDUCByZed1IHN1ciAlcyBxdWkgbidhIHBhcyBkJ2FkcmVzc2UiCiAKLSM6IGRoY3AuYzozNTIKKyM6IGRoY3AuYzozODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCByYW5nZSAlcyAtLSAlcyBpcyBub3QgY29uc2lzdGVudCB3aXRoIG5ldG1hc2sgJXMiCiBtc2dzdHIgIiIKICJMYSBwbGFnZSBkJ2FkcmVzc2VzIERIQ1AgJXMgLS0gJXMgbidlc3QgcGFzIGNvaOlyZW50ZSBhdmVjIGxlIG1hc3F1ZSBkZSAiCiAiculzZWF1ICVzIgogCi0jOiBkaGNwLmM6NjY5CisjOiBkaGNwLmM6NzA5CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVhZCAlczolcyIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlICVzIDogJW0iCiAKLSM6IGRoY3AuYzo3MDQKKyM6IGRoY3AuYzo3NDQKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImJhZCBsaW5lIGF0ICVzIGxpbmUgJWQiCiBtc2dzdHIgIm1hdXZhaXMgbm9tIGRhbnMgJXMgbGlnbmUgJWQiCiAKLSM6IGRoY3AuYzo4MjYKKyM6IGRoY3AuYzo4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKK21zZ3N0ciAiYWRyZXNzZSBJUCAlcyBkdXBsaXF16WUgZGFucyBsYSBkaXJlY3RpdmUgZGhjcC1jb25maWcuIgorCisjOiBkaGNwLmM6ODUwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiAlcy4iCiBtc2dzdHIgImFkcmVzc2UgSVAgJXMgZHVwbGlxdellIGRhbnMgbGEgZGlyZWN0aXZlIGRoY3AtY29uZmlnLiIKIAotIzogZGhjcC5jOjgzMgorIzogZGhjcC5jOjg1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaWxsZWdhbCBkb21haW4gJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKK21zZ3N0ciAiYWRyZXNzZSBJUCAlcyBkdXBsaXF16WUgZGFucyBsYSBkaXJlY3RpdmUgZGhjcC1jb25maWcuIgorCisjOiBkaGNwLmM6ODYwCiAjLCBjLWZvcm1hdAogbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6ODM5Ci0jLCBmdXp6eSwgYy1mb3JtYXQKLW1zZ2lkICJyZWFkICVzIC0gJWQgaG9zdHMiCi1tc2dzdHIgImxlY3R1cmUgJXMgLSAlZCBhZHJlc3NlcyIKKyM6IGRoY3AuYzo4OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaGFzIG1vcmUgdGhlbiBvbmUgYWRkcmVzcyBpbiBob3N0c2ZpbGUsIHVzaW5nICVzIGZvciBESENQIgorbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4NjYKKyM6IGRoY3AuYzo5MDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgKCVzKSBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUiCiBtc2dzdHIgImFkcmVzc2UgSVAgJXMgKCVzKSBkdXBsaXF16WUgZGFucyBsYSBkaXJlY3RpdmUgZGhjcC1jb25maWcuIgogCi0jOiBsZWFzZS5jOjU0CisjOiBsZWFzZS5jOjU4CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiBvciBjcmVhdGUgbGVhc2UgZmlsZSAlczogJXMiCiBtc2dzdHIgIm5lIHBldXQgb3V2cmlyIG91IGNy6WVyIGxlIGZpY2hpZXJzIGRlIGJhdXggJXMgOiAlcyIKIAotIzogbGVhc2UuYzo4MAorIzogbGVhc2UuYzo4NAogbXNnaWQgInRvbyBtYW55IHN0b3JlZCBsZWFzZXMiCiBtc2dzdHIgImJlYXVjb3VwIHRyb3AgZGUgYmF1eCBlbnJlZ2lzdHLpcyIKIAotIzogbGVhc2UuYzoxMjEKKyM6IGxlYXNlLmM6MTI1CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcnVuIGxlYXNlLWluaXQgc2NyaXB0ICVzOiAlcyIKIG1zZ3N0ciAiTmUgcGV1dCBwYXMgbGlyZSAlcyA6ICVzIgogCi0jOiBsZWFzZS5jOjEyNworIzogbGVhc2UuYzoxMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAibGVhc2UtaW5pdCBzY3JpcHQgcmV0dXJuZWQgZXhpdCBjb2RlICVzIgogbXNnc3RyICJsZSBzY3JpcHQgbGVhc2UtaW5pdCBhIHJldG91cm7pIGxlIGNvZGUgJXMiCiAKLSM6IGxlYXNlLmM6MjM0CisjOiBsZWFzZS5jOjIzOAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHdyaXRlICVzOiAlcyAocmV0cnkgaW4gJXVzKSIKIG1zZ3N0ciAiaW1wb3NzaWJsZSBkZSBsaXJlICVzIDogJXMgKHByb2NoYWluIGVzc2FpIGRhbnMgJXVzKSIKIAotIzogcmZjMjEzMS5jOjMwMAorIzogcmZjMjEzMS5jOjMwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBhZGRyZXNzIHJhbmdlIGF2YWlsYWJsZSBmb3IgREhDUCByZXF1ZXN0ICVzICVzIgogbXNnc3RyICJwYXMgZGUgcGxhZ2UgZCdhZHJlc3NlIGRpc3BvbmlibGUgcG91ciBsYSByZXF16nRlIERIQ1AgJXMgJXMiCiAKLSM6IHJmYzIxMzEuYzozMDEKKyM6IHJmYzIxMzEuYzozMDQKIG1zZ2lkICJ3aXRoIHN1Ym5ldCBzZWxlY3RvciIKIG1zZ3N0ciAiYXZlYyBz6WxlY3RldXIgZGUgc291cy1yZXNlYXUiCiAKLSM6IHJmYzIxMzEuYzozMDEKKyM6IHJmYzIxMzEuYzozMDQKIG1zZ2lkICJ2aWEiCiBtc2dzdHIgInBhciBsJ2ludGVybelkaWFpcmUgZGUiCiAKLSM6IHJmYzIxMzEuYzozMTIKKyM6IHJmYzIxMzEuYzozMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCBwYWNrZXQ6IHRyYW5zYWN0aW9uLWlkIGlzICV1IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMTcKKyM6IHJmYzIxMzEuYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIERIQ1Agc3VibmV0OiAlcy8lcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzE5CisjOiByZmMyMTMxLmM6MzIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBESENQIHJhbmdlOiAlcyAtLSAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzQ3IHJmYzIxMzEuYzozNzgKKyM6IHJmYzIxMzEuYzozNTAgcmZjMjEzMS5jOjM4MQogbXNnaWQgImRpc2FibGVkIgogbXNnc3RyICJk6XNhY3RpdukiCiAKLSM6IHJmYzIxMzEuYzozOTAgcmZjMjEzMS5jOjg1MgorIzogcmZjMjEzMS5jOjM5MyByZmMyMTMxLmM6ODczCiBtc2dpZCAiYWRkcmVzcyBpbiB1c2UiCiBtc2dzdHIgImFkcmVzc2UgZOlq4CB1dGlsaXPpZSIKIAotIzogcmZjMjEzMS5jOjM5MworIzogcmZjMjEzMS5jOjM5NgogbXNnaWQgIm5vIGFkZHJlc3MgY29uZmlndXJlZCIKIG1zZ3N0ciAicGFzIGQnYWRyZXNzZSBjb25maWd1cullIgogCi0jOiByZmMyMTMxLmM6NDA2IHJmYzIxMzEuYzo3MjAKKyM6IHJmYzIxMzEuYzo0MDkgcmZjMjEzMS5jOjczNgogbXNnaWQgIm5vIGFkZHJlc3MgYXZhaWxhYmxlIgogbXNnc3RyICJwYXMgZCdhZHJlc3NlIGRpc3BvbmlibGUiCiAKLSM6IHJmYzIxMzEuYzo0MTYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiTGltaXQgb2YgJWQgbGVhc2VzIGV4Y2VlZGVkLiIKLW1zZ3N0ciAiIgotCi0jOiByZmMyMTMxLmM6NDE3IHJmYzIxMzEuYzo4NjIKKyM6IHJmYzIxMzEuYzo0MTggcmZjMjEzMS5jOjg4MwogbXNnaWQgIm5vIGxlYXNlcyBsZWZ0IgogbXNnc3RyICJwbHVzIGF1Y3VuIGJhaWwgZGlzcG9uaWJsZSIKIAotIzogcmZjMjEzMS5jOjQyMSByZmMyMTMxLmM6ODI2CisjOiByZmMyMTMxLmM6NDIxIHJmYzIxMzEuYzo4NDcKIG1zZ2lkICJ3cm9uZyBuZXR3b3JrIgogbXNnc3RyICJtYXV2YWlzIHLpc2VhdSIKIAotIzogcmZjMjEzMS5jOjUxOQorIzogcmZjMjEzMS5jOjUyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJJZ25vcmluZyBkb21haW4gJXMgZm9yIERIQ1AgaG9zdCBuYW1lICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo1OTgKKyM6IHJmYzIxMzEuYzo2MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiVmVuZG9yIGNsYXNzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NjAwCisjOiByZmMyMTMxLmM6NjE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZXIgY2xhc3M6ICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo2NDEKKyM6IHJmYzIxMzEuYzo2NTcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImRpc2FibGluZyBESENQIHN0YXRpYyBhZGRyZXNzICVzIGZvciAlcyIKIG1zZ3N0ciAiZOlzYWN0aXZlIGwnYWRyZXNzZSBzdGF0aXF1ZSBESENQICVzIHBvdXIgJXMiCiAKLSM6IHJmYzIxMzEuYzo2NjIKKyM6IHJmYzIxMzEuYzo2NzgKIG1zZ2lkICJ1bmtub3duIGxlYXNlIgogbXNnc3RyICJiYWlsIGluY29ubnUiCiAKLSM6IHJmYzIxMzEuYzo2NzEgcmZjMjEzMS5jOjk3MAorIzogcmZjMjEzMS5jOjY4NyByZmMyMTMxLmM6OTkyCiBtc2dpZCAiaWdub3JlZCIKIG1zZ3N0ciAiaWdub3LpIgogCi0jOiByZmMyMTMxLmM6NjkxCisjOiByZmMyMTMxLmM6NzA3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCB1c2luZyBjb25maWd1cmVkIGFkZHJlc3MgJXMgYmVjYXVzZSBpdCBpcyBsZWFzZWQgdG8gJXMiCiBtc2dzdHIgIiIKICJMJ2FkcmVzc2Ugc3RhdGlxdWUgJXMgbmUgc2VyYSBwYXMgdXRpbGlz6WUgY2FyIHVuIGJhaWwgZXN0IGTpauAgYXR0cmlidekg4CAlcyIKIAotIzogcmZjMjEzMS5jOjcwMQorIzogcmZjMjEzMS5jOjcxNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IGlzIGluIHVzZSBieSB0aGUgc2VydmVyIG9yIHJlbGF5IgpAQCAtMTE2MSwxNDUgKzEyNTMsMTU4IEBACiAiTCdhZHJlc3NlIHN0YXRpcXVlICVzIG5lIHNlcmEgcGFzIHV0aWxpc+llIGNhciBlbGxlIGVzdCB1dGlsaXPpZSBwYXIgbGUgIgogInNlcnZldXIgb3UgdW4gcmVsYWkiCiAKLSM6IHJmYzIxMzEuYzo3MDQKKyM6IHJmYzIxMzEuYzo3MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IHdhcyBwcmV2aW91c2x5IGRlY2xpbmVkIgogbXNnc3RyICIiCiAiTCdhZHJlc3NlIHN0YXRpcXVlICVzIG5lIHNlcmEgcGFzIHV0aWxpc+llIGNhciBlbGxlIGEgcHLpYWxhYmxlbWVudCDpdOkgIgogInJlZnVz6WUiCiAKLSM6IHJmYzIxMzEuYzo3MTggcmZjMjEzMS5jOjg1NQorIzogcmZjMjEzMS5jOjczNCByZmMyMTMxLmM6ODc2CiBtc2dpZCAibm8gdW5pcXVlLWlkIgogbXNnc3RyICJwYXMgZCdpZGVudGlmaWFudCB1bmlxdWUiCiAKLSM6IHJmYzIxMzEuYzo3ODkKKyM6IHJmYzIxMzEuYzo4MDYKIG1zZ2lkICJ3cm9uZyBhZGRyZXNzIgogbXNnc3RyICJtYXV2YWlzZSBhZHJlc3NlIgogCi0jOiByZmMyMTMxLmM6ODAyCisjOiByZmMyMTMxLmM6ODIzCiBtc2dpZCAibGVhc2Ugbm90IGZvdW5kIgogbXNnc3RyICJiYWlsIG5vbiB0cm91dukiCiAKLSM6IHJmYzIxMzEuYzo4MzQKKyM6IHJmYzIxMzEuYzo4NTUKIG1zZ2lkICJhZGRyZXNzIG5vdCBhdmFpbGFibGUiCiBtc2dzdHIgImFkcmVzc2Ugbm9uIGRpc3BvbmlibGUiCiAKLSM6IHJmYzIxMzEuYzo4NDUKKyM6IHJmYzIxMzEuYzo4NjYKIG1zZ2lkICJzdGF0aWMgbGVhc2UgYXZhaWxhYmxlIgogbXNnc3RyICJiYWlsIHN0YXRpcXVlIGRpc3BvbmlibGUiCiAKLSM6IHJmYzIxMzEuYzo4NDkKKyM6IHJmYzIxMzEuYzo4NzAKIG1zZ2lkICJhZGRyZXNzIHJlc2VydmVkIgogbXNnc3RyICJhZHJlc3NlIHJlc2VydullIgogCi0jOiByZmMyMTMxLmM6MTI1MgorIzogcmZjMjEzMS5jOjEyNjUKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnczogJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjEzMzQKKyM6IHJmYzIxMzEuYzoxMzUyCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgc2VuZCBESENQL0JPT1RQIG9wdGlvbiAlZDogbm8gc3BhY2UgbGVmdCBpbiBwYWNrZXQiCiBtc2dzdHIgIiIKICJJbXBvc3NpYmxlIGQnZW52b3llciBsJ29wdGlvbiBESENQICVkIDogcGFzIGFzc2V6IGQnZXNwYWNlIGRhbnMgbGUgcGFxdWV0IgogCi0jOiByZmMyMTMxLmM6MTQ4OAorIzogcmZjMjEzMS5jOjE1MDcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgInJlcXVlc3RlZCBvcHRpb25zOiAlcyIKIG1zZ3N0ciAib3B0aW9ucyDgIGxhIGNvbXBpbGF0aW9uIDogJXMiCiAKLSM6IHJmYzIxMzEuYzoxNTE5Ci0jLCBjLWZvcm1hdAotbXNnaWQgInNlcnZlciBuYW1lOiAlcyIKLW1zZ3N0ciAiIgotCi0jOiByZmMyMTMxLmM6MTUzMQotIywgYy1mb3JtYXQKLW1zZ2lkICJib290ZmlsZSBuYW1lOiAlcyIKLW1zZ3N0ciAiIgotCi0jOiByZmMyMTMxLmM6MTU0MAorIzogcmZjMjEzMS5jOjE1NTYKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIm5leHQgc2VydmVyOiAlcyIKIG1zZ3N0ciAiRXJyZXVyIG5ldGxpbmsgOiAlcyIKIAotIzogbmV0bGluay5jOjU5CisjOiByZmMyMTMxLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZmlsZSBuYW1lOiAlcyIKK21zZ3N0ciAiIgorCisjOiByZmMyMTMxLmM6MTU4MworIywgYy1mb3JtYXQKK21zZ2lkICJzZXJ2ZXIgbmFtZTogJXMiCittc2dzdHIgIiIKKworIzogbmV0bGluay5jOjYzCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIG5ldGxpbmsgc29ja2V0OiAlcyIKIG1zZ3N0ciAibmUgcGV1eCBsaWVyIHVuZSBzb2NrZXQgbmV0bGluayA6ICVzIgogCi0jOiBuZXRsaW5rLmM6MjI2CisjOiBuZXRsaW5rLmM6MjMwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJuZXRsaW5rIHJldHVybnMgZXJyb3I6ICVzIgogbXNnc3RyICJFcnJldXIgbmV0bGluayA6ICVzIgogCi0jOiBkYnVzLmM6MTExCisjOiBkYnVzLmM6MTE1CiBtc2dpZCAiYXR0ZW1wdCB0byBzZXQgYW4gSVB2NiBzZXJ2ZXIgYWRkcmVzcyB2aWEgREJ1cyAtIG5vIElQdjYgc3VwcG9ydCIKIG1zZ3N0ciAiIgogInRlbnRhdGl2ZSBkZSBsaWVyIHVuZSBhZHJlc3NlIHNlcnZldXIgSVBWNiB2aWEgREJ1cyAtIHBhcyBkZSBzdXBwb3J0IElQVjYiCiAKLSM6IGRidXMuYzoyMzcKKyM6IGRidXMuYzoyNDEKIG1zZ2lkICJzZXR0aW5nIHVwc3RyZWFtIHNlcnZlcnMgZnJvbSBEQnVzIgogbXNnc3RyICJjb25maWd1cmF0aW9uIGRlcyBzZXJ2ZXVycyBhbW9udHMg4CBwYXJ0aXIgZGUgREJ1cyIKIAotIzogZGJ1cy5jOjI3NQorIzogZGJ1cy5jOjI3OQogbXNnaWQgImNvdWxkIG5vdCByZWdpc3RlciBhIERCdXMgbWVzc2FnZSBoYW5kbGVyIgogbXNnc3RyICJuZSBwZXV0IGVucmVnaXN0cmVyIHVuZSByb3V0aW5lIGRlIHRyYWl0ZW1lbnQgZGVzIG1lc3NhZ2VzIERCdXMiCiAKLSM6IGJwZi5jOjQzCisjOiBicGYuYzoxNDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBESENQIEJQRiBzb2NrZXQ6ICVzIgogbXNnc3RyICJpbXBvc3NpYmxlIGRlIGNy6WVyIHVuZSBzb2NrZXQgQlBGIHBvdXIgREhDUCA6ICVzIgogCi0jOiBicGYuYzo3MQorIzogYnBmLmM6MTc0CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJESENQIHJlcXVlc3QgZm9yIHVuc3VwcG9ydGVkIGhhcmR3YXJlIHR5cGUgKCVkKSByZWNlaXZlZCBvbiAlcyIKIG1zZ3N0ciAicmVxdep0ZSBESENQIHBvdXIgdW4gdHlwZSBkZSBtYXTpcmllbCBub24gc3VwcG9ydOkgKCVkKSByZed1ZSBzdXIgJXMiCiAKLSM6IHRmdHAuYzoxNTgKKyM6IHRmdHAuYzoxNzMKK21zZ2lkICJ1bmFibGUgdG8gZ2V0IGZyZWUgcG9ydCBmb3IgVEZUUCIKK21zZ3N0ciAiIgorCisjOiB0ZnRwLmM6MTg4CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuc3VwcG9ydGVkIHJlcXVlc3QgZnJvbSAlcyIKIG1zZ3N0ciAicmVxdep0ZSBkZSAlcyBub24gc3VwcG9ydOllIgogCi0jOiB0ZnRwLmM6MjM2CisjOiB0ZnRwLmM6MjY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgc2VudCAlcyB0byAlcyIKIG1zZ3N0ciAiVEZUUCBlbnZveekgJXMg4CAlcyIKIAotIzogdGZ0cC5jOjI1OQorIzogdGZ0cC5jOjI4OQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmlsZSAlcyBub3QgZm91bmQiCiBtc2dzdHIgImJhaWwgbm9uIHRyb3V26SIKIAotIzogdGZ0cC5jOjM2OQorIzogdGZ0cC5jOjM5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJURlRQIGVycm9yICVkICVzIHJlY2VpdmVkIGZyb20gJXMiCiBtc2dzdHIgIlRGVFAgZXJyZXVyICVkICVzIHJl53UgZGUgJXMiCiAKLSM6IHRmdHAuYzo0MDAKKyM6IHRmdHAuYzo0MzAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgZmFpbGVkIHNlbmRpbmcgJXMgdG8gJXMiCiBtc2dzdHIgImltcG9zc2libGUgZGUgbGlyZSAlcyA6ICVtIgogCi0jOiBsb2cuYzo2OQorIzogbG9nLmM6NzMKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKIG1zZ3N0ciAiTmUgcGV1dCBwYXMgbGlyZSAlcyA6ICVzIgogCi0jOiBsb2cuYzoxNDYKKyM6IGxvZy5jOjg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmYWlsZWQgdG8gY2hhbmdlIG93bmVyIG9mICVzOiAlcyIKK21zZ3N0ciAiSW1wb3NzaWJsZSBkZSBjaGFyZ2VyIGxlcyBub21zIOAgcGFydGlyIGRlICVzIDogJW0iCisKKyM6IGxvZy5jOjE2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJvdmVyZmxvdzogJWQgbG9nIGVudHJpZXMgbG9zdCIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzoyMjMKKyM6IGxvZy5jOjIzOAogIywgYy1mb3JtYXQKIG1zZ2lkICJsb2cgZmFpbGVkOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzozNzgKKyM6IGxvZy5jOjM5NAogbXNnaWQgIkZBSUxFRCB0byBzdGFydCB1cCIKIG1zZ3N0ciAiSU1QT1NTSUJMRSBkZSBk6W1hcnJlciIKIAorIywgZnV6enkKKyN+IG1zZ2lkICJyZWFkICVzIC0gJWQgaG9zdHMiCisjfiBtc2dzdHIgImxlY3R1cmUgJXMgLSAlZCBhZHJlc3NlcyIKKwogI34gbXNnaWQgImJhZCBkaGNwLWhvc3QiCiAjfiBtc2dzdHIgIm1hdXZhaXMgZGhjcC1ob3N0IgogCmRpZmYgLS1naXQgYS9wby9pZC5wbyBiL3BvL2lkLnBvCmluZGV4IDIxMmY3MmMuLmMwMmIxM2UgMTAwNjQ0Ci0tLSBhL3BvL2lkLnBvCisrKyBiL3BvL2lkLnBvCkBAIC02LDcgKzYsNyBAQAogbXNnc3RyICIiCiAiUHJvamVjdC1JZC1WZXJzaW9uOiBkbnNtYXNxIDIuMjRcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMDctMDgtMjkgMTE6MDkrMDEwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA4LTAyLTEyIDExOjA0KzAwMDBcbiIKICJQTy1SZXZpc2lvbi1EYXRlOiAyMDA1LTEwLTA3IDExOjQ1KzAxMDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IFNhbG1hbiBBUyA8c2FzQHNhbG1hbi5vci5pZD5cbiIKICJMYW5ndWFnZS1UZWFtOiBJbmRvbmVzaWFuIDx0cmFuc2xhdGlvbi10ZWFtLWlkQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD5cbiIKQEAgLTE1LDM2ICsxNSwzNiBAQAogIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIAogIyBPSwotIzogY2FjaGUuYzo2NzEKKyM6IGNhY2hlLmM6NjgwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gbG9hZCBuYW1lcyBmcm9tICVzOiAlcyIKIG1zZ3N0ciAiZ2FnYWwgbWVtdWF0IG5hbWEtbmFtYSBkYXJpICVzOiAlbSIKIAogIyBPSwotIzogY2FjaGUuYzo3MDUgZGhjcC5jOjcxNworIzogY2FjaGUuYzo3MTQgZGhjcC5jOjc1NwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiYmFkIGFkZHJlc3MgYXQgJXMgbGluZSAlZCIKIG1zZ3N0ciAia2VzYWxhaGFuIG5hbWEgcGFkYSAlcyBiYXJpcyAlZCIKIAogIyBPSwotIzogY2FjaGUuYzo3NTIgZGhjcC5jOjczMQorIzogY2FjaGUuYzo3NjEgZGhjcC5jOjc3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbmFtZSBhdCAlcyBsaW5lICVkIgogbXNnc3RyICJrZXNhbGFoYW4gbmFtYSBwYWRhICVzIGJhcmlzICVkIgogCiAjIE9LCi0jOiBjYWNoZS5jOjc1OSBkaGNwLmM6Nzg1CisjOiBjYWNoZS5jOjc2OCBkaGNwLmM6ODI1CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlYWQgJXMgLSAlZCBhZGRyZXNzZXMiCiBtc2dzdHIgIm1lbWJhY2EgJXMgLSAlZCBhbGFtYXQiCiAKICMgT0sKLSM6IGNhY2hlLmM6Nzk3CisjOiBjYWNoZS5jOjgwNgogbXNnaWQgImNsZWFyZWQgY2FjaGUiCiBtc2dzdHIgImNhY2hlIHRlbGFoIGRpaGFwdXMiCiAKICMgT0sKLSM6IGNhY2hlLmM6ODQ0CisjOiBjYWNoZS5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90IGdpdmluZyBuYW1lICVzIHRvIHRoZSBESENQIGxlYXNlIG9mICVzIGJlY2F1c2UgdGhlIG5hbWUgZXhpc3RzIGluICVzICIKQEAgLTUzLDQ0NSArNTMsNDk2IEBACiAidGlkYWsgbWVtYmVyaWthbiBuYW1hICVzIGtlcGFkYSBsZWFzZSBESENQICVzIGthcmVuYSBuYW1hIHRlbGFoIGFkYSBkYWxhbSAlIgogInNkZW5nYW4gYWxhbWF0ICVzIgogCisjOiBjYWNoZS5jOjkwNworIywgYy1mb3JtYXQKK21zZ2lkICJ0aW1lICVsdSIKK21zZ3N0ciAiIgorCiAjIE9LCi0jOiBjYWNoZS5jOjg4NAorIzogY2FjaGUuYzo5MDgKICMsIGZ1enp5LCBjLWZvcm1hdAotbXNnaWQgIiIKLSJ0aW1lICVsdSwgY2FjaGUgc2l6ZSAlZCwgJWQvJWQgY2FjaGUgaW5zZXJ0aW9ucyByZS11c2VkIHVuZXhwaXJlZCBjYWNoZSAiCi0iZW50cmllcy4iCittc2dpZCAiY2FjaGUgc2l6ZSAlZCwgJWQvJWQgY2FjaGUgaW5zZXJ0aW9ucyByZS11c2VkIHVuZXhwaXJlZCBjYWNoZSBlbnRyaWVzLiIKIG1zZ3N0ciAiIgogInVrdXJhbiBjYWNoZSAlZCwgJWQvJWQgcGVueWlzaXBhbiBjYWNoZSBtZW5pbXBhIGNhY2hlIHlhbmcgYmVsdW0ga2FkYWx1d2Fyc2EiCiAKKyM6IGNhY2hlLmM6OTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInF1ZXJpZXMgZm9yd2FyZGVkICV1LCBxdWVyaWVzIGFuc3dlcmVkIGxvY2FsbHkgJXUiCittc2dzdHIgIiIKKworIzogY2FjaGUuYzo5MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VydmVyICVzIyVkOiBxdWVyaWVzIHNlbnQgJXUsIHJldHJpZWQgb3IgZmFpbGVkICV1IgorbXNnc3RyICIiCisKICMgT0sKLSM6IHV0aWwuYzoxNTcgb3B0aW9uLmM6NzU4CisjOiB1dGlsLmM6MTYwCiBtc2dpZCAiY291bGQgbm90IGdldCBtZW1vcnkiCiBtc2dzdHIgInRpZGFrIGJpc2EgbWVuZGFwYXRrYW4gbWVtb3J5IgogCiAjIE9LCi0jOiB1dGlsLmM6MTY3CisjOiB1dGlsLmM6MTcwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgJWQgYnl0ZXMiCiBtc2dzdHIgImdhZ2FsIG1lbXVhdCAlUzogJW0iCiAKICMgT0sKLSM6IHV0aWwuYzoyNzIKKyM6IHV0aWwuYzoyNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5maW5pdGUiCiBtc2dzdHIgInRhayB0ZXJiYXRhcyIKIAogIyBPSwotIzogb3B0aW9uLmM6MTg4CisjOiBvcHRpb24uYzoyNDQKIG1zZ2lkICJTcGVjaWZ5IGxvY2FsIGFkZHJlc3MoZXMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIlRlbnR1a2FuIGFsYW1hdCBsb2thbCB1bnR1ayBtZW5kZW5nYXJrYW4uIgogCiAjIE9LCi0jOiBvcHRpb24uYzoxODkKKyM6IG9wdGlvbi5jOjI0NQogbXNnaWQgIlJldHVybiBpcGFkZHIgZm9yIGFsbCBob3N0cyBpbiBzcGVjaWZpZWQgZG9tYWlucy4iCiBtc2dzdHIgIk1lbmdoYXNpbGthbiBpcGFkZHIgdW50dWsgc2VtdWEgaG9zdCBkYWxhbSBkb21haW4geWFuZyBkaXBpbGloLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MTkwCisjOiBvcHRpb24uYzoyNDYKIG1zZ2lkICJGYWtlIHJldmVyc2UgbG9va3VwcyBmb3IgUkZDMTkxOCBwcml2YXRlIGFkZHJlc3MgcmFuZ2VzLiIKIG1zZ3N0ciAiRmFrZSBwZW5jYXJpYW4gYmFsaWsgdW50dWsgYWxhbWF0IHByaXZhdGUgc2VzdWFpIGRlbmdhbiBSRkMxOTE4LiIKIAogIyBPSwotIzogb3B0aW9uLmM6MTkxCisjOiBvcHRpb24uYzoyNDcKIG1zZ2lkICJUcmVhdCBpcGFkZHIgYXMgTlhET01BSU4gKGRlZmVhdHMgVmVyaXNpZ24gd2lsZGNhcmQpLiIKIG1zZ3N0ciAiUGVybGFrdWthbiBpcGFkZHIgc2ViYWdhaSBOWERPTUFJTiAobWVuZ2FsYWhrYW4gd2lsZGNhcmQgVmVyaXNpZ24pLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MTkyCisjOiBvcHRpb24uYzoyNDgKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSB0aGUgc2l6ZSBvZiB0aGUgY2FjaGUgaW4gZW50cmllcyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiVGVudHVrYW4gdWt1cmFuIGNhY2hlLCBkYWxhbSBqdW1sYWggaXNpYW4gKGRlZmF1bHQgJXMpLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MTkzCisjOiBvcHRpb24uYzoyNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBjb25maWd1cmF0aW9uIGZpbGUgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlRlbnR1a2FuIGZpbGUga29uZmlndXJhc2kgKGRlZmF1bHQgJXMpLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MTk0CisjOiBvcHRpb24uYzoyNTAKIG1zZ2lkICJEbyBOT1QgZm9yayBpbnRvIHRoZSBiYWNrZ3JvdW5kOiBydW4gaW4gZGVidWcgbW9kZS4iCiBtc2dzdHIgIkpBTkdBTiBiZXJqYWxhbiBkaSBiYWNrZ3JvdW5kOiBiZXJqYWxhbiBkYWxhbSBtb2R1cyBkZWJ1Zy4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjE5NQorIzogb3B0aW9uLmM6MjUxCiBtc2dpZCAiRG8gTk9UIGZvcndhcmQgcXVlcmllcyB3aXRoIG5vIGRvbWFpbiBwYXJ0LiIKIG1zZ3N0ciAiSkFOR0FOIHRlcnVza2FuIHBlcm1pbnRhYW4gdGFucGEgYmFnaWFuIGRvbWFpbi4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjE5NgorIzogb3B0aW9uLmM6MjUyCiBtc2dpZCAiUmV0dXJuIHNlbGYtcG9pbnRpbmcgTVggcmVjb3JkcyBmb3IgbG9jYWwgaG9zdHMuIgogbXNnc3RyICJNZW5nZW1iYWxpa2FuIHJlY29yZCBNWCB1bnR1ayBkaXJpIHNlbmRpcmkgaG9zdC1ob3N0IGxva2FsLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MTk3CisjOiBvcHRpb24uYzoyNTMKIG1zZ2lkICJFeHBhbmQgc2ltcGxlIG5hbWVzIGluIC9ldGMvaG9zdHMgd2l0aCBkb21haW4tc3VmZml4LiIKIG1zZ3N0ciAiTWVsZW5na2FwaSBuYW1hLW5hbWEgZGkgL2V0Yy9ob3N0cyBkZW5nYW4gYWtoaXJhbiBkb21haW4uIgogCiAjIE9LCi0jOiBvcHRpb24uYzoxOTgKKyM6IG9wdGlvbi5jOjI1NAogbXNnaWQgIkRvbid0IGZvcndhcmQgc3B1cmlvdXMgRE5TIHJlcXVlc3RzIGZyb20gV2luZG93cyBob3N0cy4iCiBtc2dzdHIgIkphbmdhbiBtZW5lcnVza2FuIHBlcm1pbnRhYW4gRE5TIHNwdXJpb3VzIGRhcmkgaG9zdC1ob3N0IFdpbmRvd3MuIgogCiAjIE9LCi0jOiBvcHRpb24uYzoxOTkKKyM6IG9wdGlvbi5jOjI1NQogbXNnaWQgIkVuYWJsZSBESENQIGluIHRoZSByYW5nZSBnaXZlbiB3aXRoIGxlYXNlIGR1cmF0aW9uLiIKIG1zZ3N0ciAiQm9sZWhrYW4gREhDUCBkYWxhbSBqYW5na2F1YW4geWFuZyBkaWJlcmlrYW4gZGVuZ2FuIGR1cmFzaSBsZWFzZS4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIwMAorIzogb3B0aW9uLmM6MjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoYW5nZSB0byB0aGlzIGdyb3VwIGFmdGVyIHN0YXJ0dXAgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlViYWgga2UgZ3JvdXAgaW5pIHNldGVsYWggbXVsYWkgKGRlZmF1bHQgJXMpLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjAxCisjOiBvcHRpb24uYzoyNTcKIG1zZ2lkICJTZXQgYWRkcmVzcyBvciBob3N0bmFtZSBmb3IgYSBzcGVjaWZpZWQgbWFjaGluZS4iCiBtc2dzdHIgIlNldGVsIGFsYW1hdCBhdGF1IG5hbWEgaG9zdCB1bnR1ayBtZXNpbiB5YW5nIGRpc2VidXRrYW4uIgogCi0jOiBvcHRpb24uYzoyMDIKKyM6IG9wdGlvbi5jOjI1OAogbXNnaWQgIlJlYWQgREhDUCBob3N0IHNwZWNzIGZyb20gZmlsZSIKIG1zZ3N0ciAiIgogCisjOiBvcHRpb24uYzoyNTkKK21zZ2lkICJSZWFkIERIQ1Agb3B0aW9uIHNwZWNzIGZyb20gZmlsZSIKK21zZ3N0ciAiIgorCiAjIE9LCi0jOiBvcHRpb24uYzoyMDMKKyM6IG9wdGlvbi5jOjI2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJEbyBOT1QgbG9hZCAlcyBmaWxlLiIKIG1zZ3N0ciAiSkFOR0FOIG11YXQgZmlsZSAlcy4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIwNAorIzogb3B0aW9uLmM6MjYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgYSBob3N0cyBmaWxlIHRvIGJlIHJlYWQgaW4gYWRkaXRpb24gdG8gJXMuIgogbXNnc3RyICIiCiAiU2VidXRrYW4gc2VidWFoIGZpbGUgaG9zdHMgeWFuZyBoYXJ1cyBkaWJhY2Egc2ViYWdhaSB0YW1iYWhhbiB1bnR1ayAlcy4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIwNQorIzogb3B0aW9uLmM6MjYyCiBtc2dpZCAiU3BlY2lmeSBpbnRlcmZhY2UocykgdG8gbGlzdGVuIG9uLiIKIG1zZ3N0ciAiU2VidXRrYW4gYW50YXJtdWthIHVudHVrIG1lbmRlbmdhcmthbi4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIwNgorIzogb3B0aW9uLmM6MjYzCiBtc2dpZCAiU3BlY2lmeSBpbnRlcmZhY2UocykgTk9UIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIlNlYnV0a2FuIGFudGFybXVrYSB1bnR1ayBUSURBSyBtZW5kZW5nYXJrYW4uIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMDcKKyM6IG9wdGlvbi5jOjI2NAogIywgZnV6enkKIG1zZ2lkICJNYXAgREhDUCB1c2VyIGNsYXNzIHRvIHRhZy4iCiBtc2dzdHIgIlBldGFrYW4ga2VsYXMgdXNlciBESENQIGtlIHNldGVsYW4geWFuZyBkaXBpbGloLiIKIAotIzogb3B0aW9uLmM6MjA4CisjOiBvcHRpb24uYzoyNjUKIG1zZ2lkICJNYXAgUkZDMzA0NiBjaXJjdWl0LWlkIHRvIHRhZy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjA5CisjOiBvcHRpb24uYzoyNjYKIG1zZ2lkICJNYXAgUkZDMzA0NiByZW1vdGUtaWQgdG8gdGFnLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMTAKKyM6IG9wdGlvbi5jOjI2NwogbXNnaWQgIk1hcCBSRkMzOTkzIHN1YnNjcmliZXItaWQgdG8gdGFnLiIKIG1zZ3N0ciAiIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMTEKKyM6IG9wdGlvbi5jOjI2OAogIywgZnV6enkKIG1zZ2lkICJEb24ndCBkbyBESENQIGZvciBob3N0cyB3aXRoIHRhZyBzZXQuIgogbXNnc3RyICJKYW5nYW4gbWVuZ2d1bmFrYW4gREhDUCB1bnR1ayBob3N0LWhvc3QgeWFuZyBkaXBpbGloLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjEyCisjOiBvcHRpb24uYzoyNjkKKyMsIGZ1enp5Cittc2dpZCAiRm9yY2UgYnJvYWRjYXN0IHJlcGxpZXMgZm9yIGhvc3RzIHdpdGggdGFnIHNldC4iCittc2dzdHIgIkphbmdhbiBtZW5nZ3VuYWthbiBESENQIHVudHVrIGhvc3QtaG9zdCB5YW5nIGRpcGlsaWguIgorCisjIE9LCisjOiBvcHRpb24uYzoyNzAKIG1zZ2lkICJEbyBOT1QgZm9yayBpbnRvIHRoZSBiYWNrZ3JvdW5kLCBkbyBOT1QgcnVuIGluIGRlYnVnIG1vZGUuIgogbXNnc3RyICJKQU5HQU4gYmVyamFsYW4gZGkgYmFja2dyb3VuZCwgamFuZ2FuIGJlcmphbGFuIGRhbGFtIG1vZHVzIGRlYnVnLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjEzCisjOiBvcHRpb24uYzoyNzEKIG1zZ2lkICJBc3N1bWUgd2UgYXJlIHRoZSBvbmx5IERIQ1Agc2VydmVyIG9uIHRoZSBsb2NhbCBuZXR3b3JrLiIKIG1zZ3N0ciAiQmVycGlraXIgYmFod2Ega2l0YSBzYXR1LXNhdHVueWEgREhDUCBzZXJ2ZXIgZGFsYW0gamFyaW5nYW4uIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMTQKKyM6IG9wdGlvbi5jOjI3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IHdoZXJlIHRvIHN0b3JlIERIQ1AgbGVhc2VzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJTZWJ1dGthbiBsb2thc2kgdW50dWsgbWVueWltcGFuIGxlYXNlIERIQ1AgKGRlZmF1bHQgJXMpLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjE1CisjOiBvcHRpb24uYzoyNzMKIG1zZ2lkICJSZXR1cm4gTVggcmVjb3JkcyBmb3IgbG9jYWwgaG9zdHMuIgogbXNnc3RyICJLZW1iYWxpa2FuIHJla29yZCBNWCB1bnR1ayBob3N0LWhvc3QgbG9rYWwuIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMTYKKyM6IG9wdGlvbi5jOjI3NAogbXNnaWQgIlNwZWNpZnkgYW4gTVggcmVjb3JkLiIKIG1zZ3N0ciAiU2VidXRrYW4gc2VidWFoIHJla29yZCBNWC4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIxNworIzogb3B0aW9uLmM6Mjc1CiBtc2dpZCAiU3BlY2lmeSBCT09UUCBvcHRpb25zIHRvIERIQ1Agc2VydmVyLiIKIG1zZ3N0ciAiU2VidXRrYW4gcGlsaWhhbi1waWxpaGFuIEJPT1RQIHVudHVrIERIQ1Agc2VydmVyLiIKIAotIzogb3B0aW9uLmM6MjE4CisjOiBvcHRpb24uYzoyNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG8gTk9UIHBvbGwgJXMgZmlsZSwgcmVsb2FkIG9ubHkgb24gU0lHSFVQLiIKIG1zZ3N0ciAiSmFuZ2FuIGt1bXB1bGthbiBmaWxlICVzLCBtdWF0IGtlbWJhbGkgc2FhdCBTSUdIVVAuIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMTkKKyM6IG9wdGlvbi5jOjI3NwogbXNnaWQgIkRvIE5PVCBjYWNoZSBmYWlsZWQgc2VhcmNoIHJlc3VsdHMuIgogbXNnc3RyICJKQU5HQU4gbWVueWltcGFuIGhhc2lsIHBlbmNhcmlhbiB5YW5nIGdhZ2FsLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjIwCisjOiBvcHRpb24uYzoyNzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlIG5hbWVzZXJ2ZXJzIHN0cmljdGx5IGluIHRoZSBvcmRlciBnaXZlbiBpbiAlcy4iCiBtc2dzdHIgIkd1bmFrYW4gc2VjYXJhIGtldGF0IG5hbWFzZXJ2ZXIgeWFuZyBkaXNlYnV0a2FuIHNlc3VhaSB1cnV0YW4gZGkgJXMuIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMjEKKyM6IG9wdGlvbi5jOjI3OQogIywgZnV6enkKIG1zZ2lkICJTcGVjaWZ5IG9wdGlvbnMgdG8gYmUgc2VudCB0byBESENQIGNsaWVudHMuIgogbXNnc3RyICIiCiAiU2V0ZWwgcGlsaWhhbi1waWxpaGFuIHRhbWJhaGFuIHlhbmcgYWthbiBkaXNldGVsIHVudHVrIGtsaWVuLWtsaWVuIERIQ1AuIgogCi0jOiBvcHRpb24uYzoyMjIKKyM6IG9wdGlvbi5jOjI4MAogbXNnaWQgIkRIQ1Agb3B0aW9uIHNlbnQgZXZlbiBpZiB0aGUgY2xpZW50IGRvZXMgbm90IHJlcXVlc3QgaXQuIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIyMworIzogb3B0aW9uLmM6MjgxCiBtc2dpZCAiU3BlY2lmeSBwb3J0IHRvIGxpc3RlbiBmb3IgRE5TIHJlcXVlc3RzIG9uIChkZWZhdWx0cyB0byA1MykuIgogbXNnc3RyICJTZWJ1dGthbiBwb3J0IHVudHVrIG1lbmRlbmdhcmthbiBwZXJtaW50YWFuIEROUyAoZGVmYXVsdCBwb3J0IDUzKS4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIyNAorIzogb3B0aW9uLmM6MjgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1heGltdW0gc3VwcG9ydGVkIFVEUCBwYWNrZXQgc2l6ZSBmb3IgRUROUy4wIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJVa3VyYW4gbWFrc2ltdW0gcGFrZXQgVURQIHlhbmcgZGlkdWt1bmcgdW50dWsgRUROUy4wIChkZWZhdWx0ICVzKS4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIyNQotbXNnaWQgIkxvZyBxdWVyaWVzLiIKKyM6IG9wdGlvbi5jOjI4MworIywgZnV6enkKK21zZ2lkICJMb2cgRE5TIHF1ZXJpZXMuIgogbXNnc3RyICJQZXJtaW50YWFuIGxvZy4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIyNgotbXNnaWQgIkZvcmNlIHRoZSBvcmlnaW5hdGluZyBwb3J0IGZvciB1cHN0cmVhbSBxdWVyaWVzLiIKKyM6IG9wdGlvbi5jOjI4NAorIywgZnV6enkKK21zZ2lkICJGb3JjZSB0aGUgb3JpZ2luYXRpbmcgcG9ydCBmb3IgdXBzdHJlYW0gRE5TIHF1ZXJpZXMuIgogbXNnc3RyICJQYWtzYSBwb3J0IGFzYWwgdW50dWsgcGVybWludGFhbiBrZSBhdGFzLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjI3CisjOiBvcHRpb24uYzoyODUKIG1zZ2lkICJEbyBOT1QgcmVhZCByZXNvbHYuY29uZi4iCiBtc2dzdHIgIkpBTkdBTiBiYWNhIHJlc29sdi5jb25mLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjI4CisjOiBvcHRpb24uYzoyODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBwYXRoIHRvIHJlc29sdi5jb25mIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJTZWJ1dGthbiBwYXRoIGtlIHJlc29sdi5jb25mIChkZWZhdWx0ICVzKS4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIyOQorIzogb3B0aW9uLmM6Mjg3CiBtc2dpZCAiU3BlY2lmeSBhZGRyZXNzKGVzKSBvZiB1cHN0cmVhbSBzZXJ2ZXJzIHdpdGggb3B0aW9uYWwgZG9tYWlucy4iCiBtc2dzdHIgIiIKICJTZWJ1dGthbiBhbGFtYXQtYWxhbWF0IHNlcnZlciBkaSBhdGFzLCBib2xlaCBkaWxlbmdrYXBpIGRlbmdhbiBuYW1hIGRvbWFpbi4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIzMAorIzogb3B0aW9uLmM6Mjg4CiBtc2dpZCAiTmV2ZXIgZm9yd2FyZCBxdWVyaWVzIHRvIHNwZWNpZmllZCBkb21haW5zLiIKIG1zZ3N0ciAiSkFOR0FOIHBlcm5haCBtZW5lcnVza2FuIHBlcm1pbnRhYW4ga2UgZG9tYWluIHlhbmcgZGlzZWJ1dGthbi4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIzMQorIzogb3B0aW9uLmM6Mjg5CiBtc2dpZCAiU3BlY2lmeSB0aGUgZG9tYWluIHRvIGJlIGFzc2lnbmVkIGluIERIQ1AgbGVhc2VzLiIKIG1zZ3N0ciAiU2VidXRrYW4gZG9tYWluIHlhbmcgZGlndW5ha2FuIGRhbGFtIGxlYXNlIERIQ1AuIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMzIKKyM6IG9wdGlvbi5jOjI5MAogbXNnaWQgIlNwZWNpZnkgZGVmYXVsdCB0YXJnZXQgaW4gYW4gTVggcmVjb3JkLiIKIG1zZ3N0ciAiU2VidXRrYW4gdHVqdWFuIGRlZmF1bHQgZGFsYW0gcmVrb3JkIE1YLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjMzCisjOiBvcHRpb24uYzoyOTEKIG1zZ2lkICJTcGVjaWZ5IHRpbWUtdG8tbGl2ZSBpbiBzZWNvbmRzIGZvciByZXBsaWVzIGZyb20gL2V0Yy9ob3N0cy4iCiBtc2dzdHIgIlNlYnV0a2FuIHRpbWUtdG8tbGl2ZSBkYWxhbSBkZXRpayB1bnR1ayBqYXdhYmFuIGRhcmkgL2V0Yy9ob3N0cy4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIzNAorIzogb3B0aW9uLmM6MjkyCisjLCBmdXp6eQorbXNnaWQgIlNwZWNpZnkgdGltZS10by1saXZlIGluIHNlY29uZHMgZm9yIG5lZ2F0aXZlIGNhY2hpbmcuIgorbXNnc3RyICJTZWJ1dGthbiB0aW1lLXRvLWxpdmUgZGFsYW0gZGV0aWsgdW50dWsgamF3YWJhbiBkYXJpIC9ldGMvaG9zdHMuIgorCisjIE9LCisjOiBvcHRpb24uYzoyOTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2hhbmdlIHRvIHRoaXMgdXNlciBhZnRlciBzdGFydHVwLiAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiVWJhaCBrZSB1c2VyIGluaSBzZXRlbGFoIG11bGFpLiAoZGVmYXVsdCAlcykuIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMzUKKyM6IG9wdGlvbi5jOjI5NAogIywgZnV6enkKIG1zZ2lkICJNYXAgREhDUCB2ZW5kb3IgY2xhc3MgdG8gdGFnLiIKIG1zZ3N0ciAiTWVtZXRha2FuIGtlbGFzIHZlbmRvciBESENQIGtlIGRhZnRhciBwaWxpaGFuLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjM2CisjOiBvcHRpb24uYzoyOTUKIG1zZ2lkICJEaXNwbGF5IGRuc21hc3EgdmVyc2lvbiBhbmQgY29weXJpZ2h0IGluZm9ybWF0aW9uLiIKIG1zZ3N0ciAiTWVuYW1waWxrYW4gdmVyc2kgZGFuIGluZm9ybWFzaSBoYWsgY2lwdGEgZG5zbWFzcS4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIzNworIzogb3B0aW9uLmM6Mjk2CiBtc2dpZCAiVHJhbnNsYXRlIElQdjQgYWRkcmVzc2VzIGZyb20gdXBzdHJlYW0gc2VydmVycy4iCiBtc2dzdHIgIlRlcmplbWFoa2FuIGFsYW1hdC1hbGFtYXQgSVB2NCBkYXJpIHNlcnZlci1zZXJ2ZXIgZGkgYXRhcy4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIzOAorIzogb3B0aW9uLmM6Mjk3CiBtc2dpZCAiU3BlY2lmeSBhIFNSViByZWNvcmQuIgogbXNnc3RyICJTZWJ1dGthbiByZWtvcmQgU1JWLiIKIAotIzogb3B0aW9uLmM6MjM5CisjOiBvcHRpb24uYzoyOTgKIG1zZ2lkICJEaXNwbGF5IHRoaXMgbWVzc2FnZS4gVXNlIC0taGVscCBkaGNwIGZvciBrbm93biBESENQIG9wdGlvbnMuIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjI0MAorIzogb3B0aW9uLmM6Mjk5CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IHBhdGggb2YgUElEIGZpbGUgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlNlYnV0a2FuIHBhdGggZmlsZSBQSUQuIChkZWZhdWx0ICVzKS4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjI0MQorIzogb3B0aW9uLmM6MzAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgbWF4aW11bSBudW1iZXIgb2YgREhDUCBsZWFzZXMgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlNlYnV0a2FuIGp1bWxhaCBtYWtzaW11bSBsZWFzZSBESENQIChkZWZhdWx0ICVzKS4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjI0MgorIzogb3B0aW9uLmM6MzAxCiBtc2dpZCAiQW5zd2VyIEROUyBxdWVyaWVzIGJhc2VkIG9uIHRoZSBpbnRlcmZhY2UgYSBxdWVyeSB3YXMgc2VudCB0by4iCiBtc2dzdHIgIiIKICJKYXdhYiBwZXJtaW50YWFuIEROUyBiZXJkYXNhcmthbiBhbnRhcm11a2EgZGltYW5hIHBlcm1pbnRhYW4gZGlraXJpbWthbi4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjI0MworIzogb3B0aW9uLmM6MzAyCiBtc2dpZCAiU3BlY2lmeSBUWFQgRE5TIHJlY29yZC4iCiBtc2dzdHIgIlNlYnV0a2FuIHJla29yZCBUWFQgRE5TLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjQ0CisjOiBvcHRpb24uYzozMDMKICMsIGZ1enp5CiBtc2dpZCAiU3BlY2lmeSBQVFIgRE5TIHJlY29yZC4iCiBtc2dzdHIgIlNlYnV0a2FuIHJla29yZCBUWFQgRE5TLiIKIAotIzogb3B0aW9uLmM6MjQ1CisjOiBvcHRpb24uYzozMDQKIG1zZ2lkICJHaXZlIEROUyBuYW1lIHRvIElQdjQgYWRkcmVzcyBvZiBpbnRlcmZhY2UuIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjI0NgorIzogb3B0aW9uLmM6MzA1CiBtc2dpZCAiQmluZCBvbmx5IHRvIGludGVyZmFjZXMgaW4gdXNlLiIKIG1zZ3N0ciAiSGFueWEga2FpdGthbiBrZSBhbnRhcm11a2EgeWFuZyBzZWRhbmcgZGlndW5ha2FuIHNhamEuIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyNDcKKyM6IG9wdGlvbi5jOjMwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWFkIERIQ1Agc3RhdGljIGhvc3QgaW5mb3JtYXRpb24gZnJvbSAlcy4iCiBtc2dzdHIgIkJhY2EgaW5mb3JtYXNpIHN0YXRpayBob3N0IERIQ1AgZGFyaSAlcy4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjI0OAorIzogb3B0aW9uLmM6MzA3CiBtc2dpZCAiRW5hYmxlIHRoZSBEQnVzIGludGVyZmFjZSBmb3Igc2V0dGluZyB1cHN0cmVhbSBzZXJ2ZXJzLCBldGMuIgogbXNnc3RyICJNdW5na2lua2FuIGFudGFyIG11a2EgREJ1cyB1bnR1ayBtZW55ZXRlbCBzZXJ2ZXItc2VydmVyIGRpIGF0YXMsIGRzYi4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjI0OQorIzogb3B0aW9uLmM6MzA4CiBtc2dpZCAiRG8gbm90IHByb3ZpZGUgREhDUCBvbiB0aGlzIGludGVyZmFjZSwgb25seSBwcm92aWRlIEROUy4iCiBtc2dzdHIgIkpBTkdBTiBtZW55ZWRpYWthbiBESENQIHBhZGEgYW50YXJtdWthIGluaSwgaGFueWEgbWVueWVkaWFrYW4gRE5TLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjUwCisjOiBvcHRpb24uYzozMDkKIG1zZ2lkICJFbmFibGUgZHluYW1pYyBhZGRyZXNzIGFsbG9jYXRpb24gZm9yIGJvb3RwLiIKIG1zZ3N0ciAiTXVuZ2tpbmthbiBhbG9rYXNpIGFsYW1hdCBkaW5hbWlzIHVudHVrIGJvb3RwLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjUxCisjOiBvcHRpb24uYzozMTAKICMsIGZ1enp5CiBtc2dpZCAiTWFwIE1BQyBhZGRyZXNzICh3aXRoIHdpbGRjYXJkcykgdG8gb3B0aW9uIHNldC4iCiBtc2dzdHIgIk1lbWV0YWthbiBrZWxhcyB2ZW5kb3IgREhDUCBrZSBkYWZ0YXIgcGlsaWhhbi4iCiAKLSM6IG9wdGlvbi5jOjI1MworIzogb3B0aW9uLmM6MzEyCiBtc2dpZCAiVHJlYXQgREhDUCByZXF1ZXN0cyBvbiBhbGlhc2VzIGFzIGFycml2aW5nIGZyb20gaW50ZXJmYWNlLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNTUKKyM6IG9wdGlvbi5jOjMxNAogbXNnaWQgIkRpc2FibGUgSUNNUCBlY2hvIGFkZHJlc3MgY2hlY2tpbmcgaW4gdGhlIERIQ1Agc2VydmVyLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNTYKKyM6IG9wdGlvbi5jOjMxNQogbXNnaWQgIlNjcmlwdCB0byBydW4gb24gREhDUCBsZWFzZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24uIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI1NworIzogb3B0aW9uLmM6MzE2CiBtc2dpZCAiUmVhZCBjb25maWd1cmF0aW9uIGZyb20gYWxsIHRoZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4iCiBtc2dzdHIgIiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjU4CisjOiBvcHRpb24uYzozMTcKICMsIGZ1enp5CiBtc2dpZCAiTG9nIHRvIHRoaXMgc3lzbG9nIGZhY2lsaXR5IG9yIGZpbGUuIChkZWZhdWx0cyB0byBEQUVNT04pIgogbXNnc3RyICJVYmFoIGtlIHVzZXIgaW5pIHNldGVsYWggbXVsYWkuIChkZWZhdWx0ICVzKS4iCiAKLSM6IG9wdGlvbi5jOjI1OQorIzogb3B0aW9uLmM6MzE4CiBtc2dpZCAiUmVhZCBsZWFzZXMgYXQgc3RhcnR1cCwgYnV0IG5ldmVyIHdyaXRlIHRoZSBsZWFzZSBmaWxlLiIKIG1zZ3N0ciAiIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyNjAKKyM6IG9wdGlvbi5jOjMxOQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBETlMgcXVlcmllcy4gKGRlZmF1bHRzIHRvICVzKSIKIG1zZ3N0ciAiU2VidXRrYW4ganVtbGFoIG1ha3NpbXVtIGxlYXNlIERIQ1AgKGRlZmF1bHQgJXMpLiIKIAotIzogb3B0aW9uLmM6MjYxCisjOiBvcHRpb24uYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xlYXIgRE5TIGNhY2hlIHdoZW4gcmVsb2FkaW5nICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjIKKyM6IG9wdGlvbi5jOjMyMQogbXNnaWQgIklnbm9yZSBob3N0bmFtZXMgcHJvdmlkZWQgYnkgREhDUCBjbGllbnRzLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjMKKyM6IG9wdGlvbi5jOjMyMgorbXNnaWQgIkRvIE5PVCByZXVzZSBmaWxlbmFtZSBhbmQgc2VydmVyIGZpZWxkcyBmb3IgZXh0cmEgREhDUCBvcHRpb25zLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjMKIG1zZ2lkICJFbmFibGUgaW50ZWdyYXRlZCByZWFkLW9ubHkgVEZUUCBzZXJ2ZXIuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI2NAorIzogb3B0aW9uLmM6MzI0CiBtc2dpZCAiRXhwb3J0IGZpbGVzIGJ5IFRGVFAgb25seSBmcm9tIHRoZSBzcGVjaWZpZWQgc3VidHJlZS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY1CisjOiBvcHRpb24uYzozMjUKIG1zZ2lkICJBZGQgY2xpZW50IElQIGFkZHJlc3MgdG8gdGZ0cC1yb290LiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjYKKyM6IG9wdGlvbi5jOjMyNgogbXNnaWQgIkFsbG93IGFjY2VzcyBvbmx5IHRvIGZpbGVzIG93bmVkIGJ5IHRoZSB1c2VyIHJ1bm5pbmcgZG5zbWFzcS4iCiBtc2dzdHIgIiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjY3CisjOiBvcHRpb24uYzozMjcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIk1heGltdW0gbnVtYmVyIG9mIGNvbm5jdXJyZW50IFRGVFAgdHJhbnNmZXJzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJTZWJ1dGthbiBqdW1sYWggbWFrc2ltdW0gbGVhc2UgREhDUCAoZGVmYXVsdCAlcykuIgogCi0jOiBvcHRpb24uYzoyNjgKKyM6IG9wdGlvbi5jOjMyOAogbXNnaWQgIkRpc2FibGUgdGhlIFRGVFAgYmxvY2tzaXplIGV4dGVuc2lvbi4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY5CisjOiBvcHRpb24uYzozMjkKK21zZ2lkICJFcGhlbWVyYWwgcG9ydCByYW5nZSBmb3IgdXNlIGJ5IFRGVFAgdHJhbnNmZXJzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzAKIG1zZ2lkICJFeHRyYSBsb2dnaW5nIGZvciBESENQLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNzAKKyM6IG9wdGlvbi5jOjMzMQogbXNnaWQgIkVuYWJsZSBhc3luYy4gbG9nZ2luZzsgb3B0aW9uYWxseSBzZXQgcXVldWUgbGVuZ3RoLiIKIG1zZ3N0ciAiIgogCisjOiBvcHRpb24uYzozMzIKK21zZ2lkICJTdG9wIEROUyByZWJpbmRpbmcuIEZpbHRlciBwcml2YXRlIElQIHJhbmdlcyB3aGVuIHJlc29sdmluZy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzMzCittc2dpZCAiQWx3YXlzIHBlcmZvcm0gRE5TIHF1ZXJpZXMgdG8gYWxsIHNlcnZlcnMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMzNAorbXNnaWQgIlNldCB0YWcgaWYgY2xpZW50IGluY2x1ZGVzIG9wdGlvbiBpbiByZXF1ZXN0LiIKK21zZ3N0ciAiIgorCiAjIE9LCi0jOiBvcHRpb24uYzo1MDEKKyM6IG9wdGlvbi5jOjU4NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVXNhZ2U6IGRuc21hc3EgW29wdGlvbnNdXG4iCkBAIC01MDEsMjA0ICs1NTIsMjI0IEBACiAiXG4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjUwMworIzogb3B0aW9uLmM6NTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZSBzaG9ydCBvcHRpb25zIG9ubHkgb24gdGhlIGNvbW1hbmQgbGluZS5cbiIKIG1zZ3N0ciAiR3VuYWthbiBwaWxpaGFuIHBlbmRlayBzYWphIHBhZGEgcGVyaW50YWggYmFyaXMuXG4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjUwNQorIzogb3B0aW9uLmM6NTg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlZhbGlkIG9wdGlvbnMgYXJlIDpcbiIKIG1zZ3N0ciAiUGlsaWhhbiB5YW5nIGJvbGVoIGFkYWxhaDpcbiIKIAotIzogb3B0aW9uLmM6NTI2CisjOiBvcHRpb24uYzo2MTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiS25vd24gREhDUCBvcHRpb25zOlxuIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjU5OQorIzogb3B0aW9uLmM6NjgzCiBtc2dpZCAiYmFkIGRoY3Atb3B0aW9uIgogbXNnc3RyICJkaGNwLW9wdGlvbiBzYWxhaCIKIAogIyBPSwotIzogb3B0aW9uLmM6NjU1CisjOiBvcHRpb24uYzo3MzkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIElQIGFkZHJlc3MiCiBtc2dzdHIgIm1lbWJhY2EgJXMgLSAlZCBhbGFtYXQiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjc1MworIzogb3B0aW9uLmM6ODM3CiBtc2dpZCAiYmFkIGRvbWFpbiBpbiBkaGNwLW9wdGlvbiIKIG1zZ3N0ciAiZG9tYWluIGRhbGFtIGRoY3Atb3B0aW9uIHNhbGFoIgogCiAjIE9LCi0jOiBvcHRpb24uYzo4MDkKKyM6IG9wdGlvbi5jOjg5NQogbXNnaWQgImRoY3Atb3B0aW9uIHRvbyBsb25nIgogbXNnc3RyICJkaGNwLW9wdGlvbiB0ZXJsYWx1IHBhbmphbmciCiAKICMgT0sKLSM6IG9wdGlvbi5jOjg1MworIzogb3B0aW9uLmM6OTQyCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgYWNjZXNzIGRpcmVjdG9yeSAlczogJXMiCiBtc2dzdHIgInRpZGFrIGJpc2EgbWVtYmFjYSAlczogJXMiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjg3MiB0ZnRwLmM6MzEzCisjOiBvcHRpb24uYzo5NjEgdGZ0cC5jOjM0MwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGFjY2VzcyAlczogJXMiCiBtc2dzdHIgInRpZGFrIGJpc2EgbWVtYmFjYSAlczogJXMiCiAKLSM6IG9wdGlvbi5jOjkxMworIzogb3B0aW9uLmM6OTk4CiBtc2dpZCAib25seSBvbmUgZGhjcC1ob3N0c2ZpbGUgYWxsb3dlZCIKIG1zZ3N0ciAiIgogCisjOiBvcHRpb24uYzoxMDA1Cittc2dpZCAib25seSBvbmUgZGhjcC1vcHRzZmlsZSBhbGxvd2VkIgorbXNnc3RyICIiCisKICMgT0sKLSM6IG9wdGlvbi5jOjk2MgorIzogb3B0aW9uLmM6MTA0OQogbXNnaWQgImJhZCBNWCBwcmVmZXJlbmNlIgogbXNnc3RyICJrZXN1a2FhbiBNWCBzYWxhaCIKIAogIyBPSwotIzogb3B0aW9uLmM6OTcxCisjOiBvcHRpb24uYzoxMDUzCiBtc2dpZCAiYmFkIE1YIG5hbWUiCiBtc2dzdHIgIm5hbWEgTVggc2FsYWgiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjk4OQorIzogb3B0aW9uLmM6MTA2NwogbXNnaWQgImJhZCBNWCB0YXJnZXQiCiBtc2dzdHIgInRhcmdldCBNWCBzYWxhaCIKIAotIzogb3B0aW9uLmM6MTAwMQorIzogb3B0aW9uLmM6MTA3OAogbXNnaWQgImNhbm5vdCBydW4gc2NyaXB0cyB1bmRlciB1Q2xpbnV4IgogbXNnc3RyICIiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjExOTYgb3B0aW9uLmM6MTIwNworIzogb3B0aW9uLmM6MTI2NSBvcHRpb24uYzoxMjczCiBtc2dpZCAiYmFkIHBvcnQiCiBtc2dzdHIgInBvcnQgc2FsYWgiCiAKLSM6IG9wdGlvbi5jOjEzNDkKKyM6IG9wdGlvbi5jOjEyOTMgb3B0aW9uLmM6MTMxOAorbXNnaWQgImludGVyZmFjZSBiaW5kaW5nIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIyBPSworIzogb3B0aW9uLmM6MTQyNworIywgZnV6enkKK21zZ2lkICJiYWQgcG9ydCByYW5nZSIKK21zZ3N0ciAicG9ydCBzYWxhaCIKKworIzogb3B0aW9uLmM6MTQ0NAogbXNnaWQgImJhZCBicmlkZ2UtaW50ZXJmYWNlIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjEzOTEKKyM6IG9wdGlvbi5jOjE0ODUKIG1zZ2lkICJiYWQgZGhjcC1yYW5nZSIKIG1zZ3N0ciAiZGhjcC1yYW5nZSBzYWxhaCIKIAotIzogb3B0aW9uLmM6MTQxOQorIzogb3B0aW9uLmM6MTUxMQogbXNnaWQgIm9ubHkgb25lIG5ldGlkIHRhZyBhbGxvd2VkIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjE0NjEKKyM6IG9wdGlvbi5jOjE1NTEKIG1zZ2lkICJpbmNvbnNpc3RlbnQgREhDUCByYW5nZSIKIG1zZ3N0ciAiamFuZ2thdWFuIERIQ1AgdGlkYWsga29uc2lzdGVuIgogCiAjIE9LCi0jOiBvcHRpb24uYzoxNjM3CisjOiBvcHRpb24uYzoxNzE5CiAjLCBmdXp6eQogbXNnaWQgImJhZCBESENQIGhvc3QgbmFtZSIKIG1zZ3N0ciAibmFtYSBNWCBzYWxhaCIKIAogIyBPSwotIzogb3B0aW9uLmM6MTg2MQorIzogb3B0aW9uLmM6MTk1OQogIywgZnV6enkKIG1zZ2lkICJiYWQgaW50ZXJmYWNlIG5hbWUiCiBtc2dzdHIgIm5hbWEgTVggc2FsYWgiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjE4ODUKKyM6IG9wdGlvbi5jOjE5NzkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIFBUUiByZWNvcmQiCiBtc2dzdHIgInJla29yZCBTUlYgc2FsYWgiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjE5MDkKLW1zZ2lkICJiYWQgVFhUIHJlY29yZCIKLW1zZ3N0ciAicmVrb3JkIFRYVCBzYWxhaCIKLQotIyBPSwotIzogb3B0aW9uLmM6MTk0MQorIzogb3B0aW9uLmM6MTk5OQogbXNnaWQgIlRYVCByZWNvcmQgc3RyaW5nIHRvbyBsb25nIgogbXNnc3RyICJzdHJpbmcgcmVrb3JkIFRYVCB0ZXJsYWx1IHBhbmphbmciCiAKICMgT0sKLSM6IG9wdGlvbi5jOjE5ODAKKyM6IG9wdGlvbi5jOjIwMDMKK21zZ2lkICJiYWQgVFhUIHJlY29yZCIKK21zZ3N0ciAicmVrb3JkIFRYVCBzYWxhaCIKKworIyBPSworIzogb3B0aW9uLmM6MjA2MwogbXNnaWQgImJhZCBTUlYgcmVjb3JkIgogbXNnc3RyICJyZWtvcmQgU1JWIHNhbGFoIgogCiAjIE9LCi0jOiBvcHRpb24uYzoxOTkyCisjOiBvcHRpb24uYzoyMDcyCiBtc2dpZCAiYmFkIFNSViB0YXJnZXQiCiBtc2dzdHIgInRhcmdldCBTUlYgc2FsYWgiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIwMDMKKyM6IG9wdGlvbi5jOjIwODAKIG1zZ2lkICJpbnZhbGlkIHBvcnQgbnVtYmVyIgogbXNnc3RyICJub21vciBwb3J0IHRpZGFrIGJlbmFyIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMDEzCisjOiBvcHRpb24uYzoyMDg3CiBtc2dpZCAiaW52YWxpZCBwcmlvcml0eSIKIG1zZ3N0ciAicHJpb3JpdGFzIHRpZGFrIGJlbmFyIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMDIzCisjOiBvcHRpb24uYzoyMDk0CiBtc2dpZCAiaW52YWxpZCB3ZWlnaHQiCiBtc2dzdHIgIndlaWdodCB0aWRhayBiZW5hciIKIAotIzogb3B0aW9uLmM6MjA1NAorIzogb3B0aW9uLmM6MjEzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJmaWxlcyBuZXN0ZWQgdG9vIGRlZXAgaW4gJXMiCiBtc2dzdHIgIiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjA2MiB0ZnRwLmM6NDY3CisjOiBvcHRpb24uYzoyMTM4IHRmdHAuYzo0OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICJ0aWRhayBiaXNhIG1lbWJhY2EgJXM6ICVzIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMTE0CisjOiBvcHRpb24uYzoyMTk5CiBtc2dpZCAibWlzc2luZyBcIiIKIG1zZ3N0ciAia3VyYW5nIFwiIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMTYxCisjOiBvcHRpb24uYzoyMjQ2CiBtc2dpZCAiYmFkIG9wdGlvbiIKIG1zZ3N0ciAicGlsaWhhbiBzYWxhaCIKIAogIyBPSwotIzogb3B0aW9uLmM6MjE2MworIzogb3B0aW9uLmM6MjI0OAogbXNnaWQgImV4dHJhbmVvdXMgcGFyYW1ldGVyIgogbXNnc3RyICJwYXJhbWV0ZXIgYmVybGViaWhhbiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjE2NQorIzogb3B0aW9uLmM6MjI1MAogbXNnaWQgIm1pc3NpbmcgcGFyYW1ldGVyIgogbXNnc3RyICJwYXJhbWV0ZXIga3VyYW5nIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMTczCisjOiBvcHRpb24uYzoyMjU4CiBtc2dpZCAiZXJyb3IiCiBtc2dzdHIgImtlc2FsYWhhbiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjE3OQorIzogb3B0aW9uLmM6MjI2NAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBhdCBsaW5lICVkIG9mICUlcyIKIG1zZ3N0ciAiJXMgcGFkYSBiYXJpcyAlZCBkYXJpICUlcyIKIAogIyBPSwotIzogb3B0aW9uLmM6MjI1MgorIzogb3B0aW9uLmM6MjMwNCBvcHRpb24uYzoyMzM0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZWFkICVzIgorbXNnc3RyICJtZW1iYWNhICVzIgorCisjIE9LCisjOiBvcHRpb24uYzoyNDAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRuc21hc3EgdmVyc2lvbiAlcyAgJXNcbiIKIG1zZ3N0ciAiRG5zbWFzcSB2ZXJzaSAlcyAgJXNcbiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjI1MworIzogb3B0aW9uLmM6MjQwMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ29tcGlsZSB0aW1lIG9wdGlvbnMgJXNcbiIKQEAgLTcwOCwxMyArNzc5LDEzIEBACiAiXG4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIyNTQKKyM6IG9wdGlvbi5jOjI0MDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG4iCiBtc2dzdHIgIlBlcmFuZ2thdCBsdW5hayBpbmkgdGVyc2VkaWEgVEFOUEEgSkFNSU5BTiBTRURJS0lUUFVOLlxuIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMjU1CisjOiBvcHRpb24uYzoyNDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRuc21hc3EgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXRcbiIKIG1zZ3N0ciAiIgpAQCAtNzIyLDE3NSArNzkzLDE5MCBAQAogIm1lbWJhZ2lrYW5ueWFcbiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjI1NgotIywgYy1mb3JtYXQKLW1zZ2lkICJ1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIuXG4iCisjOiBvcHRpb24uYzoyNDA0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIgb3IgMy5cbiIKIG1zZ3N0ciAiZGVuZ2FuIGF0dXJhbiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2kgMi5cbiIKIAotIzogb3B0aW9uLmM6MjI2NworIzogb3B0aW9uLmM6MjQxNQogbXNnaWQgInRyeSAtLWhlbHAiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI2OQorIzogb3B0aW9uLmM6MjQxNwogbXNnaWQgInRyeSAtdyIKIG1zZ3N0ciAiIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMjcyCisjOiBvcHRpb24uYzoyNDIwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJiYWQgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICVzIgogbXNnc3RyICJwaWxpaGFuIGJhcmlzIHBlcmludGFoIHNhbGFoOiAlcy4iCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIzMTMKKyM6IG9wdGlvbi5jOjI0NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGdldCBob3N0LW5hbWU6ICVzIgogbXNnc3RyICJ0aWRhayBiaXNhIG1lbmRhcGF0a2FuIGhvc3QtbmFtZTogJXMiCiAKICMgT0sKLSM6IG9wdGlvbi5jOjIzNDEKKyM6IG9wdGlvbi5jOjI0ODkKIG1zZ2lkICJvbmx5IG9uZSByZXNvbHYuY29uZiBmaWxlIGFsbG93ZWQgaW4gbm8tcG9sbCBtb2RlLiIKIG1zZ3N0ciAiaGFueWEgc2F0dSBmaWxlIHJlc29sdi5jb25mIHlhbmcgZGlwZXJib2xlaGthbiBkYWxhbSBtb2R1cyBuby1wb2xsLiIKIAogIyBPSwotIzogb3B0aW9uLmM6MjM1MQorIzogb3B0aW9uLmM6MjQ5OQogbXNnaWQgIm11c3QgaGF2ZSBleGFjdGx5IG9uZSByZXNvbHYuY29uZiB0byByZWFkIGRvbWFpbiBmcm9tLiIKIG1zZ3N0ciAiaGFydXMgbWVtcHVueWFpIHRlcGF0IHNhdHUgcmVzb2x2LmNvbmYgdW50dWsgbWVuZGFwYXRrYW4gbmFtYSBkb21haW4uIgogCiAjIE9LCi0jOiBvcHRpb24uYzoyMzU0IG5ldHdvcmsuYzo1NDkKKyM6IG9wdGlvbi5jOjI1MDIgbmV0d29yay5jOjY0MAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgJXM6ICVzIgogbXNnc3RyICJnYWdhbCBtZW1iYWNhICVzOiAlbSIKIAogIyBPSwotIzogb3B0aW9uLmM6MjM3MgorIzogb3B0aW9uLmM6MjUyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBzZWFyY2ggZGlyZWN0aXZlIGZvdW5kIGluICVzIgogbXNnc3RyICJ0aWRhayBkaXRlbXVrYW4gZGlyZWt0aWYgc2VhcmNoIGRpICVzIgogCiAjIE9LCi0jOiBmb3J3YXJkLmM6Mzc2CisjOiBmb3J3YXJkLmM6MzgxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5hbWVzZXJ2ZXIgJXMgcmVmdXNlZCB0byBkbyBhIHJlY3Vyc2l2ZSBxdWVyeSIKIG1zZ3N0ciAibmFtZXNlcnZlciAlcyBtZW5vbGFrIG1lbGFrdWthbiByZXNvbHVzaSByZWt1cnNpZiIKIAorIzogZm9yd2FyZC5jOjQwOQorbXNnaWQgInBvc3NpYmxlIEROUy1yZWJpbmQgYXR0YWNrIGRldGVjdGVkIgorbXNnc3RyICIiCisKICMgT0sKLSM6IGlzYy5jOjczIGRuc21hc3EuYzo3MjMKKyM6IGlzYy5jOjc3IGRuc21hc3EuYzo3NDcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBhY2Nlc3MgJXM6ICVzIgogbXNnc3RyICJnYWdhbCBtZW5nYWtzZXMgJXM6ICVtIgogCiAjIE9LCi0jOiBpc2MuYzo4OQorIzogaXNjLmM6OTMKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsb2FkICVzOiAlcyIKIG1zZ3N0ciAiZ2FnYWwgbWVtdWF0ICVTOiAlbSIKIAogIyBPSwotIzogaXNjLmM6OTMgZG5zbWFzcS5jOjc0NQorIzogaXNjLmM6OTcgZG5zbWFzcS5jOjc2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWFkaW5nICVzIgogbXNnc3RyICJtZW1iYWNhICVzIgogCiAjIE9LCi0jOiBpc2MuYzoxMTUKKyM6IGlzYy5jOjExOQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbmFtZSBpbiAlcyIKIG1zZ3N0ciAia2VzYWxhaGFuIG5hbWEgZGkgJXMiCiAKICMgT0sKLSM6IGlzYy5jOjE3NworIzogaXNjLmM6MTgxCiAjLCBjLWZvcm1hdAogbXNnaWQgIklnbm9yaW5nIERIQ1AgbGVhc2UgZm9yICVzIGJlY2F1c2UgaXQgaGFzIGFuIGlsbGVnYWwgZG9tYWluIHBhcnQiCiBtc2dzdHIgIiIKICJNZW5nYWJhaWthbiBsZWFzZSBESENQIHVudHVrICVzIHNlYmFiIHRlcmRhcGF0IGJhZ2lhbiBkb21haW4geWFuZyB0aWRhayBzYWgiCiAKICMgT0sKLSM6IG5ldHdvcmsuYzo0MQorIzogbmV0d29yay5jOjQ1CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duIGludGVyZmFjZSAlcyBpbiBicmlkZ2UtaW50ZXJmYWNlIgogbXNnc3RyICJhbnRhcm11a2EgdGlkYWsgZGlrZW5hbCAlcyIKIAogIyBPSwotIzogbmV0d29yay5jOjM3NyBkbnNtYXNxLmM6MTcwCisjOiBuZXR3b3JrLmM6Mzg5IGRuc21hc3EuYzoxODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBsaXN0ZW5pbmcgc29ja2V0OiAlcyIKIG1zZ3N0ciAiZ2FnYWwgbWVtYnVhdCBzb2NrZXQ6ICVzICIKIAogIyBPSwotIzogbmV0d29yay5jOjM4NAorIzogbmV0d29yay5jOjM5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc2V0IElQVjYgb3B0aW9ucyBvbiBsaXN0ZW5pbmcgc29ja2V0OiAlcyIKIG1zZ3N0ciAiZ2FnYWwgbWVueWV0ZWwgSVBWNiBwYWRhIHNvY2tldDogJXMiCiAKLSM6IG5ldHdvcmsuYzo0MDIKKyM6IG5ldHdvcmsuYzo0MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGJpbmQgbGlzdGVuaW5nIHNvY2tldCBmb3IgJXM6ICVzIgogbXNnc3RyICJnYWdhbCBtZW0tYmluZCBzb2NrZXQgdW50dWsgbWVuZGVuZ2Fya2FuICVzOiAlcyIKIAogIyBPSwotIzogbmV0d29yay5jOjQxMAorIzogbmV0d29yay5jOjQyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gbGlzdGVuIG9uIHNvY2tldDogJXMiCiBtc2dzdHIgImdhZ2FsIG1lbmRlbmdhcmthbiBkaSBzb2NrZXQ6ICVzIgogCiAjIE9LCi0jOiBuZXR3b3JrLmM6NDIxCisjOiBuZXR3b3JrLmM6NDMyCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIFRGVFAgc29ja2V0OiAlcyIKIG1zZ3N0ciAiZ2FnYWwgbWVtYnVhdCBzb2NrZXQ6ICVzICIKIAorIzogbmV0d29yay5jOjU0OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGJpbmQgc2VydmVyIHNvY2tldCBmb3IgJXM6ICVzIgorbXNnc3RyICJnYWdhbCBtZW0tYmluZCBzb2NrZXQgdW50dWsgbWVuZGVuZ2Fya2FuICVzOiAlcyIKKwogIyBPSwotIzogbmV0d29yay5jOjQ5MworIzogbmV0d29yay5jOjU4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJpZ25vcmluZyBuYW1lc2VydmVyICVzIC0gbG9jYWwgaW50ZXJmYWNlIgogbXNnc3RyICJtZW5nYWJhaWthbiBuYW1lc2VydmVyICVzIC0gYW50YXJtdWthIGxva2FsIgogCiAjIE9LCi0jOiBuZXR3b3JrLmM6NTAyCisjOiBuZXR3b3JrLmM6NTkxCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJpZ25vcmluZyBuYW1lc2VydmVyICVzIC0gY2Fubm90IG1ha2UvYmluZCBzb2NrZXQ6ICVzIgogbXNnc3RyICJtZW5nYWJhaWthbiBuYW1lc2VydmVyICVzIC0gdGFrIGRhcGF0IG1lbWJ1YXQvbWVtLWJpbmQgc29ja2V0OiAlbSIKIAogIyBPSwotIzogbmV0d29yay5jOjUxNworIzogbmV0d29yay5jOjYwNgogbXNnaWQgInVucXVhbGlmaWVkIgogbXNnc3RyICJ0aWRhayBtZW1lbnVoaSBzeWFyYXQiCiAKLSM6IG5ldHdvcmsuYzo1MTcKKyM6IG5ldHdvcmsuYzo2MDYKIG1zZ2lkICJuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTE5CisjOiBuZXR3b3JrLmM6NjA4CiBtc2dpZCAiZGVmYXVsdCIKIG1zZ3N0ciAiIgogCiAjIE9LCi0jOiBuZXR3b3JrLmM6NTIxCisjOiBuZXR3b3JrLmM6NjEwCiBtc2dpZCAiZG9tYWluIgogbXNnc3RyICJkb21haW4iCiAKICMgT0sKLSM6IG5ldHdvcmsuYzo1MjQKKyM6IG5ldHdvcmsuYzo2MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNpbmcgbG9jYWwgYWRkcmVzc2VzIG9ubHkgZm9yICVzICVzIgogbXNnc3RyICJtZW5nZ3VuYWthbiBhbGFtYXQgbG9rYWwgc2FqYSB1bnR1ayAlcyAlcyIKIAogIyBPSwotIzogbmV0d29yay5jOjUyNgorIzogbmV0d29yay5jOjYxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2luZyBuYW1lc2VydmVyICVzIyVkIGZvciAlcyAlcyIKIG1zZ3N0ciAibWVuZ2d1bmFrYW4gbmFtZXNlcnZlciAlcyMlZCB1bnR1ayAlcyAlcyIKIAogIyBPSwotIzogbmV0d29yay5jOjUyOQorIzogbmV0d29yay5jOjYxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNpbmcgbmFtZXNlcnZlciAlcyMlZCh2aWEgJXMpIgorbXNnc3RyICJtZW5nZ3VuYWthbiBuYW1lc2VydmVyICVzIyVkIgorCisjIE9LCisjOiBuZXR3b3JrLmM6NjIwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQiCiBtc2dzdHIgIm1lbmdndW5ha2FuIG5hbWVzZXJ2ZXIgJXMjJWQiCiAKICMgT0sKLSM6IGRuc21hc3EuYzoxMDYKKyM6IGRuc21hc3EuYzoxMTAKIG1zZ2lkICIiCiAiSVNDIGRoY3BkIGludGVncmF0aW9uIG5vdCBhdmFpbGFibGU6IHNldCBIQVZFX0lTQ19SRUFERVIgaW4gc3JjL2NvbmZpZy5oIgogbXNnc3RyICIiCkBAIC04OTgsNTcxICs5ODQsNTk1IEBACiAiY29uZmlnLmgiCiAKICMgT0sKLSM6IGRuc21hc3EuYzoxMjgKKyM6IGRuc21hc3EuYzoxMzIKICMsIGZ1enp5CiBtc2dpZCAiVEZUUCBzZXJ2ZXIgbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfVEZUUCBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgIkRCdXMgdGlkYWsgdGVyc2VkaWE6IHNldGVsIEhBVkVfREJVUyBkYWxhbSBzcmMvY29uZmlnLmgiCiAKKyM6IGRuc21hc3EuYzoxMzcKK21zZ2lkICJhc3ljaHJvbm91cyBsb2dnaW5nIGlzIG5vdCBhdmFpbGFibGUgdW5kZXIgU29sYXJpcyIKK21zZ3N0ciAiIgorCiAjIE9LCi0jOiBkbnNtYXNxLmM6MTQyCisjOiBkbnNtYXNxLmM6MTUxCiBtc2dpZCAibXVzdCBzZXQgZXhhY3RseSBvbmUgaW50ZXJmYWNlIG9uIGJyb2tlbiBzeXN0ZW1zIHdpdGhvdXQgSVBfUkVDVklGIgogbXNnc3RyICIiCiAiaGFydXMgbWVueWV0ZWwgc2F0dSBhbnRhcm11a2Egc2FqYSBwYWRhIHNpc3RlbSB5YW5nIHRpZGFrIGJlbmFyIGRlbmdhbiAiCiAiSVBfUkVDVklGIgogCiAjIE9LCi0jOiBkbnNtYXNxLmM6MTUyCisjOiBkbnNtYXNxLmM6MTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBmaW5kIGxpc3Qgb2YgaW50ZXJmYWNlczogJXMiCiBtc2dzdHIgImdhZ2FsIG1lbmRhcGF0a2FuIGRhZnRhciBhbnRhcm11a2E6ICVzIgogCiAjIE9LCi0jOiBkbnNtYXNxLmM6MTYwCisjOiBkbnNtYXNxLmM6MTY5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gaW50ZXJmYWNlICVzIgogbXNnc3RyICJhbnRhcm11a2EgdGlkYWsgZGlrZW5hbCAlcyIKIAogIyBPSwotIzogZG5zbWFzcS5jOjE2NgorIzogZG5zbWFzcS5jOjE3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBpbnRlcmZhY2Ugd2l0aCBhZGRyZXNzICVzIgogbXNnc3RyICJ0aWRhayBhZGEgYW50YXJtdWthIGRlbmdhbiBhbGFtYXQgJXMiCiAKICMgT0sKLSM6IGRuc21hc3EuYzoxODEgZG5zbWFzcS5jOjUzOAorIzogZG5zbWFzcS5jOjE5MiBkbnNtYXNxLmM6NTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRCdXMgZXJyb3I6ICVzIgogbXNnc3RyICJEQnVzIGVycm9yOiAlcyIKIAogIyBPSwotIzogZG5zbWFzcS5jOjE4NAorIzogZG5zbWFzcS5jOjE5NQogbXNnaWQgIkRCdXMgbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfREJVUyBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgIkRCdXMgdGlkYWsgdGVyc2VkaWE6IHNldGVsIEhBVkVfREJVUyBkYWxhbSBzcmMvY29uZmlnLmgiCiAKICMgT0sKLSM6IGRuc21hc3EuYzoyMTYKKyM6IGRuc21hc3EuYzoyMDQKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgcGlwZTogJXMiCiBtc2dzdHIgInRpZGFrIGJpc2EgbWVtYmFjYSAlczogJXMiCiAKLSM6IGRuc21hc3EuYzoyMzcKKyM6IGRuc21hc3EuYzoyMjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGZvcmsgaW50byBiYWNrZ3JvdW5kOiAlcyIKIG1zZ3N0ciAiIgogCisjOiBkbnNtYXNxLmM6MjM5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBjaGRpciB0byBmaWxlc3lzdGVtIHJvb3Q6ICVzIgorbXNnc3RyICIiCisKICMgT0sKLSM6IGRuc21hc3EuYzozMzUKKyM6IGRuc21hc3EuYzozNDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN0YXJ0ZWQsIHZlcnNpb24gJXMgRE5TIGRpc2FibGVkIgorbXNnc3RyICJkaW11bGFpLCBjYWNoZSB2ZXJzaSAlcyBkaSBkaXNhYmxlIgorCisjIE9LCisjOiBkbnNtYXNxLmM6MzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgInN0YXJ0ZWQsIHZlcnNpb24gJXMgY2FjaGVzaXplICVkIgogbXNnc3RyICJkaW11bGFpLCB2ZXJzaSAlcyB1a3VyYW4gY2FjaGUgJWQiCiAKICMgT0sKLSM6IGRuc21hc3EuYzozMzcKKyM6IGRuc21hc3EuYzozNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAic3RhcnRlZCwgdmVyc2lvbiAlcyBjYWNoZSBkaXNhYmxlZCIKIG1zZ3N0ciAiZGltdWxhaSwgY2FjaGUgdmVyc2kgJXMgZGkgZGlzYWJsZSIKIAogIyBPSwotIzogZG5zbWFzcS5jOjMzOQorIzogZG5zbWFzcS5jOjM1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb21waWxlIHRpbWUgb3B0aW9uczogJXMiCiBtc2dzdHIgInBpbGloYW4tcGlsaWhhbiBzYWF0IGtvbXBpbGFzaTogJXMiCiAKICMgT0sKLSM6IGRuc21hc3EuYzozNDUKKyM6IGRuc21hc3EuYzozNjEKIG1zZ2lkICJEQnVzIHN1cHBvcnQgZW5hYmxlZDogY29ubmVjdGVkIHRvIHN5c3RlbSBidXMiCiBtc2dzdHIgImR1a3VuZ2FuIERCdXMgZGltdW5na2lua2FuOiB0ZXJrb25la3NpIHBhZGEgYnVzIHNpc3RlbSIKIAogIyBPSwotIzogZG5zbWFzcS5jOjM0NworIzogZG5zbWFzcS5jOjM2MwogbXNnaWQgIkRCdXMgc3VwcG9ydCBlbmFibGVkOiBidXMgY29ubmVjdGlvbiBwZW5kaW5nIgogbXNnc3RyICJkdWt1bmdhbiBEQnVzIGRpbXVuZ2tpbmthbjoga29uZWtzaSBidXMgZGl0dW5kYSIKIAogIyBPSwotIzogZG5zbWFzcS5jOjM1MgorIzogZG5zbWFzcS5jOjM2OAogbXNnaWQgInNldHRpbmcgLS1iaW5kLWludGVyZmFjZXMgb3B0aW9uIGJlY2F1c2Ugb2YgT1MgbGltaXRhdGlvbnMiCiBtc2dzdHIgInNldGVsYW4gb3BzaSAtLWJpbmQtaW50ZXJmYWNlcyBkaXNlYmFia2FuIGtldGVyYmF0YXNhbiBPUyIKIAogIyBPSwotIzogZG5zbWFzcS5jOjM1NworIzogZG5zbWFzcS5jOjM3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ3YXJuaW5nOiBpbnRlcmZhY2UgJXMgZG9lcyBub3QgY3VycmVudGx5IGV4aXN0IgogbXNnc3RyICJwZXJpbmdhdGFuOiBhbnRhcm11a2EgJXMgdGlkYWsgYWRhIgogCi0jOiBkbnNtYXNxLmM6MzYyCisjOiBkbnNtYXNxLmM6Mzc4CiBtc2dpZCAid2FybmluZzogaWdub3JpbmcgcmVzb2x2LWZpbGUgZmxhZyBiZWNhdXNlIG5vLXJlc29sdiBpcyBzZXQiCiBtc2dzdHIgIiIKIAogIyBPSwotIzogZG5zbWFzcS5jOjM2NQorIzogZG5zbWFzcS5jOjM4MQogIywgZnV6enkKIG1zZ2lkICJ3YXJuaW5nOiBubyB1cHN0cmVhbSBzZXJ2ZXJzIGNvbmZpZ3VyZWQiCiBtc2dzdHIgIm1lbnlldGVsIHNlcnZlci1zZXJ2ZXIgZGkgYXRhcyBkZW5nYW4gREJ1cyIKIAotIzogZG5zbWFzcS5jOjM2OQorIzogZG5zbWFzcS5jOjM4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJhc3luY2hyb25vdXMgbG9nZ2luZyBlbmFibGVkLCBxdWV1ZSBsaW1pdCBpcyAlZCBtZXNzYWdlcyIKIG1zZ3N0ciAiIgogCiAjIE9LCi0jOiBkbnNtYXNxLmM6MzgxCisjOiBkbnNtYXNxLmM6Mzk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AsIHN0YXRpYyBsZWFzZXMgb25seSBvbiAlLjBzJXMsIGxlYXNlIHRpbWUgJXMiCiBtc2dzdHIgIkRIQ1AsIGxlYXNlIHN0YXRpYyBwYWRhICUuMHMlcywgd2FrdHUgbGVhc2UgJXMiCiAKICMgT0sKLSM6IGRuc21hc3EuYzozODIKKyM6IGRuc21hc3EuYzozOTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCwgSVAgcmFuZ2UgJXMgLS0gJXMsIGxlYXNlIHRpbWUgJXMiCiBtc2dzdHIgIkRIQ1AsIGphbmdrYXVuIElQICVzIC0tICVzLCB3YWt0dSBsZWFzZSAlcyIKIAotIzogZG5zbWFzcS5jOjM5NgorIzogZG5zbWFzcS5jOjQxMgogbXNnaWQgInJvb3QgaXMgIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IGRuc21hc3EuYzozOTYKKyM6IGRuc21hc3EuYzo0MTIKICMsIGZ1enp5CiBtc2dpZCAiZW5hYmxlZCIKIG1zZ3N0ciAiZGkgZGlzYWJsZSIKIAotIzogZG5zbWFzcS5jOjM5OAorIzogZG5zbWFzcS5jOjQxNAogbXNnaWQgInNlY3VyZSBtb2RlIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo0MTgKKyM6IGRuc21hc3EuYzo0NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVzdHJpY3RpbmcgbWF4aW11bSBzaW11bHRhbmVvdXMgVEZUUCB0cmFuc2ZlcnMgdG8gJWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjQyNworIzogZG5zbWFzcS5jOjQ0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJ3YXJuaW5nOiBzZXR0aW5nIGNhcGFiaWxpdGllcyBmYWlsZWQ6ICVzIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IGRuc21hc3EuYzo0MjkKKyM6IGRuc21hc3EuYzo0NTEKIG1zZ2lkICJydW5uaW5nIGFzIHJvb3QiCiBtc2dzdHIgImJlcmphbGFuIG1lbmdndW5ha2FuIHJvb3QiCiAKICMgT0sKLSM6IGRuc21hc3EuYzo1NDAKKyM6IGRuc21hc3EuYzo1NjMKIG1zZ2lkICJjb25uZWN0ZWQgdG8gc3lzdGVtIERCdXMiCiBtc2dzdHIgInRlcmh1YnVuZyBrZSBzaXN0ZW0gREJ1cyIKIAotIzogZG5zbWFzcS5jOjY1OQorIzogZG5zbWFzcS5jOjY4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGlsZCBwcm9jZXNzIGtpbGxlZCBieSBzaWduYWwgJWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjY2MworIzogZG5zbWFzcS5jOjY4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGlsZCBwcm9jZXNzIGV4aXRlZCB3aXRoIHN0YXR1cyAlZCIKIG1zZ3N0ciAiIgogCiAjIE9LCi0jOiBkbnNtYXNxLmM6NjY3CisjOiBkbnNtYXNxLmM6NjkxCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gZXhlY3V0ZSAlczogJXMiCiBtc2dzdHIgImdhZ2FsIG1lbmdha3NlcyAlczogJW0iCiAKICMgT0sKLSM6IGRuc21hc3EuYzo2NzEKKyM6IGRuc21hc3EuYzo2OTUKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgaGVscGVyOiAlcyIKIG1zZ3N0ciAiZ2FnYWwgbWVtYmFjYSAlczogJW0iCiAKLSM6IGRuc21hc3EuYzo3MDUKKyM6IGRuc21hc3EuYzo3MjkKIG1zZ2lkICJleGl0aW5nIG9uIHJlY2VpcHQgb2YgU0lHVEVSTSIKIG1zZ3N0ciAia2VsdWFyIGthcmVuYSBtZW5lcmltYSBTSUdURVJNIgogCiAjIE9LCi0jOiBkbnNtYXNxLmM6NzU2CisjOiBkbnNtYXNxLmM6NzgwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJubyBzZXJ2ZXJzIGZvdW5kIGluICVzLCB3aWxsIHJldHJ5IgogbXNnc3RyICJ0aWRhayBkaXRlbXVrYW4gZGlyZWt0aWYgc2VhcmNoIGRpICVzIgogCiAjIE9LCi0jOiBkaGNwLmM6MzIKKyM6IGRoY3AuYzozOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIERIQ1Agc29ja2V0IDogJXMiCiBtc2dzdHIgInRpZGFrIGJpc2EgbWVtYnVhdCBzb2NrZXQgREhDUDogJXMiCiAKICMgT0sKLSM6IGRoY3AuYzo0MQorIzogZGhjcC5jOjUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgb3B0aW9ucyBvbiBESENQIHNvY2tldDogJXMiCiBtc2dzdHIgImdhZ2FsIG1lbnlldGVsIG9wc2kgcGFkYSBzb2NrZXQgREhDUDogJXMiCiAKICMgT0sKLSM6IGRoY3AuYzo1OQorIzogZGhjcC5jOjY4CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc2V0IFNPX1JFVVNFe0FERFJ8UE9SVH0gb24gREhDUCBzb2NrZXQ6ICVzIgogbXNnc3RyICJnYWdhbCBtZW55ZXRlbCBTT19SRVVTRUFERFIgcGFkYSBzb2NrZXQgREhDUDogJXMiCiAKICMgT0sKLSM6IGRoY3AuYzo3MgorIzogZGhjcC5jOjgxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBiaW5kIERIQ1Agc2VydmVyIHNvY2tldDogJXMiCiBtc2dzdHIgImdhZ2FsIG1lbS1iaW5kIHNvY2tldCBzZXJ2ZXIgREhDUDogJXMiCiAKICMgT0sKLSM6IGRoY3AuYzo4NQorIzogZGhjcC5jOjk0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgSUNNUCByYXcgc29ja2V0OiAlcy4iCiBtc2dzdHIgInRpZGFrIGRhcGF0IG1lbWJ1YXQgc29ja2V0IElDTVAgcmF3OiAlcyIKIAotIyBPSwotIzogZGhjcC5jOjEwMAotIywgYy1mb3JtYXQKLW1zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUuIgotbXNnc3RyICJhbGFtYXQgSVAga2VtYmFyICVzIGRhbGFtIGRpcmVrdGlmIGRoY3AtY29uZmlnIgotCi0jIE9LCi0jOiBkaGNwLmM6MTAzCi0jLCBmdXp6eSwgYy1mb3JtYXQKLW1zZ2lkICJpbGxlZ2FsIGRvbWFpbiAlcyBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUuIgotbXNnc3RyICJhbGFtYXQgSVAga2VtYmFyICVzIGRhbGFtIGRpcmVrdGlmIGRoY3AtY29uZmlnIgotCi0jOiBkaGNwLmM6MjIxCisjOiBkaGNwLmM6MjIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcGFja2V0IHJlY2VpdmVkIG9uICVzIHdoaWNoIGhhcyBubyBhZGRyZXNzIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IGRoY3AuYzozNTIKKyM6IGRoY3AuYzozODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCByYW5nZSAlcyAtLSAlcyBpcyBub3QgY29uc2lzdGVudCB3aXRoIG5ldG1hc2sgJXMiCiBtc2dzdHIgImphbmdrYXVhbiBESENQICVzIC0tICVzIHRpZGFrIGtvbnNpc3RlbiBkZW5nYW4gbmV0bWFzayAlcyIKIAogIyBPSwotIzogZGhjcC5jOjY2OQorIzogZGhjcC5jOjcwOQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgJXM6JXMiCiBtc2dzdHIgImdhZ2FsIG1lbWJhY2EgJXM6ICVtIgogCiAjIE9LCi0jOiBkaGNwLmM6NzA0CisjOiBkaGNwLmM6NzQ0CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbGluZSBhdCAlcyBsaW5lICVkIgogbXNnc3RyICJrZXNhbGFoYW4gbmFtYSBwYWRhICVzIGJhcmlzICVkIgogCiAjIE9LCi0jOiBkaGNwLmM6ODI2CisjOiBkaGNwLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCittc2dzdHIgImFsYW1hdCBJUCBrZW1iYXIgJXMgZGFsYW0gZGlyZWt0aWYgZGhjcC1jb25maWciCisKKyMgT0sKKyM6IGRoY3AuYzo4NTAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzIGluICVzLiIKIG1zZ3N0ciAiYWxhbWF0IElQIGtlbWJhciAlcyBkYWxhbSBkaXJla3RpZiBkaGNwLWNvbmZpZyIKIAotIzogZGhjcC5jOjgzMgorIyBPSworIzogZGhjcC5jOjg1OAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiaWxsZWdhbCBkb21haW4gJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKK21zZ3N0ciAiYWxhbWF0IElQIGtlbWJhciAlcyBkYWxhbSBkaXJla3RpZiBkaGNwLWNvbmZpZyIKKworIzogZGhjcC5jOjg2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbGxlZ2FsIGRvbWFpbiAlcyBpbiAlcy4iCiBtc2dzdHIgIiIKIAotIyBPSwotIzogZGhjcC5jOjgzOQotIywgZnV6enksIGMtZm9ybWF0Ci1tc2dpZCAicmVhZCAlcyAtICVkIGhvc3RzIgotbXNnc3RyICJtZW1iYWNhICVzIC0gJWQgYWxhbWF0IgorIzogZGhjcC5jOjg5OQorIywgYy1mb3JtYXQKK21zZ2lkICIlcyBoYXMgbW9yZSB0aGVuIG9uZSBhZGRyZXNzIGluIGhvc3RzZmlsZSwgdXNpbmcgJXMgZm9yIERIQ1AiCittc2dzdHIgIiIKIAogIyBPSwotIzogZGhjcC5jOjg2NgorIzogZGhjcC5jOjkwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyAoJXMpIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZSIKIG1zZ3N0ciAiYWxhbWF0IElQIGtlbWJhciAlcyAoJXMpIGRhbGFtIGRpcmVrdGlmIGRoY3AtY29uZmlnIgogCiAjIE9LCi0jOiBsZWFzZS5jOjU0CisjOiBsZWFzZS5jOjU4CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiBvciBjcmVhdGUgbGVhc2UgZmlsZSAlczogJXMiCiBtc2dzdHIgInRpZGFrIGRhcGF0IG1lbWJ1a2EgYXRhdSBtZW1idWF0IGZpbGUgbGVhc2U6ICVzIgogCiAjIE9LCi0jOiBsZWFzZS5jOjgwCisjOiBsZWFzZS5jOjg0CiBtc2dpZCAidG9vIG1hbnkgc3RvcmVkIGxlYXNlcyIKIG1zZ3N0ciAidGVybGFsdSBiYW55YWsgbGVhc2UgeWFuZyBkaXNpbXBhbiIKIAogIyBPSwotIzogbGVhc2UuYzoxMjEKKyM6IGxlYXNlLmM6MTI1CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcnVuIGxlYXNlLWluaXQgc2NyaXB0ICVzOiAlcyIKIG1zZ3N0ciAidGlkYWsgYmlzYSBtZW1iYWNhICVzOiAlcyIKIAotIzogbGVhc2UuYzoxMjcKKyM6IGxlYXNlLmM6MTMxCiAjLCBjLWZvcm1hdAogbXNnaWQgImxlYXNlLWluaXQgc2NyaXB0IHJldHVybmVkIGV4aXQgY29kZSAlcyIKIG1zZ3N0ciAiIgogCiAjIE9LCi0jOiBsZWFzZS5jOjIzNAorIzogbGVhc2UuYzoyMzgKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byB3cml0ZSAlczogJXMgKHJldHJ5IGluICV1cykiCiBtc2dzdHIgImdhZ2FsIG1lbWJhY2EgJXM6ICVtIgogCiAjIE9LCi0jOiByZmMyMTMxLmM6MzAwCisjOiByZmMyMTMxLmM6MzAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGFkZHJlc3MgcmFuZ2UgYXZhaWxhYmxlIGZvciBESENQIHJlcXVlc3QgJXMgJXMiCiBtc2dzdHIgInRpZGFrIGFkYSBhbGFtYXQgeWFuZyBiaXNhIGRpcGFrYWkgdW50dWsgcGVybWludGFhbiBESENQICVzICVzIgogCiAjIE9LCi0jOiByZmMyMTMxLmM6MzAxCisjOiByZmMyMTMxLmM6MzA0CiBtc2dpZCAid2l0aCBzdWJuZXQgc2VsZWN0b3IiCiBtc2dzdHIgImRlbmdhbiBwZW1pbGloIHN1Ym5ldCIKIAogIyBPSwotIzogcmZjMjEzMS5jOjMwMQorIzogcmZjMjEzMS5jOjMwNAogbXNnaWQgInZpYSIKIG1zZ3N0ciAibGV3YXQiCiAKLSM6IHJmYzIxMzEuYzozMTIKKyM6IHJmYzIxMzEuYzozMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCBwYWNrZXQ6IHRyYW5zYWN0aW9uLWlkIGlzICV1IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMTcKKyM6IHJmYzIxMzEuYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIERIQ1Agc3VibmV0OiAlcy8lcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzE5CisjOiByZmMyMTMxLmM6MzIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBESENQIHJhbmdlOiAlcyAtLSAlcyIKIG1zZ3N0ciAiIgogCiAjIE9LCi0jOiByZmMyMTMxLmM6MzQ3IHJmYzIxMzEuYzozNzgKKyM6IHJmYzIxMzEuYzozNTAgcmZjMjEzMS5jOjM4MQogbXNnaWQgImRpc2FibGVkIgogbXNnc3RyICJkaSBkaXNhYmxlIgogCiAjIE9LCi0jOiByZmMyMTMxLmM6MzkwIHJmYzIxMzEuYzo4NTIKKyM6IHJmYzIxMzEuYzozOTMgcmZjMjEzMS5jOjg3MwogbXNnaWQgImFkZHJlc3MgaW4gdXNlIgogbXNnc3RyICJhbGFtYXQgdGVsYWggZGlndW5ha2FuIgogCiAjIE9LCi0jOiByZmMyMTMxLmM6MzkzCisjOiByZmMyMTMxLmM6Mzk2CiBtc2dpZCAibm8gYWRkcmVzcyBjb25maWd1cmVkIgogbXNnc3RyICJ0YWsgYWRhIGFsYW1hdCB5YW5nIGRpc2V0ZWwiCiAKICMgT0sKLSM6IHJmYzIxMzEuYzo0MDYgcmZjMjEzMS5jOjcyMAorIzogcmZjMjEzMS5jOjQwOSByZmMyMTMxLmM6NzM2CiBtc2dpZCAibm8gYWRkcmVzcyBhdmFpbGFibGUiCiBtc2dzdHIgInRhayBhZGEgYWxhbWF0IHlhbmcgdGVyc2VkaWEiCiAKLSM6IHJmYzIxMzEuYzo0MTYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiTGltaXQgb2YgJWQgbGVhc2VzIGV4Y2VlZGVkLiIKLW1zZ3N0ciAiIgotCiAjIE9LCi0jOiByZmMyMTMxLmM6NDE3IHJmYzIxMzEuYzo4NjIKKyM6IHJmYzIxMzEuYzo0MTggcmZjMjEzMS5jOjg4MwogbXNnaWQgIm5vIGxlYXNlcyBsZWZ0IgogbXNnc3RyICJ0YWsgYWRhIGxlYXNlIHlhbmcgdGVyc2lzYSIKIAogIyBPSwotIzogcmZjMjEzMS5jOjQyMSByZmMyMTMxLmM6ODI2CisjOiByZmMyMTMxLmM6NDIxIHJmYzIxMzEuYzo4NDcKIG1zZ2lkICJ3cm9uZyBuZXR3b3JrIgogbXNnc3RyICJqYXJpbmdhbiB5YW5nIHNhbGFoIgogCi0jOiByZmMyMTMxLmM6NTE5CisjOiByZmMyMTMxLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIklnbm9yaW5nIGRvbWFpbiAlcyBmb3IgREhDUCBob3N0IG5hbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjU5OAorIzogcmZjMjEzMS5jOjYxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJWZW5kb3IgY2xhc3M6ICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo2MDAKKyM6IHJmYzIxMzEuYzo2MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlciBjbGFzczogJXMiCiBtc2dzdHIgIiIKIAogIyBPSwotIzogcmZjMjEzMS5jOjY0MQorIzogcmZjMjEzMS5jOjY1NwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZGlzYWJsaW5nIERIQ1Agc3RhdGljIGFkZHJlc3MgJXMgZm9yICVzIgogbXNnc3RyICJtZW4tZGlzYWJsZSBhbGFtYXQgc3RhdGlrIERIQ1AgJXMiCiAKICMgT0sKLSM6IHJmYzIxMzEuYzo2NjIKKyM6IHJmYzIxMzEuYzo2NzgKIG1zZ2lkICJ1bmtub3duIGxlYXNlIgogbXNnc3RyICJsZWFzZSB0aWRhayBkaWtldGFodWkiCiAKICMgT0sKLSM6IHJmYzIxMzEuYzo2NzEgcmZjMjEzMS5jOjk3MAorIzogcmZjMjEzMS5jOjY4NyByZmMyMTMxLmM6OTkyCiBtc2dpZCAiaWdub3JlZCIKIG1zZ3N0ciAiZGlhYmFpa2FuIgogCi0jOiByZmMyMTMxLmM6NjkxCisjOiByZmMyMTMxLmM6NzA3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCB1c2luZyBjb25maWd1cmVkIGFkZHJlc3MgJXMgYmVjYXVzZSBpdCBpcyBsZWFzZWQgdG8gJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjcwMQorIzogcmZjMjEzMS5jOjcxNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IGlzIGluIHVzZSBieSB0aGUgc2VydmVyIG9yIHJlbGF5IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo3MDQKKyM6IHJmYzIxMzEuYzo3MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IHdhcyBwcmV2aW91c2x5IGRlY2xpbmVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo3MTggcmZjMjEzMS5jOjg1NQorIzogcmZjMjEzMS5jOjczNCByZmMyMTMxLmM6ODc2CiBtc2dpZCAibm8gdW5pcXVlLWlkIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IHJmYzIxMzEuYzo3ODkKKyM6IHJmYzIxMzEuYzo4MDYKIG1zZ2lkICJ3cm9uZyBhZGRyZXNzIgogbXNnc3RyICJhbGFtYXQgc2FsYWgiCiAKICMgT0sKLSM6IHJmYzIxMzEuYzo4MDIKKyM6IHJmYzIxMzEuYzo4MjMKIG1zZ2lkICJsZWFzZSBub3QgZm91bmQiCiBtc2dzdHIgImxlYXNlIHRhayBkaXRlbXVrYW4iCiAKICMgT0sKLSM6IHJmYzIxMzEuYzo4MzQKKyM6IHJmYzIxMzEuYzo4NTUKIG1zZ2lkICJhZGRyZXNzIG5vdCBhdmFpbGFibGUiCiBtc2dzdHIgImFsYW1hdCB0YWsgdGVyc2VkaWEiCiAKICMgT0sKLSM6IHJmYzIxMzEuYzo4NDUKKyM6IHJmYzIxMzEuYzo4NjYKIG1zZ2lkICJzdGF0aWMgbGVhc2UgYXZhaWxhYmxlIgogbXNnc3RyICJsZWFzZSBzdGF0aWsgdGFrIHRlcnNlZGlhIgogCiAjIE9LCi0jOiByZmMyMTMxLmM6ODQ5CisjOiByZmMyMTMxLmM6ODcwCiBtc2dpZCAiYWRkcmVzcyByZXNlcnZlZCIKIG1zZ3N0ciAiYWxhbWF0IHRlbGFoIGRpcGVzYW4iCiAKLSM6IHJmYzIxMzEuYzoxMjUyCisjOiByZmMyMTMxLmM6MTI2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWdzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MTMzNAorIzogcmZjMjEzMS5jOjEzNTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHNlbmQgREhDUC9CT09UUCBvcHRpb24gJWQ6IG5vIHNwYWNlIGxlZnQgaW4gcGFja2V0IgogbXNnc3RyICIiCiAKICMgT0sKLSM6IHJmYzIxMzEuYzoxNDg4CisjOiByZmMyMTMxLmM6MTUwNwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAicmVxdWVzdGVkIG9wdGlvbnM6ICVzIgogbXNnc3RyICJwaWxpaGFuLXBpbGloYW4gc2FhdCBrb21waWxhc2k6ICVzIgogCi0jOiByZmMyMTMxLmM6MTUxOQotIywgYy1mb3JtYXQKLW1zZ2lkICJzZXJ2ZXIgbmFtZTogJXMiCi1tc2dzdHIgIiIKLQotIzogcmZjMjEzMS5jOjE1MzEKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiYm9vdGZpbGUgbmFtZTogJXMiCi1tc2dzdHIgIiIKLQogIyBPSwotIzogcmZjMjEzMS5jOjE1NDAKKyM6IHJmYzIxMzEuYzoxNTU2CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJuZXh0IHNlcnZlcjogJXMiCiBtc2dzdHIgIkRCdXMgZXJyb3I6ICVzIgogCisjOiByZmMyMTMxLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZmlsZSBuYW1lOiAlcyIKK21zZ3N0ciAiIgorCisjOiByZmMyMTMxLmM6MTU4MworIywgYy1mb3JtYXQKK21zZ2lkICJzZXJ2ZXIgbmFtZTogJXMiCittc2dzdHIgIiIKKwogIyBPSwotIzogbmV0bGluay5jOjU5CisjOiBuZXRsaW5rLmM6NjMKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgbmV0bGluayBzb2NrZXQ6ICVzIgogbXNnc3RyICJ0aWRhayBiaXNhIG1lbS1iaW5kIG5ldGxpbmsgc29ja2V0OiAlcyIKIAogIyBPSwotIzogbmV0bGluay5jOjIyNgorIzogbmV0bGluay5jOjIzMAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAibmV0bGluayByZXR1cm5zIGVycm9yOiAlcyIKIG1zZ3N0ciAiREJ1cyBlcnJvcjogJXMiCiAKICMgT0sKLSM6IGRidXMuYzoxMTEKKyM6IGRidXMuYzoxMTUKIG1zZ2lkICJhdHRlbXB0IHRvIHNldCBhbiBJUHY2IHNlcnZlciBhZGRyZXNzIHZpYSBEQnVzIC0gbm8gSVB2NiBzdXBwb3J0IgogbXNnc3RyICIiCiAibWVuY29iYSBtZW55ZXRlbCBzZWJ1YWggYWxhbWF0IElQdjYgc2VydmVyIGxld2F0IERCdXMgLSB0aWRhayBhZGEgZHVrdW5nYW4gIgogInVudHVrIElQdjYiCiAKICMgT0sKLSM6IGRidXMuYzoyMzcKKyM6IGRidXMuYzoyNDEKIG1zZ2lkICJzZXR0aW5nIHVwc3RyZWFtIHNlcnZlcnMgZnJvbSBEQnVzIgogbXNnc3RyICJtZW55ZXRlbCBzZXJ2ZXItc2VydmVyIGRpIGF0YXMgZGVuZ2FuIERCdXMiCiAKICMgT0sKLSM6IGRidXMuYzoyNzUKKyM6IGRidXMuYzoyNzkKIG1zZ2lkICJjb3VsZCBub3QgcmVnaXN0ZXIgYSBEQnVzIG1lc3NhZ2UgaGFuZGxlciIKIG1zZ3N0ciAidGlkYWsgYmlzYSBtZW5kYWZ0YXIgc2VidWFoIERCdXMgbWVzc2FnZSBoYW5kbGVyIgogCiAjIE9LCi0jOiBicGYuYzo0MworIzogYnBmLmM6MTQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgREhDUCBCUEYgc29ja2V0OiAlcyIKIG1zZ3N0ciAidGlkYWsgZGFwYXQgbWVtYnVhdCBzb2NrZXQgREhDUCBCUEY6ICVzIgogCiAjIE9LCi0jOiBicGYuYzo3MQorIzogYnBmLmM6MTc0CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJESENQIHJlcXVlc3QgZm9yIHVuc3VwcG9ydGVkIGhhcmR3YXJlIHR5cGUgKCVkKSByZWNlaXZlZCBvbiAlcyIKIG1zZ3N0ciAiIgogInBlcm1pbnRhYW4gREhDUCB1bnR1ayB0aXBlIGhhcmR3YXJlIHlhbmcgdGlkYWsgZGlkdWt1bmcgKCVkKSBkaXRlcmltYSBwYWRhICVzIgogCi0jOiB0ZnRwLmM6MTU4CisjOiB0ZnRwLmM6MTczCittc2dpZCAidW5hYmxlIHRvIGdldCBmcmVlIHBvcnQgZm9yIFRGVFAiCittc2dzdHIgIiIKKworIzogdGZ0cC5jOjE4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnN1cHBvcnRlZCByZXF1ZXN0IGZyb20gJXMiCiBtc2dzdHIgIiIKIAotIzogdGZ0cC5jOjIzNgorIzogdGZ0cC5jOjI2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJURlRQIHNlbnQgJXMgdG8gJXMiCiBtc2dzdHIgIiIKIAogIyBPSwotIzogdGZ0cC5jOjI1OQorIzogdGZ0cC5jOjI4OQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmlsZSAlcyBub3QgZm91bmQiCiBtc2dzdHIgImxlYXNlIHRhayBkaXRlbXVrYW4iCiAKLSM6IHRmdHAuYzozNjkKKyM6IHRmdHAuYzozOTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVEZUUCBlcnJvciAlZCAlcyByZWNlaXZlZCBmcm9tICVzIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IHRmdHAuYzo0MDAKKyM6IHRmdHAuYzo0MzAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgZmFpbGVkIHNlbmRpbmcgJXMgdG8gJXMiCiBtc2dzdHIgImdhZ2FsIG1lbWJhY2EgJXM6ICVtIgogCiAjIE9LCi0jOiBsb2cuYzo2OQorIzogbG9nLmM6NzMKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKIG1zZ3N0ciAidGlkYWsgYmlzYSBtZW1idWthICVzOiVzIgogCi0jOiBsb2cuYzoxNDYKKyMgT0sKKyM6IGxvZy5jOjg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmYWlsZWQgdG8gY2hhbmdlIG93bmVyIG9mICVzOiAlcyIKK21zZ3N0ciAiZ2FnYWwgbWVtdWF0IG5hbWEtbmFtYSBkYXJpICVzOiAlbSIKKworIzogbG9nLmM6MTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm92ZXJmbG93OiAlZCBsb2cgZW50cmllcyBsb3N0IgogbXNnc3RyICIiCiAKLSM6IGxvZy5jOjIyMworIzogbG9nLmM6MjM4CiAjLCBjLWZvcm1hdAogbXNnaWQgImxvZyBmYWlsZWQ6ICVzIgogbXNnc3RyICIiCiAKICMgT0sKLSM6IGxvZy5jOjM3OAorIzogbG9nLmM6Mzk0CiBtc2dpZCAiRkFJTEVEIHRvIHN0YXJ0IHVwIgogbXNnc3RyICJHQUdBTCB1bnR1ayBtZW11bGFpIgogCiAjIE9LCisjLCBmdXp6eQorI34gbXNnaWQgInJlYWQgJXMgLSAlZCBob3N0cyIKKyN+IG1zZ3N0ciAibWVtYmFjYSAlcyAtICVkIGFsYW1hdCIKKworIyBPSwogI34gbXNnaWQgImJhZCBkaGNwLWhvc3QiCiAjfiBtc2dzdHIgImRoY3AtaG9zdCBzYWxhaCIKIApkaWZmIC0tZ2l0IGEvcG8vaXQucG8gYi9wby9pdC5wbwppbmRleCAzMWQyNGE3Li5jMDEyZDNlIDEwMDY0NAotLS0gYS9wby9pdC5wbworKysgYi9wby9pdC5wbwpAQCAtNiw3ICs2LDcgQEAKIG1zZ3N0ciAiIgogIlByb2plY3QtSWQtVmVyc2lvbjogZG5zbWFzcSAyLjMyXG4iCiAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgotIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA3LTA4LTI5IDExOjA5KzAxMDBcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwOC0wMi0xMiAxMTowNCswMDAwXG4iCiAiUE8tUmV2aXNpb24tRGF0ZTogMjAwNi0wNS0yMiAxMTowOSswMTAwXG4iCiAiTGFzdC1UcmFuc2xhdG9yOiBTaW1vbiBLZWxsZXkgPHNpbW9uQHRoZWtlbGxleXMub3JnLnVrPlxuIgogIkxhbmd1YWdlLVRlYW06IEl0YWxpYW4gPHRwQGxpc3RzLmxpbnV4Lml0PlxuIgpAQCAtMTUsMTIxMyArMTUsMTMwNyBAQAogIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKICJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKIAotIzogY2FjaGUuYzo2NzEKKyM6IGNhY2hlLmM6NjgwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsb2FkIG5hbWVzIGZyb20gJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IGNhY2hlLmM6NzA1IGRoY3AuYzo3MTcKKyM6IGNhY2hlLmM6NzE0IGRoY3AuYzo3NTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIGFkZHJlc3MgYXQgJXMgbGluZSAlZCIKIG1zZ3N0ciAiIgogCi0jOiBjYWNoZS5jOjc1MiBkaGNwLmM6NzMxCisjOiBjYWNoZS5jOjc2MSBkaGNwLmM6NzcxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBuYW1lIGF0ICVzIGxpbmUgJWQiCiBtc2dzdHIgIiIKIAotIzogY2FjaGUuYzo3NTkgZGhjcC5jOjc4NQorIzogY2FjaGUuYzo3NjggZGhjcC5jOjgyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWFkICVzIC0gJWQgYWRkcmVzc2VzIgogbXNnc3RyICIiCiAKLSM6IGNhY2hlLmM6Nzk3CisjOiBjYWNoZS5jOjgwNgogbXNnaWQgImNsZWFyZWQgY2FjaGUiCiBtc2dzdHIgIiIKIAotIzogY2FjaGUuYzo4NDQKKyM6IGNhY2hlLmM6ODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3QgZ2l2aW5nIG5hbWUgJXMgdG8gdGhlIERIQ1AgbGVhc2Ugb2YgJXMgYmVjYXVzZSB0aGUgbmFtZSBleGlzdHMgaW4gJXMgIgogIndpdGggYWRkcmVzcyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBjYWNoZS5jOjg4NAorIzogY2FjaGUuYzo5MDcKICMsIGMtZm9ybWF0Ci1tc2dpZCAiIgotInRpbWUgJWx1LCBjYWNoZSBzaXplICVkLCAlZC8lZCBjYWNoZSBpbnNlcnRpb25zIHJlLXVzZWQgdW5leHBpcmVkIGNhY2hlICIKLSJlbnRyaWVzLiIKK21zZ2lkICJ0aW1lICVsdSIKIG1zZ3N0ciAiIgogCi0jOiB1dGlsLmM6MTU3IG9wdGlvbi5jOjc1OAorIzogY2FjaGUuYzo5MDgKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2FjaGUgc2l6ZSAlZCwgJWQvJWQgY2FjaGUgaW5zZXJ0aW9ucyByZS11c2VkIHVuZXhwaXJlZCBjYWNoZSBlbnRyaWVzLiIKK21zZ3N0ciAiIgorCisjOiBjYWNoZS5jOjkxMAorIywgYy1mb3JtYXQKK21zZ2lkICJxdWVyaWVzIGZvcndhcmRlZCAldSwgcXVlcmllcyBhbnN3ZXJlZCBsb2NhbGx5ICV1IgorbXNnc3RyICIiCisKKyM6IGNhY2hlLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlcnZlciAlcyMlZDogcXVlcmllcyBzZW50ICV1LCByZXRyaWVkIG9yIGZhaWxlZCAldSIKK21zZ3N0ciAiIgorCisjOiB1dGlsLmM6MTYwCiBtc2dpZCAiY291bGQgbm90IGdldCBtZW1vcnkiCiBtc2dzdHIgIiIKIAotIzogdXRpbC5jOjE2NworIzogdXRpbC5jOjE3MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gYWxsb2NhdGUgJWQgYnl0ZXMiCiBtc2dzdHIgIiIKIAotIzogdXRpbC5jOjI3MgorIzogdXRpbC5jOjI3NQogIywgYy1mb3JtYXQKIG1zZ2lkICJpbmZpbml0ZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxODgKKyM6IG9wdGlvbi5jOjI0NAogbXNnaWQgIlNwZWNpZnkgbG9jYWwgYWRkcmVzcyhlcykgdG8gbGlzdGVuIG9uLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxODkKKyM6IG9wdGlvbi5jOjI0NQogbXNnaWQgIlJldHVybiBpcGFkZHIgZm9yIGFsbCBob3N0cyBpbiBzcGVjaWZpZWQgZG9tYWlucy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTkwCisjOiBvcHRpb24uYzoyNDYKIG1zZ2lkICJGYWtlIHJldmVyc2UgbG9va3VwcyBmb3IgUkZDMTkxOCBwcml2YXRlIGFkZHJlc3MgcmFuZ2VzLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTEKKyM6IG9wdGlvbi5jOjI0NwogbXNnaWQgIlRyZWF0IGlwYWRkciBhcyBOWERPTUFJTiAoZGVmZWF0cyBWZXJpc2lnbiB3aWxkY2FyZCkuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5MgorIzogb3B0aW9uLmM6MjQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIGNhY2hlIGluIGVudHJpZXMgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTkzCisjOiBvcHRpb24uYzoyNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBjb25maWd1cmF0aW9uIGZpbGUgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTk0CisjOiBvcHRpb24uYzoyNTAKIG1zZ2lkICJEbyBOT1QgZm9yayBpbnRvIHRoZSBiYWNrZ3JvdW5kOiBydW4gaW4gZGVidWcgbW9kZS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTk1CisjOiBvcHRpb24uYzoyNTEKIG1zZ2lkICJEbyBOT1QgZm9yd2FyZCBxdWVyaWVzIHdpdGggbm8gZG9tYWluIHBhcnQuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5NgorIzogb3B0aW9uLmM6MjUyCiBtc2dpZCAiUmV0dXJuIHNlbGYtcG9pbnRpbmcgTVggcmVjb3JkcyBmb3IgbG9jYWwgaG9zdHMuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5NworIzogb3B0aW9uLmM6MjUzCiBtc2dpZCAiRXhwYW5kIHNpbXBsZSBuYW1lcyBpbiAvZXRjL2hvc3RzIHdpdGggZG9tYWluLXN1ZmZpeC4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTk4CisjOiBvcHRpb24uYzoyNTQKIG1zZ2lkICJEb24ndCBmb3J3YXJkIHNwdXJpb3VzIEROUyByZXF1ZXN0cyBmcm9tIFdpbmRvd3MgaG9zdHMuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5OQorIzogb3B0aW9uLmM6MjU1CiBtc2dpZCAiRW5hYmxlIERIQ1AgaW4gdGhlIHJhbmdlIGdpdmVuIHdpdGggbGVhc2UgZHVyYXRpb24uIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMAorIzogb3B0aW9uLmM6MjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoYW5nZSB0byB0aGlzIGdyb3VwIGFmdGVyIHN0YXJ0dXAgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjAxCisjOiBvcHRpb24uYzoyNTcKIG1zZ2lkICJTZXQgYWRkcmVzcyBvciBob3N0bmFtZSBmb3IgYSBzcGVjaWZpZWQgbWFjaGluZS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjAyCisjOiBvcHRpb24uYzoyNTgKIG1zZ2lkICJSZWFkIERIQ1AgaG9zdCBzcGVjcyBmcm9tIGZpbGUiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjAzCi0jLCBjLWZvcm1hdAotbXNnaWQgIkRvIE5PVCBsb2FkICVzIGZpbGUuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIwNAotIywgYy1mb3JtYXQKLW1zZ2lkICJTcGVjaWZ5IGEgaG9zdHMgZmlsZSB0byBiZSByZWFkIGluIGFkZGl0aW9uIHRvICVzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMDUKLW1zZ2lkICJTcGVjaWZ5IGludGVyZmFjZShzKSB0byBsaXN0ZW4gb24uIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIwNgotbXNnaWQgIlNwZWNpZnkgaW50ZXJmYWNlKHMpIE5PVCB0byBsaXN0ZW4gb24uIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIwNwotbXNnaWQgIk1hcCBESENQIHVzZXIgY2xhc3MgdG8gdGFnLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMDgKLW1zZ2lkICJNYXAgUkZDMzA0NiBjaXJjdWl0LWlkIHRvIHRhZy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjA5Ci1tc2dpZCAiTWFwIFJGQzMwNDYgcmVtb3RlLWlkIHRvIHRhZy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjEwCi1tc2dpZCAiTWFwIFJGQzM5OTMgc3Vic2NyaWJlci1pZCB0byB0YWcuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxMQotbXNnaWQgIkRvbid0IGRvIERIQ1AgZm9yIGhvc3RzIHdpdGggdGFnIHNldC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjEyCi1tc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZCwgZG8gTk9UIHJ1biBpbiBkZWJ1ZyBtb2RlLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTMKLW1zZ2lkICJBc3N1bWUgd2UgYXJlIHRoZSBvbmx5IERIQ1Agc2VydmVyIG9uIHRoZSBsb2NhbCBuZXR3b3JrLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiU3BlY2lmeSB3aGVyZSB0byBzdG9yZSBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTUKLW1zZ2lkICJSZXR1cm4gTVggcmVjb3JkcyBmb3IgbG9jYWwgaG9zdHMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxNgotbXNnaWQgIlNwZWNpZnkgYW4gTVggcmVjb3JkLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTcKLW1zZ2lkICJTcGVjaWZ5IEJPT1RQIG9wdGlvbnMgdG8gREhDUCBzZXJ2ZXIuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxOAotIywgYy1mb3JtYXQKLW1zZ2lkICJEbyBOT1QgcG9sbCAlcyBmaWxlLCByZWxvYWQgb25seSBvbiBTSUdIVVAuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxOQotbXNnaWQgIkRvIE5PVCBjYWNoZSBmYWlsZWQgc2VhcmNoIHJlc3VsdHMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyMAotIywgYy1mb3JtYXQKLW1zZ2lkICJVc2UgbmFtZXNlcnZlcnMgc3RyaWN0bHkgaW4gdGhlIG9yZGVyIGdpdmVuIGluICVzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjEKLW1zZ2lkICJTcGVjaWZ5IG9wdGlvbnMgdG8gYmUgc2VudCB0byBESENQIGNsaWVudHMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyMgotbXNnaWQgIkRIQ1Agb3B0aW9uIHNlbnQgZXZlbiBpZiB0aGUgY2xpZW50IGRvZXMgbm90IHJlcXVlc3QgaXQuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyMwotbXNnaWQgIlNwZWNpZnkgcG9ydCB0byBsaXN0ZW4gZm9yIEROUyByZXF1ZXN0cyBvbiAoZGVmYXVsdHMgdG8gNTMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiTWF4aW11bSBzdXBwb3J0ZWQgVURQIHBhY2tldCBzaXplIGZvciBFRE5TLjAgKGRlZmF1bHRzIHRvICVzKS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjI1Ci1tc2dpZCAiTG9nIHF1ZXJpZXMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyNgotbXNnaWQgIkZvcmNlIHRoZSBvcmlnaW5hdGluZyBwb3J0IGZvciB1cHN0cmVhbSBxdWVyaWVzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjcKLW1zZ2lkICJEbyBOT1QgcmVhZCByZXNvbHYuY29uZi4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjI4Ci0jLCBjLWZvcm1hdAotbXNnaWQgIlNwZWNpZnkgcGF0aCB0byByZXNvbHYuY29uZiAoZGVmYXVsdHMgdG8gJXMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjkKLW1zZ2lkICJTcGVjaWZ5IGFkZHJlc3MoZXMpIG9mIHVwc3RyZWFtIHNlcnZlcnMgd2l0aCBvcHRpb25hbCBkb21haW5zLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzAKLW1zZ2lkICJOZXZlciBmb3J3YXJkIHF1ZXJpZXMgdG8gc3BlY2lmaWVkIGRvbWFpbnMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIzMQotbXNnaWQgIlNwZWNpZnkgdGhlIGRvbWFpbiB0byBiZSBhc3NpZ25lZCBpbiBESENQIGxlYXNlcy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjMyCi1tc2dpZCAiU3BlY2lmeSBkZWZhdWx0IHRhcmdldCBpbiBhbiBNWCByZWNvcmQuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIzMwotbXNnaWQgIlNwZWNpZnkgdGltZS10by1saXZlIGluIHNlY29uZHMgZm9yIHJlcGxpZXMgZnJvbSAvZXRjL2hvc3RzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiQ2hhbmdlIHRvIHRoaXMgdXNlciBhZnRlciBzdGFydHVwLiAoZGVmYXVsdHMgdG8gJXMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzUKLW1zZ2lkICJNYXAgREhDUCB2ZW5kb3IgY2xhc3MgdG8gdGFnLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzYKLW1zZ2lkICJEaXNwbGF5IGRuc21hc3EgdmVyc2lvbiBhbmQgY29weXJpZ2h0IGluZm9ybWF0aW9uLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzcKLW1zZ2lkICJUcmFuc2xhdGUgSVB2NCBhZGRyZXNzZXMgZnJvbSB1cHN0cmVhbSBzZXJ2ZXJzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzgKLW1zZ2lkICJTcGVjaWZ5IGEgU1JWIHJlY29yZC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM5Ci1tc2dpZCAiRGlzcGxheSB0aGlzIG1lc3NhZ2UuIFVzZSAtLWhlbHAgZGhjcCBmb3Iga25vd24gREhDUCBvcHRpb25zLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDAKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiU3BlY2lmeSBwYXRoIG9mIFBJRCBmaWxlIChkZWZhdWx0cyB0byAlcykuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI0MQotIywgYy1mb3JtYXQKLW1zZ2lkICJTcGVjaWZ5IG1heGltdW0gbnVtYmVyIG9mIERIQ1AgbGVhc2VzIChkZWZhdWx0cyB0byAlcykuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI0MgotbXNnaWQgIkFuc3dlciBETlMgcXVlcmllcyBiYXNlZCBvbiB0aGUgaW50ZXJmYWNlIGEgcXVlcnkgd2FzIHNlbnQgdG8uIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI0MwotbXNnaWQgIlNwZWNpZnkgVFhUIEROUyByZWNvcmQuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI0NAotbXNnaWQgIlNwZWNpZnkgUFRSIEROUyByZWNvcmQuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI0NQotbXNnaWQgIkdpdmUgRE5TIG5hbWUgdG8gSVB2NCBhZGRyZXNzIG9mIGludGVyZmFjZS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQ2Ci1tc2dpZCAiQmluZCBvbmx5IHRvIGludGVyZmFjZXMgaW4gdXNlLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDcKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiUmVhZCBESENQIHN0YXRpYyBob3N0IGluZm9ybWF0aW9uIGZyb20gJXMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI0OAotbXNnaWQgIkVuYWJsZSB0aGUgREJ1cyBpbnRlcmZhY2UgZm9yIHNldHRpbmcgdXBzdHJlYW0gc2VydmVycywgZXRjLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDkKLW1zZ2lkICJEbyBub3QgcHJvdmlkZSBESENQIG9uIHRoaXMgaW50ZXJmYWNlLCBvbmx5IHByb3ZpZGUgRE5TLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNTAKLW1zZ2lkICJFbmFibGUgZHluYW1pYyBhZGRyZXNzIGFsbG9jYXRpb24gZm9yIGJvb3RwLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNTEKLW1zZ2lkICJNYXAgTUFDIGFkZHJlc3MgKHdpdGggd2lsZGNhcmRzKSB0byBvcHRpb24gc2V0LiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNTMKLW1zZ2lkICJUcmVhdCBESENQIHJlcXVlc3RzIG9uIGFsaWFzZXMgYXMgYXJyaXZpbmcgZnJvbSBpbnRlcmZhY2UuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI1NQotbXNnaWQgIkRpc2FibGUgSUNNUCBlY2hvIGFkZHJlc3MgY2hlY2tpbmcgaW4gdGhlIERIQ1Agc2VydmVyLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNTYKLW1zZ2lkICJTY3JpcHQgdG8gcnVuIG9uIERIQ1AgbGVhc2UgY3JlYXRpb24gYW5kIGRlc3RydWN0aW9uLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNTcKLW1zZ2lkICJSZWFkIGNvbmZpZ3VyYXRpb24gZnJvbSBhbGwgdGhlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNTgKLW1zZ2lkICJMb2cgdG8gdGhpcyBzeXNsb2cgZmFjaWxpdHkgb3IgZmlsZS4gKGRlZmF1bHRzIHRvIERBRU1PTikiCi1tc2dzdHIgIiIKLQogIzogb3B0aW9uLmM6MjU5Ci1tc2dpZCAiUmVhZCBsZWFzZXMgYXQgc3RhcnR1cCwgYnV0IG5ldmVyIHdyaXRlIHRoZSBsZWFzZSBmaWxlLiIKK21zZ2lkICJSZWFkIERIQ1Agb3B0aW9uIHNwZWNzIGZyb20gZmlsZSIKIG1zZ3N0ciAiIgogCiAjOiBvcHRpb24uYzoyNjAKICMsIGMtZm9ybWF0Ci1tc2dpZCAiTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBETlMgcXVlcmllcy4gKGRlZmF1bHRzIHRvICVzKSIKK21zZ2lkICJEbyBOT1QgbG9hZCAlcyBmaWxlLiIKIG1zZ3N0ciAiIgogCiAjOiBvcHRpb24uYzoyNjEKICMsIGMtZm9ybWF0Ci1tc2dpZCAiQ2xlYXIgRE5TIGNhY2hlIHdoZW4gcmVsb2FkaW5nICVzLiIKK21zZ2lkICJTcGVjaWZ5IGEgaG9zdHMgZmlsZSB0byBiZSByZWFkIGluIGFkZGl0aW9uIHRvICVzLiIKIG1zZ3N0ciAiIgogCiAjOiBvcHRpb24uYzoyNjIKLW1zZ2lkICJJZ25vcmUgaG9zdG5hbWVzIHByb3ZpZGVkIGJ5IERIQ1AgY2xpZW50cy4iCittc2dpZCAiU3BlY2lmeSBpbnRlcmZhY2UocykgdG8gbGlzdGVuIG9uLiIKIG1zZ3N0ciAiIgogCiAjOiBvcHRpb24uYzoyNjMKLW1zZ2lkICJFbmFibGUgaW50ZWdyYXRlZCByZWFkLW9ubHkgVEZUUCBzZXJ2ZXIuIgorbXNnaWQgIlNwZWNpZnkgaW50ZXJmYWNlKHMpIE5PVCB0byBsaXN0ZW4gb24uIgogbXNnc3RyICIiCiAKICM6IG9wdGlvbi5jOjI2NAotbXNnaWQgIkV4cG9ydCBmaWxlcyBieSBURlRQIG9ubHkgZnJvbSB0aGUgc3BlY2lmaWVkIHN1YnRyZWUuIgorbXNnaWQgIk1hcCBESENQIHVzZXIgY2xhc3MgdG8gdGFnLiIKIG1zZ3N0ciAiIgogCiAjOiBvcHRpb24uYzoyNjUKLW1zZ2lkICJBZGQgY2xpZW50IElQIGFkZHJlc3MgdG8gdGZ0cC1yb290LiIKK21zZ2lkICJNYXAgUkZDMzA0NiBjaXJjdWl0LWlkIHRvIHRhZy4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjY2Ci1tc2dpZCAiQWxsb3cgYWNjZXNzIG9ubHkgdG8gZmlsZXMgb3duZWQgYnkgdGhlIHVzZXIgcnVubmluZyBkbnNtYXNxLiIKK21zZ2lkICJNYXAgUkZDMzA0NiByZW1vdGUtaWQgdG8gdGFnLiIKIG1zZ3N0ciAiIgogCiAjOiBvcHRpb24uYzoyNjcKK21zZ2lkICJNYXAgUkZDMzk5MyBzdWJzY3JpYmVyLWlkIHRvIHRhZy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjY4Cittc2dpZCAiRG9uJ3QgZG8gREhDUCBmb3IgaG9zdHMgd2l0aCB0YWcgc2V0LiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNjkKK21zZ2lkICJGb3JjZSBicm9hZGNhc3QgcmVwbGllcyBmb3IgaG9zdHMgd2l0aCB0YWcgc2V0LiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzAKK21zZ2lkICJEbyBOT1QgZm9yayBpbnRvIHRoZSBiYWNrZ3JvdW5kLCBkbyBOT1QgcnVuIGluIGRlYnVnIG1vZGUuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3MQorbXNnaWQgIkFzc3VtZSB3ZSBhcmUgdGhlIG9ubHkgREhDUCBzZXJ2ZXIgb24gdGhlIGxvY2FsIG5ldHdvcmsuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3MgorIywgYy1mb3JtYXQKK21zZ2lkICJTcGVjaWZ5IHdoZXJlIHRvIHN0b3JlIERIQ1AgbGVhc2VzIChkZWZhdWx0cyB0byAlcykuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3MworbXNnaWQgIlJldHVybiBNWCByZWNvcmRzIGZvciBsb2NhbCBob3N0cy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjc0Cittc2dpZCAiU3BlY2lmeSBhbiBNWCByZWNvcmQuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3NQorbXNnaWQgIlNwZWNpZnkgQk9PVFAgb3B0aW9ucyB0byBESENQIHNlcnZlci4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjc2CisjLCBjLWZvcm1hdAorbXNnaWQgIkRvIE5PVCBwb2xsICVzIGZpbGUsIHJlbG9hZCBvbmx5IG9uIFNJR0hVUC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjc3Cittc2dpZCAiRG8gTk9UIGNhY2hlIGZhaWxlZCBzZWFyY2ggcmVzdWx0cy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjc4CisjLCBjLWZvcm1hdAorbXNnaWQgIlVzZSBuYW1lc2VydmVycyBzdHJpY3RseSBpbiB0aGUgb3JkZXIgZ2l2ZW4gaW4gJXMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3OQorbXNnaWQgIlNwZWNpZnkgb3B0aW9ucyB0byBiZSBzZW50IHRvIERIQ1AgY2xpZW50cy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjgwCittc2dpZCAiREhDUCBvcHRpb24gc2VudCBldmVuIGlmIHRoZSBjbGllbnQgZG9lcyBub3QgcmVxdWVzdCBpdC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjgxCittc2dpZCAiU3BlY2lmeSBwb3J0IHRvIGxpc3RlbiBmb3IgRE5TIHJlcXVlc3RzIG9uIChkZWZhdWx0cyB0byA1MykuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4MgorIywgYy1mb3JtYXQKK21zZ2lkICJNYXhpbXVtIHN1cHBvcnRlZCBVRFAgcGFja2V0IHNpemUgZm9yIEVETlMuMCAoZGVmYXVsdHMgdG8gJXMpLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODMKK21zZ2lkICJMb2cgRE5TIHF1ZXJpZXMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4NAorbXNnaWQgIkZvcmNlIHRoZSBvcmlnaW5hdGluZyBwb3J0IGZvciB1cHN0cmVhbSBETlMgcXVlcmllcy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjg1Cittc2dpZCAiRG8gTk9UIHJlYWQgcmVzb2x2LmNvbmYuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4NgorIywgYy1mb3JtYXQKK21zZ2lkICJTcGVjaWZ5IHBhdGggdG8gcmVzb2x2LmNvbmYgKGRlZmF1bHRzIHRvICVzKS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjg3Cittc2dpZCAiU3BlY2lmeSBhZGRyZXNzKGVzKSBvZiB1cHN0cmVhbSBzZXJ2ZXJzIHdpdGggb3B0aW9uYWwgZG9tYWlucy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjg4Cittc2dpZCAiTmV2ZXIgZm9yd2FyZCBxdWVyaWVzIHRvIHNwZWNpZmllZCBkb21haW5zLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODkKK21zZ2lkICJTcGVjaWZ5IHRoZSBkb21haW4gdG8gYmUgYXNzaWduZWQgaW4gREhDUCBsZWFzZXMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5MAorbXNnaWQgIlNwZWNpZnkgZGVmYXVsdCB0YXJnZXQgaW4gYW4gTVggcmVjb3JkLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTEKK21zZ2lkICJTcGVjaWZ5IHRpbWUtdG8tbGl2ZSBpbiBzZWNvbmRzIGZvciByZXBsaWVzIGZyb20gL2V0Yy9ob3N0cy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjkyCittc2dpZCAiU3BlY2lmeSB0aW1lLXRvLWxpdmUgaW4gc2Vjb25kcyBmb3IgbmVnYXRpdmUgY2FjaGluZy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjkzCisjLCBjLWZvcm1hdAorbXNnaWQgIkNoYW5nZSB0byB0aGlzIHVzZXIgYWZ0ZXIgc3RhcnR1cC4gKGRlZmF1bHRzIHRvICVzKS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjk0Cittc2dpZCAiTWFwIERIQ1AgdmVuZG9yIGNsYXNzIHRvIHRhZy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjk1Cittc2dpZCAiRGlzcGxheSBkbnNtYXNxIHZlcnNpb24gYW5kIGNvcHlyaWdodCBpbmZvcm1hdGlvbi4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjk2Cittc2dpZCAiVHJhbnNsYXRlIElQdjQgYWRkcmVzc2VzIGZyb20gdXBzdHJlYW0gc2VydmVycy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjk3Cittc2dpZCAiU3BlY2lmeSBhIFNSViByZWNvcmQuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5OAorbXNnaWQgIkRpc3BsYXkgdGhpcyBtZXNzYWdlLiBVc2UgLS1oZWxwIGRoY3AgZm9yIGtub3duIERIQ1Agb3B0aW9ucy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjk5CisjLCBjLWZvcm1hdAorbXNnaWQgIlNwZWNpZnkgcGF0aCBvZiBQSUQgZmlsZSAoZGVmYXVsdHMgdG8gJXMpLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMDAKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3BlY2lmeSBtYXhpbXVtIG51bWJlciBvZiBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMDEKK21zZ2lkICJBbnN3ZXIgRE5TIHF1ZXJpZXMgYmFzZWQgb24gdGhlIGludGVyZmFjZSBhIHF1ZXJ5IHdhcyBzZW50IHRvLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMDIKK21zZ2lkICJTcGVjaWZ5IFRYVCBETlMgcmVjb3JkLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMDMKK21zZ2lkICJTcGVjaWZ5IFBUUiBETlMgcmVjb3JkLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMDQKK21zZ2lkICJHaXZlIEROUyBuYW1lIHRvIElQdjQgYWRkcmVzcyBvZiBpbnRlcmZhY2UuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMwNQorbXNnaWQgIkJpbmQgb25seSB0byBpbnRlcmZhY2VzIGluIHVzZS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzA2CisjLCBjLWZvcm1hdAorbXNnaWQgIlJlYWQgREhDUCBzdGF0aWMgaG9zdCBpbmZvcm1hdGlvbiBmcm9tICVzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMDcKK21zZ2lkICJFbmFibGUgdGhlIERCdXMgaW50ZXJmYWNlIGZvciBzZXR0aW5nIHVwc3RyZWFtIHNlcnZlcnMsIGV0Yy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzA4Cittc2dpZCAiRG8gbm90IHByb3ZpZGUgREhDUCBvbiB0aGlzIGludGVyZmFjZSwgb25seSBwcm92aWRlIEROUy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzA5Cittc2dpZCAiRW5hYmxlIGR5bmFtaWMgYWRkcmVzcyBhbGxvY2F0aW9uIGZvciBib290cC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzEwCittc2dpZCAiTWFwIE1BQyBhZGRyZXNzICh3aXRoIHdpbGRjYXJkcykgdG8gb3B0aW9uIHNldC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzEyCittc2dpZCAiVHJlYXQgREhDUCByZXF1ZXN0cyBvbiBhbGlhc2VzIGFzIGFycml2aW5nIGZyb20gaW50ZXJmYWNlLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMTQKK21zZ2lkICJEaXNhYmxlIElDTVAgZWNobyBhZGRyZXNzIGNoZWNraW5nIGluIHRoZSBESENQIHNlcnZlci4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzE1Cittc2dpZCAiU2NyaXB0IHRvIHJ1biBvbiBESENQIGxlYXNlIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbi4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzE2Cittc2dpZCAiUmVhZCBjb25maWd1cmF0aW9uIGZyb20gYWxsIHRoZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzE3Cittc2dpZCAiTG9nIHRvIHRoaXMgc3lzbG9nIGZhY2lsaXR5IG9yIGZpbGUuIChkZWZhdWx0cyB0byBEQUVNT04pIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxOAorbXNnaWQgIlJlYWQgbGVhc2VzIGF0IHN0YXJ0dXAsIGJ1dCBuZXZlciB3cml0ZSB0aGUgbGVhc2UgZmlsZS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzE5CisjLCBjLWZvcm1hdAorbXNnaWQgIk1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgRE5TIHF1ZXJpZXMuIChkZWZhdWx0cyB0byAlcykiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzIwCisjLCBjLWZvcm1hdAorbXNnaWQgIkNsZWFyIEROUyBjYWNoZSB3aGVuIHJlbG9hZGluZyAlcy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzIxCittc2dpZCAiSWdub3JlIGhvc3RuYW1lcyBwcm92aWRlZCBieSBESENQIGNsaWVudHMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyMgorbXNnaWQgIkRvIE5PVCByZXVzZSBmaWxlbmFtZSBhbmQgc2VydmVyIGZpZWxkcyBmb3IgZXh0cmEgREhDUCBvcHRpb25zLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjMKK21zZ2lkICJFbmFibGUgaW50ZWdyYXRlZCByZWFkLW9ubHkgVEZUUCBzZXJ2ZXIuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyNAorbXNnaWQgIkV4cG9ydCBmaWxlcyBieSBURlRQIG9ubHkgZnJvbSB0aGUgc3BlY2lmaWVkIHN1YnRyZWUuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyNQorbXNnaWQgIkFkZCBjbGllbnQgSVAgYWRkcmVzcyB0byB0ZnRwLXJvb3QuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyNgorbXNnaWQgIkFsbG93IGFjY2VzcyBvbmx5IHRvIGZpbGVzIG93bmVkIGJ5IHRoZSB1c2VyIHJ1bm5pbmcgZG5zbWFzcS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzI3CiAjLCBjLWZvcm1hdAogbXNnaWQgIk1heGltdW0gbnVtYmVyIG9mIGNvbm5jdXJyZW50IFRGVFAgdHJhbnNmZXJzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI2OAorIzogb3B0aW9uLmM6MzI4CiBtc2dpZCAiRGlzYWJsZSB0aGUgVEZUUCBibG9ja3NpemUgZXh0ZW5zaW9uLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjkKKyM6IG9wdGlvbi5jOjMyOQorbXNnaWQgIkVwaGVtZXJhbCBwb3J0IHJhbmdlIGZvciB1c2UgYnkgVEZUUCB0cmFuc2ZlcnMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMzMAogbXNnaWQgIkV4dHJhIGxvZ2dpbmcgZm9yIERIQ1AuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI3MAorIzogb3B0aW9uLmM6MzMxCiBtc2dpZCAiRW5hYmxlIGFzeW5jLiBsb2dnaW5nOyBvcHRpb25hbGx5IHNldCBxdWV1ZSBsZW5ndGguIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjUwMQorIzogb3B0aW9uLmM6MzMyCittc2dpZCAiU3RvcCBETlMgcmViaW5kaW5nLiBGaWx0ZXIgcHJpdmF0ZSBJUCByYW5nZXMgd2hlbiByZXNvbHZpbmcuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMzMworbXNnaWQgIkFsd2F5cyBwZXJmb3JtIEROUyBxdWVyaWVzIHRvIGFsbCBzZXJ2ZXJzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzQKK21zZ2lkICJTZXQgdGFnIGlmIGNsaWVudCBpbmNsdWRlcyBvcHRpb24gaW4gcmVxdWVzdC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6NTg1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJVc2FnZTogZG5zbWFzcSBbb3B0aW9uc11cbiIKICJcbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo1MDMKKyM6IG9wdGlvbi5jOjU4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2Ugc2hvcnQgb3B0aW9ucyBvbmx5IG9uIHRoZSBjb21tYW5kIGxpbmUuXG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6NTA1CisjOiBvcHRpb24uYzo1ODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVmFsaWQgb3B0aW9ucyBhcmUgOlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjUyNgorIzogb3B0aW9uLmM6NjEwCiAjLCBjLWZvcm1hdAogbXNnaWQgIktub3duIERIQ1Agb3B0aW9uczpcbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo1OTkKKyM6IG9wdGlvbi5jOjY4MwogbXNnaWQgImJhZCBkaGNwLW9wdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo2NTUKKyM6IG9wdGlvbi5jOjczOQogbXNnaWQgImJhZCBJUCBhZGRyZXNzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjc1MworIzogb3B0aW9uLmM6ODM3CiBtc2dpZCAiYmFkIGRvbWFpbiBpbiBkaGNwLW9wdGlvbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo4MDkKKyM6IG9wdGlvbi5jOjg5NQogbXNnaWQgImRoY3Atb3B0aW9uIHRvbyBsb25nIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjg1MworIzogb3B0aW9uLmM6OTQyCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBhY2Nlc3MgZGlyZWN0b3J5ICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo4NzIgdGZ0cC5jOjMxMworIzogb3B0aW9uLmM6OTYxIHRmdHAuYzozNDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGFjY2VzcyAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6OTEzCisjOiBvcHRpb24uYzo5OTgKIG1zZ2lkICJvbmx5IG9uZSBkaGNwLWhvc3RzZmlsZSBhbGxvd2VkIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjk2MgorIzogb3B0aW9uLmM6MTAwNQorbXNnaWQgIm9ubHkgb25lIGRoY3Atb3B0c2ZpbGUgYWxsb3dlZCIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoxMDQ5CiBtc2dpZCAiYmFkIE1YIHByZWZlcmVuY2UiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6OTcxCisjOiBvcHRpb24uYzoxMDUzCiBtc2dpZCAiYmFkIE1YIG5hbWUiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6OTg5CisjOiBvcHRpb24uYzoxMDY3CiBtc2dpZCAiYmFkIE1YIHRhcmdldCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxMDAxCisjOiBvcHRpb24uYzoxMDc4CiBtc2dpZCAiY2Fubm90IHJ1biBzY3JpcHRzIHVuZGVyIHVDbGludXgiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTE5NiBvcHRpb24uYzoxMjA3CisjOiBvcHRpb24uYzoxMjY1IG9wdGlvbi5jOjEyNzMKIG1zZ2lkICJiYWQgcG9ydCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxMzQ5CisjOiBvcHRpb24uYzoxMjkzIG9wdGlvbi5jOjEzMTgKK21zZ2lkICJpbnRlcmZhY2UgYmluZGluZyBub3Qgc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjE0MjcKK21zZ2lkICJiYWQgcG9ydCByYW5nZSIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoxNDQ0CiBtc2dpZCAiYmFkIGJyaWRnZS1pbnRlcmZhY2UiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTM5MQorIzogb3B0aW9uLmM6MTQ4NQogbXNnaWQgImJhZCBkaGNwLXJhbmdlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE0MTkKKyM6IG9wdGlvbi5jOjE1MTEKIG1zZ2lkICJvbmx5IG9uZSBuZXRpZCB0YWcgYWxsb3dlZCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxNDYxCisjOiBvcHRpb24uYzoxNTUxCiBtc2dpZCAiaW5jb25zaXN0ZW50IERIQ1AgcmFuZ2UiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTYzNworIzogb3B0aW9uLmM6MTcxOQogbXNnaWQgImJhZCBESENQIGhvc3QgbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxODYxCisjOiBvcHRpb24uYzoxOTU5CiBtc2dpZCAiYmFkIGludGVyZmFjZSBuYW1lIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE4ODUKKyM6IG9wdGlvbi5jOjE5NzkKIG1zZ2lkICJiYWQgUFRSIHJlY29yZCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTA5Ci1tc2dpZCAiYmFkIFRYVCByZWNvcmQiCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MTk0MQorIzogb3B0aW9uLmM6MTk5OQogbXNnaWQgIlRYVCByZWNvcmQgc3RyaW5nIHRvbyBsb25nIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5ODAKKyM6IG9wdGlvbi5jOjIwMDMKK21zZ2lkICJiYWQgVFhUIHJlY29yZCIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyMDYzCiBtc2dpZCAiYmFkIFNSViByZWNvcmQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTk5MgorIzogb3B0aW9uLmM6MjA3MgogbXNnaWQgImJhZCBTUlYgdGFyZ2V0IgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMDMKKyM6IG9wdGlvbi5jOjIwODAKIG1zZ2lkICJpbnZhbGlkIHBvcnQgbnVtYmVyIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMTMKKyM6IG9wdGlvbi5jOjIwODcKIG1zZ2lkICJpbnZhbGlkIHByaW9yaXR5IgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMjMKKyM6IG9wdGlvbi5jOjIwOTQKIG1zZ2lkICJpbnZhbGlkIHdlaWdodCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDU0CisjOiBvcHRpb24uYzoyMTMwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZpbGVzIG5lc3RlZCB0b28gZGVlcCBpbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDYyIHRmdHAuYzo0NjcKKyM6IG9wdGlvbi5jOjIxMzggdGZ0cC5jOjQ5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjExNAorIzogb3B0aW9uLmM6MjE5OQogbXNnaWQgIm1pc3NpbmcgXCIiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjE2MQorIzogb3B0aW9uLmM6MjI0NgogbXNnaWQgImJhZCBvcHRpb24iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjE2MworIzogb3B0aW9uLmM6MjI0OAogbXNnaWQgImV4dHJhbmVvdXMgcGFyYW1ldGVyIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxNjUKKyM6IG9wdGlvbi5jOjIyNTAKIG1zZ2lkICJtaXNzaW5nIHBhcmFtZXRlciIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMTczCisjOiBvcHRpb24uYzoyMjU4CiBtc2dpZCAiZXJyb3IiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjE3OQorIzogb3B0aW9uLmM6MjI2NAogIywgYy1mb3JtYXQKIG1zZ2lkICIlcyBhdCBsaW5lICVkIG9mICUlcyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjUyCisjOiBvcHRpb24uYzoyMzA0IG9wdGlvbi5jOjIzMzQKKyMsIGMtZm9ybWF0Cittc2dpZCAicmVhZCAlcyIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNDAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRuc21hc3EgdmVyc2lvbiAlcyAgJXNcbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjUzCisjOiBvcHRpb24uYzoyNDAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDb21waWxlIHRpbWUgb3B0aW9ucyAlc1xuIgogIlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNTQKKyM6IG9wdGlvbi5jOjI0MDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI1NQorIzogb3B0aW9uLmM6MjQwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJEbnNtYXNxIGlzIGZyZWUgc29mdHdhcmUsIGFuZCB5b3UgYXJlIHdlbGNvbWUgdG8gcmVkaXN0cmlidXRlIGl0XG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI1NgorIzogb3B0aW9uLmM6MjQwNAogIywgYy1mb3JtYXQKLW1zZ2lkICJ1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIuXG4iCittc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyIG9yIDMuXG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI2NworIzogb3B0aW9uLmM6MjQxNQogbXNnaWQgInRyeSAtLWhlbHAiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI2OQorIzogb3B0aW9uLmM6MjQxNwogbXNnaWQgInRyeSAtdyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjcyCisjOiBvcHRpb24uYzoyNDIwCiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBjb21tYW5kIGxpbmUgb3B0aW9uczogJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjMxMworIzogb3B0aW9uLmM6MjQ2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZ2V0IGhvc3QtbmFtZTogJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjM0MQorIzogb3B0aW9uLmM6MjQ4OQogbXNnaWQgIm9ubHkgb25lIHJlc29sdi5jb25mIGZpbGUgYWxsb3dlZCBpbiBuby1wb2xsIG1vZGUuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIzNTEKKyM6IG9wdGlvbi5jOjI0OTkKIG1zZ2lkICJtdXN0IGhhdmUgZXhhY3RseSBvbmUgcmVzb2x2LmNvbmYgdG8gcmVhZCBkb21haW4gZnJvbS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjM1NCBuZXR3b3JrLmM6NTQ5CisjOiBvcHRpb24uYzoyNTAyIG5ldHdvcmsuYzo2NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIzNzIKKyM6IG9wdGlvbi5jOjI1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gc2VhcmNoIGRpcmVjdGl2ZSBmb3VuZCBpbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBmb3J3YXJkLmM6Mzc2CisjOiBmb3J3YXJkLmM6MzgxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5hbWVzZXJ2ZXIgJXMgcmVmdXNlZCB0byBkbyBhIHJlY3Vyc2l2ZSBxdWVyeSIKIG1zZ3N0ciAiIgogCi0jOiBpc2MuYzo3MyBkbnNtYXNxLmM6NzIzCisjOiBmb3J3YXJkLmM6NDA5Cittc2dpZCAicG9zc2libGUgRE5TLXJlYmluZCBhdHRhY2sgZGV0ZWN0ZWQiCittc2dzdHIgIiIKKworIzogaXNjLmM6NzcgZG5zbWFzcS5jOjc0NwogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gYWNjZXNzICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBpc2MuYzo4OQorIzogaXNjLmM6OTMKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGxvYWQgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IGlzYy5jOjkzIGRuc21hc3EuYzo3NDUKKyM6IGlzYy5jOjk3IGRuc21hc3EuYzo3NjkKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZGluZyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBpc2MuYzoxMTUKKyM6IGlzYy5jOjExOQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbmFtZSBpbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBpc2MuYzoxNzcKKyM6IGlzYy5jOjE4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJJZ25vcmluZyBESENQIGxlYXNlIGZvciAlcyBiZWNhdXNlIGl0IGhhcyBhbiBpbGxlZ2FsIGRvbWFpbiBwYXJ0IgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo0MQorIzogbmV0d29yay5jOjQ1CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gaW50ZXJmYWNlICVzIGluIGJyaWRnZS1pbnRlcmZhY2UiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjM3NyBkbnNtYXNxLmM6MTcwCisjOiBuZXR3b3JrLmM6Mzg5IGRuc21hc3EuYzoxODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBsaXN0ZW5pbmcgc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6Mzg0CisjOiBuZXR3b3JrLmM6Mzk2CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgSVBWNiBvcHRpb25zIG9uIGxpc3RlbmluZyBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo0MDIKKyM6IG5ldHdvcmsuYzo0MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGJpbmQgbGlzdGVuaW5nIHNvY2tldCBmb3IgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo0MTAKKyM6IG5ldHdvcmsuYzo0MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGxpc3RlbiBvbiBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo0MjEKKyM6IG5ldHdvcmsuYzo0MzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBURlRQIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjQ5MworIzogbmV0d29yay5jOjU0OQorIywgYy1mb3JtYXQKK21zZ2lkICJmYWlsZWQgdG8gYmluZCBzZXJ2ZXIgc29ja2V0IGZvciAlczogJXMiCittc2dzdHIgIiIKKworIzogbmV0d29yay5jOjU4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJpZ25vcmluZyBuYW1lc2VydmVyICVzIC0gbG9jYWwgaW50ZXJmYWNlIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MDIKKyM6IG5ldHdvcmsuYzo1OTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiaWdub3JpbmcgbmFtZXNlcnZlciAlcyAtIGNhbm5vdCBtYWtlL2JpbmQgc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTE3CisjOiBuZXR3b3JrLmM6NjA2CiBtc2dpZCAidW5xdWFsaWZpZWQiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUxNworIzogbmV0d29yay5jOjYwNgogbXNnaWQgIm5hbWVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MTkKKyM6IG5ldHdvcmsuYzo2MDgKIG1zZ2lkICJkZWZhdWx0IgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MjEKKyM6IG5ldHdvcmsuYzo2MTAKIG1zZ2lkICJkb21haW4iCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUyNAorIzogbmV0d29yay5jOjYxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2luZyBsb2NhbCBhZGRyZXNzZXMgb25seSBmb3IgJXMgJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUyNgorIzogbmV0d29yay5jOjYxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2luZyBuYW1lc2VydmVyICVzIyVkIGZvciAlcyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTI5CisjOiBuZXR3b3JrLmM6NjE4CisjLCBjLWZvcm1hdAorbXNnaWQgInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQodmlhICVzKSIKK21zZ3N0ciAiIgorCisjOiBuZXR3b3JrLmM6NjIwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjEwNgorIzogZG5zbWFzcS5jOjExMAogbXNnaWQgIiIKICJJU0MgZGhjcGQgaW50ZWdyYXRpb24gbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfSVNDX1JFQURFUiBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjEyOAorIzogZG5zbWFzcS5jOjEzMgogbXNnaWQgIlRGVFAgc2VydmVyIG5vdCBhdmFpbGFibGU6IHNldCBIQVZFX1RGVFAgaW4gc3JjL2NvbmZpZy5oIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoxNDIKKyM6IGRuc21hc3EuYzoxMzcKK21zZ2lkICJhc3ljaHJvbm91cyBsb2dnaW5nIGlzIG5vdCBhdmFpbGFibGUgdW5kZXIgU29sYXJpcyIKK21zZ3N0ciAiIgorCisjOiBkbnNtYXNxLmM6MTUxCiBtc2dpZCAibXVzdCBzZXQgZXhhY3RseSBvbmUgaW50ZXJmYWNlIG9uIGJyb2tlbiBzeXN0ZW1zIHdpdGhvdXQgSVBfUkVDVklGIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoxNTIKKyM6IGRuc21hc3EuYzoxNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGZpbmQgbGlzdCBvZiBpbnRlcmZhY2VzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTYwCisjOiBkbnNtYXNxLmM6MTY5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gaW50ZXJmYWNlICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoxNjYKKyM6IGRuc21hc3EuYzoxNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gaW50ZXJmYWNlIHdpdGggYWRkcmVzcyAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTgxIGRuc21hc3EuYzo1MzgKKyM6IGRuc21hc3EuYzoxOTIgZG5zbWFzcS5jOjU2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJEQnVzIGVycm9yOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTg0CisjOiBkbnNtYXNxLmM6MTk1CiBtc2dpZCAiREJ1cyBub3QgYXZhaWxhYmxlOiBzZXQgSEFWRV9EQlVTIGluIHNyYy9jb25maWcuaCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MjE2CisjOiBkbnNtYXNxLmM6MjA0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgcGlwZTogJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjIzNworIzogZG5zbWFzcS5jOjIyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZm9yayBpbnRvIGJhY2tncm91bmQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozMzUKKyM6IGRuc21hc3EuYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGNoZGlyIHRvIGZpbGVzeXN0ZW0gcm9vdDogJXMiCittc2dzdHIgIiIKKworIzogZG5zbWFzcS5jOjM0OQorIywgYy1mb3JtYXQKK21zZ2lkICJzdGFydGVkLCB2ZXJzaW9uICVzIEROUyBkaXNhYmxlZCIKK21zZ3N0ciAiIgorCisjOiBkbnNtYXNxLmM6MzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgInN0YXJ0ZWQsIHZlcnNpb24gJXMgY2FjaGVzaXplICVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozMzcKKyM6IGRuc21hc3EuYzozNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAic3RhcnRlZCwgdmVyc2lvbiAlcyBjYWNoZSBkaXNhYmxlZCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzM5CisjOiBkbnNtYXNxLmM6MzU1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBpbGUgdGltZSBvcHRpb25zOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzQ1CisjOiBkbnNtYXNxLmM6MzYxCiBtc2dpZCAiREJ1cyBzdXBwb3J0IGVuYWJsZWQ6IGNvbm5lY3RlZCB0byBzeXN0ZW0gYnVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozNDcKKyM6IGRuc21hc3EuYzozNjMKIG1zZ2lkICJEQnVzIHN1cHBvcnQgZW5hYmxlZDogYnVzIGNvbm5lY3Rpb24gcGVuZGluZyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzUyCisjOiBkbnNtYXNxLmM6MzY4CiBtc2dpZCAic2V0dGluZyAtLWJpbmQtaW50ZXJmYWNlcyBvcHRpb24gYmVjYXVzZSBvZiBPUyBsaW1pdGF0aW9ucyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzU3CisjOiBkbnNtYXNxLmM6MzczCiAjLCBjLWZvcm1hdAogbXNnaWQgIndhcm5pbmc6IGludGVyZmFjZSAlcyBkb2VzIG5vdCBjdXJyZW50bHkgZXhpc3QiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM2MgorIzogZG5zbWFzcS5jOjM3OAogbXNnaWQgIndhcm5pbmc6IGlnbm9yaW5nIHJlc29sdi1maWxlIGZsYWcgYmVjYXVzZSBuby1yZXNvbHYgaXMgc2V0IgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozNjUKKyM6IGRuc21hc3EuYzozODEKIG1zZ2lkICJ3YXJuaW5nOiBubyB1cHN0cmVhbSBzZXJ2ZXJzIGNvbmZpZ3VyZWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM2OQorIzogZG5zbWFzcS5jOjM4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJhc3luY2hyb25vdXMgbG9nZ2luZyBlbmFibGVkLCBxdWV1ZSBsaW1pdCBpcyAlZCBtZXNzYWdlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzgxCisjOiBkbnNtYXNxLmM6Mzk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AsIHN0YXRpYyBsZWFzZXMgb25seSBvbiAlLjBzJXMsIGxlYXNlIHRpbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM4MgorIzogZG5zbWFzcS5jOjM5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQLCBJUCByYW5nZSAlcyAtLSAlcywgbGVhc2UgdGltZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6Mzk2CisjOiBkbnNtYXNxLmM6NDEyCiBtc2dpZCAicm9vdCBpcyAiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM5NgorIzogZG5zbWFzcS5jOjQxMgogbXNnaWQgImVuYWJsZWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM5OAorIzogZG5zbWFzcS5jOjQxNAogbXNnaWQgInNlY3VyZSBtb2RlIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo0MTgKKyM6IGRuc21hc3EuYzo0NDAKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVzdHJpY3RpbmcgbWF4aW11bSBzaW11bHRhbmVvdXMgVEZUUCB0cmFuc2ZlcnMgdG8gJWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjQyNworIzogZG5zbWFzcS5jOjQ0OQogIywgYy1mb3JtYXQKIG1zZ2lkICJ3YXJuaW5nOiBzZXR0aW5nIGNhcGFiaWxpdGllcyBmYWlsZWQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo0MjkKKyM6IGRuc21hc3EuYzo0NTEKIG1zZ2lkICJydW5uaW5nIGFzIHJvb3QiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjU0MAorIzogZG5zbWFzcS5jOjU2MwogbXNnaWQgImNvbm5lY3RlZCB0byBzeXN0ZW0gREJ1cyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NjU5CisjOiBkbnNtYXNxLmM6NjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNoaWxkIHByb2Nlc3Mga2lsbGVkIGJ5IHNpZ25hbCAlZCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NjYzCisjOiBkbnNtYXNxLmM6Njg3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNoaWxkIHByb2Nlc3MgZXhpdGVkIHdpdGggc3RhdHVzICVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo2NjcKKyM6IGRuc21hc3EuYzo2OTEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo2NzEKKyM6IGRuc21hc3EuYzo2OTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBoZWxwZXI6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo3MDUKKyM6IGRuc21hc3EuYzo3MjkKIG1zZ2lkICJleGl0aW5nIG9uIHJlY2VpcHQgb2YgU0lHVEVSTSIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NzU2CisjOiBkbnNtYXNxLmM6NzgwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHNlcnZlcnMgZm91bmQgaW4gJXMsIHdpbGwgcmV0cnkiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjMyCisjOiBkaGNwLmM6MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBESENQIHNvY2tldCA6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo0MQorIzogZGhjcC5jOjUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgb3B0aW9ucyBvbiBESENQIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjU5CisjOiBkaGNwLmM6NjgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHNldCBTT19SRVVTRXtBRERSfFBPUlR9IG9uIERIQ1Agc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6NzIKKyM6IGRoY3AuYzo4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gYmluZCBESENQIHNlcnZlciBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4NQorIzogZGhjcC5jOjk0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgSUNNUCByYXcgc29ja2V0OiAlcy4iCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjEwMAotIywgYy1mb3JtYXQKLW1zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUuIgotbXNnc3RyICIiCi0KLSM6IGRoY3AuYzoxMDMKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiaWxsZWdhbCBkb21haW4gJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKLW1zZ3N0ciAiIgotCi0jOiBkaGNwLmM6MjIxCisjOiBkaGNwLmM6MjIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcGFja2V0IHJlY2VpdmVkIG9uICVzIHdoaWNoIGhhcyBubyBhZGRyZXNzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzozNTIKKyM6IGRoY3AuYzozODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCByYW5nZSAlcyAtLSAlcyBpcyBub3QgY29uc2lzdGVudCB3aXRoIG5ldG1hc2sgJXMiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjY2OQorIzogZGhjcC5jOjcwOQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVhZCAlczolcyIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6NzA0CisjOiBkaGNwLmM6NzQ0CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBsaW5lIGF0ICVzIGxpbmUgJWQiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjgyNgorIzogZGhjcC5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUuIgorbXNnc3RyICIiCisKKyM6IGRoY3AuYzo4NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gJXMuIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4MzIKKyM6IGRoY3AuYzo4NTgKKyMsIGMtZm9ybWF0Cittc2dpZCAiaWxsZWdhbCBkb21haW4gJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKK21zZ3N0ciAiIgorCisjOiBkaGNwLmM6ODYwCiAjLCBjLWZvcm1hdAogbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6ODM5CisjOiBkaGNwLmM6ODk5CiAjLCBjLWZvcm1hdAotbXNnaWQgInJlYWQgJXMgLSAlZCBob3N0cyIKK21zZ2lkICIlcyBoYXMgbW9yZSB0aGVuIG9uZSBhZGRyZXNzIGluIGhvc3RzZmlsZSwgdXNpbmcgJXMgZm9yIERIQ1AiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjg2NgorIzogZGhjcC5jOjkwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyAoJXMpIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZSIKIG1zZ3N0ciAiIgogCi0jOiBsZWFzZS5jOjU0CisjOiBsZWFzZS5jOjU4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuIG9yIGNyZWF0ZSBsZWFzZSBmaWxlICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBsZWFzZS5jOjgwCisjOiBsZWFzZS5jOjg0CiBtc2dpZCAidG9vIG1hbnkgc3RvcmVkIGxlYXNlcyIKIG1zZ3N0ciAiIgogCi0jOiBsZWFzZS5jOjEyMQorIzogbGVhc2UuYzoxMjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJ1biBsZWFzZS1pbml0IHNjcmlwdCAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzoxMjcKKyM6IGxlYXNlLmM6MTMxCiAjLCBjLWZvcm1hdAogbXNnaWQgImxlYXNlLWluaXQgc2NyaXB0IHJldHVybmVkIGV4aXQgY29kZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBsZWFzZS5jOjIzNAorIzogbGVhc2UuYzoyMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHdyaXRlICVzOiAlcyAocmV0cnkgaW4gJXVzKSIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzAwCisjOiByZmMyMTMxLmM6MzAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGFkZHJlc3MgcmFuZ2UgYXZhaWxhYmxlIGZvciBESENQIHJlcXVlc3QgJXMgJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjMwMQorIzogcmZjMjEzMS5jOjMwNAogbXNnaWQgIndpdGggc3VibmV0IHNlbGVjdG9yIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMDEKKyM6IHJmYzIxMzEuYzozMDQKIG1zZ2lkICJ2aWEiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjMxMgorIzogcmZjMjEzMS5jOjMxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQIHBhY2tldDogdHJhbnNhY3Rpb24taWQgaXMgJXUiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjMxNworIzogcmZjMjEzMS5jOjMyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgREhDUCBzdWJuZXQ6ICVzLyVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMTkKKyM6IHJmYzIxMzEuYzozMjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIERIQ1AgcmFuZ2U6ICVzIC0tICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozNDcgcmZjMjEzMS5jOjM3OAorIzogcmZjMjEzMS5jOjM1MCByZmMyMTMxLmM6MzgxCiBtc2dpZCAiZGlzYWJsZWQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjM5MCByZmMyMTMxLmM6ODUyCisjOiByZmMyMTMxLmM6MzkzIHJmYzIxMzEuYzo4NzMKIG1zZ2lkICJhZGRyZXNzIGluIHVzZSIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzkzCisjOiByZmMyMTMxLmM6Mzk2CiBtc2dpZCAibm8gYWRkcmVzcyBjb25maWd1cmVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo0MDYgcmZjMjEzMS5jOjcyMAorIzogcmZjMjEzMS5jOjQwOSByZmMyMTMxLmM6NzM2CiBtc2dpZCAibm8gYWRkcmVzcyBhdmFpbGFibGUiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjQxNgotIywgYy1mb3JtYXQKLW1zZ2lkICJMaW1pdCBvZiAlZCBsZWFzZXMgZXhjZWVkZWQuIgotbXNnc3RyICIiCi0KLSM6IHJmYzIxMzEuYzo0MTcgcmZjMjEzMS5jOjg2MgorIzogcmZjMjEzMS5jOjQxOCByZmMyMTMxLmM6ODgzCiBtc2dpZCAibm8gbGVhc2VzIGxlZnQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjQyMSByZmMyMTMxLmM6ODI2CisjOiByZmMyMTMxLmM6NDIxIHJmYzIxMzEuYzo4NDcKIG1zZ2lkICJ3cm9uZyBuZXR3b3JrIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo1MTkKKyM6IHJmYzIxMzEuYzo1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiSWdub3JpbmcgZG9tYWluICVzIGZvciBESENQIGhvc3QgbmFtZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NTk4CisjOiByZmMyMTMxLmM6NjE0CiAjLCBjLWZvcm1hdAogbXNnaWQgIlZlbmRvciBjbGFzczogJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjYwMAorIzogcmZjMjEzMS5jOjYxNgogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2VyIGNsYXNzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NjQxCisjOiByZmMyMTMxLmM6NjU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImRpc2FibGluZyBESENQIHN0YXRpYyBhZGRyZXNzICVzIGZvciAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NjYyCisjOiByZmMyMTMxLmM6Njc4CiBtc2dpZCAidW5rbm93biBsZWFzZSIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NjcxIHJmYzIxMzEuYzo5NzAKKyM6IHJmYzIxMzEuYzo2ODcgcmZjMjEzMS5jOjk5MgogbXNnaWQgImlnbm9yZWQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY5MQorIzogcmZjMjEzMS5jOjcwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgdXNpbmcgY29uZmlndXJlZCBhZGRyZXNzICVzIGJlY2F1c2UgaXQgaXMgbGVhc2VkIHRvICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo3MDEKKyM6IHJmYzIxMzEuYzo3MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdCB1c2luZyBjb25maWd1cmVkIGFkZHJlc3MgJXMgYmVjYXVzZSBpdCBpcyBpbiB1c2UgYnkgdGhlIHNlcnZlciBvciByZWxheSIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NzA0CisjOiByZmMyMTMxLmM6NzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCB1c2luZyBjb25maWd1cmVkIGFkZHJlc3MgJXMgYmVjYXVzZSBpdCB3YXMgcHJldmlvdXNseSBkZWNsaW5lZCIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NzE4IHJmYzIxMzEuYzo4NTUKKyM6IHJmYzIxMzEuYzo3MzQgcmZjMjEzMS5jOjg3NgogbXNnaWQgIm5vIHVuaXF1ZS1pZCIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6Nzg5CisjOiByZmMyMTMxLmM6ODA2CiBtc2dpZCAid3JvbmcgYWRkcmVzcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6ODAyCisjOiByZmMyMTMxLmM6ODIzCiBtc2dpZCAibGVhc2Ugbm90IGZvdW5kIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo4MzQKKyM6IHJmYzIxMzEuYzo4NTUKIG1zZ2lkICJhZGRyZXNzIG5vdCBhdmFpbGFibGUiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjg0NQorIzogcmZjMjEzMS5jOjg2NgogbXNnaWQgInN0YXRpYyBsZWFzZSBhdmFpbGFibGUiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjg0OQorIzogcmZjMjEzMS5jOjg3MAogbXNnaWQgImFkZHJlc3MgcmVzZXJ2ZWQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjEyNTIKKyM6IHJmYzIxMzEuYzoxMjY1CiAjLCBjLWZvcm1hdAogbXNnaWQgInRhZ3M6ICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzoxMzM0CisjOiByZmMyMTMxLmM6MTM1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgc2VuZCBESENQL0JPT1RQIG9wdGlvbiAlZDogbm8gc3BhY2UgbGVmdCBpbiBwYWNrZXQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjE0ODgKKyM6IHJmYzIxMzEuYzoxNTA3CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlcXVlc3RlZCBvcHRpb25zOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MTUxOQotIywgYy1mb3JtYXQKLW1zZ2lkICJzZXJ2ZXIgbmFtZTogJXMiCi1tc2dzdHIgIiIKLQotIzogcmZjMjEzMS5jOjE1MzEKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiYm9vdGZpbGUgbmFtZTogJXMiCi1tc2dzdHIgIiIKLQotIzogcmZjMjEzMS5jOjE1NDAKKyM6IHJmYzIxMzEuYzoxNTU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5leHQgc2VydmVyOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXRsaW5rLmM6NTkKKyM6IHJmYzIxMzEuYzoxNTgwCisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RmaWxlIG5hbWU6ICVzIgorbXNnc3RyICIiCisKKyM6IHJmYzIxMzEuYzoxNTgzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlcnZlciBuYW1lOiAlcyIKK21zZ3N0ciAiIgorCisjOiBuZXRsaW5rLmM6NjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBuZXRsaW5rIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0bGluay5jOjIyNgorIzogbmV0bGluay5jOjIzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXRsaW5rIHJldHVybnMgZXJyb3I6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRidXMuYzoxMTEKKyM6IGRidXMuYzoxMTUKIG1zZ2lkICJhdHRlbXB0IHRvIHNldCBhbiBJUHY2IHNlcnZlciBhZGRyZXNzIHZpYSBEQnVzIC0gbm8gSVB2NiBzdXBwb3J0IgogbXNnc3RyICIiCiAKLSM6IGRidXMuYzoyMzcKKyM6IGRidXMuYzoyNDEKIG1zZ2lkICJzZXR0aW5nIHVwc3RyZWFtIHNlcnZlcnMgZnJvbSBEQnVzIgogbXNnc3RyICIiCiAKLSM6IGRidXMuYzoyNzUKKyM6IGRidXMuYzoyNzkKIG1zZ2lkICJjb3VsZCBub3QgcmVnaXN0ZXIgYSBEQnVzIG1lc3NhZ2UgaGFuZGxlciIKIG1zZ3N0ciAiIgogCi0jOiBicGYuYzo0MworIzogYnBmLmM6MTQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgREhDUCBCUEYgc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBicGYuYzo3MQorIzogYnBmLmM6MTc0CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcmVxdWVzdCBmb3IgdW5zdXBwb3J0ZWQgaGFyZHdhcmUgdHlwZSAoJWQpIHJlY2VpdmVkIG9uICVzIgogbXNnc3RyICIiCiAKLSM6IHRmdHAuYzoxNTgKKyM6IHRmdHAuYzoxNzMKK21zZ2lkICJ1bmFibGUgdG8gZ2V0IGZyZWUgcG9ydCBmb3IgVEZUUCIKK21zZ3N0ciAiIgorCisjOiB0ZnRwLmM6MTg4CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuc3VwcG9ydGVkIHJlcXVlc3QgZnJvbSAlcyIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6MjM2CisjOiB0ZnRwLmM6MjY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgc2VudCAlcyB0byAlcyIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6MjU5CisjOiB0ZnRwLmM6Mjg5CiAjLCBjLWZvcm1hdAogbXNnaWQgImZpbGUgJXMgbm90IGZvdW5kIgogbXNnc3RyICIiCiAKLSM6IHRmdHAuYzozNjkKKyM6IHRmdHAuYzozOTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVEZUUCBlcnJvciAlZCAlcyByZWNlaXZlZCBmcm9tICVzIgogbXNnc3RyICIiCiAKLSM6IHRmdHAuYzo0MDAKKyM6IHRmdHAuYzo0MzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiVEZUUCBmYWlsZWQgc2VuZGluZyAlcyB0byAlcyIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzo2OQorIzogbG9nLmM6NzMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IGxvZy5jOjE0NgorIzogbG9nLmM6ODkKKyMsIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmFpbGVkIHRvIGNoYW5nZSBvd25lciBvZiAlczogJXMiCittc2dzdHIgIiIKKworIzogbG9nLmM6MTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm92ZXJmbG93OiAlZCBsb2cgZW50cmllcyBsb3N0IgogbXNnc3RyICIiCiAKLSM6IGxvZy5jOjIyMworIzogbG9nLmM6MjM4CiAjLCBjLWZvcm1hdAogbXNnaWQgImxvZyBmYWlsZWQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGxvZy5jOjM3OAorIzogbG9nLmM6Mzk0CiBtc2dpZCAiRkFJTEVEIHRvIHN0YXJ0IHVwIgogbXNnc3RyICIiCmRpZmYgLS1naXQgYS9wby9uby5wbyBiL3BvL25vLnBvCmluZGV4IGNjMzJiM2YuLjc1NDk4NjcgMTAwNjQ0Ci0tLSBhL3BvL25vLnBvCisrKyBiL3BvL25vLnBvCkBAIC04LDcgKzgsNyBAQAogbXNnc3RyICIiCiAiUHJvamVjdC1JZC1WZXJzaW9uOiBkbnNtYXNxIDIuMjVcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMDctMDgtMjkgMTE6MDkrMDEwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA4LTAyLTEyIDExOjA0KzAwMDBcbiIKICJQTy1SZXZpc2lvbi1EYXRlOiAyMDA2LTAxLTExIDE3OjM5KzAwMDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IEphbiBFcmlrIEFza2lsZHQgPGplYXNraWxkdEBnbWFpbC5jb20+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogTm9yd2VnaWFuIDxpMThuLW5iQGxpc3Rlci5waW5nLnVpby5ubz5cbiIKQEAgLTE3LDMxICsxNywzMSBAQAogIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKICJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKIAotIzogY2FjaGUuYzo2NzEKKyM6IGNhY2hlLmM6NjgwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gbG9hZCBuYW1lcyBmcm9tICVzOiAlcyIKIG1zZ3N0ciAiZmVpbGV0IOUgbGFzdGUgbmF2biBmcmEgJXM6ICVtIgogCi0jOiBjYWNoZS5jOjcwNSBkaGNwLmM6NzE3CisjOiBjYWNoZS5jOjcxNCBkaGNwLmM6NzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBhZGRyZXNzIGF0ICVzIGxpbmUgJWQiCiBtc2dzdHIgImTlcmxpZyBhZHJlc3NlIHZlZCAlcyBsaW5qZSAlZCIKIAotIzogY2FjaGUuYzo3NTIgZGhjcC5jOjczMQorIzogY2FjaGUuYzo3NjEgZGhjcC5jOjc3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbmFtZSBhdCAlcyBsaW5lICVkIgogbXNnc3RyICJk5XJsaWcgbmF2biB2ZWQgJXMgbGluamUgJWQiCiAKLSM6IGNhY2hlLmM6NzU5IGRoY3AuYzo3ODUKKyM6IGNhY2hlLmM6NzY4IGRoY3AuYzo4MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZCAlcyAtICVkIGFkZHJlc3NlcyIKIG1zZ3N0ciAibGVzICVzIC0gJWQgYWRyZXNzZXIiCiAKLSM6IGNhY2hlLmM6Nzk3CisjOiBjYWNoZS5jOjgwNgogbXNnaWQgImNsZWFyZWQgY2FjaGUiCiBtc2dzdHIgIm1lbGxvbWxhZ2VyIHT4bXQiCiAKLSM6IGNhY2hlLmM6ODQ0CisjOiBjYWNoZS5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90IGdpdmluZyBuYW1lICVzIHRvIHRoZSBESENQIGxlYXNlIG9mICVzIGJlY2F1c2UgdGhlIG5hbWUgZXhpc3RzIGluICVzICIKQEAgLTUwLDM3OCArNTAsNDI3IEBACiAiZ2lyIGlra2UgbmF2bmV0ICVzIHRpbCBESENQIGxlaWVuIGZvciAlcyBmb3JkaSBuYXZuZXQgZWtzaXN0ZXJlciBpICVzIG1lZCAiCiAiYWRyZXNzZW4gJXMiCiAKLSM6IGNhY2hlLmM6ODg0CisjOiBjYWNoZS5jOjkwNworIywgYy1mb3JtYXQKK21zZ2lkICJ0aW1lICVsdSIKK21zZ3N0ciAiIgorCisjOiBjYWNoZS5jOjkwOAogIywgZnV6enksIGMtZm9ybWF0Ci1tc2dpZCAiIgotInRpbWUgJWx1LCBjYWNoZSBzaXplICVkLCAlZC8lZCBjYWNoZSBpbnNlcnRpb25zIHJlLXVzZWQgdW5leHBpcmVkIGNhY2hlICIKLSJlbnRyaWVzLiIKK21zZ2lkICJjYWNoZSBzaXplICVkLCAlZC8lZCBjYWNoZSBpbnNlcnRpb25zIHJlLXVzZWQgdW5leHBpcmVkIGNhY2hlIGVudHJpZXMuIgogbXNnc3RyICIiCiAibWVsbG9tbGFnZXIgc3T4cnJlbHNlICVkLCAlZC8lZCBtZWxsb21sYWdlciBpbm5zZXR0aW5nZXIgcmUtYnJ1a2VyICIKICJtZWxsb21sYWdlciBwbGFzc2VyIHNvbSBpa2tlIGVyIHV0bPhwdCIKIAotIzogdXRpbC5jOjE1NyBvcHRpb24uYzo3NTgKKyM6IGNhY2hlLmM6OTEwCisjLCBjLWZvcm1hdAorbXNnaWQgInF1ZXJpZXMgZm9yd2FyZGVkICV1LCBxdWVyaWVzIGFuc3dlcmVkIGxvY2FsbHkgJXUiCittc2dzdHIgIiIKKworIzogY2FjaGUuYzo5MzMKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VydmVyICVzIyVkOiBxdWVyaWVzIHNlbnQgJXUsIHJldHJpZWQgb3IgZmFpbGVkICV1IgorbXNnc3RyICIiCisKKyM6IHV0aWwuYzoxNjAKIG1zZ2lkICJjb3VsZCBub3QgZ2V0IG1lbW9yeSIKIG1zZ3N0ciAia3VubmUgaWtrZSBm5SBtaW5uZSIKIAotIzogdXRpbC5jOjE2NworIzogdXRpbC5jOjE3MAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlICVkIGJ5dGVzIgogbXNnc3RyICJmZWlsZXQg5SBsYXN0ZSAlczogJW0iCiAKLSM6IHV0aWwuYzoyNzIKKyM6IHV0aWwuYzoyNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5maW5pdGUiCiBtc2dzdHIgInVlbmRlbGlnIgogCi0jOiBvcHRpb24uYzoxODgKKyM6IG9wdGlvbi5jOjI0NAogbXNnaWQgIlNwZWNpZnkgbG9jYWwgYWRkcmVzcyhlcykgdG8gbGlzdGVuIG9uLiIKIG1zZ3N0ciAiU3Blc2lmaXNlciBsb2thbChlKSBhZHJlc3NlKHIpIOUgbHl0dGUgcOUuIgogCi0jOiBvcHRpb24uYzoxODkKKyM6IG9wdGlvbi5jOjI0NQogbXNnaWQgIlJldHVybiBpcGFkZHIgZm9yIGFsbCBob3N0cyBpbiBzcGVjaWZpZWQgZG9tYWlucy4iCiBtc2dzdHIgIlJldHVybmVyIGlwYWRkciBmb3IgYWxsZSB2ZXJ0ZXIgaSBkZXQgc3Blc2lmaXNlcnRlIGRvbWVuZXQuIgogCi0jOiBvcHRpb24uYzoxOTAKKyM6IG9wdGlvbi5jOjI0NgogbXNnaWQgIkZha2UgcmV2ZXJzZSBsb29rdXBzIGZvciBSRkMxOTE4IHByaXZhdGUgYWRkcmVzcyByYW5nZXMuIgogbXNnc3RyICJGb3JmYWxzayByZXZlcnMgb3Bwc2xhZyBmb3IgUkZDMTkxOCBwcml2YXRlIGFkcmVzc2Ugb21y5WRlci4iCiAKLSM6IG9wdGlvbi5jOjE5MQorIzogb3B0aW9uLmM6MjQ3CiBtc2dpZCAiVHJlYXQgaXBhZGRyIGFzIE5YRE9NQUlOIChkZWZlYXRzIFZlcmlzaWduIHdpbGRjYXJkKS4iCiBtc2dzdHIgIkJlaGFuZGxlIGlwYWRkciBzb20gTlhET01BSU4gKG9tZ+VyIFZlcmlzaWduIHdpbGRjYXJkKS4iCiAKLSM6IG9wdGlvbi5jOjE5MgorIzogb3B0aW9uLmM6MjQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIGNhY2hlIGluIGVudHJpZXMgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlNwZXNpZmlzZXIgc3T4cnJlbHNlbiBw5SBtZWxsb21sYWdlciBwbGFzc2VuZSAoc3RhbmRhcmQgZXIgJXMpLiIKIAotIzogb3B0aW9uLmM6MTkzCisjOiBvcHRpb24uYzoyNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBjb25maWd1cmF0aW9uIGZpbGUgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlNwZXNpZmlzZXIga29uZmlndXJhc2pvbnNmaWwgKHN0YW5kYXJkIGVyICVzKS4iCiAKLSM6IG9wdGlvbi5jOjE5NAorIzogb3B0aW9uLmM6MjUwCiBtc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZDogcnVuIGluIGRlYnVnIG1vZGUuIgogbXNnc3RyICJJS0tFIGxlZ2cgKGZvcmspIHNvbSBiYWtncnVubnNwcm9zZXNzOiBravhyIGkgZGVidWcgbW9kdXMuIgogCi0jOiBvcHRpb24uYzoxOTUKKyM6IG9wdGlvbi5jOjI1MQogbXNnaWQgIkRvIE5PVCBmb3J3YXJkIHF1ZXJpZXMgd2l0aCBubyBkb21haW4gcGFydC4iCiBtc2dzdHIgIklLS0UgdmlkZXJlc2VuZCBvcHBzbGFnIHNvbSBtYW5nbGVyIGRvbWVuZSBkZWwuIgogCi0jOiBvcHRpb24uYzoxOTYKKyM6IG9wdGlvbi5jOjI1MgogbXNnaWQgIlJldHVybiBzZWxmLXBvaW50aW5nIE1YIHJlY29yZHMgZm9yIGxvY2FsIGhvc3RzLiIKIG1zZ3N0ciAiUmV0dXJuZXIgc2Vsdi1wZWtlbmRlIE1YIHBvc3QgZm9yIGxva2FsZSB2ZXJ0ZXIuIgogCi0jOiBvcHRpb24uYzoxOTcKKyM6IG9wdGlvbi5jOjI1MwogbXNnaWQgIkV4cGFuZCBzaW1wbGUgbmFtZXMgaW4gL2V0Yy9ob3N0cyB3aXRoIGRvbWFpbi1zdWZmaXguIgogbXNnc3RyICJVdHZpZCBlbmtsZSBuYXZuIGkgL2V0Yy9ob3N0cyBtZWQgZG9tZW5lLXN1ZmZpa3MuIgogCi0jOiBvcHRpb24uYzoxOTgKKyM6IG9wdGlvbi5jOjI1NAogbXNnaWQgIkRvbid0IGZvcndhcmQgc3B1cmlvdXMgRE5TIHJlcXVlc3RzIGZyb20gV2luZG93cyBob3N0cy4iCiBtc2dzdHIgIklra2UgdmlkZXJlc2VuZCBmYWxza2UvdWVrdGUgRE5TIGZvcmVzcPhyc2xlciBmcmEgV2luZG93cyB2ZXJ0ZXIuIgogCi0jOiBvcHRpb24uYzoxOTkKKyM6IG9wdGlvbi5jOjI1NQogbXNnaWQgIkVuYWJsZSBESENQIGluIHRoZSByYW5nZSBnaXZlbiB3aXRoIGxlYXNlIGR1cmF0aW9uLiIKIG1zZ3N0ciAiQWt0aXZlciBESENQIGkgZGV0IGdpdHRlIG9tcuVkZXQgbWVkIGxlaWUgdmFyaWdoZXQiCiAKLSM6IG9wdGlvbi5jOjIwMAorIzogb3B0aW9uLmM6MjU2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoYW5nZSB0byB0aGlzIGdyb3VwIGFmdGVyIHN0YXJ0dXAgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlNraWZ0IHRpbCBkZW5uZSBncnVwcGVuIGV0dGVyIG9wcHN0YXJ0IChzdGFuZGFyZCBlciAlcykuIgogCi0jOiBvcHRpb24uYzoyMDEKKyM6IG9wdGlvbi5jOjI1NwogbXNnaWQgIlNldCBhZGRyZXNzIG9yIGhvc3RuYW1lIGZvciBhIHNwZWNpZmllZCBtYWNoaW5lLiIKIG1zZ3N0ciAiU2V0dCBhZHJlc3NlIGVsbGVyIHZlcnRzbmF2biBmb3IgZW4gc3Blc2lmaWtrIG1hc2tpbi4iCiAKLSM6IG9wdGlvbi5jOjIwMgorIzogb3B0aW9uLmM6MjU4CiBtc2dpZCAiUmVhZCBESENQIGhvc3Qgc3BlY3MgZnJvbSBmaWxlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMworIzogb3B0aW9uLmM6MjU5Cittc2dpZCAiUmVhZCBESENQIG9wdGlvbiBzcGVjcyBmcm9tIGZpbGUiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvIE5PVCBsb2FkICVzIGZpbGUuIgogbXNnc3RyICJJS0tFIGxhc3QgJXMgZmlsZW4uIgogCi0jOiBvcHRpb24uYzoyMDQKKyM6IG9wdGlvbi5jOjI2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IGEgaG9zdHMgZmlsZSB0byBiZSByZWFkIGluIGFkZGl0aW9uIHRvICVzLiIKIG1zZ3N0ciAiU3Blc2lmaXNlciBlbiB2ZXJ0cyAoaG9zdHMpIGZpbCBzb20gc2thbCBsZXNlcyBpIHRpbGxlZyB0aWwgJXMuIgogCi0jOiBvcHRpb24uYzoyMDUKKyM6IG9wdGlvbi5jOjI2MgogbXNnaWQgIlNwZWNpZnkgaW50ZXJmYWNlKHMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIlNwZXNpZmlzZXIgbmV0dHZlcmtza29ydCBkZXQgc2thbCBseXR0ZXMgcOUuIgogCi0jOiBvcHRpb24uYzoyMDYKKyM6IG9wdGlvbi5jOjI2MwogbXNnaWQgIlNwZWNpZnkgaW50ZXJmYWNlKHMpIE5PVCB0byBsaXN0ZW4gb24uIgogbXNnc3RyICJTcGVzaWZpc2VyIG5ldHR2ZXJrc2tvcnQgZGV0IElLS0Ugc2thbCBseXR0ZXMgcOUuIgogCi0jOiBvcHRpb24uYzoyMDcKKyM6IG9wdGlvbi5jOjI2NAogIywgZnV6enkKIG1zZ2lkICJNYXAgREhDUCB1c2VyIGNsYXNzIHRvIHRhZy4iCiBtc2dzdHIgIk1hcCBESENQIGJydWtlciBrbGFzc2UgdGlsIG9wc2pvbiBzZXR0LiIKIAotIzogb3B0aW9uLmM6MjA4CisjOiBvcHRpb24uYzoyNjUKIG1zZ2lkICJNYXAgUkZDMzA0NiBjaXJjdWl0LWlkIHRvIHRhZy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjA5CisjOiBvcHRpb24uYzoyNjYKIG1zZ2lkICJNYXAgUkZDMzA0NiByZW1vdGUtaWQgdG8gdGFnLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMTAKKyM6IG9wdGlvbi5jOjI2NwogbXNnaWQgIk1hcCBSRkMzOTkzIHN1YnNjcmliZXItaWQgdG8gdGFnLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMTEKKyM6IG9wdGlvbi5jOjI2OAogIywgZnV6enkKIG1zZ2lkICJEb24ndCBkbyBESENQIGZvciBob3N0cyB3aXRoIHRhZyBzZXQuIgogbXNnc3RyICJJa2tlIHV0ZvhyIERIQ1AgZm9yIGtsaWVudGVyIGkgb3Bzam9uIHNldHQuIgogCi0jOiBvcHRpb24uYzoyMTIKKyM6IG9wdGlvbi5jOjI2OQorIywgZnV6enkKK21zZ2lkICJGb3JjZSBicm9hZGNhc3QgcmVwbGllcyBmb3IgaG9zdHMgd2l0aCB0YWcgc2V0LiIKK21zZ3N0ciAiSWtrZSB1dGb4ciBESENQIGZvciBrbGllbnRlciBpIG9wc2pvbiBzZXR0LiIKKworIzogb3B0aW9uLmM6MjcwCiBtc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZCwgZG8gTk9UIHJ1biBpbiBkZWJ1ZyBtb2RlLiIKIG1zZ3N0ciAiSUtLRSBsYXN0IChmb3JrKSBzb20gYmFrZ3J1bm5zcHJvc2VzcywgSUtLRSBravhyIGkgZGVidWcgbW9kdXMuIgogCi0jOiBvcHRpb24uYzoyMTMKKyM6IG9wdGlvbi5jOjI3MQogbXNnaWQgIkFzc3VtZSB3ZSBhcmUgdGhlIG9ubHkgREhDUCBzZXJ2ZXIgb24gdGhlIGxvY2FsIG5ldHdvcmsuIgogbXNnc3RyICJBbnRhIGF0IHZpIGVyIGRlbiBlbmVzdGUgREhDUCB0amVuZXJlbiBw5SBkZXQgbG9rYWxlIG5ldHR2ZXJrZXQuIgogCi0jOiBvcHRpb24uYzoyMTQKKyM6IG9wdGlvbi5jOjI3MgogIywgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IHdoZXJlIHRvIHN0b3JlIERIQ1AgbGVhc2VzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJTcGVzaWZpc2VyIGh2b3IgREhDUCBsZWllbmUgc2thbCBsYWdyZXMgKHN0YW5kYXJkIGVyICVzKS4iCiAKLSM6IG9wdGlvbi5jOjIxNQorIzogb3B0aW9uLmM6MjczCiBtc2dpZCAiUmV0dXJuIE1YIHJlY29yZHMgZm9yIGxvY2FsIGhvc3RzLiIKIG1zZ3N0ciAiUmV0dXJuZXIgTVggcmVjb3JkcyBmb3IgbG9rYWxlIHZlcnRlci4iCiAKLSM6IG9wdGlvbi5jOjIxNgorIzogb3B0aW9uLmM6Mjc0CiBtc2dpZCAiU3BlY2lmeSBhbiBNWCByZWNvcmQuIgogbXNnc3RyICJTcGVzaWZpc2VyIGVuIE1YIHBvc3QuIgogCi0jOiBvcHRpb24uYzoyMTcKKyM6IG9wdGlvbi5jOjI3NQogbXNnaWQgIlNwZWNpZnkgQk9PVFAgb3B0aW9ucyB0byBESENQIHNlcnZlci4iCiBtc2dzdHIgIlNwZXNpZmlzZXIgQk9PVFAgb3Bzam9uZXIgdGlsIERIQ1AgdGplbmVyLiIKIAotIzogb3B0aW9uLmM6MjE4CisjOiBvcHRpb24uYzoyNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG8gTk9UIHBvbGwgJXMgZmlsZSwgcmVsb2FkIG9ubHkgb24gU0lHSFVQLiIKIG1zZ3N0ciAiSUtLRSBzcPhyIChwb2xsKSAlcyBmaWwsIGxlcyBw5SBueXR0IGt1biB2ZWQgU0lHSFVQIgogCi0jOiBvcHRpb24uYzoyMTkKKyM6IG9wdGlvbi5jOjI3NwogbXNnaWQgIkRvIE5PVCBjYWNoZSBmYWlsZWQgc2VhcmNoIHJlc3VsdHMuIgogbXNnc3RyICJJS0tFIG1lbGxvbWxhZ3JlIHP4a2VyZXN1bHRhdGVyIHNvbSBmZWlsZXIuIgogCi0jOiBvcHRpb24uYzoyMjAKKyM6IG9wdGlvbi5jOjI3OAogIywgYy1mb3JtYXQKIG1zZ2lkICJVc2UgbmFtZXNlcnZlcnMgc3RyaWN0bHkgaW4gdGhlIG9yZGVyIGdpdmVuIGluICVzLiIKIG1zZ3N0ciAiQnJ1ayBuYXZuZXRqZW5lcmUga3VuIHNvbSBiZXN0ZW10IGkgcmVra2Vm+GxnZW4gZ2l0dCBpICVzLiIKIAotIzogb3B0aW9uLmM6MjIxCisjOiBvcHRpb24uYzoyNzkKICMsIGZ1enp5CiBtc2dpZCAiU3BlY2lmeSBvcHRpb25zIHRvIGJlIHNlbnQgdG8gREhDUCBjbGllbnRzLiIKIG1zZ3N0ciAiU2V0dCBla3N0cmEgb3Bzam9uZXIgc29tIHNrYWwgZm9yZGVsZXMgdGlsIERIQ1Aga2xpZW50ZW5lLiIKIAotIzogb3B0aW9uLmM6MjIyCisjOiBvcHRpb24uYzoyODAKIG1zZ2lkICJESENQIG9wdGlvbiBzZW50IGV2ZW4gaWYgdGhlIGNsaWVudCBkb2VzIG5vdCByZXF1ZXN0IGl0LiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjMKKyM6IG9wdGlvbi5jOjI4MQogbXNnaWQgIlNwZWNpZnkgcG9ydCB0byBsaXN0ZW4gZm9yIEROUyByZXF1ZXN0cyBvbiAoZGVmYXVsdHMgdG8gNTMpLiIKIG1zZ3N0ciAiU3Blc2lmaXNlciBseXR0ZXBvcnQgZm9yIEROUyBvcHBzbGFnIChzdGFuZGFyZCBlciA1MykuIgogCi0jOiBvcHRpb24uYzoyMjQKKyM6IG9wdGlvbi5jOjI4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJNYXhpbXVtIHN1cHBvcnRlZCBVRFAgcGFja2V0IHNpemUgZm9yIEVETlMuMCAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiTWFrc2ltYWwgc3T4dHRldCBVRFAgcGFra2VzdPhycmVsc2UgZm9yIEVETlMuMCAoc3RhbmRhcmQgZXIgJXMpLiIKIAotIzogb3B0aW9uLmM6MjI1Ci1tc2dpZCAiTG9nIHF1ZXJpZXMuIgorIzogb3B0aW9uLmM6MjgzCisjLCBmdXp6eQorbXNnaWQgIkxvZyBETlMgcXVlcmllcy4iCiBtc2dzdHIgIkxvZ2cgb3Bwc2xhZy4iCiAKLSM6IG9wdGlvbi5jOjIyNgotbXNnaWQgIkZvcmNlIHRoZSBvcmlnaW5hdGluZyBwb3J0IGZvciB1cHN0cmVhbSBxdWVyaWVzLiIKKyM6IG9wdGlvbi5jOjI4NAorIywgZnV6enkKK21zZ2lkICJGb3JjZSB0aGUgb3JpZ2luYXRpbmcgcG9ydCBmb3IgdXBzdHJlYW0gRE5TIHF1ZXJpZXMuIgogbXNnc3RyICJUdmluZyBicnVrIGF2IG9wcHJpbm5lbGlnIHBvcnQgZm9yIG9wcHN0cvhtcyBvcHBzbGFnLiIKIAotIzogb3B0aW9uLmM6MjI3CisjOiBvcHRpb24uYzoyODUKIG1zZ2lkICJEbyBOT1QgcmVhZCByZXNvbHYuY29uZi4iCiBtc2dzdHIgIklLS0UgbGVzIHJlc29sdi5jb25mLiIKIAotIzogb3B0aW9uLmM6MjI4CisjOiBvcHRpb24uYzoyODYKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBwYXRoIHRvIHJlc29sdi5jb25mIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJTcGVzaWZpc2VyIHN0aWVuIHRpbCByZXNvbHYuY29uZiAoc3RhbmRhcmQgZXIgJXMpLiIKIAotIzogb3B0aW9uLmM6MjI5CisjOiBvcHRpb24uYzoyODcKIG1zZ2lkICJTcGVjaWZ5IGFkZHJlc3MoZXMpIG9mIHVwc3RyZWFtIHNlcnZlcnMgd2l0aCBvcHRpb25hbCBkb21haW5zLiIKIG1zZ3N0ciAiU3Blc2lmaXNlciBhZHJlc3NlbihlKSB0aWwgb3Bwc3Ry+G1zIHRqZW5lcmUgbWVkIHZhbGdmcmllIGRvbWVuZXIuIgogCi0jOiBvcHRpb24uYzoyMzAKKyM6IG9wdGlvbi5jOjI4OAogbXNnaWQgIk5ldmVyIGZvcndhcmQgcXVlcmllcyB0byBzcGVjaWZpZWQgZG9tYWlucy4iCiBtc2dzdHIgIkFsZHJpIHZpZGVyZXNlbmQgb3Bwc2xhZyB0aWwgc3Blc2lmaXNlcnRlIGRvbWVuZXIuIgogCi0jOiBvcHRpb24uYzoyMzEKKyM6IG9wdGlvbi5jOjI4OQogbXNnaWQgIlNwZWNpZnkgdGhlIGRvbWFpbiB0byBiZSBhc3NpZ25lZCBpbiBESENQIGxlYXNlcy4iCiBtc2dzdHIgIlNwZXNpZmlzZXIgZG9tZW5ldCBzb20gc2thbCB0aWxkZWxlcyBpIERIQ1AgbGVpZW4uIgogCi0jOiBvcHRpb24uYzoyMzIKKyM6IG9wdGlvbi5jOjI5MAogbXNnaWQgIlNwZWNpZnkgZGVmYXVsdCB0YXJnZXQgaW4gYW4gTVggcmVjb3JkLiIKIG1zZ3N0ciAiU3Blc2lmaXNlciBkZWZhdWx0IG3lbCBpIGVuIE1YIHBvc3QuIgogCi0jOiBvcHRpb24uYzoyMzMKKyM6IG9wdGlvbi5jOjI5MQogbXNnaWQgIlNwZWNpZnkgdGltZS10by1saXZlIGluIHNlY29uZHMgZm9yIHJlcGxpZXMgZnJvbSAvZXRjL2hvc3RzLiIKIG1zZ3N0ciAiU3Blc2lmaXNlciB0aW1lLXRvLWxpdmUgaSBzZWt1bmRlciBmb3Igc3ZhciBmcmEgL2V0Yy9ob3N0cy4iCiAKLSM6IG9wdGlvbi5jOjIzNAorIzogb3B0aW9uLmM6MjkyCisjLCBmdXp6eQorbXNnaWQgIlNwZWNpZnkgdGltZS10by1saXZlIGluIHNlY29uZHMgZm9yIG5lZ2F0aXZlIGNhY2hpbmcuIgorbXNnc3RyICJTcGVzaWZpc2VyIHRpbWUtdG8tbGl2ZSBpIHNla3VuZGVyIGZvciBzdmFyIGZyYSAvZXRjL2hvc3RzLiIKKworIzogb3B0aW9uLmM6MjkzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoYW5nZSB0byB0aGlzIHVzZXIgYWZ0ZXIgc3RhcnR1cC4gKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlNraWZ0IHRpbCBkZW5uZSBicnVrZXIgZXR0ZXIgb3Bwc3RhcnQgKHN0YW5kYXJkIGVyICVzKS4iCiAKLSM6IG9wdGlvbi5jOjIzNQorIzogb3B0aW9uLmM6Mjk0CiAjLCBmdXp6eQogbXNnaWQgIk1hcCBESENQIHZlbmRvciBjbGFzcyB0byB0YWcuIgogbXNnc3RyICJNYXAgREhDUCBwcm9kdXNlbnQga2xhc3NlIHRpbCBvcHNqb24gc2V0dC4iCiAKLSM6IG9wdGlvbi5jOjIzNgorIzogb3B0aW9uLmM6Mjk1CiBtc2dpZCAiRGlzcGxheSBkbnNtYXNxIHZlcnNpb24gYW5kIGNvcHlyaWdodCBpbmZvcm1hdGlvbi4iCiBtc2dzdHIgIlZpcyBkbnNtYXNxIHZlcnNqb24gb2cgY29weXJpZ2h0IGluZm9ybWFzam9uLiIKIAotIzogb3B0aW9uLmM6MjM3CisjOiBvcHRpb24uYzoyOTYKIG1zZ2lkICJUcmFuc2xhdGUgSVB2NCBhZGRyZXNzZXMgZnJvbSB1cHN0cmVhbSBzZXJ2ZXJzLiIKIG1zZ3N0ciAiT3ZlcnNldHQgSVB2NCBhZHJlc3NlciBmcmEgb3Bwc3Ry+G1zIHRqZW5lcmUuIgogCi0jOiBvcHRpb24uYzoyMzgKKyM6IG9wdGlvbi5jOjI5NwogbXNnaWQgIlNwZWNpZnkgYSBTUlYgcmVjb3JkLiIKIG1zZ3N0ciAiU3Blc2lmaXNlciBlbiBTUlYgcG9zdC4iCiAKLSM6IG9wdGlvbi5jOjIzOQorIzogb3B0aW9uLmM6Mjk4CiBtc2dpZCAiRGlzcGxheSB0aGlzIG1lc3NhZ2UuIFVzZSAtLWhlbHAgZGhjcCBmb3Iga25vd24gREhDUCBvcHRpb25zLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNDAKKyM6IG9wdGlvbi5jOjI5OQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBwYXRoIG9mIFBJRCBmaWxlIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJTcGVzaWZpc2VyIHN0aWVuIHRpbCBQSUQgZmlsLiAoc3RhbmRhcmQgZXIgJXMpLiIKIAotIzogb3B0aW9uLmM6MjQxCisjOiBvcHRpb24uYzozMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBtYXhpbXVtIG51bWJlciBvZiBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiU3Blc2lmaXNlciBtYWtzaW11bSBhbnRhbGwgREhDUCBsZWllciAoc3RhbmRhcmQgZXIgJXMpIgogCi0jOiBvcHRpb24uYzoyNDIKKyM6IG9wdGlvbi5jOjMwMQogbXNnaWQgIkFuc3dlciBETlMgcXVlcmllcyBiYXNlZCBvbiB0aGUgaW50ZXJmYWNlIGEgcXVlcnkgd2FzIHNlbnQgdG8uIgogbXNnc3RyICJTdmFyIEROUyBvcHBzbGFnIGJhc2VydCBw5SBuZXR0dmVya3Nrb3J0ZXQgb3Bwc2xhZ2V0IGJsZSBzZW5kdCB0aWwuIgogCi0jOiBvcHRpb24uYzoyNDMKKyM6IG9wdGlvbi5jOjMwMgogbXNnaWQgIlNwZWNpZnkgVFhUIEROUyByZWNvcmQuIgogbXNnc3RyICJTcGVzaWZpc2VyIFRYVCBETlMgcG9zdC4iCiAKLSM6IG9wdGlvbi5jOjI0NAorIzogb3B0aW9uLmM6MzAzCiAjLCBmdXp6eQogbXNnaWQgIlNwZWNpZnkgUFRSIEROUyByZWNvcmQuIgogbXNnc3RyICJTcGVzaWZpc2VyIFRYVCBETlMgcG9zdC4iCiAKLSM6IG9wdGlvbi5jOjI0NQorIzogb3B0aW9uLmM6MzA0CiBtc2dpZCAiR2l2ZSBETlMgbmFtZSB0byBJUHY0IGFkZHJlc3Mgb2YgaW50ZXJmYWNlLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNDYKKyM6IG9wdGlvbi5jOjMwNQogbXNnaWQgIkJpbmQgb25seSB0byBpbnRlcmZhY2VzIGluIHVzZS4iCiBtc2dzdHIgIkJpbmQga3VuIHRpbCBuZXR0dmVya3Nrb3J0IHNvbSBlciBpIGJydWsuIgogCi0jOiBvcHRpb24uYzoyNDcKKyM6IG9wdGlvbi5jOjMwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWFkIERIQ1Agc3RhdGljIGhvc3QgaW5mb3JtYXRpb24gZnJvbSAlcy4iCiBtc2dzdHIgIkxlcyBESENQIHN0YXRpc2sgdmVydCBpbmZvcm1hc2pvbiBmcmEgJXMuIgogCi0jOiBvcHRpb24uYzoyNDgKKyM6IG9wdGlvbi5jOjMwNwogbXNnaWQgIkVuYWJsZSB0aGUgREJ1cyBpbnRlcmZhY2UgZm9yIHNldHRpbmcgdXBzdHJlYW0gc2VydmVycywgZXRjLiIKIG1zZ3N0ciAiQWt0aXZlciBEQnVzIGludGVyZmFjZSBmb3Ig5SBzZXR0ZSBvcHBzdHL4bXMgdGplbmVyZSwgb3N2LiIKIAotIzogb3B0aW9uLmM6MjQ5CisjOiBvcHRpb24uYzozMDgKIG1zZ2lkICJEbyBub3QgcHJvdmlkZSBESENQIG9uIHRoaXMgaW50ZXJmYWNlLCBvbmx5IHByb3ZpZGUgRE5TLiIKIG1zZ3N0ciAiSWtrZSBsZXZlciBESENQIHDlIGRldHRlIG5ldHR2ZXJrc2tvcnRldCwga3VuIGxldmVyIEROUy4iCiAKLSM6IG9wdGlvbi5jOjI1MAorIzogb3B0aW9uLmM6MzA5CiBtc2dpZCAiRW5hYmxlIGR5bmFtaWMgYWRkcmVzcyBhbGxvY2F0aW9uIGZvciBib290cC4iCiBtc2dzdHIgIkFrdGl2ZXIgZHluYW1pc2sgYWRyZXNzZSBhbGxva2VyaW5nIGZvciBib290cC4iCiAKLSM6IG9wdGlvbi5jOjI1MQorIzogb3B0aW9uLmM6MzEwCiAjLCBmdXp6eQogbXNnaWQgIk1hcCBNQUMgYWRkcmVzcyAod2l0aCB3aWxkY2FyZHMpIHRvIG9wdGlvbiBzZXQuIgogbXNnc3RyICJNYXAgREhDUCBwcm9kdXNlbnQga2xhc3NlIHRpbCBvcHNqb24gc2V0dC4iCiAKLSM6IG9wdGlvbi5jOjI1MworIzogb3B0aW9uLmM6MzEyCiBtc2dpZCAiVHJlYXQgREhDUCByZXF1ZXN0cyBvbiBhbGlhc2VzIGFzIGFycml2aW5nIGZyb20gaW50ZXJmYWNlLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNTUKKyM6IG9wdGlvbi5jOjMxNAogbXNnaWQgIkRpc2FibGUgSUNNUCBlY2hvIGFkZHJlc3MgY2hlY2tpbmcgaW4gdGhlIERIQ1Agc2VydmVyLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNTYKKyM6IG9wdGlvbi5jOjMxNQogbXNnaWQgIlNjcmlwdCB0byBydW4gb24gREhDUCBsZWFzZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24uIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI1NworIzogb3B0aW9uLmM6MzE2CiBtc2dpZCAiUmVhZCBjb25maWd1cmF0aW9uIGZyb20gYWxsIHRoZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjU4CisjOiBvcHRpb24uYzozMTcKICMsIGZ1enp5CiBtc2dpZCAiTG9nIHRvIHRoaXMgc3lzbG9nIGZhY2lsaXR5IG9yIGZpbGUuIChkZWZhdWx0cyB0byBEQUVNT04pIgogbXNnc3RyICJTa2lmdCB0aWwgZGVubmUgYnJ1a2VyIGV0dGVyIG9wcHN0YXJ0IChzdGFuZGFyZCBlciAlcykuIgogCi0jOiBvcHRpb24uYzoyNTkKKyM6IG9wdGlvbi5jOjMxOAogbXNnaWQgIlJlYWQgbGVhc2VzIGF0IHN0YXJ0dXAsIGJ1dCBuZXZlciB3cml0ZSB0aGUgbGVhc2UgZmlsZS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjYwCisjOiBvcHRpb24uYzozMTkKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIk1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgRE5TIHF1ZXJpZXMuIChkZWZhdWx0cyB0byAlcykiCiBtc2dzdHIgIlNwZXNpZmlzZXIgbWFrc2ltdW0gYW50YWxsIERIQ1AgbGVpZXIgKHN0YW5kYXJkIGVyICVzKSIKIAotIzogb3B0aW9uLmM6MjYxCisjOiBvcHRpb24uYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xlYXIgRE5TIGNhY2hlIHdoZW4gcmVsb2FkaW5nICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjIKKyM6IG9wdGlvbi5jOjMyMQogbXNnaWQgIklnbm9yZSBob3N0bmFtZXMgcHJvdmlkZWQgYnkgREhDUCBjbGllbnRzLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjMKKyM6IG9wdGlvbi5jOjMyMgorbXNnaWQgIkRvIE5PVCByZXVzZSBmaWxlbmFtZSBhbmQgc2VydmVyIGZpZWxkcyBmb3IgZXh0cmEgREhDUCBvcHRpb25zLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjMKIG1zZ2lkICJFbmFibGUgaW50ZWdyYXRlZCByZWFkLW9ubHkgVEZUUCBzZXJ2ZXIuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI2NAorIzogb3B0aW9uLmM6MzI0CiBtc2dpZCAiRXhwb3J0IGZpbGVzIGJ5IFRGVFAgb25seSBmcm9tIHRoZSBzcGVjaWZpZWQgc3VidHJlZS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY1CisjOiBvcHRpb24uYzozMjUKIG1zZ2lkICJBZGQgY2xpZW50IElQIGFkZHJlc3MgdG8gdGZ0cC1yb290LiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjYKKyM6IG9wdGlvbi5jOjMyNgogbXNnaWQgIkFsbG93IGFjY2VzcyBvbmx5IHRvIGZpbGVzIG93bmVkIGJ5IHRoZSB1c2VyIHJ1bm5pbmcgZG5zbWFzcS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY3CisjOiBvcHRpb24uYzozMjcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIk1heGltdW0gbnVtYmVyIG9mIGNvbm5jdXJyZW50IFRGVFAgdHJhbnNmZXJzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJTcGVzaWZpc2VyIG1ha3NpbXVtIGFudGFsbCBESENQIGxlaWVyIChzdGFuZGFyZCBlciAlcykiCiAKLSM6IG9wdGlvbi5jOjI2OAorIzogb3B0aW9uLmM6MzI4CiBtc2dpZCAiRGlzYWJsZSB0aGUgVEZUUCBibG9ja3NpemUgZXh0ZW5zaW9uLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjkKKyM6IG9wdGlvbi5jOjMyOQorbXNnaWQgIkVwaGVtZXJhbCBwb3J0IHJhbmdlIGZvciB1c2UgYnkgVEZUUCB0cmFuc2ZlcnMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMzMAogbXNnaWQgIkV4dHJhIGxvZ2dpbmcgZm9yIERIQ1AuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI3MAorIzogb3B0aW9uLmM6MzMxCiBtc2dpZCAiRW5hYmxlIGFzeW5jLiBsb2dnaW5nOyBvcHRpb25hbGx5IHNldCBxdWV1ZSBsZW5ndGguIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjUwMQorIzogb3B0aW9uLmM6MzMyCittc2dpZCAiU3RvcCBETlMgcmViaW5kaW5nLiBGaWx0ZXIgcHJpdmF0ZSBJUCByYW5nZXMgd2hlbiByZXNvbHZpbmcuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMzMworbXNnaWQgIkFsd2F5cyBwZXJmb3JtIEROUyBxdWVyaWVzIHRvIGFsbCBzZXJ2ZXJzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzQKK21zZ2lkICJTZXQgdGFnIGlmIGNsaWVudCBpbmNsdWRlcyBvcHRpb24gaW4gcmVxdWVzdC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6NTg1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJVc2FnZTogZG5zbWFzcSBbb3B0aW9uc11cbiIKQEAgLTQzMCwxNzIgKzQ3OSwxOTAgQEAKICJCcnVrOiBkbnNtYXNxIFtvcHNqb25lcl1cbiIKICJcbiIKIAotIzogb3B0aW9uLmM6NTAzCisjOiBvcHRpb24uYzo1ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlIHNob3J0IG9wdGlvbnMgb25seSBvbiB0aGUgY29tbWFuZCBsaW5lLlxuIgogbXNnc3RyICJCcnVrIGtvcnRlIG9wc2pvbmVyIGt1biBw5SBrb21tYW5kb2xpbmplbi5cbiIKIAotIzogb3B0aW9uLmM6NTA1CisjOiBvcHRpb24uYzo1ODkKICMsIGMtZm9ybWF0CiBtc2dpZCAiVmFsaWQgb3B0aW9ucyBhcmUgOlxuIgogbXNnc3RyICJHeWxkaWdlIG9wc2pvbmVyIGVyIDpcbiIKIAotIzogb3B0aW9uLmM6NTI2CisjOiBvcHRpb24uYzo2MTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiS25vd24gREhDUCBvcHRpb25zOlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjU5OQorIzogb3B0aW9uLmM6NjgzCiBtc2dpZCAiYmFkIGRoY3Atb3B0aW9uIgogbXNnc3RyICJk5XJsaWcgZGhjcC1vcHNqb24iCiAKLSM6IG9wdGlvbi5jOjY1NQorIzogb3B0aW9uLmM6NzM5CiAjLCBmdXp6eQogbXNnaWQgImJhZCBJUCBhZGRyZXNzIgogbXNnc3RyICJsZXMgJXMgLSAlZCBhZHJlc3NlciIKIAotIzogb3B0aW9uLmM6NzUzCisjOiBvcHRpb24uYzo4MzcKIG1zZ2lkICJiYWQgZG9tYWluIGluIGRoY3Atb3B0aW9uIgogbXNnc3RyICJk5XJsaWcgZG9tZW5lIGkgZGhjcC1vcHNqb24iCiAKLSM6IG9wdGlvbi5jOjgwOQorIzogb3B0aW9uLmM6ODk1CiBtc2dpZCAiZGhjcC1vcHRpb24gdG9vIGxvbmciCiBtc2dzdHIgImRoY3Atb3Bzam9uIGZvciBsYW5nIgogCi0jOiBvcHRpb24uYzo4NTMKKyM6IG9wdGlvbi5jOjk0MgogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGFjY2VzcyBkaXJlY3RvcnkgJXM6ICVzIgogbXNnc3RyICJrYW4gaWtrZSBsZXNlICVzOiAlcyIKIAotIzogb3B0aW9uLmM6ODcyIHRmdHAuYzozMTMKKyM6IG9wdGlvbi5jOjk2MSB0ZnRwLmM6MzQzCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgYWNjZXNzICVzOiAlcyIKIG1zZ3N0ciAia2FuIGlra2UgbGVzZSAlczogJXMiCiAKLSM6IG9wdGlvbi5jOjkxMworIzogb3B0aW9uLmM6OTk4CiBtc2dpZCAib25seSBvbmUgZGhjcC1ob3N0c2ZpbGUgYWxsb3dlZCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo5NjIKKyM6IG9wdGlvbi5jOjEwMDUKK21zZ2lkICJvbmx5IG9uZSBkaGNwLW9wdHNmaWxlIGFsbG93ZWQiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MTA0OQogbXNnaWQgImJhZCBNWCBwcmVmZXJlbmNlIgogbXNnc3RyICJk5XJsaWcgTVggcHJlZmVyYW5zZSIKIAotIzogb3B0aW9uLmM6OTcxCisjOiBvcHRpb24uYzoxMDUzCiBtc2dpZCAiYmFkIE1YIG5hbWUiCiBtc2dzdHIgImTlcmxpZyBNWCBuYXZuIgogCi0jOiBvcHRpb24uYzo5ODkKKyM6IG9wdGlvbi5jOjEwNjcKIG1zZ2lkICJiYWQgTVggdGFyZ2V0IgogbXNnc3RyICJk5XJsaWcgTVggbeVsIgogCi0jOiBvcHRpb24uYzoxMDAxCisjOiBvcHRpb24uYzoxMDc4CiBtc2dpZCAiY2Fubm90IHJ1biBzY3JpcHRzIHVuZGVyIHVDbGludXgiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTE5NiBvcHRpb24uYzoxMjA3CisjOiBvcHRpb24uYzoxMjY1IG9wdGlvbi5jOjEyNzMKIG1zZ2lkICJiYWQgcG9ydCIKIG1zZ3N0ciAiZOVybGlnIHBvcnQiCiAKLSM6IG9wdGlvbi5jOjEzNDkKKyM6IG9wdGlvbi5jOjEyOTMgb3B0aW9uLmM6MTMxOAorbXNnaWQgImludGVyZmFjZSBiaW5kaW5nIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MTQyNworIywgZnV6enkKK21zZ2lkICJiYWQgcG9ydCByYW5nZSIKK21zZ3N0ciAiZOVybGlnIHBvcnQiCisKKyM6IG9wdGlvbi5jOjE0NDQKIG1zZ2lkICJiYWQgYnJpZGdlLWludGVyZmFjZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxMzkxCisjOiBvcHRpb24uYzoxNDg1CiBtc2dpZCAiYmFkIGRoY3AtcmFuZ2UiCiBtc2dzdHIgImTlcmxpZyBkaGNwLW9tcuVkZSIKIAotIzogb3B0aW9uLmM6MTQxOQorIzogb3B0aW9uLmM6MTUxMQogbXNnaWQgIm9ubHkgb25lIG5ldGlkIHRhZyBhbGxvd2VkIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE0NjEKKyM6IG9wdGlvbi5jOjE1NTEKIG1zZ2lkICJpbmNvbnNpc3RlbnQgREhDUCByYW5nZSIKIG1zZ3N0ciAiaWtrZSBrb25zaXN0ZW50IERIQ1Agb21y5WRlIgogCi0jOiBvcHRpb24uYzoxNjM3CisjOiBvcHRpb24uYzoxNzE5CiAjLCBmdXp6eQogbXNnaWQgImJhZCBESENQIGhvc3QgbmFtZSIKIG1zZ3N0ciAiZOVybGlnIE1YIG5hdm4iCiAKLSM6IG9wdGlvbi5jOjE4NjEKKyM6IG9wdGlvbi5jOjE5NTkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIGludGVyZmFjZSBuYW1lIgogbXNnc3RyICJk5XJsaWcgTVggbmF2biIKIAotIzogb3B0aW9uLmM6MTg4NQorIzogb3B0aW9uLmM6MTk3OQogIywgZnV6enkKIG1zZ2lkICJiYWQgUFRSIHJlY29yZCIKIG1zZ3N0ciAiZOVybGlnIFNSViBwb3N0IgogCi0jOiBvcHRpb24uYzoxOTA5Ci1tc2dpZCAiYmFkIFRYVCByZWNvcmQiCi1tc2dzdHIgImTlcmxpZyBUWFQgcG9zdCIKLQotIzogb3B0aW9uLmM6MTk0MQorIzogb3B0aW9uLmM6MTk5OQogbXNnaWQgIlRYVCByZWNvcmQgc3RyaW5nIHRvbyBsb25nIgogbXNnc3RyICJUWFQgcG9zdCBzdHJlbmcgZm9yIGxhbmciCiAKLSM6IG9wdGlvbi5jOjE5ODAKKyM6IG9wdGlvbi5jOjIwMDMKK21zZ2lkICJiYWQgVFhUIHJlY29yZCIKK21zZ3N0ciAiZOVybGlnIFRYVCBwb3N0IgorCisjOiBvcHRpb24uYzoyMDYzCiBtc2dpZCAiYmFkIFNSViByZWNvcmQiCiBtc2dzdHIgImTlcmxpZyBTUlYgcG9zdCIKIAotIzogb3B0aW9uLmM6MTk5MgorIzogb3B0aW9uLmM6MjA3MgogbXNnaWQgImJhZCBTUlYgdGFyZ2V0IgogbXNnc3RyICJk5XJsaWcgU1JWIG3lbCIKIAotIzogb3B0aW9uLmM6MjAwMworIzogb3B0aW9uLmM6MjA4MAogbXNnaWQgImludmFsaWQgcG9ydCBudW1iZXIiCiBtc2dzdHIgInVneWxkaWcgcG9ydG51bW1lciIKIAotIzogb3B0aW9uLmM6MjAxMworIzogb3B0aW9uLmM6MjA4NwogbXNnaWQgImludmFsaWQgcHJpb3JpdHkiCiBtc2dzdHIgInVneWxkaWcgcHJpb3JpdGV0IgogCi0jOiBvcHRpb24uYzoyMDIzCisjOiBvcHRpb24uYzoyMDk0CiBtc2dpZCAiaW52YWxpZCB3ZWlnaHQiCiBtc2dzdHIgInVneWxkaWcgdmVrdCIKIAotIzogb3B0aW9uLmM6MjA1NAorIzogb3B0aW9uLmM6MjEzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJmaWxlcyBuZXN0ZWQgdG9vIGRlZXAgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjA2MiB0ZnRwLmM6NDY3CisjOiBvcHRpb24uYzoyMTM4IHRmdHAuYzo0OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICJrYW4gaWtrZSBsZXNlICVzOiAlcyIKIAotIzogb3B0aW9uLmM6MjExNAorIzogb3B0aW9uLmM6MjE5OQogbXNnaWQgIm1pc3NpbmcgXCIiCiBtc2dzdHIgIm1hbmdsZXIgXCIiCiAKLSM6IG9wdGlvbi5jOjIxNjEKKyM6IG9wdGlvbi5jOjIyNDYKIG1zZ2lkICJiYWQgb3B0aW9uIgogbXNnc3RyICJk5XJsaWcgb3Bzam9uIgogCi0jOiBvcHRpb24uYzoyMTYzCisjOiBvcHRpb24uYzoyMjQ4CiBtc2dpZCAiZXh0cmFuZW91cyBwYXJhbWV0ZXIiCiBtc2dzdHIgIm92ZXJmbPhkaWcgcGFyYW1ldGVyIgogCi0jOiBvcHRpb24uYzoyMTY1CisjOiBvcHRpb24uYzoyMjUwCiBtc2dpZCAibWlzc2luZyBwYXJhbWV0ZXIiCiBtc2dzdHIgIm1hbmdsZXIgcGFyYW1ldGVyIgogCi0jOiBvcHRpb24uYzoyMTczCisjOiBvcHRpb24uYzoyMjU4CiBtc2dpZCAiZXJyb3IiCiBtc2dzdHIgImZlaWwiCiAKLSM6IG9wdGlvbi5jOjIxNzkKKyM6IG9wdGlvbi5jOjIyNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgYXQgbGluZSAlZCBvZiAlJXMiCiBtc2dzdHIgIiVzIHDlIGxpbmplICVkIGF2ICUlcyIKIAotIzogb3B0aW9uLmM6MjI1MgorIzogb3B0aW9uLmM6MjMwNCBvcHRpb24uYzoyMzM0CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJyZWFkICVzIgorbXNnc3RyICJsZXNlciAlcyIKKworIzogb3B0aW9uLmM6MjQwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJEbnNtYXNxIHZlcnNpb24gJXMgICVzXG4iCiBtc2dzdHIgIkRuc21hc3EgdmVyc2pvbiAlcyAlc1xuIgogCi0jOiBvcHRpb24uYzoyMjUzCisjOiBvcHRpb24uYzoyNDAxCiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJDb21waWxlIHRpbWUgb3B0aW9ucyAlc1xuIgpAQCAtNjA0LDY1MyArNjcxLDY4OSBAQAogIktvbXBpbGVyaW5nc29wc2pvbmVyICVzXG4iCiAiXG4iCiAKLSM6IG9wdGlvbi5jOjIyNTQKKyM6IG9wdGlvbi5jOjI0MDIKICMsIGMtZm9ybWF0CiBtc2dpZCAiVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG4iCiBtc2dzdHIgIkRlbm5lIHByb2dyYW12YXJlbiBrb21tZXIgbWVkIEFCU09MVVRUIElOR0VOIEdBUkFOVEkuXG4iCiAKLSM6IG9wdGlvbi5jOjIyNTUKKyM6IG9wdGlvbi5jOjI0MDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG5zbWFzcSBpcyBmcmVlIHNvZnR3YXJlLCBhbmQgeW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdFxuIgogbXNnc3RyICJETnNtYXNxIGVyIGZyaSBwcm9ncmFtdmFyZSwgZHUgZXIgdmVsa29tbWVuIHRpbCDlIHJlZGlzdHJpYnVlcmUgZGVuXG4iCiAKLSM6IG9wdGlvbi5jOjIyNTYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLlxuIgorIzogb3B0aW9uLmM6MjQwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyIG9yIDMuXG4iCiBtc2dzdHIgInVuZGVyIHZpbGvlcmVuZSBnaXR0IGkgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNqb24gMi5cbiIKIAotIzogb3B0aW9uLmM6MjI2NworIzogb3B0aW9uLmM6MjQxNQogbXNnaWQgInRyeSAtLWhlbHAiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI2OQorIzogb3B0aW9uLmM6MjQxNwogbXNnaWQgInRyeSAtdyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjcyCisjOiBvcHRpb24uYzoyNDIwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJiYWQgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICVzIgogbXNnc3RyICJk5XJsaWdlIGtvbW1hbmRsaW5qZSBvcHNqb25lcjogJXMuIgogCi0jOiBvcHRpb24uYzoyMzEzCisjOiBvcHRpb24uYzoyNDYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBnZXQgaG9zdC1uYW1lOiAlcyIKIG1zZ3N0ciAia2xhcmVyIGlra2Ug5SBm5SB2ZXJ0c25hdm46ICVzIgogCi0jOiBvcHRpb24uYzoyMzQxCisjOiBvcHRpb24uYzoyNDg5CiBtc2dpZCAib25seSBvbmUgcmVzb2x2LmNvbmYgZmlsZSBhbGxvd2VkIGluIG5vLXBvbGwgbW9kZS4iCiBtc2dzdHIgImt1biBlbiByZXNvbHYuY29uZiBmaWwgdGlsbGF0IGkgbm8tcG9sbCBtb2R1cy4iCiAKLSM6IG9wdGlvbi5jOjIzNTEKKyM6IG9wdGlvbi5jOjI0OTkKIG1zZ2lkICJtdXN0IGhhdmUgZXhhY3RseSBvbmUgcmVzb2x2LmNvbmYgdG8gcmVhZCBkb21haW4gZnJvbS4iCiBtc2dzdHIgIm3lIGhhIG74eWFrdGlnIGVuIHJlc29sdi5jb25mIOUgbGVzZSBkb21lbmUgZnJhLiIKIAotIzogb3B0aW9uLmM6MjM1NCBuZXR3b3JrLmM6NTQ5CisjOiBvcHRpb24uYzoyNTAyIG5ldHdvcmsuYzo2NDAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byByZWFkICVzOiAlcyIKIG1zZ3N0ciAiZmVpbGV0IOUgbGVzZSAlczogJW0iCiAKLSM6IG9wdGlvbi5jOjIzNzIKKyM6IG9wdGlvbi5jOjI1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gc2VhcmNoIGRpcmVjdGl2ZSBmb3VuZCBpbiAlcyIKIG1zZ3N0ciAiaW50ZXQgc/hrZSBkaXJla3RpdiBmdW5uZXQgaSAlcyIKIAotIzogZm9yd2FyZC5jOjM3NgorIzogZm9yd2FyZC5jOjM4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJuYW1lc2VydmVyICVzIHJlZnVzZWQgdG8gZG8gYSByZWN1cnNpdmUgcXVlcnkiCiBtc2dzdHIgIm5hdm5ldGplbmVyICVzIG5la3RldCDlIGdq+HJlIGV0IHJla3Vyc2l2dCBvcHBzbGFnIgogCi0jOiBpc2MuYzo3MyBkbnNtYXNxLmM6NzIzCisjOiBmb3J3YXJkLmM6NDA5Cittc2dpZCAicG9zc2libGUgRE5TLXJlYmluZCBhdHRhY2sgZGV0ZWN0ZWQiCittc2dzdHIgIiIKKworIzogaXNjLmM6NzcgZG5zbWFzcS5jOjc0NwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGFjY2VzcyAlczogJXMiCiBtc2dzdHIgImZlaWxldCDlIGblIHRpbGdhbmcgdGlsICVzOiAlbSIKIAotIzogaXNjLmM6ODkKKyM6IGlzYy5jOjkzCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gbG9hZCAlczogJXMiCiBtc2dzdHIgImZlaWxldCDlIGxhc3RlICVzOiAlbSIKIAotIzogaXNjLmM6OTMgZG5zbWFzcS5jOjc0NQorIzogaXNjLmM6OTcgZG5zbWFzcS5jOjc2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWFkaW5nICVzIgogbXNnc3RyICJsZXNlciAlcyIKIAotIzogaXNjLmM6MTE1CisjOiBpc2MuYzoxMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIG5hbWUgaW4gJXMiCiBtc2dzdHIgImTlcmxpZyBuYXZuIGkgJXMiCiAKLSM6IGlzYy5jOjE3NworIzogaXNjLmM6MTgxCiAjLCBjLWZvcm1hdAogbXNnaWQgIklnbm9yaW5nIERIQ1AgbGVhc2UgZm9yICVzIGJlY2F1c2UgaXQgaGFzIGFuIGlsbGVnYWwgZG9tYWluIHBhcnQiCiBtc2dzdHIgIklnbm9yZXJlciBESENQIGxlaWUgZm9yICVzIHNpZGVuIGRlbiBoYXIgZW4gdWxvdmxpZyBkb21lbmUgZGVsIgogCi0jOiBuZXR3b3JrLmM6NDEKKyM6IG5ldHdvcmsuYzo0NQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAidW5rbm93biBpbnRlcmZhY2UgJXMgaW4gYnJpZGdlLWludGVyZmFjZSIKIG1zZ3N0ciAidWtqZW50IHRpbGtueXRuaW5nIChpbnRlcmZhY2UpICVzIgogCi0jOiBuZXR3b3JrLmM6Mzc3IGRuc21hc3EuYzoxNzAKKyM6IG5ldHdvcmsuYzozODkgZG5zbWFzcS5jOjE4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGxpc3RlbmluZyBzb2NrZXQ6ICVzIgogbXNnc3RyICJmZWlsZXQg5SBsYWdlIGx5dHRlIHNvY2tldDogJXMiCiAKLSM6IG5ldHdvcmsuYzozODQKKyM6IG5ldHdvcmsuYzozOTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHNldCBJUFY2IG9wdGlvbnMgb24gbGlzdGVuaW5nIHNvY2tldDogJXMiCiBtc2dzdHIgImZlaWxldCDlIHNldHRlIElQdjYgb3Bzam9uZXIgcOUgbHl0dGUgc29ja2V0OiAlcyIKIAotIzogbmV0d29yay5jOjQwMgorIzogbmV0d29yay5jOjQxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gYmluZCBsaXN0ZW5pbmcgc29ja2V0IGZvciAlczogJXMiCiBtc2dzdHIgImZlaWxldCDlIGJpbmRlIGx5dHRlIHNvY2tldCBmb3IgJXM6ICVzIgogCi0jOiBuZXR3b3JrLmM6NDEwCisjOiBuZXR3b3JrLmM6NDIwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsaXN0ZW4gb24gc29ja2V0OiAlcyIKIG1zZ3N0ciAiZmVpbGV0IOUgbHl0dGUgcOUgc29ja2V0OiAlcyIKIAotIzogbmV0d29yay5jOjQyMQorIzogbmV0d29yay5jOjQzMgogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBURlRQIHNvY2tldDogJXMiCiBtc2dzdHIgImZlaWxldCDlIGxhZ2UgbHl0dGUgc29ja2V0OiAlcyIKIAotIzogbmV0d29yay5jOjQ5MworIzogbmV0d29yay5jOjU0OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGJpbmQgc2VydmVyIHNvY2tldCBmb3IgJXM6ICVzIgorbXNnc3RyICJmZWlsZXQg5SBiaW5kZSBseXR0ZSBzb2NrZXQgZm9yICVzOiAlcyIKKworIzogbmV0d29yay5jOjU4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJpZ25vcmluZyBuYW1lc2VydmVyICVzIC0gbG9jYWwgaW50ZXJmYWNlIgogbXNnc3RyICJpZ25vcmVyZXIgbmF2bmV0amVuZXIgJXMgLSBsb2thbCB0aWxrbnl0bmluZyIKIAotIzogbmV0d29yay5jOjUwMgorIzogbmV0d29yay5jOjU5MQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiaWdub3JpbmcgbmFtZXNlcnZlciAlcyAtIGNhbm5vdCBtYWtlL2JpbmQgc29ja2V0OiAlcyIKIG1zZ3N0ciAiaWdub3JlcmVyIG5hdm5ldGplbmVyICVzIC0ga2FuIGlra2UgbGFnZS9kaW5kZSBzb2NrZXQ6ICVtIgogCi0jOiBuZXR3b3JrLmM6NTE3CisjOiBuZXR3b3JrLmM6NjA2CiBtc2dpZCAidW5xdWFsaWZpZWQiCiBtc2dzdHIgImlra2Uga3ZhbGlmaXNlcnQiCiAKLSM6IG5ldHdvcmsuYzo1MTcKKyM6IG5ldHdvcmsuYzo2MDYKIG1zZ2lkICJuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTE5CisjOiBuZXR3b3JrLmM6NjA4CiBtc2dpZCAiZGVmYXVsdCIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTIxCisjOiBuZXR3b3JrLmM6NjEwCiBtc2dpZCAiZG9tYWluIgogbXNnc3RyICJkb21lbmUiCiAKLSM6IG5ldHdvcmsuYzo1MjQKKyM6IG5ldHdvcmsuYzo2MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNpbmcgbG9jYWwgYWRkcmVzc2VzIG9ubHkgZm9yICVzICVzIgogbXNnc3RyICJiZW55dHRlciBsb2thbGUgYWRyZXNzZXIga3VuIGZvciAlcyAlcyIKIAotIzogbmV0d29yay5jOjUyNgorIzogbmV0d29yay5jOjYxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2luZyBuYW1lc2VydmVyICVzIyVkIGZvciAlcyAlcyIKIG1zZ3N0ciAiYmVueXR0ZXIgbmF2bmV0amVuZXIgJXMjJWQgZm9yICVzICVzIgogCi0jOiBuZXR3b3JrLmM6NTI5CisjOiBuZXR3b3JrLmM6NjE4CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ1c2luZyBuYW1lc2VydmVyICVzIyVkKHZpYSAlcykiCittc2dzdHIgImJlbnl0dGVyIG5hdm5ldGplbmVyICVzIyVkIgorCisjOiBuZXR3b3JrLmM6NjIwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQiCiBtc2dzdHIgImJlbnl0dGVyIG5hdm5ldGplbmVyICVzIyVkIgogCi0jOiBkbnNtYXNxLmM6MTA2CisjOiBkbnNtYXNxLmM6MTEwCiBtc2dpZCAiIgogIklTQyBkaGNwZCBpbnRlZ3JhdGlvbiBub3QgYXZhaWxhYmxlOiBzZXQgSEFWRV9JU0NfUkVBREVSIGluIHNyYy9jb25maWcuaCIKIG1zZ3N0ciAiIgogIklTQyBkaGNwZiBpbnRlZ3Jhc2pvbiBpa2tlIHRpbGdqZW5nZWxpZzogc2V0dCBIQVZFX0lTQ19SRUFERVIgaSBzcmMvY29uZmlnLmgiCiAKLSM6IGRuc21hc3EuYzoxMjgKKyM6IGRuc21hc3EuYzoxMzIKICMsIGZ1enp5CiBtc2dpZCAiVEZUUCBzZXJ2ZXIgbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfVEZUUCBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgIkRCdXMgaWtrZSB0aWxnamVuZ2VsaWc6IHNldHQgSEFWRV9EQlVTIGkgc3JjL2NvbmZpZy5oIgogCi0jOiBkbnNtYXNxLmM6MTQyCisjOiBkbnNtYXNxLmM6MTM3Cittc2dpZCAiYXN5Y2hyb25vdXMgbG9nZ2luZyBpcyBub3QgYXZhaWxhYmxlIHVuZGVyIFNvbGFyaXMiCittc2dzdHIgIiIKKworIzogZG5zbWFzcS5jOjE1MQogbXNnaWQgIm11c3Qgc2V0IGV4YWN0bHkgb25lIGludGVyZmFjZSBvbiBicm9rZW4gc3lzdGVtcyB3aXRob3V0IElQX1JFQ1ZJRiIKIG1zZ3N0ciAibeUgc2V0dGUgbvh5YWt0aWcgZXQgaW50ZXJmYWNlIHDlIPhkZWxhZ3RlIHN5c3RlbWVyIHV0ZW4gSVBfUkVDVklGIgogCi0jOiBkbnNtYXNxLmM6MTUyCisjOiBkbnNtYXNxLmM6MTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBmaW5kIGxpc3Qgb2YgaW50ZXJmYWNlczogJXMiCiBtc2dzdHIgImZlaWxldCDlIGZpbm5lIGxpc3RlIGF2IHRpbGtueXRuaW5nZXIgKGludGVyZmFjZXMpOiAlcyIKIAotIzogZG5zbWFzcS5jOjE2MAorIzogZG5zbWFzcS5jOjE2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duIGludGVyZmFjZSAlcyIKIG1zZ3N0ciAidWtqZW50IHRpbGtueXRuaW5nIChpbnRlcmZhY2UpICVzIgogCi0jOiBkbnNtYXNxLmM6MTY2CisjOiBkbnNtYXNxLmM6MTc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGludGVyZmFjZSB3aXRoIGFkZHJlc3MgJXMiCiBtc2dzdHIgImluZ2VuIHRpbGtueXRuaW5nIChpbnRlcmZhY2UpIG1lZCBhZHJlc3NlICVzIgogCi0jOiBkbnNtYXNxLmM6MTgxIGRuc21hc3EuYzo1MzgKKyM6IGRuc21hc3EuYzoxOTIgZG5zbWFzcS5jOjU2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJEQnVzIGVycm9yOiAlcyIKIG1zZ3N0ciAiREJ1cyBmZWlsOiAlcyIKIAotIzogZG5zbWFzcS5jOjE4NAorIzogZG5zbWFzcS5jOjE5NQogbXNnaWQgIkRCdXMgbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfREJVUyBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgIkRCdXMgaWtrZSB0aWxnamVuZ2VsaWc6IHNldHQgSEFWRV9EQlVTIGkgc3JjL2NvbmZpZy5oIgogCi0jOiBkbnNtYXNxLmM6MjE2CisjOiBkbnNtYXNxLmM6MjA0CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIHBpcGU6ICVzIgogbXNnc3RyICJrYW4gaWtrZSBsZXNlICVzOiAlcyIKIAotIzogZG5zbWFzcS5jOjIzNworIzogZG5zbWFzcS5jOjIyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZm9yayBpbnRvIGJhY2tncm91bmQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozMzUKKyM6IGRuc21hc3EuYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGNoZGlyIHRvIGZpbGVzeXN0ZW0gcm9vdDogJXMiCittc2dzdHIgIiIKKworIzogZG5zbWFzcS5jOjM0OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3RhcnRlZCwgdmVyc2lvbiAlcyBETlMgZGlzYWJsZWQiCittc2dzdHIgInN0YXJ0ZXQsIHZlcnNqb24gJXMgbWVsbG9tbGFnZXIgZGVha3RpdmVydCIKKworIzogZG5zbWFzcS5jOjM1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJzdGFydGVkLCB2ZXJzaW9uICVzIGNhY2hlc2l6ZSAlZCIKIG1zZ3N0ciAic3RhcnRldCwgdmVyc2pvbiAlcyBtZWxsb21sYWdlciBzdPhycmVsc2UgJWQiCiAKLSM6IGRuc21hc3EuYzozMzcKKyM6IGRuc21hc3EuYzozNTMKICMsIGMtZm9ybWF0CiBtc2dpZCAic3RhcnRlZCwgdmVyc2lvbiAlcyBjYWNoZSBkaXNhYmxlZCIKIG1zZ3N0ciAic3RhcnRldCwgdmVyc2pvbiAlcyBtZWxsb21sYWdlciBkZWFrdGl2ZXJ0IgogCi0jOiBkbnNtYXNxLmM6MzM5CisjOiBkbnNtYXNxLmM6MzU1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBpbGUgdGltZSBvcHRpb25zOiAlcyIKIG1zZ3N0ciAia29tcGlsZXJpbmdzIG9wc2pvbmVyOiAlcyIKIAotIzogZG5zbWFzcS5jOjM0NQorIzogZG5zbWFzcS5jOjM2MQogbXNnaWQgIkRCdXMgc3VwcG9ydCBlbmFibGVkOiBjb25uZWN0ZWQgdG8gc3lzdGVtIGJ1cyIKIG1zZ3N0ciAiREJ1cyBzdPh0dGUgYWt0aXZlcnQ6IGtvYmxldCB0aWwgc3lzdGVtIGJ1c3MiCiAKLSM6IGRuc21hc3EuYzozNDcKKyM6IGRuc21hc3EuYzozNjMKIG1zZ2lkICJEQnVzIHN1cHBvcnQgZW5hYmxlZDogYnVzIGNvbm5lY3Rpb24gcGVuZGluZyIKIG1zZ3N0ciAiREJ1cyBzdPh0dGUgYWt0aXZlcnQ6IGF2dmVudGVyIGJ1c3MgdGlsa29ibGluZyIKIAotIzogZG5zbWFzcS5jOjM1MgorIzogZG5zbWFzcS5jOjM2OAogbXNnaWQgInNldHRpbmcgLS1iaW5kLWludGVyZmFjZXMgb3B0aW9uIGJlY2F1c2Ugb2YgT1MgbGltaXRhdGlvbnMiCiBtc2dzdHIgInNldHRlciAtLWJpbmQtaW50ZXJmYWNlcyBvcHNqb24gcOUgZ3J1bm4gYXYgT1MgYmVncmVuc25pbmdlciIKIAotIzogZG5zbWFzcS5jOjM1NworIzogZG5zbWFzcS5jOjM3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ3YXJuaW5nOiBpbnRlcmZhY2UgJXMgZG9lcyBub3QgY3VycmVudGx5IGV4aXN0IgogbXNnc3RyICJhZHZhcnNlbDogbmV0dHZlcmtza29ydCAlcyBla3Npc3RlcmVyIGlra2UgZm9yIHRpZGVuIgogCi0jOiBkbnNtYXNxLmM6MzYyCisjOiBkbnNtYXNxLmM6Mzc4CiBtc2dpZCAid2FybmluZzogaWdub3JpbmcgcmVzb2x2LWZpbGUgZmxhZyBiZWNhdXNlIG5vLXJlc29sdiBpcyBzZXQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM2NQorIzogZG5zbWFzcS5jOjM4MQogIywgZnV6enkKIG1zZ2lkICJ3YXJuaW5nOiBubyB1cHN0cmVhbSBzZXJ2ZXJzIGNvbmZpZ3VyZWQiCiBtc2dzdHIgInNldHRlciBvcHBzdHL4bXMgdGplbmVyIGZyYSBEQnVzIgogCi0jOiBkbnNtYXNxLmM6MzY5CisjOiBkbnNtYXNxLmM6Mzg1CiAjLCBjLWZvcm1hdAogbXNnaWQgImFzeW5jaHJvbm91cyBsb2dnaW5nIGVuYWJsZWQsIHF1ZXVlIGxpbWl0IGlzICVkIG1lc3NhZ2VzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozODEKKyM6IGRuc21hc3EuYzozOTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCwgc3RhdGljIGxlYXNlcyBvbmx5IG9uICUuMHMlcywgbGVhc2UgdGltZSAlcyIKIG1zZ3N0ciAiREhDUCwgc3RhdGlzayBsZWllIGt1biBw5SAlLjBzJXMsIGxlaWUgdGlkICVzIgogCi0jOiBkbnNtYXNxLmM6MzgyCisjOiBkbnNtYXNxLmM6Mzk4CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AsIElQIHJhbmdlICVzIC0tICVzLCBsZWFzZSB0aW1lICVzIgogbXNnc3RyICJESENQLCBJUCBvbXLlZGUgJXMgLS0gJXMsIGxlaWUgdGlkICVzIgogCi0jOiBkbnNtYXNxLmM6Mzk2CisjOiBkbnNtYXNxLmM6NDEyCiBtc2dpZCAicm9vdCBpcyAiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM5NgorIzogZG5zbWFzcS5jOjQxMgogIywgZnV6enkKIG1zZ2lkICJlbmFibGVkIgogbXNnc3RyICJkZWFrdGl2ZXJ0IgogCi0jOiBkbnNtYXNxLmM6Mzk4CisjOiBkbnNtYXNxLmM6NDE0CiBtc2dpZCAic2VjdXJlIG1vZGUiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjQxOAorIzogZG5zbWFzcS5jOjQ0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZXN0cmljdGluZyBtYXhpbXVtIHNpbXVsdGFuZW91cyBURlRQIHRyYW5zZmVycyB0byAlZCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NDI3CisjOiBkbnNtYXNxLmM6NDQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIndhcm5pbmc6IHNldHRpbmcgY2FwYWJpbGl0aWVzIGZhaWxlZDogJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjQyOQorIzogZG5zbWFzcS5jOjQ1MQogbXNnaWQgInJ1bm5pbmcgYXMgcm9vdCIKIG1zZ3N0ciAia2r4cmVyIHNvbSByb3QgKHJvb3QpIgogCi0jOiBkbnNtYXNxLmM6NTQwCisjOiBkbnNtYXNxLmM6NTYzCiBtc2dpZCAiY29ubmVjdGVkIHRvIHN5c3RlbSBEQnVzIgogbXNnc3RyICJ0aWxrb2JsZXQgdGlsIHN5c3RlbSBEQnVzIgogCi0jOiBkbnNtYXNxLmM6NjU5CisjOiBkbnNtYXNxLmM6NjgzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNoaWxkIHByb2Nlc3Mga2lsbGVkIGJ5IHNpZ25hbCAlZCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NjYzCisjOiBkbnNtYXNxLmM6Njg3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNoaWxkIHByb2Nlc3MgZXhpdGVkIHdpdGggc3RhdHVzICVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo2NjcKKyM6IGRuc21hc3EuYzo2OTEKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBleGVjdXRlICVzOiAlcyIKIG1zZ3N0ciAiZmVpbGV0IOUgZuUgdGlsZ2FuZyB0aWwgJXM6ICVtIgogCi0jOiBkbnNtYXNxLmM6NjcxCisjOiBkbnNtYXNxLmM6Njk1CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGhlbHBlcjogJXMiCiBtc2dzdHIgImZlaWxldCDlIGxlc2UgJXM6ICVtIgogCi0jOiBkbnNtYXNxLmM6NzA1CisjOiBkbnNtYXNxLmM6NzI5CiBtc2dpZCAiZXhpdGluZyBvbiByZWNlaXB0IG9mIFNJR1RFUk0iCiBtc2dzdHIgImF2c2x1dHRlciBldHRlciBtb3R0YWsgYXYgU0lHVEVSTSIKIAotIzogZG5zbWFzcS5jOjc1NgorIzogZG5zbWFzcS5jOjc4MAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAibm8gc2VydmVycyBmb3VuZCBpbiAlcywgd2lsbCByZXRyeSIKIG1zZ3N0ciAiaW50ZXQgc/hrZSBkaXJla3RpdiBmdW5uZXQgaSAlcyIKIAotIzogZGhjcC5jOjMyCisjOiBkaGNwLmM6MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBESENQIHNvY2tldCA6ICVzIgogbXNnc3RyICJrYW4gaWtrZSBsYWdlIERIQ1Agc29ja2V0IDogJXMiCiAKLSM6IGRoY3AuYzo0MQorIzogZGhjcC5jOjUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgb3B0aW9ucyBvbiBESENQIHNvY2tldDogJXMiCiBtc2dzdHIgImZlaWxldCDlIHNldHRlIG9wc2pvbmVyIHDlIERIQ1Agc29ja2V0OiAlcyIKIAotIzogZGhjcC5jOjU5CisjOiBkaGNwLmM6NjgKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgU09fUkVVU0V7QUREUnxQT1JUfSBvbiBESENQIHNvY2tldDogJXMiCiBtc2dzdHIgImZlaWxldCDlIHNldHRlIFNPX1JFVVNFQUREUiBw5SBESENQIHNvY2tldDogJXMiCiAKLSM6IGRoY3AuYzo3MgorIzogZGhjcC5jOjgxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBiaW5kIERIQ1Agc2VydmVyIHNvY2tldDogJXMiCiBtc2dzdHIgImZlaWxldCDlIGJpbmRlIERIQ1AgdGplbmVyIHNvY2tldDogJXMiCiAKLSM6IGRoY3AuYzo4NQorIzogZGhjcC5jOjk0CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgSUNNUCByYXcgc29ja2V0OiAlcy4iCiBtc2dzdHIgImthbiBpa2tlIGxhZ2UgSUNNUCByYXcgc29ja2V0OiAlcyIKIAotIzogZGhjcC5jOjEwMAotIywgYy1mb3JtYXQKLW1zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUuIgotbXNnc3RyICJkdWJsaXNlcnRlIElQIGFkcmVzc2VyIGkgJXMgZGhjcC1jb25maWcgZGlyZWt0aXYuIgotCi0jOiBkaGNwLmM6MTAzCi0jLCBmdXp6eSwgYy1mb3JtYXQKLW1zZ2lkICJpbGxlZ2FsIGRvbWFpbiAlcyBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUuIgotbXNnc3RyICJkdWJsaXNlcnRlIElQIGFkcmVzc2VyIGkgJXMgZGhjcC1jb25maWcgZGlyZWt0aXYuIgotCi0jOiBkaGNwLmM6MjIxCisjOiBkaGNwLmM6MjIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcGFja2V0IHJlY2VpdmVkIG9uICVzIHdoaWNoIGhhcyBubyBhZGRyZXNzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzozNTIKKyM6IGRoY3AuYzozODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCByYW5nZSAlcyAtLSAlcyBpcyBub3QgY29uc2lzdGVudCB3aXRoIG5ldG1hc2sgJXMiCiBtc2dzdHIgIkRIQ1Agb21y5WRlICVzIC0tICVzIGVyIGlra2Uga29uc2lzdGVudCBtZWQgbmV0dG1hc2tlICVzIgogCi0jOiBkaGNwLmM6NjY5CisjOiBkaGNwLmM6NzA5CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVhZCAlczolcyIKIG1zZ3N0ciAiZmVpbGV0IOUgbGVzZSAlczogJW0iCiAKLSM6IGRoY3AuYzo3MDQKKyM6IGRoY3AuYzo3NDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIGxpbmUgYXQgJXMgbGluZSAlZCIKIG1zZ3N0ciAiZOVybGlnIGxpbmplIHZlZCAlcyBsaW5qZSAlZCIKIAotIzogZGhjcC5jOjgyNgorIzogZGhjcC5jOjg0NworIywgYy1mb3JtYXQKK21zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUuIgorbXNnc3RyICJkdWJsaXNlcnRlIElQIGFkcmVzc2VyIGkgJXMgZGhjcC1jb25maWcgZGlyZWt0aXYuIgorCisjOiBkaGNwLmM6ODUwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiAlcy4iCiBtc2dzdHIgImR1Ymxpc2VydGUgSVAgYWRyZXNzZXIgaSAlcyBkaGNwLWNvbmZpZyBkaXJla3Rpdi4iCiAKLSM6IGRoY3AuYzo4MzIKKyM6IGRoY3AuYzo4NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCittc2dzdHIgImR1Ymxpc2VydGUgSVAgYWRyZXNzZXIgaSAlcyBkaGNwLWNvbmZpZyBkaXJla3Rpdi4iCisKKyM6IGRoY3AuYzo4NjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiaWxsZWdhbCBkb21haW4gJXMgaW4gJXMuIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4MzkKLSMsIGZ1enp5LCBjLWZvcm1hdAotbXNnaWQgInJlYWQgJXMgLSAlZCBob3N0cyIKLW1zZ3N0ciAibGVzICVzIC0gJWQgYWRyZXNzZXIiCisjOiBkaGNwLmM6ODk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGhhcyBtb3JlIHRoZW4gb25lIGFkZHJlc3MgaW4gaG9zdHNmaWxlLCB1c2luZyAlcyBmb3IgREhDUCIKK21zZ3N0ciAiIgogCi0jOiBkaGNwLmM6ODY2CisjOiBkaGNwLmM6OTA0CiAjLCBjLWZvcm1hdAogbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzICglcykgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlIgogbXNnc3RyICJkdWJsaXNlcnRlIElQIGFkcmVzc2VyIGkgJXMgKCVzKSBpIGRoY3AtY29uZmlnIGRpcmVrdGl2IgogCi0jOiBsZWFzZS5jOjU0CisjOiBsZWFzZS5jOjU4CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiBvciBjcmVhdGUgbGVhc2UgZmlsZSAlczogJXMiCiBtc2dzdHIgImthbiBpa2tlIOVwbmUgZWxsZXIgbGFnZSBsZWllIGZpbDogJXMiCiAKLSM6IGxlYXNlLmM6ODAKKyM6IGxlYXNlLmM6ODQKIG1zZ2lkICJ0b28gbWFueSBzdG9yZWQgbGVhc2VzIgogbXNnc3RyICJmb3IgbWFuZ2UgbGFncmVkZSBsZWllciIKIAotIzogbGVhc2UuYzoxMjEKKyM6IGxlYXNlLmM6MTI1CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcnVuIGxlYXNlLWluaXQgc2NyaXB0ICVzOiAlcyIKIG1zZ3N0ciAia2FuIGlra2UgbGVzZSAlczogJXMiCiAKLSM6IGxlYXNlLmM6MTI3CisjOiBsZWFzZS5jOjEzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJsZWFzZS1pbml0IHNjcmlwdCByZXR1cm5lZCBleGl0IGNvZGUgJXMiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzoyMzQKKyM6IGxlYXNlLmM6MjM4CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gd3JpdGUgJXM6ICVzIChyZXRyeSBpbiAldXMpIgogbXNnc3RyICJmZWlsZXQg5SBsZXNlICVzOiAlbSIKIAotIzogcmZjMjEzMS5jOjMwMAorIzogcmZjMjEzMS5jOjMwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBhZGRyZXNzIHJhbmdlIGF2YWlsYWJsZSBmb3IgREhDUCByZXF1ZXN0ICVzICVzIgogbXNnc3RyICJpbmdlbiBhZHJlc3NlIG9tcuVkZSB0aWxnamVuZ2VsaWcgZm9yIERIQ1Aga3JhdiAlcyAlcyIKIAotIzogcmZjMjEzMS5jOjMwMQorIzogcmZjMjEzMS5jOjMwNAogbXNnaWQgIndpdGggc3VibmV0IHNlbGVjdG9yIgogbXNnc3RyICJtZWQgc3VibmV0IHZlbGdlciIKIAotIzogcmZjMjEzMS5jOjMwMQorIzogcmZjMjEzMS5jOjMwNAogbXNnaWQgInZpYSIKIG1zZ3N0ciAidmlhIgogCi0jOiByZmMyMTMxLmM6MzEyCisjOiByZmMyMTMxLmM6MzE1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcGFja2V0OiB0cmFuc2FjdGlvbi1pZCBpcyAldSIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzE3CisjOiByZmMyMTMxLmM6MzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBESENQIHN1Ym5ldDogJXMvJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjMxOQorIzogcmZjMjEzMS5jOjMyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgREhDUCByYW5nZTogJXMgLS0gJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjM0NyByZmMyMTMxLmM6Mzc4CisjOiByZmMyMTMxLmM6MzUwIHJmYzIxMzEuYzozODEKIG1zZ2lkICJkaXNhYmxlZCIKIG1zZ3N0ciAiZGVha3RpdmVydCIKIAotIzogcmZjMjEzMS5jOjM5MCByZmMyMTMxLmM6ODUyCisjOiByZmMyMTMxLmM6MzkzIHJmYzIxMzEuYzo4NzMKIG1zZ2lkICJhZGRyZXNzIGluIHVzZSIKIG1zZ3N0ciAiYWRyZXNzZSBpIGJydWsiCiAKLSM6IHJmYzIxMzEuYzozOTMKKyM6IHJmYzIxMzEuYzozOTYKIG1zZ2lkICJubyBhZGRyZXNzIGNvbmZpZ3VyZWQiCiBtc2dzdHIgImluZ2VuIGFkcmVzc2Uga29uZmlndXJlcnQiCiAKLSM6IHJmYzIxMzEuYzo0MDYgcmZjMjEzMS5jOjcyMAorIzogcmZjMjEzMS5jOjQwOSByZmMyMTMxLmM6NzM2CiBtc2dpZCAibm8gYWRkcmVzcyBhdmFpbGFibGUiCiBtc2dzdHIgImluZ2VuIGFkcmVzc2UgdGlsZ2plbmdlbGlnIgogCi0jOiByZmMyMTMxLmM6NDE2Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkxpbWl0IG9mICVkIGxlYXNlcyBleGNlZWRlZC4iCi1tc2dzdHIgIiIKLQotIzogcmZjMjEzMS5jOjQxNyByZmMyMTMxLmM6ODYyCisjOiByZmMyMTMxLmM6NDE4IHJmYzIxMzEuYzo4ODMKIG1zZ2lkICJubyBsZWFzZXMgbGVmdCIKIG1zZ3N0ciAiaW5nZW4gbGVpZXIgaWdqZW4iCiAKLSM6IHJmYzIxMzEuYzo0MjEgcmZjMjEzMS5jOjgyNgorIzogcmZjMjEzMS5jOjQyMSByZmMyMTMxLmM6ODQ3CiBtc2dpZCAid3JvbmcgbmV0d29yayIKIG1zZ3N0ciAiZ2FsdCBuZXR0dmVyayIKIAotIzogcmZjMjEzMS5jOjUxOQorIzogcmZjMjEzMS5jOjUyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJJZ25vcmluZyBkb21haW4gJXMgZm9yIERIQ1AgaG9zdCBuYW1lICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo1OTgKKyM6IHJmYzIxMzEuYzo2MTQKICMsIGMtZm9ybWF0CiBtc2dpZCAiVmVuZG9yIGNsYXNzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NjAwCisjOiByZmMyMTMxLmM6NjE2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZXIgY2xhc3M6ICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo2NDEKKyM6IHJmYzIxMzEuYzo2NTcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImRpc2FibGluZyBESENQIHN0YXRpYyBhZGRyZXNzICVzIGZvciAlcyIKIG1zZ3N0ciAiZGVha3RpdmVyZXIgREhDUCBzdGF0aXNrIGFkcmVzc2UgJXMiCiAKLSM6IHJmYzIxMzEuYzo2NjIKKyM6IHJmYzIxMzEuYzo2NzgKIG1zZ2lkICJ1bmtub3duIGxlYXNlIgogbXNnc3RyICJ1a2plbnQgbGVpZSIKIAotIzogcmZjMjEzMS5jOjY3MSByZmMyMTMxLmM6OTcwCisjOiByZmMyMTMxLmM6Njg3IHJmYzIxMzEuYzo5OTIKIG1zZ2lkICJpZ25vcmVkIgogbXNnc3RyICJvdmVyc2V0dCIKIAotIzogcmZjMjEzMS5jOjY5MQorIzogcmZjMjEzMS5jOjcwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgdXNpbmcgY29uZmlndXJlZCBhZGRyZXNzICVzIGJlY2F1c2UgaXQgaXMgbGVhc2VkIHRvICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo3MDEKKyM6IHJmYzIxMzEuYzo3MTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdCB1c2luZyBjb25maWd1cmVkIGFkZHJlc3MgJXMgYmVjYXVzZSBpdCBpcyBpbiB1c2UgYnkgdGhlIHNlcnZlciBvciByZWxheSIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NzA0CisjOiByZmMyMTMxLmM6NzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCB1c2luZyBjb25maWd1cmVkIGFkZHJlc3MgJXMgYmVjYXVzZSBpdCB3YXMgcHJldmlvdXNseSBkZWNsaW5lZCIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NzE4IHJmYzIxMzEuYzo4NTUKKyM6IHJmYzIxMzEuYzo3MzQgcmZjMjEzMS5jOjg3NgogbXNnaWQgIm5vIHVuaXF1ZS1pZCIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6Nzg5CisjOiByZmMyMTMxLmM6ODA2CiBtc2dpZCAid3JvbmcgYWRkcmVzcyIKIG1zZ3N0ciAiZ2FsIGFkcmVzc2UiCiAKLSM6IHJmYzIxMzEuYzo4MDIKKyM6IHJmYzIxMzEuYzo4MjMKIG1zZ2lkICJsZWFzZSBub3QgZm91bmQiCiBtc2dzdHIgImxlaWUgaWtrZSBmdW5uZXQiCiAKLSM6IHJmYzIxMzEuYzo4MzQKKyM6IHJmYzIxMzEuYzo4NTUKIG1zZ2lkICJhZGRyZXNzIG5vdCBhdmFpbGFibGUiCiBtc2dzdHIgImFkcmVzc2UgaWtrZSB0aWxnamVuZ2VsaWciCiAKLSM6IHJmYzIxMzEuYzo4NDUKKyM6IHJmYzIxMzEuYzo4NjYKIG1zZ2lkICJzdGF0aWMgbGVhc2UgYXZhaWxhYmxlIgogbXNnc3RyICJzdGF0aXNrIGxlaWUgdGlsZ2plbmdlbGlnIgogCi0jOiByZmMyMTMxLmM6ODQ5CisjOiByZmMyMTMxLmM6ODcwCiBtc2dpZCAiYWRkcmVzcyByZXNlcnZlZCIKIG1zZ3N0ciAiYWRyZXNzZSByZXNlcnZlcnQiCiAKLSM6IHJmYzIxMzEuYzoxMjUyCisjOiByZmMyMTMxLmM6MTI2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWdzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MTMzNAorIzogcmZjMjEzMS5jOjEzNTIKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBzZW5kIERIQ1AvQk9PVFAgb3B0aW9uICVkOiBubyBzcGFjZSBsZWZ0IGluIHBhY2tldCIKIG1zZ3N0ciAia2FuIGlra2Ugc2VuZGUgREhDUCBvcHNqb24gJWQ6IGlra2UgbWVyIHBsYXNzIGkgcGFra2VuIgogCi0jOiByZmMyMTMxLmM6MTQ4OAorIzogcmZjMjEzMS5jOjE1MDcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgInJlcXVlc3RlZCBvcHRpb25zOiAlcyIKIG1zZ3N0ciAia29tcGlsZXJpbmdzIG9wc2pvbmVyOiAlcyIKIAotIzogcmZjMjEzMS5jOjE1MTkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAic2VydmVyIG5hbWU6ICVzIgotbXNnc3RyICIiCi0KLSM6IHJmYzIxMzEuYzoxNTMxCi0jLCBjLWZvcm1hdAotbXNnaWQgImJvb3RmaWxlIG5hbWU6ICVzIgotbXNnc3RyICIiCi0KLSM6IHJmYzIxMzEuYzoxNTQwCisjOiByZmMyMTMxLmM6MTU1NgogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAibmV4dCBzZXJ2ZXI6ICVzIgogbXNnc3RyICJEQnVzIGZlaWw6ICVzIgogCi0jOiBuZXRsaW5rLmM6NTkKKyM6IHJmYzIxMzEuYzoxNTgwCisjLCBjLWZvcm1hdAorbXNnaWQgImJvb3RmaWxlIG5hbWU6ICVzIgorbXNnc3RyICIiCisKKyM6IHJmYzIxMzEuYzoxNTgzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlcnZlciBuYW1lOiAlcyIKK21zZ3N0ciAiIgorCisjOiBuZXRsaW5rLmM6NjMKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgbmV0bGluayBzb2NrZXQ6ICVzIgogbXNnc3RyICJrYW4gaWtrZSBiaW5kZSBuZXRsaW5rIHNvY2tldDogJXMiCiAKLSM6IG5ldGxpbmsuYzoyMjYKKyM6IG5ldGxpbmsuYzoyMzAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIm5ldGxpbmsgcmV0dXJucyBlcnJvcjogJXMiCiBtc2dzdHIgIkRCdXMgZmVpbDogJXMiCiAKLSM6IGRidXMuYzoxMTEKKyM6IGRidXMuYzoxMTUKIG1zZ2lkICJhdHRlbXB0IHRvIHNldCBhbiBJUHY2IHNlcnZlciBhZGRyZXNzIHZpYSBEQnVzIC0gbm8gSVB2NiBzdXBwb3J0IgogbXNnc3RyICJmb3Jz+GsgcOUg5SBzZXR0ZSBlbiBJUHY2IHRqZW5lciBhZHJlc3NlIHZpYSBEQnVzIC0gaW5nZW4gSVB2NiBzdPh0dGUiCiAKLSM6IGRidXMuYzoyMzcKKyM6IGRidXMuYzoyNDEKIG1zZ2lkICJzZXR0aW5nIHVwc3RyZWFtIHNlcnZlcnMgZnJvbSBEQnVzIgogbXNnc3RyICJzZXR0ZXIgb3Bwc3Ry+G1zIHRqZW5lciBmcmEgREJ1cyIKIAotIzogZGJ1cy5jOjI3NQorIzogZGJ1cy5jOjI3OQogbXNnaWQgImNvdWxkIG5vdCByZWdpc3RlciBhIERCdXMgbWVzc2FnZSBoYW5kbGVyIgogbXNnc3RyICJrdW5uZSBpa2tlIHJlZ2lzdHJlcmUgZW4gREJ1cyBtZWxkaW5nc2jlbmR0ZXJlciIKIAotIzogYnBmLmM6NDMKKyM6IGJwZi5jOjE0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIERIQ1AgQlBGIHNvY2tldDogJXMiCiBtc2dzdHIgImthbiBpa2tlIGxhZ2UgREhDUCBCUEYgc29ja2V0OiAlcyIKIAotIzogYnBmLmM6NzEKKyM6IGJwZi5jOjE3NAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiREhDUCByZXF1ZXN0IGZvciB1bnN1cHBvcnRlZCBoYXJkd2FyZSB0eXBlICglZCkgcmVjZWl2ZWQgb24gJXMiCiBtc2dzdHIgIkRIQ1Aga3JhdiBmb3IgaWtrZSBzdPh0dGV0IG1hc2tpbnZhcmUgdHlwZSAoJWQpIG1vdHRhdHQgcOUgJXMiCiAKLSM6IHRmdHAuYzoxNTgKKyM6IHRmdHAuYzoxNzMKK21zZ2lkICJ1bmFibGUgdG8gZ2V0IGZyZWUgcG9ydCBmb3IgVEZUUCIKK21zZ3N0ciAiIgorCisjOiB0ZnRwLmM6MTg4CiAjLCBjLWZvcm1hdAogbXNnaWQgInVuc3VwcG9ydGVkIHJlcXVlc3QgZnJvbSAlcyIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6MjM2CisjOiB0ZnRwLmM6MjY2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgc2VudCAlcyB0byAlcyIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6MjU5CisjOiB0ZnRwLmM6Mjg5CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmaWxlICVzIG5vdCBmb3VuZCIKIG1zZ3N0ciAibGVpZSBpa2tlIGZ1bm5ldCIKIAotIzogdGZ0cC5jOjM2OQorIzogdGZ0cC5jOjM5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJURlRQIGVycm9yICVkICVzIHJlY2VpdmVkIGZyb20gJXMiCiBtc2dzdHIgIiIKIAotIzogdGZ0cC5jOjQwMAorIzogdGZ0cC5jOjQzMAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiVEZUUCBmYWlsZWQgc2VuZGluZyAlcyB0byAlcyIKIG1zZ3N0ciAiZmVpbGV0IOUgbGVzZSAlczogJW0iCiAKLSM6IGxvZy5jOjY5CisjOiBsb2cuYzo3MwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzIgogbXNnc3RyICJrYW4gaWtrZSDlcG5lICVzOiVzIgogCi0jOiBsb2cuYzoxNDYKKyM6IGxvZy5jOjg5CisjLCBmdXp6eSwgYy1mb3JtYXQKK21zZ2lkICJ3YXJuaW5nOiBmYWlsZWQgdG8gY2hhbmdlIG93bmVyIG9mICVzOiAlcyIKK21zZ3N0ciAiZmVpbGV0IOUgbGFzdGUgbmF2biBmcmEgJXM6ICVtIgorCisjOiBsb2cuYzoxNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAib3ZlcmZsb3c6ICVkIGxvZyBlbnRyaWVzIGxvc3QiCiBtc2dzdHIgIiIKIAotIzogbG9nLmM6MjIzCisjOiBsb2cuYzoyMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAibG9nIGZhaWxlZDogJXMiCiBtc2dzdHIgIiIKIAotIzogbG9nLmM6Mzc4CisjOiBsb2cuYzozOTQKIG1zZ2lkICJGQUlMRUQgdG8gc3RhcnQgdXAiCiBtc2dzdHIgIkZFSUxFVCDlIHN0YXJ0ZSBvcHAiCiAKKyMsIGZ1enp5CisjfiBtc2dpZCAicmVhZCAlcyAtICVkIGhvc3RzIgorI34gbXNnc3RyICJsZXMgJXMgLSAlZCBhZHJlc3NlciIKKwogI34gbXNnaWQgImJhZCBkaGNwLWhvc3QiCiAjfiBtc2dzdHIgImTlcmxpZyBkaGNwLXZlcnQiCiAKZGlmZiAtLWdpdCBhL3BvL3BsLnBvIGIvcG8vcGwucG8KaW5kZXggN2Q5ZjE5OS4uN2NmNTI0NyAxMDA2NDQKLS0tIGEvcG8vcGwucG8KKysrIGIvcG8vcGwucG8KQEAgLTYsNyArNiw3IEBACiBtc2dzdHIgIiIKICJQcm9qZWN0LUlkLVZlcnNpb246IGRuc21hc3EgMi4yNFxuIgogIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKLSJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwNy0wOC0yOSAxMTowOSswMTAwXG4iCisiUE9ULUNyZWF0aW9uLURhdGU6IDIwMDgtMDItMTIgMTE6MDQrMDAwMFxuIgogIlBPLVJldmlzaW9uLURhdGU6IDIwMDUtMTAtMDQgMTk6MTcrMDEwMFxuIgogIkxhc3QtVHJhbnNsYXRvcjogVG9tYXN6IFNvY2hh8XNraSA8bmVyZGhlcm9AZ21haWwuY29tPlxuIgogIkxhbmd1YWdlLVRlYW06IFBvbGlzaCA8dHJhbnNsYXRpb24tdGVhbS1wbEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+XG4iCkBAIC0xNiwzMSArMTYsMzEgQEAKICJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTM7IHBsdXJhbD0obj09MSA/IDAgOiBuJTEwPj0yICYmIG4lMTA8PTQgJiYgKG4lMTAwPDEwICIKICJ8fCBuJTEwMD49MjApID8gMSA6IDIpO1xuIgogCi0jOiBjYWNoZS5jOjY3MQorIzogY2FjaGUuYzo2ODAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsb2FkIG5hbWVzIGZyb20gJXM6ICVzIgogbXNnc3RyICJis7FkILNhZG93YW5pYSBuYXp3IHogJXM6ICVtIgogCi0jOiBjYWNoZS5jOjcwNSBkaGNwLmM6NzE3CisjOiBjYWNoZS5jOjcxNCBkaGNwLmM6NzU3CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJiYWQgYWRkcmVzcyBhdCAlcyBsaW5lICVkIgogbXNnc3RyICJis+pkbmEgbmF6d2EgdyAlcywgbGluaWEgJWQiCiAKLSM6IGNhY2hlLmM6NzUyIGRoY3AuYzo3MzEKKyM6IGNhY2hlLmM6NzYxIGRoY3AuYzo3NzEKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIG5hbWUgYXQgJXMgbGluZSAlZCIKIG1zZ3N0ciAiYrPqZG5hIG5hendhIHcgJXMsIGxpbmlhICVkIgogCi0jOiBjYWNoZS5jOjc1OSBkaGNwLmM6Nzg1CisjOiBjYWNoZS5jOjc2OCBkaGNwLmM6ODI1CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlYWQgJXMgLSAlZCBhZGRyZXNzZXMiCiBtc2dzdHIgInByemVjenl0YW5vICVzIC0gJWQgYWRyZXPzdyIKIAotIzogY2FjaGUuYzo3OTcKKyM6IGNhY2hlLmM6ODA2CiBtc2dpZCAiY2xlYXJlZCBjYWNoZSIKIG1zZ3N0ciAid3ljenlzemN6b25vIGNhY2hlIgogCi0jOiBjYWNoZS5jOjg0NAorIzogY2FjaGUuYzo4NTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIm5vdCBnaXZpbmcgbmFtZSAlcyB0byB0aGUgREhDUCBsZWFzZSBvZiAlcyBiZWNhdXNlIHRoZSBuYW1lIGV4aXN0cyBpbiAlcyAiCkBAIC00OSwzODggKzQ5LDQzOSBAQAogIm5hendhICVzIG5pZSB6b3N0YbNhIG5hZGFuYSBkemllcr9hd2llIERIQ1AgJXMsIHBvbmlld2G/IG5hendhIGlzdG5pZWplIHcgJXMgIgogImkgbWEgYWRyZXMgJXMiCiAKLSM6IGNhY2hlLmM6ODg0CisjOiBjYWNoZS5jOjkwNworIywgYy1mb3JtYXQKK21zZ2lkICJ0aW1lICVsdSIKK21zZ3N0ciAiIgorCisjOiBjYWNoZS5jOjkwOAogIywgZnV6enksIGMtZm9ybWF0Ci1tc2dpZCAiIgotInRpbWUgJWx1LCBjYWNoZSBzaXplICVkLCAlZC8lZCBjYWNoZSBpbnNlcnRpb25zIHJlLXVzZWQgdW5leHBpcmVkIGNhY2hlICIKLSJlbnRyaWVzLiIKK21zZ2lkICJjYWNoZSBzaXplICVkLCAlZC8lZCBjYWNoZSBpbnNlcnRpb25zIHJlLXVzZWQgdW5leHBpcmVkIGNhY2hlIGVudHJpZXMuIgogbXNnc3RyICIiCiAid2llbGtvtuYgY2FjaGUgJWQsICVkLyVkIHdwaXPzdyBjYWNoZSB1v3l0byBwb25vd25pZSB6IG5pZXd5Z2Fzs3ljaCB3cGlz83ciCiAKLSM6IHV0aWwuYzoxNTcgb3B0aW9uLmM6NzU4CisjOiBjYWNoZS5jOjkxMAorIywgYy1mb3JtYXQKK21zZ2lkICJxdWVyaWVzIGZvcndhcmRlZCAldSwgcXVlcmllcyBhbnN3ZXJlZCBsb2NhbGx5ICV1IgorbXNnc3RyICIiCisKKyM6IGNhY2hlLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlcnZlciAlcyMlZDogcXVlcmllcyBzZW50ICV1LCByZXRyaWVkIG9yIGZhaWxlZCAldSIKK21zZ3N0ciAiIgorCisjOiB1dGlsLmM6MTYwCiBtc2dpZCAiY291bGQgbm90IGdldCBtZW1vcnkiCiBtc2dzdHIgIm5pZSBtb79uYSBwb2JyYeYgcGFtaepjaSIKIAotIzogdXRpbC5jOjE2NworIzogdXRpbC5jOjE3MAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlICVkIGJ5dGVzIgogbXNnc3RyICJis7FkILNhZG93YW5pYSAlczogJW0iCiAKLSM6IHV0aWwuYzoyNzIKKyM6IHV0aWwuYzoyNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5maW5pdGUiCiBtc2dzdHIgIm5pZXNrb/Fjem9uYSIKIAotIzogb3B0aW9uLmM6MTg4CisjOiBvcHRpb24uYzoyNDQKIG1zZ2lkICJTcGVjaWZ5IGxvY2FsIGFkZHJlc3MoZXMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIkFkcmVzKHkpIGxva2FsbmUgZG8gbmFzs3VjaGl3YW5pYS4iCiAKLSM6IG9wdGlvbi5jOjE4OQorIzogb3B0aW9uLmM6MjQ1CiBtc2dpZCAiUmV0dXJuIGlwYWRkciBmb3IgYWxsIGhvc3RzIGluIHNwZWNpZmllZCBkb21haW5zLiIKIG1zZ3N0ciAiWndyYWNhbmllIGFkcmVzdSBJUCBkbGEgd3N6eXN0a2ljaCBob3N083cgdyBwb2RhbnljaCBkb21lbmFjaC4iCiAKLSM6IG9wdGlvbi5jOjE5MAorIzogb3B0aW9uLmM6MjQ2CiBtc2dpZCAiRmFrZSByZXZlcnNlIGxvb2t1cHMgZm9yIFJGQzE5MTggcHJpdmF0ZSBhZGRyZXNzIHJhbmdlcy4iCiBtc2dzdHIgIlN5bXVsYWNqYSByZXZlcnNlIGxvb2t1cHMgZGxhIGFkcmVz83cgcHJ5d2F0bnljaCBvcGlzYW55Y2ggdyBSRkMxOTE4LiIKIAotIzogb3B0aW9uLmM6MTkxCisjOiBvcHRpb24uYzoyNDcKIG1zZ2lkICJUcmVhdCBpcGFkZHIgYXMgTlhET01BSU4gKGRlZmVhdHMgVmVyaXNpZ24gd2lsZGNhcmQpLiIKIG1zZ3N0ciAiQWRyZXMgSVAgdHJha3Rvd2FueSBqYWsgTlhET01BSU4iCiAKLSM6IG9wdGlvbi5jOjE5MgorIzogb3B0aW9uLmM6MjQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIGNhY2hlIGluIGVudHJpZXMgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIldpZWxrb7bmIHBhbWnqY2kgY2FjaGUgd2Ugd3Bpc2FjaCAoZG9tebZsbmE6ICVzKSIKIAotIzogb3B0aW9uLmM6MTkzCisjOiBvcHRpb24uYzoyNDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBjb25maWd1cmF0aW9uIGZpbGUgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIqZjaWW/a2EgZG8gcGxpa3Uga29uZmlndXJhY3lqbmVnbyAoZG9tebZsbmE6ICVzKSIKIAotIzogb3B0aW9uLmM6MTk0CisjOiBvcHRpb24uYzoyNTAKIG1zZ2lkICJEbyBOT1QgZm9yayBpbnRvIHRoZSBiYWNrZ3JvdW5kOiBydW4gaW4gZGVidWcgbW9kZS4iCiBtc2dzdHIgIk5JRSB0d/NyeiBwcm9jZXN1IHBvdG9tbmVnbyB3IHRsZTogZHppYbNhbmllIHcgdHJ5YmllIGRlYnVnb3dhbmlhLiIKIAotIzogb3B0aW9uLmM6MTk1CisjOiBvcHRpb24uYzoyNTEKIG1zZ2lkICJEbyBOT1QgZm9yd2FyZCBxdWVyaWVzIHdpdGggbm8gZG9tYWluIHBhcnQuIgogbXNnc3RyICJXebOxY3plbmllIHByemVrYXp5d2FuaWEgemFweXRh8SBiZXogY3rqtmNpIGRvbWVub3dlai4iCiAKLSM6IG9wdGlvbi5jOjE5NgorIzogb3B0aW9uLmM6MjUyCiBtc2dpZCAiUmV0dXJuIHNlbGYtcG9pbnRpbmcgTVggcmVjb3JkcyBmb3IgbG9jYWwgaG9zdHMuIgogbXNnc3RyICJad3JhY2FuaWUgc2Ftb3dza2F6dWqxY2VnbyByZWtvcmR1IE1YIGRsYSBsb2thbG55Y2ggaG9zdPN3LiIKIAotIzogb3B0aW9uLmM6MTk3CisjOiBvcHRpb24uYzoyNTMKIG1zZ2lkICJFeHBhbmQgc2ltcGxlIG5hbWVzIGluIC9ldGMvaG9zdHMgd2l0aCBkb21haW4tc3VmZml4LiIKIG1zZ3N0ciAiUm96d2lqYW5pZSBwcm9zdHljaCBuYXp3IHogL2V0Yy9ob3N0cyBwcnp5cm9zdGtpZW0gZG9tZW5vd3ltLiIKIAotIzogb3B0aW9uLmM6MTk4CisjOiBvcHRpb24uYzoyNTQKIG1zZ2lkICJEb24ndCBmb3J3YXJkIHNwdXJpb3VzIEROUyByZXF1ZXN0cyBmcm9tIFdpbmRvd3MgaG9zdHMuIgogbXNnc3RyICJXebOxY3plbmllIHByemVrYXp5d2FuaWEgcG96b3JueWNoIHphcHl0YfEgRE5TIHoga29tcHV0ZXLzdyBXaW5kb3dzIgogCi0jOiBvcHRpb24uYzoxOTkKKyM6IG9wdGlvbi5jOjI1NQogbXNnaWQgIkVuYWJsZSBESENQIGluIHRoZSByYW5nZSBnaXZlbiB3aXRoIGxlYXNlIGR1cmF0aW9uLiIKIG1zZ3N0ciAiRW5hYmxlIERIQ1AgdyB6YWtyZXNpZSBva3JltmxvbnltIGN6YXNlbSBkemllcr9hd3kuIgogCi0jOiBvcHRpb24uYzoyMDAKKyM6IG9wdGlvbi5jOjI1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGFuZ2UgdG8gdGhpcyBncm91cCBhZnRlciBzdGFydHVwIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJQbyBzdGFyY2llIHptaWFuYSBncnVweSBwcm9jZXN1IG5hIHBvZGFusSAoZG9tebZsbmllOiAlcykuIgogCi0jOiBvcHRpb24uYzoyMDEKKyM6IG9wdGlvbi5jOjI1NwogbXNnaWQgIlNldCBhZGRyZXNzIG9yIGhvc3RuYW1lIGZvciBhIHNwZWNpZmllZCBtYWNoaW5lLiIKIG1zZ3N0ciAiVXN0YXdpZW5pZSBhZHJlc3UgbHViIG5hend5IGhvc3RhIGRsYSBva3JltmxvbmVqIG1hc3p5bnkuIgogCi0jOiBvcHRpb24uYzoyMDIKKyM6IG9wdGlvbi5jOjI1OAogbXNnaWQgIlJlYWQgREhDUCBob3N0IHNwZWNzIGZyb20gZmlsZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDMKKyM6IG9wdGlvbi5jOjI1OQorbXNnaWQgIlJlYWQgREhDUCBvcHRpb24gc3BlY3MgZnJvbSBmaWxlIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJEbyBOT1QgbG9hZCAlcyBmaWxlLiIKIG1zZ3N0ciAiSWdub3Jvd2FuaWUgcGxpa3UgJXMuIgogCi0jOiBvcHRpb24uYzoyMDQKKyM6IG9wdGlvbi5jOjI2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IGEgaG9zdHMgZmlsZSB0byBiZSByZWFkIGluIGFkZGl0aW9uIHRvICVzLiIKIG1zZ3N0ciAiRG9kYXRrb3d5IHBsaWsgaG9zdPN3IHBvemEgJXMuIgogCi0jOiBvcHRpb24uYzoyMDUKKyM6IG9wdGlvbi5jOjI2MgogbXNnaWQgIlNwZWNpZnkgaW50ZXJmYWNlKHMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIkludGVyZmVqcyh5KSBkbyBuYXOzdWNoaXdhbmlhLiIKIAotIzogb3B0aW9uLmM6MjA2CisjOiBvcHRpb24uYzoyNjMKIG1zZ2lkICJTcGVjaWZ5IGludGVyZmFjZShzKSBOT1QgdG8gbGlzdGVuIG9uLiIKIG1zZ3N0ciAiSW50ZXJmZWpzKHkpLCBuYSBrdPNyeWNoIG5pZSBuYXOzdWNoaXdh5i4iCiAKLSM6IG9wdGlvbi5jOjIwNworIzogb3B0aW9uLmM6MjY0CiAjLCBmdXp6eQogbXNnaWQgIk1hcCBESENQIHVzZXIgY2xhc3MgdG8gdGFnLiIKIG1zZ3N0ciAiV7OxY3plbmllIG1hcG93YW5pYSBrbGFzeSB1v3l0a293bmlrYSBESENQIGRvIG9wdGlvbiBzZXQuIgogCi0jOiBvcHRpb24uYzoyMDgKKyM6IG9wdGlvbi5jOjI2NQogbXNnaWQgIk1hcCBSRkMzMDQ2IGNpcmN1aXQtaWQgdG8gdGFnLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDkKKyM6IG9wdGlvbi5jOjI2NgogbXNnaWQgIk1hcCBSRkMzMDQ2IHJlbW90ZS1pZCB0byB0YWcuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxMAorIzogb3B0aW9uLmM6MjY3CiBtc2dpZCAiTWFwIFJGQzM5OTMgc3Vic2NyaWJlci1pZCB0byB0YWcuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxMQorIzogb3B0aW9uLmM6MjY4CiAjLCBmdXp6eQogbXNnaWQgIkRvbid0IGRvIERIQ1AgZm9yIGhvc3RzIHdpdGggdGFnIHNldC4iCiBtc2dzdHIgIiIKICJXebOxY3plbmllIG9kcG93aWFkYW5pYSBuYSC/YWRhbmlhIERIQ1AgaG9zdPN3IG9rcmW2bG9ueWNoIHcgb3B0aW9uIHNldCIKIAotIzogb3B0aW9uLmM6MjEyCisjOiBvcHRpb24uYzoyNjkKKyMsIGZ1enp5Cittc2dpZCAiRm9yY2UgYnJvYWRjYXN0IHJlcGxpZXMgZm9yIGhvc3RzIHdpdGggdGFnIHNldC4iCittc2dzdHIgIiIKKyJXebOxY3plbmllIG9kcG93aWFkYW5pYSBuYSC/YWRhbmlhIERIQ1AgaG9zdPN3IG9rcmW2bG9ueWNoIHcgb3B0aW9uIHNldCIKKworIzogb3B0aW9uLmM6MjcwCiBtc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZCwgZG8gTk9UIHJ1biBpbiBkZWJ1ZyBtb2RlLiIKIG1zZ3N0ciAiIgogIld5s7FjemVuaWUgdHdvcnplbmlhIHByb2Nlc3UgcG90b21uZWdvIHcgdGxlLCB3ebOxY3plbmllIGR6aWGzYW5pYSB3IHRyeWJpZSAiCiAiZGVidWcuIgogCi0jOiBvcHRpb24uYzoyMTMKKyM6IG9wdGlvbi5jOjI3MQogbXNnaWQgIkFzc3VtZSB3ZSBhcmUgdGhlIG9ubHkgREhDUCBzZXJ2ZXIgb24gdGhlIGxvY2FsIG5ldHdvcmsuIgogbXNnc3RyICJaYbNvv2VuaWUsIL9lIGplc3Rltm15IGplZHlueW0gc2Vyd2VyZW0gREhDUCB3IHNpZWNpIGxva2FsbmVqLiIKIAotIzogb3B0aW9uLmM6MjE0CisjOiBvcHRpb24uYzoyNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSB3aGVyZSB0byBzdG9yZSBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAipmNpZb9rYSBwcnplY2hvd3l3YW5pYSBwbGlrdSBkemllcr9hdyBESENQIChkb215tmxuYTogJXMpIgogCi0jOiBvcHRpb24uYzoyMTUKKyM6IG9wdGlvbi5jOjI3MwogbXNnaWQgIlJldHVybiBNWCByZWNvcmRzIGZvciBsb2NhbCBob3N0cy4iCiBtc2dzdHIgIlezsWN6ZW5pZSB6d3JhY2FuaWEgcmVrb3JkIE1YIGRsYSBob3N083cgbG9rYWxueWNoLiIKIAotIzogb3B0aW9uLmM6MjE2CisjOiBvcHRpb24uYzoyNzQKIG1zZ2lkICJTcGVjaWZ5IGFuIE1YIHJlY29yZC4iCiBtc2dzdHIgIlNwZWN5ZmlrYWNqYSByZWtvcmR1IE1YLiIKIAotIzogb3B0aW9uLmM6MjE3CisjOiBvcHRpb24uYzoyNzUKIG1zZ2lkICJTcGVjaWZ5IEJPT1RQIG9wdGlvbnMgdG8gREhDUCBzZXJ2ZXIuIgogbXNnc3RyICJPa3JltmxlbmllIG9wY2ppIEJPT1RQIHNlcndlcmEgREhDUC4iCiAKLSM6IG9wdGlvbi5jOjIxOAorIzogb3B0aW9uLmM6Mjc2CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvIE5PVCBwb2xsICVzIGZpbGUsIHJlbG9hZCBvbmx5IG9uIFNJR0hVUC4iCiBtc2dzdHIgIiIKICJXebNhY3plbmllIGFuYWxpenkgcGxpa3UgJXMsIHBvbm93bmllILNhZG93YW5pZSB0eWxrbyBwbyBvdHJ6eW1hbml1IHN5Z25hs3UgIgogIkhVUCIKIAotIzogb3B0aW9uLmM6MjE5CisjOiBvcHRpb24uYzoyNzcKIG1zZ2lkICJEbyBOT1QgY2FjaGUgZmFpbGVkIHNlYXJjaCByZXN1bHRzLiIKIG1zZ3N0ciAiIgogIld5s7FjemVuaWUgemFwaXN5d2FuaWEgdyBwYW1p6mNpIHBvZHLqY3puZWogbmlldWRhbnljaCB3eW5pa/N3IHd5c3p1a2l3YW5pYS4iCiAKLSM6IG9wdGlvbi5jOjIyMAorIzogb3B0aW9uLmM6Mjc4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZSBuYW1lc2VydmVycyBzdHJpY3RseSBpbiB0aGUgb3JkZXIgZ2l2ZW4gaW4gJXMuIgogbXNnc3RyICJXs7FjemVuaWUgdb95d2FuaWEgc2Vyd2Vy83cgbmF6dyB3IGtvbGVqbm+2Y2kgcG9kYW5laiB3ICVzLiIKIAotIzogb3B0aW9uLmM6MjIxCisjOiBvcHRpb24uYzoyNzkKICMsIGZ1enp5CiBtc2dpZCAiU3BlY2lmeSBvcHRpb25zIHRvIGJlIHNlbnQgdG8gREhDUCBjbGllbnRzLiIKIG1zZ3N0ciAiRG9kYXRrb3dlIG9wY2plIHVzdGF3aWXxIGRsYSBrbGllbnTzdyBESENQLiIKIAotIzogb3B0aW9uLmM6MjIyCisjOiBvcHRpb24uYzoyODAKIG1zZ2lkICJESENQIG9wdGlvbiBzZW50IGV2ZW4gaWYgdGhlIGNsaWVudCBkb2VzIG5vdCByZXF1ZXN0IGl0LiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjMKKyM6IG9wdGlvbi5jOjI4MQogbXNnaWQgIlNwZWNpZnkgcG9ydCB0byBsaXN0ZW4gZm9yIEROUyByZXF1ZXN0cyBvbiAoZGVmYXVsdHMgdG8gNTMpLiIKIG1zZ3N0ciAiUG9ydCBuYXOzdWNoaXdhbmlhIHphcHl0YfEgRE5TIChkb215tmxuaWU6IDUzKS4iCiAKLSM6IG9wdGlvbi5jOjIyNAorIzogb3B0aW9uLmM6MjgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1heGltdW0gc3VwcG9ydGVkIFVEUCBwYWNrZXQgc2l6ZSBmb3IgRUROUy4wIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJNYWtzeW1hbG5hIG9ic7N1Z2l3YW5hIHdpZWxrb7bmIHBha2lldHUgRUROUy4wIChkb215tmxuaWU6ICVzKS4iCiAKLSM6IG9wdGlvbi5jOjIyNQotbXNnaWQgIkxvZyBxdWVyaWVzLiIKKyM6IG9wdGlvbi5jOjI4MworIywgZnV6enkKK21zZ2lkICJMb2cgRE5TIHF1ZXJpZXMuIgogbXNnc3RyICJaYXB5dGFuaWEgemFwaXN5d2FuZSB3IHBsaWt1IGxvZy4iCiAKLSM6IG9wdGlvbi5jOjIyNgotbXNnaWQgIkZvcmNlIHRoZSBvcmlnaW5hdGluZyBwb3J0IGZvciB1cHN0cmVhbSBxdWVyaWVzLiIKKyM6IG9wdGlvbi5jOjI4NAorbXNnaWQgIkZvcmNlIHRoZSBvcmlnaW5hdGluZyBwb3J0IGZvciB1cHN0cmVhbSBETlMgcXVlcmllcy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI3CisjOiBvcHRpb24uYzoyODUKIG1zZ2lkICJEbyBOT1QgcmVhZCByZXNvbHYuY29uZi4iCiBtc2dzdHIgIld5s7FjemVuaWUgY3p5dGFuaWEgcGxpa3UgcmVzb2x2LmNvbmYiCiAKLSM6IG9wdGlvbi5jOjIyOAorIzogb3B0aW9uLmM6Mjg2CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgcGF0aCB0byByZXNvbHYuY29uZiAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiUG9kYWogtmNpZb9r6iBkbyBwbGlrdSByZXNvbHYuY29uZiAoZG9tebZsbmllOiAlcykuIgogCi0jOiBvcHRpb24uYzoyMjkKKyM6IG9wdGlvbi5jOjI4NwogbXNnaWQgIlNwZWNpZnkgYWRkcmVzcyhlcykgb2YgdXBzdHJlYW0gc2VydmVycyB3aXRoIG9wdGlvbmFsIGRvbWFpbnMuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIzMAorIzogb3B0aW9uLmM6Mjg4CiBtc2dpZCAiTmV2ZXIgZm9yd2FyZCBxdWVyaWVzIHRvIHNwZWNpZmllZCBkb21haW5zLiIKIG1zZ3N0ciAiV3mzsWN6ZW5pZSBwcnpla2F6eXdhbmlhIHphcHl0YfEgZG8gb2tyZbZsb255Y2ggZG9tZW4uIgogCi0jOiBvcHRpb24uYzoyMzEKKyM6IG9wdGlvbi5jOjI4OQogbXNnaWQgIlNwZWNpZnkgdGhlIGRvbWFpbiB0byBiZSBhc3NpZ25lZCBpbiBESENQIGxlYXNlcy4iCiBtc2dzdHIgIk5hendhIGRvbWVueSwga3TzcmEgYupkemllIHByenlwaXNhbmEgdyBkemllcr9hd2FjaCBESENQLiIKIAotIzogb3B0aW9uLmM6MjMyCisjOiBvcHRpb24uYzoyOTAKIG1zZ2lkICJTcGVjaWZ5IGRlZmF1bHQgdGFyZ2V0IGluIGFuIE1YIHJlY29yZC4iCiBtc2dzdHIgIk9rcmW2bGVuaWUgZG9tebZsbmVnbyBjZWx1IHcgcmVrb3JkemllIE1YLiIKIAotIzogb3B0aW9uLmM6MjMzCisjOiBvcHRpb24uYzoyOTEKIG1zZ2lkICJTcGVjaWZ5IHRpbWUtdG8tbGl2ZSBpbiBzZWNvbmRzIGZvciByZXBsaWVzIGZyb20gL2V0Yy9ob3N0cy4iCiBtc2dzdHIgIiIKICJPa3JltmxlbmllIGN6YXN1IHdhv25vtmNpICh0aW1lLXRvLWxpdmUpIHcgc2VrdW5kYWNoIG9kcG93aWVkemkgYnJhbnljaCB6IC8iCiAiZXRjL2hvc3RzLiIKIAotIzogb3B0aW9uLmM6MjM0CisjOiBvcHRpb24uYzoyOTIKKyMsIGZ1enp5Cittc2dpZCAiU3BlY2lmeSB0aW1lLXRvLWxpdmUgaW4gc2Vjb25kcyBmb3IgbmVnYXRpdmUgY2FjaGluZy4iCittc2dzdHIgIiIKKyJPa3JltmxlbmllIGN6YXN1IHdhv25vtmNpICh0aW1lLXRvLWxpdmUpIHcgc2VrdW5kYWNoIG9kcG93aWVkemkgYnJhbnljaCB6IC8iCisiZXRjL2hvc3RzLiIKKworIzogb3B0aW9uLmM6MjkzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNoYW5nZSB0byB0aGlzIHVzZXIgYWZ0ZXIgc3RhcnR1cC4gKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlBvIHN0YXJjaWUgem1pYW5hIHW/eXRrb3duaWthIHByb2Nlc3UgbmEgcG9kYW5lZ28uIChkb215tmxuaWU6ICVzKS4iCiAKLSM6IG9wdGlvbi5jOjIzNQorIzogb3B0aW9uLmM6Mjk0CiAjLCBmdXp6eQogbXNnaWQgIk1hcCBESENQIHZlbmRvciBjbGFzcyB0byB0YWcuIgogbXNnc3RyICJNYXBvd2FuaWUgbmF6d3kgZHlzdHJ5YnV0b3JhIERIQ1AgZG8gdXN0YXdpZfEgb3BjamkuIgogCi0jOiBvcHRpb24uYzoyMzYKKyM6IG9wdGlvbi5jOjI5NQogbXNnaWQgIkRpc3BsYXkgZG5zbWFzcSB2ZXJzaW9uIGFuZCBjb3B5cmlnaHQgaW5mb3JtYXRpb24uIgogbXNnc3RyICIiCiAiV7OxY3plbmllIHBva2F6eXdhbmlhIHdlcnNqaSBkbnNtYXNxIGkgaW5mb3JtYWNqaSBvIG9jaHJvbmllIHByYXcgYXV0b3Jza2ljaC4iCiAKLSM6IG9wdGlvbi5jOjIzNworIzogb3B0aW9uLmM6Mjk2CiBtc2dpZCAiVHJhbnNsYXRlIElQdjQgYWRkcmVzc2VzIGZyb20gdXBzdHJlYW0gc2VydmVycy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjM4CisjOiBvcHRpb24uYzoyOTcKIG1zZ2lkICJTcGVjaWZ5IGEgU1JWIHJlY29yZC4iCiBtc2dzdHIgIk9rcmW2bGVuaWUgcmVrb3JkdSBTUlYuIgogCi0jOiBvcHRpb24uYzoyMzkKKyM6IG9wdGlvbi5jOjI5OAogbXNnaWQgIkRpc3BsYXkgdGhpcyBtZXNzYWdlLiBVc2UgLS1oZWxwIGRoY3AgZm9yIGtub3duIERIQ1Agb3B0aW9ucy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjQwCisjOiBvcHRpb24uYzoyOTkKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgcGF0aCBvZiBQSUQgZmlsZSAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiT2tyZbZsZW5pZSC2Y2llv2tpIGRvIHBsaWt1IFBJRC4gKGRvbXm2bG5pZTogJXMpLiIKIAotIzogb3B0aW9uLmM6MjQxCisjOiBvcHRpb24uYzozMDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBtYXhpbXVtIG51bWJlciBvZiBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiTWFrc3ltYWxuYSBsaWN6YmEgZHppZXK/YXcgREhDUC4gKGRvbXm2bG5pZTogJXMpLiIKIAotIzogb3B0aW9uLmM6MjQyCisjOiBvcHRpb24uYzozMDEKIG1zZ2lkICJBbnN3ZXIgRE5TIHF1ZXJpZXMgYmFzZWQgb24gdGhlIGludGVyZmFjZSBhIHF1ZXJ5IHdhcyBzZW50IHRvLiIKIG1zZ3N0ciAiIgogIk9kcG93aWVkemkgbmEgemFweXRhbmlhIEROUyB1emFsZb9uaW9uZSBvZCBpbnRlcmZlanN1LCBrdPNyeSBvZGVicmGzICIKICJ6YXB5dGFuaWUuIgogCi0jOiBvcHRpb24uYzoyNDMKKyM6IG9wdGlvbi5jOjMwMgogbXNnaWQgIlNwZWNpZnkgVFhUIEROUyByZWNvcmQuIgogbXNnc3RyICJSZWtvcmQgVFhUIEROUy4iCiAKLSM6IG9wdGlvbi5jOjI0NAorIzogb3B0aW9uLmM6MzAzCiAjLCBmdXp6eQogbXNnaWQgIlNwZWNpZnkgUFRSIEROUyByZWNvcmQuIgogbXNnc3RyICJSZWtvcmQgVFhUIEROUy4iCiAKLSM6IG9wdGlvbi5jOjI0NQorIzogb3B0aW9uLmM6MzA0CiBtc2dpZCAiR2l2ZSBETlMgbmFtZSB0byBJUHY0IGFkZHJlc3Mgb2YgaW50ZXJmYWNlLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNDYKKyM6IG9wdGlvbi5jOjMwNQogbXNnaWQgIkJpbmQgb25seSB0byBpbnRlcmZhY2VzIGluIHVzZS4iCiBtc2dzdHIgIlezsWN6ZW5pZSBuYXOzdWNoaXdhbmlhIHR5bGtvIG5hIHW/eXdhbnljaCBpbnRlcmZlanNhY2guIgogCi0jOiBvcHRpb24uYzoyNDcKKyM6IG9wdGlvbi5jOjMwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWFkIERIQ1Agc3RhdGljIGhvc3QgaW5mb3JtYXRpb24gZnJvbSAlcy4iCiBtc2dzdHIgIlN0YXR5Y3pueWNoIGluZm9ybWFjamkgREhDUCBob3N0YSB6IHBsaWt1ICVzLiIKIAotIzogb3B0aW9uLmM6MjQ4CisjOiBvcHRpb24uYzozMDcKIG1zZ2lkICJFbmFibGUgdGhlIERCdXMgaW50ZXJmYWNlIGZvciBzZXR0aW5nIHVwc3RyZWFtIHNlcnZlcnMsIGV0Yy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjQ5CisjOiBvcHRpb24uYzozMDgKIG1zZ2lkICJEbyBub3QgcHJvdmlkZSBESENQIG9uIHRoaXMgaW50ZXJmYWNlLCBvbmx5IHByb3ZpZGUgRE5TLiIKIG1zZ3N0ciAiV3mzsWN6ZW5pZSBESENQIG5hIHR5bSBpbnRlcmZlanNpZSwgd7OxY3plbmllIHR5bGtvIEROUy4iCiAKLSM6IG9wdGlvbi5jOjI1MAorIzogb3B0aW9uLmM6MzA5CiBtc2dpZCAiRW5hYmxlIGR5bmFtaWMgYWRkcmVzcyBhbGxvY2F0aW9uIGZvciBib290cC4iCiBtc2dzdHIgIlezsWN6ZW5pZSBhdXRvbWF0eWN6bmVqIGFsb2thY2ppIGFkcmVzdSBkbGEgQk9PVFAuIgogCi0jOiBvcHRpb24uYzoyNTEKKyM6IG9wdGlvbi5jOjMxMAogIywgZnV6enkKIG1zZ2lkICJNYXAgTUFDIGFkZHJlc3MgKHdpdGggd2lsZGNhcmRzKSB0byBvcHRpb24gc2V0LiIKIG1zZ3N0ciAiTWFwb3dhbmllIG5hend5IGR5c3RyeWJ1dG9yYSBESENQIGRvIHVzdGF3aWXxIG9wY2ppLiIKIAotIzogb3B0aW9uLmM6MjUzCisjOiBvcHRpb24uYzozMTIKIG1zZ2lkICJUcmVhdCBESENQIHJlcXVlc3RzIG9uIGFsaWFzZXMgYXMgYXJyaXZpbmcgZnJvbSBpbnRlcmZhY2UuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI1NQorIzogb3B0aW9uLmM6MzE0CiBtc2dpZCAiRGlzYWJsZSBJQ01QIGVjaG8gYWRkcmVzcyBjaGVja2luZyBpbiB0aGUgREhDUCBzZXJ2ZXIuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI1NgorIzogb3B0aW9uLmM6MzE1CiBtc2dpZCAiU2NyaXB0IHRvIHJ1biBvbiBESENQIGxlYXNlIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbi4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjU3CisjOiBvcHRpb24uYzozMTYKIG1zZ2lkICJSZWFkIGNvbmZpZ3VyYXRpb24gZnJvbSBhbGwgdGhlIGZpbGVzIGluIHRoaXMgZGlyZWN0b3J5LiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNTgKKyM6IG9wdGlvbi5jOjMxNwogIywgZnV6enkKIG1zZ2lkICJMb2cgdG8gdGhpcyBzeXNsb2cgZmFjaWxpdHkgb3IgZmlsZS4gKGRlZmF1bHRzIHRvIERBRU1PTikiCiBtc2dzdHIgIlBvIHN0YXJjaWUgem1pYW5hIHW/eXRrb3duaWthIHByb2Nlc3UgbmEgcG9kYW5lZ28uIChkb215tmxuaWU6ICVzKS4iCiAKLSM6IG9wdGlvbi5jOjI1OQorIzogb3B0aW9uLmM6MzE4CiBtc2dpZCAiUmVhZCBsZWFzZXMgYXQgc3RhcnR1cCwgYnV0IG5ldmVyIHdyaXRlIHRoZSBsZWFzZSBmaWxlLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjAKKyM6IG9wdGlvbi5jOjMxOQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiTWF4aW11bSBudW1iZXIgb2YgY29uY3VycmVudCBETlMgcXVlcmllcy4gKGRlZmF1bHRzIHRvICVzKSIKIG1zZ3N0ciAiTWFrc3ltYWxuYSBsaWN6YmEgZHppZXK/YXcgREhDUC4gKGRvbXm2bG5pZTogJXMpLiIKIAotIzogb3B0aW9uLmM6MjYxCisjOiBvcHRpb24uYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQ2xlYXIgRE5TIGNhY2hlIHdoZW4gcmVsb2FkaW5nICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjIKKyM6IG9wdGlvbi5jOjMyMQogbXNnaWQgIklnbm9yZSBob3N0bmFtZXMgcHJvdmlkZWQgYnkgREhDUCBjbGllbnRzLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjMKKyM6IG9wdGlvbi5jOjMyMgorbXNnaWQgIkRvIE5PVCByZXVzZSBmaWxlbmFtZSBhbmQgc2VydmVyIGZpZWxkcyBmb3IgZXh0cmEgREhDUCBvcHRpb25zLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjMKIG1zZ2lkICJFbmFibGUgaW50ZWdyYXRlZCByZWFkLW9ubHkgVEZUUCBzZXJ2ZXIuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI2NAorIzogb3B0aW9uLmM6MzI0CiBtc2dpZCAiRXhwb3J0IGZpbGVzIGJ5IFRGVFAgb25seSBmcm9tIHRoZSBzcGVjaWZpZWQgc3VidHJlZS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY1CisjOiBvcHRpb24uYzozMjUKIG1zZ2lkICJBZGQgY2xpZW50IElQIGFkZHJlc3MgdG8gdGZ0cC1yb290LiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjYKKyM6IG9wdGlvbi5jOjMyNgogbXNnaWQgIkFsbG93IGFjY2VzcyBvbmx5IHRvIGZpbGVzIG93bmVkIGJ5IHRoZSB1c2VyIHJ1bm5pbmcgZG5zbWFzcS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY3CisjOiBvcHRpb24uYzozMjcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIk1heGltdW0gbnVtYmVyIG9mIGNvbm5jdXJyZW50IFRGVFAgdHJhbnNmZXJzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJNYWtzeW1hbG5hIGxpY3piYSBkemllcr9hdyBESENQLiAoZG9tebZsbmllOiAlcykuIgogCi0jOiBvcHRpb24uYzoyNjgKKyM6IG9wdGlvbi5jOjMyOAogbXNnaWQgIkRpc2FibGUgdGhlIFRGVFAgYmxvY2tzaXplIGV4dGVuc2lvbi4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY5CisjOiBvcHRpb24uYzozMjkKK21zZ2lkICJFcGhlbWVyYWwgcG9ydCByYW5nZSBmb3IgdXNlIGJ5IFRGVFAgdHJhbnNmZXJzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzAKIG1zZ2lkICJFeHRyYSBsb2dnaW5nIGZvciBESENQLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNzAKKyM6IG9wdGlvbi5jOjMzMQogbXNnaWQgIkVuYWJsZSBhc3luYy4gbG9nZ2luZzsgb3B0aW9uYWxseSBzZXQgcXVldWUgbGVuZ3RoLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo1MDEKKyM6IG9wdGlvbi5jOjMzMgorbXNnaWQgIlN0b3AgRE5TIHJlYmluZGluZy4gRmlsdGVyIHByaXZhdGUgSVAgcmFuZ2VzIHdoZW4gcmVzb2x2aW5nLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzMKK21zZ2lkICJBbHdheXMgcGVyZm9ybSBETlMgcXVlcmllcyB0byBhbGwgc2VydmVycy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzM0Cittc2dpZCAiU2V0IHRhZyBpZiBjbGllbnQgaW5jbHVkZXMgb3B0aW9uIGluIHJlcXVlc3QuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjU4NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVXNhZ2U6IGRuc21hc3EgW29wdGlvbnNdXG4iCkBAIC00MzksMTcyICs0OTAsMTkwIEBACiAiVb95Y2llOiBkbnNtYXNxIFtvcGNqZV1cbiIKICJcbiIKIAotIzogb3B0aW9uLmM6NTAzCisjOiBvcHRpb24uYzo1ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlIHNob3J0IG9wdGlvbnMgb25seSBvbiB0aGUgY29tbWFuZCBsaW5lLlxuIgogbXNnc3RyICJUeWxrbyBrcvN0a2llIG9wY2plIHcgbGluaWkga29tZW5kLlxuIgogCi0jOiBvcHRpb24uYzo1MDUKKyM6IG9wdGlvbi5jOjU4OQogIywgYy1mb3JtYXQKIG1zZ2lkICJWYWxpZCBvcHRpb25zIGFyZSA6XG4iCiBtc2dzdHIgIk9ic7N1Z2l3YW5lIG9wY2plOlxuIgogCi0jOiBvcHRpb24uYzo1MjYKKyM6IG9wdGlvbi5jOjYxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJLbm93biBESENQIG9wdGlvbnM6XG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6NTk5CisjOiBvcHRpb24uYzo2ODMKIG1zZ2lkICJiYWQgZGhjcC1vcHRpb24iCiBtc2dzdHIgImKzsWQgdyBkaGNwLW9wdGlvbiIKIAotIzogb3B0aW9uLmM6NjU1CisjOiBvcHRpb24uYzo3MzkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIElQIGFkZHJlc3MiCiBtc2dzdHIgInByemVjenl0YW5vICVzIC0gJWQgYWRyZXPzdyIKIAotIzogb3B0aW9uLmM6NzUzCisjOiBvcHRpb24uYzo4MzcKIG1zZ2lkICJiYWQgZG9tYWluIGluIGRoY3Atb3B0aW9uIgogbXNnc3RyICJuaWVwcmF3aWSzb3dhIG5hendhIGRvbWVueSB3IGRoY3Atb3B0aW9uIgogCi0jOiBvcHRpb24uYzo4MDkKKyM6IG9wdGlvbi5jOjg5NQogbXNnaWQgImRoY3Atb3B0aW9uIHRvbyBsb25nIgogbXNnc3RyICJ6Ynl0IGSzdWdhIG5hendhIHcgZGhjcC1vcHRpb24iCiAKLSM6IG9wdGlvbi5jOjg1MworIzogb3B0aW9uLmM6OTQyCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgYWNjZXNzIGRpcmVjdG9yeSAlczogJXMiCiBtc2dzdHIgImKzsWQgb2Rjenl0dSB6ICVzOiAlcyIKIAotIzogb3B0aW9uLmM6ODcyIHRmdHAuYzozMTMKKyM6IG9wdGlvbi5jOjk2MSB0ZnRwLmM6MzQzCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgYWNjZXNzICVzOiAlcyIKIG1zZ3N0ciAiYrOxZCBvZGN6eXR1IHogJXM6ICVzIgogCi0jOiBvcHRpb24uYzo5MTMKKyM6IG9wdGlvbi5jOjk5OAogbXNnaWQgIm9ubHkgb25lIGRoY3AtaG9zdHNmaWxlIGFsbG93ZWQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6OTYyCisjOiBvcHRpb24uYzoxMDA1Cittc2dpZCAib25seSBvbmUgZGhjcC1vcHRzZmlsZSBhbGxvd2VkIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjEwNDkKIG1zZ2lkICJiYWQgTVggcHJlZmVyZW5jZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo5NzEKKyM6IG9wdGlvbi5jOjEwNTMKIG1zZ2lkICJiYWQgTVggbmFtZSIKIG1zZ3N0ciAiYrPqZG5hIG5hendhIE1YIgogCi0jOiBvcHRpb24uYzo5ODkKKyM6IG9wdGlvbi5jOjEwNjcKIG1zZ2lkICJiYWQgTVggdGFyZ2V0IgogbXNnc3RyICJis+pkbnkgY2VsIE1YIgogCi0jOiBvcHRpb24uYzoxMDAxCisjOiBvcHRpb24uYzoxMDc4CiBtc2dpZCAiY2Fubm90IHJ1biBzY3JpcHRzIHVuZGVyIHVDbGludXgiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTE5NiBvcHRpb24uYzoxMjA3CisjOiBvcHRpb24uYzoxMjY1IG9wdGlvbi5jOjEyNzMKIG1zZ2lkICJiYWQgcG9ydCIKIG1zZ3N0ciAibmllcHJhd2lks293eSBwb3J0IgogCi0jOiBvcHRpb24uYzoxMzQ5CisjOiBvcHRpb24uYzoxMjkzIG9wdGlvbi5jOjEzMTgKK21zZ2lkICJpbnRlcmZhY2UgYmluZGluZyBub3Qgc3VwcG9ydGVkIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjE0MjcKKyMsIGZ1enp5Cittc2dpZCAiYmFkIHBvcnQgcmFuZ2UiCittc2dzdHIgIm5pZXByYXdpZLNvd3kgcG9ydCIKKworIzogb3B0aW9uLmM6MTQ0NAogbXNnaWQgImJhZCBicmlkZ2UtaW50ZXJmYWNlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjEzOTEKKyM6IG9wdGlvbi5jOjE0ODUKIG1zZ2lkICJiYWQgZGhjcC1yYW5nZSIKIG1zZ3N0ciAibmllcHJhd2lks293eSB6YWtyZXMgZGhjcC1yYW5nZSIKIAotIzogb3B0aW9uLmM6MTQxOQorIzogb3B0aW9uLmM6MTUxMQogbXNnaWQgIm9ubHkgb25lIG5ldGlkIHRhZyBhbGxvd2VkIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE0NjEKKyM6IG9wdGlvbi5jOjE1NTEKIG1zZ2lkICJpbmNvbnNpc3RlbnQgREhDUCByYW5nZSIKIG1zZ3N0ciAibmllc3Dzam55IHpha3JlcyBESENQIgogCi0jOiBvcHRpb24uYzoxNjM3CisjOiBvcHRpb24uYzoxNzE5CiAjLCBmdXp6eQogbXNnaWQgImJhZCBESENQIGhvc3QgbmFtZSIKIG1zZ3N0ciAiYrPqZG5hIG5hendhIE1YIgogCi0jOiBvcHRpb24uYzoxODYxCisjOiBvcHRpb24uYzoxOTU5CiAjLCBmdXp6eQogbXNnaWQgImJhZCBpbnRlcmZhY2UgbmFtZSIKIG1zZ3N0ciAiYrPqZG5hIG5hendhIE1YIgogCi0jOiBvcHRpb24uYzoxODg1CisjOiBvcHRpb24uYzoxOTc5CiAjLCBmdXp6eQogbXNnaWQgImJhZCBQVFIgcmVjb3JkIgogbXNnc3RyICJis7FkIHcgcmVrb3JkemllIFNSViIKIAotIzogb3B0aW9uLmM6MTkwOQotbXNnaWQgImJhZCBUWFQgcmVjb3JkIgotbXNnc3RyICJuaWVwcmF3aWSzb3d5IHJla29yZCBUWCIKLQotIzogb3B0aW9uLmM6MTk0MQorIzogb3B0aW9uLmM6MTk5OQogbXNnaWQgIlRYVCByZWNvcmQgc3RyaW5nIHRvbyBsb25nIgogbXNnc3RyICJ6Ynl0IGSzdWdpIHJla29yZCBUWFQiCiAKLSM6IG9wdGlvbi5jOjE5ODAKKyM6IG9wdGlvbi5jOjIwMDMKK21zZ2lkICJiYWQgVFhUIHJlY29yZCIKK21zZ3N0ciAibmllcHJhd2lks293eSByZWtvcmQgVFgiCisKKyM6IG9wdGlvbi5jOjIwNjMKIG1zZ2lkICJiYWQgU1JWIHJlY29yZCIKIG1zZ3N0ciAiYrOxZCB3IHJla29yZHppZSBTUlYiCiAKLSM6IG9wdGlvbi5jOjE5OTIKKyM6IG9wdGlvbi5jOjIwNzIKIG1zZ2lkICJiYWQgU1JWIHRhcmdldCIKIG1zZ3N0ciAibmllcHJhd2lks293eSBjZWwgU1JWIgogCi0jOiBvcHRpb24uYzoyMDAzCisjOiBvcHRpb24uYzoyMDgwCiBtc2dpZCAiaW52YWxpZCBwb3J0IG51bWJlciIKIG1zZ3N0ciAibmllcHJhd2lks293eSBwb3J0IgogCi0jOiBvcHRpb24uYzoyMDEzCisjOiBvcHRpb24uYzoyMDg3CiBtc2dpZCAiaW52YWxpZCBwcmlvcml0eSIKIG1zZ3N0ciAibmllcHJhd2lks293eSBwcmlvcnl0ZXQiCiAKLSM6IG9wdGlvbi5jOjIwMjMKKyM6IG9wdGlvbi5jOjIwOTQKIG1zZ2lkICJpbnZhbGlkIHdlaWdodCIKIG1zZ3N0ciAibmllcHJhd2lks293ZSB6bmFjemVuaWUiCiAKLSM6IG9wdGlvbi5jOjIwNTQKKyM6IG9wdGlvbi5jOjIxMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmlsZXMgbmVzdGVkIHRvbyBkZWVwIGluICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwNjIgdGZ0cC5jOjQ2NworIzogb3B0aW9uLmM6MjEzOCB0ZnRwLmM6NDk3CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCByZWFkICVzOiAlcyIKIG1zZ3N0ciAiYrOxZCBvZGN6eXR1IHogJXM6ICVzIgogCi0jOiBvcHRpb24uYzoyMTE0CisjOiBvcHRpb24uYzoyMTk5CiBtc2dpZCAibWlzc2luZyBcIiIKIG1zZ3N0ciAiYnJha3VqZSBcIiIKIAotIzogb3B0aW9uLmM6MjE2MQorIzogb3B0aW9uLmM6MjI0NgogbXNnaWQgImJhZCBvcHRpb24iCiBtc2dzdHIgIm5pZXByYXdpZLNvd2Egb3BjamEiCiAKLSM6IG9wdGlvbi5jOjIxNjMKKyM6IG9wdGlvbi5jOjIyNDgKIG1zZ2lkICJleHRyYW5lb3VzIHBhcmFtZXRlciIKIG1zZ3N0ciAiZG9kYXRrb3d5IHBhcmFtZXRyIgogCi0jOiBvcHRpb24uYzoyMTY1CisjOiBvcHRpb24uYzoyMjUwCiBtc2dpZCAibWlzc2luZyBwYXJhbWV0ZXIiCiBtc2dzdHIgImJyYWsgcGFyYW1ldHJ1IgogCi0jOiBvcHRpb24uYzoyMTczCisjOiBvcHRpb24uYzoyMjU4CiBtc2dpZCAiZXJyb3IiCiBtc2dzdHIgImKzsWQiCiAKLSM6IG9wdGlvbi5jOjIxNzkKKyM6IG9wdGlvbi5jOjIyNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgYXQgbGluZSAlZCBvZiAlJXMiCiBtc2dzdHIgIiVzIHcgbGluaWkgJWQgeiAlJXMiCiAKLSM6IG9wdGlvbi5jOjIyNTIKKyM6IG9wdGlvbi5jOjIzMDQgb3B0aW9uLmM6MjMzNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZCAlcyIKK21zZ3N0ciAiY3p5dGFuaWUgJXMiCisKKyM6IG9wdGlvbi5jOjI0MDAKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG5zbWFzcSB2ZXJzaW9uICVzICAlc1xuIgogbXNnc3RyICJEbnNtYXNxLCB3ZXJzamEgJXMgJXNcbiIKIAotIzogb3B0aW9uLmM6MjI1MworIzogb3B0aW9uLmM6MjQwMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ29tcGlsZSB0aW1lIG9wdGlvbnMgJXNcbiIKQEAgLTYxMyw2NTYgKzY4Miw2OTIgQEAKICJXa29tcGlsb3dhbmUgb3BjamUgJXNcbiIKICJcbiIKIAotIzogb3B0aW9uLmM6MjI1NAorIzogb3B0aW9uLmM6MjQwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS5cbiIKIG1zZ3N0ciAiT3Byb2dyYW1vd2FuaWUgdG8gbmllIHphd2llcmEgv2FkbnljaCBnd2FyYW5jamkuXG4iCiAKLSM6IG9wdGlvbi5jOjIyNTUKKyM6IG9wdGlvbi5jOjI0MDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG5zbWFzcSBpcyBmcmVlIHNvZnR3YXJlLCBhbmQgeW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdFxuIgogbXNnc3RyICJEbnNtYXNxIGplc3Qgd29sbnltIG9wcm9ncmFtb3dhbmllbSwgbW+/ZXN6IGplIHJvenByb3dhZHph5lxuIgogCi0jOiBvcHRpb24uYzoyMjU2Ci0jLCBjLWZvcm1hdAotbXNnaWQgInVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMi5cbiIKKyM6IG9wdGlvbi5jOjI0MDQKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMiBvciAzLlxuIgogbXNnc3RyICJuYSB3YXJ1bmthY2ggb2tyZbZsb255Y2ggdyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5jZSwgd2Vyc2phIDIuXG4iCiAKLSM6IG9wdGlvbi5jOjIyNjcKKyM6IG9wdGlvbi5jOjI0MTUKIG1zZ2lkICJ0cnkgLS1oZWxwIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNjkKKyM6IG9wdGlvbi5jOjI0MTcKIG1zZ2lkICJ0cnkgLXciCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI3MgorIzogb3B0aW9uLmM6MjQyMAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiYmFkIGNvbW1hbmQgbGluZSBvcHRpb25zOiAlcyIKIG1zZ3N0ciAibmllcHJhd2lks293YSBvcGNqYSBsaW5paSBrb21lbmQ6ICVzLiIKIAotIzogb3B0aW9uLmM6MjMxMworIzogb3B0aW9uLmM6MjQ2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZ2V0IGhvc3QtbmFtZTogJXMiCiBtc2dzdHIgIm5pZSBtb79uYSBwb2JyYeYgbmF6d3kgaG9zdGE6ICVzIgogCi0jOiBvcHRpb24uYzoyMzQxCisjOiBvcHRpb24uYzoyNDg5CiBtc2dpZCAib25seSBvbmUgcmVzb2x2LmNvbmYgZmlsZSBhbGxvd2VkIGluIG5vLXBvbGwgbW9kZS4iCiBtc2dzdHIgInR5bGtvIGplZGVuIHBsaWsgcmVzb2x2LmNvbmYgamVzdCBkb3B1c3pjemFueSB3IHRyeWJpZSBuby1wb2xsLiIKIAotIzogb3B0aW9uLmM6MjM1MQorIzogb3B0aW9uLmM6MjQ5OQogbXNnaWQgIm11c3QgaGF2ZSBleGFjdGx5IG9uZSByZXNvbHYuY29uZiB0byByZWFkIGRvbWFpbiBmcm9tLiIKIG1zZ3N0ciAibXVzaXN6IG1pZeYgZG9rs2FkbmllIGplZGVuIHBsaWsgcmVzb2x2LmNvbmYgZG8gb2Rjenl0dSBkb21lbi4iCiAKLSM6IG9wdGlvbi5jOjIzNTQgbmV0d29yay5jOjU0OQorIzogb3B0aW9uLmM6MjUwMiBuZXR3b3JrLmM6NjQwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gcmVhZCAlczogJXMiCiBtc2dzdHIgImKzsWQgdyBvZGN6eWNpZSAlczogJW0iCiAKLSM6IG9wdGlvbi5jOjIzNzIKKyM6IG9wdGlvbi5jOjI1MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gc2VhcmNoIGRpcmVjdGl2ZSBmb3VuZCBpbiAlcyIKIG1zZ3N0ciAiYnJhayB3eXR5Y3pueWNoIHd5c3p1a2l3YW5pYSB3ICVzIgogCi0jOiBmb3J3YXJkLmM6Mzc2CisjOiBmb3J3YXJkLmM6MzgxCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5hbWVzZXJ2ZXIgJXMgcmVmdXNlZCB0byBkbyBhIHJlY3Vyc2l2ZSBxdWVyeSIKIG1zZ3N0ciAic2Vyd2VyIG5hencgJXMgb2RtYXdpYSB3eWtvbmFuaWEgemFweXRhbmlhIHJla3Vyc3l3bmVnbyIKIAotIzogaXNjLmM6NzMgZG5zbWFzcS5jOjcyMworIzogZm9yd2FyZC5jOjQwOQorbXNnaWQgInBvc3NpYmxlIEROUy1yZWJpbmQgYXR0YWNrIGRldGVjdGVkIgorbXNnc3RyICIiCisKKyM6IGlzYy5jOjc3IGRuc21hc3EuYzo3NDcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBhY2Nlc3MgJXM6ICVzIgogbXNnc3RyICJis7FkIHcgZG9zdOpwaWUgZG8gJXM6ICVtIgogCi0jOiBpc2MuYzo4OQorIzogaXNjLmM6OTMKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsb2FkICVzOiAlcyIKIG1zZ3N0ciAiYrOxZCCzYWRvd2FuaWEgJXM6ICVtIgogCi0jOiBpc2MuYzo5MyBkbnNtYXNxLmM6NzQ1CisjOiBpc2MuYzo5NyBkbnNtYXNxLmM6NzY5CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlYWRpbmcgJXMiCiBtc2dzdHIgImN6eXRhbmllICVzIgogCi0jOiBpc2MuYzoxMTUKKyM6IGlzYy5jOjExOQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbmFtZSBpbiAlcyIKIG1zZ3N0ciAibmllcHJhd2lks293YSBuYXp3YSB3ICVzIgogCi0jOiBpc2MuYzoxNzcKKyM6IGlzYy5jOjE4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJJZ25vcmluZyBESENQIGxlYXNlIGZvciAlcyBiZWNhdXNlIGl0IGhhcyBhbiBpbGxlZ2FsIGRvbWFpbiBwYXJ0IgogbXNnc3RyICIiCiAiSWdub3J1auogZHppZXK/YXd5IERIQ1AgZGxhICVzIHBvbmlld2G/IHphd2llcmFqsSBuaWVwcmF3aWSzb3exIGN66rbmICIKICJkb21lbm93sSIKIAotIzogbmV0d29yay5jOjQxCisjOiBuZXR3b3JrLmM6NDUKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gaW50ZXJmYWNlICVzIGluIGJyaWRnZS1pbnRlcmZhY2UiCiBtc2dzdHIgIm5pZXpuYW55IGludGVyZmVqcyAlcyIKIAotIzogbmV0d29yay5jOjM3NyBkbnNtYXNxLmM6MTcwCisjOiBuZXR3b3JrLmM6Mzg5IGRuc21hc3EuYzoxODAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGNyZWF0ZSBsaXN0ZW5pbmcgc29ja2V0OiAlcyIKIG1zZ3N0ciAiYrOxZCBwb2RjemFzIHR3b3J6ZW5pYSBnbmlhemRhOiAlcyIKIAotIzogbmV0d29yay5jOjM4NAorIzogbmV0d29yay5jOjM5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc2V0IElQVjYgb3B0aW9ucyBvbiBsaXN0ZW5pbmcgc29ja2V0OiAlcyIKIG1zZ3N0ciAiYrOxZCB1c3Rhd2llbmlhIG9wY2ppIElQVjYgbmEgbmFzs3VjaHVqsWN5bSBnbmllvGR6aWU6ICVzIgogCi0jOiBuZXR3b3JrLmM6NDAyCisjOiBuZXR3b3JrLmM6NDE1CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBiaW5kIGxpc3RlbmluZyBzb2NrZXQgZm9yICVzOiAlcyIKIG1zZ3N0ciAiYrOxZCBwb2SzsWN6ZW5pYSBuYXOzdWNodWqxY2VnbyBnbmlhemRhIGRsYSAlczogJXMiCiAKLSM6IG5ldHdvcmsuYzo0MTAKKyM6IG5ldHdvcmsuYzo0MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGxpc3RlbiBvbiBzb2NrZXQ6ICVzIgogbXNnc3RyICJis7FkIHezsWN6ZW5pYSBuYXOzdWNoaXdhbmlhIGduaWF6ZGE6ICVzIgogCi0jOiBuZXR3b3JrLmM6NDIxCisjOiBuZXR3b3JrLmM6NDMyCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIFRGVFAgc29ja2V0OiAlcyIKIG1zZ3N0ciAiYrOxZCBwb2RjemFzIHR3b3J6ZW5pYSBnbmlhemRhOiAlcyIKIAotIzogbmV0d29yay5jOjQ5MworIzogbmV0d29yay5jOjU0OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGJpbmQgc2VydmVyIHNvY2tldCBmb3IgJXM6ICVzIgorbXNnc3RyICJis7FkIHBvZLOxY3plbmlhIG5hc7N1Y2h1arFjZWdvIGduaWF6ZGEgZGxhICVzOiAlcyIKKworIzogbmV0d29yay5jOjU4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJpZ25vcmluZyBuYW1lc2VydmVyICVzIC0gbG9jYWwgaW50ZXJmYWNlIgogbXNnc3RyICJpZ25vcm93YW5pZSBzZXJ3ZXJhIG5hencgJXMgLSBpbnRlcmZlanMgbG9rYWxueSIKIAotIzogbmV0d29yay5jOjUwMgorIzogbmV0d29yay5jOjU5MQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiaWdub3JpbmcgbmFtZXNlcnZlciAlcyAtIGNhbm5vdCBtYWtlL2JpbmQgc29ja2V0OiAlcyIKIG1zZ3N0ciAiaWdub3Jvd2FuaWUgc2Vyd2VyYSBuYXp3ICVzIC0gbmllIG1vv25hIHV0d29yennmL2Rvd2mxemHmIGduaWF6ZGE6ICVtIgogCi0jOiBuZXR3b3JrLmM6NTE3CisjOiBuZXR3b3JrLmM6NjA2CiBtc2dpZCAidW5xdWFsaWZpZWQiCiBtc2dzdHIgIm5pZWt3YWxpZmlrb3dhbnkoYS9lKSIKIAotIzogbmV0d29yay5jOjUxNworIzogbmV0d29yay5jOjYwNgogbXNnaWQgIm5hbWVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MTkKKyM6IG5ldHdvcmsuYzo2MDgKIG1zZ2lkICJkZWZhdWx0IgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MjEKKyM6IG5ldHdvcmsuYzo2MTAKIG1zZ2lkICJkb21haW4iCiBtc2dzdHIgImRvbWVuYSIKIAotIzogbmV0d29yay5jOjUyNAorIzogbmV0d29yay5jOjYxMwogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2luZyBsb2NhbCBhZGRyZXNzZXMgb25seSBmb3IgJXMgJXMiCiBtc2dzdHIgInezsWN6ZW5pZSB1v3l3YW5pYSBsb2thbG55Y2ggYWRyZXPzdyB0eWxrbyBkbGEgJXMgJXMiCiAKLSM6IG5ldHdvcmsuYzo1MjYKKyM6IG5ldHdvcmsuYzo2MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNpbmcgbmFtZXNlcnZlciAlcyMlZCBmb3IgJXMgJXMiCiBtc2dzdHIgInW/eXdhbnkgc2Vyd2VyIG5henc6ICVzIyVkIGRsYSAlcyAlcyIKIAotIzogbmV0d29yay5jOjUyOQorIzogbmV0d29yay5jOjYxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNpbmcgbmFtZXNlcnZlciAlcyMlZCh2aWEgJXMpIgorbXNnc3RyICJ1v3l3YW55IHNlcndlciBuYXp3ICVzIyVkIgorCisjOiBuZXR3b3JrLmM6NjIwCiAjLCBjLWZvcm1hdAogbXNnaWQgInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQiCiBtc2dzdHIgInW/eXdhbnkgc2Vyd2VyIG5hencgJXMjJWQiCiAKLSM6IGRuc21hc3EuYzoxMDYKKyM6IGRuc21hc3EuYzoxMTAKIG1zZ2lkICIiCiAiSVNDIGRoY3BkIGludGVncmF0aW9uIG5vdCBhdmFpbGFibGU6IHNldCBIQVZFX0lTQ19SRUFERVIgaW4gc3JjL2NvbmZpZy5oIgogbXNnc3RyICIiCiAiSW50ZXJncmFjamEgeiBJU0MgZGhjcGQgbmllIGplc3QgZG9zdOpwbmE6IHVzdGF3IEhBVkVfSVNDX1JFQURFUiB3IHNyYy8iCiAiY29uZmlnLmgiCiAKLSM6IGRuc21hc3EuYzoxMjgKKyM6IGRuc21hc3EuYzoxMzIKICMsIGZ1enp5CiBtc2dpZCAiVEZUUCBzZXJ2ZXIgbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfVEZUUCBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgIkRCdXMgamVzdCBuaWVkb3N06nBueTogdXN0YXcgSEFWRV9EQlVTIHcgc3JjL2NvbmZpZy5oIgogCi0jOiBkbnNtYXNxLmM6MTQyCisjOiBkbnNtYXNxLmM6MTM3Cittc2dpZCAiYXN5Y2hyb25vdXMgbG9nZ2luZyBpcyBub3QgYXZhaWxhYmxlIHVuZGVyIFNvbGFyaXMiCittc2dzdHIgIiIKKworIzogZG5zbWFzcS5jOjE1MQogbXNnaWQgIm11c3Qgc2V0IGV4YWN0bHkgb25lIGludGVyZmFjZSBvbiBicm9rZW4gc3lzdGVtcyB3aXRob3V0IElQX1JFQ1ZJRiIKIG1zZ3N0ciAibXVzaXN6IHVzdGF3aeYgZG9rs2FkbmllIGplZGVuIGludGVyZmVqcyB3IHN5c3RlbWFjaCBiZXogSVBfUkVDVklGIgogCi0jOiBkbnNtYXNxLmM6MTUyCisjOiBkbnNtYXNxLmM6MTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBmaW5kIGxpc3Qgb2YgaW50ZXJmYWNlczogJXMiCiBtc2dzdHIgImKzsWQgdyB6bmFsZXppZW5pdSBsaXN0eSBpbnRlcmZlanPzdyBzaWVjaW93eWNoOiAlcyIKIAotIzogZG5zbWFzcS5jOjE2MAorIzogZG5zbWFzcS5jOjE2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duIGludGVyZmFjZSAlcyIKIG1zZ3N0ciAibmllem5hbnkgaW50ZXJmZWpzICVzIgogCi0jOiBkbnNtYXNxLmM6MTY2CisjOiBkbnNtYXNxLmM6MTc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGludGVyZmFjZSB3aXRoIGFkZHJlc3MgJXMiCiBtc2dzdHIgImJyYWsgaW50ZXJmZWpzdSB6IGFkcmVzZW0gJXMiCiAKLSM6IGRuc21hc3EuYzoxODEgZG5zbWFzcS5jOjUzOAorIzogZG5zbWFzcS5jOjE5MiBkbnNtYXNxLmM6NTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRCdXMgZXJyb3I6ICVzIgogbXNnc3RyICJis7FkIERCdXM6ICVzIgogCi0jOiBkbnNtYXNxLmM6MTg0CisjOiBkbnNtYXNxLmM6MTk1CiBtc2dpZCAiREJ1cyBub3QgYXZhaWxhYmxlOiBzZXQgSEFWRV9EQlVTIGluIHNyYy9jb25maWcuaCIKIG1zZ3N0ciAiREJ1cyBqZXN0IG5pZWRvc3TqcG55OiB1c3RhdyBIQVZFX0RCVVMgdyBzcmMvY29uZmlnLmgiCiAKLSM6IGRuc21hc3EuYzoyMTYKKyM6IGRuc21hc3EuYzoyMDQKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgcGlwZTogJXMiCiBtc2dzdHIgImKzsWQgb2Rjenl0dSB6ICVzOiAlcyIKIAotIzogZG5zbWFzcS5jOjIzNworIzogZG5zbWFzcS5jOjIyNQogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgZm9yayBpbnRvIGJhY2tncm91bmQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozMzUKKyM6IGRuc21hc3EuYzoyMzkKKyMsIGMtZm9ybWF0Cittc2dpZCAiY2Fubm90IGNoZGlyIHRvIGZpbGVzeXN0ZW0gcm9vdDogJXMiCittc2dzdHIgIiIKKworIzogZG5zbWFzcS5jOjM0OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAic3RhcnRlZCwgdmVyc2lvbiAlcyBETlMgZGlzYWJsZWQiCittc2dzdHIgInVydWNob21pb255LCB3ZXJzamEgJXMgY2FjaGUgd3mzsWN6b255IgorCisjOiBkbnNtYXNxLmM6MzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgInN0YXJ0ZWQsIHZlcnNpb24gJXMgY2FjaGVzaXplICVkIgogbXNnc3RyICJ1cnVjaG9taW9ueSwgd2Vyc2phICVzIHdpZWxrb7bmIGNhY2hlICVkIgogCi0jOiBkbnNtYXNxLmM6MzM3CisjOiBkbnNtYXNxLmM6MzUzCiAjLCBjLWZvcm1hdAogbXNnaWQgInN0YXJ0ZWQsIHZlcnNpb24gJXMgY2FjaGUgZGlzYWJsZWQiCiBtc2dzdHIgInVydWNob21pb255LCB3ZXJzamEgJXMgY2FjaGUgd3mzsWN6b255IgogCi0jOiBkbnNtYXNxLmM6MzM5CisjOiBkbnNtYXNxLmM6MzU1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBpbGUgdGltZSBvcHRpb25zOiAlcyIKIG1zZ3N0ciAib3BjamUga29tcGlsYWNqaTogJXMiCiAKLSM6IGRuc21hc3EuYzozNDUKKyM6IGRuc21hc3EuYzozNjEKIG1zZ2lkICJEQnVzIHN1cHBvcnQgZW5hYmxlZDogY29ubmVjdGVkIHRvIHN5c3RlbSBidXMiCiBtc2dzdHIgIm9ic7N1Z2EgREJ1cyB3s7Fjem9uYTogcG9ks7Fjem9ubyBkbyBzenlueSBzeXN0ZW1vd2VqIgogCi0jOiBkbnNtYXNxLmM6MzQ3CisjOiBkbnNtYXNxLmM6MzYzCiBtc2dpZCAiREJ1cyBzdXBwb3J0IGVuYWJsZWQ6IGJ1cyBjb25uZWN0aW9uIHBlbmRpbmciCiBtc2dzdHIgIm9ic7N1Z2EgREJ1cyB3s7Fjem9uYTogcG9ks7FjemFuaWUgZG8gc3p5bnkgc3lzdGVtb3dlaiB3IHRva3UiCiAKLSM6IGRuc21hc3EuYzozNTIKKyM6IGRuc21hc3EuYzozNjgKIG1zZ2lkICJzZXR0aW5nIC0tYmluZC1pbnRlcmZhY2VzIG9wdGlvbiBiZWNhdXNlIG9mIE9TIGxpbWl0YXRpb25zIgogbXNnc3RyICJ1c3Rhd2lhbSBvcGNq6iAtLWJpbmQtaW50ZXJmYWNlcyB6IHBvd29kdSBsaW1pdPN3IHN5c3RlbXUgb3BlcmFjeWpuZWdvIgogCi0jOiBkbnNtYXNxLmM6MzU3CisjOiBkbnNtYXNxLmM6MzczCiAjLCBjLWZvcm1hdAogbXNnaWQgIndhcm5pbmc6IGludGVyZmFjZSAlcyBkb2VzIG5vdCBjdXJyZW50bHkgZXhpc3QiCiBtc2dzdHIgIm9zdHJ6Zb9lbmllOiBpbnRlcmZlanMgJXMgb2JlY25pZSBuaWUgaXN0bmllamUiCiAKLSM6IGRuc21hc3EuYzozNjIKKyM6IGRuc21hc3EuYzozNzgKIG1zZ2lkICJ3YXJuaW5nOiBpZ25vcmluZyByZXNvbHYtZmlsZSBmbGFnIGJlY2F1c2Ugbm8tcmVzb2x2IGlzIHNldCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzY1CisjOiBkbnNtYXNxLmM6MzgxCiAjLCBmdXp6eQogbXNnaWQgIndhcm5pbmc6IG5vIHVwc3RyZWFtIHNlcnZlcnMgY29uZmlndXJlZCIKIG1zZ3N0ciAiYnJhayBza29uZmlndXJvd2FuZWdvIGFkcmVzdSIKIAotIzogZG5zbWFzcS5jOjM2OQorIzogZG5zbWFzcS5jOjM4NQogIywgYy1mb3JtYXQKIG1zZ2lkICJhc3luY2hyb25vdXMgbG9nZ2luZyBlbmFibGVkLCBxdWV1ZSBsaW1pdCBpcyAlZCBtZXNzYWdlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzgxCisjOiBkbnNtYXNxLmM6Mzk3CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AsIHN0YXRpYyBsZWFzZXMgb25seSBvbiAlLjBzJXMsIGxlYXNlIHRpbWUgJXMiCiBtc2dzdHIgIkRIQ1AsIHN0YXR5Y3puZSBkemllcr9hd3kgdHlsa28gbmEgJS4wcyVzLCBjemFzIGR6aWVyv2F3eSAlcyIKIAotIzogZG5zbWFzcS5jOjM4MgorIzogZG5zbWFzcS5jOjM5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQLCBJUCByYW5nZSAlcyAtLSAlcywgbGVhc2UgdGltZSAlcyIKIG1zZ3N0ciAiREhDUCwgemFrcmVzIElQICVzIC0tICVzLCBjemFzIGR6aWVyv2F3eSAlcyIKIAotIzogZG5zbWFzcS5jOjM5NgorIzogZG5zbWFzcS5jOjQxMgogbXNnaWQgInJvb3QgaXMgIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozOTYKKyM6IGRuc21hc3EuYzo0MTIKICMsIGZ1enp5CiBtc2dpZCAiZW5hYmxlZCIKIG1zZ3N0ciAid3mzsWN6b255KGEpIgogCi0jOiBkbnNtYXNxLmM6Mzk4CisjOiBkbnNtYXNxLmM6NDE0CiBtc2dpZCAic2VjdXJlIG1vZGUiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjQxOAorIzogZG5zbWFzcS5jOjQ0MAogIywgYy1mb3JtYXQKIG1zZ2lkICJyZXN0cmljdGluZyBtYXhpbXVtIHNpbXVsdGFuZW91cyBURlRQIHRyYW5zZmVycyB0byAlZCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NDI3CisjOiBkbnNtYXNxLmM6NDQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIndhcm5pbmc6IHNldHRpbmcgY2FwYWJpbGl0aWVzIGZhaWxlZDogJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjQyOQorIzogZG5zbWFzcS5jOjQ1MQogbXNnaWQgInJ1bm5pbmcgYXMgcm9vdCIKIG1zZ3N0ciAicHJhY3VqZSB6IHVwcmF3bmllbmlhbWkgdb95dGtvd25pa2Egcm9vdCIKIAotIzogZG5zbWFzcS5jOjU0MAorIzogZG5zbWFzcS5jOjU2MwogbXNnaWQgImNvbm5lY3RlZCB0byBzeXN0ZW0gREJ1cyIKIG1zZ3N0ciAicG+zsWN6b25vIGRvIHN5c3RlbW93ZWdvIERCdXMiCiAKLSM6IGRuc21hc3EuYzo2NTkKKyM6IGRuc21hc3EuYzo2ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hpbGQgcHJvY2VzcyBraWxsZWQgYnkgc2lnbmFsICVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo2NjMKKyM6IGRuc21hc3EuYzo2ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hpbGQgcHJvY2VzcyBleGl0ZWQgd2l0aCBzdGF0dXMgJWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjY2NworIzogZG5zbWFzcS5jOjY5MQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXM6ICVzIgogbXNnc3RyICJis7FkIHcgZG9zdOpwaWUgZG8gJXM6ICVtIgogCi0jOiBkbnNtYXNxLmM6NjcxCisjOiBkbnNtYXNxLmM6Njk1CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIGhlbHBlcjogJXMiCiBtc2dzdHIgImKzsWQgdyBvZGN6eWNpZSAlczogJW0iCiAKLSM6IGRuc21hc3EuYzo3MDUKKyM6IGRuc21hc3EuYzo3MjkKIG1zZ2lkICJleGl0aW5nIG9uIHJlY2VpcHQgb2YgU0lHVEVSTSIKIG1zZ3N0ciAid3mzsWN6ZW5pZSBwbyBvdHJ6eW1hbml1IHN5Z25hbHUgU0lHVEVSTSIKIAotIzogZG5zbWFzcS5jOjc1NgorIzogZG5zbWFzcS5jOjc4MAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAibm8gc2VydmVycyBmb3VuZCBpbiAlcywgd2lsbCByZXRyeSIKIG1zZ3N0ciAiYnJhayB3eXR5Y3pueWNoIHd5c3p1a2l3YW5pYSB3ICVzIgogCi0jOiBkaGNwLmM6MzIKKyM6IGRoY3AuYzozOAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIERIQ1Agc29ja2V0IDogJXMiCiBtc2dzdHIgIm5pZSBtb79uYSB1dHdvcnp55iBnbmlhemRhIERIQ1AgOiAlcyIKIAotIzogZGhjcC5jOjQxCisjOiBkaGNwLmM6NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHNldCBvcHRpb25zIG9uIERIQ1Agc29ja2V0OiAlcyIKIG1zZ3N0ciAiYrOxZCB1c3Rhd2llbmlhIG9wY2ppIGduaWF6ZGEgREhDUDogJXMiCiAKLSM6IGRoY3AuYzo1OQorIzogZGhjcC5jOjY4CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc2V0IFNPX1JFVVNFe0FERFJ8UE9SVH0gb24gREhDUCBzb2NrZXQ6ICVzIgogbXNnc3RyICJis7FkIHVzdGF3aWVuaWEgU09fUkVVU0VBRERSIGduaWF6ZGEgREhDUDogJXMiCiAKLSM6IGRoY3AuYzo3MgorIzogZGhjcC5jOjgxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBiaW5kIERIQ1Agc2VydmVyIHNvY2tldDogJXMiCiBtc2dzdHIgImKzsWQgcG9ks7FjemVuaWEgZ25pYXpkYSBzZXJ3ZXJhIERIQ1A6ICVzIgogCi0jOiBkaGNwLmM6ODUKKyM6IGRoY3AuYzo5NAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIElDTVAgcmF3IHNvY2tldDogJXMuIgogbXNnc3RyICJis7FkIHV0d29yemVuaWEgc3Vyb3dlZ28gZ25pYXpkYSBJQ01QOiAlcy4iCiAKLSM6IGRoY3AuYzoxMDAKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKLW1zZ3N0ciAicG93dPNyemVuaWUgYWRyZXN1IElQICVzIHcgb3BjamkgZGhjcC1jb25maWciCi0KLSM6IGRoY3AuYzoxMDMKLSMsIGZ1enp5LCBjLWZvcm1hdAotbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCi1tc2dzdHIgInBvd3TzcnplbmllIGFkcmVzdSBJUCAlcyB3IG9wY2ppIGRoY3AtY29uZmlnIgotCi0jOiBkaGNwLmM6MjIxCisjOiBkaGNwLmM6MjIzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcGFja2V0IHJlY2VpdmVkIG9uICVzIHdoaWNoIGhhcyBubyBhZGRyZXNzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzozNTIKKyM6IGRoY3AuYzozODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCByYW5nZSAlcyAtLSAlcyBpcyBub3QgY29uc2lzdGVudCB3aXRoIG5ldG1hc2sgJXMiCiBtc2dzdHIgInpha3JlcyBESENQICVzIC0tICVzIGplc3Qgbmllc3Dzam55IHogbWFza7Egc2llY2lvd7EgJXMiCiAKLSM6IGRoY3AuYzo2NjkKKyM6IGRoY3AuYzo3MDkKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byByZWFkICVzOiVzIgogbXNnc3RyICJis7FkIHcgb2RjenljaWUgJXM6ICVtIgogCi0jOiBkaGNwLmM6NzA0CisjOiBkaGNwLmM6NzQ0CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbGluZSBhdCAlcyBsaW5lICVkIgogbXNnc3RyICJis+pkbmEgbmF6d2EgdyAlcywgbGluaWEgJWQiCiAKLSM6IGRoY3AuYzo4MjYKKyM6IGRoY3AuYzo4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKK21zZ3N0ciAicG93dPNyemVuaWUgYWRyZXN1IElQICVzIHcgb3BjamkgZGhjcC1jb25maWciCisKKyM6IGRoY3AuYzo4NTAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzIGluICVzLiIKIG1zZ3N0ciAicG93dPNyemVuaWUgYWRyZXN1IElQICVzIHcgb3BjamkgZGhjcC1jb25maWciCiAKLSM6IGRoY3AuYzo4MzIKKyM6IGRoY3AuYzo4NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCittc2dzdHIgInBvd3TzcnplbmllIGFkcmVzdSBJUCAlcyB3IG9wY2ppIGRoY3AtY29uZmlnIgorCisjOiBkaGNwLmM6ODYwCiAjLCBjLWZvcm1hdAogbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6ODM5Ci0jLCBmdXp6eSwgYy1mb3JtYXQKLW1zZ2lkICJyZWFkICVzIC0gJWQgaG9zdHMiCi1tc2dzdHIgInByemVjenl0YW5vICVzIC0gJWQgYWRyZXPzdyIKKyM6IGRoY3AuYzo4OTkKKyMsIGMtZm9ybWF0Cittc2dpZCAiJXMgaGFzIG1vcmUgdGhlbiBvbmUgYWRkcmVzcyBpbiBob3N0c2ZpbGUsIHVzaW5nICVzIGZvciBESENQIgorbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4NjYKKyM6IGRoY3AuYzo5MDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgKCVzKSBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUiCiBtc2dzdHIgInBvd3TzcnplbmllIGFkcmVzdSBJUCAlcyAoJXMpIHcgb3BjamkgZGhjcC1jb25maWciCiAKLSM6IGxlYXNlLmM6NTQKKyM6IGxlYXNlLmM6NTgKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuIG9yIGNyZWF0ZSBsZWFzZSBmaWxlICVzOiAlcyIKIG1zZ3N0ciAiYrOxZCBvdHdhcmNpYSBsdWIgdXR3b3J6ZW5pYSBwbGlrdSBkemllcr9hdzogJXMiCiAKLSM6IGxlYXNlLmM6ODAKKyM6IGxlYXNlLmM6ODQKIG1zZ2lkICJ0b28gbWFueSBzdG9yZWQgbGVhc2VzIgogbXNnc3RyICJ6Ynl0IGR1v2EgaWxvtuYgemFwaXNhbnljaCBkemllcr9hdyIKIAotIzogbGVhc2UuYzoxMjEKKyM6IGxlYXNlLmM6MTI1CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcnVuIGxlYXNlLWluaXQgc2NyaXB0ICVzOiAlcyIKIG1zZ3N0ciAiYrOxZCBvZGN6eXR1IHogJXM6ICVzIgogCi0jOiBsZWFzZS5jOjEyNworIzogbGVhc2UuYzoxMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAibGVhc2UtaW5pdCBzY3JpcHQgcmV0dXJuZWQgZXhpdCBjb2RlICVzIgogbXNnc3RyICIiCiAKLSM6IGxlYXNlLmM6MjM0CisjOiBsZWFzZS5jOjIzOAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHdyaXRlICVzOiAlcyAocmV0cnkgaW4gJXVzKSIKIG1zZ3N0ciAiYrOxZCB3IG9kY3p5Y2llICVzOiAlbSIKIAotIzogcmZjMjEzMS5jOjMwMAorIzogcmZjMjEzMS5jOjMwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBhZGRyZXNzIHJhbmdlIGF2YWlsYWJsZSBmb3IgREhDUCByZXF1ZXN0ICVzICVzIgogbXNnc3RyICK/YWRlbiB6YWtyZXMgYWRyZXNvd3kgbmllIGplc3QgZG9zdOpwbnkgZGxhIL9hZGFuaWEgREhDUCAlcyAlcyIKIAotIzogcmZjMjEzMS5jOjMwMQorIzogcmZjMjEzMS5jOjMwNAogbXNnaWQgIndpdGggc3VibmV0IHNlbGVjdG9yIgogbXNnc3RyICJ6IHNlbGVrY2qxIHBvZHNpZWNpIgogCi0jOiByZmMyMTMxLmM6MzAxCisjOiByZmMyMTMxLmM6MzA0CiBtc2dpZCAidmlhIgogbXNnc3RyICJwcnpleiIKIAotIzogcmZjMjEzMS5jOjMxMgorIzogcmZjMjEzMS5jOjMxNQogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQIHBhY2tldDogdHJhbnNhY3Rpb24taWQgaXMgJXUiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjMxNworIzogcmZjMjEzMS5jOjMyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgREhDUCBzdWJuZXQ6ICVzLyVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMTkKKyM6IHJmYzIxMzEuYzozMjIKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIERIQ1AgcmFuZ2U6ICVzIC0tICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozNDcgcmZjMjEzMS5jOjM3OAorIzogcmZjMjEzMS5jOjM1MCByZmMyMTMxLmM6MzgxCiBtc2dpZCAiZGlzYWJsZWQiCiBtc2dzdHIgInd5s7Fjem9ueShhKSIKIAotIzogcmZjMjEzMS5jOjM5MCByZmMyMTMxLmM6ODUyCisjOiByZmMyMTMxLmM6MzkzIHJmYzIxMzEuYzo4NzMKIG1zZ2lkICJhZGRyZXNzIGluIHVzZSIKIG1zZ3N0ciAiYWRyZXMgdyB1v3ljaXUiCiAKLSM6IHJmYzIxMzEuYzozOTMKKyM6IHJmYzIxMzEuYzozOTYKIG1zZ2lkICJubyBhZGRyZXNzIGNvbmZpZ3VyZWQiCiBtc2dzdHIgImJyYWsgc2tvbmZpZ3Vyb3dhbmVnbyBhZHJlc3UiCiAKLSM6IHJmYzIxMzEuYzo0MDYgcmZjMjEzMS5jOjcyMAorIzogcmZjMjEzMS5jOjQwOSByZmMyMTMxLmM6NzM2CiBtc2dpZCAibm8gYWRkcmVzcyBhdmFpbGFibGUiCiBtc2dzdHIgImJyYWsgZG9zdOpwbmVnbyBhZHJlc3UiCiAKLSM6IHJmYzIxMzEuYzo0MTYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiTGltaXQgb2YgJWQgbGVhc2VzIGV4Y2VlZGVkLiIKLW1zZ3N0ciAiIgotCi0jOiByZmMyMTMxLmM6NDE3IHJmYzIxMzEuYzo4NjIKKyM6IHJmYzIxMzEuYzo0MTggcmZjMjEzMS5jOjg4MwogbXNnaWQgIm5vIGxlYXNlcyBsZWZ0IgogbXNnc3RyICJicmFrIHdvbG55Y2ggZHppZXK/YXciCiAKLSM6IHJmYzIxMzEuYzo0MjEgcmZjMjEzMS5jOjgyNgorIzogcmZjMjEzMS5jOjQyMSByZmMyMTMxLmM6ODQ3CiBtc2dpZCAid3JvbmcgbmV0d29yayIKIG1zZ3N0ciAibmllcHJhd2lks293YSBzaWXmIgogCi0jOiByZmMyMTMxLmM6NTE5CisjOiByZmMyMTMxLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIklnbm9yaW5nIGRvbWFpbiAlcyBmb3IgREhDUCBob3N0IG5hbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjU5OAorIzogcmZjMjEzMS5jOjYxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJWZW5kb3IgY2xhc3M6ICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo2MDAKKyM6IHJmYzIxMzEuYzo2MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlciBjbGFzczogJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY0MQorIzogcmZjMjEzMS5jOjY1NwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZGlzYWJsaW5nIERIQ1Agc3RhdGljIGFkZHJlc3MgJXMgZm9yICVzIgogbXNnc3RyICJ3ebOxY3phbmllIHN0YXR5Y3puZWdvIGFkcmVzdSBESENQICVzIgogCi0jOiByZmMyMTMxLmM6NjYyCisjOiByZmMyMTMxLmM6Njc4CiBtc2dpZCAidW5rbm93biBsZWFzZSIKIG1zZ3N0ciAibmllem5hbmEgZHppZXK/YXdhIgogCi0jOiByZmMyMTMxLmM6NjcxIHJmYzIxMzEuYzo5NzAKKyM6IHJmYzIxMzEuYzo2ODcgcmZjMjEzMS5jOjk5MgogbXNnaWQgImlnbm9yZWQiCiBtc2dzdHIgImlnbm9ydWrqIgogCi0jOiByZmMyMTMxLmM6NjkxCisjOiByZmMyMTMxLmM6NzA3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCB1c2luZyBjb25maWd1cmVkIGFkZHJlc3MgJXMgYmVjYXVzZSBpdCBpcyBsZWFzZWQgdG8gJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjcwMQorIzogcmZjMjEzMS5jOjcxNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IGlzIGluIHVzZSBieSB0aGUgc2VydmVyIG9yIHJlbGF5IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo3MDQKKyM6IHJmYzIxMzEuYzo3MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IHdhcyBwcmV2aW91c2x5IGRlY2xpbmVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo3MTggcmZjMjEzMS5jOjg1NQorIzogcmZjMjEzMS5jOjczNCByZmMyMTMxLmM6ODc2CiBtc2dpZCAibm8gdW5pcXVlLWlkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo3ODkKKyM6IHJmYzIxMzEuYzo4MDYKIG1zZ2lkICJ3cm9uZyBhZGRyZXNzIgogbXNnc3RyICJis+pkbnkgYWRyZXMiCiAKLSM6IHJmYzIxMzEuYzo4MDIKKyM6IHJmYzIxMzEuYzo4MjMKIG1zZ2lkICJsZWFzZSBub3QgZm91bmQiCiBtc2dzdHIgImR6aWVyv2F3YSBuaWUgem5hbGV6aW9uYSIKIAotIzogcmZjMjEzMS5jOjgzNAorIzogcmZjMjEzMS5jOjg1NQogbXNnaWQgImFkZHJlc3Mgbm90IGF2YWlsYWJsZSIKIG1zZ3N0ciAiYWRyZXMgbmllZG9zdOpwbnkiCiAKLSM6IHJmYzIxMzEuYzo4NDUKKyM6IHJmYzIxMzEuYzo4NjYKIG1zZ2lkICJzdGF0aWMgbGVhc2UgYXZhaWxhYmxlIgogbXNnc3RyICJkb3N06nBuYSBzdGF0eWN6bmEgZHppZXK/YXdhIgogCi0jOiByZmMyMTMxLmM6ODQ5CisjOiByZmMyMTMxLmM6ODcwCiBtc2dpZCAiYWRkcmVzcyByZXNlcnZlZCIKIG1zZ3N0ciAiYWRyZXMgemFyZXplcndvd2FueSIKIAotIzogcmZjMjEzMS5jOjEyNTIKKyM6IHJmYzIxMzEuYzoxMjY1CiAjLCBjLWZvcm1hdAogbXNnaWQgInRhZ3M6ICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzoxMzM0CisjOiByZmMyMTMxLmM6MTM1MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgc2VuZCBESENQL0JPT1RQIG9wdGlvbiAlZDogbm8gc3BhY2UgbGVmdCBpbiBwYWNrZXQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjE0ODgKKyM6IHJmYzIxMzEuYzoxNTA3CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJyZXF1ZXN0ZWQgb3B0aW9uczogJXMiCiBtc2dzdHIgIm9wY2plIGtvbXBpbGFjamk6ICVzIgogCi0jOiByZmMyMTMxLmM6MTUxOQotIywgYy1mb3JtYXQKLW1zZ2lkICJzZXJ2ZXIgbmFtZTogJXMiCi1tc2dzdHIgIiIKLQotIzogcmZjMjEzMS5jOjE1MzEKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiYm9vdGZpbGUgbmFtZTogJXMiCi1tc2dzdHIgIiIKLQotIzogcmZjMjEzMS5jOjE1NDAKKyM6IHJmYzIxMzEuYzoxNTU2CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJuZXh0IHNlcnZlcjogJXMiCiBtc2dzdHIgImKzsWQgREJ1czogJXMiCiAKLSM6IG5ldGxpbmsuYzo1OQorIzogcmZjMjEzMS5jOjE1ODAKKyMsIGMtZm9ybWF0Cittc2dpZCAiYm9vdGZpbGUgbmFtZTogJXMiCittc2dzdHIgIiIKKworIzogcmZjMjEzMS5jOjE1ODMKKyMsIGMtZm9ybWF0Cittc2dpZCAic2VydmVyIG5hbWU6ICVzIgorbXNnc3RyICIiCisKKyM6IG5ldGxpbmsuYzo2MwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBuZXRsaW5rIHNvY2tldDogJXMiCiBtc2dzdHIgIm5pZSBtb79uYSBwb2SzsWN6eeYgZ25pYXpkYSBuZXRsaW5rOiAlcyIKIAotIzogbmV0bGluay5jOjIyNgorIzogbmV0bGluay5jOjIzMAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAibmV0bGluayByZXR1cm5zIGVycm9yOiAlcyIKIG1zZ3N0ciAiYrOxZCBEQnVzOiAlcyIKIAotIzogZGJ1cy5jOjExMQorIzogZGJ1cy5jOjExNQogbXNnaWQgImF0dGVtcHQgdG8gc2V0IGFuIElQdjYgc2VydmVyIGFkZHJlc3MgdmlhIERCdXMgLSBubyBJUHY2IHN1cHBvcnQiCiBtc2dzdHIgInBy82JhIHVzdGF3aWVuaWEgYWRyZXN1IElQdjYgc2Vyd2VyYSBwcnpleiBEQnVzIC0gYnJhayBvYnOzdWdpIElQdjYiCiAKLSM6IGRidXMuYzoyMzcKKyM6IGRidXMuYzoyNDEKIG1zZ2lkICJzZXR0aW5nIHVwc3RyZWFtIHNlcnZlcnMgZnJvbSBEQnVzIgogbXNnc3RyICIiCiAKLSM6IGRidXMuYzoyNzUKKyM6IGRidXMuYzoyNzkKIG1zZ2lkICJjb3VsZCBub3QgcmVnaXN0ZXIgYSBEQnVzIG1lc3NhZ2UgaGFuZGxlciIKIG1zZ3N0ciAibmllIG1vv25hIHphcmVqZXN0cm93YeYgdWNod3l0dSB3aWFkb21vtmNpIERCdXMiCiAKLSM6IGJwZi5jOjQzCisjOiBicGYuYzoxNDYKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBESENQIEJQRiBzb2NrZXQ6ICVzIgogbXNnc3RyICJis7FkIHV0d29yemVuaWEgZ25pYXpkYSBESENQIEJQRjogJXMiCiAKLSM6IGJwZi5jOjcxCisjOiBicGYuYzoxNzQKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcmVxdWVzdCBmb3IgdW5zdXBwb3J0ZWQgaGFyZHdhcmUgdHlwZSAoJWQpIHJlY2VpdmVkIG9uICVzIgogbXNnc3RyICK/sWRhbmllIERIQ1Agbmllb2Jzs3VnaXdhbmVnbyB0eXB1IHNwcnrqdG93ZWdvICglZCkgb3RyenltYW5lIG5hICVzIgogCi0jOiB0ZnRwLmM6MTU4CisjOiB0ZnRwLmM6MTczCittc2dpZCAidW5hYmxlIHRvIGdldCBmcmVlIHBvcnQgZm9yIFRGVFAiCittc2dzdHIgIiIKKworIzogdGZ0cC5jOjE4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnN1cHBvcnRlZCByZXF1ZXN0IGZyb20gJXMiCiBtc2dzdHIgIiIKIAotIzogdGZ0cC5jOjIzNgorIzogdGZ0cC5jOjI2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJURlRQIHNlbnQgJXMgdG8gJXMiCiBtc2dzdHIgIiIKIAotIzogdGZ0cC5jOjI1OQorIzogdGZ0cC5jOjI4OQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmlsZSAlcyBub3QgZm91bmQiCiBtc2dzdHIgImR6aWVyv2F3YSBuaWUgem5hbGV6aW9uYSIKIAotIzogdGZ0cC5jOjM2OQorIzogdGZ0cC5jOjM5OQogIywgYy1mb3JtYXQKIG1zZ2lkICJURlRQIGVycm9yICVkICVzIHJlY2VpdmVkIGZyb20gJXMiCiBtc2dzdHIgIiIKIAotIzogdGZ0cC5jOjQwMAorIzogdGZ0cC5jOjQzMAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiVEZUUCBmYWlsZWQgc2VuZGluZyAlcyB0byAlcyIKIG1zZ3N0ciAiYrOxZCB3IG9kY3p5Y2llICVzOiAlbSIKIAotIzogbG9nLmM6NjkKKyM6IGxvZy5jOjczCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiAlczogJXMiCiBtc2dzdHIgIm5pZSBtb79uYSBvdHdvcnp55iAlczolcyIKIAotIzogbG9nLmM6MTQ2CisjOiBsb2cuYzo4OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAid2FybmluZzogZmFpbGVkIHRvIGNoYW5nZSBvd25lciBvZiAlczogJXMiCittc2dzdHIgImKzsWQgs2Fkb3dhbmlhIG5hencgeiAlczogJW0iCisKKyM6IGxvZy5jOjE2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJvdmVyZmxvdzogJWQgbG9nIGVudHJpZXMgbG9zdCIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzoyMjMKKyM6IGxvZy5jOjIzOAogIywgYy1mb3JtYXQKIG1zZ2lkICJsb2cgZmFpbGVkOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzozNzgKKyM6IGxvZy5jOjM5NAogbXNnaWQgIkZBSUxFRCB0byBzdGFydCB1cCIKIG1zZ3N0ciAiQqOhRCB1cnVjaG9taWVuaWEiCiAKKyMsIGZ1enp5CisjfiBtc2dpZCAicmVhZCAlcyAtICVkIGhvc3RzIgorI34gbXNnc3RyICJwcnplY3p5dGFubyAlcyAtICVkIGFkcmVz83ciCisKICN+IG1zZ2lkICJiYWQgZGhjcC1ob3N0IgogI34gbXNnc3RyICJis7FkIHcgZGhjcC1ob3N0IgogCmRpZmYgLS1naXQgYS9wby9wdF9CUi5wbyBiL3BvL3B0X0JSLnBvCmluZGV4IDNjOWVlOGMuLjY2M2Y5OTIgMTAwNjQ0Ci0tLSBhL3BvL3B0X0JSLnBvCisrKyBiL3BvL3B0X0JSLnBvCkBAIC02LDcgKzYsNyBAQAogbXNnc3RyICIiCiAiUHJvamVjdC1JZC1WZXJzaW9uOiBkbnNtYXNxIDIuMjZcbiIKICJSZXBvcnQtTXNnaWQtQnVncy1UbzogXG4iCi0iUE9ULUNyZWF0aW9uLURhdGU6IDIwMDctMDgtMjkgMTE6MDkrMDEwMFxuIgorIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA4LTAyLTEyIDExOjA0KzAwMDBcbiIKICJQTy1SZXZpc2lvbi1EYXRlOiAyMDA2LTAxLTE2IDIwOjQyKzAwMDBcbiIKICJMYXN0LVRyYW5zbGF0b3I6IFNpbW9uIEtlbGxleSA8c2ltb25AdGhla2VsbGV5cy5vcmcudWs+XG4iCiAiTGFuZ3VhZ2UtVGVhbTogUG9ydHVndWVzZSA8bGRwLWJyQGJhemFyLmNvbmVjdGl2YS5jb20uYnI+XG4iCkBAIC0xNSwxMjEzICsxNSwxMzA3IEBACiAiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgogIlBsdXJhbC1Gb3JtczogbnBsdXJhbHM9MjsgcGx1cmFsPShuID4gMSk7XG4iCiAKLSM6IGNhY2hlLmM6NjcxCisjOiBjYWNoZS5jOjY4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gbG9hZCBuYW1lcyBmcm9tICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBjYWNoZS5jOjcwNSBkaGNwLmM6NzE3CisjOiBjYWNoZS5jOjcxNCBkaGNwLmM6NzU3CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBhZGRyZXNzIGF0ICVzIGxpbmUgJWQiCiBtc2dzdHIgIiIKIAotIzogY2FjaGUuYzo3NTIgZGhjcC5jOjczMQorIzogY2FjaGUuYzo3NjEgZGhjcC5jOjc3MQogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbmFtZSBhdCAlcyBsaW5lICVkIgogbXNnc3RyICIiCiAKLSM6IGNhY2hlLmM6NzU5IGRoY3AuYzo3ODUKKyM6IGNhY2hlLmM6NzY4IGRoY3AuYzo4MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZCAlcyAtICVkIGFkZHJlc3NlcyIKIG1zZ3N0ciAiIgogCi0jOiBjYWNoZS5jOjc5NworIzogY2FjaGUuYzo4MDYKIG1zZ2lkICJjbGVhcmVkIGNhY2hlIgogbXNnc3RyICIiCiAKLSM6IGNhY2hlLmM6ODQ0CisjOiBjYWNoZS5jOjg1NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90IGdpdmluZyBuYW1lICVzIHRvIHRoZSBESENQIGxlYXNlIG9mICVzIGJlY2F1c2UgdGhlIG5hbWUgZXhpc3RzIGluICVzICIKICJ3aXRoIGFkZHJlc3MgJXMiCiBtc2dzdHIgIiIKIAotIzogY2FjaGUuYzo4ODQKKyM6IGNhY2hlLmM6OTA3CiAjLCBjLWZvcm1hdAotbXNnaWQgIiIKLSJ0aW1lICVsdSwgY2FjaGUgc2l6ZSAlZCwgJWQvJWQgY2FjaGUgaW5zZXJ0aW9ucyByZS11c2VkIHVuZXhwaXJlZCBjYWNoZSAiCi0iZW50cmllcy4iCittc2dpZCAidGltZSAlbHUiCiBtc2dzdHIgIiIKIAotIzogdXRpbC5jOjE1NyBvcHRpb24uYzo3NTgKKyM6IGNhY2hlLmM6OTA4CisjLCBjLWZvcm1hdAorbXNnaWQgImNhY2hlIHNpemUgJWQsICVkLyVkIGNhY2hlIGluc2VydGlvbnMgcmUtdXNlZCB1bmV4cGlyZWQgY2FjaGUgZW50cmllcy4iCittc2dzdHIgIiIKKworIzogY2FjaGUuYzo5MTAKKyMsIGMtZm9ybWF0Cittc2dpZCAicXVlcmllcyBmb3J3YXJkZWQgJXUsIHF1ZXJpZXMgYW5zd2VyZWQgbG9jYWxseSAldSIKK21zZ3N0ciAiIgorCisjOiBjYWNoZS5jOjkzMworIywgYy1mb3JtYXQKK21zZ2lkICJzZXJ2ZXIgJXMjJWQ6IHF1ZXJpZXMgc2VudCAldSwgcmV0cmllZCBvciBmYWlsZWQgJXUiCittc2dzdHIgIiIKKworIzogdXRpbC5jOjE2MAogbXNnaWQgImNvdWxkIG5vdCBnZXQgbWVtb3J5IgogbXNnc3RyICIiCiAKLSM6IHV0aWwuYzoxNjcKKyM6IHV0aWwuYzoxNzAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGFsbG9jYXRlICVkIGJ5dGVzIgogbXNnc3RyICIiCiAKLSM6IHV0aWwuYzoyNzIKKyM6IHV0aWwuYzoyNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5maW5pdGUiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTg4CisjOiBvcHRpb24uYzoyNDQKIG1zZ2lkICJTcGVjaWZ5IGxvY2FsIGFkZHJlc3MoZXMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTg5CisjOiBvcHRpb24uYzoyNDUKIG1zZ2lkICJSZXR1cm4gaXBhZGRyIGZvciBhbGwgaG9zdHMgaW4gc3BlY2lmaWVkIGRvbWFpbnMuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5MAorIzogb3B0aW9uLmM6MjQ2CiBtc2dpZCAiRmFrZSByZXZlcnNlIGxvb2t1cHMgZm9yIFJGQzE5MTggcHJpdmF0ZSBhZGRyZXNzIHJhbmdlcy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTkxCisjOiBvcHRpb24uYzoyNDcKIG1zZ2lkICJUcmVhdCBpcGFkZHIgYXMgTlhET01BSU4gKGRlZmVhdHMgVmVyaXNpZ24gd2lsZGNhcmQpLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTIKKyM6IG9wdGlvbi5jOjI0OAogIywgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IHRoZSBzaXplIG9mIHRoZSBjYWNoZSBpbiBlbnRyaWVzIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5MworIzogb3B0aW9uLmM6MjQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgY29uZmlndXJhdGlvbiBmaWxlIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5NAorIzogb3B0aW9uLmM6MjUwCiBtc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZDogcnVuIGluIGRlYnVnIG1vZGUuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5NQorIzogb3B0aW9uLmM6MjUxCiBtc2dpZCAiRG8gTk9UIGZvcndhcmQgcXVlcmllcyB3aXRoIG5vIGRvbWFpbiBwYXJ0LiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTYKKyM6IG9wdGlvbi5jOjI1MgogbXNnaWQgIlJldHVybiBzZWxmLXBvaW50aW5nIE1YIHJlY29yZHMgZm9yIGxvY2FsIGhvc3RzLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTcKKyM6IG9wdGlvbi5jOjI1MwogbXNnaWQgIkV4cGFuZCBzaW1wbGUgbmFtZXMgaW4gL2V0Yy9ob3N0cyB3aXRoIGRvbWFpbi1zdWZmaXguIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5OAorIzogb3B0aW9uLmM6MjU0CiBtc2dpZCAiRG9uJ3QgZm9yd2FyZCBzcHVyaW91cyBETlMgcmVxdWVzdHMgZnJvbSBXaW5kb3dzIGhvc3RzLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTkKKyM6IG9wdGlvbi5jOjI1NQogbXNnaWQgIkVuYWJsZSBESENQIGluIHRoZSByYW5nZSBnaXZlbiB3aXRoIGxlYXNlIGR1cmF0aW9uLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDAKKyM6IG9wdGlvbi5jOjI1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGFuZ2UgdG8gdGhpcyBncm91cCBhZnRlciBzdGFydHVwIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMQorIzogb3B0aW9uLmM6MjU3CiBtc2dpZCAiU2V0IGFkZHJlc3Mgb3IgaG9zdG5hbWUgZm9yIGEgc3BlY2lmaWVkIG1hY2hpbmUuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMgorIzogb3B0aW9uLmM6MjU4CiBtc2dpZCAiUmVhZCBESENQIGhvc3Qgc3BlY3MgZnJvbSBmaWxlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMwotIywgYy1mb3JtYXQKLW1zZ2lkICJEbyBOT1QgbG9hZCAlcyBmaWxlLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMDQKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiU3BlY2lmeSBhIGhvc3RzIGZpbGUgdG8gYmUgcmVhZCBpbiBhZGRpdGlvbiB0byAlcy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjA1Ci1tc2dpZCAiU3BlY2lmeSBpbnRlcmZhY2UocykgdG8gbGlzdGVuIG9uLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMDYKLW1zZ2lkICJTcGVjaWZ5IGludGVyZmFjZShzKSBOT1QgdG8gbGlzdGVuIG9uLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMDcKLW1zZ2lkICJNYXAgREhDUCB1c2VyIGNsYXNzIHRvIHRhZy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjA4Ci1tc2dpZCAiTWFwIFJGQzMwNDYgY2lyY3VpdC1pZCB0byB0YWcuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIwOQotbXNnaWQgIk1hcCBSRkMzMDQ2IHJlbW90ZS1pZCB0byB0YWcuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxMAotbXNnaWQgIk1hcCBSRkMzOTkzIHN1YnNjcmliZXItaWQgdG8gdGFnLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTEKLW1zZ2lkICJEb24ndCBkbyBESENQIGZvciBob3N0cyB3aXRoIHRhZyBzZXQuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIxMgotbXNnaWQgIkRvIE5PVCBmb3JrIGludG8gdGhlIGJhY2tncm91bmQsIGRvIE5PVCBydW4gaW4gZGVidWcgbW9kZS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjEzCi1tc2dpZCAiQXNzdW1lIHdlIGFyZSB0aGUgb25seSBESENQIHNlcnZlciBvbiB0aGUgbG9jYWwgbmV0d29yay4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjE0Ci0jLCBjLWZvcm1hdAotbXNnaWQgIlNwZWNpZnkgd2hlcmUgdG8gc3RvcmUgREhDUCBsZWFzZXMgKGRlZmF1bHRzIHRvICVzKS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjE1Ci1tc2dpZCAiUmV0dXJuIE1YIHJlY29yZHMgZm9yIGxvY2FsIGhvc3RzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTYKLW1zZ2lkICJTcGVjaWZ5IGFuIE1YIHJlY29yZC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjE3Ci1tc2dpZCAiU3BlY2lmeSBCT09UUCBvcHRpb25zIHRvIERIQ1Agc2VydmVyLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTgKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiRG8gTk9UIHBvbGwgJXMgZmlsZSwgcmVsb2FkIG9ubHkgb24gU0lHSFVQLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMTkKLW1zZ2lkICJEbyBOT1QgY2FjaGUgZmFpbGVkIHNlYXJjaCByZXN1bHRzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjAKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiVXNlIG5hbWVzZXJ2ZXJzIHN0cmljdGx5IGluIHRoZSBvcmRlciBnaXZlbiBpbiAlcy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjIxCi1tc2dpZCAiU3BlY2lmeSBvcHRpb25zIHRvIGJlIHNlbnQgdG8gREhDUCBjbGllbnRzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjIKLW1zZ2lkICJESENQIG9wdGlvbiBzZW50IGV2ZW4gaWYgdGhlIGNsaWVudCBkb2VzIG5vdCByZXF1ZXN0IGl0LiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjMKLW1zZ2lkICJTcGVjaWZ5IHBvcnQgdG8gbGlzdGVuIGZvciBETlMgcmVxdWVzdHMgb24gKGRlZmF1bHRzIHRvIDUzKS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjI0Ci0jLCBjLWZvcm1hdAotbXNnaWQgIk1heGltdW0gc3VwcG9ydGVkIFVEUCBwYWNrZXQgc2l6ZSBmb3IgRUROUy4wIChkZWZhdWx0cyB0byAlcykuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyNQotbXNnaWQgIkxvZyBxdWVyaWVzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMjYKLW1zZ2lkICJGb3JjZSB0aGUgb3JpZ2luYXRpbmcgcG9ydCBmb3IgdXBzdHJlYW0gcXVlcmllcy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjI3Ci1tc2dpZCAiRG8gTk9UIHJlYWQgcmVzb2x2LmNvbmYuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIyOAotIywgYy1mb3JtYXQKLW1zZ2lkICJTcGVjaWZ5IHBhdGggdG8gcmVzb2x2LmNvbmYgKGRlZmF1bHRzIHRvICVzKS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjI5Ci1tc2dpZCAiU3BlY2lmeSBhZGRyZXNzKGVzKSBvZiB1cHN0cmVhbSBzZXJ2ZXJzIHdpdGggb3B0aW9uYWwgZG9tYWlucy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjMwCi1tc2dpZCAiTmV2ZXIgZm9yd2FyZCBxdWVyaWVzIHRvIHNwZWNpZmllZCBkb21haW5zLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzEKLW1zZ2lkICJTcGVjaWZ5IHRoZSBkb21haW4gdG8gYmUgYXNzaWduZWQgaW4gREhDUCBsZWFzZXMuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIzMgotbXNnaWQgIlNwZWNpZnkgZGVmYXVsdCB0YXJnZXQgaW4gYW4gTVggcmVjb3JkLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyMzMKLW1zZ2lkICJTcGVjaWZ5IHRpbWUtdG8tbGl2ZSBpbiBzZWNvbmRzIGZvciByZXBsaWVzIGZyb20gL2V0Yy9ob3N0cy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM0Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkNoYW5nZSB0byB0aGlzIHVzZXIgYWZ0ZXIgc3RhcnR1cC4gKGRlZmF1bHRzIHRvICVzKS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM1Ci1tc2dpZCAiTWFwIERIQ1AgdmVuZG9yIGNsYXNzIHRvIHRhZy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM2Ci1tc2dpZCAiRGlzcGxheSBkbnNtYXNxIHZlcnNpb24gYW5kIGNvcHlyaWdodCBpbmZvcm1hdGlvbi4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM3Ci1tc2dpZCAiVHJhbnNsYXRlIElQdjQgYWRkcmVzc2VzIGZyb20gdXBzdHJlYW0gc2VydmVycy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjM4Ci1tc2dpZCAiU3BlY2lmeSBhIFNSViByZWNvcmQuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjIzOQotbXNnaWQgIkRpc3BsYXkgdGhpcyBtZXNzYWdlLiBVc2UgLS1oZWxwIGRoY3AgZm9yIGtub3duIERIQ1Agb3B0aW9ucy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQwCi0jLCBjLWZvcm1hdAotbXNnaWQgIlNwZWNpZnkgcGF0aCBvZiBQSUQgZmlsZSAoZGVmYXVsdHMgdG8gJXMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDEKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiU3BlY2lmeSBtYXhpbXVtIG51bWJlciBvZiBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDIKLW1zZ2lkICJBbnN3ZXIgRE5TIHF1ZXJpZXMgYmFzZWQgb24gdGhlIGludGVyZmFjZSBhIHF1ZXJ5IHdhcyBzZW50IHRvLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDMKLW1zZ2lkICJTcGVjaWZ5IFRYVCBETlMgcmVjb3JkLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDQKLW1zZ2lkICJTcGVjaWZ5IFBUUiBETlMgcmVjb3JkLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDUKLW1zZ2lkICJHaXZlIEROUyBuYW1lIHRvIElQdjQgYWRkcmVzcyBvZiBpbnRlcmZhY2UuIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjI0NgotbXNnaWQgIkJpbmQgb25seSB0byBpbnRlcmZhY2VzIGluIHVzZS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQ3Ci0jLCBjLWZvcm1hdAotbXNnaWQgIlJlYWQgREhDUCBzdGF0aWMgaG9zdCBpbmZvcm1hdGlvbiBmcm9tICVzLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNDgKLW1zZ2lkICJFbmFibGUgdGhlIERCdXMgaW50ZXJmYWNlIGZvciBzZXR0aW5nIHVwc3RyZWFtIHNlcnZlcnMsIGV0Yy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjQ5Ci1tc2dpZCAiRG8gbm90IHByb3ZpZGUgREhDUCBvbiB0aGlzIGludGVyZmFjZSwgb25seSBwcm92aWRlIEROUy4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjUwCi1tc2dpZCAiRW5hYmxlIGR5bmFtaWMgYWRkcmVzcyBhbGxvY2F0aW9uIGZvciBib290cC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjUxCi1tc2dpZCAiTWFwIE1BQyBhZGRyZXNzICh3aXRoIHdpbGRjYXJkcykgdG8gb3B0aW9uIHNldC4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjUzCi1tc2dpZCAiVHJlYXQgREhDUCByZXF1ZXN0cyBvbiBhbGlhc2VzIGFzIGFycml2aW5nIGZyb20gaW50ZXJmYWNlLiIKLW1zZ3N0ciAiIgotCi0jOiBvcHRpb24uYzoyNTUKLW1zZ2lkICJEaXNhYmxlIElDTVAgZWNobyBhZGRyZXNzIGNoZWNraW5nIGluIHRoZSBESENQIHNlcnZlci4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjU2Ci1tc2dpZCAiU2NyaXB0IHRvIHJ1biBvbiBESENQIGxlYXNlIGNyZWF0aW9uIGFuZCBkZXN0cnVjdGlvbi4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjU3Ci1tc2dpZCAiUmVhZCBjb25maWd1cmF0aW9uIGZyb20gYWxsIHRoZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4iCi1tc2dzdHIgIiIKLQotIzogb3B0aW9uLmM6MjU4Ci1tc2dpZCAiTG9nIHRvIHRoaXMgc3lzbG9nIGZhY2lsaXR5IG9yIGZpbGUuIChkZWZhdWx0cyB0byBEQUVNT04pIgotbXNnc3RyICIiCi0KICM6IG9wdGlvbi5jOjI1OQotbXNnaWQgIlJlYWQgbGVhc2VzIGF0IHN0YXJ0dXAsIGJ1dCBuZXZlciB3cml0ZSB0aGUgbGVhc2UgZmlsZS4iCittc2dpZCAiUmVhZCBESENQIG9wdGlvbiBzcGVjcyBmcm9tIGZpbGUiCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjYwCiAjLCBjLWZvcm1hdAotbXNnaWQgIk1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgRE5TIHF1ZXJpZXMuIChkZWZhdWx0cyB0byAlcykiCittc2dpZCAiRG8gTk9UIGxvYWQgJXMgZmlsZS4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjYxCiAjLCBjLWZvcm1hdAotbXNnaWQgIkNsZWFyIEROUyBjYWNoZSB3aGVuIHJlbG9hZGluZyAlcy4iCittc2dpZCAiU3BlY2lmeSBhIGhvc3RzIGZpbGUgdG8gYmUgcmVhZCBpbiBhZGRpdGlvbiB0byAlcy4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjYyCi1tc2dpZCAiSWdub3JlIGhvc3RuYW1lcyBwcm92aWRlZCBieSBESENQIGNsaWVudHMuIgorbXNnaWQgIlNwZWNpZnkgaW50ZXJmYWNlKHMpIHRvIGxpc3RlbiBvbi4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjYzCi1tc2dpZCAiRW5hYmxlIGludGVncmF0ZWQgcmVhZC1vbmx5IFRGVFAgc2VydmVyLiIKK21zZ2lkICJTcGVjaWZ5IGludGVyZmFjZShzKSBOT1QgdG8gbGlzdGVuIG9uLiIKIG1zZ3N0ciAiIgogCiAjOiBvcHRpb24uYzoyNjQKLW1zZ2lkICJFeHBvcnQgZmlsZXMgYnkgVEZUUCBvbmx5IGZyb20gdGhlIHNwZWNpZmllZCBzdWJ0cmVlLiIKK21zZ2lkICJNYXAgREhDUCB1c2VyIGNsYXNzIHRvIHRhZy4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjY1Ci1tc2dpZCAiQWRkIGNsaWVudCBJUCBhZGRyZXNzIHRvIHRmdHAtcm9vdC4iCittc2dpZCAiTWFwIFJGQzMwNDYgY2lyY3VpdC1pZCB0byB0YWcuIgogbXNnc3RyICIiCiAKICM6IG9wdGlvbi5jOjI2NgotbXNnaWQgIkFsbG93IGFjY2VzcyBvbmx5IHRvIGZpbGVzIG93bmVkIGJ5IHRoZSB1c2VyIHJ1bm5pbmcgZG5zbWFzcS4iCittc2dpZCAiTWFwIFJGQzMwNDYgcmVtb3RlLWlkIHRvIHRhZy4iCiBtc2dzdHIgIiIKIAogIzogb3B0aW9uLmM6MjY3Cittc2dpZCAiTWFwIFJGQzM5OTMgc3Vic2NyaWJlci1pZCB0byB0YWcuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI2OAorbXNnaWQgIkRvbid0IGRvIERIQ1AgZm9yIGhvc3RzIHdpdGggdGFnIHNldC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjY5Cittc2dpZCAiRm9yY2UgYnJvYWRjYXN0IHJlcGxpZXMgZm9yIGhvc3RzIHdpdGggdGFnIHNldC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjcwCittc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZCwgZG8gTk9UIHJ1biBpbiBkZWJ1ZyBtb2RlLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzEKK21zZ2lkICJBc3N1bWUgd2UgYXJlIHRoZSBvbmx5IERIQ1Agc2VydmVyIG9uIHRoZSBsb2NhbCBuZXR3b3JrLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzIKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3BlY2lmeSB3aGVyZSB0byBzdG9yZSBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzMKK21zZ2lkICJSZXR1cm4gTVggcmVjb3JkcyBmb3IgbG9jYWwgaG9zdHMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3NAorbXNnaWQgIlNwZWNpZnkgYW4gTVggcmVjb3JkLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzUKK21zZ2lkICJTcGVjaWZ5IEJPT1RQIG9wdGlvbnMgdG8gREhDUCBzZXJ2ZXIuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3NgorIywgYy1mb3JtYXQKK21zZ2lkICJEbyBOT1QgcG9sbCAlcyBmaWxlLCByZWxvYWQgb25seSBvbiBTSUdIVVAuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3NworbXNnaWQgIkRvIE5PVCBjYWNoZSBmYWlsZWQgc2VhcmNoIHJlc3VsdHMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI3OAorIywgYy1mb3JtYXQKK21zZ2lkICJVc2UgbmFtZXNlcnZlcnMgc3RyaWN0bHkgaW4gdGhlIG9yZGVyIGdpdmVuIGluICVzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyNzkKK21zZ2lkICJTcGVjaWZ5IG9wdGlvbnMgdG8gYmUgc2VudCB0byBESENQIGNsaWVudHMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4MAorbXNnaWQgIkRIQ1Agb3B0aW9uIHNlbnQgZXZlbiBpZiB0aGUgY2xpZW50IGRvZXMgbm90IHJlcXVlc3QgaXQuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4MQorbXNnaWQgIlNwZWNpZnkgcG9ydCB0byBsaXN0ZW4gZm9yIEROUyByZXF1ZXN0cyBvbiAoZGVmYXVsdHMgdG8gNTMpLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODIKKyMsIGMtZm9ybWF0Cittc2dpZCAiTWF4aW11bSBzdXBwb3J0ZWQgVURQIHBhY2tldCBzaXplIGZvciBFRE5TLjAgKGRlZmF1bHRzIHRvICVzKS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjgzCittc2dpZCAiTG9nIEROUyBxdWVyaWVzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODQKK21zZ2lkICJGb3JjZSB0aGUgb3JpZ2luYXRpbmcgcG9ydCBmb3IgdXBzdHJlYW0gRE5TIHF1ZXJpZXMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4NQorbXNnaWQgIkRvIE5PVCByZWFkIHJlc29sdi5jb25mLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyODYKKyMsIGMtZm9ybWF0Cittc2dpZCAiU3BlY2lmeSBwYXRoIHRvIHJlc29sdi5jb25mIChkZWZhdWx0cyB0byAlcykuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4NworbXNnaWQgIlNwZWNpZnkgYWRkcmVzcyhlcykgb2YgdXBzdHJlYW0gc2VydmVycyB3aXRoIG9wdGlvbmFsIGRvbWFpbnMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI4OAorbXNnaWQgIk5ldmVyIGZvcndhcmQgcXVlcmllcyB0byBzcGVjaWZpZWQgZG9tYWlucy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6Mjg5Cittc2dpZCAiU3BlY2lmeSB0aGUgZG9tYWluIHRvIGJlIGFzc2lnbmVkIGluIERIQ1AgbGVhc2VzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTAKK21zZ2lkICJTcGVjaWZ5IGRlZmF1bHQgdGFyZ2V0IGluIGFuIE1YIHJlY29yZC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjkxCittc2dpZCAiU3BlY2lmeSB0aW1lLXRvLWxpdmUgaW4gc2Vjb25kcyBmb3IgcmVwbGllcyBmcm9tIC9ldGMvaG9zdHMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5MgorbXNnaWQgIlNwZWNpZnkgdGltZS10by1saXZlIGluIHNlY29uZHMgZm9yIG5lZ2F0aXZlIGNhY2hpbmcuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5MworIywgYy1mb3JtYXQKK21zZ2lkICJDaGFuZ2UgdG8gdGhpcyB1c2VyIGFmdGVyIHN0YXJ0dXAuIChkZWZhdWx0cyB0byAlcykuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5NAorbXNnaWQgIk1hcCBESENQIHZlbmRvciBjbGFzcyB0byB0YWcuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5NQorbXNnaWQgIkRpc3BsYXkgZG5zbWFzcSB2ZXJzaW9uIGFuZCBjb3B5cmlnaHQgaW5mb3JtYXRpb24uIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5NgorbXNnaWQgIlRyYW5zbGF0ZSBJUHY0IGFkZHJlc3NlcyBmcm9tIHVwc3RyZWFtIHNlcnZlcnMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5NworbXNnaWQgIlNwZWNpZnkgYSBTUlYgcmVjb3JkLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoyOTgKK21zZ2lkICJEaXNwbGF5IHRoaXMgbWVzc2FnZS4gVXNlIC0taGVscCBkaGNwIGZvciBrbm93biBESENQIG9wdGlvbnMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjI5OQorIywgYy1mb3JtYXQKK21zZ2lkICJTcGVjaWZ5IHBhdGggb2YgUElEIGZpbGUgKGRlZmF1bHRzIHRvICVzKS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzAwCisjLCBjLWZvcm1hdAorbXNnaWQgIlNwZWNpZnkgbWF4aW11bSBudW1iZXIgb2YgREhDUCBsZWFzZXMgKGRlZmF1bHRzIHRvICVzKS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzAxCittc2dpZCAiQW5zd2VyIEROUyBxdWVyaWVzIGJhc2VkIG9uIHRoZSBpbnRlcmZhY2UgYSBxdWVyeSB3YXMgc2VudCB0by4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzAyCittc2dpZCAiU3BlY2lmeSBUWFQgRE5TIHJlY29yZC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzAzCittc2dpZCAiU3BlY2lmeSBQVFIgRE5TIHJlY29yZC4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzA0Cittc2dpZCAiR2l2ZSBETlMgbmFtZSB0byBJUHY0IGFkZHJlc3Mgb2YgaW50ZXJmYWNlLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMDUKK21zZ2lkICJCaW5kIG9ubHkgdG8gaW50ZXJmYWNlcyBpbiB1c2UuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMwNgorIywgYy1mb3JtYXQKK21zZ2lkICJSZWFkIERIQ1Agc3RhdGljIGhvc3QgaW5mb3JtYXRpb24gZnJvbSAlcy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzA3Cittc2dpZCAiRW5hYmxlIHRoZSBEQnVzIGludGVyZmFjZSBmb3Igc2V0dGluZyB1cHN0cmVhbSBzZXJ2ZXJzLCBldGMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMwOAorbXNnaWQgIkRvIG5vdCBwcm92aWRlIERIQ1Agb24gdGhpcyBpbnRlcmZhY2UsIG9ubHkgcHJvdmlkZSBETlMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMwOQorbXNnaWQgIkVuYWJsZSBkeW5hbWljIGFkZHJlc3MgYWxsb2NhdGlvbiBmb3IgYm9vdHAuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxMAorbXNnaWQgIk1hcCBNQUMgYWRkcmVzcyAod2l0aCB3aWxkY2FyZHMpIHRvIG9wdGlvbiBzZXQuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxMgorbXNnaWQgIlRyZWF0IERIQ1AgcmVxdWVzdHMgb24gYWxpYXNlcyBhcyBhcnJpdmluZyBmcm9tIGludGVyZmFjZS4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzE0Cittc2dpZCAiRGlzYWJsZSBJQ01QIGVjaG8gYWRkcmVzcyBjaGVja2luZyBpbiB0aGUgREhDUCBzZXJ2ZXIuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxNQorbXNnaWQgIlNjcmlwdCB0byBydW4gb24gREhDUCBsZWFzZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24uIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxNgorbXNnaWQgIlJlYWQgY29uZmlndXJhdGlvbiBmcm9tIGFsbCB0aGUgZmlsZXMgaW4gdGhpcyBkaXJlY3RvcnkuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxNworbXNnaWQgIkxvZyB0byB0aGlzIHN5c2xvZyBmYWNpbGl0eSBvciBmaWxlLiAoZGVmYXVsdHMgdG8gREFFTU9OKSIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMTgKK21zZ2lkICJSZWFkIGxlYXNlcyBhdCBzdGFydHVwLCBidXQgbmV2ZXIgd3JpdGUgdGhlIGxlYXNlIGZpbGUuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMxOQorIywgYy1mb3JtYXQKK21zZ2lkICJNYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IEROUyBxdWVyaWVzLiAoZGVmYXVsdHMgdG8gJXMpIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyMAorIywgYy1mb3JtYXQKK21zZ2lkICJDbGVhciBETlMgY2FjaGUgd2hlbiByZWxvYWRpbmcgJXMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyMQorbXNnaWQgIklnbm9yZSBob3N0bmFtZXMgcHJvdmlkZWQgYnkgREhDUCBjbGllbnRzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjIKK21zZ2lkICJEbyBOT1QgcmV1c2UgZmlsZW5hbWUgYW5kIHNlcnZlciBmaWVsZHMgZm9yIGV4dHJhIERIQ1Agb3B0aW9ucy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzIzCittc2dpZCAiRW5hYmxlIGludGVncmF0ZWQgcmVhZC1vbmx5IFRGVFAgc2VydmVyLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjQKK21zZ2lkICJFeHBvcnQgZmlsZXMgYnkgVEZUUCBvbmx5IGZyb20gdGhlIHNwZWNpZmllZCBzdWJ0cmVlLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjUKK21zZ2lkICJBZGQgY2xpZW50IElQIGFkZHJlc3MgdG8gdGZ0cC1yb290LiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMjYKK21zZ2lkICJBbGxvdyBhY2Nlc3Mgb25seSB0byBmaWxlcyBvd25lZCBieSB0aGUgdXNlciBydW5uaW5nIGRuc21hc3EuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMyNwogIywgYy1mb3JtYXQKIG1zZ2lkICJNYXhpbXVtIG51bWJlciBvZiBjb25uY3VycmVudCBURlRQIHRyYW5zZmVycyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjgKKyM6IG9wdGlvbi5jOjMyOAogbXNnaWQgIkRpc2FibGUgdGhlIFRGVFAgYmxvY2tzaXplIGV4dGVuc2lvbi4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY5CisjOiBvcHRpb24uYzozMjkKK21zZ2lkICJFcGhlbWVyYWwgcG9ydCByYW5nZSBmb3IgdXNlIGJ5IFRGVFAgdHJhbnNmZXJzLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzAKIG1zZ2lkICJFeHRyYSBsb2dnaW5nIGZvciBESENQLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNzAKKyM6IG9wdGlvbi5jOjMzMQogbXNnaWQgIkVuYWJsZSBhc3luYy4gbG9nZ2luZzsgb3B0aW9uYWxseSBzZXQgcXVldWUgbGVuZ3RoLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo1MDEKKyM6IG9wdGlvbi5jOjMzMgorbXNnaWQgIlN0b3AgRE5TIHJlYmluZGluZy4gRmlsdGVyIHByaXZhdGUgSVAgcmFuZ2VzIHdoZW4gcmVzb2x2aW5nLiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzozMzMKK21zZ2lkICJBbHdheXMgcGVyZm9ybSBETlMgcXVlcmllcyB0byBhbGwgc2VydmVycy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzM0Cittc2dpZCAiU2V0IHRhZyBpZiBjbGllbnQgaW5jbHVkZXMgb3B0aW9uIGluIHJlcXVlc3QuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjU4NQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiVXNhZ2U6IGRuc21hc3EgW29wdGlvbnNdXG4iCiAiXG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6NTAzCisjOiBvcHRpb24uYzo1ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlIHNob3J0IG9wdGlvbnMgb25seSBvbiB0aGUgY29tbWFuZCBsaW5lLlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjUwNQorIzogb3B0aW9uLmM6NTg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlZhbGlkIG9wdGlvbnMgYXJlIDpcbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo1MjYKKyM6IG9wdGlvbi5jOjYxMAogIywgYy1mb3JtYXQKIG1zZ2lkICJLbm93biBESENQIG9wdGlvbnM6XG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6NTk5CisjOiBvcHRpb24uYzo2ODMKIG1zZ2lkICJiYWQgZGhjcC1vcHRpb24iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6NjU1CisjOiBvcHRpb24uYzo3MzkKIG1zZ2lkICJiYWQgSVAgYWRkcmVzcyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo3NTMKKyM6IG9wdGlvbi5jOjgzNwogbXNnaWQgImJhZCBkb21haW4gaW4gZGhjcC1vcHRpb24iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6ODA5CisjOiBvcHRpb24uYzo4OTUKIG1zZ2lkICJkaGNwLW9wdGlvbiB0b28gbG9uZyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo4NTMKKyM6IG9wdGlvbi5jOjk0MgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgYWNjZXNzIGRpcmVjdG9yeSAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6ODcyIHRmdHAuYzozMTMKKyM6IG9wdGlvbi5jOjk2MSB0ZnRwLmM6MzQzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBhY2Nlc3MgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjkxMworIzogb3B0aW9uLmM6OTk4CiBtc2dpZCAib25seSBvbmUgZGhjcC1ob3N0c2ZpbGUgYWxsb3dlZCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzo5NjIKKyM6IG9wdGlvbi5jOjEwMDUKK21zZ2lkICJvbmx5IG9uZSBkaGNwLW9wdHNmaWxlIGFsbG93ZWQiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MTA0OQogbXNnaWQgImJhZCBNWCBwcmVmZXJlbmNlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjk3MQorIzogb3B0aW9uLmM6MTA1MwogbXNnaWQgImJhZCBNWCBuYW1lIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjk4OQorIzogb3B0aW9uLmM6MTA2NwogbXNnaWQgImJhZCBNWCB0YXJnZXQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTAwMQorIzogb3B0aW9uLmM6MTA3OAogbXNnaWQgImNhbm5vdCBydW4gc2NyaXB0cyB1bmRlciB1Q2xpbnV4IgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjExOTYgb3B0aW9uLmM6MTIwNworIzogb3B0aW9uLmM6MTI2NSBvcHRpb24uYzoxMjczCiBtc2dpZCAiYmFkIHBvcnQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTM0OQorIzogb3B0aW9uLmM6MTI5MyBvcHRpb24uYzoxMzE4Cittc2dpZCAiaW50ZXJmYWNlIGJpbmRpbmcgbm90IHN1cHBvcnRlZCIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzoxNDI3Cittc2dpZCAiYmFkIHBvcnQgcmFuZ2UiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MTQ0NAogbXNnaWQgImJhZCBicmlkZ2UtaW50ZXJmYWNlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjEzOTEKKyM6IG9wdGlvbi5jOjE0ODUKIG1zZ2lkICJiYWQgZGhjcC1yYW5nZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxNDE5CisjOiBvcHRpb24uYzoxNTExCiBtc2dpZCAib25seSBvbmUgbmV0aWQgdGFnIGFsbG93ZWQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTQ2MQorIzogb3B0aW9uLmM6MTU1MQogbXNnaWQgImluY29uc2lzdGVudCBESENQIHJhbmdlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE2MzcKKyM6IG9wdGlvbi5jOjE3MTkKIG1zZ2lkICJiYWQgREhDUCBob3N0IG5hbWUiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTg2MQorIzogb3B0aW9uLmM6MTk1OQogbXNnaWQgImJhZCBpbnRlcmZhY2UgbmFtZSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxODg1CisjOiBvcHRpb24uYzoxOTc5CiBtc2dpZCAiYmFkIFBUUiByZWNvcmQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTkwOQotbXNnaWQgImJhZCBUWFQgcmVjb3JkIgotbXNnc3RyICIiCi0KLSM6IG9wdGlvbi5jOjE5NDEKKyM6IG9wdGlvbi5jOjE5OTkKIG1zZ2lkICJUWFQgcmVjb3JkIHN0cmluZyB0b28gbG9uZyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxOTgwCisjOiBvcHRpb24uYzoyMDAzCittc2dpZCAiYmFkIFRYVCByZWNvcmQiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjA2MwogbXNnaWQgImJhZCBTUlYgcmVjb3JkIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjE5OTIKKyM6IG9wdGlvbi5jOjIwNzIKIG1zZ2lkICJiYWQgU1JWIHRhcmdldCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDAzCisjOiBvcHRpb24uYzoyMDgwCiBtc2dpZCAiaW52YWxpZCBwb3J0IG51bWJlciIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDEzCisjOiBvcHRpb24uYzoyMDg3CiBtc2dpZCAiaW52YWxpZCBwcmlvcml0eSIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDIzCisjOiBvcHRpb24uYzoyMDk0CiBtc2dpZCAiaW52YWxpZCB3ZWlnaHQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjA1NAorIzogb3B0aW9uLmM6MjEzMAogIywgYy1mb3JtYXQKIG1zZ2lkICJmaWxlcyBuZXN0ZWQgdG9vIGRlZXAgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjA2MiB0ZnRwLmM6NDY3CisjOiBvcHRpb24uYzoyMTM4IHRmdHAuYzo0OTcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHJlYWQgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxMTQKKyM6IG9wdGlvbi5jOjIxOTkKIG1zZ2lkICJtaXNzaW5nIFwiIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxNjEKKyM6IG9wdGlvbi5jOjIyNDYKIG1zZ2lkICJiYWQgb3B0aW9uIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxNjMKKyM6IG9wdGlvbi5jOjIyNDgKIG1zZ2lkICJleHRyYW5lb3VzIHBhcmFtZXRlciIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMTY1CisjOiBvcHRpb24uYzoyMjUwCiBtc2dpZCAibWlzc2luZyBwYXJhbWV0ZXIiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjE3MworIzogb3B0aW9uLmM6MjI1OAogbXNnaWQgImVycm9yIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIxNzkKKyM6IG9wdGlvbi5jOjIyNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgYXQgbGluZSAlZCBvZiAlJXMiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI1MgorIzogb3B0aW9uLmM6MjMwNCBvcHRpb24uYzoyMzM0CisjLCBjLWZvcm1hdAorbXNnaWQgInJlYWQgJXMiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjQwMAogIywgYy1mb3JtYXQKIG1zZ2lkICJEbnNtYXNxIHZlcnNpb24gJXMgICVzXG4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI1MworIzogb3B0aW9uLmM6MjQwMQogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAiQ29tcGlsZSB0aW1lIG9wdGlvbnMgJXNcbiIKICJcbiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjU0CisjOiBvcHRpb24uYzoyNDAyCiAjLCBjLWZvcm1hdAogbXNnaWQgIlRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNTUKKyM6IG9wdGlvbi5jOjI0MDMKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG5zbWFzcSBpcyBmcmVlIHNvZnR3YXJlLCBhbmQgeW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdFxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNTYKKyM6IG9wdGlvbi5jOjI0MDQKICMsIGMtZm9ybWF0Ci1tc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLlxuIgorbXNnaWQgInVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMiBvciAzLlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNjcKKyM6IG9wdGlvbi5jOjI0MTUKIG1zZ2lkICJ0cnkgLS1oZWxwIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNjkKKyM6IG9wdGlvbi5jOjI0MTcKIG1zZ2lkICJ0cnkgLXciCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjI3MgorIzogb3B0aW9uLmM6MjQyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgY29tbWFuZCBsaW5lIG9wdGlvbnM6ICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIzMTMKKyM6IG9wdGlvbi5jOjI0NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGdldCBob3N0LW5hbWU6ICVzIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIzNDEKKyM6IG9wdGlvbi5jOjI0ODkKIG1zZ2lkICJvbmx5IG9uZSByZXNvbHYuY29uZiBmaWxlIGFsbG93ZWQgaW4gbm8tcG9sbCBtb2RlLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMzUxCisjOiBvcHRpb24uYzoyNDk5CiBtc2dpZCAibXVzdCBoYXZlIGV4YWN0bHkgb25lIHJlc29sdi5jb25mIHRvIHJlYWQgZG9tYWluIGZyb20uIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIzNTQgbmV0d29yay5jOjU0OQorIzogb3B0aW9uLmM6MjUwMiBuZXR3b3JrLmM6NjQwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byByZWFkICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMzcyCisjOiBvcHRpb24uYzoyNTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHNlYXJjaCBkaXJlY3RpdmUgZm91bmQgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogZm9yd2FyZC5jOjM3NgorIzogZm9yd2FyZC5jOjM4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJuYW1lc2VydmVyICVzIHJlZnVzZWQgdG8gZG8gYSByZWN1cnNpdmUgcXVlcnkiCiBtc2dzdHIgIiIKIAotIzogaXNjLmM6NzMgZG5zbWFzcS5jOjcyMworIzogZm9yd2FyZC5jOjQwOQorbXNnaWQgInBvc3NpYmxlIEROUy1yZWJpbmQgYXR0YWNrIGRldGVjdGVkIgorbXNnc3RyICIiCisKKyM6IGlzYy5jOjc3IGRuc21hc3EuYzo3NDcKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGFjY2VzcyAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogaXNjLmM6ODkKKyM6IGlzYy5jOjkzCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsb2FkICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBpc2MuYzo5MyBkbnNtYXNxLmM6NzQ1CisjOiBpc2MuYzo5NyBkbnNtYXNxLmM6NzY5CiAjLCBjLWZvcm1hdAogbXNnaWQgInJlYWRpbmcgJXMiCiBtc2dzdHIgIiIKIAotIzogaXNjLmM6MTE1CisjOiBpc2MuYzoxMTkKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIG5hbWUgaW4gJXMiCiBtc2dzdHIgIiIKIAotIzogaXNjLmM6MTc3CisjOiBpc2MuYzoxODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiSWdub3JpbmcgREhDUCBsZWFzZSBmb3IgJXMgYmVjYXVzZSBpdCBoYXMgYW4gaWxsZWdhbCBkb21haW4gcGFydCIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NDEKKyM6IG5ldHdvcmsuYzo0NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duIGludGVyZmFjZSAlcyBpbiBicmlkZ2UtaW50ZXJmYWNlIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzozNzcgZG5zbWFzcS5jOjE3MAorIzogbmV0d29yay5jOjM4OSBkbnNtYXNxLmM6MTgwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgbGlzdGVuaW5nIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjM4NAorIzogbmV0d29yay5jOjM5NgogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc2V0IElQVjYgb3B0aW9ucyBvbiBsaXN0ZW5pbmcgc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NDAyCisjOiBuZXR3b3JrLmM6NDE1CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBiaW5kIGxpc3RlbmluZyBzb2NrZXQgZm9yICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NDEwCisjOiBuZXR3b3JrLmM6NDIwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsaXN0ZW4gb24gc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NDIxCisjOiBuZXR3b3JrLmM6NDMyCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgVEZUUCBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo0OTMKKyM6IG5ldHdvcmsuYzo1NDkKKyMsIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGJpbmQgc2VydmVyIHNvY2tldCBmb3IgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IG5ldHdvcmsuYzo1ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiaWdub3JpbmcgbmFtZXNlcnZlciAlcyAtIGxvY2FsIGludGVyZmFjZSIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTAyCisjOiBuZXR3b3JrLmM6NTkxCiAjLCBjLWZvcm1hdAogbXNnaWQgImlnbm9yaW5nIG5hbWVzZXJ2ZXIgJXMgLSBjYW5ub3QgbWFrZS9iaW5kIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUxNworIzogbmV0d29yay5jOjYwNgogbXNnaWQgInVucXVhbGlmaWVkIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MTcKKyM6IG5ldHdvcmsuYzo2MDYKIG1zZ2lkICJuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTE5CisjOiBuZXR3b3JrLmM6NjA4CiBtc2dpZCAiZGVmYXVsdCIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTIxCisjOiBuZXR3b3JrLmM6NjEwCiBtc2dpZCAiZG9tYWluIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MjQKKyM6IG5ldHdvcmsuYzo2MTMKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNpbmcgbG9jYWwgYWRkcmVzc2VzIG9ubHkgZm9yICVzICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldHdvcmsuYzo1MjYKKyM6IG5ldHdvcmsuYzo2MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNpbmcgbmFtZXNlcnZlciAlcyMlZCBmb3IgJXMgJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0d29yay5jOjUyOQorIzogbmV0d29yay5jOjYxOAorIywgYy1mb3JtYXQKK21zZ2lkICJ1c2luZyBuYW1lc2VydmVyICVzIyVkKHZpYSAlcykiCittc2dzdHIgIiIKKworIzogbmV0d29yay5jOjYyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2luZyBuYW1lc2VydmVyICVzIyVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoxMDYKKyM6IGRuc21hc3EuYzoxMTAKIG1zZ2lkICIiCiAiSVNDIGRoY3BkIGludGVncmF0aW9uIG5vdCBhdmFpbGFibGU6IHNldCBIQVZFX0lTQ19SRUFERVIgaW4gc3JjL2NvbmZpZy5oIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoxMjgKKyM6IGRuc21hc3EuYzoxMzIKIG1zZ2lkICJURlRQIHNlcnZlciBub3QgYXZhaWxhYmxlOiBzZXQgSEFWRV9URlRQIGluIHNyYy9jb25maWcuaCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTQyCisjOiBkbnNtYXNxLmM6MTM3Cittc2dpZCAiYXN5Y2hyb25vdXMgbG9nZ2luZyBpcyBub3QgYXZhaWxhYmxlIHVuZGVyIFNvbGFyaXMiCittc2dzdHIgIiIKKworIzogZG5zbWFzcS5jOjE1MQogbXNnaWQgIm11c3Qgc2V0IGV4YWN0bHkgb25lIGludGVyZmFjZSBvbiBicm9rZW4gc3lzdGVtcyB3aXRob3V0IElQX1JFQ1ZJRiIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTUyCisjOiBkbnNtYXNxLmM6MTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBmaW5kIGxpc3Qgb2YgaW50ZXJmYWNlczogJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjE2MAorIzogZG5zbWFzcS5jOjE2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duIGludGVyZmFjZSAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MTY2CisjOiBkbnNtYXNxLmM6MTc1CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGludGVyZmFjZSB3aXRoIGFkZHJlc3MgJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjE4MSBkbnNtYXNxLmM6NTM4CisjOiBkbnNtYXNxLmM6MTkyIGRuc21hc3EuYzo1NjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiREJ1cyBlcnJvcjogJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjE4NAorIzogZG5zbWFzcS5jOjE5NQogbXNnaWQgIkRCdXMgbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfREJVUyBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjIxNgorIzogZG5zbWFzcS5jOjIwNAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIHBpcGU6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzoyMzcKKyM6IGRuc21hc3EuYzoyMjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGZvcmsgaW50byBiYWNrZ3JvdW5kOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzM1CisjOiBkbnNtYXNxLmM6MjM5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBjaGRpciB0byBmaWxlc3lzdGVtIHJvb3Q6ICVzIgorbXNnc3RyICIiCisKKyM6IGRuc21hc3EuYzozNDkKKyMsIGMtZm9ybWF0Cittc2dpZCAic3RhcnRlZCwgdmVyc2lvbiAlcyBETlMgZGlzYWJsZWQiCittc2dzdHIgIiIKKworIzogZG5zbWFzcS5jOjM1MQogIywgYy1mb3JtYXQKIG1zZ2lkICJzdGFydGVkLCB2ZXJzaW9uICVzIGNhY2hlc2l6ZSAlZCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzM3CisjOiBkbnNtYXNxLmM6MzUzCiAjLCBjLWZvcm1hdAogbXNnaWQgInN0YXJ0ZWQsIHZlcnNpb24gJXMgY2FjaGUgZGlzYWJsZWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjMzOQorIzogZG5zbWFzcS5jOjM1NQogIywgYy1mb3JtYXQKIG1zZ2lkICJjb21waWxlIHRpbWUgb3B0aW9uczogJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM0NQorIzogZG5zbWFzcS5jOjM2MQogbXNnaWQgIkRCdXMgc3VwcG9ydCBlbmFibGVkOiBjb25uZWN0ZWQgdG8gc3lzdGVtIGJ1cyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzQ3CisjOiBkbnNtYXNxLmM6MzYzCiBtc2dpZCAiREJ1cyBzdXBwb3J0IGVuYWJsZWQ6IGJ1cyBjb25uZWN0aW9uIHBlbmRpbmciCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM1MgorIzogZG5zbWFzcS5jOjM2OAogbXNnaWQgInNldHRpbmcgLS1iaW5kLWludGVyZmFjZXMgb3B0aW9uIGJlY2F1c2Ugb2YgT1MgbGltaXRhdGlvbnMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM1NworIzogZG5zbWFzcS5jOjM3MwogIywgYy1mb3JtYXQKIG1zZ2lkICJ3YXJuaW5nOiBpbnRlcmZhY2UgJXMgZG9lcyBub3QgY3VycmVudGx5IGV4aXN0IgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozNjIKKyM6IGRuc21hc3EuYzozNzgKIG1zZ2lkICJ3YXJuaW5nOiBpZ25vcmluZyByZXNvbHYtZmlsZSBmbGFnIGJlY2F1c2Ugbm8tcmVzb2x2IGlzIHNldCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzY1CisjOiBkbnNtYXNxLmM6MzgxCiBtc2dpZCAid2FybmluZzogbm8gdXBzdHJlYW0gc2VydmVycyBjb25maWd1cmVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozNjkKKyM6IGRuc21hc3EuYzozODUKICMsIGMtZm9ybWF0CiBtc2dpZCAiYXN5bmNocm9ub3VzIGxvZ2dpbmcgZW5hYmxlZCwgcXVldWUgbGltaXQgaXMgJWQgbWVzc2FnZXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM4MQorIzogZG5zbWFzcS5jOjM5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQLCBzdGF0aWMgbGVhc2VzIG9ubHkgb24gJS4wcyVzLCBsZWFzZSB0aW1lICVzIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozODIKKyM6IGRuc21hc3EuYzozOTgKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCwgSVAgcmFuZ2UgJXMgLS0gJXMsIGxlYXNlIHRpbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM5NgorIzogZG5zbWFzcS5jOjQxMgogbXNnaWQgInJvb3QgaXMgIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozOTYKKyM6IGRuc21hc3EuYzo0MTIKIG1zZ2lkICJlbmFibGVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozOTgKKyM6IGRuc21hc3EuYzo0MTQKIG1zZ2lkICJzZWN1cmUgbW9kZSIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NDE4CisjOiBkbnNtYXNxLmM6NDQwCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlc3RyaWN0aW5nIG1heGltdW0gc2ltdWx0YW5lb3VzIFRGVFAgdHJhbnNmZXJzIHRvICVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo0MjcKKyM6IGRuc21hc3EuYzo0NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAid2FybmluZzogc2V0dGluZyBjYXBhYmlsaXRpZXMgZmFpbGVkOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NDI5CisjOiBkbnNtYXNxLmM6NDUxCiBtc2dpZCAicnVubmluZyBhcyByb290IgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo1NDAKKyM6IGRuc21hc3EuYzo1NjMKIG1zZ2lkICJjb25uZWN0ZWQgdG8gc3lzdGVtIERCdXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjY1OQorIzogZG5zbWFzcS5jOjY4MwogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGlsZCBwcm9jZXNzIGtpbGxlZCBieSBzaWduYWwgJWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjY2MworIzogZG5zbWFzcS5jOjY4NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjaGlsZCBwcm9jZXNzIGV4aXRlZCB3aXRoIHN0YXR1cyAlZCIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NjY3CisjOiBkbnNtYXNxLmM6NjkxCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBleGVjdXRlICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NjcxCisjOiBkbnNtYXNxLmM6Njk1CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgaGVscGVyOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NzA1CisjOiBkbnNtYXNxLmM6NzI5CiBtc2dpZCAiZXhpdGluZyBvbiByZWNlaXB0IG9mIFNJR1RFUk0iCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjc1NgorIzogZG5zbWFzcS5jOjc4MAogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBzZXJ2ZXJzIGZvdW5kIGluICVzLCB3aWxsIHJldHJ5IgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzozMgorIzogZGhjcC5jOjM4CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgREhDUCBzb2NrZXQgOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6NDEKKyM6IGRoY3AuYzo1MAogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc2V0IG9wdGlvbnMgb24gREhDUCBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo1OQorIzogZGhjcC5jOjY4CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBzZXQgU09fUkVVU0V7QUREUnxQT1JUfSBvbiBESENQIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjcyCisjOiBkaGNwLmM6ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGJpbmQgREhDUCBzZXJ2ZXIgc29ja2V0OiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6ODUKKyM6IGRoY3AuYzo5NAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIElDTVAgcmF3IHNvY2tldDogJXMuIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzoxMDAKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKLW1zZ3N0ciAiIgotCi0jOiBkaGNwLmM6MTAzCi0jLCBjLWZvcm1hdAotbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCi1tc2dzdHIgIiIKLQotIzogZGhjcC5jOjIyMQorIzogZGhjcC5jOjIyMwogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQIHBhY2tldCByZWNlaXZlZCBvbiAlcyB3aGljaCBoYXMgbm8gYWRkcmVzcyIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6MzUyCisjOiBkaGNwLmM6MzgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcmFuZ2UgJXMgLS0gJXMgaXMgbm90IGNvbnNpc3RlbnQgd2l0aCBuZXRtYXNrICVzIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo2NjkKKyM6IGRoY3AuYzo3MDkKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHJlYWQgJXM6JXMiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjcwNAorIzogZGhjcC5jOjc0NAogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgbGluZSBhdCAlcyBsaW5lICVkIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4MjYKKyM6IGRoY3AuYzo4NDcKKyMsIGMtZm9ybWF0Cittc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKK21zZ3N0ciAiIgorCisjOiBkaGNwLmM6ODUwCiAjLCBjLWZvcm1hdAogbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzIGluICVzLiIKIG1zZ3N0ciAiIgogCi0jOiBkaGNwLmM6ODMyCisjOiBkaGNwLmM6ODU4CisjLCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCittc2dzdHIgIiIKKworIzogZGhjcC5jOjg2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbGxlZ2FsIGRvbWFpbiAlcyBpbiAlcy4iCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjgzOQorIzogZGhjcC5jOjg5OQogIywgYy1mb3JtYXQKLW1zZ2lkICJyZWFkICVzIC0gJWQgaG9zdHMiCittc2dpZCAiJXMgaGFzIG1vcmUgdGhlbiBvbmUgYWRkcmVzcyBpbiBob3N0c2ZpbGUsIHVzaW5nICVzIGZvciBESENQIgogbXNnc3RyICIiCiAKLSM6IGRoY3AuYzo4NjYKKyM6IGRoY3AuYzo5MDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgKCVzKSBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzo1NAorIzogbGVhc2UuYzo1OAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgb3BlbiBvciBjcmVhdGUgbGVhc2UgZmlsZSAlczogJXMiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzo4MAorIzogbGVhc2UuYzo4NAogbXNnaWQgInRvbyBtYW55IHN0b3JlZCBsZWFzZXMiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzoxMjEKKyM6IGxlYXNlLmM6MTI1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBydW4gbGVhc2UtaW5pdCBzY3JpcHQgJXM6ICVzIgogbXNnc3RyICIiCiAKLSM6IGxlYXNlLmM6MTI3CisjOiBsZWFzZS5jOjEzMQogIywgYy1mb3JtYXQKIG1zZ2lkICJsZWFzZS1pbml0IHNjcmlwdCByZXR1cm5lZCBleGl0IGNvZGUgJXMiCiBtc2dzdHIgIiIKIAotIzogbGVhc2UuYzoyMzQKKyM6IGxlYXNlLmM6MjM4CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byB3cml0ZSAlczogJXMgKHJldHJ5IGluICV1cykiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjMwMAorIzogcmZjMjEzMS5jOjMwMwogIywgYy1mb3JtYXQKIG1zZ2lkICJubyBhZGRyZXNzIHJhbmdlIGF2YWlsYWJsZSBmb3IgREhDUCByZXF1ZXN0ICVzICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMDEKKyM6IHJmYzIxMzEuYzozMDQKIG1zZ2lkICJ3aXRoIHN1Ym5ldCBzZWxlY3RvciIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzAxCisjOiByZmMyMTMxLmM6MzA0CiBtc2dpZCAidmlhIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMTIKKyM6IHJmYzIxMzEuYzozMTUKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCBwYWNrZXQ6IHRyYW5zYWN0aW9uLWlkIGlzICV1IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozMTcKKyM6IHJmYzIxMzEuYzozMjAKICMsIGMtZm9ybWF0CiBtc2dpZCAiQXZhaWxhYmxlIERIQ1Agc3VibmV0OiAlcy8lcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzE5CisjOiByZmMyMTMxLmM6MzIyCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBESENQIHJhbmdlOiAlcyAtLSAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzQ3IHJmYzIxMzEuYzozNzgKKyM6IHJmYzIxMzEuYzozNTAgcmZjMjEzMS5jOjM4MQogbXNnaWQgImRpc2FibGVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzozOTAgcmZjMjEzMS5jOjg1MgorIzogcmZjMjEzMS5jOjM5MyByZmMyMTMxLmM6ODczCiBtc2dpZCAiYWRkcmVzcyBpbiB1c2UiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjM5MworIzogcmZjMjEzMS5jOjM5NgogbXNnaWQgIm5vIGFkZHJlc3MgY29uZmlndXJlZCIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NDA2IHJmYzIxMzEuYzo3MjAKKyM6IHJmYzIxMzEuYzo0MDkgcmZjMjEzMS5jOjczNgogbXNnaWQgIm5vIGFkZHJlc3MgYXZhaWxhYmxlIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo0MTYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiTGltaXQgb2YgJWQgbGVhc2VzIGV4Y2VlZGVkLiIKLW1zZ3N0ciAiIgotCi0jOiByZmMyMTMxLmM6NDE3IHJmYzIxMzEuYzo4NjIKKyM6IHJmYzIxMzEuYzo0MTggcmZjMjEzMS5jOjg4MwogbXNnaWQgIm5vIGxlYXNlcyBsZWZ0IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo0MjEgcmZjMjEzMS5jOjgyNgorIzogcmZjMjEzMS5jOjQyMSByZmMyMTMxLmM6ODQ3CiBtc2dpZCAid3JvbmcgbmV0d29yayIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NTE5CisjOiByZmMyMTMxLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIklnbm9yaW5nIGRvbWFpbiAlcyBmb3IgREhDUCBob3N0IG5hbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjU5OAorIzogcmZjMjEzMS5jOjYxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJWZW5kb3IgY2xhc3M6ICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo2MDAKKyM6IHJmYzIxMzEuYzo2MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlciBjbGFzczogJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY0MQorIzogcmZjMjEzMS5jOjY1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJkaXNhYmxpbmcgREhDUCBzdGF0aWMgYWRkcmVzcyAlcyBmb3IgJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY2MgorIzogcmZjMjEzMS5jOjY3OAogbXNnaWQgInVua25vd24gbGVhc2UiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY3MSByZmMyMTMxLmM6OTcwCisjOiByZmMyMTMxLmM6Njg3IHJmYzIxMzEuYzo5OTIKIG1zZ2lkICJpZ25vcmVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo2OTEKKyM6IHJmYzIxMzEuYzo3MDcKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IGlzIGxlYXNlZCB0byAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6NzAxCisjOiByZmMyMTMxLmM6NzE3CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3QgdXNpbmcgY29uZmlndXJlZCBhZGRyZXNzICVzIGJlY2F1c2UgaXQgaXMgaW4gdXNlIGJ5IHRoZSBzZXJ2ZXIgb3IgcmVsYXkiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjcwNAorIzogcmZjMjEzMS5jOjcyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJub3QgdXNpbmcgY29uZmlndXJlZCBhZGRyZXNzICVzIGJlY2F1c2UgaXQgd2FzIHByZXZpb3VzbHkgZGVjbGluZWQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjcxOCByZmMyMTMxLmM6ODU1CisjOiByZmMyMTMxLmM6NzM0IHJmYzIxMzEuYzo4NzYKIG1zZ2lkICJubyB1bmlxdWUtaWQiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjc4OQorIzogcmZjMjEzMS5jOjgwNgogbXNnaWQgIndyb25nIGFkZHJlc3MiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjgwMgorIzogcmZjMjEzMS5jOjgyMwogbXNnaWQgImxlYXNlIG5vdCBmb3VuZCIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6ODM0CisjOiByZmMyMTMxLmM6ODU1CiBtc2dpZCAiYWRkcmVzcyBub3QgYXZhaWxhYmxlIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo4NDUKKyM6IHJmYzIxMzEuYzo4NjYKIG1zZ2lkICJzdGF0aWMgbGVhc2UgYXZhaWxhYmxlIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo4NDkKKyM6IHJmYzIxMzEuYzo4NzAKIG1zZ2lkICJhZGRyZXNzIHJlc2VydmVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzoxMjUyCisjOiByZmMyMTMxLmM6MTI2NQogIywgYy1mb3JtYXQKIG1zZ2lkICJ0YWdzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MTMzNAorIzogcmZjMjEzMS5jOjEzNTIKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IHNlbmQgREhDUC9CT09UUCBvcHRpb24gJWQ6IG5vIHNwYWNlIGxlZnQgaW4gcGFja2V0IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzoxNDg4CisjOiByZmMyMTMxLmM6MTUwNwogIywgYy1mb3JtYXQKIG1zZ2lkICJyZXF1ZXN0ZWQgb3B0aW9uczogJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjE1MTkKLSMsIGMtZm9ybWF0Ci1tc2dpZCAic2VydmVyIG5hbWU6ICVzIgotbXNnc3RyICIiCi0KLSM6IHJmYzIxMzEuYzoxNTMxCi0jLCBjLWZvcm1hdAotbXNnaWQgImJvb3RmaWxlIG5hbWU6ICVzIgotbXNnc3RyICIiCi0KLSM6IHJmYzIxMzEuYzoxNTQwCisjOiByZmMyMTMxLmM6MTU1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJuZXh0IHNlcnZlcjogJXMiCiBtc2dzdHIgIiIKIAotIzogbmV0bGluay5jOjU5CisjOiByZmMyMTMxLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZmlsZSBuYW1lOiAlcyIKK21zZ3N0ciAiIgorCisjOiByZmMyMTMxLmM6MTU4MworIywgYy1mb3JtYXQKK21zZ2lkICJzZXJ2ZXIgbmFtZTogJXMiCittc2dzdHIgIiIKKworIzogbmV0bGluay5jOjYzCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgbmV0bGluayBzb2NrZXQ6ICVzIgogbXNnc3RyICIiCiAKLSM6IG5ldGxpbmsuYzoyMjYKKyM6IG5ldGxpbmsuYzoyMzAKICMsIGMtZm9ybWF0CiBtc2dpZCAibmV0bGluayByZXR1cm5zIGVycm9yOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkYnVzLmM6MTExCisjOiBkYnVzLmM6MTE1CiBtc2dpZCAiYXR0ZW1wdCB0byBzZXQgYW4gSVB2NiBzZXJ2ZXIgYWRkcmVzcyB2aWEgREJ1cyAtIG5vIElQdjYgc3VwcG9ydCIKIG1zZ3N0ciAiIgogCi0jOiBkYnVzLmM6MjM3CisjOiBkYnVzLmM6MjQxCiBtc2dpZCAic2V0dGluZyB1cHN0cmVhbSBzZXJ2ZXJzIGZyb20gREJ1cyIKIG1zZ3N0ciAiIgogCi0jOiBkYnVzLmM6Mjc1CisjOiBkYnVzLmM6Mjc5CiBtc2dpZCAiY291bGQgbm90IHJlZ2lzdGVyIGEgREJ1cyBtZXNzYWdlIGhhbmRsZXIiCiBtc2dzdHIgIiIKIAotIzogYnBmLmM6NDMKKyM6IGJwZi5jOjE0NgogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIERIQ1AgQlBGIHNvY2tldDogJXMiCiBtc2dzdHIgIiIKIAotIzogYnBmLmM6NzEKKyM6IGJwZi5jOjE3NAogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQIHJlcXVlc3QgZm9yIHVuc3VwcG9ydGVkIGhhcmR3YXJlIHR5cGUgKCVkKSByZWNlaXZlZCBvbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6MTU4CisjOiB0ZnRwLmM6MTczCittc2dpZCAidW5hYmxlIHRvIGdldCBmcmVlIHBvcnQgZm9yIFRGVFAiCittc2dzdHIgIiIKKworIzogdGZ0cC5jOjE4OAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1bnN1cHBvcnRlZCByZXF1ZXN0IGZyb20gJXMiCiBtc2dzdHIgIiIKIAotIzogdGZ0cC5jOjIzNgorIzogdGZ0cC5jOjI2NgogIywgYy1mb3JtYXQKIG1zZ2lkICJURlRQIHNlbnQgJXMgdG8gJXMiCiBtc2dzdHIgIiIKIAotIzogdGZ0cC5jOjI1OQorIzogdGZ0cC5jOjI4OQogIywgYy1mb3JtYXQKIG1zZ2lkICJmaWxlICVzIG5vdCBmb3VuZCIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6MzY5CisjOiB0ZnRwLmM6Mzk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgZXJyb3IgJWQgJXMgcmVjZWl2ZWQgZnJvbSAlcyIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6NDAwCisjOiB0ZnRwLmM6NDMwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgZmFpbGVkIHNlbmRpbmcgJXMgdG8gJXMiCiBtc2dzdHIgIiIKIAotIzogbG9nLmM6NjkKKyM6IGxvZy5jOjczCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBvcGVuICVzOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzoxNDYKKyM6IGxvZy5jOjg5CisjLCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZhaWxlZCB0byBjaGFuZ2Ugb3duZXIgb2YgJXM6ICVzIgorbXNnc3RyICIiCisKKyM6IGxvZy5jOjE2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJvdmVyZmxvdzogJWQgbG9nIGVudHJpZXMgbG9zdCIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzoyMjMKKyM6IGxvZy5jOjIzOAogIywgYy1mb3JtYXQKIG1zZ2lkICJsb2cgZmFpbGVkOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBsb2cuYzozNzgKKyM6IGxvZy5jOjM5NAogbXNnaWQgIkZBSUxFRCB0byBzdGFydCB1cCIKIG1zZ3N0ciAiIgpkaWZmIC0tZ2l0IGEvcG8vcm8ucG8gYi9wby9yby5wbwppbmRleCBjMzdlNzBmLi5iMWFkMzU2IDEwMDY0NAotLS0gYS9wby9yby5wbworKysgYi9wby9yby5wbwpAQCAtNiw3ICs2LDcgQEAKIG1zZ3N0ciAiIgogIlByb2plY3QtSWQtVmVyc2lvbjogZG5zbWFzcSAyLjI0XG4iCiAiUmVwb3J0LU1zZ2lkLUJ1Z3MtVG86IFxuIgotIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA3LTA4LTI5IDExOjA5KzAxMDBcbiIKKyJQT1QtQ3JlYXRpb24tRGF0ZTogMjAwOC0wMi0xMiAxMTowNCswMDAwXG4iCiAiUE8tUmV2aXNpb24tRGF0ZTogMjAwNS0xMS0yMiAxNjo0NiswMDAwXG4iCiAiTGFzdC1UcmFuc2xhdG9yOiBTaW1vbiBLZWxsZXkgPHNpbW9uQHRoZWtlbGxleXMub3JnLnVrPlxuIgogIkxhbmd1YWdlLVRlYW06IFJvbWFuaWFuIDx0cmFuc2xhdGlvbi10ZWFtLXJvQGxpc3RzLnNvdXJjZWZvcmdlLm5ldD5cbiIKQEAgLTE1LDMxICsxNSwzMSBAQAogIkNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXRcbiIKIAogIyBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3NlcyB0aGUgbGV0dGVycyDDoiwgxIMsIMWfLCDFoyBhbmQgw64gY2FuIGJlIHdyaXR0ZW4gYXMgdGhlaXIgbG9vay1hbGlrZSBjb3JyZXNwb25kZW50LgotIzogY2FjaGUuYzo2NzEKKyM6IGNhY2hlLmM6NjgwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gbG9hZCBuYW1lcyBmcm9tICVzOiAlcyIKIG1zZ3N0ciAiw65uY8SDcmNhcmVhIG51bWVsb3IgZGluICVzOiAlbSBhIGXFn3VhdCIKIAotIzogY2FjaGUuYzo3MDUgZGhjcC5jOjcxNworIzogY2FjaGUuYzo3MTQgZGhjcC5jOjc1NwogIywgYy1mb3JtYXQKIG1zZ2lkICJiYWQgYWRkcmVzcyBhdCAlcyBsaW5lICVkIgogbXNnc3RyICJhZHJlc8SDIGdyZcWfaXTEgyDDrm4gJXMsIGxpbmlhICVkIgogCi0jOiBjYWNoZS5jOjc1MiBkaGNwLmM6NzMxCisjOiBjYWNoZS5jOjc2MSBkaGNwLmM6NzcxCiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBuYW1lIGF0ICVzIGxpbmUgJWQiCiBtc2dzdHIgIm51bWUgZ3JlxZ9pdCDDrm4gJXMgbGluaWEgJWQiCiAKLSM6IGNhY2hlLmM6NzU5IGRoY3AuYzo3ODUKKyM6IGNhY2hlLmM6NzY4IGRoY3AuYzo4MjUKICMsIGMtZm9ybWF0CiBtc2dpZCAicmVhZCAlcyAtICVkIGFkZHJlc3NlcyIKIG1zZ3N0ciAiY2l0ZXNjICVzIC0gJWQgYWRyZXNlIgogCi0jOiBjYWNoZS5jOjc5NworIzogY2FjaGUuYzo4MDYKIG1zZ2lkICJjbGVhcmVkIGNhY2hlIgogbXNnc3RyICJtZW1vcmlhIHRlbXBvcmFyxIMgYSBmb3N0IMWfdGVhcnPEgyIKIAotIzogY2FjaGUuYzo4NDQKKyM6IGNhY2hlLmM6ODU1CiAjLCBjLWZvcm1hdAogbXNnaWQgIiIKICJub3QgZ2l2aW5nIG5hbWUgJXMgdG8gdGhlIERIQ1AgbGVhc2Ugb2YgJXMgYmVjYXVzZSB0aGUgbmFtZSBleGlzdHMgaW4gJXMgIgpAQCAtNDgsMzgwICs0OCw0MjkgQEAKICJudSBwb3QgZGEgbnVtZWxlICVzIMOubXBydW11dHVsdWkgZGUgYWRyZXPEgyBESENQIGEgbHVpICVzIGRlb2FyZWNlICIKICJudW1lbGVleGlzdMSDIMOubiAlcyBjdSBhZHJlc2EgJXMiCiAKLSM6IGNhY2hlLmM6ODg0CisjOiBjYWNoZS5jOjkwNworIywgYy1mb3JtYXQKK21zZ2lkICJ0aW1lICVsdSIKK21zZ3N0ciAiIgorCisjOiBjYWNoZS5jOjkwOAogIywgZnV6enksIGMtZm9ybWF0Ci1tc2dpZCAiIgotInRpbWUgJWx1LCBjYWNoZSBzaXplICVkLCAlZC8lZCBjYWNoZSBpbnNlcnRpb25zIHJlLXVzZWQgdW5leHBpcmVkIGNhY2hlICIKLSJlbnRyaWVzLiIKK21zZ2lkICJjYWNoZSBzaXplICVkLCAlZC8lZCBjYWNoZSBpbnNlcnRpb25zIHJlLXVzZWQgdW5leHBpcmVkIGNhY2hlIGVudHJpZXMuIgogbXNnc3RyICIiCiAiY2FudGl0YXRlIGRlIG1lbW9yaWUgdGVtcG9yYXLEgyAlZCwgJWQvJWQgc3RvY8SDcmkgdGVtcG9yYXJlIGF1cmV1dGlsaXphdCAiCiAibG9jYcWjaWkgbmVleHBpcmF0ZS4iCiAKLSM6IHV0aWwuYzoxNTcgb3B0aW9uLmM6NzU4CisjOiBjYWNoZS5jOjkxMAorIywgYy1mb3JtYXQKK21zZ2lkICJxdWVyaWVzIGZvcndhcmRlZCAldSwgcXVlcmllcyBhbnN3ZXJlZCBsb2NhbGx5ICV1IgorbXNnc3RyICIiCisKKyM6IGNhY2hlLmM6OTMzCisjLCBjLWZvcm1hdAorbXNnaWQgInNlcnZlciAlcyMlZDogcXVlcmllcyBzZW50ICV1LCByZXRyaWVkIG9yIGZhaWxlZCAldSIKK21zZ3N0ciAiIgorCisjOiB1dGlsLmM6MTYwCiBtc2dpZCAiY291bGQgbm90IGdldCBtZW1vcnkiCiBtc2dzdHIgIm51IGFtIHB1dHV0IGFsb2NhIG1lbW9yaWUiCiAKLSM6IHV0aWwuYzoxNjcKKyM6IHV0aWwuYzoxNzAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBhbGxvY2F0ZSAlZCBieXRlcyIKIG1zZ3N0ciAibnUgcG90IMOubmPEg3JjYSAlczogJW4iCiAKLSM6IHV0aWwuYzoyNzIKKyM6IHV0aWwuYzoyNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAiaW5maW5pdGUiCiBtc2dzdHIgImluZmluaXQiCiAKLSM6IG9wdGlvbi5jOjE4OAorIzogb3B0aW9uLmM6MjQ0CiBtc2dpZCAiU3BlY2lmeSBsb2NhbCBhZGRyZXNzKGVzKSB0byBsaXN0ZW4gb24uIgogbXNnc3RyICJTcGVjaWZpY2HFo2kgYWRyZXNlbGUgbG9jYWxlIGRlc2Vydml0ZS4iCiAKLSM6IG9wdGlvbi5jOjE4OQorIzogb3B0aW9uLmM6MjQ1CiBtc2dpZCAiUmV0dXJuIGlwYWRkciBmb3IgYWxsIGhvc3RzIGluIHNwZWNpZmllZCBkb21haW5zLiIKIG1zZ3N0ciAiQWZpxZ9lYXrEgyBhZHJlc2VsZSBJUCBhbGUgbWHFn2luaWxvciDDrm4gZG9tZW5pdWwgZGF0LiIKIAotIzogb3B0aW9uLmM6MTkwCisjOiBvcHRpb24uYzoyNDYKIG1zZ2lkICJGYWtlIHJldmVyc2UgbG9va3VwcyBmb3IgUkZDMTkxOCBwcml2YXRlIGFkZHJlc3MgcmFuZ2VzLiIKIG1zZ3N0ciAiIgogIlNpbXVsZWF6xIMgY8SDdXTEg3JpIGR1cMSDIGFkcmVzxIMgcGVudHJ1IGRvbWVuaWkgZGUgYWRyZXPEgyBwcml2YXRlIChSRkMxOTE4KS4iCiAKLSM6IG9wdGlvbi5jOjE5MQorIzogb3B0aW9uLmM6MjQ3CiBtc2dpZCAiVHJlYXQgaXBhZGRyIGFzIE5YRE9NQUlOIChkZWZlYXRzIFZlcmlzaWduIHdpbGRjYXJkKS4iCiBtc2dzdHIgIkludGVycHJldGVhesSDIGFkcmVzYSBJUCBjYSBOWERPTUFJTiAow65tcG90cml2YSBtYW5pcHVsxINyaWxvciBWZXJpc2lnbikiCiAKLSM6IG9wdGlvbi5jOjE5MgorIzogb3B0aW9uLmM6MjQ4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgdGhlIHNpemUgb2YgdGhlIGNhY2hlIGluIGVudHJpZXMgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlNwZWNpZmljxIMgbcSDcmltZWEgw65ucmVnaXN0csSDcmlsb3IgdGVtcG9yYXJlIChpbXBsaWNpdCBlICVzKS4iCiAKLSM6IG9wdGlvbi5jOjE5MworIzogb3B0aW9uLmM6MjQ5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgY29uZmlndXJhdGlvbiBmaWxlIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJTcGVjaWZpY8SDIGZpxZ9pZXIgZGUgY29uZmlndXJhcmUgKGltcGxpY2l0IGUgJXMpLiIKIAotIzogb3B0aW9uLmM6MTk0CisjOiBvcHRpb24uYzoyNTAKIG1zZ2lkICJEbyBOT1QgZm9yayBpbnRvIHRoZSBiYWNrZ3JvdW5kOiBydW4gaW4gZGVidWcgbW9kZS4iCiBtc2dzdHIgIk5VIHBvcm5lxZ90ZSDDrm4gZnVuZGFsOiBydWxlYXrEgyDDrm4gbW9kdWwgZGVwYW5hcmUuIgogCi0jOiBvcHRpb24uYzoxOTUKKyM6IG9wdGlvbi5jOjI1MQogbXNnaWQgIkRvIE5PVCBmb3J3YXJkIHF1ZXJpZXMgd2l0aCBubyBkb21haW4gcGFydC4iCiBtc2dzdHIgIk5VIMOubmFpbnRhIGNlcmVyaWxlIGNlIG51IGNvbsWjaW4gZG9tZW5pdSBETlMuIgogCi0jOiBvcHRpb24uYzoxOTYKKyM6IG9wdGlvbi5jOjI1MgogbXNnaWQgIlJldHVybiBzZWxmLXBvaW50aW5nIE1YIHJlY29yZHMgZm9yIGxvY2FsIGhvc3RzLiIKIG1zZ3N0ciAiUsSDc3B1bmRlIGN1IMOubnJlZ2lzdHLEg3JpIE1YIHNwcmUgZWwgw65uc3XFn2kgcGVudHJ1IG1hxZ9pbmkgbG9jYWxlLiIKIAotIzogb3B0aW9uLmM6MTk3CisjOiBvcHRpb24uYzoyNTMKIG1zZ2lkICJFeHBhbmQgc2ltcGxlIG5hbWVzIGluIC9ldGMvaG9zdHMgd2l0aCBkb21haW4tc3VmZml4LiIKIG1zZ3N0ciAiQWRhdWfEgyBudW1lbG9yIHNpbXBsZSBkaW4gL2V0Yy9ob3N0cyBudW1lbGUgZG9tZW5pdWx1aSBjYSBzdWZpeC4iCiAKLSM6IG9wdGlvbi5jOjE5OAorIzogb3B0aW9uLmM6MjU0CiBtc2dpZCAiRG9uJ3QgZm9yd2FyZCBzcHVyaW91cyBETlMgcmVxdWVzdHMgZnJvbSBXaW5kb3dzIGhvc3RzLiIKIG1zZ3N0ciAiTnUgaW5haW50YSBjZXJlcmkgRE5TIGRlZmVjdGUgcHJvdmVuaXRlIGRlIGxhIG1hxZ9pbmkgV2luZG93cy4iCiAKLSM6IG9wdGlvbi5jOjE5OQorIzogb3B0aW9uLmM6MjU1CiBtc2dpZCAiRW5hYmxlIERIQ1AgaW4gdGhlIHJhbmdlIGdpdmVuIHdpdGggbGVhc2UgZHVyYXRpb24uIgogbXNnc3RyICJBY3RpdmVhesSDIERIQ1Agw65uIGRvbWVuaXVsIGRhdCBjdSBkdXJhdMSDIGxpbWl0YXTEgyBkZSDDrm1wcnVtdXQuIgogCi0jOiBvcHRpb24uYzoyMDAKKyM6IG9wdGlvbi5jOjI1NgogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGFuZ2UgdG8gdGhpcyBncm91cCBhZnRlciBzdGFydHVwIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJSdWxlYXrEgyBzdWIgYWNlc3QgZ3J1cCBkdXDEgyBwb3JuaXJlIChpbXBsaWNpdCBlICVzKS4iCiAKLSM6IG9wdGlvbi5jOjIwMQorIzogb3B0aW9uLmM6MjU3CiBtc2dpZCAiU2V0IGFkZHJlc3Mgb3IgaG9zdG5hbWUgZm9yIGEgc3BlY2lmaWVkIG1hY2hpbmUuIgogbXNnc3RyICJTY2hpbWLEgyBhZHJlc2Egc2F1IG51bWVsZSBtYcWfaW5paSBzcGVjaWZpY2F0ZS4iCiAKLSM6IG9wdGlvbi5jOjIwMgorIzogb3B0aW9uLmM6MjU4CiBtc2dpZCAiUmVhZCBESENQIGhvc3Qgc3BlY3MgZnJvbSBmaWxlIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwMworIzogb3B0aW9uLmM6MjU5Cittc2dpZCAiUmVhZCBESENQIG9wdGlvbiBzcGVjcyBmcm9tIGZpbGUiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MjYwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRvIE5PVCBsb2FkICVzIGZpbGUuIgogbXNnc3RyICJOdSDDrm5jYXJjxIMgZmnFn2llcnVsICVzLiIKIAotIzogb3B0aW9uLmM6MjA0CisjOiBvcHRpb24uYzoyNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBhIGhvc3RzIGZpbGUgdG8gYmUgcmVhZCBpbiBhZGRpdGlvbiB0byAlcy4iCiBtc2dzdHIgIlNwZWNpZmljxIMgc3ByZSBjaXRpcmUgdW4gZmnFn2llciBob3N0cyBhZGnFo2lvbmFsIGxhICVzLiIKIAotIzogb3B0aW9uLmM6MjA1CisjOiBvcHRpb24uYzoyNjIKIG1zZ2lkICJTcGVjaWZ5IGludGVyZmFjZShzKSB0byBsaXN0ZW4gb24uIgogbXNnc3RyICJTcGVjaWZpY8SDIGludGVyZmXFo2VsZSBkZXNlcnZpdGUuIgogCi0jOiBvcHRpb24uYzoyMDYKKyM6IG9wdGlvbi5jOjI2MwogbXNnaWQgIlNwZWNpZnkgaW50ZXJmYWNlKHMpIE5PVCB0byBsaXN0ZW4gb24uIgogbXNnc3RyICJTcGVjaWZpY8SDIGludGVyZmXFo2VsZSBORS1kZXNlcnZpdGUuIgogCi0jOiBvcHRpb24uYzoyMDcKKyM6IG9wdGlvbi5jOjI2NAogIywgZnV6enkKIG1zZ2lkICJNYXAgREhDUCB1c2VyIGNsYXNzIHRvIHRhZy4iCiBtc2dzdHIgIkxlYWfEgyBjbGFzYSBkZSB1dGlsaXphdG9yIERIQ1AgY3UgZ3J1cCBkZSBvcMWjaXVuaS4iCiAKLSM6IG9wdGlvbi5jOjIwOAorIzogb3B0aW9uLmM6MjY1CiBtc2dpZCAiTWFwIFJGQzMwNDYgY2lyY3VpdC1pZCB0byB0YWcuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIwOQorIzogb3B0aW9uLmM6MjY2CiBtc2dpZCAiTWFwIFJGQzMwNDYgcmVtb3RlLWlkIHRvIHRhZy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjEwCisjOiBvcHRpb24uYzoyNjcKIG1zZ2lkICJNYXAgUkZDMzk5MyBzdWJzY3JpYmVyLWlkIHRvIHRhZy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjExCisjOiBvcHRpb24uYzoyNjgKICMsIGZ1enp5CiBtc2dpZCAiRG9uJ3QgZG8gREhDUCBmb3IgaG9zdHMgd2l0aCB0YWcgc2V0LiIKIG1zZ3N0ciAiTnUgZnVybml6YSBESENQIG1hxZ9pbmlsb3IgZGluIGdydXB1bCBkZSBvcMWjaXVuaS4iCiAKLSM6IG9wdGlvbi5jOjIxMgorIzogb3B0aW9uLmM6MjY5CisjLCBmdXp6eQorbXNnaWQgIkZvcmNlIGJyb2FkY2FzdCByZXBsaWVzIGZvciBob3N0cyB3aXRoIHRhZyBzZXQuIgorbXNnc3RyICJOdSBmdXJuaXphIERIQ1AgbWHFn2luaWxvciBkaW4gZ3J1cHVsIGRlIG9wxaNpdW5pLiIKKworIzogb3B0aW9uLmM6MjcwCiBtc2dpZCAiRG8gTk9UIGZvcmsgaW50byB0aGUgYmFja2dyb3VuZCwgZG8gTk9UIHJ1biBpbiBkZWJ1ZyBtb2RlLiIKIG1zZ3N0ciAiTlUgcG9ybmXFn3RlIMOubiBmdW5kYWwsIE5VIHJ1bGVhesSDIMOubiBtb2R1bCBkZXBhbmFyZS4iCiAKLSM6IG9wdGlvbi5jOjIxMworIzogb3B0aW9uLmM6MjcxCiBtc2dpZCAiQXNzdW1lIHdlIGFyZSB0aGUgb25seSBESENQIHNlcnZlciBvbiB0aGUgbG9jYWwgbmV0d29yay4iCiBtc2dzdHIgIlByZXN1cHVuZSBjxIMgc3VudGVtIHNpbmd1cnVsIHNlcnZlciBESENQIGRpbiByZcWjZWF1YSBsb2NhbMSDLiIKIAotIzogb3B0aW9uLmM6MjE0CisjOiBvcHRpb24uYzoyNzIKICMsIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSB3aGVyZSB0byBzdG9yZSBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiU3BlY2lmaWPEgyBmacWfaWVydWwgZGUgc3RvY2FyZSBhIMOubXBydW11dHVyaWxvciBESENQIChpbXBsaWNpdCBlICVzKS4iCiAKLSM6IG9wdGlvbi5jOjIxNQorIzogb3B0aW9uLmM6MjczCiBtc2dpZCAiUmV0dXJuIE1YIHJlY29yZHMgZm9yIGxvY2FsIGhvc3RzLiIKIG1zZ3N0ciAiUsSDc3B1bmRlIGN1IMOubnRyZWdpc3RyxINyaSBNWCBwZW50cnUgbWHFn2luaSBsb2NhbGUuIgogCi0jOiBvcHRpb24uYzoyMTYKKyM6IG9wdGlvbi5jOjI3NAogbXNnaWQgIlNwZWNpZnkgYW4gTVggcmVjb3JkLiIKIG1zZ3N0ciAiU3BlY2lmaWPEgyBvIMOubnJlZ2lzdHJhcmUgTVguIgogCi0jOiBvcHRpb24uYzoyMTcKKyM6IG9wdGlvbi5jOjI3NQogbXNnaWQgIlNwZWNpZnkgQk9PVFAgb3B0aW9ucyB0byBESENQIHNlcnZlci4iCiBtc2dzdHIgIlNwZWNpZmljxIMgb3DFo2l1bmkgQk9PVFAgc2VydmVydWx1aSBESENQLiIKIAotIzogb3B0aW9uLmM6MjE4CisjOiBvcHRpb24uYzoyNzYKICMsIGMtZm9ybWF0CiBtc2dpZCAiRG8gTk9UIHBvbGwgJXMgZmlsZSwgcmVsb2FkIG9ubHkgb24gU0lHSFVQLiIKIG1zZ3N0ciAiTnUgw65uY8SDcmNhIGZpxZ9pZXJ1bCAlcywgY2l0ZcWfdGUtbCBkb2FyIGxhIFNJR0hVUC4iCiAKLSM6IG9wdGlvbi5jOjIxOQorIzogb3B0aW9uLmM6Mjc3CiBtc2dpZCAiRG8gTk9UIGNhY2hlIGZhaWxlZCBzZWFyY2ggcmVzdWx0cy4iCiBtc2dzdHIgIk5VIG1lbW9yYSByZXp1bHRhdGVsZSBkZSBjxIN1dGFyZSBETlMgZcWfdWF0YXTEgy4iCiAKLSM6IG9wdGlvbi5jOjIyMAorIzogb3B0aW9uLmM6Mjc4CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZSBuYW1lc2VydmVycyBzdHJpY3RseSBpbiB0aGUgb3JkZXIgZ2l2ZW4gaW4gJXMuIgogbXNnc3RyICJGb2xvc2XFn3RlIHNlcnZlcmUgRE5TIHN0cmljdCDDrm4gb3JkaW5lYSBkYXTEgyDDrm4gJXMuIgogCi0jOiBvcHRpb24uYzoyMjEKKyM6IG9wdGlvbi5jOjI3OQogIywgZnV6enkKIG1zZ2lkICJTcGVjaWZ5IG9wdGlvbnMgdG8gYmUgc2VudCB0byBESENQIGNsaWVudHMuIgogbXNnc3RyICJDb25maWd1cmVhesSDIG9wxaNpdW5pIMOubiBwbHVzY2UgdHJlYnVpZSB0cmltaXNlIGNsaWVuxaNpbG9yIERIQ1AuIgogCi0jOiBvcHRpb24uYzoyMjIKKyM6IG9wdGlvbi5jOjI4MAogbXNnaWQgIkRIQ1Agb3B0aW9uIHNlbnQgZXZlbiBpZiB0aGUgY2xpZW50IGRvZXMgbm90IHJlcXVlc3QgaXQuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyMworIzogb3B0aW9uLmM6MjgxCiBtc2dpZCAiU3BlY2lmeSBwb3J0IHRvIGxpc3RlbiBmb3IgRE5TIHJlcXVlc3RzIG9uIChkZWZhdWx0cyB0byA1MykuIgogbXNnc3RyICJTcGVjaWZpY8SDIG51bcSDcnVsIHBvcnR1bHVpIHBlbnRydSBjZXJlcmkgRE5TIChpbXBsaWNpdCBlIDUzKS4iCiAKLSM6IG9wdGlvbi5jOjIyNAorIzogb3B0aW9uLmM6MjgyCiAjLCBjLWZvcm1hdAogbXNnaWQgIk1heGltdW0gc3VwcG9ydGVkIFVEUCBwYWNrZXQgc2l6ZSBmb3IgRUROUy4wIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJNYXJpbWVhIG1heGltxIMgYSBwYWNoZXR1bHVpIFVEUCBwZW50cnUgRUROUy4wIChpbXBsaWNpdCBlICVzKS4iCiAKLSM6IG9wdGlvbi5jOjIyNQotbXNnaWQgIkxvZyBxdWVyaWVzLiIKKyM6IG9wdGlvbi5jOjI4MworIywgZnV6enkKK21zZ2lkICJMb2cgRE5TIHF1ZXJpZXMuIgogbXNnc3RyICLDjm5yZWdpc3RyZWF6xIMgdHJhbnphY8WjaWlsZS4iCiAKLSM6IG9wdGlvbi5jOjIyNgotbXNnaWQgIkZvcmNlIHRoZSBvcmlnaW5hdGluZyBwb3J0IGZvciB1cHN0cmVhbSBxdWVyaWVzLiIKKyM6IG9wdGlvbi5jOjI4NAorIywgZnV6enkKK21zZ2lkICJGb3JjZSB0aGUgb3JpZ2luYXRpbmcgcG9ydCBmb3IgdXBzdHJlYW0gRE5TIHF1ZXJpZXMuIgogbXNnc3RyICJGb3LFo2VhesSDIGFjZXN0IHBvcnQgcGVudHJ1IGRhdGVsZSBjZSBwbGVhY8SDLiIKIAotIzogb3B0aW9uLmM6MjI3CisjOiBvcHRpb24uYzoyODUKIG1zZ2lkICJEbyBOT1QgcmVhZCByZXNvbHYuY29uZi4iCiBtc2dzdHIgIk5VIGNpdGkgZmnFn2llcnVsIHJlc29sdi5jb25mIgogCi0jOiBvcHRpb24uYzoyMjgKKyM6IG9wdGlvbi5jOjI4NgogIywgYy1mb3JtYXQKIG1zZ2lkICJTcGVjaWZ5IHBhdGggdG8gcmVzb2x2LmNvbmYgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlNwZWNpZmljxIMgY2FsZWEgY8SDdHJlIHJlc29sdi5jb25mIChpbXBsaWNpdCBlICVzKS4iCiAKLSM6IG9wdGlvbi5jOjIyOQorIzogb3B0aW9uLmM6Mjg3CiBtc2dpZCAiU3BlY2lmeSBhZGRyZXNzKGVzKSBvZiB1cHN0cmVhbSBzZXJ2ZXJzIHdpdGggb3B0aW9uYWwgZG9tYWlucy4iCiBtc2dzdHIgIlNwZWNpZmljxIMgYWRyZXNlbGUgc2VydmVyKGVsb3IpIHN1cGVyaW9hcmUgY3UgZG9tZW5paSBvcMWjaW9uYWxlLiIKIAotIzogb3B0aW9uLmM6MjMwCisjOiBvcHRpb24uYzoyODgKIG1zZ2lkICJOZXZlciBmb3J3YXJkIHF1ZXJpZXMgdG8gc3BlY2lmaWVkIGRvbWFpbnMuIgogbXNnc3RyICJOdSDDrm5haW50ZWF6xIMgY2VyZXJpbGUgc3ByZSBkb21lbmlpbGUgc3BlY2lmaWNhdGUuIgogCi0jOiBvcHRpb24uYzoyMzEKKyM6IG9wdGlvbi5jOjI4OQogbXNnaWQgIlNwZWNpZnkgdGhlIGRvbWFpbiB0byBiZSBhc3NpZ25lZCBpbiBESENQIGxlYXNlcy4iCiBtc2dzdHIgIlNwZWNpZmljxIMgZG9tZW5pdWwgZGUgdHJhbnNtaXMgcHJpbiBESENQLiIKIAotIzogb3B0aW9uLmM6MjMyCisjOiBvcHRpb24uYzoyOTAKIG1zZ2lkICJTcGVjaWZ5IGRlZmF1bHQgdGFyZ2V0IGluIGFuIE1YIHJlY29yZC4iCiBtc2dzdHIgIlNwZWNpZmljxIMgbyDFo2ludMSDIMOubnRyLW8gw65ucmVnaXN0cmFyZSBNWC4iCiAKLSM6IG9wdGlvbi5jOjIzMworIzogb3B0aW9uLmM6MjkxCiBtc2dpZCAiU3BlY2lmeSB0aW1lLXRvLWxpdmUgaW4gc2Vjb25kcyBmb3IgcmVwbGllcyBmcm9tIC9ldGMvaG9zdHMuIgogbXNnc3RyICJTcGVjaWZpY8SDIFRUTCDDrm4gc2VjdW5kZSBwZW50cnUgcsSDc3B1bnN1cmlsZSBkaW4gL2V0Yy9ob3N0cy4iCiAKLSM6IG9wdGlvbi5jOjIzNAorIzogb3B0aW9uLmM6MjkyCisjLCBmdXp6eQorbXNnaWQgIlNwZWNpZnkgdGltZS10by1saXZlIGluIHNlY29uZHMgZm9yIG5lZ2F0aXZlIGNhY2hpbmcuIgorbXNnc3RyICJTcGVjaWZpY8SDIFRUTCDDrm4gc2VjdW5kZSBwZW50cnUgcsSDc3B1bnN1cmlsZSBkaW4gL2V0Yy9ob3N0cy4iCisKKyM6IG9wdGlvbi5jOjI5MwogIywgYy1mb3JtYXQKIG1zZ2lkICJDaGFuZ2UgdG8gdGhpcyB1c2VyIGFmdGVyIHN0YXJ0dXAuIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJSdWxlYXrEgyBzdWIgYWNlc3QgdXRpbGl6YXRvciBkdXDEgyBwb3JuaXJlLiAoaW1wbGljaXQgZSAlcykuIgogCi0jOiBvcHRpb24uYzoyMzUKKyM6IG9wdGlvbi5jOjI5NAogIywgZnV6enkKIG1zZ2lkICJNYXAgREhDUCB2ZW5kb3IgY2xhc3MgdG8gdGFnLiIKIG1zZ3N0ciAiVHJpbWl0ZSBvcMWjaXVuaSBESENQIMOubiBmdW5jxaNpZSBkZSBtYXJjYSBwbMSDY2lpIGRlIHJlxaNlYS4iCiAKLSM6IG9wdGlvbi5jOjIzNgorIzogb3B0aW9uLmM6Mjk1CiBtc2dpZCAiRGlzcGxheSBkbnNtYXNxIHZlcnNpb24gYW5kIGNvcHlyaWdodCBpbmZvcm1hdGlvbi4iCiBtc2dzdHIgIkFmacWfZWF6xIMgdmVyc2l1bmVhIGRuc21hc3EgxZ9pIGRyZXB0dXJpbGUgZGUgYXV0b3IuIgogCi0jOiBvcHRpb24uYzoyMzcKKyM6IG9wdGlvbi5jOjI5NgogbXNnaWQgIlRyYW5zbGF0ZSBJUHY0IGFkZHJlc3NlcyBmcm9tIHVwc3RyZWFtIHNlcnZlcnMuIgogbXNnc3RyICJUcmFkdWNlIGFkcmVzZWxlIElQdjQgZGUgbGEgc2VydmVyZWxlIEROUyBzdXBlcmlvYXJlLiIKIAotIzogb3B0aW9uLmM6MjM4CisjOiBvcHRpb24uYzoyOTcKIG1zZ2lkICJTcGVjaWZ5IGEgU1JWIHJlY29yZC4iCiBtc2dzdHIgIlNwZWNpZmljxIMgbyDDrm5yZWdpc3RyYXJlIFNSVi4iCiAKLSM6IG9wdGlvbi5jOjIzOQorIzogb3B0aW9uLmM6Mjk4CiBtc2dpZCAiRGlzcGxheSB0aGlzIG1lc3NhZ2UuIFVzZSAtLWhlbHAgZGhjcCBmb3Iga25vd24gREhDUCBvcHRpb25zLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNDAKKyM6IG9wdGlvbi5jOjI5OQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiU3BlY2lmeSBwYXRoIG9mIFBJRCBmaWxlIChkZWZhdWx0cyB0byAlcykuIgogbXNnc3RyICJTcGVjaWZpY8SDIG8gY2FsZSBwZW50cnUgZmnFn2llcnVsIFBJRC4gKGltcGxpY2l0ICVzKS4iCiAKLSM6IG9wdGlvbi5jOjI0MQorIzogb3B0aW9uLmM6MzAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIlNwZWNpZnkgbWF4aW11bSBudW1iZXIgb2YgREhDUCBsZWFzZXMgKGRlZmF1bHRzIHRvICVzKS4iCiBtc2dzdHIgIlNwZWNpZmljxIMgbnVtxINydWwgbWF4aW0gZGUgw65tcHJ1bXV0dXJpIERIQ1AgKGltcGxpY2l0ICVzKS4iCiAKLSM6IG9wdGlvbi5jOjI0MgorIzogb3B0aW9uLmM6MzAxCiBtc2dpZCAiQW5zd2VyIEROUyBxdWVyaWVzIGJhc2VkIG9uIHRoZSBpbnRlcmZhY2UgYSBxdWVyeSB3YXMgc2VudCB0by4iCiBtc2dzdHIgIiIKICJSxINzcHVuZGUgY2VyZXJpbG9yIEROUyDDrm4gZnVuY8WjaWUgZGUgaW50ZXJmYcWjYSBwZSBjYXJlIGEgdmVuaXQgY2VyZXJlYS4iCiAKLSM6IG9wdGlvbi5jOjI0MworIzogb3B0aW9uLmM6MzAyCiBtc2dpZCAiU3BlY2lmeSBUWFQgRE5TIHJlY29yZC4iCiBtc2dzdHIgIlNwZWNpZmljxIMgbyDDrm5yZWdpc3RyYXJlIFRYVC4iCiAKLSM6IG9wdGlvbi5jOjI0NAorIzogb3B0aW9uLmM6MzAzCiAjLCBmdXp6eQogbXNnaWQgIlNwZWNpZnkgUFRSIEROUyByZWNvcmQuIgogbXNnc3RyICJTcGVjaWZpY8SDIG8gw65ucmVnaXN0cmFyZSBUWFQuIgogCi0jOiBvcHRpb24uYzoyNDUKKyM6IG9wdGlvbi5jOjMwNAogbXNnaWQgIkdpdmUgRE5TIG5hbWUgdG8gSVB2NCBhZGRyZXNzIG9mIGludGVyZmFjZS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjQ2CisjOiBvcHRpb24uYzozMDUKIG1zZ2lkICJCaW5kIG9ubHkgdG8gaW50ZXJmYWNlcyBpbiB1c2UuIgogbXNnc3RyICJBc2N1bHTEgyBkb2FyIHBlIGludGVyZmXFo2VsZSBhY3RpdmUuIgogCi0jOiBvcHRpb24uYzoyNDcKKyM6IG9wdGlvbi5jOjMwNgogIywgYy1mb3JtYXQKIG1zZ2lkICJSZWFkIERIQ1Agc3RhdGljIGhvc3QgaW5mb3JtYXRpb24gZnJvbSAlcy4iCiBtc2dzdHIgIkNpdGXFn3RlIGluZm9ybWHFo2lpIERIQ1Agc3RhdGljZSBkZXNwcmUgbWHFn2luxIMgZGluICVzLiIKIAotIzogb3B0aW9uLmM6MjQ4CisjOiBvcHRpb24uYzozMDcKIG1zZ2lkICJFbmFibGUgdGhlIERCdXMgaW50ZXJmYWNlIGZvciBzZXR0aW5nIHVwc3RyZWFtIHNlcnZlcnMsIGV0Yy4iCiBtc2dzdHIgIkFjdGl2ZWF6YSBpbnRlcmZhxaNhIERCdXMgcGVudHJ1IGNvbmZpZ3VyYXJlYSBzZXJ2ZXJlbG9yIHN1cGVyaW9hcmUuIgogCi0jOiBvcHRpb24uYzoyNDkKKyM6IG9wdGlvbi5jOjMwOAogbXNnaWQgIkRvIG5vdCBwcm92aWRlIERIQ1Agb24gdGhpcyBpbnRlcmZhY2UsIG9ubHkgcHJvdmlkZSBETlMuIgogbXNnc3RyICJOdSBhY3RpdmVhesSDIERIQ1AgY2kgZG9hciBETlMgcGUgYWNlYXN0xIMgaW50ZXJmYcWjxIMuIgogCi0jOiBvcHRpb24uYzoyNTAKKyM6IG9wdGlvbi5jOjMwOQogbXNnaWQgIkVuYWJsZSBkeW5hbWljIGFkZHJlc3MgYWxsb2NhdGlvbiBmb3IgYm9vdHAuIgogbXNnc3RyICJBY3RpdmVhesSDIGFsb2NhcmVhIGRpbmFtaWPEgyBhIGFkcmVzZWxvciBwZW50cnUgQk9PVFAuIgogCi0jOiBvcHRpb24uYzoyNTEKKyM6IG9wdGlvbi5jOjMxMAogIywgZnV6enkKIG1zZ2lkICJNYXAgTUFDIGFkZHJlc3MgKHdpdGggd2lsZGNhcmRzKSB0byBvcHRpb24gc2V0LiIKIG1zZ3N0ciAiVHJpbWl0ZSBvcMWjaXVuaSBESENQIMOubiBmdW5jxaNpZSBkZSBtYXJjYSBwbMSDY2lpIGRlIHJlxaNlYS4iCiAKLSM6IG9wdGlvbi5jOjI1MworIzogb3B0aW9uLmM6MzEyCiBtc2dpZCAiVHJlYXQgREhDUCByZXF1ZXN0cyBvbiBhbGlhc2VzIGFzIGFycml2aW5nIGZyb20gaW50ZXJmYWNlLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNTUKKyM6IG9wdGlvbi5jOjMxNAogbXNnaWQgIkRpc2FibGUgSUNNUCBlY2hvIGFkZHJlc3MgY2hlY2tpbmcgaW4gdGhlIERIQ1Agc2VydmVyLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNTYKKyM6IG9wdGlvbi5jOjMxNQogbXNnaWQgIlNjcmlwdCB0byBydW4gb24gREhDUCBsZWFzZSBjcmVhdGlvbiBhbmQgZGVzdHJ1Y3Rpb24uIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI1NworIzogb3B0aW9uLmM6MzE2CiBtc2dpZCAiUmVhZCBjb25maWd1cmF0aW9uIGZyb20gYWxsIHRoZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjU4CisjOiBvcHRpb24uYzozMTcKICMsIGZ1enp5CiBtc2dpZCAiTG9nIHRvIHRoaXMgc3lzbG9nIGZhY2lsaXR5IG9yIGZpbGUuIChkZWZhdWx0cyB0byBEQUVNT04pIgogbXNnc3RyICJSdWxlYXrEgyBzdWIgYWNlc3QgdXRpbGl6YXRvciBkdXDEgyBwb3JuaXJlLiAoaW1wbGljaXQgZSAlcykuIgogCi0jOiBvcHRpb24uYzoyNTkKKyM6IG9wdGlvbi5jOjMxOAogbXNnaWQgIlJlYWQgbGVhc2VzIGF0IHN0YXJ0dXAsIGJ1dCBuZXZlciB3cml0ZSB0aGUgbGVhc2UgZmlsZS4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjYwCisjOiBvcHRpb24uYzozMTkKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIk1heGltdW0gbnVtYmVyIG9mIGNvbmN1cnJlbnQgRE5TIHF1ZXJpZXMuIChkZWZhdWx0cyB0byAlcykiCiBtc2dzdHIgIlNwZWNpZmljxIMgbnVtxINydWwgbWF4aW0gZGUgw65tcHJ1bXV0dXJpIERIQ1AgKGltcGxpY2l0ICVzKS4iCiAKLSM6IG9wdGlvbi5jOjI2MQorIzogb3B0aW9uLmM6MzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkNsZWFyIEROUyBjYWNoZSB3aGVuIHJlbG9hZGluZyAlcy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjYyCisjOiBvcHRpb24uYzozMjEKIG1zZ2lkICJJZ25vcmUgaG9zdG5hbWVzIHByb3ZpZGVkIGJ5IERIQ1AgY2xpZW50cy4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjYzCisjOiBvcHRpb24uYzozMjIKK21zZ2lkICJEbyBOT1QgcmV1c2UgZmlsZW5hbWUgYW5kIHNlcnZlciBmaWVsZHMgZm9yIGV4dHJhIERIQ1Agb3B0aW9ucy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzIzCiBtc2dpZCAiRW5hYmxlIGludGVncmF0ZWQgcmVhZC1vbmx5IFRGVFAgc2VydmVyLiIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyNjQKKyM6IG9wdGlvbi5jOjMyNAogbXNnaWQgIkV4cG9ydCBmaWxlcyBieSBURlRQIG9ubHkgZnJvbSB0aGUgc3BlY2lmaWVkIHN1YnRyZWUuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI2NQorIzogb3B0aW9uLmM6MzI1CiBtc2dpZCAiQWRkIGNsaWVudCBJUCBhZGRyZXNzIHRvIHRmdHAtcm9vdC4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjY2CisjOiBvcHRpb24uYzozMjYKIG1zZ2lkICJBbGxvdyBhY2Nlc3Mgb25seSB0byBmaWxlcyBvd25lZCBieSB0aGUgdXNlciBydW5uaW5nIGRuc21hc3EuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI2NworIzogb3B0aW9uLmM6MzI3CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJNYXhpbXVtIG51bWJlciBvZiBjb25uY3VycmVudCBURlRQIHRyYW5zZmVycyAoZGVmYXVsdHMgdG8gJXMpLiIKIG1zZ3N0ciAiU3BlY2lmaWPEgyBudW3Eg3J1bCBtYXhpbSBkZSDDrm1wcnVtdXR1cmkgREhDUCAoaW1wbGljaXQgJXMpLiIKIAotIzogb3B0aW9uLmM6MjY4CisjOiBvcHRpb24uYzozMjgKIG1zZ2lkICJEaXNhYmxlIHRoZSBURlRQIGJsb2Nrc2l6ZSBleHRlbnNpb24uIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjI2OQorIzogb3B0aW9uLmM6MzI5Cittc2dpZCAiRXBoZW1lcmFsIHBvcnQgcmFuZ2UgZm9yIHVzZSBieSBURlRQIHRyYW5zZmVycy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzMwCiBtc2dpZCAiRXh0cmEgbG9nZ2luZyBmb3IgREhDUC4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MjcwCisjOiBvcHRpb24uYzozMzEKIG1zZ2lkICJFbmFibGUgYXN5bmMuIGxvZ2dpbmc7IG9wdGlvbmFsbHkgc2V0IHF1ZXVlIGxlbmd0aC4iCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6NTAxCisjOiBvcHRpb24uYzozMzIKK21zZ2lkICJTdG9wIEROUyByZWJpbmRpbmcuIEZpbHRlciBwcml2YXRlIElQIHJhbmdlcyB3aGVuIHJlc29sdmluZy4iCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MzMzCittc2dpZCAiQWx3YXlzIHBlcmZvcm0gRE5TIHF1ZXJpZXMgdG8gYWxsIHNlcnZlcnMuIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjMzNAorbXNnaWQgIlNldCB0YWcgaWYgY2xpZW50IGluY2x1ZGVzIG9wdGlvbiBpbiByZXF1ZXN0LiIKK21zZ3N0ciAiIgorCisjOiBvcHRpb24uYzo1ODUKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIlVzYWdlOiBkbnNtYXNxIFtvcHRpb25zXVxuIgpAQCAtNDMwLDE3MiArNDc5LDE5MCBAQAogIlV0aWxpemFyZTogZG5zbWFzcSBbb3DFo2l1bmldXG4iCiAiXG4iCiAKLSM6IG9wdGlvbi5jOjUwMworIzogb3B0aW9uLmM6NTg3CiAjLCBjLWZvcm1hdAogbXNnaWQgIlVzZSBzaG9ydCBvcHRpb25zIG9ubHkgb24gdGhlIGNvbW1hbmQgbGluZS5cbiIKIG1zZ3N0ciAiRm9sb3NpxaNpIG9wxaNpdW5pbGUgcHJlc2N1cnRhdGUgZG9hciDDrm4gbGluaWUgZGUgY29tYW5kxIMuXG4iCiAKLSM6IG9wdGlvbi5jOjUwNQorIzogb3B0aW9uLmM6NTg5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlZhbGlkIG9wdGlvbnMgYXJlIDpcbiIKIG1zZ3N0ciAiT3DFo2l1bmlsZSB2YWxpZGUgc3VudDpcbiIKIAotIzogb3B0aW9uLmM6NTI2CisjOiBvcHRpb24uYzo2MTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiS25vd24gREhDUCBvcHRpb25zOlxuIgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjU5OQorIzogb3B0aW9uLmM6NjgzCiBtc2dpZCAiYmFkIGRoY3Atb3B0aW9uIgogbXNnc3RyICJkaGNwLW9wdGlvbiBpbnZhbGlkIgogCi0jOiBvcHRpb24uYzo2NTUKKyM6IG9wdGlvbi5jOjczOQogIywgZnV6enkKIG1zZ2lkICJiYWQgSVAgYWRkcmVzcyIKIG1zZ3N0ciAiY2l0ZXNjICVzIC0gJWQgYWRyZXNlIgogCi0jOiBvcHRpb24uYzo3NTMKKyM6IG9wdGlvbi5jOjgzNwogbXNnaWQgImJhZCBkb21haW4gaW4gZGhjcC1vcHRpb24iCiBtc2dzdHIgImRvbWVuaXUgRE5TIGludmFsaWQgw65uIGRlY2xhcmHFo2lhIGRoY3Atb3B0aW9uIgogCi0jOiBvcHRpb24uYzo4MDkKKyM6IG9wdGlvbi5jOjg5NQogbXNnaWQgImRoY3Atb3B0aW9uIHRvbyBsb25nIgogbXNnc3RyICJkZWNsYXJhcmVhIGRoY3Atb3B0aW9uIGVzdGUgcHJlYSBsdW5nxIMiCiAKLSM6IG9wdGlvbi5jOjg1MworIzogb3B0aW9uLmM6OTQyCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgYWNjZXNzIGRpcmVjdG9yeSAlczogJXMiCiBtc2dzdHIgIm51IHBvdCBjaXRpICVzOiAlcyIKIAotIzogb3B0aW9uLmM6ODcyIHRmdHAuYzozMTMKKyM6IG9wdGlvbi5jOjk2MSB0ZnRwLmM6MzQzCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgYWNjZXNzICVzOiAlcyIKIG1zZ3N0ciAibnUgcG90IGNpdGkgJXM6ICVzIgogCi0jOiBvcHRpb24uYzo5MTMKKyM6IG9wdGlvbi5jOjk5OAogbXNnaWQgIm9ubHkgb25lIGRoY3AtaG9zdHNmaWxlIGFsbG93ZWQiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6OTYyCisjOiBvcHRpb24uYzoxMDA1Cittc2dpZCAib25seSBvbmUgZGhjcC1vcHRzZmlsZSBhbGxvd2VkIgorbXNnc3RyICIiCisKKyM6IG9wdGlvbi5jOjEwNDkKIG1zZ2lkICJiYWQgTVggcHJlZmVyZW5jZSIKIG1zZ3N0ciAicHJlZmVyaW7Fo8SDIE1YIGludmFsaWTEgyIKIAotIzogb3B0aW9uLmM6OTcxCisjOiBvcHRpb24uYzoxMDUzCiBtc2dpZCAiYmFkIE1YIG5hbWUiCiBtc2dzdHIgIm51bWUgTVggaW52YWxpZCIKIAotIzogb3B0aW9uLmM6OTg5CisjOiBvcHRpb24uYzoxMDY3CiBtc2dpZCAiYmFkIE1YIHRhcmdldCIKIG1zZ3N0ciAixaNpbnTEgyBNWCBpbnZhbGlkxIMiCiAKLSM6IG9wdGlvbi5jOjEwMDEKKyM6IG9wdGlvbi5jOjEwNzgKIG1zZ2lkICJjYW5ub3QgcnVuIHNjcmlwdHMgdW5kZXIgdUNsaW51eCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxMTk2IG9wdGlvbi5jOjEyMDcKKyM6IG9wdGlvbi5jOjEyNjUgb3B0aW9uLmM6MTI3MwogbXNnaWQgImJhZCBwb3J0IgogbXNnc3RyICJwb3J0IGludmFsaWQiCiAKLSM6IG9wdGlvbi5jOjEzNDkKKyM6IG9wdGlvbi5jOjEyOTMgb3B0aW9uLmM6MTMxOAorbXNnaWQgImludGVyZmFjZSBiaW5kaW5nIG5vdCBzdXBwb3J0ZWQiCittc2dzdHIgIiIKKworIzogb3B0aW9uLmM6MTQyNworIywgZnV6enkKK21zZ2lkICJiYWQgcG9ydCByYW5nZSIKK21zZ3N0ciAicG9ydCBpbnZhbGlkIgorCisjOiBvcHRpb24uYzoxNDQ0CiBtc2dpZCAiYmFkIGJyaWRnZS1pbnRlcmZhY2UiCiBtc2dzdHIgIiIKIAotIzogb3B0aW9uLmM6MTM5MQorIzogb3B0aW9uLmM6MTQ4NQogbXNnaWQgImJhZCBkaGNwLXJhbmdlIgogbXNnc3RyICJkaGNwLXJhbmdlIGludmFsaWQiCiAKLSM6IG9wdGlvbi5jOjE0MTkKKyM6IG9wdGlvbi5jOjE1MTEKIG1zZ2lkICJvbmx5IG9uZSBuZXRpZCB0YWcgYWxsb3dlZCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoxNDYxCisjOiBvcHRpb24uYzoxNTUxCiBtc2dpZCAiaW5jb25zaXN0ZW50IERIQ1AgcmFuZ2UiCiBtc2dzdHIgImRvbWVuaXUgREhDUCBpbmNvbnNpc3RlbnQiCiAKLSM6IG9wdGlvbi5jOjE2MzcKKyM6IG9wdGlvbi5jOjE3MTkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIERIQ1AgaG9zdCBuYW1lIgogbXNnc3RyICJudW1lIE1YIGludmFsaWQiCiAKLSM6IG9wdGlvbi5jOjE4NjEKKyM6IG9wdGlvbi5jOjE5NTkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIGludGVyZmFjZSBuYW1lIgogbXNnc3RyICJudW1lIE1YIGludmFsaWQiCiAKLSM6IG9wdGlvbi5jOjE4ODUKKyM6IG9wdGlvbi5jOjE5NzkKICMsIGZ1enp5CiBtc2dpZCAiYmFkIFBUUiByZWNvcmQiCiBtc2dzdHIgIsOubnJlZ2lzdHJhcmUgU1JWIGludmFsaWTEgyIKIAotIzogb3B0aW9uLmM6MTkwOQotbXNnaWQgImJhZCBUWFQgcmVjb3JkIgotbXNnc3RyICLDrm5yZWdpc3RyYXJlIFRYVCBpbnZhbGlkxIMiCi0KLSM6IG9wdGlvbi5jOjE5NDEKKyM6IG9wdGlvbi5jOjE5OTkKIG1zZ2lkICJUWFQgcmVjb3JkIHN0cmluZyB0b28gbG9uZyIKIG1zZ3N0ciAixZ9pcnVsIGRlIGNhcmFjdGVyZSBwZW50cnUgw65ucmVnaXN0cmFyZWEgVFhUIGVzdGUgcHJlYSBsdW5nIgogCi0jOiBvcHRpb24uYzoxOTgwCisjOiBvcHRpb24uYzoyMDAzCittc2dpZCAiYmFkIFRYVCByZWNvcmQiCittc2dzdHIgIsOubnJlZ2lzdHJhcmUgVFhUIGludmFsaWTEgyIKKworIzogb3B0aW9uLmM6MjA2MwogbXNnaWQgImJhZCBTUlYgcmVjb3JkIgogbXNnc3RyICLDrm5yZWdpc3RyYXJlIFNSViBpbnZhbGlkxIMiCiAKLSM6IG9wdGlvbi5jOjE5OTIKKyM6IG9wdGlvbi5jOjIwNzIKIG1zZ2lkICJiYWQgU1JWIHRhcmdldCIKIG1zZ3N0ciAixaNpbnTEgyBTUlYgaW52YWxpZMSDIgogCi0jOiBvcHRpb24uYzoyMDAzCisjOiBvcHRpb24uYzoyMDgwCiBtc2dpZCAiaW52YWxpZCBwb3J0IG51bWJlciIKIG1zZ3N0ciAibnVtxINyIGRlIHBvcnQgaW52YWxpZCIKIAotIzogb3B0aW9uLmM6MjAxMworIzogb3B0aW9uLmM6MjA4NwogbXNnaWQgImludmFsaWQgcHJpb3JpdHkiCiBtc2dzdHIgInByaW9yaXRhdGUgaW52YWxpZMSDIgogCi0jOiBvcHRpb24uYzoyMDIzCisjOiBvcHRpb24uYzoyMDk0CiBtc2dpZCAiaW52YWxpZCB3ZWlnaHQiCiBtc2dzdHIgInBvbmRlcmUgaW52YWxpZMSDIgogCi0jOiBvcHRpb24uYzoyMDU0CisjOiBvcHRpb24uYzoyMTMwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZpbGVzIG5lc3RlZCB0b28gZGVlcCBpbiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMDYyIHRmdHAuYzo0NjcKKyM6IG9wdGlvbi5jOjIxMzggdGZ0cC5jOjQ5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcmVhZCAlczogJXMiCiBtc2dzdHIgIm51IHBvdCBjaXRpICVzOiAlcyIKIAotIzogb3B0aW9uLmM6MjExNAorIzogb3B0aW9uLmM6MjE5OQogbXNnaWQgIm1pc3NpbmcgXCIiCiBtc2dzdHIgImxpcHNlxZ90ZSBcIiIKIAotIzogb3B0aW9uLmM6MjE2MQorIzogb3B0aW9uLmM6MjI0NgogbXNnaWQgImJhZCBvcHRpb24iCiBtc2dzdHIgIm9wxaNpdW5lIGludmFsaWTEgyIKIAotIzogb3B0aW9uLmM6MjE2MworIzogb3B0aW9uLmM6MjI0OAogbXNnaWQgImV4dHJhbmVvdXMgcGFyYW1ldGVyIgogbXNnc3RyICJwYXJhbWV0cnUgbmVyZWN1bm9zY3V0IgogCi0jOiBvcHRpb24uYzoyMTY1CisjOiBvcHRpb24uYzoyMjUwCiBtc2dpZCAibWlzc2luZyBwYXJhbWV0ZXIiCiBtc2dzdHIgInBhcmFtZXRydSBsaXBzYSIKIAotIzogb3B0aW9uLmM6MjE3MworIzogb3B0aW9uLmM6MjI1OAogbXNnaWQgImVycm9yIgogbXNnc3RyICJlcm9hcmUiCiAKLSM6IG9wdGlvbi5jOjIxNzkKKyM6IG9wdGlvbi5jOjIyNjQKICMsIGMtZm9ybWF0CiBtc2dpZCAiJXMgYXQgbGluZSAlZCBvZiAlJXMiCiBtc2dzdHIgIiVzIGxhIGxpbmlhICVkIGRpbiAlJXMiCiAKLSM6IG9wdGlvbi5jOjIyNTIKKyM6IG9wdGlvbi5jOjIzMDQgb3B0aW9uLmM6MjMzNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAicmVhZCAlcyIKK21zZ3N0ciAiY2l0ZXNjICVzIgorCisjOiBvcHRpb24uYzoyNDAwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRuc21hc3EgdmVyc2lvbiAlcyAgJXNcbiIKIG1zZ3N0ciAiZG5zbWFzcSB2ZXJzaXVuZWEgJXMgICVzXG4iCiAKLSM6IG9wdGlvbi5jOjIyNTMKKyM6IG9wdGlvbi5jOjI0MDEKICMsIGMtZm9ybWF0CiBtc2dpZCAiIgogIkNvbXBpbGUgdGltZSBvcHRpb25zICVzXG4iCkBAIC02MDQsNjU3ICs2NzEsNjk0IEBACiAiT3DFo2l1bmkgY3UgY2FyZSBhIGZvc3QgY29tcGlsYXQgJXNcbiIKICJcbiIKIAotIzogb3B0aW9uLmM6MjI1NAorIzogb3B0aW9uLmM6MjQwMgogIywgYy1mb3JtYXQKIG1zZ2lkICJUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS5cbiIKIG1zZ3N0ciAiQWNlc3QgcHJvZ3JhbSB2aW5lIEbEglLEgiBOSUNJIE8gR0FSQU7FoklFLlxuIgogCi0jOiBvcHRpb24uYzoyMjU1CisjOiBvcHRpb24uYzoyNDAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRuc21hc3EgaXMgZnJlZSBzb2Z0d2FyZSwgYW5kIHlvdSBhcmUgd2VsY29tZSB0byByZWRpc3RyaWJ1dGUgaXRcbiIKIG1zZ3N0ciAiRG5zbWFzcSBlc3RlIHVuIHByb2dyYW0gZ3JhdHVpdCwgc3VudGXFo2kgaW52aXRhxaNpIHPEgy1sIHJlZGlzdHJpYnVpxaNpXG4iCiAKLSM6IG9wdGlvbi5jOjIyNTYKLSMsIGMtZm9ybWF0Ci1tc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyLlxuIgorIzogb3B0aW9uLmM6MjQwNAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgdmVyc2lvbiAyIG9yIDMuXG4iCiBtc2dzdHIgIsOubiB0ZXJtZW5paSBMaWNlbsWjZWkgcHVibGljZSBnZW5lcmFsZSBHTlUsIHZlcnNpdW5lYSAyLlxuIgogCi0jOiBvcHRpb24uYzoyMjY3CisjOiBvcHRpb24uYzoyNDE1CiBtc2dpZCAidHJ5IC0taGVscCIKIG1zZ3N0ciAiIgogCi0jOiBvcHRpb24uYzoyMjY5CisjOiBvcHRpb24uYzoyNDE3CiBtc2dpZCAidHJ5IC13IgogbXNnc3RyICIiCiAKLSM6IG9wdGlvbi5jOjIyNzIKKyM6IG9wdGlvbi5jOjI0MjAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImJhZCBjb21tYW5kIGxpbmUgb3B0aW9uczogJXMiCiBtc2dzdHIgIm9wxaNpdW5pIMOubiBsaW5pZSBkZSBjb21hbmTEgyBpbnZhbGlkZTogJXMuIgogCi0jOiBvcHRpb24uYzoyMzEzCisjOiBvcHRpb24uYzoyNDYxCiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBnZXQgaG9zdC1uYW1lOiAlcyIKIG1zZ3N0ciAibnUgcG90IGNpdGkgbnVtZWxlIG1hxZ9pbmlpOiAlcyIKIAotIzogb3B0aW9uLmM6MjM0MQorIzogb3B0aW9uLmM6MjQ4OQogbXNnaWQgIm9ubHkgb25lIHJlc29sdi5jb25mIGZpbGUgYWxsb3dlZCBpbiBuby1wb2xsIG1vZGUuIgogbXNnc3RyICJzZSBwZXJtaXRlIHVuIHNpbmd1ciBmacWfaWVyIHJlc29sdi5jb25mIMOubiBtb2R1bCBuby1wb2xsIgogCi0jOiBvcHRpb24uYzoyMzUxCisjOiBvcHRpb24uYzoyNDk5CiBtc2dpZCAibXVzdCBoYXZlIGV4YWN0bHkgb25lIHJlc29sdi5jb25mIHRvIHJlYWQgZG9tYWluIGZyb20uIgogbXNnc3RyICIiCiAiYW0gbmV2b2llIGRlIHVuIHNpbmd1ciByZXNvbHYuY29uZiBkaW4gY2FyZSBzxIMgY2l0ZXNjIG51bWVsZSBkb21lbml1bHVpLiIKIAotIzogb3B0aW9uLmM6MjM1NCBuZXR3b3JrLmM6NTQ5CisjOiBvcHRpb24uYzoyNTAyIG5ldHdvcmsuYzo2NDAKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byByZWFkICVzOiAlcyIKIG1zZ3N0ciAibnUgcG90IGNpdGkgJXM6ICVuIgogCi0jOiBvcHRpb24uYzoyMzcyCisjOiBvcHRpb24uYzoyNTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIHNlYXJjaCBkaXJlY3RpdmUgZm91bmQgaW4gJXMiCiBtc2dzdHIgIm51IHMtYSBnxINzaXQgbmljaSB1biBjcml0ZXJpdSBkZSBjxIN1dGFyZSDDrm4gJXMiCiAKLSM6IGZvcndhcmQuYzozNzYKKyM6IGZvcndhcmQuYzozODEKICMsIGMtZm9ybWF0CiBtc2dpZCAibmFtZXNlcnZlciAlcyByZWZ1c2VkIHRvIGRvIGEgcmVjdXJzaXZlIHF1ZXJ5IgogbXNnc3RyICJzZXJ2ZXJ1bCBETlMgJXMgcmVmdXrEgyBpbnRlcm9nxINyaWxlIHJlY3Vyc2l2ZSIKIAotIzogaXNjLmM6NzMgZG5zbWFzcS5jOjcyMworIzogZm9yd2FyZC5jOjQwOQorbXNnaWQgInBvc3NpYmxlIEROUy1yZWJpbmQgYXR0YWNrIGRldGVjdGVkIgorbXNnc3RyICIiCisKKyM6IGlzYy5jOjc3IGRuc21hc3EuYzo3NDcKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBhY2Nlc3MgJXM6ICVzIgogbXNnc3RyICJhY2Nlc2FyZWEgc2VydmVydWx1aSAlcyBhIGXFn3VhdDogJW4iCiAKLSM6IGlzYy5jOjg5CisjOiBpc2MuYzo5MwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGxvYWQgJXM6ICVzIgogbXNnc3RyICJudSBwb3Qgw65uY8SDcmNhICVzOiAlbiIKIAotIzogaXNjLmM6OTMgZG5zbWFzcS5jOjc0NQorIzogaXNjLmM6OTcgZG5zbWFzcS5jOjc2OQogIywgYy1mb3JtYXQKIG1zZ2lkICJyZWFkaW5nICVzIgogbXNnc3RyICJjaXRlc2MgJXMiCiAKLSM6IGlzYy5jOjExNQorIzogaXNjLmM6MTE5CiAjLCBjLWZvcm1hdAogbXNnaWQgImJhZCBuYW1lIGluICVzIgogbXNnc3RyICJudW1lIGludmFsaWQgw65uICVzIgogCi0jOiBpc2MuYzoxNzcKKyM6IGlzYy5jOjE4MQogIywgYy1mb3JtYXQKIG1zZ2lkICJJZ25vcmluZyBESENQIGxlYXNlIGZvciAlcyBiZWNhdXNlIGl0IGhhcyBhbiBpbGxlZ2FsIGRvbWFpbiBwYXJ0IgogbXNnc3RyICLDjm1wcnVtdXR1bCBESENQIHBlbnRydSAlcyB2YSBmaSBpZ25vcmF0IGRlb2FyZWNlIGFyZSBkb21lbml1IGludmFsaWQiCiAKLSM6IG5ldHdvcmsuYzo0MQorIzogbmV0d29yay5jOjQ1CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJ1bmtub3duIGludGVyZmFjZSAlcyBpbiBicmlkZ2UtaW50ZXJmYWNlIgogbXNnc3RyICJpbnRlcmZhxaPEgyBuZWN1bm9zY3V0xIMgJXMiCiAKLSM6IG5ldHdvcmsuYzozNzcgZG5zbWFzcS5jOjE3MAorIzogbmV0d29yay5jOjM4OSBkbnNtYXNxLmM6MTgwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgbGlzdGVuaW5nIHNvY2tldDogJXMiCiBtc2dzdHIgImNyZWVhcmVhIHNvY2tldC11bHVpIGRlIGFzY3VsdGFyZSBhIGXFn3VhdDogJXMiCiAKLSM6IG5ldHdvcmsuYzozODQKKyM6IG5ldHdvcmsuYzozOTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHNldCBJUFY2IG9wdGlvbnMgb24gbGlzdGVuaW5nIHNvY2tldDogJXMiCiBtc2dzdHIgImNvbmZpZ3VyYXJlYSBvcMWjaXVuaWxvciBJUHY2IGEgZcWfdWF0IHBlIHNvY2tldC11bCBkZSBhc2N1bHRhcmU6ICVzIgogCi0jOiBuZXR3b3JrLmM6NDAyCisjOiBuZXR3b3JrLmM6NDE1CiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBiaW5kIGxpc3RlbmluZyBzb2NrZXQgZm9yICVzOiAlcyIKIG1zZ3N0ciAiYWN0aXZhcmVhIHNvY2tldC11bHVpIGRlIGFzY3VsdGFyZSBwZW50cnUgJXMgYSBlxZ91YXQ6ICVzIgogCi0jOiBuZXR3b3JrLmM6NDEwCisjOiBuZXR3b3JrLmM6NDIwCiAjLCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBsaXN0ZW4gb24gc29ja2V0OiAlcyIKIG1zZ3N0ciAiYXNjdWx0YXJlYSBwZSBzb2NrZXQgYSBlxZ91YXQ6ICVzIgogCi0jOiBuZXR3b3JrLmM6NDIxCisjOiBuZXR3b3JrLmM6NDMyCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gY3JlYXRlIFRGVFAgc29ja2V0OiAlcyIKIG1zZ3N0ciAiY3JlZWFyZWEgc29ja2V0LXVsdWkgZGUgYXNjdWx0YXJlIGEgZcWfdWF0OiAlcyIKIAotIzogbmV0d29yay5jOjQ5MworIzogbmV0d29yay5jOjU0OQorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAiZmFpbGVkIHRvIGJpbmQgc2VydmVyIHNvY2tldCBmb3IgJXM6ICVzIgorbXNnc3RyICJhY3RpdmFyZWEgc29ja2V0LXVsdWkgZGUgYXNjdWx0YXJlIHBlbnRydSAlcyBhIGXFn3VhdDogJXMiCisKKyM6IG5ldHdvcmsuYzo1ODIKICMsIGMtZm9ybWF0CiBtc2dpZCAiaWdub3JpbmcgbmFtZXNlcnZlciAlcyAtIGxvY2FsIGludGVyZmFjZSIKIG1zZ3N0ciAiaWdub3LEg20gc2VydmVydWwgRE5TICVzIC0gaW50ZXJmYcWjxIMgbG9jYWzEgyIKIAotIzogbmV0d29yay5jOjUwMgorIzogbmV0d29yay5jOjU5MQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiaWdub3JpbmcgbmFtZXNlcnZlciAlcyAtIGNhbm5vdCBtYWtlL2JpbmQgc29ja2V0OiAlcyIKIG1zZ3N0ciAiaWdub3LEg20gc2VydmVydWwgRE5TICVzIC0gbnUgcG90IGNyZWVhL2FjdGl2YSBzb2NrZXQtdWw6ICVzIgogCi0jOiBuZXR3b3JrLmM6NTE3CisjOiBuZXR3b3JrLmM6NjA2CiBtc2dpZCAidW5xdWFsaWZpZWQiCiBtc2dzdHIgImludmFsaWQiCiAKLSM6IG5ldHdvcmsuYzo1MTcKKyM6IG5ldHdvcmsuYzo2MDYKIG1zZ2lkICJuYW1lcyIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTE5CisjOiBuZXR3b3JrLmM6NjA4CiBtc2dpZCAiZGVmYXVsdCIKIG1zZ3N0ciAiIgogCi0jOiBuZXR3b3JrLmM6NTIxCisjOiBuZXR3b3JrLmM6NjEwCiBtc2dpZCAiZG9tYWluIgogbXNnc3RyICJkb21lbml1IgogCi0jOiBuZXR3b3JrLmM6NTI0CisjOiBuZXR3b3JrLmM6NjEzCiAjLCBjLWZvcm1hdAogbXNnaWQgInVzaW5nIGxvY2FsIGFkZHJlc3NlcyBvbmx5IGZvciAlcyAlcyIKIG1zZ3N0ciAiZm9sb3NpbSBhZHJlc2VsZSBsb2NhbGUgZG9hciBwZW50cnUgJVMgJXMiCiAKLSM6IG5ldHdvcmsuYzo1MjYKKyM6IG5ldHdvcmsuYzo2MTUKICMsIGMtZm9ybWF0CiBtc2dpZCAidXNpbmcgbmFtZXNlcnZlciAlcyMlZCBmb3IgJXMgJXMiCiBtc2dzdHIgImZvbG9zaW0gc2VydmVydWwgRE5TICVzIyVkIHBlbnRydSAlcyAlcyIKIAotIzogbmV0d29yay5jOjUyOQorIzogbmV0d29yay5jOjYxOAorIywgZnV6enksIGMtZm9ybWF0Cittc2dpZCAidXNpbmcgbmFtZXNlcnZlciAlcyMlZCh2aWEgJXMpIgorbXNnc3RyICJmb2xvc2ltIHNlcnZlcnVsIEROUyAlcyMlZCIKKworIzogbmV0d29yay5jOjYyMAogIywgYy1mb3JtYXQKIG1zZ2lkICJ1c2luZyBuYW1lc2VydmVyICVzIyVkIgogbXNnc3RyICJmb2xvc2ltIHNlcnZlcnVsIEROUyAlcyMlZCIKIAotIzogZG5zbWFzcS5jOjEwNgorIzogZG5zbWFzcS5jOjExMAogbXNnaWQgIiIKICJJU0MgZGhjcGQgaW50ZWdyYXRpb24gbm90IGF2YWlsYWJsZTogc2V0IEhBVkVfSVNDX1JFQURFUiBpbiBzcmMvY29uZmlnLmgiCiBtc2dzdHIgIiIKICJJbnRlZ3JhcmVhIGN1IElTQyBkaGNwZCBudSBlc3RlIGRpc3BvbmliaWzEgzpwdW5lxaNpIEhBVkVfSVNDX0hFQURFUiDDrm4gc3JjLyIKICJjb25maWcuaCIKIAotIzogZG5zbWFzcS5jOjEyOAorIzogZG5zbWFzcS5jOjEzMgogIywgZnV6enkKIG1zZ2lkICJURlRQIHNlcnZlciBub3QgYXZhaWxhYmxlOiBzZXQgSEFWRV9URlRQIGluIHNyYy9jb25maWcuaCIKIG1zZ3N0ciAiREJ1cyBudSBlc3RlIGRpc3BvbmliaWw6IHB1bmXFo2kgSEFWRV9EQlVTIGluIHNyYy9jb25maWcuaCIKIAotIzogZG5zbWFzcS5jOjE0MgorIzogZG5zbWFzcS5jOjEzNworbXNnaWQgImFzeWNocm9ub3VzIGxvZ2dpbmcgaXMgbm90IGF2YWlsYWJsZSB1bmRlciBTb2xhcmlzIgorbXNnc3RyICIiCisKKyM6IGRuc21hc3EuYzoxNTEKIG1zZ2lkICJtdXN0IHNldCBleGFjdGx5IG9uZSBpbnRlcmZhY2Ugb24gYnJva2VuIHN5c3RlbXMgd2l0aG91dCBJUF9SRUNWSUYiCiBtc2dzdHIgIiIKICJ0cmVidWllIHNwZWNpZmljYXTEgyBleGFjdCBvIHNpbmd1csSDIGludGVyZmHFo8SDIHBlIHNpc3RlbWVsZSBkZWZlY3RlY2UgbnUgYXUgIgogIklQX1JFQ1ZJRiIKIAotIzogZG5zbWFzcS5jOjE1MgorIzogZG5zbWFzcS5jOjE2MQogIywgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gZmluZCBsaXN0IG9mIGludGVyZmFjZXM6ICVzIgogbXNnc3RyICJlbnVtZXJhcmVhIGludGVyZmXFo2Vsb3IgYSBlxZ91YXQ6ICVzIgogCi0jOiBkbnNtYXNxLmM6MTYwCisjOiBkbnNtYXNxLmM6MTY5CiAjLCBjLWZvcm1hdAogbXNnaWQgInVua25vd24gaW50ZXJmYWNlICVzIgogbXNnc3RyICJpbnRlcmZhxaPEgyBuZWN1bm9zY3V0xIMgJXMiCiAKLSM6IGRuc21hc3EuYzoxNjYKKyM6IGRuc21hc3EuYzoxNzUKICMsIGMtZm9ybWF0CiBtc2dpZCAibm8gaW50ZXJmYWNlIHdpdGggYWRkcmVzcyAlcyIKIG1zZ3N0ciAibnUgZXhpc3RhIGludGVyZmHFo8SDIHBlbnRydSBhZHJlc2EgJXMiCiAKLSM6IGRuc21hc3EuYzoxODEgZG5zbWFzcS5jOjUzOAorIzogZG5zbWFzcS5jOjE5MiBkbnNtYXNxLmM6NTYxCiAjLCBjLWZvcm1hdAogbXNnaWQgIkRCdXMgZXJyb3I6ICVzIgogbXNnc3RyICJlcm9hcmUgREJ1czogJXMiCiAKLSM6IGRuc21hc3EuYzoxODQKKyM6IGRuc21hc3EuYzoxOTUKIG1zZ2lkICJEQnVzIG5vdCBhdmFpbGFibGU6IHNldCBIQVZFX0RCVVMgaW4gc3JjL2NvbmZpZy5oIgogbXNnc3RyICJEQnVzIG51IGVzdGUgZGlzcG9uaWJpbDogcHVuZcWjaSBIQVZFX0RCVVMgaW4gc3JjL2NvbmZpZy5oIgogCi0jOiBkbnNtYXNxLmM6MjE2CisjOiBkbnNtYXNxLmM6MjA0CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIHBpcGU6ICVzIgogbXNnc3RyICJudSBwb3QgY2l0aSAlczogJXMiCiAKLSM6IGRuc21hc3EuYzoyMzcKKyM6IGRuc21hc3EuYzoyMjUKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGZvcmsgaW50byBiYWNrZ3JvdW5kOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6MzM1CisjOiBkbnNtYXNxLmM6MjM5CisjLCBjLWZvcm1hdAorbXNnaWQgImNhbm5vdCBjaGRpciB0byBmaWxlc3lzdGVtIHJvb3Q6ICVzIgorbXNnc3RyICIiCisKKyM6IGRuc21hc3EuYzozNDkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgInN0YXJ0ZWQsIHZlcnNpb24gJXMgRE5TIGRpc2FibGVkIgorbXNnc3RyICJhbSBwb3JuaXQsIHZlcnNpdW5lYSAlcyBtZW1vcmllIHRlbXBvcmFyxIMgZGV6YWN0aXZhdMSDIgorCisjOiBkbnNtYXNxLmM6MzUxCiAjLCBjLWZvcm1hdAogbXNnaWQgInN0YXJ0ZWQsIHZlcnNpb24gJXMgY2FjaGVzaXplICVkIgogbXNnc3RyICJhbSBwb25pdCwgdmVyc2l1bmVhICVzIG1lbW9yaWUgdGVtcG9yYXLEgyAlZCIKIAotIzogZG5zbWFzcS5jOjMzNworIzogZG5zbWFzcS5jOjM1MwogIywgYy1mb3JtYXQKIG1zZ2lkICJzdGFydGVkLCB2ZXJzaW9uICVzIGNhY2hlIGRpc2FibGVkIgogbXNnc3RyICJhbSBwb3JuaXQsIHZlcnNpdW5lYSAlcyBtZW1vcmllIHRlbXBvcmFyxIMgZGV6YWN0aXZhdMSDIgogCi0jOiBkbnNtYXNxLmM6MzM5CisjOiBkbnNtYXNxLmM6MzU1CiAjLCBjLWZvcm1hdAogbXNnaWQgImNvbXBpbGUgdGltZSBvcHRpb25zOiAlcyIKIG1zZ3N0ciAiY29tcGlsYXQgY3Ugb3DFo2l1bmlsZTogJXMiCiAKLSM6IGRuc21hc3EuYzozNDUKKyM6IGRuc21hc3EuYzozNjEKIG1zZ2lkICJEQnVzIHN1cHBvcnQgZW5hYmxlZDogY29ubmVjdGVkIHRvIHN5c3RlbSBidXMiCiBtc2dzdHIgInN1cG9ydHVsIERCdXMgYWN0aXY6IHN1bnQgY29uZWN0YXQgbGEgbWFnaXN0cmFsYSBzaXN0ZW0iCiAKLSM6IGRuc21hc3EuYzozNDcKKyM6IGRuc21hc3EuYzozNjMKIG1zZ2lkICJEQnVzIHN1cHBvcnQgZW5hYmxlZDogYnVzIGNvbm5lY3Rpb24gcGVuZGluZyIKIG1zZ3N0ciAic3Vwb3J0dWwgREJ1cyBhY3RpdjogYcWfdGVwdCBjb25leGl1bmVhIGxhIG1hZ2lzdHJhbMSDIgogCi0jOiBkbnNtYXNxLmM6MzUyCisjOiBkbnNtYXNxLmM6MzY4CiBtc2dpZCAic2V0dGluZyAtLWJpbmQtaW50ZXJmYWNlcyBvcHRpb24gYmVjYXVzZSBvZiBPUyBsaW1pdGF0aW9ucyIKIG1zZ3N0ciAic3BlY2lmaWMgb3DFo2l1bmVhIC0tYmluZC1pbnRlcmZhY2VzIGRpbiBjYXV6YSBsaW1pdMSDcmlsb3IgU08iCiAKLSM6IGRuc21hc3EuYzozNTcKKyM6IGRuc21hc3EuYzozNzMKICMsIGMtZm9ybWF0CiBtc2dpZCAid2FybmluZzogaW50ZXJmYWNlICVzIGRvZXMgbm90IGN1cnJlbnRseSBleGlzdCIKIG1zZ3N0ciAiYXRlbsWjaWU6IGludGVyZmHFo2EgJXMgbnUgZXhpc3TEgyBtb21lbnRhbiIKIAotIzogZG5zbWFzcS5jOjM2MgorIzogZG5zbWFzcS5jOjM3OAogbXNnaWQgIndhcm5pbmc6IGlnbm9yaW5nIHJlc29sdi1maWxlIGZsYWcgYmVjYXVzZSBuby1yZXNvbHYgaXMgc2V0IgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzozNjUKKyM6IGRuc21hc3EuYzozODEKICMsIGZ1enp5CiBtc2dpZCAid2FybmluZzogbm8gdXBzdHJlYW0gc2VydmVycyBjb25maWd1cmVkIgogbXNnc3RyICJjb25maWd1csSDbSBzZXJ2ZXJlbGUgc3VwZXJpb2FyZSBwcmluIERidXMiCiAKLSM6IGRuc21hc3EuYzozNjkKKyM6IGRuc21hc3EuYzozODUKICMsIGMtZm9ybWF0CiBtc2dpZCAiYXN5bmNocm9ub3VzIGxvZ2dpbmcgZW5hYmxlZCwgcXVldWUgbGltaXQgaXMgJWQgbWVzc2FnZXMiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjM4MQorIzogZG5zbWFzcS5jOjM5NwogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQLCBzdGF0aWMgbGVhc2VzIG9ubHkgb24gJS4wcyVzLCBsZWFzZSB0aW1lICVzIgogbXNnc3RyICJESENQLCDDrm1wcnVtdXR1cmkgc3RhdGljZSBkb2FyIGPEg3RyZSAgJS4wcyVzLCB0aW1wdWwgcmXDrm5vaXJpaSAlcyIKIAotIzogZG5zbWFzcS5jOjM4MgorIzogZG5zbWFzcS5jOjM5OAogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQLCBJUCByYW5nZSAlcyAtLSAlcywgbGVhc2UgdGltZSAlcyIKIG1zZ3N0ciAiREhDUCwgZG9tZW5pdSBJUCAlcyAtLSAlcywgdGltcHVsIHJlw65ub2lyaWkgJXMiCiAKLSM6IGRuc21hc3EuYzozOTYKKyM6IGRuc21hc3EuYzo0MTIKIG1zZ2lkICJyb290IGlzICIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6Mzk2CisjOiBkbnNtYXNxLmM6NDEyCiAjLCBmdXp6eQogbXNnaWQgImVuYWJsZWQiCiBtc2dzdHIgImRlemFjdGl2YXQiCiAKLSM6IGRuc21hc3EuYzozOTgKKyM6IGRuc21hc3EuYzo0MTQKIG1zZ2lkICJzZWN1cmUgbW9kZSIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NDE4CisjOiBkbnNtYXNxLmM6NDQwCiAjLCBjLWZvcm1hdAogbXNnaWQgInJlc3RyaWN0aW5nIG1heGltdW0gc2ltdWx0YW5lb3VzIFRGVFAgdHJhbnNmZXJzIHRvICVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo0MjcKKyM6IGRuc21hc3EuYzo0NDkKICMsIGMtZm9ybWF0CiBtc2dpZCAid2FybmluZzogc2V0dGluZyBjYXBhYmlsaXRpZXMgZmFpbGVkOiAlcyIKIG1zZ3N0ciAiIgogCi0jOiBkbnNtYXNxLmM6NDI5CisjOiBkbnNtYXNxLmM6NDUxCiBtc2dpZCAicnVubmluZyBhcyByb290IgogbXNnc3RyICJydWxleiBjYSByb290IgogCi0jOiBkbnNtYXNxLmM6NTQwCisjOiBkbnNtYXNxLmM6NTYzCiBtc2dpZCAiY29ubmVjdGVkIHRvIHN5c3RlbSBEQnVzIgogbXNnc3RyICJtYWdpc3RyYWxhIHNpc3RlbSBEYnVzIGNvbmVjdGF0xIMiCiAKLSM6IGRuc21hc3EuYzo2NTkKKyM6IGRuc21hc3EuYzo2ODMKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hpbGQgcHJvY2VzcyBraWxsZWQgYnkgc2lnbmFsICVkIgogbXNnc3RyICIiCiAKLSM6IGRuc21hc3EuYzo2NjMKKyM6IGRuc21hc3EuYzo2ODcKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2hpbGQgcHJvY2VzcyBleGl0ZWQgd2l0aCBzdGF0dXMgJWQiCiBtc2dzdHIgIiIKIAotIzogZG5zbWFzcS5jOjY2NworIzogZG5zbWFzcS5jOjY5MQogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGV4ZWN1dGUgJXM6ICVzIgogbXNnc3RyICJhY2Nlc2FyZWEgc2VydmVydWx1aSAlcyBhIGXFn3VhdDogJW4iCiAKLSM6IGRuc21hc3EuYzo2NzEKKyM6IGRuc21hc3EuYzo2OTUKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byBjcmVhdGUgaGVscGVyOiAlcyIKIG1zZ3N0ciAibnUgcG90IGNpdGkgJXM6ICVuIgogCi0jOiBkbnNtYXNxLmM6NzA1CisjOiBkbnNtYXNxLmM6NzI5CiBtc2dpZCAiZXhpdGluZyBvbiByZWNlaXB0IG9mIFNJR1RFUk0iCiBtc2dzdHIgImFtIHByaW1pdCBTSUdURVJNLCBhbSB0ZXJtaW5hdCIKIAotIzogZG5zbWFzcS5jOjc1NgorIzogZG5zbWFzcS5jOjc4MAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAibm8gc2VydmVycyBmb3VuZCBpbiAlcywgd2lsbCByZXRyeSIKIG1zZ3N0ciAibnUgcy1hIGfEg3NpdCBuaWNpIHVuIGNyaXRlcml1IGRlIGPEg3V0YXJlIMOubiAlcyIKIAotIzogZGhjcC5jOjMyCisjOiBkaGNwLmM6MzgKICMsIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IGNyZWF0ZSBESENQIHNvY2tldCA6ICVzIgogbXNnc3RyICJudSBwb3QgY3JlZWEgc29ja2V0IERIQ1AgOiAlcyIKIAotIzogZGhjcC5jOjQxCisjOiBkaGNwLmM6NTAKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHNldCBvcHRpb25zIG9uIERIQ1Agc29ja2V0OiAlcyIKIG1zZ3N0ciAiY29uZmlndXJhcmVhIG9wxaNpdW5pbG9yIHNvY2tldHVsdWkgREhDUCBhIGXFn3VhdDogJXMiCiAKLSM6IGRoY3AuYzo1OQorIzogZGhjcC5jOjY4CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJmYWlsZWQgdG8gc2V0IFNPX1JFVVNFe0FERFJ8UE9SVH0gb24gREhDUCBzb2NrZXQ6ICVzIgogbXNnc3RyICJjb25maWd1cmFyZWEgU09fUkVVU0VBRERSIHBlIHNvY2tldC11bCBESENQIGEgZcWfdWF0OiAlcyIKIAotIzogZGhjcC5jOjcyCisjOiBkaGNwLmM6ODEKICMsIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIGJpbmQgREhDUCBzZXJ2ZXIgc29ja2V0OiAlcyIKIG1zZ3N0ciAiYWN0aXZhcmVhIHNvY2tldC11bHVpIHNlcnZlci11bHVpIERIQ1AgYSBlxZ91YXQ6ICVzIgogCi0jOiBkaGNwLmM6ODUKKyM6IGRoY3AuYzo5NAogIywgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIElDTVAgcmF3IHNvY2tldDogJXMuIgogbXNnc3RyICJudSBwb3QgY3JlZWEgc29ja2V0IElDTVAgcmF3OiAlcy4iCiAKLSM6IGRoY3AuYzoxMDAKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIKLW1zZ3N0ciAiYWRyZXPEgyBJUCBkdXBsaWNhdCAlcyDDrm4gZGVjbGFyYcWjaWEgZGhjcC1jb25maWcuIgotCi0jOiBkaGNwLmM6MTAzCi0jLCBmdXp6eSwgYy1mb3JtYXQKLW1zZ2lkICJpbGxlZ2FsIGRvbWFpbiAlcyBpbiBkaGNwLWNvbmZpZyBkaXJlY3RpdmUuIgotbXNnc3RyICJhZHJlc8SDIElQIGR1cGxpY2F0ICVzIMOubiBkZWNsYXJhxaNpYSBkaGNwLWNvbmZpZy4iCi0KLSM6IGRoY3AuYzoyMjEKKyM6IGRoY3AuYzoyMjMKICMsIGMtZm9ybWF0CiBtc2dpZCAiREhDUCBwYWNrZXQgcmVjZWl2ZWQgb24gJXMgd2hpY2ggaGFzIG5vIGFkZHJlc3MiCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjM1MgorIzogZGhjcC5jOjM4MgogIywgYy1mb3JtYXQKIG1zZ2lkICJESENQIHJhbmdlICVzIC0tICVzIGlzIG5vdCBjb25zaXN0ZW50IHdpdGggbmV0bWFzayAlcyIKIG1zZ3N0ciAiZG9tZW5pdSBESENQICVzIC0tICVzIG51IGVzdGUgY29uc2lzdGVudCBjdSBtYXNjYSBkZSByZcWjZWEgJXMiCiAKLSM6IGRoY3AuYzo2NjkKKyM6IGRoY3AuYzo3MDkKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZhaWxlZCB0byByZWFkICVzOiVzIgogbXNnc3RyICJudSBwb3QgY2l0aSAlczogJW4iCiAKLSM6IGRoY3AuYzo3MDQKKyM6IGRoY3AuYzo3NDQKICMsIGMtZm9ybWF0CiBtc2dpZCAiYmFkIGxpbmUgYXQgJXMgbGluZSAlZCIKIG1zZ3N0ciAibGluaWUgaW52YWxpZMSDIMOubiAlcyByw6JuZHVsICVkIgogCi0jOiBkaGNwLmM6ODI2CisjOiBkaGNwLmM6ODQ3CisjLCBjLWZvcm1hdAorbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCittc2dzdHIgImFkcmVzxIMgSVAgZHVwbGljYXQgJXMgw65uIGRlY2xhcmHFo2lhIGRoY3AtY29uZmlnLiIKKworIzogZGhjcC5jOjg1MAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZHVwbGljYXRlIElQIGFkZHJlc3MgJXMgaW4gJXMuIgogbXNnc3RyICJhZHJlc8SDIElQIGR1cGxpY2F0ICVzIMOubiBkZWNsYXJhxaNpYSBkaGNwLWNvbmZpZy4iCiAKLSM6IGRoY3AuYzo4MzIKKyM6IGRoY3AuYzo4NTgKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgImlsbGVnYWwgZG9tYWluICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iCittc2dzdHIgImFkcmVzxIMgSVAgZHVwbGljYXQgJXMgw65uIGRlY2xhcmHFo2lhIGRoY3AtY29uZmlnLiIKKworIzogZGhjcC5jOjg2MAogIywgYy1mb3JtYXQKIG1zZ2lkICJpbGxlZ2FsIGRvbWFpbiAlcyBpbiAlcy4iCiBtc2dzdHIgIiIKIAotIzogZGhjcC5jOjgzOQotIywgZnV6enksIGMtZm9ybWF0Ci1tc2dpZCAicmVhZCAlcyAtICVkIGhvc3RzIgotbXNnc3RyICJjaXRlc2MgJXMgLSAlZCBhZHJlc2UiCisjOiBkaGNwLmM6ODk5CisjLCBjLWZvcm1hdAorbXNnaWQgIiVzIGhhcyBtb3JlIHRoZW4gb25lIGFkZHJlc3MgaW4gaG9zdHNmaWxlLCB1c2luZyAlcyBmb3IgREhDUCIKK21zZ3N0ciAiIgogCi0jOiBkaGNwLmM6ODY2CisjOiBkaGNwLmM6OTA0CiAjLCBjLWZvcm1hdAogbXNnaWQgImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzICglcykgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlIgogbXNnc3RyICJhZHJlc8SDIElQIGR1cGxpY2F0ICVzICglcykgw65uIGRlY2xhcmHFo2lhIGRoY3AtY29uZmlnLiIKIAotIzogbGVhc2UuYzo1NAorIzogbGVhc2UuYzo1OAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gb3IgY3JlYXRlIGxlYXNlIGZpbGUgJXM6ICVzIgogbXNnc3RyICJudSBwb3QgY3JlZWEgc2F1IGRlc2NoaWRlIGZpxZ9pZXJ1bCBjdSDDrm1wcnVtdXR1cmk6ICVzIgogCi0jOiBsZWFzZS5jOjgwCisjOiBsZWFzZS5jOjg0CiBtc2dpZCAidG9vIG1hbnkgc3RvcmVkIGxlYXNlcyIKIG1zZ3N0ciAicHJlYSBtdWx0ZSDDrm1wcnVtdXR1cmkgc3RvY2F0ZSIKIAotIzogbGVhc2UuYzoxMjEKKyM6IGxlYXNlLmM6MTI1CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgcnVuIGxlYXNlLWluaXQgc2NyaXB0ICVzOiAlcyIKIG1zZ3N0ciAibnUgcG90IGNpdGkgJXM6ICVzIgogCi0jOiBsZWFzZS5jOjEyNworIzogbGVhc2UuYzoxMzEKICMsIGMtZm9ybWF0CiBtc2dpZCAibGVhc2UtaW5pdCBzY3JpcHQgcmV0dXJuZWQgZXhpdCBjb2RlICVzIgogbXNnc3RyICIiCiAKLSM6IGxlYXNlLmM6MjM0CisjOiBsZWFzZS5jOjIzOAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZmFpbGVkIHRvIHdyaXRlICVzOiAlcyAocmV0cnkgaW4gJXVzKSIKIG1zZ3N0ciAibnUgcG90IGNpdGkgJXM6ICVuIgogCi0jOiByZmMyMTMxLmM6MzAwCisjOiByZmMyMTMxLmM6MzAzCiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vIGFkZHJlc3MgcmFuZ2UgYXZhaWxhYmxlIGZvciBESENQIHJlcXVlc3QgJXMgJXMiCiBtc2dzdHIgIm5pY2kgdW4gZG9tZW5pdSBkZSBhZHJlc2UgZGlzcG9uaWJpbCBwZW50cnUgY2VyZXJlYSBESENQICVzICVzIgogCi0jOiByZmMyMTMxLmM6MzAxCisjOiByZmMyMTMxLmM6MzA0CiBtc2dpZCAid2l0aCBzdWJuZXQgc2VsZWN0b3IiCiBtc2dzdHIgImN1IHNlbGVjdG9ydWwgZGUgc3VicmXFo2VhIgogCi0jOiByZmMyMTMxLmM6MzAxCisjOiByZmMyMTMxLmM6MzA0CiBtc2dpZCAidmlhIgogbXNnc3RyICJwcmluIgogCi0jOiByZmMyMTMxLmM6MzEyCisjOiByZmMyMTMxLmM6MzE1CiAjLCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcGFja2V0OiB0cmFuc2FjdGlvbi1pZCBpcyAldSIKIG1zZ3N0ciAiIgogCi0jOiByZmMyMTMxLmM6MzE3CisjOiByZmMyMTMxLmM6MzIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIkF2YWlsYWJsZSBESENQIHN1Ym5ldDogJXMvJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjMxOQorIzogcmZjMjEzMS5jOjMyMgogIywgYy1mb3JtYXQKIG1zZ2lkICJBdmFpbGFibGUgREhDUCByYW5nZTogJXMgLS0gJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjM0NyByZmMyMTMxLmM6Mzc4CisjOiByZmMyMTMxLmM6MzUwIHJmYzIxMzEuYzozODEKIG1zZ2lkICJkaXNhYmxlZCIKIG1zZ3N0ciAiZGV6YWN0aXZhdCIKIAotIzogcmZjMjEzMS5jOjM5MCByZmMyMTMxLmM6ODUyCisjOiByZmMyMTMxLmM6MzkzIHJmYzIxMzEuYzo4NzMKIG1zZ2lkICJhZGRyZXNzIGluIHVzZSIKIG1zZ3N0ciAiYWRyZXNhIGVzdGUgZm9sb3NpdMSDIgogCi0jOiByZmMyMTMxLmM6MzkzCisjOiByZmMyMTMxLmM6Mzk2CiBtc2dpZCAibm8gYWRkcmVzcyBjb25maWd1cmVkIgogbXNnc3RyICJhZHJlc8SDIGxpcHPEgyIKIAotIzogcmZjMjEzMS5jOjQwNiByZmMyMTMxLmM6NzIwCisjOiByZmMyMTMxLmM6NDA5IHJmYzIxMzEuYzo3MzYKIG1zZ2lkICJubyBhZGRyZXNzIGF2YWlsYWJsZSIKIG1zZ3N0ciAibmljaSBvIGFkcmVzxIMgZGlzcG9uaWJpbMSDIgogCi0jOiByZmMyMTMxLmM6NDE2Ci0jLCBjLWZvcm1hdAotbXNnaWQgIkxpbWl0IG9mICVkIGxlYXNlcyBleGNlZWRlZC4iCi1tc2dzdHIgIiIKLQotIzogcmZjMjEzMS5jOjQxNyByZmMyMTMxLmM6ODYyCisjOiByZmMyMTMxLmM6NDE4IHJmYzIxMzEuYzo4ODMKIG1zZ2lkICJubyBsZWFzZXMgbGVmdCIKIG1zZ3N0ciAibnUgbWFpIGFtIGRlIHVuZGUgc8SDIMOubXBydW11dCIKIAotIzogcmZjMjEzMS5jOjQyMSByZmMyMTMxLmM6ODI2CisjOiByZmMyMTMxLmM6NDIxIHJmYzIxMzEuYzo4NDcKIG1zZ2lkICJ3cm9uZyBuZXR3b3JrIgogbXNnc3RyICJyZcWjZWEgZ3JlxZ9pdMSDIgogCi0jOiByZmMyMTMxLmM6NTE5CisjOiByZmMyMTMxLmM6NTIwCiAjLCBjLWZvcm1hdAogbXNnaWQgIklnbm9yaW5nIGRvbWFpbiAlcyBmb3IgREhDUCBob3N0IG5hbWUgJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjU5OAorIzogcmZjMjEzMS5jOjYxNAogIywgYy1mb3JtYXQKIG1zZ2lkICJWZW5kb3IgY2xhc3M6ICVzIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo2MDAKKyM6IHJmYzIxMzEuYzo2MTYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVXNlciBjbGFzczogJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjY0MQorIzogcmZjMjEzMS5jOjY1NwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiZGlzYWJsaW5nIERIQ1Agc3RhdGljIGFkZHJlc3MgJXMgZm9yICVzIgogbXNnc3RyICJkZXphY3RpdsSDbSBhZHJlc2VsZSBESENQIHN0YXRpY2UgJXMiCiAKLSM6IHJmYzIxMzEuYzo2NjIKKyM6IHJmYzIxMzEuYzo2NzgKIG1zZ2lkICJ1bmtub3duIGxlYXNlIgogbXNnc3RyICLDrm1wcnVtdXQgbmVjdW5vc2N1dCIKIAotIzogcmZjMjEzMS5jOjY3MSByZmMyMTMxLmM6OTcwCisjOiByZmMyMTMxLmM6Njg3IHJmYzIxMzEuYzo5OTIKIG1zZ2lkICJpZ25vcmVkIgogbXNnc3RyICJpZ25vcmF0IgogCi0jOiByZmMyMTMxLmM6NjkxCisjOiByZmMyMTMxLmM6NzA3CiAjLCBjLWZvcm1hdAogbXNnaWQgIm5vdCB1c2luZyBjb25maWd1cmVkIGFkZHJlc3MgJXMgYmVjYXVzZSBpdCBpcyBsZWFzZWQgdG8gJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjcwMQorIzogcmZjMjEzMS5jOjcxNwogIywgYy1mb3JtYXQKIG1zZ2lkICIiCiAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IGlzIGluIHVzZSBieSB0aGUgc2VydmVyIG9yIHJlbGF5IgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo3MDQKKyM6IHJmYzIxMzEuYzo3MjAKICMsIGMtZm9ybWF0CiBtc2dpZCAibm90IHVzaW5nIGNvbmZpZ3VyZWQgYWRkcmVzcyAlcyBiZWNhdXNlIGl0IHdhcyBwcmV2aW91c2x5IGRlY2xpbmVkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo3MTggcmZjMjEzMS5jOjg1NQorIzogcmZjMjEzMS5jOjczNCByZmMyMTMxLmM6ODc2CiBtc2dpZCAibm8gdW5pcXVlLWlkIgogbXNnc3RyICIiCiAKLSM6IHJmYzIxMzEuYzo3ODkKKyM6IHJmYzIxMzEuYzo4MDYKIG1zZ2lkICJ3cm9uZyBhZGRyZXNzIgogbXNnc3RyICJhZHJlc8SDIGdyZcWfaXTEgyIKIAotIzogcmZjMjEzMS5jOjgwMgorIzogcmZjMjEzMS5jOjgyMwogbXNnaWQgImxlYXNlIG5vdCBmb3VuZCIKIG1zZ3N0ciAiw65tcHJ1bXV0dWwgbnUgYSBmb3N0IGfEg3NpdCIKIAotIzogcmZjMjEzMS5jOjgzNAorIzogcmZjMjEzMS5jOjg1NQogbXNnaWQgImFkZHJlc3Mgbm90IGF2YWlsYWJsZSIKIG1zZ3N0ciAiYWRyZXPEgyBpbmRpc3BvbmliaWzEgyIKIAotIzogcmZjMjEzMS5jOjg0NQorIzogcmZjMjEzMS5jOjg2NgogbXNnaWQgInN0YXRpYyBsZWFzZSBhdmFpbGFibGUiCiBtc2dzdHIgIsOubXBydW11dCBzdGF0aWMgZXN0ZSBkaXNwb25pYmlsIgogCi0jOiByZmMyMTMxLmM6ODQ5CisjOiByZmMyMTMxLmM6ODcwCiBtc2dpZCAiYWRkcmVzcyByZXNlcnZlZCIKIG1zZ3N0ciAiYWRyZXPEgyByZXplcnZhdMSDIgogCi0jOiByZmMyMTMxLmM6MTI1MgorIzogcmZjMjEzMS5jOjEyNjUKICMsIGMtZm9ybWF0CiBtc2dpZCAidGFnczogJXMiCiBtc2dzdHIgIiIKIAotIzogcmZjMjEzMS5jOjEzMzQKKyM6IHJmYzIxMzEuYzoxMzUyCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3Qgc2VuZCBESENQL0JPT1RQIG9wdGlvbiAlZDogbm8gc3BhY2UgbGVmdCBpbiBwYWNrZXQiCiBtc2dzdHIgIm51IHBvdCB0cmltaXRlIG9wxaNpdW5lYSBESENQICVkOiBudSBtYWkgZXN0ZSBsb2Mgw65uIHBhY2hldCIKIAotIzogcmZjMjEzMS5jOjE0ODgKKyM6IHJmYzIxMzEuYzoxNTA3CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJyZXF1ZXN0ZWQgb3B0aW9uczogJXMiCiBtc2dzdHIgImNvbXBpbGF0IGN1IG9wxaNpdW5pbGU6ICVzIgogCi0jOiByZmMyMTMxLmM6MTUxOQotIywgYy1mb3JtYXQKLW1zZ2lkICJzZXJ2ZXIgbmFtZTogJXMiCi1tc2dzdHIgIiIKLQotIzogcmZjMjEzMS5jOjE1MzEKLSMsIGMtZm9ybWF0Ci1tc2dpZCAiYm9vdGZpbGUgbmFtZTogJXMiCi1tc2dzdHIgIiIKLQotIzogcmZjMjEzMS5jOjE1NDAKKyM6IHJmYzIxMzEuYzoxNTU2CiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJuZXh0IHNlcnZlcjogJXMiCiBtc2dzdHIgImVyb2FyZSBEQnVzOiAlcyIKIAotIzogbmV0bGluay5jOjU5CisjOiByZmMyMTMxLmM6MTU4MAorIywgYy1mb3JtYXQKK21zZ2lkICJib290ZmlsZSBuYW1lOiAlcyIKK21zZ3N0ciAiIgorCisjOiByZmMyMTMxLmM6MTU4MworIywgYy1mb3JtYXQKK21zZ2lkICJzZXJ2ZXIgbmFtZTogJXMiCittc2dzdHIgIiIKKworIzogbmV0bGluay5jOjYzCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJjYW5ub3QgY3JlYXRlIG5ldGxpbmsgc29ja2V0OiAlcyIKIG1zZ3N0ciAibnUgcG90IHPEgyBhY3RpdmV6IHNvY2tldC11bCBuZXRsaW5rOiAlcyIKIAotIzogbmV0bGluay5jOjIyNgorIzogbmV0bGluay5jOjIzMAogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAibmV0bGluayByZXR1cm5zIGVycm9yOiAlcyIKIG1zZ3N0ciAiZXJvYXJlIERCdXM6ICVzIgogCi0jOiBkYnVzLmM6MTExCisjOiBkYnVzLmM6MTE1CiBtc2dpZCAiYXR0ZW1wdCB0byBzZXQgYW4gSVB2NiBzZXJ2ZXIgYWRkcmVzcyB2aWEgREJ1cyAtIG5vIElQdjYgc3VwcG9ydCIKIG1zZ3N0ciAiaW5jZXJjIHPEgyBjb25maWd1cmV6IHVuIHNlcnZlciBJUHY2IHByaW4gRGJ1cyAtIG51IGVzdGUgc3Vwb3J0IElQdjYiCiAKLSM6IGRidXMuYzoyMzcKKyM6IGRidXMuYzoyNDEKIG1zZ2lkICJzZXR0aW5nIHVwc3RyZWFtIHNlcnZlcnMgZnJvbSBEQnVzIgogbXNnc3RyICJjb25maWd1csSDbSBzZXJ2ZXJlbGUgc3VwZXJpb2FyZSBwcmluIERidXMiCiAKLSM6IGRidXMuYzoyNzUKKyM6IGRidXMuYzoyNzkKIG1zZ2lkICJjb3VsZCBub3QgcmVnaXN0ZXIgYSBEQnVzIG1lc3NhZ2UgaGFuZGxlciIKIG1zZ3N0ciAibnUgcG90IGFjdGl2YSBvIGludGVyZmHFo8SDIGRlIG1lc2FqZSBEQnVzIgogCi0jOiBicGYuYzo0MworIzogYnBmLmM6MTQ2CiAjLCBjLWZvcm1hdAogbXNnaWQgImNhbm5vdCBjcmVhdGUgREhDUCBCUEYgc29ja2V0OiAlcyIKIG1zZ3N0ciAibnUgcG90IGNyZWVhIHNvY2tldCBESENQIEJQRjogJXMiCiAKLSM6IGJwZi5jOjcxCisjOiBicGYuYzoxNzQKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgIkRIQ1AgcmVxdWVzdCBmb3IgdW5zdXBwb3J0ZWQgaGFyZHdhcmUgdHlwZSAoJWQpIHJlY2VpdmVkIG9uICVzIgogbXNnc3RyICJjZXJlcmUgREhDUCBwZW50cnUgZGlzcG96aXRpdiBuZXN1cG9ydGF0ICglZCkgcmVjZXDFo2lvbmF0xIMgcHJpbiAlcyIKIAotIzogdGZ0cC5jOjE1OAorIzogdGZ0cC5jOjE3MworbXNnaWQgInVuYWJsZSB0byBnZXQgZnJlZSBwb3J0IGZvciBURlRQIgorbXNnc3RyICIiCisKKyM6IHRmdHAuYzoxODgKICMsIGMtZm9ybWF0CiBtc2dpZCAidW5zdXBwb3J0ZWQgcmVxdWVzdCBmcm9tICVzIgogbXNnc3RyICIiCiAKLSM6IHRmdHAuYzoyMzYKKyM6IHRmdHAuYzoyNjYKICMsIGMtZm9ybWF0CiBtc2dpZCAiVEZUUCBzZW50ICVzIHRvICVzIgogbXNnc3RyICIiCiAKLSM6IHRmdHAuYzoyNTkKKyM6IHRmdHAuYzoyODkKICMsIGZ1enp5LCBjLWZvcm1hdAogbXNnaWQgImZpbGUgJXMgbm90IGZvdW5kIgogbXNnc3RyICLDrm1wcnVtdXR1bCBudSBhIGZvc3QgZ8SDc2l0IgogCi0jOiB0ZnRwLmM6MzY5CisjOiB0ZnRwLmM6Mzk5CiAjLCBjLWZvcm1hdAogbXNnaWQgIlRGVFAgZXJyb3IgJWQgJXMgcmVjZWl2ZWQgZnJvbSAlcyIKIG1zZ3N0ciAiIgogCi0jOiB0ZnRwLmM6NDAwCisjOiB0ZnRwLmM6NDMwCiAjLCBmdXp6eSwgYy1mb3JtYXQKIG1zZ2lkICJURlRQIGZhaWxlZCBzZW5kaW5nICVzIHRvICVzIgogbXNnc3RyICJudSBwb3QgY2l0aSAlczogJW4iCiAKLSM6IGxvZy5jOjY5CisjOiBsb2cuYzo3MwogIywgZnV6enksIGMtZm9ybWF0CiBtc2dpZCAiY2Fubm90IG9wZW4gJXM6ICVzIgogbXNnc3RyICJudSBwb3QgZGVzY2hpZGUgJXM6JXMiCiAKLSM6IGxvZy5jOjE0NgorIyBmb3IgY29tcGF0aWJpbGl0eSBwdXJwb3NlcyB0aGUgbGV0dGVycyDDoiwgxIMsIMWfLCDFoyBhbmQgw64gY2FuIGJlIHdyaXR0ZW4gYXMgdGhlaXIgbG9vay1hbGlrZSBjb3JyZXNwb25kZW50LgorIzogbG9nLmM6ODkKKyMsIGZ1enp5LCBjLWZvcm1hdAorbXNnaWQgIndhcm5pbmc6IGZhaWxlZCB0byBjaGFuZ2Ugb3duZXIgb2YgJXM6ICVzIgorbXNnc3RyICLDrm5jxINyY2FyZWEgbnVtZWxvciBkaW4gJXM6ICVtIGEgZcWfdWF0IgorCisjOiBsb2cuYzoxNjEKICMsIGMtZm9ybWF0CiBtc2dpZCAib3ZlcmZsb3c6ICVkIGxvZyBlbnRyaWVzIGxvc3QiCiBtc2dzdHIgIiIKIAotIzogbG9nLmM6MjIzCisjOiBsb2cuYzoyMzgKICMsIGMtZm9ybWF0CiBtc2dpZCAibG9nIGZhaWxlZDogJXMiCiBtc2dzdHIgIiIKIAotIzogbG9nLmM6Mzc4CisjOiBsb2cuYzozOTQKIG1zZ2lkICJGQUlMRUQgdG8gc3RhcnQgdXAiCiBtc2dzdHIgInBvcm5pcmVhIEEgRcWeVUFUIgogCisjLCBmdXp6eQorI34gbXNnaWQgInJlYWQgJXMgLSAlZCBob3N0cyIKKyN+IG1zZ3N0ciAiY2l0ZXNjICVzIC0gJWQgYWRyZXNlIgorCiAjfiBtc2dpZCAiYmFkIGRoY3AtaG9zdCIKICN+IG1zZ3N0ciAiZGhjcC1ob3N0IGludmFsaWQiCiAKZGlmZiAtLWdpdCBhL3NyYy9icGYuYyBiL3NyYy9icGYuYwppbmRleCAyZGJjNGYxLi4xYjcxZjNjIDEwMDY0NAotLS0gYS9zcmMvYnBmLmMKKysrIGIvc3JjL2JwZi5jCkBAIC0xLDIwICsxLDIyIEBACi0vKiBkbnNtYXNxIGlzIENvcHlyaWdodCAoYykgMjAwMC0yMDA2IFNpbW9uIEtlbGxleQorLyogZG5zbWFzcSBpcyBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwNyBTaW1vbiBLZWxsZXkKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgZGF0ZWQgSnVuZSwgMTk5MS4KLQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIHZlcnNpb24gMyBkYXRlZCAyOSBKdW5lLCAyMDA3LgorIAogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgCisgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogKi8KIAogI2luY2x1ZGUgImRuc21hc3EuaCIKIAotI2lmbmRlZiBIQVZFX0xJTlVYX05FVFdPUksKLQotI2luY2x1ZGUgPG5ldC9icGYuaD4KKyNpZiBkZWZpbmVkKEhBVkVfQlNEX05FVFdPUkspIHx8IGRlZmluZWQoSEFWRV9TT0xBUklTX05FVFdPUkspCiAKIHN0YXRpYyBzdHJ1Y3QgaW92ZWMgaWZjb25mID0gewogICAuaW92X2Jhc2UgPSBOVUxMLApAQCAtMjYsNiArMjgsMTA3IEBACiAgIC5pb3ZfbGVuID0gMAogfTsKIAoraW50IGlmYWNlX2VudW1lcmF0ZSh2b2lkICpwYXJtLCBpbnQgKCppcHY0X2NhbGxiYWNrKSgpLCBpbnQgKCppcHY2X2NhbGxiYWNrKSgpKQoreworICBjaGFyICpwdHI7CisgIHN0cnVjdCBpZnJlcSAqaWZyOworICBzdHJ1Y3QgaWZjb25mIGlmYzsKKyAgaW50IGZkLCBlcnJzYXYsIHJldCA9IDA7CisgIGludCBsYXN0bGVuID0gMDsKKyAgc2l6ZV90IGxlbiA9IDA7CisgIAorICBpZiAoKGZkID0gc29ja2V0KFBGX0lORVQsIFNPQ0tfREdSQU0sIDApKSA9PSAtMSkKKyAgICByZXR1cm4gMDsKKyAgCisgIHdoaWxlKDEpCisgICAgeworICAgICAgbGVuICs9IDEwKnNpemVvZihzdHJ1Y3QgaWZyZXEpOworICAgICAgCisgICAgICBpZiAoIWV4cGFuZF9idWYoJmlmY29uZiwgbGVuKSkKKwlnb3RvIGVycjsKKyAgICAgIAorICAgICAgaWZjLmlmY19sZW4gPSBsZW47CisgICAgICBpZmMuaWZjX2J1ZiA9IGlmY29uZi5pb3ZfYmFzZTsKKyAgICAgIAorICAgICAgaWYgKGlvY3RsKGZkLCBTSU9DR0lGQ09ORiwgJmlmYykgPT0gLTEpCisJeworCSAgaWYgKGVycm5vICE9IEVJTlZBTCB8fCBsYXN0bGVuICE9IDApCisJICAgIGdvdG8gZXJyOworCX0KKyAgICAgIGVsc2UKKwl7CisJICBpZiAoaWZjLmlmY19sZW4gPT0gbGFzdGxlbikKKwkgICAgYnJlYWs7IC8qIGdvdCBhIGJpZyBlbm91Z2ggYnVmZmVyIG5vdyAqLworCSAgbGFzdGxlbiA9IGlmYy5pZmNfbGVuOworCX0KKyAgICB9CisgIAorICBmb3IgKHB0ciA9IGlmYy5pZmNfYnVmOyBwdHIgPCBpZmMuaWZjX2J1ZiArIGlmYy5pZmNfbGVuOyBwdHIgKz0gbGVuICkKKyAgICB7CisgICAgICAvKiBzdWJzZXF1ZW50IGVudHJpZXMgbWF5IG5vdCBiZSBhbGlnbmVkLCBzbyBjb3B5IGludG8KKwkgYW4gYWxpZ25lZCBidWZmZXIgdG8gYXZvaWQgbmFzdHkgY29tcGxhaW50cyBhYm91dCAKKwkgdW5hbGlnbmVkIGFjY2Vzc2VzLiAqLworI2lmZGVmIEhBVkVfU09DS0FERFJfU0FfTEVOCisgICAgICBsZW4gPSAoKHN0cnVjdCBpZnJlcSAqKXB0ciktPmlmcl9hZGRyLnNhX2xlbiArIElGX05BTUVTSVpFOworI2Vsc2UKKyAgICAgIGxlbiA9IHNpemVvZihzdHJ1Y3QgaWZyZXEpOworI2VuZGlmCisgICAgICBpZiAoIWV4cGFuZF9idWYoJmlmcmVxLCBsZW4pKQorCWdvdG8gZXJyOworCisgICAgICBpZnIgPSAoc3RydWN0IGlmcmVxICopaWZyZXEuaW92X2Jhc2U7CisgICAgICBtZW1jcHkoaWZyLCBwdHIsIGxlbik7CisgICAgICAgICAgIAorICAgICAgaWYgKGlmci0+aWZyX2FkZHIuc2FfZmFtaWx5ID09IEFGX0lORVQgJiYgaXB2NF9jYWxsYmFjaykKKwl7CisJICBzdHJ1Y3QgaW5fYWRkciBhZGRyLCBuZXRtYXNrLCBicm9hZGNhc3Q7CisJICBicm9hZGNhc3Quc19hZGRyID0gMDsKKwkgIGFkZHIgPSAoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSAmaWZyLT5pZnJfYWRkciktPnNpbl9hZGRyOworCSAgaWYgKGlvY3RsKGZkLCBTSU9DR0lGTkVUTUFTSywgaWZyKSA9PSAtMSkKKwkgICAgY29udGludWU7CisJICBuZXRtYXNrID0gKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikgJmlmci0+aWZyX2FkZHIpLT5zaW5fYWRkcjsKKwkgIGlmIChpb2N0bChmZCwgU0lPQ0dJRkJSREFERFIsIGlmcikgIT0gLTEpCisJICAgIGJyb2FkY2FzdCA9ICgoc3RydWN0IHNvY2thZGRyX2luICopICZpZnItPmlmcl9hZGRyKS0+c2luX2FkZHI7IAorCSAgaWYgKCEoKCppcHY0X2NhbGxiYWNrKShhZGRyLCAKKwkJCQkgKGludClpZl9uYW1ldG9pbmRleChpZnItPmlmcl9uYW1lKSwKKwkJCQkgbmV0bWFzaywgYnJvYWRjYXN0LCAKKwkJCQkgcGFybSkpKQorCSAgICBnb3RvIGVycjsKKwl9CisjaWZkZWYgSEFWRV9JUFY2CisgICAgICBlbHNlIGlmIChpZnItPmlmcl9hZGRyLnNhX2ZhbWlseSA9PSBBRl9JTkVUNiAmJiBpcHY2X2NhbGxiYWNrKQorCXsKKwkgIHN0cnVjdCBpbjZfYWRkciAqYWRkciA9ICYoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikmaWZyLT5pZnJfYWRkciktPnNpbjZfYWRkcjsKKwkgIC8qIHZvb2RvbyB0byBjbGVhciBpbnRlcmZhY2UgZmllbGQgaW4gYWRkcmVzcyAqLworCSAgaWYgKCEoZGFlbW9uLT5vcHRpb25zICYgT1BUX05PV0lMRCkgJiYgSU42X0lTX0FERFJfTElOS0xPQ0FMKGFkZHIpKQorCSAgICB7CisJICAgICAgYWRkci0+czZfYWRkclsyXSA9IDA7CisJICAgICAgYWRkci0+czZfYWRkclszXSA9IDA7CisJICAgIH0KKwkgIGlmICghKCgqaXB2Nl9jYWxsYmFjaykoYWRkciwKKwkJCQkgKGludCkoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikmaWZyLT5pZnJfYWRkciktPnNpbjZfc2NvcGVfaWQsCisJCQkJIChpbnQpaWZfbmFtZXRvaW5kZXgoaWZyLT5pZnJfbmFtZSksCisJCQkJIHBhcm0pKSkKKwkgICAgZ290byBlcnI7CisJfQorI2VuZGlmCisgICAgfQorICAKKyAgcmV0ID0gMTsKKworIGVycjoKKyAgZXJyc2F2ID0gZXJybm87CisgIGNsb3NlKGZkKTsgIAorICBlcnJubyA9IGVycnNhdjsKKworICByZXR1cm4gcmV0OworfQorI2VuZGlmCisKKworI2lmIGRlZmluZWQoSEFWRV9CU0RfTkVUV09SSykKKyNpbmNsdWRlIDxuZXQvYnBmLmg+CisKIHZvaWQgaW5pdF9icGYodm9pZCkKIHsKICAgaW50IGkgPSAwOwpAQCAtMTE2LDggKzIxOSwxMCBAQAogICB1ZHAudWhfc3VtID0gMDsKICAgdWRwLnVoX3VsZW4gPSBzdW0gPSBodG9ucyhzaXplb2Yoc3RydWN0IHVkcGhkcikgKyBsZW4pOwogICBzdW0gKz0gaHRvbnMoSVBQUk9UT19VRFApOwotICBmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKQotICAgIHN1bSArPSAoKHUxNiAqKSZpcC5pcF9zcmMpW2ldOworICBzdW0gKz0gaXAuaXBfc3JjLnNfYWRkciAmIDB4ZmZmZjsKKyAgc3VtICs9IChpcC5pcF9zcmMuc19hZGRyID4+IDE2KSAmIDB4ZmZmZjsKKyAgc3VtICs9IGlwLmlwX2RzdC5zX2FkZHIgJiAweGZmZmY7CisgIHN1bSArPSAoaXAuaXBfZHN0LnNfYWRkciA+PiAxNikgJiAweGZmZmY7CiAgIGZvciAoaSA9IDA7IGkgPCBzaXplb2Yoc3RydWN0IHVkcGhkcikvMjsgaSsrKQogICAgIHN1bSArPSAoKHUxNiAqKSZ1ZHApW2ldOwogICBmb3IgKGkgPSAwOyBpIDwgKGxlbiArIDEpIC8gMjsgaSsrKQpAQCAtMTQwLDEwMCArMjQ1LDYgQEAKICAgd2hpbGUgKHdyaXRldihkYWVtb24tPmRoY3BfcmF3X2ZkLCBpb3YsIDQpID09IC0xICYmIHJldHJ5X3NlbmQoKSk7CiB9CiAKLWludCBpZmFjZV9lbnVtZXJhdGUodm9pZCAqcGFybSwgaW50ICgqaXB2NF9jYWxsYmFjaykoKSwgaW50ICgqaXB2Nl9jYWxsYmFjaykoKSkKLXsKLSAgY2hhciAqcHRyOwotICBzdHJ1Y3QgaWZyZXEgKmlmcjsKLSAgc3RydWN0IGlmY29uZiBpZmM7Ci0gIGludCBmZCwgZXJyc2F2LCByZXQgPSAwOwotICBpbnQgbGFzdGxlbiA9IDA7Ci0gIHNpemVfdCBsZW4gPSAwOwotICAKLSAgaWYgKChmZCA9IHNvY2tldChQRl9JTkVULCBTT0NLX0RHUkFNLCAwKSkgPT0gLTEpCi0gICAgcmV0dXJuIDA7Ci0gIAotICB3aGlsZSgxKQotICAgIHsKLSAgICAgIGxlbiArPSAxMCpzaXplb2Yoc3RydWN0IGlmcmVxKTsKLSAgICAgIAotICAgICAgaWYgKCFleHBhbmRfYnVmKCZpZmNvbmYsIGxlbikpCi0JZ290byBlcnI7Ci0gICAgICAKLSAgICAgIGlmYy5pZmNfbGVuID0gbGVuOwotICAgICAgaWZjLmlmY19idWYgPSBpZmNvbmYuaW92X2Jhc2U7Ci0gICAgICAKLSAgICAgIGlmIChpb2N0bChmZCwgU0lPQ0dJRkNPTkYsICZpZmMpID09IC0xKQotCXsKLQkgIGlmIChlcnJubyAhPSBFSU5WQUwgfHwgbGFzdGxlbiAhPSAwKQotCSAgICBnb3RvIGVycjsKLQl9Ci0gICAgICBlbHNlCi0JewotCSAgaWYgKGlmYy5pZmNfbGVuID09IGxhc3RsZW4pCi0JICAgIGJyZWFrOyAvKiBnb3QgYSBiaWcgZW5vdWdoIGJ1ZmZlciBub3cgKi8KLQkgIGxhc3RsZW4gPSBpZmMuaWZjX2xlbjsKLQl9Ci0gICAgfQotICAKLSAgZm9yIChwdHIgPSBpZmMuaWZjX2J1ZjsgcHRyIDwgaWZjLmlmY19idWYgKyBpZmMuaWZjX2xlbjsgcHRyICs9IGxlbiApCi0gICAgewotICAgICAgLyogc3Vic2VxdWVudCBlbnRyaWVzIG1heSBub3QgYmUgYWxpZ25lZCwgc28gY29weSBpbnRvCi0JIGFuIGFsaWduZWQgYnVmZmVyIHRvIGF2b2lkIG5hc3R5IGNvbXBsYWludHMgYWJvdXQgCi0JIHVuYWxpZ25lZCBhY2Nlc3Nlcy4gKi8KLSNpZmRlZiBIQVZFX1NPQ0tBRERSX1NBX0xFTgotICAgICAgbGVuID0gKChzdHJ1Y3QgaWZyZXEgKilwdHIpLT5pZnJfYWRkci5zYV9sZW4gKyBJRl9OQU1FU0laRTsKLSNlbHNlCi0gICAgICBsZW4gPSBzaXplb2Yoc3RydWN0IGlmcmVxKTsKICNlbmRpZgotICAgICAgaWYgKCFleHBhbmRfYnVmKCZpZnJlcSwgbGVuKSkKLQlnb3RvIGVycjsKIAotICAgICAgaWZyID0gaWZyZXEuaW92X2Jhc2U7Ci0gICAgICBtZW1jcHkoaWZyLCBwdHIsIGxlbik7Ci0gICAgICAgICAgIAotICAgICAgaWYgKGlmci0+aWZyX2FkZHIuc2FfZmFtaWx5ID09IEFGX0lORVQgJiYgaXB2NF9jYWxsYmFjaykKLQl7Ci0JICBzdHJ1Y3QgaW5fYWRkciBhZGRyLCBuZXRtYXNrLCBicm9hZGNhc3Q7Ci0JICBicm9hZGNhc3Quc19hZGRyID0gMDsKLQkgIGFkZHIgPSAoKHN0cnVjdCBzb2NrYWRkcl9pbiAqKSAmaWZyLT5pZnJfYWRkciktPnNpbl9hZGRyOwotCSAgaWYgKGlvY3RsKGZkLCBTSU9DR0lGTkVUTUFTSywgaWZyKSA9PSAtMSkKLQkgICAgY29udGludWU7Ci0JICBuZXRtYXNrID0gKChzdHJ1Y3Qgc29ja2FkZHJfaW4gKikgJmlmci0+aWZyX2FkZHIpLT5zaW5fYWRkcjsKLQkgIGlmIChpb2N0bChmZCwgU0lPQ0dJRkJSREFERFIsIGlmcikgIT0gLTEpCi0JICAgIGJyb2FkY2FzdCA9ICgoc3RydWN0IHNvY2thZGRyX2luICopICZpZnItPmlmcl9hZGRyKS0+c2luX2FkZHI7IAotCSAgaWYgKCEoKCppcHY0X2NhbGxiYWNrKShhZGRyLCAKLQkJCQkgKGludClpZl9uYW1ldG9pbmRleChpZnItPmlmcl9uYW1lKSwKLQkJCQkgbmV0bWFzaywgYnJvYWRjYXN0LCAKLQkJCQkgcGFybSkpKQotCSAgICBnb3RvIGVycjsKLQl9Ci0jaWZkZWYgSEFWRV9JUFY2Ci0gICAgICBlbHNlIGlmIChpZnItPmlmcl9hZGRyLnNhX2ZhbWlseSA9PSBBRl9JTkVUNiAmJiBpcHY2X2NhbGxiYWNrKQotCXsKLQkgIHN0cnVjdCBpbjZfYWRkciAqYWRkciA9ICYoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikmaWZyLT5pZnJfYWRkciktPnNpbjZfYWRkcjsKLQkgIC8qIHZvb2RvbyB0byBjbGVhciBpbnRlcmZhY2UgZmllbGQgaW4gYWRkcmVzcyAqLwotCSAgaWYgKCEoZGFlbW9uLT5vcHRpb25zICYgT1BUX05PV0lMRCkgJiYgSU42X0lTX0FERFJfTElOS0xPQ0FMKGFkZHIpKQotCSAgICB7Ci0JICAgICAgYWRkci0+czZfYWRkclsyXSA9IDA7Ci0JICAgICAgYWRkci0+czZfYWRkclszXSA9IDA7Ci0JICAgIH0KLQkgIGlmICghKCgqaXB2Nl9jYWxsYmFjaykoYWRkciwKLQkJCQkgKGludCkoKHN0cnVjdCBzb2NrYWRkcl9pbjYgKikmaWZyLT5pZnJfYWRkciktPnNpbjZfc2NvcGVfaWQsCi0JCQkJIChpbnQpaWZfbmFtZXRvaW5kZXgoaWZyLT5pZnJfbmFtZSksCi0JCQkJIHBhcm0pKSkKLQkgICAgZ290byBlcnI7Ci0JfQotI2VuZGlmCi0gICAgfQotICAKLSAgcmV0ID0gMTsKIAotIGVycjoKLSAgZXJyc2F2ID0gZXJybm87Ci0gIGNsb3NlKGZkKTsgIAotICBlcnJubyA9IGVycnNhdjsKLQotICByZXR1cm4gcmV0OwotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy9jYWNoZS5jIGIvc3JjL2NhY2hlLmMKaW5kZXggMzM5MTMzYi4uOGEzODE0NyAxMDA2NDQKLS0tIGEvc3JjL2NhY2hlLmMKKysrIGIvc3JjL2NhY2hlLmMKQEAgLTIsMTIgKzIsMTYgQEAKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgZGF0ZWQgSnVuZSwgMTk5MS4KLQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIHZlcnNpb24gMyBkYXRlZCAyOSBKdW5lLCAyMDA3LgorIAogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgCisgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogKi8KIAogI2luY2x1ZGUgImRuc21hc3EuaCIKQEAgLTQ4NCw3ICs0ODgsOCBAQAogICAgICAgLyogZmlyc3Qgc2VhcmNoLCBsb29rIGZvciByZWxldmFudCBlbnRyaWVzIGFuZCBwdXNoIHRvIHRvcCBvZiBsaXN0CiAJIGFsc28gZnJlZSBhbnl0aGluZyB3aGljaCBoYXMgZXhwaXJlZCAqLwogICAgICAgc3RydWN0IGNyZWMgKm5leHQsICoqdXAsICoqaW5zZXJ0ID0gTlVMTCwgKipjaGFpbnAgPSAmYW5zOwotICAgICAgICAgCisgICAgICBpbnQgaW5zX2ZsYWdzID0gMDsKKyAgICAgIAogICAgICAgZm9yICh1cCA9IGhhc2hfYnVja2V0KG5hbWUpLCBjcmVjcCA9ICp1cDsgY3JlY3A7IGNyZWNwID0gbmV4dCkKIAl7CiAJICBuZXh0ID0gY3JlY3AtPmhhc2hfbmV4dDsKQEAgLTUwNiwxNCArNTExLDE4IEBACiAJCSAgICAgIGNhY2hlX2xpbmsoY3JlY3ApOwogCQkgICAgfQogCSAgICAgIAkgICAgICAKLQkJICAvKiBtb3ZlIGFsbCBidXQgdGhlIGZpcnN0IGVudHJ5IHVwIHRoZSBoYXNoIGNoYWluCi0JCSAgICAgdGhpcyBpbXBsZW1lbnRzIHJvdW5kLXJvYmluICovCisJCSAgLyogTW92ZSBhbGwgYnV0IHRoZSBmaXJzdCBlbnRyeSB1cCB0aGUgaGFzaCBjaGFpbgorCQkgICAgIHRoaXMgaW1wbGVtZW50cyByb3VuZC1yb2Jpbi4gCisJCSAgICAgTWFrZSBzdXJlIHRoYXQgcmUtb3JkZXJpbmcgZG9lc24ndCBicmVhayB0aGUgaGFzaC1jaGFpbgorCQkgICAgIG9yZGVyIGludmFyaWFudHMuIAorCQkgICovCiAJCSAgaWYgKCFpbnNlcnQpCiAJCSAgICB7Ci0JCSAgICAgIGluc2VydCA9IHVwOyAKKwkJICAgICAgaW5zZXJ0ID0gdXA7CisJCSAgICAgIGluc19mbGFncyA9IGNyZWNwLT5mbGFncyAmIChGX1JFVkVSU0UgfCBGX0lNTU9SVEFMKTsKIAkJICAgICAgdXAgPSAmY3JlY3AtPmhhc2hfbmV4dDsgCiAJCSAgICB9Ci0JCSAgZWxzZQorCQkgIGVsc2UgaWYgKChjcmVjcC0+ZmxhZ3MgJiAoRl9SRVZFUlNFIHwgRl9JTU1PUlRBTCkpID09IGluc19mbGFncykKIAkJICAgIHsKIAkJICAgICAgKnVwID0gY3JlY3AtPmhhc2hfbmV4dDsKIAkJICAgICAgY3JlY3AtPmhhc2hfbmV4dCA9ICppbnNlcnQ7CkBAIC04MjcsMTQgKzgzNiwxNiBAQAogdm9pZCBjYWNoZV9hZGRfZGhjcF9lbnRyeShjaGFyICpob3N0X25hbWUsIAogCQkJICBzdHJ1Y3QgaW5fYWRkciAqaG9zdF9hZGRyZXNzLCB0aW1lX3QgdHRkKSAKIHsKLSAgc3RydWN0IGNyZWMgKmNyZWM7CisgIHN0cnVjdCBjcmVjICpjcmVjID0gTlVMTDsKICAgdW5zaWduZWQgc2hvcnQgZmxhZ3MgPSAgRl9ESENQIHwgRl9GT1JXQVJEIHwgRl9JUFY0IHwgRl9SRVZFUlNFOworICBpbnQgaW5faG9zdHMgPSAwOwogCiAgIGlmICghaG9zdF9uYW1lKQogICAgIHJldHVybjsKIAotICBpZiAoKGNyZWMgPSBjYWNoZV9maW5kX2J5X25hbWUoTlVMTCwgaG9zdF9uYW1lLCAwLCBGX0lQVjQgfCBGX0NOQU1FKSkpCisgIHdoaWxlICgoY3JlYyA9IGNhY2hlX2ZpbmRfYnlfbmFtZShjcmVjLCBob3N0X25hbWUsIDAsIEZfSVBWNCB8IEZfQ05BTUUpKSkKICAgICB7CisgICAgICAvKiBjaGVjayBhbGwgYWRkcmVzc2VzIGFzc29jaWF0ZWQgd2l0aCBuYW1lICovCiAgICAgICBpZiAoY3JlYy0+ZmxhZ3MgJiBGX0hPU1RTKQogCXsKIAkgIGlmIChjcmVjLT5hZGRyLmFkZHIuYWRkci5hZGRyNC5zX2FkZHIgIT0gaG9zdF9hZGRyZXNzLT5zX2FkZHIpCkBAIC04NDUsMjMgKzg1NiwzMyBAQAogCQkJICAidGhlIG5hbWUgZXhpc3RzIGluICVzIHdpdGggYWRkcmVzcyAlcyIpLCAKIAkJCWhvc3RfbmFtZSwgaW5ldF9udG9hKCpob3N0X2FkZHJlc3MpLAogCQkJcmVjb3JkX3NvdXJjZShkYWVtb24tPmFkZG5faG9zdHMsIGNyZWMtPnVpZCksIGRhZW1vbi0+bmFtZWJ1ZmYpOworCSAgICAgIHJldHVybjsKIAkgICAgfQotCSAgcmV0dXJuOworCSAgZWxzZQorCSAgICAvKiBpZiBpbiBob3N0cywgZG9uJ3QgbmVlZCBESENQIHJlY29yZCAqLworCSAgICBpbl9ob3N0cyA9IDE7CiAJfQogICAgICAgZWxzZSBpZiAoIShjcmVjLT5mbGFncyAmIEZfREhDUCkpCi0JY2FjaGVfc2Nhbl9mcmVlKGhvc3RfbmFtZSwgTlVMTCwgMCwgY3JlYy0+ZmxhZ3MgJiAoRl9JUFY0IHwgRl9DTkFNRSB8IEZfRk9SV0FSRCkpOworCXsKKwkgIGNhY2hlX3NjYW5fZnJlZShob3N0X25hbWUsIE5VTEwsIDAsIGNyZWMtPmZsYWdzICYgKEZfSVBWNCB8IEZfQ05BTUUgfCBGX0ZPUldBUkQpKTsKKwkgIC8qIHNjYW5fZnJlZSBkZWxldGVzIGFsbCBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIG5hbWUgKi8KKwkgIGJyZWFrOworCX0KICAgICB9Ci0gCi0gIGlmICgoY3JlYyA9IGNhY2hlX2ZpbmRfYnlfYWRkcihOVUxMLCAoc3RydWN0IGFsbF9hZGRyICopaG9zdF9hZGRyZXNzLCAwLCBGX0lQVjQpKSkKLSAgICB7Ci0gICAgICBpZiAoY3JlYy0+ZmxhZ3MgJiBGX05FRykKLQljYWNoZV9zY2FuX2ZyZWUoTlVMTCwgKHN0cnVjdCBhbGxfYWRkciAqKWhvc3RfYWRkcmVzcywgMCwgRl9JUFY0IHwgRl9SRVZFUlNFKTsKLSAgICAgIGVsc2UKLQkvKiBhdm9pZCBtdWx0aXBsZSByZXZlcnNlIG1hcHBpbmdzICovCi0JZmxhZ3MgJj0gfkZfUkVWRVJTRTsKLSAgICB9CisgIAorICAgaWYgKGluX2hvc3RzKQorICAgIHJldHVybjsKIAotICBpZiAoKGNyZWMgPSBkaGNwX3NwYXJlKSkKKyAgIGlmICgoY3JlYyA9IGNhY2hlX2ZpbmRfYnlfYWRkcihOVUxMLCAoc3RydWN0IGFsbF9hZGRyICopaG9zdF9hZGRyZXNzLCAwLCBGX0lQVjQpKSkKKyAgICAgeworICAgICAgIGlmIChjcmVjLT5mbGFncyAmIEZfTkVHKQorCSBjYWNoZV9zY2FuX2ZyZWUoTlVMTCwgKHN0cnVjdCBhbGxfYWRkciAqKWhvc3RfYWRkcmVzcywgMCwgRl9JUFY0IHwgRl9SRVZFUlNFKTsKKyAgICAgICBlbHNlCisJIC8qIGF2b2lkIG11bHRpcGxlIHJldmVyc2UgbWFwcGluZ3MgKi8KKwkgZmxhZ3MgJj0gfkZfUkVWRVJTRTsKKyAgICAgfQorICAgCisgICBpZiAoKGNyZWMgPSBkaGNwX3NwYXJlKSkKICAgICBkaGNwX3NwYXJlID0gZGhjcF9zcGFyZS0+bmV4dDsKICAgZWxzZSAvKiBuZWVkIG5ldyBvbmUgKi8KICAgICBjcmVjID0gd2hpbmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgY3JlYykpOwpAQCAtODgxLDExICs5MDIsMzggQEAKIAogdm9pZCBkdW1wX2NhY2hlKHRpbWVfdCBub3cpCiB7Ci0gIG15X3N5c2xvZyhMT0dfSU5GTywgXygidGltZSAlbHUsIGNhY2hlIHNpemUgJWQsICVkLyVkIGNhY2hlIGluc2VydGlvbnMgcmUtdXNlZCB1bmV4cGlyZWQgY2FjaGUgZW50cmllcy4iKSwgCi0JICAgICh1bnNpZ25lZCBsb25nKW5vdywgZGFlbW9uLT5jYWNoZXNpemUsIGNhY2hlX2xpdmVfZnJlZWQsIGNhY2hlX2luc2VydGVkKTsgCisgIHN0cnVjdCBzZXJ2ZXIgKnNlcnYsICpzZXJ2MTsKKworICBteV9zeXNsb2coTE9HX0lORk8sIF8oInRpbWUgJWx1IiksICh1bnNpZ25lZCBsb25nKW5vdyk7CisgIG15X3N5c2xvZyhMT0dfSU5GTywgXygiY2FjaGUgc2l6ZSAlZCwgJWQvJWQgY2FjaGUgaW5zZXJ0aW9ucyByZS11c2VkIHVuZXhwaXJlZCBjYWNoZSBlbnRyaWVzLiIpLCAKKwkgICAgZGFlbW9uLT5jYWNoZXNpemUsIGNhY2hlX2xpdmVfZnJlZWQsIGNhY2hlX2luc2VydGVkKTsKKyAgbXlfc3lzbG9nKExPR19JTkZPLCBfKCJxdWVyaWVzIGZvcndhcmRlZCAldSwgcXVlcmllcyBhbnN3ZXJlZCBsb2NhbGx5ICV1IiksIAorCSAgICBkYWVtb24tPnF1ZXJpZXNfZm9yd2FyZGVkLCBkYWVtb24tPmxvY2FsX2Fuc3dlcik7CisKKyAgaWYgKCFhZGRyYnVmZiAmJiAhKGFkZHJidWZmID0gd2hpbmVfbWFsbG9jKEFERFJTVFJMRU4pKSkKKyAgICByZXR1cm47CisKKyAgLyogc3VtIGNvdW50cyBmcm9tIGRpZmZlcmVudCByZWNvcmRzIGZvciBzYW1lIHNlcnZlciAqLworICBmb3IgKHNlcnYgPSBkYWVtb24tPnNlcnZlcnM7IHNlcnY7IHNlcnYgPSBzZXJ2LT5uZXh0KQorICAgIHNlcnYtPmZsYWdzICY9IH5TRVJWX0NPVU5URUQ7CiAgIAotICBpZiAoKGRhZW1vbi0+b3B0aW9ucyAmIChPUFRfREVCVUcgfCBPUFRfTE9HKSkgJiYKLSAgICAgIChhZGRyYnVmZiB8fCAoYWRkcmJ1ZmYgPSB3aGluZV9tYWxsb2MoQUREUlNUUkxFTikpKSkKKyAgZm9yIChzZXJ2ID0gZGFlbW9uLT5zZXJ2ZXJzOyBzZXJ2OyBzZXJ2ID0gc2Vydi0+bmV4dCkKKyAgICBpZiAoIShzZXJ2LT5mbGFncyAmIChTRVJWX05PX0FERFIgfCBTRVJWX0xJVEVSQUxfQUREUkVTUyB8IFNFUlZfQ09VTlRFRCkpKQorICAgICAgeworCWludCBwb3J0OworCXVuc2lnbmVkIGludCBxdWVyaWVzID0gMCwgZmFpbGVkX3F1ZXJpZXMgPSAwOworCWZvciAoc2VydjEgPSBzZXJ2OyBzZXJ2MTsgc2VydjEgPSBzZXJ2MS0+bmV4dCkKKwkgIGlmICghKHNlcnYxLT5mbGFncyAmIChTRVJWX05PX0FERFIgfCBTRVJWX0xJVEVSQUxfQUREUkVTUyB8IFNFUlZfQ09VTlRFRCkpICYmIHNvY2thZGRyX2lzZXF1YWwoJnNlcnYtPmFkZHIsICZzZXJ2MS0+YWRkcikpCisJICAgIHsKKwkgICAgICBzZXJ2MS0+ZmxhZ3MgfD0gU0VSVl9DT1VOVEVEOworCSAgICAgIHF1ZXJpZXMgKz0gc2VydjEtPnF1ZXJpZXM7CisJICAgICAgZmFpbGVkX3F1ZXJpZXMgKz0gc2VydjEtPmZhaWxlZF9xdWVyaWVzOworCSAgICB9CisJcG9ydCA9IHByZXR0eXByaW50X2FkZHIoJnNlcnYtPmFkZHIsIGFkZHJidWZmKTsKKwlteV9zeXNsb2coTE9HX0lORk8sIF8oInNlcnZlciAlcyMlZDogcXVlcmllcyBzZW50ICV1LCByZXRyaWVkIG9yIGZhaWxlZCAldSIpLCBhZGRyYnVmZiwgcG9ydCwgcXVlcmllcywgZmFpbGVkX3F1ZXJpZXMpOworICAgICAgfQorICAKKyAgaWYgKChkYWVtb24tPm9wdGlvbnMgJiAoT1BUX0RFQlVHIHwgT1BUX0xPRykpKQogICAgIHsKICAgICAgIHN0cnVjdCBjcmVjICpjYWNoZSA7CiAgICAgICBpbnQgaTsKQEAgLTk4OCwxNSArMTAzNiwxOSBAQAogCXsKIAkgIGlmIChmbGFncyAmIEZfSVBWNCkKIAkgICAgZGVzdCA9ICJOWERPTUFJTi1JUHY0IjsKLQkgIGVsc2UgCi0JICAgIGRlc3QgPSAiTlhET01BSU4tSVB2NiI7IAorCSAgZWxzZSBpZiAoZmxhZ3MgJiBGX0lQVjYpCisJICAgIGRlc3QgPSAiTlhET01BSU4tSVB2NiI7CisJICBlbHNlCisJICAgIGRlc3QgPSAiTlhET01BSU4iOwogCX0KICAgICAgIGVsc2UKIAl7ICAgICAgCiAJICBpZiAoZmxhZ3MgJiBGX0lQVjQpCiAJICAgIGRlc3QgPSAiTk9EQVRBLUlQdjQiOwotCSAgZWxzZSAKKwkgIGVsc2UgaWYgKGZsYWdzICYgRl9JUFY2KQogCSAgICBkZXN0ID0gIk5PREFUQS1JUHY2IjsKKwkgIGVsc2UKKwkgICAgZGVzdCA9ICJOT0RBVEEiOwogCX0KICAgICB9CiAgIGVsc2UgaWYgKGZsYWdzICYgRl9DTkFNRSkKZGlmZiAtLWdpdCBhL3NyYy9jb25maWcuaCBiL3NyYy9jb25maWcuaAppbmRleCBjZmNmNzhiLi5hZmMxNmIzIDEwMDY0NAotLS0gYS9zcmMvY29uZmlnLmgKKysrIGIvc3JjL2NvbmZpZy5oCkBAIC0yLDE1ICsyLDE5IEBACiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEuCi0KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSB2ZXJzaW9uIDMgZGF0ZWQgMjkgSnVuZSwgMjAwNy4KKyAKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgICAgIAorICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCiAKLSNkZWZpbmUgVkVSU0lPTiAiMi40MCIKKyNkZWZpbmUgVkVSU0lPTiAiMi40MSIKIAogI2RlZmluZSBGVEFCU0laIDE1MCAvKiBtYXggbnVtYmVyIG9mIG91dHN0YW5kaW5nIHJlcXVlc3RzIChkZWZhdWx0KSAqLwogI2RlZmluZSBNQVhfUFJPQ1MgMjAgLyogbWF4IG5vIGNoaWxkcmVuIGZvciBUQ1AgcmVxdWVzdHMgKi8KQEAgLTM1LDYgKzM5LDggQEAKICNkZWZpbmUgUlVORklMRSAiL3Zhci9ydW4vZG5zbWFzcS5waWQiCiAjaWYgZGVmaW5lZChfX0ZyZWVCU0RfXykgfHwgZGVmaW5lZCAoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykKICMgICBkZWZpbmUgTEVBU0VGSUxFICIvdmFyL2RiL2Ruc21hc3EubGVhc2VzIgorI2VsaWYgZGVmaW5lZChfX3N1bl9fKQorIyAgIGRlZmluZSBMRUFTRUZJTEUgIi92YXIvY2FjaGUvZG5zbWFzcS5sZWFzZXMiCiAjZWxzZQogIyAgIGRlZmluZSBMRUFTRUZJTEUgIi92YXIvbGliL21pc2MvZG5zbWFzcS5sZWFzZXMiCiAjZW5kaWYKQEAgLTkxLDEwICs5NywxMiBAQAogICAgTWF5IHJlcGxhY2UgdGhpcyB3aXRoIEF1dG9jb25mIG9uZSBkYXkuIAogCiBIQVZFX0xJTlVYX05FVFdPUksKLSAgIGRlZmluZSB0aGlzIHRvIGRvIG5ldHdvcmtpbmcgdGhlIExpbnV4IHdheS4gV2hlbiBpdCdzIGRlZmluZWQsIHRoZSBjb2RlIHdpbGwKLSAgIHVzZSBJUF9QS1RJTkZPLCBMaW51eCBjYXBhYmlsaXRpZXMgYW5kIHRoZSBSVG5ldGxpbmsgc3lzdGVtLiBJZiBpdCdzIG5vdCBkZWZpbmVkLAotICAgYSBmZXcgZmFjaWxpdGllcyB3aWxsIGJlIGxvc3QsIG5hbWVseSBzdXBwb3J0IGZvciBtdWx0aXBsZSBhZGRyZXNzZXMgb24gYW4gaW50ZXJmYWNlLAotICAgRE5TIHF1ZXJ5IHJldHJhbnNtaXNzaW9uLCBhbmQgKG9uIHNvbWUgc3lzdGVtcykgd2lsZGNhcmQgaW50ZXJmYWNlIGJpbmRpbmcuCitIQVZFX0JTRF9ORVRXT1JLCitIQVZFX1NPTEFSSVNfTkVUV09SSworICAgZGVmaW5lIGV4YWN0bHkgb25lIG9mIHRoZXNlIHRvIGFsdGVyIGludGVyYWN0aW9uIHdpdGgga2VybmVsIG5ldHdvcmtpbmcuCisKK0hBVkVfU09MQVJJU19QUklWUworICAgZGVmaW5lIGZvciBTb2xhcmlzID4gMTAgd2hpY2ggY2FuIHNwbGl0IHByaXZpbGVnZXMuCiAKIEhBVkVfQlJPS0VOX1JUQwogICAgZGVmaW5lIHRoaXMgb24gZW1iZWRkZWQgc3lzdGVtcyB3aGljaCBkb24ndCBoYXZlIGFuIFJUQwpAQCAtMTU3LDEwICsxNjUsOSBAQAogICAgICAgSEFWRV9TT0NLQUREUl9TQV9MRU4KIAogICAgRm9yICpCU0Qgc3lzdGVtcyB5b3Ugc2hvdWxkIGRlZmluZSAKKyAgICAgSEFWRV9CU0RfTkVUV09SSwogICAgICBIQVZFX1NPQ0tBRERSX1NBX0xFTgogICAgICBIQVZFX1JBTkRPTQotICAgeW91IHNob3VsZCBOT1QgZGVmaW5lICAKLSAgICAgSEFWRV9MSU5VWF9ORVRXT1JLIAogICAgYW5kIHlvdSBNQVkgZGVmaW5lICAKICAgICAgSEFWRV9BUkM0UkFORE9NIC0gT3BlbkJTRCBhbmQgRnJlZUJTRCBhbmQgTmV0QlNEIHZlcnNpb24gMi4wIG9yIGxhdGVyCiAgICAgIEhBVkVfREVWX1VSQU5ET00gLSBPcGVuQlNEIGFuZCBGcmVlQlNEIGFuZCBOZXRCU0QKQEAgLTI0Myw3ICsyNTAsNyBAQAogI2VuZGlmCiAKICNlbGlmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykKLSN1bmRlZiBIQVZFX0xJTlVYX05FVFdPUksKKyNkZWZpbmUgSEFWRV9CU0RfTkVUV09SSwogLyogTGF0ZXIgdmVyaW9ucyBvZiBGcmVlQlNEIGhhdmUgZ2V0b3B0X2xvbmcoKSAqLwogI2lmIGRlZmluZWQob3B0aW9uYWxfYXJndW1lbnQpICYmIGRlZmluZWQocmVxdWlyZWRfYXJndW1lbnQpCiAjICAgZGVmaW5lIEhBVkVfR0VUT1BUX0xPTkcKQEAgLTI1Niw3ICsyNjMsNyBAQAogI2RlZmluZSBIQVZFX1NPQ0tBRERSX1NBX0xFTgogCiAjZWxpZiBkZWZpbmVkKF9fQVBQTEVfXykKLSN1bmRlZiBIQVZFX0xJTlVYX05FVFdPUksKKyNkZWZpbmUgSEFWRV9CU0RfTkVUV09SSwogI3VuZGVmIEhBVkVfR0VUT1BUX0xPTkcKICNkZWZpbmUgSEFWRV9BUkM0UkFORE9NCiAjZGVmaW5lIEhBVkVfUkFORE9NCkBAIC0yNjgsMTUgKzI3NSw0NCBAQAogI2RlZmluZSBJTjZBRERSU1ogMTYKICAKICNlbGlmIGRlZmluZWQoX19OZXRCU0RfXykKLSN1bmRlZiBIQVZFX0xJTlVYX05FVFdPUksKKyNkZWZpbmUgSEFWRV9CU0RfTkVUV09SSwogI2RlZmluZSBIQVZFX0dFVE9QVF9MT05HCiAjdW5kZWYgSEFWRV9BUkM0UkFORE9NCiAjZGVmaW5lIEhBVkVfUkFORE9NCiAjZGVmaW5lIEhBVkVfREVWX1VSQU5ET00KICNkZWZpbmUgSEFWRV9ERVZfUkFORE9NCiAjZGVmaW5lIEhBVkVfU09DS0FERFJfU0FfTEVOCi0gCisKKyNlbGlmIGRlZmluZWQoX19zdW4pIHx8IGRlZmluZWQoX19zdW5fXykKKyNkZWZpbmUgSEFWRV9TT0xBUklTX05FVFdPUksKKy8qIG9ubHkgU29sYXJpcyAxMCBkb2VzIHNwbGl0IHByaXZzLiAqLworI2lmIChTVU5PU19WRVIgPj0gMTApCisjICBkZWZpbmUgSEFWRV9TT0xBUklTX1BSSVZTCisjICBkZWZpbmUgSEFWRV9HRVRPUFRfTE9ORwogI2VuZGlmCisvKiBzb21lIENNU0cgc3R1ZmYgbWlzc2luZyBvbiBlYXJseSBzb2xhcmlzICovCisjaWZuZGVmIE9TU0hfQUxJR05CWVRFUworIyAgZGVmaW5lIE9TU0hfQUxJR05CWVRFUyAoc2l6ZW9mKGludCkgLSAxKQorI2VuZGlmCisjaWZuZGVmIF9fQ01TR19BTElHTgorIyAgZGVmaW5lIF9fQ01TR19BTElHTihwKSAoKCh1X2ludCkocCkgKyBPU1NIX0FMSUdOQllURVMpICZ+IE9TU0hfQUxJR05CWVRFUykKKyNlbmRpZgorI2lmbmRlZiBDTVNHX0xFTgorIyAgZGVmaW5lIENNU0dfTEVOKGxlbikgICAoX19DTVNHX0FMSUdOKHNpemVvZihzdHJ1Y3QgY21zZ2hkcikpICsgKGxlbikpCisjZW5kaWYKKyNpZm5kZWYgQ01TR19TUEFDRQorIyAgZGVmaW5lIENNU0dfU1BBQ0UobGVuKSAoX19DTVNHX0FMSUdOKHNpemVvZihzdHJ1Y3QgY21zZ2hkcikpICsgX19DTVNHX0FMSUdOKGxlbikpCisjZW5kaWYKKyN1bmRlZiBIQVZFX0FSQzRSQU5ET00KKyNkZWZpbmUgSEFWRV9SQU5ET00KKyN1bmRlZiBIQVZFX0RFVl9VUkFORE9NCisjdW5kZWYgSEFWRV9ERVZfUkFORE9NCisjdW5kZWYgSEFWRV9TT0NLQUREUl9TQV9MRU4KKyNkZWZpbmUgX1hQRzRfMgorI2RlZmluZSBfX0VYVEVOU0lPTlNfXworI2RlZmluZSBFVEhFUl9BRERSX0xFTiA2CisjZW5kaWYKKwogLyogRGVjaWRlIGlmIHdlJ3JlIGdvaW5nIHRvIHN1cHBvcnQgSVB2NiAqLwogLyogSVB2NiBjYW4gYmUgZm9yY2VkIG9mZiB3aXRoICJtYWtlIENPUFRTPS1ETk9fSVBWNiIgKi8KIC8qIFdlIGFzc3VtZSB0aGF0IHN5c3RlbXMgd2hpY2ggZG9uJ3QgaGF2ZSBJUHY2CmRpZmYgLS1naXQgYS9zcmMvZGJ1cy5jIGIvc3JjL2RidXMuYwppbmRleCBhNTYwZTcxLi5lMGI1ZGYyIDEwMDY0NAotLS0gYS9zcmMvZGJ1cy5jCisrKyBiL3NyYy9kYnVzLmMKQEAgLTEsMTMgKzEsMTcgQEAKLS8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDUgU2ltb24gS2VsbGV5CisvKiBkbnNtYXNxIGlzIENvcHlyaWdodCAoYykgMjAwMC0yMDA3IFNpbW9uIEtlbGxleQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLgotCisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgZGF0ZWQgSnVuZSwgMTk5MSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgdmVyc2lvbiAzIGRhdGVkIDI5IEp1bmUsIDIwMDcuCisgCiAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAKKyAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAqLwogCiAjaW5jbHVkZSAiZG5zbWFzcS5oIgpAQCAtMTEyLDkgKzExNiw5IEBACiAjZWxzZQogCSAgaWYgKGkgPT0gc2l6ZW9mKHN0cnVjdCBpbjZfYWRkciktMSkKIAkgICAgewotCSAgICAgIG1lbWNweSgmYWRkci5pbjYuc2luNl9hZGRyLCBwLCBzaXplb2YoYWRkci5pbjYpKTsKKwkgICAgICBtZW1jcHkoJmFkZHIuaW42LnNpbjZfYWRkciwgcCwgc2l6ZW9mKHN0cnVjdCBpbjZfYWRkcikpOwogI2lmZGVmIEhBVkVfU09DS0FERFJfU0FfTEVOCi0gICAgICAgICAgICAgIHNvdXJjZV9hZGRyLmluNi5zaW42X2xlbiA9IGFkZHIuaW42LnNpbjZfbGVuID0gc2l6ZW9mKGFkZHIuaW42KTsKKyAgICAgICAgICAgICAgc291cmNlX2FkZHIuaW42LnNpbjZfbGVuID0gYWRkci5pbjYuc2luNl9sZW4gPSBzaXplb2Yoc3R1Y3Qgc29ja2FkZHJfaW42KTsKICNlbmRpZgogICAgICAgICAgICAgICBzb3VyY2VfYWRkci5pbjYuc2luNl9mYW1pbHkgPSBhZGRyLmluNi5zaW42X2ZhbWlseSA9IEFGX0lORVQ2OwogICAgICAgICAgICAgICBhZGRyLmluNi5zaW42X3BvcnQgPSBodG9ucyhOQU1FU0VSVkVSX1BPUlQpOwpAQCAtMjkyLDcgKzI5NiwxMSBAQAogICAgIGlmIChkYnVzX3dhdGNoX2dldF9lbmFibGVkKHctPndhdGNoKSkKICAgICAgIHsKIAl1bnNpZ25lZCBpbnQgZmxhZ3MgPSBkYnVzX3dhdGNoX2dldF9mbGFncyh3LT53YXRjaCk7CisjaWYgKERCVVNfTUlOT1IgPiAwKQorCWludCBmZCA9IGRidXNfd2F0Y2hfZ2V0X3VuaXhfZmQody0+d2F0Y2gpOworI2Vsc2UKIAlpbnQgZmQgPSBkYnVzX3dhdGNoX2dldF9mZCh3LT53YXRjaCk7CisjZW5kaWYKIAkKIAlidW1wX21heGZkKGZkLCBtYXhmZHApOwogCQpAQCAtMzE1LDcgKzMyMywxMSBAQAogICAgIGlmIChkYnVzX3dhdGNoX2dldF9lbmFibGVkKHctPndhdGNoKSkKICAgICAgIHsKIAl1bnNpZ25lZCBpbnQgZmxhZ3MgPSAwOworI2lmIChEQlVTX01JTk9SID4gMCkKKwlpbnQgZmQgPSBkYnVzX3dhdGNoX2dldF91bml4X2ZkKHctPndhdGNoKTsKKyNlbHNlCiAJaW50IGZkID0gZGJ1c193YXRjaF9nZXRfZmQody0+d2F0Y2gpOworI2VuZGlmCiAJCiAJaWYgKEZEX0lTU0VUKGZkLCByc2V0KSkKIAkgIGZsYWdzIHw9IERCVVNfV0FUQ0hfUkVBREFCTEU7CmRpZmYgLS1naXQgYS9zcmMvZGhjcC5jIGIvc3JjL2RoY3AuYwppbmRleCAxNDI1MmM0Li5kY2Q3NmQ0IDEwMDY0NAotLS0gYS9zcmMvZGhjcC5jCisrKyBiL3NyYy9kaGNwLmMKQEAgLTEsMTMgKzEsMTcgQEAKLS8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDYgU2ltb24gS2VsbGV5CisvKiBkbnNtYXNxIGlzIENvcHlyaWdodCAoYykgMjAwMC0yMDA3IFNpbW9uIEtlbGxleQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLgotCisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgZGF0ZWQgSnVuZSwgMTk5MSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgdmVyc2lvbiAzIGRhdGVkIDI5IEp1bmUsIDIwMDcuCisgCiAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAKKyAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAqLwogCiAjaW5jbHVkZSAiZG5zbWFzcS5oIgpAQCAtMjYsMTIgKzMwLDE3IEBACiAgIGludCBmZCA9IHNvY2tldChQRl9JTkVULCBTT0NLX0RHUkFNLCBJUFBST1RPX1VEUCk7CiAgIHN0cnVjdCBzb2NrYWRkcl9pbiBzYWRkcjsKICAgaW50IG9uZW9wdCA9IDE7Ci0gIHN0cnVjdCBkaGNwX2NvbmZpZyAqY29uZmlncywgKmNwOworI2lmIGRlZmluZWQoSVBfTVRVX0RJU0NPVkVSKSAmJiBkZWZpbmVkKElQX1BNVFVESVNDX0RPTlQpCisgIGludCBtdHUgPSBJUF9QTVRVRElTQ19ET05UOworI2VuZGlmCiAKICAgaWYgKGZkID09IC0xKQogICAgIGRpZSAoXygiY2Fubm90IGNyZWF0ZSBESENQIHNvY2tldCA6ICVzIiksIE5VTEwsIEVDX0JBRE5FVCk7CiAgIAotICBpZiAoIWZpeF9mZChmZCkgfHwgCisgIGlmICghZml4X2ZkKGZkKSB8fAorI2lmIGRlZmluZWQoSVBfTVRVX0RJU0NPVkVSKSAmJiBkZWZpbmVkKElQX1BNVFVESVNDX0RPTlQpCisgICAgICBzZXRzb2Nrb3B0KGZkLCBTT0xfSVAsIElQX01UVV9ESVNDT1ZFUiwgJm10dSwgc2l6ZW9mKG10dSkpID09IC0xIHx8CisjZW5kaWYKICNpZiBkZWZpbmVkKEhBVkVfTElOVVhfTkVUV09SSykKICAgICAgIHNldHNvY2tvcHQoZmQsIFNPTF9JUCwgSVBfUEtUSU5GTywgJm9uZW9wdCwgc2l6ZW9mKG9uZW9wdCkpID09IC0xIHx8CiAjZWxpZiBkZWZpbmVkKElQX1JFQ1ZJRikKQEAgLTczLDcgKzgyLDcgQEAKIAogICBkYWVtb24tPmRoY3BmZCA9IGZkOwogCi0jaWZuZGVmIEhBVkVfTElOVVhfTkVUV09SSworI2lmIGRlZmluZWQoSEFWRV9CU0RfTkVUV09SSykKICAgLyogV2hlbiB3ZSdyZSBub3QgdXNpbmcgY2FwYWJpbGl0aWVzLCB3ZSBuZWVkIHRvIGRvIHRoaXMgaGVyZSBiZWZvcmUKICAgICAgd2UgZHJvcCByb290LiBBbHNvLCBzZXQgYnVmZmVyIHNpemUgc21hbGwsIHRvIGF2b2lkIHdhc3RpbmcKICAgICAga2VybmVsIGJ1ZmZlcnMgKi8KQEAgLTg4LDIxICs5Nyw4IEBACiAgIGluaXRfYnBmKCk7CiAjZW5kaWYKICAgCi0gIC8qIElmIHRoZSBzYW1lIElQIGFwcGVhcnMgaW4gbW9yZSB0aGFuIG9uZSBob3N0IGNvbmZpZywgdGhlbiBESVNDT1ZFUgotICAgICBmb3Igb25lIG9mIHRoZSBob3N0cyB3aWxsIGdldCB0aGUgYWRkcmVzcywgYnV0IFJFUVVFU1Qgd2lsbCBiZSBOQUtlZCwKLSAgICAgc2luY2UgdGhlIGFkZHJlc3MgaXMgcmVzZXJ2ZWQgYnkgdGhlIG90aGVyIG9uZSAtPiBwcm90b2NvbCBsb29wLiAKLSAgICAgQWxzbyBjaGVjayB0aGF0IEZRRE5zIG1hdGNoIHRoZSBkb21haW4gd2UgYXJlIHVzaW5nLiAqLwotICBmb3IgKGNvbmZpZ3MgPSBkYWVtb24tPmRoY3BfY29uZjsgY29uZmlnczsgY29uZmlncyA9IGNvbmZpZ3MtPm5leHQpCi0gICAgewotICAgICAgY2hhciAqZG9tYWluOwotICAgICAgZm9yIChjcCA9IGNvbmZpZ3MtPm5leHQ7IGNwOyBjcCA9IGNwLT5uZXh0KQotCWlmICgoY29uZmlncy0+ZmxhZ3MgJiBjcC0+ZmxhZ3MgJiBDT05GSUdfQUREUikgJiYgY29uZmlncy0+YWRkci5zX2FkZHIgPT0gY3AtPmFkZHIuc19hZGRyKQotCSAgZGllKF8oImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iKSwgaW5ldF9udG9hKGNwLT5hZGRyKSwgRUNfQkFEQ09ORik7Ci0gICAgICAKLSAgICAgIGlmICgoY29uZmlncy0+ZmxhZ3MgJiBDT05GSUdfTkFNRSkgJiYgKGRvbWFpbiA9IHN0cmlwX2hvc3RuYW1lKGNvbmZpZ3MtPmhvc3RuYW1lKSkpCi0JZGllKF8oImlsbGVnYWwgZG9tYWluICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iKSwgZG9tYWluLCBFQ19CQURDT05GKTsKLSAgICB9Ci0gIAorICBjaGVja19kaGNwX2hvc3RzKDEpOworICAgIAogICBkYWVtb24tPmRoY3BfcGFja2V0Lmlvdl9sZW4gPSBzaXplb2Yoc3RydWN0IGRoY3BfcGFja2V0KTsgCiAgIGRhZW1vbi0+ZGhjcF9wYWNrZXQuaW92X2Jhc2UgPSBzYWZlX21hbGxvYyhkYWVtb24tPmRoY3BfcGFja2V0Lmlvdl9sZW4pOwogfQpAQCAtMTI0LDkgKzEyMCwxMSBAQAogCiAgIHVuaW9uIHsKICAgICBzdHJ1Y3QgY21zZ2hkciBhbGlnbjsgLyogdGhpcyBlbnN1cmVzIGFsaWdubWVudCAqLwotI2lmZGVmIEhBVkVfTElOVVhfTkVUV09SSworI2lmIGRlZmluZWQoSEFWRV9MSU5VWF9ORVRXT1JLKQogICAgIGNoYXIgY29udHJvbFtDTVNHX1NQQUNFKHNpemVvZihzdHJ1Y3QgaW5fcGt0aW5mbykpXTsKLSNlbHNlCisjZWxpZiBkZWZpbmVkKEhBVkVfU09MQVJJU19ORVRXT1JLKQorICAgIGNoYXIgY29udHJvbFtDTVNHX1NQQUNFKHNpemVvZih1bnNpZ25lZCBpbnQpKV07CisjZWxpZiBkZWZpbmVkKElQX1JFQ1ZJRikgCiAgICAgY2hhciBjb250cm9sW0NNU0dfU1BBQ0Uoc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9kbCkpXTsKICNlbmRpZgogICB9IGNvbnRyb2xfdTsKQEAgLTE0Nyw3ICsxNDUsNyBAQAogCSBleHBhbmRfYnVmKCZkYWVtb24tPmRoY3BfcGFja2V0LCBkYWVtb24tPmRoY3BfcGFja2V0Lmlvdl9sZW4gKyAxMDApKTsKICAgCiAgIC8qIGV4cGFuZF9idWYgbWF5IGhhdmUgbW92ZWQgYnVmZmVyICovCi0gIG1lc3MgPSBkYWVtb24tPmRoY3BfcGFja2V0Lmlvdl9iYXNlOworICBtZXNzID0gKHN0cnVjdCBkaGNwX3BhY2tldCAqKWRhZW1vbi0+ZGhjcF9wYWNrZXQuaW92X2Jhc2U7CiAgIG1zZy5tc2dfY29udHJvbGxlbiA9IHNpemVvZihjb250cm9sX3UpOwogICBtc2cubXNnX2NvbnRyb2wgPSBjb250cm9sX3UuY29udHJvbDsKICAgbXNnLm1zZ19mbGFncyA9IDA7CkBAIC0xNzcsOCArMTc1LDEyIEBACiAgIGlmIChtc2cubXNnX2NvbnRyb2xsZW4gPj0gc2l6ZW9mKHN0cnVjdCBjbXNnaGRyKSkKICAgICBmb3IgKGNtcHRyID0gQ01TR19GSVJTVEhEUigmbXNnKTsgY21wdHI7IGNtcHRyID0gQ01TR19OWFRIRFIoJm1zZywgY21wdHIpKQogICAgICAgaWYgKGNtcHRyLT5jbXNnX2xldmVsID09IElQUFJPVE9fSVAgJiYgY21wdHItPmNtc2dfdHlwZSA9PSBJUF9SRUNWSUYpCi0JaWZhY2VfaW5kZXggPSAoKHN0cnVjdCBzb2NrYWRkcl9kbCAqKUNNU0dfREFUQShjbXB0cikpLT5zZGxfaW5kZXg7Ci0gIAorI2lmZGVmIEhBVkVfU09MQVJJU19ORVRXT1JLCisJaWZhY2VfaW5kZXggPSAqKCh1bnNpZ25lZCBpbnQgKilDTVNHX0RBVEEoY21wdHIpKTsKKyNlbHNlCisgICAgICAgIGlmYWNlX2luZGV4ID0gKChzdHJ1Y3Qgc29ja2FkZHJfZGwgKilDTVNHX0RBVEEoY21wdHIpKS0+c2RsX2luZGV4OworI2VuZGlmCisJICAKICAgaWYgKCFpZmFjZV9pbmRleCB8fCAhaWZfaW5kZXh0b25hbWUoaWZhY2VfaW5kZXgsIGlmci5pZnJfbmFtZSkpCiAgICAgcmV0dXJuOwogICAKQEAgLTE5OCw3ICsyMDAsNyBAQAogICAgIGlmYWNlX2luZGV4ID0gaWZfbmFtZXRvaW5kZXgobmFtZS0+bmFtZSk7CiAgIH0KICNlbmRpZgotCisgIAogICBpZnIuaWZyX2FkZHIuc2FfZmFtaWx5ID0gQUZfSU5FVDsKICAgaWYgKGlvY3RsKGRhZW1vbi0+ZGhjcGZkLCBTSU9DR0lGQUREUiwgJmlmcikgIT0gLTEgKQogICAgIHsKQEAgLTIzNyw3ICsyMzksNyBAQAogICBpZiAoIWlmYWNlX2VudW1lcmF0ZSgmcGFybSwgY29tcGxldGVfY29udGV4dCwgTlVMTCkpCiAgICAgcmV0dXJuOwogICBsZWFzZV9wcnVuZShOVUxMLCBub3cpOyAvKiBsb3NlIGFueSBleHBpcmVkIGxlYXNlcyAqLwotICBpb3YuaW92X2xlbiA9IGRoY3BfcmVwbHkocGFybS5jdXJyZW50LCBpZnIuaWZyX25hbWUsIChzaXplX3Qpc3osIAorICBpb3YuaW92X2xlbiA9IGRoY3BfcmVwbHkocGFybS5jdXJyZW50LCBpZnIuaWZyX25hbWUsIGlmYWNlX2luZGV4LCAoc2l6ZV90KXN6LCAKIAkJCSAgIG5vdywgdW5pY2FzdF9kZXN0LCAmaXNfaW5mb3JtKTsKICAgbGVhc2VfdXBkYXRlX2ZpbGUobm93KTsKICAgbGVhc2VfdXBkYXRlX2RucygpOwpAQCAtMjUzLDcgKzI1NSw3IEBACiAgIGlvdi5pb3ZfYmFzZSA9IGRhZW1vbi0+ZGhjcF9wYWNrZXQuaW92X2Jhc2U7CiAgIAogICAvKiBwYWNrZXQgYnVmZmVyIG1heSBoYXZlIG1vdmVkICovCi0gIG1lc3MgPSBkYWVtb24tPmRoY3BfcGFja2V0Lmlvdl9iYXNlOworICBtZXNzID0gKHN0cnVjdCBkaGNwX3BhY2tldCAqKWRhZW1vbi0+ZGhjcF9wYWNrZXQuaW92X2Jhc2U7CiAgIAogI2lmZGVmIEhBVkVfU09DS0FERFJfU0FfTEVOCiAgIGRlc3Quc2luX2xlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOwpAQCAtMjc4LDcgKzI4MCw3IEBACiAJICBkZXN0LnNpbl9hZGRyID0gbWVzcy0+Y2lhZGRyOwogCX0KICAgICB9IAotI2lmZGVmIEhBVkVfTElOVVhfTkVUV09SSworI2lmIGRlZmluZWQoSEFWRV9MSU5VWF9ORVRXT1JLKQogICBlbHNlIGlmICgobnRvaHMobWVzcy0+ZmxhZ3MpICYgMHg4MDAwKSB8fCBtZXNzLT5obGVuID09IDAgfHwKIAkgICBtZXNzLT5obGVuID4gc2l6ZW9mKGlmci5pZnJfYWRkci5zYV9kYXRhKSB8fCBtZXNzLT5odHlwZSA9PSAwKQogICAgIHsKQEAgLTI4NywxNCArMjg5LDE0IEBACiAgICAgICBtc2cubXNnX2NvbnRyb2wgPSBjb250cm9sX3UuY29udHJvbDsKICAgICAgIG1zZy5tc2dfY29udHJvbGxlbiA9IHNpemVvZihjb250cm9sX3UpOwogICAgICAgY21wdHIgPSBDTVNHX0ZJUlNUSERSKCZtc2cpOwotICAgICAgZGVzdC5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQlJPQURDQVNUOwotICAgICAgZGVzdC5zaW5fcG9ydCA9IGh0b25zKERIQ1BfQ0xJRU5UX1BPUlQpOwogICAgICAgcGt0ID0gKHN0cnVjdCBpbl9wa3RpbmZvICopQ01TR19EQVRBKGNtcHRyKTsKICAgICAgIHBrdC0+aXBpX2lmaW5kZXggPSBpZmFjZV9pbmRleDsKICAgICAgIHBrdC0+aXBpX3NwZWNfZHN0LnNfYWRkciA9IDA7CiAgICAgICBtc2cubXNnX2NvbnRyb2xsZW4gPSBjbXB0ci0+Y21zZ19sZW4gPSBDTVNHX0xFTihzaXplb2Yoc3RydWN0IGluX3BrdGluZm8pKTsKICAgICAgIGNtcHRyLT5jbXNnX2xldmVsID0gU09MX0lQOwotICAgICAgY21wdHItPmNtc2dfdHlwZSA9IElQX1BLVElORk87CisgICAgICBjbXB0ci0+Y21zZ190eXBlID0gSVBfUEtUSU5GTzsgIAorICAgICAgZGVzdC5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQlJPQURDQVNUOworICAgICAgZGVzdC5zaW5fcG9ydCA9IGh0b25zKERIQ1BfQ0xJRU5UX1BPUlQpOwogICAgIH0KICAgZWxzZQogICAgIHsKQEAgLTMxMCw3ICszMTIsMzEgQEAKICAgICAgIHJlcS5hcnBfZmxhZ3MgPSBBVEZfQ09NOwogICAgICAgaW9jdGwoZGFlbW9uLT5kaGNwZmQsIFNJT0NTQVJQLCAmcmVxKTsKICAgICB9Ci0jZWxzZQorI2VsaWYgZGVmaW5lZChIQVZFX1NPTEFSSVNfTkVUV09SSykKKyAgZWxzZSBpZiAoKG50b2hzKG1lc3MtPmZsYWdzKSAmIDB4ODAwMCkgfHwgbWVzcy0+aGxlbiAhPSBFVEhFUl9BRERSX0xFTiB8fCBtZXNzLT5odHlwZSAhPSBBUlBIUkRfRVRIRVIpCisgICAgeworICAgICAgLyogYnJvYWRjYXN0IHRvIDI1NS4yNTUuMjU1LjI1NSAob3IgbWFjIGFkZHJlc3MgaW52YWxpZCkgKi8KKyAgICAgIGRlc3Quc2luX2FkZHIuc19hZGRyID0gSU5BRERSX0JST0FEQ0FTVDsKKyAgICAgIGRlc3Quc2luX3BvcnQgPSBodG9ucyhESENQX0NMSUVOVF9QT1JUKTsKKyAgICAgIC8qIG5vdGUgdGhhdCB3ZSBkb24ndCBzcGVjaWZ5IHRoZSBpbnRlcmZhY2UgaGVyZTogdGhhdCdzIGRvbmUgYnkgdGhlCisJIElQX1hNSVRfSUYgc29ja29wdCBsb3dlciBkb3duLiAqLworICAgIH0KKyAgZWxzZQorICAgIHsKKyAgICAgIC8qIHVuaWNhc3QgdG8gdW5jb25maWd1cmVkIGNsaWVudC4gSW5qZWN0IG1hYyBhZGRyZXNzIGRpcmVjdCBpbnRvIEFSUCBjYWNoZS4gCisJIE5vdGUgdGhhdCB0aGlzIG9ubHkgd29ya3MgZm9yIGV0aGVybmV0IG9uIHNvbGFyaXMsIGJlY2F1c2Ugd2UgdXNlIFNJT0NTQVJQCisJIGFuZCBub3QgU0lPQ1NYQVJQLCB3aGljaCB3b3VsZCBiZSBwZXJmZWN0LCBleGNlcHQgdGhhdCBpdCByZXR1cm5zIEVOWElPIAorCSBteXN0ZXJpb3VzbHkuIEJhaC4gRmFsbCBiYWNrIHRvIGJyb2FkY2FzdCBmb3Igb3RoZXIgbmV0IHR5cGVzLiAqLworICAgICAgc3RydWN0IGFycHJlcSByZXE7CisgICAgICBkZXN0LnNpbl9hZGRyID0gbWVzcy0+eWlhZGRyOworICAgICAgZGVzdC5zaW5fcG9ydCA9IGh0b25zKERIQ1BfQ0xJRU5UX1BPUlQpOworICAgICAgKigoc3RydWN0IHNvY2thZGRyX2luICopJnJlcS5hcnBfcGEpID0gZGVzdDsKKyAgICAgIHJlcS5hcnBfaGEuc2FfZmFtaWx5ID0gQUZfVU5TUEVDOworICAgICAgbWVtY3B5KHJlcS5hcnBfaGEuc2FfZGF0YSwgbWVzcy0+Y2hhZGRyLCBtZXNzLT5obGVuKTsKKyAgICAgIHJlcS5hcnBfZmxhZ3MgPSBBVEZfQ09NOworICAgICAgaW9jdGwoZGFlbW9uLT5kaGNwZmQsIFNJT0NTQVJQLCAmcmVxKTsKKyAgICB9CisjZWxpZiBkZWZpbmVkKEhBVkVfQlNEX05FVFdPUkspCiAgIGVsc2UgCiAgICAgewogICAgICAgc2VuZF92aWFfYnBmKG1lc3MsIGlvdi5pb3ZfbGVuLCBpZmFjZV9hZGRyLCAmaWZyKTsKQEAgLTMxOCw2ICszNDQsMTAgQEAKICAgICB9CiAjZW5kaWYKICAgIAorI2lmZGVmIEhBVkVfU09MQVJJU19ORVRXT1JLCisgIHNldHNvY2tvcHQoZGFlbW9uLT5kaGNwZmQsIElQUFJPVE9fSVAsIElQX1hNSVRfSUYsICZpZmFjZV9pbmRleCwgc2l6ZW9mKGlmYWNlX2luZGV4KSk7CisjZW5kaWYKKyAgCiAgIHdoaWxlKHNlbmRtc2coZGFlbW9uLT5kaGNwZmQsICZtc2csIDApID09IC0xICYmIHJldHJ5X3NlbmQoKSk7CiB9CiAgCkBAIC0zOTIsNyArNDIyLDkgQEAKICAgcmV0dXJuIDE7CiB9CiAJICAKLXN0cnVjdCBkaGNwX2NvbnRleHQgKmFkZHJlc3NfYXZhaWxhYmxlKHN0cnVjdCBkaGNwX2NvbnRleHQgKmNvbnRleHQsIHN0cnVjdCBpbl9hZGRyIHRhZGRyKQorc3RydWN0IGRoY3BfY29udGV4dCAqYWRkcmVzc19hdmFpbGFibGUoc3RydWN0IGRoY3BfY29udGV4dCAqY29udGV4dCwgCisJCQkJICAgICAgIHN0cnVjdCBpbl9hZGRyIHRhZGRyLAorCQkJCSAgICAgICBzdHJ1Y3QgZGhjcF9uZXRpZCAqbmV0aWRzKQogewogICAvKiBDaGVjayBpcyBhbiBhZGRyZXNzIGlzIE9LIGZvciB0aGlzIG5ldHdvcmssIGNoZWNrIGFsbAogICAgICBwb3NzaWJsZSByYW5nZXMuIE1ha2Ugc3VyZSB0aGF0IHRoZSBhZGRyZXNzIGlzbid0IGluIHVzZQpAQCAtNDEyLDE0ICs0NDQsMTcgQEAKIAogICAgICAgaWYgKCEodG1wLT5mbGFncyAmIENPTlRFWFRfU1RBVElDKSAmJgogCSAgYWRkciA+PSBzdGFydCAmJgotCSAgYWRkciA8PSBlbmQpCisJICBhZGRyIDw9IGVuZCAmJgorCSAgbWF0Y2hfbmV0aWQodG1wLT5maWx0ZXIsIG5ldGlkcywgMSkpCiAJcmV0dXJuIHRtcDsKICAgICB9CiAKICAgcmV0dXJuIE5VTEw7CiB9CiAKLXN0cnVjdCBkaGNwX2NvbnRleHQgKm5hcnJvd19jb250ZXh0KHN0cnVjdCBkaGNwX2NvbnRleHQgKmNvbnRleHQsIHN0cnVjdCBpbl9hZGRyIHRhZGRyKQorc3RydWN0IGRoY3BfY29udGV4dCAqbmFycm93X2NvbnRleHQoc3RydWN0IGRoY3BfY29udGV4dCAqY29udGV4dCwgCisJCQkJICAgIHN0cnVjdCBpbl9hZGRyIHRhZGRyLAorCQkJCSAgICBzdHJ1Y3QgZGhjcF9uZXRpZCAqbmV0aWRzKQogewogICAvKiBXZSBzdGFydCBvZiB3aXRoIGEgc2V0IG9mIHBvc3NpYmxlIGNvbnRleHRzLCBhbGwgb24gdGhlIGN1cnJlbnQgcGh5c2ljYWwgaW50ZXJmYWNlLgogICAgICBUaGVzZSBhcmUgY2hhaW5lZCBvbiAtPmN1cnJlbnQuCkBAIC00MzEsMTkgKzQ2NiwyNCBAQAogICAKICAgc3RydWN0IGRoY3BfY29udGV4dCAqdG1wOwogCi0gIGlmICgodG1wID0gYWRkcmVzc19hdmFpbGFibGUoY29udGV4dCwgdGFkZHIpKSkKLSAgICByZXR1cm4gdG1wOworICBpZiAoISh0bXAgPSBhZGRyZXNzX2F2YWlsYWJsZShjb250ZXh0LCB0YWRkciwgbmV0aWRzKSkpCisgICAgeworICAgICAgZm9yICh0bXAgPSBjb250ZXh0OyB0bXA7IHRtcCA9IHRtcC0+Y3VycmVudCkKKyAgICAgIGlmIChpc19zYW1lX25ldCh0YWRkciwgdG1wLT5zdGFydCwgdG1wLT5uZXRtYXNrKSAmJiAKKwkgICh0bXAtPmZsYWdzICYgQ09OVEVYVF9TVEFUSUMpKQorCWJyZWFrOworICAgICAgCisgICAgICBpZiAoIXRtcCkKKwlmb3IgKHRtcCA9IGNvbnRleHQ7IHRtcDsgdG1wID0gdG1wLT5jdXJyZW50KQorCSAgaWYgKGlzX3NhbWVfbmV0KHRhZGRyLCB0bXAtPnN0YXJ0LCB0bXAtPm5ldG1hc2spKQorCSAgICBicmVhazsKKyAgICB9CiAgIAotICBmb3IgKHRtcCA9IGNvbnRleHQ7IHRtcDsgdG1wID0gdG1wLT5jdXJyZW50KQotICAgIGlmIChpc19zYW1lX25ldCh0YWRkciwgdG1wLT5zdGFydCwgdG1wLT5uZXRtYXNrKSAmJiAKLQkodG1wLT5mbGFncyAmIENPTlRFWFRfU1RBVElDKSkKLSAgICAgIHJldHVybiB0bXA7Ci0KLSAgZm9yICh0bXAgPSBjb250ZXh0OyB0bXA7IHRtcCA9IHRtcC0+Y3VycmVudCkKLSAgICBpZiAoaXNfc2FtZV9uZXQodGFkZHIsIHRtcC0+c3RhcnQsIHRtcC0+bmV0bWFzaykpCi0gICAgICByZXR1cm4gdG1wOwotCi0gIHJldHVybiBOVUxMOworICAvKiBPbmx5IG9uZSBjb250ZXh0IGFsbG93ZWQgbm93ICovCisgIGlmICh0bXApCisgICAgdG1wLT5jdXJyZW50ID0gTlVMTDsKKyAgCisgIHJldHVybiB0bXA7CiB9CiAKIHN0cnVjdCBkaGNwX2NvbmZpZyAqY29uZmlnX2ZpbmRfYnlfYWRkcmVzcyhzdHJ1Y3QgZGhjcF9jb25maWcgKmNvbmZpZ3MsIHN0cnVjdCBpbl9hZGRyIGFkZHIpCkBAIC00NTgsMTIgKzQ5OCwxMiBAQAogfQogCiAvKiBJcyBldmVyeSBtZW1iZXIgb2YgY2hlY2sgbWF0Y2hlZCBieSBhIG1lbWJlciBvZiBwb29sPyAKLSAgIElmIG5lZ29ubHksIG1hdGNoIHVubGVzcyB0aGVyZSdzIGEgbmVnYXRpdmUgdGFnIHdoaWNoIG1hdGNoZXMuICovCi1pbnQgbWF0Y2hfbmV0aWQoc3RydWN0IGRoY3BfbmV0aWQgKmNoZWNrLCBzdHJ1Y3QgZGhjcF9uZXRpZCAqcG9vbCwgaW50IG5lZ29ubHkpCisgICBJZiB0YWdub3RuZWVkZWQsIHVudGFnZ2VkIGlzIE9LICovCitpbnQgbWF0Y2hfbmV0aWQoc3RydWN0IGRoY3BfbmV0aWQgKmNoZWNrLCBzdHJ1Y3QgZGhjcF9uZXRpZCAqcG9vbCwgaW50IHRhZ25vdG5lZWRlZCkKIHsKICAgc3RydWN0IGRoY3BfbmV0aWQgKnRtcDE7CiAgIAotICBpZiAoIWNoZWNrICYmICFuZWdvbmx5KQorICBpZiAoIWNoZWNrICYmICF0YWdub3RuZWVkZWQpCiAgICAgcmV0dXJuIDA7CiAKICAgZm9yICg7IGNoZWNrOyBjaGVjayA9IGNoZWNrLT5uZXh0KQpAQCAtNDczLDcgKzUxMyw3IEBACiAJICBmb3IgKHRtcDEgPSBwb29sOyB0bXAxOyB0bXAxID0gdG1wMS0+bmV4dCkKIAkgICAgaWYgKHN0cmNtcChjaGVjay0+bmV0LCB0bXAxLT5uZXQpID09IDApCiAJICAgICAgYnJlYWs7Ci0JICBpZiAoIXRtcDEgfHwgbmVnb25seSkKKwkgIGlmICghdG1wMSkKIAkgICAgcmV0dXJuIDA7CiAJfQogICAgICAgZWxzZQpAQCAtNjkwLDE0ICs3MzAsMTQgQEAKICAgICB7CiAgICAgICBsaW5lbm8rKzsKICAgICAgIAotICAgICAgd2hpbGUgKHN0cmxlbihidWZmKSA+IDAgJiYgaXNzcGFjZShidWZmW3N0cmxlbihidWZmKS0xXSkpCisgICAgICB3aGlsZSAoc3RybGVuKGJ1ZmYpID4gMCAmJiBpc3NwYWNlKChpbnQpYnVmZltzdHJsZW4oYnVmZiktMV0pKQogCWJ1ZmZbc3RybGVuKGJ1ZmYpLTFdID0gMDsKICAgICAgIAogICAgICAgaWYgKCgqYnVmZiA9PSAnIycpIHx8ICgqYnVmZiA9PSAnKycpKQogCWNvbnRpbnVlOwogICAgICAgCi0gICAgICBmb3IgKGlwID0gYnVmZjsgKmlwICYmICFpc3NwYWNlKCppcCk7IGlwKyspOwotICAgICAgZm9yKDsgKmlwICYmIGlzc3BhY2UoKmlwKTsgaXArKykKKyAgICAgIGZvciAoaXAgPSBidWZmOyAqaXAgJiYgIWlzc3BhY2UoKGludCkqaXApOyBpcCsrKTsKKyAgICAgIGZvcig7ICppcCAmJiBpc3NwYWNlKChpbnQpKmlwKTsgaXArKykKIAkqaXAgPSAwOwogICAgICAgaWYgKCEqaXAgfHwgcGFyc2VfaGV4KGJ1ZmYsIGh3YWRkciwgRVRIRVJfQUREUl9MRU4sIE5VTEwsIE5VTEwpICE9IEVUSEVSX0FERFJfTEVOKQogCXsKQEAgLTc4NSw1OSArODI1LDQ0IEBACiAgIG15X3N5c2xvZyhMT0dfSU5GTywgXygicmVhZCAlcyAtICVkIGFkZHJlc3NlcyIpLCBFVEhFUlNGSUxFLCBjb3VudCk7CiB9CiAKLXZvaWQgZGhjcF9yZWFkX2hvc3RzKHZvaWQpCit2b2lkIGNoZWNrX2RoY3BfaG9zdHMoaW50IGZhdGFsKQogewotICBzdHJ1Y3QgZGhjcF9jb25maWcgKmNvbmZpZ3MsICpjcCwgKip1cDsKLSAgaW50IGNvdW50OwotCi0gIC8qIHJlbW92ZSBleGlzdGluZy4uLiAqLwotICBmb3IgKHVwID0gJmRhZW1vbi0+ZGhjcF9jb25mLCBjb25maWdzID0gZGFlbW9uLT5kaGNwX2NvbmY7IGNvbmZpZ3M7IGNvbmZpZ3MgPSBjcCkKLSAgICB7Ci0gICAgICBjcCA9IGNvbmZpZ3MtPm5leHQ7Ci0gICAgICAKLSAgICAgIGlmIChjb25maWdzLT5mbGFncyAmIENPTkZJR19CQU5LKQotCXsKLQkgIGlmIChjb25maWdzLT5mbGFncyAmIENPTkZJR19DTElEKQotCSAgICBmcmVlKGNvbmZpZ3MtPmNsaWQpOwotCSAgaWYgKGNvbmZpZ3MtPmZsYWdzICYgQ09ORklHX05FVElEKQotCSAgICBmcmVlKGNvbmZpZ3MtPm5ldGlkLm5ldCk7Ci0JICBpZiAoY29uZmlncy0+ZmxhZ3MgJiBDT05GSUdfTkFNRSkKLQkgICAgZnJlZShjb25maWdzLT5ob3N0bmFtZSk7Ci0KLQkgICp1cCA9IGNvbmZpZ3MtPm5leHQ7Ci0JICBmcmVlKGNvbmZpZ3MpOwotCX0KLSAgICAgIGVsc2UKLQl1cCA9ICZjb25maWdzLT5uZXh0OwotICAgIH0KKyAgLyogSWYgdGhlIHNhbWUgSVAgYXBwZWFycyBpbiBtb3JlIHRoYW4gb25lIGhvc3QgY29uZmlnLCB0aGVuIERJU0NPVkVSCisgICAgIGZvciBvbmUgb2YgdGhlIGhvc3RzIHdpbGwgZ2V0IHRoZSBhZGRyZXNzLCBidXQgUkVRVUVTVCB3aWxsIGJlIE5BS2VkLAorICAgICBzaW5jZSB0aGUgYWRkcmVzcyBpcyByZXNlcnZlZCBieSB0aGUgb3RoZXIgb25lIC0+IHByb3RvY29sIGxvb3AuIAorICAgICBBbHNvIGNoZWNrIHRoYXQgRlFETnMgbWF0Y2ggdGhlIGRvbWFpbiB3ZSBhcmUgdXNpbmcuICovCiAgIAotICBvbmVfZmlsZShkYWVtb24tPmRoY3BfaG9zdHNfZmlsZSwgMSwgMSk7Ci0KLSAgZm9yIChjb3VudCA9IDAsIGNvbmZpZ3MgPSBkYWVtb24tPmRoY3BfY29uZjsgY29uZmlnczsgY29uZmlncyA9IGNvbmZpZ3MtPm5leHQpCisgIHN0cnVjdCBkaGNwX2NvbmZpZyAqY29uZmlncywgKmNwOworIAorICBmb3IgKGNvbmZpZ3MgPSBkYWVtb24tPmRoY3BfY29uZjsgY29uZmlnczsgY29uZmlncyA9IGNvbmZpZ3MtPm5leHQpCiAgICAgewotICAgICAgaWYgKGNvbmZpZ3MtPmZsYWdzICYgQ09ORklHX0JBTkspCi0JewotCSAgY2hhciAqZG9tYWluOwotCSAgY291bnQrKzsKLQkgIAotCSAgZm9yIChjcCA9IGNvbmZpZ3MtPm5leHQ7IGNwOyBjcCA9IGNwLT5uZXh0KQotCSAgICBpZiAoKGNvbmZpZ3MtPmZsYWdzICYgY3AtPmZsYWdzICYgQ09ORklHX0FERFIpICYmIGNvbmZpZ3MtPmFkZHIuc19hZGRyID09IGNwLT5hZGRyLnNfYWRkcikKLQkgICAgICB7Ci0JCW15X3N5c2xvZyhMT0dfRVJSLCBfKCJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiAlcy4iKSwgaW5ldF9udG9hKGNwLT5hZGRyKSwgZGFlbW9uLT5kaGNwX2hvc3RzX2ZpbGUpOwotCQljb25maWdzLT5mbGFncyAmPSB+Q09ORklHX0FERFI7Ci0JICAgICAgfQotCSAgCi0JICBpZiAoKGNvbmZpZ3MtPmZsYWdzICYgQ09ORklHX05BTUUpICYmIChkb21haW4gPSBzdHJpcF9ob3N0bmFtZShjb25maWdzLT5ob3N0bmFtZSkpKQotCSAgICB7Ci0JICAgICAgbXlfc3lzbG9nKExPR19FUlIsIF8oImlsbGVnYWwgZG9tYWluICVzIGluICVzLiIpLCBkb21haW4sIGRhZW1vbi0+ZGhjcF9ob3N0c19maWxlKTsKLQkgICAgICBmcmVlKGNvbmZpZ3MtPmhvc3RuYW1lKTsKLQkgICAgICBjb25maWdzLT5mbGFncyAmPSB+Q09ORklHX05BTUU7Ci0JICAgIH0KLQl9CisgICAgICBjaGFyICpkb21haW47CisKKyAgICAgIGlmICgoY29uZmlncy0+ZmxhZ3MgJiBESE9QVF9CQU5LKSB8fCBmYXRhbCkKKyAgICAgICB7CisJIGZvciAoY3AgPSBjb25maWdzLT5uZXh0OyBjcDsgY3AgPSBjcC0+bmV4dCkKKwkgICBpZiAoKGNvbmZpZ3MtPmZsYWdzICYgY3AtPmZsYWdzICYgQ09ORklHX0FERFIpICYmIGNvbmZpZ3MtPmFkZHIuc19hZGRyID09IGNwLT5hZGRyLnNfYWRkcikKKwkgICAgIHsKKwkgICAgICAgaWYgKGZhdGFsKQorCQkgZGllKF8oImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzIGluIGRoY3AtY29uZmlnIGRpcmVjdGl2ZS4iKSwgCisJCSAgICAgaW5ldF9udG9hKGNwLT5hZGRyKSwgRUNfQkFEQ09ORik7CisJICAgICAgIGVsc2UKKwkJIG15X3N5c2xvZyhMT0dfRVJSLCBfKCJkdXBsaWNhdGUgSVAgYWRkcmVzcyAlcyBpbiAlcy4iKSwgCisJCQkgICBpbmV0X250b2EoY3AtPmFkZHIpLCBkYWVtb24tPmRoY3BfaG9zdHNfZmlsZSk7CisJICAgICAgIGNvbmZpZ3MtPmZsYWdzICY9IH5DT05GSUdfQUREUjsKKwkgICAgIH0KKwkgCisJIGlmICgoY29uZmlncy0+ZmxhZ3MgJiBDT05GSUdfTkFNRSkgJiYgKGRvbWFpbiA9IHN0cmlwX2hvc3RuYW1lKGNvbmZpZ3MtPmhvc3RuYW1lKSkpCisJICAgeworCSAgICAgaWYgKGZhdGFsKQorCSAgICAgICBkaWUoXygiaWxsZWdhbCBkb21haW4gJXMgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlLiIpLCBkb21haW4sIEVDX0JBRENPTkYpOworCSAgICAgZWxzZQorCSAgICAgICBteV9zeXNsb2coTE9HX0VSUiwgXygiaWxsZWdhbCBkb21haW4gJXMgaW4gJXMuIiksIGRvbWFpbiwgZGFlbW9uLT5kaGNwX2hvc3RzX2ZpbGUpOworCSAgICAgZnJlZShjb25maWdzLT5ob3N0bmFtZSk7CisJICAgICBjb25maWdzLT5mbGFncyAmPSB+Q09ORklHX05BTUU7CisJICAgfQorICAgICAgIH0KICAgICB9Ci0KLSAgbXlfc3lzbG9nKExPR19JTkZPLCBfKCJyZWFkICVzIC0gJWQgaG9zdHMiKSwgZGFlbW9uLT5kaGNwX2hvc3RzX2ZpbGUsIGNvdW50KTsKLQogfQogCiB2b2lkIGRoY3BfdXBkYXRlX2NvbmZpZ3Moc3RydWN0IGRoY3BfY29uZmlnICpjb25maWdzKQpAQCAtODU2LDIxICs4ODEsMzQgQEAKICAgICBpZiAoY29uZmlnLT5mbGFncyAmIENPTkZJR19BRERSX0hPU1RTKQogICAgICAgY29uZmlnLT5mbGFncyAmPSB+KENPTkZJR19BRERSIHwgQ09ORklHX0FERFJfSE9TVFMpOwogICAKLSAgZm9yIChjb25maWcgPSBjb25maWdzOyBjb25maWc7IGNvbmZpZyA9IGNvbmZpZy0+bmV4dCkKLSAgICBpZiAoIShjb25maWctPmZsYWdzICYgQ09ORklHX0FERFIpICYmCi0JKGNvbmZpZy0+ZmxhZ3MgJiBDT05GSUdfTkFNRSkgJiYgCi0JKGNyZWMgPSBjYWNoZV9maW5kX2J5X25hbWUoTlVMTCwgY29uZmlnLT5ob3N0bmFtZSwgMCwgRl9JUFY0KSkgJiYKLQkoY3JlYy0+ZmxhZ3MgJiBGX0hPU1RTKSkKLSAgICAgIHsKLQlpZiAoY29uZmlnX2ZpbmRfYnlfYWRkcmVzcyhjb25maWdzLCBjcmVjLT5hZGRyLmFkZHIuYWRkci5hZGRyNCkpCi0JICBteV9zeXNsb2coTE9HX1dBUk5JTkcsIF8oImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzICglcykgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlIiksIAotCQkgICAgaW5ldF9udG9hKGNyZWMtPmFkZHIuYWRkci5hZGRyLmFkZHI0KSwgY29uZmlnLT5ob3N0bmFtZSk7Ci0JZWxzZQotCSAgewotCSAgICBjb25maWctPmFkZHIgPSBjcmVjLT5hZGRyLmFkZHIuYWRkci5hZGRyNDsKLQkgICAgY29uZmlnLT5mbGFncyB8PSBDT05GSUdfQUREUiB8IENPTkZJR19BRERSX0hPU1RTOwotCSAgfQotICAgICAgfQorICAKKyAgaWYgKGRhZW1vbi0+cG9ydCAhPSAwKQorICAgIGZvciAoY29uZmlnID0gY29uZmlnczsgY29uZmlnOyBjb25maWcgPSBjb25maWctPm5leHQpCisgICAgICBpZiAoIShjb25maWctPmZsYWdzICYgQ09ORklHX0FERFIpICYmCisJICAoY29uZmlnLT5mbGFncyAmIENPTkZJR19OQU1FKSAmJiAKKwkgIChjcmVjID0gY2FjaGVfZmluZF9ieV9uYW1lKE5VTEwsIGNvbmZpZy0+aG9zdG5hbWUsIDAsIEZfSVBWNCkpICYmCisJICAoY3JlYy0+ZmxhZ3MgJiBGX0hPU1RTKSkKKwl7CisJICBpZiAoY2FjaGVfZmluZF9ieV9uYW1lKGNyZWMsIGNvbmZpZy0+aG9zdG5hbWUsIDAsIEZfSVBWNCkpCisJICAgIHsKKwkgICAgICAvKiB1c2UgcHJpbWFyeSAoZmlyc3QpIGFkZHJlc3MgKi8KKwkgICAgICB3aGlsZSAoY3JlYyAmJiAhKGNyZWMtPmZsYWdzICYgRl9SRVZFUlNFKSkKKwkJY3JlYyA9IGNhY2hlX2ZpbmRfYnlfbmFtZShjcmVjLCBjb25maWctPmhvc3RuYW1lLCAwLCBGX0lQVjQpOworCSAgICAgIGlmICghY3JlYykKKwkJY29udGludWU7IC8qIHNob3VsZCBiZSBuZXZlciAqLworCSAgICAgIG15X3N5c2xvZyhMT0dfV0FSTklORywgXygiJXMgaGFzIG1vcmUgdGhlbiBvbmUgYWRkcmVzcyBpbiBob3N0c2ZpbGUsIHVzaW5nICVzIGZvciBESENQIiksIAorCQkJY29uZmlnLT5ob3N0bmFtZSwgaW5ldF9udG9hKGNyZWMtPmFkZHIuYWRkci5hZGRyLmFkZHI0KSk7CisJICAgIH0KKworCSAgaWYgKGNvbmZpZ19maW5kX2J5X2FkZHJlc3MoY29uZmlncywgY3JlYy0+YWRkci5hZGRyLmFkZHIuYWRkcjQpKQorCSAgICBteV9zeXNsb2coTE9HX1dBUk5JTkcsIF8oImR1cGxpY2F0ZSBJUCBhZGRyZXNzICVzICglcykgaW4gZGhjcC1jb25maWcgZGlyZWN0aXZlIiksIAorCQkgICAgICBpbmV0X250b2EoY3JlYy0+YWRkci5hZGRyLmFkZHIuYWRkcjQpLCBjb25maWctPmhvc3RuYW1lKTsKKwkgIGVsc2UgCisJICAgIHsKKwkgICAgICBjb25maWctPmFkZHIgPSBjcmVjLT5hZGRyLmFkZHIuYWRkci5hZGRyNDsKKwkgICAgICBjb25maWctPmZsYWdzIHw9IENPTkZJR19BRERSIHwgQ09ORklHX0FERFJfSE9TVFM7CisJICAgIH0KKwl9CiB9CiAKIC8qIElmIHdlJ3ZlIG5vdCBmb3VuZCBhIGhvc3RuYW1lIGFueSBvdGhlciB3YXksIHRyeSBhbmQgc2VlIGlmIHRoZXJlJ3Mgb25lIGluIC9ldGMvaG9zdHMKQEAgLTg3OCw5ICs5MTYsMTMgQEAKICAgIGl0IGdldHMgc3RyaXBwZWQuICovCiBjaGFyICpob3N0X2Zyb21fZG5zKHN0cnVjdCBpbl9hZGRyIGFkZHIpCiB7Ci0gIHN0cnVjdCBjcmVjICpsb29rdXAgPSBjYWNoZV9maW5kX2J5X2FkZHIoTlVMTCwgKHN0cnVjdCBhbGxfYWRkciAqKSZhZGRyLCAwLCBGX0lQVjQpOworICBzdHJ1Y3QgY3JlYyAqbG9va3VwOwogICBjaGFyICpob3N0bmFtZSA9IE5VTEw7CisKKyAgaWYgKGRhZW1vbi0+cG9ydCA9PSAwKQorICAgIHJldHVybiBOVUxMOyAvKiBETlMgZGlzYWJsZWQuICovCiAgIAorICBsb29rdXAgPSBjYWNoZV9maW5kX2J5X2FkZHIoTlVMTCwgKHN0cnVjdCBhbGxfYWRkciAqKSZhZGRyLCAwLCBGX0lQVjQpOwogICBpZiAobG9va3VwICYmIChsb29rdXAtPmZsYWdzICYgRl9IT1NUUykpCiAgICAgewogICAgICAgaG9zdG5hbWUgPSBkYWVtb24tPmRoY3BfYnVmZjsKZGlmZiAtLWdpdCBhL3NyYy9kbnNtYXNxLmMgYi9zcmMvZG5zbWFzcS5jCmluZGV4IGU1MGVkMWMuLmRhMjE3NDAgMTAwNjQ0Ci0tLSBhL3NyYy9kbnNtYXNxLmMKKysrIGIvc3JjL2Ruc21hc3EuYwpAQCAtMSwxMyArMSwxNyBAQAotLyogZG5zbWFzcSBpcyBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwNiBTaW1vbiBLZWxsZXkKKy8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDcgU2ltb24gS2VsbGV5CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEuCi0KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSB2ZXJzaW9uIDMgZGF0ZWQgMjkgSnVuZSwgMjAwNy4KKyAKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgICAgIAorICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCiAKICNpbmNsdWRlICJkbnNtYXNxLmgiCkBAIC0zNyw3ICs0MSw3IEBACiAibm8tIgogI2VuZGlmCiAiREJ1cyAiCi0jaWZkZWYgTk9fR0VUVEVYVAorI2lmbmRlZiBMT0NBTEVESVIKICJuby0iCiAjZW5kaWYKICJJMThOICIKQEAgLTY2LDcgKzcwLDcgQEAKICAgc3RydWN0IHBhc3N3ZCAqZW50X3B3OwogICBsb25nIGksIG1heF9mZCA9IHN5c2NvbmYoX1NDX09QRU5fTUFYKTsKIAotI2lmbmRlZiBOT19HRVRURVhUCisjaWZkZWYgTE9DQUxFRElSCiAgIHNldGxvY2FsZShMQ19BTEwsICIiKTsKICAgYmluZHRleHRkb21haW4oImRuc21hc3EiLCBMT0NBTEVESVIpOyAKICAgdGV4dGRvbWFpbigiZG5zbWFzcSIpOwpAQCAtMTI4LDYgKzEzMiwxMSBAQAogICAgIGRpZShfKCJURlRQIHNlcnZlciBub3QgYXZhaWxhYmxlOiBzZXQgSEFWRV9URlRQIGluIHNyYy9jb25maWcuaCIpLCBOVUxMLCBFQ19CQURDT05GKTsKICNlbmRpZgogCisjaWZkZWYgSEFWRV9TT0xBUklTX05FVFdPUksKKyAgaWYgKGRhZW1vbi0+bWF4X2xvZ3MgIT0gMCkKKyAgICBkaWUoXygiYXN5Y2hyb25vdXMgbG9nZ2luZyBpcyBub3QgYXZhaWxhYmxlIHVuZGVyIFNvbGFyaXMiKSwgTlVMTCwgRUNfQkFEQ09ORik7CisjZW5kaWYKKyAgCiAgIG5vdyA9IGRuc21hc3FfdGltZSgpOwogICAKICAgaWYgKGRhZW1vbi0+ZGhjcCkKQEAgLTE2NiwxMCArMTc1LDEyIEBACiAJICAgIGRpZShfKCJubyBpbnRlcmZhY2Ugd2l0aCBhZGRyZXNzICVzIiksIGRhZW1vbi0+bmFtZWJ1ZmYsIEVDX0JBRE5FVCk7CiAJICB9CiAgICAgfQotICBlbHNlIGlmICghKGRhZW1vbi0+bGlzdGVuZXJzID0gY3JlYXRlX3dpbGRjYXJkX2xpc3RlbmVycygpKSkKKyAgZWxzZSBpZiAoKGRhZW1vbi0+cG9ydCAhPSAwIHx8IChkYWVtb24tPm9wdGlvbnMgJiBPUFRfVEZUUCkpICYmCisJICAgIShkYWVtb24tPmxpc3RlbmVycyA9IGNyZWF0ZV93aWxkY2FyZF9saXN0ZW5lcnMoKSkpCiAgICAgZGllKF8oImZhaWxlZCB0byBjcmVhdGUgbGlzdGVuaW5nIHNvY2tldDogJXMiKSwgTlVMTCwgRUNfQkFETkVUKTsKICAgCi0gIGNhY2hlX2luaXQoKTsKKyAgaWYgKGRhZW1vbi0+cG9ydCAhPSAwKQorICAgIGNhY2hlX2luaXQoKTsKIAogICBpZiAoZGFlbW9uLT5vcHRpb25zICYgT1BUX0RCVVMpCiAjaWZkZWYgSEFWRV9EQlVTCkBAIC0xODQsMzEgKzE5NSw4IEBACiAgIGRpZShfKCJEQnVzIG5vdCBhdmFpbGFibGU6IHNldCBIQVZFX0RCVVMgaW4gc3JjL2NvbmZpZy5oIiksIE5VTEwsIEVDX0JBRENPTkYpOwogI2VuZGlmCiAgIAotICAvKiBJZiBxdWVyeV9wb3J0IGlzIHNldCB0aGVuIGNyZWF0ZSBhIHNvY2tldCBub3csIGJlZm9yZSBkdW1waW5nIHJvb3QKLSAgICAgZm9yIHVzZSB0byBhY2Nlc3MgbmFtZXNlcnZlcnMgd2l0aG91dCBtb3JlIHNwZWNpZmljIHNvdXJjZSBhZGRyZXNzZXMuCi0gICAgIFRoaXMgYWxsb3dzIHF1ZXJ5X3BvcnQgdG8gYmUgYSBsb3cgcG9ydCAqLwotICBpZiAoZGFlbW9uLT5xdWVyeV9wb3J0KQotICAgIHsKLSAgICAgIHVuaW9uICBteXNvY2thZGRyIGFkZHI7Ci0gICAgICBtZW1zZXQoJmFkZHIsIDAsIHNpemVvZihhZGRyKSk7Ci0gICAgICBhZGRyLmluLnNpbl9mYW1pbHkgPSBBRl9JTkVUOwotICAgICAgYWRkci5pbi5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOwotICAgICAgYWRkci5pbi5zaW5fcG9ydCA9IGh0b25zKGRhZW1vbi0+cXVlcnlfcG9ydCk7Ci0jaWZkZWYgSEFWRV9TT0NLQUREUl9TQV9MRU4KLSAgICAgIGFkZHIuaW4uc2luX2xlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOwotI2VuZGlmCi0gICAgICBhbGxvY2F0ZV9zZmQoJmFkZHIsICZkYWVtb24tPnNmZHMpOwotI2lmZGVmIEhBVkVfSVBWNgotICAgICAgbWVtc2V0KCZhZGRyLCAwLCBzaXplb2YoYWRkcikpOwotICAgICAgYWRkci5pbjYuc2luNl9mYW1pbHkgPSBBRl9JTkVUNjsKLSAgICAgIGFkZHIuaW42LnNpbjZfYWRkciA9IGluNmFkZHJfYW55OwotICAgICAgYWRkci5pbjYuc2luNl9wb3J0ID0gaHRvbnMoZGFlbW9uLT5xdWVyeV9wb3J0KTsKLSNpZmRlZiBIQVZFX1NPQ0tBRERSX1NBX0xFTgotICAgICAgYWRkci5pbjYuc2luNl9sZW4gPSBzaXplb2Yoc3RydWN0IHNvY2thZGRyX2luNik7Ci0jZW5kaWYKLSAgICAgIGFsbG9jYXRlX3NmZCgmYWRkciwgJmRhZW1vbi0+c2Zkcyk7Ci0jZW5kaWYKLSAgICB9CisgIGlmIChkYWVtb24tPnBvcnQgIT0gMCkKKyAgICBwcmVfYWxsb2NhdGVfc2ZkcygpOwogICAKICAgLyogVXNlIGEgcGlwZSB0byBjYXJyeSBzaWduYWxzIGFuZCBvdGhlciBldmVudHMgYmFjayB0byB0aGUgZXZlbnQgbG9vcCAKICAgICAgaW4gYSByYWNlLWZyZWUgbWFubmVyICovCkBAIC0yNDcsOCArMjM1LDkgQEAKIAl9CiAjZW5kaWYKICAgICAgIAotICAgICAgY2hkaXIoIi8iKTsKLSAgICAgICAgICAgIAorICAgICAgaWYgKGNoZGlyKCIvIikgIT0gMCkKKwlkaWUoXygiY2Fubm90IGNoZGlyIHRvIGZpbGVzeXN0ZW0gcm9vdDogJXMiKSwgTlVMTCwgRUNfTUlTQyk7CisgICAgICAKICAgICAgIC8qIHdyaXRlIHBpZGZpbGUgX2FmdGVyXyBmb3JraW5nICEgKi8KICAgICAgIGlmIChkYWVtb24tPnJ1bmZpbGUgJiYgKHBpZGZpbGUgPSBmb3BlbihkYWVtb24tPnJ1bmZpbGUsICJ3IikpKQogICAgICAgCXsKQEAgLTI5NCw3ICsyODMsNyBAQAogICAgICAgCiAgICAgICBpZiAoZW50X3B3ICYmIGVudF9wdy0+cHdfdWlkICE9IDApCiAJeyAgICAgCi0jaWZkZWYgSEFWRV9MSU5VWF9ORVRXT1JLCisjaWYgZGVmaW5lZChIQVZFX0xJTlVYX05FVFdPUkspCiAJICAvKiBPbiBsaW51eCwgd2Uga2VlcCBDQVBfTkVUQURNSU4gKGZvciBBUlAtaW5qZWN0aW9uKSBhbmQKIAkgICAgIENBUF9ORVRfUkFXIChmb3IgaWNtcCkgaWYgd2UncmUgZG9pbmcgZGhjcCAqLwogCSAgY2FwX3VzZXJfaGVhZGVyX3QgaGRyID0gc2FmZV9tYWxsb2Moc2l6ZW9mKCpoZHIpKTsKQEAgLTMwOCw4ICsyOTcsMzMgQEAKIAkgIC8qIFRlbGwga2VybmVsIHRvIG5vdCBjbGVhciBjYXBhYmlsaXRpZXMgd2hlbiBkcm9wcGluZyByb290ICovCiAJICBpZiAoY2Fwc2V0KGhkciwgZGF0YSkgPT0gLTEgfHwgcHJjdGwoUFJfU0VUX0tFRVBDQVBTLCAxKSA9PSAtMSkKIAkgICAgYmFkX2NhcGFiaWxpdGllcyA9IGVycm5vOwotCSAgZWxzZQotI2VuZGlmCisKKyNlbGlmIGRlZmluZWQoSEFWRV9TT0xBUklTX1BSSVZTKQorCSAgLyogaHR0cDovL2RldmVsb3BlcnMuc3VuLmNvbS9zb2xhcmlzL2FydGljbGVzL3Byb2dyYW1fcHJpdmlsZWdlcy5odG1sICovCisJICBwcml2X3NldF90ICpwcml2X3NldDsKKwkgIAorCSAgaWYgKCEocHJpdl9zZXQgPSBwcml2X3N0cl90b19zZXQoImJhc2ljIiwgIiwiLCBOVUxMKSkgfHwKKwkgICAgICBwcml2X2FkZHNldChwcml2X3NldCwgUFJJVl9ORVRfSUNNUEFDQ0VTUykgPT0gLTEgfHwKKwkgICAgICBwcml2X2FkZHNldChwcml2X3NldCwgUFJJVl9TWVNfTkVUX0NPTkZJRykgPT0gLTEpCisJICAgIGJhZF9jYXBhYmlsaXRpZXMgPSBlcnJubzsKKworCSAgaWYgKHByaXZfc2V0ICYmIGJhZF9jYXBhYmlsaXRpZXMgPT0gMCkKKwkgICAgeworCSAgICAgIHByaXZfaW52ZXJzZShwcml2X3NldCk7CisJICAKKwkgICAgICBpZiAoc2V0cHByaXYoUFJJVl9PRkYsIFBSSVZfTElNSVQsIHByaXZfc2V0KSA9PSAtMSkKKwkJYmFkX2NhcGFiaWxpdGllcyA9IGVycm5vOworCSAgICB9CisKKwkgIGlmIChwcml2X3NldCkKKwkgICAgcHJpdl9mcmVlc2V0KHByaXZfc2V0KTsKKworI2VsaWYgZGVmaW5lZChIQVZFX1NPTEFSSVNfTkVUV09SSykKKworCSAgYmFkX2NhcGFiaWxpdGllcyA9IEVOT1RTVVA7CisjZW5kaWYgICAgCisKKwkgIGlmIChiYWRfY2FwYWJpbGl0aWVzID09IDApIAogCSAgICB7CiAJICAgICAgLyogZmluYWxseSBkcm9wIHJvb3QgKi8KIAkgICAgICBzZXR1aWQoZW50X3B3LT5wd191aWQpOwpAQCAtMzMxLDcgKzM0NSw5IEBACiAgICAgcHJjdGwoUFJfU0VUX0RVTVBBQkxFLCAxKTsKICNlbmRpZgogCi0gIGlmIChkYWVtb24tPmNhY2hlc2l6ZSAhPSAwKQorICBpZiAoZGFlbW9uLT5wb3J0ID09IDApCisgICAgbXlfc3lzbG9nKExPR19JTkZPLCBfKCJzdGFydGVkLCB2ZXJzaW9uICVzIEROUyBkaXNhYmxlZCIpLCBWRVJTSU9OKTsKKyAgZWxzZSBpZiAoZGFlbW9uLT5jYWNoZXNpemUgIT0gMCkKICAgICBteV9zeXNsb2coTE9HX0lORk8sIF8oInN0YXJ0ZWQsIHZlcnNpb24gJXMgY2FjaGVzaXplICVkIiksIFZFUlNJT04sIGRhZW1vbi0+Y2FjaGVzaXplKTsKICAgZWxzZQogICAgIG15X3N5c2xvZyhMT0dfSU5GTywgXygic3RhcnRlZCwgdmVyc2lvbiAlcyBjYWNoZSBkaXNhYmxlZCIpLCBWRVJTSU9OKTsKQEAgLTM1Niw3ICszNzIsNyBAQAogICAgICAgaWYgKGlmX3RtcC0+bmFtZSAmJiAhaWZfdG1wLT51c2VkKQogCW15X3N5c2xvZyhMT0dfV0FSTklORywgXygid2FybmluZzogaW50ZXJmYWNlICVzIGRvZXMgbm90IGN1cnJlbnRseSBleGlzdCIpLCBpZl90bXAtPm5hbWUpOwogICAgCi0gIGlmIChkYWVtb24tPm9wdGlvbnMgJiBPUFRfTk9fUkVTT0xWKQorICBpZiAoZGFlbW9uLT5wb3J0ICE9IDAgJiYgKGRhZW1vbi0+b3B0aW9ucyAmIE9QVF9OT19SRVNPTFYpKQogICAgIHsKICAgICAgIGlmIChkYWVtb24tPnJlc29sdl9maWxlcyAmJiAhZGFlbW9uLT5yZXNvbHZfZmlsZXMtPmlzX2RlZmF1bHQpCiAJbXlfc3lzbG9nKExPR19XQVJOSU5HLCBfKCJ3YXJuaW5nOiBpZ25vcmluZyByZXNvbHYtZmlsZSBmbGFnIGJlY2F1c2Ugbm8tcmVzb2x2IGlzIHNldCIpKTsKQEAgLTQxMCw2ICs0MjYsMTIgQEAKIAltYXhfZmQgPSBtYXhfZmQvMjsKICAgICAgIGVsc2UKIAltYXhfZmQgPSBtYXhfZmQgLSAyMDsKKyAgICAgIAorICAgICAgLyogaWYgd2UgaGF2ZSB0byB1c2UgYSBsaW1pdGVkIHJhbmdlIG9mIHBvcnRzLCAKKwkgdGhhdCB3aWxsIGxpbWl0IHRoZSBudW1iZXIgb2YgdHJhbnNmZXJzICovCisgICAgICBpZiAoZGFlbW9uLT5zdGFydF90ZnRwX3BvcnQgIT0gMCAmJgorCSAgZGFlbW9uLT5lbmRfdGZ0cF9wb3J0IC0gZGFlbW9uLT5zdGFydF90ZnRwX3BvcnQgKyAxIDwgbWF4X2ZkKQorCW1heF9mZCA9IGRhZW1vbi0+ZW5kX3RmdHBfcG9ydCAtIGRhZW1vbi0+c3RhcnRfdGZ0cF9wb3J0ICsgMTsKIAogICAgICAgaWYgKGRhZW1vbi0+dGZ0cF9tYXggPiBtYXhfZmQpCiAJewpAQCAtNDI5LDggKzQ1MSw5IEBACiAgICAgICBteV9zeXNsb2coTE9HX1dBUk5JTkcsIF8oInJ1bm5pbmcgYXMgcm9vdCIpKTsKICAgICB9CiAgIAotICBjaGVja19zZXJ2ZXJzKCk7Ci0KKyAgaWYgKGRhZW1vbi0+cG9ydCAhPSAwKQorICAgIGNoZWNrX3NlcnZlcnMoKTsKKyAgCiAgIHBpZCA9IGdldHBpZCgpOwogICAKICAgd2hpbGUgKDEpCkBAIC01MTcsNyArNTQwLDcgQEAKIAkgICAgbG9hZF9kaGNwKG5vdyk7CiAjZW5kaWYKIAotCSAgaWYgKCEoZGFlbW9uLT5vcHRpb25zICYgT1BUX05PX1BPTEwpKQorCSAgaWYgKGRhZW1vbi0+cG9ydCAhPSAwICYmICEoZGFlbW9uLT5vcHRpb25zICYgT1BUX05PX1BPTEwpKQogCSAgICBwb2xsX3Jlc29sdigpOwogCX0KICAgICAgIApAQCAtNTQxLDcgKzU2NCw3IEBACiAJfQogICAgICAgY2hlY2tfZGJ1c19saXN0ZW5lcnMoJnJzZXQsICZ3c2V0LCAmZXNldCk7CiAjZW5kaWYKLQorICAgICAgCiAgICAgICBjaGVja19kbnNfbGlzdGVuZXJzKCZyc2V0LCBub3cpOwogCiAjaWZkZWYgSEFWRV9URlRQCkBAIC02MjEsNyArNjQ0LDcgQEAKICAgICAgIHsKICAgICAgIGNhc2UgRVZFTlRfUkVMT0FEOgogCWNsZWFyX2NhY2hlX2FuZF9yZWxvYWQobm93KTsKLQlpZiAoZGFlbW9uLT5yZXNvbHZfZmlsZXMgJiYgKGRhZW1vbi0+b3B0aW9ucyAmIE9QVF9OT19QT0xMKSkKKwlpZiAoZGFlbW9uLT5wb3J0ICE9IDAgJiYgZGFlbW9uLT5yZXNvbHZfZmlsZXMgJiYgKGRhZW1vbi0+b3B0aW9ucyAmIE9QVF9OT19QT0xMKSkKIAkgIHsKIAkgICAgcmVsb2FkX3NlcnZlcnMoZGFlbW9uLT5yZXNvbHZfZmlsZXMtPm5hbWUpOwogCSAgICBjaGVja19zZXJ2ZXJzKCk7CkBAIC02MzAsNyArNjUzLDggQEAKIAlicmVhazsKIAkKICAgICAgIGNhc2UgRVZFTlRfRFVNUDoKLQlkdW1wX2NhY2hlKG5vdyk7CisJaWYgKGRhZW1vbi0+cG9ydCAhPSAwKQorCSAgZHVtcF9jYWNoZShub3cpOwogCWJyZWFrOwogCQogICAgICAgY2FzZSBFVkVOVF9BTEFSTToKQEAgLTc2MiwxNCArNzg2LDE2IEBACiAKIHZvaWQgY2xlYXJfY2FjaGVfYW5kX3JlbG9hZCh0aW1lX3Qgbm93KQogewotICBjYWNoZV9yZWxvYWQoZGFlbW9uLT5vcHRpb25zLCBkYWVtb24tPm5hbWVidWZmLCBkYWVtb24tPmRvbWFpbl9zdWZmaXgsIGRhZW1vbi0+YWRkbl9ob3N0cyk7CisgIGlmIChkYWVtb24tPnBvcnQgIT0gMCkKKyAgICBjYWNoZV9yZWxvYWQoZGFlbW9uLT5vcHRpb25zLCBkYWVtb24tPm5hbWVidWZmLCBkYWVtb24tPmRvbWFpbl9zdWZmaXgsIGRhZW1vbi0+YWRkbl9ob3N0cyk7CisgIAogICBpZiAoZGFlbW9uLT5kaGNwKQogICAgIHsKICAgICAgIGlmIChkYWVtb24tPm9wdGlvbnMgJiBPUFRfRVRIRVJTKQogCWRoY3BfcmVhZF9ldGhlcnMoKTsKLSAgICAgIGlmIChkYWVtb24tPmRoY3BfaG9zdHNfZmlsZSkKLQlkaGNwX3JlYWRfaG9zdHMoKTsKKyAgICAgIHJlcmVhZF9kaGNwKCk7CiAgICAgICBkaGNwX3VwZGF0ZV9jb25maWdzKGRhZW1vbi0+ZGhjcF9jb25mKTsKKyAgICAgIGNoZWNrX2RoY3BfaG9zdHMoMCk7CiAgICAgICBsZWFzZV91cGRhdGVfZnJvbV9jb25maWdzKCk7IAogICAgICAgbGVhc2VfdXBkYXRlX2ZpbGUobm93KTsgCiAgICAgICBsZWFzZV91cGRhdGVfZG5zKCk7CkBAIC03ODAsNyArODA2LDcgQEAKIHsKICAgc3RydWN0IHNlcnZlcmZkICpzZXJ2ZXJmZHA7CiAgIHN0cnVjdCBsaXN0ZW5lciAqbGlzdGVuZXI7Ci0gIGludCB3YWl0LCBpOworICBpbnQgd2FpdCA9IDAsIGk7CiAgIAogI2lmZGVmIEhBVkVfVEZUUAogICBpbnQgIHRmdHAgPSAwOwpAQCAtNzk0LDcgKzgyMCw4IEBACiAjZW5kaWYKICAgCiAgIC8qIHdpbGwgd2UgYmUgYWJsZSB0byBnZXQgbWVtb3J5PyAqLwotICBnZXRfbmV3X2ZyZWMobm93LCAmd2FpdCk7CisgIGlmIChkYWVtb24tPnBvcnQgIT0gMCkKKyAgICBnZXRfbmV3X2ZyZWMobm93LCAmd2FpdCk7CiAgIAogICBmb3IgKHNlcnZlcmZkcCA9IGRhZW1vbi0+c2Zkczsgc2VydmVyZmRwOyBzZXJ2ZXJmZHAgPSBzZXJ2ZXJmZHAtPm5leHQpCiAgICAgewpAQCAtODA1LDcgKzgzMiw3IEBACiAgIGZvciAobGlzdGVuZXIgPSBkYWVtb24tPmxpc3RlbmVyczsgbGlzdGVuZXI7IGxpc3RlbmVyID0gbGlzdGVuZXItPm5leHQpCiAgICAgewogICAgICAgLyogb25seSBsaXN0ZW4gZm9yIHF1ZXJpZXMgaWYgd2UgaGF2ZSByZXNvdXJjZXMgKi8KLSAgICAgIGlmICh3YWl0ID09IDApCisgICAgICBpZiAobGlzdGVuZXItPmZkICE9IC0xICYmIHdhaXQgPT0gMCkKIAl7CiAJICBGRF9TRVQobGlzdGVuZXItPmZkLCBzZXQpOwogCSAgYnVtcF9tYXhmZChsaXN0ZW5lci0+ZmQsIG1heGZkcCk7CkBAIC04MTMsMTMgKzg0MCwxNCBAQAogCiAgICAgICAvKiBkZWF0aCBvZiBhIGNoaWxkIGdvZXMgdGhyb3VnaCB0aGUgc2VsZWN0IGxvb3AsIHNvCiAJIHdlIGRvbid0IG5lZWQgdG8gZXhwbGljaXRseSBhcnJhbmdlIHRvIHdha2UgdXAgaGVyZSAqLwotICAgICAgZm9yIChpID0gMDsgaSA8IE1BWF9QUk9DUzsgaSsrKQotCWlmIChkYWVtb24tPnRjcF9waWRzW2ldID09IDApCi0JICB7Ci0JICAgIEZEX1NFVChsaXN0ZW5lci0+dGNwZmQsIHNldCk7Ci0JICAgIGJ1bXBfbWF4ZmQobGlzdGVuZXItPnRjcGZkLCBtYXhmZHApOwotCSAgICBicmVhazsKLQkgIH0KKyAgICAgIGlmICAobGlzdGVuZXItPnRjcGZkICE9IC0xKQorCWZvciAoaSA9IDA7IGkgPCBNQVhfUFJPQ1M7IGkrKykKKwkgIGlmIChkYWVtb24tPnRjcF9waWRzW2ldID09IDApCisJICAgIHsKKwkgICAgICBGRF9TRVQobGlzdGVuZXItPnRjcGZkLCBzZXQpOworCSAgICAgIGJ1bXBfbWF4ZmQobGlzdGVuZXItPnRjcGZkLCBtYXhmZHApOworCSAgICAgIGJyZWFrOworCSAgICB9CiAKICNpZmRlZiBIQVZFX1RGVFAKICAgICAgIGlmICh0ZnRwIDw9IGRhZW1vbi0+dGZ0cF9tYXggJiYgbGlzdGVuZXItPnRmdHBmZCAhPSAtMSkKQEAgLTg0NSw3ICs4NzMsNyBAQAogICAKICAgZm9yIChsaXN0ZW5lciA9IGRhZW1vbi0+bGlzdGVuZXJzOyBsaXN0ZW5lcjsgbGlzdGVuZXIgPSBsaXN0ZW5lci0+bmV4dCkKICAgICB7Ci0gICAgICBpZiAoRkRfSVNTRVQobGlzdGVuZXItPmZkLCBzZXQpKQorICAgICAgaWYgKGxpc3RlbmVyLT5mZCAhPSAtMSAmJiBGRF9JU1NFVChsaXN0ZW5lci0+ZmQsIHNldCkpCiAJcmVjZWl2ZV9xdWVyeShsaXN0ZW5lciwgbm93KTsgCiAgCiAjaWZkZWYgSEFWRV9URlRQICAgICAKQEAgLTg1Myw3ICs4ODEsNyBAQAogCXRmdHBfcmVxdWVzdChsaXN0ZW5lciwgbm93KTsKICNlbmRpZgogCi0gICAgICBpZiAoRkRfSVNTRVQobGlzdGVuZXItPnRjcGZkLCBzZXQpKQorICAgICAgaWYgKGxpc3RlbmVyLT50Y3BmZCAhPSAtMSAmJiBGRF9JU1NFVChsaXN0ZW5lci0+dGNwZmQsIHNldCkpCiAJewogCSAgaW50IGNvbmZkOwogCSAgc3RydWN0IGlyZWMgKmlmYWNlID0gTlVMTDsKQEAgLTk5Nyw3ICsxMDI1LDcgQEAKICAgaW50IGdvdHJlcGx5ID0gMDsKICAgdGltZV90IHN0YXJ0LCBub3c7CiAKLSNpZmRlZiBIQVZFX0xJTlVYX05FVFdPUksKKyNpZiBkZWZpbmVkKEhBVkVfTElOVVhfTkVUV09SSykgfHwgZGVmaW5lZCAoSEFWRV9TT0xBUklTX05FVFdPUkspCiAgIGlmICgoZmQgPSBtYWtlX2ljbXBfc29jaygpKSA9PSAtMSkKICAgICByZXR1cm4gMDsKICNlbHNlCkBAIC0xMDcyLDcgKzExMDAsNyBAQAogCX0KICAgICB9CiAgIAotI2lmZGVmIEhBVkVfTElOVVhfTkVUV09SSworI2lmIGRlZmluZWQoSEFWRV9MSU5VWF9ORVRXT1JLKSB8fCBkZWZpbmVkKEhBVkVfU09MQVJJU19ORVRXT1JLKQogICBjbG9zZShmZCk7CiAjZWxzZQogICBvcHQgPSAxOwpkaWZmIC0tZ2l0IGEvc3JjL2Ruc21hc3EuaCBiL3NyYy9kbnNtYXNxLmgKaW5kZXggMGU3NDBiNS4uZDRmNDlmMyAxMDA2NDQKLS0tIGEvc3JjL2Ruc21hc3EuaAorKysgYi9zcmMvZG5zbWFzcS5oCkBAIC0xLDE2ICsxLDIwIEBACi0vKiBkbnNtYXNxIGlzIENvcHlyaWdodCAoYykgMjAwMC0yMDA3IFNpbW9uIEtlbGxleQotCisvKiBkbnNtYXNxIGlzIENvcHlyaWdodCAoYykgMjAwMC0yMDA4IFNpbW9uIEtlbGxleQorIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgZGF0ZWQgSnVuZSwgMTk5MS4KLQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIHZlcnNpb24gMyBkYXRlZCAyOSBKdW5lLCAyMDA3LgorIAogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgCisgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogKi8KIAotI2RlZmluZSBDT1BZUklHSFQgIkNvcHlyaWdodCAoQykgMjAwMC0yMDA3IFNpbW9uIEtlbGxleSIgCisjZGVmaW5lIENPUFlSSUdIVCAiQ29weXJpZ2h0IChDKSAyMDAwLTIwMDggU2ltb24gS2VsbGV5IiAKIAogLyogZ2V0IHRoZXNlIGJlZm9yZSBjb25maWcuaCAgZm9yIElQdjYgc3R1ZmYuLi4gKi8KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4gCkBAIC0yOCw3ICszMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAKICNkZWZpbmUgZ2V0dGV4dF9ub29wKFMpIChTKQotI2lmZGVmIE5PX0dFVFRFWFQKKyNpZm5kZWYgTE9DQUxFRElSCiAjICBkZWZpbmUgXyhTKSAoUykKICNlbHNlCiAjICBpbmNsdWRlIDxsaWJpbnRsLmg+CkBAIC00MCw2ICs0NCw5IEBACiAjaW5jbHVkZSA8c3lzL3N0YXQuaD4KICNpbmNsdWRlIDxzeXMvc29ja2V0Lmg+CiAjaW5jbHVkZSA8c3lzL2lvY3RsLmg+CisjaWYgZGVmaW5lZChIQVZFX1NPTEFSSVNfTkVUV09SSykKKyNpbmNsdWRlIDxzeXMvc29ja2lvLmg+CisjZW5kaWYKICNpbmNsdWRlIDxzeXMvc2VsZWN0Lmg+CiAjaW5jbHVkZSA8c3lzL3dhaXQuaD4KICNpbmNsdWRlIDxzeXMvdGltZS5oPgpAQCAtNTgsNyArNjUsNyBAQAogI2luY2x1ZGUgPHB3ZC5oPgogI2luY2x1ZGUgPGdycC5oPgogI2luY2x1ZGUgPHN0ZGFyZy5oPgotI2lmIGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRlZmluZWQoX19OZXRCU0RfXykKKyNpZiBkZWZpbmVkKF9fT3BlbkJTRF9fKSB8fCBkZWZpbmVkKF9fTmV0QlNEX18pIHx8IGRlZmluZWQoX19zdW5fXykKICMgIGluY2x1ZGUgPG5ldGluZXQvaWZfZXRoZXIuaD4KICNlbHNlCiAjICBpbmNsdWRlIDxuZXQvZXRoZXJuZXQuaD4KQEAgLTc0LDE1ICs4MSwxNyBAQAogIyAgaW5jbHVkZSA8bmV0L2lmX2RsLmg+CiAjZW5kaWYKIAotI2lmZGVmIEhBVkVfTElOVVhfTkVUV09SSworI2lmIGRlZmluZWQoSEFWRV9MSU5VWF9ORVRXT1JLKQogI2luY2x1ZGUgPGxpbnV4L2NhcGFiaWxpdHkuaD4KIC8qIFRoZXJlIGRvZXNuJ3Qgc2VlbSB0byBiZSBhIHVuaXZlcnNhbGx5LWF2YWlsYWJsZSAKICAgIHVzZXJwYWNlIGhlYWRlciBmb3IgdGhpcy4gKi8KIGV4dGVybiBpbnQgY2Fwc2V0KGNhcF91c2VyX2hlYWRlcl90IGhlYWRlciwgY2FwX3VzZXJfZGF0YV90IGRhdGEpOwogI2luY2x1ZGUgPHN5cy9wcmN0bC5oPgorI2VsaWYgZGVmaW5lZChIQVZFX1NPTEFSSVNfUFJJVlMpCisjaW5jbHVkZSA8cHJpdi5oPgogI2VuZGlmCiAKLS8qIGRhZW1vbiBpcyBmdW5jdGlvbiBpbiB0ZWggQyBsaWJyYXJ5Li4uLiAqLworLyogZGFlbW9uIGlzIGZ1bmN0aW9uIGluIHRoZSBDIGxpYnJhcnkuLi4uICovCiAjZGVmaW5lIGRhZW1vbiBkbnNtYXNxX2RhZW1vbgogCiAvKiBBc3luYyBldmVudCBxdWV1ZSAqLwpAQCAtMTQwLDEyICsxNDksMTUgQEAKICNkZWZpbmUgT1BUX0JPT1RQX0RZTkFNSUMgICgxPDwyMCkKICNkZWZpbmUgT1BUX05PX1BJTkcgICAgICAgICgxPDwyMSkKICNkZWZpbmUgT1BUX0xFQVNFX1JPICAgICAgICgxPDwyMikKKyNkZWZpbmUgT1BUX0FMTF9TRVJWRVJTICAgICgxPDwyMykKICNkZWZpbmUgT1BUX1JFTE9BRCAgICAgICAgICgxPDwyNCkKICNkZWZpbmUgT1BUX1RGVFAgICAgICAgICAgICgxPDwyNSkKICNkZWZpbmUgT1BUX1RGVFBfU0VDVVJFICAgICgxPDwyNikKICNkZWZpbmUgT1BUX1RGVFBfTk9CTE9DSyAgICgxPDwyNykKICNkZWZpbmUgT1BUX0xPR19PUFRTICAgICAgICgxPDwyOCkKICNkZWZpbmUgT1BUX1RGVFBfQVBSRUYgICAgICgxPDwyOSkKKyNkZWZpbmUgT1BUX05PX09WRVJSSURFICAgICgxPDwzMCkKKyNkZWZpbmUgT1BUX05PX1JFQklORCAgICAgICgxPDwzMSkKIAogc3RydWN0IGFsbF9hZGRyIHsKICAgdW5pb24gewpAQCAtMjY1LDE4ICsyNzcsMjIgQEAKICNkZWZpbmUgU0VSVl9GUk9NX0RCVVMgICAgICAgMTI4ICAvKiAxIGlmIHNvdXJjZSBpcyBEQnVzICovCiAjZGVmaW5lIFNFUlZfTUFSSyAgICAgICAgICAgIDI1NiAgLyogZm9yIG1hcmstYW5kLWRlbGV0ZSAqLwogI2RlZmluZSBTRVJWX1RZUEUgICAgKFNFUlZfSEFTX0RPTUFJTiB8IFNFUlZfRk9SX05PRE9UUykKKyNkZWZpbmUgU0VSVl9DT1VOVEVEICAgICAgICAgNTEyICAvKiB3b3Jrc3BhY2UgZm9yIGxvZyBjb2RlICovCiAKIHN0cnVjdCBzZXJ2ZXJmZCB7CiAgIGludCBmZDsKICAgdW5pb24gbXlzb2NrYWRkciBzb3VyY2VfYWRkcjsKKyAgY2hhciBpbnRlcmZhY2VbSUZfTkFNRVNJWkUrMV07CiAgIHN0cnVjdCBzZXJ2ZXJmZCAqbmV4dDsKIH07CiAKIHN0cnVjdCBzZXJ2ZXIgewogICB1bmlvbiBteXNvY2thZGRyIGFkZHIsIHNvdXJjZV9hZGRyOworICBjaGFyIGludGVyZmFjZVtJRl9OQU1FU0laRSsxXTsKICAgc3RydWN0IHNlcnZlcmZkICpzZmQ7IAogICBjaGFyICpkb21haW47IC8qIHNldCBpZiB0aGlzIHNlcnZlciBvbmx5IGhhbmRsZXMgYSBkb21haW4uICovIAogICBpbnQgZmxhZ3MsIHRjcGZkOworICB1bnNpZ25lZCBpbnQgcXVlcmllcywgZmFpbGVkX3F1ZXJpZXM7CiAgIHN0cnVjdCBzZXJ2ZXIgKm5leHQ7IAogfTsKIApAQCAtMzU0LDYgKzM3MCw3IEBACiAgIHN0cnVjdCBpbl9hZGRyIGFkZHI7CiAgIHVuc2lnbmVkIGNoYXIgKnZlbmRvcmNsYXNzLCAqdXNlcmNsYXNzOwogICB1bnNpZ25lZCBpbnQgdmVuZG9yY2xhc3NfbGVuLCB1c2VyY2xhc3NfbGVuOworICBpbnQgbGFzdF9pbnRlcmZhY2U7CiAgIHN0cnVjdCBkaGNwX2xlYXNlICpuZXh0OwogfTsKIApAQCAtNDA2LDYgKzQyMyw3IEBACiAjZGVmaW5lIERIT1BUX0VOQ0FQU1VMQVRFICAgICAgICA0CiAjZGVmaW5lIERIT1BUX1ZFTkRPUl9NQVRDSCAgICAgICA4CiAjZGVmaW5lIERIT1BUX0ZPUkNFICAgICAgICAgICAgIDE2CisjZGVmaW5lIERIT1BUX0JBTksgICAgICAgICAgICAgIDMyCiAKIHN0cnVjdCBkaGNwX2Jvb3QgewogICBjaGFyICpmaWxlLCAqc25hbWU7CkBAIC00MTksMTAgKzQzNywxMSBAQAogI2RlZmluZSBNQVRDSF9DSVJDVUlUICAgIDMKICNkZWZpbmUgTUFUQ0hfUkVNT1RFICAgICA0CiAjZGVmaW5lIE1BVENIX1NVQlNDUklCRVIgNQorI2RlZmluZSBNQVRDSF9PUFRJT04gICAgIDYKIAogLyogdmVuZG9yY2xhc3MsIHVzZXJjbGFzcywgcmVtb3RlLWlkIG9yIGNpY3VpdC1pZCAqLwogc3RydWN0IGRoY3BfdmVuZG9yIHsKLSAgaW50IGxlbiwgbWF0Y2hfdHlwZTsKKyAgaW50IGxlbiwgbWF0Y2hfdHlwZSwgb3B0aW9uOwogICBjaGFyICpkYXRhOwogICBzdHJ1Y3QgZGhjcF9uZXRpZCBuZXRpZDsKICAgc3RydWN0IGRoY3BfdmVuZG9yICpuZXh0OwpAQCAtNTIyLDcgKzU0MSw3IEBACiAgIGludCBtYXhfbG9nczsgIC8qIHF1ZXVlIGxpbWl0ICovCiAgIGludCBjYWNoZXNpemUsIGZ0YWJzaXplOwogICBpbnQgcG9ydCwgcXVlcnlfcG9ydDsKLSAgdW5zaWduZWQgbG9uZyBsb2NhbF90dGw7CisgIHVuc2lnbmVkIGxvbmcgbG9jYWxfdHRsLCBuZWdfdHRsOwogICBzdHJ1Y3QgaG9zdHNmaWxlICphZGRuX2hvc3RzOwogICBzdHJ1Y3QgZGhjcF9jb250ZXh0ICpkaGNwOwogICBzdHJ1Y3QgZGhjcF9jb25maWcgKmRoY3BfY29uZjsKQEAgLTUzMCwxNyArNTQ5LDIwIEBACiAgIHN0cnVjdCBkaGNwX3ZlbmRvciAqZGhjcF92ZW5kb3JzOwogICBzdHJ1Y3QgZGhjcF9tYWMgKmRoY3BfbWFjczsKICAgc3RydWN0IGRoY3BfYm9vdCAqYm9vdF9jb25maWc7Ci0gIHN0cnVjdCBkaGNwX25ldGlkX2xpc3QgKmRoY3BfaWdub3JlLCAqZGhjcF9pZ25vcmVfbmFtZXM7Ci0gIGNoYXIgKmRoY3BfaG9zdHNfZmlsZTsKLSAgaW50IGRoY3BfbWF4LCB0ZnRwX21heDsgCisgIHN0cnVjdCBkaGNwX25ldGlkX2xpc3QgKmRoY3BfaWdub3JlLCAqZGhjcF9pZ25vcmVfbmFtZXMsICpmb3JjZV9icm9hZGNhc3Q7CisgIGNoYXIgKmRoY3BfaG9zdHNfZmlsZSwgKmRoY3Bfb3B0c19maWxlOworICBpbnQgZGhjcF9tYXgsIHRmdHBfbWF4OworICBpbnQgc3RhcnRfdGZ0cF9wb3J0LCBlbmRfdGZ0cF9wb3J0OyAKICAgdW5zaWduZWQgaW50IG1pbl9sZWFzZXRpbWU7CiAgIHN0cnVjdCBkb2N0b3IgKmRvY3RvcnM7CiAgIHVuc2lnbmVkIHNob3J0IGVkbnNfcGt0c3o7CisgIGNoYXIgKnRmdHBfcHJlZml4OyAKIAogICAvKiBnbG9iYWxseSB1c2VkIHN0dWZmIGZvciBETlMgKi8KICAgY2hhciAqcGFja2V0OyAvKiBwYWNrZXQgYnVmZmVyICovCiAgIGludCBwYWNrZXRfYnVmZl9zejsgLyogc2l6ZSBvZiBhYm92ZSAqLwogICBjaGFyICpuYW1lYnVmZjsgLyogTUFYRE5BTUUgc2l6ZSBidWZmZXIgKi8KKyAgdW5zaWduZWQgaW50IGxvY2FsX2Fuc3dlciwgcXVlcmllc19mb3J3YXJkZWQ7CiAgIHN0cnVjdCBzZXJ2ZXJmZCAqc2ZkczsKICAgc3RydWN0IGlyZWMgKmludGVyZmFjZXM7CiAgIHN0cnVjdCBsaXN0ZW5lciAqbGlzdGVuZXJzOwpAQCAtNTczLDcgKzU5NSw3IEBACiAKICAgLyogVEZUUCBzdHVmZiAqLwogICBzdHJ1Y3QgdGZ0cF90cmFuc2ZlciAqdGZ0cF90cmFuczsKLSAgY2hhciAqdGZ0cF9wcmVmaXg7IAorCiB9ICpkYWVtb247CiAKIC8qIGNhY2hlLmMgKi8KQEAgLTYwMSw3ICs2MjMsNyBAQAogc2l6ZV90IHNldHVwX3JlcGx5KEhFQURFUiAqaGVhZGVyLCBzaXplX3QgIHFsZW4sCiAJCSAgIHN0cnVjdCBhbGxfYWRkciAqYWRkcnAsIHVuc2lnbmVkIHNob3J0IGZsYWdzLAogCQkgICB1bnNpZ25lZCBsb25nIGxvY2FsX3R0bCk7Ci12b2lkIGV4dHJhY3RfYWRkcmVzc2VzKEhFQURFUiAqaGVhZGVyLCBzaXplX3QgcWxlbiwgY2hhciAqbmFtZWJ1ZmYsIHRpbWVfdCBub3cpOworaW50IGV4dHJhY3RfYWRkcmVzc2VzKEhFQURFUiAqaGVhZGVyLCBzaXplX3QgcWxlbiwgY2hhciAqbmFtZWJ1ZmYsIHRpbWVfdCBub3cpOwogc2l6ZV90IGFuc3dlcl9yZXF1ZXN0KEhFQURFUiAqaGVhZGVyLCBjaGFyICpsaW1pdCwgc2l6ZV90IHFsZW4sICAKIAkJICAgc3RydWN0IGluX2FkZHIgbG9jYWxfYWRkciwgc3RydWN0IGluX2FkZHIgbG9jYWxfbmV0bWFzaywgdGltZV90IG5vdyk7CiBpbnQgY2hlY2tfZm9yX2JvZ3VzX3dpbGRjYXJkKEhFQURFUiAqaGVhZGVyLCBzaXplX3QgcWxlbiwgY2hhciAqbmFtZSwgCkBAIC02NDksNyArNjcxLDcgQEAKIC8qIG9wdGlvbi5jICovCiB2b2lkIHJlYWRfb3B0cyAoaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBjaGFyICpjb21waWxlX29wdHMpOwogY2hhciAqb3B0aW9uX3N0cmluZyh1bnNpZ25lZCBjaGFyIG9wdCk7Ci12b2lkIG9uZV9maWxlKGNoYXIgKmZpbGUsIGludCBuZXN0LCBpbnQgaG9zdHMpOwordm9pZCByZXJlYWRfZGhjcCh2b2lkKTsKIAogLyogZm9yd2FyZC5jICovCiB2b2lkIHJlcGx5X3F1ZXJ5KHN0cnVjdCBzZXJ2ZXJmZCAqc2ZkLCB0aW1lX3Qgbm93KTsKQEAgLTY2MCw3ICs2ODIsOCBAQAogc3RydWN0IGZyZWMgKmdldF9uZXdfZnJlYyh0aW1lX3Qgbm93LCBpbnQgKndhaXQpOwogCiAvKiBuZXR3b3JrLmMgKi8KLXN0cnVjdCBzZXJ2ZXJmZCAqYWxsb2NhdGVfc2ZkKHVuaW9uIG15c29ja2FkZHIgKmFkZHIsIHN0cnVjdCBzZXJ2ZXJmZCAqKnNmZHMpOworaW50IGxvY2FsX2JpbmQoaW50IGZkLCB1bmlvbiBteXNvY2thZGRyICphZGRyLCBjaGFyICppbnRuYW1lLCBpbnQgaXNfdGNwKTsKK3ZvaWQgcHJlX2FsbG9jYXRlX3NmZHModm9pZCk7CiBpbnQgcmVsb2FkX3NlcnZlcnMoY2hhciAqZm5hbWUpOwogdm9pZCBjaGVja19zZXJ2ZXJzKHZvaWQpOwogaW50IGVudW1lcmF0ZV9pbnRlcmZhY2VzKCk7CkBAIC02NzUsOCArNjk4LDEyIEBACiB2b2lkIGRoY3BfaW5pdCh2b2lkKTsKIHZvaWQgZGhjcF9wYWNrZXQodGltZV90IG5vdyk7CiAKLXN0cnVjdCBkaGNwX2NvbnRleHQgKmFkZHJlc3NfYXZhaWxhYmxlKHN0cnVjdCBkaGNwX2NvbnRleHQgKmNvbnRleHQsIHN0cnVjdCBpbl9hZGRyIGFkZHIpOwotc3RydWN0IGRoY3BfY29udGV4dCAqbmFycm93X2NvbnRleHQoc3RydWN0IGRoY3BfY29udGV4dCAqY29udGV4dCwgc3RydWN0IGluX2FkZHIgdGFkZHIpOworc3RydWN0IGRoY3BfY29udGV4dCAqYWRkcmVzc19hdmFpbGFibGUoc3RydWN0IGRoY3BfY29udGV4dCAqY29udGV4dCwgCisJCQkJICAgICAgIHN0cnVjdCBpbl9hZGRyIGFkZHIsCisJCQkJICAgICAgIHN0cnVjdCBkaGNwX25ldGlkICpuZXRpZHMpOworc3RydWN0IGRoY3BfY29udGV4dCAqbmFycm93X2NvbnRleHQoc3RydWN0IGRoY3BfY29udGV4dCAqY29udGV4dCwgCisJCQkJICAgIHN0cnVjdCBpbl9hZGRyIHRhZGRyLAorCQkJCSAgICBzdHJ1Y3QgZGhjcF9uZXRpZCAqbmV0aWRzKTsKIGludCBtYXRjaF9uZXRpZChzdHJ1Y3QgZGhjcF9uZXRpZCAqY2hlY2ssIHN0cnVjdCBkaGNwX25ldGlkICpwb29sLCBpbnQgbmVnb25seSk7CiBpbnQgYWRkcmVzc19hbGxvY2F0ZShzdHJ1Y3QgZGhjcF9jb250ZXh0ICpjb250ZXh0LAogCQkgICAgIHN0cnVjdCBpbl9hZGRyICphZGRycCwgdW5zaWduZWQgY2hhciAqaHdhZGRyLCBpbnQgaHdfbGVuLApAQCAtNjg4LDcgKzcxNSw3IEBACiAJCQkJaW50IGh3X3R5cGUsIGNoYXIgKmhvc3RuYW1lKTsKIHZvaWQgZGhjcF91cGRhdGVfY29uZmlncyhzdHJ1Y3QgZGhjcF9jb25maWcgKmNvbmZpZ3MpOwogdm9pZCBkaGNwX3JlYWRfZXRoZXJzKHZvaWQpOwotdm9pZCBkaGNwX3JlYWRfaG9zdHModm9pZCk7Cit2b2lkIGNoZWNrX2RoY3BfaG9zdHMoaW50IGZhdGFsKTsKIHN0cnVjdCBkaGNwX2NvbmZpZyAqY29uZmlnX2ZpbmRfYnlfYWRkcmVzcyhzdHJ1Y3QgZGhjcF9jb25maWcgKmNvbmZpZ3MsIHN0cnVjdCBpbl9hZGRyIGFkZHIpOwogY2hhciAqc3RyaXBfaG9zdG5hbWUoY2hhciAqaG9zdG5hbWUpOwogY2hhciAqaG9zdF9mcm9tX2RucyhzdHJ1Y3QgaW5fYWRkciBhZGRyKTsKQEAgLTcwMyw2ICs3MzAsNyBAQAogdm9pZCBsZWFzZV9zZXRfaG9zdG5hbWUoc3RydWN0IGRoY3BfbGVhc2UgKmxlYXNlLCBjaGFyICpuYW1lLCAKIAkJCWNoYXIgKnN1ZmZpeCwgaW50IGF1dGgpOwogdm9pZCBsZWFzZV9zZXRfZXhwaXJlcyhzdHJ1Y3QgZGhjcF9sZWFzZSAqbGVhc2UsIHVuc2lnbmVkIGludCBsZW4sIHRpbWVfdCBub3cpOwordm9pZCBsZWFzZV9zZXRfaW50ZXJmYWNlKHN0cnVjdCBkaGNwX2xlYXNlICpsZWFzZSwgaW50IGludGVyZmFjZSk7CiBzdHJ1Y3QgZGhjcF9sZWFzZSAqbGVhc2VfZmluZF9ieV9jbGllbnQodW5zaWduZWQgY2hhciAqaHdhZGRyLCBpbnQgaHdfbGVuLCBpbnQgaHdfdHlwZSwgIAogCQkJCQl1bnNpZ25lZCBjaGFyICpjbGlkLCBpbnQgY2xpZF9sZW4pOwogc3RydWN0IGRoY3BfbGVhc2UgKmxlYXNlX2ZpbmRfYnlfYWRkcihzdHJ1Y3QgaW5fYWRkciBhZGRyKTsKQEAgLTcxMiw3ICs3NDAsNyBAQAogdm9pZCByZXJ1bl9zY3JpcHRzKHZvaWQpOwogCiAvKiByZmMyMTMxLmMgKi8KLXNpemVfdCBkaGNwX3JlcGx5KHN0cnVjdCBkaGNwX2NvbnRleHQgKmNvbnRleHQsIGNoYXIgKmlmYWNlX25hbWUsIAorc2l6ZV90IGRoY3BfcmVwbHkoc3RydWN0IGRoY3BfY29udGV4dCAqY29udGV4dCwgY2hhciAqaWZhY2VfbmFtZSwgaW50IGludF9pbmRleCwKIAkJICBzaXplX3Qgc3osIHRpbWVfdCBub3csIGludCB1bmljYXN0X2Rlc3QsIGludCAqaXNfaW5mb3JtKTsKIAogLyogZG5zbWFzcS5jICovCkBAIC03MjksMTggKzc1NywxOSBAQAogLyogbmV0bGluay5jICovCiAjaWZkZWYgSEFWRV9MSU5VWF9ORVRXT1JLCiB2b2lkIG5ldGxpbmtfaW5pdCh2b2lkKTsKLWludCBpZmFjZV9lbnVtZXJhdGUodm9pZCAqcGFybSwgaW50ICgqaXB2NF9jYWxsYmFjaykoKSwgaW50ICgqaXB2Nl9jYWxsYmFjaykoKSk7CiB2b2lkIG5ldGxpbmtfbXVsdGljYXN0KHZvaWQpOwogI2VuZGlmCiAKIC8qIGJwZi5jICovCi0jaWZuZGVmIEhBVkVfTElOVVhfTkVUV09SSworI2lmZGVmIEhBVkVfQlNEX05FVFdPUksKIHZvaWQgaW5pdF9icGYodm9pZCk7CiB2b2lkIHNlbmRfdmlhX2JwZihzdHJ1Y3QgZGhjcF9wYWNrZXQgKm1lc3MsIHNpemVfdCBsZW4sCiAJCSAgc3RydWN0IGluX2FkZHIgaWZhY2VfYWRkciwgc3RydWN0IGlmcmVxICppZnIpOwotaW50IGlmYWNlX2VudW1lcmF0ZSh2b2lkICpwYXJtLCBpbnQgKCppcHY0X2NhbGxiYWNrKSgpLCBpbnQgKCppcHY2X2NhbGxiYWNrKSgpKTsKICNlbmRpZgogCisvKiBicGYuYyBvciBuZXRsaW5rLmMgKi8KK2ludCBpZmFjZV9lbnVtZXJhdGUodm9pZCAqcGFybSwgaW50ICgqaXB2NF9jYWxsYmFjaykoKSwgaW50ICgqaXB2Nl9jYWxsYmFjaykoKSk7CisKIC8qIGRidXMuYyAqLwogI2lmZGVmIEhBVkVfREJVUwogY2hhciAqZGJ1c19pbml0KHZvaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2ZvcndhcmQuYyBiL3NyYy9mb3J3YXJkLmMKaW5kZXggMDBlZDZmNC4uMTU3YTQxYiAxMDA2NDQKLS0tIGEvc3JjL2ZvcndhcmQuYworKysgYi9zcmMvZm9yd2FyZC5jCkBAIC0xLDEzICsxLDE3IEBACi0vKiBkbnNtYXNxIGlzIENvcHlyaWdodCAoYykgMjAwMCAtIDIwMDUgU2ltb24gS2VsbGV5CisvKiBkbnNtYXNxIGlzIENvcHlyaWdodCAoYykgMjAwMC0yMDA3IFNpbW9uIEtlbGxleQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLgotCisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgZGF0ZWQgSnVuZSwgMTk5MSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgdmVyc2lvbiAzIGRhdGVkIDI5IEp1bmUsIDIwMDcuCisgCiAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAKKyAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAqLwogCiAjaW5jbHVkZSAiZG5zbWFzcS5oIgpAQCAtMjEsNyArMjUsNyBAQAogc3RhdGljIHVuc2lnbmVkIHNob3J0IGdldF9pZChpbnQgZm9yY2UsIHVuc2lnbmVkIHNob3J0IGZvcmNlX2lkLCB1bnNpZ25lZCBpbnQgY3JjKTsKIAogCi0vKiBTZW5kIGEgVURQIHBhY2tldCB3aXRoIGl0J3Mgc291cmNlIGFkZHJlc3Mgc2V0IGFzICJzb3VyY2UiIAorLyogU2VuZCBhIFVEUCBwYWNrZXQgd2l0aCBpdHMgc291cmNlIGFkZHJlc3Mgc2V0IGFzICJzb3VyY2UiIAogICAgdW5sZXNzIG5vd2lsZCBpcyB0cnVlLCB3aGVuIHdlIGp1c3Qgc2VuZCBpdCB3aXRoIHRoZSBrZXJuZWwgZGVmYXVsdCAqLwogc3RhdGljIHZvaWQgc2VuZF9mcm9tKGludCBmZCwgaW50IG5vd2lsZCwgY2hhciAqcGFja2V0LCBzaXplX3QgbGVuLCAKIAkJICAgICAgdW5pb24gbXlzb2NrYWRkciAqdG8sIHN0cnVjdCBhbGxfYWRkciAqc291cmNlLApAQCAtMTQwLDcgKzE0NCw3IEBACiAJCSAgKmFkZHJwcCA9IChzdHJ1Y3QgYWxsX2FkZHIgKikmc2Vydi0+YWRkci5pbjYuc2luNl9hZGRyOwogI2VuZGlmIAogCSAgICAgIH0KLQkgICAgZWxzZSBpZiAoIWZsYWdzKQorCSAgICBlbHNlIGlmICghZmxhZ3MgfHwgKGZsYWdzICYgRl9OWERPTUFJTikpCiAJICAgICAgZmxhZ3MgPSBGX05PRVJSOwogCSAgfSAKICAgICAgIH0KQEAgLTE2MSw5ICsxNjUsOSBAQAogCSAgICAgIGZsYWdzID0gRl9OWERPTUFJTjsKIAkgICAgZWxzZSBpZiAoc2Vydi0+ZmxhZ3MgJiBTRVJWX0xJVEVSQUxfQUREUkVTUykKIAkgICAgICB7Ci0JCWlmICgoc2ZsYWcgfCBGX1FVRVJZICkgJiBxdHlwZSkKKwkJaWYgKHNmbGFnICYgcXR5cGUpCiAJCSAgewotCQkgICAgZmxhZ3MgPSBxdHlwZSAmIH5GX0JJR05BTUU7CisJCSAgICBmbGFncyA9IHNmbGFnOwogCQkgICAgaWYgKHNlcnYtPmFkZHIuc2Euc2FfZmFtaWx5ID09IEFGX0lORVQpIAogCQkgICAgICAqYWRkcnBwID0gKHN0cnVjdCBhbGxfYWRkciAqKSZzZXJ2LT5hZGRyLmluLnNpbl9hZGRyOwogI2lmZGVmIEhBVkVfSVBWNgpAQCAtMTcxLDM3ICsxNzUsMzYgQEAKIAkJICAgICAgKmFkZHJwcCA9IChzdHJ1Y3QgYWxsX2FkZHIgKikmc2Vydi0+YWRkci5pbjYuc2luNl9hZGRyOwogI2VuZGlmCiAJCSAgfQotCQllbHNlIGlmICghZmxhZ3MpCisJCWVsc2UgaWYgKCFmbGFncyB8fCAoZmxhZ3MgJiBGX05YRE9NQUlOKSkKIAkJICBmbGFncyA9IEZfTk9FUlI7CiAJICAgICAgfQogCSAgfSAKICAgICAgIH0KIAotICBpZiAoZmxhZ3MgJiB+KEZfTk9FUlIgfCBGX05YRE9NQUlOKSkgLyogZmxhZ3Mgc2V0IGhlcmUgbWVhbnMgYSBsaXRlcmFsIGZvdW5kICovCi0gICAgewotICAgICAgaWYgKGZsYWdzICYgRl9RVUVSWSkKLQlsb2dfcXVlcnkoRl9DT05GSUcgfCBGX0ZPUldBUkQgfCBGX05FRywgcWRvbWFpbiwgTlVMTCwgMCwgTlVMTCwgMCk7Ci0gICAgICBlbHNlCi0JbG9nX3F1ZXJ5KEZfQ09ORklHIHwgRl9GT1JXQVJEIHwgZmxhZ3MsIHFkb21haW4sICphZGRycHAsIDAsIE5VTEwsIDApOwotICAgIH0KLSAgZWxzZSBpZiAocXR5cGUgJiYgIShxdHlwZSAmIEZfQklHTkFNRSkgJiYgCi0JICAgKGRhZW1vbi0+b3B0aW9ucyAmIE9QVF9OT0RPVFNfTE9DQUwpICYmICFzdHJjaHIocWRvbWFpbiwgJy4nKSAmJiBuYW1lbGVuICE9IDApCi0gICAgLyogZG9uJ3QgZm9yd2FyZCBzaW1wbGUgbmFtZXMsIG1ha2UgZXhjZXB0aW9uIGZyb20gTlMgcXVlcmllcyBhbmQgZW1wdHkgbmFtZS4gKi8KKyAgaWYgKGZsYWdzID09IDAgJiYgIShxdHlwZSAmIEZfQklHTkFNRSkgJiYgCisgICAgICAoZGFlbW9uLT5vcHRpb25zICYgT1BUX05PRE9UU19MT0NBTCkgJiYgIXN0cmNocihxZG9tYWluLCAnLicpICYmIG5hbWVsZW4gIT0gMCkKKyAgICAvKiBkb24ndCBmb3J3YXJkIHNpbXBsZSBuYW1lcywgbWFrZSBleGNlcHRpb24gZm9yIE5TIHF1ZXJpZXMgYW5kIGVtcHR5IG5hbWUuICovCiAgICAgZmxhZ3MgPSBGX05YRE9NQUlOOwogICAgIAogICBpZiAoZmxhZ3MgPT0gRl9OWERPTUFJTiAmJiBjaGVja19mb3JfbG9jYWxfZG9tYWluKHFkb21haW4sIG5vdykpCiAgICAgZmxhZ3MgPSBGX05PRVJSOwogCi0gIGlmIChmbGFncyA9PSBGX05YRE9NQUlOIHx8IGZsYWdzID09IEZfTk9FUlIpCi0gICAgbG9nX3F1ZXJ5KEZfQ09ORklHIHwgRl9GT1JXQVJEIHwgRl9ORUcgfCBxdHlwZSB8IChmbGFncyAmIEZfTlhET01BSU4pLCBxZG9tYWluLCBOVUxMLCAwLCBOVUxMLCAwKTsKKyAgaWYgKGZsYWdzKQorICAgIHsKKyAgICAgIGludCBsb2dmbGFncyA9IDA7CisgICAgICAKKyAgICAgIGlmIChmbGFncyA9PSBGX05YRE9NQUlOIHx8IGZsYWdzID09IEZfTk9FUlIpCisJbG9nZmxhZ3MgPSBGX05FRyB8IHF0eXBlOworICAKKyAgICAgIGxvZ19xdWVyeShsb2dmbGFncyB8IGZsYWdzIHwgRl9DT05GSUcgfCBGX0ZPUldBUkQsIHFkb21haW4sICphZGRycHAsIDAsIE5VTEwsIDApOworICAgIH0KIAogICByZXR1cm4gIGZsYWdzOwogfQogCi0vKiByZXR1cm5zIG5ldyBsYXN0X3NlcnZlciAqLwkKLXN0YXRpYyB2b2lkIGZvcndhcmRfcXVlcnkoaW50IHVkcGZkLCB1bmlvbiBteXNvY2thZGRyICp1ZHBhZGRyLAotCQkJICBzdHJ1Y3QgYWxsX2FkZHIgKmRzdF9hZGRyLCB1bnNpZ25lZCBpbnQgZHN0X2lmYWNlLAotCQkJICBIRUFERVIgKmhlYWRlciwgc2l6ZV90IHBsZW4sIHRpbWVfdCBub3csIHN0cnVjdCBmcmVjICpmb3J3YXJkKQorc3RhdGljIGludCBmb3J3YXJkX3F1ZXJ5KGludCB1ZHBmZCwgdW5pb24gbXlzb2NrYWRkciAqdWRwYWRkciwKKwkJCSBzdHJ1Y3QgYWxsX2FkZHIgKmRzdF9hZGRyLCB1bnNpZ25lZCBpbnQgZHN0X2lmYWNlLAorCQkJIEhFQURFUiAqaGVhZGVyLCBzaXplX3QgcGxlbiwgdGltZV90IG5vdywgc3RydWN0IGZyZWMgKmZvcndhcmQpCiB7CiAgIGNoYXIgKmRvbWFpbiA9IE5VTEw7CiAgIGludCB0eXBlID0gMDsKQEAgLTIxOCw2ICsyMjEsNyBAQAogICAgIHsKICAgICAgIC8qIHJldHJ5IG9uIGV4aXN0aW5nIHF1ZXJ5LCBzZW5kIHRvIGFsbCBhdmFpbGFibGUgc2VydmVycyAgKi8KICAgICAgIGRvbWFpbiA9IGZvcndhcmQtPnNlbnR0by0+ZG9tYWluOworICAgICAgZm9yd2FyZC0+c2VudHRvLT5mYWlsZWRfcXVlcmllcysrOwogICAgICAgaWYgKCEoZGFlbW9uLT5vcHRpb25zICYgT1BUX09SREVSKSkKIAl7CiAJICBmb3J3YXJkLT5mb3J3YXJkYWxsID0gMTsKQEAgLTMxMSw2ICszMTUsNyBAQAogCQkJICAgICAgKHN0cnVjdCBhbGxfYWRkciAqKSZzdGFydC0+YWRkci5pbjYuc2luNl9hZGRyLCAwLAogCQkJICAgICAgTlVMTCwgMCk7CiAjZW5kaWYgCisJCSAgc3RhcnQtPnF1ZXJpZXMrKzsKIAkJICBmb3J3YXJkZWQgPSAxOwogCQkgIGZvcndhcmQtPnNlbnR0byA9IHN0YXJ0OwogCQkgIGlmICghZm9yd2FyZC0+Zm9yd2FyZGFsbCkgCkBAIC0zMjcsNyArMzMyLDcgQEAKIAl9CiAgICAgICAKICAgICAgIGlmIChmb3J3YXJkZWQpCi0JICByZXR1cm47CisJcmV0dXJuIDE7CiAgICAgICAKICAgICAgIC8qIGNvdWxkIG5vdCBzZW5kIG9uLCBwcmVwYXJlIHRvIHJldHVybiAqLyAKICAgICAgIGhlYWRlci0+aWQgPSBodG9ucyhmb3J3YXJkLT5vcmlnX2lkKTsKQEAgLTM0MSw3ICszNDYsNyBAQAogICAgICAgc2VuZF9mcm9tKHVkcGZkLCBkYWVtb24tPm9wdGlvbnMgJiBPUFRfTk9XSUxELCAoY2hhciAqKWhlYWRlciwgcGxlbiwgdWRwYWRkciwgZHN0X2FkZHIsIGRzdF9pZmFjZSk7CiAgICAgfQogCi0gIHJldHVybjsKKyAgcmV0dXJuIDA7CiB9CiAKIHN0YXRpYyBzaXplX3QgcHJvY2Vzc19yZXBseShIRUFERVIgKmhlYWRlciwgdGltZV90IG5vdywgCkBAIC0zOTksNyArNDA0LDExIEBACiAJICBoZWFkZXItPnJjb2RlID0gTk9FUlJPUjsKIAl9CiAgICAgICAKLSAgICAgIGV4dHJhY3RfYWRkcmVzc2VzKGhlYWRlciwgbiwgZGFlbW9uLT5uYW1lYnVmZiwgbm93KTsKKyAgICAgIGlmIChleHRyYWN0X2FkZHJlc3NlcyhoZWFkZXIsIG4sIGRhZW1vbi0+bmFtZWJ1ZmYsIG5vdykpCisJeworCSAgbXlfc3lzbG9nKExPR19XQVJOSU5HLCBfKCJwb3NzaWJsZSBETlMtcmViaW5kIGF0dGFjayBkZXRlY3RlZCIpKTsKKwkgIG11bmdlZCA9IDE7CisJfQogICAgIH0KICAgCiAgIC8qIGRvIHRoaXMgYWZ0ZXIgZXh0cmFjdF9hZGRyZXNzZXMuIEVuc3VyZSBOT0RBVEEgcmVwbHkgYW5kIHJlbW92ZQpAQCAtNDg5LDcgKzQ5OCw4IEBACiAJCSAgICBicmVhazsKIAkJICB9CiAJICAgIH0gCi0JICBkYWVtb24tPmxhc3Rfc2VydmVyID0gc2VydmVyOworCSAgaWYgKCEoZGFlbW9uLT5vcHRpb25zICYgT1BUX0FMTF9TRVJWRVJTKSkKKwkgICAgZGFlbW9uLT5sYXN0X3NlcnZlciA9IHNlcnZlcjsKIAl9CiAgICAgICAKICAgICAgIC8qIElmIHRoZSBhbnN3ZXIgaXMgYW4gZXJyb3IsIGtlZXAgdGhlIGZvcndhcmQgcmVjb3JkIGluIHBsYWNlIGluIGNhc2UKQEAgLTUzMSw2ICs1NDEsOSBAQAogI2VuZGlmCiAjaWYgZGVmaW5lZChIQVZFX0xJTlVYX05FVFdPUkspCiAgICAgY2hhciBjb250cm9sW0NNU0dfU1BBQ0Uoc2l6ZW9mKHN0cnVjdCBpbl9wa3RpbmZvKSldOworI2VsaWYgZGVmaW5lZChJUF9SRUNWRFNUQUREUikgJiYgZGVmaW5lZChIQVZFX1NPTEFSSVNfTkVUV09SSykKKyAgICBjaGFyIGNvbnRyb2xbQ01TR19TUEFDRShzaXplb2Yoc3RydWN0IGluX2FkZHIpKSArCisJCSBDTVNHX1NQQUNFKHNpemVvZih1bnNpZ25lZCBpbnQpKV07CiAjZWxpZiBkZWZpbmVkKElQX1JFQ1ZEU1RBRERSKQogICAgIGNoYXIgY29udHJvbFtDTVNHX1NQQUNFKHNpemVvZihzdHJ1Y3QgaW5fYWRkcikpICsKIAkJIENNU0dfU1BBQ0Uoc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9kbCkpXTsKQEAgLTU5OCw3ICs2MTEsMTEgQEAKIAkgICAgaWYgKGNtcHRyLT5jbXNnX2xldmVsID09IElQUFJPVE9fSVAgJiYgY21wdHItPmNtc2dfdHlwZSA9PSBJUF9SRUNWRFNUQUREUikKIAkgICAgICBkc3RfYWRkcl80ID0gZHN0X2FkZHIuYWRkci5hZGRyNCA9ICooKHN0cnVjdCBpbl9hZGRyICopQ01TR19EQVRBKGNtcHRyKSk7CiAJICAgIGVsc2UgaWYgKGNtcHRyLT5jbXNnX2xldmVsID09IElQUFJPVE9fSVAgJiYgY21wdHItPmNtc2dfdHlwZSA9PSBJUF9SRUNWSUYpCisjaWZkZWYgSEFWRV9TT0xBUklTX05FVFdPUksKKwkgICAgICBpZl9pbmRleCA9ICooKHVuc2lnbmVkIGludCAqKUNNU0dfREFUQShjbXB0cikpOworI2Vsc2UKIAkgICAgICBpZl9pbmRleCA9ICgoc3RydWN0IHNvY2thZGRyX2RsICopQ01TR19EQVRBKGNtcHRyKSktPnNkbF9pbmRleDsKKyNlbmRpZgogCX0KICNlbmRpZgogICAgICAgCkBAIC02NTQsMTAgKzY3MSwxNiBAQAogICBtID0gYW5zd2VyX3JlcXVlc3QgKGhlYWRlciwgKChjaGFyICopIGhlYWRlcikgKyBQQUNLRVRTWiwgKHNpemVfdCluLCAKIAkJICAgICAgZHN0X2FkZHJfNCwgbmV0bWFzaywgbm93KTsKICAgaWYgKG0gPj0gMSkKLSAgICBzZW5kX2Zyb20obGlzdGVuLT5mZCwgZGFlbW9uLT5vcHRpb25zICYgT1BUX05PV0lMRCwgKGNoYXIgKiloZWFkZXIsIG0sICZzb3VyY2VfYWRkciwgJmRzdF9hZGRyLCBpZl9pbmRleCk7CisgICAgeworICAgICAgc2VuZF9mcm9tKGxpc3Rlbi0+ZmQsIGRhZW1vbi0+b3B0aW9ucyAmIE9QVF9OT1dJTEQsIChjaGFyICopaGVhZGVyLCAKKwkJbSwgJnNvdXJjZV9hZGRyLCAmZHN0X2FkZHIsIGlmX2luZGV4KTsKKyAgICAgIGRhZW1vbi0+bG9jYWxfYW5zd2VyKys7CisgICAgfQorICBlbHNlIGlmIChmb3J3YXJkX3F1ZXJ5KGxpc3Rlbi0+ZmQsICZzb3VyY2VfYWRkciwgJmRzdF9hZGRyLCBpZl9pbmRleCwKKwkJCSBoZWFkZXIsIChzaXplX3Qpbiwgbm93LCBOVUxMKSkKKyAgICBkYWVtb24tPnF1ZXJpZXNfZm9yd2FyZGVkKys7CiAgIGVsc2UKLSAgICBmb3J3YXJkX3F1ZXJ5KGxpc3Rlbi0+ZmQsICZzb3VyY2VfYWRkciwgJmRzdF9hZGRyLCBpZl9pbmRleCwKLQkJICBoZWFkZXIsIChzaXplX3Qpbiwgbm93LCBOVUxMKTsKKyAgICBkYWVtb24tPmxvY2FsX2Fuc3dlcisrOwogfQogCiAvKiBUaGUgZGFlbW9uIGZvcmtzIGJlZm9yZSBjYWxsaW5nIHRoaXM6IGl0IHNob3VsZCBkZWFsIHdpdGggb25lIGNvbm5lY3Rpb24sCkBAIC03NTcsNyArNzgwLDggQEAKIAkJICAKIAkJICBpZiAoKGxhc3Rfc2VydmVyLT50Y3BmZCA9PSAtMSkgJiYKIAkJICAgICAgKGxhc3Rfc2VydmVyLT50Y3BmZCA9IHNvY2tldChsYXN0X3NlcnZlci0+YWRkci5zYS5zYV9mYW1pbHksIFNPQ0tfU1RSRUFNLCAwKSkgIT0gLTEgJiYKLQkJICAgICAgY29ubmVjdChsYXN0X3NlcnZlci0+dGNwZmQsICZsYXN0X3NlcnZlci0+YWRkci5zYSwgc2FfbGVuKCZsYXN0X3NlcnZlci0+YWRkcikpID09IC0xKQorCQkgICAgICAoIWxvY2FsX2JpbmQobGFzdF9zZXJ2ZXItPnRjcGZkLCAgJmxhc3Rfc2VydmVyLT5zb3VyY2VfYWRkciwgbGFzdF9zZXJ2ZXItPmludGVyZmFjZSwgMSkgfHwKKwkJICAgICAgIGNvbm5lY3QobGFzdF9zZXJ2ZXItPnRjcGZkLCAmbGFzdF9zZXJ2ZXItPmFkZHIuc2EsIHNhX2xlbigmbGFzdF9zZXJ2ZXItPmFkZHIpKSA9PSAtMSkpCiAJCSAgICB7CiAJCSAgICAgIGNsb3NlKGxhc3Rfc2VydmVyLT50Y3BmZCk7CiAJCSAgICAgIGxhc3Rfc2VydmVyLT50Y3BmZCA9IC0xOwpAQCAtNzY1LDcgKzc4OSw3IEBACiAJCSAgCiAJCSAgaWYgKGxhc3Rfc2VydmVyLT50Y3BmZCA9PSAtMSkJCiAJCSAgICBjb250aW51ZTsKLQkJICAKKwogCQkgIGMxID0gc2l6ZSA+PiA4OwogCQkgIGMyID0gc2l6ZTsKIAkJICAKQEAgLTc3OSw3ICs4MDMsNyBAQAogCQkgICAgICBsYXN0X3NlcnZlci0+dGNwZmQgPSAtMTsKIAkJICAgICAgY29udGludWU7CiAJCSAgICB9IAotCSAgICAgIAorCQkgIAogCQkgIG0gPSAoYzEgPDwgOCkgfCBjMjsKIAkJICBpZiAoIXJlYWRfd3JpdGUobGFzdF9zZXJ2ZXItPnRjcGZkLCBwYWNrZXQsIG0sIDEpKQogCQkgICAgcmV0dXJuIHBhY2tldDsKZGlmZiAtLWdpdCBhL3NyYy9oZWxwZXIuYyBiL3NyYy9oZWxwZXIuYwppbmRleCAxMTgzNDZlLi44NjViY2I1IDEwMDY0NAotLS0gYS9zcmMvaGVscGVyLmMKKysrIGIvc3JjL2hlbHBlci5jCkBAIC0xLDEzICsxLDE3IEBACi0vKiBkbnNtYXNxIGlzIENvcHlyaWdodCAoYykgMjAwMC0yMDA2IFNpbW9uIEtlbGxleQorLyogZG5zbWFzcSBpcyBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwNyBTaW1vbiBLZWxsZXkKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgZGF0ZWQgSnVuZSwgMTk5MS4KLQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIHZlcnNpb24gMyBkYXRlZCAyOSBKdW5lLCAyMDA3LgorIAogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgCisgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogKi8KIAogI2luY2x1ZGUgImRuc21hc3EuaCIKQEAgLTI2LDYgKzMwLDggQEAKIAogI2lmbmRlZiBOT19GT1JLCiAKK3N0YXRpYyB2b2lkIG15X3NldGVudihjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSwgaW50ICplcnJvcik7CisgCiBzdHJ1Y3Qgc2NyaXB0X2RhdGEKIHsKICAgdW5zaWduZWQgY2hhciBhY3Rpb24sIGh3YWRkcl9sZW4sIGh3YWRkcl90eXBlOwpAQCAtMzgsNiArNDQsNyBAQAogICB0aW1lX3QgZXhwaXJlczsKICNlbmRpZgogICB1bnNpZ25lZCBjaGFyIGh3YWRkcltESENQX0NIQUREUl9NQVhdOworICBjaGFyIGludGVyZmFjZVtJRl9OQU1FU0laRV07CiB9OwogCiBzdGF0aWMgc3RydWN0IHNjcmlwdF9kYXRhICpidWYgPSBOVUxMOwpAQCAtODcsNiArOTQsNyBAQAogICAgICAgc3RydWN0IHNjcmlwdF9kYXRhIGRhdGE7CiAgICAgICBjaGFyICpwLCAqYWN0aW9uX3N0ciwgKmhvc3RuYW1lID0gTlVMTDsKICAgICAgIHVuc2lnbmVkIGNoYXIgKmJ1ZiA9ICh1bnNpZ25lZCBjaGFyICopZGFlbW9uLT5uYW1lYnVmZjsKKyAgICAgIGludCBlcnIgPSAwOwogCiAgICAgICAvKiB3ZSByZWFkIHplcm8gYnl0ZXMgd2hlbiBwaXBlIGNsb3NlZDogdGhpcyBpcyBvdXIgc2lnbmFsIHRvIGV4aXQgKi8gCiAgICAgICBpZiAoIXJlYWRfd3JpdGUocGlwZWZkWzBdLCAodW5zaWduZWQgY2hhciAqKSZkYXRhLCBzaXplb2YoZGF0YSksIDEpKQpAQCAtMTY2LDE2ICsxNzQsMTUgQEAKIAl9CiAgICAgICAKICAgICAgIGlmIChkYXRhLmNsaWRfbGVuICE9IDApCi0Jc2V0ZW52KCJETlNNQVNRX0NMSUVOVF9JRCIsIGRhZW1vbi0+cGFja2V0LCAxKTsKLSAgICAgIGVsc2UKLQl1bnNldGVudigiRE5TTUFTUV9DTElFTlRfSUQiKTsKLSAgICAgIAorCW15X3NldGVudigiRE5TTUFTUV9DTElFTlRfSUQiLCBkYWVtb24tPnBhY2tldCwgJmVycik7CisKKyAgICAgIGlmIChzdHJsZW4oZGF0YS5pbnRlcmZhY2UpICE9IDApCisJbXlfc2V0ZW52KCJETlNNQVNRX0lOVEVSRkFDRSIsIGRhdGEuaW50ZXJmYWNlLCAmZXJyKTsKKyAgICAgICAgICAgIAogI2lmZGVmIEhBVkVfQlJPS0VOX1JUQwotICAgICAgc2V0ZW52KCJETlNNQVNRX0xFQVNFX0xFTkdUSCIsIGRhZW1vbi0+ZGhjcF9idWZmMiwgMSk7Ci0gICAgICB1bnNldGVudigiRE5TTUFTUV9MRUFTRV9FWFBJUkVTIik7CisgICAgICBteV9zZXRlbnYoIkROU01BU1FfTEVBU0VfTEVOR1RIIiwgZGFlbW9uLT5kaGNwX2J1ZmYyLCAmZXJyKTsKICNlbHNlCi0gICAgICBzZXRlbnYoIkROU01BU1FfTEVBU0VfRVhQSVJFUyIsIGRhZW1vbi0+ZGhjcF9idWZmMiwgMSk7IAotICAgICAgdW5zZXRlbnYoIkROU01BU1FfTEVBU0VfTEVOR1RIIik7CisgICAgICBteV9zZXRlbnYoIkROU01BU1FfTEVBU0VfRVhQSVJFUyIsIGRhZW1vbi0+ZGhjcF9idWZmMiwgJmVycik7IAogI2VuZGlmCiAgICAgICAKICAgICAgIGlmIChkYXRhLnZjbGFzc19sZW4gIT0gMCkKQEAgLTE4NCwxMSArMTkxLDkgQEAKIAkgIC8qIGNhbm5vdCBoYXZlID0gY2hhcnMgaW4gZW52IC0gdHJ1bmNhdGUgaWYgZm91bmQgLiAqLwogCSAgaWYgKChwID0gc3RyY2hyKChjaGFyICopYnVmLCAnPScpKSkKIAkgICAgKnAgPSAwOwotCSAgc2V0ZW52KCJETlNNQVNRX1ZFTkRPUl9DTEFTUyIsIChjaGFyICopYnVmLCAxKTsKKwkgIG15X3NldGVudigiRE5TTUFTUV9WRU5ET1JfQ0xBU1MiLCAoY2hhciAqKWJ1ZiwgJmVycik7CiAJICBidWYgKz0gZGF0YS52Y2xhc3NfbGVuOwogCX0KLSAgICAgIGVsc2UgCi0JdW5zZXRlbnYoIkROU01BU1FfVkVORE9SX0NMQVNTIik7CiAgICAgICAKICAgICAgIGlmIChkYXRhLnVjbGFzc19sZW4gIT0gMCkKIAl7CkBAIC0yMDMsMTQgKzIwOCwxNCBAQAogCSAgICAgIGlmIChzdHJsZW4oKGNoYXIgKilidWYpICE9IDApCiAJCXsKIAkJICBzcHJpbnRmKGRhZW1vbi0+ZGhjcF9idWZmMiwgIkROU01BU1FfVVNFUl9DTEFTUyVpIiwgaSsrKTsKLQkJICBzZXRlbnYoZGFlbW9uLT5kaGNwX2J1ZmYyLCAoY2hhciAqKWJ1ZiwgMSk7CisJCSAgbXlfc2V0ZW52KGRhZW1vbi0+ZGhjcF9idWZmMiwgKGNoYXIgKilidWYsICZlcnIpOwogCQl9CiAJICAgICAgYnVmICs9IGxlbjsKIAkgICAgfQogCX0KICAgICAgIAogICAgICAgc3ByaW50ZihkYWVtb24tPmRoY3BfYnVmZjIsICIldSAiLCBkYXRhLnJlbWFpbmluZ190aW1lKTsKLSAgICAgIHNldGVudigiRE5TTUFTUV9USU1FX1JFTUFJTklORyIsIGRhZW1vbi0+ZGhjcF9idWZmMiwgMSk7CisgICAgICBteV9zZXRlbnYoIkROU01BU1FfVElNRV9SRU1BSU5JTkciLCBkYWVtb24tPmRoY3BfYnVmZjIsICZlcnIpOwogICAgICAgCiAgICAgICBpZiAoZGF0YS5ob3N0bmFtZV9sZW4gIT0gMCkKIAl7CkBAIC0yMjIsMTEgKzIyNyw5IEBACiAgICAgICAKICAgICAgIGlmIChkYXRhLmFjdGlvbiA9PSBBQ1RJT05fT0xEX0hPU1ROQU1FICYmIGhvc3RuYW1lKQogCXsKLQkgIHNldGVudigiRE5TTUFTUV9PTERfSE9TVE5BTUUiLCBob3N0bmFtZSwgMSk7CisJICBteV9zZXRlbnYoIkROU01BU1FfT0xEX0hPU1ROQU1FIiwgaG9zdG5hbWUsICZlcnIpOwogCSAgaG9zdG5hbWUgPSBOVUxMOwogCX0KLSAgICAgIGVsc2UKLQl1bnNldGVudigiRE5TTUFTUV9PTERfSE9TVE5BTUUiKTsKIAogICAgICAgLyogd2UgbmVlZCB0byBoYXZlIHRoZSBldmVudF9mZCBhcm91bmQgaWYgZXhlYyBmYWlscyAqLwogICAgICAgaWYgKChpID0gZmNudGwoZXZlbnRfZmQsIEZfR0VURkQpKSAhPSAtMSkKQEAgLTIzNCwxNiArMjM3LDQ1IEBACiAgICAgICBjbG9zZShwaXBlZmRbMF0pOwogCiAgICAgICBwID0gIHN0cnJjaHIoZGFlbW9uLT5sZWFzZV9jaGFuZ2VfY29tbWFuZCwgJy8nKTsKLSAgICAgIGV4ZWNsKGRhZW1vbi0+bGVhc2VfY2hhbmdlX2NvbW1hbmQsIAotCSAgICBwID8gcCsxIDogZGFlbW9uLT5sZWFzZV9jaGFuZ2VfY29tbWFuZCwKLQkgICAgYWN0aW9uX3N0ciwgZGFlbW9uLT5kaGNwX2J1ZmYsIGluZXRfbnRvYShkYXRhLmFkZHIpLCBob3N0bmFtZSwgKGNoYXIqKU5VTEwpOwotICAgICAgCisgICAgICBpZiAoZXJyID09IDApCisJeworCSAgZXhlY2woZGFlbW9uLT5sZWFzZV9jaGFuZ2VfY29tbWFuZCwgCisJCXAgPyBwKzEgOiBkYWVtb24tPmxlYXNlX2NoYW5nZV9jb21tYW5kLAorCQlhY3Rpb25fc3RyLCBkYWVtb24tPmRoY3BfYnVmZiwgaW5ldF9udG9hKGRhdGEuYWRkciksIGhvc3RuYW1lLCAoY2hhciopTlVMTCk7CisJICBlcnIgPSBlcnJubzsKKwl9CiAgICAgICAvKiBmYWlsZWQsIHNlbmQgZXZlbnQgc28gdGhlIG1haW4gcHJvY2VzcyBsb2dzIHRoZSBwcm9ibGVtICovCi0gICAgICBzZW5kX2V2ZW50KGV2ZW50X2ZkLCBFVkVOVF9FWEVDX0VSUiwgZXJybm8pOworICAgICAgc2VuZF9ldmVudChldmVudF9mZCwgRVZFTlRfRVhFQ19FUlIsIGVycik7CiAgICAgICBfZXhpdCgwKTsgCiAgICAgfQogfQogCitzdGF0aWMgdm9pZCBteV9zZXRlbnYoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFsdWUsIGludCAqZXJyb3IpCit7CisgIGlmICgqZXJyb3IgPT0gMCkKKyAgICB7CisjaWYgZGVmaW5lZChIQVZFX1NPTEFSSVNfTkVUV09SSykgJiYgIWRlZmluZWQoSEFWRV9TT0xBUklTX1BSSVZTKQorICAgICAgLyogb2xkIFNvbGFyaXMgaXMgbWlzc2luZyBzZXRlbnYuLi4uLiAqLworICAgICAgY2hhciAqcDsKKyAgICAgIAorICAgICAgaWYgKCEocCA9IG1hbGxvYyhzdHJsZW4obmFtZSkgKyBzdHJsZW4odmFsdWUpICsgMikpKQorCSplcnJvciA9IEVOT01FTTsKKyAgICAgIGVsc2UKKwl7CisJICBzdHJjcHkocCwgbmFtZSk7CisJICBzdHJjYXQocCwgIj0iKTsKKwkgIHN0cmNhdChwLCB2YWx1ZSk7CisJICAKKwkgIGlmIChwdXRlbnYocCkgIT0gMCkKKwkgICAgKmVycm9yID0gZXJybm87CisJfQorI2Vsc2UKKyAgICAgIGlmIChzZXRlbnYobmFtZSwgdmFsdWUsIDEpICE9IDApCisJKmVycm9yID0gZXJybm87CisjZW5kaWYKKyAgICB9Cit9CisgCiAvKiBwYWNrIHVwIGxlYXNlIGRhdGEgaW50byBhIGJ1ZmZlciAqLyAgICAKIHZvaWQgcXVldWVfc2NyaXB0KGludCBhY3Rpb24sIHN0cnVjdCBkaGNwX2xlYXNlICpsZWFzZSwgY2hhciAqaG9zdG5hbWUsIHRpbWVfdCBub3cpCiB7CkBAIC0yOTEsNiArMzIzLDIwIEBACiAgIGJ1Zi0+aG9zdG5hbWVfbGVuID0gaG9zdG5hbWVfbGVuOwogICBidWYtPmFkZHIgPSBsZWFzZS0+YWRkcjsKICAgbWVtY3B5KGJ1Zi0+aHdhZGRyLCBsZWFzZS0+aHdhZGRyLCBsZWFzZS0+aHdhZGRyX2xlbik7CisgIGJ1Zi0+aW50ZXJmYWNlWzBdID0gMDsKKyNpZmRlZiBIQVZFX0xJTlVYX05FVFdPUksKKyAgaWYgKGxlYXNlLT5sYXN0X2ludGVyZmFjZSAhPSAwKQorICAgIHsKKyAgICAgIHN0cnVjdCBpZnJlcSBpZnI7CisgICAgICBpZnIuaWZyX2lmaW5kZXggPSBsZWFzZS0+bGFzdF9pbnRlcmZhY2U7CisgICAgICBpZiAoaW9jdGwoZGFlbW9uLT5kaGNwZmQsIFNJT0NHSUZOQU1FLCAmaWZyKSAhPSAtMSkKKwlzdHJuY3B5KGJ1Zi0+aW50ZXJmYWNlLCBpZnIuaWZyX25hbWUsIElGX05BTUVTSVpFKTsKKyAgICB9CisjZWxzZQorICBpZiAobGVhc2UtPmxhc3RfaW50ZXJmYWNlICE9IDApCisgICAgaWZfaW5kZXh0b25hbWUobGVhc2UtPmxhc3RfaW50ZXJmYWNlLCBidWYtPmludGVyZmFjZSk7CisjZW5kaWYKKyAgCiAjaWZkZWYgSEFWRV9CUk9LRU5fUlRDIAogICBidWYtPmxlbmd0aCA9IGxlYXNlLT5sZW5ndGg7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvc3JjL2lzYy5jIGIvc3JjL2lzYy5jCmluZGV4IGMzMGYxZWIuLjUxZDczYzUgMTAwNjQ0Ci0tLSBhL3NyYy9pc2MuYworKysgYi9zcmMvaXNjLmMKQEAgLTEsMTMgKzEsMTcgQEAKLS8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwIC0gMjAwNSBieSBTaW1vbiBLZWxsZXkKKy8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDcgU2ltb24gS2VsbGV5CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEuCi0KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSB2ZXJzaW9uIDMgZGF0ZWQgMjkgSnVuZSwgMjAwNy4KKyAKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgICAgIAorICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCiAKIApkaWZmIC0tZ2l0IGEvc3JjL2xlYXNlLmMgYi9zcmMvbGVhc2UuYwppbmRleCAyZGVkZjM1Li4wNzBjNTI0IDEwMDY0NAotLS0gYS9zcmMvbGVhc2UuYworKysgYi9zcmMvbGVhc2UuYwpAQCAtMSwxMyArMSwxNyBAQAotLyogZG5zbWFzcSBpcyBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwNiBTaW1vbiBLZWxsZXkKKy8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDcgU2ltb24gS2VsbGV5CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEuCi0KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSB2ZXJzaW9uIDMgZGF0ZWQgMjkgSnVuZSwgMjAwNy4KKyAKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgICAgIAorICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCiAKICNpbmNsdWRlICJkbnNtYXNxLmgiCkBAIC0yNDQsNyArMjQ4LDcgQEAKIHsKICAgc3RydWN0IGRoY3BfbGVhc2UgKmxlYXNlOwogICAKLSAgaWYgKGRuc19kaXJ0eSkKKyAgaWYgKGRhZW1vbi0+cG9ydCAhPSAwICYmIGRuc19kaXJ0eSkKICAgICB7CiAgICAgICBjYWNoZV91bmhhc2hfZGhjcCgpOwogICAgICAgCkBAIC00NzYsNiArNDgwLDE1IEBACiAgIGxlYXNlLT5jaGFuZ2VkID0gMTsgLyogcnVuIHNjcmlwdCBvbiBjaGFuZ2UgKi8KIH0KIAordm9pZCBsZWFzZV9zZXRfaW50ZXJmYWNlKHN0cnVjdCBkaGNwX2xlYXNlICpsZWFzZSwgaW50IGludGVyZmFjZSkKK3sKKyAgaWYgKGxlYXNlLT5sYXN0X2ludGVyZmFjZSA9PSBpbnRlcmZhY2UpCisgICAgcmV0dXJuOworCisgIGxlYXNlLT5sYXN0X2ludGVyZmFjZSA9IGludGVyZmFjZTsKKyAgbGVhc2UtPmNoYW5nZWQgPSAxOworfQorCiB2b2lkIHJlcnVuX3NjcmlwdHModm9pZCkKIHsKICAgc3RydWN0IGRoY3BfbGVhc2UgKmxlYXNlOwpkaWZmIC0tZ2l0IGEvc3JjL2xvZy5jIGIvc3JjL2xvZy5jCmluZGV4IDdkNjBlN2UuLjM2NGY1ZGYgMTAwNjQ0Ci0tLSBhL3NyYy9sb2cuYworKysgYi9zcmMvbG9nLmMKQEAgLTIsMTIgKzIsMTYgQEAKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgZGF0ZWQgSnVuZSwgMTk5MS4KLQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIHZlcnNpb24gMyBkYXRlZCAyOSBKdW5lLCAyMDA3LgorIAogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgCisgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogKi8KIAogI2luY2x1ZGUgImRuc21hc3EuaCIKQEAgLTY4LDEzICs3Miw2IEBACiAgIGlmICghbG9nX3Jlb3BlbihkYWVtb24tPmxvZ19maWxlKSkKICAgICBkaWUoXygiY2Fubm90IG9wZW4gJXM6ICVzIiksIGRhZW1vbi0+bG9nX2ZpbGUgPyBkYWVtb24tPmxvZ19maWxlIDogImxvZyIsIEVDX0ZJTEUpOwogICAKLSAgLyogSWYgd2UncmUgcnVubmluZyBhcyByb290IGFuZCBnb2luZyB0byBjaGFuZ2UgdWlkIGxhdGVyLAotICAgICBjaGFuZ2UgdGhlIG93bmVyc2hpcCBoZXJlIHNvIHRoYXQgdGhlIGZpbGUgaXMgYWx3YXlzIG93bmVkIGJ5Ci0gICAgIHRoZSBkbnNtYXNxIHVzZXIuIFRoZW4gbG9ncm90YXRlIGNhbiBqdXN0IGNvcHkgdGhlIG93bmVyLgotICAgICBGYWlsdXJlIG9mIHRoZSBjaG93biBjYWxsIGlzIE9LLCAoZm9yIGluc3RhbmNlIHdoZW4gc3RhcnRlZCBhcyBub24tcm9vdCkgKi8KLSAgaWYgKGxvZ190b19maWxlICYmIGVudF9wdyAmJiBlbnRfcHctPnB3X3VpZCAhPSAwKQotICAgIGZjaG93bihsb2dfZmQsIGVudF9wdy0+cHdfdWlkLCAtMSk7Ci0gCiAgIC8qIGlmIHF1ZXVpbmcgaXMgaW5oaWJpdGVkLCBtYWtlIHN1cmUgd2UgYWxsb2NhdGUKICAgICAgdGhlIG9uZSByZXF1aXJlZCBidWZmZXIgbm93LiAqLwogICBpZiAobWF4X2xvZ3MgPT0gMCkKQEAgLTgzLDI5ICs4MCw0NyBAQAogICAgICAgZnJlZV9lbnRyaWVzLT5uZXh0ID0gTlVMTDsKICAgICAgIGVudHJpZXNfYWxsb2NlZCA9IDE7CiAgICAgfQorCisgIC8qIElmIHdlJ3JlIHJ1bm5pbmcgYXMgcm9vdCBhbmQgZ29pbmcgdG8gY2hhbmdlIHVpZCBsYXRlciwKKyAgICAgY2hhbmdlIHRoZSBvd25lcnNoaXAgaGVyZSBzbyB0aGF0IHRoZSBmaWxlIGlzIGFsd2F5cyBvd25lZCBieQorICAgICB0aGUgZG5zbWFzcSB1c2VyLiBUaGVuIGxvZ3JvdGF0ZSBjYW4ganVzdCBjb3B5IHRoZSBvd25lci4KKyAgICAgRmFpbHVyZSBvZiB0aGUgY2hvd24gY2FsbCBpcyBPSywgKGZvciBpbnN0YW5jZSB3aGVuIHN0YXJ0ZWQgYXMgbm9uLXJvb3QpICovCisgIGlmIChsb2dfdG9fZmlsZSAmJiBlbnRfcHcgJiYgZW50X3B3LT5wd191aWQgIT0gMCAmJiBmY2hvd24obG9nX2ZkLCBlbnRfcHctPnB3X3VpZCwgLTEpICE9IDApCisgICAgbXlfc3lzbG9nKExPR19XQVJOSU5HLCBfKCJ3YXJuaW5nOiBmYWlsZWQgdG8gY2hhbmdlIG93bmVyIG9mICVzOiAlcyIpLCBkYWVtb24tPmxvZ19maWxlLCBzdHJlcnJvcihlcnJubykpOwogfQogCiBpbnQgbG9nX3Jlb3BlbihjaGFyICpsb2dfZmlsZSkKIHsKLSAgaW50IGZsYWdzOwotICAKICAgaWYgKGxvZ19mZCAhPSAtMSkKICAgICBjbG9zZShsb2dfZmQpOwogCiAgIC8qIE5PVEU6IHVtYXNrIGlzIHNldCB0byAwMjIgYnkgdGhlIHRpbWUgdGhpcyBnZXRzIGNhbGxlZCAqLwogICAgICAKICAgaWYgKGxvZ19maWxlKQotICAgIGxvZ19mZCA9IG9wZW4obG9nX2ZpbGUsIE9fV1JPTkxZfE9fQ1JFQVR8T19BUFBFTkQsIFNfSVJVU1J8U19JV1VTUnxTX0lSR1JQKTsgCisgICAgeworICAgICAgbG9nX2ZkID0gb3Blbihsb2dfZmlsZSwgT19XUk9OTFl8T19DUkVBVHxPX0FQUEVORCwgU19JUlVTUnxTX0lXVVNSfFNfSVJHUlApOworICAgICAgcmV0dXJuIGxvZ19mZCAhPSAtMTsKKyAgICB9CiAgIGVsc2UKLSAgICBsb2dfZmQgPSBzb2NrZXQoQUZfVU5JWCwgY29ubmVjdGlvbl90eXBlLCAwKTsKLSAgCi0gIGlmIChsb2dfZmQgPT0gLTEpCi0gICAgcmV0dXJuIDA7Ci0gIAotICAvKiBpZiBtYXhfbG9ncyBpcyB6ZXJvLCBsZWF2ZSB0aGUgc29ja2V0IGJsb2NraW5nICovCi0gIGlmIChtYXhfbG9ncyAhPSAwICYmIChmbGFncyA9IGZjbnRsKGxvZ19mZCwgRl9HRVRGTCkpICE9IC0xKQotICAgIGZjbnRsKGxvZ19mZCwgRl9TRVRGTCwgZmxhZ3MgfCBPX05PTkJMT0NLKTsKKyNpZmRlZiBIQVZFX1NPTEFSSVNfTkVUV09SSworICAgIC8qIFNvbGFyaXMgbG9nZ2luZyBpcyAiZGlmZmVyZW50IiwgL2Rldi9sb2cgaXMgbm90IHVuaXgtZG9tYWluIHNvY2tldC4KKyAgICAgICBKdXN0IGxlYXZlIGxvZ19mZCA9PSAtMSBhbmQgdXNlIHRoZSB2c3lzbG9nIGNhbGwgZm9yIGV2ZXJ5dGhpbmcuLi4uICovCisjICAgZGVmaW5lIF9QQVRIX0xPRyAiIiAgLyogZHVtbXkgKi8KKyAgICBsb2dfZmQgPSAtMTsKKyNlbHNlCisgICAgeworICAgICAgIGludCBmbGFnczsKKyAgICAgICBsb2dfZmQgPSBzb2NrZXQoQUZfVU5JWCwgY29ubmVjdGlvbl90eXBlLCAwKTsKICAgICAgIAorICAgICAgaWYgKGxvZ19mZCA9PSAtMSkKKwlyZXR1cm4gMDsKKyAgICAgIAorICAgICAgLyogaWYgbWF4X2xvZ3MgaXMgemVybywgbGVhdmUgdGhlIHNvY2tldCBibG9ja2luZyAqLworICAgICAgaWYgKG1heF9sb2dzICE9IDAgJiYgKGZsYWdzID0gZmNudGwobG9nX2ZkLCBGX0dFVEZMKSkgIT0gLTEpCisJZmNudGwobG9nX2ZkLCBGX1NFVEZMLCBmbGFncyB8IE9fTk9OQkxPQ0spOworICAgIH0KKyNlbmRpZgorCiAgIHJldHVybiAxOwogfQogCkBAIC0xODcsNyArMjAyLDcgQEAKICNpZmRlZiBIQVZFX1NPQ0tBRERSX1NBX0xFTgogCSAgICAgIGxvZ2FkZHIuc3VuX2xlbiA9IHNpemVvZihsb2dhZGRyKSAtIHNpemVvZihsb2dhZGRyLnN1bl9wYXRoKSArIHN0cmxlbihfUEFUSF9MT0cpICsgMTsgCiAjZW5kaWYKLQkgICAgICBsb2dhZGRyLnN1bl9mYW1pbHkgPSBBRl9MT0NBTDsKKwkgICAgICBsb2dhZGRyLnN1bl9mYW1pbHkgPSBBRl9VTklYOwogCSAgICAgIHN0cm5jcHkobG9nYWRkci5zdW5fcGF0aCwgX1BBVEhfTE9HLCBzaXplb2YobG9nYWRkci5zdW5fcGF0aCkpOwogCSAgICAgIAogCSAgICAgIC8qIEdvdCBjb25uZWN0aW9uIGJhY2s/IHRyeSBhZ2Fpbi4gKi8KQEAgLTIzNCwxNSArMjQ5LDE1IEBACiAgIHNpemVfdCBsZW47CiAgIHBpZF90IHBpZCA9IGdldHBpZCgpOwogCi0gIHZhX3N0YXJ0KGFwLCBmb3JtYXQpOyAKLSAgCiAgIGlmIChsb2dfc3RkZXJyKSAKICAgICB7CiAgICAgICBmcHJpbnRmKHN0ZGVyciwgImRuc21hc3E6ICIpOworICAgICAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7CiAgICAgICB2ZnByaW50ZihzdGRlcnIsIGZvcm1hdCwgYXApOworICAgICAgdmFfZW5kKGFwKTsKICAgICAgIGZwdXRjKCdcbicsIHN0ZGVycik7CiAgICAgfQotICAKKwogICBpZiAobG9nX2ZkID09IC0xKQogICAgIHsKICAgICAgIC8qIGZhbGwtYmFjayB0byBzeXNsb2cgaWYgd2UgZGllIGR1cmluZyBzdGFydHVwIG9yIGZhaWwgZHVyaW5nIHJ1bm5pbmcuICovCkBAIC0yNTIsNiArMjY3LDcgQEAKIAkgIG9wZW5sb2coImRuc21hc3EiLCBMT0dfUElELCBsb2dfZmFjKTsKIAkgIGlzb3BlbiA9IDE7CiAJfQorICAgICAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7ICAKICAgICAgIHZzeXNsb2cocHJpb3JpdHksIGZvcm1hdCwgYXApOwogICAgICAgdmFfZW5kKGFwKTsKICAgICAgIHJldHVybjsKQEAgLTI4Miw5ICsyOTgsMTEgQEAKICAgICAgIGlmICghbG9nX3RvX2ZpbGUpCiAJcCArPSBzcHJpbnRmKHAsICI8JWQ+IiwgcHJpb3JpdHkgfCBsb2dfZmFjKTsKICAgICAgIAotICAgICAgcCArPSBzcHJpbnRmKHAsICIlLjE1cyBkbnNtYXNxWyVkXTogIiwgY3RpbWUoJnRpbWVfbm93KSArIDQsIHBpZCk7CisgICAgICBwICs9IHNwcmludGYocCwgIiUuMTVzIGRuc21hc3FbJWRdOiAiLCBjdGltZSgmdGltZV9ub3cpICsgNCwgKGludClwaWQpOwogICAgICAgbGVuID0gcCAtIGVudHJ5LT5wYXlsb2FkOworICAgICAgdmFfc3RhcnQoYXAsIGZvcm1hdCk7ICAKICAgICAgIGxlbiArPSB2c25wcmludGYocCwgTUFYX01FU1NBR0UgLSBsZW4sIGZvcm1hdCwgYXApICsgMTsgLyogaW5jbHVkZSB6ZXJvLXRlcm1pbmF0b3IgKi8KKyAgICAgIHZhX2VuZChhcCk7CiAgICAgICBlbnRyeS0+bGVuZ3RoID0gbGVuID4gTUFYX01FU1NBR0UgPyBNQVhfTUVTU0FHRSA6IGxlbjsKICAgICAgIGVudHJ5LT5vZmZzZXQgPSAwOwogICAgICAgZW50cnktPnBpZCA9IHBpZDsKQEAgLTMzMSw4ICszNDksNiBAQAogCSAgbG9nX3dyaXRlKCk7CiAJfQogICAgIH0gCi0gCi0gIHZhX2VuZChhcCk7CiB9CiAKIHZvaWQgc2V0X2xvZ193cml0ZXIoZmRfc2V0ICpzZXQsIGludCAqbWF4ZmRwKQpkaWZmIC0tZ2l0IGEvc3JjL25ldGxpbmsuYyBiL3NyYy9uZXRsaW5rLmMKaW5kZXggMzE1N2YwMy4uMjk5ZjNmNyAxMDA2NDQKLS0tIGEvc3JjL25ldGxpbmsuYworKysgYi9zcmMvbmV0bGluay5jCkBAIC0xLDEzICsxLDE3IEBACi0gLyogZG5zbWFzcSBpcyBDb3B5cmlnaHQgKGMpIDIwMDAtMjAwNiBTaW1vbiBLZWxsZXkKKy8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDcgU2ltb24gS2VsbGV5CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEuCi0KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSB2ZXJzaW9uIDMgZGF0ZWQgMjkgSnVuZSwgMjAwNy4KKyAKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgICAgIAorICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCiAKICNpbmNsdWRlICJkbnNtYXNxLmgiCmRpZmYgLS1naXQgYS9zcmMvbmV0d29yay5jIGIvc3JjL25ldHdvcmsuYwppbmRleCBkMzg4NmU3Li4zNjAwOWZlIDEwMDY0NAotLS0gYS9zcmMvbmV0d29yay5jCisrKyBiL3NyYy9uZXR3b3JrLmMKQEAgLTEsMTMgKzEsMTcgQEAKLS8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwIC0gMjAwNiBTaW1vbiBLZWxsZXkKKy8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDcgU2ltb24gS2VsbGV5CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEuCi0KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSB2ZXJzaW9uIDMgZGF0ZWQgMjkgSnVuZSwgMjAwNy4KKyAKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgICAgIAorICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCiAKICNpbmNsdWRlICJkbnNtYXNxLmgiCkBAIC0yOTMsNyArMjk3LDcgQEAKICAgdW5pb24gbXlzb2NrYWRkciBhZGRyOwogICBpbnQgb3B0ID0gMTsKICAgc3RydWN0IGxpc3RlbmVyICpsLCAqbDYgPSBOVUxMOwotICBpbnQgdGNwZmQsIGZkLCB0ZnRwZmQgPSAtMTsKKyAgaW50IHRjcGZkID0gLTEsIGZkID0gLTEsIHRmdHBmZCA9IC0xOwogCiAgIG1lbXNldCgmYWRkciwgMCwgc2l6ZW9mKGFkZHIpKTsKICAgYWRkci5pbi5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKQEAgLTMwMywyOCArMzA3LDMyIEBACiAgIGFkZHIuaW4uc2luX2xlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOwogI2VuZGlmCiAKLSAgaWYgKChmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX0RHUkFNLCAwKSkgPT0gLTEgfHwKLSAgICAgICh0Y3BmZCA9IHNvY2tldChBRl9JTkVULCBTT0NLX1NUUkVBTSwgMCkpID09IC0xKQotICAgIHJldHVybiBOVUxMOwotICAKLSAgaWYgKHNldHNvY2tvcHQodGNwZmQsIFNPTF9TT0NLRVQsIFNPX1JFVVNFQUREUiwgJm9wdCwgc2l6ZW9mKG9wdCkpID09IC0xIHx8Ci0gICAgICBiaW5kKHRjcGZkLCAoc3RydWN0IHNvY2thZGRyICopJmFkZHIsIHNhX2xlbigmYWRkcikpID09IC0xIHx8Ci0gICAgICBsaXN0ZW4odGNwZmQsIDUpID09IC0xIHx8Ci0gICAgICAhZml4X2ZkKHRjcGZkKSB8fAorICBpZiAoZGFlbW9uLT5wb3J0ICE9IDApCisgICAgeworICAgICAgCisgICAgICBpZiAoKGZkID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfREdSQU0sIDApKSA9PSAtMSB8fAorCSAgKHRjcGZkID0gc29ja2V0KEFGX0lORVQsIFNPQ0tfU1RSRUFNLCAwKSkgPT0gLTEpCisJcmV0dXJuIE5VTEw7CisgICAgICAKKyAgICAgIGlmIChzZXRzb2Nrb3B0KHRjcGZkLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIsICZvcHQsIHNpemVvZihvcHQpKSA9PSAtMSB8fAorCSAgYmluZCh0Y3BmZCwgKHN0cnVjdCBzb2NrYWRkciAqKSZhZGRyLCBzYV9sZW4oJmFkZHIpKSA9PSAtMSB8fAorCSAgbGlzdGVuKHRjcGZkLCA1KSA9PSAtMSB8fAorCSAgIWZpeF9mZCh0Y3BmZCkgfHwKICNpZmRlZiBIQVZFX0lQVjYKLSAgICAgICFjcmVhdGVfaXB2Nl9saXN0ZW5lcigmbDYsIGRhZW1vbi0+cG9ydCkgfHwKKwkgICFjcmVhdGVfaXB2Nl9saXN0ZW5lcigmbDYsIGRhZW1vbi0+cG9ydCkgfHwKICNlbmRpZgotICAgICAgc2V0c29ja29wdChmZCwgU09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAmb3B0LCBzaXplb2Yob3B0KSkgPT0gLTEgfHwKLSAgICAgICFmaXhfZmQoZmQpIHx8CisJICBzZXRzb2Nrb3B0KGZkLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIsICZvcHQsIHNpemVvZihvcHQpKSA9PSAtMSB8fAorCSAgIWZpeF9mZChmZCkgfHwKICNpZiBkZWZpbmVkKEhBVkVfTElOVVhfTkVUV09SSykgCi0gICAgICBzZXRzb2Nrb3B0KGZkLCBTT0xfSVAsIElQX1BLVElORk8sICZvcHQsIHNpemVvZihvcHQpKSA9PSAtMSB8fAorCSAgc2V0c29ja29wdChmZCwgU09MX0lQLCBJUF9QS1RJTkZPLCAmb3B0LCBzaXplb2Yob3B0KSkgPT0gLTEgfHwKICNlbGlmIGRlZmluZWQoSVBfUkVDVkRTVEFERFIpICYmIGRlZmluZWQoSVBfUkVDVklGKQotICAgICAgc2V0c29ja29wdChmZCwgSVBQUk9UT19JUCwgSVBfUkVDVkRTVEFERFIsICZvcHQsIHNpemVvZihvcHQpKSA9PSAtMSB8fAotICAgICAgc2V0c29ja29wdChmZCwgSVBQUk9UT19JUCwgSVBfUkVDVklGLCAmb3B0LCBzaXplb2Yob3B0KSkgPT0gLTEgfHwKKwkgIHNldHNvY2tvcHQoZmQsIElQUFJPVE9fSVAsIElQX1JFQ1ZEU1RBRERSLCAmb3B0LCBzaXplb2Yob3B0KSkgPT0gLTEgfHwKKwkgIHNldHNvY2tvcHQoZmQsIElQUFJPVE9fSVAsIElQX1JFQ1ZJRiwgJm9wdCwgc2l6ZW9mKG9wdCkpID09IC0xIHx8CiAjZW5kaWYgCi0gICAgICBiaW5kKGZkLCAoc3RydWN0IHNvY2thZGRyICopJmFkZHIsIHNhX2xlbigmYWRkcikpID09IC0xKQotICAgIHJldHVybiBOVUxMOwotCisJICBiaW5kKGZkLCAoc3RydWN0IHNvY2thZGRyICopJmFkZHIsIHNhX2xlbigmYWRkcikpID09IC0xKQorCXJldHVybiBOVUxMOworICAgIH0KKyAgCiAjaWZkZWYgSEFWRV9URlRQCiAgIGlmIChkYWVtb24tPm9wdGlvbnMgJiBPUFRfVEZUUCkKICAgICB7CkBAIC0zNjcsNDkgKzM3NSw1MiBAQAogICAgICAgbmV3LT5pZmFjZSA9IGlmYWNlOwogICAgICAgbmV3LT5uZXh0ID0gbGlzdGVuZXJzOwogICAgICAgbmV3LT50ZnRwZmQgPSAtMTsKKyAgICAgIG5ldy0+dGNwZmQgPSAtMTsKKyAgICAgIG5ldy0+ZmQgPSAtMTsKIAotICAgICAgaWYgKChuZXctPnRjcGZkID0gc29ja2V0KGlmYWNlLT5hZGRyLnNhLnNhX2ZhbWlseSwgU09DS19TVFJFQU0sIDApKSA9PSAtMSB8fAotCSAgKG5ldy0+ZmQgPSBzb2NrZXQoaWZhY2UtPmFkZHIuc2Euc2FfZmFtaWx5LCBTT0NLX0RHUkFNLCAwKSkgPT0gLTEgfHwKLQkgIHNldHNvY2tvcHQobmV3LT5mZCwgU09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAmb3B0LCBzaXplb2Yob3B0KSkgPT0gLTEgfHwKLQkgIHNldHNvY2tvcHQobmV3LT50Y3BmZCwgU09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAmb3B0LCBzaXplb2Yob3B0KSkgPT0gLTEgfHwKLQkgICFmaXhfZmQobmV3LT50Y3BmZCkgfHwKLQkgICFmaXhfZmQobmV3LT5mZCkpCi0JZGllKF8oImZhaWxlZCB0byBjcmVhdGUgbGlzdGVuaW5nIHNvY2tldDogJXMiKSwgTlVMTCwgRUNfQkFETkVUKTsKLSAgICAgIAotI2lmZGVmIEhBVkVfSVBWNgotICAgICAgaWYgKGlmYWNlLT5hZGRyLnNhLnNhX2ZhbWlseSA9PSBBRl9JTkVUNikKKyAgICAgIGlmIChkYWVtb24tPnBvcnQgIT0gMCkKIAl7Ci0JICBpZiAoc2V0c29ja29wdChuZXctPmZkLCBJUFY2X0xFVkVMLCBJUFY2X1Y2T05MWSwgJm9wdCwgc2l6ZW9mKG9wdCkpID09IC0xIHx8Ci0JICAgICAgc2V0c29ja29wdChuZXctPnRjcGZkLCBJUFY2X0xFVkVMLCBJUFY2X1Y2T05MWSwgJm9wdCwgc2l6ZW9mKG9wdCkpID09IC0xKQotCSAgICBkaWUoXygiZmFpbGVkIHRvIHNldCBJUFY2IG9wdGlvbnMgb24gbGlzdGVuaW5nIHNvY2tldDogJXMiKSwgTlVMTCwgRUNfQkFETkVUKTsKLQl9Ci0jZW5kaWYKLSAgICAgIAotICAgICAgaWYgKGJpbmQobmV3LT50Y3BmZCwgJmlmYWNlLT5hZGRyLnNhLCBzYV9sZW4oJmlmYWNlLT5hZGRyKSkgPT0gLTEgfHwKLQkgIGJpbmQobmV3LT5mZCwgJmlmYWNlLT5hZGRyLnNhLCBzYV9sZW4oJmlmYWNlLT5hZGRyKSkgPT0gLTEpCi0JeworCSAgaWYgKChuZXctPnRjcGZkID0gc29ja2V0KGlmYWNlLT5hZGRyLnNhLnNhX2ZhbWlseSwgU09DS19TVFJFQU0sIDApKSA9PSAtMSB8fAorCSAgICAgIChuZXctPmZkID0gc29ja2V0KGlmYWNlLT5hZGRyLnNhLnNhX2ZhbWlseSwgU09DS19ER1JBTSwgMCkpID09IC0xIHx8CisJICAgICAgc2V0c29ja29wdChuZXctPmZkLCBTT0xfU09DS0VULCBTT19SRVVTRUFERFIsICZvcHQsIHNpemVvZihvcHQpKSA9PSAtMSB8fAorCSAgICAgIHNldHNvY2tvcHQobmV3LT50Y3BmZCwgU09MX1NPQ0tFVCwgU09fUkVVU0VBRERSLCAmb3B0LCBzaXplb2Yob3B0KSkgPT0gLTEgfHwKKwkgICAgICAhZml4X2ZkKG5ldy0+dGNwZmQpIHx8CisJICAgICAgIWZpeF9mZChuZXctPmZkKSkKKwkgICAgZGllKF8oImZhaWxlZCB0byBjcmVhdGUgbGlzdGVuaW5nIHNvY2tldDogJXMiKSwgTlVMTCwgRUNfQkFETkVUKTsKKwkgIAogI2lmZGVmIEhBVkVfSVBWNgotCSAgaWYgKGlmYWNlLT5hZGRyLnNhLnNhX2ZhbWlseSA9PSBBRl9JTkVUNiAmJiBlcnJubyA9PSBFTk9ERVYpCisJICBpZiAoaWZhY2UtPmFkZHIuc2Euc2FfZmFtaWx5ID09IEFGX0lORVQ2KQogCSAgICB7Ci0JICAgICAgY2xvc2UobmV3LT50Y3BmZCk7Ci0JICAgICAgY2xvc2UobmV3LT5mZCk7Ci0JICAgICAgZnJlZShuZXcpOworCSAgICAgIGlmIChzZXRzb2Nrb3B0KG5ldy0+ZmQsIElQVjZfTEVWRUwsIElQVjZfVjZPTkxZLCAmb3B0LCBzaXplb2Yob3B0KSkgPT0gLTEgfHwKKwkJICBzZXRzb2Nrb3B0KG5ldy0+dGNwZmQsIElQVjZfTEVWRUwsIElQVjZfVjZPTkxZLCAmb3B0LCBzaXplb2Yob3B0KSkgPT0gLTEpCisJCWRpZShfKCJmYWlsZWQgdG8gc2V0IElQVjYgb3B0aW9ucyBvbiBsaXN0ZW5pbmcgc29ja2V0OiAlcyIpLCBOVUxMLCBFQ19CQURORVQpOwogCSAgICB9Ci0JICBlbHNlCiAjZW5kaWYKKwkgIAorCSAgaWYgKGJpbmQobmV3LT50Y3BmZCwgJmlmYWNlLT5hZGRyLnNhLCBzYV9sZW4oJmlmYWNlLT5hZGRyKSkgPT0gLTEgfHwKKwkgICAgICBiaW5kKG5ldy0+ZmQsICZpZmFjZS0+YWRkci5zYSwgc2FfbGVuKCZpZmFjZS0+YWRkcikpID09IC0xKQogCSAgICB7Ci0JICAgICAgcHJldHR5cHJpbnRfYWRkcigmaWZhY2UtPmFkZHIsIGRhZW1vbi0+bmFtZWJ1ZmYpOwotCSAgICAgIGRpZShfKCJmYWlsZWQgdG8gYmluZCBsaXN0ZW5pbmcgc29ja2V0IGZvciAlczogJXMiKSwgCi0JCSAgZGFlbW9uLT5uYW1lYnVmZiwgRUNfQkFETkVUKTsKKyNpZmRlZiBIQVZFX0lQVjYKKwkgICAgICBpZiAoaWZhY2UtPmFkZHIuc2Euc2FfZmFtaWx5ID09IEFGX0lORVQ2ICYmIChlcnJubyA9PSBFTk9ERVYgfHwgZXJybm8gPT0gRUFERFJOT1RBVkFJTCkpCisJCXsKKwkJICBjbG9zZShuZXctPnRjcGZkKTsKKwkJICBjbG9zZShuZXctPmZkKTsKKwkJICBmcmVlKG5ldyk7CisJCSAgbmV3ID0gTlVMTDsKKwkJfQorCSAgICAgIGVsc2UKKyNlbmRpZgorCQl7CisJCSAgcHJldHR5cHJpbnRfYWRkcigmaWZhY2UtPmFkZHIsIGRhZW1vbi0+bmFtZWJ1ZmYpOworCQkgIGRpZShfKCJmYWlsZWQgdG8gYmluZCBsaXN0ZW5pbmcgc29ja2V0IGZvciAlczogJXMiKSwgCisJCSAgICAgIGRhZW1vbi0+bmFtZWJ1ZmYsIEVDX0JBRE5FVCk7CisJCX0KIAkgICAgfQorCSAgZWxzZSBpZiAobGlzdGVuKG5ldy0+dGNwZmQsIDUpID09IC0xKQorCSAgICBkaWUoXygiZmFpbGVkIHRvIGxpc3RlbiBvbiBzb2NrZXQ6ICVzIiksIE5VTEwsIEVDX0JBRE5FVCk7CiAJfQotICAgICAgZWxzZQotCSB7Ci0JICAgbGlzdGVuZXJzID0gbmV3OyAgICAgCi0JICAgaWYgKGxpc3RlbihuZXctPnRjcGZkLCA1KSA9PSAtMSkKLQkgICAgIGRpZShfKCJmYWlsZWQgdG8gbGlzdGVuIG9uIHNvY2tldDogJXMiKSwgTlVMTCwgRUNfQkFETkVUKTsKLQkgfQogCisjaWZkZWYgSEFWRV9URlRQCiAgICAgICBpZiAoKGRhZW1vbi0+b3B0aW9ucyAmIE9QVF9URlRQKSAmJiBpZmFjZS0+YWRkci5zYS5zYV9mYW1pbHkgPT0gQUZfSU5FVCAmJiBpZmFjZS0+ZGhjcF9vaykKIAl7CiAJICBzaG9ydCBzYXZlID0gaWZhY2UtPmFkZHIuaW4uc2luX3BvcnQ7CkBAIC00MjEsMTggKzQzMiw1MSBAQAogCSAgICBkaWUoXygiZmFpbGVkIHRvIGNyZWF0ZSBURlRQIHNvY2tldDogJXMiKSwgTlVMTCwgRUNfQkFETkVUKTsKIAkgIGlmYWNlLT5hZGRyLmluLnNpbl9wb3J0ID0gc2F2ZTsKIAl9CisjZW5kaWYKKworICAgICAgaWYgKG5ldykKKwlsaXN0ZW5lcnMgPSBuZXc7CiAgICAgfQogCiAgIHJldHVybiBsaXN0ZW5lcnM7CiB9CiAKLXN0cnVjdCBzZXJ2ZXJmZCAqYWxsb2NhdGVfc2ZkKHVuaW9uIG15c29ja2FkZHIgKmFkZHIsIHN0cnVjdCBzZXJ2ZXJmZCAqKnNmZHMpCitpbnQgbG9jYWxfYmluZChpbnQgZmQsIHVuaW9uIG15c29ja2FkZHIgKmFkZHIsIGNoYXIgKmludG5hbWUsIGludCBpc190Y3ApCit7CisgIHVuaW9uIG15c29ja2FkZHIgYWRkcl9jb3B5ID0gKmFkZHI7CisKKyAgLyogY2Fubm90IHNldCBzb3VyY2UgX3BvcnRfIGZvciBUQ1AgY29ubmVjdGlvbnMuICovCisgIGlmIChpc190Y3ApCisgICAgeworICAgICAgaWYgKGFkZHJfY29weS5zYS5zYV9mYW1pbHkgPT0gQUZfSU5FVCkKKwlhZGRyX2NvcHkuaW4uc2luX3BvcnQgPSAwOworI2lmZGVmIEhBVkVfSVBWNgorICAgICAgZWxzZQorCWFkZHJfY29weS5pbjYuc2luNl9wb3J0ID0gMDsKKyNlbmRpZgorICAgIH0KKyAgCisgIGlmIChiaW5kKGZkLCAoc3RydWN0IHNvY2thZGRyICopJmFkZHJfY29weSwgc2FfbGVuKCZhZGRyX2NvcHkpKSA9PSAtMSkKKyAgICByZXR1cm4gMDsKKyAgICAKKyNpZiBkZWZpbmVkKFNPX0JJTkRUT0RFVklDRSkKKyAgaWYgKHN0cmxlbihpbnRuYW1lKSAhPSAwICYmCisgICAgICBzZXRzb2Nrb3B0KGZkLCBTT0xfU09DS0VULCBTT19CSU5EVE9ERVZJQ0UsIGludG5hbWUsIHNpemVvZihpbnRuYW1lKSkgPT0gLTEpCisgICAgcmV0dXJuIDA7CisjZW5kaWYKKworICByZXR1cm4gMTsKK30KKworc3RhdGljIHN0cnVjdCBzZXJ2ZXJmZCAqYWxsb2NhdGVfc2ZkKHVuaW9uIG15c29ja2FkZHIgKmFkZHIsIGNoYXIgKmludG5hbWUpCiB7CiAgIHN0cnVjdCBzZXJ2ZXJmZCAqc2ZkOworICBpbnQgZXJyc2F2ZTsKIAogICAvKiBtYXkgaGF2ZSBhIHN1aXRhYmxlIG9uZSBhbHJlYWR5ICovCi0gIGZvciAoc2ZkID0gKnNmZHM7IHNmZDsgc2ZkID0gc2ZkLT5uZXh0ICkKLSAgICBpZiAoc29ja2FkZHJfaXNlcXVhbCgmc2ZkLT5zb3VyY2VfYWRkciwgYWRkcikpCisgIGZvciAoc2ZkID0gZGFlbW9uLT5zZmRzOyBzZmQ7IHNmZCA9IHNmZC0+bmV4dCApCisgICAgaWYgKHNvY2thZGRyX2lzZXF1YWwoJnNmZC0+c291cmNlX2FkZHIsIGFkZHIpICYmCisJc3RyY21wKGludG5hbWUsIHNmZC0+aW50ZXJmYWNlKSA9PSAwKQogICAgICAgcmV0dXJuIHNmZDsKICAgCiAgIC8qIG5lZWQgdG8gbWFrZSBhIG5ldyBvbmUuICovCkBAIC00NDYsMjMgKzQ5MCw2OCBAQAogICAgICAgcmV0dXJuIE5VTEw7CiAgICAgfQogICAKLSAgaWYgKGJpbmQoc2ZkLT5mZCwgKHN0cnVjdCBzb2NrYWRkciAqKWFkZHIsIHNhX2xlbihhZGRyKSkgPT0gLTEgfHwKLSAgICAgICFmaXhfZmQoc2ZkLT5mZCkpCi0gICAgewotICAgICAgaW50IGVycnNhdmUgPSBlcnJubzsgLyogc2F2ZSBlcnJvciBmcm9tIGJpbmQuICovCisgIGlmICghbG9jYWxfYmluZChzZmQtPmZkLCBhZGRyLCBpbnRuYW1lLCAwKSB8fCAhZml4X2ZkKHNmZC0+ZmQpKQorICAgIHsgCisgICAgICBlcnJzYXZlID0gZXJybm87IC8qIHNhdmUgZXJyb3IgZnJvbSBiaW5kLiAqLwogICAgICAgY2xvc2Uoc2ZkLT5mZCk7CiAgICAgICBmcmVlKHNmZCk7CiAgICAgICBlcnJubyA9IGVycnNhdmU7CiAgICAgICByZXR1cm4gTlVMTDsKICAgICB9Ci0gIAorICAgIAorICBzdHJjcHkoc2ZkLT5pbnRlcmZhY2UsIGludG5hbWUpOyAKICAgc2ZkLT5zb3VyY2VfYWRkciA9ICphZGRyOwotICBzZmQtPm5leHQgPSAqc2ZkczsKLSAgKnNmZHMgPSBzZmQ7Ci0gIAotICByZXR1cm4gc2ZkOworICBzZmQtPm5leHQgPSBkYWVtb24tPnNmZHM7CisgIGRhZW1vbi0+c2ZkcyA9IHNmZDsKKyAgcmV0dXJuIHNmZDsgCiB9CiAKKy8qIGNyZWF0ZSB1cHN0cmVhbSBzb2NrZXRzIGR1cmluZyBzdGFydHVwLCBiZWZvcmUgcm9vdCBpcyBkcm9wcGVkIHdoaWNoIG1heSBiZSBuZWVkZWQKKyAgIHRoaXMgYWxsb3dzIHF1ZXJ5X3BvcnQgdG8gYmUgYSBsb3cgcG9ydCBhbmQgaW50ZXJmYWNlIGJpbmRpbmcgKi8KK3ZvaWQgcHJlX2FsbG9jYXRlX3NmZHModm9pZCkKK3sKKyAgc3RydWN0IHNlcnZlciAqc3J2OworICAKKyAgaWYgKGRhZW1vbi0+cXVlcnlfcG9ydCAhPSAwKQorICAgIHsKKyAgICAgIHVuaW9uICBteXNvY2thZGRyIGFkZHI7CisgICAgICBtZW1zZXQoJmFkZHIsIDAsIHNpemVvZihhZGRyKSk7CisgICAgICBhZGRyLmluLnNpbl9mYW1pbHkgPSBBRl9JTkVUOworICAgICAgYWRkci5pbi5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOworICAgICAgYWRkci5pbi5zaW5fcG9ydCA9IGh0b25zKGRhZW1vbi0+cXVlcnlfcG9ydCk7CisjaWZkZWYgSEFWRV9TT0NLQUREUl9TQV9MRU4KKyAgICAgIGFkZHIuaW4uc2luX2xlbiA9IHNpemVvZihzdHJ1Y3Qgc29ja2FkZHJfaW4pOworI2VuZGlmCisgICAgICBhbGxvY2F0ZV9zZmQoJmFkZHIsICIiKTsKKyNpZmRlZiBIQVZFX0lQVjYKKyAgICAgIG1lbXNldCgmYWRkciwgMCwgc2l6ZW9mKGFkZHIpKTsKKyAgICAgIGFkZHIuaW42LnNpbjZfZmFtaWx5ID0gQUZfSU5FVDY7CisgICAgICBhZGRyLmluNi5zaW42X2FkZHIgPSBpbjZhZGRyX2FueTsKKyAgICAgIGFkZHIuaW42LnNpbjZfcG9ydCA9IGh0b25zKGRhZW1vbi0+cXVlcnlfcG9ydCk7CisjaWZkZWYgSEFWRV9TT0NLQUREUl9TQV9MRU4KKyAgICAgIGFkZHIuaW42LnNpbjZfbGVuID0gc2l6ZW9mKHN0cnVjdCBzb2NrYWRkcl9pbjYpOworI2VuZGlmCisgICAgICBhbGxvY2F0ZV9zZmQoJmFkZHIsICIiKTsKKyNlbmRpZgorICAgIH0KKyAgCisgIGZvciAoc3J2ID0gZGFlbW9uLT5zZXJ2ZXJzOyBzcnY7IHNydiA9IHNydi0+bmV4dCkKKyAgICBpZiAoIShzcnYtPmZsYWdzICYgKFNFUlZfTElURVJBTF9BRERSRVNTIHwgU0VSVl9OT19BRERSKSkgJiYKKwkhYWxsb2NhdGVfc2ZkKCZzcnYtPnNvdXJjZV9hZGRyLCBzcnYtPmludGVyZmFjZSkgJiYKKwkoZGFlbW9uLT5vcHRpb25zICYgT1BUX05PV0lMRCkpCisgICAgICB7CisJcHJldHR5cHJpbnRfYWRkcigmc3J2LT5hZGRyLCBkYWVtb24tPm5hbWVidWZmKTsKKwlpZiAoc3RybGVuKHNydi0+aW50ZXJmYWNlKSAhPSAwKQorCSAgeworCSAgICBzdHJjYXQoZGFlbW9uLT5uYW1lYnVmZiwgIiAiKTsKKwkgICAgc3RyY2F0KGRhZW1vbi0+bmFtZWJ1ZmYsIHNydi0+aW50ZXJmYWNlKTsKKwkgIH0KKwlkaWUoXygiZmFpbGVkIHRvIGJpbmQgc2VydmVyIHNvY2tldCBmb3IgJXM6ICVzIiksCisJICAgIGRhZW1vbi0+bmFtZWJ1ZmYsIEVDX0JBRE5FVCk7CisgICAgICB9ICAKK30KKworCiB2b2lkIGNoZWNrX3NlcnZlcnModm9pZCkKIHsKICAgc3RydWN0IGlyZWMgKmlmYWNlOwpAQCAtNDk2LDcgKzU4NSw3IEBACiAJICAgIH0KIAkgIAogCSAgLyogRG8gd2UgbmVlZCBhIHNvY2tldCBzZXQ/ICovCi0JICBpZiAoIW5ldy0+c2ZkICYmICEobmV3LT5zZmQgPSBhbGxvY2F0ZV9zZmQoJm5ldy0+c291cmNlX2FkZHIsICZkYWVtb24tPnNmZHMpKSkKKwkgIGlmICghbmV3LT5zZmQgJiYgIShuZXctPnNmZCA9IGFsbG9jYXRlX3NmZCgmbmV3LT5zb3VyY2VfYWRkciwgbmV3LT5pbnRlcmZhY2UpKSkKIAkgICAgewogCSAgICAgIG15X3N5c2xvZyhMT0dfV0FSTklORywgCiAJCQlfKCJpZ25vcmluZyBuYW1lc2VydmVyICVzIC0gY2Fubm90IG1ha2UvYmluZCBzb2NrZXQ6ICVzIiksCkBAIC01MjUsNiArNjE0LDggQEAKIAkgIGVsc2UgaWYgKCEobmV3LT5mbGFncyAmIFNFUlZfTElURVJBTF9BRERSRVNTKSkKIAkgICAgbXlfc3lzbG9nKExPR19JTkZPLCBfKCJ1c2luZyBuYW1lc2VydmVyICVzIyVkIGZvciAlcyAlcyIpLCBkYWVtb24tPm5hbWVidWZmLCBwb3J0LCBzMSwgczIpOwogCX0KKyAgICAgIGVsc2UgaWYgKHN0cmxlbihuZXctPmludGVyZmFjZSkgIT0gMCkKKwlteV9zeXNsb2coTE9HX0lORk8sIF8oInVzaW5nIG5hbWVzZXJ2ZXIgJXMjJWQodmlhICVzKSIpLCBkYWVtb24tPm5hbWVidWZmLCBwb3J0LCBuZXctPmludGVyZmFjZSk7IAogICAgICAgZWxzZQogCW15X3N5c2xvZyhMT0dfSU5GTywgXygidXNpbmcgbmFtZXNlcnZlciAlcyMlZCIpLCBkYWVtb24tPm5hbWVidWZmLCBwb3J0KTsgCiAgICAgfQpAQCAtNjI2LDkgKzcxNywxMCBAQAogICAgICAgc2Vydi0+YWRkciA9IGFkZHI7CiAgICAgICBzZXJ2LT5zb3VyY2VfYWRkciA9IHNvdXJjZV9hZGRyOwogICAgICAgc2Vydi0+ZG9tYWluID0gTlVMTDsKKyAgICAgIHNlcnYtPmludGVyZmFjZVswXSA9IDA7CiAgICAgICBzZXJ2LT5zZmQgPSBOVUxMOwogICAgICAgc2Vydi0+ZmxhZ3MgPSBTRVJWX0ZST01fUkVTT0xWOwotCisgICAgICBzZXJ2LT5xdWVyaWVzID0gc2Vydi0+ZmFpbGVkX3F1ZXJpZXMgPSAwOwogICAgICAgZ290b25lID0gMTsKICAgICB9CiAgIApkaWZmIC0tZ2l0IGEvc3JjL29wdGlvbi5jIGIvc3JjL29wdGlvbi5jCmluZGV4IGYyOTU3YWQuLjY0MGQwMzMgMTAwNjQ0Ci0tLSBhL3NyYy9vcHRpb24uYworKysgYi9zcmMvb3B0aW9uLmMKQEAgLTEsMTkgKzEsNTUgQEAKLS8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwIC0gMjAwNyBTaW1vbiBLZWxsZXkKKy8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDcgU2ltb24gS2VsbGV5CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEuCi0KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSB2ZXJzaW9uIDMgZGF0ZWQgMjkgSnVuZSwgMjAwNy4KKyAKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgICAgIAorICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCiAKIC8qIGRlZmluZSB0aGlzIHRvIGdldCBmYWNpbGl0eW5hbWVzICovCiAjZGVmaW5lIFNZU0xPR19OQU1FUwotCiAjaW5jbHVkZSAiZG5zbWFzcS5oIgorI2luY2x1ZGUgPHNldGptcC5oPgorCisvKiBTb2xhcmlzIGhlYWRlcnMgZG9uJ3QgaGF2ZSBmYWNpbGl0eSBuYW1lcy4gKi8KKyNpZmRlZiBIQVZFX1NPTEFSSVNfTkVUV09SSworc3RhdGljIGNvbnN0IHN0cnVjdCB7CisgIGNoYXIgKmNfbmFtZTsKKyAgdW5zaWduZWQgaW50IGNfdmFsOworfSAgZmFjaWxpdHluYW1lc1tdID0geworICB7ICJrZXJuIiwgICBMT0dfS0VSTiB9LAorICB7ICJ1c2VyIiwgICBMT0dfVVNFUiB9LAorICB7ICJtYWlsIiwgICBMT0dfTUFJTCB9LAorICB7ICJkYWVtb24iLCBMT0dfREFFTU9OIH0sCisgIHsgImF1dGgiLCAgIExPR19BVVRIIH0sCisgIHsgInN5c2xvZyIsIExPR19TWVNMT0cgfSwKKyAgeyAibHByIiwgICAgTE9HX0xQUiB9LAorICB7ICJuZXdzIiwgICBMT0dfTkVXUyB9LAorICB7ICJ1dWNwIiwgICBMT0dfVVVDUCB9LAorI2lmZGVmIExPR19BVURJVAorICAvKiBOb3QgU29sYXJpcyA8IDEwICovCisgIHsgImF1ZGl0IiwgIExPR19BVURJVCB9LAorI2VuZGlmCisgIHsgImNyb24iLCAgIExPR19DUk9OIH0sCisgIHsgImxvY2FsMCIsIExPR19MT0NBTDAgfSwKKyAgeyAibG9jYWwxIiwgTE9HX0xPQ0FMMSB9LAorICB7ICJsb2NhbDIiLCBMT0dfTE9DQUwyIH0sCisgIHsgImxvY2FsMyIsIExPR19MT0NBTDMgfSwKKyAgeyAibG9jYWw0IiwgTE9HX0xPQ0FMNCB9LAorICB7ICJsb2NhbDUiLCBMT0dfTE9DQUw1IH0sCisgIHsgImxvY2FsNiIsIExPR19MT0NBTDYgfSwKKyAgeyAibG9jYWw3IiwgTE9HX0xPQ0FMNyB9LAorICB7IE5VTEwsIDAgfQorfTsKKyNlbmRpZgogCiAjaWZuZGVmIEhBVkVfR0VUT1BUX0xPTkcKIHN0cnVjdCBteW9wdGlvbiB7CkBAIC00Niw2ICs4MiwxNSBAQAogI2RlZmluZSBMT1BUX0JBTksgICAgICAyNzIKICNkZWZpbmUgTE9QVF9ESENQX0hPU1QgMjczCiAjZGVmaW5lIExPUFRfQVBSRUYgICAgIDI3NAorI2RlZmluZSBMT1BUX09WRVJSSURFICAyNzUKKyNkZWZpbmUgTE9QVF9URlRQUE9SVFMgMjc2CisjZGVmaW5lIExPUFRfUkVCSU5EICAgIDI3NworI2RlZmluZSBMT1BUX05PTEFTVCAgICAyNzgKKyNkZWZpbmUgTE9QVF9PUFRTICAgICAgMjc5CisjZGVmaW5lIExPUFRfREhDUF9PUFRTIDI4MAorI2RlZmluZSBMT1BUX01BVENIICAgICAyODEKKyNkZWZpbmUgTE9QVF9CUk9BRENBU1QgMjgyCisjZGVmaW5lIExPUFRfTkVHVFRMICAgIDI4MwogCiAjaWZkZWYgSEFWRV9HRVRPUFRfTE9ORwogc3RhdGljIGNvbnN0IHN0cnVjdCBvcHRpb24gb3B0c1tdID0gIApAQCAtMTM4LDYgKzE4MywxNCBAQAogICAgIHsiZGhjcC1zdWJzY3JpZCIsIDEsIDAsIExPUFRfU1VCU0NSIH0sCiAgICAgeyJpbnRlcmZhY2UtbmFtZSIsIDEsIDAsIExPUFRfSU5UTkFNRSB9LAogICAgIHsiZGhjcC1ob3N0c2ZpbGUiLCAxLCAwLCBMT1BUX0RIQ1BfSE9TVCB9LAorICAgIHsiZGhjcC1vcHRzZmlsZSIsIDEsIDAsIExPUFRfREhDUF9PUFRTIH0sCisgICAgeyJkaGNwLW5vLW92ZXJyaWRlIiwgMCwgMCwgTE9QVF9PVkVSUklERSB9LAorICAgIHsidGZ0cC1wb3J0LXJhbmdlIiwgMSwgMCwgTE9QVF9URlRQUE9SVFMgfSwKKyAgICB7InN0b3AtZG5zLXJlYmluZCIsIDAsIDAsIExPUFRfUkVCSU5EIH0sCisgICAgeyJhbGwtc2VydmVycyIsIDAsIDAsIExPUFRfTk9MQVNUfSwgCisgICAgeyJkaGNwLW1hdGNoIiwgMSwgMCwgTE9QVF9NQVRDSCB9LCAKKyAgICB7ImRoY3AtYnJvYWRjYXN0IiwgMSwgMCwgTE9QVF9CUk9BRENBU1QgfSwKKyAgICB7Im5lZy10dGwiLCAxLCAwLCBMT1BUX05FR1RUTCB9LAogICAgIHsgTlVMTCwgMCwgMCwgMCB9CiAgIH07CiAKQEAgLTE3NSw2ICsyMjgsOSBAQAogICB7IExPUFRfTk9CTE9DSywgICBPUFRfVEZUUF9OT0JMT0NLIH0sCiAgIHsgTE9QVF9MT0dfT1BUUywgIE9QVF9MT0dfT1BUUyB9LAogICB7IExPUFRfQVBSRUYsICAgICBPUFRfVEZUUF9BUFJFRiB9LAorICB7IExPUFRfT1ZFUlJJREUsICBPUFRfTk9fT1ZFUlJJREUgfSwKKyAgeyBMT1BUX1JFQklORCwgICAgT1BUX05PX1JFQklORCB9LAorICB7IExPUFRfTk9MQVNULCAgICBPUFRfQUxMX1NFUlZFUlMgfSwKICAgeyAndicsICAgICAgICAgICAgMH0sCiAgIHsgJ3cnLCAgICAgICAgICAgIDB9LAogICB7IDAsIDAgfQpAQCAtMjAwLDYgKzI1Niw3IEBACiAgIHsgIi1nLCAtLWdyb3VwPWdyb3VwbmFtZSIsIGdldHRleHRfbm9vcCgiQ2hhbmdlIHRvIHRoaXMgZ3JvdXAgYWZ0ZXIgc3RhcnR1cCAoZGVmYXVsdHMgdG8gJXMpLiIpLCBDSEdSUCB9LAogICB7ICItRywgLS1kaGNwLWhvc3Q9PGhvc3RzcGVjPiIsIGdldHRleHRfbm9vcCgiU2V0IGFkZHJlc3Mgb3IgaG9zdG5hbWUgZm9yIGEgc3BlY2lmaWVkIG1hY2hpbmUuIiksIE5VTEwgfSwKICAgeyAiICAgIC0tZGhjcC1ob3N0c2ZpbGU9PGZpbGVuYW1lPiIsIGdldHRleHRfbm9vcCgiUmVhZCBESENQIGhvc3Qgc3BlY3MgZnJvbSBmaWxlIiksIE5VTEwgfSwKKyAgeyAiICAgIC0tZGhjcC1vcHRzZmlsZT08ZmlsZW5hbWU+IiwgZ2V0dGV4dF9ub29wKCJSZWFkIERIQ1Agb3B0aW9uIHNwZWNzIGZyb20gZmlsZSIpLCBOVUxMIH0sCiAgIHsgIi1oLCAtLW5vLWhvc3RzIiwgZ2V0dGV4dF9ub29wKCJEbyBOT1QgbG9hZCAlcyBmaWxlLiIpLCBIT1NUU0ZJTEUgfSwKICAgeyAiLUgsIC0tYWRkbi1ob3N0cz1wYXRoIiwgZ2V0dGV4dF9ub29wKCJTcGVjaWZ5IGEgaG9zdHMgZmlsZSB0byBiZSByZWFkIGluIGFkZGl0aW9uIHRvICVzLiIpLCBIT1NUU0ZJTEUgfSwKICAgeyAiLWksIC0taW50ZXJmYWNlPWludGVyZmFjZSIsIGdldHRleHRfbm9vcCgiU3BlY2lmeSBpbnRlcmZhY2UocykgdG8gbGlzdGVuIG9uLiIpLCBOVUxMIH0sCkBAIC0yMDksNiArMjY2LDcgQEAKICAgeyAiICAgIC0tZGhjcC1yZW1vdGVpZD08dGFnPiw8cmVtb3RlPiIsIGdldHRleHRfbm9vcCgiTWFwIFJGQzMwNDYgcmVtb3RlLWlkIHRvIHRhZy4iKSwgTlVMTCB9LAogICB7ICIgICAgLS1kaGNwLXN1YnNjcmlkPTx0YWc+LDxyZW1vdGU+IiwgZ2V0dGV4dF9ub29wKCJNYXAgUkZDMzk5MyBzdWJzY3JpYmVyLWlkIHRvIHRhZy4iKSwgTlVMTCB9LAogICB7ICItSiwgLS1kaGNwLWlnbm9yZT08dGFnPiIsIGdldHRleHRfbm9vcCgiRG9uJ3QgZG8gREhDUCBmb3IgaG9zdHMgd2l0aCB0YWcgc2V0LiIpLCBOVUxMIH0sCisgIHsgIiAgICAtLWRoY3AtYnJvYWRjYXN0PTx0YWc+IiwgZ2V0dGV4dF9ub29wKCJGb3JjZSBicm9hZGNhc3QgcmVwbGllcyBmb3IgaG9zdHMgd2l0aCB0YWcgc2V0LiIpLCBOVUxMIH0sIAogICB7ICItaywgLS1rZWVwLWluLWZvcmVncm91bmQiLCBnZXR0ZXh0X25vb3AoIkRvIE5PVCBmb3JrIGludG8gdGhlIGJhY2tncm91bmQsIGRvIE5PVCBydW4gaW4gZGVidWcgbW9kZS4iKSwgTlVMTCB9LAogICB7ICItSywgLS1kaGNwLWF1dGhvcml0YXRpdmUiLCBnZXR0ZXh0X25vb3AoIkFzc3VtZSB3ZSBhcmUgdGhlIG9ubHkgREhDUCBzZXJ2ZXIgb24gdGhlIGxvY2FsIG5ldHdvcmsuIiksIE5VTEwgfSwKICAgeyAiLWwsIC0tZGhjcC1sZWFzZWZpbGU9cGF0aCIsIGdldHRleHRfbm9vcCgiU3BlY2lmeSB3aGVyZSB0byBzdG9yZSBESENQIGxlYXNlcyAoZGVmYXVsdHMgdG8gJXMpLiIpLCBMRUFTRUZJTEUgfSwKQEAgLTIyMiw4ICsyODAsOCBAQAogICB7ICIgICAgLS1kaGNwLW9wdGlvbi1mb3JjZT08b3B0c3BlYz4iLCBnZXR0ZXh0X25vb3AoIkRIQ1Agb3B0aW9uIHNlbnQgZXZlbiBpZiB0aGUgY2xpZW50IGRvZXMgbm90IHJlcXVlc3QgaXQuIiksIE5VTEx9LAogICB7ICItcCwgLS1wb3J0PW51bWJlciIsIGdldHRleHRfbm9vcCgiU3BlY2lmeSBwb3J0IHRvIGxpc3RlbiBmb3IgRE5TIHJlcXVlc3RzIG9uIChkZWZhdWx0cyB0byA1MykuIiksIE5VTEwgfSwKICAgeyAiLVAsIC0tZWRucy1wYWNrZXQtbWF4PTxzaXplPiIsIGdldHRleHRfbm9vcCgiTWF4aW11bSBzdXBwb3J0ZWQgVURQIHBhY2tldCBzaXplIGZvciBFRE5TLjAgKGRlZmF1bHRzIHRvICVzKS4iKSwgIioiIH0sCi0gIHsgIi1xLCAtLWxvZy1xdWVyaWVzIiwgZ2V0dGV4dF9ub29wKCJMb2cgcXVlcmllcy4iKSwgTlVMTCB9LAotICB7ICItUSwgLS1xdWVyeS1wb3J0PW51bWJlciIsIGdldHRleHRfbm9vcCgiRm9yY2UgdGhlIG9yaWdpbmF0aW5nIHBvcnQgZm9yIHVwc3RyZWFtIHF1ZXJpZXMuIiksIE5VTEwgfSwKKyAgeyAiLXEsIC0tbG9nLXF1ZXJpZXMiLCBnZXR0ZXh0X25vb3AoIkxvZyBETlMgcXVlcmllcy4iKSwgTlVMTCB9LAorICB7ICItUSwgLS1xdWVyeS1wb3J0PW51bWJlciIsIGdldHRleHRfbm9vcCgiRm9yY2UgdGhlIG9yaWdpbmF0aW5nIHBvcnQgZm9yIHVwc3RyZWFtIEROUyBxdWVyaWVzLiIpLCBOVUxMIH0sCiAgIHsgIi1SLCAtLW5vLXJlc29sdiIsIGdldHRleHRfbm9vcCgiRG8gTk9UIHJlYWQgcmVzb2x2LmNvbmYuIiksIE5VTEwgfSwKICAgeyAiLXIsIC0tcmVzb2x2LWZpbGU9cGF0aCIsIGdldHRleHRfbm9vcCgiU3BlY2lmeSBwYXRoIHRvIHJlc29sdi5jb25mIChkZWZhdWx0cyB0byAlcykuIiksIFJFU09MVkZJTEUgfSwgCiAgIHsgIi1TLCAtLXNlcnZlcj0vZG9tYWluL2lwYWRkciIsIGdldHRleHRfbm9vcCgiU3BlY2lmeSBhZGRyZXNzKGVzKSBvZiB1cHN0cmVhbSBzZXJ2ZXJzIHdpdGggb3B0aW9uYWwgZG9tYWlucy4iKSwgTlVMTCB9LApAQCAtMjMxLDYgKzI4OSw3IEBACiAgIHsgIi1zLCAtLWRvbWFpbj1kb21haW4iLCBnZXR0ZXh0X25vb3AoIlNwZWNpZnkgdGhlIGRvbWFpbiB0byBiZSBhc3NpZ25lZCBpbiBESENQIGxlYXNlcy4iKSwgTlVMTCB9LAogICB7ICItdCwgLS1teC10YXJnZXQ9aG9zdF9uYW1lIiwgZ2V0dGV4dF9ub29wKCJTcGVjaWZ5IGRlZmF1bHQgdGFyZ2V0IGluIGFuIE1YIHJlY29yZC4iKSwgTlVMTCB9LAogICB7ICItVCwgLS1sb2NhbC10dGw9dGltZSIsIGdldHRleHRfbm9vcCgiU3BlY2lmeSB0aW1lLXRvLWxpdmUgaW4gc2Vjb25kcyBmb3IgcmVwbGllcyBmcm9tIC9ldGMvaG9zdHMuIiksIE5VTEwgfSwKKyAgeyAiICAgIC0tbmVnLXR0bD10aW1lIiwgZ2V0dGV4dF9ub29wKCJTcGVjaWZ5IHRpbWUtdG8tbGl2ZSBpbiBzZWNvbmRzIGZvciBuZWdhdGl2ZSBjYWNoaW5nLiIpLCBOVUxMIH0sCiAgIHsgIi11LCAtLXVzZXI9dXNlcm5hbWUiLCBnZXR0ZXh0X25vb3AoIkNoYW5nZSB0byB0aGlzIHVzZXIgYWZ0ZXIgc3RhcnR1cC4gKGRlZmF1bHRzIHRvICVzKS4iKSwgQ0hVU0VSIH0sIAogICB7ICItVSwgLS1kaGNwLXZlbmRvcmNsYXNzPTxpZD4sPGNsYXNzPiIsIGdldHRleHRfbm9vcCgiTWFwIERIQ1AgdmVuZG9yIGNsYXNzIHRvIHRhZy4iKSwgTlVMTCB9LAogICB7ICItdiwgLS12ZXJzaW9uIiwgZ2V0dGV4dF9ub29wKCJEaXNwbGF5IGRuc21hc3EgdmVyc2lvbiBhbmQgY29weXJpZ2h0IGluZm9ybWF0aW9uLiIpLCBOVUxMIH0sCkBAIC0yNjAsMTQgKzMxOSwxOSBAQAogICB7ICItMCwgLS1kbnMtZm9yd2FyZC1tYXg9PHF1ZXJpZXM+IiwgZ2V0dGV4dF9ub29wKCJNYXhpbXVtIG51bWJlciBvZiBjb25jdXJyZW50IEROUyBxdWVyaWVzLiAoZGVmYXVsdHMgdG8gJXMpIiksICIhIiB9LCAKICAgeyAiICAgIC0tY2xlYXItb24tcmVsb2FkIiwgZ2V0dGV4dF9ub29wKCJDbGVhciBETlMgY2FjaGUgd2hlbiByZWxvYWRpbmcgJXMuIiksIFJFU09MVkZJTEUgfSwKICAgeyAiICAgIC0tZGhjcC1pZ25vcmUtbmFtZXNbPTxpZD5dIiwgZ2V0dGV4dF9ub29wKCJJZ25vcmUgaG9zdG5hbWVzIHByb3ZpZGVkIGJ5IERIQ1AgY2xpZW50cy4iKSwgTlVMTCB9LAorICB7ICIgICAgLS1kaGNwLW5vLW92ZXJyaWRlIiwgZ2V0dGV4dF9ub29wKCJEbyBOT1QgcmV1c2UgZmlsZW5hbWUgYW5kIHNlcnZlciBmaWVsZHMgZm9yIGV4dHJhIERIQ1Agb3B0aW9ucy4iKSwgTlVMTCB9LAogICB7ICIgICAgLS1lbmFibGUtdGZ0cCIsIGdldHRleHRfbm9vcCgiRW5hYmxlIGludGVncmF0ZWQgcmVhZC1vbmx5IFRGVFAgc2VydmVyLiIpLCBOVUxMIH0sCiAgIHsgIiAgICAtLXRmdHAtcm9vdD08ZGlyZWN0b3J5PiIsIGdldHRleHRfbm9vcCgiRXhwb3J0IGZpbGVzIGJ5IFRGVFAgb25seSBmcm9tIHRoZSBzcGVjaWZpZWQgc3VidHJlZS4iKSwgTlVMTCB9LAogICB7ICIgICAgLS10ZnRwLXVuaXF1ZS1yb290IiwgZ2V0dGV4dF9ub29wKCJBZGQgY2xpZW50IElQIGFkZHJlc3MgdG8gdGZ0cC1yb290LiIpLCBOVUxMIH0sCiAgIHsgIiAgICAtLXRmdHAtc2VjdXJlIiwgZ2V0dGV4dF9ub29wKCJBbGxvdyBhY2Nlc3Mgb25seSB0byBmaWxlcyBvd25lZCBieSB0aGUgdXNlciBydW5uaW5nIGRuc21hc3EuIiksIE5VTEwgfSwKICAgeyAiICAgIC0tdGZ0cC1tYXg9PGNvbm5lY3Rpb25zPiIsIGdldHRleHRfbm9vcCgiTWF4aW11bSBudW1iZXIgb2YgY29ubmN1cnJlbnQgVEZUUCB0cmFuc2ZlcnMgKGRlZmF1bHRzIHRvICVzKS4iKSwgIiMiIH0sCiAgIHsgIiAgICAtLXRmdHAtbm8tYmxvY2tzaXplIiwgZ2V0dGV4dF9ub29wKCJEaXNhYmxlIHRoZSBURlRQIGJsb2Nrc2l6ZSBleHRlbnNpb24uIiksIE5VTEwgfSwKKyAgeyAiICAgIC0tdGZ0cC1wb3J0LXJhbmdlPTxzdGFydD4sPGVuZD4iLCBnZXR0ZXh0X25vb3AoIkVwaGVtZXJhbCBwb3J0IHJhbmdlIGZvciB1c2UgYnkgVEZUUCB0cmFuc2ZlcnMuIiksIE5VTEwgfSwKICAgeyAiICAgIC0tbG9nLWRoY3AiLCBnZXR0ZXh0X25vb3AoIkV4dHJhIGxvZ2dpbmcgZm9yIERIQ1AuIiksIE5VTEwgfSwKICAgeyAiICAgIC0tbG9nLWFzeW5jWz08bG9nIGxpbmVzPl0iLCBnZXR0ZXh0X25vb3AoIkVuYWJsZSBhc3luYy4gbG9nZ2luZzsgb3B0aW9uYWxseSBzZXQgcXVldWUgbGVuZ3RoLiIpLCBOVUxMIH0sCisgIHsgIiAgICAtLXN0b3AtZG5zLXJlYmluZCIsIGdldHRleHRfbm9vcCgiU3RvcCBETlMgcmViaW5kaW5nLiBGaWx0ZXIgcHJpdmF0ZSBJUCByYW5nZXMgd2hlbiByZXNvbHZpbmcuIiksIE5VTEwgfSwKKyAgeyAiICAgIC0tYWxsLXNlcnZlcnMiLCBnZXR0ZXh0X25vb3AoIkFsd2F5cyBwZXJmb3JtIEROUyBxdWVyaWVzIHRvIGFsbCBzZXJ2ZXJzLiIpLCBOVUxMIH0sCisgIHsgIiAgICAtLWRoY3AtbWF0Y2g9PG5ldGlkPiw8b3B0LW5vPiIsIGdldHRleHRfbm9vcCgiU2V0IHRhZyBpZiBjbGllbnQgaW5jbHVkZXMgb3B0aW9uIGluIHJlcXVlc3QuIiksIE5VTEwgfSwKICAgeyBOVUxMLCBOVUxMLCBOVUxMIH0KIH07IAogCkBAIC0zNDksNiArNDEzLDEwIEBACiAgIHsgTlVMTCwgMCwgMCB9CiB9OwogCitzdGF0aWMgdm9sYXRpbGUgaW50IG1lbV9yZWNvdmVyID0gMDsKK3N0YXRpYyBqbXBfYnVmIG1lbV9qbXA7CitzdGF0aWMgdm9pZCBvbmVfZmlsZShjaGFyICpmaWxlLCBpbnQgbmVzdCwgaW50IGhhcmRfb3B0KTsKKwogY2hhciAqb3B0aW9uX3N0cmluZyh1bnNpZ25lZCBjaGFyIG9wdCkKIHsKICAgaW50IGk7CkBAIC0zNjQsNyArNDMyLDcgQEAKICAgIGNoYXJhY3RlciBzcGFjZS4gTm90ZSB0aGF0IHRoZSBcMCwgXHQgXGIgXHIgXDAzMyBhbmQgXG4gY2hhcmFjdGVycyBhcmUgY2FyZWZ1bGx5IHBsYWNlZCBpbiB0aGUKICAgIGZvbGxvd2luZyBzZXF1ZW5jZSBzbyB0aGF0IHRoZXkgbWFwIHRvIHRoZW1zZWx2ZXM6IGl0IGlzIHRoZXJlZm9yZSBwb3NzaWJsZSB0byBjYWxsCiAgICB1bmhpZGVfbWV0YXMgcmVwZWF0ZWRseSBvbiBzdHJpbmcgd2l0aG91dCBicmVha2luZyB0aGluZ3MuCi0gICBUaGUgdHJhbnNmb3JtYXRpb24gZ2V0cyB1bmRvbmUgYnkgb3B0X2Nhbm9uaWNhbGlzZSwgYXRvaV9jaGVjayBhbmQgc2FmZV9zdHJpbmdfYWxsb2MsIGFuZCBhIAorICAgVGhlIHRyYW5zZm9ybWF0aW9uIGdldHMgdW5kb25lIGJ5IG9wdF9jYW5vbmljYWxpc2UsIGF0b2lfY2hlY2sgYW5kIG9wdF9zdHJpbmdfYWxsb2MsIGFuZCBhIAogICAgY291cGxlIG9mIG90aGVyIHBsYWNlcy4gCiAgICBOb3RlIHRoYXQgc3BhY2UgaXMgaW5jbHVkZWQgaGVyZSBzbyB0aGF0CiAgICAtLWRoY3Atb3B0aW9uPTMsIHN0cmluZwpAQCAtNDAzLDEzICs0NzEsMjkgQEAKICAgICAgICpjcCA9IHVuaGlkZV9tZXRhKCpjcCk7CiB9CiAKLXN0YXRpYyBjaGFyICpzYWZlX3N0cmluZ19hbGxvYyhjaGFyICpjcCkKK3N0YXRpYyB2b2lkICpvcHRfbWFsbG9jKHNpemVfdCBzaXplKQoreworICB2b2lkICpyZXQ7CisKKyAgaWYgKG1lbV9yZWNvdmVyKQorICAgIHsKKyAgICAgIHJldCA9IHdoaW5lX21hbGxvYyhzaXplKTsKKyAgICAgIGlmICghcmV0KQorCWxvbmdqbXAobWVtX2ptcCwgMSk7CisgICAgfQorICBlbHNlCisgICAgcmV0ID0gc2FmZV9tYWxsb2Moc2l6ZSk7CisgIAorICByZXR1cm4gcmV0OworfQorCitzdGF0aWMgY2hhciAqb3B0X3N0cmluZ19hbGxvYyhjaGFyICpjcCkKIHsKICAgY2hhciAqcmV0ID0gTlVMTDsKICAgCiAgIGlmIChjcCAmJiBzdHJsZW4oY3ApICE9IDApCiAgICAgewotICAgICAgcmV0ID0gc2FmZV9tYWxsb2Moc3RybGVuKGNwKSsxKTsKKyAgICAgIHJldCA9IG9wdF9tYWxsb2Moc3RybGVuKGNwKSsxKTsKICAgICAgIHN0cmNweShyZXQsIGNwKTsgCiAgICAgICAKICAgICAgIC8qIHJlc3RvcmUgaGlkZGVuIG1ldGFjaGFycyAqLwpAQCAtNDMyLDkgKzUxNiw5IEBACiAgIHAgPSBjb21tYTsKICAgKmNvbW1hID0gJyAnOwogICAKLSAgZm9yICg7IGlzc3BhY2UoKmNvbW1hKTsgY29tbWErKyk7CisgIGZvciAoOyBpc3NwYWNlKChpbnQpKmNvbW1hKTsgY29tbWErKyk7CiAgCi0gIGZvciAoOyAocCA+PSBzKSAmJiBpc3NwYWNlKCpwKTsgcC0tKQorICBmb3IgKDsgKHAgPj0gcykgJiYgaXNzcGFjZSgoaW50KSpwKTsgcC0tKQogICAgICpwID0gMDsKICAgICAKICAgcmV0dXJuIGNvbW1hOwpAQCAtNDY5LDEzICs1NTMsMTMgQEAKIHN0YXRpYyB2b2lkIGFkZF90eHQoY2hhciAqbmFtZSwgY2hhciAqdHh0KQogewogICBzaXplX3QgbGVuID0gc3RybGVuKHR4dCk7Ci0gIHN0cnVjdCB0eHRfcmVjb3JkICpyID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCB0eHRfcmVjb3JkKSk7CisgIHN0cnVjdCB0eHRfcmVjb3JkICpyID0gb3B0X21hbGxvYyhzaXplb2Yoc3RydWN0IHR4dF9yZWNvcmQpKTsKICAgCi0gIHItPm5hbWUgPSBzYWZlX3N0cmluZ19hbGxvYyhuYW1lKTsKKyAgci0+bmFtZSA9IG9wdF9zdHJpbmdfYWxsb2MobmFtZSk7CiAgIHItPm5leHQgPSBkYWVtb24tPnR4dDsKICAgZGFlbW9uLT50eHQgPSByOwogICByLT5jbGFzcyA9IENfQ0hBT1M7Ci0gIHItPnR4dCA9IHNhZmVfbWFsbG9jKGxlbisxKTsKKyAgci0+dHh0ID0gb3B0X21hbGxvYyhsZW4rMSk7CiAgIHItPmxlbiA9IGxlbisxOwogICAqKHItPnR4dCkgPSBsZW47CiAgIG1lbWNweSgoci0+dHh0KSsxLCB0eHQsIGxlbik7CkBAIC01MzEsOSArNjE1LDkgQEAKIH0KIAogLyogVGhpcyBpcyB0b28gaW5zYW5lbHkgbGFyZ2UgdG8ga2VlcCBpbi1saW5lIGluIHRoZSBzd2l0Y2ggKi8KLXN0YXRpYyBjaGFyICpwYXJzZV9kaGNwX29wdChjaGFyICphcmcsIGludCBmb3JjZWQpCitzdGF0aWMgY2hhciAqcGFyc2VfZGhjcF9vcHQoY2hhciAqYXJnLCBpbnQgZmxhZ3MpCiB7Ci0gIHN0cnVjdCBkaGNwX29wdCAqbmV3ID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX29wdCkpOworICBzdHJ1Y3QgZGhjcF9vcHQgKm5ldyA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX29wdCkpOwogICBjaGFyIGxlbmNoYXIgPSAwLCAqY3A7CiAgIGludCBpLCBhZGRycywgZGlncywgaXNfYWRkciwgaXNfaGV4LCBpc19kZWMsIGlzX3N0cmluZywgZG90czsKICAgY2hhciAqY29tbWEgPSBOVUxMLCAqcHJvYmxlbSA9IE5VTEw7CkBAIC01NDEsNyArNjI1LDcgQEAKICAgdW5zaWduZWQgY2hhciBvcHRfbGVuID0gMDsKIAogICBuZXctPmxlbiA9IDA7Ci0gIG5ldy0+ZmxhZ3MgPSBmb3JjZWQgPyBESE9QVF9GT1JDRSA6IDA7CisgIG5ldy0+ZmxhZ3MgPSBmbGFnczsKICAgbmV3LT5uZXRpZCA9IE5VTEw7CiAgIG5ldy0+dmFsID0gTlVMTDsKICAgbmV3LT52ZW5kb3JfY2xhc3MgPSBOVUxMOwpAQCAtNTc3LDE3ICs2NjEsMTcgQEAKIAl9CiAgICAgICBlbHNlIGlmIChzdHJzdHIoYXJnLCAidmVuZG9yOiIpID09IGFyZykKIAl7Ci0JICBuZXctPnZlbmRvcl9jbGFzcyA9ICh1bnNpZ25lZCBjaGFyICopc2FmZV9zdHJpbmdfYWxsb2MoYXJnKzcpOworCSAgbmV3LT52ZW5kb3JfY2xhc3MgPSAodW5zaWduZWQgY2hhciAqKW9wdF9zdHJpbmdfYWxsb2MoYXJnKzcpOwogCSAgbmV3LT5mbGFncyB8PSBESE9QVF9FTkNBUFNVTEFURTsKIAl9CiAgICAgICBlbHNlCiAJewotCSAgbmV3LT5uZXRpZCA9IHNhZmVfbWFsbG9jKHNpemVvZiAoc3RydWN0IGRoY3BfbmV0aWQpKTsKKwkgIG5ldy0+bmV0aWQgPSBvcHRfbWFsbG9jKHNpemVvZiAoc3RydWN0IGRoY3BfbmV0aWQpKTsKIAkgIC8qIGFsbG93IG9wdGlvbmFsICJuZXQ6IiBmb3IgY29uc2lzdGVuY3kgKi8KIAkgIGlmIChzdHJzdHIoYXJnLCAibmV0OiIpID09IGFyZykKLQkgICAgbmV3LT5uZXRpZC0+bmV0ID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKzQpOworCSAgICBuZXctPm5ldGlkLT5uZXQgPSBvcHRfc3RyaW5nX2FsbG9jKGFyZys0KTsKIAkgIGVsc2UKLQkgICAgbmV3LT5uZXRpZC0+bmV0ID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsKKwkgICAgbmV3LT5uZXRpZC0+bmV0ID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOwogCSAgbmV3LT5uZXRpZC0+bmV4dCA9IG5wOwogCSAgbnAgPSBuZXctPm5ldGlkOwogCX0KQEAgLTY1OCw3ICs3NDIsNyBAQAogICAgICAgaWYgKGlzX2hleCAmJiBkaWdzID4gMSkKIAl7CiAJICBuZXctPmxlbiA9IGRpZ3M7Ci0JICBuZXctPnZhbCA9IHNhZmVfbWFsbG9jKG5ldy0+bGVuKTsKKwkgIG5ldy0+dmFsID0gb3B0X21hbGxvYyhuZXctPmxlbik7CiAJICBwYXJzZV9oZXgoY29tbWEsIG5ldy0+dmFsLCBkaWdzLCBOVUxMLCBOVUxMKTsKIAl9CiAgICAgICBlbHNlIGlmIChpc19kZWMpCkBAIC02ODMsNyArNzY3LDcgQEAKIAkgIGVsc2UgaWYgKGxlbmNoYXIgPT0gJ2knKQogCSAgICBuZXctPmxlbiA9IDQ7CiAJICAKLQkgIG5ldy0+dmFsID0gc2FmZV9tYWxsb2MobmV3LT5sZW4pOworCSAgbmV3LT52YWwgPSBvcHRfbWFsbG9jKG5ldy0+bGVuKTsKIAkgIGZvciAoaT0wOyBpPG5ldy0+bGVuOyBpKyspCiAJICAgIG5ldy0+dmFsW2ldID0gdmFsPj4oKG5ldy0+bGVuIC0gaSAtIDEpKjgpOwogCX0KQEAgLTY5NCw3ICs3NzgsNyBAQAogCSAgY2hhciAqc2xhc2g7CiAJICAvKiBtYXggbGVuZ3RoIG9mIGFkZHJlc3Mvc3VibmV0IGRlc2NyaXB0b3IgaXMgZml2ZSBieXRlcywKIAkgICAgIGFkZCBvbmUgZm9yIHRoZSBvcHRpb24gMTIwIGVuYyBieXRlIHRvbyAqLwotCSAgbmV3LT52YWwgPSBvcCA9IHNhZmVfbWFsbG9jKCg1ICogYWRkcnMpICsgMSk7CisJICBuZXctPnZhbCA9IG9wID0gb3B0X21hbGxvYygoNSAqIGFkZHJzKSArIDEpOwogCSAgbmV3LT5mbGFncyB8PSBESE9QVF9BRERSOwogCiAJICBpZiAoIShuZXctPmZsYWdzICYgREhPUFRfRU5DQVBTVUxBVEUpICYmIG5ldy0+b3B0ID09IDEyMCkKQEAgLTczOSw3ICs4MjMsNyBAQAogCSAgICB7CiAJICAgICAgLyogZG5zIHNlYXJjaCwgUkZDIDMzOTcsIG9yIFNJUCwgUkZDIDMzNjEgKi8KIAkgICAgICB1bnNpZ25lZCBjaGFyICpxLCAqciwgKnRhaWw7Ci0JICAgICAgdW5zaWduZWQgY2hhciAqcCwgKm0gPSBOVUxMOworCSAgICAgIHVuc2lnbmVkIGNoYXIgKnAsICptID0gTlVMTCwgKm5ld3A7CiAJICAgICAgc2l6ZV90IG5ld2xlbiwgbGVuID0gMDsKIAkgICAgICBpbnQgaGVhZGVyX3NpemUgPSAobmV3LT5vcHQgPT0gMTE5KSA/IDAgOiAxOwogCSAgICAgIApAQCAtNzU0LDggKzgzOCwxMCBAQAogCQkgICAgICBicmVhazsKIAkJICAgIH0KIAkJICAKLQkJICBpZiAoIShtID0gcmVhbGxvYyhtLCBsZW4gKyBzdHJsZW4oYXJnKSArIDIgKyBoZWFkZXJfc2l6ZSkpKQotCQkgICAgZGllKF8oImNvdWxkIG5vdCBnZXQgbWVtb3J5IiksIE5VTEwsIEVDX05PTUVNKTsKKwkJICBuZXdwID0gb3B0X21hbGxvYyhsZW4gKyBzdHJsZW4oYXJnKSArIDIgKyBoZWFkZXJfc2l6ZSk7CisJCSAgaWYgKG0pCisJCSAgICBtZW1jcHkobmV3cCwgbSwgaGVhZGVyX3NpemUgKyBsZW4pOworCQkgIG0gPSBuZXdwOwogCQkgIHAgPSBtICsgaGVhZGVyX3NpemU7CiAJCSAgcSA9IHAgKyBsZW47CiAJCSAgCkBAIC03OTksNyArODg1LDcgQEAKIAkgICAgewogCSAgICAgIG5ldy0+bGVuID0gc3RybGVuKGNvbW1hKTsKIAkgICAgICAvKiBrZWVwIHRlcm1pbmF0aW5nIHplcm8gb24gc3RyaW5nICovCi0JICAgICAgbmV3LT52YWwgPSAodW5zaWduZWQgY2hhciAqKXNhZmVfc3RyaW5nX2FsbG9jKGNvbW1hKTsKKwkgICAgICBuZXctPnZhbCA9ICh1bnNpZ25lZCBjaGFyICopb3B0X3N0cmluZ19hbGxvYyhjb21tYSk7CiAJICAgICAgbmV3LT5mbGFncyB8PSBESE9QVF9TVFJJTkc7CiAJICAgIH0KIAl9CkBAIC04MDgsMjAgKzg5NCwyMyBAQAogICBpZiAobmV3LT5sZW4gPiAyNTUpCiAgICAgcHJvYmxlbSA9IF8oImRoY3Atb3B0aW9uIHRvbyBsb25nIik7CiAgIAotICBuZXctPm5leHQgPSBkYWVtb24tPmRoY3Bfb3B0czsKLSAgZGFlbW9uLT5kaGNwX29wdHMgPSBuZXc7Ci0gCisgIGlmICghcHJvYmxlbSkKKyAgICB7CisgICAgICBuZXctPm5leHQgPSBkYWVtb24tPmRoY3Bfb3B0czsKKyAgICAgIGRhZW1vbi0+ZGhjcF9vcHRzID0gbmV3OworICAgIH0KKwogICByZXR1cm4gcHJvYmxlbTsKIH0KIAogCi1zdGF0aWMgY2hhciAqb25lX29wdChpbnQgb3B0aW9uLCBjaGFyICphcmcsIGNoYXIgKnByb2JsZW0sIGludCBuZXN0KQorc3RhdGljIGNoYXIgKm9uZV9vcHQoaW50IG9wdGlvbiwgY2hhciAqYXJnLCBjaGFyICpnZW5fcHJvYiwgaW50IG5lc3QpCiB7ICAgICAgCiAgIGludCBpOwotICBjaGFyICpjb21tYTsKKyAgY2hhciAqY29tbWEsICpwcm9ibGVtID0gTlVMTDs7CiAKICAgaWYgKG9wdGlvbiA9PSAnPycpCi0gICAgcmV0dXJuIHByb2JsZW07CisgICAgcmV0dXJuIGdlbl9wcm9iOwogICAKICAgZm9yIChpPTA7IG9wdG1hcFtpXS5jOyBpKyspCiAgICAgaWYgKG9wdGlvbiA9PSBvcHRtYXBbaV0uYykKQEAgLTgzNCw3ICs5MjMsNyBAQAogICAgIHsgCiAgICAgY2FzZSAnQyc6IC8qIC0tY29uZi1maWxlICovCiAgICAgICB7Ci0JY2hhciAqZmlsZSA9IHNhZmVfc3RyaW5nX2FsbG9jKGFyZyk7CisJY2hhciAqZmlsZSA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKTsKIAlpZiAoZmlsZSkKIAkgIG9uZV9maWxlKGZpbGUsIG5lc3QsIDApOwogCWJyZWFrOwpAQCAtODQ2LDcgKzkzNSw3IEBACiAJc3RydWN0IGRpcmVudCAqZW50OwogCWNoYXIgKmRpcmVjdG9yeSwgKnBhdGg7CiAJCi0JaWYgKCEoZGlyZWN0b3J5ID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKSkpCisJaWYgKCEoZGlyZWN0b3J5ID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpKSkKIAkgIGJyZWFrOwogCQogCWlmICghKGRpcl9zdHJlYW0gPSBvcGVuZGlyKGRpcmVjdG9yeSkpKQpAQCAtODY0LDcgKzk1Myw3IEBACiAJCShlbnQtPmRfbmFtZVswXSA9PSAnIycgJiYgZW50LT5kX25hbWVbbGVuIC0gMV0gPT0gJyMnKSB8fAogCQllbnQtPmRfbmFtZVswXSA9PSAnLicpCiAJICAgICAgY29udGludWU7Ci0JICAgIHBhdGggPSBzYWZlX21hbGxvYyhzdHJsZW4oZGlyZWN0b3J5KSArIGxlbiArIDIpOworCSAgICBwYXRoID0gb3B0X21hbGxvYyhzdHJsZW4oZGlyZWN0b3J5KSArIGxlbiArIDIpOwogCSAgICBzdHJjcHkocGF0aCwgZGlyZWN0b3J5KTsKIAkgICAgc3RyY2F0KHBhdGgsICIvIik7CiAJICAgIHN0cmNhdChwYXRoLCBlbnQtPmRfbmFtZSk7CkBAIC04ODYsNyArOTc1LDcgQEAKICAgICBjYXNlICc4JzogLyogLS1sb2ctZmFjaWxpdHkgKi8KICAgICAgIC8qIG1heSBiZSBhIGZpbGVuYW1lICovCiAgICAgICBpZiAoc3RyY2hyKGFyZywgJy8nKSkKLQlkYWVtb24tPmxvZ19maWxlID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsKKwlkYWVtb24tPmxvZ19maWxlID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOwogICAgICAgZWxzZQogCXsJICAKIAkgIGZvciAoaSA9IDA7IGZhY2lsaXR5bmFtZXNbaV0uY19uYW1lOyBpKyspCkBAIC04OTYsMjkgKzk4NSwzMSBAQAogCSAgaWYgKGZhY2lsaXR5bmFtZXNbaV0uY19uYW1lKQogCSAgICBkYWVtb24tPmxvZ19mYWMgPSBmYWNpbGl0eW5hbWVzW2ldLmNfdmFsOwogCSAgZWxzZQotCSAgICB7Ci0JICAgICAgb3B0aW9uID0gJz8nOwotCSAgICAgIHByb2JsZW0gPSAiYmFkIGxvZyBmYWNpbGl0eSI7Ci0JICAgIH0KKwkgICAgcHJvYmxlbSA9ICJiYWQgbG9nIGZhY2lsaXR5IjsKIAl9CiAgICAgICBicmVhazsKICAgICAgIAogICAgIGNhc2UgJ3gnOiAvKiAtLXBpZC1maWxlICovCi0gICAgICBkYWVtb24tPnJ1bmZpbGUgPSBzYWZlX3N0cmluZ19hbGxvYyhhcmcpOworICAgICAgZGFlbW9uLT5ydW5maWxlID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOwogICAgICAgYnJlYWs7CiAKICAgICBjYXNlIExPUFRfREhDUF9IT1NUOiAvKiAtLWRoY3AtaG9zdGZpbGUgKi8KICAgICAgIGlmIChkYWVtb24tPmRoY3BfaG9zdHNfZmlsZSkKLQl7Ci0JICBwcm9ibGVtID0gXygib25seSBvbmUgZGhjcC1ob3N0c2ZpbGUgYWxsb3dlZCIpOwotCSAgb3B0aW9uID0gJz8nOwotCX0KLSAgICAgIGRhZW1vbi0+ZGhjcF9ob3N0c19maWxlID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsKKwlwcm9ibGVtID0gXygib25seSBvbmUgZGhjcC1ob3N0c2ZpbGUgYWxsb3dlZCIpOworICAgICAgZWxzZQorCWRhZW1vbi0+ZGhjcF9ob3N0c19maWxlID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOwogICAgICAgYnJlYWs7CisgICAgIAorICAgIGNhc2UgTE9QVF9ESENQX09QVFM6IC8qIC0tZGhjcC1vcHRzZmlsZSAqLworICAgICAgaWYgKGRhZW1vbi0+ZGhjcF9vcHRzX2ZpbGUpCisJcHJvYmxlbSA9IF8oIm9ubHkgb25lIGRoY3Atb3B0c2ZpbGUgYWxsb3dlZCIpOworICAgICAgZWxzZQorCWRhZW1vbi0+ZGhjcF9vcHRzX2ZpbGUgPSBvcHRfc3RyaW5nX2FsbG9jKGFyZyk7CisgICAgICBicmVhazsgCiAgICAgICAKICAgICBjYXNlICdyJzogLyogLS1yZXNvbHYtZmlsZSAqLwogICAgICAgewotCWNoYXIgKm5hbWUgPSBzYWZlX3N0cmluZ19hbGxvYyhhcmcpOworCWNoYXIgKm5hbWUgPSBvcHRfc3RyaW5nX2FsbG9jKGFyZyk7CiAJc3RydWN0IHJlc29sdmMgKm5ldywgKmxpc3QgPSBkYWVtb24tPnJlc29sdl9maWxlczsKIAkKIAlpZiAobGlzdCAmJiBsaXN0LT5pc19kZWZhdWx0KQpAQCAtOTM0LDcgKzEwMjUsNyBAQAogCSAgfQogCWVsc2UgaWYgKG5hbWUpCiAJICB7Ci0JICAgIG5ldyA9IHNhZmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgcmVzb2x2YykpOworCSAgICBuZXcgPSBvcHRfbWFsbG9jKHNpemVvZihzdHJ1Y3QgcmVzb2x2YykpOwogCSAgICBuZXctPm5leHQgPSBsaXN0OwogCSAgICBuZXctPm5hbWUgPSBuYW1lOwogCSAgICBuZXctPmlzX2RlZmF1bHQgPSAwOwpAQCAtOTU0LDYyICsxMDQ1LDQ3IEBACiAJaWYgKChjb21tYSA9IHNwbGl0KGFyZykpKQogCSAgewogCSAgICBjaGFyICpwcmVmc3RyOwotCSAgICBpZiAoKHByZWZzdHI9c3BsaXQoY29tbWEpKSkKLQkgICAgICB7Ci0JCWlmICghYXRvaV9jaGVjayhwcmVmc3RyLCAmcHJlZikpCi0JCSAgewotCQkgICAgb3B0aW9uID0gJz8nOwotCQkgICAgcHJvYmxlbSA9IF8oImJhZCBNWCBwcmVmZXJlbmNlIik7Ci0JCSAgICBicmVhazsKLQkJICB9Ci0JICAgICAgfQorCSAgICBpZiAoKHByZWZzdHI9c3BsaXQoY29tbWEpKSAmJiAhYXRvaV9jaGVjayhwcmVmc3RyLCAmcHJlZikpCisJICAgICAgcHJvYmxlbSA9IF8oImJhZCBNWCBwcmVmZXJlbmNlIik7CiAJICB9CiAJCiAJaWYgKCFjYW5vbmljYWxpc2Vfb3B0KGFyZykgfHwgKGNvbW1hICYmICFjYW5vbmljYWxpc2Vfb3B0KGNvbW1hKSkpCi0JICB7Ci0JICAgIG9wdGlvbiA9ICc/JzsKLQkgICAgcHJvYmxlbSA9IF8oImJhZCBNWCBuYW1lIik7Ci0JICAgIGJyZWFrOwotCSAgfQotCQotCW5ldyA9IHNhZmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgbXhfc3J2X3JlY29yZCkpOworCSAgcHJvYmxlbSA9IF8oImJhZCBNWCBuYW1lIik7CisJICAJCisJbmV3ID0gb3B0X21hbGxvYyhzaXplb2Yoc3RydWN0IG14X3Nydl9yZWNvcmQpKTsKIAluZXctPm5leHQgPSBkYWVtb24tPm14bmFtZXM7CiAJZGFlbW9uLT5teG5hbWVzID0gbmV3OwogCW5ldy0+aXNzcnYgPSAwOwotCW5ldy0+bmFtZSA9IHNhZmVfc3RyaW5nX2FsbG9jKGFyZyk7Ci0JbmV3LT50YXJnZXQgPSBzYWZlX3N0cmluZ19hbGxvYyhjb21tYSk7IC8qIG1heSBiZSBOVUxMICovCisJbmV3LT5uYW1lID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOworCW5ldy0+dGFyZ2V0ID0gb3B0X3N0cmluZ19hbGxvYyhjb21tYSk7IC8qIG1heSBiZSBOVUxMICovCiAJbmV3LT53ZWlnaHQgPSBwcmVmOwogCWJyZWFrOwogICAgICAgfQogICAgICAgCiAgICAgY2FzZSAndCc6IC8qICAtLW14LXRhcmdldCAqLwogICAgICAgaWYgKCFjYW5vbmljYWxpc2Vfb3B0KGFyZykpCi0JewotCSAgb3B0aW9uID0gJz8nOwotCSAgcHJvYmxlbSA9IF8oImJhZCBNWCB0YXJnZXQiKTsKLQl9CisJcHJvYmxlbSA9IF8oImJhZCBNWCB0YXJnZXQiKTsKICAgICAgIGVsc2UKLQlkYWVtb24tPm14dGFyZ2V0ID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsKKwlkYWVtb24tPm14dGFyZ2V0ID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOwogICAgICAgYnJlYWs7CiAgICAgICAKICAgICBjYXNlICdsJzogIC8qIC0tZGhjcC1sZWFzZWZpbGUgKi8KLSAgICAgIGRhZW1vbi0+bGVhc2VfZmlsZSA9IHNhZmVfc3RyaW5nX2FsbG9jKGFyZyk7CisgICAgICBkYWVtb24tPmxlYXNlX2ZpbGUgPSBvcHRfc3RyaW5nX2FsbG9jKGFyZyk7CiAgICAgICBicmVhazsKICAgICAgIAogICAgIGNhc2UgJzYnOiAvKiAtLWRoY3Atc2NyaXB0ICovCiAjaWZkZWYgTk9fRk9SSwogICAgICAgcHJvYmxlbSA9IF8oImNhbm5vdCBydW4gc2NyaXB0cyB1bmRlciB1Q2xpbnV4Iik7Ci0gICAgICBvcHRpb24gPSAnPyc7CiAjZWxzZQotICAgICAgZGFlbW9uLT5sZWFzZV9jaGFuZ2VfY29tbWFuZCA9IHNhZmVfc3RyaW5nX2FsbG9jKGFyZyk7CisgICAgICBkYWVtb24tPmxlYXNlX2NoYW5nZV9jb21tYW5kID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOwogI2VuZGlmCiAgICAgICBicmVhazsKICAgICAgIAogICAgIGNhc2UgJ0gnOiAvKiAtLWFkZG4taG9zdHMgKi8KICAgICAgIHsKLQlzdHJ1Y3QgaG9zdHNmaWxlICpuZXcgPSBzYWZlX21hbGxvYyhzaXplb2Yoc3RydWN0IGhvc3RzZmlsZSkpOworCXN0cnVjdCBob3N0c2ZpbGUgKm5ldyA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBob3N0c2ZpbGUpKTsKIAlzdGF0aWMgaW50IGhvc3RzX2luZGV4ID0gMTsKLQluZXctPmZuYW1lID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsKKwluZXctPmZuYW1lID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOwogCW5ldy0+aW5kZXggPSBob3N0c19pbmRleCsrOwogCW5ldy0+bmV4dCA9IGRhZW1vbi0+YWRkbl9ob3N0czsKIAlkYWVtb24tPmFkZG5faG9zdHMgPSBuZXc7CkBAIC0xMDIyLDI2ICsxMDk4LDI2IEBACiAgICAgICBlbHNlIGlmICghY2Fub25pY2FsaXNlX29wdChhcmcpKQogCW9wdGlvbiA9ICc/JzsKICAgICAgIGVsc2UKLQlkYWVtb24tPmRvbWFpbl9zdWZmaXggPSBzYWZlX3N0cmluZ19hbGxvYyhhcmcpOworCWRhZW1vbi0+ZG9tYWluX3N1ZmZpeCA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKTsKICAgICAgIGJyZWFrOwogICAgICAgCiAgICAgY2FzZSAndSc6ICAvKiAtLXVzZXIgKi8KLSAgICAgIGRhZW1vbi0+dXNlcm5hbWUgPSBzYWZlX3N0cmluZ19hbGxvYyhhcmcpOworICAgICAgZGFlbW9uLT51c2VybmFtZSA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKTsKICAgICAgIGJyZWFrOwogICAgICAgCiAgICAgY2FzZSAnZyc6ICAvKiAtLWdyb3VwICovCi0gICAgICBkYWVtb24tPmdyb3VwbmFtZSA9IHNhZmVfc3RyaW5nX2FsbG9jKGFyZyk7CisgICAgICBkYWVtb24tPmdyb3VwbmFtZSA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKTsKICAgICAgIGJyZWFrOwogICAgICAgCiAgICAgY2FzZSAnaSc6ICAvKiAtLWludGVyZmFjZSAqLwogICAgICAgZG8gewotCXN0cnVjdCBpbmFtZSAqbmV3ID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBpbmFtZSkpOworCXN0cnVjdCBpbmFtZSAqbmV3ID0gb3B0X21hbGxvYyhzaXplb2Yoc3RydWN0IGluYW1lKSk7CiAJY29tbWEgPSBzcGxpdChhcmcpOwogCW5ldy0+bmV4dCA9IGRhZW1vbi0+aWZfbmFtZXM7CiAJZGFlbW9uLT5pZl9uYW1lcyA9IG5ldzsKIAkvKiBuZXctPm5hbWUgbWF5IGJlIE5VTEwgaWYgc29tZW9uZSBkb2VzCiAJICAgImludGVyZmFjZT0iIHRvIGRpc2FibGUgYWxsIGludGVyZmFjZXMgZXhjZXB0IGxvb3AuICovCi0JbmV3LT5uYW1lID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsKKwluZXctPm5hbWUgPSBvcHRfc3RyaW5nX2FsbG9jKGFyZyk7CiAJbmV3LT5pc2xvb3AgPSBuZXctPnVzZWQgPSAwOwogCWFyZyA9IGNvbW1hOwogICAgICAgfSB3aGlsZSAoYXJnKTsKQEAgLTEwNTAsOSArMTEyNiw5IEBACiAgICAgY2FzZSAnSSc6ICAvKiAtLWV4Y2VwdC1pbnRlcmZhY2UgKi8KICAgICBjYXNlICcyJzogIC8qIC0tbm8tZGhjcC1pbnRlcmZhY2UgKi8KICAgICAgIGRvIHsKLQlzdHJ1Y3QgaW5hbWUgKm5ldyA9IHNhZmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgaW5hbWUpKTsKKwlzdHJ1Y3QgaW5hbWUgKm5ldyA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBpbmFtZSkpOwogCWNvbW1hID0gc3BsaXQoYXJnKTsKLQluZXctPm5hbWUgPSBzYWZlX3N0cmluZ19hbGxvYyhhcmcpOworCW5ldy0+bmFtZSA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKTsKIAlpZiAob3B0aW9uID09ICdJJykKIAkgIHsKIAkgICAgbmV3LT5uZXh0ID0gZGFlbW9uLT5pZl9leGNlcHQ7CkBAIC0xMDczLDcgKzExNDksNyBAQAogCXVuaGlkZV9tZXRhcyhhcmcpOwogCWlmIChhcmcgJiYgKGFkZHIuc19hZGRyID0gaW5ldF9hZGRyKGFyZykpICE9IChpbl9hZGRyX3QpLTEpCiAJICB7Ci0JICAgIHN0cnVjdCBib2d1c19hZGRyICpiYWRkciA9IHNhZmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgYm9ndXNfYWRkcikpOworCSAgICBzdHJ1Y3QgYm9ndXNfYWRkciAqYmFkZHIgPSBvcHRfbWFsbG9jKHNpemVvZihzdHJ1Y3QgYm9ndXNfYWRkcikpOwogCSAgICBiYWRkci0+bmV4dCA9IGRhZW1vbi0+Ym9ndXNfYWRkcjsKIAkgICAgZGFlbW9uLT5ib2d1c19hZGRyID0gYmFkZHI7CiAJICAgIGJhZGRyLT5hZGRyID0gYWRkcjsKQEAgLTEwODUsNyArMTE2MSw3IEBACiAgICAgICAKICAgICBjYXNlICdhJzogIC8qIC0tbGlzdGVuLWFkZHJlc3MgKi8KICAgICAgIGRvIHsKLQlzdHJ1Y3QgaW5hbWUgKm5ldyA9IHNhZmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgaW5hbWUpKTsKKwlzdHJ1Y3QgaW5hbWUgKm5ldyA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBpbmFtZSkpOwogCWNvbW1hID0gc3BsaXQoYXJnKTsKIAl1bmhpZGVfbWV0YXMoYXJnKTsKIAluZXctPm5leHQgPSBkYWVtb24tPmlmX2FkZHJzOwpAQCAtMTEzOSwxNSArMTIxNSwxMyBAQAogCQllbHNlIGlmICghY2Fub25pY2FsaXNlX29wdChhcmcpICYmIHN0cmxlbihhcmcpICE9IDApCiAJCSAgb3B0aW9uID0gJz8nOwogCQllbHNlCi0JCSAgZG9tYWluID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsgLyogTlVMTCBpZiBzdHJsZW4gaXMgemVybyAqLwotCQlzZXJ2ID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBzZXJ2ZXIpKTsKKwkJICBkb21haW4gPSBvcHRfc3RyaW5nX2FsbG9jKGFyZyk7IC8qIE5VTEwgaWYgc3RybGVuIGlzIHplcm8gKi8KKwkJc2VydiA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBzZXJ2ZXIpKTsKKwkJbWVtc2V0KHNlcnYsIDAsIHNpemVvZihzdHJ1Y3Qgc2VydmVyKSk7CiAJCXNlcnYtPm5leHQgPSBuZXdsaXN0OwogCQluZXdsaXN0ID0gc2VydjsKLQkJc2Vydi0+c2ZkID0gTlVMTDsKIAkJc2Vydi0+ZG9tYWluID0gZG9tYWluOwogCQlzZXJ2LT5mbGFncyA9IGRvbWFpbiA/IFNFUlZfSEFTX0RPTUFJTiA6IFNFUlZfRk9SX05PRE9UUzsKLQkJbWVtc2V0KCZzZXJ2LT5hZGRyLCAwLCBzaXplb2Yoc2Vydi0+YWRkcikpOwotCQltZW1zZXQoJnNlcnYtPnNvdXJjZV9hZGRyLCAwLCBzaXplb2Yoc2Vydi0+c291cmNlX2FkZHIpKTsKIAkJYXJnID0gZW5kKzE7CiAJICAgICAgfQogCSAgICBpZiAoIW5ld2xpc3QpCkBAIC0xMTU5LDExICsxMjMzLDggQEAKIAkgIH0KIAllbHNlCiAJICB7Ci0JICAgIG5ld2xpc3QgPSBzYWZlX21hbGxvYyhzaXplb2Yoc3RydWN0IHNlcnZlcikpOwotCSAgICBuZXdsaXN0LT5uZXh0ID0gTlVMTDsKLQkgICAgbmV3bGlzdC0+ZmxhZ3MgPSAwOwotCSAgICBuZXdsaXN0LT5zZmQgPSBOVUxMOwotCSAgICBuZXdsaXN0LT5kb21haW4gPSBOVUxMOworCSAgICBuZXdsaXN0ID0gb3B0X21hbGxvYyhzaXplb2Yoc3RydWN0IHNlcnZlcikpOworCSAgICBtZW1zZXQobmV3bGlzdCwgMCwgc2l6ZW9mKHN0cnVjdCBzZXJ2ZXIpKTsKIAkgIH0KIAkKIAlpZiAob3B0aW9uID09ICdBJykKQEAgLTExOTEsMTAgKzEyNjIsNyBAQAogCQkgIHsgCiAJCSAgICAqcG9ydG5vID0gMDsKIAkJICAgIGlmICghYXRvaV9jaGVjayhwb3J0bm8rMSwgJnNvdXJjZV9wb3J0KSkKLQkJICAgICAgewotCQkJb3B0aW9uID0gJz8nOwotCQkJcHJvYmxlbSA9IF8oImJhZCBwb3J0Iik7Ci0JCSAgICAgIH0KKwkJICAgICAgcHJvYmxlbSA9IF8oImJhZCBwb3J0Iik7CiAJCSAgfQogCSAgICAgIH0KIAkgICAgCkBAIC0xMjAyLDEwICsxMjcwLDcgQEAKIAkgICAgICB7CiAJCSpwb3J0bm8gPSAwOwogCQlpZiAoIWF0b2lfY2hlY2socG9ydG5vKzEsICZzZXJ2X3BvcnQpKQotCQkgIHsKLQkJICAgIG9wdGlvbiA9ICc/JzsKLQkJICAgIHByb2JsZW0gPSBfKCJiYWQgcG9ydCIpOwotCQkgIH0KKwkJICBwcm9ibGVtID0gXygiYmFkIHBvcnQiKTsKIAkgICAgICB9CiAJICAgIAogCSAgICBpZiAoKG5ld2xpc3QtPmFkZHIuaW4uc2luX2FkZHIuc19hZGRyID0gaW5ldF9hZGRyKGFyZykpICE9IChpbl9hZGRyX3QpIC0xKQpAQCAtMTIxOCwxMCArMTI4MywxNiBAQAogI2VuZGlmCiAJCWlmIChzb3VyY2UpCiAJCSAgewotCQkgICAgaWYgKChuZXdsaXN0LT5zb3VyY2VfYWRkci5pbi5zaW5fYWRkci5zX2FkZHIgPSBpbmV0X2FkZHIoc291cmNlKzEpKSAhPSAoaW5fYWRkcl90KSAtMSkKLQkJICAgICAgbmV3bGlzdC0+ZmxhZ3MgfD0gU0VSVl9IQVNfU09VUkNFOwotCQkgICAgZWxzZQotCQkgICAgICBvcHRpb24gPSAnPyc7IC8qIGVycm9yICovCisJCSAgICBuZXdsaXN0LT5mbGFncyB8PSBTRVJWX0hBU19TT1VSQ0U7CisJCSAgICBpZiAoKG5ld2xpc3QtPnNvdXJjZV9hZGRyLmluLnNpbl9hZGRyLnNfYWRkciA9IGluZXRfYWRkcihzb3VyY2UrMSkpID09IChpbl9hZGRyX3QpIC0xKQorCQkgICAgICB7CisjaWYgZGVmaW5lZChTT19CSU5EVE9ERVZJQ0UpCisJCQluZXdsaXN0LT5zb3VyY2VfYWRkci5pbi5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOworCQkJc3RybmNweShuZXdsaXN0LT5pbnRlcmZhY2UsIHNvdXJjZSsxLCBJRl9OQU1FU0laRSk7CisjZWxzZQorCQkJcHJvYmxlbSA9IF8oImludGVyZmFjZSBiaW5kaW5nIG5vdCBzdXBwb3J0ZWQiKTsKKyNlbmRpZgorCQkgICAgICB9CiAJCSAgfQogCQllbHNlCiAJCSAgbmV3bGlzdC0+c291cmNlX2FkZHIuaW4uc2luX2FkZHIuc19hZGRyID0gSU5BRERSX0FOWTsKQEAgLTEyMzcsMTAgKzEzMDgsMTYgQEAKICNlbmRpZgogCQlpZiAoc291cmNlKQogCQkgIHsKLQkJICAgIGlmIChpbmV0X3B0b24oQUZfSU5FVDYsIHNvdXJjZSsxLCAmbmV3bGlzdC0+c291cmNlX2FkZHIuaW42LnNpbjZfYWRkcikgPiAwKQotCQkgICAgICBuZXdsaXN0LT5mbGFncyB8PSBTRVJWX0hBU19TT1VSQ0U7Ci0JCSAgICBlbHNlCi0JCSAgICAgIG9wdGlvbiA9ICc/JzsgLyogZXJyb3IgKi8KKwkJICAgICBuZXdsaXN0LT5mbGFncyB8PSBTRVJWX0hBU19TT1VSQ0U7CisJCSAgICAgaWYgKGluZXRfcHRvbihBRl9JTkVUNiwgc291cmNlKzEsICZuZXdsaXN0LT5zb3VyY2VfYWRkci5pbjYuc2luNl9hZGRyKSA9PSAwKQorCQkgICAgICB7CisjaWYgZGVmaW5lZChTT19CSU5EVE9ERVZJQ0UpIHx8IGRlZmluZWQoSEFWRV9TT0xBUklTX05FVFdPUkspCisJCQluZXdsaXN0LT5zb3VyY2VfYWRkci5pbjYuc2luNl9hZGRyID0gaW42YWRkcl9hbnk7IAorCQkJc3RybmNweShuZXdsaXN0LT5pbnRlcmZhY2UsIHNvdXJjZSsxLCBJRl9OQU1FU0laRSk7CisjZWxzZQorCQkJcHJvYmxlbSA9IF8oImludGVyZmFjZSBiaW5kaW5nIG5vdCBzdXBwb3J0ZWQiKTsKKyNlbmRpZgorCQkgICAgICB9CiAJCSAgfQogCQllbHNlCiAJCSAgbmV3bGlzdC0+c291cmNlX2FkZHIuaW42LnNpbjZfYWRkciA9IGluNmFkZHJfYW55OyAKQEAgLTEzMTYsMTEgKzEzOTMsMTQgQEAKIAlvcHRpb24gPSAnPyc7CiAgICAgICBicmVhazsKICAgICAgIAotICAgIGNhc2UgJ1QnOiAgLyogLS1sb2NhbC10dGwgKi8KKyAgICBjYXNlICdUJzogICAgICAgICAvKiAtLWxvY2FsLXR0bCAqLworICAgIGNhc2UgTE9QVF9ORUdUVEw6IC8qIC0tbmVnLXR0bCAqLwogICAgICAgewogCWludCB0dGw7CiAJaWYgKCFhdG9pX2NoZWNrKGFyZywgJnR0bCkpCiAJICBvcHRpb24gPSAnPyc7CisJZWxzZSBpZiAob3B0aW9uID09IExPUFRfTkVHVFRMKQorCSAgZGFlbW9uLT5uZWdfdHRsID0gKHVuc2lnbmVkIGxvbmcpdHRsOwogCWVsc2UKIAkgIGRhZW1vbi0+bG9jYWxfdHRsID0gKHVuc2lnbmVkIGxvbmcpdHRsOwogCWJyZWFrOwpAQCAtMTMzNiwxOCArMTQxNiwzMiBAQAogCW9wdGlvbiA9ICc/JzsKICAgICAgIGJyZWFrOyAgCiAKLSAgICBjYXNlICBMT1BUX1BSRUZJWDogLyogLS10ZnRwLXByZWZpeCAqLwotICAgICAgZGFlbW9uLT50ZnRwX3ByZWZpeCA9IHNhZmVfc3RyaW5nX2FsbG9jKGFyZyk7CisgICAgY2FzZSBMT1BUX1BSRUZJWDogLyogLS10ZnRwLXByZWZpeCAqLworICAgICAgZGFlbW9uLT50ZnRwX3ByZWZpeCA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKTsKICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBMT1BUX1RGVFBQT1JUUzogLyogLS10ZnRwLXBvcnQtcmFuZ2UgKi8KKyAgICAgIGlmICghKGNvbW1hID0gc3BsaXQoYXJnKSkgfHwgCisJICAhYXRvaV9jaGVjayhhcmcsICZkYWVtb24tPnN0YXJ0X3RmdHBfcG9ydCkgfHwKKwkgICFhdG9pX2NoZWNrKGNvbW1hLCAmZGFlbW9uLT5lbmRfdGZ0cF9wb3J0KSkKKwlwcm9ibGVtID0gXygiYmFkIHBvcnQgcmFuZ2UiKTsKKyAgICAgIAorICAgICAgaWYgKGRhZW1vbi0+c3RhcnRfdGZ0cF9wb3J0ID4gZGFlbW9uLT5lbmRfdGZ0cF9wb3J0KQorCXsKKwkgIGludCB0bXAgPSBkYWVtb24tPnN0YXJ0X3RmdHBfcG9ydDsKKwkgIGRhZW1vbi0+c3RhcnRfdGZ0cF9wb3J0ID0gZGFlbW9uLT5lbmRfdGZ0cF9wb3J0OworCSAgZGFlbW9uLT5lbmRfdGZ0cF9wb3J0ID0gdG1wOworCX0gCisgICAgICAKKyAgICAgIGJyZWFrOworCSAgICAgIAogI2lmIGRlZmluZWQoX19GcmVlQlNEX18pIHx8IGRlZmluZWQoX19EcmFnb25GbHlfXykKICAgICBjYXNlIExPUFRfQlJJREdFOiAgIC8qIC0tYnJpZGdlLWludGVyZmFjZSAqLwogICAgICAgewotCXN0cnVjdCBkaGNwX2JyaWRnZSAqbmV3ID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX2JyaWRnZSkpOworCXN0cnVjdCBkaGNwX2JyaWRnZSAqbmV3ID0gb3B0X21hbGxvYyhzaXplb2Yoc3RydWN0IGRoY3BfYnJpZGdlKSk7CiAJaWYgKCEoY29tbWEgPSBzcGxpdChhcmcpKSkKIAkgIHsKIAkgICAgcHJvYmxlbSA9IF8oImJhZCBicmlkZ2UtaW50ZXJmYWNlIik7Ci0JICAgIG9wdGlvbiA9ICc/JzsKIAkgICAgYnJlYWs7CiAJICB9CiAJCkBAIC0xMzYxLDcgKzE0NTUsNyBAQAogCSAgY29tbWEgPSBzcGxpdChhcmcpOwogCSAgaWYgKHN0cmxlbihhcmcpICE9IDApCiAJICAgIHsKLQkgICAgICBzdHJ1Y3QgZGhjcF9icmlkZ2UgKmIgPSBzYWZlX21hbGxvYyhzaXplb2Yoc3RydWN0IGRoY3BfYnJpZGdlKSk7IAorCSAgICAgIHN0cnVjdCBkaGNwX2JyaWRnZSAqYiA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX2JyaWRnZSkpOyAKIAkgICAgICBiLT5uZXh0ID0gbmV3LT5hbGlhczsKIAkgICAgICBuZXctPmFsaWFzID0gYjsKIAkgICAgICBzdHJuY3B5KGItPmlmYWNlLCBhcmcsIElGX05BTUVTSVpFKTsKQEAgLTEzNzYsNyArMTQ3MCw3IEBACiAgICAgICB7CiAJaW50IGssIGxlYXNlcG9zID0gMjsKIAljaGFyICpjcCwgKmFbNV0gPSB7IE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwgfTsKLQlzdHJ1Y3QgZGhjcF9jb250ZXh0ICpuZXcgPSBzYWZlX21hbGxvYyhzaXplb2Yoc3RydWN0IGRoY3BfY29udGV4dCkpOworCXN0cnVjdCBkaGNwX2NvbnRleHQgKm5ldyA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX2NvbnRleHQpKTsKIAkKIAluZXctPm5leHQgPSBkYWVtb24tPmRoY3A7CiAJbmV3LT5sZWFzZV90aW1lID0gREVGTEVBU0U7CkBAIC0xMzg4LDcgKzE0ODIsNyBAQAogCW5ldy0+ZmlsdGVyID0gTlVMTDsKIAluZXctPmZsYWdzID0gMDsKIAkKLQlwcm9ibGVtID0gXygiYmFkIGRoY3AtcmFuZ2UiKTsKKwlnZW5fcHJvYiA9IF8oImJhZCBkaGNwLXJhbmdlIik7CiAJCiAJaWYgKCFhcmcpCiAJICB7CkBAIC0xNDA2LDIwICsxNTAwLDE3IEBACiAJICAgICAgewogCQlpZiAoc3Ryc3RyKGFyZywgIm5ldDoiKSA9PSBhcmcpCiAJCSAgewotCQkgICAgc3RydWN0IGRoY3BfbmV0aWQgKnR0ID0gc2FmZV9tYWxsb2Moc2l6ZW9mIChzdHJ1Y3QgZGhjcF9uZXRpZCkpOwotCQkgICAgdHQtPm5ldCA9IHNhZmVfc3RyaW5nX2FsbG9jKGFyZys0KTsKKwkJICAgIHN0cnVjdCBkaGNwX25ldGlkICp0dCA9IG9wdF9tYWxsb2Moc2l6ZW9mIChzdHJ1Y3QgZGhjcF9uZXRpZCkpOworCQkgICAgdHQtPm5ldCA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKzQpOwogCQkgICAgdHQtPm5leHQgPSBuZXctPmZpbHRlcjsKIAkJICAgIG5ldy0+ZmlsdGVyID0gdHQ7CiAJCSAgfQogCQllbHNlCiAJCSAgewogCQkgICAgaWYgKG5ldy0+bmV0aWQubmV0KQotCQkgICAgICB7Ci0JCQlvcHRpb24gPSAnPyc7Ci0JCQlwcm9ibGVtID0gXygib25seSBvbmUgbmV0aWQgdGFnIGFsbG93ZWQiKTsKLQkJICAgICAgfQorCQkgICAgICBwcm9ibGVtID0gXygib25seSBvbmUgbmV0aWQgdGFnIGFsbG93ZWQiKTsKIAkJICAgIGVsc2UKLQkJICAgICAgbmV3LT5uZXRpZC5uZXQgPSBzYWZlX3N0cmluZ19hbGxvYyhhcmcpOworCQkgICAgICBuZXctPm5ldGlkLm5ldCA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKTsKIAkJICB9CiAJCWFyZyA9IGNvbW1hOwogCSAgICAgIH0KQEAgLTE0NTcsMTAgKzE1NDgsNyBAQAogCSAgICBuZXctPmZsYWdzIHw9IENPTlRFWFRfTkVUTUFTSzsKIAkgICAgbGVhc2Vwb3MgPSAzOwogCSAgICBpZiAoIWlzX3NhbWVfbmV0KG5ldy0+c3RhcnQsIG5ldy0+ZW5kLCBuZXctPm5ldG1hc2spKQotCSAgICAgIHsKLQkJcHJvYmxlbSA9IF8oImluY29uc2lzdGVudCBESENQIHJhbmdlIik7Ci0JCW9wdGlvbiA9ICc/JzsKLQkgICAgICB9CisJICAgICAgcHJvYmxlbSA9IF8oImluY29uc2lzdGVudCBESENQIHJhbmdlIik7CiAJICB9CiAJZGFlbW9uLT5kaGNwID0gbmV3OwogCQpAQCAtMTUxMCw4ICsxNTk4LDYgQEAKIAlicmVhazsKICAgICAgIH0KIAotICAgICAgLyogTm90ZSwgbXVzdCBub3QgZGllKCkgdmlhIHNhZmVfKiBpZiBvcHRpb24gaXMgTE9QVF9CQU5LLCBzaW5jZSAKLQkgd2hlbiBjYWxsZWQgd2l0aCB0aGlzIHdlIGFyZSByZS1sb2FkaW5nIHRoZSBmaWxlLiAqLwogICAgIGNhc2UgTE9QVF9CQU5LOgogICAgIGNhc2UgJ0cnOiAgLyogLS1kaGNwLWhvc3QgKi8KICAgICAgIHsKQEAgLTE1MjAsMTEgKzE2MDYsOCBAQAogCXN0cnVjdCBkaGNwX2NvbmZpZyAqbmV3OwogCXN0cnVjdCBpbl9hZGRyIGluOwogCQotCWlmIChvcHRpb24gIT0gTE9QVF9CQU5LKQotCSAgbmV3ID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX2NvbmZpZykpOwotCWVsc2UgaWYgKCEobmV3ID0gd2hpbmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgZGhjcF9jb25maWcpKSkpCi0JICBicmVhazsKLQorCW5ldyA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX2NvbmZpZykpOworCQogCW5ldy0+bmV4dCA9IGRhZW1vbi0+ZGhjcF9jb25mOwogCW5ldy0+ZmxhZ3MgPSAob3B0aW9uID09IExPUFRfQkFOSykgPyBDT05GSUdfQkFOSyA6IDA7CQkgIAogCQpAQCAtMTU1Niw3ICsxNjM5LDcgQEAKIAkJCSAgbGVuID0gKGludCkgc3RybGVuKGFyZyk7CiAJCQl9CiAKLQkJICAgICAgaWYgKChuZXctPmNsaWQgPSAob3B0aW9uID09IExPUFRfQkFOSykgPyB3aGluZV9tYWxsb2MobGVuKTogc2FmZV9tYWxsb2MobGVuKSkpCisJCSAgICAgIGlmICgobmV3LT5jbGlkID0gb3B0X21hbGxvYyhsZW4pKSkKIAkJCXsKIAkJCSAgbmV3LT5mbGFncyB8PSBDT05GSUdfQ0xJRDsKIAkJCSAgbmV3LT5jbGlkX2xlbiA9IGxlbjsKQEAgLTE1NjcsNyArMTY1MCw3IEBACiAJICAgICAgZWxzZSBpZiAoc3Ryc3RyKGFyZywgIm5ldDoiKSA9PSBhcmcpCiAJCXsKIAkJICBpbnQgbGVuID0gc3RybGVuKGFyZyArIDQpICsgMTsKLQkJICBpZiAoKG5ldy0+bmV0aWQubmV0ID0gKG9wdGlvbiA9PSBMT1BUX0JBTkspID8gd2hpbmVfbWFsbG9jKGxlbik6IHNhZmVfbWFsbG9jKGxlbikpKQorCQkgIGlmICgobmV3LT5uZXRpZC5uZXQgPSBvcHRfbWFsbG9jKGxlbikpKQogCQkgICAgewogCQkgICAgICBuZXctPmZsYWdzIHw9IENPTkZJR19ORVRJRDsKIAkJICAgICAgc3RyY3B5KG5ldy0+bmV0aWQubmV0LCBhcmcrNCk7CkBAIC0xNjE1LDcgKzE2OTgsNyBAQAogCQl9CiAJICAgICAgCiAJICAgICAgZm9yIChjcCA9IGFbal07ICpjcDsgY3ArKykKLQkJaWYgKCFpc2RpZ2l0KCpjcCkgJiYgKmNwICE9ICcgJykKKwkJaWYgKCFpc2RpZ2l0KChpbnQpKmNwKSAmJiAqY3AgIT0gJyAnKQogCQkgIGJyZWFrOwogCSAgICAgIAogCSAgICAgIGlmICgqY3ApCkBAIC0xNjMzLDExICsxNzE2LDggQEAKIAkJICAgIHsKIAkJICAgICAgaW50IGxlbiA9IHN0cmxlbihhW2pdKSArIDE7CiAJCSAgICAgIGlmICghY2Fub25pY2FsaXNlX29wdChhW2pdKSkKLQkJCXsKLQkJCSAgcHJvYmxlbSA9IF8oImJhZCBESENQIGhvc3QgbmFtZSIpOwotCQkJICBvcHRpb24gPSAnPyc7Ci0JCQl9Ci0JCSAgICAgIGVsc2UgaWYgKChuZXctPmhvc3RuYW1lID0gKG9wdGlvbiA9PSBMT1BUX0JBTkspID8gd2hpbmVfbWFsbG9jKGxlbik6IHNhZmVfbWFsbG9jKGxlbikpKQorCQkJcHJvYmxlbSA9IF8oImJhZCBESENQIGhvc3QgbmFtZSIpOworCQkgICAgICBlbHNlIGlmICgobmV3LT5ob3N0bmFtZSA9IG9wdF9tYWxsb2MobGVuKSkpCiAJCQl7CiAJCQkgIG5ldy0+ZmxhZ3MgfD0gQ09ORklHX05BTUU7CiAJCQkgIHN0cmNweShuZXctPmhvc3RuYW1lLCBhW2pdKTsKQEAgLTE2NjEsOCArMTc0MSwxMCBAQAogICAgICAgCiAgICAgY2FzZSAnTyc6CiAgICAgY2FzZSBMT1BUX0ZPUkNFOgotICAgICAgaWYgKChwcm9ibGVtID0gcGFyc2VfZGhjcF9vcHQoYXJnLCBvcHRpb24gPT0gTE9QVF9GT1JDRSkpKQotCW9wdGlvbiA9ICc/JzsKKyAgICBjYXNlIExPUFRfT1BUUzoKKyAgICAgIHByb2JsZW0gPSBwYXJzZV9kaGNwX29wdChhcmcsIAorCQkJICAgICAgIG9wdGlvbiA9PSBMT1BUX0ZPUkNFID8gREhPUFRfRk9SQ0UgOiAKKwkJCSAgICAgICAob3B0aW9uID09IExPUFRfT1BUUyA/IERIT1BUX0JBTksgOiAwKSk7CiAgICAgICBicmVhazsKICAgICAgIAogICAgIGNhc2UgJ00nOiAvKiAtLWRoY3AtYm9vdCAqLwpAQCAtMTY3MCwxMSArMTc1MiwxMSBAQAogCXN0cnVjdCBkaGNwX25ldGlkICppZCA9IE5VTEw7CiAJd2hpbGUgKGFyZyAmJiBzdHJzdHIoYXJnLCAibmV0OiIpID09IGFyZykKIAkgIHsKLQkgICAgc3RydWN0IGRoY3BfbmV0aWQgKm5ld2lkID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX25ldGlkKSk7CisJICAgIHN0cnVjdCBkaGNwX25ldGlkICpuZXdpZCA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX25ldGlkKSk7CiAJICAgIG5ld2lkLT5uZXh0ID0gaWQ7CiAJICAgIGlkID0gbmV3aWQ7CiAJICAgIGNvbW1hID0gc3BsaXQoYXJnKTsKLQkgICAgbmV3aWQtPm5ldCA9IHNhZmVfc3RyaW5nX2FsbG9jKGFyZys0KTsKKwkgICAgbmV3aWQtPm5ldCA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKzQpOwogCSAgICBhcmcgPSBjb21tYTsKIAkgIH07CiAJCkBAIC0xNjg1LDEzICsxNzY3LDEzIEBACiAJICAgIGNoYXIgKmRoY3BfZmlsZSwgKmRoY3Bfc25hbWUgPSBOVUxMOwogCSAgICBzdHJ1Y3QgaW5fYWRkciBkaGNwX25leHRfc2VydmVyOwogCSAgICBjb21tYSA9IHNwbGl0KGFyZyk7Ci0JICAgIGRoY3BfZmlsZSA9IHNhZmVfc3RyaW5nX2FsbG9jKGFyZyk7CisJICAgIGRoY3BfZmlsZSA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKTsKIAkgICAgZGhjcF9uZXh0X3NlcnZlci5zX2FkZHIgPSAwOwogCSAgICBpZiAoY29tbWEpCiAJICAgICAgewogCQlhcmcgPSBjb21tYTsKIAkJY29tbWEgPSBzcGxpdChhcmcpOwotCQlkaGNwX3NuYW1lID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsKKwkJZGhjcF9zbmFtZSA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKTsKIAkJaWYgKGNvbW1hKQogCQkgIHsKIAkJICAgIHVuaGlkZV9tZXRhcyhjb21tYSk7CkBAIC0xNzAxLDcgKzE3ODMsNyBAQAogCSAgICAgIH0KIAkgICAgaWYgKG9wdGlvbiAhPSAnPycpCiAJICAgICAgewotCQlzdHJ1Y3QgZGhjcF9ib290ICpuZXcgPSBzYWZlX21hbGxvYyhzaXplb2Yoc3RydWN0IGRoY3BfYm9vdCkpOworCQlzdHJ1Y3QgZGhjcF9ib290ICpuZXcgPSBvcHRfbWFsbG9jKHNpemVvZihzdHJ1Y3QgZGhjcF9ib290KSk7CiAJCW5ldy0+ZmlsZSA9IGRoY3BfZmlsZTsKIAkJbmV3LT5zbmFtZSA9IGRoY3Bfc25hbWU7CiAJCW5ldy0+bmV4dF9zZXJ2ZXIgPSBkaGNwX25leHRfc2VydmVyOwpAQCAtMTcyMCw4ICsxODAyLDggQEAKIAkgIG9wdGlvbiA9ICc/JzsKIAllbHNlCiAJICB7Ci0JICAgIHN0cnVjdCBkaGNwX21hYyAqbmV3ID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX21hYykpOwotCSAgICBuZXctPm5ldGlkLm5ldCA9IHNhZmVfc3RyaW5nX2FsbG9jKGFyZyk7CisJICAgIHN0cnVjdCBkaGNwX21hYyAqbmV3ID0gb3B0X21hbGxvYyhzaXplb2Yoc3RydWN0IGRoY3BfbWFjKSk7CisJICAgIG5ldy0+bmV0aWQubmV0ID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOwogCSAgICB1bmhpZGVfbWV0YXMoY29tbWEpOwogCSAgICBuZXctPmh3YWRkcl9sZW4gPSBwYXJzZV9oZXgoY29tbWEsIG5ldy0+aHdhZGRyLCBESENQX0NIQUREUl9NQVgsICZuZXctPm1hc2ssICZuZXctPmh3YWRkcl90eXBlKTsKIAkgICAgbmV3LT5uZXh0ID0gZGFlbW9uLT5kaGNwX21hY3M7CkBAIC0xNzM1LDYgKzE4MTcsNyBAQAogICAgIGNhc2UgTE9QVF9DSVJDVUlUOiAgLyogLS1kaGNwLWNpcmN1aXRpZCAqLwogICAgIGNhc2UgTE9QVF9SRU1PVEU6ICAgLyogLS1kaGNwLXJlbW90ZWlkICovCiAgICAgY2FzZSBMT1BUX1NVQlNDUjogICAvKiAtLWRoY3Atc3Vic2NyaWQgKi8KKyAgICBjYXNlIExPUFRfTUFUQ0g6ICAgIC8qIC0tZGhjcC1tYXRjaCAqLwogICAgICAgewogCWlmICghKGNvbW1hID0gc3BsaXQoYXJnKSkpCiAJICBvcHRpb24gPSAnPyc7CkBAIC0xNzQyLDIyICsxODI1LDMxIEBACiAJICB7CiAJICAgIGNoYXIgKnA7CiAJICAgIGludCBkaWcgPSAwOwotCSAgICBzdHJ1Y3QgZGhjcF92ZW5kb3IgKm5ldyA9IHNhZmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgZGhjcF92ZW5kb3IpKTsKLQkgICAgbmV3LT5uZXRpZC5uZXQgPSBzYWZlX3N0cmluZ19hbGxvYyhhcmcpOworCSAgICBzdHJ1Y3QgZGhjcF92ZW5kb3IgKm5ldyA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX3ZlbmRvcikpOworCSAgICBuZXctPm5ldGlkLm5ldCA9IG9wdF9zdHJpbmdfYWxsb2MoYXJnKTsKIAkgICAgLyogY2hlY2sgZm9yIGhleCBzdHJpbmcgLSBtdXN0IGRpZ2l0cyBtYXkgaW5jbHVkZSA6IG11c3Qgbm90IGhhdmUgbm90aGluZyBlbHNlLCAKIAkgICAgICAgb25seSBhbGxvd2VkIGZvciBhZ2VudC1vcHRpb25zLiAqLwogCSAgICBmb3IgKHAgPSBjb21tYTsgKnA7IHArKykKLQkgICAgICBpZiAoaXN4ZGlnaXQoKnApKQorCSAgICAgIGlmIChpc3hkaWdpdCgoaW50KSpwKSkKIAkJZGlnID0gMTsKIAkgICAgICBlbHNlIGlmICgqcCAhPSAnOicpCiAJCWJyZWFrOwogCSAgICB1bmhpZGVfbWV0YXMoY29tbWEpOwotCSAgICBpZiAob3B0aW9uID09ICdVJyB8fCBvcHRpb24gPT0gJ2onIHx8ICpwIHx8ICFkaWcpCi0JICAgICAgbmV3LT5sZW4gPSBzdHJsZW4oY29tbWEpOworCSAgICBpZiAob3B0aW9uID09IExPUFRfTUFUQ0gpIAorCSAgICAgIG5ldy0+b3B0aW9uID0gYXRvaShjb21tYSk7CisJICAgIGVsc2UgaWYgKG9wdGlvbiA9PSAnVScgfHwgb3B0aW9uID09ICdqJyB8fCAqcCB8fCAhZGlnKQorCSAgICAgIHsKKwkJbmV3LT5sZW4gPSBzdHJsZW4oY29tbWEpOyAgCisJCW5ldy0+ZGF0YSA9IG9wdF9tYWxsb2MobmV3LT5sZW4pOworCQltZW1jcHkobmV3LT5kYXRhLCBjb21tYSwgbmV3LT5sZW4pOworCSAgICAgIH0KIAkgICAgZWxzZQotCSAgICAgIG5ldy0+bGVuID0gcGFyc2VfaGV4KGNvbW1hLCAodW5zaWduZWQgY2hhciAqKWNvbW1hLCBzdHJsZW4oY29tbWEpLCBOVUxMLCBOVUxMKTsKLQkgICAgbmV3LT5kYXRhID0gc2FmZV9tYWxsb2MobmV3LT5sZW4pOwotCSAgICBtZW1jcHkobmV3LT5kYXRhLCBjb21tYSwgbmV3LT5sZW4pOworCSAgICAgIHsKKwkJbmV3LT5sZW4gPSBwYXJzZV9oZXgoY29tbWEsICh1bnNpZ25lZCBjaGFyICopY29tbWEsIHN0cmxlbihjb21tYSksIE5VTEwsIE5VTEwpOworCQluZXctPmRhdGEgPSBvcHRfbWFsbG9jKG5ldy0+bGVuKTsKKwkJbWVtY3B5KG5ldy0+ZGF0YSwgY29tbWEsIG5ldy0+bGVuKTsKKwkgICAgICB9CisKIAkgICAgc3dpdGNoIChvcHRpb24pCiAJICAgICAgewogCSAgICAgIGNhc2UgJ2onOgpAQCAtMTc3NSw2ICsxODY3LDggQEAKIAkgICAgICBjYXNlIExPUFRfU1VCU0NSOgogCQluZXctPm1hdGNoX3R5cGUgPSBNQVRDSF9TVUJTQ1JJQkVSOwogCQlicmVhazsKKwkgICAgICBjYXNlIExPUFRfTUFUQ0g6CisJCW5ldy0+bWF0Y2hfdHlwZSA9IE1BVENIX09QVElPTjsKIAkgICAgICB9CiAJICAgIG5ldy0+bmV4dCA9IGRhZW1vbi0+ZGhjcF92ZW5kb3JzOwogCSAgICBkYWVtb24tPmRoY3BfdmVuZG9ycyA9IG5ldzsKQEAgLTE3ODIsMTYgKzE4NzYsMjIgQEAKIAlicmVhazsKICAgICAgIH0KICAgICAgIAotICAgIGNhc2UgJ0onOiAgICAgICAgICAgLyogLS1kaGNwLWlnbm9yZSAqLwotICAgIGNhc2UgTE9QVF9OT19OQU1FUzogLyogLS1kaGNwLWlnbm9yZS1uYW1lcyAqLworICAgIGNhc2UgJ0onOiAgICAgICAgICAgIC8qIC0tZGhjcC1pZ25vcmUgKi8KKyAgICBjYXNlIExPUFRfTk9fTkFNRVM6ICAvKiAtLWRoY3AtaWdub3JlLW5hbWVzICovCisgICAgY2FzZSBMT1BUX0JST0FEQ0FTVDogLyogLS1kaGNwLWJyb2FkY2FzdCAqLwogICAgICAgewotCXN0cnVjdCBkaGNwX25ldGlkX2xpc3QgKm5ldyA9IHNhZmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgZGhjcF9uZXRpZF9saXN0KSk7CisJc3RydWN0IGRoY3BfbmV0aWRfbGlzdCAqbmV3ID0gb3B0X21hbGxvYyhzaXplb2Yoc3RydWN0IGRoY3BfbmV0aWRfbGlzdCkpOwogCXN0cnVjdCBkaGNwX25ldGlkICpsaXN0ID0gTlVMTDsKIAlpZiAob3B0aW9uID09ICdKJykKIAkgIHsKIAkgICAgbmV3LT5uZXh0ID0gZGFlbW9uLT5kaGNwX2lnbm9yZTsKIAkgICAgZGFlbW9uLT5kaGNwX2lnbm9yZSA9IG5ldzsKIAkgIH0KKwllbHNlIGlmIChvcHRpb24gPT0gTE9QVF9CUk9BRENBU1QpCisJICB7CisJICAgIG5ldy0+bmV4dCA9IGRhZW1vbi0+Zm9yY2VfYnJvYWRjYXN0OworCSAgICBkYWVtb24tPmZvcmNlX2Jyb2FkY2FzdCA9IG5ldzsKKwkgIH0KIAllbHNlCiAJICB7CiAJICAgIG5ldy0+bmV4dCA9IGRhZW1vbi0+ZGhjcF9pZ25vcmVfbmFtZXM7CkBAIC0xNzk5LDExICsxODk5LDExIEBACiAJICB9CiAJCiAJd2hpbGUgKGFyZykgewotCSAgc3RydWN0IGRoY3BfbmV0aWQgKm1lbWJlciA9IHNhZmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgZGhjcF9uZXRpZCkpOworCSAgc3RydWN0IGRoY3BfbmV0aWQgKm1lbWJlciA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkaGNwX25ldGlkKSk7CiAJICBjb21tYSA9IHNwbGl0KGFyZyk7CiAJICBtZW1iZXItPm5leHQgPSBsaXN0OwogCSAgbGlzdCA9IG1lbWJlcjsKLQkgIG1lbWJlci0+bmV0ID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsKKwkgIG1lbWJlci0+bmV0ID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOwogCSAgYXJnID0gY29tbWE7CiAJfQogCQpAQCAtMTgzOSw3ICsxOTM5LDcgQEAKIAlpZiAoayA9PSAzKQogCSAgbWFzay5zX2FkZHIgPSBpbmV0X2FkZHIoYVsyXSk7CiAJCi0JbmV3ID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkb2N0b3IpKTsKKwluZXcgPSBvcHRfbWFsbG9jKHNpemVvZihzdHJ1Y3QgZG9jdG9yKSk7CiAJbmV3LT5pbiA9IGluOwogCW5ldy0+b3V0ID0gb3V0OwogCW5ldy0+bWFzayA9IG1hc2s7CkBAIC0xODU2LDIwICsxOTU2LDE2IEBACiAJY29tbWEgPSBzcGxpdChhcmcpOwogCQogCWlmICghY29tbWEgfHwgIWNhbm9uaWNhbGlzZV9vcHQoYXJnKSkKLQkgIHsKLQkgICAgb3B0aW9uID0gJz8nOwotCSAgICBwcm9ibGVtID0gXygiYmFkIGludGVyZmFjZSBuYW1lIik7Ci0JICAgIGJyZWFrOwotCSAgfQotCi0JbmV3ID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBpbnRlcmZhY2VfbmFtZSkpOworCSAgcHJvYmxlbSA9IF8oImJhZCBpbnRlcmZhY2UgbmFtZSIpOworCSAgCisJbmV3ID0gb3B0X21hbGxvYyhzaXplb2Yoc3RydWN0IGludGVyZmFjZV9uYW1lKSk7CiAJbmV3LT5uZXh0ID0gTlVMTDsKIAkvKiBBZGQgdG8gdGhlIGVuZCBvZiB0aGUgbGlzdCwgc28gdGhhdCBmaXJzdCBuYW1lCiAJICAgb2YgYW4gaW50ZXJmYWNlIGlzIHVzZWQgZm9yIFBUUiBsb29rdXBzLiAqLwotCWZvcih1cCA9ICZkYWVtb24tPmludF9uYW1lczsgKnVwOyB1cCA9ICYoKCp1cCktPm5leHQpKTsKKwlmb3IgKHVwID0gJmRhZW1vbi0+aW50X25hbWVzOyAqdXA7IHVwID0gJigoKnVwKS0+bmV4dCkpOwogCSp1cCA9IG5ldzsKLQluZXctPm5hbWUgPSBzYWZlX3N0cmluZ19hbGxvYyhhcmcpOwotCW5ldy0+aW50ciA9IHNhZmVfc3RyaW5nX2FsbG9jKGNvbW1hKTsKKwluZXctPm5hbWUgPSBvcHRfc3RyaW5nX2FsbG9jKGFyZyk7CisJbmV3LT5pbnRyID0gb3B0X3N0cmluZ19hbGxvYyhjb21tYSk7CiAJYnJlYWs7CiAgICAgICB9CiAKQEAgLTE4ODAsMTkgKzE5NzYsMTUgQEAKIAljb21tYSA9IHNwbGl0KGFyZyk7CiAJCiAJaWYgKCFjYW5vbmljYWxpc2Vfb3B0KGFyZykpCi0JICB7Ci0JICAgIG9wdGlvbiA9ICc/JzsKLQkgICAgcHJvYmxlbSA9IF8oImJhZCBQVFIgcmVjb3JkIik7Ci0JICAgIGJyZWFrOwotCSAgfQotCi0JbmV3ID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBwdHJfcmVjb3JkKSk7CisJICBwcm9ibGVtID0gXygiYmFkIFBUUiByZWNvcmQiKTsKKwkgIAorCW5ldyA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBwdHJfcmVjb3JkKSk7CiAJbmV3LT5uZXh0ID0gZGFlbW9uLT5wdHI7CiAJZGFlbW9uLT5wdHIgPSBuZXc7Ci0JbmV3LT5uYW1lID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsKKwluZXctPm5hbWUgPSBvcHRfc3RyaW5nX2FsbG9jKGFyZyk7CiAJbmV3LT5wdHIgPSBOVUxMOwogCWlmIChjb21tYSkKLQkgIG5ldy0+cHRyID0gc2FmZV9zdHJpbmdfYWxsb2MoY29tbWEpOworCSAgbmV3LT5wdHIgPSBvcHRfc3RyaW5nX2FsbG9jKGNvbW1hKTsKIAlicmVhazsKICAgICAgIH0KIApAQCAtMTkwMSwxNSArMTk5MywxNyBAQAogCXN0cnVjdCB0eHRfcmVjb3JkICpuZXc7CiAJdW5zaWduZWQgY2hhciAqcCwgKnE7CiAJCi0JY29tbWEgPSBzcGxpdChhcmcpIC0gMTsKKwlpZiAoKGNvbW1hID0gc3BsaXQoYXJnKSkpCisJICBjb21tYS0tOworCQorCWdlbl9wcm9iID0gXygiVFhUIHJlY29yZCBzdHJpbmcgdG9vIGxvbmciKTsKIAkKIAlpZiAoIWNhbm9uaWNhbGlzZV9vcHQoYXJnKSkKIAkgIHsKLQkgICAgb3B0aW9uID0gJz8nOwogCSAgICBwcm9ibGVtID0gXygiYmFkIFRYVCByZWNvcmQiKTsKIAkgICAgYnJlYWs7CiAJICB9Ci0JCisKIAlpZiAoKHEgPSAodW5zaWduZWQgY2hhciAqKWNvbW1hKSkKIAkgIHdoaWxlICgxKQogCSAgICB7CkBAIC0xOTE3LDEwICsyMDExLDcgQEAKIAkgICAgICBpZiAoKHAgPSAodW5zaWduZWQgY2hhciAqKXN0cmNocigoY2hhciopcSsxLCAnLCcpKSkKIAkJewogCQkgIGlmICgobGVuID0gcCAtIHEgLSAxKSA+IDI1NSkKLQkJICAgIHsgCi0JCSAgICAgIG9wdGlvbiA9ICc/JzsKLQkJICAgICAgYnJlYWs7Ci0JCSAgICB9CisJCSAgICBvcHRpb24gPSAnPyc7CiAJCSAgKnEgPSBsZW47CiAJCSAgZm9yIChxID0gcSsxOyBxIDwgcDsgcSsrKQogCQkgICAgKnEgPSB1bmhpZGVfbWV0YSgqcSk7CkBAIC0xOTM2LDIwICsyMDI3LDE0IEBACiAJCX0KIAkgICAgfQogCQotCWlmIChvcHRpb24gPT0gJz8nKQotCSAgewotCSAgICBwcm9ibGVtID0gXygiVFhUIHJlY29yZCBzdHJpbmcgdG9vIGxvbmciKTsKLQkgICAgYnJlYWs7Ci0JICB9Ci0JCi0JbmV3ID0gc2FmZV9tYWxsb2Moc2l6ZW9mKHN0cnVjdCB0eHRfcmVjb3JkKSk7CisJbmV3ID0gb3B0X21hbGxvYyhzaXplb2Yoc3RydWN0IHR4dF9yZWNvcmQpKTsKIAluZXctPm5leHQgPSBkYWVtb24tPnR4dDsKIAlkYWVtb24tPnR4dCA9IG5ldzsKIAluZXctPmNsYXNzID0gQ19JTjsKIAlpZiAoY29tbWEpCiAJICB7CiAJICAgIG5ldy0+bGVuID0gcSAtICgodW5zaWduZWQgY2hhciAqKWNvbW1hKTsKLQkgICAgbmV3LT50eHQgPSBzYWZlX21hbGxvYyhuZXctPmxlbik7CisJICAgIG5ldy0+dHh0ID0gb3B0X21hbGxvYyhuZXctPmxlbik7CiAJICAgIG1lbWNweShuZXctPnR4dCwgY29tbWEsIG5ldy0+bGVuKTsKIAkgIH0KIAllbHNlCkBAIC0xOTYyLDcgKzIwNDcsNyBAQAogCS8qIGVuc3VyZSBhcmcgaXMgdGVybWluYXRlZCAqLwogCWlmIChjb21tYSkKIAkgICpjb21tYSA9IDA7Ci0JbmV3LT5uYW1lID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsKKwluZXctPm5hbWUgPSBvcHRfc3RyaW5nX2FsbG9jKGFyZyk7CiAJYnJlYWs7CiAgICAgICB9CiAgICAgICAKQEAgLTE5NzUsNjAgKzIwNjAsNDQgQEAKIAljb21tYSA9IHNwbGl0KGFyZyk7CiAJCiAJaWYgKCFjYW5vbmljYWxpc2Vfb3B0KGFyZykpCi0JICB7Ci0JICAgIG9wdGlvbiA9ICc/JzsKLQkgICAgcHJvYmxlbSA9IF8oImJhZCBTUlYgcmVjb3JkIik7Ci0JICAgIGJyZWFrOwotCSAgfQotCW5hbWUgPSBzYWZlX3N0cmluZ19hbGxvYyhhcmcpOworCSAgcHJvYmxlbSA9IF8oImJhZCBTUlYgcmVjb3JkIik7CisJICAKKwluYW1lID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOwogCQogCWlmIChjb21tYSkKIAkgIHsKIAkgICAgYXJnID0gY29tbWE7CiAJICAgIGNvbW1hID0gc3BsaXQoYXJnKTsKIAkgICAgaWYgKCFjYW5vbmljYWxpc2Vfb3B0KGFyZykpCi0JICAgICAgewotCQlvcHRpb24gPSAnPyc7Ci0JCXByb2JsZW0gPSBfKCJiYWQgU1JWIHRhcmdldCIpOwotCQlicmVhazsKLQkgICAgICB9Ci0JICAgIHRhcmdldCA9IHNhZmVfc3RyaW5nX2FsbG9jKGFyZyk7CisJICAgICAgcHJvYmxlbSA9IF8oImJhZCBTUlYgdGFyZ2V0Iik7CisJCQorCSAgICB0YXJnZXQgPSBvcHRfc3RyaW5nX2FsbG9jKGFyZyk7CiAJICAgIGlmIChjb21tYSkKIAkgICAgICB7CiAJCWFyZyA9IGNvbW1hOwogCQljb21tYSA9IHNwbGl0KGFyZyk7CiAJCWlmICghYXRvaV9jaGVjayhhcmcsICZwb3J0KSkKLQkJICB7Ci0JCSAgICBvcHRpb24gPSAnPyc7Ci0JCSAgICBwcm9ibGVtID0gXygiaW52YWxpZCBwb3J0IG51bWJlciIpOwotCQkgICAgYnJlYWs7Ci0JCSAgfQorCQkgIHByb2JsZW0gPSBfKCJpbnZhbGlkIHBvcnQgbnVtYmVyIik7CisJCQogCQlpZiAoY29tbWEpCiAJCSAgewogCQkgICAgYXJnID0gY29tbWE7CiAJCSAgICBjb21tYSA9IHNwbGl0KGFyZyk7CiAJCSAgICBpZiAoIWF0b2lfY2hlY2soYXJnLCAmcHJpb3JpdHkpKQotCQkgICAgICB7Ci0JCQlvcHRpb24gPSAnPyc7Ci0JCQlwcm9ibGVtID0gXygiaW52YWxpZCBwcmlvcml0eSIpOwotCQkJYnJlYWs7Ci0JCSAgICAgIH0KKwkJICAgICAgcHJvYmxlbSA9IF8oImludmFsaWQgcHJpb3JpdHkiKTsKKwkJCQogCQkgICAgaWYgKGNvbW1hKQogCQkgICAgICB7CiAJCQlhcmcgPSBjb21tYTsKIAkJCWNvbW1hID0gc3BsaXQoYXJnKTsKIAkJCWlmICghYXRvaV9jaGVjayhhcmcsICZ3ZWlnaHQpKQotCQkJICB7Ci0JCQkgICAgb3B0aW9uID0gJz8nOwotCQkJICAgIHByb2JsZW0gPSBfKCJpbnZhbGlkIHdlaWdodCIpOwotCQkJICAgIGJyZWFrOwotCQkJICB9CisJCQkgIHByb2JsZW0gPSBfKCJpbnZhbGlkIHdlaWdodCIpOwogCQkgICAgICB9CiAJCSAgfQogCSAgICAgIH0KIAkgIH0KIAkKLQluZXcgPSBzYWZlX21hbGxvYyhzaXplb2Yoc3RydWN0IG14X3Nydl9yZWNvcmQpKTsKKwluZXcgPSBvcHRfbWFsbG9jKHNpemVvZihzdHJ1Y3QgbXhfc3J2X3JlY29yZCkpOwogCW5ldy0+bmV4dCA9IGRhZW1vbi0+bXhuYW1lczsKIAlkYWVtb24tPm14bmFtZXMgPSBuZXc7CiAJbmV3LT5pc3NydiA9IDE7CkBAIC0yMDQxLDEyICsyMTEwLDE5IEBACiAgICAgICB9CiAgICAgfQogCi0gIHJldHVybiBvcHRpb24gPT0gJz8nID8gcHJvYmxlbSA6IE5VTEw7CisgIGlmIChwcm9ibGVtKQorICAgIHJldHVybiBwcm9ibGVtOworICAKKyAgaWYgKG9wdGlvbiA9PSAnPycpCisgICAgcmV0dXJuIGdlbl9wcm9iOworCisgIHJldHVybiBOVUxMOwogfQogCi12b2lkIG9uZV9maWxlKGNoYXIgKmZpbGUsIGludCBuZXN0LCBpbnQgaG9zdHMpCQorc3RhdGljIHZvaWQgb25lX2ZpbGUoY2hhciAqZmlsZSwgaW50IG5lc3QsIGludCBoYXJkX29wdCkJCiB7Ci0gIGludCBpLCBvcHRpb24sIGxpbmVubyA9IDA7IAorICB2b2xhdGlsZSBpbnQgbGluZW5vID0gMDsKKyAgaW50IGksIG9wdGlvbjsgCiAgIEZJTEUgKmY7CiAgIGNoYXIgKnAsICphcmcsICpzdGFydCwgKmJ1ZmYgPSBkYWVtb24tPm5hbWVidWZmOwogCkBAIC0yMDYwLDcgKzIxMzYsNyBAQAogICAgICAgZWxzZQogCXsKIAkgIGNoYXIgKnN0ciA9IF8oImNhbm5vdCByZWFkICVzOiAlcyIpOwotCSAgaWYgKGhvc3RzKQorCSAgaWYgKGhhcmRfb3B0ICE9IDApCiAJICAgIHsKIAkgICAgICBteV9zeXNsb2coTE9HX0VSUiwgc3RyLCBmaWxlLCBzdHJlcnJvcihlcnJubykpOwogCSAgICAgIHJldHVybjsKQEAgLTIwNzQsMTAgKzIxNTAsMTkgQEAKICAgICB7CiAgICAgICBpbnQgd2hpdGU7CiAgICAgICB1bnNpZ25lZCBpbnQgbGFzdHF1b3RlOwotICAgICAgY2hhciAqZXJybWVzcyA9IE5VTEw7CisgICAgICBjaGFyICplcnJtZXNzOwogCisgICAgICAvKiBNZW1vcnkgYWxsb2NhdGlvbiBmYWlsdXJlIGxvbmdqbXBzIGhlcmUgaWYgbWVtX3JlY292ZXIgPT0gMSAqLyAKKyAgICAgIGlmIChoYXJkX29wdCkKKwl7CisJICBpZiAoc2V0am1wKG1lbV9qbXApKQorCSAgICBjb250aW51ZTsKKwkgIG1lbV9yZWNvdmVyID0gMTsKKwl9CisgICAgICAKICAgICAgIGxpbmVubysrOwotICAgICAgICAgICAgCisgICAgICBlcnJtZXNzID0gTlVMTDsKKyAgICAgIAogICAgICAgLyogSW1wbGVtZW50IHF1b3RlcywgaW5zaWRlIHF1b3RlcyB3ZSBhbGxvdyBcXCBcIiBcbiBhbmQgXHQgCiAJIG1ldGFjaGFyYWN0ZXJzIGdldCBoaWRkZW4gYWxzbyBzdHJpcCBjb21tZW50cyAqLwogICAgICAgCkBAIC0yMTIxLDM0ICsyMjA2LDM0IEBACiAJICAgICAgKnAgPSAwOwogCSAgICAgIGJyZWFrOwogCSAgICB9Ci0JICB3aGl0ZSA9IGlzc3BhY2UodW5oaWRlX21ldGEoKnApKTsgCisJICB3aGl0ZSA9IGlzc3BhY2UoKGludCl1bmhpZGVfbWV0YSgqcCkpOyAKIAl9CiAKICAgICAgIC8qIGZnZXRzIGdldHMgZW5kIG9mIGxpbmUgY2hhciB0b28uICovCi0gICAgICB3aGlsZSAoc3RybGVuKGJ1ZmYpID4gbGFzdHF1b3RlICYmIGlzc3BhY2UodW5oaWRlX21ldGEoYnVmZltzdHJsZW4oYnVmZiktMV0pKSkKKyAgICAgIHdoaWxlIChzdHJsZW4oYnVmZikgPiBsYXN0cXVvdGUgJiYgaXNzcGFjZSgoaW50KXVuaGlkZV9tZXRhKGJ1ZmZbc3RybGVuKGJ1ZmYpLTFdKSkpCiAJYnVmZltzdHJsZW4oYnVmZiktMV0gPSAwOwogCiAgICAgICBpZiAoKmJ1ZmYgPT0gMCkKIAljb250aW51ZTsgCiAKLSAgICAgIGlmIChob3N0cykKKyAgICAgIGlmIChoYXJkX29wdCAhPSAwKQogCWFyZyA9IGJ1ZmY7CiAgICAgICBlbHNlIGlmICgocD1zdHJjaHIoYnVmZiwgJz0nKSkpCiAJewogCSAgLyogYWxsb3cgc3BhY2VzIGFyb3VuZCAiPSIgKi8KIAkgIGFyZyA9IHArMTsKLQkgIGZvciAoOyBwID49IGJ1ZmYgJiYgKGlzc3BhY2UoKnApIHx8ICpwID09ICc9Jyk7IHAtLSkKKwkgIGZvciAoOyBwID49IGJ1ZmYgJiYgKGlzc3BhY2UoKGludCkqcCkgfHwgKnAgPT0gJz0nKTsgcC0tKQogCSAgICAqcCA9IDA7CiAJfQogICAgICAgZWxzZQogCWFyZyA9IE5VTEw7CiAKLSAgICAgIGlmIChob3N0cykKLQlvcHRpb24gPSBMT1BUX0JBTks7CisgICAgICBpZiAoaGFyZF9vcHQgIT0gMCkKKwlvcHRpb24gPSBoYXJkX29wdDsKICAgICAgIGVsc2UKIAl7CiAJICAvKiBza2lwIGxlYWRpbmcgc3BhY2UgKi8KLQkgIGZvciAoc3RhcnQgPSBidWZmOyAqc3RhcnQgJiYgaXNzcGFjZSgqc3RhcnQpOyBzdGFydCsrKTsKKwkgIGZvciAoc3RhcnQgPSBidWZmOyAqc3RhcnQgJiYgaXNzcGFjZSgoaW50KSpzdGFydCk7IHN0YXJ0KyspOwogCSAgCiAJICBmb3IgKG9wdGlvbiA9IDAsIGkgPSAwOyBvcHRzW2ldLm5hbWU7IGkrKykgCiAJICAgIGlmIChzdHJjbXAob3B0c1tpXS5uYW1lLCBzdGFydCkgPT0gMCkKQEAgLTIxNjQsMTEgKzIyNDksMTEgQEAKIAkgIGVsc2UgaWYgKG9wdHNbaV0uaGFzX2FyZyA9PSAxICYmICFhcmcpCiAJICAgIGVycm1lc3MgPSBfKCJtaXNzaW5nIHBhcmFtZXRlciIpOwogCX0KLSAgICAgIAorCSAgCiAgICAgICBpZiAoIWVycm1lc3MpCiAJewogCSAgaWYgKGFyZykKLQkgICAgZm9yICg7IGlzc3BhY2UoKmFyZyk7IGFyZysrKTsKKwkgICAgZm9yICg7IGlzc3BhY2UoKGludCkqYXJnKTsgYXJnKyspOwogCSAgCiAJICBlcnJtZXNzID0gb25lX29wdChvcHRpb24sIGFyZywgXygiZXJyb3IiKSwgbmVzdCArIDEpOwogCX0KQEAgLTIxNzcsMjUgKzIyNjIsODggQEAKIAl7CiAJb29wczoKIAkgIHNwcmludGYoYnVmZiwgXygiJXMgYXQgbGluZSAlZCBvZiAlJXMiKSwgZXJybWVzcywgbGluZW5vKTsKLQkgIGlmIChob3N0cykKKwkgIGlmIChoYXJkX29wdCAhPSAwKQogCSAgICBteV9zeXNsb2coTE9HX0VSUiwgYnVmZiwgZmlsZSk7CiAJICBlbHNlCiAJICAgIGRpZShidWZmLCBmaWxlLCBFQ19CQURDT05GKTsKIAl9CiAgICAgfQogCisgIG1lbV9yZWNvdmVyID0gMTsKICAgZmNsb3NlKGYpOwogfQogCit2b2lkIHJlcmVhZF9kaGNwKHZvaWQpCit7CisgIGlmIChkYWVtb24tPmRoY3BfaG9zdHNfZmlsZSkKKyAgICB7CisgICAgICBzdHJ1Y3QgZGhjcF9jb25maWcgKmNvbmZpZ3MsICpjcCwgKip1cDsKKyAgICAgIAorICAgICAgLyogcmVtb3ZlIGV4aXN0aW5nLi4uICovCisgICAgICBmb3IgKHVwID0gJmRhZW1vbi0+ZGhjcF9jb25mLCBjb25maWdzID0gZGFlbW9uLT5kaGNwX2NvbmY7IGNvbmZpZ3M7IGNvbmZpZ3MgPSBjcCkKKwl7CisJICBjcCA9IGNvbmZpZ3MtPm5leHQ7CisJICAKKwkgIGlmIChjb25maWdzLT5mbGFncyAmIENPTkZJR19CQU5LKQorCSAgICB7CisJICAgICAgaWYgKGNvbmZpZ3MtPmZsYWdzICYgQ09ORklHX0NMSUQpCisJCWZyZWUoY29uZmlncy0+Y2xpZCk7CisJICAgICAgaWYgKGNvbmZpZ3MtPmZsYWdzICYgQ09ORklHX05FVElEKQorCQlmcmVlKGNvbmZpZ3MtPm5ldGlkLm5ldCk7CisJICAgICAgaWYgKGNvbmZpZ3MtPmZsYWdzICYgQ09ORklHX05BTUUpCisJCWZyZWUoY29uZmlncy0+aG9zdG5hbWUpOworCSAgICAgIAorCSAgICAgICp1cCA9IGNvbmZpZ3MtPm5leHQ7CisJICAgICAgZnJlZShjb25maWdzKTsKKwkgICAgfQorCSAgZWxzZQorCSAgICB1cCA9ICZjb25maWdzLT5uZXh0OworCX0KKyAgICAgIAorICAgICAgb25lX2ZpbGUoZGFlbW9uLT5kaGNwX2hvc3RzX2ZpbGUsIDEsIExPUFRfQkFOSyk7ICAKKyAgICAgIG15X3N5c2xvZyhMT0dfSU5GTywgXygicmVhZCAlcyIpLCBkYWVtb24tPmRoY3BfaG9zdHNfZmlsZSk7CisgICAgfQorCisgIGlmIChkYWVtb24tPmRoY3Bfb3B0c19maWxlKQorICAgIHsKKyAgICAgIHN0cnVjdCBkaGNwX29wdCAqb3B0cywgKmNwLCAqKnVwOworICAgICAgc3RydWN0IGRoY3BfbmV0aWQgKmlkLCAqbmV4dDsKKworICAgICAgZm9yICh1cCA9ICZkYWVtb24tPmRoY3Bfb3B0cywgb3B0cyA9IGRhZW1vbi0+ZGhjcF9vcHRzOyBvcHRzOyBvcHRzID0gY3ApCisJeworCSAgY3AgPSBvcHRzLT5uZXh0OworCSAgCisJICBpZiAob3B0cy0+ZmxhZ3MgJiBESE9QVF9CQU5LKQorCSAgICB7CisJICAgICAgZnJlZShvcHRzLT52ZW5kb3JfY2xhc3MpOworCSAgICAgIGZyZWUob3B0cy0+dmFsKTsKKwkgICAgICBmb3IgKGlkID0gb3B0cy0+bmV0aWQ7IGlkOyBpZCA9IG5leHQpCisJCXsKKwkJICBuZXh0ID0gaWQtPm5leHQ7CisJCSAgZnJlZShpZC0+bmV0KTsKKwkJICBmcmVlKGlkKTsKKwkJfQorCSAgICAgICp1cCA9IG9wdHMtPm5leHQ7CisJICAgICAgZnJlZShvcHRzKTsKKwkgICAgfQorCSAgZWxzZQorCSAgICB1cCA9ICZvcHRzLT5uZXh0OworCX0KKyAgICAgIAorICAgICAgb25lX2ZpbGUoZGFlbW9uLT5kaGNwX29wdHNfZmlsZSwgMSwgTE9QVF9PUFRTKTsgIAorICAgICAgbXlfc3lzbG9nKExPR19JTkZPLCBfKCJyZWFkICVzIiksIGRhZW1vbi0+ZGhjcF9vcHRzX2ZpbGUpOworICAgIH0KK30KKyAgICAKIHZvaWQgcmVhZF9vcHRzKGludCBhcmdjLCBjaGFyICoqYXJndiwgY2hhciAqY29tcGlsZV9vcHRzKQogewotICBjaGFyICpidWZmID0gc2FmZV9tYWxsb2MoTUFYRE5BTUUpOworICBjaGFyICpidWZmID0gb3B0X21hbGxvYyhNQVhETkFNRSk7CiAgIGludCBvcHRpb24sIG5lc3QgPSAwOwogICBjaGFyICplcnJtZXNzLCAqYXJnLCAqY29uZmZpbGUgPSBDT05GRklMRTsKICAgICAgIAogICBvcHRlcnIgPSAwOwogCi0gIGRhZW1vbiA9IHNhZmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgZGFlbW9uKSk7CisgIGRhZW1vbiA9IG9wdF9tYWxsb2Moc2l6ZW9mKHN0cnVjdCBkYWVtb24pKTsKICAgbWVtc2V0KGRhZW1vbiwgMCwgc2l6ZW9mKHN0cnVjdCBkYWVtb24pKTsKICAgZGFlbW9uLT5uYW1lYnVmZiA9IGJ1ZmY7CiAKQEAgLTIyNTMsMTIgKzI0MDEsMTIgQEAKIAkgIHByaW50ZihfKCJDb21waWxlIHRpbWUgb3B0aW9ucyAlc1xuXG4iKSwgY29tcGlsZV9vcHRzKTsgCiAJICBwcmludGYoXygiVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuXG4iKSk7CiAJICBwcmludGYoXygiRG5zbWFzcSBpcyBmcmVlIHNvZnR3YXJlLCBhbmQgeW91IGFyZSB3ZWxjb21lIHRvIHJlZGlzdHJpYnV0ZSBpdFxuIikpOwotCSAgcHJpbnRmKF8oInVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UsIHZlcnNpb24gMi5cbiIpKTsKKwkgIHByaW50ZihfKCJ1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCB2ZXJzaW9uIDIgb3IgMy5cbiIpKTsKICAgICAgICAgICBleGl0KDApOwogICAgICAgICB9CiAgICAgICBlbHNlIGlmIChvcHRpb24gPT0gJ0MnKQogCXsKLQkgIGNvbmZmaWxlID0gc2FmZV9zdHJpbmdfYWxsb2MoYXJnKTsKKwkgIGNvbmZmaWxlID0gb3B0X3N0cmluZ19hbGxvYyhhcmcpOwogCSAgbmVzdCsrOwogCX0KICAgICAgIGVsc2UKQEAgLTIzMTgsMTYgKzI0NjYsMTYgQEAKICAgICAgIAogICAgICAgaWYgKChkYWVtb24tPm14dGFyZ2V0IHx8IChkYWVtb24tPm9wdGlvbnMgJiBPUFRfTE9DQUxNWCkpICYmICFteCkKIAl7Ci0JICBteCA9IHNhZmVfbWFsbG9jKHNpemVvZihzdHJ1Y3QgbXhfc3J2X3JlY29yZCkpOworCSAgbXggPSBvcHRfbWFsbG9jKHNpemVvZihzdHJ1Y3QgbXhfc3J2X3JlY29yZCkpOwogCSAgbXgtPm5leHQgPSBkYWVtb24tPm14bmFtZXM7CiAJICBteC0+aXNzcnYgPSAwOwogCSAgbXgtPnRhcmdldCA9IE5VTEw7Ci0JICBteC0+bmFtZSA9IHNhZmVfc3RyaW5nX2FsbG9jKGJ1ZmYpOworCSAgbXgtPm5hbWUgPSBvcHRfc3RyaW5nX2FsbG9jKGJ1ZmYpOwogCSAgZGFlbW9uLT5teG5hbWVzID0gbXg7CiAJfQogICAgICAgCiAgICAgICBpZiAoIWRhZW1vbi0+bXh0YXJnZXQpCi0JZGFlbW9uLT5teHRhcmdldCA9IHNhZmVfc3RyaW5nX2FsbG9jKGJ1ZmYpOworCWRhZW1vbi0+bXh0YXJnZXQgPSBvcHRfc3RyaW5nX2FsbG9jKGJ1ZmYpOwogCiAgICAgICBmb3IgKG14ID0gZGFlbW9uLT5teG5hbWVzOyBteDsgbXggPSBteC0+bmV4dCkKIAlpZiAoIW14LT5pc3NydiAmJiAhbXgtPnRhcmdldCkKQEAgLTIzNjIsNyArMjUxMCw3IEBACiAJICAKIAkgIGlmICgodG9rZW4gPSBzdHJ0b2soTlVMTCwgIiBcdFxuXHIiKSkgJiYgIAogCSAgICAgIGNhbm9uaWNhbGlzZV9vcHQodG9rZW4pICYmCi0JICAgICAgKGRhZW1vbi0+ZG9tYWluX3N1ZmZpeCA9IHNhZmVfc3RyaW5nX2FsbG9jKHRva2VuKSkpCisJICAgICAgKGRhZW1vbi0+ZG9tYWluX3N1ZmZpeCA9IG9wdF9zdHJpbmdfYWxsb2ModG9rZW4pKSkKIAkgICAgYnJlYWs7CiAJfQogCkBAIC0yMzg2LDcgKzI1MzQsNyBAQAogCSAgICBzdHJjYXQoYnVmZiwgIi4iKTsKIAkgICAgc3RyY2F0KGJ1ZmYsIGRhZW1vbi0+ZG9tYWluX3N1ZmZpeCk7CiAJICAgIGZyZWUoc3J2LT5uYW1lKTsKLQkgICAgc3J2LT5uYW1lID0gc2FmZV9zdHJpbmdfYWxsb2MoYnVmZik7CisJICAgIHNydi0+bmFtZSA9IG9wdF9zdHJpbmdfYWxsb2MoYnVmZik7CiAJICB9CiAgICAgfQogfSAgCmRpZmYgLS1naXQgYS9zcmMvcmZjMTAzNS5jIGIvc3JjL3JmYzEwMzUuYwppbmRleCBkMThkMWUyLi41ZDEwMzljIDEwMDY0NAotLS0gYS9zcmMvcmZjMTAzNS5jCisrKyBiL3NyYy9yZmMxMDM1LmMKQEAgLTEsMTMgKzEsMTcgQEAKLS8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwIC0gMjAwNiBTaW1vbiBLZWxsZXkKKy8qIGRuc21hc3EgaXMgQ29weXJpZ2h0IChjKSAyMDAwLTIwMDcgU2ltb24gS2VsbGV5CiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEuCi0KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSB2ZXJzaW9uIDMgZGF0ZWQgMjkgSnVuZSwgMjAwNy4KKyAKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgICAgIAorICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCiAKICNpbmNsdWRlICJkbnNtYXNxLmgiCkBAIC0zMiw3ICszNiw3IEBACiAgICAgICB1bnNpZ25lZCBpbnQgbGFiZWxfdHlwZSA9IGwgJiAweGMwOwogICAgICAgaWYgKGxhYmVsX3R5cGUgPT0gMHhjMCkgLyogcG9pbnRlciAqLwogCXsgCi0JICBpZiAoKHNpemVfdCkocCAtICh1bnNpZ25lZCBjaGFyICopaGVhZGVyICsgMSkgPj0gcGxlbikKKwkgIGlmICgoc2l6ZV90KShwIC0gKHVuc2lnbmVkIGNoYXIgKiloZWFkZXIpID49IHBsZW4pCiAJICAgIHJldHVybiAwOwogCSAgICAgIAogCSAgLyogZ2V0IG9mZnNldCAqLwpAQCAtNzAsNyArNzQsNyBAQAogCSAgLyogb3V0cHV0IGlzIFxbeDxoZXg+L3Npel0uIHdoaWNoIGlzIGRpZ3MrOSBjaGFycyAqLwogCSAgaWYgKGNwIC0gKHVuc2lnbmVkIGNoYXIgKiluYW1lICsgZGlncyArIDkgPj0gTUFYRE5BTUUpCiAJICAgIHJldHVybiAwOwotCSAgaWYgKChzaXplX3QpKHAgLSAodW5zaWduZWQgY2hhciAqKWhlYWRlciArICgoY291bnQtMSk+PjMpICsgMSkgPj0gcGxlbikKKwkgIGlmICgoc2l6ZV90KShwIC0gKHVuc2lnbmVkIGNoYXIgKiloZWFkZXIgKyAoKGNvdW50LTEpPj4zKSkgPj0gcGxlbikKIAkgICAgcmV0dXJuIDA7CiAKIAkgICpjcCsrID0gJ1xcJzsKQEAgLTk0LDcgKzk4LDcgQEAKIAl7IC8qIGxhYmVsX3R5cGUgPSAwIC0+IGxhYmVsLiAqLwogCSAgaWYgKGNwIC0gKHVuc2lnbmVkIGNoYXIgKiluYW1lICsgbCArIDEgPj0gTUFYRE5BTUUpCiAJICAgIHJldHVybiAwOwotCSAgaWYgKChzaXplX3QpKHAgLSAodW5zaWduZWQgY2hhciAqKWhlYWRlciArIDEpID49IHBsZW4pCisJICBpZiAoKHNpemVfdCkocCAtICh1bnNpZ25lZCBjaGFyICopaGVhZGVyKSA+PSBwbGVuKQogCSAgICByZXR1cm4gMDsKIAkgIGZvcihqPTA7IGo8bDsgaisrLCBwKyspCiAJICAgIGlmIChpc0V4dHJhY3QpCkBAIC00OTcsNiArNTAxLDUwIEBACiAgICAgKChpcF9hZGRyICYgMHhGRkZGMDAwMCkgPT0gMHhBOUZFMDAwMCkgIC8qIDE2OS4yNTQuMC4wLzE2ICh6ZXJvY29uZikgKi8gOwogfQogCitzdGF0aWMgdW5zaWduZWQgY2hhciAqZG9fZG9jdG9yKHVuc2lnbmVkIGNoYXIgKnAsIGludCBjb3VudCwgSEVBREVSICpoZWFkZXIsIHNpemVfdCBxbGVuKQoreworICBpbnQgaSwgcXR5cGUsIHFjbGFzcywgcmRsZW47CisgIHVuc2lnbmVkIGxvbmcgdHRsOworCisgIGZvciAoaSA9IGNvdW50OyBpICE9IDA7IGktLSkKKyAgICB7CisgICAgICBpZiAoIShwID0gc2tpcF9uYW1lKHAsIGhlYWRlciwgcWxlbikpKQorCXJldHVybiAwOyAvKiBiYWQgcGFja2V0ICovCisgICAgICAKKyAgICAgIEdFVFNIT1JUKHF0eXBlLCBwKTsgCisgICAgICBHRVRTSE9SVChxY2xhc3MsIHApOworICAgICAgR0VUTE9ORyh0dGwsIHApOworICAgICAgR0VUU0hPUlQocmRsZW4sIHApOworICAgICAgCisgICAgICBpZiAoKHFjbGFzcyA9PSBDX0lOKSAmJiAocXR5cGUgPT0gVF9BKSkKKwl7CisJICBzdHJ1Y3QgZG9jdG9yICpkb2N0b3I7CisJICBzdHJ1Y3QgaW5fYWRkciBhZGRyOworCSAgCisJICAvKiBhbGlnbm1lbnQgKi8KKwkgIG1lbWNweSgmYWRkciwgcCwgSU5BRERSU1opOworCSAgCisJICBmb3IgKGRvY3RvciA9IGRhZW1vbi0+ZG9jdG9yczsgZG9jdG9yOyBkb2N0b3IgPSBkb2N0b3ItPm5leHQpCisJICAgIGlmIChpc19zYW1lX25ldChkb2N0b3ItPmluLCBhZGRyLCBkb2N0b3ItPm1hc2spKQorCSAgICAgIHsKKwkJYWRkci5zX2FkZHIgJj0gfmRvY3Rvci0+bWFzay5zX2FkZHI7CisJCWFkZHIuc19hZGRyIHw9IChkb2N0b3ItPm91dC5zX2FkZHIgJiBkb2N0b3ItPm1hc2suc19hZGRyKTsKKwkJLyogU2luY2Ugd2UgbXVuZ2VkIHRoZSBkYXRhLCB0aGUgc2VydmVyIGl0IGNhbWUgZnJvbSBpcyBubyBsb25nZXIgYXV0aG9yaXRhdGl2ZSAqLworCQloZWFkZXItPmFhID0gMDsKKwkJbWVtY3B5KHAsICZhZGRyLCBJTkFERFJTWik7CisJCWJyZWFrOworCSAgICAgIH0KKwl9CisgICAgICAKKyAgICAgIHAgKz0gcmRsZW47CisgICAgICAKKyAgICAgIGlmICgoc2l6ZV90KShwIC0gKHVuc2lnbmVkIGNoYXIgKiloZWFkZXIpID4gcWxlbikKKwlyZXR1cm4gMDsgLyogYmFkIHBhY2tldCAqLworICAgIH0KKyAgCisgIHJldHVybiBwOyAKK30KKwogc3RhdGljIGludCBmaW5kX3NvYShIRUFERVIgKmhlYWRlciwgc2l6ZV90IHFsZW4pCiB7CiAgIHVuc2lnbmVkIGNoYXIgKnA7CkBAIC01MDYsOCArNTU0LDggQEAKICAgCiAgIC8qIGZpcnN0IG1vdmUgdG8gTlMgc2VjdGlvbiBhbmQgZmluZCBUVEwgZnJvbSBhbnkgU09BIHNlY3Rpb24gKi8KICAgaWYgKCEocCA9IHNraXBfcXVlc3Rpb25zKGhlYWRlciwgcWxlbikpIHx8Ci0gICAgICAhKHAgPSBza2lwX3NlY3Rpb24ocCwgbnRvaHMoaGVhZGVyLT5hbmNvdW50KSwgaGVhZGVyLCBxbGVuKSkpCi0gICAgcmV0dXJuIDA7IC8qIGJhZCBwYWNrZXQgKi8KKyAgICAgICEocCA9IGRvX2RvY3RvcihwLCBudG9ocyhoZWFkZXItPmFuY291bnQpLCBoZWFkZXIsIHFsZW4pKSkKKyAgICByZXR1cm4gMDsgIC8qIGJhZCBwYWNrZXQgKi8KICAgCiAgIGZvciAoaSA9IG50b2hzKGhlYWRlci0+bnNjb3VudCk7IGkgIT0gMDsgaS0tKQogICAgIHsKQEAgLTU0NCw1MiArNTkyLDIzIEBACiAJcmV0dXJuIDA7IC8qIGJhZCBwYWNrZXQgKi8KICAgICB9CiAgCi0gIGlmIChkYWVtb24tPmRvY3RvcnMpCi0gICAgZm9yIChpID0gbnRvaHMoaGVhZGVyLT5hcmNvdW50KTsgaSAhPSAwOyBpLS0pCi0gICAgICB7Ci0JaWYgKCEocCA9IHNraXBfbmFtZShwLCBoZWFkZXIsIHFsZW4pKSkKLQkgIHJldHVybiAwOyAvKiBiYWQgcGFja2V0ICovCi0gICAgICAKLQlHRVRTSE9SVChxdHlwZSwgcCk7IAotCUdFVFNIT1JUKHFjbGFzcywgcCk7Ci0JR0VUTE9ORyh0dGwsIHApOwotCUdFVFNIT1JUKHJkbGVuLCBwKTsKLQkKLQlpZiAoKHFjbGFzcyA9PSBDX0lOKSAmJiAocXR5cGUgPT0gVF9BKSkKLQkgIHsKLQkgICAgc3RydWN0IGRvY3RvciAqZG9jdG9yOwotCSAgICBzdHJ1Y3QgaW5fYWRkciBhZGRyOwotCSAgICAKLQkgICAgLyogYWxpZ25tZW50ICovCi0JICAgIG1lbWNweSgmYWRkciwgcCwgSU5BRERSU1opOwotCSAgICAKLQkgICAgZm9yIChkb2N0b3IgPSBkYWVtb24tPmRvY3RvcnM7IGRvY3RvcjsgZG9jdG9yID0gZG9jdG9yLT5uZXh0KQotCSAgICAgIGlmIChpc19zYW1lX25ldChkb2N0b3ItPmluLCBhZGRyLCBkb2N0b3ItPm1hc2spKQotCQl7Ci0JCSAgYWRkci5zX2FkZHIgJj0gfmRvY3Rvci0+bWFzay5zX2FkZHI7Ci0JCSAgYWRkci5zX2FkZHIgfD0gKGRvY3Rvci0+b3V0LnNfYWRkciAmIGRvY3Rvci0+bWFzay5zX2FkZHIpOwotCQkgIC8qIFNpbmNlIHdlIG11bmdlZCB0aGUgZGF0YSwgdGhlIHNlcnZlciBpdCBjYW1lIGZyb20gaXMgbm8gbG9uZ2VyIGF1dGhvcml0YXRpdmUgKi8KLQkJICBoZWFkZXItPmFhID0gMDsKLQkJICBtZW1jcHkocCwgJmFkZHIsIElOQUREUlNaKTsKLQkJICBicmVhazsKLQkJfQotCSAgfQotCQotCXAgKz0gcmRsZW47Ci0JCi0JaWYgKChzaXplX3QpKHAgLSAodW5zaWduZWQgY2hhciAqKWhlYWRlcikgPiBxbGVuKQotCSAgcmV0dXJuIDA7IC8qIGJhZCBwYWNrZXQgKi8KLSAgICAgIH0KLSAKLSAgcmV0dXJuIGZvdW5kX3NvYSA/IG1pbnR0bCA6IDA7CisgIC8qIHJld3JpdGUgYWRkcmVzc2VzIGluIGFkZGl0aW9hbCBzZWN0aW9uIHRvbyAqLworICBpZiAoIWRvX2RvY3RvcihwLCBudG9ocyhoZWFkZXItPmFyY291bnQpLCBoZWFkZXIsIHFsZW4pKQorICAgIHJldHVybiAwOworICAKKyAgaWYgKCFmb3VuZF9zb2EpCisgICAgbWludHRsID0gZGFlbW9uLT5uZWdfdHRsOworCisgIHJldHVybiBtaW50dGw7CiB9CiAKIC8qIE5vdGUgdGhhdCB0aGUgZm9sbG93aW5nIGNvZGUgY2FuIGNyZWF0ZSBDTkFNRSBjaGFpbnMgdGhhdCBkb24ndCBwb2ludCB0byBhIHJlYWwgcmVjb3JkLAogICAgZWl0aGVyIGJlY2F1c2Ugb2YgbGFjayBvZiBtZW1vcnksIG9yIGxhY2sgb2YgU09BIHJlY29yZHMuICBUaGVzZSBhcmUgdHJlYXRlZCBieSB0aGUgY2FjaGUgY29kZSBhcyAKLSAgIGV4cGlyZWQgYW5kIGNsZWFuZWQgb3V0IHRoYXQgd2F5LiAqLwotdm9pZCBleHRyYWN0X2FkZHJlc3NlcyhIRUFERVIgKmhlYWRlciwgc2l6ZV90IHFsZW4sIGNoYXIgKm5hbWUsIHRpbWVfdCBub3cpCisgICBleHBpcmVkIGFuZCBjbGVhbmVkIG91dCB0aGF0IHdheS4gCisgICBSZXR1cm4gMSBpZiB3ZSByZWplY3QgYW4gYWRkcmVzcyBiZWNhdXNlIGl0IGxvb2sgbGlrZSBwYXJjdCBvZiBkbnMtcmViaW5kaW5nIGF0dGFjay4gKi8KK2ludCBleHRyYWN0X2FkZHJlc3NlcyhIRUFERVIgKmhlYWRlciwgc2l6ZV90IHFsZW4sIGNoYXIgKm5hbWUsIHRpbWVfdCBub3cpCiB7Ci0gIHVuc2lnbmVkIGNoYXIgKnAsICpwMSwgKmVuZHJyOworICB1bnNpZ25lZCBjaGFyICpwLCAqcDEsICplbmRyciwgKm5hbWVwOwogICBpbnQgaSwgaiwgcXR5cGUsIHFjbGFzcywgYXF0eXBlLCBhcWNsYXNzLCBhcmRsZW4sIHJlcywgc2VhcmNoZWRfc29hID0gMDsKICAgdW5zaWduZWQgbG9uZyB0dGwgPSAwOwogICBzdHJ1Y3QgYWxsX2FkZHIgYWRkcjsKQEAgLTYxMyw4ICs2MzIsOSBAQAogICAgICAgaW50IGZsYWdzID0gaGVhZGVyLT5yY29kZSA9PSBOWERPTUFJTiA/IEZfTlhET01BSU4gOiAwOwogICAgICAgdW5zaWduZWQgbG9uZyBjdHRsID0gVUxPTkdfTUFYLCBhdHRsOwogICAgICAgCisgICAgICBuYW1lcCA9IHA7CiAgICAgICBpZiAoIWV4dHJhY3RfbmFtZShoZWFkZXIsIHFsZW4sICZwLCBuYW1lLCAxKSkKLQlyZXR1cm47IC8qIGJhZCBwYWNrZXQgKi8KKwlyZXR1cm4gMDsgLyogYmFkIHBhY2tldCAqLwogICAgICAgICAgICAKICAgICAgIEdFVFNIT1JUKHF0eXBlLCBwKTsgCiAgICAgICBHRVRTSE9SVChxY2xhc3MsIHApOwpAQCAtNjM1LDEyICs2NTUsMTUgQEAKIAkgICAgewogCSAgICBjbmFtZV9sb29wOgogCSAgICAgIGlmICghKHAxID0gc2tpcF9xdWVzdGlvbnMoaGVhZGVyLCBxbGVuKSkpCi0JCXJldHVybjsKKwkJcmV0dXJuIDA7CiAJICAgICAgCiAJICAgICAgZm9yIChqID0gbnRvaHMoaGVhZGVyLT5hbmNvdW50KTsgaiAhPSAwOyBqLS0pIAogCQl7Ci0JCSAgaWYgKCEocmVzID0gZXh0cmFjdF9uYW1lKGhlYWRlciwgcWxlbiwgJnAxLCBuYW1lLCAwKSkpCi0JCSAgICByZXR1cm47IC8qIGJhZCBwYWNrZXQgKi8KKwkJICB1bnNpZ25lZCBjaGFyICp0bXAgPSBuYW1lcDsKKwkJICAvKiB0aGUgbG9vcCBib2R5IG92ZXJ3cml0ZXMgdGhlIG9yaWdpbmFsIG5hbWUsIHNvIGdldCBpdCBiYWNrIGhlcmUuICovCisJCSAgaWYgKCFleHRyYWN0X25hbWUoaGVhZGVyLCBxbGVuLCAmdG1wLCBuYW1lLCAxKSB8fAorCQkgICAgICAhKHJlcyA9IGV4dHJhY3RfbmFtZShoZWFkZXIsIHFsZW4sICZwMSwgbmFtZSwgMCkpKQorCQkgICAgcmV0dXJuIDA7IC8qIGJhZCBwYWNrZXQgKi8KIAkJICAKIAkJICBHRVRTSE9SVChhcXR5cGUsIHAxKTsgCiAJCSAgR0VUU0hPUlQoYXFjbGFzcywgcDEpOwpAQCAtNjU1LDEyICs2NzgsMTIgQEAKIAkJICBpZiAoYXFjbGFzcyA9PSBDX0lOICYmIHJlcyAhPSAyICYmIChhcXR5cGUgPT0gVF9DTkFNRSB8fCBhcXR5cGUgPT0gVF9QVFIpKQogCQkgICAgewogCQkgICAgICBpZiAoIWV4dHJhY3RfbmFtZShoZWFkZXIsIHFsZW4sICZwMSwgbmFtZSwgMSkpCi0JCQlyZXR1cm47CisJCQlyZXR1cm4gMDsKIAkJICAgICAgCiAJCSAgICAgIGlmIChhcXR5cGUgPT0gVF9DTkFNRSkKIAkJCXsKIAkJCSAgaWYgKCFjbmFtZV9jb3VudC0tKQotCQkJICAgIHJldHVybjsgLyogbG9vcGVkIENOQU1FUyAqLworCQkJICAgIHJldHVybiAwOyAvKiBsb29wZWQgQ05BTUVTICovCiAJCQkgIGdvdG8gY25hbWVfbG9vcDsKIAkJCX0KIAkJICAgICAgCkBAIC02NzAsNyArNjkzLDcgQEAKIAkJICAKIAkJICBwMSA9IGVuZHJyOwogCQkgIGlmICgoc2l6ZV90KShwMSAtICh1bnNpZ25lZCBjaGFyICopaGVhZGVyKSA+IHFsZW4pCi0JCSAgICByZXR1cm47IC8qIGJhZCBwYWNrZXQgKi8KKwkJICAgIHJldHVybiAwOyAvKiBiYWQgcGFja2V0ICovCiAJCX0KIAkgICAgfQogCSAgCkBAIC03MTAsMTIgKzczMywxMiBAQAogCSAgICB7CiAJICAgIGNuYW1lX2xvb3AxOgogCSAgICAgIGlmICghKHAxID0gc2tpcF9xdWVzdGlvbnMoaGVhZGVyLCBxbGVuKSkpCi0JCXJldHVybjsKKwkJcmV0dXJuIDA7CiAJICAgICAgCiAJICAgICAgZm9yIChqID0gbnRvaHMoaGVhZGVyLT5hbmNvdW50KTsgaiAhPSAwOyBqLS0pIAogCQl7CiAJCSAgaWYgKCEocmVzID0gZXh0cmFjdF9uYW1lKGhlYWRlciwgcWxlbiwgJnAxLCBuYW1lLCAwKSkpCi0JCSAgICByZXR1cm47IC8qIGJhZCBwYWNrZXQgKi8KKwkJICAgIHJldHVybiAwOyAvKiBiYWQgcGFja2V0ICovCiAJCSAgCiAJCSAgR0VUU0hPUlQoYXF0eXBlLCBwMSk7IAogCQkgIEdFVFNIT1JUKGFxY2xhc3MsIHAxKTsKQEAgLTcyOCw3ICs3NTEsNyBAQAogCQkgICAgICBpZiAoYXF0eXBlID09IFRfQ05BTUUpCiAJCQl7CiAJCQkgIGlmICghY25hbWVfY291bnQtLSkKLQkJCSAgICByZXR1cm47IC8qIGxvb3BlZCBDTkFNRVMgKi8KKwkJCSAgICByZXR1cm4gMDsgLyogbG9vcGVkIENOQU1FUyAqLwogCQkJICBuZXdjID0gY2FjaGVfaW5zZXJ0KG5hbWUsIE5VTEwsIG5vdywgYXR0bCwgRl9DTkFNRSB8IEZfRk9SV0FSRCk7CiAJCQkgIGlmIChuZXdjICYmIGNwcCkKIAkJCSAgICB7CkBAIC03NDEsNyArNzY0LDcgQEAKIAkJCSAgICBjdHRsID0gYXR0bDsKIAkJCSAgCiAJCQkgIGlmICghZXh0cmFjdF9uYW1lKGhlYWRlciwgcWxlbiwgJnAxLCBuYW1lLCAxKSkKLQkJCSAgICByZXR1cm47CisJCQkgICAgcmV0dXJuIDA7CiAJCQkgIGdvdG8gY25hbWVfbG9vcDE7CiAJCQl9CiAJCSAgICAgIGVsc2UKQEAgLTc0OSw2ICs3NzIsMTMgQEAKIAkJCSAgZm91bmQgPSAxOwogCQkJICAvKiBjb3B5IGFkZHJlc3MgaW50byBhbGlnbmVkIHN0b3JhZ2UgKi8KIAkJCSAgbWVtY3B5KCZhZGRyLCBwMSwgYWRkcmxlbik7CisJCQkgIAorCQkJICAvKiBjaGVjayBmb3IgcmV0dXJuZWQgYWRkcmVzcyBpbiBwcml2YXRlIHNwYWNlICovCisJCQkgIGlmICgoZGFlbW9uLT5vcHRpb25zICYgT1BUX05PX1JFQklORCkgJiYKKwkJCSAgICAgIChmbGFncyAmIEZfSVBWNCkgJiYKKwkJCSAgICAgIHByaXZhdGVfbmV0KGFkZHIuYWRkci5hZGRyNCkpCisJCQkgICAgcmV0dXJuIDE7CisJCQkgIAogCQkJICBuZXdjID0gY2FjaGVfaW5zZXJ0KG5hbWUsICZhZGRyLCBub3csIGF0dGwsIGZsYWdzIHwgRl9GT1JXQVJEKTsKIAkJCSAgaWYgKG5ld2MgJiYgY3BwKQogCQkJICAgIHsKQEAgLTc2MSw3ICs3OTEsNyBAQAogCQkgIAogCQkgIHAxID0gZW5kcnI7CiAJCSAgaWYgKChzaXplX3QpKHAxIC0gKHVuc2lnbmVkIGNoYXIgKiloZWFkZXIpID4gcWxlbikKLQkJICAgIHJldHVybjsgLyogYmFkIHBhY2tldCAqLworCQkgICAgcmV0dXJuIDA7IC8qIGJhZCBwYWNrZXQgKi8KIAkJfQogCSAgICB9CiAJICAKQEAgLTc3Myw3ICs4MDMsNyBAQAogCQkgIHR0bCA9IGZpbmRfc29hKGhlYWRlciwgcWxlbik7CiAJCX0KIAkgICAgICAvKiBJZiB0aGVyZSdzIG5vIFNPQSB0byBnZXQgdGhlIFRUTCBmcm9tLCBidXQgdGhlcmUgaXMgYSBDTkFNRSAKLQkJIHBvaW50aW5nIGF0IHRoaXMsIGluaGVyaXQgaXQncyBUVEwgKi8KKwkJIHBvaW50aW5nIGF0IHRoaXMsIGluaGVyaXQgaXRzIFRUTCAqLwogCSAgICAgIGlmICh0dGwgfHwgY3BwKQogCQl7CiAJCSAgbmV3YyA9IGNhY2hlX2luc2VydChuYW1lLCBOVUxMLCBub3csIHR0bCA/IHR0bCA6IGN0dGwsIEZfRk9SV0FSRCB8IEZfTkVHIHwgZmxhZ3MpOwkKQEAgLTc4Nyw3ICs4MTcsMTEgQEAKIAl9CiAgICAgfQogICAKLSAgY2FjaGVfZW5kX2luc2VydCgpOworICAvKiBEb24ndCBwdXQgc3R1ZmYgZnJvbSBhIHRydW5jYXRlZCBwYWNrZXQgaW50byB0aGUgY2FjaGUsIGJ1dCBkbyBldmVyeXRoaW5nIGVsc2UgKi8KKyAgaWYgKCFoZWFkZXItPnRjKQorICAgIGNhY2hlX2VuZF9pbnNlcnQoKTsKKworICByZXR1cm4gMDsKIH0KIAogLyogSWYgdGhlIHBhY2tldCBob2xkcyBleGFjdGx5IG9uZSBxdWVyeQpAQCAtODQ0LDcgKzg3OCw3IEBACiAgIGhlYWRlci0+YW5jb3VudCA9IGh0b25zKDApOyAvKiBubyBhbnN3ZXJzIHVubGVzcyBjaGFuZ2VkIGJlbG93ICovCiAgIGlmIChmbGFncyA9PSBGX05FRykKICAgICBoZWFkZXItPnJjb2RlID0gU0VSVkZBSUw7IC8qIGNvdWxkbid0IGdldCBtZW1vcnkgKi8KLSAgZWxzZSBpZiAoZmxhZ3MgPT0gRl9OT0VSUiB8fCBmbGFncyA9PSBGX1FVRVJZKQorICBlbHNlIGlmIChmbGFncyA9PSBGX05PRVJSKQogICAgIGhlYWRlci0+cmNvZGUgPSBOT0VSUk9SOyAvKiBlbXB0eSBkb21haW4gKi8KICAgZWxzZSBpZiAoZmxhZ3MgPT0gRl9OWERPTUFJTikKICAgICBoZWFkZXItPnJjb2RlID0gTlhET01BSU47CmRpZmYgLS1naXQgYS9zcmMvcmZjMjEzMS5jIGIvc3JjL3JmYzIxMzEuYwppbmRleCA2YjlkOTk0Li45YWM1OTVlIDEwMDY0NAotLS0gYS9zcmMvcmZjMjEzMS5jCisrKyBiL3NyYy9yZmMyMTMxLmMKQEAgLTIsMTIgKzIsMTYgQEAKIAogICAgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAgIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0gICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgZGF0ZWQgSnVuZSwgMTk5MS4KLQorICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEsIG9yCisgICAoYXQgeW91ciBvcHRpb24pIHZlcnNpb24gMyBkYXRlZCAyOSBKdW5lLCAyMDA3LgorIAogICAgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCiAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgogICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogICAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAgICAgCisgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUgPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgogKi8KIAogI2luY2x1ZGUgImRuc21hc3EuaCIKQEAgLTY3LDggKzcxLDcgQEAKICNkZWZpbmUgb3B0aW9uX3B0cihvcHQpICgodm9pZCAqKSYoKCh1bnNpZ25lZCBjaGFyICopKG9wdCkpWzJdKSkKIAogc3RhdGljIGludCBzYW5pdGlzZSh1bnNpZ25lZCBjaGFyICpvcHQsIGNoYXIgKmJ1Zik7Ci1zdGF0aWMgdW5zaWduZWQgaW50IGNhbGNfdGltZShzdHJ1Y3QgZGhjcF9jb250ZXh0ICpjb250ZXh0LCBzdHJ1Y3QgZGhjcF9jb25maWcgKmNvbmZpZywgCi0JCQkgICAgICBzdHJ1Y3QgZGhjcF9sZWFzZSAqbGVhc2UsIHVuc2lnbmVkIGNoYXIgKm9wdCwgdGltZV90IG5vdyk7CitzdGF0aWMgdW5zaWduZWQgaW50IGNhbGNfdGltZShzdHJ1Y3QgZGhjcF9jb250ZXh0ICpjb250ZXh0LCBzdHJ1Y3QgZGhjcF9jb25maWcgKmNvbmZpZywgdW5zaWduZWQgY2hhciAqb3B0KTsKIHN0YXRpYyB2b2lkIG9wdGlvbl9wdXQoc3RydWN0IGRoY3BfcGFja2V0ICptZXNzLCB1bnNpZ25lZCBjaGFyICplbmQsIGludCBvcHQsIGludCBsZW4sIHVuc2lnbmVkIGludCB2YWwpOwogc3RhdGljIHZvaWQgb3B0aW9uX3B1dF9zdHJpbmcoc3RydWN0IGRoY3BfcGFja2V0ICptZXNzLCB1bnNpZ25lZCBjaGFyICplbmQsIAogCQkJICAgICAgaW50IG9wdCwgY2hhciAqc3RyaW5nLCBpbnQgbnVsbF90ZXJtKTsKQEAgLTk1LDcgKzk4LDcgQEAKIHN0YXRpYyB2b2lkIG1hdGNoX3ZlbmRvcl9vcHRzKHVuc2lnbmVkIGNoYXIgKm9wdCwgc3RydWN0IGRoY3Bfb3B0ICpkb3B0KTsgCiAKIAkgIAotc2l6ZV90IGRoY3BfcmVwbHkoc3RydWN0IGRoY3BfY29udGV4dCAqY29udGV4dCwgY2hhciAqaWZhY2VfbmFtZSwgCitzaXplX3QgZGhjcF9yZXBseShzdHJ1Y3QgZGhjcF9jb250ZXh0ICpjb250ZXh0LCBjaGFyICppZmFjZV9uYW1lLCBpbnQgaW50X2luZGV4LAogCQkgIHNpemVfdCBzeiwgdGltZV90IG5vdywgaW50IHVuaWNhc3RfZGVzdCwgaW50ICppc19pbmZvcm0pCiB7CiAgIHVuc2lnbmVkIGNoYXIgKm9wdCwgKmNsaWQgPSBOVUxMOwpAQCAtMTA0LDcgKzEwNyw3IEBACiAgIHN0cnVjdCBkaGNwX21hYyAqbWFjOwogICBzdHJ1Y3QgZGhjcF9uZXRpZF9saXN0ICppZF9saXN0OwogICBpbnQgY2xpZF9sZW4gPSAwLCBpZ25vcmUgPSAwLCBkb19jbGFzc2VzID0gMCwgc2VsZWN0aW5nID0gMDsKLSAgc3RydWN0IGRoY3BfcGFja2V0ICptZXNzID0gZGFlbW9uLT5kaGNwX3BhY2tldC5pb3ZfYmFzZTsKKyAgc3RydWN0IGRoY3BfcGFja2V0ICptZXNzID0gKHN0cnVjdCBkaGNwX3BhY2tldCAqKWRhZW1vbi0+ZGhjcF9wYWNrZXQuaW92X2Jhc2U7CiAgIHVuc2lnbmVkIGNoYXIgKmVuZCA9ICh1bnNpZ25lZCBjaGFyICopKG1lc3MgKyAxKTsgCiAgIGNoYXIgKmhvc3RuYW1lID0gTlVMTCwgKm9mZmVyX2hvc3RuYW1lID0gTlVMTCwgKmNsaWVudF9ob3N0bmFtZSA9IE5VTEw7CiAgIGludCBob3N0bmFtZV9hdXRoID0gMCwgYm9ya2VuX29wdCA9IDA7CkBAIC0xNTMsNyArMTU2LDcgQEAKIAkgIAogCSAgaWYgKGV4cGFuZF9idWYoJmRhZW1vbi0+ZGhjcF9wYWNrZXQsIHNpemUpKQogCSAgICB7Ci0JICAgICAgbWVzcyA9IGRhZW1vbi0+ZGhjcF9wYWNrZXQuaW92X2Jhc2U7CisJICAgICAgbWVzcyA9IChzdHJ1Y3QgZGhjcF9wYWNrZXQgKilkYWVtb24tPmRoY3BfcGFja2V0Lmlvdl9iYXNlOwogCSAgICAgIGVuZCA9ICgodW5zaWduZWQgY2hhciAqKW1lc3MpICsgc2l6ZTsKIAkgICAgfQogCX0KQEAgLTM5NCw3ICszOTcsNyBAQAogCSAgZWxzZQogCSAgICB7CiAJICAgICAgaWYgKCEobGVhc2UgPSBsZWFzZV9maW5kX2J5X2NsaWVudChtZXNzLT5jaGFkZHIsIG1lc3MtPmhsZW4sIG1lc3MtPmh0eXBlLCBOVUxMLCAwKSkgfHwKLQkJICAhYWRkcmVzc19hdmFpbGFibGUoY29udGV4dCwgbGVhc2UtPmFkZHIpKQorCQkgICFhZGRyZXNzX2F2YWlsYWJsZShjb250ZXh0LCBsZWFzZS0+YWRkciwgbmV0aWQpKQogCQl7CiAJCSAgIGlmIChsZWFzZSkKIAkJICAgICB7CkBAIC00MTIsMTIgKzQxNSw5IEBACiAJICBpZiAoIW1lc3NhZ2UgJiYgCiAJICAgICAgIWxlYXNlICYmIAogCSAgICAgICghKGxlYXNlID0gbGVhc2VfYWxsb2NhdGUobWVzcy0+eWlhZGRyKSkpKQotCSAgICB7Ci0JICAgICAgbXlfc3lzbG9nKExPR19XQVJOSU5HLCBfKCJMaW1pdCBvZiAlZCBsZWFzZXMgZXhjZWVkZWQuIiksIGRhZW1vbi0+ZGhjcF9tYXgpOwotCSAgICAgIG1lc3NhZ2UgPSBfKCJubyBsZWFzZXMgbGVmdCIpOwotCSAgICB9Ci0JICAKLQkgIGlmICghbWVzc2FnZSAmJiAhKGNvbnRleHQgPSBuYXJyb3dfY29udGV4dChjb250ZXh0LCBtZXNzLT55aWFkZHIpKSkKKwkgICAgbWVzc2FnZSA9IF8oIm5vIGxlYXNlcyBsZWZ0Iik7CisJICAgIAorCSAgaWYgKCFtZXNzYWdlICYmICEoY29udGV4dCA9IG5hcnJvd19jb250ZXh0KGNvbnRleHQsIG1lc3MtPnlpYWRkciwgbmV0aWQpKSkKIAkgICAgbWVzc2FnZSA9IF8oIndyb25nIG5ldHdvcmsiKTsKIAkgICAgICAKIAkgIGlmICghbWVzc2FnZSkKQEAgLTQzNCw2ICs0MzQsNyBAQAogCSAgICAgIGlmIChob3N0bmFtZSkKIAkJbGVhc2Vfc2V0X2hvc3RuYW1lKGxlYXNlLCBob3N0bmFtZSwgZGFlbW9uLT5kb21haW5fc3VmZml4LCAxKTsgCiAJICAgICAgbGVhc2Vfc2V0X2V4cGlyZXMobGVhc2UsIDB4ZmZmZmZmZmYsIG5vdyk7IC8qIGluZmluaXRlIGxlYXNlICovCisJICAgICAgbGVhc2Vfc2V0X2ludGVyZmFjZShsZWFzZSwgaW50X2luZGV4KTsKIAkgICAgICAKIAkgICAgICBjbGVhcl9wYWNrZXQobWVzcywgZW5kKTsKIAkgICAgICBkb19vcHRpb25zKGNvbnRleHQsIG1lc3MsIGVuZCwgTlVMTCwgIApAQCAtNTI5LDggKzUzMCwxNCBAQAogCSAgICAgIHN0cnVjdCBkaGNwX2NvbmZpZyAqbmV3ID0gZmluZF9jb25maWcoZGFlbW9uLT5kaGNwX2NvbmYsIGNvbnRleHQsIE5VTEwsIDAsCiAJCQkJCQkgICAgbWVzcy0+Y2hhZGRyLCBtZXNzLT5obGVuLCAKIAkJCQkJCSAgICBtZXNzLT5odHlwZSwgaG9zdG5hbWUpOwotCSAgICAgIGlmICghaGF2ZV9jb25maWcobmV3LCBDT05GSUdfQ0xJRCkgJiYgIWhhdmVfY29uZmlnKG5ldywgQ09ORklHX0hXQUREUikpCi0JCWNvbmZpZyA9IG5ldzsKKwkgICAgICBpZiAobmV3ICYmICFoYXZlX2NvbmZpZyhuZXcsIENPTkZJR19DTElEKSAmJiAhaGF2ZV9jb25maWcobmV3LCBDT05GSUdfSFdBRERSKSkKKwkJeworCQkgIGNvbmZpZyA9IG5ldzsKKwkJICAvKiBzZXQgImtub3duIiB0YWcgZm9yIGtub3duIGhvc3RzICovCisJCSAga25vd25faWQubmV0ID0gImtub3duIjsKKwkJICBrbm93bl9pZC5uZXh0ID0gbmV0aWQ7CisJCSAgbmV0aWQgPSAma25vd25faWQ7CisJCX0KIAkgICAgfQogCX0KICAgICB9CkBAIC01NzMsNiArNTgwLDE1IEBACiAJbW9wdCA9IE9QVElPTl9WRU5ET1JfSUQ7CiAgICAgICBlbHNlIGlmICh2ZW5kb3ItPm1hdGNoX3R5cGUgPT0gTUFUQ0hfVVNFUikKIAltb3B0ID0gT1BUSU9OX1VTRVJfQ0xBU1M7IAorICAgICAgZWxzZSBpZiAodmVuZG9yLT5tYXRjaF90eXBlID09IE1BVENIX09QVElPTikKKwl7CisJICBpZiAob3B0aW9uX2ZpbmQobWVzcywgc3osIHZlbmRvci0+b3B0aW9uLCAxKSkKKwkgICAgeworCSAgICAgIHZlbmRvci0+bmV0aWQubmV4dCA9IG5ldGlkOworCSAgICAgIG5ldGlkID0gJnZlbmRvci0+bmV0aWQ7CisJICAgIH0KKwkgIGNvbnRpbnVlOworCX0KICAgICAgIGVsc2UKIAljb250aW51ZTsKIApAQCAtNjUxLDcgKzY2Nyw3IEBACiAgICAgICByZXR1cm4gMDsKIAogICAgIGNhc2UgREhDUFJFTEVBU0U6Ci0gICAgICBpZiAoIShjb250ZXh0ID0gbmFycm93X2NvbnRleHQoY29udGV4dCwgbWVzcy0+Y2lhZGRyKSkgfHwKKyAgICAgIGlmICghKGNvbnRleHQgPSBuYXJyb3dfY29udGV4dChjb250ZXh0LCBtZXNzLT5jaWFkZHIsIG5ldGlkKSkgfHwKIAkgICEob3B0ID0gb3B0aW9uX2ZpbmQobWVzcywgc3osIE9QVElPTl9TRVJWRVJfSURFTlRJRklFUiwgSU5BRERSU1opKSB8fAogCSAgKGNvbnRleHQtPmxvY2FsLnNfYWRkciAhPSBvcHRpb25fYWRkcihvcHQpLnNfYWRkcikpCiAJcmV0dXJuIDA7CkBAIC03MDksOSArNzI1LDkgQEAKIAkgIAogCSAgaWYgKGNvbmYuc19hZGRyKQogCSAgICBtZXNzLT55aWFkZHIgPSBjb25mOwotCSAgZWxzZSBpZiAobGVhc2UgJiYgYWRkcmVzc19hdmFpbGFibGUoY29udGV4dCwgbGVhc2UtPmFkZHIpKQorCSAgZWxzZSBpZiAobGVhc2UgJiYgYWRkcmVzc19hdmFpbGFibGUoY29udGV4dCwgbGVhc2UtPmFkZHIsIG5ldGlkKSkKIAkgICAgbWVzcy0+eWlhZGRyID0gbGVhc2UtPmFkZHI7Ci0JICBlbHNlIGlmIChvcHQgJiYgYWRkcmVzc19hdmFpbGFibGUoY29udGV4dCwgYWRkcikgJiYgIWxlYXNlX2ZpbmRfYnlfYWRkcihhZGRyKSAmJiAKKwkgIGVsc2UgaWYgKG9wdCAmJiBhZGRyZXNzX2F2YWlsYWJsZShjb250ZXh0LCBhZGRyLCBuZXRpZCkgJiYgIWxlYXNlX2ZpbmRfYnlfYWRkcihhZGRyKSAmJiAKIAkJICAgIWNvbmZpZ19maW5kX2J5X2FkZHJlc3MoZGFlbW9uLT5kaGNwX2NvbmYsIGFkZHIpKQogCSAgICBtZXNzLT55aWFkZHIgPSBhZGRyOwogCSAgZWxzZSBpZiAoZW1hY19sZW4gPT0gMCkKQEAgLTcyMiw3ICs3MzgsNyBAQAogICAgICAgCiAgICAgICBsb2dfcGFja2V0KCJESVNDT1ZFUiIsIG9wdCA/IG9wdGlvbl9wdHIob3B0KSA6IE5VTEwsIGVtYWMsIGVtYWNfbGVuLCBpZmFjZV9uYW1lLCBtZXNzYWdlKTsgCiAKLSAgICAgIGlmIChtZXNzYWdlIHx8ICEoY29udGV4dCA9IG5hcnJvd19jb250ZXh0KGNvbnRleHQsIG1lc3MtPnlpYWRkcikpKQorICAgICAgaWYgKG1lc3NhZ2UgfHwgIShjb250ZXh0ID0gbmFycm93X2NvbnRleHQoY29udGV4dCwgbWVzcy0+eWlhZGRyLCBuZXRpZCkpKQogCXJldHVybiAwOwogCiAgICAgICBsb2dfcGFja2V0KCJPRkZFUiIgLCAmbWVzcy0+eWlhZGRyLCBlbWFjLCBlbWFjX2xlbiwgaWZhY2VfbmFtZSwgTlVMTCk7CkBAIC03MzMsNyArNzQ5LDcgQEAKIAkgIG5ldGlkID0gJmNvbnRleHQtPm5ldGlkOwogCX0KICAgICAgICAKLSAgICAgIHRpbWUgPSBjYWxjX3RpbWUoY29udGV4dCwgY29uZmlnLCBsZWFzZSwgb3B0aW9uX2ZpbmQobWVzcywgc3osIE9QVElPTl9MRUFTRV9USU1FLCA0KSwgbm93KTsKKyAgICAgIHRpbWUgPSBjYWxjX3RpbWUoY29udGV4dCwgY29uZmlnLCBvcHRpb25fZmluZChtZXNzLCBzeiwgT1BUSU9OX0xFQVNFX1RJTUUsIDQpKTsKICAgICAgIGNsZWFyX3BhY2tldChtZXNzLCBlbmQpOwogICAgICAgb3B0aW9uX3B1dChtZXNzLCBlbmQsIE9QVElPTl9NRVNTQUdFX1RZUEUsIDEsIERIQ1BPRkZFUik7CiAgICAgICBvcHRpb25fcHV0KG1lc3MsIGVuZCwgT1BUSU9OX1NFUlZFUl9JREVOVElGSUVSLCBJTkFERFJTWiwgbnRvaGwoY29udGV4dC0+bG9jYWwuc19hZGRyKSk7CkBAIC03ODYsNyArODAyLDEyIEBACiAJCXJldHVybiAwOwogCSAgICAgIAogCSAgICAgIGlmIChsZWFzZSAmJiBsZWFzZS0+YWRkci5zX2FkZHIgIT0gbWVzcy0+eWlhZGRyLnNfYWRkcikKLQkJbWVzc2FnZSA9IF8oIndyb25nIGFkZHJlc3MiKTsKKwkJeworCQkgIG1lc3NhZ2UgPSBfKCJ3cm9uZyBhZGRyZXNzIik7CisJCSAgLyogYXZvaWQgbG9vcHMgd2hlbiBjbGllbnQgYnJhaW4tZGVhZCAqLworCQkgIGxlYXNlX3BydW5lKGxlYXNlLCBub3cpOworCQkgIGxlYXNlID0gTlVMTDsKKwkJfQogCSAgICB9CiAJfQogICAgICAgZWxzZQpAQCAtODIwLDcgKzg0MSw3IEBACiAJICAgICAgaWYgKGNvbnRleHQtPnJvdXRlci5zX2FkZHIgPT0gY29uZmlnLT5hZGRyLnNfYWRkcikKIAkJYnJlYWs7CiAJICAKLQkgIGlmICghKGNvbnRleHQgPSBuYXJyb3dfY29udGV4dChjb250ZXh0LCBtZXNzLT55aWFkZHIpKSkKKwkgIGlmICghKGNvbnRleHQgPSBuYXJyb3dfY29udGV4dChjb250ZXh0LCBtZXNzLT55aWFkZHIsIG5ldGlkKSkpCiAJICAgIHsKIAkgICAgICAvKiBJZiBhIG1hY2hpbmUgbW92ZXMgbmV0d29ya3Mgd2hpbHN0IGl0IGhhcyBhIGxlYXNlLCB3ZSBjYXRjaCB0aGF0IGhlcmUuICovCiAJICAgICAgbWVzc2FnZSA9IF8oIndyb25nIG5ldHdvcmsiKTsKQEAgLTgyOSw3ICs4NTAsNyBAQAogCSAgICB9CiAJICAKIAkgIC8qIENoZWNrIGZvciByZW5ld2FsIG9mIGEgbGVhc2Ugd2hpY2ggaXMgb3V0c2lkZSB0aGUgYWxsb3dlZCByYW5nZS4gKi8KLQkgIGVsc2UgaWYgKCFhZGRyZXNzX2F2YWlsYWJsZShjb250ZXh0LCBtZXNzLT55aWFkZHIpICYmCisJICBlbHNlIGlmICghYWRkcmVzc19hdmFpbGFibGUoY29udGV4dCwgbWVzcy0+eWlhZGRyLCBuZXRpZCkgJiYKIAkJICAgKCFoYXZlX2NvbmZpZyhjb25maWcsIENPTkZJR19BRERSKSB8fCBjb25maWctPmFkZHIuc19hZGRyICE9IG1lc3MtPnlpYWRkci5zX2FkZHIpKQogCSAgICBtZXNzYWdlID0gXygiYWRkcmVzcyBub3QgYXZhaWxhYmxlIik7CiAJICAKQEAgLTkyOSw3ICs5NTAsNyBAQAogCSAgICAgIG5ldGlkID0gJmNvbnRleHQtPm5ldGlkOwogCSAgICB9CiAJCi0JICB0aW1lID0gY2FsY190aW1lKGNvbnRleHQsIGNvbmZpZywgTlVMTCwgb3B0aW9uX2ZpbmQobWVzcywgc3osIE9QVElPTl9MRUFTRV9USU1FLCA0KSwgbm93KTsKKwkgIHRpbWUgPSBjYWxjX3RpbWUoY29udGV4dCwgY29uZmlnLCBvcHRpb25fZmluZChtZXNzLCBzeiwgT1BUSU9OX0xFQVNFX1RJTUUsIDQpKTsKIAkgIGxlYXNlX3NldF9od2FkZHIobGVhc2UsIG1lc3MtPmNoYWRkciwgY2xpZCwgbWVzcy0+aGxlbiwgbWVzcy0+aHR5cGUsIGNsaWRfbGVuKTsKIAkgICAKIAkgIC8qIGlmIGFsbCB0aGUgbmV0aWRzIGluIHRoZSBpZ25vcmVfbmFtZSBsaXN0IGFyZSBwcmVzZW50LCBpZ25vcmUgY2xpZW50LXN1cHBsaWVkIG5hbWUgKi8KQEAgLTk0NSw3ICs5NjYsOCBAQAogCSAgICBsZWFzZV9zZXRfaG9zdG5hbWUobGVhc2UsIGhvc3RuYW1lLCBkYWVtb24tPmRvbWFpbl9zdWZmaXgsIGhvc3RuYW1lX2F1dGgpOwogCSAgCiAJICBsZWFzZV9zZXRfZXhwaXJlcyhsZWFzZSwgdGltZSwgbm93KTsKLQkgIAkKKwkgIGxlYXNlX3NldF9pbnRlcmZhY2UobGVhc2UsIGludF9pbmRleCk7CisJCiAJICBsb2dfcGFja2V0KCJBQ0siLCAmbWVzcy0+eWlhZGRyLCBlbWFjLCBlbWFjX2xlbiwgaWZhY2VfbmFtZSwgaG9zdG5hbWUpOyAgCiAJICAKIAkgIGNsZWFyX3BhY2tldChtZXNzLCBlbmQpOwpAQCAtOTcyLDcgKzk5NCw3IEBACiAgICAgICBsb2dfcGFja2V0KCJJTkZPUk0iLCAmbWVzcy0+Y2lhZGRyLCBlbWFjLCBlbWFjX2xlbiwgaWZhY2VfbmFtZSwgbWVzc2FnZSk7CiAgICAgIAogICAgICAgaWYgKG1lc3NhZ2UgfHwgbWVzcy0+Y2lhZGRyLnNfYWRkciA9PSAwIHx8IAotCSAgIShjb250ZXh0ID0gbmFycm93X2NvbnRleHQoY29udGV4dCwgbWVzcy0+Y2lhZGRyKSkpCisJICAhKGNvbnRleHQgPSBuYXJyb3dfY29udGV4dChjb250ZXh0LCBtZXNzLT5jaWFkZHIsIG5ldGlkKSkpCiAJcmV0dXJuIDA7CiAgICAgICAKICAgICAgIC8qIEZpbmQgYSBsZWFzdCBiYXNlZCBvbiBJUCBhZGRyZXNzIGlmIHdlIGRpZG4ndApAQCAtMTAwNCw3ICsxMDI2LDkgQEAKIAkgIGVsc2UKIAkgICAgdGltZSA9ICh1bnNpZ25lZCBpbnQpZGlmZnRpbWUobGVhc2UtPmV4cGlyZXMsIG5vdyk7CiAJICBvcHRpb25fcHV0KG1lc3MsIGVuZCwgT1BUSU9OX0xFQVNFX1RJTUUsIDQsIHRpbWUpOworCSAgbGVhc2Vfc2V0X2ludGVyZmFjZShsZWFzZSwgaW50X2luZGV4KTsKIAl9CisKICAgICAgIGRvX29wdGlvbnMoY29udGV4dCwgbWVzcywgZW5kLCByZXFfb3B0aW9ucywgaG9zdG5hbWUsIAogCQkgbmV0aWQsIHN1Ym5ldF9hZGRyLCBmcWRuX2ZsYWdzLCBib3JrZW5fb3B0LCBhZ2VudF9pZCk7CiAgICAgICAKQEAgLTEwNTAsOCArMTA3NCw3IEBACiAgIHJldHVybiBod2FkZHI7CiB9CiAKLXN0YXRpYyB1bnNpZ25lZCBpbnQgY2FsY190aW1lKHN0cnVjdCBkaGNwX2NvbnRleHQgKmNvbnRleHQsIHN0cnVjdCBkaGNwX2NvbmZpZyAqY29uZmlnLCAKLQkJCSAgICAgIHN0cnVjdCBkaGNwX2xlYXNlICpsZWFzZSwgdW5zaWduZWQgY2hhciAqb3B0LCB0aW1lX3Qgbm93KQorc3RhdGljIHVuc2lnbmVkIGludCBjYWxjX3RpbWUoc3RydWN0IGRoY3BfY29udGV4dCAqY29udGV4dCwgc3RydWN0IGRoY3BfY29uZmlnICpjb25maWcsIHVuc2lnbmVkIGNoYXIgKm9wdCkKIHsKICAgdW5zaWduZWQgaW50IHRpbWUgPSBoYXZlX2NvbmZpZyhjb25maWcsIENPTkZJR19USU1FKSA/IGNvbmZpZy0+bGVhc2VfdGltZSA6IGNvbnRleHQtPmxlYXNlX3RpbWU7CiAgIApAQCAtMTA2MywxNyArMTA4Niw2IEBACiAgICAgICBpZiAodGltZSA9PSAweGZmZmZmZmZmIHx8IChyZXFfdGltZSAhPSAweGZmZmZmZmZmICYmIHJlcV90aW1lIDwgdGltZSkpCiAJdGltZSA9IHJlcV90aW1lOwogICAgIH0KLSAgZWxzZSBpZiAobGVhc2UgJiYgbGVhc2UtPmV4cGlyZXMgIT0gMCAmJiBkaWZmdGltZShsZWFzZS0+ZXhwaXJlcywgbm93KSA+IDAuMCkKLSAgICB7Ci0gICAgICB1bnNpZ25lZCBpbnQgbGVhc2VfdGltZSA9ICh1bnNpZ25lZCBpbnQpZGlmZnRpbWUobGVhc2UtPmV4cGlyZXMsIG5vdyk7Ci0gICAgICAKLSAgICAgIC8qIHB1dCBhIGZsb29yIG9uIGxlYXNlLXJlbWFpbmluZyB0aW1lLiAqLwotICAgICAgaWYgKGxlYXNlX3RpbWUgPCAzNjAgKQotCWxlYXNlX3RpbWUgPSAzNjA7Ci0gICAgICAKLSAgICAgIGlmICh0aW1lID4gbGVhc2VfdGltZSkKLQl0aW1lID0gbGVhc2VfdGltZTsKLSAgICB9CiAKICAgcmV0dXJuIHRpbWU7CiB9CkBAIC0xMDkzLDcgKzExMDUsNyBAQAogICBmb3IgKGkgPSBvcHRpb25fbGVuKG9wdCk7IGkgPiAwOyBpLS0pCiAgICAgewogICAgICAgY2hhciBjID0gKnArKzsKLSAgICAgIGlmIChpc3ByaW50KGMpKQorICAgICAgaWYgKGlzcHJpbnQoKGludCljKSkKIAkqYnVmKysgPSBjOwogICAgIH0KICAgKmJ1ZiA9IDA7IC8qIGFkZCB0ZXJtaW5hdG9yICovCkBAIC0xMjM2LDYgKzEyNDgsNyBAQAogICB1bnNpZ25lZCBjaGFyICpwID0gZGhjcF9za2lwX29wdHMoJm1lc3MtPm9wdGlvbnNbMF0gKyBzaXplb2YodTMyKSk7CiAgIHVuc2lnbmVkIGNoYXIgKm92ZXJsb2FkOwogICBzaXplX3QgcmV0OworICBzdHJ1Y3QgZGhjcF9uZXRpZF9saXN0ICppZF9saXN0OwogCiAgIC8qIFdlIGRvIGxvZ2dpbmcgdG9vICovCiAgIGlmIChuZXRpZCAmJiAoZGFlbW9uLT5vcHRpb25zICYgT1BUX0xPR19PUFRTKSkKQEAgLTEyNzAsOSArMTI4MywxNCBAQAogICAgIH0KIAogICAqcCsrID0gT1BUSU9OX0VORDsKKyAgCiAgIGlmIChkYWVtb24tPm9wdGlvbnMgJiBPUFRfTE9HX09QVFMpCiAgICAgbG9nX29wdGlvbnMoJm1lc3MtPm9wdGlvbnNbMF0gKyBzaXplb2YodTMyKSk7CiAgIAorICBmb3IgKGlkX2xpc3QgPSBkYWVtb24tPmZvcmNlX2Jyb2FkY2FzdDsgaWRfbGlzdDsgaWRfbGlzdCA9IGlkX2xpc3QtPm5leHQpCisgICAgaWYgKG1hdGNoX25ldGlkKGlkX2xpc3QtPmxpc3QsIG5ldGlkLCAwKSkKKyAgICAgIG1lc3MtPmZsYWdzIHw9IGh0b25zKDB4ODAwMCk7IC8qIGZvcmNlIGJyb2FkY2FzdCAqLworICAKICAgcmV0ID0gKHNpemVfdCkocCAtICh1bnNpZ25lZCBjaGFyICopbWVzcyk7CiAgIAogICBpZiAocmV0IDwgTUlOX1BBQ0tFVFNaKQpAQCAtMTQ2OCw2ICsxNDg2LDcgQEAKICAgdW5zaWduZWQgY2hhciAqcCwgKmVuZCA9IGFnZW50X2lkID8gYWdlbnRfaWQgOiByZWFsX2VuZDsKICAgaW50IGksIGxlbiwgZm9yY2VfZW5jYXAgPSAwOwogICB1bnNpZ25lZCBjaGFyIGYwID0gMCwgczAgPSAwOworICBpbnQgZG9uZV9maWxlID0gMCwgZG9uZV9zZXJ2ZXIgPSAwOwogCiAgIC8qIGxvZ2dpbmcgKi8KICAgaWYgKChkYWVtb24tPm9wdGlvbnMgJiBPUFRfTE9HX09QVFMpICYmIHJlcV9vcHRpb25zKQpAQCAtMTQ3NiwxMiArMTQ5NSwxMiBAQAogICAgICAgZm9yIChpID0gMDsgcmVxX29wdGlvbnNbaV0gIT0gT1BUSU9OX0VORDsgaSsrKQogCXsKIAkgIGNoYXIgKnMgPSBvcHRpb25fc3RyaW5nKHJlcV9vcHRpb25zW2ldKTsKLQkgIHEgKz1zbnByaW50ZihxLCBNQVhETkFNRSAtIChxIC0gZGFlbW9uLT5uYW1lYnVmZiksCi0JCSAgICAgICAiJWQlcyVzJXMiLCAKLQkJICAgICAgIHJlcV9vcHRpb25zW2ldLAotCQkgICAgICAgcyA/ICI6IiA6ICIiLAotCQkgICAgICAgcyA/IHMgOiAiIiwgCi0JCSAgICAgICByZXFfb3B0aW9uc1tpKzFdID09IE9QVElPTl9FTkQgPyAiIiA6ICIsICIpOworCSAgcSArPSBzbnByaW50ZihxLCBNQVhETkFNRSAtIChxIC0gZGFlbW9uLT5uYW1lYnVmZiksCisJCQkiJWQlcyVzJXMiLCAKKwkJCXJlcV9vcHRpb25zW2ldLAorCQkJcyA/ICI6IiA6ICIiLAorCQkJcyA/IHMgOiAiIiwgCisJCQlyZXFfb3B0aW9uc1tpKzFdID09IE9QVElPTl9FTkQgPyAiIiA6ICIsICIpOwogCSAgaWYgKHJlcV9vcHRpb25zW2krMV0gPT0gT1BUSU9OX0VORCB8fCAocSAtIGRhZW1vbi0+bmFtZWJ1ZmYpID4gNDApCiAJICAgIHsKIAkgICAgICBxID0gZGFlbW9uLT5uYW1lYnVmZjsKQEAgLTE1MDQsMzMgKzE1MjMsMzAgQEAKICAgCiAgIC8qIFNlZSBpZiB3ZSBjYW4gc2VuZCB0aGUgYm9vdCBzdHVmZiBhcyBvcHRpb25zLgogICAgICBUbyBkbyB0aGlzIHdlIG5lZWQgYSByZXF1ZXN0ZWQgb3B0aW9uIGxpc3QsIEJPT1RQCi0gICAgIGFuZCB2ZXJ5IG9sZCBESENQIGNsaWVudHMgd29uJ3QgaGF2ZSB0aGlzLiAKKyAgICAgYW5kIHZlcnkgb2xkIERIQ1AgY2xpZW50cyB3b24ndCBoYXZlIHRoaXMsIHdlIGFsc28gCisgICAgIHByb3ZpZGUgYW4gbWFudWFsIG9wdGlvbiB0byBkaXNhYmxlIGl0LgogICAgICBTb21lIFBYRSBST01zIGhhdmUgYnVncyAoc3VycHJpc2UhKSBhbmQgbmVlZCB6ZXJvLXRlcm1pbmF0ZWQgCiAgICAgIG5hbWVzLCBzbyB3ZSBhbHdheXMgc2VuZCB0aG9zZS4gKi8KICAgaWYgKGJvb3QpCiAgICAgewogICAgICAgaWYgKGJvb3QtPnNuYW1lKQotCXsKLQkgIGlmIChyZXFfb3B0aW9ucyAmJiBpbl9saXN0KHJlcV9vcHRpb25zLCBPUFRJT05fU05BTUUpKQorCXsJICAKKwkgIGlmICghKGRhZW1vbi0+b3B0aW9ucyAmIE9QVF9OT19PVkVSUklERSkgJiYKKwkgICAgICByZXFfb3B0aW9ucyAmJiAKKwkgICAgICBpbl9saXN0KHJlcV9vcHRpb25zLCBPUFRJT05fU05BTUUpKQogCSAgICBvcHRpb25fcHV0X3N0cmluZyhtZXNzLCBlbmQsIE9QVElPTl9TTkFNRSwgYm9vdC0+c25hbWUsIDEpOwogCSAgZWxzZQotCSAgICB7Ci0JICAgICAgaWYgKGRhZW1vbi0+b3B0aW9ucyAmIE9QVF9MT0dfT1BUUykKLQkJbXlfc3lzbG9nKExPR19JTkZPLCBfKCJzZXJ2ZXIgbmFtZTogJXMiKSwgYm9vdC0+c25hbWUpOwotCSAgICAgIHN0cm5jcHkoKGNoYXIgKiltZXNzLT5zbmFtZSwgYm9vdC0+c25hbWUsIHNpemVvZihtZXNzLT5zbmFtZSktMSk7Ci0JICAgIH0KKwkgICAgc3RybmNweSgoY2hhciAqKW1lc3MtPnNuYW1lLCBib290LT5zbmFtZSwgc2l6ZW9mKG1lc3MtPnNuYW1lKS0xKTsKIAl9CiAgICAgICAKICAgICAgIGlmIChib290LT5maWxlKQogCXsKLQkgIGlmIChyZXFfb3B0aW9ucyAmJiBpbl9saXN0KHJlcV9vcHRpb25zLCBPUFRJT05fRklMRU5BTUUpKQorCSAgaWYgKCEoZGFlbW9uLT5vcHRpb25zICYgT1BUX05PX09WRVJSSURFKSAmJgorCSAgICAgIHJlcV9vcHRpb25zICYmIAorCSAgICAgIGluX2xpc3QocmVxX29wdGlvbnMsIE9QVElPTl9GSUxFTkFNRSkpCiAJICAgIG9wdGlvbl9wdXRfc3RyaW5nKG1lc3MsIGVuZCwgT1BUSU9OX0ZJTEVOQU1FLCBib290LT5maWxlLCAxKTsKIAkgIGVsc2UKLQkgICAgewotCSAgICAgIGlmIChkYWVtb24tPm9wdGlvbnMgJiBPUFRfTE9HX09QVFMpCi0JCW15X3N5c2xvZyhMT0dfSU5GTywgXygiYm9vdGZpbGUgbmFtZTogJXMiKSwgYm9vdC0+ZmlsZSk7Ci0JICAgICAgc3RybmNweSgoY2hhciAqKW1lc3MtPmZpbGUsIGJvb3QtPmZpbGUsIHNpemVvZihtZXNzLT5maWxlKS0xKTsKLQkgICAgfQorCSAgICBzdHJuY3B5KChjaGFyICopbWVzcy0+ZmlsZSwgYm9vdC0+ZmlsZSwgc2l6ZW9mKG1lc3MtPmZpbGUpLTEpOwogCX0KICAgICAgIAogICAgICAgaWYgKGJvb3QtPm5leHRfc2VydmVyLnNfYWRkcikKQEAgLTE1MzksMTIgKzE1NTUsMzkgQEAKICAgICAgIGlmIChkYWVtb24tPm9wdGlvbnMgJiBPUFRfTE9HX09QVFMpCiAJbXlfc3lzbG9nKExPR19JTkZPLCBfKCJuZXh0IHNlcnZlcjogJXMiKSwgaW5ldF9udG9hKG1lc3MtPnNpYWRkcikpOwogICAgIH0KKyAgZWxzZQorICAgIC8qIFVzZSB0aGUgdmFsdWVzIG9mIHRoZSByZWxldmFudCBvcHRpb25zIGlmIG5vIGRoY3AtYm9vdCBnaXZlbiBhbmQKKyAgICAgICB0aGV5J3JlIG5vIGV4cGxpY2l0bHkgYXNrZWQgZm9yIGFzIG9wdGlvbnMuICovCisgICAgeworICAgICAgaWYgKCghcmVxX29wdGlvbnMgfHwgIWluX2xpc3QocmVxX29wdGlvbnMsIE9QVElPTl9GSUxFTkFNRSkpICYmCisJICAob3B0ID0gb3B0aW9uX2ZpbmQyKG5ldGlkLCBjb25maWdfb3B0cywgT1BUSU9OX0ZJTEVOQU1FKSkpCisJeworCSAgc3RybmNweSgoY2hhciAqKW1lc3MtPmZpbGUsIChjaGFyICopb3B0LT52YWwsIHNpemVvZihtZXNzLT5maWxlKS0xKTsKKwkgIGRvbmVfZmlsZSA9IDE7CisJfQorCisgICAgICBpZiAoKCFyZXFfb3B0aW9ucyB8fCAhaW5fbGlzdChyZXFfb3B0aW9ucywgT1BUSU9OX1NOQU1FKSkgJiYKKwkgIChvcHQgPSBvcHRpb25fZmluZDIobmV0aWQsIGNvbmZpZ19vcHRzLCBPUFRJT05fU05BTUUpKSkKKwl7CisJICBzdHJuY3B5KChjaGFyICopbWVzcy0+c25hbWUsIChjaGFyICopb3B0LT52YWwsIHNpemVvZihtZXNzLT5zbmFtZSktMSk7CisJICBkb25lX3NlcnZlciA9IDE7CisJfQorICAgIH0KICAgCisgIGlmIChkYWVtb24tPm9wdGlvbnMgJiBPUFRfTE9HX09QVFMpCisgICAgeyAKKyAgICAgIGlmIChzdHJsZW4oKGNoYXIgKiltZXNzLT5maWxlKSAhPSAwKQorCW15X3N5c2xvZyhMT0dfSU5GTywgXygiYm9vdGZpbGUgbmFtZTogJXMiKSwgKGNoYXIgKiltZXNzLT5maWxlKTsKKyAgICAgIAorICAgICAgaWYgKHN0cmxlbigoY2hhciAqKW1lc3MtPnNuYW1lKSAhPSAwKQorCW15X3N5c2xvZyhMT0dfSU5GTywgXygic2VydmVyIG5hbWU6ICVzIiksIChjaGFyICopbWVzcy0+c25hbWUpOworICAgIH0gCisgICAgICAKICAgLyogV2UgZG9uJ3Qgd2FudCB0byBkbyBvcHRpb24tb3ZlcmxvYWQgZm9yIEJPT1RQLCBzbyBtYWtlIHRoZSBmaWxlIGFuZCBzbmFtZQogICAgICBmaWVsZHMgbG9vayBsaWtlIHRoZXkgYXJlIGluIHVzZSwgZXZlbiB3aGVuIHRoZXkgYXJlbid0LiBUaGlzIGdldHMgcmVzdG9yZWQKICAgICAgYXQgdGhlIGVuZCBvZiB0aGlzIGZ1bmN0aW9uLiAqLwogCi0gIGlmICghcmVxX29wdGlvbnMpCisgIGlmICghcmVxX29wdGlvbnMgfHwgKGRhZW1vbi0+b3B0aW9ucyAmIE9QVF9OT19PVkVSUklERSkpCiAgICAgewogICAgICAgZjAgPSBtZXNzLT5maWxlWzBdOwogICAgICAgbWVzcy0+ZmlsZVswXSA9IDE7CkBAIC0xNTg1LDEyICsxNjI4LDExIEBACiAgICAgICAhb3B0aW9uX2ZpbmQyKG5ldGlkLCBjb25maWdfb3B0cywgT1BUSU9OX0RPTUFJTk5BTUUpKQogICAgIG9wdGlvbl9wdXRfc3RyaW5nKG1lc3MsIGVuZCwgT1BUSU9OX0RPTUFJTk5BTUUsIGRhZW1vbi0+ZG9tYWluX3N1ZmZpeCwgbnVsbF90ZXJtKTsKICAKLSAgLyogTm90ZSB0aGF0IHdlIGlnbm9yZSBhdHRlbXB0cyB0byBzZXQgdGhlIGhvc3RuYW1lIHVzaW5nIAotICAgICAtLWRoY3Atb3B0aW9uPTEyLDxuYW1lPiBhbmQgdGhlIGZxZG4gdXNpbmcKLSAgICAgLS1kaGMtb3B0aW9uPTgxLDxuYW1lPiAqLworICAvKiBOb3RlIHRoYXQgd2UgaWdub3JlIGF0dGVtcHRzIHRvIHNldCB0aGUgZnFkbiB1c2luZyAtLWRoYy1vcHRpb249ODEsPG5hbWU+ICovCiAgIGlmIChob3N0bmFtZSkKICAgICB7Ci0gICAgICBpZiAoaW5fbGlzdChyZXFfb3B0aW9ucywgT1BUSU9OX0hPU1ROQU1FKSkKKyAgICAgIGlmIChpbl9saXN0KHJlcV9vcHRpb25zLCBPUFRJT05fSE9TVE5BTUUpICYmCisJICAhb3B0aW9uX2ZpbmQyKG5ldGlkLCBjb25maWdfb3B0cywgT1BUSU9OX0hPU1ROQU1FKSkKIAlvcHRpb25fcHV0X3N0cmluZyhtZXNzLCBlbmQsIE9QVElPTl9IT1NUTkFNRSwgaG9zdG5hbWUsIG51bGxfdGVybSk7CiAgICAgICAKICAgICAgIGlmIChmcWRuX2ZsYWdzICE9IDApCkBAIC0xNjM2LDQxICsxNjc4LDU0IEBACiAKICAgZm9yIChvcHQgPSBjb25maWdfb3B0czsgb3B0OyBvcHQgPSBvcHQtPm5leHQpCiAgICAgeworICAgICAgaW50IG9wdG5vID0gb3B0LT5vcHQ7CisKICAgICAgIC8qIHdhcyBpdCBhc2tlZCBmb3IsIG9yIGFyZSB3ZSBzZW5kaW5nIGl0IGFueXdheT8gKi8KLSAgICAgIGlmICghKG9wdC0+ZmxhZ3MgJiBESE9QVF9GT1JDRSkgJiYgIWluX2xpc3QocmVxX29wdGlvbnMsIG9wdC0+b3B0KSkKKyAgICAgIGlmICghKG9wdC0+ZmxhZ3MgJiBESE9QVF9GT1JDRSkgJiYgIWluX2xpc3QocmVxX29wdGlvbnMsIG9wdG5vKSkKIAljb250aW51ZTsKICAgICAgIAogICAgICAgLyogcHJvaGliaXQgc29tZSB1c2VkLWludGVybmFsbHkgb3B0aW9ucyAqLwotICAgICAgaWYgKG9wdC0+b3B0ID09IE9QVElPTl9IT1NUTkFNRSB8fAotCSAgb3B0LT5vcHQgPT0gT1BUSU9OX0NMSUVOVF9GUUROIHx8Ci0JICBvcHQtPm9wdCA9PSBPUFRJT05fTUFYTUVTU0FHRSB8fAotCSAgb3B0LT5vcHQgPT0gT1BUSU9OX09WRVJMT0FEIHx8Ci0JICBvcHQtPm9wdCA9PSBPUFRJT05fUEFEIHx8Ci0JICBvcHQtPm9wdCA9PSBPUFRJT05fRU5EKQorICAgICAgaWYgKG9wdG5vID09IE9QVElPTl9DTElFTlRfRlFETiB8fAorCSAgb3B0bm8gPT0gT1BUSU9OX01BWE1FU1NBR0UgfHwKKwkgIG9wdG5vID09IE9QVElPTl9PVkVSTE9BRCB8fAorCSAgb3B0bm8gPT0gT1BUSU9OX1BBRCB8fAorCSAgb3B0bm8gPT0gT1BUSU9OX0VORCkKKwljb250aW51ZTsKKworICAgICAgaWYgKG9wdG5vID09IE9QVElPTl9TTkFNRSAmJiBkb25lX3NlcnZlcikKKwljb250aW51ZTsKKworICAgICAgaWYgKG9wdG5vID09IE9QVElPTl9GSUxFTkFNRSAmJiBkb25lX2ZpbGUpCiAJY29udGludWU7CiAgICAgICAKICAgICAgIC8qIG5ldGlkcyBtYXRjaCBhbmQgbm90IGVuY2Fwc3VsYXRlZD8gKi8KLSAgICAgIGlmIChvcHQgIT0gb3B0aW9uX2ZpbmQyKG5ldGlkLCBjb25maWdfb3B0cywgb3B0LT5vcHQpKQorICAgICAgaWYgKG9wdCAhPSBvcHRpb25fZmluZDIobmV0aWQsIGNvbmZpZ19vcHRzLCBvcHRubykpCiAJY29udGludWU7CiAgICAgICAKICAgICAgIC8qIEZvciB0aGUgb3B0aW9ucyB3ZSBoYXZlIGRlZmF1bHQgdmFsdWVzIG9uCiAJIGRoYy1vcHRpb249PG9wdGlvbm5vPiBtZWFucyAiZG9uJ3QgaW5jbHVkZSB0aGlzIG9wdGlvbiIKIAkgbm90ICJpbmNsdWRlIGEgemVyby1sZW5ndGggb3B0aW9uIiAqLwogICAgICAgaWYgKG9wdC0+bGVuID09IDAgJiYgCi0JICAob3B0LT5vcHQgPT0gT1BUSU9OX05FVE1BU0sgfHwKLQkgICBvcHQtPm9wdCA9PSBPUFRJT05fQlJPQURDQVNUIHx8Ci0JICAgb3B0LT5vcHQgPT0gT1BUSU9OX1JPVVRFUiB8fAotCSAgIG9wdC0+b3B0ID09IE9QVElPTl9ETlNTRVJWRVIpKQorCSAgKG9wdG5vID09IE9QVElPTl9ORVRNQVNLIHx8CisJICAgb3B0bm8gPT0gT1BUSU9OX0JST0FEQ0FTVCB8fAorCSAgIG9wdG5vID09IE9QVElPTl9ST1VURVIgfHwKKwkgICBvcHRubyA9PSBPUFRJT05fRE5TU0VSVkVSIHx8IAorCSAgIG9wdG5vID09IE9QVElPTl9ET01BSU5OQU1FIHx8CisJICAgb3B0bm8gPT0gT1BUSU9OX0hPU1ROQU1FKSkKIAljb250aW51ZTsKKyAgICAgIAorICAgICAgLyogYWx3YXlzIGZvcmNlIG51bGwtdGVybSBmb3IgZmlsZW5hbWUgYW5zIHNlcnZlcm5hbWUgLSBidWdneSBQWEUgYWdhaW4uICovCisgICAgICBsZW4gPSBkb19vcHQob3B0LCBOVUxMLCBjb250ZXh0LT5sb2NhbCwgCisJCSAgIChvcHRubyA9PSBPUFRJT05fU05BTUUgfHwgb3B0bm8gPT0gT1BUSU9OX0ZJTEVOQU1FKSA/IDEgOiBudWxsX3Rlcm0pOwogCi0gICAgICBsZW4gPSBkb19vcHQob3B0LCBOVUxMLCBjb250ZXh0LT5sb2NhbCwgbnVsbF90ZXJtKTsKLSAgICAgIGlmICgocCA9IGZyZWVfc3BhY2UobWVzcywgZW5kLCBvcHQtPm9wdCwgbGVuKSkpCisgICAgICBpZiAoKHAgPSBmcmVlX3NwYWNlKG1lc3MsIGVuZCwgb3B0bm8sIGxlbikpKQogCXsKLQkgIGRvX29wdChvcHQsIHAsIGNvbnRleHQtPmxvY2FsLCBudWxsX3Rlcm0pOwotCisJICBkb19vcHQob3B0LCBwLCBjb250ZXh0LT5sb2NhbCwgCisJCSAob3B0bm8gPT0gT1BUSU9OX1NOQU1FIHx8IG9wdG5vID09IE9QVElPTl9GSUxFTkFNRSkgPyAxIDogbnVsbF90ZXJtKTsKKwkgIAogCSAgLyogSWYgd2Ugc2VuZCBhIHZlbmRvci1pZCwgcmV2aXNpdCB3aGljaCB2ZW5kb3Itb3BzIHdlIGNvbnNpZGVyIAogCSAgICAgaXQgYXBwcm9wcmlhdGUgdG8gc2VuZC4gKi8KLQkgIGlmIChvcHQtPm9wdCA9PSBPUFRJT05fVkVORE9SX0lEKQorCSAgaWYgKG9wdG5vID09IE9QVElPTl9WRU5ET1JfSUQpCiAJICAgIG1hdGNoX3ZlbmRvcl9vcHRzKHAgLSAyLCBjb25maWdfb3B0cyk7CiAJfSAgCiAgICAgfQpAQCAtMTczOCw3ICsxNzkzLDcgQEAKICAgICB9CiAKICAgLyogcmVzdG9yZSBCT09UUCBhbnRpLW92ZXJsb2FkIGhhY2sgKi8KLSAgaWYgKCFyZXFfb3B0aW9ucykKKyAgaWYgKCFyZXFfb3B0aW9ucyB8fCAoZGFlbW9uLT5vcHRpb25zICYgT1BUX05PX09WRVJSSURFKSkKICAgICB7CiAgICAgICBtZXNzLT5maWxlWzBdID0gZjA7CiAgICAgICBtZXNzLT5zbmFtZVswXSA9IHMwOwpkaWZmIC0tZ2l0IGEvc3JjL3RmdHAuYyBiL3NyYy90ZnRwLmMKaW5kZXggNWE4MGNlYi4uMDcxODA2ZSAxMDA2NDQKLS0tIGEvc3JjL3RmdHAuYworKysgYi9zcmMvdGZ0cC5jCkBAIC0yLDEyICsyLDE2IEBACiAKICAgIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9kaWZ5CiAgICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQotICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgdmVyc2lvbiAyIGRhdGVkIEp1bmUsIDE5OTEuCi0KKyAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLCBvcgorICAgKGF0IHlvdXIgb3B0aW9uKSB2ZXJzaW9uIDMgZGF0ZWQgMjkgSnVuZSwgMjAwNy4KKyAKICAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAogICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKICAgIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgICAgIAorICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KICovCiAKICNpbmNsdWRlICJkbnNtYXNxLmgiCkBAIC00NywxMSArNTEsMTcgQEAKICAgaW50IGlzX2VyciA9IDEsIGlmX2luZGV4ID0gMDsKICAgc3RydWN0IGluYW1lICp0bXA7CiAgIHN0cnVjdCB0ZnRwX3RyYW5zZmVyICp0cmFuc2ZlcjsKLQorICBpbnQgcG9ydCA9IGRhZW1vbi0+c3RhcnRfdGZ0cF9wb3J0OyAvKiBtYXkgYmUgemVybyB0byB1c2UgZXBoZW1lcmFsIHBvcnQgKi8KKyNpZiBkZWZpbmVkKElQX01UVV9ESVNDT1ZFUikgJiYgZGVmaW5lZChJUF9QTVRVRElTQ19ET05UKQorICBpbnQgbXR1ID0gSVBfUE1UVURJU0NfRE9OVDsKKyNlbmRpZgorICAKICAgdW5pb24gewogICAgIHN0cnVjdCBjbXNnaGRyIGFsaWduOyAvKiB0aGlzIGVuc3VyZXMgYWxpZ25tZW50ICovCi0jaWZkZWYgSEFWRV9MSU5VWF9ORVRXT1JLCisjaWYgZGVmaW5lZChIQVZFX0xJTlVYX05FVFdPUkspCiAgICAgY2hhciBjb250cm9sW0NNU0dfU1BBQ0Uoc2l6ZW9mKHN0cnVjdCBpbl9wa3RpbmZvKSldOworI2VsaWYgZGVmaW5lZChIQVZFX1NPTEFSSVNfTkVUV09SSykKKyAgICBjaGFyIGNvbnRyb2xbQ01TR19TUEFDRShzaXplb2YodW5zaWduZWQgaW50KSldOwogI2Vsc2UKICAgICBjaGFyIGNvbnRyb2xbQ01TR19TUEFDRShzaXplb2Yoc3RydWN0IHNvY2thZGRyX2RsKSldOwogI2VuZGlmCkBAIC05Niw3ICsxMDYsMTEgQEAKIAlpZiAoY21wdHItPmNtc2dfbGV2ZWwgPT0gSVBQUk9UT19JUCAmJiBjbXB0ci0+Y21zZ190eXBlID09IElQX1JFQ1ZEU1RBRERSKQogCSAgYWRkci5zaW5fYWRkciA9ICooKHN0cnVjdCBpbl9hZGRyICopQ01TR19EQVRBKGNtcHRyKSk7CiAJZWxzZSBpZiAoY21wdHItPmNtc2dfbGV2ZWwgPT0gSVBQUk9UT19JUCAmJiBjbXB0ci0+Y21zZ190eXBlID09IElQX1JFQ1ZJRikKLQkgIGlmX2luZGV4ID0gKChzdHJ1Y3Qgc29ja2FkZHJfZGwgKilDTVNHX0RBVEEoY21wdHIpKS0+c2RsX2luZGV4OworI2lmZGVmIEhBVkVfU09MQVJJU19ORVRXT1JLCisJICBpZl9pbmRleCA9ICooKHVuc2lnbmVkIGludCAqKUNNU0dfREFUQShjbXB0cikpOworI2Vsc2UKKyAgICAgICAgICBpZl9pbmRleCA9ICgoc3RydWN0IHNvY2thZGRyX2RsICopQ01TR19EQVRBKGNtcHRyKSktPnNkbF9pbmRleDsKKyNlbmRpZgogICAgICAgCiAgICAgICBpZiAoaWZfaW5kZXggPT0gMCB8fCAhaWZfaW5kZXh0b25hbWUoaWZfaW5kZXgsIGlmci5pZnJfbmFtZSkpCiAJcmV0dXJuOwpAQCAtMTE3LDggKzEzMSw3IEBACiAgICAgICAKICAgICB9CiAgIAotICAvKiB0ZWxsIGtlcm5lbCB0byB1c2UgZXBoZW1lcmFsIHBvcnQgKi8KLSAgYWRkci5zaW5fcG9ydCA9IDA7CisgIGFkZHIuc2luX3BvcnQgPSBodG9ucyhwb3J0KTsKICAgYWRkci5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKICNpZmRlZiBIQVZFX1NPQ0tBRERSX1NBX0xFTgogICBhZGRyLnNpbl9sZW4gPSBzaXplb2YoYWRkcik7CkBAIC0xNDEsMTMgKzE1NCwzMCBAQAogICB0cmFuc2Zlci0+ZmlsZSA9IE5VTEw7CiAgIHRyYW5zZmVyLT5vcHRfYmxvY2tzaXplID0gdHJhbnNmZXItPm9wdF90cmFuc2l6ZSA9IDA7CiAKLSAgaWYgKGJpbmQodHJhbnNmZXItPnNvY2tmZCwgKHN0cnVjdCBzb2NrYWRkciAqKSZhZGRyLCBzaXplb2YoYWRkcikpID09IC0xIHx8Ci0gICAgICAhZml4X2ZkKHRyYW5zZmVyLT5zb2NrZmQpKQorICAvKiBpZiB3ZSBoYXZlIGEgbmFpbGVkLWRvd24gcmFuZ2UsIGl0ZXJhdGUgdW50aWwgd2UgZmluZCBhIGZyZWUgb25lLiAqLworICB3aGlsZSAoMSkKICAgICB7Ci0gICAgICBmcmVlX3RyYW5zZmVyKHRyYW5zZmVyKTsKLSAgICAgIHJldHVybjsKKyAgICAgIGlmIChiaW5kKHRyYW5zZmVyLT5zb2NrZmQsIChzdHJ1Y3Qgc29ja2FkZHIgKikmYWRkciwgc2l6ZW9mKGFkZHIpKSA9PSAtMSB8fAorI2lmIGRlZmluZWQoSVBfTVRVX0RJU0NPVkVSKSAmJiBkZWZpbmVkKElQX1BNVFVESVNDX0RPTlQpCisJICBzZXRzb2Nrb3B0KHRyYW5zZmVyLT5zb2NrZmQsIFNPTF9JUCwgSVBfTVRVX0RJU0NPVkVSLCAmbXR1LCBzaXplb2YobXR1KSkgPT0gLTEgfHwKKyNlbmRpZgorCSAgIWZpeF9mZCh0cmFuc2Zlci0+c29ja2ZkKSkKKwl7CisJICBpZiAoZXJybm8gPT0gRUFERFJJTlVTRSAmJiBkYWVtb24tPnN0YXJ0X3RmdHBfcG9ydCAhPSAwKQorCSAgICB7CisJICAgICAgaWYgKCsrcG9ydCA8PSBkYWVtb24tPmVuZF90ZnRwX3BvcnQpCisJCXsgCisJCSAgYWRkci5zaW5fcG9ydCA9IGh0b25zKHBvcnQpOworCQkgIGNvbnRpbnVlOworCQl9CisJICAgICAgbXlfc3lzbG9nKExPR19FUlIsIF8oInVuYWJsZSB0byBnZXQgZnJlZSBwb3J0IGZvciBURlRQIikpOworCSAgICB9CisJICBmcmVlX3RyYW5zZmVyKHRyYW5zZmVyKTsKKwkgIHJldHVybjsKKwl9CisgICAgICBicmVhazsKICAgICB9Ci0KKyAgCiAgIHAgPSBwYWNrZXQgKyAyOwogICBlbmQgPSBwYWNrZXQgKyBsZW47CiAKQEAgLTM2Miw3ICszOTIsNyBAQAogCQkgICAgewogCQkgICAgICBjaGFyICpxLCAqcjsKIAkJICAgICAgZm9yIChxID0gciA9IGVycjsgKnI7IHIrKykKLQkJCWlmIChpc3ByaW50KCpyKSkKKwkJCWlmIChpc3ByaW50KChpbnQpKnIpKQogCQkJICAqKHErKykgPSAqcjsKIAkJICAgICAgKnEgPSAwOwogCQkgICAgfQpkaWZmIC0tZ2l0IGEvc3JjL3V0aWwuYyBiL3NyYy91dGlsLmMKaW5kZXggZjc0MWU3Yi4uMmY1ZDQ5MyAxMDA2NDQKLS0tIGEvc3JjL3V0aWwuYworKysgYi9zcmMvdXRpbC5jCkBAIC0xLDE2ICsxLDE5IEBACi0vKiBkbnNtYXNxIGlzIENvcHlyaWdodCAoYykgMjAwMCAtIDIwMDUgU2ltb24gS2VsbGV5CisvKiBkbnNtYXNxIGlzIENvcHlyaWdodCAoYykgMjAwMC0yMDA3IFNpbW9uIEtlbGxleQogCiAgICBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQogICAgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMiBkYXRlZCBKdW5lLCAxOTkxLgotCisgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyB2ZXJzaW9uIDIgZGF0ZWQgSnVuZSwgMTk5MSwgb3IKKyAgIChhdCB5b3VyIG9wdGlvbikgdmVyc2lvbiAzIGRhdGVkIDI5IEp1bmUsIDIwMDcuCisgCiAgICBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCiAgICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICAgICAKKyAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uCiAqLwogCi0KIC8qIFNvbWUgY29kZSBpbiB0aGlzIGZpbGUgY29udHJpYnV0ZWQgYnkgUm9iIEZ1bmsuICovCiAKICNpbmNsdWRlICJkbnNtYXNxLmgiCkBAIC0zNDQsNyArMzQ3LDcgQEAKIHsKICAgdm9pZCAqbmV3OwogCi0gIGlmIChzaXplIDw9IGlvdi0+aW92X2xlbikKKyAgaWYgKHNpemUgPD0gKHNpemVfdClpb3YtPmlvdl9sZW4pCiAgICAgcmV0dXJuIDE7CiAKICAgaWYgKCEobmV3ID0gd2hpbmVfbWFsbG9jKHNpemUpKSkK