From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 From: Denis Arnaud To: git-commits@fedoraproject.org Subject: [rpms/soci] epel10: Removed deprecated patches. Date: Sat, 27 Jun 2026 21:55:00 GMT Message-ID: <178259730089.1.258840280774741757.rpms-soci-efd925473cdd@fedoraproject.org> List-ID: X-Git-Repo: rpms/soci X-Git-Branch: epel10 X-Git-Rev: efd925473cdd6db681d7281bd54a908875c4b569 QSBuZXcgY29tbWl0IGhhcyBiZWVuIHB1c2hlZC4KClJlcG8gICA6IHJwbXMvc29jaQpCcmFuY2gg OiBlcGVsMTAKQ29tbWl0IDogZWZkOTI1NDczY2RkNmRiNjgxZDcyODFiZDU0YTkwODg3NWM0YjU2 OQpBdXRob3IgOiBEZW5pcyBBcm5hdWQgPGRlbmlzLmFybmF1ZF9mZWRvcmFAbTR4Lm9yZz4KRGF0 ZSAgIDogMjAxMS0xMS0wMVQwMDowODozMCswMTowMApTdGF0cyAgOiArMC8tNjIyNDUgaW4gNCBm aWxlKHMpClVSTCAgICA6IGh0dHBzOi8vc3JjLmZlZG9yYXByb2plY3Qub3JnL3JwbXMvc29jaS9j L2VmZDkyNTQ3M2NkZDZkYjY4MWQ3MjgxYmQ1NGE5MDg4NzVjNGI1Njk/YnJhbmNoPWVwZWwxMAoK TG9nOgpSZW1vdmVkIGRlcHJlY2F0ZWQgcGF0Y2hlcy4KCi0tLQpkaWZmIC0tZ2l0IGEvc29jaS0z LjAuMC1hZGQtZG9jLnBhdGNoIGIvc29jaS0zLjAuMC1hZGQtZG9jLnBhdGNoCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NAppbmRleCA2OGQ2ODYyLi4wMDAwMDAwCi0tLSBhL3NvY2ktMy4wLjAtYWRk LWRvYy5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDM4OSArMCwwIEBACi1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svQVVUSE9SUyBzb2NpLTMuMC4wX3RyZXAzMDAvQVVUSE9SUwotLS0tIHNv Y2ktMy4wLjBfNC1wYWNrL0FVVEhPUlMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvQVVUSE9SUwkyMDA5LTA0LTE2IDE5OjM3OjEwLjAw MDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw5IEBACi0rCi0rRGF2aWQgQ291cnRuZXksIERldmVs b3BlciwgZGFjb3VydG5leSBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStNYXRldXN6IExvc2tv dCwgRGV2ZWxvcGVyLCBtbG9za290IGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotK01hY2llaiBT b2JjemFrLCBBZG1pbiBQcm9qZWN0IE1hbmFnZXIsIG1zb2JjemFrIGF0IHVzZXJzLnNvdXJjZWZv cmdlLm5ldAotK1Bhd2VsIEFsZWtzYW5kZXIgRmVkb3J5bnNraSwgRGV2ZWxvcGVyLCBwZmVkb3Ig YXQgdXNlcnMuc291cmNlZm9yZ2UubmV0Ci0rUmFmYWwgQm9icm93c2tpLCBEZXZlbG9wZXIsIHJi b2JybyBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStKZWFuLU1hcmMsIERldmVsb3Blciwgc2lk anRhbCBhdCB1c2Vycy5zb3VyY2Vmb3JnZS5uZXQKLStTdGVwaGVuIEh1dHRvbiwgRGV2ZWxvcGVy LCBzdGVwaGVuaHV0dG9uIGF0IHVzZXJzLnNvdXJjZWZvcmdlLm5ldAotKwotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL0lOU1RBTEwgc29jaS0zLjAuMF90cmVwMzAwL0lOU1RBTEwKLS0tLSBz b2NpLTMuMC4wXzQtcGFjay9JTlNUQUxMCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL0lOU1RBTEwJMjAxMS0wMi0wOCAyMjozOTo1Ny4w MDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMzY1IEBACi0rSW5zdGFsbGF0aW9uIEluc3RydWN0 aW9ucwotKyoqKioqKioqKioqKioqKioqKioqKioqKioKLSsKLStDb3B5cmlnaHQgKEMpIDE5OTQs IDE5OTUsIDE5OTYsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDQsIDIwMDUsCi0rMjAwNiwg MjAwNywgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsKLSsgICBD b3B5aW5nIGFuZCBkaXN0cmlidXRpb24gb2YgdGhpcyBmaWxlLCB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9uLAotK2FyZSBwZXJtaXR0ZWQgaW4gYW55IG1lZGl1bSB3aXRob3V0IHJveWFsdHkg cHJvdmlkZWQgdGhlIGNvcHlyaWdodAotK25vdGljZSBhbmQgdGhpcyBub3RpY2UgYXJlIHByZXNl cnZlZC4gIFRoaXMgZmlsZSBpcyBvZmZlcmVkIGFzLWlzLAotK3dpdGhvdXQgd2FycmFudHkgb2Yg YW55IGtpbmQuCi0rCi0rQmFzaWMgSW5zdGFsbGF0aW9uCi0rPT09PT09PT09PT09PT09PT09Ci0r Ci0rICAgQnJpZWZseSwgdGhlIHNoZWxsIGNvbW1hbmRzIGAuL2NvbmZpZ3VyZTsgbWFrZTsgbWFr ZSBpbnN0YWxsJyBzaG91bGQKLStjb25maWd1cmUsIGJ1aWxkLCBhbmQgaW5zdGFsbCB0aGlzIHBh Y2thZ2UuICBUaGUgZm9sbG93aW5nCi0rbW9yZS1kZXRhaWxlZCBpbnN0cnVjdGlvbnMgYXJlIGdl bmVyaWM7IHNlZSB0aGUgYFJFQURNRScgZmlsZSBmb3IKLStpbnN0cnVjdGlvbnMgc3BlY2lmaWMg dG8gdGhpcyBwYWNrYWdlLiAgU29tZSBwYWNrYWdlcyBwcm92aWRlIHRoaXMKLStgSU5TVEFMTCcg ZmlsZSBidXQgZG8gbm90IGltcGxlbWVudCBhbGwgb2YgdGhlIGZlYXR1cmVzIGRvY3VtZW50ZWQK LStiZWxvdy4gIFRoZSBsYWNrIG9mIGFuIG9wdGlvbmFsIGZlYXR1cmUgaW4gYSBnaXZlbiBwYWNr YWdlIGlzIG5vdAotK25lY2Vzc2FyaWx5IGEgYnVnLiAgTW9yZSByZWNvbW1lbmRhdGlvbnMgZm9y IEdOVSBwYWNrYWdlcyBjYW4gYmUgZm91bmQKLStpbiAqbm90ZSBNYWtlZmlsZSBDb252ZW50aW9u czogKHN0YW5kYXJkcylNYWtlZmlsZSBDb252ZW50aW9ucy4KLSsKLSsgICBUaGUgYGNvbmZpZ3Vy ZScgc2hlbGwgc2NyaXB0IGF0dGVtcHRzIHRvIGd1ZXNzIGNvcnJlY3QgdmFsdWVzIGZvcgotK3Zh cmlvdXMgc3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgdXNlZCBkdXJpbmcgY29tcGlsYXRpb24u ICBJdCB1c2VzCi0rdGhvc2UgdmFsdWVzIHRvIGNyZWF0ZSBhIGBNYWtlZmlsZScgaW4gZWFjaCBk aXJlY3Rvcnkgb2YgdGhlIHBhY2thZ2UuCi0rSXQgbWF5IGFsc28gY3JlYXRlIG9uZSBvciBtb3Jl IGAuaCcgZmlsZXMgY29udGFpbmluZyBzeXN0ZW0tZGVwZW5kZW50Ci0rZGVmaW5pdGlvbnMuICBG aW5hbGx5LCBpdCBjcmVhdGVzIGEgc2hlbGwgc2NyaXB0IGBjb25maWcuc3RhdHVzJyB0aGF0Ci0r eW91IGNhbiBydW4gaW4gdGhlIGZ1dHVyZSB0byByZWNyZWF0ZSB0aGUgY3VycmVudCBjb25maWd1 cmF0aW9uLCBhbmQgYQotK2ZpbGUgYGNvbmZpZy5sb2cnIGNvbnRhaW5pbmcgY29tcGlsZXIgb3V0 cHV0ICh1c2VmdWwgbWFpbmx5IGZvcgotK2RlYnVnZ2luZyBgY29uZmlndXJlJykuCi0rCi0rICAg SXQgY2FuIGFsc28gdXNlIGFuIG9wdGlvbmFsIGZpbGUgKHR5cGljYWxseSBjYWxsZWQgYGNvbmZp Zy5jYWNoZScKLSthbmQgZW5hYmxlZCB3aXRoIGAtLWNhY2hlLWZpbGU9Y29uZmlnLmNhY2hlJyBv ciBzaW1wbHkgYC1DJykgdGhhdCBzYXZlcwotK3RoZSByZXN1bHRzIG9mIGl0cyB0ZXN0cyB0byBz cGVlZCB1cCByZWNvbmZpZ3VyaW5nLiAgQ2FjaGluZyBpcwotK2Rpc2FibGVkIGJ5IGRlZmF1bHQg dG8gcHJldmVudCBwcm9ibGVtcyB3aXRoIGFjY2lkZW50YWwgdXNlIG9mIHN0YWxlCi0rY2FjaGUg ZmlsZXMuCi0rCi0rICAgSWYgeW91IG5lZWQgdG8gZG8gdW51c3VhbCB0aGluZ3MgdG8gY29tcGls ZSB0aGUgcGFja2FnZSwgcGxlYXNlIHRyeQotK3RvIGZpZ3VyZSBvdXQgaG93IGBjb25maWd1cmUn IGNvdWxkIGNoZWNrIHdoZXRoZXIgdG8gZG8gdGhlbSwgYW5kIG1haWwKLStkaWZmcyBvciBpbnN0 cnVjdGlvbnMgdG8gdGhlIGFkZHJlc3MgZ2l2ZW4gaW4gdGhlIGBSRUFETUUnIHNvIHRoZXkgY2Fu Ci0rYmUgY29uc2lkZXJlZCBmb3IgdGhlIG5leHQgcmVsZWFzZS4gIElmIHlvdSBhcmUgdXNpbmcg dGhlIGNhY2hlLCBhbmQgYXQKLStzb21lIHBvaW50IGBjb25maWcuY2FjaGUnIGNvbnRhaW5zIHJl c3VsdHMgeW91IGRvbid0IHdhbnQgdG8ga2VlcCwgeW91Ci0rbWF5IHJlbW92ZSBvciBlZGl0IGl0 LgotKwotKyAgIFRoZSBmaWxlIGBjb25maWd1cmUuYWMnIChvciBgY29uZmlndXJlLmluJykgaXMg dXNlZCB0byBjcmVhdGUKLStgY29uZmlndXJlJyBieSBhIHByb2dyYW0gY2FsbGVkIGBhdXRvY29u ZicuICBZb3UgbmVlZCBgY29uZmlndXJlLmFjJyBpZgotK3lvdSB3YW50IHRvIGNoYW5nZSBpdCBv ciByZWdlbmVyYXRlIGBjb25maWd1cmUnIHVzaW5nIGEgbmV3ZXIgdmVyc2lvbgotK29mIGBhdXRv Y29uZicuCi0rCi0rICAgVGhlIHNpbXBsZXN0IHdheSB0byBjb21waWxlIHRoaXMgcGFja2FnZSBp czoKLSsKLSsgIDEuIGBjZCcgdG8gdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoZSBwYWNrYWdl J3Mgc291cmNlIGNvZGUgYW5kIHR5cGUKLSsgICAgIGAuL2NvbmZpZ3VyZScgdG8gY29uZmlndXJl IHRoZSBwYWNrYWdlIGZvciB5b3VyIHN5c3RlbS4KLSsKLSsgICAgIFJ1bm5pbmcgYGNvbmZpZ3Vy ZScgbWlnaHQgdGFrZSBhIHdoaWxlLiAgV2hpbGUgcnVubmluZywgaXQgcHJpbnRzCi0rICAgICBz b21lIG1lc3NhZ2VzIHRlbGxpbmcgd2hpY2ggZmVhdHVyZXMgaXQgaXMgY2hlY2tpbmcgZm9yLgot KwotKyAgMi4gVHlwZSBgbWFrZScgdG8gY29tcGlsZSB0aGUgcGFja2FnZS4KLSsKLSsgIDMuIE9w dGlvbmFsbHksIHR5cGUgYG1ha2UgY2hlY2snIHRvIHJ1biBhbnkgc2VsZi10ZXN0cyB0aGF0IGNv bWUgd2l0aAotKyAgICAgdGhlIHBhY2thZ2UsIGdlbmVyYWxseSB1c2luZyB0aGUganVzdC1idWls dCB1bmluc3RhbGxlZCBiaW5hcmllcy4KLSsKLSsgIDQuIFR5cGUgYG1ha2UgaW5zdGFsbCcgdG8g aW5zdGFsbCB0aGUgcHJvZ3JhbXMgYW5kIGFueSBkYXRhIGZpbGVzIGFuZAotKyAgICAgZG9jdW1l bnRhdGlvbi4gIFdoZW4gaW5zdGFsbGluZyBpbnRvIGEgcHJlZml4IG93bmVkIGJ5IHJvb3QsIGl0 IGlzCi0rICAgICByZWNvbW1lbmRlZCB0aGF0IHRoZSBwYWNrYWdlIGJlIGNvbmZpZ3VyZWQgYW5k IGJ1aWx0IGFzIGEgcmVndWxhcgotKyAgICAgdXNlciwgYW5kIG9ubHkgdGhlIGBtYWtlIGluc3Rh bGwnIHBoYXNlIGV4ZWN1dGVkIHdpdGggcm9vdAotKyAgICAgcHJpdmlsZWdlcy4KLSsKLSsgIDUu IE9wdGlvbmFsbHksIHR5cGUgYG1ha2UgaW5zdGFsbGNoZWNrJyB0byByZXBlYXQgYW55IHNlbGYt dGVzdHMsIGJ1dAotKyAgICAgdGhpcyB0aW1lIHVzaW5nIHRoZSBiaW5hcmllcyBpbiB0aGVpciBm aW5hbCBpbnN0YWxsZWQgbG9jYXRpb24uCi0rICAgICBUaGlzIHRhcmdldCBkb2VzIG5vdCBpbnN0 YWxsIGFueXRoaW5nLiAgUnVubmluZyB0aGlzIHRhcmdldCBhcyBhCi0rICAgICByZWd1bGFyIHVz ZXIsIHBhcnRpY3VsYXJseSBpZiB0aGUgcHJpb3IgYG1ha2UgaW5zdGFsbCcgcmVxdWlyZWQKLSsg ICAgIHJvb3QgcHJpdmlsZWdlcywgdmVyaWZpZXMgdGhhdCB0aGUgaW5zdGFsbGF0aW9uIGNvbXBs ZXRlZAotKyAgICAgY29ycmVjdGx5LgotKwotKyAgNi4gWW91IGNhbiByZW1vdmUgdGhlIHByb2dy YW0gYmluYXJpZXMgYW5kIG9iamVjdCBmaWxlcyBmcm9tIHRoZQotKyAgICAgc291cmNlIGNvZGUg ZGlyZWN0b3J5IGJ5IHR5cGluZyBgbWFrZSBjbGVhbicuICBUbyBhbHNvIHJlbW92ZSB0aGUKLSsg ICAgIGZpbGVzIHRoYXQgYGNvbmZpZ3VyZScgY3JlYXRlZCAoc28geW91IGNhbiBjb21waWxlIHRo ZSBwYWNrYWdlIGZvcgotKyAgICAgYSBkaWZmZXJlbnQga2luZCBvZiBjb21wdXRlciksIHR5cGUg YG1ha2UgZGlzdGNsZWFuJy4gIFRoZXJlIGlzCi0rICAgICBhbHNvIGEgYG1ha2UgbWFpbnRhaW5l ci1jbGVhbicgdGFyZ2V0LCBidXQgdGhhdCBpcyBpbnRlbmRlZCBtYWlubHkKLSsgICAgIGZvciB0 aGUgcGFja2FnZSdzIGRldmVsb3BlcnMuICBJZiB5b3UgdXNlIGl0LCB5b3UgbWF5IGhhdmUgdG8g Z2V0Ci0rICAgICBhbGwgc29ydHMgb2Ygb3RoZXIgcHJvZ3JhbXMgaW4gb3JkZXIgdG8gcmVnZW5l cmF0ZSBmaWxlcyB0aGF0IGNhbWUKLSsgICAgIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSsKLSsg IDcuIE9mdGVuLCB5b3UgY2FuIGFsc28gdHlwZSBgbWFrZSB1bmluc3RhbGwnIHRvIHJlbW92ZSB0 aGUgaW5zdGFsbGVkCi0rICAgICBmaWxlcyBhZ2Fpbi4gIEluIHByYWN0aWNlLCBub3QgYWxsIHBh Y2thZ2VzIGhhdmUgdGVzdGVkIHRoYXQKLSsgICAgIHVuaW5zdGFsbGF0aW9uIHdvcmtzIGNvcnJl Y3RseSwgZXZlbiB0aG91Z2ggaXQgaXMgcmVxdWlyZWQgYnkgdGhlCi0rICAgICBHTlUgQ29kaW5n IFN0YW5kYXJkcy4KLSsKLSsgIDguIFNvbWUgcGFja2FnZXMsIHBhcnRpY3VsYXJseSB0aG9zZSB0 aGF0IHVzZSBBdXRvbWFrZSwgcHJvdmlkZSBgbWFrZQotKyAgICAgZGlzdGNoZWNrJywgd2hpY2gg Y2FuIGJ5IHVzZWQgYnkgZGV2ZWxvcGVycyB0byB0ZXN0IHRoYXQgYWxsIG90aGVyCi0rICAgICB0 YXJnZXRzIGxpa2UgYG1ha2UgaW5zdGFsbCcgYW5kIGBtYWtlIHVuaW5zdGFsbCcgd29yayBjb3Jy ZWN0bHkuCi0rICAgICBUaGlzIHRhcmdldCBpcyBnZW5lcmFsbHkgbm90IHJ1biBieSBlbmQgdXNl cnMuCi0rCi0rQ29tcGlsZXJzIGFuZCBPcHRpb25zCi0rPT09PT09PT09PT09PT09PT09PT09Ci0r Ci0rICAgU29tZSBzeXN0ZW1zIHJlcXVpcmUgdW51c3VhbCBvcHRpb25zIGZvciBjb21waWxhdGlv biBvciBsaW5raW5nIHRoYXQKLSt0aGUgYGNvbmZpZ3VyZScgc2NyaXB0IGRvZXMgbm90IGtub3cg YWJvdXQuICBSdW4gYC4vY29uZmlndXJlIC0taGVscCcKLStmb3IgZGV0YWlscyBvbiBzb21lIG9m IHRoZSBwZXJ0aW5lbnQgZW52aXJvbm1lbnQgdmFyaWFibGVzLgotKwotKyAgIFlvdSBjYW4gZ2l2 ZSBgY29uZmlndXJlJyBpbml0aWFsIHZhbHVlcyBmb3IgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJz Ci0rYnkgc2V0dGluZyB2YXJpYWJsZXMgaW4gdGhlIGNvbW1hbmQgbGluZSBvciBpbiB0aGUgZW52 aXJvbm1lbnQuICBIZXJlCi0raXMgYW4gZXhhbXBsZToKLSsKLSsgICAgIC4vY29uZmlndXJlIEND PWM5OSBDRkxBR1M9LWcgTElCUz0tbHBvc2l4Ci0rCi0rICAgKk5vdGUgRGVmaW5pbmcgVmFyaWFi bGVzOjosIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rQ29tcGlsaW5nIEZvciBNdWx0aXBsZSBBcmNo aXRlY3R1cmVzCi0rPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0rCi0rICAg WW91IGNhbiBjb21waWxlIHRoZSBwYWNrYWdlIGZvciBtb3JlIHRoYW4gb25lIGtpbmQgb2YgY29t cHV0ZXIgYXQgdGhlCi0rc2FtZSB0aW1lLCBieSBwbGFjaW5nIHRoZSBvYmplY3QgZmlsZXMgZm9y IGVhY2ggYXJjaGl0ZWN0dXJlIGluIHRoZWlyCi0rb3duIGRpcmVjdG9yeS4gIFRvIGRvIHRoaXMs IHlvdSBjYW4gdXNlIEdOVSBgbWFrZScuICBgY2QnIHRvIHRoZQotK2RpcmVjdG9yeSB3aGVyZSB5 b3Ugd2FudCB0aGUgb2JqZWN0IGZpbGVzIGFuZCBleGVjdXRhYmxlcyB0byBnbyBhbmQgcnVuCi0r dGhlIGBjb25maWd1cmUnIHNjcmlwdC4gIGBjb25maWd1cmUnIGF1dG9tYXRpY2FsbHkgY2hlY2tz IGZvciB0aGUKLStzb3VyY2UgY29kZSBpbiB0aGUgZGlyZWN0b3J5IHRoYXQgYGNvbmZpZ3VyZScg aXMgaW4gYW5kIGluIGAuLicuICBUaGlzCi0raXMga25vd24gYXMgYSAiVlBBVEgiIGJ1aWxkLgot KwotKyAgIFdpdGggYSBub24tR05VIGBtYWtlJywgaXQgaXMgc2FmZXIgdG8gY29tcGlsZSB0aGUg cGFja2FnZSBmb3Igb25lCi0rYXJjaGl0ZWN0dXJlIGF0IGEgdGltZSBpbiB0aGUgc291cmNlIGNv ZGUgZGlyZWN0b3J5LiAgQWZ0ZXIgeW91IGhhdmUKLStpbnN0YWxsZWQgdGhlIHBhY2thZ2UgZm9y IG9uZSBhcmNoaXRlY3R1cmUsIHVzZSBgbWFrZSBkaXN0Y2xlYW4nIGJlZm9yZQotK3JlY29uZmln dXJpbmcgZm9yIGFub3RoZXIgYXJjaGl0ZWN0dXJlLgotKwotKyAgIE9uIE1hY09TIFggMTAuNSBh bmQgbGF0ZXIgc3lzdGVtcywgeW91IGNhbiBjcmVhdGUgbGlicmFyaWVzIGFuZAotK2V4ZWN1dGFi bGVzIHRoYXQgd29yayBvbiBtdWx0aXBsZSBzeXN0ZW0gdHlwZXMtLWtub3duIGFzICJmYXQiIG9y Ci0rInVuaXZlcnNhbCIgYmluYXJpZXMtLWJ5IHNwZWNpZnlpbmcgbXVsdGlwbGUgYC1hcmNoJyBv cHRpb25zIHRvIHRoZQotK2NvbXBpbGVyIGJ1dCBvbmx5IGEgc2luZ2xlIGAtYXJjaCcgb3B0aW9u IHRvIHRoZSBwcmVwcm9jZXNzb3IuICBMaWtlCi0rdGhpczoKLSsKLSsgICAgIC4vY29uZmlndXJl IENDPSJnY2MgLWFyY2ggaTM4NiAtYXJjaCB4ODZfNjQgLWFyY2ggcHBjIC1hcmNoIHBwYzY0IiBc Ci0rICAgICAgICAgICAgICAgICBDWFg9ImcrKyAtYXJjaCBpMzg2IC1hcmNoIHg4Nl82NCAtYXJj aCBwcGMgLWFyY2ggcHBjNjQiIFwKLSsgICAgICAgICAgICAgICAgIENQUD0iZ2NjIC1FIiBDWFhD UFA9ImcrKyAtRSIKLSsKLSsgICBUaGlzIGlzIG5vdCBndWFyYW50ZWVkIHRvIHByb2R1Y2Ugd29y a2luZyBvdXRwdXQgaW4gYWxsIGNhc2VzLCB5b3UKLSttYXkgaGF2ZSB0byBidWlsZCBvbmUgYXJj aGl0ZWN0dXJlIGF0IGEgdGltZSBhbmQgY29tYmluZSB0aGUgcmVzdWx0cwotK3VzaW5nIHRoZSBg bGlwbycgdG9vbCBpZiB5b3UgaGF2ZSBwcm9ibGVtcy4KLSsKLStJbnN0YWxsYXRpb24gTmFtZXMK LSs9PT09PT09PT09PT09PT09PT0KLSsKLSsgICBCeSBkZWZhdWx0LCBgbWFrZSBpbnN0YWxsJyBp bnN0YWxscyB0aGUgcGFja2FnZSdzIGNvbW1hbmRzIHVuZGVyCi0rYC91c3IvbG9jYWwvYmluJywg aW5jbHVkZSBmaWxlcyB1bmRlciBgL3Vzci9sb2NhbC9pbmNsdWRlJywgZXRjLiAgWW91Ci0rY2Fu IHNwZWNpZnkgYW4gaW5zdGFsbGF0aW9uIHByZWZpeCBvdGhlciB0aGFuIGAvdXNyL2xvY2FsJyBi eSBnaXZpbmcKLStgY29uZmlndXJlJyB0aGUgb3B0aW9uIGAtLXByZWZpeD1QUkVGSVgnLCB3aGVy ZSBQUkVGSVggbXVzdCBiZSBhbgotK2Fic29sdXRlIGZpbGUgbmFtZS4KLSsKLSsgICBZb3UgY2Fu IHNwZWNpZnkgc2VwYXJhdGUgaW5zdGFsbGF0aW9uIHByZWZpeGVzIGZvcgotK2FyY2hpdGVjdHVy ZS1zcGVjaWZpYyBmaWxlcyBhbmQgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGZpbGVzLiAgSWYg eW91Ci0rcGFzcyB0aGUgb3B0aW9uIGAtLWV4ZWMtcHJlZml4PVBSRUZJWCcgdG8gYGNvbmZpZ3Vy ZScsIHRoZSBwYWNrYWdlIHVzZXMKLStQUkVGSVggYXMgdGhlIHByZWZpeCBmb3IgaW5zdGFsbGlu ZyBwcm9ncmFtcyBhbmQgbGlicmFyaWVzLgotK0RvY3VtZW50YXRpb24gYW5kIG90aGVyIGRhdGEg ZmlsZXMgc3RpbGwgdXNlIHRoZSByZWd1bGFyIHByZWZpeC4KLSsKLSsgICBJbiBhZGRpdGlvbiwg aWYgeW91IHVzZSBhbiB1bnVzdWFsIGRpcmVjdG9yeSBsYXlvdXQgeW91IGNhbiBnaXZlCi0rb3B0 aW9ucyBsaWtlIGAtLWJpbmRpcj1ESVInIHRvIHNwZWNpZnkgZGlmZmVyZW50IHZhbHVlcyBmb3Ig cGFydGljdWxhcgotK2tpbmRzIG9mIGZpbGVzLiAgUnVuIGBjb25maWd1cmUgLS1oZWxwJyBmb3Ig YSBsaXN0IG9mIHRoZSBkaXJlY3RvcmllcwotK3lvdSBjYW4gc2V0IGFuZCB3aGF0IGtpbmRzIG9m IGZpbGVzIGdvIGluIHRoZW0uICBJbiBnZW5lcmFsLCB0aGUKLStkZWZhdWx0IGZvciB0aGVzZSBv cHRpb25zIGlzIGV4cHJlc3NlZCBpbiB0ZXJtcyBvZiBgJHtwcmVmaXh9Jywgc28gdGhhdAotK3Nw ZWNpZnlpbmcganVzdCBgLS1wcmVmaXgnIHdpbGwgYWZmZWN0IGFsbCBvZiB0aGUgb3RoZXIgZGly ZWN0b3J5Ci0rc3BlY2lmaWNhdGlvbnMgdGhhdCB3ZXJlIG5vdCBleHBsaWNpdGx5IHByb3ZpZGVk LgotKwotKyAgIFRoZSBtb3N0IHBvcnRhYmxlIHdheSB0byBhZmZlY3QgaW5zdGFsbGF0aW9uIGxv Y2F0aW9ucyBpcyB0byBwYXNzIHRoZQotK2NvcnJlY3QgbG9jYXRpb25zIHRvIGBjb25maWd1cmUn OyBob3dldmVyLCBtYW55IHBhY2thZ2VzIHByb3ZpZGUgb25lIG9yCi0rYm90aCBvZiB0aGUgZm9s bG93aW5nIHNob3J0Y3V0cyBvZiBwYXNzaW5nIHZhcmlhYmxlIGFzc2lnbm1lbnRzIHRvIHRoZQot K2BtYWtlIGluc3RhbGwnIGNvbW1hbmQgbGluZSB0byBjaGFuZ2UgaW5zdGFsbGF0aW9uIGxvY2F0 aW9ucyB3aXRob3V0Ci0raGF2aW5nIHRvIHJlY29uZmlndXJlIG9yIHJlY29tcGlsZS4KLSsKLSsg ICBUaGUgZmlyc3QgbWV0aG9kIGludm9sdmVzIHByb3ZpZGluZyBhbiBvdmVycmlkZSB2YXJpYWJs ZSBmb3IgZWFjaAotK2FmZmVjdGVkIGRpcmVjdG9yeS4gIEZvciBleGFtcGxlLCBgbWFrZSBpbnN0 YWxsCi0rcHJlZml4PS9hbHRlcm5hdGUvZGlyZWN0b3J5JyB3aWxsIGNob29zZSBhbiBhbHRlcm5h dGUgbG9jYXRpb24gZm9yIGFsbAotK2RpcmVjdG9yeSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcyB0 aGF0IHdlcmUgZXhwcmVzc2VkIGluIHRlcm1zIG9mCi0rYCR7cHJlZml4fScuICBBbnkgZGlyZWN0 b3JpZXMgdGhhdCB3ZXJlIHNwZWNpZmllZCBkdXJpbmcgYGNvbmZpZ3VyZScsCi0rYnV0IG5vdCBp biB0ZXJtcyBvZiBgJHtwcmVmaXh9JywgbXVzdCBlYWNoIGJlIG92ZXJyaWRkZW4gYXQgaW5zdGFs bAotK3RpbWUgZm9yIHRoZSBlbnRpcmUgaW5zdGFsbGF0aW9uIHRvIGJlIHJlbG9jYXRlZC4gIFRo ZSBhcHByb2FjaCBvZgotK21ha2VmaWxlIHZhcmlhYmxlIG92ZXJyaWRlcyBmb3IgZWFjaCBkaXJl Y3RvcnkgdmFyaWFibGUgaXMgcmVxdWlyZWQgYnkKLSt0aGUgR05VIENvZGluZyBTdGFuZGFyZHMs IGFuZCBpZGVhbGx5IGNhdXNlcyBubyByZWNvbXBpbGF0aW9uLgotK0hvd2V2ZXIsIHNvbWUgcGxh dGZvcm1zIGhhdmUga25vd24gbGltaXRhdGlvbnMgd2l0aCB0aGUgc2VtYW50aWNzIG9mCi0rc2hh cmVkIGxpYnJhcmllcyB0aGF0IGVuZCB1cCByZXF1aXJpbmcgcmVjb21waWxhdGlvbiB3aGVuIHVz aW5nIHRoaXMKLSttZXRob2QsIHBhcnRpY3VsYXJseSBub3RpY2VhYmxlIGluIHBhY2thZ2VzIHRo YXQgdXNlIEdOVSBMaWJ0b29sLgotKwotKyAgIFRoZSBzZWNvbmQgbWV0aG9kIGludm9sdmVzIHBy b3ZpZGluZyB0aGUgYERFU1RESVInIHZhcmlhYmxlLiAgRm9yCi0rZXhhbXBsZSwgYG1ha2UgaW5z dGFsbCBERVNURElSPS9hbHRlcm5hdGUvZGlyZWN0b3J5JyB3aWxsIHByZXBlbmQKLStgL2FsdGVy bmF0ZS9kaXJlY3RvcnknIGJlZm9yZSBhbGwgaW5zdGFsbGF0aW9uIG5hbWVzLiAgVGhlIGFwcHJv YWNoIG9mCi0rYERFU1RESVInIG92ZXJyaWRlcyBpcyBub3QgcmVxdWlyZWQgYnkgdGhlIEdOVSBD b2RpbmcgU3RhbmRhcmRzLCBhbmQKLStkb2VzIG5vdCB3b3JrIG9uIHBsYXRmb3JtcyB0aGF0IGhh dmUgZHJpdmUgbGV0dGVycy4gIE9uIHRoZSBvdGhlciBoYW5kLAotK2l0IGRvZXMgYmV0dGVyIGF0 IGF2b2lkaW5nIHJlY29tcGlsYXRpb24gaXNzdWVzLCBhbmQgd29ya3Mgd2VsbCBldmVuCi0rd2hl biBzb21lIGRpcmVjdG9yeSBvcHRpb25zIHdlcmUgbm90IHNwZWNpZmllZCBpbiB0ZXJtcyBvZiBg JHtwcmVmaXh9JwotK2F0IGBjb25maWd1cmUnIHRpbWUuCi0rCi0rT3B0aW9uYWwgRmVhdHVyZXMK LSs9PT09PT09PT09PT09PT09PQotKwotKyAgIElmIHRoZSBwYWNrYWdlIHN1cHBvcnRzIGl0LCB5 b3UgY2FuIGNhdXNlIHByb2dyYW1zIHRvIGJlIGluc3RhbGxlZAotK3dpdGggYW4gZXh0cmEgcHJl Zml4IG9yIHN1ZmZpeCBvbiB0aGVpciBuYW1lcyBieSBnaXZpbmcgYGNvbmZpZ3VyZScgdGhlCi0r b3B0aW9uIGAtLXByb2dyYW0tcHJlZml4PVBSRUZJWCcgb3IgYC0tcHJvZ3JhbS1zdWZmaXg9U1VG RklYJy4KLSsKLSsgICBTb21lIHBhY2thZ2VzIHBheSBhdHRlbnRpb24gdG8gYC0tZW5hYmxlLUZF QVRVUkUnIG9wdGlvbnMgdG8KLStgY29uZmlndXJlJywgd2hlcmUgRkVBVFVSRSBpbmRpY2F0ZXMg YW4gb3B0aW9uYWwgcGFydCBvZiB0aGUgcGFja2FnZS4KLStUaGV5IG1heSBhbHNvIHBheSBhdHRl bnRpb24gdG8gYC0td2l0aC1QQUNLQUdFJyBvcHRpb25zLCB3aGVyZSBQQUNLQUdFCi0raXMgc29t ZXRoaW5nIGxpa2UgYGdudS1hcycgb3IgYHgnIChmb3IgdGhlIFggV2luZG93IFN5c3RlbSkuICBU aGUKLStgUkVBRE1FJyBzaG91bGQgbWVudGlvbiBhbnkgYC0tZW5hYmxlLScgYW5kIGAtLXdpdGgt JyBvcHRpb25zIHRoYXQgdGhlCi0rcGFja2FnZSByZWNvZ25pemVzLgotKwotKyAgIEZvciBwYWNr YWdlcyB0aGF0IHVzZSB0aGUgWCBXaW5kb3cgU3lzdGVtLCBgY29uZmlndXJlJyBjYW4gdXN1YWxs eQotK2ZpbmQgdGhlIFggaW5jbHVkZSBhbmQgbGlicmFyeSBmaWxlcyBhdXRvbWF0aWNhbGx5LCBi dXQgaWYgaXQgZG9lc24ndCwKLSt5b3UgY2FuIHVzZSB0aGUgYGNvbmZpZ3VyZScgb3B0aW9ucyBg LS14LWluY2x1ZGVzPURJUicgYW5kCi0rYC0teC1saWJyYXJpZXM9RElSJyB0byBzcGVjaWZ5IHRo ZWlyIGxvY2F0aW9ucy4KLSsKLSsgICBTb21lIHBhY2thZ2VzIG9mZmVyIHRoZSBhYmlsaXR5IHRv IGNvbmZpZ3VyZSBob3cgdmVyYm9zZSB0aGUKLStleGVjdXRpb24gb2YgYG1ha2UnIHdpbGwgYmUu ICBGb3IgdGhlc2UgcGFja2FnZXMsIHJ1bm5pbmcgYC4vY29uZmlndXJlCi0rLS1lbmFibGUtc2ls ZW50LXJ1bGVzJyBzZXRzIHRoZSBkZWZhdWx0IHRvIG1pbmltYWwgb3V0cHV0LCB3aGljaCBjYW4g YmUKLStvdmVycmlkZGVuIHdpdGggYG1ha2UgVj0xJzsgd2hpbGUgcnVubmluZyBgLi9jb25maWd1 cmUKLSstLWRpc2FibGUtc2lsZW50LXJ1bGVzJyBzZXRzIHRoZSBkZWZhdWx0IHRvIHZlcmJvc2Us IHdoaWNoIGNhbiBiZQotK292ZXJyaWRkZW4gd2l0aCBgbWFrZSBWPTAnLgotKwotK1BhcnRpY3Vs YXIgc3lzdGVtcwotKz09PT09PT09PT09PT09PT09PQotKwotKyAgIE9uIEhQLVVYLCB0aGUgZGVm YXVsdCBDIGNvbXBpbGVyIGlzIG5vdCBBTlNJIEMgY29tcGF0aWJsZS4gIElmIEdOVQotK0NDIGlz IG5vdCBpbnN0YWxsZWQsIGl0IGlzIHJlY29tbWVuZGVkIHRvIHVzZSB0aGUgZm9sbG93aW5nIG9w dGlvbnMgaW4KLStvcmRlciB0byB1c2UgYW4gQU5TSSBDIGNvbXBpbGVyOgotKwotKyAgICAgLi9j b25maWd1cmUgQ0M9ImNjIC1BZSAtRF9YT1BFTl9TT1VSQ0U9NTAwIgotKwotK2FuZCBpZiB0aGF0 IGRvZXNuJ3Qgd29yaywgaW5zdGFsbCBwcmUtYnVpbHQgYmluYXJpZXMgb2YgR0NDIGZvciBIUC1V WC4KLSsKLSsgICBPbiBPU0YvMSBhLmsuYS4gVHJ1NjQsIHNvbWUgdmVyc2lvbnMgb2YgdGhlIGRl ZmF1bHQgQyBjb21waWxlciBjYW5ub3QKLStwYXJzZSBpdHMgYDx3Y2hhci5oPicgaGVhZGVyIGZp bGUuICBUaGUgb3B0aW9uIGAtbm9kdGsnIGNhbiBiZSB1c2VkIGFzCi0rYSB3b3JrYXJvdW5kLiAg SWYgR05VIENDIGlzIG5vdCBpbnN0YWxsZWQsIGl0IGlzIHRoZXJlZm9yZSByZWNvbW1lbmRlZAot K3RvIHRyeQotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9ImNjIgotKwotK2FuZCBpZiB0aGF0IGRv ZXNuJ3Qgd29yaywgdHJ5Ci0rCi0rICAgICAuL2NvbmZpZ3VyZSBDQz0iY2MgLW5vZHRrIgotKwot KyAgIE9uIFNvbGFyaXMsIGRvbid0IHB1dCBgL3Vzci91Y2InIGVhcmx5IGluIHlvdXIgYFBBVEgn LiAgVGhpcwotK2RpcmVjdG9yeSBjb250YWlucyBzZXZlcmFsIGR5c2Z1bmN0aW9uYWwgcHJvZ3Jh bXM7IHdvcmtpbmcgdmFyaWFudHMgb2YKLSt0aGVzZSBwcm9ncmFtcyBhcmUgYXZhaWxhYmxlIGlu IGAvdXNyL2JpbicuICBTbywgaWYgeW91IG5lZWQgYC91c3IvdWNiJwotK2luIHlvdXIgYFBBVEgn LCBwdXQgaXQgX2FmdGVyXyBgL3Vzci9iaW4nLgotKwotKyAgIE9uIEhhaWt1LCBzb2Z0d2FyZSBp bnN0YWxsZWQgZm9yIGFsbCB1c2VycyBnb2VzIGluIGAvYm9vdC9jb21tb24nLAotK25vdCBgL3Vz ci9sb2NhbCcuICBJdCBpcyByZWNvbW1lbmRlZCB0byB1c2UgdGhlIGZvbGxvd2luZyBvcHRpb25z OgotKwotKyAgICAgLi9jb25maWd1cmUgLS1wcmVmaXg9L2Jvb3QvY29tbW9uCi0rCi0rU3BlY2lm eWluZyB0aGUgU3lzdGVtIFR5cGUKLSs9PT09PT09PT09PT09PT09PT09PT09PT09PQotKwotKyAg IFRoZXJlIG1heSBiZSBzb21lIGZlYXR1cmVzIGBjb25maWd1cmUnIGNhbm5vdCBmaWd1cmUgb3V0 Ci0rYXV0b21hdGljYWxseSwgYnV0IG5lZWRzIHRvIGRldGVybWluZSBieSB0aGUgdHlwZSBvZiBt YWNoaW5lIHRoZSBwYWNrYWdlCi0rd2lsbCBydW4gb24uICBVc3VhbGx5LCBhc3N1bWluZyB0aGUg cGFja2FnZSBpcyBidWlsdCB0byBiZSBydW4gb24gdGhlCi0rX3NhbWVfIGFyY2hpdGVjdHVyZXMs IGBjb25maWd1cmUnIGNhbiBmaWd1cmUgdGhhdCBvdXQsIGJ1dCBpZiBpdCBwcmludHMKLSthIG1l c3NhZ2Ugc2F5aW5nIGl0IGNhbm5vdCBndWVzcyB0aGUgbWFjaGluZSB0eXBlLCBnaXZlIGl0IHRo ZQotK2AtLWJ1aWxkPVRZUEUnIG9wdGlvbi4gIFRZUEUgY2FuIGVpdGhlciBiZSBhIHNob3J0IG5h bWUgZm9yIHRoZSBzeXN0ZW0KLSt0eXBlLCBzdWNoIGFzIGBzdW40Jywgb3IgYSBjYW5vbmljYWwg bmFtZSB3aGljaCBoYXMgdGhlIGZvcm06Ci0rCi0rICAgICBDUFUtQ09NUEFOWS1TWVNURU0KLSsK LSt3aGVyZSBTWVNURU0gY2FuIGhhdmUgb25lIG9mIHRoZXNlIGZvcm1zOgotKwotKyAgICAgT1MK LSsgICAgIEtFUk5FTC1PUwotKwotKyAgIFNlZSB0aGUgZmlsZSBgY29uZmlnLnN1YicgZm9yIHRo ZSBwb3NzaWJsZSB2YWx1ZXMgb2YgZWFjaCBmaWVsZC4gIElmCi0rYGNvbmZpZy5zdWInIGlzbid0 IGluY2x1ZGVkIGluIHRoaXMgcGFja2FnZSwgdGhlbiB0aGlzIHBhY2thZ2UgZG9lc24ndAotK25l ZWQgdG8ga25vdyB0aGUgbWFjaGluZSB0eXBlLgotKwotKyAgIElmIHlvdSBhcmUgX2J1aWxkaW5n XyBjb21waWxlciB0b29scyBmb3IgY3Jvc3MtY29tcGlsaW5nLCB5b3Ugc2hvdWxkCi0rdXNlIHRo ZSBvcHRpb24gYC0tdGFyZ2V0PVRZUEUnIHRvIHNlbGVjdCB0aGUgdHlwZSBvZiBzeXN0ZW0gdGhl eSB3aWxsCi0rcHJvZHVjZSBjb2RlIGZvci4KLSsKLSsgICBJZiB5b3Ugd2FudCB0byBfdXNlXyBh IGNyb3NzIGNvbXBpbGVyLCB0aGF0IGdlbmVyYXRlcyBjb2RlIGZvciBhCi0rcGxhdGZvcm0gZGlm ZmVyZW50IGZyb20gdGhlIGJ1aWxkIHBsYXRmb3JtLCB5b3Ugc2hvdWxkIHNwZWNpZnkgdGhlCi0r Imhvc3QiIHBsYXRmb3JtIChpLmUuLCB0aGF0IG9uIHdoaWNoIHRoZSBnZW5lcmF0ZWQgcHJvZ3Jh bXMgd2lsbAotK2V2ZW50dWFsbHkgYmUgcnVuKSB3aXRoIGAtLWhvc3Q9VFlQRScuCi0rCi0rU2hh cmluZyBEZWZhdWx0cwotKz09PT09PT09PT09PT09PT0KLSsKLSsgICBJZiB5b3Ugd2FudCB0byBz ZXQgZGVmYXVsdCB2YWx1ZXMgZm9yIGBjb25maWd1cmUnIHNjcmlwdHMgdG8gc2hhcmUsCi0reW91 IGNhbiBjcmVhdGUgYSBzaXRlIHNoZWxsIHNjcmlwdCBjYWxsZWQgYGNvbmZpZy5zaXRlJyB0aGF0 IGdpdmVzCi0rZGVmYXVsdCB2YWx1ZXMgZm9yIHZhcmlhYmxlcyBsaWtlIGBDQycsIGBjYWNoZV9m aWxlJywgYW5kIGBwcmVmaXgnLgotK2Bjb25maWd1cmUnIGxvb2tzIGZvciBgUFJFRklYL3NoYXJl L2NvbmZpZy5zaXRlJyBpZiBpdCBleGlzdHMsIHRoZW4KLStgUFJFRklYL2V0Yy9jb25maWcuc2l0 ZScgaWYgaXQgZXhpc3RzLiAgT3IsIHlvdSBjYW4gc2V0IHRoZQotK2BDT05GSUdfU0lURScgZW52 aXJvbm1lbnQgdmFyaWFibGUgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBzaXRlIHNjcmlwdC4KLStB IHdhcm5pbmc6IG5vdCBhbGwgYGNvbmZpZ3VyZScgc2NyaXB0cyBsb29rIGZvciBhIHNpdGUgc2Ny aXB0LgotKwotK0RlZmluaW5nIFZhcmlhYmxlcwotKz09PT09PT09PT09PT09PT09PQotKwotKyAg IFZhcmlhYmxlcyBub3QgZGVmaW5lZCBpbiBhIHNpdGUgc2hlbGwgc2NyaXB0IGNhbiBiZSBzZXQg aW4gdGhlCi0rZW52aXJvbm1lbnQgcGFzc2VkIHRvIGBjb25maWd1cmUnLiAgSG93ZXZlciwgc29t ZSBwYWNrYWdlcyBtYXkgcnVuCi0rY29uZmlndXJlIGFnYWluIGR1cmluZyB0aGUgYnVpbGQsIGFu ZCB0aGUgY3VzdG9taXplZCB2YWx1ZXMgb2YgdGhlc2UKLSt2YXJpYWJsZXMgbWF5IGJlIGxvc3Qu ICBJbiBvcmRlciB0byBhdm9pZCB0aGlzIHByb2JsZW0sIHlvdSBzaG91bGQgc2V0Ci0rdGhlbSBp biB0aGUgYGNvbmZpZ3VyZScgY29tbWFuZCBsaW5lLCB1c2luZyBgVkFSPXZhbHVlJy4gIEZvciBl eGFtcGxlOgotKwotKyAgICAgLi9jb25maWd1cmUgQ0M9L3Vzci9sb2NhbDIvYmluL2djYwotKwot K2NhdXNlcyB0aGUgc3BlY2lmaWVkIGBnY2MnIHRvIGJlIHVzZWQgYXMgdGhlIEMgY29tcGlsZXIg KHVubGVzcyBpdCBpcwotK292ZXJyaWRkZW4gaW4gdGhlIHNpdGUgc2hlbGwgc2NyaXB0KS4KLSsK LStVbmZvcnR1bmF0ZWx5LCB0aGlzIHRlY2huaXF1ZSBkb2VzIG5vdCB3b3JrIGZvciBgQ09ORklH X1NIRUxMJyBkdWUgdG8KLSthbiBBdXRvY29uZiBidWcuICBVbnRpbCB0aGUgYnVnIGlzIGZpeGVk IHlvdSBjYW4gdXNlIHRoaXMgd29ya2Fyb3VuZDoKLSsKLSsgICAgIENPTkZJR19TSEVMTD0vYmlu L2Jhc2ggL2Jpbi9iYXNoIC4vY29uZmlndXJlIENPTkZJR19TSEVMTD0vYmluL2Jhc2gKLSsKLStg Y29uZmlndXJlJyBJbnZvY2F0aW9uCi0rPT09PT09PT09PT09PT09PT09PT09PQotKwotKyAgIGBj b25maWd1cmUnIHJlY29nbml6ZXMgdGhlIGZvbGxvd2luZyBvcHRpb25zIHRvIGNvbnRyb2wgaG93 IGl0Ci0rb3BlcmF0ZXMuCi0rCi0rYC0taGVscCcKLStgLWgnCi0rICAgICBQcmludCBhIHN1bW1h cnkgb2YgYWxsIG9mIHRoZSBvcHRpb25zIHRvIGBjb25maWd1cmUnLCBhbmQgZXhpdC4KLSsKLStg LS1oZWxwPXNob3J0JwotK2AtLWhlbHA9cmVjdXJzaXZlJwotKyAgICAgUHJpbnQgYSBzdW1tYXJ5 IG9mIHRoZSBvcHRpb25zIHVuaXF1ZSB0byB0aGlzIHBhY2thZ2UncwotKyAgICAgYGNvbmZpZ3Vy ZScsIGFuZCBleGl0LiAgVGhlIGBzaG9ydCcgdmFyaWFudCBsaXN0cyBvcHRpb25zIHVzZWQKLSsg ICAgIG9ubHkgaW4gdGhlIHRvcCBsZXZlbCwgd2hpbGUgdGhlIGByZWN1cnNpdmUnIHZhcmlhbnQg bGlzdHMgb3B0aW9ucwotKyAgICAgYWxzbyBwcmVzZW50IGluIGFueSBuZXN0ZWQgcGFja2FnZXMu Ci0rCi0rYC0tdmVyc2lvbicKLStgLVYnCi0rICAgICBQcmludCB0aGUgdmVyc2lvbiBvZiBBdXRv Y29uZiB1c2VkIHRvIGdlbmVyYXRlIHRoZSBgY29uZmlndXJlJwotKyAgICAgc2NyaXB0LCBhbmQg ZXhpdC4KLSsKLStgLS1jYWNoZS1maWxlPUZJTEUnCi0rICAgICBFbmFibGUgdGhlIGNhY2hlOiB1 c2UgYW5kIHNhdmUgdGhlIHJlc3VsdHMgb2YgdGhlIHRlc3RzIGluIEZJTEUsCi0rICAgICB0cmFk aXRpb25hbGx5IGBjb25maWcuY2FjaGUnLiAgRklMRSBkZWZhdWx0cyB0byBgL2Rldi9udWxsJyB0 bwotKyAgICAgZGlzYWJsZSBjYWNoaW5nLgotKwotK2AtLWNvbmZpZy1jYWNoZScKLStgLUMnCi0r ICAgICBBbGlhcyBmb3IgYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnLgotKwotK2AtLXF1aWV0 JwotK2AtLXNpbGVudCcKLStgLXEnCi0rICAgICBEbyBub3QgcHJpbnQgbWVzc2FnZXMgc2F5aW5n IHdoaWNoIGNoZWNrcyBhcmUgYmVpbmcgbWFkZS4gIFRvCi0rICAgICBzdXBwcmVzcyBhbGwgbm9y bWFsIG91dHB1dCwgcmVkaXJlY3QgaXQgdG8gYC9kZXYvbnVsbCcgKGFueSBlcnJvcgotKyAgICAg bWVzc2FnZXMgd2lsbCBzdGlsbCBiZSBzaG93bikuCi0rCi0rYC0tc3JjZGlyPURJUicKLSsgICAg IExvb2sgZm9yIHRoZSBwYWNrYWdlJ3Mgc291cmNlIGNvZGUgaW4gZGlyZWN0b3J5IERJUi4gIFVz dWFsbHkKLSsgICAgIGBjb25maWd1cmUnIGNhbiBkZXRlcm1pbmUgdGhhdCBkaXJlY3RvcnkgYXV0 b21hdGljYWxseS4KLSsKLStgLS1wcmVmaXg9RElSJwotKyAgICAgVXNlIERJUiBhcyB0aGUgaW5z dGFsbGF0aW9uIHByZWZpeC4gICpub3RlIEluc3RhbGxhdGlvbiBOYW1lczo6Ci0rICAgICBmb3Ig bW9yZSBkZXRhaWxzLCBpbmNsdWRpbmcgb3RoZXIgb3B0aW9ucyBhdmFpbGFibGUgZm9yIGZpbmUt dHVuaW5nCi0rICAgICB0aGUgaW5zdGFsbGF0aW9uIGxvY2F0aW9ucy4KLSsKLStgLS1uby1jcmVh dGUnCi0rYC1uJwotKyAgICAgUnVuIHRoZSBjb25maWd1cmUgY2hlY2tzLCBidXQgc3RvcCBiZWZv cmUgY3JlYXRpbmcgYW55IG91dHB1dAotKyAgICAgZmlsZXMuCi0rCi0rYGNvbmZpZ3VyZScgYWxz byBhY2NlcHRzIHNvbWUgb3RoZXIsIG5vdCB3aWRlbHkgdXNlZnVsLCBvcHRpb25zLiAgUnVuCi0r YGNvbmZpZ3VyZSAtLWhlbHAnIGZvciBtb3JlIGRldGFpbHMuCi0rCi1kaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svTkVXUyBzb2NpLTMuMC4wX3RyZXAzMDAvTkVXUwotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL05FV1MJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvTkVXUwkyMDA5LTA0LTE2IDE5OjM3OjEwLjAwMDAwMDAwMCArMDIwMAot QEAgLTAsMCArMSwzIEBACi0rCi0rKiBXZWQgTWFyIDI2IDIwMDkgUlBNIHJlbGVhc2UgZm9yIHZl cnNpb24gMy4wLjAKLSsKCmRpZmYgLS1naXQgYS9zb2NpLTMuMC4wLWJ1cmllZC1oZWFkZXJzLnBh dGNoIGIvc29jaS0zLjAuMC1idXJpZWQtaGVhZGVycy5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAx MDA2NDQKaW5kZXggYzU3ZjhiYy4uMDAwMDAwMAotLS0gYS9zb2NpLTMuMC4wLWJ1cmllZC1oZWFk ZXJzLnBhdGNoCisrKyAvZGV2L251bGwKQEAgLTEsNTM2ICswLDAgQEAKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjYy OTg4MDEyMyArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L2NvbW1vbi5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC02LDcg KzYsMTMgQEAKLSAvLwotIAotICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSAic29jaS1i YWNrZW5kLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAg ICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRl IDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5kaWYKLSsvLwotICNpbmNsdWRlIDxjaXNvNjQ2PgotICNp bmNsdWRlIDxjc3RkbGliPgotICNpbmNsdWRlIDxjdGltZT4KLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaCBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAkyMDExLTAyLTA4IDIzOjUzOjI2LjY2 Mzg4MDc3MCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3Fs L3NvY2ktbXlzcWwuaAkyMDExLTAyLTA4IDIyOjI5OjU0LjAwMDAwMDAwMCArMDEwMAotQEAgLTIz LDEyICsyMywyMyBAQAotICNpZm5kZWYgU09DSV9NWVNRTF9ERUNMCi0gIyBkZWZpbmUgU09DSV9N WVNRTF9ERUNMCi0gI2VuZGlmCi0tCi0tI2luY2x1ZGUgInNvY2ktYmFja2VuZC5oIgotKy8vCi0r I2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kv Y29yZS9zb2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+ Ci0rI2VuZGlmCi0rLy8KLSAjaWZkZWYgX1dJTjMyCi0gI2luY2x1ZGUgPHdpbnNvY2suaD4gLy8g U09DS0VUCi0gI2VuZGlmIC8vIF9XSU4zMgotLSNpbmNsdWRlIDxteXNxbC5oPiAvLyBNeVNRTCBD bGllbnQKLSsvLwotKy8vIE15U1FMIENsaWVudAotKyNpZiBkZWZpbmVkKFNPQ0lfTVlTUUxfSEVB REVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxteXNxbC9teXNxbC5oPgotKyNlbHNlCi0r IwlpbmNsdWRlIDxteXNxbC5oPgotKyNlbmRpZgotICNpbmNsdWRlIDx2ZWN0b3I+Ci0gCi0gCi1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5k YXJkLWludG8tdHlwZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42NjU4ODA4MDcg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFy ZC1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAt OCw4ICs4LDE0IEBACi0gCi0gI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJDRQotICNpbmNsdWRlICJz b2NpLW15c3FsLmgiCi0tI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSAjaW5jbHVkZSAiY29t bW9uLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8 c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2lu Y2x1ZGUgPGNhc3NlcnQ+Ci0gI2luY2x1ZGUgPGN0aW1lPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUu Y3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjY2ODgwODI2ICswMTAwCi0rKysgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMDktMDUt MDUgMjI6MjU6NDAuMDAwMDAwMDAwICswMjAwCi1AQCAtOSw3ICs5LDEyIEBACi0gI2RlZmluZSBT T0NJX01ZU1FMX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0gI2luY2x1ZGUgImNv bW1vbi5oIgotLSNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSsjaWYgZGVmaW5lZChT T0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxh dGZvcm0uaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRpZgot IC8vCi0gI2luY2x1ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGxpbWl0cz4KLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNw cAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15 c3FsLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjYyOTg4MDEyMyArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAJMjAwOS0w NC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC02LDkgKzYsMTcgQEAKLSAvLyBodHRw Oi8vd3d3LmJvb3N0Lm9yZy9MSUNFTlNFXzFfMC50eHQpCi0gLy8KLSAKLS0jaW5jbHVkZSAic29j aS5oIgotLSNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0tI2luY2x1ZGUgInRlc3QvY29tbW9uLXRl c3RzLmgiCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL3NvY2kuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvYmFja2Vu ZHMvbXlzcWwvc29jaS1teXNxbC5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Rlc3Qv Y29tbW9uLXRlc3RzLmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHNvY2kuaD4KLSsjCWluY2x1ZGUg PHNvY2ktbXlzcWwuaD4KLSsjICAgICAgIGluY2x1ZGUgPHRlc3QvY29tbW9uLXRlc3RzLmg+Ci0r I2VuZGlmCi0rLy8KLSAjaW5jbHVkZSA8aW9zdHJlYW0+Ci0gI2luY2x1ZGUgPHNzdHJlYW0+Ci0g I2luY2x1ZGUgPHN0cmluZz4KLUBAIC0xOCw4ICsyNiwxNCBAQAotICNpbmNsdWRlIDxjdGltZT4K LSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8Y3N0ZGxpYj4KLS0jaW5jbHVkZSA8bXlz cWxkX2Vycm9yLmg+Ci0tI2luY2x1ZGUgPGVycm1zZy5oPgotKy8vIE15U1FMIENsaWVudAotKyNp ZiBkZWZpbmVkKFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxt eXNxbC9teXNxbGRfZXJyb3IuaD4KLSsjICAgICAgIGluY2x1ZGUgPG15c3FsL2Vycm1zZy5oPgot KyNlbHNlCi0rIyAgICAgICBpbmNsdWRlIDxteXNxbGRfZXJyb3IuaD4KLSsjICAgICAgIGluY2x1 ZGUgPGVycm1zZy5oPgotKyNlbmRpZgotIAotIHVzaW5nIG5hbWVzcGFjZSBzb2NpOwotIHVzaW5n IG5hbWVzcGFjZSBzb2NpOjp0ZXN0czsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9z b2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAkyMDExLTAyLTA4 IDIzOjUzOjI2LjYzMDg4MDE0MiArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAw MDAwMDAwICswMjAwCi1AQCAtOSw3ICs5LDEzIEBACi0gI2RlZmluZSBTT0NJX01ZU1FMX1NPVVJD RQotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0gI2luY2x1ZGUgImNvbW1vbi5oIgotLSNpbmNs dWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVS SUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsjZWxz ZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUg PGNpc282NDY+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAxMS0w Mi0wOCAyMzo1MzoyNi42NjY4ODA4MjYgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCTIwMDktMDUtMDUgMjI6MjM6Mjku MDAwMDAwMDAwICswMjAwCi1AQCAtOSw3ICs5LDEyIEBACi0gI2RlZmluZSBTT0NJX01ZU1FMX1NP VVJDRQotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0gI2luY2x1ZGUgImNvbW1vbi5oIgotLSNp bmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNf QlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaD4KLSsj ZWxzZQotKyMJaW5jbHVkZSA8c29jaS1wbGF0Zm9ybS5oPgotKyNlbmRpZgotIC8vCi0gI2luY2x1 ZGUgPGNpc282NDY+Ci0gI2luY2x1ZGUgPGxpbWl0cz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9ibG9iLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjYyODg4MDEwNSArMDEw MAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAky MDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTcsNyArNywxMyBAQAotIAot ICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotICNpbmNsdWRlICJlcnJvci5oIgotLSNpbmNsdWRl ICJzdGF0ZW1lbnQuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0r IyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvc3RhdGVtZW50Lmg+Ci0rI2Vsc2UKLSsjCWluY2x1 ZGUgPHN0YXRlbWVudC5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNzdHJpbmc+Ci0gI2lu Y2x1ZGUgPHNzdHJlYW0+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAkyMDExLTAyLTA4IDIzOjUz OjI2LjY3MTg4MDkyMiArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRz L29yYWNsZS9zb2NpLW9yYWNsZS5oCTIwMTEtMDItMDggMjI6Mjk6NTQuMDAwMDAwMDAwICswMTAw Ci1AQCAtMjIsOSArMjIsMTQgQEAKLSAjaWZuZGVmIFNPQ0lfT1JBQ0xFX0RFQ0wKLSAjIGRlZmlu ZSBTT0NJX09SQUNMRV9ERUNMCi0gI2VuZGlmCi0tCi0tI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5o PgotLSNpbmNsdWRlIDxvY2kuaD4gLy8gT0NJCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURF UlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFja2VuZC5oPgot KyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5kaWYKLSsvLwotKyNpbmNs dWRlIDxvY2kuaD4gLy8gT0NJIChPcmFjbGUgY2xpZW50KQotICNpbmNsdWRlIDx2ZWN0b3I+Ci0g Ci0gI2lmZGVmIF9NU0NfVkVSCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNr ZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAJMjAxMS0w Mi0wOCAyMzo1MzoyNi42Mjg4ODAxMDUgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3 OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTcsMTAgKzcsMTggQEAKLSAKLSAjZGVmaW5lIFNPQ0lf T1JBQ0xFX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgotLSNpbmNsdWRlICJibG9i LmgiCi0gI2luY2x1ZGUgImVycm9yLmgiCi0tI2luY2x1ZGUgInJvd2lkLmgiCi0tI2luY2x1ZGUg InN0YXRlbWVudC5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsj ICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2Np L2NvcmUvcm93aWQuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4K LSsjZWxzZQotKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8cm93 aWQuaD4KLSsjICAgICAgIGluY2x1ZGUgPHN0YXRlbWVudC5oPgotKyNlbmRpZgotKy8vCi0gI2lu Y2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJk LXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3Rh bmRhcmQtdXNlLXR5cGUuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9v cmFjbGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjI4ODgwMTA1 ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YW5k YXJkLXVzZS10eXBlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAg LTcsMTAgKzcsMTggQEAKLSAKLSAjZGVmaW5lIHNvY2lfT1JBQ0xFX1NPVVJDRQotICNpbmNsdWRl ICJzb2NpLW9yYWNsZS5oIgotLSNpbmNsdWRlICJibG9iLmgiCi0gI2luY2x1ZGUgImVycm9yLmgi Ci0tI2luY2x1ZGUgInJvd2lkLmgiCi0tI2luY2x1ZGUgInN0YXRlbWVudC5oIgotKy8vCi0rI2lm IGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29y ZS9ibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4KLSsjICAgICAg IGluY2x1ZGUgPHNvY2kvY29yZS9zdGF0ZW1lbnQuaD4KLSsjZWxzZQotKyMgICAgICAgaW5jbHVk ZSA8YmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8cm93aWQuaD4KLSsjICAgICAgIGluY2x1ZGUg PHN0YXRlbWVudC5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVk ZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYu NjI3ODgwMDg2ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3N0YXRlbWVudC5jcHAJMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBA IC05LDcgKzksMTMgQEAKLSAKLSAjaW5jbHVkZSAic29jaS1vcmFjbGUuaCIKLSAjaW5jbHVkZSAi ZXJyb3IuaCIKLS0jaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rLy8KLSsjaWYgZGVmaW5lZChT T0NJX0hFQURFUlNfQlVSSUVEKQotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3NvY2ktYmFj a2VuZC5oPgotKyNlbHNlCi0rIwlpbmNsdWRlIDxzb2NpLWJhY2tlbmQuaD4KLSsjZW5kaWYKLSsv LwotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0 cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90 ZXN0L3Rlc3Qtb3JhY2xlLmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFj bGUvdGVzdC90ZXN0LW9yYWNsZS5jcHAKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tl bmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjYyNzg4 MDA4NiArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90 ZXN0L3Rlc3Qtb3JhY2xlLmNwcAkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAot QEAgLTUsOSArNSwxNyBAQAotIC8vIGh0dHA6Ly93d3cuYm9vc3Qub3JnL0xJQ0VOU0VfMV8wLnR4 dCkKLSAvLwotIAotLSNpbmNsdWRlICJzb2NpLmgiCi0tI2luY2x1ZGUgInNvY2ktb3JhY2xlLmgi Ci0tI2luY2x1ZGUgImNvbW1vbi10ZXN0cy5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFE RVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+Ci0rIyAgICAg ICBpbmNsdWRlIDxzb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oPgotKyMgICAgICAg aW5jbHVkZSA8c29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmg+Ci0rI2Vsc2UKLSsjCWluY2x1 ZGUgPHNvY2kuaD4KLSsjCWluY2x1ZGUgPHNvY2ktb3JhY2xlLmg+Ci0rIyAgICAgICBpbmNsdWRl IDx0ZXN0L2NvbW1vbi10ZXN0cy5oPgotKyNlbmRpZgotKy8vCi0gI2luY2x1ZGUgPGlvc3RyZWFt PgotICNpbmNsdWRlIDxzdHJpbmc+Ci0gI2luY2x1ZGUgPGNhc3NlcnQ+Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWlu dG8tdHlwZS5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42Mjg4ODAxMDUgKzAxMDAKLSsrKyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAJ MjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC03LDggKzcsMTQgQEAKLSAK LSAjZGVmaW5lIHNvY2lfT1JBQ0xFX1NPVVJDRQotICNpbmNsdWRlICJzb2NpLW9yYWNsZS5oIgot LSNpbmNsdWRlICJzdGF0ZW1lbnQuaCIKLSAjaW5jbHVkZSAiZXJyb3IuaCIKLSsvLwotKyNpZiBk ZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUv c3RhdGVtZW50Lmg+Ci0rI2Vsc2UKLSsjCWluY2x1ZGUgPHN0YXRlbWVudC5oPgotKyNlbmRpZgot Ky8vCi0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0ZGlvPgotICNpbmNsdWRlIDxj c3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9jb21tb24uY3BwIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvY29tbW9uLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9jb21tb24uY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjczODgwOTU5ICswMTAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwCTIw MDktMDUtMDUgMjI6MzA6NTIuMDAwMDAwMDAwICswMjAwCi1AQCAtNiw3ICs2LDEyIEBACi0gLy8K LSAKLSAjaW5jbHVkZSAiY29tbW9uLmgiCi0tI2luY2x1ZGUgPHNvY2ktYmFja2VuZC5oPgotKy8v Ci0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNv Y2kvY29yZS9zb2NpLWJhY2tlbmQuaD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5k Lmg+Ci0rI2VuZGlmCi0gLy8KLSAjaW5jbHVkZSA8Y3N0ZGxpYj4KLSAjaW5jbHVkZSA8Y3N0ZGlv PgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z b2NpLXBvc3RncmVzcWwuaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCTIwMTEtMDItMDggMjM6NTM6MjYuNjc0ODgw OTc4ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9zb2NpLXBvc3RncmVzcWwuaAkyMDExLTAyLTA4IDIyOjI5OjU0LjAwMDAwMDAwMCArMDEwMAot QEAgLTIyLDkgKzIyLDE0IEBACi0gI2lmbmRlZiBTT0NJX1BPU1RHUkVTUUxfREVDTAotICMgZGVm aW5lIFNPQ0lfUE9TVEdSRVNRTF9ERUNMCi0gI2VuZGlmCi0tCi0tI2luY2x1ZGUgPHNvY2ktYmFj a2VuZC5oPgotLSNpbmNsdWRlIDxsaWJwcS1mZS5oPgotKy8vCi0rI2lmIGRlZmluZWQoU09DSV9I RUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLWJhY2tlbmQu aD4KLSsjZWxzZQotKyMJaW5jbHVkZSA8c29jaS1iYWNrZW5kLmg+Ci0rI2VuZGlmCi0rLy8KLSsj aW5jbHVkZSA8bGlicHEtZmUuaD4gLy8gUG9zdEdyZVNRTCBjbGllbnQKLSAjaW5jbHVkZSA8dmVj dG9yPgotIAotICNpZmRlZiBfTVNDX1ZFUgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2ktMy4wLjBf dHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1p bnRvLXR5cGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjI2ODgwMDY2ICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5 cGUuY3BwCTIwMDktMDQtMTYgMTk6Mzc6MDUuMDAwMDAwMDAwICswMjAwCi1AQCAtOCw5ICs4LDE2 IEBACi0gI2RlZmluZSBTT0NJX1BPU1RHUkVTUUxfU09VUkNFCi0gI2luY2x1ZGUgInNvY2ktcG9z dGdyZXNxbC5oIgotICNpbmNsdWRlICJjb21tb24uaCIKLS0jaW5jbHVkZSAicm93aWQuaCIKLS0j aW5jbHVkZSAiYmxvYi5oIgotLSNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJwcQot Ky8vCi0rI2lmIGRlZmluZWQoU09DSV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUg PHNvY2kvY29yZS9ibG9iLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvcm93aWQuaD4K LSsjZWxzZQotKyMgICAgICAgaW5jbHVkZSA8YmxvYi5oPgotKyMgICAgICAgaW5jbHVkZSA8cm93 aWQuaD4KLSsjZW5kaWYKLSsvLwotKyNpbmNsdWRlIDxsaWJwcS9saWJwcS1mcy5oPiAvLyBsaWJw cSAoUG9zdEdyZVNRTCBjbGllbnQpCi0gI2luY2x1ZGUgPGNjdHlwZT4KLSAjaW5jbHVkZSA8Y3N0 ZGlvPgotICNpbmNsdWRlIDxjc3RyaW5nPgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNl LXR5cGUuY3BwCTIwMTEtMDItMDggMjM6NTM6MjYuNjI2ODgwMDY2ICswMTAwCi0rKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5j cHAJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC03LDggKzcsMTQgQEAK LSAKLSAjZGVmaW5lIFNPQ0lfUE9TVEdSRVNRTF9TT1VSQ0UKLSAjaW5jbHVkZSAic29jaS1wb3N0 Z3Jlc3FsLmgiCi0tI2luY2x1ZGUgInJvd2lkLmgiCi0tI2luY2x1ZGUgPGxpYnBxL2xpYnBxLWZz Lmg+IC8vIGxpYnBxCi0rLy8KLSsjaWYgZGVmaW5lZChTT0NJX0hFQURFUlNfQlVSSUVEKQotKyMg ICAgICAgaW5jbHVkZSA8c29jaS9jb3JlL3Jvd2lkLmg+Ci0rI2Vsc2UKLSsjICAgICAgIGluY2x1 ZGUgPHJvd2lkLmg+Ci0rI2VuZGlmCi0rLy8KLSsjaW5jbHVkZSA8bGlicHEvbGlicHEtZnMuaD4g Ly8gbGlicHEgKFBvc3RHcmVTUUwgY2xpZW50KQotICNpbmNsdWRlIDxjY3R5cGU+Ci0gI2luY2x1 ZGUgPGNzdGRpbz4KLSAjaW5jbHVkZSA8Y3N0cmluZz4KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3Rn cmVzcWwuY3BwCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAkyMDExLTAyLTA4IDIzOjUzOjI2LjY4MDg4MTA5MiAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVz dC90ZXN0LXBvc3RncmVzcWwuY3BwCTIwMTAtMDEtMjMgMTM6MjU6NTcuMDAwMDAwMDAwICswMTAw Ci1AQCAtNSw5ICs1LDE3IEBACi0gLy8gaHR0cDovL3d3dy5ib29zdC5vcmcvTElDRU5TRV8xXzAu dHh0KQotIC8vCi0gCi0tI2luY2x1ZGUgInNvY2kuaCIKLS0jaW5jbHVkZSAic29jaS1wb3N0Z3Jl c3FsLmgiCi0tI2luY2x1ZGUgImNvbW1vbi10ZXN0cy5oIgotKy8vCi0rI2lmIGRlZmluZWQoU09D SV9IRUFERVJTX0JVUklFRCkKLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9zb2NpLmg+Ci0r IyAgICAgICBpbmNsdWRlIDxzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29jaS1wb3N0Z3Jlc3Fs Lmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaD4KLSsj ZWxzZQotKyMJaW5jbHVkZSA8c29jaS5oPgotKyMJaW5jbHVkZSA8c29jaS1wb3N0Z3Jlc3FsLmg+ Ci0rIyAgICAgICBpbmNsdWRlIDx0ZXN0L2NvbW1vbi10ZXN0cy5oPgotKyNlbmRpZgotKy8vCi0g I2luY2x1ZGUgPGlvc3RyZWFtPgotICNpbmNsdWRlIDxzc3RyZWFtPgotICNpbmNsdWRlIDxzdHJp bmc+Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVy LmNwcCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcAotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9iYWNrZW5kLWxvYWRlci5jcHAJMjAxMS0wMi0w OCAyMzo1MzoyNi42MTc4Nzk4OTYgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9j b3JlL2JhY2tlbmQtbG9hZGVyLmNwcAkyMDEwLTAxLTIzIDEzOjI1OjU3LjAwMDAwMDAwMCArMDEw MAotQEAgLTExLDYgKzExLDkgQEAKLSAjaW5jbHVkZSA8bWFwPgotICNpbmNsdWRlIDxjYXNzZXJ0 PgotICNpbmNsdWRlIDxjc3RkbGliPgotKyNpZm5kZWYgX01TQ19WRVIKLSsjaW5jbHVkZSA8c3Rk aW50Lmg+Ci0rI2VuZGlmCi0gCi0gdXNpbmcgbmFtZXNwYWNlIHNvY2k7Ci0gdXNpbmcgbmFtZXNw YWNlIHNvY2k6OmR5bmFtaWNfYmFja2VuZHM7Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaCBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Nv Y2ktcGxhdGZvcm0uaAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9zb2NpLXBsYXRm b3JtLmgJMjAxMS0wMi0wOCAyMzo1MzoyNi42MjA4Nzk5NTMgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaAkyMDEwLTAxLTIzIDEzOjI1OjU3LjAw MDAwMDAwMCArMDEwMAotQEAgLTEyLDggKzEyLDEwIEBACi0gI2lmZGVmIF9NU0NfVkVSCi0gCi0g Ly8gRGVmaW5lIGlmIHlvdSBoYXZlIHRoZSB2c25wcmludGYgdmFyaWFudHMuCi0tI2RlZmluZSBI QVZFX1ZTTlBSSU5URiAxCi0tI2RlZmluZSB2c25wcmludGYgX3ZzbnByaW50ZgotKyNpZiBfTVND X1ZFUiA8IDE1MDAKLSsjIGRlZmluZSBIQVZFX1ZTTlBSSU5URiAxCi0rIyBkZWZpbmUgdnNucHJp bnRmIF92c25wcmludGYKLSsjZW5kaWYKLSAKLSAvLyBEZWZpbmUgaWYgeW91IGhhdmUgdGhlIHNu cHJpbnRmIHZhcmlhbnRzLgotICNkZWZpbmUgSEFWRV9TTlBSSU5URiAxCi1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kv Y29yZS9zb2NpLXNpbXBsZS5jcHAJMjAxMS0wMi0wOCAyMzo1MzoyNi42Nzc4ODEwMzUgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcAkyMDEwLTAx LTIzIDEzOjI1OjU3LjAwMDAwMDAwMCArMDEwMAotQEAgLTQ3Myw3ICs0NzMsNyBAQAotIC8vIGhl bHBlciBmb3IgZm9ybWF0dGluZyBkYXRlIHZhbHVlcwotIGNoYXIgY29uc3QgKiBmb3JtYXRfZGF0 ZShzdGF0ZW1lbnRfd3JhcHBlciAmIHdyYXBwZXIsIHN0ZDo6dG0gY29uc3QgJiBkKQotIHsKLS0g ICAgc3ByaW50Zih3cmFwcGVyLmRhdGVfZm9ybWF0dGVkLCAiJWQgJWQgJWQgJWQgJWQgJWQiLAot KyAgICBzdGQ6OnNwcmludGYod3JhcHBlci5kYXRlX2Zvcm1hdHRlZCwgIiVkICVkICVkICVkICVk ICVkIiwKLSAgICAgICAgIGQudG1feWVhciArIDE5MDAsIGQudG1fbW9uICsgMSwgZC50bV9tZGF5 LAotICAgICAgICAgZC50bV9ob3VyLCBkLnRtX21pbiwgZC50bV9zZWMpOwotIAotQEAgLTQ5MCw3 ICs0OTAsNyBAQAotICAgICBpbnQgaG91cjsKLSAgICAgaW50IG1pbnV0ZTsKLSAgICAgaW50IHNl Y29uZDsKLS0gICAgaW50IGNvbnN0IGNvbnZlcnRlZCA9IHNzY2FuZih2YWwsICIlZCAlZCAlZCAl ZCAlZCAlZCIsCi0rICAgIGludCBjb25zdCBjb252ZXJ0ZWQgPSBzdGQ6OnNzY2FuZih2YWwsICIl ZCAlZCAlZCAlZCAlZCAlZCIsCi0gICAgICAgICAmeWVhciwgJm1vbnRoLCAmZGF5LCAmaG91ciwg Jm1pbnV0ZSwgJnNlY29uZCk7Ci0gICAgIGlmIChjb252ZXJ0ZWQgIT0gNikKLSAgICAgewotQEAg LTE1MTEsNyArMTUxMSw3IEBACi0gCi0gICAgIC8vIGZvcm1hdCBpczogIllZWVkgTU0gREQgaGgg bW0gc3MiCi0gICAgIHN0ZDo6dG0gY29uc3QgJiBkID0gd3JhcHBlci0+dXNlX2RhdGVzW25hbWVd OwotLSAgICBzcHJpbnRmKHdyYXBwZXItPmRhdGVfZm9ybWF0dGVkLCAiJWQgJWQgJWQgJWQgJWQg JWQiLAotKyAgICBzdGQ6OnNwcmludGYod3JhcHBlci0+ZGF0ZV9mb3JtYXR0ZWQsICIlZCAlZCAl ZCAlZCAlZCAlZCIsCi0gICAgICAgICBkLnRtX3llYXIgKyAxOTAwLCBkLnRtX21vbiArIDEsIGQu dG1fbWRheSwKLSAgICAgICAgIGQudG1faG91ciwgZC50bV9taW4sIGQudG1fc2VjKTsKLSAKLUBA IC0xNTI4LDEwICsxNTI4LDEwIEBACi0gCi0gICAgICAgICAvLyBiaW5kIGFsbCBpbnRvIGVsZW1l bnRzCi0gCi0tICAgICAgICBzaXplX3QgY29uc3QgaW50b19lbGVtZW50cyA9IHdyYXBwZXItPmlu dG9fdHlwZXMuc2l6ZSgpOwotKyAgICAgICAgaW50IGNvbnN0IGludG9fZWxlbWVudHMgPSBzdGF0 aWNfY2FzdDxpbnQ+KHdyYXBwZXItPmludG9fdHlwZXMuc2l6ZSgpKTsKLSAgICAgICAgIGlmICh3 cmFwcGVyLT5pbnRvX2tpbmQgPT0gc3RhdGVtZW50X3dyYXBwZXI6OnNpbmdsZSkKLSAgICAgICAg IHsKLS0gICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSAhPSBpbnRvX2VsZW1lbnRzOyAr K2kpCi0rICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0gaW50b19lbGVtZW50czsgKytp KQotICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgc3dpdGNoICh3cmFwcGVyLT5pbnRv X3R5cGVzW2ldKQotICAgICAgICAgICAgICAgICB7Ci1AQCAtMTU2Myw4ICsxNTYzLDcgQEAKLSAg ICAgICAgIGVsc2UKLSAgICAgICAgIHsKLSAgICAgICAgICAgICAvLyB2ZWN0b3IgZWxlbWVudHMK LS0KLS0gICAgICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSAhPSBpbnRvX2VsZW1lbnRzOyAr K2kpCi0rICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgIT0gaW50b19lbGVtZW50czsgKytp KQotICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICAgc3dpdGNoICh3cmFwcGVyLT5pbnRv X3R5cGVzW2ldKQotICAgICAgICAgICAgICAgICB7Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmggc29jaS0zLjAuMF90cmVwMzAwL3NvY2kv Y29yZS90ZXN0L2NvbW1vbi10ZXN0cy5oCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3Jl L3Rlc3QvY29tbW9uLXRlc3RzLmgJMjAxMS0wMi0wOCAyMzo1MzoyNi42MTk4Nzk5MzQgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgJMjAw OS0wNS0wNiAwMDowMjozNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC04LDE2ICs4LDMwIEBACi0gI2lm bmRlZiBTT0NJX0NPTU1PTl9URVNUU19IX0lOQ0xVREVECi0gI2RlZmluZSBTT0NJX0NPTU1PTl9U RVNUU19IX0lOQ0xVREVECi0gCi0tI2luY2x1ZGUgInNvY2kuaCIKLS0jaW5jbHVkZSAic29jaS1j b25maWcuaCIKLSsvLwotKyNpZiBkZWZpbmVkKFNPQ0lfSEVBREVSU19CVVJJRUQpCi0rIyAgICAg ICBpbmNsdWRlIDxzb2NpL2NvcmUvc29jaS5oPgotKyMgICAgICAgaW5jbHVkZSA8c29jaS9jb3Jl L3NvY2ktY29uZmlnLmg+Ci0rIyAgICAgICBpbmNsdWRlIDxzb2NpL2NvcmUvYm9vc3Qtb3B0aW9u YWwuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2kvY29yZS9ib29zdC10dXBsZS5oPgotKyMgICAg ICAgaW5jbHVkZSA8c29jaS9jb3JlL2Jvb3N0LWdyZWdvcmlhbi1kYXRlLmg+Ci0rI2Vsc2UKLSsj CWluY2x1ZGUgPHNvY2kuaD4KLSsjICAgICAgIGluY2x1ZGUgPHNvY2ktY29uZmlnLmg+Ci0rIyAg ICAgICBpbmNsdWRlIDxib29zdC1vcHRpb25hbC5oPgotKyMgICAgICAgaW5jbHVkZSA8Ym9vc3Qt dHVwbGUuaD4KLSsjICAgICAgIGluY2x1ZGUgPGJvb3N0LWdyZWdvcmlhbi1kYXRlLmg+Ci0rI2Vu ZGlmCi0rLy8KLSAKLSAvLyBleHBsaWNpdGx5IHB1bGwgY29udmVyc2lvbnMgZm9yIEJvb3N0J3Mg b3B0aW9uYWwsIHR1cGxlIGFuZCBmdXNpb246Ci0gI2luY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBw PgotLSNpbmNsdWRlIDxib29zdC1vcHRpb25hbC5oPgotLSNpbmNsdWRlIDxib29zdC10dXBsZS5o PgotLSNpbmNsdWRlIDxib29zdC1ncmVnb3JpYW4tZGF0ZS5oPgotICNpZiBkZWZpbmVkKEJPT1NU X1ZFUlNJT04pICYmIEJPT1NUX1ZFUlNJT04gPj0gMTAzNTAwCi0rI2lmIGRlZmluZWQoU09DSV9I RUFERVJTX0JVUklFRCkKLSsjaW5jbHVkZSA8c29jaS9jb3JlL2Jvb3N0LWZ1c2lvbi5oPgotKyNl bHNlCi0gI2luY2x1ZGUgPGJvb3N0LWZ1c2lvbi5oPgotKyNlbmRpZgotICNlbmRpZiAvLyBCT09T VF9WRVJTSU9OCi0gCi0gI2luY2x1ZGUgPGFsZ29yaXRobT4KCmRpZmYgLS1naXQgYS9zb2NpLTMu MC4wLWdjYzQ2LWNvbXBhdGliaWxpdHkucGF0Y2ggYi9zb2NpLTMuMC4wLWdjYzQ2LWNvbXBhdGli aWxpdHkucGF0Y2gKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM2YjdmYTUuLjAwMDAw MDAKLS0tIGEvc29jaS0zLjAuMC1nY2M0Ni1jb21wYXRpYmlsaXR5LnBhdGNoCisrKyAvZGV2L251 bGwKQEAgLTEsMTQ1ICswLDAgQEAKLWRpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9t eXNxbC9jb21tb24uaCBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvY29tbW9u LmgKLS0tLSBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9jb21tb24uaAkyMDA4LTA3LTAz IDA5OjIyOjU3LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNr ZW5kcy9teXNxbC9jb21tb24uaAkyMDA5LTA1LTIzIDEzOjExOjAzLjAwMDAwMDAwMCArMDIwMAot QEAgLTEwLDYgKzEwLDcgQEAKLSAKLSAjaW5jbHVkZSA8c3N0cmVhbT4KLSAjaW5jbHVkZSAic29j aS1teXNxbC5oIgotKyNpbmNsdWRlIDxjdGltZT4KLSAKLSBuYW1lc3BhY2Ugc29jaQotIHsKLWRp ZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBzb2NpLTMu MC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAKLS0tLSBzb2NpLTMuMC4w L3NyYy9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAwMDAw MDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zZXNz aW9uLmNwcAkyMDA5LTA1LTIzIDEzOjExOjAzLjAwMDAwMDAwMCArMDIwMAotQEAgLTExLDcgKzEx LDggQEAKLSAjaW5jbHVkZSA8Y2N0eXBlPgotICNpbmNsdWRlIDxjZXJybm8+Ci0gI2luY2x1ZGUg PGNpc282NDY+Ci0tCi0rI2luY2x1ZGUgPGNzdGRsaWI+Ci0rI2luY2x1ZGUgPGNsaW1pdHM+Ci0g Ci0gI2lmZGVmIF9NU0NfVkVSCi0gI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKLWRpZmYg LU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmggc29jaS0zLjAu MF80LXBhY2svc3JjL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotLS0tIHNvY2ktMy4wLjAv c3JjL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaCAgMjAxMS0wMi0wOCAyMzoxNzowNi4zODk1 NDM0MDkgKzAxMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwvc29j aS1teXNxbC5oIDIwMTEtMDItMDggMjI6Mjk6NTQuMDAwMDAwMDAwICswMTAwCi1AQCAtMjQ1LDYg KzI1Niw3IEBACi0gCi0gc3RydWN0IG15c3FsX2JhY2tlbmRfZmFjdG9yeSA6IGJhY2tlbmRfZmFj dG9yeQotIHsKLSsJbXlzcWxfYmFja2VuZF9mYWN0b3J5KCkge30KLSAgICAgdmlydHVhbCBteXNx bF9zZXNzaW9uX2JhY2tlbmQgKiBtYWtlX3Nlc3Npb24oCi0gICAgICAgICBzdGQ6OnN0cmluZyBj b25zdCAmY29ubmVjdFN0cmluZykgY29uc3Q7Ci0gfTsKLUBAIC0yNTksNiArMjcxLDYgQEAKLSAK LSB9IC8vIGV4dGVybiAiQyIKLSAKLS19IC8vIG5hbWVzcGFjZSBTT0NJCi0rfSAvLyBuYW1lc3Bh Y2Ugc29jaQotIAotICNlbmRpZiAvLyBTT0NJX01ZU1FMX0hfSU5DTFVERUQKLWRpZmYgLU51ciBz b2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIHNvY2kt My4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0t LS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAky MDA4LTA1LTMwIDEzOjMzOjQ1LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNr L3NyYy9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCTIwMDktMDUtMjMgMTM6 MTE6MDMuMDAwMDAwMDAwICswMjAwCi1AQCAtMTIsNiArMTIsOCBAQAotICNpbmNsdWRlICJjb21t b24uaCIKLSAjaW5jbHVkZSA8Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8Y2Fzc2VydD4KLSsjaW5jbHVk ZSA8Y3RpbWU+Ci0rI2luY2x1ZGUgPGNzdHJpbmc+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi0gI3By YWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNr ZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2Jh Y2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjAvc3JjL2Jh Y2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcAkyMDA4LTA1LTE1IDE1OjU4OjM4LjAw MDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9teXNxbC9z dGFuZGFyZC11c2UtdHlwZS5jcHAJMjAwOS0wNS0yMyAxMzoyNDo0Mi4wMDAwMDAwMDAgKzAyMDAK LUBAIC0xMCw4ICsxMCwxMCBAQAotICNpbmNsdWRlICJzb2NpLW15c3FsLmgiCi0gI2luY2x1ZGUg ImNvbW1vbi5oIgotICNpbmNsdWRlIDxzb2NpLXBsYXRmb3JtLmg+Ci0rLy8KLSAjaW5jbHVkZSA8 Y2lzbzY0Nj4KLSAjaW5jbHVkZSA8bGltaXRzPgotKyNpbmNsdWRlIDxjc3RkaW8+Ci0gI2luY2x1 ZGUgPGNzdHJpbmc+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi1kaWZmIC1OdXIgc29jaS0zLjAuMC9z cmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcCBzb2NpLTMuMC4wXzQtcGFjay9z cmMvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotLS0tIHNvY2ktMy4wLjAvc3Jj L2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAJMjAwOC0wNS0xNSAxNTo1ODozOC4w MDAwMDAwMDAgKzAyMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvbXlzcWwv dmVjdG9yLXVzZS10eXBlLmNwcAkyMDA5LTA1LTIzIDEzOjI1OjExLjAwMDAwMDAwMCArMDIwMAot QEAgLTEwLDkgKzEwLDEyIEBACi0gI2luY2x1ZGUgInNvY2ktbXlzcWwuaCIKLSAjaW5jbHVkZSAi Y29tbW9uLmgiCi0gI2luY2x1ZGUgPHNvY2ktcGxhdGZvcm0uaD4KLSsvLwotICNpbmNsdWRlIDxj aXNvNjQ2PgotICNpbmNsdWRlIDxsaW1pdHM+Ci0rI2luY2x1ZGUgPGNzdGRpbz4KLSAjaW5jbHVk ZSA8Y3N0cmluZz4KLSsjaW5jbHVkZSA8Y3RpbWU+Ci0gCi0gI2lmZGVmIF9NU0NfVkVSCi0gI3By YWdtYSB3YXJuaW5nKGRpc2FibGU6NDM1NSkKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9z cmMvYmFja2VuZHMvb3JhY2xlL3NvY2ktb3JhY2xlLmggc29jaS0zLjAuMF90cmVwMzAwL3NyYy9i YWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9i YWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCAgICAgICAgMjAxMS0wMi0wOCAyMzoxNzowNi4z ODk1NDM0MDkgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc3JjL2JhY2tlbmRzL29yYWNs ZS9zb2NpLW9yYWNsZS5oICAgICAgIDIwMTEtMDItMDggMjI6Mjk6NTQuMDAwMDAwMDAwICswMTAw Ci1AQCAtMjY5LDYgKzI3NCw3IEBACi0gCi0gc3RydWN0IG9yYWNsZV9iYWNrZW5kX2ZhY3Rvcnkg OiBiYWNrZW5kX2ZhY3RvcnkKLSB7Ci0rCW9yYWNsZV9iYWNrZW5kX2ZhY3RvcnkoKSB7fQotICAg ICB2aXJ0dWFsIG9yYWNsZV9zZXNzaW9uX2JhY2tlbmQgKiBtYWtlX3Nlc3Npb24oCi0gICAgICAg ICBzdGQ6OnN0cmluZyBjb25zdCAmY29ubmVjdFN0cmluZykgY29uc3Q7Ci0gfTsKLWRpZmYgLU51 ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2NvbW1vbi5jcHAgc29jaS0zLjAu MF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAotLS0tIHNvY2ktMy4w LjAvc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAkyMDA4LTA2LTI3IDE2OjM4OjA1 LjAwMDAwMDAwMCArMDIwMAotKysrIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL2NvbW1vbi5jcHAJMjAwOS0wNS0yMyAxMzoyMzozOC4wMDAwMDAwMDAgKzAyMDAKLUBA IC03LDcgKzcsOSBAQAotIAotICNpbmNsdWRlICJjb21tb24uaCIKLSAjaW5jbHVkZSA8c29jaS1i YWNrZW5kLmg+Ci0rLy8KLSAjaW5jbHVkZSA8Y3N0ZGxpYj4KLSsjaW5jbHVkZSA8Y3N0ZGlvPgot ICNpbmNsdWRlIDxjdGltZT4KLSAKLSAKLWRpZmYgLU51ciBzb2NpLTMuMC4wL3NyYy9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3NvY2ktcG9zdGdyZXNxbC5oCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFj a2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCAgICAgICAgMjAxMS0wMi0wOCAyMzox NzowNi4zODY1NDMzNTMgKzAxMDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMv cG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaCAgICAgICAyMDExLTAyLTA4IDIyOjI5OjU0LjAw MDAwMDAwMCArMDEwMAotQEAgLTI0MSw2ICsyNDYsNyBAQAotIAotIHN0cnVjdCBwb3N0Z3Jlc3Fs X2JhY2tlbmRfZmFjdG9yeSA6IGJhY2tlbmRfZmFjdG9yeQotIHsKLSsJcG9zdGdyZXNxbF9iYWNr ZW5kX2ZhY3RvcnkoKSB7fQotICAgICB2aXJ0dWFsIHBvc3RncmVzcWxfc2Vzc2lvbl9iYWNrZW5k ICogbWFrZV9zZXNzaW9uKAotICAgICAgICAgc3RkOjpzdHJpbmcgY29uc3QgJiBjb25uZWN0U3Ry aW5nKSBjb25zdDsKLSB9OwotZGlmZiAtTnVyIHNvY2ktMy4wLjAvc3JjL2NvcmUvc29jaS1zaW1w bGUuY3BwIHNvY2ktMy4wLjBfNC1wYWNrL3NyYy9jb3JlL3NvY2ktc2ltcGxlLmNwcAotLS0tIHNv Y2ktMy4wLjAvc3JjL2NvcmUvc29jaS1zaW1wbGUuY3BwCTIwMDgtMDctMDEgMDk6NDI6MjUuMDAw MDAwMDAwICswMjAwCi0rKysgc29jaS0zLjAuMF80LXBhY2svc3JjL2NvcmUvc29jaS1zaW1wbGUu Y3BwCTIwMDktMDUtMjMgMTM6MjE6MTQuMDAwMDAwMDAwICswMjAwCi1AQCAtOSw2ICs5LDggQEAK LSAKLSAjaW5jbHVkZSAic29jaS1zaW1wbGUuaCIKLSAjaW5jbHVkZSAic29jaS5oIgotKy8vCi0r I2luY2x1ZGUgPGNzdGRpbz4KLSAKLSB1c2luZyBuYW1lc3BhY2Ugc29jaTsKLQotCi1kaWZmIC1O dXIgc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNx bC5jcHAgc29jaS0zLjAuMF80LXBhY2svc3JjL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0 LXBvc3RncmVzcWwuY3BwCi0tLS0gc29jaS0zLjAuMC9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC90 ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAgMjAwOC0wNi0wNSAyMjo0MTo1OC4wMDAwMDAwMDAgKzAy MDAKLSsrKyBzb2NpLTMuMC4wXzQtcGFjay9zcmMvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rl c3QtcG9zdGdyZXNxbC5jcHAgIDIwMTAtMDEtMjMgMTM6MTc6MjguMDAwMDAwMDAwICswMTAwCi1A QCAtMTUsNiArMTUsNyBAQAotICNpbmNsdWRlIDxjbWF0aD4KLSAjaW5jbHVkZSA8Y3RpbWU+Ci0g I2luY2x1ZGUgPGNzdGRsaWI+Ci0rI2luY2x1ZGUgPGNzdHJpbmc+Ci0gCi0gdXNpbmcgbmFtZXNw YWNlIHNvY2k7Ci0gdXNpbmcgbmFtZXNwYWNlIHNvY2k6OnRlc3RzOwotCgpkaWZmIC0tZ2l0IGEv c29jaS0zLjAuMC1nbnUtYXV0b3Rvb2xzLWNvbXBhdGliaWxpdHkucGF0Y2ggYi9zb2NpLTMuMC4w LWdudS1hdXRvdG9vbHMtY29tcGF0aWJpbGl0eS5wYXRjaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMzcwODY0Ni4uMDAwMDAwMAotLS0gYS9zb2NpLTMuMC4wLWdudS1hdXRvdG9vbHMt Y29tcGF0aWJpbGl0eS5wYXRjaAorKysgL2Rldi9udWxsCkBAIC0xLDYxMTc1ICswLDAgQEAKLWRp ZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9hY2xvY2FsLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9h Y2xvY2FsLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svYWNsb2NhbC5tNAkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9hY2xvY2FsLm00 CTIwMTEtMDctMDMgMTg6NDQ6MjUuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDk2MSBAQAot KyMgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgYWNsb2NhbCAxLjExLjEgLSotIEF1dG9jb25m IC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAyLCAyMDAzLCAyMDA0LAotKyMgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0 d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBl cm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91 dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsK LSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwg YmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBl cm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2Yg TUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4K LSsKLSttNF9pZm5kZWYoW0FDX0FVVE9DT05GX1ZFUlNJT05dLAotKyAgW200X2NvcHkoW200X1BB Q0tBR0VfVkVSU0lPTl0sIFtBQ19BVVRPQ09ORl9WRVJTSU9OXSldKWRubAotK200X2lmKG00X2Rl Zm4oW0FDX0FVVE9DT05GX1ZFUlNJT05dKSwgWzIuNjhdLCwKLStbbTRfd2FybmluZyhbdGhpcyBm aWxlIHdhcyBnZW5lcmF0ZWQgZm9yIGF1dG9jb25mIDIuNjguCi0rWW91IGhhdmUgYW5vdGhlciB2 ZXJzaW9uIG9mIGF1dG9jb25mLiAgSXQgbWF5IHdvcmssIGJ1dCBpcyBub3QgZ3VhcmFudGVlZCB0 by4KLStJZiB5b3UgaGF2ZSBwcm9ibGVtcywgeW91IG1heSBuZWVkIHRvIHJlZ2VuZXJhdGUgdGhl IGJ1aWxkIHN5c3RlbSBlbnRpcmVseS4KLStUbyBkbyBzbywgdXNlIHRoZSBwcm9jZWR1cmUgZG9j dW1lbnRlZCBieSB0aGUgcGFja2FnZSwgdHlwaWNhbGx5IGBhdXRvcmVjb25mJy5dKV0pCi0rCi0r IyBDb3B5cmlnaHQgKEMpIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0 IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwot KyMgQU1fQVVUT01BS0VfVkVSU0lPTihWRVJTSU9OKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotKyMgQXV0b21ha2UgWC5ZIHRyYWNlcyB0aGlzIG1hY3JvIHRvIGVuc3VyZSBhY2xv Y2FsLm00IGhhcyBiZWVuCi0rIyBnZW5lcmF0ZWQgZnJvbSB0aGUgbTQgZmlsZXMgYWNjb21wYW55 aW5nIEF1dG9tYWtlIFguWS4KLSsjIChUaGlzIHByaXZhdGUgbWFjcm8gc2hvdWxkIG5vdCBiZSBj YWxsZWQgb3V0c2lkZSB0aGlzIGZpbGUuKQotK0FDX0RFRlVOKFtBTV9BVVRPTUFLRV9WRVJTSU9O XSwKLStbYW1fX2FwaV92ZXJzaW9uPScxLjExJwotK2RubCBTb21lIHVzZXJzIGZpbmQgQU1fQVVU T01BS0VfVkVSU0lPTiBhbmQgbWlzdGFrZSBpdCBmb3IgYSB3YXkgdG8KLStkbmwgcmVxdWlyZSBz b21lIG1pbmltdW0gdmVyc2lvbi4gIFBvaW50IHRoZW0gdG8gdGhlIHJpZ2h0IG1hY3JvLgotK200 X2lmKFskMV0sIFsxLjExLjFdLCBbXSwKLSsgICAgICBbQUNfRkFUQUwoW0RvIG5vdCBjYWxsICQw LCB1c2UgQU1fSU5JVF9BVVRPTUFLRShbJDFdKS5dKV0pZG5sCi0rXSkKLSsKLSsjIF9BTV9BVVRP Q09ORl9WRVJTSU9OKFZFUlNJT04pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KyMgYWNsb2NhbCB0cmFjZXMgdGhpcyBtYWNybyB0byBmaW5kIHRoZSBBdXRvY29uZiB2ZXJzaW9u LgotKyMgVGhpcyBpcyBhIHByaXZhdGUgbWFjcm8gdG9vLiAgVXNpbmcgbTRfZGVmaW5lIHNpbXBs aWZpZXMKLSsjIHRoZSBsb2dpYyBpbiBhY2xvY2FsLCB3aGljaCBjYW4gc2ltcGx5IGlnbm9yZSB0 aGlzIGRlZmluaXRpb24uCi0rbTRfZGVmaW5lKFtfQU1fQVVUT0NPTkZfVkVSU0lPTl0sIFtdKQot KwotKyMgQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTgotKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgQ2FsbCBBTV9BVVRPTUFLRV9WRVJTSU9OIGFuZCBBTV9BVVRP TUFLRV9WRVJTSU9OIHNvIHRoZXkgY2FuIGJlIHRyYWNlZC4KLSsjIFRoaXMgZnVuY3Rpb24gaXMg QUNfUkVRVUlSRWQgYnkgQU1fSU5JVF9BVVRPTUFLRS4KLStBQ19ERUZVTihbQU1fU0VUX0NVUlJF TlRfQVVUT01BS0VfVkVSU0lPTl0sCi0rW0FNX0FVVE9NQUtFX1ZFUlNJT04oWzEuMTEuMV0pZG5s Ci0rbTRfaWZuZGVmKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSwKLSsgIFttNF9jb3B5KFttNF9QQUNL QUdFX1ZFUlNJT05dLCBbQUNfQVVUT0NPTkZfVkVSU0lPTl0pXSlkbmwKLStfQU1fQVVUT0NPTkZf VkVSU0lPTihtNF9kZWZuKFtBQ19BVVRPQ09ORl9WRVJTSU9OXSkpXSkKLSsKLSsjIEFNX0FVWF9E SVJfRVhQQU5EICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0 b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDMsIDIwMDUgIEZyZWUgU29m dHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJl OyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlz c2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1v ZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMg Rm9yIHByb2plY3RzIHVzaW5nIEFDX0NPTkZJR19BVVhfRElSKFtmb29dKSwgQXV0b2NvbmYgc2V0 cwotKyMgJGFjX2F1eF9kaXIgdG8gYCRzcmNkaXIvZm9vJy4gIEluIG90aGVyIHByb2plY3RzLCBp dCBpcyBzZXQgdG8KLSsjIGAkc3JjZGlyJywgYCRzcmNkaXIvLi4nLCBvciBgJHNyY2Rpci8uLi8u LicuCi0rIwotKyMgT2YgY291cnNlLCBBdXRvbWFrZSBtdXN0IGhvbm9yIHRoaXMgdmFyaWFibGUg d2hlbmV2ZXIgaXQgY2FsbHMgYQotKyMgdG9vbCBmcm9tIHRoZSBhdXhpbGlhcnkgZGlyZWN0b3J5 LiAgVGhlIHByb2JsZW0gaXMgdGhhdCAkc3JjZGlyIChhbmQKLSsjIHRoZXJlZm9yZSAkYWNfYXV4 X2RpciBhcyB3ZWxsKSBjYW4gYmUgZWl0aGVyIGFic29sdXRlIG9yIHJlbGF0aXZlLAotKyMgZGVw ZW5kaW5nIG9uIGhvdyBjb25maWd1cmUgaXMgcnVuLiAgVGhpcyBpcyBwcmV0dHkgYW5ub3lpbmcs IHNpbmNlCi0rIyBpdCBtYWtlcyAkYWNfYXV4X2RpciBxdWl0ZSB1bnVzYWJsZSBpbiBzdWJkaXJl Y3RvcmllczogaW4gdGhlIHRvcAotKyMgc291cmNlIGRpcmVjdG9yeSwgYW55IGZvcm0gd2lsbCB3 b3JrIGZpbmUsIGJ1dCBpbiBzdWJkaXJlY3RvcmllcyBhCi0rIyByZWxhdGl2ZSBwYXRoIG5lZWRz IHRvIGJlIGFkanVzdGVkIGZpcnN0LgotKyMKLSsjICRhY19hdXhfZGlyL21pc3NpbmcKLSsjICAg IGZhaWxzIHdoZW4gY2FsbGVkIGZyb20gYSBzdWJkaXJlY3RvcnkgaWYgJGFjX2F1eF9kaXIgaXMg cmVsYXRpdmUKLSsjICR0b3Bfc3JjZGlyLyRhY19hdXhfZGlyL21pc3NpbmcKLSsjICAgIGZhaWxz IGlmICRhY19hdXhfZGlyIGlzIGFic29sdXRlLAotKyMgICAgZmFpbHMgd2hlbiBjYWxsZWQgZnJv bSBhIHN1YmRpcmVjdG9yeSBpbiBhIFZQQVRIIGJ1aWxkIHdpdGgKLSsjICAgICAgICAgIGEgcmVs YXRpdmUgJGFjX2F1eF9kaXIKLSsjCi0rIyBUaGUgcmVhc29uIG9mIHRoZSBsYXR0ZXIgZmFpbHVy ZSBpcyB0aGF0ICR0b3Bfc3JjZGlyIGFuZCAkYWNfYXV4X2RpcgotKyMgYXJlIGJvdGggcHJlZml4 ZWQgYnkgJHNyY2Rpci4gIEluIGFuIGluLXNvdXJjZSBidWlsZCB0aGlzIGlzIHVzdWFsbHkKLSsj IGhhcm1sZXNzIGJlY2F1c2UgJHNyY2RpciBpcyBgLicsIGJ1dCB0aGluZ3Mgd2lsbCBicm9rZSB3 aGVuIHlvdQotKyMgc3RhcnQgYSBWUEFUSCBidWlsZCBvciB1c2UgYW4gYWJzb2x1dGUgJHNyY2Rp ci4KLSsjCi0rIyBTbyB3ZSBjb3VsZCB1c2Ugc29tZXRoaW5nIHNpbWlsYXIgdG8gJHRvcF9zcmNk aXIvJGFjX2F1eF9kaXIvbWlzc2luZywKLSsjIGlmZiB3ZSBzdHJpcCB0aGUgbGVhZGluZyAkc3Jj ZGlyIGZyb20gJGFjX2F1eF9kaXIuICBUaGF0IHdvdWxkIGJlOgotKyMgICBhbV9hdXhfZGlyPSdc JCh0b3Bfc3JjZGlyKS8nYGV4cHIgIiRhY19hdXhfZGlyIiA6ICIkc3JjZGlyLy8qXCguKlwpImAK LSsjIGFuZCB0aGVuIHdlIHdvdWxkIGRlZmluZSAkTUlTU0lORyBhcwotKyMgICBNSVNTSU5HPSJc JHtTSEVMTH0gJGFtX2F1eF9kaXIvbWlzc2luZyIKLSsjIFRoaXMgd2lsbCB3b3JrIGFzIGxvbmcg YXMgTUlTU0lORyBpcyBub3QgY2FsbGVkIGZyb20gY29uZmlndXJlLCBiZWNhdXNlCi0rIyB1bmZv cnR1bmF0ZWx5ICQodG9wX3NyY2RpcikgaGFzIG5vIG1lYW5pbmcgaW4gY29uZmlndXJlLgotKyMg SG93ZXZlciB0aGVyZSBhcmUgb3RoZXIgdmFyaWFibGVzLCBsaWtlIENDLCB3aGljaCBhcmUgb2Z0 ZW4gdXNlZCBpbgotKyMgY29uZmlndXJlLCBhbmQgY291bGQgdGhlcmVmb3JlIG5vdCB1c2UgdGhp cyAiZml4ZWQiICRhY19hdXhfZGlyLgotKyMKLSsjIEFub3RoZXIgc29sdXRpb24sIHVzZWQgaGVy ZSwgaXMgdG8gYWx3YXlzIGV4cGFuZCAkYWNfYXV4X2RpciB0byBhbgotKyMgYWJzb2x1dGUgUEFU SC4gIFRoZSBkcmF3YmFjayBpcyB0aGF0IHVzaW5nIGFic29sdXRlIHBhdGhzIHByZXZlbnQgYQot KyMgY29uZmlndXJlZCB0cmVlIHRvIGJlIG1vdmVkIHdpdGhvdXQgcmVjb25maWd1cmF0aW9uLgot KwotK0FDX0RFRlVOKFtBTV9BVVhfRElSX0VYUEFORF0sCi0rW2RubCBSZWx5IG9uIGF1dG9jb25m IHRvIHNldCB1cCBDRFBBVEggcHJvcGVybHkuCi0rQUNfUFJFUkVRKFsyLjUwXSlkbmwKLSsjIGV4 cGFuZCAkYWNfYXV4X2RpciB0byBhbiBhYnNvbHV0ZSBwYXRoCi0rYW1fYXV4X2Rpcj1gY2QgJGFj X2F1eF9kaXIgJiYgcHdkYAotK10pCi0rCi0rIyBBTV9DT05ESVRJT05BTCAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29w eXJpZ2h0IChDKSAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA4 Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KLSsKLSsjIHNlcmlhbCA5Ci0rCi0rIyBBTV9DT05ESVRJT05BTChOQU1FLCBTSEVMTC1D T05ESVRJT04pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBE ZWZpbmUgYSBjb25kaXRpb25hbC4KLStBQ19ERUZVTihbQU1fQ09ORElUSU9OQUxdLAotK1tBQ19Q UkVSRVEoMi41MilkbmwKLSsgaWZlbHNlKFskMV0sIFtUUlVFXSwgIFtBQ19GQVRBTChbJDA6IGlu dmFsaWQgY29uZGl0aW9uOiAkMV0pXSwKLSsJWyQxXSwgW0ZBTFNFXSwgW0FDX0ZBVEFMKFskMDog aW52YWxpZCBjb25kaXRpb246ICQxXSldKWRubAotK0FDX1NVQlNUKFskMV9UUlVFXSlkbmwKLStB Q19TVUJTVChbJDFfRkFMU0VdKWRubAotK19BTV9TVUJTVF9OT1RNQUtFKFskMV9UUlVFXSlkbmwK LStfQU1fU1VCU1RfTk9UTUFLRShbJDFfRkFMU0VdKWRubAotK200X2RlZmluZShbX0FNX0NPTkRf VkFMVUVfJDFdLCBbJDJdKWRubAotK2lmICQyOyB0aGVuCi0rICAkMV9UUlVFPQotKyAgJDFfRkFM U0U9JyMnCi0rZWxzZQotKyAgJDFfVFJVRT0nIycKLSsgICQxX0ZBTFNFPQotK2ZpCi0rQUNfQ09O RklHX0NPTU1BTkRTX1BSRSgKLStbaWYgdGVzdCAteiAiJHskMV9UUlVFfSIgJiYgdGVzdCAteiAi JHskMV9GQUxTRX0iOyB0aGVuCi0rICBBQ19NU0dfRVJST1IoW1tjb25kaXRpb25hbCAiJDEiIHdh cyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkg aW52b2tlZCBjb25kaXRpb25hbGx5Ll1dKQotK2ZpXSldKQotKwotKyMgQ29weXJpZ2h0IChDKSAx OTk5LCAyMDAwLCAyMDAxLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA5Ci0rIyBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBz b2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVk IHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0 aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4K LSsKLSsjIHNlcmlhbCAxMAotKwotKyMgVGhlcmUgYXJlIGEgZmV3IGRpcnR5IGhhY2tzIGJlbG93 IHRvIGF2b2lkIGxldHRpbmcgYEFDX1BST0dfQ0MnIGJlCi0rIyB3cml0dGVuIGluIGNsZWFyLCBp biB3aGljaCBjYXNlIGF1dG9tYWtlLCB3aGVuIHJlYWRpbmcgYWNsb2NhbC5tNCwKLSsjIHdpbGwg dGhpbmsgaXQgc2VlcyBhICp1c2UqLCBhbmQgdGhlcmVmb3JlIHdpbGwgdHJpZ2dlciBhbGwgaXQn cwotKyMgQyBzdXBwb3J0IG1hY2hpbmVyeS4gIEFsc28gbm90ZSB0aGF0IGl0IG1lYW5zIHRoYXQg YXV0b3NjYW4sIHNlZWluZwotKyMgQ0MgZXRjLiBpbiB0aGUgTWFrZWZpbGUsIHdpbGwgYXNrIGZv ciBhbiBBQ19QUk9HX0NDIHVzZS4uLgotKwotKwotKyMgX0FNX0RFUEVOREVOQ0lFUyhOQU1FKQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU2VlIGhvdyB0aGUgY29tcGlsZXIgaW1wbGVt ZW50cyBkZXBlbmRlbmN5IGNoZWNraW5nLgotKyMgTkFNRSBpcyAiQ0MiLCAiQ1hYIiwgIkdDSiIs IG9yICJPQkpDIi4KLSsjIFdlIHRyeSBhIGZldyB0ZWNobmlxdWVzIGFuZCB1c2UgdGhhdCB0byBz ZXQgYSBzaW5nbGUgY2FjaGUgdmFyaWFibGUuCi0rIwotKyMgV2UgZG9uJ3QgQUNfUkVRVUlSRSB0 aGUgY29ycmVzcG9uZGluZyBBQ19QUk9HX0NDIHNpbmNlIHRoZSBsYXR0ZXIgd2FzCi0rIyBtb2Rp ZmllZCB0byBpbnZva2UgX0FNX0RFUEVOREVOQ0lFUyhDQyk7IHdlIHdvdWxkIGhhdmUgYSBjaXJj dWxhcgotKyMgZGVwZW5kZW5jeSwgYW5kIGdpdmVuIHRoYXQgdGhlIHVzZXIgaXMgbm90IGV4cGVj dGVkIHRvIHJ1biB0aGlzIG1hY3JvLAotKyMganVzdCByZWx5IG9uIEFDX1BST0dfQ0MuCi0rQUNf REVGVU4oW19BTV9ERVBFTkRFTkNJRVNdLAotK1tBQ19SRVFVSVJFKFtBTV9TRVRfREVQRElSXSlk bmwKLStBQ19SRVFVSVJFKFtBTV9PVVRQVVRfREVQRU5ERU5DWV9DT01NQU5EU10pZG5sCi0rQUNf UkVRVUlSRShbQU1fTUFLRV9JTkNMVURFXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9ERVBfVFJBQ0td KWRubAotKwotK2lmZWxzZShbJDFdLCBDQywgICBbZGVwY2M9IiRDQyIgICBhbV9jb21waWxlcl9s aXN0PV0sCi0rICAgICAgIFskMV0sIENYWCwgIFtkZXBjYz0iJENYWCIgIGFtX2NvbXBpbGVyX2xp c3Q9XSwKLSsgICAgICAgWyQxXSwgT0JKQywgW2RlcGNjPSIkT0JKQyIgYW1fY29tcGlsZXJfbGlz dD0nZ2NjMyBnY2MnXSwKLSsgICAgICAgWyQxXSwgVVBDLCAgW2RlcGNjPSIkVVBDIiAgYW1fY29t cGlsZXJfbGlzdD1dLAotKyAgICAgICBbJDFdLCBHQ0osICBbZGVwY2M9IiRHQ0oiICBhbV9jb21w aWxlcl9saXN0PSdnY2MzIGdjYyddLAotKyAgICAgICAgICAgICAgICAgICBbZGVwY2M9IiQkMSIg ICBhbV9jb21waWxlcl9saXN0PV0pCi0rCi0rQUNfQ0FDSEVfQ0hFQ0soW2RlcGVuZGVuY3kgc3R5 bGUgb2YgJGRlcGNjXSwKLSsgICAgICAgICAgICAgICBbYW1fY3ZfJDFfZGVwZW5kZW5jaWVzX2Nv bXBpbGVyX3R5cGVdLAotK1tpZiB0ZXN0IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFt X2RlcGNvbXAiOyB0aGVuCi0rICAjIFdlIG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0 aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4gZW5kIHVwCi0rICAjIG1ha2luZyBib2d1cyBmaWxlcyB0 aGF0IHdlIGRvbid0IGtub3cgYWJvdXQgYW5kIG5ldmVyIHJlbW92ZS4gIEZvcgotKyAgIyBpbnN0 YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhhdCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQg dXAKLSsgICMgbWFraW5nIGEgZHVtbXkgZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBt ZWFucyBgcHV0IHRoZSBvdXRwdXQKLSsgICMgaW4gRCcuCi0rICBta2RpciBjb25mdGVzdC5kaXIK LSsgICMgQ29weSBkZXBjb21wIHRvIHN1YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBm aW5kIGl0IGlmIHdlJ3JlCi0rICAjIHVzaW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgotKyAgY3Ag IiRhbV9kZXBjb21wIiBjb25mdGVzdC5kaXIKLSsgIGNkIGNvbmZ0ZXN0LmRpcgotKyAgIyBXZSB3 aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRlcGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNh dXNlCi0rICAjIGl0IGhlbHBzIHRvIGRldGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rl cy4gIEZvciBpbnN0YW5jZQotKyAgIyBib3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1N RCB0byBvdXRwdXQgZGVwZW5kZW5jaWVzIGFzIGEKLSsgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGls YXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQgdGhlIGRlcGVuZGVuY2llcyBpbgotKyAgIyB0aGUgY3Vy cmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0r ICAjIGRpcmVjdG9yeS4KLSsgIG1rZGlyIHN1YgotKwotKyAgYW1fY3ZfJDFfZGVwZW5kZW5jaWVz X2NvbXBpbGVyX3R5cGU9bm9uZQotKyAgaWYgdGVzdCAiJGFtX2NvbXBpbGVyX2xpc3QiID0gIiI7 IHRoZW4KLSsgICAgIGFtX2NvbXBpbGVyX2xpc3Q9YHNlZCAtbiBbJ3MvXiMqXChbYS16QS1aMC05 XSpcKSkkL1wxL3AnXSA8IC4vZGVwY29tcGAKLSsgIGZpCi0rICBhbV9fdW5pdmVyc2FsPWZhbHNl Ci0rICBtNF9jYXNlKFskMV0sIFtDQ10sCi0rICAgIFtjYXNlICIgJGRlcGNjICIgaW4gIygKLSsg ICAgICpcIC1hcmNoXCAqXCAtYXJjaFwgKikgYW1fX3VuaXZlcnNhbD10cnVlIDs7Ci0rICAgICBl c2FjXSwKLSsgICAgW0NYWF0sCi0rICAgIFtjYXNlICIgJGRlcGNjICIgaW4gIygKLSsgICAgICpc IC1hcmNoXCAqXCAtYXJjaFwgKikgYW1fX3VuaXZlcnNhbD10cnVlIDs7Ci0rICAgICBlc2FjXSkK LSsKLSsgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbwotKyAgICAjIFNldHVw IGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBjb21waWxlcnMK LSsgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBjb2x1bW4gODAg KHdpdGggXCksIGFuZAotKyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVwY29tcCBtb2Rl IHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0rICAgICMKLSsgICAgIyBXZSBuZWVkIHRvIHJl Y3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxlciBtYXkKLSsg ICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9ic2N1cmUgY29t bWFuZCBsaW5lcy4KLSsgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0aGUgQUlYIEMg Y29tcGlsZXIuCi0rICAgIDogPiBzdWIvY29uZnRlc3QuYwotKyAgICBmb3IgaSBpbiAxIDIgMyA0 IDUgNjsgZG8KLSsgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCInID4+IHN1Yi9j b25mdGVzdC5jCi0rICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcgY3JlYXRlcyBv bmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKLSsgICAgICAjIFNvbGFyaXMgOCdzIHsvdXNyLH0vYmlu L3NoLgotKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAotKyAgICBkb25lCi0rICAgIGVjaG8g IiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1fX3F1b3RlfSIg PiBjb25mbWYKLSsKLSsgICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycgZm9yIHRoZSBz YWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCi0rICAgICMgbW9kZS4gIEl0IHR1cm5zIG91dCB0aGF0 IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5Ci0rICAgICMgaGFuZGxl IGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLiAgQWxzbywgc29tZSBJbnRlbAot KyAgICAjIHZlcnNpb25zIGhhZCB0cm91YmxlIHdpdGggb3V0cHV0IGluIHN1YmRpcnMKLSsgICAg YW1fX29iaj1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgYW1fX21pbnVzX29iaj0iLW8g JGFtX19vYmoiCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4KLSsgICAgZ2NjKQotKyAgICAgICMgVGhp cyBkZXBtb2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJhY2UgaW4gdW5pdmVyc2FsIG1vZGUuCi0rICAg ICAgdGVzdCAiJGFtX191bml2ZXJzYWwiID0gZmFsc2UgfHwgY29udGludWUKLSsgICAgICA7Owot KyAgICBub3NpZGVlZmZlY3QpCi0rICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVjaGFuaXNtcyBh cmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCi0rICAgICAgIyBvbmx5IGJlIHVzZWQg d2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotKyAgICAgIGlmIHRlc3QgIngkZW5hYmxlX2RlcGVu ZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgotKwljb250aW51ZQotKyAgICAgIGVsc2UKLSsJ YnJlYWsKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIG1zdmlzdWFsY3BwIHwgbXN2Y21zeXMp Ci0rICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywgYnV0IGFsc28sIHRo ZSBtaW51c28gdGVzdCBoYXMKLSsgICAgICAjIG5vdCBydW4geWV0LiAgVGhlc2UgZGVwbW9kZXMg YXJlIGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQKLSsgICAgICAjIHNvIHdlYWsgdGhhdCB0 aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFjdGVkLgotKyAgICAgIGFtX19vYmo9 Y29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgICBhbV9fbWludXNfb2JqPQotKyAgICAgIDs7Ci0r ICAgIG5vbmUpIGJyZWFrIDs7Ci0rICAgIGVzYWMKLSsgICAgaWYgZGVwbW9kZT0kZGVwbW9kZSBc Ci0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9JGFtX19vYmogXAotKyAgICAg ICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVzdC5UUG8gXAot KyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAkYW1fX21pbnVzX29iaiBzdWIvY29u ZnRlc3QuYyBcCi0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAmJgotKyAgICAg ICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVsbCAyPiYxICYm Ci0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4gL2Rldi9udWxs IDI+JjEgJiYKLSsgICAgICAgZ3JlcCAkYW1fX29iaiBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251 bGwgMj4mMSAmJgotKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4gL2Rldi9udWxs IDI+JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25vd24gb3B0aW9u cywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0rICAgICAgIyBvciByZW1hcmtzIChldmVu IHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3NhZ2UKLSsgICAg ICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBvcnRlZC4KLSsg ICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4gdGh1c2x5Ogot KyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBvcHRpb24gJy1N Jzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAjIFRoZSBkaWFnbm9zaXMgY2hhbmdlZCBp biBpY2MgOC4wOgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6IG9wdGlvbiAn LU1QJyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9wdGlvbicgY29u ZnRlc3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNvbmZ0ZXN0LmVy cikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgICAgICAgIGFtX2N2XyQxX2RlcGVu ZGVuY2llc19jb21waWxlcl90eXBlPSRkZXBtb2RlCi0rICAgICAgICBicmVhawotKyAgICAgIGZp Ci0rICAgIGZpCi0rICBkb25lCi0rCi0rICBjZCAuLgotKyAgcm0gLXJmIGNvbmZ0ZXN0LmRpcgot K2Vsc2UKLSsgIGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKLStmaQot K10pCi0rQUNfU1VCU1QoWyQxREVQTU9ERV0sIFtkZXBtb2RlPSRhbV9jdl8kMV9kZXBlbmRlbmNp ZXNfY29tcGlsZXJfdHlwZV0pCi0rQU1fQ09ORElUSU9OQUwoW2FtX19mYXN0ZGVwJDFdLCBbCi0r ICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8gXAotKyAgJiYgdGVz dCAiJGFtX2N2XyQxX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlIiA9IGdjYzNdKQotK10pCi0r Ci0rCi0rIyBBTV9TRVRfREVQRElSCi0rIyAtLS0tLS0tLS0tLS0tCi0rIyBDaG9vc2UgYSBkaXJl Y3RvcnkgbmFtZSBmb3IgZGVwZW5kZW5jeSBmaWxlcy4KLSsjIFRoaXMgbWFjcm8gaXMgQUNfUkVR VUlSRWQgaW4gX0FNX0RFUEVOREVOQ0lFUwotK0FDX0RFRlVOKFtBTV9TRVRfREVQRElSXSwKLStb QUNfUkVRVUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKLStBQ19TVUJTVChbREVQRElSXSwg WyIke2FtX19sZWFkaW5nX2RvdH1kZXBzIl0pZG5sCi0rXSkKLSsKLSsKLSsjIEFNX0RFUF9UUkFD SwotKyMgLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0FNX0RFUF9UUkFDS10sCi0rW0FDX0FSR19F TkFCTEUoZGVwZW5kZW5jeS10cmFja2luZywKLStbICAtLWRpc2FibGUtZGVwZW5kZW5jeS10cmFj a2luZyAgc3BlZWRzIHVwIG9uZS10aW1lIGJ1aWxkCi0rICAtLWVuYWJsZS1kZXBlbmRlbmN5LXRy YWNraW5nICAgZG8gbm90IHJlamVjdCBzbG93IGRlcGVuZGVuY3kgZXh0cmFjdG9yc10pCi0raWYg dGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vOyB0aGVuCi0rICBhbV9k ZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgotKyAgQU1ERVBCQUNLU0xBU0g9J1wnCi0rZmkK LStBTV9DT05ESVRJT05BTChbQU1ERVBdLCBbdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFj a2luZyIgIT0geG5vXSkKLStBQ19TVUJTVChbQU1ERVBCQUNLU0xBU0hdKWRubAotK19BTV9TVUJT VF9OT1RNQUtFKFtBTURFUEJBQ0tTTEFTSF0pZG5sCi0rXSkKLSsKLSsjIEdlbmVyYXRlIGNvZGUg dG8gc2V0IHVwIGRlcGVuZGVuY3kgdHJhY2tpbmcuICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYg LSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIw MDQsIDIwMDUsIDIwMDgKLSsjIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsj IFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u Ci0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRl IGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBu b3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyNzZXJpYWwgNQotKwotKyMgX0FNX09VVFBVVF9ERVBF TkRFTkNZX0NPTU1BTkRTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19E RUZVTihbX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLStbewotKyAgIyBBdXRvY29u ZiAyLjYyIHF1b3RlcyAtLWZpbGUgYXJndW1lbnRzIGZvciBldmFsLCBidXQgbm90IHdoZW4gZmls ZXMKLSsgICMgYXJlIGxpc3RlZCB3aXRob3V0IC0tZmlsZS4gIExldCdzIHBsYXkgc2FmZSBhbmQg b25seSBlbmFibGUgdGhlIGV2YWwKLSsgICMgaWYgd2UgZGV0ZWN0IHRoZSBxdW90aW5nLgotKyAg Y2FzZSAkQ09ORklHX0ZJTEVTIGluCi0rICAqXCcqKSBldmFsIHNldCB4ICIkQ09ORklHX0ZJTEVT IiA7OwotKyAgKikgICBzZXQgeCAkQ09ORklHX0ZJTEVTIDs7Ci0rICBlc2FjCi0rICBzaGlmdAot KyAgZm9yIG1mCi0rICBkbwotKyAgICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBu YW1lIG9mIHRoZSBmaWxlLgotKyAgICBtZj1gZWNobyAiJG1mIiB8IHNlZCAtZSAncy86LiokLy8n YAotKyAgICAjIENoZWNrIHdoZXRoZXIgdGhpcyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFr ZWZpbGUgb3Igbm90LgotKyAgICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFt ZWQgYE1ha2VmaWxlLmluJywgYnV0Ci0rICAgICMgc29tZSBwZW9wbGUgcmVuYW1lIHRoZW07IHNv IGluc3RlYWQgd2UgbG9vayBhdCB0aGUgZmlsZSBjb250ZW50LgotKyAgICAjIEdyZXAnaW5nIHRo ZSBmaXJzdCBsaW5lIGlzIG5vdCBlbm91Z2g6IHNvbWUgcGVvcGxlIHBvc3QtcHJvY2VzcwotKyAg ICAjIGVhY2ggTWFrZWZpbGUuaW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBvZiBlYWNoIGZp bGUgdG8gc2F5IHNvLgotKyAgICAjIEdyZXAnaW5nIHRoZSB3aG9sZSBmaWxlIGlzIG5vdCBnb29k IGVpdGhlcjogQUlYIGdyZXAgaGFzIGEgbGluZQotKyAgICAjIGxpbWl0IG9mIDIwNDgsIGJ1dCBh bGwgc2VkJ3Mgd2Uga25vdyBoYXZlIHVuZGVyc3RhbmQgYXQgbGVhc3QgNDAwMC4KLSsgICAgaWYg c2VkIC1uICdzLF4jLipnZW5lcmF0ZWQgYnkgYXV0b21ha2UuKixYLHAnICIkbWYiIHwgZ3JlcCBY ID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICAgIGRpcnBhcnQ9YEFTX0RJUk5BTUUoIiRtZiIp YAotKyAgICBlbHNlCi0rICAgICAgY29udGludWUKLSsgICAgZmkKLSsgICAgIyBFeHRyYWN0IHRo ZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1ZGUsIGFuZCBhbV9fcXVvdGUKLSsgICAg IyBmcm9tIHRoZSBNYWtlZmlsZSB3aXRob3V0IHJ1bm5pbmcgYG1ha2UnLgotKyAgICBERVBESVI9 YHNlZCAtbiAncy9eREVQRElSID0gLy9wJyA8ICIkbWYiYAotKyAgICB0ZXN0IC16ICIkREVQRElS IiAmJiBjb250aW51ZQotKyAgICBhbV9faW5jbHVkZT1gc2VkIC1uICdzL15hbV9faW5jbHVkZSA9 IC8vcCcgPCAiJG1mImAKLSsgICAgdGVzdCAteiAiYW1fX2luY2x1ZGUiICYmIGNvbnRpbnVlCi0r ICAgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwgIiRtZiJgCi0rICAg ICMgV2hlbiB1c2luZyBhbnNpMmtuciwgVSBtYXkgYmUgZW1wdHkgb3IgYW4gdW5kZXJzY29yZTsg ZXhwYW5kIGl0Ci0rICAgIFU9YHNlZCAtbiAncy9eVSA9IC8vcCcgPCAiJG1mImAKLSsgICAgIyBG aW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5jbHVkZWQgZmlsZXMg d2l0aAotKyAgICAjICQoREVQRElSKSBpbiB0aGVpciBuYW1lcy4gIFdlIGludm9rZSBzZWQgdHdp Y2UgYmVjYXVzZSBpdCBpcyB0aGUKLSsgICAgIyBzaW1wbGVzdCBhcHByb2FjaCB0byBjaGFuZ2lu ZyAkKERFUERJUikgdG8gaXRzIGFjdHVhbCB2YWx1ZSBpbiB0aGUKLSsgICAgIyBleHBhbnNpb24u Ci0rICAgIGZvciBmaWxlIGluIGBzZWQgLW4gIgotKyAgICAgIHMvXiRhbV9faW5jbHVkZSAkYW1f X3F1b3RlXCguKihERVBESVIpLipcKSRhbV9fcXVvdGUiJyQvXDEvcCcgPCIkbWYiIHwgXAotKwkg c2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRVLyciJFUiJy9nJ2A7 IGRvCi0rICAgICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMuCi0rICAgICAgdGVz dCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCi0rICAgICAgZmRpcj1gQVNfRElSTkFN RShbIiRmaWxlIl0pYAotKyAgICAgIEFTX01LRElSX1AoWyRkaXJwYXJ0LyRmZGlyXSkKLSsgICAg ICAjIGVjaG8gImNyZWF0aW5nICRkaXJwYXJ0LyRmaWxlIgotKyAgICAgIGVjaG8gJyMgZHVtbXkn ID4gIiRkaXJwYXJ0LyRmaWxlIgotKyAgICBkb25lCi0rICBkb25lCi0rfQotK10pIyBfQU1fT1VU UFVUX0RFUEVOREVOQ1lfQ09NTUFORFMKLSsKLSsKLSsjIEFNX09VVFBVVF9ERVBFTkRFTkNZX0NP TU1BTkRTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgVGhpcyBtYWNybyBz aG91bGQgb25seSBiZSBpbnZva2VkIG9uY2UgLS0gdXNlIHZpYSBBQ19SRVFVSVJFLgotKyMKLSsj IFRoaXMgY29kZSBpcyBvbmx5IHJlcXVpcmVkIHdoZW4gYXV0b21hdGljIGRlcGVuZGVuY3kgdHJh Y2tpbmcKLSsjIGlzIGVuYWJsZWQuICBGSVhNRS4gIFRoaXMgY3JlYXRlcyBlYWNoIGAuUCcgZmls ZSB0aGF0IHdlIHdpbGwKLSsjIG5lZWQgaW4gb3JkZXIgdG8gYm9vdHN0cmFwIHRoZSBkZXBlbmRl bmN5IGhhbmRsaW5nIGNvZGUuCi0rQUNfREVGVU4oW0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1B TkRTXSwKLStbQUNfQ09ORklHX0NPTU1BTkRTKFtkZXBmaWxlc10sCi0rICAgICBbdGVzdCB4IiRB TURFUF9UUlVFIiAhPSB4IiIgfHwgX0FNX09VVFBVVF9ERVBFTkRFTkNZX0NPTU1BTkRTXSwKLSsg ICAgIFtBTURFUF9UUlVFPSIkQU1ERVBfVFJVRSIgYWNfYXV4X2Rpcj0iJGFjX2F1eF9kaXIiXSkK LStdKQotKwotKyMgRG8gYWxsIHRoZSB3b3JrIGZvciBBdXRvbWFrZS4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgIC0qLSBBdXRvY29uZiAtKi0KLSsKLSsjIENvcHlyaWdodCAoQykgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwKLSsjIDIwMDUs IDIwMDYsIDIwMDgsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIwotKyMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24K LSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJpYWwgMTYKLSsKLSsjIFRoaXMgbWFjcm8gYWN0 dWFsbHkgZG9lcyB0b28gbXVjaC4gIFNvbWUgY2hlY2tzIGFyZSBvbmx5IG5lZWRlZCBpZgotKyMg eW91ciBwYWNrYWdlIGRvZXMgY2VydGFpbiB0aGluZ3MuICBCdXQgdGhpcyBpc24ndCByZWFsbHkg YSBiaWcgZGVhbC4KLSsKLSsjIEFNX0lOSVRfQVVUT01BS0UoUEFDS0FHRSwgVkVSU0lPTiwgW05P LURFRklORV0pCi0rIyBBTV9JTklUX0FVVE9NQUtFKFtPUFRJT05TXSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBUaGUgY2FsbCB3aXRoIFBB Q0tBR0UgYW5kIFZFUlNJT04gYXJndW1lbnRzIGlzIHRoZSBvbGQgc3R5bGUKLSsjIGNhbGwgKHBy ZSBhdXRvY29uZi0yLjUwKSwgd2hpY2ggaXMgYmVpbmcgcGhhc2VkIG91dC4gIFBBQ0tBR0UKLSsj IGFuZCBWRVJTSU9OIHNob3VsZCBub3cgYmUgcGFzc2VkIHRvIEFDX0lOSVQgYW5kIHJlbW92ZWQg ZnJvbQotKyMgdGhlIGNhbGwgdG8gQU1fSU5JVF9BVVRPTUFLRS4KLSsjIFdlIHN1cHBvcnQgYm90 aCBjYWxsIHN0eWxlcyBmb3IgdGhlIHRyYW5zaXRpb24uICBBZnRlcgotKyMgdGhlIG5leHQgQXV0 b21ha2UgcmVsZWFzZSwgQXV0b2NvbmYgY2FuIG1ha2UgdGhlIEFDX0lOSVQKLSsjIGFyZ3VtZW50 cyBtYW5kYXRvcnksIGFuZCB0aGVuIHdlIGNhbiBkZXBlbmQgb24gYSBuZXcgQXV0b2NvbmYKLSsj IHJlbGVhc2UgYW5kIGRyb3AgdGhlIG9sZCBjYWxsIHN1cHBvcnQuCi0rQUNfREVGVU4oW0FNX0lO SVRfQVVUT01BS0VdLAotK1tBQ19QUkVSRVEoWzIuNjJdKWRubAotK2RubCBBdXRvY29uZiB3YW50 cyB0byBkaXNhbGxvdyBBTV8gbmFtZXMuICBXZSBleHBsaWNpdGx5IGFsbG93Ci0rZG5sIHRoZSBv bmVzIHdlIGNhcmUgYWJvdXQuCi0rbTRfcGF0dGVybl9hbGxvdyhbXkFNX1tBLVpdK0ZMQUdTJF0p ZG5sCi0rQUNfUkVRVUlSRShbQU1fU0VUX0NVUlJFTlRfQVVUT01BS0VfVkVSU0lPTl0pZG5sCi0r QUNfUkVRVUlSRShbQUNfUFJPR19JTlNUQUxMXSlkbmwKLStpZiB0ZXN0ICJgY2QgJHNyY2RpciAm JiBwd2RgIiAhPSAiYHB3ZGAiOyB0aGVuCi0rICAjIFVzZSAtSSQoc3JjZGlyKSBvbmx5IHdoZW4g JChzcmNkaXIpICE9IC4sIHNvIHRoYXQgbWFrZSdzIG91dHB1dAotKyAgIyBpcyBub3QgcG9sbHV0 ZWQgd2l0aCByZXBlYXRlZCAiLUkuIgotKyAgQUNfU1VCU1QoW2FtX19pc3JjXSwgWycgLUkkKHNy Y2RpciknXSlfQU1fU1VCU1RfTk9UTUFLRShbYW1fX2lzcmNdKWRubAotKyAgIyB0ZXN0IHRvIHNl ZSBpZiBzcmNkaXIgYWxyZWFkeSBjb25maWd1cmVkCi0rICBpZiB0ZXN0IC1mICRzcmNkaXIvY29u ZmlnLnN0YXR1czsgdGhlbgotKyAgICBBQ19NU0dfRVJST1IoW3NvdXJjZSBkaXJlY3RvcnkgYWxy ZWFkeSBjb25maWd1cmVkOyBydW4gIm1ha2UgZGlzdGNsZWFuIiB0aGVyZSBmaXJzdF0pCi0rICBm aQotK2ZpCi0rCi0rIyB0ZXN0IHdoZXRoZXIgd2UgaGF2ZSBjeWdwYXRoCi0raWYgdGVzdCAteiAi JENZR1BBVEhfVyI7IHRoZW4KLSsgIGlmIChjeWdwYXRoIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAy Pi9kZXYvbnVsbDsgdGhlbgotKyAgICBDWUdQQVRIX1c9J2N5Z3BhdGggLXcnCi0rICBlbHNlCi0r ICAgIENZR1BBVEhfVz1lY2hvCi0rICBmaQotK2ZpCi0rQUNfU1VCU1QoW0NZR1BBVEhfV10pCi0r Ci0rIyBEZWZpbmUgdGhlIGlkZW50aXR5IG9mIHRoZSBwYWNrYWdlLgotK2RubCBEaXN0aW5ndWlz aCBiZXR3ZWVuIG9sZC1zdHlsZSBhbmQgbmV3LXN0eWxlIGNhbGxzLgotK200X2lmdmFsKFskMl0s Ci0rW200X2lmdmFsKFskM10sIFtfQU1fU0VUX09QVElPTihbbm8tZGVmaW5lXSldKWRubAotKyBB Q19TVUJTVChbUEFDS0FHRV0sIFskMV0pZG5sCi0rIEFDX1NVQlNUKFtWRVJTSU9OXSwgWyQyXSld LAotK1tfQU1fU0VUX09QVElPTlMoWyQxXSlkbmwKLStkbmwgRGlhZ25vc2Ugb2xkLXN0eWxlIEFD X0lOSVQgd2l0aCBuZXctc3R5bGUgQU1fQVVUT01BS0VfSU5JVC4KLSttNF9pZihtNF9pZmRlZihb QUNfUEFDS0FHRV9OQU1FXSwgMSltNF9pZmRlZihbQUNfUEFDS0FHRV9WRVJTSU9OXSwgMSksIDEx LCwKLSsgIFttNF9mYXRhbChbQUNfSU5JVCBzaG91bGQgYmUgY2FsbGVkIHdpdGggcGFja2FnZSBh bmQgdmVyc2lvbiBhcmd1bWVudHNdKV0pZG5sCi0rIEFDX1NVQlNUKFtQQUNLQUdFXSwgWydBQ19Q QUNLQUdFX1RBUk5BTUUnXSlkbmwKLSsgQUNfU1VCU1QoW1ZFUlNJT05dLCBbJ0FDX1BBQ0tBR0Vf VkVSU0lPTiddKV0pZG5sCi0rCi0rX0FNX0lGX09QVElPTihbbm8tZGVmaW5lXSwsCi0rW0FDX0RF RklORV9VTlFVT1RFRChQQUNLQUdFLCAiJFBBQ0tBR0UiLCBbTmFtZSBvZiBwYWNrYWdlXSkKLSsg QUNfREVGSU5FX1VOUVVPVEVEKFZFUlNJT04sICIkVkVSU0lPTiIsIFtWZXJzaW9uIG51bWJlciBv ZiBwYWNrYWdlXSldKWRubAotKwotKyMgU29tZSB0b29scyBBdXRvbWFrZSBuZWVkcy4KLStBQ19S RVFVSVJFKFtBTV9TQU5JVFlfQ0hFQ0tdKWRubAotK0FDX1JFUVVJUkUoW0FDX0FSR19QUk9HUkFN XSlkbmwKLStBTV9NSVNTSU5HX1BST0coQUNMT0NBTCwgYWNsb2NhbC0ke2FtX19hcGlfdmVyc2lv bn0pCi0rQU1fTUlTU0lOR19QUk9HKEFVVE9DT05GLCBhdXRvY29uZikKLStBTV9NSVNTSU5HX1BS T0coQVVUT01BS0UsIGF1dG9tYWtlLSR7YW1fX2FwaV92ZXJzaW9ufSkKLStBTV9NSVNTSU5HX1BS T0coQVVUT0hFQURFUiwgYXV0b2hlYWRlcikKLStBTV9NSVNTSU5HX1BST0coTUFLRUlORk8sIG1h a2VpbmZvKQotK0FDX1JFUVVJUkUoW0FNX1BST0dfSU5TVEFMTF9TSF0pZG5sCi0rQUNfUkVRVUlS RShbQU1fUFJPR19JTlNUQUxMX1NUUklQXSlkbmwKLStBQ19SRVFVSVJFKFtBTV9QUk9HX01LRElS X1BdKWRubAotKyMgV2UgbmVlZCBhd2sgZm9yIHRoZSAiY2hlY2siIHRhcmdldC4gIFRoZSBzeXN0 ZW0gImF3ayIgaXMgYmFkIG9uCi0rIyBzb21lIHBsYXRmb3Jtcy4KLStBQ19SRVFVSVJFKFtBQ19Q Uk9HX0FXS10pZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19NQUtFX1NFVF0pZG5sCi0rQUNfUkVR VUlSRShbQU1fU0VUX0xFQURJTkdfRE9UXSlkbmwKLStfQU1fSUZfT1BUSU9OKFt0YXItdXN0YXJd LCBbX0FNX1BST0dfVEFSKFt1c3Rhcl0pXSwKLSsJICAgICAgW19BTV9JRl9PUFRJT04oW3Rhci1w YXhdLCBbX0FNX1BST0dfVEFSKFtwYXhdKV0sCi0rCQkJICAgICBbX0FNX1BST0dfVEFSKFt2N10p XSldKQotK19BTV9JRl9PUFRJT04oW25vLWRlcGVuZGVuY2llc10sLAotK1tBQ19QUk9WSURFX0lG RUxTRShbQUNfUFJPR19DQ10sCi0rCQkgIFtfQU1fREVQRU5ERU5DSUVTKENDKV0sCi0rCQkgIFtk ZWZpbmUoW0FDX1BST0dfQ0NdLAotKwkJCSAgZGVmbihbQUNfUFJPR19DQ10pW19BTV9ERVBFTkRF TkNJRVMoQ0MpXSldKWRubAotK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0NYWF0sCi0rCQkg IFtfQU1fREVQRU5ERU5DSUVTKENYWCldLAotKwkJICBbZGVmaW5lKFtBQ19QUk9HX0NYWF0sCi0r CQkJICBkZWZuKFtBQ19QUk9HX0NYWF0pW19BTV9ERVBFTkRFTkNJRVMoQ1hYKV0pXSlkbmwKLStB Q19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19PQkpDXSwKLSsJCSAgW19BTV9ERVBFTkRFTkNJRVMo T0JKQyldLAotKwkJICBbZGVmaW5lKFtBQ19QUk9HX09CSkNdLAotKwkJCSAgZGVmbihbQUNfUFJP R19PQkpDXSlbX0FNX0RFUEVOREVOQ0lFUyhPQkpDKV0pXSlkbmwKLStdKQotK19BTV9JRl9PUFRJ T04oW3NpbGVudC1ydWxlc10sIFtBQ19SRVFVSVJFKFtBTV9TSUxFTlRfUlVMRVNdKV0pZG5sCi0r ZG5sIFRoZSBgcGFyYWxsZWwtdGVzdHMnIGRyaXZlciBtYXkgbmVlZCB0byBrbm93IGFib3V0IEVY RUVYVCwgc28gYWRkIHRoZQotK2RubCBgYW1fX0VYRUVYVCcgY29uZGl0aW9uYWwgaWYgX0FNX0NP TVBJTEVSX0VYRUVYVCB3YXMgc2Vlbi4gIFRoaXMgbWFjcm8KLStkbmwgaXMgaG9va2VkIG9udG8g X0FDX0NPTVBJTEVSX0VYRUVYVCBlYXJseSwgc2VlIGJlbG93LgotK0FDX0NPTkZJR19DT01NQU5E U19QUkUoZG5sCi0rW200X3Byb3ZpZGVfaWYoW19BTV9DT01QSUxFUl9FWEVFWFRdLAotKyAgW0FN X0NPTkRJVElPTkFMKFthbV9fRVhFRVhUXSwgW3Rlc3QgLW4gIiRFWEVFWFQiXSldKV0pZG5sCi0r XSkKLSsKLStkbmwgSG9vayBpbnRvIGBfQUNfQ09NUElMRVJfRVhFRVhUJyBlYXJseSB0byBsZWFy biBpdHMgZXhwYW5zaW9uLiAgRG8gbm90Ci0rZG5sIGFkZCB0aGUgY29uZGl0aW9uYWwgcmlnaHQg aGVyZSwgYXMgX0FDX0NPTVBJTEVSX0VYRUVYVCBtYXkgYmUgZnVydGhlcgotK2RubCBtYW5nbGVk IGJ5IEF1dG9jb25mIGFuZCBydW4gaW4gYSBzaGVsbCBjb25kaXRpb25hbCBzdGF0ZW1lbnQuCi0r bTRfZGVmaW5lKFtfQUNfQ09NUElMRVJfRVhFRVhUXSwKLSttNF9kZWZuKFtfQUNfQ09NUElMRVJf RVhFRVhUXSlbbTRfcHJvdmlkZShbX0FNX0NPTVBJTEVSX0VYRUVYVF0pXSkKLSsKLSsKLSsjIFdo ZW4gY29uZmlnLnN0YXR1cyBnZW5lcmF0ZXMgYSBoZWFkZXIsIHdlIG11c3QgdXBkYXRlIHRoZSBz dGFtcC1oIGZpbGUuCi0rIyBUaGlzIGZpbGUgcmVzaWRlcyBpbiB0aGUgc2FtZSBkaXJlY3Rvcnkg YXMgdGhlIGNvbmZpZyBoZWFkZXIKLSsjIHRoYXQgaXMgZ2VuZXJhdGVkLiAgVGhlIHN0YW1wIGZp bGVzIGFyZSBudW1iZXJlZCB0byBoYXZlIGRpZmZlcmVudCBuYW1lcy4KLSsKLSsjIEF1dG9jb25m IGNhbGxzIF9BQ19BTV9DT05GSUdfSEVBREVSX0hPT0sgKHdoZW4gZGVmaW5lZCkgaW4gdGhlCi0r IyBsb29wIHdoZXJlIGNvbmZpZy5zdGF0dXMgY3JlYXRlcyB0aGUgaGVhZGVycywgc28gd2UgY2Fu IGdlbmVyYXRlCi0rIyBvdXIgc3RhbXAgZmlsZXMgdGhlcmUuCi0rQUNfREVGVU4oW19BQ19BTV9D T05GSUdfSEVBREVSX0hPT0tdLAotK1sjIENvbXB1dGUgJDEncyBpbmRleCBpbiAkY29uZmlnX2hl YWRlcnMuCi0rX2FtX2FyZz0kMQotK19hbV9zdGFtcF9jb3VudD0xCi0rZm9yIF9hbV9oZWFkZXIg aW4gJGNvbmZpZ19oZWFkZXJzIDo7IGRvCi0rICBjYXNlICRfYW1faGVhZGVyIGluCi0rICAgICRf YW1fYXJnIHwgJF9hbV9hcmc6KiApCi0rICAgICAgYnJlYWsgOzsKLSsgICAgKiApCi0rICAgICAg X2FtX3N0YW1wX2NvdW50PWBleHByICRfYW1fc3RhbXBfY291bnQgKyAxYCA7OwotKyAgZXNhYwot K2RvbmUKLStlY2hvICJ0aW1lc3RhbXAgZm9yICRfYW1fYXJnIiA+YEFTX0RJUk5BTUUoWyIkX2Ft X2FyZyJdKWAvc3RhbXAtaFtdJF9hbV9zdGFtcF9jb3VudF0pCi0rCi0rIyBDb3B5cmlnaHQgKEMp IDIwMDEsIDIwMDMsIDIwMDUsIDIwMDggIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgot KyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0 cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMg dGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgQU1fUFJPR19JTlNUQUxMX1NICi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0KLSsjIERlZmluZSAkaW5zdGFsbF9zaC4KLStBQ19ERUZVTihbQU1f UFJPR19JTlNUQUxMX1NIXSwKLStbQUNfUkVRVUlSRShbQU1fQVVYX0RJUl9FWFBBTkRdKWRubAot K2lmIHRlc3QgeCIke2luc3RhbGxfc2h9IiAhPSB4c2V0OyB0aGVuCi0rICBjYXNlICRhbV9hdXhf ZGlyIGluCi0rICAqXCAqIHwgKlwJKikKLSsgICAgaW5zdGFsbF9zaD0iXCR7U0hFTEx9ICckYW1f YXV4X2Rpci9pbnN0YWxsLXNoJyIgOzsKLSsgICopCi0rICAgIGluc3RhbGxfc2g9Ilwke1NIRUxM fSAkYW1fYXV4X2Rpci9pbnN0YWxsLXNoIgotKyAgZXNhYwotK2ZpCi0rQUNfU1VCU1QoaW5zdGFs bF9zaCldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g Y29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp b25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCAy Ci0rCi0rIyBDaGVjayB3aGV0aGVyIHRoZSB1bmRlcmx5aW5nIGZpbGUtc3lzdGVtIHN1cHBvcnRz IGZpbGVuYW1lcwotKyMgd2l0aCBhIGxlYWRpbmcgZG90LiAgRm9yIGluc3RhbmNlIE1TLURPUyBk b2Vzbid0LgotK0FDX0RFRlVOKFtBTV9TRVRfTEVBRElOR19ET1RdLAotK1tybSAtcmYgLnRzdCAy Pi9kZXYvbnVsbAotK21rZGlyIC50c3QgMj4vZGV2L251bGwKLStpZiB0ZXN0IC1kIC50c3Q7IHRo ZW4KLSsgIGFtX19sZWFkaW5nX2RvdD0uCi0rZWxzZQotKyAgYW1fX2xlYWRpbmdfZG90PV8KLStm aQotK3JtZGlyIC50c3QgMj4vZGV2L251bGwKLStBQ19TVUJTVChbYW1fX2xlYWRpbmdfZG90XSld KQotKwotKyMgQ2hlY2sgdG8gc2VlIGhvdyAnbWFrZScgdHJlYXRzIGluY2x1ZGVzLgkgICAgICAg ICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIw MDMsIDIwMDUsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRo aXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0r IyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0 LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3Rp Y2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDQKLSsKLSsjIEFNX01BS0VfSU5DTFVERSgp Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgdG8gc2VlIGhvdyBtYWtlIHRyZWF0cyBp bmNsdWRlcy4KLStBQ19ERUZVTihbQU1fTUFLRV9JTkNMVURFXSwKLStbYW1fbWFrZT0ke01BS0Ut bWFrZX0KLStjYXQgPiBjb25maW5jIDw8ICdFTkQnCi0rYW1fX2RvaXQ6Ci0rCUBlY2hvIHRoaXMg aXMgdGhlIGFtX19kb2l0IHRhcmdldAotKy5QSE9OWTogYW1fX2RvaXQKLStFTkQKLSsjIElmIHdl IGRvbid0IGZpbmQgYW4gaW5jbHVkZSBkaXJlY3RpdmUsIGp1c3QgY29tbWVudCBvdXQgdGhlIGNv ZGUuCi0rQUNfTVNHX0NIRUNLSU5HKFtmb3Igc3R5bGUgb2YgaW5jbHVkZSB1c2VkIGJ5ICRhbV9t YWtlXSkKLSthbV9faW5jbHVkZT0iIyIKLSthbV9fcXVvdGU9Ci0rX2FtX3Jlc3VsdD1ub25lCi0r IyBGaXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStlY2hvICJpbmNsdWRlIGNvbmZp bmMiID4gY29uZm1mCi0rIyBJZ25vcmUgYWxsIGtpbmRzIG9mIGFkZGl0aW9uYWwgb3V0cHV0IGZy b20gYG1ha2UnLgotK2Nhc2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIGlu ICMoCi0rKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCi0rICBhbV9faW5jbHVkZT1pbmNsdWRlCi0r ICBhbV9fcXVvdGU9Ci0rICBfYW1fcmVzdWx0PUdOVQotKyAgOzsKLStlc2FjCi0rIyBOb3cgdHJ5 IEJTRCBtYWtlIHN0eWxlIGluY2x1ZGUuCi0raWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsg dGhlbgotKyAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicgPiBjb25mbWYKLSsgICBjYXNlIGAk YW1fbWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCBpbiAjKAotKyAgICp0aGVcIGFtX19k b2l0XCB0YXJnZXQqKQotKyAgICAgYW1fX2luY2x1ZGU9LmluY2x1ZGUKLSsgICAgIGFtX19xdW90 ZT0iXCIiCi0rICAgICBfYW1fcmVzdWx0PUJTRAotKyAgICAgOzsKLSsgICBlc2FjCi0rZmkKLStB Q19TVUJTVChbYW1fX2luY2x1ZGVdKQotK0FDX1NVQlNUKFthbV9fcXVvdGVdKQotK0FDX01TR19S RVNVTFQoWyRfYW1fcmVzdWx0XSkKLStybSAtZiBjb25maW5jIGNvbmZtZgotK10pCi0rCi0rIyBG YWtlIHRoZSBleGlzdGVuY2Ugb2YgcHJvZ3JhbXMgdGhhdCBHTlUgbWFpbnRhaW5lcnMgdXNlLiAg LSotIEF1dG9jb25mIC0qLQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk3LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA4Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s IEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdh cmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQv b3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBs b25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA2Ci0rCi0rIyBB TV9NSVNTSU5HX1BST0coTkFNRSwgUFJPR1JBTSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotK0FDX0RFRlVOKFtBTV9NSVNTSU5HX1BST0ddLAotK1tBQ19SRVFVSVJFKFtBTV9N SVNTSU5HX0hBU19SVU5dKQotKyQxPSR7JDEtIiR7YW1fbWlzc2luZ19ydW59JDIifQotK0FDX1NV QlNUKCQxKV0pCi0rCi0rCi0rIyBBTV9NSVNTSU5HX0hBU19SVU4KLSsjIC0tLS0tLS0tLS0tLS0t LS0tLQotKyMgRGVmaW5lIE1JU1NJTkcgaWYgbm90IGRlZmluZWQgc28gZmFyIGFuZCB0ZXN0IGlm IGl0IHN1cHBvcnRzIC0tcnVuLgotKyMgSWYgaXQgZG9lcywgc2V0IGFtX21pc3NpbmdfcnVuIHRv IHVzZSBpdCwgb3RoZXJ3aXNlLCB0byBub3RoaW5nLgotK0FDX0RFRlVOKFtBTV9NSVNTSU5HX0hB U19SVU5dLAotK1tBQ19SRVFVSVJFKFtBTV9BVVhfRElSX0VYUEFORF0pZG5sCi0rQUNfUkVRVUlS RV9BVVhfRklMRShbbWlzc2luZ10pZG5sCi0raWYgdGVzdCB4IiR7TUlTU0lORytzZXR9IiAhPSB4 c2V0OyB0aGVuCi0rICBjYXNlICRhbV9hdXhfZGlyIGluCi0rICAqXCAqIHwgKlwJKikKLSsgICAg TUlTU0lORz0iXCR7U0hFTEx9IFwiJGFtX2F1eF9kaXIvbWlzc2luZ1wiIiA7OwotKyAgKikKLSsg ICAgTUlTU0lORz0iXCR7U0hFTEx9ICRhbV9hdXhfZGlyL21pc3NpbmciIDs7Ci0rICBlc2FjCi0r ZmkKLSsjIFVzZSBldmFsIHRvIGV4cGFuZCAkU0hFTEwKLStpZiBldmFsICIkTUlTU0lORyAtLXJ1 biB0cnVlIjsgdGhlbgotKyAgYW1fbWlzc2luZ19ydW49IiRNSVNTSU5HIC0tcnVuICIKLStlbHNl Ci0rICBhbV9taXNzaW5nX3J1bj0KLSsgIEFDX01TR19XQVJOKFtgbWlzc2luZycgc2NyaXB0IGlz IHRvbyBvbGQgb3IgbWlzc2luZ10pCi0rZmkKLStdKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAz LCAyMDA0LCAyMDA1LCAyMDA2ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0r IyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlv bgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0 ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMg bm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIEFNX1BST0dfTUtESVJfUAotKyMgLS0tLS0tLS0t LS0tLS0tCi0rIyBDaGVjayBmb3IgYG1rZGlyIC1wJy4KLStBQ19ERUZVTihbQU1fUFJPR19NS0RJ Ul9QXSwKLStbQUNfUFJFUkVRKFsyLjYwXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX01LRElS X1BdKWRubAotK2RubCBBdXRvbWFrZSAxLjggdG8gMS45LjYgdXNlZCB0byBkZWZpbmUgbWtkaXJf cC4gIFdlIG5vdyB1c2UgTUtESVJfUCwKLStkbmwgd2hpbGUga2VlcGluZyBhIGRlZmluaXRpb24g b2YgbWtkaXJfcCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KLStkbmwgQE1LRElSX1BAIGlz IG1hZ2ljOiBBQ19PVVRQVVQgYWRqdXN0cyBpdHMgdmFsdWUgZm9yIGVhY2ggTWFrZWZpbGUuCi0r ZG5sIEhvd2V2ZXIgd2UgY2Fubm90IGRlZmluZSBta2Rpcl9wIGFzICQoTUtESVJfUCkgZm9yIHRo ZSBzYWtlIG9mCi0rZG5sIE1ha2VmaWxlLmlucyB0aGF0IGRvIG5vdCBkZWZpbmUgTUtESVJfUCwg c28gd2UgZG8gb3VyIG93bgotK2RubCBhZGp1c3RtZW50IHVzaW5nIHRvcF9idWlsZGRpciAod2hp Y2ggaXMgZGVmaW5lZCBtb3JlIG9mdGVuIHRoYW4KLStkbmwgTUtESVJfUCkuCi0rQUNfU1VCU1Qo W21rZGlyX3BdLCBbIiRNS0RJUl9QIl0pZG5sCi0rY2FzZSAkbWtkaXJfcCBpbgotKyAgW1tcXC8k XV0qIHwgPzpbW1xcL11dKikgOzsKLSsgICovKikgbWtkaXJfcD0iXCQodG9wX2J1aWxkZGlyKS8k bWtkaXJfcCIgOzsKLStlc2FjCi0rXSkKLSsKLSsjIEhlbHBlciBmdW5jdGlvbnMgZm9yIG9wdGlv biBoYW5kbGluZy4gICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYgLSotCi0rCi0rIyBD b3B5cmlnaHQgKEMpIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDUsIDIwMDggIEZyZWUgU29mdHdhcmUg Rm91bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0 byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh dGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFs IDQKLSsKLSsjIF9BTV9NQU5HTEVfT1BUSU9OKE5BTUUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotK0FDX0RFRlVOKFtfQU1fTUFOR0xFX09QVElPTl0sCi0rW1tfQU1fT1BUSU9OX11tNF9i cGF0c3Vic3QoJDEsIFtbXmEtekEtWjAtOV9dXSwgW19dKV0pCi0rCi0rIyBfQU1fU0VUX09QVElP TihOQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTZXQgb3B0aW9u IE5BTUUuICBQcmVzZW50bHkgdGhhdCBvbmx5IG1lYW5zIGRlZmluaW5nIGEgZmxhZyBmb3IgdGhp cyBvcHRpb24uCi0rQUNfREVGVU4oW19BTV9TRVRfT1BUSU9OXSwKLStbbTRfZGVmaW5lKF9BTV9N QU5HTEVfT1BUSU9OKFskMV0pLCAxKV0pCi0rCi0rIyBfQU1fU0VUX09QVElPTlMoT1BUSU9OUykK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIE9QVElPTlMgaXMgYSBz cGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBBdXRvbWFrZSBvcHRpb25zLgotK0FDX0RFRlVOKFtfQU1f U0VUX09QVElPTlNdLAotK1ttNF9mb3JlYWNoX3coW19BTV9PcHRpb25dLCBbJDFdLCBbX0FNX1NF VF9PUFRJT04oX0FNX09wdGlvbildKV0pCi0rCi0rIyBfQU1fSUZfT1BUSU9OKE9QVElPTiwgSUYt U0VULCBbSUYtTk9ULVNFVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBFeGVjdXRlIElGLVNFVCBpZiBPUFRJT04gaXMgc2V0LCBJRi1OT1QtU0VU IG90aGVyd2lzZS4KLStBQ19ERUZVTihbX0FNX0lGX09QVElPTl0sCi0rW200X2lmc2V0KF9BTV9N QU5HTEVfT1BUSU9OKFskMV0pLCBbJDJdLCBbJDNdKV0pCi0rCi0rIyBDaGVjayB0byBtYWtlIHN1 cmUgdGhhdCB0aGUgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZS4gICAgLSotIEF1dG9jb25mIC0q LQotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAyMDAwLCAyMDAxLCAyMDAzLCAyMDA1 LCAyMDA4Ci0rIyBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZp bGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2 ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsj IHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlz IHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA1Ci0rCi0rIyBBTV9TQU5JVFlfQ0hFQ0sKLSsjIC0t LS0tLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtBTV9TQU5JVFlfQ0hFQ0tdLAotK1tBQ19NU0dfQ0hF Q0tJTkcoW3doZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZV0pCi0rIyBKdXN0IGluIGNh c2UKLStzbGVlcCAxCi0rZWNobyB0aW1lc3RhbXAgPiBjb25mdGVzdC5maWxlCi0rIyBSZWplY3Qg dW5zYWZlIGNoYXJhY3RlcnMgaW4gJHNyY2RpciBvciB0aGUgYWJzb2x1dGUgd29ya2luZyBkaXJl Y3RvcnkKLSsjIG5hbWUuICBBY2NlcHQgc3BhY2UgYW5kIHRhYiBvbmx5IGluIHRoZSBsYXR0ZXIu Ci0rYW1fbGY9JwotKycKLStjYXNlIGBwd2RgIGluCi0rICAqW1tcXFwiXCNcJFwmXCdcYCRhbV9s Zl1dKikKLSsgICAgQUNfTVNHX0VSUk9SKFt1bnNhZmUgYWJzb2x1dGUgd29ya2luZyBkaXJlY3Rv cnkgbmFtZV0pOzsKLStlc2FjCi0rY2FzZSAkc3JjZGlyIGluCi0rICAqW1tcXFwiXCNcJFwmXCdc YCRhbV9sZlwgXAldXSopCi0rICAgIEFDX01TR19FUlJPUihbdW5zYWZlIHNyY2RpciB2YWx1ZTog YCRzcmNkaXInXSk7OwotK2VzYWMKLSsKLSsjIERvIGBzZXQnIGluIGEgc3Vic2hlbGwgc28gd2Ug ZG9uJ3QgY2xvYmJlciB0aGUgY3VycmVudCBzaGVsbCdzCi0rIyBhcmd1bWVudHMuICBNdXN0IHRy eSAtTCBmaXJzdCBpbiBjYXNlIGNvbmZpZ3VyZSBpcyBhY3R1YWxseSBhCi0rIyBzeW1saW5rOyBz b21lIHN5c3RlbXMgcGxheSB3ZWlyZCBnYW1lcyB3aXRoIHRoZSBtb2QgdGltZSBvZiBzeW1saW5r cwotKyMgKGVnIEZyZWVCU0QgcmV0dXJucyB0aGUgbW9kIHRpbWUgb2YgdGhlIHN5bWxpbmsncyBj b250YWluaW5nCi0rIyBkaXJlY3RvcnkpLgotK2lmICgKLSsgICBzZXQgWCBgbHMgLUx0ICIkc3Jj ZGlyL2NvbmZpZ3VyZSIgY29uZnRlc3QuZmlsZSAyPiAvZGV2L251bGxgCi0rICAgaWYgdGVzdCAi JFsqXSIgPSAiWCI7IHRoZW4KLSsgICAgICAjIC1MIGRpZG4ndCB3b3JrLgotKyAgICAgIHNldCBY IGBscyAtdCAiJHNyY2Rpci9jb25maWd1cmUiIGNvbmZ0ZXN0LmZpbGVgCi0rICAgZmkKLSsgICBy bSAtZiBjb25mdGVzdC5maWxlCi0rICAgaWYgdGVzdCAiJFsqXSIgIT0gIlggJHNyY2Rpci9jb25m aWd1cmUgY29uZnRlc3QuZmlsZSIgXAotKyAgICAgICYmIHRlc3QgIiRbKl0iICE9ICJYIGNvbmZ0 ZXN0LmZpbGUgJHNyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0rCi0rICAgICAgIyBJZiBuZWl0aGVy IG1hdGNoZWQsIHRoZW4gd2UgaGF2ZSBhIGJyb2tlbiBscy4gIFRoaXMgY2FuIGhhcHBlbgotKyAg ICAgICMgaWYsIGZvciBpbnN0YW5jZSwgQ09ORklHX1NIRUxMIGlzIGJhc2ggYW5kIGl0IGluaGVy aXRzIGEKLSsgICAgICAjIGJyb2tlbiBscyBhbGlhcyBmcm9tIHRoZSBlbnZpcm9ubWVudC4gIFRo aXMgaGFzIGFjdHVhbGx5Ci0rICAgICAgIyBoYXBwZW5lZC4gIFN1Y2ggYSBzeXN0ZW0gY291bGQg bm90IGJlIGNvbnNpZGVyZWQgInNhbmUiLgotKyAgICAgIEFDX01TR19FUlJPUihbbHMgLXQgYXBw ZWFycyB0byBmYWlsLiAgTWFrZSBzdXJlIHRoZXJlIGlzIG5vdCBhIGJyb2tlbgotK2FsaWFzIGlu IHlvdXIgZW52aXJvbm1lbnRdKQotKyAgIGZpCi0rCi0rICAgdGVzdCAiJFsyXSIgPSBjb25mdGVz dC5maWxlCi0rICAgKQotK3RoZW4KLSsgICAjIE9rLgotKyAgIDoKLStlbHNlCi0rICAgQUNfTVNH X0VSUk9SKFtuZXdseSBjcmVhdGVkIGZpbGUgaXMgb2xkZXIgdGhhbiBkaXN0cmlidXRlZCBmaWxl cyEKLStDaGVjayB5b3VyIHN5c3RlbSBjbG9ja10pCi0rZmkKLStBQ19NU0dfUkVTVUxUKHllcyld KQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDAxLCAyMDAzLCAyMDA1ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g Y29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2RpZmljYXRp b25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIEFNX1BST0df SU5TVEFMTF9TVFJJUAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBPbmUgaXNzdWUgd2l0 aCB2ZW5kb3IgYGluc3RhbGwnIChldmVuIEdOVSkgaXMgdGhhdCB5b3UgY2FuJ3QKLSsjIHNwZWNp ZnkgdGhlIHByb2dyYW0gdXNlZCB0byBzdHJpcCBiaW5hcmllcy4gIFRoaXMgaXMgZXNwZWNpYWxs eQotKyMgYW5ub3lpbmcgaW4gY3Jvc3MtY29tcGlsaW5nIGVudmlyb25tZW50cywgd2hlcmUgdGhl IGJ1aWxkJ3Mgc3RyaXAKLSsjIGlzIHVubGlrZWx5IHRvIGhhbmRsZSB0aGUgaG9zdCdzIGJpbmFy aWVzLgotKyMgRm9ydHVuYXRlbHkgaW5zdGFsbC1zaCB3aWxsIGhvbm9yIGEgU1RSSVBQUk9HIHZh cmlhYmxlLCBzbyB3ZQotKyMgYWx3YXlzIHVzZSBpbnN0YWxsLXNoIGluIGBtYWtlIGluc3RhbGwt c3RyaXAnLCBhbmQgaW5pdGlhbGl6ZQotKyMgU1RSSVBQUk9HIHdpdGggdGhlIHZhbHVlIG9mIHRo ZSBTVFJJUCB2YXJpYWJsZSAoc2V0IGJ5IHRoZSB1c2VyKS4KLStBQ19ERUZVTihbQU1fUFJPR19J TlNUQUxMX1NUUklQXSwKLStbQUNfUkVRVUlSRShbQU1fUFJPR19JTlNUQUxMX1NIXSlkbmwKLSsj IEluc3RhbGxlZCBiaW5hcmllcyBhcmUgdXN1YWxseSBzdHJpcHBlZCB1c2luZyBgc3RyaXAnIHdo ZW4gdGhlIHVzZXIKLSsjIHJ1biBgbWFrZSBpbnN0YWxsLXN0cmlwJy4gIEhvd2V2ZXIgYHN0cmlw JyBtaWdodCBub3QgYmUgdGhlIHJpZ2h0Ci0rIyB0b29sIHRvIHVzZSBpbiBjcm9zcy1jb21waWxh dGlvbiBlbnZpcm9ubWVudHMsIHRoZXJlZm9yZSBBdXRvbWFrZQotKyMgd2lsbCBob25vciB0aGUg YFNUUklQJyBlbnZpcm9ubWVudCB2YXJpYWJsZSB0byBvdmVycnVsZSB0aGlzIHByb2dyYW0uCi0r ZG5sIERvbid0IHRlc3QgZm9yICRjcm9zc19jb21waWxpbmcgPSB5ZXMsIGJlY2F1c2UgaXQgbWln aHQgYmUgYG1heWJlJy4KLStpZiB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiAhPSBubzsgdGhlbgot KyAgQUNfQ0hFQ0tfVE9PTChbU1RSSVBdLCBbc3RyaXBdLCA6KQotK2ZpCi0rSU5TVEFMTF9TVFJJ UF9QUk9HUkFNPSJcJChpbnN0YWxsX3NoKSAtYyAtcyIKLStBQ19TVUJTVChbSU5TVEFMTF9TVFJJ UF9QUk9HUkFNXSldKQotKwotKyMgQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA4ICBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Np b24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2Rp ZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNl cmlhbCAyCi0rCi0rIyBfQU1fU1VCU1RfTk9UTUFLRShWQVJJQUJMRSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgUHJldmVudCBBdXRvbWFrZSBmcm9tIG91dHB1dHRpbmcgVkFS SUFCTEUgPSBAVkFSSUFCTEVAIGluIE1ha2VmaWxlLmluLgotKyMgVGhpcyBtYWNybyBpcyB0cmFj ZWQgYnkgQXV0b21ha2UuCi0rQUNfREVGVU4oW19BTV9TVUJTVF9OT1RNQUtFXSkKLSsKLSsjIEFN X1NVQlNUX05PVE1BS0UoVkFSSUFCTEUpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSsjIFB1YmxpYyBzaXN0ZXIgb2YgX0FNX1NVQlNUX05PVE1BS0UuCi0rQUNfREVGVU4oW0FNX1NV QlNUX05PVE1BS0VdLCBbX0FNX1NVQlNUX05PVE1BS0UoJEApXSkKLSsKLSsjIENoZWNrIGhvdyB0 byBjcmVhdGUgYSB0YXJiYWxsLiAgICAgICAgICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2Nv bmYgLSotCi0rCi0rIyBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwgSW5jLgotKyMKLSsjIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJl ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBj b3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlv bnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgc2VyaWFsIDIK LSsKLSsjIF9BTV9QUk9HX1RBUihGT1JNQVQpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg Q2hlY2sgaG93IHRvIGNyZWF0ZSBhIHRhcmJhbGwgaW4gZm9ybWF0IEZPUk1BVC4KLSsjIEZPUk1B VCBzaG91bGQgYmUgb25lIG9mIGB2NycsIGB1c3RhcicsIG9yIGBwYXgnLgotKyMKLSsjIFN1YnN0 aXR1dGUgYSB2YXJpYWJsZSAkKGFtX190YXIpIHRoYXQgaXMgYSBjb21tYW5kCi0rIyB3cml0aW5n IHRvIHN0ZG91dCBhIEZPUk1BVC10YXJiYWxsIGNvbnRhaW5pbmcgdGhlIGRpcmVjdG9yeQotKyMg JHRhcmRpci4KLSsjICAgICB0YXJkaXI9ZGlyZWN0b3J5ICYmICQoYW1fX3RhcikgPiByZXN1bHQu dGFyCi0rIwotKyMgU3Vic3RpdHV0ZSBhIHZhcmlhYmxlICQoYW1fX3VudGFyKSB0aGF0IGV4dHJh Y3Qgc3VjaAotKyMgYSB0YXJiYWxsIHJlYWQgZnJvbSBzdGRpbi4KLSsjICAgICAkKGFtX191bnRh cikgPCByZXN1bHQudGFyCi0rQUNfREVGVU4oW19BTV9QUk9HX1RBUl0sCi0rWyMgQWx3YXlzIGRl ZmluZSBBTVRBUiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eS4KLStBTV9NSVNTSU5HX1BST0co W0FNVEFSXSwgW3Rhcl0pCi0rbTRfaWYoWyQxXSwgW3Y3XSwKLSsgICAgIFthbV9fdGFyPScke0FN VEFSfSBjaG9mIC0gIiQkdGFyZGlyIic7IGFtX191bnRhcj0nJHtBTVRBUn0geGYgLSddLAotKyAg ICAgW200X2Nhc2UoWyQxXSwgW3VzdGFyXSwsIFtwYXhdLCwKLSsgICAgICAgICAgICAgIFttNF9m YXRhbChbVW5rbm93biB0YXIgZm9ybWF0XSldKQotK0FDX01TR19DSEVDS0lORyhbaG93IHRvIGNy ZWF0ZSBhICQxIHRhciBhcmNoaXZlXSkKLSsjIExvb3Agb3ZlciBhbGwga25vd24gbWV0aG9kcyB0 byBjcmVhdGUgYSB0YXIgYXJjaGl2ZSB1bnRpbCBvbmUgd29ya3MuCi0rX2FtX3Rvb2xzPSdnbnV0 YXIgbTRfaWYoWyQxXSwgW3VzdGFyXSwgW3BsYWludGFyXSkgcGF4IGNwaW8gbm9uZScKLStfYW1f dG9vbHM9JHthbV9jdl9wcm9nX3Rhcl8kMS0kX2FtX3Rvb2xzfQotKyMgRG8gbm90IGZvbGQgdGhl IGFib3ZlIHR3byBsaW5lIGludG8gb25lLCBiZWNhdXNlIFRydTY0IHNoIGFuZAotKyMgU29sYXJp cyBzaCB3aWxsIG5vdCBncm9rIHNwYWNlcyBpbiB0aGUgcmhzIG9mIGAtJy4KLStmb3IgX2FtX3Rv b2wgaW4gJF9hbV90b29scwotK2RvCi0rICBjYXNlICRfYW1fdG9vbCBpbgotKyAgZ251dGFyKQot KyAgICBmb3IgX2FtX3RhciBpbiB0YXIgZ251dGFyIGd0YXI7Ci0rICAgIGRvCi0rICAgICAgQU1f UlVOX0xPRyhbJF9hbV90YXIgLS12ZXJzaW9uXSkgJiYgYnJlYWsKLSsgICAgZG9uZQotKyAgICBh bV9fdGFyPSIkX2FtX3RhciAtLWZvcm1hdD1tNF9pZihbJDFdLCBbcGF4XSwgW3Bvc2l4XSwgWyQx XSkgLWNoZiAtICInIiQkdGFyZGlyIicKLSsgICAgYW1fX3Rhcl89IiRfYW1fdGFyIC0tZm9ybWF0 PW00X2lmKFskMV0sIFtwYXhdLCBbcG9zaXhdLCBbJDFdKSAtY2hmIC0gIiciJHRhcmRpciInCi0r ICAgIGFtX191bnRhcj0iJF9hbV90YXIgLXhmIC0iCi0rICAgIDs7Ci0rICBwbGFpbnRhcikKLSsg ICAgIyBNdXN0IHNraXAgR05VIHRhcjogaWYgaXQgZG9lcyBub3Qgc3VwcG9ydCAtLWZvcm1hdD0g aXQgZG9lc24ndCBjcmVhdGUKLSsgICAgIyB1c3RhciB0YXJiYWxsIGVpdGhlci4KLSsgICAgKHRh ciAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMSAmJiBjb250aW51ZQotKyAgICBhbV9fdGFyPSd0 YXIgY2hmIC0gIiQkdGFyZGlyIicKLSsgICAgYW1fX3Rhcl89J3RhciBjaGYgLSAiJHRhcmRpciIn Ci0rICAgIGFtX191bnRhcj0ndGFyIHhmIC0nCi0rICAgIDs7Ci0rICBwYXgpCi0rICAgIGFtX190 YXI9J3BheCAtTCAteCAkMSAtdyAiJCR0YXJkaXIiJwotKyAgICBhbV9fdGFyXz0ncGF4IC1MIC14 ICQxIC13ICIkdGFyZGlyIicKLSsgICAgYW1fX3VudGFyPSdwYXggLXInCi0rICAgIDs7Ci0rICBj cGlvKQotKyAgICBhbV9fdGFyPSdmaW5kICIkJHRhcmRpciIgLXByaW50IHwgY3BpbyAtbyAtSCAk MSAtTCcKLSsgICAgYW1fX3Rhcl89J2ZpbmQgIiR0YXJkaXIiIC1wcmludCB8IGNwaW8gLW8gLUgg JDEgLUwnCi0rICAgIGFtX191bnRhcj0nY3BpbyAtaSAtSCAkMSAtZCcKLSsgICAgOzsKLSsgIG5v bmUpCi0rICAgIGFtX190YXI9ZmFsc2UKLSsgICAgYW1fX3Rhcl89ZmFsc2UKLSsgICAgYW1fX3Vu dGFyPWZhbHNlCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICAjIElmIHRoZSB2YWx1ZSB3YXMgY2Fj aGVkLCBzdG9wIG5vdy4gIFdlIGp1c3Qgd2FudGVkIHRvIGhhdmUgYW1fX3RhcgotKyAgIyBhbmQg YW1fX3VudGFyIHNldC4KLSsgIHRlc3QgLW4gIiR7YW1fY3ZfcHJvZ190YXJfJDF9IiAmJiBicmVh awotKwotKyAgIyB0YXIvdW50YXIgYSBkdW1teSBkaXJlY3RvcnksIGFuZCBzdG9wIGlmIHRoZSBj b21tYW5kIHdvcmtzCi0rICBybSAtcmYgY29uZnRlc3QuZGlyCi0rICBta2RpciBjb25mdGVzdC5k aXIKLSsgIGVjaG8gR3JlcE1lID4gY29uZnRlc3QuZGlyL2ZpbGUKLSsgIEFNX1JVTl9MT0coW3Rh cmRpcj1jb25mdGVzdC5kaXIgJiYgZXZhbCAkYW1fX3Rhcl8gPmNvbmZ0ZXN0LnRhcl0pCi0rICBy bSAtcmYgY29uZnRlc3QuZGlyCi0rICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LnRhcjsgdGhlbgotKyAg ICBBTV9SVU5fTE9HKFskYW1fX3VudGFyIDxjb25mdGVzdC50YXJdKQotKyAgICBncmVwIEdyZXBN ZSBjb25mdGVzdC5kaXIvZmlsZSA+L2Rldi9udWxsIDI+JjEgJiYgYnJlYWsKLSsgIGZpCi0rZG9u ZQotK3JtIC1yZiBjb25mdGVzdC5kaXIKLSsKLStBQ19DQUNIRV9WQUwoW2FtX2N2X3Byb2dfdGFy XyQxXSwgW2FtX2N2X3Byb2dfdGFyXyQxPSRfYW1fdG9vbF0pCi0rQUNfTVNHX1JFU1VMVChbJGFt X2N2X3Byb2dfdGFyXyQxXSldKQotK0FDX1NVQlNUKFthbV9fdGFyXSkKLStBQ19TVUJTVChbYW1f X3VudGFyXSkKLStdKSAjIF9BTV9QUk9HX1RBUgotKwotK200X2luY2x1ZGUoW2NvbmZpZy9heF9i b29zdC5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2F4X215c3FsLm00XSkKLSttNF9pbmNsdWRl KFtjb25maWcvYXhfb3JhY2xlX29jaS5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2F4X3Bvc3Rn cmVzcWwubTRdKQotK200X2luY2x1ZGUoW2NvbmZpZy9jcHB1bml0Lm00XSkKLSttNF9pbmNsdWRl KFtjb25maWcvbGlidG9vbC5tNF0pCi0rbTRfaW5jbHVkZShbY29uZmlnL2x0b3B0aW9ucy5tNF0p Ci0rbTRfaW5jbHVkZShbY29uZmlnL2x0c3VnYXIubTRdKQotK200X2luY2x1ZGUoW2NvbmZpZy9s dHZlcnNpb24ubTRdKQotK200X2luY2x1ZGUoW2NvbmZpZy9sdH5vYnNvbGV0ZS5tNF0pCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVw MzAwL2J1aWxkL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svYnVpbGQvTWFrZWZp bGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvYnVpbGQvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOTozNzowOC4wMDAwMDAwMDAg KzAyMDAKLUBAIC0wLDAgKzEsNyBAQAotKyMjIGJ1aWxkIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRl ICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMg PSBNYWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSB1bml4IG1zdmM4MAotKwotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9idWls ZC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL01ha2VmaWxlLmluCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L2J1aWxkL01ha2VmaWxlLmluCTIwMTEtMDctMDMgMTg6NDQ6MjcuMDAwMDAwMDAwICswMjAwCi1A QCAtMCwwICsxLDYxOSBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEu MTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHly aWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwg MjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJl ZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1p dGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Ig d2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0 ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu dHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVS UE9TRS4KLSsKLStAU0VUX01BS0VACi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAk KGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNL QUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGlyID0g JChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9O Ky59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxs X3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0r aW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAk KElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0r Tk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgot K05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFM TCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAot K0RJU1RfQ09NTU9OID0gUkVBRE1FICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFr ZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1 aWxkCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2NhbC5tNAotK2FtX19hY2xvY2Fs X200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29zdC5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfb3Jh Y2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0b3B0aW9ucy5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAk KHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1cmVfZGVwcyA9ICQoYW1fX2Fj bG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9N NCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAotK0NPTkZJR19IRUFERVIgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19DTEVBTl9GSUxFUyA9Ci0rQ09O RklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KLStTT1VSQ0VTID0KLStESVNUX1NPVVJDRVMgPQotK1JF Q1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vy c2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1 cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBc Ci0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWlu c3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2 ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1y ZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK1JFQ1VSU0lW RV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZlIGNsZWFuLXJlY3Vyc2l2ZQlc Ci0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rQU1f UkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRTOi1yZWN1cnNpdmU9KSBcCi0r CSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIHRhZ3MgVEFHUyBjdGFncyBD VEFHUyBcCi0rCWRpc3RkaXIKLStFVEFHUyA9IGV0YWdzCi0rQ1RBR1MgPSBjdGFncwotK0RJU1Rf U1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1Rf U09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK2FtX19yZWxhdGl2aXplID0gXAot KyAgZGlyMD1gcHdkYDsgXAotKyAgc2VkX2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBc Ci0rICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAotKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14v XSpcKSQkLFwxLCc7IFwKLSsgIHNlZF9idXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAotKyAgd2hp bGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAotKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNl ZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRo ZW4gXAotKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsgdGhlbiBcCi0rICAgICAgICBk aXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKLSsg ICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAot KyAgICAgIGVsc2UgXAotKyAgICAgICAgZmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIk JHNlZF9maXJzdCJgOyBcCi0rICAgICAgICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7 IHRoZW4gXAotKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9y ZXN0ImA7IFwKLSsgICAgICAgIGVsc2UgXAotKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBc Ci0rICAgICAgICBmaTsgXAotKyAgICAgICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKLSsg ICAgICBmaTsgXAotKyAgICBmaTsgXAotKyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1l ICIkJHNlZF9yZXN0ImA7IFwKLSsgIGRvbmU7IFwKLSsgIHJlbGRpcj0iJCRkaXIyIgotK0FDTE9D QUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9 IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVU T01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJQiA9IEBCT09TVF9BU0lPX0xJQkAK LStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBA Qk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxF U1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJA Ci0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJ X0xJQkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKLStC T09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0r Qk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9 IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VS SUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJA Ci0rQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVBRF9M SUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9 IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NU X1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFU SU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9 IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklU X0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NP TkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9 IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NY WERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRI X1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RM TFRPT0wgPSBARExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERV TVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9 IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9 IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVS U0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFU QSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAK LStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dS QU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERG TEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBA TElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBM VExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUFOSUZFU1RfVE9PTCA9IEBNQU5J RkVTVF9UT09MQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxf Q0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlT UUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBN WVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9 IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJ UlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09D SV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBA T1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2 NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9C VUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklO RyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1F QAotK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNL QUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9 IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBA UE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AK LStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxf VkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStTRUQg PSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lf SEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJ UCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9O ID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGly ID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAot K2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0FSID0gQGFjX2N0X0FS QAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNf Y3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRl QAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFt X19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAK LStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1 aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRf b3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRp ckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0r ZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBk b3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0r ZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBo b3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAK LStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRt bGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0g QGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4 X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xv Y2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAot K21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIg PSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhA Ci0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3Bz ZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAot K3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0r c3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNA Ci0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9 IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdT ID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rTUFJTlRBSU5FUkNMRUFORklM RVMgPSBNYWtlZmlsZS5pbgotK1NVQkRJUlMgPSB1bml4IG1zdmM4MAotK2FsbDogYWxsLXJlY3Vy c2l2ZQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJl X2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJl X2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAg ICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0r CSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQo dG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvTWFrZWZpbGUnOyBcCi0rCSQo YW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBidWlsZC9N YWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2Vm aWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAot KwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8g JyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGly KS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19t YXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQo dG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAot KwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNk ICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAot KyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9j YWxfbTRfZGVwcyk6Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsK LStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rIyBUaGlzIGRpcmVj dG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QK LSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBN YWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGlu c3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNl dCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNo IHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4g YG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRo ZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbD0g ZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAg Y2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxj b209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87 IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSck KFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcg JCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0 aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0r CSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsg XAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIk JGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29t PSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQk ZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFp bD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwlj YXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0 PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0r CWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIg JCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRh cmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAk JHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQi OyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9N QUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJ ZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9 IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdz KTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFt X19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRv bmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQot KwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAot Kwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsg dGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8 IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAg ICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0n YDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1y ZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0r CQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlp ZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0 aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9m aXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBl bXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBc Ci0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRAIiAi JCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlk b25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklM RVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAt ZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0r CSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsg fSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50 IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQq JCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlx dWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAk KEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0r CSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVU QUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5p cXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVj dXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJ JChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChM SVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAot KwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGly KS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7 IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkg aW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1 bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykg JChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChh bV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bf c3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rp c3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEgg dGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQo c3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0 cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7 IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGlu ICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2Rp cnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1 aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1L RElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8Xnwk KGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVz YWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAk JGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsg XAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8k JGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChk aXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUi IC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBm aTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQo c3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0 ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUi IC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBm aTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQg MTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJ ICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBl eGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBm b3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRo ZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAg ICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7 IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsg XAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGly OyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAg ICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwK LSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9w X2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7 IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3Ro X2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgkKGFtX19j ZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAg ICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRp cj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3Nr aXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAgICAgICAg ZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hl Y2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxl Ci0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgot K2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMt cmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0 YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0r aW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJ JChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBf UFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9H UkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8 IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSci YCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwot K2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8 fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8 IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdf Q0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNo byAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBl Y2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byBy ZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAk KE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVh bi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlz dGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVh bi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6 IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsK LStodG1sLWFtOgotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStp bnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQot KwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0 bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5z dGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgot KwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUK LSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2 ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWlu ZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQot K21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVy aWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xl YW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjog cGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMt YW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWFt IGluc3RhbGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFs bC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAot KwljdGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJ ZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwg XAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRh IFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwt ZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGlu c3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBp bnN0YWxsLXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlw IGluc3RhbGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGly cy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3Rs eWNsZWFuIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBw ZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0rCXVuaW5zdGFsbCB1bmluc3Rh bGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9m IEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5 c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBP UlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmls ZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5hbQotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUuYW0JMTk3MC0wMS0w MSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQv bXN2YzgwL2RsbC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAwMDAwMCArMDIw MAotQEAgLTAsMCArMSwxMSBAQAotKyMjIGJ1aWxkL21zdmM4MC9kbGwgc3ViLWRpcmVjdG9yeQot K2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStNQUlOVEFJTkVSQ0xF QU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rRVhUUkFfRElTVCA9IGJ1aWxkLmJhdCBlbXB0eS52 Y3Byb2ogbWFrZXRlc3QubWFrIG9kYmNfdGVzdF9wb3N0Z3Jlc3FsLnZjcHJvaiBcCi0rCXBvc3Rn cmVzcWxfdGVzdC52Y3Byb2ogc3FsaXRlM190ZXN0LnZjcHJvaiBjbGVhbi5iYXQgXAotKwlmaXJl YmlyZF90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfYWNjZXNzLnZjcHJvaiBvZGJjLnZjcHJvaiBcCi0r CXBvc3RncmVzcWwudmNwcm9qIHNxbGl0ZTMudmNwcm9qIGNvcmUudmNwcm9qIGZpcmViaXJkLnZj cHJvaiBcCi0rCW9kYmNfdGVzdF9tc3NxbC52Y3Byb2ogb3JhY2xlX3Rlc3QudmNwcm9qIHNvY2lf ZGxsLnNsbiBcCi0rCWVtcHR5X3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9teXNxbC52Y3Byb2ogb3Jh Y2xlLnZjcHJvaiBzb2NpX2RsbC52c3Byb3BzCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv YnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2 YzgwL2RsbC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9k bGwvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZS5pbgkyMDExLTA3LTAz IDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw0MjMgQEAKLSsjIE1ha2VmaWxl LmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBj b25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMu Ci0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0 Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRI ID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNs dWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikv QFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1f X2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAot K2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9Q Uk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxs X3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0g JChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNU QUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9V TklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWls ZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxl LmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL21zdmM4MC9kbGwKLStBQ0xPQ0FMX000ID0gJCh0b3Bf c3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rpcikv Y29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2Nw cHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRz dWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9w X3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFj Ci0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VS RV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGlu c3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZp Zy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQot K1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rRElTVEZJTEVTID0gJChESVNUX0NPTU1PTikg JChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0gQEFD TE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NP TkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAot K0FXSyA9IEBBV0tACi0rQk9PU1RfQVNJT19MSUIgPSBAQk9PU1RfQVNJT19MSUJACi0rQk9PU1Rf Q0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RB VEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9M SUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NU X0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0r Qk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZ VEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1Rf UkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJ T05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NU X1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJP T1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1Rf VU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9O QAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJA Ci0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdT QAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1Mg PSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0r Q1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5J VF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RF ID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZ R1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStETExUT09MID0g QERMTFRPT0xACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAot K0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19U QAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBA Ci0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0r R1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5T VEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFM TF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElO U1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0r TElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xA Ci0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpT QAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01BTklGRVNUX1RPT0wgPSBATUFOSUZFU1RfVE9P TEAKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AK LStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNA Ci0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVS U0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVN UEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09S QUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFH UyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9P Q0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFD S0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JU QAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFD S0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNL QUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJT SU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAK LStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVT UUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdS RVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04g PSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rU0VEID0gQFNFREAK LStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklF RCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJT X0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RS SVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJT SU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNf c3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9w X3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9BUiA9IEBhY19jdF9BUkAKLSthY19j dF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBC SU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9f bGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVA Ci0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGly ID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlh c0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1 aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0 YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sg PSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9v a0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJl Zml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLSto b3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9v cyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBA aHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGly QAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLSts aWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIg PSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIg PSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGlu Y2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dy YW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBw c2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRz dGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZk aXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9i dWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1 aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0 b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFr ZWZpbGUuaW4KLStFWFRSQV9ESVNUID0gYnVpbGQuYmF0IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5t YWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwKLSsJcG9zdGdyZXNxbF90ZXN0LnZjcHJv aiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBcCi0rCWZpcmViaXJkX3Rlc3QudmNwcm9q IG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNwcm9qIFwKLSsJcG9zdGdyZXNxbC52Y3By b2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmlyZWJpcmQudmNwcm9qIFwKLSsJb2RiY190 ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3Byb2ogc29jaV9kbGwuc2xuIFwKLSsJZW1w dHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZjcHJvaiBvcmFjbGUudmNwcm9qIHNvY2lf ZGxsLnZzcHJvcHMKLSsKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2Rpcikv TWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0r CSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0r CSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7 IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0r CWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUg YnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2Rpcikg JiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUKLSsu UFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRv cF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmln LnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9f ZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwp IC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAot Kwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIp L2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9z cmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxf TTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMp OgotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGli dG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK3RhZ3M6IFRBR1MKLStUQUdTOgotKwotK2N0 YWdzOiBDVEFHUwotK0NUQUdTOgotKwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3Rf ZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAg c2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3Jj ZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBp biBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAg IHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBz b3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBc Ci0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNl IGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0r CSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkg ICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAi JChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4 IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxl ICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNk aXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAi JChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4 IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3Rk aXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0 ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRm aWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06 IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUKLStpbnN0YWxsZGly czoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0K LStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLWFt Ci0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hl Y2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxM X1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAot KwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFN X0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmlj OgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16 ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQot KwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhf RklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFp bmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9y IG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkg cmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAteiAiJChNQUlOVEFJ TkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklMRVMpCi0rY2xlYW46 IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0 bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmls ZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKLSsKLStkdmk6IGR2 aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raHRtbC1hbToKLSsKLStp bmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5z dGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1kdmktYW06Ci0rCi0raW5zdGFs bC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFs bC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFs bC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBk Zi1hbQotKwotK2luc3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0K LSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVy LWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWlu ZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLStt b3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYt YW06Ci0rCi0rcHM6IHBzLWFtCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5N QUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKLSsKLSsuUEhPTlk6IGFsbCBhbGwtYW0gY2hl Y2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNs ZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIGRpc3RkaXIgZHZpIFwKLSsJ ZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIFwKLSsJ aW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBc Ci0rCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRt bC1hbSBcCi0rCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFs bC1wZGYgXAotKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFs bC1zdHJpcCBcCi0rCWluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgbWFp bnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBt b3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBz IHBzLWFtIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rIyBUZWxs IHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlh Ymxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1h eSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv YnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2 YzgwL2xpYi9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL21zdmM4MC9s aWIvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2 IDE5OjM3OjA3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxMSBAQAotKyMjIGJ1aWxkL21z dmM4MC9saWIgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5j b21tb24KLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rRVhUUkFf RElTVCA9IGJ1aWxkLmJhdCBlbXB0eS52Y3Byb2ogbWFrZXRlc3QubWFrIG9kYmNfdGVzdF9wb3N0 Z3Jlc3FsLnZjcHJvaiBcCi0rCXBvc3RncmVzcWxfdGVzdC52Y3Byb2ogc3FsaXRlM190ZXN0LnZj cHJvaiBjbGVhbi5iYXQgXAotKwlmaXJlYmlyZF90ZXN0LnZjcHJvaiBvZGJjX3Rlc3RfYWNjZXNz LnZjcHJvaiBvZGJjLnZjcHJvaiBcCi0rCXBvc3RncmVzcWwudmNwcm9qIHNxbGl0ZTMudmNwcm9q IGNvcmUudmNwcm9qIGZpcmViaXJkLnZjcHJvaiBcCi0rCW9kYmNfdGVzdF9tc3NxbC52Y3Byb2og b3JhY2xlX3Rlc3QudmNwcm9qIHNvY2lfbGliLnNsbiBcCi0rCWVtcHR5X3Rlc3QudmNwcm9qIG9k YmNfdGVzdF9teXNxbC52Y3Byb2ogb3JhY2xlLnZjcHJvaiBzb2NpX2xpYi52c3Byb3BzCi1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZS5pbiBzb2Np LTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL2J1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL2xp Yi9NYWtlZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAs MCArMSw0MjMgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEg ZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQg KEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIs Ci0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29m dHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBw ZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhv dXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0r Ci0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBw ZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0Uu Ci0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRh ZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAK LStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGli ZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQo UEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkg LWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3Rh bGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNU QUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1B TF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JN QUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6 Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNU X0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAot KwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL21zdmM4MC9s aWIKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxf bTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFj bGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQo dG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNs b2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000 KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQo dG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05G SUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rRElT VEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhU UkFfRElTVCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBA QVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAot K0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQVNJT19MSUIgPSBA Qk9PU1RfQVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9E QVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9M SUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09T VF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElf TElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJ X1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFN X09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStC T09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05f TElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJP T1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAK LStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNU X0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1Rf VkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBC T09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQ TU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQ RkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05G SUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStD UFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQ ID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hY RkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElS ID0gQERFUERJUkAKLStETExUT09MID0gQERMTFRPT0xACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxA Ci0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVD SE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBF WEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VO RVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFM TEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJ TlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5T VEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAK LStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElC U0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AK LStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01BTklG RVNUX1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxf Q0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKLStN WVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAotK01Z U1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1F RElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9E SVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZM QUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xF X09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStP VE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQ T1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVA Ci0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0g QFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKLStQQUNLQUdF X1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQ QVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RH UkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQ T1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFH U0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9 IEBSQU5MSUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9 IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0r U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAot K1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVS U19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NP TU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRk aXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJz X3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19j dF9BUiA9IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBA YWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVk ZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAot K2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRh ciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLSti dWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1 aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVp bGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0g QGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAot K2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29r ID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdz X29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9j cHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhv c3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVk aXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLSts YXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBA bGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBA bG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAK LStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStw cmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFu c2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2Vk X29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNk aXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMg PSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAK LSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2Rp ckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01B SU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStFWFRSQV9ESVNUID0gYnVpbGQuYmF0 IGVtcHR5LnZjcHJvaiBtYWtldGVzdC5tYWsgb2RiY190ZXN0X3Bvc3RncmVzcWwudmNwcm9qIFwK LSsJcG9zdGdyZXNxbF90ZXN0LnZjcHJvaiBzcWxpdGUzX3Rlc3QudmNwcm9qIGNsZWFuLmJhdCBc Ci0rCWZpcmViaXJkX3Rlc3QudmNwcm9qIG9kYmNfdGVzdF9hY2Nlc3MudmNwcm9qIG9kYmMudmNw cm9qIFwKLSsJcG9zdGdyZXNxbC52Y3Byb2ogc3FsaXRlMy52Y3Byb2ogY29yZS52Y3Byb2ogZmly ZWJpcmQudmNwcm9qIFwKLSsJb2RiY190ZXN0X21zc3FsLnZjcHJvaiBvcmFjbGVfdGVzdC52Y3By b2ogc29jaV9saWIuc2xuIFwKLSsJZW1wdHlfdGVzdC52Y3Byb2ogb2RiY190ZXN0X215c3FsLnZj cHJvaiBvcmFjbGUudmNwcm9qIHNvY2lfbGliLnZzcHJvcHMKLSsKLSthbGw6IGFsbC1hbQotKwot Ky5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUu YW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2RlcHMpCi0r CUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBp biBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYg dGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4 aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2Rp cikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSc7IFwKLSsJ JChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IGJ1aWxk L21zdmM4MC9saWIvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQo c3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2Fz ZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBc Ci0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0 YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChh bV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25m aWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5E RU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3Vy ZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg YW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwlj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gK LSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1y bSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK3Rh Z3M6IFRBR1MKLStUQUdTOgotKwotK2N0YWdzOiBDVEFHUwotK0NUQUdTOgotKwotKwotK2Rpc3Rk aXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQg J3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRv cF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChE SVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNo byAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwK LSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsg XAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIk JGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywv W14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZp bGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAt ZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3Qg LWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1l ICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUi OyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVy bSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYg dGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBc Ci0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBl eGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVy bSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3Ag LWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2Ug XAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQk ZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBm aTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1h bTogTWFrZWZpbGUKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFs bC1leGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQot K3VuaW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0r aW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFN KSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJ TlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkg ICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3Rh bGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNs ZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1m ICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAt eiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9W UEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlz IGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0 IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQu IgotKwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRB SU5FUkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdl bmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNs ZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNs ZWFuLWdlbmVyaWMKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1s LWFtCi0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStp bnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5z dGFsbC1kdmktYW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5z dGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzogaW5z dGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwot K2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcGRmLWFtOgotKwotK2lu c3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxj aGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0rCS1y bSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFp bmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLSsKLStt b3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0r Ci0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0rCi0rcHMtYW06Ci0r Ci0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKLSsK LSsuUEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBj bGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1s aWJ0b29sIGRpc3RkaXIgZHZpIFwKLSsJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0g aW5zdGFsbCBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0 YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBcCi0rCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0g aW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCi0rCWluc3RhbGwtaW5mbyBpbnN0YWxsLWlu Zm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAotKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxs LXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCi0rCWluc3RhbGxjaGVjayBpbnN0YWxs Y2hlY2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xl YW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xl YW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsK LStAU0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtl IHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1p dCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZm IC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtIHNvY2ktMy4w LjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvbXN2YzgwL01ha2VmaWxlLmFtCTIw MDktMDQtMTYgMTk6Mzc6MDguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDggQEAKLSsjIyBi dWlsZC9tc3ZjODAgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24KLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rRVhU UkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCi0rCi0rU1VCRElSUyA9IGRsbCBsaWIK LWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9idWlsZC9tc3ZjODAvTWFrZWZpbGUuaW4gc29j aS0zLjAuMF90cmVwMzAwL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2J1aWxkL21zdmM4MC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAw MDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9idWlsZC9tc3ZjODAvTWFrZWZpbGUu aW4JMjAxMS0wNy0wMyAxODo0NDoyNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNjIwIEBA Ci0rIyBNYWtlZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZp bGUuYW0uCi0rIyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAx OTk1LCAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywg MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLAotKyMgSW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0 byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNh dGlvbnMsIGFzIGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBw cm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws Ci0rIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5 IGxhdzsgd2l0aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFC SUxJVFkgb3IgRklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRf TUFLRUAKLStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tB R0VACi0rcGtnaW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGly ID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQ QUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJB VE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAot K2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQ VCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQot K3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9 IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFM TCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3Ry aXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAk KHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBidWlsZC9tc3ZjODAKLStBQ0xPQ0FMX000 ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9w X3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhf bXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29u ZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAk KENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRp cnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9z b2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhf RklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rUkVDVVJTSVZFX1RBUkdFVFMg PSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1y ZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3Rh bGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1s LXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJz aXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNo ZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBz LXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMg PSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1y ZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStBTV9SRUNVUlNJVkVfVEFSR0VU UyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKLSsJZGlzdGRp cgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJE SVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElO Rk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZpemUgPSBcCi0rICBkaXIwPWBwd2RgOyBc Ci0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKLSsgIHNlZF9yZXN0PSdz LF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAot KyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3aGlsZSB0ZXN0IC1uICIkJGRp cjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJz dCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCi0rICAgICAgaWYg dGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsgICAgICAgIGRpcjI9YGVjaG8gIiQkZGly MCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAotKyAgICAgICAgZGlyMD1gZWNo byAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCi0rICAgICAgZWxzZSBcCi0r ICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwK LSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCi0rICAgICAg ICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgICAg ICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKLSsgICAgICAgIGZpOyBc Ci0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAotKyAgICAgIGZpOyBcCi0rICAg IGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsg XAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIiCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAot K0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FV VE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBA QVdLQAotK0JPT1NUX0FTSU9fTElCID0gQEJPT1NUX0FTSU9fTElCQAotK0JPT1NUX0NGTEFHUyA9 IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVf TElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JP T1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0g QEJPT1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01Q SV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BU SU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElC ID0gQEJPT1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJ QkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAK LStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1f TElCID0gQEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJF QURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVT VF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09T VF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0g QENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAg PSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVO SVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRf TElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lP TkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhE RVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dA Ci0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRExMVE9PTCA9IEBETExUT09M QAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0RVTVBCSU4gPSBARFVNUEJJTkAKLStFQ0hPX0Mg PSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JF UCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0ZHUkVQID0gQEZHUkVQQAotK0dFTkVS SUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBA R1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFU QUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBU ID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NU UklQX1BST0dSQU1ACi0rTEQgPSBATERACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMg PSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xJUE8g PSBATElQT0AKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtF SU5GTyA9IEBNQUtFSU5GT0AKLStNQU5JRkVTVF9UT09MID0gQE1BTklGRVNUX1RPT0xACi0rTUtE SVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxf Q19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FM X0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0r Tk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JK RVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJ X0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JB Q0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJ T05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBA UEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNL QUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RS SU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9VUkwg PSBAUEFDS0FHRV9VUkxACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQ QVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09O RklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFH U0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERG TEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RH UkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1NFRCA9IEBTRURACi0rU0VUX01B S0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9 IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09D SV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQg PSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQ TE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSth YnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAK LSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIg PSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQVIgPSBAYWNfY3RfQVJACi0rYWNfY3RfQ0MgPSBA YWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFj X2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdf ZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190 YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5k aXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVp bGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5k b3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBA ZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZf b2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZp ZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBl eGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlh cyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9z dF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJA Ci0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0 YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0g QGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2Fs ZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbWFuZGlyID0gQG1hbmRp ckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGly QAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0r c2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIg PSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5 c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJl Zml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAK LSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxk ZGlyKSAtSSQodG9wX3NyY2RpcikKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu Ci0rRVhUUkFfRElTVCA9IFJFQURNRS50eHQgc29jaS52c3Byb3BzCi0rU1VCRElSUyA9IGRsbCBs aWIKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2Vm aWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNh c2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAg ICAoIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNl IGJyZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25l OyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IGJ1aWxk L21zdmM4MC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkg ICQoQVVUT01BS0UpIC0tZ251IGJ1aWxkL21zdmM4MC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFr ZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9j b25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAot KwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXli ZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3Rh dHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0r JCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQo Q09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmln dXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19h Y2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rbW9zdGx5 Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0g LXJmIC5saWJzIF9saWJzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFy ZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBt YWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0 aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmls ZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVk aXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxl cyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndp c2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgot KyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlm b3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0q IHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBl c2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwg c2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBc Ci0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXll czsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJ ICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2Qp ICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0r CSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVu IiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1h bSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVf Q0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGlu IHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsh a10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwK LSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3Rj bGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwK LSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhl biA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJ ZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1y ZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1h a2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAi LiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNl IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChh bV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0 KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwi Ci0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQk bGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRp ciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVj dXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAk KFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVB REVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlx dWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNP VVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkK LSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNs dWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlv bj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBp bmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0r CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRl c3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJk aXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUv JCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsg XAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2Ug XAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBp ZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQo QU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBc Ci0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFH UykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkK LStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VS Q0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0r CWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAot Kwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsg dGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8 IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAg ICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0n YDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdT KSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAg JCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAm JiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3Mg LWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYg VEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElT VEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14k JFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIp IiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMp JzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7 IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAg LWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNl ICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmls ZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCws JyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRk aXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7 IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQk ZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9d KiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwK LSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1l eGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAk KHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAg IGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwK LSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1l eGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQv JCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAg dGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUg IiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlk b25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8g XAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0 IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3Rk aXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0r CUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3Vi ZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6 ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGly OyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0r CSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJk aXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0 ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1f X3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9m aXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAg ICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3 X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJ YW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJ YW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBl eGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBj aGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlCi0raW5zdGFsbGRpcnM6IGluc3RhbGxk aXJzLXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJz aXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRh OiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZl Ci0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0 YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hl Y2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykg SU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxs X3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFH PS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExf UFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4t Z2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwkt dGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9G SUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFO X1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0r bWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVu ZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRo YXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQo TUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQot K2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJz aXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFu LWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmkt YW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2luZm86IGlu Zm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5z dGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwot K2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNp dmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8t cmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2lu c3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToKLSsK LStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06Ci0r Ci0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xl YW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRp c3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9z dGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVy aWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1h bToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgot KwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRT KSBjdGFncy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAgdGFncy1yZWN1 cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZF X1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVh biBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwljdGFncyBjdGFncy1yZWN1cnNpdmUg ZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNs ZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1h bSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGlu c3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1h bSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwt aW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBcCi0rCWluc3Rh bGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBcCi0rCWluc3Rh bGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwK LSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWdlbmVy aWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gdGFncyB0YWdz LXJlY3Vyc2l2ZSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0r Ci0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQg YWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQg bGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQv dW5peC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZp bGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA4LjAwMDAw MDAwMCArMDIwMAotQEAgLTAsMCArMSwxMSBAQAotKyMjIGJ1aWxkL3VuaXggc3ViLWRpcmVjdG9y eQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStNQUlOVEFJTkVS Q0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFU SUJJTElUWSA9ICAuX2ZpbmQtYm9vc3QudGNsIC5fYnVpbGQtbXlzcWwudGNsIC5fYnVpbGQtcG9z dGdyZXNxbC50Y2wgLl9leGVjdXRlLnRjbCAuX2J1aWxkLWNvcmUudGNsIC5faW5zdGFsbC50Y2wg Ll9wYXJzZS1wYXJhbWV0ZXJzLnRjbAotKwotK0VYVFJBX0RJU1QgPSBidWlsZC1jb3JlLnRjbCBi dWlsZC1vcmFjbGUudGNsIGJ1aWxkLnRjbCBpbnN0YWxsLnRjbCBcCi0rCXBhcnNlLXBhcmFtZXRl cnMudGNsIGZpbmQtYm9vc3QudGNsIGJ1aWxkLW15c3FsLnRjbCBcCi0rCWJ1aWxkLXBvc3RncmVz cWwudGNsIGV4ZWN1dGUudGNsIFwKLSsJJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJ VFkpCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svYnVpbGQvdW5peC9NYWtlZmlsZS5pbiBz b2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBf NC1wYWNrL2J1aWxkL3VuaXgvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvYnVpbGQvdW5peC9NYWtlZmlsZS5pbgky MDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw0MjMgQEAKLSsj IE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5h bS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUs IDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0 LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s Ci0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNv cHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9u cywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dy YW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsj IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3 OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElU WSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtF QAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAK LStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAk KGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tB R0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1Ip IiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5z dGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0g JChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJh bnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgot K1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0g OgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxl dCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3Jj ZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIp L01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IGJ1aWxkL3VuaXgKLStBQ0xPQ0FMX000ID0gJCh0 b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2Rp cikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJl LmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJ R1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAk KGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2Nv bmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMg PQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rRElTVEZJTEVTID0gJChESVNUX0NPTU1P TikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStBQ0xPQ0FMID0g QEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVU T0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtF QAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQVNJT19MSUIgPSBAQk9PU1RfQVNJT19MSUJACi0rQk9P U1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NU X0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RF TV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JP T1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJA Ci0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1Rf UFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NU X1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9P U1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTEla QVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JP T1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0g QEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9P U1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJT SU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9M SUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZM QUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxB R1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdA Ci0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQ VU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBN T0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0g QENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStETExUT09M ID0gQERMTFRPT0xACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklO QAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNI T19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdS RVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05A Ci0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBA SU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5T VEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0g QElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NA Ci0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRP T0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJP QkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01BTklGRVNUX1RPT0wgPSBATUFOSUZFU1Rf VE9PTEAKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFH U0AKLStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJ UlNACi0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxf VkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JK RFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAot K09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERG TEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNM RV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0r UEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQ T1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBA UEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQ QUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9W RVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVS TEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RH UkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9T VEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJ T04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rU0VEID0gQFNF REAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JV UklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBA U1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBW RVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBh YnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNf dG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9BUiA9IEBhY19jdF9BUkAKLSth Y19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RV TVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSth bV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVv dGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmlu ZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9h bGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAot K2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0r ZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZf b2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdl bl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNf cHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAK LStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9z dF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIg PSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZv ZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AK LStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVk aXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5k aXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9s ZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3By b2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9 IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFy ZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2Nv bmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3Rv cF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9w X2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1J JCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK01BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KLSsKLSsjRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZID0gIC5f ZmluZC1ib29zdC50Y2wgLl9idWlsZC1teXNxbC50Y2wgLl9idWlsZC1wb3N0Z3Jlc3FsLnRjbCAu X2V4ZWN1dGUudGNsIC5fYnVpbGQtY29yZS50Y2wgLl9pbnN0YWxsLnRjbCAuX3BhcnNlLXBhcmFt ZXRlcnMudGNsCi0rRVhUUkFfRElTVCA9IGJ1aWxkLWNvcmUudGNsIGJ1aWxkLW9yYWNsZS50Y2wg YnVpbGQudGNsIGluc3RhbGwudGNsIFwKLSsJcGFyc2UtcGFyYW1ldGVycy50Y2wgZmluZC1ib29z dC50Y2wgYnVpbGQtbXlzcWwudGNsIFwKLSsJYnVpbGQtcG9zdGdyZXNxbC50Y2wgZXhlY3V0ZS50 Y2wgXAotKwkkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLSsKLSthbGw6IGFs bC1hbQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJl X2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJl X2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAg ICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0r CSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQo dG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgYnVpbGQvdW5peC9NYWtlZmlsZSc7IFwK LSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IGJ1 aWxkL3VuaXgvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3Jj ZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAn JD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0r CSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1 cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3Bf YnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9f ZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcu c3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5D SUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9k ZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsk KGFtX19hY2xvY2FsX200X2RlcHMpOgotKwotK21vc3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAt ZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGlicyBfbGlicwotK3RhZ3M6 IFRBR1MKLStUQUdTOgotKwotK2N0YWdzOiBDVEFHUwotK0NUQUdTOgotKwotKwotK2Rpc3RkaXI6 ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3Mv W10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9z cmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNU RklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAk JGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJ ICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAot KwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRp c3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14v XSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUg aW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAk JGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQg JCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdz LC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0 aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAt NzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVz dCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0r CSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0 IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAt NzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZw UiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAot KwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8k JGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsg XAotKwlkb25lCi0rY2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTog TWFrZWZpbGUKLStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1l eGVjOiBpbnN0YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3Vu aW5zdGFsbDogdW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5z dGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg XAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNU QUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAg ZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwK LSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFu LWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQo Q09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAi JChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFU SF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNv bW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRl bGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgot KwktdGVzdCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5F UkNMRUFORklMRVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVy aWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFu LWFtCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFu LWdlbmVyaWMKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFt Ci0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0 YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFs bC1kdmktYW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFs bC1odG1sLWFtCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzogaW5zdGFs bC1pbmZvLWFtCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2lu c3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3RhbGwtcGRmLWFtOgotKwotK2luc3Rh bGwtcHM6IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVj ay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLWFtCi0rCS1ybSAt ZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVy LWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLSsKLSttb3N0 bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sCi0rCi0r cGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0rCi0rcHMtYW06Ci0rCi0r dW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAKLSsKLSsu UEhPTlk6IGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVh bi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0 b29sIGRpc3RkaXIgZHZpIFwKLSsJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5z dGFsbCBpbnN0YWxsLWFtIFwKLSsJaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxs LWR2aSBpbnN0YWxsLWR2aS1hbSBcCi0rCWluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBcCi0rCWluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8t YW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgXAotKwlpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBz IGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBcCi0rCWluc3RhbGxjaGVjayBpbnN0YWxsY2hl Y2stYW0gaW5zdGFsbGRpcnMgbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4t Z2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4t bGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStA U0VUX01BS0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRv IG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAo Zm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1O dXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X2Jvb3N0Lm00IHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWcvYXhfYm9vc3QubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvYXhfYm9v c3QubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvY29uZmlnL2F4X2Jvb3N0Lm00CTIwMTEtMDctMDMgMTg6Mzg6NDQuMDAwMDAwMDAw ICswMjAwCi1AQCAtMCwwICsxLDc3NCBAQAotK2RubCBAc3lub3BzaXMgQVhfQk9PU1QoW01JTklN VU0tVkVSU0lPTl0sIFtBQ1RJT04tSUYtRk9VTkRdLCBbQUNUSU9OLUlGLU5PVC1GT1VORF0pCi0r ZG5sCi0rZG5sIFRlc3QgZm9yIHRoZSBCb29zdCBDKysgbGlicmFyaWVzIG9mIGEgcGFydGljdWxh ciB2ZXJzaW9uIChvciBuZXdlcikKLStkbmwKLStkbmwgSWYgbm8gcGF0aCB0byB0aGUgaW5zdGFs bGVkIGJvb3N0IGxpYnJhcnkgaXMgZ2l2ZW4gdGhlIG1hY3JvCi0rZG5sIHNlYXJjaHMgdW5kZXIg L3VzciwgL3Vzci9sb2NhbCwgYW5kIC9vcHQsIGFuZCBldmFsdWF0ZXMgdGhlCi0rZG5sICRCT09T VF9ST09UIGVudmlyb25tZW50IHZhcmlhYmxlLgotK2RubAotK2RubCBUaGlzIG1hY3JvIGNhbGxz OgotK2RubAotK2RubCAgIEFDX1NVQlNUKEJPT1NUX0NGTEFHUykgLyBBQ19TVUJTVChCT09TVF9M SUJTKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX0ZJTEVTWVNURU1fTElCKQotK2RubCAgIEFDX1NV QlNUKEJPT1NUX1NZU1RFTV9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfUFJPR1JBTV9PUFRJ T05TX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9USFJFQURfTElCKQotK2RubCAgIEFDX1NV QlNUKEJPT1NUX0lPU1RSRUFNU19MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfU0VSSUFMSVpB VElPTl9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfV1NFUklBTElaQVRJT05fTElCKQotK2Ru bCAgIEFDX1NVQlNUKEJPT1NUX1NJR05BTFNfTElCKQotK2RubCAgIEFDX1NVQlNUKEJPT1NUX0RB VEVfVElNRV9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfUkVHRVhfTElCKQotK2RubCAgIEFD X1NVQlNUKEJPT1NUX1BZVEhPTl9MSUIpCi0rZG5sICAgQUNfU1VCU1QoQk9PU1RfQVNJT19MSUIp Ci0rZG5sICAgQUNfU1VCU1QoQk9PU1RfTVBJX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9N UElfUFlUSE9OX0xJQikKLStkbmwgICBBQ19TVUJTVChCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JL X0xJQikKLStkbmwKLStkbmwgQW5kIHNldHM6Ci0rZG5sCi0rZG5sICAgSEFWRV9CT09TVAotK2Ru bCAgIEhBVkVfQk9PU1RfRklMRVNZU1RFTQotK2RubCAgIEhBVkVfQk9PU1RfU1lTVEVNCi0rZG5s ICAgSEFWRV9CT09TVF9QUk9HUkFNX09QVElPTlMKLStkbmwgICBIQVZFX0JPT1NUX1RIUkVBRAot K2RubCAgIEhBVkVfQk9PU1RfSU9TVFJFQU1TCi0rZG5sICAgSEFWRV9CT09TVF9TRVJJQUxJWkFU SU9OCi0rZG5sICAgSEFWRV9CT09TVF9TSUdOQUxTCi0rZG5sICAgSEFWRV9CT09TVF9EQVRFX1RJ TUUKLStkbmwgICBIQVZFX0JPT1NUX1JFR0VYCi0rZG5sICAgSEFWRV9CT09TVF9QWVRIT04KLStk bmwgICBIQVZFX0JPT1NUX0FTSU8KLStkbmwgICBIQVZFX0JPT1NUX01QSQotK2RubCAgIEhBVkVf Qk9PU1RfTVBJX1BZVEhPTgotK2RubCAgIEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SSwot K2RubAotK2RubCBAY2F0ZWdvcnkgSW5zdGFsbGVkUGFja2FnZXMKLStkbmwgQGF1dGhvciBUaG9t YXMgUG9yc2NoYmVyZyA8dGhvbWFzQHJhbmRzcHJpbmdlci5kZT4KLStkbmwgQHZlcnNpb24gMjAw Ni0wMS0wMgotK2RubCBAbGljZW5zZSBBbGxQZXJtaXNzaXZlCi0rCi0rQUNfREVGVU4oW0FYX0JP T1NUXSwKLStbCi0rICAgIEFDX0FSR19XSVRIKFtib29zdF0sCi0rICAgICAgICAgICAgICAgIEFD X0hFTFBfU1RSSU5HKFstLXdpdGgtYm9vc3Q9RElSXSwKLSsgICAgICAgICAgICAgICAgW3VzZSBi b29zdCAoZGVmYXVsdCBpcyBOTykgLCBzcGVjaWZ5IHRoZSByb290IGRpcmVjdG9yeSBmb3IgYm9v c3QgbGlicmFyeSAob3B0aW9uYWwpXSksCi0rICAgICAgICAgICAgICAgIFsKLSsgICAgICAgICAg ICAgICAgaWYgdGVzdCAiJHdpdGh2YWwiID0gIm5vIjsgdGhlbgotKwkJICAgICAgICAgICAgd2Fu dF9ib29zdD0ibm8iCi0rICAgICAgICAgICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInll cyI7IHRoZW4KLSsgICAgICAgICAgICAgICAgICAgIHdhbnRfYm9vc3Q9InllcyIKLSsgICAgICAg ICAgICAgICAgICAgIGFjX2Jvb3N0X3BhdGg9IiIKLSsgICAgICAgICAgICAgICAgZWxzZQotKwkJ CSAgICAgICAgd2FudF9ib29zdD0ieWVzIgotKyAgICAgICAgICAgIAkJYWNfYm9vc3RfcGF0aD0i JHdpdGh2YWwiCi0rCQkgICAgICAgIGZpCi0rICAgICAgICAgICAgCV0sCi0rICAgICAgICAgICAg ICAgIFt3YW50X2Jvb3N0PSJ5ZXMiXSkKLSsKLSsjICAgIEFDX0NBTk9OSUNBTF9CVUlMRAotK0JP T1NUX01EV19WRVJTSU9OPSIxLTMzLTEiCi0rQk9PU1RMSUJfTURXX1ZFUlNJT049IjFfMzNfMSIK LStCT09TVF92ZXJzaW9uX2hlYWRlcj0iYm9vc3QvdmVyc2lvbi5ocHAiCi0rCi0rCWlmIHRlc3Qg Ingkd2FudF9ib29zdCIgPSAieHllcyI7IHRoZW4KLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcT1p ZmVsc2UoWyQxXSwgLDEuMjAuMCwkMSkKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVu PWBleHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1dKlwuW1swLTldXSpcKSdg Ci0rCQlib29zdF9saWJfdmVyc2lvbl9yZXFfbWFqb3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9u X3JlcSA6ICdcKFtbMC05XV0qXCknYAotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yPWBl eHByICRib29zdF9saWJfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0r CQlib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yPWBleHByICRib29zdF9saWJfdmVyc2lv bl9yZXEgOiAnW1swLTldXSpcLltbMC05XV0qXC5cKFtbMC05XV0qXCknYAotKwkJaWYgdGVzdCAi eCRib29zdF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yIiA9ICJ4IiA7IHRoZW4KLSsJCQlib29z dF9saWJfdmVyc2lvbl9yZXFfc3ViX21pbm9yPSIwIgotKyAgICAJZmkKLSsJCVdBTlRfQk9PU1Rf VkVSU0lPTj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAwMCBcKyAg JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9taW5vciBcKiAxMDAgXCsgJGJvb3N0X2xpYl92ZXJzaW9u X3JlcV9zdWJfbWlub3JgCi0rCQlBQ19NU0dfQ0hFQ0tJTkcoZm9yIGJvb3N0bGliID49ICRib29z dF9saWJfdmVyc2lvbl9yZXEpCi0rCQlzdWNjZWVkZWQ9bm8KLSsKLSsJCWRubCBmaXJzdCB3ZSBj aGVjayB0aGUgc3lzdGVtIGxvY2F0aW9uIGZvciBib29zdCBsaWJyYXJpZXMKLSsJCWRubCB0aGlz IGxvY2F0aW9uIGlzIGNob3NlbiBpZiBib29zdCBsaWJyYXJpZXMgYXJlIGluc3RhbGxlZCAKLSsJ CWRubCB3aXRoIHRoZSAtLWxheW91dD1zeXN0ZW0gb3B0aW9uCi0rCQlkbmwgb3IgaWYgeW91IGlu c3RhbGwgYm9vc3Qgd2l0aCBSUE0KLSsJCWlmIHRlc3QgLWQgL2xpYjY0Ci0rCQl0aGVuCi0rCQkJ Qk9PU1RfTElCRElSVFlQRT0ibGliNjQiCi0rCQllbHNlCi0rCQkJQk9PU1RfTElCRElSVFlQRT0i bGliIgotKwkJZmkKLSsJCWlmIHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIgotKwkJdGhlbgot KwkJCWlmIHRlc3QgIiRCT09TVF9MSUJESVJUWVBFIiA9PSAibGliNjQiCi0rCQkJdGhlbgotKwkJ CQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIgJiYgdGVzdCAt ciAiJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCXRoZW4KLSsJICAgICAg ICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUi Ci0rCQkJCWVsc2UKLSsgICAgICAgICAgICAgICAgICAgIEJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0 X3BhdGgvbGliIgotKwkJCQlmaQotKwkJCWVsc2UKLSsJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9v c3RfcGF0aC9saWIiCi0rCQkJZmkKLSsJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGgv aW5jbHVkZSIKLSsJCQlCT09TVF9WRVJTSU9OPWBncmVwICJkZWZpbmUgQk9PU1RfTElCX1ZFUlNJ T04iICRhY19ib29zdF9wYXRoL2luY2x1ZGUvJHtCT09TVF92ZXJzaW9uX2hlYWRlcn0gfCBjdXQg LWQnICcgLWYzIHwgY3V0IC1kXCIgLWYyYAotKwkJZWxzZQotKwkJCWZvciBhY19ib29zdF9wYXRo X3RtcCBpbiAvdXNyIC91c3IvbG9jYWwgL29wdCAvbmFzdG9vbHMvYm9vc3QKLSsJCQlkbwotKwkJ CQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCIgJiYgdGVzdCAt ciAiJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QiCi0rCQkJCXRoZW4KLSsJCQkJCUJP T1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQkJ Qk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlIgotKwkJCQkJQk9PU1Rf VkVSU0lPTj1gZ3JlcCAiZGVmaW5lIEJPT1NUX0xJQl9WRVJTSU9OIiAkYWNfYm9vc3RfcGF0aF90 bXAvaW5jbHVkZS8ke0JPT1NUX3ZlcnNpb25faGVhZGVyfSB8IGN1dCAtZCcgJyAtZjMgfCBjdXQg LWRcIiAtZjJgCi0rCQkJCQlicmVhazsKLSsJCQkJZmkKLSsJCQkJaWYgdGVzdCAtZCAiJGFjX2Jv b3N0X3BhdGhfdG1wL2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OL2Jvb3N0IiAmJiB0 ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJ T04vYm9vc3QiCi0rCQkJCXRoZW4KLSsJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhf dG1wLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQkJQk9PU1RfQ0ZMQUdTPSItSSRhY19ib29zdF9w YXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTiIKLSsJCQkJCUJPT1NUX1ZF UlNJT049YGdyZXAgImRlZmluZSBCT09TVF9MSUJfVkVSU0lPTiIgJGFjX2Jvb3N0X3BhdGhfdG1w L2luY2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OLyR7Qk9PU1RfdmVyc2lvbl9oZWFkZXJ9 IHwgY3V0IC1kJyAnIC1mMyB8IGN1dCAtZFwiIC1mMmAKLSsJCQkKLSsJCQkJCWRubCBIYWNrIGZv ciB3cm9uZ2x5IGluc3RhbGxlZCBCb29zdCBsaWJyYXJpZXMgKEFNRDY0IGxpYnJhcmllcyBpbnN0 YWxsZWQgaW4gYm9vc3QvbGliIGRpcmVjdG9yeSkKLSsJCQkJCWlmIHRlc3QgLWQgIiRhY19ib29z dF9wYXRoX3RtcC9saWIiIFwKLSsJCQkJCSYmIHRlc3QgLXIgIiRhY19ib29zdF9wYXRoX3RtcC9s aWIiIFwKLSsJCQkJCSYmIHRlc3QgISAtZCAiJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYjY0IgotKwkJ CQkJdGhlbgotKwkJCQkJCUJPT1NUX0xJQlM9Ii1MJGFjX2Jvb3N0X3BhdGhfdG1wL2xpYiIKLSsJ CQkJCQllY2hvICJIYWNrOiAkQk9PU1RfTElCUyIKLSsJCQkJCWZpCi0rCQkJCQlicmVhazsKLSsJ CQkJZmkKLSsJCQlkb25lCi0rCQlmaQotKwotKwkJQ1BQRkxBR1NfU0FWRUQ9IiRDUFBGTEFHUyIK LSsJCUNQUEZMQUdTPSIkQ1BQRkxBR1MgJEJPT1NUX0NGTEFHUyIKLSsJCWV4cG9ydCBDUFBGTEFH UwotKwotKwkJTERGTEFHU19TQVZFRD0iJExERkxBR1MiCi0rCQlMREZMQUdTPSIkTERGTEFHUyAk Qk9PU1RfTElCUyIKLSsJCWV4cG9ydCBMREZMQUdTCi0rCi0rICAgICAJQUNfVFJZX0NPTVBJTEUo Ci0rICAgICAgIAlbCi0rQCU6QGluY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotK10sCi0rICAg ICAgIFsKLSsjaWYgQk9PU1RfVkVSU0lPTiA+PSAkV0FOVF9CT09TVF9WRVJTSU9OCi0rLy8gRXZl cnl0aGluZyBpcyBva2F5Ci0rI2Vsc2UKLSsjICBlcnJvciBCb29zdCB2ZXJzaW9uIGlzIHRvbyBv bGQKLSsjZW5kaWYKLSsKLSsJCV0sCi0rICAgIAlbCi0rICAgICAgICAgQUNfTVNHX1JFU1VMVCh5 ZXMpCi0rCQkgc3VjY2VlZGVkPXllcwotKwkJIGZvdW5kX3N5c3RlbT15ZXMKLSsgICAgICAgICBp ZmVsc2UoWyQyXSwgLCA6LCBbJDJdKQotKyAgICAgICBdLAotKyAgICAgICBbCi0rICAgICAgIF0p Ci0rCi0rCQlkbmwgaWYgd2UgZm91bmQgbm8gYm9vc3Qgd2l0aCBzeXN0ZW0gbGF5b3V0IHdlIHNl YXJjaCBmb3IgYm9vc3QgbGlicmFyaWVzCi0rCQlkbmwgYnVpbHQgYW5kIGluc3RhbGxlZCB3aXRo b3V0IHRoZSAtLWxheW91dD1zeXN0ZW0gb3B0aW9uIG9yIGZvciBhIHN0YWdlZChub3QgaW5zdGFs bGVkKSB2ZXJzaW9uCi0rCQlpZiB0ZXN0ICJ4JHN1Y2NlZWRlZCIgIT0gInh5ZXMiOyB0aGVuCi0r CQkJX3ZlcnNpb249MAotKwkJCWlmIHRlc3QgIiRhY19ib29zdF9wYXRoIiAhPSAiIjsgdGhlbgot KyAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJE SVJUWVBFIgotKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aCIgJiYgdGVzdCAtciAiJGFj X2Jvb3N0X3BhdGgiOyB0aGVuCi0rCQkJCQlmb3IgaSBpbiBgbHMgLWQgJGFjX2Jvb3N0X3BhdGgv aW5jbHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KLSsJCQkJCQlfdmVyc2lvbl90bXA9YGVj aG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBzZWQgJ3MvXC9pbmNsdWRlXC9ib29z dC0vLycgfCBzZWQgJ3MvXy8uLydgCi0rCQkJCQkJVl9DSEVDSz1gZXhwciAkX3ZlcnNpb25fdG1w IFw+ICRfdmVyc2lvbmAKLSsJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVuCi0r CQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKLSsJCQkJCQlmaQotKwkJCQkJCVZFUlNJT05f VU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3MvXC4vXy8nYAotKwkJCQkJCUJPT1NU X0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jvb3N0LSRWRVJTSU9OX1VOREVSU0NP UkUiCi0rCQkJCQlkb25lCi0rCQkJCWZpCi0rCQkJZWxzZQotKwkJCQlmb3IgYWNfYm9vc3RfcGF0 aCBpbiAvdXNyIC91c3IvbG9jYWwgL29wdCA7IGRvCi0rCQkJCQlpZiB0ZXN0IC1kICIkYWNfYm9v c3RfcGF0aCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgiOyB0aGVuCi0rCQkJCQkJZm9yIGkg aW4gYGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9vc3QtKiAyPi9kZXYvbnVsbGA7IGRv Ci0rCQkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNlZCAicyMkYWNfYm9vc3RfcGF0aCMj IiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNlZCAncy9fLy4vJ2AKLSsJCQkJCQkJ Vl9DSEVDSz1gZXhwciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVyc2lvbmAKLSsJCQkJCQkJaWYgdGVz dCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgotKwkJCQkJCQkJX3ZlcnNpb249JF92ZXJzaW9uX3Rt cAotKwkJCQkJCQkJYmVzdF9wYXRoPSRhY19ib29zdF9wYXRoCi0rCQkJCQkJCWZpCi0rCQkJCQkJ ZG9uZQotKwkJCQkJZmkKLSsJCQkJZG9uZQotKwotKwkJCQlWRVJTSU9OX1VOREVSU0NPUkU9YGVj aG8gJF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKLSsJCQkJQk9PU1RfQ0ZMQUdTPSItSSRiZXN0 X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlNDT1JFIgotKwkJCQlCT09TVF9MSUJT PSItTCRiZXN0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCi0rCSAgICAJCWlmIHRlc3QgIngk Qk9PU1RfUk9PVCIgIT0gIngiOyB0aGVuCi0rCQkJCQlpZiB0ZXN0IC1kICIkQk9PU1RfUk9PVCIg JiYgdGVzdCAtciAiJEJPT1NUX1JPT1QiOyB0aGVuCi0rCQkJCQkJdmVyc2lvbl9kaXI9YGV4cHIg Ly8kQk9PU1RfUk9PVCA6ICcuKi9cKC4qXCknYAotKwkJCQkJCXN0YWdlX3ZlcnNpb249YGVjaG8g JHZlcnNpb25fZGlyIHwgc2VkICdzL2Jvb3N0Xy8vJyB8IHNlZCAncy9fLy4vZydgCi0rCQkJCQkJ c3RhZ2VfdmVyc2lvbl9zaG9ydGVuPWBleHByICRzdGFnZV92ZXJzaW9uIDogJ1woW1swLTldXSpc LltbMC05XV0qXCknYAotKwkJCQkJCVZfQ0hFQ0s9YGV4cHIgJHN0YWdlX3ZlcnNpb25fc2hvcnRl biBcPlw9ICRfdmVyc2lvbmAKLSsJCQkJCQlpZiB0ZXN0ICIkVl9DSEVDSyIgPSAiMSIgOyB0aGVu Ci0rCQkJCQkJCUFDX01TR19OT1RJQ0UoV2Ugd2lsbCB1c2UgYSBzdGFnZWQgYm9vc3QgbGlicmFy eSBmcm9tICRCT09TVF9ST09UKQotKwkJCQkJCQlCT09TVF9DRkxBR1M9Ii1JJEJPT1NUX1JPT1Qi Ci0rCQkJCQkJCUJPT1NUX0xJQlM9Ii1MJEJPT1NUX1JPT1Qvc3RhZ2UvJEJPT1NUX0xJQkRJUlRZ UEUiCi0rCQkJCQkJZmkKLSsJCQkJCWZpCi0rCSAgICAJCWZpCi0rCQkJZmkKLSsKLSsJCQlDUFBG TEFHUz0iJENQUEZMQUdTICRCT09TVF9DRkxBR1MiCi0rCQkJZXhwb3J0IENQUEZMQUdTCi0rCQkJ TERGTEFHUz0iJExERkxBR1MgJEJPT1NUX0xJQlMiCi0rCQkJZXhwb3J0IExERkxBR1MKLSsKLSsg ICAgIAkJQUNfVFJZX0NPTVBJTEUoCi0rICAgICAgIAkJWwotK0AlOkBpbmNsdWRlIDxib29zdC92 ZXJzaW9uLmhwcD4KLStdLAotKyAgICAgICBbCi0rI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRf Qk9PU1RfVkVSU0lPTgotKy8vIEV2ZXJ5dGhpbmcgaXMgb2theQotKyNlbHNlCi0rIyAgZXJyb3Ig Qm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCi0rI2VuZGlmCi0rCi0rCQldLAotKyAgICAJWwotKyAg ICAgICAgIEFDX01TR19SRVNVTFQoeWVzICgkX3ZlcnNpb24pKQotKwkJIHN1Y2NlZWRlZD15ZXMK LSsgICAgICAgICBpZmVsc2UoWyQyXSwgLCA6LCBbJDJdKQotKyAgICAgICBdLAotKyAgICAgICBb Ci0rICAgICAgICAgQUNfTVNHX1JFU1VMVChubyAoJF92ZXJzaW9uKSkKLSsgICAgICAgICBpZmVs c2UoWyQzXSwgLCA6LCBbJDNdKQotKyAgICAgICBdKQotKwkJZmkKLSsKLSsJCWlmIHRlc3QgIiRz dWNjZWVkZWQiICE9ICJ5ZXMiIDsgdGhlbgotKwkJCWlmIHRlc3QgIiRfdmVyc2lvbiIgPSAiMCIg OyB0aGVuCi0rCQkJCUFDX01TR19FUlJPUihbW1dlIGNvdWxkIG5vdCBkZXRlY3QgdGhlIGJvb3N0 IGxpYnJhcmllcyAodmVyc2lvbiAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3Nob3J0ZW4gb3IgaGln aGVyKS4gSWYgeW91IGhhdmUgYSBzdGFnZWQgYm9vc3QgbGlicmFyeSAoc3RpbGwgbm90IGluc3Rh bGxlZCkgcGxlYXNlIHNwZWNpZnkgXCRCT09TVF9ST09UIGluIHlvdXIgZW52aXJvbm1lbnQgYW5k IGRvIG5vdCBnaXZlIGEgUEFUSCB0byAtLXdpdGgtYm9vc3Qgb3B0aW9uLiAgSWYgeW91IGFyZSBz dXJlIHlvdSBoYXZlIGJvb3N0IGluc3RhbGxlZCwgdGhlbiBjaGVjayB5b3VyIHZlcnNpb24gbnVt YmVyIGxvb2tpbmcgaW4gPGJvb3N0L3ZlcnNpb24uaHBwPi5dXSkKLSsJCQllbHNlCi0rCQkJCUFD X01TR19FUlJPUignWW91ciBib29zdCBsaWJyYXJpZXMgc2VlbXMgdG8gb2xkICh2ZXJzaW9uICRf dmVyc2lvbikuICBXZSBuZWVkIGF0IGxlYXN0ICRib29zdF9saWJfdmVyc2lvbl9zaG9ydGVuJykK LSsJCQlmaQotKwkJZWxzZQotKwkJCUFDX1NVQlNUKEJPT1NUX0NGTEFHUykKLSsJCQlBQ19TVUJT VChCT09TVF9MSUJTKQotKwkJCUFDX0RFRklORShIQVZFX0JPT1NULCxbZGVmaW5lIGlmIHRoZSBC b29zdCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCi0rIwotKyMgQm9vc3Q6OkZpbGVzeXN0ZW0K LSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEJvb3N0OjpGaWxlc3lzdGVtIGxp YnJhcnkgaXMgYXZhaWxhYmxlXSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9maWxlc3lzdGVtLAot KwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09N UElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9maWxlc3lz dGVtL3BhdGguaHBwPl1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1t1 c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmZpbGVzeXN0ZW07Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBwYXRoIG15X3BhdGgoICJmb28vYmFyL2RhdGEudHh0IiApOwotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pXSwKLSsgICAgICAgICAg ICAJCQkJICAgICAgIGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09eWVzLCBheF9jdl9ib29zdF9maWxl c3lzdGVtPW5vKQotKwkJIAkJICAgICAgICAJCQlBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJ CWlmIHRlc3QgIiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCi0rCQkJCUFD X0RFRklORShIQVZFX0JPT1NUX0ZJTEVTWVNURU0sLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpGSUxF U1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3RfZmlsZXN5c3RlbQot KwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJEND IFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJ CQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBc Ci0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJ CQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVD S19MSUIoJGF4X2xpYiwgbWFpbiwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb Qk9PU1RfRklMRVNZU1RFTV9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfRklMRVNZU1RF TV9MSUIpIGxpbmtfZmlsZXN5c3RlbT0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgW2xpbmtfZmlsZXN5c3RlbT0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJ CWlmIHRlc3QgIngkbGlua19maWxlc3lzdGVtIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQlBQ19NU0df Tk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKwkJCQlmaQotKwkJCWZp Ci0rCi0rIwotKyMgQm9vc3Q6OlN5c3RlbQotKyMKLSsgICAgICAgICAgICBBQ19DQUNIRV9DSEVD Syhbd2hldGhlciB0aGUgQm9vc3Q6OlN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0sCi0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3Rfc3lzdGVtLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtBQ19MQU5HX1NBVkUKLSsgICAgICAgICAgICBBQ19MQU5HX0NQTFVT UExVUwotKyAgICAgICAgICAgIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tA JTpAaW5jbHVkZSA8Ym9vc3Qvc3lzdGVtL2Vycm9yX2NvZGUuaHBwPl1dLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgW1t1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OnN5c3RlbTsK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yX2NvZGUgbXlFcnJvckNv ZGUoKTsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwO11dKV0s Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9zeXN0ZW09 eWVzLCBheF9jdl9ib29zdF9zeXN0ZW09bm8pCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgQUNfTEFOR19SRVNUT1JFCi0rICAgICAgICAgICAgXSkKLSsgICAgICAgICAgICBp ZiB0ZXN0ICIkYXhfY3ZfYm9vc3Rfc3lzdGVtIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAg ICAgICBBQ19ERUZJTkUoSEFWRV9CT09TVF9TWVNURU0sLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpT WVNURU0gbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKyAgICAgICAgICAgICAgICAgQk49Ym9vc3Rf c3lzdGVtCi0rICAgICAgICAgICAgICAgICBmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAk Qk4gJEJOLSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGli JEJOLW10IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRD Qy1tdC1zIGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1t dC1zICRCTi1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7 IGRvCi0rICAgICAgICAgICAgICAgICAgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sCi0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPT1NUX1NZU1RFTV9MSUI9Ii1sJGF4 X2xpYiIgQUNfU1VCU1QoQk9PU1RfU1lTVEVNX0xJQikgbGlua19zeXN0ZW09InllcyIgYnJlYWtd LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3N5c3RlbT0ibm8iXSkK LSsgICAgICAgICAgICAgICAgIGRvbmUKLSsgICAgICAgICAgICAgICAgIGlmIHRlc3QgIngkbGlu a19zeXN0ZW0iID0gInhubyI7IHRoZW4KLSsgICAgICAgICAgICAgICAgICAgICBBQ19NU0dfTk9U SUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKyAgICAgICAgICAgICAgICAg ZmkKLSsgICAgICAgICAgICBmaQotKwotKyMKLSsjIEJvb3N0OjpQcm9ncmFtX09wdGlvbnMKLSsj Ci0rCQkJQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhlIEJvb3N0OjpQcm9ncmFtX09wdGlvbnMg bGlicmFyeSBpcyBhdmFpbGFibGVdLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0 aW9ucywKLSsJCQkJCQkgICBbQUNfTEFOR19TQVZFCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgQUNfTEFOR19DUExVU1BMVVMKLSsJICAgICAgICAgICAgICAgQUNfQ09NUElMRV9JRkVMU0Uo W0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9wcm9ncmFtX29wdGlvbnMuaHBw Pl1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1tib29zdDo6cHJvZ3Jh bV9vcHRpb25zOjpvcHRpb25zX2Rlc2NyaXB0aW9uIGdlbmVyaWMoIkdlbmVyaWMgb3B0aW9ucyIp OwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7XV0pXSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9eWVz LCBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9bm8pCi0rCQkJICAgICAgICAgICAgICAgQUNf TEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlpZiB0ZXN0ICIkYXhfY3ZfYm9vc3RfcHJvZ3JhbV9v cHRpb25zIiA9IHllczsgdGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9QUk9HUkFNX09Q VElPTlMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpQUk9HUkFNX09QVElPTlMgbGlicmFyeSBpcyBh dmFpbGFibGVdKQotKwkJCQlCTj1ib29zdF9wcm9ncmFtX29wdGlvbnMKLSsJCQkJZm9yIGF4X2xp YiBpbiBcCi0rCQkJCQkkQk4tbXQgJEJOICRCTi0kQ0MtbXQgJEJOLSRDQyBcCi0rCQkJCQkkQk4t JENDLW10LXMgJEJOLSRDQy1zIGxpYiRCTi1tdCBsaWIkQk4gXAotKwkJCQkJbGliJEJOLSRDQy1t dCBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQtcyBsaWIkQk4tJENDLXMgXAotKwkJCQkJJEJOLW1n dy1tdCAkQk4tbWd3ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAotKwkJCQkJJEJOLSRDQy1tdC0k Qk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIs IG1haW4sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW0JPT1NUX1BST0dSQU1f T1BUSU9OU19MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJ QikgbGlua19wcm9ncmFtX29wdGlvbnM9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtsaW5rX3Byb2dyYW1fb3B0aW9ucz0ibm8iXSkKLSsgIAkJCQlkb25l Ci0rCQkJCWlmIHRlc3QgIngkbGlua19wcm9ncmFtX29wdGlvbnM9Im5vIiIgPSAieG5vIjsgdGhl bgotKwkJCQkJQUNfTVNHX05PVElDRShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkK LSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpUaHJlYWRzCi0rIwotKwkJCUFDX0NB Q0hFX0NIRUNLKHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUs Ci0rCQkJCQkJICAgYXhfY3ZfYm9vc3RfdGhyZWFkLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJ CQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQ1hYRkxBR1NfU0FWRT0kQ1hYRkxBR1MKLSsKLSsJ CQkgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgotKyAgCQkJCSBDWFhG TEFHUz0iLXB0aHJlYWRzICRDWFhGTEFHUyIKLSsJCQkgZWxpZiB0ZXN0ICJ4JGJ1aWxkX29zIiA9 ICJ4bWluZzMyIiA7IHRoZW4KLSsJCQkJIENYWEZMQUdTPSItbXRocmVhZHMgJENYWEZMQUdTIgot KwkJCSBlbHNlCi0rCQkJCUNYWEZMQUdTPSItcHRocmVhZCAkQ1hYRkxBR1MiCi0rCQkJIGZpCi0r CQkJIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9v c3QvdGhyZWFkL3RocmVhZC5ocHA+XV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBbW2Jvb3N0Ojp0aHJlYWRfZ3JvdXAgdGhyZHM7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gMDtdXSldLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9i b29zdF90aHJlYWQ9eWVzLCBheF9jdl9ib29zdF90aHJlYWQ9bm8pCi0rCQkJIENYWEZMQUdTPSRD WFhGTEFHU19TQVZFCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAi eCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgaWYg dGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMiIDsgdGhlbgotKyAJCQkJICBCT09TVF9DRkxB R1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgotKwkJCSAgIGVsaWYgdGVzdCAieCRidWlsZF9v cyIgPSAieG1pbmczMiIgOyB0aGVuCi0rIAkJCQkgIEJPT1NUX0NGTEFHUz0iLW10aHJlYWRzICRC T09TVF9DRkxBR1MiCi0rCQkJICAgZWxzZQotKwkJCQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWQg JEJPT1NUX0NGTEFHUyIKLSsJCQkgICBmaQotKwotKwkJCQlBQ19TVUJTVChCT09TVF9DRkxBR1Mp Ci0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1RIUkVBRCwsW2RlZmluZSBpZiB0aGUgQm9vc3Q6 OlRIUkVBRCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X3RocmVhZAotKwkJ CQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJENDIFwK LSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJCQls aWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCi0r CQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJCQkk Qk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19M SUIoJGF4X2xpYiwgbWFpbiwgW0JPT1NUX1RIUkVBRF9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1Qo Qk9PU1RfVEhSRUFEX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0r CQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19O T1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkK LSsKLSsjCi0rIyBCb29zdDo6SU9TdHJlYW1zCi0rIwotKwkJCUFDX0NBQ0hFX0NIRUNLKHdoZXRo ZXIgdGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAg YXhfY3ZfYm9vc3RfaW9zdHJlYW1zLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFO R19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoCi0rCQkJICAgW0FDX0xBTkdfUFJP R1JBTSgKLSsJICAgW1tAJTpAaW5jbHVkZSA8Ym9vc3QvaW9zdHJlYW1zL2ZpbHRlcmluZ19zdHJl YW0uaHBwPgotKwkgICBAJTpAaW5jbHVkZSA8Ym9vc3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBw Pl1dLAotKwkgICBbW3N0ZDo6c3RyaW5nICBpbnB1dCA9ICJIZWxsbyBXb3JsZCEiOwotKwkgICBu YW1lc3BhY2UgaW8gPSBib29zdDo6aW9zdHJlYW1zOwotKwkgICBpbzo6ZmlsdGVyaW5nX2lzdHJl YW0gaW4gKGJvb3N0OjptYWtlX2l0ZXJhdG9yX3JhbmdlKGlucHV0KSk7Ci0rCSAgIHJldHVybiAw OwotKyAgICAgICAgICAgXV0pXSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfaW9z dHJlYW1zPXllcywgYXhfY3ZfYm9vc3RfaW9zdHJlYW1zPW5vKQotKwkJCSBBQ19MQU5HX1JFU1RP UkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA9ICJ4eWVz IjsgdGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9JT1NUUkVBTVMsLFtkZWZpbmUgaWYg dGhlIEJvb3N0OjpJT1N0cmVhbXMgbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKwkJCQlCTj1ib29z dF9pb3N0cmVhbXMKLSsJCQkJZm9yIGF4X2xpYiBpbiBcCi0rCQkJCQkkQk4tbXQgJEJOICRCTi0k Q0MtbXQgJEJOLSRDQyBcCi0rCQkJCQkkQk4tJENDLW10LXMgJEJOLSRDQy1zIGxpYiRCTi1tdCBs aWIkQk4gXAotKwkJCQkJbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQtcyBs aWIkQk4tJENDLXMgXAotKwkJCQkJJEJOLW1ndy1tdCAkQk4tbWd3ICRCTi1tZ3ctbXQtcyAkQk4t bWd3LXMgXAotKwkJCQkJJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJ CQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9JT1NUUkVBTVNfTElCPSIt bCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0lPU1RSRUFNU19MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMi IGJyZWFrXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9 Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8i OyB0aGVuCi0rCQkJCQlBQ19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xp YiAhKQotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgQm9vc3Q6OlNlcmlhbGl6YXRpb24KLSsj Ci0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlNlcmlhbGl6YXRpb24gbGli cmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbiwK LSsJCQkJCQlbQUNfTEFOR19TQVZFCi0rCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJIEFDX0NP TVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oCi0rCVtbQCU6QGluY2x1ZGUgPGZzdHJlYW0+ Ci0rCUAlOkBpbmNsdWRlIDxib29zdC9hcmNoaXZlL3RleHRfb2FyY2hpdmUuaHBwPgotKyAgICAg ICAgQCU6QGluY2x1ZGUgPGJvb3N0L2FyY2hpdmUvdGV4dF9pYXJjaGl2ZS5ocHA+Ci0rCV1dLAot KyAgICAgICAgW1tzdGQ6Om9mc3RyZWFtIG9mcygiZmlsZW5hbWUiKTsKLSsJYm9vc3Q6OmFyY2hp dmU6OnRleHRfb2FyY2hpdmUgb2Eob2ZzKTsKLSsJcmV0dXJuIDA7Ci0rICAgICAgICBdXSldLAot KyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uPXllcywgYXhfY3Zf Ym9vc3Rfc2VyaWFsaXphdGlvbj1ubykKLSsJCQkgQUNfTEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJ CQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID0gInh5ZXMiOyB0aGVuCi0r CQkJCUFDX0RFRklORShIQVZFX0JPT1NUX1NFUklBTElaQVRJT04sLFtkZWZpbmUgaWYgdGhlIEJv b3N0OjpTZXJpYWxpemF0aW9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3Rf c2VyaWFsaXphdGlvbgotKwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJO LSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10 IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1z IGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRC Ti1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0r CQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFpbiwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBbQk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VC U1QoQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIpIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrXSwKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua190aHJlYWQ9Im5vIl0pCi0rICAJ CQkJZG9uZQotKwkJCQlCTj1ib29zdF93c2VyaWFsaXphdGlvbgotKwkJCQlmb3IgYXhfbGliIGlu IFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0Mt bXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxp YiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10 ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09T VExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xpYiwgbWFp biwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbQk9PU1RfV1NFUklBTElaQVRJ T05fTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQikgbGlu a190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190 aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsg YWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6U2ln bmFscwotKyMKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6U2lnbmFscyBs aWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9jdl9ib29zdF9zaWduYWxzLAotKwkJ CQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09NUElM RV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9zaWduYWwuaHBw PgotKwkJCQkJCQkJCQkJCV1dLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W1tib29zdDo6c2lnbmFsPHZvaWQgKCk+IHNpZzsKLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBdXSldLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9zaWduYWxzPXllcywgYXhf Y3ZfYm9vc3Rfc2lnbmFscz1ubykKLSsJCQkgQUNfTEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlp ZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NpZ25hbHMiID0gInh5ZXMiOyB0aGVuCi0rCQkJCUFDX0RF RklORShIQVZFX0JPT1NUX1NJR05BTFMsLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpTaWduYWxzIGxp YnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3Rfc2lnbmFscwotKwkJCQlmb3IgYXhf bGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJENDIFwKLSsJCQkJCSRC Ti0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJCQlsaWIkQk4tJEND LW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4t bWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJCQkkQk4tJENDLW10 LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBBQ19DSEVDS19MSUIoJGF4X2xp YiwgbWFpbiwgW0JPT1NUX1NJR05BTFNfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX1NJ R05BTFNfTElCKSBsaW5rX3NpZ25hbHM9InllcyIgYnJlYWtdLAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtsaW5rX3NpZ25hbHM9Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlp ZiB0ZXN0ICJ4JGxpbmtfc2lnbmFscyIgPSAieG5vIjsgdGhlbgotKwkJCQkJQUNfTVNHX05PVElD RShDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISkKLSsJCQkJZmkKLSsJCQlmaQotKwot KyMKLSsjIEJvb3N0OjpEYXRlX1RpbWUKLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0 aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBheF9j dl9ib29zdF9kYXRlX3RpbWUsCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQ TFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbQCU6QGlu Y2x1ZGUgPGJvb3N0L2RhdGVfdGltZS9ncmVnb3JpYW4vZ3JlZ29yaWFuX3R5cGVzLmhwcD4KLSsJ CQkJCQkJCQkJCQldXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbdXNp bmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRhdGUgZCgyMDAyLEphbiwxMCk7Ci0rICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXV0pXSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3Zf Ym9vc3RfZGF0ZV90aW1lPXllcywgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lPW5vKQotKwkJCSBBQ19M QU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfZGF0ZV90aW1l IiA9ICJ4eWVzIjsgdGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09TVF9EQVRFX1RJTUUsLFtk ZWZpbmUgaWYgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKwkJ CQlCTj1ib29zdF9kYXRlX3RpbWUKLSsJCQkJZm9yIGF4X2xpYiBpbiBcCi0rCQkJCQkkQk4tbXQg JEJOICRCTi0kQ0MtbXQgJEJOLSRDQyBcCi0rCQkJCQkkQk4tJENDLW10LXMgJEJOLSRDQy1zIGxp YiRCTi1tdCBsaWIkQk4gXAotKwkJCQkJbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDIGxpYiRCTi0k Q0MtbXQtcyBsaWIkQk4tJENDLXMgXAotKwkJCQkJJEJOLW1ndy1tdCAkQk4tbWd3ICRCTi1tZ3ct bXQtcyAkQk4tbWd3LXMgXAotKwkJCQkJJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04g OyBkbwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9EQVRFX1RJ TUVfTElCPSItbCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX0RBVEVfVElNRV9MSUIpIGxpbmtfZGF0 ZV90aW1lPSJ5ZXMiIGJyZWFrXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBb bGlua19kYXRlX3RpbWU9Im5vIl0pCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtf ZGF0ZV90aW1lIj0ibm8iID0gInhubyI7IHRoZW4KLSsJCQkJCUFDX01TR19OT1RJQ0UoQ291bGQg bm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBC b29zdDo6UmVnZXgKLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlJl Z2V4IGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3JlZ2V4LAot KwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsJCQkgQUNfQ09N UElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNsdWRlIDxib29zdC9yZWdleC5o cHA+Ci0rCQkJCQkJCQkJCQkJXV0sCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBbW2Jvb3N0OjpyZWdleCByKCk7IHJldHVybiAwO11dKV0sCi0rICAgICAgICAgICAgICAgICAg IGF4X2N2X2Jvb3N0X3JlZ2V4PXllcywgYXhfY3ZfYm9vc3RfcmVnZXg9bm8pCi0rCQkJIEFDX0xB TkdfUkVTVE9SRQotKwkJCV0pCi0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9yZWdleCIgPSAi eHllcyI7IHRoZW4KLSsJCQkJQUNfREVGSU5FKEhBVkVfQk9PU1RfUkVHRVgsLFtkZWZpbmUgaWYg dGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rCQkJCUJOPWJvb3N0X3Jl Z2V4Ci0rCQkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10ICRC Ti0kQ0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJOIFwK LSsJCQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJOLSRD Qy1zIFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwK LSsJCQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFD X0NIRUNLX0xJQigkYXhfbGliLCBtYWluLCBbQk9PU1RfUkVHRVhfTElCPSItbCRheF9saWIiIEFD X1NVQlNUKEJPT1NUX1JFR0VYX0xJQikgbGlua190aHJlYWQ9InllcyIgYnJlYWtdLAotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsaW5rX3RocmVhZD0ibm8iXSkKLSsgIAkJCQlk b25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJCUFD X01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEpCi0rCQkJCWZpCi0r CQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6QVNJTzogaXQgbmVlZHMgQm9vc3QuU3lzdGVtLCBCb29z dC5SZWdleCwgQm9vc3QuVGhyZWFkIGFuZCAKLSsjIEJvb3N0LkRhdGVUaW1lLCBidXQgZG9lcyBu b3QgcHJvZHVjZSBhbnkgKG90aGVyKSBsaWJyYXJ5LgotKyMKLSsJCQlBQ19DQUNIRV9DSEVDSyh3 aGV0aGVyIHRoZSBCb29zdDo6QXNpbyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSwKLSsJCQkJCQkgICBh eF9jdl9ib29zdF9hc2lvLAotKwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExV U1BMVVMKLSsJCQkgQUNfQ09NUElMRV9JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTShbW0AlOkBpbmNs dWRlIDxib29zdC9hc2lvLmhwcD5dXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFtbYm9vc3Q6OmFzaW86OmlvX3NlcnZpY2UgaW87Ci0rCSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb3N0OjpzeXN0ZW06OmVycm9yX2NvZGUgdGltZXJfcmVzdWx0OwotKwkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29zdDo6YXNpbzo6ZGVhZGxpbmVfdGlt ZXIgdChpbyk7Ci0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHQuY2FuY2VsKCk7 Ci0rCSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlvLnJ1bl9vbmUoKTsKLSsJICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBdXSldLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29z dF9hc2lvPXllcywgYXhfY3ZfYm9vc3RfYXNpbz1ubykKLSsJCQkgQUNfTEFOR19SRVNUT1JFCi0r CQkJXSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2FzaW8iID0gInh5ZXMiOyB0aGVuCi0r CQkJICAgQUNfREVGSU5FKEhBVkVfQk9PU1RfQVNJTywsW2RlZmluZSBpZiB0aGUgQm9vc3Q6OkFz aW8gbGlicmFyeSBpcyBhdmFpbGFibGVdKQotKwkJCSAgIEJPT1NUX0FTSU9fTElCPSIke0JPT1NU X1NZU1RFTV9MSUJ9ICR7Qk9PU1RfVEhSRUFEX0xJQn0iCi0rCQkJICAgQk9PU1RfQVNJT19MSUI9 IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfREFURV9USU1FX0xJQn0iCi0rCQkJICAgQk9PU1Rf QVNJT19MSUI9IiR7Qk9PU1RfQVNJT19MSUJ9ICR7Qk9PU1RfUkVHRVhfTElCfSIKLSsJCQkgICBC T09TVF9BU0lPX0xJQj0iJHtCT09TVF9BU0lPX0xJQn0gJHtCT09TVF9TRVJJQUxJWkFUSU9OX0xJ Qn0iCi0rCQkJICAgQUNfU1VCU1QoQk9PU1RfQVNJT19MSUIpCi0rCQkJZmkKLSsKLSsjCi0rIyBT dXBwb3J0IGZvciBQeXRob24gYW5kIE1QSSAoTVBJQ0gyLCBCb29zdDo6TVBJLCBCb29zdDo6UHl0 aG9uLCAKLSsjIEJvb3N0OjpTZXJpYWxpemF0aW9uLCBCb29zdDo6TVBJX1B5dGhvbikKLSsjIE5v dGU6IG9uIHNvbWUgZGlzdHJpYnV0aW9ucyAoZS5nLiwgRGViaWFuKSwgQm9vc3QuTVBJIHVzZXMg T3Blbk1QSSByYXRoZXIgCi0rIyAgICAgICB0aGFuIE1QSUNIMgotKyMKLSsJCQlDUFBGTEFHU19P UklHPSIke0NQUEZMQUdTfSIKLSsJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZM QUdTfSAke01QSUdFTl9DRkxBR1N9IgotKyMJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRI T05fQ0ZMQUdTfSAke01QSUNIMl9DRkxBR1N9IgotKyMJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU30g JHtQWVRIT05fQ0ZMQUdTfSAke09QRU5NUElfQ0ZMQUdTfSIKLSsJCQlMREZMQUdTX09SSUc9IiR7 TERGTEFHU30iCi0rCQkJTERGTEFHUz0iJHtMREZMQUdTfSAke1BZVEhPTl9MSUJTfSAke1BZVEhP Tl9BRERfTElCU30gJHtNUElHRU5fTElCU30iCi0rIwkJCUxERkxBR1M9IiR7TERGTEFHU30gJHtQ WVRIT05fTElCU30gJHtQWVRIT05fQUREX0xJQlN9ICR7TVBJQ0gyX0xJQlN9IgotKyMJCQlMREZM QUdTPSIke0xERkxBR1N9ICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9OX0FERF9MSUJTfSAke09QRU5N UElfTElCU30iCi0rCi0rIwotKyMgQm9vc3Q6OlB5dGhvbgotKyMKLSsJCQlBQ19DQUNIRV9DSEVD Syh3aGV0aGVyIHRoZSBCb29zdDo6UHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJ CSAgIGF4X2N2X2Jvb3N0X3B5dGhvbiwKLSsJCQlbQUNfTEFOR19TQVZFCi0rCQkJQUNfTEFOR19D UExVU1BMVVMKLSsKLSsJCSAgICBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtb QCU6QGluY2x1ZGUgPGJvb3N0L3B5dGhvbi5ocHA+Ci0rCQkJY2hhciBjb25zdCogZ3JlZXQoKSB7 IHJldHVybiAiaGVsbG8iOyB9IAotKwkJCUJPT1NUX1BZVEhPTl9NT0RVTEUoaGVsbG9fZXh0KSB7 IGJvb3N0OjpweXRob246OmRlZigiZ3JlZXQiLCBncmVldCk7fQotKwkJCQkJCQkJCQkgICBdXSld LAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9weXRob249eWVzLCBheF9jdl9ib29z dF9weXRob249bm8pCi0rCQkJIEFDX0xBTkdfUkVTVE9SRQotKwkJCV0pCi0rCi0rCQkJQk9PU1Rf UFlUSE9OX0xJQj0iLWxib29zdF9weXRob24gJHtQWVRIT05fTElCU30gJHtQWVRIT05fQUREX0xJ QlN9IgotKwkJCUFDX1NVQlNUKEJPT1NUX1BZVEhPTl9MSUIpCi0rCi0rIwotKyMgQm9vc3Q6Ok1Q SQotKyMKLSsJCQlBQ19DQUNIRV9DSEVDSyh3aGV0aGVyIHRoZSBCb29zdDo6TXBpIGxpYnJhcnkg aXMgYXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X21waSwKLSsJCQkJCQlbQUNfTEFO R19TQVZFCi0rCQkJIEFDX0xBTkdfQ1BMVVNQTFVTCi0rCQkJIEFDX0NPTVBJTEVfSUZFTFNFKFtB Q19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8Ym9vc3QvbXBpLmhwcD5dXSwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtbCi0rCSAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJldHVybiAwOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XV0pXSwKLSsgICAgICAgICAgICAgICAgICAgYXhfY3ZfYm9vc3RfbXBpPXllcywgYXhfY3ZfYm9v c3RfbXBpPW5vKQotKwkJCSBBQ19MQU5HX1JFU1RPUkUKLSsJCQldKQotKwkJCWlmIHRlc3QgIngk YXhfY3ZfYm9vc3RfbXBpIiA9ICJ4eWVzIjsgdGhlbgotKwkJCQlBQ19ERUZJTkUoSEFWRV9CT09T VF9NUEksLFtkZWZpbmUgaWYgdGhlIEJvb3N0OjpNcGkgbGlicmFyeSBpcyBhdmFpbGFibGVdKQot KwkJCQlCTj1ib29zdF9tcGkKLSsJCQkJZm9yIGF4X2xpYiBpbiBcCi0rCQkJCQkkQk4tbXQgJEJO ICRCTi0kQ0MtbXQgJEJOLSRDQyBcCi0rCQkJCQkkQk4tJENDLW10LXMgJEJOLSRDQy1zIGxpYiRC Ti1tdCBsaWIkQk4gXAotKwkJCQkJbGliJEJOLSRDQy1tdCBsaWIkQk4tJENDIGxpYiRCTi0kQ0Mt bXQtcyBsaWIkQk4tJENDLXMgXAotKwkJCQkJJEJOLW1ndy1tdCAkQk4tbWd3ICRCTi1tZ3ctbXQt cyAkQk4tbWd3LXMgXAotKwkJCQkJJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURXX1ZFUlNJT04gOyBk bwotKwkJCQkgICAgQUNfQ0hFQ0tfTElCKCRheF9saWIsIG1haW4sIFtCT09TVF9NUElfTElCPSIt bCRheF9saWIiIEFDX1NVQlNUKEJPT1NUX01QSV9MSUIpIGxpbmtfbXBpPSJ5ZXMiIGJyZWFrXSwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbGlua19tcGk9Im5vIl0pCi0rICAJ CQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfbXBpIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQlB Q19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKwkJCQllbHNl Ci0rCQkJCQlCT09TVF9NUElfTElCPSIke0JPT1NUX01QSV9MSUJ9ICR7Qk9PU1RfU0VSSUFMSVpB VElPTl9MSUJ9ICR7TVBJR0VOX0xJQlN9IgotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgQm9v c3Q6Ok1QSV9QeXRob24KLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6 Ok1waV9QeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUsCi0rCQkJCQkJICAgYXhfY3ZfYm9vc3Rf bXBpX3B5dGhvbiwKLSsJCQkJCQlbQUNfTEFOR19TQVZFCi0rCQkJIEFDX0xBTkdfQ1BMVVNQTFVT Ci0rCQkJIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8 Ym9vc3QvbXBpL3B5dGhvbi9zZXJpYWxpemUuaHBwPgotKwkJCSAJCQkJCQkJCSAgIF1dLAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW1sKLSsJICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBdXSldLAotKyAgICAgICAgICAgICAgICAgICBheF9jdl9ib29zdF9tcGlfcHl0aG9uPXll cywgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbj1ubykKLSsJCQkgQUNfTEFOR19SRVNUT1JFCi0rCQkJ XSkKLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X21waV9weXRob24iID0gInh5ZXMiOyB0aGVu Ci0rCQkJCUFDX0RFRklORShIQVZFX0JPT1NUX01QSV9QWVRIT04sLFtkZWZpbmUgaWYgdGhlIEJv b3N0OjpNcGlfUHl0aG9uIGxpYnJhcnkgaXMgYXZhaWxhYmxlXSkKLSsJCQkJQk49Ym9vc3RfbXBp X3B5dGhvbgotKyMJCQkJQk49Ym9vc3RfbXBpX3B5dGhvbi1weTI1Ci0rCQkJCWZvciBheF9saWIg aW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10ICRCTi0kQ0MgXAotKwkJCQkJJEJOLSRD Qy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJOIFwKLSsJCQkJCWxpYiRCTi0kQ0MtbXQg bGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJOLSRDQy1zIFwKLSsJCQkJCSRCTi1tZ3ct bXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKLSsJCQkJCSRCTi0kQ0MtbXQtJEJP T1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIEFDX0NIRUNLX0xJQigkYXhfbGliLCBt YWluLCBbQk9PU1RfTVBJX1BZVEhPTl9MSUI9Ii1sJGF4X2xpYiIgQUNfU1VCU1QoQk9PU1RfTVBJ X1BZVEhPTl9MSUIpIGxpbmtfbXBpX3B5dGhvbj0ieWVzIiBicmVha10sCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgW2xpbmtfbXBpX3B5dGhvbj0ibm8iXSkKLSsgIAkJCQlkb25l Ci0rCQkJCWlmIHRlc3QgIngkbGlua19tcGlfcHl0aG9uIiA9ICJ4bm8iOyB0aGVuCi0rCQkJCQlB Q19NU0dfTk9USUNFKENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhKQotKwkJCQllbHNl Ci0rCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09TVF9NUElfUFlUSE9OX0xJQn0gJHtC T09TVF9TRVJJQUxJWkFUSU9OX0xJQn0iCi0rCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtC T09TVF9NUElfUFlUSE9OX0xJQn0gJHtCT09TVF9QWVRIT05fTElCfSIKLSsJCQkJCUJPT1NUX01Q SV9QWVRIT05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke0JPT1NUX01QSV9MSUJ9Igot KwkJCQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9MSUJ9ICR7TVBJ R0VOX0xJQlN9IgotKwkJCQlmaQotKwkJCWZpCi0rCi0rIwotKyMgRW5kIG9mIHNlY3Rpb24gb24g c3VwcG9ydCBmb3IgTVBJCi0rIwotKwkJCUNQUEZMQUdTPSIke0NQUEZMQUdTX09SSUd9IgotKwkJ CUxERkxBR1M9IiR7TERGTEFHU19PUklHfSIKLSsKLSsjCi0rIyBCb29zdDo6VW5pdFRlc3RGcmFt ZXdvcmsKLSsjCi0rCQkJQUNfQ0FDSEVfQ0hFQ0sod2hldGhlciB0aGUgQm9vc3Q6OlVuaXRUZXN0 RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlLAotKwkJCQkJCSAgIGF4X2N2X2Jvb3N0X3Vu aXRfdGVzdF9mcmFtZXdvcmssCi0rCQkJCQkJW0FDX0xBTkdfU0FWRQotKwkJCSBBQ19MQU5HX0NQ TFVTUExVUwotKwkJCSBBQ19DT01QSUxFX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbQCU6QGlu Y2x1ZGUgPGJvb3N0L3Rlc3QvdW5pdF90ZXN0LmhwcD5dXSwKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBbW3VzaW5nIGJvb3N0Ojp1bml0X3Rlc3Q6OnRlc3Rfc3VpdGU7Ci0r CQkJCQkgICAgICAgICAgICAgICAgIHRlc3Rfc3VpdGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUo ICJVbml0IHRlc3QgZXhhbXBsZSAxIiApOyByZXR1cm4gMDtdXSldLAotKyAgICAgICAgICAgICAg ICAgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrPXllcywgYXhfY3ZfYm9vc3RfdW5p dF90ZXN0X2ZyYW1ld29yaz1ubykKLSsJCQkgQUNfTEFOR19SRVNUT1JFCi0rCQkJXSkKLSsJCQlp ZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID0gInh5ZXMiOyB0aGVu Ci0rICAgIAkJQUNfREVGSU5FKEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SSywsW2RlZmlu ZSBpZiB0aGUgQm9vc3Q6OlVuaXRfdGVzdF9mcmFtZXdvcmsgbGlicmFyeSBpcyBhdmFpbGFibGVd KQotKwkJCUJOPWJvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsKLSsgICAgCQlzYXZlZF9sZGZsYWdz PSIke0xERkxBR1N9IgotKwkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4t JENDLW10ICRCTi0kQ0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQg bGliJEJOIFwKLSsJCQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMg bGliJEJOLSRDQy1zIFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJO LW1ndy1zIFwKLSsJCQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsg ICAgICAgICAgICAgICAgTERGTEFHUz0iJHtMREZMQUdTfSAtbCRheF9saWIiCi0rICAgIAkJCUFD X0NBQ0hFX0NIRUNLKHRoZSBuYW1lIG9mIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGli cmFyeSwKLSsJICAgICAgCQkJCQkgICBheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3b3JrLAot KwkJCQkJCVtBQ19MQU5HX1NBVkUKLSsJCQkgQUNfTEFOR19DUExVU1BMVVMKLSsgICAgICAgICAg ICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtbQCU6QGluY2x1ZGUgPGJvb3N0 L3Rlc3QvdW5pdF90ZXN0LmhwcD5dXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg W1t1c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0 ZXN0IGV4YW1wbGUgMSIgKTsgcmV0dXJuIDA7XV0pXSwKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgW2xpbmtfdGhyZWFkPSJ5ZXMiXSxbbGlua190aHJlYWQ9Im5vIl0pCi0rCi0rCQkJ IEFDX0xBTkdfUkVTVE9SRQotKyAgICAgICAgICAgICAgIF0pCi0rICAgICAgICAgICAgICAgIExE RkxBR1M9IiR7c2F2ZWRfbGRmbGFnc30iCi0rCQkJICAgIGlmIHRlc3QgIngkbGlua190aHJlYWQi ID0gInh5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgICAgICBCT09TVF9VTklUX1RFU1RfRlJB TUVXT1JLX0xJQj0iLWwkYXhfbGliIgotKyAgICAgICAgICAgICAgICAgICAgQUNfU1VCU1QoQk9P U1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIpCi0rCQkJCQlicmVhawotKwkJCQlmaQotKyAgICAg ICAgICAgICAgZG9uZQotKwkJCSAgICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4bm8iOyB0 aGVuCi0rCQkJCSAgIEFDX01TR19OT1RJQ0UoQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEpCi0rCQkJCWZpCi0rCQkJZmkKLSsKLSsKLSsJCWZpIGRubCBlbmRpZiB0ZXN0ICIkc3VjY2Vl ZGVkIgotKwotKyAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHU19TQVZFRCIKLSsgICAgICAgIExE RkxBR1M9IiRMREZMQUdTX1NBVkVEIgotKwotKwlmaSBkbmwgZW5kaWYgdGVzdCAieCR3YW50X2Jv b3N0IgotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X215c3FsLm00 IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvYXhfbXlzcWwubTQKLS0tLSBzb2NpLTMuMC4wXzQt cGFjay9jb25maWcvYXhfbXlzcWwubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4X215c3FsLm00CTIwMTEtMDctMDMg MTg6Mzg6NDQuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE2NCBAQAotK2RubCBAc3lub3Bz aXMgQVhfTVlTUUwKLStkbmwgCi0rZG5sIFRoaXMgbWFjcm8gdHJpZXMgdG8gZmluZCBNeVNRTCBD IEFQSSBoZWFkZXIgYW5kIGxpYnJhcnkgbG9jYXRpb25zLgotK2RubAotK2RubCBXZSBkZWZpbmUg dGhlIGZvbGxvd2luZyBjb25maWd1cmUgc2NyaXB0IGZsYWdzOgotK2RubAotK2RubAkJLS13aXRo LW15c3FsOiBHaXZlIHByZWZpeCBmb3IgYm90aCBsaWJyYXJ5IGFuZCBoZWFkZXJzLCBhbmQgdHJ5 Ci0rZG5sCQkJdG8gZ3Vlc3Mgc3ViZGlyZWN0b3J5IG5hbWVzIGZvciBlYWNoLiAgKGUuZy4gVGFj ayAvbGliIGFuZAotK2RubAkJCS9pbmNsdWRlIG9udG8gZ2l2ZW4gZGlyIG5hbWUsIGFuZCBvdGhl ciBjb21tb24gc2NoZW1lcy4pCi0rZG5sCQktLXdpdGgtbXlzcWwtbGliOiBTaW1pbGFyIHRvIC0t d2l0aC1teXNxbCwgYnV0IGZvciBsaWJyYXJ5IG9ubHkuCi0rZG5sCQktLXdpdGgtbXlzcWwtaW5j bHVkZTogU2ltaWxhciB0byAtLXdpdGgtbXlzcWwsIGJ1dCBmb3IgaGVhZGVycwotK2RubAkJCW9u bHkuCi0rZG5sCi0rZG5sIEB2ZXJzaW9uIDEuMiwgMjAwNy8wMi8yMAotK2RubCBAYXV0aG9yIFdh cnJlbiBZb3VuZyA8bXlzcWxwcEBldHItdXNhLmNvbT4KLSsKLStBQ19ERUZVTihbQVhfTVlTUUxd LAotK1sKLSsJIwotKwkjIFNldCB1cCBjb25maWd1cmUgc2NyaXB0IG1hY3JvcwotKwkjCi0rCUFD X0FSR19XSVRIKG15c3FsLAotKwkJWyAgLS13aXRoLW15c3FsPTxwYXRoPiAgICAgcm9vdCBkaXJl Y3RvcnkgcGF0aCBvZiBNeVNRTCBpbnN0YWxsYXRpb25dLAotKwkJW01ZU1FMX2xpYl9jaGVjaz0i JHdpdGhfbXlzcWwvbGliNjQvbXlzcWwgJHdpdGhfbXlzcWwvbGliL215c3FsICR3aXRoX215c3Fs L2xpYjY0ICR3aXRoX215c3FsL2xpYiIKLSsJCU1ZU1FMX2luY19jaGVjaz0iJHdpdGhfbXlzcWwv aW5jbHVkZSAkd2l0aF9teXNxbC9pbmNsdWRlL215c3FsIgotKwkJTVlTUUxfYmluX2NoZWNrPSIk d2l0aF9teXNxbC9iaW4iXSwKLSsJCVtNWVNRTF9saWJfY2hlY2s9Ii91c3IvbGliNjQgL3Vzci9s aWIgL3Vzci9saWI2NC9teXNxbCAvdXNyL2xpYi9teXNxbCAvdXNyL2xvY2FsL2xpYjY0IC91c3Iv bG9jYWwvbGliIC91c3IvbG9jYWwvbGliL215c3FsIC91c3IvbG9jYWwvbXlzcWwvbGliIC91c3Iv bG9jYWwvbXlzcWwvbGliL215c3FsIC9vcHQvbXlzcWwvbGliIC9vcHQvbXlzcWwvbGliL215c3Fs IgotKwkJTVlTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUvbXlzcWwgL3Vzci9sb2NhbC9pbmNs dWRlL215c3FsIC91c3IvbG9jYWwvbXlzcWwvaW5jbHVkZSAvdXNyL2xvY2FsL215c3FsL2luY2x1 ZGUvbXlzcWwgL29wdC9teXNxbC9pbmNsdWRlL215c3FsIgotKwkJTVlTUUxfYmluX2NoZWNrPSIv dXNyL2JpbiAvdXNyL2xvY2FsL2JpbiAvdXNyL2xvY2FsL215c3FsL2JpbiJdKQotKwotKwlBQ19B UkdfV0lUSChteXNxbC1saWIsCi0rCQlbICAtLXdpdGgtbXlzcWwtbGliPTxwYXRoPiBkaXJlY3Rv cnkgcGF0aCBvZiBNeVNRTCBsaWJyYXJ5IGluc3RhbGxhdGlvbl0sCi0rCQlbTVlTUUxfbGliX2No ZWNrPSIkd2l0aF9teXNxbF9saWIgJHdpdGhfbXlzcWxfbGliL2xpYjY0ICR3aXRoX215c3FsX2xp Yi9saWIgJHdpdGhfbXlzcWxfbGliL2xpYjY0L215c3FsICR3aXRoX215c3FsX2xpYi9saWIvbXlz cWwiXSkKLSsKLSsJQUNfQVJHX1dJVEgobXlzcWwtaW5jbHVkZSwKLSsJCVsgIC0td2l0aC1teXNx bC1pbmNsdWRlPTxwYXRoPiBkaXJlY3RvcnkgcGF0aCBvZiBNeVNRTCBoZWFkZXIgaW5zdGFsbGF0 aW9uXSwKLSsJCVtNWVNRTF9pbmNfY2hlY2s9IiR3aXRoX215c3FsX2luY2x1ZGUgJHdpdGhfbXlz cWxfaW5jbHVkZS9pbmNsdWRlICR3aXRoX215c3FsX2luY2x1ZGUvaW5jbHVkZS9teXNxbCJdKQot KwotKwotKyAgICAjCi0rCSMgTG9vayBmb3IgTXlTUUwgQ29uZmlndXJhdGlvbiBTY3JpcHQKLSsJ IwotKwlBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBNeVNRTCBjb25maWd1cmF0aW9uIHNjcmlwdF0pCi0r CU1ZU1FMX0NPTkZJRz0KLSsJTVlTUUxfYmluZGlyPQotKwlmb3IgbSBpbiAkTVlTUUxfYmluX2No ZWNrCi0rCQlkbwotKwkJCWlmIHRlc3QgLWQgIiRtIiAmJiB0ZXN0IC1mICIkbS9teXNxbF9jb25m aWciCi0rCQkJdGhlbgotKwkJCQlNWVNRTF9DT05GSUc9JG0vbXlzcWxfY29uZmlnCi0rCQkJCU1Z U1FMX2JpbmRpcj0kbQotKwkJCWJyZWFrCi0rCQlmaQotKwlkb25lCi0rCi0rCWlmIHRlc3QgLXog IiRNWVNRTF9iaW5kaXIiCi0rCXRoZW4KLSsJCUFDX01TR19FUlJPUihbRGlkbid0IGZpbmQgJE1Z U1FMX0NPTkZJRyBiaW5hcnkgaW4gJyRNWVNRTF9iaW5fY2hlY2snXSkKLSsJZmkKLSsKLSsJY2Fz ZSAiJE1ZU1FMX2JpbmRpciIgaW4KLSsJCS8qICkgOzsKLSsJCSogKSAgQUNfTVNHX0VSUk9SKFtU aGUgTXlTUUwgYmluYXJ5IGRpcmVjdG9yeSAoJE1ZU1FMX2JpbmRpcikgbXVzdCBiZSBhbiBhYnNv bHV0ZSBwYXRoLl0pIDs7Ci0rCWVzYWMKLSsKLSsJQUNfTVNHX1JFU1VMVChbJE1ZU1FMX0NPTkZJ R10pCi0rCi0rIwlBQ19QQVRIX1BST0coTVlTUUxfQ09ORklHLCBteXNxbF9jb25maWcsICRNWVNR TF9iaW5kaXIpCi0rCi0rCSMKLSsJIyBEZWNpZGUgd2hpY2ggQyBBUEkgbGlicmFyeSB0byB1c2Us IGJhc2VkIG9uIHRocmVhZCBzdXBwb3J0Ci0rCSMKLSsJaWYgdGVzdCAieCRhY3hfcHRocmVhZF9v ayIgPSB4eWVzCi0rCXRoZW4KLSsJCU1ZU1FMX0NfTElCPW15c3FsY2xpZW50X3IKLSsJCU1ZU1FM X0xJQl9PUFRJT049bGlic19yCi0rCWVsc2UKLSsJCU1ZU1FMX0NfTElCPW15c3FsY2xpZW50Ci0r CQlNWVNRTF9MSUJfT1BUSU9OPWxpYnMKLSsJZmkKLSsKLSsJaWYgdGVzdCAieCR7TVlTUUxfQ09O RklHfTEiID0gIngxIgotKwl0aGVuCi0rCQlNWVNRTF9WRVJTSU9OPWAke01ZU1FMX0NPTkZJR30g LS12ZXJzaW9uYAotKwkJTVlTUUxfQ0ZMQUdTPWAke01ZU1FMX0NPTkZJR30gLS1jZmxhZ3NgCi0r CQlNWVNRTF9MSUJTPWAke01ZU1FMX0NPTkZJR30gLS0ke01ZU1FMX0xJQl9PUFRJT059YAotKwll bHNlCi0rCQkjCi0rCQkjIExvb2sgZm9yIE15U1FMIEMgQVBJIGxpYnJhcnkKLSsJCSMKLSsJCUFD X01TR19DSEVDS0lORyhbZm9yIE15U1FMIGxpYnJhcnkgZGlyZWN0b3J5XSkKLSsJCU1ZU1FMX2xp YmRpcj0KLSsJCWZvciBtIGluICRNWVNRTF9saWJfY2hlY2sKLSsJCWRvCi0rCQkJaWYgdGVzdCAt ZCAiJG0iICYmIFwKLSsJCQkJKHRlc3QgLWYgIiRtL2xpYiRNWVNRTF9DX0xJQi5zbyIgXAotKwkJ CQl8fCB0ZXN0IC1mICIkbS9saWIkTVlTUUxfQ19MSUIuYSIpCi0rCQkJdGhlbgotKwkJCQlNWVNR TF9saWJkaXI9JG0KLSsJCQkJYnJlYWsKLSsJCQlmaQotKwkJZG9uZQotKwotKwkJaWYgdGVzdCAt eiAiJE1ZU1FMX2xpYmRpciIKLSsJCXRoZW4KLSsJCQlBQ19NU0dfRVJST1IoW0RpZG4ndCBmaW5k ICRNWVNRTF9DX0xJQiBsaWJyYXJ5IGluICckTVlTUUxfbGliX2NoZWNrJ10pCi0rCQlmaQotKwot KwkJY2FzZSAiJE1ZU1FMX2xpYmRpciIgaW4KLSsJCQkvKiApIDs7Ci0rCQkJKiApICBBQ19NU0df RVJST1IoW1RoZSBNeVNRTCBsaWJyYXJ5IGRpcmVjdG9yeSAoJE1ZU1FMX2xpYmRpcikgbXVzdCBi ZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7Ci0rCQllc2FjCi0rCi0rCQlBQ19NU0dfUkVTVUxUKFsk TVlTUUxfbGliZGlyXSkKLSsKLSsjCQljYXNlICIkTVlTUUxfbGliZGlyIiBpbgotKyMJCSAgL3Vz ci9saWIpIDs7Ci0rIwkJICAqKSBMREZMQUdTPSIkTERGTEFHUyAtTCR7TVlTUUxfbGliZGlyfSIg OzsKLSsjCQllc2FjCi0rCi0rCQkjCi0rCQkjIExvb2sgZm9yIE15U1FMIEMgQVBJIGhlYWRlcnMK LSsJCSMKLSsJCUFDX01TR19DSEVDS0lORyhbZm9yIE15U1FMIGluY2x1ZGUgZGlyZWN0b3J5XSkK LSsJCU1ZU1FMX2luY2Rpcj0KLSsJCWZvciBtIGluICRNWVNRTF9pbmNfY2hlY2sKLSsJCWRvCi0r CQkJaWYgdGVzdCAtZCAiJG0iICYmIHRlc3QgLWYgIiRtL215c3FsLmgiCi0rCQkJdGhlbgotKwkJ CQlNWVNRTF9pbmNkaXI9JG0KLSsJCQkJYnJlYWsKLSsJCQlmaQotKwkJZG9uZQotKwotKwkJaWYg dGVzdCAteiAiJE1ZU1FMX2luY2RpciIKLSsJCXRoZW4KLSsJCQlBQ19NU0dfRVJST1IoW0RpZG4n dCBmaW5kIHRoZSBNeVNRTCBpbmNsdWRlIGRpciBpbiAnJE1ZU1FMX2luY19jaGVjayddKQotKwkJ ZmkKLSsKLSsJCWNhc2UgIiRNWVNRTF9pbmNkaXIiIGluCi0rCQkJIC8qICkgOzsKLSsJCQkgKiAp ICBBQ19NU0dfRVJST1IoW1RoZSBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeSAoJE1ZU1FMX2luY2Rp cikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7Ci0rCQllc2FjCi0rCi0rCQlBQ19NU0df UkVTVUxUKFskTVlTUUxfaW5jZGlyXSkKLSsKLSsJCU1ZU1FMX1ZFUlNJT049YGdyZXAgImRlZmlu ZSBNWVNRTF9TRVJWRVJfVkVSU0lPTiIgJE1ZU1FMX2luY2Rpci9teXNxbF92ZXJzaW9uLmggfCBj dXQgLWRcIiAtZjJgCi0rCQlNWVNRTF9DRkxBR1M9Ii1JJHtNWVNRTF9pbmNkaXJ9IgotKwkJTVlT UUxfTElCUz0iLUwke01ZU1FMX2xpYmRpcn0gLWwke01ZU1FMX0NfTElCfSIKLSsJZmkKLSsKLSsJ QUNfU1VCU1QoTVlTUUxfVkVSU0lPTikKLSsJQUNfU1VCU1QoTVlTUUxfQ0ZMQUdTKQotKwlBQ19T VUJTVChNWVNRTF9MSUJTKQotKwotKwlzYXZlX0xJQlM9IiRMSUJTIgotKwlMSUJTPSIkTElCUyAk TVlTUUxfTElCUyIKLSsJQUNfQ0hFQ0tfTElCKCRNWVNRTF9DX0xJQiwgbXlzcWxfc3RvcmVfcmVz dWx0LAotKyAgICAgICAJCQlbXSwgCi0rICAgICAgICAgICAgICAgCVtBQ19NU0dfRVJST1IoW0Nv dWxkIG5vdCBmaW5kIHdvcmtpbmcgTXlTUUwgY2xpZW50IGxpYnJhcnkhXSldCi0rICAgICAgICAg ICAgICAgCSkKLSsJQUNfU1VCU1QoTVlTUUxfQ19MSUIpCi0rCUxJQlM9IiRzYXZlX0xJQlMiCi0r XSkgZG5sIEFYX01ZU1FMCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X29y YWNsZV9vY2kubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00Ci0t LS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X29yYWNsZV9vY2kubTQJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2F4 X29yYWNsZV9vY2kubTQJMjAxMS0wNy0wMyAxODozODo0NC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0w LDAgKzEsMjg2IEBACi0rZG5sICRJZDogYXhfb3JhY2xlX29jaS5tNCx2IDEuMTEgMjAwOC8wNC8y OCAxOTo1ODo1NCBtbG9za290IEV4cCAkCi0rZG5sCi0rZG5sIEBzeW5vcHNpcyBBWF9MSUJfT1JB Q0xFX09DSShbTUlOSU1VTS1WRVJTSU9OXSkKLStkbmwKLStkbmwgVGhpcyBtYWNybyBwcm92aWRl cyB0ZXN0cyBvZiBhdmFpbGFiaWxpdHkgb2YgT3JhY2xlIE9DSSBBUEkKLStkbmwgb2YgcGFydGlj dWxhciB2ZXJzaW9uIG9yIG5ld2VyLgotK2RubCBUaGlzIG1hY3JvcyBjaGVja3MgZm9yIE9yYWNs ZSBPQ0kgaGVhZGVycyBhbmQgbGlicmFyaWVzIAotK2RubCBhbmQgZGVmaW5lcyBjb21waWxhdGlv biBmbGFncwotK2RubCAKLStkbmwgTWFjcm8gc3VwcG9ydHMgZm9sbG93aW5nIG9wdGlvbnMgYW5k IHRoZWlyIHZhbHVlczoKLStkbmwgMSkgU2luZ2xlLW9wdGlvbiB1c2FnZToKLStkbmwgLS13aXRo LW9yYWNsZSAtIHBhdGggdG8gT1JBQ0xFX0hPTUUgZGlyZWN0b3J5Ci0rZG5sIDIpIFR3by1vcHRp b25zIHVzYWdlIChib3RoIG9wdGlvbnMgYXJlIHJlcXVpcmVkKToKLStkbmwgLS13aXRoLW9yYWNs ZS1pbmNsdWRlIC0gcGF0aCB0byBkaXJlY3Rvcnkgd2l0aCBPQ0kgaGVhZGVycwotK2RubCAtLXdp dGgtb3JhY2xlLWxpYiAtIHBhdGggdG8gZGlyZWN0b3J5IHdpdGggT0NJIGxpYnJhcmllcyAKLStk bmwKLStkbmwgTk9URTogVGhlc2Ugb3B0aW9ucyBkZXNjcmliZWQgYWJvdmUgZG9lcyBub3QgdGFr ZSB5ZXN8bm8gdmFsdWVzLgotK2RubCBJZiAneWVzJyB2YWx1ZSBpcyBwYXNzZWQsIHRoZW4gV0FS TklORyBtZXNzYWdlIHdpbGwgYmUgZGlzcGxheWVkLAotK2RubCAnbm8nIHZhbHVlLCBhcyB3ZWxs IGFzIHRoZSAtLXdpdGhvdXQtb3JhY2xlKiB2YXJpYXRpb25zIHdpbGwgY2F1c2UKLStkbmwgdGhl IG1hY3JvIHdvbid0IGNoZWNrIGVueXRoaW5nLgotK2RubAotK2RubCBUaGlzIG1hY3JvIGNhbGxz OgotK2RubAotK2RubCAgIEFDX1NVQlNUKE9SQUNMRV9PQ0lfQ0ZMQUdTKQotK2RubCAgIEFDX1NV QlNUKE9SQUNMRV9PQ0lfTERGTEFHUykKLStkbmwgICBBQ19TVUJTVChPUkFDTEVfT0NJX1ZFUlNJ T04pCi0rZG5sCi0rZG5sIEFuZCBzZXRzOgotK2RubAotK2RubCAgIEhBVkVfT1JBQ0xFCi0rZG5s Ci0rZG5sIEBjYXRlZ29yeSBJbnN0YWxsZWRQYWNrYWdlcwotK2RubCBAY2F0ZWdvcnkgQ3h4Ci0r ZG5sIEBhdXRob3IgTWF0ZXVzeiBMb3Nrb3QgPG1hdGV1c3pAbG9za290Lm5ldD4KLStkbmwgQHZl cnNpb24gJERhdGU6IDIwMDgvMDQvMjggMTk6NTg6NTQgJAotK2RubCBAbGljZW5zZSBBbGxQZXJt aXNzaXZlCi0rZG5sCi0rZG5sICRJZDogYXhfb3JhY2xlX29jaS5tNCx2IDEuMTEgMjAwOC8wNC8y OCAxOTo1ODo1NCBtbG9za290IEV4cCAkCi0rZG5sCi0rQUNfREVGVU4oW0FYX0xJQl9PUkFDTEVf T0NJXSwKLStbCi0rICAgIEFDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSkKLSsgICAgQUNf QVJHX1dJVEgoW29yYWNsZV0sCi0rICAgICAgICBBQ19IRUxQX1NUUklORyhbLS13aXRoLW9yYWNs ZT1APDpARElSQDo+QF0sCi0rICAgICAgICAgICAgW3VzZSBPcmFjbGUgT0NJIEFQSSBmcm9tIGdp dmVuIHBhdGggdG8gT3JhY2xlIGhvbWUgZGlyZWN0b3J5XQotKyAgICAgICAgKSwKLSsgICAgICAg IFsKLSsgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAg ICAgaWYgdGVzdCAtbiAiJE9SQUNMRV9IT01FIjsgdGhlbgotKyAgICAgICAgICAgICAgICBvcmFj bGVfaG9tZV9kaXI9IiRPUkFDTEVfSE9NRSIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAg ICAgICAgIG9yYWNsZV9ob21lX2Rpcj0iIgotKyAgICAgICAgICAgIGZpIAotKyAgICAgICAgZmkK LSsgICAgICAgIF0sCi0rICAgICAgICBbCi0rICAgICAgICBpZiB0ZXN0IC1uICIkT1JBQ0xFX0hP TUUiOyB0aGVuCi0rICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0r ICAgICAgICBlbHNlCi0rICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIiCi0rICAgICAgICBm aSAKLSsgICAgICAgIF0KLSsgICAgKQotKwotKyAgICBBQ19BUkdfV0lUSChbb3JhY2xlLWluY2x1 ZGVdLAotKyAgICAgICAgQUNfSEVMUF9TVFJJTkcoWy0td2l0aC1vcmFjbGUtaW5jbHVkZT1APDpA RElSQDo+QF0sCi0rICAgICAgICAgICAgW3VzZSBPcmFjbGUgT0NJIEFQSSBoZWFkZXJzIGZyb20g Z2l2ZW4gcGF0aF0KLSsgICAgICAgICksCi0rICAgICAgICBbb3JhY2xlX2hvbWVfaW5jbHVkZV9k aXI9IiR3aXRodmFsIl0sCi0rICAgICAgICBbb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXI9IiJdCi0r ICAgICkKLSsgICAgQUNfQVJHX1dJVEgoW29yYWNsZS1saWJdLAotKyAgICAgICAgQUNfSEVMUF9T VFJJTkcoWy0td2l0aC1vcmFjbGUtbGliPUA8OkBESVJAOj5AXSwKLSsgICAgICAgICAgICBbdXNl IE9yYWNsZSBPQ0kgQVBJIGxpYnJhcmllcyBmcm9tIGdpdmVuIHBhdGhdCi0rICAgICAgICApLAot KyAgICAgICAgW29yYWNsZV9ob21lX2xpYl9kaXI9IiR3aXRodmFsIl0sCi0rICAgICAgICBbb3Jh Y2xlX2hvbWVfbGliX2Rpcj0iIl0KLSsgICAgKQotKwotKyAgICBPUkFDTEVfT0NJX0NGTEFHUz0i IgotKyAgICBPUkFDTEVfT0NJX0xERkxBR1M9IiIKLSsgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIi Ci0rCi0rICAgIGRubAotKyAgICBkbmwgQ29sbGVjdCBpbmNsdWRlL2xpYiBwYXRocwotKyAgICBk bmwgCi0rICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJubyIKLSsKLSsgICAgaWYgdGVzdCAt biAiJG9yYWNsZV9ob21lX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVf aG9tZV9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9kaXIiICE9ICJ5ZXMiOyB0aGVuCi0r ICAgICAgICAgICAgZG5sIE9SQUNMRV9IT01FIHBhdGggcHJvdmlkZWQKLSsgICAgICAgICAgICAK LSsgICAgICAgICAgICBkbmwgUHJpbWFyeSBwYXRoIHRvIE9DSSBoZWFkZXJzLCBhdmFpbGFibGUg aW4gT3JhY2xlPj0xMAotKyAgICAgICAgICAgIG9yYWNsZV9pbmNsdWRlX2Rpcj0iJG9yYWNsZV9o b21lX2Rpci9yZGJtcy9wdWJsaWMiCi0rICAgICAgICAgICAgCi0rICAgICAgICAgICAgZG5sIFNl Y29uZGFyeSBwYXRoIHRvIE9DSSBoZWFkZXJzIHVzZWQgYnkgb2xkZXIgdmVyc2lvbnMKLSsgICAg ICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXIyPSIkb3JhY2xlX2hvbWVfZGlyL3JkYm1zL2RlbW8i Ci0rCi0rICAgICAgICAgICAgZG5sIExpYnJhcnkgcGF0aAotKyAgICAgICAgICAgIG9yYWNsZV9s aWJfZGlyPSIkb3JhY2xlX2hvbWVfZGlyL2xpYiIKLSsgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNs ZV9ob21lX2RpciIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfb3JhY2xlX2J1dF9u b19wYXRoPSJ5ZXMiCi0rICAgICAgICBmaQotKwotKyAgICBlbGlmIHRlc3QgLW4gIiRvcmFjbGVf aG9tZV9pbmNsdWRlX2RpciIgLW8gLW4gIiRvcmFjbGVfaG9tZV9saWJfZGlyIjsgdGhlbgotKwot KyAgICAgICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAhPSAibm8iIC1hICIk b3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiICE9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgb3Jh Y2xlX2luY2x1ZGVfZGlyPSIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIiCi0rICAgICAgICBlbGlm IHRlc3QgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgPSAieWVzIjsgdGhlbgotKyAgICAgICAg ICAgIHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJ5ZXMiCi0rICAgICAgICBmaQotKwotKyAgICAg ICAgaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xpYl9kaXIiICE9ICJubyIgLWEgIiRvcmFjbGVfaG9t ZV9saWJfZGlyIiAhPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIG9yYWNsZV9saWJfZGlyPSIk b3JhY2xlX2hvbWVfbGliX2RpciIKLSsgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2xp Yl9kaXIiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X29yYWNsZV9idXRfbm9fcGF0 aD0ieWVzIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAiJHdhbnRfb3Jh Y2xlX2J1dF9ub19wYXRoIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICBBQ19NU0dfV0FSTihbT3Jh Y2xlIHN1cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBPcmFjbGUgcGF0aHMgaGF2ZSBiZWVuIHBy b3ZpZGVkLiBcCi0rUGxlYXNlLCBsb2NhdGUgT3JhY2xlIGRpcmVjdG9yaWVzIHVzaW5nIC0td2l0 aC1vcmFjbGUgb3IgXAotKy0td2l0aC1vcmFjbGUtaW5jbHVkZSBhbmQgLS13aXRoLW9yYWNsZS1s aWIgb3B0aW9ucy5dKQotKyAgICBmaQotKwotKyAgICBkbmwKLSsgICAgZG5sIENoZWNrIE9DSSBm aWxlcwotKyAgICBkbmwKLSsgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpciIgLWEg LW4gIiRvcmFjbGVfbGliX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIHNhdmVkX0NQUEZMQUdTPSIk Q1BQRkxBR1MiCi0rICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdTIC1JJG9yYWNsZV9pbmNsdWRl X2RpciIKLSsKLSsgICAgICAgIGRubCBBZGRpdGlvbmFsIHBhdGggZm9yIG9sZGVyIE9yYWNsZSBp bnN0YWxsYXRpb25zIAotKyAgICAgICAgaWYgdGVzdCAtbiAiJG9yYWNsZV9pbmNsdWRlX2RpcjIi OyB0aGVuCi0rICAgICAgICAgICAgQ1BQRkxBR1M9IiRDUFBGTEFHUyAtSSRvcmFjbGVfaW5jbHVk ZV9kaXIyIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgICMgRmlndXJlIG91dCBpZiB3ZSBhcmUg YnVpbGRpbmcgb24gd2luMzIuCi0rICAgICAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgICAg ICAgKm1pbmd3MzIqICkgV0lOMzI9eWVzIDs7Ci0rICAgICAgICAgICAgKmN5Z3dpbiogKSAgV0lO MzI9eWVzIDs7Ci0rICAgICAgICAgICAgKikgV0lOMzI9bm8gOzsKLSsgICAgICAgIGVzYWMKLSsK LSsgICAgICAgIGlmIHRlc3QgIiRXSU4zMiIgPSAibm8iCi0rICAgICAgICB0aGVuCi0rICAgICAg ICAgICAgb2NpX2xpYnM9Ii1sY2xudHNoIC1sbm56MTEiCi0rICAgICAgICBlbHNlCi0rICAgICAg ICAgICAgb2NpX2xpYnM9Ii1sb2NpIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIHNhdmVkX0xE RkxBR1M9IiRMREZMQUdTIgotKyAgICAgICAgc2F2ZWRfTElCUz0iJExJQlMiCi0rICAgICAgICBv Y2lfbGRmbGFncz0iLUwkb3JhY2xlX2xpYl9kaXIiCi0rICAgICAgICBMREZMQUdTPSIkTERGTEFH UyAkb2NpX2xkZmxhZ3MiCi0rICAgICAgICBMSUJTPSIkTElCUyAkb2NpX2xpYnMiCi0rCi0rICAg ICAgICBkbmwKLSsgICAgICAgIGRubCBDaGVjayBPQ0kgaGVhZGVycwotKyAgICAgICAgZG5sCi0r ICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBPcmFjbGUgT0NJIGhlYWRlcnMgaW4gJG9yYWNs ZV9pbmNsdWRlX2Rpcl0pCi0rCi0rICAgICAgICBBQ19MQU5HX1BVU0goQysrKQotKyAgICAgICAg QUNfQ09NUElMRV9JRkVMU0UoCi0rCQkJCVtBQ19MQU5HX1BST0dSQU0oW1tAJTpAaW5jbHVkZSA8 b2NpLmg+XV0sCi0rICAgICAgICAgICAgICAgIFtbCi0rI2lmIGRlZmluZWQoT0NJX01BSk9SX1ZF UlNJT04pCi0rI2lmIE9DSV9NQUpPUl9WRVJTSU9OID09IDEwICYmIE9DSV9NSU5PUl9WRVJTSU9O ID09IDIKLSsvLyBPcmFjbGUgMTAuMiBkZXRlY3RlZAotKyNlbmRpZgotKyNlbGlmIGRlZmluZWQo T0NJX1Y3X1NZTlRBWCkKLSsvLyBPSywgb2xkZXIgT3JhY2xlIGRldGVjdGVkCi0rLy8gVE9ETyAt IG1sb3Nrb3Q6IGZpbmQgYmV0dGVyIG1hY3JvIHRvIGNoZWNrIGZvciBvbGRlciB2ZXJzaW9uczsg Ci0rI2Vsc2UKLSsjICBlcnJvciBPcmFjbGUgb2NpLmggaGVhZGVyIG5vdCBmb3VuZAotKyNlbmRp ZgotKyAgICAgICAgICAgICAgICBdXQotKyAgICAgICAgICAgICldLAotKyAgICAgICAgICAgIFsK LSsgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgot KwotKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgot KyAgICAgICAgICAgICAgICBPUkFDTEVfT0NJX0NGTEFHUz0iJE9SQUNMRV9PQ0lfQ0ZMQUdTIC1J JG9yYWNsZV9pbmNsdWRlX2RpcjIiCi0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBv Y2lfaGVhZGVyX2ZvdW5kPSJ5ZXMiCi0rICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkK LSsgICAgICAgICAgICBdLAotKyAgICAgICAgICAgIFsKLSsgICAgICAgICAgICBvY2lfaGVhZGVy X2ZvdW5kPSJubyIKLSsgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub3QgZm91bmRdKQotKyAg ICAgICAgICAgIF0KLSsgICAgICAgICkKLSsgICAgICAgIEFDX0xBTkdfUE9QKFtDKytdKQotKyAg ICAgICAgCi0rICAgICAgICBkbmwKLSsgICAgICAgIGRubCBDaGVjayBPQ0kgbGlicmFyaWVzCi0r ICAgICAgICBkbmwKLSsgICAgICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMi OyB0aGVuCi0rCi0rICAgICAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgT3JhY2xlIE9DSSBs aWJyYXJpZXMgaW4gJG9yYWNsZV9saWJfZGlyXSkKLSsKLSsgICAgICAgICAgICBBQ19MQU5HX1BV U0goQysrKQotKyAgICAgICAgICAgIEFDX0xJTktfSUZFTFNFKAotKwkJCQlbQUNfTEFOR19QUk9H UkFNKFtbQCU6QGluY2x1ZGUgPG9jaS5oPl1dLAotKyAgICAgICAgICAgICAgICAgICAgW1sKLStP Q0lFbnYqIGVudmggPSAwOwotK09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAsIDAs IDAsIDAsIDAsIDApOwotK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQRV9F TlYpOwotKyAgICAgICAgICAgICAgICAgICAgXV0KLSsgICAgICAgICAgICAgICAgKV0sCi0rICAg ICAgICAgICAgICAgIFsKLSsgICAgICAgICAgICAgICAgT1JBQ0xFX09DSV9MREZMQUdTPSIkb2Np X2xkZmxhZ3MgJG9jaV9saWJzIgotKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJ5ZXMi Ci0rICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0rICAgICAgICAgICAgICAg IF0sCi0rICAgICAgICAgICAgICAgIFsKLSsgICAgICAgICAgICAgICAgb2NpX2xpYl9mb3VuZD0i bm8iCi0rICAgICAgICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vdCBmb3VuZF0pCi0rICAgICAg ICAgICAgICAgIF0KLSsgICAgICAgICAgICApCi0rICAgICAgICAgICAgQUNfTEFOR19QT1AoW0Mr K10pCi0rICAgICAgICBmaQotKwotKyAgICAgICAgQ1BQRkxBR1M9IiRzYXZlZF9DUFBGTEFHUyIK LSsgICAgICAgIExERkxBR1M9IiRzYXZlZF9MREZMQUdTIgotKyAgICAgICAgTElCUz0iJHNhdmVk X0xJQlMiCi0rICAgIGZpCi0rCi0rICAgIGRubAotKyAgICBkbmwgQ2hlY2sgcmVxdWlyZWQgdmVy c2lvbiBvZiBPcmFjbGUgaXMgYXZhaWxhYmxlCi0rICAgIGRubAotKyAgICBvcmFjbGVfdmVyc2lv bl9yZXE9aWZlbHNlKFskMV0sIFtdLCBbXSwgWyQxXSkKLSsKLSsgICAgaWYgdGVzdCAiJG9jaV9o ZWFkZXJfZm91bmQiID0gInllcyIgLWEgIiRvY2lfbGliX2ZvdW5kIiA9ICJ5ZXMiIC1hIFwKLSsg ICAgICAgIC1uICIkb3JhY2xlX3ZlcnNpb25fcmVxIjsgdGhlbgotKwotKyAgICAgICAgb3JhY2xl X3ZlcnNpb25fbWFqb3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01BSk9SX1ZFUlNJT04u KicgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBP Q0lfTUFKT1JfVkVSU0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 IHNlZCAtZSAncy8gICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAgICAgb3JhY2xlX3ZlcnNpb25f bWlub3I9YGNhdCAkb3JhY2xlX2luY2x1ZGVfZGlyL29jaS5oIFwKLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgZ3JlcCAnI2RlZmluZS4qT0NJX01JTk9SX1ZFUlNJT04uKicgXAotKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvI2RlZmluZSBPQ0lfTUlOT1Jf VkVSU0lPTiAgKi8vJyBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHNlZCAtZSAn cy8gICpcL1wqLipcKlwvLy8nYAotKwotKyAgICAgICAgQUNfTVNHX0NIRUNLSU5HKFtpZiBPcmFj bGUgT0NJIHZlcnNpb24gaXMgPj0gJG9yYWNsZV92ZXJzaW9uX3JlcV0pCi0rCi0rICAgICAgICBp ZiB0ZXN0IC1uICIkb3JhY2xlX3ZlcnNpb25fbWFqb3IiIC1hIC1uICQib3JhY2xlX3ZlcnNpb25f bWlub3IiOyB0aGVuCi0rCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIkb3JhY2xl X3ZlcnNpb25fbWFqb3IuJG9yYWNsZV92ZXJzaW9uX21pbm9yIgotKwotKyAgICAgICAgICAgIGRu bCBEZWNvbXBvc2UgcmVxdWlyZWQgdmVyc2lvbiBzdHJpbmcgb2YgT3JhY2xlCi0rICAgICAgICAg ICAgZG5sIGFuZCBjYWxjdWxhdGUgaXRzIG51bWJlciByZXByZXNlbnRhdGlvbgotKyAgICAgICAg ICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxIDog J1woW1swLTldXSpcKSdgCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX21pbm9yPWBl eHByICRvcmFjbGVfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0rCi0r ICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkb3JhY2xlX3ZlcnNp b25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMGAKLSsKLSsgICAg ICAgICAgICBkbmwgQ2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24gCi0rICAgICAg ICAgICAgb3JhY2xlX3ZlcnNpb25fbnVtYmVyPWBleHByICRvcmFjbGVfdmVyc2lvbl9tYWpvciBc KiAxMDAwMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJG9yYWNs ZV92ZXJzaW9uX21pbm9yIFwqIDEwMDBgCi0rCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25f Y2hlY2s9YGV4cHIgJG9yYWNsZV92ZXJzaW9uX251bWJlciBcPlw9ICRvcmFjbGVfdmVyc2lvbl9y ZXFfbnVtYmVyYAotKyAgICAgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfdmVyc2lvbl9jaGVjayIg PSAiMSI7IHRoZW4KLSsgICAgICAgICAgICAgICAgQUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAg ICAgICAgICAgICAgQUNfREVGSU5FKEhBVkVfT1JBQ0xFLCBbMV0sIFtEZWZpbmUgdG8gMSBpZiB0 aGUgT3JhY2xlIE9DSSBsaWJyYXJ5IGlzIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgZWxzZQot KyAgICAgICAgICAgICAgICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgICAgICAgICAgICAgIEFD X01TR19FUlJPUihbT3JhY2xlICRPUkFDTEVfT0NJX1ZFUlNJT04gZm91bmQsIGJ1dCByZXF1aXJl ZCB2ZXJzaW9uIGlzICRvcmFjbGVfdmVyc2lvbl9yZXFdKQotKyAgICAgICAgICAgIGZpCi0rICAg ICAgICBlbHNlCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgotKyAg ICAgICAgICAgIEFDX01TR19SRVNVTFQoW25vXSkKLSsgICAgICAgICAgICBBQ19NU0dfV0FSTihb T3JhY2xlIHZlcnNpb24gdW5rbm93biwgcHJvYmFibHkgT0NJIG9sZGVyIHRoYW4gMTAuMiBpcyBh dmFpbGFibGVdKQotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgQUNfU1VCU1QoW09SQUNM RV9PQ0lfVkVSU0lPTl0pCi0rICAgIEFDX1NVQlNUKFtPUkFDTEVfT0NJX0NGTEFHU10pCi0rICAg IEFDX1NVQlNUKFtPUkFDTEVfT0NJX0xERkxBR1NdKQotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svY29uZmlnL2F4X3Bvc3RncmVzcWwubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9heF9wb3N0Z3Jlc3FsLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2F4X3Bvc3Rn cmVzcWwubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvY29uZmlnL2F4X3Bvc3RncmVzcWwubTQJMjAxMS0wNy0wMyAxODozODo0NC4w MDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTcxIEBACi0rZG5sICRJZDogYXhfcG9zdGdyZXNx bC5tNCx2IDEuMyAyMDA3LzA2LzIzIDAxOjUxOjIyIG1sb3Nrb3QgRXhwICQKLStkbmwKLStkbmwg QHN5bm9wc2lzIEFYX0xJQl9QT1NUR1JFU1FMKFtNSU5JTVVNLVZFUlNJT05dKQotK2RubAotK2Ru bCBUaGlzIG1hY3JvIHByb3ZpZGVzIHRlc3RzIG9mIGF2YWlsYWJpbGl0eSBvZiBQb3N0Z3JlU1FM ICdsaWJwcScgbGlicmFyeQotK2RubCBvZiBwYXJ0aWN1bGFyIHZlcnNpb24gb3IgbmV3ZXIuCi0r ZG5sIAotK2RubCBBWF9MSUJfUE9TVEdSRVNRTCBtYWNybyB0YWtlcyBvbmx5IG9uZSBhcmd1bWVu dCB3aGljaCBpcyBvcHRpb25hbC4gSWYgdGhlcmUgaXMgbm8gCi0rZG5sIHJlcXVpcmVkIHZlcnNp b24gcGFzc2VkLCB0aGVuIG1hY3JvIGRvZXMgbm90IHJ1biB2ZXJzaW9uIHRlc3QuCi0rZG5sCi0r ZG5sIFRoZSAtLXdpdGgtcG9zdGdyZXNxbCBvcHRpb24gdGFrZXMgb25lIG9mIHRocmVlIHBvc3Np YmxlIHZhbHVlczoKLStkbmwgbm8gICAtIGRvIG5vdCBjaGVjayBmb3IgUG9zdGdyZVNRTCBjbGll bnQgbGlicmFyeQotK2RubCB5ZXMgIC0gZG8gY2hlY2sgZm9yIFBvc3RncmVTUUwgbGlicmFyeSBp biBzdGFuZGFyZCBsb2NhdGlvbnMKLStkbmwgICAgICAgIChwZ19jb25maWcgc2hvdWxkIGJlIGlu IHRoZSBQQVRIKQotK2RubCBwYXRoIC0gY29tcGxldGUgcGF0aCB0byBwZ19jb25maWcgdXRpbGl0 eSwgdXNlIHRoaXMgb3B0aW9uCi0rZG5sICAgICAgICBpZiBwZ19jb25maWcgY2FuJ3QgYmUgZm91 bmQgaW4gdGhlIFBBVEgKLStkbmwKLStkbmwgVGhpcyBtYWNybyBjYWxsczoKLStkbmwKLStkbmwg ICBBQ19TVUJTVChQT1NUR1JFU1FMX0NGTEFHUykKLStkbmwgICBBQ19TVUJTVChQT1NUR1JFU1FM X0xERkxBR1MpCi0rZG5sICAgQUNfU1VCU1QoUE9TVEdSRVNRTF9WRVJTSU9OKQotK2RubAotK2Ru bCBBbmQgc2V0czoKLStkbmwKLStkbmwgICBIQVZFX1BPU1RHUkVTUUwKLStkbmwKLStkbmwgQGNh dGVnb3J5IEluc3RhbGxlZFBhY2thZ2VzCi0rZG5sIEBjYXRlZ29yeSBDeHgKLStkbmwgQGF1dGhv ciBNYXRldXN6IExvc2tvdCA8bWF0ZXVzekBsb3Nrb3QubmV0PgotK2RubCBAdmVyc2lvbiAkRGF0 ZTogMjAwNy8wNi8yMyAwMTo1MToyMiAkCi0rZG5sIEBsaWNlbnNlIEFsbFBlcm1pc3NpdmUKLStk bmwKLStkbmwgJElkOiBheF9wb3N0Z3Jlc3FsLm00LHYgMS4zIDIwMDcvMDYvMjMgMDE6NTE6MjIg bWxvc2tvdCBFeHAgJAotK2RubAotK0FDX0RFRlVOKFtBWF9MSUJfUE9TVEdSRVNRTF0sCi0rWwot KyAgICBBQ19BUkdfV0lUSChbcG9zdGdyZXNxbF0sCi0rICAgICAgICBBQ19IRUxQX1NUUklORyhb LS13aXRoLXBvc3RncmVzcWw9QDw6QEFSR0A6PkBdLAotKyAgICAgICAgICAgIFt1c2UgUG9zdGdy ZVNRTCBsaWJyYXJ5IEA8OkBkZWZhdWx0PXllc0A6PkAsIG9wdGlvbmFsbHkgc3BlY2lmeSBwYXRo IHRvIHBnX2NvbmZpZ10KLSsgICAgICAgICksCi0rICAgICAgICBbCi0rCVBPU1RHUkVTUUxfaW5j X2NoZWNrPSIkd2l0aF9wb3N0Z3Jlc3FsL2luY2x1ZGUiCi0rICAgICAgICBpZiB0ZXN0ICIkd2l0 aHZhbCIgPSAibm8iOyB0aGVuCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJubyIKLSsg ICAgICAgIGVsaWYgdGVzdCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3 YW50X3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB3YW50X3Bv c3RncmVzcWw9InllcyIKLSsgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgotKyAgICAg ICAgZmkKLSsgICAgICAgIF0sCi0rICAgICAgICBbd2FudF9wb3N0Z3Jlc3FsPSJ5ZXMiCi0rCVBP U1RHUkVTUUxfaW5jX2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9sb2NhbCAvb3B0Il0KLSsgICAg KQotKwotKyAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgotKyAgICBQT1NUR1JFU1FMX0xERkxBR1M9 IiIKLSsgICAgUE9TVEdSRVNRTF9QT1NUR1JFU1FMPSIiCi0rCi0rICAgIGRubAotKyAgICBkbmwg Q2hlY2sgUG9zdGdyZVNRTCBsaWJyYXJpZXMgKGxpYnBxKQotKyAgICBkbmwKLSsgICAgCi0rICAg IGlmIHRlc3QgIiR3YW50X3Bvc3RncmVzcWwiID0gInllcyI7IHRoZW4KLSsKLSsgICAgICAgIGlm IHRlc3QgLXogIiRQR19DT05GSUciIC1vIHRlc3Q7IHRoZW4KLSsgICAgICAgICAgICBBQ19QQVRI X1BST0coW1BHX0NPTkZJR10sIFtwZ19jb25maWddLCBbXSkKLSsgICAgICAgIGZpCi0rCi0rICAg ICAgICBpZiB0ZXN0ICEgLXggIiRQR19DT05GSUciOyB0aGVuCi0rICAgICAgICAgICAgQUNfTVNH X0VSUk9SKFskUEdfQ09ORklHIGRvZXMgbm90IGV4aXN0IG9yIGl0IGlzIG5vdCBhbiBleGVjdHVh YmxlIGZpbGVdKQotKyAgICAgICAgICAgIFBHX0NPTkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91 bmRfcG9zdGdyZXNxbD0ibm8iCi0rICAgICAgICBmaQotKwotKyAgICAgICAgaWYgdGVzdCAiJFBH X0NPTkZJRyIgIT0gIm5vIjsgdGhlbgotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICAjIExv b2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVycwotKyAgICAgICAgICAgICMKLSsgICAgICAg ICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5XSkK LSsgICAgICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0KLSsgICAgICAgICAgICBmb3IgcG9zdGdy ZXNxbF9pbmNfZGlyIGluICRQT1NUR1JFU1FMX2luY19jaGVjawotKyAgICAgICAgICAgIGRvCi0r ICAgICAgICAgICAgICAgIGlmIHRlc3QgLWQgIiRwb3N0Z3Jlc3FsX2luY19kaXIiIFwKLSsgICAg ICAgICAgICAgICAgJiYgdGVzdCAtZiAiJHBvc3RncmVzcWxfaW5jX2Rpci9wb3N0Z3Jlc19leHQu aCIKLSsgICAgICAgICAgICAgICAgdGhlbgotKyAgICAgICAgICAgICAgICAgICAgUE9TVEdSRVNR TF9pbmNkaXI9JHBvc3RncmVzcWxfaW5jX2RpcgotKyAgICAgICAgICAgICAgICAgICAgYnJlYWsK LSsgICAgICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBkb25lCi0rCi0rICAgICAgICAgICAg aWYgdGVzdCAteiAiJFBPU1RHUkVTUUxfaW5jZGlyIgotKyAgICAgICAgICAgIHRoZW4KLSsgICAg ICAgICAgICAgICAgQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgUG9zdGdyZXNxbCBpbmNs dWRlIGRpciBpbiAnJFBPU1RHUkVTUUxfaW5jX2NoZWNrJ10pCi0rICAgICAgICAgICAgZmkKLSsK LSsgICAgICAgICAgICBjYXNlICIkUE9TVEdSRVNRTF9pbmNkaXIiIGluCi0rICAgICAgICAgICAg ICAgIC8qICkgOzsKLSsgICAgICAgICAgICAgICAgKiApICBBQ19NU0dfRVJST1IoW1RoZSBQb3N0 Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5ICgkUE9TVEdSRVNRTF9pbmNkaXIpIG11c3QgYmUgYW4g YWJzb2x1dGUgcGF0aC5dKSA7OwotKyAgICAgICAgICAgIGVzYWMKLSsKLSsgICAgICAgICAgICBB Q19NU0dfUkVTVUxUKFskUE9TVEdSRVNRTF9pbmNkaXJdKQotKwotKyAgICAgICAgICAgIGlmIHRl c3QgIiRQT1NUR1JFU1FMX2luY2RpciIgPSAiL3Vzci9pbmNsdWRlIjsgdGhlbgotKyAgICAgICAg ICAgICAgUE9TVEdSRVNRTF9DRkxBR1M9IiIKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAg ICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iLUkke1BPU1RHUkVTUUxfaW5jZGlyfSIKLSsgICAgICAg ICAgICBmaQotKwotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfTERGTEFHUz0iLUxgJFBHX0NPTkZJ RyAtLWxpYmRpcmAgLWxwcSIKLSsKLSsgICAgICAgICAgICBQT1NUR1JFU1FMX1ZFUlNJT049YCRQ R19DT05GSUcgLS12ZXJzaW9uIHwgc2VkIC1lICdzI1Bvc3RncmVTUUwgIyMnYAotKwotKyAgICAg ICAgICAgIEFDX0RFRklORShbSEFWRV9QT1NUR1JFU1FMXSwgWzFdLCBbRGVmaW5lIHRvIDEgaWYg UG9zdGdyZVNRTCBsaWJyYXJpZXMgYXJlIGF2YWlsYWJsZV0pCi0rICAgICAgICAgICAgCi0rICAg ICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ieWVzIgotKyAgICAgICAgZWxzZQotKyAgICAgICAg ICAgIGZvdW5kX3Bvc3RncmVzcWw9Im5vIgotKyAgICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAg ZG5sCi0rICAgIGRubCBDaGVjayBpZiByZXF1aXJlZCB2ZXJzaW9uIG9mIFBvc3RncmVTUUwgaXMg YXZhaWxhYmxlCi0rICAgIGRubAotKyAgICAKLSsKLSsgICAgcG9zdGdyZXNxbF92ZXJzaW9uX3Jl cT1pZmVsc2UoWyQxXSwgW10sIFtdLCBbJDFdKQotKwotKyAgICBpZiB0ZXN0ICIkZm91bmRfcG9z dGdyZXNxbCIgPSAieWVzIiAtYSAtbiAiJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEiOyB0aGVuCi0r Ci0rICAgICAgICBBQ19NU0dfQ0hFQ0tJTkcoW2lmIFBvc3RncmVTUUwgdmVyc2lvbiBpcyA+PSAk cG9zdGdyZXNxbF92ZXJzaW9uX3JlcV0pCi0rCi0rICAgICAgICBkbmwgRGVjb21wb3NlIHJlcXVp cmVkIHZlcnNpb24gc3RyaW5nIG9mIFBvc3RncmVTUUwKLSsgICAgICAgIGRubCBhbmQgY2FsY3Vs YXRlIGl0cyBudW1iZXIgcmVwcmVzZW50YXRpb24KLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lv bl9yZXFfbWFqb3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnXChbWzAtOV1dKlwp J2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3I9YGV4cHIgJHBvc3RncmVz cWxfdmVyc2lvbl9yZXEgOiAnW1swLTldXSpcLlwoW1swLTldXSpcKSdgCi0rICAgICAgICBwb3N0 Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDog J1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngk cG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNybyIgPSAieCI7IHRoZW4KLSsgICAgICAgICAgICBw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pY3JvPSIwIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAg IHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25f cmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMCBcCi0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNy b2AKLSsKLSsgICAgICAgIGRubCBEZWNvbXBvc2UgdmVyc2lvbiBzdHJpbmcgb2YgaW5zdGFsbGVk IFBvc3RncmVTUUwKLSsgICAgICAgIGRubCBhbmQgY2FsY3VsYXRlIGl0cyBudW1iZXIgcmVwcmVz ZW50YXRpb24KLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9tYWpvcj1gZXhwciAkUE9TVEdS RVNRTF9WRVJTSU9OIDogJ1woW1swLTldXSpcKSdgCi0rICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNp b25fbWlub3I9YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lPTiA6ICdbWzAtOV1dKlwuXChbWzAtOV1d KlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz1gZXhwciAkUE9TVEdSRVNR TF9WRVJTSU9OIDogJ1tbMC05XV0qXC5bWzAtOV1dKlwuXChbWzAtOV1dKlwpJ2AKLSsgICAgICAg IGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJzaW9uX21pY3JvIiA9ICJ4IjsgdGhlbgotKyAgICAg ICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9taWNybz0iMCIKLSsgICAgICAgIGZpCi0rCi0rICAg ICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25f bWFqb3IgXCogMTAwMDAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc KyAkcG9zdGdyZXNxbF92ZXJzaW9uX21pbm9yIFwqIDEwMDAgXAotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxfdmVyc2lvbl9taWNyb2AKLSsKLSsgICAg ICAgIHBvc3RncmVzcWxfdmVyc2lvbl9jaGVjaz1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX251 bWJlciBcPlw9ICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX251bWJlcmAKLSsgICAgICAgIGlmIHRl c3QgIiRwb3N0Z3Jlc3FsX3ZlcnNpb25fY2hlY2siID0gIjEiOyB0aGVuCi0rICAgICAgICAgICAg QUNfTVNHX1JFU1VMVChbeWVzXSkKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICBBQ19NU0df UkVTVUxUKFtub10pCi0rICAgICAgICBmaQotKyAgICBmaQotKwotKyAgICBBQ19TVUJTVChbUE9T VEdSRVNRTF9WRVJTSU9OXSkKLSsgICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfQ0ZMQUdTXSkKLSsg ICAgQUNfU1VCU1QoW1BPU1RHUkVTUUxfTERGTEFHU10pCi0rXSkKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9jb25maWcvY29uZmlnLmd1ZXNzIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcv Y29uZmlnLmd1ZXNzCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NvbmZpZy5ndWVzcwkx OTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWcvY29uZmlnLmd1ZXNzCTIwMTEtMDctMDMgMTg6NDQ6MjcuMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDE1MDEgQEAKLSsjISAvYmluL3NoCi0rIyBBdHRlbXB0IHRvIGd1ZXNzIGEg Y2Fub25pY2FsIHN5c3RlbSBuYW1lLgotKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksCi0rIyAgIDIwMDAsIDIwMDEsIDIwMDIs IDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkKLSsjICAgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rCi0rdGltZXN0YW1wPScyMDA5LTExLTIwJwotKwotKyMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v ciBtb2RpZnkgaXQKLSsjIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGlj IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9u KSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0rIyBXSVRIT1VUIEFOWSBX QVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0rIyBNRVJDSEFO VEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdO VQotKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotKyMKLSsjIFlv dSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBM aWNlbnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUg RnJlZSBTb2Z0d2FyZQotKyMgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0IC0g RmlmdGggRmxvb3IsIEJvc3RvbiwgTUEKLSsjIDAyMTEwLTEzMDEsIFVTQS4KLSsjCi0rIyBBcyBh IHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYg eW91Ci0rIyBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNv bnRhaW5zIGEKLSsjIGNvbmZpZ3VyYXRpb24gc2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwg eW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0rIyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMg dGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rCi0rCi0rIyBPcmln aW5hbGx5IHdyaXR0ZW4gYnkgUGVyIEJvdGhuZXIuICBQbGVhc2Ugc2VuZCBwYXRjaGVzIChjb250 ZXh0Ci0rIyBkaWZmIGZvcm1hdCkgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+IGFuZCBpbmNs dWRlIGEgQ2hhbmdlTG9nCi0rIyBlbnRyeS4KLSsjCi0rIyBUaGlzIHNjcmlwdCBhdHRlbXB0cyB0 byBndWVzcyBhIGNhbm9uaWNhbCBzeXN0ZW0gbmFtZSBzaW1pbGFyIHRvCi0rIyBjb25maWcuc3Vi LiAgSWYgaXQgc3VjY2VlZHMsIGl0IHByaW50cyB0aGUgc3lzdGVtIG5hbWUgb24gc3Rkb3V0LCBh bmQKLSsjIGV4aXRzIHdpdGggMC4gIE90aGVyd2lzZSwgaXQgZXhpdHMgd2l0aCAxLgotKyMKLSsj IFlvdSBjYW4gZ2V0IHRoZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdCBmcm9tOgotKyMg aHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9w bGFpbjtmPWNvbmZpZy5ndWVzcztoYj1IRUFECi0rCi0rbWU9YGVjaG8gIiQwIiB8IHNlZCAtZSAn cywuKi8sLCdgCi0rCi0rdXNhZ2U9IlwKLStVc2FnZTogJDAgW09QVElPTl0KLSsKLStPdXRwdXQg dGhlIGNvbmZpZ3VyYXRpb24gbmFtZSBvZiB0aGUgc3lzdGVtIFxgJG1lJyBpcyBydW4gb24uCi0r Ci0rT3BlcmF0aW9uIG1vZGVzOgotKyAgLWgsIC0taGVscCAgICAgICAgIHByaW50IHRoaXMgaGVs cCwgdGhlbiBleGl0Ci0rICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQgZGF0ZSBvZiBsYXN0IG1v ZGlmaWNhdGlvbiwgdGhlbiBleGl0Ci0rICAtdiwgLS12ZXJzaW9uICAgICAgcHJpbnQgdmVyc2lv biBudW1iZXIsIHRoZW4gZXhpdAotKwotK1JlcG9ydCBidWdzIGFuZCBwYXRjaGVzIHRvIDxjb25m aWctcGF0Y2hlc0BnbnUub3JnPi4iCi0rCi0rdmVyc2lvbj0iXAotK0dOVSBjb25maWcuZ3Vlc3Mg KCR0aW1lc3RhbXApCi0rCi0rT3JpZ2luYWxseSB3cml0dGVuIGJ5IFBlciBCb3RobmVyLgotK0Nv cHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5 OSwgMjAwMCwgMjAwMSwKLSsyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotK1RoaXMgaXMgZnJlZSBzb2Z0d2Fy ZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCi0r d2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ QVJUSUNVTEFSIFBVUlBPU0UuIgotKwotK2hlbHA9IgotK1RyeSBcYCRtZSAtLWhlbHAnIGZvciBt b3JlIGluZm9ybWF0aW9uLiIKLSsKLSsjIFBhcnNlIGNvbW1hbmQgbGluZQotK3doaWxlIHRlc3Qg JCMgLWd0IDAgOyBkbwotKyAgY2FzZSAkMSBpbgotKyAgICAtLXRpbWUtc3RhbXAgfCAtLXRpbWUq IHwgLXQgKQotKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4aXQgOzsKLSsgICAgLS12ZXJz aW9uIHwgLXYgKQotKyAgICAgICBlY2hvICIkdmVyc2lvbiIgOyBleGl0IDs7Ci0rICAgIC0taGVs cCB8IC0taCogfCAtaCApCi0rICAgICAgIGVjaG8gIiR1c2FnZSI7IGV4aXQgOzsKLSsgICAgLS0g KSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCi0rICAgICAgIHNoaWZ0OyBicmVhayA7Owot KyAgICAtICkJIyBVc2Ugc3RkaW4gYXMgaW5wdXQuCi0rICAgICAgIGJyZWFrIDs7Ci0rICAgIC0q ICkKLSsgICAgICAgZWNobyAiJG1lOiBpbnZhbGlkIG9wdGlvbiAkMSRoZWxwIiA+JjIKLSsgICAg ICAgZXhpdCAxIDs7Ci0rICAgICogKQotKyAgICAgICBicmVhayA7OwotKyAgZXNhYwotK2RvbmUK LSsKLStpZiB0ZXN0ICQjICE9IDA7IHRoZW4KLSsgIGVjaG8gIiRtZTogdG9vIG1hbnkgYXJndW1l bnRzJGhlbHAiID4mMgotKyAgZXhpdCAxCi0rZmkKLSsKLSt0cmFwICdleGl0IDEnIDEgMiAxNQot KwotKyMgQ0NfRk9SX0JVSUxEIC0tIGNvbXBpbGVyIHVzZWQgYnkgdGhpcyBzY3JpcHQuIE5vdGUg dGhhdCB0aGUgdXNlIG9mIGEKLSsjIGNvbXBpbGVyIHRvIGFpZCBpbiBzeXN0ZW0gZGV0ZWN0aW9u IGlzIGRpc2NvdXJhZ2VkIGFzIGl0IHJlcXVpcmVzCi0rIyB0ZW1wb3JhcnkgZmlsZXMgdG8gYmUg Y3JlYXRlZCBhbmQsIGFzIHlvdSBjYW4gc2VlIGJlbG93LCBpdCBpcyBhCi0rIyBoZWFkYWNoZSB0 byBkZWFsIHdpdGggaW4gYSBwb3J0YWJsZSBmYXNoaW9uLgotKwotKyMgSGlzdG9yaWNhbGx5LCBg Q0NfRk9SX0JVSUxEJyB1c2VkIHRvIGJlIG5hbWVkIGBIT1NUX0NDJy4gV2Ugc3RpbGwKLSsjIHVz ZSBgSE9TVF9DQycgaWYgZGVmaW5lZCwgYnV0IGl0IGlzIGRlcHJlY2F0ZWQuCi0rCi0rIyBQb3J0 YWJsZSB0bXAgZGlyZWN0b3J5IGNyZWF0aW9uIGluc3BpcmVkIGJ5IHRoZSBBdXRvY29uZiB0ZWFt LgotKwotK3NldF9jY19mb3JfYnVpbGQ9JwotK3RyYXAgImV4aXRjb2RlPVwkPzsgKHJtIC1mIFwk dG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGlyIFwkdG1wIDI+L2Rldi9udWxsKSAmJiBleGl0IFwk ZXhpdGNvZGUiIDAgOwotK3RyYXAgInJtIC1mIFwkdG1wZmlsZXMgMj4vZGV2L251bGw7IHJtZGly IFwkdG1wIDI+L2Rldi9udWxsOyBleGl0IDEiIDEgMiAxMyAxNSA7Ci0rOiAke1RNUERJUj0vdG1w fSA7Ci0rIHsgdG1wPWAodW1hc2sgMDc3ICYmIG1rdGVtcCAtZCAiJFRNUERJUi9jZ1hYWFhYWCIp IDI+L2Rldi9udWxsYCAmJiB0ZXN0IC1uICIkdG1wIiAmJiB0ZXN0IC1kICIkdG1wIiA7IH0gfHwK LSsgeyB0ZXN0IC1uICIkUkFORE9NIiAmJiB0bXA9JFRNUERJUi9jZyQkLSRSQU5ET00gJiYgKHVt YXNrIDA3NyAmJiBta2RpciAkdG1wKSA7IH0gfHwKLSsgeyB0bXA9JFRNUERJUi9jZy0kJCAmJiAo dW1hc2sgMDc3ICYmIG1rZGlyICR0bXApICYmIGVjaG8gIldhcm5pbmc6IGNyZWF0aW5nIGluc2Vj dXJlIHRlbXAgZGlyZWN0b3J5IiA+JjIgOyB9IHx8Ci0rIHsgZWNobyAiJG1lOiBjYW5ub3QgY3Jl YXRlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBpbiAkVE1QRElSIiA+JjIgOyBleGl0IDEgOyB9IDsK LStkdW1teT0kdG1wL2R1bW15IDsKLSt0bXBmaWxlcz0iJGR1bW15LmMgJGR1bW15Lm8gJGR1bW15 LnJlbCAkZHVtbXkiIDsKLStjYXNlICRDQ19GT1JfQlVJTEQsJEhPU1RfQ0MsJENDIGluCi0rICws KSAgICBlY2hvICJpbnQgeDsiID4gJGR1bW15LmMgOwotKwlmb3IgYyBpbiBjYyBnY2MgYzg5IGM5 OSA7IGRvCi0rCSAgaWYgKCRjIC1jIC1vICRkdW1teS5vICRkdW1teS5jKSA+L2Rldi9udWxsIDI+ JjEgOyB0aGVuCi0rCSAgICAgQ0NfRk9SX0JVSUxEPSIkYyI7IGJyZWFrIDsKLSsJICBmaSA7Ci0r CWRvbmUgOwotKwlpZiB0ZXN0IHgiJENDX0ZPUl9CVUlMRCIgPSB4IDsgdGhlbgotKwkgIENDX0ZP Ul9CVUlMRD1ub19jb21waWxlcl9mb3VuZCA7Ci0rCWZpCi0rCTs7Ci0rICwsKikgICBDQ19GT1Jf QlVJTEQ9JENDIDs7Ci0rICwqLCopICBDQ19GT1JfQlVJTEQ9JEhPU1RfQ0MgOzsKLStlc2FjIDsg c2V0X2NjX2Zvcl9idWlsZD0gOycKLSsKLSsjIFRoaXMgaXMgbmVlZGVkIHRvIGZpbmQgdW5hbWUg b24gYSBQeXJhbWlkIE9TeCB3aGVuIHJ1biBpbiB0aGUgQlNEIHVuaXZlcnNlLgotKyMgKGdoYXpp QG5vYy5ydXRnZXJzLmVkdSAxOTk0LTA4LTI0KQotK2lmICh0ZXN0IC1mIC8uYXR0YmluL3VuYW1l KSA+L2Rldi9udWxsIDI+JjEgOyB0aGVuCi0rCVBBVEg9JFBBVEg6Ly5hdHRiaW4gOyBleHBvcnQg UEFUSAotK2ZpCi0rCi0rVU5BTUVfTUFDSElORT1gKHVuYW1lIC1tKSAyPi9kZXYvbnVsbGAgfHwg VU5BTUVfTUFDSElORT11bmtub3duCi0rVU5BTUVfUkVMRUFTRT1gKHVuYW1lIC1yKSAyPi9kZXYv bnVsbGAgfHwgVU5BTUVfUkVMRUFTRT11bmtub3duCi0rVU5BTUVfU1lTVEVNPWAodW5hbWUgLXMp IDI+L2Rldi9udWxsYCAgfHwgVU5BTUVfU1lTVEVNPXVua25vd24KLStVTkFNRV9WRVJTSU9OPWAo dW5hbWUgLXYpIDI+L2Rldi9udWxsYCB8fCBVTkFNRV9WRVJTSU9OPXVua25vd24KLSsKLSsjIE5v dGU6IG9yZGVyIGlzIHNpZ25pZmljYW50IC0gdGhlIGNhc2UgYnJhbmNoZXMgYXJlIG5vdCBleGNs dXNpdmUuCi0rCi0rY2FzZSAiJHtVTkFNRV9NQUNISU5FfToke1VOQU1FX1NZU1RFTX06JHtVTkFN RV9SRUxFQVNFfToke1VOQU1FX1ZFUlNJT059IiBpbgotKyAgICAqOk5ldEJTRDoqOiopCi0rCSMg TmV0QlNEIChuYnNkKSB0YXJnZXRzIHNob3VsZCAod2hlcmUgYXBwbGljYWJsZSkgbWF0Y2ggb25l IG9yCi0rCSMgbW9yZSBvZiB0aGUgdHVwcGxlczogKi0qLW5ldGJzZGVsZiosICotKi1uZXRic2Rh b3V0KiwKLSsJIyAqLSotbmV0YnNkZWNvZmYqIGFuZCAqLSotbmV0YnNkKi4gIEZvciB0YXJnZXRz IHRoYXQgcmVjZW50bHkKLSsJIyBzd2l0Y2hlZCB0byBFTEYsICotKi1uZXRic2QqIHdvdWxkIHNl bGVjdCB0aGUgb2xkCi0rCSMgb2JqZWN0IGZpbGUgZm9ybWF0LiAgVGhpcyBwcm92aWRlcyBib3Ro IGZvcndhcmQKLSsJIyBjb21wYXRpYmlsaXR5IGFuZCBhIGNvbnNpc3RlbnQgbWVjaGFuaXNtIGZv ciBzZWxlY3RpbmcgdGhlCi0rCSMgb2JqZWN0IGZpbGUgZm9ybWF0LgotKwkjCi0rCSMgTm90ZTog TmV0QlNEIGRvZXNuJ3QgcGFydGljdWxhcmx5IGNhcmUgYWJvdXQgdGhlIHZlbmRvcgotKwkjIHBv cnRpb24gb2YgdGhlIG5hbWUuICBXZSBhbHdheXMgc2V0IGl0IHRvICJ1bmtub3duIi4KLSsJc3lz Y3RsPSJzeXNjdGwgLW4gaHcubWFjaGluZV9hcmNoIgotKwlVTkFNRV9NQUNISU5FX0FSQ0g9YCgv c2Jpbi8kc3lzY3RsIDI+L2Rldi9udWxsIHx8IFwKLSsJICAgIC91c3Ivc2Jpbi8kc3lzY3RsIDI+ L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bilgCi0rCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNI fSIgaW4KLSsJICAgIGFybWViKSBtYWNoaW5lPWFybWViLXVua25vd24gOzsKLSsJICAgIGFybSop IG1hY2hpbmU9YXJtLXVua25vd24gOzsKLSsJICAgIHNoM2VsKSBtYWNoaW5lPXNobC11bmtub3du IDs7Ci0rCSAgICBzaDNlYikgbWFjaGluZT1zaC11bmtub3duIDs7Ci0rCSAgICBzaDVlbCkgbWFj aGluZT1zaDVsZS11bmtub3duIDs7Ci0rCSAgICAqKSBtYWNoaW5lPSR7VU5BTUVfTUFDSElORV9B UkNIfS11bmtub3duIDs7Ci0rCWVzYWMKLSsJIyBUaGUgT3BlcmF0aW5nIFN5c3RlbSBpbmNsdWRp bmcgb2JqZWN0IGZvcm1hdCwgaWYgaXQgaGFzIHN3aXRjaGVkCi0rCSMgdG8gRUxGIHJlY2VudGx5 LCBvciB3aWxsIGluIHRoZSBmdXR1cmUuCi0rCWNhc2UgIiR7VU5BTUVfTUFDSElORV9BUkNIfSIg aW4KLSsJICAgIGFybSp8aTM4NnxtNjhrfG5zMzJrfHNoMyp8c3BhcmN8dmF4KQotKwkJZXZhbCAk c2V0X2NjX2Zvcl9idWlsZAotKwkJaWYgZWNobyBfX0VMRl9fIHwgJENDX0ZPUl9CVUlMRCAtRSAt IDI+L2Rldi9udWxsIFwKLSsJCQl8IGdyZXAgLXEgX19FTEZfXwotKwkJdGhlbgotKwkJICAgICMg T25jZSBhbGwgdXRpbGl0aWVzIGNhbiBiZSBFQ09GRiAobmV0YnNkZWNvZmYpIG9yIGEub3V0IChu ZXRic2Rhb3V0KS4KLSsJCSAgICAjIFJldHVybiBuZXRic2QgZm9yIGVpdGhlci4gIEZJWD8KLSsJ CSAgICBvcz1uZXRic2QKLSsJCWVsc2UKLSsJCSAgICBvcz1uZXRic2RlbGYKLSsJCWZpCi0rCQk7 OwotKwkgICAgKikKLSsJICAgICAgICBvcz1uZXRic2QKLSsJCTs7Ci0rCWVzYWMKLSsJIyBUaGUg T1MgcmVsZWFzZQotKwkjIERlYmlhbiBHTlUvTmV0QlNEIG1hY2hpbmVzIGhhdmUgYSBkaWZmZXJl bnQgdXNlcmxhbmQsIGFuZAotKwkjIHRodXMsIG5lZWQgYSBkaXN0aW5jdCB0cmlwbGV0LiBIb3dl dmVyLCB0aGV5IGRvIG5vdCBuZWVkCi0rCSMga2VybmVsIHZlcnNpb24gaW5mb3JtYXRpb24sIHNv IGl0IGNhbiBiZSByZXBsYWNlZCB3aXRoIGEKLSsJIyBzdWl0YWJsZSB0YWcsIGluIHRoZSBzdHls ZSBvZiBsaW51eC1nbnUuCi0rCWNhc2UgIiR7VU5BTUVfVkVSU0lPTn0iIGluCi0rCSAgICBEZWJp YW4qKQotKwkJcmVsZWFzZT0nLWdudScKLSsJCTs7Ci0rCSAgICAqKQotKwkJcmVsZWFzZT1gZWNo byAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bLV9dLiovXC4vJ2AKLSsJCTs7Ci0rCWVzYWMK LSsJIyBTaW5jZSBDUFVfVFlQRS1NQU5VRkFDVFVSRVItS0VSTkVMLU9QRVJBVElOR19TWVNURU06 Ci0rCSMgY29udGFpbnMgcmVkdW5kYW50IGluZm9ybWF0aW9uLCB0aGUgc2hvcnRlciBmb3JtOgot KwkjIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1PUEVSQVRJTkdfU1lTVEVNIGlzIHVzZWQuCi0rCWVj aG8gIiR7bWFjaGluZX0tJHtvc30ke3JlbGVhc2V9IgotKwlleGl0IDs7Ci0rICAgICo6T3BlbkJT RDoqOiopCi0rCVVOQU1FX01BQ0hJTkVfQVJDSD1gYXJjaCB8IHNlZCAncy9PcGVuQlNELi8vJ2AK LSsJZWNobyAke1VOQU1FX01BQ0hJTkVfQVJDSH0tdW5rbm93bi1vcGVuYnNkJHtVTkFNRV9SRUxF QVNFfQotKwlleGl0IDs7Ci0rICAgICo6ZWtrb0JTRDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNI SU5FfS11bmtub3duLWVra29ic2Qke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpT b2xpZEJTRDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLXNvbGlkYnNkJHtV TkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIG1hY3BwYzpNaXJCU0Q6KjoqKQotKwllY2hv IHBvd2VycGMtdW5rbm93bi1taXJic2Qke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAg KjpNaXJCU0Q6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1taXJic2Qke1VO QU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgYWxwaGE6T1NGMToqOiopCi0rCWNhc2UgJFVO QU1FX1JFTEVBU0UgaW4KLSsJKjQuMCkKLSsJCVVOQU1FX1JFTEVBU0U9YC91c3Ivc2Jpbi9zaXpl ciAtdiB8IGF3ayAne3ByaW50ICQzfSdgCi0rCQk7OwotKwkqNS4qKQotKwkgICAgICAgIFVOQU1F X1JFTEVBU0U9YC91c3Ivc2Jpbi9zaXplciAtdiB8IGF3ayAne3ByaW50ICQ0fSdgCi0rCQk7Owot Kwllc2FjCi0rCSMgQWNjb3JkaW5nIHRvIENvbXBhcSwgL3Vzci9zYmluL3BzcmluZm8gaGFzIGJl ZW4gYXZhaWxhYmxlIG9uCi0rCSMgT1NGLzEgYW5kIFRydTY0IHN5c3RlbXMgcHJvZHVjZWQgc2lu Y2UgMTk5NS4gIEkgaG9wZSB0aGF0Ci0rCSMgY292ZXJzIG1vc3Qgc3lzdGVtcyBydW5uaW5nIHRv ZGF5LiAgVGhpcyBjb2RlIHBpcGVzIHRoZSBDUFUKLSsJIyB0eXBlcyB0aHJvdWdoIGhlYWQgLW4g MSwgc28gd2Ugb25seSBkZXRlY3QgdGhlIHR5cGUgb2YgQ1BVIDAuCi0rCUFMUEhBX0NQVV9UWVBF PWAvdXNyL3NiaW4vcHNyaW5mbyAtdiB8IHNlZCAtbiAtZSAncy9eICBUaGUgYWxwaGEgXCguKlwp IHByb2Nlc3Nvci4qJC9cMS9wJyB8IGhlYWQgLW4gMWAKLSsJY2FzZSAiJEFMUEhBX0NQVV9UWVBF IiBpbgotKwkgICAgIkVWNCAoMjEwNjQpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7Owot KwkgICAgIkVWNC41ICgyMTA2NCkiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGEiIDs7Ci0rCSAg ICAiTENBNCAoMjEwNjYvMjEwNjgpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhIiA7OwotKwkg ICAgIkVWNSAoMjExNjQpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY1IiA7OwotKwkgICAg IkVWNS42ICgyMTE2NEEpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFscGhhZXY1NiIgOzsKLSsJICAg ICJFVjUuNiAoMjExNjRQQykiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFwY2E1NiIgOzsKLSsJ ICAgICJFVjUuNyAoMjExNjRQQykiKQotKwkJVU5BTUVfTUFDSElORT0iYWxwaGFwY2E1NyIgOzsK LSsJICAgICJFVjYgKDIxMjY0KSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NiIgOzsKLSsJ ICAgICJFVjYuNyAoMjEyNjRBKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjciIDs7Ci0r CSAgICAiRVY2LjhDQiAoMjEyNjRDKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2NjgiIDs7 Ci0rCSAgICAiRVY2LjhBTCAoMjEyNjRCKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2Njgi IDs7Ci0rCSAgICAiRVY2LjhDWCAoMjEyNjREKSIpCi0rCQlVTkFNRV9NQUNISU5FPSJhbHBoYWV2 NjgiIDs7Ci0rCSAgICAiRVY2LjlBICgyMTI2NC9FVjY5QSkiKQotKwkJVU5BTUVfTUFDSElORT0i YWxwaGFldjY5IiA7OwotKwkgICAgIkVWNyAoMjEzNjQpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFs cGhhZXY3IiA7OwotKwkgICAgIkVWNy45ICgyMTM2NEEpIikKLSsJCVVOQU1FX01BQ0hJTkU9ImFs cGhhZXY3OSIgOzsKLSsJZXNhYwotKwkjIEEgUG4ubiB2ZXJzaW9uIGlzIGEgcGF0Y2hlZCB2ZXJz aW9uLgotKwkjIEEgVm4ubiB2ZXJzaW9uIGlzIGEgcmVsZWFzZWQgdmVyc2lvbi4KLSsJIyBBIFRu Lm4gdmVyc2lvbiBpcyBhIHJlbGVhc2VkIGZpZWxkIHRlc3QgdmVyc2lvbi4KLSsJIyBBIFhuLm4g dmVyc2lvbiBpcyBhbiB1bnJlbGVhc2VkIGV4cGVyaW1lbnRhbCBiYXNlbGV2ZWwuCi0rCSMgMS4y IHVzZXMgIjEuMiIgZm9yIHVuYW1lIC1yLgotKwllY2hvICR7VU5BTUVfTUFDSElORX0tZGVjLW9z ZmBlY2hvICR7VU5BTUVfUkVMRUFTRX0gfCBzZWQgLWUgJ3MvXltQVlRYXS8vJyB8IHRyICdBQkNE RUZHSElKS0xNTk9QUVJTVFVWV1hZWicgJ2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6J2AKLSsJ ZXhpdCA7OwotKyAgICBBbHBoYVwgKjpXaW5kb3dzX05UKjoqKQotKwkjIEhvdyBkbyB3ZSBrbm93 IGl0J3MgSW50ZXJpeCByYXRoZXIgdGhhbiB0aGUgZ2VuZXJpYyBQT1NJWCBzdWJzeXN0ZW0/Ci0r CSMgU2hvdWxkIHdlIGNoYW5nZSBVTkFNRV9NQUNISU5FIGJhc2VkIG9uIHRoZSBvdXRwdXQgb2Yg dW5hbWUgaW5zdGVhZAotKwkjIG9mIHRoZSBzcGVjaWZpYyBBbHBoYSBtb2RlbD8KLSsJZWNobyBh bHBoYS1wYy1pbnRlcml4Ci0rCWV4aXQgOzsKLSsgICAgMjEwNjQ6V2luZG93c19OVDo1MDozKQot KwllY2hvIGFscGhhLWRlYy13aW5udDMuNQotKwlleGl0IDs7Ci0rICAgIEFtaWdhKjpVTklYX1N5 c3RlbV9WOjQuMDoqKQotKwllY2hvIG02OGstdW5rbm93bi1zeXN2NAotKwlleGl0IDs7Ci0rICAg ICo6W0FhXW1pZ2FbT29dW1NzXToqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3du LWFtaWdhb3MKLSsJZXhpdCA7OwotKyAgICAqOltNbV1vcnBoW09vXVtTc106KjoqKQotKwllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1tb3JwaG9zCi0rCWV4aXQgOzsKLSsgICAgKjpPUy8z OTA6KjoqKQotKwllY2hvIGkzNzAtaWJtLW9wZW5lZGl0aW9uCi0rCWV4aXQgOzsKLSsgICAgKjp6 L1ZNOio6KikKLSsJZWNobyBzMzkwLWlibS16dm1vZQotKwlleGl0IDs7Ci0rICAgICo6T1M0MDA6 KjoqKQotKyAgICAgICAgZWNobyBwb3dlcnBjLWlibS1vczQwMAotKwlleGl0IDs7Ci0rICAgIGFy bTpSSVNDKjoxLlswMTJdKjoqfGFybTpyaXNjaXg6MS5bMDEyXSo6KikKLSsJZWNobyBhcm0tYWNv cm4tcmlzY2l4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIGFybTpyaXNjb3M6Kjoq fGFybTpSSVNDT1M6KjoqKQotKwllY2hvIGFybS11bmtub3duLXJpc2NvcwotKwlleGl0IDs7Ci0r ICAgIFNSMj8wMTpISS1VWC9NUFA6KjoqIHwgU1I4MDAwOkhJLVVYL01QUDoqOiopCi0rCWVjaG8g aHBwYTEuMS1oaXRhY2hpLWhpdXhtcHAKLSsJZXhpdCA7OwotKyAgICBQeXJhbWlkKjpPU3gqOio6 KiB8IE1JUyo6T1N4KjoqOiogfCBNSVMqOlNNUF9EQy1PU3gqOio6KikKLSsJIyBha2VlQHdwZGlz MDMud3BhZmIuYWYubWlsIChFYXJsZSBGLiBBa2UpIGNvbnRyaWJ1dGVkIE1JUyBhbmQgTklMRS4K LSsJaWYgdGVzdCAiYCgvYmluL3VuaXZlcnNlKSAyPi9kZXYvbnVsbGAiID0gYXR0IDsgdGhlbgot KwkJZWNobyBweXJhbWlkLXB5cmFtaWQtc3lzdjMKLSsJZWxzZQotKwkJZWNobyBweXJhbWlkLXB5 cmFtaWQtYnNkCi0rCWZpCi0rCWV4aXQgOzsKLSsgICAgTklMRSo6KjoqOmRjb3N4KQotKwllY2hv IHB5cmFtaWQtcHlyYW1pZC1zdnI0Ci0rCWV4aXQgOzsKLSsgICAgRFJTPzYwMDA6dW5peDo0LjA6 NiopCi0rCWVjaG8gc3BhcmMtaWNsLW54NgotKwlleGl0IDs7Ci0rICAgIERSUz82MDAwOlVOSVhf U1Y6NC4yKjo3KiB8IERSUz82MDAwOmlzaXM6NC4yKjo3KikKLSsJY2FzZSBgL3Vzci9iaW4vdW5h bWUgLXBgIGluCi0rCSAgICBzcGFyYykgZWNobyBzcGFyYy1pY2wtbng3OyBleGl0IDs7Ci0rCWVz YWMgOzsKLSsgICAgczM5MHg6U3VuT1M6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0taWJt LXNvbGFyaXMyYGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0rCWV4 aXQgOzsKLSsgICAgc3VuNEg6U3VuT1M6NS4qOiopCi0rCWVjaG8gc3BhcmMtaGFsLXNvbGFyaXMy YGVjaG8gJHtVTkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSovLydgCi0rCWV4aXQgOzsKLSsg ICAgc3VuNCo6U3VuT1M6NS4qOiogfCB0YWRwb2xlKjpTdW5PUzo1Lio6KikKLSsJZWNobyBzcGFy Yy1zdW4tc29sYXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AK LSsJZXhpdCA7OwotKyAgICBpODZwYzpBdXJvcmFVWDo1Lio6KiB8IGk4NnhlbjpBdXJvcmFVWDo1 Lio6KikKLSsJZWNobyBpMzg2LXBjLWF1cm9yYXV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7 Ci0rICAgIGk4NnBjOlN1bk9TOjUuKjoqIHwgaTg2eGVuOlN1bk9TOjUuKjoqKQotKwlldmFsICRz ZXRfY2NfZm9yX2J1aWxkCi0rCVNVTl9BUkNIPSJpMzg2IgotKwkjIElmIHRoZXJlIGlzIGEgY29t cGlsZXIsIHNlZSBpZiBpdCBpcyBjb25maWd1cmVkIGZvciA2NC1iaXQgb2JqZWN0cy4KLSsJIyBO b3RlIHRoYXQgdGhlIFN1biBjYyBkb2VzIG5vdCB0dXJuIF9fTFA2NF9fIGludG8gMSBsaWtlIGdj YyBkb2VzLgotKwkjIFRoaXMgdGVzdCB3b3JrcyBmb3IgYm90aCBjb21waWxlcnMuCi0rCWlmIFsg IiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcgXTsgdGhlbgotKwkgICAgaWYg KGVjaG8gJyNpZmRlZiBfX2FtZDY0JzsgZWNobyBJU182NEJJVF9BUkNIOyBlY2hvICcjZW5kaWYn KSB8IFwKLSsJCShDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCkgfCBcCi0r CQlncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAotKwkgICAgdGhlbgotKwkJU1VOX0FSQ0g9 Ing4Nl82NCIKLSsJICAgIGZpCi0rCWZpCi0rCWVjaG8gJHtTVU5fQVJDSH0tcGMtc29sYXJpczJg ZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKLSsJZXhpdCA7OwotKyAg ICBzdW40KjpTdW5PUzo2KjoqKQotKwkjIEFjY29yZGluZyB0byBjb25maWcuc3ViLCB0aGlzIGlz IHRoZSBwcm9wZXIgd2F5IHRvIGNhbm9uaWNhbGl6ZQotKwkjIFN1bk9TNi4gIEhhcmQgdG8gZ3Vl c3MgZXhhY3RseSB3aGF0IFN1bk9TNiB3aWxsIGJlIGxpa2UsIGJ1dAotKwkjIGl0J3MgbGlrZWx5 IHRvIGJlIG1vcmUgbGlrZSBTb2xhcmlzIHRoYW4gU3VuT1M0LgotKwllY2hvIHNwYXJjLXN1bi1z b2xhcmlzM2BlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1teLl0qLy8nYAotKwlleGl0 IDs7Ci0rICAgIHN1bjQqOlN1bk9TOio6KikKLSsJY2FzZSAiYC91c3IvYmluL2FyY2ggLWtgIiBp bgotKwkgICAgU2VyaWVzKnxTNCopCi0rCQlVTkFNRV9SRUxFQVNFPWB1bmFtZSAtdmAKLSsJCTs7 Ci0rCWVzYWMKLSsJIyBKYXBhbmVzZSBMYW5ndWFnZSB2ZXJzaW9ucyBoYXZlIGEgdmVyc2lvbiBu dW1iZXIgbGlrZSBgNC4xLjMtSkwnLgotKwllY2hvIHNwYXJjLXN1bi1zdW5vc2BlY2hvICR7VU5B TUVfUkVMRUFTRX18c2VkIC1lICdzLy0vXy8nYAotKwlleGl0IDs7Ci0rICAgIHN1bjMqOlN1bk9T Oio6KikKLSsJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7Owot KyAgICBzdW4qOio6NC4yQlNEOiopCi0rCVVOQU1FX1JFTEVBU0U9YChzZWQgMXEgL2V0Yy9tb3Rk IHwgYXdrICd7cHJpbnQgc3Vic3RyKCQ1LDEsMyl9JykgMj4vZGV2L251bGxgCi0rCXRlc3QgIngk e1VOQU1FX1JFTEVBU0V9IiA9ICJ4IiAmJiBVTkFNRV9SRUxFQVNFPTMKLSsJY2FzZSAiYC9iaW4v YXJjaGAiIGluCi0rCSAgICBzdW4zKQotKwkJZWNobyBtNjhrLXN1bi1zdW5vcyR7VU5BTUVfUkVM RUFTRX0KLSsJCTs7Ci0rCSAgICBzdW40KQotKwkJZWNobyBzcGFyYy1zdW4tc3Vub3Mke1VOQU1F X1JFTEVBU0V9Ci0rCQk7OwotKwllc2FjCi0rCWV4aXQgOzsKLSsgICAgYXVzaHA6U3VuT1M6Kjoq KQotKwllY2hvIHNwYXJjLWF1c3BleC1zdW5vcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7Owot KyAgICAjIFRoZSBzaXR1YXRpb24gZm9yIE1pTlQgaXMgYSBsaXR0bGUgY29uZnVzaW5nLiAgVGhl IG1hY2hpbmUgbmFtZQotKyAgICAjIGNhbiBiZSB2aXJ0dWFsbHkgZXZlcnl0aGluZyAoZXZlcnl0 aGluZyB3aGljaCBpcyBub3QKLSsgICAgIyAiYXRhcmlzdCIgb3IgImF0YXJpc3RlIiBhdCBsZWFz dCBzaG91bGQgaGF2ZSBhIHByb2Nlc3NvcgotKyAgICAjID4gbTY4MDAwKS4gIFRoZSBzeXN0ZW0g bmFtZSByYW5nZXMgZnJvbSAiTWlOVCIgb3ZlciAiRnJlZU1pTlQiCi0rICAgICMgdG8gdGhlIGxv d2VyY2FzZSB2ZXJzaW9uICJtaW50IiAob3IgImZyZWVtaW50IikuICBGaW5hbGx5Ci0rICAgICMg dGhlIHN5c3RlbSBuYW1lICJUT1MiIGRlbm90ZXMgYSBzeXN0ZW0gd2hpY2ggaXMgYWN0dWFsbHkg bm90Ci0rICAgICMgTWlOVC4gIEJ1dCBNaU5UIGlzIGRvd253YXJkIGNvbXBhdGlibGUgdG8gVE9T LCBzbyB0aGlzIHNob3VsZAotKyAgICAjIGJlIG5vIHByb2JsZW0uCi0rICAgIGF0YXJpc3RbZV06 Kk1pTlQ6KjoqIHwgYXRhcmlzdFtlXToqbWludDoqOiogfCBhdGFyaXN0W2VdOipUT1M6KjoqKQot KyAgICAgICAgZWNobyBtNjhrLWF0YXJpLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsK LSsgICAgYXRhcmkqOipNaU5UOio6KiB8IGF0YXJpKjoqbWludDoqOiogfCBhdGFyaXN0W2VdOipU T1M6KjoqKQotKwllY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVfUkVMRUFTRX0KLSsgICAgICAg IGV4aXQgOzsKLSsgICAgKmZhbGNvbio6Kk1pTlQ6KjoqIHwgKmZhbGNvbio6Km1pbnQ6KjoqIHwg KmZhbGNvbio6KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02OGstYXRhcmktbWludCR7VU5BTUVf UkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBtaWxhbio6Kk1pTlQ6KjoqIHwgbWlsYW4qOiptaW50 Oio6KiB8ICptaWxhbio6KlRPUzoqOiopCi0rICAgICAgICBlY2hvIG02OGstbWlsYW4tbWludCR7 VU5BTUVfUkVMRUFTRX0KLSsgICAgICAgIGV4aXQgOzsKLSsgICAgaGFkZXMqOipNaU5UOio6KiB8 IGhhZGVzKjoqbWludDoqOiogfCAqaGFkZXMqOipUT1M6KjoqKQotKyAgICAgICAgZWNobyBtNjhr LWhhZGVzLW1pbnQke1VOQU1FX1JFTEVBU0V9Ci0rICAgICAgICBleGl0IDs7Ci0rICAgICo6Kk1p TlQ6KjoqIHwgKjoqbWludDoqOiogfCAqOipUT1M6KjoqKQotKyAgICAgICAgZWNobyBtNjhrLXVu a25vd24tbWludCR7VU5BTUVfUkVMRUFTRX0KLSsgICAgICAgIGV4aXQgOzsKLSsgICAgbTY4azpt YWNodGVuOio6KikKLSsJZWNobyBtNjhrLWFwcGxlLW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9Ci0r CWV4aXQgOzsKLSsgICAgcG93ZXJwYzptYWNodGVuOio6KikKLSsJZWNobyBwb3dlcnBjLWFwcGxl LW1hY2h0ZW4ke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgUklTQyo6TWFjaDoqOiop Ci0rCWVjaG8gbWlwcy1kZWMtbWFjaF9ic2Q0LjMKLSsJZXhpdCA7OwotKyAgICBSSVNDKjpVTFRS SVg6KjoqKQotKwllY2hvIG1pcHMtZGVjLXVsdHJpeCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7 OwotKyAgICBWQVgqOlVMVFJJWCo6KjoqKQotKwllY2hvIHZheC1kZWMtdWx0cml4JHtVTkFNRV9S RUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIDIwMjA6Q0xJWDoqOiogfCAyNDMwOkNMSVg6KjoqKQot KwllY2hvIGNsaXBwZXItaW50ZXJncmFwaC1jbGl4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7 Ci0rICAgIG1pcHM6KjoqOlVNSVBTIHwgbWlwczoqOio6UklTQ29zKQotKwlldmFsICRzZXRfY2Nf Zm9yX2J1aWxkCi0rCXNlZCAncy9eCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0rI2lmZGVmIF9fY3Bs dXNwbHVzCi0rI2luY2x1ZGUgPHN0ZGlvLmg+ICAvKiBmb3IgcHJpbnRmKCkgcHJvdG90eXBlICov Ci0rCWludCBtYWluIChpbnQgYXJnYywgY2hhciAqYXJndltdKSB7Ci0rI2Vsc2UKLSsJaW50IG1h aW4gKGFyZ2MsIGFyZ3YpIGludCBhcmdjOyBjaGFyICphcmd2W107IHsKLSsjZW5kaWYKLSsJI2lm IGRlZmluZWQgKGhvc3RfbWlwcykgJiYgZGVmaW5lZCAoTUlQU0VCKQotKwkjaWYgZGVmaW5lZCAo U1lTVFlQRV9TWVNWKQotKwkgIHByaW50ZiAoIm1pcHMtbWlwcy1yaXNjb3Mlc3N5c3ZcbiIsIGFy Z3ZbMV0pOyBleGl0ICgwKTsKLSsJI2VuZGlmCi0rCSNpZiBkZWZpbmVkIChTWVNUWVBFX1NWUjQp Ci0rCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzc3ZyNFxuIiwgYXJndlsxXSk7IGV4aXQg KDApOwotKwkjZW5kaWYKLSsJI2lmIGRlZmluZWQgKFNZU1RZUEVfQlNENDMpIHx8IGRlZmluZWQo U1lTVFlQRV9CU0QpCi0rCSAgcHJpbnRmICgibWlwcy1taXBzLXJpc2NvcyVzYnNkXG4iLCBhcmd2 WzFdKTsgZXhpdCAoMCk7Ci0rCSNlbmRpZgotKwkjZW5kaWYKLSsJICBleGl0ICgtMSk7Ci0rCX0K LStFT0YKLSsJJENDX0ZPUl9CVUlMRCAtbyAkZHVtbXkgJGR1bW15LmMgJiYKLSsJICBkdW1teWFy Zz1gZWNobyAiJHtVTkFNRV9SRUxFQVNFfSIgfCBzZWQgLW4gJ3MvXChbMC05XSpcKS4qL1wxL3An YCAmJgotKwkgIFNZU1RFTV9OQU1FPWAkZHVtbXkgJGR1bW15YXJnYCAmJgotKwkgICAgeyBlY2hv ICIkU1lTVEVNX05BTUUiOyBleGl0OyB9Ci0rCWVjaG8gbWlwcy1taXBzLXJpc2NvcyR7VU5BTUVf UkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBNb3Rvcm9sYTpQb3dlck1BWF9PUzoqOiopCi0rCWVj aG8gcG93ZXJwYy1tb3Rvcm9sYS1wb3dlcm1heAotKwlleGl0IDs7Ci0rICAgIE1vdG9yb2xhOio6 NC4zOlBMOC0qKQotKwllY2hvIHBvd2VycGMtaGFycmlzLXBvd2VybWF4Ci0rCWV4aXQgOzsKLSsg ICAgTmlnaHRfSGF3azoqOio6UG93ZXJNQVhfT1MgfCBTeW5lcmd5OlBvd2VyTUFYX09TOio6KikK LSsJZWNobyBwb3dlcnBjLWhhcnJpcy1wb3dlcm1heAotKwlleGl0IDs7Ci0rICAgIE5pZ2h0X0hh d2s6UG93ZXJfVU5JWDoqOiopCi0rCWVjaG8gcG93ZXJwYy1oYXJyaXMtcG93ZXJ1bml4Ci0rCWV4 aXQgOzsKLSsgICAgbTg4azpDWC9VWDo3KjoqKQotKwllY2hvIG04OGstaGFycmlzLWN4dXg3Ci0r CWV4aXQgOzsKLSsgICAgbTg4azoqOjQqOlI0KikKLSsJZWNobyBtODhrLW1vdG9yb2xhLXN5c3Y0 Ci0rCWV4aXQgOzsKLSsgICAgbTg4azoqOjMqOlIzKikKLSsJZWNobyBtODhrLW1vdG9yb2xhLXN5 c3YzCi0rCWV4aXQgOzsKLSsgICAgQVZpaU9OOmRndXg6KjoqKQotKyAgICAgICAgIyBERy9VWCBy ZXR1cm5zIEFWaWlPTiBmb3IgYWxsIGFyY2hpdGVjdHVyZXMKLSsgICAgICAgIFVOQU1FX1BST0NF U1NPUj1gL3Vzci9iaW4vdW5hbWUgLXBgCi0rCWlmIFsgJFVOQU1FX1BST0NFU1NPUiA9IG1jODgx MDAgXSB8fCBbICRVTkFNRV9QUk9DRVNTT1IgPSBtYzg4MTEwIF0KLSsJdGhlbgotKwkgICAgaWYg WyAke1RBUkdFVF9CSU5BUllfSU5URVJGQUNFfXggPSBtODhrZGd1eGVsZnggXSB8fCBcCi0rCSAg ICAgICBbICR7VEFSR0VUX0JJTkFSWV9JTlRFUkZBQ0V9eCA9IHggXQotKwkgICAgdGhlbgotKwkJ ZWNobyBtODhrLWRnLWRndXgke1VOQU1FX1JFTEVBU0V9Ci0rCSAgICBlbHNlCi0rCQllY2hvIG04 OGstZGctZGd1eGJjcyR7VU5BTUVfUkVMRUFTRX0KLSsJICAgIGZpCi0rCWVsc2UKLSsJICAgIGVj aG8gaTU4Ni1kZy1kZ3V4JHtVTkFNRV9SRUxFQVNFfQotKwlmaQotKyAJZXhpdCA7OwotKyAgICBN ODgqOkRvbHBoaW5PUzoqOiopCSMgRG9scGhpbk9TIChTVlIzKQotKwllY2hvIG04OGstZG9scGhp bi1zeXN2MwotKwlleGl0IDs7Ci0rICAgIE04OCo6KjpSMyo6KikKLSsJIyBEZWx0YSA4OGsgc3lz dGVtIHJ1bm5pbmcgU1ZSMwotKwllY2hvIG04OGstbW90b3JvbGEtc3lzdjMKLSsJZXhpdCA7Owot KyAgICBYRDg4KjoqOio6KikgIyBUZWt0cm9uaXggWEQ4OCBzeXN0ZW0gcnVubmluZyBVVGVrViAo U1ZSMykKLSsJZWNobyBtODhrLXRla3Ryb25peC1zeXN2MwotKwlleGl0IDs7Ci0rICAgIFRlazQz WzAtOV1bMC05XTpVVGVrOio6KikgIyBUZWt0cm9uaXggNDMwMCBzeXN0ZW0gcnVubmluZyBVVGVr IChCU0QpCi0rCWVjaG8gbTY4ay10ZWt0cm9uaXgtYnNkCi0rCWV4aXQgOzsKLSsgICAgKjpJUklY KjoqOiopCi0rCWVjaG8gbWlwcy1zZ2ktaXJpeGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1l ICdzLy0vXy9nJ2AKLSsJZXhpdCA7OwotKyAgICA/Pz8/Pz8/PzpBSVg/OlsxMl0uMToyKSAgICMg QUlYIDIuMi4xIG9yIEFJWCAyLjEuMSBpcyBSVC9QQyBBSVguCi0rCWVjaG8gcm9tcC1pYm0tYWl4 ICAgICAjIHVuYW1lIC1tIGdpdmVzIGFuIDggaGV4LWNvZGUgQ1BVIGlkCi0rCWV4aXQgOzsgICAg ICAgICAgICAgICAjIE5vdGUgdGhhdDogZWNobyAiJ2B1bmFtZSAtc2AnIiBnaXZlcyAnQUlYICcK LSsgICAgaSo4NjpBSVg6KjoqKQotKwllY2hvIGkzODYtaWJtLWFpeAotKwlleGl0IDs7Ci0rICAg IGlhNjQ6QUlYOio6KikKLSsJaWYgWyAteCAvdXNyL2Jpbi9vc2xldmVsIF0gOyB0aGVuCi0rCQlJ Qk1fUkVWPWAvdXNyL2Jpbi9vc2xldmVsYAotKwllbHNlCi0rCQlJQk1fUkVWPSR7VU5BTUVfVkVS U0lPTn0uJHtVTkFNRV9SRUxFQVNFfQotKwlmaQotKwllY2hvICR7VU5BTUVfTUFDSElORX0taWJt LWFpeCR7SUJNX1JFVn0KLSsJZXhpdCA7OwotKyAgICAqOkFJWDoyOjMpCi0rCWlmIGdyZXAgYm9z MzI1IC91c3IvaW5jbHVkZS9zdGRpby5oID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkJZXZhbCAk c2V0X2NjX2Zvcl9idWlsZAotKwkJc2VkICdzL14JCS8vJyA8PCBFT0YgPiRkdW1teS5jCi0rCQkj aW5jbHVkZSA8c3lzL3N5c3RlbWNmZy5oPgotKwotKwkJbWFpbigpCi0rCQkJewotKwkJCWlmICgh X19wb3dlcl9wYygpKQotKwkJCQlleGl0KDEpOwotKwkJCXB1dHMoInBvd2VycGMtaWJtLWFpeDMu Mi41Iik7Ci0rCQkJZXhpdCgwKTsKLSsJCQl9Ci0rRU9GCi0rCQlpZiAkQ0NfRk9SX0JVSUxEIC1v ICRkdW1teSAkZHVtbXkuYyAmJiBTWVNURU1fTkFNRT1gJGR1bW15YAotKwkJdGhlbgotKwkJCWVj aG8gIiRTWVNURU1fTkFNRSIKLSsJCWVsc2UKLSsJCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjUK LSsJCWZpCi0rCWVsaWYgZ3JlcCBib3MzMjQgL3Vzci9pbmNsdWRlL3N0ZGlvLmggPi9kZXYvbnVs bCAyPiYxOyB0aGVuCi0rCQllY2hvIHJzNjAwMC1pYm0tYWl4My4yLjQKLSsJZWxzZQotKwkJZWNo byByczYwMDAtaWJtLWFpeDMuMgotKwlmaQotKwlleGl0IDs7Ci0rICAgICo6QUlYOio6WzQ1Nl0p Ci0rCUlCTV9DUFVfSUQ9YC91c3Ivc2Jpbi9sc2RldiAtQyAtYyBwcm9jZXNzb3IgLVMgYXZhaWxh YmxlIHwgc2VkIDFxIHwgYXdrICd7IHByaW50ICQxIH0nYAotKwlpZiAvdXNyL3NiaW4vbHNhdHRy IC1FbCAke0lCTV9DUFVfSUR9IHwgZ3JlcCAnIFBPV0VSJyA+L2Rldi9udWxsIDI+JjE7IHRoZW4K LSsJCUlCTV9BUkNIPXJzNjAwMAotKwllbHNlCi0rCQlJQk1fQVJDSD1wb3dlcnBjCi0rCWZpCi0r CWlmIFsgLXggL3Vzci9iaW4vb3NsZXZlbCBdIDsgdGhlbgotKwkJSUJNX1JFVj1gL3Vzci9iaW4v b3NsZXZlbGAKLSsJZWxzZQotKwkJSUJNX1JFVj0ke1VOQU1FX1ZFUlNJT059LiR7VU5BTUVfUkVM RUFTRX0KLSsJZmkKLSsJZWNobyAke0lCTV9BUkNIfS1pYm0tYWl4JHtJQk1fUkVWfQotKwlleGl0 IDs7Ci0rICAgICo6QUlYOio6KikKLSsJZWNobyByczYwMDAtaWJtLWFpeAotKwlleGl0IDs7Ci0r ICAgIGlibXJ0OjQuNEJTRDoqfHJvbXAtaWJtOkJTRDoqKQotKwllY2hvIHJvbXAtaWJtLWJzZDQu NAotKwlleGl0IDs7Ci0rICAgIGlibXJ0OipCU0Q6Knxyb21wLWlibTpCU0Q6KikgICAgICAgICAg ICAjIGNvdmVycyBSVC9QQyBCU0QgYW5kCi0rCWVjaG8gcm9tcC1pYm0tYnNkJHtVTkFNRV9SRUxF QVNFfSAgICMgNC4zIHdpdGggdW5hbWUgYWRkZWQgdG8KLSsJZXhpdCA7OyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIyByZXBvcnQ6IHJvbXAtaWJtIEJTRCA0LjMKLSsgICAgKjpCT1NYOio6 KikKLSsJZWNobyByczYwMDAtYnVsbC1ib3N4Ci0rCWV4aXQgOzsKLSsgICAgRFBYLzI/MDA6Qi5P LlMuOio6KikKLSsJZWNobyBtNjhrLWJ1bGwtc3lzdjMKLSsJZXhpdCA7OwotKyAgICA5MDAwL1sz NF0/Pzo0LjNic2Q6MS4qOiopCi0rCWVjaG8gbTY4ay1ocC1ic2QKLSsJZXhpdCA7OwotKyAgICBo cDMwMDo0LjRCU0Q6KjoqIHwgOTAwMC9bMzRdPz86NC4zYnNkOjIuKjoqKQotKwllY2hvIG02OGst aHAtYnNkNC40Ci0rCWV4aXQgOzsKLSsgICAgOTAwMC9bMzQ2NzhdPz86SFAtVVg6KjoqKQotKwlI UFVYX1JFVj1gZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi5bMEJdKi8vJ2AK LSsJY2FzZSAiJHtVTkFNRV9NQUNISU5FfSIgaW4KLSsJICAgIDkwMDAvMzE/ICkgICAgICAgICAg ICBIUF9BUkNIPW02ODAwMCA7OwotKwkgICAgOTAwMC9bMzRdPz8gKSAgICAgICAgIEhQX0FSQ0g9 bTY4ayA7OwotKwkgICAgOTAwMC9bNjc4XVswLTldWzAtOV0pCi0rCQlpZiBbIC14IC91c3IvYmlu L2dldGNvbmYgXTsgdGhlbgotKwkJICAgIHNjX2NwdV92ZXJzaW9uPWAvdXNyL2Jpbi9nZXRjb25m IFNDX0NQVV9WRVJTSU9OIDI+L2Rldi9udWxsYAotKyAgICAgICAgICAgICAgICAgICAgc2Nfa2Vy bmVsX2JpdHM9YC91c3IvYmluL2dldGNvbmYgU0NfS0VSTkVMX0JJVFMgMj4vZGV2L251bGxgCi0r ICAgICAgICAgICAgICAgICAgICBjYXNlICIke3NjX2NwdV92ZXJzaW9ufSIgaW4KLSsgICAgICAg ICAgICAgICAgICAgICAgNTIzKSBIUF9BUkNIPSJocHBhMS4wIiA7OyAjIENQVV9QQV9SSVNDMV8w Ci0rICAgICAgICAgICAgICAgICAgICAgIDUyOCkgSFBfQVJDSD0iaHBwYTEuMSIgOzsgIyBDUFVf UEFfUklTQzFfMQotKyAgICAgICAgICAgICAgICAgICAgICA1MzIpICAgICAgICAgICAgICAgICAg ICAgICMgQ1BVX1BBX1JJU0MyXzAKLSsgICAgICAgICAgICAgICAgICAgICAgICBjYXNlICIke3Nj X2tlcm5lbF9iaXRzfSIgaW4KLSsgICAgICAgICAgICAgICAgICAgICAgICAgIDMyKSBIUF9BUkNI PSJocHBhMi4wbiIgOzsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIDY0KSBIUF9BUkNIPSJo cHBhMi4wdyIgOzsKLSsJCQkgICcnKSBIUF9BUkNIPSJocHBhMi4wIiA7OyAgICMgSFAtVVggMTAu MjAKLSsgICAgICAgICAgICAgICAgICAgICAgICBlc2FjIDs7Ci0rICAgICAgICAgICAgICAgICAg ICBlc2FjCi0rCQlmaQotKwkJaWYgWyAiJHtIUF9BUkNIfSIgPSAiIiBdOyB0aGVuCi0rCQkgICAg ZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwkJICAgIHNlZCAncy9eICAgICAgICAgICAgICAvLycg PDwgRU9GID4kZHVtbXkuYwotKwotKyAgICAgICAgICAgICAgI2RlZmluZSBfSFBVWF9TT1VSQ0UK LSsgICAgICAgICAgICAgICNpbmNsdWRlIDxzdGRsaWIuaD4KLSsgICAgICAgICAgICAgICNpbmNs dWRlIDx1bmlzdGQuaD4KLSsKLSsgICAgICAgICAgICAgIGludCBtYWluICgpCi0rICAgICAgICAg ICAgICB7Ci0rICAgICAgICAgICAgICAjaWYgZGVmaW5lZChfU0NfS0VSTkVMX0JJVFMpCi0rICAg ICAgICAgICAgICAgICAgbG9uZyBiaXRzID0gc3lzY29uZihfU0NfS0VSTkVMX0JJVFMpOwotKyAg ICAgICAgICAgICAgI2VuZGlmCi0rICAgICAgICAgICAgICAgICAgbG9uZyBjcHUgID0gc3lzY29u ZiAoX1NDX0NQVV9WRVJTSU9OKTsKLSsKLSsgICAgICAgICAgICAgICAgICBzd2l0Y2ggKGNwdSkK LSsgICAgICAgICAgICAgIAl7Ci0rICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklTQzFfMDog cHV0cyAoImhwcGExLjAiKTsgYnJlYWs7Ci0rICAgICAgICAgICAgICAJY2FzZSBDUFVfUEFfUklT QzFfMTogcHV0cyAoImhwcGExLjEiKTsgYnJlYWs7Ci0rICAgICAgICAgICAgICAJY2FzZSBDUFVf UEFfUklTQzJfMDoKLSsgICAgICAgICAgICAgICNpZiBkZWZpbmVkKF9TQ19LRVJORUxfQklUUykK LSsgICAgICAgICAgICAgIAkgICAgc3dpdGNoIChiaXRzKQotKyAgICAgICAgICAgICAgCQl7Ci0r ICAgICAgICAgICAgICAJCWNhc2UgNjQ6IHB1dHMgKCJocHBhMi4wdyIpOyBicmVhazsKLSsgICAg ICAgICAgICAgIAkJY2FzZSAzMjogcHV0cyAoImhwcGEyLjBuIik7IGJyZWFrOwotKyAgICAgICAg ICAgICAgCQlkZWZhdWx0OiBwdXRzICgiaHBwYTIuMCIpOyBicmVhazsKLSsgICAgICAgICAgICAg IAkJfSBicmVhazsKLSsgICAgICAgICAgICAgICNlbHNlICAvKiAhZGVmaW5lZChfU0NfS0VSTkVM X0JJVFMpICovCi0rICAgICAgICAgICAgICAJICAgIHB1dHMgKCJocHBhMi4wIik7IGJyZWFrOwot KyAgICAgICAgICAgICAgI2VuZGlmCi0rICAgICAgICAgICAgICAJZGVmYXVsdDogcHV0cyAoImhw cGExLjAiKTsgYnJlYWs7Ci0rICAgICAgICAgICAgICAJfQotKyAgICAgICAgICAgICAgICAgIGV4 aXQgKDApOwotKyAgICAgICAgICAgICAgfQotK0VPRgotKwkJICAgIChDQ09QVFM9ICRDQ19GT1Jf QlVJTEQgLW8gJGR1bW15ICRkdW1teS5jIDI+L2Rldi9udWxsKSAmJiBIUF9BUkNIPWAkZHVtbXlg Ci0rCQkgICAgdGVzdCAteiAiJEhQX0FSQ0giICYmIEhQX0FSQ0g9aHBwYQotKwkJZmkgOzsKLSsJ ZXNhYwotKwlpZiBbICR7SFBfQVJDSH0gPSAiaHBwYTIuMHciIF0KLSsJdGhlbgotKwkgICAgZXZh bCAkc2V0X2NjX2Zvcl9idWlsZAotKwotKwkgICAgIyBocHBhMi4wdy1ocC1ocHV4KiBoYXMgYSA2 NC1iaXQga2VybmVsIGFuZCBhIGNvbXBpbGVyIGdlbmVyYXRpbmcKLSsJICAgICMgMzItYml0IGNv ZGUuICBocHBhNjQtaHAtaHB1eCogaGFzIHRoZSBzYW1lIGtlcm5lbCBhbmQgYSBjb21waWxlcgot KwkgICAgIyBnZW5lcmF0aW5nIDY0LWJpdCBjb2RlLiAgR05VIGFuZCBIUCB1c2UgZGlmZmVyZW50 IG5vbWVuY2xhdHVyZToKLSsJICAgICMKLSsJICAgICMgJCBDQ19GT1JfQlVJTEQ9Y2MgLi9jb25m aWcuZ3Vlc3MKLSsJICAgICMgPT4gaHBwYTIuMHctaHAtaHB1eDExLjIzCi0rCSAgICAjICQgQ0Nf Rk9SX0JVSUxEPSJjYyArREEyLjB3IiAuL2NvbmZpZy5ndWVzcwotKwkgICAgIyA9PiBocHBhNjQt aHAtaHB1eDExLjIzCi0rCi0rCSAgICBpZiBlY2hvIF9fTFA2NF9fIHwgKENDT1BUUz0gJENDX0ZP Ul9CVUlMRCAtRSAtIDI+L2Rldi9udWxsKSB8Ci0rCQlncmVwIC1xIF9fTFA2NF9fCi0rCSAgICB0 aGVuCi0rCQlIUF9BUkNIPSJocHBhMi4wdyIKLSsJICAgIGVsc2UKLSsJCUhQX0FSQ0g9ImhwcGE2 NCIKLSsJICAgIGZpCi0rCWZpCi0rCWVjaG8gJHtIUF9BUkNIfS1ocC1ocHV4JHtIUFVYX1JFVn0K LSsJZXhpdCA7OwotKyAgICBpYTY0OkhQLVVYOio6KikKLSsJSFBVWF9SRVY9YGVjaG8gJHtVTkFN RV9SRUxFQVNFfXxzZWQgLWUgJ3MvW14uXSouWzBCXSovLydgCi0rCWVjaG8gaWE2NC1ocC1ocHV4 JHtIUFVYX1JFVn0KLSsJZXhpdCA7OwotKyAgICAzMDUwKjpISS1VWDoqOiopCi0rCWV2YWwgJHNl dF9jY19mb3JfYnVpbGQKLSsJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsJI2luY2x1 ZGUgPHVuaXN0ZC5oPgotKwlpbnQKLSsJbWFpbiAoKQotKwl7Ci0rCSAgbG9uZyBjcHUgPSBzeXNj b25mIChfU0NfQ1BVX1ZFUlNJT04pOwotKwkgIC8qIFRoZSBvcmRlciBtYXR0ZXJzLCBiZWNhdXNl IENQVV9JU19IUF9NQzY4SyBlcnJvbmVvdXNseSByZXR1cm5zCi0rCSAgICAgdHJ1ZSBmb3IgQ1BV X1BBX1JJU0MxXzAuICBDUFVfSVNfUEFfUklTQyByZXR1cm5zIGNvcnJlY3QKLSsJICAgICByZXN1 bHRzLCBob3dldmVyLiAgKi8KLSsJICBpZiAoQ1BVX0lTX1BBX1JJU0MgKGNwdSkpCi0rCSAgICB7 Ci0rCSAgICAgIHN3aXRjaCAoY3B1KQotKwkJewotKwkJICBjYXNlIENQVV9QQV9SSVNDMV8wOiBw dXRzICgiaHBwYTEuMC1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7Ci0rCQkgIGNhc2UgQ1BVX1BB X1JJU0MxXzE6IHB1dHMgKCJocHBhMS4xLWhpdGFjaGktaGl1eHdlMiIpOyBicmVhazsKLSsJCSAg Y2FzZSBDUFVfUEFfUklTQzJfMDogcHV0cyAoImhwcGEyLjAtaGl0YWNoaS1oaXV4d2UyIik7IGJy ZWFrOwotKwkJICBkZWZhdWx0OiBwdXRzICgiaHBwYS1oaXRhY2hpLWhpdXh3ZTIiKTsgYnJlYWs7 Ci0rCQl9Ci0rCSAgICB9Ci0rCSAgZWxzZSBpZiAoQ1BVX0lTX0hQX01DNjhLIChjcHUpKQotKwkg ICAgcHV0cyAoIm02OGstaGl0YWNoaS1oaXV4d2UyIik7Ci0rCSAgZWxzZSBwdXRzICgidW5rbm93 bi1oaXRhY2hpLWhpdXh3ZTIiKTsKLSsJICBleGl0ICgwKTsKLSsJfQotK0VPRgotKwkkQ0NfRk9S X0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAmJiBTWVNURU1fTkFNRT1gJGR1bW15YCAmJgotKwkJ eyBlY2hvICIkU1lTVEVNX05BTUUiOyBleGl0OyB9Ci0rCWVjaG8gdW5rbm93bi1oaXRhY2hpLWhp dXh3ZTIKLSsJZXhpdCA7OwotKyAgICA5MDAwLzc/Pzo0LjNic2Q6KjoqIHwgOTAwMC84P1s3OV06 NC4zYnNkOio6KiApCi0rCWVjaG8gaHBwYTEuMS1ocC1ic2QKLSsJZXhpdCA7OwotKyAgICA5MDAw Lzg/Pzo0LjNic2Q6KjoqKQotKwllY2hvIGhwcGExLjAtaHAtYnNkCi0rCWV4aXQgOzsKLSsgICAg Kjk/Pyo6TVBFL2lYOio6KiB8ICozMDAwKjpNUEUvaVg6KjoqKQotKwllY2hvIGhwcGExLjAtaHAt bXBlaXgKLSsJZXhpdCA7OwotKyAgICBocDc/PzpPU0YxOio6KiB8IGhwOD9bNzldOk9TRjE6Kjoq ICkKLSsJZWNobyBocHBhMS4xLWhwLW9zZgotKwlleGl0IDs7Ci0rICAgIGhwOD8/Ok9TRjE6Kjoq KQotKwllY2hvIGhwcGExLjAtaHAtb3NmCi0rCWV4aXQgOzsKLSsgICAgaSo4NjpPU0YxOio6KikK LSsJaWYgWyAteCAvdXNyL3NiaW4vc3lzdmVyc2lvbiBdIDsgdGhlbgotKwkgICAgZWNobyAke1VO QU1FX01BQ0hJTkV9LXVua25vd24tb3NmMW1rCi0rCWVsc2UKLSsJICAgIGVjaG8gJHtVTkFNRV9N QUNISU5FfS11bmtub3duLW9zZjEKLSsJZmkKLSsJZXhpdCA7OwotKyAgICBwYXJpc2MqOkxpdGVz KjoqOiopCi0rCWVjaG8gaHBwYTEuMS1ocC1saXRlcwotKwlleGl0IDs7Ci0rICAgIEMxKjpDb252 ZXhPUzoqOiogfCBjb252ZXg6Q29udmV4T1M6QzEqOiopCi0rCWVjaG8gYzEtY29udmV4LWJzZAot KyAgICAgICAgZXhpdCA7OwotKyAgICBDMio6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9T OkMyKjoqKQotKwlpZiBnZXRzeXNpbmZvIC1mIHNjYWxhcl9hY2MKLSsJdGhlbiBlY2hvIGMzMi1j b252ZXgtYnNkCi0rCWVsc2UgZWNobyBjMi1jb252ZXgtYnNkCi0rCWZpCi0rICAgICAgICBleGl0 IDs7Ci0rICAgIEMzNCo6Q29udmV4T1M6KjoqIHwgY29udmV4OkNvbnZleE9TOkMzNCo6KikKLSsJ ZWNobyBjMzQtY29udmV4LWJzZAotKyAgICAgICAgZXhpdCA7OwotKyAgICBDMzgqOkNvbnZleE9T Oio6KiB8IGNvbnZleDpDb252ZXhPUzpDMzgqOiopCi0rCWVjaG8gYzM4LWNvbnZleC1ic2QKLSsg ICAgICAgIGV4aXQgOzsKLSsgICAgQzQqOkNvbnZleE9TOio6KiB8IGNvbnZleDpDb252ZXhPUzpD NCo6KikKLSsJZWNobyBjNC1jb252ZXgtYnNkCi0rICAgICAgICBleGl0IDs7Ci0rICAgIENSQVkq WS1NUDoqOio6KikKLSsJZWNobyB5bXAtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2Vk IC1lICdzL1wuW14uXSokLy5YLycKLSsJZXhpdCA7OwotKyAgICBDUkFZKltBLVpdOTA6KjoqOiop Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1jcmF5LXVuaWNvcyR7VU5BTUVfUkVMRUFTRX0gXAot Kwl8IHNlZCAtZSAncy9DUkFZLipcKFtBLVpdOTBcKS9cMS8nIFwKLSsJICAgICAgLWUgeS9BQkNE RUZHSElKS0xNTk9QUVJTVFVWV1hZWi9hYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ei8gXAotKwkg ICAgICAtZSAncy9cLlteLl0qJC8uWC8nCi0rCWV4aXQgOzsKLSsgICAgQ1JBWSpUUzoqOio6KikK LSsJZWNobyB0OTAtY3JheS11bmljb3Mke1VOQU1FX1JFTEVBU0V9IHwgc2VkIC1lICdzL1wuW14u XSokLy5YLycKLSsJZXhpdCA7OwotKyAgICBDUkFZKlQzRToqOio6KikKLSsJZWNobyBhbHBoYWV2 NS1jcmF5LXVuaWNvc21rJHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8n Ci0rCWV4aXQgOzsKLSsgICAgQ1JBWSpTVjE6KjoqOiopCi0rCWVjaG8gc3YxLWNyYXktdW5pY29z JHtVTkFNRV9SRUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0rCWV4aXQgOzsKLSsg ICAgKjpVTklDT1MvbXA6KjoqKQotKwllY2hvIGNyYXludi1jcmF5LXVuaWNvc21wJHtVTkFNRV9S RUxFQVNFfSB8IHNlZCAtZSAncy9cLlteLl0qJC8uWC8nCi0rCWV4aXQgOzsKLSsgICAgRjMwWzAx XTpVTklYX1N5c3RlbV9WOio6KiB8IEY3MDA6VU5JWF9TeXN0ZW1fVjoqOiopCi0rCUZVSklUU1Vf UFJPQz1gdW5hbWUgLW0gfCB0ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZn aGlqa2xtbm9wcXJzdHV2d3h5eidgCi0rICAgICAgICBGVUpJVFNVX1NZUz1gdW5hbWUgLXAgfCB0 ciAnQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVonICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5 eicgfCBzZWQgLWUgJ3MvXC8vLydgCi0rICAgICAgICBGVUpJVFNVX1JFTD1gZWNobyAke1VOQU1F X1JFTEVBU0V9IHwgc2VkIC1lICdzLyAvXy8nYAotKyAgICAgICAgZWNobyAiJHtGVUpJVFNVX1BS T0N9LWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZVSklUU1VfUkVMfSIKLSsgICAgICAgIGV4aXQg OzsKLSsgICAgNTAwMDpVTklYX1N5c3RlbV9WOjQuKjoqKQotKyAgICAgICAgRlVKSVRTVV9TWVM9 YHVuYW1lIC1wIHwgdHIgJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJyAnYWJjZGVmZ2hpamts bW5vcHFyc3R1dnd4eXonIHwgc2VkIC1lICdzL1wvLy8nYAotKyAgICAgICAgRlVKSVRTVV9SRUw9 YGVjaG8gJHtVTkFNRV9SRUxFQVNFfSB8IHRyICdBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicg J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JyB8IHNlZCAtZSAncy8gL18vJ2AKLSsgICAgICAg IGVjaG8gInNwYXJjLWZ1aml0c3UtJHtGVUpJVFNVX1NZU30ke0ZVSklUU1VfUkVMfSIKLSsJZXhp dCA7OwotKyAgICBpKjg2OkJTRC8zODY6KjoqIHwgaSo4NjpCU0QvT1M6KjoqIHwgKjpBc2NlbmRc IEVtYmVkZGVkL09TOio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXBjLWJzZGkke1VOQU1F X1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgc3BhcmMqOkJTRC9PUzoqOiopCi0rCWVjaG8gc3Bh cmMtdW5rbm93bi1ic2RpJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6QlNEL09T Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tYnNkaSR7VU5BTUVfUkVMRUFT RX0KLSsJZXhpdCA7OwotKyAgICAqOkZyZWVCU0Q6KjoqKQotKwljYXNlICR7VU5BTUVfTUFDSElO RX0gaW4KLSsJICAgIHBjOTgpCi0rCQllY2hvIGkzODYtdW5rbm93bi1mcmVlYnNkYGVjaG8gJHtV TkFNRV9SRUxFQVNFfXxzZWQgLWUgJ3MvWy0oXS4qLy8nYCA7OwotKwkgICAgYW1kNjQpCi0rCQll Y2hvIHg4Nl82NC11bmtub3duLWZyZWVic2RgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAn cy9bLShdLiovLydgIDs7Ci0rCSAgICAqKQotKwkJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25v d24tZnJlZWJzZGBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2VkIC1lICdzL1stKF0uKi8vJ2AgOzsK LSsJZXNhYwotKwlleGl0IDs7Ci0rICAgIGkqOkNZR1dJTio6KikKLSsJZWNobyAke1VOQU1FX01B Q0hJTkV9LXBjLWN5Z3dpbgotKwlleGl0IDs7Ci0rICAgICo6TUlOR1cqOiopCi0rCWVjaG8gJHtV TkFNRV9NQUNISU5FfS1wYy1taW5ndzMyCi0rCWV4aXQgOzsKLSsgICAgaSo6d2luZG93czMyKjoq KQotKyAgICAJIyB1bmFtZSAtbSBpbmNsdWRlcyAiLXBjIiBvbiB0aGlzIHN5c3RlbS4KLSsgICAg CWVjaG8gJHtVTkFNRV9NQUNISU5FfS1taW5ndzMyCi0rCWV4aXQgOzsKLSsgICAgaSo6UFcqOiop Ci0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1wdzMyCi0rCWV4aXQgOzsKLSsgICAgKjpJbnRl cml4KjoqKQotKyAgICAJY2FzZSAke1VOQU1FX01BQ0hJTkV9IGluCi0rCSAgICB4ODYpCi0rCQll Y2hvIGk1ODYtcGMtaW50ZXJpeCR7VU5BTUVfUkVMRUFTRX0KLSsJCWV4aXQgOzsKLSsJICAgIGF1 dGhlbnRpY2FtZCB8IGdlbnVpbmVpbnRlbCB8IEVNNjRUKQotKwkJZWNobyB4ODZfNjQtdW5rbm93 bi1pbnRlcml4JHtVTkFNRV9SRUxFQVNFfQotKwkJZXhpdCA7OwotKwkgICAgSUE2NCkKLSsJCWVj aG8gaWE2NC11bmtub3duLWludGVyaXgke1VOQU1FX1JFTEVBU0V9Ci0rCQlleGl0IDs7Ci0rCWVz YWMgOzsKLSsgICAgWzM0NV04NjpXaW5kb3dzXzk1OiogfCBbMzQ1XTg2OldpbmRvd3NfOTg6KiB8 IFszNDVdODY6V2luZG93c19OVDoqKQotKwllY2hvIGkke1VOQU1FX01BQ0hJTkV9LXBjLW1rcwot KwlleGl0IDs7Ci0rICAgIDg2NjQ6V2luZG93c19OVDoqKQotKwllY2hvIHg4Nl82NC1wYy1ta3MK LSsJZXhpdCA7OwotKyAgICBpKjpXaW5kb3dzX05UKjoqIHwgUGVudGl1bSo6V2luZG93c19OVCo6 KikKLSsJIyBIb3cgZG8gd2Uga25vdyBpdCdzIEludGVyaXggcmF0aGVyIHRoYW4gdGhlIGdlbmVy aWMgUE9TSVggc3Vic3lzdGVtPwotKwkjIEl0IGFsc28gY29uZmxpY3RzIHdpdGggcHJlLTIuMCB2 ZXJzaW9ucyBvZiBBVCZUIFVXSU4uIFNob3VsZCB3ZQotKwkjIFVOQU1FX01BQ0hJTkUgYmFzZWQg b24gdGhlIG91dHB1dCBvZiB1bmFtZSBpbnN0ZWFkIG9mIGkzODY/Ci0rCWVjaG8gaTU4Ni1wYy1p bnRlcml4Ci0rCWV4aXQgOzsKLSsgICAgaSo6VVdJTio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJ TkV9LXBjLXV3aW4KLSsJZXhpdCA7OwotKyAgICBhbWQ2NDpDWUdXSU4qOio6KiB8IHg4Nl82NDpD WUdXSU4qOio6KikKLSsJZWNobyB4ODZfNjQtdW5rbm93bi1jeWd3aW4KLSsJZXhpdCA7OwotKyAg ICBwKjpDWUdXSU4qOiopCi0rCWVjaG8gcG93ZXJwY2xlLXVua25vd24tY3lnd2luCi0rCWV4aXQg OzsKLSsgICAgcHJlcCo6U3VuT1M6NS4qOiopCi0rCWVjaG8gcG93ZXJwY2xlLXVua25vd24tc29s YXJpczJgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNlZCAtZSAncy9bXi5dKi8vJ2AKLSsJZXhpdCA7 OwotKyAgICAqOkdOVToqOiopCi0rCSMgdGhlIEdOVSBzeXN0ZW0KLSsJZWNobyBgZWNobyAke1VO QU1FX01BQ0hJTkV9fHNlZCAtZSAncyxbLS9dLiokLCwnYC11bmtub3duLWdudWBlY2hvICR7VU5B TUVfUkVMRUFTRX18c2VkIC1lICdzLC8uKiQsLCdgCi0rCWV4aXQgOzsKLSsgICAgKjpHTlUvKjoq OiopCi0rCSMgb3RoZXIgc3lzdGVtcyB3aXRoIEdOVSBsaWJjIGFuZCB1c2VybGFuZAotKwllY2hv ICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1gZWNobyAke1VOQU1FX1NZU1RFTX0gfCBzZWQgJ3Ms XlteL10qLywsJyB8IHRyICdbQS1aXScgJ1thLXpdJ2BgZWNobyAke1VOQU1FX1JFTEVBU0V9fHNl ZCAtZSAncy9bLShdLiovLydgLWdudQotKwlleGl0IDs7Ci0rICAgIGkqODY6TWluaXg6KjoqKQot KwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtbWluaXgKLSsJZXhpdCA7OwotKyAgICBhbHBoYTpM aW51eDoqOiopCi0rCWNhc2UgYHNlZCAtbiAnL15jcHUgbW9kZWwvcy9eLio6IFwoLipcKS9cMS9w JyA8IC9wcm9jL2NwdWluZm9gIGluCi0rCSAgRVY1KSAgIFVOQU1FX01BQ0hJTkU9YWxwaGFldjUg OzsKLSsJICBFVjU2KSAgVU5BTUVfTUFDSElORT1hbHBoYWV2NTYgOzsKLSsJICBQQ0E1NikgVU5B TUVfTUFDSElORT1hbHBoYXBjYTU2IDs7Ci0rCSAgUENBNTcpIFVOQU1FX01BQ0hJTkU9YWxwaGFw Y2E1NiA7OwotKwkgIEVWNikgICBVTkFNRV9NQUNISU5FPWFscGhhZXY2IDs7Ci0rCSAgRVY2Nykg IFVOQU1FX01BQ0hJTkU9YWxwaGFldjY3IDs7Ci0rCSAgRVY2OCopIFVOQU1FX01BQ0hJTkU9YWxw aGFldjY4IDs7Ci0rICAgICAgICBlc2FjCi0rCW9iamR1bXAgLS1wcml2YXRlLWhlYWRlcnMgL2Jp bi9zaCB8IGdyZXAgLXEgbGQuc28uMQotKwlpZiB0ZXN0ICIkPyIgPSAwIDsgdGhlbiBMSUJDPSJs aWJjMSIgOyBlbHNlIExJQkM9IiIgOyBmaQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93 bi1saW51eC1nbnUke0xJQkN9Ci0rCWV4aXQgOzsKLSsgICAgYXJtKjpMaW51eDoqOiopCi0rCWV2 YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJaWYgZWNobyBfX0FSTV9FQUJJX18gfCAkQ0NfRk9SX0JV SUxEIC1FIC0gMj4vZGV2L251bGwgXAotKwkgICAgfCBncmVwIC1xIF9fQVJNX0VBQklfXwotKwl0 aGVuCi0rCSAgICBlY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUKLSsJZWxz ZQotKwkgICAgZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251ZWFiaQotKwlm aQotKwlleGl0IDs7Ci0rICAgIGF2cjMyKjpMaW51eDoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNI SU5FfS11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIGNyaXM6TGludXg6KjoqKQot KwllY2hvIGNyaXMtYXhpcy1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBjcmlzdjMyOkxpbnV4 Oio6KikKLSsJZWNobyBjcmlzdjMyLWF4aXMtbGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgZnJ2 OkxpbnV4Oio6KikKLSsgICAgCWVjaG8gZnJ2LXVua25vd24tbGludXgtZ251Ci0rCWV4aXQgOzsK LSsgICAgaSo4NjpMaW51eDoqOiopCi0rCUxJQkM9Z251Ci0rCWV2YWwgJHNldF9jY19mb3JfYnVp bGQKLSsJc2VkICdzL14JLy8nIDw8IEVPRiA+JGR1bW15LmMKLSsJI2lmZGVmIF9fZGlldGxpYmNf XwotKwlMSUJDPWRpZXRsaWJjCi0rCSNlbmRpZgotK0VPRgotKwlldmFsIGAkQ0NfRk9SX0JVSUxE IC1FICRkdW1teS5jIDI+L2Rldi9udWxsIHwgZ3JlcCAnXkxJQkMnYAotKwllY2hvICIke1VOQU1F X01BQ0hJTkV9LXBjLWxpbnV4LSR7TElCQ30iCi0rCWV4aXQgOzsKLSsgICAgaWE2NDpMaW51eDoq OiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7 Ci0rICAgIG0zMnIqOkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24t bGludXgtZ251Ci0rCWV4aXQgOzsKLSsgICAgbTY4KjpMaW51eDoqOiopCi0rCWVjaG8gJHtVTkFN RV9NQUNISU5FfS11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIG1pcHM6TGludXg6 KjoqIHwgbWlwczY0OkxpbnV4Oio6KikKLSsJZXZhbCAkc2V0X2NjX2Zvcl9idWlsZAotKwlzZWQg J3MvXgkvLycgPDwgRU9GID4kZHVtbXkuYwotKwkjdW5kZWYgQ1BVCi0rCSN1bmRlZiAke1VOQU1F X01BQ0hJTkV9Ci0rCSN1bmRlZiAke1VOQU1FX01BQ0hJTkV9ZWwKLSsJI2lmIGRlZmluZWQoX19N SVBTRUxfXykgfHwgZGVmaW5lZChfX01JUFNFTCkgfHwgZGVmaW5lZChfTUlQU0VMKSB8fCBkZWZp bmVkKE1JUFNFTCkKLSsJQ1BVPSR7VU5BTUVfTUFDSElORX1lbAotKwkjZWxzZQotKwkjaWYgZGVm aW5lZChfX01JUFNFQl9fKSB8fCBkZWZpbmVkKF9fTUlQU0VCKSB8fCBkZWZpbmVkKF9NSVBTRUIp IHx8IGRlZmluZWQoTUlQU0VCKQotKwlDUFU9JHtVTkFNRV9NQUNISU5FfQotKwkjZWxzZQotKwlD UFU9Ci0rCSNlbmRpZgotKwkjZW5kaWYKLStFT0YKLSsJZXZhbCBgJENDX0ZPUl9CVUlMRCAtRSAk ZHVtbXkuYyAyPi9kZXYvbnVsbCB8IGdyZXAgJ15DUFUnYAotKwl0ZXN0IHgiJHtDUFV9IiAhPSB4 ICYmIHsgZWNobyAiJHtDUFV9LXVua25vd24tbGludXgtZ251IjsgZXhpdDsgfQotKwk7OwotKyAg ICBvcjMyOkxpbnV4Oio6KikKLSsJZWNobyBvcjMyLXVua25vd24tbGludXgtZ251Ci0rCWV4aXQg OzsKLSsgICAgcGFkcmU6TGludXg6KjoqKQotKwllY2hvIHNwYXJjLXVua25vd24tbGludXgtZ251 Ci0rCWV4aXQgOzsKLSsgICAgcGFyaXNjNjQ6TGludXg6KjoqIHwgaHBwYTY0OkxpbnV4Oio6KikK LSsJZWNobyBocHBhNjQtdW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBwYXJpc2M6 TGludXg6KjoqIHwgaHBwYTpMaW51eDoqOiopCi0rCSMgTG9vayBmb3IgQ1BVIGxldmVsCi0rCWNh c2UgYGdyZXAgJ15jcHVbXmEtel0qOicgL3Byb2MvY3B1aW5mbyAyPi9kZXYvbnVsbCB8IGN1dCAt ZCcgJyAtZjJgIGluCi0rCSAgUEE3KikgZWNobyBocHBhMS4xLXVua25vd24tbGludXgtZ251IDs7 Ci0rCSAgUEE4KikgZWNobyBocHBhMi4wLXVua25vd24tbGludXgtZ251IDs7Ci0rCSAgKikgICAg ZWNobyBocHBhLXVua25vd24tbGludXgtZ251IDs7Ci0rCWVzYWMKLSsJZXhpdCA7OwotKyAgICBw cGM2NDpMaW51eDoqOiopCi0rCWVjaG8gcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251Ci0rCWV4 aXQgOzsKLSsgICAgcHBjOkxpbnV4Oio6KikKLSsJZWNobyBwb3dlcnBjLXVua25vd24tbGludXgt Z251Ci0rCWV4aXQgOzsKLSsgICAgczM5MDpMaW51eDoqOiogfCBzMzkweDpMaW51eDoqOiopCi0r CWVjaG8gJHtVTkFNRV9NQUNISU5FfS1pYm0tbGludXgKLSsJZXhpdCA7OwotKyAgICBzaDY0KjpM aW51eDoqOiopCi0rICAgIAllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1saW51eC1nbnUK LSsJZXhpdCA7OwotKyAgICBzaCo6TGludXg6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0t dW5rbm93bi1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICBzcGFyYzpMaW51eDoqOiogfCBzcGFy YzY0OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251 Ci0rCWV4aXQgOzsKLSsgICAgdmF4OkxpbnV4Oio6KikKLSsJZWNobyAke1VOQU1FX01BQ0hJTkV9 LWRlYy1saW51eC1nbnUKLSsJZXhpdCA7OwotKyAgICB4ODZfNjQ6TGludXg6KjoqKQotKwllY2hv IHg4Nl82NC11bmtub3duLWxpbnV4LWdudQotKwlleGl0IDs7Ci0rICAgIHh0ZW5zYSo6TGludXg6 KjoqKQotKyAgICAJZWNobyAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tbGludXgtZ251Ci0rCWV4 aXQgOzsKLSsgICAgaSo4NjpEWU5JWC9wdHg6NCo6KikKLSsJIyBwdHggNC4wIGRvZXMgdW5hbWUg LXMgY29ycmVjdGx5LCB3aXRoIERZTklYL3B0eCBpbiB0aGVyZS4KLSsJIyBlYXJsaWVyIHZlcnNp b25zIGFyZSBtZXNzZWQgdXAgYW5kIHB1dCB0aGUgbm9kZW5hbWUgaW4gYm90aAotKwkjIHN5c25h bWUgYW5kIG5vZGVuYW1lLgotKwllY2hvIGkzODYtc2VxdWVudC1zeXN2NAotKwlleGl0IDs7Ci0r ICAgIGkqODY6VU5JWF9TVjo0LjJNUDoyLiopCi0rICAgICAgICAjIFVuaXh3YXJlIGlzIGFuIG9m ZnNob290IG9mIFNWUjQsIGJ1dCBpdCBoYXMgaXRzIG93biB2ZXJzaW9uCi0rICAgICAgICAjIG51 bWJlciBzZXJpZXMgc3RhcnRpbmcgd2l0aCAyLi4uCi0rICAgICAgICAjIEkgYW0gbm90IHBvc2l0 aXZlIHRoYXQgb3RoZXIgU1ZSNCBzeXN0ZW1zIHdvbid0IG1hdGNoIHRoaXMsCi0rCSMgSSBqdXN0 IGhhdmUgdG8gaG9wZS4gIC0tIHJtcy4KLSsgICAgICAgICMgVXNlIHN5c3Y0LjJ1dy4uLiBzbyB0 aGF0IHN5c3Y0KiBtYXRjaGVzIGl0LgotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3lzdjQu MnV3JHtVTkFNRV9WRVJTSU9OfQotKwlleGl0IDs7Ci0rICAgIGkqODY6T1MvMjoqOiopCi0rCSMg SWYgd2Ugd2VyZSBhYmxlIHRvIGZpbmQgYHVuYW1lJywgdGhlbiBFTVggVW5peCBjb21wYXRpYmls aXR5Ci0rCSMgaXMgcHJvYmFibHkgaW5zdGFsbGVkLgotKwllY2hvICR7VU5BTUVfTUFDSElORX0t cGMtb3MyLWVteAotKwlleGl0IDs7Ci0rICAgIGkqODY6WFRTLTMwMDoqOlNUT1ApCi0rCWVjaG8g JHtVTkFNRV9NQUNISU5FfS11bmtub3duLXN0b3AKLSsJZXhpdCA7OwotKyAgICBpKjg2OmF0aGVv czoqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS11bmtub3duLWF0aGVvcwotKwlleGl0IDs7 Ci0rICAgIGkqODY6c3lsbGFibGU6KjoqKQotKwllY2hvICR7VU5BTUVfTUFDSElORX0tcGMtc3ls bGFibGUKLSsJZXhpdCA7OwotKyAgICBpKjg2Okx5bnhPUzoyLio6KiB8IGkqODY6THlueE9TOjMu WzAxXSo6KiB8IGkqODY6THlueE9TOjQuWzAyXSo6KikKLSsJZWNobyBpMzg2LXVua25vd24tbHlu eG9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIGkqODY6KkRPUzoqOiopCi0rCWVj aG8gJHtVTkFNRV9NQUNISU5FfS1wYy1tc2Rvc2RqZ3BwCi0rCWV4aXQgOzsKLSsgICAgaSo4Njoq OjQuKjoqIHwgaSo4NjpTWVNURU1fVjo0Lio6KikKLSsJVU5BTUVfUkVMPWBlY2hvICR7VU5BTUVf UkVMRUFTRX0gfCBzZWQgJ3MvXC9NUCQvLydgCi0rCWlmIGdyZXAgTm92ZWxsIC91c3IvaW5jbHVk ZS9saW5rLmggPi9kZXYvbnVsbCAyPi9kZXYvbnVsbDsgdGhlbgotKwkJZWNobyAke1VOQU1FX01B Q0hJTkV9LXVuaXZlbC1zeXN2JHtVTkFNRV9SRUx9Ci0rCWVsc2UKLSsJCWVjaG8gJHtVTkFNRV9N QUNISU5FfS1wYy1zeXN2JHtVTkFNRV9SRUx9Ci0rCWZpCi0rCWV4aXQgOzsKLSsgICAgaSo4Njoq OjU6WzY3OF0qKQotKyAgICAJIyBVbml4V2FyZSA3LngsIE9wZW5VTklYIGFuZCBPcGVuU2VydmVy IDYuCi0rCWNhc2UgYC9iaW4vdW5hbWUgLVggfCBncmVwICJeTWFjaGluZSJgIGluCi0rCSAgICAq NDg2KikJICAgICBVTkFNRV9NQUNISU5FPWk0ODYgOzsKLSsJICAgICpQZW50aXVtKQkgICAgIFVO QU1FX01BQ0hJTkU9aTU4NiA7OwotKwkgICAgKlBlbnQqfCpDZWxlcm9uKSBVTkFNRV9NQUNISU5F PWk2ODYgOzsKLSsJZXNhYwotKwllY2hvICR7VU5BTUVfTUFDSElORX0tdW5rbm93bi1zeXN2JHtV TkFNRV9SRUxFQVNFfSR7VU5BTUVfU1lTVEVNfSR7VU5BTUVfVkVSU0lPTn0KLSsJZXhpdCA7Owot KyAgICBpKjg2Oio6My4yOiopCi0rCWlmIHRlc3QgLWYgL3Vzci9vcHRpb25zL2NiLm5hbWU7IHRo ZW4KLSsJCVVOQU1FX1JFTD1gc2VkIC1uICdzLy4qVmVyc2lvbiAvL3AnIDwvdXNyL29wdGlvbnMv Y2IubmFtZWAKLSsJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1wYy1pc2MkVU5BTUVfUkVMCi0rCWVs aWYgL2Jpbi91bmFtZSAtWCAyPi9kZXYvbnVsbCA+L2Rldi9udWxsIDsgdGhlbgotKwkJVU5BTUVf UkVMPWAoL2Jpbi91bmFtZSAtWHxncmVwIFJlbGVhc2V8c2VkIC1lICdzLy4qPSAvLycpYAotKwkJ KC9iaW4vdW5hbWUgLVh8Z3JlcCBpODA0ODYgPi9kZXYvbnVsbCkgJiYgVU5BTUVfTUFDSElORT1p NDg2Ci0rCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bScgPi9kZXYvbnVs bCkgXAotKwkJCSYmIFVOQU1FX01BQ0hJTkU9aTU4NgotKwkJKC9iaW4vdW5hbWUgLVh8Z3JlcCAn Xk1hY2hpbmUuKlBlbnQgKklJJyA+L2Rldi9udWxsKSBcCi0rCQkJJiYgVU5BTUVfTUFDSElORT1p Njg2Ci0rCQkoL2Jpbi91bmFtZSAtWHxncmVwICdeTWFjaGluZS4qUGVudGl1bSBQcm8nID4vZGV2 L251bGwpIFwKLSsJCQkmJiBVTkFNRV9NQUNISU5FPWk2ODYKLSsJCWVjaG8gJHtVTkFNRV9NQUNI SU5FfS1wYy1zY28kVU5BTUVfUkVMCi0rCWVsc2UKLSsJCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1w Yy1zeXN2MzIKLSsJZmkKLSsJZXhpdCA7OwotKyAgICBwYzoqOio6KikKLSsJIyBMZWZ0IGhlcmUg Zm9yIGNvbXBhdGliaWxpdHk6Ci0rICAgICAgICAjIHVuYW1lIC1tIHByaW50cyBmb3IgREpHUFAg YWx3YXlzICdwYycsIGJ1dCBpdCBwcmludHMgbm90aGluZyBhYm91dAotKyAgICAgICAgIyB0aGUg cHJvY2Vzc29yLCBzbyB3ZSBwbGF5IHNhZmUgYnkgYXNzdW1pbmcgaTU4Ni4KLSsJIyBOb3RlOiB3 aGF0ZXZlciB0aGlzIGlzLCBpdCBNVVNUIGJlIHRoZSBzYW1lIGFzIHdoYXQgY29uZmlnLnN1Ygot KwkjIHByaW50cyBmb3IgdGhlICJkamdwcCIgaG9zdCwgb3IgZWxzZSBHREIgY29uZmlndXJ5IHdp bGwgZGVjaWRlIHRoYXQKLSsJIyB0aGlzIGlzIGEgY3Jvc3MtYnVpbGQuCi0rCWVjaG8gaTU4Ni1w Yy1tc2Rvc2RqZ3BwCi0rICAgICAgICBleGl0IDs7Ci0rICAgIEludGVsOk1hY2g6Myo6KikKLSsJ ZWNobyBpMzg2LXBjLW1hY2gzCi0rCWV4aXQgOzsKLSsgICAgcGFyYWdvbjoqOio6KikKLSsJZWNo byBpODYwLWludGVsLW9zZjEKLSsJZXhpdCA7OwotKyAgICBpODYwOio6NC4qOiopICMgaTg2MC1T VlI0Ci0rCWlmIGdyZXAgU3RhcmRlbnQgL3Vzci9pbmNsdWRlL3N5cy91YWRtaW4uaCA+L2Rldi9u dWxsIDI+JjEgOyB0aGVuCi0rCSAgZWNobyBpODYwLXN0YXJkZW50LXN5c3Yke1VOQU1FX1JFTEVB U0V9ICMgU3RhcmRlbnQgVmlzdHJhIGk4NjAtU1ZSNAotKwllbHNlICMgQWRkIG90aGVyIGk4NjAt U1ZSNCB2ZW5kb3JzIGJlbG93IGFzIHRoZXkgYXJlIGRpc2NvdmVyZWQuCi0rCSAgZWNobyBpODYw LXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0gICMgVW5rbm93biBpODYwLVNWUjQKLSsJZmkK LSsJZXhpdCA7OwotKyAgICBtaW5pKjpDVElYOlNZUyo1OiopCi0rCSMgIm1pbmlmcmFtZSIKLSsJ ZWNobyBtNjgwMTAtY29udmVyZ2VudC1zeXN2Ci0rCWV4aXQgOzsKLSsgICAgbWM2OGs6VU5JWDpT WVNURU01OjMuNTFtKQotKwllY2hvIG02OGstY29udmVyZ2VudC1zeXN2Ci0rCWV4aXQgOzsKLSsg ICAgTTY4MD8wOkQtTklYOjUuMzoqKQotKwllY2hvIG02OGstZGlhYi1kbml4Ci0rCWV4aXQgOzsK LSsgICAgTTY4KjoqOlIzVls1Njc4XSo6KikKLSsJdGVzdCAtciAvc3lzVjY4ICYmIHsgZWNobyAn bTY4ay1tb3Rvcm9sYS1zeXN2JzsgZXhpdDsgfSA7OwotKyAgICAzWzM0NV0/PzoqOjQuMDozLjAg fCAzWzM0XT8/QToqOjQuMDozLjAgfCAzWzM0XT8/LCo6Kjo0LjA6My4wIHwgM1szNF0/Py8qOio6 NC4wOjMuMCB8IDQ0MDA6Kjo0LjA6My4wIHwgNDg1MDoqOjQuMDozLjAgfCBTS0E0MDoqOjQuMDoz LjAgfCBTRFMyOio6NC4wOjMuMCB8IFNIRzI6Kjo0LjA6My4wIHwgUzc1MDEqOio6NC4wOjMuMCkK LSsJT1NfUkVMPScnCi0rCXRlc3QgLXIgL2V0Yy8ucmVsaWQgXAotKwkmJiBPU19SRUw9LmBzZWQg LW4gJ3MvW14gXSogW14gXSogXChbMC05XVswLTldXCkuKi9cMS9wJyA8IC9ldGMvLnJlbGlkYAot KwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgZ3JlcCA4NiA+L2Rldi9udWxsIFwKLSsJICAm JiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQotKwkvYmluL3VuYW1l IC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVwIGVudGl1bSA+L2Rldi9udWxsIFwKLSsJICAmJiB7 IGVjaG8gaTU4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfSA7OwotKyAgICAzWzM0XT8/ Oio6NC4wOiogfCAzWzM0XT8/LCo6Kjo0LjA6KikKLSsgICAgICAgIC9iaW4vdW5hbWUgLXAgMj4v ZGV2L251bGwgfCBncmVwIDg2ID4vZGV2L251bGwgXAotKyAgICAgICAgICAmJiB7IGVjaG8gaTQ4 Ni1uY3Itc3lzdjQ7IGV4aXQ7IH0gOzsKLSsgICAgTkNSKjoqOjQuMjoqIHwgTVBSQVMqOio6NC4y OiopCi0rCU9TX1JFTD0nLjMnCi0rCXRlc3QgLXIgL2V0Yy8ucmVsaWQgXAotKwkgICAgJiYgT1Nf UkVMPS5gc2VkIC1uICdzL1teIF0qIFteIF0qIFwoWzAtOV1bMC05XVwpLiovXDEvcCcgPCAvZXRj Ly5yZWxpZGAKLSsJL2Jpbi91bmFtZSAtcCAyPi9kZXYvbnVsbCB8IGdyZXAgODYgPi9kZXYvbnVs bCBcCi0rCSAgICAmJiB7IGVjaG8gaTQ4Ni1uY3Itc3lzdjQuMyR7T1NfUkVMfTsgZXhpdDsgfQot KwkvYmluL3VuYW1lIC1wIDI+L2Rldi9udWxsIHwgL2Jpbi9ncmVwIGVudGl1bSA+L2Rldi9udWxs IFwKLSsJICAgICYmIHsgZWNobyBpNTg2LW5jci1zeXN2NC4zJHtPU19SRUx9OyBleGl0OyB9Ci0r CS9iaW4vdW5hbWUgLXAgMj4vZGV2L251bGwgfCAvYmluL2dyZXAgcHRlcm9uID4vZGV2L251bGwg XAotKwkgICAgJiYgeyBlY2hvIGk1ODYtbmNyLXN5c3Y0LjMke09TX1JFTH07IGV4aXQ7IH0gOzsK LSsgICAgbTY4KjpMeW54T1M6Mi4qOiogfCBtNjgqOkx5bnhPUzozLjAqOiopCi0rCWVjaG8gbTY4 ay11bmtub3duLWx5bnhvcyR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBtYzY4MDMw OlVOSVhfU3lzdGVtX1Y6NC4qOiopCi0rCWVjaG8gbTY4ay1hdGFyaS1zeXN2NAotKwlleGl0IDs7 Ci0rICAgIFRTVU5BTUk6THlueE9TOjIuKjoqKQotKwllY2hvIHNwYXJjLXVua25vd24tbHlueG9z JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIHJzNjAwMDpMeW54T1M6Mi4qOiopCi0r CWVjaG8gcnM2MDAwLXVua25vd24tbHlueG9zJHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0r ICAgIFBvd2VyUEM6THlueE9TOjIuKjoqIHwgUG93ZXJQQzpMeW54T1M6My5bMDFdKjoqIHwgUG93 ZXJQQzpMeW54T1M6NC5bMDJdKjoqKQotKwllY2hvIHBvd2VycGMtdW5rbm93bi1seW54b3Mke1VO QU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgU01bQkVdUzpVTklYX1NWOio6KikKLSsJZWNo byBtaXBzLWRkZS1zeXN2JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFJNKjpSZWxp YW50VU5JWC0qOio6KikKLSsJZWNobyBtaXBzLXNuaS1zeXN2NAotKwlleGl0IDs7Ci0rICAgIFJN KjpTSU5JWC0qOio6KikKLSsJZWNobyBtaXBzLXNuaS1zeXN2NAotKwlleGl0IDs7Ci0rICAgICo6 U0lOSVgtKjoqOiopCi0rCWlmIHVuYW1lIC1wIDI+L2Rldi9udWxsID4vZGV2L251bGwgOyB0aGVu Ci0rCQlVTkFNRV9NQUNISU5FPWAodW5hbWUgLXApIDI+L2Rldi9udWxsYAotKwkJZWNobyAke1VO QU1FX01BQ0hJTkV9LXNuaS1zeXN2NAotKwllbHNlCi0rCQllY2hvIG5zMzJrLXNuaS1zeXN2Ci0r CWZpCi0rCWV4aXQgOzsKLSsgICAgUEVOVElVTToqOjQuMCo6KikgIyBVbmlzeXMgYENsZWFyUGF0 aCBITVAgSVggNDAwMCcgU1ZSNC9NUCBlZmZvcnQKLSsgICAgICAgICAgICAgICAgICAgICAgIyBz YXlzIDxSaWNoYXJkLk0uQmFydGVsQGNjTWFpbC5DZW5zdXMuR09WPgotKyAgICAgICAgZWNobyBp NTg2LXVuaXN5cy1zeXN2NAotKyAgICAgICAgZXhpdCA7OwotKyAgICAqOlVOSVhfU3lzdGVtX1Y6 NCo6RlRYKikKLSsJIyBGcm9tIEdlcmFsZCBIZXdlcyA8aGV3ZXNAb3Blbm1hcmtldC5jb20+Lgot KwkjIEhvdyBhYm91dCBkaWZmZXJlbnRpYXRpbmcgYmV0d2VlbiBzdHJhdHVzIGFyY2hpdGVjdHVy ZXM/IC1kam0KLSsJZWNobyBocHBhMS4xLXN0cmF0dXMtc3lzdjQKLSsJZXhpdCA7OwotKyAgICAq Oio6KjpGVFgqKQotKwkjIEZyb20gc2VhbmZAc3dkYy5zdHJhdHVzLmNvbS4KLSsJZWNobyBpODYw LXN0cmF0dXMtc3lzdjQKLSsJZXhpdCA7OwotKyAgICBpKjg2OlZPUzoqOiopCi0rCSMgRnJvbSBQ YXVsLkdyZWVuQHN0cmF0dXMuY29tLgotKwllY2hvICR7VU5BTUVfTUFDSElORX0tc3RyYXR1cy12 b3MKLSsJZXhpdCA7OwotKyAgICAqOlZPUzoqOiopCi0rCSMgRnJvbSBQYXVsLkdyZWVuQHN0cmF0 dXMuY29tLgotKwllY2hvIGhwcGExLjEtc3RyYXR1cy12b3MKLSsJZXhpdCA7OwotKyAgICBtYzY4 KjpBL1VYOio6KikKLSsJZWNobyBtNjhrLWFwcGxlLWF1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhp dCA7OwotKyAgICBuZXdzKjpORVdTLU9TOjYqOiopCi0rCWVjaG8gbWlwcy1zb255LW5ld3NvczYK LSsJZXhpdCA7OwotKyAgICBSWzM0XTAwMDoqU3lzdGVtX1YqOio6KiB8IFI0MDAwOlVOSVhfU1lT VjoqOiogfCBSKjAwMDpVTklYX1NWOio6KikKLSsJaWYgWyAtZCAvdXNyL25lYyBdOyB0aGVuCi0r CSAgICAgICAgZWNobyBtaXBzLW5lYy1zeXN2JHtVTkFNRV9SRUxFQVNFfQotKwllbHNlCi0rCSAg ICAgICAgZWNobyBtaXBzLXVua25vd24tc3lzdiR7VU5BTUVfUkVMRUFTRX0KLSsJZmkKLSsgICAg ICAgIGV4aXQgOzsKLSsgICAgQmVCb3g6QmVPUzoqOiopCSMgQmVPUyBydW5uaW5nIG9uIGhhcmR3 YXJlIG1hZGUgYnkgQmUsIFBQQyBvbmx5LgotKwllY2hvIHBvd2VycGMtYmUtYmVvcwotKwlleGl0 IDs7Ci0rICAgIEJlTWFjOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBNYWMgb3IgTWFjIGNs b25lLCBQUEMgb25seS4KLSsJZWNobyBwb3dlcnBjLWFwcGxlLWJlb3MKLSsJZXhpdCA7OwotKyAg ICBCZVBDOkJlT1M6KjoqKQkjIEJlT1MgcnVubmluZyBvbiBJbnRlbCBQQyBjb21wYXRpYmxlLgot KwllY2hvIGk1ODYtcGMtYmVvcwotKwlleGl0IDs7Ci0rICAgIEJlUEM6SGFpa3U6KjoqKQkjIEhh aWt1IHJ1bm5pbmcgb24gSW50ZWwgUEMgY29tcGF0aWJsZS4KLSsJZWNobyBpNTg2LXBjLWhhaWt1 Ci0rCWV4aXQgOzsKLSsgICAgU1gtNDpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g0LW5lYy1zdXBl cnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNYLTU6U1VQRVItVVg6KjoqKQot KwllY2hvIHN4NS1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBT WC02OlNVUEVSLVVYOio6KikKLSsJZWNobyBzeDYtbmVjLXN1cGVydXgke1VOQU1FX1JFTEVBU0V9 Ci0rCWV4aXQgOzsKLSsgICAgU1gtNzpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g3LW5lYy1zdXBl cnV4JHtVTkFNRV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgIFNYLTg6U1VQRVItVVg6KjoqKQot KwllY2hvIHN4OC1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICBT WC04UjpTVVBFUi1VWDoqOiopCi0rCWVjaG8gc3g4ci1uZWMtc3VwZXJ1eCR7VU5BTUVfUkVMRUFT RX0KLSsJZXhpdCA7OwotKyAgICBQb3dlcio6UmhhcHNvZHk6KjoqKQotKwllY2hvIHBvd2VycGMt YXBwbGUtcmhhcHNvZHkke1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgKjpSaGFwc29k eToqOiopCi0rCWVjaG8gJHtVTkFNRV9NQUNISU5FfS1hcHBsZS1yaGFwc29keSR7VU5BTUVfUkVM RUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOkRhcndpbjoqOiopCi0rCVVOQU1FX1BST0NFU1NPUj1g dW5hbWUgLXBgIHx8IFVOQU1FX1BST0NFU1NPUj11bmtub3duCi0rCWNhc2UgJFVOQU1FX1BST0NF U1NPUiBpbgotKwkgICAgaTM4NikKLSsJCWV2YWwgJHNldF9jY19mb3JfYnVpbGQKLSsJCWlmIFsg IiRDQ19GT1JfQlVJTEQiICE9ICdub19jb21waWxlcl9mb3VuZCcgXTsgdGhlbgotKwkJICBpZiAo ZWNobyAnI2lmZGVmIF9fTFA2NF9fJzsgZWNobyBJU182NEJJVF9BUkNIOyBlY2hvICcjZW5kaWYn KSB8IFwKLSsJCSAgICAgIChDQ09QVFM9ICRDQ19GT1JfQlVJTEQgLUUgLSAyPi9kZXYvbnVsbCkg fCBcCi0rCQkgICAgICBncmVwIElTXzY0QklUX0FSQ0ggPi9kZXYvbnVsbAotKwkJICB0aGVuCi0r CQkgICAgICBVTkFNRV9QUk9DRVNTT1I9Ing4Nl82NCIKLSsJCSAgZmkKLSsJCWZpIDs7Ci0rCSAg ICB1bmtub3duKSBVTkFNRV9QUk9DRVNTT1I9cG93ZXJwYyA7OwotKwllc2FjCi0rCWVjaG8gJHtV TkFNRV9QUk9DRVNTT1J9LWFwcGxlLWRhcndpbiR7VU5BTUVfUkVMRUFTRX0KLSsJZXhpdCA7Owot KyAgICAqOnByb2NudG8qOio6KiB8ICo6UU5YOlswMTIzNDU2Nzg5XSo6KikKLSsJVU5BTUVfUFJP Q0VTU09SPWB1bmFtZSAtcGAKLSsJaWYgdGVzdCAiJFVOQU1FX1BST0NFU1NPUiIgPSAieDg2Ijsg dGhlbgotKwkJVU5BTUVfUFJPQ0VTU09SPWkzODYKLSsJCVVOQU1FX01BQ0hJTkU9cGMKLSsJZmkK LSsJZWNobyAke1VOQU1FX1BST0NFU1NPUn0tJHtVTkFNRV9NQUNISU5FfS1udG8tcW54JHtVTkFN RV9SRUxFQVNFfQotKwlleGl0IDs7Ci0rICAgICo6UU5YOio6NCopCi0rCWVjaG8gaTM4Ni1wYy1x bngKLSsJZXhpdCA7OwotKyAgICBOU0UtPzpOT05TVE9QX0tFUk5FTDoqOiopCi0rCWVjaG8gbnNl LXRhbmRlbS1uc2ske1VOQU1FX1JFTEVBU0V9Ci0rCWV4aXQgOzsKLSsgICAgTlNSLT86Tk9OU1RP UF9LRVJORUw6KjoqKQotKwllY2hvIG5zci10YW5kZW0tbnNrJHtVTkFNRV9SRUxFQVNFfQotKwll eGl0IDs7Ci0rICAgICo6Tm9uU3RvcC1VWDoqOiopCi0rCWVjaG8gbWlwcy1jb21wYXEtbm9uc3Rv cHV4Ci0rCWV4aXQgOzsKLSsgICAgQlMyMDAwOlBPU0lYKjoqOiopCi0rCWVjaG8gYnMyMDAwLXNp ZW1lbnMtc3lzdgotKwlleGl0IDs7Ci0rICAgIERTLyo6VU5JWF9TeXN0ZW1fVjoqOiopCi0rCWVj aG8gJHtVTkFNRV9NQUNISU5FfS0ke1VOQU1FX1NZU1RFTX0tJHtVTkFNRV9SRUxFQVNFfQotKwll eGl0IDs7Ci0rICAgICo6UGxhbjk6KjoqKQotKwkjICJ1bmFtZSAtbSIgaXMgbm90IGNvbnNpc3Rl bnQsIHNvIHVzZSAkY3B1dHlwZSBpbnN0ZWFkLiAzODYKLSsJIyBpcyBjb252ZXJ0ZWQgdG8gaTM4 NiBmb3IgY29uc2lzdGVuY3kgd2l0aCBvdGhlciB4ODYKLSsJIyBvcGVyYXRpbmcgc3lzdGVtcy4K LSsJaWYgdGVzdCAiJGNwdXR5cGUiID0gIjM4NiI7IHRoZW4KLSsJICAgIFVOQU1FX01BQ0hJTkU9 aTM4NgotKwllbHNlCi0rCSAgICBVTkFNRV9NQUNISU5FPSIkY3B1dHlwZSIKLSsJZmkKLSsJZWNo byAke1VOQU1FX01BQ0hJTkV9LXVua25vd24tcGxhbjkKLSsJZXhpdCA7OwotKyAgICAqOlRPUFMt MTA6KjoqKQotKwllY2hvIHBkcDEwLXVua25vd24tdG9wczEwCi0rCWV4aXQgOzsKLSsgICAgKjpU RU5FWDoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93bi10ZW5leAotKwlleGl0IDs7Ci0rICAgIEtT MTA6VE9QUy0yMDoqOiogfCBLTDEwOlRPUFMtMjA6KjoqIHwgVFlQRTQ6VE9QUy0yMDoqOiopCi0r CWVjaG8gcGRwMTAtZGVjLXRvcHMyMAotKwlleGl0IDs7Ci0rICAgIFhLTC0xOlRPUFMtMjA6Kjoq IHwgVFlQRTU6VE9QUy0yMDoqOiopCi0rCWVjaG8gcGRwMTAteGtsLXRvcHMyMAotKwlleGl0IDs7 Ci0rICAgICo6VE9QUy0yMDoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93bi10b3BzMjAKLSsJZXhp dCA7OwotKyAgICAqOklUUzoqOiopCi0rCWVjaG8gcGRwMTAtdW5rbm93bi1pdHMKLSsJZXhpdCA7 OwotKyAgICBTRUk6KjoqOlNFSVVYKQotKyAgICAgICAgZWNobyBtaXBzLXNlaS1zZWl1eCR7VU5B TUVfUkVMRUFTRX0KLSsJZXhpdCA7OwotKyAgICAqOkRyYWdvbkZseToqOiopCi0rCWVjaG8gJHtV TkFNRV9NQUNISU5FfS11bmtub3duLWRyYWdvbmZseWBlY2hvICR7VU5BTUVfUkVMRUFTRX18c2Vk IC1lICdzL1stKF0uKi8vJ2AKLSsJZXhpdCA7OwotKyAgICAqOipWTVM6KjoqKQotKyAgICAJVU5B TUVfTUFDSElORT1gKHVuYW1lIC1wKSAyPi9kZXYvbnVsbGAKLSsJY2FzZSAiJHtVTkFNRV9NQUNI SU5FfSIgaW4KLSsJICAgIEEqKSBlY2hvIGFscGhhLWRlYy12bXMgOyBleGl0IDs7Ci0rCSAgICBJ KikgZWNobyBpYTY0LWRlYy12bXMgOyBleGl0IDs7Ci0rCSAgICBWKikgZWNobyB2YXgtZGVjLXZt cyA7IGV4aXQgOzsKLSsJZXNhYyA7OwotKyAgICAqOlhFTklYOio6U3lzVikKLSsJZWNobyBpMzg2 LXBjLXhlbml4Ci0rCWV4aXQgOzsKLSsgICAgaSo4Njpza3lvczoqOiopCi0rCWVjaG8gJHtVTkFN RV9NQUNISU5FfS1wYy1za3lvc2BlY2hvICR7VU5BTUVfUkVMRUFTRX1gIHwgc2VkIC1lICdzLyAu KiQvLycKLSsJZXhpdCA7OwotKyAgICBpKjg2OnJkb3M6KjoqKQotKwllY2hvICR7VU5BTUVfTUFD SElORX0tcGMtcmRvcwotKwlleGl0IDs7Ci0rICAgIGkqODY6QVJPUzoqOiopCi0rCWVjaG8gJHtV TkFNRV9NQUNISU5FfS1wYy1hcm9zCi0rCWV4aXQgOzsKLStlc2FjCi0rCi0rI2VjaG8gJyhObyB1 bmFtZSBjb21tYW5kIG9yIHVuYW1lIG91dHB1dCBub3QgcmVjb2duaXplZC4pJyAxPiYyCi0rI2Vj aG8gIiR7VU5BTUVfTUFDSElORX06JHtVTkFNRV9TWVNURU19OiR7VU5BTUVfUkVMRUFTRX06JHtV TkFNRV9WRVJTSU9OfSIgMT4mMgotKwotK2V2YWwgJHNldF9jY19mb3JfYnVpbGQKLStjYXQgPiRk dW1teS5jIDw8RU9GCi0rI2lmZGVmIF9TRVFVRU5UXwotKyMgaW5jbHVkZSA8c3lzL3R5cGVzLmg+ Ci0rIyBpbmNsdWRlIDxzeXMvdXRzbmFtZS5oPgotKyNlbmRpZgotK21haW4gKCkKLSt7Ci0rI2lm IGRlZmluZWQgKHNvbnkpCi0rI2lmIGRlZmluZWQgKE1JUFNFQikKLSsgIC8qIEJGRCB3YW50cyAi YnNkIiBpbnN0ZWFkIG9mICJuZXdzb3MiLiAgUGVyaGFwcyBCRkQgc2hvdWxkIGJlIGNoYW5nZWQs Ci0rICAgICBJIGRvbid0IGtub3cuLi4uICAqLwotKyAgcHJpbnRmICgibWlwcy1zb255LWJzZFxu Iik7IGV4aXQgKDApOwotKyNlbHNlCi0rI2luY2x1ZGUgPHN5cy9wYXJhbS5oPgotKyAgcHJpbnRm ICgibTY4ay1zb255LW5ld3NvcyVzXG4iLAotKyNpZmRlZiBORVdTT1M0Ci0rICAgICAgICAgICI0 IgotKyNlbHNlCi0rCSAgIiIKLSsjZW5kaWYKLSsgICAgICAgICApOyBleGl0ICgwKTsKLSsjZW5k aWYKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoX19hcm0pICYmIGRlZmluZWQgKF9fYWNvcm4p ICYmIGRlZmluZWQgKF9fdW5peCkKLSsgIHByaW50ZiAoImFybS1hY29ybi1yaXNjaXhcbiIpOyBl eGl0ICgwKTsKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoaHAzMDApICYmICFkZWZpbmVkICho cHV4KQotKyAgcHJpbnRmICgibTY4ay1ocC1ic2RcbiIpOyBleGl0ICgwKTsKLSsjZW5kaWYKLSsK LSsjaWYgZGVmaW5lZCAoTmVYVCkKLSsjaWYgIWRlZmluZWQgKF9fQVJDSElURUNUVVJFX18pCi0r I2RlZmluZSBfX0FSQ0hJVEVDVFVSRV9fICJtNjhrIgotKyNlbmRpZgotKyAgaW50IHZlcnNpb247 Ci0rICB2ZXJzaW9uPWAoaG9zdGluZm8gfCBzZWQgLW4gJ3MvLipOZVhUIE1hY2ggXChbMC05XSpc KS4qL1wxL3AnKSAyPi9kZXYvbnVsbGA7Ci0rICBpZiAodmVyc2lvbiA8IDQpCi0rICAgIHByaW50 ZiAoIiVzLW5leHQtbmV4dHN0ZXAlZFxuIiwgX19BUkNISVRFQ1RVUkVfXywgdmVyc2lvbik7Ci0r ICBlbHNlCi0rICAgIHByaW50ZiAoIiVzLW5leHQtb3BlbnN0ZXAlZFxuIiwgX19BUkNISVRFQ1RV UkVfXywgdmVyc2lvbik7Ci0rICBleGl0ICgwKTsKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAo TVVMVElNQVgpIHx8IGRlZmluZWQgKG4xNikKLSsjaWYgZGVmaW5lZCAoVU1BWFYpCi0rICBwcmlu dGYgKCJuczMyay1lbmNvcmUtc3lzdlxuIik7IGV4aXQgKDApOwotKyNlbHNlCi0rI2lmIGRlZmlu ZWQgKENNVSkKLSsgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1tYWNoXG4iKTsgZXhpdCAoMCk7Ci0r I2Vsc2UKLSsgIHByaW50ZiAoIm5zMzJrLWVuY29yZS1ic2RcbiIpOyBleGl0ICgwKTsKLSsjZW5k aWYKLSsjZW5kaWYKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoX18zODZCU0RfXykKLSsgIHBy aW50ZiAoImkzODYtcGMtYnNkXG4iKTsgZXhpdCAoMCk7Ci0rI2VuZGlmCi0rCi0rI2lmIGRlZmlu ZWQgKHNlcXVlbnQpCi0rI2lmIGRlZmluZWQgKGkzODYpCi0rICBwcmludGYgKCJpMzg2LXNlcXVl bnQtZHluaXhcbiIpOyBleGl0ICgwKTsKLSsjZW5kaWYKLSsjaWYgZGVmaW5lZCAobnMzMjAwMCkK LSsgIHByaW50ZiAoIm5zMzJrLXNlcXVlbnQtZHluaXhcbiIpOyBleGl0ICgwKTsKLSsjZW5kaWYK LSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAoX1NFUVVFTlRfKQotKyAgICBzdHJ1Y3QgdXRzbmFt ZSB1bjsKLSsKLSsgICAgdW5hbWUoJnVuKTsKLSsKLSsgICAgaWYgKHN0cm5jbXAodW4udmVyc2lv biwgIlYyIiwgMikgPT0gMCkgewotKwlwcmludGYgKCJpMzg2LXNlcXVlbnQtcHR4MlxuIik7IGV4 aXQgKDApOwotKyAgICB9Ci0rICAgIGlmIChzdHJuY21wKHVuLnZlcnNpb24sICJWMSIsIDIpID09 IDApIHsgLyogWFhYIGlzIFYxIGNvcnJlY3Q/ICovCi0rCXByaW50ZiAoImkzODYtc2VxdWVudC1w dHgxXG4iKTsgZXhpdCAoMCk7Ci0rICAgIH0KLSsgICAgcHJpbnRmICgiaTM4Ni1zZXF1ZW50LXB0 eFxuIik7IGV4aXQgKDApOwotKwotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVkICh2YXgpCi0rIyBp ZiAhZGVmaW5lZCAodWx0cml4KQotKyMgIGluY2x1ZGUgPHN5cy9wYXJhbS5oPgotKyMgIGlmIGRl ZmluZWQgKEJTRCkKLSsjICAgaWYgQlNEID09IDQzCi0rICAgICAgcHJpbnRmICgidmF4LWRlYy1i c2Q0LjNcbiIpOyBleGl0ICgwKTsKLSsjICAgZWxzZQotKyMgICAgaWYgQlNEID09IDE5OTAwNgot KyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkNC4zcmVub1xuIik7IGV4aXQgKDApOwotKyMgICAg ZWxzZQotKyAgICAgIHByaW50ZiAoInZheC1kZWMtYnNkXG4iKTsgZXhpdCAoMCk7Ci0rIyAgICBl bmRpZgotKyMgICBlbmRpZgotKyMgIGVsc2UKLSsgICAgcHJpbnRmICgidmF4LWRlYy1ic2RcbiIp OyBleGl0ICgwKTsKLSsjICBlbmRpZgotKyMgZWxzZQotKyAgICBwcmludGYgKCJ2YXgtZGVjLXVs dHJpeFxuIik7IGV4aXQgKDApOwotKyMgZW5kaWYKLSsjZW5kaWYKLSsKLSsjaWYgZGVmaW5lZCAo YWxsaWFudCkgJiYgZGVmaW5lZCAoaTg2MCkKLSsgIHByaW50ZiAoImk4NjAtYWxsaWFudC1ic2Rc biIpOyBleGl0ICgwKTsKLSsjZW5kaWYKLSsKLSsgIGV4aXQgKDEpOwotK30KLStFT0YKLSsKLSsk Q0NfRk9SX0JVSUxEIC1vICRkdW1teSAkZHVtbXkuYyAyPi9kZXYvbnVsbCAmJiBTWVNURU1fTkFN RT1gJGR1bW15YCAmJgotKwl7IGVjaG8gIiRTWVNURU1fTkFNRSI7IGV4aXQ7IH0KLSsKLSsjIEFw b2xsb3MgcHV0IHRoZSBzeXN0ZW0gdHlwZSBpbiB0aGUgZW52aXJvbm1lbnQuCi0rCi0rdGVzdCAt ZCAvdXNyL2Fwb2xsbyAmJiB7IGVjaG8gJHtJU1B9LWFwb2xsby0ke1NZU1RZUEV9OyBleGl0OyB9 Ci0rCi0rIyBDb252ZXggdmVyc2lvbnMgdGhhdCBwcmVkYXRlIHVuYW1lIGNhbiB1c2UgZ2V0c3lz aW5mbygxKQotKwotK2lmIFsgLXggL3Vzci9jb252ZXgvZ2V0c3lzaW5mbyBdCi0rdGhlbgotKyAg ICBjYXNlIGBnZXRzeXNpbmZvIC1mIGNwdV90eXBlYCBpbgotKyAgICBjMSopCi0rCWVjaG8gYzEt Y29udmV4LWJzZAotKwlleGl0IDs7Ci0rICAgIGMyKikKLSsJaWYgZ2V0c3lzaW5mbyAtZiBzY2Fs YXJfYWNjCi0rCXRoZW4gZWNobyBjMzItY29udmV4LWJzZAotKwllbHNlIGVjaG8gYzItY29udmV4 LWJzZAotKwlmaQotKwlleGl0IDs7Ci0rICAgIGMzNCopCi0rCWVjaG8gYzM0LWNvbnZleC1ic2QK LSsJZXhpdCA7OwotKyAgICBjMzgqKQotKwllY2hvIGMzOC1jb252ZXgtYnNkCi0rCWV4aXQgOzsK LSsgICAgYzQqKQotKwllY2hvIGM0LWNvbnZleC1ic2QKLSsJZXhpdCA7OwotKyAgICBlc2FjCi0r ZmkKLSsKLStjYXQgPiYyIDw8RU9GCi0rJDA6IHVuYWJsZSB0byBndWVzcyBzeXN0ZW0gdHlwZQot KwotK1RoaXMgc2NyaXB0LCBsYXN0IG1vZGlmaWVkICR0aW1lc3RhbXAsIGhhcyBmYWlsZWQgdG8g cmVjb2duaXplCi0rdGhlIG9wZXJhdGluZyBzeXN0ZW0geW91IGFyZSB1c2luZy4gSXQgaXMgYWR2 aXNlZCB0aGF0IHlvdQotK2Rvd25sb2FkIHRoZSBtb3N0IHVwIHRvIGRhdGUgdmVyc2lvbiBvZiB0 aGUgY29uZmlnIHNjcmlwdHMgZnJvbQotKwotKyAgaHR0cDovL2dpdC5zYXZhbm5haC5nbnUub3Jn L2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5ndWVzcztoYj1IRUFE Ci0rYW5kCi0rICBodHRwOi8vZ2l0LnNhdmFubmFoLmdudS5vcmcvZ2l0d2ViLz9wPWNvbmZpZy5n aXQ7YT1ibG9iX3BsYWluO2Y9Y29uZmlnLnN1YjtoYj1IRUFECi0rCi0rSWYgdGhlIHZlcnNpb24g eW91IHJ1biAoJDApIGlzIGFscmVhZHkgdXAgdG8gZGF0ZSwgcGxlYXNlCi0rc2VuZCB0aGUgZm9s bG93aW5nIGRhdGEgYW5kIGFueSBpbmZvcm1hdGlvbiB5b3UgdGhpbmsgbWlnaHQgYmUKLStwZXJ0 aW5lbnQgdG8gPGNvbmZpZy1wYXRjaGVzQGdudS5vcmc+IGluIG9yZGVyIHRvIHByb3ZpZGUgdGhl IG5lZWRlZAotK2luZm9ybWF0aW9uIHRvIGhhbmRsZSB5b3VyIHN5c3RlbS4KLSsKLStjb25maWcu Z3Vlc3MgdGltZXN0YW1wID0gJHRpbWVzdGFtcAotKwotK3VuYW1lIC1tID0gYCh1bmFtZSAtbSkg Mj4vZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC1yID0gYCh1bmFtZSAtcikgMj4v ZGV2L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC1zID0gYCh1bmFtZSAtcykgMj4vZGV2 L251bGwgfHwgZWNobyB1bmtub3duYAotK3VuYW1lIC12ID0gYCh1bmFtZSAtdikgMj4vZGV2L251 bGwgfHwgZWNobyB1bmtub3duYAotKwotKy91c3IvYmluL3VuYW1lIC1wID0gYCgvdXNyL2Jpbi91 bmFtZSAtcCkgMj4vZGV2L251bGxgCi0rL2Jpbi91bmFtZSAtWCAgICAgPSBgKC9iaW4vdW5hbWUg LVgpIDI+L2Rldi9udWxsYAotKwotK2hvc3RpbmZvICAgICAgICAgICAgICAgPSBgKGhvc3RpbmZv KSAyPi9kZXYvbnVsbGAKLSsvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZlcnNl KSAyPi9kZXYvbnVsbGAKLSsvdXNyL2Jpbi9hcmNoIC1rICAgICAgID0gYCgvdXNyL2Jpbi9hcmNo IC1rKSAyPi9kZXYvbnVsbGAKLSsvYmluL2FyY2ggICAgICAgICAgICAgID0gYCgvYmluL2FyY2gp IDI+L2Rldi9udWxsYAotKy91c3IvYmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2 ZWwpIDI+L2Rldi9udWxsYAotKy91c3IvY29udmV4L2dldHN5c2luZm8gPSBgKC91c3IvY29udmV4 L2dldHN5c2luZm8pIDI+L2Rldi9udWxsYAotKwotK1VOQU1FX01BQ0hJTkUgPSAke1VOQU1FX01B Q0hJTkV9Ci0rVU5BTUVfUkVMRUFTRSA9ICR7VU5BTUVfUkVMRUFTRX0KLStVTkFNRV9TWVNURU0g ID0gJHtVTkFNRV9TWVNURU19Ci0rVU5BTUVfVkVSU0lPTiA9ICR7VU5BTUVfVkVSU0lPTn0KLStF T0YKLSsKLStleGl0IDEKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsjIGV2YWw6IChhZGQtaG9v ayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJ0 aW1lc3RhbXA9JyIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZCIKLSsjIHRp bWUtc3RhbXAtZW5kOiAiJyIKLSsjIEVuZDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9j b25maWcvY29uZmlnLnN1YiBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2NvbmZpZy5zdWIKLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvY29uZmlnLnN1YgkxOTcwLTAxLTAxIDAxOjAwOjAw LjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvY29uZmlnLnN1 YgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwxNzA1IEBA Ci0rIyEgL2Jpbi9zaAotKyMgQ29uZmlndXJhdGlvbiB2YWxpZGF0aW9uIHN1YnJvdXRpbmUgc2Ny aXB0LgotKyMgICBDb3B5cmlnaHQgKEMpIDE5OTIsIDE5OTMsIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksCi0rIyAgIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUs IDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkKLSsjICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rCi0rdGltZXN0YW1wPScyMDA5LTExLTIwJwotKwotKyMgVGhpcyBmaWxlIGlzIChpbiBw cmluY2lwbGUpIGNvbW1vbiB0byBBTEwgR05VIHNvZnR3YXJlLgotKyMgVGhlIHByZXNlbmNlIG9m IGEgbWFjaGluZSBpbiB0aGlzIGZpbGUgc3VnZ2VzdHMgdGhhdCBTT01FIEdOVSBzb2Z0d2FyZQot KyMgY2FuIGhhbmRsZSB0aGF0IG1hY2hpbmUuICBJdCBkb2VzIG5vdCBpbXBseSBBTEwgR05VIHNv ZnR3YXJlIGNhbi4KLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy ZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVl IFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y Ci0rIyAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotKyMKLSsjIFRoaXMgcHJv Z3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAot KyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3Jl IGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBp ZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCi0rIyBGb3VuZGF0aW9uLCBJbmMuLCA1 MSBGcmFua2xpbiBTdHJlZXQgLSBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQQotKyMgMDIxMTAtMTMw MSwgVVNBLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQg b2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotKyMgY29uZmlndXJhdGlvbiBzY3JpcHQgZ2Vu ZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIKLSsjIHRoZSBzYW1l IGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJv Z3JhbS4KLSsKLSsKLSsjIFBsZWFzZSBzZW5kIHBhdGNoZXMgdG8gPGNvbmZpZy1wYXRjaGVzQGdu dS5vcmc+LiAgU3VibWl0IGEgY29udGV4dAotKyMgZGlmZiBhbmQgYSBwcm9wZXJseSBmb3JtYXR0 ZWQgR05VIENoYW5nZUxvZyBlbnRyeS4KLSsjCi0rIyBDb25maWd1cmF0aW9uIHN1YnJvdXRpbmUg dG8gdmFsaWRhdGUgYW5kIGNhbm9uaWNhbGl6ZSBhIGNvbmZpZ3VyYXRpb24gdHlwZS4KLSsjIFN1 cHBseSB0aGUgc3BlY2lmaWVkIGNvbmZpZ3VyYXRpb24gdHlwZSBhcyBhbiBhcmd1bWVudC4KLSsj IElmIGl0IGlzIGludmFsaWQsIHdlIHByaW50IGFuIGVycm9yIG1lc3NhZ2Ugb24gc3RkZXJyIGFu ZCBleGl0IHdpdGggY29kZSAxLgotKyMgT3RoZXJ3aXNlLCB3ZSBwcmludCB0aGUgY2Fub25pY2Fs IGNvbmZpZyB0eXBlIG9uIHN0ZG91dCBhbmQgc3VjY2VlZC4KLSsKLSsjIFlvdSBjYW4gZ2V0IHRo ZSBsYXRlc3QgdmVyc2lvbiBvZiB0aGlzIHNjcmlwdCBmcm9tOgotKyMgaHR0cDovL2dpdC5zYXZh bm5haC5nbnUub3JnL2dpdHdlYi8/cD1jb25maWcuZ2l0O2E9YmxvYl9wbGFpbjtmPWNvbmZpZy5z dWI7aGI9SEVBRAotKwotKyMgVGhpcyBmaWxlIGlzIHN1cHBvc2VkIHRvIGJlIHRoZSBzYW1lIGZv ciBhbGwgR05VIHBhY2thZ2VzCi0rIyBhbmQgcmVjb2duaXplIGFsbCB0aGUgQ1BVIHR5cGVzLCBz eXN0ZW0gdHlwZXMgYW5kIGFsaWFzZXMKLSsjIHRoYXQgYXJlIG1lYW5pbmdmdWwgd2l0aCAqYW55 KiBHTlUgc29mdHdhcmUuCi0rIyBFYWNoIHBhY2thZ2UgaXMgcmVzcG9uc2libGUgZm9yIHJlcG9y dGluZyB3aGljaCB2YWxpZCBjb25maWd1cmF0aW9ucwotKyMgaXQgZG9lcyBub3Qgc3VwcG9ydC4g IFRoZSB1c2VyIHNob3VsZCBiZSBhYmxlIHRvIGRpc3Rpbmd1aXNoCi0rIyBhIGZhaWx1cmUgdG8g c3VwcG9ydCBhIHZhbGlkIGNvbmZpZ3VyYXRpb24gZnJvbSBhIG1lYW5pbmdsZXNzCi0rIyBjb25m aWd1cmF0aW9uLgotKwotKyMgVGhlIGdvYWwgb2YgdGhpcyBmaWxlIGlzIHRvIG1hcCBhbGwgdGhl IHZhcmlvdXMgdmFyaWF0aW9ucyBvZiBhIGdpdmVuCi0rIyBtYWNoaW5lIHNwZWNpZmljYXRpb24g aW50byBhIHNpbmdsZSBzcGVjaWZpY2F0aW9uIGluIHRoZSBmb3JtOgotKyMJQ1BVX1RZUEUtTUFO VUZBQ1RVUkVSLU9QRVJBVElOR19TWVNURU0KLSsjIG9yIGluIHNvbWUgY2FzZXMsIHRoZSBuZXdl ciBmb3VyLXBhcnQgZm9ybToKLSsjCUNQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwtT1BFUkFU SU5HX1NZU1RFTQotKyMgSXQgaXMgd3JvbmcgdG8gZWNobyBhbnkgb3RoZXIgdHlwZSBvZiBzcGVj aWZpY2F0aW9uLgotKwotK21lPWBlY2hvICIkMCIgfCBzZWQgLWUgJ3MsLiovLCwnYAotKwotK3Vz YWdlPSJcCi0rVXNhZ2U6ICQwIFtPUFRJT05dIENQVS1NRlItT1BTWVMKLSsgICAgICAgJDAgW09Q VElPTl0gQUxJQVMKLSsKLStDYW5vbmljYWxpemUgYSBjb25maWd1cmF0aW9uIG5hbWUuCi0rCi0r T3BlcmF0aW9uIG1vZGVzOgotKyAgLWgsIC0taGVscCAgICAgICAgIHByaW50IHRoaXMgaGVscCwg dGhlbiBleGl0Ci0rICAtdCwgLS10aW1lLXN0YW1wICAgcHJpbnQgZGF0ZSBvZiBsYXN0IG1vZGlm aWNhdGlvbiwgdGhlbiBleGl0Ci0rICAtdiwgLS12ZXJzaW9uICAgICAgcHJpbnQgdmVyc2lvbiBu dW1iZXIsIHRoZW4gZXhpdAotKwotK1JlcG9ydCBidWdzIGFuZCBwYXRjaGVzIHRvIDxjb25maWct cGF0Y2hlc0BnbnUub3JnPi4iCi0rCi0rdmVyc2lvbj0iXAotK0dOVSBjb25maWcuc3ViICgkdGlt ZXN0YW1wKQotKwotK0NvcHlyaWdodCAoQykgMTk5MiwgMTk5MywgMTk5NCwgMTk5NSwgMTk5Niwg MTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwKLSsyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKwotK1RoaXMg aXMgZnJlZSBzb2Z0d2FyZTsgc2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4g IFRoZXJlIGlzIE5PCi0rd2FycmFudHk7IG5vdCBldmVuIGZvciBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIgotKwotK2hlbHA9IgotK1RyeSBcYCRt ZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIKLSsKLSsjIFBhcnNlIGNvbW1hbmQgbGlu ZQotK3doaWxlIHRlc3QgJCMgLWd0IDAgOyBkbwotKyAgY2FzZSAkMSBpbgotKyAgICAtLXRpbWUt c3RhbXAgfCAtLXRpbWUqIHwgLXQgKQotKyAgICAgICBlY2hvICIkdGltZXN0YW1wIiA7IGV4aXQg OzsKLSsgICAgLS12ZXJzaW9uIHwgLXYgKQotKyAgICAgICBlY2hvICIkdmVyc2lvbiIgOyBleGl0 IDs7Ci0rICAgIC0taGVscCB8IC0taCogfCAtaCApCi0rICAgICAgIGVjaG8gIiR1c2FnZSI7IGV4 aXQgOzsKLSsgICAgLS0gKSAgICAgIyBTdG9wIG9wdGlvbiBwcm9jZXNzaW5nCi0rICAgICAgIHNo aWZ0OyBicmVhayA7OwotKyAgICAtICkJIyBVc2Ugc3RkaW4gYXMgaW5wdXQuCi0rICAgICAgIGJy ZWFrIDs7Ci0rICAgIC0qICkKLSsgICAgICAgZWNobyAiJG1lOiBpbnZhbGlkIG9wdGlvbiAkMSRo ZWxwIgotKyAgICAgICBleGl0IDEgOzsKLSsKLSsgICAgKmxvY2FsKikKLSsgICAgICAgIyBGaXJz dCBwYXNzIHRocm91Z2ggYW55IGxvY2FsIG1hY2hpbmUgdHlwZXMuCi0rICAgICAgIGVjaG8gJDEK LSsgICAgICAgZXhpdCA7OwotKwotKyAgICAqICkKLSsgICAgICAgYnJlYWsgOzsKLSsgIGVzYWMK LStkb25lCi0rCi0rY2FzZSAkIyBpbgotKyAwKSBlY2hvICIkbWU6IG1pc3NpbmcgYXJndW1lbnQk aGVscCIgPiYyCi0rICAgIGV4aXQgMTs7Ci0rIDEpIDs7Ci0rICopIGVjaG8gIiRtZTogdG9vIG1h bnkgYXJndW1lbnRzJGhlbHAiID4mMgotKyAgICBleGl0IDE7OwotK2VzYWMKLSsKLSsjIFNlcGFy YXRlIHdoYXQgdGhlIHVzZXIgZ2F2ZSBpbnRvIENQVS1DT01QQU5ZIGFuZCBPUyBvciBLRVJORUwt T1MgKGlmIGFueSkuCi0rIyBIZXJlIHdlIG11c3QgcmVjb2duaXplIGFsbCB0aGUgdmFsaWQgS0VS TkVMLU9TIGNvbWJpbmF0aW9ucy4KLSttYXliZV9vcz1gZWNobyAkMSB8IHNlZCAncy9eXCguKlwp LVwoW14tXSotW14tXSpcKSQvXDIvJ2AKLStjYXNlICRtYXliZV9vcyBpbgotKyAgbnRvLXFueCog fCBsaW51eC1nbnUqIHwgbGludXgtZGlldGxpYmMgfCBsaW51eC1uZXdsaWIqIHwgbGludXgtdWNs aWJjKiB8IFwKLSsgIHVjbGludXgtdWNsaWJjKiB8IHVjbGludXgtZ251KiB8IGtmcmVlYnNkKi1n bnUqIHwga25ldGJzZCotZ251KiB8IG5ldGJzZCotZ251KiB8IFwKLSsgIGtvcGVuc29sYXJpcyot Z251KiB8IFwKLSsgIHN0b3JtLWNoYW9zKiB8IG9zMi1lbXgqIHwgcnRtay1ub3ZhKikKLSsgICAg b3M9LSRtYXliZV9vcwotKyAgICBiYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkICdzL15cKC4q XCktXChbXi1dKi1bXi1dKlwpJC9cMS8nYAotKyAgICA7OwotKyAgKikKLSsgICAgYmFzaWNfbWFj aGluZT1gZWNobyAkMSB8IHNlZCAncy8tW14tXSokLy8nYAotKyAgICBpZiBbICRiYXNpY19tYWNo aW5lICE9ICQxIF0KLSsgICAgdGhlbiBvcz1gZWNobyAkMSB8IHNlZCAncy8uKi0vLS8nYAotKyAg ICBlbHNlIG9zPTsgZmkKLSsgICAgOzsKLStlc2FjCi0rCi0rIyMjIExldCdzIHJlY29nbml6ZSBj b21tb24gbWFjaGluZXMgYXMgbm90IGJlaW5nIG9wZXJhdGluZyBzeXN0ZW1zIHNvCi0rIyMjIHRo YXQgdGhpbmdzIGxpa2UgY29uZmlnLnN1YiBkZWNzdGF0aW9uLTMxMDAgd29yay4gIFdlIGFsc28K LSsjIyMgcmVjb2duaXplIHNvbWUgbWFudWZhY3R1cmVycyBhcyBub3QgYmVpbmcgb3BlcmF0aW5n IHN5c3RlbXMsIHNvIHdlCi0rIyMjIGNhbiBwcm92aWRlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3Rl bXMgYmVsb3cuCi0rY2FzZSAkb3MgaW4KLSsJLXN1bipvcyopCi0rCQkjIFByZXZlbnQgZm9sbG93 aW5nIGNsYXVzZSBmcm9tIGhhbmRsaW5nIHRoaXMgaW52YWxpZCBpbnB1dC4KLSsJCTs7Ci0rCS1k ZWMqIHwgLW1pcHMqIHwgLXNlcXVlbnQqIHwgLWVuY29yZSogfCAtcGM1MzIqIHwgLXNnaSogfCAt c29ueSogfCBcCi0rCS1hdHQqIHwgLTczMDAqIHwgLTMzMDAqIHwgLWRlbHRhKiB8IC1tb3Rvcm9s YSogfCAtc3VuWzIzNF0qIHwgXAotKwktdW5pY29tKiB8IC1pYm0qIHwgLW5leHQgfCAtaHAgfCAt aXNpKiB8IC1hcG9sbG8gfCAtYWx0b3MqIHwgXAotKwktY29udmVyZ2VudCogfCAtbmNyKiB8IC1u ZXdzIHwgLTMyKiB8IC0zNjAwKiB8IC0zMTAwKiB8IC1oaXRhY2hpKiB8XAotKwktY1sxMjNdKiB8 IC1jb252ZXgqIHwgLXN1biB8IC1jcmRzIHwgLW9tcm9uKiB8IC1kZyB8IC11bHRyYSB8IC10dGkq IHwgXAotKwktaGFycmlzIHwgLWRvbHBoaW4gfCAtaGlnaGxldmVsIHwgLWdvdWxkIHwgLWNibSB8 IC1ucyB8IC1tYXNzY29tcCB8IFwKLSsJLWFwcGxlIHwgLWF4aXMgfCAta251dGggfCAtY3JheSB8 IC1taWNyb2JsYXplKQotKwkJb3M9Ci0rCQliYXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKyAgICAg ICAgLWJsdWVnZW5lKikKLSsJICAgICAgICBvcz0tY25rCi0rCQk7OwotKwktc2ltIHwgLWNpc2Nv IHwgLW9raSB8IC13ZWMgfCAtd2luYm9uZCkKLSsJCW9zPQotKwkJYmFzaWNfbWFjaGluZT0kMQot KwkJOzsKLSsJLXNjb3V0KQotKwkJOzsKLSsJLXdycykKLSsJCW9zPS12eHdvcmtzCi0rCQliYXNp Y19tYWNoaW5lPSQxCi0rCQk7OwotKwktY2hvcnVzb3MqKQotKwkJb3M9LWNob3J1c29zCi0rCQli YXNpY19tYWNoaW5lPSQxCi0rCQk7OwotKyAJLWNob3J1c3JkYikKLSsgCQlvcz0tY2hvcnVzcmRi Ci0rCQliYXNpY19tYWNoaW5lPSQxCi0rIAkJOzsKLSsJLWhpdXgqKQotKwkJb3M9LWhpdXh3ZTIK LSsJCTs7Ci0rCS1zY282KQotKwkJb3M9LXNjbzV2NgotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAk MSB8IHNlZCAtZSAncy84Ni0uKi84Ni1wYy8nYAotKwkJOzsKLSsJLXNjbzUpCi0rCQlvcz0tc2Nv My4ydjUKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMv J2AKLSsJCTs7Ci0rCS1zY280KQotKwkJb3M9LXNjbzMuMnY0Ci0rCQliYXNpY19tYWNoaW5lPWBl Y2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotKwktc2NvMy4yLls0LTld KikKLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAtZSAncy9zY28zLjIuL3NjbzMuMnYvJ2AKLSsJCWJh c2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0r CS1zY28zLjJ2WzQtOV0qKQotKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBpZiBpdCBpcyAzLjJ2 NCBvciBuZXdlci4KLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiov ODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY281djYqKQotKwkJIyBEb24ndCBmb3JnZXQgdmVyc2lvbiBp ZiBpdCBpcyAzLjJ2NCBvciBuZXdlci4KLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQg LWUgJ3MvODYtLiovODYtcGMvJ2AKLSsJCTs7Ci0rCS1zY28qKQotKwkJb3M9LXNjbzMuMnYyCi0r CQliYXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7 OwotKwktdWRrKikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiov ODYtcGMvJ2AKLSsJCTs7Ci0rCS1pc2MpCi0rCQlvcz0taXNjMi4yCi0rCQliYXNpY19tYWNoaW5l PWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7OwotKwktY2xpeCopCi0r CQliYXNpY19tYWNoaW5lPWNsaXBwZXItaW50ZXJncmFwaAotKwkJOzsKLSsJLWlzYyopCi0rCQli YXNpY19tYWNoaW5lPWBlY2hvICQxIHwgc2VkIC1lICdzLzg2LS4qLzg2LXBjLydgCi0rCQk7Owot KwktbHlueCopCi0rCQlvcz0tbHlueG9zCi0rCQk7OwotKwktcHR4KikKLSsJCWJhc2ljX21hY2hp bmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYtLiovODYtc2VxdWVudC8nYAotKwkJOzsKLSsJLXdp bmRvd3NudCopCi0rCQlvcz1gZWNobyAkb3MgfCBzZWQgLWUgJ3Mvd2luZG93c250L3dpbm50Lydg Ci0rCQk7OwotKwktcHNvcyopCi0rCQlvcz0tcHNvcwotKwkJOzsKLSsJLW1pbnQgfCAtbWludFsw LTldKikKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hdGFyaQotKwkJb3M9LW1pbnQKLSsJCTs7Ci0r ZXNhYwotKwotKyMgRGVjb2RlIGFsaWFzZXMgZm9yIGNlcnRhaW4gQ1BVLUNPTVBBTlkgY29tYmlu YXRpb25zLgotK2Nhc2UgJGJhc2ljX21hY2hpbmUgaW4KLSsJIyBSZWNvZ25pemUgdGhlIGJhc2lj IENQVSB0eXBlcyB3aXRob3V0IGNvbXBhbnkgbmFtZS4KLSsJIyBTb21lIGFyZSBvbWl0dGVkIGhl cmUgYmVjYXVzZSB0aGV5IGhhdmUgc3BlY2lhbCBtZWFuaW5ncyBiZWxvdy4KLSsJMTc1MGEgfCA1 ODAgXAotKwl8IGEyOWsgXAotKwl8IGFscGhhIHwgYWxwaGFldls0LThdIHwgYWxwaGFldjU2IHwg YWxwaGFldjZbNzhdIHwgYWxwaGFwY2E1WzY3XSBcCi0rCXwgYWxwaGE2NCB8IGFscGhhNjRldls0 LThdIHwgYWxwaGE2NGV2NTYgfCBhbHBoYTY0ZXY2Wzc4XSB8IGFscGhhNjRwY2E1WzY3XSBcCi0r CXwgYW0zM18yLjAgXAotKwl8IGFyYyB8IGFybSB8IGFybVtibF1lIHwgYXJtZVtsYl0gfCBhcm12 WzIzNDVdIHwgYXJtdlszNDVdW2xiXSB8IGF2ciB8IGF2cjMyIFwKLSsJfCBiZmluIFwKLSsJfCBj NHggfCBjbGlwcGVyIFwKLSsJfCBkMTB2IHwgZDMwdiB8IGRseCB8IGRzcDE2eHggXAotKwl8IGZp ZG8gfCBmcjMwIHwgZnJ2IFwKLSsJfCBoODMwMCB8IGg4NTAwIHwgaHBwYSB8IGhwcGExLlswMV0g fCBocHBhMi4wIHwgaHBwYTIuMFtud10gfCBocHBhNjQgXAotKwl8IGkzNzAgfCBpODYwIHwgaTk2 MCB8IGlhNjQgXAotKwl8IGlwMmsgfCBpcTIwMDAgXAotKwl8IGxtMzIgXAotKwl8IG0zMmMgfCBt MzJyIHwgbTMycmxlIHwgbTY4MDAwIHwgbTY4ayB8IG04OGsgXAotKwl8IG1heHEgfCBtYiB8IG1p Y3JvYmxhemUgfCBtY29yZSB8IG1lcCB8IG1ldGFnIFwKLSsJfCBtaXBzIHwgbWlwc2JlIHwgbWlw c2ViIHwgbWlwc2VsIHwgbWlwc2xlIFwKLSsJfCBtaXBzMTYgXAotKwl8IG1pcHM2NCB8IG1pcHM2 NGVsIFwKLSsJfCBtaXBzNjRvY3Rlb24gfCBtaXBzNjRvY3Rlb25lbCBcCi0rCXwgbWlwczY0b3Jp b24gfCBtaXBzNjRvcmlvbmVsIFwKLSsJfCBtaXBzNjRyNTkwMCB8IG1pcHM2NHI1OTAwZWwgXAot Kwl8IG1pcHM2NHZyIHwgbWlwczY0dnJlbCBcCi0rCXwgbWlwczY0dnI0MTAwIHwgbWlwczY0dnI0 MTAwZWwgXAotKwl8IG1pcHM2NHZyNDMwMCB8IG1pcHM2NHZyNDMwMGVsIFwKLSsJfCBtaXBzNjR2 cjUwMDAgfCBtaXBzNjR2cjUwMDBlbCBcCi0rCXwgbWlwczY0dnI1OTAwIHwgbWlwczY0dnI1OTAw ZWwgXAotKwl8IG1pcHNpc2EzMiB8IG1pcHNpc2EzMmVsIFwKLSsJfCBtaXBzaXNhMzJyMiB8IG1p cHNpc2EzMnIyZWwgXAotKwl8IG1pcHNpc2E2NCB8IG1pcHNpc2E2NGVsIFwKLSsJfCBtaXBzaXNh NjRyMiB8IG1pcHNpc2E2NHIyZWwgXAotKwl8IG1pcHNpc2E2NHNiMSB8IG1pcHNpc2E2NHNiMWVs IFwKLSsJfCBtaXBzaXNhNjRzcjcxayB8IG1pcHNpc2E2NHNyNzFrZWwgXAotKwl8IG1pcHN0eDM5 IHwgbWlwc3R4MzllbCBcCi0rCXwgbW4xMDIwMCB8IG1uMTAzMDAgXAotKwl8IG1veGllIFwKLSsJ fCBtdCBcCi0rCXwgbXNwNDMwIFwKLSsJfCBuaW9zIHwgbmlvczIgXAotKwl8IG5zMTZrIHwgbnMz MmsgXAotKwl8IG9yMzIgXAotKwl8IHBkcDEwIHwgcGRwMTEgfCBwaiB8IHBqbCBcCi0rCXwgcG93 ZXJwYyB8IHBvd2VycGM2NCB8IHBvd2VycGM2NGxlIHwgcG93ZXJwY2xlIHwgcHBjYmUgXAotKwl8 IHB5cmFtaWQgXAotKwl8IHJ4IFwKLSsJfCBzY29yZSBcCi0rCXwgc2ggfCBzaFsxMjM0XSB8IHNo WzI0XWEgfCBzaFsyNF1hZWIgfCBzaFsyM11lIHwgc2hbMzRdZWIgfCBzaGViIHwgc2hiZSB8IHNo bGUgfCBzaFsxMjM0XWxlIHwgc2gzZWxlIFwKLSsJfCBzaDY0IHwgc2g2NGxlIFwKLSsJfCBzcGFy YyB8IHNwYXJjNjQgfCBzcGFyYzY0YiB8IHNwYXJjNjR2IHwgc3BhcmM4NnggfCBzcGFyY2xldCB8 IHNwYXJjbGl0ZSBcCi0rCXwgc3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YiB8IHNwYXJjdjl2 IFwKLSsJfCBzcHUgfCBzdHJvbmdhcm0gXAotKwl8IHRhaG9lIHwgdGh1bWIgfCB0aWM0eCB8IHRp YzgwIHwgdHJvbiBcCi0rCXwgdWJpY29tMzIgXAotKwl8IHY4NTAgfCB2ODUwZSBcCi0rCXwgd2Uz MmsgXAotKwl8IHg4NiB8IHhjMTZ4IHwgeHNjYWxlIHwgeHNjYWxlZVtibF0gfCB4c3Rvcm15MTYg fCB4dGVuc2EgXAotKwl8IHo4ayB8IHo4MCkKLSsJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hp bmUtdW5rbm93bgotKwkJOzsKLSsJbTY4MTEgfCBtNjhoYzExIHwgbTY4MTIgfCBtNjhoYzEyIHwg cGljb2NoaXApCi0rCQkjIE1vdG9yb2xhIDY4SEMxMS8xMi4KLSsJCWJhc2ljX21hY2hpbmU9JGJh c2ljX21hY2hpbmUtdW5rbm93bgotKwkJb3M9LW5vbmUKLSsJCTs7Ci0rCW04ODExMCB8IG02ODBb MTIzNDZdMCB8IG02ODM/MiB8IG02ODM2MCB8IG01MjAwIHwgdjcwIHwgdzY1IHwgejhrKQotKwkJ OzsKLSsJbXMxKQotKwkJYmFzaWNfbWFjaGluZT1tdC11bmtub3duCi0rCQk7OwotKwotKwkjIFdl IHVzZSBgcGMnIHJhdGhlciB0aGFuIGB1bmtub3duJwotKwkjIGJlY2F1c2UgKDEpIHRoYXQncyB3 aGF0IHRoZXkgbm9ybWFsbHkgYXJlLCBhbmQKLSsJIyAoMikgdGhlIHdvcmQgInVua25vd24iIHRl bmRzIHRvIGNvbmZ1c2UgYmVnaW5uaW5nIHVzZXJzLgotKwlpKjg2IHwgeDg2XzY0KQotKwkgIGJh c2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtcGMKLSsJICA7OwotKwkjIE9iamVjdCBpZiBtb3Jl IHRoYW4gb25lIGNvbXBhbnkgbmFtZSB3b3JkLgotKwkqLSotKikKLSsJCWVjaG8gSW52YWxpZCBj b25maWd1cmF0aW9uIFxgJDFcJzogbWFjaGluZSBcYCRiYXNpY19tYWNoaW5lXCcgbm90IHJlY29n bml6ZWQgMT4mMgotKwkJZXhpdCAxCi0rCQk7OwotKwkjIFJlY29nbml6ZSB0aGUgYmFzaWMgQ1BV IHR5cGVzIHdpdGggY29tcGFueSBuYW1lLgotKwk1ODAtKiBcCi0rCXwgYTI5ay0qIFwKLSsJfCBh bHBoYS0qIHwgYWxwaGFldls0LThdLSogfCBhbHBoYWV2NTYtKiB8IGFscGhhZXY2Wzc4XS0qIFwK LSsJfCBhbHBoYTY0LSogfCBhbHBoYTY0ZXZbNC04XS0qIHwgYWxwaGE2NGV2NTYtKiB8IGFscGhh NjRldjZbNzhdLSogXAotKwl8IGFscGhhcGNhNVs2N10tKiB8IGFscGhhNjRwY2E1WzY3XS0qIHwg YXJjLSogXAotKwl8IGFybS0qICB8IGFybWJlLSogfCBhcm1sZS0qIHwgYXJtZWItKiB8IGFybXYq LSogXAotKwl8IGF2ci0qIHwgYXZyMzItKiBcCi0rCXwgYmZpbi0qIHwgYnMyMDAwLSogXAotKwl8 IGNbMTIzXSogfCBjMzAtKiB8IFtjanRdOTAtKiB8IGM0eC0qIHwgYzU0eC0qIHwgYzU1eC0qIHwg YzZ4LSogXAotKwl8IGNsaXBwZXItKiB8IGNyYXludi0qIHwgY3lkcmEtKiBcCi0rCXwgZDEwdi0q IHwgZDMwdi0qIHwgZGx4LSogXAotKwl8IGVseHNpLSogXAotKwl8IGYzMFswMV0tKiB8IGY3MDAt KiB8IGZpZG8tKiB8IGZyMzAtKiB8IGZydi0qIHwgZng4MC0qIFwKLSsJfCBoODMwMC0qIHwgaDg1 MDAtKiBcCi0rCXwgaHBwYS0qIHwgaHBwYTEuWzAxXS0qIHwgaHBwYTIuMC0qIHwgaHBwYTIuMFtu d10tKiB8IGhwcGE2NC0qIFwKLSsJfCBpKjg2LSogfCBpODYwLSogfCBpOTYwLSogfCBpYTY0LSog XAotKwl8IGlwMmstKiB8IGlxMjAwMC0qIFwKLSsJfCBsbTMyLSogXAotKwl8IG0zMmMtKiB8IG0z MnItKiB8IG0zMnJsZS0qIFwKLSsJfCBtNjgwMDAtKiB8IG02ODBbMDEyMzQ2XTAtKiB8IG02ODM2 MC0qIHwgbTY4Mz8yLSogfCBtNjhrLSogXAotKwl8IG04ODExMC0qIHwgbTg4ay0qIHwgbWF4cS0q IHwgbWNvcmUtKiB8IG1ldGFnLSogfCBtaWNyb2JsYXplLSogXAotKwl8IG1pcHMtKiB8IG1pcHNi ZS0qIHwgbWlwc2ViLSogfCBtaXBzZWwtKiB8IG1pcHNsZS0qIFwKLSsJfCBtaXBzMTYtKiBcCi0r CXwgbWlwczY0LSogfCBtaXBzNjRlbC0qIFwKLSsJfCBtaXBzNjRvY3Rlb24tKiB8IG1pcHM2NG9j dGVvbmVsLSogXAotKwl8IG1pcHM2NG9yaW9uLSogfCBtaXBzNjRvcmlvbmVsLSogXAotKwl8IG1p cHM2NHI1OTAwLSogfCBtaXBzNjRyNTkwMGVsLSogXAotKwl8IG1pcHM2NHZyLSogfCBtaXBzNjR2 cmVsLSogXAotKwl8IG1pcHM2NHZyNDEwMC0qIHwgbWlwczY0dnI0MTAwZWwtKiBcCi0rCXwgbWlw czY0dnI0MzAwLSogfCBtaXBzNjR2cjQzMDBlbC0qIFwKLSsJfCBtaXBzNjR2cjUwMDAtKiB8IG1p cHM2NHZyNTAwMGVsLSogXAotKwl8IG1pcHM2NHZyNTkwMC0qIHwgbWlwczY0dnI1OTAwZWwtKiBc Ci0rCXwgbWlwc2lzYTMyLSogfCBtaXBzaXNhMzJlbC0qIFwKLSsJfCBtaXBzaXNhMzJyMi0qIHwg bWlwc2lzYTMycjJlbC0qIFwKLSsJfCBtaXBzaXNhNjQtKiB8IG1pcHNpc2E2NGVsLSogXAotKwl8 IG1pcHNpc2E2NHIyLSogfCBtaXBzaXNhNjRyMmVsLSogXAotKwl8IG1pcHNpc2E2NHNiMS0qIHwg bWlwc2lzYTY0c2IxZWwtKiBcCi0rCXwgbWlwc2lzYTY0c3I3MWstKiB8IG1pcHNpc2E2NHNyNzFr ZWwtKiBcCi0rCXwgbWlwc3R4MzktKiB8IG1pcHN0eDM5ZWwtKiBcCi0rCXwgbW1peC0qIFwKLSsJ fCBtdC0qIFwKLSsJfCBtc3A0MzAtKiBcCi0rCXwgbmlvcy0qIHwgbmlvczItKiBcCi0rCXwgbm9u ZS0qIHwgbnAxLSogfCBuczE2ay0qIHwgbnMzMmstKiBcCi0rCXwgb3Jpb24tKiBcCi0rCXwgcGRw MTAtKiB8IHBkcDExLSogfCBwai0qIHwgcGpsLSogfCBwbi0qIHwgcG93ZXItKiBcCi0rCXwgcG93 ZXJwYy0qIHwgcG93ZXJwYzY0LSogfCBwb3dlcnBjNjRsZS0qIHwgcG93ZXJwY2xlLSogfCBwcGNi ZS0qIFwKLSsJfCBweXJhbWlkLSogXAotKwl8IHJvbXAtKiB8IHJzNjAwMC0qIHwgcngtKiBcCi0r CXwgc2gtKiB8IHNoWzEyMzRdLSogfCBzaFsyNF1hLSogfCBzaFsyNF1hZWItKiB8IHNoWzIzXWUt KiB8IHNoWzM0XWViLSogfCBzaGViLSogfCBzaGJlLSogXAotKwl8IHNobGUtKiB8IHNoWzEyMzRd bGUtKiB8IHNoM2VsZS0qIHwgc2g2NC0qIHwgc2g2NGxlLSogXAotKwl8IHNwYXJjLSogfCBzcGFy YzY0LSogfCBzcGFyYzY0Yi0qIHwgc3BhcmM2NHYtKiB8IHNwYXJjODZ4LSogfCBzcGFyY2xldC0q IFwKLSsJfCBzcGFyY2xpdGUtKiBcCi0rCXwgc3BhcmN2OC0qIHwgc3BhcmN2OS0qIHwgc3BhcmN2 OWItKiB8IHNwYXJjdjl2LSogfCBzdHJvbmdhcm0tKiB8IHN2MS0qIHwgc3g/LSogXAotKwl8IHRh aG9lLSogfCB0aHVtYi0qIFwKLSsJfCB0aWMzMC0qIHwgdGljNHgtKiB8IHRpYzU0eC0qIHwgdGlj NTV4LSogfCB0aWM2eC0qIHwgdGljODAtKiB8IHRpbGUtKiBcCi0rCXwgdHJvbi0qIFwKLSsJfCB1 Ymljb20zMi0qIFwKLSsJfCB2ODUwLSogfCB2ODUwZS0qIHwgdmF4LSogXAotKwl8IHdlMzJrLSog XAotKwl8IHg4Ni0qIHwgeDg2XzY0LSogfCB4YzE2eC0qIHwgeHBzMTAwLSogfCB4c2NhbGUtKiB8 IHhzY2FsZWVbYmxdLSogXAotKwl8IHhzdG9ybXkxNi0qIHwgeHRlbnNhKi0qIFwKLSsJfCB5bXAt KiBcCi0rCXwgejhrLSogfCB6ODAtKikKLSsJCTs7Ci0rCSMgUmVjb2duaXplIHRoZSBiYXNpYyBD UFUgdHlwZXMgd2l0aG91dCBjb21wYW55IG5hbWUsIHdpdGggZ2xvYiBtYXRjaC4KLSsJeHRlbnNh KikKLSsJCWJhc2ljX21hY2hpbmU9JGJhc2ljX21hY2hpbmUtdW5rbm93bgotKwkJOzsKLSsJIyBS ZWNvZ25pemUgdGhlIHZhcmlvdXMgbWFjaGluZSBuYW1lcyBhbmQgYWxpYXNlcyB3aGljaCBzdGFu ZAotKwkjIGZvciBhIENQVSB0eXBlIGFuZCBhIGNvbXBhbnkgYW5kIHNvbWV0aW1lcyBldmVuIGFu IE9TLgotKwkzODZic2QpCi0rCQliYXNpY19tYWNoaW5lPWkzODYtdW5rbm93bgotKwkJb3M9LWJz ZAotKwkJOzsKLSsJM2IxIHwgNzMwMCB8IDczMDAtYXR0IHwgYXR0LTczMDAgfCBwYzczMDAgfCBz YWZhcmkgfCB1bml4cGMpCi0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1hdHQKLSsJCTs7Ci0rCTNi KikKLSsJCWJhc2ljX21hY2hpbmU9d2UzMmstYXR0Ci0rCQk7OwotKwlhMjlraGlmKQotKwkJYmFz aWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LXVkaQotKwkJOzsKLSsgICAgCWFiYWN1cykKLSsJ CWJhc2ljX21hY2hpbmU9YWJhY3VzLXVua25vd24KLSsJCTs7Ci0rCWFkb2JlNjhrKQotKwkJYmFz aWNfbWFjaGluZT1tNjgwMTAtYWRvYmUKLSsJCW9zPS1zY291dAotKwkJOzsKLSsJYWxsaWFudCB8 IGZ4ODApCi0rCQliYXNpY19tYWNoaW5lPWZ4ODAtYWxsaWFudAotKwkJOzsKLSsJYWx0b3MgfCBh bHRvczMwNjgpCi0rCQliYXNpY19tYWNoaW5lPW02OGstYWx0b3MKLSsJCTs7Ci0rCWFtMjlrKQot KwkJYmFzaWNfbWFjaGluZT1hMjlrLW5vbmUKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWFtZDY0KQot KwkJYmFzaWNfbWFjaGluZT14ODZfNjQtcGMKLSsJCTs7Ci0rCWFtZDY0LSopCi0rCQliYXNpY19t YWNoaW5lPXg4Nl82NC1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAot KwkJOzsKLSsJYW1kYWhsKQotKwkJYmFzaWNfbWFjaGluZT01ODAtYW1kYWhsCi0rCQlvcz0tc3lz dgotKwkJOzsKLSsJYW1pZ2EgfCBhbWlnYS0qKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLXVua25v d24KLSsJCTs7Ci0rCWFtaWdhb3MgfCBhbWlnYWRvcykKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay11 bmtub3duCi0rCQlvcz0tYW1pZ2FvcwotKwkJOzsKLSsJYW1pZ2F1bml4IHwgYW1peCkKLSsJCWJh c2ljX21hY2hpbmU9bTY4ay11bmtub3duCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCWFwb2xsbzY4 KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbwotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCWFw b2xsbzY4YnNkKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWFwb2xsbwotKwkJb3M9LWJzZAotKwkJ OzsKLSsJYXJvcykKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJb3M9LWFyb3MKLSsJCTs7 Ci0rCWF1eCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1hcHBsZQotKwkJb3M9LWF1eAotKwkJOzsK LSsJYmFsYW5jZSkKLSsJCWJhc2ljX21hY2hpbmU9bnMzMmstc2VxdWVudAotKwkJb3M9LWR5bml4 Ci0rCQk7OwotKwlibGFja2ZpbikKLSsJCWJhc2ljX21hY2hpbmU9YmZpbi11bmtub3duCi0rCQlv cz0tbGludXgKLSsJCTs7Ci0rCWJsYWNrZmluLSopCi0rCQliYXNpY19tYWNoaW5lPWJmaW4tYGVj aG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCW9zPS1saW51eAotKwkJ OzsKLSsJYmx1ZWdlbmUqKQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWlibQotKwkJb3M9LWNu awotKwkJOzsKLSsJYzkwKQotKwkJYmFzaWNfbWFjaGluZT1jOTAtY3JheQotKwkJb3M9LXVuaWNv cwotKwkJOzsKLSsgICAgICAgIGNlZ2NjKQotKwkJYmFzaWNfbWFjaGluZT1hcm0tdW5rbm93bgot KwkJb3M9LWNlZ2NjCi0rCQk7OwotKwljb252ZXgtYzEpCi0rCQliYXNpY19tYWNoaW5lPWMxLWNv bnZleAotKwkJb3M9LWJzZAotKwkJOzsKLSsJY29udmV4LWMyKQotKwkJYmFzaWNfbWFjaGluZT1j Mi1jb252ZXgKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWNvbnZleC1jMzIpCi0rCQliYXNpY19tYWNo aW5lPWMzMi1jb252ZXgKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWNvbnZleC1jMzQpCi0rCQliYXNp Y19tYWNoaW5lPWMzNC1jb252ZXgKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWNvbnZleC1jMzgpCi0r CQliYXNpY19tYWNoaW5lPWMzOC1jb252ZXgKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCWNyYXkgfCBq OTApCi0rCQliYXNpY19tYWNoaW5lPWo5MC1jcmF5Ci0rCQlvcz0tdW5pY29zCi0rCQk7OwotKwlj cmF5bnYpCi0rCQliYXNpY19tYWNoaW5lPWNyYXludi1jcmF5Ci0rCQlvcz0tdW5pY29zbXAKLSsJ CTs7Ci0rCWNyMTYpCi0rCQliYXNpY19tYWNoaW5lPWNyMTYtdW5rbm93bgotKwkJb3M9LWVsZgot KwkJOzsKLSsJY3JkcyB8IHVub3MpCi0rCQliYXNpY19tYWNoaW5lPW02OGstY3JkcwotKwkJOzsK LSsJY3Jpc3YzMiB8IGNyaXN2MzItKiB8IGV0cmF4ZnMqKQotKwkJYmFzaWNfbWFjaGluZT1jcmlz djMyLWF4aXMKLSsJCTs7Ci0rCWNyaXMgfCBjcmlzLSogfCBldHJheCopCi0rCQliYXNpY19tYWNo aW5lPWNyaXMtYXhpcwotKwkJOzsKLSsJY3J4KQotKwkJYmFzaWNfbWFjaGluZT1jcngtdW5rbm93 bgotKwkJb3M9LWVsZgotKwkJOzsKLSsJZGEzMCB8IGRhMzAtKikKLSsJCWJhc2ljX21hY2hpbmU9 bTY4ay1kYTMwCi0rCQk7OwotKwlkZWNzdGF0aW9uIHwgZGVjc3RhdGlvbi0zMTAwIHwgcG1heCB8 IHBtYXgtKiB8IHBtaW4gfCBkZWMzMTAwIHwgZGVjc3RhdG4pCi0rCQliYXNpY19tYWNoaW5lPW1p cHMtZGVjCi0rCQk7OwotKwlkZWNzeXN0ZW0xMCogfCBkZWMxMCopCi0rCQliYXNpY19tYWNoaW5l PXBkcDEwLWRlYwotKwkJb3M9LXRvcHMxMAotKwkJOzsKLSsJZGVjc3lzdGVtMjAqIHwgZGVjMjAq KQotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC1kZWMKLSsJCW9zPS10b3BzMjAKLSsJCTs7Ci0rCWRl bHRhIHwgMzMwMCB8IG1vdG9yb2xhLTMzMDAgfCBtb3Rvcm9sYS1kZWx0YSBcCi0rCSAgICAgIHwg MzMwMC1tb3Rvcm9sYSB8IGRlbHRhLW1vdG9yb2xhKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLW1v dG9yb2xhCi0rCQk7OwotKwlkZWx0YTg4KQotKwkJYmFzaWNfbWFjaGluZT1tODhrLW1vdG9yb2xh Ci0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCWRpY29zKQotKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBj Ci0rCQlvcz0tZGljb3MKLSsJCTs7Ci0rCWRqZ3BwKQotKwkJYmFzaWNfbWFjaGluZT1pNTg2LXBj Ci0rCQlvcz0tbXNkb3NkamdwcAotKwkJOzsKLSsJZHB4MjAgfCBkcHgyMC0qKQotKwkJYmFzaWNf bWFjaGluZT1yczYwMDAtYnVsbAotKwkJb3M9LWJvc3gKLSsJCTs7Ci0rCWRweDIqIHwgZHB4Miot YnVsbCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1idWxsCi0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0r CWVibW9uMjlrKQotKwkJYmFzaWNfbWFjaGluZT1hMjlrLWFtZAotKwkJb3M9LWVibW9uCi0rCQk7 OwotKwllbHhzaSkKLSsJCWJhc2ljX21hY2hpbmU9ZWx4c2ktZWx4c2kKLSsJCW9zPS1ic2QKLSsJ CTs7Ci0rCWVuY29yZSB8IHVtYXggfCBtbWF4KQotKwkJYmFzaWNfbWFjaGluZT1uczMyay1lbmNv cmUKLSsJCTs7Ci0rCWVzMTgwMCB8IE9TRTY4ayB8IG9zZTY4ayB8IG9zZSB8IE9TRSkKLSsJCWJh c2ljX21hY2hpbmU9bTY4ay1lcmljc3NvbgotKwkJb3M9LW9zZQotKwkJOzsKLSsJZngyODAwKQot KwkJYmFzaWNfbWFjaGluZT1pODYwLWFsbGlhbnQKLSsJCTs7Ci0rCWdlbml4KQotKwkJYmFzaWNf bWFjaGluZT1uczMyay1ucwotKwkJOzsKLSsJZ21pY3JvKQotKwkJYmFzaWNfbWFjaGluZT10cm9u LWdtaWNybwotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCWdvMzIpCi0rCQliYXNpY19tYWNoaW5lPWkz ODYtcGMKLSsJCW9zPS1nbzMyCi0rCQk7OwotKwloMzA1MHIqIHwgaGl1eCopCi0rCQliYXNpY19t YWNoaW5lPWhwcGExLjEtaGl0YWNoaQotKwkJb3M9LWhpdXh3ZTIKLSsJCTs7Ci0rCWg4MzAwaG1z KQotKwkJYmFzaWNfbWFjaGluZT1oODMwMC1oaXRhY2hpCi0rCQlvcz0taG1zCi0rCQk7OwotKwlo ODMwMHhyYXkpCi0rCQliYXNpY19tYWNoaW5lPWg4MzAwLWhpdGFjaGkKLSsJCW9zPS14cmF5Ci0r CQk7OwotKwloODUwMGhtcykKLSsJCWJhc2ljX21hY2hpbmU9aDg1MDAtaGl0YWNoaQotKwkJb3M9 LWhtcwotKwkJOzsKLSsJaGFycmlzKQotKwkJYmFzaWNfbWFjaGluZT1tODhrLWhhcnJpcwotKwkJ b3M9LXN5c3YzCi0rCQk7OwotKwlocDMwMC0qKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCi0r CQk7OwotKwlocDMwMGJzZCkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1ocAotKwkJb3M9LWJzZAot KwkJOzsKLSsJaHAzMDBocHV4KQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCi0rCQlvcz0taHB1 eAotKwkJOzsKLSsJaHAzazlbMC05XVswLTldIHwgaHA5WzAtOV1bMC05XSkKLSsJCWJhc2ljX21h Y2hpbmU9aHBwYTEuMC1ocAotKwkJOzsKLSsJaHA5azJbMC05XVswLTldIHwgaHA5azMxWzAtOV0p Ci0rCQliYXNpY19tYWNoaW5lPW02ODAwMC1ocAotKwkJOzsKLSsJaHA5azNbMi05XVswLTldKQot KwkJYmFzaWNfbWFjaGluZT1tNjhrLWhwCi0rCQk7OwotKwlocDlrNlswLTldWzAtOV0gfCBocDZb MC05XVswLTldKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4wLWhwCi0rCQk7OwotKwlocDlrN1sw LTc5XVswLTldIHwgaHA3WzAtNzldWzAtOV0pCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAK LSsJCTs7Ci0rCWhwOWs3OFswLTldIHwgaHA3OFswLTldKQotKwkJIyBGSVhNRTogcmVhbGx5IGhw cGEyLjAtaHAKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotKwkJOzsKLSsJaHA5azhbNjdd MSB8IGhwOFs2N10xIHwgaHA5azgwWzI0XSB8IGhwODBbMjRdIHwgaHA5azhbNzhdOSB8IGhwOFs3 OF05IHwgaHA5azg5MyB8IGhwODkzKQotKwkJIyBGSVhNRTogcmVhbGx5IGhwcGEyLjAtaHAKLSsJ CWJhc2ljX21hY2hpbmU9aHBwYTEuMS1ocAotKwkJOzsKLSsJaHA5azhbMC05XVsxMzY3OV0gfCBo cDhbMC05XVsxMzY3OV0pCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLSsJCTs7Ci0rCWhw OWs4WzAtOV1bMC05XSB8IGhwOFswLTldWzAtOV0pCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjAt aHAKLSsJCTs7Ci0rCWhwcGEtbmV4dCkKLSsJCW9zPS1uZXh0c3RlcDMKLSsJCTs7Ci0rCWhwcGFv c2YpCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtaHAKLSsJCW9zPS1vc2YKLSsJCTs7Ci0rCWhw cHJvKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLWhwCi0rCQlvcz0tcHJvZWxmCi0rCQk7Owot KwlpMzcwLWlibSogfCBpYm0qKQotKwkJYmFzaWNfbWFjaGluZT1pMzcwLWlibQotKwkJOzsKLSsj IEknbSBub3Qgc3VyZSB3aGF0ICJTeXN2MzIiIG1lYW5zLiAgU2hvdWxkIHRoaXMgYmUgc3lzdjMu Mj8KLSsJaSo4NnYzMikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYu Ki84Ni1wYy8nYAotKwkJb3M9LXN5c3YzMgotKwkJOzsKLSsJaSo4NnY0KikKLSsJCWJhc2ljX21h Y2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYuKi84Ni1wYy8nYAotKwkJb3M9LXN5c3Y0Ci0r CQk7OwotKwlpKjg2dikKLSsJCWJhc2ljX21hY2hpbmU9YGVjaG8gJDEgfCBzZWQgLWUgJ3MvODYu Ki84Ni1wYy8nYAotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCWkqODZzb2wyKQotKwkJYmFzaWNfbWFj aGluZT1gZWNobyAkMSB8IHNlZCAtZSAncy84Ni4qLzg2LXBjLydgCi0rCQlvcz0tc29sYXJpczIK LSsJCTs7Ci0rCWkzODZtYWNoKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LW1hY2gKLSsJCW9zPS1t YWNoCi0rCQk7OwotKwlpMzg2LXZzdGEgfCB2c3RhKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXVu a25vd24KLSsJCW9zPS12c3RhCi0rCQk7OwotKwlpcmlzIHwgaXJpczRkKQotKwkJYmFzaWNfbWFj aGluZT1taXBzLXNnaQotKwkJY2FzZSAkb3MgaW4KLSsJCSAgICAtaXJpeCopCi0rCQkJOzsKLSsJ CSAgICAqKQotKwkJCW9zPS1pcml4NAotKwkJCTs7Ci0rCQllc2FjCi0rCQk7OwotKwlpc2k2OCB8 IGlzaSkKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1pc2kKLSsJCW9zPS1zeXN2Ci0rCQk7OwotKwlt Njhrbm9tbXUpCi0rCQliYXNpY19tYWNoaW5lPW02OGstdW5rbm93bgotKwkJb3M9LWxpbnV4Ci0r CQk7OwotKwltNjhrbm9tbXUtKikKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1gZWNobyAkYmFzaWNf bWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwltODhr LW9tcm9uKikKLSsJCWJhc2ljX21hY2hpbmU9bTg4ay1vbXJvbgotKwkJOzsKLSsJbWFnbnVtIHwg bTMyMzApCi0rCQliYXNpY19tYWNoaW5lPW1pcHMtbWlwcwotKwkJb3M9LXN5c3YKLSsJCTs7Ci0r CW1lcmxpbikKLSsJCWJhc2ljX21hY2hpbmU9bnMzMmstdXRlawotKwkJb3M9LXN5c3YKLSsJCTs7 Ci0rICAgICAgICBtaWNyb2JsYXplKQotKwkJYmFzaWNfbWFjaGluZT1taWNyb2JsYXplLXhpbGlu eAotKwkJOzsKLSsJbWluZ3czMikKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1wYwotKwkJb3M9LW1p bmd3MzIKLSsJCTs7Ci0rCW1pbmd3MzJjZSkKLSsJCWJhc2ljX21hY2hpbmU9YXJtLXVua25vd24K LSsJCW9zPS1taW5ndzMyY2UKLSsJCTs7Ci0rCW1pbmlmcmFtZSkKLSsJCWJhc2ljX21hY2hpbmU9 bTY4MDAwLWNvbnZlcmdlbnQKLSsJCTs7Ci0rCSptaW50IHwgLW1pbnRbMC05XSogfCAqTWlOVCB8 ICpNaU5UWzAtOV0qKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLWF0YXJpCi0rCQlvcz0tbWludAot KwkJOzsKLSsJbWlwczMqLSopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICRiYXNpY19tYWNoaW5l IHwgc2VkIC1lICdzL21pcHMzL21pcHM2NC8nYAotKwkJOzsKLSsJbWlwczMqKQotKwkJYmFzaWNf bWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAtZSAncy9taXBzMy9taXBzNjQvJ2At dW5rbm93bgotKwkJOzsKLSsJbW9uaXRvcikKLSsJCWJhc2ljX21hY2hpbmU9bTY4ay1yb202OGsK LSsJCW9zPS1jb2ZmCi0rCQk7OwotKwltb3JwaG9zKQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBj LXVua25vd24KLSsJCW9zPS1tb3JwaG9zCi0rCQk7OwotKwltc2RvcykKLSsJCWJhc2ljX21hY2hp bmU9aTM4Ni1wYwotKwkJb3M9LW1zZG9zCi0rCQk7OwotKwltczEtKikKLSsJCWJhc2ljX21hY2hp bmU9YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgLWUgJ3MvbXMxLS9tdC0vJ2AKLSsJCTs7Ci0r CW12cykKLSsJCWJhc2ljX21hY2hpbmU9aTM3MC1pYm0KLSsJCW9zPS1tdnMKLSsJCTs7Ci0rCW5j cjMwMDApCi0rCQliYXNpY19tYWNoaW5lPWk0ODYtbmNyCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0r CW5ldGJzZDM4NikKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni11bmtub3duCi0rCQlvcz0tbmV0YnNk Ci0rCQk7OwotKwluZXR3aW5kZXIpCi0rCQliYXNpY19tYWNoaW5lPWFybXY0bC1yZWJlbAotKwkJ b3M9LWxpbnV4Ci0rCQk7OwotKwluZXdzIHwgbmV3czcwMCB8IG5ld3M4MDAgfCBuZXdzOTAwKQot KwkJYmFzaWNfbWFjaGluZT1tNjhrLXNvbnkKLSsJCW9zPS1uZXdzb3MKLSsJCTs7Ci0rCW5ld3Mx MDAwKQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMzAtc29ueQotKwkJb3M9LW5ld3NvcwotKwkJOzsK LSsJbmV3cy0zNjAwIHwgcmlzYy1uZXdzKQotKwkJYmFzaWNfbWFjaGluZT1taXBzLXNvbnkKLSsJ CW9zPS1uZXdzb3MKLSsJCTs7Ci0rCW5lY3Y3MCkKLSsJCWJhc2ljX21hY2hpbmU9djcwLW5lYwot KwkJb3M9LXN5c3YKLSsJCTs7Ci0rCW5leHQgfCBtKi1uZXh0ICkKLSsJCWJhc2ljX21hY2hpbmU9 bTY4ay1uZXh0Ci0rCQljYXNlICRvcyBpbgotKwkJICAgIC1uZXh0c3RlcCogKQotKwkJCTs7Ci0r CQkgICAgLW5zMiopCi0rCQkgICAgICBvcz0tbmV4dHN0ZXAyCi0rCQkJOzsKLSsJCSAgICAqKQot KwkJICAgICAgb3M9LW5leHRzdGVwMwotKwkJCTs7Ci0rCQllc2FjCi0rCQk7OwotKwluaDMwMDAp Ci0rCQliYXNpY19tYWNoaW5lPW02OGstaGFycmlzCi0rCQlvcz0tY3h1eAotKwkJOzsKLSsJbmhb NDVdMDAwKQotKwkJYmFzaWNfbWFjaGluZT1tODhrLWhhcnJpcwotKwkJb3M9LWN4dXgKLSsJCTs7 Ci0rCW5pbmR5OTYwKQotKwkJYmFzaWNfbWFjaGluZT1pOTYwLWludGVsCi0rCQlvcz0tbmluZHkK LSsJCTs7Ci0rCW1vbjk2MCkKLSsJCWJhc2ljX21hY2hpbmU9aTk2MC1pbnRlbAotKwkJb3M9LW1v bjk2MAotKwkJOzsKLSsJbm9uc3RvcHV4KQotKwkJYmFzaWNfbWFjaGluZT1taXBzLWNvbXBhcQot KwkJb3M9LW5vbnN0b3B1eAotKwkJOzsKLSsJbnAxKQotKwkJYmFzaWNfbWFjaGluZT1ucDEtZ291 bGQKLSsJCTs7Ci0rCW5zci10YW5kZW0pCi0rCQliYXNpY19tYWNoaW5lPW5zci10YW5kZW0KLSsJ CTs7Ci0rCW9wNTBuLSogfCBvcDYwYy0qKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQot KwkJb3M9LXByb2VsZgotKwkJOzsKLSsJb3BlbnJpc2MgfCBvcGVucmlzYy0qKQotKwkJYmFzaWNf bWFjaGluZT1vcjMyLXVua25vd24KLSsJCTs7Ci0rCW9zNDAwKQotKwkJYmFzaWNfbWFjaGluZT1w b3dlcnBjLWlibQotKwkJb3M9LW9zNDAwCi0rCQk7OwotKwlPU0U2ODAwMCB8IG9zZTY4MDAwKQot KwkJYmFzaWNfbWFjaGluZT1tNjgwMDAtZXJpY3Nzb24KLSsJCW9zPS1vc2UKLSsJCTs7Ci0rCW9z NjhrKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5vbmUKLSsJCW9zPS1vczY4awotKwkJOzsKLSsJ cGEtaGl0YWNoaSkKLSsJCWJhc2ljX21hY2hpbmU9aHBwYTEuMS1oaXRhY2hpCi0rCQlvcz0taGl1 eHdlMgotKwkJOzsKLSsJcGFyYWdvbikKLSsJCWJhc2ljX21hY2hpbmU9aTg2MC1pbnRlbAotKwkJ b3M9LW9zZgotKwkJOzsKLSsJcGFyaXNjKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhLXVua25vd24K LSsJCW9zPS1saW51eAotKwkJOzsKLSsJcGFyaXNjLSopCi0rCQliYXNpY19tYWNoaW5lPWhwcGEt YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCW9zPS1saW51eAot KwkJOzsKLSsJcGJkKQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy10dGkKLSsJCTs7Ci0rCXBiYikK LSsJCWJhc2ljX21hY2hpbmU9bTY4ay10dGkKLSsJCTs7Ci0rCXBjNTMyIHwgcGM1MzItKikKLSsJ CWJhc2ljX21hY2hpbmU9bnMzMmstcGM1MzIKLSsJCTs7Ci0rCXBjOTgpCi0rCQliYXNpY19tYWNo aW5lPWkzODYtcGMKLSsJCTs7Ci0rCXBjOTgtKikKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1gZWNo byAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJOzsKLSsJcGVudGl1bSB8 IHA1IHwgazUgfCBrNiB8IG5leGdlbiB8IHZpYWMzKQotKwkJYmFzaWNfbWFjaGluZT1pNTg2LXBj Ci0rCQk7OwotKwlwZW50aXVtcHJvIHwgcDYgfCA2eDg2IHwgYXRobG9uIHwgYXRobG9uXyopCi0r CQliYXNpY19tYWNoaW5lPWk2ODYtcGMKLSsJCTs7Ci0rCXBlbnRpdW1paSB8IHBlbnRpdW0yIHwg cGVudGl1bWlpaSB8IHBlbnRpdW0zKQotKwkJYmFzaWNfbWFjaGluZT1pNjg2LXBjCi0rCQk7Owot KwlwZW50aXVtNCkKLSsJCWJhc2ljX21hY2hpbmU9aTc4Ni1wYwotKwkJOzsKLSsJcGVudGl1bS0q IHwgcDUtKiB8IGs1LSogfCBrNi0qIHwgbmV4Z2VuLSogfCB2aWFjMy0qKQotKwkJYmFzaWNfbWFj aGluZT1pNTg2LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7 OwotKwlwZW50aXVtcHJvLSogfCBwNi0qIHwgNng4Ni0qIHwgYXRobG9uLSopCi0rCQliYXNpY19t YWNoaW5lPWk2ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJ CTs7Ci0rCXBlbnRpdW1paS0qIHwgcGVudGl1bTItKiB8IHBlbnRpdW1paWktKiB8IHBlbnRpdW0z LSopCi0rCQliYXNpY19tYWNoaW5lPWk2ODYtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3Mv XlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBlbnRpdW00LSopCi0rCQliYXNpY19tYWNoaW5lPWk3ODYt YGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0qLS8vJ2AKLSsJCTs7Ci0rCXBuKQot KwkJYmFzaWNfbWFjaGluZT1wbi1nb3VsZAotKwkJOzsKLSsJcG93ZXIpCWJhc2ljX21hY2hpbmU9 cG93ZXItaWJtCi0rCQk7OwotKwlwcGMpCWJhc2ljX21hY2hpbmU9cG93ZXJwYy11bmtub3duCi0r CQk7OwotKwlwcGMtKikJYmFzaWNfbWFjaGluZT1wb3dlcnBjLWBlY2hvICRiYXNpY19tYWNoaW5l IHwgc2VkICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwlwcGNsZSB8IHBvd2VycGNsaXR0bGUgfCBw cGMtbGUgfCBwb3dlcnBjLWxpdHRsZSkKLSsJCWJhc2ljX21hY2hpbmU9cG93ZXJwY2xlLXVua25v d24KLSsJCTs7Ci0rCXBwY2xlLSogfCBwb3dlcnBjbGl0dGxlLSopCi0rCQliYXNpY19tYWNoaW5l PXBvd2VycGNsZS1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9eW14tXSotLy8nYAotKwkJ OzsKLSsJcHBjNjQpCWJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LXVua25vd24KLSsJCTs7Ci0rCXBw YzY0LSopIGJhc2ljX21hY2hpbmU9cG93ZXJwYzY0LWBlY2hvICRiYXNpY19tYWNoaW5lIHwgc2Vk ICdzL15bXi1dKi0vLydgCi0rCQk7OwotKwlwcGM2NGxlIHwgcG93ZXJwYzY0bGl0dGxlIHwgcHBj NjQtbGUgfCBwb3dlcnBjNjQtbGl0dGxlKQotKwkJYmFzaWNfbWFjaGluZT1wb3dlcnBjNjRsZS11 bmtub3duCi0rCQk7OwotKwlwcGM2NGxlLSogfCBwb3dlcnBjNjRsaXR0bGUtKikKLSsJCWJhc2lj X21hY2hpbmU9cG93ZXJwYzY0bGUtYGVjaG8gJGJhc2ljX21hY2hpbmUgfCBzZWQgJ3MvXlteLV0q LS8vJ2AKLSsJCTs7Ci0rCXBzMikKLSsJCWJhc2ljX21hY2hpbmU9aTM4Ni1pYm0KLSsJCTs7Ci0r CXB3MzIpCi0rCQliYXNpY19tYWNoaW5lPWk1ODYtdW5rbm93bgotKwkJb3M9LXB3MzIKLSsJCTs7 Ci0rCXJkb3MpCi0rCQliYXNpY19tYWNoaW5lPWkzODYtcGMKLSsJCW9zPS1yZG9zCi0rCQk7Owot Kwlyb202OGspCi0rCQliYXNpY19tYWNoaW5lPW02OGstcm9tNjhrCi0rCQlvcz0tY29mZgotKwkJ OzsKLSsJcm1bNDZdMDApCi0rCQliYXNpY19tYWNoaW5lPW1pcHMtc2llbWVucwotKwkJOzsKLSsJ cnRwYyB8IHJ0cGMtKikKLSsJCWJhc2ljX21hY2hpbmU9cm9tcC1pYm0KLSsJCTs7Ci0rCXMzOTAg fCBzMzkwLSopCi0rCQliYXNpY19tYWNoaW5lPXMzOTAtaWJtCi0rCQk7OwotKwlzMzkweCB8IHMz OTB4LSopCi0rCQliYXNpY19tYWNoaW5lPXMzOTB4LWlibQotKwkJOzsKLSsJc2EyOTIwMCkKLSsJ CWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLSsJCW9zPS11ZGkKLSsJCTs7Ci0rCXNiMSkKLSsJCWJh c2ljX21hY2hpbmU9bWlwc2lzYTY0c2IxLXVua25vd24KLSsJCTs7Ci0rCXNiMWVsKQotKwkJYmFz aWNfbWFjaGluZT1taXBzaXNhNjRzYjFlbC11bmtub3duCi0rCQk7OwotKwlzZGUpCi0rCQliYXNp Y19tYWNoaW5lPW1pcHNpc2EzMi1zZGUKLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCXNlaSkKLSsJCWJh c2ljX21hY2hpbmU9bWlwcy1zZWkKLSsJCW9zPS1zZWl1eAotKwkJOzsKLSsJc2VxdWVudCkKLSsJ CWJhc2ljX21hY2hpbmU9aTM4Ni1zZXF1ZW50Ci0rCQk7OwotKwlzaCkKLSsJCWJhc2ljX21hY2hp bmU9c2gtaGl0YWNoaQotKwkJb3M9LWhtcwotKwkJOzsKLSsJc2g1ZWwpCi0rCQliYXNpY19tYWNo aW5lPXNoNWxlLXVua25vd24KLSsJCTs7Ci0rCXNoNjQpCi0rCQliYXNpY19tYWNoaW5lPXNoNjQt dW5rbm93bgotKwkJOzsKLSsJc3BhcmNsaXRlLXdycyB8IHNpbXNvLXdycykKLSsJCWJhc2ljX21h Y2hpbmU9c3BhcmNsaXRlLXdycwotKwkJb3M9LXZ4d29ya3MKLSsJCTs7Ci0rCXNwczcpCi0rCQli YXNpY19tYWNoaW5lPW02OGstYnVsbAotKwkJb3M9LXN5c3YyCi0rCQk7OwotKwlzcHVyKQotKwkJ YmFzaWNfbWFjaGluZT1zcHVyLXVua25vd24KLSsJCTs7Ci0rCXN0MjAwMCkKLSsJCWJhc2ljX21h Y2hpbmU9bTY4ay10YW5kZW0KLSsJCTs7Ci0rCXN0cmF0dXMpCi0rCQliYXNpY19tYWNoaW5lPWk4 NjAtc3RyYXR1cwotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKwlzdW4yKQotKwkJYmFzaWNfbWFjaGlu ZT1tNjgwMDAtc3VuCi0rCQk7OwotKwlzdW4yb3MzKQotKwkJYmFzaWNfbWFjaGluZT1tNjgwMDAt c3VuCi0rCQlvcz0tc3Vub3MzCi0rCQk7OwotKwlzdW4yb3M0KQotKwkJYmFzaWNfbWFjaGluZT1t NjgwMDAtc3VuCi0rCQlvcz0tc3Vub3M0Ci0rCQk7OwotKwlzdW4zb3MzKQotKwkJYmFzaWNfbWFj aGluZT1tNjhrLXN1bgotKwkJb3M9LXN1bm9zMwotKwkJOzsKLSsJc3VuM29zNCkKLSsJCWJhc2lj X21hY2hpbmU9bTY4ay1zdW4KLSsJCW9zPS1zdW5vczQKLSsJCTs7Ci0rCXN1bjRvczMpCi0rCQli YXNpY19tYWNoaW5lPXNwYXJjLXN1bgotKwkJb3M9LXN1bm9zMwotKwkJOzsKLSsJc3VuNG9zNCkK LSsJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCi0rCQlvcz0tc3Vub3M0Ci0rCQk7OwotKwlzdW40 c29sMikKLSsJCWJhc2ljX21hY2hpbmU9c3BhcmMtc3VuCi0rCQlvcz0tc29sYXJpczIKLSsJCTs7 Ci0rCXN1bjMgfCBzdW4zLSopCi0rCQliYXNpY19tYWNoaW5lPW02OGstc3VuCi0rCQk7OwotKwlz dW40KQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCTs7Ci0rCXN1bjM4NiB8IHN1bjM4 NmkgfCByb2FkcnVubmVyKQotKwkJYmFzaWNfbWFjaGluZT1pMzg2LXN1bgotKwkJOzsKLSsJc3Yx KQotKwkJYmFzaWNfbWFjaGluZT1zdjEtY3JheQotKwkJb3M9LXVuaWNvcwotKwkJOzsKLSsJc3lt bWV0cnkpCi0rCQliYXNpY19tYWNoaW5lPWkzODYtc2VxdWVudAotKwkJb3M9LWR5bml4Ci0rCQk7 OwotKwl0M2UpCi0rCQliYXNpY19tYWNoaW5lPWFscGhhZXY1LWNyYXkKLSsJCW9zPS11bmljb3MK LSsJCTs7Ci0rCXQ5MCkKLSsJCWJhc2ljX21hY2hpbmU9dDkwLWNyYXkKLSsJCW9zPS11bmljb3MK LSsJCTs7Ci0rCXRpYzU0eCB8IGM1NHgqKQotKwkJYmFzaWNfbWFjaGluZT10aWM1NHgtdW5rbm93 bgotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCXRpYzU1eCB8IGM1NXgqKQotKwkJYmFzaWNfbWFjaGlu ZT10aWM1NXgtdW5rbm93bgotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCXRpYzZ4IHwgYzZ4KikKLSsJ CWJhc2ljX21hY2hpbmU9dGljNngtdW5rbm93bgotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCXRpbGUq KQotKwkJYmFzaWNfbWFjaGluZT10aWxlLXVua25vd24KLSsJCW9zPS1saW51eC1nbnUKLSsJCTs7 Ci0rCXR4MzkpCi0rCQliYXNpY19tYWNoaW5lPW1pcHN0eDM5LXVua25vd24KLSsJCTs7Ci0rCXR4 MzllbCkKLSsJCWJhc2ljX21hY2hpbmU9bWlwc3R4MzllbC11bmtub3duCi0rCQk7OwotKwl0b2Fk MSkKLSsJCWJhc2ljX21hY2hpbmU9cGRwMTAteGtsCi0rCQlvcz0tdG9wczIwCi0rCQk7OwotKwl0 b3dlciB8IHRvd2VyLTMyKQotKwkJYmFzaWNfbWFjaGluZT1tNjhrLW5jcgotKwkJOzsKLSsJdHBm KQotKwkJYmFzaWNfbWFjaGluZT1zMzkweC1pYm0KLSsJCW9zPS10cGYKLSsJCTs7Ci0rCXVkaTI5 aykKLSsJCWJhc2ljX21hY2hpbmU9YTI5ay1hbWQKLSsJCW9zPS11ZGkKLSsJCTs7Ci0rCXVsdHJh MykKLSsJCWJhc2ljX21hY2hpbmU9YTI5ay1ueXUKLSsJCW9zPS1zeW0xCi0rCQk7OwotKwl2ODEw IHwgbmVjdjgxMCkKLSsJCWJhc2ljX21hY2hpbmU9djgxMC1uZWMKLSsJCW9zPS1ub25lCi0rCQk7 OwotKwl2YXh2KQotKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCi0rCQlvcz0tc3lzdgotKwkJOzsK LSsJdm1zKQotKwkJYmFzaWNfbWFjaGluZT12YXgtZGVjCi0rCQlvcz0tdm1zCi0rCQk7OwotKwl2 cHAqfHZ4fHZ4LSopCi0rCQliYXNpY19tYWNoaW5lPWYzMDEtZnVqaXRzdQotKwkJOzsKLSsJdnh3 b3Jrczk2MCkKLSsJCWJhc2ljX21hY2hpbmU9aTk2MC13cnMKLSsJCW9zPS12eHdvcmtzCi0rCQk7 OwotKwl2eHdvcmtzNjgpCi0rCQliYXNpY19tYWNoaW5lPW02OGstd3JzCi0rCQlvcz0tdnh3b3Jr cwotKwkJOzsKLSsJdnh3b3JrczI5aykKLSsJCWJhc2ljX21hY2hpbmU9YTI5ay13cnMKLSsJCW9z PS12eHdvcmtzCi0rCQk7OwotKwl3NjUqKQotKwkJYmFzaWNfbWFjaGluZT13NjUtd2RjCi0rCQlv cz0tbm9uZQotKwkJOzsKLSsJdzg5ay0qKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLXdpbmJv bmQKLSsJCW9zPS1wcm9lbGYKLSsJCTs7Ci0rCXhib3gpCi0rCQliYXNpY19tYWNoaW5lPWk2ODYt cGMKLSsJCW9zPS1taW5ndzMyCi0rCQk7OwotKwl4cHMgfCB4cHMxMDApCi0rCQliYXNpY19tYWNo aW5lPXhwczEwMC1ob25leXdlbGwKLSsJCTs7Ci0rCXltcCkKLSsJCWJhc2ljX21hY2hpbmU9eW1w LWNyYXkKLSsJCW9zPS11bmljb3MKLSsJCTs7Ci0rCXo4ay0qLWNvZmYpCi0rCQliYXNpY19tYWNo aW5lPXo4ay11bmtub3duCi0rCQlvcz0tc2ltCi0rCQk7OwotKwl6ODAtKi1jb2ZmKQotKwkJYmFz aWNfbWFjaGluZT16ODAtdW5rbm93bgotKwkJb3M9LXNpbQotKwkJOzsKLSsJbm9uZSkKLSsJCWJh c2ljX21hY2hpbmU9bm9uZS1ub25lCi0rCQlvcz0tbm9uZQotKwkJOzsKLSsKLSsjIEhlcmUgd2Ug aGFuZGxlIHRoZSBkZWZhdWx0IG1hbnVmYWN0dXJlciBvZiBjZXJ0YWluIENQVSB0eXBlcy4gIEl0 IGlzIGluCi0rIyBzb21lIGNhc2VzIHRoZSBvbmx5IG1hbnVmYWN0dXJlciwgaW4gb3RoZXJzLCBp dCBpcyB0aGUgbW9zdCBwb3B1bGFyLgotKwl3ODlrKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4x LXdpbmJvbmQKLSsJCTs7Ci0rCW9wNTBuKQotKwkJYmFzaWNfbWFjaGluZT1ocHBhMS4xLW9raQot KwkJOzsKLSsJb3A2MGMpCi0rCQliYXNpY19tYWNoaW5lPWhwcGExLjEtb2tpCi0rCQk7OwotKwly b21wKQotKwkJYmFzaWNfbWFjaGluZT1yb21wLWlibQotKwkJOzsKLSsJbW1peCkKLSsJCWJhc2lj X21hY2hpbmU9bW1peC1rbnV0aAotKwkJOzsKLSsJcnM2MDAwKQotKwkJYmFzaWNfbWFjaGluZT1y czYwMDAtaWJtCi0rCQk7OwotKwl2YXgpCi0rCQliYXNpY19tYWNoaW5lPXZheC1kZWMKLSsJCTs7 Ci0rCXBkcDEwKQotKwkJIyB0aGVyZSBhcmUgbWFueSBjbG9uZXMsIHNvIERFQyBpcyBub3QgYSBz YWZlIGJldAotKwkJYmFzaWNfbWFjaGluZT1wZHAxMC11bmtub3duCi0rCQk7OwotKwlwZHAxMSkK LSsJCWJhc2ljX21hY2hpbmU9cGRwMTEtZGVjCi0rCQk7OwotKwl3ZTMyaykKLSsJCWJhc2ljX21h Y2hpbmU9d2UzMmstYXR0Ci0rCQk7OwotKwlzaFsxMjM0XSB8IHNoWzI0XWEgfCBzaFsyNF1hZWIg fCBzaFszNF1lYiB8IHNoWzEyMzRdbGUgfCBzaFsyM11lbGUpCi0rCQliYXNpY19tYWNoaW5lPXNo LXVua25vd24KLSsJCTs7Ci0rCXNwYXJjIHwgc3BhcmN2OCB8IHNwYXJjdjkgfCBzcGFyY3Y5YiB8 IHNwYXJjdjl2KQotKwkJYmFzaWNfbWFjaGluZT1zcGFyYy1zdW4KLSsJCTs7Ci0rCWN5ZHJhKQot KwkJYmFzaWNfbWFjaGluZT1jeWRyYS1jeWRyb21lCi0rCQk7OwotKwlvcmlvbikKLSsJCWJhc2lj X21hY2hpbmU9b3Jpb24taGlnaGxldmVsCi0rCQk7OwotKwlvcmlvbjEwNSkKLSsJCWJhc2ljX21h Y2hpbmU9Y2xpcHBlci1oaWdobGV2ZWwKLSsJCTs7Ci0rCW1hYyB8IG1wdyB8IG1hYy1tcHcpCi0r CQliYXNpY19tYWNoaW5lPW02OGstYXBwbGUKLSsJCTs7Ci0rCXBtYWMgfCBwbWFjLW1wdykKLSsJ CWJhc2ljX21hY2hpbmU9cG93ZXJwYy1hcHBsZQotKwkJOzsKLSsJKi11bmtub3duKQotKwkJIyBN YWtlIHN1cmUgdG8gbWF0Y2ggYW4gYWxyZWFkeS1jYW5vbmljYWxpemVkIG1hY2hpbmUgbmFtZS4K LSsJCTs7Ci0rCSopCi0rCQllY2hvIEludmFsaWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IG1hY2hp bmUgXGAkYmFzaWNfbWFjaGluZVwnIG5vdCByZWNvZ25pemVkIDE+JjIKLSsJCWV4aXQgMQotKwkJ OzsKLStlc2FjCi0rCi0rIyBIZXJlIHdlIGNhbm9uaWNhbGl6ZSBjZXJ0YWluIGFsaWFzZXMgZm9y IG1hbnVmYWN0dXJlcnMuCi0rY2FzZSAkYmFzaWNfbWFjaGluZSBpbgotKwkqLWRpZ2l0YWwqKQot KwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFzaWNfbWFjaGluZSB8IHNlZCAncy9kaWdpdGFsLiov ZGVjLydgCi0rCQk7OwotKwkqLWNvbW1vZG9yZSopCi0rCQliYXNpY19tYWNoaW5lPWBlY2hvICRi YXNpY19tYWNoaW5lIHwgc2VkICdzL2NvbW1vZG9yZS4qL2NibS8nYAotKwkJOzsKLSsJKikKLSsJ CTs7Ci0rZXNhYwotKwotKyMgRGVjb2RlIG1hbnVmYWN0dXJlci1zcGVjaWZpYyBhbGlhc2VzIGZv ciBjZXJ0YWluIG9wZXJhdGluZyBzeXN0ZW1zLgotKwotK2lmIFsgeCIkb3MiICE9IHgiIiBdCi0r dGhlbgotK2Nhc2UgJG9zIGluCi0rICAgICAgICAjIEZpcnN0IG1hdGNoIHNvbWUgc3lzdGVtIHR5 cGUgYWxpYXNlcwotKyAgICAgICAgIyB0aGF0IG1pZ2h0IGdldCBjb25mdXNlZCB3aXRoIHZhbGlk IHN5c3RlbSB0eXBlcy4KLSsJIyAtc29sYXJpcyogaXMgYSBiYXNpYyBzeXN0ZW0gdHlwZSwgd2l0 aCB0aGlzIG9uZSBleGNlcHRpb24uCi0rICAgICAgICAtYXVyb3JhdXgpCi0rCSAgICAgICAgb3M9 LWF1cm9yYXV4Ci0rCQk7OwotKwktc29sYXJpczEgfCAtc29sYXJpczEuKikKLSsJCW9zPWBlY2hv ICRvcyB8IHNlZCAtZSAnc3xzb2xhcmlzMXxzdW5vczR8J2AKLSsJCTs7Ci0rCS1zb2xhcmlzKQot KwkJb3M9LXNvbGFyaXMyCi0rCQk7OwotKwktc3ZyNCopCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0r CS11bml4d2FyZSopCi0rCQlvcz0tc3lzdjQuMnV3Ci0rCQk7OwotKwktZ251L2xpbnV4KikKLSsJ CW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xnbnUvbGludXh8bGludXgtZ251fCdgCi0rCQk7Owot KwkjIEZpcnN0IGFjY2VwdCB0aGUgYmFzaWMgc3lzdGVtIHR5cGVzLgotKwkjIFRoZSBwb3J0YWJs ZSBzeXN0ZW1zIGNvbWVzIGZpcnN0LgotKwkjIEVhY2ggYWx0ZXJuYXRpdmUgTVVTVCBFTkQgSU4g QSAqLCB0byBtYXRjaCBhIHZlcnNpb24gbnVtYmVyLgotKwkjIC1zeXN2KiBpcyBub3QgaGVyZSBi ZWNhdXNlIGl0IGNvbWVzIGxhdGVyLCBhZnRlciBzeXN2cjQuCi0rCS1nbnUqIHwgLWJzZCogfCAt bWFjaCogfCAtbWluaXgqIHwgLWdlbml4KiB8IC11bHRyaXgqIHwgLWlyaXgqIFwKLSsJICAgICAg fCAtKnZtcyogfCAtc2NvKiB8IC1lc2l4KiB8IC1pc2MqIHwgLWFpeCogfCAtY25rKiB8IC1zdW5v cyB8IC1zdW5vc1szNF0qXAotKwkgICAgICB8IC1ocHV4KiB8IC11bm9zKiB8IC1vc2YqIHwgLWx1 bmEqIHwgLWRndXgqIHwgLWF1cm9yYXV4KiB8IC1zb2xhcmlzKiBcCi0rCSAgICAgIHwgLXN5bSog fCAta29wZW5zb2xhcmlzKiBcCi0rCSAgICAgIHwgLWFtaWdhb3MqIHwgLWFtaWdhZG9zKiB8IC1t c2RvcyogfCAtbmV3c29zKiB8IC11bmljb3MqIHwgLWFvZiogXAotKwkgICAgICB8IC1hb3MqIHwg LWFyb3MqIFwKLSsJICAgICAgfCAtbmluZHkqIHwgLXZ4c2ltKiB8IC12eHdvcmtzKiB8IC1lYm1v biogfCAtaG1zKiB8IC1tdnMqIFwKLSsJICAgICAgfCAtY2xpeCogfCAtcmlzY29zKiB8IC11bmlw bHVzKiB8IC1pcmlzKiB8IC1ydHUqIHwgLXhlbml4KiBcCi0rCSAgICAgIHwgLWhpdXgqIHwgLTM4 NmJzZCogfCAta25ldGJzZCogfCAtbWlyYnNkKiB8IC1uZXRic2QqIFwKLSsJICAgICAgfCAtb3Bl bmJzZCogfCAtc29saWRic2QqIFwKLSsJICAgICAgfCAtZWtrb2JzZCogfCAta2ZyZWVic2QqIHwg LWZyZWVic2QqIHwgLXJpc2NpeCogfCAtbHlueG9zKiBcCi0rCSAgICAgIHwgLWJvc3gqIHwgLW5l eHRzdGVwKiB8IC1jeHV4KiB8IC1hb3V0KiB8IC1lbGYqIHwgLW9hYmkqIFwKLSsJICAgICAgfCAt cHR4KiB8IC1jb2ZmKiB8IC1lY29mZiogfCAtd2lubnQqIHwgLWRvbWFpbiogfCAtdnN0YSogXAot KwkgICAgICB8IC11ZGkqIHwgLWVhYmkqIHwgLWxpdGVzKiB8IC1pZWVlKiB8IC1nbzMyKiB8IC1h dXgqIFwKLSsJICAgICAgfCAtY2hvcnVzb3MqIHwgLWNob3J1c3JkYiogfCAtY2VnY2MqIFwKLSsJ ICAgICAgfCAtY3lnd2luKiB8IC1wZSogfCAtcHNvcyogfCAtbW9zcyogfCAtcHJvZWxmKiB8IC1y dGVtcyogXAotKwkgICAgICB8IC1taW5ndzMyKiB8IC1saW51eC1nbnUqIHwgLWxpbnV4LW5ld2xp YiogfCAtbGludXgtdWNsaWJjKiBcCi0rCSAgICAgIHwgLXV4cHYqIHwgLWJlb3MqIHwgLW1wZWl4 KiB8IC11ZGsqIFwKLSsJICAgICAgfCAtaW50ZXJpeCogfCAtdXdpbiogfCAtbWtzKiB8IC1yaGFw c29keSogfCAtZGFyd2luKiB8IC1vcGVuZWQqIFwKLSsJICAgICAgfCAtb3BlbnN0ZXAqIHwgLW9z a2l0KiB8IC1jb25peCogfCAtcHczMiogfCAtbm9uc3RvcHV4KiBcCi0rCSAgICAgIHwgLXN0b3Jt LWNoYW9zKiB8IC10b3BzMTAqIHwgLXRlbmV4KiB8IC10b3BzMjAqIHwgLWl0cyogXAotKwkgICAg ICB8IC1vczIqIHwgLXZvcyogfCAtcGFsbW9zKiB8IC11Y2xpbnV4KiB8IC1udWNsZXVzKiBcCi0r CSAgICAgIHwgLW1vcnBob3MqIHwgLXN1cGVydXgqIHwgLXJ0bWsqIHwgLXJ0bWstbm92YSogfCAt d2luZGlzcyogXAotKwkgICAgICB8IC1wb3dlcm1heCogfCAtZG5peCogfCAtbng2IHwgLW54NyB8 IC1zZWkqIHwgLWRyYWdvbmZseSogXAotKwkgICAgICB8IC1za3lvcyogfCAtaGFpa3UqIHwgLXJk b3MqIHwgLXRvcHBlcnMqIHwgLWRyb3BzKiB8IC1lcyopCi0rCSMgUmVtZW1iZXIsIGVhY2ggYWx0 ZXJuYXRpdmUgTVVTVCBFTkQgSU4gKiwgdG8gbWF0Y2ggYSB2ZXJzaW9uIG51bWJlci4KLSsJCTs7 Ci0rCS1xbngqKQotKwkJY2FzZSAkYmFzaWNfbWFjaGluZSBpbgotKwkJICAgIHg4Ni0qIHwgaSo4 Ni0qKQotKwkJCTs7Ci0rCQkgICAgKikKLSsJCQlvcz0tbnRvJG9zCi0rCQkJOzsKLSsJCWVzYWMK LSsJCTs7Ci0rCS1udG8tcW54KikKLSsJCTs7Ci0rCS1udG8qKQotKwkJb3M9YGVjaG8gJG9zIHwg c2VkIC1lICdzfG50b3xudG8tcW54fCdgCi0rCQk7OwotKwktc2ltIHwgLWVzMTgwMCogfCAtaG1z KiB8IC14cmF5IHwgLW9zNjhrKiB8IC1ub25lKiB8IC12ODhyKiBcCi0rCSAgICAgIHwgLXdpbmRv d3MqIHwgLW9zeCB8IC1hYnVnIHwgLW5ldHdhcmUqIHwgLW9zOSogfCAtYmVvcyogfCAtaGFpa3Uq IFwKLSsJICAgICAgfCAtbWFjb3MqIHwgLW1wdyogfCAtbWFnaWMqIHwgLW1taXh3YXJlKiB8IC1t b245NjAqIHwgLWxuZXdzKikKLSsJCTs7Ci0rCS1tYWMqKQotKwkJb3M9YGVjaG8gJG9zIHwgc2Vk IC1lICdzfG1hY3xtYWNvc3wnYAotKwkJOzsKLSsJLWxpbnV4LWRpZXRsaWJjKQotKwkJb3M9LWxp bnV4LWRpZXRsaWJjCi0rCQk7OwotKwktbGludXgqKQotKwkJb3M9YGVjaG8gJG9zIHwgc2VkIC1l ICdzfGxpbnV4fGxpbnV4LWdudXwnYAotKwkJOzsKLSsJLXN1bm9zNSopCi0rCQlvcz1gZWNobyAk b3MgfCBzZWQgLWUgJ3N8c3Vub3M1fHNvbGFyaXMyfCdgCi0rCQk7OwotKwktc3Vub3M2KikKLSsJ CW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzdW5vczZ8c29sYXJpczN8J2AKLSsJCTs7Ci0rCS1v cGVuZWQqKQotKwkJb3M9LW9wZW5lZGl0aW9uCi0rCQk7OwotKyAgICAgICAgLW9zNDAwKikKLSsJ CW9zPS1vczQwMAotKwkJOzsKLSsJLXdpbmNlKikKLSsJCW9zPS13aW5jZQotKwkJOzsKLSsJLW9z ZnJvc2UqKQotKwkJb3M9LW9zZnJvc2UKLSsJCTs7Ci0rCS1vc2YqKQotKwkJb3M9LW9zZgotKwkJ OzsKLSsJLXV0ZWsqKQotKwkJb3M9LWJzZAotKwkJOzsKLSsJLWR5bml4KikKLSsJCW9zPS1ic2QK LSsJCTs7Ci0rCS1hY2lzKikKLSsJCW9zPS1hb3MKLSsJCTs7Ci0rCS1hdGhlb3MqKQotKwkJb3M9 LWF0aGVvcwotKwkJOzsKLSsJLXN5bGxhYmxlKikKLSsJCW9zPS1zeWxsYWJsZQotKwkJOzsKLSsJ LTM4NmJzZCkKLSsJCW9zPS1ic2QKLSsJCTs7Ci0rCS1jdGl4KiB8IC11dHMqKQotKwkJb3M9LXN5 c3YKLSsJCTs7Ci0rCS1ub3ZhKikKLSsJCW9zPS1ydG1rLW5vdmEKLSsJCTs7Ci0rCS1uczIgKQot KwkJb3M9LW5leHRzdGVwMgotKwkJOzsKLSsJLW5zayopCi0rCQlvcz0tbnNrCi0rCQk7OwotKwkj IFByZXNlcnZlIHRoZSB2ZXJzaW9uIG51bWJlciBvZiBzaW5peDUuCi0rCS1zaW5peDUuKikKLSsJ CW9zPWBlY2hvICRvcyB8IHNlZCAtZSAnc3xzaW5peHxzeXN2fCdgCi0rCQk7OwotKwktc2luaXgq KQotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKyAgICAgICAgLXRwZiopCi0rCQlvcz0tdHBmCi0rCQk7 OwotKwktdHJpdG9uKikKLSsJCW9zPS1zeXN2MwotKwkJOzsKLSsJLW9zcyopCi0rCQlvcz0tc3lz djMKLSsJCTs7Ci0rCS1zdnI0KQotKwkJb3M9LXN5c3Y0Ci0rCQk7OwotKwktc3ZyMykKLSsJCW9z PS1zeXN2MwotKwkJOzsKLSsJLXN5c3ZyNCkKLSsJCW9zPS1zeXN2NAotKwkJOzsKLSsJIyBUaGlz IG11c3QgY29tZSBhZnRlciAtc3lzdnI0LgotKwktc3lzdiopCi0rCQk7OwotKwktb3NlKikKLSsJ CW9zPS1vc2UKLSsJCTs7Ci0rCS1lczE4MDAqKQotKwkJb3M9LW9zZQotKwkJOzsKLSsJLXhlbml4 KQotKwkJb3M9LXhlbml4Ci0rCQk7OwotKwktKm1pbnQgfCAtbWludFswLTldKiB8IC0qTWlOVCB8 IC1NaU5UWzAtOV0qKQotKwkJb3M9LW1pbnQKLSsJCTs7Ci0rCS1hcm9zKikKLSsJCW9zPS1hcm9z Ci0rCQk7OwotKwkta2FvcyopCi0rCQlvcz0ta2FvcwotKwkJOzsKLSsJLXp2bW9lKQotKwkJb3M9 LXp2bW9lCi0rCQk7OwotKwktZGljb3MqKQotKwkJb3M9LWRpY29zCi0rCQk7OwotKwktbm9uZSkK LSsJCTs7Ci0rCSopCi0rCQkjIEdldCByaWQgb2YgdGhlIGAtJyBhdCB0aGUgYmVnaW5uaW5nIG9m ICRvcy4KLSsJCW9zPWBlY2hvICRvcyB8IHNlZCAncy9bXi1dKi0vLydgCi0rCQllY2hvIEludmFs aWQgY29uZmlndXJhdGlvbiBcYCQxXCc6IHN5c3RlbSBcYCRvc1wnIG5vdCByZWNvZ25pemVkIDE+ JjIKLSsJCWV4aXQgMQotKwkJOzsKLStlc2FjCi0rZWxzZQotKwotKyMgSGVyZSB3ZSBoYW5kbGUg dGhlIGRlZmF1bHQgb3BlcmF0aW5nIHN5c3RlbXMgdGhhdCBjb21lIHdpdGggdmFyaW91cyBtYWNo aW5lcy4KLSsjIFRoZSB2YWx1ZSBzaG91bGQgYmUgd2hhdCB0aGUgdmVuZG9yIGN1cnJlbnRseSBz aGlwcyBvdXQgdGhlIGRvb3Igd2l0aCB0aGVpcgotKyMgbWFjaGluZSBvciBwdXQgYW5vdGhlciB3 YXksIHRoZSBtb3N0IHBvcHVsYXIgb3MgcHJvdmlkZWQgd2l0aCB0aGUgbWFjaGluZS4KLSsKLSsj IE5vdGUgdGhhdCBpZiB5b3UncmUgZ29pbmcgdG8gdHJ5IHRvIG1hdGNoICItTUFOVUZBQ1RVUkVS IiBoZXJlIChzYXksCi0rIyAiLXN1biIpLCB0aGVuIHlvdSBoYXZlIHRvIHRlbGwgdGhlIGNhc2Ug c3RhdGVtZW50IHVwIHRvd2FyZHMgdGhlIHRvcAotKyMgdGhhdCBNQU5VRkFDVFVSRVIgaXNuJ3Qg YW4gb3BlcmF0aW5nIHN5c3RlbS4gIE90aGVyd2lzZSwgY29kZSBhYm92ZQotKyMgd2lsbCBzaWdu YWwgYW4gZXJyb3Igc2F5aW5nIHRoYXQgTUFOVUZBQ1RVUkVSIGlzbid0IGFuIG9wZXJhdGluZwot KyMgc3lzdGVtLCBhbmQgd2UnbGwgbmV2ZXIgZ2V0IHRvIHRoaXMgcG9pbnQuCi0rCi0rY2FzZSAk YmFzaWNfbWFjaGluZSBpbgotKyAgICAgICAgc2NvcmUtKikKLSsJCW9zPS1lbGYKLSsJCTs7Ci0r ICAgICAgICBzcHUtKikKLSsJCW9zPS1lbGYKLSsJCTs7Ci0rCSotYWNvcm4pCi0rCQlvcz0tcmlz Y2l4MS4yCi0rCQk7OwotKwlhcm0qLXJlYmVsKQotKwkJb3M9LWxpbnV4Ci0rCQk7OwotKwlhcm0q LXNlbWkpCi0rCQlvcz0tYW91dAotKwkJOzsKLSsgICAgICAgIGM0eC0qIHwgdGljNHgtKikKLSsg ICAgICAgIAlvcz0tY29mZgotKwkJOzsKLSsJIyBUaGlzIG11c3QgY29tZSBiZWZvcmUgdGhlICot ZGVjIGVudHJ5LgotKwlwZHAxMC0qKQotKwkJb3M9LXRvcHMyMAotKwkJOzsKLSsJcGRwMTEtKikK LSsJCW9zPS1ub25lCi0rCQk7OwotKwkqLWRlYyB8IHZheC0qKQotKwkJb3M9LXVsdHJpeDQuMgot KwkJOzsKLSsJbTY4Ki1hcG9sbG8pCi0rCQlvcz0tZG9tYWluCi0rCQk7OwotKwlpMzg2LXN1bikK LSsJCW9zPS1zdW5vczQuMC4yCi0rCQk7OwotKwltNjgwMDAtc3VuKQotKwkJb3M9LXN1bm9zMwot KwkJIyBUaGlzIGFsc28gZXhpc3RzIGluIHRoZSBjb25maWd1cmUgcHJvZ3JhbSwgYnV0IHdhcyBu b3QgdGhlCi0rCQkjIGRlZmF1bHQuCi0rCQkjIG9zPS1zdW5vczQKLSsJCTs7Ci0rCW02OCotY2lz Y28pCi0rCQlvcz0tYW91dAotKwkJOzsKLSsgICAgICAgIG1lcC0qKQotKwkJb3M9LWVsZgotKwkJ OzsKLSsJbWlwcyotY2lzY28pCi0rCQlvcz0tZWxmCi0rCQk7OwotKwltaXBzKi0qKQotKwkJb3M9 LWVsZgotKwkJOzsKLSsJb3IzMi0qKQotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCSotdHRpKQkjIG11 c3QgYmUgYmVmb3JlIHNwYXJjIGVudHJ5IG9yIHdlIGdldCB0aGUgd3Jvbmcgb3MuCi0rCQlvcz0t c3lzdjMKLSsJCTs7Ci0rCXNwYXJjLSogfCAqLXN1bikKLSsJCW9zPS1zdW5vczQuMS4xCi0rCQk7 OwotKwkqLWJlKQotKwkJb3M9LWJlb3MKLSsJCTs7Ci0rCSotaGFpa3UpCi0rCQlvcz0taGFpa3UK LSsJCTs7Ci0rCSotaWJtKQotKwkJb3M9LWFpeAotKwkJOzsKLSsgICAgCSota251dGgpCi0rCQlv cz0tbW1peHdhcmUKLSsJCTs7Ci0rCSotd2VjKQotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJKi13 aW5ib25kKQotKwkJb3M9LXByb2VsZgotKwkJOzsKLSsJKi1va2kpCi0rCQlvcz0tcHJvZWxmCi0r CQk7OwotKwkqLWhwKQotKwkJb3M9LWhwdXgKLSsJCTs7Ci0rCSotaGl0YWNoaSkKLSsJCW9zPS1o aXV4Ci0rCQk7OwotKwlpODYwLSogfCAqLWF0dCB8ICotbmNyIHwgKi1hbHRvcyB8ICotbW90b3Jv bGEgfCAqLWNvbnZlcmdlbnQpCi0rCQlvcz0tc3lzdgotKwkJOzsKLSsJKi1jYm0pCi0rCQlvcz0t YW1pZ2FvcwotKwkJOzsKLSsJKi1kZykKLSsJCW9zPS1kZ3V4Ci0rCQk7OwotKwkqLWRvbHBoaW4p Ci0rCQlvcz0tc3lzdjMKLSsJCTs7Ci0rCW02OGstY2N1cikKLSsJCW9zPS1ydHUKLSsJCTs7Ci0r CW04OGstb21yb24qKQotKwkJb3M9LWx1bmEKLSsJCTs7Ci0rCSotbmV4dCApCi0rCQlvcz0tbmV4 dHN0ZXAKLSsJCTs7Ci0rCSotc2VxdWVudCkKLSsJCW9zPS1wdHgKLSsJCTs7Ci0rCSotY3JkcykK LSsJCW9zPS11bm9zCi0rCQk7OwotKwkqLW5zKQotKwkJb3M9LWdlbml4Ci0rCQk7OwotKwlpMzcw LSopCi0rCQlvcz0tbXZzCi0rCQk7OwotKwkqLW5leHQpCi0rCQlvcz0tbmV4dHN0ZXAzCi0rCQk7 OwotKwkqLWdvdWxkKQotKwkJb3M9LXN5c3YKLSsJCTs7Ci0rCSotaGlnaGxldmVsKQotKwkJb3M9 LWJzZAotKwkJOzsKLSsJKi1lbmNvcmUpCi0rCQlvcz0tYnNkCi0rCQk7OwotKwkqLXNnaSkKLSsJ CW9zPS1pcml4Ci0rCQk7OwotKwkqLXNpZW1lbnMpCi0rCQlvcz0tc3lzdjQKLSsJCTs7Ci0rCSot bWFzc2NvbXApCi0rCQlvcz0tcnR1Ci0rCQk7OwotKwlmMzBbMDFdLWZ1aml0c3UgfCBmNzAwLWZ1 aml0c3UpCi0rCQlvcz0tdXhwdgotKwkJOzsKLSsJKi1yb202OGspCi0rCQlvcz0tY29mZgotKwkJ OzsKLSsJKi0qYnVnKQotKwkJb3M9LWNvZmYKLSsJCTs7Ci0rCSotYXBwbGUpCi0rCQlvcz0tbWFj b3MKLSsJCTs7Ci0rCSotYXRhcmkqKQotKwkJb3M9LW1pbnQKLSsJCTs7Ci0rCSopCi0rCQlvcz0t bm9uZQotKwkJOzsKLStlc2FjCi0rZmkKLSsKLSsjIEhlcmUgd2UgaGFuZGxlIHRoZSBjYXNlIHdo ZXJlIHdlIGtub3cgdGhlIG9zLCBhbmQgdGhlIENQVSB0eXBlLCBidXQgbm90IHRoZQotKyMgbWFu dWZhY3R1cmVyLiAgV2UgcGljayB0aGUgbG9naWNhbCBtYW51ZmFjdHVyZXIuCi0rdmVuZG9yPXVu a25vd24KLStjYXNlICRiYXNpY19tYWNoaW5lIGluCi0rCSotdW5rbm93bikKLSsJCWNhc2UgJG9z IGluCi0rCQkJLXJpc2NpeCopCi0rCQkJCXZlbmRvcj1hY29ybgotKwkJCQk7OwotKwkJCS1zdW5v cyopCi0rCQkJCXZlbmRvcj1zdW4KLSsJCQkJOzsKLSsJCQktY25rKnwtYWl4KikKLSsJCQkJdmVu ZG9yPWlibQotKwkJCQk7OwotKwkJCS1iZW9zKikKLSsJCQkJdmVuZG9yPWJlCi0rCQkJCTs7Ci0r CQkJLWhwdXgqKQotKwkJCQl2ZW5kb3I9aHAKLSsJCQkJOzsKLSsJCQktbXBlaXgqKQotKwkJCQl2 ZW5kb3I9aHAKLSsJCQkJOzsKLSsJCQktaGl1eCopCi0rCQkJCXZlbmRvcj1oaXRhY2hpCi0rCQkJ CTs7Ci0rCQkJLXVub3MqKQotKwkJCQl2ZW5kb3I9Y3JkcwotKwkJCQk7OwotKwkJCS1kZ3V4KikK LSsJCQkJdmVuZG9yPWRnCi0rCQkJCTs7Ci0rCQkJLWx1bmEqKQotKwkJCQl2ZW5kb3I9b21yb24K LSsJCQkJOzsKLSsJCQktZ2VuaXgqKQotKwkJCQl2ZW5kb3I9bnMKLSsJCQkJOzsKLSsJCQktbXZz KiB8IC1vcGVuZWQqKQotKwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0rCQkJLW9zNDAwKikKLSsJ CQkJdmVuZG9yPWlibQotKwkJCQk7OwotKwkJCS1wdHgqKQotKwkJCQl2ZW5kb3I9c2VxdWVudAot KwkJCQk7OwotKwkJCS10cGYqKQotKwkJCQl2ZW5kb3I9aWJtCi0rCQkJCTs7Ci0rCQkJLXZ4c2lt KiB8IC12eHdvcmtzKiB8IC13aW5kaXNzKikKLSsJCQkJdmVuZG9yPXdycwotKwkJCQk7OwotKwkJ CS1hdXgqKQotKwkJCQl2ZW5kb3I9YXBwbGUKLSsJCQkJOzsKLSsJCQktaG1zKikKLSsJCQkJdmVu ZG9yPWhpdGFjaGkKLSsJCQkJOzsKLSsJCQktbXB3KiB8IC1tYWNvcyopCi0rCQkJCXZlbmRvcj1h cHBsZQotKwkJCQk7OwotKwkJCS0qbWludCB8IC1taW50WzAtOV0qIHwgLSpNaU5UIHwgLU1pTlRb MC05XSopCi0rCQkJCXZlbmRvcj1hdGFyaQotKwkJCQk7OwotKwkJCS12b3MqKQotKwkJCQl2ZW5k b3I9c3RyYXR1cwotKwkJCQk7OwotKwkJZXNhYwotKwkJYmFzaWNfbWFjaGluZT1gZWNobyAkYmFz aWNfbWFjaGluZSB8IHNlZCAicy91bmtub3duLyR2ZW5kb3IvImAKLSsJCTs7Ci0rZXNhYwotKwot K2VjaG8gJGJhc2ljX21hY2hpbmUkb3MKLStleGl0Ci0rCi0rIyBMb2NhbCB2YXJpYWJsZXM6Ci0r IyBldmFsOiAoYWRkLWhvb2sgJ3dyaXRlLWZpbGUtaG9va3MgJ3RpbWUtc3RhbXApCi0rIyB0aW1l LXN0YW1wLXN0YXJ0OiAidGltZXN0YW1wPSciCi0rIyB0aW1lLXN0YW1wLWZvcm1hdDogIiU6eS0l MDJtLSUwMmQiCi0rIyB0aW1lLXN0YW1wLWVuZDogIiciCi0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9jcHB1bml0Lm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2NwcHVuaXQubTQJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL2NwcHVuaXQubTQJMjAxMC0wMS0yMyAxMzoyNzowNC4wMDAwMDAwMDAgKzAxMDAKLUBA IC0wLDAgKzEsOTMgQEAKLStkbmwKLStkbmwgQU1fUEFUSF9DUFBVTklUKE1JTklNVU0tVkVSU0lP TiwgW0FDVElPTi1JRi1GT1VORCBbLCBBQ1RJT04tSUYtTk9ULUZPVU5EXV0pCi0rZG5sCi0rQUNf REVGVU4oW0FNX1BBVEhfQ1BQVU5JVF0sCi0rWwotKwotK0FDX0FSR19XSVRIKGNwcHVuaXQtcHJl Zml4LFsgIC0td2l0aC1jcHB1bml0LXByZWZpeD1QRlggICBQcmVmaXggd2hlcmUgQ3BwVW5pdCBp cyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCi0rICAgICAgICAgICAgY3BwdW5pdF9jb25maWdfcHJl Zml4PSIkd2l0aHZhbCIsIGNwcHVuaXRfY29uZmlnX3ByZWZpeD0iIikKLStBQ19BUkdfV0lUSChj cHB1bml0LWV4ZWMtcHJlZml4LFsgIC0td2l0aC1jcHB1bml0LWV4ZWMtcHJlZml4PVBGWCAgRXhl YyBwcmVmaXggd2hlcmUgQ3BwVW5pdCBpcyBpbnN0YWxsZWQgKG9wdGlvbmFsKV0sCi0rICAgICAg ICAgICAgY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiR3aXRodmFsIiwgY3BwdW5pdF9jb25m aWdfZXhlY19wcmVmaXg9IiIpCi0rCi0rICBpZiB0ZXN0IHgkY3BwdW5pdF9jb25maWdfZXhlY19w cmVmaXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2Nv bmZpZ19hcmdzIC0tZXhlYy1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX2V4ZWNfcHJlZml4IgotKyAg ICAgaWYgdGVzdCB4JHtDUFBVTklUX0NPTkZJRytzZXR9ICE9IHhzZXQgOyB0aGVuCi0rICAgICAg ICBDUFBVTklUX0NPTkZJRz0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVmaXgvYmluL2NwcHVuaXQt Y29uZmlnCi0rICAgICBmaQotKyAgZmkKLSsgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZpZ19wcmVm aXggIT0geCA7IHRoZW4KLSsgICAgIGNwcHVuaXRfY29uZmlnX2FyZ3M9IiRjcHB1bml0X2NvbmZp Z19hcmdzIC0tcHJlZml4PSRjcHB1bml0X2NvbmZpZ19wcmVmaXgiCi0rICAgICBpZiB0ZXN0IHgk e0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4KLSsgICAgICAgIENQUFVOSVRfQ09O RklHPSRjcHB1bml0X2NvbmZpZ19wcmVmaXgvYmluL2NwcHVuaXQtY29uZmlnCi0rICAgICBmaQot KyAgZmkKLSsKLSsgIEFDX1BBVEhfUFJPRyhDUFBVTklUX0NPTkZJRywgY3BwdW5pdC1jb25maWcs IG5vKQotKyAgY3BwdW5pdF92ZXJzaW9uX21pbj0kMQotKwotKyAgQUNfTVNHX0NIRUNLSU5HKGZv ciBDcHB1bml0IC0gdmVyc2lvbiA+PSAkY3BwdW5pdF92ZXJzaW9uX21pbikKLSsgIG5vX2NwcHVu aXQ9IiIKLSsgIGlmIHRlc3QgIiRDUFBVTklUX0NPTkZJRyIgPSAibm8iIDsgdGhlbgotKyAgICBB Q19NU0dfUkVTVUxUKG5vKQotKyAgICBub19jcHB1bml0PXllcwotKyAgZWxzZQotKyAgICBDUFBV TklUX0NGTEFHUz1gJENQUFVOSVRfQ09ORklHIC0tY2ZsYWdzYAotKyAgICBDUFBVTklUX0xJQlM9 YCRDUFBVTklUX0NPTkZJRyAtLWxpYnNgCi0rICAgIENQUFVOSVRfVkVSU0lPTj1gJENQUFVOSVRf Q09ORklHIC0tdmVyc2lvbmAKLSsKLSsgICAgY3BwdW5pdF9tYWpvcl92ZXJzaW9uPWBlY2hvICRD UFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1sw LTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKLSsgICAgY3BwdW5pdF9taW5vcl92ZXJzaW9uPWBl Y2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwp LlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AKLSsgICAgY3BwdW5pdF9taWNyb192ZXJz aW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAt OV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AKLSsKLSsgICAgY3BwdW5pdF9t YWpvcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAgICAgICBzZWQg J3MvXChbWzAtOV1dKlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDEvJ2AKLSsgICAgaWYg dGVzdCAieCR7Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3BwdW5p dF9tYWpvcl9taW49MAotKyAgICBmaQotKyAgICAKLSsgICAgY3BwdW5pdF9taW5vcl9taW49YGVj aG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1d KlwpLlwoW1swLTldXSpcKS5cKFtbMC05XV0qXCkvXDIvJ2AKLSsgICAgaWYgdGVzdCAieCR7Y3Bw dW5pdF9taW5vcl9taW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3BwdW5pdF9taW5vcl9taW49 MAotKyAgICBmaQotKyAgICAKLSsgICAgY3BwdW5pdF9taWNyb19taW49YGVjaG8gJGNwcHVuaXRf dmVyc2lvbl9taW4gfCBcCi0rICAgICAgICAgICBzZWQgJ3MvXChbWzAtOV1dKlwpLlwoW1swLTld XSpcKS5cKFtbMC05XV0qXCkvXDMvJ2AKLSsgICAgaWYgdGVzdCAieCR7Y3BwdW5pdF9taWNyb19t aW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3BwdW5pdF9taWNyb19taW49MAotKyAgICBmaQot KwotKyAgICBjcHB1bml0X3ZlcnNpb25fcHJvcGVyPWBleHByIFwKLSsgICAgICAgICRjcHB1bml0 X21ham9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWFqb3JfbWluIFx8IFwKLSsgICAgICAgICRjcHB1 bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3JfbWluIFwmIFwKLSsgICAgICAgICRj cHB1bml0X21pbm9yX3ZlcnNpb24gXD4gJGNwcHVuaXRfbWlub3JfbWluIFx8IFwKLSsgICAgICAg ICRjcHB1bml0X21ham9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWFqb3JfbWluIFwmIFwKLSsgICAg ICAgICRjcHB1bml0X21pbm9yX3ZlcnNpb24gXD0gJGNwcHVuaXRfbWlub3JfbWluIFwmIFwKLSsg ICAgICAgICRjcHB1bml0X21pY3JvX3ZlcnNpb24gXD49ICRjcHB1bml0X21pY3JvX21pbiBgCi0r Ci0rICAgIGlmIHRlc3QgIiRjcHB1bml0X3ZlcnNpb25fcHJvcGVyIiA9ICIxIiA7IHRoZW4KLSsg ICAgICBBQ19NU0dfUkVTVUxUKFskY3BwdW5pdF9tYWpvcl92ZXJzaW9uLiRjcHB1bml0X21pbm9y X3ZlcnNpb24uJGNwcHVuaXRfbWljcm9fdmVyc2lvbl0pCi0rICAgIGVsc2UKLSsgICAgICBBQ19N U0dfUkVTVUxUKG5vKQotKyAgICAgIG5vX2NwcHVuaXQ9eWVzCi0rICAgIGZpCi0rICBmaQotKwot KyAgaWYgdGVzdCAieCRub19jcHB1bml0IiA9IHggOyB0aGVuCi0rICAgICBpZmVsc2UoWyQyXSwg LCA6LCBbJDJdKSAgICAgCi0rICBlbHNlCi0rICAgICBDUFBVTklUX0NGTEFHUz0iIgotKyAgICAg Q1BQVU5JVF9MSUJTPSIiCi0rICAgICBpZmVsc2UoWyQzXSwgLCA6LCBbJDNdKQotKyAgZmkKLSsK LSsgIEFDX1NVQlNUKENQUFVOSVRfQ0ZMQUdTKQotKyAgQUNfU1VCU1QoQ1BQVU5JVF9MSUJTKQot KyAgQUNfU1VCU1QoQ1BQVU5JVF9WRVJTSU9OKQotK10pCi0rCi0rCi0rCi1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svY29uZmlnL2RlcGNvbXAgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9k ZXBjb21wCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2RlcGNvbXAJMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2Rl cGNvbXAJMjAxMS0wNy0wMyAxODo0NDoyOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNjMw IEBACi0rIyEgL2Jpbi9zaAotKyMgZGVwY29tcCAtIGNvbXBpbGUgYSBwcm9ncmFtIGdlbmVyYXRp bmcgZGVwZW5kZW5jaWVzIGFzIHNpZGUtZWZmZWN0cwotKwotK3NjcmlwdHZlcnNpb249MjAwOS0w NC0yOC4yMTsgIyBVVEMKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5OSwgMjAwMCwgMjAwMywgMjAw NCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOSBGcmVlCi0rIyBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ bmMuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotKyMgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkKLSsjIHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIsIG9yIChhdCB5b3VyIG9wdGlvbikKLSsj IGFueSBsYXRlciB2ZXJzaW9uLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBBTlkgV0FS UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotKyMgTUVSQ0hBTlRB QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQotKyMg R05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSsKLSsjIFlvdSBz aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlCi0rIyBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbS4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KLSsKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhl IEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlLCBpZiB5b3UKLSsjIGRpc3RyaWJ1dGUgdGhpcyBm aWxlIGFzIHBhcnQgb2YgYSBwcm9ncmFtIHRoYXQgY29udGFpbnMgYQotKyMgY29uZmlndXJhdGlv biBzY3JpcHQgZ2VuZXJhdGVkIGJ5IEF1dG9jb25mLCB5b3UgbWF5IGluY2x1ZGUgaXQgdW5kZXIK LSsjIHRoZSBzYW1lIGRpc3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0 IG9mIHRoYXQgcHJvZ3JhbS4KLSsKLSsjIE9yaWdpbmFsbHkgd3JpdHRlbiBieSBBbGV4YW5kcmUg T2xpdmEgPG9saXZhQGRjYy51bmljYW1wLmJyPi4KLSsKLStjYXNlICQxIGluCi0rICAnJykKLSsg ICAgIGVjaG8gIiQwOiBObyBjb21tYW5kLiAgVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZv cm1hdGlvbi4iIDE+JjIKLSsgICAgIGV4aXQgMTsKLSsgICAgIDs7Ci0rICAtaCB8IC0taCopCi0r ICAgIGNhdCA8PFxFT0YKLStVc2FnZTogZGVwY29tcCBbLS1oZWxwXSBbLS12ZXJzaW9uXSBQUk9H UkFNIFtBUkdTXQotKwotK1J1biBQUk9HUkFNUyBBUkdTIHRvIGNvbXBpbGUgYSBmaWxlLCBnZW5l cmF0aW5nIGRlcGVuZGVuY2llcwotK2FzIHNpZGUtZWZmZWN0cy4KLSsKLStFbnZpcm9ubWVudCB2 YXJpYWJsZXM6Ci0rICBkZXBtb2RlICAgICBEZXBlbmRlbmN5IHRyYWNraW5nIG1vZGUuCi0rICBz b3VyY2UgICAgICBTb3VyY2UgZmlsZSByZWFkIGJ5IGBQUk9HUkFNUyBBUkdTJy4KLSsgIG9iamVj dCAgICAgIE9iamVjdCBmaWxlIG91dHB1dCBieSBgUFJPR1JBTVMgQVJHUycuCi0rICBERVBESVIg ICAgICBkaXJlY3Rvcnkgd2hlcmUgdG8gc3RvcmUgZGVwZW5kZW5jaWVzLgotKyAgZGVwZmlsZSAg ICAgRGVwZW5kZW5jeSBmaWxlIHRvIG91dHB1dC4KLSsgIHRtcGRlcGZpbGUgIFRlbXBvcmFyeSBm aWxlIHRvIHVzZSB3aGVuIG91dHB1dGluZyBkZXBlbmRlbmNpZXMuCi0rICBsaWJ0b29sICAgICBX aGV0aGVyIGxpYnRvb2wgaXMgdXNlZCAoeWVzL25vKS4KLSsKLStSZXBvcnQgYnVncyB0byA8YnVn LWF1dG9tYWtlQGdudS5vcmc+LgotK0VPRgotKyAgICBleGl0ICQ/Ci0rICAgIDs7Ci0rICAtdiB8 IC0tdiopCi0rICAgIGVjaG8gImRlcGNvbXAgJHNjcmlwdHZlcnNpb24iCi0rICAgIGV4aXQgJD8K LSsgICAgOzsKLStlc2FjCi0rCi0raWYgdGVzdCAteiAiJGRlcG1vZGUiIHx8IHRlc3QgLXogIiRz b3VyY2UiIHx8IHRlc3QgLXogIiRvYmplY3QiOyB0aGVuCi0rICBlY2hvICJkZXBjb21wOiBWYXJp YWJsZXMgc291cmNlLCBvYmplY3QgYW5kIGRlcG1vZGUgbXVzdCBiZSBzZXQiIDE+JjIKLSsgIGV4 aXQgMQotK2ZpCi0rCi0rIyBEZXBlbmRlbmNpZXMgZm9yIHN1Yi9iYXIubyBvciBzdWIvYmFyLm9i aiBnbyBpbnRvIHN1Yi8uZGVwcy9iYXIuUG8uCi0rZGVwZmlsZT0ke2RlcGZpbGUtYGVjaG8gIiRv YmplY3QiIHwKLSsgIHNlZCAnc3xbXlxcL10qJHwnJHtERVBESVItLmRlcHN9Jy8mfDtzfFwuXChb Xi5dKlwpJHwuUFwxfDtzfFBvYmokfFBvfCdgfQotK3RtcGRlcGZpbGU9JHt0bXBkZXBmaWxlLWBl Y2hvICIkZGVwZmlsZSIgfCBzZWQgJ3MvXC5cKFteLl0qXCkkLy5UXDEvJ2B9Ci0rCi0rcm0gLWYg IiR0bXBkZXBmaWxlIgotKwotKyMgU29tZSBtb2RlcyB3b3JrIGp1c3QgbGlrZSBvdGhlciBtb2Rl cywgYnV0IHVzZSBkaWZmZXJlbnQgZmxhZ3MuICBXZQotKyMgcGFyYW1ldGVyaXplIGhlcmUsIGJ1 dCBzdGlsbCBsaXN0IHRoZSBtb2RlcyBpbiB0aGUgYmlnIGNhc2UgYmVsb3csCi0rIyB0byBtYWtl IGRlcGVuZC5tNCBlYXNpZXIgdG8gd3JpdGUuICBOb3RlIHRoYXQgd2UgKmNhbm5vdCogdXNlIGEg Y2FzZQotKyMgaGVyZSwgYmVjYXVzZSB0aGlzIGZpbGUgY2FuIG9ubHkgY29udGFpbiBvbmUgY2Fz ZSBzdGF0ZW1lbnQuCi0raWYgdGVzdCAiJGRlcG1vZGUiID0gaHA7IHRoZW4KLSsgICMgSFAgY29t cGlsZXIgdXNlcyAtTSBhbmQgbm8gZXh0cmEgYXJnLgotKyAgZ2NjZmxhZz0tTQotKyAgZGVwbW9k ZT1nY2MKLStmaQotKwotK2lmIHRlc3QgIiRkZXBtb2RlIiA9IGRhc2hYbXN0ZG91dDsgdGhlbgot KyAgICMgVGhpcyBpcyBqdXN0IGxpa2UgZGFzaG1zdGRvdXQgd2l0aCBhIGRpZmZlcmVudCBhcmd1 bWVudC4KLSsgICBkYXNobWZsYWc9LXhNCi0rICAgZGVwbW9kZT1kYXNobXN0ZG91dAotK2ZpCi0r Ci0rY3lncGF0aF91PSJjeWdwYXRoIC11IC1mIC0iCi0raWYgdGVzdCAiJGRlcG1vZGUiID0gbXN2 Y21zeXM7IHRoZW4KLSsgICAjIFRoaXMgaXMganVzdCBsaWtlIG1zdmlzdWFsY3BwIGJ1dCB3L28g Y3lncGF0aCB0cmFuc2xhdGlvbi4KLSsgICAjIEp1c3QgY29udmVydCB0aGUgYmFja3NsYXNoLWVz Y2FwZWQgYmFja3NsYXNoZXMgdG8gc2luZ2xlIGZvcndhcmQKLSsgICAjIHNsYXNoZXMgdG8gc2F0 aXNmeSBkZXBlbmQubTQKLSsgICBjeWdwYXRoX3U9InNlZCBzLFxcXFxcXFxcLC8sZyIKLSsgICBk ZXBtb2RlPW1zdmlzdWFsY3BwCi0rZmkKLSsKLStjYXNlICIkZGVwbW9kZSIgaW4KLStnY2MzKQot KyMjIGdjYyAzIGltcGxlbWVudHMgZGVwZW5kZW5jeSB0cmFja2luZyB0aGF0IGRvZXMgZXhhY3Rs eSB3aGF0Ci0rIyMgd2Ugd2FudC4gIFlheSEgIE5vdGU6IGZvciBzb21lIHJlYXNvbiBsaWJ0b29s IDEuNCBkb2Vzbid0IGxpa2UKLSsjIyBpdCBpZiAtTUQgLU1QIGNvbWVzIGFmdGVyIHRoZSAtTUYg c3R1ZmYuICBIbW0uCi0rIyMgVW5mb3J0dW5hdGVseSwgRnJlZUJTRCBjODkgYWNjZXB0YW5jZSBv ZiBmbGFncyBkZXBlbmRzIHVwb24KLSsjIyB0aGUgY29tbWFuZCBsaW5lIGFyZ3VtZW50IG9yZGVy OyBzbyBhZGQgdGhlIGZsYWdzIHdoZXJlIHRoZXkKLSsjIyBhcHBlYXIgaW4gZGVwZW5kMi5hbS4g IE5vdGUgdGhhdCB0aGUgc2xvd2Rvd24gaW5jdXJyZWQgaGVyZQotKyMjIGFmZmVjdHMgb25seSBj b25maWd1cmU6IGluIG1ha2VmaWxlcywgJUZBU1RERVAlIHNob3J0Y3V0cyB0aGlzLgotKyAgZm9y IGFyZwotKyAgZG8KLSsgICAgY2FzZSAkYXJnIGluCi0rICAgIC1jKSBzZXQgZm5vcmQgIiRAIiAt TVQgIiRvYmplY3QiIC1NRCAtTVAgLU1GICIkdG1wZGVwZmlsZSIgIiRhcmciIDs7Ci0rICAgICop ICBzZXQgZm5vcmQgIiRAIiAiJGFyZyIgOzsKLSsgICAgZXNhYwotKyAgICBzaGlmdCAjIGZub3Jk Ci0rICAgIHNoaWZ0ICMgJGFyZwotKyAgZG9uZQotKyAgIiRAIgotKyAgc3RhdD0kPwotKyAgaWYg dGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICBlbHNlCi0rICAgIHJtIC1mICIkdG1wZGVwZmls ZSIKLSsgICAgZXhpdCAkc3RhdAotKyAgZmkKLSsgIG12ICIkdG1wZGVwZmlsZSIgIiRkZXBmaWxl IgotKyAgOzsKLSsKLStnY2MpCi0rIyMgVGhlcmUgYXJlIHZhcmlvdXMgd2F5cyB0byBnZXQgZGVw ZW5kZW5jeSBvdXRwdXQgZnJvbSBnY2MuICBIZXJlJ3MKLSsjIyB3aHkgd2UgcGljayB0aGlzIHJh dGhlciBvYnNjdXJlIG1ldGhvZDoKLSsjIyAtIERvbid0IHdhbnQgdG8gdXNlIC1NRCBiZWNhdXNl IHdlJ2QgbGlrZSB0aGUgZGVwZW5kZW5jaWVzIHRvIGVuZAotKyMjICAgdXAgaW4gYSBzdWJkaXIu ICBIYXZpbmcgdG8gcmVuYW1lIGJ5IGhhbmQgaXMgdWdseS4KLSsjIyAgIChXZSBtaWdodCBlbmQg dXAgZG9pbmcgdGhpcyBhbnl3YXkgdG8gc3VwcG9ydCBvdGhlciBjb21waWxlcnMuKQotKyMjIC0g VGhlIERFUEVOREVOQ0lFU19PVVRQVVQgZW52aXJvbm1lbnQgdmFyaWFibGUgbWFrZXMgZ2NjIGFj dCBsaWtlCi0rIyMgICAtTU0sIG5vdCAtTSAoZGVzcGl0ZSB3aGF0IHRoZSBkb2NzIHNheSkuCi0r IyMgLSBVc2luZyAtTSBkaXJlY3RseSBtZWFucyBydW5uaW5nIHRoZSBjb21waWxlciB0d2ljZSAo ZXZlbiB3b3JzZQotKyMjICAgdGhhbiByZW5hbWluZykuCi0rICBpZiB0ZXN0IC16ICIkZ2NjZmxh ZyI7IHRoZW4KLSsgICAgZ2NjZmxhZz0tTUQsCi0rICBmaQotKyAgIiRAIiAtV3AsIiRnY2NmbGFn JHRtcGRlcGZpbGUiCi0rICBzdGF0PSQ/Ci0rICBpZiB0ZXN0ICRzdGF0IC1lcSAwOyB0aGVuIDoK LSsgIGVsc2UKLSsgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgICBleGl0ICRzdGF0Ci0rICBm aQotKyAgcm0gLWYgIiRkZXBmaWxlIgotKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ICIkZGVwZmls ZSIKLSsgIGFscGhhPUFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFy c3R1dnd4eXoKLSsjIyBUaGUgc2Vjb25kIC1lIGV4cHJlc3Npb24gaGFuZGxlcyBET1Mtc3R5bGUg ZmlsZSBuYW1lcyB3aXRoIGRyaXZlIGxldHRlcnMuCi0rICBzZWQgLWUgJ3MvXlteOl0qOiAvIC8n IFwKLSsgICAgICAtZSAncy9eWyckYWxwaGEnXTpcL1teOl0qOiAvIC8nIDwgIiR0bXBkZXBmaWxl IiA+PiAiJGRlcGZpbGUiCi0rIyMgVGhpcyBuZXh0IHBpZWNlIG9mIG1hZ2ljIGF2b2lkcyB0aGUg YGRlbGV0ZWQgaGVhZGVyIGZpbGUnIHByb2JsZW0uCi0rIyMgVGhlIHByb2JsZW0gaXMgdGhhdCB3 aGVuIGEgaGVhZGVyIGZpbGUgd2hpY2ggYXBwZWFycyBpbiBhIC5QIGZpbGUKLSsjIyBpcyBkZWxl dGVkLCB0aGUgZGVwZW5kZW5jeSBjYXVzZXMgbWFrZSB0byBkaWUgKGJlY2F1c2UgdGhlcmUgaXMK LSsjIyB0eXBpY2FsbHkgbm8gd2F5IHRvIHJlYnVpbGQgdGhlIGhlYWRlcikuICBXZSBhdm9pZCB0 aGlzIGJ5IGFkZGluZwotKyMjIGR1bW15IGRlcGVuZGVuY2llcyBmb3IgZWFjaCBoZWFkZXIgZmls ZS4gIFRvbyBiYWQgZ2NjIGRvZXNuJ3QgZG8KLSsjIyB0aGlzIGZvciB1cyBkaXJlY3RseS4KLSsg IHRyICcgJyAnCi0rJyA8ICIkdG1wZGVwZmlsZSIgfAotKyMjIFNvbWUgdmVyc2lvbnMgb2YgZ2Nj IHB1dCBhIHNwYWNlIGJlZm9yZSB0aGUgYDonLiAgT24gdGhlIHRoZW9yeQotKyMjIHRoYXQgdGhl IHNwYWNlIG1lYW5zIHNvbWV0aGluZywgd2UgYWRkIGEgc3BhY2UgdG8gdGhlIG91dHB1dCBhcwot KyMjIHdlbGwuCi0rIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3Qg cHJvY2VzcyB0aGlzIGludm9jYXRpb24KLSsjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRv IHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgotKyAgICBzZWQgLWUgJ3MvXlxc JC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmls ZSIKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0rCi0raHApCi0rICAjIFRoaXMgY2Fz ZSBleGlzdHMgb25seSB0byBsZXQgZGVwZW5kLm00IGRvIGl0cyB3b3JrLiAgSXQgd29ya3MgYnkK LSsgICMgbG9va2luZyBhdCB0aGUgdGV4dCBvZiB0aGlzIHNjcmlwdC4gIFRoaXMgY2FzZSB3aWxs IG5ldmVyIGJlIHJ1biwKLSsgICMgc2luY2UgaXQgaXMgY2hlY2tlZCBmb3IgYWJvdmUuCi0rICBl eGl0IDEKLSsgIDs7Ci0rCi0rc2dpKQotKyAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVu Ci0rICAgICIkQCIgIi1XcCwtTUR1cGRhdGUsJHRtcGRlcGZpbGUiCi0rICBlbHNlCi0rICAgICIk QCIgLU1EdXBkYXRlICIkdG1wZGVwZmlsZSIKLSsgIGZpCi0rICBzdGF0PSQ/Ci0rICBpZiB0ZXN0 ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVsc2UKLSsgICAgcm0gLWYgIiR0bXBkZXBmaWxlIgot KyAgICBleGl0ICRzdGF0Ci0rICBmaQotKyAgcm0gLWYgIiRkZXBmaWxlIgotKwotKyAgaWYgdGVz dCAtZiAiJHRtcGRlcGZpbGUiOyB0aGVuICAjIHllcywgdGhlIHNvdXJjZWZpbGUgZGVwZW5kIG9u IG90aGVyIGZpbGVzCi0rICAgIGVjaG8gIiRvYmplY3QgOiBcXCIgPiAiJGRlcGZpbGUiCi0rCi0r ICAgICMgQ2xpcCBvZmYgdGhlIGluaXRpYWwgZWxlbWVudCAodGhlIGRlcGVuZGVudCkuICBEb24n dCB0cnkgdG8gYmUKLSsgICAgIyBjbGV2ZXIgYW5kIHJlcGxhY2UgdGhpcyB3aXRoIHNlZCBjb2Rl LCBhcyBJUklYIHNlZCB3b24ndCBoYW5kbGUKLSsgICAgIyBsaW5lcyB3aXRoIG1vcmUgdGhhbiBh IGZpeGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzICg0MDk2IGluCi0rICAgICMgSVJJWCA2LjIgc2Vk LCA4MTkyIGluIElSSVggNi41KS4gIFdlIGFsc28gcmVtb3ZlIGNvbW1lbnQgbGluZXM7Ci0rICAg ICMgdGhlIElSSVggY2MgYWRkcyBjb21tZW50cyBsaWtlIGAjOmZlYycgdG8gdGhlIGVuZCBvZiB0 aGUKLSsgICAgIyBkZXBlbmRlbmN5IGxpbmUuCi0rICAgIHRyICcgJyAnCi0rJyA8ICIkdG1wZGVw ZmlsZSIgXAotKyAgICB8IHNlZCAtZSAncy9eLipcLm86Ly8nIC1lICdzLyMuKiQvLycgLWUgJy9e JC8gZCcgfCBcCi0rICAgIHRyICcKLSsnICcgJyA+PiAiJGRlcGZpbGUiCi0rICAgIGVjaG8gPj4g IiRkZXBmaWxlIgotKwotKyAgICAjIFRoZSBzZWNvbmQgcGFzcyBnZW5lcmF0ZXMgYSBkdW1teSBl bnRyeSBmb3IgZWFjaCBoZWFkZXIgZmlsZS4KLSsgICAgdHIgJyAnICcKLSsnIDwgIiR0bXBkZXBm aWxlIiBcCi0rICAgfCBzZWQgLWUgJ3MvXi4qXC5vOi8vJyAtZSAncy8jLiokLy8nIC1lICcvXiQv IGQnIC1lICdzLyQvOi8nIFwKLSsgICA+PiAiJGRlcGZpbGUiCi0rICBlbHNlCi0rICAgICMgVGhl IHNvdXJjZWZpbGUgZG9lcyBub3QgY29udGFpbiBhbnkgZGVwZW5kZW5jaWVzLCBzbyBqdXN0Ci0r ICAgICMgc3RvcmUgYSBkdW1teSBjb21tZW50IGxpbmUsIHRvIGF2b2lkIGVycm9ycyB3aXRoIHRo ZSBNYWtlZmlsZQotKyAgICAjICJpbmNsdWRlIGJhc2VuYW1lLlBsbyIgc2NoZW1lLgotKyAgICBl Y2hvICIjZHVtbXkiID4gIiRkZXBmaWxlIgotKyAgZmkKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIK LSsgIDs7Ci0rCi0rYWl4KQotKyAgIyBUaGUgQyBmb3IgQUlYIENvbXBpbGVyIHVzZXMgLU0gYW5k IG91dHB1dHMgdGhlIGRlcGVuZGVuY2llcwotKyAgIyBpbiBhIC51IGZpbGUuICBJbiBvbGRlciB2 ZXJzaW9ucywgdGhpcyBmaWxlIGFsd2F5cyBsaXZlcyBpbiB0aGUKLSsgICMgY3VycmVudCBkaXJl Y3RvcnkuICBBbHNvLCB0aGUgQUlYIGNvbXBpbGVyIHB1dHMgYCRvYmplY3Q6JyBhdCB0aGUKLSsg ICMgc3RhcnQgb2YgZWFjaCBsaW5lOyAkb2JqZWN0IGRvZXNuJ3QgaGF2ZSBkaXJlY3RvcnkgaW5m b3JtYXRpb24uCi0rICAjIFZlcnNpb24gNiB1c2VzIHRoZSBkaXJlY3RvcnkgaW4gYm90aCBjYXNl cy4KLSsgIGRpcj1gZWNobyAiJG9iamVjdCIgfCBzZWQgLWUgJ3N8L1teL10qJHwvfCdgCi0rICB0 ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KLSsgIGJhc2U9YGVjaG8gIiRvYmplY3Qi IHwgc2VkIC1lICdzfF4uKi98fCcgLWUgJ3MvXC5vJC8vJyAtZSAncy9cLmxvJC8vJ2AKLSsgIGlm IHRlc3QgIiRsaWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB0bXBkZXBmaWxlMT0kZGlyJGJhc2Uu dQotKyAgICB0bXBkZXBmaWxlMj0kYmFzZS51Ci0rICAgIHRtcGRlcGZpbGUzPSRkaXIubGlicy8k YmFzZS51Ci0rICAgICIkQCIgLVdjLC1NCi0rICBlbHNlCi0rICAgIHRtcGRlcGZpbGUxPSRkaXIk YmFzZS51Ci0rICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS51Ci0rICAgIHRtcGRlcGZpbGUzPSRk aXIkYmFzZS51Ci0rICAgICIkQCIgLU0KLSsgIGZpCi0rICBzdGF0PSQ/Ci0rCi0rICBpZiB0ZXN0 ICRzdGF0IC1lcSAwOyB0aGVuIDoKLSsgIGVsc2UKLSsgICAgcm0gLWYgIiR0bXBkZXBmaWxlMSIg IiR0bXBkZXBmaWxlMiIgIiR0bXBkZXBmaWxlMyIKLSsgICAgZXhpdCAkc3RhdAotKyAgZmkKLSsK LSsgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIiICIkdG1w ZGVwZmlsZTMiCi0rICBkbwotKyAgICB0ZXN0IC1mICIkdG1wZGVwZmlsZSIgJiYgYnJlYWsKLSsg IGRvbmUKLSsgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgotKyAgICAjIEVhY2ggbGlu ZSBpcyBvZiB0aGUgZm9ybSBgZm9vLm86IGRlcGVuZGVudC5oJy4KLSsgICAgIyBEbyB0d28gcGFz c2VzLCBvbmUgdG8ganVzdCBjaGFuZ2UgdGhlc2UgdG8KLSsgICAgIyBgJG9iamVjdDogZGVwZW5k ZW50LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgotKyAgICBzZWQgLWUgInMs Xi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgotKyAg ICAjIFRoYXQncyBhIHRhYiBhbmQgYSBzcGFjZSBpbiB0aGUgW10uCi0rICAgIHNlZCAtZSAncyxe LipcLlthLXpdKjpbCSBdKiwsJyAtZSAncywkLDosJyA8ICIkdG1wZGVwZmlsZSIgPj4gIiRkZXBm aWxlIgotKyAgZWxzZQotKyAgICAjIFRoZSBzb3VyY2VmaWxlIGRvZXMgbm90IGNvbnRhaW4gYW55 IGRlcGVuZGVuY2llcywgc28ganVzdAotKyAgICAjIHN0b3JlIGEgZHVtbXkgY29tbWVudCBsaW5l LCB0byBhdm9pZCBlcnJvcnMgd2l0aCB0aGUgTWFrZWZpbGUKLSsgICAgIyAiaW5jbHVkZSBiYXNl bmFtZS5QbG8iIHNjaGVtZS4KLSsgICAgZWNobyAiI2R1bW15IiA+ICIkZGVwZmlsZSIKLSsgIGZp Ci0rICBybSAtZiAiJHRtcGRlcGZpbGUiCi0rICA7OwotKwotK2ljYykKLSsgICMgSW50ZWwncyBD IGNvbXBpbGVyIHVuZGVyc3RhbmRzIGAtTUQgLU1GIGZpbGUnLiAgSG93ZXZlciBvbgotKyAgIyAg ICBpY2MgLU1EIC1NRiBmb28uZCAtYyAtbyBzdWIvZm9vLm8gc3ViL2Zvby5jCi0rICAjIElDQyA3 LjAgd2lsbCBmaWxsIGZvby5kIHdpdGggc29tZXRoaW5nIGxpa2UKLSsgICMgICAgZm9vLm86IHN1 Yi9mb28uYwotKyAgIyAgICBmb28ubzogc3ViL2Zvby5oCi0rICAjIHdoaWNoIGlzIHdyb25nLiAg V2Ugd2FudDoKLSsgICMgICAgc3ViL2Zvby5vOiBzdWIvZm9vLmMKLSsgICMgICAgc3ViL2Zvby5v OiBzdWIvZm9vLmgKLSsgICMgICAgc3ViL2Zvby5jOgotKyAgIyAgICBzdWIvZm9vLmg6Ci0rICAj IElDQyA3LjEgd2lsbCBvdXRwdXQKLSsgICMgICAgZm9vLm86IHN1Yi9mb28uYyBzdWIvZm9vLmgK LSsgICMgYW5kIHdpbGwgd3JhcCBsb25nIGxpbmVzIHVzaW5nIFwgOgotKyAgIyAgICBmb28ubzog c3ViL2Zvby5jIC4uLiBcCi0rICAjICAgICBzdWIvZm9vLmggLi4uIFwKLSsgICMgICAgIC4uLgot KwotKyAgIiRAIiAtTUQgLU1GICIkdG1wZGVwZmlsZSIKLSsgIHN0YXQ9JD8KLSsgIGlmIHRlc3Qg JHN0YXQgLWVxIDA7IHRoZW4gOgotKyAgZWxzZQotKyAgICBybSAtZiAiJHRtcGRlcGZpbGUiCi0r ICAgIGV4aXQgJHN0YXQKLSsgIGZpCi0rICBybSAtZiAiJGRlcGZpbGUiCi0rICAjIEVhY2ggbGlu ZSBpcyBvZiB0aGUgZm9ybSBgZm9vLm86IGRlcGVuZGVudC5oJywKLSsgICMgb3IgYGZvby5vOiBk ZXAxLmggZGVwMi5oIFwnLCBvciBgIGRlcDMuaCBkZXA0LmggXCcuCi0rICAjIERvIHR3byBwYXNz ZXMsIG9uZSB0byBqdXN0IGNoYW5nZSB0aGVzZSB0bwotKyAgIyBgJG9iamVjdDogZGVwZW5kZW50 LmgnIGFuZCBvbmUgdG8gc2ltcGx5IGBkZXBlbmRlbnQuaDonLgotKyAgc2VkICJzLF5bXjpdKjos JG9iamVjdCA6LCIgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgotKyAgIyBTb21lIHZlcnNp b25zIG9mIHRoZSBIUFVYIDEwLjIwIHNlZCBjYW4ndCBwcm9jZXNzIHRoaXMgaW52b2NhdGlvbgot KyAgIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRvIHR3byBzZWQgaW52b2NhdGlvbnMgaXMg YSB3b3JrYXJvdW5kLgotKyAgc2VkICdzLF5bXjpdKjogXCguKlwpJCxcMSw7cy9eXFwkLy87L14k L2Q7LzokL2QnIDwgIiR0bXBkZXBmaWxlIiB8Ci0rICAgIHNlZCAtZSAncy8kLyA6LycgPj4gIiRk ZXBmaWxlIgotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIgotKyAgOzsKLSsKLStocDIpCi0rICAjIFRo ZSAiaHAiIHN0YW56YSBhYm92ZSBkb2VzIG5vdCB3b3JrIHdpdGggYUNDIChDKyspIGFuZCBIUCdz IGlhNjQKLSsgICMgY29tcGlsZXJzLCB3aGljaCBoYXZlIGludGVncmF0ZWQgcHJlcHJvY2Vzc29y cy4gIFRoZSBjb3JyZWN0IG9wdGlvbgotKyAgIyB0byB1c2Ugd2l0aCB0aGVzZSBpcyArTWFrZWQ7 IGl0IHdyaXRlcyBkZXBlbmRlbmNpZXMgdG8gYSBmaWxlIG5hbWVkCi0rICAjICdmb28uZCcsIHdo aWNoIGxhbmRzIG5leHQgdG8gdGhlIG9iamVjdCBmaWxlLCB3aGVyZXZlciB0aGF0Ci0rICAjIGhh cHBlbnMgdG8gYmUuCi0rICAjIE11Y2ggb2YgdGhpcyBpcyBzaW1pbGFyIHRvIHRoZSB0cnU2NCBj YXNlOyBzZWUgY29tbWVudHMgdGhlcmUuCi0rICBkaXI9YGVjaG8gIiRvYmplY3QiIHwgc2VkIC1l ICdzfC9bXi9dKiR8L3wnYAotKyAgdGVzdCAieCRkaXIiID0gIngkb2JqZWN0IiAmJiBkaXI9Ci0r ICBiYXNlPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycg LWUgJ3MvXC5sbyQvLydgCi0rICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4KLSsgICAg dG1wZGVwZmlsZTE9JGRpciRiYXNlLmQKLSsgICAgdG1wZGVwZmlsZTI9JGRpci5saWJzLyRiYXNl LmQKLSsgICAgIiRAIiAtV2MsK01ha2VkCi0rICBlbHNlCi0rICAgIHRtcGRlcGZpbGUxPSRkaXIk YmFzZS5kCi0rICAgIHRtcGRlcGZpbGUyPSRkaXIkYmFzZS5kCi0rICAgICIkQCIgK01ha2VkCi0r ICBmaQotKyAgc3RhdD0kPwotKyAgaWYgdGVzdCAkc3RhdCAtZXEgMDsgdGhlbiA6Ci0rICBlbHNl Ci0rICAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUyIgotKyAgICAgZXhpdCAk c3RhdAotKyAgZmkKLSsKLSsgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIkdG1w ZGVwZmlsZTIiCi0rICBkbwotKyAgICB0ZXN0IC1mICIkdG1wZGVwZmlsZSIgJiYgYnJlYWsKLSsg IGRvbmUKLSsgIGlmIHRlc3QgLWYgIiR0bXBkZXBmaWxlIjsgdGhlbgotKyAgICBzZWQgLWUgInMs Xi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKLSsgICAg IyBBZGQgYGRlcGVuZGVudC5oOicgbGluZXMuCi0rICAgIHNlZCAtbmUgJzIsJHsKLSsJICAgICAg IHMvXiAqLy8KLSsJICAgICAgIHMvIFxcKiQvLwotKwkgICAgICAgcy8kLzovCi0rCSAgICAgICBw Ci0rCSAgICAgfScgIiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCi0rICBlbHNlCi0rICAgIGVj aG8gIiNkdW1teSIgPiAiJGRlcGZpbGUiCi0rICBmaQotKyAgcm0gLWYgIiR0bXBkZXBmaWxlIiAi JHRtcGRlcGZpbGUyIgotKyAgOzsKLSsKLSt0cnU2NCkKLSsgICAjIFRoZSBUcnU2NCBjb21waWxl ciB1c2VzIC1NRCB0byBnZW5lcmF0ZSBkZXBlbmRlbmNpZXMgYXMgYSBzaWRlCi0rICAgIyBlZmZl Y3QuICBgY2MgLU1EIC1vIGZvby5vIC4uLicgcHV0cyB0aGUgZGVwZW5kZW5jaWVzIGludG8gYGZv by5vLmQnLgotKyAgICMgQXQgbGVhc3Qgb24gQWxwaGEvUmVkaGF0IDYuMSwgQ29tcGFxIENDQyBW Ni4yLTUwNCBzZWVtcyB0byBwdXQKLSsgICAjIGRlcGVuZGVuY2llcyBpbiBgZm9vLmQnIGluc3Rl YWQsIHNvIHdlIGNoZWNrIGZvciB0aGF0IHRvby4KLSsgICAjIFN1YmRpcmVjdG9yaWVzIGFyZSBy ZXNwZWN0ZWQuCi0rICAgZGlyPWBlY2hvICIkb2JqZWN0IiB8IHNlZCAtZSAnc3wvW14vXSokfC98 J2AKLSsgICB0ZXN0ICJ4JGRpciIgPSAieCRvYmplY3QiICYmIGRpcj0KLSsgICBiYXNlPWBlY2hv ICIkb2JqZWN0IiB8IHNlZCAtZSAnc3xeLiovfHwnIC1lICdzL1wubyQvLycgLWUgJ3MvXC5sbyQv LydgCi0rCi0rICAgaWYgdGVzdCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgICAgIyBXaXRo IFRydTY0IGNjLCBzaGFyZWQgb2JqZWN0cyBjYW4gYWxzbyBiZSB1c2VkIHRvIG1ha2UgYQotKyAg ICAgICMgc3RhdGljIGxpYnJhcnkuICBUaGlzIG1lY2hhbmlzbSBpcyB1c2VkIGluIGxpYnRvb2wg MS40IHNlcmllcyB0bwotKyAgICAgICMgaGFuZGxlIGJvdGggc2hhcmVkIGFuZCBzdGF0aWMgbGli cmFyaWVzIGluIGEgc2luZ2xlIGNvbXBpbGF0aW9uLgotKyAgICAgICMgV2l0aCBsaWJ0b29sIDEu NCwgZGVwZW5kZW5jaWVzIHdlcmUgb3V0cHV0IGluICRkaXIubGlicy8kYmFzZS5sby5kLgotKyAg ICAgICMKLSsgICAgICAjIFdpdGggbGlidG9vbCAxLjUgdGhpcyBleGNlcHRpb24gd2FzIHJlbW92 ZWQsIGFuZCBsaWJ0b29sIG5vdwotKyAgICAgICMgZ2VuZXJhdGVzIDIgc2VwYXJhdGUgb2JqZWN0 cyBmb3IgdGhlIDIgbGlicmFyaWVzLiAgVGhlc2UgdHdvCi0rICAgICAgIyBjb21waWxhdGlvbnMg b3V0cHV0IGRlcGVuZGVuY2llcyBpbiAkZGlyLmxpYnMvJGJhc2Uuby5kIGFuZAotKyAgICAgICMg aW4gJGRpciRiYXNlLm8uZC4gIFdlIGhhdmUgdG8gY2hlY2sgZm9yIGJvdGggZmlsZXMsIGJlY2F1 c2UKLSsgICAgICAjIG9uZSBvZiB0aGUgdHdvIGNvbXBpbGF0aW9ucyBjYW4gYmUgZGlzYWJsZWQu ICBXZSBzaG91bGQgcHJlZmVyCi0rICAgICAgIyAkZGlyJGJhc2Uuby5kIG92ZXIgJGRpci5saWJz LyRiYXNlLm8uZCBiZWNhdXNlIHRoZSBsYXR0ZXIgaXMKLSsgICAgICAjIGF1dG9tYXRpY2FsbHkg Y2xlYW5lZCB3aGVuIC5saWJzLyBpcyBkZWxldGVkLCB3aGlsZSBpZ25vcmluZwotKyAgICAgICMg dGhlIGZvcm1lciB3b3VsZCBjYXVzZSBhIGRpc3RjbGVhbmNoZWNrIHBhbmljLgotKyAgICAgIHRt cGRlcGZpbGUxPSRkaXIubGlicy8kYmFzZS5sby5kICAgIyBsaWJ0b29sIDEuNAotKyAgICAgIHRt cGRlcGZpbGUyPSRkaXIkYmFzZS5vLmQgICAgICAgICAgIyBsaWJ0b29sIDEuNQotKyAgICAgIHRt cGRlcGZpbGUzPSRkaXIubGlicy8kYmFzZS5vLmQgICAgIyBsaWJ0b29sIDEuNQotKyAgICAgIHRt cGRlcGZpbGU0PSRkaXIubGlicy8kYmFzZS5kICAgICAgIyBDb21wYXEgQ0NDIFY2LjItNTA0Ci0r ICAgICAgIiRAIiAtV2MsLU1ECi0rICAgZWxzZQotKyAgICAgIHRtcGRlcGZpbGUxPSRkaXIkYmFz ZS5vLmQKLSsgICAgICB0bXBkZXBmaWxlMj0kZGlyJGJhc2UuZAotKyAgICAgIHRtcGRlcGZpbGUz PSRkaXIkYmFzZS5kCi0rICAgICAgdG1wZGVwZmlsZTQ9JGRpciRiYXNlLmQKLSsgICAgICAiJEAi IC1NRAotKyAgIGZpCi0rCi0rICAgc3RhdD0kPwotKyAgIGlmIHRlc3QgJHN0YXQgLWVxIDA7IHRo ZW4gOgotKyAgIGVsc2UKLSsgICAgICBybSAtZiAiJHRtcGRlcGZpbGUxIiAiJHRtcGRlcGZpbGUy IiAiJHRtcGRlcGZpbGUzIiAiJHRtcGRlcGZpbGU0IgotKyAgICAgIGV4aXQgJHN0YXQKLSsgICBm aQotKwotKyAgIGZvciB0bXBkZXBmaWxlIGluICIkdG1wZGVwZmlsZTEiICIkdG1wZGVwZmlsZTIi ICIkdG1wZGVwZmlsZTMiICIkdG1wZGVwZmlsZTQiCi0rICAgZG8KLSsgICAgIHRlc3QgLWYgIiR0 bXBkZXBmaWxlIiAmJiBicmVhawotKyAgIGRvbmUKLSsgICBpZiB0ZXN0IC1mICIkdG1wZGVwZmls ZSI7IHRoZW4KLSsgICAgICBzZWQgLWUgInMsXi4qXC5bYS16XSo6LCRvYmplY3Q6LCIgPCAiJHRt cGRlcGZpbGUiID4gIiRkZXBmaWxlIgotKyAgICAgICMgVGhhdCdzIGEgdGFiIGFuZCBhIHNwYWNl IGluIHRoZSBbXS4KLSsgICAgICBzZWQgLWUgJ3MsXi4qXC5bYS16XSo6WwkgXSosLCcgLWUgJ3Ms JCw6LCcgPCAiJHRtcGRlcGZpbGUiID4+ICIkZGVwZmlsZSIKLSsgICBlbHNlCi0rICAgICAgZWNo byAiI2R1bW15IiA+ICIkZGVwZmlsZSIKLSsgICBmaQotKyAgIHJtIC1mICIkdG1wZGVwZmlsZSIK LSsgICA7OwotKwotKyNub3NpZGVlZmZlY3QpCi0rICAjIFRoaXMgY29tbWVudCBhYm92ZSBpcyB1 c2VkIGJ5IGF1dG9tYWtlIHRvIHRlbGwgc2lkZS1lZmZlY3QKLSsgICMgZGVwZW5kZW5jeSB0cmFj a2luZyBtZWNoYW5pc21zIGZyb20gc2xvd2VyIG9uZXMuCi0rCi0rZGFzaG1zdGRvdXQpCi0rICAj IEltcG9ydGFudCBub3RlOiBpbiBvcmRlciB0byBzdXBwb3J0IHRoaXMgbW9kZSwgYSBjb21waWxl ciAqbXVzdCoKLSsgICMgYWx3YXlzIHdyaXRlIHRoZSBwcmVwcm9jZXNzZWQgZmlsZSB0byBzdGRv dXQsIHJlZ2FyZGxlc3Mgb2YgLW8uCi0rICAiJEAiIHx8IGV4aXQgJD8KLSsKLSsgICMgUmVtb3Zl IHRoZSBjYWxsIHRvIExpYnRvb2wuCi0rICBpZiB0ZXN0ICIkbGlidG9vbCIgPSB5ZXM7IHRoZW4K LSsgICAgd2hpbGUgdGVzdCAiWCQxIiAhPSAnWC0tbW9kZT1jb21waWxlJzsgZG8KLSsgICAgICBz aGlmdAotKyAgICBkb25lCi0rICAgIHNoaWZ0Ci0rICBmaQotKwotKyAgIyBSZW1vdmUgYC1vICRv YmplY3QnLgotKyAgSUZTPSIgIgotKyAgZm9yIGFyZwotKyAgZG8KLSsgICAgY2FzZSAkYXJnIGlu Ci0rICAgIC1vKQotKyAgICAgIHNoaWZ0Ci0rICAgICAgOzsKLSsgICAgJG9iamVjdCkKLSsgICAg ICBzaGlmdAotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmci Ci0rICAgICAgc2hpZnQgIyBmbm9yZAotKyAgICAgIHNoaWZ0ICMgJGFyZwotKyAgICAgIDs7Ci0r ICAgIGVzYWMKLSsgIGRvbmUKLSsKLSsgIHRlc3QgLXogIiRkYXNobWZsYWciICYmIGRhc2htZmxh Zz0tTQotKyAgIyBSZXF1aXJlIGF0IGxlYXN0IHR3byBjaGFyYWN0ZXJzIGJlZm9yZSBzZWFyY2hp bmcgZm9yIGA6JwotKyAgIyBpbiB0aGUgdGFyZ2V0IG5hbWUuICBUaGlzIGlzIHRvIGNvcGUgd2l0 aCBET1Mtc3R5bGUgZmlsZW5hbWVzOgotKyAgIyBhIGRlcGVuZGVuY3kgc3VjaCBhcyBgYzovZm9v L2JhcicgY291bGQgYmUgc2VlbiBhcyB0YXJnZXQgYGMnIG90aGVyd2lzZS4KLSsgICIkQCIgJGRh c2htZmxhZyB8Ci0rICAgIHNlZCAnczpeWyAgXSpbXjogXVteOl1bXjpdKlw6WyAgICBdKjonIiRv YmplY3QiJ1w6IDonID4gIiR0bXBkZXBmaWxlIgotKyAgcm0gLWYgIiRkZXBmaWxlIgotKyAgY2F0 IDwgIiR0bXBkZXBmaWxlIiA+ICIkZGVwZmlsZSIKLSsgIHRyICcgJyAnCi0rJyA8ICIkdG1wZGVw ZmlsZSIgfCBcCi0rIyMgU29tZSB2ZXJzaW9ucyBvZiB0aGUgSFBVWCAxMC4yMCBzZWQgY2FuJ3Qg cHJvY2VzcyB0aGlzIGludm9jYXRpb24KLSsjIyBjb3JyZWN0bHkuICBCcmVha2luZyBpdCBpbnRv IHR3byBzZWQgaW52b2NhdGlvbnMgaXMgYSB3b3JrYXJvdW5kLgotKyAgICBzZWQgLWUgJ3MvXlxc JC8vJyAtZSAnL14kL2QnIC1lICcvOiQvZCcgfCBzZWQgLWUgJ3MvJC8gOi8nID4+ICIkZGVwZmls ZSIKLSsgIHJtIC1mICIkdG1wZGVwZmlsZSIKLSsgIDs7Ci0rCi0rZGFzaFhtc3Rkb3V0KQotKyAg IyBUaGlzIGNhc2Ugb25seSBleGlzdHMgdG8gc2F0aXNmeSBkZXBlbmQubTQuICBJdCBpcyBuZXZl ciBhY3R1YWxseQotKyAgIyBydW4sIGFzIHRoaXMgbW9kZSBpcyBzcGVjaWFsbHkgcmVjb2duaXpl ZCBpbiB0aGUgcHJlYW1ibGUuCi0rICBleGl0IDEKLSsgIDs7Ci0rCi0rbWFrZWRlcGVuZCkKLSsg ICIkQCIgfHwgZXhpdCAkPwotKyAgIyBSZW1vdmUgYW55IExpYnRvb2wgY2FsbAotKyAgaWYgdGVz dCAiJGxpYnRvb2wiID0geWVzOyB0aGVuCi0rICAgIHdoaWxlIHRlc3QgIlgkMSIgIT0gJ1gtLW1v ZGU9Y29tcGlsZSc7IGRvCi0rICAgICAgc2hpZnQKLSsgICAgZG9uZQotKyAgICBzaGlmdAotKyAg ZmkKLSsgICMgWCBtYWtlZGVwZW5kCi0rICBzaGlmdAotKyAgY2xlYXJlZD1ubyBlYXQ9bm8KLSsg IGZvciBhcmcKLSsgIGRvCi0rICAgIGNhc2UgJGNsZWFyZWQgaW4KLSsgICAgbm8pCi0rICAgICAg c2V0ICIiOyBzaGlmdAotKyAgICAgIGNsZWFyZWQ9eWVzIDs7Ci0rICAgIGVzYWMKLSsgICAgaWYg dGVzdCAkZWF0ID0geWVzOyB0aGVuCi0rICAgICAgZWF0PW5vCi0rICAgICAgY29udGludWUKLSsg ICAgZmkKLSsgICAgY2FzZSAiJGFyZyIgaW4KLSsgICAgLUQqfC1JKikKLSsgICAgICBzZXQgZm5v cmQgIiRAIiAiJGFyZyI7IHNoaWZ0IDs7Ci0rICAgICMgU3RyaXAgYW55IG9wdGlvbiB0aGF0IG1h a2VkZXBlbmQgbWF5IG5vdCB1bmRlcnN0YW5kLiAgUmVtb3ZlCi0rICAgICMgdGhlIG9iamVjdCB0 b28sIG90aGVyd2lzZSBtYWtlZGVwZW5kIHdpbGwgcGFyc2UgaXQgYXMgYSBzb3VyY2UgZmlsZS4K LSsgICAgLWFyY2gpCi0rICAgICAgZWF0PXllcyA7OwotKyAgICAtKnwkb2JqZWN0KQotKyAgICAg IDs7Ci0rICAgICopCi0rICAgICAgc2V0IGZub3JkICIkQCIgIiRhcmciOyBzaGlmdCA7OwotKyAg ICBlc2FjCi0rICBkb25lCi0rICBvYmpfc3VmZml4PWBlY2hvICIkb2JqZWN0IiB8IHNlZCAncy9e LipcLi8uLydgCi0rICB0b3VjaCAiJHRtcGRlcGZpbGUiCi0rICAke01BS0VERVBFTkQtbWFrZWRl cGVuZH0gLW8iJG9ial9zdWZmaXgiIC1mIiR0bXBkZXBmaWxlIiAiJEAiCi0rICBybSAtZiAiJGRl cGZpbGUiCi0rICBjYXQgPCAiJHRtcGRlcGZpbGUiID4gIiRkZXBmaWxlIgotKyAgc2VkICcxLDJk JyAiJHRtcGRlcGZpbGUiIHwgdHIgJyAnICcKLSsnIHwgXAotKyMjIFNvbWUgdmVyc2lvbnMgb2Yg dGhlIEhQVVggMTAuMjAgc2VkIGNhbid0IHByb2Nlc3MgdGhpcyBpbnZvY2F0aW9uCi0rIyMgY29y cmVjdGx5LiAgQnJlYWtpbmcgaXQgaW50byB0d28gc2VkIGludm9jYXRpb25zIGlzIGEgd29ya2Fy b3VuZC4KLSsgICAgc2VkIC1lICdzL15cXCQvLycgLWUgJy9eJC9kJyAtZSAnLzokL2QnIHwgc2Vk IC1lICdzLyQvIDovJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUiICIkdG1w ZGVwZmlsZSIuYmFrCi0rICA7OwotKwotK2NwcCkKLSsgICMgSW1wb3J0YW50IG5vdGU6IGluIG9y ZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgotKyAgIyBhbHdheXMg d3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KLSsgICIkQCIgfHwgZXhpdCAk PwotKwotKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KLSsgIGlmIHRlc3QgIiRsaWJ0 b29sIiA9IHllczsgdGhlbgotKyAgICB3aGlsZSB0ZXN0ICJYJDEiICE9ICdYLS1tb2RlPWNvbXBp bGUnOyBkbwotKyAgICAgIHNoaWZ0Ci0rICAgIGRvbmUKLSsgICAgc2hpZnQKLSsgIGZpCi0rCi0r ICAjIFJlbW92ZSBgLW8gJG9iamVjdCcuCi0rICBJRlM9IiAiCi0rICBmb3IgYXJnCi0rICBkbwot KyAgICBjYXNlICRhcmcgaW4KLSsgICAgLW8pCi0rICAgICAgc2hpZnQKLSsgICAgICA7OwotKyAg ICAkb2JqZWN0KQotKyAgICAgIHNoaWZ0Ci0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBzZXQg Zm5vcmQgIiRAIiAiJGFyZyIKLSsgICAgICBzaGlmdCAjIGZub3JkCi0rICAgICAgc2hpZnQgIyAk YXJnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZG9uZQotKwotKyAgIiRAIiAtRSB8Ci0rICAg IHNlZCAtbiAtZSAnL14jIFswLTldWzAtOV0qICJcKFteIl0qXCkiLiovIHM6OiBcMSBcXDpwJyBc Ci0rICAgICAgIC1lICcvXiNsaW5lIFswLTldWzAtOV0qICJcKFteIl0qXCkiLiovIHM6OiBcMSBc XDpwJyB8Ci0rICAgIHNlZCAnJCBzOiBcXCQ6OicgPiAiJHRtcGRlcGZpbGUiCi0rICBybSAtZiAi JGRlcGZpbGUiCi0rICBlY2hvICIkb2JqZWN0IDogXFwiID4gIiRkZXBmaWxlIgotKyAgY2F0IDwg IiR0bXBkZXBmaWxlIiA+PiAiJGRlcGZpbGUiCi0rICBzZWQgPCAiJHRtcGRlcGZpbGUiICcvXiQv ZDtzL14gLy87cy8gXFwkLy87cy8kLyA6LycgPj4gIiRkZXBmaWxlIgotKyAgcm0gLWYgIiR0bXBk ZXBmaWxlIgotKyAgOzsKLSsKLSttc3Zpc3VhbGNwcCkKLSsgICMgSW1wb3J0YW50IG5vdGU6IGlu IG9yZGVyIHRvIHN1cHBvcnQgdGhpcyBtb2RlLCBhIGNvbXBpbGVyICptdXN0KgotKyAgIyBhbHdh eXMgd3JpdGUgdGhlIHByZXByb2Nlc3NlZCBmaWxlIHRvIHN0ZG91dC4KLSsgICIkQCIgfHwgZXhp dCAkPwotKwotKyAgIyBSZW1vdmUgdGhlIGNhbGwgdG8gTGlidG9vbC4KLSsgIGlmIHRlc3QgIiRs aWJ0b29sIiA9IHllczsgdGhlbgotKyAgICB3aGlsZSB0ZXN0ICJYJDEiICE9ICdYLS1tb2RlPWNv bXBpbGUnOyBkbwotKyAgICAgIHNoaWZ0Ci0rICAgIGRvbmUKLSsgICAgc2hpZnQKLSsgIGZpCi0r Ci0rICBJRlM9IiAiCi0rICBmb3IgYXJnCi0rICBkbwotKyAgICBjYXNlICIkYXJnIiBpbgotKyAg ICAtbykKLSsgICAgICBzaGlmdAotKyAgICAgIDs7Ci0rICAgICRvYmplY3QpCi0rICAgICAgc2hp ZnQKLSsgICAgICA7OwotKyAgICAiLUdtInwiL0dtInwiLUdpInwiL0dpInwiLVpJInwiL1pJIikK LSsJc2V0IGZub3JkICIkQCIKLSsJc2hpZnQKLSsJc2hpZnQKLSsJOzsKLSsgICAgKikKLSsJc2V0 IGZub3JkICIkQCIgIiRhcmciCi0rCXNoaWZ0Ci0rCXNoaWZ0Ci0rCTs7Ci0rICAgIGVzYWMKLSsg IGRvbmUKLSsgICIkQCIgLUUgMj4vZGV2L251bGwgfAotKyAgc2VkIC1uICcvXiNsaW5lIFswLTld WzAtOV0qICJcKFteIl0qXCkiLyBzOjpcMTpwJyB8ICRjeWdwYXRoX3UgfCBzb3J0IC11ID4gIiR0 bXBkZXBmaWxlIgotKyAgcm0gLWYgIiRkZXBmaWxlIgotKyAgZWNobyAiJG9iamVjdCA6IFxcIiA+ ICIkZGVwZmlsZSIKLSsgIHNlZCA8ICIkdG1wZGVwZmlsZSIgLW4gLWUgJ3MlICVcXCAlZycgLWUg Jy9eXCguKlwpJC8gczo6CVwxIFxcOnAnID4+ICIkZGVwZmlsZSIKLSsgIGVjaG8gIgkiID4+ICIk ZGVwZmlsZSIKLSsgIHNlZCA8ICIkdG1wZGVwZmlsZSIgLW4gLWUgJ3MlICVcXCAlZycgLWUgJy9e XCguKlwpJC8gczo6XDFcOjpwJyA+PiAiJGRlcGZpbGUiCi0rICBybSAtZiAiJHRtcGRlcGZpbGUi Ci0rICA7OwotKwotK21zdmNtc3lzKQotKyAgIyBUaGlzIGNhc2UgZXhpc3RzIG9ubHkgdG8gbGV0 IGRlcGVuZC5tNCBkbyBpdHMgd29yay4gIEl0IHdvcmtzIGJ5Ci0rICAjIGxvb2tpbmcgYXQgdGhl IHRleHQgb2YgdGhpcyBzY3JpcHQuICBUaGlzIGNhc2Ugd2lsbCBuZXZlciBiZSBydW4sCi0rICAj IHNpbmNlIGl0IGlzIGNoZWNrZWQgZm9yIGFib3ZlLgotKyAgZXhpdCAxCi0rICA7OwotKwotK25v bmUpCi0rICBleGVjICIkQCIKLSsgIDs7Ci0rCi0rKikKLSsgIGVjaG8gIlVua25vd24gZGVwbW9k ZSAkZGVwbW9kZSIgMT4mMgotKyAgZXhpdCAxCi0rICA7OwotK2VzYWMKLSsKLStleGl0IDAKLSsK LSsjIExvY2FsIFZhcmlhYmxlczoKLSsjIG1vZGU6IHNoZWxsLXNjcmlwdAotKyMgc2gtaW5kZW50 YXRpb246IDIKLSsjIGV2YWw6IChhZGQtaG9vayAnd3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFt cCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2ZXJzaW9uPSIKLSsjIHRpbWUtc3RhbXAt Zm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgotKyMgdGltZS1zdGFtcC10aW1lLXpvbmU6ICJV VEMiCi0rIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBVVEMiCi0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svY29uZmlnL2luc3RhbGwtc2ggc29jaS0zLjAuMF90cmVwMzAwL2NvbmZp Zy9pbnN0YWxsLXNoCi0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2luc3RhbGwtc2gJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlnL2luc3RhbGwtc2gJMjAxMS0wNy0wMyAxODo0NDoyNy4wMDAwMDAwMDAgKzAyMDAKLUBA IC0wLDAgKzEsNTIwIEBACi0rIyEvYmluL3NoCi0rIyBpbnN0YWxsIC0gaW5zdGFsbCBhIHByb2dy YW0sIHNjcmlwdCwgb3IgZGF0YWZpbGUKLSsKLStzY3JpcHR2ZXJzaW9uPTIwMDktMDQtMjguMjE7 ICMgVVRDCi0rCi0rIyBUaGlzIG9yaWdpbmF0ZXMgZnJvbSBYMTFSNSAobWl0L3V0aWwvc2NyaXB0 cy9pbnN0YWxsLnNoKSwgd2hpY2ggd2FzCi0rIyBsYXRlciByZWxlYXNlZCBpbiBYMTFSNiAoeGMv Y29uZmlnL3V0aWwvaW5zdGFsbC5zaCkgd2l0aCB0aGUKLSsjIGZvbGxvd2luZyBjb3B5cmlnaHQg YW5kIGxpY2Vuc2UuCi0rIwotKyMgQ29weXJpZ2h0IChDKSAxOTk0IFggQ29uc29ydGl1bQotKyMK LSsjIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkg cGVyc29uIG9idGFpbmluZyBhIGNvcHkKLSsjIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0 ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlICJTb2Z0d2FyZSIpLCB0bwotKyMgZGVhbCBpbiB0 aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRh dGlvbiB0aGUKLSsjIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gs IGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vcgotKyMgc2VsbCBjb3BpZXMgb2YgdGhlIFNv ZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXMKLSsj IGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6 Ci0rIwotKyMgVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBu b3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW4KLSsjIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwg cG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLgotKyMKLSsjIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURF RCAiQVMgSVMiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCi0rIyBJ TVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1F UkNIQU5UQUJJTElUWSwKLSsjIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBO T05JTkZSSU5HRU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUKLSsjIFggQ09OU09SVElVTSBC RSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUiBMSUFCSUxJVFksIFdIRVRI RVIgSU4KLSsjIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJ TkcgRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQy0KLSsjIFRJT04gV0lUSCBUSEUgU09GVFdBUkUg T1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTiBUSEUgU09GVFdBUkUuCi0rIwotKyMgRXhj ZXB0IGFzIGNvbnRhaW5lZCBpbiB0aGlzIG5vdGljZSwgdGhlIG5hbWUgb2YgdGhlIFggQ29uc29y dGl1bSBzaGFsbCBub3QKLSsjIGJlIHVzZWQgaW4gYWR2ZXJ0aXNpbmcgb3Igb3RoZXJ3aXNlIHRv IHByb21vdGUgdGhlIHNhbGUsIHVzZSBvciBvdGhlciBkZWFsLQotKyMgaW5ncyBpbiB0aGlzIFNv ZnR3YXJlIHdpdGhvdXQgcHJpb3Igd3JpdHRlbiBhdXRob3JpemF0aW9uIGZyb20gdGhlIFggQ29u c29yLQotKyMgdGl1bS4KLSsjCi0rIwotKyMgRlNGIGNoYW5nZXMgdG8gdGhpcyBmaWxlIGFyZSBp biB0aGUgcHVibGljIGRvbWFpbi4KLSsjCi0rIyBDYWxsaW5nIHRoaXMgc2NyaXB0IGluc3RhbGwt c2ggaXMgcHJlZmVycmVkIG92ZXIgaW5zdGFsbC5zaCwgdG8gcHJldmVudAotKyMgYG1ha2UnIGlt cGxpY2l0IHJ1bGVzIGZyb20gY3JlYXRpbmcgYSBmaWxlIGNhbGxlZCBpbnN0YWxsIGZyb20gaXQK LSsjIHdoZW4gdGhlcmUgaXMgbm8gTWFrZWZpbGUuCi0rIwotKyMgVGhpcyBzY3JpcHQgaXMgY29t cGF0aWJsZSB3aXRoIHRoZSBCU0QgaW5zdGFsbCBzY3JpcHQsIGJ1dCB3YXMgd3JpdHRlbgotKyMg ZnJvbSBzY3JhdGNoLgotKwotK25sPScKLSsnCi0rSUZTPSIgIiIJJG5sIgotKwotKyMgc2V0IERP SVRQUk9HIHRvIGVjaG8gdG8gdGVzdCB0aGlzIHNjcmlwdAotKwotKyMgRG9uJ3QgdXNlIDotIHNp bmNlIDQuM0JTRCBhbmQgZWFybGllciBzaGVsbHMgZG9uJ3QgbGlrZSBpdC4KLStkb2l0PSR7RE9J VFBST0ctfQotK2lmIHRlc3QgLXogIiRkb2l0IjsgdGhlbgotKyAgZG9pdF9leGVjPWV4ZWMKLStl bHNlCi0rICBkb2l0X2V4ZWM9JGRvaXQKLStmaQotKwotKyMgUHV0IGluIGFic29sdXRlIGZpbGUg bmFtZXMgaWYgeW91IGRvbid0IGhhdmUgdGhlbSBpbiB5b3VyIHBhdGg7Ci0rIyBvciB1c2UgZW52 aXJvbm1lbnQgdmFycy4KLSsKLStjaGdycHByb2c9JHtDSEdSUFBST0ctY2hncnB9Ci0rY2htb2Rw cm9nPSR7Q0hNT0RQUk9HLWNobW9kfQotK2Nob3ducHJvZz0ke0NIT1dOUFJPRy1jaG93bn0KLStj bXBwcm9nPSR7Q01QUFJPRy1jbXB9Ci0rY3Bwcm9nPSR7Q1BQUk9HLWNwfQotK21rZGlycHJvZz0k e01LRElSUFJPRy1ta2Rpcn0KLSttdnByb2c9JHtNVlBST0ctbXZ9Ci0rcm1wcm9nPSR7Uk1QUk9H LXJtfQotK3N0cmlwcHJvZz0ke1NUUklQUFJPRy1zdHJpcH0KLSsKLStwb3NpeF9nbG9iPSc/Jwot K2luaXRpYWxpemVfcG9zaXhfZ2xvYj0nCi0rICB0ZXN0ICIkcG9zaXhfZ2xvYiIgIT0gIj8iIHx8 IHsKLSsgICAgaWYgKHNldCAtZikgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgICBwb3NpeF9nbG9i PQotKyAgICBlbHNlCi0rICAgICAgcG9zaXhfZ2xvYj06Ci0rICAgIGZpCi0rICB9Ci0rJwotKwot K3Bvc2l4X21rZGlyPQotKwotKyMgRGVzaXJlZCBtb2RlIG9mIGluc3RhbGxlZCBmaWxlLgotK21v ZGU9MDc1NQotKwotK2NoZ3JwY21kPQotK2NobW9kY21kPSRjaG1vZHByb2cKLStjaG93bmNtZD0K LSttdmNtZD0kbXZwcm9nCi0rcm1jbWQ9IiRybXByb2cgLWYiCi0rc3RyaXBjbWQ9Ci0rCi0rc3Jj PQotK2RzdD0KLStkaXJfYXJnPQotK2RzdF9hcmc9Ci0rCi0rY29weV9vbl9jaGFuZ2U9ZmFsc2UK LStub190YXJnZXRfZGlyZWN0b3J5PQotKwotK3VzYWdlPSJcCi0rVXNhZ2U6ICQwIFtPUFRJT05d Li4uIFstVF0gU1JDRklMRSBEU1RGSUxFCi0rICAgb3I6ICQwIFtPUFRJT05dLi4uIFNSQ0ZJTEVT Li4uIERJUkVDVE9SWQotKyAgIG9yOiAkMCBbT1BUSU9OXS4uLiAtdCBESVJFQ1RPUlkgU1JDRklM RVMuLi4KLSsgICBvcjogJDAgW09QVElPTl0uLi4gLWQgRElSRUNUT1JJRVMuLi4KLSsKLStJbiB0 aGUgMXN0IGZvcm0sIGNvcHkgU1JDRklMRSB0byBEU1RGSUxFLgotK0luIHRoZSAybmQgYW5kIDNy ZCwgY29weSBhbGwgU1JDRklMRVMgdG8gRElSRUNUT1JZLgotK0luIHRoZSA0dGgsIGNyZWF0ZSBE SVJFQ1RPUklFUy4KLSsKLStPcHRpb25zOgotKyAgICAgLS1oZWxwICAgICBkaXNwbGF5IHRoaXMg aGVscCBhbmQgZXhpdC4KLSsgICAgIC0tdmVyc2lvbiAgZGlzcGxheSB2ZXJzaW9uIGluZm8gYW5k IGV4aXQuCi0rCi0rICAtYyAgICAgICAgICAgIChpZ25vcmVkKQotKyAgLUMgICAgICAgICAgICBp bnN0YWxsIG9ubHkgaWYgZGlmZmVyZW50IChwcmVzZXJ2ZSB0aGUgbGFzdCBkYXRhIG1vZGlmaWNh dGlvbiB0aW1lKQotKyAgLWQgICAgICAgICAgICBjcmVhdGUgZGlyZWN0b3JpZXMgaW5zdGVhZCBv ZiBpbnN0YWxsaW5nIGZpbGVzLgotKyAgLWcgR1JPVVAgICAgICAkY2hncnBwcm9nIGluc3RhbGxl ZCBmaWxlcyB0byBHUk9VUC4KLSsgIC1tIE1PREUgICAgICAgJGNobW9kcHJvZyBpbnN0YWxsZWQg ZmlsZXMgdG8gTU9ERS4KLSsgIC1vIFVTRVIgICAgICAgJGNob3ducHJvZyBpbnN0YWxsZWQgZmls ZXMgdG8gVVNFUi4KLSsgIC1zICAgICAgICAgICAgJHN0cmlwcHJvZyBpbnN0YWxsZWQgZmlsZXMu Ci0rICAtdCBESVJFQ1RPUlkgIGluc3RhbGwgaW50byBESVJFQ1RPUlkuCi0rICAtVCAgICAgICAg ICAgIHJlcG9ydCBhbiBlcnJvciBpZiBEU1RGSUxFIGlzIGEgZGlyZWN0b3J5LgotKwotK0Vudmly b25tZW50IHZhcmlhYmxlcyBvdmVycmlkZSB0aGUgZGVmYXVsdCBjb21tYW5kczoKLSsgIENIR1JQ UFJPRyBDSE1PRFBST0cgQ0hPV05QUk9HIENNUFBST0cgQ1BQUk9HIE1LRElSUFJPRyBNVlBST0cK LSsgIFJNUFJPRyBTVFJJUFBST0cKLSsiCi0rCi0rd2hpbGUgdGVzdCAkIyAtbmUgMDsgZG8KLSsg IGNhc2UgJDEgaW4KLSsgICAgLWMpIDs7Ci0rCi0rICAgIC1DKSBjb3B5X29uX2NoYW5nZT10cnVl OzsKLSsKLSsgICAgLWQpIGRpcl9hcmc9dHJ1ZTs7Ci0rCi0rICAgIC1nKSBjaGdycGNtZD0iJGNo Z3JwcHJvZyAkMiIKLSsJc2hpZnQ7OwotKwotKyAgICAtLWhlbHApIGVjaG8gIiR1c2FnZSI7IGV4 aXQgJD87OwotKwotKyAgICAtbSkgbW9kZT0kMgotKwljYXNlICRtb2RlIGluCi0rCSAgKicgJyog fCAqJwknKiB8IConCi0rJyoJICB8IConKicqIHwgKic/JyogfCAqJ1snKikKLSsJICAgIGVjaG8g IiQwOiBpbnZhbGlkIG1vZGU6ICRtb2RlIiA+JjIKLSsJICAgIGV4aXQgMTs7Ci0rCWVzYWMKLSsJ c2hpZnQ7OwotKwotKyAgICAtbykgY2hvd25jbWQ9IiRjaG93bnByb2cgJDIiCi0rCXNoaWZ0OzsK LSsKLSsgICAgLXMpIHN0cmlwY21kPSRzdHJpcHByb2c7OwotKwotKyAgICAtdCkgZHN0X2FyZz0k MgotKwlzaGlmdDs7Ci0rCi0rICAgIC1UKSBub190YXJnZXRfZGlyZWN0b3J5PXRydWU7OwotKwot KyAgICAtLXZlcnNpb24pIGVjaG8gIiQwICRzY3JpcHR2ZXJzaW9uIjsgZXhpdCAkPzs7Ci0rCi0r ICAgIC0tKQlzaGlmdAotKwlicmVhazs7Ci0rCi0rICAgIC0qKQllY2hvICIkMDogaW52YWxpZCBv cHRpb246ICQxIiA+JjIKLSsJZXhpdCAxOzsKLSsKLSsgICAgKikgIGJyZWFrOzsKLSsgIGVzYWMK LSsgIHNoaWZ0Ci0rZG9uZQotKwotK2lmIHRlc3QgJCMgLW5lIDAgJiYgdGVzdCAteiAiJGRpcl9h cmckZHN0X2FyZyI7IHRoZW4KLSsgICMgV2hlbiAtZCBpcyB1c2VkLCBhbGwgcmVtYWluaW5nIGFy Z3VtZW50cyBhcmUgZGlyZWN0b3JpZXMgdG8gY3JlYXRlLgotKyAgIyBXaGVuIC10IGlzIHVzZWQs IHRoZSBkZXN0aW5hdGlvbiBpcyBhbHJlYWR5IHNwZWNpZmllZC4KLSsgICMgT3RoZXJ3aXNlLCB0 aGUgbGFzdCBhcmd1bWVudCBpcyB0aGUgZGVzdGluYXRpb24uICBSZW1vdmUgaXQgZnJvbSAkQC4K LSsgIGZvciBhcmcKLSsgIGRvCi0rICAgIGlmIHRlc3QgLW4gIiRkc3RfYXJnIjsgdGhlbgotKyAg ICAgICMgJEAgaXMgbm90IGVtcHR5OiBpdCBjb250YWlucyBhdCBsZWFzdCAkYXJnLgotKyAgICAg IHNldCBmbm9yZCAiJEAiICIkZHN0X2FyZyIKLSsgICAgICBzaGlmdCAjIGZub3JkCi0rICAgIGZp Ci0rICAgIHNoaWZ0ICMgYXJnCi0rICAgIGRzdF9hcmc9JGFyZwotKyAgZG9uZQotK2ZpCi0rCi0r aWYgdGVzdCAkIyAtZXEgMDsgdGhlbgotKyAgaWYgdGVzdCAteiAiJGRpcl9hcmciOyB0aGVuCi0r ICAgIGVjaG8gIiQwOiBubyBpbnB1dCBmaWxlIHNwZWNpZmllZC4iID4mMgotKyAgICBleGl0IDEK LSsgIGZpCi0rICAjIEl0J3MgT0sgdG8gY2FsbCBgaW5zdGFsbC1zaCAtZCcgd2l0aG91dCBhcmd1 bWVudC4KLSsgICMgVGhpcyBjYW4gaGFwcGVuIHdoZW4gY3JlYXRpbmcgY29uZGl0aW9uYWwgZGly ZWN0b3JpZXMuCi0rICBleGl0IDAKLStmaQotKwotK2lmIHRlc3QgLXogIiRkaXJfYXJnIjsgdGhl bgotKyAgdHJhcCAnKGV4aXQgJD8pOyBleGl0JyAxIDIgMTMgMTUKLSsKLSsgICMgU2V0IHVtYXNr IHNvIGFzIG5vdCB0byBjcmVhdGUgdGVtcHMgd2l0aCB0b28tZ2VuZXJvdXMgbW9kZXMuCi0rICAj IEhvd2V2ZXIsICdzdHJpcCcgcmVxdWlyZXMgYm90aCByZWFkIGFuZCB3cml0ZSBhY2Nlc3MgdG8g dGVtcHMuCi0rICBjYXNlICRtb2RlIGluCi0rICAgICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgot KyAgICAqNjQ0KSBjcF91bWFzaz0xMzM7OwotKyAgICAqNzU1KSBjcF91bWFzaz0yMjs7Ci0rCi0r ICAgICpbMC03XSkKLSsgICAgICBpZiB0ZXN0IC16ICIkc3RyaXBjbWQiOyB0aGVuCi0rCXVfcGx1 c19ydz0KLSsgICAgICBlbHNlCi0rCXVfcGx1c19ydz0nJSAyMDAnCi0rICAgICAgZmkKLSsgICAg ICBjcF91bWFzaz1gZXhwciAnKCcgNzc3IC0gJG1vZGUgJSAxMDAwICcpJyAkdV9wbHVzX3J3YDs7 Ci0rICAgICopCi0rICAgICAgaWYgdGVzdCAteiAiJHN0cmlwY21kIjsgdGhlbgotKwl1X3BsdXNf cnc9Ci0rICAgICAgZWxzZQotKwl1X3BsdXNfcnc9LHUrcncKLSsgICAgICBmaQotKyAgICAgIGNw X3VtYXNrPSRtb2RlJHVfcGx1c19ydzs7Ci0rICBlc2FjCi0rZmkKLSsKLStmb3Igc3JjCi0rZG8K LSsgICMgUHJvdGVjdCBuYW1lcyBzdGFydGluZyB3aXRoIGAtJy4KLSsgIGNhc2UgJHNyYyBpbgot KyAgICAtKikgc3JjPS4vJHNyYzs7Ci0rICBlc2FjCi0rCi0rICBpZiB0ZXN0IC1uICIkZGlyX2Fy ZyI7IHRoZW4KLSsgICAgZHN0PSRzcmMKLSsgICAgZHN0ZGlyPSRkc3QKLSsgICAgdGVzdCAtZCAi JGRzdGRpciIKLSsgICAgZHN0ZGlyX3N0YXR1cz0kPwotKyAgZWxzZQotKwotKyAgICAjIFdhaXRp bmcgZm9yIHRoaXMgdG8gYmUgZGV0ZWN0ZWQgYnkgdGhlICIkY3Bwcm9nICRzcmMgJGRzdHRtcCIg Y29tbWFuZAotKyAgICAjIG1pZ2h0IGNhdXNlIGRpcmVjdG9yaWVzIHRvIGJlIGNyZWF0ZWQsIHdo aWNoIHdvdWxkIGJlIGVzcGVjaWFsbHkgYmFkCi0rICAgICMgaWYgJHNyYyAoYW5kIHRodXMgJGRz dHRtcCkgY29udGFpbnMgJyonLgotKyAgICBpZiB0ZXN0ICEgLWYgIiRzcmMiICYmIHRlc3QgISAt ZCAiJHNyYyI7IHRoZW4KLSsgICAgICBlY2hvICIkMDogJHNyYyBkb2VzIG5vdCBleGlzdC4iID4m MgotKyAgICAgIGV4aXQgMQotKyAgICBmaQotKwotKyAgICBpZiB0ZXN0IC16ICIkZHN0X2FyZyI7 IHRoZW4KLSsgICAgICBlY2hvICIkMDogbm8gZGVzdGluYXRpb24gc3BlY2lmaWVkLiIgPiYyCi0r ICAgICAgZXhpdCAxCi0rICAgIGZpCi0rCi0rICAgIGRzdD0kZHN0X2FyZwotKyAgICAjIFByb3Rl Y3QgbmFtZXMgc3RhcnRpbmcgd2l0aCBgLScuCi0rICAgIGNhc2UgJGRzdCBpbgotKyAgICAgIC0q KSBkc3Q9Li8kZHN0OzsKLSsgICAgZXNhYwotKwotKyAgICAjIElmIGRlc3RpbmF0aW9uIGlzIGEg ZGlyZWN0b3J5LCBhcHBlbmQgdGhlIGlucHV0IGZpbGVuYW1lOyB3b24ndCB3b3JrCi0rICAgICMg aWYgZG91YmxlIHNsYXNoZXMgYXJlbid0IGlnbm9yZWQuCi0rICAgIGlmIHRlc3QgLWQgIiRkc3Qi OyB0aGVuCi0rICAgICAgaWYgdGVzdCAtbiAiJG5vX3RhcmdldF9kaXJlY3RvcnkiOyB0aGVuCi0r CWVjaG8gIiQwOiAkZHN0X2FyZzogSXMgYSBkaXJlY3RvcnkiID4mMgotKwlleGl0IDEKLSsgICAg ICBmaQotKyAgICAgIGRzdGRpcj0kZHN0Ci0rICAgICAgZHN0PSRkc3RkaXIvYGJhc2VuYW1lICIk c3JjImAKLSsgICAgICBkc3RkaXJfc3RhdHVzPTAKLSsgICAgZWxzZQotKyAgICAgICMgUHJlZmVy IGRpcm5hbWUsIGJ1dCBmYWxsIGJhY2sgb24gYSBzdWJzdGl0dXRlIGlmIGRpcm5hbWUgZmFpbHMu Ci0rICAgICAgZHN0ZGlyPWAKLSsJKGRpcm5hbWUgIiRkc3QiKSAyPi9kZXYvbnVsbCB8fAotKwll eHByIFgiJGRzdCIgOiAnWFwoLipbXi9dXCkvLypbXi9dW14vXSovKiQnIFx8IFwKLSsJICAgICBY IiRkc3QiIDogJ1hcKC8vXClbXi9dJyBcfCBcCi0rCSAgICAgWCIkZHN0IiA6ICdYXCgvL1wpJCcg XHwgXAotKwkgICAgIFgiJGRzdCIgOiAnWFwoL1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rCWVj aG8gWCIkZHN0IiB8Ci0rCSAgICBzZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQv ewotKwkJICAgcy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIC9eWFwoXC9cL1wpW14vXS4qL3sK LSsJCSAgIHMvL1wxLwotKwkJICAgcQotKwkJIH0KLSsJCSAvXlhcKFwvXC9cKSQvewotKwkJICAg cy8vXDEvCi0rCQkgICBxCi0rCQkgfQotKwkJIC9eWFwoXC9cKS4qL3sKLSsJCSAgIHMvL1wxLwot KwkJICAgcQotKwkJIH0KLSsJCSBzLy4qLy4vOyBxJwotKyAgICAgIGAKLSsKLSsgICAgICB0ZXN0 IC1kICIkZHN0ZGlyIgotKyAgICAgIGRzdGRpcl9zdGF0dXM9JD8KLSsgICAgZmkKLSsgIGZpCi0r Ci0rICBvYnNvbGV0ZV9ta2Rpcl91c2VkPWZhbHNlCi0rCi0rICBpZiB0ZXN0ICRkc3RkaXJfc3Rh dHVzICE9IDA7IHRoZW4KLSsgICAgY2FzZSAkcG9zaXhfbWtkaXIgaW4KLSsgICAgICAnJykKLSsJ IyBDcmVhdGUgaW50ZXJtZWRpYXRlIGRpcnMgdXNpbmcgbW9kZSA3NTUgYXMgbW9kaWZpZWQgYnkg dGhlIHVtYXNrLgotKwkjIFRoaXMgaXMgbGlrZSBGcmVlQlNEICdpbnN0YWxsJyBhcyBvZiAxOTk3 LTEwLTI4LgotKwl1bWFzaz1gdW1hc2tgCi0rCWNhc2UgJHN0cmlwY21kLiR1bWFzayBpbgotKwkg ICMgT3B0aW1pemUgY29tbW9uIGNhc2VzLgotKwkgICpbMjM2N11bMjM2N10pIG1rZGlyX3VtYXNr PSR1bWFzazs7Ci0rCSAgLiowWzAyXVswMl0gfCAuWzAyXVswMl0gfCAuWzAyXSkgbWtkaXJfdW1h c2s9MjI7OwotKwotKwkgICpbMC03XSkKLSsJICAgIG1rZGlyX3VtYXNrPWBleHByICR1bWFzayAr IDIyIFwKLSsJICAgICAgLSAkdW1hc2sgJSAxMDAgJSA0MCArICR1bWFzayAlIDIwIFwKLSsJICAg ICAgLSAkdW1hc2sgJSAxMCAlIDQgKyAkdW1hc2sgJSAyCi0rCSAgICBgOzsKLSsJICAqKSBta2Rp cl91bWFzaz0kdW1hc2ssZ28tdzs7Ci0rCWVzYWMKLSsKLSsJIyBXaXRoIC1kLCBjcmVhdGUgdGhl IG5ldyBkaXJlY3Rvcnkgd2l0aCB0aGUgdXNlci1zcGVjaWZpZWQgbW9kZS4KLSsJIyBPdGhlcndp c2UsIHJlbHkgb24gJG1rZGlyX3VtYXNrLgotKwlpZiB0ZXN0IC1uICIkZGlyX2FyZyI7IHRoZW4K LSsJICBta2Rpcl9tb2RlPS1tJG1vZGUKLSsJZWxzZQotKwkgIG1rZGlyX21vZGU9Ci0rCWZpCi0r Ci0rCXBvc2l4X21rZGlyPWZhbHNlCi0rCWNhc2UgJHVtYXNrIGluCi0rCSAgKlsxMjM1NjddWzAt N11bMC03XSkKLSsJICAgICMgUE9TSVggbWtkaXIgLXAgc2V0cyB1K3d4IGJpdHMgcmVnYXJkbGVz cyBvZiB1bWFzaywgd2hpY2gKLSsJICAgICMgaXMgaW5jb21wYXRpYmxlIHdpdGggRnJlZUJTRCAn aW5zdGFsbCcgd2hlbiAodW1hc2sgJiAzMDApICE9IDAuCi0rCSAgICA7OwotKwkgICopCi0rCSAg ICB0bXBkaXI9JHtUTVBESVItL3RtcH0vaW5zJFJBTkRPTS0kJAotKwkgICAgdHJhcCAncmV0PSQ/ OyBybWRpciAiJHRtcGRpci9kIiAiJHRtcGRpciIgMj4vZGV2L251bGw7IGV4aXQgJHJldCcgMAot KwotKwkgICAgaWYgKHVtYXNrICRta2Rpcl91bWFzayAmJgotKwkJZXhlYyAkbWtkaXJwcm9nICRt a2Rpcl9tb2RlIC1wIC0tICIkdG1wZGlyL2QiKSA+L2Rldi9udWxsIDI+JjEKLSsJICAgIHRoZW4K LSsJICAgICAgaWYgdGVzdCAteiAiJGRpcl9hcmciIHx8IHsKLSsJCSAgICMgQ2hlY2sgZm9yIFBP U0lYIGluY29tcGF0aWJpbGl0aWVzIHdpdGggLW0uCi0rCQkgICAjIEhQLVVYIDExLjIzIGFuZCBJ UklYIDYuNSBta2RpciAtbSAtcCBzZXRzIGdyb3VwLSBvcgotKwkJICAgIyBvdGhlci13cml0ZWFi bGUgYml0IG9mIHBhcmVudCBkaXJlY3Rvcnkgd2hlbiBpdCBzaG91bGRuJ3QuCi0rCQkgICAjIEZy ZWVCU0QgNi4xIG1rZGlyIC1tIC1wIHNldHMgbW9kZSBvZiBleGlzdGluZyBkaXJlY3RvcnkuCi0r CQkgICBsc19sZF90bXBkaXI9YGxzIC1sZCAiJHRtcGRpciJgCi0rCQkgICBjYXNlICRsc19sZF90 bXBkaXIgaW4KLSsJCSAgICAgZD8/Pz8tP3ItKikgZGlmZmVyZW50X21vZGU9NzAwOzsKLSsJCSAg ICAgZD8/Pz8tPy0tKikgZGlmZmVyZW50X21vZGU9NzU1OzsKLSsJCSAgICAgKikgZmFsc2U7Owot KwkJICAgZXNhYyAmJgotKwkJICAgJG1rZGlycHJvZyAtbSRkaWZmZXJlbnRfbW9kZSAtcCAtLSAi JHRtcGRpciIgJiYgewotKwkJICAgICBsc19sZF90bXBkaXJfMT1gbHMgLWxkICIkdG1wZGlyImAK LSsJCSAgICAgdGVzdCAiJGxzX2xkX3RtcGRpciIgPSAiJGxzX2xkX3RtcGRpcl8xIgotKwkJICAg fQotKwkJIH0KLSsJICAgICAgdGhlbiBwb3NpeF9ta2Rpcj06Ci0rCSAgICAgIGZpCi0rCSAgICAg IHJtZGlyICIkdG1wZGlyL2QiICIkdG1wZGlyIgotKwkgICAgZWxzZQotKwkgICAgICAjIFJlbW92 ZSBhbnkgZGlycyBsZWZ0IGJlaGluZCBieSBhbmNpZW50IG1rZGlyIGltcGxlbWVudGF0aW9ucy4K LSsJICAgICAgcm1kaXIgLi8kbWtkaXJfbW9kZSAuLy1wIC4vLS0gMj4vZGV2L251bGwKLSsJICAg IGZpCi0rCSAgICB0cmFwICcnIDA7OwotKwllc2FjOzsKLSsgICAgZXNhYwotKwotKyAgICBpZgot KyAgICAgICRwb3NpeF9ta2RpciAmJiAoCi0rCXVtYXNrICRta2Rpcl91bWFzayAmJgotKwkkZG9p dF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIiCi0rICAgICAgKQot KyAgICB0aGVuIDoKLSsgICAgZWxzZQotKwotKyAgICAgICMgVGhlIHVtYXNrIGlzIHJpZGljdWxv dXMsIG9yIG1rZGlyIGRvZXMgbm90IGNvbmZvcm0gdG8gUE9TSVgsCi0rICAgICAgIyBvciBpdCBm YWlsZWQgcG9zc2libHkgZHVlIHRvIGEgcmFjZSBjb25kaXRpb24uICBDcmVhdGUgdGhlCi0rICAg ICAgIyBkaXJlY3RvcnkgdGhlIHNsb3cgd2F5LCBzdGVwIGJ5IHN0ZXAsIGNoZWNraW5nIGZvciBy YWNlcyBhcyB3ZSBnby4KLSsKLSsgICAgICBjYXNlICRkc3RkaXIgaW4KLSsJLyopIHByZWZpeD0n Lyc7OwotKwktKikgcHJlZml4PScuLyc7OwotKwkqKSAgcHJlZml4PScnOzsKLSsgICAgICBlc2Fj Ci0rCi0rICAgICAgZXZhbCAiJGluaXRpYWxpemVfcG9zaXhfZ2xvYiIKLSsKLSsgICAgICBvSUZT PSRJRlMKLSsgICAgICBJRlM9LwotKyAgICAgICRwb3NpeF9nbG9iIHNldCAtZgotKyAgICAgIHNl dCBmbm9yZCAkZHN0ZGlyCi0rICAgICAgc2hpZnQKLSsgICAgICAkcG9zaXhfZ2xvYiBzZXQgK2YK LSsgICAgICBJRlM9JG9JRlMKLSsKLSsgICAgICBwcmVmaXhlcz0KLSsKLSsgICAgICBmb3IgZAot KyAgICAgIGRvCi0rCXRlc3QgLXogIiRkIiAmJiBjb250aW51ZQotKwotKwlwcmVmaXg9JHByZWZp eCRkCi0rCWlmIHRlc3QgLWQgIiRwcmVmaXgiOyB0aGVuCi0rCSAgcHJlZml4ZXM9Ci0rCWVsc2UK LSsJICBpZiAkcG9zaXhfbWtkaXI7IHRoZW4KLSsJICAgICh1bWFzaz0kbWtkaXJfdW1hc2sgJiYK LSsJICAgICAkZG9pdF9leGVjICRta2RpcnByb2cgJG1rZGlyX21vZGUgLXAgLS0gIiRkc3RkaXIi KSAmJiBicmVhawotKwkgICAgIyBEb24ndCBmYWlsIGlmIHR3byBpbnN0YW5jZXMgYXJlIHJ1bm5p bmcgY29uY3VycmVudGx5LgotKwkgICAgdGVzdCAtZCAiJHByZWZpeCIgfHwgZXhpdCAxCi0rCSAg ZWxzZQotKwkgICAgY2FzZSAkcHJlZml4IGluCi0rCSAgICAgICpcJyopIHFwcmVmaXg9YGVjaG8g IiRwcmVmaXgiIHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgOzsKLSsJICAgICAgKikgcXByZWZp eD0kcHJlZml4OzsKLSsJICAgIGVzYWMKLSsJICAgIHByZWZpeGVzPSIkcHJlZml4ZXMgJyRxcHJl Zml4JyIKLSsJICBmaQotKwlmaQotKwlwcmVmaXg9JHByZWZpeC8KLSsgICAgICBkb25lCi0rCi0r ICAgICAgaWYgdGVzdCAtbiAiJHByZWZpeGVzIjsgdGhlbgotKwkjIERvbid0IGZhaWwgaWYgdHdv IGluc3RhbmNlcyBhcmUgcnVubmluZyBjb25jdXJyZW50bHkuCi0rCSh1bWFzayAkbWtkaXJfdW1h c2sgJiYKLSsJIGV2YWwgIlwkZG9pdF9leGVjIFwkbWtkaXJwcm9nICRwcmVmaXhlcyIpIHx8Ci0r CSAgdGVzdCAtZCAiJGRzdGRpciIgfHwgZXhpdCAxCi0rCW9ic29sZXRlX21rZGlyX3VzZWQ9dHJ1 ZQotKyAgICAgIGZpCi0rICAgIGZpCi0rICBmaQotKwotKyAgaWYgdGVzdCAtbiAiJGRpcl9hcmci OyB0aGVuCi0rICAgIHsgdGVzdCAteiAiJGNob3duY21kIiB8fCAkZG9pdCAkY2hvd25jbWQgIiRk c3QiOyB9ICYmCi0rICAgIHsgdGVzdCAteiAiJGNoZ3JwY21kIiB8fCAkZG9pdCAkY2hncnBjbWQg IiRkc3QiOyB9ICYmCi0rICAgIHsgdGVzdCAiJG9ic29sZXRlX21rZGlyX3VzZWQkY2hvd25jbWQk Y2hncnBjbWQiID0gZmFsc2UgfHwKLSsgICAgICB0ZXN0IC16ICIkY2htb2RjbWQiIHx8ICRkb2l0 ICRjaG1vZGNtZCAkbW9kZSAiJGRzdCI7IH0gfHwgZXhpdCAxCi0rICBlbHNlCi0rCi0rICAgICMg TWFrZSBhIGNvdXBsZSBvZiB0ZW1wIGZpbGUgbmFtZXMgaW4gdGhlIHByb3BlciBkaXJlY3Rvcnku Ci0rICAgIGRzdHRtcD0kZHN0ZGlyL19pbnN0LiQkXwotKyAgICBybXRtcD0kZHN0ZGlyL19ybS4k JF8KLSsKLSsgICAgIyBUcmFwIHRvIGNsZWFuIHVwIHRob3NlIHRlbXAgZmlsZXMgYXQgZXhpdC4K LSsgICAgdHJhcCAncmV0PSQ/OyBybSAtZiAiJGRzdHRtcCIgIiRybXRtcCIgJiYgZXhpdCAkcmV0 JyAwCi0rCi0rICAgICMgQ29weSB0aGUgZmlsZSBuYW1lIHRvIHRoZSB0ZW1wIG5hbWUuCi0rICAg ICh1bWFzayAkY3BfdW1hc2sgJiYgJGRvaXRfZXhlYyAkY3Bwcm9nICIkc3JjIiAiJGRzdHRtcCIp ICYmCi0rCi0rICAgICMgYW5kIHNldCBhbnkgb3B0aW9uczsgZG8gY2htb2QgbGFzdCB0byBwcmVz ZXJ2ZSBzZXR1aWQgYml0cy4KLSsgICAgIwotKyAgICAjIElmIGFueSBvZiB0aGVzZSBmYWlsLCB3 ZSBhYm9ydCB0aGUgd2hvbGUgdGhpbmcuICBJZiB3ZSB3YW50IHRvCi0rICAgICMgaWdub3JlIGVy cm9ycyBmcm9tIGFueSBvZiB0aGVzZSwganVzdCBtYWtlIHN1cmUgbm90IHRvIGlnbm9yZQotKyAg ICAjIGVycm9ycyBmcm9tIHRoZSBhYm92ZSAiJGRvaXQgJGNwcHJvZyAkc3JjICRkc3R0bXAiIGNv bW1hbmQuCi0rICAgICMKLSsgICAgeyB0ZXN0IC16ICIkY2hvd25jbWQiIHx8ICRkb2l0ICRjaG93 bmNtZCAiJGRzdHRtcCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16ICIkY2hncnBjbWQiIHx8ICRkb2l0 ICRjaGdycGNtZCAiJGRzdHRtcCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16ICIkc3RyaXBjbWQiIHx8 ICRkb2l0ICRzdHJpcGNtZCAiJGRzdHRtcCI7IH0gJiYKLSsgICAgeyB0ZXN0IC16ICIkY2htb2Rj bWQiIHx8ICRkb2l0ICRjaG1vZGNtZCAkbW9kZSAiJGRzdHRtcCI7IH0gJiYKLSsKLSsgICAgIyBJ ZiAtQywgZG9uJ3QgYm90aGVyIHRvIGNvcHkgaWYgaXQgd291bGRuJ3QgY2hhbmdlIHRoZSBmaWxl LgotKyAgICBpZiAkY29weV9vbl9jaGFuZ2UgJiYKLSsgICAgICAgb2xkPWBMQ19BTEw9QyBscyAt ZGxMICIkZHN0IgkyPi9kZXYvbnVsbGAgJiYKLSsgICAgICAgbmV3PWBMQ19BTEw9QyBscyAtZGxM ICIkZHN0dG1wIgkyPi9kZXYvbnVsbGAgJiYKLSsKLSsgICAgICAgZXZhbCAiJGluaXRpYWxpemVf cG9zaXhfZ2xvYiIgJiYKLSsgICAgICAgJHBvc2l4X2dsb2Igc2V0IC1mICYmCi0rICAgICAgIHNl dCBYICRvbGQgJiYgb2xkPTokMjokNDokNTokNiAmJgotKyAgICAgICBzZXQgWCAkbmV3ICYmIG5l dz06JDI6JDQ6JDU6JDYgJiYKLSsgICAgICAgJHBvc2l4X2dsb2Igc2V0ICtmICYmCi0rCi0rICAg ICAgIHRlc3QgIiRvbGQiID0gIiRuZXciICYmCi0rICAgICAgICRjbXBwcm9nICIkZHN0IiAiJGRz dHRtcCIgPi9kZXYvbnVsbCAyPiYxCi0rICAgIHRoZW4KLSsgICAgICBybSAtZiAiJGRzdHRtcCIK LSsgICAgZWxzZQotKyAgICAgICMgUmVuYW1lIHRoZSBmaWxlIHRvIHRoZSByZWFsIGRlc3RpbmF0 aW9uLgotKyAgICAgICRkb2l0ICRtdmNtZCAtZiAiJGRzdHRtcCIgIiRkc3QiIDI+L2Rldi9udWxs IHx8Ci0rCi0rICAgICAgIyBUaGUgcmVuYW1lIGZhaWxlZCwgcGVyaGFwcyBiZWNhdXNlIG12IGNh bid0IHJlbmFtZSBzb21ldGhpbmcgZWxzZQotKyAgICAgICMgdG8gaXRzZWxmLCBvciBwZXJoYXBz IGJlY2F1c2UgbXYgaXMgc28gYW5jaWVudCB0aGF0IGl0IGRvZXMgbm90Ci0rICAgICAgIyBzdXBw b3J0IC1mLgotKyAgICAgIHsKLSsJIyBOb3cgcmVtb3ZlIG9yIG1vdmUgYXNpZGUgYW55IG9sZCBm aWxlIGF0IGRlc3RpbmF0aW9uIGxvY2F0aW9uLgotKwkjIFdlIHRyeSB0aGlzIHR3byB3YXlzIHNp bmNlIHJtIGNhbid0IHVubGluayBpdHNlbGYgb24gc29tZQotKwkjIHN5c3RlbXMgYW5kIHRoZSBk ZXN0aW5hdGlvbiBmaWxlIG1pZ2h0IGJlIGJ1c3kgZm9yIG90aGVyCi0rCSMgcmVhc29ucy4gIElu IHRoaXMgY2FzZSwgdGhlIGZpbmFsIGNsZWFudXAgbWlnaHQgZmFpbCBidXQgdGhlIG5ldwotKwkj IGZpbGUgc2hvdWxkIHN0aWxsIGluc3RhbGwgc3VjY2Vzc2Z1bGx5LgotKwl7Ci0rCSAgdGVzdCAh IC1mICIkZHN0IiB8fAotKwkgICRkb2l0ICRybWNtZCAtZiAiJGRzdCIgMj4vZGV2L251bGwgfHwK LSsJICB7ICRkb2l0ICRtdmNtZCAtZiAiJGRzdCIgIiRybXRtcCIgMj4vZGV2L251bGwgJiYKLSsJ ICAgIHsgJGRvaXQgJHJtY21kIC1mICIkcm10bXAiIDI+L2Rldi9udWxsOyA6OyB9Ci0rCSAgfSB8 fAotKwkgIHsgZWNobyAiJDA6IGNhbm5vdCB1bmxpbmsgb3IgcmVuYW1lICRkc3QiID4mMgotKwkg ICAgKGV4aXQgMSk7IGV4aXQgMQotKwkgIH0KLSsJfSAmJgotKwotKwkjIE5vdyByZW5hbWUgdGhl IGZpbGUgdG8gdGhlIHJlYWwgZGVzdGluYXRpb24uCi0rCSRkb2l0ICRtdmNtZCAiJGRzdHRtcCIg IiRkc3QiCi0rICAgICAgfQotKyAgICBmaSB8fCBleGl0IDEKLSsKLSsgICAgdHJhcCAnJyAwCi0r ICBmaQotK2RvbmUKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsjIGV2YWw6IChhZGQtaG9vayAn d3JpdGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3Jp cHR2ZXJzaW9uPSIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgot KyMgdGltZS1zdGFtcC10aW1lLXpvbmU6ICJVVEMiCi0rIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBV VEMiCi0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2xpYnRvb2wu bTQgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9saWJ0b29sLm00Ci0tLS0gc29jaS0zLjAuMF80 LXBhY2svY29uZmlnL2xpYnRvb2wubTQJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAx MDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2xpYnRvb2wubTQJMjAxMS0wNy0wMyAx ODo0NDoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNzgzNSBAQAotKyMgbGlidG9vbC5t NCAtIENvbmZpZ3VyZSBsaWJ0b29sIGZvciB0aGUgaG9zdCBzeXN0ZW0uIC0qLUF1dG9jb25mLSot Ci0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIw MDEsIDIwMDMsIDIwMDQsIDIwMDUsCi0rIyAgICAgICAgICAgICAgICAgMjAwNiwgMjAwNywgMjAw OCwgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyAgICAgICAgICAgICAg ICAgSW5jLgotKyMgICBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0LCAxOTk2Ci0rIwotKyMg VGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24g Z2l2ZXMKLSsjIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUg aXQsIHdpdGggb3Igd2l0aG91dAotKyMgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5v dGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rbTRfZGVmaW5lKFtfTFRfQ09QWUlOR10sIFtkbmwKLSsj ICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAz LCAyMDA0LCAyMDA1LAotKyMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDks IDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMgICAgICAgICAgICAgICAgIEluYy4K LSsjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgotKyMKLSsjICAgVGhpcyBm aWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCi0rIwotKyMgR05VIExpYnRvb2wgaXMgZnJlZSBz b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rIyBtb2RpZnkgaXQgdW5k ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcwotKyMgcHVi bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDIg b2YKLSsjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u LgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlLAotKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFzIHBhcnQgb2YgYSBw cm9ncmFtIG9yIGxpYnJhcnkgdGhhdAotKyMgaXMgYnVpbHQgdXNpbmcgR05VIExpYnRvb2wsIHlv dSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCi0rIyBzYW1lIGRpc3RyaWJ1dGlvbiB0 ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3JhbS4KLSsjCi0rIyBH TlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp ZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv ciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv ZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdpdGggR05VIExpYnRv b2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKLSsjIGNhbiBiZSBkb3du bG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5odG1sLCBvcgotKyMg b2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu LAotKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x MzAxLCBVU0EuCi0rXSkKLSsKLSsjIHNlcmlhbCA1NyBMVF9JTklUCi0rCi0rCi0rIyBMVF9QUkVS RVEoVkVSU0lPTikKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ29tcGxhaW4gYW5kIGV4aXQg aWYgdGhpcyBsaWJ0b29sIHZlcnNpb24gaXMgbGVzcyB0aGF0IFZFUlNJT04uCi0rbTRfZGVmdW4o W0xUX1BSRVJFUV0sCi0rW200X2lmKG00X3ZlcnNpb25fY29tcGFyZShtNF9kZWZuKFtMVF9QQUNL QUdFX1ZFUlNJT05dKSwgWyQxXSksIC0xLAotKyAgICAgICBbbTRfZGVmYXVsdChbJDNdLAotKwkJ ICAgW200X2ZhdGFsKFtMaWJ0b29sIHZlcnNpb24gJDEgb3IgaGlnaGVyIGlzIHJlcXVpcmVkXSwK LSsJCSAgICAgICAgICAgICA2MyldKV0sCi0rICAgICAgIFskMl0pXSkKLSsKLSsKLSsjIF9MVF9D SEVDS19CVUlMRERJUgotKyMgLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDb21wbGFpbiBpZiB0aGUg YWJzb2x1dGUgYnVpbGQgZGlyZWN0b3J5IG5hbWUgY29udGFpbnMgdW51c3VhbCBjaGFyYWN0ZXJz Ci0rbTRfZGVmdW4oW19MVF9DSEVDS19CVUlMRERJUl0sCi0rW2Nhc2UgYHB3ZGAgaW4KLSsgICpc ICogfCAqXAkqKQotKyAgICBBQ19NU0dfV0FSTihbTGlidG9vbCBkb2VzIG5vdCBjb3BlIHdlbGwg d2l0aCB3aGl0ZXNwYWNlIGluIGBwd2RgXSkgOzsKLStlc2FjCi0rXSkKLSsKLSsKLSsjIExUX0lO SVQoW09QVElPTlNdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0xUX0lOSVRd LAotK1tBQ19QUkVSRVEoWzIuNThdKWRubCBXZSB1c2UgQUNfSU5DTFVERVNfREVGQVVMVAotK0FD X1JFUVVJUkUoW0FDX0NPTkZJR19BVVhfRElSX0RFRkFVTFRdKWRubAotK0FDX0JFRk9SRShbJDBd LCBbTFRfTEFOR10pZG5sCi0rQUNfQkVGT1JFKFskMF0sIFtMVF9PVVRQVVRdKWRubAotK0FDX0JF Rk9SRShbJDBdLCBbTFRETF9JTklUXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfQ0hFQ0tfQlVJTERE SVJdKWRubAotKwotK2RubCBBdXRvY29uZiBkb2Vzbid0IGNhdGNoIHVuZXhwYW5kZWQgTFRfIG1h Y3JvcyBieSBkZWZhdWx0OgotK200X3BhdHRlcm5fZm9yYmlkKFteXz9MVF9bQS1aX10rJF0pZG5s Ci0rbTRfcGF0dGVybl9hbGxvdyhbXihfTFRfRU9GfExUX0RMR0xPQkFMfExUX0RMTEFaWV9PUl9O T1d8TFRfTVVMVElfTU9EVUxFKSRdKWRubAotK2RubCBhY2xvY2FsIGRvZXNuJ3QgcHVsbCBsdG9w dGlvbnMubTQsIGx0c3VnYXIubTQsIG9yIGx0dmVyc2lvbi5tNAotK2RubCB1bmxlc3Mgd2UgcmVx dWlyZSBhbiBBQ19ERUZVTmVkIG1hY3JvOgotK0FDX1JFUVVJUkUoW0xUT1BUSU9OU19WRVJTSU9O XSlkbmwKLStBQ19SRVFVSVJFKFtMVFNVR0FSX1ZFUlNJT05dKWRubAotK0FDX1JFUVVJUkUoW0xU VkVSU0lPTl9WRVJTSU9OXSlkbmwKLStBQ19SRVFVSVJFKFtMVE9CU09MRVRFX1ZFUlNJT05dKWRu bAotK200X3JlcXVpcmUoW19MVF9QUk9HX0xUTUFJTl0pZG5sCi0rCi0rX0xUX1NIRUxMX0lOSVQo W1NIRUxMPSR7Q09ORklHX1NIRUxMLS9iaW4vc2h9XSkKLSsKLStkbmwgUGFyc2UgT1BUSU9OUwot K19MVF9TRVRfT1BUSU9OUyhbJDBdLCBbJDFdKQotKwotKyMgVGhpcyBjYW4gYmUgdXNlZCB0byBy ZWJ1aWxkIGxpYnRvb2wgd2hlbiBuZWVkZWQKLStMSUJUT09MX0RFUFM9IiRsdG1haW4iCi0rCi0r IyBBbHdheXMgdXNlIG91ciBvd24gbGlidG9vbC4KLStMSUJUT09MPSckKFNIRUxMKSAkKHRvcF9i dWlsZGRpcikvbGlidG9vbCcKLStBQ19TVUJTVChMSUJUT09MKWRubAotKwotK19MVF9TRVRVUAot KwotKyMgT25seSBleHBhbmQgb25jZToKLSttNF9kZWZpbmUoW0xUX0lOSVRdKQotK10pIyBMVF9J TklUCi0rCi0rIyBPbGQgbmFtZXM6Ci0rQVVfQUxJQVMoW0FDX1BST0dfTElCVE9PTF0sIFtMVF9J TklUXSkKLStBVV9BTElBUyhbQU1fUFJPR19MSUJUT09MXSwgW0xUX0lOSVRdKQotK2RubCBhY2xv Y2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX1BST0df TElCVE9PTF0sIFtdKQotK2RubCBBQ19ERUZVTihbQU1fUFJPR19MSUJUT09MXSwgW10pCi0rCi0r Ci0rIyBfTFRfQ0NfQkFTRU5BTUUoQ0MpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDYWxj dWxhdGUgY2NfYmFzZW5hbWUuICBTa2lwIGtub3duIGNvbXBpbGVyIHdyYXBwZXJzIGFuZCBjcm9z cy1wcmVmaXguCi0rbTRfZGVmdW4oW19MVF9DQ19CQVNFTkFNRV0sCi0rW2ZvciBjY190ZW1wIGlu ICQxIiI7IGRvCi0rICBjYXNlICRjY190ZW1wIGluCi0rICAgIGNvbXBpbGUgfCAqW1tcXC9dXWNv bXBpbGUgfCBjY2FjaGUgfCAqW1tcXC9dXWNjYWNoZSApIDs7Ci0rICAgIGRpc3RjYyB8ICpbW1xc L11dZGlzdGNjIHwgcHVyaWZ5IHwgKltbXFwvXV1wdXJpZnkgKSA7OwotKyAgICBcLSopIDs7Ci0r ICAgICopIGJyZWFrOzsKLSsgIGVzYWMKLStkb25lCi0rY2NfYmFzZW5hbWU9YCRFQ0hPICIkY2Nf dGVtcCIgfCAkU0VEICJzJS4qLyUlOyBzJV4kaG9zdF9hbGlhcy0lJSJgCi0rXSkKLSsKLSsKLSsj IF9MVF9GSUxFVVRJTFNfREVGQVVMVFMKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEl0 IGlzIG9rYXkgdG8gdXNlIHRoZXNlIGZpbGUgY29tbWFuZHMgYW5kIGFzc3VtZSB0aGV5IGhhdmUg YmVlbiBzZXQKLSsjIHNlbnNpYmx5IGFmdGVyIGBtNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RF RkFVTFRTXSknLgotK200X2RlZnVuKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSwKLStbOiAke0NQ PSJjcCAtZiJ9Ci0rOiAke01WPSJtdiAtZiJ9Ci0rOiAke1JNPSJybSAtZiJ9Ci0rXSkjIF9MVF9G SUxFVVRJTFNfREVGQVVMVFMKLSsKLSsKLSsjIF9MVF9TRVRVUAotKyMgLS0tLS0tLS0tCi0rbTRf ZGVmdW4oW19MVF9TRVRVUF0sCi0rW0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwK LStBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRubAotK0FDX1JFUVVJUkUoW19MVF9Q UkVQQVJFX1NFRF9RVU9URV9WQVJTXSlkbmwKLStBQ19SRVFVSVJFKFtfTFRfUFJPR19FQ0hPX0JB Q0tTTEFTSF0pZG5sCi0rCi0rX0xUX0RFQ0woW10sIFtob3N0X2FsaWFzXSwgWzBdLCBbVGhlIGhv c3Qgc3lzdGVtXSlkbmwKLStfTFRfREVDTChbXSwgW2hvc3RdLCBbMF0pZG5sCi0rX0xUX0RFQ0wo W10sIFtob3N0X29zXSwgWzBdKWRubAotK2RubAotK19MVF9ERUNMKFtdLCBbYnVpbGRfYWxpYXNd LCBbMF0sIFtUaGUgYnVpbGQgc3lzdGVtXSlkbmwKLStfTFRfREVDTChbXSwgW2J1aWxkXSwgWzBd KWRubAotK19MVF9ERUNMKFtdLCBbYnVpbGRfb3NdLCBbMF0pZG5sCi0rZG5sCi0rQUNfUkVRVUlS RShbQUNfUFJPR19DQ10pZG5sCi0rQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCi0rQUNfUkVR VUlSRShbTFRfUEFUSF9OTV0pZG5sCi0rZG5sCi0rQUNfUkVRVUlSRShbQUNfUFJPR19MTl9TXSlk bmwKLSt0ZXN0IC16ICIkTE5fUyIgJiYgTE5fUz0ibG4gLXMiCi0rX0xUX0RFQ0woW10sIFtMTl9T XSwgWzFdLCBbV2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFyZCBsaW5rc10pZG5sCi0rZG5sCi0r QUNfUkVRVUlSRShbTFRfQ01EX01BWF9MRU5dKWRubAotK19MVF9ERUNMKFtvYmpleHRdLCBbYWNf b2JqZXh0XSwgWzBdLCBbT2JqZWN0IGZpbGUgc3VmZml4IChub3JtYWxseSAibyIpXSlkbmwKLStf TFRfREVDTChbXSwgW2V4ZWV4dF0sIFswXSwgW0V4ZWN1dGFibGUgZmlsZSBzdWZmaXggKG5vcm1h bGx5ICIiKV0pZG5sCi0rZG5sCi0rbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10p ZG5sCi0rbTRfcmVxdWlyZShbX0xUX0NIRUNLX1NIRUxMX0ZFQVRVUkVTXSlkbmwKLSttNF9yZXF1 aXJlKFtfTFRfUEFUSF9DT05WRVJTSU9OX0ZVTkNUSU9OU10pZG5sCi0rbTRfcmVxdWlyZShbX0xU X0NNRF9SRUxPQURdKWRubAotK200X3JlcXVpcmUoW19MVF9DSEVDS19NQUdJQ19NRVRIT0RdKWRu bAotK200X3JlcXVpcmUoW19MVF9DSEVDS19TSEFSRURMSUJfRlJPTV9MSU5LTElCXSlkbmwKLStt NF9yZXF1aXJlKFtfTFRfQ01EX09MRF9BUkNISVZFXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfQ01E X0dMT0JBTF9TWU1CT0xTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfV0lUSF9TWVNST09UXSlkbmwK LSsKLStfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbCi0rIyBTZWUgaWYgd2UgYXJlIHJ1bm5pbmcg b24genNoLCBhbmQgc2V0IHRoZSBvcHRpb25zIHdoaWNoIGFsbG93IG91cgotKyMgY29tbWFuZHMg dGhyb3VnaCB3aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzIElOSVQuCi0raWYgdGVzdCAtbiAi XCR7WlNIX1ZFUlNJT04rc2V0fSIgOyB0aGVuCi0rICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStm aQotK10pCi0raWYgdGVzdCAtbiAiJHtaU0hfVkVSU0lPTitzZXR9IiA7IHRoZW4KLSsgICBzZXRv cHQgTk9fR0xPQl9TVUJTVAotK2ZpCi0rCi0rX0xUX0NIRUNLX09CSkRJUgotKwotK200X3JlcXVp cmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgzKikK LSsgICMgQUlYIHNvbWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHBy b2dyYW0uICBGb3Igc29tZQotKyAgIyByZWFzb24sIGlmIHdlIHNldCB0aGUgQ09MTEVDVF9OQU1F UyBlbnZpcm9ubWVudCB2YXJpYWJsZSwgdGhlIHByb2JsZW1zCi0rICAjIHZhbmlzaCBpbiBhIHB1 ZmYgb2Ygc21va2UuCi0rICBpZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7 IHRoZW4KLSsgICAgQ09MTEVDVF9OQU1FUz0KLSsgICAgZXhwb3J0IENPTExFQ1RfTkFNRVMKLSsg IGZpCi0rICA7OwotK2VzYWMKLSsKLSsjIEdsb2JhbCB2YXJpYWJsZXM6Ci0rb2ZpbGU9bGlidG9v bAotK2Nhbl9idWlsZF9zaGFyZWQ9eWVzCi0rCi0rIyBBbGwga25vd24gbGlua2VycyByZXF1aXJl IGEgYC5hJyBhcmNoaXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCi0rIyB3aGlj aCBuZWVkcyAnLmxpYicpLgotK2xpYmV4dD1hCi0rCi0rd2l0aF9nbnVfbGQ9IiRsdF9jdl9wcm9n X2dudV9sZCIKLSsKLStvbGRfQ0M9IiRDQyIKLStvbGRfQ0ZMQUdTPSIkQ0ZMQUdTIgotKwotKyMg U2V0IHNhbmUgZGVmYXVsdHMgZm9yIHZhcmlvdXMgdmFyaWFibGVzCi0rdGVzdCAteiAiJENDIiAm JiBDQz1jYwotK3Rlc3QgLXogIiRMVENDIiAmJiBMVENDPSRDQwotK3Rlc3QgLXogIiRMVENGTEFH UyIgJiYgTFRDRkxBR1M9JENGTEFHUwotK3Rlc3QgLXogIiRMRCIgJiYgTEQ9bGQKLSt0ZXN0IC16 ICIkYWNfb2JqZXh0IiAmJiBhY19vYmpleHQ9bwotKwotK19MVF9DQ19CQVNFTkFNRShbJGNvbXBp bGVyXSkKLSsKLSsjIE9ubHkgcGVyZm9ybSB0aGUgY2hlY2sgZm9yIGZpbGUsIGlmIHRoZSBjaGVj ayBtZXRob2QgcmVxdWlyZXMgaXQKLSt0ZXN0IC16ICIkTUFHSUNfQ01EIiAmJiBNQUdJQ19DTUQ9 ZmlsZQotK2Nhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rZmlsZV9tYWdpYyopCi0rICBp ZiB0ZXN0ICIkZmlsZV9tYWdpY19jbWQiID0gJyRNQUdJQ19DTUQnOyB0aGVuCi0rICAgIF9MVF9Q QVRIX01BR0lDCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rIyBVc2UgQyBmb3IgdGhlIGRlZmF1 bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKLStMVF9TVVBQT1JURURfVEFH KFtDQ10pCi0rX0xUX0xBTkdfQ19DT05GSUcKLStfTFRfTEFOR19ERUZBVUxUX0NPTkZJRwotK19M VF9DT05GSUdfQ09NTUFORFMKLStdKSMgX0xUX1NFVFVQCi0rCi0rCi0rIyBfTFRfUFJFUEFSRV9T RURfUVVPVEVfVkFSUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIERlZmluZSBh IGZldyBzZWQgc3Vic3RpdHV0aW9uIHRoYXQgaGVscCB1cyBkbyByb2J1c3QgcXVvdGluZy4KLStt NF9kZWZ1bihbX0xUX1BSRVBBUkVfU0VEX1FVT1RFX1ZBUlNdLAotK1sjIEJhY2tzbGFzaGlmeSBt ZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluCi0rIyBkb3VibGUtcXVv dGVkIHN0cmluZ3MuCi0rc2VkX3F1b3RlX3N1YnN0PSdzL1woW1siYCRcXF1dXCkvXFxcMS9nJwot KwotKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRvIG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2Vz LgotK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9cKFtbImBcXF1dXCkvXFxcMS9nJwotKwotKyMgU2Vk IHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2YgYW4gZXNjYXBlZCBzaGVsbCB2YXJp YWJsZSBpbiBhCi0rIyBkb3VibGVfcXVvdGVfc3Vic3QnZWQgc3RyaW5nLgotK2RlbGF5X3Zhcmlh YmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9cXFxcXFwkL2cnCi0rCi0rIyBTZWQgc3Vic3RpdHV0 aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVkIHNpbmdsZSBxdW90ZS4KLStkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3Q9J3MvJ1wnJy8nXCdcXFxcXFxcJ1wnJy9nJwotKwotKyMgU2Vk IHN1YnN0aXR1dGlvbiB0byBhdm9pZCBhY2NpZGVudGFsIGdsb2JiaW5nIGluIGV2YWxlZCBleHBy ZXNzaW9ucwotK25vX2dsb2Jfc3Vic3Q9J3MvXCovXFxcKi9nJwotK10pCi0rCi0rIyBfTFRfUFJP R19MVE1BSU4KLSsjIC0tLS0tLS0tLS0tLS0tLQotKyMgTm90ZSB0aGF0IHRoaXMgY29kZSBpcyBj YWxsZWQgYm90aCBmcm9tIGBjb25maWd1cmUnLCBhbmQgYGNvbmZpZy5zdGF0dXMnCi0rIyBub3cg dGhhdCB3ZSB1c2UgQUNfQ09ORklHX0NPTU1BTkRTIHRvIGdlbmVyYXRlIGxpYnRvb2wuICBOb3Rh Ymx5LAotKyMgYGNvbmZpZy5zdGF0dXMnIGhhcyBubyB2YWx1ZSBmb3IgYWNfYXV4X2RpciB1bmxl c3Mgd2UgYXJlIHVzaW5nIEF1dG9tYWtlLAotKyMgc28gd2UgcGFzcyBhIGNvcHkgYWxvbmcgdG8g bWFrZSBzdXJlIGl0IGhhcyBhIHNlbnNpYmxlIHZhbHVlIGFueXdheS4KLSttNF9kZWZ1bihbX0xU X1BST0dfTFRNQUlOXSwKLStbbTRfaWZkZWYoW0FDX1JFUVVJUkVfQVVYX0ZJTEVdLCBbQUNfUkVR VUlSRV9BVVhfRklMRShbbHRtYWluLnNoXSldKWRubAotK19MVF9DT05GSUdfTElCVE9PTF9JTklU KFthY19hdXhfZGlyPSckYWNfYXV4X2RpciddKQotK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWlu LnNoIgotK10pIyBfTFRfUFJPR19MVE1BSU4KLSsKLSsKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgQWNjdW11bGF0ZSBjb2RlIGZvciBjcmVhdGluZyBs aWJ0b29sLiAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMK LSsKLSsjIFNvIHRoYXQgd2UgY2FuIHJlY3JlYXRlIGEgZnVsbCBsaWJ0b29sIHNjcmlwdCBpbmNs dWRpbmcgYWRkaXRpb25hbAotKyMgdGFncywgd2UgYWNjdW11bGF0ZSB0aGUgY2h1bmtzIG9mIGNv ZGUgdG8gc2VuZCB0byBBQ19DT05GSUdfQ09NTUFORFMKLSsjIGluIG1hY3JvcyBhbmQgdGhlbiBt YWtlIGEgc2luZ2xlIGNhbGwgYXQgdGhlIGVuZCB1c2luZyB0aGUgYGxpYnRvb2wnCi0rIyBsYWJl bC4KLSsKLSsKLSsjIF9MVF9DT05GSUdfTElCVE9PTF9JTklUKFtJTklULUNPTU1BTkRTXSkKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFJlZ2lzdGVyIElO SVQtQ09NTUFORFMgdG8gYmUgcGFzc2VkIHRvIEFDX0NPTkZJR19DT01NQU5EUyBsYXRlci4KLStt NF9kZWZpbmUoW19MVF9DT05GSUdfTElCVE9PTF9JTklUXSwKLStbbTRfaWZ2YWwoWyQxXSwKLSsg ICAgICAgICAgW200X2FwcGVuZChbX0xUX09VVFBVVF9MSUJUT09MX0lOSVRdLAotKyAgICAgICAg ICAgICAgICAgICAgIFskMQotK10pXSldKQotKwotKyMgSW5pdGlhbGl6ZS4KLSttNF9kZWZpbmUo W19MVF9PVVRQVVRfTElCVE9PTF9JTklUXSkKLSsKLSsKLSsjIF9MVF9DT05GSUdfTElCVE9PTChb Q09NTUFORFNdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBSZWdpc3Rl ciBDT01NQU5EUyB0byBiZSBwYXNzZWQgdG8gQUNfQ09ORklHX0NPTU1BTkRTIGxhdGVyLgotK200 X2RlZmluZShbX0xUX0NPTkZJR19MSUJUT09MXSwKLStbbTRfaWZ2YWwoWyQxXSwKLSsgICAgICAg ICAgW200X2FwcGVuZChbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTXSwKLSsgICAgICAgICAg ICAgICAgICAgICBbJDEKLStdKV0pXSkKLSsKLSsjIEluaXRpYWxpemUuCi0rbTRfZGVmaW5lKFtf TFRfT1VUUFVUX0xJQlRPT0xfQ09NTUFORFNdKQotKwotKwotKyMgX0xUX0NPTkZJR19TQVZFX0NP TU1BTkRTKFtDT01NQU5EU10sIFtJTklUX0NPTU1BTkRTXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9DT05G SUdfU0FWRV9DT01NQU5EU10sCi0rW19MVF9DT05GSUdfTElCVE9PTChbJDFdKQotK19MVF9DT05G SUdfTElCVE9PTF9JTklUKFskMl0pCi0rXSkKLSsKLSsKLSsjIF9MVF9GT1JNQVRfQ09NTUVOVChb Q09NTUVOVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQWRkIGxlYWRp bmcgY29tbWVudCBtYXJrcyB0byB0aGUgc3RhcnQgb2YgZWFjaCBsaW5lLCBhbmQgYSB0cmFpbGlu ZwotKyMgZnVsbC1zdG9wIHRvIHRoZSB3aG9sZSBjb21tZW50IGlmIG9uZSBpcyBub3QgcHJlc2Vu dCBhbHJlYWR5LgotK200X2RlZmluZShbX0xUX0ZPUk1BVF9DT01NRU5UXSwKLStbbTRfaWZ2YWwo WyQxXSwgWwotK200X2JwYXRzdWJzdChbbTRfYnBhdHN1YnN0KFskMV0sIFteICpdLCBbIyBdKV0s Ci0rICAgICAgICAgICAgICBbWydgJFxdXSwgW1xcXCZdKV1tNF9ibWF0Y2goWyQxXSwgW1shPy5d JF0sIFtdLCBbLl0pCi0rKV0pCi0rCi0rCi0rCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t ICMjCi0rIyMgRklYTUU6IEVsaW1pbmF0ZSBWQVJOQU1FICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tICMjCi0rCi0rCi0rIyBfTFRfREVDTChbQ09ORklHTkFNRV0sIFZBUk5BTUUsIFZB TFVFLCBbREVTQ1JJUFRJT05dLCBbSVMtVEFHR0VEP10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDT05G SUdOQU1FIGlzIHRoZSBuYW1lIGdpdmVuIHRvIHRoZSB2YWx1ZSBpbiB0aGUgbGlidG9vbCBzY3Jp cHQuCi0rIyBWQVJOQU1FIGlzIHRoZSAoYmFzZSkgbmFtZSB1c2VkIGluIHRoZSBjb25maWd1cmUg c2NyaXB0LgotKyMgVkFMVUUgbWF5IGJlIDAsIDEgb3IgMiBmb3IgYSBjb21wdXRlZCBxdW90ZSBl c2NhcGVkIHZhbHVlIGJhc2VkIG9uCi0rIyBWQVJOQU1FLiAgQW55IG90aGVyIHZhbHVlIHdpbGwg YmUgdXNlZCBkaXJlY3RseS4KLSttNF9kZWZpbmUoW19MVF9ERUNMXSwKLStbbHRfaWZfYXBwZW5k X3VuaXEoW2x0X2RlY2xfdmFybmFtZXNdLCBbJDJdLCBbLCBdLAotKyAgICBbbHRfZGljdF9hZGRf c3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbbGlidG9vbF9uYW1lXSwKLSsJW200X2lmdmFs KFskMV0sIFskMV0sIFskMl0pXSkKLSsgICAgbHRfZGljdF9hZGRfc3Via2V5KFtsdF9kZWNsX2Rp Y3RdLCBbJDJdLCBbdmFsdWVdLCBbJDNdKQotKyAgICBtNF9pZnZhbChbJDRdLAotKwlbbHRfZGlj dF9hZGRfc3Via2V5KFtsdF9kZWNsX2RpY3RdLCBbJDJdLCBbZGVzY3JpcHRpb25dLCBbJDRdKV0p Ci0rICAgIGx0X2RpY3RfYWRkX3N1YmtleShbbHRfZGVjbF9kaWN0XSwgWyQyXSwKLSsJW3RhZ2dl ZD9dLCBbbTRfaWZ2YWwoWyQ1XSwgW3llc10sIFtub10pXSldKQotK10pCi0rCi0rCi0rIyBfTFRf VEFHREVDTChbQ09ORklHTkFNRV0sIFZBUk5BTUUsIFZBTFVFLCBbREVTQ1JJUFRJT05dKQotKyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSttNF9kZWZpbmUoW19MVF9UQUdERUNMXSwgW19MVF9ERUNMKFskMV0sIFskMl0sIFskM10sIFsk NF0sIFt5ZXNdKV0pCi0rCi0rCi0rIyBsdF9kZWNsX3RhZ192YXJuYW1lcyhbU0VQQVJBVE9SXSwg W1ZBUk5BTUUxLi4uXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotK200X2RlZmluZShbbHRfZGVjbF90YWdfdmFybmFtZXNdLAotK1tfbHRfZGVj bF9maWx0ZXIoW3RhZ2dlZD9dLCBbeWVzXSwgJEApXSkKLSsKLSsKLSsjIF9sdF9kZWNsX2ZpbHRl cihTVUJLRVksIFZBTFVFLCBbU0VQQVJBVE9SXSwgW1ZBUk5BTUUxLi5dKQotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVm aW5lKFtfbHRfZGVjbF9maWx0ZXJdLAotK1ttNF9jYXNlKFskI10sCi0rICBbMF0sIFttNF9mYXRh bChbJDA6IHRvbyBmZXcgYXJndW1lbnRzOiAkI10pXSwKLSsgIFsxXSwgW200X2ZhdGFsKFskMDog dG9vIGZldyBhcmd1bWVudHM6ICQjOiAkMV0pXSwKLSsgIFsyXSwgW2x0X2RpY3RfZmlsdGVyKFts dF9kZWNsX2RpY3RdLCBbJDFdLCBbJDJdLCBbXSwgbHRfZGVjbF92YXJuYW1lcyldLAotKyAgWzNd LCBbbHRfZGljdF9maWx0ZXIoW2x0X2RlY2xfZGljdF0sIFskMV0sIFskMl0sIFskM10sIGx0X2Rl Y2xfdmFybmFtZXMpXSwKLSsgIFtsdF9kaWN0X2ZpbHRlcihbbHRfZGVjbF9kaWN0XSwgJEApXSlb XWRubAotK10pCi0rCi0rCi0rIyBsdF9kZWNsX3F1b3RlX3Zhcm5hbWVzKFtTRVBBUkFUT1JdLCBb VkFSTkFNRTEuLi5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW2x0X2RlY2xfcXVvdGVfdmFybmFtZXNdLAotK1tfbHRf ZGVjbF9maWx0ZXIoW3ZhbHVlXSwgWzFdLCAkQCldKQotKwotKwotKyMgbHRfZGVjbF9kcXVvdGVf dmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0pCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW2x0X2RlY2xf ZHF1b3RlX3Zhcm5hbWVzXSwKLStbX2x0X2RlY2xfZmlsdGVyKFt2YWx1ZV0sIFsyXSwgJEApXSkK LSsKLSsKLSsjIGx0X2RlY2xfdmFybmFtZXNfdGFnZ2VkKFtTRVBBUkFUT1JdLCBbVkFSTkFNRTEu Li5dKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rbTRfZGVmaW5lKFtsdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZF0sCi0rW200X2Fzc2VydChb JCMgPD0gMl0pZG5sCi0rXyQwKG00X3F1b3RlKG00X2RlZmF1bHQoWyQxXSwgW1ssIF1dKSksCi0r ICAgIG00X2lmdmFsKFskMl0sIFtbJDJdXSwgW200X2RxdW90ZShsdF9kZWNsX3RhZ192YXJuYW1l cyldKSwKLSsgICAgbTRfc3BsaXQobTRfbm9ybWFsaXplKG00X3F1b3RlKF9MVF9UQUdTKSksIFsg XSkpXSkKLSttNF9kZWZpbmUoW19sdF9kZWNsX3Zhcm5hbWVzX3RhZ2dlZF0sCi0rW200X2lmdmFs KFskM10sIFtsdF9jb21iaW5lKFskMV0sIFskMl0sIFtfXSwgJDMpXSldKQotKwotKwotKyMgbHRf ZGVjbF9hbGxfdmFybmFtZXMoW1NFUEFSQVRPUl0sIFtWQVJOQU1FMS4uLl0pCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW2x0 X2RlY2xfYWxsX3Zhcm5hbWVzXSwKLStbXyQwKG00X3F1b3RlKG00X2RlZmF1bHQoWyQxXSwgW1ss IF1dKSksCi0rICAgICBtNF9pZihbJDJdLCBbXSwKLSsJICAgbTRfcXVvdGUobHRfZGVjbF92YXJu YW1lcyksCi0rCW00X3F1b3RlKG00X3NoaWZ0KCRAKSkpKVtdZG5sCi0rXSkKLSttNF9kZWZpbmUo W19sdF9kZWNsX2FsbF92YXJuYW1lc10sCi0rW2x0X2pvaW4oJEAsIGx0X2RlY2xfdmFybmFtZXNf dGFnZ2VkKFskMV0sCi0rCQkJbHRfZGVjbF90YWdfdmFybmFtZXMoW1ssIF1dLCBtNF9zaGlmdCgk QCkpKSlkbmwKLStdKQotKwotKwotKyMgX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSRShbVkFSTkFN RV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFF1b3RlIGEg dmFyaWFibGUgdmFsdWUsIGFuZCBmb3J3YXJkIGl0IHRvIGBjb25maWcuc3RhdHVzJyBzbyB0aGF0 IGl0cwotKyMgZGVjbGFyYXRpb24gdGhlcmUgd2lsbCBoYXZlIHRoZSBzYW1lIHZhbHVlIGFzIGlu IGBjb25maWd1cmUnLiAgVkFSTkFNRQotKyMgbXVzdCBoYXZlIGEgc2luZ2xlIHF1b3RlIGRlbGlt aXRlZCB2YWx1ZSBmb3IgdGhpcyB0byB3b3JrLgotK200X2RlZmluZShbX0xUX0NPTkZJR19TVEFU VVNfREVDTEFSRV0sCi0rWyQxPSdgJEVDSE8gIiRdWyQxIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCddKQotKwotKwotKyMgX0xUX0NPTkZJR19TVEFUVVNfREVDTEFSQVRJT05T Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFdlIGRlbGltaXQgbGlidG9v bCBjb25maWcgdmFyaWFibGVzIHdpdGggc2luZ2xlIHF1b3Rlcywgc28gd2hlbgotKyMgd2Ugd3Jp dGUgdGhlbSB0byBjb25maWcuc3RhdHVzLCB3ZSBoYXZlIHRvIGJlIHN1cmUgdG8gcXVvdGUgYWxs Ci0rIyBlbWJlZGRlZCBzaW5nbGUgcXVvdGVzIHByb3Blcmx5LiAgSW4gY29uZmlndXJlLCB0aGlz IG1hY3JvIGV4cGFuZHMKLSsjIGVhY2ggdmFyaWFibGUgZGVjbGFyZWQgd2l0aCBfTFRfREVDTCAo YW5kIF9MVF9UQUdERUNMKSBpbnRvOgotKyMKLSsjICAgIDx2YXI+PSdgJEVDSE8gIiQ8dmFyPiIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbTRfZGVmdW4oW19MVF9DT05G SUdfU1RBVFVTX0RFQ0xBUkFUSU9OU10sCi0rW200X2ZvcmVhY2goW19sdF92YXJdLCBtNF9xdW90 ZShsdF9kZWNsX2FsbF92YXJuYW1lcyksCi0rICAgIFttNF9uKFtfTFRfQ09ORklHX1NUQVRVU19E RUNMQVJFKF9sdF92YXIpXSldKV0pCi0rCi0rCi0rIyBfTFRfTElCVE9PTF9UQUdTCi0rIyAtLS0t LS0tLS0tLS0tLS0tCi0rIyBPdXRwdXQgY29tbWVudCBhbmQgbGlzdCBvZiB0YWdzIHN1cHBvcnRl ZCBieSB0aGUgc2NyaXB0Ci0rbTRfZGVmdW4oW19MVF9MSUJUT09MX1RBR1NdLAotK1tfTFRfRk9S TUFUX0NPTU1FTlQoW1RoZSBuYW1lcyBvZiB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHN1cHBv cnRlZCBieSB0aGlzIHNjcmlwdF0pZG5sCi0rYXZhaWxhYmxlX3RhZ3M9Il9MVF9UQUdTImRubAot K10pCi0rCi0rCi0rIyBfTFRfTElCVE9PTF9ERUNMQVJFKFZBUk5BTUUsIFtUQUddKQotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEV4dHJhY3QgdGhlIGRpY3Rpb25h cnkgdmFsdWVzIGZvciBWQVJOQU1FIChvcHRpb25hbGx5IHdpdGggVEFHKSBhbmQKLSsjIGV4cGFu ZCB0byBhIGNvbW1lbnRlZCBzaGVsbCB2YXJpYWJsZSBzZXR0aW5nOgotKyMKLSsjICAgICMgU29t ZSBjb21tZW50IGFib3V0IHdoYXQgVkFSIGlzIGZvci4KLSsjICAgIHZpc2libGVfbmFtZT0kbHRf aW50ZXJuYWxfbmFtZQotK200X2RlZmluZShbX0xUX0xJQlRPT0xfREVDTEFSRV0sCi0rW19MVF9G T1JNQVRfQ09NTUVOVChtNF9xdW90ZShsdF9kaWN0X2ZldGNoKFtsdF9kZWNsX2RpY3RdLCBbJDFd LAotKwkJCQkJICAgW2Rlc2NyaXB0aW9uXSkpKVtdZG5sCi0rbTRfcHVzaGRlZihbX2xpYnRvb2xf bmFtZV0sCi0rICAgIG00X3F1b3RlKGx0X2RpY3RfZmV0Y2goW2x0X2RlY2xfZGljdF0sIFskMV0s IFtsaWJ0b29sX25hbWVdKSkpW11kbmwKLSttNF9jYXNlKG00X3F1b3RlKGx0X2RpY3RfZmV0Y2go W2x0X2RlY2xfZGljdF0sIFskMV0sIFt2YWx1ZV0pKSwKLSsgICAgWzBdLCBbX2xpYnRvb2xfbmFt ZT1bJF0kMV0sCi0rICAgIFsxXSwgW19saWJ0b29sX25hbWU9JGx0X1tdJDFdLAotKyAgICBbMl0s IFtfbGlidG9vbF9uYW1lPSRsdF9bXSQxXSwKLSsgICAgW19saWJ0b29sX25hbWU9bHRfZGljdF9m ZXRjaChbbHRfZGVjbF9kaWN0XSwgWyQxXSwgW3ZhbHVlXSldKVtdZG5sCi0rbTRfaWZ2YWwoWyQy XSwgW18kMl0pW11tNF9wb3BkZWYoW19saWJ0b29sX25hbWVdKVtdZG5sCi0rXSkKLSsKLSsKLSsj IF9MVF9MSUJUT09MX0NPTkZJR19WQVJTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg UHJvZHVjZSBjb21tZW50ZWQgZGVjbGFyYXRpb25zIG9mIG5vbi10YWdnZWQgbGlidG9vbCBjb25m aWcgdmFyaWFibGVzCi0rIyBzdWl0YWJsZSBmb3IgaW5zZXJ0aW9uIGluIHRoZSBMSUJUT09MIENP TkZJRyBzZWN0aW9uIG9mIHRoZSBgbGlidG9vbCcKLSsjIHNjcmlwdC4gIFRhZ2dlZCBsaWJ0b29s IGNvbmZpZyB2YXJpYWJsZXMgKGV2ZW4gZm9yIHRoZSBMSUJUT09MIENPTkZJRwotKyMgc2VjdGlv bikgYXJlIHByb2R1Y2VkIGJ5IF9MVF9MSUJUT09MX1RBR19WQVJTLgotK200X2RlZnVuKFtfTFRf TElCVE9PTF9DT05GSUdfVkFSU10sCi0rW200X2ZvcmVhY2goW19sdF92YXJdLAotKyAgICBtNF9x dW90ZShfbHRfZGVjbF9maWx0ZXIoW3RhZ2dlZD9dLCBbbm9dLCBbXSwgbHRfZGVjbF92YXJuYW1l cykpLAotKyAgICBbbTRfbihbX0xUX0xJQlRPT0xfREVDTEFSRShfbHRfdmFyKV0pXSldKQotKwot KwotKyMgX0xUX0xJQlRPT0xfVEFHX1ZBUlMoVEFHKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQotK200X2RlZmluZShbX0xUX0xJQlRPT0xfVEFHX1ZBUlNdLAotK1ttNF9mb3JlYWNoKFtf bHRfdmFyXSwgbTRfcXVvdGUobHRfZGVjbF90YWdfdmFybmFtZXMpLAotKyAgICBbbTRfbihbX0xU X0xJQlRPT0xfREVDTEFSRShfbHRfdmFyLCBbJDFdKV0pXSldKQotKwotKwotKyMgX0xUX1RBR1ZB UihWQVJOQU1FLCBbVEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K LSttNF9kZWZpbmUoW19MVF9UQUdWQVJdLCBbbTRfaWZ2YWwoWyQyXSwgWyQxXyQyXSwgWyQxXSld KQotKwotKwotKyMgX0xUX0NPTkZJR19DT01NQU5EUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLQot KyMgU2VuZCBhY2N1bXVsYXRlZCBvdXRwdXQgdG8gJENPTkZJR19TVEFUVVMuICBUaGFua3MgdG8g dGhlIGxpc3RzIG9mCi0rIyB2YXJpYWJsZXMgZm9yIHNpbmdsZSBhbmQgZG91YmxlIHF1b3RlIGVz Y2FwaW5nIHdlIHNhdmVkIGZyb20gY2FsbHMKLSsjIHRvIF9MVF9ERUNMLCB3ZSBjYW4gcHV0IHF1 b3RlIGVzY2FwZWQgdmFyaWFibGVzIGRlY2xhcmF0aW9ucwotKyMgaW50byBgY29uZmlnLnN0YXR1 cycsIGFuZCB0aGVuIHRoZSBzaGVsbCBjb2RlIHRvIHF1b3RlIGVzY2FwZSB0aGVtIGluCi0rIyBm b3IgbG9vcHMgaW4gYGNvbmZpZy5zdGF0dXMnLiAgRmluYWxseSwgYW55IGFkZGl0aW9uYWwgY29k ZSBhY2N1bXVsYXRlZAotKyMgZnJvbSBjYWxscyB0byBfTFRfQ09ORklHX0xJQlRPT0xfSU5JVCBp cyBleHBhbmRlZC4KLSttNF9kZWZ1bihbX0xUX0NPTkZJR19DT01NQU5EU10sCi0rW0FDX1BST1ZJ REVfSUZFTFNFKFtMVF9PVVRQVVRdLAotKwlkbmwgSWYgdGhlIGxpYnRvb2wgZ2VuZXJhdGlvbiBj b2RlIGhhcyBiZWVuIHBsYWNlZCBpbiAkQ09ORklHX0xULAotKwlkbmwgaW5zdGVhZCBvZiBkdXBs aWNhdGluZyBpdCBhbGwgb3ZlciBhZ2FpbiBpbnRvIGNvbmZpZy5zdGF0dXMsCi0rCWRubCB0aGVu IHdlIHdpbGwgaGF2ZSBjb25maWcuc3RhdHVzIHJ1biAkQ09ORklHX0xUIGxhdGVyLCBzbyBpdAot KwlkbmwgbmVlZHMgdG8ga25vdyB3aGF0IG5hbWUgaXMgc3RvcmVkIHRoZXJlOgotKyAgICAgICAg W0FDX0NPTkZJR19DT01NQU5EUyhbbGlidG9vbF0sCi0rICAgICAgICAgICAgWyRTSEVMTCAkQ09O RklHX0xUIHx8IEFTX0VYSVQoMSldLCBbQ09ORklHX0xUPSckQ09ORklHX0xUJ10pXSwKLSsgICAg ZG5sIElmIHRoZSBsaWJ0b29sIGdlbmVyYXRpb24gY29kZSBpcyBkZXN0aW5lZCBmb3IgY29uZmln LnN0YXR1cywKLSsgICAgZG5sIGV4cGFuZCB0aGUgYWNjdW11bGF0ZWQgY29tbWFuZHMgYW5kIGlu aXQgY29kZSBub3c6Ci0rICAgIFtBQ19DT05GSUdfQ09NTUFORFMoW2xpYnRvb2xdLAotKyAgICAg ICAgW19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU10sIFtfTFRfT1VUUFVUX0xJQlRPT0xfQ09N TUFORFNfSU5JVF0pXSkKLStdKSNfTFRfQ09ORklHX0NPTU1BTkRTCi0rCi0rCi0rIyBJbml0aWFs aXplLgotK200X2RlZmluZShbX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTX0lOSVRdLAotK1sK LSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50IHRoZSB0YXJnZXQgZGly ZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYgQ0RQQVRIIGlzIHNldC4KLSsodW5zZXQgQ0RQQVRIKSA+ L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICi0rCi0rc2VkX3F1b3RlX3N1YnN0PSckc2Vk X3F1b3RlX3N1YnN0JwotK2RvdWJsZV9xdW90ZV9zdWJzdD0nJGRvdWJsZV9xdW90ZV9zdWJzdCcK LStkZWxheV92YXJpYWJsZV9zdWJzdD0nJGRlbGF5X3ZhcmlhYmxlX3N1YnN0JwotK19MVF9DT05G SUdfU1RBVFVTX0RFQ0xBUkFUSU9OUwotK0xUQ0M9JyRMVENDJwotK0xUQ0ZMQUdTPSckTFRDRkxB R1MnCi0rY29tcGlsZXI9JyRjb21waWxlcl9ERUZBVUxUJwotKwotKyMgQSBmdW5jdGlvbiB0aGF0 IGlzIHVzZWQgd2hlbiB0aGVyZSBpcyBubyBwcmludCBidWlsdGluIG9yIHByaW50Zi4KLStmdW5j X2ZhbGxiYWNrX2VjaG8gKCkKLSt7Ci0rICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgotK1wkW10x Ci0rX0xURUNIT19FT0YnCi0rfQotKwotKyMgUXVvdGUgZXZhbGVkIHN0cmluZ3MuCi0rZm9yIHZh ciBpbiBsdF9kZWNsX2FsbF92YXJuYW1lcyhbWyBcCi0rXV0sIGx0X2RlY2xfcXVvdGVfdmFybmFt ZXMpOyBkbwotKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPIFxcXFwiIlxcXFxcJFwkdmFyIlxc XFwiXGAgaW4KLSsgICAgKltbXFxcXFxcXGBcXCJcXFwkXV0qKQotKyAgICAgIGV2YWwgImx0X1wk dmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiXFxcJFwkdmFyXFwiIHwgXFxcJFNFRCBcXCJcXFwk c2VkX3F1b3RlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAg ICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKLSsgICAgICA7OwotKyAg ICBlc2FjCi0rZG9uZQotKwotKyMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4K LStmb3IgdmFyIGluIGx0X2RlY2xfYWxsX3Zhcm5hbWVzKFtbIFwKLStdXSwgbHRfZGVjbF9kcXVv dGVfdmFybmFtZXMpOyBkbwotKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRFQ0hPIFxcXFwiIlxcXFxc JFwkdmFyIlxcXFwiXGAgaW4KLSsgICAgKltbXFxcXFxcXGBcXCJcXFwkXV0qKQotKyAgICAgIGV2 YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxcJEVDSE8gXFwiXFxcJFwkdmFyXFwiIHwgXFxcJFNF RCAtZSBcXCJcXFwkZG91YmxlX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRzZWRfcXVvdGVfc3Vi c3RcXCIgLWUgXFwiXFxcJGRlbGF5X3ZhcmlhYmxlX3N1YnN0XFwiXFxcYFxcXFxcXCIiCi0rICAg ICAgOzsKLSsgICAgKikKLSsgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcJFwkdmFyXFxc XFxcIiIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZG9uZQotKwotK19MVF9PVVRQVVRfTElCVE9P TF9JTklUCi0rXSkKLSsKLSsjIF9MVF9HRU5FUkFURURfRklMRV9JTklUKEZJTEUsIFtDT01NRU5U XSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgR2VuZXJhdGUg YSBjaGlsZCBzY3JpcHQgRklMRSB3aXRoIGFsbCBpbml0aWFsaXphdGlvbiBuZWNlc3NhcnkgdG8K LSsjIHJldXNlIHRoZSBlbnZpcm9ubWVudCBsZWFybmVkIGJ5IHRoZSBwYXJlbnQgc2NyaXB0LCBh bmQgbWFrZSB0aGUKLSsjIGZpbGUgZXhlY3V0YWJsZS4gIElmIENPTU1FTlQgaXMgc3VwcGxpZWQs IGl0IGlzIGluc2VydGVkIGFmdGVyIHRoZQotKyMgYCMhJyBzZXF1ZW5jZSBidXQgYmVmb3JlIGlu aXRpYWxpemF0aW9uIHRleHQgYmVnaW5zLiAgQWZ0ZXIgdGhpcwotKyMgbWFjcm8sIGFkZGl0aW9u YWwgdGV4dCBjYW4gYmUgYXBwZW5kZWQgdG8gRklMRSB0byBmb3JtIHRoZSBib2R5IG9mCi0rIyB0 aGUgY2hpbGQgc2NyaXB0LiAgVGhlIG1hY3JvIGVuZHMgd2l0aCBub24temVybyBzdGF0dXMgaWYg dGhlCi0rIyBmaWxlIGNvdWxkIG5vdCBiZSBmdWxseSB3cml0dGVuIChzdWNoIGFzIGlmIHRoZSBk aXNrIGlzIGZ1bGwpLgotK200X2lmZGVmKFtBU19JTklUX0dFTkVSQVRFRF0sCi0rW200X2RlZnVu KFtfTFRfR0VORVJBVEVEX0ZJTEVfSU5JVF0sW0FTX0lOSVRfR0VORVJBVEVEKCRAKV0pXSwKLStb bTRfZGVmdW4oW19MVF9HRU5FUkFURURfRklMRV9JTklUXSwKLStbbTRfcmVxdWlyZShbQVNfUFJF UEFSRV0pXWRubAotK1ttNF9wdXNoZGVmKFtBU19NRVNTQUdFX0xPR19GRF0pXWRubAotK1tsdF93 cml0ZV9mYWlsPTAKLStjYXQgPiQxIDw8X0FTRU9GIHx8IGx0X3dyaXRlX2ZhaWw9MQotKyMhICRT SEVMTAotKyMgR2VuZXJhdGVkIGJ5ICRhc19tZS4KLSskMgotK1NIRUxMPVwke0NPTkZJR19TSEVM TC0kU0hFTEx9Ci0rZXhwb3J0IFNIRUxMCi0rX0FTRU9GCi0rY2F0ID4+JDEgPDxcX0FTRU9GIHx8 IGx0X3dyaXRlX2ZhaWw9MQotK0FTX1NIRUxMX1NBTklUSVpFCi0rX0FTX1BSRVBBUkUKLStleGVj IEFTX01FU1NBR0VfRkQ+JjEKLStfQVNFT0YKLSt0ZXN0ICRsdF93cml0ZV9mYWlsID0gMCAmJiBj aG1vZCAreCAkMVtdZG5sCi0rbTRfcG9wZGVmKFtBU19NRVNTQUdFX0xPR19GRF0pXSldKSMgX0xU X0dFTkVSQVRFRF9GSUxFX0lOSVQKLSsKLSsjIExUX09VVFBVVAotKyMgLS0tLS0tLS0tCi0rIyBU aGlzIG1hY3JvIGFsbG93cyBlYXJseSBnZW5lcmF0aW9uIG9mIHRoZSBsaWJ0b29sIHNjcmlwdCAo YmVmb3JlCi0rIyBBQ19PVVRQVVQgaXMgY2FsbGVkKSwgaW5jYXNlIGl0IGlzIHVzZWQgaW4gY29u ZmlndXJlIGZvciBjb21waWxhdGlvbgotKyMgdGVzdHMuCi0rQUNfREVGVU4oW0xUX09VVFBVVF0s Ci0rWzogJHtDT05GSUdfTFQ9Li9jb25maWcubHR9Ci0rQUNfTVNHX05PVElDRShbY3JlYXRpbmcg JENPTkZJR19MVF0pCi0rX0xUX0dFTkVSQVRFRF9GSUxFX0lOSVQoWyIkQ09ORklHX0xUIl0sCi0r WyMgUnVuIHRoaXMgZmlsZSB0byByZWNyZWF0ZSBhIGxpYnRvb2wgc3R1YiB3aXRoIHRoZSBjdXJy ZW50IGNvbmZpZ3VyYXRpb24uXSkKLSsKLStjYXQgPj4iJENPTkZJR19MVCIgPDxcX0xURU9GCi0r bHRfY2xfc2lsZW50PWZhbHNlCi0rZXhlYyBBU19NRVNTQUdFX0xPR19GRD4+Y29uZmlnLmxvZwot K3sKLSsgIGVjaG8KLSsgIEFTX0JPWChbUnVubmluZyAkYXNfbWUuXSkKLSt9ID4mQVNfTUVTU0FH RV9MT0dfRkQKLSsKLStsdF9jbF9oZWxwPSJcCi0rXGAkYXNfbWUnIGNyZWF0ZXMgYSBsb2NhbCBs aWJ0b29sIHN0dWIgZnJvbSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLAotK2ZvciB1c2UgaW4g ZnVydGhlciBjb25maWd1cmUgdGltZSB0ZXN0cyBiZWZvcmUgdGhlIHJlYWwgbGlidG9vbCBpcwot K2dlbmVyYXRlZC4KLSsKLStVc2FnZTogJFswXSBbW09QVElPTlNdXQotKwotKyAgLWgsIC0taGVs cCAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBleGl0Ci0rICAtViwgLS12ZXJzaW9uICAgcHJp bnQgdmVyc2lvbiBudW1iZXIsIHRoZW4gZXhpdAotKyAgLXEsIC0tcXVpZXQgICAgIGRvIG5vdCBw cmludCBwcm9ncmVzcyBtZXNzYWdlcwotKyAgLWQsIC0tZGVidWcgICAgIGRvbid0IHJlbW92ZSB0 ZW1wb3JhcnkgZmlsZXMKLSsKLStSZXBvcnQgYnVncyB0byA8YnVnLWxpYnRvb2xAZ251Lm9yZz4u IgotKwotK2x0X2NsX3ZlcnNpb249IlwKLSttNF9pZnNldChbQUNfUEFDS0FHRV9OQU1FXSwgW0FD X1BBQ0tBR0VfTkFNRSBdKWNvbmZpZy5sdFtdZG5sCi0rbTRfaWZzZXQoW0FDX1BBQ0tBR0VfVkVS U0lPTl0sIFsgQUNfUEFDS0FHRV9WRVJTSU9OXSkKLStjb25maWd1cmVkIGJ5ICRbMF0sIGdlbmVy YXRlZCBieSBtNF9QQUNLQUdFX1NUUklORy4KLSsKLStDb3B5cmlnaHQgKEMpIDIwMTAgRnJlZSBT b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rVGhpcyBjb25maWcubHQgc2NyaXB0IGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLStnaXZlcyB1bmxpbWl0ZWQg cGVybWlzaW9uIHRvIGNvcHksIGRpc3RyaWJ1dGUgYW5kIG1vZGlmeSBpdC4iCi0rCi0rd2hpbGUg dGVzdCAkWyNdICE9IDAKLStkbwotKyAgY2FzZSAkWzFdIGluCi0rICAgIC0tdmVyc2lvbiB8IC0t diogfCAtViApCi0rICAgICAgZWNobyAiJGx0X2NsX3ZlcnNpb24iOyBleGl0IDAgOzsKLSsgICAg LS1oZWxwIHwgLS1oKiB8IC1oICkKLSsgICAgICBlY2hvICIkbHRfY2xfaGVscCI7IGV4aXQgMCA7 OwotKyAgICAtLWRlYnVnIHwgLS1kKiB8IC1kICkKLSsgICAgICBkZWJ1Zz06IDs7Ci0rICAgIC0t cXVpZXQgfCAtLXEqIHwgLS1zaWxlbnQgfCAtLXMqIHwgLXEgKQotKyAgICAgIGx0X2NsX3NpbGVu dD06IDs7Ci0rCi0rICAgIC0qKSBBQ19NU0dfRVJST1IoW3VucmVjb2duaXplZCBvcHRpb246ICRb MV0KLStUcnkgXGAkWzBdIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXSkgOzsKLSsKLSsg ICAgKikgQUNfTVNHX0VSUk9SKFt1bnJlY29nbml6ZWQgYXJndW1lbnQ6ICRbMV0KLStUcnkgXGAk WzBdIC0taGVscCcgZm9yIG1vcmUgaW5mb3JtYXRpb24uXSkgOzsKLSsgIGVzYWMKLSsgIHNoaWZ0 Ci0rZG9uZQotKwotK2lmICRsdF9jbF9zaWxlbnQ7IHRoZW4KLSsgIGV4ZWMgQVNfTUVTU0FHRV9G RD4vZGV2L251bGwKLStmaQotK19MVEVPRgotKwotK2NhdCA+PiIkQ09ORklHX0xUIiA8PF9MVEVP RgotK19MVF9PVVRQVVRfTElCVE9PTF9DT01NQU5EU19JTklUCi0rX0xURU9GCi0rCi0rY2F0ID4+ IiRDT05GSUdfTFQiIDw8XF9MVEVPRgotK0FDX01TR19OT1RJQ0UoW2NyZWF0aW5nICRvZmlsZV0p Ci0rX0xUX09VVFBVVF9MSUJUT09MX0NPTU1BTkRTCi0rQVNfRVhJVCgwKQotK19MVEVPRgotK2No bW9kICt4ICIkQ09ORklHX0xUIgotKwotKyMgY29uZmlndXJlIGlzIHdyaXRpbmcgdG8gY29uZmln LmxvZywgYnV0IGNvbmZpZy5sdCBkb2VzIGl0cyBvd24gcmVkaXJlY3Rpb24sCi0rIyBhcHBlbmRp bmcgdG8gY29uZmlnLmxvZywgd2hpY2ggZmFpbHMgb24gRE9TLCBhcyBjb25maWcubG9nIGlzIHN0 aWxsIGtlcHQKLSsjIG9wZW4gYnkgY29uZmlndXJlLiAgSGVyZSB3ZSBleGVjIHRoZSBGRCB0byAv ZGV2L251bGwsIGVmZmVjdGl2ZWx5IGNsb3NpbmcKLSsjIGNvbmZpZy5sb2csIHNvIGl0IGNhbiBi ZSBwcm9wZXJseSAocmUpb3BlbmVkIGFuZCBhcHBlbmRlZCB0byBieSBjb25maWcubHQuCi0rbHRf Y2xfc3VjY2Vzcz06Ci0rdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYKLSsgIGx0X2NvbmZpZ19sdF9h cmdzPSIkbHRfY29uZmlnX2x0X2FyZ3MgLS1xdWlldCIKLStleGVjIEFTX01FU1NBR0VfTE9HX0ZE Pi9kZXYvbnVsbAotKyRTSEVMTCAiJENPTkZJR19MVCIgJGx0X2NvbmZpZ19sdF9hcmdzIHx8IGx0 X2NsX3N1Y2Nlc3M9ZmFsc2UKLStleGVjIEFTX01FU1NBR0VfTE9HX0ZEPj5jb25maWcubG9nCi0r JGx0X2NsX3N1Y2Nlc3MgfHwgQVNfRVhJVCgxKQotK10pIyBMVF9PVVRQVVQKLSsKLSsKLSsjIF9M VF9DT05GSUcoVEFHKQotKyMgLS0tLS0tLS0tLS0tLS0tCi0rIyBJZiBUQUcgaXMgdGhlIGJ1aWx0 LWluIHRhZywgY3JlYXRlIGFuIGluaXRpYWwgbGlidG9vbCBzY3JpcHQgd2l0aCBhCi0rIyBkZWZh dWx0IGNvbmZpZ3VyYXRpb24gZnJvbSB0aGUgdW50YWdnZWQgY29uZmlnIHZhcnMuICBPdGhlcndp c2UgYWRkIGNvZGUKLSsjIHRvIGNvbmZpZy5zdGF0dXMgZm9yIGFwcGVuZGluZyB0aGUgY29uZmln dXJhdGlvbiBuYW1lZCBieSBUQUcgZnJvbSB0aGUKLSsjIG1hdGNoaW5nIHRhZ2dlZCBjb25maWcg dmFycy4KLSttNF9kZWZ1bihbX0xUX0NPTkZJR10sCi0rW200X3JlcXVpcmUoW19MVF9GSUxFVVRJ TFNfREVGQVVMVFNdKWRubAotK19MVF9DT05GSUdfU0FWRV9DT01NQU5EUyhbCi0rICBtNF9kZWZp bmUoW19MVF9UQUddLCBtNF9pZihbJDFdLCBbXSwgW0NdLCBbJDFdKSlkbmwKLSsgIG00X2lmKF9M VF9UQUcsIFtDXSwgWwotKyAgICAjIFNlZSBpZiB3ZSBhcmUgcnVubmluZyBvbiB6c2gsIGFuZCBz ZXQgdGhlIG9wdGlvbnMgd2hpY2ggYWxsb3cgb3VyCi0rICAgICMgY29tbWFuZHMgdGhyb3VnaCB3 aXRob3V0IHJlbW92YWwgb2YgXCBlc2NhcGVzLgotKyAgICBpZiB0ZXN0IC1uICIke1pTSF9WRVJT SU9OK3NldH0iIDsgdGhlbgotKyAgICAgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rICAgIGZpCi0r Ci0rICAgIGNmZ2ZpbGU9IiR7b2ZpbGV9VCIKLSsgICAgdHJhcCAiJFJNIFwiJGNmZ2ZpbGVcIjsg ZXhpdCAxIiAxIDIgMTUKLSsgICAgJFJNICIkY2ZnZmlsZSIKLSsKLSsgICAgY2F0IDw8X0xUX0VP RiA+PiAiJGNmZ2ZpbGUiCi0rIyEgJFNIRUxMCi0rCi0rIyBgJEVDSE8gIiRvZmlsZSIgfCBzZWQg J3MlXi4qLyUlJ2AgLSBQcm92aWRlIGdlbmVyYWxpemVkIGxpYnJhcnktYnVpbGRpbmcgc3VwcG9y dCBzZXJ2aWNlcy4KLSsjIEdlbmVyYXRlZCBhdXRvbWF0aWNhbGx5IGJ5ICRhc19tZSAoJFBBQ0tB R0UkVElNRVNUQU1QKSAkVkVSU0lPTgotKyMgTGlidG9vbCB3YXMgY29uZmlndXJlZCBvbiBob3N0 IGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYDoKLSsjIE5PVEU6 IENoYW5nZXMgbWFkZSB0byB0aGlzIGZpbGUgd2lsbCBiZSBsb3N0OiBsb29rIGF0IGx0bWFpbi5z aC4KLSsjCi0rX0xUX0NPUFlJTkcKLStfTFRfTElCVE9PTF9UQUdTCi0rCi0rIyAjIyMgQkVHSU4g TElCVE9PTCBDT05GSUcKLStfTFRfTElCVE9PTF9DT05GSUdfVkFSUwotK19MVF9MSUJUT09MX1RB R19WQVJTCi0rIyAjIyMgRU5EIExJQlRPT0wgQ09ORklHCi0rCi0rX0xUX0VPRgotKwotKyAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgYWl4MyopCi0rICAgIGNhdCA8PFxfTFRfRU9GID4+ICIkY2ZnZmls ZSIKLSsjIEFJWCBzb21ldGltZXMgaGFzIHByb2JsZW1zIHdpdGggdGhlIEdDQyBjb2xsZWN0MiBw cm9ncmFtLiAgRm9yIHNvbWUKLSsjIHJlYXNvbiwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVT IGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUgcHJvYmxlbXMKLSsjIHZhbmlzaCBpbiBhIHB1ZmYg b2Ygc21va2UuCi0raWYgdGVzdCAiWCR7Q09MTEVDVF9OQU1FUytzZXR9IiAhPSBYc2V0OyB0aGVu Ci0rICBDT0xMRUNUX05BTUVTPQotKyAgZXhwb3J0IENPTExFQ1RfTkFNRVMKLStmaQotK19MVF9F T0YKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIF9MVF9QUk9HX0xUTUFJTgotKwotKyAgIyBXZSB1 c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNvbmZ1c2Vk IGlmCi0rICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAgU2luY2Ug c2VkIG9wZXJhdGVzIGluCi0rICAjIHRleHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVydHMgbGlu ZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQotKyAgIyBpcyByZXBvcnRlZGx5IGZpeGVk LCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8KLSsgIHNlZCAnJHEnICIkbHRt YWluIiA+PiAiJGNmZ2ZpbGUiIFwKLSsgICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBleGl0IDEp Ci0rCi0rICBfTFRfUFJPR19SRVBMQUNFX1NIRUxMRk5TCi0rCi0rICAgbXYgLWYgIiRjZmdmaWxl IiAiJG9maWxlIiB8fAotKyAgICAocm0gLWYgIiRvZmlsZSIgJiYgY3AgIiRjZmdmaWxlIiAiJG9m aWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUiKQotKyAgY2htb2QgK3ggIiRvZmlsZSIKLStdLAotK1tj YXQgPDxfTFRfRU9GID4+ICIkb2ZpbGUiCi0rCi0rZG5sIFVuZm9ydHVuYXRlbHkgd2UgaGF2ZSB0 byB1c2UgJDEgaGVyZSwgc2luY2UgX0xUX1RBRyBpcyBub3QgZXhwYW5kZWQKLStkbmwgaW4gYSBj b21tZW50IChpZSBhZnRlciBhICMpLgotKyMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzog JDEKLStfTFRfTElCVE9PTF9UQUdfVkFSUyhfTFRfVEFHKQotKyMgIyMjIEVORCBMSUJUT09MIFRB RyBDT05GSUc6ICQxCi0rX0xUX0VPRgotK10pZG5sIC9tNF9pZgotK10sCi0rW200X2lmKFskMV0s IFtdLCBbCi0rICAgIFBBQ0tBR0U9JyRQQUNLQUdFJwotKyAgICBWRVJTSU9OPSckVkVSU0lPTicK LSsgICAgVElNRVNUQU1QPSckVElNRVNUQU1QJwotKyAgICBSTT0nJFJNJwotKyAgICBvZmlsZT0n JG9maWxlJ10sIFtdKQotK10pZG5sIC9fTFRfQ09ORklHX1NBVkVfQ09NTUFORFMKLStdKSMgX0xU X0NPTkZJRwotKwotKwotKyMgTFRfU1VQUE9SVEVEX1RBRyhUQUcpCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0KLSsjIFRyYWNlIHRoaXMgbWFjcm8gdG8gZGlzY292ZXIgd2hhdCB0YWdzIGFyZSBz dXBwb3J0ZWQgYnkgdGhlIGxpYnRvb2wKLSsjIC0tdGFnIG9wdGlvbiwgdXNpbmc6Ci0rIyAgICBh dXRvY29uZiAtLXRyYWNlICdMVF9TVVBQT1JURURfVEFHOiQxJwotK0FDX0RFRlVOKFtMVF9TVVBQ T1JURURfVEFHXSwgW10pCi0rCi0rCi0rIyBDIHN1cHBvcnQgaXMgYnVpbHQtaW4gZm9yIG5vdwot K200X2RlZmluZShbX0xUX0xBTkdfQ19lbmFibGVkXSwgW10pCi0rbTRfZGVmaW5lKFtfTFRfVEFH U10sIFtdKQotKwotKwotKyMgTFRfTEFORyhMQU5HKQotKyMgLS0tLS0tLS0tLS0tLQotKyMgRW5h YmxlIGxpYnRvb2wgc3VwcG9ydCBmb3IgdGhlIGdpdmVuIGxhbmd1YWdlIGlmIG5vdCBhbHJlYWR5 IGVuYWJsZWQuCi0rQUNfREVGVU4oW0xUX0xBTkddLAotK1tBQ19CRUZPUkUoWyQwXSwgW0xUX09V VFBVVF0pZG5sCi0rbTRfY2FzZShbJDFdLAotKyAgW0NdLAkJCVtfTFRfTEFORyhDKV0sCi0rICBb QysrXSwJCVtfTFRfTEFORyhDWFgpXSwKLSsgIFtKYXZhXSwJCVtfTFRfTEFORyhHQ0opXSwKLSsg IFtGb3J0cmFuIDc3XSwJCVtfTFRfTEFORyhGNzcpXSwKLSsgIFtGb3J0cmFuXSwJCVtfTFRfTEFO RyhGQyldLAotKyAgW1dpbmRvd3MgUmVzb3VyY2VdLAlbX0xUX0xBTkcoUkMpXSwKLSsgIFttNF9p ZmRlZihbX0xUX0xBTkdfXSQxW19DT05GSUddLAotKyAgICBbX0xUX0xBTkcoJDEpXSwKLSsgICAg W200X2ZhdGFsKFskMDogdW5zdXBwb3J0ZWQgbGFuZ3VhZ2U6ICIkMSJdKV0pXSlkbmwKLStdKSMg TFRfTEFORwotKwotKwotKyMgX0xUX0xBTkcoTEFOR05BTUUpCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0KLSttNF9kZWZ1bihbX0xUX0xBTkddLAotK1ttNF9pZmRlZihbX0xUX0xBTkdfXSQxW19lbmFi bGVkXSwgW10sCi0rICBbTFRfU1VQUE9SVEVEX1RBRyhbJDFdKWRubAotKyAgbTRfYXBwZW5kKFtf TFRfVEFHU10sIFskMSBdKWRubAotKyAgbTRfZGVmaW5lKFtfTFRfTEFOR19dJDFbX2VuYWJsZWRd LCBbXSlkbmwKLSsgIF9MVF9MQU5HXyQxX0NPTkZJRygkMSldKWRubAotK10pIyBfTFRfTEFORwot KwotKwotKyMgX0xUX0xBTkdfREVGQVVMVF9DT05GSUcKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rbTRfZGVmdW4oW19MVF9MQU5HX0RFRkFVTFRfQ09ORklHXSwKLStbQUNfUFJPVklERV9J RkVMU0UoW0FDX1BST0dfQ1hYXSwKLSsgIFtMVF9MQU5HKENYWCldLAotKyAgW200X2RlZmluZShb QUNfUFJPR19DWFhdLCBkZWZuKFtBQ19QUk9HX0NYWF0pW0xUX0xBTkcoQ1hYKV0pXSkKLSsKLStB Q19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19GNzddLAotKyAgW0xUX0xBTkcoRjc3KV0sCi0rICBb bTRfZGVmaW5lKFtBQ19QUk9HX0Y3N10sIGRlZm4oW0FDX1BST0dfRjc3XSlbTFRfTEFORyhGNzcp XSldKQotKwotK0FDX1BST1ZJREVfSUZFTFNFKFtBQ19QUk9HX0ZDXSwKLSsgIFtMVF9MQU5HKEZD KV0sCi0rICBbbTRfZGVmaW5lKFtBQ19QUk9HX0ZDXSwgZGVmbihbQUNfUFJPR19GQ10pW0xUX0xB TkcoRkMpXSldKQotKwotK2RubCBUaGUgY2FsbCB0byBbQV1bTV9QUk9HX0dDSl0gaXMgcXVvdGVk IGxpa2UgdGhhdCB0byBzdG9wIGFjbG9jYWwKLStkbmwgcHVsbGluZyB0aGluZ3MgaW4gbmVlZGxl c3NseS4KLStBQ19QUk9WSURFX0lGRUxTRShbQUNfUFJPR19HQ0pdLAotKyAgW0xUX0xBTkcoR0NK KV0sCi0rICBbQUNfUFJPVklERV9JRkVMU0UoW0FdW01fUFJPR19HQ0pdLAotKyAgICBbTFRfTEFO RyhHQ0opXSwKLSsgICAgW0FDX1BST1ZJREVfSUZFTFNFKFtMVF9QUk9HX0dDSl0sCi0rICAgICAg W0xUX0xBTkcoR0NKKV0sCi0rICAgICAgW200X2lmZGVmKFtBQ19QUk9HX0dDSl0sCi0rCVttNF9k ZWZpbmUoW0FDX1BST0dfR0NKXSwgZGVmbihbQUNfUFJPR19HQ0pdKVtMVF9MQU5HKEdDSildKV0p Ci0rICAgICAgIG00X2lmZGVmKFtBXVtNX1BST0dfR0NKXSwKLSsJW200X2RlZmluZShbQV1bTV9Q Uk9HX0dDSl0sIGRlZm4oW0FdW01fUFJPR19HQ0pdKVtMVF9MQU5HKEdDSildKV0pCi0rICAgICAg IG00X2lmZGVmKFtMVF9QUk9HX0dDSl0sCi0rCVttNF9kZWZpbmUoW0xUX1BST0dfR0NKXSwgZGVm bihbTFRfUFJPR19HQ0pdKVtMVF9MQU5HKEdDSildKV0pXSldKV0pCi0rCi0rQUNfUFJPVklERV9J RkVMU0UoW0xUX1BST0dfUkNdLAotKyAgW0xUX0xBTkcoUkMpXSwKLSsgIFttNF9kZWZpbmUoW0xU X1BST0dfUkNdLCBkZWZuKFtMVF9QUk9HX1JDXSlbTFRfTEFORyhSQyldKV0pCi0rXSkjIF9MVF9M QU5HX0RFRkFVTFRfQ09ORklHCi0rCi0rIyBPYnNvbGV0ZSBtYWNyb3M6Ci0rQVVfREVGVU4oW0FD X0xJQlRPT0xfQ1hYXSwgW0xUX0xBTkcoQysrKV0pCi0rQVVfREVGVU4oW0FDX0xJQlRPT0xfRjc3 XSwgW0xUX0xBTkcoRm9ydHJhbiA3NyldKQotK0FVX0RFRlVOKFtBQ19MSUJUT09MX0ZDXSwgW0xU X0xBTkcoRm9ydHJhbildKQotK0FVX0RFRlVOKFtBQ19MSUJUT09MX0dDSl0sIFtMVF9MQU5HKEph dmEpXSkKLStBVV9ERUZVTihbQUNfTElCVE9PTF9SQ10sIFtMVF9MQU5HKFdpbmRvd3MgUmVzb3Vy Y2UpXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFD X0RFRlVOKFtBQ19MSUJUT09MX0NYWF0sIFtdKQotK2RubCBBQ19ERUZVTihbQUNfTElCVE9PTF9G NzddLCBbXSkKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRkNdLCBbXSkKLStkbmwgQUNfREVG VU4oW0FDX0xJQlRPT0xfR0NKXSwgW10pCi0rZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1JDXSwg W10pCi0rCi0rCi0rIyBfTFRfVEFHX0NPTVBJTEVSCi0rIyAtLS0tLS0tLS0tLS0tLS0tCi0rbTRf ZGVmdW4oW19MVF9UQUdfQ09NUElMRVJdLAotK1tBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwK LSsKLStfTFRfREVDTChbTFRDQ10sIFtDQ10sIFsxXSwgW0EgQyBjb21waWxlcl0pZG5sCi0rX0xU X0RFQ0woW0xUQ0ZMQUdTXSwgW0NGTEFHU10sIFsxXSwgW0xUQ0MgY29tcGlsZXIgZmxhZ3NdKWRu bAotK19MVF9UQUdERUNMKFtDQ10sIFtjb21waWxlcl0sIFsxXSwgW0EgbGFuZ3VhZ2Ugc3BlY2lm aWMgY29tcGlsZXJdKWRubAotK19MVF9UQUdERUNMKFt3aXRoX2djY10sIFtHQ0NdLCBbMF0sIFtJ cyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj9dKWRubAotKwotKyMgSWYgbm8gQyBjb21w aWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJ ZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xUQ0ZM QUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rXSkjIF9MVF9UQUdfQ09NUElM RVIKLSsKLSsKLSsjIF9MVF9DT01QSUxFUl9CT0lMRVJQTEFURQotKyMgLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgY29tcGlsZXIgYm9pbGVycGxhdGUgb3V0cHV0IG9yIHdh cm5pbmdzIHdpdGgKLSsjIHRoZSBzaW1wbGUgY29tcGlsZXIgdGVzdCBjb2RlLgotK200X2RlZnVu KFtfTFRfQ09NUElMRVJfQk9JTEVSUExBVEVdLAotK1ttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURd KWRubAotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAotK2VjaG8gIiRsdF9zaW1wbGVf Y29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0rZXZhbCAiJGFjX2NvbXBpbGUi IDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9kJyA+Y29uZnRlc3QuZXJyCi0r X2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRSTSBjb25mdGVz dCoKLStdKSMgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rCi0rCi0rIyBfTFRfTElOS0VSX0JP SUxFUlBMQVRFCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgbGlua2Vy IGJvaWxlcnBsYXRlIG91dHB1dCBvciB3YXJuaW5ncyB3aXRoCi0rIyB0aGUgc2ltcGxlIGxpbmsg dGVzdCBjb2RlLgotK200X2RlZnVuKFtfTFRfTElOS0VSX0JPSUxFUlBMQVRFXSwKLStbbTRfcmVx dWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLSthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQK LStlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2 YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNv bmZ0ZXN0LmVycgotK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCi0r JFJNIC1yIGNvbmZ0ZXN0KgotK10pIyBfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rCi0rIyBfTFRf UkVRVUlSRURfREFSV0lOX0NIRUNLUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK200 X2RlZnVuX29uY2UoW19MVF9SRVFVSVJFRF9EQVJXSU5fQ0hFQ0tTXSxbCi0rICBjYXNlICRob3N0 X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbiopCi0rICAgIEFDX0NIRUNLX1RPT0woW0RT WU1VVElMXSwgW2RzeW11dGlsXSwgWzpdKQotKyAgICBBQ19DSEVDS19UT09MKFtOTUVESVRdLCBb bm1lZGl0XSwgWzpdKQotKyAgICBBQ19DSEVDS19UT09MKFtMSVBPXSwgW2xpcG9dLCBbOl0pCi0r ICAgIEFDX0NIRUNLX1RPT0woW09UT09MXSwgW290b29sXSwgWzpdKQotKyAgICBBQ19DSEVDS19U T09MKFtPVE9PTDY0XSwgW290b29sNjRdLCBbOl0pCi0rICAgIF9MVF9ERUNMKFtdLCBbRFNZTVVU SUxdLCBbMV0sCi0rICAgICAgW1Rvb2wgdG8gbWFuaXB1bGF0ZSBhcmNoaXZlZCBEV0FSRiBkZWJ1 ZyBzeW1ib2wgZmlsZXMgb24gTWFjIE9TIFhdKQotKyAgICBfTFRfREVDTChbXSwgW05NRURJVF0s IFsxXSwKLSsgICAgICBbVG9vbCB0byBjaGFuZ2UgZ2xvYmFsIHRvIGxvY2FsIHN5bWJvbHMgb24g TWFjIE9TIFhdKQotKyAgICBfTFRfREVDTChbXSwgW0xJUE9dLCBbMV0sCi0rICAgICAgW1Rvb2wg dG8gbWFuaXB1bGF0ZSBmYXQgb2JqZWN0cyBhbmQgYXJjaGl2ZXMgb24gTWFjIE9TIFhdKQotKyAg ICBfTFRfREVDTChbXSwgW09UT09MXSwgWzFdLAotKyAgICAgIFtsZGQvcmVhZGVsZiBsaWtlIHRv b2wgZm9yIE1hY2gtTyBiaW5hcmllcyBvbiBNYWMgT1MgWF0pCi0rICAgIF9MVF9ERUNMKFtdLCBb T1RPT0w2NF0sIFsxXSwKLSsgICAgICBbbGRkL3JlYWRlbGYgbGlrZSB0b29sIGZvciA2NCBiaXQg TWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYIDEwLjRdKQotKwotKyAgICBBQ19DQUNIRV9DSEVD SyhbZm9yIC1zaW5nbGVfbW9kdWxlIGxpbmtlciBmbGFnXSxbbHRfY3ZfYXBwbGVfY2Nfc2luZ2xl X21vZF0sCi0rICAgICAgW2x0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9bm8KLSsgICAgICBpZiB0 ZXN0IC16ICIke0xUX01VTFRJX01PRFVMRX0iOyB0aGVuCi0rCSMgQnkgZGVmYXVsdCB3ZSB3aWxs IGFkZCB0aGUgLXNpbmdsZV9tb2R1bGUgZmxhZy4gWW91IGNhbiBvdmVycmlkZQotKwkjIGJ5IGVp dGhlciBzZXR0aW5nIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBMVF9NVUxUSV9NT0RVTEUKLSsJ IyBub24tZW1wdHkgYXQgY29uZmlndXJlIHRpbWUsIG9yIGJ5IGFkZGluZyAtbXVsdGlfbW9kdWxl IHRvIHRoZQotKwkjIGxpbmsgZmxhZ3MuCi0rCXJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioKLSsJ ZWNobyAiaW50IGZvbyh2b2lkKXtyZXR1cm4gMTt9IiA+IGNvbmZ0ZXN0LmMKLSsJZWNobyAiJExU Q0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGliIFwKLSstZHluYW1pY2xp YiAtV2wsLXNpbmdsZV9tb2R1bGUgY29uZnRlc3QuYyIgPiZBU19NRVNTQUdFX0xPR19GRAotKwkk TFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gbGliY29uZnRlc3QuZHlsaWIgXAotKwkgIC1keW5h bWljbGliIC1XbCwtc2luZ2xlX21vZHVsZSBjb25mdGVzdC5jIDI+Y29uZnRlc3QuZXJyCi0rICAg ICAgICBfbHRfcmVzdWx0PSQ/Ci0rCWlmIHRlc3QgLWYgbGliY29uZnRlc3QuZHlsaWIgJiYgdGVz dCAhIC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0ID0gMDsgdGhlbgotKwkgIGx0 X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9eWVzCi0rCWVsc2UKLSsJICBjYXQgY29uZnRlc3QuZXJy ID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsJZmkKLSsJcm0gLXJmIGxpYmNvbmZ0ZXN0LmR5bGliKgot KwlybSAtZiBjb25mdGVzdC4qCi0rICAgICAgZmldKQotKyAgICBBQ19DQUNIRV9DSEVDSyhbZm9y IC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlua2VyIGZsYWddLAotKyAgICAgIFtsdF9jdl9sZF9l eHBvcnRlZF9zeW1ib2xzX2xpc3RdLAotKyAgICAgIFtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xz X2xpc3Q9bm8KLSsgICAgICBzYXZlX0xERkxBR1M9JExERkxBR1MKLSsgICAgICBlY2hvICJfbWFp biIgPiBjb25mdGVzdC5zeW0KLSsgICAgICBMREZMQUdTPSIkTERGTEFHUyAtV2wsLWV4cG9ydGVk X3N5bWJvbHNfbGlzdCxjb25mdGVzdC5zeW0iCi0rICAgICAgQUNfTElOS19JRkVMU0UoW0FDX0xB TkdfUFJPR1JBTShbXSxbXSldLAotKwlbbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0PXll c10sCi0rCVtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Q9bm9dKQotKwlMREZMQUdTPSIk c2F2ZV9MREZMQUdTIgotKyAgICBdKQotKyAgICBBQ19DQUNIRV9DSEVDSyhbZm9yIC1mb3JjZV9s b2FkIGxpbmtlciBmbGFnXSxbbHRfY3ZfbGRfZm9yY2VfbG9hZF0sCi0rICAgICAgW2x0X2N2X2xk X2ZvcmNlX2xvYWQ9bm8KLSsgICAgICBjYXQgPiBjb25mdGVzdC5jIDw8IF9MVF9FT0YKLStpbnQg Zm9yY2VkX2xvYWRlZCgpIHsgcmV0dXJuIDI7fQotK19MVF9FT0YKLSsgICAgICBlY2hvICIkTFRD QyAkTFRDRkxBR1MgLWMgLW8gY29uZnRlc3QubyBjb25mdGVzdC5jIiA+JkFTX01FU1NBR0VfTE9H X0ZECi0rICAgICAgJExUQ0MgJExUQ0ZMQUdTIC1jIC1vIGNvbmZ0ZXN0Lm8gY29uZnRlc3QuYyAy PiZBU19NRVNTQUdFX0xPR19GRAotKyAgICAgIGVjaG8gIiRBUiBjcnUgbGliY29uZnRlc3QuYSBj b25mdGVzdC5vIiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgICAgJEFSIGNydSBsaWJjb25mdGVz dC5hIGNvbmZ0ZXN0Lm8gMj4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgICBlY2hvICIkUkFOTElC IGxpYmNvbmZ0ZXN0LmEiID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgICAkUkFOTElCIGxpYmNv bmZ0ZXN0LmEgMj4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgICBjYXQgPiBjb25mdGVzdC5jIDw8 IF9MVF9FT0YKLStpbnQgbWFpbigpIHsgcmV0dXJuIDA7fQotK19MVF9FT0YKLSsgICAgICBlY2hv ICIkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAtV2wsLWZv cmNlX2xvYWQsLi9saWJjb25mdGVzdC5hIiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAgICAgJExU Q0MgJExUQ0ZMQUdTICRMREZMQUdTIC1vIGNvbmZ0ZXN0IGNvbmZ0ZXN0LmMgLVdsLC1mb3JjZV9s b2FkLC4vbGliY29uZnRlc3QuYSAyPmNvbmZ0ZXN0LmVycgotKyAgICAgIF9sdF9yZXN1bHQ9JD8K LSsgICAgICBpZiB0ZXN0IC1mIGNvbmZ0ZXN0ICYmIHRlc3QgISAtcyBjb25mdGVzdC5lcnIgJiYg dGVzdCAkX2x0X3Jlc3VsdCA9IDAgJiYgJEdSRVAgZm9yY2VkX2xvYWQgY29uZnRlc3QgMj4mMSA+ L2Rldi9udWxsOyB0aGVuCi0rCWx0X2N2X2xkX2ZvcmNlX2xvYWQ9eWVzCi0rICAgICAgZWxzZQot KwljYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAgICBmaQotKyAgICAg ICAgcm0gLWYgY29uZnRlc3QuZXJyIGxpYmNvbmZ0ZXN0LmEgY29uZnRlc3QgY29uZnRlc3QuYwot KyAgICAgICAgcm0gLXJmIGNvbmZ0ZXN0LmRTWU0KLSsgICAgXSkKLSsgICAgY2FzZSAkaG9zdF9v cyBpbgotKyAgICByaGFwc29keSogfCBkYXJ3aW4xLltbMDEyXV0pCi0rICAgICAgX2x0X2Rhcl9h bGxvd191bmRlZmluZWQ9JyR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OwotKyAgICBk YXJ3aW4xLiopCi0rICAgICAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9JyR7d2x9LWZsYXRfbmFt ZXNwYWNlICR7d2x9LXVuZGVmaW5lZCAke3dsfXN1cHByZXNzJyA7OwotKyAgICBkYXJ3aW4qKSAj IGRhcndpbiA1Lnggb24KLSsgICAgICAjIGlmIHJ1bm5pbmcgb24gMTAuNSBvciBsYXRlciwgdGhl IGRlcGxveW1lbnQgdGFyZ2V0IGRlZmF1bHRzCi0rICAgICAgIyB0byB0aGUgT1MgdmVyc2lvbiwg aWYgb24geDg2LCBhbmQgMTAuNCwgdGhlIGRlcGxveW1lbnQKLSsgICAgICAjIHRhcmdldCBkZWZh dWx0cyB0byAxMC40LiBEb24ndCB5b3UgbG92ZSBpdD8KLSsgICAgICBjYXNlICR7TUFDT1NYX0RF UExPWU1FTlRfVEFSR0VULTEwLjB9LCRob3N0IGluCi0rCTEwLjAsKjg2Ki1kYXJ3aW44KnwxMC4w LCotZGFyd2luW1s5MV1dKikKLSsJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5k ZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7Ci0rCTEwLltbMDEyXV0qKQotKwkgIF9sdF9k YXJfYWxsb3dfdW5kZWZpbmVkPScke3dsfS1mbGF0X25hbWVzcGFjZSAke3dsfS11bmRlZmluZWQg JHt3bH1zdXBwcmVzcycgOzsKLSsJMTAuKikKLSsJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0n JHt3bH0tdW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7Ci0rICAgICAgZXNhYwotKyAg ICA7OwotKyAgZXNhYwotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIg PSAieWVzIjsgdGhlbgotKyAgICAgIF9sdF9kYXJfc2luZ2xlX21vZD0nJHNpbmdsZV9tb2R1bGUn Ci0rICAgIGZpCi0rICAgIGlmIHRlc3QgIiRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Qi ID0gInllcyI7IHRoZW4KLSsgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPScgJHt3bH0tZXhwb3J0 ZWRfc3ltYm9sc19saXN0LCRvdXRwdXRfb2JqZGlyLyR7bGlibmFtZX0tc3ltYm9scy5leHBzeW0n Ci0rICAgIGVsc2UKLSsgICAgICBfbHRfZGFyX2V4cG9ydF9zeW1zPSd+JE5NRURJVCAtcyAkb3V0 cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltICR7bGlifScKLSsgICAgZmkKLSsg ICAgaWYgdGVzdCAiJERTWU1VVElMIiAhPSAiOiIgJiYgdGVzdCAiJGx0X2N2X2xkX2ZvcmNlX2xv YWQiID0gIm5vIjsgdGhlbgotKyAgICAgIF9sdF9kc3ltdXRpbD0nfiREU1lNVVRJTCAkbGliIHx8 IDonCi0rICAgIGVsc2UKLSsgICAgICBfbHRfZHN5bXV0aWw9Ci0rICAgIGZpCi0rICAgIDs7Ci0r ICBlc2FjCi0rXSkKLSsKLSsKLSsjIF9MVF9EQVJXSU5fTElOS0VSX0ZFQVRVUkVTCi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2tzIGZvciBsaW5rZXIgYW5kIGNvbXBpbGVy IGZlYXR1cmVzIG9uIGRhcndpbgotK200X2RlZnVuKFtfTFRfREFSV0lOX0xJTktFUl9GRUFUVVJF U10sCi0rWwotKyAgbTRfcmVxdWlyZShbX0xUX1JFUVVJUkVEX0RBUldJTl9DSEVDS1NdKQotKyAg X0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhh cmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2F1dG9tYXRpYywg JDEpPXllcwotKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9dW5zdXBw b3J0ZWQKLSsgIGlmIHRlc3QgIiRsdF9jdl9sZF9mb3JjZV9sb2FkIiA9ICJ5ZXMiOyB0aGVuCi0r ICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nYGZvciBjb252IGlu ICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVu Y2U9XCIkbmV3X2NvbnZlbmllbmNlICR7d2x9LWZvcmNlX2xvYWQsJGNvbnZcIjsgZG9uZTsgZnVu Y19lY2hvX2FsbCBcIiRuZXdfY29udmVuaWVuY2VcImAnCi0rICBlbHNlCi0rICAgIF9MVF9UQUdW QVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nJwotKyAgZmkKLSsgIF9MVF9UQUdWQVIo bGlua19hbGxfZGVwbGlicywgJDEpPXllcwotKyAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCi0rICBjYXNlICRjY19iYXNlbmFt ZSBpbgotKyAgICAgaWZvcnQqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9eWVzIDs7Ci0rICAgICAqKSBf bHRfZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7OwotKyAgZXNhYwotKyAgaWYgdGVzdCAiJF9sdF9kYXJf Y2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgotKyAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD1m dW5jX2VjaG9fYWxsCi0rICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9IlwkQ0MgLWR5 bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBs aWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVy c3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCi0rICAgIF9MVF9UQUdW QVIobW9kdWxlX2NtZHMsICQxKT0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGli IC1idW5kbGUgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0 aWx9IgotKyAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0ic2VkICdzLF4s XywnIDwgXCRleHBvcnRfc3ltYm9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1i b2xzLmV4cHN5bX5cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRs aWIgXCRsaWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRy cGF0aC9cJHNvbmFtZSBcJHZlcnN0cmluZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJf ZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9IgotKyAgICBfTFRfVEFHVkFSKG1vZHVsZV9leHBz eW1fY21kcywgJDEpPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRvdXRw dXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgXCRhbGxvd191bmRlZmlu ZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBcJGRlcGxpYnMgXCRjb21waWxlcl9m bGFncyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCi0rICAgIG00X2lmKFsk MV0sIFtDWFhdLAotK1sgICBpZiB0ZXN0ICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgIT0g InllcyI7IHRoZW4KLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSJcJENDIC1y IC1rZWVwX3ByaXZhdGVfZXh0ZXJucyAtbm9zdGRsaWIgLW8gXCR7bGlifS1tYXN0ZXIubyBcJGxp Ym9ianN+XCRDQyAtZHluYW1pY2xpYiBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIFwk e2xpYn0tbWFzdGVyLm8gXCRkZXBsaWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBc JHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nJHtfbHRfZHN5bXV0aWx9IgotKyAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9z eW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0Mg LXIgLWtlZXBfcHJpdmF0ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwk bGlib2Jqc35cJENDIC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIg XCR7bGlifS1tYXN0ZXIubyBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1l IFwkcnBhdGgvXCRzb25hbWUgXCR2ZXJzdHJpbmcke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRf ZHN5bXV0aWx9IgotKyAgICBmaQotK10sW10pCi0rICBlbHNlCi0rICBfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCi0rICBmaQotK10pCi0rCi0rIyBfTFRfU1lTX01PRFVMRV9QQVRIX0FJWChb VEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBMaW5r cyBhIG1pbmltYWwgcHJvZ3JhbSBhbmQgY2hlY2tzIHRoZSBleGVjdXRhYmxlCi0rIyBmb3IgdGhl IHN5c3RlbSBkZWZhdWx0IGhhcmRjb2RlZCBsaWJyYXJ5IHBhdGguIEluIG1vc3QgY2FzZXMsCi0r IyB0aGlzIGlzIC91c3IvbGliOi9saWIsIGJ1dCB3aGVuIHRoZSBNUEkgY29tcGlsZXJzIGFyZSB1 c2VkCi0rIyB0aGUgbG9jYXRpb24gb2YgdGhlIGNvbW11bmljYXRpb24gYW5kIE1QSSBsaWJzIGFy ZSBpbmNsdWRlZCB0b28uCi0rIyBJZiB3ZSBkb24ndCBmaW5kIGFueXRoaW5nLCB1c2UgdGhlIGRl ZmF1bHQgbGlicmFyeSBwYXRoIGFjY29yZGluZwotKyMgdG8gdGhlIGFpeCBsZCBtYW51YWwuCi0r IyBTdG9yZSB0aGUgcmVzdWx0cyBmcm9tIHRoZSBkaWZmZXJlbnQgY29tcGlsZXJzIGZvciBlYWNo IFRBR05BTUUuCi0rIyBBbGxvdyB0byBvdmVycmlkZSB0aGVtIGZvciBhbGwgdGFncyB0aHJvdWdo IGx0X2N2X2FpeF9saWJwYXRoLgotK200X2RlZnVuKFtfTFRfU1lTX01PRFVMRV9QQVRIX0FJWF0s Ci0rW200X3JlcXVpcmUoW19MVF9ERUNMX1NFRF0pZG5sCi0raWYgdGVzdCAiJHtsdF9jdl9haXhf bGlicGF0aCtzZXR9IiA9IHNldDsgdGhlbgotKyAgYWl4X2xpYnBhdGg9JGx0X2N2X2FpeF9saWJw YXRoCi0rZWxzZQotKyAgQUNfQ0FDSEVfVkFMKFtfTFRfVEFHVkFSKFtsdF9jdl9haXhfbGlicGF0 aF9dLCBbJDFdKV0sCi0rICBbQUNfTElOS19JRkVMU0UoW0FDX0xBTkdfUFJPR1JBTV0sWwotKyAg bHRfYWl4X2xpYnBhdGhfc2VkPSdbCi0rICAgICAgL0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8g ewotKwkgIC9eMC8gewotKwkgICAgICBzL14wICAqXChbXiBdKlwpICokL1wxLwotKwkgICAgICBw Ci0rCSAgfQotKyAgICAgIH1dJwotKyAgX0xUX1RBR1ZBUihbbHRfY3ZfYWl4X2xpYnBhdGhfXSwg WyQxXSk9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAt ZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rICAjIENoZWNrIGZvciBhIDY0LWJpdCBvYmplY3Qg aWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCi0rICBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihb bHRfY3ZfYWl4X2xpYnBhdGhfXSwgWyQxXSkiOyB0aGVuCi0rICAgIF9MVF9UQUdWQVIoW2x0X2N2 X2FpeF9saWJwYXRoX10sIFskMV0pPWBkdW1wIC1IWDY0IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9k ZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotKyAgZmldLFtdKQot KyAgaWYgdGVzdCAteiAiJF9MVF9UQUdWQVIoW2x0X2N2X2FpeF9saWJwYXRoX10sIFskMV0pIjsg dGhlbgotKyAgICBfTFRfVEFHVkFSKFtsdF9jdl9haXhfbGlicGF0aF9dLCBbJDFdKT0iL3Vzci9s aWI6L2xpYiIKLSsgIGZpCi0rICBdKQotKyAgYWl4X2xpYnBhdGg9JF9MVF9UQUdWQVIoW2x0X2N2 X2FpeF9saWJwYXRoX10sIFskMV0pCi0rZmkKLStdKSMgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgK LSsKLSsKLSsjIF9MVF9TSEVMTF9JTklUKEFSRykKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0KLStt NF9kZWZpbmUoW19MVF9TSEVMTF9JTklUXSwKLStbbTRfZGl2ZXJ0X3RleHQoW000U0gtSU5JVF0s IFskMQotK10pXSkjIF9MVF9TSEVMTF9JTklUCi0rCi0rCi0rCi0rIyBfTFRfUFJPR19FQ0hPX0JB Q0tTTEFTSAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEZpbmQgaG93IHdlIGNhbiBm YWtlIGFuIGVjaG8gY29tbWFuZCB0aGF0IGRvZXMgbm90IGludGVycHJldCBiYWNrc2xhc2guCi0r IyBJbiBwYXJ0aWN1bGFyLCB3aXRoIEF1dG9jb25mIDIuNjAgb3IgbGF0ZXIgd2UgYWRkIHNvbWUg Y29kZSB0byB0aGUgc3RhcnQKLSsjIG9mIHRoZSBnZW5lcmF0ZWQgY29uZmlndXJlIHNjcmlwdCB3 aGljaCB3aWxsIGZpbmQgYSBzaGVsbCB3aXRoIGEgYnVpbHRpbgotKyMgcHJpbnRmICh3aGljaCB3 ZSBjYW4gdXNlIGFzIGFuIGVjaG8gY29tbWFuZCkuCi0rbTRfZGVmdW4oW19MVF9QUk9HX0VDSE9f QkFDS1NMQVNIXSwKLStbRUNITz0nXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXCcKLStFQ0hPPSRFQ0hPJEVDSE8kRUNITyRFQ0hPJEVDSE8KLStFQ0hPPSRFQ0hP JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITwotKwotK0FDX01TR19DSEVDS0lORyhbaG93IHRvIHBy aW50IHN0cmluZ3NdKQotKyMgVGVzdCBwcmludCBmaXJzdCwgYmVjYXVzZSBpdCB3aWxsIGJlIGEg YnVpbHRpbiBpZiBwcmVzZW50LgotK2lmIHRlc3QgIlhgKCBwcmludCAtciAtLSAtbiApIDI+L2Rl di9udWxsYCIgPSBYLW4gJiYgXAotKyAgIHRlc3QgIlhgcHJpbnQgLXIgLS0gJEVDSE8gMj4vZGV2 L251bGxgIiA9ICJYJEVDSE8iOyB0aGVuCi0rICBFQ0hPPSdwcmludCAtciAtLScKLStlbGlmIHRl c3QgIlhgcHJpbnRmICVzICRFQ0hPIDI+L2Rldi9udWxsYCIgPSAiWCRFQ0hPIjsgdGhlbgotKyAg RUNITz0ncHJpbnRmICVzXG4nCi0rZWxzZQotKyAgIyBVc2UgdGhpcyBmdW5jdGlvbiBhcyBhIGZh bGxiYWNrIHRoYXQgYWx3YXlzIHdvcmtzLgotKyAgZnVuY19mYWxsYmFja19lY2hvICgpCi0rICB7 Ci0rICAgIGV2YWwgJ2NhdCA8PF9MVEVDSE9fRU9GCi0rJFtdMQotK19MVEVDSE9fRU9GJwotKyAg fQotKyAgRUNITz0nZnVuY19mYWxsYmFja19lY2hvJwotK2ZpCi0rCi0rIyBmdW5jX2VjaG9fYWxs IGFyZy4uLgotKyMgSW52b2tlICRFQ0hPIHdpdGggYWxsIGFyZ3MsIHNwYWNlLXNlcGFyYXRlZC4K LStmdW5jX2VjaG9fYWxsICgpCi0rewotKyAgICAkRUNITyAiJCoiIAotK30KLSsKLStjYXNlICIk RUNITyIgaW4KLSsgIHByaW50ZiopIEFDX01TR19SRVNVTFQoW3ByaW50Zl0pIDs7Ci0rICBwcmlu dCopIEFDX01TR19SRVNVTFQoW3ByaW50IC1yXSkgOzsKLSsgICopIEFDX01TR19SRVNVTFQoW2Nh dF0pIDs7Ci0rZXNhYwotKwotK200X2lmZGVmKFtfQVNfREVURUNUX1NVR0dFU1RFRF0sCi0rW19B U19ERVRFQ1RfU1VHR0VTVEVEKFsKLSsgIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSR7QkFT SF9WRVJTSU9OK3NldH0iIHx8ICgKLSsgICAgRUNITz0nXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXCcKLSsgICAgRUNITz0kRUNITyRFQ0hPJEVDSE8kRUNITyRF Q0hPCi0rICAgIEVDSE89JEVDSE8kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPCi0rICAgIFBBVEg9 L2VtcHR5IEZQQVRIPS9lbXB0eTsgZXhwb3J0IFBBVEggRlBBVEgKLSsgICAgdGVzdCAiWGBwcmlu dGYgJXMgJEVDSE9gIiA9ICJYJEVDSE8iIFwKLSsgICAgICB8fCB0ZXN0ICJYYHByaW50IC1yIC0t ICRFQ0hPYCIgPSAiWCRFQ0hPIiApXSldKQotKwotK19MVF9ERUNMKFtdLCBbU0hFTExdLCBbMV0s IFtTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRzXSkKLStfTFRfREVDTChb XSwgW0VDSE9dLCBbMV0sIFtBbiBlY2hvIHByb2dyYW0gdGhhdCBwcm90ZWN0cyBiYWNrc2xhc2hl c10pCi0rXSkjIF9MVF9QUk9HX0VDSE9fQkFDS1NMQVNICi0rCi0rCi0rIyBfTFRfV0lUSF9TWVNS T09UCi0rIyAtLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW19MVF9XSVRIX1NZU1JPT1RdLAot K1tBQ19NU0dfQ0hFQ0tJTkcoW2ZvciBzeXNyb290XSkKLStBQ19BUkdfV0lUSChbc3lzcm9vdF0s Ci0rWyAgLS13aXRoLXN5c3Jvb3RbPURJUl0gU2VhcmNoIGZvciBkZXBlbmRlbnQgbGlicmFyaWVz IHdpdGhpbiBESVIKLSsgICAgICAgICAgICAgICAgICAgICAgICAob3IgdGhlIGNvbXBpbGVyJ3Mg c3lzcm9vdCBpZiBub3Qgc3BlY2lmaWVkKS5dLAotK1tdLCBbd2l0aF9zeXNyb290PW5vXSkKLSsK LStkbmwgbHRfc3lzcm9vdCB3aWxsIGFsd2F5cyBiZSBwYXNzZWQgdW5xdW90ZWQuICBXZSBxdW90 ZSBpdCBoZXJlCi0rZG5sIGluIGNhc2UgdGhlIHVzZXIgcGFzc2VkIGEgZGlyZWN0b3J5IG5hbWUu Ci0rbHRfc3lzcm9vdD0KLStjYXNlICR7d2l0aF9zeXNyb290fSBpbiAjKAotKyB5ZXMpCi0rICAg aWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgICAgIGx0X3N5c3Jvb3Q9YCRDQyAtLXByaW50 LXN5c3Jvb3QgMj4vZGV2L251bGxgCi0rICAgZmkKLSsgICA7OyAjKAotKyAvKikKLSsgICBsdF9z eXNyb290PWBlY2hvICIkd2l0aF9zeXNyb290IiB8IHNlZCAtZSAiJHNlZF9xdW90ZV9zdWJzdCJg Ci0rICAgOzsgIygKLSsgbm98JycpCi0rICAgOzsgIygKLSsgKikKLSsgICBBQ19NU0dfUkVTVUxU KFske3dpdGhfc3lzcm9vdH1dKQotKyAgIEFDX01TR19FUlJPUihbVGhlIHN5c3Jvb3QgbXVzdCBi ZSBhbiBhYnNvbHV0ZSBwYXRoLl0pCi0rICAgOzsKLStlc2FjCi0rCi0rIEFDX01TR19SRVNVTFQo WyR7bHRfc3lzcm9vdDotbm99XSkKLStfTFRfREVDTChbXSwgW2x0X3N5c3Jvb3RdLCBbMF0sIFtU aGUgcm9vdCB3aGVyZSB0byBzZWFyY2ggZm9yIF1kbmwKLStbZGVwZW5kZW50IGxpYnJhcmllcywg YW5kIGluIHdoaWNoIG91ciBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxlZC5dKV0pCi0rCi0r IyBfTFRfRU5BQkxFX0xPQ0sKLSsjIC0tLS0tLS0tLS0tLS0tLQotK200X2RlZnVuKFtfTFRfRU5B QkxFX0xPQ0tdLAotK1tBQ19BUkdfRU5BQkxFKFtsaWJ0b29sLWxvY2tdLAotKyAgW0FTX0hFTFBf U1RSSU5HKFstLWRpc2FibGUtbGlidG9vbC1sb2NrXSwKLSsgICAgW2F2b2lkIGxvY2tpbmcgKG1p Z2h0IGJyZWFrIHBhcmFsbGVsIGJ1aWxkcyldKV0pCi0rdGVzdCAieCRlbmFibGVfbGlidG9vbF9s b2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15ZXMKLSsKLSsjIFNvbWUgZmxhZ3Mg bmVlZCB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSBjb21waWxlciBvciBsaW5rZXIgZm9yIGdvb2QK LSsjIGxpYnRvb2wgc3VwcG9ydC4KLStjYXNlICRob3N0IGluCi0raWE2NC0qLWhwdXgqKQotKyAg IyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotKyAgZWNobyAnaW50IGk7JyA+IGNv bmZ0ZXN0LiRhY19leHQKLSsgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVuCi0rICAg IGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KLSsgICAgICAqRUxG LTMyKikKLSsJSFBVWF9JQTY0X01PREU9IjMyIgotKwk7OwotKyAgICAgICpFTEYtNjQqKQotKwlI UFVYX0lBNjRfTU9ERT0iNjQiCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYgY29u ZnRlc3QqCi0rICA7OwotKyotKi1pcml4NiopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBh cmUgdXNpbmcuCi0rICBlY2hvICdbI11saW5lICckTElORU5PJyAiY29uZmlndXJlIicgPiBjb25m dGVzdC4kYWNfZXh0Ci0rICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgotKyAgICBp ZiB0ZXN0ICIkbHRfY3ZfcHJvZ19nbnVfbGQiID0geWVzOyB0aGVuCi0rICAgICAgY2FzZSBgL3Vz ci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKwkqMzItYml0KikKLSsJICBMRD0i JHtMRC1sZH0gLW1lbGYzMmJzbWlwIgotKwkgIDs7Ci0rCSpOMzIqKQotKwkgIExEPSIke0xELWxk fSAtbWVsZjMyYm1pcG4zMiIKLSsJICA7OwotKwkqNjQtYml0KikKLSsJICBMRD0iJHtMRC1sZH0g LW1lbGY2NGJtaXAiCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBlbHNlCi0rICAgICAgY2FzZSBg L3Vzci9iaW4vZmlsZSBjb25mdGVzdC4kYWNfb2JqZXh0YCBpbgotKwkqMzItYml0KikKLSsJICBM RD0iJHtMRC1sZH0gLTMyIgotKwkgIDs7Ci0rCSpOMzIqKQotKwkgIExEPSIke0xELWxkfSAtbjMy IgotKwkgIDs7Ci0rCSo2NC1iaXQqKQotKwkgIExEPSIke0xELWxkfSAtNjQiCi0rCSAgOzsKLSsg ICAgICBlc2FjCi0rICAgIGZpCi0rICBmaQotKyAgcm0gLXJmIGNvbmZ0ZXN0KgotKyAgOzsKLSsK LSt4ODZfNjQtKmtmcmVlYnNkKi1nbnV8eDg2XzY0LSpsaW51eCp8cHBjKi0qbGludXgqfHBvd2Vy cGMqLSpsaW51eCp8IFwKLStzMzkwKi0qbGludXgqfHMzOTAqLSp0cGYqfHNwYXJjKi0qbGludXgq KQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgotKyAgZWNobyAnaW50IGk7 JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpOyB0aGVu Ci0rICAgIGNhc2UgYC91c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KLSsgICAgICAqMzItYml0 KikKLSsJY2FzZSAkaG9zdCBpbgotKwkgIHg4Nl82NC0qa2ZyZWVic2QqLWdudSkKLSsJICAgIExE PSIke0xELWxkfSAtbSBlbGZfaTM4Nl9mYnNkIgotKwkgICAgOzsKLSsJICB4ODZfNjQtKmxpbnV4 KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfaTM4NiIKLSsJICAgIDs7Ci0rCSAgcHBjNjQt KmxpbnV4Knxwb3dlcnBjNjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGYzMnBw Y2xpbnV4IgotKwkgICAgOzsKLSsJICBzMzkweC0qbGludXgqKQotKwkgICAgTEQ9IiR7TEQtbGR9 IC1tIGVsZl9zMzkwIgotKwkgICAgOzsKLSsJICBzcGFyYzY0LSpsaW51eCopCi0rCSAgICBMRD0i JHtMRC1sZH0gLW0gZWxmMzJfc3BhcmMiCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAg KjY0LWJpdCopCi0rCWNhc2UgJGhvc3QgaW4KLSsJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCi0r CSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NF9mYnNkIgotKwkgICAgOzsKLSsJICB4ODZf NjQtKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGZfeDg2XzY0IgotKwkgICAgOzsK LSsJICBwcGMqLSpsaW51eCp8cG93ZXJwYyotKmxpbnV4KikKLSsJICAgIExEPSIke0xELWxkfSAt bSBlbGY2NHBwYyIKLSsJICAgIDs7Ci0rCSAgczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKikKLSsJ ICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zMzkwIgotKwkgICAgOzsKLSsJICBzcGFyYyotKmxp bnV4KikKLSsJICAgIExEPSIke0xELWxkfSAtbSBlbGY2NF9zcGFyYyIKLSsJICAgIDs7Ci0rCWVz YWMKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7Ci0r Ci0rKi0qLXNjbzMuMnY1KikKLSsgICMgT24gU0NPIE9wZW5TZXJ2ZXIgNSwgd2UgbmVlZCAtYmVs ZiB0byBnZXQgZnVsbC1mZWF0dXJlZCBiaW5hcmllcy4KLSsgIFNBVkVfQ0ZMQUdTPSIkQ0ZMQUdT IgotKyAgQ0ZMQUdTPSIkQ0ZMQUdTIC1iZWxmIgotKyAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIg dGhlIEMgY29tcGlsZXIgbmVlZHMgLWJlbGZdLCBsdF9jdl9jY19uZWVkc19iZWxmLAotKyAgICBb QUNfTEFOR19QVVNIKEMpCi0rICAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtb XV0sW1tdXSldLFtsdF9jdl9jY19uZWVkc19iZWxmPXllc10sW2x0X2N2X2NjX25lZWRzX2JlbGY9 bm9dKQotKyAgICAgQUNfTEFOR19QT1BdKQotKyAgaWYgdGVzdCB4IiRsdF9jdl9jY19uZWVkc19i ZWxmIiAhPSB4InllcyI7IHRoZW4KLSsgICAgIyB0aGlzIGlzIHByb2JhYmx5IGdjYyAyLjguMCwg ZWdjcyAxLjAgb3IgbmV3ZXI7IG5vIG5lZWQgZm9yIC1iZWxmCi0rICAgIENGTEFHUz0iJFNBVkVf Q0ZMQUdTIgotKyAgZmkKLSsgIDs7Ci0rc3BhcmMqLSpzb2xhcmlzKikKLSsgICMgRmluZCBvdXQg d2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KLSsgIGVjaG8gJ2ludCBpOycgPiBjb25mdGVzdC4kYWNf ZXh0Ci0rICBpZiBBQ19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgotKyAgICBjYXNlIGAvdXNy L2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCi0rICAgICo2NC1iaXQqKQotKyAgICAgIGNhc2UgJGx0 X2N2X3Byb2dfZ251X2xkIGluCi0rICAgICAgeWVzKikgTEQ9IiR7TEQtbGR9IC1tIGVsZjY0X3Nw YXJjIiA7OwotKyAgICAgICopCi0rCWlmICR7TEQtbGR9IC02NCAtciAtbyBjb25mdGVzdDIubyBj b25mdGVzdC5vID4vZGV2L251bGwgMj4mMTsgdGhlbgotKwkgIExEPSIke0xELWxkfSAtNjQiCi0r CWZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBy bSAtcmYgY29uZnRlc3QqCi0rICA7OwotK2VzYWMKLSsKLStuZWVkX2xvY2tzPSIkZW5hYmxlX2xp YnRvb2xfbG9jayIKLStdKSMgX0xUX0VOQUJMRV9MT0NLCi0rCi0rCi0rIyBfTFRfUFJPR19BUgot KyMgLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX1BST0dfQVJdLAotK1tBQ19DSEVDS19UT09M UyhBUiwgW2FyXSwgZmFsc2UpCi0rOiAke0FSPWFyfQotKzogJHtBUl9GTEFHUz1jcnV9Ci0rX0xU X0RFQ0woW10sIFtBUl0sIFsxXSwgW1RoZSBhcmNoaXZlcl0pCi0rX0xUX0RFQ0woW10sIFtBUl9G TEFHU10sIFsxXSwgW0ZsYWdzIHRvIGNyZWF0ZSBhbiBhcmNoaXZlXSkKLSsKLStBQ19DQUNIRV9D SEVDSyhbZm9yIGFyY2hpdmVyIEBGSUxFIHN1cHBvcnRdLCBbbHRfY3ZfYXJfYXRfZmlsZV0sCi0r ICBbbHRfY3ZfYXJfYXRfZmlsZT1ubwotKyAgIEFDX0NPTVBJTEVfSUZFTFNFKFtBQ19MQU5HX1BS T0dSQU1dLAotKyAgICAgW2VjaG8gY29uZnRlc3QuJGFjX29iamV4dCA+IGNvbmZ0ZXN0LmxzdAot KyAgICAgIGx0X2FyX3RyeT0nJEFSICRBUl9GTEFHUyBsaWJjb25mdGVzdC5hIEBjb25mdGVzdC5s c3QgPiZBU19NRVNTQUdFX0xPR19GRCcKLSsgICAgICBBQ19UUllfRVZBTChbbHRfYXJfdHJ5XSkK LSsgICAgICBpZiB0ZXN0ICIkYWNfc3RhdHVzIiAtZXEgMDsgdGhlbgotKwkjIEVuc3VyZSB0aGUg YXJjaGl2ZXIgZmFpbHMgdXBvbiBib2d1cyBmaWxlIG5hbWVzLgotKwlybSAtZiBjb25mdGVzdC4k YWNfb2JqZXh0IGxpYmNvbmZ0ZXN0LmEKLSsJQUNfVFJZX0VWQUwoW2x0X2FyX3RyeV0pCi0rCWlm IHRlc3QgIiRhY19zdGF0dXMiIC1uZSAwOyB0aGVuCi0rICAgICAgICAgIGx0X2N2X2FyX2F0X2Zp bGU9QAotKyAgICAgICAgZmkKLSsgICAgICBmaQotKyAgICAgIHJtIC1mIGNvbmZ0ZXN0LiogbGli Y29uZnRlc3QuYQotKyAgICAgXSkKLSsgIF0pCi0rCi0raWYgdGVzdCAieCRsdF9jdl9hcl9hdF9m aWxlIiA9IHhubzsgdGhlbgotKyAgYXJjaGl2ZXJfbGlzdF9zcGVjPQotK2Vsc2UKLSsgIGFyY2hp dmVyX2xpc3Rfc3BlYz0kbHRfY3ZfYXJfYXRfZmlsZQotK2ZpCi0rX0xUX0RFQ0woW10sIFthcmNo aXZlcl9saXN0X3NwZWNdLCBbMV0sCi0rICBbSG93IHRvIGZlZWQgYSBmaWxlIGxpc3RpbmcgdG8g dGhlIGFyY2hpdmVyXSkKLStdKSMgX0xUX1BST0dfQVIKLSsKLSsKLSsjIF9MVF9DTURfT0xEX0FS Q0hJVkUKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NNRF9PTERfQVJD SElWRV0sCi0rW19MVF9QUk9HX0FSCi0rCi0rQUNfQ0hFQ0tfVE9PTChTVFJJUCwgc3RyaXAsIDop Ci0rdGVzdCAteiAiJFNUUklQIiAmJiBTVFJJUD06Ci0rX0xUX0RFQ0woW10sIFtTVFJJUF0sIFsx XSwgW0Egc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtXSkKLSsKLStBQ19DSEVDS19UT09MKFJBTkxJ QiwgcmFubGliLCA6KQotK3Rlc3QgLXogIiRSQU5MSUIiICYmIFJBTkxJQj06Ci0rX0xUX0RFQ0wo W10sIFtSQU5MSUJdLCBbMV0sCi0rICAgIFtDb21tYW5kcyB1c2VkIHRvIGluc3RhbGwgYW4gb2xk LXN0eWxlIGFyY2hpdmVdKQotKwotKyMgRGV0ZXJtaW5lIGNvbW1hbmRzIHRvIGNyZWF0ZSBvbGQt c3R5bGUgc3RhdGljIGFyY2hpdmVzLgotK29sZF9hcmNoaXZlX2NtZHM9JyRBUiAkQVJfRkxBR1Mg JG9sZGxpYiRvbGRvYmpzJwotK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdjaG1vZCA2NDQgJG9sZGxp YicKLStvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPQotKwotK2lmIHRlc3QgLW4gIiRSQU5MSUIiOyB0 aGVuCi0rICBjYXNlICRob3N0X29zIGluCi0rICBvcGVuYnNkKikKLSsgICAgb2xkX3Bvc3RpbnN0 YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiAtdCBcJG9sZGxpYiIKLSsg ICAgOzsKLSsgICopCi0rICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xkX3Bvc3RpbnN0YWxs X2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCi0rICAgIDs7Ci0rICBlc2FjCi0rICBvbGRfYXJjaGl2 ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIKLStmaQotKwotK2Nh c2UgJGhvc3Rfb3MgaW4KLSsgIGRhcndpbiopCi0rICAgIGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFj dGlvbj15ZXMgOzsKLSsgICopCi0rICAgIGxvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj1ubyA7 OwotK2VzYWMKLStfTFRfREVDTChbXSwgW29sZF9wb3N0aW5zdGFsbF9jbWRzXSwgWzJdKQotK19M VF9ERUNMKFtdLCBbb2xkX3Bvc3R1bmluc3RhbGxfY21kc10sIFsyXSkKLStfTFRfVEFHREVDTChb XSwgW29sZF9hcmNoaXZlX2NtZHNdLCBbMl0sCi0rICAgIFtDb21tYW5kcyB1c2VkIHRvIGJ1aWxk IGFuIG9sZC1zdHlsZSBhcmNoaXZlXSkKLStfTFRfREVDTChbXSwgW2xvY2tfb2xkX2FyY2hpdmVf ZXh0cmFjdGlvbl0sIFswXSwKLSsgICAgW1doZXRoZXIgdG8gdXNlIGEgbG9jayBmb3Igb2xkIGFy Y2hpdmUgZXh0cmFjdGlvbl0pCi0rXSkjIF9MVF9DTURfT0xEX0FSQ0hJVkUKLSsKLSsKLSsjIF9M VF9DT01QSUxFUl9PUFRJT04oTUVTU0FHRSwgVkFSSUFCTEUtTkFNRSwgRkxBR1MsCi0rIwkJW09V VFBVVC1GSUxFXSwgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsjIENoZWNrIHdoZXRoZXIgdGhlIGdpdmVuIGNvbXBpbGVyIG9wdGlvbiB3b3JrcwotK0FD X0RFRlVOKFtfTFRfQ09NUElMRVJfT1BUSU9OXSwKLStbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElM U19ERUZBVUxUU10pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLStBQ19DQUNI RV9DSEVDSyhbJDFdLCBbJDJdLAotKyAgWyQyPW5vCi0rICAgbTRfaWYoWyQ0XSwgLCBbYWNfb3V0 ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0XSwgW2FjX291dGZpbGU9JDRdKQotKyAgIGVjaG8gIiRs dF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2Nv bXBpbGVyX2ZsYWc9IiQzIgotKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRl ciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBj b250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhh dCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVn aW5zCi0rICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hv IHNob3VsZCB3b3JrIGNvcnJlY3RseS4KLSsgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2 aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgotKyAgIGx0X2NvbXBpbGU9YGVj aG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRs dF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW1teIF1dKmNvbmZ0ZXN0XC46ICRs dF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzon YAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkbHRfY29tcGlsZVwiIiA+JkFT X01FU1NBR0VfTE9HX0ZEKQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIp Ci0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NBR0VfTE9H X0ZECi0rICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mQVNfTUVT U0FHRV9MT0dfRkQKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNfb3V0 ZmlsZSI7IHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9y ZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVy ZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgotKyAgICAgJEVDSE8g IiRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFNFRCAnL14kL2QnID5jb25mdGVzdC5leHAK LSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVyMgot KyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBjb25m dGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAkMj15ZXMKLSsgICAgIGZpCi0rICAg ZmkKLSsgICAkUk0gY29uZnRlc3QqCi0rXSkKLSsKLStpZiB0ZXN0IHgiWyRdJDIiID0geHllczsg dGhlbgotKyAgICBtNF9pZihbJDVdLCAsIDosIFskNV0pCi0rZWxzZQotKyAgICBtNF9pZihbJDZd LCAsIDosIFskNl0pCi0rZmkKLStdKSMgX0xUX0NPTVBJTEVSX09QVElPTgotKwotKyMgT2xkIG5h bWU6Ci0rQVVfQUxJQVMoW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwgW19MVF9DT01QSUxF Ul9PUFRJT05dKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStk bmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfQ09NUElMRVJfT1BUSU9OXSwgW10pCi0rCi0rCi0rIyBf TFRfTElOS0VSX09QVElPTihNRVNTQUdFLCBWQVJJQUJMRS1OQU1FLCBGTEFHUywKLSsjICAgICAg ICAgICAgICAgICAgW0FDVElPTi1TVUNDRVNTXSwgW0FDVElPTi1GQUlMVVJFXSkKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNr IHdoZXRoZXIgdGhlIGdpdmVuIGxpbmtlciBvcHRpb24gd29ya3MKLStBQ19ERUZVTihbX0xUX0xJ TktFUl9PUFRJT05dLAotK1ttNF9yZXF1aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwK LSttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK0FDX0NBQ0hFX0NIRUNLKFskMV0sIFsk Ml0sCi0rICBbJDI9bm8KLSsgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgIExERkxBR1M9 IiRMREZMQUdTICQzIgotKyAgIGVjaG8gIiRsdF9zaW1wbGVfbGlua190ZXN0X2NvZGUiID4gY29u ZnRlc3QuJGFjX2V4dAotKyAgIGlmIChldmFsICRhY19saW5rIDI+Y29uZnRlc3QuZXJyKSAmJiB0 ZXN0IC1zIGNvbmZ0ZXN0JGFjX2V4ZWV4dDsgdGhlbgotKyAgICAgIyBUaGUgbGlua2VyIGNhbiBv bmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAj IFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgIGlmIHRlc3QgLXMgY29uZnRl c3QuZXJyOyB0aGVuCi0rICAgICAgICMgQXBwZW5kIGFueSBlcnJvcnMgdG8gdGhlIGNvbmZpZy5s b2cuCi0rICAgICAgIGNhdCBjb25mdGVzdC5lcnIgMT4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgICAg ICAgJEVDSE8gIiRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IGNvbmZ0 ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25m dGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2 L251bGw7IHRoZW4KLSsgICAgICAgICAkMj15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UKLSsg ICAgICAgJDI9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgJFJNIC1yIGNvbmZ0ZXN0KgotKyAg IExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rXSkKLSsKLStpZiB0ZXN0IHgiWyRdJDIiID0geHll czsgdGhlbgotKyAgICBtNF9pZihbJDRdLCAsIDosIFskNF0pCi0rZWxzZQotKyAgICBtNF9pZihb JDVdLCAsIDosIFskNV0pCi0rZmkKLStdKSMgX0xUX0xJTktFUl9PUFRJT04KLSsKLSsjIE9sZCBu YW1lOgotK0FVX0FMSUFTKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05dLCBbX0xUX0xJTktFUl9P UFRJT05dKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwg QUNfREVGVU4oW0FDX0xJQlRPT0xfTElOS0VSX09QVElPTl0sIFtdKQotKwotKwotKyMgTFRfQ01E X01BWF9MRU4KLSsjLS0tLS0tLS0tLS0tLS0tCi0rQUNfREVGVU4oW0xUX0NNRF9NQVhfTEVOXSwK LStbQUNfUkVRVUlSRShbQUNfQ0FOT05JQ0FMX0hPU1RdKWRubAotKyMgZmluZCB0aGUgbWF4aW11 bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwotK0FDX01TR19DSEVDS0lORyhbdGhl IG1heGltdW0gbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHNdKQotK0FDX0NBQ0hFX1ZB TChbbHRfY3Zfc3lzX21heF9jbWRfbGVuXSwgW2RubAotKyAgaT0wCi0rICB0ZXN0c3RyaW5nPSJB QkNEIgotKwotKyAgY2FzZSAkYnVpbGRfb3MgaW4KLSsgIG1zZG9zZGpncHAqKQotKyAgICAjIE9u IERKR1BQLCB0aGlzIHRlc3QgY2FuIGJsb3cgdXAgcHJldHR5IGJhZGx5IGR1ZSB0byBwcm9ibGVt cyBpbiBsaWJjCi0rICAgICMgKGFueSBzaW5nbGUgYXJndW1lbnQgZXhjZWVkaW5nIDIwMDAgYnl0 ZXMgY2F1c2VzIGEgYnVmZmVyIG92ZXJydW4KLSsgICAgIyBkdXJpbmcgZ2xvYiBleHBhbnNpb24p LiAgRXZlbiBpZiBpdCB3ZXJlIGZpeGVkLCB0aGUgcmVzdWx0IG9mIHRoaXMKLSsgICAgIyBjaGVj ayB3b3VsZCBiZSBsYXJnZXIgdGhhbiBpdCBzaG91bGQgYmUuCi0rICAgIGx0X2N2X3N5c19tYXhf Y21kX2xlbj0xMjI4ODsgICAgIyAxMksgaXMgYWJvdXQgcmlnaHQKLSsgICAgOzsKLSsKLSsgIGdu dSopCi0rICAgICMgVW5kZXIgR05VIEh1cmQsIHRoaXMgdGVzdCBpcyBub3QgcmVxdWlyZWQgYmVj YXVzZSB0aGVyZSBpcwotKyAgICAjIG5vIGxpbWl0IHRvIHRoZSBsZW5ndGggb2YgY29tbWFuZCBs aW5lIGFyZ3VtZW50cy4KLSsgICAgIyBMaWJ0b29sIHdpbGwgaW50ZXJwcmV0IC0xIGFzIG5vIGxp bWl0IHdoYXRzb2V2ZXIKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPS0xOwotKyAgICA7Owot KwotKyAgY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKLSsgICAgIyBPbiBXaW45eC9NRSwgdGhp cyB0ZXN0IGJsb3dzIHVwIC0tIGl0IHN1Y2NlZWRzLCBidXQgdGFrZXMKLSsgICAgIyBhYm91dCA1 IG1pbnV0ZXMgYXMgdGhlIHRlc3RzdHJpbmcgZ3Jvd3MgZXhwb25lbnRpYWxseS4KLSsgICAgIyBX b3JzZSwgc2luY2UgOXgvTUUgYXJlIG5vdCBwcmUtZW1wdGl2ZWx5IG11bHRpdGFza2luZywKLSsg ICAgIyB5b3UgZW5kIHVwIHdpdGggYSAiZnJvemVuIiBjb21wdXRlciwgZXZlbiB0aG91Z2ggd2l0 aCBwYXRpZW5jZQotKyAgICAjIHRoZSB0ZXN0IGV2ZW50dWFsbHkgc3VjY2VlZHMgKHdpdGggYSBt YXggbGluZSBsZW5ndGggb2YgMjU2aykuCi0rICAgICMgSW5zdGVhZCwgbGV0J3MganVzdCBwdW50 OiB1c2UgdGhlIG1pbmltdW0gbGluZWxlbmd0aCByZXBvcnRlZCBieQotKyAgICAjIGFsbCBvZiB0 aGUgc3VwcG9ydGVkIHBsYXRmb3JtczogODE5MiAob24gTlQvMksvWFApLgotKyAgICBsdF9jdl9z eXNfbWF4X2NtZF9sZW49ODE5MjsKLSsgICAgOzsKLSsKLSsgIG1pbnQqKQotKyAgICAjIE9uIE1p TlQgdGhpcyBjYW4gdGFrZSBhIGxvbmcgdGltZSBhbmQgcnVuIG91dCBvZiBtZW1vcnkuCi0rICAg IGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOwotKyAgICA7OwotKwotKyAgYW1pZ2FvcyopCi0r ICAgICMgT24gQW1pZ2FPUyB3aXRoIHBka3NoLCB0aGlzIHRlc3QgdGFrZXMgaG91cnMsIGxpdGVy YWxseS4KLSsgICAgIyBTbyB3ZSBqdXN0IHB1bnQgYW5kIHVzZSBhIG1pbmltdW0gbGluZSBsZW5n dGggb2YgODE5Mi4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTgxOTI7Ci0rICAgIDs7Ci0r Ci0rICBuZXRic2QqIHwgZnJlZWJzZCogfCBvcGVuYnNkKiB8IGRhcndpbiogfCBkcmFnb25mbHkq KQotKyAgICAjIFRoaXMgaGFzIGJlZW4gYXJvdW5kIHNpbmNlIDM4NkJTRCwgYXQgbGVhc3QuICBM aWtlbHkgZnVydGhlci4KLSsgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAg ICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YC9zYmluL3N5c2N0bCAtbiBrZXJuLmFyZ21heGAKLSsg ICAgZWxpZiB0ZXN0IC14IC91c3Ivc2Jpbi9zeXNjdGw7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNf bWF4X2NtZF9sZW49YC91c3Ivc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCi0rICAgIGVsc2UK LSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49NjU1MzYJIyB1c2FibGUgZGVmYXVsdCBmb3Ig YWxsIEJTRHMKLSsgICAgZmkKLSsgICAgIyBBbmQgYWRkIGEgc2FmZXR5IHpvbmUKLSsgICAgbHRf Y3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gNGAKLSsg ICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXCog M2AKLSsgICAgOzsKLSsKLSsgIGludGVyaXgqKQotKyAgICAjIFdlIGtub3cgdGhlIHZhbHVlIDI2 MjE0NCBhbmQgaGFyZGNvZGUgaXQgd2l0aCBhIHNhZmV0eSB6b25lIChsaWtlIEJTRCkKLSsgICAg bHRfY3Zfc3lzX21heF9jbWRfbGVuPTE5NjYwOAotKyAgICA7OwotKwotKyAgb3NmKikKLSsgICAg IyBEci4gSGFucyBFa2tlaGFyZCBQbGVzc2VyIHJlcG9ydHMgc2VlaW5nIGEga2VybmVsIHBhbmlj IHJ1bm5pbmcgY29uZmlndXJlCi0rICAgICMgZHVlIHRvIHRoaXMgdGVzdCB3aGVuIGV4ZWNfZGlz YWJsZV9hcmdfbGltaXQgaXMgMSBvbiBUcnU2NC4gSXQgaXMgbm90Ci0rICAgICMgbmljZSB0byBj YXVzZSBrZXJuZWwgcGFuaWNzIHNvIGxldHMgYXZvaWQgdGhlIGxvb3AgYmVsb3cuCi0rICAgICMg Rmlyc3Qgc2V0IGEgcmVhc29uYWJsZSBkZWZhdWx0LgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49MTYzODQKLSsgICAgIwotKyAgICBpZiB0ZXN0IC14IC9zYmluL3N5c2NvbmZpZzsgdGhlbgot KyAgICAgIGNhc2UgYC9zYmluL3N5c2NvbmZpZyAtcSBwcm9jIGV4ZWNfZGlzYWJsZV9hcmdfbGlt aXRgIGluCi0rICAgICAgICAqMSopIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMSA7OwotKyAgICAg IGVzYWMKLSsgICAgZmkKLSsgICAgOzsKLSsgIHNjbzMuMnY1KikKLSsgICAgbHRfY3Zfc3lzX21h eF9jbWRfbGVuPTEwMjQwMAotKyAgICA7OwotKyAgc3lzdjUqIHwgc2NvNXY2KiB8IHN5c3Y0LjJ1 dzIqKQotKyAgICBrYXJnbWF4PWBncmVwIEFSR19NQVggL2V0Yy9jb25mL2NmLmQvc3R1bmUgMj4v ZGV2L251bGxgCi0rICAgIGlmIHRlc3QgLW4gIiRrYXJnbWF4IjsgdGhlbgotKyAgICAgIGx0X2N2 X3N5c19tYXhfY21kX2xlbj1gZWNobyAka2FyZ21heCB8IHNlZCAncy8uKltbCSBdXS8vJ2AKLSsg ICAgZWxzZQotKyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0zMjc2OAotKyAgICBmaQotKyAg ICA7OwotKyAgKikKLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAoZ2V0Y29uZiBBUkdfTUFY KSAyPiAvZGV2L251bGxgCi0rICAgIGlmIHRlc3QgLW4gIiRsdF9jdl9zeXNfbWF4X2NtZF9sZW4i OyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4 X2NtZF9sZW4gXC8gNGAKLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2 X3N5c19tYXhfY21kX2xlbiBcKiAzYAotKyAgICBlbHNlCi0rICAgICAgIyBNYWtlIHRlc3RzdHJp bmcgYSBsaXR0bGUgYmlnZ2VyIGJlZm9yZSB3ZSBkbyBhbnl0aGluZyB3aXRoIGl0LgotKyAgICAg ICMgYSAxSyBzdHJpbmcgc2hvdWxkIGJlIGEgcmVhc29uYWJsZSBzdGFydC4KLSsgICAgICBmb3Ig aSBpbiAxIDIgMyA0IDUgNiA3IDggOyBkbwotKyAgICAgICAgdGVzdHN0cmluZz0kdGVzdHN0cmlu ZyR0ZXN0c3RyaW5nCi0rICAgICAgZG9uZQotKyAgICAgIFNIRUxMPSR7U0hFTEwtJHtDT05GSUdf U0hFTEwtL2Jpbi9zaH19Ci0rICAgICAgIyBJZiB0ZXN0IGlzIG5vdCBhIHNoZWxsIGJ1aWx0LWlu LCB3ZSdsbCBwcm9iYWJseSBlbmQgdXAgY29tcHV0aW5nIGEKLSsgICAgICAjIG1heGltdW0gbGVu Z3RoIHRoYXQgaXMgb25seSBoYWxmIG9mIHRoZSBhY3R1YWwgbWF4aW11bSBsZW5ndGgsIGJ1dAot KyAgICAgICMgd2UgY2FuJ3QgdGVsbC4KLSsgICAgICB3aGlsZSB7IHRlc3QgIlgiYGZ1bmNfZmFs bGJhY2tfZWNobyAiJHRlc3RzdHJpbmckdGVzdHN0cmluZyIgMj4vZGV2L251bGxgIFwKLSsJICAg ICAgICAgPSAiWCR0ZXN0c3RyaW5nJHRlc3RzdHJpbmciOyB9ID4vZGV2L251bGwgMj4mMSAmJgot KwkgICAgICB0ZXN0ICRpICE9IDE3ICMgMS8yIE1CIHNob3VsZCBiZSBlbm91Z2gKLSsgICAgICBk bwotKyAgICAgICAgaT1gZXhwciAkaSArIDFgCi0rICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3Ry aW5nJHRlc3RzdHJpbmcKLSsgICAgICBkb25lCi0rICAgICAgIyBPbmx5IGNoZWNrIHRoZSBzdHJp bmcgbGVuZ3RoIG91dHNpZGUgdGhlIGxvb3AuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PWBleHByICJYJHRlc3RzdHJpbmciIDogIi4qIiAyPiYxYAotKyAgICAgIHRlc3RzdHJpbmc9Ci0r ICAgICAgIyBBZGQgYSBzaWduaWZpY2FudCBzYWZldHkgZmFjdG9yIGJlY2F1c2UgQysrIGNvbXBp bGVycyBjYW4gdGFjayBvbgotKyAgICAgICMgbWFzc2l2ZSBhbW91bnRzIG9mIGFkZGl0aW9uYWwg YXJndW1lbnRzIGJlZm9yZSBwYXNzaW5nIHRoZW0gdG8gdGhlCi0rICAgICAgIyBsaW5rZXIuICBJ dCBhcHBlYXJzIGFzIHRob3VnaCAxLzIgaXMgYSB1c2FibGUgdmFsdWUuCi0rICAgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPWBleHByICRsdF9jdl9zeXNfbWF4X2NtZF9sZW4gXC8gMmAKLSsgICAg ZmkKLSsgICAgOzsKLSsgIGVzYWMKLStdKQotK2lmIHRlc3QgLW4gJGx0X2N2X3N5c19tYXhfY21k X2xlbiA7IHRoZW4KLSsgIEFDX01TR19SRVNVTFQoJGx0X2N2X3N5c19tYXhfY21kX2xlbikKLStl bHNlCi0rICBBQ19NU0dfUkVTVUxUKG5vbmUpCi0rZmkKLSttYXhfY21kX2xlbj0kbHRfY3Zfc3lz X21heF9jbWRfbGVuCi0rX0xUX0RFQ0woW10sIFttYXhfY21kX2xlbl0sIFswXSwKLSsgICAgW1do YXQgaXMgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGEgY29tbWFuZD9dKQotK10pIyBMVF9DTURfTUFY X0xFTgotKwotKyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0FDX0xJQlRPT0xfU1lTX01BWF9DTURf TEVOXSwgW0xUX0NNRF9NQVhfTEVOXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBh dGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19MSUJUT09MX1NZU19NQVhfQ01EX0xFTl0sIFtd KQotKwotKwotKyMgX0xUX0hFQURFUl9ETEZDTgotKyMgLS0tLS0tLS0tLS0tLS0tLQotK200X2Rl ZnVuKFtfTFRfSEVBREVSX0RMRkNOXSwKLStbQUNfQ0hFQ0tfSEVBREVSUyhbZGxmY24uaF0sIFtd LCBbXSwgW0FDX0lOQ0xVREVTX0RFRkFVTFRdKWRubAotK10pIyBfTFRfSEVBREVSX0RMRkNOCi0r Ci0rCi0rIyBfTFRfVFJZX0RMT1BFTl9TRUxGIChBQ1RJT04tSUYtVFJVRSwgQUNUSU9OLUlGLVRS VUUtVy1VU0NPUkUsCi0rIyAgICAgICAgICAgICAgICAgICAgICBBQ1RJT04tSUYtRkFMU0UsIEFD VElPTi1JRi1DUk9TUy1DT01QSUxJTkcpCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmdW4oW19MVF9UUllf RExPUEVOX1NFTEZdLAotK1ttNF9yZXF1aXJlKFtfTFRfSEVBREVSX0RMRkNOXSlkbmwKLStpZiB0 ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHllczsgdGhlbiA6Ci0rICBbJDRdCi0rZWxzZQotKyAg bHRfZGx1bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgotKyAg bHRfc3RhdHVzPSRsdF9kbHVua25vd24KLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRf RU9GCi0rWyNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRlZnMuaCIK LSsKLSsjaWYgSEFWRV9ETEZDTl9ICi0rI2luY2x1ZGUgPGRsZmNuLmg+Ci0rI2VuZGlmCi0rCi0r I2luY2x1ZGUgPHN0ZGlvLmg+Ci0rCi0rI2lmZGVmIFJUTERfR0xPQkFMCi0rIyAgZGVmaW5lIExU X0RMR0xPQkFMCQlSVExEX0dMT0JBTAotKyNlbHNlCi0rIyAgaWZkZWYgRExfR0xPQkFMCi0rIyAg ICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAotKyMgIGVsc2UKLSsjICAgIGRlZmluZSBM VF9ETEdMT0JBTAkJMAotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rLyogV2UgbWF5IGhhdmUgdG8g ZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3ZQotKyAgIGZp bmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KLSsjaWZuZGVmIExU X0RMTEFaWV9PUl9OT1cKLSsjICBpZmRlZiBSVExEX0xBWlkKLSsjICAgIGRlZmluZSBMVF9ETExB WllfT1JfTk9XCQlSVExEX0xBWlkKLSsjICBlbHNlCi0rIyAgICBpZmRlZiBETF9MQVpZCi0rIyAg ICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCi0rIyAgICBlbHNlCi0rIyAgICAg IGlmZGVmIFJUTERfTk9XCi0rIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJUlRMRF9O T1cKLSsjICAgICAgZWxzZQotKyMgICAgICAgIGlmZGVmIERMX05PVwotKyMgICAgICAgICAgZGVm aW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCi0rIyAgICAgICAgZWxzZQotKyMgICAgICAgICAg ZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAotKyMgICAgICAgIGVuZGlmCi0rIyAgICAgIGVuZGlm Ci0rIyAgICBlbmRpZgotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rLyogV2hlbiAtZnZpc2JpbGl0 eT1oaWRkZW4gaXMgdXNlZCwgYXNzdW1lIHRoZSBjb2RlIGhhcyBiZWVuIGFubm90YXRlZAotKyAg IGNvcnJlc3BvbmRpbmdseSBmb3IgdGhlIHN5bWJvbHMgbmVlZGVkLiAgKi8KLSsjaWYgZGVmaW5l ZChfX0dOVUNfXykgJiYgKCgoX19HTlVDX18gPT0gMykgJiYgKF9fR05VQ19NSU5PUl9fID49IDMp KSB8fCAoX19HTlVDX18gPiAzKSkKLStpbnQgZm5vcmQgKCkgX19hdHRyaWJ1dGVfXygodmlzaWJp bGl0eSgiZGVmYXVsdCIpKSk7Ci0rI2VuZGlmCi0rCi0raW50IGZub3JkICgpIHsgcmV0dXJuIDQy OyB9Ci0raW50IG1haW4gKCkKLSt7Ci0rICB2b2lkICpzZWxmID0gZGxvcGVuICgwLCBMVF9ETEdM T0JBTHxMVF9ETExBWllfT1JfTk9XKTsKLSsgIGludCBzdGF0dXMgPSAkbHRfZGx1bmtub3duOwot KwotKyAgaWYgKHNlbGYpCi0rICAgIHsKLSsgICAgICBpZiAoZGxzeW0gKHNlbGYsImZub3JkIikp ICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsKLSsgICAgICBlbHNlCi0rICAgICAgICB7 Ci0rCSAgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgIHN0YXR1cyA9ICRsdF9kbG5lZWRfdXNj b3JlOwotKyAgICAgICAgICBlbHNlIHB1dHMgKGRsZXJyb3IgKCkpOwotKwl9Ci0rICAgICAgLyog ZGxjbG9zZSAoc2VsZik7ICovCi0rICAgIH0KLSsgIGVsc2UKLSsgICAgcHV0cyAoZGxlcnJvciAo KSk7Ci0rCi0rICByZXR1cm4gc3RhdHVzOwotK31dCi0rX0xUX0VPRgotKyAgaWYgQUNfVFJZX0VW QUwoYWNfbGluaykgJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fSAyPi9kZXYvbnVsbDsg dGhlbgotKyAgICAoLi9jb25mdGVzdDsgZXhpdDsgKSA+JkFTX01FU1NBR0VfTE9HX0ZEIDI+L2Rl di9udWxsCi0rICAgIGx0X3N0YXR1cz0kPwotKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCi0rICAg ICAgeCRsdF9kbG5vX3VzY29yZSkgJDEgOzsKLSsgICAgICB4JGx0X2RsbmVlZF91c2NvcmUpICQy IDs7Ci0rICAgICAgeCRsdF9kbHVua25vd258eCopICQzIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2Ug OgotKyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAotKyAgICAkMwotKyAgZmkKLStmaQotK3JtIC1m ciBjb25mdGVzdCoKLStdKSMgX0xUX1RSWV9ETE9QRU5fU0VMRgotKwotKwotKyMgTFRfU1lTX0RM T1BFTl9TRUxGCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0KLStBQ19ERUZVTihbTFRfU1lTX0RMT1BF Tl9TRUxGXSwKLStbbTRfcmVxdWlyZShbX0xUX0hFQURFUl9ETEZDTl0pZG5sCi0raWYgdGVzdCAi eCRlbmFibGVfZGxvcGVuIiAhPSB4eWVzOyB0aGVuCi0rICBlbmFibGVfZGxvcGVuPXVua25vd24K LSsgIGVuYWJsZV9kbG9wZW5fc2VsZj11bmtub3duCi0rICBlbmFibGVfZGxvcGVuX3NlbGZfc3Rh dGljPXVua25vd24KLStlbHNlCi0rICBsdF9jdl9kbG9wZW49bm8KLSsgIGx0X2N2X2Rsb3Blbl9s aWJzPQotKwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYmVvcyopCi0rICAgIGx0X2N2X2Rsb3Bl bj0ibG9hZF9hZGRfb24iCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICBsdF9jdl9kbG9w ZW5fc2VsZj15ZXMKLSsgICAgOzsKLSsKLSsgIG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAg ICBsdF9jdl9kbG9wZW49IkxvYWRMaWJyYXJ5IgotKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KLSsg ICAgOzsKLSsKLSsgIGN5Z3dpbiopCi0rICAgIGx0X2N2X2Rsb3Blbj0iZGxvcGVuIgotKyAgICBs dF9jdl9kbG9wZW5fbGlicz0KLSsgICAgOzsKLSsKLSsgIGRhcndpbiopCi0rICAjIGlmIGxpYmRs IGlzIGluc3RhbGxlZCB3ZSBuZWVkIHRvIGxpbmsgYWdhaW5zdCBpdAotKyAgICBBQ19DSEVDS19M SUIoW2RsXSwgW2Rsb3Blbl0sCi0rCQlbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2X2Rsb3Bl bl9saWJzPSItbGRsIl0sWwotKyAgICBsdF9jdl9kbG9wZW49ImR5bGQiCi0rICAgIGx0X2N2X2Rs b3Blbl9saWJzPQotKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMKLSsgICAgXSkKLSsgICAgOzsK LSsKLSsgICopCi0rICAgIEFDX0NIRUNLX0ZVTkMoW3NobF9sb2FkXSwKLSsJICBbbHRfY3ZfZGxv cGVuPSJzaGxfbG9hZCJdLAotKyAgICAgIFtBQ19DSEVDS19MSUIoW2RsZF0sIFtzaGxfbG9hZF0s Ci0rCSAgICBbbHRfY3ZfZGxvcGVuPSJzaGxfbG9hZCIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxk Il0sCi0rCVtBQ19DSEVDS19GVU5DKFtkbG9wZW5dLAotKwkgICAgICBbbHRfY3ZfZGxvcGVuPSJk bG9wZW4iXSwKLSsJICBbQUNfQ0hFQ0tfTElCKFtkbF0sIFtkbG9wZW5dLAotKwkJW2x0X2N2X2Rs b3Blbj0iZGxvcGVuIiBsdF9jdl9kbG9wZW5fbGlicz0iLWxkbCJdLAotKwkgICAgW0FDX0NIRUNL X0xJQihbc3ZsZF0sIFtkbG9wZW5dLAotKwkJICBbbHRfY3ZfZGxvcGVuPSJkbG9wZW4iIGx0X2N2 X2Rsb3Blbl9saWJzPSItbHN2bGQiXSwKLSsJICAgICAgW0FDX0NIRUNLX0xJQihbZGxkXSwgW2Rs ZF9saW5rXSwKLSsJCSAgICBbbHRfY3ZfZGxvcGVuPSJkbGRfbGluayIgbHRfY3ZfZGxvcGVuX2xp YnM9Ii1sZGxkIl0pCi0rCSAgICAgIF0pCi0rCSAgICBdKQotKwkgIF0pCi0rCV0pCi0rICAgICAg XSkKLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsgIGlmIHRlc3QgIngkbHRfY3ZfZGxvcGVuIiAhPSB4 bm87IHRoZW4KLSsgICAgZW5hYmxlX2Rsb3Blbj15ZXMKLSsgIGVsc2UKLSsgICAgZW5hYmxlX2Rs b3Blbj1ubwotKyAgZmkKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3BlbiBpbgotKyAgZGxvcGVuKQot KyAgICBzYXZlX0NQUEZMQUdTPSIkQ1BQRkxBR1MiCi0rICAgIHRlc3QgIngkYWNfY3ZfaGVhZGVy X2RsZmNuX2giID0geHllcyAmJiBDUFBGTEFHUz0iJENQUEZMQUdTIC1ESEFWRV9ETEZDTl9IIgot KwotKyAgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAgICB3bD0kbHRfcHJvZ19jb21waWxl cl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY1wi Ci0rCi0rICAgIHNhdmVfTElCUz0iJExJQlMiCi0rICAgIExJQlM9IiRsdF9jdl9kbG9wZW5fbGli cyAkTElCUyIKLSsKLSsgICAgQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgYSBwcm9ncmFtIGNhbiBk bG9wZW4gaXRzZWxmXSwKLSsJICBsdF9jdl9kbG9wZW5fc2VsZiwgW2RubAotKwkgIF9MVF9UUllf RExPUEVOX1NFTEYoCi0rCSAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMsIGx0X2N2X2Rsb3Blbl9z ZWxmPXllcywKLSsJICAgIGx0X2N2X2Rsb3Blbl9zZWxmPW5vLCBsdF9jdl9kbG9wZW5fc2VsZj1j cm9zcykKLSsgICAgXSkKLSsKLSsgICAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW5fc2VsZiIgPSB4 eWVzOyB0aGVuCi0rICAgICAgd2w9JGx0X3Byb2dfY29tcGlsZXJfd2wgZXZhbCBMREZMQUdTPVwi XCRMREZMQUdTICRsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY1wiCi0rICAgICAgQUNfQ0FDSEVfQ0hF Q0soW3doZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxm XSwKLSsJICBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWMsIFtkbmwKLSsJICBfTFRfVFJZX0RMT1BF Tl9TRUxGKAotKwkgICAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcywgbHRfY3ZfZGxvcGVu X3NlbGZfc3RhdGljPXllcywKLSsJICAgIGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1ubywgIGx0 X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYz1jcm9zcykKLSsgICAgICBdKQotKyAgICBmaQotKwotKyAg ICBDUFBGTEFHUz0iJHNhdmVfQ1BQRkxBR1MiCi0rICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1Mi Ci0rICAgIExJQlM9IiRzYXZlX0xJQlMiCi0rICAgIDs7Ci0rICBlc2FjCi0rCi0rICBjYXNlICRs dF9jdl9kbG9wZW5fc2VsZiBpbgotKyAgeWVzfG5vKSBlbmFibGVfZGxvcGVuX3NlbGY9JGx0X2N2 X2Rsb3Blbl9zZWxmIDs7Ci0rICAqKSBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93biA7OwotKyAg ZXNhYwotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIGluCi0rICB5ZXN8bm8p IGVuYWJsZV9kbG9wZW5fc2VsZl9zdGF0aWM9JGx0X2N2X2Rsb3Blbl9zZWxmX3N0YXRpYyA7Owot KyAgKikgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz11bmtub3duIDs7Ci0rICBlc2FjCi0rZmkK LStfTFRfREVDTChbZGxvcGVuX3N1cHBvcnRdLCBbZW5hYmxlX2Rsb3Blbl0sIFswXSwKLSsJIFtX aGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWRdKQotK19MVF9ERUNMKFtkbG9wZW5fc2VsZl0sIFtl bmFibGVfZGxvcGVuX3NlbGZdLCBbMF0sCi0rCSBbV2hldGhlciBkbG9wZW4gb2YgcHJvZ3JhbXMg aXMgc3VwcG9ydGVkXSkKLStfTFRfREVDTChbZGxvcGVuX3NlbGZfc3RhdGljXSwgW2VuYWJsZV9k bG9wZW5fc2VsZl9zdGF0aWNdLCBbMF0sCi0rCSBbV2hldGhlciBkbG9wZW4gb2Ygc3RhdGljYWxs eSBsaW5rZWQgcHJvZ3JhbXMgaXMgc3VwcG9ydGVkXSkKLStdKSMgTFRfU1lTX0RMT1BFTl9TRUxG Ci0rCi0rIyBPbGQgbmFtZToKLStBVV9BTElBUyhbQUNfTElCVE9PTF9ETE9QRU5fU0VMRl0sIFtM VF9TWVNfRExPUEVOX1NFTEZdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJp bGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOX1NFTEZdLCBbXSkKLSsKLSsK LSsjIF9MVF9DT01QSUxFUl9DX08oW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBDaGVjayB0byBzZWUgaWYgb3B0aW9ucyAtYyBhbmQgLW8gYXJlIHNpbXVsdGFu ZW91c2x5IHN1cHBvcnRlZCBieSBjb21waWxlci4KLSsjIFRoaXMgbWFjcm8gZG9lcyBub3QgaGFy ZCBjb2RlIHRoZSBjb21waWxlciBsaWtlIEFDX1BST0dfQ0NfQ19PLgotK200X2RlZnVuKFtfTFRf Q09NUElMRVJfQ19PXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VEXSlkbmwKLSttNF9yZXF1 aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfVEFHX0NP TVBJTEVSXSlkbmwKLStBQ19DQUNIRV9DSEVDSyhbaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1v IGZpbGUuJGFjX29iamV4dF0sCi0rICBbX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX2Nf bywgJDEpXSwKLSsgIFtfTFRfVEFHVkFSKGx0X2N2X3Byb2dfY29tcGlsZXJfY19vLCAkMSk9bm8K LSsgICAkUk0gLXIgY29uZnRlc3QgMj4vZGV2L251bGwKLSsgICBta2RpciBjb25mdGVzdAotKyAg IGNkIGNvbmZ0ZXN0Ci0rICAgbWtkaXIgb3V0Ci0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxl X3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAgbHRfY29tcGlsZXJfZmxhZz0i LW8gb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0IgotKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0 aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAgIyAoMikgYmVm b3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KLSsg ICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xh c2hlcyBhbmQgYmVnaW5zCi0rICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiks IHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KLSsgICBsdF9jb21waWxlPWBlY2hv ICIkYWNfY29tcGlsZSIgfCAkU0VEIFwKLSsgICAtZSAnczouKkZMQUdTfVx7MCwxXH0gOiYkbHRf Y29tcGlsZXJfZmxhZyA6OyB0JyBcCi0rICAgLWUgJ3M6IFtbXiBdXSpjb25mdGVzdFwuOiAkbHRf Y29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AK LSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiZBU19N RVNTQUdFX0xPR19GRCkKLSsgICAoZXZhbCAiJGx0X2NvbXBpbGUiIDI+b3V0L2NvbmZ0ZXN0LmVy cikKLSsgICBhY19zdGF0dXM9JD8KLSsgICBjYXQgb3V0L2NvbmZ0ZXN0LmVyciA+JkFTX01FU1NB R0VfTE9HX0ZECi0rICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4m QVNfTUVTU0FHRV9MT0dfRkQKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91 dC9jb25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNh biBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAg ICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRFQ0hPICIkX2x0X2Nv bXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKLSsg ICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3Qu ZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25m dGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgIF9MVF9U QUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT15ZXMKLSsgICAgIGZpCi0rICAgZmkK LSsgICBjaG1vZCB1K3cgLiAyPiZBU19NRVNTQUdFX0xPR19GRAotKyAgICRSTSBjb25mdGVzdCoK LSsgICAjIFNHSSBDKysgY29tcGlsZXIgd2lsbCBjcmVhdGUgZGlyZWN0b3J5IG91dC9paV9maWxl cy8gZm9yCi0rICAgIyB0ZW1wbGF0ZSBpbnN0YW50aWF0aW9uCi0rICAgdGVzdCAtZCBvdXQvaWlf ZmlsZXMgJiYgJFJNIG91dC9paV9maWxlcy8qICYmIHJtZGlyIG91dC9paV9maWxlcwotKyAgICRS TSBvdXQvKiAmJiBybWRpciBvdXQKLSsgICBjZCAuLgotKyAgICRSTSAtciBjb25mdGVzdAotKyAg ICRSTSBjb25mdGVzdCoKLStdKQotK19MVF9UQUdERUNMKFtjb21waWxlcl9jX29dLCBbbHRfY3Zf cHJvZ19jb21waWxlcl9jX29dLCBbMV0sCi0rCVtEb2VzIGNvbXBpbGVyIHNpbXVsdGFuZW91c2x5 IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/XSkKLStdKSMgX0xUX0NPTVBJTEVSX0NfTwotKwot KwotKyMgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgQ2hlY2sgdG8gc2VlIGlmIHdlIGNhbiBkbyBoYXJk IGxpbmtzIHRvIGxvY2sgc29tZSBmaWxlcyBpZiBuZWVkZWQKLSttNF9kZWZ1bihbX0xUX0NPTVBJ TEVSX0ZJTEVfTE9DS1NdLAotK1ttNF9yZXF1aXJlKFtfTFRfRU5BQkxFX0xPQ0tdKWRubAotK200 X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotK19MVF9DT01QSUxFUl9DX08o WyQxXSkKLSsKLStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJF9MVF9UQUdWQVIo bHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKSIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIg IT0gbm87IHRoZW4KLSsgICMgZG8gbm90IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2Nr cyBwcm92aWRlZCBieSB0aGUgdXNlcgotKyAgQUNfTVNHX0NIRUNLSU5HKFtpZiB3ZSBjYW4gbG9j ayB3aXRoIGhhcmQgbGlua3NdKQotKyAgaGFyZF9saW5rcz15ZXMKLSsgICRSTSBjb25mdGVzdCoK LSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5v Ci0rICB0b3VjaCBjb25mdGVzdC5hCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4mNSB8 fCBoYXJkX2xpbmtzPW5vCi0rICBsbiBjb25mdGVzdC5hIGNvbmZ0ZXN0LmIgMj4vZGV2L251bGwg JiYgaGFyZF9saW5rcz1ubwotKyAgQUNfTVNHX1JFU1VMVChbJGhhcmRfbGlua3NdKQotKyAgaWYg dGVzdCAiJGhhcmRfbGlua3MiID0gbm87IHRoZW4KLSsgICAgQUNfTVNHX1dBUk4oW2AkQ0MnIGRv ZXMgbm90IHN1cHBvcnQgYC1jIC1vJywgc28gYG1ha2UgLWonIG1heSBiZSB1bnNhZmVdKQotKyAg ICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1ubwotK2ZpCi0r X0xUX0RFQ0woW10sIFtuZWVkX2xvY2tzXSwgWzFdLCBbTXVzdCB3ZSBsb2NrIGZpbGVzIHdoZW4g ZG9pbmcgY29tcGlsYXRpb24/XSkKLStdKSMgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MKLSsKLSsK LSsjIF9MVF9DSEVDS19PQkpESVIKLSsjIC0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xU X0NIRUNLX09CSkRJUl0sCi0rW0FDX0NBQ0hFX0NIRUNLKFtmb3Igb2JqZGlyXSwgW2x0X2N2X29i amRpcl0sCi0rW3JtIC1mIC5saWJzIDI+L2Rldi9udWxsCi0rbWtkaXIgLmxpYnMgMj4vZGV2L251 bGwKLStpZiB0ZXN0IC1kIC5saWJzOyB0aGVuCi0rICBsdF9jdl9vYmpkaXI9LmxpYnMKLStlbHNl Ci0rICAjIE1TLURPUyBkb2VzIG5vdCBhbGxvdyBmaWxlbmFtZXMgdGhhdCBiZWdpbiB3aXRoIGEg ZG90LgotKyAgbHRfY3Zfb2JqZGlyPV9saWJzCi0rZmkKLStybWRpciAubGlicyAyPi9kZXYvbnVs bF0pCi0rb2JqZGlyPSRsdF9jdl9vYmpkaXIKLStfTFRfREVDTChbXSwgW29iamRpcl0sIFswXSwK LSsgICAgICAgICBbVGhlIG5hbWUgb2YgdGhlIGRpcmVjdG9yeSB0aGF0IGNvbnRhaW5zIHRlbXBv cmFyeSBsaWJ0b29sIGZpbGVzXSlkbmwKLSttNF9wYXR0ZXJuX2FsbG93KFtMVF9PQkpESVJdKWRu bAotK0FDX0RFRklORV9VTlFVT1RFRChMVF9PQkpESVIsICIkbHRfY3Zfb2JqZGlyLyIsCi0rICBb RGVmaW5lIHRvIHRoZSBzdWItZGlyZWN0b3J5IGluIHdoaWNoIGxpYnRvb2wgc3RvcmVzIHVuaW5z dGFsbGVkIGxpYnJhcmllcy5dKQotK10pIyBfTFRfQ0hFQ0tfT0JKRElSCi0rCi0rCi0rIyBfTFRf TElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoW1RBR05BTUVdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNrIGhhcmRjb2RpbmcgYXR0cmlidXRlcy4KLStt NF9kZWZ1bihbX0xUX0xJTktFUl9IQVJEQ09ERV9MSUJQQVRIXSwKLStbQUNfTVNHX0NIRUNLSU5H KFtob3cgdG8gaGFyZGNvZGUgbGlicmFyeSBwYXRocyBpbnRvIHByb2dyYW1zXSkKLStfTFRfVEFH VkFSKGhhcmRjb2RlX2FjdGlvbiwgJDEpPQotK2lmIHRlc3QgLW4gIiRfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKSIgfHwKLSsgICB0ZXN0IC1uICIkX0xUX1RBR1ZBUihy dW5wYXRoX3ZhciwgJDEpIiB8fAotKyAgIHRlc3QgIlgkX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRv bWF0aWMsICQxKSIgPSAiWHllcyIgOyB0aGVuCi0rCi0rICAjIFdlIGNhbiBoYXJkY29kZSBub24t ZXhpc3RlbnQgZGlyZWN0b3JpZXMuCi0rICBpZiB0ZXN0ICIkX0xUX1RBR1ZBUihoYXJkY29kZV9k aXJlY3QsICQxKSIgIT0gbm8gJiYKLSsgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2 b2lkIGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKLSsgICAgICMgaGF2ZSB0byByZWxp bmssIG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKLSsg ICAgICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxl ZCBvbmUKLSsgICAgICMjIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs ICQxKSIgIT0gbm8gJiYKLSsgICAgIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVzX0ws ICQxKSIgIT0gbm87IHRoZW4KLSsgICAgIyBMaW5raW5nIGFsd2F5cyBoYXJkY29kZXMgdGhlIHRl bXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9yeS4KLSsgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9hY3Rp b24sICQxKT1yZWxpbmsKLSsgIGVsc2UKLSsgICAgIyBXZSBjYW4gbGluayB3aXRob3V0IGhhcmRj b2RpbmcsIGFuZCB3ZSBjYW4gaGFyZGNvZGUgbm9uZXhpc3RpbmcgZGlycy4KLSsgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9hY3Rpb24sICQxKT1pbW1lZGlhdGUKLSsgIGZpCi0rZWxzZQotKyAgIyBX ZSBjYW5ub3QgaGFyZGNvZGUgYW55dGhpbmcsIG9yIGVsc2Ugd2UgY2FuIG9ubHkgaGFyZGNvZGUg ZXhpc3RpbmcKLSsgICMgZGlyZWN0b3JpZXMuCi0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2FjdGlv biwgJDEpPXVuc3VwcG9ydGVkCi0rZmkKLStBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihoYXJk Y29kZV9hY3Rpb24sICQxKV0pCi0rCi0raWYgdGVzdCAiJF9MVF9UQUdWQVIoaGFyZGNvZGVfYWN0 aW9uLCAkMSkiID0gcmVsaW5rIHx8Ci0rICAgdGVzdCAiJF9MVF9UQUdWQVIoaW5oZXJpdF9ycGF0 aCwgJDEpIiA9IHllczsgdGhlbgotKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3Qgc3VwcG9y dGVkCi0rICBlbmFibGVfZmFzdF9pbnN0YWxsPW5vCi0rZWxpZiB0ZXN0ICIkc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoIiA9IHllcyB8fAotKyAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0g bm87IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IG5lY2Vzc2FyeQotKyAgZW5h YmxlX2Zhc3RfaW5zdGFsbD1uZWVkbGVzcwotK2ZpCi0rX0xUX1RBR0RFQ0woW10sIFtoYXJkY29k ZV9hY3Rpb25dLCBbMF0sCi0rICAgIFtIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBw YXRoIGludG8gYW4gZXhlY3V0YWJsZV0pCi0rXSkjIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFU SAotKwotKwotKyMgX0xUX0NNRF9TVFJJUExJQgotKyMgLS0tLS0tLS0tLS0tLS0tLQotK200X2Rl ZnVuKFtfTFRfQ01EX1NUUklQTElCXSwKLStbbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKQot K3N0cmlwbGliPQotK29sZF9zdHJpcGxpYj0KLStBQ19NU0dfQ0hFQ0tJTkcoW3doZXRoZXIgc3Ry aXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZV0pCi0raWYgdGVzdCAtbiAiJFNUUklQIiAmJiAk U1RSSVAgLVYgMj4mMSB8ICRHUkVQICJHTlUgc3RyaXAiID4vZGV2L251bGw7IHRoZW4KLSsgIHRl c3QgLXogIiRvbGRfc3RyaXBsaWIiICYmIG9sZF9zdHJpcGxpYj0iJFNUUklQIC0tc3RyaXAtZGVi dWciCi0rICB0ZXN0IC16ICIkc3RyaXBsaWIiICYmIHN0cmlwbGliPSIkU1RSSVAgLS1zdHJpcC11 bm5lZWRlZCIKLSsgIEFDX01TR19SRVNVTFQoW3llc10pCi0rZWxzZQotKyMgRklYTUUgLSBpbnNl cnQgc29tZSByZWFsIHRlc3RzLCBob3N0X29zIGlzbid0IHJlYWxseSBnb29kIGVub3VnaAotKyAg Y2FzZSAkaG9zdF9vcyBpbgotKyAgZGFyd2luKikKLSsgICAgaWYgdGVzdCAtbiAiJFNUUklQIiA7 IHRoZW4KLSsgICAgICBzdHJpcGxpYj0iJFNUUklQIC14IgotKyAgICAgIG9sZF9zdHJpcGxpYj0i JFNUUklQIC1TIgotKyAgICAgIEFDX01TR19SRVNVTFQoW3llc10pCi0rICAgIGVsc2UKLSsgICAg ICBBQ19NU0dfUkVTVUxUKFtub10pCi0rICAgIGZpCi0rICAgIDs7Ci0rICAqKQotKyAgICBBQ19N U0dfUkVTVUxUKFtub10pCi0rICAgIDs7Ci0rICBlc2FjCi0rZmkKLStfTFRfREVDTChbXSwgW29s ZF9zdHJpcGxpYl0sIFsxXSwgW0NvbW1hbmRzIHRvIHN0cmlwIGxpYnJhcmllc10pCi0rX0xUX0RF Q0woW10sIFtzdHJpcGxpYl0sIFsxXSkKLStdKSMgX0xUX0NNRF9TVFJJUExJQgotKwotKwotKyMg X0xUX1NZU19EWU5BTUlDX0xJTktFUihbVEFHXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBQT1JUTUUgRmlsbCBpbiB5b3VyIGxkLnNvIGNoYXJhY3RlcmlzdGljcwotK200 X2RlZnVuKFtfTFRfU1lTX0RZTkFNSUNfTElOS0VSXSwKLStbQUNfUkVRVUlSRShbQUNfQ0FOT05J Q0FMX0hPU1RdKWRubAotK200X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKLSttNF9yZXF1 aXJlKFtfTFRfRklMRVVUSUxTX0RFRkFVTFRTXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9P QkpEVU1QXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRubAotK200X3JlcXVpcmUo W19MVF9DSEVDS19TSEVMTF9GRUFUVVJFU10pZG5sCi0rQUNfTVNHX0NIRUNLSU5HKFtkeW5hbWlj IGxpbmtlciBjaGFyYWN0ZXJpc3RpY3NdKQotK200X2lmKFskMV0sCi0rCVtdLCBbCi0raWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgZGFyd2luKikg bHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LywvTFIvIiA7OwotKyAgICAqKSBsdF9hd2tfYXJnPSIv XmxpYnJhcmllczovIiA7OwotKyAgZXNhYwotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBtaW5n dyogfCBjZWdjYyopIGx0X3NlZF9zdHJpcF9lcT0icyw9XChbW0EtWmEtel1dOlwpLFwxLGciIDs7 Ci0rICAgICopIGx0X3NlZF9zdHJpcF9lcT0icyw9LywvLGciIDs7Ci0rICBlc2FjCi0rICBsdF9z ZWFyY2hfcGF0aF9zcGVjPWAkQ0MgLXByaW50LXNlYXJjaC1kaXJzIHwgYXdrICRsdF9hd2tfYXJn IHwgJFNFRCAtZSAicy9ebGlicmFyaWVzOi8vIiAtZSAkbHRfc2VkX3N0cmlwX2VxYAotKyAgY2Fz ZSAkbHRfc2VhcmNoX3BhdGhfc3BlYyBpbgotKyAgKlw7KikKLSsgICAgIyBpZiB0aGUgcGF0aCBj b250YWlucyAiOyIgdGhlbiB3ZSBhc3N1bWUgaXQgdG8gYmUgdGhlIHNlcGFyYXRvcgotKyAgICAj IG90aGVyd2lzZSBkZWZhdWx0IHRvIHRoZSBzdGFuZGFyZCBwYXRoIHNlcGFyYXRvciAoaS5lLiAi OiIpIC0gaXQgaXMKLSsgICAgIyBhc3N1bWVkIHRoYXQgbm8gcGFydCBvZiBhIG5vcm1hbCBwYXRo bmFtZSBjb250YWlucyAiOyIgYnV0IHRoYXQgc2hvdWxkCi0rICAgICMgb2theSBpbiB0aGUgcmVh bCB3b3JsZCB3aGVyZSAiOyIgaW4gZGlycGF0aHMgaXMgaXRzZWxmIHByb2JsZW1hdGljLgotKyAg ICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNF RCAncy87LyAvZydgCi0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9zZWFyY2hfcGF0aF9zcGVjPWAk RUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAicy8kUEFUSF9TRVBBUkFUT1IvIC9n ImAKLSsgICAgOzsKLSsgIGVzYWMKLSsgICMgT2ssIG5vdyB3ZSBoYXZlIHRoZSBwYXRoLCBzZXBh cmF0ZWQgYnkgc3BhY2VzLCB3ZSBjYW4gc3RlcCB0aHJvdWdoIGl0Ci0rICAjIGFuZCBhZGQgbXVs dGlsaWIgZGlyIGlmIG5lY2Vzc2FyeS4KLSsgIGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPQot KyAgbHRfbXVsdGlfb3NfZGlyPWAkQ0MgJENQUEZMQUdTICRDRkxBR1MgJExERkxBR1MgLXByaW50 LW11bHRpLW9zLWRpcmVjdG9yeSAyPi9kZXYvbnVsbGAKLSsgIGZvciBsdF9zeXNfcGF0aCBpbiAk bHRfc2VhcmNoX3BhdGhfc3BlYzsgZG8KLSsgICAgaWYgdGVzdCAtZCAiJGx0X3N5c19wYXRoLyRs dF9tdWx0aV9vc19kaXIiOyB0aGVuCi0rICAgICAgbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWM9 IiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyAkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2Rp ciIKLSsgICAgZWxzZQotKyAgICAgIHRlc3QgLWQgIiRsdF9zeXNfcGF0aCIgJiYgXAotKwlsdF90 bXBfbHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9z eXNfcGF0aCIKLSsgICAgZmkKLSsgIGRvbmUKLSsgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hP ICIkbHRfdG1wX2x0X3NlYXJjaF9wYXRoX3NwZWMiIHwgYXdrICcKLStCRUdJTiB7UlM9IiAiOyBG Uz0iL3xcbiI7fSB7Ci0rICBsdF9mb289IiI7Ci0rICBsdF9jb3VudD0wOwotKyAgZm9yIChsdF9p ID0gTkY7IGx0X2kgPiAwOyBsdF9pLS0pIHsKLSsgICAgaWYgKCRsdF9pICE9ICIiICYmICRsdF9p ICE9ICIuIikgewotKyAgICAgIGlmICgkbHRfaSA9PSAiLi4iKSB7Ci0rICAgICAgICBsdF9jb3Vu dCsrOwotKyAgICAgIH0gZWxzZSB7Ci0rICAgICAgICBpZiAobHRfY291bnQgPT0gMCkgewotKyAg ICAgICAgICBsdF9mb289Ii8iICRsdF9pIGx0X2ZvbzsKLSsgICAgICAgIH0gZWxzZSB7Ci0rICAg ICAgICAgIGx0X2NvdW50LS07Ci0rICAgICAgICB9Ci0rICAgICAgfQotKyAgICB9Ci0rICB9Ci0r ICBpZiAobHRfZm9vICE9ICIiKSB7IGx0X2ZyZXFbW2x0X2Zvb11dKys7IH0KLSsgIGlmIChsdF9m cmVxW1tsdF9mb29dXSA9PSAxKSB7IHByaW50IGx0X2ZvbzsgfQotK30nYAotKyAgIyBBV0sgcHJv Z3JhbSBhYm92ZSBlcnJvbmVvdXNseSBwcmVwZW5kcyAnLycgdG8gQzovZG9zL3BhdGhzCi0rICAj IGZvciB0aGVzZSBob3N0cy4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgbWluZ3cqIHwgY2Vn Y2MqKSBsdF9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHxc Ci0rICAgICAgJFNFRCAncywvXChbW0EtWmEtel1dOlwpLFwxLGcnYCA7OwotKyAgZXNhYwotKyAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJGx0X3NlYXJjaF9wYXRoX3NwZWMiIHwg JGx0X05MMlNQYAotK2Vsc2UKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL2xpYiAvdXNy L2xpYiAvdXNyL2xvY2FsL2xpYiIKLStmaV0pCi0rbGlicmFyeV9uYW1lc19zcGVjPQotK2xpYm5h bWVfc3BlYz0nbGliJG5hbWUnCi0rc29uYW1lX3NwZWM9Ci0rc2hyZXh0X2NtZHM9Ii5zbyIKLStw b3N0aW5zdGFsbF9jbWRzPQotK3Bvc3R1bmluc3RhbGxfY21kcz0KLStmaW5pc2hfY21kcz0KLStm aW5pc2hfZXZhbD0KLStzaGxpYnBhdGhfdmFyPQotK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD11bmtub3duCi0rdmVyc2lvbl90eXBlPW5vbmUKLStkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3Mg bGQuc28iCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vzci9saWIiCi0rbmVl ZF9saWJfcHJlZml4PXVua25vd24KLStoYXJkY29kZV9pbnRvX2xpYnM9bm8KLSsKLSsjIHdoZW4g eW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBpdCBkb2VzIG5vdCBjYXVzZSAt c2V0X3ZlcnNpb24KLSsjIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1bWVudHMKLStuZWVk X3ZlcnNpb249dW5rbm93bgotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgzKikKLSsgIHZlcnNp b25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEnCi0rICBzaGxpYnBhdGhfdmFyPUxJ QlBBVEgKLSsKLSsgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9ydCwgc28gd2UgYXBw ZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICA7OwotKwotK2FpeFtbNC05XV0q KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRf dmVyc2lvbj1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVzdCAiJGhvc3Rf Y3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgIyBBSVggNSBzdXBwb3J0cyBJQTY0Ci0rICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJl ZF9leHR9JwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgZWxzZQotKyAg ICAjIFdpdGggR0NDIHVwIHRvIDIuOTUueCwgY29sbGVjdDIgd291bGQgY3JlYXRlIGFuIGltcG9y dCBmaWxlCi0rICAgICMgZm9yIGRlcGVuZGVuY2UgbGlicmFyaWVzLiAgVGhlIGltcG9ydCBmaWxl IHdvdWxkIHN0YXJ0IHdpdGgKLSsgICAgIyB0aGUgbGluZSBgIyEgLicuICBUaGlzIHdvdWxkIGNh dXNlIHRoZSBnZW5lcmF0ZWQgbGlicmFyeSB0bwotKyAgICAjIGRlcGVuZCBvbiBgLicsIGFsd2F5 cyBhbiBpbnZhbGlkIGxpYnJhcnkuICBUaGlzIHdhcyBmaXhlZCBpbgotKyAgICAjIGRldmVsb3Bt ZW50IHNuYXBzaG90cyBvZiBHQ0MgcHJpb3IgdG8gMy4wLgotKyAgICBjYXNlICRob3N0X29zIGlu Ci0rICAgICAgYWl4NCB8IGFpeDQuW1swMV1dIHwgYWl4NC5bWzAxXV0uKikKLSsgICAgICBpZiB7 IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIgJiYgX19HTlVDX01JTk9S X18gPj0gOTcpJwotKwkgICBlY2hvICcgeWVzICcKLSsJICAgZWNobyAnI2VuZGlmJzsgfSB8ICR7 Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KLSsJOgotKyAgICAgIGVsc2UK LSsJY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAgZXNhYwot KyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBzbyBjdXJy ZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0Ci0rICAgICMgc29uYW1lIGludG8gZXhl Y3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8KLSsgICAg IyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1dHVyZS4K LSsgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rICAg ICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVyKSB1c2Ug bGliPG5hbWU+LnNvCi0rICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxldCBwZW9w bGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKLSsgICAgICAjIHR5cGljYWwgQUlYIHNoYXJlZCBs aWJyYXJpZXMuCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIGVsc2UKLSsgICAgICAjIFdlIHBy ZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdoIEFJWDQu MgotKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGltZSBsaW5r aW5nLgotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0uYSAk bGlibmFtZS5hJwotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCi0rICAgIGZpCi0rICAgIHNobGlicGF0aF92YXI9TElCUEFUSAotKyAg ZmkKLSsgIDs7Ci0rCi0rYW1pZ2FvcyopCi0rICBjYXNlICRob3N0X2NwdSBpbgotKyAgcG93ZXJw YykKLSsgICAgIyBTaW5jZSBKdWx5IDIwMDcgQW1pZ2FPUzQgb2ZmaWNpYWxseSBzdXBwb3J0cyAu c28gbGlicmFyaWVzLgotKyAgICAjIFdoZW4gY29tcGlsaW5nIHRoZSBleGVjdXRhYmxlLCBhZGQg LXVzZS1keW5sZCAtTHNvYmpzOiB0byB0aGUgY29tcGlsZWxpbmUuCi0rICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9 JwotKyAgICA7OwotKyAgbTY4aykKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5p eGxpYnJhcnkgJGxpYm5hbWUuYScKLSsgICAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxpYnJhcnku YSBlbnRyaWVzIGluIC9zeXMvbGlicy4KLSsgICAgZmluaXNoX2V2YWw9J2ZvciBsaWIgaW4gYGxz ICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1lPWBmdW5jX2VjaG9f YWxsICIkbGliIiB8ICRTRUQgJ1wnJ3MlXi4qL1woW1teL11dKlwpXC5peGxpYnJhcnkkJVwxJSdc JydgOyB0ZXN0ICRSTSAvc3lzL2xpYnMvJHtsaWJuYW1lfV9peGxpYnJhcnkuYTsgJHNob3cgImNk IC9zeXMvbGlicyAmJiAkTE5fUyAkbGliICR7bGlibmFtZX1faXhsaWJyYXJ5LmEiOyBjZCAvc3lz L2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIHx8IGV4aXQgMTsgZG9u ZScKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rYmVvcyopCi0rICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGxkLnNvIgotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rYnNk aVtbNDVdXSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25m aWcgJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL1gxMS9saWIgL3Vzci9jb250 cmliL2xpYiAvbGliIC91c3IvbG9jYWwvbGliIgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3Nw ZWM9Ii9zaGxpYiAvdXNyL2xpYiAvdXNyL2xvY2FsL2xpYiIKLSsgICMgdGhlIGRlZmF1bHQgbGQu c28uY29uZiBhbHNvIGNvbnRhaW5zIC91c3IvY29udHJpYi9saWIgYW5kCi0rICAjIC91c3IvWDEx UjYvbGliICgvdXNyL1gxMSBpcyBhIGxpbmsgdG8gL3Vzci9YMTFSNiksIGJ1dCBsZXQgdXMgYWxs b3cKLSsgICMgbGlidG9vbCB0byBoYXJkLWNvZGUgdGhlc2UgaW50byBwcm9ncmFtcwotKyAgOzsK LSsKLStjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICB2ZXJzaW9uX3R5cGU9 d2luZG93cwotKyAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIG5l ZWRfbGliX3ByZWZpeD1ubwotKwotKyAgY2FzZSAkR0NDLCRjY19iYXNlbmFtZSBpbgotKyAgeWVz LCopCi0rICAgICMgZ2NjCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEn Ci0rICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0 YWxsX2NtZHMKLSsgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtm aWxlfWB+Ci0rICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHti YXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBkbGRpcj0kZGVzdGRp ci9gZGlybmFtZSBcJGRscGF0aGB+Ci0rICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1w IFwkZGxkaXJ+Ci0rICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxu YW1lfgotKyAgICAgIGNobW9kIGEreCBcJGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgaWYgdGVzdCAt biAnXCcnJHN0cmlwbWUnXCcnICYmIHRlc3QgLW4gJ1wnJyRzdHJpcGxpYidcJyc7IHRoZW4KLSsg ICAgICAgIGV2YWwgJ1wnJyRzdHJpcGxpYiBcJGRsZGlyLyRkbG5hbWUnXCcnIHx8IGV4aXQgXCQ/ OwotKyAgICAgIGZpJwotKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4m MSAtYyAnXCcnLiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRscGF0aD0kZGly L1wkZGxkbGx+Ci0rICAgICAgICRSTSBcJGRscGF0aCcKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcwotKwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGN5Z3dpbiopCi0r ICAgICAgIyBDeWd3aW4gRExMcyB1c2UgJ2N5ZycgcHJlZml4IHJhdGhlciB0aGFuICdsaWInCi0r ICAgICAgc29uYW1lX3NwZWM9J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9jeWcv J2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bWy5dXS8tL2cnYCR7dmVyc3VmZml4fSR7 c2hhcmVkX2V4dH0nCi0rbTRfaWYoWyQxXSwgW10sWwotKyAgICAgIHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNyL2xpYi93MzJhcGkiXSkKLSsg ICAgICA7OwotKyAgICBtaW5ndyogfCBjZWdjYyopCi0rICAgICAgIyBNaW5HVyBETExzIHVzZSB0 cmFkaXRpb25hbCAnbGliJyBwcmVmaXgKLSsgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBl Y2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFy ZWRfZXh0fScKLSsgICAgICA7OwotKyAgICBwdzMyKikKLSsgICAgICAjIHB3MzIgRExMcyB1c2Ug J3B3JyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 J2BlY2hvICR7bGlibmFtZX0gfCBzZWQgLWUgJ3MvXmxpYi9wdy8nYGBlY2hvICR7cmVsZWFzZX0g fCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAg ICA7OwotKyAgICBlc2FjCi0rICAgIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBsZC5leGUnCi0rICAg IDs7Ci0rCi0rICAqLGNsKikKLSsgICAgIyBOYXRpdmUgTVNWQwotKyAgICBsaWJuYW1lX3NwZWM9 JyRuYW1lJwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAk U0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9LmRsbC5saWInCi0rCi0rICAgIGNhc2UgJGJ1aWxk X29zIGluCi0rICAgIG1pbmd3KikKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ci0r ICAgICAgbHRfc2F2ZV9pZnM9JElGUwotKyAgICAgIElGUz0nOycKLSsgICAgICBmb3IgbHRfcGF0 aCBpbiAkTElCCi0rICAgICAgZG8KLSsgICAgICAgIElGUz0kbHRfc2F2ZV9pZnMKLSsgICAgICAg ICMgTGV0IERPUyB2YXJpYWJsZSBleHBhbnNpb24gcHJpbnQgdGhlIHNob3J0IDguMyBzdHlsZSBm aWxlIG5hbWUuCi0rICAgICAgICBsdF9wYXRoPWBjZCAiJGx0X3BhdGgiIDI+L2Rldi9udWxsICYm IGNtZCAvL0MgImZvciAlaSBpbiAoIi4iKSBkbyBAZWNobyAlfnNpImAKLSsgICAgICAgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAkbHRfcGF0aCIK LSsgICAgICBkb25lCi0rICAgICAgSUZTPSRsdF9zYXZlX2lmcwotKyAgICAgICMgQ29udmVydCB0 byBNU1lTIHN0eWxlLgotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgc2VkIC1lICdzfFxcXFx8L3xnJyAtZSAnc3wgXFwo W1thLXpBLVpdXVxcKTp8IC9cXDF8ZycgLWUgJ3N8XiB8fCdgCi0rICAgICAgOzsKLSsgICAgY3ln d2luKikKLSsgICAgICAjIENvbnZlcnQgdG8gdW5peCBmb3JtLCB0aGVuIHRvIGRvcyBmb3JtLCB0 aGVuIGJhY2sgdG8gdW5peCBmb3JtCi0rICAgICAgIyBidXQgdGhpcyB0aW1lIGRvcyBzdHlsZSAo bm8gc3BhY2VzISkgc28gdGhhdCB0aGUgdW5peCBmb3JtIGxvb2tzCi0rICAgICAgIyBsaWtlIC9j eWdkcml2ZS9jL1BST0dSQX4xOi9jeWdkci4uLgotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz1gY3lncGF0aCAtLXBhdGggLS11bml4ICIkTElCImAKLSsgICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9YGN5Z3BhdGggLS1wYXRoIC0tZG9zICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjIiAyPi9kZXYvbnVsbGAKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGN5Z3Bh dGggLS1wYXRoIC0tdW5peCAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICJz LyRQQVRIX1NFUEFSQVRPUi8gL2ciYAotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjPSIkTElCIgotKyAgICAgIGlmICRFQ0hPICIkc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjIiB8IFskR1JFUCAnO1tjLXpDLVpdOi8nID4vZGV2L251bGxdOyB0aGVuCi0r ICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dzIGZvcm1hdCBQQVRILgotKyAg ICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAiJHN5c19saWJfc2VhcmNoX3Bh dGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKLSsgICAgICBlbHNlCi0rICAgICAgICBzeXNf bGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8 ICRTRUQgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAgICAgZmkKLSsgICAgICAjIEZJ WE1FOiBmaW5kIHRoZSBzaG9ydCBuYW1lIG9yIHRoZSBwYXRoIGNvbXBvbmVudHMsIGFzIHNwYWNl cyBhcmUKLSsgICAgICAjIGNvbW1vbi4gKGUuZy4gIlByb2dyYW0gRmlsZXMiIC0+ICJQUk9HUkF+ MSIpCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIERMTCBpcyBpbnN0YWxsZWQgdG8g JChsaWJkaXIpLy4uL2JpbiBieSBwb3N0aW5zdGFsbF9jbWRzCi0rICAgIHBvc3RpbnN0YWxsX2Nt ZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgotKyAgICAgIGRscGF0aD1gJFNIRUxM IDI+JjEgLWMgJ1wnJy4gJGRpci8nXCcnXCR7YmFzZV9maWxlfSdcJydpOyBlY2hvIFwkZGxuYW1l J1wnJ2B+Ci0rICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUgXCRkbHBhdGhgfgotKyAgICAg IHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgotKyAgICAgICRpbnN0YWxsX3By b2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRsbmFtZScKLSsgICAgcG9zdHVuaW5zdGFsbF9jbWRz PSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVjaG8gXCRkbG5hbWUnXCcnYH4K LSsgICAgICBkbHBhdGg9JGRpci9cJGRsZGxsfgotKyAgICAgICAkUk0gXCRkbHBhdGgnCi0rICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgZHluYW1pY19saW5rZXI9J1dp bjMyIGxpbmsuZXhlJwotKyAgICA7OwotKwotKyAgKikKLSsgICAgIyBBc3N1bWUgTVNWQyB3cmFw cGVyCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0g fCAkU0VEIC1lICdzL1tbLl1dLy0vZydgJHt2ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFt ZS5saWInCi0rICAgIGR5bmFtaWNfbGlua2VyPSdXaW4zMiBsZC5leGUnCi0rICAgIDs7Ci0rICBl c2FjCi0rICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJlY3Rv cnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KLSsgIHNobGlicGF0aF92YXI9UEFUSAotKyAgOzsKLSsK LStkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGR5bGQi Ci0rICB2ZXJzaW9uX3R5cGU9ZGFyd2luCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRf dmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRzaGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0kc2hhcmVkX2V4dCcKLSsgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIHNobGlicGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgK LSsgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVsZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNo byAuZHlsaWJgJwotK200X2lmKFskMV0sIFtdLFsKLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvdXNyL2xvY2FsL2xpYiJdKQotKyAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9saWInCi0rICA7 OwotKwotK2RndXgqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9 bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICi0rICA7OwotKwotK2ZyZWVic2QxKikKLSsgIGR5bmFtaWNfbGlua2Vy PW5vCi0rICA7OwotKwotK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgICMgRHJhZ29uRmx5IGRv ZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcKLSsgICMgdmVy c2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgotKyAgaWYgdGVzdCAteCAvdXNyL2Jpbi9v Ympmb3JtYXQ7IHRoZW4KLSsgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3JtYXRgCi0rICBl bHNlCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgZnJlZWJzZFtbMTIzXV0qKSBvYmpmb3Jt YXQ9YW91dCA7OwotKyAgICAqKSBvYmpmb3JtYXQ9ZWxmIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0r ICB2ZXJzaW9uX3R5cGU9ZnJlZWJzZC0kb2JqZm9ybWF0Ci0rICBjYXNlICR2ZXJzaW9uX3R5cGUg aW4KLSsgICAgZnJlZWJzZC1lbGYqKQotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICAgIG5lZWRfdmVyc2lv bj1ubwotKyAgICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIDs7Ci0rICAgIGZyZWVic2Qt KikKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgICAg ICBuZWVkX3ZlcnNpb249eWVzCi0rICAgICAgOzsKLSsgIGVzYWMKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICi0rICBjYXNlICRob3N0X29zIGluCi0rICBmcmVlYnNkMiopCi0rICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgOzsKLSsgIGZyZWVic2QzLltb MDFdXSogfCBmcmVlYnNkZWxmMy5bWzAxXV0qKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGZyZWVi c2QzLltbMi05XV0qIHwgZnJlZWJzZGVsZjMuW1syLTldXSogfCBcCi0rICBmcmVlYnNkNC5bWzAt NV1dIHwgZnJlZWJzZGVsZjQuW1swLTVdXSB8IGZyZWVic2Q0LjEuMSB8IGZyZWVic2RlbGY0LjEu MSkKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKLSsgICAgOzsKLSsgICopICMgZnJvbSA0LjYgb24sIGFuZCBEcmFnb25GbHkK LSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK2dudSopCi0rICB2ZXJzaW9u X3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0r ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHttYWpvcn0gJHtsaWJu YW1lfSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raGFpa3UqKQotKyAgdmVyc2lvbl90 eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAg ZHluYW1pY19saW5rZXI9IiRob3N0X29zIHJ1bnRpbWVfbG9hZGVyIgotKyAgbGlicmFyeV9uYW1l c19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0ke3NoYXJlZF9l eHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKLSsgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9eWVzCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nL2Jvb3QvaG9t ZS9jb25maWcvbGliIC9ib290L2NvbW1vbi9saWIgL2Jvb3Qvc3lzdGVtL2xpYicKLSsgIGhhcmRj b2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0raHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSop Ci0rICAjIEdpdmUgYSBzb25hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgbWFqb3IgdmVyc2lvbiBz byB0aGF0IGRsZC5zbCByZWZ1c2VzIHRvCi0rICAjIGxpbmsgYWdhaW5zdCBvdGhlciB2ZXJzaW9u cy4KLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVk X3ZlcnNpb249bm8KLSsgIGNhc2UgJGhvc3RfY3B1IGluCi0rICBpYTY0KikKLSsgICAgc2hyZXh0 X2NtZHM9Jy5zbycKLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICBkeW5hbWljX2xp bmtlcj0iJGhvc3Rfb3MgZGxkLnNvIgotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFU SAotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZh ciBpcyBzcGVjaWZpZWQuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBpZiB0ZXN0ICJYJEhQ VVhfSUE2NF9NT0RFIiA9IFgzMjsgdGhlbgotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0iL3Vzci9saWIvaHB1eDMyIC91c3IvbG9jYWwvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYiIK LSsgICAgZWxzZQotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIvaHB1 eDY0IC91c3IvbG9jYWwvbGliL2hwdXg2NCIKLSsgICAgZmkKLSsgICAgc3lzX2xpYl9kbHNlYXJj aF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYwotKyAgICA7OwotKyAgaHBwYSo2 NCopCi0rICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK LSsgICAgZHluYW1pY19saW5rZXI9IiRob3N0X29zIGRsZC5zbCIKLSsgICAgc2hsaWJwYXRoX3Zh cj1MRF9MSUJSQVJZX1BBVEggIyBIb3cgc2hvdWxkIHdlIGhhbmRsZSBTSExJQl9QQVRICi0rICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNw ZWNpZmllZC4KLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhf c3BlYz0iL3Vzci9saWIvcGEyMF82NCAvdXNyL2Njcy9saWIvcGEyMF82NCIKLSsgICAgc3lzX2xp Yl9kbHNlYXJjaF9wYXRoX3NwZWM9JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYwotKyAgICA7Owot KyAgKikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbCcKLSsgICAgZHluYW1pY19saW5rZXI9IiRob3N0 X29zIGRsZC5zbCIKLSsgICAgc2hsaWJwYXRoX3Zhcj1TSExJQl9QQVRICi0rICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubyAjICtzIGlzIHJlcXVpcmVkIHRvIGVuYWJsZSBTSExJQl9Q QVRICi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICA7OwotKyAgZXNhYwotKyAgIyBIUC1VWCBy dW5zICpyZWFsbHkqIHNsb3dseSB1bmxlc3Mgc2hhcmVkIGxpYnJhcmllcyBhcmUgbW9kZSA1NTUs IC4uLgotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgNTU1ICRsaWInCi0rICAjIG9yIGZhaWxz IG91dHJpZ2h0LCBzbyBvdmVycmlkZSBhdG9taWNhbGx5OgotKyAgaW5zdGFsbF9vdmVycmlkZV9t b2RlPTU1NQotKyAgOzsKLSsKLStpbnRlcml4W1szLTldXSopCi0rICB2ZXJzaW9uX3R5cGU9bGlu dXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3NoYXJl ZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvcicKLSsgIGR5bmFtaWNfbGlua2VyPSdJbnRlcml4IDMueCBsZC5zby4xIChQRSwgbGlr ZSBFTEYpJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9v dmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsK LStpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAg ICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3RvcHV4IDs7Ci0rICAgICopCi0rCWlmIHRl c3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsJCXZlcnNpb25fdHlwZT1saW51 eAotKwllbHNlCi0rCQl2ZXJzaW9uX3R5cGU9aXJpeAotKwlmaSA7OwotKyAgZXNhYwotKyAgbmVl ZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBjYXNlICRob3N0X29zIGluCi0rICBp cml4NSogfCBub25zdG9wdXgqKQotKyAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9Ci0rICAgIDs7Ci0r ICAqKQotKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wubTQgd2lsbCBhZGQgb25lIG9mIHRoZXNl IHN3aXRjaGVzIHRvIExECi0rICAgICotMzJ8KiItMzIgInwqLW1lbGYzMmJzbWlwfCoiLW1lbGYz MmJzbWlwICIpCi0rICAgICAgbGlic3VmZj0gc2hsaWJzdWZmPSBsaWJtYWdpYz0zMi1iaXQ7Owot KyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBuMzJ8KiItbWVsZjMyYm1pcG4zMiAiKQot KyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBsaWJtYWdpYz1OMzI7OwotKyAgICAqLTY0 fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJtaXAgIikKLSsgICAgICBsaWJzdWZmPTY0 IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7OwotKyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1 ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxpYnN1ZmZ9X1BBVEgKLSsgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNy L2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vzci9sb2NhbC9saWIke2xpYnN1ZmZ9Igot KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHtsaWJzdWZmfSAvbGliJHts aWJzdWZmfSIKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rIyBObyBzaGFy ZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBhb3V0LCBvciBjb2ZmLgotK2xpbnV4Km9s ZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiopCi0rICBkeW5hbWljX2xpbmtlcj1ubwot KyAgOzsKLSsKLSsjIFRoaXMgbXVzdCBiZSBMaW51eCBFTEYuCi0rbGludXgqIHwgaypic2QqLWdu dSB8IGtvcGVuc29sYXJpcyotZ251KQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xp Yl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgZmlu aXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW4gJGxpYmRpcicKLSsgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9bm8KLSsKLSsgICMgU29tZSBiaW51dGlscyBsZCBhcmUgcGF0Y2hlZCB0byBzZXQgRFRfUlVO UEFUSAotKyAgQUNfQ0FDSEVfVkFMKFtsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGhd LAotKyAgICBbbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgIHNhdmVf TERGTEFHUz0kTERGTEFHUwotKyAgICBzYXZlX2xpYmRpcj0kbGliZGlyCi0rICAgIGV2YWwgImxp YmRpcj0vZm9vOyB3bD1cIiRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKVwiOyBc Ci0rCSBMREZMQUdTPVwiXCRMREZMQUdTICRfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWMsICQxKVwiIgotKyAgICBBQ19MSU5LX0lGRUxTRShbQUNfTEFOR19QUk9HUkFNKFtdLFtd KV0sCi0rICAgICAgW0FTX0lGKFsgKCRPQkpEVU1QIC1wIGNvbmZ0ZXN0JGFjX2V4ZWV4dCkgMj4v ZGV2L251bGwgfCBncmVwICJSVU5QQVRILiokbGliZGlyIiA+L2Rldi9udWxsXSwKLSsJIFtsdF9j dl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzXSldKQotKyAgICBMREZMQUdTPSRzYXZl X0xERkxBR1MKLSsgICAgbGliZGlyPSRzYXZlX2xpYmRpcgotKyAgICBdKQotKyAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPSRsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKLSsK LSsgICMgVGhpcyBpbXBsaWVzIG5vIGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxl LgotKyAgIyBTb21lIHJld29yayB3aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0 YWxsCi0rICAjIGJlZm9yZSB0aGlzIGNhbiBiZSBlbmFibGVkLgotKyAgaGFyZGNvZGVfaW50b19s aWJzPXllcwotKwotKyAgIyBBZGQgQUJJLXNwZWNpZmljIGRpcmVjdG9yaWVzIHRvIHRoZSBzeXN0 ZW0gbGlicmFyeSBwYXRoLgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAv dXNyL2xpYjY0IC9saWIgL3Vzci9saWIiCi0rCi0rICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRl bnRzIHRvIHRoZSBzZWFyY2ggcGF0aAotKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRo ZW4KLSsgICAgbHRfbGRfZXh0cmE9YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50Zigi Y2QgL2V0YzsgY2F0ICVzIDI+L2Rldi9udWxsIiwgXFskXTIpKTsgc2tpcCA9IDE7IH0geyBpZiAo IXNraXApIHByaW50IFxbJF0wOyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VE IC1lICdzLyMuKi8vOy9eWwkgXSpod2NhcFsJIF0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztz Lz1bXj0gXSogLyAvZztzLyIvL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCi0rICAgIHN5c19saWJf ZGxzZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4 dHJhIgotKwotKyAgZmkKLSsKLSsgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEg YW5kIGRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyBvbgotKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1r TGludXggb25seSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQotKyAgIyBHTlUg ZHluYW1pYyBsaW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxl cnMsCi0rICAjIG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2lu ZyB0aGVzZSBkYXlzIGFuZAotKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVk LCB0aGUgdGVzdCB3YXMgcmVtb3ZlZCwgYW5kIHdlCi0rICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4 IGR5bmFtaWMgbGlua2VyIGlzIGluIHVzZS4KLSsgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXgg bGQuc28nCi0rICA7OwotKwotK25ldGJzZCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIG5l ZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBpZiBlY2hvIF9fRUxGX18g fCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKyAgICBsaWJyYXJ5 X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgg JHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICBmaW5pc2hfY21kcz0nUEFU SD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgICBkeW5hbWljX2xpbmtl cj0nTmV0QlNEIChhLm91dCkgbGQuc28nCi0rICBlbHNlCi0rICAgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0r ICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJwotKyAgZmkKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9 eWVzCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK25ld3NvczYpCi0rICB2 ZXJzaW9uX3R5cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVk X2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9M SUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIDs7Ci0r Ci0rKm50byogfCAqcW54KikKLSsgIHZlcnNpb25fdHlwZT1xbngKLSsgIG5lZWRfbGliX3ByZWZp eD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0r ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICBkeW5hbWljX2xpbmtlcj0nbGRxbnguc28nCi0r ICA7OwotKwotK29wZW5ic2QqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBzeXNfbGliX2Rs c2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIiCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICMg U29tZSBvbGRlciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2 ZXJzaW9uZWQgbGlicy4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgb3BlbmJzZDMuMyB8IG9w ZW5ic2QzLjMuKikJbmVlZF92ZXJzaW9uPXllcyA7OwotKyAgICAqKQkJCQluZWVkX3ZlcnNpb249 bm8gIDs7Ci0rICBlc2FjCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxp YmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBpZiB0ZXN0IC16ICJg ZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rf b3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsgICAgICBvcGVuYnNkMi5bWzg5XV0gfCBvcGVuYnNkMi5bWzg5XV0uKikKLSsJ c2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rCTs7Ci0rICAgICAgKikKLSsJc2hsaWJw YXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKwk7OwotKyAgICAgIGVzYWMKLSsgIGVsc2UKLSsg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgZmkKLSsgIDs7Ci0rCi0rb3My KikKLSsgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCi0rICBzaHJleHRfY21kcz0iLmRsbCIKLSsgIG5l ZWRfbGliX3ByZWZpeD1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVk X2V4dH0gJGxpYm5hbWUuYScKLSsgIGR5bmFtaWNfbGlua2VyPSdPUy8yIGxkLmV4ZScKLSsgIHNo bGlicGF0aF92YXI9TElCUEFUSAotKyAgOzsKLSsKLStvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0r ICB2ZXJzaW9uX3R5cGU9b3NmCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lv bj1ubwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvcicKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK LSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9zaGxpYiAvdXNyL2Njcy9saWIgL3Vz ci9saWIvY21wbHJzL2NjIC91c3IvbGliIC91c3IvbG9jYWwvbGliIC92YXIvc2hsaWIiCi0rICBz eXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLSsg IDs7Ci0rCi0rcmRvcyopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStzb2xhcmlz KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVk X3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCi0rICAjIGxkZCBjb21wbGFpbnMgdW5sZXNzIGxpYnJhcmllcyBhcmUgZXhl Y3V0YWJsZQotKyAgcG9zdGluc3RhbGxfY21kcz0nY2htb2QgK3ggJGxpYicKLSsgIDs7Ci0rCi0r c3Vub3M0KikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCcKLSsgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3Vzci9l dGMiIGxkY29uZmlnICRsaWJkaXInCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAot KyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaWYgdGVzdCAiJHdpdGhfZ251 X2xkIiA9IHllczsgdGhlbgotKyAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIGZpCi0rICBuZWVk X3ZlcnNpb249eWVzCi0rICA7OwotKwotK3N5c3Y0IHwgc3lzdjQuMyopCi0rICB2ZXJzaW9uX3R5 cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9Q QVRICi0rICBjYXNlICRob3N0X3ZlbmRvciBpbgotKyAgICBzbmkpCi0rICAgICAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICAgICAgbmVlZF9saWJfcHJlZml4PW5vCi0rICAgICAg cnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsgICAgICA7OwotKyAgICBzaWVtZW5zKQotKyAgICAg IG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIDs7Ci0rICAgIG1vdG9yb2xhKQotKyAgICAgIG5l ZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIG5lZWRfdmVyc2lvbj1ubwotKyAgICAgIHNobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0n L2xpYiAvdXNyL2xpYiAvdXNyL2Njcy9saWInCi0rICAgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0r Ci0rc3lzdjQqTVAqKQotKyAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgotKyAgICB2ZXJzaW9u X3R5cGU9bGludXgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSR7c2hhcmVkX2V4 dH0uJHZlcnN1ZmZpeCAkbGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yICRsaWJuYW1lJHtzaGFy ZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3In Ci0rICAgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBmaQotKyAgOzsKLSsKLStz eXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lz djQqdXcyKikKLSsgIHZlcnNpb25fdHlwZT1mcmVlYnNkLWVsZgotKyAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0gJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGli bmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVu Ci0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9sb2NhbC9saWIgL3Vzci9nbnUv bGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYiAvbGliJwotKyAgZWxzZQotKyAgICBzeXNfbGliX3Nl YXJjaF9wYXRoX3NwZWM9Jy91c3IvY2NzL2xpYiAvdXNyL2xpYicKLSsgICAgY2FzZSAkaG9zdF9v cyBpbgotKyAgICAgIHNjbzMuMnY1KikKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0iJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyAvbGliIgotKwk7OwotKyAgICBlc2FjCi0rICBm aQotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbGliJwotKyAgOzsKLSsKLSt0 cGYqKQotKyAgIyBUUEYgaXMgYSBjcm9zcy10YXJnZXQgb25seS4gIFByZWZlcnJlZCBjcm9zcy1o b3N0ID0gR05VL0xpbnV4LgotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVm aXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzaGxpYnBhdGhf dmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0r ICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK3V0czQqKQotKyAgdmVyc2lvbl90 eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1h am9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllf UEFUSAotKyAgOzsKLSsKLSsqKQotKyAgZHluYW1pY19saW5rZXI9bm8KLSsgIDs7Ci0rZXNhYwot K0FDX01TR19SRVNVTFQoWyRkeW5hbWljX2xpbmtlcl0pCi0rdGVzdCAiJGR5bmFtaWNfbGlua2Vy IiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLSt2YXJpYWJsZXNfc2F2ZWRfZm9yX3Jl bGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCi0raWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KLSsgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVzX3Nh dmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9QQVRI IgotK2ZpCi0rCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMrc2V0 fSIgPSBzZXQ7IHRoZW4KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5c19s aWJfc2VhcmNoX3BhdGhfc3BlYyIKLStmaQotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9kbHNl YXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCi0rZmkKLSsKLStfTFRf REVDTChbXSwgW3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rXSwgWzFdLAotKyAgICBbVmFyaWFi bGVzIHdob3NlIHZhbHVlcyBzaG91bGQgYmUgc2F2ZWQgaW4gbGlidG9vbCB3cmFwcGVyIHNjcmlw dHMgYW5kCi0rICAgIHJlc3RvcmVkIGF0IGxpbmsgdGltZV0pCi0rX0xUX0RFQ0woW10sIFtuZWVk X2xpYl9wcmVmaXhdLCBbMF0sCi0rICAgIFtEbyB3ZSBuZWVkIHRoZSAibGliIiBwcmVmaXggZm9y IG1vZHVsZXM/XSkKLStfTFRfREVDTChbXSwgW25lZWRfdmVyc2lvbl0sIFswXSwgW0RvIHdlIG5l ZWQgYSB2ZXJzaW9uIGZvciBsaWJyYXJpZXM/XSkKLStfTFRfREVDTChbXSwgW3ZlcnNpb25fdHlw ZV0sIFswXSwgW0xpYnJhcnkgdmVyc2lvbmluZyB0eXBlXSkKLStfTFRfREVDTChbXSwgW3J1bnBh dGhfdmFyXSwgWzBdLCAgW1NoYXJlZCBsaWJyYXJ5IHJ1bnRpbWUgcGF0aCB2YXJpYWJsZV0pCi0r X0xUX0RFQ0woW10sIFtzaGxpYnBhdGhfdmFyXSwgWzBdLFtTaGFyZWQgbGlicmFyeSBwYXRoIHZh cmlhYmxlXSkKLStfTFRfREVDTChbXSwgW3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aF0sIFsw XSwKLSsgICAgW0lzIHNobGlicGF0aCBzZWFyY2hlZCBiZWZvcmUgdGhlIGhhcmQtY29kZWQgbGli cmFyeSBzZWFyY2ggcGF0aD9dKQotK19MVF9ERUNMKFtdLCBbbGlibmFtZV9zcGVjXSwgWzFdLCBb Rm9ybWF0IG9mIGxpYnJhcnkgbmFtZSBwcmVmaXhdKQotK19MVF9ERUNMKFtdLCBbbGlicmFyeV9u YW1lc19zcGVjXSwgWzFdLAotKyAgICBbW0xpc3Qgb2YgYXJjaGl2ZSBuYW1lcy4gIEZpcnN0IG5h bWUgaXMgdGhlIHJlYWwgb25lLCB0aGUgcmVzdCBhcmUgbGlua3MuCi0rICAgIFRoZSBsYXN0IG5h bWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMgd2l0aCAtbE5BTUVdXSkKLStfTFRf REVDTChbXSwgW3NvbmFtZV9zcGVjXSwgWzFdLAotKyAgICBbW1RoZSBjb2RlZCBuYW1lIG9mIHRo ZSBsaWJyYXJ5LCBpZiBkaWZmZXJlbnQgZnJvbSB0aGUgcmVhbCBuYW1lXV0pCi0rX0xUX0RFQ0wo W10sIFtpbnN0YWxsX292ZXJyaWRlX21vZGVdLCBbMV0sCi0rICAgIFtQZXJtaXNzaW9uIG1vZGUg b3ZlcnJpZGUgZm9yIGluc3RhbGxhdGlvbiBvZiBzaGFyZWQgbGlicmFyaWVzXSkKLStfTFRfREVD TChbXSwgW3Bvc3RpbnN0YWxsX2NtZHNdLCBbMl0sCi0rICAgIFtDb21tYW5kIHRvIHVzZSBhZnRl ciBpbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZV0pCi0rX0xUX0RFQ0woW10sIFtwb3N0 dW5pbnN0YWxsX2NtZHNdLCBbMl0sCi0rICAgIFtDb21tYW5kIHRvIHVzZSBhZnRlciB1bmluc3Rh bGxhdGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlXSkKLStfTFRfREVDTChbXSwgW2ZpbmlzaF9jbWRz XSwgWzJdLAotKyAgICBbQ29tbWFuZHMgdXNlZCB0byBmaW5pc2ggYSBsaWJ0b29sIGxpYnJhcnkg aW5zdGFsbGF0aW9uIGluIGEgZGlyZWN0b3J5XSkKLStfTFRfREVDTChbXSwgW2ZpbmlzaF9ldmFs XSwgWzFdLAotKyAgICBbW0FzICJmaW5pc2hfY21kcyIsIGV4Y2VwdCBhIHNpbmdsZSBzY3JpcHQg ZnJhZ21lbnQgdG8gYmUgZXZhbGVkIGJ1dAotKyAgICBub3Qgc2hvd25dXSkKLStfTFRfREVDTChb XSwgW2hhcmRjb2RlX2ludG9fbGlic10sIFswXSwKLSsgICAgW1doZXRoZXIgd2Ugc2hvdWxkIGhh cmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBsaWJyYXJpZXNdKQotK19MVF9ERUNMKFtdLCBbc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjXSwgWzJdLAotKyAgICBbQ29tcGlsZS10aW1lIHN5c3RlbSBz ZWFyY2ggcGF0aCBmb3IgbGlicmFyaWVzXSkKLStfTFRfREVDTChbXSwgW3N5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjXSwgWzJdLAotKyAgICBbUnVuLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZv ciBsaWJyYXJpZXNdKQotK10pIyBfTFRfU1lTX0RZTkFNSUNfTElOS0VSCi0rCi0rCi0rIyBfTFRf UEFUSF9UT09MX1BSRUZJWChUT09MKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsj IGZpbmQgYSBmaWxlIHByb2dyYW0gd2hpY2ggY2FuIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyeQot K0FDX0RFRlVOKFtfTFRfUEFUSF9UT09MX1BSRUZJWF0sCi0rW200X3JlcXVpcmUoW19MVF9ERUNM X0VHUkVQXSlkbmwKLStBQ19NU0dfQ0hFQ0tJTkcoW2ZvciAkMV0pCi0rQUNfQ0FDSEVfVkFMKGx0 X2N2X3BhdGhfTUFHSUNfQ01ELAotK1tjYXNlICRNQUdJQ19DTUQgaW4KLStbW1xcLypdIHwgID86 W1xcL10qXSkKLSsgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUg dXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRoIGEgcGF0aC4KLSsgIDs7Ci0rKikKLSsgIGx0X3Nh dmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIgotKyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZG5sICRhY19kdW1teSBmb3JjZXMgc3BsaXR0aW5nIG9uIGNvbnN0YW50 IHVzZXItc3VwcGxpZWQgcGF0aHMuCi0rZG5sIFBPU0lYLjIgd29yZCBzcGxpdHRpbmcgaXMgZG9u ZSBvbmx5IG9uIHRoZSBvdXRwdXQgb2Ygd29yZCBleHBhbnNpb25zLAotK2RubCBub3QgZXZlcnkg d29yZC4gIFRoaXMgY2xvc2VzIGEgbG9uZ3N0YW5kaW5nIHNoIHNlY3VyaXR5IGhvbGUuCi0rICBh Y19kdW1teT0ibTRfaWYoWyQyXSwgLCAkUEFUSCwgWyQyXSkiCi0rICBmb3IgYWNfZGlyIGluICRh Y19kdW1teTsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3QgLXogIiRhY19k aXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgJGFjX2Rpci8kMTsgdGhlbgotKyAgICAg IGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNfZGlyLyQxIgotKyAgICAgIGlmIHRlc3QgLW4gIiRm aWxlX21hZ2ljX3Rlc3RfZmlsZSI7IHRoZW4KLSsJY2FzZSAkZGVwbGlic19jaGVja19tZXRob2Qg aW4KLSsJImZpbGVfbWFnaWMgIiopCi0rCSAgZmlsZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxp YnNfY2hlY2tfbWV0aG9kIiA6ICJmaWxlX21hZ2ljIFwoLipcKSJgCi0rCSAgTUFHSUNfQ01EPSIk bHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0rCSAgaWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCRmaWxl X21hZ2ljX3Rlc3RfZmlsZSAyPiAvZGV2L251bGwgfAotKwkgICAgJEVHUkVQICIkZmlsZV9tYWdp Y19yZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgIDoKLSsJICBlbHNlCi0rCSAgICBjYXQg PDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogdGhlIGNvbW1hbmQgbGlidG9vbCB1c2Vz IHRvIGRldGVjdCBzaGFyZWQgbGlicmFyaWVzLAotKyoqKiAkZmlsZV9tYWdpY19jbWQsIHByb2R1 Y2VzIG91dHB1dCB0aGF0IGxpYnRvb2wgY2Fubm90IHJlY29nbml6ZS4KLSsqKiogVGhlIHJlc3Vs dCBpcyB0aGF0IGxpYnRvb2wgbWF5IGZhaWwgdG8gcmVjb2duaXplIHNoYXJlZCBsaWJyYXJpZXMK LSsqKiogYXMgc3VjaC4gIFRoaXMgd2lsbCBhZmZlY3QgdGhlIGNyZWF0aW9uIG9mIGxpYnRvb2wg bGlicmFyaWVzIHRoYXQKLSsqKiogZGVwZW5kIG9uIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dCBwcm9n cmFtcyBsaW5rZWQgd2l0aCBzdWNoIGxpYnRvb2wKLSsqKiogbGlicmFyaWVzIHdpbGwgd29yayBy ZWdhcmRsZXNzIG9mIHRoaXMgcHJvYmxlbS4gIE5ldmVydGhlbGVzcywgeW91Ci0rKioqIG1heSB3 YW50IHRvIHJlcG9ydCB0aGUgcHJvYmxlbSB0byB5b3VyIHN5c3RlbSBtYW5hZ2VyIGFuZC9vciB0 bwotKyoqKiBidWctbGlidG9vbEBnbnUub3JnCi0rCi0rX0xUX0VPRgotKwkgIGZpIDs7Ci0rCWVz YWMKLSsgICAgICBmaQotKyAgICAgIGJyZWFrCi0rICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRs dF9zYXZlX2lmcyIKLSsgIE1BR0lDX0NNRD0iJGx0X3NhdmVfTUFHSUNfQ01EIgotKyAgOzsKLStl c2FjXSkKLStNQUdJQ19DTUQ9IiRsdF9jdl9wYXRoX01BR0lDX0NNRCIKLStpZiB0ZXN0IC1uICIk TUFHSUNfQ01EIjsgdGhlbgotKyAgQUNfTVNHX1JFU1VMVCgkTUFHSUNfQ01EKQotK2Vsc2UKLSsg IEFDX01TR19SRVNVTFQobm8pCi0rZmkKLStfTFRfREVDTChbXSwgW01BR0lDX0NNRF0sIFswXSwK LSsJIFtVc2VkIHRvIGV4YW1pbmUgbGlicmFyaWVzIHdoZW4gZmlsZV9tYWdpY19jbWQgYmVnaW5z IHdpdGggImZpbGUiXSlkbmwKLStdKSMgX0xUX1BBVEhfVE9PTF9QUkVGSVgKLSsKLSsjIE9sZCBu YW1lOgotK0FVX0FMSUFTKFtBQ19QQVRIX1RPT0xfUFJFRklYXSwgW19MVF9QQVRIX1RPT0xfUFJF RklYXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFD X0RFRlVOKFtBQ19QQVRIX1RPT0xfUFJFRklYXSwgW10pCi0rCi0rCi0rIyBfTFRfUEFUSF9NQUdJ QwotKyMgLS0tLS0tLS0tLS0tLS0KLSsjIGZpbmQgYSBmaWxlIHByb2dyYW0gd2hpY2ggY2FuIHJl Y29nbml6ZSBhIHNoYXJlZCBsaWJyYXJ5Ci0rbTRfZGVmdW4oW19MVF9QQVRIX01BR0lDXSwKLStb X0xUX1BBVEhfVE9PTF9QUkVGSVgoJHthY190b29sX3ByZWZpeH1maWxlLCAvdXNyL2JpbiRQQVRI X1NFUEFSQVRPUiRQQVRIKQotK2lmIHRlc3QgLXogIiRsdF9jdl9wYXRoX01BR0lDX0NNRCI7IHRo ZW4KLSsgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICAgX0xUX1BBVEhf VE9PTF9QUkVGSVgoZmlsZSwgL3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCkKLSsgIGVsc2UK LSsgICAgTUFHSUNfQ01EPToKLSsgIGZpCi0rZmkKLStdKSMgX0xUX1BBVEhfTUFHSUMKLSsKLSsK LSsjIExUX1BBVEhfTEQKLSsjIC0tLS0tLS0tLS0KLSsjIGZpbmQgdGhlIHBhdGhuYW1lIHRvIHRo ZSBHTlUgb3Igbm9uLUdOVSBsaW5rZXIKLStBQ19ERUZVTihbTFRfUEFUSF9MRF0sCi0rW0FDX1JF UVVJUkUoW0FDX1BST0dfQ0NdKWRubAotK0FDX1JFUVVJUkUoW0FDX0NBTk9OSUNBTF9IT1NUXSlk bmwKLStBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRubAotK200X3JlcXVpcmUoW19M VF9ERUNMX1NFRF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAotK200X3Jl cXVpcmUoW19MVF9QUk9HX0VDSE9fQkFDS1NMQVNIXSlkbmwKLSsKLStBQ19BUkdfV0lUSChbZ251 LWxkXSwKLSsgICAgW0FTX0hFTFBfU1RSSU5HKFstLXdpdGgtZ251LWxkXSwKLSsJW2Fzc3VtZSB0 aGUgQyBjb21waWxlciB1c2VzIEdOVSBsZCBAPDpAZGVmYXVsdD1ub0A6PkBdKV0sCi0rICAgIFt0 ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXNdLAotKyAgICBbd2l0aF9nbnVf bGQ9bm9dKWRubAotKwotK2FjX3Byb2c9bGQKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgot KyAgIyBDaGVjayBpZiBnY2MgLXByaW50LXByb2ctbmFtZT1sZCBnaXZlcyBhIHBhdGguCi0rICBB Q19NU0dfQ0hFQ0tJTkcoW2ZvciBsZCB1c2VkIGJ5ICRDQ10pCi0rICBjYXNlICRob3N0IGluCi0r ICAqLSotbWluZ3cqKQotKyAgICAjIGdjYyBsZWF2ZXMgYSB0cmFpbGluZyBjYXJyaWFnZSByZXR1 cm4gd2hpY2ggdXBzZXRzIG1pbmd3Ci0rICAgIGFjX3Byb2c9YCgkQ0MgLXByaW50LXByb2ctbmFt ZT1sZCkgMj4mNSB8IHRyIC1kICdcMDE1J2AgOzsKLSsgICopCi0rICAgIGFjX3Byb2c9YCgkQ0Mg LXByaW50LXByb2ctbmFtZT1sZCkgMj4mNWAgOzsKLSsgIGVzYWMKLSsgIGNhc2UgJGFjX3Byb2cg aW4KLSsgICAgIyBBY2NlcHQgYWJzb2x1dGUgcGF0aHMuCi0rICAgIFtbXFwvXV0qIHwgPzpbW1xc L11dKikKLSsgICAgICByZV9kaXJlbHQ9Jy9bW14vXV1bW14vXV0qL1wuXC4vJwotKyAgICAgICMg Q2Fub25pY2FsaXplIHRoZSBwYXRobmFtZSBvZiBsZAotKyAgICAgIGFjX3Byb2c9YCRFQ0hPICIk YWNfcHJvZyJ8ICRTRUQgJ3MlXFxcXCUvJWcnYAotKyAgICAgIHdoaWxlICRFQ0hPICIkYWNfcHJv ZyIgfCAkR1JFUCAiJHJlX2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KLSsJYWNfcHJvZz1g JEVDSE8gJGFjX3Byb2d8ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJgCi0rICAgICAgZG9uZQotKyAg ICAgIHRlc3QgLXogIiRMRCIgJiYgTEQ9IiRhY19wcm9nIgotKyAgICAgIDs7Ci0rICAiIikKLSsg ICAgIyBJZiBpdCBmYWlscywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCi0rICAg IGFjX3Byb2c9bGQKLSsgICAgOzsKLSsgICopCi0rICAgICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRo ZW4gc2VhcmNoIGZvciB0aGUgZmlyc3QgbGQgaW4gUEFUSC4KLSsgICAgd2l0aF9nbnVfbGQ9dW5r bm93bgotKyAgICA7OwotKyAgZXNhYwotK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsg dGhlbgotKyAgQUNfTVNHX0NIRUNLSU5HKFtmb3IgR05VIGxkXSkKLStlbHNlCi0rICBBQ19NU0df Q0hFQ0tJTkcoW2ZvciBub24tR05VIGxkXSkKLStmaQotK0FDX0NBQ0hFX1ZBTChsdF9jdl9wYXRo X0xELAotK1tpZiB0ZXN0IC16ICIkTEQiOyB0aGVuCi0rICBsdF9zYXZlX2lmcz0iJElGUyI7IElG Uz0kUEFUSF9TRVBBUkFUT1IKLSsgIGZvciBhY19kaXIgaW4gJFBBVEg7IGRvCi0rICAgIElGUz0i JGx0X3NhdmVfaWZzIgotKyAgICB0ZXN0IC16ICIkYWNfZGlyIiAmJiBhY19kaXI9LgotKyAgICBp ZiB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9nIiB8fCB0ZXN0IC1mICIkYWNfZGlyLyRhY19wcm9n JGFjX2V4ZWV4dCI7IHRoZW4KLSsgICAgICBsdF9jdl9wYXRoX0xEPSIkYWNfZGlyLyRhY19wcm9n IgotKyAgICAgICMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBwcm9ncmFtIGlzIEdOVSBsZC4gIEknZCBy YXRoZXIgdXNlIC0tdmVyc2lvbiwKLSsgICAgICAjIGJ1dCBhcHBhcmVudGx5IHNvbWUgdmFyaWFu dHMgb2YgR05VIGxkIG9ubHkgYWNjZXB0IC12LgotKyAgICAgICMgQnJlYWsgb25seSBpZiBpdCB3 YXMgdGhlIEdOVS9ub24tR05VIGxkIHRoYXQgd2UgcHJlZmVyLgotKyAgICAgIGNhc2UgYCIkbHRf Y3ZfcGF0aF9MRCIgLXYgMj4mMSA8L2Rldi9udWxsYCBpbgotKyAgICAgICpHTlUqIHwgKid3aXRo IEJGRCcqKQotKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9IG5vICYmIGJyZWFrCi0rCTs7Ci0rICAg ICAgKikKLSsJdGVzdCAiJHdpdGhfZ251X2xkIiAhPSB5ZXMgJiYgYnJlYWsKLSsJOzsKLSsgICAg ICBlc2FjCi0rICAgIGZpCi0rICBkb25lCi0rICBJRlM9IiRsdF9zYXZlX2lmcyIKLStlbHNlCi0r ICBsdF9jdl9wYXRoX0xEPSIkTEQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0IHdp dGggYSBwYXRoLgotK2ZpXSkKLStMRD0iJGx0X2N2X3BhdGhfTEQiCi0raWYgdGVzdCAtbiAiJExE IjsgdGhlbgotKyAgQUNfTVNHX1JFU1VMVCgkTEQpCi0rZWxzZQotKyAgQUNfTVNHX1JFU1VMVChu bykKLStmaQotK3Rlc3QgLXogIiRMRCIgJiYgQUNfTVNHX0VSUk9SKFtubyBhY2NlcHRhYmxlIGxk IGZvdW5kIGluIFwkUEFUSF0pCi0rX0xUX1BBVEhfTERfR05VCi0rQUNfU1VCU1QoW0xEXSkKLSsK LStfTFRfVEFHREVDTChbXSwgW0xEXSwgWzFdLCBbVGhlIGxpbmtlciB1c2VkIHRvIGJ1aWxkIGxp YnJhcmllc10pCi0rXSkjIExUX1BBVEhfTEQKLSsKLSsjIE9sZCBuYW1lczoKLStBVV9BTElBUyhb QU1fUFJPR19MRF0sIFtMVF9QQVRIX0xEXSkKLStBVV9BTElBUyhbQUNfUFJPR19MRF0sIFtMVF9Q QVRIX0xEXSkKLStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5s IEFDX0RFRlVOKFtBTV9QUk9HX0xEXSwgW10pCi0rZG5sIEFDX0RFRlVOKFtBQ19QUk9HX0xEXSwg W10pCi0rCi0rCi0rIyBfTFRfUEFUSF9MRF9HTlUKLSsjLSAtLS0tLS0tLS0tLS0tLQotK200X2Rl ZnVuKFtfTFRfUEFUSF9MRF9HTlVdLAotK1tBQ19DQUNIRV9DSEVDSyhbaWYgdGhlIGxpbmtlciAo JExEKSBpcyBHTlUgbGRdLCBsdF9jdl9wcm9nX2dudV9sZCwKLStbIyBJJ2QgcmF0aGVyIHVzZSAt LXZlcnNpb24gaGVyZSwgYnV0IGFwcGFyZW50bHkgc29tZSBHTlUgbGRzIG9ubHkgYWNjZXB0IC12 LgotK2Nhc2UgYCRMRCAtdiAyPiYxIDwvZGV2L251bGxgIGluCi0rKkdOVSogfCAqJ3dpdGggQkZE JyopCi0rICBsdF9jdl9wcm9nX2dudV9sZD15ZXMKLSsgIDs7Ci0rKikKLSsgIGx0X2N2X3Byb2df Z251X2xkPW5vCi0rICA7OwotK2VzYWNdKQotK3dpdGhfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9s ZAotK10pIyBfTFRfUEFUSF9MRF9HTlUKLSsKLSsKLSsjIF9MVF9DTURfUkVMT0FECi0rIyAtLS0t LS0tLS0tLS0tLQotKyMgZmluZCByZWxvYWQgZmxhZyBmb3IgbGlua2VyCi0rIyAgIC0tIFBPUlRN RSBTb21lIGxpbmtlcnMgbWF5IG5lZWQgYSBkaWZmZXJlbnQgcmVsb2FkIGZsYWcuCi0rbTRfZGVm dW4oW19MVF9DTURfUkVMT0FEXSwKLStbQUNfQ0FDSEVfQ0hFQ0soW2ZvciAkTEQgb3B0aW9uIHRv IHJlbG9hZCBvYmplY3QgZmlsZXNdLAotKyAgbHRfY3ZfbGRfcmVsb2FkX2ZsYWcsCi0rICBbbHRf Y3ZfbGRfcmVsb2FkX2ZsYWc9Jy1yJ10pCi0rcmVsb2FkX2ZsYWc9JGx0X2N2X2xkX3JlbG9hZF9m bGFnCi0rY2FzZSAkcmVsb2FkX2ZsYWcgaW4KLSsiIiB8ICIgIiopIDs7Ci0rKikgcmVsb2FkX2Zs YWc9IiAkcmVsb2FkX2ZsYWciIDs7Ci0rZXNhYwotK3JlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2Zs YWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKLStjYXNlICRob3N0X29zIGluCi0rICBjeWd3aW4q IHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgIGlmIHRlc3QgIiRHQ0MiICE9IHllczsg dGhlbgotKyAgICAgIHJlbG9hZF9jbWRzPWZhbHNlCi0rICAgIGZpCi0rICAgIDs7Ci0rICBkYXJ3 aW4qKQotKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICAgIHJlbG9hZF9jbWRz PSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8gJG91dHB1dCRyZWxvYWRfb2Jq cycKLSsgICAgZWxzZQotKyAgICAgIHJlbG9hZF9jbWRzPSckTEQkcmVsb2FkX2ZsYWcgLW8gJG91 dHB1dCRyZWxvYWRfb2JqcycKLSsgICAgZmkKLSsgICAgOzsKLStlc2FjCi0rX0xUX1RBR0RFQ0wo W10sIFtyZWxvYWRfZmxhZ10sIFsxXSwgW0hvdyB0byBjcmVhdGUgcmVsb2FkYWJsZSBvYmplY3Qg ZmlsZXNdKWRubAotK19MVF9UQUdERUNMKFtdLCBbcmVsb2FkX2NtZHNdLCBbMl0pZG5sCi0rXSkj IF9MVF9DTURfUkVMT0FECi0rCi0rCi0rIyBfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9ECi0rIyAtLS0t LS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBob3cgdG8gY2hlY2sgZm9yIGxpYnJhcnkgZGVwZW5kZW5j aWVzCi0rIyAgLS0gUE9SVE1FIGZpbGwgaW4gd2l0aCB0aGUgZHluYW1pYyBsaWJyYXJ5IGNoYXJh Y3RlcmlzdGljcwotK200X2RlZnVuKFtfTFRfQ0hFQ0tfTUFHSUNfTUVUSE9EXSwKLStbbTRfcmVx dWlyZShbX0xUX0RFQ0xfRUdSRVBdKQotK200X3JlcXVpcmUoW19MVF9ERUNMX09CSkRVTVBdKQot K0FDX0NBQ0hFX0NIRUNLKFtob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJpZXNdLAot K2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kLAotK1tsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE1B R0lDX0NNRCcKLStsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT0KLStsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD0ndW5rbm93bicKLSsjIE5lZWQgdG8gc2V0IHRoZSBwcmVjZWRpbmcgdmFyaWFi bGUgb24gYWxsIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQKLSsjIGludGVybGlicmFyeSBkZXBlbmRl bmNpZXMuCi0rIyAnbm9uZScgLS0gZGVwZW5kZW5jaWVzIG5vdCBzdXBwb3J0ZWQuCi0rIyBgdW5r bm93bicgLS0gc2FtZSBhcyBub25lLCBidXQgZG9jdW1lbnRzIHRoYXQgd2UgcmVhbGx5IGRvbid0 IGtub3cuCi0rIyAncGFzc19hbGwnIC0tIGFsbCBkZXBlbmRlbmNpZXMgcGFzc2VkIHdpdGggbm8g Y2hlY2tzLgotKyMgJ3Rlc3RfY29tcGlsZScgLS0gY2hlY2sgYnkgbWFraW5nIHRlc3QgcHJvZ3Jh bS4KLSsjICdmaWxlX21hZ2ljIFtbcmVnZXhdXScgLS0gY2hlY2sgYnkgbG9va2luZyBmb3IgZmls ZXMgaW4gbGlicmFyeSBwYXRoCi0rIyB3aGljaCByZXNwb25kcyB0byB0aGUgJGZpbGVfbWFnaWNf Y21kIHdpdGggYSBnaXZlbiBleHRlbmRlZCByZWdleC4KLSsjIElmIHlvdSBoYXZlIGBmaWxlJyBv ciBlcXVpdmFsZW50IG9uIHlvdXIgc3lzdGVtIGFuZCB5b3UncmUgbm90IHN1cmUKLSsjIHdoZXRo ZXIgYHBhc3NfYWxsJyB3aWxsICphbHdheXMqIHdvcmssIHlvdSBwcm9iYWJseSB3YW50IHRoaXMg b25lLgotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXhbWzQtOV1dKikKLSsgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2Jlb3MqKQotKyAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rYnNkaVtbNDVdXSopCi0rICBs dF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0q LWJpdCBbW01MXV1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiknCi0rICBsdF9jdl9maWxl X21hZ2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9m aWxlPS9zaGxpYi9saWJjLnNvCi0rICA7OwotKwotK2N5Z3dpbiopCi0rICAjIGZ1bmNfd2luMzJf bGliaWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBkZWZpbmVkIGluIGx0bWFpbi5zaAotKyAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGltcG9ydHxeeDg2 IERMTCcKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlkJwotKyAgOzsK LSsKLSttaW5ndyogfCBwdzMyKikKLSsgICMgQmFzZSBNU1lTL01pbkdXIGRvIG5vdCBwcm92aWRl IHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKLSsgICMgZnVuY193aW4zMl9saWJpZCBzaGVs bCBmdW5jdGlvbiwgc28gdXNlIGEgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLAotKyAg IyB1bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZvciBleGFtcGxlIGJlY2F1c2Ugd2UgYXJlIGNyb3Nz LWNvbXBpbGluZy4KLSsgICMgZnVuY193aW4zMl9saWJpZCBhc3N1bWVzIEJTRCBubSwgc28gZGlz YWxsb3cgaXQgaWYgdXNpbmcgTVMgZHVtcGJpbi4KLSsgIGlmICggdGVzdCAiJGx0X2N2X25tX2lu dGVyZmFjZSIgPSAiQlNEIG5tIiAmJiBmaWxlIC8gKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsg ICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGlt cG9ydHxeeDg2IERMTCcKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNfd2luMzJfbGli aWQnCi0rICBlbHNlCi0rICAgICMgS2VlcCB0aGlzIHBhdHRlcm4gaW4gc3luYyB3aXRoIHRoZSBv bmUgaW4gZnVuY193aW4zMl9saWJpZC4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgKHBlaSotaTM4NiguKmFyY2hpdGVjdHVyZTogaTM4Nik/ fHBlLWFybS13aW5jZXxwZS14ODYtNjQpJwotKyAgICBsdF9jdl9maWxlX21hZ2ljX2NtZD0nJE9C SkRVTVAgLWYnCi0rICBmaQotKyAgOzsKLSsKLStjZWdjYyopCi0rICAjIHVzZSB0aGUgd2Vha2Vy IHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLiBTZWUgbWluZ3cqLgotKyAgbHRfY3ZfZGVwbGlic19j aGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGUtYXJtLS4qbGl0dGxlKC4qYXJj aGl0ZWN0dXJlOiBhcm0pPycKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JKRFVNUCAtZicK LSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tf bWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgIGlm IGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYvbnVsbDsgdGhl bgotKyAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICBpKjg2ICkKLSsgICAgICAjIE5vdCBzdXJl IHdoZXRoZXIgdGhlIHByZXNlbmNlIG9mIE9wZW5CU0QgaGVyZSB3YXMgYSBtaXN0YWtlLgotKyAg ICAgICMgTGV0J3MgYWNjZXB0IGJvdGggb2YgdGhlbSB1bnRpbCB0aGlzIGlzIGNsZWFyZWQgdXAu Ci0rICAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKEZyZWVCU0R8 T3BlbkJTRHxEcmFnb25GbHkpL2lbWzMtOV1dODYgKGNvbXBhY3QgKT9kZW1hbmQgcGFnZWQgc2hh cmVkIGxpYnJhcnknCi0rICAgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQot KyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPWBlY2hvIC91c3IvbGliL2xpYmMuc28u KmAKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hl Y2tfbWV0aG9kPXBhc3NfYWxsCi0rICBmaQotKyAgOzsKLSsKLStnbnUqKQotKyAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0raGFpa3UqKQotKyAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0raHB1eDEwLjIwKiB8IGhw dXgxMSopCi0rICBsdF9jdl9maWxlX21hZ2ljX2NtZD0vdXNyL2Jpbi9maWxlCi0rICBjYXNlICRo b3N0X2NwdSBpbgotKyAgaWE2NCopCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdm aWxlX21hZ2ljIChzW1swLTldXVtbMC05XV1bWzAtOV1dfEVMRi1bWzAtOV1dW1swLTldXSkgc2hh cmVkIG9iamVjdCBmaWxlIC0gSUE2NCcKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9 L3Vzci9saWIvaHB1eDMyL2xpYmMuc28KLSsgICAgOzsKLSsgIGhwcGEqNjQqKQotKyAgICBbbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVswLTldWzAtOV18RUxG WyAtXVswLTldWzAtOV0pKC1iaXQpPyggW0xNXVNCKT8gc2hhcmVkIG9iamVjdCggZmlsZSk/Wywg LV0qIFBBLVJJU0MgWzAtOV1cLlswLTldJ10KLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2Zp bGU9L3Vzci9saWIvcGEyMF82NC9saWJjLnNsCi0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1tbMC05XV1bWzAtOV1dW1swLTldXXxQ QS1SSVNDW1swLTldXVwuW1swLTldXSkgc2hhcmVkIGxpYnJhcnknCi0rICAgIGx0X2N2X2ZpbGVf bWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYmMuc2wKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7 Ci0rCi0raW50ZXJpeFtbMy05XV0qKQotKyAgIyBQSUMgY29kZSBpcyBicm9rZW4gb24gSW50ZXJp eCAzLngsIHRoYXQncyB3aHkgfFwuYSBub3QgfF9waWNcLmEgaGVyZQotKyAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb3xcLmEpJCcKLSsg IDs7Ci0rCi0raXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgIGNhc2UgJExEIGluCi0r ICAqLTMyfCoiLTMyICIpIGxpYm1hZ2ljPTMyLWJpdDs7Ci0rICAqLW4zMnwqIi1uMzIgIikgbGli bWFnaWM9TjMyOzsKLSsgICotNjR8KiItNjQgIikgbGlibWFnaWM9NjQtYml0OzsKLSsgICopIGxp Ym1hZ2ljPW5ldmVyLW1hdGNoOzsKLSsgIGVzYWMKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPXBhc3NfYWxsCi0rICA7OwotKwotKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KLStsaW51 eCogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1nbnUpCi0rICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStuZXRic2QqKQotKyAgaWYgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fID4gL2Rldi9udWxsOyB0aGVuCi0rICAgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc29c LltbMC05XV0rXC5bWzAtOV1dK3xfcGljXC5hKSQnCi0rICBlbHNlCi0rICAgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc298X3BpY1wuYSkk JwotKyAgZmkKLSsgIDs7Ci0rCi0rbmV3b3M2KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1swLTldXSotYml0IFtbTUxdXVNCIChleGVjdXRh YmxlfGR5bmFtaWMgbGliKScKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmluL2ZpbGUK LSsgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91c3IvbGliL2xpYm5scy5zbwotKyAgOzsK LSsKLSsqbnRvKiB8ICpxbngqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19h bGwKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwg JENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9 ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0 aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbW14vXV0rKFwuc29cLltbMC05XV0rXC5bWzAtOV1dK3xc LnNvfF9waWNcLmEpJCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9 J21hdGNoX3BhdHRlcm4gL2xpYltbXi9dXSsoXC5zb1wuW1swLTldXStcLltbMC05XV0rfF9waWNc LmEpJCcKLSsgIGZpCi0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgIGx0X2N2 X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3Jkb3MqKQotKyAgbHRf Y3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0r ICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLStzeXN2NSog fCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgqIHwgc3lzdjQqdXcy KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3N5 c3Y0IHwgc3lzdjQuMyopCi0rICBjYXNlICRob3N0X3ZlbmRvciBpbgotKyAgbW90b3JvbGEpCi0r ICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbWzAtOV1dW1sw LTldXSotYml0IFtbTUxdXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKSBNW1swLTldXVtb MC05XV0qIFZlcnNpb24gW1swLTldXScKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9 YGVjaG8gL3Vzci9saWIvbGliYy5zbypgCi0rICAgIDs7Ci0rICBuY3IpCi0rICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0rICBzZXF1ZW50KQotKyAgICBs dF9jdl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxlJwotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW0xNXV1TQiAoc2hh cmVkIG9iamVjdHxkeW5hbWljIGxpYiApJwotKyAgICA7OwotKyAgc25pKQotKyAgICBsdF9jdl9m aWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxlJwotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZD0iZmlsZV9tYWdpYyBFTEYgW1swLTldXVtbMC05XV0qLWJpdCBbW0xNXV1TQiBkeW5hbWljIGxp YiIKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L2xpYi9saWJjLnNvCi0rICAgIDs7 Ci0rICBzaWVtZW5zKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAot KyAgICA7OwotKyAgcGMpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs Ci0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK3RwZiopCi0rICBsdF9jdl9kZXBsaWJzX2No ZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLStlc2FjCi0rXSkKLSsKLStmaWxlX21hZ2ljX2ds b2I9Ci0rd2FudF9ub2Nhc2VnbG9iPW5vCi0raWYgdGVzdCAiJGJ1aWxkIiA9ICIkaG9zdCI7IHRo ZW4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIG1pbmd3KiB8IHB3MzIqKQotKyAgICBpZiAoIHNo b3B0IHwgZ3JlcCBub2Nhc2VnbG9iICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgd2Fu dF9ub2Nhc2VnbG9iPXllcwotKyAgICBlbHNlCi0rICAgICAgZmlsZV9tYWdpY19nbG9iPWBlY2hv IGFBYkJjQ2REZUVmRmdHaEhpSWpKa0tsTG1Nbk5vT3BQcVFyUnNTdFR1VXZWd1d4WHlZelogfCAk U0VEIC1lICJzL1woLi5cKS9zXC9bW1wxXV1cL1tbXDFdXVwvZzsvZyJgCi0rICAgIGZpCi0rICAg IDs7Ci0rICBlc2FjCi0rZmkKLSsKLStmaWxlX21hZ2ljX2NtZD0kbHRfY3ZfZmlsZV9tYWdpY19j bWQKLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2QKLSt0 ZXN0IC16ICIkZGVwbGlic19jaGVja19tZXRob2QiICYmIGRlcGxpYnNfY2hlY2tfbWV0aG9kPXVu a25vd24KLSsKLStfTFRfREVDTChbXSwgW2RlcGxpYnNfY2hlY2tfbWV0aG9kXSwgWzFdLAotKyAg ICBbTWV0aG9kIHRvIGNoZWNrIHdoZXRoZXIgZGVwZW5kZW50IGxpYnJhcmllcyBhcmUgc2hhcmVk IG9iamVjdHNdKQotK19MVF9ERUNMKFtdLCBbZmlsZV9tYWdpY19jbWRdLCBbMV0sCi0rICAgIFtD b21tYW5kIHRvIHVzZSB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID0gImZpbGVfbWFnaWMiXSkK LStfTFRfREVDTChbXSwgW2ZpbGVfbWFnaWNfZ2xvYl0sIFsxXSwKLSsgICAgW0hvdyB0byBmaW5k IHBvdGVudGlhbCBmaWxlcyB3aGVuIGRlcGxpYnNfY2hlY2tfbWV0aG9kID0gImZpbGVfbWFnaWMi XSkKLStfTFRfREVDTChbXSwgW3dhbnRfbm9jYXNlZ2xvYl0sIFsxXSwKLSsgICAgW0ZpbmQgcG90 ZW50aWFsIGZpbGVzIHVzaW5nIG5vY2FzZWdsb2Igd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9 ICJmaWxlX21hZ2ljIl0pCi0rXSkjIF9MVF9DSEVDS19NQUdJQ19NRVRIT0QKLSsKLSsKLSsjIExU X1BBVEhfTk0KLSsjIC0tLS0tLS0tLS0KLSsjIGZpbmQgdGhlIHBhdGhuYW1lIHRvIGEgQlNELSBv ciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyCi0rQUNfREVGVU4oW0xUX1BBVEhfTk1dLAotK1tB Q19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKLStBQ19DQUNIRV9DSEVDSyhbZm9yIEJTRC0gb3Ig TVMtY29tcGF0aWJsZSBuYW1lIGxpc3RlciAobm0pXSwgbHRfY3ZfcGF0aF9OTSwKLStbaWYgdGVz dCAtbiAiJE5NIjsgdGhlbgotKyAgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0r ICBsdF9jdl9wYXRoX05NPSIkTk0iCi0rZWxzZQotKyAgbHRfbm1fdG9fY2hlY2s9IiR7YWNfdG9v bF9wcmVmaXh9bm0iCi0rICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiICYmIHRlc3QgIiRi dWlsZCIgPSAiJGhvc3QiOyB0aGVuCi0rICAgIGx0X25tX3RvX2NoZWNrPSIkbHRfbm1fdG9fY2hl Y2sgbm0iCi0rICBmaQotKyAgZm9yIGx0X3RtcF9ubSBpbiAkbHRfbm1fdG9fY2hlY2s7IGRvCi0r ICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgICBmb3IgYWNf ZGlyIGluICRQQVRIIC91c3IvY2NzL2Jpbi9lbGYgL3Vzci9jY3MvYmluIC91c3IvdWNiIC9iaW47 IGRvCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgdGVzdCAteiAiJGFjX2RpciIg JiYgYWNfZGlyPS4KLSsgICAgICB0bXBfbm09IiRhY19kaXIvJGx0X3RtcF9ubSIKLSsgICAgICBp ZiB0ZXN0IC1mICIkdG1wX25tIiB8fCB0ZXN0IC1mICIkdG1wX25tJGFjX2V4ZWV4dCIgOyB0aGVu Ci0rCSMgQ2hlY2sgdG8gc2VlIGlmIHRoZSBubSBhY2NlcHRzIGEgQlNELWNvbXBhdCBmbGFnLgot KwkjIEFkZGluZyB0aGUgYHNlZCAxcScgcHJldmVudHMgZmFsc2UgcG9zaXRpdmVzIG9uIEhQLVVY LCB3aGljaCBzYXlzOgotKwkjICAgbm06IHVua25vd24gb3B0aW9uICJCIiBpZ25vcmVkCi0rCSMg VHJ1NjQncyBubSBjb21wbGFpbnMgdGhhdCAvZGV2L251bGwgaXMgYW4gaW52YWxpZCBvYmplY3Qg ZmlsZQotKwljYXNlIGAiJHRtcF9ubSIgLUIgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4K LSsJKi9kZXYvbnVsbCogfCAqJ0ludmFsaWQgZmlsZSBvciBvYmplY3QgdHlwZScqKQotKwkgIGx0 X2N2X3BhdGhfTk09IiR0bXBfbm0gLUIiCi0rCSAgYnJlYWsKLSsJICA7OwotKwkqKQotKwkgIGNh c2UgYCIkdG1wX25tIiAtcCAvZGV2L251bGwgMj4mMSB8IHNlZCAnMXEnYCBpbgotKwkgICovZGV2 L251bGwqKQotKwkgICAgbHRfY3ZfcGF0aF9OTT0iJHRtcF9ubSAtcCIKLSsJICAgIGJyZWFrCi0r CSAgICA7OwotKwkgICopCi0rCSAgICBsdF9jdl9wYXRoX05NPSR7bHRfY3ZfcGF0aF9OTT0iJHRt cF9ubSJ9ICMga2VlcCB0aGUgZmlyc3QgbWF0Y2gsIGJ1dAotKwkgICAgY29udGludWUgIyBzbyB0 aGF0IHdlIGNhbiB0cnkgdG8gZmluZCBvbmUgdGhhdCBzdXBwb3J0cyBCU0QgZmxhZ3MKLSsJICAg IDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICBkb25lCi0rICAg IElGUz0iJGx0X3NhdmVfaWZzIgotKyAgZG9uZQotKyAgOiAke2x0X2N2X3BhdGhfTk09bm99Ci0r ZmldKQotK2lmIHRlc3QgIiRsdF9jdl9wYXRoX05NIiAhPSAibm8iOyB0aGVuCi0rICBOTT0iJGx0 X2N2X3BhdGhfTk0iCi0rZWxzZQotKyAgIyBEaWRuJ3QgZmluZCBhbnkgQlNEIGNvbXBhdGlibGUg bmFtZSBsaXN0ZXIsIGxvb2sgZm9yIGR1bXBiaW4uCi0rICBpZiB0ZXN0IC1uICIkRFVNUEJJTiI7 IHRoZW4gOgotKyAgICAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLSsgIGVsc2UK LSsgICAgQUNfQ0hFQ0tfVE9PTFMoRFVNUEJJTiwgW2R1bXBiaW4gImxpbmsgLWR1bXAiXSwgOikK LSsgICAgY2FzZSBgJERVTVBCSU4gLXN5bWJvbHMgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2Ag aW4KLSsgICAgKkNPRkYqKQotKyAgICAgIERVTVBCSU49IiREVU1QQklOIC1zeW1ib2xzIgotKyAg ICAgIDs7Ci0rICAgICopCi0rICAgICAgRFVNUEJJTj06Ci0rICAgICAgOzsKLSsgICAgZXNhYwot KyAgZmkKLSsgIEFDX1NVQlNUKFtEVU1QQklOXSkKLSsgIGlmIHRlc3QgIiREVU1QQklOIiAhPSAi OiI7IHRoZW4KLSsgICAgTk09IiREVU1QQklOIgotKyAgZmkKLStmaQotK3Rlc3QgLXogIiROTSIg JiYgTk09bm0KLStBQ19TVUJTVChbTk1dKQotK19MVF9ERUNMKFtdLCBbTk1dLCBbMV0sIFtBIEJT RC0gb3IgTVMtY29tcGF0aWJsZSBuYW1lIGxpc3Rlcl0pZG5sCi0rCi0rQUNfQ0FDSEVfQ0hFQ0so W3RoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2VdLCBbbHRfY3Zfbm1faW50ZXJmYWNlXSwK LSsgIFtsdF9jdl9ubV9pbnRlcmZhY2U9IkJTRCBubSIKLSsgIGVjaG8gImludCBzb21lX3Zhcmlh YmxlID0gMDsiID4gY29uZnRlc3QuJGFjX2V4dAotKyAgKGV2YWwgZWNobyAiXCJcJGFzX21lOiRM SU5FTk86ICRhY19jb21waWxlXCIiID4mQVNfTUVTU0FHRV9MT0dfRkQpCi0rICAoZXZhbCAiJGFj X2NvbXBpbGUiIDI+Y29uZnRlc3QuZXJyKQotKyAgY2F0IGNvbmZ0ZXN0LmVyciA+JkFTX01FU1NB R0VfTE9HX0ZECi0rICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJE5NIFxcXCJjb25m dGVzdC4kYWNfb2JqZXh0XFxcIlwiIiA+JkFTX01FU1NBR0VfTE9HX0ZEKQotKyAgKGV2YWwgIiRO TSBcImNvbmZ0ZXN0LiRhY19vYmpleHRcIiIgMj5jb25mdGVzdC5lcnIgPiBjb25mdGVzdC5vdXQp Ci0rICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVTU0FHRV9MT0dfRkQKLSsgIChldmFsIGVjaG8g IlwiXCRhc19tZTokTElORU5POiBvdXRwdXRcIiIgPiZBU19NRVNTQUdFX0xPR19GRCkKLSsgIGNh dCBjb25mdGVzdC5vdXQgPiZBU19NRVNTQUdFX0xPR19GRAotKyAgaWYgJEdSRVAgJ0V4dGVybmFs Lipzb21lX3ZhcmlhYmxlJyBjb25mdGVzdC5vdXQgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgbHRf Y3Zfbm1faW50ZXJmYWNlPSJNUyBkdW1wYmluIgotKyAgZmkKLSsgIHJtIC1mIGNvbmZ0ZXN0Kl0p Ci0rXSkjIExUX1BBVEhfTk0KLSsKLSsjIE9sZCBuYW1lczoKLStBVV9BTElBUyhbQU1fUFJPR19O TV0sIFtMVF9QQVRIX05NXSkKLStBVV9BTElBUyhbQUNfUFJPR19OTV0sIFtMVF9QQVRIX05NXSkK LStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVO KFtBTV9QUk9HX05NXSwgW10pCi0rZG5sIEFDX0RFRlVOKFtBQ19QUk9HX05NXSwgW10pCi0rCi0r IyBfTFRfQ0hFQ0tfU0hBUkVETElCX0ZST01fTElOS0xJQgotKyMgLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsjIGhvdyB0byBkZXRlcm1pbmUgdGhlIG5hbWUgb2YgdGhlIHNoYXJl ZCBsaWJyYXJ5Ci0rIyBhc3NvY2lhdGVkIHdpdGggYSBzcGVjaWZpYyBsaW5rIGxpYnJhcnkuCi0r IyAgLS0gUE9SVE1FIGZpbGwgaW4gd2l0aCB0aGUgZHluYW1pYyBsaWJyYXJ5IGNoYXJhY3Rlcmlz dGljcwotK200X2RlZnVuKFtfTFRfQ0hFQ0tfU0hBUkVETElCX0ZST01fTElOS0xJQl0sCi0rW200 X3JlcXVpcmUoW19MVF9ERUNMX0VHUkVQXSkKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9PQkpEVU1Q XSkKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9ETExUT09MXSkKLStBQ19DQUNIRV9DSEVDSyhbaG93 IHRvIGFzc29jaWF0ZSBydW50aW1lIGFuZCBsaW5rIGxpYnJhcmllc10sCi0rbHRfY3Zfc2hhcmVk bGliX2Zyb21fbGlua2xpYl9jbWQsCi0rW2x0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21k PSd1bmtub3duJwotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLStjeWd3aW4qIHwgbWluZ3cqIHwgcHcz MiogfCBjZWdjYyopCi0rICAjIHR3byBkaWZmZXJlbnQgc2hlbGwgZnVuY3Rpb25zIGRlZmluZWQg aW4gbHRtYWluLnNoCi0rICAjIGRlY2lkZSB3aGljaCB0byB1c2UgYmFzZWQgb24gY2FwYWJpbGl0 aWVzIG9mICRETExUT09MCi0rICBjYXNlIGAkRExMVE9PTCAtLWhlbHAgMj4mMWAgaW4KLSsgICot LWlkZW50aWZ5LXN0cmljdCopCi0rICAgIGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21k PWZ1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYgotKyAgICA7OwotKyAgKikKLSsgICAgbHRfY3Zf c2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9ZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGliX2Zh bGxiYWNrCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKyopCi0rICAjIGZhbGxiYWNrOiBhc3N1 bWUgbGlua2xpYiBJUyBzaGFyZWRsaWIKLSsgIGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJf Y21kPSIkRUNITyIKLSsgIDs7Ci0rZXNhYwotK10pCi0rc2hhcmVkbGliX2Zyb21fbGlua2xpYl9j bWQ9JGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kCi0rdGVzdCAteiAiJHNoYXJlZGxp Yl9mcm9tX2xpbmtsaWJfY21kIiAmJiBzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZD0kRUNITwot KwotK19MVF9ERUNMKFtdLCBbc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWRdLCBbMV0sCi0rICAg IFtDb21tYW5kIHRvIGFzc29jaWF0ZSBzaGFyZWQgYW5kIGxpbmsgbGlicmFyaWVzXSkKLStdKSMg X0xUX0NIRUNLX1NIQVJFRExJQl9GUk9NX0xJTktMSUIKLSsKLSsKLSsjIF9MVF9QQVRIX01BTklG RVNUX1RPT0wKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIGxvY2F0ZSB0aGUgbWFuaWZl c3QgdG9vbAotK200X2RlZnVuKFtfTFRfUEFUSF9NQU5JRkVTVF9UT09MXSwKLStbQUNfQ0hFQ0tf VE9PTChNQU5JRkVTVF9UT09MLCBtdCwgOikKLSt0ZXN0IC16ICIkTUFOSUZFU1RfVE9PTCIgJiYg TUFOSUZFU1RfVE9PTD1tdAotK0FDX0NBQ0hFX0NIRUNLKFtpZiAkTUFOSUZFU1RfVE9PTCBpcyBh IG1hbmlmZXN0IHRvb2xdLCBbbHRfY3ZfcGF0aF9tYWluZmVzdF90b29sXSwKLSsgIFtsdF9jdl9w YXRoX21haW5mZXN0X3Rvb2w9bm8KLSsgIGVjaG8gIiRhc19tZTokTElORU5POiAkTUFOSUZFU1Rf VE9PTCAnLT8nIiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rICAkTUFOSUZFU1RfVE9PTCAnLT8nIDI+ Y29uZnRlc3QuZXJyID4gY29uZnRlc3Qub3V0Ci0rICBjYXQgY29uZnRlc3QuZXJyID4mQVNfTUVT U0FHRV9MT0dfRkQKLSsgIGlmICRHUkVQICdNYW5pZmVzdCBUb29sJyBjb25mdGVzdC5vdXQgPiAv ZGV2L251bGw7IHRoZW4KLSsgICAgbHRfY3ZfcGF0aF9tYWluZmVzdF90b29sPXllcwotKyAgZmkK LSsgIHJtIC1mIGNvbmZ0ZXN0Kl0pCi0raWYgdGVzdCAieCRsdF9jdl9wYXRoX21haW5mZXN0X3Rv b2wiICE9IHh5ZXM7IHRoZW4KLSsgIE1BTklGRVNUX1RPT0w9OgotK2ZpCi0rX0xUX0RFQ0woW10s IFtNQU5JRkVTVF9UT09MXSwgWzFdLCBbTWFuaWZlc3QgdG9vbF0pZG5sCi0rXSkjIF9MVF9QQVRI X01BTklGRVNUX1RPT0wKLSsKLSsKLSsjIExUX0xJQl9NCi0rIyAtLS0tLS0tLQotKyMgY2hlY2sg Zm9yIG1hdGggbGlicmFyeQotK0FDX0RFRlVOKFtMVF9MSUJfTV0sCi0rW0FDX1JFUVVJUkUoW0FD X0NBTk9OSUNBTF9IT1NUXSlkbmwKLStMSUJNPQotK2Nhc2UgJGhvc3QgaW4KLSsqLSotYmVvcyog fCAqLSotY2VnY2MqIHwgKi0qLWN5Z3dpbiogfCAqLSotaGFpa3UqIHwgKi0qLXB3MzIqIHwgKi0q LWRhcndpbiopCi0rICAjIFRoZXNlIHN5c3RlbSBkb24ndCBoYXZlIGxpYm0sIG9yIGRvbid0IG5l ZWQgaXQKLSsgIDs7Ci0rKi1uY3Itc3lzdjQuMyopCi0rICBBQ19DSEVDS19MSUIobXcsIF9td3Zh bGlkY2hlY2tsLCBMSUJNPSItbG13IikKLSsgIEFDX0NIRUNLX0xJQihtLCBjb3MsIExJQk09IiRM SUJNIC1sbSIpCi0rICA7OwotKyopCi0rICBBQ19DSEVDS19MSUIobSwgY29zLCBMSUJNPSItbG0i KQotKyAgOzsKLStlc2FjCi0rQUNfU1VCU1QoW0xJQk1dKQotK10pIyBMVF9MSUJfTQotKwotKyMg T2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0FDX0NIRUNLX0xJQk1dLCBbTFRfTElCX01dKQotK2RubCBh Y2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FDX0NI RUNLX0xJQk1dLCBbXSkKLSsKLSsKLSsjIF9MVF9DT01QSUxFUl9OT19SVFRJKFtUQUdOQU1FXSkK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NPTVBJ TEVSX05PX1JUVEldLAotK1ttNF9yZXF1aXJlKFtfTFRfVEFHX0NPTVBJTEVSXSlkbmwKLSsKLStf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9Ci0rCi0raWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICBudmNj KikKLSsgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEp PScgLVhjb21waWxlciAtZm5vLWJ1aWx0aW4nIDs7Ci0rICAqKQotKyAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSk9JyAtZm5vLWJ1aWx0aW4nIDs7Ci0r ICBlc2FjCi0rCi0rICBfTFRfQ09NUElMRVJfT1BUSU9OKFtpZiAkY29tcGlsZXIgc3VwcG9ydHMg LWZuby1ydHRpIC1mbm8tZXhjZXB0aW9uc10sCi0rICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0 aV9leGNlcHRpb25zLAotKyAgICBbLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9uc10sIFtdLAotKyAg ICBbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPSIkX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpIC1mbm8tcnR0aSAt Zm5vLWV4Y2VwdGlvbnMiXSkKLStmaQotK19MVF9UQUdERUNMKFtub19idWlsdGluX2ZsYWddLCBb bHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWddLCBbMV0sCi0rCVtDb21waWxlciBmbGFn IHRvIHR1cm4gb2ZmIGJ1aWx0aW4gZnVuY3Rpb25zXSkKLStdKSMgX0xUX0NPTVBJTEVSX05PX1JU VEkKLSsKLSsKLSsjIF9MVF9DTURfR0xPQkFMX1NZTUJPTFMKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSttNF9kZWZ1bihbX0xUX0NNRF9HTE9CQUxfU1lNQk9MU10sCi0rW0FDX1JFUVVJUkUo W0FDX0NBTk9OSUNBTF9IT1NUXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19QUk9HX0NDXSlkbmwKLStB Q19SRVFVSVJFKFtBQ19QUk9HX0FXS10pZG5sCi0rQUNfUkVRVUlSRShbTFRfUEFUSF9OTV0pZG5s Ci0rQUNfUkVRVUlSRShbTFRfUEFUSF9MRF0pZG5sCi0rbTRfcmVxdWlyZShbX0xUX0RFQ0xfU0VE XSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9FR1JFUF0pZG5sCi0rbTRfcmVxdWlyZShbX0xU X1RBR19DT01QSUxFUl0pZG5sCi0rCi0rIyBDaGVjayBmb3IgY29tbWFuZCB0byBncmFiIHRoZSBy YXcgc3ltYm9sIG5hbWUgZm9sbG93ZWQgYnkgQyBzeW1ib2wgZnJvbSBubS4KLStBQ19NU0dfQ0hF Q0tJTkcoW2NvbW1hbmQgdG8gcGFyc2UgJE5NIG91dHB1dCBmcm9tICRjb21waWxlciBvYmplY3Rd KQotK0FDX0NBQ0hFX1ZBTChbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sCi0rWwotKyMg VGhlc2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBz eXN0ZW1zLgotKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUgb2xkZXIg dGhhbiBVbHRyaXg/ISEgOyldCi0rCi0rIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBn bG9iYWwgc3ltYm9sIGNvZGVzLgotK3N5bWNvZGU9J1tbQkNERUdSU1RdXScKLSsKLSsjIFJlZ2V4 cCB0byBtYXRjaCBzeW1ib2xzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIGRpcmVjdGx5IGZyb20gQy4K LStzeW1wYXQ9J1woW1tfQS1aYS16XV1bW19BLVphLXowLTldXSpcKScKLSsKLSsjIERlZmluZSBz eXN0ZW0tc3BlY2lmaWMgdmFyaWFibGVzLgotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgqKQotKyAg c3ltY29kZT0nW1tCQ0RUXV0nCi0rICA7OwotK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNl Z2NjKikKLSsgIHN5bWNvZGU9J1tbQUJDREdJU1RXXV0nCi0rICA7OwotK2hwdXgqKQotKyAgaWYg dGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgc3ltY29kZT0nW1tBQkNERUdSU1Rd XScKLSsgIGZpCi0rICA7OwotK2lyaXgqIHwgbm9uc3RvcHV4KikKLSsgIHN5bWNvZGU9J1tbQkNE RUdSU1RdXScKLSsgIDs7Ci0rb3NmKikKLSsgIHN5bWNvZGU9J1tbQkNERUdRUlNUXV0nCi0rICA7 OwotK3NvbGFyaXMqKQotKyAgc3ltY29kZT0nW1tCRFJUXV0nCi0rICA7OwotK3NjbzMuMnY1KikK LSsgIHN5bWNvZGU9J1tbRFRdXScKLSsgIDs7Ci0rc3lzdjQuMnV3MiopCi0rICBzeW1jb2RlPSdb W0RUXV0nCi0rICA7OwotK3N5c3Y1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCop Ci0rICBzeW1jb2RlPSdbW0FCRFRdXScKLSsgIDs7Ci0rc3lzdjQpCi0rICBzeW1jb2RlPSdbW0RG TlNUVV1dJwotKyAgOzsKLStlc2FjCi0rCi0rIyBJZiB3ZSdyZSB1c2luZyBHTlUgbm0sIHRoZW4g dXNlIGl0cyBzdGFuZGFyZCBzeW1ib2wgY29kZXMuCi0rY2FzZSBgJE5NIC1WIDI+JjFgIGluCi0r KkdOVSogfCAqJ3dpdGggQkZEJyopCi0rICBzeW1jb2RlPSdbW0FCQ0RHSVJTVFddXScgOzsKLStl c2FjCi0rCi0rIyBUcmFuc2Zvcm0gYW4gZXh0cmFjdGVkIHN5bWJvbCBsaW5lIGludG8gYSBwcm9w ZXIgQyBkZWNsYXJhdGlvbi4KLSsjIFNvbWUgc3lzdGVtcyAoZXNwLiBvbiBpYTY0KSBsaW5rIGRh dGEgYW5kIGNvZGUgc3ltYm9scyBkaWZmZXJlbnRseSwKLSsjIHNvIHVzZSB0aGlzIGdlbmVyYWwg YXBwcm9hY2guCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2RlY2w9InNlZCAtbiAtZSAn cy9eVCAuKiBcKC4qXCkkL2V4dGVybiBpbnQgXDEoKTsvcCcgLWUgJ3MvXiRzeW1jb2RlKiAuKiBc KC4qXCkkL2V4dGVybiBjaGFyIFwxOy9wJyIKLSsKLSsjIFRyYW5zZm9ybSBhbiBleHRyYWN0ZWQg c3ltYm9sIGxpbmUgaW50byBzeW1ib2wgbmFtZSBhbmQgc3ltYm9sIGFkZHJlc3MKLStsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcz0ic2VkIC1uIC1lICdzL146IFwoW1te IF1dKlwpW1sgXV0qJC8gIHtcXFwiXDFcXFwiLCAodm9pZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1j b2RlKiBcKFtbXiBdXSpcKSBcKFtbXiBdXSpcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwv cCciCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZp eD0ic2VkIC1uIC1lICdzL146IFwoW1teIF1dKlwpW1sgXV0qJC8gIHtcXFwiXDFcXFwiLCAodm9p ZCAqKSAwfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBdXSpcKSBcKGxpYltbXiBdXSpcKSQv ICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCcgLWUgJ3MvXiRzeW1jb2RlKiBcKFtbXiBdXSpc KSBcKFtbXiBdXSpcKSQvICB7XCJsaWJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCi0rCi0rIyBI YW5kbGUgQ1JMRiBpbiBtaW5ndyB0b29sIGNoYWluCi0rb3B0X2NyPQotK2Nhc2UgJGJ1aWxkX29z IGluCi0rbWluZ3cqKQotKyAgb3B0X2NyPWAkRUNITyAneFx7MCwxXH0nIHwgdHIgeCAnXDAxNSdg ICMgb3B0aW9uIGNyIGluIHJlZ2V4cAotKyAgOzsKLStlc2FjCi0rCi0rIyBUcnkgd2l0aG91dCBh IHByZWZpeCB1bmRlcnNjb3JlLCB0aGVuIHdpdGggaXQuCi0rZm9yIGFjX3N5bXByZnggaW4gIiIg Il8iOyBkbwotKwotKyAgIyBUcmFuc2Zvcm0gc3ltY29kZSwgc3ltcGF0LCBhbmQgc3ltcHJmeCBp bnRvIGEgcmF3IHN5bWJvbCBhbmQgYSBDIHN5bWJvbC4KLSsgIHN5bXhmcm09IlxcMSAkYWNfc3lt cHJmeFxcMiBcXDIiCi0rCi0rICAjIFdyaXRlIHRoZSByYXcgYW5kIEMgaWRlbnRpZmllcnMuCi0r ICBpZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJNUyBkdW1wYmluIjsgdGhlbgotKyAg ICAjIEZha2UgaXQgZm9yIGR1bXBiaW4gYW5kIHNheSBUIGZvciBhbnkgbm9uLXN0YXRpYyBmdW5j dGlvbgotKyAgICAjIGFuZCBEIGZvciBhbnkgZ2xvYmFsIHZhcmlhYmxlLgotKyAgICAjIEFsc28g ZmluZCBDKysgYW5kIF9fZmFzdGNhbGwgc3ltYm9scyBmcm9tIE1TVkMrKywKLSsgICAgIyB3aGlj aCBzdGFydCB3aXRoIEAgb3IgPy4KLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0i JEFXSyBbJyJcCi0rIiAgICAge2xhc3Rfc2VjdGlvbj1zZWN0aW9uOyBzZWN0aW9uPVwkIDN9OyJc Ci0rIiAgICAgL1NlY3Rpb24gbGVuZ3RoIC4qI3JlbG9jcy4qKHBpY2sgYW55KS97aGlkZVtsYXN0 X3NlY3Rpb25dPTF9OyJcCi0rIiAgICAgXCQgMCF+L0V4dGVybmFsICpcfC97bmV4dH07IlwKLSsi ICAgICAvIDArIFVOREVGIC97bmV4dH07IC8gVU5ERUYgXChbXnxdXCkqKCkve25leHR9OyJcCi0r IiAgICAge2lmKGhpZGVbc2VjdGlvbl0pIG5leHR9OyJcCi0rIiAgICAge2Y9MH07IFwkIDB+L1wo XCkuKlx8L3tmPTF9OyB7cHJpbnRmIGYgPyBcIlQgXCIgOiBcIkQgXCJ9OyJcCi0rIiAgICAge3Nw bGl0KFwkIDAsIGEsIC9cfHxcci8pOyBzcGxpdChhWzJdLCBzKX07IlwKLSsiICAgICBzWzFdfi9e W0A/XS97cHJpbnQgc1sxXSwgc1sxXTsgbmV4dH07IlwKLSsiICAgICBzWzFdfnByZngge3NwbGl0 KHNbMV0sdCxcIkBcIik7IHByaW50IHRbMV0sIHN1YnN0cih0WzFdLGxlbmd0aChwcmZ4KSl9IlwK LSsiICAgICAnIHByZng9XiRhY19zeW1wcmZ4XSIKLSsgIGVsc2UKLSsgICAgbHRfY3Zfc3lzX2ds b2JhbF9zeW1ib2xfcGlwZT0ic2VkIC1uIC1lICdzL14uKltbCSBdXVwoJHN5bWNvZGUkc3ltY29k ZSpcKVtbCSBdXVtbCSBdXSokYWNfc3ltcHJmeCRzeW1wYXQkb3B0X2NyJC8kc3lteGZybS9wJyIK LSsgIGZpCi0rICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlPSIkbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfcGlwZSB8IHNlZCAnLyBfX2dudV9sdG8vZCciCi0rCi0rICAjIENoZWNrIHRvIHNl ZSB0aGF0IHRoZSBwaXBlIHdvcmtzIGNvcnJlY3RseS4KLSsgIHBpcGVfd29ya3M9bm8KLSsKLSsg IHJtIC1mIGNvbmZ0ZXN0KgotKyAgY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLSsj aWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiIHsKLSsjZW5kaWYKLStjaGFyIG5tX3Rlc3Rf dmFyOwotK3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQpOwotK3ZvaWQgbm1fdGVzdF9mdW5jKHZvaWQp e30KLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2VuZGlmCi0raW50IG1haW4oKXtubV90ZXN0 X3Zhcj0nYSc7bm1fdGVzdF9mdW5jKCk7cmV0dXJuKDApO30KLStfTFRfRU9GCi0rCi0rICBpZiBB Q19UUllfRVZBTChhY19jb21waWxlKTsgdGhlbgotKyAgICAjIE5vdyB0cnkgdG8gZ3JhYiB0aGUg c3ltYm9scy4KLSsgICAgbmxpc3Q9Y29uZnRlc3Qubm0KLSsgICAgaWYgQUNfVFJZX0VWQUwoTk0g Y29uZnRlc3QuJGFjX29iamV4dCBcfCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUiIFw+ ICRubGlzdCkgJiYgdGVzdCAtcyAiJG5saXN0IjsgdGhlbgotKyAgICAgICMgVHJ5IHNvcnRpbmcg YW5kIHVuaXF1aWZ5aW5nIHRoZSBvdXRwdXQuCi0rICAgICAgaWYgc29ydCAiJG5saXN0IiB8IHVu aXEgPiAiJG5saXN0IlQ7IHRoZW4KLSsJbXYgLWYgIiRubGlzdCJUICIkbmxpc3QiCi0rICAgICAg ZWxzZQotKwlybSAtZiAiJG5saXN0IlQKLSsgICAgICBmaQotKwotKyAgICAgICMgTWFrZSBzdXJl IHRoYXQgd2Ugc25hZ2dlZCBhbGwgdGhlIHN5bWJvbHMgd2UgbmVlZC4KLSsgICAgICBpZiAkR1JF UCAnIG5tX3Rlc3RfdmFyJCcgIiRubGlzdCIgPi9kZXYvbnVsbDsgdGhlbgotKwlpZiAkR1JFUCAn IG5tX3Rlc3RfZnVuYyQnICIkbmxpc3QiID4vZGV2L251bGw7IHRoZW4KLSsJICBjYXQgPDxfTFRf RU9GID4gY29uZnRlc3QuJGFjX2V4dAotKy8qIEtlZXAgdGhpcyBjb2RlIGluIHN5bmMgYmV0d2Vl biBsaWJ0b29sLm00LCBsdG1haW4sIGx0X3N5c3RlbS5oLCBhbmQgdGVzdHMuICAqLwotKyNpZiBk ZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX0NZR1dJTl9fKSB8fCBkZWZpbmVkKF9XSU4zMl9X Q0UpCi0rLyogREFUQSBpbXBvcnRzIGZyb20gRExMcyBvbiBXSU4zMiBjb24ndCBiZSBjb25zdCwg YmVjYXVzZSBydW50aW1lCi0rICAgcmVsb2NhdGlvbnMgYXJlIHBlcmZvcm1lZCAtLSBzZWUgbGQn cyBkb2N1bWVudGF0aW9uIG9uIHBzZXVkby1yZWxvY3MuICAqLwotKyMgZGVmaW5lIExUQCZ0QF9E TFNZTV9DT05TVAotKyNlbGlmIGRlZmluZWQoX19vc2ZfXykKLSsvKiBUaGlzIHN5c3RlbSBkb2Vz IG5vdCBjb3BlIHdlbGwgd2l0aCByZWxvY2F0aW9ucyBpbiBjb25zdCBkYXRhLiAgKi8KLSsjIGRl ZmluZSBMVEAmdEBfRExTWU1fQ09OU1QKLSsjZWxzZQotKyMgZGVmaW5lIExUQCZ0QF9ETFNZTV9D T05TVCBjb25zdAotKyNlbmRpZgotKwotKyNpZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIg ewotKyNlbmRpZgotKwotK19MVF9FT0YKLSsJICAjIE5vdyBnZW5lcmF0ZSB0aGUgc3ltYm9sIGZp bGUuCi0rCSAgZXZhbCAiJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIicgPCAiJG5s aXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dCcKLSsKLSsJICBjYXQgPDxf TFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsvKiBUaGUgbWFwcGluZyBiZXR3ZWVuIHN5 bWJvbCBuYW1lcyBhbmQgc3ltYm9scy4gICovCi0rTFRAJnRAX0RMU1lNX0NPTlNUIHN0cnVjdCB7 Ci0rICBjb25zdCBjaGFyICpuYW1lOwotKyAgdm9pZCAgICAgICAqYWRkcmVzczsKLSt9Ci0rbHRf X1BST0dSQU1fX0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tbXV0gPQotK3sKLSsgIHsgIkBQUk9HUkFN QCIsICh2b2lkICopIDAgfSwKLStfTFRfRU9GCi0rCSAgJFNFRCAicy9eJHN5bWNvZGUkc3ltY29k ZSogXCguKlwpIFwoLipcKSQvICB7XCJcMlwiLCAodm9pZCAqKSBcJlwyfSwvIiA8ICIkbmxpc3Qi IHwgJEdSRVAgLXYgbWFpbiA+PiBjb25mdGVzdC4kYWNfZXh0Ci0rCSAgY2F0IDw8XF9MVF9FT0Yg Pj4gY29uZnRlc3QuJGFjX2V4dAotKyAgezAsICh2b2lkICopIDB9Ci0rfTsKLSsKLSsvKiBUaGlz IHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KLSsjaWZkZWYgRlJF RUJTRF9XT1JLQVJPVU5ECi0rc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgp IHsKLSsgIHJldHVybiBsdF9fUFJPR1JBTV9fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOwotK30KLSsj ZW5kaWYKLSsKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2VuZGlmCi0rX0xUX0VPRgotKwkg ICMgTm93IHRyeSBsaW5raW5nIHRoZSB0d28gZmlsZXMuCi0rCSAgbXYgY29uZnRlc3QuJGFjX29i amV4dCBjb25mdHN0bS4kYWNfb2JqZXh0Ci0rCSAgbHRfZ2xvYnN5bV9zYXZlX0xJQlM9JExJQlMK LSsJICBsdF9nbG9ic3ltX3NhdmVfQ0ZMQUdTPSRDRkxBR1MKLSsJICBMSUJTPSJjb25mdHN0bS4k YWNfb2JqZXh0IgotKwkgIENGTEFHUz0iJENGTEFHUyRfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfbm9fYnVpbHRpbl9mbGFnLCAkMSkiCi0rCSAgaWYgQUNfVFJZX0VWQUwoYWNfbGluaykgJiYg dGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgotKwkgICAgcGlwZV93b3Jrcz15ZXMK LSsJICBmaQotKwkgIExJQlM9JGx0X2dsb2JzeW1fc2F2ZV9MSUJTCi0rCSAgQ0ZMQUdTPSRsdF9n bG9ic3ltX3NhdmVfQ0ZMQUdTCi0rCWVsc2UKLSsJICBlY2hvICJjYW5ub3QgZmluZCBubV90ZXN0 X2Z1bmMgaW4gJG5saXN0IiA+JkFTX01FU1NBR0VfTE9HX0ZECi0rCWZpCi0rICAgICAgZWxzZQot KwllY2hvICJjYW5ub3QgZmluZCBubV90ZXN0X3ZhciBpbiAkbmxpc3QiID4mQVNfTUVTU0FHRV9M T0dfRkQKLSsgICAgICBmaQotKyAgICBlbHNlCi0rICAgICAgZWNobyAiY2Fubm90IHJ1biAkbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgPiZBU19NRVNTQUdFX0xPR19GRAotKyAgICBmaQot KyAgZWxzZQotKyAgICBlY2hvICIkcHJvZ25hbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mQVNf TUVTU0FHRV9MT0dfRkQKLSsgICAgY2F0IGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rICBmaQotKyAg cm0gLXJmIGNvbmZ0ZXN0KiBjb25mdHN0KgotKwotKyAgIyBEbyBub3QgdXNlIHRoZSBnbG9iYWxf c3ltYm9sX3BpcGUgdW5sZXNzIGl0IHdvcmtzLgotKyAgaWYgdGVzdCAiJHBpcGVfd29ya3MiID0g eWVzOyB0aGVuCi0rICAgIGJyZWFrCi0rICBlbHNlCi0rICAgIGx0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3BpcGU9Ci0rICBmaQotK2RvbmUKLStdKQotK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xv YmFsX3N5bWJvbF9waXBlIjsgdGhlbgotKyAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY2Rl Y2w9Ci0rZmkKLStpZiB0ZXN0IC16ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSRsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jZGVjbCI7IHRoZW4KLSsgIEFDX01TR19SRVNVTFQoZmFp bGVkKQotK2Vsc2UKLSsgIEFDX01TR19SRVNVTFQob2spCi0rZmkKLSsKLSsjIFJlc3BvbnNlIGZp bGUgc3VwcG9ydC4KLStpZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJNUyBkdW1wYmlu IjsgdGhlbgotKyAgbm1fZmlsZV9saXN0X3NwZWM9J0AnCi0rZWxpZiAkTk0gLS1oZWxwIDI+L2Rl di9udWxsIHwgZ3JlcCAnW1tAXV1GSUxFJyA+L2Rldi9udWxsOyB0aGVuCi0rICBubV9maWxlX2xp c3Rfc3BlYz0nQCcKLStmaQotKwotK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3BpcGVdLCBbbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZV0sIFsxXSwKLSsgICAgW1Rha2UgdGhlIG91dHB1dCBv ZiBubSBhbmQgcHJvZHVjZSBhIGxpc3Rpbmcgb2YgcmF3IHN5bWJvbHMgYW5kIEMgbmFtZXNdKQot K19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NkZWNsXSwgW2x0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3RvX2NkZWNsXSwgWzFdLAotKyAgICBbVHJhbnNmb3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4g YSBwcm9wZXIgQyBkZWNsYXJhdGlvbl0pCi0rX0xUX0RFQ0woW2dsb2JhbF9zeW1ib2xfdG9fY19u YW1lX2FkZHJlc3NdLAotKyAgICBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2Fk ZHJlc3NdLCBbMV0sCi0rICAgIFtUcmFuc2Zvcm0gdGhlIG91dHB1dCBvZiBubSBpbiBhIEMgbmFt ZSBhZGRyZXNzIHBhaXJdKQotK19MVF9ERUNMKFtnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRy ZXNzX2xpYl9wcmVmaXhdLAotKyAgICBbbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1l X2FkZHJlc3NfbGliX3ByZWZpeF0sIFsxXSwKLSsgICAgW1RyYW5zZm9ybSB0aGUgb3V0cHV0IG9m IG5tIGluIGEgQyBuYW1lIGFkZHJlc3MgcGFpciB3aGVuIGxpYiBwcmVmaXggaXMgbmVlZGVkXSkK LStfTFRfREVDTChbXSwgW25tX2ZpbGVfbGlzdF9zcGVjXSwgWzFdLAotKyAgICBbU3BlY2lmeSBm aWxlbmFtZSBjb250YWluaW5nIGlucHV0IGZpbGVzIGZvciAkTk1dKQotK10pICMgX0xUX0NNRF9H TE9CQUxfU1lNQk9MUwotKwotKwotKyMgX0xUX0NPTVBJTEVSX1BJQyhbVEFHTkFNRV0pCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZ1bihbX0xUX0NPTVBJTEVSX1BJQ10s Ci0rW200X3JlcXVpcmUoW19MVF9UQUdfQ09NUElMRVJdKWRubAotK19MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl93bCwgJDEpPQotK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0KLStfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Ci0rCi0rbTRfaWYo WyQxXSwgW0NYWF0sIFsKLSsgICMgQysrIHNwZWNpZmljIGNhc2VzIGZvciBwaWMsIHN0YXRpYywg d2wsIGV0Yy4KLSsgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKyAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4K LSsgICAgYWl4KikKLSsgICAgICAjIEFsbCBBSVggY29kZSBpcyBQSUMuCi0rICAgICAgaWYgdGVz dCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBw cm9jZXNzb3IKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0 YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAgIGNh c2UgJGhvc3RfY3B1IGluCi0rICAgICAgcG93ZXJwYykKLSsgICAgICAgICAgICAjIHNlZSBjb21t ZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0Ci0rICAgICAgICAgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsgICAgICAgIDs7Ci0rICAgICAgbTY4 aykKLSsgICAgICAgICAgICAjIEZJWE1FOiB3ZSBuZWVkIGF0IGxlYXN0IDY4MDIwIGNvZGUgdG8g YnVpbGQgc2hhcmVkIGxpYnJhcmllcywgYnV0Ci0rICAgICAgICAgICAgIyBhZGRpbmcgdGhlIGAt bTY4MDIwJyBmbGFnIHRvIEdDQyBwcmV2ZW50cyBidWlsZGluZyBhbnl0aGluZyBiZXR0ZXIsCi0r ICAgICAgICAgICAgIyBsaWtlIGAtbTY4MDQwJy4KLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1tNjgwMjAgLXJlc2lkZW50MzIgLW1hbHdheXMtcmVz dG9yZS1hNCcKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGJl b3MqIHwgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KiB8IG9zZjMqIHwgb3NmNCogfCBvc2Y1 KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgdGhlc2UgT1Nlcy4KLSsgICAgICA7 OwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgb3MyKiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAg ICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIg aXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBz aG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAgICAgICMgQWx0aG91Z2ggdGhl IGN5Z3dpbiBnY2MgaWdub3JlcyAtZlBJQywgc3RpbGwgbmVlZCB0aGlzIGZvciBvbGQtc3R5bGUK LSsgICAgICAjICgtLWRpc2FibGUtYXV0by1pbXBvcnQpIGxpYnJhcmllcwotKyAgICAgIG00X2lm KFskMV0sIFtHQ0pdLCBbXSwKLSsJW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLURETExfRVhQT1JUJ10pCi0rICAgICAgOzsKLSsgICAgZGFyd2luKiB8IHJoYXBzb2R5KikK LSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBvbiB0aGlzIHBsYXRmb3JtCi0rICAgICAgIyBD b21tb24gc3ltYm9scyBub3QgYWxsb3dlZCBpbiBNSF9EWUxJQiBmaWxlcwotKyAgICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZuby1jb21tb24nCi0rICAgICAgOzsK LSsgICAgKmRqZ3BwKikKLSsgICAgICAjIERKR1BQIGRvZXMgbm90IHN1cHBvcnQgc2hhcmVkIGxp YnJhcmllcyBhdCBhbGwKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Ci0rICAgICAgOzsKLSsgICAgaGFpa3UqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0 IGZvciBIYWlrdS4KLSsgICAgICAjIFRoZSAiLXN0YXRpYyIgZmxhZyBleGlzdHMsIGJ1dCBpcyBi cm9rZW4uCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPQot KyAgICAgIDs7Ci0rICAgIGludGVyaXhbWzMtOV1dKikKLSsgICAgICAjIEludGVyaXggMy54IGdj YyAtZnBpYy8tZlBJQyBvcHRpb25zIGdlbmVyYXRlIGJyb2tlbiBjb2RlLgotKyAgICAgICMgSW5z dGVhZCwgd2UgcmVsb2NhdGUgc2hhcmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgotKyAgICAgIDs7 Ci0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCV9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0tS2NvbmZvcm1fcGljCi0rICAgICAg ZmkKLSsgICAgICA7OwotKyAgICBocHV4KikKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBm b3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAzMi1iaXQKLSsgICAgICAjIFBBIEhQLVVY LiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZhdWx0IGJ1dCB0aGUgcGljIGZsYWcKLSsg ICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVsIGFuZCBhZmZlY3RzIGlubGluaW5nLgot KyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgaHBwYSo2NCopCi0rCTs7Ci0rICAgICAg KikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycKLSsJOzsK LSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgKnFueCogfCAqbnRvKikKLSsgICAgICAjIFFO WCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9wdGlvbiB0b28sIG90 aGVyd2lzZQotKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsgICAgICBfTFRfVEFHVkFSKGx0 X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgOzsKLSsgICAg KikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwot KyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAg ICAgIGFpeFtbNC05XV0qKQotKwkjIEFsbCBBSVggY29kZSBpcyBQSUMuCi0rCWlmIHRlc3QgIiRo b3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSAgIyBBSVggNSBub3cgc3VwcG9ydHMgSUE2NCBwcm9j ZXNzb3IKLSsJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3Rh dGljJwotKwllbHNlCi0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEp PSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCi0rCWZpCi0rCTs7Ci0rICAgICAgY2hvcnVz KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJY3hjaDY4KikKLSsJICAjIEdyZWVuIEhpbGxz IEMrKyBDb21waWxlcgotKwkgICMgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSItLW5vX2F1dG9faW5zdGFudGlhdGlvbiAtdSBfX21haW4gLXUgX19wcmVtYWluIC11IF9h Ym9ydCAtciAkQ09PTF9ESVIvbGliL2xpYk9yYi5hICRNVk1FX0RJUi9saWIvQ0MvbGliQy5hICRN Vk1FX0RJUi9saWIvY2xhc3NpeC9saWJjeC5zLmEiCi0rCSAgOzsKLSsJZXNhYwotKwk7OwotKyAg ICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBvczIqIHwgcHczMiogfCBjZWdjYyopCi0rCSMgVGhpcyBo YWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVp bmcKLSsJIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBz eW1ib2xzIGZvciBleGFtcGxlKS4KLSsJbTRfaWYoWyQxXSwgW0dDSl0sIFtdLAotKwkgIFtfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1ERExMX0VYUE9SVCddKQotKwk7Owot KyAgICAgIGRndXgqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIGVjKysqKQotKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgIDs7Ci0r CSAgZ2hjeCopCi0rCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgotKwkgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJwotKwkgICAgOzsKLSsJICAqKQot KwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsJ IyBGcmVlQlNEIHVzZXMgR05VIEMrKwotKwk7OwotKyAgICAgIGhwdXg5KiB8IGhwdXgxMCogfCBo cHV4MTEqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikKLSsJICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJjaGl2ZScKLSsJICAgIGlm IHRlc3QgIiRob3N0X2NwdSIgIT0gaWE2NDsgdGhlbgotKwkgICAgICBfTFRfVEFHVkFSKGx0X3By b2dfY29tcGlsZXJfcGljLCAkMSk9JytaJwotKwkgICAgZmkKLSsJICAgIDs7Ci0rCSAgYUNDKikK LSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPScke3dsfS1hICR7d2x9YXJj aGl2ZScKLSsJICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rCSAgICBocHBhKjY0KnxpYTY0KikKLSsJ ICAgICAgIyArWiB0aGUgZGVmYXVsdAotKwkgICAgICA7OwotKwkgICAgKikKLSsJICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPScrWicKLSsJICAgICAgOzsKLSsJICAg IGVzYWMKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBp bnRlcml4KikKLSsJIyBUaGlzIGlzIGM4OSwgd2hpY2ggaXMgTVMgVmlzdWFsIEMrKyAobm8gc2hh cmVkIGxpYnMpCi0rCSMgQW55b25lIHdhbnRzIHRvIGRvIGEgcG9ydD8KLSsJOzsKLSsgICAgICBp cml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkg IENDKikKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwot KwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJl ZCcKLSsJICAgICMgQ0MgcGljIGZsYWcgLUtQSUMgaXMgdGhlIGRlZmF1bHQuCi0rCSAgICA7Owot KwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbGludXgqIHwgaypic2QqLWdu dSB8IGtvcGVuc29sYXJpcyotZ251KQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIEtDQyop Ci0rCSAgICAjIEtBSSBDKysgQ29tcGlsZXIKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpPSctLWJhY2tlbmQgLVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLWZQSUMnCi0rCSAgICA7OwotKwkgIGVjcGMqICkKLSsJICAgICMg b2xkIEludGVsIEMrKyBmb3IgeDg2XzY0IHdoaWNoIHN0aWxsIHN1cHBvcnRlZCAtS1BJQy4KLSsJ ICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgIF9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycKLSsJICAgIDs7Ci0rCSAg aWNwYyogKQotKwkgICAgIyBJbnRlbCBDKyssIHVzZWQgdG8gYmUgaW5jb21wYXRpYmxlIHdpdGgg R0NDLgotKwkgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55IG1vcmUuCi0rCSAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMnCi0rCSAgICBfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCSAgICA7OwotKwkgIHBn Q0MqIHwgcGdjcHAqKQotKwkgICAgIyBQb3J0bGFuZCBHcm91cCBDKysgY29tcGlsZXIKLSsJICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZnBpYycKLSsJICAgIF9MVF9UQUdWQVIo bHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwkgIGN4 eCopCi0rCSAgICAjIENvbXBhcSBDKysKLSsJICAgICMgTWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBp cyBlbXB0eS4gIEl0IGFwcGVhcnMgdGhhdCBhbGwgQWxwaGEKLSsJICAgICMgTGludXggYW5kIENv bXBhcSBUcnU2NCBVbml4IG9iamVjdHMgYXJlIFBJQy4KLSsJICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0KLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9z dGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rCSAgICA7OwotKwkgIHhsYyogfCB4bEMqIHwgYmd4 bFtbY0NdXSogfCBtcGl4bFtbY0NdXSopCi0rCSAgICAjIElCTSBYTCA4LjAsIDkuMCBvbiBQUEMg YW5kIEJsdWVHZW5lCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0n LVdsLCcKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLXFwaWMn Ci0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1xc3RhdGlj bGluaycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVx YCBpbgotKwkgICAgKlN1blwgQyopCi0rCSAgICAgICMgU3VuIEMrKyA1LjkKLSsJICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICAgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICcKLSsJICAgICAg OzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBseW54b3MqKQot Kwk7OwotKyAgICAgIG04OGsqKQotKwk7OwotKyAgICAgIG12cyopCi0rCWNhc2UgJGNjX2Jhc2Vu YW1lIGluCi0rCSAgY3h4KikKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMs ICQxKT0nLVcgYyxleHBvcnRhbGwnCi0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2Fj Ci0rCTs7Ci0rICAgICAgbmV0YnNkKikKLSsJOzsKLSsgICAgICAqcW54KiB8ICpudG8qKQotKyAg ICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRp b24gdG9vLCBvdGhlcndpc2UKLSsgICAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsgICAgICAg IF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKLSsg ICAgICAgIDs7Ci0rICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKwljYXNlICRjY19iYXNl bmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2ws ICQxKT0nLS1iYWNrZW5kIC1XbCwnCi0rCSAgICA7OwotKwkgIFJDQyopCi0rCSAgICAjIFJhdGlv bmFsIEMrKyAyLjQuMQotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEp PSctcGljJwotKwkgICAgOzsKLSsJICBjeHgqKQotKwkgICAgIyBEaWdpdGFsL0NvbXBhcSBDKysK LSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAg IyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAgSXQgYXBwZWFycyB0aGF0IGFsbCBB bHBoYQotKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0IFVuaXggb2JqZWN0cyBhcmUgUElD LgotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPQotKwkgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsJICAg IDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBwc29zKikKLSsJOzsK LSsgICAgICBzb2xhcmlzKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyogfCBzdW5D QyopCi0rCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCi0rCSAgICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1LUElDJwotKwkgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICAgIF9MVF9U QUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPSctUW9wdGlvbiBsZCAnCi0rCSAgICA7Owot KwkgIGdjeCopCi0rCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21waWxlcgotKwkgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctUElDJwotKwkgICAgOzsKLSsJICAqKQot KwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHN1bm9zNCopCi0rCWNhc2UgJGNjX2Jhc2Vu YW1lIGluCi0rCSAgQ0MqKQotKwkgICAgIyBTdW4gQysrIDQueAotKwkgICAgX0xUX1RBR1ZBUihs dF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctcGljJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycKLSsJICAgIDs7Ci0rCSAgbGNjKikKLSsJ ICAgICMgTHVjaWQKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LXBpYycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBz eXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgT3BlblVOSVgqKQotKwlj YXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl93bCwgJDEpPSctV2wsJwotKwkgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpPSctS1BJQycKLSsJICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0 aWMsICQxKT0nLUJzdGF0aWMnCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgdGFuZGVt KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBOQ0MqKQotKwkgICAgIyBOb25TdG9wLVVY IE5DQyAzLjIwCi0rCSAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1L UElDJwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHZ4 d29ya3MqKQotKwk7OwotKyAgICAgICopCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9j YW5fYnVpbGRfc2hhcmVkLCAkMSk9bm8KLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLStdLAotK1sK LSsgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl93bCwgJDEpPSctV2wsJwotKyAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJf c3RhdGljLCAkMSk9Jy1zdGF0aWMnCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBh aXgqKQotKyAgICAgICMgQWxsIEFJWCBjb2RlIGlzIFBJQy4KLSsgICAgICBpZiB0ZXN0ICIkaG9z dF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJQTY0IHByb2Nlc3Nv cgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwot KyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9z dF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJv dXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKyAgICAgICAgOzsKLSsgICAgICBtNjhrKQotKyAg ICAgICAgICAgICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBz aGFyZWQgbGlicmFyaWVzLCBidXQKLSsgICAgICAgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAn IGZsYWcgdG8gR0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwKLSsgICAgICAg ICAgICAjIGxpa2UgYC1tNjgwNDAnLgotKyAgICAgICAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKT0nLW02ODAyMCAtcmVzaWRlbnQzMiAtbWFsd2F5cy1yZXN0b3JlLWE0 JwotKyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyogfCBp cml4NSogfCBpcml4NiogfCBub25zdG9wdXgqIHwgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAg ICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IGZvciB0aGVzZSBPU2VzLgotKyAgICAgIDs7Ci0rCi0r ICAgIG1pbmd3KiB8IGN5Z3dpbiogfCBwdzMyKiB8IG9zMiogfCBjZWdjYyopCi0rICAgICAgIyBU aGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRlbGwgd2hldGhlciBpdCBp cyBiZWluZwotKyAgICAgICMgYnVpbHQgZm9yIGluY2x1c2lvbiBpbiBhIGRsbCAoYW5kIHNob3Vs ZCBleHBvcnQgc3ltYm9scyBmb3IgZXhhbXBsZSkuCi0rICAgICAgIyBBbHRob3VnaCB0aGUgY3ln d2luIGdjYyBpZ25vcmVzIC1mUElDLCBzdGlsbCBuZWVkIHRoaXMgZm9yIG9sZC1zdHlsZQotKyAg ICAgICMgKC0tZGlzYWJsZS1hdXRvLWltcG9ydCkgbGlicmFyaWVzCi0rICAgICAgbTRfaWYoWyQx XSwgW0dDSl0sIFtdLAotKwlbX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSct RERMTF9FWFBPUlQnXSkKLSsgICAgICA7OwotKwotKyAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQot KyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxhdGZvcm0KLSsgICAgICAjIENv bW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZpbGVzCi0rICAgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZm5vLWNvbW1vbicKLSsgICAgICA7Owot KwotKyAgICBoYWlrdSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIEhhaWt1Lgot KyAgICAgICMgVGhlICItc3RhdGljIiBmbGFnIGV4aXN0cywgYnV0IGlzIGJyb2tlbi4KLSsgICAg ICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Ci0rICAgICAgOzsKLSsK LSsgICAgaHB1eCopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIDY0LWJpdCBQQSBI UC1VWCwgYnV0IG5vdCBmb3IgMzItYml0Ci0rICAgICAgIyBQQSBIUC1VWC4gIE9uIElBNjQgSFAt VVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCi0rICAgICAgIyBzZXRzIHRo ZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQgYWZmZWN0cyBpbmxpbmluZy4KLSsgICAgICBjYXNlICRo b3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqKQotKwkjICtaIHRoZSBkZWZhdWx0Ci0rCTs7Ci0r ICAgICAgKikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctZlBJQycK LSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgaW50ZXJpeFtbMy05XV0qKQot KyAgICAgICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJv a2VuIGNvZGUuCi0rICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVz IGF0IHJ1bnRpbWUuCi0rICAgICAgOzsKLSsKLSsgICAgbXNkb3NkamdwcCopCi0rICAgICAgIyBK dXN0IGJlY2F1c2Ugd2UgdXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ugc3VkZGVubHkgZ2V0IHNoYXJl ZCBsaWJyYXJpZXMKLSsgICAgICAjIG9uIHN5c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZW0u Ci0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQx KT1ubwotKyAgICAgIGVuYWJsZV9zaGFyZWQ9bm8KLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8 ICpxbngqKQotKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1z aGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgot KyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJl ZCcKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNy L25lYzsgdGhlbgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9LUtjb25m b3JtX3BpYwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBfTFRfVEFH VkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9Jy1mUElDJwotKyAgICAgIDs7Ci0rICAgIGVz YWMKLSsKLSsgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgbnZjYyopICMgQ3VkYSBDb21w aWxlciBEcml2ZXIgMi4yCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1YbGlua2VyICcKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1YY29tcGlsZXIgLWZQSUMnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZWxzZQotKyAg ICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0byBwYXNzIGxpbmtlciBmbGFncyB0aHJvdWdoIHRo ZSBzeXN0ZW0gY29tcGlsZXIuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4KikKLSsg ICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsgICAgICBp ZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIEFJWCA1IG5vdyBzdXBwb3J0cyBJ QTY0IHByb2Nlc3NvcgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9 Jy1Cc3RhdGljJwotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5leHAnCi0rICAgICAgZmkKLSsgICAg ICA7OwotKwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQot KyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNvdXJjZSBmaWxlIGNhbiB0ZWxsIHdo ZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwg KGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKyAgICAgIG00X2lmKFsk MV0sIFtHQ0pdLCBbXSwKLSsJW19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0n LURETExfRVhQT1JUJ10pCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhw dXgxMSopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwn Ci0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIElBNjQgSFAtVVggYW5kIDY0LWJpdCBI UC1VWCwgYnV0Ci0rICAgICAgIyBub3QgZm9yIFBBIEhQLVVYLgotKyAgICAgIGNhc2UgJGhvc3Rf Y3B1IGluCi0rICAgICAgaHBwYSo2NCp8aWE2NCopCi0rCSMgK1ogdGhlIGRlZmF1bHQKLSsJOzsK LSsgICAgICAqKQotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAkMSk9JytaJwot Kwk7OwotKyAgICAgIGVzYWMKLSsgICAgICAjIElzIHRoZXJlIGEgYmV0dGVyIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljIHRoYXQgd29ya3Mgd2l0aCB0aGUgYnVuZGxlZCBDQz8KLSsgICAgICBfTFRf VEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9JyR7d2x9LWEgJHt3bH1hcmNoaXZl JwotKyAgICAgIDs7Ci0rCi0rICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICAg ICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgIyBQ SUMgKHdpdGggLUtQSUMpIGlzIHRoZSBkZWZhdWx0LgotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9zdGF0aWMsICQxKT0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAg bGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQotKyAgICAgIGNhc2UgJGNj X2Jhc2VuYW1lIGluCi0rICAgICAgIyBvbGQgSW50ZWwgZm9yIHg4Nl82NCB3aGljaCBzdGlsbCBz dXBwb3J0ZWQgLUtQSUMuCi0rICAgICAgZWNjKikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3dsLCAkMSk9Jy1XbCwnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0nLUtQSUMnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0 YXRpYycKLSsgICAgICAgIDs7Ci0rICAgICAgIyBpY2MgdXNlZCB0byBiZSBpbmNvbXBhdGlibGUg d2l0aCBHQ0MuCi0rICAgICAgIyBJQ0MgMTAgZG9lc24ndCBhY2NlcHQgLUtQSUMgYW55IG1vcmUu Ci0rICAgICAgaWNjKiB8IGlmb3J0KikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3ds LCAkMSk9Jy1XbCwnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZQ SUMnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLXN0YXRpYycK LSsgICAgICAgIDs7Ci0rICAgICAgIyBMYWhleSBGb3J0cmFuIDguMS4KLSsgICAgICBsZjk1KikK LSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rCV9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLS1zaGFyZWQnCi0rCV9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLS1zdGF0aWMnCi0rCTs7Ci0rICAgICAgbmFnZm9y KikKLSsJIyBOQUcgRm9ydHJhbiBjb21waWxlcgotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfd2wsICQxKT0nLVdsLC1XbCwsJwotKwlfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9Jy1QSUMnCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0n LUJzdGF0aWMnCi0rCTs7Ci0rICAgICAgcGdjYyogfCBwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSog fCBwZ2ZvcnRyYW4qKQotKyAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBjb21waWxlcnMgKCpub3Qq IHRoZSBQZW50aXVtIGdjYyBjb21waWxlciwKLSsJIyB3aGljaCBsb29rcyB0byBiZSBhIGRlYWQg cHJvamVjdCkKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0r CV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLWZwaWMnCi0rCV9MVF9UQUdW QVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0nLUJzdGF0aWMnCi0rICAgICAgICA7Owot KyAgICAgIGNjYyopCi0rICAgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfd2wsICQx KT0nLVdsLCcKLSsgICAgICAgICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgotKyAgICAgICAgX0xU X1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsgICAg ICAgIDs7Ci0rICAgICAgeGwqIHwgYmd4bCogfCBiZ2YqIHwgbXBpeGwqKQotKwkjIElCTSBYTCBD IDguMC9Gb3J0cmFuIDEwLjEsIDExLjEgb24gUFBDIGFuZCBCbHVlR2VuZQotKwlfTFRfVEFHVkFS KGx0X3Byb2dfY29tcGlsZXJfd2wsICQxKT0nLVdsLCcKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctcXBpYycKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0 YXRpYywgJDEpPSctcXN0YXRpY2xpbmsnCi0rCTs7Ci0rICAgICAgKikKLSsJY2FzZSBgJENDIC1W IDI+JjEgfCBzZWQgNXFgIGluCi0rCSpTdW5cIEYqIHwgKlN1bipGb3J0cmFuKikKLSsJICAjIFN1 biBGb3J0cmFuIDguMyBwYXNzZXMgYWxsIHVucmVjb2duaXplZCBmbGFncyB0byB0aGUgbGlua2Vy Ci0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsJICBf TFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKwkgIF9M VF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl93bCwgJDEpPScnCi0rCSAgOzsKLSsJKlN1blwgQyop Ci0rCSAgIyBTdW4gQyA1LjkKLSsJICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGljLCAk MSk9Jy1LUElDJwotKwkgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9zdGF0aWMsICQxKT0n LUJzdGF0aWMnCi0rCSAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwn Ci0rCSAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBu ZXdzb3M2KQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQ SUMnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0 YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngqKQotKyAgICAgICMgUU5YIHVz ZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQgb3B0aW9uIHRvbywgb3RoZXJ3 aXNlCi0rICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9waWMsICQxKT0nLWZQSUMgLXNoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICBv c2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgIyBBbGwgT1NGLzEgY29kZSBpcyBQSUMuCi0rICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctbm9uX3NoYXJlZCcKLSsg ICAgICA7OwotKwotKyAgICByZG9zKikKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1ub25fc2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAgIHNvbGFyaXMq KQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtQSUMnCi0r ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0YXRpYycK LSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KiB8 IHN1bmY3NyogfCBzdW5mOTAqIHwgc3VuZjk1KikKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBp bGVyX3dsLCAkMSk9Jy1Rb3B0aW9uIGxkICc7OwotKyAgICAgICopCi0rCV9MVF9UQUdWQVIobHRf cHJvZ19jb21waWxlcl93bCwgJDEpPSctV2wsJzs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0r Ci0rICAgIHN1bm9zNCopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAk MSk9Jy1Rb3B0aW9uIGxkICcKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfcGlj LCAkMSk9Jy1QSUMnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywg JDEpPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCB8IHN5c3Y0LjJ1dzIqIHwg c3lzdjQuMyopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1X bCwnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSctS1BJQycK LSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGlj JwotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y0Kk1QKikKLSsgICAgICBpZiB0ZXN0IC1kIC91c3Iv bmVjIDt0aGVuCi0rCV9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0nLUtjb25m b3JtX3BpYycKLSsJX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYywgJDEpPSctQnN0 YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8 IHNjbzMuMnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCi0rICAgICAgX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpPSctS1BJQycKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGls ZXJfc3RhdGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0rICAgIHVuaWNvcyopCi0r ICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX3dsLCAkMSk9Jy1XbCwnCi0rICAgICAg X0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubwotKyAg ICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxl cl9waWMsICQxKT0nLXBpYycKLSsgICAgICBfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljLCAkMSk9Jy1Cc3RhdGljJwotKyAgICAgIDs7Ci0rCi0rICAgICopCi0rICAgICAgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nhbl9idWlsZF9zaGFyZWQsICQxKT1ubwotKyAgICAgIDs7 Ci0rICAgIGVzYWMKLSsgIGZpCi0rXSkKLStjYXNlICRob3N0X29zIGluCi0rICAjIEZvciBwbGF0 Zm9ybXMgd2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoKLSsg ICpkamdwcCopCi0rICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0KLSsg ICAgOzsKLSsgICopCi0rICAgIF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKT0i JF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKUAmdEBtNF9pZihbJDFdLFtdLFsg LURQSUNdLFttNF9pZihbJDFdLFtDWFhdLFsgLURQSUNdLFtdKV0pIgotKyAgICA7OwotK2VzYWMK LSsKLStBQ19DQUNIRV9DSEVDSyhbZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQSUNd LAotKyAgW19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9waWMsICQxKV0sCi0rICBbX0xU X1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSRfTFRfVEFHVkFSKGx0X3Byb2df Y29tcGlsZXJfcGljLCAkMSldKQotK19MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQx KT0kX0xUX1RBR1ZBUihsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYywgJDEpCi0rCi0rIwotKyMgQ2hl Y2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0raWYgdGVz dCAtbiAiJF9MVF9UQUdWQVIobHRfcHJvZ19jb21waWxlcl9waWMsICQxKSI7IHRoZW4KLSsgIF9M VF9DT01QSUxFUl9PUFRJT04oW2lmICRjb21waWxlciBQSUMgZmxhZyAkX0xUX1RBR1ZBUihsdF9w cm9nX2NvbXBpbGVyX3BpYywgJDEpIHdvcmtzXSwKLSsgICAgW19MVF9UQUdWQVIobHRfY3ZfcHJv Z19jb21waWxlcl9waWNfd29ya3MsICQxKV0sCi0rICAgIFskX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3BpYywgJDEpQCZ0QG00X2lmKFskMV0sW10sWyAtRFBJQ10sW200X2lmKFskMV0sW0NY WF0sWyAtRFBJQ10sW10pXSldLCBbXSwKLSsgICAgW2Nhc2UgJF9MVF9UQUdWQVIobHRfcHJvZ19j b21waWxlcl9waWMsICQxKSBpbgotKyAgICAgIiIgfCAiICIqKSA7OwotKyAgICAgKikgX0xUX1RB R1ZBUihsdF9wcm9nX2NvbXBpbGVyX3BpYywgJDEpPSIgJF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl9waWMsICQxKSIgOzsKLSsgICAgIGVzYWNdLAotKyAgICBbX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX3BpYywgJDEpPQotKyAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX2Nh bl9idWlsZF9zaGFyZWQsICQxKT1ub10pCi0rZmkKLStfTFRfVEFHREVDTChbcGljX2ZsYWddLCBb bHRfcHJvZ19jb21waWxlcl9waWNdLCBbMV0sCi0rCVtBZGRpdGlvbmFsIGNvbXBpbGVyIGZsYWdz IGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHNdKQotKwotK19MVF9UQUdERUNMKFt3bF0sIFts dF9wcm9nX2NvbXBpbGVyX3dsXSwgWzFdLAotKwlbSG93IHRvIHBhc3MgYSBsaW5rZXIgZmxhZyB0 aHJvdWdoIHRoZSBjb21waWxlcl0pCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBzdGF0 aWMgZmxhZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0rd2w9JF9MVF9UQUdWQVIobHRfcHJvZ19jb21w aWxlcl93bCwgJDEpIGV2YWwgbHRfdG1wX3N0YXRpY19mbGFnPVwiJF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9zdGF0aWMsICQxKVwiCi0rX0xUX0xJTktFUl9PUFRJT04oW2lmICRjb21waWxl ciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzXSwKLSsgIF9MVF9UQUdWQVIo bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MsICQxKSwKLSsgICRsdF90bXBfc3RhdGlj X2ZsYWcsCi0rICBbXSwKLSsgIFtfTFRfVEFHVkFSKGx0X3Byb2dfY29tcGlsZXJfc3RhdGljLCAk MSk9XSkKLStfTFRfVEFHREVDTChbbGlua19zdGF0aWNfZmxhZ10sIFtsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY10sIFsxXSwKLSsJW0NvbXBpbGVyIGZsYWcgdG8gcHJldmVudCBkeW5hbWljIGxpbmtp bmddKQotK10pIyBfTFRfQ09NUElMRVJfUElDCi0rCi0rCi0rIyBfTFRfTElOS0VSX1NITElCUyhb VEFHTkFNRV0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTZWUgaWYgdGhl IGxpbmtlciBzdXBwb3J0cyBidWlsZGluZyBzaGFyZWQgbGlicmFyaWVzLgotK200X2RlZnVuKFtf TFRfTElOS0VSX1NITElCU10sCi0rW0FDX1JFUVVJUkUoW0xUX1BBVEhfTERdKWRubAotK0FDX1JF UVVJUkUoW0xUX1BBVEhfTk1dKWRubAotK200X3JlcXVpcmUoW19MVF9QQVRIX01BTklGRVNUX1RP T0xdKWRubAotK200X3JlcXVpcmUoW19MVF9GSUxFVVRJTFNfREVGQVVMVFNdKWRubAotK200X3Jl cXVpcmUoW19MVF9ERUNMX0VHUkVQXSlkbmwKLSttNF9yZXF1aXJlKFtfTFRfREVDTF9TRURdKWRu bAotK200X3JlcXVpcmUoW19MVF9DTURfR0xPQkFMX1NZTUJPTFNdKWRubAotK200X3JlcXVpcmUo W19MVF9UQUdfQ09NUElMRVJdKWRubAotK0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgJGNv bXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKLSttNF9pZihb JDFdLCBbQ1hYXSwgWwotKyAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyRO TSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcn cy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgIF9MVF9UQUdW QVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09GRlNFVF9UQUJMRV98X0dMT0JBTF9f RltJRF1fLionXQotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgYWl4W1s0LTldXSopCi0rICAgICMg SWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9u LgotKyAgICAjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRl bWFuZ2xlIHdpdGggR05VIG5tCi0rICAgICMgQWxzbywgQUlYIG5tIHRyZWF0cyB3ZWFrIGRlZmlu ZWQgc3ltYm9scyBsaWtlIG90aGVyIGdsb2JhbCBkZWZpbmVkCi0rICAgICMgc3ltYm9scywgd2hl cmVhcyBHTlUgbm0gbWFya3MgdGhlbSBhcyAiVyIuCi0rICAgIGlmICROTSAtViAyPiYxIHwgJEdS RVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1i b2xzX2NtZHMsICQxKT0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7 IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikgfHwg KFwkIDIgPT0gIlciKSkgJiYgKFtzdWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwk IDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICAgIGVsc2UKLSsgICAg ICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1CQ3BnICRsaWJvYmpz ICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0g IkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoW3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsg cHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAtdSA+ICRleHBvcnRfc3ltYm9scycKLSsgICAgZmkK LSsgICAgOzsKLSsgIHB3MzIqKQotKyAgICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMs ICQxKT0iJGx0ZGxsX2NtZHMiCi0rICAgIDs7Ci0rICBjeWd3aW4qIHwgbWluZ3cqIHwgY2VnY2Mq KQotKyAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICBjbCopIDs7Ci0rICAgICopCi0rICAg ICAgX0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29u dmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAtZSAnXCcnL15bW0JDREdSU11d W1sgXV0vcy8uKltbIF1dXChbW14gXV0qXCkvXDEgREFUQS87cy9eLipbWyBdXV9fbm1fX1woW1te IF1dKlwpW1sgXV1bW14gXV0qL1wxIERBVEEvOy9eSVtbIF1dL2Q7L15bW0FJVFddXVtbIF1dL3Mv LiogLy8nXCcnIHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICAgICAgX0xUX1RB R1ZBUihleGNsdWRlX2V4cHN5bXMsICQxKT1bJ1tfXStHTE9CQUxfT0ZGU0VUX1RBQkxFX3xbX10r R0xPQkFMX19bRklEXV8uKnxbX10raGVhZF9bQS1aYS16MC05X10rX2RsbHxbQS1aYS16MC05X10r X2RsbF9pbmFtZSddCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgKikKLSsgICAg X0xUX1RBR1ZBUihleHBvcnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVu aWVuY2UgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0 IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsgICAgOzsKLSsgIGVzYWMKLStdLCBbCi0rICBy dW5wYXRoX3Zhcj0KLSsgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KLSsg IF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9Ci0rICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQx KT0KLSsgIF9MVF9UQUdWQVIoY29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9bm8KLSsgIF9MVF9U QUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPW5vCi0rICBfTFRf VEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQotKyAgX0xUX1RBR1ZBUihleHBv cnRfc3ltYm9sc19jbWRzLCAkMSk9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFs X3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBv cnRfc3ltYm9scycKLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfYXV0b21hdGljLCAkMSk9bm8KLSsg IF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfZGlyZWN0X2Fic29sdXRlLCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPQotKyAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X2xkLCAkMSk9Ci0rICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0K LSsgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPW5vCi0rICBfTFRfVEFHVkFSKGhh cmRjb2RlX3NobGlicGF0aF92YXIsICQxKT11bnN1cHBvcnRlZAotKyAgX0xUX1RBR1ZBUihpbmhl cml0X3JwYXRoLCAkMSk9bm8KLSsgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXVu a25vd24KLSsgIF9MVF9UQUdWQVIobW9kdWxlX2NtZHMsICQxKT0KLSsgIF9MVF9UQUdWQVIobW9k dWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rICBfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3 X2NtZHMsICQxKT0KLSsgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHMs ICQxKT0KLSsgIF9MVF9UQUdWQVIodGhyZWFkX3NhZmVfZmxhZ19zcGVjLCAkMSk9Ci0rICBfTFRf VEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0rICAjIGluY2x1ZGVfZXhwc3lt cyBzaG91bGQgYmUgYSBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBzeW1ib2xzIHRvIGJlICphbHdh eXMqCi0rICAjIGluY2x1ZGVkIGluIHRoZSBzeW1ib2wgbGlzdAotKyAgX0xUX1RBR1ZBUihpbmNs dWRlX2V4cHN5bXMsICQxKT0KLSsgICMgZXhjbHVkZV9leHBzeW1zIGNhbiBiZSBhbiBleHRlbmRl ZCByZWdleHAgb2Ygc3ltYm9scyB0byBleGNsdWRlCi0rICAjIGl0IHdpbGwgYmUgd3JhcHBlZCBi eSBgICgnIGFuZCBgKSQnLCBzbyBvbmUgbXVzdCBub3QgbWF0Y2ggYmVnaW5uaW5nIG9yCi0rICAj IGVuZCBvZiBsaW5lLiAgRXhhbXBsZTogYGF8YmN8LipkLionIHdpbGwgZXhjbHVkZSB0aGUgc3lt Ym9scyBgYScgYW5kIGBiYycsCi0rICAjIGFzIHdlbGwgYXMgYW55IHN5bWJvbCB0aGF0IGNvbnRh aW5zIGBkJy4KLSsgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydfR0xPQkFMX09G RlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionXQotKyAgIyBBbHRob3VnaCBfR0xPQkFMX09G RlNFVF9UQUJMRV8gaXMgYSB2YWxpZCBzeW1ib2wgQyBuYW1lLCBtb3N0IGEub3V0Ci0rICAjIHBs YXRmb3JtcyAoYWIpdXNlIGl0IGluIFBJQyBjb2RlLCBidXQgdGhlaXIgbGlua2VycyBnZXQgY29u ZnVzZWQgaWYKLSsgICMgdGhlIHN5bWJvbCBpcyBleHBsaWNpdGx5IHJlZmVyZW5jZWQuICBTaW5j ZSBwb3J0YWJsZSBjb2RlIGNhbm5vdAotKyAgIyByZWx5IG9uIHRoaXMgc3ltYm9sIG5hbWUsIGl0 J3MgcHJvYmFibHkgZmluZSB0byBuZXZlciBpbmNsdWRlIGl0IGluCi0rICAjIHByZWxvYWRlZCBz eW1ib2wgdGFibGVzLgotKyAgIyBFeGNsdWRlIHNoYXJlZCBsaWJyYXJ5IGluaXRpYWxpemF0aW9u L2ZpbmFsaXphdGlvbiBzeW1ib2xzLgotK2RubCBOb3RlIGFsc28gYWRqdXN0IGV4Y2x1ZGVfZXhw c3ltcyBmb3IgQysrIGFib3ZlLgotKyAgZXh0cmFjdF9leHBzeW1zX2NtZHM9Ci0rCi0rICBjYXNl ICRob3N0X29zIGluCi0rICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAg ICMgRklYTUU6IHRoZSBNU1ZDKysgcG9ydCBoYXNuJ3QgYmVlbiB0ZXN0ZWQgaW4gYSBsb29vb25n IHRpbWUKLSsgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUgdGhh dCB3ZSBhcmUgdXNpbmcKLSsgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KLSsgICAgaWYgdGVz dCAiJEdDQyIgIT0geWVzOyB0aGVuCi0rICAgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgZmkKLSsg ICAgOzsKLSsgIGludGVyaXgqKQotKyAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhpcyBpcyBn Y2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQotKyAgICB3aXRoX2dudV9sZD15ZXMKLSsgICAgOzsK LSsgIG9wZW5ic2QqKQotKyAgICB3aXRoX2dudV9sZD1ubwotKyAgICA7OwotKyAgZXNhYwotKwot KyAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT15ZXMKLSsKLSsgICMgT24gc29tZSB0YXJnZXRz LCBHTlUgbGQgaXMgY29tcGF0aWJsZSBlbm91Z2ggd2l0aCB0aGUgbmF0aXZlIGxpbmtlcgotKyAg IyB0aGF0IHdlJ3JlIGJldHRlciBvZmYgdXNpbmcgdGhlIG5hdGl2ZSBpbnRlcmZhY2UgZm9yIGJv dGguCi0rICBsdF91c2VfZ251X2xkX2ludGVyZmFjZT1ubwotKyAgaWYgdGVzdCAiJHdpdGhfZ251 X2xkIiA9IHllczsgdGhlbgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4KikKLSsJ IyBUaGUgQUlYIHBvcnQgb2YgR05VIGxkIGhhcyBhbHdheXMgYXNwaXJlZCB0byBjb21wYXRpYmls aXR5Ci0rCSMgd2l0aCB0aGUgbmF0aXZlIGxpbmtlci4gIEhvd2V2ZXIsIGFzIHRoZSB3YXJuaW5n IGluIHRoZSBHTlUgbGQKLSsJIyBibG9jayBzYXlzLCB2ZXJzaW9ucyBiZWZvcmUgMi4xOS41KiBj b3VsZG4ndCByZWFsbHkgY3JlYXRlIHdvcmtpbmcKLSsJIyBzaGFyZWQgbGlicmFyaWVzLCByZWdh cmRsZXNzIG9mIHRoZSBpbnRlcmZhY2UgdXNlZC4KLSsJY2FzZSBgJExEIC12IDI+JjFgIGluCi0r CSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIDIuMTkuNSopIDs7Ci0rCSAgKlwgXChHTlVcIEJpbnV0 aWxzXClcIDIuW1syLTldXSopIDs7Ci0rCSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIFtbMy05XV0q KSA7OwotKwkgICopCi0rCSAgICBsdF91c2VfZ251X2xkX2ludGVyZmFjZT15ZXMKLSsJICAgIDs7 Ci0rCWVzYWMKLSsJOzsKLSsgICAgICAqKQotKwlsdF91c2VfZ251X2xkX2ludGVyZmFjZT15ZXMK LSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsKLSsgIGlmIHRlc3QgIiRsdF91c2VfZ251X2xkX2lu dGVyZmFjZSIgPSB5ZXM7IHRoZW4KLSsgICAgIyBJZiBhcmNoaXZlX2NtZHMgcnVucyBMRCwgbm90 IENDLCB3bGFyYyBzaG91bGQgYmUgZW1wdHkKLSsgICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAj IFNldCBzb21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0 LiBUaGVzZQotKyAgICAjIGFyZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBu b3Qgc3VwcG9ydGVkLiBQdXR0aW5nIHRoZW0KLSsgICAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJl IG92ZXJyaWRkZW4gaWYgbmVjZXNzYXJ5LgotKyAgICBydW5wYXRoX3Zhcj1MRF9SVU5fUEFUSAot KyAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBh dGggJHt3bH0kbGliZGlyJwotKyAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl YywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rICAgICMgYW5jaWVudCBHTlUgbGQgZGlk bid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4KLSsgICAgaWYgJExEIC0taGVscCAy PiYxIHwgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAg X0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMiJy0td2hvbGUt YXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotKyAgICBl bHNlCi0rICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPQotKyAg ICBmaQotKyAgICBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9bm8KLSsgICAgY2FzZSBgJExEIC12 IDI+JjFgIGluCi0rICAgICAgKkdOVVwgZ29sZCopIHN1cHBvcnRzX2Fub25fdmVyc2lvbmluZz15 ZXMgOzsKLSsgICAgICAqXCBbWzAxXV0uKiB8ICpcIDIuW1swLTldXS4qIHwgKlwgMi4xMC4qKSA7 OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQotKyAgICAgICpcIDIuMTEuOTMuMC4yXCAqKSBzdXBw b3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3LjMgLi4uCi0rICAgICAgKlwgMi4xMS45 Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgTWFuZHJha2UgOC4y IC4uLgotKyAgICAgICpcIDIuMTEuKikgOzsgIyBvdGhlciAyLjExIHZlcnNpb25zCi0rICAgICAg Kikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7OwotKyAgICBlc2FjCi0rCi0rICAgICMg U2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLgotKyAgICBjYXNlICRob3N0 X29zIGluCi0rICAgIGFpeFtbMy05XV0qKQotKyAgICAgICMgT24gQUlYL1BQQywgdGhlIEdOVSBs aW5rZXIgaXMgdmVyeSBicm9rZW4KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7 IHRoZW4KLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwljYXQgPDxfTFRfRU9GIDE+ JjIKLSsKLSsqKiogV2FybmluZzogdGhlIEdOVSBsaW5rZXIsIGF0IGxlYXN0IHVwIHRvIHJlbGVh c2UgMi4xOSwgaXMgcmVwb3J0ZWQKLSsqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5IGNyZWF0 ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KLSsqKiogVGhlcmVmb3JlLCBsaWJ0b29sIGlzIGRp c2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBJZiB5b3UKLSsqKiogcmVhbGx5IGNh cmUgZm9yIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBtYXkgd2FudCB0byBpbnN0YWxsIGJpbnV0aWxz Ci0rKioqIDIuMjAgb3IgYWJvdmUsIG9yIG1vZGlmeSB5b3VyIFBBVEggc28gdGhhdCBhIG5vbi1H TlUgbGlua2VyIGlzIGZvdW5kLgotKyoqKiBZb3Ugd2lsbCB0aGVuIG5lZWQgdG8gcmVzdGFydCB0 aGUgY29uZmlndXJhdGlvbiBwcm9jZXNzLgotKwotK19MVF9FT0YKLSsgICAgICBmaQotKyAgICAg IDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAg cG93ZXJwYykKLSsgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0IC5zbyBz dXBwb3J0Ci0rICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wk c29uYW1lIC1vICRsaWInCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9j bWRzLCAkMSk9JycKLSsgICAgICAgIDs7Ci0rICAgICAgbTY4aykKLSsgICAgICAgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnku ZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRwdXRfb2JqZGlyL2EyaXhs aWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+PiAkb3V0cHV0X29iamRp ci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04gJG1ham9yIiA+PiAkb3V0 cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFJFVklTSU9OICRyZXZp c2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kQVIgJEFSX0ZMQUdTICRs aWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRpciAmJiBhMml4bGlicmFy eSAtMzIpJwotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPSctTCRsaWJkaXInCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51 c19MLCAkMSk9eWVzCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAg ICBiZW9zKikKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQg dGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCV9MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKwkjIEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIz QGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2YgZ2NjCi0rCSMgc3VwcG9ydCAtLXVuZGVm aW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKLSsJX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1ub3N0YXJ0ICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKyAgICAgIGVs c2UKLSsJX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsK LSsKLSsgICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAgICMgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSkgaXMgYWN0dWFsbHkgbWVhbmlu Z2xlc3MsCi0rICAgICAgIyBhcyB0aGVyZSBpcyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsg ICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGly JwotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LS1leHBvcnQtYWxsLXN5bWJvbHMnCi0rICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRf ZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5 bWJvbHMsICQxKT1ubwotKyAgICAgIF9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRp Y19ydW50aW1lcywgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0X3N5bWJvbHNfY21k cywgJDEpPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8 ICRTRUQgLWUgJ1wnJy9eW1tCQ0RHUlNdXVtbIF1dL3MvLipbWyBdXVwoW1teIF1dKlwpL1wxIERB VEEvO3MvXi4qW1sgXV1fX25tX19cKFtbXiBdXSpcKVtbIF1dW1teIF1dKi9cMSBEQVRBLzsvXklb WyBdXS9kOy9eW1tBSVRXXV1bWyBdXS9zLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9y dF9zeW1ib2xzJwotKyAgICAgIF9MVF9UQUdWQVIoZXhjbHVkZV9leHBzeW1zLCAkMSk9WydbX10r R0xPQkFMX09GRlNFVF9UQUJMRV98W19dK0dMT0JBTF9fW0ZJRF1fLip8W19dK2hlYWRfW0EtWmEt ejAtOV9dK19kbGx8W0EtWmEtejAtOV9dK19kbGxfaW5hbWUnXQotKwotKyAgICAgIGlmICRMRCAt LWhlbHAgMj4mMSB8ICRHUkVQICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KLSsgICAg ICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1l bmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGli JwotKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUg KDFzdCBsaW5lCi0rCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3aXNlLCBwcmVw ZW5kLi4uCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdpZiB0ZXN0ICJ4 YCRTRUQgMXEgJGV4cG9ydF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkgIGNwICRleHBv cnRfc3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJZWxzZQotKwkgIGVjaG8g RVhQT1JUUyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwkgIGNhdCAkZXhwb3J0X3N5 bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCWZpfgotKwkkQ0MgLXNoYXJl ZCAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2Ut YmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsgICAgICBlbHNlCi0r CV9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0r ICAgIGhhaWt1KikKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNo YXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRz b25hbWUgLW8gJGxpYicKLSsgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15 ZXMKLSsgICAgICA7OwotKwotKyAgICBpbnRlcml4W1szLTldXSopCi0rICAgICAgX0xUX1RBR1ZB UihoYXJkY29kZV9kaXJlY3QsICQxKT1ubwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hs aWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihleHBv cnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKLSsgICAgICAjIEhhY2s6IE9uIElu dGVyaXggMy54LCB3ZSBjYW5ub3QgY29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2Mu Ci0rICAgICAgIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1h Z2UgYmFzZSAoMHgxMDAwMDAwMCBieQotKyAgICAgICMgZGVmYXVsdCkgYW5kIHJlbG9jYXRlZCBp ZiB0aGV5IGNvbmZsaWN0LCB3aGljaCBpcyBhIHNsb3cgdmVyeSBtZW1vcnkKLSsgICAgICAjIGNv bnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRvIGF2b2lkIHRoaXMsIHdlIHBpY2sg YSByYW5kb20sCi0rICAgICAgIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4 NTAwMDAwMDAgYW5kIDB4NkZGQzAwMDAgYXQgbGluawotKyAgICAgICMgdGltZS4gIE1vdmluZyB1 cCBmcm9tIDB4MTAwMDAwMDAgYWxzbyBhbGxvd3MgbW9yZSBzYnJrKDIpIHNwYWNlLgotKyAgICAg IF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1pbWFn ZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcy ODBgIC1vICRsaWInCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9 J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhw c3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAl IDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rICAgICAgOzsKLSsK LSsgICAgZ251KiB8IGxpbnV4KiB8IHRwZiogfCBrKmJzZCotZ251IHwga29wZW5zb2xhcmlzKi1n bnUpCi0rICAgICAgdG1wX2RpZXQ9bm8KLSsgICAgICBpZiB0ZXN0ICIkaG9zdF9vcyIgPSBsaW51 eC1kaWV0bGliYzsgdGhlbgotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIGRpZXRcICopIHRt cF9kaWV0PXllczs7CSMgbGludXgtZGlldGxpYmMgd2l0aCBzdGF0aWMgbGlua2luZyAoIWRpZXQt ZHluKQotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkRUdS RVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbCBcCi0rCSAmJiB0ZXN0 ICIkdG1wX2RpZXQiID0gbm8KLSsgICAgICB0aGVuCi0rCXRtcF9hZGRmbGFnPScgJHBpY19mbGFn JwotKwl0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcKLSsJY2FzZSAkY2NfYmFzZW5hbWUsJGhvc3Rf Y3B1IGluCi0rICAgICAgICBwZ2NjKikJCQkJIyBQb3J0bGFuZCBHcm91cCBDIGNvbXBpbGVyCi0r CSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0td2hvbGUt YXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252 XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBm dW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2 ZScKLSsJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZycKLSsJICA7OwotKwlwZ2Y3NyogfCBwZ2Y5 MCogfCBwZ2Y5NSogfCBwZ2ZvcnRyYW4qKQotKwkJCQkJIyBQb3J0bGFuZCBHcm91cCBmNzcgYW5k IGY5MCBjb21waWxlcnMKLSsJICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAk MSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRv IHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNl LCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9 LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnIC1Nbm9tYWlu JyA7OwotKwllY2MqLGlhNjQqIHwgaWNjKixpYTY0KikJIyBJbnRlbCBDIGNvbXBpbGVyIG9uIGlh NjQKLSsJICB0bXBfYWRkZmxhZz0nIC1pX2R5bmFtaWMnIDs7Ci0rCWVmYyosaWE2NCogfCBpZm9y dCosaWE2NCopCSMgSW50ZWwgRm9ydHJhbiBjb21waWxlciBvbiBpYTY0Ci0rCSAgdG1wX2FkZGZs YWc9JyAtaV9keW5hbWljIC1ub2Zvcl9tYWluJyA7OwotKwlpZmMqIHwgaWZvcnQqKQkJCSMgSW50 ZWwgRm9ydHJhbiBjb21waWxlcgotKwkgIHRtcF9hZGRmbGFnPScgLW5vZm9yX21haW4nIDs7Ci0r CWxmOTUqKQkJCQkjIExhaGV5IEZvcnRyYW4gOC4xCi0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNo aXZlX2ZsYWdfc3BlYywgJDEpPQotKwkgIHRtcF9zaGFyZWRmbGFnPSctLXNoYXJlZCcgOzsKLSsJ eGxbW2NDXV0qIHwgYmd4bFtbY0NdXSogfCBtcGl4bFtbY0NdXSopICMgSUJNIFhMIEMgOC4wIG9u IFBQQyAoZGVhbCB3aXRoIHhsZiBiZWxvdykKLSsJICB0bXBfc2hhcmVkZmxhZz0nLXFta3Nocm9i aicKLSsJICB0bXBfYWRkZmxhZz0gOzsKLSsJbnZjYyopCSMgQ3VkYSBDb21waWxlciBEcml2ZXIg Mi4yCi0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScke3dsfS0t d2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBc IiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBk b25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUt YXJjaGl2ZScKLSsJICBfTFRfVEFHVkFSKGNvbXBpbGVyX25lZWRzX29iamVjdCwgJDEpPXllcwot KwkgIDs7Ci0rCWVzYWMKLSsJY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rCSpTdW5c IEMqKQkJCSMgU3VuIEMgNS45Ci0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl YywgJDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBp biAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVu Y2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3 X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIF9MVF9UQUdWQVIo Y29tcGlsZXJfbmVlZHNfb2JqZWN0LCAkMSk9eWVzCi0rCSAgdG1wX3NoYXJlZGZsYWc9Jy1HJyA7 OwotKwkqU3VuXCBGKikJCQkjIFN1biBGb3J0cmFuIDguMwotKwkgIHRtcF9zaGFyZWRmbGFnPSct RycgOzsKLSsJZXNhYwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgJyIkdG1w X3NoYXJlZGZsYWciIiR0bXBfYWRkZmxhZyInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwotKyAgICAgICAgaWYgdGVz dCAieCRzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmciID0geHllczsgdGhlbgotKyAgICAgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBz ZWQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJ ICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgot KwkgICAgJENDICciJHRtcF9zaGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lv bi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsgICAg ICAgIGZpCi0rCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCXhsZiogfCBiZ2YqIHwgYmd4bGYq IHwgbXBpeGxmKikKLSsJICAjIElCTSBYTCBGb3J0cmFuIDEwLjEgb24gUFBDIGNhbm5vdCBjcmVh dGUgc2hhcmVkIGxpYnMgaXRzZWxmCi0rCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYywgJDEpPSctLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgLS1uby13aG9sZS1hcmNoaXZl JwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotKwkgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPSctcnBhdGggJGxpYmRp cicKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLXNoYXJlZCAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSAtbyAkbGliJwotKwkgIGlm IHRlc3QgIngkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KLSsJICAgIF9M VF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgICBjYXQgJGV4cG9ydF9zeW1ib2xzIHwg c2VkIC1lICJzL1woLipcKS9cMTsvIiA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0r CSAgICAgIGVjaG8gImxvY2FsOiAqOyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVy fgotKwkgICAgICAkTEQgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1z b25hbWUgJHNvbmFtZSAtdmVyc2lvbi1zY3JpcHQgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVy IC1vICRsaWInCi0rCSAgZmkKLSsJICA7OwotKwllc2FjCi0rICAgICAgZWxzZQotKyAgICAgICAg X0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsg ICAgbmV0YnNkKikKLSsgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9f RUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLUJzaGFyZWFibGUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtbyAkbGliJwot Kwl3bGFyYz0KLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRD QyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMt ZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsgICAgICBmaQotKyAgICAgIDs7Ci0r Ci0rICAgIHNvbGFyaXMqKQotKyAgICAgIGlmICRMRCAtdiAyPiYxIHwgJEdSRVAgJ0JGRCAyXC44 JyA+IC9kZXYvbnVsbDsgdGhlbgotKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCWNh dCA8PF9MVF9FT0YgMT4mMgotKwotKyoqKiBXYXJuaW5nOiBUaGUgcmVsZWFzZXMgMi44Liogb2Yg dGhlIEdOVSBsaW5rZXIgY2Fubm90IHJlbGlhYmx5Ci0rKioqIGNyZWF0ZSBzaGFyZWQgbGlicmFy aWVzIG9uIFNvbGFyaXMgc3lzdGVtcy4gIFRoZXJlZm9yZSwgbGlidG9vbAotKyoqKiBpcyBkaXNh Ymxpbmcgc2hhcmVkIGxpYnJhcmllcyBzdXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBncmFkZSBH TlUKLSsqKiogYmludXRpbHMgdG8gcmVsZWFzZSAyLjkuMSBvciBuZXdlci4gIEFub3RoZXIgb3B0 aW9uIGlzIHRvIG1vZGlmeQotKyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlv biBzbyB0aGF0IHRoZSBuYXRpdmUgbGlua2VyIGlzCi0rKioqIHVzZWQsIGFuZCB0aGVuIHJlc3Rh cnQuCi0rCi0rX0xUX0VPRgotKyAgICAgIGVsaWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzog c3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotKwlfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCV9M VF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1l ICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0r ICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgZmkKLSsg ICAgICA7OwotKwotKyAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUq IHwgT3BlblVOSVgqKQotKyAgICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgotKyAgICAgICAgKlwg W1swMV1dLiogfCAqXCAyLltbMC05XV0uKiB8ICpcIDIuMVtbMC01XV0uKikKLSsJX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubwotKwljYXQgPDxfTFRfRU9GIDE+JjIKLSsKLSsqKiogV2Fybmlu ZzogUmVsZWFzZXMgb2YgdGhlIEdOVSBsaW5rZXIgcHJpb3IgdG8gMi4xNi45MS4wLjMgY2FuIG5v dAotKyoqKiByZWxpYWJseSBjcmVhdGUgc2hhcmVkIGxpYnJhcmllcyBvbiBTQ08gc3lzdGVtcy4g IFRoZXJlZm9yZSwgbGlidG9vbAotKyoqKiBpcyBkaXNhYmxpbmcgc2hhcmVkIGxpYnJhcmllcyBz dXBwb3J0LiAgV2UgdXJnZSB5b3UgdG8gdXBncmFkZSBHTlUKLSsqKiogYmludXRpbHMgdG8gcmVs ZWFzZSAyLjE2LjkxLjAuMyBvciBuZXdlci4gIEFub3RoZXIgb3B0aW9uIGlzIHRvIG1vZGlmeQot KyoqKiB5b3VyIFBBVEggb3IgY29tcGlsZXIgY29uZmlndXJhdGlvbiBzbyB0aGF0IHRoZSBuYXRp dmUgbGlua2VyIGlzCi0rKioqIHVzZWQsIGFuZCB0aGVuIHJlc3RhcnQuCi0rCi0rX0xUX0VPRgot Kwk7OwotKwkqKQotKwkgICMgRm9yIHNlY3VyaXR5IHJlYXNvbnMsIGl0IGlzIGhpZ2hseSByZWNv bW1lbmRlZCB0aGF0IHlvdSBhbHdheXMKLSsJICAjIHVzZSBhYnNvbHV0ZSBwYXRocyBmb3IgbmFt aW5nIHNoYXJlZCBsaWJyYXJpZXMsIGFuZCBleGNsdWRlIHRoZQotKwkgICMgRFRfUlVOUEFUSCB0 YWcgZnJvbSBleGVjdXRhYmxlcyBhbmQgbGlicmFyaWVzLiAgQnV0IGRvaW5nIHNvCi0rCSAgIyBy ZXF1aXJlcyB0aGF0IHlvdSBjb21waWxlIGV2ZXJ5dGhpbmcgdHdpY2UsIHdoaWNoIGlzIGEgcGFp bi4KLSsJICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czou KiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFp bi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCSAgZWxzZQotKwkg ICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgIGZpCi0rCTs7Ci0rICAgICAgZXNh YwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9zNCopCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJExEIC1hc3NlcnQgcHVyZS10ZXh0IC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsgICAgICB3bGFyYz0KLSsgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBp ZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4g L2Rldi9udWxsOyB0aGVuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29u YW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAk d2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAg aWYgdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0gbm87IHRoZW4KLSsgICAgICBy dW5wYXRoX3Zhcj0KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0KLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPQot KyAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0KLSsgICAgZmkK LSsgIGVsc2UKLSsgICAgIyBQT1JUTUUgZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lz dGVtJ3MgbGlua2VyIChub3QgR05VIGxkKQotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGFp eDMqKQotKyAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBv cnRlZAotKyAgICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCi0r ICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRMRCAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgLWJFOiRleHBv cnRfc3ltYm9scyAtVDUxMiAtSDUxMiAtYk06U1JFfiRBUiAkQVJfRkxBR1MgJGxpYiAkb3V0cHV0 X29iamRpci8kc29uYW1lJwotKyAgICAgICMgTm90ZTogdGhpcyBsaW5rZXIgaGFyZGNvZGVzIHRo ZSBkaXJlY3RvcmllcyBpbiBMSUJQQVRIIGlmIHRoZXJlCi0rICAgICAgIyBhcmUgbm8gZGlyZWN0 b3JpZXMgc3BlY2lmaWVkIGJ5IC1MLgotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNf TCwgJDEpPXllcwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgLXogIiRsdF9w cm9nX2NvbXBpbGVyX3N0YXRpYyI7IHRoZW4KLSsJIyBOZWl0aGVyIGRpcmVjdCBoYXJkY29kaW5n IG5vciBzdGF0aWMgbGlua2luZyBpcyBzdXBwb3J0ZWQgd2l0aCBhCi0rCSMgYnJva2VuIGNvbGxl Y3QyLgotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXVuc3VwcG9ydGVkCi0rICAg ICAgZmkKLSsgICAgICA7OwotKwotKyAgICBhaXhbWzQtOV1dKikKLSsgICAgICBpZiB0ZXN0ICIk aG9zdF9jcHUiID0gaWE2NDsgdGhlbgotKwkjIE9uIElBNjQsIHRoZSBsaW5rZXIgZG9lcyBydW4g dGltZSBsaW5raW5nIGJ5IGRlZmF1bHQsIHNvIHdlIGRvbid0Ci0rCSMgaGF2ZSB0byBkbyBhbnl0 aGluZyBzcGVjaWFsLgotKwlhaXhfdXNlX3J1bnRpbWVsaW5raW5nPW5vCi0rCWV4cF9zeW1fZmxh Zz0nLUJleHBvcnQnCi0rCW5vX2VudHJ5X2ZsYWc9IiIKLSsgICAgICBlbHNlCi0rCSMgSWYgd2Un cmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdhbnQgdGhlICItQyIgb3B0aW9uLgotKwkj IC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwgYnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdp dGggR05VIG5tCi0rCSMgQWxzbywgQUlYIG5tIHRyZWF0cyB3ZWFrIGRlZmluZWQgc3ltYm9scyBs aWtlIG90aGVyIGdsb2JhbAotKwkjIGRlZmluZWQgc3ltYm9scywgd2hlcmVhcyBHTlUgbm0gbWFy a3MgdGhlbSBhcyAiVyIuCi0rCWlmICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251 bGw7IHRoZW4KLSsJICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xzX2NtZHMsICQxKT0nJE5NIC1C cGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8 fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikgfHwgKFwkIDIgPT0gIlciKSkgJiYgKFtz dWJzdHJdKFwkIDMsMSwxKSAhPSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUg PiAkZXhwb3J0X3N5bWJvbHMnCi0rCWVsc2UKLSsJICBfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xz X2NtZHMsICQxKT0nJE5NIC1CQ3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBp ZiAoKChcJCAyID09ICJUIikgfHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAo W3N1YnN0cl0oXCQgMywxLDEpICE9ICIuIikpIHsgcHJpbnQgXCQgMyB9IH0nXCcnIHwgc29ydCAt dSA+ICRleHBvcnRfc3ltYm9scycKLSsJZmkKLSsJYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwot KwotKwkjIFRlc3QgaWYgd2UgYXJlIHRyeWluZyB0byB1c2UgcnVuIHRpbWUgbGlua2luZyBvciBu b3JtYWwKLSsJIyBBSVggc3R5bGUgbGlua2luZy4gSWYgLWJydGwgaXMgc29tZXdoZXJlIGluIExE RkxBR1MsIHdlCi0rCSMgbmVlZCB0byBkbyBydW50aW1lIGxpbmtpbmcuCi0rCWNhc2UgJGhvc3Rf b3MgaW4gYWl4NC5bWzIzXV18YWl4NC5bWzIzXV0uKnxhaXhbWzUtOV1dKikKLSsJICBmb3IgbGRf ZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJICBpZiAodGVzdCAkbGRfZmxhZyA9ICItYnJ0bCIgfHwg dGVzdCAkbGRfZmxhZyA9ICItV2wsLWJydGwiKTsgdGhlbgotKwkgICAgYWl4X3VzZV9ydW50aW1l bGlua2luZz15ZXMKLSsJICAgIGJyZWFrCi0rCSAgZmkKLSsJICBkb25lCi0rCSAgOzsKLSsJZXNh YwotKwotKwlleHBfc3ltX2ZsYWc9Jy1iZXhwb3J0JwotKwlub19lbnRyeV9mbGFnPSctYm5vZW50 cnknCi0rICAgICAgZmkKLSsKLSsgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hh cmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCi0rICAgICAgIyBoYXZlIHByb2JsZW1z IGNyZWF0aW5nIHRoZSB0YWJsZSBvZiBjb250ZW50cy4gIElmIGxpbmtpbmcgYSBsaWJyYXJ5Ci0r ICAgICAgIyBvciBwcm9ncmFtIHJlc3VsdHMgaW4gImVycm9yIFRPQyBvdmVyZmxvdyIgYWRkIC1t bWluaW1hbC10b2MgdG8KLSsgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIElu IHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAotKyAgICAgICMgZW5vdWdoIHRvIGZpeCB0aGUg cHJvYmxlbSwgYWRkIC1XbCwtYmJpZ3RvYyB0byBMREZMQUdTLgotKwotKyAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JycKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAk MSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9 JzonCi0rICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rICAgICAg X0xUX1RBR1ZBUihmaWxlX2xpc3Rfc3BlYywgJDEpPScke3dsfS1mLCcKLSsKLSsgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwljYXNlICRob3N0X29zIGluIGFpeDQuW1swMTJdXXxh aXg0LltbMDEyXV0uKikKLSsJIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFu ZCBsb3dlciwgdGhlIGNoZWNrCi0rCSMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0 IHdvcmsgdW5kZXIgNC4zKwotKwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFt ZT1jb2xsZWN0MmAKLSsJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJgotKwkgICBzdHJp bmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQIHJlc29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAot KwkgIHRoZW4KLSsJICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKLSsJICA6Ci0rCSAgZWxz ZQotKwkgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2Rp cmVjdCwgJDEpPXVuc3VwcG9ydGVkCi0rCSAgIyBJdCBmYWlscyB0byBmaW5kIHVuaW5zdGFsbGVk IGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAotKwkgICMgcGF0aCBpcyBub3QgbGlzdGVk IGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51c19MCi0rCSAgIyB0byB1bnN1 cHBvcnRlZCBmb3JjZXMgcmVsaW5raW5nCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19M LCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9 Jy1MJGxpYmRpcicKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQx KT0KLSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsJc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rCWlm IHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKwkgIHNoYXJlZF9m bGFnPSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwotKwlmaQotKyAgICAgIGVsc2UKLSsJIyBub3Qg dXNpbmcgZ2NjCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgVmlzdWFs QWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3IgSUEtNjQsIEJldGEgMyBSZWxlYXNl Ci0rCSMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNvcnJlY3Q6Ci0r CSAgc2hhcmVkX2ZsYWc9Jy1HJwotKwllbHNlCi0rCSAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGlt ZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKLSsJICBl bHNlCi0rCSAgICBzaGFyZWRfZmxhZz0nJHt3bH0tYk06U1JFJwotKwkgIGZpCi0rCWZpCi0rICAg ICAgZmkKLSsKLSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEp PScke3dsfS1iZXhwYWxsJwotKyAgICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5v dCBleHBvcnQgc3ltYm9scyBiZWdpbm5pbmcgd2l0aAotKyAgICAgICMgdW5kZXJzY29yZSAoXyks IHNvIGl0IGlzIGJldHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0byBleHBvcnQu Ci0rICAgICAgX0xUX1RBR1ZBUihhbHdheXNfZXhwb3J0X3N5bWJvbHMsICQxKT15ZXMKLSsgICAg ICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJIyBXYXJu aW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5nIGZsYWdzICgtYnJ0 bCksCi0rCSMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2Ug YSBicm9rZW4gbGlicmFyeS4KLSsJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEp PSctYmVyb2snCi0rICAgICAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBsaWJwYXRoIGZyb20g dGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KLSsgICAgICAgICMgZW1wdHkgZXhlY3V0YWJsZS4KLSsg ICAgICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhfQUlYKFskMV0pCi0rICAgICAgICBfTFRfVEFHVkFS KGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjon IiRhaXhfbGlicGF0aCIKLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywg JDEpPSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwk e3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBpbGVyX2ZsYWdzIGBpZiB0ZXN0ICJ4JHthbGxvd191 bmRlZmluZWRfZmxhZ30iICE9ICJ4IjsgdGhlbiBmdW5jX2VjaG9fYWxsICIke3dsfSR7YWxsb3df dW5kZWZpbmVkX2ZsYWd9IjsgZWxzZSA6OyBmaWAgJyJcJHt3bH0kZXhwX3N5bV9mbGFnOlwkZXhw b3J0X3N5bWJvbHMgJHNoYXJlZF9mbGFnIgotKyAgICAgIGVsc2UKLSsJaWYgdGVzdCAiJGhvc3Rf Y3B1IiA9IGlhNjQ7IHRoZW4KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWMsICQxKT0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCi0rCSAgX0xUX1RBR1ZBUihh bGxvd191bmRlZmluZWRfZmxhZywgJDEpPSIteiBub2RlZnMiCi0rCSAgX0xUX1RBR1ZBUihhcmNo aXZlX2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpk aXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNv bXBpbGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5 bV9mbGFnOlwkZXhwb3J0X3N5bWJvbHMiCi0rCWVsc2UKLSsJICMgRGV0ZXJtaW5lIHRoZSBkZWZh dWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgotKwkgIyBlbXB0eSBleGVj dXRhYmxlLgotKwkgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgoWyQxXSkKLSsJIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOici JGFpeF9saWJwYXRoIgotKwkgICMgV2FybmluZyAtIHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1 biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0rCSAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJy b3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKwkgIF9MVF9UQUdWQVIobm9f dW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm5vdG9rJwotKwkgIF9MVF9UQUdWQVIoYWxs b3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm9rJwotKwkgIGlmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsJICAgICMgV2Ugb25seSB1c2UgdGhpcyBjb2RlIGZvciBH TlUgbGRzIHRoYXQgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUuCi0rCSAgICBfTFRfVEFHVkFSKHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmll bmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIGVsc2UKLSsJICAgICMgRXhwb3J0ZWQg c3ltYm9scyBjYW4gYmUgcHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcwot KwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSckY29udmVuaWVu Y2UnCi0rCSAgZmkKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVz Ci0rCSAgIyBUaGlzIGlzIHNpbWlsYXIgdG8gaG93IEFJWCB0cmFkaXRpb25hbGx5IGJ1aWxkcyBp dHMgc2hhcmVkIGxpYnJhcmllcy4KLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMs ICQxKT0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJv YmpzICRkZXBsaWJzICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhw b3J0X3N5bWJvbHMke2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRf b2JqZGlyLyRsaWJuYW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKwlmaQot KyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9z dF9jcHUgaW4KLSsgICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJv dXQgQW1pZ2FPUzQgLnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJwotKyAgICAgICAgOzsKLSsgICAgICBtNjhrKQot KyAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29i amRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91 dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZX0lEIDEi ID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgVkVSU0lP TiAkbWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZp bmUgUkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRh fiRBUiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2Jq ZGlyICYmIGEyaXhsaWJyYXJ5IC0zMiknCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsgICAgICAgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX21pbnVzX0wsICQxKT15ZXMKLSsgICAgICAgIDs7Ci0rICAgICAgZXNhYwot KyAgICAgIDs7Ci0rCi0rICAgIGJzZGlbWzQ1XV0qKQotKyAgICAgIF9MVF9UQUdWQVIoZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9LXJkeW5hbWljCi0rICAgICAgOzsKLSsKLSsgICAgY3ln d2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAgICMgV2hlbiBub3QgdXNpbmcg Z2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCi0rICAgICAgIyBNaWNy b3NvZnQgVmlzdWFsIEMrKy4KLSsgICAgICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMg YWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCi0rICAgICAgIyBubyBzZWFyY2ggcGF0 aCBmb3IgRExMcy4KLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgIGNsKikKLSsJ IyBOYXRpdmUgTVNWQwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nICcKLSsJX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVk Ci0rCV9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCi0rCV9MVF9UQUdW QVIoZmlsZV9saXN0X3NwZWMsICQxKT0nQCcKLSsJIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIg ZmlsZXMsIG5vdCAuYSBmaWxlcy4KLSsJbGliZXh0PWxpYgotKwkjIFRlbGwgbHRtYWluIHRvIG1h a2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KLSsJc2hyZXh0X2NtZHM9Ii5kbGwiCi0rCSMg RklYTUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4KLSsJX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9i anMgJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWJzIC1XbCwtZGxsfmxpbmtuYW1lcz0nCi0rCV9MVF9U QUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdpZiB0ZXN0ICJ4YCRTRUQgMXEgJGV4cG9y dF9zeW1ib2xzYCIgPSB4RVhQT1JUUzsgdGhlbgotKwkgICAgc2VkIC1uIC1lICdzL1xcXFxcXFwo LipcXFxcXFxcKS8tbGlua1xcXCAtRVhQT1JUOlxcXFxcXFwxLycgLWUgJzFcXFwhcCcgPCAkZXhw b3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cDsKLSsJICBlbHNlCi0rCSAg ICBzZWQgLWUgJ3MvXFxcXFxcXCguKlxcXFxcXFwpLy1saW5rXFxcIC1FWFBPUlQ6XFxcXFxcXDEv JyA8ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwOwotKwkgIGZp fgotKwkgICRDQyAtbyAkdG9vbF9vdXRwdXRfb2JqZGlyJHNvbmFtZSAkbGlib2JqcyAkY29tcGls ZXJfZmxhZ3MgJGRlcGxpYnMgIkAkdG9vbF9vdXRwdXRfb2JqZGlyJHNvbmFtZS5leHAiIC1XbCwt RExMLC1JTVBMSUI6IiR0b29sX291dHB1dF9vYmpkaXIkbGlibmFtZS5kbGwubGliIn4KLSsJICBs aW5rbmFtZXM9JwotKwkjIFRoZSBsaW5rZXIgd2lsbCBub3QgYXV0b21hdGljYWxseSBidWlsZCBh IHN0YXRpYyBsaWIgaWYgd2UgYnVpbGQgYSBETEwuCi0rCSMgX0xUX1RBR1ZBUihvbGRfYXJjaGl2 ZV9mcm9tX25ld19jbWRzLCAkMSk9J3RydWUnCi0rCV9MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93 aXRoX3N0YXRpY19ydW50aW1lcywgJDEpPXllcwotKwlfTFRfVEFHVkFSKGV4cG9ydF9zeW1ib2xz X2NtZHMsICQxKT0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3Bp cGUgfCAkU0VEIC1lICdcJycvXltbQkNER1JTXV1bWyBdXS9zLy4qW1sgXV1cKFtbXiBdXSpcKS9c MSxEQVRBLydcJycgfCAkU0VEIC1lICdcJycvXltbQUlUV11dW1sgXV0vcy8uKltbIF1dLy8nXCcn IHwgc29ydCB8IHVuaXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rCSMgRG9uJ3QgdXNlIHJhbmxpYgot KwlfTFRfVEFHVkFSKG9sZF9wb3N0aW5zdGFsbF9jbWRzLCAkMSk9J2NobW9kIDY0NCAkb2xkbGli JwotKwlfTFRfVEFHVkFSKHBvc3RsaW5rX2NtZHMsICQxKT0nbHRfb3V0cHV0ZmlsZT0iQE9VVFBV VEAifgotKwkgIGx0X3Rvb2xfb3V0cHV0ZmlsZT0iQFRPT0xfT1VUUFVUQCJ+Ci0rCSAgY2FzZSAk bHRfb3V0cHV0ZmlsZSBpbgotKwkgICAgKi5leGV8Ki5FWEUpIDs7Ci0rCSAgICAqKQotKwkgICAg ICBsdF9vdXRwdXRmaWxlPSIkbHRfb3V0cHV0ZmlsZS5leGUiCi0rCSAgICAgIGx0X3Rvb2xfb3V0 cHV0ZmlsZT0iJGx0X3Rvb2xfb3V0cHV0ZmlsZS5leGUiCi0rCSAgICAgIDs7Ci0rCSAgZXNhY34K LSsJICBpZiB0ZXN0ICIkTUFOSUZFU1RfVE9PTCIgIT0gIjoiICYmIHRlc3QgLWYgIiRsdF9vdXRw dXRmaWxlLm1hbmlmZXN0IjsgdGhlbgotKwkgICAgJE1BTklGRVNUX1RPT0wgLW1hbmlmZXN0ICIk bHRfdG9vbF9vdXRwdXRmaWxlLm1hbmlmZXN0IiAtb3V0cHV0cmVzb3VyY2U6IiRsdF90b29sX291 dHB1dGZpbGUiIHx8IGV4aXQgMTsKLSsJICAgICRSTSAiJGx0X291dHB1dGZpbGUubWFuaWZlc3Qi OwotKwkgIGZpJwotKwk7OwotKyAgICAgICopCi0rCSMgQXNzdW1lIE1TVkMgd3JhcHBlcgotKwlf TFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nICcKLSsJX0xUX1RBR1ZB UihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVuc3VwcG9ydGVkCi0rCSMgVGVsbCBsdG1haW4g dG8gbWFrZSAubGliIGZpbGVzLCBub3QgLmEgZmlsZXMuCi0rCWxpYmV4dD1saWIKLSsJIyBUZWxs IGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAuc28gZmlsZXMuCi0rCXNocmV4dF9jbWRz PSIuZGxsIgotKwkjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEgYmFkIGhhY2su Ci0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkbGliICRsaWJvYmpzICRj b21waWxlcl9mbGFncyBgZnVuY19lY2hvX2FsbCAiJGRlcGxpYnMiIHwgJFNFRCAnXCcncy8gLWxj JC8vJ1wnJ2AgLWxpbmsgLWRsbH5saW5rbmFtZXM9JwotKwkjIFRoZSBsaW5rZXIgd2lsbCBhdXRv bWF0aWNhbGx5IGJ1aWxkIGEgLmxpYiBmaWxlIGlmIHdlIGJ1aWxkIGEgRExMLgotKwlfTFRfVEFH VkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0ndHJ1ZScKLSsJIyBGSVhNRTogU2hv dWxkIGxldCB0aGUgdXNlciBzcGVjaWZ5IHRoZSBsaWIgcHJvZ3JhbS4KLSsJX0xUX1RBR1ZBUihv bGRfYXJjaGl2ZV9jbWRzLCAkMSk9J2xpYiAtT1VUOiRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGli cycKLSsJX0xUX1RBR1ZBUihlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9 eWVzCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIGRhcndpbiogfCByaGFw c29keSopCi0rICAgICAgX0xUX0RBUldJTl9MSU5LRVJfRkVBVFVSRVMoJDEpCi0rICAgICAgOzsK LSsKLSsgICAgZGd1eCopCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExE IC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctTCRsaWJk aXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsg ICAgICA7OwotKwotKyAgICBmcmVlYnNkMSopCi0rICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAyLjIuWzAxMl0gYWxsb3dzIHVz IHRvIGluY2x1ZGUgYysrcnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3RvcgotKyAgICAjIHN1cHBv cnQuICBGdXR1cmUgdmVyc2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBidXQgYW4gZXhwbGlj aXQgYysrcnQwLm8KLSsgICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGluZywgYW5kIGhlbHBzIHNp Z25pZmljYW50bHkgKGF0IHRoZSBjb3N0IG9mIGEgbGl0dGxlCi0rICAgICMgZXh0cmEgc3BhY2Up LgotKyAgICBmcmVlYnNkMi4yKikKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEp PSckTEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz IC91c3IvbGliL2MrK3J0MC5vJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJl Y3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQx KT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgVW5mb3J0dW5hdGVseSwgb2xkZXIgdmVyc2lvbnMg b2YgRnJlZUJTRCAyIGRvIG5vdCBoYXZlIHRoaXMgZmVhdHVyZS4KLSsgICAgZnJlZWJzZDIqKQot KyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtQnNoYXJlYWJsZSAtbyAk bGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVz X0wsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQx KT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICMgRnJlZUJTRCAzIGFuZCBncmVhdGVyIHVzZXMgZ2Nj IC1zaGFyZWQgdG8gZG8gc2hhcmVkIGxpYnJhcmllcy4KLSsgICAgZnJlZWJzZCogfCBkcmFnb25m bHkqKQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRw aWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJwot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAgICAgX0xUX1RB R1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICA7OwotKwotKyAgICBo cHV4OSopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25hbWV+JENDIC1zaGFyZWQg JHBpY19mbGFnICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9vYmpkaXIv JHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29i amRpci8kc29uYW1lID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0r ICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckUk0gJG91dHB1dF9v YmpkaXIvJHNvbmFtZX4kTEQgLWIgK2IgJGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsg ICAgICBmaQotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PScke3dsfStiICR7d2x9JGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3IsICQxKT06Ci0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQx KT15ZXMKLSsKLSsgICAgICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNl YXJjaCBQQVRILAotKyAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBs aWJyYXJ5LgotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAg ICAgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0r ICAgICAgOzsKLSsKLSsgICAgaHB1eDEwKikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAm JiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9 K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSck TEQgLWIgK2ggJHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251 X2xkIiA9IG5vOyB0aGVuCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywg JDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjX2xkLCAkMSk9JytiICRsaWJkaXInCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciwgJDEpPToKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15 ZXMKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsJX0xU X1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tRScKLSsJIyBoYXJk Y29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJIyBidXQgYXMg dGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rCV9MVF9UQUdWQVIoaGFyZGNv ZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgaHB1eDEx KikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0g bm87IHRoZW4KLSsJY2FzZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCopCi0rCSAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHt3bH0raCAke3dsfSRzb25hbWUgLW8g JGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJaWE2NCop Ci0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFn ICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJwYXRoIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCSopCi0rCSAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9K2ggJHt3bH0k c29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGVsc2UKLSsJY2Fz ZSAkaG9zdF9jcHUgaW4KLSsJaHBwYSo2NCopCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQqKQotKwkgIF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1 bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7 OwotKwkqKQotKwltNF9pZigkMSwgW10sIFsKLSsJICAjIE9sZGVyIHZlcnNpb25zIG9mIHRoZSAx MS4wMCBjb21waWxlciBkbyBub3QgdW5kZXJzdGFuZCAtYiB5ZXQKLSsJICAjIChIUDkyNDUzLTAx IEEuMTEuMDEuMjAgZG9lc24ndCwgSFA5MjQ1My0wMSBCLjExLlguMzUxNzUtMzUxNzYuR1AgZG9l cykKLSsJICBfTFRfTElOS0VSX09QVElPTihbaWYgJENDIHVuZGVyc3RhbmRzIC1iXSwKLSsJICAg IF9MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9fYiwgJDEpLCBbLWJdLAotKwkgICAgW19M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAk e3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzJ10sCi0rCSAgICBbX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExE IC1iICtoICRzb25hbWUgK2IgJGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncyddKV0sCi0rCSAgW19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGly IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJ10pCi0rCSAgOzsKLSsJ ZXNhYwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5vOyB0aGVu Ci0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7 d2x9JGxpYmRpcicKLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9 OgotKwotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KnxpYTY0KikKLSsJICBfTFRfVEFH VkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxp YnBhdGhfdmFyLCAkMSk9bm8KLSsJICA7OwotKwkqKQotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVf ZGlyZWN0LCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUs ICQxKT15ZXMKLSsJICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSck e3dsfS1FJwotKwotKwkgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2Vh cmNoIFBBVEgsCi0rCSAgIyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJh cnkuCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rCSAgOzsKLSsJ ZXNhYwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9u c3RvcHV4KikKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlfTFRfVEFHVkFS KGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2 ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0 cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9j YXRpb25zIC1vICRsaWInCi0rCSMgVHJ5IHRvIHVzZSB0aGUgLWV4cG9ydGVkX3N5bWJvbCBsZCBv cHRpb24sIGlmIGl0IGRvZXMgbm90Ci0rCSMgd29yaywgYXNzdW1lIHRoYXQgLWV4cG9ydHNfZmls ZSBkb2VzIG5vdCB3b3JrIGVpdGhlciBhbmQKLSsJIyBpbXBsaWNpdGx5IGV4cG9ydCBhbGwgc3lt Ym9scy4KLSsJIyBUaGlzIHNob3VsZCBiZSB0aGUgc2FtZSBmb3IgYWxsIGxhbmd1YWdlcywgc28g bm8gcGVyLXRhZyBjYWNoZSB2YXJpYWJsZS4KLSsJQUNfQ0FDSEVfQ0hFQ0soW3doZXRoZXIgdGhl ICRob3N0X29zIGxpbmtlciBhY2NlcHRzIC1leHBvcnRlZF9zeW1ib2xdLAotKwkgIFtsdF9jdl9p cml4X2V4cG9ydGVkX3N5bWJvbF0sCi0rCSAgW3NhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rCSAg IExERkxBR1M9IiRMREZMQUdTIC1zaGFyZWQgJHt3bH0tZXhwb3J0ZWRfc3ltYm9sICR7d2x9Zm9v ICR7d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfS9kZXYvbnVsbCIKLSsJICAgQUNfTElOS19JRkVM U0UoCi0rCSAgICAgW0FDX0xBTkdfU09VUkNFKAotKwkgICAgICAgIFtBQ19MQU5HX0NBU0UoW0Nd LCBbW2ludCBmb28gKHZvaWQpIHsgcmV0dXJuIDA7IH1dXSwKLSsJCQkgICAgICBbQysrXSwgW1tp bnQgZm9vICh2b2lkKSB7IHJldHVybiAwOyB9XV0sCi0rCQkJICAgICAgW0ZvcnRyYW4gNzddLCBb WwotKyAgICAgIHN1YnJvdXRpbmUgZm9vCi0rICAgICAgZW5kXV0sCi0rCQkJICAgICAgW0ZvcnRy YW5dLCBbWwotKyAgICAgIHN1YnJvdXRpbmUgZm9vCi0rICAgICAgZW5kXV0pXSldLAotKwkgICAg ICBbbHRfY3ZfaXJpeF9leHBvcnRlZF9zeW1ib2w9eWVzXSwKLSsJICAgICAgW2x0X2N2X2lyaXhf ZXhwb3J0ZWRfc3ltYm9sPW5vXSkKLSsgICAgICAgICAgIExERkxBR1M9IiRzYXZlX0xERkxBR1Mi XSkKLSsJaWYgdGVzdCAiJGx0X2N2X2lyaXhfZXhwb3J0ZWRfc3ltYm9sIiA9IHllczsgdGhlbgot KyAgICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25h bWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIk e3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkg JHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAke3dsfS1leHBvcnRzX2ZpbGUgJHt3 bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJZmkKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNf ZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291 dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hv X2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0 X29iamRpcn0vc29fbG9jYXRpb25zIC1leHBvcnRzX2ZpbGUgJGV4cG9ydF9zeW1ib2xzIC1vICRs aWInCi0rICAgICAgZmkKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAk MSk9J25vJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKyAgICAgIF9MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwg JDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIobGlua19hbGxfZGVwbGlicywgJDEpPXllcwotKyAg ICAgIDs7Ci0rCi0rICAgIG5ldGJzZCopCi0rICAgICAgaWYgZWNobyBfX0VMRl9fIHwgJENDIC1F IC0gfCAkR1JFUCBfX0VMRl9fID4vZGV2L251bGw7IHRoZW4KLSsJX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycgICMgYS5vdXQKLSsgICAgICBlbHNlCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRMRCAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycgICAgICAjIEVMRgotKyAgICAgIGZpCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1SJGxpYmRpcicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRj b2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgbmV3c29zNikKLSsgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJl Y3QsICQxKT15ZXMKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3No bGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgIDs7Ci0rCi0rICAgICpudG8qIHwgKnFueCopCi0r ICAgICAgOzsKLSsKLSsgICAgb3BlbmJzZCopCi0rICAgICAgaWYgdGVzdCAtZiAvdXNyL2xpYmV4 ZWMvbGQuc287IHRoZW4KLSsJX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3QsICQxKT15ZXMKLSsJ X0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsJX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsJaWYgdGVzdCAteiAiYGVjaG8gX19F TEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0 X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotKwkgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzJwot KwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0 aCwkbGliZGlyJwotKwkgIF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LUUnCi0rCWVsc2UKLSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgIG9wZW5ic2RbWzAx XV0uKiB8IG9wZW5ic2QyLltbMC03XV0gfCBvcGVuYnNkMi5bWzAtN11dLiopCi0rCSAgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlIC1vICRsaWIgJGxpYm9i anMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncycKLSsJICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nLVIkbGliZGlyJwotKwkgICAgIDs7Ci0rCSAgICopCi0rCSAg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1v ICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCwkbGliZGlyJwot KwkgICAgIDs7Ci0rCSAgZXNhYwotKwlmaQotKyAgICAgIGVsc2UKLSsJX0xUX1RBR1ZBUihsZF9z aGxpYnMsICQxKT1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgb3MyKikKLSsgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGliZGlyJwot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKyAgICAgIF9MVF9U QUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKyAgICAgIF9MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRFQ0hPICJMSUJSQVJZICRsaWJuYW1lIElOSVRJTlNU QU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gIkRFU0NSSVBUSU9OIFwi JGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVjaG8gREFUQSA+PiAk b3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZWNobyAiIFNJTkdMRSBOT05TSEFSRUQiID4+ICRv dXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lY2hvIEVYUE9SVFMgPj4gJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5k ZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKLSsgICAgICBfTFRfVEFHVkFSKG9s ZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsICQxKT0nZW14aW1wIC1vICRvdXRwdXRfb2JqZGlyLyRs aWJuYW1lLmEgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmJwotKyAgICAgIDs7Ci0rCi0rICAg IG9zZjMqKQotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCV9MVF9UQUdWQVIo YWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9 XConCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191 bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwg IiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVwZGF0ZV9yZWdpc3Ry eSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZWxz ZQotKwlfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVz b2x2ZWQgXConCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHth bGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1z b25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNl dF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0v c29fbG9jYXRpb25zIC1vICRsaWInCi0rICAgICAgZmkKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kc19uZWVkX2xjLCAkMSk9J25vJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9OgotKyAgICAgIDs7Ci0rCi0r ICAgIG9zZjQqIHwgb3NmNSopCSMgYXMgb3NmMyogd2l0aCB0aGUgYWRkaXRpb24gb2YgLW1zeW0g ZmxhZwotKyAgICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCV9MVF9UQUdWQVIoYWxs b3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XCon Ci0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRl ZmluZWRfZmxhZ30gJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAk e3dsfS1tc3ltICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7 d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1v ICRsaWInCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3ds fS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFsbG93X3Vu ZGVmaW5lZF9mbGFnLCAkMSk9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCV9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSBgdGVz dCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJp bmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRs aWInCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSdmb3IgaSBpbiBgY2F0 ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRlZF9zeW1ib2wg IlwkaSIgPj4gJGxpYi5leHA7IGRvbmU7IHByaW50ZiAiJXNcXG4iICItaGlkZGVuIj4+ICRsaWIu ZXhwfgotKwkkQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICR7d2x9LWlucHV0ICR7 d2x9JGxpYi5leHAgJGNvbXBpbGVyX2ZsYWdzICRsaWJvYmpzICRkZXBsaWJzIC1zb25hbWUgJHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIi1zZXRfdmVyc2lvbiAkdmVyc3Ry aW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAk bGlifiRSTSAkbGliLmV4cCcKLSsKLSsJIyBCb3RoIGMgYW5kIGN4eCBjb21waWxlciBzdXBwb3J0 IC1ycGF0aCBkaXJlY3RseQotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nLXJwYXRoICRsaWJkaXInCi0rICAgICAgZmkKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hp dmVfY21kc19uZWVkX2xjLCAkMSk9J25vJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAgICA7OwotKwotKyAgICBzb2xhcmlzKikKLSsgICAg ICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAteiBkZWZzJwotKyAgICAgIGlm IHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCXdsYXJjPScke3dsfScKLSsJX0xUX1RBR1ZBUihh cmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICR7d2x9LXogJHt3bH10ZXh0 ICR7d2x9LWggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBn bG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipc KS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkg ICRDQyAtc2hhcmVkICRwaWNfZmxhZyAke3dsfS16ICR7d2x9dGV4dCAke3dsfS1NICR7d2x9JGxp Yi5leHAgJHt3bH0taCAke3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29t cGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKyAgICAgIGVsc2UKLSsJY2FzZSBgJENDIC1WIDI+ JjFgIGluCi0rCSoiQ29tcGlsZXJzIDUuMCIqKQotKwkgIHdsYXJjPScnCi0rCSAgX0xUX1RBR1ZB UihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWggJHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCSAgX0xUX1RB R1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4 cH5jYXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5l eHB+ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAkTEQgLUcke2FsbG93X3Vu ZGVmaW5lZF9mbGFnfSAtTSAkbGliLmV4cCAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGxpbmtlcl9mbGFnc34kUk0gJGxpYi5leHAnCi0rCSAgOzsKLSsJKikKLSsJICB3bGFy Yz0nJHt3bH0nCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxv d191bmRlZmluZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0n ZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1l ICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIu ZXhwfgotKwkgICRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIu ZXhwJwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICBjYXNlICRob3N0X29zIGluCi0r ICAgICAgc29sYXJpczIuW1swLTVdXSB8IHNvbGFyaXMyLltbMC01XV0uKikgOzsKLSsgICAgICAq KQotKwkjIFRoZSBjb21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtl ciBvcHRpb25zLAotKwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRp c2NhcmRzIGl0IHdpdGhvdXQgYCR3bCcsCi0rCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0 byByZW9yZGVyLgotKwkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/ KQotKwlpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwkgIF9MVF9UQUdWQVIod2hvbGVfYXJj aGl2ZV9mbGFnX3NwZWMsICQxKT0nJHt3bH0teiAke3dsfWFsbGV4dHJhY3QkY29udmVuaWVuY2Ug JHt3bH0teiAke3dsfWRlZmF1bHRleHRyYWN0JwotKwllbHNlCi0rCSAgX0xUX1RBR1ZBUih3aG9s ZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPScteiBhbGxleHRyYWN0JGNvbnZlbmllbmNlIC16IGRl ZmF1bHRleHRyYWN0JwotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICBfTFRfVEFHVkFS KGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsgICAgICA7OwotKwotKyAgICBzdW5vczQqKQot KyAgICAgIGlmIHRlc3QgIngkaG9zdF92ZW5kb3IiID0geHNlcXVlbnQ7IHRoZW4KLSsJIyBVc2Ug JENDIHRvIGxpbmsgdW5kZXIgc2VxdWVudCwgYmVjYXVzZSBpdCB0aHJvd3MgaW4gc29tZSBleHRy YSAubwotKwkjIGZpbGVzIHRoYXQgbWFrZSAuaW5pdCBhbmQgLmZpbmkgc2VjdGlvbnMgd29yay4K LSsJX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWggJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0r CV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRMRCAtYXNzZXJ0IHB1cmUtdGV4dCAtQnN0 YXRpYyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAgZmkK LSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLUwkbGli ZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVzCi0rICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9eWVzCi0rICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAgICA7OwotKwotKyAgICBzeXN2NCkK LSsgICAgICBjYXNlICRob3N0X3ZlbmRvciBpbgotKwlzbmkpCi0rCSAgX0xUX1RBR1ZBUihhcmNo aXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkbGlua2VyX2ZsYWdzJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9eWVz ICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/PwotKwk7OwotKwlzaWVtZW5zKQotKwkgICMjIExEIGlz IGxkIGl0IG1ha2VzIGEgUExBTUxJQgotKwkgICMjIENDIGp1c3QgbWFrZXMgYSBHcm9zc01vZHVs ZS4KLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLW8gJGxpYiAkbGli b2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgIF9MVF9UQUdWQVIocmVsb2FkX2NtZHMs ICQxKT0nJENDIC1yIC1vICRvdXRwdXQkcmVsb2FkX29ianMnCi0rCSAgX0xUX1RBR1ZBUihoYXJk Y29kZV9kaXJlY3QsICQxKT1ubwotKyAgICAgICAgOzsKLSsJbW90b3JvbGEpCi0rCSAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9bm8gI01vdG9yb2xhIG1hbnVhbCBzYXlzIHllcywgYnV0IG15IHRlc3RzIHNheSB0aGV5 IGxpZQotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgn Ci0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8KLSsgICAg ICA7OwotKwotKyAgICBzeXN2NC4zKikKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywg JDEpPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJf ZmxhZ3MnCi0rICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8K LSsgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPSctQmV4cG9y dCcKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0rICAgICAgaWYgdGVzdCAtZCAvdXNy L25lYzsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckTEQgLUcgLWggJHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCV9MVF9UQUdW QVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rCXJ1bnBhdGhfdmFyPUxEX1JVTl9Q QVRICi0rCWhhcmRjb2RlX3J1bnBhdGhfdmFyPXllcwotKwlfTFRfVEFHVkFSKGxkX3NobGlicywg JDEpPXllcwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQqdXcyKiB8IHN5c3Y1 T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuW1swMV1dLltbMTBdXSogfCB1bml4d2FyZTcqIHwg c2NvMy4ydjUuMC5bWzAyNF1dKikKLSsgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFn LCAkMSk9JyR7d2x9LXosdGV4dCcKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVk X2xjLCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQx KT1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBpZiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0Mg LXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGls ZXJfZmxhZ3MnCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNo YXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlfTFRf VEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIg JGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7 d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK LSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2 NiopCi0rICAgICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZzIGFzIHdlIG1pZ2h0IGRl c2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKLSsgICAgICAjIGxpbmsgd2l0aCAtbGMsIGFuZCB0aGF0 IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRvCi0rICAgICAgIyBhbHdh eXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBubyBsaWJyYXJ5IHdvdWxk Ci0rICAgICAgIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUgbm90IHVzaW5nIEdOVSBs ZCB3ZSB1c2UgLXogdGV4dAotKyAgICAgICMgdGhvdWdoLCB3aGljaCBkb2VzIGNhdGNoIHNvbWUg YmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAotKyAgICAgICMgYXMgLXogZGVm cy4KLSsgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXosdGV4 dCcKLSsgICAgICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JyR7d2x9LXos bm9kZWZzJwotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwot KyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rICAgICAg X0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LVIsJGxpYmRp cicKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicK LSsgICAgICBfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT15ZXMKLSsgICAgICBfTFRf VEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1CZXhwb3J0JwotKyAg ICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9 IHllczsgdGhlbgotKwlfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAk e3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn Ci0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3ds fS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2Jq cyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rICAgICAgZWxzZQotKwlfTFRfVEFHVkFSKGFy Y2hpdmVfY21kcywgJDEpPSckQ0MgLUcgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNv bmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBm aQotKyAgICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxp bmtlcl9mbGFncycKLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs ICQxKT0nLUwkbGliZGlyJwotKyAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3Zh ciwgJDEpPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBpZiB0ZXN0IHgkaG9z dF92ZW5kb3IgPSB4c25pOyB0aGVuCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgIHN5c3Y0 IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKiB8IHN5c3Y1KikKLSsJX0xUX1RBR1ZBUihleHBvcnRf ZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tQmxhcmdlZHluc3ltJwotKwk7OwotKyAgICAg IGVzYWMKLSsgICAgZmkKLSsgIGZpCi0rXSkKLStBQ19NU0dfUkVTVUxUKFskX0xUX1RBR1ZBUihs ZF9zaGxpYnMsICQxKV0pCi0rdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSkiID0gbm8g JiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotK19MVF9UQUdWQVIod2l0aF9nbnVfbGQsICQxKT0k d2l0aF9nbnVfbGQKLSsKLStfTFRfREVDTChbXSwgW2xpYmV4dF0sIFswXSwgW09sZCBhcmNoaXZl IHN1ZmZpeCAobm9ybWFsbHkgImEiKV0pZG5sCi0rX0xUX0RFQ0woW10sIFtzaHJleHRfY21kc10s IFsxXSwgW1NoYXJlZCBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgIi5zbyIpXSlkbmwKLStfTFRf REVDTChbXSwgW2V4dHJhY3RfZXhwc3ltc19jbWRzXSwgWzJdLAotKyAgICBbVGhlIGNvbW1hbmRz IHRvIGV4dHJhY3QgdGhlIGV4cG9ydGVkIHN5bWJvbCBsaXN0IGZyb20gYSBzaGFyZWQgYXJjaGl2 ZV0pCi0rCi0rIwotKyMgRG8gd2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsgbGliYz8KLSsjCi0r Y2FzZSAieCRfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSkiIGluCi0reHx4eWVz KQotKyAgIyBBc3N1bWUgLWxjIHNob3VsZCBiZSBhZGRlZAotKyAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHNfbmVlZF9sYywgJDEpPXllcwotKwotKyAgaWYgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0g eWVzICYmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIGNhc2UgJF9MVF9UQUdWQVIoYXJj aGl2ZV9jbWRzLCAkMSkgaW4KLSsgICAgKid+JyopCi0rICAgICAgIyBGSVhNRTogd2UgbWF5IGhh dmUgdG8gZGVhbCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgotKyAgICAgIDs7Ci0rICAg ICckQ0MgJyopCi0rICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkg bGlua3Mgd2l0aCAtbGMgc2luY2Ugb24gc29tZQotKyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFz IHRvIGNvbWUgYmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYwotKyAgICAgICMg dG8gbGQsIGRvbid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgotKyAgICAgIEFDX0NBQ0hFX0NIRUNL KFt3aGV0aGVyIC1sYyBzaG91bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW5dLAotKwlbbHRfY3Zf XV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKSwKLSsJWyRSTSBjb25mdGVzdCoK LSsJZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0 Ci0rCi0rCWlmIEFDX1RSWV9FVkFMKGFjX2NvbXBpbGUpIDI+Y29uZnRlc3QuZXJyOyB0aGVuCi0r CSAgc29uYW1lPWNvbmZ0ZXN0Ci0rCSAgbGliPWNvbmZ0ZXN0Ci0rCSAgbGlib2Jqcz1jb25mdGVz dC4kYWNfb2JqZXh0Ci0rCSAgZGVwbGlicz0KLSsJICB3bD0kX0xUX1RBR1ZBUihsdF9wcm9nX2Nv bXBpbGVyX3dsLCAkMSkKLSsJICBwaWNfZmxhZz0kX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVy X3BpYywgJDEpCi0rCSAgY29tcGlsZXJfZmxhZ3M9LXYKLSsJICBsaW5rZXJfZmxhZ3M9LXYKLSsJ ICB2ZXJzdHJpbmc9Ci0rCSAgb3V0cHV0X29iamRpcj0uCi0rCSAgbGlibmFtZT1jb25mdGVzdAot KwkgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZp bmVkX2ZsYWcsICQxKQotKwkgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0K LSsJICBpZiBBQ19UUllfRVZBTChfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpIDJcPlwmMSBc fCAkR1JFUCBcIiAtbGMgXCIgXD4vZGV2L251bGwgMlw+XCYxKQotKwkgIHRoZW4KLSsJICAgIGx0 X2N2X1tdX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9sYywgJDEpPW5vCi0rCSAgZWxzZQot KwkgICAgbHRfY3ZfW11fTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCi0r CSAgZmkKLSsJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9mbGFnLCAkMSk9JGx0X3NhdmVf YWxsb3dfdW5kZWZpbmVkX2ZsYWcKLSsJZWxzZQotKwkgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQot KwlmaQotKwkkUk0gY29uZnRlc3QqCi0rCV0pCi0rICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHNfbmVlZF9sYywgJDEpPSRsdF9jdl9bXV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMs ICQxKQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICA7OwotK2VzYWMKLSsKLStfTFRf VEFHREVDTChbYnVpbGRfbGlidG9vbF9uZWVkX2xjXSwgW2FyY2hpdmVfY21kc19uZWVkX2xjXSwg WzBdLAotKyAgICBbV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3IgYnVpbGRpbmcgc2hhcmVk IGxpYnJhcmllc10pCi0rX0xUX1RBR0RFQ0woW2FsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRp Y19ydW50aW1lc10sCi0rICAgIFtlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzXSwg WzBdLAotKyAgICBbV2hldGhlciBvciBub3QgdG8gZGlzYWxsb3cgc2hhcmVkIGxpYnMgd2hlbiBy dW50aW1lIGxpYnMgYXJlIHN0YXRpY10pCi0rX0xUX1RBR0RFQ0woW10sIFtleHBvcnRfZHluYW1p Y19mbGFnX3NwZWNdLCBbMV0sCi0rICAgIFtDb21waWxlciBmbGFnIHRvIGFsbG93IHJlZmxleGl2 ZSBkbG9wZW5zXSkKLStfTFRfVEFHREVDTChbXSwgW3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjXSwg WzFdLAotKyAgICBbQ29tcGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJl Y3RseSBmcm9tIGFyY2hpdmVzXSkKLStfTFRfVEFHREVDTChbXSwgW2NvbXBpbGVyX25lZWRzX29i amVjdF0sIFsxXSwKLSsgICAgW1doZXRoZXIgdGhlIGNvbXBpbGVyIGNvcGVzIHdpdGggcGFzc2lu ZyBubyBvYmplY3RzIGRpcmVjdGx5XSkKLStfTFRfVEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2Zy b21fbmV3X2NtZHNdLCBbMl0sCi0rICAgIFtDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJv bSBhIHNoYXJlZCBhcmNoaXZlXSkKLStfTFRfVEFHREVDTChbXSwgW29sZF9hcmNoaXZlX2Zyb21f ZXhwc3ltc19jbWRzXSwgWzJdLAotKyAgICBbQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBh cmNoaXZlIHRvIGxpbmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlXSkKLStfTFRfVEFHREVD TChbXSwgW2FyY2hpdmVfY21kc10sIFsyXSwgW0NvbW1hbmRzIHVzZWQgdG8gYnVpbGQgYSBzaGFy ZWQgYXJjaGl2ZV0pCi0rX0xUX1RBR0RFQ0woW10sIFthcmNoaXZlX2V4cHN5bV9jbWRzXSwgWzJd KQotK19MVF9UQUdERUNMKFtdLCBbbW9kdWxlX2NtZHNdLCBbMl0sCi0rICAgIFtDb21tYW5kcyB1 c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUgbW9kdWxlIGlmIGRpZmZlcmVudCBmcm9tIGJ1aWxkaW5n Ci0rICAgIGEgc2hhcmVkIGFyY2hpdmUuXSkKLStfTFRfVEFHREVDTChbXSwgW21vZHVsZV9leHBz eW1fY21kc10sIFsyXSkKLStfTFRfVEFHREVDTChbXSwgW3dpdGhfZ251X2xkXSwgWzFdLAotKyAg ICBbV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90XSkKLStfTFRfVEFH REVDTChbXSwgW2FsbG93X3VuZGVmaW5lZF9mbGFnXSwgWzFdLAotKyAgICBbRmxhZyB0aGF0IGFs bG93cyBzaGFyZWQgbGlicmFyaWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHRd KQotK19MVF9UQUdERUNMKFtdLCBbbm9fdW5kZWZpbmVkX2ZsYWddLCBbMV0sCi0rICAgIFtGbGFn IHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHNdKQotK19MVF9UQUdERUNMKFtdLCBb aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY10sIFsxXSwKLSsgICAgW0ZsYWcgdG8gaGFyZGNvZGUg JGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgotKyAgICBUaGlzIG11c3Qgd29y ayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3QgZXhpc3RdKQotK19MVF9UQUdERUNMKFtdLCBbaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF0sIFsxXSwKLSsgICAgW1tJZiBsZCBpcyB1c2VkIHdo ZW4gbGlua2luZywgZmxhZyB0byBoYXJkY29kZSAkbGliZGlyIGludG8gYSBiaW5hcnkKLSsgICAg ZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qgd29yayBldmVuIGlmICRsaWJkaXIgZG9lcyBub3Qg ZXhpc3RdXSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JdLCBb MV0sCi0rICAgIFtXaGV0aGVyIHdlIG5lZWQgYSBzaW5nbGUgIi1ycGF0aCIgZmxhZyB3aXRoIGEg c2VwYXJhdGVkIGFyZ3VtZW50XSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2RpcmVjdF0s IFswXSwKLSsgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4 dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rICAgIERJUiBpbnRvIHRoZSByZXN1bHRpbmcg YmluYXJ5XSkKLStfTFRfVEFHREVDTChbXSwgW2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZV0sIFsw XSwKLSsgICAgW1NldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRSR7c2hhcmVkX2V4dH0g ZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rICAgIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmlu YXJ5IGFuZCB0aGUgcmVzdWx0aW5nIGxpYnJhcnkgZGVwZW5kZW5jeSBpcwotKyAgICAiYWJzb2x1 dGUiLCBpLmUgaW1wb3NzaWJsZSB0byBjaGFuZ2UgYnkgc2V0dGluZyAke3NobGlicGF0aF92YXJ9 IGlmIHRoZQotKyAgICBsaWJyYXJ5IGlzIHJlbG9jYXRlZF0pCi0rX0xUX1RBR0RFQ0woW10sIFto YXJkY29kZV9taW51c19MXSwgWzBdLAotKyAgICBbU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAt TERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsgICAgaW50byB0aGUgcmVz dWx0aW5nIGJpbmFyeV0pCi0rX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9zaGxpYnBhdGhfdmFy XSwgWzBdLAotKyAgICBbU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1 cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsgICAgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFy eV0pCi0rX0xUX1RBR0RFQ0woW10sIFtoYXJkY29kZV9hdXRvbWF0aWNdLCBbMF0sCi0rICAgIFtT ZXQgdG8gInllcyIgaWYgYnVpbGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhh cmRjb2RlcyBESVIKLSsgICAgaW50byB0aGUgbGlicmFyeSBhbmQgYWxsIHN1YnNlcXVlbnQgbGli cmFyaWVzIGFuZCBleGVjdXRhYmxlcyBsaW5rZWQKLSsgICAgYWdhaW5zdCBpdF0pCi0rX0xUX1RB R0RFQ0woW10sIFtpbmhlcml0X3JwYXRoXSwgWzBdLAotKyAgICBbU2V0IHRvIHllcyBpZiBsaW5r ZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKLSsgICAgdG8gcnVu dGltZSBwYXRoIGxpc3RdKQotK19MVF9UQUdERUNMKFtdLCBbbGlua19hbGxfZGVwbGlic10sIFsw XSwKLSsgICAgW1doZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFnYWluc3QgYWxs IGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllc10pCi0rX0xUX1RBR0RFQ0woW10sIFthbHdheXNfZXhw b3J0X3N5bWJvbHNdLCBbMF0sCi0rICAgIFtTZXQgdG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9s cyBhcmUgcmVxdWlyZWRdKQotK19MVF9UQUdERUNMKFtdLCBbZXhwb3J0X3N5bWJvbHNfY21kc10s IFsyXSwKLSsgICAgW1RoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHNdKQotK19M VF9UQUdERUNMKFtdLCBbZXhjbHVkZV9leHBzeW1zXSwgWzFdLAotKyAgICBbU3ltYm9scyB0aGF0 IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9sc10pCi0rX0xUX1RB R0RFQ0woW10sIFtpbmNsdWRlX2V4cHN5bXNdLCBbMV0sCi0rICAgIFtTeW1ib2xzIHRoYXQgbXVz dCBhbHdheXMgYmUgZXhwb3J0ZWRdKQotK19MVF9UQUdERUNMKFtdLCBbcHJlbGlua19jbWRzXSwg WzJdLAotKyAgICBbQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHByb2dyYW1zIChhZ2Fp bnN0IGxpYnJhcmllcykgd2l0aCB0ZW1wbGF0ZXNdKQotK19MVF9UQUdERUNMKFtdLCBbcG9zdGxp bmtfY21kc10sIFsyXSwKLSsgICAgW0NvbW1hbmRzIG5lY2Vzc2FyeSBmb3IgZmluaXNoaW5nIGxp bmtpbmcgcHJvZ3JhbXNdKQotK19MVF9UQUdERUNMKFtdLCBbZmlsZV9saXN0X3NwZWNdLCBbMV0s Ci0rICAgIFtTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXNdKQotK2RubCBG SVhNRTogTm90IHlldCBpbXBsZW1lbnRlZAotK2RubCBfTFRfVEFHREVDTChbXSwgW3RocmVhZF9z YWZlX2ZsYWdfc3BlY10sIFsxXSwKLStkbmwgICAgW0NvbXBpbGVyIGZsYWcgdG8gZ2VuZXJhdGUg dGhyZWFkIHNhZmUgb2JqZWN0c10pCi0rXSkjIF9MVF9MSU5LRVJfU0hMSUJTCi0rCi0rCi0rIyBf TFRfTEFOR19DX0NPTkZJRyhbVEFHXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg RW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFyaWFibGVzIGZvciBhIEMgY29tcGlsZXIg YXJlIHN1aXRhYmx5Ci0rIyBkZWZpbmVkLiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50 bHkgdXNlZCBieSBfTFRfQ09ORklHIHRvIHdyaXRlCi0rIyB0aGUgY29tcGlsZXIgY29uZmlndXJh dGlvbiB0byBgbGlidG9vbCcuCi0rbTRfZGVmdW4oW19MVF9MQU5HX0NfQ09ORklHXSwKLStbbTRf cmVxdWlyZShbX0xUX0RFQ0xfRUdSRVBdKWRubAotK2x0X3NhdmVfQ0M9IiRDQyIKLStBQ19MQU5H X1BVU0goQykKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQyB0ZXN0IHNvdXJjZXMu Ci0rYWNfZXh0PWMKLSsKLSsjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgQyB0 ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQK LSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBs ZV9jb21waWxlX3Rlc3RfY29kZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKLSsKLSsjIENvZGUg dG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29k ZT0naW50IG1haW4oKXtyZXR1cm4oMCk7fScKLSsKLStfTFRfVEFHX0NPTVBJTEVSCi0rIyBTYXZl IHRoZSBkZWZhdWx0IGNvbXBpbGVyLCBzaW5jZSBpdCBnZXRzIG92ZXJ3cml0dGVuIHdoZW4gdGhl IG90aGVyCi0rIyB0YWdzIGFyZSBiZWluZyB0ZXN0ZWQsIGFuZCBfTFRfVEFHVkFSKGNvbXBpbGVy LCBbXSkgaXMgYSBOT1AuCi0rY29tcGlsZXJfREVGQVVMVD0kQ0MKLSsKLSsjIHNhdmUgd2Fybmlu Z3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotK19MVF9DT01QSUxFUl9CT0lMRVJQ TEFURQotK19MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLSsjIyBDQVZFQVQgRU1QVE9SOgotKyMj IFRoZXJlIGlzIG5vIGVuY2Fwc3VsYXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBk byBub3QgY2hhbmdlCi0rIyMgdGhlIHJ1bm5pbmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhl bSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0bHkKLSsjIyB3aGF0IHlvdSBhcmUgZG9pbmcu Li4KLStpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCi0rICBfTFRfQ09NUElMRVJfTk9fUlRU SSgkMSkKLSsgIF9MVF9DT01QSUxFUl9QSUMoJDEpCi0rICBfTFRfQ09NUElMRVJfQ19PKCQxKQot KyAgX0xUX0NPTVBJTEVSX0ZJTEVfTE9DS1MoJDEpCi0rICBfTFRfTElOS0VSX1NITElCUygkMSkK LSsgIF9MVF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCi0rICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJ QlBBVEgoJDEpCi0rICBMVF9TWVNfRExPUEVOX1NFTEYKLSsgIF9MVF9DTURfU1RSSVBMSUIKLSsK LSsgICMgUmVwb3J0IHdoaWNoIGxpYnJhcnkgdHlwZXMgd2lsbCBhY3R1YWxseSBiZSBidWlsdAot KyAgQUNfTVNHX0NIRUNLSU5HKFtpZiBsaWJ0b29sIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXNd KQotKyAgQUNfTVNHX1JFU1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQotKwotKyAgQUNfTVNHX0NI RUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQotKyAgdGVzdCAiJGNh bl9idWlsZF9zaGFyZWQiID0gIm5vIiAmJiBlbmFibGVfc2hhcmVkPW5vCi0rCi0rICAjIE9uIEFJ WCwgc2hhcmVkIGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFt ZXNwYWNlLCBhbmQKLSsgICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KLSsgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgIGFpeDMqKQotKyAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5h YmxlX3N0YXRpYz1ubwotKyAgICBpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotKyAgICAgIGFy Y2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIKLSsgICAgICBwb3N0aW5z dGFsbF9jbWRzPSckUkFOTElCICRsaWInCi0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICBhaXhbWzQt OV1dKikKLSsgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNl X3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgotKyAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVk IiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0r ICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3NoYXJlZF0pCi0rCi0rICBBQ19NU0dfQ0hFQ0tJTkco W3doZXRoZXIgdG8gYnVpbGQgc3RhdGljIGxpYnJhcmllc10pCi0rICAjIE1ha2Ugc3VyZSBlaXRo ZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KLSsgIHRlc3QgIiRlbmFi bGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXllcwotKyAgQUNfTVNHX1JFU1VMVChb JGVuYWJsZV9zdGF0aWNdKQotKwotKyAgX0xUX0NPTkZJRygkMSkKLStmaQotK0FDX0xBTkdfUE9Q Ci0rQ0M9IiRsdF9zYXZlX0NDIgotK10pIyBfTFRfTEFOR19DX0NPTkZJRwotKwotKwotKyMgX0xU X0xBTkdfQ1hYX0NPTkZJRyhbVEFHXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0r IyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEgQysrIGNvbXBp bGVyIGFyZSBzdWl0YWJseQotKyMgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2Vx dWVudGx5IHVzZWQgYnkgX0xUX0NPTkZJRyB0byB3cml0ZQotKyMgdGhlIGNvbXBpbGVyIGNvbmZp Z3VyYXRpb24gdG8gYGxpYnRvb2wnLgotK200X2RlZnVuKFtfTFRfTEFOR19DWFhfQ09ORklHXSwK LStbbTRfcmVxdWlyZShbX0xUX0ZJTEVVVElMU19ERUZBVUxUU10pZG5sCi0rbTRfcmVxdWlyZShb X0xUX0RFQ0xfRUdSRVBdKWRubAotK200X3JlcXVpcmUoW19MVF9QQVRIX01BTklGRVNUX1RPT0xd KWRubAotK2lmIHRlc3QgLW4gIiRDWFgiICYmICggdGVzdCAiWCRDWFgiICE9ICJYbm8iICYmCi0r ICAgICggKHRlc3QgIlgkQ1hYIiA9ICJYZysrIiAmJiBgZysrIC12ID4vZGV2L251bGwgMj4mMWAg KSB8fAotKyAgICAodGVzdCAiWCRDWFgiICE9ICJYZysrIikpKSA7IHRoZW4KLSsgIEFDX1BST0df Q1hYQ1BQCi0rZWxzZQotKyAgX2x0X2NhdWdodF9DWFhfZXJyb3I9eWVzCi0rZmkKLSsKLStBQ19M QU5HX1BVU0goQysrKQotK19MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwot K19MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFSKGFsd2F5 c19leHBvcnRfc3ltYm9scywgJDEpPW5vCi0rX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRz LCAkMSk9Ci0rX0xUX1RBR1ZBUihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT1ubwotK19MVF9U QUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9Ci0rX0xUX1RBR1ZBUihoYXJkY29k ZV9kaXJlY3QsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlLCAk MSk9bm8KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0KLStfTFRf VEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQsICQxKT0KLStfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX21pbnVz X0wsICQxKT1ubwotK19MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPXVuc3Vw cG9ydGVkCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubwotK19MVF9UQUdW QVIoaW5oZXJpdF9ycGF0aCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQot K19MVF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZBUihsaW5rX2Fs bF9kZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEp PSRvbGRfYXJjaGl2ZV9jbWRzCi0rX0xUX1RBR1ZBUihyZWxvYWRfZmxhZywgJDEpPSRyZWxvYWRf ZmxhZwotK19MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0kcmVsb2FkX2NtZHMKLStfTFRfVEFH VkFSKG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYywgJDEpPQotK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50 aW1lcywgJDEpPW5vCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIEMrKyB0ZXN0IHNv dXJjZXMuCi0rYWNfZXh0PWNwcAotKwotKyMgT2JqZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21w aWxlZCBDKysgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0rX0xUX1RBR1ZBUihvYmpleHQsICQx KT0kb2JqZXh0Ci0rCi0rIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3 ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAotKyMgdGhlIENYWCBjb21waWxlciBpc24ndCB3b3Jr aW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5hYmxlX3NoYXJlZCkKLSsjIGFyZSBjdXJyZW50 bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29tcGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCi0r IyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdv cmtpbmcgY29tcGlsZXIuCi0raWYgdGVzdCAiJF9sdF9jYXVnaHRfQ1hYX2Vycm9yIiAhPSB5ZXM7 IHRoZW4KLSsgICMgQ29kZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rICBs dF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGU9ImludCBzb21lX3ZhcmlhYmxlID0gMDsiCi0rCi0r ICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotKyAgbHRfc2ltcGxlX2xp bmtfdGVzdF9jb2RlPSdpbnQgbWFpbihpbnQsIGNoYXIgKltbXV0pIHsgcmV0dXJuKDApOyB9Jwot KwotKyAgIyBsdG1haW4gb25seSB1c2VzICRDQyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNv IG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotKyAgX0xUX1RBR19DT01QSUxFUgotKwotKyAgIyBzYXZl IHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLSsgIF9MVF9DT01QSUxF Ul9CT0lMRVJQTEFURQotKyAgX0xUX0xJTktFUl9CT0lMRVJQTEFURQotKwotKyAgIyBBbGxvdyBD QyB0byBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLSsgIGx0X3NhdmVfQ0M9JEND Ci0rICBsdF9zYXZlX0NGTEFHUz0kQ0ZMQUdTCi0rICBsdF9zYXZlX0xEPSRMRAotKyAgbHRfc2F2 ZV9HQ0M9JEdDQwotKyAgR0NDPSRHWFgKLSsgIGx0X3NhdmVfd2l0aF9nbnVfbGQ9JHdpdGhfZ251 X2xkCi0rICBsdF9zYXZlX3BhdGhfTEQ9JGx0X2N2X3BhdGhfTEQKLSsgIGlmIHRlc3QgLW4gIiR7 bHRfY3ZfcHJvZ19nbnVfbGRjeHgrc2V0fSI7IHRoZW4KLSsgICAgbHRfY3ZfcHJvZ19nbnVfbGQ9 JGx0X2N2X3Byb2dfZ251X2xkY3h4Ci0rICBlbHNlCi0rICAgICRhc191bnNldCBsdF9jdl9wcm9n X2dudV9sZAotKyAgZmkKLSsgIGlmIHRlc3QgLW4gIiR7bHRfY3ZfcGF0aF9MRENYWCtzZXR9Ijsg dGhlbgotKyAgICBsdF9jdl9wYXRoX0xEPSRsdF9jdl9wYXRoX0xEQ1hYCi0rICBlbHNlCi0rICAg ICRhc191bnNldCBsdF9jdl9wYXRoX0xECi0rICBmaQotKyAgdGVzdCAteiAiJHtMRENYWCtzZXR9 IiB8fCBMRD0kTERDWFgKLSsgIENDPSR7Q1hYLSJjKysifQotKyAgQ0ZMQUdTPSRDWFhGTEFHUwot KyAgY29tcGlsZXI9JENDCi0rICBfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCi0rICBfTFRf Q0NfQkFTRU5BTUUoWyRjb21waWxlcl0pCi0rCi0rICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0 aGVuCi0rICAgICMgV2UgZG9uJ3Qgd2FudCAtZm5vLWV4Y2VwdGlvbiB3aGVuIGNvbXBpbGluZyBD KysgY29kZSwgc28gc2V0IHRoZQotKyAgICAjIG5vX2J1aWx0aW5fZmxhZyBzZXBhcmF0ZWx5Ci0r ICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9n X2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEpPScgLWZuby1idWlsdGluJwotKyAgICBlbHNl Ci0rICAgICAgX0xUX1RBR1ZBUihsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZywgJDEp PQotKyAgICBmaQotKwotKyAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICAgICMg U2V0IHVwIGRlZmF1bHQgR05VIEMrKyBjb25maWd1cmF0aW9uCi0rCi0rICAgICAgTFRfUEFUSF9M RAotKwotKyAgICAgICMgQ2hlY2sgaWYgR05VIEMrKyB1c2VzIEdOVSBsZCBhcyB0aGUgdW5kZXJs eWluZyBsaW5rZXIsIHNpbmNlIHRoZQotKyAgICAgICMgYXJjaGl2aW5nIGNvbW1hbmRzIGJlbG93 IGFzc3VtZSB0aGF0IEdOVSBsZCBpcyBiZWluZyB1c2VkLgotKyAgICAgIGlmIHRlc3QgIiR3aXRo X2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAkcGljX2ZsYWcgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFt ZSAkd2wkc29uYW1lIC1vICRsaWInCi0rICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3lt X2NtZHMsICQxKT0nJENDICRwaWNfZmxhZyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVj dHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3 bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0 X3N5bWJvbHMgLW8gJGxpYicKLSsKLSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0rICAgICAgICBfTFRf VEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFt aWMnCi0rCi0rICAgICAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJj IHNob3VsZCBiZSBlbXB0eQotKyAgICAgICAgIyBYWFggSSB0aGluayB3bGFyYyBjYW4gYmUgZWxp bWluYXRlZCBpbiBsdGNmLWN4eCwgYnV0IEkgbmVlZCB0bwotKyAgICAgICAgIyAgICAgaW52ZXN0 aWdhdGUgaXQgYSBsaXR0bGUgYml0IG1vcmUuIChNTSkKLSsgICAgICAgIHdsYXJjPScke3dsfScK LSsKLSsgICAgICAgICMgYW5jaWVudCBHTlUgbGQgZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNo aXZlIGV0LiBhbC4KLSsgICAgICAgIGlmIGV2YWwgImAkQ0MgLXByaW50LXByb2ctbmFtZT1sZGAg LS1oZWxwIDI+JjEiIHwKLSsJICAkR1JFUCAnbm8td2hvbGUtYXJjaGl2ZScgPiAvZGV2L251bGw7 IHRoZW4KLSsgICAgICAgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEp PSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9s ZS1hcmNoaXZlJwotKyAgICAgICAgZWxzZQotKyAgICAgICAgICBfTFRfVEFHVkFSKHdob2xlX2Fy Y2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0rICAgICAgICBmaQotKyAgICAgIGVsc2UKLSsgICAgICAg IHdpdGhfZ251X2xkPW5vCi0rICAgICAgICB3bGFyYz0KLSsKLSsgICAgICAgICMgQSBnZW5lcmlj IGFuZCB2ZXJ5IHNpbXBsZSBkZWZhdWx0IHNoYXJlZCBsaWJyYXJ5IGNyZWF0aW9uCi0rICAgICAg ICAjIGNvbW1hbmQgZm9yIEdOVSBDKysgZm9yIHRoZSBjYXNlIHdoZXJlIGl0IHVzZXMgdGhlIG5h dGl2ZQotKyAgICAgICAgIyBsaW5rZXIsIGluc3RlYWQgb2YgR05VIGxkLiAgSWYgcG9zc2libGUs IHRoaXMgc2V0dGluZyBzaG91bGQKLSsgICAgICAgICMgb3ZlcnJpZGRlbiB0byB0YWtlIGFkdmFu dGFnZSBvZiB0aGUgbmF0aXZlIGxpbmtlciBmZWF0dXJlcyBvbgotKyAgICAgICAgIyB0aGUgcGxh dGZvcm0gaXQgaXMgYmVpbmcgdXNlZCBvbi4KLSsgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKLSsgICAg ICBmaQotKwotKyAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJv c2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBv YmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsgICAgICAjIGxpbmtpbmcgYSBz aGFyZWQgbGlicmFyeS4KLSsgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFy ZWQgJENGTEFHUyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAtdiAiXkNvbmZpZ3Vy ZWQgd2l0aDoiIHwgJEdSRVAgIlwtTCInCi0rCi0rICAgIGVsc2UKLSsgICAgICBHWFg9bm8KLSsg ICAgICB3aXRoX2dudV9sZD1ubwotKyAgICAgIHdsYXJjPQotKyAgICBmaQotKwotKyAgICAjIFBP UlRNRTogZmlsbCBpbiBhIGRlc2NyaXB0aW9uIG9mIHlvdXIgc3lzdGVtJ3MgQysrIGxpbmsgY2hh cmFjdGVyaXN0aWNzCi0rICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgJGNvbXBpbGVy IGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKLSsgICAgX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT15ZXMKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeDMq KQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0r ICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rICAgICAgICA7OwotKyAgICAg IGFpeFtbNC05XV0qKQotKyAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4K LSsgICAgICAgICAgIyBPbiBJQTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBi eSBkZWZhdWx0LCBzbyB3ZSBkb24ndAotKyAgICAgICAgICAjIGhhdmUgdG8gZG8gYW55dGhpbmcg c3BlY2lhbC4KLSsgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz1ubwotKyAgICAgICAg ICBleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JwotKyAgICAgICAgICBub19lbnRyeV9mbGFnPSIiCi0r ICAgICAgICBlbHNlCi0rICAgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsKLSsg ICAgICAgICAgIyBUZXN0IGlmIHdlIGFyZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcg b3Igbm9ybWFsCi0rICAgICAgICAgICMgQUlYIHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNv bWV3aGVyZSBpbiBMREZMQUdTLCB3ZQotKyAgICAgICAgICAjIG5lZWQgdG8gZG8gcnVudGltZSBs aW5raW5nLgotKyAgICAgICAgICBjYXNlICRob3N0X29zIGluIGFpeDQuW1syM11dfGFpeDQuW1sy M11dLip8YWl4W1s1LTldXSopCi0rCSAgICBmb3IgbGRfZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJ ICAgICAgY2FzZSAkbGRfZmxhZyBpbgotKwkgICAgICAqLWJydGwqKQotKwkgICAgICAgIGFpeF91 c2VfcnVudGltZWxpbmtpbmc9eWVzCi0rCSAgICAgICAgYnJlYWsKLSsJICAgICAgICA7OwotKwkg ICAgICBlc2FjCi0rCSAgICBkb25lCi0rCSAgICA7OwotKyAgICAgICAgICBlc2FjCi0rCi0rICAg ICAgICAgIGV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCi0rICAgICAgICAgIG5vX2VudHJ5X2ZsYWc9 Jy1ibm9lbnRyeScKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0 YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0LCBBSVggbGQgY2FuCi0rICAgICAgICAj IGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxlIG9mIGNvbnRlbnRzLiAgSWYgbGlua2lu ZyBhIGxpYnJhcnkKLSsgICAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRzIGluICJlcnJvciBUT0Mg b3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCi0rICAgICAgICAjIENYWEZMQUdTL0NGTEFH UyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVyZSB0aGF0IGlzIG5vdAotKyAgICAgICAg IyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQgLVdsLC1iYmlndG9jIHRvIExERkxBR1Mu Ci0rCi0rICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPScnCi0rICAgICAgICBf TFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgICAgX0xUX1RBR1ZBUiho YXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT15ZXMKLSsgICAgICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPSc6JwotKyAgICAgICAgX0xUX1RBR1ZBUihsaW5r X2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rICAgICAgICBfTFRfVEFHVkFSKGZpbGVfbGlzdF9zcGVj LCAkMSk9JyR7d2x9LWYsJwotKwotKyAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4K LSsgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LltbMDEyXV18YWl4NC5bWzAxMl1dLiop Ci0rICAgICAgICAgICMgV2Ugb25seSB3YW50IHRvIGRvIHRoaXMgb24gQUlYIDQuMiBhbmQgbG93 ZXIsIHRoZSBjaGVjawotKyAgICAgICAgICAjIGJlbG93IGZvciBicm9rZW4gY29sbGVjdDIgZG9l c24ndCB3b3JrIHVuZGVyIDQuMysKLSsJICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9n LW5hbWU9Y29sbGVjdDJgCi0rCSAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYKLSsJICAg ICBzdHJpbmdzICIkY29sbGVjdDJuYW1lIiB8ICRHUkVQIHJlc29sdmVfbGliX25hbWUgPi9kZXYv bnVsbAotKwkgIHRoZW4KLSsJICAgICMgV2UgaGF2ZSByZXdvcmtlZCBjb2xsZWN0MgotKwkgICAg OgotKwkgIGVsc2UKLSsJICAgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKLSsJICAgIF9MVF9UQUdW QVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9dW5zdXBwb3J0ZWQKLSsJICAgICMgSXQgZmFpbHMgdG8g ZmluZCB1bmluc3RhbGxlZCBsaWJyYXJpZXMgd2hlbiB0aGUgdW5pbnN0YWxsZWQKLSsJICAgICMg cGF0aCBpcyBub3QgbGlzdGVkIGluIHRoZSBsaWJwYXRoLiAgU2V0dGluZyBoYXJkY29kZV9taW51 c19MCi0rCSAgICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKLSsJICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEpPXllcwotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsJICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPQotKwkgIGZpCi0rICAgICAgICAgIGVzYWMKLSsg ICAgICAgICAgc2hhcmVkX2ZsYWc9Jy1zaGFyZWQnCi0rCSAgaWYgdGVzdCAiJGFpeF91c2VfcnVu dGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgICBzaGFyZWRfZmxhZz0iJHNoYXJlZF9mbGFn ICInJHt3bH0tRycKLSsJICBmaQotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAjIG5vdCB1c2lu ZyBnY2MKLSsgICAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJICAj IFZpc3VhbEFnZSBDKyssIFZlcnNpb24gNS41IGZvciBBSVggNUwgZm9yIElBLTY0LCBCZXRhIDMg UmVsZWFzZQotKwkgICMgY2hva2VzIG9uIC1XbCwtRy4gVGhlIGZvbGxvd2luZyBsaW5lIGlzIGNv cnJlY3Q6Ci0rCSAgc2hhcmVkX2ZsYWc9Jy1HJwotKyAgICAgICAgICBlbHNlCi0rCSAgICBpZiB0 ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICAgICAgc2hhcmVk X2ZsYWc9JyR7d2x9LUcnCi0rCSAgICBlbHNlCi0rCSAgICAgIHNoYXJlZF9mbGFnPScke3dsfS1i TTpTUkUnCi0rCSAgICBmaQotKyAgICAgICAgICBmaQotKyAgICAgICAgZmkKLSsKLSsgICAgICAg IF9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LWJleHBhbGwn Ci0rICAgICAgICAjIEl0IHNlZW1zIHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJv bHMgYmVnaW5uaW5nIHdpdGgKLSsgICAgICAgICMgdW5kZXJzY29yZSAoXyksIHNvIGl0IGlzIGJl dHRlciB0byBnZW5lcmF0ZSBhIGxpc3Qgb2Ygc3ltYm9scyB0bwotKwkjIGV4cG9ydC4KLSsgICAg ICAgIF9MVF9UQUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9eWVzCi0rICAgICAgICBp ZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsgICAgICAgICAg IyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5nIGZsYWdz ICgtYnJ0bCksCi0rICAgICAgICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBi dXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsgICAgICAgICAgX0xUX1RBR1ZBUihh bGxvd191bmRlZmluZWRfZmxhZywgJDEpPSctYmVyb2snCi0rICAgICAgICAgICMgRGV0ZXJtaW5l IHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbiBlbXB0eQot KyAgICAgICAgICAjIGV4ZWN1dGFibGUuCi0rICAgICAgICAgIF9MVF9TWVNfTU9EVUxFX1BBVEhf QUlYKFskMV0pCi0rICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl YywgJDEpPScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwotKyAgICAg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1vICRvdXRwdXRf b2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyIn ICRjb21waWxlcl9mbGFncyBgaWYgdGVzdCAieCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9IiAhPSAi eCI7IHRoZW4gZnVuY19lY2hvX2FsbCAiJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSI7IGVs c2UgOjsgZmlgICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9zeW1ib2xzICRzaGFyZWRf ZmxhZyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlh NjQ7IHRoZW4KLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PScke3dsfS1SICRsaWJkaXI6L3Vzci9saWI6L2xpYicKLSsJICAgIF9MVF9UQUdWQVIoYWxsb3df dW5kZWZpbmVkX2ZsYWcsICQxKT0iLXogbm9kZWZzIgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2V4cHN5bV9jbWRzLCAkMSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIv JHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAnIlwke3dsfSRub19lbnRyeV9mbGFnIicgJGNvbXBp bGVyX2ZsYWdzICR7d2x9JHthbGxvd191bmRlZmluZWRfZmxhZ30gJyJcJHt3bH0kZXhwX3N5bV9m bGFnOlwkZXhwb3J0X3N5bWJvbHMiCi0rICAgICAgICAgIGVsc2UKLSsJICAgICMgRGV0ZXJtaW5l IHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUgZW5jb2RlZCBpbiBhbgotKwkgICAg IyBlbXB0eSBleGVjdXRhYmxlLgotKwkgICAgX0xUX1NZU19NT0RVTEVfUEFUSF9BSVgoWyQxXSkK LSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1i bGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICAgIyBXYXJuaW5nIC0gd2l0aG91 dCB1c2luZyB0aGUgb3RoZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKLSsJICAgICMgLWJlcm9r IHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFy eS4KLSsJICAgIF9MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWJlcm5v dG9rJwotKwkgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgJHt3bH0t YmVyb2snCi0rCSAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0rCSAgICAg ICMgV2Ugb25seSB1c2UgdGhpcyBjb2RlIGZvciBHTlUgbGRzIHRoYXQgc3VwcG9ydCAtLXdob2xl LWFyY2hpdmUuCi0rCSAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQx KT0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5vLXdob2xlLWFyY2hp dmUnCi0rCSAgICBlbHNlCi0rCSAgICAgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVk IGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcwotKwkgICAgICBfTFRfVEFHVkFSKHdo b2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyRjb252ZW5pZW5jZScKLSsJICAgIGZpCi0rCSAg ICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9eWVzCi0rCSAgICAjIFRoaXMg aXMgc2ltaWxhciB0byBob3cgQUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQKLSsJ ICAgICMgbGlicmFyaWVzLgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2Jq cyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9y dF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxhZ31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29i amRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1dF9vYmpkaXIvJHNvbmFtZScKLSsgICAgICAg ICAgZmkKLSsgICAgICAgIGZpCi0rICAgICAgICA7OwotKwotKyAgICAgIGJlb3MqKQotKwlpZiAk TEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rl di9udWxsOyB0aGVuCi0rCSAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPXVu c3VwcG9ydGVkCi0rCSAgIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0BiZXN0LmNvbT4gc2F5cyBz b21lIHJlbGVhc2VzIG9mIGdjYwotKwkgICMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVz ZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKLSsJICBfTFRfVEFHVkFSKGFyY2hpdmVf Y21kcywgJDEpPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdz ICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWVsc2UKLSsJICBfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPW5vCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgY2hvcnVzKikKLSsgICAg ICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgICopCi0rCSAgIyBGSVhNRTogaW5z ZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgX0xUX1RBR1ZBUihsZF9zaGxpYnMs ICQxKT1ubwotKwkgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIGN5 Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsJY2FzZSAkR1hYLCRjY19iYXNlbmFt ZSBpbgotKwksY2wqIHwgbm8sY2wqKQotKwkgICMgTmF0aXZlIE1TVkMKLSsJICAjIGhhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCi0r CSAgIyBubyBzZWFyY2ggcGF0aCBmb3IgRExMcy4KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nICcKLSsJICBfTFRfVEFHVkFSKGFsbG93X3VuZGVmaW5lZF9m bGFnLCAkMSk9dW5zdXBwb3J0ZWQKLSsJICBfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9s cywgJDEpPXllcwotKwkgIF9MVF9UQUdWQVIoZmlsZV9saXN0X3NwZWMsICQxKT0nQCcKLSsJICAj IFRlbGwgbHRtYWluIHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgotKwkgIGxpYmV4 dD1saWIKLSsJICAjIFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxl cy4KLSsJICBzaHJleHRfY21kcz0iLmRsbCIKLSsJICAjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1l cyBoZXJlIGlzIGEgYmFkIGhhY2suCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzICRk ZXBsaWJzIC1XbCwtZGxsfmxpbmtuYW1lcz0nCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5 bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBP UlRTOyB0aGVuCi0rCSAgICAgICRTRUQgLW4gLWUgJ3MvXFxcXFxcXCguKlxcXFxcXFwpLy1saW5r XFxcIC1FWFBPUlQ6XFxcXFxcXDEvJyAtZSAnMVxcXCFwJyA8ICRleHBvcnRfc3ltYm9scyA+ICRv dXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwOwotKwkgICAgZWxzZQotKwkgICAgICAkU0VEIC1lICdz L1xcXFxcXFwoLipcXFxcXFxcKS8tbGlua1xcXCAtRVhQT1JUOlxcXFxcXFwxLycgPCAkZXhwb3J0 X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmV4cDsKLSsJICAgIGZpfgotKwkgICAg JENDIC1vICR0b29sX291dHB1dF9vYmpkaXIkc29uYW1lICRsaWJvYmpzICRjb21waWxlcl9mbGFn cyAkZGVwbGlicyAiQCR0b29sX291dHB1dF9vYmpkaXIkc29uYW1lLmV4cCIgLVdsLC1ETEwsLUlN UExJQjoiJHRvb2xfb3V0cHV0X29iamRpciRsaWJuYW1lLmRsbC5saWIifgotKwkgICAgbGlua25h bWVzPScKLSsJICAjIFRoZSBsaW5rZXIgd2lsbCBub3QgYXV0b21hdGljYWxseSBidWlsZCBhIHN0 YXRpYyBsaWIgaWYgd2UgYnVpbGQgYSBETEwuCi0rCSAgIyBfTFRfVEFHVkFSKG9sZF9hcmNoaXZl X2Zyb21fbmV3X2NtZHMsICQxKT0ndHJ1ZScKLSsJICBfTFRfVEFHVkFSKGVuYWJsZV9zaGFyZWRf d2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKLSsJICAjIERvbid0IHVzZSByYW5saWIKLSsJ ICBfTFRfVEFHVkFSKG9sZF9wb3N0aW5zdGFsbF9jbWRzLCAkMSk9J2NobW9kIDY0NCAkb2xkbGli JwotKwkgIF9MVF9UQUdWQVIocG9zdGxpbmtfY21kcywgJDEpPSdsdF9vdXRwdXRmaWxlPSJAT1VU UFVUQCJ+Ci0rCSAgICBsdF90b29sX291dHB1dGZpbGU9IkBUT09MX09VVFBVVEAifgotKwkgICAg Y2FzZSAkbHRfb3V0cHV0ZmlsZSBpbgotKwkgICAgICAqLmV4ZXwqLkVYRSkgOzsKLSsJICAgICAg KikKLSsJCWx0X291dHB1dGZpbGU9IiRsdF9vdXRwdXRmaWxlLmV4ZSIKLSsJCWx0X3Rvb2xfb3V0 cHV0ZmlsZT0iJGx0X3Rvb2xfb3V0cHV0ZmlsZS5leGUiCi0rCQk7OwotKwkgICAgZXNhY34KLSsJ ICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkbHRfb3V0cHV0ZmlsZSJ+Ci0rCSAgICBpZiB0ZXN0ICIk TUFOSUZFU1RfVE9PTCIgIT0gIjoiICYmIHRlc3QgLWYgIiRsdF9vdXRwdXRmaWxlLm1hbmlmZXN0 IjsgdGhlbgotKwkgICAgICAkTUFOSUZFU1RfVE9PTCAtbWFuaWZlc3QgIiRsdF90b29sX291dHB1 dGZpbGUubWFuaWZlc3QiIC1vdXRwdXRyZXNvdXJjZToiJGx0X3Rvb2xfb3V0cHV0ZmlsZSIgfHwg ZXhpdCAxOwotKwkgICAgICAkUk0gIiRsdF9vdXRwdXRmaWxlLm1hbmlmZXN0IjsKLSsJICAgIGZp JwotKwkgIDs7Ci0rCSopCi0rCSAgIyBnKysKLSsJICAjIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpIGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLAotKwkgICMgYXMgdGhl cmUgaXMgbm8gc2VhcmNoIHBhdGggZm9yIERMTHMuCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1MJGxpYmRpcicKLSsJICBfTFRfVEFHVkFSKGV4cG9ydF9k eW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWFsbC1zeW1ib2xzJwotKwkgIF9M VF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT11bnN1cHBvcnRlZAotKwkgIF9MVF9U QUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLSsJICBfTFRfVEFHVkFSKGVuYWJs ZV9zaGFyZWRfd2l0aF9zdGF0aWNfcnVudGltZXMsICQxKT15ZXMKLSsKLSsJICBpZiAkTEQgLS1o ZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHt3bH0tLWVuYWJsZS1hdXRvLWltYWdlLWJh c2UgLVhsaW5rZXIgLS1vdXQtaW1wbGliIC1YbGlua2VyICRsaWInCi0rCSAgICAjIElmIHRoZSBl eHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAuZGVmIGZpbGUgKDFzdCBsaW5lCi0rCSAg ICAjIGlzIEVYUE9SVFMpLCB1c2UgaXQgYXMgaXM7IG90aGVyd2lzZSwgcHJlcGVuZC4uLgotKwkg ICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J2lmIHRlc3QgInhgJFNFRCAx cSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0rCSAgICAgIGNwICRleHBvcnRf c3ltYm9scyAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJICAgIGVsc2UKLSsJICAgICAg ZWNobyBFWFBPUlRTID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCSAgICAgIGNhdCAk ZXhwb3J0X3N5bWJvbHMgPj4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCSAgICBmaX4K LSsJICAgICRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZiAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAke3dsfS0tZW5hYmxlLWF1dG8taW1h Z2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhsaW5rZXIgJGxpYicKLSsJICBlbHNlCi0r CSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgZmkKLSsJICA7OwotKwllc2Fj Ci0rCTs7Ci0rICAgICAgZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgICAgICAgIF9MVF9EQVJXSU5f TElOS0VSX0ZFQVRVUkVTKCQxKQotKwk7OwotKwotKyAgICAgIGRndXgqKQotKyAgICAgICAgY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgZWMrKyopCi0rCSAgICAjIEZJWE1FOiBpbnNl cnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSk9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGdoY3gqKQotKwkgICAgIyBHcmVlbiBIaWxs cyBDKysgQ29tcGlsZXIKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkg c3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsg ICAgICAgICAgKikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwotKwkgICAgOzsKLSsgICAg ICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgZnJlZWJzZFtbMTJdXSopCi0rICAgICAg ICAjIEMrKyBzaGFyZWQgbGlicmFyaWVzIHJlcG9ydGVkIHRvIGJlIGZhaXJseSBicm9rZW4gYmVm b3JlCi0rCSMgc3dpdGNoIHRvIEVMRgotKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQx KT1ubwotKyAgICAgICAgOzsKLSsKLSsgICAgICBmcmVlYnNkLWVsZiopCi0rICAgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8KLSsgICAgICAgIDs7Ci0rCi0rICAg ICAgZnJlZWJzZCogfCBkcmFnb25mbHkqKQotKyAgICAgICAgIyBGcmVlQlNEIDMgYW5kIGxhdGVy IHVzZSBHTlUgQysrIGFuZCBHTlUgbGQgd2l0aCBzdGFuZGFyZCBFTEYKLSsgICAgICAgICMgY29u dmVudGlvbnMKLSsgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9eWVzCi0rICAgICAg ICA7OwotKwotKyAgICAgIGdudSopCi0rICAgICAgICA7OwotKwotKyAgICAgIGhhaWt1KikKLSsg ICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGli JwotKyAgICAgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rICAgICAg ICA7OwotKwotKyAgICAgIGhwdXg5KikKLSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsgICAgICAgIF9MVF9U QUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsgICAgICAgIF9MVF9UQUdW QVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LUUnCi0rICAgICAgICBfTFRf VEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXllcwotKyAgICAgICAgX0xUX1RBR1ZBUihoYXJk Y29kZV9taW51c19MLCAkMSk9eWVzICMgTm90IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJCQkJICAg ICAgICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0Ci0rCQkJCSAgICAgICAgICAgICAjIGxvY2F0 aW9uIG9mIHRoZSBsaWJyYXJ5LgotKwotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsg ICAgICAgICAgQ0MqKQotKyAgICAgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxp YnJhcnkgc3VwcG9ydAotKyAgICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8K LSsgICAgICAgICAgICA7OwotKyAgICAgICAgICBhQ0MqKQotKyAgICAgICAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtYiAk e3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzfnRlc3QgJG91dHB1dF9vYmpkaXIvJHNvbmFtZSA9ICRsaWIgfHwgbXYgJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkbGliJwotKyAgICAgICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21w aWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsgICAgICAgICAgICAjIHdo YXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdo ZW4KLSsgICAgICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsgICAgICAgICAg ICAjCi0rICAgICAgICAgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBw cmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKyAgICAgICAgICAgICMgZXhwbGljaXRseSBsaW5r aW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJpcCB0aGVtCi0rICAgICAg ICAgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNsdWRlZCBp biB0aGUgbGlicmFyeQotKyAgICAgICAgICAgICMgZGVwZW5kZW5jaWVzLgotKyAgICAgICAgICAg IG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12IGNv bmZ0ZXN0LiRvYmpleHQgMj4mMSkgfCAkRUdSRVAgIlwtTCJgOyBsaXN0PSIiOyBmb3IgeiBpbiAk dGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoi OzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19lY2hv X2FsbCAiJGxpc3QiJwotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICAgICopCi0rICAgICAgICAg ICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgICAgICAgIF9MVF9UQUdWQVIo YXJjaGl2ZV9jbWRzLCAkMSk9JyRSTSAkb3V0cHV0X29iamRpci8kc29uYW1lfiRDQyAtc2hhcmVk IC1ub3N0ZGxpYiAkcGljX2ZsYWcgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0 cHV0X29iamRpci8kc29uYW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUg PSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICAgICAgICBl bHNlCi0rICAgICAgICAgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1 cHBvcnQKLSsgICAgICAgICAgICAgIF9MVF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsgICAg ICAgICAgICBmaQotKyAgICAgICAgICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7Owot KwotKyAgICAgIGhwdXgxMCp8aHB1eDExKikKLSsgICAgICAgIGlmIHRlc3QgJHdpdGhfZ251X2xk ID0gbm87IHRoZW4KLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yLCAkMSk9OgotKwotKyAgICAgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAg ICAgICAgIGhwcGEqNjQqfGlhNjQqKQotKyAgICAgICAgICAgICAgOzsKLSsgICAgICAgICAgICAq KQotKwkgICAgICBfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3ds fS1FJwotKyAgICAgICAgICAgICAgOzsKLSsgICAgICAgICAgZXNhYwotKyAgICAgICAgZmkKLSsg ICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAgICAgIGhwcGEqNjQqfGlhNjQqKQotKyAg ICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLSsgICAgICAgICAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKyAgICAgICAgICAg IDs7Ci0rICAgICAgICAgICopCi0rICAgICAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJl Y3QsICQxKT15ZXMKLSsgICAgICAgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNv bHV0ZSwgJDEpPXllcwotKyAgICAgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwg JDEpPXllcyAjIE5vdCBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCQkJCQkgICAgICAgICAjIGJ1dCBh cyB0aGUgZGVmYXVsdAotKwkJCQkJICAgICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4K LSsgICAgICAgICAgICA7OwotKyAgICAgICAgZXNhYwotKwotKyAgICAgICAgY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBD KysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0r CSAgICA7OwotKyAgICAgICAgICBhQ0MqKQotKwkgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsJICAg ICAgaHBwYSo2NCopCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJEND IC1iICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgIDs7 Ci0rCSAgICAgIGlhNjQqKQotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGli ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncycKLSsJICAgICAgICA7OwotKwkgICAgICAqKQotKwkgICAgICAgIF9MVF9UQUdW QVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFtZSAke3dsfSti ICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgIDs7Ci0r CSAgICBlc2FjCi0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJi b3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBv YmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNo YXJlZCBsaWJyYXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBi ZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5 IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJ ICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4g dGhlIGxpYnJhcnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9J3RlbXBsaXN0PWAoJENDIC1iICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAy PiYxKSB8ICRHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBsaXN0OyBkbyBjYXNl ICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICouJG9iamV4dCk7OyAq KSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwgIiRsaXN0IicKLSsJ ICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgot KwkgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCi0rCSAgICAgICAgY2FzZSAk aG9zdF9jcHUgaW4KLSsJICAgICAgICAgIGhwcGEqNjQqKQotKwkgICAgICAgICAgICBfTFRfVEFH VkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgLWZQSUMgJHt3bH0r aCAke3dsfSRzb25hbWUgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgICAgIDs7Ci0rCSAg ICAgICAgICBpYTY0KikKLSsJICAgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgLW5vc3RkbGliICRwaWNfZmxhZyAke3dsfStoICR7d2x9JHNvbmFtZSAk e3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgICAgICAgOzsK LSsJICAgICAgICAgICopCi0rCSAgICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcGljX2ZsYWcgJHt3bH0raCAke3dsfSRzb25hbWUg JHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAg ICAgICAgOzsKLSsJICAgICAgICBlc2FjCi0rCSAgICAgIGZpCi0rCSAgICBlbHNlCi0rCSAgICAg ICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgICBfTFRf VEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICBmaQotKwkgICAgOzsKLSsgICAgICAgIGVz YWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaW50ZXJpeFtbMy05XV0qKQotKwlfTFRfVEFHVkFS KGhhcmRjb2RlX2RpcmVjdCwgJDEpPW5vCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRo X3ZhciwgJDEpPW5vCi0rCV9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PScke3dsfS1ycGF0aCwkbGliZGlyJwotKwlfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdf c3BlYywgJDEpPScke3dsfS1FJwotKwkjIEhhY2s6IE9uIEludGVyaXggMy54LCB3ZSBjYW5ub3Qg Y29tcGlsZSBQSUMgYmVjYXVzZSBvZiBhIGJyb2tlbiBnY2MuCi0rCSMgSW5zdGVhZCwgc2hhcmVk IGxpYnJhcmllcyBhcmUgbG9hZGVkIGF0IGFuIGltYWdlIGJhc2UgKDB4MTAwMDAwMDAgYnkKLSsJ IyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkgY29uZmxpY3QsIHdoaWNoIGlzIGEgc2xv dyB2ZXJ5IG1lbW9yeQotKwkjIGNvbnN1bWluZyBhbmQgZnJhZ21lbnRpbmcgcHJvY2Vzcy4gIFRv IGF2b2lkIHRoaXMsIHdlIHBpY2sgYSByYW5kb20sCi0rCSMgMjU2IEtpQi1hbGlnbmVkIGltYWdl IGJhc2UgYmV0d2VlbiAweDUwMDAwMDAwIGFuZCAweDZGRkMwMDAwIGF0IGxpbmsKLSsJIyB0aW1l LiAgTW92aW5nIHVwIGZyb20gMHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3Bh Y2UuCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxh ZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9 LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEz NDIxNzcyODBgIC1vICRsaWInCi0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEp PSdzZWQgInMsXixfLCIgJGV4cG9ydF9zeW1ib2xzID4kb3V0cHV0X29iamRpci8kc29uYW1lLmV4 cHN5bX4kQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0tcmV0YWluLXN5bWJvbHMtZmlsZSwkb3V0cHV0X29i amRpci8kc29uYW1lLmV4cHN5bSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0kJH0g JSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwotKwk7OwotKyAgICAg IGlyaXg1KiB8IGlyaXg2KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAg ICAgIENDKikKLSsJICAgICMgU0dJIEMrKwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMs ICQxKT0nJENDIC1zaGFyZWQgLWFsbCAtbXVsdGlnb3QgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFt ZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2 ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWInCi0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxl cyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgIkNDIC1hciIsIHdoZXJlICJDQyIgaXMg dGhlIElSSVggQysrIGNvbXBpbGVyLiAgVGhpcyBpcwotKwkgICAgIyBuZWNlc3NhcnkgdG8gbWFr ZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVkCi0rCSAgICAjIGluIHRo ZSBhcmNoaXZlLgotKwkgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt YXIgLVdSLC11IC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7OwotKyAgICAgICAgICAqKQot KwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAiJHdpdGhf Z251X2xkIiA9IG5vOyB0aGVuCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9i anMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1l ICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3 bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7 d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJICAgICAgZWxzZQot KwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNf ZmxhZyAtbm9zdGRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3Qg LW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9 JHZlcnN0cmluZyJgIC1vICRsaWInCi0rCSAgICAgIGZpCi0rCSAgICBmaQotKwkgICAgX0xUX1RB R1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwot KyAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9JyR7d2x9 LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGly X3NlcGFyYXRvciwgJDEpPToKLSsgICAgICAgIF9MVF9UQUdWQVIoaW5oZXJpdF9ycGF0aCwgJDEp PXllcwotKyAgICAgICAgOzsKLSsKLSsgICAgICBsaW51eCogfCBrKmJzZCotZ251IHwga29wZW5z b2xhcmlzKi1nbnUpCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBL Q0MqKQotKwkgICAgIyBLdWNrIGFuZCBBc3NvY2lhdGVzLCBJbmMuIChLQUkpIEMrKyBDb21waWxl cgotKwotKwkgICAgIyBLQ0Mgd2lsbCBvbmx5IGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5IGlmIHRo ZSBvdXRwdXQgZmlsZQotKwkgICAgIyBlbmRzIHdpdGggIi5zbyIgKG9yICIuc2wiIGZvciBIUC1V WCksIHNvIHJlbmFtZSB0aGUgbGlicmFyeQotKwkgICAgIyB0byBpdHMgcHJvcGVyIG5hbWUgKHdp dGggdmVyc2lvbikgYWZ0ZXIgbGlua2luZy4KLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRz LCAkMSk9J3RlbXBleHQ9YGVjaG8gJHNoYXJlZF9leHQgfCAkU0VEIC1lICdcJydzL1woW1teKCkw LTlBLVphLXp7fV1dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwgJFNFRCAt ZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRsaWJvYmpz ICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1lICRzb25h bWUgLW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKLSsJICAgIF9MVF9UQUdWQVIoYXJj aGl2ZV9leHBzeW1fY21kcywgJDEpPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAt ZSAnXCcncy9cKFtbXigpMC05QS1aYS16e31dXVwpL1xcXFxcMS9nJ1wnJ2A7IHRlbXBsaWI9YGVj aG8gJGxpYiB8ICRTRUQgLWUgInMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBf b2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFn cyAtLXNvbmFtZSAkc29uYW1lIC1vIFwkdGVtcGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxl LCRleHBvcnRfc3ltYm9sczsgbXYgXCR0ZW1wbGliICRsaWInCi0rCSAgICAjIENvbW1hbmRzIHRv IG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAj IHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2Vk IHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgIwotKwkgICAg IyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMgY29tcGls ZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBmaWxlcyBz byB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQg dGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsJICAgICMgZGVwZW5kZW5j aWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0MgJENGTEFH UyAtdiBjb25mdGVzdC4kb2JqZXh0IC1vIGxpYmNvbmZ0ZXN0JHNoYXJlZF9leHQgMj4mMSB8ICRH UkVQICJsZCJgOyBybSAtZiBsaWJjb25mdGVzdCRzaGFyZWRfZXh0OyBsaXN0PSIiOyBmb3IgeiBp biAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3Qg JHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19l Y2hvX2FsbCAiJGxpc3QiJwotKwotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgICBfTFRfVEFHVkFSKGV4cG9y dF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rCi0rCSAg ICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQg dXNpbmcKLSsJICAgICMgIkNDIC1Cc3RhdGljIiwgd2hlcmUgIkNDIiBpcyB0aGUgS0FJIEMrKyBj b21waWxlci4KLSsJICAgIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLUJz dGF0aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycKLSsJICAgIDs7Ci0rCSAgaWNwYyogfCBlY3BjKiAp Ci0rCSAgICAjIEludGVsIEMrKwotKwkgICAgd2l0aF9nbnVfbGQ9eWVzCi0rCSAgICAjIHZlcnNp b24gOC4wIGFuZCBhYm92ZSBvZiBpY3BjIGNob2tlIG9uIG11bHRpcGx5IGRlZmluZWQgc3ltYm9s cwotKwkgICAgIyBpZiB3ZSBhZGQgJHByZWRlcF9vYmplY3RzIGFuZCAkcG9zdGRlcF9vYmplY3Rz LCBob3dldmVyIDcuMSBhbmQKLSsJICAgICMgZWFybGllciBkbyBub3QgYWRkIHRoZSBvYmplY3Rz IHRoZW1zZWx2ZXMuCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMWAgaW4KLSsJICAgICAgKiJWZXJz aW9uIDcuIiopCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1z aGFyZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCQlfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFyZWQgJHByZWRlcF9vYmpl Y3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9y dF9zeW1ib2xzIC1vICRsaWInCi0rCQk7OwotKwkgICAgICAqKSAgIyBWZXJzaW9uIDguMCBvciBu ZXdlcgotKwkgICAgICAgIHRtcF9pZHluPQotKwkgICAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0r CQkgIGlhNjQqKSB0bXBfaWR5bj0nIC1pX2R5bmFtaWMnOzsKLSsJCWVzYWMKLSsJICAgICAgICBf TFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCciJHRtcF9pZHluIicgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1v ICRsaWInCi0rCQlfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1z b25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3lt Ym9scyAtbyAkbGliJwotKwkJOzsKLSsJICAgIGVzYWMKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2 ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotKwkgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJf ZmxhZ19zcGVjLCAkMSk9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgICBfTFRfVEFHVkFSKGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rCSAg ICBfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9JyR7d2x9LS13aG9sZS1h cmNoaXZlJGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1hcmNoaXZlJwotKwkgICAgOzsKLSsg ICAgICAgICAgcGdDQyogfCBwZ2NwcCopCi0rICAgICAgICAgICAgIyBQb3J0bGFuZCBHcm91cCBD KysgY29tcGlsZXIKLSsJICAgIGNhc2UgYCRDQyAtVmAgaW4KLSsJICAgICpwZ0NDXCBbWzEtNV1d LiogfCAqcGdjcHBcIFtbMS01XV0uKikKLSsJICAgICAgX0xUX1RBR1ZBUihwcmVsaW5rX2NtZHMs ICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KLSsJCXJtIC1yZiAkdHBsZGlyfgotKwkJJENDIC0t cHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkb2JqcyAkbGlib2Jq cyAkY29tcGlsZV9kZXBsaWJzfgotKwkJY29tcGlsZV9jb21tYW5kPSIkY29tcGlsZV9jb21tYW5k IGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgIicKLSsJICAgICAgX0xU X1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQly bSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25f ZGlyICR0cGxkaXIgJG9sZG9ianMkb2xkX2RlcGxpYnN+Ci0rCQkkQVIgJEFSX0ZMQUdTICRvbGRs aWIkb2xkb2JqcyRvbGRfZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCBzb3J0IHwg JE5MMlNQYH4KLSsJCSRSQU5MSUIgJG9sZGxpYicKLSsJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KLSsJCXJtIC1yZiAkdHBsZGlyfgotKwkJ JENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+ Ci0rCQkkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgICRwb3N0ZGVwX29i amVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicK LSsJICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9J3RwbGRpcj1UZW1w bGF0ZS5kaXJ+Ci0rCQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAt LWluc3RhbnRpYXRpb25fZGlyICR0cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRjb252ZW5pZW5jZSAkcG9zdGRlcF9vYmplY3RzfgotKwkJJENDIC1zaGFyZWQgJHBpY19m bGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1l IFwqLm8gfCBzb3J0IHwgJE5MMlNQYCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0k ZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgICAgOzsKLSsJICAgICopICMgVmVyc2lvbiA2 IGFuZCBhYm92ZSB1c2Ugd2VhayBzeW1ib2xzCi0rCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7 d2x9JHNvbmFtZSAtbyAkbGliJwotKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3 bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMg LW8gJGxpYicKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsKLSsJICAgIF9MVF9UQUdWQVIoaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJwot KwkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3bH0tLWV4 cG9ydC1keW5hbWljJwotKwkgICAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywg JDEpPScke3dsfS0td2hvbGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBk byB0ZXN0ICAtbiBcIiRjb252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5j ZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3ds fS0tbm8td2hvbGUtYXJjaGl2ZScKLSsgICAgICAgICAgICA7OwotKwkgIGN4eCopCi0rCSAgICAj IENvbXBhcSBDKysKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkgICAgX0xU X1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2Jq ZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAk e3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxl ICR3bCRleHBvcnRfc3ltYm9scycKLSsKLSsJICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0r CSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nLXJwYXRoICRs aWJkaXInCi0rCSAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT06 Ci0rCi0rCSAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91 dHB1dCB0aGF0IGxpc3RzCi0rCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3Qg ZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJlZCBs aWJyYXJ5LgotKwkgICAgIwotKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdh eSB0byBwcmV2ZW50IHRoaXMgY29tcGlsZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxpbmtp bmcgc3lzdGVtIG9iamVjdCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAgICMg ZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxp YnJhcnkKLSsJICAgICMgZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19j bWQ9J3RlbXBsaXN0PWAkQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4m MSB8ICRHUkVQICJsZCJgOyB0ZW1wbGlzdD1gZnVuY19lY2hvX2FsbCAiJHRlbXBsaXN0IiB8ICRT RUQgInMvXCheLipsZC4qXClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAk dGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoi OzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19lY2hv X2FsbCAiWCRsaXN0IiB8ICRYc2VkJwotKwkgICAgOzsKLSsJICB4bCogfCBtcGl4bCogfCBiZ3hs KikKLSsJICAgICMgSUJNIFhMIDguMCBvbiBQUEMsIHdpdGggR05VIGxkCi0rCSAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGggJHt3bH0kbGli ZGlyJwotKwkgICAgX0xUX1RBR1ZBUihleHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0nJHt3 bH0tLWV4cG9ydC1keW5hbWljJwotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0n JENDIC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNv bmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBpZiB0ZXN0ICJ4JHN1cHBvcnRzX2Fub25f dmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCi0rCSAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu dmVyfgotKwkJY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4g JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkJZWNobyAibG9jYWw6ICo7IH07IiA+PiAk b3V0cHV0X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCQkkQ0MgLXFta3Nocm9iaiAkbGlib2JqcyAk ZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVy c2lvbi1zY3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsJ ICAgIGZpCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1 cWAgaW4KLSsJICAgICpTdW5cIEMqKQotKwkgICAgICAjIFN1biBDKysgNS45Ci0rCSAgICAgIF9M VF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0nIC16ZGVmcycKLSsJICAgICAgX0xUX1RB R1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgk c29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVw X29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhw c3ltX2NtZHMsICQxKT0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1v ICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5 bWJvbHMnCi0rCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEp PSctUiRsaWJkaXInCi0rCSAgICAgIF9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMs ICQxKT0nJHt3bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4g JGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNl PVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19j b252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICAgICAgX0xUX1RBR1ZB Uihjb21waWxlcl9uZWVkc19vYmplY3QsICQxKT15ZXMKLSsKLSsJICAgICAgIyBOb3Qgc3VyZSB3 aGV0aGVyIHNvbWV0aGluZyBiYXNlZCBvbgotKwkgICAgICAjICRDQyAkQ0ZMQUdTIC12IGNvbmZ0 ZXN0LiRvYmpleHQgLW8gbGliY29uZnRlc3Qkc2hhcmVkX2V4dCAyPiYxCi0rCSAgICAgICMgd291 bGQgYmUgYmV0dGVyLgotKwkgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZnVuY19lY2hv X2FsbCcKLSsKLSsJICAgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMg bXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlz IHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcwotKwkgICAgICAjIG5lY2Vzc2FyeSB0byBt YWtlIHN1cmUgaW5zdGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKLSsJICAgICAgIyBp biB0aGUgYXJjaGl2ZS4KLSsJICAgICAgX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9 JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0r CSAgICA7OwotKwllc2FjCi0rCTs7Ci0rCi0rICAgICAgbHlueG9zKikKLSsgICAgICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwlfTFRfVEFHVkFSKGxkX3No bGlicywgJDEpPW5vCi0rCTs7Ci0rCi0rICAgICAgbTg4ayopCi0rICAgICAgICAjIEZJWE1FOiBp bnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgIF9MVF9UQUdWQVIobGRf c2hsaWJzLCAkMSk9bm8KLSsJOzsKLSsKLSsgICAgICBtdnMqKQotKyAgICAgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KLSsgICAgICAgICAgY3h4KikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1u bwotKwkgICAgOzsKLSsJICAqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7 OwotKwllc2FjCi0rCTs7Ci0rCi0rICAgICAgbmV0YnNkKikKLSsgICAgICAgIGlmIGVjaG8gX19F TEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0rCSAgX0xU X1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJExEIC1Cc2hhcmVhYmxlICAtbyAkbGliICRwcmVk ZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRsaW5rZXJfZmxh Z3MnCi0rCSAgd2xhcmM9Ci0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9Jy1SJGxpYmRpcicKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdCwgJDEpPXll cwotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciwgJDEpPW5vCi0rCWZpCi0r CSMgV29ya2Fyb3VuZCBzb21lIGJyb2tlbiBwcmUtMS41IHRvb2xjaGFpbnMKLSsJb3V0cHV0X3Zl cmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAy PiYxIHwgJEdSRVAgY29uZnRlc3QuJG9iamV4dCB8ICRTRUQgLWUgInM6LWxnY2MgLWxjIC1sZ2Nj OjoiJwotKwk7OwotKwotKyAgICAgICpudG8qIHwgKnFueCopCi0rICAgICAgICBfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPXllcwotKwk7OwotKwotKyAgICAgIG9wZW5ic2QyKikKLSsgICAgICAg ICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGZhaXJseSBicm9rZW4KLSsJX0xUX1RBR1ZBUihs ZF9zaGxpYnMsICQxKT1ubwotKwk7OwotKwotKyAgICAgIG9wZW5ic2QqKQotKwlpZiB0ZXN0IC1m IC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgotKwkgIF9MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0 LCAkMSk9eWVzCi0rCSAgX0xUX1RBR1ZBUihoYXJkY29kZV9zaGxpYnBhdGhfdmFyLCAkMSk9bm8K LSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPXllcwotKwkgIF9M VF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgLW8gJGxpYicKLSsJICBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQx KT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICBpZiB0ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwg JENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0g Im9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBz eW1fY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJv YmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFp bi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCSAgICBfTFRfVEFHVkFS KGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywgJDEpPScke3dsfS1FJwotKwkgICAgX0xUX1RBR1ZB Uih3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYywgJDEpPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRj b252ZW5pZW5jZSAnIiR3bGFyYyInLS1uby13aG9sZS1hcmNoaXZlJwotKwkgIGZpCi0rCSAgb3V0 cHV0X3ZlcmJvc2VfbGlua19jbWQ9ZnVuY19lY2hvX2FsbAotKwllbHNlCi0rCSAgX0xUX1RBR1ZB UihsZF9zaGxpYnMsICQxKT1ubwotKwlmaQotKwk7OwotKwotKyAgICAgIG9zZjMqIHwgb3NmNCog fCBvc2Y1KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIEtDQyop Ci0rCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIEluYy4gKEtBSSkgQysrIENvbXBpbGVyCi0r Ci0rCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91 dHB1dCBmaWxlCi0rCSAgICAjIGVuZHMgd2l0aCAiLnNvIiAob3IgIi5zbCIgZm9yIEhQLVVYKSwg c28gcmVuYW1lIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIHRvIGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2 ZXJzaW9uKSBhZnRlciBsaW5raW5nLgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQx KT0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3MvXChbW14oKTAtOUEt WmEtent9XV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICIkbGliIiB8ICRTRUQgLWUg InMvXCR7dGVtcGV4dH1cLi4qLy5zby8iYDsgJENDICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAk ZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtLXNvbmFtZSAkc29uYW1l IC1vIFwkdGVtcGxpYjsgbXYgXCR0ZW1wbGliICRsaWInCi0rCi0rCSAgICBfTFRfVEFHVkFSKGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICAg IF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciwgJDEpPToKLSsKLSsJICAgICMg QXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1c2lu ZwotKwkgICAgIyB0aGUgS0FJIEMrKyBjb21waWxlci4KLSsJICAgIGNhc2UgJGhvc3QgaW4KLSsJ ICAgICAgb3NmMyopIF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSckQ0MgLUJzdGF0 aWMgLW8gJG9sZGxpYiAkb2xkb2JqcycgOzsKLSsJICAgICAgKikgX0xUX1RBR1ZBUihvbGRfYXJj aGl2ZV9jbWRzLCAkMSk9JyRDQyAtbyAkb2xkbGliICRvbGRvYmpzJyA7OwotKwkgICAgZXNhYwot KwkgICAgOzsKLSsgICAgICAgICAgUkNDKikKLSsJICAgICMgUmF0aW9uYWwgQysrIDIuNC4xCi0r CSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGN4eCopCi0r CSAgICBjYXNlICRob3N0IGluCi0rCSAgICAgIG9zZjMqKQotKwkgICAgICAgIF9MVF9UQUdWQVIo YWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9 XConCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFyZWQk e2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICRzb25hbWUgYHRl c3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR2 ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25z IC1vICRsaWInCi0rCSAgICAgICAgX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj LCAkMSk9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsJCTs7Ci0rCSAgICAgICopCi0rCSAg ICAgICAgX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPScgLWV4cGVjdF91bnJl c29sdmVkIFwqJwotKwkgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAt c2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRk ZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9u ICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRp b25zIC1vICRsaWInCi0rCSAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9J2ZvciBpIGluIGBjYXQgJGV4cG9ydF9zeW1ib2xzYDsgZG8gcHJpbnRmICIlcyAlc1xcbiIg LWV4cG9ydGVkX3N5bWJvbCAiXCRpIiA+PiAkbGliLmV4cDsgZG9uZX4KLSsJICAgICAgICAgIGVj aG8gIi1oaWRkZW4iPj4gJGxpYi5leHB+Ci0rCSAgICAgICAgICAkQ0MgLXNoYXJlZCRhbGxvd191 bmRlZmluZWRfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lICR7d2x9LWlucHV0 ICR7d2x9JGxpYi5leHAgIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiAkRUNITyAiLXNldF92ZXJz aW9uICR2ZXJzdHJpbmciYCAtdXBkYXRlX3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9j YXRpb25zIC1vICRsaWJ+Ci0rCSAgICAgICAgICAkUk0gJGxpYi5leHAnCi0rCSAgICAgICAgX0xU X1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjLCAkMSk9Jy1ycGF0aCAkbGliZGlyJwot KwkJOzsKLSsJICAgIGVzYWMKLSsKLSsJICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3Nl cGFyYXRvciwgJDEpPToKLSsKLSsJICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9k dWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICMgd2hhdCAiaGlkZGVuIiBsaWJy YXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxhZ3MgYXJlIHVzZWQgd2hlbgotKwkgICAgIyBsaW5r aW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAjCi0rCSAgICAjIFRoZXJlIGRvZXNuJ3QgYXBw ZWFyIHRvIGJlIGEgd2F5IHRvIHByZXZlbnQgdGhpcyBjb21waWxlciBmcm9tCi0rCSAgICAjIGV4 cGxpY2l0bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAg dGhlbQotKwkgICAgIyBmcm9tIHRoZSBvdXRwdXQgc28gdGhhdCB0aGV5IGRvbid0IGdldCBpbmNs dWRlZCBpbiB0aGUgbGlicmFyeQotKwkgICAgIyBkZXBlbmRlbmNpZXMuCi0rCSAgICBvdXRwdXRf dmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRl c3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgImxkIiB8ICRHUkVQIC12ICJsZDoiYDsgdGVtcGxpc3Q9 YGZ1bmNfZWNob19hbGwgIiR0ZW1wbGlzdCIgfCAkU0VEICJzL1woXi4qbGQuKlwpXCggLipsZC4q JFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNhc2UgJHogaW4gY29u ZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7ICopIGxpc3Q9IiRs aXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19lY2hvX2FsbCAiJGxpc3QiJwotKwkgICAgOzsKLSsJ ICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5ZXMgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9 IG5vOyB0aGVuCi0rCSAgICAgIF9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0n ICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCSAgICAgIGNhc2UgJGhvc3QgaW4K LSsJICAgICAgICBvc2YzKikKLSsJICAgICAgICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVu Y19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBk YXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicK LSsJCSAgOzsKLSsJICAgICAgICAqKQotKwkgICAgICAgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2Nt ZHMsICQxKT0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxpYiAke2FsbG93X3VuZGVmaW5l ZF9mbGFnfSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0 cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tbXN5bSAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0 ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAk e3dsfSR2ZXJzdHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpk aXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkJICA7OwotKwkgICAgICBlc2FjCi0rCi0rCSAg ICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPScke3dsfS1ycGF0 aCAke3dsfSRsaWJkaXInCi0rCSAgICAgIF9MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvciwgJDEpPToKLSsKLSsJICAgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1 Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgICAjIHdoYXQgImhpZGRlbiIgbGli cmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICAgIyBs aW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21k PSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQIC12 ICJeQ29uZmlndXJlZCB3aXRoOiIgfCAkR1JFUCAiXC1MIicKLSsKLSsJICAgIGVsc2UKLSsJICAg ICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICAgIF9M VF9UQUdWQVIobGRfc2hsaWJzLCAkMSk9bm8KLSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAg ZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBwc29zKikKLSsgICAgICAgICMgRklYTUU6IGlu c2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgX0xUX1RBR1ZBUihsZF9z aGxpYnMsICQxKT1ubwotKyAgICAgICAgOzsKLSsKLSsgICAgICBzdW5vczQqKQotKyAgICAgICAg Y2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgIyBTdW4gQysrIDQu eAotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAg ICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAgICAgICBsY2Mq KQotKwkgICAgIyBMdWNpZAotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFy eSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7Owot KyAgICAgICAgICAqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBz dXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAg ICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBzb2xhcmlzKikKLSsgICAgICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIENDKiB8IHN1bkNDKikKLSsJICAgICMgU3Vu IEMrKyA0LjIsIDUueCBhbmQgQ2VudGVybGluZSBDKysKLSsgICAgICAgICAgICBfTFRfVEFHVkFS KGFyY2hpdmVfY21kc19uZWVkX2xjLCQxKT15ZXMKLSsJICAgIF9MVF9UQUdWQVIobm9fdW5kZWZp bmVkX2ZsYWcsICQxKT0nIC16ZGVmcycKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAk MSk9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICAtaCRzb25hbWUgLW8gJGxpYiAkcHJl ZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJf ZmxhZ3MnCi0rCSAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAi eyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1wo LipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgot KwkgICAgICAkQ0MgLUcke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAke3dsfS1NICR7d2x9JGxpYi5l eHAgLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsKLSsJICAgIF9M VF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPSctUiRsaWJkaXInCi0rCSAg ICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwkgICAgY2FzZSAk aG9zdF9vcyBpbgotKwkgICAgICBzb2xhcmlzMi5bWzAtNV1dIHwgc29sYXJpczIuW1swLTVdXS4q KSA7OwotKwkgICAgICAqKQotKwkJIyBUaGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgY29tYmluZSBh bmQgcmVvcmRlciBsaW5rZXIgb3B0aW9ucywKLSsJCSMgYnV0IHVuZGVyc3RhbmRzIGAteiBsaW5r ZXJfZmxhZycuCi0rCSAgICAgICAgIyBTdXBwb3J0ZWQgc2luY2UgU29sYXJpcyAyLjYgKG1heWJl IDIuNS4xPykKLSsJCV9MVF9UQUdWQVIod2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWMsICQxKT0nLXog YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKLSsJICAgICAgICA7Owot KwkgICAgZXNhYwotKwkgICAgX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBsaWJzLCAkMSk9eWVzCi0r Ci0rCSAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZnVuY19lY2hvX2FsbCcKLSsKLSsJICAg ICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUgY3JlYXRlZCB1 c2luZwotKwkgICAgIyAiQ0MgLXhhciIsIHdoZXJlICJDQyIgaXMgdGhlIFN1biBDKysgY29tcGls ZXIuICBUaGlzIGlzCi0rCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVk IHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKLSsJICAgICMgaW4gdGhlIGFyY2hpdmUuCi0rCSAgICBf TFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDIC14YXIgLW8gJG9sZGxpYiAkb2xk b2JqcycKLSsJICAgIDs7Ci0rICAgICAgICAgIGdjeCopCi0rCSAgICAjIEdyZWVuIEhpbGxzIEMr KyBDb21waWxlcgotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHMsICQxKT0nJENDIC1zaGFy ZWQgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LWggJHdsJHNvbmFtZSAtbyAkbGliJwotKwotKwkgICAgIyBUaGUg QysrIGNvbXBpbGVyIG11c3QgYmUgdXNlZCB0byBjcmVhdGUgdGhlIGFyY2hpdmUuCi0rCSAgICBf TFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0nJENDICRMREZMQUdTIC1hcmNoaXZlIC1v ICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgIyBHTlUg QysrIGNvbXBpbGVyIHdpdGggU29sYXJpcyBsaW5rZXIKLSsJICAgIGlmIHRlc3QgIiRHWFgiID0g eWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwkgICAgICBfTFRfVEFHVkFS KG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9JyAke3dsfS16ICR7d2x9ZGVmcycKLSsJICAgICAgaWYg JENDIC0tdmVyc2lvbiB8ICRHUkVQIC12ICdeMlwuNycgPiAvZGV2L251bGw7IHRoZW4KLSsJICAg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcg LW5vc3RkbGliICRMREZMQUdTICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9z dGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicK LSsJICAgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBn bG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipc KS9cMTsvIiA+PiAkbGliLmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkJ ICAkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW5vc3RkbGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8g JGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAk Y29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKwotKwkgICAgICAgICMgQ29tbWFuZHMgdG8g bWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICAg ICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1 c2VkIHdoZW4KLSsJICAgICAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICAg ICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVz dC4kb2JqZXh0IDI+JjEgfCAkR1JFUCAtdiAiXkNvbmZpZ3VyZWQgd2l0aDoiIHwgJEdSRVAgIlwt TCInCi0rCSAgICAgIGVsc2UKLSsJICAgICAgICAjIGcrKyAyLjcgYXBwZWFycyB0byByZXF1aXJl IGAtRycgTk9UIGAtc2hhcmVkJyBvbiB0aGlzCi0rCSAgICAgICAgIyBwbGF0Zm9ybS4KLSsJICAg ICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLUcgLW5vc3RkbGliICRMREZM QUdTICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKLSsJICAgICAgICBfTFRf VEFHVkFSKGFyY2hpdmVfZXhwc3ltX2NtZHMsICQxKT0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIu ZXhwfmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGli LmV4cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkJICAkQ0MgLUcgLW5vc3Rk bGliICR7d2x9LU0gJHdsJGxpYi5leHAgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwot KwotKwkgICAgICAgICMgQ29tbWFuZHMgdG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ug b3V0cHV0IHRoYXQgbGlzdHMKLSsJICAgICAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBv YmplY3QgZmlsZXMgYW5kIGZsYWdzIGFyZSB1c2VkIHdoZW4KLSsJICAgICAgICAjIGxpbmtpbmcg YSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJEND IC1HICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgLXYgIl5Db25maWd1 cmVkIHdpdGg6IiB8ICRHUkVQICJcLUwiJwotKwkgICAgICBmaQotKwotKwkgICAgICBfTFRfVEFH VkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiAkd2wkbGliZGlyJwot KwkgICAgICBjYXNlICRob3N0X29zIGluCi0rCQlzb2xhcmlzMi5bWzAtNV1dIHwgc29sYXJpczIu W1swLTVdXS4qKSA7OwotKwkJKikKLSsJCSAgX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYywgJDEpPScke3dsfS16ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7 d2x9ZGVmYXVsdGV4dHJhY3QnCi0rCQkgIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAg ICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgc3lzdjQqdXcyKiB8IHN5 c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuW1swMV1dLltbMTBdXSogfCB1bml4d2FyZTcq IHwgc2NvMy4ydjUuMC5bWzAyNF1dKikKLSsgICAgICBfTFRfVEFHVkFSKG5vX3VuZGVmaW5lZF9m bGFnLCAkMSk9JyR7d2x9LXosdGV4dCcKLSsgICAgICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kc19u ZWVkX2xjLCAkMSk9bm8KLSsgICAgICBfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIs ICQxKT1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBjYXNl ICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgQ0MqKQotKwkgIF9MVF9UQUdWQVIoYXJjaGl2ZV9j bWRzLCAkMSk9JyRDQyAtRyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAk MSk9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgOzsKLSsJKikK LSsJICBfTFRfVEFHVkFSKGFyY2hpdmVfY21kcywgJDEpPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgX0xU X1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBv cnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwot KyAgICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCi0rCSMgTm90ZTogV2UgY2FuIE5P VCB1c2UgLXogZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90Ci0rCSMg bGluayB3aXRoIC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9t IGxpYmMgdG8KLSsJIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91 dCBubyBsaWJyYXJ5IHdvdWxkCi0rCSMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5v dCB1c2luZyBHTlUgbGQgd2UgdXNlIC16IHRleHQKLSsJIyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0 Y2ggc29tZSBiYWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCi0rCSMgYXMgLXog ZGVmcy4KLSsJX0xUX1RBR1ZBUihub191bmRlZmluZWRfZmxhZywgJDEpPScke3dsfS16LHRleHQn Ci0rCV9MVF9UQUdWQVIoYWxsb3dfdW5kZWZpbmVkX2ZsYWcsICQxKT0nJHt3bH0teixub2RlZnMn Ci0rCV9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotKwlfTFRfVEFHVkFS KGhhcmRjb2RlX3NobGlicGF0aF92YXIsICQxKT1ubwotKwlfTFRfVEFHVkFSKGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWMsICQxKT0nJHt3bH0tUiwkbGliZGlyJwotKwlfTFRfVEFHVkFSKGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IsICQxKT0nOicKLSsJX0xUX1RBR1ZBUihsaW5rX2FsbF9kZXBs aWJzLCAkMSk9eWVzCi0rCV9MVF9UQUdWQVIoZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjLCAkMSk9 JyR7d2x9LUJleHBvcnQnCi0rCXJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsJY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgX0xUX1RBR1ZBUihhcmNoaXZl X2NtZHMsICQxKT0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21k cywgJDEpPSckQ0MgLUcgJHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29u YW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgX0xU X1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtVHByZWxpbmtfb2JqZWN0cyAkb2xk b2Jqc34KLSsJICAgICAgJyIkX0xUX1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSkiCi0rCSAg ICBfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JyRDQyAtVHByZWxpbmtfb2JqZWN0cyAkcmVs b2FkX29ianN+Ci0rCSAgICAgICciJF9MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKSIKLSsJICAg IDs7Ci0rCSAgKikKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9jbWRzLCAkMSk9JyRDQyAtc2hh cmVkICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKLSsJICAgIF9MVF9UQUdWQVIoYXJjaGl2ZV9leHBzeW1fY21kcywgJDEpPSckQ0MgLXNo YXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICA7OwotKwllc2FjCi0r ICAgICAgOzsKLSsKLSsgICAgICB0YW5kZW0qKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUg aW4KLSsgICAgICAgICAgTkNDKikKLSsJICAgICMgTm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkgICAg IyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFH VkFSKGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgIyBG SVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgICBfTFRfVEFHVkFS KGxkX3NobGlicywgJDEpPW5vCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsK LSsKLSsgICAgICB2eHdvcmtzKikKLSsgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysr IGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgX0xUX1RBR1ZBUihsZF9zaGxpYnMsICQxKT1ubwot KyAgICAgICAgOzsKLSsKLSsgICAgICAqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rICAgICAgICBfTFRfVEFHVkFSKGxkX3NobGlicywgJDEp PW5vCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIEFDX01TR19SRVNVTFQoWyRfTFRf VEFHVkFSKGxkX3NobGlicywgJDEpXSkKLSsgICAgdGVzdCAiJF9MVF9UQUdWQVIobGRfc2hsaWJz LCAkMSkiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJlZD1ubwotKwotKyAgICBfTFRfVEFHVkFSKEdD QywgJDEpPSIkR1hYIgotKyAgICBfTFRfVEFHVkFSKExELCAkMSk9IiRMRCIKLSsKLSsgICAgIyMg Q0FWRUFUIEVNUFRPUjoKLSsgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4g dGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKLSsgICAgIyMgdGhlIHJ1bm5pbmcg b3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4YWN0 bHkKLSsgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCi0rICAgIF9MVF9TWVNfSElEREVOX0xJ QkRFUFMoJDEpCi0rICAgIF9MVF9DT01QSUxFUl9QSUMoJDEpCi0rICAgIF9MVF9DT01QSUxFUl9D X08oJDEpCi0rICAgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQotKyAgICBfTFRfTElOS0VS X1NITElCUygkMSkKLSsgICAgX0xUX1NZU19EWU5BTUlDX0xJTktFUigkMSkKLSsgICAgX0xUX0xJ TktFUl9IQVJEQ09ERV9MSUJQQVRIKCQxKQotKwotKyAgICBfTFRfQ09ORklHKCQxKQotKyAgZmkg IyB0ZXN0IC1uICIkY29tcGlsZXIiCi0rCi0rICBDQz0kbHRfc2F2ZV9DQwotKyAgQ0ZMQUdTPSRs dF9zYXZlX0NGTEFHUwotKyAgTERDWFg9JExECi0rICBMRD0kbHRfc2F2ZV9MRAotKyAgR0NDPSRs dF9zYXZlX0dDQwotKyAgd2l0aF9nbnVfbGQ9JGx0X3NhdmVfd2l0aF9nbnVfbGQKLSsgIGx0X2N2 X3BhdGhfTERDWFg9JGx0X2N2X3BhdGhfTEQKLSsgIGx0X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0 aF9MRAotKyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9JGx0X2N2X3Byb2dfZ251X2xkCi0rICBsdF9j dl9wcm9nX2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotK2ZpICMgdGVzdCAiJF9sdF9jYXVn aHRfQ1hYX2Vycm9yIiAhPSB5ZXMKLSsKLStBQ19MQU5HX1BPUAotK10pIyBfTFRfTEFOR19DWFhf Q09ORklHCi0rCi0rCi0rIyBfTFRfRlVOQ19TVFJJUE5BTUVfQ05GCi0rIyAtLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBmdW5jX3N0cmlwbmFtZV9jbmYgcHJlZml4IHN1ZmZpeCBuYW1lCi0rIyBz dHJpcCBQUkVGSVggYW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KLSsjIFBSRUZJWCBhbmQgU1VGRklY IG11c3Qgbm90IGNvbnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAotKyMgY2hhcmFjdGVy cywgaGFzaGVzLCBwZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGlu ZwotKyMgZG90IChpbiB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KLSsjCi0r IyBUaGlzIGZ1bmN0aW9uIGlzIGlkZW50aWNhbCB0byB0aGUgKG5vbi1YU0kpIHZlcnNpb24gb2Yg ZnVuY19zdHJpcG5hbWUsCi0rIyBleGNlcHQgdGhpcyBvbmUgY2FuIGJlIHVzZWQgYnkgbTQgY29k ZSB0aGF0IG1heSBiZSBleGVjdXRlZCBieSBjb25maWd1cmUsCi0rIyByYXRoZXIgdGhhbiB0aGUg bGlidG9vbCBzY3JpcHQuCi0rbTRfZGVmdW4oW19MVF9GVU5DX1NUUklQTkFNRV9DTkZdLFtkbmwK LStBQ19SRVFVSVJFKFtfTFRfREVDTF9TRURdKQotK0FDX1JFUVVJUkUoW19MVF9QUk9HX0VDSE9f QkFDS1NMQVNIXSkKLStmdW5jX3N0cmlwbmFtZV9jbmYgKCkKLSt7Ci0rICBjYXNlICR7Mn0gaW4K LSsgIC4qKSBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezN9IiB8ICRTRUQgInMlXiR7 MX0lJTsgcyVcXFxcJHsyfVwkJSUiYDs7Ci0rICAqKSAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAk RUNITyAiJHszfSIgfCAkU0VEICJzJV4kezF9JSU7IHMlJHsyfVwkJSUiYDs7Ci0rICBlc2FjCi0r fSAjIGZ1bmNfc3RyaXBuYW1lX2NuZgotK10pIyBfTFRfRlVOQ19TVFJJUE5BTUVfQ05GCi0rCi0r IyBfTFRfU1lTX0hJRERFTl9MSUJERVBTKFtUQUdOQU1FXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotKyMgRmlndXJlIG91dCAiaGlkZGVuIiBsaWJyYXJ5IGRlcGVuZGVu Y2llcyBmcm9tIHZlcmJvc2UKLSsjIGNvbXBpbGVyIG91dHB1dCB3aGVuIGxpbmtpbmcgYSBzaGFy ZWQgbGlicmFyeS4KLSsjIFBhcnNlIHRoZSBjb21waWxlciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhl IG5lY2Vzc2FyeQotKyMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgotK200 X2RlZnVuKFtfTFRfU1lTX0hJRERFTl9MSUJERVBTXSwKLStbbTRfcmVxdWlyZShbX0xUX0ZJTEVV VElMU19ERUZBVUxUU10pZG5sCi0rQUNfUkVRVUlSRShbX0xUX0ZVTkNfU1RSSVBOQU1FX0NORl0p ZG5sCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0aGUgb2JqZWN0 IGJlaW5nIGxpbmtlZDoKLStfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSk9Ci0rX0xUX1RB R1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0KLStfTFRfVEFHVkFSKHByZWRlcHMsICQxKT0KLStf TFRfVEFHVkFSKHBvc3RkZXBzLCAkMSk9Ci0rX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNo X3BhdGgsICQxKT0KLSsKLStkbmwgd2UgY2FuJ3QgdXNlIHRoZSBsdF9zaW1wbGVfY29tcGlsZV90 ZXN0X2NvZGUgaGVyZSwKLStkbmwgYmVjYXVzZSBpdCBjb250YWlucyBjb2RlIGludGVuZGVkIGZv ciBhbiBleGVjdXRhYmxlLAotK2RubCBub3QgYSBsaWJyYXJ5LiAgSXQncyBwb3NzaWJsZSB3ZSBz aG91bGQgbGV0IGVhY2gKLStkbmwgdGFnIGRlZmluZSBhIG5ldyBsdF8/Pz8/X2xpbmtfdGVzdF9j b2RlIHZhcmlhYmxlLAotK2RubCBidXQgaXQncyBvbmx5IHVzZWQgaGVyZS4uLgotK200X2lmKFsk MV0sIFtdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLStpbnQgYTsKLSt2b2lk IGZvbyAodm9pZCkgeyBhID0gMDsgfQotK19MVF9FT0YKLStdLCBbJDFdLCBbQ1hYXSwgW2NhdCA+ IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0rY2xhc3MgRm9vCi0rewotK3B1YmxpYzoKLSsg IEZvbyAodm9pZCkgeyBhID0gMDsgfQotK3ByaXZhdGU6Ci0rICBpbnQgYTsKLSt9OwotK19MVF9F T0YKLStdLCBbJDFdLCBbRjc3XSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0r ICAgICAgc3Vicm91dGluZSBmb28KLSsgICAgICBpbXBsaWNpdCBub25lCi0rICAgICAgaW50ZWdl cio0IGEKLSsgICAgICBhPTAKLSsgICAgICByZXR1cm4KLSsgICAgICBlbmQKLStfTFRfRU9GCi0r XSwgWyQxXSwgW0ZDXSwgW2NhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0rICAgICAg c3Vicm91dGluZSBmb28KLSsgICAgICBpbXBsaWNpdCBub25lCi0rICAgICAgaW50ZWdlciBhCi0r ICAgICAgYT0wCi0rICAgICAgcmV0dXJuCi0rICAgICAgZW5kCi0rX0xUX0VPRgotK10sIFskMV0s IFtHQ0pdLCBbY2F0ID4gY29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLStwdWJsaWMgY2xhc3Mg Zm9vIHsKLSsgIHByaXZhdGUgaW50IGE7Ci0rICBwdWJsaWMgdm9pZCBiYXIgKHZvaWQpIHsKLSsg ICAgYSA9IDA7Ci0rICB9Ci0rfTsKLStfTFRfRU9GCi0rXSkKLSsKLStfbHRfbGliZGVwc19zYXZl X0NGTEFHUz0kQ0ZMQUdTCi0rY2FzZSAiJENDICRDRkxBR1MgIiBpbiAjKAotKypcIC1mbHRvKlwg KikgQ0ZMQUdTPSIkQ0ZMQUdTIC1mbm8tbHRvIiA7OwotKypcIC1md2hvcHIqXCAqKSBDRkxBR1M9 IiRDRkxBR1MgLWZuby13aG9wciIgOzsKLStlc2FjCi0rCi0rZG5sIFBhcnNlIHRoZSBjb21waWxl ciBvdXRwdXQgYW5kIGV4dHJhY3QgdGhlIG5lY2Vzc2FyeQotK2RubCBvYmplY3RzLCBsaWJyYXJp ZXMgYW5kIGxpYnJhcnkgZmxhZ3MuCi0raWYgQUNfVFJZX0VWQUwoYWNfY29tcGlsZSk7IHRoZW4K LSsgICMgUGFyc2UgdGhlIGNvbXBpbGVyIG91dHB1dCBhbmQgZXh0cmFjdCB0aGUgbmVjZXNzYXJ5 Ci0rICAjIG9iamVjdHMsIGxpYnJhcmllcyBhbmQgbGlicmFyeSBmbGFncy4KLSsKLSsgICMgU2Vu dGluZWwgdXNlZCB0byBrZWVwIHRyYWNrIG9mIHdoZXRoZXIgb3Igbm90IHdlIGFyZSBiZWZvcmUK LSsgICMgdGhlIGNvbmZ0ZXN0IG9iamVjdCBmaWxlLgotKyAgcHJlX3Rlc3Rfb2JqZWN0X2RlcHNf ZG9uZT1ubwotKwotKyAgZm9yIHAgaW4gYGV2YWwgIiRvdXRwdXRfdmVyYm9zZV9saW5rX2NtZCJg OyBkbwotKyAgICBjYXNlICR7cHJldn0ke3B9IGluCi0rCi0rICAgIC1MKiB8IC1SKiB8IC1sKikK LSsgICAgICAgIyBTb21lIGNvbXBpbGVycyBwbGFjZSBzcGFjZSBiZXR3ZWVuICIte0wsUn0iIGFu ZCB0aGUgcGF0aC4KLSsgICAgICAgIyBSZW1vdmUgdGhlIHNwYWNlLgotKyAgICAgICBpZiB0ZXN0 ICRwID0gIi1MIiB8fAotKyAgICAgICAgICB0ZXN0ICRwID0gIi1SIjsgdGhlbgotKwkgcHJldj0k cAotKwkgY29udGludWUKLSsgICAgICAgZmkKLSsKLSsgICAgICAgIyBFeHBhbmQgdGhlIHN5c3Jv b3QgdG8gZWFzZSBleHRyYWN0aW5nIHRoZSBkaXJlY3RvcmllcyBsYXRlci4KLSsgICAgICAgaWYg dGVzdCAteiAiJHByZXYiOyB0aGVuCi0rICAgICAgICAgY2FzZSAkcCBpbgotKyAgICAgICAgIC1M KikgZnVuY19zdHJpcG5hbWVfY25mICctTCcgJycgIiRwIjsgcHJldj0tTDsgcD0kZnVuY19zdHJp cG5hbWVfcmVzdWx0IDs7Ci0rICAgICAgICAgLVIqKSBmdW5jX3N0cmlwbmFtZV9jbmYgJy1SJyAn JyAiJHAiOyBwcmV2PS1SOyBwPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQgOzsKLSsgICAgICAgICAt bCopIGZ1bmNfc3RyaXBuYW1lX2NuZiAnLWwnICcnICIkcCI7IHByZXY9LWw7IHA9JGZ1bmNfc3Ry aXBuYW1lX3Jlc3VsdCA7OwotKyAgICAgICAgIGVzYWMKLSsgICAgICAgZmkKLSsgICAgICAgY2Fz ZSAkcCBpbgotKyAgICAgICA9KikgZnVuY19zdHJpcG5hbWVfY25mICc9JyAnJyAiJHAiOyBwPSRs dF9zeXNyb290JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OwotKyAgICAgICBlc2FjCi0rICAgICAg IGlmIHRlc3QgIiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCi0rCSBjYXNl ICR7cHJldn0gaW4KLSsJIC1MIHwgLVIpCi0rCSAgICMgSW50ZXJuYWwgY29tcGlsZXIgbGlicmFy eSBwYXRocyBzaG91bGQgY29tZSBhZnRlciB0aG9zZQotKwkgICAjIHByb3ZpZGVkIHRoZSB1c2Vy LiAgVGhlIHBvc3RkZXBzIGFscmVhZHkgY29tZSBhZnRlciB0aGUKLSsJICAgIyB1c2VyIHN1cHBs aWVkIGxpYnMgc28gdGhlcmUgaXMgbm8gbmVlZCB0byBwcm9jZXNzIHRoZW0uCi0rCSAgIGlmIHRl c3QgLXogIiRfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpIjsgdGhlbgot KwkgICAgIF9MVF9UQUdWQVIoY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoLCAkMSk9IiR7cHJldn0k e3B9IgotKwkgICBlbHNlCi0rCSAgICAgX0xUX1RBR1ZBUihjb21waWxlcl9saWJfc2VhcmNoX3Bh dGgsICQxKT0iJHtfTFRfVEFHVkFSKGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpfSAke3By ZXZ9JHtwfSIKLSsJICAgZmkKLSsJICAgOzsKLSsJICMgVGhlICItbCIgY2FzZSB3b3VsZCBuZXZl ciBjb21lIGJlZm9yZSB0aGUgb2JqZWN0IGJlaW5nCi0rCSAjIGxpbmtlZCwgc28gZG9uJ3QgYm90 aGVyIGhhbmRsaW5nIHRoaXMgY2FzZS4KLSsJIGVzYWMKLSsgICAgICAgZWxzZQotKwkgaWYgdGVz dCAteiAiJF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKSI7IHRoZW4KLSsJICAgX0xUX1RBR1ZBUihw b3N0ZGVwcywgJDEpPSIke3ByZXZ9JHtwfSIKLSsJIGVsc2UKLSsJICAgX0xUX1RBR1ZBUihwb3N0 ZGVwcywgJDEpPSIke19MVF9UQUdWQVIocG9zdGRlcHMsICQxKX0gJHtwcmV2fSR7cH0iCi0rCSBm aQotKyAgICAgICBmaQotKyAgICAgICBwcmV2PQotKyAgICAgICA7OwotKwotKyAgICAqLmx0by4k b2JqZXh0KSA7OyAjIElnbm9yZSBHQ0MgTFRPIG9iamVjdHMKLSsgICAgKi4kb2JqZXh0KQotKyAg ICAgICAjIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSB0ZXN0IG9iamVjdCBmaWxlIG9ubHkgc2hvd3Mg dXAKLSsgICAgICAgIyBvbmNlIGluIHRoZSBjb21waWxlciBvdXRwdXQuCi0rICAgICAgIGlmIHRl c3QgIiRwIiA9ICJjb25mdGVzdC4kb2JqZXh0IjsgdGhlbgotKwkgcHJlX3Rlc3Rfb2JqZWN0X2Rl cHNfZG9uZT15ZXMKLSsJIGNvbnRpbnVlCi0rICAgICAgIGZpCi0rCi0rICAgICAgIGlmIHRlc3Qg IiRwcmVfdGVzdF9vYmplY3RfZGVwc19kb25lIiA9IG5vOyB0aGVuCi0rCSBpZiB0ZXN0IC16ICIk X0xUX1RBR1ZBUihwcmVkZXBfb2JqZWN0cywgJDEpIjsgdGhlbgotKwkgICBfTFRfVEFHVkFSKHBy ZWRlcF9vYmplY3RzLCAkMSk9IiRwIgotKwkgZWxzZQotKwkgICBfTFRfVEFHVkFSKHByZWRlcF9v YmplY3RzLCAkMSk9IiRfTFRfVEFHVkFSKHByZWRlcF9vYmplY3RzLCAkMSkgJHAiCi0rCSBmaQot KyAgICAgICBlbHNlCi0rCSBpZiB0ZXN0IC16ICIkX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMs ICQxKSI7IHRoZW4KLSsJICAgX0xUX1RBR1ZBUihwb3N0ZGVwX29iamVjdHMsICQxKT0iJHAiCi0r CSBlbHNlCi0rCSAgIF9MVF9UQUdWQVIocG9zdGRlcF9vYmplY3RzLCAkMSk9IiRfTFRfVEFHVkFS KHBvc3RkZXBfb2JqZWN0cywgJDEpICRwIgotKwkgZmkKLSsgICAgICAgZmkKLSsgICAgICAgOzsK LSsKLSsgICAgKikgOzsgIyBJZ25vcmUgdGhlIHJlc3QuCi0rCi0rICAgIGVzYWMKLSsgIGRvbmUK LSsKLSsgICMgQ2xlYW4gdXAuCi0rICBybSAtZiBhLm91dCBhLmV4ZQotK2Vsc2UKLSsgIGVjaG8g ImxpYnRvb2wubTQ6IGVycm9yOiBwcm9ibGVtIGNvbXBpbGluZyAkMSB0ZXN0IHByb2dyYW0iCi0r ZmkKLSsKLSskUk0gLWYgY29uZmVzdC4kb2JqZXh0Ci0rQ0ZMQUdTPSRfbHRfbGliZGVwc19zYXZl X0NGTEFHUwotKwotKyMgUE9SVE1FOiBvdmVycmlkZSBhYm92ZSB0ZXN0IG9uIHN5c3RlbXMgd2hl cmUgaXQgaXMgYnJva2VuCi0rbTRfaWYoWyQxXSwgW0NYWF0sCi0rW2Nhc2UgJGhvc3Rfb3MgaW4K LStpbnRlcml4W1szLTldXSopCi0rICAjIEludGVyaXggMy41IGluc3RhbGxzIGNvbXBsZXRlbHkg aG9zZWQgLmxhIGZpbGVzIGZvciBDKyssIHNvIHJhdGhlciB0aGFuCi0rICAjIGhhY2sgYWxsIGFy b3VuZCBpdCwgbGV0J3MganVzdCB0cnVzdCAiZysrIiB0byBEVFJULgotKyAgX0xUX1RBR1ZBUihw cmVkZXBfb2JqZWN0cywkMSk9Ci0rICBfTFRfVEFHVkFSKHBvc3RkZXBfb2JqZWN0cywkMSk9Ci0r ICBfTFRfVEFHVkFSKHBvc3RkZXBzLCQxKT0KLSsgIDs7Ci0rCi0rbGludXgqKQotKyAgY2FzZSBg JENDIC1WIDI+JjEgfCBzZWQgNXFgIGluCi0rICAqU3VuXCBDKikKLSsgICAgIyBTdW4gQysrIDUu OQotKwotKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJh cnkgaXMKLSsgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBz cGVjaWZ5aW5nCi0rICAgICMgaXQgaWYgaXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4g YXMKLSsgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIg JENYWCAkQ1hYRkxBR1MgIiBpbgotKyAgICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAg ICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAg IGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9zdGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgX0xU X1RBR1ZBUihwb3N0ZGVwcywkMSk9Jy1saWJyYXJ5PUNzdGQgLWxpYnJhcnk9Q3J1bicKLSsgICAg ZmkKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICBjYXNlICRjY19i YXNlbmFtZSBpbgotKyAgQ0MqIHwgc3VuQ0MqKQotKyAgICAjIFRoZSBtb3JlIHN0YW5kYXJkcy1j b25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBpbmNvbXBhdGlibGUgd2l0aCB0 aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAgICMgaXQgaWYgaXQncyBpbiBD WFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGlicmFyeT1zdGxwb3J0NCBkZXBl bmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgotKyAgICAqIiAtbGli cmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15ZXMKLSsgICAg ICA7OwotKyAgICBlc2FjCi0rCi0rICAgICMgQWRkaW5nIHRoaXMgcmVxdWlyZXMgYSBrbm93bi1n b29kIHNldHVwIG9mIHNoYXJlZCBsaWJyYXJpZXMgZm9yCi0rICAgICMgU3VuIGNvbXBpbGVyIHZl cnNpb25zIGJlZm9yZSA1LjYsIGVsc2UgUElDIG9iamVjdHMgZnJvbSBhbiBvbGQKLSsgICAgIyBh cmNoaXZlIHdpbGwgYmUgbGlua2VkIGludG8gdGhlIG91dHB1dCwgbGVhZGluZyB0byBzdWJ0bGUg YnVncy4KLSsgICAgaWYgdGVzdCAiJHNvbGFyaXNfdXNlX3N0bHBvcnQ0IiAhPSB5ZXM7IHRoZW4K LSsgICAgICBfTFRfVEFHVkFSKHBvc3RkZXBzLCQxKT0nLWxpYnJhcnk9Q3N0ZCAtbGlicmFyeT1D cnVuJwotKyAgICBmaQotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLStlc2FjCi0rXSkKLSsKLStj YXNlICIgJF9MVF9UQUdWQVIocG9zdGRlcHMsICQxKSAiIGluCi0rKiIgLWxjICIqKSBfTFRfVEFH VkFSKGFyY2hpdmVfY21kc19uZWVkX2xjLCAkMSk9bm8gOzsKLStlc2FjCi0rIF9MVF9UQUdWQVIo Y29tcGlsZXJfbGliX3NlYXJjaF9kaXJzLCAkMSk9Ci0raWYgdGVzdCAtbiAiJHtfTFRfVEFHVkFS KGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aCwgJDEpfSI7IHRoZW4KLSsgX0xUX1RBR1ZBUihjb21w aWxlcl9saWJfc2VhcmNoX2RpcnMsICQxKT1gZWNobyAiICR7X0xUX1RBR1ZBUihjb21waWxlcl9s aWJfc2VhcmNoX3BhdGgsICQxKX0iIHwgJHtTRUR9IC1lICdzISAtTCEgIWcnIC1lICdzIV4gISEn YAotK2ZpCi0rX0xUX1RBR0RFQ0woW10sIFtjb21waWxlcl9saWJfc2VhcmNoX2RpcnNdLCBbMV0s Ci0rICAgIFtUaGUgZGlyZWN0b3JpZXMgc2VhcmNoZWQgYnkgdGhpcyBjb21waWxlciB3aGVuIGNy ZWF0aW5nIGEgc2hhcmVkIGxpYnJhcnldKQotK19MVF9UQUdERUNMKFtdLCBbcHJlZGVwX29iamVj dHNdLCBbMV0sCi0rICAgIFtEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRlciB0 aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KLSsgICAgY3JlYXRlIGEgc2hhcmVkIGxpYnJhcnld KQotK19MVF9UQUdERUNMKFtdLCBbcG9zdGRlcF9vYmplY3RzXSwgWzFdKQotK19MVF9UQUdERUNM KFtdLCBbcHJlZGVwc10sIFsxXSkKLStfTFRfVEFHREVDTChbXSwgW3Bvc3RkZXBzXSwgWzFdKQot K19MVF9UQUdERUNMKFtdLCBbY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoXSwgWzFdLAotKyAgICBb VGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3 aGVuIGxpbmtpbmcKLSsgICAgYSBzaGFyZWQgbGlicmFyeV0pCi0rXSkjIF9MVF9TWVNfSElEREVO X0xJQkRFUFMKLSsKLSsKLSsjIF9MVF9MQU5HX0Y3N19DT05GSUcoW1RBR10pCi0rIyAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgRW5zdXJlIHRoYXQgdGhlIGNvbmZpZ3VyYXRpb24gdmFy aWFibGVzIGZvciBhIEZvcnRyYW4gNzcgY29tcGlsZXIgYXJlCi0rIyBzdWl0YWJseSBkZWZpbmVk LiAgVGhlc2UgdmFyaWFibGVzIGFyZSBzdWJzZXF1ZW50bHkgdXNlZCBieSBfTFRfQ09ORklHCi0r IyB0byB3cml0ZSB0aGUgY29tcGlsZXIgY29uZmlndXJhdGlvbiB0byBgbGlidG9vbCcuCi0rbTRf ZGVmdW4oW19MVF9MQU5HX0Y3N19DT05GSUddLAotK1tBQ19MQU5HX1BVU0goRm9ydHJhbiA3NykK LStpZiB0ZXN0IC16ICIkRjc3IiB8fCB0ZXN0ICJYJEY3NyIgPSAiWG5vIjsgdGhlbgotKyAgX2x0 X2Rpc2FibGVfRjc3PXllcwotK2ZpCi0rCi0rX0xUX1RBR1ZBUihhcmNoaXZlX2NtZHNfbmVlZF9s YywgJDEpPW5vCi0rX0xUX1RBR1ZBUihhbGxvd191bmRlZmluZWRfZmxhZywgJDEpPQotK19MVF9U QUdWQVIoYWx3YXlzX2V4cG9ydF9zeW1ib2xzLCAkMSk9bm8KLStfTFRfVEFHVkFSKGFyY2hpdmVf ZXhwc3ltX2NtZHMsICQxKT0KLStfTFRfVEFHVkFSKGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYywg JDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfZGlyZWN0LCAkMSk9bm8KLStfTFRfVEFHVkFSKGhh cmRjb2RlX2RpcmVjdF9hYnNvbHV0ZSwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjLCAkMSk9Ci0rX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X2xkLCAkMSk9Ci0rX0xUX1RBR1ZBUihoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yLCAkMSk9Ci0r X0xUX1RBR1ZBUihoYXJkY29kZV9taW51c19MLCAkMSk9bm8KLStfTFRfVEFHVkFSKGhhcmRjb2Rl X2F1dG9tYXRpYywgJDEpPW5vCi0rX0xUX1RBR1ZBUihpbmhlcml0X3JwYXRoLCAkMSk9bm8KLStf TFRfVEFHVkFSKG1vZHVsZV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZBUihtb2R1bGVfZXhwc3ltX2Nt ZHMsICQxKT0KLStfTFRfVEFHVkFSKGxpbmtfYWxsX2RlcGxpYnMsICQxKT11bmtub3duCi0rX0xU X1RBR1ZBUihvbGRfYXJjaGl2ZV9jbWRzLCAkMSk9JG9sZF9hcmNoaXZlX2NtZHMKLStfTFRfVEFH VkFSKHJlbG9hZF9mbGFnLCAkMSk9JHJlbG9hZF9mbGFnCi0rX0xUX1RBR1ZBUihyZWxvYWRfY21k cywgJDEpPSRyZWxvYWRfY21kcwotK19MVF9UQUdWQVIobm9fdW5kZWZpbmVkX2ZsYWcsICQxKT0K LStfTFRfVEFHVkFSKHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjLCAkMSk9Ci0rX0xUX1RBR1ZBUihl bmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzLCAkMSk9bm8KLSsKLSsjIFNvdXJjZSBm aWxlIGV4dGVuc2lvbiBmb3IgZjc3IHRlc3Qgc291cmNlcy4KLSthY19leHQ9ZgotKwotKyMgT2Jq ZWN0IGZpbGUgZXh0ZW5zaW9uIGZvciBjb21waWxlZCBmNzcgdGVzdCBzb3VyY2VzLgotK29iamV4 dD1vCi0rX0xUX1RBR1ZBUihvYmpleHQsICQxKT0kb2JqZXh0Ci0rCi0rIyBObyBzZW5zZSBpbiBy dW5uaW5nIGFsbCB0aGVzZSB0ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAotKyMg dGhlIEY3NyBjb21waWxlciBpc24ndCB3b3JraW5nLiAgU29tZSB2YXJpYWJsZXMgKGxpa2UgZW5h YmxlX3NoYXJlZCkKLSsjIGFyZSBjdXJyZW50bHkgYXNzdW1lZCB0byBhcHBseSB0byBhbGwgY29t cGlsZXJzIG9uIHRoaXMgcGxhdGZvcm0sCi0rIyBhbmQgd2lsbCBiZSBjb3JydXB0ZWQgYnkgc2V0 dGluZyB0aGVtIGJhc2VkIG9uIGEgbm9uLXdvcmtpbmcgY29tcGlsZXIuCi0raWYgdGVzdCAiJF9s dF9kaXNhYmxlX0Y3NyIgIT0geWVzOyB0aGVuCi0rICAjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1w bGUgY29tcGlsZSB0ZXN0cwotKyAgbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlPSJcCi0rICAg ICAgc3Vicm91dGluZSB0Ci0rICAgICAgcmV0dXJuCi0rICAgICAgZW5kCi0rIgotKwotKyAgIyBD b2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGxpbmsgdGVzdHMKLSsgIGx0X3NpbXBsZV9saW5rX3Rl c3RfY29kZT0iXAotKyAgICAgIHByb2dyYW0gdAotKyAgICAgIGVuZAotKyIKLSsKLSsgICMgbHRt YWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9ucyBzbyBtYWtlIHN1cmUg JENDIGlzIHNldC4KLSsgIF9MVF9UQUdfQ09NUElMRVIKLSsKLSsgICMgc2F2ZSB3YXJuaW5ncy9i b2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVzdCBjb2RlCi0rICBfTFRfQ09NUElMRVJfQk9JTEVSUExB VEUKLSsgIF9MVF9MSU5LRVJfQk9JTEVSUExBVEUKLSsKLSsgICMgQWxsb3cgQ0MgdG8gYmUgYSBw cm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rICBsdF9zYXZlX0NDPSIkQ0MiCi0rICBsdF9z YXZlX0dDQz0kR0NDCi0rICBsdF9zYXZlX0NGTEFHUz0kQ0ZMQUdTCi0rICBDQz0ke0Y3Ny0iZjc3 In0KLSsgIENGTEFHUz0kRkZMQUdTCi0rICBjb21waWxlcj0kQ0MKLSsgIF9MVF9UQUdWQVIoY29t cGlsZXIsICQxKT0kQ0MKLSsgIF9MVF9DQ19CQVNFTkFNRShbJGNvbXBpbGVyXSkKLSsgIEdDQz0k Rzc3Ci0rICBpZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCi0rICAgIEFDX01TR19DSEVDS0lO RyhbaWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzXSkKLSsgICAgQUNfTVNHX1JF U1VMVChbJGNhbl9idWlsZF9zaGFyZWRdKQotKwotKyAgICBBQ19NU0dfQ0hFQ0tJTkcoW3doZXRo ZXIgdG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllc10pCi0rICAgIHRlc3QgIiRjYW5fYnVpbGRfc2hh cmVkIiA9ICJubyIgJiYgZW5hYmxlX3NoYXJlZD1ubwotKwotKyAgICAjIE9uIEFJWCwgc2hhcmVk IGxpYnJhcmllcyBhbmQgc3RhdGljIGxpYnJhcmllcyB1c2UgdGhlIHNhbWUgbmFtZXNwYWNlLCBh bmQKLSsgICAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgotKyAgICBjYXNlICRob3N0X29zIGlu Ci0rICAgICAgYWl4MyopCi0rICAgICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYg ZW5hYmxlX3N0YXRpYz1ubwotKyAgICAgICAgaWYgdGVzdCAtbiAiJFJBTkxJQiI7IHRoZW4KLSsg ICAgICAgICAgYXJjaGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgotKyAg ICAgICAgICBwb3N0aW5zdGFsbF9jbWRzPSckUkFOTElCICRsaWInCi0rICAgICAgICBmaQotKyAg ICAgICAgOzsKLSsgICAgICBhaXhbWzQtOV1dKikKLSsJaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBp YTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgotKwkgIHRl c3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rCWZpCi0rICAg ICAgICA7OwotKyAgICBlc2FjCi0rICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc2hhcmVkXSkK LSsKLSsgICAgQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRvIGJ1aWxkIHN0YXRpYyBsaWJyYXJp ZXNdKQotKyAgICAjIE1ha2Ugc3VyZSBlaXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3Rh dGljIGlzIHllcy4KLSsgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVzIHx8IGVuYWJsZV9z dGF0aWM9eWVzCi0rICAgIEFDX01TR19SRVNVTFQoWyRlbmFibGVfc3RhdGljXSkKLSsKLSsgICAg X0xUX1RBR1ZBUihHQ0MsICQxKT0iJEc3NyIKLSsgICAgX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQi Ci0rCi0rICAgICMjIENBVkVBVCBFTVBUT1I6Ci0rICAgICMjIFRoZXJlIGlzIG5vIGVuY2Fwc3Vs YXRpb24gd2l0aGluIHRoZSBmb2xsb3dpbmcgbWFjcm9zLCBkbyBub3QgY2hhbmdlCi0rICAgICMj IHRoZSBydW5uaW5nIG9yZGVyIG9yIG90aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5 b3Uga25vdyBleGFjdGx5Ci0rICAgICMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgotKyAgICBfTFRf Q09NUElMRVJfUElDKCQxKQotKyAgICBfTFRfQ09NUElMRVJfQ19PKCQxKQotKyAgICBfTFRfQ09N UElMRVJfRklMRV9MT0NLUygkMSkKLSsgICAgX0xUX0xJTktFUl9TSExJQlMoJDEpCi0rICAgIF9M VF9TWVNfRFlOQU1JQ19MSU5LRVIoJDEpCi0rICAgIF9MVF9MSU5LRVJfSEFSRENPREVfTElCUEFU SCgkMSkKLSsKLSsgICAgX0xUX0NPTkZJRygkMSkKLSsgIGZpICMgdGVzdCAtbiAiJGNvbXBpbGVy IgotKwotKyAgR0NDPSRsdF9zYXZlX0dDQwotKyAgQ0M9IiRsdF9zYXZlX0NDIgotKyAgQ0ZMQUdT PSIkbHRfc2F2ZV9DRkxBR1MiCi0rZmkgIyB0ZXN0ICIkX2x0X2Rpc2FibGVfRjc3IiAhPSB5ZXMK LSsKLStBQ19MQU5HX1BPUAotK10pIyBfTFRfTEFOR19GNzdfQ09ORklHCi0rCi0rCi0rIyBfTFRf TEFOR19GQ19DT05GSUcoW1RBR10pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBF bnN1cmUgdGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIGEgRm9ydHJhbiBjb21w aWxlciBhcmUKLSsjIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJlIHN1YnNl cXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKLSsjIHRvIHdyaXRlIHRoZSBjb21waWxlciBjb25m aWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KLSttNF9kZWZ1bihbX0xUX0xBTkdfRkNfQ09ORklHXSwK LStbQUNfTEFOR19QVVNIKEZvcnRyYW4pCi0rCi0raWYgdGVzdCAteiAiJEZDIiB8fCB0ZXN0ICJY JEZDIiA9ICJYbm8iOyB0aGVuCi0rICBfbHRfZGlzYWJsZV9GQz15ZXMKLStmaQotKwotK19MVF9U QUdWQVIoYXJjaGl2ZV9jbWRzX25lZWRfbGMsICQxKT1ubwotK19MVF9UQUdWQVIoYWxsb3dfdW5k ZWZpbmVkX2ZsYWcsICQxKT0KLStfTFRfVEFHVkFSKGFsd2F5c19leHBvcnRfc3ltYm9scywgJDEp PW5vCi0rX0xUX1RBR1ZBUihhcmNoaXZlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZBUihl eHBvcnRfZHluYW1pY19mbGFnX3NwZWMsICQxKT0KLStfTFRfVEFHVkFSKGhhcmRjb2RlX2RpcmVj dCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGUsICQxKT1ubwot K19MVF9UQUdWQVIoaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgJDEpPQotK19MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCwgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvciwgJDEpPQotK19MVF9UQUdWQVIoaGFyZGNvZGVfbWludXNfTCwgJDEp PW5vCi0rX0xUX1RBR1ZBUihoYXJkY29kZV9hdXRvbWF0aWMsICQxKT1ubwotK19MVF9UQUdWQVIo aW5oZXJpdF9ycGF0aCwgJDEpPW5vCi0rX0xUX1RBR1ZBUihtb2R1bGVfY21kcywgJDEpPQotK19M VF9UQUdWQVIobW9kdWxlX2V4cHN5bV9jbWRzLCAkMSk9Ci0rX0xUX1RBR1ZBUihsaW5rX2FsbF9k ZXBsaWJzLCAkMSk9dW5rbm93bgotK19MVF9UQUdWQVIob2xkX2FyY2hpdmVfY21kcywgJDEpPSRv bGRfYXJjaGl2ZV9jbWRzCi0rX0xUX1RBR1ZBUihyZWxvYWRfZmxhZywgJDEpPSRyZWxvYWRfZmxh ZwotK19MVF9UQUdWQVIocmVsb2FkX2NtZHMsICQxKT0kcmVsb2FkX2NtZHMKLStfTFRfVEFHVkFS KG5vX3VuZGVmaW5lZF9mbGFnLCAkMSk9Ci0rX0xUX1RBR1ZBUih3aG9sZV9hcmNoaXZlX2ZsYWdf c3BlYywgJDEpPQotK19MVF9UQUdWQVIoZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1l cywgJDEpPW5vCi0rCi0rIyBTb3VyY2UgZmlsZSBleHRlbnNpb24gZm9yIGZjIHRlc3Qgc291cmNl cy4KLSthY19leHQ9JHthY19mY19zcmNleHQtZn0KLSsKLSsjIE9iamVjdCBmaWxlIGV4dGVuc2lv biBmb3IgY29tcGlsZWQgZmMgdGVzdCBzb3VyY2VzLgotK29iamV4dD1vCi0rX0xUX1RBR1ZBUihv YmpleHQsICQxKT0kb2JqZXh0Ci0rCi0rIyBObyBzZW5zZSBpbiBydW5uaW5nIGFsbCB0aGVzZSB0 ZXN0cyBpZiB3ZSBhbHJlYWR5IGRldGVybWluZWQgdGhhdAotKyMgdGhlIEZDIGNvbXBpbGVyIGlz bid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxlcyAobGlrZSBlbmFibGVfc2hhcmVkKQotKyMgYXJl IGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5IHRvIGFsbCBjb21waWxlcnMgb24gdGhpcyBwbGF0 Zm9ybSwKLSsjIGFuZCB3aWxsIGJlIGNvcnJ1cHRlZCBieSBzZXR0aW5nIHRoZW0gYmFzZWQgb24g YSBub24td29ya2luZyBjb21waWxlci4KLStpZiB0ZXN0ICIkX2x0X2Rpc2FibGVfRkMiICE9IHll czsgdGhlbgotKyAgIyBDb2RlIHRvIGJlIHVzZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKLSsg IGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0iXAotKyAgICAgIHN1YnJvdXRpbmUgdAotKyAg ICAgIHJldHVybgotKyAgICAgIGVuZAotKyIKLSsKLSsgICMgQ29kZSB0byBiZSB1c2VkIGluIHNp bXBsZSBsaW5rIHRlc3RzCi0rICBsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9IlwKLSsgICAgICBw cm9ncmFtIHQKLSsgICAgICBlbmQKLSsiCi0rCi0rICAjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZv ciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCi0rICBfTFRf VEFHX0NPTVBJTEVSCi0rCi0rICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxl IHRlc3QgY29kZQotKyAgX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rICBfTFRfTElOS0VSX0JP SUxFUlBMQVRFCi0rCi0rICAjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJn dW1lbnRzLgotKyAgbHRfc2F2ZV9DQz0iJENDIgotKyAgbHRfc2F2ZV9HQ0M9JEdDQwotKyAgbHRf c2F2ZV9DRkxBR1M9JENGTEFHUwotKyAgQ0M9JHtGQy0iZjk1In0KLSsgIENGTEFHUz0kRkNGTEFH UwotKyAgY29tcGlsZXI9JENDCi0rICBHQ0M9JGFjX2N2X2ZjX2NvbXBpbGVyX2dudQotKwotKyAg X0xUX1RBR1ZBUihjb21waWxlciwgJDEpPSRDQwotKyAgX0xUX0NDX0JBU0VOQU1FKFskY29tcGls ZXJdKQotKwotKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgotKyAgICBBQ19NU0dfQ0hF Q0tJTkcoW2lmIGxpYnRvb2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllc10pCi0rICAgIEFDX01T R19SRVNVTFQoWyRjYW5fYnVpbGRfc2hhcmVkXSkKLSsKLSsgICAgQUNfTVNHX0NIRUNLSU5HKFt3 aGV0aGVyIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXNdKQotKyAgICB0ZXN0ICIkY2FuX2J1aWxk X3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KLSsKLSsgICAgIyBPbiBBSVgsIHNo YXJlZCBsaWJyYXJpZXMgYW5kIHN0YXRpYyBsaWJyYXJpZXMgdXNlIHRoZSBzYW1lIG5hbWVzcGFj ZSwgYW5kCi0rICAgICMgYXJlIGFsbCBidWlsdCBmcm9tIFBJQy4KLSsgICAgY2FzZSAkaG9zdF9v cyBpbgotKyAgICAgIGFpeDMqKQotKyAgICAgICAgdGVzdCAiJGVuYWJsZV9zaGFyZWQiID0geWVz ICYmIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVu Ci0rICAgICAgICAgIGFyY2hpdmVfY21kcz0iJGFyY2hpdmVfY21kc35cJFJBTkxJQiBcJGxpYiIK LSsgICAgICAgICAgcG9zdGluc3RhbGxfY21kcz0nJFJBTkxJQiAkbGliJwotKyAgICAgICAgZmkK LSsgICAgICAgIDs7Ci0rICAgICAgYWl4W1s0LTldXSopCi0rCWlmIHRlc3QgIiRob3N0X2NwdSIg IT0gaWE2NCAmJiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSBubyA7IHRoZW4KLSsJ ICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSB5ZXMgJiYgZW5hYmxlX3N0YXRpYz1ubwotKwlmaQot KyAgICAgICAgOzsKLSsgICAgZXNhYwotKyAgICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3NoYXJl ZF0pCi0rCi0rICAgIEFDX01TR19DSEVDS0lORyhbd2hldGhlciB0byBidWlsZCBzdGF0aWMgbGli cmFyaWVzXSkKLSsgICAgIyBNYWtlIHN1cmUgZWl0aGVyIGVuYWJsZV9zaGFyZWQgb3IgZW5hYmxl X3N0YXRpYyBpcyB5ZXMuCi0rICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFi bGVfc3RhdGljPXllcwotKyAgICBBQ19NU0dfUkVTVUxUKFskZW5hYmxlX3N0YXRpY10pCi0rCi0r ICAgIF9MVF9UQUdWQVIoR0NDLCAkMSk9IiRhY19jdl9mY19jb21waWxlcl9nbnUiCi0rICAgIF9M VF9UQUdWQVIoTEQsICQxKT0iJExEIgotKwotKyAgICAjIyBDQVZFQVQgRU1QVE9SOgotKyAgICAj IyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9sbG93aW5nIG1hY3Jvcywg ZG8gbm90IGNoYW5nZQotKyAgICAjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92 ZSB0aGVtIGFyb3VuZCB1bmxlc3MgeW91IGtub3cgZXhhY3RseQotKyAgICAjIyB3aGF0IHlvdSBh cmUgZG9pbmcuLi4KLSsgICAgX0xUX1NZU19ISURERU5fTElCREVQUygkMSkKLSsgICAgX0xUX0NP TVBJTEVSX1BJQygkMSkKLSsgICAgX0xUX0NPTVBJTEVSX0NfTygkMSkKLSsgICAgX0xUX0NPTVBJ TEVSX0ZJTEVfTE9DS1MoJDEpCi0rICAgIF9MVF9MSU5LRVJfU0hMSUJTKCQxKQotKyAgICBfTFRf U1lTX0RZTkFNSUNfTElOS0VSKCQxKQotKyAgICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgo JDEpCi0rCi0rICAgIF9MVF9DT05GSUcoJDEpCi0rICBmaSAjIHRlc3QgLW4gIiRjb21waWxlciIK LSsKLSsgIEdDQz0kbHRfc2F2ZV9HQ0MKLSsgIENDPSRsdF9zYXZlX0NDCi0rICBDRkxBR1M9JGx0 X3NhdmVfQ0ZMQUdTCi0rZmkgIyB0ZXN0ICIkX2x0X2Rpc2FibGVfRkMiICE9IHllcwotKwotK0FD X0xBTkdfUE9QCi0rXSkjIF9MVF9MQU5HX0ZDX0NPTkZJRwotKwotKwotKyMgX0xUX0xBTkdfR0NK X0NPTkZJRyhbVEFHXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFbnN1cmUg dGhhdCB0aGUgY29uZmlndXJhdGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBHTlUgSmF2YSBDb21waWxl ciBjb21waWxlcgotKyMgYXJlIHN1aXRhYmx5IGRlZmluZWQuICBUaGVzZSB2YXJpYWJsZXMgYXJl IHN1YnNlcXVlbnRseSB1c2VkIGJ5IF9MVF9DT05GSUcKLSsjIHRvIHdyaXRlIHRoZSBjb21waWxl ciBjb25maWd1cmF0aW9uIHRvIGBsaWJ0b29sJy4KLSttNF9kZWZ1bihbX0xUX0xBTkdfR0NKX0NP TkZJR10sCi0rW0FDX1JFUVVJUkUoW0xUX1BST0dfR0NKXSlkbmwKLStBQ19MQU5HX1NBVkUKLSsK LSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgSmF2YSB0ZXN0IHNvdXJjZXMuCi0rYWNfZXh0 PWphdmEKLSsKLSsjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGlsZWQgSmF2YSB0ZXN0 IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRfVEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsK LSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1wbGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9j b21waWxlX3Rlc3RfY29kZT0iY2xhc3MgZm9vIHt9IgotKwotKyMgQ29kZSB0byBiZSB1c2VkIGlu IHNpbXBsZSBsaW5rIHRlc3RzCi0rbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdwdWJsaWMgY2xh c3MgY29uZnRlc3QgeyBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbW11dIGFyZ3YpIHt9 OyB9JwotKwotKyMgbHRtYWluIG9ubHkgdXNlcyAkQ0MgZm9yIHRhZ2dlZCBjb25maWd1cmF0aW9u cyBzbyBtYWtlIHN1cmUgJENDIGlzIHNldC4KLStfTFRfVEFHX0NPTVBJTEVSCi0rCi0rIyBzYXZl IHdhcm5pbmdzL2JvaWxlcnBsYXRlIG9mIHNpbXBsZSB0ZXN0IGNvZGUKLStfTFRfQ09NUElMRVJf Qk9JTEVSUExBVEUKLStfTFRfTElOS0VSX0JPSUxFUlBMQVRFCi0rCi0rIyBBbGxvdyBDQyB0byBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3VtZW50cy4KLStsdF9zYXZlX0NDPSRDQwotK2x0X3Nh dmVfQ0ZMQUdTPSRDRkxBR1MKLStsdF9zYXZlX0dDQz0kR0NDCi0rR0NDPXllcwotK0NDPSR7R0NK LSJnY2oifQotK0NGTEFHUz0kR0NKRkxBR1MKLStjb21waWxlcj0kQ0MKLStfTFRfVEFHVkFSKGNv bXBpbGVyLCAkMSk9JENDCi0rX0xUX1RBR1ZBUihMRCwgJDEpPSIkTEQiCi0rX0xUX0NDX0JBU0VO QU1FKFskY29tcGlsZXJdKQotKwotKyMgR0NKIGRpZCBub3QgZXhpc3QgYXQgdGhlIHRpbWUgR0ND IGRpZG4ndCBpbXBsaWNpdGx5IGxpbmsgbGliYyBpbi4KLStfTFRfVEFHVkFSKGFyY2hpdmVfY21k c19uZWVkX2xjLCAkMSk9bm8KLSsKLStfTFRfVEFHVkFSKG9sZF9hcmNoaXZlX2NtZHMsICQxKT0k b2xkX2FyY2hpdmVfY21kcwotK19MVF9UQUdWQVIocmVsb2FkX2ZsYWcsICQxKT0kcmVsb2FkX2Zs YWcKLStfTFRfVEFHVkFSKHJlbG9hZF9jbWRzLCAkMSk9JHJlbG9hZF9jbWRzCi0rCi0rIyMgQ0FW RUFUIEVNUFRPUjoKLSsjIyBUaGVyZSBpcyBubyBlbmNhcHN1bGF0aW9uIHdpdGhpbiB0aGUgZm9s bG93aW5nIG1hY3JvcywgZG8gbm90IGNoYW5nZQotKyMjIHRoZSBydW5uaW5nIG9yZGVyIG9yIG90 aGVyd2lzZSBtb3ZlIHRoZW0gYXJvdW5kIHVubGVzcyB5b3Uga25vdyBleGFjdGx5Ci0rIyMgd2hh dCB5b3UgYXJlIGRvaW5nLi4uCi0raWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgotKyAgX0xU X0NPTVBJTEVSX05PX1JUVEkoJDEpCi0rICBfTFRfQ09NUElMRVJfUElDKCQxKQotKyAgX0xUX0NP TVBJTEVSX0NfTygkMSkKLSsgIF9MVF9DT01QSUxFUl9GSUxFX0xPQ0tTKCQxKQotKyAgX0xUX0xJ TktFUl9TSExJQlMoJDEpCi0rICBfTFRfTElOS0VSX0hBUkRDT0RFX0xJQlBBVEgoJDEpCi0rCi0r ICBfTFRfQ09ORklHKCQxKQotK2ZpCi0rCi0rQUNfTEFOR19SRVNUT1JFCi0rCi0rR0NDPSRsdF9z YXZlX0dDQwotK0NDPSRsdF9zYXZlX0NDCi0rQ0ZMQUdTPSRsdF9zYXZlX0NGTEFHUwotK10pIyBf TFRfTEFOR19HQ0pfQ09ORklHCi0rCi0rCi0rIyBfTFRfTEFOR19SQ19DT05GSUcoW1RBR10pCi0r IyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFbnN1cmUgdGhhdCB0aGUgY29uZmlndXJh dGlvbiB2YXJpYWJsZXMgZm9yIHRoZSBXaW5kb3dzIHJlc291cmNlIGNvbXBpbGVyCi0rIyBhcmUg c3VpdGFibHkgZGVmaW5lZC4gIFRoZXNlIHZhcmlhYmxlcyBhcmUgc3Vic2VxdWVudGx5IHVzZWQg YnkgX0xUX0NPTkZJRwotKyMgdG8gd3JpdGUgdGhlIGNvbXBpbGVyIGNvbmZpZ3VyYXRpb24gdG8g YGxpYnRvb2wnLgotK200X2RlZnVuKFtfTFRfTEFOR19SQ19DT05GSUddLAotK1tBQ19SRVFVSVJF KFtMVF9QUk9HX1JDXSlkbmwKLStBQ19MQU5HX1NBVkUKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVu c2lvbiBmb3IgUkMgdGVzdCBzb3VyY2VzLgotK2FjX2V4dD1yYwotKwotKyMgT2JqZWN0IGZpbGUg ZXh0ZW5zaW9uIGZvciBjb21waWxlZCBSQyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStfTFRf VEFHVkFSKG9iamV4dCwgJDEpPSRvYmpleHQKLSsKLSsjIENvZGUgdG8gYmUgdXNlZCBpbiBzaW1w bGUgY29tcGlsZSB0ZXN0cwotK2x0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZT0nc2FtcGxlIE1F TlUgeyBNRU5VSVRFTSAiJlNvdXAiLCAxMDAsIENIRUNLRUQgfScKLSsKLSsjIENvZGUgdG8gYmUg dXNlZCBpbiBzaW1wbGUgbGluayB0ZXN0cwotK2x0X3NpbXBsZV9saW5rX3Rlc3RfY29kZT0iJGx0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIKLSsKLSsjIGx0bWFpbiBvbmx5IHVzZXMgJENDIGZv ciB0YWdnZWQgY29uZmlndXJhdGlvbnMgc28gbWFrZSBzdXJlICRDQyBpcyBzZXQuCi0rX0xUX1RB R19DT01QSUxFUgotKwotKyMgc2F2ZSB3YXJuaW5ncy9ib2lsZXJwbGF0ZSBvZiBzaW1wbGUgdGVz dCBjb2RlCi0rX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRFCi0rX0xUX0xJTktFUl9CT0lMRVJQTEFU RQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0r bHRfc2F2ZV9DQz0iJENDIgotK2x0X3NhdmVfQ0ZMQUdTPSRDRkxBR1MKLStsdF9zYXZlX0dDQz0k R0NDCi0rR0NDPQotK0NDPSR7UkMtIndpbmRyZXMifQotK0NGTEFHUz0KLStjb21waWxlcj0kQ0MK LStfTFRfVEFHVkFSKGNvbXBpbGVyLCAkMSk9JENDCi0rX0xUX0NDX0JBU0VOQU1FKFskY29tcGls ZXJdKQotK19MVF9UQUdWQVIobHRfY3ZfcHJvZ19jb21waWxlcl9jX28sICQxKT15ZXMKLSsKLStp ZiB0ZXN0IC1uICIkY29tcGlsZXIiOyB0aGVuCi0rICA6Ci0rICBfTFRfQ09ORklHKCQxKQotK2Zp Ci0rCi0rR0NDPSRsdF9zYXZlX0dDQwotK0FDX0xBTkdfUkVTVE9SRQotK0NDPSRsdF9zYXZlX0ND Ci0rQ0ZMQUdTPSRsdF9zYXZlX0NGTEFHUwotK10pIyBfTFRfTEFOR19SQ19DT05GSUcKLSsKLSsK LSsjIExUX1BST0dfR0NKCi0rIyAtLS0tLS0tLS0tLQotK0FDX0RFRlVOKFtMVF9QUk9HX0dDSl0s Ci0rW200X2lmZGVmKFtBQ19QUk9HX0dDSl0sIFtBQ19QUk9HX0dDSl0sCi0rICBbbTRfaWZkZWYo W0FdW01fUFJPR19HQ0pdLCBbQV1bTV9QUk9HX0dDSl0sCi0rICAgIFtBQ19DSEVDS19UT09MKEdD SiwgZ2NqLCkKLSsgICAgICB0ZXN0ICJ4JHtHQ0pGTEFHUytzZXR9IiA9IHhzZXQgfHwgR0NKRkxB R1M9Ii1nIC1PMiIKLSsgICAgICBBQ19TVUJTVChHQ0pGTEFHUyldKV0pW11kbmwKLStdKQotKwot KyMgT2xkIG5hbWU6Ci0rQVVfQUxJQVMoW0xUX0FDX1BST0dfR0NKXSwgW0xUX1BST0dfR0NKXSkK LStkbmwgYWNsb2NhbC0xLjQgYmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVO KFtMVF9BQ19QUk9HX0dDSl0sIFtdKQotKwotKwotKyMgTFRfUFJPR19SQwotKyMgLS0tLS0tLS0t LQotK0FDX0RFRlVOKFtMVF9QUk9HX1JDXSwKLStbQUNfQ0hFQ0tfVE9PTChSQywgd2luZHJlcywp Ci0rXSkKLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtMVF9BQ19QUk9HX1JDXSwgW0xUX1BS T0dfUkNdKQotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStkbmwg QUNfREVGVU4oW0xUX0FDX1BST0dfUkNdLCBbXSkKLSsKLSsKLSsjIF9MVF9ERUNMX0VHUkVQCi0r IyAtLS0tLS0tLS0tLS0tLQotKyMgSWYgd2UgZG9uJ3QgaGF2ZSBhIG5ldyBlbm91Z2ggQXV0b2Nv bmYgdG8gY2hvb3NlIHRoZSBiZXN0IGdyZXAKLSsjIGF2YWlsYWJsZSwgY2hvb3NlIHRoZSBvbmUg Zmlyc3QgaW4gdGhlIHVzZXIncyBQQVRILgotK200X2RlZnVuKFtfTFRfREVDTF9FR1JFUF0sCi0r W0FDX1JFUVVJUkUoW0FDX1BST0dfRUdSRVBdKWRubAotK0FDX1JFUVVJUkUoW0FDX1BST0dfRkdS RVBdKWRubAotK3Rlc3QgLXogIiRHUkVQIiAmJiBHUkVQPWdyZXAKLStfTFRfREVDTChbXSwgW0dS RVBdLCBbMV0sIFtBIGdyZXAgcHJvZ3JhbSB0aGF0IGhhbmRsZXMgbG9uZyBsaW5lc10pCi0rX0xU X0RFQ0woW10sIFtFR1JFUF0sIFsxXSwgW0FuIEVSRSBtYXRjaGVyXSkKLStfTFRfREVDTChbXSwg W0ZHUkVQXSwgWzFdLCBbQSBsaXRlcmFsIHN0cmluZyBtYXRjaGVyXSkKLStkbmwgTm9uLWJsZWVk aW5nLWVkZ2UgYXV0b2NvbmYgZG9lc24ndCBzdWJzdCBHUkVQLCBzbyBkbyBpdCBoZXJlIHRvbwot K0FDX1NVQlNUKFtHUkVQXSkKLStdKQotKwotKwotKyMgX0xUX0RFQ0xfT0JKRFVNUAotKyMgLS0t LS0tLS0tLS0tLS0KLSsjIElmIHdlIGRvbid0IGhhdmUgYSBuZXcgZW5vdWdoIEF1dG9jb25mIHRv IGNob29zZSB0aGUgYmVzdCBvYmpkdW1wCi0rIyBhdmFpbGFibGUsIGNob29zZSB0aGUgb25lIGZp cnN0IGluIHRoZSB1c2VyJ3MgUEFUSC4KLSttNF9kZWZ1bihbX0xUX0RFQ0xfT0JKRFVNUF0sCi0r W0FDX0NIRUNLX1RPT0woT0JKRFVNUCwgb2JqZHVtcCwgZmFsc2UpCi0rdGVzdCAteiAiJE9CSkRV TVAiICYmIE9CSkRVTVA9b2JqZHVtcAotK19MVF9ERUNMKFtdLCBbT0JKRFVNUF0sIFsxXSwgW0Fu IG9iamVjdCBzeW1ib2wgZHVtcGVyXSkKLStBQ19TVUJTVChbT0JKRFVNUF0pCi0rXSkKLSsKLSsj IF9MVF9ERUNMX0RMTFRPT0wKLSsjIC0tLS0tLS0tLS0tLS0tLS0KLSsjIEVuc3VyZSBETExUT09M IHZhcmlhYmxlIGlzIHNldC4KLSttNF9kZWZ1bihbX0xUX0RFQ0xfRExMVE9PTF0sCi0rW0FDX0NI RUNLX1RPT0woRExMVE9PTCwgZGxsdG9vbCwgZmFsc2UpCi0rdGVzdCAteiAiJERMTFRPT0wiICYm IERMTFRPT0w9ZGxsdG9vbAotK19MVF9ERUNMKFtdLCBbRExMVE9PTF0sIFsxXSwgW0RMTCBjcmVh dGlvbiBwcm9ncmFtXSkKLStBQ19TVUJTVChbRExMVE9PTF0pCi0rXSkKLSsKLSsjIF9MVF9ERUNM X1NFRAotKyMgLS0tLS0tLS0tLS0tCi0rIyBDaGVjayBmb3IgYSBmdWxseS1mdW5jdGlvbmFsIHNl ZCBwcm9ncmFtLCB0aGF0IHRydW5jYXRlcwotKyMgYXMgZmV3IGNoYXJhY3RlcnMgYXMgcG9zc2li bGUuICBQcmVmZXIgR05VIHNlZCBpZiBmb3VuZC4KLSttNF9kZWZ1bihbX0xUX0RFQ0xfU0VEXSwK LStbQUNfUFJPR19TRUQKLSt0ZXN0IC16ICIkU0VEIiAmJiBTRUQ9c2VkCi0rWHNlZD0iJFNFRCAt ZSAxcy9eWC8vIgotK19MVF9ERUNMKFtdLCBbU0VEXSwgWzFdLCBbQSBzZWQgcHJvZ3JhbSB0aGF0 IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dF0pCi0rX0xUX0RFQ0woW10sIFtYc2VkXSwgWyJcJFNF RCAtZSAxcy9eWC8vIl0sCi0rICAgIFtTZWQgdGhhdCBoZWxwcyB1cyBhdm9pZCBhY2NpZGVudGFs bHkgdHJpZ2dlcmluZyBlY2hvKDEpIG9wdGlvbnMgbGlrZSAtbl0pCi0rXSkjIF9MVF9ERUNMX1NF RAotKwotK200X2lmbmRlZihbQUNfUFJPR19TRURdLCBbCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0rIyBOT1RFOiBUaGlzIG1h Y3JvIGhhcyBiZWVuIHN1Ym1pdHRlZCBmb3IgaW5jbHVzaW9uIGludG8gICAjCi0rIyAgR05VIEF1 dG9jb25mIGFzIEFDX1BST0dfU0VELiAgV2hlbiBpdCBpcyBhdmFpbGFibGUgaW4gICAjCi0rIyAg YSByZWxlYXNlZCB2ZXJzaW9uIG9mIEF1dG9jb25mIHdlIHNob3VsZCByZW1vdmUgdGhpcyAgICAj Ci0rIyAgbWFjcm8gYW5kIHVzZSBpdCBpbnN0ZWFkLiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAjCi0rIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCi0rCi0rbTRfZGVmdW4oW0FDX1BST0dfU0VEXSwKLStbQUNfTVNHX0NIRUNL SU5HKFtmb3IgYSBzZWQgdGhhdCBkb2VzIG5vdCB0cnVuY2F0ZSBvdXRwdXRdKQotK0FDX0NBQ0hF X1ZBTChsdF9jdl9wYXRoX1NFRCwKLStbIyBMb29wIHRocm91Z2ggdGhlIHVzZXIncyBwYXRoIGFu ZCB0ZXN0IGZvciBzZWQgYW5kIGdzZWQuCi0rIyBUaGVuIHVzZSB0aGF0IGxpc3Qgb2Ygc2VkJ3Mg YXMgb25lcyB0byB0ZXN0IGZvciB0cnVuY2F0aW9uLgotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2 ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICBmb3IgbHRfYWNfcHJv ZyBpbiBzZWQgZ3NlZDsgZG8KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCi0rICAgICAgaWYgJGFzX2V4ZWN1dGFibGVfcCAiJGFzX2Rpci8k bHRfYWNfcHJvZyRhY19leGVjX2V4dCI7IHRoZW4KLSsgICAgICAgIGx0X2FjX3NlZF9saXN0PSIk bHRfYWNfc2VkX2xpc3QgJGFzX2Rpci8kbHRfYWNfcHJvZyRhY19leGVjX2V4dCIKLSsgICAgICBm aQotKyAgICBkb25lCi0rICBkb25lCi0rZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLStsdF9hY19t YXg9MAotK2x0X2FjX2NvdW50PTAKLSsjIEFkZCAvdXNyL3hwZzQvYmluL3NlZCBhcyBpdCBpcyB0 eXBpY2FsbHkgZm91bmQgb24gU29sYXJpcwotKyMgYWxvbmcgd2l0aCAvYmluL3NlZCB0aGF0IHRy dW5jYXRlcyBvdXRwdXQuCi0rZm9yIGx0X2FjX3NlZCBpbiAkbHRfYWNfc2VkX2xpc3QgL3Vzci94 cGc0L2Jpbi9zZWQ7IGRvCi0rICB0ZXN0ICEgLWYgJGx0X2FjX3NlZCAmJiBjb250aW51ZQotKyAg Y2F0IC9kZXYvbnVsbCA+IGNvbmZ0ZXN0LmluCi0rICBsdF9hY19jb3VudD0wCi0rICBlY2hvICRF Q0hPX04gIjAxMjM0NTY3ODkkRUNIT19DIiA+Y29uZnRlc3QuaW4KLSsgICMgQ2hlY2sgZm9yIEdO VSBzZWQgYW5kIHNlbGVjdCBpdCBpZiBpdCBpcyBmb3VuZC4KLSsgIGlmICIkbHRfYWNfc2VkIiAt LXZlcnNpb24gMj4mMSA8IC9kZXYvbnVsbCB8IGdyZXAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4K LSsgICAgbHRfY3ZfcGF0aF9TRUQ9JGx0X2FjX3NlZAotKyAgICBicmVhawotKyAgZmkKLSsgIHdo aWxlIHRydWU7IGRvCi0rICAgIGNhdCBjb25mdGVzdC5pbiBjb25mdGVzdC5pbiA+Y29uZnRlc3Qu dG1wCi0rICAgIG12IGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5pbgotKyAgICBjcCBjb25mdGVzdC5p biBjb25mdGVzdC5ubAotKyAgICBlY2hvID4+Y29uZnRlc3QubmwKLSsgICAgJGx0X2FjX3NlZCAt ZSAncy9hJC8vJyA8IGNvbmZ0ZXN0Lm5sID5jb25mdGVzdC5vdXQgfHwgYnJlYWsKLSsgICAgY21w IC1zIGNvbmZ0ZXN0Lm91dCBjb25mdGVzdC5ubCB8fCBicmVhawotKyAgICAjIDEwMDAwIGNoYXJz IGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKLSsgICAgdGVzdCAkbHRfYWNfY291bnQg LWd0IDEwICYmIGJyZWFrCi0rICAgIGx0X2FjX2NvdW50PWBleHByICRsdF9hY19jb3VudCArIDFg Ci0rICAgIGlmIHRlc3QgJGx0X2FjX2NvdW50IC1ndCAkbHRfYWNfbWF4OyB0aGVuCi0rICAgICAg bHRfYWNfbWF4PSRsdF9hY19jb3VudAotKyAgICAgIGx0X2N2X3BhdGhfU0VEPSRsdF9hY19zZWQK LSsgICAgZmkKLSsgIGRvbmUKLStkb25lCi0rXSkKLStTRUQ9JGx0X2N2X3BhdGhfU0VECi0rQUNf U1VCU1QoW1NFRF0pCi0rQUNfTVNHX1JFU1VMVChbJFNFRF0pCi0rXSkjQUNfUFJPR19TRUQKLStd KSNtNF9pZm5kZWYKLSsKLSsjIE9sZCBuYW1lOgotK0FVX0FMSUFTKFtMVF9BQ19QUk9HX1NFRF0s IFtBQ19QUk9HX1NFRF0pCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5 OgotK2RubCBBQ19ERUZVTihbTFRfQUNfUFJPR19TRURdLCBbXSkKLSsKLSsKLSsjIF9MVF9DSEVD S19TSEVMTF9GRUFUVVJFUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBGaW5kIG91 dCB3aGV0aGVyIHRoZSBzaGVsbCBpcyBCb3VybmUgb3IgWFNJIGNvbXBhdGlibGUsCi0rIyBvciBo YXMgc29tZSBvdGhlciB1c2VmdWwgZmVhdHVyZXMuCi0rbTRfZGVmdW4oW19MVF9DSEVDS19TSEVM TF9GRUFUVVJFU10sCi0rW0FDX01TR19DSEVDS0lORyhbd2hldGhlciB0aGUgc2hlbGwgdW5kZXJz dGFuZHMgc29tZSBYU0kgY29uc3RydWN0c10pCi0rIyBUcnkgc29tZSBYU0kgZmVhdHVyZXMKLSt4 c2lfc2hlbGw9bm8KLSsoIF9sdF9kdW1teT0iYS9iL2MiCi0rICB0ZXN0ICIke19sdF9kdW1teSMj Ki99LCR7X2x0X2R1bW15JS8qfSwke19sdF9kdW1teSM/P30iJHtfbHRfZHVtbXklIiRfbHRfZHVt bXkifSwgXAotKyAgICAgID0gYyxhL2IsYi9jLCBcCi0rICAgICYmIGV2YWwgJ3Rlc3QgJCgoIDEg KyAxICkpIC1lcSAyIFwKLSsgICAgJiYgdGVzdCAiJHsjX2x0X2R1bW15fSIgLWVxIDUnICkgPi9k ZXYvbnVsbCAyPiYxIFwKLSsgICYmIHhzaV9zaGVsbD15ZXMKLStBQ19NU0dfUkVTVUxUKFskeHNp X3NoZWxsXSkKLStfTFRfQ09ORklHX0xJQlRPT0xfSU5JVChbeHNpX3NoZWxsPSckeHNpX3NoZWxs J10pCi0rCi0rQUNfTVNHX0NIRUNLSU5HKFt3aGV0aGVyIHRoZSBzaGVsbCB1bmRlcnN0YW5kcyAi Kz0iXSkKLStsdF9zaGVsbF9hcHBlbmQ9bm8KLSsoIGZvbz1iYXI7IHNldCBmb28gYmF6OyBldmFs ICIkWzFdKz1cJFsyXSIgJiYgdGVzdCAiJGZvbyIgPSBiYXJiYXogKSBcCi0rICAgID4vZGV2L251 bGwgMj4mMSBcCi0rICAmJiBsdF9zaGVsbF9hcHBlbmQ9eWVzCi0rQUNfTVNHX1JFU1VMVChbJGx0 X3NoZWxsX2FwcGVuZF0pCi0rX0xUX0NPTkZJR19MSUJUT09MX0lOSVQoW2x0X3NoZWxsX2FwcGVu ZD0nJGx0X3NoZWxsX2FwcGVuZCddKQotKwotK2lmICggKE1BSUw9NjA7IHVuc2V0IE1BSUwpIHx8 IGV4aXQpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgbHRfdW5zZXQ9dW5zZXQKLStlbHNlCi0r ICBsdF91bnNldD1mYWxzZQotK2ZpCi0rX0xUX0RFQ0woW10sIFtsdF91bnNldF0sIFswXSwgW3do ZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzICJ1bnNldCJdKWRubAotKwotKyMgdGVzdCBFQkNE SUMgb3IgQVNDSUkKLStjYXNlIGBlY2hvIFh8dHIgWCAnXDEwMSdgIGluCi0rIEEpICMgQVNDSUkg YmFzZWQgc3lzdGVtCi0rICAgICMgXG4gaXMgbm90IGludGVycHJldGVkIGNvcnJlY3RseSBieSBT b2xhcmlzIDggL3Vzci91Y2IvdHIKLSsgIGx0X1NQMk5MPSd0ciBcMDQwIFwwMTInCi0rICBsdF9O TDJTUD0ndHIgXDAxNVwwMTIgXDA0MFwwNDAnCi0rICA7OwotKyAqKSAjIEVCQ0RJQyBiYXNlZCBz eXN0ZW0KLSsgIGx0X1NQMk5MPSd0ciBcMTAwIFxuJwotKyAgbHRfTkwyU1A9J3RyIFxyXG4gXDEw MFwxMDAnCi0rICA7OwotK2VzYWMKLStfTFRfREVDTChbU1AyTkxdLCBbbHRfU1AyTkxdLCBbMV0s IFt0dXJuIHNwYWNlcyBpbnRvIG5ld2xpbmVzXSlkbmwKLStfTFRfREVDTChbTkwyU1BdLCBbbHRf TkwyU1BdLCBbMV0sIFt0dXJuIG5ld2xpbmVzIGludG8gc3BhY2VzXSlkbmwKLStdKSMgX0xUX0NI RUNLX1NIRUxMX0ZFQVRVUkVTCi0rCi0rCi0rIyBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFIChG VU5DTkFNRSwgUkVQTEFDRU1FTlQtQk9EWSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgSW4gYCRjZmdmaWxlJywgbG9vayBmb3Ig ZnVuY3Rpb24gRlVOQ05BTUUgZGVsaW1pdGVkIGJ5IGBeRlVOQ05BTUUgKCkkJyBhbmQKLSsjICde fSBGVU5DTkFNRSAnLCBhbmQgcmVwbGFjZSBpdHMgYm9keSB3aXRoIFJFUExBQ0VNRU5ULUJPRFku Ci0rbTRfZGVmdW4oW19MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0VdLAotK1tkbmwgewotK3NlZCAt ZSAnL14kMSAoKSQvLC9efSAjICQxIC9jXAotKyQxICgpXAotK3tcCi0rbTRfYnBhdHN1YnN0cyhb JDJdLCBbJF0sIFtcXF0sIFteXChbCSBdXCldLCBbXFxcMV0pCi0rfSAjIEV4dGVuZGVkLXNoZWxs ICQxIGltcGxlbWVudGF0aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2ZpbGUudG1wIFwKLSsgICYmIG12 IC1mICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgXAotKyAgICB8fCAocm0gLWYgIiRjZmdmaWxl IiAmJiBjcCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAi KQotK3Rlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06Ci0rXSkKLSsK LSsKLSsjIF9MVF9QUk9HX1JFUExBQ0VfU0hFTExGTlMKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLSsjIFJlcGxhY2UgZXhpc3RpbmcgcG9ydGFibGUgaW1wbGVtZW50YXRpb25zIG9mIHNl dmVyYWwgc2hlbGwgZnVuY3Rpb25zIHdpdGgKLSsjIGVxdWl2YWxlbnQgZXh0ZW5kZWQgc2hlbGwg aW1wbGVtZW50YXRpb25zIHdoZXJlIHRob3NlIGZlYXR1cmVzIGFyZSBhdmFpbGFibGUuLgotK200 X2RlZnVuKFtfTFRfUFJPR19SRVBMQUNFX1NIRUxMRk5TXSwKLStbaWYgdGVzdCB4IiR4c2lfc2hl bGwiID0geHllczsgdGhlbgotKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY19kaXJu YW1lXSwgW2RubAotKyAgICBjYXNlICR7MX0gaW4KLSsgICAgICAqLyopIGZ1bmNfZGlybmFtZV9y ZXN1bHQ9IiR7MSUvKn0kezJ9IiA7OwotKyAgICAgICogICkgZnVuY19kaXJuYW1lX3Jlc3VsdD0i JHszfSIgOzsKLSsgICAgZXNhY10pCi0rCi0rICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtm dW5jX2Jhc2VuYW1lXSwgW2RubAotKyAgICBmdW5jX2Jhc2VuYW1lX3Jlc3VsdD0iJHsxIyMqL30i XSkKLSsKLSsgIF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UoW2Z1bmNfZGlybmFtZV9hbmRfYmFz ZW5hbWVdLCBbZG5sCi0rICAgIGNhc2UgJHsxfSBpbgotKyAgICAgICovKikgZnVuY19kaXJuYW1l X3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7Ci0rICAgICAgKiAgKSBmdW5jX2Rpcm5hbWVfcmVzdWx0 PSIkezN9IiA7OwotKyAgICBlc2FjCi0rICAgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyov fSJdKQotKwotKyAgX0xUX1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY19zdHJpcG5hbWVdLCBb ZG5sCi0rICAgICMgcGRrc2ggNS4yLjE0IGRvZXMgbm90IGRvICR7WCUkWX0gY29ycmVjdGx5IGlm IGJvdGggWCBhbmQgWSBhcmUKLSsgICAgIyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIHNvIGFzc2ln biBvbmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0LgotKyAgICBmdW5jX3N0cmlwbmFtZV9y ZXN1bHQ9JHszfQotKyAgICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFtZV9y ZXN1bHQjIiR7MX0ifQotKyAgICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlwbmFt ZV9yZXN1bHQlIiR7Mn0ifV0pCi0rCi0rICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5j X3NwbGl0X2xvbmdfb3B0XSwgW2RubAotKyAgICBmdW5jX3NwbGl0X2xvbmdfb3B0X25hbWU9JHsx JSU9Kn0KLSsgICAgZnVuY19zcGxpdF9sb25nX29wdF9hcmc9JHsxIyo9fV0pCi0rCi0rICBfTFRf UFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX3NwbGl0X3Nob3J0X29wdF0sIFtkbmwKLSsgICAg ZnVuY19zcGxpdF9zaG9ydF9vcHRfYXJnPSR7MSM/P30KLSsgICAgZnVuY19zcGxpdF9zaG9ydF9v cHRfbmFtZT0kezElIiRmdW5jX3NwbGl0X3Nob3J0X29wdF9hcmcifV0pCi0rCi0rICBfTFRfUFJP R19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX2xvMm9dLCBbZG5sCi0rICAgIGNhc2UgJHsxfSBpbgot KyAgICAgICoubG8pIGZ1bmNfbG8yb19yZXN1bHQ9JHsxJS5sb30uJHtvYmpleHR9IDs7Ci0rICAg ICAgKikgICAgZnVuY19sbzJvX3Jlc3VsdD0kezF9IDs7Ci0rICAgIGVzYWNdKQotKwotKyAgX0xU X1BST0dfRlVOQ1RJT05fUkVQTEFDRShbZnVuY194Zm9ybV0sIFsgICAgZnVuY194Zm9ybV9yZXN1 bHQ9JHsxJS4qfS5sb10pCi0rCi0rICBfTFRfUFJPR19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX2Fy aXRoXSwgWyAgICBmdW5jX2FyaXRoX3Jlc3VsdD0kKCggJFsqXSApKV0pCi0rCi0rICBfTFRfUFJP R19GVU5DVElPTl9SRVBMQUNFKFtmdW5jX2xlbl0sIFsgICAgZnVuY19sZW5fcmVzdWx0PSR7IzF9 XSkKLStmaQotKwotK2lmIHRlc3QgeCIkbHRfc2hlbGxfYXBwZW5kIiA9IHh5ZXM7IHRoZW4KLSsg IF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UoW2Z1bmNfYXBwZW5kXSwgWyAgICBldmFsICIkezF9 Kz1cXCR7Mn0iXSkKLSsKLSsgIF9MVF9QUk9HX0ZVTkNUSU9OX1JFUExBQ0UoW2Z1bmNfYXBwZW5k X3F1b3RlZF0sIFtkbmwKLSsgICAgZnVuY19xdW90ZV9mb3JfZXZhbCAiJHsyfSIKLStkbmwgbTQg ZXhwYW5zaW9uIHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHRoZW4gdGhlIHNoZWxsIGV2YWwgdHVy bnMgdGhhdCBpbnRvIFwKLSsgICAgZXZhbCAiJHsxfSs9XFxcXCBcXCRmdW5jX3F1b3RlX2Zvcl9l dmFsX3Jlc3VsdCJdKQotKwotKyAgIyBTYXZlIGEgYGZ1bmNfYXBwZW5kJyBmdW5jdGlvbiBjYWxs IHdoZXJlIHBvc3NpYmxlIGJ5IGRpcmVjdCB1c2Ugb2YgJys9JwotKyAgc2VkIC1lICdzJWZ1bmNf YXBwZW5kIFwoW1thLXpBLVpfXV1cezEsXH1cKSAiJVwxKz0iJWcnICRjZmdmaWxlID4gJGNmZ2Zp bGUudG1wIFwKLSsgICAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCi0rICAg ICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAm JiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKLSsgIHRlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9u X3JlcGxhY2VfZmFpbD06Ci0rZWxzZQotKyAgIyBTYXZlIGEgYGZ1bmNfYXBwZW5kJyBmdW5jdGlv biBjYWxsIGV2ZW4gd2hlbiAnKz0nIGlzIG5vdCBhdmFpbGFibGUKLSsgIHNlZCAtZSAncyVmdW5j X2FwcGVuZCBcKFtbYS16QS1aX11dXHsxLFx9XCkgIiVcMT0iJFwxJWcnICRjZmdmaWxlID4gJGNm Z2ZpbGUudG1wIFwKLSsgICAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCi0r ICAgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxl IiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKLSsgIHRlc3QgMCAtZXEgJD8gfHwgX2x0X2Z1bmN0 aW9uX3JlcGxhY2VfZmFpbD06Ci0rZmkKLSsKLStpZiB0ZXN0IHgiJF9sdF9mdW5jdGlvbl9yZXBs YWNlX2ZhaWwiID0geCI6IjsgdGhlbgotKyAgQUNfTVNHX1dBUk4oW1VuYWJsZSB0byBzdWJzdGl0 dXRlIGV4dGVuZGVkIHNoZWxsIGZ1bmN0aW9ucyBpbiAkb2ZpbGVdKQotK2ZpCi0rXSkKLSsKLSsj IF9MVF9QQVRIX0NPTlZFUlNJT05fRlVOQ1RJT05TCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotKyMgRGV0ZXJtaW5lIHdoaWNoIGZpbGUgbmFtZSBjb252ZXJzaW9uIGZ1bmN0aW9u cyBzaG91bGQgYmUgdXNlZCBieQotKyMgZnVuY190b19ob3N0X2ZpbGUgKGFuZCwgaW1wbGljaXRs eSwgYnkgZnVuY190b19ob3N0X3BhdGgpLiAgVGhlc2UgYXJlIG5lZWRlZAotKyMgZm9yIGNlcnRh aW4gY3Jvc3MtY29tcGlsZSBjb25maWd1cmF0aW9ucyBhbmQgbmF0aXZlIG1pbmd3LgotK200X2Rl ZnVuKFtfTFRfUEFUSF9DT05WRVJTSU9OX0ZVTkNUSU9OU10sCi0rW0FDX1JFUVVJUkUoW0FDX0NB Tk9OSUNBTF9IT1NUXSlkbmwKLStBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfQlVJTERdKWRubAot K0FDX01TR19DSEVDS0lORyhbaG93IHRvIGNvbnZlcnQgJGJ1aWxkIGZpbGUgbmFtZXMgdG8gJGhv c3QgZm9ybWF0XSkKLStBQ19DQUNIRV9WQUwobHRfY3ZfdG9faG9zdF9maWxlX2NtZCwKLStbY2Fz ZSAkaG9zdCBpbgotKyAgKi0qLW1pbmd3KiApCi0rICAgIGNhc2UgJGJ1aWxkIGluCi0rICAgICAg Ki0qLW1pbmd3KiApICMgYWN0dWFsbHkgbXN5cwotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxl X2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgotKyAgICAgICAgOzsKLSsgICAgICAq LSotY3lnd2luKiApCi0rICAgICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVy dF9maWxlX2N5Z3dpbl90b193MzIKLSsgICAgICAgIDs7Ci0rICAgICAgKiApICMgb3RoZXJ3aXNl LCBhc3N1bWUgKm5peAotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZl cnRfZmlsZV9uaXhfdG9fdzMyCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICAq LSotY3lnd2luKiApCi0rICAgIGNhc2UgJGJ1aWxkIGluCi0rICAgICAgKi0qLW1pbmd3KiApICMg YWN0dWFsbHkgbXN5cwotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZl cnRfZmlsZV9tc3lzX3RvX2N5Z3dpbgotKyAgICAgICAgOzsKLSsgICAgICAqLSotY3lnd2luKiAp Ci0rICAgICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25vb3AK LSsgICAgICAgIDs7Ci0rICAgICAgKiApICMgb3RoZXJ3aXNlLCBhc3N1bWUgKm5peAotKyAgICAg ICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fY3lnd2lu Ci0rICAgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICAqICkgIyB1bmhhbmRsZWQgaG9z dHMgKGFuZCAibm9ybWFsIiBuYXRpdmUgYnVpbGRzKQotKyAgICBsdF9jdl90b19ob3N0X2ZpbGVf Y21kPWZ1bmNfY29udmVydF9maWxlX25vb3AKLSsgICAgOzsKLStlc2FjCi0rXSkKLSt0b19ob3N0 X2ZpbGVfY21kPSRsdF9jdl90b19ob3N0X2ZpbGVfY21kCi0rQUNfTVNHX1JFU1VMVChbJGx0X2N2 X3RvX2hvc3RfZmlsZV9jbWRdKQotK19MVF9ERUNMKFt0b19ob3N0X2ZpbGVfY21kXSwgW2x0X2N2 X3RvX2hvc3RfZmlsZV9jbWRdLAotKyAgICAgICAgIFswXSwgW2NvbnZlcnQgJGJ1aWxkIGZpbGUg bmFtZXMgdG8gJGhvc3QgZm9ybWF0XSlkbmwKLSsKLStBQ19NU0dfQ0hFQ0tJTkcoW2hvdyB0byBj b252ZXJ0ICRidWlsZCBmaWxlIG5hbWVzIHRvIHRvb2xjaGFpbiBmb3JtYXRdKQotK0FDX0NBQ0hF X1ZBTChsdF9jdl90b190b29sX2ZpbGVfY21kLAotK1sjYXNzdW1lIG9yZGluYXJ5IGNyb3NzIHRv b2xzLCBvciBuYXRpdmUgYnVpbGQuCi0rbHRfY3ZfdG9fdG9vbF9maWxlX2NtZD1mdW5jX2NvbnZl cnRfZmlsZV9ub29wCi0rY2FzZSAkaG9zdCBpbgotKyAgKi0qLW1pbmd3KiApCi0rICAgIGNhc2Ug JGJ1aWxkIGluCi0rICAgICAgKi0qLW1pbmd3KiApICMgYWN0dWFsbHkgbXN5cwotKyAgICAgICAg bHRfY3ZfdG9fdG9vbF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgotKyAg ICAgICAgOzsKLSsgICAgZXNhYwotKyAgICA7OwotK2VzYWMKLStdKQotK3RvX3Rvb2xfZmlsZV9j bWQ9JGx0X2N2X3RvX3Rvb2xfZmlsZV9jbWQKLStBQ19NU0dfUkVTVUxUKFskbHRfY3ZfdG9fdG9v bF9maWxlX2NtZF0pCi0rX0xUX0RFQ0woW3RvX3Rvb2xfZmlsZV9jbWRdLCBbbHRfY3ZfdG9fdG9v bF9maWxlX2NtZF0sCi0rICAgICAgICAgWzBdLCBbY29udmVydCAkYnVpbGQgZmlsZXMgdG8gdG9v bGNoYWluIGZvcm1hdF0pZG5sCi0rXSkjIF9MVF9QQVRIX0NPTlZFUlNJT05fRlVOQ1RJT05TCi1k aWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0bWFpbi5zaCBzb2NpLTMuMC4wX3Ry ZXAzMDAvY29uZmlnL2x0bWFpbi5zaAotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG1h aW4uc2gJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvY29uZmlnL2x0bWFpbi5zaAkyMDExLTA3LTAzIDE4OjQ0OjIyLjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSw5NjM2IEBACi0rCi0rIyBsaWJ0b29sIChHTlUgbGlidG9vbCkgMi40 Ci0rIyBXcml0dGVuIGJ5IEdvcmRvbiBNYXR6aWdrZWl0IDxnb3JkQGdudS5haS5taXQuZWR1Piwg MTk5NgotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAy MDAxLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LAotKyMgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIFRoaXMgaXMgZnJlZSBzb2Z0d2FyZTsg c2VlIHRoZSBzb3VyY2UgZm9yIGNvcHlpbmcgY29uZGl0aW9ucy4gIFRoZXJlIGlzIE5PCi0rIyB3 YXJyYW50eTsgbm90IGV2ZW4gZm9yIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB UlRJQ1VMQVIgUFVSUE9TRS4KLSsKLSsjIEdOVSBMaWJ0b29sIGlzIGZyZWUgc29mdHdhcmU7IHlv dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJt cyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9mIHRoZSBMaWNl bnNlLCBvcgotKyMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSsjCi0rIyBB cyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwK LSsjIGlmIHlvdSBkaXN0cmlidXRlIHRoaXMgZmlsZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSBvciBs aWJyYXJ5IHRoYXQKLSsjIGlzIGJ1aWx0IHVzaW5nIEdOVSBMaWJ0b29sLCB5b3UgbWF5IGluY2x1 ZGUgdGhpcyBmaWxlIHVuZGVyIHRoZQotKyMgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5 b3UgdXNlIGZvciB0aGUgcmVzdCBvZiB0aGF0IHByb2dyYW0uCi0rIwotKyMgR05VIExpYnRvb2wg aXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Ci0r IyBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5 IG9mCi0rIyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuICBTZWUgdGhlIEdOVQotKyMgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh aWxzLgotKyMKLSsjIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0rIyBhbG9uZyB3aXRoIEdOVSBMaWJ0b29sOyBzZWUgdGhl IGZpbGUgQ09QWUlORy4gIElmIG5vdCwgYSBjb3B5Ci0rIyBjYW4gYmUgZG93bmxvYWRlZCBmcm9t IGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwuaHRtbCwKLSsjIG9yIG9idGFpbmVkIGJ5 IHdyaXRpbmcgdG8gdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwKLSsjIDUxIEZy YW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgot KwotKyMgVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiBbTU9ERS1BUkddLi4uCi0rIwotKyMg UHJvdmlkZSBnZW5lcmFsaXplZCBsaWJyYXJ5LWJ1aWxkaW5nIHN1cHBvcnQgc2VydmljZXMuCi0r IwotKyMgICAgICAgLS1jb25maWcgICAgICAgICAgICAgc2hvdyBhbGwgY29uZmlndXJhdGlvbiB2 YXJpYWJsZXMKLSsjICAgICAgIC0tZGVidWcgICAgICAgICAgICAgIGVuYWJsZSB2ZXJib3NlIHNo ZWxsIHRyYWNpbmcKLSsjICAgLW4sIC0tZHJ5LXJ1biAgICAgICAgICAgIGRpc3BsYXkgY29tbWFu ZHMgd2l0aG91dCBtb2RpZnlpbmcgYW55IGZpbGVzCi0rIyAgICAgICAtLWZlYXR1cmVzICAgICAg ICAgICBkaXNwbGF5IGJhc2ljIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gYW5kIGV4aXQKLSsj ICAgICAgIC0tbW9kZT1NT0RFICAgICAgICAgIHVzZSBvcGVyYXRpb24gbW9kZSBNT0RFCi0rIyAg ICAgICAtLXByZXNlcnZlLWR1cC1kZXBzICBkb24ndCByZW1vdmUgZHVwbGljYXRlIGRlcGVuZGVu Y3kgbGlicmFyaWVzCi0rIyAgICAgICAtLXF1aWV0LCAtLXNpbGVudCAgICBkb24ndCBwcmludCBp bmZvcm1hdGlvbmFsIG1lc3NhZ2VzCi0rIyAgICAgICAtLW5vLXF1aWV0LCAtLW5vLXNpbGVudAot KyMgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnQgaW5mb3JtYXRpb25hbCBtZXNzYWdl cyAoZGVmYXVsdCkKLSsjICAgICAgIC0tdGFnPVRBRyAgICAgICAgICAgIHVzZSBjb25maWd1cmF0 aW9uIHZhcmlhYmxlcyBmcm9tIHRhZyBUQUcKLSsjICAgLXYsIC0tdmVyYm9zZSAgICAgICAgICAg IHByaW50IG1vcmUgaW5mb3JtYXRpb25hbCBtZXNzYWdlcyB0aGFuIGRlZmF1bHQKLSsjICAgICAg IC0tbm8tdmVyYm9zZSAgICAgICAgIGRvbid0IHByaW50IHRoZSBleHRyYSBpbmZvcm1hdGlvbmFs IG1lc3NhZ2VzCi0rIyAgICAgICAtLXZlcnNpb24gICAgICAgICAgICBwcmludCB2ZXJzaW9uIGlu Zm9ybWF0aW9uCi0rIyAgIC1oLCAtLWhlbHAsIC0taGVscC1hbGwgICBwcmludCBzaG9ydCwgbG9u Zywgb3IgZGV0YWlsZWQgaGVscCBtZXNzYWdlCi0rIwotKyMgTU9ERSBtdXN0IGJlIG9uZSBvZiB0 aGUgZm9sbG93aW5nOgotKyMKLSsjICAgICAgICAgY2xlYW4gICAgICAgICAgICAgIHJlbW92ZSBm aWxlcyBmcm9tIHRoZSBidWlsZCBkaXJlY3RvcnkKLSsjICAgICAgICAgY29tcGlsZSAgICAgICAg ICAgIGNvbXBpbGUgYSBzb3VyY2UgZmlsZSBpbnRvIGEgbGlidG9vbCBvYmplY3QKLSsjICAgICAg ICAgZXhlY3V0ZSAgICAgICAgICAgIGF1dG9tYXRpY2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhl biBydW4gYSBwcm9ncmFtCi0rIyAgICAgICAgIGZpbmlzaCAgICAgICAgICAgICBjb21wbGV0ZSB0 aGUgaW5zdGFsbGF0aW9uIG9mIGxpYnRvb2wgbGlicmFyaWVzCi0rIyAgICAgICAgIGluc3RhbGwg ICAgICAgICAgICBpbnN0YWxsIGxpYnJhcmllcyBvciBleGVjdXRhYmxlcwotKyMgICAgICAgICBs aW5rICAgICAgICAgICAgICAgY3JlYXRlIGEgbGlicmFyeSBvciBhbiBleGVjdXRhYmxlCi0rIyAg ICAgICAgIHVuaW5zdGFsbCAgICAgICAgICByZW1vdmUgbGlicmFyaWVzIGZyb20gYW4gaW5zdGFs bGVkIGRpcmVjdG9yeQotKyMKLSsjIE1PREUtQVJHUyB2YXJ5IGRlcGVuZGluZyBvbiB0aGUgTU9E RS4gIFdoZW4gcGFzc2VkIGFzIGZpcnN0IG9wdGlvbiwKLSsjIGAtLW1vZGU9TU9ERScgbWF5IGJl IGFiYnJldmlhdGVkIGFzIGBNT0RFJyBvciBhIHVuaXF1ZSBhYmJyZXZpYXRpb24gb2YgdGhhdC4K LSsjIFRyeSBgJHByb2duYW1lIC0taGVscCAtLW1vZGU9TU9ERScgZm9yIGEgbW9yZSBkZXRhaWxl ZCBkZXNjcmlwdGlvbiBvZiBNT0RFLgotKyMKLSsjIFdoZW4gcmVwb3J0aW5nIGEgYnVnLCBwbGVh c2UgZGVzY3JpYmUgYSB0ZXN0IGNhc2UgdG8gcmVwcm9kdWNlIGl0IGFuZAotKyMgaW5jbHVkZSB0 aGUgZm9sbG93aW5nIGluZm9ybWF0aW9uOgotKyMKLSsjICAgICAgICAgaG9zdC10cmlwbGV0Ogkk aG9zdAotKyMgICAgICAgICBzaGVsbDoJCSRTSEVMTAotKyMgICAgICAgICBjb21waWxlcjoJCSRM VENDCi0rIyAgICAgICAgIGNvbXBpbGVyIGZsYWdzOgkJJExUQ0ZMQUdTCi0rIyAgICAgICAgIGxp bmtlcjoJCSRMRCAoZ251PyAkd2l0aF9nbnVfbGQpCi0rIyAgICAgICAgICRwcm9nbmFtZToJKEdO VSBsaWJ0b29sKSAyLjQKLSsjICAgICAgICAgYXV0b21ha2U6CSRhdXRvbWFrZV92ZXJzaW9uCi0r IyAgICAgICAgIGF1dG9jb25mOgkkYXV0b2NvbmZfdmVyc2lvbgotKyMKLSsjIFJlcG9ydCBidWdz IHRvIDxidWctbGlidG9vbEBnbnUub3JnPi4KLSsjIEdOVSBsaWJ0b29sIGhvbWUgcGFnZTogPGh0 dHA6Ly93d3cuZ251Lm9yZy9zb2Z0d2FyZS9saWJ0b29sLz4uCi0rIyBHZW5lcmFsIGhlbHAgdXNp bmcgR05VIHNvZnR3YXJlOiA8aHR0cDovL3d3dy5nbnUub3JnL2dldGhlbHAvPi4KLSsKLStQUk9H UkFNPWxpYnRvb2wKLStQQUNLQUdFPWxpYnRvb2wKLStWRVJTSU9OPTIuNAotK1RJTUVTVEFNUD0i IgotK3BhY2thZ2VfcmV2aXNpb249MS4zMjkzCi0rCi0rIyBCZSBCb3VybmUgY29tcGF0aWJsZQot K2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251 bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0ZSBzaAotKyAgTlVMTENNRD06Ci0rICAjIFpzaCAzLngg YW5kIDQueCBwZXJmb3JtcyB3b3JkIHNwbGl0dGluZyBvbiAkezErIiRAIn0sIHdoaWNoCi0rICAj IGlzIGNvbnRyYXJ5IHRvIG91ciB1c2FnZS4gIERpc2FibGUgdGhpcyBmZWF0dXJlLgotKyAgYWxp YXMgLWcgJyR7MSsiJEAifSc9JyIkQCInCi0rICBzZXRvcHQgTk9fR0xPQl9TVUJTVAotK2Vsc2UK LSsgIGNhc2UgYChzZXQgLW8pIDI+L2Rldi9udWxsYCBpbiAqcG9zaXgqKSBzZXQgLW8gcG9zaXg7 OyBlc2FjCi0rZmkKLStCSU5fU0g9eHBnNDsgZXhwb3J0IEJJTl9TSCAjIGZvciBUcnU2NAotK0RV QUxDQVNFPTE7IGV4cG9ydCBEVUFMQ0FTRSAjIGZvciBNS1Mgc2gKLSsKLSsjIEEgZnVuY3Rpb24g dGhhdCBpcyB1c2VkIHdoZW4gdGhlcmUgaXMgbm8gcHJpbnQgYnVpbHRpbiBvciBwcmludGYuCi0r ZnVuY19mYWxsYmFja19lY2hvICgpCi0rewotKyAgZXZhbCAnY2F0IDw8X0xURUNIT19FT0YKLSsk MQotK19MVEVDSE9fRU9GJwotK30KLSsKLSsjIE5MUyBudWlzYW5jZXM6IFdlIHNhdmUgdGhlIG9s ZCB2YWx1ZXMgdG8gcmVzdG9yZSBkdXJpbmcgZXhlY3V0ZSBtb2RlLgotK2x0X3VzZXJfbG9jYWxl PQotK2x0X3NhZmVfbG9jYWxlPQotK2ZvciBsdF92YXIgaW4gTEFORyBMQU5HVUFHRSBMQ19BTEwg TENfQ1RZUEUgTENfQ09MTEFURSBMQ19NRVNTQUdFUwotK2RvCi0rICBldmFsICJpZiB0ZXN0IFwi XCR7JGx0X3ZhcitzZXR9XCIgPSBzZXQ7IHRoZW4KLSsgICAgICAgICAgc2F2ZV8kbHRfdmFyPVwk JGx0X3ZhcgotKyAgICAgICAgICAkbHRfdmFyPUMKLSsJICBleHBvcnQgJGx0X3ZhcgotKwkgIGx0 X3VzZXJfbG9jYWxlPVwiJGx0X3Zhcj1cXFwkc2F2ZV9cJGx0X3ZhcjsgXCRsdF91c2VyX2xvY2Fs ZVwiCi0rCSAgbHRfc2FmZV9sb2NhbGU9XCIkbHRfdmFyPUM7IFwkbHRfc2FmZV9sb2NhbGVcIgot KwlmaSIKLStkb25lCi0rTENfQUxMPUMKLStMQU5HVUFHRT1DCi0rZXhwb3J0IExBTkdVQUdFIExD X0FMTAotKwotKyRsdF91bnNldCBDRFBBVEgKLSsKLSsKLSsjIFdvcmsgYXJvdW5kIGJhY2t3YXJk IGNvbXBhdGliaWxpdHkgaXNzdWUgb24gSVJJWCA2LjUuIE9uIElSSVggNi40Kywgc2gKLSsjIGlz IGtzaCBidXQgd2hlbiB0aGUgc2hlbGwgaXMgaW52b2tlZCBhcyAic2giIGFuZCB0aGUgY3VycmVu dCB2YWx1ZSBvZgotKyMgdGhlIF9YUEcgZW52aXJvbm1lbnQgdmFyaWFibGUgaXMgbm90IGVxdWFs IHRvIDEgKG9uZSksIHRoZSBzcGVjaWFsCi0rIyBwb3NpdGlvbmFsIHBhcmFtZXRlciAkMCwgd2l0 aGluIGEgZnVuY3Rpb24gY2FsbCwgaXMgdGhlIG5hbWUgb2YgdGhlCi0rIyBmdW5jdGlvbi4KLStw cm9ncGF0aD0iJDAiCi0rCi0rCi0rCi0rOiAke0NQPSJjcCAtZiJ9Ci0rdGVzdCAiJHtFQ0hPK3Nl dH0iID0gc2V0IHx8IEVDSE89JHthc19lY2hvLSdwcmludGYgJXNcbid9Ci0rOiAke0VHUkVQPSIv YmluL2dyZXAgLUUifQotKzogJHtGR1JFUD0iL2Jpbi9ncmVwIC1GIn0KLSs6ICR7R1JFUD0iL2Jp bi9ncmVwIn0KLSs6ICR7TE5fUz0ibG4gLXMifQotKzogJHtNQUtFPSJtYWtlIn0KLSs6ICR7TUtE SVI9Im1rZGlyIn0KLSs6ICR7TVY9Im12IC1mIn0KLSs6ICR7Uk09InJtIC1mIn0KLSs6ICR7U0VE PSIvYmluL3NlZCJ9Ci0rOiAke1NIRUxMPSIke0NPTkZJR19TSEVMTC0vYmluL3NofSJ9Ci0rOiAk e1hzZWQ9IiRTRUQgLWUgMXMvXlgvLyJ9Ci0rCi0rIyBHbG9iYWwgdmFyaWFibGVzOgotK0VYSVRf U1VDQ0VTUz0wCi0rRVhJVF9GQUlMVVJFPTEKLStFWElUX01JU01BVENIPTYzICAjICQ/ID0gNjMg aXMgdXNlZCB0byBpbmRpY2F0ZSB2ZXJzaW9uIG1pc21hdGNoIHRvIG1pc3NpbmcuCi0rRVhJVF9T S0lQPTc3CSAgIyAkPyA9IDc3IGlzIHVzZWQgdG8gaW5kaWNhdGUgYSBza2lwcGVkIHRlc3QgdG8g YXV0b21ha2UuCi0rCi0rZXhpdF9zdGF0dXM9JEVYSVRfU1VDQ0VTUwotKwotKyMgTWFrZSBzdXJl IElGUyBoYXMgYSBzZW5zaWJsZSBkZWZhdWx0Ci0rbHRfbmw9JwotKycKLStJRlM9IiAJJGx0X25s IgotKwotK2Rpcm5hbWU9InMsL1teL10qJCwsIgotK2Jhc2VuYW1lPSJzLF4uKi8sLCIKLSsKLSsj IGZ1bmNfZGlybmFtZSBmaWxlIGFwcGVuZCBub25kaXJfcmVwbGFjZW1lbnQKLSsjIENvbXB1dGUg dGhlIGRpcm5hbWUgb2YgRklMRS4gIElmIG5vbmVtcHR5LCBhZGQgQVBQRU5EIHRvIHRoZSByZXN1 bHQsCi0rIyBvdGhlcndpc2Ugc2V0IHJlc3VsdCB0byBOT05ESVJfUkVQTEFDRU1FTlQuCi0rZnVu Y19kaXJuYW1lICgpCi0rewotKyAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PWAkRUNITyAiJHsxfSIg fCAkU0VEICIkZGlybmFtZSJgCi0rICAgIGlmIHRlc3QgIlgkZnVuY19kaXJuYW1lX3Jlc3VsdCIg PSAiWCR7MX0iOyB0aGVuCi0rICAgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHszfSIKLSsgICAg ZWxzZQotKyAgICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0JHsy fSIKLSsgICAgZmkKLSt9ICMgZnVuY19kaXJuYW1lIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRl ZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgotKwotKwotKyMgZnVuY19iYXNlbmFtZSBmaWxlCi0rZnVu Y19iYXNlbmFtZSAoKQotK3sKLSsgICAgZnVuY19iYXNlbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezF9 IiB8ICRTRUQgIiRiYXNlbmFtZSJgCi0rfSAjIGZ1bmNfYmFzZW5hbWUgbWF5IGJlIHJlcGxhY2Vk IGJ5IGV4dGVuZGVkIHNoZWxsIGltcGxlbWVudGF0aW9uCi0rCi0rCi0rIyBmdW5jX2Rpcm5hbWVf YW5kX2Jhc2VuYW1lIGZpbGUgYXBwZW5kIG5vbmRpcl9yZXBsYWNlbWVudAotKyMgcGVyZm9ybSBm dW5jX2Jhc2VuYW1lIGFuZCBmdW5jX2Rpcm5hbWUgaW4gYSBzaW5nbGUgZnVuY3Rpb24KLSsjIGNh bGw6Ci0rIyAgIGRpcm5hbWU6ICBDb21wdXRlIHRoZSBkaXJuYW1lIG9mIEZJTEUuICBJZiBub25l bXB0eSwKLSsjICAgICAgICAgICAgIGFkZCBBUFBFTkQgdG8gdGhlIHJlc3VsdCwgb3RoZXJ3aXNl IHNldCByZXN1bHQKLSsjICAgICAgICAgICAgIHRvIE5PTkRJUl9SRVBMQUNFTUVOVC4KLSsjICAg ICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsjICAg YmFzZW5hbWU6IENvbXB1dGUgZmlsZW5hbWUgb2YgRklMRS4KLSsjICAgICAgICAgICAgIHZhbHVl IHJldHVuZWQgaW4gIiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsjIEltcGxlbWVudGF0aW9uIG11 c3QgYmUga2VwdCBzeW5jaHJvbml6ZWQgd2l0aCBmdW5jX2Rpcm5hbWUKLSsjIGFuZCBmdW5jX2Jh c2VuYW1lLiBGb3IgZWZmaWNpZW5jeSwgd2UgZG8gbm90IGRlbGVnYXRlIHRvCi0rIyB0aG9zZSBm dW5jdGlvbnMgYnV0IGluc3RlYWQgZHVwbGljYXRlIHRoZSBmdW5jdGlvbmFsaXR5IGhlcmUuCi0r ZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFtZSAoKQotK3sKLSsgICAgIyBFeHRyYWN0IHN1YmRpcmVj dG9yeSBmcm9tIHRoZSBhcmd1bWVudC4KLSsgICAgZnVuY19kaXJuYW1lX3Jlc3VsdD1gJEVDSE8g IiR7MX0iIHwgJFNFRCAtZSAiJGRpcm5hbWUiYAotKyAgICBpZiB0ZXN0ICJYJGZ1bmNfZGlybmFt ZV9yZXN1bHQiID0gIlgkezF9IjsgdGhlbgotKyAgICAgIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7 M30iCi0rICAgIGVsc2UKLSsgICAgICBmdW5jX2Rpcm5hbWVfcmVzdWx0PSIkZnVuY19kaXJuYW1l X3Jlc3VsdCR7Mn0iCi0rICAgIGZpCi0rICAgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PWAkRUNITyAi JHsxfSIgfCAkU0VEIC1lICIkYmFzZW5hbWUiYAotK30gIyBmdW5jX2Rpcm5hbWVfYW5kX2Jhc2Vu YW1lIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgotKwot KwotKyMgZnVuY19zdHJpcG5hbWUgcHJlZml4IHN1ZmZpeCBuYW1lCi0rIyBzdHJpcCBQUkVGSVgg YW5kIFNVRkZJWCBvZmYgb2YgTkFNRS4KLSsjIFBSRUZJWCBhbmQgU1VGRklYIG11c3Qgbm90IGNv bnRhaW4gZ2xvYmJpbmcgb3IgcmVnZXggc3BlY2lhbAotKyMgY2hhcmFjdGVycywgaGFzaGVzLCBw ZXJjZW50IHNpZ25zLCBidXQgU1VGRklYIG1heSBjb250YWluIGEgbGVhZGluZwotKyMgZG90IChp biB3aGljaCBjYXNlIHRoYXQgbWF0Y2hlcyBvbmx5IGEgZG90KS4KLSsjIGZ1bmNfc3RyaXBfc3Vm Zml4IHByZWZpeCBuYW1lCi0rZnVuY19zdHJpcG5hbWUgKCkKLSt7Ci0rICAgIGNhc2UgJHsyfSBp bgotKyAgICAgIC4qKSBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9YCRFQ0hPICIkezN9IiB8ICRTRUQg InMlXiR7MX0lJTsgcyVcXFxcJHsyfVwkJSUiYDs7Ci0rICAgICAgKikgIGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdD1gJEVDSE8gIiR7M30iIHwgJFNFRCAicyVeJHsxfSUlOyBzJSR7Mn1cJCUlImA7Owot KyAgICBlc2FjCi0rfSAjIGZ1bmNfc3RyaXBuYW1lIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRl ZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgotKwotKwotKyMgVGhlc2UgU0VEIHNjcmlwdHMgcHJlc3Vw cG9zZSBhbiBhYnNvbHV0ZSBwYXRoIHdpdGggYSB0cmFpbGluZyBzbGFzaC4KLStwYXRoY2FyPSdz LF4vXChbXi9dKlwpLiokLFwxLCcKLStwYXRoY2RyPSdzLF4vW14vXSosLCcKLStyZW1vdmVkb3Rw YXJ0cz0nOmRvdHNsCi0rCQlzQC9cLi9AL0BnCi0rCQl0IGRvdHNsCi0rCQlzLC9cLiQsLywnCi0r Y29sbGFwc2VzbGFzaGVzPSdzQC9cezEsXH1AL0BnJwotK2ZpbmFsc2xhc2g9J3MsLyokLC8sJwot KwotKyMgZnVuY19ub3JtYWxfYWJzcGF0aCBQQVRICi0rIyBSZW1vdmUgZG91YmxlZC11cCBhbmQg dHJhaWxpbmcgc2xhc2hlcywgIi4iIHBhdGggY29tcG9uZW50cywKLSsjIGFuZCBjYW5jZWwgb3V0 IGFueSAiLi4iIHBhdGggY29tcG9uZW50cyBpbiBQQVRIIGFmdGVyIG1ha2luZwotKyMgaXQgYW4g YWJzb2x1dGUgcGF0aC4KLSsjICAgICAgICAgICAgIHZhbHVlIHJldHVybmVkIGluICIkZnVuY19u b3JtYWxfYWJzcGF0aF9yZXN1bHQiCi0rZnVuY19ub3JtYWxfYWJzcGF0aCAoKQotK3sKLSsgICMg U3RhcnQgZnJvbSByb290IGRpciBhbmQgcmVhc3NlbWJsZSB0aGUgcGF0aC4KLSsgIGZ1bmNfbm9y bWFsX2Fic3BhdGhfcmVzdWx0PQotKyAgZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aD0kMQotKyAg ZnVuY19ub3JtYWxfYWJzcGF0aF9hbHRuYW1lc3BhY2U9Ci0rICBjYXNlICRmdW5jX25vcm1hbF9h YnNwYXRoX3RwYXRoIGluCi0rICAgICIiKQotKyAgICAgICMgRW1wdHkgcGF0aCwgdGhhdCBqdXN0 IG1lYW5zICRjd2QuCi0rICAgICAgZnVuY19zdHJpcG5hbWUgJycgJy8nICJgcHdkYCIKLSsgICAg ICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rICAg ICAgcmV0dXJuCi0rICAgIDs7Ci0rICAgICMgVGhlIG5leHQgdGhyZWUgZW50cmllcyBhcmUgdXNl ZCB0byBzcG90IGEgcnVuIG9mIHByZWNpc2VseQotKyAgICAjIHR3byBsZWFkaW5nIHNsYXNoZXMg d2l0aG91dCB1c2luZyBuZWdhdGVkIGNoYXJhY3RlciBjbGFzc2VzOwotKyAgICAjIHdlIHRha2Ug YWR2YW50YWdlIG9mIGNhc2UncyBmaXJzdC1tYXRjaCBiZWhhdmlvdXIuCi0rICAgIC8vLyopCi0r ICAgICAgIyBVbnVzdWFsIGZvcm0gb2YgYWJzb2x1dGUgcGF0aCwgZG8gbm90aGluZy4KLSsgICAg OzsKLSsgICAgLy8qKQotKyAgICAgICMgTm90IG5lY2Vzc2FyaWx5IGFuIG9yZGluYXJ5IHBhdGg7 IFBPU0lYIHJlc2VydmVzIGxlYWRpbmcgJy8vJwotKyAgICAgICMgYW5kIGZvciBleGFtcGxlIEN5 Z3dpbiB1c2VzIGl0IHRvIGFjY2VzcyByZW1vdGUgZmlsZSBzaGFyZXMKLSsgICAgICAjIG92ZXIg Q0lGUy9TTUIsIHNvIHdlIGNvbnNlcnZlIGEgbGVhZGluZyBkb3VibGUgc2xhc2ggaWYgZm91bmQu Ci0rICAgICAgZnVuY19ub3JtYWxfYWJzcGF0aF9hbHRuYW1lc3BhY2U9LwotKyAgICA7OwotKyAg ICAvKikKLSsgICAgICAjIEFic29sdXRlIHBhdGgsIGRvIG5vdGhpbmcuCi0rICAgIDs7Ci0rICAg ICopCi0rICAgICAgIyBSZWxhdGl2ZSBwYXRoLCBwcmVwZW5kICRjd2QuCi0rICAgICAgZnVuY19u b3JtYWxfYWJzcGF0aF90cGF0aD1gcHdkYC8kZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aAotKyAg ICA7OwotKyAgZXNhYwotKyAgIyBDYW5jZWwgb3V0IGFsbCB0aGUgc2ltcGxlIHN0dWZmIHRvIHNh dmUgaXRlcmF0aW9ucy4gIFdlIGFsc28gd2FudAotKyAgIyB0aGUgcGF0aCB0byBlbmQgd2l0aCBh IHNsYXNoIGZvciBlYXNlIG9mIHBhcnNpbmcsIHNvIG1ha2Ugc3VyZQotKyAgIyB0aGVyZSBpcyBv bmUgKGFuZCBvbmx5IG9uZSkgaGVyZS4KLSsgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YCRF Q0hPICIkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKLSsgICAgICAgIC1lICIk cmVtb3ZlZG90cGFydHMiIC1lICIkY29sbGFwc2VzbGFzaGVzIiAtZSAiJGZpbmFsc2xhc2giYAot KyAgd2hpbGUgOjsgZG8KLSsgICAgIyBQcm9jZXNzZWQgaXQgYWxsIHlldD8KLSsgICAgaWYgdGVz dCAiJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGgiID0gLyA7IHRoZW4KLSsgICAgICAjIElmIHdl IGFzY2VuZGVkIHRvIHRoZSByb290IHVzaW5nICIuLiIgdGhlIHJlc3VsdCBtYXkgYmUgZW1wdHkg bm93LgotKyAgICAgIGlmIHRlc3QgLXogIiRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdCIgOyB0 aGVuCi0rICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0vCi0rICAgICAgZmkKLSsg ICAgICBicmVhawotKyAgICBmaQotKyAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Rjb21wb25lbnQ9 YCRFQ0hPICIkZnVuY19ub3JtYWxfYWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKLSsgICAgICAgIC1l ICIkcGF0aGNhciJgCi0rICAgIGZ1bmNfbm9ybWFsX2Fic3BhdGhfdHBhdGg9YCRFQ0hPICIkZnVu Y19ub3JtYWxfYWJzcGF0aF90cGF0aCIgfCAkU0VEIFwKLSsgICAgICAgIC1lICIkcGF0aGNkciJg Ci0rICAgICMgRmlndXJlIG91dCB3aGF0IHRvIGRvIHdpdGggaXQKLSsgICAgY2FzZSAkZnVuY19u b3JtYWxfYWJzcGF0aF90Y29tcG9uZW50IGluCi0rICAgICAgIiIpCi0rICAgICAgICAjIFRyYWls aW5nIGVtcHR5IHBhdGggY29tcG9uZW50LCBpZ25vcmUgaXQuCi0rICAgICAgOzsKLSsgICAgICAu LikKLSsgICAgICAgICMgUGFyZW50IGRpcjsgc3RyaXAgbGFzdCBhc3NlbWJsZWQgY29tcG9uZW50 IGZyb20gcmVzdWx0LgotKyAgICAgICAgZnVuY19kaXJuYW1lICIkZnVuY19ub3JtYWxfYWJzcGF0 aF9yZXN1bHQiCi0rICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdD0kZnVuY19kaXJu YW1lX3Jlc3VsdAotKyAgICAgIDs7Ci0rICAgICAgKikKLSsgICAgICAgICMgQWN0dWFsIHBhdGgg Y29tcG9uZW50LCBhcHBlbmQgaXQuCi0rICAgICAgICBmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3Vs dD0kZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQvJGZ1bmNfbm9ybWFsX2Fic3BhdGhfdGNvbXBv bmVudAotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsgICMgUmVzdG9yZSBsZWFkaW5n IGRvdWJsZS1zbGFzaCBpZiBvbmUgd2FzIGZvdW5kIG9uIGVudHJ5LgotKyAgZnVuY19ub3JtYWxf YWJzcGF0aF9yZXN1bHQ9JGZ1bmNfbm9ybWFsX2Fic3BhdGhfYWx0bmFtZXNwYWNlJGZ1bmNfbm9y bWFsX2Fic3BhdGhfcmVzdWx0Ci0rfQotKwotKyMgZnVuY19yZWxhdGl2ZV9wYXRoIFNSQ0RJUiBE U1RESVIKLSsjIGdlbmVyYXRlcyBhIHJlbGF0aXZlIHBhdGggZnJvbSBTUkNESVIgdG8gRFNURElS LCB3aXRoIGEgdHJhaWxpbmcKLSsjIHNsYXNoIGlmIG5vbi1lbXB0eSwgc3VpdGFibGUgZm9yIGlt bWVkaWF0ZWx5IGFwcGVuZGluZyBhIGZpbGVuYW1lCi0rIyB3aXRob3V0IG5lZWRpbmcgdG8gYXBw ZW5kIGEgc2VwYXJhdG9yLgotKyMgICAgICAgICAgICAgdmFsdWUgcmV0dXJuZWQgaW4gIiRmdW5j X3JlbGF0aXZlX3BhdGhfcmVzdWx0IgotK2Z1bmNfcmVsYXRpdmVfcGF0aCAoKQotK3sKLSsgIGZ1 bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQ9Ci0rICBmdW5jX25vcm1hbF9hYnNwYXRoICIkMSIKLSsg IGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyPSRmdW5jX25vcm1hbF9hYnNwYXRoX3Jlc3VsdAot KyAgZnVuY19ub3JtYWxfYWJzcGF0aCAiJDIiCi0rICBmdW5jX3JlbGF0aXZlX3BhdGhfdGJpbmRp cj0kZnVuY19ub3JtYWxfYWJzcGF0aF9yZXN1bHQKLSsKLSsgICMgQXNjZW5kIHRoZSB0cmVlIHN0 YXJ0aW5nIGZyb20gbGliZGlyCi0rICB3aGlsZSA6OyBkbwotKyAgICAjIGNoZWNrIGlmIHdlIGhh dmUgZm91bmQgYSBwcmVmaXggb2YgYmluZGlyCi0rICAgIGNhc2UgJGZ1bmNfcmVsYXRpdmVfcGF0 aF90YmluZGlyIGluCi0rICAgICAgJGZ1bmNfcmVsYXRpdmVfcGF0aF90bGliZGlyKQotKyAgICAg ICAgIyBmb3VuZCBhbiBleGFjdCBtYXRjaAotKyAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Rj YW5jZWxsZWQ9Ci0rICAgICAgICBicmVhawotKyAgICAgICAgOzsKLSsgICAgICAkZnVuY19yZWxh dGl2ZV9wYXRoX3RsaWJkaXIqKQotKyAgICAgICAgIyBmb3VuZCBhIG1hdGNoaW5nIHByZWZpeAot KyAgICAgICAgZnVuY19zdHJpcG5hbWUgIiRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRpciIgJycg IiRmdW5jX3JlbGF0aXZlX3BhdGhfdGJpbmRpciIKLSsgICAgICAgIGZ1bmNfcmVsYXRpdmVfcGF0 aF90Y2FuY2VsbGVkPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsgICAgICAgIGlmIHRlc3QgLXog IiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0IjsgdGhlbgotKyAgICAgICAgICBmdW5jX3JlbGF0 aXZlX3BhdGhfcmVzdWx0PS4KLSsgICAgICAgIGZpCi0rICAgICAgICBicmVhawotKyAgICAgICAg OzsKLSsgICAgICAqKQotKyAgICAgICAgZnVuY19kaXJuYW1lICRmdW5jX3JlbGF0aXZlX3BhdGhf dGxpYmRpcgotKyAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3RsaWJkaXI9JHtmdW5jX2Rpcm5h bWVfcmVzdWx0fQotKyAgICAgICAgaWYgdGVzdCAieCRmdW5jX3JlbGF0aXZlX3BhdGhfdGxpYmRp ciIgPSB4IDsgdGhlbgotKyAgICAgICAgICAjIEhhdmUgdG8gZGVzY2VuZCBhbGwgdGhlIHdheSB0 byB0aGUgcm9vdCEKLSsgICAgICAgICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0uLi8kZnVu Y19yZWxhdGl2ZV9wYXRoX3Jlc3VsdAotKyAgICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfdGNh bmNlbGxlZD0kZnVuY19yZWxhdGl2ZV9wYXRoX3RiaW5kaXIKLSsgICAgICAgICAgYnJlYWsKLSsg ICAgICAgIGZpCi0rICAgICAgICBmdW5jX3JlbGF0aXZlX3BhdGhfcmVzdWx0PS4uLyRmdW5jX3Jl bGF0aXZlX3BhdGhfcmVzdWx0Ci0rICAgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0r ICAjIE5vdyBjYWxjdWxhdGUgcGF0aDsgdGFrZSBjYXJlIHRvIGF2b2lkIGRvdWJsaW5nLXVwIHNs YXNoZXMuCi0rICBmdW5jX3N0cmlwbmFtZSAnJyAnLycgIiRmdW5jX3JlbGF0aXZlX3BhdGhfcmVz dWx0IgotKyAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0 Ci0rICBmdW5jX3N0cmlwbmFtZSAnLycgJy8nICIkZnVuY19yZWxhdGl2ZV9wYXRoX3RjYW5jZWxs ZWQiCi0rICBpZiB0ZXN0ICJ4JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIgIT0geCA7IHRoZW4KLSsg ICAgZnVuY19yZWxhdGl2ZV9wYXRoX3Jlc3VsdD0ke2Z1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHR9 LyR7ZnVuY19zdHJpcG5hbWVfcmVzdWx0fQotKyAgZmkKLSsKLSsgICMgTm9ybWFsaXNhdGlvbi4g SWYgYmluZGlyIGlzIGxpYmRpciwgcmV0dXJuIGVtcHR5IHN0cmluZywKLSsgICMgZWxzZSByZWxh dGl2ZSBwYXRoIGVuZGluZyB3aXRoIGEgc2xhc2g7IGVpdGhlciB3YXksIHRhcmdldAotKyAgIyBm aWxlIG5hbWUgY2FuIGJlIGRpcmVjdGx5IGFwcGVuZGVkLgotKyAgaWYgdGVzdCAhIC16ICIkZnVu Y19yZWxhdGl2ZV9wYXRoX3Jlc3VsdCI7IHRoZW4KLSsgICAgZnVuY19zdHJpcG5hbWUgJy4vJyAn JyAiJGZ1bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQvIgotKyAgICBmdW5jX3JlbGF0aXZlX3BhdGhf cmVzdWx0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsgIGZpCi0rfQotKwotKyMgVGhlIG5hbWUg b2YgdGhpcyBwcm9ncmFtOgotK2Z1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRwcm9ncGF0aCIK LStwcm9nbmFtZT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKLSsKLSsjIE1ha2Ugc3VyZSB3ZSBoYXZl IGFuIGFic29sdXRlIHBhdGggZm9yIHJlZXhlY3V0aW9uOgotK2Nhc2UgJHByb2dwYXRoIGluCi0r ICBbXFwvXSp8W0EtWmEtel06XFwqKSA7OwotKyAgKltcXC9dKikKLSsgICAgIHByb2dkaXI9JGZ1 bmNfZGlybmFtZV9yZXN1bHQKLSsgICAgIHByb2dkaXI9YGNkICIkcHJvZ2RpciIgJiYgcHdkYAot KyAgICAgcHJvZ3BhdGg9IiRwcm9nZGlyLyRwcm9nbmFtZSIKLSsgICAgIDs7Ci0rICAqKQotKyAg ICAgc2F2ZV9JRlM9IiRJRlMiCi0rICAgICBJRlM9OgotKyAgICAgZm9yIHByb2dkaXIgaW4gJFBB VEg7IGRvCi0rICAgICAgIElGUz0iJHNhdmVfSUZTIgotKyAgICAgICB0ZXN0IC14ICIkcHJvZ2Rp ci8kcHJvZ25hbWUiICYmIGJyZWFrCi0rICAgICBkb25lCi0rICAgICBJRlM9IiRzYXZlX0lGUyIK LSsgICAgIHRlc3QgLW4gIiRwcm9nZGlyIiB8fCBwcm9nZGlyPWBwd2RgCi0rICAgICBwcm9ncGF0 aD0iJHByb2dkaXIvJHByb2duYW1lIgotKyAgICAgOzsKLStlc2FjCi0rCi0rIyBTZWQgc3Vic3Rp dHV0aW9uIHRoYXQgaGVscHMgdXMgZG8gcm9idXN0IHF1b3RpbmcuICBJdCBiYWNrc2xhc2hpZmll cwotKyMgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhpbiBkb3VibGUt cXVvdGVkIHN0cmluZ3MuCi0rWHNlZD0iJHtTRUR9IicgLWUgMXMvXlgvLycKLStzZWRfcXVvdGVf c3Vic3Q9J3MvXChbYCIkXFxdXCkvXFxcMS9nJwotKwotKyMgU2FtZSBhcyBhYm92ZSwgYnV0IGRv IG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgotK2RvdWJsZV9xdW90ZV9zdWJzdD0ncy9c KFsiYFxcXVwpL1xcXDEvZycKLSsKLSsjIFNlZCBzdWJzdGl0dXRpb24gdGhhdCB0dXJucyBhIHN0 cmluZyBpbnRvIGEgcmVnZXggbWF0Y2hpbmcgZm9yIHRoZQotKyMgc3RyaW5nIGxpdGVyYWxseS4K LStzZWRfbWFrZV9saXRlcmFsX3JlZ2V4PSdzLFtdLlteJFxcKlwvXSxcXCYsZycKLSsKLSsjIFNl ZCBzdWJzdGl0dXRpb24gdGhhdCBjb252ZXJ0cyBhIHczMiBmaWxlIG5hbWUgb3IgcGF0aAotKyMg d2hpY2ggY29udGFpbnMgZm9yd2FyZCBzbGFzaGVzLCBpbnRvIG9uZSB0aGF0IGNvbnRhaW5zCi0r IyAoZXNjYXBlZCkgYmFja3NsYXNoZXMuICBBIHZlcnkgbmFpdmUgaW1wbGVtZW50YXRpb24uCi0r bHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeT0nc3xcXFxcKnxcXHxnO3N8L3xcXHxnO3N8XFx8XFxc XHxnJwotKwotKyMgUmUtYFwnIHBhcmFtZXRlciBleHBhbnNpb25zIGluIG91dHB1dCBvZiBkb3Vi bGVfcXVvdGVfc3Vic3QgdGhhdCB3ZXJlCi0rIyBgXCctZWQgaW4gaW5wdXQgdG8gdGhlIHNhbWUu ICBJZiBhbiBvZGQgbnVtYmVyIG9mIGBcJyBwcmVjZWRlZCBhICckJwotKyMgaW4gaW5wdXQgdG8g ZG91YmxlX3F1b3RlX3N1YnN0LCB0aGF0ICckJyB3YXMgcHJvdGVjdGVkIGZyb20gZXhwYW5zaW9u LgotKyMgU2luY2UgZWFjaCBpbnB1dCBgXCcgaXMgbm93IHR3byBgXCdzLCBsb29rIGZvciBhbnkg bnVtYmVyIG9mIHJ1bnMgb2YKLSsjIGZvdXIgYFwncyBmb2xsb3dlZCBieSB0d28gYFwncyBhbmQg dGhlbiBhICckJy4gIGBcJyB0aGF0ICckJy4KLSticz0nXFwnCi0rYnMyPSdcXFxcJwotK2JzND0n XFxcXFxcXFwnCi0rZG9sbGFyPSdcJCcKLStzZWRfZG91YmxlX2JhY2tzbGFzaD0iXAotKyAgcy8k YnM0LyZcXAotKy9nCi0rICBzL14kYnMyJGRvbGxhci8kYnMmLwotKyAgcy9cXChbXiRic11cXCkk YnMyJGRvbGxhci9cXDEkYnMyJGJzJGRvbGxhci9nCi0rICBzL1xuLy9nIgotKwotKyMgU3RhbmRh cmQgb3B0aW9uczoKLStvcHRfZHJ5X3J1bj1mYWxzZQotK29wdF9oZWxwPWZhbHNlCi0rb3B0X3F1 aWV0PWZhbHNlCi0rb3B0X3ZlcmJvc2U9ZmFsc2UKLStvcHRfd2FybmluZz06Ci0rCi0rIyBmdW5j X2VjaG8gYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlLCBhbG9u ZyB3aXRoIHRoZSBjdXJyZW50IG1vZGUKLSsjIG5hbWUgaWYgaXQgaGFzIGJlZW4gc2V0IHlldC4K LStmdW5jX2VjaG8gKCkKLSt7Ci0rICAgICRFQ0hPICIkcHJvZ25hbWU6ICR7b3B0X21vZGUrJG9w dF9tb2RlOiB9JCoiCi0rfQotKwotKyMgZnVuY192ZXJib3NlIGFyZy4uLgotKyMgRWNobyBwcm9n cmFtIG5hbWUgcHJlZml4ZWQgbWVzc2FnZSBpbiB2ZXJib3NlIG1vZGUgb25seS4KLStmdW5jX3Zl cmJvc2UgKCkKLSt7Ci0rICAgICRvcHRfdmVyYm9zZSAmJiBmdW5jX2VjaG8gJHsxKyIkQCJ9Ci0r Ci0rICAgICMgQSBidWcgaW4gYmFzaCBoYWx0cyB0aGUgc2NyaXB0IGlmIHRoZSBsYXN0IGxpbmUg b2YgYSBmdW5jdGlvbgotKyAgICAjIGZhaWxzIHdoZW4gc2V0IC1lIGlzIGluIGZvcmNlLCBzbyB3 ZSBuZWVkIGFub3RoZXIgY29tbWFuZCB0bwotKyAgICAjIHdvcmsgYXJvdW5kIHRoYXQ6Ci0rICAg IDoKLSt9Ci0rCi0rIyBmdW5jX2VjaG9fYWxsIGFyZy4uLgotKyMgSW52b2tlICRFQ0hPIHdpdGgg YWxsIGFyZ3MsIHNwYWNlLXNlcGFyYXRlZC4KLStmdW5jX2VjaG9fYWxsICgpCi0rewotKyAgICAk RUNITyAiJCoiCi0rfQotKwotKyMgZnVuY19lcnJvciBhcmcuLi4KLSsjIEVjaG8gcHJvZ3JhbSBu YW1lIHByZWZpeGVkIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCi0rZnVuY19lcnJvciAoKQot K3sKLSsgICAgJEVDSE8gIiRwcm9nbmFtZTogJHtvcHRfbW9kZSskb3B0X21vZGU6IH0iJHsxKyIk QCJ9IDE+JjIKLSt9Ci0rCi0rIyBmdW5jX3dhcm5pbmcgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0g bmFtZSBwcmVmaXhlZCB3YXJuaW5nIG1lc3NhZ2UgdG8gc3RhbmRhcmQgZXJyb3IuCi0rZnVuY193 YXJuaW5nICgpCi0rewotKyAgICAkb3B0X3dhcm5pbmcgJiYgJEVDSE8gIiRwcm9nbmFtZTogJHtv cHRfbW9kZSskb3B0X21vZGU6IH13YXJuaW5nOiAiJHsxKyIkQCJ9IDE+JjIKLSsKLSsgICAgIyBi YXNoIGJ1ZyBhZ2FpbjoKLSsgICAgOgotK30KLSsKLSsjIGZ1bmNfZmF0YWxfZXJyb3IgYXJnLi4u Ci0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9y LCBhbmQgZXhpdC4KLStmdW5jX2ZhdGFsX2Vycm9yICgpCi0rewotKyAgICBmdW5jX2Vycm9yICR7 MSsiJEAifQotKyAgICBleGl0ICRFWElUX0ZBSUxVUkUKLSt9Ci0rCi0rIyBmdW5jX2ZhdGFsX2hl bHAgYXJnLi4uCi0rIyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5k YXJkIGVycm9yLCBmb2xsb3dlZCBieQotKyMgYSBoZWxwIGhpbnQsIGFuZCBleGl0LgotK2Z1bmNf ZmF0YWxfaGVscCAoKQotK3sKLSsgICAgZnVuY19lcnJvciAkezErIiRAIn0KLSsgICAgZnVuY19m YXRhbF9lcnJvciAiJGhlbHAiCi0rfQotK2hlbHA9IlRyeSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZv ciBtb3JlIGluZm9ybWF0aW9uLiIgICMjIGRlZmF1bHQKLSsKLSsKLSsjIGZ1bmNfZ3JlcCBleHBy ZXNzaW9uIGZpbGVuYW1lCi0rIyBDaGVjayB3aGV0aGVyIEVYUFJFU1NJT04gbWF0Y2hlcyBhbnkg bGluZSBvZiBGSUxFTkFNRSwgd2l0aG91dCBvdXRwdXQuCi0rZnVuY19ncmVwICgpCi0rewotKyAg ICAkR1JFUCAiJDEiICIkMiIgPi9kZXYvbnVsbCAyPiYxCi0rfQotKwotKwotKyMgZnVuY19ta2Rp cl9wIGRpcmVjdG9yeS1wYXRoCi0rIyBNYWtlIHN1cmUgdGhlIGVudGlyZSBwYXRoIHRvIERJUkVD VE9SWS1QQVRIIGlzIGF2YWlsYWJsZS4KLStmdW5jX21rZGlyX3AgKCkKLSt7Ci0rICAgIG15X2Rp cmVjdG9yeV9wYXRoPSIkMSIKLSsgICAgbXlfZGlyX2xpc3Q9Ci0rCi0rICAgIGlmIHRlc3QgLW4g IiRteV9kaXJlY3RvcnlfcGF0aCIgJiYgdGVzdCAiJG9wdF9kcnlfcnVuIiAhPSAiOiI7IHRoZW4K LSsKLSsgICAgICAjIFByb3RlY3QgZGlyZWN0b3J5IG5hbWVzIHN0YXJ0aW5nIHdpdGggYC0nCi0r ICAgICAgY2FzZSAkbXlfZGlyZWN0b3J5X3BhdGggaW4KLSsgICAgICAgIC0qKSBteV9kaXJlY3Rv cnlfcGF0aD0iLi8kbXlfZGlyZWN0b3J5X3BhdGgiIDs7Ci0rICAgICAgZXNhYwotKwotKyAgICAg ICMgV2hpbGUgc29tZSBwb3J0aW9uIG9mIERJUiBkb2VzIG5vdCB5ZXQgZXhpc3QuLi4KLSsgICAg ICB3aGlsZSB0ZXN0ICEgLWQgIiRteV9kaXJlY3RvcnlfcGF0aCI7IGRvCi0rICAgICAgICAjIC4u Lm1ha2UgYSBsaXN0IGluIHRvcG1vc3QgZmlyc3Qgb3JkZXIuICBVc2UgYSBjb2xvbiBkZWxpbWl0 ZWQKLSsJIyBsaXN0IGluY2FzZSBzb21lIHBvcnRpb24gb2YgcGF0aCBjb250YWlucyB3aGl0ZXNw YWNlLgotKyAgICAgICAgbXlfZGlyX2xpc3Q9IiRteV9kaXJlY3RvcnlfcGF0aDokbXlfZGlyX2xp c3QiCi0rCi0rICAgICAgICAjIElmIHRoZSBsYXN0IHBvcnRpb24gYWRkZWQgaGFzIG5vIHNsYXNo IGluIGl0LCB0aGUgbGlzdCBpcyBkb25lCi0rICAgICAgICBjYXNlICRteV9kaXJlY3RvcnlfcGF0 aCBpbiAqLyopIDs7ICopIGJyZWFrIDs7IGVzYWMKLSsKLSsgICAgICAgICMgLi4ub3RoZXJ3aXNl IHRocm93IGF3YXkgdGhlIGNoaWxkIGRpcmVjdG9yeSBhbmQgbG9vcAotKyAgICAgICAgbXlfZGly ZWN0b3J5X3BhdGg9YCRFQ0hPICIkbXlfZGlyZWN0b3J5X3BhdGgiIHwgJFNFRCAtZSAiJGRpcm5h bWUiYAotKyAgICAgIGRvbmUKLSsgICAgICBteV9kaXJfbGlzdD1gJEVDSE8gIiRteV9kaXJfbGlz dCIgfCAkU0VEICdzLDoqJCwsJ2AKLSsKLSsgICAgICBzYXZlX21rZGlyX3BfSUZTPSIkSUZTIjsg SUZTPSc6JwotKyAgICAgIGZvciBteV9kaXIgaW4gJG15X2Rpcl9saXN0OyBkbwotKwlJRlM9IiRz YXZlX21rZGlyX3BfSUZTIgotKyAgICAgICAgIyBta2RpciBjYW4gZmFpbCB3aXRoIGEgYEZpbGUg ZXhpc3QnIGVycm9yIGlmIHR3byBwcm9jZXNzZXMKLSsgICAgICAgICMgdHJ5IHRvIGNyZWF0ZSBv bmUgb2YgdGhlIGRpcmVjdG9yaWVzIGNvbmN1cnJlbnRseS4gIERvbid0Ci0rICAgICAgICAjIHN0 b3AgaW4gdGhhdCBjYXNlIQotKyAgICAgICAgJE1LRElSICIkbXlfZGlyIiAyPi9kZXYvbnVsbCB8 fCA6Ci0rICAgICAgZG9uZQotKyAgICAgIElGUz0iJHNhdmVfbWtkaXJfcF9JRlMiCi0rCi0rICAg ICAgIyBCYWlsIG91dCBpZiB3ZSAob3Igc29tZSBvdGhlciBwcm9jZXNzKSBmYWlsZWQgdG8gY3Jl YXRlIGEgZGlyZWN0b3J5LgotKyAgICAgIHRlc3QgLWQgIiRteV9kaXJlY3RvcnlfcGF0aCIgfHwg XAotKyAgICAgICAgZnVuY19mYXRhbF9lcnJvciAiRmFpbGVkIHRvIGNyZWF0ZSBcYCQxJyIKLSsg ICAgZmkKLSt9Ci0rCi0rCi0rIyBmdW5jX21rdGVtcGRpciBbc3RyaW5nXQotKyMgTWFrZSBhIHRl bXBvcmFyeSBkaXJlY3RvcnkgdGhhdCB3b24ndCBjbGFzaCB3aXRoIG90aGVyIHJ1bm5pbmcKLSsj IGxpYnRvb2wgcHJvY2Vzc2VzLCBhbmQgYXZvaWRzIHJhY2UgY29uZGl0aW9ucyBpZiBwb3NzaWJs ZS4gIElmCi0rIyBnaXZlbiwgU1RSSU5HIGlzIHRoZSBiYXNlbmFtZSBmb3IgdGhhdCBkaXJlY3Rv cnkuCi0rZnVuY19ta3RlbXBkaXIgKCkKLSt7Ci0rICAgIG15X3RlbXBsYXRlPSIke1RNUERJUi0v dG1wfS8kezEtJHByb2duYW1lfSIKLSsKLSsgICAgaWYgdGVzdCAiJG9wdF9kcnlfcnVuIiA9ICI6 IjsgdGhlbgotKyAgICAgICMgUmV0dXJuIGEgZGlyZWN0b3J5IG5hbWUsIGJ1dCBkb24ndCBjcmVh dGUgaXQgaW4gZHJ5LXJ1biBtb2RlCi0rICAgICAgbXlfdG1wZGlyPSIke215X3RlbXBsYXRlfS0k JCIKLSsgICAgZWxzZQotKwotKyAgICAgICMgSWYgbWt0ZW1wIHdvcmtzLCB1c2UgdGhhdCBmaXJz dCBhbmQgZm9yZW1vc3QKLSsgICAgICBteV90bXBkaXI9YG1rdGVtcCAtZCAiJHtteV90ZW1wbGF0 ZX0tWFhYWFhYWFgiIDI+L2Rldi9udWxsYAotKwotKyAgICAgIGlmIHRlc3QgISAtZCAiJG15X3Rt cGRpciI7IHRoZW4KLSsgICAgICAgICMgRmFpbGluZyB0aGF0LCBhdCBsZWFzdCB0cnkgYW5kIHVz ZSAkUkFORE9NIHRvIGF2b2lkIGEgcmFjZQotKyAgICAgICAgbXlfdG1wZGlyPSIke215X3RlbXBs YXRlfS0ke1JBTkRPTS0wfSQkIgotKwotKyAgICAgICAgc2F2ZV9ta3RlbXBkaXJfdW1hc2s9YHVt YXNrYAotKyAgICAgICAgdW1hc2sgMDA3NwotKyAgICAgICAgJE1LRElSICIkbXlfdG1wZGlyIgot KyAgICAgICAgdW1hc2sgJHNhdmVfbWt0ZW1wZGlyX3VtYXNrCi0rICAgICAgZmkKLSsKLSsgICAg ICAjIElmIHdlJ3JlIG5vdCBpbiBkcnktcnVuIG1vZGUsIGJvbWIgb3V0IG9uIGZhaWx1cmUKLSsg ICAgICB0ZXN0IC1kICIkbXlfdG1wZGlyIiB8fCBcCi0rICAgICAgICBmdW5jX2ZhdGFsX2Vycm9y ICJjYW5ub3QgY3JlYXRlIHRlbXBvcmFyeSBkaXJlY3RvcnkgXGAkbXlfdG1wZGlyJyIKLSsgICAg ZmkKLSsKLSsgICAgJEVDSE8gIiRteV90bXBkaXIiCi0rfQotKwotKwotKyMgZnVuY19xdW90ZV9m b3JfZXZhbCBhcmcKLSsjIEFlc3RoZXRpY2FsbHkgcXVvdGUgQVJHIHRvIGJlIGV2YWxlZCBsYXRl ci4KLSsjIFRoaXMgZnVuY3Rpb24gcmV0dXJucyB0d28gdmFsdWVzOiBGVU5DX1FVT1RFX0ZPUl9F VkFMX1JFU1VMVAotKyMgaXMgZG91YmxlLXF1b3RlZCwgc3VpdGFibGUgZm9yIGEgc3Vic2VxdWVu dCBldmFsLCB3aGVyZWFzCi0rIyBGVU5DX1FVT1RFX0ZPUl9FVkFMX1VOUVVPVEVEX1JFU1VMVCBo YXMgbWVyZWx5IGFsbCBjaGFyYWN0ZXJzCi0rIyB3aGljaCBhcmUgc3RpbGwgYWN0aXZlIHdpdGhp biBkb3VibGUgcXVvdGVzIGJhY2tzbGFzaGlmaWVkLgotK2Z1bmNfcXVvdGVfZm9yX2V2YWwgKCkK LSt7Ci0rICAgIGNhc2UgJDEgaW4KLSsgICAgICAqW1xcXGBcIlwkXSopCi0rCWZ1bmNfcXVvdGVf Zm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0PWAkRUNITyAiJDEiIHwgJFNFRCAiJHNlZF9xdW90ZV9z dWJzdCJgIDs7Ci0rICAgICAgKikKLSsgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90 ZWRfcmVzdWx0PSIkMSIgOzsKLSsgICAgZXNhYwotKwotKyAgICBjYXNlICRmdW5jX3F1b3RlX2Zv cl9ldmFsX3VucXVvdGVkX3Jlc3VsdCBpbgotKyAgICAgICMgRG91YmxlLXF1b3RlIGFyZ3MgY29u dGFpbmluZyBzaGVsbCBtZXRhY2hhcmFjdGVycyB0byBkZWxheQotKyAgICAgICMgd29yZCBzcGxp dHRpbmcsIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGFuZCBhbmQgdmFyaWFibGUKLSsgICAgICAjIGV4 cGFuc2lvbiBmb3IgYSBzdWJzZXF1ZW50IGV2YWwuCi0rICAgICAgIyBNYW55IEJvdXJuZSBzaGVs bHMgY2Fubm90IGhhbmRsZSBjbG9zZSBicmFja2V0cyBjb3JyZWN0bHkKLSsgICAgICAjIGluIHNj YW4gc2V0cywgc28gd2Ugc3BlY2lmeSBpdCBzZXBhcmF0ZWx5LgotKyAgICAgICpbXFtcflwjXF5c JlwqXChcKVx7XH1cfFw7XDxcPlw/XCdcIFwJXSp8Kl0qfCIiKQotKyAgICAgICAgZnVuY19xdW90 ZV9mb3JfZXZhbF9yZXN1bHQ9IlwiJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0 XCIiCi0rICAgICAgICA7OwotKyAgICAgICopCi0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFs X3Jlc3VsdD0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfdW5xdW90ZWRfcmVzdWx0IgotKyAgICBlc2Fj Ci0rfQotKwotKwotKyMgZnVuY19xdW90ZV9mb3JfZXhwYW5kIGFyZwotKyMgQWVzdGhldGljYWxs eSBxdW90ZSBBUkcgdG8gYmUgZXZhbGVkIGxhdGVyOyBzYW1lIGFzIGFib3ZlLAotKyMgYnV0IGRv IG5vdCBxdW90ZSB2YXJpYWJsZSByZWZlcmVuY2VzLgotK2Z1bmNfcXVvdGVfZm9yX2V4cGFuZCAo KQotK3sKLSsgICAgY2FzZSAkMSBpbgotKyAgICAgICpbXFxcYFwiXSopCi0rCW15X2FyZz1gJEVD SE8gIiQxIiB8ICRTRUQgXAotKwkgICAgLWUgIiRkb3VibGVfcXVvdGVfc3Vic3QiIC1lICIkc2Vk X2RvdWJsZV9iYWNrc2xhc2giYCA7OwotKyAgICAgICopCi0rICAgICAgICBteV9hcmc9IiQxIiA7 OwotKyAgICBlc2FjCi0rCi0rICAgIGNhc2UgJG15X2FyZyBpbgotKyAgICAgICMgRG91YmxlLXF1 b3RlIGFyZ3MgY29udGFpbmluZyBzaGVsbCBtZXRhY2hhcmFjdGVycyB0byBkZWxheQotKyAgICAg ICMgd29yZCBzcGxpdHRpbmcgYW5kIGNvbW1hbmQgc3Vic3RpdHV0aW9uIGZvciBhIHN1YnNlcXVl bnQgZXZhbC4KLSsgICAgICAjIE1hbnkgQm91cm5lIHNoZWxscyBjYW5ub3QgaGFuZGxlIGNsb3Nl IGJyYWNrZXRzIGNvcnJlY3RseQotKyAgICAgICMgaW4gc2NhbiBzZXRzLCBzbyB3ZSBzcGVjaWZ5 IGl0IHNlcGFyYXRlbHkuCi0rICAgICAgKltcW1x+XCNcXlwmXCpcKFwpXHtcfVx8XDtcPFw+XD9c J1wgXAldKnwqXSp8IiIpCi0rICAgICAgICBteV9hcmc9IlwiJG15X2FyZ1wiIgotKyAgICAgICAg OzsKLSsgICAgZXNhYwotKwotKyAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0PSIkbXlf YXJnIgotK30KLSsKLSsKLSsjIGZ1bmNfc2hvd19ldmFsIGNtZCBbZmFpbF9leHBdCi0rIyBVbmxl c3Mgb3B0X3NpbGVudCBpcyB0cnVlLCB0aGVuIG91dHB1dCBDTUQuICBUaGVuLCBpZiBvcHRfZHJ5 cnVuIGlzCi0rIyBub3QgdHJ1ZSwgZXZhbHVhdGUgQ01ELiAgSWYgdGhlIGV2YWx1YXRpb24gb2Yg Q01EIGZhaWxzLCBhbmQgRkFJTF9FWFAKLSsjIGlzIGdpdmVuLCB0aGVuIGV2YWx1YXRlIGl0Lgot K2Z1bmNfc2hvd19ldmFsICgpCi0rewotKyAgICBteV9jbWQ9IiQxIgotKyAgICBteV9mYWlsX2V4 cD0iJHsyLTp9IgotKwotKyAgICAke29wdF9zaWxlbnQtZmFsc2V9IHx8IHsKLSsgICAgICBmdW5j X3F1b3RlX2Zvcl9leHBhbmQgIiRteV9jbWQiCi0rICAgICAgZXZhbCAiZnVuY19lY2hvICRmdW5j X3F1b3RlX2Zvcl9leHBhbmRfcmVzdWx0IgotKyAgICB9Ci0rCi0rICAgIGlmICR7b3B0X2RyeV9y dW4tZmFsc2V9OyB0aGVuIDo7IGVsc2UKLSsgICAgICBldmFsICIkbXlfY21kIgotKyAgICAgIG15 X3N0YXR1cz0kPwotKyAgICAgIGlmIHRlc3QgIiRteV9zdGF0dXMiIC1lcSAwOyB0aGVuIDo7IGVs c2UKLSsJZXZhbCAiKGV4aXQgJG15X3N0YXR1cyk7ICRteV9mYWlsX2V4cCIKLSsgICAgICBmaQot KyAgICBmaQotK30KLSsKLSsKLSsjIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSBjbWQgW2ZhaWxfZXhw XQotKyMgVW5sZXNzIG9wdF9zaWxlbnQgaXMgdHJ1ZSwgdGhlbiBvdXRwdXQgQ01ELiAgVGhlbiwg aWYgb3B0X2RyeXJ1biBpcwotKyMgbm90IHRydWUsIGV2YWx1YXRlIENNRC4gIElmIHRoZSBldmFs dWF0aW9uIG9mIENNRCBmYWlscywgYW5kIEZBSUxfRVhQCi0rIyBpcyBnaXZlbiwgdGhlbiBldmFs dWF0ZSBpdC4gIFVzZSB0aGUgc2F2ZWQgbG9jYWxlIGZvciBldmFsdWF0aW9uLgotK2Z1bmNfc2hv d19ldmFsX2xvY2FsZSAoKQotK3sKLSsgICAgbXlfY21kPSIkMSIKLSsgICAgbXlfZmFpbF9leHA9 IiR7Mi06fSIKLSsKLSsgICAgJHtvcHRfc2lsZW50LWZhbHNlfSB8fCB7Ci0rICAgICAgZnVuY19x dW90ZV9mb3JfZXhwYW5kICIkbXlfY21kIgotKyAgICAgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19x dW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIKLSsgICAgfQotKwotKyAgICBpZiAke29wdF9kcnlfcnVu LWZhbHNlfTsgdGhlbiA6OyBlbHNlCi0rICAgICAgZXZhbCAiJGx0X3VzZXJfbG9jYWxlCi0rCSAg ICAkbXlfY21kIgotKyAgICAgIG15X3N0YXR1cz0kPwotKyAgICAgIGV2YWwgIiRsdF9zYWZlX2xv Y2FsZSIKLSsgICAgICBpZiB0ZXN0ICIkbXlfc3RhdHVzIiAtZXEgMDsgdGhlbiA6OyBlbHNlCi0r CWV2YWwgIihleGl0ICRteV9zdGF0dXMpOyAkbXlfZmFpbF9leHAiCi0rICAgICAgZmkKLSsgICAg ZmkKLSt9Ci0rCi0rIyBmdW5jX3RyX3NoCi0rIyBUdXJuICQxIGludG8gYSBzdHJpbmcgc3VpdGFi bGUgZm9yIGEgc2hlbGwgdmFyaWFibGUgbmFtZS4KLSsjIFJlc3VsdCBpcyBzdG9yZWQgaW4gJGZ1 bmNfdHJfc2hfcmVzdWx0LiAgQWxsIGNoYXJhY3RlcnMKLSsjIG5vdCBpbiB0aGUgc2V0IGEtekEt WjAtOV8gYXJlIHJlcGxhY2VkIHdpdGggJ18nLiBGdXJ0aGVyLAotKyMgaWYgJDEgYmVnaW5zIHdp dGggYSBkaWdpdCwgYSAnXycgaXMgcHJlcGVuZGVkIGFzIHdlbGwuCi0rZnVuY190cl9zaCAoKQot K3sKLSsgIGNhc2UgJDEgaW4KLSsgIFswLTldKiB8ICpbIWEtekEtWjAtOV9dKikKLSsgICAgZnVu Y190cl9zaF9yZXN1bHQ9YCRFQ0hPICIkMSIgfCAkU0VEICdzL15cKFswLTldXCkvX1wxLzsgcy9b XmEtekEtWjAtOV9dL18vZydgCi0rICAgIDs7Ci0rICAqICkKLSsgICAgZnVuY190cl9zaF9yZXN1 bHQ9JDEKLSsgICAgOzsKLSsgIGVzYWMKLSt9Ci0rCi0rCi0rIyBmdW5jX3ZlcnNpb24KLSsjIEVj aG8gdmVyc2lvbiBtZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KLStmdW5jX3Zl cnNpb24gKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsKLSsgICAgJFNFRCAtbiAnLyhDKS8hYiBn bwotKwk6bW9yZQotKwkvXC4vIXsKLSsJICBOCi0rCSAgcy9cbiMgLyAvCi0rCSAgYiBtb3JlCi0r CX0KLSsJOmdvCi0rCS9eIyAnJFBST0dSQU0nIChHTlUgLywvIyB3YXJyYW50eTsgLyB7Ci0rICAg ICAgICBzL14jIC8vCi0rCXMvXiMgKiQvLwotKyAgICAgICAgcy9cKChDKVwpWyAwLTksLV0qXCgg WzEtOV1bMC05XSpcKS9cMVwyLwotKyAgICAgICAgcAotKyAgICAgfScgPCAiJHByb2dwYXRoIgot KyAgICAgZXhpdCAkPwotK30KLSsKLSsjIGZ1bmNfdXNhZ2UKLSsjIEVjaG8gc2hvcnQgaGVscCBt ZXNzYWdlIHRvIHN0YW5kYXJkIG91dHB1dCBhbmQgZXhpdC4KLStmdW5jX3VzYWdlICgpCi0rewot KyAgICAkb3B0X2RlYnVnCi0rCi0rICAgICRTRUQgLW4gJy9eIyBVc2FnZTovLC9eIyAgKi4qLS1o ZWxwLyB7Ci0rICAgICAgICBzL14jIC8vCi0rCXMvXiMgKiQvLwotKwlzL1wkcHJvZ25hbWUvJyRw cm9nbmFtZScvCi0rCXAKLSsgICAgfScgPCAiJHByb2dwYXRoIgotKyAgICBlY2hvCi0rICAgICRF Q0hPICJydW4gXGAkcHJvZ25hbWUgLS1oZWxwIHwgbW9yZScgZm9yIGZ1bGwgdXNhZ2UiCi0rICAg IGV4aXQgJD8KLSt9Ci0rCi0rIyBmdW5jX2hlbHAgW05PRVhJVF0KLSsjIEVjaG8gbG9uZyBoZWxw IG1lc3NhZ2UgdG8gc3RhbmRhcmQgb3V0cHV0IGFuZCBleGl0LAotKyMgdW5sZXNzICdub2V4aXQn IGlzIHBhc3NlZCBhcyBhcmd1bWVudC4KLStmdW5jX2hlbHAgKCkKLSt7Ci0rICAgICRvcHRfZGVi dWcKLSsKLSsgICAgJFNFRCAtbiAnL14jIFVzYWdlOi8sLyMgUmVwb3J0IGJ1Z3MgdG8vIHsKLSsJ OnByaW50Ci0rICAgICAgICBzL14jIC8vCi0rCXMvXiMgKiQvLwotKwlzKlwkcHJvZ25hbWUqJyRw cm9nbmFtZScqCi0rCXMqXCRob3N0KiciJGhvc3QiJyoKLSsJcypcJFNIRUxMKiciJFNIRUxMIicq Ci0rCXMqXCRMVENDKiciJExUQ0MiJyoKLSsJcypcJExUQ0ZMQUdTKiciJExUQ0ZMQUdTIicqCi0r CXMqXCRMRConIiRMRCInKgotKwlzL1wkd2l0aF9nbnVfbGQvJyIkd2l0aF9nbnVfbGQiJy8KLSsJ cy9cJGF1dG9tYWtlX3ZlcnNpb24vJyJgKGF1dG9tYWtlIC0tdmVyc2lvbikgMj4vZGV2L251bGwg fCRTRUQgMXFgIicvCi0rCXMvXCRhdXRvY29uZl92ZXJzaW9uLyciYChhdXRvY29uZiAtLXZlcnNp b24pIDI+L2Rldi9udWxsIHwkU0VEIDFxYCInLwotKwlwCi0rCWQKLSsgICAgIH0KLSsgICAgIC9e IyAuKiBob21lIHBhZ2U6L2IgcHJpbnQKLSsgICAgIC9eIyBHZW5lcmFsIGhlbHAgdXNpbmcvYiBw cmludAotKyAgICAgJyA8ICIkcHJvZ3BhdGgiCi0rICAgIHJldD0kPwotKyAgICBpZiB0ZXN0IC16 ICIkMSI7IHRoZW4KLSsgICAgICBleGl0ICRyZXQKLSsgICAgZmkKLSt9Ci0rCi0rIyBmdW5jX21p c3NpbmdfYXJnIGFyZ25hbWUKLSsjIEVjaG8gcHJvZ3JhbSBuYW1lIHByZWZpeGVkIG1lc3NhZ2Ug dG8gc3RhbmRhcmQgZXJyb3IgYW5kIHNldCBnbG9iYWwKLSsjIGV4aXRfY21kLgotK2Z1bmNfbWlz c2luZ19hcmcgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsKLSsgICAgZnVuY19lcnJvciAibWlz c2luZyBhcmd1bWVudCBmb3IgJDEuIgotKyAgICBleGl0X2NtZD1leGl0Ci0rfQotKwotKwotKyMg ZnVuY19zcGxpdF9zaG9ydF9vcHQgc2hvcnRvcHQKLSsjIFNldCBmdW5jX3NwbGl0X3Nob3J0X29w dF9uYW1lIGFuZCBmdW5jX3NwbGl0X3Nob3J0X29wdF9hcmcgc2hlbGwKLSsjIHZhcmlhYmxlcyBh ZnRlciBzcGxpdHRpbmcgU0hPUlRPUFQgYWZ0ZXIgdGhlIDJuZCBjaGFyYWN0ZXIuCi0rZnVuY19z cGxpdF9zaG9ydF9vcHQgKCkKLSt7Ci0rICAgIG15X3NlZF9zaG9ydF9vcHQ9JzFzL15cKC4uXCku KiQvXDEvO3EnCi0rICAgIG15X3NlZF9zaG9ydF9yZXN0PScxcy9eLi5cKC4qXCkkL1wxLztxJwot KwotKyAgICBmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lPWAkRUNITyAiJDEiIHwgJFNFRCAiJG15 X3NlZF9zaG9ydF9vcHQiYAotKyAgICBmdW5jX3NwbGl0X3Nob3J0X29wdF9hcmc9YCRFQ0hPICIk MSIgfCAkU0VEICIkbXlfc2VkX3Nob3J0X3Jlc3QiYAotK30gIyBmdW5jX3NwbGl0X3Nob3J0X29w dCBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb24KLSsKLSsK LSsjIGZ1bmNfc3BsaXRfbG9uZ19vcHQgbG9uZ29wdAotKyMgU2V0IGZ1bmNfc3BsaXRfbG9uZ19v cHRfbmFtZSBhbmQgZnVuY19zcGxpdF9sb25nX29wdF9hcmcgc2hlbGwKLSsjIHZhcmlhYmxlcyBh ZnRlciBzcGxpdHRpbmcgTE9OR09QVCBhdCB0aGUgYD0nIHNpZ24uCi0rZnVuY19zcGxpdF9sb25n X29wdCAoKQotK3sKLSsgICAgbXlfc2VkX2xvbmdfb3B0PScxcy9eXCgtLVtePV0qXCk9LiovXDEv O3EnCi0rICAgIG15X3NlZF9sb25nX2FyZz0nMXMvXi0tW149XSo9Ly8nCi0rCi0rICAgIGZ1bmNf c3BsaXRfbG9uZ19vcHRfbmFtZT1gJEVDSE8gIiQxIiB8ICRTRUQgIiRteV9zZWRfbG9uZ19vcHQi YAotKyAgICBmdW5jX3NwbGl0X2xvbmdfb3B0X2FyZz1gJEVDSE8gIiQxIiB8ICRTRUQgIiRteV9z ZWRfbG9uZ19hcmciYAotK30gIyBmdW5jX3NwbGl0X2xvbmdfb3B0IG1heSBiZSByZXBsYWNlZCBi eSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgotKwotK2V4aXRfY21kPToKLSsKLSsKLSsK LSsKLSsKLSttYWdpYz0iJSUlTUFHSUMgdmFyaWFibGUlJSUiCi0rbWFnaWNfZXhlPSIlJSVNQUdJ QyBFWEUgdmFyaWFibGUlJSUiCi0rCi0rIyBHbG9iYWwgdmFyaWFibGVzLgotK25vbm9wdD0KLStw cmVzZXJ2ZV9hcmdzPQotK2xvMm89InMvXFwubG9cJC8uJHtvYmpleHR9LyIKLStvMmxvPSJzL1xc LiR7b2JqZXh0fVwkLy5sby8iCi0rZXh0cmFjdGVkX2FyY2hpdmVzPQotK2V4dHJhY3RlZF9zZXJp YWw9MAotKwotKyMgSWYgdGhpcyB2YXJpYWJsZSBpcyBzZXQgaW4gYW55IG9mIHRoZSBhY3Rpb25z LCB0aGUgY29tbWFuZCBpbiBpdAotKyMgd2lsbCBiZSBleGVjZWQgYXQgdGhlIGVuZC4gIFRoaXMg cHJldmVudHMgaGVyZS1kb2N1bWVudHMgZnJvbSBiZWluZwotKyMgbGVmdCBvdmVyIGJ5IHNoZWxs cy4KLStleGVjX2NtZD0KLSsKLSsjIGZ1bmNfYXBwZW5kIHZhciB2YWx1ZQotKyMgQXBwZW5kIFZB TFVFIHRvIHRoZSBlbmQgb2Ygc2hlbGwgdmFyaWFibGUgVkFSLgotK2Z1bmNfYXBwZW5kICgpCi0r ewotKyAgICBldmFsICIkezF9PVwkJHsxfVwkezJ9IgotK30gIyBmdW5jX2FwcGVuZCBtYXkgYmUg cmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRpb24KLSsKLSsjIGZ1bmNfYXBw ZW5kX3F1b3RlZCB2YXIgdmFsdWUKLSsjIFF1b3RlIFZBTFVFIGFuZCBhcHBlbmQgdG8gdGhlIGVu ZCBvZiBzaGVsbCB2YXJpYWJsZSBWQVIsIHNlcGFyYXRlZAotKyMgYnkgYSBzcGFjZS4KLStmdW5j X2FwcGVuZF9xdW90ZWQgKCkKLSt7Ci0rICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiR7Mn0iCi0r ICAgIGV2YWwgIiR7MX09XCQkezF9XFwgXCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSt9 ICMgZnVuY19hcHBlbmRfcXVvdGVkIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBp bXBsZW1lbnRhdGlvbgotKwotKwotKyMgZnVuY19hcml0aCBhcml0aG1ldGljLXRlcm0uLi4KLStm dW5jX2FyaXRoICgpCi0rewotKyAgICBmdW5jX2FyaXRoX3Jlc3VsdD1gZXhwciAiJHtAfSJgCi0r fSAjIGZ1bmNfYXJpdGggbWF5IGJlIHJlcGxhY2VkIGJ5IGV4dGVuZGVkIHNoZWxsIGltcGxlbWVu dGF0aW9uCi0rCi0rCi0rIyBmdW5jX2xlbiBzdHJpbmcKLSsjIFNUUklORyBtYXkgbm90IHN0YXJ0 IHdpdGggYSBoeXBoZW4uCi0rZnVuY19sZW4gKCkKLSt7Ci0rICAgIGZ1bmNfbGVuX3Jlc3VsdD1g ZXhwciAiJHsxfSIgOiAiLioiIDI+L2Rldi9udWxsIHx8IGVjaG8gJG1heF9jbWRfbGVuYAotK30g IyBmdW5jX2xlbiBtYXkgYmUgcmVwbGFjZWQgYnkgZXh0ZW5kZWQgc2hlbGwgaW1wbGVtZW50YXRp b24KLSsKLSsKLSsjIGZ1bmNfbG8ybyBvYmplY3QKLStmdW5jX2xvMm8gKCkKLSt7Ci0rICAgIGZ1 bmNfbG8yb19yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgIiRsbzJvImAKLSt9ICMgZnVuY19s bzJvIG1heSBiZSByZXBsYWNlZCBieSBleHRlbmRlZCBzaGVsbCBpbXBsZW1lbnRhdGlvbgotKwot KwotKyMgZnVuY194Zm9ybSBsaWJvYmotb3Itc291cmNlCi0rZnVuY194Zm9ybSAoKQotK3sKLSsg ICAgZnVuY194Zm9ybV9yZXN1bHQ9YCRFQ0hPICIkezF9IiB8ICRTRUQgJ3MvXC5bXi5dKiQvLmxv LydgCi0rfSAjIGZ1bmNfeGZvcm0gbWF5IGJlIHJlcGxhY2VkIGJ5IGV4dGVuZGVkIHNoZWxsIGlt cGxlbWVudGF0aW9uCi0rCi0rCi0rIyBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gYXJnLi4uCi0r IyBFY2hvIHByb2dyYW0gbmFtZSBwcmVmaXhlZCBtZXNzYWdlIHRvIHN0YW5kYXJkIGVycm9yLCBm b2xsb3dlZCBieQotKyMgYSBjb25maWd1cmF0aW9uIGZhaWx1cmUgaGludCwgYW5kIGV4aXQuCi0r ZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICgpCi0rewotKyAgICBmdW5jX2Vycm9yICR7MSsiJEAi fQotKyAgICBmdW5jX2Vycm9yICJTZWUgdGhlICRQQUNLQUdFIGRvY3VtZW50YXRpb24gZm9yIG1v cmUgaW5mb3JtYXRpb24uIgotKyAgICBmdW5jX2ZhdGFsX2Vycm9yICJGYXRhbCBjb25maWd1cmF0 aW9uIGVycm9yLiIKLSt9Ci0rCi0rCi0rIyBmdW5jX2NvbmZpZwotKyMgRGlzcGxheSB0aGUgY29u ZmlndXJhdGlvbiBmb3IgYWxsIHRoZSB0YWdzIGluIHRoaXMgc2NyaXB0LgotK2Z1bmNfY29uZmln ICgpCi0rewotKyAgICByZV9iZWdpbmNmPSdeIyAjIyMgQkVHSU4gTElCVE9PTCcKLSsgICAgcmVf ZW5kY2Y9J14jICMjIyBFTkQgTElCVE9PTCcKLSsKLSsgICAgIyBEZWZhdWx0IGNvbmZpZ3VyYXRp b24uCi0rICAgICRTRUQgIjEsLyRyZV9iZWdpbmNmIENPTkZJRy9kOy8kcmVfZW5kY2YgQ09ORklH LyxcJGQiIDwgIiRwcm9ncGF0aCIKLSsKLSsgICAgIyBOb3cgcHJpbnQgdGhlIGNvbmZpZ3VyYXRp b25zIGZvciB0aGUgdGFncy4KLSsgICAgZm9yIHRhZ25hbWUgaW4gJHRhZ2xpc3Q7IGRvCi0rICAg ICAgJFNFRCAtbiAiLyRyZV9iZWdpbmNmIFRBRyBDT05GSUc6ICR0YWduYW1lXCQvLC8kcmVfZW5k Y2YgVEFHIENPTkZJRzogJHRhZ25hbWVcJC9wIiA8ICIkcHJvZ3BhdGgiCi0rICAgIGRvbmUKLSsK LSsgICAgZXhpdCAkPwotK30KLSsKLSsjIGZ1bmNfZmVhdHVyZXMKLSsjIERpc3BsYXkgdGhlIGZl YXR1cmVzIHN1cHBvcnRlZCBieSB0aGlzIHNjcmlwdC4KLStmdW5jX2ZlYXR1cmVzICgpCi0rewot KyAgICBlY2hvICJob3N0OiAkaG9zdCIKLSsgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGli cyIgPSB5ZXM7IHRoZW4KLSsgICAgICBlY2hvICJlbmFibGUgc2hhcmVkIGxpYnJhcmllcyIKLSsg ICAgZWxzZQotKyAgICAgIGVjaG8gImRpc2FibGUgc2hhcmVkIGxpYnJhcmllcyIKLSsgICAgZmkK LSsgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgotKyAgICAgIGVjaG8g ImVuYWJsZSBzdGF0aWMgbGlicmFyaWVzIgotKyAgICBlbHNlCi0rICAgICAgZWNobyAiZGlzYWJs ZSBzdGF0aWMgbGlicmFyaWVzIgotKyAgICBmaQotKwotKyAgICBleGl0ICQ/Ci0rfQotKwotKyMg ZnVuY19lbmFibGVfdGFnIHRhZ25hbWUKLSsjIFZlcmlmeSB0aGF0IFRBR05BTUUgaXMgdmFsaWQs IGFuZCBlaXRoZXIgZmxhZyBhbiBlcnJvciBhbmQgZXhpdCwgb3IKLSsjIGVuYWJsZSB0aGUgVEFH TkFNRSB0YWcuICBXZSBhbHNvIGFkZCBUQUdOQU1FIHRvIHRoZSBnbG9iYWwgJHRhZ2xpc3QKLSsj IHZhcmlhYmxlIGhlcmUuCi0rZnVuY19lbmFibGVfdGFnICgpCi0rewotKyAgIyBHbG9iYWwgdmFy aWFibGU6Ci0rICB0YWduYW1lPSIkMSIKLSsKLSsgIHJlX2JlZ2luY2Y9Il4jICMjIyBCRUdJTiBM SUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lXCQiCi0rICByZV9lbmRjZj0iXiMgIyMjIEVORCBM SUJUT09MIFRBRyBDT05GSUc6ICR0YWduYW1lXCQiCi0rICBzZWRfZXh0cmFjdGNmPSIvJHJlX2Jl Z2luY2YvLC8kcmVfZW5kY2YvcCIKLSsKLSsgICMgVmFsaWRhdGUgdGFnbmFtZS4KLSsgIGNhc2Ug JHRhZ25hbWUgaW4KLSsgICAgKlshLV9BLVphLXowLTksL10qKQotKyAgICAgIGZ1bmNfZmF0YWxf ZXJyb3IgImludmFsaWQgdGFnIG5hbWU6ICR0YWduYW1lIgotKyAgICAgIDs7Ci0rICBlc2FjCi0r Ci0rICAjIERvbid0IHRlc3QgZm9yIHRoZSAiZGVmYXVsdCIgQyB0YWcsIGFzIHdlIGtub3cgaXQn cwotKyAgIyB0aGVyZSBidXQgbm90IHNwZWNpYWxseSBtYXJrZWQuCi0rICBjYXNlICR0YWduYW1l IGluCi0rICAgIENDKSA7OwotKyAgICAqKQotKyAgICAgIGlmICRHUkVQICIkcmVfYmVnaW5jZiIg IiRwcm9ncGF0aCIgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCXRhZ2xpc3Q9IiR0YWdsaXN0ICR0 YWduYW1lIgotKwotKwkjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0aW9uLiAgQmUgY2FyZWZ1bCB0 byBxdW90ZSB0aGUgcGF0aAotKwkjIGFuZCB0aGUgc2VkIHNjcmlwdCwgdG8gYXZvaWQgc3BsaXR0 aW5nIG9uIHdoaXRlc3BhY2UsIGJ1dAotKwkjIGFsc28gZG9uJ3QgdXNlIG5vbi1wb3J0YWJsZSBx dW90ZXMgd2l0aGluIGJhY2txdW90ZXMgd2l0aGluCi0rCSMgcXVvdGVzIHdlIGhhdmUgdG8gZG8g aXQgaW4gMiBzdGVwczoKLSsJZXh0cmFjdGVkY2Y9YCRTRUQgLW4gLWUgIiRzZWRfZXh0cmFjdGNm IiA8ICIkcHJvZ3BhdGgiYAotKwlldmFsICIkZXh0cmFjdGVkY2YiCi0rICAgICAgZWxzZQotKwlm dW5jX2Vycm9yICJpZ25vcmluZyB1bmtub3duIHRhZyAkdGFnbmFtZSIKLSsgICAgICBmaQotKyAg ICAgIDs7Ci0rICBlc2FjCi0rfQotKwotKyMgZnVuY19jaGVja192ZXJzaW9uX21hdGNoCi0rIyBF bnN1cmUgdGhhdCB3ZSBhcmUgdXNpbmcgbTQgbWFjcm9zLCBhbmQgbGlidG9vbCBzY3JpcHQgZnJv bSB0aGUgc2FtZQotKyMgcmVsZWFzZSBvZiBsaWJ0b29sLgotK2Z1bmNfY2hlY2tfdmVyc2lvbl9t YXRjaCAoKQotK3sKLSsgIGlmIHRlc3QgIiRwYWNrYWdlX3JldmlzaW9uIiAhPSAiJG1hY3JvX3Jl dmlzaW9uIjsgdGhlbgotKyAgICBpZiB0ZXN0ICIkVkVSU0lPTiIgIT0gIiRtYWNyb192ZXJzaW9u IjsgdGhlbgotKyAgICAgIGlmIHRlc3QgLXogIiRtYWNyb192ZXJzaW9uIjsgdGhlbgotKyAgICAg ICAgY2F0ID4mMiA8PF9MVF9FT0YKLSskcHJvZ25hbWU6IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3Iu ICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCBidXQgdGhlCi0rJHByb2duYW1lOiBkZWZpbml0 aW9uIG9mIHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tIGFuIG9sZGVyIHJlbGVhc2UuCi0rJHByb2du YW1lOiBZb3Ugc2hvdWxkIHJlY3JlYXRlIGFjbG9jYWwubTQgd2l0aCBtYWNyb3MgZnJvbSAkUEFD S0FHRSAkVkVSU0lPTgotKyRwcm9nbmFtZTogYW5kIHJ1biBhdXRvY29uZiBhZ2Fpbi4KLStfTFRf RU9GCi0rICAgICAgZWxzZQotKyAgICAgICAgY2F0ID4mMiA8PF9MVF9FT0YKLSskcHJvZ25hbWU6 IFZlcnNpb24gbWlzbWF0Y2ggZXJyb3IuICBUaGlzIGlzICRQQUNLQUdFICRWRVJTSU9OLCBidXQg dGhlCi0rJHByb2duYW1lOiBkZWZpbml0aW9uIG9mIHRoaXMgTFRfSU5JVCBjb21lcyBmcm9tICRQ QUNLQUdFICRtYWNyb192ZXJzaW9uLgotKyRwcm9nbmFtZTogWW91IHNob3VsZCByZWNyZWF0ZSBh Y2xvY2FsLm00IHdpdGggbWFjcm9zIGZyb20gJFBBQ0tBR0UgJFZFUlNJT04KLSskcHJvZ25hbWU6 IGFuZCBydW4gYXV0b2NvbmYgYWdhaW4uCi0rX0xUX0VPRgotKyAgICAgIGZpCi0rICAgIGVsc2UK LSsgICAgICBjYXQgPiYyIDw8X0xUX0VPRgotKyRwcm9nbmFtZTogVmVyc2lvbiBtaXNtYXRjaCBl cnJvci4gIFRoaXMgaXMgJFBBQ0tBR0UgJFZFUlNJT04sIHJldmlzaW9uICRwYWNrYWdlX3Jldmlz aW9uLAotKyRwcm9nbmFtZTogYnV0IHRoZSBkZWZpbml0aW9uIG9mIHRoaXMgTFRfSU5JVCBjb21l cyBmcm9tIHJldmlzaW9uICRtYWNyb19yZXZpc2lvbi4KLSskcHJvZ25hbWU6IFlvdSBzaG91bGQg cmVjcmVhdGUgYWNsb2NhbC5tNCB3aXRoIG1hY3JvcyBmcm9tIHJldmlzaW9uICRwYWNrYWdlX3Jl dmlzaW9uCi0rJHByb2duYW1lOiBvZiAkUEFDS0FHRSAkVkVSU0lPTiBhbmQgcnVuIGF1dG9jb25m IGFnYWluLgotK19MVF9FT0YKLSsgICAgZmkKLSsKLSsgICAgZXhpdCAkRVhJVF9NSVNNQVRDSAot KyAgZmkKLSt9Ci0rCi0rCi0rIyBTaG9ydGhhbmQgZm9yIC0tbW9kZT1mb28sIG9ubHkgdmFsaWQg YXMgdGhlIGZpcnN0IGFyZ3VtZW50Ci0rY2FzZSAkMSBpbgotK2NsZWFufGNsZWF8Y2xlfGNsKQot KyAgc2hpZnQ7IHNldCBkdW1teSAtLW1vZGUgY2xlYW4gJHsxKyIkQCJ9OyBzaGlmdAotKyAgOzsK LStjb21waWxlfGNvbXBpbHxjb21waXxjb21wfGNvbXxjb3xjKQotKyAgc2hpZnQ7IHNldCBkdW1t eSAtLW1vZGUgY29tcGlsZSAkezErIiRAIn07IHNoaWZ0Ci0rICA7OwotK2V4ZWN1dGV8ZXhlY3V0 fGV4ZWN1fGV4ZWN8ZXhlfGV4fGUpCi0rICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBleGVjdXRl ICR7MSsiJEAifTsgc2hpZnQKLSsgIDs7Ci0rZmluaXNofGZpbmlzfGZpbml8ZmlufGZpfGYpCi0r ICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBmaW5pc2ggJHsxKyIkQCJ9OyBzaGlmdAotKyAgOzsK LStpbnN0YWxsfGluc3RhbHxpbnN0YXxpbnN0fGluc3xpbnxpKQotKyAgc2hpZnQ7IHNldCBkdW1t eSAtLW1vZGUgaW5zdGFsbCAkezErIiRAIn07IHNoaWZ0Ci0rICA7OwotK2xpbmt8bGlufGxpfGwp Ci0rICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSBsaW5rICR7MSsiJEAifTsgc2hpZnQKLSsgIDs7 Ci0rdW5pbnN0YWxsfHVuaW5zdGFsfHVuaW5zdGF8dW5pbnN0fHVuaW5zfHVuaW58dW5pfHVufHUp Ci0rICBzaGlmdDsgc2V0IGR1bW15IC0tbW9kZSB1bmluc3RhbGwgJHsxKyIkQCJ9OyBzaGlmdAot KyAgOzsKLStlc2FjCi0rCi0rCi0rCi0rIyBPcHRpb24gZGVmYXVsdHM6Ci0rb3B0X2RlYnVnPToK LStvcHRfZHJ5X3J1bj1mYWxzZQotK29wdF9jb25maWc9ZmFsc2UKLStvcHRfcHJlc2VydmVfZHVw X2RlcHM9ZmFsc2UKLStvcHRfZmVhdHVyZXM9ZmFsc2UKLStvcHRfZmluaXNoPWZhbHNlCi0rb3B0 X2hlbHA9ZmFsc2UKLStvcHRfaGVscF9hbGw9ZmFsc2UKLStvcHRfc2lsZW50PToKLStvcHRfdmVy Ym9zZT06Ci0rb3B0X3NpbGVudD1mYWxzZQotK29wdF92ZXJib3NlPWZhbHNlCi0rCi0rCi0rIyBQ YXJzZSBvcHRpb25zIG9uY2UsIHRob3JvdWdobHkuICBUaGlzIGNvbWVzIGFzIHNvb24gYXMgcG9z c2libGUgaW4gdGhlCi0rIyBzY3JpcHQgdG8gbWFrZSB0aGluZ3MgbGlrZSBgLS12ZXJzaW9uJyBo YXBwZW4gYXMgcXVpY2tseSBhcyB3ZSBjYW4uCi0rewotKyAgIyB0aGlzIGp1c3QgZWFzZXMgZXhp dCBoYW5kbGluZwotKyAgd2hpbGUgdGVzdCAkIyAtZ3QgMDsgZG8KLSsgICAgb3B0PSIkMSIKLSsg ICAgc2hpZnQKLSsgICAgY2FzZSAkb3B0IGluCi0rICAgICAgLS1kZWJ1Z3wteCkJb3B0X2RlYnVn PSdzZXQgLXgnCi0rCQkJZnVuY19lY2hvICJlbmFibGluZyBzaGVsbCB0cmFjZSBtb2RlIgotKwkJ CSRvcHRfZGVidWcKLSsJCQk7OwotKyAgICAgIC0tZHJ5LXJ1bnwtLWRyeXJ1bnwtbikKLSsJCQlv cHRfZHJ5X3J1bj06Ci0rCQkJOzsKLSsgICAgICAtLWNvbmZpZykKLSsJCQlvcHRfY29uZmlnPToK LStmdW5jX2NvbmZpZwotKwkJCTs7Ci0rICAgICAgLS1kbG9wZW58LWRsb3BlbikKLSsJCQlvcHRh cmc9IiQxIgotKwkJCW9wdF9kbG9wZW49IiR7b3B0X2Rsb3Blbiskb3B0X2Rsb3BlbgotK30kb3B0 YXJnIgotKwkJCXNoaWZ0Ci0rCQkJOzsKLSsgICAgICAtLXByZXNlcnZlLWR1cC1kZXBzKQotKwkJ CW9wdF9wcmVzZXJ2ZV9kdXBfZGVwcz06Ci0rCQkJOzsKLSsgICAgICAtLWZlYXR1cmVzKQotKwkJ CW9wdF9mZWF0dXJlcz06Ci0rZnVuY19mZWF0dXJlcwotKwkJCTs7Ci0rICAgICAgLS1maW5pc2gp Ci0rCQkJb3B0X2ZpbmlzaD06Ci0rc2V0IGR1bW15IC0tbW9kZSBmaW5pc2ggJHsxKyIkQCJ9OyBz aGlmdAotKwkJCTs7Ci0rICAgICAgLS1oZWxwKQotKwkJCW9wdF9oZWxwPToKLSsJCQk7OwotKyAg ICAgIC0taGVscC1hbGwpCi0rCQkJb3B0X2hlbHBfYWxsPToKLStvcHRfaGVscD0nOiBoZWxwLWFs bCcKLSsJCQk7OwotKyAgICAgIC0tbW9kZSkKLSsJCQl0ZXN0ICQjID0gMCAmJiBmdW5jX21pc3Np bmdfYXJnICRvcHQgJiYgYnJlYWsKLSsJCQlvcHRhcmc9IiQxIgotKwkJCW9wdF9tb2RlPSIkb3B0 YXJnIgotK2Nhc2UgJG9wdGFyZyBpbgotKyAgIyBWYWxpZCBtb2RlIGFyZ3VtZW50czoKLSsgIGNs ZWFufGNvbXBpbGV8ZXhlY3V0ZXxmaW5pc2h8aW5zdGFsbHxsaW5rfHJlbGlua3x1bmluc3RhbGwp IDs7Ci0rCi0rICAjIENhdGNoIGFueXRoaW5nIGVsc2UgYXMgYW4gZXJyb3IKLSsgICopIGZ1bmNf ZXJyb3IgImludmFsaWQgYXJndW1lbnQgZm9yICRvcHQiCi0rICAgICBleGl0X2NtZD1leGl0Ci0r ICAgICBicmVhawotKyAgICAgOzsKLStlc2FjCi0rCQkJc2hpZnQKLSsJCQk7OwotKyAgICAgIC0t bm8tc2lsZW50fC0tbm8tcXVpZXQpCi0rCQkJb3B0X3NpbGVudD1mYWxzZQotK2Z1bmNfYXBwZW5k IHByZXNlcnZlX2FyZ3MgIiAkb3B0IgotKwkJCTs7Ci0rICAgICAgLS1uby12ZXJib3NlKQotKwkJ CW9wdF92ZXJib3NlPWZhbHNlCi0rZnVuY19hcHBlbmQgcHJlc2VydmVfYXJncyAiICRvcHQiCi0r CQkJOzsKLSsgICAgICAtLXNpbGVudHwtLXF1aWV0KQotKwkJCW9wdF9zaWxlbnQ9OgotK2Z1bmNf YXBwZW5kIHByZXNlcnZlX2FyZ3MgIiAkb3B0IgotKyAgICAgICAgb3B0X3ZlcmJvc2U9ZmFsc2UK LSsJCQk7OwotKyAgICAgIC0tdmVyYm9zZXwtdikKLSsJCQlvcHRfdmVyYm9zZT06Ci0rZnVuY19h cHBlbmQgcHJlc2VydmVfYXJncyAiICRvcHQiCi0rb3B0X3NpbGVudD1mYWxzZQotKwkJCTs7Ci0r ICAgICAgLS10YWcpCi0rCQkJdGVzdCAkIyA9IDAgJiYgZnVuY19taXNzaW5nX2FyZyAkb3B0ICYm IGJyZWFrCi0rCQkJb3B0YXJnPSIkMSIKLSsJCQlvcHRfdGFnPSIkb3B0YXJnIgotK2Z1bmNfYXBw ZW5kIHByZXNlcnZlX2FyZ3MgIiAkb3B0ICRvcHRhcmciCi0rZnVuY19lbmFibGVfdGFnICIkb3B0 YXJnIgotKwkJCXNoaWZ0Ci0rCQkJOzsKLSsKLSsgICAgICAtXD98LWgpCQlmdW5jX3VzYWdlCQkJ CTs7Ci0rICAgICAgLS1oZWxwKQkJZnVuY19oZWxwCQkJCTs7Ci0rICAgICAgLS12ZXJzaW9uKQlm dW5jX3ZlcnNpb24JCQkJOzsKLSsKLSsgICAgICAjIFNlcGFyYXRlIG9wdGFyZ3MgdG8gbG9uZyBv cHRpb25zOgotKyAgICAgIC0tKj0qKQotKwkJCWZ1bmNfc3BsaXRfbG9uZ19vcHQgIiRvcHQiCi0r CQkJc2V0IGR1bW15ICIkZnVuY19zcGxpdF9sb25nX29wdF9uYW1lIiAiJGZ1bmNfc3BsaXRfbG9u Z19vcHRfYXJnIiAkezErIiRAIn0KLSsJCQlzaGlmdAotKwkJCTs7Ci0rCi0rICAgICAgIyBTZXBh cmF0ZSBub24tYXJndW1lbnQgc2hvcnQgb3B0aW9uczoKLSsgICAgICAtXD8qfC1oKnwtbip8LXYq KQotKwkJCWZ1bmNfc3BsaXRfc2hvcnRfb3B0ICIkb3B0IgotKwkJCXNldCBkdW1teSAiJGZ1bmNf c3BsaXRfc2hvcnRfb3B0X25hbWUiICItJGZ1bmNfc3BsaXRfc2hvcnRfb3B0X2FyZyIgJHsxKyIk QCJ9Ci0rCQkJc2hpZnQKLSsJCQk7OwotKwotKyAgICAgIC0tKQkJYnJlYWsJCQkJCTs7Ci0rICAg ICAgLSopCQlmdW5jX2ZhdGFsX2hlbHAgInVucmVjb2duaXplZCBvcHRpb24gXGAkb3B0JyIgOzsK LSsgICAgICAqKQkJc2V0IGR1bW15ICIkb3B0IiAkezErIiRAIn07CXNoaWZ0OyBicmVhayAgOzsK LSsgICAgZXNhYwotKyAgZG9uZQotKwotKyAgIyBWYWxpZGF0ZSBvcHRpb25zOgotKwotKyAgIyBz YXZlIGZpcnN0IG5vbi1vcHRpb24gYXJndW1lbnQKLSsgIGlmIHRlc3QgIiQjIiAtZ3QgMDsgdGhl bgotKyAgICBub25vcHQ9IiRvcHQiCi0rICAgIHNoaWZ0Ci0rICBmaQotKwotKyAgIyBwcmVzZXJ2 ZSAtLWRlYnVnCi0rICB0ZXN0ICIkb3B0X2RlYnVnIiA9IDogfHwgZnVuY19hcHBlbmQgcHJlc2Vy dmVfYXJncyAiIC0tZGVidWciCi0rCi0rICBjYXNlICRob3N0IGluCi0rICAgICpjeWd3aW4qIHwg Km1pbmd3KiB8ICpwdzMyKiB8ICpjZWdjYyopCi0rICAgICAgIyBkb24ndCBlbGltaW5hdGUgZHVw bGljYXRpb25zIGluICRwb3N0ZGVwcyBhbmQgJHByZWRlcHMKLSsgICAgICBvcHRfZHVwbGljYXRl X2NvbXBpbGVyX2dlbmVyYXRlZF9kZXBzPToKLSsgICAgICA7OwotKyAgICAqKQotKyAgICAgIG9w dF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM9JG9wdF9wcmVzZXJ2ZV9kdXBfZGVw cwotKyAgICAgIDs7Ci0rICBlc2FjCi0rCi0rICAkb3B0X2hlbHAgfHwgewotKyAgICAjIFNhbml0 eSBjaGVja3MgZmlyc3Q6Ci0rICAgIGZ1bmNfY2hlY2tfdmVyc2lvbl9tYXRjaAotKwotKyAgICBp ZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYgdGVzdCAiJGJ1aWxkX29sZF9s aWJzIiAhPSB5ZXM7IHRoZW4KLSsgICAgICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gIm5vdCBj b25maWd1cmVkIHRvIGJ1aWxkIGFueSBraW5kIG9mIGxpYnJhcnkiCi0rICAgIGZpCi0rCi0rICAg ICMgRGFyd2luIHN1Y2tzCi0rICAgIGV2YWwgc3RkX3NocmV4dD1cIiRzaHJleHRfY21kc1wiCi0r Ci0rICAgICMgT25seSBleGVjdXRlIG1vZGUgaXMgYWxsb3dlZCB0byBoYXZlIC1kbG9wZW4gZmxh Z3MuCi0rICAgIGlmIHRlc3QgLW4gIiRvcHRfZGxvcGVuIiAmJiB0ZXN0ICIkb3B0X21vZGUiICE9 IGV4ZWN1dGU7IHRoZW4KLSsgICAgICBmdW5jX2Vycm9yICJ1bnJlY29nbml6ZWQgb3B0aW9uIFxg LWRsb3BlbiciCi0rICAgICAgJEVDSE8gIiRoZWxwIiAxPiYyCi0rICAgICAgZXhpdCAkRVhJVF9G QUlMVVJFCi0rICAgIGZpCi0rCi0rICAgICMgQ2hhbmdlIHRoZSBoZWxwIG1lc3NhZ2UgdG8gYSBt b2RlLXNwZWNpZmljIG9uZS4KLSsgICAgZ2VuZXJpY19oZWxwPSIkaGVscCIKLSsgICAgaGVscD0i VHJ5IFxgJHByb2duYW1lIC0taGVscCAtLW1vZGU9JG9wdF9tb2RlJyBmb3IgbW9yZSBpbmZvcm1h dGlvbi4iCi0rICB9Ci0rCi0rCi0rICAjIEJhaWwgaWYgdGhlIG9wdGlvbnMgd2VyZSBzY3Jld2Vk Ci0rICAkZXhpdF9jbWQgJEVYSVRfRkFJTFVSRQotK30KLSsKLSsKLSsKLSsKLSsjIyAtLS0tLS0t LS0tLSAjIwotKyMjICAgIE1haW4uICAgICMjCi0rIyMgLS0tLS0tLS0tLS0gIyMKLSsKLSsjIGZ1 bmNfbGFsaWJfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCBgLmxhJyBsaWJy YXJ5IG9yIGAubG8nIG9iamVjdCBmaWxlLgotKyMgVGhpcyBmdW5jdGlvbiBpcyBvbmx5IGEgYmFz aWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQKLSsjIGRldGVybWluZWQg aW1wb3N0ZXJzLgotK2Z1bmNfbGFsaWJfcCAoKQotK3sKLSsgICAgdGVzdCAtZiAiJDEiICYmCi0r ICAgICAgJFNFRCAtZSA0cSAiJDEiIDI+L2Rldi9udWxsIFwKLSsgICAgICAgIHwgJEdSRVAgIl4j IEdlbmVyYXRlZCBieSAuKiRQQUNLQUdFIiA+IC9kZXYvbnVsbCAyPiYxCi0rfQotKwotKyMgZnVu Y19sYWxpYl91bnNhZmVfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCBgLmxh JyBsaWJyYXJ5IG9yIGAubG8nIG9iamVjdCBmaWxlLgotKyMgVGhpcyBmdW5jdGlvbiBpbXBsZW1l bnRzIHRoZSBzYW1lIGNoZWNrIGFzIGZ1bmNfbGFsaWJfcCB3aXRob3V0Ci0rIyByZXNvcnRpbmcg dG8gZXh0ZXJuYWwgcHJvZ3JhbXMuICBUbyB0aGlzIGVuZCwgaXQgcmVkaXJlY3RzIHN0ZGluIGFu ZAotKyMgY2xvc2VzIGl0IGFmdGVyd2FyZHMsIHdpdGhvdXQgc2F2aW5nIHRoZSBvcmlnaW5hbCBm aWxlIGRlc2NyaXB0b3IuCi0rIyBBcyBhIHNhZmV0eSBtZWFzdXJlLCB1c2UgaXQgb25seSB3aGVy ZSBhIG5lZ2F0aXZlIHJlc3VsdCB3b3VsZCBiZQotKyMgZmF0YWwgYW55d2F5LiAgV29ya3MgaWYg YGZpbGUnIGRvZXMgbm90IGV4aXN0LgotK2Z1bmNfbGFsaWJfdW5zYWZlX3AgKCkKLSt7Ci0rICAg IGxhbGliX3A9bm8KLSsgICAgaWYgdGVzdCAtZiAiJDEiICYmIHRlc3QgLXIgIiQxIiAmJiBleGVj IDU8JjAgPCIkMSI7IHRoZW4KLSsJZm9yIGxhbGliX3BfbCBpbiAxIDIgMyA0Ci0rCWRvCi0rCSAg ICByZWFkIGxhbGliX3BfbGluZQotKwkgICAgY2FzZSAiJGxhbGliX3BfbGluZSIgaW4KLSsJCVwj XCBHZW5lcmF0ZWRcIGJ5XCAqJFBBQ0tBR0UqICkgbGFsaWJfcD15ZXM7IGJyZWFrOzsKLSsJICAg IGVzYWMKLSsJZG9uZQotKwlleGVjIDA8JjUgNTwmLQotKyAgICBmaQotKyAgICB0ZXN0ICIkbGFs aWJfcCIgPSB5ZXMKLSt9Ci0rCi0rIyBmdW5jX2x0d3JhcHBlcl9zY3JpcHRfcCBmaWxlCi0rIyBU cnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCB3cmFwcGVyIHNjcmlwdAotKyMgVGhpcyBmdW5jdGlv biBpcyBvbmx5IGEgYmFzaWMgc2FuaXR5IGNoZWNrOyBpdCB3aWxsIGhhcmRseSBmbHVzaCBvdXQK LSsjIGRldGVybWluZWQgaW1wb3N0ZXJzLgotK2Z1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICgpCi0r ewotKyAgICBmdW5jX2xhbGliX3AgIiQxIgotK30KLSsKLSsjIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1 dGFibGVfcCBmaWxlCi0rIyBUcnVlIGlmZiBGSUxFIGlzIGEgbGlidG9vbCB3cmFwcGVyIGV4ZWN1 dGFibGUKLSsjIFRoaXMgZnVuY3Rpb24gaXMgb25seSBhIGJhc2ljIHNhbml0eSBjaGVjazsgaXQg d2lsbCBoYXJkbHkgZmx1c2ggb3V0Ci0rIyBkZXRlcm1pbmVkIGltcG9zdGVycy4KLStmdW5jX2x0 d3JhcHBlcl9leGVjdXRhYmxlX3AgKCkKLSt7Ci0rICAgIGZ1bmNfbHR3cmFwcGVyX2V4ZWNfc3Vm Zml4PQotKyAgICBjYXNlICQxIGluCi0rICAgICouZXhlKSA7OwotKyAgICAqKSBmdW5jX2x0d3Jh cHBlcl9leGVjX3N1ZmZpeD0uZXhlIDs7Ci0rICAgIGVzYWMKLSsgICAgJEdSRVAgIiRtYWdpY19l eGUiICIkMSRmdW5jX2x0d3JhcHBlcl9leGVjX3N1ZmZpeCIgPi9kZXYvbnVsbCAyPiYxCi0rfQot KwotKyMgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSBmaWxlCi0rIyBBc3N1bWVzIGZpbGUgaXMg YW4gbHR3cmFwcGVyX2V4ZWN1dGFibGUKLSsjIHVzZXMgJGZpbGUgdG8gZGV0ZXJtaW5lIHRoZSBh cHByb3ByaWF0ZSBmaWxlbmFtZSBmb3IgYQotKyMgdGVtcG9yYXJ5IGx0d3JhcHBlcl9zY3JpcHQu Ci0rZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAoKQotK3sKLSsgICAgZnVuY19kaXJuYW1lX2Fu ZF9iYXNlbmFtZSAiJDEiICIiICIuIgotKyAgICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRm dW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1 bHQ9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0LyRvYmpkaXIvJHtmdW5jX3N0cmlwbmFtZV9yZXN1bHR9 X2x0c2h3cmFwcGVyIgotK30KLSsKLSsjIGZ1bmNfbHR3cmFwcGVyX3AgZmlsZQotKyMgVHJ1ZSBp ZmYgRklMRSBpcyBhIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgb3Igd3JhcHBlciBleGVjdXRhYmxl Ci0rIyBUaGlzIGZ1bmN0aW9uIGlzIG9ubHkgYSBiYXNpYyBzYW5pdHkgY2hlY2s7IGl0IHdpbGwg aGFyZGx5IGZsdXNoIG91dAotKyMgZGV0ZXJtaW5lZCBpbXBvc3RlcnMuCi0rZnVuY19sdHdyYXBw ZXJfcCAoKQotK3sKLSsgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0X3AgIiQxIiB8fCBmdW5jX2x0 d3JhcHBlcl9leGVjdXRhYmxlX3AgIiQxIgotK30KLSsKLSsKLSsjIGZ1bmNfZXhlY3V0ZV9jbWRz IGNvbW1hbmRzIGZhaWxfY21kCi0rIyBFeGVjdXRlIHRpbGRlLWRlbGltaXRlZCBDT01NQU5EUy4K LSsjIElmIEZBSUxfQ01EIGlzIGdpdmVuLCBldmFsIHRoYXQgdXBvbiBmYWlsdXJlLgotKyMgRkFJ TF9DTUQgbWF5IHJlYWQtYWNjZXNzIHRoZSBjdXJyZW50IGNvbW1hbmQgaW4gdmFyaWFibGUgQ01E IQotK2Z1bmNfZXhlY3V0ZV9jbWRzICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgIHNhdmVf aWZzPSRJRlM7IElGUz0nficKLSsgICAgZm9yIGNtZCBpbiAkMTsgZG8KLSsgICAgICBJRlM9JHNh dmVfaWZzCi0rICAgICAgZXZhbCBjbWQ9XCIkY21kXCIKLSsgICAgICBmdW5jX3Nob3dfZXZhbCAi JGNtZCIgIiR7Mi06fSIKLSsgICAgZG9uZQotKyAgICBJRlM9JHNhdmVfaWZzCi0rfQotKwotKwot KyMgZnVuY19zb3VyY2UgZmlsZQotKyMgU291cmNlIEZJTEUsIGFkZGluZyBkaXJlY3RvcnkgY29t cG9uZW50IGlmIG5lY2Vzc2FyeS4KLSsjIE5vdGUgdGhhdCBpdCBpcyBub3QgbmVjZXNzYXJ5IG9u IGN5Z3dpbi9taW5ndyB0byBhcHBlbmQgYSBkb3QgdG8KLSsjIEZJTEUgZXZlbiBpZiBib3RoIEZJ TEUgYW5kIEZJTEUuZXhlIGV4aXN0OiBhdXRvbWF0aWMtYXBwZW5kLS5leGUKLSsjIGJlaGF2aW9y IGhhcHBlbnMgb25seSBmb3IgZXhlYygzKSwgbm90IGZvciBvcGVuKDIpISAgQWxzbywgc291cmNp bmcKLSsjIGBGSUxFLicgZG9lcyBub3Qgd29yayBvbiBjeWd3aW4gbWFuYWdlZCBtb3VudHMuCi0r ZnVuY19zb3VyY2UgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgY2FzZSAkMSBpbgotKyAg ICAqLyogfCAqXFwqKQkuICIkMSIgOzsKLSsgICAgKikJCS4gIi4vJDEiIDs7Ci0rICAgIGVzYWMK LSt9Ci0rCi0rCi0rIyBmdW5jX3Jlc29sdmVfc3lzcm9vdCBQQVRICi0rIyBSZXBsYWNlIGEgbGVh ZGluZyA9IGluIFBBVEggd2l0aCBhIHN5c3Jvb3QuICBTdG9yZSB0aGUgcmVzdWx0IGludG8KLSsj IGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdAotK2Z1bmNfcmVzb2x2ZV9zeXNyb290ICgpCi0r ewotKyAgZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0PSQxCi0rICBjYXNlICRmdW5jX3Jlc29s dmVfc3lzcm9vdF9yZXN1bHQgaW4KLSsgID0qKQotKyAgICBmdW5jX3N0cmlwbmFtZSAnPScgJycg IiRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCi0rICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290 X3Jlc3VsdD0kbHRfc3lzcm9vdCRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsgICAgOzsKLSsgIGVz YWMKLSt9Ci0rCi0rIyBmdW5jX3JlcGxhY2Vfc3lzcm9vdCBQQVRICi0rIyBJZiBQQVRIIGJlZ2lu cyB3aXRoIHRoZSBzeXNyb290LCByZXBsYWNlIGl0IHdpdGggPSBhbmQKLSsjIHN0b3JlIHRoZSBy ZXN1bHQgaW50byBmdW5jX3JlcGxhY2Vfc3lzcm9vdF9yZXN1bHQuCi0rZnVuY19yZXBsYWNlX3N5 c3Jvb3QgKCkKLSt7Ci0rICBjYXNlICIkbHRfc3lzcm9vdDokMSIgaW4KLSsgID8qOiIkbHRfc3lz cm9vdCIqKQotKyAgICBmdW5jX3N0cmlwbmFtZSAiJGx0X3N5c3Jvb3QiICcnICIkMSIKLSsgICAg ZnVuY19yZXBsYWNlX3N5c3Jvb3RfcmVzdWx0PSI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKLSsg ICAgOzsKLSsgICopCi0rICAgICMgSW5jbHVkaW5nIG5vIHN5c3Jvb3QuCi0rICAgIGZ1bmNfcmVw bGFjZV9zeXNyb290X3Jlc3VsdD0kMQotKyAgICA7OwotKyAgZXNhYwotK30KLSsKLSsjIGZ1bmNf aW5mZXJfdGFnIGFyZwotKyMgSW5mZXIgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGlmIGFu eSBhcmUgYXZhaWxhYmxlIGFuZAotKyMgaWYgb25lIHdhc24ndCBjaG9zZW4gdmlhIHRoZSAiLS10 YWciIGNvbW1hbmQgbGluZSBvcHRpb24uCi0rIyBPbmx5IGF0dGVtcHQgdGhpcyBpZiB0aGUgY29t cGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZQotKyMgY29tbWFuZCBkb2Vzbid0IG1hdGNoIHRoZSBk ZWZhdWx0IGNvbXBpbGVyLgotKyMgYXJnIGlzIHVzdWFsbHkgb2YgdGhlIGZvcm0gJ2djYyAuLi4n Ci0rZnVuY19pbmZlcl90YWcgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgaWYgdGVzdCAt biAiJGF2YWlsYWJsZV90YWdzIiAmJiB0ZXN0IC16ICIkdGFnbmFtZSI7IHRoZW4KLSsgICAgICBD Q19xdW90ZWQ9Ci0rICAgICAgZm9yIGFyZyBpbiAkQ0M7IGRvCi0rCWZ1bmNfYXBwZW5kX3F1b3Rl ZCBDQ19xdW90ZWQgIiRhcmciCi0rICAgICAgZG9uZQotKyAgICAgIENDX2V4cGFuZGVkPWBmdW5j X2VjaG9fYWxsICRDQ2AKLSsgICAgICBDQ19xdW90ZWRfZXhwYW5kZWQ9YGZ1bmNfZWNob19hbGwg JENDX3F1b3RlZGAKLSsgICAgICBjYXNlICRAIGluCi0rICAgICAgIyBCbGFua3MgaW4gdGhlIGNv bW1hbmQgbWF5IGhhdmUgYmVlbiBzdHJpcHBlZCBieSB0aGUgY2FsbGluZyBzaGVsbCwKLSsgICAg ICAjIGJ1dCBub3QgZnJvbSB0aGUgQ0MgZW52aXJvbm1lbnQgdmFyaWFibGUgd2hlbiBjb25maWd1 cmUgd2FzIHJ1bi4KLSsgICAgICAiICRDQyAiKiB8ICIkQ0MgIiogfCAiICRDQ19leHBhbmRlZCAi KiB8ICIkQ0NfZXhwYW5kZWQgIiogfCBcCi0rICAgICAgIiAkQ0NfcXVvdGVkIiogfCAiJENDX3F1 b3RlZCAiKiB8ICIgJENDX3F1b3RlZF9leHBhbmRlZCAiKiB8ICIkQ0NfcXVvdGVkX2V4cGFuZGVk ICIqKSA7OwotKyAgICAgICMgQmxhbmtzIGF0IHRoZSBzdGFydCBvZiAkYmFzZV9jb21waWxlIHdp bGwgY2F1c2UgdGhpcyB0byBmYWlsCi0rICAgICAgIyBpZiB3ZSBkb24ndCBjaGVjayBmb3IgdGhl bSBhcyB3ZWxsLgotKyAgICAgICopCi0rCWZvciB6IGluICRhdmFpbGFibGVfdGFnczsgZG8KLSsJ ICBpZiAkR1JFUCAiXiMgIyMjIEJFR0lOIExJQlRPT0wgVEFHIENPTkZJRzogJHokIiA8ICIkcHJv Z3BhdGgiID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICAjIEV2YWx1YXRlIHRoZSBjb25maWd1cmF0 aW9uLgotKwkgICAgZXZhbCAiYCR7U0VEfSAtbiAtZSAnL14jICMjIyBCRUdJTiBMSUJUT09MIFRB RyBDT05GSUc6ICckeickLywvXiMgIyMjIEVORCBMSUJUT09MIFRBRyBDT05GSUc6ICckeickL3An IDwgJHByb2dwYXRoYCIKLSsJICAgIENDX3F1b3RlZD0KLSsJICAgIGZvciBhcmcgaW4gJENDOyBk bwotKwkgICAgICAjIERvdWJsZS1xdW90ZSBhcmdzIGNvbnRhaW5pbmcgb3RoZXIgc2hlbGwgbWV0 YWNoYXJhY3RlcnMuCi0rCSAgICAgIGZ1bmNfYXBwZW5kX3F1b3RlZCBDQ19xdW90ZWQgIiRhcmci Ci0rCSAgICBkb25lCi0rCSAgICBDQ19leHBhbmRlZD1gZnVuY19lY2hvX2FsbCAkQ0NgCi0rCSAg ICBDQ19xdW90ZWRfZXhwYW5kZWQ9YGZ1bmNfZWNob19hbGwgJENDX3F1b3RlZGAKLSsJICAgIGNh c2UgIiRAICIgaW4KLSsJICAgICIgJENDICIqIHwgIiRDQyAiKiB8ICIgJENDX2V4cGFuZGVkICIq IHwgIiRDQ19leHBhbmRlZCAiKiB8IFwKLSsJICAgICIgJENDX3F1b3RlZCIqIHwgIiRDQ19xdW90 ZWQgIiogfCAiICRDQ19xdW90ZWRfZXhwYW5kZWQgIiogfCAiJENDX3F1b3RlZF9leHBhbmRlZCAi KikKLSsJICAgICAgIyBUaGUgY29tcGlsZXIgaW4gdGhlIGJhc2UgY29tcGlsZSBjb21tYW5kIG1h dGNoZXMKLSsJICAgICAgIyB0aGUgb25lIGluIHRoZSB0YWdnZWQgY29uZmlndXJhdGlvbi4KLSsJ ICAgICAgIyBBc3N1bWUgdGhpcyBpcyB0aGUgdGFnZ2VkIGNvbmZpZ3VyYXRpb24gd2Ugd2FudC4K LSsJICAgICAgdGFnbmFtZT0kegotKwkgICAgICBicmVhawotKwkgICAgICA7OwotKwkgICAgZXNh YwotKwkgIGZpCi0rCWRvbmUKLSsJIyBJZiAkdGFnbmFtZSBzdGlsbCBpc24ndCBzZXQsIHRoZW4g bm8gdGFnZ2VkIGNvbmZpZ3VyYXRpb24KLSsJIyB3YXMgZm91bmQgYW5kIGxldCB0aGUgdXNlciBr bm93IHRoYXQgdGhlICItLXRhZyIgY29tbWFuZAotKwkjIGxpbmUgb3B0aW9uIG11c3QgYmUgdXNl ZC4KLSsJaWYgdGVzdCAteiAiJHRhZ25hbWUiOyB0aGVuCi0rCSAgZnVuY19lY2hvICJ1bmFibGUg dG8gaW5mZXIgdGFnZ2VkIGNvbmZpZ3VyYXRpb24iCi0rCSAgZnVuY19mYXRhbF9lcnJvciAic3Bl Y2lmeSBhIHRhZyB3aXRoIFxgLS10YWcnIgotKyMJZWxzZQotKyMJICBmdW5jX3ZlcmJvc2UgInVz aW5nICR0YWduYW1lIHRhZ2dlZCBjb25maWd1cmF0aW9uIgotKwlmaQotKwk7OwotKyAgICAgIGVz YWMKLSsgICAgZmkKLSt9Ci0rCi0rCi0rCi0rIyBmdW5jX3dyaXRlX2xpYnRvb2xfb2JqZWN0IG91 dHB1dF9uYW1lIHBpY19uYW1lIG5vbnBpY19uYW1lCi0rIyBDcmVhdGUgYSBsaWJ0b29sIG9iamVj dCBmaWxlIChhbmFsb2dvdXMgdG8gYSAiLmxhIiBmaWxlKSwKLSsjIGJ1dCBkb24ndCBjcmVhdGUg aXQgaWYgd2UncmUgZG9pbmcgYSBkcnkgcnVuLgotK2Z1bmNfd3JpdGVfbGlidG9vbF9vYmplY3Qg KCkKLSt7Ci0rICAgIHdyaXRlX2xpYm9iaj0kezF9Ci0rICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0 b29sX2xpYnMiID0geWVzOyB0aGVuCi0rICAgICAgd3JpdGVfbG9iaj1cJyR7Mn1cJwotKyAgICBl bHNlCi0rICAgICAgd3JpdGVfbG9iaj1ub25lCi0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgIiRi dWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICB3cml0ZV9vbGRvYmo9XCckezN9XCcK LSsgICAgZWxzZQotKyAgICAgIHdyaXRlX29sZG9iaj1ub25lCi0rICAgIGZpCi0rCi0rICAgICRv cHRfZHJ5X3J1biB8fCB7Ci0rICAgICAgY2F0ID4ke3dyaXRlX2xpYm9ian1UIDw8RU9GCi0rIyAk d3JpdGVfbGlib2JqIC0gYSBsaWJ0b29sIG9iamVjdCBmaWxlCi0rIyBHZW5lcmF0ZWQgYnkgJFBS T0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCi0rIwotKyMgUGxlYXNlIERP IE5PVCBkZWxldGUgdGhpcyBmaWxlIQotKyMgSXQgaXMgbmVjZXNzYXJ5IGZvciBsaW5raW5nIHRo ZSBsaWJyYXJ5LgotKwotKyMgTmFtZSBvZiB0aGUgUElDIG9iamVjdC4KLStwaWNfb2JqZWN0PSR3 cml0ZV9sb2JqCi0rCi0rIyBOYW1lIG9mIHRoZSBub24tUElDIG9iamVjdAotK25vbl9waWNfb2Jq ZWN0PSR3cml0ZV9vbGRvYmoKLSsKLStFT0YKLSsgICAgICAkTVYgIiR7d3JpdGVfbGlib2JqfVQi ICIke3dyaXRlX2xpYm9ian0iCi0rICAgIH0KLSt9Ci0rCi0rCi0rIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsjIEZJTEUgTkFNRSBBTkQgUEFUSCBD T05WRVJTSU9OIEhFTFBFUiBGVU5DVElPTlMgIwotKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCi0rCi0rIyBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dp bmVfdG9fdzMyIEFSRwotKyMgSGVscGVyIGZ1bmN0aW9uIHVzZWQgYnkgZmlsZSBuYW1lIGNvbnZl cnNpb24gZnVuY3Rpb25zIHdoZW4gJGJ1aWxkIGlzICpuaXgsCi0rIyBhbmQgJGhvc3QgaXMgbWlu Z3csIGN5Z3dpbiwgb3Igc29tZSBvdGhlciB3MzIgZW52aXJvbm1lbnQuIFJlbGllcyBvbiBhCi0r IyBjb3JyZWN0bHkgY29uZmlndXJlZCB3aW5lIGVudmlyb25tZW50IGF2YWlsYWJsZSwgd2l0aCB0 aGUgd2luZXBhdGggcHJvZ3JhbQotKyMgaW4gJGJ1aWxkJ3MgJFBBVEguCi0rIwotKyMgQVJHIGlz IHRoZSAkYnVpbGQgZmlsZSBuYW1lIHRvIGJlIGNvbnZlcnRlZCB0byB3MzIgZm9ybWF0LgotKyMg UmVzdWx0IGlzIGF2YWlsYWJsZSBpbiAkZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3cz Ml9yZXN1bHQsIGFuZCB3aWxsCi0rIyBiZSBlbXB0eSBvbiBlcnJvciAob3Igd2hlbiBBUkcgaXMg ZW1wdHkpCi0rZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMiAoKQotK3sKLSsgICRv cHRfZGVidWcKLSsgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0PSIk MSIKLSsgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgotKyAgICAjIFVuZm9ydHVuYXRlbHksIHdpbmVw YXRoIGRvZXMgbm90IGV4aXQgd2l0aCBhIG5vbi16ZXJvIGVycm9yIGNvZGUsIHNvIHdlCi0rICAg ICMgYXJlIGZvcmNlZCB0byBjaGVjayB0aGUgY29udGVudHMgb2Ygc3Rkb3V0LiBPbiB0aGUgb3Ro ZXIgaGFuZCwgaWYgdGhlCi0rICAgICMgY29tbWFuZCBpcyBub3QgZm91bmQsIHRoZSBzaGVsbCB3 aWxsIHNldCBhbiBleGl0IGNvZGUgb2YgMTI3IGFuZCBwcmludAotKyAgICAjICphbiBlcnJvciBt ZXNzYWdlKiB0byBzdGRvdXQuIFNvIHdlIG11c3QgY2hlY2sgZm9yIGJvdGggZXJyb3IgY29kZSBv ZgotKyAgICAjIHplcm8gQU5EIG5vbi1lbXB0eSBzdGRvdXQsIHdoaWNoIGV4cGxhaW5zIHRoZSBv ZGQgY29uc3RydWN0aW9uOgotKyAgICBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMy X3RtcD1gd2luZXBhdGggLXcgIiQxIiAyPi9kZXYvbnVsbGAKLSsgICAgaWYgdGVzdCAiJD8iIC1l cSAwICYmIHRlc3QgLW4gIiR7ZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5lX3RvX3czMl90bXB9 IjsgdGhlbgotKyAgICAgIGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0 PWAkRUNITyAiJGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfdG1wIiB8Ci0rICAg ICAgICAkU0VEIC1lICIkbHRfc2VkX25haXZlX2JhY2tzbGFzaGlmeSJgCi0rICAgIGVsc2UKLSsg ICAgICBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyX3Jlc3VsdD0KLSsgICAgZmkK LSsgIGZpCi0rfQotKyMgZW5kOiBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMyCi0r Ci0rCi0rIyBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyIEFSRwotKyMgSGVscGVy IGZ1bmN0aW9uIHVzZWQgYnkgcGF0aCBjb252ZXJzaW9uIGZ1bmN0aW9ucyB3aGVuICRidWlsZCBp cyAqbml4LCBhbmQKLSsjICRob3N0IGlzIG1pbmd3LCBjeWd3aW4sIG9yIHNvbWUgb3RoZXIgdzMy IGVudmlyb25tZW50LiBSZWxpZXMgb24gYSBjb3JyZWN0bHkKLSsjIGNvbmZpZ3VyZWQgd2luZSBl bnZpcm9ubWVudCBhdmFpbGFibGUsIHdpdGggdGhlIHdpbmVwYXRoIHByb2dyYW0gaW4gJGJ1aWxk J3MKLSsjICRQQVRILiBBc3N1bWVzIEFSRyBoYXMgbm8gbGVhZGluZyBvciB0cmFpbGluZyBwYXRo IHNlcGFyYXRvciBjaGFyYWN0ZXJzLgotKyMKLSsjIEFSRyBpcyBwYXRoIHRvIGJlIGNvbnZlcnRl ZCBmcm9tICRidWlsZCBmb3JtYXQgdG8gd2luMzIuCi0rIyBSZXN1bHQgaXMgYXZhaWxhYmxlIGlu ICRmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyX3Jlc3VsdC4KLSsjIFVuY29udmVy dGlibGUgZmlsZSAoZGlyZWN0b3J5KSBuYW1lcyBpbiBBUkcgYXJlIHNraXBwZWQ7IGlmIG5vIGRp cmVjdG9yeSBuYW1lcwotKyMgYXJlIGNvbnZlcnRpYmxlLCB0aGVuIHRoZSByZXN1bHQgbWF5IGJl IGVtcHR5LgotK2Z1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzIgKCkKLSt7Ci0rICAk b3B0X2RlYnVnCi0rICAjIHVuZm9ydHVuYXRlbHksIHdpbmVwYXRoIGRvZXNuJ3QgY29udmVydCBw YXRocywgb25seSBmaWxlIG5hbWVzCi0rICBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9f dzMyX3Jlc3VsdD0iIgotKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0rICAgIG9sZElGUz0kSUZT Ci0rICAgIElGUz06Ci0rICAgIGZvciBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMy X2YgaW4gJDE7IGRvCi0rICAgICAgSUZTPSRvbGRJRlMKLSsgICAgICBmdW5jX2NvbnZlcnRfY29y ZV9maWxlX3dpbmVfdG9fdzMyICIkZnVuY19jb252ZXJ0X2NvcmVfcGF0aF93aW5lX3RvX3czMl9m IgotKyAgICAgIGlmIHRlc3QgLW4gIiRmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMy X3Jlc3VsdCIgOyB0aGVuCi0rICAgICAgICBpZiB0ZXN0IC16ICIkZnVuY19jb252ZXJ0X2NvcmVf cGF0aF93aW5lX3RvX3czMl9yZXN1bHQiOyB0aGVuCi0rICAgICAgICAgIGZ1bmNfY29udmVydF9j b3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0PSIkZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5l X3RvX3czMl9yZXN1bHQiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIGZ1bmNfYXBwZW5kIGZ1 bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193MzJfcmVzdWx0ICI7JGZ1bmNfY29udmVydF9j b3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0IgotKyAgICAgICAgZmkKLSsgICAgICBmaQotKyAg ICBkb25lCi0rICAgIElGUz0kb2xkSUZTCi0rICBmaQotK30KLSsjIGVuZDogZnVuY19jb252ZXJ0 X2NvcmVfcGF0aF93aW5lX3RvX3czMgotKwotKwotKyMgZnVuY19jeWdwYXRoIEFSR1MuLi4KLSsj IFdyYXBwZXIgYXJvdW5kIGNhbGxpbmcgdGhlIGN5Z3BhdGggcHJvZ3JhbSB2aWEgTFRfQ1lHUEFU SC4gVGhpcyBpcyB1c2VkIHdoZW4KLSsjIHdoZW4gKDEpICRidWlsZCBpcyAqbml4IGFuZCBDeWd3 aW4gaXMgaG9zdGVkIHZpYSBhIHdpbmUgZW52aXJvbm1lbnQ7IG9yICgyKQotKyMgJGJ1aWxkIGlz IE1TWVMgYW5kICRob3N0IGlzIEN5Z3dpbiwgb3IgKDMpICRidWlsZCBpcyBDeWd3aW4uIEluIGNh c2UgKDEpIG9yCi0rIyAoMiksIHJldHVybnMgdGhlIEN5Z3dpbiBmaWxlIG5hbWUgb3IgcGF0aCBp biBmdW5jX2N5Z3BhdGhfcmVzdWx0IChpbnB1dAotKyMgZmlsZSBuYW1lIG9yIHBhdGggaXMgYXNz dW1lZCB0byBiZSBpbiB3MzIgZm9ybWF0LCBhcyBwcmV2aW91c2x5IGNvbnZlcnRlZAotKyMgZnJv bSAkYnVpbGQncyAqbml4IG9yIE1TWVMgZm9ybWF0KS4gSW4gY2FzZSAoMyksIHJldHVybnMgdGhl IHczMiBmaWxlIG5hbWUKLSsjIG9yIHBhdGggaW4gZnVuY19jeWdwYXRoX3Jlc3VsdCAoaW5wdXQg ZmlsZSBuYW1lIG9yIHBhdGggaXMgYXNzdW1lZCB0byBiZSBpbgotKyMgQ3lnd2luIGZvcm1hdCku IFJldHVybnMgYW4gZW1wdHkgc3RyaW5nIG9uIGVycm9yLgotKyMKLSsjIEFSR1MgYXJlIHBhc3Nl ZCB0byBjeWdwYXRoLCB3aXRoIHRoZSBsYXN0IG9uZSBiZWluZyB0aGUgZmlsZSBuYW1lIG9yIHBh dGggdG8KLSsjIGJlIGNvbnZlcnRlZC4KLSsjCi0rIyBTcGVjaWZ5IHRoZSBhYnNvbHV0ZSAqbml4 IChvciB3MzIpIG5hbWUgdG8gY3lncGF0aCBpbiB0aGUgTFRfQ1lHUEFUSAotKyMgZW52aXJvbm1l bnQgdmFyaWFibGU7IGRvIG5vdCBwdXQgaXQgaW4gJFBBVEguCi0rZnVuY19jeWdwYXRoICgpCi0r ewotKyAgJG9wdF9kZWJ1ZwotKyAgaWYgdGVzdCAtbiAiJExUX0NZR1BBVEgiICYmIHRlc3QgLWYg IiRMVF9DWUdQQVRIIjsgdGhlbgotKyAgICBmdW5jX2N5Z3BhdGhfcmVzdWx0PWAkTFRfQ1lHUEFU SCAiJEAiIDI+L2Rldi9udWxsYAotKyAgICBpZiB0ZXN0ICIkPyIgLW5lIDA7IHRoZW4KLSsgICAg ICAjIG9uIGZhaWx1cmUsIGVuc3VyZSByZXN1bHQgaXMgZW1wdHkKLSsgICAgICBmdW5jX2N5Z3Bh dGhfcmVzdWx0PQotKyAgICBmaQotKyAgZWxzZQotKyAgICBmdW5jX2N5Z3BhdGhfcmVzdWx0PQot KyAgICBmdW5jX2Vycm9yICJMVF9DWUdQQVRIIGlzIGVtcHR5IG9yIHNwZWNpZmllcyBub24tZXhp c3RlbnQgZmlsZTogXGAkTFRfQ1lHUEFUSCciCi0rICBmaQotK30KLSsjZW5kOiBmdW5jX2N5Z3Bh dGgKLSsKLSsKLSsjIGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyIEFSRwotKyMgQ29udmVy dCBmaWxlIG5hbWUgb3IgcGF0aCBBUkcgZnJvbSBNU1lTIGZvcm1hdCB0byB3MzIgZm9ybWF0LiAg UmV0dXJuCi0rIyByZXN1bHQgaW4gZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzJfcmVzdWx0 LgotK2Z1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyICgpCi0rewotKyAgJG9wdF9kZWJ1Zwot KyAgIyBhd2t3YXJkOiBjbWQgYXBwZW5kcyBzcGFjZXMgdG8gcmVzdWx0Ci0rICBmdW5jX2NvbnZl cnRfY29yZV9tc3lzX3RvX3czMl9yZXN1bHQ9YCggY21kIC8vYyBlY2hvICIkMSIgKSAyPi9kZXYv bnVsbCB8Ci0rICAgICRTRUQgLWUgJ3MvWyBdKiQvLycgLWUgIiRsdF9zZWRfbmFpdmVfYmFja3Ns YXNoaWZ5ImAKLSt9Ci0rI2VuZDogZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzIKLSsKLSsK LSsjIGZ1bmNfY29udmVydF9maWxlX2NoZWNrIEFSRzEgQVJHMgotKyMgVmVyaWZ5IHRoYXQgQVJH MSAoYSBmaWxlIG5hbWUgaW4gJGJ1aWxkIGZvcm1hdCkgd2FzIGNvbnZlcnRlZCB0byAkaG9zdAot KyMgZm9ybWF0IGluIEFSRzIuIE90aGVyd2lzZSwgZW1pdCBhbiBlcnJvciBtZXNzYWdlLCBidXQg Y29udGludWUgKHJlc2V0dGluZwotKyMgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0IHRvIEFSRzEp LgotK2Z1bmNfY29udmVydF9maWxlX2NoZWNrICgpCi0rewotKyAgJG9wdF9kZWJ1ZwotKyAgaWYg dGVzdCAteiAiJDIiICYmIHRlc3QgLW4gIiQxIiA7IHRoZW4KLSsgICAgZnVuY19lcnJvciAiQ291 bGQgbm90IGRldGVybWluZSBob3N0IGZpbGUgbmFtZSBjb3JyZXNwb25kaW5nIHRvIgotKyAgICBm dW5jX2Vycm9yICIgIFxgJDEnIgotKyAgICBmdW5jX2Vycm9yICJDb250aW51aW5nLCBidXQgdW5p bnN0YWxsZWQgZXhlY3V0YWJsZXMgbWF5IG5vdCB3b3JrLiIKLSsgICAgIyBGYWxsYmFjazoKLSsg ICAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIKLSsgIGZpCi0rfQotKyMgZW5kIGZ1bmNf Y29udmVydF9maWxlX2NoZWNrCi0rCi0rCi0rIyBmdW5jX2NvbnZlcnRfcGF0aF9jaGVjayBGUk9N X1BBVEhTRVAgVE9fUEFUSFNFUCBGUk9NX1BBVEggVE9fUEFUSAotKyMgVmVyaWZ5IHRoYXQgRlJP TV9QQVRIIChhIHBhdGggaW4gJGJ1aWxkIGZvcm1hdCkgd2FzIGNvbnZlcnRlZCB0byAkaG9zdAot KyMgZm9ybWF0IGluIFRPX1BBVEguIE90aGVyd2lzZSwgZW1pdCBhbiBlcnJvciBtZXNzYWdlLCBi dXQgY29udGludWUsIHJlc2V0dGluZwotKyMgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0IHRvIGEg c2ltcGxpc3RpYyBmYWxsYmFjayB2YWx1ZSAoc2VlIGJlbG93KS4KLStmdW5jX2NvbnZlcnRfcGF0 aF9jaGVjayAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIGlmIHRlc3QgLXogIiQ0IiAmJiB0ZXN0 IC1uICIkMyI7IHRoZW4KLSsgICAgZnVuY19lcnJvciAiQ291bGQgbm90IGRldGVybWluZSB0aGUg aG9zdCBwYXRoIGNvcnJlc3BvbmRpbmcgdG8iCi0rICAgIGZ1bmNfZXJyb3IgIiAgXGAkMyciCi0r ICAgIGZ1bmNfZXJyb3IgIkNvbnRpbnVpbmcsIGJ1dCB1bmluc3RhbGxlZCBleGVjdXRhYmxlcyBt YXkgbm90IHdvcmsuIgotKyAgICAjIEZhbGxiYWNrLiAgVGhpcyBpcyBhIGRlbGliZXJhdGVseSBz aW1wbGlzdGljICJjb252ZXJzaW9uIiBhbmQKLSsgICAgIyBzaG91bGQgbm90IGJlICJpbXByb3Zl ZCIuICBTZWUgbGlidG9vbC5pbmZvLgotKyAgICBpZiB0ZXN0ICJ4JDEiICE9ICJ4JDIiOyB0aGVu Ci0rICAgICAgbHRfcmVwbGFjZV9wYXRoc2VwX2NoYXJzPSJzfCQxfCQyfGciCi0rICAgICAgZnVu Y190b19ob3N0X3BhdGhfcmVzdWx0PWBlY2hvICIkMyIgfAotKyAgICAgICAgJFNFRCAtZSAiJGx0 X3JlcGxhY2VfcGF0aHNlcF9jaGFycyJgCi0rICAgIGVsc2UKLSsgICAgICBmdW5jX3RvX2hvc3Rf cGF0aF9yZXN1bHQ9IiQzIgotKyAgICBmaQotKyAgZmkKLSt9Ci0rIyBlbmQgZnVuY19jb252ZXJ0 X3BhdGhfY2hlY2sKLSsKLSsKLSsjIGZ1bmNfY29udmVydF9wYXRoX2Zyb250X2JhY2tfcGF0aHNl cCBGUk9OVFBBVCBCQUNLUEFUIFJFUEwgT1JJRwotKyMgTW9kaWZpZXMgZnVuY190b19ob3N0X3Bh dGhfcmVzdWx0IGJ5IHByZXBlbmRpbmcgUkVQTCBpZiBPUklHIG1hdGNoZXMgRlJPTlRQQVQKLSsj IGFuZCBhcHBlbmRpbmcgUkVQTCBpZiBPUklHIG1hdGNoZXMgQkFDS1BBVC4KLStmdW5jX2NvbnZl cnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAgKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICBjYXNl ICQ0IGluCi0rICAkMSApIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDMkZnVuY190b19ob3N0 X3BhdGhfcmVzdWx0IgotKyAgICA7OwotKyAgZXNhYwotKyAgY2FzZSAkNCBpbgotKyAgJDIgKSBm dW5jX2FwcGVuZCBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQgIiQzIgotKyAgICA7OwotKyAgZXNh YwotK30KLSsjIGVuZCBmdW5jX2NvbnZlcnRfcGF0aF9mcm9udF9iYWNrX3BhdGhzZXAKLSsKLSsK LSsjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotKyMg JGJ1aWxkIHRvICRob3N0IEZJTEUgTkFNRSBDT05WRVJTSU9OIEZVTkNUSU9OUyAjCi0rIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKLSsjIGludm9rZWQg dmlhIGAkdG9faG9zdF9maWxlX2NtZCBBUkcnCi0rIwotKyMgSW4gZWFjaCBjYXNlLCBBUkcgaXMg dGhlIHBhdGggdG8gYmUgY29udmVydGVkIGZyb20gJGJ1aWxkIHRvICRob3N0IGZvcm1hdC4KLSsj IFJlc3VsdCB3aWxsIGJlIGF2YWlsYWJsZSBpbiAkZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0Lgot KwotKwotKyMgZnVuY190b19ob3N0X2ZpbGUgQVJHCi0rIyBDb252ZXJ0cyB0aGUgZmlsZSBuYW1l IEFSRyBmcm9tICRidWlsZCBmb3JtYXQgdG8gJGhvc3QgZm9ybWF0LiBSZXR1cm4gcmVzdWx0Ci0r IyBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCi0rZnVuY190b19ob3N0X2ZpbGUgKCkKLSt7 Ci0rICAkb3B0X2RlYnVnCi0rICAkdG9faG9zdF9maWxlX2NtZCAiJDEiCi0rfQotKyMgZW5kIGZ1 bmNfdG9faG9zdF9maWxlCi0rCi0rCi0rIyBmdW5jX3RvX3Rvb2xfZmlsZSBBUkcgTEFaWQotKyMg Y29udmVydHMgdGhlIGZpbGUgbmFtZSBBUkcgZnJvbSAkYnVpbGQgZm9ybWF0IHRvIHRvb2xjaGFp biBmb3JtYXQuIFJldHVybgotKyMgcmVzdWx0IGluIGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdC4g IElmIHRoZSBjb252ZXJzaW9uIGluIHVzZSBpcyBsaXN0ZWQKLSsjIGluICh0aGUgY29tbWEgc2Vw YXJhdGVkKSBMQVpZLCBubyBjb252ZXJzaW9uIHRha2VzIHBsYWNlLgotK2Z1bmNfdG9fdG9vbF9m aWxlICgpCi0rewotKyAgJG9wdF9kZWJ1ZwotKyAgY2FzZSAsJDIsIGluCi0rICAgICosIiR0b190 b29sX2ZpbGVfY21kIiwqKQotKyAgICAgIGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdD0kMQotKyAg ICAgIDs7Ci0rICAgICopCi0rICAgICAgJHRvX3Rvb2xfZmlsZV9jbWQgIiQxIgotKyAgICAgIGZ1 bmNfdG9fdG9vbF9maWxlX3Jlc3VsdD0kZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0Ci0rICAgICAg OzsKLSsgIGVzYWMKLSt9Ci0rIyBlbmQgZnVuY190b190b29sX2ZpbGUKLSsKLSsKLSsjIGZ1bmNf Y29udmVydF9maWxlX25vb3AgQVJHCi0rIyBDb3B5IEFSRyB0byBmdW5jX3RvX2hvc3RfZmlsZV9y ZXN1bHQuCi0rZnVuY19jb252ZXJ0X2ZpbGVfbm9vcCAoKQotK3sKLSsgIGZ1bmNfdG9faG9zdF9m aWxlX3Jlc3VsdD0iJDEiCi0rfQotKyMgZW5kIGZ1bmNfY29udmVydF9maWxlX25vb3AKLSsKLSsK LSsjIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyIEFSRwotKyMgQ29udmVydCBmaWxlIG5h bWUgQVJHIGZyb20gKG1pbmd3KSBNU1lTIHRvIChtaW5ndykgdzMyIGZvcm1hdDsgYXV0b21hdGlj Ci0rIyBjb252ZXJzaW9uIHRvIHczMiBpcyBub3QgYXZhaWxhYmxlIGluc2lkZSB0aGUgY3dyYXBw ZXIuICBSZXR1cm5zIHJlc3VsdCBpbgotKyMgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgotK2Z1 bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyICgpCi0rewotKyAgJG9wdF9kZWJ1ZwotKyAgZnVu Y190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIKLSsgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgotKyAg ICBmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMiAiJDEiCi0rICAgIGZ1bmNfdG9faG9zdF9m aWxlX3Jlc3VsdD0iJGZ1bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyX3Jlc3VsdCIKLSsgIGZp Ci0rICBmdW5jX2NvbnZlcnRfZmlsZV9jaGVjayAiJDEiICIkZnVuY190b19ob3N0X2ZpbGVfcmVz dWx0IgotK30KLSsjIGVuZCBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgotKwotKwotKyMg ZnVuY19jb252ZXJ0X2ZpbGVfY3lnd2luX3RvX3czMiBBUkcKLSsjIENvbnZlcnQgZmlsZSBuYW1l IEFSRyBmcm9tIEN5Z3dpbiB0byB3MzIgZm9ybWF0LiAgUmV0dXJucyByZXN1bHQgaW4KLSsjIGZ1 bmNfdG9faG9zdF9maWxlX3Jlc3VsdC4KLStmdW5jX2NvbnZlcnRfZmlsZV9jeWd3aW5fdG9fdzMy ICgpCi0rewotKyAgJG9wdF9kZWJ1ZwotKyAgZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0PSIkMSIK LSsgIGlmIHRlc3QgLW4gIiQxIjsgdGhlbgotKyAgICAjIGJlY2F1c2UgJGJ1aWxkIGlzIGN5Z3dp biwgd2UgY2FsbCAidGhlIiBjeWdwYXRoIGluICRQQVRIOyBubyBuZWVkIHRvIHVzZQotKyAgICAj IExUX0NZR1BBVEggaW4gdGhpcyBjYXNlLgotKyAgICBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQ9 YGN5Z3BhdGggLW0gIiQxImAKLSsgIGZpCi0rICBmdW5jX2NvbnZlcnRfZmlsZV9jaGVjayAiJDEi ICIkZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0IgotK30KLSsjIGVuZCBmdW5jX2NvbnZlcnRfZmls ZV9jeWd3aW5fdG9fdzMyCi0rCi0rCi0rIyBmdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fdzMyIEFS RwotKyMgQ29udmVydCBmaWxlIG5hbWUgQVJHIGZyb20gKm5peCB0byB3MzIgZm9ybWF0LiAgUmVx dWlyZXMgYSB3aW5lIGVudmlyb25tZW50Ci0rIyBhbmQgYSB3b3JraW5nIHdpbmVwYXRoLiBSZXR1 cm5zIHJlc3VsdCBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCi0rZnVuY19jb252ZXJ0X2Zp bGVfbml4X3RvX3czMiAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIGZ1bmNfdG9faG9zdF9maWxl X3Jlc3VsdD0iJDEiCi0rICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KLSsgICAgZnVuY19jb252ZXJ0 X2NvcmVfZmlsZV93aW5lX3RvX3czMiAiJDEiCi0rICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3Vs dD0iJGZ1bmNfY29udmVydF9jb3JlX2ZpbGVfd2luZV90b193MzJfcmVzdWx0IgotKyAgZmkKLSsg IGZ1bmNfY29udmVydF9maWxlX2NoZWNrICIkMSIgIiRmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQi Ci0rfQotKyMgZW5kIGZ1bmNfY29udmVydF9maWxlX25peF90b193MzIKLSsKLSsKLSsjIGZ1bmNf Y29udmVydF9maWxlX21zeXNfdG9fY3lnd2luIEFSRwotKyMgQ29udmVydCBmaWxlIG5hbWUgQVJH IGZyb20gTVNZUyB0byBDeWd3aW4gZm9ybWF0LiAgUmVxdWlyZXMgTFRfQ1lHUEFUSCBzZXQuCi0r IyBSZXR1cm5zIHJlc3VsdCBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCi0rZnVuY19jb252 ZXJ0X2ZpbGVfbXN5c190b19jeWd3aW4gKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICBmdW5jX3Rv X2hvc3RfZmlsZV9yZXN1bHQ9IiQxIgotKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0rICAgIGZ1 bmNfY29udmVydF9jb3JlX21zeXNfdG9fdzMyICIkMSIKLSsgICAgZnVuY19jeWdwYXRoIC11ICIk ZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzJfcmVzdWx0IgotKyAgICBmdW5jX3RvX2hvc3Rf ZmlsZV9yZXN1bHQ9IiRmdW5jX2N5Z3BhdGhfcmVzdWx0IgotKyAgZmkKLSsgIGZ1bmNfY29udmVy dF9maWxlX2NoZWNrICIkMSIgIiRmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQiCi0rfQotKyMgZW5k IGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fY3lnd2luCi0rCi0rCi0rIyBmdW5jX2NvbnZlcnRf ZmlsZV9uaXhfdG9fY3lnd2luIEFSRwotKyMgQ29udmVydCBmaWxlIG5hbWUgQVJHIGZyb20gKm5p eCB0byBDeWd3aW4gZm9ybWF0LiAgUmVxdWlyZXMgQ3lnd2luIGluc3RhbGxlZAotKyMgaW4gYSB3 aW5lIGVudmlyb25tZW50LCB3b3JraW5nIHdpbmVwYXRoLCBhbmQgTFRfQ1lHUEFUSCBzZXQuICBS ZXR1cm5zIHJlc3VsdAotKyMgaW4gZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgotK2Z1bmNfY29u dmVydF9maWxlX25peF90b19jeWd3aW4gKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICBmdW5jX3Rv X2hvc3RfZmlsZV9yZXN1bHQ9IiQxIgotKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0rICAgICMg Y29udmVydCBmcm9tICpuaXggdG8gdzMyLCB0aGVuIHVzZSBjeWdwYXRoIHRvIGNvbnZlcnQgZnJv bSB3MzIgdG8gY3lnd2luLgotKyAgICBmdW5jX2NvbnZlcnRfY29yZV9maWxlX3dpbmVfdG9fdzMy ICIkMSIKLSsgICAgZnVuY19jeWdwYXRoIC11ICIkZnVuY19jb252ZXJ0X2NvcmVfZmlsZV93aW5l X3RvX3czMl9yZXN1bHQiCi0rICAgIGZ1bmNfdG9faG9zdF9maWxlX3Jlc3VsdD0iJGZ1bmNfY3ln cGF0aF9yZXN1bHQiCi0rICBmaQotKyAgZnVuY19jb252ZXJ0X2ZpbGVfY2hlY2sgIiQxIiAiJGZ1 bmNfdG9faG9zdF9maWxlX3Jlc3VsdCIKLSt9Ci0rIyBlbmQgZnVuY19jb252ZXJ0X2ZpbGVfbml4 X3RvX2N5Z3dpbgotKwotKwotKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwotKyMgJGJ1aWxkIHRvICRob3N0IFBBVEggQ09OVkVSU0lPTiBGVU5DVElPTlMgIwot KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwotKyMgaW52b2tl ZCB2aWEgYCR0b19ob3N0X3BhdGhfY21kIEFSRycKLSsjCi0rIyBJbiBlYWNoIGNhc2UsIEFSRyBp cyB0aGUgcGF0aCB0byBiZSBjb252ZXJ0ZWQgZnJvbSAkYnVpbGQgdG8gJGhvc3QgZm9ybWF0Lgot KyMgVGhlIHJlc3VsdCB3aWxsIGJlIGF2YWlsYWJsZSBpbiAkZnVuY190b19ob3N0X3BhdGhfcmVz dWx0LgotKyMKLSsjIFBhdGggc2VwYXJhdG9ycyBhcmUgYWxzbyBjb252ZXJ0ZWQgZnJvbSAkYnVp bGQgZm9ybWF0IHRvICRob3N0IGZvcm1hdC4gIElmCi0rIyBBUkcgYmVnaW5zIG9yIGVuZHMgd2l0 aCBhIHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlciwgaXQgaXMgcHJlc2VydmVkIChidXQKLSsjIGNv bnZlcnRlZCB0byAkaG9zdCBmb3JtYXQpIG9uIG91dHB1dC4KLSsjCi0rIyBBbGwgcGF0aCBjb252 ZXJzaW9uIGZ1bmN0aW9ucyBhcmUgbmFtZWQgdXNpbmcgdGhlIGZvbGxvd2luZyBjb252ZW50aW9u OgotKyMgICBmaWxlIG5hbWUgY29udmVyc2lvbiBmdW5jdGlvbiAgICA6IGZ1bmNfY29udmVydF9m aWxlX1hfdG9fWSAoKQotKyMgICBwYXRoIGNvbnZlcnNpb24gZnVuY3Rpb24gICAgICAgICA6IGZ1 bmNfY29udmVydF9wYXRoX1hfdG9fWSAoKQotKyMgd2hlcmUsIGZvciBhbnkgZ2l2ZW4gJGJ1aWxk LyRob3N0IGNvbWJpbmF0aW9uIHRoZSAnWF90b19ZJyB2YWx1ZSBpcyB0aGUKLSsjIHNhbWUuICBJ ZiBjb252ZXJzaW9uIGZ1bmN0aW9ucyBhcmUgYWRkZWQgZm9yIG5ldyAkYnVpbGQvJGhvc3QgY29t YmluYXRpb25zLAotKyMgdGhlIHR3byBuZXcgZnVuY3Rpb25zIG11c3QgZm9sbG93IHRoaXMgcGF0 dGVybiwgb3IgZnVuY19pbml0X3RvX2hvc3RfcGF0aF9jbWQKLSsjIHdpbGwgYnJlYWsuCi0rCi0r Ci0rIyBmdW5jX2luaXRfdG9faG9zdF9wYXRoX2NtZAotKyMgRW5zdXJlcyB0aGF0IGZ1bmN0aW9u ICJwb2ludGVyIiB2YXJpYWJsZSAkdG9faG9zdF9wYXRoX2NtZCBpcyBzZXQgdG8gdGhlCi0rIyBh cHByb3ByaWF0ZSB2YWx1ZSwgYmFzZWQgb24gdGhlIHZhbHVlIG9mICR0b19ob3N0X2ZpbGVfY21k LgotK3RvX2hvc3RfcGF0aF9jbWQ9Ci0rZnVuY19pbml0X3RvX2hvc3RfcGF0aF9jbWQgKCkKLSt7 Ci0rICAkb3B0X2RlYnVnCi0rICBpZiB0ZXN0IC16ICIkdG9faG9zdF9wYXRoX2NtZCI7IHRoZW4K LSsgICAgZnVuY19zdHJpcG5hbWUgJ2Z1bmNfY29udmVydF9maWxlXycgJycgIiR0b19ob3N0X2Zp bGVfY21kIgotKyAgICB0b19ob3N0X3BhdGhfY21kPSJmdW5jX2NvbnZlcnRfcGF0aF8ke2Z1bmNf c3RyaXBuYW1lX3Jlc3VsdH0iCi0rICBmaQotK30KLSsKLSsKLSsjIGZ1bmNfdG9faG9zdF9wYXRo IEFSRwotKyMgQ29udmVydHMgdGhlIHBhdGggQVJHIGZyb20gJGJ1aWxkIGZvcm1hdCB0byAkaG9z dCBmb3JtYXQuIFJldHVybiByZXN1bHQKLSsjIGluIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdC4K LStmdW5jX3RvX2hvc3RfcGF0aCAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIGZ1bmNfaW5pdF90 b19ob3N0X3BhdGhfY21kCi0rICAkdG9faG9zdF9wYXRoX2NtZCAiJDEiCi0rfQotKyMgZW5kIGZ1 bmNfdG9faG9zdF9wYXRoCi0rCi0rCi0rIyBmdW5jX2NvbnZlcnRfcGF0aF9ub29wIEFSRwotKyMg Q29weSBBUkcgdG8gZnVuY190b19ob3N0X3BhdGhfcmVzdWx0LgotK2Z1bmNfY29udmVydF9wYXRo X25vb3AgKCkKLSt7Ci0rICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgotK30KLSsjIGVu ZCBmdW5jX2NvbnZlcnRfcGF0aF9ub29wCi0rCi0rCi0rIyBmdW5jX2NvbnZlcnRfcGF0aF9tc3lz X3RvX3czMiBBUkcKLSsjIENvbnZlcnQgcGF0aCBBUkcgZnJvbSAobWluZ3cpIE1TWVMgdG8gKG1p bmd3KSB3MzIgZm9ybWF0OyBhdXRvbWF0aWMKLSsjIGNvbnZlcnNpb24gdG8gdzMyIGlzIG5vdCBh dmFpbGFibGUgaW5zaWRlIHRoZSBjd3JhcHBlci4gIFJldHVybnMgcmVzdWx0IGluCi0rIyBmdW5j X3RvX2hvc3RfcGF0aF9yZXN1bHQuCi0rZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b193MzIgKCkK LSt7Ci0rICAkb3B0X2RlYnVnCi0rICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgotKyAg aWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0rICAgICMgUmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5n IHBhdGggc2VwYXJhdG9yIGNoYXJhY3RlcnMgZnJvbSBBUkcuICBNU1lTCi0rICAgICMgYmVoYXZp b3IgaXMgaW5jb25zaXN0ZW50IGhlcmU7IGN5Z3BhdGggdHVybnMgdGhlbSBpbnRvICcuOycgYW5k ICc7Lic7Ci0rICAgICMgYW5kIHdpbmVwYXRoIGlnbm9yZXMgdGhlbSBjb21wbGV0ZWx5LgotKyAg ICBmdW5jX3N0cmlwbmFtZSA6IDogIiQxIgotKyAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPSRm dW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsgICAgZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzIg IiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIgotKyAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9 IiRmdW5jX2NvbnZlcnRfY29yZV9tc3lzX3RvX3czMl9yZXN1bHQiCi0rICAgIGZ1bmNfY29udmVy dF9wYXRoX2NoZWNrIDogIjsiIFwKLSsgICAgICAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiICIk ZnVuY190b19ob3N0X3BhdGhfcmVzdWx0IgotKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9mcm9udF9i YWNrX3BhdGhzZXAgIjoqIiAiKjoiICI7IiAiJDEiCi0rICBmaQotK30KLSsjIGVuZCBmdW5jX2Nv bnZlcnRfcGF0aF9tc3lzX3RvX3czMgotKwotKwotKyMgZnVuY19jb252ZXJ0X3BhdGhfY3lnd2lu X3RvX3czMiBBUkcKLSsjIENvbnZlcnQgcGF0aCBBUkcgZnJvbSBDeWd3aW4gdG8gdzMyIGZvcm1h dC4gIFJldHVybnMgcmVzdWx0IGluCi0rIyBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCi0rZnVu Y19jb252ZXJ0X3BhdGhfY3lnd2luX3RvX3czMiAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIGZ1 bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJDEiCi0rICBpZiB0ZXN0IC1uICIkMSI7IHRoZW4KLSsg ICAgIyBTZWUgZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b193MzI6Ci0rICAgIGZ1bmNfc3RyaXBu YW1lIDogOiAiJDEiCi0rICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9JGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdAotKyAgICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9YGN5Z3BhdGggLW0gLXAgIiRm dW5jX3RvX2hvc3RfcGF0aF90bXAxImAKLSsgICAgZnVuY19jb252ZXJ0X3BhdGhfY2hlY2sgOiAi OyIgXAotKyAgICAgICIkZnVuY190b19ob3N0X3BhdGhfdG1wMSIgIiRmdW5jX3RvX2hvc3RfcGF0 aF9yZXN1bHQiCi0rICAgIGZ1bmNfY29udmVydF9wYXRoX2Zyb250X2JhY2tfcGF0aHNlcCAiOioi ICIqOiIgIjsiICIkMSIKLSsgIGZpCi0rfQotKyMgZW5kIGZ1bmNfY29udmVydF9wYXRoX2N5Z3dp bl90b193MzIKLSsKLSsKLSsjIGZ1bmNfY29udmVydF9wYXRoX25peF90b193MzIgQVJHCi0rIyBD b252ZXJ0IHBhdGggQVJHIGZyb20gKm5peCB0byB3MzIgZm9ybWF0LiAgUmVxdWlyZXMgYSB3aW5l IGVudmlyb25tZW50IGFuZAotKyMgYSB3b3JraW5nIHdpbmVwYXRoLiAgUmV0dXJucyByZXN1bHQg aW4gZnVuY190b19ob3N0X2ZpbGVfcmVzdWx0LgotK2Z1bmNfY29udmVydF9wYXRoX25peF90b193 MzIgKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQx IgotKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0rICAgICMgU2VlIGZ1bmNfY29udmVydF9wYXRo X21zeXNfdG9fdzMyOgotKyAgICBmdW5jX3N0cmlwbmFtZSA6IDogIiQxIgotKyAgICBmdW5jX3Rv X2hvc3RfcGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsgICAgZnVuY19jb252ZXJ0 X2NvcmVfcGF0aF93aW5lX3RvX3czMiAiJGZ1bmNfdG9faG9zdF9wYXRoX3RtcDEiCi0rICAgIGZ1 bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJGZ1bmNfY29udmVydF9jb3JlX3BhdGhfd2luZV90b193 MzJfcmVzdWx0IgotKyAgICBmdW5jX2NvbnZlcnRfcGF0aF9jaGVjayA6ICI7IiBcCi0rICAgICAg IiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIKLSsg ICAgZnVuY19jb252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwICI6KiIgIio6IiAiOyIgIiQx IgotKyAgZmkKLSt9Ci0rIyBlbmQgZnVuY19jb252ZXJ0X3BhdGhfbml4X3RvX3czMgotKwotKwot KyMgZnVuY19jb252ZXJ0X3BhdGhfbXN5c190b19jeWd3aW4gQVJHCi0rIyBDb252ZXJ0IHBhdGgg QVJHIGZyb20gTVNZUyB0byBDeWd3aW4gZm9ybWF0LiAgUmVxdWlyZXMgTFRfQ1lHUEFUSCBzZXQu Ci0rIyBSZXR1cm5zIHJlc3VsdCBpbiBmdW5jX3RvX2hvc3RfZmlsZV9yZXN1bHQuCi0rZnVuY19j b252ZXJ0X3BhdGhfbXN5c190b19jeWd3aW4gKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICBmdW5j X3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgotKyAgaWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0rICAg ICMgU2VlIGZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fdzMyOgotKyAgICBmdW5jX3N0cmlwbmFt ZSA6IDogIiQxIgotKyAgICBmdW5jX3RvX2hvc3RfcGF0aF90bXAxPSRmdW5jX3N0cmlwbmFtZV9y ZXN1bHQKLSsgICAgZnVuY19jb252ZXJ0X2NvcmVfbXN5c190b193MzIgIiRmdW5jX3RvX2hvc3Rf cGF0aF90bXAxIgotKyAgICBmdW5jX2N5Z3BhdGggLXUgLXAgIiRmdW5jX2NvbnZlcnRfY29yZV9t c3lzX3RvX3czMl9yZXN1bHQiCi0rICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdD0iJGZ1bmNf Y3lncGF0aF9yZXN1bHQiCi0rICAgIGZ1bmNfY29udmVydF9wYXRoX2NoZWNrIDogOiBcCi0rICAg ICAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCIK LSsgICAgZnVuY19jb252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwICI6KiIgIio6IiA6ICIk MSIKLSsgIGZpCi0rfQotKyMgZW5kIGZ1bmNfY29udmVydF9wYXRoX21zeXNfdG9fY3lnd2luCi0r Ci0rCi0rIyBmdW5jX2NvbnZlcnRfcGF0aF9uaXhfdG9fY3lnd2luIEFSRwotKyMgQ29udmVydCBw YXRoIEFSRyBmcm9tICpuaXggdG8gQ3lnd2luIGZvcm1hdC4gIFJlcXVpcmVzIEN5Z3dpbiBpbnN0 YWxsZWQgaW4gYQotKyMgYSB3aW5lIGVudmlyb25tZW50LCB3b3JraW5nIHdpbmVwYXRoLCBhbmQg TFRfQ1lHUEFUSCBzZXQuICBSZXR1cm5zIHJlc3VsdCBpbgotKyMgZnVuY190b19ob3N0X2ZpbGVf cmVzdWx0LgotK2Z1bmNfY29udmVydF9wYXRoX25peF90b19jeWd3aW4gKCkKLSt7Ci0rICAkb3B0 X2RlYnVnCi0rICBmdW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQ9IiQxIgotKyAgaWYgdGVzdCAtbiAi JDEiOyB0aGVuCi0rICAgICMgUmVtb3ZlIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHBhdGggc2VwYXJh dG9yIGNoYXJhY3RlcnMgZnJvbQotKyAgICAjIEFSRy4gbXN5cyBiZWhhdmlvciBpcyBpbmNvbnNp c3RlbnQgaGVyZSwgY3lncGF0aCB0dXJucyB0aGVtCi0rICAgICMgaW50byAnLjsnIGFuZCAnOy4n LCBhbmQgd2luZXBhdGggaWdub3JlcyB0aGVtIGNvbXBsZXRlbHkuCi0rICAgIGZ1bmNfc3RyaXBu YW1lIDogOiAiJDEiCi0rICAgIGZ1bmNfdG9faG9zdF9wYXRoX3RtcDE9JGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdAotKyAgICBmdW5jX2NvbnZlcnRfY29yZV9wYXRoX3dpbmVfdG9fdzMyICIkZnVuY190 b19ob3N0X3BhdGhfdG1wMSIKLSsgICAgZnVuY19jeWdwYXRoIC11IC1wICIkZnVuY19jb252ZXJ0 X2NvcmVfcGF0aF93aW5lX3RvX3czMl9yZXN1bHQiCi0rICAgIGZ1bmNfdG9faG9zdF9wYXRoX3Jl c3VsdD0iJGZ1bmNfY3lncGF0aF9yZXN1bHQiCi0rICAgIGZ1bmNfY29udmVydF9wYXRoX2NoZWNr IDogOiBcCi0rICAgICAgIiRmdW5jX3RvX2hvc3RfcGF0aF90bXAxIiAiJGZ1bmNfdG9faG9zdF9w YXRoX3Jlc3VsdCIKLSsgICAgZnVuY19jb252ZXJ0X3BhdGhfZnJvbnRfYmFja19wYXRoc2VwICI6 KiIgIio6IiA6ICIkMSIKLSsgIGZpCi0rfQotKyMgZW5kIGZ1bmNfY29udmVydF9wYXRoX25peF90 b19jeWd3aW4KLSsKLSsKLSsjIGZ1bmNfbW9kZV9jb21waWxlIGFyZy4uLgotK2Z1bmNfbW9kZV9j b21waWxlICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgICMgR2V0IHRoZSBjb21waWxhdGlv biBjb21tYW5kIGFuZCB0aGUgc291cmNlIGZpbGUuCi0rICAgIGJhc2VfY29tcGlsZT0KLSsgICAg c3JjZmlsZT0iJG5vbm9wdCIgICMgIGFsd2F5cyBrZWVwIGEgbm9uLWVtcHR5IHZhbHVlIGluICJz cmNmaWxlIgotKyAgICBzdXBwcmVzc19vcHQ9eWVzCi0rICAgIHN1cHByZXNzX291dHB1dD0KLSsg ICAgYXJnX21vZGU9bm9ybWFsCi0rICAgIGxpYm9iaj0KLSsgICAgbGF0ZXI9Ci0rICAgIHBpZV9m bGFnPQotKwotKyAgICBmb3IgYXJnCi0rICAgIGRvCi0rICAgICAgY2FzZSAkYXJnX21vZGUgaW4K LSsgICAgICBhcmcgICkKLSsJIyBkbyBub3QgImNvbnRpbnVlIi4gIEluc3RlYWQsIGFkZCB0aGlz IHRvIGJhc2VfY29tcGlsZQotKwlsYXN0YXJnPSIkYXJnIgotKwlhcmdfbW9kZT1ub3JtYWwKLSsJ OzsKLSsKLSsgICAgICB0YXJnZXQgKQotKwlsaWJvYmo9IiRhcmciCi0rCWFyZ19tb2RlPW5vcm1h bAotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIG5vcm1hbCApCi0rCSMgQWNjZXB0IGFueSBj b21tYW5kLWxpbmUgb3B0aW9ucy4KLSsJY2FzZSAkYXJnIGluCi0rCS1vKQotKwkgIHRlc3QgLW4g IiRsaWJvYmoiICYmIFwKLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgInlvdSBjYW5ub3Qgc3BlY2lm eSBcYC1vJyBtb3JlIHRoYW4gb25jZSIKLSsJICBhcmdfbW9kZT10YXJnZXQKLSsJICBjb250aW51 ZQotKwkgIDs7Ci0rCi0rCS1waWUgfCAtZnBpZSB8IC1mUElFKQotKyAgICAgICAgICBmdW5jX2Fw cGVuZCBwaWVfZmxhZyAiICRhcmciCi0rCSAgY29udGludWUKLSsJICA7OwotKwotKwktc2hhcmVk IHwgLXN0YXRpYyB8IC1wcmVmZXItcGljIHwgLXByZWZlci1ub24tcGljKQotKwkgIGZ1bmNfYXBw ZW5kIGxhdGVyICIgJGFyZyIKLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCi0rCS1uby1zdXBwcmVz cykKLSsJICBzdXBwcmVzc19vcHQ9bm8KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCi0rCS1YY29t cGlsZXIpCi0rCSAgYXJnX21vZGU9YXJnICAjICB0aGUgbmV4dCBvbmUgZ29lcyBpbnRvIHRoZSAi YmFzZV9jb21waWxlIiBhcmcgbGlzdAotKwkgIGNvbnRpbnVlICAgICAgIyAgVGhlIGN1cnJlbnQg InNyY2ZpbGUiIHdpbGwgZWl0aGVyIGJlIHJldGFpbmVkIG9yCi0rCSAgOzsgICAgICAgICAgICAj ICByZXBsYWNlZCBsYXRlci4gIEkgd291bGQgZ3Vlc3MgdGhhdCB3b3VsZCBiZSBhIGJ1Zy4KLSsK LSsJLVdjLCopCi0rCSAgZnVuY19zdHJpcG5hbWUgJy1XYywnICcnICIkYXJnIgotKwkgIGFyZ3M9 JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgIGxhc3Rhcmc9Ci0rCSAgc2F2ZV9pZnM9IiRJRlMi OyBJRlM9JywnCi0rCSAgZm9yIGFyZyBpbiAkYXJnczsgZG8KLSsJICAgIElGUz0iJHNhdmVfaWZz IgotKwkgICAgZnVuY19hcHBlbmRfcXVvdGVkIGxhc3RhcmcgIiRhcmciCi0rCSAgZG9uZQotKwkg IElGUz0iJHNhdmVfaWZzIgotKwkgIGZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGxhc3RhcmciCi0r CSAgbGFzdGFyZz0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCi0rCSAgIyBBZGQgdGhlIGFyZ3Vt ZW50cyB0byBiYXNlX2NvbXBpbGUuCi0rCSAgZnVuY19hcHBlbmQgYmFzZV9jb21waWxlICIgJGxh c3RhcmciCi0rCSAgY29udGludWUKLSsJICA7OwotKwotKwkqKQotKwkgICMgQWNjZXB0IHRoZSBj dXJyZW50IGFyZ3VtZW50IGFzIHRoZSBzb3VyY2UgZmlsZS4KLSsJICAjIFRoZSBwcmV2aW91cyAi c3JjZmlsZSIgYmVjb21lcyB0aGUgY3VycmVudCBhcmd1bWVudC4KLSsJICAjCi0rCSAgbGFzdGFy Zz0iJHNyY2ZpbGUiCi0rCSAgc3JjZmlsZT0iJGFyZyIKLSsJICA7OwotKwllc2FjICAjICBjYXNl ICRhcmcKLSsJOzsKLSsgICAgICBlc2FjICAgICMgIGNhc2UgJGFyZ19tb2RlCi0rCi0rICAgICAg IyBBZXN0aGV0aWNhbGx5IHF1b3RlIHRoZSBwcmV2aW91cyBhcmd1bWVudC4KLSsgICAgICBmdW5j X2FwcGVuZF9xdW90ZWQgYmFzZV9jb21waWxlICIkbGFzdGFyZyIKLSsgICAgZG9uZSAjIGZvciBh cmcKLSsKLSsgICAgY2FzZSAkYXJnX21vZGUgaW4KLSsgICAgYXJnKQotKyAgICAgIGZ1bmNfZmF0 YWxfZXJyb3IgInlvdSBtdXN0IHNwZWNpZnkgYW4gYXJndW1lbnQgZm9yIC1YY29tcGlsZSIKLSsg ICAgICA7OwotKyAgICB0YXJnZXQpCi0rICAgICAgZnVuY19mYXRhbF9lcnJvciAieW91IG11c3Qg c3BlY2lmeSBhIHRhcmdldCB3aXRoIFxgLW8nIgotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAg IyBHZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgb2JqZWN0LgotKyAgICAgIHRlc3QgLXogIiRs aWJvYmoiICYmIHsKLSsJZnVuY19iYXNlbmFtZSAiJHNyY2ZpbGUiCi0rCWxpYm9iaj0iJGZ1bmNf YmFzZW5hbWVfcmVzdWx0IgotKyAgICAgIH0KLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAg ICMgUmVjb2duaXplIHNldmVyYWwgZGlmZmVyZW50IGZpbGUgc3VmZml4ZXMuCi0rICAgICMgSWYg dGhlIHVzZXIgc3BlY2lmaWVzIC1vIGZpbGUubywgaXQgaXMgcmVwbGFjZWQgd2l0aCBmaWxlLmxv Ci0rICAgIGNhc2UgJGxpYm9iaiBpbgotKyAgICAqLltjQ0ZTaWZtc29dIHwgXAotKyAgICAqLmFk YSB8ICouYWRiIHwgKi5hZHMgfCAqLmFzbSB8IFwKLSsgICAgKi5jKysgfCAqLmNjIHwgKi5paSB8 ICouY2xhc3MgfCAqLmNwcCB8ICouY3h4IHwgXAotKyAgICAqLltmRl1bMDldPyB8ICouZm9yIHwg Ki5qYXZhIHwgKi5vYmogfCAqLnN4IHwgKi5jdSB8ICouY3VwKQotKyAgICAgIGZ1bmNfeGZvcm0g IiRsaWJvYmoiCi0rICAgICAgbGlib2JqPSRmdW5jX3hmb3JtX3Jlc3VsdAotKyAgICAgIDs7Ci0r ICAgIGVzYWMKLSsKLSsgICAgY2FzZSAkbGlib2JqIGluCi0rICAgICoubG8pIGZ1bmNfbG8ybyAi JGxpYm9iaiI7IG9iaj0kZnVuY19sbzJvX3Jlc3VsdCA7OwotKyAgICAqKQotKyAgICAgIGZ1bmNf ZmF0YWxfZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgbmFtZSBvZiBsaWJyYXJ5IG9iamVjdCBmcm9t IFxgJGxpYm9iaiciCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBmdW5jX2luZmVyX3Rh ZyAkYmFzZV9jb21waWxlCi0rCi0rICAgIGZvciBhcmcgaW4gJGxhdGVyOyBkbwotKyAgICAgIGNh c2UgJGFyZyBpbgotKyAgICAgIC1zaGFyZWQpCi0rCXRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMi ICE9IHllcyAmJiBcCi0rCSAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJjYW4gbm90IGJ1aWxk IGEgc2hhcmVkIGxpYnJhcnkiCi0rCWJ1aWxkX29sZF9saWJzPW5vCi0rCWNvbnRpbnVlCi0rCTs7 Ci0rCi0rICAgICAgLXN0YXRpYykKLSsJYnVpbGRfbGlidG9vbF9saWJzPW5vCi0rCWJ1aWxkX29s ZF9saWJzPXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1wcmVmZXItcGljKQotKwlw aWNfbW9kZT15ZXMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtcHJlZmVyLW5vbi1waWMp Ci0rCXBpY19tb2RlPW5vCi0rCWNvbnRpbnVlCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICBkb25l Ci0rCi0rICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRsaWJvYmoiCi0rICAgIHRlc3QgIlgkbGli b2JqIiAhPSAiWCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIgXAotKyAgICAgICYmICRFQ0hP ICJYJGxpYm9iaiIgfCAkR1JFUCAnW11+I14qe307PD4/IiciJyInCSAmKCl8YCRbXScgXAotKyAg ICAgICYmIGZ1bmNfd2FybmluZyAibGlib2JqIG5hbWUgXGAkbGlib2JqJyBtYXkgbm90IGNvbnRh aW4gc2hlbGwgc3BlY2lhbCBjaGFyYWN0ZXJzLiIKLSsgICAgZnVuY19kaXJuYW1lX2FuZF9iYXNl bmFtZSAiJG9iaiIgIi8iICIiCi0rICAgIG9iam5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIK LSsgICAgeGRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0rICAgIGxvYmo9JHt4ZGlyfSRvYmpk aXIvJG9iam5hbWUKLSsKLSsgICAgdGVzdCAteiAiJGJhc2VfY29tcGlsZSIgJiYgXAotKyAgICAg IGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhIGNvbXBpbGF0aW9uIGNvbW1hbmQi Ci0rCi0rICAgICMgRGVsZXRlIGFueSBsZWZ0b3ZlciBsaWJyYXJ5IG9iamVjdHMuCi0rICAgIGlm IHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsgICAgICByZW1vdmVsaXN0PSIk b2JqICRsb2JqICRsaWJvYmogJHtsaWJvYmp9VCIKLSsgICAgZWxzZQotKyAgICAgIHJlbW92ZWxp c3Q9IiRsb2JqICRsaWJvYmogJHtsaWJvYmp9VCIKLSsgICAgZmkKLSsKLSsgICAgIyBPbiBDeWd3 aW4gdGhlcmUncyBubyAicmVhbCIgUElDIGZsYWcgc28gd2UgbXVzdCBidWlsZCBib3RoIG9iamVj dCB0eXBlcwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGN5Z3dpbiogfCBtaW5ndyogfCBw dzMyKiB8IG9zMiogfCBjZWdjYyopCi0rICAgICAgcGljX21vZGU9ZGVmYXVsdAotKyAgICAgIDs7 Ci0rICAgIGVzYWMKLSsgICAgaWYgdGVzdCAiJHBpY19tb2RlIiA9IG5vICYmIHRlc3QgIiRkZXBs aWJzX2NoZWNrX21ldGhvZCIgIT0gcGFzc19hbGw7IHRoZW4KLSsgICAgICAjIG5vbi1QSUMgY29k ZSBpbiBzaGFyZWQgbGlicmFyaWVzIGlzIG5vdCBzdXBwb3J0ZWQKLSsgICAgICBwaWNfbW9kZT1k ZWZhdWx0Ci0rICAgIGZpCi0rCi0rICAgICMgQ2FsY3VsYXRlIHRoZSBmaWxlbmFtZSBvZiB0aGUg b3V0cHV0IG9iamVjdCBpZiBjb21waWxlciBkb2VzCi0rICAgICMgbm90IHN1cHBvcnQgLW8gd2l0 aCAtYwotKyAgICBpZiB0ZXN0ICIkY29tcGlsZXJfY19vIiA9IG5vOyB0aGVuCi0rICAgICAgb3V0 cHV0X29iaj1gJEVDSE8gIiRzcmNmaWxlIiB8ICRTRUQgJ3MlXi4qLyUlOyBzJVwuW14uXSokJSUn YC4ke29iamV4dH0KLSsgICAgICBsb2NrZmlsZT0iJG91dHB1dF9vYmoubG9jayIKLSsgICAgZWxz ZQotKyAgICAgIG91dHB1dF9vYmo9Ci0rICAgICAgbmVlZF9sb2Nrcz1ubwotKyAgICAgIGxvY2tm aWxlPQotKyAgICBmaQotKwotKyAgICAjIExvY2sgdGhpcyBjcml0aWNhbCBzZWN0aW9uIGlmIGl0 IGlzIG5lZWRlZAotKyAgICAjIFdlIHVzZSB0aGlzIHNjcmlwdCBmaWxlIHRvIG1ha2UgdGhlIGxp bmssIGl0IGF2b2lkcyBjcmVhdGluZyBhIG5ldyBmaWxlCi0rICAgIGlmIHRlc3QgIiRuZWVkX2xv Y2tzIiA9IHllczsgdGhlbgotKyAgICAgIHVudGlsICRvcHRfZHJ5X3J1biB8fCBsbiAiJHByb2dw YXRoIiAiJGxvY2tmaWxlIiAyPi9kZXYvbnVsbDsgZG8KLSsJZnVuY19lY2hvICJXYWl0aW5nIGZv ciAkbG9ja2ZpbGUgdG8gYmUgcmVtb3ZlZCIKLSsJc2xlZXAgMgotKyAgICAgIGRvbmUKLSsgICAg ZWxpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJuOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtZiAi JGxvY2tmaWxlIjsgdGhlbgotKwkkRUNITyAiXAotKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGV4aXN0 cyBhbmQgY29udGFpbnM6Ci0rYGNhdCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgCi0rCi0rVGhpcyBp bmRpY2F0ZXMgdGhhdCBhbm90aGVyIHByb2Nlc3MgaXMgdHJ5aW5nIHRvIHVzZSB0aGUgc2FtZQot K3RlbXBvcmFyeSBvYmplY3QgZmlsZSwgYW5kIGxpYnRvb2wgY291bGQgbm90IHdvcmsgYXJvdW5k IGl0IGJlY2F1c2UKLSt5b3VyIGNvbXBpbGVyIGRvZXMgbm90IHN1cHBvcnQgXGAtYycgYW5kIFxg LW8nIHRvZ2V0aGVyLiAgSWYgeW91Ci0rcmVwZWF0IHRoaXMgY29tcGlsYXRpb24sIGl0IG1heSBz dWNjZWVkLCBieSBjaGFuY2UsIGJ1dCB5b3UgaGFkIGJldHRlcgotK2F2b2lkIHBhcmFsbGVsIGJ1 aWxkcyAobWFrZSAtaikgaW4gdGhpcyBwbGF0Zm9ybSwgb3IgZ2V0IGEgYmV0dGVyCi0rY29tcGls ZXIuIgotKwotKwkkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0Ci0rCWV4aXQgJEVYSVRf RkFJTFVSRQotKyAgICAgIGZpCi0rICAgICAgZnVuY19hcHBlbmQgcmVtb3ZlbGlzdCAiICRvdXRw dXRfb2JqIgotKyAgICAgICRFQ0hPICIkc3JjZmlsZSIgPiAiJGxvY2tmaWxlIgotKyAgICBmaQot KwotKyAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0Ci0rICAgIGZ1bmNfYXBwZW5k IHJlbW92ZWxpc3QgIiAkbG9ja2ZpbGUiCi0rICAgIHRyYXAgJyRvcHRfZHJ5X3J1biB8fCAkUk0g JHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVSRScgMSAyIDE1Ci0rCi0rICAgIGZ1bmNfdG9f dG9vbF9maWxlICIkc3JjZmlsZSIgZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIKLSsgICAg c3JjZmlsZT0kZnVuY190b190b29sX2ZpbGVfcmVzdWx0Ci0rICAgIGZ1bmNfcXVvdGVfZm9yX2V2 YWwgIiRzcmNmaWxlIgotKyAgICBxc3JjZmlsZT0kZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQK LSsKLSsgICAgIyBPbmx5IGJ1aWxkIGEgUElDIG9iamVjdCBpZiB3ZSBhcmUgYnVpbGRpbmcgbGli dG9vbCBsaWJyYXJpZXMuCi0rICAgIGlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVz OyB0aGVuCi0rICAgICAgIyBXaXRob3V0IHRoaXMgYXNzaWdubWVudCwgYmFzZV9jb21waWxlIGdl dHMgZW1wdGllZC4KLSsgICAgICBmYnNkX2hpZGVvdXNfc2hfYnVnPSRiYXNlX2NvbXBpbGUKLSsK LSsgICAgICBpZiB0ZXN0ICIkcGljX21vZGUiICE9IG5vOyB0aGVuCi0rCWNvbW1hbmQ9IiRiYXNl X2NvbXBpbGUgJHFzcmNmaWxlICRwaWNfZmxhZyIKLSsgICAgICBlbHNlCi0rCSMgRG9uJ3QgYnVp bGQgUElDIGNvZGUKLSsJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNyY2ZpbGUiCi0rICAgICAg ZmkKLSsKLSsgICAgICBmdW5jX21rZGlyX3AgIiR4ZGlyJG9iamRpciIKLSsKLSsgICAgICBpZiB0 ZXN0IC16ICIkb3V0cHV0X29iaiI7IHRoZW4KLSsJIyBQbGFjZSBQSUMgb2JqZWN0cyBpbiAkb2Jq ZGlyCi0rCWZ1bmNfYXBwZW5kIGNvbW1hbmQgIiAtbyAkbG9iaiIKLSsgICAgICBmaQotKwotKyAg ICAgIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSAiJGNvbW1hbmQiCVwKLSsgICAgICAgICAgJ3Rlc3Qg LW4gIiRvdXRwdXRfb2JqIiAmJiAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJEVYSVRfRkFJTFVSRScK LSsKLSsgICAgICBpZiB0ZXN0ICIkbmVlZF9sb2NrcyIgPSB3YXJuICYmCi0rCSB0ZXN0ICJYYGNh dCAkbG9ja2ZpbGUgMj4vZGV2L251bGxgIiAhPSAiWCRzcmNmaWxlIjsgdGhlbgotKwkkRUNITyAi XAotKyoqKiBFUlJPUiwgJGxvY2tmaWxlIGNvbnRhaW5zOgotK2BjYXQgJGxvY2tmaWxlIDI+L2Rl di9udWxsYAotKwotK2J1dCBpdCBzaG91bGQgY29udGFpbjoKLSskc3JjZmlsZQotKwotK1RoaXMg aW5kaWNhdGVzIHRoYXQgYW5vdGhlciBwcm9jZXNzIGlzIHRyeWluZyB0byB1c2UgdGhlIHNhbWUK LSt0ZW1wb3Jhcnkgb2JqZWN0IGZpbGUsIGFuZCBsaWJ0b29sIGNvdWxkIG5vdCB3b3JrIGFyb3Vu ZCBpdCBiZWNhdXNlCi0reW91ciBjb21waWxlciBkb2VzIG5vdCBzdXBwb3J0IFxgLWMnIGFuZCBc YC1vJyB0b2dldGhlci4gIElmIHlvdQotK3JlcGVhdCB0aGlzIGNvbXBpbGF0aW9uLCBpdCBtYXkg c3VjY2VlZCwgYnkgY2hhbmNlLCBidXQgeW91IGhhZCBiZXR0ZXIKLSthdm9pZCBwYXJhbGxlbCBi dWlsZHMgKG1ha2UgLWopIGluIHRoaXMgcGxhdGZvcm0sIG9yIGdldCBhIGJldHRlcgotK2NvbXBp bGVyLiIKLSsKLSsJJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVtb3ZlbGlzdAotKwlleGl0ICRFWElU X0ZBSUxVUkUKLSsgICAgICBmaQotKwotKyAgICAgICMgSnVzdCBtb3ZlIHRoZSBvYmplY3QgaWYg bmVlZGVkLCB0aGVuIGdvIG9uIHRvIGNvbXBpbGUgdGhlIG5leHQgb25lCi0rICAgICAgaWYgdGVz dCAtbiAiJG91dHB1dF9vYmoiICYmIHRlc3QgIlgkb3V0cHV0X29iaiIgIT0gIlgkbG9iaiI7IHRo ZW4KLSsJZnVuY19zaG93X2V2YWwgJyRNViAiJG91dHB1dF9vYmoiICIkbG9iaiInIFwKLSsJICAn ZXJyb3I9JD87ICRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3Q7IGV4aXQgJGVycm9yJwot KyAgICAgIGZpCi0rCi0rICAgICAgIyBBbGxvdyBlcnJvciBtZXNzYWdlcyBvbmx5IGZyb20gdGhl IGZpcnN0IGNvbXBpbGF0aW9uLgotKyAgICAgIGlmIHRlc3QgIiRzdXBwcmVzc19vcHQiID0geWVz OyB0aGVuCi0rCXN1cHByZXNzX291dHB1dD0nID4vZGV2L251bGwgMj4mMScKLSsgICAgICBmaQot KyAgICBmaQotKwotKyAgICAjIE9ubHkgYnVpbGQgYSBwb3NpdGlvbi1kZXBlbmRlbnQgb2JqZWN0 IGlmIHdlIGJ1aWxkIG9sZCBsaWJyYXJpZXMuCi0rICAgIGlmIHRlc3QgIiRidWlsZF9vbGRfbGli cyIgPSB5ZXM7IHRoZW4KLSsgICAgICBpZiB0ZXN0ICIkcGljX21vZGUiICE9IHllczsgdGhlbgot KwkjIERvbid0IGJ1aWxkIFBJQyBjb2RlCi0rCWNvbW1hbmQ9IiRiYXNlX2NvbXBpbGUgJHFzcmNm aWxlJHBpZV9mbGFnIgotKyAgICAgIGVsc2UKLSsJY29tbWFuZD0iJGJhc2VfY29tcGlsZSAkcXNy Y2ZpbGUgJHBpY19mbGFnIgotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJGNvbXBpbGVyX2Nf byIgPSB5ZXM7IHRoZW4KLSsJZnVuY19hcHBlbmQgY29tbWFuZCAiIC1vICRvYmoiCi0rICAgICAg ZmkKLSsKLSsgICAgICAjIFN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBpZiB3ZSBhbHJlYWR5IGRp ZCBhIFBJQyBjb21waWxhdGlvbi4KLSsgICAgICBmdW5jX2FwcGVuZCBjb21tYW5kICIkc3VwcHJl c3Nfb3V0cHV0IgotKyAgICAgIGZ1bmNfc2hvd19ldmFsX2xvY2FsZSAiJGNvbW1hbmQiIFwKLSsg ICAgICAgICckb3B0X2RyeV9ydW4gfHwgJFJNICRyZW1vdmVsaXN0OyBleGl0ICRFWElUX0ZBSUxV UkUnCi0rCi0rICAgICAgaWYgdGVzdCAiJG5lZWRfbG9ja3MiID0gd2FybiAmJgotKwkgdGVzdCAi WGBjYXQgJGxvY2tmaWxlIDI+L2Rldi9udWxsYCIgIT0gIlgkc3JjZmlsZSI7IHRoZW4KLSsJJEVD SE8gIlwKLSsqKiogRVJST1IsICRsb2NrZmlsZSBjb250YWluczoKLStgY2F0ICRsb2NrZmlsZSAy Pi9kZXYvbnVsbGAKLSsKLStidXQgaXQgc2hvdWxkIGNvbnRhaW46Ci0rJHNyY2ZpbGUKLSsKLStU aGlzIGluZGljYXRlcyB0aGF0IGFub3RoZXIgcHJvY2VzcyBpcyB0cnlpbmcgdG8gdXNlIHRoZSBz YW1lCi0rdGVtcG9yYXJ5IG9iamVjdCBmaWxlLCBhbmQgbGlidG9vbCBjb3VsZCBub3Qgd29yayBh cm91bmQgaXQgYmVjYXVzZQotK3lvdXIgY29tcGlsZXIgZG9lcyBub3Qgc3VwcG9ydCBcYC1jJyBh bmQgXGAtbycgdG9nZXRoZXIuICBJZiB5b3UKLStyZXBlYXQgdGhpcyBjb21waWxhdGlvbiwgaXQg bWF5IHN1Y2NlZWQsIGJ5IGNoYW5jZSwgYnV0IHlvdSBoYWQgYmV0dGVyCi0rYXZvaWQgcGFyYWxs ZWwgYnVpbGRzIChtYWtlIC1qKSBpbiB0aGlzIHBsYXRmb3JtLCBvciBnZXQgYSBiZXR0ZXIKLStj b21waWxlci4iCi0rCi0rCSRvcHRfZHJ5X3J1biB8fCAkUk0gJHJlbW92ZWxpc3QKLSsJZXhpdCAk RVhJVF9GQUlMVVJFCi0rICAgICAgZmkKLSsKLSsgICAgICAjIEp1c3QgbW92ZSB0aGUgb2JqZWN0 IGlmIG5lZWRlZAotKyAgICAgIGlmIHRlc3QgLW4gIiRvdXRwdXRfb2JqIiAmJiB0ZXN0ICJYJG91 dHB1dF9vYmoiICE9ICJYJG9iaiI7IHRoZW4KLSsJZnVuY19zaG93X2V2YWwgJyRNViAiJG91dHB1 dF9vYmoiICIkb2JqIicgXAotKwkgICdlcnJvcj0kPzsgJG9wdF9kcnlfcnVuIHx8ICRSTSAkcmVt b3ZlbGlzdDsgZXhpdCAkZXJyb3InCi0rICAgICAgZmkKLSsgICAgZmkKLSsKLSsgICAgJG9wdF9k cnlfcnVuIHx8IHsKLSsgICAgICBmdW5jX3dyaXRlX2xpYnRvb2xfb2JqZWN0ICIkbGlib2JqIiAi JG9iamRpci8kb2JqbmFtZSIgIiRvYmpuYW1lIgotKwotKyAgICAgICMgVW5sb2NrIHRoZSBjcml0 aWNhbCBzZWN0aW9uIGlmIGl0IHdhcyBsb2NrZWQKLSsgICAgICBpZiB0ZXN0ICIkbmVlZF9sb2Nr cyIgIT0gbm87IHRoZW4KLSsJcmVtb3ZlbGlzdD0kbG9ja2ZpbGUKLSsgICAgICAgICRSTSAiJGxv Y2tmaWxlIgotKyAgICAgIGZpCi0rICAgIH0KLSsKLSsgICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0r fQotKwotKyRvcHRfaGVscCB8fCB7Ci0rICB0ZXN0ICIkb3B0X21vZGUiID0gY29tcGlsZSAmJiBm dW5jX21vZGVfY29tcGlsZSAkezErIiRAIn0KLSt9Ci0rCi0rZnVuY19tb2RlX2hlbHAgKCkKLSt7 Ci0rICAgICMgV2UgbmVlZCB0byBkaXNwbGF5IGhlbHAgZm9yIGVhY2ggb2YgdGhlIG1vZGVzLgot KyAgICBjYXNlICRvcHRfbW9kZSBpbgotKyAgICAgICIiKQotKyAgICAgICAgIyBHZW5lcmljIGhl bHAgaXMgZXh0cmFjdGVkIGZyb20gdGhlIHVzYWdlIGNvbW1lbnRzCi0rICAgICAgICAjIGF0IHRo ZSBzdGFydCBvZiB0aGlzIGZpbGUuCi0rICAgICAgICBmdW5jX2hlbHAKLSsgICAgICAgIDs7Ci0r Ci0rICAgICAgY2xlYW4pCi0rICAgICAgICAkRUNITyBcCi0rIlVzYWdlOiAkcHJvZ25hbWUgW09Q VElPTl0uLi4gLS1tb2RlPWNsZWFuIFJNIFtSTS1PUFRJT05dLi4uIEZJTEUuLi4KLSsKLStSZW1v dmUgZmlsZXMgZnJvbSB0aGUgYnVpbGQgZGlyZWN0b3J5LgotKwotK1JNIGlzIHRoZSBuYW1lIG9m IHRoZSBwcm9ncmFtIHRvIHVzZSB0byBkZWxldGUgZmlsZXMgYXNzb2NpYXRlZCB3aXRoIGVhY2gg RklMRQotKyh0eXBpY2FsbHkgXGAvYmluL3JtJykuICBSTS1PUFRJT05TIGFyZSBvcHRpb25zIChz dWNoIGFzIFxgLWYnKSB0byBiZSBwYXNzZWQKLSt0byBSTS4KLSsKLStJZiBGSUxFIGlzIGEgbGli dG9vbCBsaWJyYXJ5LCBvYmplY3Qgb3IgcHJvZ3JhbSwgYWxsIHRoZSBmaWxlcyBhc3NvY2lhdGVk Ci0rd2l0aCBpdCBhcmUgZGVsZXRlZC4gT3RoZXJ3aXNlLCBvbmx5IEZJTEUgaXRzZWxmIGlzIGRl bGV0ZWQgdXNpbmcgUk0uIgotKyAgICAgICAgOzsKLSsKLSsgICAgICBjb21waWxlKQotKyAgICAg ICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9Y29tcGlsZSBD T01QSUxFLUNPTU1BTkQuLi4gU09VUkNFRklMRQotKwotK0NvbXBpbGUgYSBzb3VyY2UgZmlsZSBp bnRvIGEgbGlidG9vbCBsaWJyYXJ5IG9iamVjdC4KLSsKLStUaGlzIG1vZGUgYWNjZXB0cyB0aGUg Zm9sbG93aW5nIGFkZGl0aW9uYWwgb3B0aW9uczoKLSsKLSsgIC1vIE9VVFBVVC1GSUxFICAgIHNl dCB0aGUgb3V0cHV0IGZpbGUgbmFtZSB0byBPVVRQVVQtRklMRQotKyAgLW5vLXN1cHByZXNzICAg ICAgZG8gbm90IHN1cHByZXNzIGNvbXBpbGVyIG91dHB1dCBmb3IgbXVsdGlwbGUgcGFzc2VzCi0r ICAtcHJlZmVyLXBpYyAgICAgICB0cnkgdG8gYnVpbGQgUElDIG9iamVjdHMgb25seQotKyAgLXBy ZWZlci1ub24tcGljICAgdHJ5IHRvIGJ1aWxkIG5vbi1QSUMgb2JqZWN0cyBvbmx5Ci0rICAtc2hh cmVkICAgICAgICAgICBkbyBub3QgYnVpbGQgYSBcYC5vJyBmaWxlIHN1aXRhYmxlIGZvciBzdGF0 aWMgbGlua2luZwotKyAgLXN0YXRpYyAgICAgICAgICAgb25seSBidWlsZCBhIFxgLm8nIGZpbGUg c3VpdGFibGUgZm9yIHN0YXRpYyBsaW5raW5nCi0rICAtV2MsRkxBRyAgICAgICAgICBwYXNzIEZM QUcgZGlyZWN0bHkgdG8gdGhlIGNvbXBpbGVyCi0rCi0rQ09NUElMRS1DT01NQU5EIGlzIGEgY29t bWFuZCB0byBiZSB1c2VkIGluIGNyZWF0aW5nIGEgXGBzdGFuZGFyZCcgb2JqZWN0IGZpbGUKLStm cm9tIHRoZSBnaXZlbiBTT1VSQ0VGSUxFLgotKwotK1RoZSBvdXRwdXQgZmlsZSBuYW1lIGlzIGRl dGVybWluZWQgYnkgcmVtb3ZpbmcgdGhlIGRpcmVjdG9yeSBjb21wb25lbnQgZnJvbQotK1NPVVJD RUZJTEUsIHRoZW4gc3Vic3RpdHV0aW5nIHRoZSBDIHNvdXJjZSBjb2RlIHN1ZmZpeCBcYC5jJyB3 aXRoIHRoZQotK2xpYnJhcnkgb2JqZWN0IHN1ZmZpeCwgXGAubG8nLiIKLSsgICAgICAgIDs7Ci0r Ci0rICAgICAgZXhlY3V0ZSkKLSsgICAgICAgICRFQ0hPIFwKLSsiVXNhZ2U6ICRwcm9nbmFtZSBb T1BUSU9OXS4uLiAtLW1vZGU9ZXhlY3V0ZSBDT01NQU5EIFtBUkdTXS4uLgotKwotK0F1dG9tYXRp Y2FsbHkgc2V0IGxpYnJhcnkgcGF0aCwgdGhlbiBydW4gYSBwcm9ncmFtLgotKwotK1RoaXMgbW9k ZSBhY2NlcHRzIHRoZSBmb2xsb3dpbmcgYWRkaXRpb25hbCBvcHRpb25zOgotKwotKyAgLWRsb3Bl biBGSUxFICAgICAgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyBGSUxFIHRvIHRoZSBsaWJy YXJ5IHBhdGgKLSsKLStUaGlzIG1vZGUgc2V0cyB0aGUgbGlicmFyeSBwYXRoIGVudmlyb25tZW50 IHZhcmlhYmxlIGFjY29yZGluZyB0byBcYC1kbG9wZW4nCi0rZmxhZ3MuCi0rCi0rSWYgYW55IG9m IHRoZSBBUkdTIGFyZSBsaWJ0b29sIGV4ZWN1dGFibGUgd3JhcHBlcnMsIHRoZW4gdGhleSBhcmUg dHJhbnNsYXRlZAotK2ludG8gdGhlaXIgY29ycmVzcG9uZGluZyB1bmluc3RhbGxlZCBiaW5hcnks IGFuZCBhbnkgb2YgdGhlaXIgcmVxdWlyZWQgbGlicmFyeQotK2RpcmVjdG9yaWVzIGFyZSBhZGRl ZCB0byB0aGUgbGlicmFyeSBwYXRoLgotKwotK1RoZW4sIENPTU1BTkQgaXMgZXhlY3V0ZWQsIHdp dGggQVJHUyBhcyBhcmd1bWVudHMuIgotKyAgICAgICAgOzsKLSsKLSsgICAgICBmaW5pc2gpCi0r ICAgICAgICAkRUNITyBcCi0rIlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWZp bmlzaCBbTElCRElSXS4uLgotKwotK0NvbXBsZXRlIHRoZSBpbnN0YWxsYXRpb24gb2YgbGlidG9v bCBsaWJyYXJpZXMuCi0rCi0rRWFjaCBMSUJESVIgaXMgYSBkaXJlY3RvcnkgdGhhdCBjb250YWlu cyBsaWJ0b29sIGxpYnJhcmllcy4KLSsKLStUaGUgY29tbWFuZHMgdGhhdCB0aGlzIG1vZGUgZXhl Y3V0ZXMgbWF5IHJlcXVpcmUgc3VwZXJ1c2VyIHByaXZpbGVnZXMuICBVc2UKLSt0aGUgXGAtLWRy eS1ydW4nIG9wdGlvbiBpZiB5b3UganVzdCB3YW50IHRvIHNlZSB3aGF0IHdvdWxkIGJlIGV4ZWN1 dGVkLiIKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgaW5zdGFsbCkKLSsgICAgICAgICRFQ0hPIFwK LSsiVXNhZ2U6ICRwcm9nbmFtZSBbT1BUSU9OXS4uLiAtLW1vZGU9aW5zdGFsbCBJTlNUQUxMLUNP TU1BTkQuLi4KLSsKLStJbnN0YWxsIGV4ZWN1dGFibGVzIG9yIGxpYnJhcmllcy4KLSsKLStJTlNU QUxMLUNPTU1BTkQgaXMgdGhlIGluc3RhbGxhdGlvbiBjb21tYW5kLiAgVGhlIGZpcnN0IGNvbXBv bmVudCBzaG91bGQgYmUKLStlaXRoZXIgdGhlIFxgaW5zdGFsbCcgb3IgXGBjcCcgcHJvZ3JhbS4K LSsKLStUaGUgZm9sbG93aW5nIGNvbXBvbmVudHMgb2YgSU5TVEFMTC1DT01NQU5EIGFyZSB0cmVh dGVkIHNwZWNpYWxseToKLSsKLSsgIC1pbnN0LXByZWZpeC1kaXIgUFJFRklYLURJUiAgVXNlIFBS RUZJWC1ESVIgYXMgYSBzdGFnaW5nIGFyZWEgZm9yIGluc3RhbGxhdGlvbgotKwotK1RoZSByZXN0 IG9mIHRoZSBjb21wb25lbnRzIGFyZSBpbnRlcnByZXRlZCBhcyBhcmd1bWVudHMgdG8gdGhhdCBj b21tYW5kIChvbmx5Ci0rQlNELWNvbXBhdGlibGUgaW5zdGFsbCBvcHRpb25zIGFyZSByZWNvZ25p emVkKS4iCi0rICAgICAgICA7OwotKwotKyAgICAgIGxpbmspCi0rICAgICAgICAkRUNITyBcCi0r IlVzYWdlOiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPWxpbmsgTElOSy1DT01NQU5ELi4u Ci0rCi0rTGluayBvYmplY3QgZmlsZXMgb3IgbGlicmFyaWVzIHRvZ2V0aGVyIHRvIGZvcm0gYW5v dGhlciBsaWJyYXJ5LCBvciB0bwotK2NyZWF0ZSBhbiBleGVjdXRhYmxlIHByb2dyYW0uCi0rCi0r TElOSy1DT01NQU5EIGlzIGEgY29tbWFuZCB1c2luZyB0aGUgQyBjb21waWxlciB0aGF0IHlvdSB3 b3VsZCB1c2UgdG8gY3JlYXRlCi0rYSBwcm9ncmFtIGZyb20gc2V2ZXJhbCBvYmplY3QgZmlsZXMu Ci0rCi0rVGhlIGZvbGxvd2luZyBjb21wb25lbnRzIG9mIExJTkstQ09NTUFORCBhcmUgdHJlYXRl ZCBzcGVjaWFsbHk6Ci0rCi0rICAtYWxsLXN0YXRpYyAgICAgICBkbyBub3QgZG8gYW55IGR5bmFt aWMgbGlua2luZyBhdCBhbGwKLSsgIC1hdm9pZC12ZXJzaW9uICAgIGRvIG5vdCBhZGQgYSB2ZXJz aW9uIHN1ZmZpeCBpZiBwb3NzaWJsZQotKyAgLWJpbmRpciBCSU5ESVIgICAgc3BlY2lmeSBwYXRo IHRvIGJpbmFyaWVzIGRpcmVjdG9yeSAoZm9yIHN5c3RlbXMgd2hlcmUKLSsgICAgICAgICAgICAg ICAgICAgIGxpYnJhcmllcyBtdXN0IGJlIGZvdW5kIGluIHRoZSBQQVRIIHNldHRpbmcgYXQgcnVu dGltZSkKLSsgIC1kbG9wZW4gRklMRSAgICAgIFxgLWRscHJlb3BlbicgRklMRSBpZiBpdCBjYW5u b3QgYmUgZGxvcGVuZWQgYXQgcnVudGltZQotKyAgLWRscHJlb3BlbiBGSUxFICAgbGluayBpbiBG SUxFIGFuZCBhZGQgaXRzIHN5bWJvbHMgdG8gbHRfcHJlbG9hZGVkX3N5bWJvbHMKLSsgIC1leHBv cnQtZHluYW1pYyAgIGFsbG93IHN5bWJvbHMgZnJvbSBPVVRQVVQtRklMRSB0byBiZSByZXNvbHZl ZCB3aXRoIGRsc3ltKDMpCi0rICAtZXhwb3J0LXN5bWJvbHMgU1lNRklMRQotKyAgICAgICAgICAg ICAgICAgICAgdHJ5IHRvIGV4cG9ydCBvbmx5IHRoZSBzeW1ib2xzIGxpc3RlZCBpbiBTWU1GSUxF Ci0rICAtZXhwb3J0LXN5bWJvbHMtcmVnZXggUkVHRVgKLSsgICAgICAgICAgICAgICAgICAgIHRy eSB0byBleHBvcnQgb25seSB0aGUgc3ltYm9scyBtYXRjaGluZyBSRUdFWAotKyAgLUxMSUJESVIg ICAgICAgICAgc2VhcmNoIExJQkRJUiBmb3IgcmVxdWlyZWQgaW5zdGFsbGVkIGxpYnJhcmllcwot KyAgLWxOQU1FICAgICAgICAgICAgT1VUUFVULUZJTEUgcmVxdWlyZXMgdGhlIGluc3RhbGxlZCBs aWJyYXJ5IGxpYk5BTUUKLSsgIC1tb2R1bGUgICAgICAgICAgIGJ1aWxkIGEgbGlicmFyeSB0aGF0 IGNhbiBkbG9wZW5lZAotKyAgLW5vLWZhc3QtaW5zdGFsbCAgZGlzYWJsZSB0aGUgZmFzdC1pbnN0 YWxsIG1vZGUKLSsgIC1uby1pbnN0YWxsICAgICAgIGxpbmsgYSBub3QtaW5zdGFsbGFibGUgZXhl Y3V0YWJsZQotKyAgLW5vLXVuZGVmaW5lZCAgICAgZGVjbGFyZSB0aGF0IGEgbGlicmFyeSBkb2Vz IG5vdCByZWZlciB0byBleHRlcm5hbCBzeW1ib2xzCi0rICAtbyBPVVRQVVQtRklMRSAgICBjcmVh dGUgT1VUUFVULUZJTEUgZnJvbSB0aGUgc3BlY2lmaWVkIG9iamVjdHMKLSsgIC1vYmplY3RsaXN0 IEZJTEUgIFVzZSBhIGxpc3Qgb2Ygb2JqZWN0IGZpbGVzIGZvdW5kIGluIEZJTEUgdG8gc3BlY2lm eSBvYmplY3RzCi0rICAtcHJlY2lvdXMtZmlsZXMtcmVnZXggUkVHRVgKLSsgICAgICAgICAgICAg ICAgICAgIGRvbid0IHJlbW92ZSBvdXRwdXQgZmlsZXMgbWF0Y2hpbmcgUkVHRVgKLSsgIC1yZWxl YXNlIFJFTEVBU0UgIHNwZWNpZnkgcGFja2FnZSByZWxlYXNlIGluZm9ybWF0aW9uCi0rICAtcnBh dGggTElCRElSICAgICB0aGUgY3JlYXRlZCBsaWJyYXJ5IHdpbGwgZXZlbnR1YWxseSBiZSBpbnN0 YWxsZWQgaW4gTElCRElSCi0rICAtUlsgXUxJQkRJUiAgICAgICBhZGQgTElCRElSIHRvIHRoZSBy dW50aW1lIHBhdGggb2YgcHJvZ3JhbXMgYW5kIGxpYnJhcmllcwotKyAgLXNoYXJlZCAgICAgICAg ICAgb25seSBkbyBkeW5hbWljIGxpbmtpbmcgb2YgbGlidG9vbCBsaWJyYXJpZXMKLSsgIC1zaHJl eHQgU1VGRklYICAgIG92ZXJyaWRlIHRoZSBzdGFuZGFyZCBzaGFyZWQgbGlicmFyeSBmaWxlIGV4 dGVuc2lvbgotKyAgLXN0YXRpYyAgICAgICAgICAgZG8gbm90IGRvIGFueSBkeW5hbWljIGxpbmtp bmcgb2YgdW5pbnN0YWxsZWQgbGlidG9vbCBsaWJyYXJpZXMKLSsgIC1zdGF0aWMtbGlidG9vbC1s aWJzCi0rICAgICAgICAgICAgICAgICAgICBkbyBub3QgZG8gYW55IGR5bmFtaWMgbGlua2luZyBv ZiBsaWJ0b29sIGxpYnJhcmllcwotKyAgLXZlcnNpb24taW5mbyBDVVJSRU5UWzpSRVZJU0lPTls6 QUdFXV0KLSsgICAgICAgICAgICAgICAgICAgIHNwZWNpZnkgbGlicmFyeSB2ZXJzaW9uIGluZm8g W2VhY2ggdmFyaWFibGUgZGVmYXVsdHMgdG8gMF0KLSsgIC13ZWFrIExJQk5BTUUgICAgIGRlY2xh cmUgdGhhdCB0aGUgdGFyZ2V0IHByb3ZpZGVzIHRoZSBMSUJOQU1FIGludGVyZmFjZQotKyAgLVdj LEZMQUcKLSsgIC1YY29tcGlsZXIgRkxBRyAgIHBhc3MgbGlua2VyLXNwZWNpZmljIEZMQUcgZGly ZWN0bHkgdG8gdGhlIGNvbXBpbGVyCi0rICAtV2wsRkxBRwotKyAgLVhsaW5rZXIgRkxBRyAgICAg cGFzcyBsaW5rZXItc3BlY2lmaWMgRkxBRyBkaXJlY3RseSB0byB0aGUgbGlua2VyCi0rICAtWEND bGlua2VyIEZMQUcgICBwYXNzIGxpbmstc3BlY2lmaWMgRkxBRyB0byB0aGUgY29tcGlsZXIgZHJp dmVyIChDQykKLSsKLStBbGwgb3RoZXIgb3B0aW9ucyAoYXJndW1lbnRzIGJlZ2lubmluZyB3aXRo IFxgLScpIGFyZSBpZ25vcmVkLgotKwotK0V2ZXJ5IG90aGVyIGFyZ3VtZW50IGlzIHRyZWF0ZWQg YXMgYSBmaWxlbmFtZS4gIEZpbGVzIGVuZGluZyBpbiBcYC5sYScgYXJlCi0rdHJlYXRlZCBhcyB1 bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcywgb3RoZXIgZmlsZXMgYXJlIHN0YW5kYXJkIG9y IGxpYnJhcnkKLStvYmplY3QgZmlsZXMuCi0rCi0rSWYgdGhlIE9VVFBVVC1GSUxFIGVuZHMgaW4g XGAubGEnLCB0aGVuIGEgbGlidG9vbCBsaWJyYXJ5IGlzIGNyZWF0ZWQsCi0rb25seSBsaWJyYXJ5 IG9iamVjdHMgKFxgLmxvJyBmaWxlcykgbWF5IGJlIHNwZWNpZmllZCwgYW5kIFxgLXJwYXRoJyBp cwotK3JlcXVpcmVkLCBleGNlcHQgd2hlbiBjcmVhdGluZyBhIGNvbnZlbmllbmNlIGxpYnJhcnku Ci0rCi0rSWYgT1VUUFVULUZJTEUgZW5kcyBpbiBcYC5hJyBvciBcYC5saWInLCB0aGVuIGEgc3Rh bmRhcmQgbGlicmFyeSBpcyBjcmVhdGVkCi0rdXNpbmcgXGBhcicgYW5kIFxgcmFubGliJywgb3Ig b24gV2luZG93cyB1c2luZyBcYGxpYicuCi0rCi0rSWYgT1VUUFVULUZJTEUgZW5kcyBpbiBcYC5s bycgb3IgXGAuJHtvYmpleHR9JywgdGhlbiBhIHJlbG9hZGFibGUgb2JqZWN0IGZpbGUKLStpcyBj cmVhdGVkLCBvdGhlcndpc2UgYW4gZXhlY3V0YWJsZSBwcm9ncmFtIGlzIGNyZWF0ZWQuIgotKyAg ICAgICAgOzsKLSsKLSsgICAgICB1bmluc3RhbGwpCi0rICAgICAgICAkRUNITyBcCi0rIlVzYWdl OiAkcHJvZ25hbWUgW09QVElPTl0uLi4gLS1tb2RlPXVuaW5zdGFsbCBSTSBbUk0tT1BUSU9OXS4u LiBGSUxFLi4uCi0rCi0rUmVtb3ZlIGxpYnJhcmllcyBmcm9tIGFuIGluc3RhbGxhdGlvbiBkaXJl Y3RvcnkuCi0rCi0rUk0gaXMgdGhlIG5hbWUgb2YgdGhlIHByb2dyYW0gdG8gdXNlIHRvIGRlbGV0 ZSBmaWxlcyBhc3NvY2lhdGVkIHdpdGggZWFjaCBGSUxFCi0rKHR5cGljYWxseSBcYC9iaW4vcm0n KS4gIFJNLU9QVElPTlMgYXJlIG9wdGlvbnMgKHN1Y2ggYXMgXGAtZicpIHRvIGJlIHBhc3NlZAot K3RvIFJNLgotKwotK0lmIEZJTEUgaXMgYSBsaWJ0b29sIGxpYnJhcnksIGFsbCB0aGUgZmlsZXMg YXNzb2NpYXRlZCB3aXRoIGl0IGFyZSBkZWxldGVkLgotK090aGVyd2lzZSwgb25seSBGSUxFIGl0 c2VsZiBpcyBkZWxldGVkIHVzaW5nIFJNLiIKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgKikKLSsg ICAgICAgIGZ1bmNfZmF0YWxfaGVscCAiaW52YWxpZCBvcGVyYXRpb24gbW9kZSBcYCRvcHRfbW9k ZSciCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGVjaG8KLSsgICAgJEVDSE8gIlRy eSBcYCRwcm9nbmFtZSAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IG90aGVyIG1v ZGVzLiIKLSt9Ci0rCi0rIyBOb3cgdGhhdCB3ZSd2ZSBjb2xsZWN0ZWQgYSBwb3NzaWJsZSAtLW1v ZGUgYXJnLCBzaG93IGhlbHAgaWYgbmVjZXNzYXJ5Ci0raWYgJG9wdF9oZWxwOyB0aGVuCi0rICBp ZiB0ZXN0ICIkb3B0X2hlbHAiID0gOjsgdGhlbgotKyAgICBmdW5jX21vZGVfaGVscAotKyAgZWxz ZQotKyAgICB7Ci0rICAgICAgZnVuY19oZWxwIG5vZXhpdAotKyAgICAgIGZvciBvcHRfbW9kZSBp biBjb21waWxlIGxpbmsgZXhlY3V0ZSBpbnN0YWxsIGZpbmlzaCB1bmluc3RhbGwgY2xlYW47IGRv Ci0rCWZ1bmNfbW9kZV9oZWxwCi0rICAgICAgZG9uZQotKyAgICB9IHwgc2VkIC1uICcxcDsgMiwk cy9eVXNhZ2U6LyAgb3I6IC9wJwotKyAgICB7Ci0rICAgICAgZnVuY19oZWxwIG5vZXhpdAotKyAg ICAgIGZvciBvcHRfbW9kZSBpbiBjb21waWxlIGxpbmsgZXhlY3V0ZSBpbnN0YWxsIGZpbmlzaCB1 bmluc3RhbGwgY2xlYW47IGRvCi0rCWVjaG8KLSsJZnVuY19tb2RlX2hlbHAKLSsgICAgICBkb25l Ci0rICAgIH0gfAotKyAgICBzZWQgJzFkCi0rICAgICAgL15XaGVuIHJlcG9ydGluZy8sL15SZXBv cnQvewotKwlICi0rCWQKLSsgICAgICB9Ci0rICAgICAgJHgKLSsgICAgICAvaW5mb3JtYXRpb24g YWJvdXQgb3RoZXIgbW9kZXMvZAotKyAgICAgIC9tb3JlIGRldGFpbGVkIC4qTU9ERS9kCi0rICAg ICAgcy9eVXNhZ2U6LiotLW1vZGU9XChbXiBdKlwpIC4qL0Rlc2NyaXB0aW9uIG9mIFwxIG1vZGU6 LycKLSsgIGZpCi0rICBleGl0ICQ/Ci0rZmkKLSsKLSsKLSsjIGZ1bmNfbW9kZV9leGVjdXRlIGFy Zy4uLgotK2Z1bmNfbW9kZV9leGVjdXRlICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgICMg VGhlIGZpcnN0IGFyZ3VtZW50IGlzIHRoZSBjb21tYW5kIG5hbWUuCi0rICAgIGNtZD0iJG5vbm9w dCIKLSsgICAgdGVzdCAteiAiJGNtZCIgJiYgXAotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91 IG11c3Qgc3BlY2lmeSBhIENPTU1BTkQiCi0rCi0rICAgICMgSGFuZGxlIC1kbG9wZW4gZmxhZ3Mg aW1tZWRpYXRlbHkuCi0rICAgIGZvciBmaWxlIGluICRvcHRfZGxvcGVuOyBkbwotKyAgICAgIHRl c3QgLWYgIiRmaWxlIiBcCi0rCXx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkZmlsZScgaXMgbm90IGEg ZmlsZSIKLSsKLSsgICAgICBkaXI9Ci0rICAgICAgY2FzZSAkZmlsZSBpbgotKyAgICAgICoubGEp Ci0rCWZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZmlsZSIKLSsJZmlsZT0kZnVuY19yZXNvbHZlX3N5 c3Jvb3RfcmVzdWx0Ci0rCi0rCSMgQ2hlY2sgdG8gc2VlIHRoYXQgdGhpcyByZWFsbHkgaXMgYSBs aWJ0b29sIGFyY2hpdmUuCi0rCWZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRmaWxlIiBcCi0rCSAgfHwg ZnVuY19mYXRhbF9oZWxwICJcYCRsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIK LSsKLSsJIyBSZWFkIHRoZSBsaWJ0b29sIGxpYnJhcnkuCi0rCWRsbmFtZT0KLSsJbGlicmFyeV9u YW1lcz0KLSsJZnVuY19zb3VyY2UgIiRmaWxlIgotKwotKwkjIFNraXAgdGhpcyBsaWJyYXJ5IGlm IGl0IGNhbm5vdCBiZSBkbG9wZW5lZC4KLSsJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KLSsJ ICAjIFdhcm4gaWYgaXQgd2FzIGEgc2hhcmVkIGxpYnJhcnkuCi0rCSAgdGVzdCAtbiAiJGxpYnJh cnlfbmFtZXMiICYmIFwKLSsJICAgIGZ1bmNfd2FybmluZyAiXGAkZmlsZScgd2FzIG5vdCBsaW5r ZWQgd2l0aCBcYC1leHBvcnQtZHluYW1pYyciCi0rCSAgY29udGludWUKLSsJZmkKLSsKLSsJZnVu Y19kaXJuYW1lICIkZmlsZSIgIiIgIi4iCi0rCWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0r Ci0rCWlmIHRlc3QgLWYgIiRkaXIvJG9iamRpci8kZGxuYW1lIjsgdGhlbgotKwkgIGZ1bmNfYXBw ZW5kIGRpciAiLyRvYmpkaXIiCi0rCWVsc2UKLSsJICBpZiB0ZXN0ICEgLWYgIiRkaXIvJGRsbmFt ZSI7IHRoZW4KLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIFxgJGRsbmFtZScg aW4gXGAkZGlyJyBvciBcYCRkaXIvJG9iamRpciciCi0rCSAgZmkKLSsJZmkKLSsJOzsKLSsKLSsg ICAgICAqLmxvKQotKwkjIEp1c3QgYWRkIHRoZSBkaXJlY3RvcnkgY29udGFpbmluZyB0aGUgLmxv IGZpbGUuCi0rCWZ1bmNfZGlybmFtZSAiJGZpbGUiICIiICIuIgotKwlkaXI9IiRmdW5jX2Rpcm5h bWVfcmVzdWx0IgotKwk7OwotKwotKyAgICAgICopCi0rCWZ1bmNfd2FybmluZyAiXGAtZGxvcGVu JyBpcyBpZ25vcmVkIGZvciBub24tbGlidG9vbCBsaWJyYXJpZXMgYW5kIG9iamVjdHMiCi0rCWNv bnRpbnVlCi0rCTs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgICMgR2V0IHRoZSBhYnNvbHV0ZSBw YXRobmFtZS4KLSsgICAgICBhYnNkaXI9YGNkICIkZGlyIiAmJiBwd2RgCi0rICAgICAgdGVzdCAt biAiJGFic2RpciIgJiYgZGlyPSIkYWJzZGlyIgotKwotKyAgICAgICMgTm93IGFkZCB0aGUgZGly ZWN0b3J5IHRvIHNobGlicGF0aF92YXIuCi0rICAgICAgaWYgZXZhbCAidGVzdCAteiBcIlwkJHNo bGlicGF0aF92YXJcIiI7IHRoZW4KLSsJZXZhbCAiJHNobGlicGF0aF92YXI9XCJcJGRpclwiIgot KyAgICAgIGVsc2UKLSsJZXZhbCAiJHNobGlicGF0aF92YXI9XCJcJGRpcjpcJCRzaGxpYnBhdGhf dmFyXCIiCi0rICAgICAgZmkKLSsgICAgZG9uZQotKwotKyAgICAjIFRoaXMgdmFyaWFibGUgdGVs bHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHNobGlicGF0aF92YXIKLSsgICAgIyByYXRo ZXIgdGhhbiBydW5uaW5nIHRoZWlyIHByb2dyYW1zLgotKyAgICBsaWJ0b29sX2V4ZWN1dGVfbWFn aWM9IiRtYWdpYyIKLSsKLSsgICAgIyBDaGVjayBpZiBhbnkgb2YgdGhlIGFyZ3VtZW50cyBpcyBh IHdyYXBwZXIgc2NyaXB0LgotKyAgICBhcmdzPQotKyAgICBmb3IgZmlsZQotKyAgICBkbwotKyAg ICAgIGNhc2UgJGZpbGUgaW4KLSsgICAgICAtKiB8ICoubGEgfCAqLmxvICkgOzsKLSsgICAgICAq KQotKwkjIERvIGEgdGVzdCB0byBzZWUgaWYgdGhpcyBpcyByZWFsbHkgYSBsaWJ0b29sIHByb2dy YW0uCi0rCWlmIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdF9wICIkZmlsZSI7IHRoZW4KLSsJICBmdW5j X3NvdXJjZSAiJGZpbGUiCi0rCSAgIyBUcmFuc2Zvcm0gYXJnIHRvIHdyYXBwZWQgbmFtZS4KLSsJ ICBmaWxlPSIkcHJvZ2Rpci8kcHJvZ3JhbSIKLSsJZWxpZiBmdW5jX2x0d3JhcHBlcl9leGVjdXRh YmxlX3AgIiRmaWxlIjsgdGhlbgotKwkgIGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgIiRmaWxl IgotKwkgIGZ1bmNfc291cmNlICIkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQiCi0r CSAgIyBUcmFuc2Zvcm0gYXJnIHRvIHdyYXBwZWQgbmFtZS4KLSsJICBmaWxlPSIkcHJvZ2Rpci8k cHJvZ3JhbSIKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgIyBRdW90ZSBhcmd1bWVu dHMgKHRvIHByZXNlcnZlIHNoZWxsIG1ldGFjaGFyYWN0ZXJzKS4KLSsgICAgICBmdW5jX2FwcGVu ZF9xdW90ZWQgYXJncyAiJGZpbGUiCi0rICAgIGRvbmUKLSsKLSsgICAgaWYgdGVzdCAiWCRvcHRf ZHJ5X3J1biIgPSBYZmFsc2U7IHRoZW4KLSsgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3Zh ciI7IHRoZW4KLSsJIyBFeHBvcnQgdGhlIHNobGlicGF0aF92YXIuCi0rCWV2YWwgImV4cG9ydCAk c2hsaWJwYXRoX3ZhciIKLSsgICAgICBmaQotKwotKyAgICAgICMgUmVzdG9yZSBzYXZlZCBlbnZp cm9ubWVudCB2YXJpYWJsZXMKLSsgICAgICBmb3IgbHRfdmFyIGluIExBTkcgTEFOR1VBR0UgTENf QUxMIExDX0NUWVBFIExDX0NPTExBVEUgTENfTUVTU0FHRVMKLSsgICAgICBkbwotKwlldmFsICJp ZiB0ZXN0IFwiXCR7c2F2ZV8kbHRfdmFyK3NldH1cIiA9IHNldDsgdGhlbgotKyAgICAgICAgICAg ICAgICAkbHRfdmFyPVwkc2F2ZV8kbHRfdmFyOyBleHBvcnQgJGx0X3ZhcgotKwkgICAgICBlbHNl Ci0rCQkkbHRfdW5zZXQgJGx0X3ZhcgotKwkgICAgICBmaSIKLSsgICAgICBkb25lCi0rCi0rICAg ICAgIyBOb3cgcHJlcGFyZSB0byBhY3R1YWxseSBleGVjIHRoZSBjb21tYW5kLgotKyAgICAgIGV4 ZWNfY21kPSJcJGNtZCRhcmdzIgotKyAgICBlbHNlCi0rICAgICAgIyBEaXNwbGF5IHdoYXQgd291 bGQgYmUgZG9uZS4KLSsgICAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsJ ZXZhbCAiXCRFQ0hPIFwiXCRzaGxpYnBhdGhfdmFyPVwkJHNobGlicGF0aF92YXJcIiIKLSsJZWNo byAiZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgotKyAgICAgIGZpCi0rICAgICAgJEVDSE8gIiRjbWQk YXJncyIKLSsgICAgICBleGl0ICRFWElUX1NVQ0NFU1MKLSsgICAgZmkKLSt9Ci0rCi0rdGVzdCAi JG9wdF9tb2RlIiA9IGV4ZWN1dGUgJiYgZnVuY19tb2RlX2V4ZWN1dGUgJHsxKyIkQCJ9Ci0rCi0r Ci0rIyBmdW5jX21vZGVfZmluaXNoIGFyZy4uLgotK2Z1bmNfbW9kZV9maW5pc2ggKCkKLSt7Ci0r ICAgICRvcHRfZGVidWcKLSsgICAgbGlicz0KLSsgICAgbGliZGlycz0KLSsgICAgYWRtaW5jbWRz PQotKwotKyAgICBmb3Igb3B0IGluICIkbm9ub3B0IiAkezErIiRAIn0KLSsgICAgZG8KLSsgICAg ICBpZiB0ZXN0IC1kICIkb3B0IjsgdGhlbgotKwlmdW5jX2FwcGVuZCBsaWJkaXJzICIgJG9wdCIK LSsKLSsgICAgICBlbGlmIHRlc3QgLWYgIiRvcHQiOyB0aGVuCi0rCWlmIGZ1bmNfbGFsaWJfdW5z YWZlX3AgIiRvcHQiOyB0aGVuCi0rCSAgZnVuY19hcHBlbmQgbGlicyAiICRvcHQiCi0rCWVsc2UK LSsJICBmdW5jX3dhcm5pbmcgIlxgJG9wdCcgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZl IgotKwlmaQotKwotKyAgICAgIGVsc2UKLSsJZnVuY19mYXRhbF9lcnJvciAiaW52YWxpZCBhcmd1 bWVudCBcYCRvcHQnIgotKyAgICAgIGZpCi0rICAgIGRvbmUKLSsKLSsgICAgaWYgdGVzdCAtbiAi JGxpYnMiOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtbiAiJGx0X3N5c3Jvb3QiOyB0aGVuCi0rICAg ICAgICBzeXNyb290X3JlZ2V4PWAkRUNITyAiJGx0X3N5c3Jvb3QiIHwgJFNFRCAiJHNlZF9tYWtl X2xpdGVyYWxfcmVnZXgiYAotKyAgICAgICAgc3lzcm9vdF9jbWQ9InMvXChbICddXCkkc3lzcm9v dF9yZWdleC9cMS9nOyIKLSsgICAgICBlbHNlCi0rICAgICAgICBzeXNyb290X2NtZD0KLSsgICAg ICBmaQotKwotKyAgICAgICMgUmVtb3ZlIHN5c3Jvb3QgcmVmZXJlbmNlcwotKyAgICAgIGlmICRv cHRfZHJ5X3J1bjsgdGhlbgotKyAgICAgICAgZm9yIGxpYiBpbiAkbGliczsgZG8KLSsgICAgICAg ICAgZWNobyAicmVtb3ZpbmcgcmVmZXJlbmNlcyB0byAkbHRfc3lzcm9vdCBhbmQgXGA9JyBwcmVm aXhlcyBmcm9tICRsaWIiCi0rICAgICAgICBkb25lCi0rICAgICAgZWxzZQotKyAgICAgICAgdG1w ZGlyPWBmdW5jX21rdGVtcGRpcmAKLSsgICAgICAgIGZvciBsaWIgaW4gJGxpYnM7IGRvCi0rCSAg c2VkIC1lICIke3N5c3Jvb3RfY21kfSBzL1woWyAnXS1bTFJdXCk9L1wxL2c7IHMvXChbICddXCk9 L1wxL2ciICRsaWIgXAotKwkgICAgPiAkdG1wZGlyL3RtcC1sYQotKwkgIG12IC1mICR0bXBkaXIv dG1wLWxhICRsaWIKLSsJZG9uZQotKyAgICAgICAgJHtSTX1yICIkdG1wZGlyIgotKyAgICAgIGZp Ci0rICAgIGZpCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRmaW5pc2hfZXZhbCIg JiYgdGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCi0rICAgICAgZm9yIGxpYmRpciBpbiAkbGliZGly czsgZG8KLSsJaWYgdGVzdCAtbiAiJGZpbmlzaF9jbWRzIjsgdGhlbgotKwkgICMgRG8gZWFjaCBj b21tYW5kIGluIHRoZSBmaW5pc2ggY29tbWFuZHMuCi0rCSAgZnVuY19leGVjdXRlX2NtZHMgIiRm aW5pc2hfY21kcyIgJ2FkbWluY21kcz0iJGFkbWluY21kcwotKyciJGNtZCInIicKLSsJZmkKLSsJ aWYgdGVzdCAtbiAiJGZpbmlzaF9ldmFsIjsgdGhlbgotKwkgICMgRG8gdGhlIHNpbmdsZSBmaW5p c2hfZXZhbC4KLSsJICBldmFsIGNtZHM9XCIkZmluaXNoX2V2YWxcIgotKwkgICRvcHRfZHJ5X3J1 biB8fCBldmFsICIkY21kcyIgfHwgZnVuY19hcHBlbmQgYWRtaW5jbWRzICIKLSsgICAgICAgJGNt ZHMiCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICBmaQotKwotKyAgICAjIEV4aXQgaGVyZSBpZiB0 aGV5IHdhbnRlZCBzaWxlbnQgbW9kZS4KLSsgICAgJG9wdF9zaWxlbnQgJiYgZXhpdCAkRVhJVF9T VUNDRVNTCi0rCi0rICAgIGlmIHRlc3QgLW4gIiRmaW5pc2hfY21kcyRmaW5pc2hfZXZhbCIgJiYg dGVzdCAtbiAiJGxpYmRpcnMiOyB0aGVuCi0rICAgICAgZWNobyAiLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSIKLSsg ICAgICBlY2hvICJMaWJyYXJpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZCBpbjoiCi0rICAgICAgZm9y IGxpYmRpciBpbiAkbGliZGlyczsgZG8KLSsJJEVDSE8gIiAgICRsaWJkaXIiCi0rICAgICAgZG9u ZQotKyAgICAgIGVjaG8KLSsgICAgICBlY2hvICJJZiB5b3UgZXZlciBoYXBwZW4gdG8gd2FudCB0 byBsaW5rIGFnYWluc3QgaW5zdGFsbGVkIGxpYnJhcmllcyIKLSsgICAgICBlY2hvICJpbiBhIGdp dmVuIGRpcmVjdG9yeSwgTElCRElSLCB5b3UgbXVzdCBlaXRoZXIgdXNlIGxpYnRvb2wsIGFuZCIK LSsgICAgICBlY2hvICJzcGVjaWZ5IHRoZSBmdWxsIHBhdGhuYW1lIG9mIHRoZSBsaWJyYXJ5LCBv ciB1c2UgdGhlIFxgLUxMSUJESVInIgotKyAgICAgIGVjaG8gImZsYWcgZHVyaW5nIGxpbmtpbmcg YW5kIGRvIGF0IGxlYXN0IG9uZSBvZiB0aGUgZm9sbG93aW5nOiIKLSsgICAgICBpZiB0ZXN0IC1u ICIkc2hsaWJwYXRoX3ZhciI7IHRoZW4KLSsJZWNobyAiICAgLSBhZGQgTElCRElSIHRvIHRoZSBc YCRzaGxpYnBhdGhfdmFyJyBlbnZpcm9ubWVudCB2YXJpYWJsZSIKLSsJZWNobyAiICAgICBkdXJp bmcgZXhlY3V0aW9uIgotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAtbiAiJHJ1bnBhdGhfdmFy IjsgdGhlbgotKwllY2hvICIgICAtIGFkZCBMSUJESVIgdG8gdGhlIFxgJHJ1bnBhdGhfdmFyJyBl bnZpcm9ubWVudCB2YXJpYWJsZSIKLSsJZWNobyAiICAgICBkdXJpbmcgbGlua2luZyIKLSsgICAg ICBmaQotKyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhl bgotKwlsaWJkaXI9TElCRElSCi0rCWV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjXCIKLSsKLSsJJEVDSE8gIiAgIC0gdXNlIHRoZSBcYCRmbGFnJyBsaW5rZXIgZmxhZyIKLSsg ICAgICBmaQotKyAgICAgIGlmIHRlc3QgLW4gIiRhZG1pbmNtZHMiOyB0aGVuCi0rCSRFQ0hPICIg ICAtIGhhdmUgeW91ciBzeXN0ZW0gYWRtaW5pc3RyYXRvciBydW4gdGhlc2UgY29tbWFuZHM6JGFk bWluY21kcyIKLSsgICAgICBmaQotKyAgICAgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0 aGVuCi0rCWVjaG8gIiAgIC0gaGF2ZSB5b3VyIHN5c3RlbSBhZG1pbmlzdHJhdG9yIGFkZCBMSUJE SVIgdG8gXGAvZXRjL2xkLnNvLmNvbmYnIgotKyAgICAgIGZpCi0rICAgICAgZWNobwotKwotKyAg ICAgIGVjaG8gIlNlZSBhbnkgb3BlcmF0aW5nIHN5c3RlbSBkb2N1bWVudGF0aW9uIGFib3V0IHNo YXJlZCBsaWJyYXJpZXMgZm9yIgotKyAgICAgIGNhc2UgJGhvc3QgaW4KLSsJc29sYXJpczIuWzY3 ODldfHNvbGFyaXMyLjFbMC05XSkKLSsJICBlY2hvICJtb3JlIGluZm9ybWF0aW9uLCBzdWNoIGFz IHRoZSBsZCgxKSwgY3JsZSgxKSBhbmQgbGQuc28oOCkgbWFudWFsIgotKwkgIGVjaG8gInBhZ2Vz LiIKLSsJICA7OwotKwkqKQotKwkgIGVjaG8gIm1vcmUgaW5mb3JtYXRpb24sIHN1Y2ggYXMgdGhl IGxkKDEpIGFuZCBsZC5zbyg4KSBtYW51YWwgcGFnZXMuIgotKwkgIDs7Ci0rICAgICAgZXNhYwot KyAgICAgIGVjaG8gIi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0iCi0rICAgIGZpCi0rICAgIGV4aXQgJEVYSVRfU1VD Q0VTUwotK30KLSsKLSt0ZXN0ICIkb3B0X21vZGUiID0gZmluaXNoICYmIGZ1bmNfbW9kZV9maW5p c2ggJHsxKyIkQCJ9Ci0rCi0rCi0rIyBmdW5jX21vZGVfaW5zdGFsbCBhcmcuLi4KLStmdW5jX21v ZGVfaW5zdGFsbCAoKQotK3sKLSsgICAgJG9wdF9kZWJ1ZwotKyAgICAjIFRoZXJlIG1heSBiZSBh biBvcHRpb25hbCBzaCgxKSBhcmd1bWVudCBhdCB0aGUgYmVnaW5uaW5nIG9mCi0rICAgICMgaW5z dGFsbF9wcm9nIChlc3BlY2lhbGx5IG9uIFdpbmRvd3MgTlQpLgotKyAgICBpZiB0ZXN0ICIkbm9u b3B0IiA9ICIkU0hFTEwiIHx8IHRlc3QgIiRub25vcHQiID0gL2Jpbi9zaCB8fAotKyAgICAgICAj IEFsbG93IHRoZSB1c2Ugb2YgR05VIHNodG9vbCdzIGluc3RhbGwgY29tbWFuZC4KLSsgICAgICAg Y2FzZSAkbm9ub3B0IGluICpzaHRvb2wqKSA6OzsgKikgZmFsc2U7OyBlc2FjOyB0aGVuCi0rICAg ICAgIyBBZXN0aGV0aWNhbGx5IHF1b3RlIGl0LgotKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwg IiRub25vcHQiCi0rICAgICAgaW5zdGFsbF9wcm9nPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1 bHQgIgotKyAgICAgIGFyZz0kMQotKyAgICAgIHNoaWZ0Ci0rICAgIGVsc2UKLSsgICAgICBpbnN0 YWxsX3Byb2c9Ci0rICAgICAgYXJnPSRub25vcHQKLSsgICAgZmkKLSsKLSsgICAgIyBUaGUgcmVh bCBmaXJzdCBhcmd1bWVudCBzaG91bGQgYmUgdGhlIG5hbWUgb2YgdGhlIGluc3RhbGxhdGlvbiBw cm9ncmFtLgotKyAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgaXQuCi0rICAgIGZ1bmNfcXVvdGVf Zm9yX2V2YWwgIiRhcmciCi0rICAgIGZ1bmNfYXBwZW5kIGluc3RhbGxfcHJvZyAiJGZ1bmNfcXVv dGVfZm9yX2V2YWxfcmVzdWx0IgotKyAgICBpbnN0YWxsX3NoYXJlZF9wcm9nPSRpbnN0YWxsX3By b2cKLSsgICAgY2FzZSAiICRpbnN0YWxsX3Byb2cgIiBpbgotKyAgICAgICpbXFxcIC9dY3BcICop IGluc3RhbGxfY3A9OiA7OwotKyAgICAgICopIGluc3RhbGxfY3A9ZmFsc2UgOzsKLSsgICAgZXNh YwotKwotKyAgICAjIFdlIG5lZWQgdG8gYWNjZXB0IGF0IGxlYXN0IGFsbCB0aGUgQlNEIGluc3Rh bGwgZmxhZ3MuCi0rICAgIGRlc3Q9Ci0rICAgIGZpbGVzPQotKyAgICBvcHRzPQotKyAgICBwcmV2 PQotKyAgICBpbnN0YWxsX3R5cGU9Ci0rICAgIGlzZGlyPW5vCi0rICAgIHN0cmlwbWU9Ci0rICAg IG5vX21vZGU9OgotKyAgICBmb3IgYXJnCi0rICAgIGRvCi0rICAgICAgYXJnMj0KLSsgICAgICBp ZiB0ZXN0IC1uICIkZGVzdCI7IHRoZW4KLSsJZnVuY19hcHBlbmQgZmlsZXMgIiAkZGVzdCIKLSsJ ZGVzdD0kYXJnCi0rCWNvbnRpbnVlCi0rICAgICAgZmkKLSsKLSsgICAgICBjYXNlICRhcmcgaW4K LSsgICAgICAtZCkgaXNkaXI9eWVzIDs7Ci0rICAgICAgLWYpCi0rCWlmICRpbnN0YWxsX2NwOyB0 aGVuIDo7IGVsc2UKLSsJICBwcmV2PSRhcmcKLSsJZmkKLSsJOzsKLSsgICAgICAtZyB8IC1tIHwg LW8pCi0rCXByZXY9JGFyZwotKwk7OwotKyAgICAgIC1zKQotKwlzdHJpcG1lPSIgLXMiCi0rCWNv bnRpbnVlCi0rCTs7Ci0rICAgICAgLSopCi0rCTs7Ci0rICAgICAgKikKLSsJIyBJZiB0aGUgcHJl dmlvdXMgb3B0aW9uIG5lZWRlZCBhbiBhcmd1bWVudCwgdGhlbiBza2lwIGl0LgotKwlpZiB0ZXN0 IC1uICIkcHJldiI7IHRoZW4KLSsJICBpZiB0ZXN0ICJ4JHByZXYiID0geC1tICYmIHRlc3QgLW4g IiRpbnN0YWxsX292ZXJyaWRlX21vZGUiOyB0aGVuCi0rCSAgICBhcmcyPSRpbnN0YWxsX292ZXJy aWRlX21vZGUKLSsJICAgIG5vX21vZGU9ZmFsc2UKLSsJICBmaQotKwkgIHByZXY9Ci0rCWVsc2UK LSsJICBkZXN0PSRhcmcKLSsJICBjb250aW51ZQotKwlmaQotKwk7OwotKyAgICAgIGVzYWMKLSsK LSsgICAgICAjIEFlc3RoZXRpY2FsbHkgcXVvdGUgdGhlIGFyZ3VtZW50LgotKyAgICAgIGZ1bmNf cXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rICAgICAgZnVuY19hcHBlbmQgaW5zdGFsbF9wcm9nICIg JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKyAgICAgIGlmIHRlc3QgLW4gIiRhcmcyIjsg dGhlbgotKwlmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnMiIKLSsgICAgICBmaQotKyAgICAgIGZ1 bmNfYXBwZW5kIGluc3RhbGxfc2hhcmVkX3Byb2cgIiAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1 bHQiCi0rICAgIGRvbmUKLSsKLSsgICAgdGVzdCAteiAiJGluc3RhbGxfcHJvZyIgJiYgXAotKyAg ICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBhbiBpbnN0YWxsIHByb2dyYW0i Ci0rCi0rICAgIHRlc3QgLW4gIiRwcmV2IiAmJiBcCi0rICAgICAgZnVuY19mYXRhbF9oZWxwICJ0 aGUgXGAkcHJldicgb3B0aW9uIHJlcXVpcmVzIGFuIGFyZ3VtZW50IgotKwotKyAgICBpZiB0ZXN0 IC1uICIkaW5zdGFsbF9vdmVycmlkZV9tb2RlIiAmJiAkbm9fbW9kZTsgdGhlbgotKyAgICAgIGlm ICRpbnN0YWxsX2NwOyB0aGVuIDo7IGVsc2UKLSsJZnVuY19xdW90ZV9mb3JfZXZhbCAiJGluc3Rh bGxfb3ZlcnJpZGVfbW9kZSIKLSsJZnVuY19hcHBlbmQgaW5zdGFsbF9zaGFyZWRfcHJvZyAiIC1t ICRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsgICAgICBmaQotKyAgICBmaQotKwotKyAg ICBpZiB0ZXN0IC16ICIkZmlsZXMiOyB0aGVuCi0rICAgICAgaWYgdGVzdCAteiAiJGRlc3QiOyB0 aGVuCi0rCWZ1bmNfZmF0YWxfaGVscCAibm8gZmlsZSBvciBkZXN0aW5hdGlvbiBzcGVjaWZpZWQi Ci0rICAgICAgZWxzZQotKwlmdW5jX2ZhdGFsX2hlbHAgInlvdSBtdXN0IHNwZWNpZnkgYSBkZXN0 aW5hdGlvbiIKLSsgICAgICBmaQotKyAgICBmaQotKwotKyAgICAjIFN0cmlwIGFueSB0cmFpbGlu ZyBzbGFzaCBmcm9tIHRoZSBkZXN0aW5hdGlvbi4KLSsgICAgZnVuY19zdHJpcG5hbWUgJycgJy8n ICIkZGVzdCIKLSsgICAgZGVzdD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCi0rICAgICMgQ2hl Y2sgdG8gc2VlIHRoYXQgdGhlIGRlc3RpbmF0aW9uIGlzIGEgZGlyZWN0b3J5LgotKyAgICB0ZXN0 IC1kICIkZGVzdCIgJiYgaXNkaXI9eWVzCi0rICAgIGlmIHRlc3QgIiRpc2RpciIgPSB5ZXM7IHRo ZW4KLSsgICAgICBkZXN0ZGlyPSIkZGVzdCIKLSsgICAgICBkZXN0bmFtZT0KLSsgICAgZWxzZQot KyAgICAgIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgIiRkZXN0IiAiIiAiLiIKLSsgICAgICBk ZXN0ZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsgICAgICBkZXN0bmFtZT0iJGZ1bmNfYmFz ZW5hbWVfcmVzdWx0IgotKwotKyAgICAgICMgTm90IGEgZGlyZWN0b3J5LCBzbyBjaGVjayB0byBz ZWUgdGhhdCB0aGVyZSBpcyBvbmx5IG9uZSBmaWxlIHNwZWNpZmllZC4KLSsgICAgICBzZXQgZHVt bXkgJGZpbGVzOyBzaGlmdAotKyAgICAgIHRlc3QgIiQjIiAtZ3QgMSAmJiBcCi0rCWZ1bmNfZmF0 YWxfaGVscCAiXGAkZGVzdCcgaXMgbm90IGEgZGlyZWN0b3J5IgotKyAgICBmaQotKyAgICBjYXNl ICRkZXN0ZGlyIGluCi0rICAgIFtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKLSsgICAgKikK LSsgICAgICBmb3IgZmlsZSBpbiAkZmlsZXM7IGRvCi0rCWNhc2UgJGZpbGUgaW4KLSsJKi5sbykg OzsKLSsJKikKLSsJICBmdW5jX2ZhdGFsX2hlbHAgIlxgJGRlc3RkaXInIG11c3QgYmUgYW4gYWJz b2x1dGUgZGlyZWN0b3J5IG5hbWUiCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGRvbmUKLSsgICAg ICA7OwotKyAgICBlc2FjCi0rCi0rICAgICMgVGhpcyB2YXJpYWJsZSB0ZWxscyB3cmFwcGVyIHNj cmlwdHMganVzdCB0byBzZXQgdmFyaWFibGVzIHJhdGhlcgotKyAgICAjIHRoYW4gcnVubmluZyB0 aGVpciBwcm9ncmFtcy4KLSsgICAgbGlidG9vbF9pbnN0YWxsX21hZ2ljPSIkbWFnaWMiCi0rCi0r ICAgIHN0YXRpY2xpYnM9Ci0rICAgIGZ1dHVyZV9saWJkaXJzPQotKyAgICBjdXJyZW50X2xpYmRp cnM9Ci0rICAgIGZvciBmaWxlIGluICRmaWxlczsgZG8KLSsKLSsgICAgICAjIERvIGVhY2ggaW5z dGFsbGF0aW9uLgotKyAgICAgIGNhc2UgJGZpbGUgaW4KLSsgICAgICAqLiRsaWJleHQpCi0rCSMg RG8gdGhlIHN0YXRpYyBsaWJyYXJpZXMgbGF0ZXIuCi0rCWZ1bmNfYXBwZW5kIHN0YXRpY2xpYnMg IiAkZmlsZSIKLSsJOzsKLSsKLSsgICAgICAqLmxhKQotKwlmdW5jX3Jlc29sdmVfc3lzcm9vdCAi JGZpbGUiCi0rCWZpbGU9JGZ1bmNfcmVzb2x2ZV9zeXNyb290X3Jlc3VsdAotKwotKwkjIENoZWNr IHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBhcmNoaXZlLgotKwlmdW5jX2xh bGliX3Vuc2FmZV9wICIkZmlsZSIgXAotKwkgIHx8IGZ1bmNfZmF0YWxfaGVscCAiXGAkZmlsZScg aXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgotKwotKwlsaWJyYXJ5X25hbWVzPQotKwlv bGRfbGlicmFyeT0KLSsJcmVsaW5rX2NvbW1hbmQ9Ci0rCWZ1bmNfc291cmNlICIkZmlsZSIKLSsK LSsJIyBBZGQgdGhlIGxpYmRpciB0byBjdXJyZW50X2xpYmRpcnMgaWYgaXQgaXMgdGhlIGRlc3Rp bmF0aW9uLgotKwlpZiB0ZXN0ICJYJGRlc3RkaXIiID0gIlgkbGliZGlyIjsgdGhlbgotKwkgIGNh c2UgIiRjdXJyZW50X2xpYmRpcnMgIiBpbgotKwkgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgKikg ZnVuY19hcHBlbmQgY3VycmVudF9saWJkaXJzICIgJGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWVs c2UKLSsJICAjIE5vdGUgdGhlIGxpYmRpciBhcyBhIGZ1dHVyZSBsaWJkaXIuCi0rCSAgY2FzZSAi JGZ1dHVyZV9saWJkaXJzICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICopIGZ1bmNf YXBwZW5kIGZ1dHVyZV9saWJkaXJzICIgJGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWZpCi0rCi0r CWZ1bmNfZGlybmFtZSAiJGZpbGUiICIvIiAiIgotKwlkaXI9IiRmdW5jX2Rpcm5hbWVfcmVzdWx0 IgotKwlmdW5jX2FwcGVuZCBkaXIgIiRvYmpkaXIiCi0rCi0rCWlmIHRlc3QgLW4gIiRyZWxpbmtf Y29tbWFuZCI7IHRoZW4KLSsJICAjIERldGVybWluZSB0aGUgcHJlZml4IHRoZSB1c2VyIGhhcyBh cHBsaWVkIHRvIG91ciBmdXR1cmUgZGlyLgotKwkgIGluc3RfcHJlZml4X2Rpcj1gJEVDSE8gIiRk ZXN0ZGlyIiB8ICRTRUQgLWUgInMlJGxpYmRpclwkJSUiYAotKwotKwkgICMgRG9uJ3QgYWxsb3cg dGhlIHVzZXIgdG8gcGxhY2UgdXMgb3V0c2lkZSBvZiBvdXIgZXhwZWN0ZWQKLSsJICAjIGxvY2F0 aW9uIGIvYyB0aGlzIHByZXZlbnRzIGZpbmRpbmcgZGVwZW5kZW50IGxpYnJhcmllcyB0aGF0Ci0r CSAgIyBhcmUgaW5zdGFsbGVkIHRvIHRoZSBzYW1lIHByZWZpeC4KLSsJICAjIEF0IHByZXNlbnQs IHRoaXMgY2hlY2sgZG9lc24ndCBhZmZlY3Qgd2luZG93cyAuZGxsJ3MgdGhhdAotKwkgICMgYXJl IGluc3RhbGxlZCBpbnRvICRsaWJkaXIvLi4vYmluIChjdXJyZW50bHksIHRoYXQgd29ya3MgZmlu ZSkKLSsJICAjIGJ1dCBpdCdzIHNvbWV0aGluZyB0byBrZWVwIGFuIGV5ZSBvbi4KLSsJICB0ZXN0 ICIkaW5zdF9wcmVmaXhfZGlyIiA9ICIkZGVzdGRpciIgJiYgXAotKwkgICAgZnVuY19mYXRhbF9l cnJvciAiZXJyb3I6IGNhbm5vdCBpbnN0YWxsIFxgJGZpbGUnIHRvIGEgZGlyZWN0b3J5IG5vdCBl bmRpbmcgaW4gJGxpYmRpciIKLSsKLSsJICBpZiB0ZXN0IC1uICIkaW5zdF9wcmVmaXhfZGlyIjsg dGhlbgotKwkgICAgIyBTdGljayB0aGUgaW5zdF9wcmVmaXhfZGlyIGRhdGEgaW50byB0aGUgbGlu ayBjb21tYW5kLgotKwkgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5rX2NvbW1hbmQi IHwgJFNFRCAicyVAaW5zdF9wcmVmaXhfZGlyQCUtaW5zdC1wcmVmaXgtZGlyICRpbnN0X3ByZWZp eF9kaXIlImAKLSsJICBlbHNlCi0rCSAgICByZWxpbmtfY29tbWFuZD1gJEVDSE8gIiRyZWxpbmtf Y29tbWFuZCIgfCAkU0VEICJzJUBpbnN0X3ByZWZpeF9kaXJAJSUiYAotKwkgIGZpCi0rCi0rCSAg ZnVuY193YXJuaW5nICJyZWxpbmtpbmcgXGAkZmlsZSciCi0rCSAgZnVuY19zaG93X2V2YWwgIiRy ZWxpbmtfY29tbWFuZCIgXAotKwkgICAgJ2Z1bmNfZmF0YWxfZXJyb3IgImVycm9yOiByZWxpbmsg XGAkZmlsZSdcJycgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIn Ci0rCWZpCi0rCi0rCSMgU2VlIHRoZSBuYW1lcyBvZiB0aGUgc2hhcmVkIGxpYnJhcnkuCi0rCXNl dCBkdW1teSAkbGlicmFyeV9uYW1lczsgc2hpZnQKLSsJaWYgdGVzdCAtbiAiJDEiOyB0aGVuCi0r CSAgcmVhbG5hbWU9IiQxIgotKwkgIHNoaWZ0Ci0rCi0rCSAgc3JjbmFtZT0iJHJlYWxuYW1lIgot KwkgIHRlc3QgLW4gIiRyZWxpbmtfY29tbWFuZCIgJiYgc3JjbmFtZT0iJHJlYWxuYW1lIlQKLSsK LSsJICAjIEluc3RhbGwgdGhlIHNoYXJlZCBsaWJyYXJ5IGFuZCBidWlsZCB0aGUgc3ltbGlua3Mu Ci0rCSAgZnVuY19zaG93X2V2YWwgIiRpbnN0YWxsX3NoYXJlZF9wcm9nICRkaXIvJHNyY25hbWUg JGRlc3RkaXIvJHJlYWxuYW1lIiBcCi0rCSAgICAgICdleGl0ICQ/JwotKwkgIHRzdHJpcG1lPSIk c3RyaXBtZSIKLSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgY3lnd2luKiB8IG1pbmd3KiB8IHB3 MzIqIHwgY2VnY2MqKQotKwkgICAgY2FzZSAkcmVhbG5hbWUgaW4KLSsJICAgICouZGxsLmEpCi0r CSAgICAgIHRzdHJpcG1lPSIiCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwkg IGVzYWMKLSsJICBpZiB0ZXN0IC1uICIkdHN0cmlwbWUiICYmIHRlc3QgLW4gIiRzdHJpcGxpYiI7 IHRoZW4KLSsJICAgIGZ1bmNfc2hvd19ldmFsICIkc3RyaXBsaWIgJGRlc3RkaXIvJHJlYWxuYW1l IiAnZXhpdCAkPycKLSsJICBmaQotKwotKwkgIGlmIHRlc3QgIiQjIiAtZ3QgMDsgdGhlbgotKwkg ICAgIyBEZWxldGUgdGhlIG9sZCBzeW1saW5rcywgYW5kIGNyZWF0ZSBuZXcgb25lcy4KLSsJICAg ICMgVHJ5IGBsbiAtc2YnIGZpcnN0LCBiZWNhdXNlIHRoZSBgbG4nIGJpbmFyeSBtaWdodCBkZXBl bmQgb24KLSsJICAgICMgdGhlIHN5bWxpbmsgd2UgcmVwbGFjZSEgIFNvbGFyaXMgL2Jpbi9sbiBk b2VzIG5vdCB1bmRlcnN0YW5kIC1mLAotKwkgICAgIyBzbyB3ZSBhbHNvIG5lZWQgdG8gdHJ5IHJt ICYmIGxuIC1zLgotKwkgICAgZm9yIGxpbmtuYW1lCi0rCSAgICBkbwotKwkgICAgICB0ZXN0ICIk bGlua25hbWUiICE9ICIkcmVhbG5hbWUiIFwKLSsJCSYmIGZ1bmNfc2hvd19ldmFsICIoY2QgJGRl c3RkaXIgJiYgeyAkTE5fUyAtZiAkcmVhbG5hbWUgJGxpbmtuYW1lIHx8IHsgJFJNICRsaW5rbmFt ZSAmJiAkTE5fUyAkcmVhbG5hbWUgJGxpbmtuYW1lOyB9OyB9KSIKLSsJICAgIGRvbmUKLSsJICBm aQotKwotKwkgICMgRG8gZWFjaCBjb21tYW5kIGluIHRoZSBwb3N0aW5zdGFsbCBjb21tYW5kcy4K LSsJICBsaWI9IiRkZXN0ZGlyLyRyZWFsbmFtZSIKLSsJICBmdW5jX2V4ZWN1dGVfY21kcyAiJHBv c3RpbnN0YWxsX2NtZHMiICdleGl0ICQ/JwotKwlmaQotKwotKwkjIEluc3RhbGwgdGhlIHBzZXVk by1saWJyYXJ5IGZvciBpbmZvcm1hdGlvbiBwdXJwb3Nlcy4KLSsJZnVuY19iYXNlbmFtZSAiJGZp bGUiCi0rCW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJaW5zdG5hbWU9IiRkaXIvJG5h bWUiaQotKwlmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkaW5zdG5hbWUgJGRlc3RkaXIv JG5hbWUiICdleGl0ICQ/JwotKwotKwkjIE1heWJlIGluc3RhbGwgdGhlIHN0YXRpYyBsaWJyYXJ5 LCB0b28uCi0rCXRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgZnVuY19hcHBlbmQgc3RhdGljbGli cyAiICRkaXIvJG9sZF9saWJyYXJ5IgotKwk7OwotKwotKyAgICAgICoubG8pCi0rCSMgSW5zdGFs bCAoaS5lLiBjb3B5KSBhIGxpYnRvb2wgb2JqZWN0LgotKwotKwkjIEZpZ3VyZSBvdXQgZGVzdGlu YXRpb24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZpZWQuCi0rCWlmIHRl c3QgLW4gIiRkZXN0bmFtZSI7IHRoZW4KLSsJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1l IgotKwllbHNlCi0rCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCi0rCSAgZGVzdGZpbGU9IiRmdW5j X2Jhc2VuYW1lX3Jlc3VsdCIKLSsJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RmaWxlIgotKwlm aQotKwotKwkjIERlZHVjZSB0aGUgbmFtZSBvZiB0aGUgZGVzdGluYXRpb24gb2xkLXN0eWxlIG9i amVjdCBmaWxlLgotKwljYXNlICRkZXN0ZmlsZSBpbgotKwkqLmxvKQotKwkgIGZ1bmNfbG8ybyAi JGRlc3RmaWxlIgotKwkgIHN0YXRpY2Rlc3Q9JGZ1bmNfbG8yb19yZXN1bHQKLSsJICA7OwotKwkq LiRvYmpleHQpCi0rCSAgc3RhdGljZGVzdD0iJGRlc3RmaWxlIgotKwkgIGRlc3RmaWxlPQotKwkg IDs7Ci0rCSopCi0rCSAgZnVuY19mYXRhbF9oZWxwICJjYW5ub3QgY29weSBhIGxpYnRvb2wgb2Jq ZWN0IHRvIFxgJGRlc3RmaWxlJyIKLSsJICA7OwotKwllc2FjCi0rCi0rCSMgSW5zdGFsbCB0aGUg bGlidG9vbCBvYmplY3QgaWYgcmVxdWVzdGVkLgotKwl0ZXN0IC1uICIkZGVzdGZpbGUiICYmIFwK LSsJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxfcHJvZyAkZmlsZSAkZGVzdGZpbGUiICdleGl0 ICQ/JwotKwotKwkjIEluc3RhbGwgdGhlIG9sZCBvYmplY3QgaWYgZW5hYmxlZC4KLSsJaWYgdGVz dCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgotKwkgICMgRGVkdWNlIHRoZSBuYW1lIG9m IHRoZSBvbGQtc3R5bGUgb2JqZWN0IGZpbGUuCi0rCSAgZnVuY19sbzJvICIkZmlsZSIKLSsJICBz dGF0aWNvYmo9JGZ1bmNfbG8yb19yZXN1bHQKLSsJICBmdW5jX3Nob3dfZXZhbCAiJGluc3RhbGxf cHJvZyBcJHN0YXRpY29iaiBcJHN0YXRpY2Rlc3QiICdleGl0ICQ/JwotKwlmaQotKwlleGl0ICRF WElUX1NVQ0NFU1MKLSsJOzsKLSsKLSsgICAgICAqKQotKwkjIEZpZ3VyZSBvdXQgZGVzdGluYXRp b24gZmlsZSBuYW1lLCBpZiBpdCB3YXNuJ3QgYWxyZWFkeSBzcGVjaWZpZWQuCi0rCWlmIHRlc3Qg LW4gIiRkZXN0bmFtZSI7IHRoZW4KLSsJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RuYW1lIgot KwllbHNlCi0rCSAgZnVuY19iYXNlbmFtZSAiJGZpbGUiCi0rCSAgZGVzdGZpbGU9IiRmdW5jX2Jh c2VuYW1lX3Jlc3VsdCIKLSsJICBkZXN0ZmlsZT0iJGRlc3RkaXIvJGRlc3RmaWxlIgotKwlmaQot KwotKwkjIElmIHRoZSBmaWxlIGlzIG1pc3NpbmcsIGFuZCB0aGVyZSBpcyBhIC5leGUgb24gdGhl IGVuZCwgc3RyaXAgaXQKLSsJIyBiZWNhdXNlIGl0IGlzIG1vc3QgbGlrZWx5IGEgbGlidG9vbCBz Y3JpcHQgd2UgYWN0dWFsbHkgd2FudCB0bwotKwkjIGluc3RhbGwKLSsJc3RyaXBwZWRfZXh0PSIi Ci0rCWNhc2UgJGZpbGUgaW4KLSsJICAqLmV4ZSkKLSsJICAgIGlmIHRlc3QgISAtZiAiJGZpbGUi OyB0aGVuCi0rCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUiCi0rCSAgICAg IGZpbGU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgICAgICBzdHJpcHBlZF9leHQ9Ii5leGUi Ci0rCSAgICBmaQotKwkgICAgOzsKLSsJZXNhYwotKwotKwkjIERvIGEgdGVzdCB0byBzZWUgaWYg dGhpcyBpcyByZWFsbHkgYSBsaWJ0b29sIHByb2dyYW0uCi0rCWNhc2UgJGhvc3QgaW4KLSsJKmN5 Z3dpbiogfCAqbWluZ3cqKQotKwkgICAgaWYgZnVuY19sdHdyYXBwZXJfZXhlY3V0YWJsZV9wICIk ZmlsZSI7IHRoZW4KLSsJICAgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZSAiJGZpbGUiCi0r CSAgICAgIHdyYXBwZXI9JGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0Ci0rCSAgICBl bHNlCi0rCSAgICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUiCi0rCSAgICAgIHdy YXBwZXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgICAgZmkKLSsJICAgIDs7Ci0rCSopCi0r CSAgICB3cmFwcGVyPSRmaWxlCi0rCSAgICA7OwotKwllc2FjCi0rCWlmIGZ1bmNfbHR3cmFwcGVy X3NjcmlwdF9wICIkd3JhcHBlciI7IHRoZW4KLSsJICBub3RpbnN0X2RlcGxpYnM9Ci0rCSAgcmVs aW5rX2NvbW1hbmQ9Ci0rCi0rCSAgZnVuY19zb3VyY2UgIiR3cmFwcGVyIgotKwotKwkgICMgQ2hl Y2sgdGhlIHZhcmlhYmxlcyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gc2V0LgotKwkgIHRlc3QgLXog IiRnZW5lcmF0ZWRfYnlfbGlidG9vbF92ZXJzaW9uIiAmJiBcCi0rCSAgICBmdW5jX2ZhdGFsX2Vy cm9yICJpbnZhbGlkIGxpYnRvb2wgd3JhcHBlciBzY3JpcHQgXGAkd3JhcHBlciciCi0rCi0rCSAg ZmluYWxpemU9eWVzCi0rCSAgZm9yIGxpYiBpbiAkbm90aW5zdF9kZXBsaWJzOyBkbwotKwkgICAg IyBDaGVjayB0byBzZWUgdGhhdCBlYWNoIGxpYnJhcnkgaXMgaW5zdGFsbGVkLgotKwkgICAgbGli ZGlyPQotKwkgICAgaWYgdGVzdCAtZiAiJGxpYiI7IHRoZW4KLSsJICAgICAgZnVuY19zb3VyY2Ug IiRsaWIiCi0rCSAgICBmaQotKwkgICAgbGliZmlsZT0iJGxpYmRpci8iYCRFQ0hPICIkbGliIiB8 ICRTRUQgJ3MlXi4qLyUlZydgICMjIyB0ZXN0c3VpdGU6IHNraXAgbmVzdGVkIHF1b3RpbmcgdGVz dAotKwkgICAgaWYgdGVzdCAtbiAiJGxpYmRpciIgJiYgdGVzdCAhIC1mICIkbGliZmlsZSI7IHRo ZW4KLSsJICAgICAgZnVuY193YXJuaW5nICJcYCRsaWInIGhhcyBub3QgYmVlbiBpbnN0YWxsZWQg aW4gXGAkbGliZGlyJyIKLSsJICAgICAgZmluYWxpemU9bm8KLSsJICAgIGZpCi0rCSAgZG9uZQot KwotKwkgIHJlbGlua19jb21tYW5kPQotKwkgIGZ1bmNfc291cmNlICIkd3JhcHBlciIKLSsKLSsJ ICBvdXRwdXRuYW1lPQotKwkgIGlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0gbm8gJiYgdGVzdCAt biAiJHJlbGlua19jb21tYW5kIjsgdGhlbgotKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsJICAg ICAgaWYgdGVzdCAiJGZpbmFsaXplIiA9IHllczsgdGhlbgotKwkgICAgICAgIHRtcGRpcj1gZnVu Y19ta3RlbXBkaXJgCi0rCQlmdW5jX2Jhc2VuYW1lICIkZmlsZSRzdHJpcHBlZF9leHQiCi0rCQlm aWxlPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgICAgICAgb3V0cHV0bmFtZT0iJHRtcGRp ci8kZmlsZSIKLSsJICAgICAgICAjIFJlcGxhY2UgdGhlIG91dHB1dCBmaWxlIHNwZWNpZmljYXRp b24uCi0rCSAgICAgICAgcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5rX2NvbW1hbmQiIHwg JFNFRCAncyVAT1VUUFVUQCUnIiRvdXRwdXRuYW1lIiclZydgCi0rCi0rCSAgICAgICAgJG9wdF9z aWxlbnQgfHwgewotKwkgICAgICAgICAgZnVuY19xdW90ZV9mb3JfZXhwYW5kICIkcmVsaW5rX2Nv bW1hbmQiCi0rCQkgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3Vs dCIKLSsJICAgICAgICB9Ci0rCSAgICAgICAgaWYgZXZhbCAiJHJlbGlua19jb21tYW5kIjsgdGhl biA6Ci0rCSAgICAgICAgICBlbHNlCi0rCQkgIGZ1bmNfZXJyb3IgImVycm9yOiByZWxpbmsgXGAk ZmlsZScgd2l0aCB0aGUgYWJvdmUgY29tbWFuZCBiZWZvcmUgaW5zdGFsbGluZyBpdCIKLSsJCSAg JG9wdF9kcnlfcnVuIHx8ICR7Uk19ciAiJHRtcGRpciIKLSsJCSAgY29udGludWUKLSsJICAgICAg ICBmaQotKwkgICAgICAgIGZpbGU9IiRvdXRwdXRuYW1lIgotKwkgICAgICBlbHNlCi0rCSAgICAg ICAgZnVuY193YXJuaW5nICJjYW5ub3QgcmVsaW5rIFxgJGZpbGUnIgotKwkgICAgICBmaQotKwkg ICAgfQotKwkgIGVsc2UKLSsJICAgICMgSW5zdGFsbCB0aGUgYmluYXJ5IHRoYXQgd2UgY29tcGls ZWQgZWFybGllci4KLSsJICAgIGZpbGU9YCRFQ0hPICIkZmlsZSRzdHJpcHBlZF9leHQiIHwgJFNF RCAicyVcKFteL10qXCkkJSRvYmpkaXIvXDElImAKLSsJICBmaQotKwlmaQotKwotKwkjIHJlbW92 ZSAuZXhlIHNpbmNlIGN5Z3dpbiAvdXNyL2Jpbi9pbnN0YWxsIHdpbGwgYXBwZW5kIGFub3RoZXIK LSsJIyBvbmUgYW55d2F5Ci0rCWNhc2UgJGluc3RhbGxfcHJvZywkaG9zdCBpbgotKwkqL3Vzci9i aW4vaW5zdGFsbCosKmN5Z3dpbiopCi0rCSAgY2FzZSAkZmlsZTokZGVzdGZpbGUgaW4KLSsJICAq LmV4ZToqLmV4ZSkKLSsJICAgICMgdGhpcyBpcyBvawotKwkgICAgOzsKLSsJICAqLmV4ZToqKQot KwkgICAgZGVzdGZpbGU9JGRlc3RmaWxlLmV4ZQotKwkgICAgOzsKLSsJICAqOiouZXhlKQotKwkg ICAgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkZGVzdGZpbGUiCi0rCSAgICBkZXN0ZmlsZT0k ZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCSAgICA7OwotKwkgIGVzYWMKLSsJICA7OwotKwllc2Fj Ci0rCWZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9nXCRzdHJpcG1lIFwkZmlsZSBcJGRlc3Rm aWxlIiAnZXhpdCAkPycKLSsJJG9wdF9kcnlfcnVuIHx8IGlmIHRlc3QgLW4gIiRvdXRwdXRuYW1l IjsgdGhlbgotKwkgICR7Uk19ciAiJHRtcGRpciIKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0r ICAgIGRvbmUKLSsKLSsgICAgZm9yIGZpbGUgaW4gJHN0YXRpY2xpYnM7IGRvCi0rICAgICAgZnVu Y19iYXNlbmFtZSAiJGZpbGUiCi0rICAgICAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0Igot KwotKyAgICAgICMgU2V0IHVwIHRoZSByYW5saWIgcGFyYW1ldGVycy4KLSsgICAgICBvbGRsaWI9 IiRkZXN0ZGlyLyRuYW1lIgotKwotKyAgICAgIGZ1bmNfc2hvd19ldmFsICIkaW5zdGFsbF9wcm9n IFwkZmlsZSBcJG9sZGxpYiIgJ2V4aXQgJD8nCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJHN0cmlw bWUiICYmIHRlc3QgLW4gIiRvbGRfc3RyaXBsaWIiOyB0aGVuCi0rCWZ1bmNfc2hvd19ldmFsICIk b2xkX3N0cmlwbGliICRvbGRsaWIiICdleGl0ICQ/JwotKyAgICAgIGZpCi0rCi0rICAgICAgIyBE byBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3RpbnN0YWxsIGNvbW1hbmRzLgotKyAgICAgIGZ1bmNf ZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3RpbnN0YWxsX2NtZHMiICdleGl0ICQ/JwotKyAgICBkb25l Ci0rCi0rICAgIHRlc3QgLW4gIiRmdXR1cmVfbGliZGlycyIgJiYgXAotKyAgICAgIGZ1bmNfd2Fy bmluZyAicmVtZW1iZXIgdG8gcnVuIFxgJHByb2duYW1lIC0tZmluaXNoJGZ1dHVyZV9saWJkaXJz JyIKLSsKLSsgICAgaWYgdGVzdCAtbiAiJGN1cnJlbnRfbGliZGlycyI7IHRoZW4KLSsgICAgICAj IE1heWJlIGp1c3QgZG8gYSBkcnkgcnVuLgotKyAgICAgICRvcHRfZHJ5X3J1biAmJiBjdXJyZW50 X2xpYmRpcnM9IiAtbiRjdXJyZW50X2xpYmRpcnMiCi0rICAgICAgZXhlY19jbWQ9JyRTSEVMTCAk cHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1maW5pc2gkY3VycmVudF9saWJkaXJzJwotKyAgICBl bHNlCi0rICAgICAgZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgIGZpCi0rfQotKwotK3Rlc3QgIiRv cHRfbW9kZSIgPSBpbnN0YWxsICYmIGZ1bmNfbW9kZV9pbnN0YWxsICR7MSsiJEAifQotKwotKwot KyMgZnVuY19nZW5lcmF0ZV9kbHN5bXMgb3V0cHV0bmFtZSBvcmlnaW5hdG9yIHBpY19wCi0rIyBF eHRyYWN0IHN5bWJvbHMgZnJvbSBkbHByZWZpbGVzIGFuZCBjcmVhdGUgJHtvdXRwdXRuYW1lfVMu byB3aXRoCi0rIyBhIGRscHJlb3BlbiBzeW1ib2wgdGFibGUuCi0rZnVuY19nZW5lcmF0ZV9kbHN5 bXMgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgbXlfb3V0cHV0bmFtZT0iJDEiCi0rICAg IG15X29yaWdpbmF0b3I9IiQyIgotKyAgICBteV9waWNfcD0iJHszLW5vfSIKLSsgICAgbXlfcHJl Zml4PWAkRUNITyAiJG15X29yaWdpbmF0b3IiIHwgc2VkICdzJVteYS16QS1aMC05XSVfJWcnYAot KyAgICBteV9kbHN5bXM9Ci0rCi0rICAgIGlmIHRlc3QgLW4gIiRkbGZpbGVzJGRscHJlZmlsZXMi IHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCi0rICAgICAgaWYgdGVzdCAtbiAiJE5NIiAm JiB0ZXN0IC1uICIkZ2xvYmFsX3N5bWJvbF9waXBlIjsgdGhlbgotKwlteV9kbHN5bXM9IiR7bXlf b3V0cHV0bmFtZX1TLmMiCi0rICAgICAgZWxzZQotKwlmdW5jX2Vycm9yICJub3QgY29uZmlndXJl ZCB0byBleHRyYWN0IGdsb2JhbCBzeW1ib2xzIGZyb20gZGxwcmVvcGVuZWQgZmlsZXMiCi0rICAg ICAgZmkKLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAtbiAiJG15X2Rsc3ltcyI7IHRoZW4KLSsg ICAgICBjYXNlICRteV9kbHN5bXMgaW4KLSsgICAgICAiIikgOzsKLSsgICAgICAqLmMpCi0rCSMg RGlzY292ZXIgdGhlIG5saXN0IG9mIGVhY2ggb2YgdGhlIGRsZmlsZXMuCi0rCW5saXN0PSIkb3V0 cHV0X29iamRpci8ke215X291dHB1dG5hbWV9Lm5tIgotKwotKwlmdW5jX3Nob3dfZXZhbCAiJFJN ICRubGlzdCAke25saXN0fVMgJHtubGlzdH1UIgotKwotKwkjIFBhcnNlIHRoZSBuYW1lIGxpc3Qg aW50byBhIHNvdXJjZSBmaWxlLgotKwlmdW5jX3ZlcmJvc2UgImNyZWF0aW5nICRvdXRwdXRfb2Jq ZGlyLyRteV9kbHN5bXMiCi0rCi0rCSRvcHRfZHJ5X3J1biB8fCAkRUNITyA+ICIkb3V0cHV0X29i amRpci8kbXlfZGxzeW1zIiAiXAotKy8qICRteV9kbHN5bXMgLSBzeW1ib2wgcmVzb2x1dGlvbiB0 YWJsZSBmb3IgXGAkbXlfb3V0cHV0bmFtZScgZGxzeW0gZW11bGF0aW9uLiAqLwotKy8qIEdlbmVy YXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNLQUdFJFRJTUVTVEFNUCkgJFZFUlNJT04gKi8KLSsK LSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gXCJDXCIgewotKyNlbmRpZgotKwotKyNpZiBk ZWZpbmVkKF9fR05VQ19fKSAmJiAoKChfX0dOVUNfXyA9PSA0KSAmJiAoX19HTlVDX01JTk9SX18g Pj0gNCkpIHx8IChfX0dOVUNfXyA+IDQpKQotKyNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3Jl ZCBcIi1Xc3RyaWN0LXByb3RvdHlwZXNcIgotKyNlbmRpZgotKwotKy8qIEtlZXAgdGhpcyBjb2Rl IGluIHN5bmMgYmV0d2VlbiBsaWJ0b29sLm00LCBsdG1haW4sIGx0X3N5c3RlbS5oLCBhbmQgdGVz dHMuICAqLwotKyNpZiBkZWZpbmVkKF9XSU4zMikgfHwgZGVmaW5lZChfX0NZR1dJTl9fKSB8fCBk ZWZpbmVkKF9XSU4zMl9XQ0UpCi0rLyogREFUQSBpbXBvcnRzIGZyb20gRExMcyBvbiBXSU4zMiBj b24ndCBiZSBjb25zdCwgYmVjYXVzZSBydW50aW1lCi0rICAgcmVsb2NhdGlvbnMgYXJlIHBlcmZv cm1lZCAtLSBzZWUgbGQncyBkb2N1bWVudGF0aW9uIG9uIHBzZXVkby1yZWxvY3MuICAqLwotKyMg ZGVmaW5lIExUX0RMU1lNX0NPTlNUCi0rI2VsaWYgZGVmaW5lZChfX29zZl9fKQotKy8qIFRoaXMg c3lzdGVtIGRvZXMgbm90IGNvcGUgd2VsbCB3aXRoIHJlbG9jYXRpb25zIGluIGNvbnN0IGRhdGEu ICAqLwotKyMgZGVmaW5lIExUX0RMU1lNX0NPTlNUCi0rI2Vsc2UKLSsjIGRlZmluZSBMVF9ETFNZ TV9DT05TVCBjb25zdAotKyNlbmRpZgotKwotKy8qIEV4dGVybmFsIHN5bWJvbCBkZWNsYXJhdGlv bnMgZm9yIHRoZSBjb21waWxlci4gKi9cCi0rIgotKwotKwlpZiB0ZXN0ICIkZGxzZWxmIiA9IHll czsgdGhlbgotKwkgIGZ1bmNfdmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAk b3V0cHV0JyIKLSsKLSsJICAkb3B0X2RyeV9ydW4gfHwgZWNobyAnOiBAUFJPR1JBTUAgJyA+ICIk bmxpc3QiCi0rCi0rCSAgIyBBZGQgb3VyIG93biBwcm9ncmFtIG9iamVjdHMgdG8gdGhlIHN5bWJv bCBsaXN0LgotKwkgIHByb2dmaWxlcz1gJEVDSE8gIiRvYmpzJG9sZF9kZXBsaWJzIiB8ICRTUDJO TCB8ICRTRUQgIiRsbzJvIiB8ICROTDJTUGAKLSsJICBmb3IgcHJvZ2ZpbGUgaW4gJHByb2dmaWxl czsgZG8KLSsJICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkcHJvZ2ZpbGUiIGZ1bmNfY29udmVydF9m aWxlX21zeXNfdG9fdzMyCi0rCSAgICBmdW5jX3ZlcmJvc2UgImV4dHJhY3RpbmcgZ2xvYmFsIEMg c3ltYm9scyBmcm9tIFxgJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCciCi0rCSAgICAkb3B0X2Ry eV9ydW4gfHwgZXZhbCAiJE5NICRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1bHQgfCAkZ2xvYmFsX3N5 bWJvbF9waXBlID4+ICckbmxpc3QnIgotKwkgIGRvbmUKLSsKLSsJICBpZiB0ZXN0IC1uICIkZXhj bHVkZV9leHBzeW1zIjsgdGhlbgotKwkgICAgJG9wdF9kcnlfcnVuIHx8IHsKLSsJICAgICAgZXZh bCAnJEVHUkVQIC12ICIgKCRleGNsdWRlX2V4cHN5bXMpJCIgIiRubGlzdCIgPiAiJG5saXN0IlQn Ci0rCSAgICAgIGV2YWwgJyRNViAiJG5saXN0IlQgIiRubGlzdCInCi0rCSAgICB9Ci0rCSAgZmkK LSsKLSsJICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiOyB0aGVuCi0rCSAgICAk b3B0X2RyeV9ydW4gfHwgewotKwkgICAgICBldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9s c19yZWdleCIgIiRubGlzdCIgPiAiJG5saXN0IlQnCi0rCSAgICAgIGV2YWwgJyRNViAiJG5saXN0 IlQgIiRubGlzdCInCi0rCSAgICB9Ci0rCSAgZmkKLSsKLSsJICAjIFByZXBhcmUgdGhlIGxpc3Qg b2YgZXhwb3J0ZWQgc3ltYm9scwotKwkgIGlmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9scyI7IHRo ZW4KLSsJICAgIGV4cG9ydF9zeW1ib2xzPSIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5leHAi Ci0rCSAgICAkb3B0X2RyeV9ydW4gfHwgewotKwkgICAgICAkUk0gJGV4cG9ydF9zeW1ib2xzCi0r CSAgICAgIGV2YWwgIiR7U0VEfSAtbiAtZSAnL146IEBQUk9HUkFNQCAkL2QnIC1lICdzL14uKiBc KC4qXCkkL1wxL3AnICInPCAiJG5saXN0IiA+ICIkZXhwb3J0X3N5bWJvbHMiJwotKwkgICAgICBj YXNlICRob3N0IGluCi0rCSAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiB8ICpjZWdjYyogKQotKyAg ICAgICAgICAgICAgICBldmFsICJlY2hvIEVYUE9SVFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0 cHV0bmFtZS5kZWYiJwotKyAgICAgICAgICAgICAgICBldmFsICdjYXQgIiRleHBvcnRfc3ltYm9s cyIgPj4gIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lLmRlZiInCi0rCSAgICAgICAgOzsKLSsJ ICAgICAgZXNhYwotKwkgICAgfQotKwkgIGVsc2UKLSsJICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0r CSAgICAgIGV2YWwgIiR7U0VEfSAtZSAncy9cKFtdLlsqXiRdXCkvXFxcXFwxL2cnIC1lICdzL14v IC8nIC1lICdzLyQvJC8nIicgPCAiJGV4cG9ydF9zeW1ib2xzIiA+ICIkb3V0cHV0X29iamRpci8k b3V0cHV0bmFtZS5leHAiJwotKwkgICAgICBldmFsICckR1JFUCAtZiAiJG91dHB1dF9vYmpkaXIv JG91dHB1dG5hbWUuZXhwIiA8ICIkbmxpc3QiID4gIiRubGlzdCJUJwotKwkgICAgICBldmFsICck TVYgIiRubGlzdCJUICIkbmxpc3QiJwotKwkgICAgICBjYXNlICRob3N0IGluCi0rCSAgICAgICAg KmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiApCi0rCSAgICAgICAgICBldmFsICJlY2hvIEVY UE9SVFMgIic+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJwotKwkgICAgICAgICAg ZXZhbCAnY2F0ICIkbmxpc3QiID4+ICIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZS5kZWYiJwot KwkgICAgICAgICAgOzsKLSsJICAgICAgZXNhYwotKwkgICAgfQotKwkgIGZpCi0rCWZpCi0rCi0r CWZvciBkbHByZWZpbGUgaW4gJGRscHJlZmlsZXM7IGRvCi0rCSAgZnVuY192ZXJib3NlICJleHRy YWN0aW5nIGdsb2JhbCBDIHN5bWJvbHMgZnJvbSBcYCRkbHByZWZpbGUnIgotKwkgIGZ1bmNfYmFz ZW5hbWUgIiRkbHByZWZpbGUiCi0rCSAgbmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKyAg ICAgICAgICBjYXNlICRob3N0IGluCi0rCSAgICAqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2Mq ICkKLSsJICAgICAgIyBpZiBhbiBpbXBvcnQgbGlicmFyeSwgd2UgbmVlZCB0byBvYnRhaW4gZGxu YW1lCi0rCSAgICAgIGlmIGZ1bmNfd2luMzJfaW1wb3J0X2xpYl9wICIkZGxwcmVmaWxlIjsgdGhl bgotKwkgICAgICAgIGZ1bmNfdHJfc2ggIiRkbHByZWZpbGUiCi0rCSAgICAgICAgZXZhbCAiY3Vy cl9sYWZpbGU9XCRsaWJmaWxlXyRmdW5jX3RyX3NoX3Jlc3VsdCIKLSsJICAgICAgICBkbHByZWZp bGVfZGxiYXNlbmFtZT0iIgotKwkgICAgICAgIGlmIHRlc3QgLW4gIiRjdXJyX2xhZmlsZSIgJiYg ZnVuY19sYWxpYl9wICIkY3Vycl9sYWZpbGUiOyB0aGVuCi0rCSAgICAgICAgICAjIFVzZSBzdWJz aGVsbCwgdG8gYXZvaWQgY2xvYmJlcmluZyBjdXJyZW50IHZhcmlhYmxlIHZhbHVlcwotKwkgICAg ICAgICAgZGxwcmVmaWxlX2RsbmFtZT1gc291cmNlICIkY3Vycl9sYWZpbGUiICYmIGVjaG8gIiRk bG5hbWUiYAotKwkgICAgICAgICAgaWYgdGVzdCAtbiAiJGRscHJlZmlsZV9kbG5hbWUiIDsgdGhl bgotKwkgICAgICAgICAgICBmdW5jX2Jhc2VuYW1lICIkZGxwcmVmaWxlX2RsbmFtZSIKLSsJICAg ICAgICAgICAgZGxwcmVmaWxlX2RsYmFzZW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJ ICAgICAgICAgIGVsc2UKLSsJICAgICAgICAgICAgIyBubyBsYWZpbGUuIHVzZXIgZXhwbGljaXRs eSByZXF1ZXN0ZWQgLWRscHJlb3BlbiA8aW1wb3J0IGxpYnJhcnk+LgotKwkgICAgICAgICAgICAk c2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQgIiRkbHByZWZpbGUiCi0rCSAgICAgICAgICAgIGRs cHJlZmlsZV9kbGJhc2VuYW1lPSRzaGFyZWRsaWJfZnJvbV9saW5rbGliX3Jlc3VsdAotKwkgICAg ICAgICAgZmkKLSsJICAgICAgICBmaQotKwkgICAgICAgICRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAg ICAgICAgICBpZiB0ZXN0IC1uICIkZGxwcmVmaWxlX2RsYmFzZW5hbWUiIDsgdGhlbgotKwkgICAg ICAgICAgICBldmFsICckRUNITyAiOiAkZGxwcmVmaWxlX2RsYmFzZW5hbWUiID4+ICIkbmxpc3Qi JwotKwkgICAgICAgICAgZWxzZQotKwkgICAgICAgICAgICBmdW5jX3dhcm5pbmcgIkNvdWxkIG5v dCBjb21wdXRlIERMTCBuYW1lIGZyb20gJG5hbWUiCi0rCSAgICAgICAgICAgIGV2YWwgJyRFQ0hP ICI6ICRuYW1lICIgPj4gIiRubGlzdCInCi0rCSAgICAgICAgICBmaQotKwkgICAgICAgICAgZnVu Y190b190b29sX2ZpbGUgIiRkbHByZWZpbGUiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMy Ci0rCSAgICAgICAgICBldmFsICIkTk0gXCIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0XCIgMj4v ZGV2L251bGwgfCAkZ2xvYmFsX3N5bWJvbF9waXBlIHwKLSsJICAgICAgICAgICAgJFNFRCAtZSAn L0kgX19pbXAvZCcgLWUgJ3MvSSBfX25tXy9EIC87cy9fbm1fXy8vJyA+PiAnJG5saXN0JyIKLSsJ ICAgICAgICB9Ci0rCSAgICAgIGVsc2UgIyBub3QgYW4gaW1wb3J0IGxpYgotKwkgICAgICAgICRv cHRfZHJ5X3J1biB8fCB7Ci0rCSAgICAgICAgICBldmFsICckRUNITyAiOiAkbmFtZSAiID4+ICIk bmxpc3QiJwotKwkgICAgICAgICAgZnVuY190b190b29sX2ZpbGUgIiRkbHByZWZpbGUiIGZ1bmNf Y29udmVydF9maWxlX21zeXNfdG9fdzMyCi0rCSAgICAgICAgICBldmFsICIkTk0gXCIkZnVuY190 b190b29sX2ZpbGVfcmVzdWx0XCIgMj4vZGV2L251bGwgfCAkZ2xvYmFsX3N5bWJvbF9waXBlID4+ ICckbmxpc3QnIgotKwkgICAgICAgIH0KLSsJICAgICAgZmkKLSsJICAgIDs7Ci0rCSAgICAqKQot KwkgICAgICAkb3B0X2RyeV9ydW4gfHwgewotKwkgICAgICAgIGV2YWwgJyRFQ0hPICI6ICRuYW1l ICIgPj4gIiRubGlzdCInCi0rCSAgICAgICAgZnVuY190b190b29sX2ZpbGUgIiRkbHByZWZpbGUi IGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCi0rCSAgICAgICAgZXZhbCAiJE5NIFwiJGZ1 bmNfdG9fdG9vbF9maWxlX3Jlc3VsdFwiIDI+L2Rldi9udWxsIHwgJGdsb2JhbF9zeW1ib2xfcGlw ZSA+PiAnJG5saXN0JyIKLSsJICAgICAgfQotKwkgICAgOzsKLSsgICAgICAgICAgZXNhYwotKwlk b25lCi0rCi0rCSRvcHRfZHJ5X3J1biB8fCB7Ci0rCSAgIyBNYWtlIHN1cmUgd2UgaGF2ZSBhdCBs ZWFzdCBhbiBlbXB0eSBmaWxlLgotKwkgIHRlc3QgLWYgIiRubGlzdCIgfHwgOiA+ICIkbmxpc3Qi Ci0rCi0rCSAgaWYgdGVzdCAtbiAiJGV4Y2x1ZGVfZXhwc3ltcyI7IHRoZW4KLSsJICAgICRFR1JF UCAtdiAiICgkZXhjbHVkZV9leHBzeW1zKSQiICIkbmxpc3QiID4gIiRubGlzdCJUCi0rCSAgICAk TVYgIiRubGlzdCJUICIkbmxpc3QiCi0rCSAgZmkKLSsKLSsJICAjIFRyeSBzb3J0aW5nIGFuZCB1 bmlxdWlmeWluZyB0aGUgb3V0cHV0LgotKwkgIGlmICRHUkVQIC12ICJeOiAiIDwgIiRubGlzdCIg fAotKwkgICAgICBpZiBzb3J0IC1rIDMgPC9kZXYvbnVsbCA+L2Rldi9udWxsIDI+JjE7IHRoZW4K LSsJCXNvcnQgLWsgMwotKwkgICAgICBlbHNlCi0rCQlzb3J0ICsyCi0rCSAgICAgIGZpIHwKLSsJ ICAgICAgdW5pcSA+ICIkbmxpc3QiUzsgdGhlbgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAgICRH UkVQIC12ICJeOiAiIDwgIiRubGlzdCIgPiAiJG5saXN0IlMKLSsJICBmaQotKwotKwkgIGlmIHRl c3QgLWYgIiRubGlzdCJTOyB0aGVuCi0rCSAgICBldmFsICIkZ2xvYmFsX3N5bWJvbF90b19jZGVj bCInIDwgIiRubGlzdCJTID4+ICIkb3V0cHV0X29iamRpci8kbXlfZGxzeW1zIicKLSsJICBlbHNl Ci0rCSAgICBlY2hvICcvKiBOT05FICovJyA+PiAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIK LSsJICBmaQotKwotKwkgIGVjaG8gPj4gIiRvdXRwdXRfb2JqZGlyLyRteV9kbHN5bXMiICJcCi0r Ci0rLyogVGhlIG1hcHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLwot K3R5cGVkZWYgc3RydWN0IHsKLSsgIGNvbnN0IGNoYXIgKm5hbWU7Ci0rICB2b2lkICphZGRyZXNz OwotK30gbHRfZGxzeW1saXN0OwotK2V4dGVybiBMVF9ETFNZTV9DT05TVCBsdF9kbHN5bWxpc3QK LStsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzW107Ci0rTFRfRExTWU1fQ09O U1QgbHRfZGxzeW1saXN0Ci0rbHRfJHtteV9wcmVmaXh9X0xUWF9wcmVsb2FkZWRfc3ltYm9sc1td ID0KLSt7XAotKyAgeyBcIiRteV9vcmlnaW5hdG9yXCIsICh2b2lkICopIDAgfSwiCi0rCi0rCSAg Y2FzZSAkbmVlZF9saWJfcHJlZml4IGluCi0rCSAgbm8pCi0rCSAgICBldmFsICIkZ2xvYmFsX3N5 bWJvbF90b19jX25hbWVfYWRkcmVzcyIgPCAiJG5saXN0IiA+PiAiJG91dHB1dF9vYmpkaXIvJG15 X2Rsc3ltcyIKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGV2YWwgIiRnbG9iYWxfc3ltYm9sX3Rv X2NfbmFtZV9hZGRyZXNzX2xpYl9wcmVmaXgiIDwgIiRubGlzdCIgPj4gIiRvdXRwdXRfb2JqZGly LyRteV9kbHN5bXMiCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJICBlY2hvID4+ICIkb3V0cHV0X29i amRpci8kbXlfZGxzeW1zIiAiXAotKyAgezAsICh2b2lkICopIDB9Ci0rfTsKLSsKLSsvKiBUaGlz IHdvcmtzIGFyb3VuZCBhIHByb2JsZW0gaW4gRnJlZUJTRCBsaW5rZXIgKi8KLSsjaWZkZWYgRlJF RUJTRF9XT1JLQVJPVU5ECi0rc3RhdGljIGNvbnN0IHZvaWQgKmx0X3ByZWxvYWRlZF9zZXR1cCgp IHsKLSsgIHJldHVybiBsdF8ke215X3ByZWZpeH1fTFRYX3ByZWxvYWRlZF9zeW1ib2xzOwotK30K LSsjZW5kaWYKLSsKLSsjaWZkZWYgX19jcGx1c3BsdXMKLSt9Ci0rI2VuZGlmXAotKyIKLSsJfSAj ICEkb3B0X2RyeV9ydW4KLSsKLSsJcGljX2ZsYWdfZm9yX3N5bXRhYmxlPQotKwljYXNlICIkY29t cGlsZV9jb21tYW5kICIgaW4KLSsJKiIgLXN0YXRpYyAiKikgOzsKLSsJKikKLSsJICBjYXNlICRo b3N0IGluCi0rCSAgIyBjb21waWxpbmcgdGhlIHN5bWJvbCB0YWJsZSBmaWxlIHdpdGggcGljX2Zs YWcgd29ya3MgYXJvdW5kCi0rCSAgIyBhIEZyZWVCU0QgYnVnIHRoYXQgY2F1c2VzIHByb2dyYW1z IHRvIGNyYXNoIHdoZW4gLWxtIGlzCi0rCSAgIyBsaW5rZWQgYmVmb3JlIGFueSBvdGhlciBQSUMg b2JqZWN0LiAgQnV0IHdlIG11c3Qgbm90IHVzZQotKwkgICMgcGljX2ZsYWcgd2hlbiBsaW5raW5n IHdpdGggLXN0YXRpYy4gIFRoZSBwcm9ibGVtIGV4aXN0cyBpbgotKwkgICMgRnJlZUJTRCAyLjIu NiBhbmQgaXMgZml4ZWQgaW4gRnJlZUJTRCAzLjEuCi0rCSAgKi0qLWZyZWVic2QyKnwqLSotZnJl ZWJzZDMuMCp8Ki0qLWZyZWVic2RlbGYzLjAqKQotKwkgICAgcGljX2ZsYWdfZm9yX3N5bXRhYmxl PSIgJHBpY19mbGFnIC1ERlJFRUJTRF9XT1JLQVJPVU5EIiA7OwotKwkgICotKi1ocHV4KikKLSsJ ICAgIHBpY19mbGFnX2Zvcl9zeW10YWJsZT0iICRwaWNfZmxhZyIgIDs7Ci0rCSAgKikKLSsJICAg IGlmIHRlc3QgIlgkbXlfcGljX3AiICE9IFhubzsgdGhlbgotKwkgICAgICBwaWNfZmxhZ19mb3Jf c3ltdGFibGU9IiAkcGljX2ZsYWciCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAg OzsKLSsJZXNhYwotKwlzeW10YWJfY2ZsYWdzPQotKwlmb3IgYXJnIGluICRMVENGTEFHUzsgZG8K LSsJICBjYXNlICRhcmcgaW4KLSsJICAtcGllIHwgLWZwaWUgfCAtZlBJRSkgOzsKLSsJICAqKSBm dW5jX2FwcGVuZCBzeW10YWJfY2ZsYWdzICIgJGFyZyIgOzsKLSsJICBlc2FjCi0rCWRvbmUKLSsK LSsJIyBOb3cgY29tcGlsZSB0aGUgZHluYW1pYyBzeW1ib2wgZmlsZS4KLSsJZnVuY19zaG93X2V2 YWwgJyhjZCAkb3V0cHV0X29iamRpciAmJiAkTFRDQyRzeW10YWJfY2ZsYWdzIC1jJG5vX2J1aWx0 aW5fZmxhZyRwaWNfZmxhZ19mb3Jfc3ltdGFibGUgIiRteV9kbHN5bXMiKScgJ2V4aXQgJD8nCi0r Ci0rCSMgQ2xlYW4gdXAgdGhlIGdlbmVyYXRlZCBmaWxlcy4KLSsJZnVuY19zaG93X2V2YWwgJyRS TSAiJG91dHB1dF9vYmpkaXIvJG15X2Rsc3ltcyIgIiRubGlzdCIgIiR7bmxpc3R9UyIgIiR7bmxp c3R9VCInCi0rCi0rCSMgVHJhbnNmb3JtIHRoZSBzeW1ib2wgZmlsZSBpbnRvIHRoZSBjb3JyZWN0 IG5hbWUuCi0rCXN5bWZpbGVvYmo9IiRvdXRwdXRfb2JqZGlyLyR7bXlfb3V0cHV0bmFtZX1TLiRv YmpleHQiCi0rCWNhc2UgJGhvc3QgaW4KLSsJKmN5Z3dpbiogfCAqbWluZ3cqIHwgKmNlZ2NjKiAp Ci0rCSAgaWYgdGVzdCAtZiAiJG91dHB1dF9vYmpkaXIvJG15X291dHB1dG5hbWUuZGVmIjsgdGhl bgotKwkgICAgY29tcGlsZV9jb21tYW5kPWAkRUNITyAiJGNvbXBpbGVfY29tbWFuZCIgfCAkU0VE ICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYgJHN5bWZpbGVv YmolImAKLSsJICAgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICIkZmluYWxpemVfY29tbWFuZCIg fCAkU0VEICJzJUBTWU1GSUxFQCUkb3V0cHV0X29iamRpci8kbXlfb3V0cHV0bmFtZS5kZWYgJHN5 bWZpbGVvYmolImAKLSsJICBlbHNlCi0rCSAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29t cGlsZV9jb21tYW5kIiB8ICRTRUQgInMlQFNZTUZJTEVAJSRzeW1maWxlb2JqJSJgCi0rCSAgICBm aW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNFRCAicyVAU1lN RklMRUAlJHN5bWZpbGVvYmolImAKLSsJICBmaQotKwkgIDs7Ci0rCSopCi0rCSAgY29tcGlsZV9j b21tYW5kPWAkRUNITyAiJGNvbXBpbGVfY29tbWFuZCIgfCAkU0VEICJzJUBTWU1GSUxFQCUkc3lt ZmlsZW9iaiUiYAotKwkgIGZpbmFsaXplX2NvbW1hbmQ9YCRFQ0hPICIkZmluYWxpemVfY29tbWFu ZCIgfCAkU0VEICJzJUBTWU1GSUxFQCUkc3ltZmlsZW9iaiUiYAotKwkgIDs7Ci0rCWVzYWMKLSsJ OzsKLSsgICAgICAqKQotKwlmdW5jX2ZhdGFsX2Vycm9yICJ1bmtub3duIHN1ZmZpeCBmb3IgXGAk bXlfZGxzeW1zJyIKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGVsc2UKLSsgICAgICAjIFdlIGtl ZXAgZ29pbmcganVzdCBpbiBjYXNlIHRoZSB1c2VyIGRpZG4ndCByZWZlciB0bwotKyAgICAgICMg bHRfcHJlbG9hZGVkX3N5bWJvbHMuICBUaGUgbGlua2VyIHdpbGwgZmFpbCBpZiBnbG9iYWxfc3lt Ym9sX3BpcGUKLSsgICAgICAjIHJlYWxseSB3YXMgcmVxdWlyZWQuCi0rCi0rICAgICAgIyBOdWxs aWZ5IHRoZSBzeW1ib2wgZmlsZS4KLSsgICAgICBjb21waWxlX2NvbW1hbmQ9YCRFQ0hPICIkY29t cGlsZV9jb21tYW5kIiB8ICRTRUQgInMlIEBTWU1GSUxFQCUlImAKLSsgICAgICBmaW5hbGl6ZV9j b21tYW5kPWAkRUNITyAiJGZpbmFsaXplX2NvbW1hbmQiIHwgJFNFRCAicyUgQFNZTUZJTEVAJSUi YAotKyAgICBmaQotK30KLSsKLSsjIGZ1bmNfd2luMzJfbGliaWQgYXJnCi0rIyByZXR1cm4gdGhl IGxpYnJhcnkgdHlwZSBvZiBmaWxlICdhcmcnCi0rIwotKyMgTmVlZCBhIGxvdCBvZiBnb28gdG8g aGFuZGxlICpib3RoKiBETExzIGFuZCBpbXBvcnQgbGlicwotKyMgSGFzIHRvIGJlIGEgc2hlbGwg ZnVuY3Rpb24gaW4gb3JkZXIgdG8gJ2VhdCcgdGhlIGFyZ3VtZW50Ci0rIyB0aGF0IGlzIHN1cHBs aWVkIHdoZW4gJGZpbGVfbWFnaWNfY29tbWFuZCBpcyBjYWxsZWQuCi0rIyBEZXNwaXRlIHRoZSBu YW1lLCBhbHNvIGRlYWwgd2l0aCA2NCBiaXQgYmluYXJpZXMuCi0rZnVuY193aW4zMl9saWJpZCAo KQotK3sKLSsgICRvcHRfZGVidWcKLSsgIHdpbjMyX2xpYmlkX3R5cGU9InVua25vd24iCi0rICB3 aW4zMl9maWxlcmVzPWBmaWxlIC1MICQxIDI+L2Rldi9udWxsYAotKyAgY2FzZSAkd2luMzJfZmls ZXJlcyBpbgotKyAgKmFyXCBhcmNoaXZlXCBpbXBvcnRcIGxpYnJhcnkqKSAjIGRlZmluaXRlbHkg aW1wb3J0Ci0rICAgIHdpbjMyX2xpYmlkX3R5cGU9Ing4NiBhcmNoaXZlIGltcG9ydCIKLSsgICAg OzsKLSsgICphclwgYXJjaGl2ZSopICMgY291bGQgYmUgYW4gaW1wb3J0LCBvciBzdGF0aWMKLSsg ICAgIyBLZWVwIHRoZSBlZ3JlcCBwYXR0ZXJuIGluIHN5bmMgd2l0aCB0aGUgb25lIGluIF9MVF9D SEVDS19NQUdJQ19NRVRIT0QuCi0rICAgIGlmIGV2YWwgJE9CSkRVTVAgLWYgJDEgfCAkU0VEIC1l ICcxMHEnIDI+L2Rldi9udWxsIHwKLSsgICAgICAgJEVHUkVQICdmaWxlIGZvcm1hdCAocGVpKi1p Mzg2KC4qYXJjaGl0ZWN0dXJlOiBpMzg2KT98cGUtYXJtLXdpbmNlfHBlLXg4Ni02NCknID4vZGV2 L251bGw7IHRoZW4KLSsgICAgICBmdW5jX3RvX3Rvb2xfZmlsZSAiJDEiIGZ1bmNfY29udmVydF9m aWxlX21zeXNfdG9fdzMyCi0rICAgICAgd2luMzJfbm1yZXM9YGV2YWwgJE5NIC1mIHBvc2l4IC1B IFwiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdFwiIHwKLSsJJFNFRCAtbiAtZSAnCi0rCSAgICAx LDEwMHsKLSsJCS8gSSAvewotKwkJICAgIHMsLiosaW1wb3J0LAotKwkJICAgIHAKLSsJCSAgICBx Ci0rCQl9Ci0rCSAgICB9J2AKLSsgICAgICBjYXNlICR3aW4zMl9ubXJlcyBpbgotKyAgICAgIGlt cG9ydCopICB3aW4zMl9saWJpZF90eXBlPSJ4ODYgYXJjaGl2ZSBpbXBvcnQiOzsKLSsgICAgICAq KSAgICAgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2IGFyY2hpdmUgc3RhdGljIjs7Ci0rICAgICAg ZXNhYwotKyAgICBmaQotKyAgICA7OwotKyAgKkRMTCopCi0rICAgIHdpbjMyX2xpYmlkX3R5cGU9 Ing4NiBETEwiCi0rICAgIDs7Ci0rICAqZXhlY3V0YWJsZSopICMgYnV0IHNoZWxsIHNjcmlwdHMg YXJlICJleGVjdXRhYmxlIiB0b28uLi4KLSsgICAgY2FzZSAkd2luMzJfZmlsZXJlcyBpbgotKyAg ICAqTVNcIFdpbmRvd3NcIFBFXCBJbnRlbCopCi0rICAgICAgd2luMzJfbGliaWRfdHlwZT0ieDg2 IERMTCIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBlc2FjCi0rICAkRUNITyAi JHdpbjMyX2xpYmlkX3R5cGUiCi0rfQotKwotKyMgZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGli IEFSRwotKyMKLSsjIFBsYXRmb3JtLXNwZWNpZmljIGZ1bmN0aW9uIHRvIGV4dHJhY3QgdGhlCi0r IyBuYW1lIG9mIHRoZSBETEwgYXNzb2NpYXRlZCB3aXRoIHRoZSBzcGVjaWZpZWQKLSsjIGltcG9y dCBsaWJyYXJ5IEFSRy4KLSsjIEludm9rZWQgYnkgZXZhbCdpbmcgdGhlIGxpYnRvb2wgdmFyaWFi bGUKLSsjICAgICRzaGFyZWRsaWJfZnJvbV9saW5rbGliX2NtZAotKyMgUmVzdWx0IGlzIGF2YWls YWJsZSBpbiB0aGUgdmFyaWFibGUKLSsjICAgICRzaGFyZWRsaWJfZnJvbV9saW5rbGliX3Jlc3Vs dAotK2Z1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxpYiAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsg IHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0PWAkRExMVE9PTCAtLWlkZW50aWZ5LXN0cmlj dCAtLWlkZW50aWZ5ICIkMSJgCi0rfQotKwotKyMgZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1wbGli X2ZhbGxiYWNrX2NvcmUgU0VDVElPTl9OQU1FIExJQk5BTUVzCi0rIwotKyMgVGhlIGlzIHRoZSBj b3JlIG9mIGEgZmFsbGJhY2sgaW1wbGVtZW50YXRpb24gb2YgYQotKyMgcGxhdGZvcm0tc3BlY2lm aWMgZnVuY3Rpb24gdG8gZXh0cmFjdCB0aGUgbmFtZSBvZiB0aGUKLSsjIERMTCBhc3NvY2lhdGVk IHdpdGggdGhlIHNwZWNpZmllZCBpbXBvcnQgbGlicmFyeSBMSUJOQU1FLgotKyMKLSsjIFNFQ1RJ T05fTkFNRSBpcyBlaXRoZXIgLmlkYXRhJDYgb3IgLmlkYXRhJDcsIGRlcGVuZGluZwotKyMgb24g dGhlIHBsYXRmb3JtIGFuZCBjb21waWxlciB0aGF0IGNyZWF0ZWQgdGhlIGltcGxpYi4KLSsjCi0r IyBFY2hvcyB0aGUgbmFtZSBvZiB0aGUgRExMIGFzc29jaWF0ZWQgd2l0aCB0aGUKLSsjIHNwZWNp ZmllZCBpbXBvcnQgbGlicmFyeS4KLStmdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJh Y2tfY29yZSAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIG1hdGNoX2xpdGVyYWw9YCRFQ0hPICIk MSIgfCAkU0VEICIkc2VkX21ha2VfbGl0ZXJhbF9yZWdleCJgCi0rICAkT0JKRFVNUCAtcyAtLXNl Y3Rpb24gIiQxIiAiJDIiIDI+L2Rldi9udWxsIHwKLSsgICAgJFNFRCAnL15Db250ZW50cyBvZiBz ZWN0aW9uICciJG1hdGNoX2xpdGVyYWwiJzovewotKyAgICAgICMgUGxhY2UgbWFya2VyIGF0IGJl Z2lubmluZyBvZiBhcmNoaXZlIG1lbWJlciBkbGxuYW1lIHNlY3Rpb24KLSsgICAgICBzLy4qLz09 PT1NQVJLPT09PS8KLSsgICAgICBwCi0rICAgICAgZAotKyAgICB9Ci0rICAgICMgVGhlc2UgbGlu ZXMgY2FuIHNvbWV0aW1lcyBiZSBsb25nZXIgdGhhbiA0MyBjaGFyYWN0ZXJzLCBidXQKLSsgICAg IyBhcmUgYWx3YXlzIHVuaW50ZXJlc3RpbmcKLSsgICAgLzpbCSBdKmZpbGUgZm9ybWF0IHBlW2ld XHssMVx9LS9kCi0rICAgIC9eSW4gYXJjaGl2ZSBbXjpdKjovZAotKyAgICAjIEVuc3VyZSBtYXJr ZXIgaXMgcHJpbnRlZAotKyAgICAvXj09PT1NQVJLPT09PS9wCi0rICAgICMgUmVtb3ZlIGFsbCBs aW5lcyB3aXRoIGxlc3MgdGhhbiA0MyBjaGFyYWN0ZXJzCi0rICAgIC9eLlx7NDNcfS8hZAotKyAg ICAjIEZyb20gcmVtYWluaW5nIGxpbmVzLCByZW1vdmUgZmlyc3QgNDMgY2hhcmFjdGVycwotKyAg ICBzL14uXHs0M1x9Ly8nIHwKLSsgICAgJFNFRCAtbiAnCi0rICAgICAgIyBKb2luIG1hcmtlciBh bmQgYWxsIGxpbmVzIHVudGlsIG5leHQgbWFya2VyIGludG8gYSBzaW5nbGUgbGluZQotKyAgICAg IC9ePT09PU1BUks9PT09LyBiIHBhcmEKLSsgICAgICBICi0rICAgICAgJCBiIHBhcmEKLSsgICAg ICBiCi0rICAgICAgOnBhcmEKLSsgICAgICB4Ci0rICAgICAgcy9cbi8vZwotKyAgICAgICMgUmVt b3ZlIHRoZSBtYXJrZXIKLSsgICAgICBzL149PT09TUFSSz09PT0vLwotKyAgICAgICMgUmVtb3Zl IHRyYWlsaW5nIGRvdHMgYW5kIHdoaXRlc3BhY2UKLSsgICAgICBzL1tcLiBcdF0qJC8vCi0rICAg ICAgIyBQcmludAotKyAgICAgIC8uL3AnIHwKLSsgICAgIyB3ZSBub3cgaGF2ZSBhIGxpc3QsIG9u ZSBlbnRyeSBwZXIgbGluZSwgb2YgdGhlIHN0cmluZ2lmaWVkCi0rICAgICMgY29udGVudHMgb2Yg dGhlIGFwcHJvcHJpYXRlIHNlY3Rpb24gb2YgYWxsIG1lbWJlcnMgb2YgdGhlCi0rICAgICMgYXJj aGl2ZSB3aGljaCBwb3NzZXNzIHRoYXQgc2VjdGlvbi4gSGV1cmlzdGljOiBlbGltaW5hdGUKLSsg ICAgIyBhbGwgdGhvc2Ugd2hpY2ggaGF2ZSBhIGZpcnN0IG9yIHNlY29uZCBjaGFyYWN0ZXIgdGhh dCBpcwotKyAgICAjIGEgJy4nICh0aGF0IGlzLCBvYmpkdW1wJ3MgcmVwcmVzZW50YXRpb24gb2Yg YW4gdW5wcmludGFibGUKLSsgICAgIyBjaGFyYWN0ZXIuKSBUaGlzIHNob3VsZCB3b3JrIGZvciBh bGwgYXJjaGl2ZXMgd2l0aCBsZXNzIHRoYW4KLSsgICAgIyAweDMwMmYgZXhwb3J0cyAtLSBidXQg d2lsbCBmYWlsIGZvciBETExzIHdob3NlIG5hbWUgYWN0dWFsbHkKLSsgICAgIyBiZWdpbnMgd2l0 aCBhIGxpdGVyYWwgJy4nIG9yIGEgc2luZ2xlIGNoYXJhY3RlciBmb2xsb3dlZCBieQotKyAgICAj IGEgJy4nLgotKyAgICAjCi0rICAgICMgT2YgdGhvc2UgdGhhdCByZW1haW4sIHByaW50IHRoZSBm aXJzdCBvbmUuCi0rICAgICRTRUQgLWUgJy9eXC4vZDsvXi5cLi9kO3EnCi0rfQotKwotKyMgZnVu Y19jeWdtaW5nX2dudV9pbXBsaWJfcCBBUkcKLSsjIFRoaXMgcHJlZGljYXRlIHJldHVybnMgd2l0 aCB6ZXJvIHN0YXR1cyAoVFJVRSkgaWYKLSsjIEFSRyBpcyBhIEdOVS9iaW51dGlscy1zdHlsZSBp bXBvcnQgbGlicmFyeS4gUmV0dXJucwotKyMgd2l0aCBub256ZXJvIHN0YXR1cyAoRkFMU0UpIG90 aGVyd2lzZS4KLStmdW5jX2N5Z21pbmdfZ251X2ltcGxpYl9wICgpCi0rewotKyAgJG9wdF9kZWJ1 ZwotKyAgZnVuY190b190b29sX2ZpbGUgIiQxIiBmdW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3cz MgotKyAgZnVuY19jeWdtaW5nX2dudV9pbXBsaWJfdG1wPWAkTk0gIiRmdW5jX3RvX3Rvb2xfZmls ZV9yZXN1bHQiIHwgZXZhbCAiJGdsb2JhbF9zeW1ib2xfcGlwZSIgfCAkRUdSRVAgJyAoX2hlYWRf W0EtWmEtejAtOV9dK19bYWRdbCp8W0EtWmEtejAtOV9dK19bYWRdbCpfaW5hbWUpJCdgCi0rICB0 ZXN0IC1uICIkZnVuY19jeWdtaW5nX2dudV9pbXBsaWJfdG1wIgotK30KLSsKLSsjIGZ1bmNfY3ln bWluZ19tc19pbXBsaWJfcCBBUkcKLSsjIFRoaXMgcHJlZGljYXRlIHJldHVybnMgd2l0aCB6ZXJv IHN0YXR1cyAoVFJVRSkgaWYKLSsjIEFSRyBpcyBhbiBNUy1zdHlsZSBpbXBvcnQgbGlicmFyeS4g UmV0dXJucwotKyMgd2l0aCBub256ZXJvIHN0YXR1cyAoRkFMU0UpIG90aGVyd2lzZS4KLStmdW5j X2N5Z21pbmdfbXNfaW1wbGliX3AgKCkKLSt7Ci0rICAkb3B0X2RlYnVnCi0rICBmdW5jX3RvX3Rv b2xfZmlsZSAiJDEiIGZ1bmNfY29udmVydF9maWxlX21zeXNfdG9fdzMyCi0rICBmdW5jX2N5Z21p bmdfbXNfaW1wbGliX3RtcD1gJE5NICIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiB8IGV2YWwg IiRnbG9iYWxfc3ltYm9sX3BpcGUiIHwgJEdSRVAgJ19OVUxMX0lNUE9SVF9ERVNDUklQVE9SJ2AK LSsgIHRlc3QgLW4gIiRmdW5jX2N5Z21pbmdfbXNfaW1wbGliX3RtcCIKLSt9Ci0rCi0rIyBmdW5j X2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJhY2sgQVJHCi0rIyBQbGF0Zm9ybS1zcGVjaWZp YyBmdW5jdGlvbiB0byBleHRyYWN0IHRoZQotKyMgbmFtZSBvZiB0aGUgRExMIGFzc29jaWF0ZWQg d2l0aCB0aGUgc3BlY2lmaWVkCi0rIyBpbXBvcnQgbGlicmFyeSBBUkcuCi0rIwotKyMgVGhpcyBm YWxsYmFjayBpbXBsZW1lbnRhdGlvbiBpcyBmb3IgdXNlIHdoZW4gJERMTFRPT0wKLSsjIGRvZXMg bm90IHN1cHBvcnQgdGhlIC0taWRlbnRpZnktc3RyaWN0IG9wdGlvbi4KLSsjIEludm9rZWQgYnkg ZXZhbCdpbmcgdGhlIGxpYnRvb2wgdmFyaWFibGUKLSsjICAgICRzaGFyZWRsaWJfZnJvbV9saW5r bGliX2NtZAotKyMgUmVzdWx0IGlzIGF2YWlsYWJsZSBpbiB0aGUgdmFyaWFibGUKLSsjICAgICRz aGFyZWRsaWJfZnJvbV9saW5rbGliX3Jlc3VsdAotK2Z1bmNfY3lnbWluZ19kbGxfZm9yX2ltcGxp Yl9mYWxsYmFjayAoKQotK3sKLSsgICRvcHRfZGVidWcKLSsgIGlmIGZ1bmNfY3lnbWluZ19nbnVf aW1wbGliX3AgIiQxIiA7IHRoZW4KLSsgICAgIyBiaW51dGlscyBpbXBvcnQgbGlicmFyeQotKyAg ICBzaGFyZWRsaWJfZnJvbV9saW5rbGliX3Jlc3VsdD1gZnVuY19jeWdtaW5nX2RsbF9mb3JfaW1w bGliX2ZhbGxiYWNrX2NvcmUgJy5pZGF0YSQ3JyAiJDEiYAotKyAgZWxpZiBmdW5jX2N5Z21pbmdf bXNfaW1wbGliX3AgIiQxIiA7IHRoZW4KLSsgICAgIyBtcy1nZW5lcmF0ZWQgaW1wb3J0IGxpYnJh cnkKLSsgICAgc2hhcmVkbGliX2Zyb21fbGlua2xpYl9yZXN1bHQ9YGZ1bmNfY3lnbWluZ19kbGxf Zm9yX2ltcGxpYl9mYWxsYmFja19jb3JlICcuaWRhdGEkNicgIiQxImAKLSsgIGVsc2UKLSsgICAg IyB1bmtub3duCi0rICAgIHNoYXJlZGxpYl9mcm9tX2xpbmtsaWJfcmVzdWx0PSIiCi0rICBmaQot K30KLSsKLSsKLSsjIGZ1bmNfZXh0cmFjdF9hbl9hcmNoaXZlIGRpciBvbGRsaWIKLStmdW5jX2V4 dHJhY3RfYW5fYXJjaGl2ZSAoKQotK3sKLSsgICAgJG9wdF9kZWJ1ZwotKyAgICBmX2V4X2FuX2Fy X2Rpcj0iJDEiOyBzaGlmdAotKyAgICBmX2V4X2FuX2FyX29sZGxpYj0iJDEiCi0rICAgIGlmIHRl c3QgIiRsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb24iID0geWVzOyB0aGVuCi0rICAgICAgbG9j a2ZpbGU9JGZfZXhfYW5fYXJfb2xkbGliLmxvY2sKLSsgICAgICB1bnRpbCAkb3B0X2RyeV9ydW4g fHwgbG4gIiRwcm9ncGF0aCIgIiRsb2NrZmlsZSIgMj4vZGV2L251bGw7IGRvCi0rCWZ1bmNfZWNo byAiV2FpdGluZyBmb3IgJGxvY2tmaWxlIHRvIGJlIHJlbW92ZWQiCi0rCXNsZWVwIDIKLSsgICAg ICBkb25lCi0rICAgIGZpCi0rICAgIGZ1bmNfc2hvd19ldmFsICIoY2QgXCRmX2V4X2FuX2FyX2Rp ciAmJiAkQVIgeCBcIlwkZl9leF9hbl9hcl9vbGRsaWJcIikiIFwKLSsJCSAgICdzdGF0PSQ/OyBy bSAtZiAiJGxvY2tmaWxlIjsgZXhpdCAkc3RhdCcKLSsgICAgaWYgdGVzdCAiJGxvY2tfb2xkX2Fy Y2hpdmVfZXh0cmFjdGlvbiIgPSB5ZXM7IHRoZW4KLSsgICAgICAkb3B0X2RyeV9ydW4gfHwgcm0g LWYgIiRsb2NrZmlsZSIKLSsgICAgZmkKLSsgICAgaWYgKCRBUiB0ICIkZl9leF9hbl9hcl9vbGRs aWIiIHwgc29ydCB8IHNvcnQgLXVjID4vZGV2L251bGwgMj4mMSk7IHRoZW4KLSsgICAgIDoKLSsg ICAgZWxzZQotKyAgICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9iamVjdCBuYW1lIGNvbmZsaWN0cyBp biBhcmNoaXZlOiAkZl9leF9hbl9hcl9kaXIvJGZfZXhfYW5fYXJfb2xkbGliIgotKyAgICBmaQot K30KLSsKLSsKLSsjIGZ1bmNfZXh0cmFjdF9hcmNoaXZlcyBnZW50b3Agb2xkbGliIC4uLgotK2Z1 bmNfZXh0cmFjdF9hcmNoaXZlcyAoKQotK3sKLSsgICAgJG9wdF9kZWJ1ZwotKyAgICBteV9nZW50 b3A9IiQxIjsgc2hpZnQKLSsgICAgbXlfb2xkbGlicz0kezErIiRAIn0KLSsgICAgbXlfb2xkb2Jq cz0iIgotKyAgICBteV94bGliPSIiCi0rICAgIG15X3hhYnM9IiIKLSsgICAgbXlfeGRpcj0iIgot KwotKyAgICBmb3IgbXlfeGxpYiBpbiAkbXlfb2xkbGliczsgZG8KLSsgICAgICAjIEV4dHJhY3Qg dGhlIG9iamVjdHMuCi0rICAgICAgY2FzZSAkbXlfeGxpYiBpbgotKwlbXFwvXSogfCBbQS1aYS16 XTpbXFwvXSopIG15X3hhYnM9IiRteV94bGliIiA7OwotKwkqKSBteV94YWJzPWBwd2RgIi8kbXlf eGxpYiIgOzsKLSsgICAgICBlc2FjCi0rICAgICAgZnVuY19iYXNlbmFtZSAiJG15X3hsaWIiCi0r ICAgICAgbXlfeGxpYj0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKyAgICAgIG15X3hsaWJfdT0k bXlfeGxpYgotKyAgICAgIHdoaWxlIDo7IGRvCi0rICAgICAgICBjYXNlICIgJGV4dHJhY3RlZF9h cmNoaXZlcyAiIGluCi0rCSoiICRteV94bGliX3UgIiopCi0rCSAgZnVuY19hcml0aCAkZXh0cmFj dGVkX3NlcmlhbCArIDEKLSsJICBleHRyYWN0ZWRfc2VyaWFsPSRmdW5jX2FyaXRoX3Jlc3VsdAot KwkgIG15X3hsaWJfdT1sdCRleHRyYWN0ZWRfc2VyaWFsLSRteV94bGliIDs7Ci0rCSopIGJyZWFr IDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgZXh0cmFjdGVkX2FyY2hpdmVzPSIkZXh0 cmFjdGVkX2FyY2hpdmVzICRteV94bGliX3UiCi0rICAgICAgbXlfeGRpcj0iJG15X2dlbnRvcC8k bXlfeGxpYl91IgotKwotKyAgICAgIGZ1bmNfbWtkaXJfcCAiJG15X3hkaXIiCi0rCi0rICAgICAg Y2FzZSAkaG9zdCBpbgotKyAgICAgICotZGFyd2luKikKLSsJZnVuY192ZXJib3NlICJFeHRyYWN0 aW5nICRteV94YWJzIgotKwkjIERvIG5vdCBib3RoZXIgZG9pbmcgYW55dGhpbmcgaWYganVzdCBh IGRyeSBydW4KLSsJJG9wdF9kcnlfcnVuIHx8IHsKLSsJICBkYXJ3aW5fb3JpZ19kaXI9YHB3ZGAK LSsJICBjZCAkbXlfeGRpciB8fCBleGl0ICQ/Ci0rCSAgZGFyd2luX2FyY2hpdmU9JG15X3hhYnMK LSsJICBkYXJ3aW5fY3VyZGlyPWBwd2RgCi0rCSAgZGFyd2luX2Jhc2VfYXJjaGl2ZT1gYmFzZW5h bWUgIiRkYXJ3aW5fYXJjaGl2ZSJgCi0rCSAgZGFyd2luX2FyY2hlcz1gJExJUE8gLWluZm8gIiRk YXJ3aW5fYXJjaGl2ZSIgMj4vZGV2L251bGwgfCAkR1JFUCBBcmNoaXRlY3R1cmVzIDI+L2Rldi9u dWxsIHx8IHRydWVgCi0rCSAgaWYgdGVzdCAtbiAiJGRhcndpbl9hcmNoZXMiOyB0aGVuCi0rCSAg ICBkYXJ3aW5fYXJjaGVzPWAkRUNITyAiJGRhcndpbl9hcmNoZXMiIHwgJFNFRCAtZSAncy8uKmFy ZTovLydgCi0rCSAgICBkYXJ3aW5fYXJjaD0KLSsJICAgIGZ1bmNfdmVyYm9zZSAiJGRhcndpbl9i YXNlX2FyY2hpdmUgaGFzIG11bHRpcGxlIGFyY2hpdGVjdHVyZXMgJGRhcndpbl9hcmNoZXMiCi0r CSAgICBmb3IgZGFyd2luX2FyY2ggaW4gICRkYXJ3aW5fYXJjaGVzIDsgZG8KLSsJICAgICAgZnVu Y19ta2Rpcl9wICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9 IgotKwkgICAgICAkTElQTyAtdGhpbiAkZGFyd2luX2FyY2ggLW91dHB1dCAidW5mYXQtJCQvJHtk YXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rhcndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9 IiAiJHtkYXJ3aW5fYXJjaGl2ZX0iCi0rCSAgICAgIGNkICJ1bmZhdC0kJC8ke2Rhcndpbl9iYXNl X2FyY2hpdmV9LSR7ZGFyd2luX2FyY2h9IgotKwkgICAgICBmdW5jX2V4dHJhY3RfYW5fYXJjaGl2 ZSAiYHB3ZGAiICIke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgotKwkgICAgICBjZCAiJGRhcndpbl9j dXJkaXIiCi0rCSAgICAgICRSTSAidW5mYXQtJCQvJHtkYXJ3aW5fYmFzZV9hcmNoaXZlfS0ke2Rh cndpbl9hcmNofS8ke2Rhcndpbl9iYXNlX2FyY2hpdmV9IgotKwkgICAgZG9uZSAjICRkYXJ3aW5f YXJjaGVzCi0rICAgICAgICAgICAgIyMgT2theSBub3cgd2UndmUgYSBidW5jaCBvZiB0aGluIG9i amVjdHMsIGdvdHRhIGZhdHRlbiB0aGVtIHVwIDopCi0rCSAgICBkYXJ3aW5fZmlsZWxpc3Q9YGZp bmQgdW5mYXQtJCQgLXR5cGUgZiAtbmFtZSBcKi5vIC1wcmludCAtbyAtbmFtZSBcKi5sbyAtcHJp bnQgfCAkU0VEIC1lICIkYmFzZW5hbWUiIHwgc29ydCAtdWAKLSsJICAgIGRhcndpbl9maWxlPQot KwkgICAgZGFyd2luX2ZpbGVzPQotKwkgICAgZm9yIGRhcndpbl9maWxlIGluICRkYXJ3aW5fZmls ZWxpc3Q7IGRvCi0rCSAgICAgIGRhcndpbl9maWxlcz1gZmluZCB1bmZhdC0kJCAtbmFtZSAkZGFy d2luX2ZpbGUgLXByaW50IHwgc29ydCB8ICROTDJTUGAKLSsJICAgICAgJExJUE8gLWNyZWF0ZSAt b3V0cHV0ICIkZGFyd2luX2ZpbGUiICRkYXJ3aW5fZmlsZXMKLSsJICAgIGRvbmUgIyAkZGFyd2lu X2ZpbGVsaXN0Ci0rCSAgICAkUk0gLXJmIHVuZmF0LSQkCi0rCSAgICBjZCAiJGRhcndpbl9vcmln X2RpciIKLSsJICBlbHNlCi0rCSAgICBjZCAkZGFyd2luX29yaWdfZGlyCi0rCSAgICBmdW5jX2V4 dHJhY3RfYW5fYXJjaGl2ZSAiJG15X3hkaXIiICIkbXlfeGFicyIKLSsJICBmaSAjICRkYXJ3aW5f YXJjaGVzCi0rCX0gIyAhJG9wdF9kcnlfcnVuCi0rCTs7Ci0rICAgICAgKikKLSsgICAgICAgIGZ1 bmNfZXh0cmFjdF9hbl9hcmNoaXZlICIkbXlfeGRpciIgIiRteV94YWJzIgotKwk7OwotKyAgICAg IGVzYWMKLSsgICAgICBteV9vbGRvYmpzPSIkbXlfb2xkb2JqcyAiYGZpbmQgJG15X3hkaXIgLW5h bWUgXCouJG9iamV4dCAtcHJpbnQgLW8gLW5hbWUgXCoubG8gLXByaW50IHwgc29ydCB8ICROTDJT UGAKLSsgICAgZG9uZQotKwotKyAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0PSIkbXlf b2xkb2JqcyIKLSt9Ci0rCi0rCi0rIyBmdW5jX2VtaXRfd3JhcHBlciBbYXJnPW5vXQotKyMKLSsj IEVtaXQgYSBsaWJ0b29sIHdyYXBwZXIgc2NyaXB0IG9uIHN0ZG91dC4KLSsjIERvbid0IGRpcmVj dGx5IG9wZW4gYSBmaWxlIGJlY2F1c2Ugd2UgbWF5IHdhbnQgdG8KLSsjIGluY29ycG9yYXRlIHRo ZSBzY3JpcHQgY29udGVudHMgd2l0aGluIGEgY3lnd2luL21pbmd3Ci0rIyB3cmFwcGVyIGV4ZWN1 dGFibGUuICBNdXN0IE9OTFkgYmUgY2FsbGVkIGZyb20gd2l0aGluCi0rIyBmdW5jX21vZGVfbGlu ayBiZWNhdXNlIGl0IGRlcGVuZHMgb24gYSBudW1iZXIgb2YgdmFyaWFibGVzCi0rIyBzZXQgdGhl cmVpbi4KLSsjCi0rIyBBUkcgaXMgdGhlIHZhbHVlIHRoYXQgdGhlIFdSQVBQRVJfU0NSSVBUX0JF TE9OR1NfSU5fT0JKRElSCi0rIyB2YXJpYWJsZSB3aWxsIHRha2UuICBJZiAneWVzJywgdGhlbiB0 aGUgZW1pdHRlZCBzY3JpcHQKLSsjIHdpbGwgYXNzdW1lIHRoYXQgdGhlIGRpcmVjdG9yeSBpbiB3 aGljaCBpdCBpcyBzdG9yZWQgaXMKLSsjIHRoZSAkb2JqZGlyIGRpcmVjdG9yeS4gIFRoaXMgaXMg YSBjeWd3aW4vbWluZ3ctc3BlY2lmaWMKLSsjIGJlaGF2aW9yLgotK2Z1bmNfZW1pdF93cmFwcGVy ICgpCi0rewotKwlmdW5jX2VtaXRfd3JhcHBlcl9hcmcxPSR7MS1ub30KLSsKLSsJJEVDSE8gIlwK LSsjISAkU0hFTEwKLSsKLSsjICRvdXRwdXQgLSB0ZW1wb3Jhcnkgd3JhcHBlciBzY3JpcHQgZm9y ICRvYmpkaXIvJG91dHB1dG5hbWUKLSsjIEdlbmVyYXRlZCBieSAkUFJPR1JBTSAoR05VICRQQUNL QUdFJFRJTUVTVEFNUCkgJFZFUlNJT04KLSsjCi0rIyBUaGUgJG91dHB1dCBwcm9ncmFtIGNhbm5v dCBiZSBkaXJlY3RseSBleGVjdXRlZCB1bnRpbCBhbGwgdGhlIGxpYnRvb2wKLSsjIGxpYnJhcmll cyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KLSsjCi0rIyBUaGlzIHdyYXBwZXIg c2NyaXB0IHNob3VsZCBuZXZlciBiZSBtb3ZlZCBvdXQgb2YgdGhlIGJ1aWxkIGRpcmVjdG9yeS4K LSsjIElmIGl0IGlzLCBpdCB3aWxsIG5vdCBvcGVyYXRlIGNvcnJlY3RseS4KLSsKLSsjIFNlZCBz dWJzdGl0dXRpb24gdGhhdCBoZWxwcyB1cyBkbyByb2J1c3QgcXVvdGluZy4gIEl0IGJhY2tzbGFz aGlmaWVzCi0rIyBtZXRhY2hhcmFjdGVycyB0aGF0IGFyZSBzdGlsbCBhY3RpdmUgd2l0aGluIGRv dWJsZS1xdW90ZWQgc3RyaW5ncy4KLStzZWRfcXVvdGVfc3Vic3Q9JyRzZWRfcXVvdGVfc3Vic3Qn Ci0rCi0rIyBCZSBCb3VybmUgY29tcGF0aWJsZQotK2lmIHRlc3QgLW4gXCJcJHtaU0hfVkVSU0lP TitzZXR9XCIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgZW11bGF0 ZSBzaAotKyAgTlVMTENNRD06Ci0rICAjIFpzaCAzLnggYW5kIDQueCBwZXJmb3JtcyB3b3JkIHNw bGl0dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIg dXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICdcJHsxK1wiXCRAXCJ9 Jz0nXCJcJEBcIicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZWxzZQotKyAgY2FzZSBcYChz ZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4gKnBvc2l4Kikgc2V0IC1vIHBvc2l4OzsgZXNhYwotK2Zp Ci0rQklOX1NIPXhwZzQ7IGV4cG9ydCBCSU5fU0ggIyBmb3IgVHJ1NjQKLStEVUFMQ0FTRT0xOyBl eHBvcnQgRFVBTENBU0UgIyBmb3IgTUtTIHNoCi0rCi0rIyBUaGUgSFAtVVgga3NoIGFuZCBQT1NJ WCBzaGVsbCBwcmludCB0aGUgdGFyZ2V0IGRpcmVjdG9yeSB0byBzdGRvdXQKLSsjIGlmIENEUEFU SCBpcyBzZXQuCi0rKHVuc2V0IENEUEFUSCkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0IENEUEFU SAotKwotK3JlbGlua19jb21tYW5kPVwiJHJlbGlua19jb21tYW5kXCIKLSsKLSsjIFRoaXMgZW52 aXJvbm1lbnQgdmFyaWFibGUgZGV0ZXJtaW5lcyBvdXIgb3BlcmF0aW9uIG1vZGUuCi0raWYgdGVz dCBcIlwkbGlidG9vbF9pbnN0YWxsX21hZ2ljXCIgPSBcIiRtYWdpY1wiOyB0aGVuCi0rICAjIGlu c3RhbGwgbW9kZSBuZWVkcyB0aGUgZm9sbG93aW5nIHZhcmlhYmxlczoKLSsgIGdlbmVyYXRlZF9i eV9saWJ0b29sX3ZlcnNpb249JyRtYWNyb192ZXJzaW9uJwotKyAgbm90aW5zdF9kZXBsaWJzPSck bm90aW5zdF9kZXBsaWJzJwotK2Vsc2UKLSsgICMgV2hlbiB3ZSBhcmUgc291cmNlZCBpbiBleGVj dXRlIG1vZGUsIFwkZmlsZSBhbmQgXCRFQ0hPIGFyZSBhbHJlYWR5IHNldC4KLSsgIGlmIHRlc3Qg XCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KLSsgICAgZmls ZT1cIlwkMFwiIgotKwotKyAgICBxRUNITz1gJEVDSE8gIiRFQ0hPIiB8ICRTRUQgIiRzZWRfcXVv dGVfc3Vic3QiYAotKyAgICAkRUNITyAiXAotKwotKyMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQg d2hlbiB0aGVyZSBpcyBubyBwcmludCBidWlsdGluIG9yIHByaW50Zi4KLStmdW5jX2ZhbGxiYWNr X2VjaG8gKCkKLSt7Ci0rICBldmFsICdjYXQgPDxfTFRFQ0hPX0VPRgotK1wkMQotK19MVEVDSE9f RU9GJwotK30KLSsgICAgRUNITz1cIiRxRUNIT1wiCi0rICBmaQotKwotKyMgVmVyeSBiYXNpYyBv cHRpb24gcGFyc2luZy4gVGhlc2Ugb3B0aW9ucyBhcmUgKGEpIHNwZWNpZmljIHRvCi0rIyB0aGUg bGlidG9vbCB3cmFwcGVyLCAoYikgYXJlIGlkZW50aWNhbCBiZXR3ZWVuIHRoZSB3cmFwcGVyCi0r IyAvc2NyaXB0LyBhbmQgdGhlIHdyYXBwZXIgL2V4ZWN1dGFibGUvIHdoaWNoIGlzIHVzZWQgb25s eSBvbgotKyMgd2luZG93cyBwbGF0Zm9ybXMsIGFuZCAoYykgYWxsIGJlZ2luIHdpdGggdGhlIHN0 cmluZyAiLS1sdC0iCi0rIyAoYXBwbGljYXRpb24gcHJvZ3JhbXMgYXJlIHVubGlrZWx5IHRvIGhh dmUgb3B0aW9ucyB3aGljaCBtYXRjaAotKyMgdGhpcyBwYXR0ZXJuKS4KLSsjCi0rIyBUaGVyZSBh cmUgb25seSB0d28gc3VwcG9ydGVkIG9wdGlvbnM6IC0tbHQtZGVidWcgYW5kCi0rIyAtLWx0LWR1 bXAtc2NyaXB0LiBUaGVyZSBpcywgZGVsaWJlcmF0ZWx5LCBubyAtLWx0LWhlbHAuCi0rIwotKyMg VGhlIGZpcnN0IGFyZ3VtZW50IHRvIHRoaXMgcGFyc2luZyBmdW5jdGlvbiBzaG91bGQgYmUgdGhl Ci0rIyBzY3JpcHQncyAkMCB2YWx1ZSwgZm9sbG93ZWQgYnkgIiRAIi4KLStsdF9vcHRpb25fZGVi dWc9Ci0rZnVuY19wYXJzZV9sdF9vcHRpb25zICgpCi0rewotKyAgbHRfc2NyaXB0X2FyZzA9XCQw Ci0rICBzaGlmdAotKyAgZm9yIGx0X29wdAotKyAgZG8KLSsgICAgY2FzZSBcIlwkbHRfb3B0XCIg aW4KLSsgICAgLS1sdC1kZWJ1ZykgbHRfb3B0aW9uX2RlYnVnPTEgOzsKLSsgICAgLS1sdC1kdW1w LXNjcmlwdCkKLSsgICAgICAgIGx0X2R1bXBfRD1cYFwkRUNITyBcIlhcJGx0X3NjcmlwdF9hcmcw XCIgfCAkU0VEIC1lICdzL15YLy8nIC1lICdzJS9bXi9dKiQlJSdcYAotKyAgICAgICAgdGVzdCBc IlhcJGx0X2R1bXBfRFwiID0gXCJYXCRsdF9zY3JpcHRfYXJnMFwiICYmIGx0X2R1bXBfRD0uCi0r ICAgICAgICBsdF9kdW1wX0Y9XGBcJEVDSE8gXCJYXCRsdF9zY3JpcHRfYXJnMFwiIHwgJFNFRCAt ZSAncy9eWC8vJyAtZSAncyVeLiovJSUnXGAKLSsgICAgICAgIGNhdCBcIlwkbHRfZHVtcF9EL1wk bHRfZHVtcF9GXCIKLSsgICAgICAgIGV4aXQgMAotKyAgICAgIDs7Ci0rICAgIC0tbHQtKikKLSsg ICAgICAgIFwkRUNITyBcIlVucmVjb2duaXplZCAtLWx0LSBvcHRpb246ICdcJGx0X29wdCdcIiAx PiYyCi0rICAgICAgICBleGl0IDEKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICBkb25lCi0rCi0r ICAjIFByaW50IHRoZSBkZWJ1ZyBiYW5uZXIgaW1tZWRpYXRlbHk6Ci0rICBpZiB0ZXN0IC1uIFwi XCRsdF9vcHRpb25fZGVidWdcIjsgdGhlbgotKyAgICBlY2hvIFwiJHtvdXRwdXRuYW1lfToke291 dHB1dH06XCR7TElORU5PfTogbGlidG9vbCB3cmFwcGVyIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1Q KSAkVkVSU0lPTlwiIDE+JjIKLSsgIGZpCi0rfQotKwotKyMgVXNlZCB3aGVuIC0tbHQtZGVidWcu IFByaW50cyBpdHMgYXJndW1lbnRzIHRvIHN0ZG91dAotKyMgKHJlZGlyZWN0aW9uIGlzIHRoZSBy ZXNwb25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyKQotK2Z1bmNfbHRfZHVtcF9hcmdzICgpCi0rewot KyAgbHRfZHVtcF9hcmdzX049MTsKLSsgIGZvciBsdF9hcmcKLSsgIGRvCi0rICAgIFwkRUNITyBc IiR7b3V0cHV0bmFtZX06JHtvdXRwdXR9Olwke0xJTkVOT306IG5ld2FyZ3ZbXCRsdF9kdW1wX2Fy Z3NfTl06IFwkbHRfYXJnXCIKLSsgICAgbHRfZHVtcF9hcmdzX049XGBleHByIFwkbHRfZHVtcF9h cmdzX04gKyAxXGAKLSsgIGRvbmUKLSt9Ci0rCi0rIyBDb3JlIGZ1bmN0aW9uIGZvciBsYXVuY2hp bmcgdGhlIHRhcmdldCBhcHBsaWNhdGlvbgotK2Z1bmNfZXhlY19wcm9ncmFtX2NvcmUgKCkKLSt7 Ci0rIgotKyAgY2FzZSAkaG9zdCBpbgotKyAgIyBCYWNrc2xhc2hlcyBzZXBhcmF0ZSBkaXJlY3Rv cmllcyBvbiBwbGFpbiB3aW5kb3dzCi0rICAqLSotbWluZ3cgfCAqLSotb3MyKiB8ICotY2VnY2Mq KQotKyAgICAkRUNITyAiXAotKyAgICAgIGlmIHRlc3QgLW4gXCJcJGx0X29wdGlvbl9kZWJ1Z1wi OyB0aGVuCi0rICAgICAgICBcJEVDSE8gXCIke291dHB1dG5hbWV9OiR7b3V0cHV0fTpcJHtMSU5F Tk99OiBuZXdhcmd2WzBdOiBcJHByb2dkaXJcXFxcXCRwcm9ncmFtXCIgMT4mMgotKyAgICAgICAg ZnVuY19sdF9kdW1wX2FyZ3MgXCR7MStcIlwkQFwifSAxPiYyCi0rICAgICAgZmkKLSsgICAgICBl eGVjIFwiXCRwcm9nZGlyXFxcXFwkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KLSsiCi0rICAgIDs7 Ci0rCi0rICAqKQotKyAgICAkRUNITyAiXAotKyAgICAgIGlmIHRlc3QgLW4gXCJcJGx0X29wdGlv bl9kZWJ1Z1wiOyB0aGVuCi0rICAgICAgICBcJEVDSE8gXCIke291dHB1dG5hbWV9OiR7b3V0cHV0 fTpcJHtMSU5FTk99OiBuZXdhcmd2WzBdOiBcJHByb2dkaXIvXCRwcm9ncmFtXCIgMT4mMgotKyAg ICAgICAgZnVuY19sdF9kdW1wX2FyZ3MgXCR7MStcIlwkQFwifSAxPiYyCi0rICAgICAgZmkKLSsg ICAgICBleGVjIFwiXCRwcm9nZGlyL1wkcHJvZ3JhbVwiIFwkezErXCJcJEBcIn0KLSsiCi0rICAg IDs7Ci0rICBlc2FjCi0rICAkRUNITyAiXAotKyAgICAgIFwkRUNITyBcIlwkMDogY2Fubm90IGV4 ZWMgXCRwcm9ncmFtIFwkKlwiIDE+JjIKLSsgICAgICBleGl0IDEKLSt9Ci0rCi0rIyBBIGZ1bmN0 aW9uIHRvIGVuY2Fwc3VsYXRlIGxhdW5jaGluZyB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uCi0rIyBT dHJpcHMgb3B0aW9ucyBpbiB0aGUgLS1sdC0qIG5hbWVzcGFjZSBmcm9tIFwkQCBhbmQKLSsjIGxh dW5jaGVzIHRhcmdldCBhcHBsaWNhdGlvbiB3aXRoIHRoZSByZW1haW5pbmcgYXJndW1lbnRzLgot K2Z1bmNfZXhlY19wcm9ncmFtICgpCi0rewotKyAgZm9yIGx0X3dyX2FyZwotKyAgZG8KLSsgICAg Y2FzZSBcJGx0X3dyX2FyZyBpbgotKyAgICAtLWx0LSopIDs7Ci0rICAgICopIHNldCB4IFwiXCRA XCIgXCJcJGx0X3dyX2FyZ1wiOyBzaGlmdDs7Ci0rICAgIGVzYWMKLSsgICAgc2hpZnQKLSsgIGRv bmUKLSsgIGZ1bmNfZXhlY19wcm9ncmFtX2NvcmUgXCR7MStcIlwkQFwifQotK30KLSsKLSsgICMg UGFyc2Ugb3B0aW9ucwotKyAgZnVuY19wYXJzZV9sdF9vcHRpb25zIFwiXCQwXCIgXCR7MStcIlwk QFwifQotKwotKyAgIyBGaW5kIHRoZSBkaXJlY3RvcnkgdGhhdCB0aGlzIHNjcmlwdCBsaXZlcyBp bi4KLSsgIHRoaXNkaXI9XGBcJEVDSE8gXCJcJGZpbGVcIiB8ICRTRUQgJ3MlL1teL10qJCUlJ1xg Ci0rICB0ZXN0IFwieFwkdGhpc2RpclwiID0gXCJ4XCRmaWxlXCIgJiYgdGhpc2Rpcj0uCi0rCi0r ICAjIEZvbGxvdyBzeW1ib2xpYyBsaW5rcyB1bnRpbCB3ZSBnZXQgdG8gdGhlIHJlYWwgdGhpc2Rp ci4KLSsgIGZpbGU9XGBscyAtbGQgXCJcJGZpbGVcIiB8ICRTRUQgLW4gJ3MvLiotPiAvL3AnXGAK LSsgIHdoaWxlIHRlc3QgLW4gXCJcJGZpbGVcIjsgZG8KLSsgICAgZGVzdGRpcj1cYFwkRUNITyBc IlwkZmlsZVwiIHwgJFNFRCAncyUvW14vXSpcJCUlJ1xgCi0rCi0rICAgICMgSWYgdGhlcmUgd2Fz IGEgZGlyZWN0b3J5IGNvbXBvbmVudCwgdGhlbiBjaGFuZ2UgdGhpc2Rpci4KLSsgICAgaWYgdGVz dCBcInhcJGRlc3RkaXJcIiAhPSBcInhcJGZpbGVcIjsgdGhlbgotKyAgICAgIGNhc2UgXCJcJGRl c3RkaXJcIiBpbgotKyAgICAgIFtcXFxcL10qIHwgW0EtWmEtel06W1xcXFwvXSopIHRoaXNkaXI9 XCJcJGRlc3RkaXJcIiA7OwotKyAgICAgICopIHRoaXNkaXI9XCJcJHRoaXNkaXIvXCRkZXN0ZGly XCIgOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rCi0rICAgIGZpbGU9XGBcJEVDSE8gXCJcJGZp bGVcIiB8ICRTRUQgJ3MlXi4qLyUlJ1xgCi0rICAgIGZpbGU9XGBscyAtbGQgXCJcJHRoaXNkaXIv XCRmaWxlXCIgfCAkU0VEIC1uICdzLy4qLT4gLy9wJ1xgCi0rICBkb25lCi0rCi0rICAjIFVzdWFs bHkgJ25vJywgZXhjZXB0IG9uIGN5Z3dpbi9taW5ndyB3aGVuIGVtYmVkZGVkIGludG8KLSsgICMg dGhlIGN3cmFwcGVyLgotKyAgV1JBUFBFUl9TQ1JJUFRfQkVMT05HU19JTl9PQkpESVI9JGZ1bmNf ZW1pdF93cmFwcGVyX2FyZzEKLSsgIGlmIHRlc3QgXCJcJFdSQVBQRVJfU0NSSVBUX0JFTE9OR1Nf SU5fT0JKRElSXCIgPSBcInllc1wiOyB0aGVuCi0rICAgICMgc3BlY2lhbCBjYXNlIGZvciAnLicK LSsgICAgaWYgdGVzdCBcIlwkdGhpc2RpclwiID0gXCIuXCI7IHRoZW4KLSsgICAgICB0aGlzZGly PVxgcHdkXGAKLSsgICAgZmkKLSsgICAgIyByZW1vdmUgLmxpYnMgZnJvbSB0aGlzZGlyCi0rICAg IGNhc2UgXCJcJHRoaXNkaXJcIiBpbgotKyAgICAqW1xcXFwvXSRvYmpkaXIgKSB0aGlzZGlyPVxg XCRFQ0hPIFwiXCR0aGlzZGlyXCIgfCAkU0VEICdzJVtcXFxcL11bXlxcXFwvXSokJSUnXGAgOzsK LSsgICAgJG9iamRpciApICAgdGhpc2Rpcj0uIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0rICAj IFRyeSB0byBnZXQgdGhlIGFic29sdXRlIGRpcmVjdG9yeSBuYW1lLgotKyAgYWJzZGlyPVxgY2Qg XCJcJHRoaXNkaXJcIiAmJiBwd2RcYAotKyAgdGVzdCAtbiBcIlwkYWJzZGlyXCIgJiYgdGhpc2Rp cj1cIlwkYWJzZGlyXCIKLSsiCi0rCi0rCWlmIHRlc3QgIiRmYXN0X2luc3RhbGwiID0geWVzOyB0 aGVuCi0rCSAgJEVDSE8gIlwKLSsgIHByb2dyYW09bHQtJyRvdXRwdXRuYW1lJyRleGVleHQKLSsg IHByb2dkaXI9XCJcJHRoaXNkaXIvJG9iamRpclwiCi0rCi0rICBpZiB0ZXN0ICEgLWYgXCJcJHBy b2dkaXIvXCRwcm9ncmFtXCIgfHwKLSsgICAgIHsgZmlsZT1cYGxzIC0xZHQgXCJcJHByb2dkaXIv XCRwcm9ncmFtXCIgXCJcJHByb2dkaXIvLi4vXCRwcm9ncmFtXCIgMj4vZGV2L251bGwgfCAke1NF RH0gMXFcYDsgXFwKLSsgICAgICAgdGVzdCBcIlhcJGZpbGVcIiAhPSBcIlhcJHByb2dkaXIvXCRw cm9ncmFtXCI7IH07IHRoZW4KLSsKLSsgICAgZmlsZT1cIlwkXCQtXCRwcm9ncmFtXCIKLSsKLSsg ICAgaWYgdGVzdCAhIC1kIFwiXCRwcm9nZGlyXCI7IHRoZW4KLSsgICAgICAkTUtESVIgXCJcJHBy b2dkaXJcIgotKyAgICBlbHNlCi0rICAgICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCi0rICAg IGZpIgotKwotKwkgICRFQ0hPICJcCi0rCi0rICAgICMgcmVsaW5rIGV4ZWN1dGFibGUgaWYgbmVj ZXNzYXJ5Ci0rICAgIGlmIHRlc3QgLW4gXCJcJHJlbGlua19jb21tYW5kXCI7IHRoZW4KLSsgICAg ICBpZiByZWxpbmtfY29tbWFuZF9vdXRwdXQ9XGBldmFsIFwkcmVsaW5rX2NvbW1hbmQgMj4mMVxg OyB0aGVuIDoKLSsgICAgICBlbHNlCi0rCSRFQ0hPIFwiXCRyZWxpbmtfY29tbWFuZF9vdXRwdXRc IiA+JjIKLSsJJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCi0rCWV4aXQgMQotKyAgICAgIGZpCi0r ICAgIGZpCi0rCi0rICAgICRNViBcIlwkcHJvZ2Rpci9cJGZpbGVcIiBcIlwkcHJvZ2Rpci9cJHBy b2dyYW1cIiAyPi9kZXYvbnVsbCB8fAotKyAgICB7ICRSTSBcIlwkcHJvZ2Rpci9cJHByb2dyYW1c IjsKLSsgICAgICAkTVYgXCJcJHByb2dkaXIvXCRmaWxlXCIgXCJcJHByb2dkaXIvXCRwcm9ncmFt XCI7IH0KLSsgICAgJFJNIFwiXCRwcm9nZGlyL1wkZmlsZVwiCi0rICBmaSIKLSsJZWxzZQotKwkg ICRFQ0hPICJcCi0rICBwcm9ncmFtPSckb3V0cHV0bmFtZScKLSsgIHByb2dkaXI9XCJcJHRoaXNk aXIvJG9iamRpclwiCi0rIgotKwlmaQotKwotKwkkRUNITyAiXAotKwotKyAgaWYgdGVzdCAtZiBc IlwkcHJvZ2Rpci9cJHByb2dyYW1cIjsgdGhlbiIKLSsKLSsJIyBmaXh1cCB0aGUgZGxsIHNlYXJj aHBhdGggaWYgd2UgbmVlZCB0by4KLSsJIwotKwkjIEZpeCB0aGUgRExMIHNlYXJjaHBhdGggaWYg d2UgbmVlZCB0by4gIERvIHRoaXMgYmVmb3JlIHByZXBlbmRpbmcKLSsJIyB0byBzaGxpYnBhdGgs IGJlY2F1c2Ugb24gV2luZG93cywgYm90aCBhcmUgUEFUSCBhbmQgdW5pbnN0YWxsZWQKLSsJIyBs aWJyYXJpZXMgbXVzdCBjb21lIGZpcnN0LgotKwlpZiB0ZXN0IC1uICIkZGxsc2VhcmNocGF0aCI7 IHRoZW4KLSsJICAkRUNITyAiXAotKyAgICAjIEFkZCB0aGUgZGxsIHNlYXJjaCBwYXRoIGNvbXBv bmVudHMgdG8gdGhlIGV4ZWN1dGFibGUgUEFUSAotKyAgICBQQVRIPSRkbGxzZWFyY2hwYXRoOlwk UEFUSAotKyIKLSsJZmkKLSsKLSsJIyBFeHBvcnQgb3VyIHNobGlicGF0aF92YXIgaWYgd2UgaGF2 ZSBvbmUuCi0rCWlmIHRlc3QgIiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzICYm IHRlc3QgLW4gIiRzaGxpYnBhdGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4K LSsJICAkRUNITyAiXAotKyAgICAjIEFkZCBvdXIgb3duIGxpYnJhcnkgcGF0aCB0byAkc2hsaWJw YXRoX3ZhcgotKyAgICAkc2hsaWJwYXRoX3Zhcj1cIiR0ZW1wX3JwYXRoXCQkc2hsaWJwYXRoX3Zh clwiCi0rCi0rICAgICMgU29tZSBzeXN0ZW1zIGNhbm5vdCBjb3BlIHdpdGggY29sb24tdGVybWlu YXRlZCAkc2hsaWJwYXRoX3ZhcgotKyAgICAjIFRoZSBzZWNvbmQgY29sb24gaXMgYSB3b3JrYXJv dW5kIGZvciBhIGJ1ZyBpbiBCZU9TIFI0IHNlZAotKyAgICAkc2hsaWJwYXRoX3Zhcj1cYFwkRUNI TyBcIlwkJHNobGlicGF0aF92YXJcIiB8ICRTRUQgJ3MvOjoqXCQvLydcYAotKwotKyAgICBleHBv cnQgJHNobGlicGF0aF92YXIKLSsiCi0rCWZpCi0rCi0rCSRFQ0hPICJcCi0rICAgIGlmIHRlc3Qg XCJcJGxpYnRvb2xfZXhlY3V0ZV9tYWdpY1wiICE9IFwiJG1hZ2ljXCI7IHRoZW4KLSsgICAgICAj IFJ1biB0aGUgYWN0dWFsIHByb2dyYW0gd2l0aCBvdXIgYXJndW1lbnRzLgotKyAgICAgIGZ1bmNf ZXhlY19wcm9ncmFtIFwkezErXCJcJEBcIn0KLSsgICAgZmkKLSsgIGVsc2UKLSsgICAgIyBUaGUg cHJvZ3JhbSBkb2Vzbid0IGV4aXN0LgotKyAgICBcJEVDSE8gXCJcJDA6IGVycm9yOiBcXFxgXCRw cm9nZGlyL1wkcHJvZ3JhbScgZG9lcyBub3QgZXhpc3RcIiAxPiYyCi0rICAgIFwkRUNITyBcIlRo aXMgc2NyaXB0IGlzIGp1c3QgYSB3cmFwcGVyIGZvciBcJHByb2dyYW0uXCIgMT4mMgotKyAgICBc JEVDSE8gXCJTZWUgdGhlICRQQUNLQUdFIGRvY3VtZW50YXRpb24gZm9yIG1vcmUgaW5mb3JtYXRp b24uXCIgMT4mMgotKyAgICBleGl0IDEKLSsgIGZpCi0rZmlcCi0rIgotK30KLSsKLSsKLSsjIGZ1 bmNfZW1pdF9jd3JhcHBlcmV4ZV9zcmMKLSsjIGVtaXQgdGhlIHNvdXJjZSBjb2RlIGZvciBhIHdy YXBwZXIgZXhlY3V0YWJsZSBvbiBzdGRvdXQKLSsjIE11c3QgT05MWSBiZSBjYWxsZWQgZnJvbSB3 aXRoaW4gZnVuY19tb2RlX2xpbmsgYmVjYXVzZQotKyMgaXQgZGVwZW5kcyBvbiBhIG51bWJlciBv ZiB2YXJpYWJsZSBzZXQgdGhlcmVpbi4KLStmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjICgpCi0r ewotKwljYXQgPDxFT0YKLSsKLSsvKiAkY3dyYXBwZXJzb3VyY2UgLSB0ZW1wb3Jhcnkgd3JhcHBl ciBleGVjdXRhYmxlIGZvciAkb2JqZGlyLyRvdXRwdXRuYW1lCi0rICAgR2VuZXJhdGVkIGJ5ICRQ Uk9HUkFNIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVSU0lPTgotKwotKyAgIFRoZSAkb3V0 cHV0IHByb2dyYW0gY2Fubm90IGJlIGRpcmVjdGx5IGV4ZWN1dGVkIHVudGlsIGFsbCB0aGUgbGli dG9vbAotKyAgIGxpYnJhcmllcyB0aGF0IGl0IGRlcGVuZHMgb24gYXJlIGluc3RhbGxlZC4KLSsK LSsgICBUaGlzIHdyYXBwZXIgZXhlY3V0YWJsZSBzaG91bGQgbmV2ZXIgYmUgbW92ZWQgb3V0IG9m IHRoZSBidWlsZCBkaXJlY3RvcnkuCi0rICAgSWYgaXQgaXMsIGl0IHdpbGwgbm90IG9wZXJhdGUg Y29ycmVjdGx5LgotKyovCi0rRU9GCi0rCSAgICBjYXQgPDwiRU9GIgotKyNpZmRlZiBfTVNDX1ZF UgotKyMgZGVmaW5lIF9DUlRfU0VDVVJFX05PX0RFUFJFQ0FURSAxCi0rI2VuZGlmCi0rI2luY2x1 ZGUgPHN0ZGlvLmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpZmRlZiBfTVNDX1ZFUgotKyMg aW5jbHVkZSA8ZGlyZWN0Lmg+Ci0rIyBpbmNsdWRlIDxwcm9jZXNzLmg+Ci0rIyBpbmNsdWRlIDxp by5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDx1bmlzdGQuaD4KLSsjIGluY2x1ZGUgPHN0ZGludC5o PgotKyMgaWZkZWYgX19DWUdXSU5fXwotKyMgIGluY2x1ZGUgPGlvLmg+Ci0rIyBlbmRpZgotKyNl bmRpZgotKyNpbmNsdWRlIDxtYWxsb2MuaD4KLSsjaW5jbHVkZSA8c3RkYXJnLmg+Ci0rI2luY2x1 ZGUgPGFzc2VydC5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsjaW5jbHVkZSA8Y3R5cGUuaD4K LSsjaW5jbHVkZSA8ZXJybm8uaD4KLSsjaW5jbHVkZSA8ZmNudGwuaD4KLSsjaW5jbHVkZSA8c3lz L3N0YXQuaD4KLSsKLSsvKiBkZWNsYXJhdGlvbnMgb2Ygbm9uLUFOU0kgZnVuY3Rpb25zICovCi0r I2lmIGRlZmluZWQoX19NSU5HVzMyX18pCi0rIyBpZmRlZiBfX1NUUklDVF9BTlNJX18KLStpbnQg X3B1dGVudiAoY29uc3QgY2hhciAqKTsKLSsjIGVuZGlmCi0rI2VsaWYgZGVmaW5lZChfX0NZR1dJ Tl9fKQotKyMgaWZkZWYgX19TVFJJQ1RfQU5TSV9fCi0rY2hhciAqcmVhbHBhdGggKGNvbnN0IGNo YXIgKiwgY2hhciAqKTsKLStpbnQgcHV0ZW52IChjaGFyICopOwotK2ludCBzZXRlbnYgKGNvbnN0 IGNoYXIgKiwgY29uc3QgY2hhciAqLCBpbnQpOwotKyMgZW5kaWYKLSsvKiAjZWxpZiBkZWZpbmVk IChvdGhlciBwbGF0Zm9ybXMpIC4uLiAqLwotKyNlbmRpZgotKwotKy8qIHBvcnRhYmlsaXR5IGRl ZmluZXMsIGV4Y2x1ZGluZyBwYXRoIGhhbmRsaW5nIG1hY3JvcyAqLwotKyNpZiBkZWZpbmVkKF9N U0NfVkVSKQotKyMgZGVmaW5lIHNldG1vZGUgX3NldG1vZGUKLSsjIGRlZmluZSBzdGF0ICAgIF9z dGF0Ci0rIyBkZWZpbmUgY2htb2QgICBfY2htb2QKLSsjIGRlZmluZSBnZXRjd2QgIF9nZXRjd2QK LSsjIGRlZmluZSBwdXRlbnYgIF9wdXRlbnYKLSsjIGRlZmluZSBTX0lYVVNSIF9TX0lFWEVDCi0r IyBpZm5kZWYgX0lOVFBUUl9UX0RFRklORUQKLSsjICBkZWZpbmUgX0lOVFBUUl9UX0RFRklORUQK LSsjICBkZWZpbmUgaW50cHRyX3QgaW50Ci0rIyBlbmRpZgotKyNlbGlmIGRlZmluZWQoX19NSU5H VzMyX18pCi0rIyBkZWZpbmUgc2V0bW9kZSBfc2V0bW9kZQotKyMgZGVmaW5lIHN0YXQgICAgX3N0 YXQKLSsjIGRlZmluZSBjaG1vZCAgIF9jaG1vZAotKyMgZGVmaW5lIGdldGN3ZCAgX2dldGN3ZAot KyMgZGVmaW5lIHB1dGVudiAgX3B1dGVudgotKyNlbGlmIGRlZmluZWQoX19DWUdXSU5fXykKLSsj IGRlZmluZSBIQVZFX1NFVEVOVgotKyMgZGVmaW5lIEZPUEVOX1dCICJ3YiIKLSsvKiAjZWxpZiBk ZWZpbmVkIChvdGhlciBwbGF0Zm9ybXMpIC4uLiAqLwotKyNlbmRpZgotKwotKyNpZiBkZWZpbmVk KFBBVEhfTUFYKQotKyMgZGVmaW5lIExUX1BBVEhNQVggUEFUSF9NQVgKLSsjZWxpZiBkZWZpbmVk KE1BWFBBVEhMRU4pCi0rIyBkZWZpbmUgTFRfUEFUSE1BWCBNQVhQQVRITEVOCi0rI2Vsc2UKLSsj IGRlZmluZSBMVF9QQVRITUFYIDEwMjQKLSsjZW5kaWYKLSsKLSsjaWZuZGVmIFNfSVhPVEgKLSsj IGRlZmluZSBTX0lYT1RIIDAKLSsjZW5kaWYKLSsjaWZuZGVmIFNfSVhHUlAKLSsjIGRlZmluZSBT X0lYR1JQIDAKLSsjZW5kaWYKLSsKLSsvKiBwYXRoIGhhbmRsaW5nIHBvcnRhYmlsaXR5IG1hY3Jv cyAqLwotKyNpZm5kZWYgRElSX1NFUEFSQVRPUgotKyMgZGVmaW5lIERJUl9TRVBBUkFUT1IgJy8n Ci0rIyBkZWZpbmUgUEFUSF9TRVBBUkFUT1IgJzonCi0rI2VuZGlmCi0rCi0rI2lmIGRlZmluZWQg KF9XSU4zMikgfHwgZGVmaW5lZCAoX19NU0RPU19fKSB8fCBkZWZpbmVkIChfX0RKR1BQX18pIHx8 IFwKLSsgIGRlZmluZWQgKF9fT1MyX18pCi0rIyBkZWZpbmUgSEFWRV9ET1NfQkFTRURfRklMRV9T WVNURU0KLSsjIGRlZmluZSBGT1BFTl9XQiAid2IiCi0rIyBpZm5kZWYgRElSX1NFUEFSQVRPUl8y Ci0rIyAgZGVmaW5lIERJUl9TRVBBUkFUT1JfMiAnXFwnCi0rIyBlbmRpZgotKyMgaWZuZGVmIFBB VEhfU0VQQVJBVE9SXzIKLSsjICBkZWZpbmUgUEFUSF9TRVBBUkFUT1JfMiAnOycKLSsjIGVuZGlm Ci0rI2VuZGlmCi0rCi0rI2lmbmRlZiBESVJfU0VQQVJBVE9SXzIKLSsjIGRlZmluZSBJU19ESVJf U0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBESVJfU0VQQVJBVE9SKQotKyNlbHNlIC8qIERJUl9TRVBB UkFUT1JfMiAqLwotKyMgZGVmaW5lIElTX0RJUl9TRVBBUkFUT1IoY2gpIFwKLSsJKCgoY2gpID09 IERJUl9TRVBBUkFUT1IpIHx8ICgoY2gpID09IERJUl9TRVBBUkFUT1JfMikpCi0rI2VuZGlmIC8q IERJUl9TRVBBUkFUT1JfMiAqLwotKwotKyNpZm5kZWYgUEFUSF9TRVBBUkFUT1JfMgotKyMgZGVm aW5lIElTX1BBVEhfU0VQQVJBVE9SKGNoKSAoKGNoKSA9PSBQQVRIX1NFUEFSQVRPUikKLSsjZWxz ZSAvKiBQQVRIX1NFUEFSQVRPUl8yICovCi0rIyBkZWZpbmUgSVNfUEFUSF9TRVBBUkFUT1IoY2gp ICgoY2gpID09IFBBVEhfU0VQQVJBVE9SXzIpCi0rI2VuZGlmIC8qIFBBVEhfU0VQQVJBVE9SXzIg Ki8KLSsKLSsjaWZuZGVmIEZPUEVOX1dCCi0rIyBkZWZpbmUgRk9QRU5fV0IgInciCi0rI2VuZGlm Ci0rI2lmbmRlZiBfT19CSU5BUlkKLSsjIGRlZmluZSBfT19CSU5BUlkgMAotKyNlbmRpZgotKwot KyNkZWZpbmUgWE1BTExPQyh0eXBlLCBudW0pICAgICAgKCh0eXBlICopIHhtYWxsb2MgKChudW0p ICogc2l6ZW9mKHR5cGUpKSkKLSsjZGVmaW5lIFhGUkVFKHN0YWxlKSBkbyB7IFwKLSsgIGlmIChz dGFsZSkgeyBmcmVlICgodm9pZCAqKSBzdGFsZSk7IHN0YWxlID0gMDsgfSBcCi0rfSB3aGlsZSAo MCkKLSsKLSsjaWYgZGVmaW5lZChMVF9ERUJVR1dSQVBQRVIpCi0rc3RhdGljIGludCBsdF9kZWJ1 ZyA9IDE7Ci0rI2Vsc2UKLStzdGF0aWMgaW50IGx0X2RlYnVnID0gMDsKLSsjZW5kaWYKLSsKLStj b25zdCBjaGFyICpwcm9ncmFtX25hbWUgPSAibGlidG9vbC13cmFwcGVyIjsgLyogaW4gY2FzZSB4 c3RyZHVwIGZhaWxzICovCi0rCi0rdm9pZCAqeG1hbGxvYyAoc2l6ZV90IG51bSk7Ci0rY2hhciAq eHN0cmR1cCAoY29uc3QgY2hhciAqc3RyaW5nKTsKLStjb25zdCBjaGFyICpiYXNlX25hbWUgKGNv bnN0IGNoYXIgKm5hbWUpOwotK2NoYXIgKmZpbmRfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqd3Jh cHBlcik7Ci0rY2hhciAqY2hhc2Vfc3ltbGlua3MgKGNvbnN0IGNoYXIgKnBhdGhzcGVjKTsKLStp bnQgbWFrZV9leGVjdXRhYmxlIChjb25zdCBjaGFyICpwYXRoKTsKLStpbnQgY2hlY2tfZXhlY3V0 YWJsZSAoY29uc3QgY2hhciAqcGF0aCk7Ci0rY2hhciAqc3RyZW5kemFwIChjaGFyICpzdHIsIGNv bnN0IGNoYXIgKnBhdCk7Ci0rdm9pZCBsdF9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZmlsZSwg aW50IGxpbmUsIGNvbnN0IGNoYXIgKmZtdCwgLi4uKTsKLSt2b2lkIGx0X2ZhdGFsIChjb25zdCBj aGFyICpmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKTsKLStzdGF0aWMg Y29uc3QgY2hhciAqbm9ubnVsbCAoY29uc3QgY2hhciAqcyk7Ci0rc3RhdGljIGNvbnN0IGNoYXIg Km5vbmVtcHR5IChjb25zdCBjaGFyICpzKTsKLSt2b2lkIGx0X3NldGVudiAoY29uc3QgY2hhciAq bmFtZSwgY29uc3QgY2hhciAqdmFsdWUpOwotK2NoYXIgKmx0X2V4dGVuZF9zdHIgKGNvbnN0IGNo YXIgKm9yaWdfdmFsdWUsIGNvbnN0IGNoYXIgKmFkZCwgaW50IHRvX2VuZCk7Ci0rdm9pZCBsdF91 cGRhdGVfZXhlX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnZhbHVlKTsKLSt2 b2lkIGx0X3VwZGF0ZV9saWJfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hhciAqdmFs dWUpOwotK2NoYXIgKipwcmVwYXJlX3NwYXduIChjaGFyICoqYXJndik7Ci0rdm9pZCBsdF9kdW1w X3NjcmlwdCAoRklMRSAqZik7Ci0rRU9GCi0rCi0rCSAgICBjYXQgPDxFT0YKLSt2b2xhdGlsZSBj b25zdCBjaGFyICogTUFHSUNfRVhFID0gIiRtYWdpY19leGUiOwotK2NvbnN0IGNoYXIgKiBMSUJf UEFUSF9WQVJOQU1FID0gIiRzaGxpYnBhdGhfdmFyIjsKLStFT0YKLSsKLSsJICAgIGlmIHRlc3Qg IiRzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgiID0geWVzICYmIHRlc3QgLW4gIiRzaGxpYnBh dGhfdmFyIiAmJiB0ZXN0IC1uICIkdGVtcF9ycGF0aCI7IHRoZW4KLSsgICAgICAgICAgICAgIGZ1 bmNfdG9faG9zdF9wYXRoICIkdGVtcF9ycGF0aCIKLSsJICAgICAgY2F0IDw8RU9GCi0rY29uc3Qg Y2hhciAqIExJQl9QQVRIX1ZBTFVFICAgPSAiJGZ1bmNfdG9faG9zdF9wYXRoX3Jlc3VsdCI7Ci0r RU9GCi0rCSAgICBlbHNlCi0rCSAgICAgIGNhdCA8PCJFT0YiCi0rY29uc3QgY2hhciAqIExJQl9Q QVRIX1ZBTFVFICAgPSAiIjsKLStFT0YKLSsJICAgIGZpCi0rCi0rCSAgICBpZiB0ZXN0IC1uICIk ZGxsc2VhcmNocGF0aCI7IHRoZW4KLSsgICAgICAgICAgICAgIGZ1bmNfdG9faG9zdF9wYXRoICIk ZGxsc2VhcmNocGF0aDoiCi0rCSAgICAgIGNhdCA8PEVPRgotK2NvbnN0IGNoYXIgKiBFWEVfUEFU SF9WQVJOQU1FID0gIlBBVEgiOwotK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQUxVRSAgID0gIiRm dW5jX3RvX2hvc3RfcGF0aF9yZXN1bHQiOwotK0VPRgotKwkgICAgZWxzZQotKwkgICAgICBjYXQg PDwiRU9GIgotK2NvbnN0IGNoYXIgKiBFWEVfUEFUSF9WQVJOQU1FID0gIiI7Ci0rY29uc3QgY2hh ciAqIEVYRV9QQVRIX1ZBTFVFICAgPSAiIjsKLStFT0YKLSsJICAgIGZpCi0rCi0rCSAgICBpZiB0 ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllczsgdGhlbgotKwkgICAgICBjYXQgPDxFT0YKLStjb25z dCBjaGFyICogVEFSR0VUX1BST0dSQU1fTkFNRSA9ICJsdC0kb3V0cHV0bmFtZSI7IC8qIGhvcGVm dWxseSwgbm8gLmV4ZSAqLwotK0VPRgotKwkgICAgZWxzZQotKwkgICAgICBjYXQgPDxFT0YKLStj b25zdCBjaGFyICogVEFSR0VUX1BST0dSQU1fTkFNRSA9ICIkb3V0cHV0bmFtZSI7IC8qIGhvcGVm dWxseSwgbm8gLmV4ZSAqLwotK0VPRgotKwkgICAgZmkKLSsKLSsKLSsJICAgIGNhdCA8PCJFT0Yi Ci0rCi0rI2RlZmluZSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAgICAgICAgICItLWx0LSIKLSsK LStzdGF0aWMgY29uc3QgY2hhciAqbHR3cmFwcGVyX29wdGlvbl9wcmVmaXggPSBMVFdSQVBQRVJf T1BUSU9OX1BSRUZJWDsKLStzdGF0aWMgY29uc3QgY2hhciAqZHVtcHNjcmlwdF9vcHQgICAgICAg PSBMVFdSQVBQRVJfT1BUSU9OX1BSRUZJWCAiZHVtcC1zY3JpcHQiOwotK3N0YXRpYyBjb25zdCBj aGFyICpkZWJ1Z19vcHQgICAgICAgICAgICA9IExUV1JBUFBFUl9PUFRJT05fUFJFRklYICJkZWJ1 ZyI7Ci0rCi0raW50Ci0rbWFpbiAoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKLSt7Ci0rICBjaGFy ICoqbmV3YXJnejsKLSsgIGludCAgbmV3YXJnYzsKLSsgIGNoYXIgKnRtcF9wYXRoc3BlYzsKLSsg IGNoYXIgKmFjdHVhbF9jd3JhcHBlcl9wYXRoOwotKyAgY2hhciAqYWN0dWFsX2N3cmFwcGVyX25h bWU7Ci0rICBjaGFyICp0YXJnZXRfbmFtZTsKLSsgIGNoYXIgKmx0X2FyZ3ZfemVybzsKLSsgIGlu dHB0cl90IHJ2YWwgPSAxMjc7Ci0rCi0rICBpbnQgaTsKLSsKLSsgIHByb2dyYW1fbmFtZSA9IChj aGFyICopIHhzdHJkdXAgKGJhc2VfbmFtZSAoYXJndlswXSkpOwotKyAgbmV3YXJneiA9IFhNQUxM T0MgKGNoYXIgKiwgYXJnYyArIDEpOwotKwotKyAgLyogdmVyeSBzaW1wbGUgYXJnIHBhcnNpbmc7 IGRvbid0IHdhbnQgdG8gcmVseSBvbiBnZXRvcHQKLSsgICAqIGFsc28sIGNvcHkgYWxsIG5vbiBj d3JhcHBlciBvcHRpb25zIHRvIG5ld2FyZ3osIGV4Y2VwdAotKyAgICogYXJnelswXSwgd2hpY2gg aXMgaGFuZGxlZCBkaWZmZXJlbnRseQotKyAgICovCi0rICBuZXdhcmdjPTA7Ci0rICBmb3IgKGkg PSAxOyBpIDwgYXJnYzsgaSsrKQotKyAgICB7Ci0rICAgICAgaWYgKHN0cmNtcCAoYXJndltpXSwg ZHVtcHNjcmlwdF9vcHQpID09IDApCi0rCXsKLStFT0YKLSsJICAgIGNhc2UgIiRob3N0IiBpbgot KwkgICAgICAqbWluZ3cqIHwgKmN5Z3dpbiogKQotKwkJIyBtYWtlIHN0ZG91dCB1c2UgInVuaXgi IGxpbmUgZW5kaW5ncwotKwkJZWNobyAiICAgICAgICAgIHNldG1vZGUoMSxfT19CSU5BUlkpOyIK LSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsKLSsJICAgIGNhdCA8PCJFT0YiCi0rCSAgbHRfZHVtcF9z Y3JpcHQgKHN0ZG91dCk7Ci0rCSAgcmV0dXJuIDA7Ci0rCX0KLSsgICAgICBpZiAoc3RyY21wIChh cmd2W2ldLCBkZWJ1Z19vcHQpID09IDApCi0rCXsKLSsgICAgICAgICAgbHRfZGVidWcgPSAxOwot KyAgICAgICAgICBjb250aW51ZTsKLSsJfQotKyAgICAgIGlmIChzdHJjbXAgKGFyZ3ZbaV0sIGx0 d3JhcHBlcl9vcHRpb25fcHJlZml4KSA9PSAwKQotKyAgICAgICAgewotKyAgICAgICAgICAvKiBo b3dldmVyLCBpZiB0aGVyZSBpcyBhbiBvcHRpb24gaW4gdGhlIExUV1JBUFBFUl9PUFRJT05fUFJF RklYCi0rICAgICAgICAgICAgIG5hbWVzcGFjZSwgYnV0IGl0IGlzIG5vdCBvbmUgb2YgdGhlIG9u ZXMgd2Uga25vdyBhYm91dCBhbmQKLSsgICAgICAgICAgICAgaGF2ZSBhbHJlYWR5IGRlYWx0IHdp dGgsIGFib3ZlIChpbmx1ZGluZyBkdW1wLXNjcmlwdCksIHRoZW4KLSsgICAgICAgICAgICAgcmVw b3J0IGFuIGVycm9yLiBPdGhlcndpc2UsIHRhcmdldHMgbWlnaHQgYmVnaW4gdG8gYmVsaWV2ZQot KyAgICAgICAgICAgICB0aGV5IGFyZSBhbGxvd2VkIHRvIHVzZSBvcHRpb25zIGluIHRoZSBMVFdS QVBQRVJfT1BUSU9OX1BSRUZJWAotKyAgICAgICAgICAgICBuYW1lc3BhY2UuIFRoZSBmaXJzdCB0 aW1lIGFueSB1c2VyIGNvbXBsYWlucyBhYm91dCB0aGlzLCB3ZSdsbAotKyAgICAgICAgICAgICBu ZWVkIHRvIG1ha2UgTFRXUkFQUEVSX09QVElPTl9QUkVGSVggYSBjb25maWd1cmUtdGltZSBvcHRp b24KLSsgICAgICAgICAgICAgb3IgYSBjb25maWd1cmUuYWMtc2V0dGFibGUgdmFsdWUuCi0rICAg ICAgICAgICAqLwotKyAgICAgICAgICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLAotKwkJ ICAgICJ1bnJlY29nbml6ZWQgJXMgb3B0aW9uOiAnJXMnIiwKLSsgICAgICAgICAgICAgICAgICAg IGx0d3JhcHBlcl9vcHRpb25fcHJlZml4LCBhcmd2W2ldKTsKLSsgICAgICAgIH0KLSsgICAgICAv KiBvdGhlcndpc2UgLi4uICovCi0rICAgICAgbmV3YXJnelsrK25ld2FyZ2NdID0geHN0cmR1cCAo YXJndltpXSk7Ci0rICAgIH0KLSsgIG5ld2FyZ3pbKytuZXdhcmdjXSA9IE5VTEw7Ci0rCi0rRU9G Ci0rCSAgICBjYXQgPDxFT0YKLSsgIC8qIFRoZSBHTlUgYmFubmVyIG11c3QgYmUgdGhlIGZpcnN0 IG5vbi1lcnJvciBkZWJ1ZyBtZXNzYWdlICovCi0rICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18s IF9fTElORV9fLCAibGlidG9vbCB3cmFwcGVyIChHTlUgJFBBQ0tBR0UkVElNRVNUQU1QKSAkVkVS U0lPTlxuIik7Ci0rRU9GCi0rCSAgICBjYXQgPDwiRU9GIgotKyAgbHRfZGVidWdwcmludGYgKF9f RklMRV9fLCBfX0xJTkVfXywgIihtYWluKSBhcmd2WzBdOiAlc1xuIiwgYXJndlswXSk7Ci0rICBs dF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKG1haW4pIHByb2dyYW1fbmFtZTog JXNcbiIsIHByb2dyYW1fbmFtZSk7Ci0rCi0rICB0bXBfcGF0aHNwZWMgPSBmaW5kX2V4ZWN1dGFi bGUgKGFyZ3ZbMF0pOwotKyAgaWYgKHRtcF9wYXRoc3BlYyA9PSBOVUxMKQotKyAgICBsdF9mYXRh bCAoX19GSUxFX18sIF9fTElORV9fLCAiY291bGRuJ3QgZmluZCAlcyIsIGFyZ3ZbMF0pOwotKyAg bHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKLSsgICAgICAgICAgICAgICAgICAi KG1haW4pIGZvdW5kIGV4ZSAoYmVmb3JlIHN5bWxpbmsgY2hhc2UpIGF0OiAlc1xuIiwKLSsJCSAg dG1wX3BhdGhzcGVjKTsKLSsKLSsgIGFjdHVhbF9jd3JhcHBlcl9wYXRoID0gY2hhc2Vfc3ltbGlu a3MgKHRtcF9wYXRoc3BlYyk7Ci0rICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9f LAotKyAgICAgICAgICAgICAgICAgICIobWFpbikgZm91bmQgZXhlIChhZnRlciBzeW1saW5rIGNo YXNlKSBhdDogJXNcbiIsCi0rCQkgIGFjdHVhbF9jd3JhcHBlcl9wYXRoKTsKLSsgIFhGUkVFICh0 bXBfcGF0aHNwZWMpOwotKwotKyAgYWN0dWFsX2N3cmFwcGVyX25hbWUgPSB4c3RyZHVwIChiYXNl X25hbWUgKGFjdHVhbF9jd3JhcHBlcl9wYXRoKSk7Ci0rICBzdHJlbmR6YXAgKGFjdHVhbF9jd3Jh cHBlcl9wYXRoLCBhY3R1YWxfY3dyYXBwZXJfbmFtZSk7Ci0rCi0rICAvKiB3cmFwcGVyIG5hbWUg dHJhbnNmb3JtcyAqLwotKyAgc3RyZW5kemFwIChhY3R1YWxfY3dyYXBwZXJfbmFtZSwgIi5leGUi KTsKLSsgIHRtcF9wYXRoc3BlYyA9IGx0X2V4dGVuZF9zdHIgKGFjdHVhbF9jd3JhcHBlcl9uYW1l LCAiLmV4ZSIsIDEpOwotKyAgWEZSRUUgKGFjdHVhbF9jd3JhcHBlcl9uYW1lKTsKLSsgIGFjdHVh bF9jd3JhcHBlcl9uYW1lID0gdG1wX3BhdGhzcGVjOwotKyAgdG1wX3BhdGhzcGVjID0gMDsKLSsK LSsgIC8qIHRhcmdldF9uYW1lIHRyYW5zZm9ybXMgLS0gdXNlIGFjdHVhbCB0YXJnZXQgcHJvZ3Jh bSBuYW1lOyBtaWdodCBoYXZlIGx0LSBwcmVmaXggKi8KLSsgIHRhcmdldF9uYW1lID0geHN0cmR1 cCAoYmFzZV9uYW1lIChUQVJHRVRfUFJPR1JBTV9OQU1FKSk7Ci0rICBzdHJlbmR6YXAgKHRhcmdl dF9uYW1lLCAiLmV4ZSIpOwotKyAgdG1wX3BhdGhzcGVjID0gbHRfZXh0ZW5kX3N0ciAodGFyZ2V0 X25hbWUsICIuZXhlIiwgMSk7Ci0rICBYRlJFRSAodGFyZ2V0X25hbWUpOwotKyAgdGFyZ2V0X25h bWUgPSB0bXBfcGF0aHNwZWM7Ci0rICB0bXBfcGF0aHNwZWMgPSAwOwotKwotKyAgbHRfZGVidWdw cmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKLSsJCSAgIihtYWluKSBsaWJ0b29sIHRhcmdldCBu YW1lOiAlc1xuIiwKLSsJCSAgdGFyZ2V0X25hbWUpOwotK0VPRgotKwotKwkgICAgY2F0IDw8RU9G Ci0rICBuZXdhcmd6WzBdID0KLSsgICAgWE1BTExPQyAoY2hhciwgKHN0cmxlbiAoYWN0dWFsX2N3 cmFwcGVyX3BhdGgpICsKLSsJCSAgICBzdHJsZW4gKCIkb2JqZGlyIikgKyAxICsgc3RybGVuIChh Y3R1YWxfY3dyYXBwZXJfbmFtZSkgKyAxKSk7Ci0rICBzdHJjcHkgKG5ld2FyZ3pbMF0sIGFjdHVh bF9jd3JhcHBlcl9wYXRoKTsKLSsgIHN0cmNhdCAobmV3YXJnelswXSwgIiRvYmpkaXIiKTsKLSsg IHN0cmNhdCAobmV3YXJnelswXSwgIi8iKTsKLStFT0YKLSsKLSsJICAgIGNhdCA8PCJFT0YiCi0r ICAvKiBzdG9wIGhlcmUsIGFuZCBjb3B5IHNvIHdlIGRvbid0IGhhdmUgdG8gZG8gdGhpcyB0d2lj ZSAqLwotKyAgdG1wX3BhdGhzcGVjID0geHN0cmR1cCAobmV3YXJnelswXSk7Ci0rCi0rICAvKiBk byBOT1Qgd2FudCB0aGUgbHQtIHByZWZpeCBoZXJlLCBzbyB1c2UgYWN0dWFsX2N3cmFwcGVyX25h bWUgKi8KLSsgIHN0cmNhdCAobmV3YXJnelswXSwgYWN0dWFsX2N3cmFwcGVyX25hbWUpOwotKwot KyAgLyogRE8gd2FudCB0aGUgbHQtIHByZWZpeCBoZXJlIGlmIGl0IGV4aXN0cywgc28gdXNlIHRh cmdldF9uYW1lICovCi0rICBsdF9hcmd2X3plcm8gPSBsdF9leHRlbmRfc3RyICh0bXBfcGF0aHNw ZWMsIHRhcmdldF9uYW1lLCAxKTsKLSsgIFhGUkVFICh0bXBfcGF0aHNwZWMpOwotKyAgdG1wX3Bh dGhzcGVjID0gTlVMTDsKLStFT0YKLSsKLSsJICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsJICAgICAg bWluZ3cqKQotKwkgICAgY2F0IDw8IkVPRiIKLSsgIHsKLSsgICAgY2hhciogcDsKLSsgICAgd2hp bGUgKChwID0gc3RyY2hyIChuZXdhcmd6WzBdLCAnXFwnKSkgIT0gTlVMTCkKLSsgICAgICB7Ci0r CSpwID0gJy8nOwotKyAgICAgIH0KLSsgICAgd2hpbGUgKChwID0gc3RyY2hyIChsdF9hcmd2X3pl cm8sICdcXCcpKSAhPSBOVUxMKQotKyAgICAgIHsKLSsJKnAgPSAnLyc7Ci0rICAgICAgfQotKyAg fQotK0VPRgotKwkgICAgOzsKLSsJICAgIGVzYWMKLSsKLSsJICAgIGNhdCA8PCJFT0YiCi0rICBY RlJFRSAodGFyZ2V0X25hbWUpOwotKyAgWEZSRUUgKGFjdHVhbF9jd3JhcHBlcl9wYXRoKTsKLSsg IFhGUkVFIChhY3R1YWxfY3dyYXBwZXJfbmFtZSk7Ci0rCi0rICBsdF9zZXRlbnYgKCJCSU5fU0gi LCAieHBnNCIpOyAvKiBmb3IgVHJ1NjQgKi8KLSsgIGx0X3NldGVudiAoIkRVQUxDQVNFIiwgIjEi KTsgIC8qIGZvciBNU0sgc2ggKi8KLSsgIC8qIFVwZGF0ZSB0aGUgRExMIHNlYXJjaHBhdGguICBF WEVfUEFUSF9WQUxVRSAoJGRsbHNlYXJjaHBhdGgpIG11c3QKLSsgICAgIGJlIHByZXBlbmRlZCBi ZWZvcmUgKHRoYXQgaXMsIGFwcGVhciBhZnRlcikgTElCX1BBVEhfVkFMVUUgKCR0ZW1wX3JwYXRo KQotKyAgICAgYmVjYXVzZSBvbiBXaW5kb3dzLCBib3RoICpfVkFSTkFNRXMgYXJlIFBBVEggYnV0 IHVuaW5zdGFsbGVkCi0rICAgICBsaWJyYXJpZXMgbXVzdCBjb21lIGZpcnN0LiAqLwotKyAgbHRf dXBkYXRlX2V4ZV9wYXRoIChFWEVfUEFUSF9WQVJOQU1FLCBFWEVfUEFUSF9WQUxVRSk7Ci0rICBs dF91cGRhdGVfbGliX3BhdGggKExJQl9QQVRIX1ZBUk5BTUUsIExJQl9QQVRIX1ZBTFVFKTsKLSsK LSsgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sICIobWFpbikgbHRfYXJndl96 ZXJvOiAlc1xuIiwKLSsJCSAgbm9ubnVsbCAobHRfYXJndl96ZXJvKSk7Ci0rICBmb3IgKGkgPSAw OyBpIDwgbmV3YXJnYzsgaSsrKQotKyAgICB7Ci0rICAgICAgbHRfZGVidWdwcmludGYgKF9fRklM RV9fLCBfX0xJTkVfXywgIihtYWluKSBuZXdhcmd6WyVkXTogJXNcbiIsCi0rCQkgICAgICBpLCBu b25udWxsIChuZXdhcmd6W2ldKSk7Ci0rICAgIH0KLSsKLStFT0YKLSsKLSsJICAgIGNhc2UgJGhv c3Rfb3MgaW4KLSsJICAgICAgbWluZ3cqKQotKwkJY2F0IDw8IkVPRiIKLSsgIC8qIGV4ZWN2IGRv ZXNuJ3QgYWN0dWFsbHkgd29yayBvbiBtaW5ndyBhcyBleHBlY3RlZCBvbiB1bml4ICovCi0rICBu ZXdhcmd6ID0gcHJlcGFyZV9zcGF3biAobmV3YXJneik7Ci0rICBydmFsID0gX3NwYXdudiAoX1Bf V0FJVCwgbHRfYXJndl96ZXJvLCAoY29uc3QgY2hhciAqIGNvbnN0ICopIG5ld2FyZ3opOwotKyAg aWYgKHJ2YWwgPT0gLTEpCi0rICAgIHsKLSsgICAgICAvKiBmYWlsZWQgdG8gc3RhcnQgcHJvY2Vz cyAqLwotKyAgICAgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCi0rCQkgICAg ICAiKG1haW4pIGZhaWxlZCB0byBsYXVuY2ggdGFyZ2V0IFwiJXNcIjogJXNcbiIsCi0rCQkgICAg ICBsdF9hcmd2X3plcm8sIG5vbm51bGwgKHN0cmVycm9yIChlcnJubykpKTsKLSsgICAgICByZXR1 cm4gMTI3OwotKyAgICB9Ci0rICByZXR1cm4gcnZhbDsKLStFT0YKLSsJCTs7Ci0rCSAgICAgICop Ci0rCQljYXQgPDwiRU9GIgotKyAgZXhlY3YgKGx0X2FyZ3ZfemVybywgbmV3YXJneik7Ci0rICBy ZXR1cm4gcnZhbDsgLyogPTEyNywgYnV0IGF2b2lkcyB1bnVzZWQgdmFyaWFibGUgd2FybmluZyAq LwotK0VPRgotKwkJOzsKLSsJICAgIGVzYWMKLSsKLSsJICAgIGNhdCA8PCJFT0YiCi0rfQotKwot K3ZvaWQgKgotK3htYWxsb2MgKHNpemVfdCBudW0pCi0rewotKyAgdm9pZCAqcCA9ICh2b2lkICop IG1hbGxvYyAobnVtKTsKLSsgIGlmICghcCkKLSsgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJ TkVfXywgIm1lbW9yeSBleGhhdXN0ZWQiKTsKLSsKLSsgIHJldHVybiBwOwotK30KLSsKLStjaGFy ICoKLSt4c3RyZHVwIChjb25zdCBjaGFyICpzdHJpbmcpCi0rewotKyAgcmV0dXJuIHN0cmluZyA/ IHN0cmNweSAoKGNoYXIgKikgeG1hbGxvYyAoc3RybGVuIChzdHJpbmcpICsgMSksCi0rCQkJICBz dHJpbmcpIDogTlVMTDsKLSt9Ci0rCi0rY29uc3QgY2hhciAqCi0rYmFzZV9uYW1lIChjb25zdCBj aGFyICpuYW1lKQotK3sKLSsgIGNvbnN0IGNoYXIgKmJhc2U7Ci0rCi0rI2lmIGRlZmluZWQgKEhB VkVfRE9TX0JBU0VEX0ZJTEVfU1lTVEVNKQotKyAgLyogU2tpcCBvdmVyIHRoZSBkaXNrIG5hbWUg aW4gTVNET1MgcGF0aG5hbWVzLiAqLwotKyAgaWYgKGlzYWxwaGEgKCh1bnNpZ25lZCBjaGFyKSBu YW1lWzBdKSAmJiBuYW1lWzFdID09ICc6JykKLSsgICAgbmFtZSArPSAyOwotKyNlbmRpZgotKwot KyAgZm9yIChiYXNlID0gbmFtZTsgKm5hbWU7IG5hbWUrKykKLSsgICAgaWYgKElTX0RJUl9TRVBB UkFUT1IgKCpuYW1lKSkKLSsgICAgICBiYXNlID0gbmFtZSArIDE7Ci0rICByZXR1cm4gYmFzZTsK LSt9Ci0rCi0raW50Ci0rY2hlY2tfZXhlY3V0YWJsZSAoY29uc3QgY2hhciAqcGF0aCkKLSt7Ci0r ICBzdHJ1Y3Qgc3RhdCBzdDsKLSsKLSsgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5F X18sICIoY2hlY2tfZXhlY3V0YWJsZSk6ICVzXG4iLAotKyAgICAgICAgICAgICAgICAgIG5vbmVt cHR5IChwYXRoKSk7Ci0rICBpZiAoKCFwYXRoKSB8fCAoISpwYXRoKSkKLSsgICAgcmV0dXJuIDA7 Ci0rCi0rICBpZiAoKHN0YXQgKHBhdGgsICZzdCkgPj0gMCkKLSsgICAgICAmJiAoc3Quc3RfbW9k ZSAmIChTX0lYVVNSIHwgU19JWEdSUCB8IFNfSVhPVEgpKSkKLSsgICAgcmV0dXJuIDE7Ci0rICBl bHNlCi0rICAgIHJldHVybiAwOwotK30KLSsKLStpbnQKLSttYWtlX2V4ZWN1dGFibGUgKGNvbnN0 IGNoYXIgKnBhdGgpCi0rewotKyAgaW50IHJ2YWwgPSAwOwotKyAgc3RydWN0IHN0YXQgc3Q7Ci0r Ci0rICBsdF9kZWJ1Z3ByaW50ZiAoX19GSUxFX18sIF9fTElORV9fLCAiKG1ha2VfZXhlY3V0YWJs ZSk6ICVzXG4iLAotKyAgICAgICAgICAgICAgICAgIG5vbmVtcHR5IChwYXRoKSk7Ci0rICBpZiAo KCFwYXRoKSB8fCAoISpwYXRoKSkKLSsgICAgcmV0dXJuIDA7Ci0rCi0rICBpZiAoc3RhdCAocGF0 aCwgJnN0KSA+PSAwKQotKyAgICB7Ci0rICAgICAgcnZhbCA9IGNobW9kIChwYXRoLCBzdC5zdF9t b2RlIHwgU19JWE9USCB8IFNfSVhHUlAgfCBTX0lYVVNSKTsKLSsgICAgfQotKyAgcmV0dXJuIHJ2 YWw7Ci0rfQotKwotKy8qIFNlYXJjaGVzIGZvciB0aGUgZnVsbCBwYXRoIG9mIHRoZSB3cmFwcGVy LiAgUmV0dXJucwotKyAgIG5ld2x5IGFsbG9jYXRlZCBmdWxsIHBhdGggbmFtZSBpZiBmb3VuZCwg TlVMTCBvdGhlcndpc2UKLSsgICBEb2VzIG5vdCBjaGFzZSBzeW1saW5rcywgZXZlbiBvbiBwbGF0 Zm9ybXMgdGhhdCBzdXBwb3J0IHRoZW0uCi0rKi8KLStjaGFyICoKLStmaW5kX2V4ZWN1dGFibGUg KGNvbnN0IGNoYXIgKndyYXBwZXIpCi0rewotKyAgaW50IGhhc19zbGFzaCA9IDA7Ci0rICBjb25z dCBjaGFyICpwOwotKyAgY29uc3QgY2hhciAqcF9uZXh0OwotKyAgLyogc3RhdGljIGJ1ZmZlciBm b3IgZ2V0Y3dkICovCi0rICBjaGFyIHRtcFtMVF9QQVRITUFYICsgMV07Ci0rICBpbnQgdG1wX2xl bjsKLSsgIGNoYXIgKmNvbmNhdF9uYW1lOwotKwotKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9f LCBfX0xJTkVfXywgIihmaW5kX2V4ZWN1dGFibGUpOiAlc1xuIiwKLSsgICAgICAgICAgICAgICAg ICBub25lbXB0eSAod3JhcHBlcikpOwotKwotKyAgaWYgKCh3cmFwcGVyID09IE5VTEwpIHx8ICgq d3JhcHBlciA9PSAnXDAnKSkKLSsgICAgcmV0dXJuIE5VTEw7Ci0rCi0rICAvKiBBYnNvbHV0ZSBw YXRoPyAqLwotKyNpZiBkZWZpbmVkIChIQVZFX0RPU19CQVNFRF9GSUxFX1NZU1RFTSkKLSsgIGlm IChpc2FscGhhICgodW5zaWduZWQgY2hhcikgd3JhcHBlclswXSkgJiYgd3JhcHBlclsxXSA9PSAn OicpCi0rICAgIHsKLSsgICAgICBjb25jYXRfbmFtZSA9IHhzdHJkdXAgKHdyYXBwZXIpOwotKyAg ICAgIGlmIChjaGVja19leGVjdXRhYmxlIChjb25jYXRfbmFtZSkpCi0rCXJldHVybiBjb25jYXRf bmFtZTsKLSsgICAgICBYRlJFRSAoY29uY2F0X25hbWUpOwotKyAgICB9Ci0rICBlbHNlCi0rICAg IHsKLSsjZW5kaWYKLSsgICAgICBpZiAoSVNfRElSX1NFUEFSQVRPUiAod3JhcHBlclswXSkpCi0r CXsKLSsJICBjb25jYXRfbmFtZSA9IHhzdHJkdXAgKHdyYXBwZXIpOwotKwkgIGlmIChjaGVja19l eGVjdXRhYmxlIChjb25jYXRfbmFtZSkpCi0rCSAgICByZXR1cm4gY29uY2F0X25hbWU7Ci0rCSAg WEZSRUUgKGNvbmNhdF9uYW1lKTsKLSsJfQotKyNpZiBkZWZpbmVkIChIQVZFX0RPU19CQVNFRF9G SUxFX1NZU1RFTSkKLSsgICAgfQotKyNlbmRpZgotKwotKyAgZm9yIChwID0gd3JhcHBlcjsgKnA7 IHArKykKLSsgICAgaWYgKCpwID09ICcvJykKLSsgICAgICB7Ci0rCWhhc19zbGFzaCA9IDE7Ci0r CWJyZWFrOwotKyAgICAgIH0KLSsgIGlmICghaGFzX3NsYXNoKQotKyAgICB7Ci0rICAgICAgLyog bm8gc2xhc2hlczsgc2VhcmNoIFBBVEggKi8KLSsgICAgICBjb25zdCBjaGFyICpwYXRoID0gZ2V0 ZW52ICgiUEFUSCIpOwotKyAgICAgIGlmIChwYXRoICE9IE5VTEwpCi0rCXsKLSsJICBmb3IgKHAg PSBwYXRoOyAqcDsgcCA9IHBfbmV4dCkKLSsJICAgIHsKLSsJICAgICAgY29uc3QgY2hhciAqcTsK LSsJICAgICAgc2l6ZV90IHBfbGVuOwotKwkgICAgICBmb3IgKHEgPSBwOyAqcTsgcSsrKQotKwkJ aWYgKElTX1BBVEhfU0VQQVJBVE9SICgqcSkpCi0rCQkgIGJyZWFrOwotKwkgICAgICBwX2xlbiA9 IHEgLSBwOwotKwkgICAgICBwX25leHQgPSAoKnEgPT0gJ1wwJyA/IHEgOiBxICsgMSk7Ci0rCSAg ICAgIGlmIChwX2xlbiA9PSAwKQotKwkJewotKwkJICAvKiBlbXB0eSBwYXRoOiBjdXJyZW50IGRp cmVjdG9yeSAqLwotKwkJICBpZiAoZ2V0Y3dkICh0bXAsIExUX1BBVEhNQVgpID09IE5VTEwpCi0r CQkgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBfX0xJTkVfXywgImdldGN3ZCBmYWlsZWQ6ICVzIiwK LSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBub25udWxsIChzdHJlcnJvciAoZXJybm8p KSk7Ci0rCQkgIHRtcF9sZW4gPSBzdHJsZW4gKHRtcCk7Ci0rCQkgIGNvbmNhdF9uYW1lID0KLSsJ CSAgICBYTUFMTE9DIChjaGFyLCB0bXBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAxKTsK LSsJCSAgbWVtY3B5IChjb25jYXRfbmFtZSwgdG1wLCB0bXBfbGVuKTsKLSsJCSAgY29uY2F0X25h bWVbdG1wX2xlbl0gPSAnLyc7Ci0rCQkgIHN0cmNweSAoY29uY2F0X25hbWUgKyB0bXBfbGVuICsg MSwgd3JhcHBlcik7Ci0rCQl9Ci0rCSAgICAgIGVsc2UKLSsJCXsKLSsJCSAgY29uY2F0X25hbWUg PQotKwkJICAgIFhNQUxMT0MgKGNoYXIsIHBfbGVuICsgMSArIHN0cmxlbiAod3JhcHBlcikgKyAx KTsKLSsJCSAgbWVtY3B5IChjb25jYXRfbmFtZSwgcCwgcF9sZW4pOwotKwkJICBjb25jYXRfbmFt ZVtwX2xlbl0gPSAnLyc7Ci0rCQkgIHN0cmNweSAoY29uY2F0X25hbWUgKyBwX2xlbiArIDEsIHdy YXBwZXIpOwotKwkJfQotKwkgICAgICBpZiAoY2hlY2tfZXhlY3V0YWJsZSAoY29uY2F0X25hbWUp KQotKwkJcmV0dXJuIGNvbmNhdF9uYW1lOwotKwkgICAgICBYRlJFRSAoY29uY2F0X25hbWUpOwot KwkgICAgfQotKwl9Ci0rICAgICAgLyogbm90IGZvdW5kIGluIFBBVEg7IGFzc3VtZSBjdXJkaXIg Ki8KLSsgICAgfQotKyAgLyogUmVsYXRpdmUgcGF0aCB8IG5vdCBmb3VuZCBpbiBwYXRoOiBwcmVw ZW5kIGN3ZCAqLwotKyAgaWYgKGdldGN3ZCAodG1wLCBMVF9QQVRITUFYKSA9PSBOVUxMKQotKyAg ICBsdF9mYXRhbCAoX19GSUxFX18sIF9fTElORV9fLCAiZ2V0Y3dkIGZhaWxlZDogJXMiLAotKyAg ICAgICAgICAgICAgbm9ubnVsbCAoc3RyZXJyb3IgKGVycm5vKSkpOwotKyAgdG1wX2xlbiA9IHN0 cmxlbiAodG1wKTsKLSsgIGNvbmNhdF9uYW1lID0gWE1BTExPQyAoY2hhciwgdG1wX2xlbiArIDEg KyBzdHJsZW4gKHdyYXBwZXIpICsgMSk7Ci0rICBtZW1jcHkgKGNvbmNhdF9uYW1lLCB0bXAsIHRt cF9sZW4pOwotKyAgY29uY2F0X25hbWVbdG1wX2xlbl0gPSAnLyc7Ci0rICBzdHJjcHkgKGNvbmNh dF9uYW1lICsgdG1wX2xlbiArIDEsIHdyYXBwZXIpOwotKwotKyAgaWYgKGNoZWNrX2V4ZWN1dGFi bGUgKGNvbmNhdF9uYW1lKSkKLSsgICAgcmV0dXJuIGNvbmNhdF9uYW1lOwotKyAgWEZSRUUgKGNv bmNhdF9uYW1lKTsKLSsgIHJldHVybiBOVUxMOwotK30KLSsKLStjaGFyICoKLStjaGFzZV9zeW1s aW5rcyAoY29uc3QgY2hhciAqcGF0aHNwZWMpCi0rewotKyNpZm5kZWYgU19JU0xOSwotKyAgcmV0 dXJuIHhzdHJkdXAgKHBhdGhzcGVjKTsKLSsjZWxzZQotKyAgY2hhciBidWZbTFRfUEFUSE1BWF07 Ci0rICBzdHJ1Y3Qgc3RhdCBzOwotKyAgY2hhciAqdG1wX3BhdGhzcGVjID0geHN0cmR1cCAocGF0 aHNwZWMpOwotKyAgY2hhciAqcDsKLSsgIGludCBoYXNfc3ltbGlua3MgPSAwOwotKyAgd2hpbGUg KHN0cmxlbiAodG1wX3BhdGhzcGVjKSAmJiAhaGFzX3N5bWxpbmtzKQotKyAgICB7Ci0rICAgICAg bHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKLSsJCSAgICAgICJjaGVja2luZyBw YXRoIGNvbXBvbmVudCBmb3Igc3ltbGlua3M6ICVzXG4iLAotKwkJICAgICAgdG1wX3BhdGhzcGVj KTsKLSsgICAgICBpZiAobHN0YXQgKHRtcF9wYXRoc3BlYywgJnMpID09IDApCi0rCXsKLSsJICBp ZiAoU19JU0xOSyAocy5zdF9tb2RlKSAhPSAwKQotKwkgICAgewotKwkgICAgICBoYXNfc3ltbGlu a3MgPSAxOwotKwkgICAgICBicmVhazsKLSsJICAgIH0KLSsKLSsJICAvKiBzZWFyY2ggYmFja3dh cmRzIGZvciBsYXN0IERJUl9TRVBBUkFUT1IgKi8KLSsJICBwID0gdG1wX3BhdGhzcGVjICsgc3Ry bGVuICh0bXBfcGF0aHNwZWMpIC0gMTsKLSsJICB3aGlsZSAoKHAgPiB0bXBfcGF0aHNwZWMpICYm ICghSVNfRElSX1NFUEFSQVRPUiAoKnApKSkKLSsJICAgIHAtLTsKLSsJICBpZiAoKHAgPT0gdG1w X3BhdGhzcGVjKSAmJiAoIUlTX0RJUl9TRVBBUkFUT1IgKCpwKSkpCi0rCSAgICB7Ci0rCSAgICAg IC8qIG5vIG1vcmUgRElSX1NFUEFSQVRPUlMgbGVmdCAqLwotKwkgICAgICBicmVhazsKLSsJICAg IH0KLSsJICAqcCA9ICdcMCc7Ci0rCX0KLSsgICAgICBlbHNlCi0rCXsKLSsJICBsdF9mYXRhbCAo X19GSUxFX18sIF9fTElORV9fLAotKwkJICAgICJlcnJvciBhY2Nlc3NpbmcgZmlsZSBcIiVzXCI6 ICVzIiwKLSsJCSAgICB0bXBfcGF0aHNwZWMsIG5vbm51bGwgKHN0cmVycm9yIChlcnJubykpKTsK LSsJfQotKyAgICB9Ci0rICBYRlJFRSAodG1wX3BhdGhzcGVjKTsKLSsKLSsgIGlmICghaGFzX3N5 bWxpbmtzKQotKyAgICB7Ci0rICAgICAgcmV0dXJuIHhzdHJkdXAgKHBhdGhzcGVjKTsKLSsgICAg fQotKwotKyAgdG1wX3BhdGhzcGVjID0gcmVhbHBhdGggKHBhdGhzcGVjLCBidWYpOwotKyAgaWYg KHRtcF9wYXRoc3BlYyA9PSAwKQotKyAgICB7Ci0rICAgICAgbHRfZmF0YWwgKF9fRklMRV9fLCBf X0xJTkVfXywKLSsJCSJjb3VsZCBub3QgZm9sbG93IHN5bWxpbmtzIGZvciAlcyIsIHBhdGhzcGVj KTsKLSsgICAgfQotKyAgcmV0dXJuIHhzdHJkdXAgKHRtcF9wYXRoc3BlYyk7Ci0rI2VuZGlmCi0r fQotKwotK2NoYXIgKgotK3N0cmVuZHphcCAoY2hhciAqc3RyLCBjb25zdCBjaGFyICpwYXQpCi0r ewotKyAgc2l6ZV90IGxlbiwgcGF0bGVuOwotKwotKyAgYXNzZXJ0IChzdHIgIT0gTlVMTCk7Ci0r ICBhc3NlcnQgKHBhdCAhPSBOVUxMKTsKLSsKLSsgIGxlbiA9IHN0cmxlbiAoc3RyKTsKLSsgIHBh dGxlbiA9IHN0cmxlbiAocGF0KTsKLSsKLSsgIGlmIChwYXRsZW4gPD0gbGVuKQotKyAgICB7Ci0r ICAgICAgc3RyICs9IGxlbiAtIHBhdGxlbjsKLSsgICAgICBpZiAoc3RyY21wIChzdHIsIHBhdCkg PT0gMCkKLSsJKnN0ciA9ICdcMCc7Ci0rICAgIH0KLSsgIHJldHVybiBzdHI7Ci0rfQotKwotK3Zv aWQKLStsdF9kZWJ1Z3ByaW50ZiAoY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNo YXIgKmZtdCwgLi4uKQotK3sKLSsgIHZhX2xpc3QgYXJnczsKLSsgIGlmIChsdF9kZWJ1ZykKLSsg ICAgewotKyAgICAgICh2b2lkKSBmcHJpbnRmIChzdGRlcnIsICIlczolczolZDogIiwgcHJvZ3Jh bV9uYW1lLCBmaWxlLCBsaW5lKTsKLSsgICAgICB2YV9zdGFydCAoYXJncywgZm10KTsKLSsgICAg ICAodm9pZCkgdmZwcmludGYgKHN0ZGVyciwgZm10LCBhcmdzKTsKLSsgICAgICB2YV9lbmQgKGFy Z3MpOwotKyAgICB9Ci0rfQotKwotK3N0YXRpYyB2b2lkCi0rbHRfZXJyb3JfY29yZSAoaW50IGV4 aXRfc3RhdHVzLCBjb25zdCBjaGFyICpmaWxlLAotKwkgICAgICAgaW50IGxpbmUsIGNvbnN0IGNo YXIgKm1vZGUsCi0rCSAgICAgICBjb25zdCBjaGFyICptZXNzYWdlLCB2YV9saXN0IGFwKQotK3sK LSsgIGZwcmludGYgKHN0ZGVyciwgIiVzOiVzOiVkOiAlczogIiwgcHJvZ3JhbV9uYW1lLCBmaWxl LCBsaW5lLCBtb2RlKTsKLSsgIHZmcHJpbnRmIChzdGRlcnIsIG1lc3NhZ2UsIGFwKTsKLSsgIGZw cmludGYgKHN0ZGVyciwgIi5cbiIpOwotKwotKyAgaWYgKGV4aXRfc3RhdHVzID49IDApCi0rICAg IGV4aXQgKGV4aXRfc3RhdHVzKTsKLSt9Ci0rCi0rdm9pZAotK2x0X2ZhdGFsIChjb25zdCBjaGFy ICpmaWxlLCBpbnQgbGluZSwgY29uc3QgY2hhciAqbWVzc2FnZSwgLi4uKQotK3sKLSsgIHZhX2xp c3QgYXA7Ci0rICB2YV9zdGFydCAoYXAsIG1lc3NhZ2UpOwotKyAgbHRfZXJyb3JfY29yZSAoRVhJ VF9GQUlMVVJFLCBmaWxlLCBsaW5lLCAiRkFUQUwiLCBtZXNzYWdlLCBhcCk7Ci0rICB2YV9lbmQg KGFwKTsKLSt9Ci0rCi0rc3RhdGljIGNvbnN0IGNoYXIgKgotK25vbm51bGwgKGNvbnN0IGNoYXIg KnMpCi0rewotKyAgcmV0dXJuIHMgPyBzIDogIihudWxsKSI7Ci0rfQotKwotK3N0YXRpYyBjb25z dCBjaGFyICoKLStub25lbXB0eSAoY29uc3QgY2hhciAqcykKLSt7Ci0rICByZXR1cm4gKHMgJiYg ISpzKSA/ICIoZW1wdHkpIiA6IG5vbm51bGwgKHMpOwotK30KLSsKLSt2b2lkCi0rbHRfc2V0ZW52 IChjb25zdCBjaGFyICpuYW1lLCBjb25zdCBjaGFyICp2YWx1ZSkKLSt7Ci0rICBsdF9kZWJ1Z3By aW50ZiAoX19GSUxFX18sIF9fTElORV9fLAotKwkJICAiKGx0X3NldGVudikgc2V0dGluZyAnJXMn IHRvICclcydcbiIsCi0rICAgICAgICAgICAgICAgICAgbm9ubnVsbCAobmFtZSksIG5vbm51bGwg KHZhbHVlKSk7Ci0rICB7Ci0rI2lmZGVmIEhBVkVfU0VURU5WCi0rICAgIC8qIGFsd2F5cyBtYWtl IGEgY29weSwgZm9yIGNvbnNpc3RlbmN5IHdpdGggIUhBVkVfU0VURU5WICovCi0rICAgIGNoYXIg KnN0ciA9IHhzdHJkdXAgKHZhbHVlKTsKLSsgICAgc2V0ZW52IChuYW1lLCBzdHIsIDEpOwotKyNl bHNlCi0rICAgIGludCBsZW4gPSBzdHJsZW4gKG5hbWUpICsgMSArIHN0cmxlbiAodmFsdWUpICsg MTsKLSsgICAgY2hhciAqc3RyID0gWE1BTExPQyAoY2hhciwgbGVuKTsKLSsgICAgc3ByaW50ZiAo c3RyLCAiJXM9JXMiLCBuYW1lLCB2YWx1ZSk7Ci0rICAgIGlmIChwdXRlbnYgKHN0cikgIT0gRVhJ VF9TVUNDRVNTKQotKyAgICAgIHsKLSsgICAgICAgIFhGUkVFIChzdHIpOwotKyAgICAgIH0KLSsj ZW5kaWYKLSsgIH0KLSt9Ci0rCi0rY2hhciAqCi0rbHRfZXh0ZW5kX3N0ciAoY29uc3QgY2hhciAq b3JpZ192YWx1ZSwgY29uc3QgY2hhciAqYWRkLCBpbnQgdG9fZW5kKQotK3sKLSsgIGNoYXIgKm5l d192YWx1ZTsKLSsgIGlmIChvcmlnX3ZhbHVlICYmICpvcmlnX3ZhbHVlKQotKyAgICB7Ci0rICAg ICAgaW50IG9yaWdfdmFsdWVfbGVuID0gc3RybGVuIChvcmlnX3ZhbHVlKTsKLSsgICAgICBpbnQg YWRkX2xlbiA9IHN0cmxlbiAoYWRkKTsKLSsgICAgICBuZXdfdmFsdWUgPSBYTUFMTE9DIChjaGFy LCBhZGRfbGVuICsgb3JpZ192YWx1ZV9sZW4gKyAxKTsKLSsgICAgICBpZiAodG9fZW5kKQotKyAg ICAgICAgewotKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1ZSwgb3JpZ192YWx1ZSk7Ci0rICAg ICAgICAgIHN0cmNweSAobmV3X3ZhbHVlICsgb3JpZ192YWx1ZV9sZW4sIGFkZCk7Ci0rICAgICAg ICB9Ci0rICAgICAgZWxzZQotKyAgICAgICAgewotKyAgICAgICAgICBzdHJjcHkgKG5ld192YWx1 ZSwgYWRkKTsKLSsgICAgICAgICAgc3RyY3B5IChuZXdfdmFsdWUgKyBhZGRfbGVuLCBvcmlnX3Zh bHVlKTsKLSsgICAgICAgIH0KLSsgICAgfQotKyAgZWxzZQotKyAgICB7Ci0rICAgICAgbmV3X3Zh bHVlID0geHN0cmR1cCAoYWRkKTsKLSsgICAgfQotKyAgcmV0dXJuIG5ld192YWx1ZTsKLSt9Ci0r Ci0rdm9pZAotK2x0X3VwZGF0ZV9leGVfcGF0aCAoY29uc3QgY2hhciAqbmFtZSwgY29uc3QgY2hh ciAqdmFsdWUpCi0rewotKyAgbHRfZGVidWdwcmludGYgKF9fRklMRV9fLCBfX0xJTkVfXywKLSsJ CSAgIihsdF91cGRhdGVfZXhlX3BhdGgpIG1vZGlmeWluZyAnJXMnIGJ5IHByZXBlbmRpbmcgJyVz J1xuIiwKLSsgICAgICAgICAgICAgICAgICBub25udWxsIChuYW1lKSwgbm9ubnVsbCAodmFsdWUp KTsKLSsKLSsgIGlmIChuYW1lICYmICpuYW1lICYmIHZhbHVlICYmICp2YWx1ZSkKLSsgICAgewot KyAgICAgIGNoYXIgKm5ld192YWx1ZSA9IGx0X2V4dGVuZF9zdHIgKGdldGVudiAobmFtZSksIHZh bHVlLCAwKTsKLSsgICAgICAvKiBzb21lIHN5c3RlbXMgY2FuJ3QgY29wZSB3aXRoIGEgJzonLXRl cm1pbmF0ZWQgcGF0aCAjJyAqLwotKyAgICAgIGludCBsZW4gPSBzdHJsZW4gKG5ld192YWx1ZSk7 Ci0rICAgICAgd2hpbGUgKCgobGVuID0gc3RybGVuIChuZXdfdmFsdWUpKSA+IDApICYmIElTX1BB VEhfU0VQQVJBVE9SIChuZXdfdmFsdWVbbGVuLTFdKSkKLSsgICAgICAgIHsKLSsgICAgICAgICAg bmV3X3ZhbHVlW2xlbi0xXSA9ICdcMCc7Ci0rICAgICAgICB9Ci0rICAgICAgbHRfc2V0ZW52IChu YW1lLCBuZXdfdmFsdWUpOwotKyAgICAgIFhGUkVFIChuZXdfdmFsdWUpOwotKyAgICB9Ci0rfQot KwotK3ZvaWQKLStsdF91cGRhdGVfbGliX3BhdGggKGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNo YXIgKnZhbHVlKQotK3sKLSsgIGx0X2RlYnVncHJpbnRmIChfX0ZJTEVfXywgX19MSU5FX18sCi0r CQkgICIobHRfdXBkYXRlX2xpYl9wYXRoKSBtb2RpZnlpbmcgJyVzJyBieSBwcmVwZW5kaW5nICcl cydcbiIsCi0rICAgICAgICAgICAgICAgICAgbm9ubnVsbCAobmFtZSksIG5vbm51bGwgKHZhbHVl KSk7Ci0rCi0rICBpZiAobmFtZSAmJiAqbmFtZSAmJiB2YWx1ZSAmJiAqdmFsdWUpCi0rICAgIHsK LSsgICAgICBjaGFyICpuZXdfdmFsdWUgPSBsdF9leHRlbmRfc3RyIChnZXRlbnYgKG5hbWUpLCB2 YWx1ZSwgMCk7Ci0rICAgICAgbHRfc2V0ZW52IChuYW1lLCBuZXdfdmFsdWUpOwotKyAgICAgIFhG UkVFIChuZXdfdmFsdWUpOwotKyAgICB9Ci0rfQotKwotK0VPRgotKwkgICAgY2FzZSAkaG9zdF9v cyBpbgotKwkgICAgICBtaW5ndyopCi0rCQljYXQgPDwiRU9GIgotKwotKy8qIFByZXBhcmVzIGFu IGFyZ3VtZW50IHZlY3RvciBiZWZvcmUgY2FsbGluZyBzcGF3bigpLgotKyAgIE5vdGUgdGhhdCBz cGF3bigpIGRvZXMgbm90IGJ5IGl0c2VsZiBjYWxsIHRoZSBjb21tYW5kIGludGVycHJldGVyCi0r ICAgICAoZ2V0ZW52ICgiQ09NU1BFQyIpICE9IE5VTEwgPyBnZXRlbnYgKCJDT01TUEVDIikgOgot KyAgICAgICh7IE9TVkVSU0lPTklORk8gdjsgdi5kd09TVmVyc2lvbkluZm9TaXplID0gc2l6ZW9m KE9TVkVSU0lPTklORk8pOwotKyAgICAgICAgIEdldFZlcnNpb25FeCgmdik7Ci0rICAgICAgICAg di5kd1BsYXRmb3JtSWQgPT0gVkVSX1BMQVRGT1JNX1dJTjMyX05UOwotKyAgICAgIH0pID8gImNt ZC5leGUiIDogImNvbW1hbmQuY29tIikuCi0rICAgSW5zdGVhZCBpdCBzaW1wbHkgY29uY2F0ZW5h dGVzIHRoZSBhcmd1bWVudHMsIHNlcGFyYXRlZCBieSAnICcsIGFuZCBjYWxscwotKyAgIENyZWF0 ZVByb2Nlc3MoKS4gIFdlIG11c3QgcXVvdGUgdGhlIGFyZ3VtZW50cyBzaW5jZSBXaW4zMiBDcmVh dGVQcm9jZXNzKCkKLSsgICBpbnRlcnByZXRzIGNoYXJhY3RlcnMgbGlrZSAnICcsICdcdCcsICdc XCcsICciJyAoYnV0IG5vdCAnPCcgYW5kICc+JykgaW4gYQotKyAgIHNwZWNpYWwgd2F5OgotKyAg IC0gU3BhY2UgYW5kIHRhYiBhcmUgaW50ZXJwcmV0ZWQgYXMgZGVsaW1pdGVycy4gVGhleSBhcmUg bm90IHRyZWF0ZWQgYXMKLSsgICAgIGRlbGltaXRlcnMgaWYgdGhleSBhcmUgc3Vycm91bmRlZCBi eSBkb3VibGUgcXVvdGVzOiAiLi4uIi4KLSsgICAtIFVuZXNjYXBlZCBkb3VibGUgcXVvdGVzIGFy ZSByZW1vdmVkIGZyb20gdGhlIGlucHV0LiBUaGVpciBvbmx5IGVmZmVjdCBpcwotKyAgICAgdGhh dCB3aXRoaW4gZG91YmxlIHF1b3Rlcywgc3BhY2UgYW5kIHRhYiBhcmUgdHJlYXRlZCBsaWtlIG5v cm1hbAotKyAgICAgY2hhcmFjdGVycy4KLSsgICAtIEJhY2tzbGFzaGVzIG5vdCBmb2xsb3dlZCBi eSBkb3VibGUgcXVvdGVzIGFyZSBub3Qgc3BlY2lhbC4KLSsgICAtIEJ1dCAyKm4rMSBiYWNrc2xh c2hlcyBmb2xsb3dlZCBieSBhIGRvdWJsZSBxdW90ZSBiZWNvbWUKLSsgICAgIG4gYmFja3NsYXNo ZXMgZm9sbG93ZWQgYnkgYSBkb3VibGUgcXVvdGUgKG4gPj0gMCk6Ci0rICAgICAgIFwiIC0+ICIK LSsgICAgICAgXFxcIiAtPiBcIgotKyAgICAgICBcXFxcXCIgLT4gXFwiCi0rICovCi0rI2RlZmlu ZSBTSEVMTF9TUEVDSUFMX0NIQVJTICJcIlxcIFwwMDFcMDAyXDAwM1wwMDRcMDA1XDAwNlwwMDdc MDEwXDAxMVwwMTJcMDEzXDAxNFwwMTVcMDE2XDAxN1wwMjBcMDIxXDAyMlwwMjNcMDI0XDAyNVww MjZcMDI3XDAzMFwwMzFcMDMyXDAzM1wwMzRcMDM1XDAzNlwwMzciCi0rI2RlZmluZSBTSEVMTF9T UEFDRV9DSEFSUyAiIFwwMDFcMDAyXDAwM1wwMDRcMDA1XDAwNlwwMDdcMDEwXDAxMVwwMTJcMDEz XDAxNFwwMTVcMDE2XDAxN1wwMjBcMDIxXDAyMlwwMjNcMDI0XDAyNVwwMjZcMDI3XDAzMFwwMzFc MDMyXDAzM1wwMzRcMDM1XDAzNlwwMzciCi0rY2hhciAqKgotK3ByZXBhcmVfc3Bhd24gKGNoYXIg Kiphcmd2KQotK3sKLSsgIHNpemVfdCBhcmdjOwotKyAgY2hhciAqKm5ld19hcmd2OwotKyAgc2l6 ZV90IGk7Ci0rCi0rICAvKiBDb3VudCBudW1iZXIgb2YgYXJndW1lbnRzLiAgKi8KLSsgIGZvciAo YXJnYyA9IDA7IGFyZ3ZbYXJnY10gIT0gTlVMTDsgYXJnYysrKQotKyAgICA7Ci0rCi0rICAvKiBB bGxvY2F0ZSBuZXcgYXJndW1lbnQgdmVjdG9yLiAgKi8KLSsgIG5ld19hcmd2ID0gWE1BTExPQyAo Y2hhciAqLCBhcmdjICsgMSk7Ci0rCi0rICAvKiBQdXQgcXVvdGVkIGFyZ3VtZW50cyBpbnRvIHRo ZSBuZXcgYXJndW1lbnQgdmVjdG9yLiAgKi8KLSsgIGZvciAoaSA9IDA7IGkgPCBhcmdjOyBpKysp Ci0rICAgIHsKLSsgICAgICBjb25zdCBjaGFyICpzdHJpbmcgPSBhcmd2W2ldOwotKwotKyAgICAg IGlmIChzdHJpbmdbMF0gPT0gJ1wwJykKLSsJbmV3X2FyZ3ZbaV0gPSB4c3RyZHVwICgiXCJcIiIp OwotKyAgICAgIGVsc2UgaWYgKHN0cnBicmsgKHN0cmluZywgU0hFTExfU1BFQ0lBTF9DSEFSUykg IT0gTlVMTCkKLSsJewotKwkgIGludCBxdW90ZV9hcm91bmQgPSAoc3RycGJyayAoc3RyaW5nLCBT SEVMTF9TUEFDRV9DSEFSUykgIT0gTlVMTCk7Ci0rCSAgc2l6ZV90IGxlbmd0aDsKLSsJICB1bnNp Z25lZCBpbnQgYmFja3NsYXNoZXM7Ci0rCSAgY29uc3QgY2hhciAqczsKLSsJICBjaGFyICpxdW90 ZWRfc3RyaW5nOwotKwkgIGNoYXIgKnA7Ci0rCi0rCSAgbGVuZ3RoID0gMDsKLSsJICBiYWNrc2xh c2hlcyA9IDA7Ci0rCSAgaWYgKHF1b3RlX2Fyb3VuZCkKLSsJICAgIGxlbmd0aCsrOwotKwkgIGZv ciAocyA9IHN0cmluZzsgKnMgIT0gJ1wwJzsgcysrKQotKwkgICAgewotKwkgICAgICBjaGFyIGMg PSAqczsKLSsJICAgICAgaWYgKGMgPT0gJyInKQotKwkJbGVuZ3RoICs9IGJhY2tzbGFzaGVzICsg MTsKLSsJICAgICAgbGVuZ3RoKys7Ci0rCSAgICAgIGlmIChjID09ICdcXCcpCi0rCQliYWNrc2xh c2hlcysrOwotKwkgICAgICBlbHNlCi0rCQliYWNrc2xhc2hlcyA9IDA7Ci0rCSAgICB9Ci0rCSAg aWYgKHF1b3RlX2Fyb3VuZCkKLSsJICAgIGxlbmd0aCArPSBiYWNrc2xhc2hlcyArIDE7Ci0rCi0r CSAgcXVvdGVkX3N0cmluZyA9IFhNQUxMT0MgKGNoYXIsIGxlbmd0aCArIDEpOwotKwotKwkgIHAg PSBxdW90ZWRfc3RyaW5nOwotKwkgIGJhY2tzbGFzaGVzID0gMDsKLSsJICBpZiAocXVvdGVfYXJv dW5kKQotKwkgICAgKnArKyA9ICciJzsKLSsJICBmb3IgKHMgPSBzdHJpbmc7ICpzICE9ICdcMCc7 IHMrKykKLSsJICAgIHsKLSsJICAgICAgY2hhciBjID0gKnM7Ci0rCSAgICAgIGlmIChjID09ICci JykKLSsJCXsKLSsJCSAgdW5zaWduZWQgaW50IGo7Ci0rCQkgIGZvciAoaiA9IGJhY2tzbGFzaGVz ICsgMTsgaiA+IDA7IGotLSkKLSsJCSAgICAqcCsrID0gJ1xcJzsKLSsJCX0KLSsJICAgICAgKnAr KyA9IGM7Ci0rCSAgICAgIGlmIChjID09ICdcXCcpCi0rCQliYWNrc2xhc2hlcysrOwotKwkgICAg ICBlbHNlCi0rCQliYWNrc2xhc2hlcyA9IDA7Ci0rCSAgICB9Ci0rCSAgaWYgKHF1b3RlX2Fyb3Vu ZCkKLSsJICAgIHsKLSsJICAgICAgdW5zaWduZWQgaW50IGo7Ci0rCSAgICAgIGZvciAoaiA9IGJh Y2tzbGFzaGVzOyBqID4gMDsgai0tKQotKwkJKnArKyA9ICdcXCc7Ci0rCSAgICAgICpwKysgPSAn Iic7Ci0rCSAgICB9Ci0rCSAgKnAgPSAnXDAnOwotKwotKwkgIG5ld19hcmd2W2ldID0gcXVvdGVk X3N0cmluZzsKLSsJfQotKyAgICAgIGVsc2UKLSsJbmV3X2FyZ3ZbaV0gPSAoY2hhciAqKSBzdHJp bmc7Ci0rICAgIH0KLSsgIG5ld19hcmd2W2FyZ2NdID0gTlVMTDsKLSsKLSsgIHJldHVybiBuZXdf YXJndjsKLSt9Ci0rRU9GCi0rCQk7OwotKwkgICAgZXNhYwotKwotKyAgICAgICAgICAgIGNhdCA8 PCJFT0YiCi0rdm9pZCBsdF9kdW1wX3NjcmlwdCAoRklMRSogZikKLSt7Ci0rRU9GCi0rCSAgICBm dW5jX2VtaXRfd3JhcHBlciB5ZXMgfAotKyAgICAgICAgICAgICAgJFNFRCAtZSAncy9cKFtcXCJd XCkvXFxcMS9nJyBcCi0rCSAgICAgICAgICAgLWUgJ3MvXi8gIGZwdXRzICgiLycgLWUgJ3MvJC9c XG4iLCBmKTsvJwotKwotKyAgICAgICAgICAgIGNhdCA8PCJFT0YiCi0rfQotK0VPRgotK30KLSsj IGVuZDogZnVuY19lbWl0X2N3cmFwcGVyZXhlX3NyYwotKwotKyMgZnVuY193aW4zMl9pbXBvcnRf bGliX3AgQVJHCi0rIyBUcnVlIGlmIEFSRyBpcyBhbiBpbXBvcnQgbGliLCBhcyBpbmRpY2F0ZWQg YnkgJGZpbGVfbWFnaWNfY21kCi0rZnVuY193aW4zMl9pbXBvcnRfbGliX3AgKCkKLSt7Ci0rICAg ICRvcHRfZGVidWcKLSsgICAgY2FzZSBgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCJcJDFcIiAyPi9k ZXYvbnVsbCB8ICRTRUQgLWUgMTBxYCBpbgotKyAgICAqaW1wb3J0KikgOiA7OwotKyAgICAqKSBm YWxzZSA7OwotKyAgICBlc2FjCi0rfQotKwotKyMgZnVuY19tb2RlX2xpbmsgYXJnLi4uCi0rZnVu Y19tb2RlX2xpbmsgKCkKLSt7Ci0rICAgICRvcHRfZGVidWcKLSsgICAgY2FzZSAkaG9zdCBpbgot KyAgICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHczMiogfCAqLSotb3MyKiB8ICot Y2VnY2MqKQotKyAgICAgICMgSXQgaXMgaW1wb3NzaWJsZSB0byBsaW5rIGEgZGxsIHdpdGhvdXQg dGhpcyBzZXR0aW5nLCBhbmQKLSsgICAgICAjIHdlIHNob3VsZG4ndCBmb3JjZSB0aGUgbWFrZWZp bGUgbWFpbnRhaW5lciB0byBmaWd1cmUgb3V0Ci0rICAgICAgIyB3aGljaCBzeXN0ZW0gd2UgYXJl IGNvbXBpbGluZyBmb3IgaW4gb3JkZXIgdG8gcGFzcyBhbiBleHRyYQotKyAgICAgICMgZmxhZyBm b3IgZXZlcnkgbGlidG9vbCBpbnZvY2F0aW9uLgotKyAgICAgICMgYWxsb3dfdW5kZWZpbmVkPW5v Ci0rCi0rICAgICAgIyBGSVhNRTogVW5mb3J0dW5hdGVseSwgdGhlcmUgYXJlIHByb2JsZW1zIHdp dGggdGhlIGFib3ZlIHdoZW4gdHJ5aW5nCi0rICAgICAgIyB0byBtYWtlIGEgZGxsIHdoaWNoIGhh cyB1bmRlZmluZWQgc3ltYm9scywgaW4gd2hpY2ggY2FzZSBub3QKLSsgICAgICAjIGV2ZW4gYSBz dGF0aWMgbGlicmFyeSBpcyBidWlsdC4gIEZvciBub3csIHdlIG5lZWQgdG8gc3BlY2lmeQotKyAg ICAgICMgLW5vLXVuZGVmaW5lZCBvbiB0aGUgbGlidG9vbCBsaW5rIGxpbmUgd2hlbiB3ZSBjYW4g YmUgY2VydGFpbgotKyAgICAgICMgdGhhdCBhbGwgc3ltYm9scyBhcmUgc2F0aXNmaWVkLCBvdGhl cndpc2Ugd2UgZ2V0IGEgc3RhdGljIGxpYnJhcnkuCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkPXll cwotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkPXllcwotKyAgICAg IDs7Ci0rICAgIGVzYWMKLSsgICAgbGlidG9vbF9hcmdzPSRub25vcHQKLSsgICAgYmFzZV9jb21w aWxlPSIkbm9ub3B0ICRAIgotKyAgICBjb21waWxlX2NvbW1hbmQ9JG5vbm9wdAotKyAgICBmaW5h bGl6ZV9jb21tYW5kPSRub25vcHQKLSsKLSsgICAgY29tcGlsZV9ycGF0aD0KLSsgICAgZmluYWxp emVfcnBhdGg9Ci0rICAgIGNvbXBpbGVfc2hsaWJwYXRoPQotKyAgICBmaW5hbGl6ZV9zaGxpYnBh dGg9Ci0rICAgIGNvbnZlbmllbmNlPQotKyAgICBvbGRfY29udmVuaWVuY2U9Ci0rICAgIGRlcGxp YnM9Ci0rICAgIG9sZF9kZXBsaWJzPQotKyAgICBjb21waWxlcl9mbGFncz0KLSsgICAgbGlua2Vy X2ZsYWdzPQotKyAgICBkbGxzZWFyY2hwYXRoPQotKyAgICBsaWJfc2VhcmNoX3BhdGg9YHB3ZGAK LSsgICAgaW5zdF9wcmVmaXhfZGlyPQotKyAgICBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncz0K LSsKLSsgICAgYXZvaWRfdmVyc2lvbj1ubwotKyAgICBiaW5kaXI9Ci0rICAgIGRsZmlsZXM9Ci0r ICAgIGRscHJlZmlsZXM9Ci0rICAgIGRsc2VsZj1ubwotKyAgICBleHBvcnRfZHluYW1pYz1ubwot KyAgICBleHBvcnRfc3ltYm9scz0KLSsgICAgZXhwb3J0X3N5bWJvbHNfcmVnZXg9Ci0rICAgIGdl bmVyYXRlZD0KLSsgICAgbGlib2Jqcz0KLSsgICAgbHRsaWJzPQotKyAgICBtb2R1bGU9bm8KLSsg ICAgbm9faW5zdGFsbD1ubwotKyAgICBvYmpzPQotKyAgICBub25fcGljX29iamVjdHM9Ci0rICAg IHByZWNpb3VzX2ZpbGVzX3JlZ2V4PQotKyAgICBwcmVmZXJfc3RhdGljX2xpYnM9bm8KLSsgICAg cHJlbG9hZD1ubwotKyAgICBwcmV2PQotKyAgICBwcmV2YXJnPQotKyAgICByZWxlYXNlPQotKyAg ICBycGF0aD0KLSsgICAgeHJwYXRoPQotKyAgICBwZXJtX3JwYXRoPQotKyAgICB0ZW1wX3JwYXRo PQotKyAgICB0aHJlYWRfc2FmZT1ubwotKyAgICB2aW5mbz0KLSsgICAgdmluZm9fbnVtYmVyPW5v Ci0rICAgIHdlYWtfbGlicz0KLSsgICAgc2luZ2xlX21vZHVsZT0iJHt3bH0tc2luZ2xlX21vZHVs ZSIKLSsgICAgZnVuY19pbmZlcl90YWcgJGJhc2VfY29tcGlsZQotKwotKyAgICAjIFdlIG5lZWQg dG8ga25vdyAtc3RhdGljLCB0byBnZXQgdGhlIHJpZ2h0IG91dHB1dCBmaWxlbmFtZXMuCi0rICAg IGZvciBhcmcKLSsgICAgZG8KLSsgICAgICBjYXNlICRhcmcgaW4KLSsgICAgICAtc2hhcmVkKQot Kwl0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYgXAotKwkgIGZ1bmNfZmF0YWxf Y29uZmlndXJhdGlvbiAiY2FuIG5vdCBidWlsZCBhIHNoYXJlZCBsaWJyYXJ5IgotKwlidWlsZF9v bGRfbGlicz1ubwotKwlicmVhawotKwk7OwotKyAgICAgIC1hbGwtc3RhdGljIHwgLXN0YXRpYyB8 IC1zdGF0aWMtbGlidG9vbC1saWJzKQotKwljYXNlICRhcmcgaW4KLSsJLWFsbC1zdGF0aWMpCi0r CSAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSB5ZXMgJiYgdGVzdCAteiAiJGxpbmtf c3RhdGljX2ZsYWciOyB0aGVuCi0rCSAgICBmdW5jX3dhcm5pbmcgImNvbXBsZXRlIHN0YXRpYyBs aW5raW5nIGlzIGltcG9zc2libGUgaW4gdGhpcyBjb25maWd1cmF0aW9uIgotKwkgIGZpCi0rCSAg aWYgdGVzdCAtbiAiJGxpbmtfc3RhdGljX2ZsYWciOyB0aGVuCi0rCSAgICBkbG9wZW5fc2VsZj0k ZGxvcGVuX3NlbGZfc3RhdGljCi0rCSAgZmkKLSsJICBwcmVmZXJfc3RhdGljX2xpYnM9eWVzCi0r CSAgOzsKLSsJLXN0YXRpYykKLSsJICBpZiB0ZXN0IC16ICIkcGljX2ZsYWciICYmIHRlc3QgLW4g IiRsaW5rX3N0YXRpY19mbGFnIjsgdGhlbgotKwkgICAgZGxvcGVuX3NlbGY9JGRsb3Blbl9zZWxm X3N0YXRpYwotKwkgIGZpCi0rCSAgcHJlZmVyX3N0YXRpY19saWJzPWJ1aWx0Ci0rCSAgOzsKLSsJ LXN0YXRpYy1saWJ0b29sLWxpYnMpCi0rCSAgaWYgdGVzdCAteiAiJHBpY19mbGFnIiAmJiB0ZXN0 IC1uICIkbGlua19zdGF0aWNfZmxhZyI7IHRoZW4KLSsJICAgIGRsb3Blbl9zZWxmPSRkbG9wZW5f c2VsZl9zdGF0aWMKLSsJICBmaQotKwkgIHByZWZlcl9zdGF0aWNfbGlicz15ZXMKLSsJICA7Owot Kwllc2FjCi0rCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwlidWlsZF9vbGRfbGlicz15ZXMKLSsJ YnJlYWsKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGRvbmUKLSsKLSsgICAgIyBTZWUgaWYgb3Vy IHNoYXJlZCBhcmNoaXZlcyBkZXBlbmQgb24gc3RhdGljIGFyY2hpdmVzLgotKyAgICB0ZXN0IC1u ICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcyIgJiYgYnVpbGRfb2xkX2xpYnM9eWVzCi0rCi0r ICAgICMgR28gdGhyb3VnaCB0aGUgYXJndW1lbnRzLCB0cmFuc2Zvcm1pbmcgdGhlbSBvbiB0aGUg d2F5LgotKyAgICB3aGlsZSB0ZXN0ICIkIyIgLWd0IDA7IGRvCi0rICAgICAgYXJnPSIkMSIKLSsg ICAgICBzaGlmdAotKyAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0rICAgICAgcWFy Zz0kZnVuY19xdW90ZV9mb3JfZXZhbF91bnF1b3RlZF9yZXN1bHQKLSsgICAgICBmdW5jX2FwcGVu ZCBsaWJ0b29sX2FyZ3MgIiAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCi0rICAgICAg IyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRzIGFuIGFyZ3VtZW50LCBhc3NpZ24gaXQuCi0r ICAgICAgaWYgdGVzdCAtbiAiJHByZXYiOyB0aGVuCi0rCWNhc2UgJHByZXYgaW4KLSsJb3V0cHV0 KQotKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiIEBPVVRQVVRAIgotKwkgIGZ1bmNf YXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiBAT1VUUFVUQCIKLSsJICA7OwotKwllc2FjCi0rCi0r CWNhc2UgJHByZXYgaW4KLSsJYmluZGlyKQotKwkgIGJpbmRpcj0iJGFyZyIKLSsJICBwcmV2PQot KwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJZGxmaWxlc3xkbHByZWZpbGVzKQotKwkgIGlmIHRlc3Qg IiRwcmVsb2FkIiA9IG5vOyB0aGVuCi0rCSAgICAjIEFkZCB0aGUgc3ltYm9sIG9iamVjdCBpbnRv IHRoZSBsaW5raW5nIGNvbW1hbmRzLgotKwkgICAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5k ICIgQFNZTUZJTEVAIgotKwkgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiIEBTWU1G SUxFQCIKLSsJICAgIHByZWxvYWQ9eWVzCi0rCSAgZmkKLSsJICBjYXNlICRhcmcgaW4KLSsJICAq LmxhIHwgKi5sbykgOzsgICMgV2UgaGFuZGxlIHRoZXNlIGNhc2VzIGJlbG93LgotKwkgIGZvcmNl KQotKwkgICAgaWYgdGVzdCAiJGRsc2VsZiIgPSBubzsgdGhlbgotKwkgICAgICBkbHNlbGY9bmVl ZGxlc3MKLSsJICAgICAgZXhwb3J0X2R5bmFtaWM9eWVzCi0rCSAgICBmaQotKwkgICAgcHJldj0K LSsJICAgIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgIHNlbGYpCi0rCSAgICBpZiB0ZXN0ICIkcHJl diIgPSBkbHByZWZpbGVzOyB0aGVuCi0rCSAgICAgIGRsc2VsZj15ZXMKLSsJICAgIGVsaWYgdGVz dCAiJHByZXYiID0gZGxmaWxlcyAmJiB0ZXN0ICIkZGxvcGVuX3NlbGYiICE9IHllczsgdGhlbgot KwkgICAgICBkbHNlbGY9eWVzCi0rCSAgICBlbHNlCi0rCSAgICAgIGRsc2VsZj1uZWVkbGVzcwot KwkgICAgICBleHBvcnRfZHluYW1pYz15ZXMKLSsJICAgIGZpCi0rCSAgICBwcmV2PQotKwkgICAg Y29udGludWUKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGlmIHRlc3QgIiRwcmV2IiA9IGRsZmls ZXM7IHRoZW4KLSsJICAgICAgZnVuY19hcHBlbmQgZGxmaWxlcyAiICRhcmciCi0rCSAgICBlbHNl Ci0rCSAgICAgIGZ1bmNfYXBwZW5kIGRscHJlZmlsZXMgIiAkYXJnIgotKwkgICAgZmkKLSsJICAg IHByZXY9Ci0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXhw c3ltcykKLSsJICBleHBvcnRfc3ltYm9scz0iJGFyZyIKLSsJICB0ZXN0IC1mICIkYXJnIiBcCi0r CSAgICB8fCBmdW5jX2ZhdGFsX2Vycm9yICJzeW1ib2wgZmlsZSBcYCRhcmcnIGRvZXMgbm90IGV4 aXN0IgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwlleHBzeW1zX3JlZ2V4KQot KwkgIGV4cG9ydF9zeW1ib2xzX3JlZ2V4PSIkYXJnIgotKwkgIHByZXY9Ci0rCSAgY29udGludWUK LSsJICA7OwotKwlmcmFtZXdvcmspCi0rCSAgY2FzZSAkaG9zdCBpbgotKwkgICAgKi0qLWRhcndp biopCi0rCSAgICAgIGNhc2UgIiRkZXBsaWJzICIgaW4KLSsJCSoiICRxYXJnLmx0ZnJhbWV3b3Jr ICIqKSA7OwotKwkJKikgZnVuY19hcHBlbmQgZGVwbGlicyAiICRxYXJnLmx0ZnJhbWV3b3JrIiAj IHRoaXMgaXMgZml4ZWQgbGF0ZXIKLSsJCSAgIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsK LSsJICBlc2FjCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0rCWluc3RfcHJlZml4 KQotKwkgIGluc3RfcHJlZml4X2Rpcj0iJGFyZyIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0r CSAgOzsKLSsJb2JqZWN0bGlzdCkKLSsJICBpZiB0ZXN0IC1mICIkYXJnIjsgdGhlbgotKwkgICAg c2F2ZV9hcmc9JGFyZwotKwkgICAgbW9yZWFyZ3M9Ci0rCSAgICBmb3IgZmlsIGluIGBjYXQgIiRz YXZlX2FyZyJgCi0rCSAgICBkbwotKyMJICAgICAgZnVuY19hcHBlbmQgbW9yZWFyZ3MgIiAkZmls IgotKwkgICAgICBhcmc9JGZpbAotKwkgICAgICAjIEEgbGlidG9vbC1jb250cm9sbGVkIG9iamVj dC4KLSsKLSsJICAgICAgIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRv b2wgb2JqZWN0LgotKwkgICAgICBpZiBmdW5jX2xhbGliX3Vuc2FmZV9wICIkYXJnIjsgdGhlbgot KwkJcGljX29iamVjdD0KLSsJCW5vbl9waWNfb2JqZWN0PQotKwotKwkJIyBSZWFkIHRoZSAubG8g ZmlsZQotKwkJZnVuY19zb3VyY2UgIiRhcmciCi0rCi0rCQlpZiB0ZXN0IC16ICIkcGljX29iamVj dCIgfHwKLSsJCSAgIHRlc3QgLXogIiRub25fcGljX29iamVjdCIgfHwKLSsJCSAgIHRlc3QgIiRw aWNfb2JqZWN0IiA9IG5vbmUgJiYKLSsJCSAgIHRlc3QgIiRub25fcGljX29iamVjdCIgPSBub25l OyB0aGVuCi0rCQkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2Ygb2JqZWN0 IGZvciBcYCRhcmcnIgotKwkJZmkKLSsKLSsJCSMgRXh0cmFjdCBzdWJkaXJlY3RvcnkgZnJvbSB0 aGUgYXJndW1lbnQuCi0rCQlmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgotKwkJeGRpcj0iJGZ1 bmNfZGlybmFtZV9yZXN1bHQiCi0rCi0rCQlpZiB0ZXN0ICIkcGljX29iamVjdCIgIT0gbm9uZTsg dGhlbgotKwkJICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5k IGluLgotKwkJICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0IgotKwotKwkJICBpZiB0ZXN0 ICIkcHJldiIgPSBkbGZpbGVzOyB0aGVuCi0rCQkgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xf bGlicyIgPSB5ZXMgJiYgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiA9IHllczsgdGhlbgotKwkJICAg ICAgZnVuY19hcHBlbmQgZGxmaWxlcyAiICRwaWNfb2JqZWN0IgotKwkJICAgICAgcHJldj0KLSsJ CSAgICAgIGNvbnRpbnVlCi0rCQkgICAgZWxzZQotKwkJICAgICAgIyBJZiBsaWJ0b29sIG9iamVj dHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdlIG5lZWQgdG8gcHJlbG9hZC4KLSsJCSAgICAgIHBy ZXY9ZGxwcmVmaWxlcwotKwkJICAgIGZpCi0rCQkgIGZpCi0rCi0rCQkgICMgQ0hFQ0sgTUU6ICBJ IHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1hCi0rCQkgIGlmIHRlc3QgIiRwcmV2IiA9IGRs cHJlZmlsZXM7IHRoZW4KLSsJCSAgICAjIFByZWxvYWQgdGhlIG9sZC1zdHlsZSBvYmplY3QuCi0r CQkgICAgZnVuY19hcHBlbmQgZGxwcmVmaWxlcyAiICRwaWNfb2JqZWN0IgotKwkJICAgIHByZXY9 Ci0rCQkgIGZpCi0rCi0rCQkgICMgQSBQSUMgb2JqZWN0LgotKwkJICBmdW5jX2FwcGVuZCBsaWJv YmpzICIgJHBpY19vYmplY3QiCi0rCQkgIGFyZz0iJHBpY19vYmplY3QiCi0rCQlmaQotKwotKwkJ IyBOb24tUElDIG9iamVjdC4KLSsJCWlmIHRlc3QgIiRub25fcGljX29iamVjdCIgIT0gbm9uZTsg dGhlbgotKwkJICAjIFByZXBlbmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5k IGluLgotKwkJICBub25fcGljX29iamVjdD0iJHhkaXIkbm9uX3BpY19vYmplY3QiCi0rCi0rCQkg ICMgQSBzdGFuZGFyZCBub24tUElDIG9iamVjdAotKwkJICBmdW5jX2FwcGVuZCBub25fcGljX29i amVjdHMgIiAkbm9uX3BpY19vYmplY3QiCi0rCQkgIGlmIHRlc3QgLXogIiRwaWNfb2JqZWN0IiB8 fCB0ZXN0ICIkcGljX29iamVjdCIgPSBub25lIDsgdGhlbgotKwkJICAgIGFyZz0iJG5vbl9waWNf b2JqZWN0IgotKwkJICBmaQotKwkJZWxzZQotKwkJICAjIElmIHRoZSBQSUMgb2JqZWN0IGV4aXN0 cywgdXNlIGl0IGluc3RlYWQuCi0rCQkgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0byAkcGljX29i amVjdCBhYm92ZS4KLSsJCSAgbm9uX3BpY19vYmplY3Q9IiRwaWNfb2JqZWN0IgotKwkJICBmdW5j X2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3BpY19vYmplY3QiCi0rCQlmaQotKwkgICAg ICBlbHNlCi0rCQkjIE9ubHkgYW4gZXJyb3IgaWYgbm90IGRvaW5nIGEgZHJ5LXJ1bi4KLSsJCWlm ICRvcHRfZHJ5X3J1bjsgdGhlbgotKwkJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhl IGFyZ3VtZW50LgotKwkJICBmdW5jX2Rpcm5hbWUgIiRhcmciICIvIiAiIgotKwkJICB4ZGlyPSIk ZnVuY19kaXJuYW1lX3Jlc3VsdCIKLSsKLSsJCSAgZnVuY19sbzJvICIkYXJnIgotKwkJICBwaWNf b2JqZWN0PSR4ZGlyJG9iamRpci8kZnVuY19sbzJvX3Jlc3VsdAotKwkJICBub25fcGljX29iamVj dD0keGRpciRmdW5jX2xvMm9fcmVzdWx0Ci0rCQkgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGlj X29iamVjdCIKLSsJCSAgZnVuY19hcHBlbmQgbm9uX3BpY19vYmplY3RzICIgJG5vbl9waWNfb2Jq ZWN0IgotKwkgICAgICAgIGVsc2UKLSsJCSAgZnVuY19mYXRhbF9lcnJvciAiXGAkYXJnJyBpcyBu b3QgYSB2YWxpZCBsaWJ0b29sIG9iamVjdCIKLSsJCWZpCi0rCSAgICAgIGZpCi0rCSAgICBkb25l Ci0rCSAgZWxzZQotKwkgICAgZnVuY19mYXRhbF9lcnJvciAibGluayBpbnB1dCBmaWxlIFxgJGFy ZycgZG9lcyBub3QgZXhpc3QiCi0rCSAgZmkKLSsJICBhcmc9JHNhdmVfYXJnCi0rCSAgcHJldj0K LSsJICBjb250aW51ZQotKwkgIDs7Ci0rCXByZWNpb3VzX3JlZ2V4KQotKwkgIHByZWNpb3VzX2Zp bGVzX3JlZ2V4PSIkYXJnIgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwlyZWxl YXNlKQotKwkgIHJlbGVhc2U9Ii0kYXJnIgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7 OwotKwlycGF0aCB8IHhycGF0aCkKLSsJICAjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJ ICBjYXNlICRhcmcgaW4KLSsJICBbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7Ci0rCSAgKikK LSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgIm9ubHkgYWJzb2x1dGUgcnVuLXBhdGhzIGFyZSBhbGxv d2VkIgotKwkgICAgOzsKLSsJICBlc2FjCi0rCSAgaWYgdGVzdCAiJHByZXYiID0gcnBhdGg7IHRo ZW4KLSsJICAgIGNhc2UgIiRycGF0aCAiIGluCi0rCSAgICAqIiAkYXJnICIqKSA7OwotKwkgICAg KikgZnVuY19hcHBlbmQgcnBhdGggIiAkYXJnIiA7OwotKwkgICAgZXNhYwotKwkgIGVsc2UKLSsJ ICAgIGNhc2UgIiR4cnBhdGggIiBpbgotKwkgICAgKiIgJGFyZyAiKikgOzsKLSsJICAgICopIGZ1 bmNfYXBwZW5kIHhycGF0aCAiICRhcmciIDs7Ci0rCSAgICBlc2FjCi0rCSAgZmkKLSsJICBwcmV2 PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJc2hyZXh0KQotKwkgIHNocmV4dF9jbWRzPSIkYXJn IgotKwkgIHByZXY9Ci0rCSAgY29udGludWUKLSsJICA7OwotKwl3ZWFrKQotKwkgIGZ1bmNfYXBw ZW5kIHdlYWtfbGlicyAiICRhcmciCi0rCSAgcHJldj0KLSsJICBjb250aW51ZQotKwkgIDs7Ci0r CXhjY2xpbmtlcikKLSsJICBmdW5jX2FwcGVuZCBsaW5rZXJfZmxhZ3MgIiAkcWFyZyIKLSsJICBm dW5jX2FwcGVuZCBjb21waWxlcl9mbGFncyAiICRxYXJnIgotKwkgIHByZXY9Ci0rCSAgZnVuY19h cHBlbmQgY29tcGlsZV9jb21tYW5kICIgJHFhcmciCi0rCSAgZnVuY19hcHBlbmQgZmluYWxpemVf Y29tbWFuZCAiICRxYXJnIgotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJeGNvbXBpbGVyKQotKwkg IGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJHFhcmciCi0rCSAgcHJldj0KLSsJICBmdW5j X2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkcWFyZyIKLSsJICBmdW5jX2FwcGVuZCBmaW5hbGl6 ZV9jb21tYW5kICIgJHFhcmciCi0rCSAgY29udGludWUKLSsJICA7OwotKwl4bGlua2VyKQotKwkg IGZ1bmNfYXBwZW5kIGxpbmtlcl9mbGFncyAiICRxYXJnIgotKwkgIGZ1bmNfYXBwZW5kIGNvbXBp bGVyX2ZsYWdzICIgJHdsJHFhcmciCi0rCSAgcHJldj0KLSsJICBmdW5jX2FwcGVuZCBjb21waWxl X2NvbW1hbmQgIiAkd2wkcWFyZyIKLSsJICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIg JHdsJHFhcmciCi0rCSAgY29udGludWUKLSsJICA7OwotKwkqKQotKwkgIGV2YWwgIiRwcmV2PVwi XCRhcmdcIiIKLSsJICBwcmV2PQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJZXNhYwotKyAgICAg IGZpICMgdGVzdCAtbiAiJHByZXYiCi0rCi0rICAgICAgcHJldmFyZz0iJGFyZyIKLSsKLSsgICAg ICBjYXNlICRhcmcgaW4KLSsgICAgICAtYWxsLXN0YXRpYykKLSsJaWYgdGVzdCAtbiAiJGxpbmtf c3RhdGljX2ZsYWciOyB0aGVuCi0rCSAgIyBTZWUgY29tbWVudCBmb3IgLXN0YXRpYyBmbGFnIGJl bG93LCBmb3IgbW9yZSBkZXRhaWxzLgotKwkgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAi ICRsaW5rX3N0YXRpY19mbGFnIgotKwkgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAk bGlua19zdGF0aWNfZmxhZyIKLSsJZmkKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtYWxs b3ctdW5kZWZpbmVkKQotKwkjIEZJWE1FOiByZW1vdmUgdGhpcyBmbGFnIHNvbWV0aW1lIGluIHRo ZSBmdXR1cmUuCi0rCWZ1bmNfZmF0YWxfZXJyb3IgIlxgLWFsbG93LXVuZGVmaW5lZCcgbXVzdCBu b3QgYmUgdXNlZCBiZWNhdXNlIGl0IGlzIHRoZSBkZWZhdWx0IgotKwk7OwotKwotKyAgICAgIC1h dm9pZC12ZXJzaW9uKQotKwlhdm9pZF92ZXJzaW9uPXllcwotKwljb250aW51ZQotKwk7OwotKwot KyAgICAgIC1iaW5kaXIpCi0rCXByZXY9YmluZGlyCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAg ICAgLWRsb3BlbikKLSsJcHJldj1kbGZpbGVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAg LWRscHJlb3BlbikKLSsJcHJldj1kbHByZWZpbGVzCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAg ICAgLWV4cG9ydC1keW5hbWljKQotKwlleHBvcnRfZHluYW1pYz15ZXMKLSsJY29udGludWUKLSsJ OzsKLSsKLSsgICAgICAtZXhwb3J0LXN5bWJvbHMgfCAtZXhwb3J0LXN5bWJvbHMtcmVnZXgpCi0r CWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgfHwgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xz X3JlZ2V4IjsgdGhlbgotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIm1vcmUgdGhhbiBvbmUgLWV4cG9y dGVkLXN5bWJvbHMgYXJndW1lbnQgaXMgbm90IGFsbG93ZWQiCi0rCWZpCi0rCWlmIHRlc3QgIlgk YXJnIiA9ICJYLWV4cG9ydC1zeW1ib2xzIjsgdGhlbgotKwkgIHByZXY9ZXhwc3ltcwotKwllbHNl Ci0rCSAgcHJldj1leHBzeW1zX3JlZ2V4Ci0rCWZpCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAg ICAgLWZyYW1ld29yaykKLSsJcHJldj1mcmFtZXdvcmsKLSsJY29udGludWUKLSsJOzsKLSsKLSsg ICAgICAtaW5zdC1wcmVmaXgtZGlyKQotKwlwcmV2PWluc3RfcHJlZml4Ci0rCWNvbnRpbnVlCi0r CTs7Ci0rCi0rICAgICAgIyBUaGUgbmF0aXZlIElSSVggbGlua2VyIHVuZGVyc3RhbmRzIC1MQU5H OiosIC1MSVNUOiogYW5kIC1MTk86KgotKyAgICAgICMgc28sIGlmIHdlIHNlZSB0aGVzZSBmbGFn cyBiZSBjYXJlZnVsIG5vdCB0byB0cmVhdCB0aGVtIGxpa2UgLUwKLSsgICAgICAtTFtBLVpdW0Et Wl0qOiopCi0rCWNhc2UgJHdpdGhfZ2NjLyRob3N0IGluCi0rCW5vLyotKi1pcml4KiB8IC8qLSot aXJpeCopCi0rCSAgZnVuY19hcHBlbmQgY29tcGlsZV9jb21tYW5kICIgJGFyZyIKLSsJICBmdW5j X2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKLSsJICA7OwotKwllc2FjCi0rCWNvbnRp bnVlCi0rCTs7Ci0rCi0rICAgICAgLUwqKQotKwlmdW5jX3N0cmlwbmFtZSAiLUwiICcnICIkYXJn IgotKwlpZiB0ZXN0IC16ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IjsgdGhlbgotKwkgIGlmIHRl c3QgIiQjIiAtZ3QgMDsgdGhlbgotKwkgICAgZnVuY19mYXRhbF9lcnJvciAicmVxdWlyZSBubyBz cGFjZSBiZXR3ZWVuIFxgLUwnIGFuZCBcYCQxJyIKLSsJICBlbHNlCi0rCSAgICBmdW5jX2ZhdGFs X2Vycm9yICJuZWVkIHBhdGggZm9yIFxgLUwnIG9wdGlvbiIKLSsJICBmaQotKwlmaQotKwlmdW5j X3Jlc29sdmVfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKLSsJZGlyPSRmdW5jX3Jl c29sdmVfc3lzcm9vdF9yZXN1bHQKLSsJIyBXZSBuZWVkIGFuIGFic29sdXRlIHBhdGguCi0rCWNh c2UgJGRpciBpbgotKwlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIDs7Ci0rCSopCi0rCSAgYWJz ZGlyPWBjZCAiJGRpciIgJiYgcHdkYAotKwkgIHRlc3QgLXogIiRhYnNkaXIiICYmIFwKLSsJICAg IGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBkZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5h bWUgb2YgXGAkZGlyJyIKLSsJICBkaXI9IiRhYnNkaXIiCi0rCSAgOzsKLSsJZXNhYwotKwljYXNl ICIkZGVwbGlicyAiIGluCi0rCSoiIC1MJGRpciAiKiB8ICoiICRhcmcgIiopCi0rCSAgIyBXaWxs IG9ubHkgaGFwcGVuIGZvciBhYnNvbHV0ZSBvciBzeXNyb290IGFyZ3VtZW50cwotKwkgIDs7Ci0r CSopCi0rCSAgIyBQcmVzZXJ2ZSBzeXNyb290LCBidXQgbmV2ZXIgaW5jbHVkZSByZWxhdGl2ZSBk aXJlY3RvcmllcwotKwkgIGNhc2UgJGRpciBpbgotKwkgICAgW1xcL10qIHwgW0EtWmEtel06W1xc L10qIHwgPSopIGZ1bmNfYXBwZW5kIGRlcGxpYnMgIiAkYXJnIiA7OwotKwkgICAgKikgZnVuY19h cHBlbmQgZGVwbGlicyAiIC1MJGRpciIgOzsKLSsJICBlc2FjCi0rCSAgZnVuY19hcHBlbmQgbGli X3NlYXJjaF9wYXRoICIgJGRpciIKLSsJICA7OwotKwllc2FjCi0rCWNhc2UgJGhvc3QgaW4KLSsJ Ki0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2Nj KikKLSsJICB0ZXN0YmluZGlyPWAkRUNITyAiJGRpciIgfCAkU0VEICdzKi9saWIkKi9iaW4qJ2AK LSsJICBjYXNlIDokZGxsc2VhcmNocGF0aDogaW4KLSsJICAqIjokZGlyOiIqKSA7OwotKwkgIDo6 KSBkbGxzZWFyY2hwYXRoPSRkaXI7OwotKwkgICopIGZ1bmNfYXBwZW5kIGRsbHNlYXJjaHBhdGgg IjokZGlyIjs7Ci0rCSAgZXNhYwotKwkgIGNhc2UgOiRkbGxzZWFyY2hwYXRoOiBpbgotKwkgICoi OiR0ZXN0YmluZGlyOiIqKSA7OwotKwkgIDo6KSBkbGxzZWFyY2hwYXRoPSR0ZXN0YmluZGlyOzsK LSsJICAqKSBmdW5jX2FwcGVuZCBkbGxzZWFyY2hwYXRoICI6JHRlc3RiaW5kaXIiOzsKLSsJICBl c2FjCi0rCSAgOzsKLSsJZXNhYwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1sKikKLSsJ aWYgdGVzdCAiWCRhcmciID0gIlgtbGMiIHx8IHRlc3QgIlgkYXJnIiA9ICJYLWxtIjsgdGhlbgot KwkgIGNhc2UgJGhvc3QgaW4KLSsJICAqLSotY3lnd2luKiB8ICotKi1taW5ndyogfCAqLSotcHcz MiogfCAqLSotYmVvcyogfCAqLWNlZ2NjKiB8ICotKi1oYWlrdSopCi0rCSAgICAjIFRoZXNlIHN5 c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIEMgb3IgbWF0aCBsaWJyYXJ5IChhcyBzdWNoKQot KwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgKi0qLW9zMiopCi0rCSAgICAjIFRoZXNlIHN5 c3RlbXMgZG9uJ3QgYWN0dWFsbHkgaGF2ZSBhIEMgbGlicmFyeSAoYXMgc3VjaCkKLSsJICAgIHRl c3QgIlgkYXJnIiA9ICJYLWxjIiAmJiBjb250aW51ZQotKwkgICAgOzsKLSsJICAqLSotb3BlbmJz ZCogfCAqLSotZnJlZWJzZCogfCAqLSotZHJhZ29uZmx5KikKLSsJICAgICMgRG8gbm90IGluY2x1 ZGUgbGliYyBkdWUgdG8gdXMgaGF2aW5nIGxpYmMvbGliY19yLgotKwkgICAgdGVzdCAiWCRhcmci ID0gIlgtbGMiICYmIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgICotKi1yaGFwc29keSogfCAqLSot ZGFyd2luMS5bMDEyXSkKLSsJICAgICMgUmhhcHNvZHkgQyBhbmQgbWF0aCBsaWJyYXJpZXMgYXJl IGluIHRoZSBTeXN0ZW0gZnJhbWV3b3JrCi0rCSAgICBmdW5jX2FwcGVuZCBkZXBsaWJzICIgU3lz dGVtLmx0ZnJhbWV3b3JrIgotKwkgICAgY29udGludWUKLSsJICAgIDs7Ci0rCSAgKi0qLXNjbzMu MnY1KiB8ICotKi1zY281djYqKQotKwkgICAgIyBDYXVzZXMgcHJvYmxlbXMgd2l0aCBfX2N0eXBl Ci0rCSAgICB0ZXN0ICJYJGFyZyIgPSAiWC1sYyIgJiYgY29udGludWUKLSsJICAgIDs7Ci0rCSAg Ki0qLXN5c3Y0LjJ1dzIqIHwgKi0qLXN5c3Y1KiB8ICotKi11bml4d2FyZSogfCAqLSotT3BlblVO SVgqKQotKwkgICAgIyBDb21waWxlciBpbnNlcnRzIGxpYmMgaW4gdGhlIGNvcnJlY3QgcGxhY2Ug Zm9yIHRocmVhZHMgdG8gd29yawotKwkgICAgdGVzdCAiWCRhcmciID0gIlgtbGMiICYmIGNvbnRp bnVlCi0rCSAgICA7OwotKwkgIGVzYWMKLSsJZWxpZiB0ZXN0ICJYJGFyZyIgPSAiWC1sY19yIjsg dGhlbgotKwkgY2FzZSAkaG9zdCBpbgotKwkgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwg Ki0qLWRyYWdvbmZseSopCi0rCSAgICMgRG8gbm90IGluY2x1ZGUgbGliY19yIGRpcmVjdGx5LCB1 c2UgLXB0aHJlYWQgZmxhZy4KLSsJICAgY29udGludWUKLSsJICAgOzsKLSsJIGVzYWMKLSsJZmkK LSsJZnVuY19hcHBlbmQgZGVwbGlicyAiICRhcmciCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAg ICAgLW1vZHVsZSkKLSsJbW9kdWxlPXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgICMg VHJ1NjQgVU5JWCB1c2VzIC1tb2RlbCBbYXJnXSB0byBkZXRlcm1pbmUgdGhlIGxheW91dCBvZiBD KysKLSsgICAgICAjIGNsYXNzZXMsIG5hbWUgbWFuZ2xpbmcsIGFuZCBleGNlcHRpb24gaGFuZGxp bmcuCi0rICAgICAgIyBEYXJ3aW4gdXNlcyB0aGUgLWFyY2ggZmxhZyB0byBkZXRlcm1pbmUgb3V0 cHV0IGFyY2hpdGVjdHVyZS4KLSsgICAgICAtbW9kZWx8LWFyY2h8LWlzeXNyb290fC0tc3lzcm9v dCkKLSsJZnVuY19hcHBlbmQgY29tcGlsZXJfZmxhZ3MgIiAkYXJnIgotKwlmdW5jX2FwcGVuZCBj b21waWxlX2NvbW1hbmQgIiAkYXJnIgotKwlmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIg JGFyZyIKLSsJcHJldj14Y29tcGlsZXIKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtbXR8 LW10aHJlYWRzfC1rdGhyZWFkfC1LdGhyZWFkfC1wdGhyZWFkfC1wdGhyZWFkc3wtLXRocmVhZC1z YWZlfC10aHJlYWRzKQotKwlmdW5jX2FwcGVuZCBjb21waWxlcl9mbGFncyAiICRhcmciCi0rCWZ1 bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCi0rCWZ1bmNfYXBwZW5kIGZpbmFsaXpl X2NvbW1hbmQgIiAkYXJnIgotKwljYXNlICIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgIiBp bgotKwkgICAgKiIgJGFyZyAiKikgOzsKLSsJICAgICogKSBmdW5jX2FwcGVuZCBuZXdfaW5oZXJp dGVkX2xpbmtlcl9mbGFncyAiICRhcmciIDs7Ci0rCWVzYWMKLSsJY29udGludWUKLSsJOzsKLSsK LSsgICAgICAtbXVsdGlfbW9kdWxlKQotKwlzaW5nbGVfbW9kdWxlPSIke3dsfS1tdWx0aV9tb2R1 bGUiCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW5vLWZhc3QtaW5zdGFsbCkKLSsJZmFz dF9pbnN0YWxsPW5vCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLW5vLWluc3RhbGwpCi0r CWNhc2UgJGhvc3QgaW4KLSsJKi0qLWN5Z3dpbiogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwg Ki0qLW9zMiogfCAqLSotZGFyd2luKiB8ICotY2VnY2MqKQotKwkgICMgVGhlIFBBVEggaGFja2Vy eSBpbiB3cmFwcGVyIHNjcmlwdHMgaXMgcmVxdWlyZWQgb24gV2luZG93cwotKwkgICMgYW5kIERh cndpbiBpbiBvcmRlciBmb3IgdGhlIGxvYWRlciB0byBmaW5kIGFueSBkbGxzIGl0IG5lZWRzLgot KwkgIGZ1bmNfd2FybmluZyAiXGAtbm8taW5zdGFsbCcgaXMgaWdub3JlZCBmb3IgJGhvc3QiCi0r CSAgZnVuY193YXJuaW5nICJhc3N1bWluZyBcYC1uby1mYXN0LWluc3RhbGwnIGluc3RlYWQiCi0r CSAgZmFzdF9pbnN0YWxsPW5vCi0rCSAgOzsKLSsJKikgbm9faW5zdGFsbD15ZXMgOzsKLSsJZXNh YwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1uby11bmRlZmluZWQpCi0rCWFsbG93X3Vu ZGVmaW5lZD1ubwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1vYmplY3RsaXN0KQotKwlw cmV2PW9iamVjdGxpc3QKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtbykgcHJldj1vdXRw dXQgOzsKLSsKLSsgICAgICAtcHJlY2lvdXMtZmlsZXMtcmVnZXgpCi0rCXByZXY9cHJlY2lvdXNf cmVnZXgKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtcmVsZWFzZSkKLSsJcHJldj1yZWxl YXNlCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXJwYXRoKQotKwlwcmV2PXJwYXRoCi0r CWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLVIpCi0rCXByZXY9eHJwYXRoCi0rCWNvbnRpbnVl Ci0rCTs7Ci0rCi0rICAgICAgLVIqKQotKwlmdW5jX3N0cmlwbmFtZSAnLVInICcnICIkYXJnIgot KwlkaXI9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkjIFdlIG5lZWQgYW4gYWJzb2x1dGUgcGF0 aC4KLSsJY2FzZSAkZGlyIGluCi0rCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgOzsKLSsJPSop Ci0rCSAgZnVuY19zdHJpcG5hbWUgJz0nICcnICIkZGlyIgotKwkgIGRpcj0kbHRfc3lzcm9vdCRm dW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICA7OwotKwkqKQotKwkgIGZ1bmNfZmF0YWxfZXJyb3Ig Im9ubHkgYWJzb2x1dGUgcnVuLXBhdGhzIGFyZSBhbGxvd2VkIgotKwkgIDs7Ci0rCWVzYWMKLSsJ Y2FzZSAiJHhycGF0aCAiIGluCi0rCSoiICRkaXIgIiopIDs7Ci0rCSopIGZ1bmNfYXBwZW5kIHhy cGF0aCAiICRkaXIiIDs7Ci0rCWVzYWMKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtc2hh cmVkKQotKwkjIFRoZSBlZmZlY3RzIG9mIC1zaGFyZWQgYXJlIGRlZmluZWQgaW4gYSBwcmV2aW91 cyBsb29wLgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1zaHJleHQpCi0rCXByZXY9c2hy ZXh0Ci0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAgLXN0YXRpYyB8IC1zdGF0aWMtbGlidG9v bC1saWJzKQotKwkjIFRoZSBlZmZlY3RzIG9mIC1zdGF0aWMgYXJlIGRlZmluZWQgaW4gYSBwcmV2 aW91cyBsb29wLgotKwkjIFdlIHVzZWQgdG8gZG8gdGhlIHNhbWUgYXMgLWFsbC1zdGF0aWMgb24g cGxhdGZvcm1zIHRoYXQKLSsJIyBkaWRuJ3QgaGF2ZSBhIFBJQyBmbGFnLCBidXQgdGhlIGFzc3Vt cHRpb24gdGhhdCB0aGUgZWZmZWN0cwotKwkjIHdvdWxkIGJlIGVxdWl2YWxlbnQgd2FzIHdyb25n LiAgSXQgd291bGQgYnJlYWsgb24gYXQgbGVhc3QKLSsJIyBEaWdpdGFsIFVuaXggYW5kIEFJWC4K LSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtdGhyZWFkLXNhZmUpCi0rCXRocmVhZF9zYWZl PXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC12ZXJzaW9uLWluZm8pCi0rCXByZXY9 dmluZm8KLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtdmVyc2lvbi1udW1iZXIpCi0rCXBy ZXY9dmluZm8KLSsJdmluZm9fbnVtYmVyPXllcwotKwljb250aW51ZQotKwk7OwotKwotKyAgICAg IC13ZWFrKQotKyAgICAgICAgcHJldj13ZWFrCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAgICAg LVdjLCopCi0rCWZ1bmNfc3RyaXBuYW1lICctV2MsJyAnJyAiJGFyZyIKLSsJYXJncz0kZnVuY19z dHJpcG5hbWVfcmVzdWx0Ci0rCWFyZz0KLSsJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JywnCi0rCWZv ciBmbGFnIGluICRhcmdzOyBkbwotKwkgIElGUz0iJHNhdmVfaWZzIgotKyAgICAgICAgICBmdW5j X3F1b3RlX2Zvcl9ldmFsICIkZmxhZyIKLSsJICBmdW5jX2FwcGVuZCBhcmcgIiAkZnVuY19xdW90 ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCSAgZnVuY19hcHBlbmQgY29tcGlsZXJfZmxhZ3MgIiAkZnVu Y19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCWRvbmUKLSsJSUZTPSIkc2F2ZV9pZnMiCi0rCWZ1 bmNfc3RyaXBuYW1lICcgJyAnJyAiJGFyZyIKLSsJYXJnPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQK LSsJOzsKLSsKLSsgICAgICAtV2wsKikKLSsJZnVuY19zdHJpcG5hbWUgJy1XbCwnICcnICIkYXJn IgotKwlhcmdzPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJYXJnPQotKwlzYXZlX2lmcz0iJElG UyI7IElGUz0nLCcKLSsJZm9yIGZsYWcgaW4gJGFyZ3M7IGRvCi0rCSAgSUZTPSIkc2F2ZV9pZnMi Ci0rICAgICAgICAgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRmbGFnIgotKwkgIGZ1bmNfYXBwZW5k IGFyZyAiICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsJICBmdW5jX2FwcGVuZCBj b21waWxlcl9mbGFncyAiICR3bCRmdW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsJICBmdW5j X2FwcGVuZCBsaW5rZXJfZmxhZ3MgIiAkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCWRv bmUKLSsJSUZTPSIkc2F2ZV9pZnMiCi0rCWZ1bmNfc3RyaXBuYW1lICcgJyAnJyAiJGFyZyIKLSsJ YXJnPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJOzsKLSsKLSsgICAgICAtWGNvbXBpbGVyKQot KwlwcmV2PXhjb21waWxlcgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgIC1YbGlua2VyKQot KwlwcmV2PXhsaW5rZXIKLSsJY29udGludWUKLSsJOzsKLSsKLSsgICAgICAtWENDbGlua2VyKQot KwlwcmV2PXhjY2xpbmtlcgotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgICMgLW1zZ18qIGZv ciBvc2YgY2MKLSsgICAgICAtbXNnXyopCi0rCWZ1bmNfcXVvdGVfZm9yX2V2YWwgIiRhcmciCi0r CWFyZz0iJGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0IgotKwk7OwotKwotKyAgICAgICMgRmxh Z3MgdG8gYmUgcGFzc2VkIHRocm91Z2ggdW5jaGFuZ2VkLCB3aXRoIHJhdGlvbmFsZToKLSsgICAg ICAjIC02NCwgLW1pcHNbMC05XSAgICAgIGVuYWJsZSA2NC1iaXQgbW9kZSBmb3IgdGhlIFNHSSBj b21waWxlcgotKyAgICAgICMgLXJbMC05XVswLTldKiAgICAgICAgc3BlY2lmeSBwcm9jZXNzb3Ig Zm9yIHRoZSBTR0kgY29tcGlsZXIKLSsgICAgICAjIC14YXJjaD0qLCAteHRhcmdldD0qIGVuYWJs ZSA2NC1iaXQgbW9kZSBmb3IgdGhlIFN1biBjb21waWxlcgotKyAgICAgICMgK0RBKiwgK0REKiAg ICAgICAgICAgZW5hYmxlIDY0LWJpdCBtb2RlIGZvciB0aGUgSFAgY29tcGlsZXIKLSsgICAgICAj IC1xKiAgICAgICAgICAgICAgICAgIGNvbXBpbGVyIGFyZ3MgZm9yIHRoZSBJQk0gY29tcGlsZXIK LSsgICAgICAjIC1tKiwgLXRbNDVdKiwgLXR4c2NhbGUqIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBm bGFncyBmb3IgR0NDCi0rICAgICAgIyAtRi9wYXRoICAgICAgICAgICAgICBwYXRoIHRvIHVuaW5z dGFsbGVkIGZyYW1ld29ya3MsIGdjYyBvbiBkYXJ3aW4KLSsgICAgICAjIC1wLCAtcGcsIC0tY292 ZXJhZ2UsIC1mcHJvZmlsZS0qICBwcm9maWxpbmcgZmxhZ3MgZm9yIEdDQwotKyAgICAgICMgQGZp bGUgICAgICAgICAgICAgICAgR0NDIHJlc3BvbnNlIGZpbGVzCi0rICAgICAgIyAtdHA9KiAgICAg ICAgICAgICAgICBQb3J0bGFuZCBwZ2NjIHRhcmdldCBwcm9jZXNzb3Igc2VsZWN0aW9uCi0rICAg ICAgIyAtLXN5c3Jvb3Q9KiAgICAgICAgICBmb3Igc3lzcm9vdCBzdXBwb3J0Ci0rICAgICAgIyAt TyosIC1mbHRvKiwgLWZ3aG9wciosIC1mdXNlLWxpbmtlci1wbHVnaW4gR0NDIGxpbmstdGltZSBv cHRpbWl6YXRpb24KLSsgICAgICAtNjR8LW1pcHNbMC05XXwtclswLTldWzAtOV0qfC14YXJjaD0q fC14dGFyZ2V0PSp8K0RBKnwrREQqfC1xKnwtbSp8IFwKLSsgICAgICAtdFs0NV0qfC10eHNjYWxl KnwtcHwtcGd8LS1jb3ZlcmFnZXwtZnByb2ZpbGUtKnwtRip8QCp8LXRwPSp8LS1zeXNyb290PSp8 IFwKLSsgICAgICAtTyp8LWZsdG8qfC1md2hvcHIqfC1mdXNlLWxpbmtlci1wbHVnaW4pCi0rICAg ICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKwlhcmc9IiRmdW5jX3F1b3RlX2Zvcl9l dmFsX3Jlc3VsdCIKLSsgICAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmci Ci0rICAgICAgICBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9jb21tYW5kICIgJGFyZyIKLSsgICAgICAg IGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJGFyZyIKLSsgICAgICAgIGNvbnRpbnVlCi0r ICAgICAgICA7OwotKwotKyAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBmbGFnLgotKyAgICAg IC0qIHwgKyopCi0rICAgICAgICBmdW5jX3F1b3RlX2Zvcl9ldmFsICIkYXJnIgotKwlhcmc9IiRm dW5jX3F1b3RlX2Zvcl9ldmFsX3Jlc3VsdCIKLSsJOzsKLSsKLSsgICAgICAqLiRvYmpleHQpCi0r CSMgQSBzdGFuZGFyZCBvYmplY3QuCi0rCWZ1bmNfYXBwZW5kIG9ianMgIiAkYXJnIgotKwk7Owot KwotKyAgICAgICoubG8pCi0rCSMgQSBsaWJ0b29sLWNvbnRyb2xsZWQgb2JqZWN0LgotKwotKwkj IENoZWNrIHRvIHNlZSB0aGF0IHRoaXMgcmVhbGx5IGlzIGEgbGlidG9vbCBvYmplY3QuCi0rCWlm IGZ1bmNfbGFsaWJfdW5zYWZlX3AgIiRhcmciOyB0aGVuCi0rCSAgcGljX29iamVjdD0KLSsJICBu b25fcGljX29iamVjdD0KLSsKLSsJICAjIFJlYWQgdGhlIC5sbyBmaWxlCi0rCSAgZnVuY19zb3Vy Y2UgIiRhcmciCi0rCi0rCSAgaWYgdGVzdCAteiAiJHBpY19vYmplY3QiIHx8Ci0rCSAgICAgdGVz dCAteiAiJG5vbl9waWNfb2JqZWN0IiB8fAotKwkgICAgIHRlc3QgIiRwaWNfb2JqZWN0IiA9IG5v bmUgJiYKLSsJICAgICB0ZXN0ICIkbm9uX3BpY19vYmplY3QiID0gbm9uZTsgdGhlbgotKwkgICAg ZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQgbmFtZSBvZiBvYmplY3QgZm9yIFxgJGFyZyci Ci0rCSAgZmkKLSsKLSsJICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50 LgotKwkgIGZ1bmNfZGlybmFtZSAiJGFyZyIgIi8iICIiCi0rCSAgeGRpcj0iJGZ1bmNfZGlybmFt ZV9yZXN1bHQiCi0rCi0rCSAgaWYgdGVzdCAiJHBpY19vYmplY3QiICE9IG5vbmU7IHRoZW4KLSsJ ICAgICMgUHJlcGVuZCB0aGUgc3ViZGlyZWN0b3J5IHRoZSBvYmplY3QgaXMgZm91bmQgaW4uCi0r CSAgICBwaWNfb2JqZWN0PSIkeGRpciRwaWNfb2JqZWN0IgotKwotKwkgICAgaWYgdGVzdCAiJHBy ZXYiID0gZGxmaWxlczsgdGhlbgotKwkgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJz IiA9IHllcyAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0geWVzOyB0aGVuCi0rCQlmdW5jX2Fw cGVuZCBkbGZpbGVzICIgJHBpY19vYmplY3QiCi0rCQlwcmV2PQotKwkJY29udGludWUKLSsJICAg ICAgZWxzZQotKwkJIyBJZiBsaWJ0b29sIG9iamVjdHMgYXJlIHVuc3VwcG9ydGVkLCB0aGVuIHdl IG5lZWQgdG8gcHJlbG9hZC4KLSsJCXByZXY9ZGxwcmVmaWxlcwotKwkgICAgICBmaQotKwkgICAg ZmkKLSsKLSsJICAgICMgQ0hFQ0sgTUU6ICBJIHRoaW5rIEkgYnVzdGVkIHRoaXMuICAtT3NzYW1h Ci0rCSAgICBpZiB0ZXN0ICIkcHJldiIgPSBkbHByZWZpbGVzOyB0aGVuCi0rCSAgICAgICMgUHJl bG9hZCB0aGUgb2xkLXN0eWxlIG9iamVjdC4KLSsJICAgICAgZnVuY19hcHBlbmQgZGxwcmVmaWxl cyAiICRwaWNfb2JqZWN0IgotKwkgICAgICBwcmV2PQotKwkgICAgZmkKLSsKLSsJICAgICMgQSBQ SUMgb2JqZWN0LgotKwkgICAgZnVuY19hcHBlbmQgbGlib2JqcyAiICRwaWNfb2JqZWN0IgotKwkg ICAgYXJnPSIkcGljX29iamVjdCIKLSsJICBmaQotKwotKwkgICMgTm9uLVBJQyBvYmplY3QuCi0r CSAgaWYgdGVzdCAiJG5vbl9waWNfb2JqZWN0IiAhPSBub25lOyB0aGVuCi0rCSAgICAjIFByZXBl bmQgdGhlIHN1YmRpcmVjdG9yeSB0aGUgb2JqZWN0IGlzIGZvdW5kIGluLgotKwkgICAgbm9uX3Bp Y19vYmplY3Q9IiR4ZGlyJG5vbl9waWNfb2JqZWN0IgotKwotKwkgICAgIyBBIHN0YW5kYXJkIG5v bi1QSUMgb2JqZWN0Ci0rCSAgICBmdW5jX2FwcGVuZCBub25fcGljX29iamVjdHMgIiAkbm9uX3Bp Y19vYmplY3QiCi0rCSAgICBpZiB0ZXN0IC16ICIkcGljX29iamVjdCIgfHwgdGVzdCAiJHBpY19v YmplY3QiID0gbm9uZSA7IHRoZW4KLSsJICAgICAgYXJnPSIkbm9uX3BpY19vYmplY3QiCi0rCSAg ICBmaQotKwkgIGVsc2UKLSsJICAgICMgSWYgdGhlIFBJQyBvYmplY3QgZXhpc3RzLCB1c2UgaXQg aW5zdGVhZC4KLSsJICAgICMgJHhkaXIgd2FzIHByZXBlbmRlZCB0byAkcGljX29iamVjdCBhYm92 ZS4KLSsJICAgIG5vbl9waWNfb2JqZWN0PSIkcGljX29iamVjdCIKLSsJICAgIGZ1bmNfYXBwZW5k IG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVjdCIKLSsJICBmaQotKwllbHNlCi0rCSAg IyBPbmx5IGFuIGVycm9yIGlmIG5vdCBkb2luZyBhIGRyeS1ydW4uCi0rCSAgaWYgJG9wdF9kcnlf cnVuOyB0aGVuCi0rCSAgICAjIEV4dHJhY3Qgc3ViZGlyZWN0b3J5IGZyb20gdGhlIGFyZ3VtZW50 LgotKwkgICAgZnVuY19kaXJuYW1lICIkYXJnIiAiLyIgIiIKLSsJICAgIHhkaXI9IiRmdW5jX2Rp cm5hbWVfcmVzdWx0IgotKwotKwkgICAgZnVuY19sbzJvICIkYXJnIgotKwkgICAgcGljX29iamVj dD0keGRpciRvYmpkaXIvJGZ1bmNfbG8yb19yZXN1bHQKLSsJICAgIG5vbl9waWNfb2JqZWN0PSR4 ZGlyJGZ1bmNfbG8yb19yZXN1bHQKLSsJICAgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkcGljX29i amVjdCIKLSsJICAgIGZ1bmNfYXBwZW5kIG5vbl9waWNfb2JqZWN0cyAiICRub25fcGljX29iamVj dCIKLSsJICBlbHNlCi0rCSAgICBmdW5jX2ZhdGFsX2Vycm9yICJcYCRhcmcnIGlzIG5vdCBhIHZh bGlkIGxpYnRvb2wgb2JqZWN0IgotKwkgIGZpCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgKi4kbGli ZXh0KQotKwkjIEFuIGFyY2hpdmUuCi0rCWZ1bmNfYXBwZW5kIGRlcGxpYnMgIiAkYXJnIgotKwlm dW5jX2FwcGVuZCBvbGRfZGVwbGlicyAiICRhcmciCi0rCWNvbnRpbnVlCi0rCTs7Ci0rCi0rICAg ICAgKi5sYSkKLSsJIyBBIGxpYnRvb2wtY29udHJvbGxlZCBsaWJyYXJ5LgotKwotKwlmdW5jX3Jl c29sdmVfc3lzcm9vdCAiJGFyZyIKLSsJaWYgdGVzdCAiJHByZXYiID0gZGxmaWxlczsgdGhlbgot KwkgICMgVGhpcyBsaWJyYXJ5IHdhcyBzcGVjaWZpZWQgd2l0aCAtZGxvcGVuLgotKwkgIGZ1bmNf YXBwZW5kIGRsZmlsZXMgIiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0IgotKwkgIHByZXY9 Ci0rCWVsaWYgdGVzdCAiJHByZXYiID0gZGxwcmVmaWxlczsgdGhlbgotKwkgICMgVGhlIGxpYnJh cnkgd2FzIHNwZWNpZmllZCB3aXRoIC1kbHByZW9wZW4uCi0rCSAgZnVuY19hcHBlbmQgZGxwcmVm aWxlcyAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCi0rCSAgcHJldj0KLSsJZWxzZQot KwkgIGZ1bmNfYXBwZW5kIGRlcGxpYnMgIiAkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0Igot KwlmaQotKwljb250aW51ZQotKwk7OwotKwotKyAgICAgICMgU29tZSBvdGhlciBjb21waWxlciBh cmd1bWVudC4KLSsgICAgICAqKQotKwkjIFVua25vd24gYXJndW1lbnRzIGluIGJvdGggZmluYWxp emVfY29tbWFuZCBhbmQgY29tcGlsZV9jb21tYW5kIG5lZWQKLSsJIyB0byBiZSBhZXN0aGV0aWNh bGx5IHF1b3RlZCBiZWNhdXNlIHRoZXkgYXJlIGV2YWxlZCBsYXRlci4KLSsJZnVuY19xdW90ZV9m b3JfZXZhbCAiJGFyZyIKLSsJYXJnPSIkZnVuY19xdW90ZV9mb3JfZXZhbF9yZXN1bHQiCi0rCTs7 Ci0rICAgICAgZXNhYyAjIGFyZwotKwotKyAgICAgICMgTm93IGFjdHVhbGx5IHN1YnN0aXR1dGUg dGhlIGFyZ3VtZW50IGludG8gdGhlIGNvbW1hbmRzLgotKyAgICAgIGlmIHRlc3QgLW4gIiRhcmci OyB0aGVuCi0rCWZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICRhcmciCi0rCWZ1bmNfYXBw ZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkYXJnIgotKyAgICAgIGZpCi0rICAgIGRvbmUgIyBhcmd1 bWVudCBwYXJzaW5nIGxvb3AKLSsKLSsgICAgdGVzdCAtbiAiJHByZXYiICYmIFwKLSsgICAgICBm dW5jX2ZhdGFsX2hlbHAgInRoZSBcYCRwcmV2YXJnJyBvcHRpb24gcmVxdWlyZXMgYW4gYXJndW1l bnQiCi0rCi0rICAgIGlmIHRlc3QgIiRleHBvcnRfZHluYW1pYyIgPSB5ZXMgJiYgdGVzdCAtbiAi JGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyI7IHRoZW4KLSsgICAgICBldmFsIGFyZz1cIiRleHBv cnRfZHluYW1pY19mbGFnX3NwZWNcIgotKyAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFu ZCAiICRhcmciCi0rICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICRhcmciCi0r ICAgIGZpCi0rCi0rICAgIG9sZGxpYnM9Ci0rICAgICMgY2FsY3VsYXRlIHRoZSBuYW1lIG9mIHRo ZSBmaWxlLCB3aXRob3V0IGl0cyBkaXJlY3RvcnkKLSsgICAgZnVuY19iYXNlbmFtZSAiJG91dHB1 dCIKLSsgICAgb3V0cHV0bmFtZT0iJGZ1bmNfYmFzZW5hbWVfcmVzdWx0IgotKyAgICBsaWJvYmpz X3NhdmU9IiRsaWJvYmpzIgotKwotKyAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciI7IHRo ZW4KLSsgICAgICAjIGdldCB0aGUgZGlyZWN0b3JpZXMgbGlzdGVkIGluICRzaGxpYnBhdGhfdmFy Ci0rICAgICAgZXZhbCBzaGxpYl9zZWFyY2hfcGF0aD1cYFwkRUNITyBcIlwkeyRzaGxpYnBhdGhf dmFyfVwiIFx8IFwkU0VEIFwncy86LyAvZ1wnXGAKLSsgICAgZWxzZQotKyAgICAgIHNobGliX3Nl YXJjaF9wYXRoPQotKyAgICBmaQotKyAgICBldmFsIHN5c19saWJfc2VhcmNoX3BhdGg9XCIkc3lz X2xpYl9zZWFyY2hfcGF0aF9zcGVjXCIKLSsgICAgZXZhbCBzeXNfbGliX2Rsc2VhcmNoX3BhdGg9 XCIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWNcIgotKwotKyAgICBmdW5jX2Rpcm5hbWUgIiRv dXRwdXQiICIvIiAiIgotKyAgICBvdXRwdXRfb2JqZGlyPSIkZnVuY19kaXJuYW1lX3Jlc3VsdCRv YmpkaXIiCi0rICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0X29iamRpci8iCi0rICAgIHRv b2xfb3V0cHV0X29iamRpcj0kZnVuY190b190b29sX2ZpbGVfcmVzdWx0Ci0rICAgICMgQ3JlYXRl IHRoZSBvYmplY3QgZGlyZWN0b3J5LgotKyAgICBmdW5jX21rZGlyX3AgIiRvdXRwdXRfb2JqZGly IgotKwotKyAgICAjIERldGVybWluZSB0aGUgdHlwZSBvZiBvdXRwdXQKLSsgICAgY2FzZSAkb3V0 cHV0IGluCi0rICAgICIiKQotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lm eSBhbiBvdXRwdXQgZmlsZSIKLSsgICAgICA7OwotKyAgICAqLiRsaWJleHQpIGxpbmttb2RlPW9s ZGxpYiA7OwotKyAgICAqLmxvIHwgKi4kb2JqZXh0KSBsaW5rbW9kZT1vYmogOzsKLSsgICAgKi5s YSkgbGlua21vZGU9bGliIDs7Ci0rICAgICopIGxpbmttb2RlPXByb2cgOzsgIyBBbnl0aGluZyBl bHNlIHNob3VsZCBiZSBhIHByb2dyYW0uCi0rICAgIGVzYWMKLSsKLSsgICAgc3BlY2lhbGRlcGxp YnM9Ci0rCi0rICAgIGxpYnM9Ci0rICAgICMgRmluZCBhbGwgaW50ZXJkZXBlbmRlbnQgZGVwbGli cyBieSBzZWFyY2hpbmcgZm9yIGxpYnJhcmllcwotKyAgICAjIHRoYXQgYXJlIGxpbmtlZCBtb3Jl IHRoYW4gb25jZSAoZS5nLiAtbGEgLWxiIC1sYSkKLSsgICAgZm9yIGRlcGxpYiBpbiAkZGVwbGli czsgZG8KLSsgICAgICBpZiAkb3B0X3ByZXNlcnZlX2R1cF9kZXBzIDsgdGhlbgotKwljYXNlICIk bGlicyAiIGluCi0rCSoiICRkZXBsaWIgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIg JGRlcGxpYiIgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAgZnVuY19hcHBlbmQgbGlicyAi ICRkZXBsaWIiCi0rICAgIGRvbmUKLSsKLSsgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsg dGhlbgotKyAgICAgIGxpYnM9IiRwcmVkZXBzICRsaWJzICRjb21waWxlcl9saWJfc2VhcmNoX3Bh dGggJHBvc3RkZXBzIgotKwotKyAgICAgICMgQ29tcHV0ZSBsaWJyYXJpZXMgdGhhdCBhcmUgbGlz dGVkIG1vcmUgdGhhbiBvbmNlIGluICRwcmVkZXBzCi0rICAgICAgIyAkcG9zdGRlcHMgYW5kIG1h cmsgdGhlbSBhcyBzcGVjaWFsIChpLmUuLCB3aG9zZSBkdXBsaWNhdGVzIGFyZQotKyAgICAgICMg bm90IHRvIGJlIGVsaW1pbmF0ZWQpLgotKyAgICAgIHByZV9wb3N0X2RlcHM9Ci0rICAgICAgaWYg JG9wdF9kdXBsaWNhdGVfY29tcGlsZXJfZ2VuZXJhdGVkX2RlcHM7IHRoZW4KLSsJZm9yIHByZV9w b3N0X2RlcCBpbiAkcHJlZGVwcyAkcG9zdGRlcHM7IGRvCi0rCSAgY2FzZSAiJHByZV9wb3N0X2Rl cHMgIiBpbgotKwkgICoiICRwcmVfcG9zdF9kZXAgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBs aWJzICIgJHByZV9wb3N0X2RlcHMiIDs7Ci0rCSAgZXNhYwotKwkgIGZ1bmNfYXBwZW5kIHByZV9w b3N0X2RlcHMgIiAkcHJlX3Bvc3RfZGVwIgotKwlkb25lCi0rICAgICAgZmkKLSsgICAgICBwcmVf cG9zdF9kZXBzPQotKyAgICBmaQotKwotKyAgICBkZXBsaWJzPQotKyAgICBuZXdkZXBlbmRlbmN5 X2xpYnM9Ci0rICAgIG5ld2xpYl9zZWFyY2hfcGF0aD0KLSsgICAgbmVlZF9yZWxpbms9bm8gIyB3 aGV0aGVyIHdlJ3JlIGxpbmtpbmcgYW55IHVuaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCi0r ICAgIG5vdGluc3RfZGVwbGlicz0gIyBub3QtaW5zdGFsbGVkIGxpYnRvb2wgbGlicmFyaWVzCi0r ICAgIG5vdGluc3RfcGF0aD0gIyBwYXRocyB0aGF0IGNvbnRhaW4gbm90LWluc3RhbGxlZCBsaWJ0 b29sIGxpYnJhcmllcwotKwotKyAgICBjYXNlICRsaW5rbW9kZSBpbgotKyAgICBsaWIpCi0rCXBh c3Nlcz0iY29udiBkbHByZW9wZW4gbGluayIKLSsJZm9yIGZpbGUgaW4gJGRsZmlsZXMgJGRscHJl ZmlsZXM7IGRvCi0rCSAgY2FzZSAkZmlsZSBpbgotKwkgICoubGEpIDs7Ci0rCSAgKikKLSsJICAg IGZ1bmNfZmF0YWxfaGVscCAibGlicmFyaWVzIGNhbiBcYC1kbG9wZW4nIG9ubHkgbGlidG9vbCBs aWJyYXJpZXM6ICRmaWxlIgotKwkgICAgOzsKLSsJICBlc2FjCi0rCWRvbmUKLSsJOzsKLSsgICAg cHJvZykKLSsJY29tcGlsZV9kZXBsaWJzPQotKwlmaW5hbGl6ZV9kZXBsaWJzPQotKwlhbGxkZXBs aWJzPW5vCi0rCW5ld2RsZmlsZXM9Ci0rCW5ld2RscHJlZmlsZXM9Ci0rCXBhc3Nlcz0iY29udiBz Y2FuIGRsb3BlbiBkbHByZW9wZW4gbGluayIKLSsJOzsKLSsgICAgKikgIHBhc3Nlcz0iY29udiIK LSsJOzsKLSsgICAgZXNhYwotKwotKyAgICBmb3IgcGFzcyBpbiAkcGFzc2VzOyBkbwotKyAgICAg ICMgVGhlIHByZW9wZW4gcGFzcyBpbiBsaWIgbW9kZSByZXZlcnNlcyAkZGVwbGliczsgcHV0IGl0 IGJhY2sgaGVyZQotKyAgICAgICMgc28gdGhhdCAtTCBjb21lcyBiZWZvcmUgbGlicyB0aGF0IG5l ZWQgaXQgZm9yIGluc3RhbmNlLi4uCi0rICAgICAgaWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9 ICJsaWIsbGluayI7IHRoZW4KLSsJIyMgRklYTUU6IEZpbmQgdGhlIHBsYWNlIHdoZXJlIHRoZSBs aXN0IGlzIHJlYnVpbHQgaW4gdGhlIHdyb25nCi0rCSMjICAgICAgICBvcmRlciwgYW5kIGZpeCBp dCB0aGVyZSBwcm9wZXJseQotKyAgICAgICAgdG1wX2RlcGxpYnM9Ci0rCWZvciBkZXBsaWIgaW4g JGRlcGxpYnM7IGRvCi0rCSAgdG1wX2RlcGxpYnM9IiRkZXBsaWIgJHRtcF9kZXBsaWJzIgotKwlk b25lCi0rCWRlcGxpYnM9IiR0bXBfZGVwbGlicyIKLSsgICAgICBmaQotKwotKyAgICAgIGlmIHRl c3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAibGliLGxpbmsiIHx8Ci0rCSB0ZXN0ICIkbGlua21vZGUs JHBhc3MiID0gInByb2csc2NhbiI7IHRoZW4KLSsJbGlicz0iJGRlcGxpYnMiCi0rCWRlcGxpYnM9 Ci0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwlj YXNlICRwYXNzIGluCi0rCWRsb3BlbikgbGlicz0iJGRsZmlsZXMiIDs7Ci0rCWRscHJlb3Blbikg bGlicz0iJGRscHJlZmlsZXMiIDs7Ci0rCWxpbmspIGxpYnM9IiRkZXBsaWJzICVERVBMSUJTJSAk ZGVwZW5kZW5jeV9saWJzIiA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBpZiB0ZXN0ICIk bGlua21vZGUsJHBhc3MiID0gImxpYixkbHByZW9wZW4iOyB0aGVuCi0rCSMgQ29sbGVjdCBhbmQg Zm9yd2FyZCBkZXBsaWJzIG9mIHByZW9wZW5lZCBsaWJ0b29sIGxpYnMKLSsJZm9yIGxpYiBpbiAk ZGxwcmVmaWxlczsgZG8KLSsJICAjIElnbm9yZSBub24tbGlidG9vbC1saWJzCi0rCSAgZGVwZW5k ZW5jeV9saWJzPQotKwkgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkbGliIgotKwkgIGNhc2UgJGxp YiBpbgotKwkgICoubGEpCWZ1bmNfc291cmNlICIkZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0 IiA7OwotKwkgIGVzYWMKLSsKLSsJICAjIENvbGxlY3QgcHJlb3BlbmVkIGxpYnRvb2wgZGVwbGli cywgZXhjZXB0IGFueSB0aGlzIGxpYnJhcnkKLSsJICAjIGhhcyBkZWNsYXJlZCBhcyB3ZWFrIGxp YnMKLSsJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRvCi0rCSAgICBmdW5jX2Jh c2VuYW1lICIkZGVwbGliIgotKyAgICAgICAgICAgIGRlcGxpYl9iYXNlPSRmdW5jX2Jhc2VuYW1l X3Jlc3VsdAotKwkgICAgY2FzZSAiICR3ZWFrX2xpYnMgIiBpbgotKwkgICAgKiIgJGRlcGxpYl9i YXNlICIqKSA7OwotKwkgICAgKikgZnVuY19hcHBlbmQgZGVwbGlicyAiICRkZXBsaWIiIDs7Ci0r CSAgICBlc2FjCi0rCSAgZG9uZQotKwlkb25lCi0rCWxpYnM9IiRkbHByZWZpbGVzIgotKyAgICAg IGZpCi0rICAgICAgaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCi0rCSMgQ29sbGVjdCBk bHByZW9wZW5lZCBsaWJyYXJpZXMKLSsJc2F2ZV9kZXBsaWJzPSIkZGVwbGlicyIKLSsJZGVwbGli cz0KLSsgICAgICBmaQotKwotKyAgICAgIGZvciBkZXBsaWIgaW4gJGxpYnM7IGRvCi0rCWxpYj0K LSsJZm91bmQ9bm8KLSsJY2FzZSAkZGVwbGliIGluCi0rCS1tdHwtbXRocmVhZHN8LWt0aHJlYWR8 LUt0aHJlYWR8LXB0aHJlYWR8LXB0aHJlYWRzfC0tdGhyZWFkLXNhZmV8LXRocmVhZHMpCi0rCSAg aWYgdGVzdCAiJGxpbmttb2RlLCRwYXNzIiA9ICJwcm9nLGxpbmsiOyB0aGVuCi0rCSAgICBjb21w aWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgIGZpbmFsaXplX2Rl cGxpYnM9IiRkZXBsaWIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZWxzZQotKwkgICAgZnVuY19h cHBlbmQgY29tcGlsZXJfZmxhZ3MgIiAkZGVwbGliIgotKwkgICAgaWYgdGVzdCAiJGxpbmttb2Rl IiA9IGxpYiA7IHRoZW4KLSsJCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGlu Ci0rCQkgICAgKiIgJGRlcGxpYiAiKikgOzsKLSsJCSAgICAqICkgZnVuY19hcHBlbmQgbmV3X2lu aGVyaXRlZF9saW5rZXJfZmxhZ3MgIiAkZGVwbGliIiA7OwotKwkJZXNhYwotKwkgICAgZmkKLSsJ ICBmaQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJLWwqKQotKwkgIGlmIHRlc3QgIiRsaW5rbW9k ZSIgIT0gbGliICYmIHRlc3QgIiRsaW5rbW9kZSIgIT0gcHJvZzsgdGhlbgotKwkgICAgZnVuY193 YXJuaW5nICJcYC1sJyBpcyBpZ25vcmVkIGZvciBhcmNoaXZlcy9vYmplY3RzIgotKwkgICAgY29u dGludWUKLSsJICBmaQotKwkgIGZ1bmNfc3RyaXBuYW1lICctbCcgJycgIiRkZXBsaWIiCi0rCSAg bmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxp YjsgdGhlbgotKwkgICAgc2VhcmNoZGlycz0iJG5ld2xpYl9zZWFyY2hfcGF0aCAkbGliX3NlYXJj aF9wYXRoICRjb21waWxlcl9saWJfc2VhcmNoX2RpcnMgJHN5c19saWJfc2VhcmNoX3BhdGggJHNo bGliX3NlYXJjaF9wYXRoIgotKwkgIGVsc2UKLSsJICAgIHNlYXJjaGRpcnM9IiRuZXdsaWJfc2Vh cmNoX3BhdGggJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hfcGF0aCAkc2hsaWJfc2Vh cmNoX3BhdGgiCi0rCSAgZmkKLSsJICBmb3Igc2VhcmNoZGlyIGluICRzZWFyY2hkaXJzOyBkbwot KwkgICAgZm9yIHNlYXJjaF9leHQgaW4gLmxhICRzdGRfc2hyZXh0IC5zbyAuYTsgZG8KLSsJICAg ICAgIyBTZWFyY2ggdGhlIGxpYnRvb2wgbGlicmFyeQotKwkgICAgICBsaWI9IiRzZWFyY2hkaXIv bGliJHtuYW1lfSR7c2VhcmNoX2V4dH0iCi0rCSAgICAgIGlmIHRlc3QgLWYgIiRsaWIiOyB0aGVu Ci0rCQlpZiB0ZXN0ICIkc2VhcmNoX2V4dCIgPSAiLmxhIjsgdGhlbgotKwkJICBmb3VuZD15ZXMK LSsJCWVsc2UKLSsJCSAgZm91bmQ9bm8KLSsJCWZpCi0rCQlicmVhayAyCi0rCSAgICAgIGZpCi0r CSAgICBkb25lCi0rCSAgZG9uZQotKwkgIGlmIHRlc3QgIiRmb3VuZCIgIT0geWVzOyB0aGVuCi0r CSAgICAjIGRlcGxpYiBkb2Vzbid0IHNlZW0gdG8gYmUgYSBsaWJ0b29sIGxpYnJhcnkKLSsJICAg IGlmIHRlc3QgIiRsaW5rbW9kZSwkcGFzcyIgPSAicHJvZyxsaW5rIjsgdGhlbgotKwkgICAgICBj b21waWxlX2RlcGxpYnM9IiRkZXBsaWIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgICAgZmluYWxp emVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAg ICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgICAgdGVzdCAiJGxpbmttb2RlIiA9 IGxpYiAmJiBuZXdkZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIK LSsJICAgIGZpCi0rCSAgICBjb250aW51ZQotKwkgIGVsc2UgIyBkZXBsaWIgaXMgYSBsaWJ0b29s IGxpYnJhcnkKLSsJICAgICMgSWYgJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50 aW1lcyAmJiAkZGVwbGliIGlzIGEgc3RkbGliLAotKwkgICAgIyBXZSBuZWVkIHRvIGRvIHNvbWUg c3BlY2lhbCB0aGluZ3MgaGVyZSwgYW5kIG5vdCBsYXRlci4KLSsJICAgIGlmIHRlc3QgIlgkYWxs b3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJ ICAgICAgY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0rCSAgICAgICoiICRkZXBsaWIg IiopCi0rCQlpZiBmdW5jX2xhbGliX3AgIiRsaWIiOyB0aGVuCi0rCQkgIGxpYnJhcnlfbmFtZXM9 Ci0rCQkgIG9sZF9saWJyYXJ5PQotKwkJICBmdW5jX3NvdXJjZSAiJGxpYiIKLSsJCSAgZm9yIGwg aW4gJG9sZF9saWJyYXJ5ICRsaWJyYXJ5X25hbWVzOyBkbwotKwkJICAgIGxsPSIkbCIKLSsJCSAg ZG9uZQotKwkJICBpZiB0ZXN0ICJYJGxsIiA9ICJYJG9sZF9saWJyYXJ5IiA7IHRoZW4gIyBvbmx5 IHN0YXRpYyB2ZXJzaW9uIGF2YWlsYWJsZQotKwkJICAgIGZvdW5kPW5vCi0rCQkgICAgZnVuY19k aXJuYW1lICIkbGliIiAiIiAiLiIKLSsJCSAgICBsYWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQi Ci0rCQkgICAgbGliPSRsYWRpci8kb2xkX2xpYnJhcnkKLSsJCSAgICBpZiB0ZXN0ICIkbGlua21v ZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJCSAgICAgIGNvbXBpbGVfZGVwbGlicz0i JGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRl cGxpYiAkZmluYWxpemVfZGVwbGlicyIKLSsJCSAgICBlbHNlCi0rCQkgICAgICBkZXBsaWJzPSIk ZGVwbGliICRkZXBsaWJzIgotKwkJICAgICAgdGVzdCAiJGxpbmttb2RlIiA9IGxpYiAmJiBuZXdk ZXBlbmRlbmN5X2xpYnM9IiRkZXBsaWIgJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsJCSAgICBmaQot KwkJICAgIGNvbnRpbnVlCi0rCQkgIGZpCi0rCQlmaQotKwkJOzsKLSsJICAgICAgKikgOzsKLSsJ ICAgICAgZXNhYwotKwkgICAgZmkKLSsJICBmaQotKwkgIDs7ICMgLWwKLSsJKi5sdGZyYW1ld29y aykKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJ ICAgIGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgZmlu YWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmluYWxpemVfZGVwbGlicyIKLSsJICBlbHNlCi0rCSAg ICBkZXBsaWJzPSIkZGVwbGliICRkZXBsaWJzIgotKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9 IGxpYiA7IHRoZW4KLSsJCWNhc2UgIiRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCi0r CQkgICAgKiIgJGRlcGxpYiAiKikgOzsKLSsJCSAgICAqICkgZnVuY19hcHBlbmQgbmV3X2luaGVy aXRlZF9saW5rZXJfZmxhZ3MgIiAkZGVwbGliIiA7OwotKwkJZXNhYwotKwkgICAgZmkKLSsJICBm aQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJLUwqKQotKwkgIGNhc2UgJGxpbmttb2RlIGluCi0r CSAgbGliKQotKwkgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIHRlc3QgIiRw YXNzIiA9IGNvbnYgJiYgY29udGludWUKLSsJICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxp YiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgZnVuY19zdHJpcG5hbWUgJy1MJyAnJyAiJGRl cGxpYiIKLSsJICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0 IgotKwkgICAgZnVuY19hcHBlbmQgbmV3bGliX3NlYXJjaF9wYXRoICIgJGZ1bmNfcmVzb2x2ZV9z eXNyb290X3Jlc3VsdCIKLSsJICAgIDs7Ci0rCSAgcHJvZykKLSsJICAgIGlmIHRlc3QgIiRwYXNz IiA9IGNvbnY7IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAg ICAgY29udGludWUKLSsJICAgIGZpCi0rCSAgICBpZiB0ZXN0ICIkcGFzcyIgPSBzY2FuOyB0aGVu Ci0rCSAgICAgIGRlcGxpYnM9IiRkZXBsaWIgJGRlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAg IGNvbXBpbGVfZGVwbGlicz0iJGRlcGxpYiAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgICBmaW5h bGl6ZV9kZXBsaWJzPSIkZGVwbGliICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgICAgZmkKLSsJICAg IGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBsaWIiCi0rCSAgICBmdW5jX3Jlc29sdmVfc3lz cm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCIKLSsJICAgIGZ1bmNfYXBwZW5kIG5ld2xpYl9z ZWFyY2hfcGF0aCAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCi0rCSAgICA7OwotKwkg ICopCi0rCSAgICBmdW5jX3dhcm5pbmcgIlxgLUwnIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzL29i amVjdHMiCi0rCSAgICA7OwotKwkgIGVzYWMgIyBsaW5rbW9kZQotKwkgIGNvbnRpbnVlCi0rCSAg OzsgIyAtTAotKwktUiopCi0rCSAgaWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgotKwkgICAg ZnVuY19zdHJpcG5hbWUgJy1SJyAnJyAiJGRlcGxpYiIKLSsJICAgIGZ1bmNfcmVzb2x2ZV9zeXNy b290ICIkZnVuY19zdHJpcG5hbWVfcmVzdWx0IgotKwkgICAgZGlyPSRmdW5jX3Jlc29sdmVfc3lz cm9vdF9yZXN1bHQKLSsJICAgICMgTWFrZSBzdXJlIHRoZSB4cnBhdGggY29udGFpbnMgb25seSB1 bmlxdWUgZGlyZWN0b3JpZXMuCi0rCSAgICBjYXNlICIkeHJwYXRoICIgaW4KLSsJICAgICoiICRk aXIgIiopIDs7Ci0rCSAgICAqKSBmdW5jX2FwcGVuZCB4cnBhdGggIiAkZGlyIiA7OwotKwkgICAg ZXNhYwotKwkgIGZpCi0rCSAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICBjb250aW51 ZQotKwkgIDs7Ci0rCSoubGEpCi0rCSAgZnVuY19yZXNvbHZlX3N5c3Jvb3QgIiRkZXBsaWIiCi0r CSAgbGliPSRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQKLSsJICA7OwotKwkqLiRsaWJleHQp Ci0rCSAgaWYgdGVzdCAiJHBhc3MiID0gY29udjsgdGhlbgotKwkgICAgZGVwbGlicz0iJGRlcGxp YiAkZGVwbGlicyIKLSsJICAgIGNvbnRpbnVlCi0rCSAgZmkKLSsJICBjYXNlICRsaW5rbW9kZSBp bgotKwkgIGxpYikKLSsJICAgICMgTGlua2luZyBjb252ZW5pZW5jZSBtb2R1bGVzIGludG8gc2hh cmVkIGxpYnJhcmllcyBpcyBhbGxvd2VkLAotKwkgICAgIyBidXQgbGlua2luZyBvdGhlciBzdGF0 aWMgbGlicmFyaWVzIGlzIG5vbi1wb3J0YWJsZS4KLSsJICAgIGNhc2UgIiAkZGxwcmVjb252ZW5p ZW5jZWxpYnMgIiBpbgotKwkgICAgKiIgJGRlcGxpYiAiKikgOzsKLSsJICAgICopCi0rCSAgICAg IHZhbGlkX2FfbGliPW5vCi0rCSAgICAgIGNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0r CQltYXRjaF9wYXR0ZXJuKikKLSsJCSAgc2V0IGR1bW15ICRkZXBsaWJzX2NoZWNrX21ldGhvZDsg c2hpZnQKLSsJCSAgbWF0Y2hfcGF0dGVybl9yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0 aG9kIiA6ICIkMSBcKC4qXCkiYAotKwkJICBpZiBldmFsICJcJEVDSE8gXCIkZGVwbGliXCIiIDI+ L2Rldi9udWxsIHwgJFNFRCAxMHEgXAotKwkJICAgIHwgJEVHUkVQICIkbWF0Y2hfcGF0dGVybl9y ZWdleCIgPiAvZGV2L251bGw7IHRoZW4KLSsJCSAgICB2YWxpZF9hX2xpYj15ZXMKLSsJCSAgZmkK LSsJCTs7Ci0rCQlwYXNzX2FsbCkKLSsJCSAgdmFsaWRfYV9saWI9eWVzCi0rCQk7OwotKwkgICAg ICBlc2FjCi0rCSAgICAgIGlmIHRlc3QgIiR2YWxpZF9hX2xpYiIgIT0geWVzOyB0aGVuCi0rCQll Y2hvCi0rCQkkRUNITyAiKioqIFdhcm5pbmc6IFRyeWluZyB0byBsaW5rIHdpdGggc3RhdGljIGxp YiBhcmNoaXZlICRkZXBsaWIuIgotKwkJZWNobyAiKioqIEkgaGF2ZSB0aGUgY2FwYWJpbGl0eSB0 byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIKLSsJCWVjaG8g IioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4gb25seSBkbyB0aGlzIGlm IHlvdSBoYXZlIGEiCi0rCQllY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2YgdGhlIGxpYnJhcnks IHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0rCQllY2hvICIqKiogYmVjYXVzZSB0 aGUgZmlsZSBleHRlbnNpb25zIC4kbGliZXh0IG9mIHRoaXMgYXJndW1lbnQgbWFrZXMgbWUgYmVs aWV2ZSIKLSsJCWVjaG8gIioqKiB0aGF0IGl0IGlzIGp1c3QgYSBzdGF0aWMgYXJjaGl2ZSB0aGF0 IEkgc2hvdWxkIG5vdCB1c2UgaGVyZS4iCi0rCSAgICAgIGVsc2UKLSsJCWVjaG8KLSsJCSRFQ0hP ICIqKiogV2FybmluZzogTGlua2luZyB0aGUgc2hhcmVkIGxpYnJhcnkgJG91dHB1dCBhZ2FpbnN0 IHRoZSIKLSsJCSRFQ0hPICIqKiogc3RhdGljIGxpYnJhcnkgJGRlcGxpYiBpcyBub3QgcG9ydGFi bGUhIgotKwkJZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgICAgZmkKLSsJICAgICAg OzsKLSsJICAgIGVzYWMKLSsJICAgIGNvbnRpbnVlCi0rCSAgICA7OwotKwkgIHByb2cpCi0rCSAg ICBpZiB0ZXN0ICIkcGFzcyIgIT0gbGluazsgdGhlbgotKwkgICAgICBkZXBsaWJzPSIkZGVwbGli ICRkZXBsaWJzIgotKwkgICAgZWxzZQotKwkgICAgICBjb21waWxlX2RlcGxpYnM9IiRkZXBsaWIg JGNvbXBpbGVfZGVwbGlicyIKLSsJICAgICAgZmluYWxpemVfZGVwbGlicz0iJGRlcGxpYiAkZmlu YWxpemVfZGVwbGlicyIKLSsJICAgIGZpCi0rCSAgICBjb250aW51ZQotKwkgICAgOzsKLSsJICBl c2FjICMgbGlua21vZGUKLSsJICA7OyAjICouJGxpYmV4dAotKwkqLmxvIHwgKi4kb2JqZXh0KQot KwkgIGlmIHRlc3QgIiRwYXNzIiA9IGNvbnY7IHRoZW4KLSsJICAgIGRlcGxpYnM9IiRkZXBsaWIg JGRlcGxpYnMiCi0rCSAgZWxpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZzsgdGhlbgotKwkgICAg aWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuIHx8IHRlc3QgIiRkbG9wZW5fc3VwcG9ydCIgIT0g eWVzIHx8IHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0gbm87IHRoZW4KLSsJICAgICAgIyBJ ZiB0aGVyZSBpcyBubyBkbG9wZW4gc3VwcG9ydCBvciB3ZSdyZSBsaW5raW5nIHN0YXRpY2FsbHks Ci0rCSAgICAgICMgd2UgbmVlZCB0byBwcmVsb2FkLgotKwkgICAgICBmdW5jX2FwcGVuZCBuZXdk bHByZWZpbGVzICIgJGRlcGxpYiIKLSsJICAgICAgY29tcGlsZV9kZXBsaWJzPSIkZGVwbGliICRj b21waWxlX2RlcGxpYnMiCi0rCSAgICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkZXBsaWIgJGZpbmFs aXplX2RlcGxpYnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIGZ1bmNfYXBwZW5kIG5ld2RsZmlsZXMg IiAkZGVwbGliIgotKwkgICAgZmkKLSsJICBmaQotKwkgIGNvbnRpbnVlCi0rCSAgOzsKLSsJJURF UExJQlMlKQotKwkgIGFsbGRlcGxpYnM9eWVzCi0rCSAgY29udGludWUKLSsJICA7OwotKwllc2Fj ICMgY2FzZSAkZGVwbGliCi0rCi0rCWlmIHRlc3QgIiRmb3VuZCIgPSB5ZXMgfHwgdGVzdCAtZiAi JGxpYiI7IHRoZW4gOgotKwllbHNlCi0rCSAgZnVuY19mYXRhbF9lcnJvciAiY2Fubm90IGZpbmQg dGhlIGxpYnJhcnkgXGAkbGliJyBvciB1bmhhbmRsZWQgYXJndW1lbnQgXGAkZGVwbGliJyIKLSsJ ZmkKLSsKLSsJIyBDaGVjayB0byBzZWUgdGhhdCB0aGlzIHJlYWxseSBpcyBhIGxpYnRvb2wgYXJj aGl2ZS4KLSsJZnVuY19sYWxpYl91bnNhZmVfcCAiJGxpYiIgXAotKwkgIHx8IGZ1bmNfZmF0YWxf ZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgotKwotKwlmdW5j X2Rpcm5hbWUgIiRsaWIiICIiICIuIgotKwlsYWRpcj0iJGZ1bmNfZGlybmFtZV9yZXN1bHQiCi0r Ci0rCWRsbmFtZT0KLSsJZGxvcGVuPQotKwlkbHByZW9wZW49Ci0rCWxpYmRpcj0KLSsJbGlicmFy eV9uYW1lcz0KLSsJb2xkX2xpYnJhcnk9Ci0rCWluaGVyaXRlZF9saW5rZXJfZmxhZ3M9Ci0rCSMg SWYgdGhlIGxpYnJhcnkgd2FzIGluc3RhbGxlZCB3aXRoIGFuIG9sZCByZWxlYXNlIG9mIGxpYnRv b2wsCi0rCSMgaXQgd2lsbCBub3QgcmVkZWZpbmUgdmFyaWFibGVzIGluc3RhbGxlZCwgb3Igc2hv dWxkbm90bGluawotKwlpbnN0YWxsZWQ9eWVzCi0rCXNob3VsZG5vdGxpbms9bm8KLSsJYXZvaWR0 ZW1wcnBhdGg9Ci0rCi0rCi0rCSMgUmVhZCB0aGUgLmxhIGZpbGUKLSsJZnVuY19zb3VyY2UgIiRs aWIiCi0rCi0rCSMgQ29udmVydCAiLWZyYW1ld29yayBmb28iIHRvICJmb28ubHRmcmFtZXdvcmsi Ci0rCWlmIHRlc3QgLW4gIiRpbmhlcml0ZWRfbGlua2VyX2ZsYWdzIjsgdGhlbgotKwkgIHRtcF9p bmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiJGluaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwg JFNFRCAncy8tZnJhbWV3b3JrIFwoW14gJF0qXCkvXDEubHRmcmFtZXdvcmsvZydgCi0rCSAgZm9y IHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWcgaW4gJHRtcF9pbmhlcml0ZWRfbGlua2VyX2ZsYWdz OyBkbwotKwkgICAgY2FzZSAiICRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiIGluCi0rCSAg ICAgICoiICR0bXBfaW5oZXJpdGVkX2xpbmtlcl9mbGFnICIqKSA7OwotKwkgICAgICAqKSBmdW5j X2FwcGVuZCBuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncyAiICR0bXBfaW5oZXJpdGVkX2xpbmtl cl9mbGFnIjs7Ci0rCSAgICBlc2FjCi0rCSAgZG9uZQotKwlmaQotKwlkZXBlbmRlbmN5X2xpYnM9 YCRFQ0hPICIgJGRlcGVuZGVuY3lfbGlicyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3 b3JrJSAtZnJhbWV3b3JrIFwxJWcnYAotKwlpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gImxp YixsaW5rIiB8fAotKwkgICB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csc2NhbiIgfHwK LSsJICAgeyB0ZXN0ICIkbGlua21vZGUiICE9IHByb2cgJiYgdGVzdCAiJGxpbmttb2RlIiAhPSBs aWI7IH07IHRoZW4KLSsJICB0ZXN0IC1uICIkZGxvcGVuIiAmJiBmdW5jX2FwcGVuZCBkbGZpbGVz ICIgJGRsb3BlbiIKLSsJICB0ZXN0IC1uICIkZGxwcmVvcGVuIiAmJiBmdW5jX2FwcGVuZCBkbHBy ZWZpbGVzICIgJGRscHJlb3BlbiIKLSsJZmkKLSsKLSsJaWYgdGVzdCAiJHBhc3MiID0gY29udjsg dGhlbgotKwkgICMgT25seSBjaGVjayBmb3IgY29udmVuaWVuY2UgbGlicmFyaWVzCi0rCSAgZGVw bGlicz0iJGxpYiAkZGVwbGlicyIKLSsJICBpZiB0ZXN0IC16ICIkbGliZGlyIjsgdGhlbgotKwkg ICAgaWYgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgdGhlbgotKwkgICAgICBmdW5jX2ZhdGFsX2Vy cm9yICJjYW5ub3QgZmluZCBuYW1lIG9mIGxpbmsgbGlicmFyeSBmb3IgXGAkbGliJyIKLSsJICAg IGZpCi0rCSAgICAjIEl0IGlzIGEgbGlidG9vbCBjb252ZW5pZW5jZSBsaWJyYXJ5LCBzbyBhZGQg aW4gaXRzIG9iamVjdHMuCi0rCSAgICBmdW5jX2FwcGVuZCBjb252ZW5pZW5jZSAiICRsYWRpci8k b2JqZGlyLyRvbGRfbGlicmFyeSIKLSsJICAgIGZ1bmNfYXBwZW5kIG9sZF9jb252ZW5pZW5jZSAi ICRsYWRpci8kb2JqZGlyLyRvbGRfbGlicmFyeSIKLSsJICBlbGlmIHRlc3QgIiRsaW5rbW9kZSIg IT0gcHJvZyAmJiB0ZXN0ICIkbGlua21vZGUiICE9IGxpYjsgdGhlbgotKwkgICAgZnVuY19mYXRh bF9lcnJvciAiXGAkbGliJyBpcyBub3QgYSBjb252ZW5pZW5jZSBsaWJyYXJ5IgotKwkgIGZpCi0r CSAgdG1wX2xpYnM9Ci0rCSAgZm9yIGRlcGxpYiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKwkg ICAgZGVwbGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJICAgIGlmICRvcHRfcHJlc2VydmVfZHVw X2RlcHMgOyB0aGVuCi0rCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCi0rCSAgICAgICoiICRk ZXBsaWIgIiopIGZ1bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJGRlcGxpYiIgOzsKLSsJICAg ICAgZXNhYwotKwkgICAgZmkKLSsJICAgIGZ1bmNfYXBwZW5kIHRtcF9saWJzICIgJGRlcGxpYiIK LSsJICBkb25lCi0rCSAgY29udGludWUKLSsJZmkgIyAkcGFzcyA9IGNvbnYKLSsKLSsKLSsJIyBH ZXQgdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgd2UgbGluayBhZ2FpbnN0LgotKwlsaW5rbGliPQot KwlpZiB0ZXN0IC1uICIkb2xkX2xpYnJhcnkiICYmCi0rCSAgIHsgdGVzdCAiJHByZWZlcl9zdGF0 aWNfbGlicyIgPSB5ZXMgfHwKLSsJICAgICB0ZXN0ICIkcHJlZmVyX3N0YXRpY19saWJzLCRpbnN0 YWxsZWQiID0gImJ1aWx0LG5vIjsgfTsgdGhlbgotKwkgIGxpbmtsaWI9JG9sZF9saWJyYXJ5Ci0r CWVsc2UKLSsJICBmb3IgbCBpbiAkb2xkX2xpYnJhcnkgJGxpYnJhcnlfbmFtZXM7IGRvCi0rCSAg ICBsaW5rbGliPSIkbCIKLSsJICBkb25lCi0rCWZpCi0rCWlmIHRlc3QgLXogIiRsaW5rbGliIjsg dGhlbgotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCBmaW5kIG5hbWUgb2YgbGluayBsaWJy YXJ5IGZvciBcYCRsaWInIgotKwlmaQotKwotKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVk IHdpdGggLWRsb3Blbi4KLSsJaWYgdGVzdCAiJHBhc3MiID0gZGxvcGVuOyB0aGVuCi0rCSAgaWYg dGVzdCAteiAiJGxpYmRpciI7IHRoZW4KLSsJICAgIGZ1bmNfZmF0YWxfZXJyb3IgImNhbm5vdCAt ZGxvcGVuIGEgY29udmVuaWVuY2UgbGlicmFyeTogXGAkbGliJyIKLSsJICBmaQotKwkgIGlmIHRl c3QgLXogIiRkbG5hbWUiIHx8Ci0rCSAgICAgdGVzdCAiJGRsb3Blbl9zdXBwb3J0IiAhPSB5ZXMg fHwKLSsJICAgICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IG5vOyB0aGVuCi0rCSAgICAj IElmIHRoZXJlIGlzIG5vIGRsbmFtZSwgbm8gZGxvcGVuIHN1cHBvcnQgb3Igd2UncmUgbGlua2lu ZwotKwkgICAgIyBzdGF0aWNhbGx5LCB3ZSBuZWVkIHRvIHByZWxvYWQuICBXZSBhbHNvIG5lZWQg dG8gcHJlbG9hZCBhbnkKLSsJICAgICMgZGVwZW5kZW50IGxpYnJhcmllcyBzbyBsaWJsdGRsJ3Mg ZGVwbGliIHByZWxvYWRlciBkb2Vzbid0Ci0rCSAgICAjIGJvbWIgb3V0IGluIHRoZSBsb2FkIGRl cGxpYnMgcGhhc2UuCi0rCSAgICBmdW5jX2FwcGVuZCBkbHByZWZpbGVzICIgJGxpYiAkZGVwZW5k ZW5jeV9saWJzIgotKwkgIGVsc2UKLSsJICAgIGZ1bmNfYXBwZW5kIG5ld2RsZmlsZXMgIiAkbGli IgotKwkgIGZpCi0rCSAgY29udGludWUKLSsJZmkgIyAkcGFzcyA9IGRsb3BlbgotKwotKwkjIFdl IG5lZWQgYW4gYWJzb2x1dGUgcGF0aC4KLSsJY2FzZSAkbGFkaXIgaW4KLSsJW1xcL10qIHwgW0Et WmEtel06W1xcL10qKSBhYnNfbGFkaXI9IiRsYWRpciIgOzsKLSsJKikKLSsJICBhYnNfbGFkaXI9 YGNkICIkbGFkaXIiICYmIHB3ZGAKLSsJICBpZiB0ZXN0IC16ICIkYWJzX2xhZGlyIjsgdGhlbgot KwkgICAgZnVuY193YXJuaW5nICJjYW5ub3QgZGV0ZXJtaW5lIGFic29sdXRlIGRpcmVjdG9yeSBu YW1lIG9mIFxgJGxhZGlyJyIKLSsJICAgIGZ1bmNfd2FybmluZyAicGFzc2luZyBpdCBsaXRlcmFs bHkgdG8gdGhlIGxpbmtlciwgYWx0aG91Z2ggaXQgbWlnaHQgZmFpbCIKLSsJICAgIGFic19sYWRp cj0iJGxhZGlyIgotKwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKwlmdW5jX2Jhc2VuYW1lICIkbGli IgotKwlsYW5hbWU9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsKLSsJIyBGaW5kIHRoZSByZWxl dmFudCBvYmplY3QgZGlyZWN0b3J5IGFuZCBsaWJyYXJ5IG5hbWUuCi0rCWlmIHRlc3QgIlgkaW5z dGFsbGVkIiA9IFh5ZXM7IHRoZW4KLSsJICBpZiB0ZXN0ICEgLWYgIiRsdF9zeXNyb290JGxpYmRp ci8kbGlua2xpYiIgJiYgdGVzdCAtZiAiJGFic19sYWRpci8kbGlua2xpYiI7IHRoZW4KLSsJICAg IGZ1bmNfd2FybmluZyAibGlicmFyeSBcYCRsaWInIHdhcyBtb3ZlZC4iCi0rCSAgICBkaXI9IiRs YWRpciIKLSsJICAgIGFic2Rpcj0iJGFic19sYWRpciIKLSsJICAgIGxpYmRpcj0iJGFic19sYWRp ciIKLSsJICBlbHNlCi0rCSAgICBkaXI9IiRsdF9zeXNyb290JGxpYmRpciIKLSsJICAgIGFic2Rp cj0iJGx0X3N5c3Jvb3QkbGliZGlyIgotKwkgIGZpCi0rCSAgdGVzdCAiWCRoYXJkY29kZV9hdXRv bWF0aWMiID0gWHllcyAmJiBhdm9pZHRlbXBycGF0aD15ZXMKLSsJZWxzZQotKwkgIGlmIHRlc3Qg ISAtZiAiJGxhZGlyLyRvYmpkaXIvJGxpbmtsaWIiICYmIHRlc3QgLWYgIiRhYnNfbGFkaXIvJGxp bmtsaWIiOyB0aGVuCi0rCSAgICBkaXI9IiRsYWRpciIKLSsJICAgIGFic2Rpcj0iJGFic19sYWRp ciIKLSsJICAgICMgUmVtb3ZlIHRoaXMgc2VhcmNoIHBhdGggbGF0ZXIKLSsJICAgIGZ1bmNfYXBw ZW5kIG5vdGluc3RfcGF0aCAiICRhYnNfbGFkaXIiCi0rCSAgZWxzZQotKwkgICAgZGlyPSIkbGFk aXIvJG9iamRpciIKLSsJICAgIGFic2Rpcj0iJGFic19sYWRpci8kb2JqZGlyIgotKwkgICAgIyBS ZW1vdmUgdGhpcyBzZWFyY2ggcGF0aCBsYXRlcgotKwkgICAgZnVuY19hcHBlbmQgbm90aW5zdF9w YXRoICIgJGFic19sYWRpciIKLSsJICBmaQotKwlmaSAjICRpbnN0YWxsZWQgPSB5ZXMKLSsJZnVu Y19zdHJpcG5hbWUgJ2xpYicgJy5sYScgIiRsYW5hbWUiCi0rCW5hbWU9JGZ1bmNfc3RyaXBuYW1l X3Jlc3VsdAotKwotKwkjIFRoaXMgbGlicmFyeSB3YXMgc3BlY2lmaWVkIHdpdGggLWRscHJlb3Bl bi4KLSsJaWYgdGVzdCAiJHBhc3MiID0gZGxwcmVvcGVuOyB0aGVuCi0rCSAgaWYgdGVzdCAteiAi JGxpYmRpciIgJiYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJICAgIGZ1bmNfZmF0 YWxfZXJyb3IgIm9ubHkgbGlicmFyaWVzIG1heSAtZGxwcmVvcGVuIGEgY29udmVuaWVuY2UgbGli cmFyeTogXGAkbGliJyIKLSsJICBmaQotKwkgIGNhc2UgIiRob3N0IiBpbgotKwkgICAgIyBzcGVj aWFsIGhhbmRsaW5nIGZvciBwbGF0Zm9ybXMgd2l0aCBQRS1ETExzLgotKwkgICAgKmN5Z3dpbiog fCAqbWluZ3cqIHwgKmNlZ2NjKiApCi0rCSAgICAgICMgTGlua2VyIHdpbGwgYXV0b21hdGljYWxs eSBsaW5rIGFnYWluc3Qgc2hhcmVkIGxpYnJhcnkgaWYgYm90aAotKwkgICAgICAjIHN0YXRpYyBh bmQgc2hhcmVkIGFyZSBwcmVzZW50LiAgVGhlcmVmb3JlLCBlbnN1cmUgd2UgZXh0cmFjdAotKwkg ICAgICAjIHN5bWJvbHMgZnJvbSB0aGUgaW1wb3J0IGxpYnJhcnkgaWYgYSBzaGFyZWQgbGlicmFy eSBpcyBwcmVzZW50Ci0rCSAgICAgICMgKG90aGVyd2lzZSwgdGhlIGRsb3BlbiBtb2R1bGUgbmFt ZSB3aWxsIGJlIGluY29ycmVjdCkuICBXZSBkbwotKwkgICAgICAjIHRoaXMgYnkgcHV0dGluZyB0 aGUgaW1wb3J0IGxpYnJhcnkgbmFtZSBpbnRvICRuZXdkbHByZWZpbGVzLgotKwkgICAgICAjIFdl IHJlY292ZXIgdGhlIGRsb3BlbiBtb2R1bGUgbmFtZSBieSAnc2F2aW5nJyB0aGUgbGEgZmlsZQot KwkgICAgICAjIG5hbWUgaW4gYSBzcGVjaWFsIHB1cnBvc2UgdmFyaWFibGUsIGFuZCAobGF0ZXIp IGV4dHJhY3RpbmcgdGhlCi0rCSAgICAgICMgZGxuYW1lIGZyb20gdGhlIGxhIGZpbGUuCi0rCSAg ICAgIGlmIHRlc3QgLW4gIiRkbG5hbWUiOyB0aGVuCi0rCSAgICAgICAgZnVuY190cl9zaCAiJGRp ci8kbGlua2xpYiIKLSsJICAgICAgICBldmFsICJsaWJmaWxlXyRmdW5jX3RyX3NoX3Jlc3VsdD1c JGFic19sYWRpci9cJGxhbmFtZSIKLSsJICAgICAgICBmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVz ICIgJGRpci8kbGlua2xpYiIKLSsJICAgICAgZWxzZQotKwkgICAgICAgIGZ1bmNfYXBwZW5kIG5l d2RscHJlZmlsZXMgIiAkZGlyLyRvbGRfbGlicmFyeSIKLSsJICAgICAgICAjIEtlZXAgYSBsaXN0 IG9mIHByZW9wZW5lZCBjb252ZW5pZW5jZSBsaWJyYXJpZXMgdG8gY2hlY2sKLSsJICAgICAgICAj IHRoYXQgdGhleSBhcmUgYmVpbmcgdXNlZCBjb3JyZWN0bHkgaW4gdGhlIGxpbmsgcGFzcy4KLSsJ ICAgICAgICB0ZXN0IC16ICIkbGliZGlyIiAmJiBcCi0rCSAgICAgICAgICBmdW5jX2FwcGVuZCBk bHByZWNvbnZlbmllbmNlbGlicyAiICRkaXIvJG9sZF9saWJyYXJ5IgotKwkgICAgICBmaQotKwkg ICAgOzsKLSsJICAgICogKQotKwkgICAgICAjIFByZWZlciB1c2luZyBhIHN0YXRpYyBsaWJyYXJ5 IChzbyB0aGF0IG5vIHNpbGx5IF9EWU5BTUlDIHN5bWJvbHMKLSsJICAgICAgIyBhcmUgcmVxdWly ZWQgdG8gbGluaykuCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRoZW4KLSsJ ICAgICAgICBmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVzICIgJGRpci8kb2xkX2xpYnJhcnkiCi0r CSAgICAgICAgIyBLZWVwIGEgbGlzdCBvZiBwcmVvcGVuZWQgY29udmVuaWVuY2UgbGlicmFyaWVz IHRvIGNoZWNrCi0rCSAgICAgICAgIyB0aGF0IHRoZXkgYXJlIGJlaW5nIHVzZWQgY29ycmVjdGx5 IGluIHRoZSBsaW5rIHBhc3MuCi0rCSAgICAgICAgdGVzdCAteiAiJGxpYmRpciIgJiYgXAotKwkg ICAgICAgICAgZnVuY19hcHBlbmQgZGxwcmVjb252ZW5pZW5jZWxpYnMgIiAkZGlyLyRvbGRfbGli cmFyeSIKLSsJICAgICAgIyBPdGhlcndpc2UsIHVzZSB0aGUgZGxuYW1lLCBzbyB0aGF0IGx0X2Rs b3BlbiBmaW5kcyBpdC4KLSsJICAgICAgZWxpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgotKwkg ICAgICAgIGZ1bmNfYXBwZW5kIG5ld2RscHJlZmlsZXMgIiAkZGlyLyRkbG5hbWUiCi0rCSAgICAg IGVsc2UKLSsJICAgICAgICBmdW5jX2FwcGVuZCBuZXdkbHByZWZpbGVzICIgJGRpci8kbGlua2xp YiIKLSsJICAgICAgZmkKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlmaSAjICRwYXNzID0gZGxwcmVv cGVuCi0rCi0rCWlmIHRlc3QgLXogIiRsaWJkaXIiOyB0aGVuCi0rCSAgIyBMaW5rIHRoZSBjb252 ZW5pZW5jZSBsaWJyYXJ5Ci0rCSAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgotKwkg ICAgZGVwbGlicz0iJGRpci8kb2xkX2xpYnJhcnkgJGRlcGxpYnMiCi0rCSAgZWxpZiB0ZXN0ICIk bGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJICAgIGNvbXBpbGVfZGVwbGli cz0iJGRpci8kb2xkX2xpYnJhcnkgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAgIGZpbmFsaXplX2Rl cGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRmaW5hbGl6ZV9kZXBsaWJzIgotKwkgIGVsc2UKLSsJ ICAgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiICMgdXNlZCBmb3IgcHJvZyxzY2FuIHBhc3MKLSsJ ICBmaQotKwkgIGNvbnRpbnVlCi0rCWZpCi0rCi0rCi0rCWlmIHRlc3QgIiRsaW5rbW9kZSIgPSBw cm9nICYmIHRlc3QgIiRwYXNzIiAhPSBsaW5rOyB0aGVuCi0rCSAgZnVuY19hcHBlbmQgbmV3bGli X3NlYXJjaF9wYXRoICIgJGxhZGlyIgotKwkgIGRlcGxpYnM9IiRsaWIgJGRlcGxpYnMiCi0rCi0r CSAgbGlua2FsbGRlcGxpYnM9bm8KLSsJICBpZiB0ZXN0ICIkbGlua19hbGxfZGVwbGlicyIgIT0g bm8gfHwgdGVzdCAteiAiJGxpYnJhcnlfbmFtZXMiIHx8Ci0rCSAgICAgdGVzdCAiJGJ1aWxkX2xp YnRvb2xfbGlicyIgPSBubzsgdGhlbgotKwkgICAgbGlua2FsbGRlcGxpYnM9eWVzCi0rCSAgZmkK LSsKLSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVwbGliIGluICRkZXBlbmRlbmN5X2xpYnM7IGRv Ci0rCSAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAgIC1MKikgZnVuY19zdHJpcG5hbWUgJy1MJyAn JyAiJGRlcGxpYiIKLSsJICAgICAgICAgZnVuY19yZXNvbHZlX3N5c3Jvb3QgIiRmdW5jX3N0cmlw bmFtZV9yZXN1bHQiCi0rCSAgICAgICAgIGZ1bmNfYXBwZW5kIG5ld2xpYl9zZWFyY2hfcGF0aCAi ICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCi0rCQkgOzsKLSsJICAgIGVzYWMKLSsJICAg ICMgTmVlZCB0byBsaW5rIGFnYWluc3QgYWxsIGRlcGVuZGVuY3lfbGlicz8KLSsJICAgIGlmIHRl c3QgIiRsaW5rYWxsZGVwbGlicyIgPSB5ZXM7IHRoZW4KLSsJICAgICAgZGVwbGlicz0iJGRlcGxp YiAkZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgIyBOZWVkIHRvIGhhcmRjb2RlIHNoYXJl ZCBsaWJyYXJ5IHBhdGhzCi0rCSAgICAgICMgb3IvYW5kIGxpbmsgYWdhaW5zdCBzdGF0aWMgbGli cmFyaWVzCi0rCSAgICAgIG5ld2RlcGVuZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5j eV9saWJzIgotKwkgICAgZmkKLSsJICAgIGlmICRvcHRfcHJlc2VydmVfZHVwX2RlcHMgOyB0aGVu Ci0rCSAgICAgIGNhc2UgIiR0bXBfbGlicyAiIGluCi0rCSAgICAgICoiICRkZXBsaWIgIiopIGZ1 bmNfYXBwZW5kIHNwZWNpYWxkZXBsaWJzICIgJGRlcGxpYiIgOzsKLSsJICAgICAgZXNhYwotKwkg ICAgZmkKLSsJICAgIGZ1bmNfYXBwZW5kIHRtcF9saWJzICIgJGRlcGxpYiIKLSsJICBkb25lICMg Zm9yIGRlcGxpYgotKwkgIGNvbnRpbnVlCi0rCWZpICMgJGxpbmttb2RlID0gcHJvZy4uLgotKwot KwlpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiID0gInByb2csbGluayI7IHRoZW4KLSsJICBpZiB0 ZXN0IC1uICIkbGlicmFyeV9uYW1lcyIgJiYKLSsJICAgICB7IHsgdGVzdCAiJHByZWZlcl9zdGF0 aWNfbGlicyIgPSBubyB8fAotKwkgICAgICAgICB0ZXN0ICIkcHJlZmVyX3N0YXRpY19saWJzLCRp bnN0YWxsZWQiID0gImJ1aWx0LHllcyI7IH0gfHwKLSsJICAgICAgIHRlc3QgLXogIiRvbGRfbGli cmFyeSI7IH07IHRoZW4KLSsJICAgICMgV2UgbmVlZCB0byBoYXJkY29kZSB0aGUgbGlicmFyeSBw YXRoCi0rCSAgICBpZiB0ZXN0IC1uICIkc2hsaWJwYXRoX3ZhciIgJiYgdGVzdCAteiAiJGF2b2lk dGVtcHJwYXRoIiA7IHRoZW4KLSsJICAgICAgIyBNYWtlIHN1cmUgdGhlIHJwYXRoIGNvbnRhaW5z IG9ubHkgdW5pcXVlIGRpcmVjdG9yaWVzLgotKwkgICAgICBjYXNlICIkdGVtcF9ycGF0aDoiIGlu Ci0rCSAgICAgICoiJGFic2RpcjoiKikgOzsKLSsJICAgICAgKikgZnVuY19hcHBlbmQgdGVtcF9y cGF0aCAiJGFic2RpcjoiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCi0rCSAgICAjIEhh cmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGguCi0rCSAgICAjIFNraXAgZGlyZWN0b3JpZXMgdGhhdCBh cmUgaW4gdGhlIHN5c3RlbSBkZWZhdWx0IHJ1bi10aW1lCi0rCSAgICAjIHNlYXJjaCBwYXRoLgot KwkgICAgY2FzZSAiICRzeXNfbGliX2Rsc2VhcmNoX3BhdGggIiBpbgotKwkgICAgKiIgJGFic2Rp ciAiKikgOzsKLSsJICAgICopCi0rCSAgICAgIGNhc2UgIiRjb21waWxlX3JwYXRoICIgaW4KLSsJ ICAgICAgKiIgJGFic2RpciAiKikgOzsKLSsJICAgICAgKikgZnVuY19hcHBlbmQgY29tcGlsZV9y cGF0aCAiICRhYnNkaXIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJICAgIGVzYWMK LSsJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJICAgICoiICRsaWJk aXIgIiopIDs7Ci0rCSAgICAqKQotKwkgICAgICBjYXNlICIkZmluYWxpemVfcnBhdGggIiBpbgot KwkgICAgICAqIiAkbGliZGlyICIqKSA7OwotKwkgICAgICAqKSBmdW5jX2FwcGVuZCBmaW5hbGl6 ZV9ycGF0aCAiICRsaWJkaXIiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgICAgOzsKLSsJICAgIGVz YWMKLSsJICBmaSAjICRsaW5rbW9kZSwkcGFzcyA9IHByb2csbGluay4uLgotKwotKwkgIGlmIHRl c3QgIiRhbGxkZXBsaWJzIiA9IHllcyAmJgotKwkgICAgIHsgdGVzdCAiJGRlcGxpYnNfY2hlY2tf bWV0aG9kIiA9IHBhc3NfYWxsIHx8Ci0rCSAgICAgICB7IHRlc3QgIiRidWlsZF9saWJ0b29sX2xp YnMiID0geWVzICYmCi0rCQkgdGVzdCAtbiAiJGxpYnJhcnlfbmFtZXMiOyB9OyB9OyB0aGVuCi0r CSAgICAjIFdlIG9ubHkgbmVlZCB0byBzZWFyY2ggZm9yIHN0YXRpYyBsaWJyYXJpZXMKLSsJICAg IGNvbnRpbnVlCi0rCSAgZmkKLSsJZmkKLSsKLSsJbGlua19zdGF0aWM9bm8gIyBXaGV0aGVyIHRo ZSBkZXBsaWIgd2lsbCBiZSBsaW5rZWQgc3RhdGljYWxseQotKwl1c2Vfc3RhdGljX2xpYnM9JHBy ZWZlcl9zdGF0aWNfbGlicwotKwlpZiB0ZXN0ICIkdXNlX3N0YXRpY19saWJzIiA9IGJ1aWx0ICYm IHRlc3QgIiRpbnN0YWxsZWQiID0geWVzOyB0aGVuCi0rCSAgdXNlX3N0YXRpY19saWJzPW5vCi0r CWZpCi0rCWlmIHRlc3QgLW4gIiRsaWJyYXJ5X25hbWVzIiAmJgotKwkgICB7IHRlc3QgIiR1c2Vf c3RhdGljX2xpYnMiID0gbm8gfHwgdGVzdCAteiAiJG9sZF9saWJyYXJ5IjsgfTsgdGhlbgotKwkg IGNhc2UgJGhvc3QgaW4KLSsJICAqY3lnd2luKiB8ICptaW5ndyogfCAqY2VnY2MqKQotKwkgICAg ICAjIE5vIHBvaW50IGluIHJlbGlua2luZyBETExzIGJlY2F1c2UgcGF0aHMgYXJlIG5vdCBlbmNv ZGVkCi0rCSAgICAgIGZ1bmNfYXBwZW5kIG5vdGluc3RfZGVwbGlicyAiICRsaWIiCi0rCSAgICAg IG5lZWRfcmVsaW5rPW5vCi0rCSAgICA7OwotKwkgICopCi0rCSAgICBpZiB0ZXN0ICIkaW5zdGFs bGVkIiA9IG5vOyB0aGVuCi0rCSAgICAgIGZ1bmNfYXBwZW5kIG5vdGluc3RfZGVwbGlicyAiICRs aWIiCi0rCSAgICAgIG5lZWRfcmVsaW5rPXllcwotKwkgICAgZmkKLSsJICAgIDs7Ci0rCSAgZXNh YwotKwkgICMgVGhpcyBpcyBhIHNoYXJlZCBsaWJyYXJ5Ci0rCi0rCSAgIyBXYXJuIGFib3V0IHBv cnRhYmlsaXR5LCBjYW4ndCBsaW5rIGFnYWluc3QgLW1vZHVsZSdzIG9uIHNvbWUKLSsJICAjIHN5 c3RlbXMgKGRhcndpbikuICBEb24ndCBibGVhdCBhYm91dCBkbG9wZW5lZCBtb2R1bGVzIHRob3Vn aCEKLSsJICBkbG9wZW5tb2R1bGU9IiIKLSsJICBmb3IgZGxwcmVtb2R1bGV0ZXN0IGluICRkbHBy ZWZpbGVzOyBkbwotKwkgICAgaWYgdGVzdCAiWCRkbHByZW1vZHVsZXRlc3QiID0gIlgkbGliIjsg dGhlbgotKwkgICAgICBkbG9wZW5tb2R1bGU9IiRkbHByZW1vZHVsZXRlc3QiCi0rCSAgICAgIGJy ZWFrCi0rCSAgICBmaQotKwkgIGRvbmUKLSsJICBpZiB0ZXN0IC16ICIkZGxvcGVubW9kdWxlIiAm JiB0ZXN0ICIkc2hvdWxkbm90bGluayIgPSB5ZXMgJiYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhl bgotKwkgICAgZWNobwotKwkgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJ ICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBleGVjdXRhYmxlICRvdXRwdXQg YWdhaW5zdCB0aGUgbG9hZGFibGUgbW9kdWxlIgotKwkgICAgZWxzZQotKwkgICAgICAkRUNITyAi KioqIFdhcm5pbmc6IExpbmtpbmcgdGhlIHNoYXJlZCBsaWJyYXJ5ICRvdXRwdXQgYWdhaW5zdCB0 aGUgbG9hZGFibGUgbW9kdWxlIgotKwkgICAgZmkKLSsJICAgICRFQ0hPICIqKiogJGxpbmtsaWIg aXMgbm90IHBvcnRhYmxlISIKLSsJICBmaQotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBsaWIg JiYKLSsJICAgICB0ZXN0ICIkaGFyZGNvZGVfaW50b19saWJzIiA9IHllczsgdGhlbgotKwkgICAg IyBIYXJkY29kZSB0aGUgbGlicmFyeSBwYXRoLgotKwkgICAgIyBTa2lwIGRpcmVjdG9yaWVzIHRo YXQgYXJlIGluIHRoZSBzeXN0ZW0gZGVmYXVsdCBydW4tdGltZQotKwkgICAgIyBzZWFyY2ggcGF0 aC4KLSsJICAgIGNhc2UgIiAkc3lzX2xpYl9kbHNlYXJjaF9wYXRoICIgaW4KLSsJICAgICoiICRh YnNkaXIgIiopIDs7Ci0rCSAgICAqKQotKwkgICAgICBjYXNlICIkY29tcGlsZV9ycGF0aCAiIGlu Ci0rCSAgICAgICoiICRhYnNkaXIgIiopIDs7Ci0rCSAgICAgICopIGZ1bmNfYXBwZW5kIGNvbXBp bGVfcnBhdGggIiAkYWJzZGlyIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAgICBl c2FjCi0rCSAgICBjYXNlICIgJHN5c19saWJfZGxzZWFyY2hfcGF0aCAiIGluCi0rCSAgICAqIiAk bGliZGlyICIqKSA7OwotKwkgICAgKikKLSsJICAgICAgY2FzZSAiJGZpbmFsaXplX3JwYXRoICIg aW4KLSsJICAgICAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAgICAgKikgZnVuY19hcHBlbmQgZmlu YWxpemVfcnBhdGggIiAkbGliZGlyIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAg ICBlc2FjCi0rCSAgZmkKLSsKLSsJICBpZiB0ZXN0IC1uICIkb2xkX2FyY2hpdmVfZnJvbV9leHBz eW1zX2NtZHMiOyB0aGVuCi0rCSAgICAjIGZpZ3VyZSBvdXQgdGhlIHNvbmFtZQotKwkgICAgc2V0 IGR1bW15ICRsaWJyYXJ5X25hbWVzCi0rCSAgICBzaGlmdAotKwkgICAgcmVhbG5hbWU9IiQxIgot KwkgICAgc2hpZnQKLSsJICAgIGxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGlibmFtZV9zcGVj XCIiYAotKwkgICAgIyB1c2UgZGxuYW1lIGlmIHdlIGdvdCBpdC4gaXQncyBwZXJmZWN0bHkgZ29v ZCwgbm8/Ci0rCSAgICBpZiB0ZXN0IC1uICIkZGxuYW1lIjsgdGhlbgotKwkgICAgICBzb25hbWU9 IiRkbG5hbWUiCi0rCSAgICBlbGlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4KLSsJICAg ICAgIyBibGVoIHdpbmRvd3MKLSsJICAgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgICAqY3lnd2lu KiB8IG1pbmd3KiB8ICpjZWdjYyopCi0rCSAgICAgICAgZnVuY19hcml0aCAkY3VycmVudCAtICRh Z2UKLSsJCW1ham9yPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkJdmVyc3VmZml4PSItJG1ham9yIgot KwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBldmFsIHNvbmFtZT1cIiRzb25hbWVfc3BlY1wi Ci0rCSAgICBlbHNlCi0rCSAgICAgIHNvbmFtZT0iJHJlYWxuYW1lIgotKwkgICAgZmkKLSsKLSsJ ICAgICMgTWFrZSBhIG5ldyBuYW1lIGZvciB0aGUgZXh0cmFjdF9leHBzeW1zX2NtZHMgdG8gdXNl Ci0rCSAgICBzb3Jvb3Q9IiRzb25hbWUiCi0rCSAgICBmdW5jX2Jhc2VuYW1lICIkc29yb290Igot KwkgICAgc29uYW1lPSIkZnVuY19iYXNlbmFtZV9yZXN1bHQiCi0rCSAgICBmdW5jX3N0cmlwbmFt ZSAnbGliJyAnLmRsbCcgIiRzb25hbWUiCi0rCSAgICBuZXdsaWI9bGliaW1wLSRmdW5jX3N0cmlw bmFtZV9yZXN1bHQuYQotKwotKwkgICAgIyBJZiB0aGUgbGlicmFyeSBoYXMgbm8gZXhwb3J0IGxp c3QsIHRoZW4gY3JlYXRlIG9uZSBub3cKLSsJICAgIGlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGly LyRzb25hbWUtZGVmIjsgdGhlbiA6Ci0rCSAgICBlbHNlCi0rCSAgICAgIGZ1bmNfdmVyYm9zZSAi ZXh0cmFjdGluZyBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIFxgJHNvbmFtZSciCi0rCSAgICAg IGZ1bmNfZXhlY3V0ZV9jbWRzICIkZXh0cmFjdF9leHBzeW1zX2NtZHMiICdleGl0ICQ/JwotKwkg ICAgZmkKLSsKLSsJICAgICMgQ3JlYXRlICRuZXdsaWIKLSsJICAgIGlmIHRlc3QgLWYgIiRvdXRw dXRfb2JqZGlyLyRuZXdsaWIiOyB0aGVuIDo7IGVsc2UKLSsJICAgICAgZnVuY192ZXJib3NlICJn ZW5lcmF0aW5nIGltcG9ydCBsaWJyYXJ5IGZvciBcYCRzb25hbWUnIgotKwkgICAgICBmdW5jX2V4 ZWN1dGVfY21kcyAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIiAnZXhpdCAkPycKLSsJ ICAgIGZpCi0rCSAgICAjIG1ha2Ugc3VyZSB0aGUgbGlicmFyeSB2YXJpYWJsZXMgYXJlIHBvaW50 aW5nIHRvIHRoZSBuZXcgbGlicmFyeQotKwkgICAgZGlyPSRvdXRwdXRfb2JqZGlyCi0rCSAgICBs aW5rbGliPSRuZXdsaWIKLSsJICBmaSAjIHRlc3QgLW4gIiRvbGRfYXJjaGl2ZV9mcm9tX2V4cHN5 bXNfY21kcyIKLSsKLSsJICBpZiB0ZXN0ICIkbGlua21vZGUiID0gcHJvZyB8fCB0ZXN0ICIkb3B0 X21vZGUiICE9IHJlbGluazsgdGhlbgotKwkgICAgYWRkX3NobGlicGF0aD0KLSsJICAgIGFkZF9k aXI9Ci0rCSAgICBhZGQ9Ci0rCSAgICBsaWJfbGlua2VkPXllcwotKwkgICAgY2FzZSAkaGFyZGNv ZGVfYWN0aW9uIGluCi0rCSAgICBpbW1lZGlhdGUgfCB1bnN1cHBvcnRlZCkKLSsJICAgICAgaWYg dGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgPSBubzsgdGhlbgotKwkJYWRkPSIkZGlyLyRsaW5rbGli IgotKwkJY2FzZSAkaG9zdCBpbgotKwkJICAqLSotc2NvMy4ydjUuMC5bMDI0XSopIGFkZF9kaXI9 Ii1MJGRpciIgOzsKLSsJCSAgKi0qLXN5c3Y0KnV3MiopIGFkZF9kaXI9Ii1MJGRpciIgOzsKLSsJ CSAgKi0qLXN5c3Y1T3BlblVOSVgqIHwgKi0qLXN5c3Y1VW5peFdhcmU3LlswMV0uWzEwXSogfCBc Ci0rCQkgICAgKi0qLXVuaXh3YXJlNyopIGFkZF9kaXI9Ii1MJGRpciIgOzsKLSsJCSAgKi0qLWRh cndpbiogKQotKwkJICAgICMgaWYgdGhlIGxpYiBpcyBhIChub24tZGxvcGVuZWQpIG1vZHVsZSB0 aGVuIHdlIGNhbiBub3QKLSsJCSAgICAjIGxpbmsgYWdhaW5zdCBpdCwgc29tZW9uZSBpcyBpZ25v cmluZyB0aGUgZWFybGllciB3YXJuaW5ncwotKwkJICAgIGlmIC91c3IvYmluL2ZpbGUgLUwgJGFk ZCAyPiAvZGV2L251bGwgfAotKwkJCSAkR1JFUCAiOiBbXjpdKiBidW5kbGUiID4vZGV2L251bGwg OyB0aGVuCi0rCQkgICAgICBpZiB0ZXN0ICJYJGRsb3Blbm1vZHVsZSIgIT0gIlgkbGliIjsgdGhl bgotKwkJCSRFQ0hPICIqKiogV2FybmluZzogbGliICRsaW5rbGliIGlzIGEgbW9kdWxlLCBub3Qg YSBzaGFyZWQgbGlicmFyeSIKLSsJCQlpZiB0ZXN0IC16ICIkb2xkX2xpYnJhcnkiIDsgdGhlbgot KwkJCSAgZWNobwotKwkJCSAgZWNobyAiKioqIEFuZCB0aGVyZSBkb2Vzbid0IHNlZW0gdG8gYmUg YSBzdGF0aWMgYXJjaGl2ZSBhdmFpbGFibGUiCi0rCQkJICBlY2hvICIqKiogVGhlIGxpbmsgd2ls bCBwcm9iYWJseSBmYWlsLCBzb3JyeSIKLSsJCQllbHNlCi0rCQkJICBhZGQ9IiRkaXIvJG9sZF9s aWJyYXJ5IgotKwkJCWZpCi0rCQkgICAgICBlbGlmIHRlc3QgLW4gIiRvbGRfbGlicmFyeSI7IHRo ZW4KLSsJCQlhZGQ9IiRkaXIvJG9sZF9saWJyYXJ5IgotKwkJICAgICAgZmkKLSsJCSAgICBmaQot KwkJZXNhYwotKwkgICAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9taW51c19MIiA9IG5vOyB0aGVu Ci0rCQljYXNlICRob3N0IGluCi0rCQkqLSotc3Vub3MqKSBhZGRfc2hsaWJwYXRoPSIkZGlyIiA7 OwotKwkJZXNhYwotKwkJYWRkX2Rpcj0iLUwkZGlyIgotKwkJYWRkPSItbCRuYW1lIgotKwkgICAg ICBlbGlmIHRlc3QgIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiA9IG5vOyB0aGVuCi0rCQlhZGRf c2hsaWJwYXRoPSIkZGlyIgotKwkJYWRkPSItbCRuYW1lIgotKwkgICAgICBlbHNlCi0rCQlsaWJf bGlua2VkPW5vCi0rCSAgICAgIGZpCi0rCSAgICAgIDs7Ci0rCSAgICByZWxpbmspCi0rCSAgICAg IGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0geWVzICYmCi0rCSAgICAgICAgIHRlc3QgIiRo YXJkY29kZV9kaXJlY3RfYWJzb2x1dGUiID0gbm87IHRoZW4KLSsJCWFkZD0iJGRpci8kbGlua2xp YiIKLSsJICAgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgPSB5ZXM7IHRoZW4KLSsJ CWFkZF9kaXI9Ii1MJGRpciIKLSsJCSMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0aW9u IHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KLSsJCWlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9k aXIiOyB0aGVuCi0rCQkgIGNhc2UgJGxpYmRpciBpbgotKwkJICAgIFtcXC9dKikKLSsJCSAgICAg IGZ1bmNfYXBwZW5kIGFkZF9kaXIgIiAtTCRpbnN0X3ByZWZpeF9kaXIkbGliZGlyIgotKwkJICAg ICAgOzsKLSsJCSAgZXNhYwotKwkJZmkKLSsJCWFkZD0iLWwkbmFtZSIKLSsJICAgICAgZWxpZiB0 ZXN0ICIkaGFyZGNvZGVfc2hsaWJwYXRoX3ZhciIgPSB5ZXM7IHRoZW4KLSsJCWFkZF9zaGxpYnBh dGg9IiRkaXIiCi0rCQlhZGQ9Ii1sJG5hbWUiCi0rCSAgICAgIGVsc2UKLSsJCWxpYl9saW5rZWQ9 bm8KLSsJICAgICAgZmkKLSsJICAgICAgOzsKLSsJICAgICopIGxpYl9saW5rZWQ9bm8gOzsKLSsJ ICAgIGVzYWMKLSsKLSsJICAgIGlmIHRlc3QgIiRsaWJfbGlua2VkIiAhPSB5ZXM7IHRoZW4KLSsJ ICAgICAgZnVuY19mYXRhbF9jb25maWd1cmF0aW9uICJ1bnN1cHBvcnRlZCBoYXJkY29kZSBwcm9w ZXJ0aWVzIgotKwkgICAgZmkKLSsKLSsJICAgIGlmIHRlc3QgLW4gIiRhZGRfc2hsaWJwYXRoIjsg dGhlbgotKwkgICAgICBjYXNlIDokY29tcGlsZV9zaGxpYnBhdGg6IGluCi0rCSAgICAgICoiOiRh ZGRfc2hsaWJwYXRoOiIqKSA7OwotKwkgICAgICAqKSBmdW5jX2FwcGVuZCBjb21waWxlX3NobGli cGF0aCAiJGFkZF9zaGxpYnBhdGg6IiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQotKwkgICAg aWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsJICAgICAgdGVzdCAtbiAiJGFkZF9k aXIiICYmIGNvbXBpbGVfZGVwbGlicz0iJGFkZF9kaXIgJGNvbXBpbGVfZGVwbGlicyIKLSsJICAg ICAgdGVzdCAtbiAiJGFkZCIgJiYgY29tcGlsZV9kZXBsaWJzPSIkYWRkICRjb21waWxlX2RlcGxp YnMiCi0rCSAgICBlbHNlCi0rCSAgICAgIHRlc3QgLW4gIiRhZGRfZGlyIiAmJiBkZXBsaWJzPSIk YWRkX2RpciAkZGVwbGlicyIKLSsJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgZGVwbGlicz0iJGFk ZCAkZGVwbGlicyIKLSsJICAgICAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0geWVzICYm Ci0rCQkgdGVzdCAiJGhhcmRjb2RlX21pbnVzX0wiICE9IHllcyAmJgotKwkJIHRlc3QgIiRoYXJk Y29kZV9zaGxpYnBhdGhfdmFyIiA9IHllczsgdGhlbgotKwkJY2FzZSA6JGZpbmFsaXplX3NobGli cGF0aDogaW4KLSsJCSoiOiRsaWJkaXI6IiopIDs7Ci0rCQkqKSBmdW5jX2FwcGVuZCBmaW5hbGl6 ZV9zaGxpYnBhdGggIiRsaWJkaXI6IiA7OwotKwkJZXNhYwotKwkgICAgICBmaQotKwkgICAgZmkK LSsJICBmaQotKwotKwkgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nIHx8IHRlc3QgIiRvcHRf bW9kZSIgPSByZWxpbms7IHRoZW4KLSsJICAgIGFkZF9zaGxpYnBhdGg9Ci0rCSAgICBhZGRfZGly PQotKwkgICAgYWRkPQotKwkgICAgIyBGaW5hbGl6ZSBjb21tYW5kIGZvciBib3RoIGlzIHNpbXBs ZToganVzdCBoYXJkY29kZSBpdC4KLSsJICAgIGlmIHRlc3QgIiRoYXJkY29kZV9kaXJlY3QiID0g eWVzICYmCi0rCSAgICAgICB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlIiA9IG5vOyB0 aGVuCi0rCSAgICAgIGFkZD0iJGxpYmRpci8kbGlua2xpYiIKLSsJICAgIGVsaWYgdGVzdCAiJGhh cmRjb2RlX21pbnVzX0wiID0geWVzOyB0aGVuCi0rCSAgICAgIGFkZF9kaXI9Ii1MJGxpYmRpciIK LSsJICAgICAgYWRkPSItbCRuYW1lIgotKwkgICAgZWxpZiB0ZXN0ICIkaGFyZGNvZGVfc2hsaWJw YXRoX3ZhciIgPSB5ZXM7IHRoZW4KLSsJICAgICAgY2FzZSA6JGZpbmFsaXplX3NobGlicGF0aDog aW4KLSsJICAgICAgKiI6JGxpYmRpcjoiKikgOzsKLSsJICAgICAgKikgZnVuY19hcHBlbmQgZmlu YWxpemVfc2hsaWJwYXRoICIkbGliZGlyOiIgOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBhZGQ9 Ii1sJG5hbWUiCi0rCSAgICBlbGlmIHRlc3QgIiRoYXJkY29kZV9hdXRvbWF0aWMiID0geWVzOyB0 aGVuCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRpbnN0X3ByZWZpeF9kaXIiICYmCi0rCQkgdGVzdCAt ZiAiJGluc3RfcHJlZml4X2RpciRsaWJkaXIvJGxpbmtsaWIiIDsgdGhlbgotKwkJYWRkPSIkaW5z dF9wcmVmaXhfZGlyJGxpYmRpci8kbGlua2xpYiIKLSsJICAgICAgZWxzZQotKwkJYWRkPSIkbGli ZGlyLyRsaW5rbGliIgotKwkgICAgICBmaQotKwkgICAgZWxzZQotKwkgICAgICAjIFdlIGNhbm5v dCBzZWVtIHRvIGhhcmRjb2RlIGl0LCBndWVzcyB3ZSdsbCBmYWtlIGl0LgotKwkgICAgICBhZGRf ZGlyPSItTCRsaWJkaXIiCi0rCSAgICAgICMgVHJ5IGxvb2tpbmcgZmlyc3QgaW4gdGhlIGxvY2F0 aW9uIHdlJ3JlIGJlaW5nIGluc3RhbGxlZCB0by4KLSsJICAgICAgaWYgdGVzdCAtbiAiJGluc3Rf cHJlZml4X2RpciI7IHRoZW4KLSsJCWNhc2UgJGxpYmRpciBpbgotKwkJICBbXFwvXSopCi0rCQkg ICAgZnVuY19hcHBlbmQgYWRkX2RpciAiIC1MJGluc3RfcHJlZml4X2RpciRsaWJkaXIiCi0rCQkg ICAgOzsKLSsJCWVzYWMKLSsJICAgICAgZmkKLSsJICAgICAgYWRkPSItbCRuYW1lIgotKwkgICAg ZmkKLSsKLSsJICAgIGlmIHRlc3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgICAgIHRl c3QgLW4gIiRhZGRfZGlyIiAmJiBmaW5hbGl6ZV9kZXBsaWJzPSIkYWRkX2RpciAkZmluYWxpemVf ZGVwbGlicyIKLSsJICAgICAgdGVzdCAtbiAiJGFkZCIgJiYgZmluYWxpemVfZGVwbGlicz0iJGFk ZCAkZmluYWxpemVfZGVwbGlicyIKLSsJICAgIGVsc2UKLSsJICAgICAgdGVzdCAtbiAiJGFkZF9k aXIiICYmIGRlcGxpYnM9IiRhZGRfZGlyICRkZXBsaWJzIgotKwkgICAgICB0ZXN0IC1uICIkYWRk IiAmJiBkZXBsaWJzPSIkYWRkICRkZXBsaWJzIgotKwkgICAgZmkKLSsJICBmaQotKwllbGlmIHRl c3QgIiRsaW5rbW9kZSIgPSBwcm9nOyB0aGVuCi0rCSAgIyBIZXJlIHdlIGFzc3VtZSB0aGF0IG9u ZSBvZiBoYXJkY29kZV9kaXJlY3Qgb3IgaGFyZGNvZGVfbWludXNfTAotKwkgICMgaXMgbm90IHVu c3VwcG9ydGVkLiAgVGhpcyBpcyB2YWxpZCBvbiBhbGwga25vd24gc3RhdGljIGFuZAotKwkgICMg c2hhcmVkIHBsYXRmb3Jtcy4KLSsJICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGlyZWN0IiAhPSB1bnN1 cHBvcnRlZDsgdGhlbgotKwkgICAgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IiAmJiBsaW5rbGliPSIk b2xkX2xpYnJhcnkiCi0rCSAgICBjb21waWxlX2RlcGxpYnM9IiRkaXIvJGxpbmtsaWIgJGNvbXBp bGVfZGVwbGlicyIKLSsJICAgIGZpbmFsaXplX2RlcGxpYnM9IiRkaXIvJGxpbmtsaWIgJGZpbmFs aXplX2RlcGxpYnMiCi0rCSAgZWxzZQotKwkgICAgY29tcGlsZV9kZXBsaWJzPSItbCRuYW1lIC1M JGRpciAkY29tcGlsZV9kZXBsaWJzIgotKwkgICAgZmluYWxpemVfZGVwbGlicz0iLWwkbmFtZSAt TCRkaXIgJGZpbmFsaXplX2RlcGxpYnMiCi0rCSAgZmkKLSsJZWxpZiB0ZXN0ICIkYnVpbGRfbGli dG9vbF9saWJzIiA9IHllczsgdGhlbgotKwkgICMgTm90IGEgc2hhcmVkIGxpYnJhcnkKLSsJICBp ZiB0ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCi0rCSAgICAj IFdlJ3JlIHRyeWluZyBsaW5rIGEgc2hhcmVkIGxpYnJhcnkgYWdhaW5zdCBhIHN0YXRpYyBvbmUK LSsJICAgICMgYnV0IHRoZSBzeXN0ZW0gZG9lc24ndCBzdXBwb3J0IGl0LgotKwotKwkgICAgIyBK dXN0IHByaW50IGEgd2FybmluZyBhbmQgYWRkIHRoZSBsaWJyYXJ5IHRvIGRlcGVuZGVuY3lfbGli cyBzbwotKwkgICAgIyB0aGF0IHRoZSBwcm9ncmFtIGNhbiBiZSBsaW5rZWQgYWdhaW5zdCB0aGUg c3RhdGljIGxpYnJhcnkuCi0rCSAgICBlY2hvCi0rCSAgICAkRUNITyAiKioqIFdhcm5pbmc6IFRo aXMgc3lzdGVtIGNhbiBub3QgbGluayB0byBzdGF0aWMgbGliIGFyY2hpdmUgJGxpYi4iCi0rCSAg ICBlY2hvICIqKiogSSBoYXZlIHRoZSBjYXBhYmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1 dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgotKwkgICAgZWNobyAiKioqIHlvdSBsaW5rIHRvIHRo aXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRvIHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJICAg IGVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUgbGlicmFyeSwgd2hpY2ggeW91IGRvIG5v dCBhcHBlYXIgdG8gaGF2ZS4iCi0rCSAgICBpZiB0ZXN0ICIkbW9kdWxlIiA9IHllczsgdGhlbgot KwkgICAgICBlY2hvICIqKiogQnV0IGFzIHlvdSB0cnkgdG8gYnVpbGQgYSBtb2R1bGUgbGlicmFy eSwgbGlidG9vbCB3aWxsIHN0aWxsIGNyZWF0ZSAiCi0rCSAgICAgIGVjaG8gIioqKiBhIHN0YXRp YyBtb2R1bGUsIHRoYXQgc2hvdWxkIHdvcmsgYXMgbG9uZyBhcyB0aGUgZGxvcGVuaW5nIGFwcGxp Y2F0aW9uIgotKwkgICAgICBlY2hvICIqKiogaXMgbGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxh ZyB0byByZXNvbHZlIHN5bWJvbHMgYXQgcnVudGltZS4iCi0rCSAgICAgIGlmIHRlc3QgLXogIiRn bG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCi0rCQllY2hvCi0rCQllY2hvICIqKiogSG93ZXZlciwg dGhpcyB3b3VsZCBvbmx5IHdvcmsgaWYgbGlidG9vbCB3YXMgYWJsZSB0byBleHRyYWN0IHN5bWJv bCIKLSsJCWVjaG8gIioqKiBsaXN0cyBmcm9tIGEgcHJvZ3JhbSwgdXNpbmcgXGBubScgb3IgZXF1 aXZhbGVudCwgYnV0IGxpYnRvb2wgY291bGQiCi0rCQllY2hvICIqKiogbm90IGZpbmQgc3VjaCBh IHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNlbGVzcy4iCi0rCQllY2hv ICIqKiogXGBubScgZnJvbSBHTlUgYmludXRpbHMgYW5kIGEgZnVsbCByZWJ1aWxkIG1heSBoZWxw LiIKLSsJICAgICAgZmkKLSsJICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IG5vOyB0 aGVuCi0rCQlidWlsZF9saWJ0b29sX2xpYnM9bW9kdWxlCi0rCQlidWlsZF9vbGRfbGlicz15ZXMK LSsJICAgICAgZWxzZQotKwkJYnVpbGRfbGlidG9vbF9saWJzPW5vCi0rCSAgICAgIGZpCi0rCSAg ICBmaQotKwkgIGVsc2UKLSsJICAgIGRlcGxpYnM9IiRkaXIvJG9sZF9saWJyYXJ5ICRkZXBsaWJz IgotKwkgICAgbGlua19zdGF0aWM9eWVzCi0rCSAgZmkKLSsJZmkgIyBsaW5rIHNoYXJlZC9zdGF0 aWMgbGlicmFyeT8KLSsKLSsJaWYgdGVzdCAiJGxpbmttb2RlIiA9IGxpYjsgdGhlbgotKwkgIGlm IHRlc3QgLW4gIiRkZXBlbmRlbmN5X2xpYnMiICYmCi0rCSAgICAgeyB0ZXN0ICIkaGFyZGNvZGVf aW50b19saWJzIiAhPSB5ZXMgfHwKLSsJICAgICAgIHRlc3QgIiRidWlsZF9vbGRfbGlicyIgPSB5 ZXMgfHwKLSsJICAgICAgIHRlc3QgIiRsaW5rX3N0YXRpYyIgPSB5ZXM7IH07IHRoZW4KLSsJICAg ICMgRXh0cmFjdCAtUiBmcm9tIGRlcGVuZGVuY3lfbGlicwotKwkgICAgdGVtcF9kZXBsaWJzPQot KwkgICAgZm9yIGxpYmRpciBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICAgICBjYXNlICRs aWJkaXIgaW4KLSsJICAgICAgLVIqKSBmdW5jX3N0cmlwbmFtZSAnLVInICcnICIkbGliZGlyIgot KwkgICAgICAgICAgIHRlbXBfeHJwYXRoPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJCSAgIGNh c2UgIiAkeHJwYXRoICIgaW4KLSsJCSAgICoiICR0ZW1wX3hycGF0aCAiKikgOzsKLSsJCSAgICop IGZ1bmNfYXBwZW5kIHhycGF0aCAiICR0ZW1wX3hycGF0aCI7OwotKwkJICAgZXNhYzs7Ci0rCSAg ICAgICopIGZ1bmNfYXBwZW5kIHRlbXBfZGVwbGlicyAiICRsaWJkaXIiOzsKLSsJICAgICAgZXNh YwotKwkgICAgZG9uZQotKwkgICAgZGVwZW5kZW5jeV9saWJzPSIkdGVtcF9kZXBsaWJzIgotKwkg IGZpCi0rCi0rCSAgZnVuY19hcHBlbmQgbmV3bGliX3NlYXJjaF9wYXRoICIgJGFic2RpciIKLSsJ ICAjIExpbmsgYWdhaW5zdCB0aGlzIGxpYnJhcnkKLSsJICB0ZXN0ICIkbGlua19zdGF0aWMiID0g bm8gJiYgbmV3ZGVwZW5kZW5jeV9saWJzPSIkYWJzX2xhZGlyLyRsYW5hbWUgJG5ld2RlcGVuZGVu Y3lfbGlicyIKLSsJICAjIC4uLiBhbmQgaXRzIGRlcGVuZGVuY3lfbGlicwotKwkgIHRtcF9saWJz PQotKwkgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVuY3lfbGliczsgZG8KLSsJICAgIG5ld2RlcGVu ZGVuY3lfbGlicz0iJGRlcGxpYiAkbmV3ZGVwZW5kZW5jeV9saWJzIgotKwkgICAgY2FzZSAkZGVw bGliIGluCi0rICAgICAgICAgICAgICAtTCopIGZ1bmNfc3RyaXBuYW1lICctTCcgJycgIiRkZXBs aWIiCi0rICAgICAgICAgICAgICAgICAgIGZ1bmNfcmVzb2x2ZV9zeXNyb290ICIkZnVuY19zdHJp cG5hbWVfcmVzdWx0Ijs7Ci0rICAgICAgICAgICAgICAqKSBmdW5jX3Jlc29sdmVfc3lzcm9vdCAi JGRlcGxpYiIgOzsKLSsgICAgICAgICAgICBlc2FjCi0rCSAgICBpZiAkb3B0X3ByZXNlcnZlX2R1 cF9kZXBzIDsgdGhlbgotKwkgICAgICBjYXNlICIkdG1wX2xpYnMgIiBpbgotKwkgICAgICAqIiAk ZnVuY19yZXNvbHZlX3N5c3Jvb3RfcmVzdWx0ICIqKQotKyAgICAgICAgICAgICAgICBmdW5jX2Fw cGVuZCBzcGVjaWFsZGVwbGlicyAiICRmdW5jX3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiIDs7Ci0r CSAgICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgICBmdW5jX2FwcGVuZCB0bXBfbGlicyAiICRmdW5j X3Jlc29sdmVfc3lzcm9vdF9yZXN1bHQiCi0rCSAgZG9uZQotKwotKwkgIGlmIHRlc3QgIiRsaW5r X2FsbF9kZXBsaWJzIiAhPSBubzsgdGhlbgotKwkgICAgIyBBZGQgdGhlIHNlYXJjaCBwYXRocyBv ZiBhbGwgZGVwZW5kZW5jeSBsaWJyYXJpZXMKLSsJICAgIGZvciBkZXBsaWIgaW4gJGRlcGVuZGVu Y3lfbGliczsgZG8KLSsJICAgICAgcGF0aD0KLSsJICAgICAgY2FzZSAkZGVwbGliIGluCi0rCSAg ICAgIC1MKikgcGF0aD0iJGRlcGxpYiIgOzsKLSsJICAgICAgKi5sYSkKLSsJICAgICAgICBmdW5j X3Jlc29sdmVfc3lzcm9vdCAiJGRlcGxpYiIKLSsJICAgICAgICBkZXBsaWI9JGZ1bmNfcmVzb2x2 ZV9zeXNyb290X3Jlc3VsdAotKwkgICAgICAgIGZ1bmNfZGlybmFtZSAiJGRlcGxpYiIgIiIgIi4i Ci0rCQlkaXI9JGZ1bmNfZGlybmFtZV9yZXN1bHQKLSsJCSMgV2UgbmVlZCBhbiBhYnNvbHV0ZSBw YXRoLgotKwkJY2FzZSAkZGlyIGluCi0rCQlbXFwvXSogfCBbQS1aYS16XTpbXFwvXSopIGFic2Rp cj0iJGRpciIgOzsKLSsJCSopCi0rCQkgIGFic2Rpcj1gY2QgIiRkaXIiICYmIHB3ZGAKLSsJCSAg aWYgdGVzdCAteiAiJGFic2RpciI7IHRoZW4KLSsJCSAgICBmdW5jX3dhcm5pbmcgImNhbm5vdCBk ZXRlcm1pbmUgYWJzb2x1dGUgZGlyZWN0b3J5IG5hbWUgb2YgXGAkZGlyJyIKLSsJCSAgICBhYnNk aXI9IiRkaXIiCi0rCQkgIGZpCi0rCQkgIDs7Ci0rCQllc2FjCi0rCQlpZiAkR1JFUCAiXmluc3Rh bGxlZD1ubyIgJGRlcGxpYiA+IC9kZXYvbnVsbDsgdGhlbgotKwkJY2FzZSAkaG9zdCBpbgotKwkJ Ki0qLWRhcndpbiopCi0rCQkgIGRlcGRlcGw9Ci0rCQkgIGV2YWwgZGVwbGlicmFyeV9uYW1lcz1g JHtTRUR9IC1uIC1lICdzL15saWJyYXJ5X25hbWVzPVwoLipcKSQvXDEvcCcgJGRlcGxpYmAKLSsJ CSAgaWYgdGVzdCAtbiAiJGRlcGxpYnJhcnlfbmFtZXMiIDsgdGhlbgotKwkJICAgIGZvciB0bXAg aW4gJGRlcGxpYnJhcnlfbmFtZXMgOyBkbwotKwkJICAgICAgZGVwZGVwbD0kdG1wCi0rCQkgICAg ZG9uZQotKwkJICAgIGlmIHRlc3QgLWYgIiRhYnNkaXIvJG9iamRpci8kZGVwZGVwbCIgOyB0aGVu Ci0rCQkgICAgICBkZXBkZXBsPSIkYWJzZGlyLyRvYmpkaXIvJGRlcGRlcGwiCi0rCQkgICAgICBk YXJ3aW5faW5zdGFsbF9uYW1lPWAke09UT09MfSAtTCAkZGVwZGVwbCB8IGF3ayAne2lmIChOUiA9 PSAyKSB7cHJpbnQgJDE7ZXhpdH19J2AKLSsgICAgICAgICAgICAgICAgICAgICAgaWYgdGVzdCAt eiAiJGRhcndpbl9pbnN0YWxsX25hbWUiOyB0aGVuCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICBkYXJ3aW5faW5zdGFsbF9uYW1lPWAke09UT09MNjR9IC1MICRkZXBkZXBsICB8IGF3ayAne2lm IChOUiA9PSAyKSB7cHJpbnQgJDE7ZXhpdH19J2AKLSsgICAgICAgICAgICAgICAgICAgICAgZmkK LSsJCSAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVyX2ZsYWdzICIgJHt3bH0tZHlsaWJfZmlsZSAk e3dsfSR7ZGFyd2luX2luc3RhbGxfbmFtZX06JHtkZXBkZXBsfSIKLSsJCSAgICAgIGZ1bmNfYXBw ZW5kIGxpbmtlcl9mbGFncyAiIC1keWxpYl9maWxlICR7ZGFyd2luX2luc3RhbGxfbmFtZX06JHtk ZXBkZXBsfSIKLSsJCSAgICAgIHBhdGg9Ci0rCQkgICAgZmkKLSsJCSAgZmkKLSsJCSAgOzsKLSsJ CSopCi0rCQkgIHBhdGg9Ii1MJGFic2Rpci8kb2JqZGlyIgotKwkJICA7OwotKwkJZXNhYwotKwkJ ZWxzZQotKwkJICBldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCguKlwpJC9c MS9wJyAkZGVwbGliYAotKwkJICB0ZXN0IC16ICIkbGliZGlyIiAmJiBcCi0rCQkgICAgZnVuY19m YXRhbF9lcnJvciAiXGAkZGVwbGliJyBpcyBub3QgYSB2YWxpZCBsaWJ0b29sIGFyY2hpdmUiCi0r CQkgIHRlc3QgIiRhYnNkaXIiICE9ICIkbGliZGlyIiAmJiBcCi0rCQkgICAgZnVuY193YXJuaW5n ICJcYCRkZXBsaWInIHNlZW1zIHRvIGJlIG1vdmVkIgotKwotKwkJICBwYXRoPSItTCRhYnNkaXIi Ci0rCQlmaQotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgICBjYXNlICIgJGRlcGxpYnMgIiBp bgotKwkgICAgICAqIiAkcGF0aCAiKikgOzsKLSsJICAgICAgKikgZGVwbGlicz0iJHBhdGggJGRl cGxpYnMiIDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJICBmaSAjIGxpbmtfYWxsX2Rl cGxpYnMgIT0gbm8KLSsJZmkgIyBsaW5rbW9kZSA9IGxpYgotKyAgICAgIGRvbmUgIyBmb3IgZGVw bGliIGluICRsaWJzCi0rICAgICAgaWYgdGVzdCAiJHBhc3MiID0gbGluazsgdGhlbgotKwlpZiB0 ZXN0ICIkbGlua21vZGUiID0gInByb2ciOyB0aGVuCi0rCSAgY29tcGlsZV9kZXBsaWJzPSIkbmV3 X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGNvbXBpbGVfZGVwbGlicyIKLSsJICBmaW5hbGl6ZV9k ZXBsaWJzPSIkbmV3X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MgJGZpbmFsaXplX2RlcGxpYnMiCi0r CWVsc2UKLSsJICBjb21waWxlcl9mbGFncz0iJGNvbXBpbGVyX2ZsYWdzICJgJEVDSE8gIiAkbmV3 X2luaGVyaXRlZF9saW5rZXJfZmxhZ3MiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29y ayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJZmkKLSsgICAgICBmaQotKyAgICAgIGRlcGVuZGVuY3lf bGlicz0iJG5ld2RlcGVuZGVuY3lfbGlicyIKLSsgICAgICBpZiB0ZXN0ICIkcGFzcyIgPSBkbHBy ZW9wZW47IHRoZW4KLSsJIyBMaW5rIHRoZSBkbHByZW9wZW5lZCBsaWJyYXJpZXMgYmVmb3JlIG90 aGVyIGxpYnJhcmllcwotKwlmb3IgZGVwbGliIGluICRzYXZlX2RlcGxpYnM7IGRvCi0rCSAgZGVw bGlicz0iJGRlcGxpYiAkZGVwbGlicyIKLSsJZG9uZQotKyAgICAgIGZpCi0rICAgICAgaWYgdGVz dCAiJHBhc3MiICE9IGRsb3BlbjsgdGhlbgotKwlpZiB0ZXN0ICIkcGFzcyIgIT0gY29udjsgdGhl bgotKwkgICMgTWFrZSBzdXJlIGxpYl9zZWFyY2hfcGF0aCBjb250YWlucyBvbmx5IHVuaXF1ZSBk aXJlY3Rvcmllcy4KLSsJICBsaWJfc2VhcmNoX3BhdGg9Ci0rCSAgZm9yIGRpciBpbiAkbmV3bGli X3NlYXJjaF9wYXRoOyBkbwotKwkgICAgY2FzZSAiJGxpYl9zZWFyY2hfcGF0aCAiIGluCi0rCSAg ICAqIiAkZGlyICIqKSA7OwotKwkgICAgKikgZnVuY19hcHBlbmQgbGliX3NlYXJjaF9wYXRoICIg JGRpciIgOzsKLSsJICAgIGVzYWMKLSsJICBkb25lCi0rCSAgbmV3bGliX3NlYXJjaF9wYXRoPQot KwlmaQotKwotKwlpZiB0ZXN0ICIkbGlua21vZGUsJHBhc3MiICE9ICJwcm9nLGxpbmsiOyB0aGVu Ci0rCSAgdmFycz0iZGVwbGlicyIKLSsJZWxzZQotKwkgIHZhcnM9ImNvbXBpbGVfZGVwbGlicyBm aW5hbGl6ZV9kZXBsaWJzIgotKwlmaQotKwlmb3IgdmFyIGluICR2YXJzIGRlcGVuZGVuY3lfbGli czsgZG8KLSsJICAjIEFkZCBsaWJyYXJpZXMgdG8gJHZhciBpbiByZXZlcnNlIG9yZGVyCi0rCSAg ZXZhbCB0bXBfbGlicz1cIlwkJHZhclwiCi0rCSAgbmV3X2xpYnM9Ci0rCSAgZm9yIGRlcGxpYiBp biAkdG1wX2xpYnM7IGRvCi0rCSAgICAjIEZJWE1FOiBQZWRhbnRpY2FsbHksIHRoaXMgaXMgdGhl IHJpZ2h0IHRoaW5nIHRvIGRvLCBzbwotKwkgICAgIyAgICAgICAgdGhhdCBzb21lIG5hc3R5IGRl cGVuZGVuY3kgbG9vcCBpc24ndCBhY2NpZGVudGFsbHkKLSsJICAgICMgICAgICAgIGJyb2tlbjoK LSsJICAgICNuZXdfbGlicz0iJGRlcGxpYiAkbmV3X2xpYnMiCi0rCSAgICAjIFByYWdtYXRpY2Fs bHksIHRoaXMgc2VlbXMgdG8gY2F1c2UgdmVyeSBmZXcgcHJvYmxlbXMgaW4KLSsJICAgICMgcHJh Y3RpY2U6Ci0rCSAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAgIC1MKikgbmV3X2xpYnM9IiRkZXBs aWIgJG5ld19saWJzIiA7OwotKwkgICAgLVIqKSA7OwotKwkgICAgKikKLSsJICAgICAgIyBBbmQg aGVyZSBpcyB0aGUgcmVhc29uOiB3aGVuIGEgbGlicmFyeSBhcHBlYXJzIG1vcmUKLSsJICAgICAg IyB0aGFuIG9uY2UgYXMgYW4gZXhwbGljaXQgZGVwZW5kZW5jZSBvZiBhIGxpYnJhcnksIG9yCi0r CSAgICAgICMgaXMgaW1wbGljaXRseSBsaW5rZWQgaW4gbW9yZSB0aGFuIG9uY2UgYnkgdGhlCi0r CSAgICAgICMgY29tcGlsZXIsIGl0IGlzIGNvbnNpZGVyZWQgc3BlY2lhbCwgYW5kIG11bHRpcGxl Ci0rCSAgICAgICMgb2NjdXJyZW5jZXMgdGhlcmVvZiBhcmUgbm90IHJlbW92ZWQuICBDb21wYXJl IHRoaXMKLSsJICAgICAgIyB3aXRoIGhhdmluZyB0aGUgc2FtZSBsaWJyYXJ5IGJlaW5nIGxpc3Rl ZCBhcyBhCi0rCSAgICAgICMgZGVwZW5kZW5jeSBvZiBtdWx0aXBsZSBvdGhlciBsaWJyYXJpZXM6 IGluIHRoaXMgY2FzZSwKLSsJICAgICAgIyB3ZSBrbm93IChwZWRhbnRpY2FsbHksIHdlIGFzc3Vt ZSkgdGhlIGxpYnJhcnkgZG9lcyBub3QKLSsJICAgICAgIyBuZWVkIHRvIGJlIGxpc3RlZCBtb3Jl IHRoYW4gb25jZSwgc28gd2Uga2VlcCBvbmx5IHRoZQotKwkgICAgICAjIGxhc3QgY29weS4gIFRo aXMgaXMgbm90IGFsd2F5cyByaWdodCwgYnV0IGl0IGlzIHJhcmUKLSsJICAgICAgIyBlbm91Z2gg dGhhdCB3ZSByZXF1aXJlIHVzZXJzIHRoYXQgcmVhbGx5IG1lYW4gdG8gcGxheQotKwkgICAgICAj IHN1Y2ggdW5wb3J0YWJsZSBsaW5raW5nIHRyaWNrcyB0byBsaW5rIHRoZSBsaWJyYXJ5Ci0rCSAg ICAgICMgdXNpbmcgLVdsLC1sbmFtZSwgc28gdGhhdCBsaWJ0b29sIGRvZXMgbm90IGNvbnNpZGVy IGl0Ci0rCSAgICAgICMgZm9yIGR1cGxpY2F0ZSByZW1vdmFsLgotKwkgICAgICBjYXNlICIgJHNw ZWNpYWxkZXBsaWJzICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikgbmV3X2xpYnM9IiRkZXBs aWIgJG5ld19saWJzIiA7OwotKwkgICAgICAqKQotKwkJY2FzZSAiICRuZXdfbGlicyAiIGluCi0r CQkqIiAkZGVwbGliICIqKSA7OwotKwkJKikgbmV3X2xpYnM9IiRkZXBsaWIgJG5ld19saWJzIiA7 OwotKwkJZXNhYwotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgICA7OwotKwkgICAgZXNhYwot KwkgIGRvbmUKLSsJICB0bXBfbGlicz0KLSsJICBmb3IgZGVwbGliIGluICRuZXdfbGliczsgZG8K LSsJICAgIGNhc2UgJGRlcGxpYiBpbgotKwkgICAgLUwqKQotKwkgICAgICBjYXNlICIgJHRtcF9s aWJzICIgaW4KLSsJICAgICAgKiIgJGRlcGxpYiAiKikgOzsKLSsJICAgICAgKikgZnVuY19hcHBl bmQgdG1wX2xpYnMgIiAkZGVwbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIDs7Ci0rCSAg ICAqKSBmdW5jX2FwcGVuZCB0bXBfbGlicyAiICRkZXBsaWIiIDs7Ci0rCSAgICBlc2FjCi0rCSAg ZG9uZQotKwkgIGV2YWwgJHZhcj1cIiR0bXBfbGlic1wiCi0rCWRvbmUgIyBmb3IgdmFyCi0rICAg ICAgZmkKLSsgICAgICAjIExhc3Qgc3RlcDogcmVtb3ZlIHJ1bnRpbWUgbGlicyBmcm9tIGRlcGVu ZGVuY3lfbGlicwotKyAgICAgICMgKHRoZXkgc3RheSBpbiBkZXBsaWJzKQotKyAgICAgIHRtcF9s aWJzPQotKyAgICAgIGZvciBpIGluICRkZXBlbmRlbmN5X2xpYnMgOyBkbwotKwljYXNlICIgJHBy ZWRlcHMgJHBvc3RkZXBzICRjb21waWxlcl9saWJfc2VhcmNoX3BhdGggIiBpbgotKwkqIiAkaSAi KikKLSsJICBpPSIiCi0rCSAgOzsKLSsJZXNhYwotKwlpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCi0r CSAgZnVuY19hcHBlbmQgdG1wX2xpYnMgIiAkaSIKLSsJZmkKLSsgICAgICBkb25lCi0rICAgICAg ZGVwZW5kZW5jeV9saWJzPSR0bXBfbGlicwotKyAgICBkb25lICMgZm9yIHBhc3MKLSsgICAgaWYg dGVzdCAiJGxpbmttb2RlIiA9IHByb2c7IHRoZW4KLSsgICAgICBkbGZpbGVzPSIkbmV3ZGxmaWxl cyIKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAiJGxpbmttb2RlIiA9IHByb2cgfHwgdGVzdCAiJGxp bmttb2RlIiA9IGxpYjsgdGhlbgotKyAgICAgIGRscHJlZmlsZXM9IiRuZXdkbHByZWZpbGVzIgot KyAgICBmaQotKwotKyAgICBjYXNlICRsaW5rbW9kZSBpbgotKyAgICBvbGRsaWIpCi0rICAgICAg aWYgdGVzdCAtbiAiJGRsZmlsZXMkZGxwcmVmaWxlcyIgfHwgdGVzdCAiJGRsc2VsZiIgIT0gbm87 IHRoZW4KLSsJZnVuY193YXJuaW5nICJcYC1kbG9wZW4nIGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVz IgotKyAgICAgIGZpCi0rCi0rICAgICAgY2FzZSAiICRkZXBsaWJzIiBpbgotKyAgICAgICpcIC1s KiB8ICpcIC1MKikKLSsJZnVuY193YXJuaW5nICJcYC1sJyBhbmQgXGAtTCcgYXJlIGlnbm9yZWQg Zm9yIGFyY2hpdmVzIiA7OwotKyAgICAgIGVzYWMKLSsKLSsgICAgICB0ZXN0IC1uICIkcnBhdGgi ICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1ycGF0aCcgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMi Ci0rCi0rICAgICAgdGVzdCAtbiAiJHhycGF0aCIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLVIn IGlzIGlnbm9yZWQgZm9yIGFyY2hpdmVzIgotKwotKyAgICAgIHRlc3QgLW4gIiR2aW5mbyIgJiYg XAotKwlmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mby8tdmVyc2lvbi1udW1iZXInIGlzIGln bm9yZWQgZm9yIGFyY2hpdmVzIgotKwotKyAgICAgIHRlc3QgLW4gIiRyZWxlYXNlIiAmJiBcCi0r CWZ1bmNfd2FybmluZyAiXGAtcmVsZWFzZScgaXMgaWdub3JlZCBmb3IgYXJjaGl2ZXMiCi0rCi0r ICAgICAgdGVzdCAtbiAiJGV4cG9ydF9zeW1ib2xzJGV4cG9ydF9zeW1ib2xzX3JlZ2V4IiAmJiBc Ci0rCWZ1bmNfd2FybmluZyAiXGAtZXhwb3J0LXN5bWJvbHMnIGlzIGlnbm9yZWQgZm9yIGFyY2hp dmVzIgotKwotKyAgICAgICMgTm93IHNldCB0aGUgdmFyaWFibGVzIGZvciBidWlsZGluZyBvbGQg bGlicmFyaWVzLgotKyAgICAgIGJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKyAgICAgIG9sZGxpYnM9 IiRvdXRwdXQiCi0rICAgICAgZnVuY19hcHBlbmQgb2JqcyAiJG9sZF9kZXBsaWJzIgotKyAgICAg IDs7Ci0rCi0rICAgIGxpYikKLSsgICAgICAjIE1ha2Ugc3VyZSB3ZSBvbmx5IGdlbmVyYXRlIGxp YnJhcmllcyBvZiB0aGUgZm9ybSBgbGliTkFNRS5sYScuCi0rICAgICAgY2FzZSAkb3V0cHV0bmFt ZSBpbgotKyAgICAgIGxpYiopCi0rCWZ1bmNfc3RyaXBuYW1lICdsaWInICcubGEnICIkb3V0cHV0 bmFtZSIKLSsJbmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCWV2YWwgc2hhcmVkX2V4dD1c IiRzaHJleHRfY21kc1wiCi0rCWV2YWwgbGlibmFtZT1cIiRsaWJuYW1lX3NwZWNcIgotKwk7Owot KyAgICAgICopCi0rCXRlc3QgIiRtb2R1bGUiID0gbm8gJiYgXAotKwkgIGZ1bmNfZmF0YWxfaGVs cCAibGlidG9vbCBsaWJyYXJ5IFxgJG91dHB1dCcgbXVzdCBiZWdpbiB3aXRoIFxgbGliJyIKLSsK LSsJaWYgdGVzdCAiJG5lZWRfbGliX3ByZWZpeCIgIT0gbm87IHRoZW4KLSsJICAjIEFkZCB0aGUg ImxpYiIgcHJlZml4IGZvciBtb2R1bGVzIGlmIHJlcXVpcmVkCi0rCSAgZnVuY19zdHJpcG5hbWUg JycgJy5sYScgIiRvdXRwdXRuYW1lIgotKwkgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAot KwkgIGV2YWwgc2hhcmVkX2V4dD1cIiRzaHJleHRfY21kc1wiCi0rCSAgZXZhbCBsaWJuYW1lPVwi JGxpYm5hbWVfc3BlY1wiCi0rCWVsc2UKLSsJICBmdW5jX3N0cmlwbmFtZSAnJyAnLmxhJyAiJG91 dHB1dG5hbWUiCi0rCSAgbGlibmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCWZpCi0rCTs7 Ci0rICAgICAgZXNhYwotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRvYmpzIjsgdGhlbgotKwlpZiB0 ZXN0ICIkZGVwbGlic19jaGVja19tZXRob2QiICE9IHBhc3NfYWxsOyB0aGVuCi0rCSAgZnVuY19m YXRhbF9lcnJvciAiY2Fubm90IGJ1aWxkIGxpYnRvb2wgbGlicmFyeSBcYCRvdXRwdXQnIGZyb20g bm9uLWxpYnRvb2wgb2JqZWN0cyBvbiB0aGlzIGhvc3Q6JG9ianMiCi0rCWVsc2UKLSsJICBlY2hv Ci0rCSAgJEVDSE8gIioqKiBXYXJuaW5nOiBMaW5raW5nIHRoZSBzaGFyZWQgbGlicmFyeSAkb3V0 cHV0IGFnYWluc3QgdGhlIG5vbi1saWJ0b29sIgotKwkgICRFQ0hPICIqKiogb2JqZWN0cyAkb2Jq cyBpcyBub3QgcG9ydGFibGUhIgotKwkgIGZ1bmNfYXBwZW5kIGxpYm9ianMgIiAkb2JqcyIKLSsJ ZmkKLSsgICAgICBmaQotKwotKyAgICAgIHRlc3QgIiRkbHNlbGYiICE9IG5vICYmIFwKLSsJZnVu Y193YXJuaW5nICJcYC1kbG9wZW4gc2VsZicgaXMgaWdub3JlZCBmb3IgbGlidG9vbCBsaWJyYXJp ZXMiCi0rCi0rICAgICAgc2V0IGR1bW15ICRycGF0aAotKyAgICAgIHNoaWZ0Ci0rICAgICAgdGVz dCAiJCMiIC1ndCAxICYmIFwKLSsJZnVuY193YXJuaW5nICJpZ25vcmluZyBtdWx0aXBsZSBcYC1y cGF0aCdzIGZvciBhIGxpYnRvb2wgbGlicmFyeSIKLSsKLSsgICAgICBpbnN0YWxsX2xpYmRpcj0i JDEiCi0rCi0rICAgICAgb2xkbGlicz0KLSsgICAgICBpZiB0ZXN0IC16ICIkcnBhdGgiOyB0aGVu Ci0rCWlmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xpYnMiID0geWVzOyB0aGVuCi0rCSAgIyBCdWls ZGluZyBhIGxpYnRvb2wgY29udmVuaWVuY2UgbGlicmFyeS4KLSsJICAjIFNvbWUgY29tcGlsZXJz IGhhdmUgcHJvYmxlbXMgd2l0aCBhIGAuYWwnIGV4dGVuc2lvbiBzbwotKwkgICMgY29udmVuaWVu Y2UgbGlicmFyaWVzIHNob3VsZCBoYXZlIHRoZSBzYW1lIGV4dGVuc2lvbiBhbgotKwkgICMgYXJj aGl2ZSBub3JtYWxseSB3b3VsZC4KLSsJICBvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFt ZS4kbGliZXh0ICRvbGRsaWJzIgotKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1jb252ZW5pZW5jZQot KwkgIGJ1aWxkX29sZF9saWJzPXllcwotKwlmaQotKwotKwl0ZXN0IC1uICIkdmluZm8iICYmIFwK LSsJICBmdW5jX3dhcm5pbmcgIlxgLXZlcnNpb24taW5mby8tdmVyc2lvbi1udW1iZXInIGlzIGln bm9yZWQgZm9yIGNvbnZlbmllbmNlIGxpYnJhcmllcyIKLSsKLSsJdGVzdCAtbiAiJHJlbGVhc2Ui ICYmIFwKLSsJICBmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9yZWQgZm9yIGNvbnZl bmllbmNlIGxpYnJhcmllcyIKLSsgICAgICBlbHNlCi0rCi0rCSMgUGFyc2UgdGhlIHZlcnNpb24g aW5mb3JtYXRpb24gYXJndW1lbnQuCi0rCXNhdmVfaWZzPSIkSUZTIjsgSUZTPSc6JwotKwlzZXQg ZHVtbXkgJHZpbmZvIDAgMCAwCi0rCXNoaWZ0Ci0rCUlGUz0iJHNhdmVfaWZzIgotKwotKwl0ZXN0 IC1uICIkNyIgJiYgXAotKwkgIGZ1bmNfZmF0YWxfaGVscCAidG9vIG1hbnkgcGFyYW1ldGVycyB0 byBcYC12ZXJzaW9uLWluZm8nIgotKwotKwkjIGNvbnZlcnQgYWJzb2x1dGUgdmVyc2lvbiBudW1i ZXJzIHRvIGxpYnRvb2wgYWdlcwotKwkjIHRoaXMgcmV0YWlucyBjb21wYXRpYmlsaXR5IHdpdGgg LmxhIGZpbGVzIGFuZCBhdHRlbXB0cwotKwkjIHRvIG1ha2UgdGhlIGNvZGUgYmVsb3cgYSBiaXQg bW9yZSBjb21wcmVoZW5zaWJsZQotKwotKwljYXNlICR2aW5mb19udW1iZXIgaW4KLSsJeWVzKQot KwkgIG51bWJlcl9tYWpvcj0iJDEiCi0rCSAgbnVtYmVyX21pbm9yPSIkMiIKLSsJICBudW1iZXJf cmV2aXNpb249IiQzIgotKwkgICMKLSsJICAjIFRoZXJlIGFyZSByZWFsbHkgb25seSB0d28ga2lu ZHMgLS0gdGhvc2UgdGhhdAotKwkgICMgdXNlIHRoZSBjdXJyZW50IHJldmlzaW9uIGFzIHRoZSBt YWpvciB2ZXJzaW9uCi0rCSAgIyBhbmQgdGhvc2UgdGhhdCBzdWJ0cmFjdCBhZ2UgYW5kIHVzZSBh Z2UgYXMKLSsJICAjIGEgbWlub3IgdmVyc2lvbi4gIEJ1dCwgdGhlbiB0aGVyZSBpcyBpcml4Ci0r CSAgIyB3aGljaCBoYXMgYW4gZXh0cmEgMSBhZGRlZCBqdXN0IGZvciBmdW4KLSsJICAjCi0rCSAg Y2FzZSAkdmVyc2lvbl90eXBlIGluCi0rCSAgZGFyd2lufGxpbnV4fG9zZnx3aW5kb3dzfG5vbmUp Ci0rCSAgICBmdW5jX2FyaXRoICRudW1iZXJfbWFqb3IgKyAkbnVtYmVyX21pbm9yCi0rCSAgICBj dXJyZW50PSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgICAgYWdlPSIkbnVtYmVyX21pbm9yIgotKwkg ICAgcmV2aXNpb249IiRudW1iZXJfcmV2aXNpb24iCi0rCSAgICA7OwotKwkgIGZyZWVic2QtYW91 dHxmcmVlYnNkLWVsZnxxbnh8c3Vub3MpCi0rCSAgICBjdXJyZW50PSIkbnVtYmVyX21ham9yIgot KwkgICAgcmV2aXNpb249IiRudW1iZXJfbWlub3IiCi0rCSAgICBhZ2U9IjAiCi0rCSAgICA7Owot KwkgIGlyaXh8bm9uc3RvcHV4KQotKwkgICAgZnVuY19hcml0aCAkbnVtYmVyX21ham9yICsgJG51 bWJlcl9taW5vcgotKwkgICAgY3VycmVudD0kZnVuY19hcml0aF9yZXN1bHQKLSsJICAgIGFnZT0i JG51bWJlcl9taW5vciIKLSsJICAgIHJldmlzaW9uPSIkbnVtYmVyX21pbm9yIgotKwkgICAgbHRf aXJpeF9pbmNyZW1lbnQ9bm8KLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCW5vKQotKwkg IGN1cnJlbnQ9IiQxIgotKwkgIHJldmlzaW9uPSIkMiIKLSsJICBhZ2U9IiQzIgotKwkgIDs7Ci0r CWVzYWMKLSsKLSsJIyBDaGVjayB0aGF0IGVhY2ggb2YgdGhlIHRoaW5ncyBhcmUgdmFsaWQgbnVt YmVycy4KLSsJY2FzZSAkY3VycmVudCBpbgotKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05 XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7 Ci0rCSopCi0rCSAgZnVuY19lcnJvciAiQ1VSUkVOVCBcYCRjdXJyZW50JyBtdXN0IGJlIGEgbm9u bmVnYXRpdmUgaW50ZWdlciIKLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90 IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRpb24iCi0rCSAgOzsKLSsJZXNhYwotKwotKwljYXNlICRy ZXZpc2lvbiBpbgotKwkwfFsxLTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAt OV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldWzAtOV0pIDs7Ci0rCSopCi0rCSAgZnVu Y19lcnJvciAiUkVWSVNJT04gXGAkcmV2aXNpb24nIG11c3QgYmUgYSBub25uZWdhdGl2ZSBpbnRl Z2VyIgotKwkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJHZpbmZvJyBpcyBub3QgdmFsaWQgdmVyc2lv biBpbmZvcm1hdGlvbiIKLSsJICA7OwotKwllc2FjCi0rCi0rCWNhc2UgJGFnZSBpbgotKwkwfFsx LTldfFsxLTldWzAtOV18WzEtOV1bMC05XVswLTldfFsxLTldWzAtOV1bMC05XVswLTldfFsxLTld WzAtOV1bMC05XVswLTldWzAtOV0pIDs7Ci0rCSopCi0rCSAgZnVuY19lcnJvciAiQUdFIFxgJGFn ZScgbXVzdCBiZSBhIG5vbm5lZ2F0aXZlIGludGVnZXIiCi0rCSAgZnVuY19mYXRhbF9lcnJvciAi XGAkdmluZm8nIGlzIG5vdCB2YWxpZCB2ZXJzaW9uIGluZm9ybWF0aW9uIgotKwkgIDs7Ci0rCWVz YWMKLSsKLSsJaWYgdGVzdCAiJGFnZSIgLWd0ICIkY3VycmVudCI7IHRoZW4KLSsJICBmdW5jX2Vy cm9yICJBR0UgXGAkYWdlJyBpcyBncmVhdGVyIHRoYW4gdGhlIGN1cnJlbnQgaW50ZXJmYWNlIG51 bWJlciBcYCRjdXJyZW50JyIKLSsJICBmdW5jX2ZhdGFsX2Vycm9yICJcYCR2aW5mbycgaXMgbm90 IHZhbGlkIHZlcnNpb24gaW5mb3JtYXRpb24iCi0rCWZpCi0rCi0rCSMgQ2FsY3VsYXRlIHRoZSB2 ZXJzaW9uIHZhcmlhYmxlcy4KLSsJbWFqb3I9Ci0rCXZlcnN1ZmZpeD0KLSsJdmVyc3RyaW5nPQot KwljYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsJbm9uZSkgOzsKLSsKLSsJZGFyd2luKQotKwkgICMg TGlrZSBMaW51eCwgYnV0IHdpdGggdGhlIGN1cnJlbnQgdmVyc2lvbiBhdmFpbGFibGUgaW4KLSsJ ICAjIHZlcnN0cmluZyBmb3IgY29kaW5nIGl0IGludG8gdGhlIGxpYnJhcnkgaGVhZGVyCi0rCSAg ZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKLSsJICBtYWpvcj0uJGZ1bmNfYXJpdGhfcmVzdWx0 Ci0rCSAgdmVyc3VmZml4PSIkbWFqb3IuJGFnZS4kcmV2aXNpb24iCi0rCSAgIyBEYXJ3aW4gbGQg ZG9lc24ndCBsaWtlIDAgZm9yIHRoZXNlIG9wdGlvbnMuLi4KLSsJICBmdW5jX2FyaXRoICRjdXJy ZW50ICsgMQotKwkgIG1pbm9yX2N1cnJlbnQ9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgeGxjdmVy c3RyaW5nPSIke3dsfS1jb21wYXRpYmlsaXR5X3ZlcnNpb24gJHt3bH0kbWlub3JfY3VycmVudCAk e3dsfS1jdXJyZW50X3ZlcnNpb24gJHt3bH0kbWlub3JfY3VycmVudC4kcmV2aXNpb24iCi0rCSAg dmVyc3RyaW5nPSItY29tcGF0aWJpbGl0eV92ZXJzaW9uICRtaW5vcl9jdXJyZW50IC1jdXJyZW50 X3ZlcnNpb24gJG1pbm9yX2N1cnJlbnQuJHJldmlzaW9uIgotKwkgIDs7Ci0rCi0rCWZyZWVic2Qt YW91dCkKLSsJICBtYWpvcj0iLiRjdXJyZW50IgotKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50LiRy ZXZpc2lvbiI7Ci0rCSAgOzsKLSsKLSsJZnJlZWJzZC1lbGYpCi0rCSAgbWFqb3I9Ii4kY3VycmVu dCIKLSsJICB2ZXJzdWZmaXg9Ii4kY3VycmVudCIKLSsJICA7OwotKwotKwlpcml4IHwgbm9uc3Rv cHV4KQotKwkgIGlmIHRlc3QgIlgkbHRfaXJpeF9pbmNyZW1lbnQiID0gIlhubyI7IHRoZW4KLSsJ ICAgIGZ1bmNfYXJpdGggJGN1cnJlbnQgLSAkYWdlCi0rCSAgZWxzZQotKwkgICAgZnVuY19hcml0 aCAkY3VycmVudCAtICRhZ2UgKyAxCi0rCSAgZmkKLSsJICBtYWpvcj0kZnVuY19hcml0aF9yZXN1 bHQKLSsKLSsJICBjYXNlICR2ZXJzaW9uX3R5cGUgaW4KLSsJICAgIG5vbnN0b3B1eCkgdmVyc3Ry aW5nX3ByZWZpeD1ub25zdG9wdXggOzsKLSsJICAgICopICAgICAgICAgdmVyc3RyaW5nX3ByZWZp eD1zZ2kgOzsKLSsJICBlc2FjCi0rCSAgdmVyc3RyaW5nPSIkdmVyc3RyaW5nX3ByZWZpeCRtYWpv ci4kcmV2aXNpb24iCi0rCi0rCSAgIyBBZGQgaW4gYWxsIHRoZSBpbnRlcmZhY2VzIHRoYXQgd2Ug YXJlIGNvbXBhdGlibGUgd2l0aC4KLSsJICBsb29wPSRyZXZpc2lvbgotKwkgIHdoaWxlIHRlc3Qg IiRsb29wIiAtbmUgMDsgZG8KLSsJICAgIGZ1bmNfYXJpdGggJHJldmlzaW9uIC0gJGxvb3AKLSsJ ICAgIGlmYWNlPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkgICAgZnVuY19hcml0aCAkbG9vcCAtIDEK LSsJICAgIGxvb3A9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgICB2ZXJzdHJpbmc9IiR2ZXJzdHJp bmdfcHJlZml4JG1ham9yLiRpZmFjZTokdmVyc3RyaW5nIgotKwkgIGRvbmUKLSsKLSsJICAjIEJl Zm9yZSB0aGlzIHBvaW50LCAkbWFqb3IgbXVzdCBub3QgY29udGFpbiBgLicuCi0rCSAgbWFqb3I9 LiRtYWpvcgotKwkgIHZlcnN1ZmZpeD0iJG1ham9yLiRyZXZpc2lvbiIKLSsJICA7OwotKwotKwls aW51eCkKLSsJICBmdW5jX2FyaXRoICRjdXJyZW50IC0gJGFnZQotKwkgIG1ham9yPS4kZnVuY19h cml0aF9yZXN1bHQKLSsJICB2ZXJzdWZmaXg9IiRtYWpvci4kYWdlLiRyZXZpc2lvbiIKLSsJICA7 OwotKwotKwlvc2YpCi0rCSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKLSsJICBtYWpvcj0u JGZ1bmNfYXJpdGhfcmVzdWx0Ci0rCSAgdmVyc3VmZml4PSIuJGN1cnJlbnQuJGFnZS4kcmV2aXNp b24iCi0rCSAgdmVyc3RyaW5nPSIkY3VycmVudC4kYWdlLiRyZXZpc2lvbiIKLSsKLSsJICAjIEFk ZCBpbiBhbGwgdGhlIGludGVyZmFjZXMgdGhhdCB3ZSBhcmUgY29tcGF0aWJsZSB3aXRoLgotKwkg IGxvb3A9JGFnZQotKwkgIHdoaWxlIHRlc3QgIiRsb29wIiAtbmUgMDsgZG8KLSsJICAgIGZ1bmNf YXJpdGggJGN1cnJlbnQgLSAkbG9vcAotKwkgICAgaWZhY2U9JGZ1bmNfYXJpdGhfcmVzdWx0Ci0r CSAgICBmdW5jX2FyaXRoICRsb29wIC0gMQotKwkgICAgbG9vcD0kZnVuY19hcml0aF9yZXN1bHQK LSsJICAgIHZlcnN0cmluZz0iJHZlcnN0cmluZzoke2lmYWNlfS4wIgotKwkgIGRvbmUKLSsKLSsJ ICAjIE1ha2UgZXhlY3V0YWJsZXMgZGVwZW5kIG9uIG91ciBjdXJyZW50IHZlcnNpb24uCi0rCSAg ZnVuY19hcHBlbmQgdmVyc3RyaW5nICI6JHtjdXJyZW50fS4wIgotKwkgIDs7Ci0rCi0rCXFueCkK LSsJICBtYWpvcj0iLiRjdXJyZW50IgotKwkgIHZlcnN1ZmZpeD0iLiRjdXJyZW50IgotKwkgIDs7 Ci0rCi0rCXN1bm9zKQotKwkgIG1ham9yPSIuJGN1cnJlbnQiCi0rCSAgdmVyc3VmZml4PSIuJGN1 cnJlbnQuJHJldmlzaW9uIgotKwkgIDs7Ci0rCi0rCXdpbmRvd3MpCi0rCSAgIyBVc2UgJy0nIHJh dGhlciB0aGFuICcuJywgc2luY2Ugd2Ugb25seSB3YW50IG9uZQotKwkgICMgZXh0ZW5zaW9uIG9u IERPUyA4LjMgZmlsZXN5c3RlbXMuCi0rCSAgZnVuY19hcml0aCAkY3VycmVudCAtICRhZ2UKLSsJ ICBtYWpvcj0kZnVuY19hcml0aF9yZXN1bHQKLSsJICB2ZXJzdWZmaXg9Ii0kbWFqb3IiCi0rCSAg OzsKLSsKLSsJKikKLSsJICBmdW5jX2ZhdGFsX2NvbmZpZ3VyYXRpb24gInVua25vd24gbGlicmFy eSB2ZXJzaW9uIHR5cGUgXGAkdmVyc2lvbl90eXBlJyIKLSsJICA7OwotKwllc2FjCi0rCi0rCSMg Q2xlYXIgdGhlIHZlcnNpb24gaW5mbyBpZiB3ZSBkZWZhdWx0ZWQsIGFuZCB0aGV5IHNwZWNpZmll ZCBhIHJlbGVhc2UuCi0rCWlmIHRlc3QgLXogIiR2aW5mbyIgJiYgdGVzdCAtbiAiJHJlbGVhc2Ui OyB0aGVuCi0rCSAgbWFqb3I9Ci0rCSAgY2FzZSAkdmVyc2lvbl90eXBlIGluCi0rCSAgZGFyd2lu KQotKwkgICAgIyB3ZSBjYW4ndCBjaGVjayBmb3IgIjAuMCIgaW4gYXJjaGl2ZV9jbWRzIGR1ZSB0 byBxdW90aW5nCi0rCSAgICAjIHByb2JsZW1zLCBzbyB3ZSByZXNldCBpdCBjb21wbGV0ZWx5Ci0r CSAgICB2ZXJzdHJpbmc9Ci0rCSAgICA7OwotKwkgICopCi0rCSAgICB2ZXJzdHJpbmc9IjAuMCIK LSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIGlmIHRlc3QgIiRuZWVkX3ZlcnNpb24iID0gbm87IHRo ZW4KLSsJICAgIHZlcnN1ZmZpeD0KLSsJICBlbHNlCi0rCSAgICB2ZXJzdWZmaXg9Ii4wLjAiCi0r CSAgZmkKLSsJZmkKLSsKLSsJIyBSZW1vdmUgdmVyc2lvbiBpbmZvIGZyb20gbmFtZSBpZiB2ZXJz aW9uaW5nIHNob3VsZCBiZSBhdm9pZGVkCi0rCWlmIHRlc3QgIiRhdm9pZF92ZXJzaW9uIiA9IHll cyAmJiB0ZXN0ICIkbmVlZF92ZXJzaW9uIiA9IG5vOyB0aGVuCi0rCSAgbWFqb3I9Ci0rCSAgdmVy c3VmZml4PQotKwkgIHZlcnN0cmluZz0iIgotKwlmaQotKwotKwkjIENoZWNrIHRvIHNlZSBpZiB0 aGUgYXJjaGl2ZSB3aWxsIGhhdmUgdW5kZWZpbmVkIHN5bWJvbHMuCi0rCWlmIHRlc3QgIiRhbGxv d191bmRlZmluZWQiID0geWVzOyB0aGVuCi0rCSAgaWYgdGVzdCAiJGFsbG93X3VuZGVmaW5lZF9m bGFnIiA9IHVuc3VwcG9ydGVkOyB0aGVuCi0rCSAgICBmdW5jX3dhcm5pbmcgInVuZGVmaW5lZCBz eW1ib2xzIG5vdCBhbGxvd2VkIGluICRob3N0IHNoYXJlZCBsaWJyYXJpZXMiCi0rCSAgICBidWls ZF9saWJ0b29sX2xpYnM9bm8KLSsJICAgIGJ1aWxkX29sZF9saWJzPXllcwotKwkgIGZpCi0rCWVs c2UKLSsJICAjIERvbid0IGFsbG93IHVuZGVmaW5lZCBzeW1ib2xzLgotKwkgIGFsbG93X3VuZGVm aW5lZF9mbGFnPSIkbm9fdW5kZWZpbmVkX2ZsYWciCi0rCWZpCi0rCi0rICAgICAgZmkKLSsKLSsg ICAgICBmdW5jX2dlbmVyYXRlX2Rsc3ltcyAiJGxpYm5hbWUiICIkbGlibmFtZSIgInllcyIKLSsg ICAgICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJHN5bWZpbGVvYmoiCi0rICAgICAgdGVzdCAiWCRs aWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KLSsKLSsgICAgICBpZiB0ZXN0ICIkb3B0X21vZGUi ICE9IHJlbGluazsgdGhlbgotKwkjIFJlbW92ZSBvdXIgb3V0cHV0cywgYnV0IGRvbid0IHJlbW92 ZSBvYmplY3QgZmlsZXMgc2luY2UgdGhleQotKwkjIG1heSBoYXZlIGJlZW4gY3JlYXRlZCB3aGVu IGNvbXBpbGluZyBQSUMgb2JqZWN0cy4KLSsJcmVtb3ZlbGlzdD0KLSsJdGVtcHJlbW92ZWxpc3Q9 YCRFQ0hPICIkb3V0cHV0X29iamRpci8qImAKLSsJZm9yIHAgaW4gJHRlbXByZW1vdmVsaXN0OyBk bwotKwkgIGNhc2UgJHAgaW4KLSsJICAgICouJG9iamV4dCB8ICouZ2NubykKLSsJICAgICAgIDs7 Ci0rCSAgICAkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSB8ICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lLiogfCAkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9JHtyZWxlYXNlfS4qKQotKwkgICAgICAg aWYgdGVzdCAiWCRwcmVjaW91c19maWxlc19yZWdleCIgIT0gIlgiOyB0aGVuCi0rCQkgaWYgJEVD SE8gIiRwIiB8ICRFR1JFUCAtZSAiJHByZWNpb3VzX2ZpbGVzX3JlZ2V4IiA+L2Rldi9udWxsIDI+ JjEKLSsJCSB0aGVuCi0rCQkgICBjb250aW51ZQotKwkJIGZpCi0rCSAgICAgICBmaQotKwkgICAg ICAgZnVuY19hcHBlbmQgcmVtb3ZlbGlzdCAiICRwIgotKwkgICAgICAgOzsKLSsJICAgICopIDs7 Ci0rCSAgZXNhYwotKwlkb25lCi0rCXRlc3QgLW4gIiRyZW1vdmVsaXN0IiAmJiBcCi0rCSAgZnVu Y19zaG93X2V2YWwgIiR7Uk19ciBcJHJlbW92ZWxpc3QiCi0rICAgICAgZmkKLSsKLSsgICAgICAj IE5vdyBzZXQgdGhlIHZhcmlhYmxlcyBmb3IgYnVpbGRpbmcgb2xkIGxpYnJhcmllcy4KLSsgICAg ICBpZiB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYmIHRlc3QgIiRidWlsZF9saWJ0b29s X2xpYnMiICE9IGNvbnZlbmllbmNlIDsgdGhlbgotKwlmdW5jX2FwcGVuZCBvbGRsaWJzICIgJG91 dHB1dF9vYmpkaXIvJGxpYm5hbWUuJGxpYmV4dCIKLSsKLSsJIyBUcmFuc2Zvcm0gLmxvIGZpbGVz IHRvIC5vIGZpbGVzLgotKwlvbGRvYmpzPSIkb2JqcyAiYCRFQ0hPICIkbGlib2JqcyIgfCAkU1Ay TkwgfCAkU0VEICIvXC4ke2xpYmV4dH0kL2Q7ICRsbzJvIiB8ICROTDJTUGAKLSsgICAgICBmaQot KwotKyAgICAgICMgRWxpbWluYXRlIGFsbCB0ZW1wb3JhcnkgZGlyZWN0b3JpZXMuCi0rICAgICAg I2ZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRvCi0rICAgICAgIwlsaWJfc2VhcmNoX3BhdGg9 YCRFQ0hPICIkbGliX3NlYXJjaF9wYXRoICIgfCAkU0VEICJzJSAkcGF0aCAlICVnImAKLSsgICAg ICAjCWRlcGxpYnM9YCRFQ0hPICIkZGVwbGlicyAiIHwgJFNFRCAicyUgLUwkcGF0aCAlICVnImAK LSsgICAgICAjCWRlcGVuZGVuY3lfbGlicz1gJEVDSE8gIiRkZXBlbmRlbmN5X2xpYnMgIiB8ICRT RUQgInMlIC1MJHBhdGggJSAlZyJgCi0rICAgICAgI2RvbmUKLSsKLSsgICAgICBpZiB0ZXN0IC1u ICIkeHJwYXRoIjsgdGhlbgotKwkjIElmIHRoZSB1c2VyIHNwZWNpZmllZCBhbnkgcnBhdGggZmxh Z3MsIHRoZW4gYWRkIHRoZW0uCi0rCXRlbXBfeHJwYXRoPQotKwlmb3IgbGliZGlyIGluICR4cnBh dGg7IGRvCi0rCSAgZnVuY19yZXBsYWNlX3N5c3Jvb3QgIiRsaWJkaXIiCi0rCSAgZnVuY19hcHBl bmQgdGVtcF94cnBhdGggIiAtUiRmdW5jX3JlcGxhY2Vfc3lzcm9vdF9yZXN1bHQiCi0rCSAgY2Fz ZSAiJGZpbmFsaXplX3JwYXRoICIgaW4KLSsJICAqIiAkbGliZGlyICIqKSA7OwotKwkgICopIGZ1 bmNfYXBwZW5kIGZpbmFsaXplX3JwYXRoICIgJGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWRvbmUK LSsJaWYgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgIT0geWVzIHx8IHRlc3QgIiRidWlsZF9v bGRfbGlicyIgPSB5ZXM7IHRoZW4KLSsJICBkZXBlbmRlbmN5X2xpYnM9IiR0ZW1wX3hycGF0aCAk ZGVwZW5kZW5jeV9saWJzIgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBNYWtlIHN1cmUg ZGxmaWxlcyBjb250YWlucyBvbmx5IHVuaXF1ZSBmaWxlcyB0aGF0IHdvbid0IGJlIGRscHJlb3Bl bmVkCi0rICAgICAgb2xkX2RsZmlsZXM9IiRkbGZpbGVzIgotKyAgICAgIGRsZmlsZXM9Ci0rICAg ICAgZm9yIGxpYiBpbiAkb2xkX2RsZmlsZXM7IGRvCi0rCWNhc2UgIiAkZGxwcmVmaWxlcyAkZGxm aWxlcyAiIGluCi0rCSoiICRsaWIgIiopIDs7Ci0rCSopIGZ1bmNfYXBwZW5kIGRsZmlsZXMgIiAk bGliIiA7OwotKwllc2FjCi0rICAgICAgZG9uZQotKwotKyAgICAgICMgTWFrZSBzdXJlIGRscHJl ZmlsZXMgY29udGFpbnMgb25seSB1bmlxdWUgZmlsZXMKLSsgICAgICBvbGRfZGxwcmVmaWxlcz0i JGRscHJlZmlsZXMiCi0rICAgICAgZGxwcmVmaWxlcz0KLSsgICAgICBmb3IgbGliIGluICRvbGRf ZGxwcmVmaWxlczsgZG8KLSsJY2FzZSAiJGRscHJlZmlsZXMgIiBpbgotKwkqIiAkbGliICIqKSA7 OwotKwkqKSBmdW5jX2FwcGVuZCBkbHByZWZpbGVzICIgJGxpYiIgOzsKLSsJZXNhYwotKyAgICAg IGRvbmUKLSsKLSsgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiA9IHllczsgdGhl bgotKwlpZiB0ZXN0IC1uICIkcnBhdGgiOyB0aGVuCi0rCSAgY2FzZSAkaG9zdCBpbgotKwkgICot Ki1jeWd3aW4qIHwgKi0qLW1pbmd3KiB8ICotKi1wdzMyKiB8ICotKi1vczIqIHwgKi0qLWJlb3Mq IHwgKi1jZWdjYyogfCAqLSotaGFpa3UqKQotKwkgICAgIyB0aGVzZSBzeXN0ZW1zIGRvbid0IGFj dHVhbGx5IGhhdmUgYSBjIGxpYnJhcnkgKGFzIHN1Y2gpIQotKwkgICAgOzsKLSsJICAqLSotcmhh cHNvZHkqIHwgKi0qLWRhcndpbjEuWzAxMl0pCi0rCSAgICAjIFJoYXBzb2R5IEMgbGlicmFyeSBp cyBpbiB0aGUgU3lzdGVtIGZyYW1ld29yawotKwkgICAgZnVuY19hcHBlbmQgZGVwbGlicyAiIFN5 c3RlbS5sdGZyYW1ld29yayIKLSsJICAgIDs7Ci0rCSAgKi0qLW5ldGJzZCopCi0rCSAgICAjIERv bid0IGxpbmsgd2l0aCBsaWJjIHVudGlsIHRoZSBhLm91dCBsZC5zbyBpcyBmaXhlZC4KLSsJICAg IDs7Ci0rCSAgKi0qLW9wZW5ic2QqIHwgKi0qLWZyZWVic2QqIHwgKi0qLWRyYWdvbmZseSopCi0r CSAgICAjIERvIG5vdCBpbmNsdWRlIGxpYmMgZHVlIHRvIHVzIGhhdmluZyBsaWJjL2xpYmNfci4K LSsJICAgIDs7Ci0rCSAgKi0qLXNjbzMuMnY1KiB8ICotKi1zY281djYqKQotKwkgICAgIyBDYXVz ZXMgcHJvYmxlbXMgd2l0aCBfX2N0eXBlCi0rCSAgICA7OwotKwkgICotKi1zeXN2NC4ydXcyKiB8 ICotKi1zeXN2NSogfCAqLSotdW5peHdhcmUqIHwgKi0qLU9wZW5VTklYKikKLSsJICAgICMgQ29t cGlsZXIgaW5zZXJ0cyBsaWJjIGluIHRoZSBjb3JyZWN0IHBsYWNlIGZvciB0aHJlYWRzIHRvIHdv cmsKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgICMgQWRkIGxpYmMgdG8gZGVwbGlicyBvbiBhbGwg b3RoZXIgc3lzdGVtcyBpZiBuZWNlc3NhcnkuCi0rCSAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9v bF9uZWVkX2xjIiA9ICJ5ZXMiOyB0aGVuCi0rCSAgICAgIGZ1bmNfYXBwZW5kIGRlcGxpYnMgIiAt bGMiCi0rCSAgICBmaQotKwkgICAgOzsKLSsJICBlc2FjCi0rCWZpCi0rCi0rCSMgVHJhbnNmb3Jt IGRlcGxpYnMgaW50byBvbmx5IGRlcGxpYnMgdGhhdCBjYW4gYmUgbGlua2VkIGluIHNoYXJlZC4K LSsJbmFtZV9zYXZlPSRuYW1lCi0rCWxpYm5hbWVfc2F2ZT0kbGlibmFtZQotKwlyZWxlYXNlX3Nh dmU9JHJlbGVhc2UKLSsJdmVyc3VmZml4X3NhdmU9JHZlcnN1ZmZpeAotKwltYWpvcl9zYXZlPSRt YWpvcgotKwkjIEknbSBub3Qgc3VyZSBpZiBJJ20gdHJlYXRpbmcgdGhlIHJlbGVhc2UgY29ycmVj dGx5LiAgSSB0aGluawotKwkjIHJlbGVhc2Ugc2hvdWxkIHNob3cgdXAgaW4gdGhlIC1sIChpZSAt bGdtcDUpIHNvIHdlIGRvbid0IHdhbnQgdG8KLSsJIyBhZGQgaXQgaW4gdHdpY2UuICBJcyB0aGF0 IGNvcnJlY3Q/Ci0rCXJlbGVhc2U9IiIKLSsJdmVyc3VmZml4PSIiCi0rCW1ham9yPSIiCi0rCW5l d2RlcGxpYnM9Ci0rCWRyb3BwZWRkZXBzPW5vCi0rCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9k IGluCi0rCXBhc3NfYWxsKQotKwkgICMgRG9uJ3QgY2hlY2sgZm9yIHNoYXJlZC9zdGF0aWMuICBF dmVyeXRoaW5nIHdvcmtzLgotKwkgICMgVGhpcyBtaWdodCBiZSBhIGxpdHRsZSBuYWl2ZS4gIFdl IG1pZ2h0IHdhbnQgdG8gY2hlY2sKLSsJICAjIHdoZXRoZXIgdGhlIGxpYnJhcnkgZXhpc3RzIG9y IG5vdC4gIEJ1dCB0aGlzIGlzIG9uCi0rCSAgIyBvc2YzICYgb3NmNCBhbmQgSSdtIG5vdCByZWFs bHkgc3VyZS4uLiBKdXN0Ci0rCSAgIyBpbXBsZW1lbnRpbmcgd2hhdCB3YXMgYWxyZWFkeSB0aGUg YmVoYXZpb3IuCi0rCSAgbmV3ZGVwbGlicz0kZGVwbGlicwotKwkgIDs7Ci0rCXRlc3RfY29tcGls ZSkKLSsJICAjIFRoaXMgY29kZSBzdHJlc3NlcyB0aGUgImxpYnJhcmllcyBhcmUgcHJvZ3JhbXMi IHBhcmFkaWdtIHRvIGl0cwotKwkgICMgbGltaXRzLiBNYXliZSBldmVuIGJyZWFrcyBpdC4gIFdl IGNvbXBpbGUgYSBwcm9ncmFtLCBsaW5raW5nIGl0Ci0rCSAgIyBhZ2FpbnN0IHRoZSBkZXBsaWJz IGFzIGEgcHJveHkgZm9yIHRoZSBsaWJyYXJ5LiAgVGhlbiB3ZSBjYW4gY2hlY2sKLSsJICAjIHdo ZXRoZXIgdGhleSBsaW5rZWQgaW4gc3RhdGljYWxseSBvciBkeW5hbWljYWxseSB3aXRoIGxkZC4K LSsJICAkb3B0X2RyeV9ydW4gfHwgJFJNIGNvbmZ0ZXN0LmMKLSsJICBjYXQgPiBjb25mdGVzdC5j IDw8RU9GCi0rCSAgaW50IG1haW4oKSB7IHJldHVybiAwOyB9Ci0rRU9GCi0rCSAgJG9wdF9kcnlf cnVuIHx8ICRSTSBjb25mdGVzdAotKwkgIGlmICRMVENDICRMVENGTEFHUyAtbyBjb25mdGVzdCBj b25mdGVzdC5jICRkZXBsaWJzOyB0aGVuCi0rCSAgICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3Rg Ci0rCSAgICBmb3IgaSBpbiAkZGVwbGliczsgZG8KLSsJICAgICAgY2FzZSAkaSBpbgotKwkgICAg ICAtbCopCi0rCQlmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGkiCi0rCQluYW1lPSRmdW5jX3N0cmlw bmFtZV9yZXN1bHQKLSsJCWlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJzX3dpdGhfc3RhdGlj X3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJCSAgY2FzZSAiICRwcmVkZXBzICRwb3N0ZGVw cyAiIGluCi0rCQkgICoiICRpICIqKQotKwkJICAgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAk aSIKLSsJCSAgICBpPSIiCi0rCQkgICAgOzsKLSsJCSAgZXNhYwotKwkJZmkKLSsJCWlmIHRlc3Qg LW4gIiRpIiA7IHRoZW4KLSsJCSAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3Nw ZWNcIiJgCi0rCQkgIGRlcGxpYl9tYXRjaGVzPWBldmFsICJcXCRFQ0hPIFwiJGxpYnJhcnlfbmFt ZXNfc3BlY1wiImAKLSsJCSAgc2V0IGR1bW15ICRkZXBsaWJfbWF0Y2hlczsgc2hpZnQKLSsJCSAg ZGVwbGliX21hdGNoPSQxCi0rCQkgIGlmIHRlc3QgYGV4cHIgIiRsZGRfb3V0cHV0IiA6ICIuKiRk ZXBsaWJfbWF0Y2giYCAtbmUgMCA7IHRoZW4KLSsJCSAgICBmdW5jX2FwcGVuZCBuZXdkZXBsaWJz ICIgJGkiCi0rCQkgIGVsc2UKLSsJCSAgICBkcm9wcGVkZGVwcz15ZXMKLSsJCSAgICBlY2hvCi0r CQkgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2NlcHQg bmVlZGVkIGxpYnJhcnkgJGkuIgotKwkJICAgIGVjaG8gIioqKiBJIGhhdmUgdGhlIGNhcGFiaWxp dHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGljYWxseSBsaW5rIGluIHdoZW4iCi0rCQkg ICAgZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRv IHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJCSAgICBlY2hvICIqKiogc2hhcmVkIHZlcnNpb24gb2Yg dGhlIGxpYnJhcnksIHdoaWNoIEkgYmVsaWV2ZSB5b3UgZG8gbm90IGhhdmUiCi0rCQkgICAgZWNo byAiKioqIGJlY2F1c2UgYSB0ZXN0X2NvbXBpbGUgZGlkIHJldmVhbCB0aGF0IHRoZSBsaW5rZXIg ZGlkIG5vdCB1c2UgaXQgZm9yIgotKwkJICAgIGVjaG8gIioqKiBpdHMgZHluYW1pYyBkZXBlbmRl bmN5IGxpc3QgdGhhdCBwcm9ncmFtcyBnZXQgcmVzb2x2ZWQgd2l0aCBhdCBydW50aW1lLiIKLSsJ CSAgZmkKLSsJCWZpCi0rCQk7OwotKwkgICAgICAqKQotKwkJZnVuY19hcHBlbmQgbmV3ZGVwbGli cyAiICRpIgotKwkJOzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgIGVsc2UKLSsJICAg ICMgRXJyb3Igb2NjdXJyZWQgaW4gdGhlIGZpcnN0IGNvbXBpbGUuICBMZXQncyB0cnkgdG8gc2Fs dmFnZQotKwkgICAgIyB0aGUgc2l0dWF0aW9uOiBDb21waWxlIGEgc2VwYXJhdGUgcHJvZ3JhbSBm b3IgZWFjaCBsaWJyYXJ5LgotKwkgICAgZm9yIGkgaW4gJGRlcGxpYnM7IGRvCi0rCSAgICAgIGNh c2UgJGkgaW4KLSsJICAgICAgLWwqKQotKwkJZnVuY19zdHJpcG5hbWUgLWwgJycgIiRpIgotKwkJ bmFtZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0Ci0rCQkkb3B0X2RyeV9ydW4gfHwgJFJNIGNvbmZ0 ZXN0Ci0rCQlpZiAkTFRDQyAkTFRDRkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAkaTsgdGhl bgotKwkJICBsZGRfb3V0cHV0PWBsZGQgY29uZnRlc3RgCi0rCQkgIGlmIHRlc3QgIlgkYWxsb3df bGlidG9vbF9saWJzX3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJCSAg ICBjYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KLSsJCSAgICAqIiAkaSAiKikKLSsJCSAg ICAgIGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkaSIKLSsJCSAgICAgIGk9IiIKLSsJCSAgICAg IDs7Ci0rCQkgICAgZXNhYwotKwkJICBmaQotKwkJICBpZiB0ZXN0IC1uICIkaSIgOyB0aGVuCi0r CQkgICAgbGlibmFtZT1gZXZhbCAiXFwkRUNITyBcIiRsaWJuYW1lX3NwZWNcIiJgCi0rCQkgICAg ZGVwbGliX21hdGNoZXM9YGV2YWwgIlxcJEVDSE8gXCIkbGlicmFyeV9uYW1lc19zcGVjXCIiYAot KwkJICAgIHNldCBkdW1teSAkZGVwbGliX21hdGNoZXM7IHNoaWZ0Ci0rCQkgICAgZGVwbGliX21h dGNoPSQxCi0rCQkgICAgaWYgdGVzdCBgZXhwciAiJGxkZF9vdXRwdXQiIDogIi4qJGRlcGxpYl9t YXRjaCJgIC1uZSAwIDsgdGhlbgotKwkJICAgICAgZnVuY19hcHBlbmQgbmV3ZGVwbGlicyAiICRp IgotKwkJICAgIGVsc2UKLSsJCSAgICAgIGRyb3BwZWRkZXBzPXllcwotKwkJICAgICAgZWNobwot KwkJICAgICAgJEVDSE8gIioqKiBXYXJuaW5nOiBkeW5hbWljIGxpbmtlciBkb2VzIG5vdCBhY2Nl cHQgbmVlZGVkIGxpYnJhcnkgJGkuIgotKwkJICAgICAgZWNobyAiKioqIEkgaGF2ZSB0aGUgY2Fw YWJpbGl0eSB0byBtYWtlIHRoYXQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGxpbmsgaW4gd2hlbiIK LSsJCSAgICAgIGVjaG8gIioqKiB5b3UgbGluayB0byB0aGlzIGxpYnJhcnkuICBCdXQgSSBjYW4g b25seSBkbyB0aGlzIGlmIHlvdSBoYXZlIGEiCi0rCQkgICAgICBlY2hvICIqKiogc2hhcmVkIHZl cnNpb24gb2YgdGhlIGxpYnJhcnksIHdoaWNoIHlvdSBkbyBub3QgYXBwZWFyIHRvIGhhdmUiCi0r CQkgICAgICBlY2hvICIqKiogYmVjYXVzZSBhIHRlc3RfY29tcGlsZSBkaWQgcmV2ZWFsIHRoYXQg dGhlIGxpbmtlciBkaWQgbm90IHVzZSB0aGlzIG9uZSIKLSsJCSAgICAgIGVjaG8gIioqKiBhcyBh IGR5bmFtaWMgZGVwZW5kZW5jeSB0aGF0IHByb2dyYW1zIGNhbiBnZXQgcmVzb2x2ZWQgd2l0aCBh dCBydW50aW1lLiIKLSsJCSAgICBmaQotKwkJICBmaQotKwkJZWxzZQotKwkJICBkcm9wcGVkZGVw cz15ZXMKLSsJCSAgZWNobwotKwkJICAkRUNITyAiKioqIFdhcm5pbmchICBMaWJyYXJ5ICRpIGlz IG5lZWRlZCBieSB0aGlzIGxpYnJhcnkgYnV0IEkgd2FzIG5vdCBhYmxlIHRvIgotKwkJICBlY2hv ICIqKiogbWFrZSBpdCBsaW5rIGluISAgWW91IHdpbGwgcHJvYmFibHkgbmVlZCB0byBpbnN0YWxs IGl0IG9yIHNvbWUiCi0rCQkgIGVjaG8gIioqKiBsaWJyYXJ5IHRoYXQgaXQgZGVwZW5kcyBvbiBi ZWZvcmUgdGhpcyBsaWJyYXJ5IHdpbGwgYmUgZnVsbHkiCi0rCQkgIGVjaG8gIioqKiBmdW5jdGlv bmFsLiAgSW5zdGFsbGluZyBpdCBiZWZvcmUgY29udGludWluZyB3b3VsZCBiZSBldmVuIGJldHRl ci4iCi0rCQlmaQotKwkJOzsKLSsJICAgICAgKikKLSsJCWZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMg IiAkaSIKLSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJICBmaQotKwkgIDs7Ci0r CWZpbGVfbWFnaWMqKQotKwkgIHNldCBkdW1teSAkZGVwbGlic19jaGVja19tZXRob2Q7IHNoaWZ0 Ci0rCSAgZmlsZV9tYWdpY19yZWdleD1gZXhwciAiJGRlcGxpYnNfY2hlY2tfbWV0aG9kIiA6ICIk MSBcKC4qXCkiYAotKwkgIGZvciBhX2RlcGxpYiBpbiAkZGVwbGliczsgZG8KLSsJICAgIGNhc2Ug JGFfZGVwbGliIGluCi0rCSAgICAtbCopCi0rCSAgICAgIGZ1bmNfc3RyaXBuYW1lIC1sICcnICIk YV9kZXBsaWIiCi0rCSAgICAgIG5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgICAgICBp ZiB0ZXN0ICJYJGFsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19ydW50aW1lcyIgPSAiWHll cyIgOyB0aGVuCi0rCQljYXNlICIgJHByZWRlcHMgJHBvc3RkZXBzICIgaW4KLSsJCSoiICRhX2Rl cGxpYiAiKikKLSsJCSAgZnVuY19hcHBlbmQgbmV3ZGVwbGlicyAiICRhX2RlcGxpYiIKLSsJCSAg YV9kZXBsaWI9IiIKLSsJCSAgOzsKLSsJCWVzYWMKLSsJICAgICAgZmkKLSsJICAgICAgaWYgdGVz dCAtbiAiJGFfZGVwbGliIiA7IHRoZW4KLSsJCWxpYm5hbWU9YGV2YWwgIlxcJEVDSE8gXCIkbGli bmFtZV9zcGVjXCIiYAotKwkJaWYgdGVzdCAtbiAiJGZpbGVfbWFnaWNfZ2xvYiI7IHRoZW4KLSsJ CSAgbGlibmFtZWdsb2I9YGZ1bmNfZWNob19hbGwgIiRsaWJuYW1lIiB8ICRTRUQgLWUgJGZpbGVf bWFnaWNfZ2xvYmAKLSsJCWVsc2UKLSsJCSAgbGlibmFtZWdsb2I9JGxpYm5hbWUKLSsJCWZpCi0r CQl0ZXN0ICIkd2FudF9ub2Nhc2VnbG9iIiA9IHllcyAmJiBub2Nhc2VnbG9iPWBzaG9wdCAtcCBu b2Nhc2VnbG9iYAotKwkJZm9yIGkgaW4gJGxpYl9zZWFyY2hfcGF0aCAkc3lzX2xpYl9zZWFyY2hf cGF0aCAkc2hsaWJfc2VhcmNoX3BhdGg7IGRvCi0rCQkgIGlmIHRlc3QgIiR3YW50X25vY2FzZWds b2IiID0geWVzOyB0aGVuCi0rCQkgICAgc2hvcHQgLXMgbm9jYXNlZ2xvYgotKwkJICAgIHBvdGVu dGlhbF9saWJzPWBscyAkaS8kbGlibmFtZWdsb2JbLi1dKiAyPi9kZXYvbnVsbGAKLSsJCSAgICAk bm9jYXNlZ2xvYgotKwkJICBlbHNlCi0rCQkgICAgcG90ZW50aWFsX2xpYnM9YGxzICRpLyRsaWJu YW1lZ2xvYlsuLV0qIDI+L2Rldi9udWxsYAotKwkJICBmaQotKwkJICBmb3IgcG90ZW50X2xpYiBp biAkcG90ZW50aWFsX2xpYnM7IGRvCi0rCQkgICAgICAjIEZvbGxvdyBzb2Z0IGxpbmtzLgotKwkJ ICAgICAgaWYgbHMgLWxMZCAiJHBvdGVudF9saWIiIDI+L2Rldi9udWxsIHwKLSsJCQkgJEdSRVAg IiAtPiAiID4vZGV2L251bGw7IHRoZW4KLSsJCQljb250aW51ZQotKwkJICAgICAgZmkKLSsJCSAg ICAgICMgVGhlIHN0YXRlbWVudCBhYm92ZSB0cmllcyB0byBhdm9pZCBlbnRlcmluZyBhbgotKwkJ ICAgICAgIyBlbmRsZXNzIGxvb3AgYmVsb3csIGluIGNhc2Ugb2YgY3ljbGljIGxpbmtzLgotKwkJ ICAgICAgIyBXZSBtaWdodCBzdGlsbCBlbnRlciBhbiBlbmRsZXNzIGxvb3AsIHNpbmNlIGEgbGlu awotKwkJICAgICAgIyBsb29wIGNhbiBiZSBjbG9zZWQgd2hpbGUgd2UgZm9sbG93IGxpbmtzLAot KwkJICAgICAgIyBidXQgc28gd2hhdD8KLSsJCSAgICAgIHBvdGxpYj0iJHBvdGVudF9saWIiCi0r CQkgICAgICB3aGlsZSB0ZXN0IC1oICIkcG90bGliIiAyPi9kZXYvbnVsbDsgZG8KLSsJCQlwb3Rs aWJsaW5rPWBscyAtbGQgJHBvdGxpYiB8ICR7U0VEfSAncy8uKiAtPiAvLydgCi0rCQkJY2FzZSAk cG90bGlibGluayBpbgotKwkJCVtcXC9dKiB8IFtBLVphLXpdOltcXC9dKikgcG90bGliPSIkcG90 bGlibGluayI7OwotKwkJCSopIHBvdGxpYj1gJEVDSE8gIiRwb3RsaWIiIHwgJFNFRCAncyxbXi9d KiQsLCdgIiRwb3RsaWJsaW5rIjs7Ci0rCQkJZXNhYwotKwkJICAgICAgZG9uZQotKwkJICAgICAg aWYgZXZhbCAkZmlsZV9tYWdpY19jbWQgXCJcJHBvdGxpYlwiIDI+L2Rldi9udWxsIHwKLSsJCQkg JFNFRCAtZSAxMHEgfAotKwkJCSAkRUdSRVAgIiRmaWxlX21hZ2ljX3JlZ2V4IiA+IC9kZXYvbnVs bDsgdGhlbgotKwkJCWZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkYV9kZXBsaWIiCi0rCQkJYV9k ZXBsaWI9IiIKLSsJCQlicmVhayAyCi0rCQkgICAgICBmaQotKwkJICBkb25lCi0rCQlkb25lCi0r CSAgICAgIGZpCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxpYiIgOyB0aGVuCi0rCQlkcm9w cGVkZGVwcz15ZXMKLSsJCWVjaG8KLSsJCSRFQ0hPICIqKiogV2FybmluZzogbGlua2VyIHBhdGgg ZG9lcyBub3QgaGF2ZSByZWFsIGZpbGUgZm9yIGxpYnJhcnkgJGFfZGVwbGliLiIKLSsJCWVjaG8g IioqKiBJIGhhdmUgdGhlIGNhcGFiaWxpdHkgdG8gbWFrZSB0aGF0IGxpYnJhcnkgYXV0b21hdGlj YWxseSBsaW5rIGluIHdoZW4iCi0rCQllY2hvICIqKiogeW91IGxpbmsgdG8gdGhpcyBsaWJyYXJ5 LiAgQnV0IEkgY2FuIG9ubHkgZG8gdGhpcyBpZiB5b3UgaGF2ZSBhIgotKwkJZWNobyAiKioqIHNo YXJlZCB2ZXJzaW9uIG9mIHRoZSBsaWJyYXJ5LCB3aGljaCB5b3UgZG8gbm90IGFwcGVhciB0byBo YXZlIgotKwkJZWNobyAiKioqIGJlY2F1c2UgSSBkaWQgY2hlY2sgdGhlIGxpbmtlciBwYXRoIGxv b2tpbmcgZm9yIGEgZmlsZSBzdGFydGluZyIKLSsJCWlmIHRlc3QgLXogIiRwb3RsaWIiIDsgdGhl bgotKwkJICAkRUNITyAiKioqIHdpdGggJGxpYm5hbWUgYnV0IG5vIGNhbmRpZGF0ZXMgd2VyZSBm b3VuZC4gKC4uLmZvciBmaWxlIG1hZ2ljIHRlc3QpIgotKwkJZWxzZQotKwkJICAkRUNITyAiKioq IHdpdGggJGxpYm5hbWUgYW5kIG5vbmUgb2YgdGhlIGNhbmRpZGF0ZXMgcGFzc2VkIGEgZmlsZSBm b3JtYXQgdGVzdCIKLSsJCSAgJEVDSE8gIioqKiB1c2luZyBhIGZpbGUgbWFnaWMuIExhc3QgZmls ZSBjaGVja2VkOiAkcG90bGliIgotKwkJZmkKLSsJICAgICAgZmkKLSsJICAgICAgOzsKLSsJICAg ICopCi0rCSAgICAgICMgQWRkIGEgLUwgYXJndW1lbnQuCi0rCSAgICAgIGZ1bmNfYXBwZW5kIG5l d2RlcGxpYnMgIiAkYV9kZXBsaWIiCi0rCSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgZG9uZSAj IEdvbmUgdGhyb3VnaCBhbGwgZGVwbGlicy4KLSsJICA7OwotKwltYXRjaF9wYXR0ZXJuKikKLSsJ ICBzZXQgZHVtbXkgJGRlcGxpYnNfY2hlY2tfbWV0aG9kOyBzaGlmdAotKwkgIG1hdGNoX3BhdHRl cm5fcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiJDEgXCguKlwpImAKLSsJ ICBmb3IgYV9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCSAgICBjYXNlICRhX2RlcGxpYiBpbgot KwkgICAgLWwqKQotKwkgICAgICBmdW5jX3N0cmlwbmFtZSAtbCAnJyAiJGFfZGVwbGliIgotKwkg ICAgICBuYW1lPSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQKLSsJICAgICAgaWYgdGVzdCAiWCRhbGxv d19saWJ0b29sX2xpYnNfd2l0aF9zdGF0aWNfcnVudGltZXMiID0gIlh5ZXMiIDsgdGhlbgotKwkJ Y2FzZSAiICRwcmVkZXBzICRwb3N0ZGVwcyAiIGluCi0rCQkqIiAkYV9kZXBsaWIgIiopCi0rCQkg IGZ1bmNfYXBwZW5kIG5ld2RlcGxpYnMgIiAkYV9kZXBsaWIiCi0rCQkgIGFfZGVwbGliPSIiCi0r CQkgIDs7Ci0rCQllc2FjCi0rCSAgICAgIGZpCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRhX2RlcGxp YiIgOyB0aGVuCi0rCQlsaWJuYW1lPWBldmFsICJcXCRFQ0hPIFwiJGxpYm5hbWVfc3BlY1wiImAK LSsJCWZvciBpIGluICRsaWJfc2VhcmNoX3BhdGggJHN5c19saWJfc2VhcmNoX3BhdGggJHNobGli X3NlYXJjaF9wYXRoOyBkbwotKwkJICBwb3RlbnRpYWxfbGlicz1gbHMgJGkvJGxpYm5hbWVbLi1d KiAyPi9kZXYvbnVsbGAKLSsJCSAgZm9yIHBvdGVudF9saWIgaW4gJHBvdGVudGlhbF9saWJzOyBk bwotKwkJICAgIHBvdGxpYj0iJHBvdGVudF9saWIiICMgc2VlIHN5bWxpbmstY2hlY2sgYWJvdmUg aW4gZmlsZV9tYWdpYyB0ZXN0Ci0rCQkgICAgaWYgZXZhbCAiXCRFQ0hPIFwiJHBvdGVudF9saWJc IiIgMj4vZGV2L251bGwgfCAkU0VEIDEwcSB8IFwKLSsJCSAgICAgICAkRUdSRVAgIiRtYXRjaF9w YXR0ZXJuX3JlZ2V4IiA+IC9kZXYvbnVsbDsgdGhlbgotKwkJICAgICAgZnVuY19hcHBlbmQgbmV3 ZGVwbGlicyAiICRhX2RlcGxpYiIKLSsJCSAgICAgIGFfZGVwbGliPSIiCi0rCQkgICAgICBicmVh ayAyCi0rCQkgICAgZmkKLSsJCSAgZG9uZQotKwkJZG9uZQotKwkgICAgICBmaQotKwkgICAgICBp ZiB0ZXN0IC1uICIkYV9kZXBsaWIiIDsgdGhlbgotKwkJZHJvcHBlZGRlcHM9eWVzCi0rCQllY2hv Ci0rCQkkRUNITyAiKioqIFdhcm5pbmc6IGxpbmtlciBwYXRoIGRvZXMgbm90IGhhdmUgcmVhbCBm aWxlIGZvciBsaWJyYXJ5ICRhX2RlcGxpYi4iCi0rCQllY2hvICIqKiogSSBoYXZlIHRoZSBjYXBh YmlsaXR5IHRvIG1ha2UgdGhhdCBsaWJyYXJ5IGF1dG9tYXRpY2FsbHkgbGluayBpbiB3aGVuIgot KwkJZWNobyAiKioqIHlvdSBsaW5rIHRvIHRoaXMgbGlicmFyeS4gIEJ1dCBJIGNhbiBvbmx5IGRv IHRoaXMgaWYgeW91IGhhdmUgYSIKLSsJCWVjaG8gIioqKiBzaGFyZWQgdmVyc2lvbiBvZiB0aGUg bGlicmFyeSwgd2hpY2ggeW91IGRvIG5vdCBhcHBlYXIgdG8gaGF2ZSIKLSsJCWVjaG8gIioqKiBi ZWNhdXNlIEkgZGlkIGNoZWNrIHRoZSBsaW5rZXIgcGF0aCBsb29raW5nIGZvciBhIGZpbGUgc3Rh cnRpbmciCi0rCQlpZiB0ZXN0IC16ICIkcG90bGliIiA7IHRoZW4KLSsJCSAgJEVDSE8gIioqKiB3 aXRoICRsaWJuYW1lIGJ1dCBubyBjYW5kaWRhdGVzIHdlcmUgZm91bmQuICguLi5mb3IgcmVnZXgg cGF0dGVybiB0ZXN0KSIKLSsJCWVsc2UKLSsJCSAgJEVDSE8gIioqKiB3aXRoICRsaWJuYW1lIGFu ZCBub25lIG9mIHRoZSBjYW5kaWRhdGVzIHBhc3NlZCBhIGZpbGUgZm9ybWF0IHRlc3QiCi0rCQkg ICRFQ0hPICIqKiogdXNpbmcgYSByZWdleCBwYXR0ZXJuLiBMYXN0IGZpbGUgY2hlY2tlZDogJHBv dGxpYiIKLSsJCWZpCi0rCSAgICAgIGZpCi0rCSAgICAgIDs7Ci0rCSAgICAqKQotKwkgICAgICAj IEFkZCBhIC1MIGFyZ3VtZW50LgotKwkgICAgICBmdW5jX2FwcGVuZCBuZXdkZXBsaWJzICIgJGFf ZGVwbGliIgotKwkgICAgICA7OwotKwkgICAgZXNhYwotKwkgIGRvbmUgIyBHb25lIHRocm91Z2gg YWxsIGRlcGxpYnMuCi0rCSAgOzsKLSsJbm9uZSB8IHVua25vd24gfCAqKQotKwkgIG5ld2RlcGxp YnM9IiIKLSsJICB0bXBfZGVwbGlicz1gJEVDSE8gIiAkZGVwbGlicyIgfCAkU0VEICdzLyAtbGMk Ly87IHMvIC1bTFJdW14gXSovL2cnYAotKwkgIGlmIHRlc3QgIlgkYWxsb3dfbGlidG9vbF9saWJz X3dpdGhfc3RhdGljX3J1bnRpbWVzIiA9ICJYeWVzIiA7IHRoZW4KLSsJICAgIGZvciBpIGluICRw cmVkZXBzICRwb3N0ZGVwcyA7IGRvCi0rCSAgICAgICMgY2FuJ3QgdXNlIFhzZWQgYmVsb3csIGJl Y2F1c2UgJGkgbWlnaHQgY29udGFpbiAnLycKLSsJICAgICAgdG1wX2RlcGxpYnM9YCRFQ0hPICIg JHRtcF9kZXBsaWJzIiB8ICRTRUQgInMsJGksLCJgCi0rCSAgICBkb25lCi0rCSAgZmkKLSsJICBj YXNlICR0bXBfZGVwbGlicyBpbgotKwkgICpbIVwJXCBdKikKLSsJICAgIGVjaG8KLSsJICAgIGlm IHRlc3QgIlgkZGVwbGlic19jaGVja19tZXRob2QiID0gIlhub25lIjsgdGhlbgotKwkgICAgICBl Y2hvICIqKiogV2FybmluZzogaW50ZXItbGlicmFyeSBkZXBlbmRlbmNpZXMgYXJlIG5vdCBzdXBw b3J0ZWQgaW4gdGhpcyBwbGF0Zm9ybS4iCi0rCSAgICBlbHNlCi0rCSAgICAgIGVjaG8gIioqKiBX YXJuaW5nOiBpbnRlci1saWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgbm90IGtub3duIHRvIGJlIHN1 cHBvcnRlZC4iCi0rCSAgICBmaQotKwkgICAgZWNobyAiKioqIEFsbCBkZWNsYXJlZCBpbnRlci1s aWJyYXJ5IGRlcGVuZGVuY2llcyBhcmUgYmVpbmcgZHJvcHBlZC4iCi0rCSAgICBkcm9wcGVkZGVw cz15ZXMKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVzYWMKLSsJdmVyc3VmZml4PSR2 ZXJzdWZmaXhfc2F2ZQotKwltYWpvcj0kbWFqb3Jfc2F2ZQotKwlyZWxlYXNlPSRyZWxlYXNlX3Nh dmUKLSsJbGlibmFtZT0kbGlibmFtZV9zYXZlCi0rCW5hbWU9JG5hbWVfc2F2ZQotKwotKwljYXNl ICRob3N0IGluCi0rCSotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKLSsJICAjIE9u IFJoYXBzb2R5IHJlcGxhY2UgdGhlIEMgbGlicmFyeSB3aXRoIHRoZSBTeXN0ZW0gZnJhbWV3b3Jr Ci0rCSAgbmV3ZGVwbGlicz1gJEVDSE8gIiAkbmV3ZGVwbGlicyIgfCAkU0VEICdzLyAtbGMgLyBT eXN0ZW0ubHRmcmFtZXdvcmsgLydgCi0rCSAgOzsKLSsJZXNhYwotKwotKwlpZiB0ZXN0ICIkZHJv cHBlZGRlcHMiID0geWVzOyB0aGVuCi0rCSAgaWYgdGVzdCAiJG1vZHVsZSIgPSB5ZXM7IHRoZW4K LSsJICAgIGVjaG8KLSsJICAgIGVjaG8gIioqKiBXYXJuaW5nOiBsaWJ0b29sIGNvdWxkIG5vdCBz YXRpc2Z5IGFsbCBkZWNsYXJlZCBpbnRlci1saWJyYXJ5IgotKwkgICAgJEVDSE8gIioqKiBkZXBl bmRlbmNpZXMgb2YgbW9kdWxlICRsaWJuYW1lLiAgVGhlcmVmb3JlLCBsaWJ0b29sIHdpbGwgY3Jl YXRlIgotKwkgICAgZWNobyAiKioqIGEgc3RhdGljIG1vZHVsZSwgdGhhdCBzaG91bGQgd29yayBh cyBsb25nIGFzIHRoZSBkbG9wZW5pbmciCi0rCSAgICBlY2hvICIqKiogYXBwbGljYXRpb24gaXMg bGlua2VkIHdpdGggdGhlIC1kbG9wZW4gZmxhZy4iCi0rCSAgICBpZiB0ZXN0IC16ICIkZ2xvYmFs X3N5bWJvbF9waXBlIjsgdGhlbgotKwkgICAgICBlY2hvCi0rCSAgICAgIGVjaG8gIioqKiBIb3dl dmVyLCB0aGlzIHdvdWxkIG9ubHkgd29yayBpZiBsaWJ0b29sIHdhcyBhYmxlIHRvIGV4dHJhY3Qg c3ltYm9sIgotKwkgICAgICBlY2hvICIqKiogbGlzdHMgZnJvbSBhIHByb2dyYW0sIHVzaW5nIFxg bm0nIG9yIGVxdWl2YWxlbnQsIGJ1dCBsaWJ0b29sIGNvdWxkIgotKwkgICAgICBlY2hvICIqKiog bm90IGZpbmQgc3VjaCBhIHByb2dyYW0uICBTbywgdGhpcyBtb2R1bGUgaXMgcHJvYmFibHkgdXNl bGVzcy4iCi0rCSAgICAgIGVjaG8gIioqKiBcYG5tJyBmcm9tIEdOVSBiaW51dGlscyBhbmQgYSBm dWxsIHJlYnVpbGQgbWF5IGhlbHAuIgotKwkgICAgZmkKLSsJICAgIGlmIHRlc3QgIiRidWlsZF9v bGRfbGlicyIgPSBubzsgdGhlbgotKwkgICAgICBvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGli bmFtZS4kbGliZXh0IgotKwkgICAgICBidWlsZF9saWJ0b29sX2xpYnM9bW9kdWxlCi0rCSAgICAg IGJ1aWxkX29sZF9saWJzPXllcwotKwkgICAgZWxzZQotKwkgICAgICBidWlsZF9saWJ0b29sX2xp YnM9bm8KLSsJICAgIGZpCi0rCSAgZWxzZQotKwkgICAgZWNobyAiKioqIFRoZSBpbnRlci1saWJy YXJ5IGRlcGVuZGVuY2llcyB0aGF0IGhhdmUgYmVlbiBkcm9wcGVkIGhlcmUgd2lsbCBiZSIKLSsJ ICAgIGVjaG8gIioqKiBhdXRvbWF0aWNhbGx5IGFkZGVkIHdoZW5ldmVyIGEgcHJvZ3JhbSBpcyBs aW5rZWQgd2l0aCB0aGlzIGxpYnJhcnkiCi0rCSAgICBlY2hvICIqKiogb3IgaXMgZGVjbGFyZWQg dG8gLWRsb3BlbiBpdC4iCi0rCi0rCSAgICBpZiB0ZXN0ICIkYWxsb3dfdW5kZWZpbmVkIiA9IG5v OyB0aGVuCi0rCSAgICAgIGVjaG8KLSsJICAgICAgZWNobyAiKioqIFNpbmNlIHRoaXMgbGlicmFy eSBtdXN0IG5vdCBjb250YWluIHVuZGVmaW5lZCBzeW1ib2xzLCIKLSsJICAgICAgZWNobyAiKioq IGJlY2F1c2UgZWl0aGVyIHRoZSBwbGF0Zm9ybSBkb2VzIG5vdCBzdXBwb3J0IHRoZW0gb3IiCi0r CSAgICAgIGVjaG8gIioqKiBpdCB3YXMgZXhwbGljaXRseSByZXF1ZXN0ZWQgd2l0aCAtbm8tdW5k ZWZpbmVkLCIKLSsJICAgICAgZWNobyAiKioqIGxpYnRvb2wgd2lsbCBvbmx5IGNyZWF0ZSBhIHN0 YXRpYyB2ZXJzaW9uIG9mIGl0LiIKLSsJICAgICAgaWYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9 IG5vOyB0aGVuCi0rCQlvbGRsaWJzPSIkb3V0cHV0X29iamRpci8kbGlibmFtZS4kbGliZXh0Igot KwkJYnVpbGRfbGlidG9vbF9saWJzPW1vZHVsZQotKwkJYnVpbGRfb2xkX2xpYnM9eWVzCi0rCSAg ICAgIGVsc2UKLSsJCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwotKwkgICAgICBmaQotKwkgICAgZmkK LSsJICBmaQotKwlmaQotKwkjIERvbmUgY2hlY2tpbmcgZGVwbGlicyEKLSsJZGVwbGlicz0kbmV3 ZGVwbGlicwotKyAgICAgIGZpCi0rICAgICAgIyBUaW1lIHRvIGNoYW5nZSBhbGwgb3VyICJmb28u bHRmcmFtZXdvcmsiIHN0dWZmIGJhY2sgdG8gIi1mcmFtZXdvcmsgZm9vIgotKyAgICAgIGNhc2Ug JGhvc3QgaW4KLSsJKi0qLWRhcndpbiopCi0rCSAgbmV3ZGVwbGlicz1gJEVDSE8gIiAkbmV3ZGVw bGlicyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3b3JrIFwxJWcn YAotKwkgIG5ld19pbmhlcml0ZWRfbGlua2VyX2ZsYWdzPWAkRUNITyAiICRuZXdfaW5oZXJpdGVk X2xpbmtlcl9mbGFncyIgfCAkU0VEICdzJSBcKFteICRdKlwpLmx0ZnJhbWV3b3JrJSAtZnJhbWV3 b3JrIFwxJWcnYAotKwkgIGRlcGxpYnM9YCRFQ0hPICIgJGRlcGxpYnMiIHwgJFNFRCAncyUgXChb XiAkXSpcKS5sdGZyYW1ld29yayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJICA7OwotKyAgICAgIGVz YWMKLSsKLSsgICAgICAjIG1vdmUgbGlicmFyeSBzZWFyY2ggcGF0aHMgdGhhdCBjb2luY2lkZSB3 aXRoIHBhdGhzIHRvIG5vdCB5ZXQKLSsgICAgICAjIGluc3RhbGxlZCBsaWJyYXJpZXMgdG8gdGhl IGJlZ2lubmluZyBvZiB0aGUgbGlicmFyeSBzZWFyY2ggbGlzdAotKyAgICAgIG5ld19saWJzPQot KyAgICAgIGZvciBwYXRoIGluICRub3RpbnN0X3BhdGg7IGRvCi0rCWNhc2UgIiAkbmV3X2xpYnMg IiBpbgotKwkqIiAtTCRwYXRoLyRvYmpkaXIgIiopIDs7Ci0rCSopCi0rCSAgY2FzZSAiICRkZXBs aWJzICIgaW4KLSsJICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCi0rCSAgICBmdW5jX2FwcGVuZCBu ZXdfbGlicyAiIC1MJHBhdGgvJG9iamRpciIgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwot KyAgICAgIGRvbmUKLSsgICAgICBmb3IgZGVwbGliIGluICRkZXBsaWJzOyBkbwotKwljYXNlICRk ZXBsaWIgaW4KLSsJLUwqKQotKwkgIGNhc2UgIiAkbmV3X2xpYnMgIiBpbgotKwkgICoiICRkZXBs aWIgIiopIDs7Ci0rCSAgKikgZnVuY19hcHBlbmQgbmV3X2xpYnMgIiAkZGVwbGliIiA7OwotKwkg IGVzYWMKLSsJICA7OwotKwkqKSBmdW5jX2FwcGVuZCBuZXdfbGlicyAiICRkZXBsaWIiIDs7Ci0r CWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgZGVwbGlicz0iJG5ld19saWJzIgotKwotKyAgICAg ICMgQWxsIHRoZSBsaWJyYXJ5LXNwZWNpZmljIHZhcmlhYmxlcyAoaW5zdGFsbF9saWJkaXIgaXMg c2V0IGFib3ZlKS4KLSsgICAgICBsaWJyYXJ5X25hbWVzPQotKyAgICAgIG9sZF9saWJyYXJ5PQot KyAgICAgIGRsbmFtZT0KLSsKLSsgICAgICAjIFRlc3QgYWdhaW4sIHdlIG1heSBoYXZlIGRlY2lk ZWQgbm90IHRvIGJ1aWxkIGl0IGFueSBtb3JlCi0rICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRv b2xfbGlicyIgPSB5ZXM7IHRoZW4KLSsJaWYgdGVzdCAiJGhhcmRjb2RlX2ludG9fbGlicyIgPSB5 ZXM7IHRoZW4KLSsJICAjIEhhcmRjb2RlIHRoZSBsaWJyYXJ5IHBhdGhzCi0rCSAgaGFyZGNvZGVf bGliZGlycz0KLSsJICBkZXBfcnBhdGg9Ci0rCSAgcnBhdGg9IiRmaW5hbGl6ZV9ycGF0aCIKLSsJ ICB0ZXN0ICIkb3B0X21vZGUiICE9IHJlbGluayAmJiBycGF0aD0iJGNvbXBpbGVfcnBhdGgkcnBh dGgiCi0rCSAgZm9yIGxpYmRpciBpbiAkcnBhdGg7IGRvCi0rCSAgICBpZiB0ZXN0IC1uICIkaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAtbiAiJGhhcmRj b2RlX2xpYmRpcl9zZXBhcmF0b3IiOyB0aGVuCi0rCQlmdW5jX3JlcGxhY2Vfc3lzcm9vdCAiJGxp YmRpciIKLSsJCWxpYmRpcj0kZnVuY19yZXBsYWNlX3N5c3Jvb3RfcmVzdWx0Ci0rCQlpZiB0ZXN0 IC16ICIkaGFyZGNvZGVfbGliZGlycyI7IHRoZW4KLSsJCSAgaGFyZGNvZGVfbGliZGlycz0iJGxp YmRpciIKLSsJCWVsc2UKLSsJCSAgIyBKdXN0IGFjY3VtdWxhdGUgdGhlIHVuaXF1ZSBsaWJkaXJz LgotKwkJICBjYXNlICRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGhhcmRjb2RlX2xpYmRpcnMk aGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBpbgotKwkJICAqIiRoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yJGxpYmRpciRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiopCi0rCQkgICAgOzsKLSsJ CSAgKikKLSsJCSAgICBmdW5jX2FwcGVuZCBoYXJkY29kZV9saWJkaXJzICIkaGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvciRsaWJkaXIiCi0rCQkgICAgOzsKLSsJCSAgZXNhYwotKwkJZmkKLSsJICAg ICAgZWxzZQotKwkJZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKwkJ ZnVuY19hcHBlbmQgZGVwX3JwYXRoICIgJGZsYWciCi0rCSAgICAgIGZpCi0rCSAgICBlbGlmIHRl c3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KLSsJICAgICAgY2FzZSAiJHBlcm1fcnBhdGggIiBp bgotKwkgICAgICAqIiAkbGliZGlyICIqKSA7OwotKwkgICAgICAqKSBmdW5jX2FwcGVkIHBlcm1f cnBhdGggIiAkbGliZGlyIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBmaQotKwkgIGRvbmUKLSsJ ICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgotKwkg IGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgotKwkgICAgIHRlc3Qg LW4gIiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgotKwkgICAgbGliZGlyPSIkaGFyZGNvZGVfbGli ZGlycyIKLSsJICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkIjsg dGhlbgotKwkgICAgICBldmFsIGRlcF9ycGF0aD1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj X2xkXCIKLSsJICAgIGVsc2UKLSsJICAgICAgZXZhbCBkZXBfcnBhdGg9XCIkaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY1wiCi0rCSAgICBmaQotKwkgIGZpCi0rCSAgaWYgdGVzdCAtbiAiJHJ1bnBh dGhfdmFyIiAmJiB0ZXN0IC1uICIkcGVybV9ycGF0aCI7IHRoZW4KLSsJICAgICMgV2Ugc2hvdWxk IHNldCB0aGUgcnVucGF0aF92YXIuCi0rCSAgICBycGF0aD0KLSsJICAgIGZvciBkaXIgaW4gJHBl cm1fcnBhdGg7IGRvCi0rCSAgICAgIGZ1bmNfYXBwZW5kIHJwYXRoICIkZGlyOiIKLSsJICAgIGRv bmUKLSsJICAgIGV2YWwgIiRydW5wYXRoX3Zhcj0nJHJwYXRoXCQkcnVucGF0aF92YXInOyBleHBv cnQgJHJ1bnBhdGhfdmFyIgotKwkgIGZpCi0rCSAgdGVzdCAtbiAiJGRlcF9ycGF0aCIgJiYgZGVw bGlicz0iJGRlcF9ycGF0aCAkZGVwbGlicyIKLSsJZmkKLSsKLSsJc2hsaWJwYXRoPSIkZmluYWxp emVfc2hsaWJwYXRoIgotKwl0ZXN0ICIkb3B0X21vZGUiICE9IHJlbGluayAmJiBzaGxpYnBhdGg9 IiRjb21waWxlX3NobGlicGF0aCRzaGxpYnBhdGgiCi0rCWlmIHRlc3QgLW4gIiRzaGxpYnBhdGgi OyB0aGVuCi0rCSAgZXZhbCAiJHNobGlicGF0aF92YXI9JyRzaGxpYnBhdGhcJCRzaGxpYnBhdGhf dmFyJzsgZXhwb3J0ICRzaGxpYnBhdGhfdmFyIgotKwlmaQotKwotKwkjIEdldCB0aGUgcmVhbCBh bmQgbGluayBuYW1lcyBvZiB0aGUgbGlicmFyeS4KLSsJZXZhbCBzaGFyZWRfZXh0PVwiJHNocmV4 dF9jbWRzXCIKLSsJZXZhbCBsaWJyYXJ5X25hbWVzPVwiJGxpYnJhcnlfbmFtZXNfc3BlY1wiCi0r CXNldCBkdW1teSAkbGlicmFyeV9uYW1lcwotKwlzaGlmdAotKwlyZWFsbmFtZT0iJDEiCi0rCXNo aWZ0Ci0rCi0rCWlmIHRlc3QgLW4gIiRzb25hbWVfc3BlYyI7IHRoZW4KLSsJICBldmFsIHNvbmFt ZT1cIiRzb25hbWVfc3BlY1wiCi0rCWVsc2UKLSsJICBzb25hbWU9IiRyZWFsbmFtZSIKLSsJZmkK LSsJaWYgdGVzdCAteiAiJGRsbmFtZSI7IHRoZW4KLSsJICBkbG5hbWU9JHNvbmFtZQotKwlmaQot KwotKwlsaWI9IiRvdXRwdXRfb2JqZGlyLyRyZWFsbmFtZSIKLSsJbGlua25hbWVzPQotKwlmb3Ig bGluawotKwlkbwotKwkgIGZ1bmNfYXBwZW5kIGxpbmtuYW1lcyAiICRsaW5rIgotKwlkb25lCi0r Ci0rCSMgVXNlIHN0YW5kYXJkIG9iamVjdHMgaWYgdGhleSBhcmUgcGljCi0rCXRlc3QgLXogIiRw aWNfZmxhZyIgJiYgbGlib2Jqcz1gJEVDSE8gIiRsaWJvYmpzIiB8ICRTUDJOTCB8ICRTRUQgIiRs bzJvIiB8ICROTDJTUGAKLSsJdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0KLSsK LSsJZGVsZmlsZXM9Ci0rCWlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAi JGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KLSsJICAkb3B0X2RyeV9ydW4gfHwgY3AgIiRleHBvcnRf c3ltYm9scyIgIiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCi0rCSAgZXhwb3J0X3N5bWJv bHM9IiRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnVleHAiCi0rCSAgZnVuY19hcHBlbmQgZGVsZmls ZXMgIiAkZXhwb3J0X3N5bWJvbHMiCi0rCWZpCi0rCi0rCW9yaWdfZXhwb3J0X3N5bWJvbHM9Ci0r CWNhc2UgJGhvc3Rfb3MgaW4KLSsJY3lnd2luKiB8IG1pbmd3KiB8IGNlZ2NjKikKLSsJICBpZiB0 ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHMiICYmIHRlc3QgLXogIiRleHBvcnRfc3ltYm9sc19yZWdl eCI7IHRoZW4KLSsJICAgICMgZXhwb3J0aW5nIHVzaW5nIHVzZXIgc3VwcGxpZWQgc3ltZmlsZQot KwkgICAgaWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiICE9IHhFWFBPUlRTOyB0 aGVuCi0rCSAgICAgICMgYW5kIGl0J3MgTk9UIGFscmVhZHkgYSAuZGVmIGZpbGUuIE11c3QgZmln dXJlIG91dAotKwkgICAgICAjIHdoaWNoIG9mIHRoZSBnaXZlbiBzeW1ib2xzIGFyZSBkYXRhIHN5 bWJvbHMgYW5kIHRhZwotKwkgICAgICAjIHRoZW0gYXMgc3VjaC4gU28sIHRyaWdnZXIgdXNlIG9m IGV4cG9ydF9zeW1ib2xzX2NtZHMuCi0rCSAgICAgICMgZXhwb3J0X3N5bWJvbHMgZ2V0cyByZWFz c2lnbmVkIGluc2lkZSB0aGUgInByZXBhcmUKLSsJICAgICAgIyB0aGUgbGlzdCBvZiBleHBvcnRl ZCBzeW1ib2xzIiBpZiBzdGF0ZW1lbnQsIHNvIHRoZQotKwkgICAgICAjIGluY2x1ZGVfZXhwc3lt cyBsb2dpYyBzdGlsbCB3b3Jrcy4KLSsJICAgICAgb3JpZ19leHBvcnRfc3ltYm9scz0iJGV4cG9y dF9zeW1ib2xzIgotKwkgICAgICBleHBvcnRfc3ltYm9scz0KLSsJICAgICAgYWx3YXlzX2V4cG9y dF9zeW1ib2xzPXllcwotKwkgICAgZmkKLSsJICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJIyBQ cmVwYXJlIHRoZSBsaXN0IG9mIGV4cG9ydGVkIHN5bWJvbHMKLSsJaWYgdGVzdCAteiAiJGV4cG9y dF9zeW1ib2xzIjsgdGhlbgotKwkgIGlmIHRlc3QgIiRhbHdheXNfZXhwb3J0X3N5bWJvbHMiID0g eWVzIHx8IHRlc3QgLW4gIiRleHBvcnRfc3ltYm9sc19yZWdleCI7IHRoZW4KLSsJICAgIGZ1bmNf dmVyYm9zZSAiZ2VuZXJhdGluZyBzeW1ib2wgbGlzdCBmb3IgXGAkbGlibmFtZS5sYSciCi0rCSAg ICBleHBvcnRfc3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgotKwkgICAgJG9w dF9kcnlfcnVuIHx8ICRSTSAkZXhwb3J0X3N5bWJvbHMKLSsJICAgIGNtZHM9JGV4cG9ydF9zeW1i b2xzX2NtZHMKLSsJICAgIHNhdmVfaWZzPSIkSUZTIjsgSUZTPSd+JwotKwkgICAgZm9yIGNtZDEg aW4gJGNtZHM7IGRvCi0rCSAgICAgIElGUz0iJHNhdmVfaWZzIgotKwkgICAgICAjIFRha2UgdGhl IG5vcm1hbCBicmFuY2ggaWYgdGhlIG5tX2ZpbGVfbGlzdF9zcGVjIGJyYW5jaAotKwkgICAgICAj IGRvZXNuJ3Qgd29yayBvciBpZiB0b29sIGNvbnZlcnNpb24gaXMgbm90IG5lZWRlZC4KLSsJICAg ICAgY2FzZSAkbm1fZmlsZV9saXN0X3NwZWN+JHRvX3Rvb2xfZmlsZV9jbWQgaW4KLSsJCSp+ZnVu Y19jb252ZXJ0X2ZpbGVfbm9vcCB8ICp+ZnVuY19jb252ZXJ0X2ZpbGVfbXN5c190b193MzIgfCB+ KikKLSsJCSAgdHJ5X25vcm1hbF9icmFuY2g9eWVzCi0rCQkgIGV2YWwgY21kPVwiJGNtZDFcIgot KwkJICBmdW5jX2xlbiAiICRjbWQiCi0rCQkgIGxlbj0kZnVuY19sZW5fcmVzdWx0Ci0rCQkgIDs7 Ci0rCQkqKQotKwkJICB0cnlfbm9ybWFsX2JyYW5jaD1ubwotKwkJICA7OwotKwkgICAgICBlc2Fj Ci0rCSAgICAgIGlmIHRlc3QgIiR0cnlfbm9ybWFsX2JyYW5jaCIgPSB5ZXMgXAotKwkJICYmIHsg dGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iIFwKLSsJCSAgICAgIHx8IHRlc3QgIiRtYXhf Y21kX2xlbiIgLWxlIC0xOyB9Ci0rCSAgICAgIHRoZW4KLSsJCWZ1bmNfc2hvd19ldmFsICIkY21k IiAnZXhpdCAkPycKLSsJCXNraXBwZWRfZXhwb3J0PWZhbHNlCi0rCSAgICAgIGVsaWYgdGVzdCAt biAiJG5tX2ZpbGVfbGlzdF9zcGVjIjsgdGhlbgotKwkJZnVuY19iYXNlbmFtZSAiJG91dHB1dCIK LSsJCW91dHB1dF9sYT0kZnVuY19iYXNlbmFtZV9yZXN1bHQKLSsJCXNhdmVfbGlib2Jqcz0kbGli b2JqcwotKwkJc2F2ZV9vdXRwdXQ9JG91dHB1dAotKwkJb3V0cHV0PSR7b3V0cHV0X29iamRpcn0v JHtvdXRwdXRfbGF9Lm5tCi0rCQlmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dCIKLSsJCWxpYm9i anM9JG5tX2ZpbGVfbGlzdF9zcGVjJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdAotKwkJZnVuY19h cHBlbmQgZGVsZmlsZXMgIiAkb3V0cHV0IgotKwkJZnVuY192ZXJib3NlICJjcmVhdGluZyAkTk0g aW5wdXQgZmlsZSBsaXN0OiAkb3V0cHV0IgotKwkJZm9yIG9iaiBpbiAkc2F2ZV9saWJvYmpzOyBk bwotKwkJICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG9iaiIKLSsJCSAgJEVDSE8gIiRmdW5jX3RvX3Rv b2xfZmlsZV9yZXN1bHQiCi0rCQlkb25lID4gIiRvdXRwdXQiCi0rCQlldmFsIGNtZD1cIiRjbWQx XCIKLSsJCWZ1bmNfc2hvd19ldmFsICIkY21kIiAnZXhpdCAkPycKLSsJCW91dHB1dD0kc2F2ZV9v dXRwdXQKLSsJCWxpYm9ianM9JHNhdmVfbGlib2JqcwotKwkJc2tpcHBlZF9leHBvcnQ9ZmFsc2UK LSsJICAgICAgZWxzZQotKwkJIyBUaGUgY29tbWFuZCBsaW5lIGlzIHRvbyBsb25nIHRvIGV4ZWN1 dGUgaW4gb25lIHN0ZXAuCi0rCQlmdW5jX3ZlcmJvc2UgInVzaW5nIHJlbG9hZGFibGUgb2JqZWN0 IGZpbGUgZm9yIGV4cG9ydCBsaXN0Li4uIgotKwkJc2tpcHBlZF9leHBvcnQ9OgotKwkJIyBCcmVh ayBvdXQgZWFybHksIG90aGVyd2lzZSBza2lwcGVkX2V4cG9ydCBtYXkgYmUKLSsJCSMgc2V0IHRv IGZhbHNlIGJ5IGEgbGF0ZXIgYnV0IHNob3J0ZXIgY21kLgotKwkJYnJlYWsKLSsJICAgICAgZmkK LSsJICAgIGRvbmUKLSsJICAgIElGUz0iJHNhdmVfaWZzIgotKwkgICAgaWYgdGVzdCAtbiAiJGV4 cG9ydF9zeW1ib2xzX3JlZ2V4IiAmJiB0ZXN0ICJYJHNraXBwZWRfZXhwb3J0IiAhPSAiWDoiOyB0 aGVuCi0rCSAgICAgIGZ1bmNfc2hvd19ldmFsICckRUdSRVAgLWUgIiRleHBvcnRfc3ltYm9sc19y ZWdleCIgIiRleHBvcnRfc3ltYm9scyIgPiAiJHtleHBvcnRfc3ltYm9sc31UIicKLSsJICAgICAg ZnVuY19zaG93X2V2YWwgJyRNViAiJHtleHBvcnRfc3ltYm9sc31UIiAiJGV4cG9ydF9zeW1ib2xz IicKLSsJICAgIGZpCi0rCSAgZmkKLSsJZmkKLSsKLSsJaWYgdGVzdCAtbiAiJGV4cG9ydF9zeW1i b2xzIiAmJiB0ZXN0IC1uICIkaW5jbHVkZV9leHBzeW1zIjsgdGhlbgotKwkgIHRtcF9leHBvcnRf c3ltYm9scz0iJGV4cG9ydF9zeW1ib2xzIgotKwkgIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1i b2xzIiAmJiB0bXBfZXhwb3J0X3N5bWJvbHM9IiRvcmlnX2V4cG9ydF9zeW1ib2xzIgotKwkgICRv cHRfZHJ5X3J1biB8fCBldmFsICckRUNITyAiJGluY2x1ZGVfZXhwc3ltcyIgfCAkU1AyTkwgPj4g IiR0bXBfZXhwb3J0X3N5bWJvbHMiJwotKwlmaQotKwotKwlpZiB0ZXN0ICJYJHNraXBwZWRfZXhw b3J0IiAhPSAiWDoiICYmIHRlc3QgLW4gIiRvcmlnX2V4cG9ydF9zeW1ib2xzIjsgdGhlbgotKwkg ICMgVGhlIGdpdmVuIGV4cG9ydHNfc3ltYm9scyBmaWxlIGhhcyB0byBiZSBmaWx0ZXJlZCwgc28g ZmlsdGVyIGl0LgotKwkgIGZ1bmNfdmVyYm9zZSAiZmlsdGVyIHN5bWJvbCBsaXN0IGZvciBcYCRs aWJuYW1lLmxhJyB0byB0YWcgREFUQSBleHBvcnRzIgotKwkgICMgRklYTUU6ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLmZpbHRlciBwb3RlbnRpYWxseSBjb250YWlucyBsb3RzIG9mCi0rCSAgIyAn cycgY29tbWFuZHMgd2hpY2ggbm90IGFsbCBzZWRzIGNhbiBoYW5kbGUuIEdOVSBzZWQgc2hvdWxk IGJlIGZpbmUKLSsJICAjIHRob3VnaC4gQWxzbywgdGhlIGZpbHRlciBzY2FsZXMgc3VwZXJsaW5l YXJseSB3aXRoIHRoZSBudW1iZXIgb2YKLSsJICAjIGdsb2JhbCB2YXJpYWJsZXMuIGpvaW4oMSkg d291bGQgYmUgbmljZSBoZXJlLCBidXQgdW5mb3J0dW5hdGVseQotKwkgICMgaXNuJ3QgYSBibGVz c2VkIHRvb2wuCi0rCSAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWUgJy9bICxdREFUQS8hZDtzLFwo LipcKVwoWyBcLF0uKlwpLHN8XlwxJHxcMVwyfCwnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyCi0rCSAgZnVuY19hcHBlbmQgZGVsZmlsZXMgIiAkZXhw b3J0X3N5bWJvbHMgJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyIgotKwkgIGV4cG9ydF9z eW1ib2xzPSRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZgotKwkgICRvcHRfZHJ5X3J1biB8fCAk U0VEIC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZpbHRlciA8ICRvcmlnX2V4cG9ydF9zeW1i b2xzID4gJGV4cG9ydF9zeW1ib2xzCi0rCWZpCi0rCi0rCXRtcF9kZXBsaWJzPQotKwlmb3IgdGVz dF9kZXBsaWIgaW4gJGRlcGxpYnM7IGRvCi0rCSAgY2FzZSAiICRjb252ZW5pZW5jZSAiIGluCi0r CSAgKiIgJHRlc3RfZGVwbGliICIqKSA7OwotKwkgICopCi0rCSAgICBmdW5jX2FwcGVuZCB0bXBf ZGVwbGlicyAiICR0ZXN0X2RlcGxpYiIKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlkb25lCi0rCWRl cGxpYnM9IiR0bXBfZGVwbGlicyIKLSsKLSsJaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhl bgotKwkgIGlmIHRlc3QgLW4gIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyIgJiYKLSsJICAgIHRl c3QgIiRjb21waWxlcl9uZWVkc19vYmplY3QiID0geWVzICYmCi0rCSAgICB0ZXN0IC16ICIkbGli b2JqcyI7IHRoZW4KLSsJICAgICMgZXh0cmFjdCB0aGUgYXJjaGl2ZXMsIHNvIHdlIGhhdmUgb2Jq ZWN0cyB0byBsaXN0LgotKwkgICAgIyBUT0RPOiBjb3VsZCBvcHRpbWl6ZSB0aGlzIHRvIGp1c3Qg ZXh0cmFjdCBvbmUgYXJjaGl2ZS4KLSsJICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQotKwkg IGZpCi0rCSAgaWYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhlbgotKwkg ICAgc2F2ZV9saWJvYmpzPSRsaWJvYmpzCi0rCSAgICBldmFsIGxpYm9ianM9XCJcJGxpYm9ianMg JHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjXCIKLSsJICAgIHRlc3QgIlgkbGlib2JqcyIgPSAiWCAi ICYmIGxpYm9ianM9Ci0rCSAgZWxzZQotKwkgICAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291 dHB1dG5hbWV9eCIKLSsJICAgIGZ1bmNfYXBwZW5kIGdlbmVyYXRlZCAiICRnZW50b3AiCi0rCi0r CSAgICBmdW5jX2V4dHJhY3RfYXJjaGl2ZXMgJGdlbnRvcCAkY29udmVuaWVuY2UKLSsJICAgIGZ1 bmNfYXBwZW5kIGxpYm9ianMgIiAkZnVuY19leHRyYWN0X2FyY2hpdmVzX3Jlc3VsdCIKLSsJICAg IHRlc3QgIlgkbGlib2JqcyIgPSAiWCAiICYmIGxpYm9ianM9Ci0rCSAgZmkKLSsJZmkKLSsKLSsJ aWYgdGVzdCAiJHRocmVhZF9zYWZlIiA9IHllcyAmJiB0ZXN0IC1uICIkdGhyZWFkX3NhZmVfZmxh Z19zcGVjIjsgdGhlbgotKwkgIGV2YWwgZmxhZz1cIiR0aHJlYWRfc2FmZV9mbGFnX3NwZWNcIgot KwkgIGZ1bmNfYXBwZW5kIGxpbmtlcl9mbGFncyAiICRmbGFnIgotKwlmaQotKwotKwkjIE1ha2Ug YSBiYWNrdXAgb2YgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgd2hlbiByZWxpbmtpbmcKLSsJaWYg dGVzdCAiJG9wdF9tb2RlIiA9IHJlbGluazsgdGhlbgotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFs ICcoY2QgJG91dHB1dF9vYmpkaXIgJiYgJFJNICR7cmVhbG5hbWV9VSAmJiAkTVYgJHJlYWxuYW1l ICR7cmVhbG5hbWV9VSknIHx8IGV4aXQgJD8KLSsJZmkKLSsKLSsJIyBEbyBlYWNoIG9mIHRoZSBh cmNoaXZlIGNvbW1hbmRzLgotKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyAmJiB0ZXN0IC1uICIk bW9kdWxlX2NtZHMiIDsgdGhlbgotKwkgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9scyIgJiYg dGVzdCAtbiAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRoZW4KLSsJICAgIGV2YWwgdGVzdF9jbWRz PVwiJG1vZHVsZV9leHBzeW1fY21kc1wiCi0rCSAgICBjbWRzPSRtb2R1bGVfZXhwc3ltX2NtZHMK LSsJICBlbHNlCi0rCSAgICBldmFsIHRlc3RfY21kcz1cIiRtb2R1bGVfY21kc1wiCi0rCSAgICBj bWRzPSRtb2R1bGVfY21kcwotKwkgIGZpCi0rCWVsc2UKLSsJICBpZiB0ZXN0IC1uICIkZXhwb3J0 X3N5bWJvbHMiICYmIHRlc3QgLW4gIiRhcmNoaXZlX2V4cHN5bV9jbWRzIjsgdGhlbgotKwkgICAg ZXZhbCB0ZXN0X2NtZHM9XCIkYXJjaGl2ZV9leHBzeW1fY21kc1wiCi0rCSAgICBjbWRzPSRhcmNo aXZlX2V4cHN5bV9jbWRzCi0rCSAgZWxzZQotKwkgICAgZXZhbCB0ZXN0X2NtZHM9XCIkYXJjaGl2 ZV9jbWRzXCIKLSsJICAgIGNtZHM9JGFyY2hpdmVfY21kcwotKwkgIGZpCi0rCWZpCi0rCi0rCWlm IHRlc3QgIlgkc2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYKLSsJICAgZnVuY19sZW4gIiAkdGVz dF9jbWRzIiAmJgotKwkgICBsZW49JGZ1bmNfbGVuX3Jlc3VsdCAmJgotKwkgICB0ZXN0ICIkbGVu IiAtbHQgIiRtYXhfY21kX2xlbiIgfHwgdGVzdCAiJG1heF9jbWRfbGVuIiAtbGUgLTE7IHRoZW4K LSsJICA6Ci0rCWVsc2UKLSsJICAjIFRoZSBjb21tYW5kIGxpbmUgaXMgdG9vIGxvbmcgdG8gbGlu ayBpbiBvbmUgc3RlcCwgbGluayBwaWVjZXdpc2UKLSsJICAjIG9yLCBpZiB1c2luZyBHTlUgbGQg YW5kIHNraXBwZWRfZXhwb3J0IGlzIG5vdCA6LCB1c2UgYSBsaW5rZXIKLSsJICAjIHNjcmlwdC4K LSsKLSsJICAjIFNhdmUgdGhlIHZhbHVlIG9mICRvdXRwdXQgYW5kICRsaWJvYmpzIGJlY2F1c2Ug d2Ugd2FudCB0bwotKwkgICMgdXNlIHRoZW0gbGF0ZXIuICBJZiB3ZSBoYXZlIHdob2xlX2FyY2hp dmVfZmxhZ19zcGVjLCB3ZQotKwkgICMgd2FudCB0byB1c2Ugc2F2ZV9saWJvYmpzIGFzIGl0IHdh cyBiZWZvcmUKLSsJICAjIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIHdhcyBleHBhbmRlZCwgYmVj YXVzZSB3ZSBjYW4ndAotKwkgICMgYXNzdW1lIHRoZSBsaW5rZXIgdW5kZXJzdGFuZHMgd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMuCi0rCSAgIyBUaGlzIG1heSBoYXZlIHRvIGJlIHJldmlzaXRlZCwg aW4gY2FzZSB0b28gbWFueQotKwkgICMgY29udmVuaWVuY2UgbGlicmFyaWVzIGdldCBsaW5rZWQg aW4gYW5kIGVuZCB1cCBleGNlZWRpbmcKLSsJICAjIHRoZSBzcGVjLgotKwkgIGlmIHRlc3QgLXog IiRjb252ZW5pZW5jZSIgfHwgdGVzdCAteiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhl bgotKwkgICAgc2F2ZV9saWJvYmpzPSRsaWJvYmpzCi0rCSAgZmkKLSsJICBzYXZlX291dHB1dD0k b3V0cHV0Ci0rCSAgZnVuY19iYXNlbmFtZSAiJG91dHB1dCIKLSsJICBvdXRwdXRfbGE9JGZ1bmNf YmFzZW5hbWVfcmVzdWx0Ci0rCi0rCSAgIyBDbGVhciB0aGUgcmVsb2FkYWJsZSBvYmplY3QgY3Jl YXRpb24gY29tbWFuZCBxdWV1ZSBhbmQKLSsJICAjIGluaXRpYWxpemUgayB0byBvbmUuCi0rCSAg dGVzdF9jbWRzPQotKwkgIGNvbmNhdF9jbWRzPQotKwkgIG9iamxpc3Q9Ci0rCSAgbGFzdF9yb2Jq PQotKwkgIGs9MQotKwotKwkgIGlmIHRlc3QgLW4gIiRzYXZlX2xpYm9ianMiICYmIHRlc3QgIlgk c2tpcHBlZF9leHBvcnQiICE9ICJYOiIgJiYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhl bgotKwkgICAgb3V0cHV0PSR7b3V0cHV0X29iamRpcn0vJHtvdXRwdXRfbGF9Lmxua3NjcmlwdAot KwkgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyBHTlUgbGQgc2NyaXB0OiAkb3V0cHV0IgotKwkg ICAgZWNobyAnSU5QVVQgKCcgPiAkb3V0cHV0Ci0rCSAgICBmb3Igb2JqIGluICRzYXZlX2xpYm9i anMKLSsJICAgIGRvCi0rCSAgICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkb2JqIgotKwkgICAgICAk RUNITyAiJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCIgPj4gJG91dHB1dAotKwkgICAgZG9uZQot KwkgICAgZWNobyAnKScgPj4gJG91dHB1dAotKwkgICAgZnVuY19hcHBlbmQgZGVsZmlsZXMgIiAk b3V0cHV0IgotKwkgICAgZnVuY190b190b29sX2ZpbGUgIiRvdXRwdXQiCi0rCSAgICBvdXRwdXQ9 JGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdAotKwkgIGVsaWYgdGVzdCAtbiAiJHNhdmVfbGlib2Jq cyIgJiYgdGVzdCAiWCRza2lwcGVkX2V4cG9ydCIgIT0gIlg6IiAmJiB0ZXN0ICJYJGZpbGVfbGlz dF9zcGVjIiAhPSBYOyB0aGVuCi0rCSAgICBvdXRwdXQ9JHtvdXRwdXRfb2JqZGlyfS8ke291dHB1 dF9sYX0ubG5rCi0rCSAgICBmdW5jX3ZlcmJvc2UgImNyZWF0aW5nIGxpbmtlciBpbnB1dCBmaWxl IGxpc3Q6ICRvdXRwdXQiCi0rCSAgICA6ID4gJG91dHB1dAotKwkgICAgc2V0IHggJHNhdmVfbGli b2JqcwotKwkgICAgc2hpZnQKLSsJICAgIGZpcnN0b2JqPQotKwkgICAgaWYgdGVzdCAiJGNvbXBp bGVyX25lZWRzX29iamVjdCIgPSB5ZXM7IHRoZW4KLSsJICAgICAgZmlyc3RvYmo9IiQxICIKLSsJ ICAgICAgc2hpZnQKLSsJICAgIGZpCi0rCSAgICBmb3Igb2JqCi0rCSAgICBkbwotKwkgICAgICBm dW5jX3RvX3Rvb2xfZmlsZSAiJG9iaiIKLSsJICAgICAgJEVDSE8gIiRmdW5jX3RvX3Rvb2xfZmls ZV9yZXN1bHQiID4+ICRvdXRwdXQKLSsJICAgIGRvbmUKLSsJICAgIGZ1bmNfYXBwZW5kIGRlbGZp bGVzICIgJG91dHB1dCIKLSsJICAgIGZ1bmNfdG9fdG9vbF9maWxlICIkb3V0cHV0IgotKwkgICAg b3V0cHV0PSRmaXJzdG9ialwiJGZpbGVfbGlzdF9zcGVjJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3Vs dFwiCi0rCSAgZWxzZQotKwkgICAgaWYgdGVzdCAtbiAiJHNhdmVfbGlib2JqcyI7IHRoZW4KLSsJ ICAgICAgZnVuY192ZXJib3NlICJjcmVhdGluZyByZWxvYWRhYmxlIG9iamVjdCBmaWxlcy4uLiIK LSsJICAgICAgb3V0cHV0PSRvdXRwdXRfb2JqZGlyLyRvdXRwdXRfbGEtJHtrfS4kb2JqZXh0Ci0r CSAgICAgIGV2YWwgdGVzdF9jbWRzPVwiJHJlbG9hZF9jbWRzXCIKLSsJICAgICAgZnVuY19sZW4g IiAkdGVzdF9jbWRzIgotKwkgICAgICBsZW4wPSRmdW5jX2xlbl9yZXN1bHQKLSsJICAgICAgbGVu PSRsZW4wCi0rCi0rCSAgICAgICMgTG9vcCBvdmVyIHRoZSBsaXN0IG9mIG9iamVjdHMgdG8gYmUg bGlua2VkLgotKwkgICAgICBmb3Igb2JqIGluICRzYXZlX2xpYm9ianMKLSsJICAgICAgZG8KLSsJ CWZ1bmNfbGVuICIgJG9iaiIKLSsJCWZ1bmNfYXJpdGggJGxlbiArICRmdW5jX2xlbl9yZXN1bHQK LSsJCWxlbj0kZnVuY19hcml0aF9yZXN1bHQKLSsJCWlmIHRlc3QgIlgkb2JqbGlzdCIgPSBYIHx8 Ci0rCQkgICB0ZXN0ICIkbGVuIiAtbHQgIiRtYXhfY21kX2xlbiI7IHRoZW4KLSsJCSAgZnVuY19h cHBlbmQgb2JqbGlzdCAiICRvYmoiCi0rCQllbHNlCi0rCQkgICMgVGhlIGNvbW1hbmQgJHRlc3Rf Y21kcyBpcyBhbG1vc3QgdG9vIGxvbmcsIGFkZCBhCi0rCQkgICMgY29tbWFuZCB0byB0aGUgcXVl dWUuCi0rCQkgIGlmIHRlc3QgIiRrIiAtZXEgMSA7IHRoZW4KLSsJCSAgICAjIFRoZSBmaXJzdCBm aWxlIGRvZXNuJ3QgaGF2ZSBhIHByZXZpb3VzIGNvbW1hbmQgdG8gYWRkLgotKwkJICAgIHJlbG9h ZF9vYmpzPSRvYmpsaXN0Ci0rCQkgICAgZXZhbCBjb25jYXRfY21kcz1cIiRyZWxvYWRfY21kc1wi Ci0rCQkgIGVsc2UKLSsJCSAgICAjIEFsbCBzdWJzZXF1ZW50IHJlbG9hZGFibGUgb2JqZWN0IGZp bGVzIHdpbGwgbGluayBpbgotKwkJICAgICMgdGhlIGxhc3Qgb25lIGNyZWF0ZWQuCi0rCQkgICAg cmVsb2FkX29ianM9IiRvYmpsaXN0ICRsYXN0X3JvYmoiCi0rCQkgICAgZXZhbCBjb25jYXRfY21k cz1cIlwkY29uY2F0X2NtZHN+JHJlbG9hZF9jbWRzflwkUk0gJGxhc3Rfcm9ialwiCi0rCQkgIGZp Ci0rCQkgIGxhc3Rfcm9iaj0kb3V0cHV0X29iamRpci8kb3V0cHV0X2xhLSR7a30uJG9iamV4dAot KwkJICBmdW5jX2FyaXRoICRrICsgMQotKwkJICBrPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkJICBv dXRwdXQ9JG91dHB1dF9vYmpkaXIvJG91dHB1dF9sYS0ke2t9LiRvYmpleHQKLSsJCSAgb2JqbGlz dD0iICRvYmoiCi0rCQkgIGZ1bmNfbGVuICIgJGxhc3Rfcm9iaiIKLSsJCSAgZnVuY19hcml0aCAk bGVuMCArICRmdW5jX2xlbl9yZXN1bHQKLSsJCSAgbGVuPSRmdW5jX2FyaXRoX3Jlc3VsdAotKwkJ ZmkKLSsJICAgICAgZG9uZQotKwkgICAgICAjIEhhbmRsZSB0aGUgcmVtYWluaW5nIG9iamVjdHMg YnkgY3JlYXRpbmcgb25lIGxhc3QKLSsJICAgICAgIyByZWxvYWRhYmxlIG9iamVjdCBmaWxlLiAg QWxsIHN1YnNlcXVlbnQgcmVsb2FkYWJsZSBvYmplY3QKLSsJICAgICAgIyBmaWxlcyB3aWxsIGxp bmsgaW4gdGhlIGxhc3Qgb25lIGNyZWF0ZWQuCi0rCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21k cyIgfHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgotKwkgICAgICByZWxvYWRfb2Jqcz0iJG9i amxpc3QgJGxhc3Rfcm9iaiIKLSsJICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9j bWRzfSRyZWxvYWRfY21kc1wiCi0rCSAgICAgIGlmIHRlc3QgLW4gIiRsYXN0X3JvYmoiOyB0aGVu Ci0rCSAgICAgICAgZXZhbCBjb25jYXRfY21kcz1cIlwke2NvbmNhdF9jbWRzfX5cJFJNICRsYXN0 X3JvYmpcIgotKwkgICAgICBmaQotKwkgICAgICBmdW5jX2FwcGVuZCBkZWxmaWxlcyAiICRvdXRw dXQiCi0rCi0rCSAgICBlbHNlCi0rCSAgICAgIG91dHB1dD0KLSsJICAgIGZpCi0rCi0rCSAgICBp ZiAke3NraXBwZWRfZXhwb3J0LWZhbHNlfTsgdGhlbgotKwkgICAgICBmdW5jX3ZlcmJvc2UgImdl bmVyYXRpbmcgc3ltYm9sIGxpc3QgZm9yIFxgJGxpYm5hbWUubGEnIgotKwkgICAgICBleHBvcnRf c3ltYm9scz0iJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZXhwIgotKwkgICAgICAkb3B0X2RyeV9y dW4gfHwgJFJNICRleHBvcnRfc3ltYm9scwotKwkgICAgICBsaWJvYmpzPSRvdXRwdXQKLSsJICAg ICAgIyBBcHBlbmQgdGhlIGNvbW1hbmQgdG8gY3JlYXRlIHRoZSBleHBvcnQgZmlsZS4KLSsJICAg ICAgdGVzdCAteiAiJGNvbmNhdF9jbWRzIiB8fCBjb25jYXRfY21kcz0kY29uY2F0X2NtZHN+Ci0r CSAgICAgIGV2YWwgY29uY2F0X2NtZHM9XCJcJGNvbmNhdF9jbWRzJGV4cG9ydF9zeW1ib2xzX2Nt ZHNcIgotKwkgICAgICBpZiB0ZXN0IC1uICIkbGFzdF9yb2JqIjsgdGhlbgotKwkJZXZhbCBjb25j YXRfY21kcz1cIlwkY29uY2F0X2NtZHN+XCRSTSAkbGFzdF9yb2JqXCIKLSsJICAgICAgZmkKLSsJ ICAgIGZpCi0rCi0rCSAgICB0ZXN0IC1uICIkc2F2ZV9saWJvYmpzIiAmJgotKwkgICAgICBmdW5j X3ZlcmJvc2UgImNyZWF0aW5nIGEgdGVtcG9yYXJ5IHJlbG9hZGFibGUgb2JqZWN0IGZpbGU6ICRv dXRwdXQiCi0rCi0rCSAgICAjIExvb3AgdGhyb3VnaCB0aGUgY29tbWFuZHMgZ2VuZXJhdGVkIGFi b3ZlIGFuZCBleGVjdXRlIHRoZW0uCi0rCSAgICBzYXZlX2lmcz0iJElGUyI7IElGUz0nficKLSsJ ICAgIGZvciBjbWQgaW4gJGNvbmNhdF9jbWRzOyBkbwotKwkgICAgICBJRlM9IiRzYXZlX2lmcyIK LSsJICAgICAgJG9wdF9zaWxlbnQgfHwgewotKwkJICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRj bWQiCi0rCQkgIGV2YWwgImZ1bmNfZWNobyAkZnVuY19xdW90ZV9mb3JfZXhwYW5kX3Jlc3VsdCIK LSsJICAgICAgfQotKwkgICAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAiJGNtZCIgfHwgewotKwkJ bHRfZXhpdD0kPwotKwotKwkJIyBSZXN0b3JlIHRoZSB1bmluc3RhbGxlZCBsaWJyYXJ5IGFuZCBl eGl0Ci0rCQlpZiB0ZXN0ICIkb3B0X21vZGUiID0gcmVsaW5rOyB0aGVuCi0rCQkgICggY2QgIiRv dXRwdXRfb2JqZGlyIiAmJiBcCi0rCQkgICAgJFJNICIke3JlYWxuYW1lfVQiICYmIFwKLSsJCSAg ICAkTVYgIiR7cmVhbG5hbWV9VSIgIiRyZWFsbmFtZSIgKQotKwkJZmkKLSsKLSsJCWV4aXQgJGx0 X2V4aXQKLSsJICAgICAgfQotKwkgICAgZG9uZQotKwkgICAgSUZTPSIkc2F2ZV9pZnMiCi0rCi0r CSAgICBpZiB0ZXN0IC1uICIkZXhwb3J0X3N5bWJvbHNfcmVnZXgiICYmICR7c2tpcHBlZF9leHBv cnQtZmFsc2V9OyB0aGVuCi0rCSAgICAgIGZ1bmNfc2hvd19ldmFsICckRUdSRVAgLWUgIiRleHBv cnRfc3ltYm9sc19yZWdleCIgIiRleHBvcnRfc3ltYm9scyIgPiAiJHtleHBvcnRfc3ltYm9sc31U IicKLSsJICAgICAgZnVuY19zaG93X2V2YWwgJyRNViAiJHtleHBvcnRfc3ltYm9sc31UIiAiJGV4 cG9ydF9zeW1ib2xzIicKLSsJICAgIGZpCi0rCSAgZmkKLSsKLSsgICAgICAgICAgaWYgJHtza2lw cGVkX2V4cG9ydC1mYWxzZX07IHRoZW4KLSsJICAgIGlmIHRlc3QgLW4gIiRleHBvcnRfc3ltYm9s cyIgJiYgdGVzdCAtbiAiJGluY2x1ZGVfZXhwc3ltcyI7IHRoZW4KLSsJICAgICAgdG1wX2V4cG9y dF9zeW1ib2xzPSIkZXhwb3J0X3N5bWJvbHMiCi0rCSAgICAgIHRlc3QgLW4gIiRvcmlnX2V4cG9y dF9zeW1ib2xzIiAmJiB0bXBfZXhwb3J0X3N5bWJvbHM9IiRvcmlnX2V4cG9ydF9zeW1ib2xzIgot KwkgICAgICAkb3B0X2RyeV9ydW4gfHwgZXZhbCAnJEVDSE8gIiRpbmNsdWRlX2V4cHN5bXMiIHwg JFNQMk5MID4+ICIkdG1wX2V4cG9ydF9zeW1ib2xzIicKLSsJICAgIGZpCi0rCi0rCSAgICBpZiB0 ZXN0IC1uICIkb3JpZ19leHBvcnRfc3ltYm9scyI7IHRoZW4KLSsJICAgICAgIyBUaGUgZ2l2ZW4g ZXhwb3J0c19zeW1ib2xzIGZpbGUgaGFzIHRvIGJlIGZpbHRlcmVkLCBzbyBmaWx0ZXIgaXQuCi0r CSAgICAgIGZ1bmNfdmVyYm9zZSAiZmlsdGVyIHN5bWJvbCBsaXN0IGZvciBcYCRsaWJuYW1lLmxh JyB0byB0YWcgREFUQSBleHBvcnRzIgotKwkgICAgICAjIEZJWE1FOiAkb3V0cHV0X29iamRpci8k bGlibmFtZS5maWx0ZXIgcG90ZW50aWFsbHkgY29udGFpbnMgbG90cyBvZgotKwkgICAgICAjICdz JyBjb21tYW5kcyB3aGljaCBub3QgYWxsIHNlZHMgY2FuIGhhbmRsZS4gR05VIHNlZCBzaG91bGQg YmUgZmluZQotKwkgICAgICAjIHRob3VnaC4gQWxzbywgdGhlIGZpbHRlciBzY2FsZXMgc3VwZXJs aW5lYXJseSB3aXRoIHRoZSBudW1iZXIgb2YKLSsJICAgICAgIyBnbG9iYWwgdmFyaWFibGVzLiBq b2luKDEpIHdvdWxkIGJlIG5pY2UgaGVyZSwgYnV0IHVuZm9ydHVuYXRlbHkKLSsJICAgICAgIyBp c24ndCBhIGJsZXNzZWQgdG9vbC4KLSsJICAgICAgJG9wdF9kcnlfcnVuIHx8ICRTRUQgLWUgJy9b ICxdREFUQS8hZDtzLFwoLipcKVwoWyBcLF0uKlwpLHN8XlwxJHxcMVwyfCwnIDwgJGV4cG9ydF9z eW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZmlsdGVyCi0rCSAgICAgIGZ1bmNfYXBw ZW5kIGRlbGZpbGVzICIgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmZp bHRlciIKLSsJICAgICAgZXhwb3J0X3N5bWJvbHM9JG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVm Ci0rCSAgICAgICRvcHRfZHJ5X3J1biB8fCAkU0VEIC1mICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1l LmZpbHRlciA8ICRvcmlnX2V4cG9ydF9zeW1ib2xzID4gJGV4cG9ydF9zeW1ib2xzCi0rCSAgICBm aQotKwkgIGZpCi0rCi0rCSAgbGlib2Jqcz0kb3V0cHV0Ci0rCSAgIyBSZXN0b3JlIHRoZSB2YWx1 ZSBvZiBvdXRwdXQuCi0rCSAgb3V0cHV0PSRzYXZlX291dHB1dAotKwotKwkgIGlmIHRlc3QgLW4g IiRjb252ZW5pZW5jZSIgJiYgdGVzdCAtbiAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIjsgdGhl bgotKwkgICAgZXZhbCBsaWJvYmpzPVwiXCRsaWJvYmpzICR3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Y1wiCi0rCSAgICB0ZXN0ICJYJGxpYm9ianMiID0gIlggIiAmJiBsaWJvYmpzPQotKwkgIGZpCi0r CSAgIyBFeHBhbmQgdGhlIGxpYnJhcnkgbGlua2luZyBjb21tYW5kcyBhZ2FpbiB0byByZXNldCB0 aGUKLSsJICAjIHZhbHVlIG9mICRsaWJvYmpzIGZvciBwaWVjZXdpc2UgbGlua2luZy4KLSsKLSsJ ICAjIERvIGVhY2ggb2YgdGhlIGFyY2hpdmUgY29tbWFuZHMuCi0rCSAgaWYgdGVzdCAiJG1vZHVs ZSIgPSB5ZXMgJiYgdGVzdCAtbiAiJG1vZHVsZV9jbWRzIiA7IHRoZW4KLSsJICAgIGlmIHRlc3Qg LW4gIiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJG1vZHVsZV9leHBzeW1fY21kcyI7IHRo ZW4KLSsJICAgICAgY21kcz0kbW9kdWxlX2V4cHN5bV9jbWRzCi0rCSAgICBlbHNlCi0rCSAgICAg IGNtZHM9JG1vZHVsZV9jbWRzCi0rCSAgICBmaQotKwkgIGVsc2UKLSsJICAgIGlmIHRlc3QgLW4g IiRleHBvcnRfc3ltYm9scyIgJiYgdGVzdCAtbiAiJGFyY2hpdmVfZXhwc3ltX2NtZHMiOyB0aGVu Ci0rCSAgICAgIGNtZHM9JGFyY2hpdmVfZXhwc3ltX2NtZHMKLSsJICAgIGVsc2UKLSsJICAgICAg Y21kcz0kYXJjaGl2ZV9jbWRzCi0rCSAgICBmaQotKwkgIGZpCi0rCWZpCi0rCi0rCWlmIHRlc3Qg LW4gIiRkZWxmaWxlcyI7IHRoZW4KLSsJICAjIEFwcGVuZCB0aGUgY29tbWFuZCB0byByZW1vdmUg dGVtcG9yYXJ5IGZpbGVzIHRvICRjbWRzLgotKwkgIGV2YWwgY21kcz1cIlwkY21kc35cJFJNICRk ZWxmaWxlc1wiCi0rCWZpCi0rCi0rCSMgQWRkIGFueSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNv bnZlbmllbmNlIGxpYnJhcmllcwotKwlpZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7IHRoZW4KLSsJ ICBnZW50b3A9IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgotKwkgIGZ1bmNfYXBwZW5k IGdlbmVyYXRlZCAiICRnZW50b3AiCi0rCi0rCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50 b3AgJGRscHJlZmlsZXMKLSsJICBmdW5jX2FwcGVuZCBsaWJvYmpzICIgJGZ1bmNfZXh0cmFjdF9h cmNoaXZlc19yZXN1bHQiCi0rCSAgdGVzdCAiWCRsaWJvYmpzIiA9ICJYICIgJiYgbGlib2Jqcz0K LSsJZmkKLSsKLSsJc2F2ZV9pZnM9IiRJRlMiOyBJRlM9J34nCi0rCWZvciBjbWQgaW4gJGNtZHM7 IGRvCi0rCSAgSUZTPSIkc2F2ZV9pZnMiCi0rCSAgZXZhbCBjbWQ9XCIkY21kXCIKLSsJICAkb3B0 X3NpbGVudCB8fCB7Ci0rCSAgICBmdW5jX3F1b3RlX2Zvcl9leHBhbmQgIiRjbWQiCi0rCSAgICBl dmFsICJmdW5jX2VjaG8gJGZ1bmNfcXVvdGVfZm9yX2V4cGFuZF9yZXN1bHQiCi0rCSAgfQotKwkg ICRvcHRfZHJ5X3J1biB8fCBldmFsICIkY21kIiB8fCB7Ci0rCSAgICBsdF9leGl0PSQ/Ci0rCi0r CSAgICAjIFJlc3RvcmUgdGhlIHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKLSsJICAgIGlm IHRlc3QgIiRvcHRfbW9kZSIgPSByZWxpbms7IHRoZW4KLSsJICAgICAgKCBjZCAiJG91dHB1dF9v YmpkaXIiICYmIFwKLSsJICAgICAgICAkUk0gIiR7cmVhbG5hbWV9VCIgJiYgXAotKwkJJE1WICIk e3JlYWxuYW1lfVUiICIkcmVhbG5hbWUiICkKLSsJICAgIGZpCi0rCi0rCSAgICBleGl0ICRsdF9l eGl0Ci0rCSAgfQotKwlkb25lCi0rCUlGUz0iJHNhdmVfaWZzIgotKwotKwkjIFJlc3RvcmUgdGhl IHVuaW5zdGFsbGVkIGxpYnJhcnkgYW5kIGV4aXQKLSsJaWYgdGVzdCAiJG9wdF9tb2RlIiA9IHJl bGluazsgdGhlbgotKwkgICRvcHRfZHJ5X3J1biB8fCBldmFsICcoY2QgJG91dHB1dF9vYmpkaXIg JiYgJFJNICR7cmVhbG5hbWV9VCAmJiAkTVYgJHJlYWxuYW1lICR7cmVhbG5hbWV9VCAmJiAkTVYg JHtyZWFsbmFtZX1VICRyZWFsbmFtZSknIHx8IGV4aXQgJD8KLSsKLSsJICBpZiB0ZXN0IC1uICIk Y29udmVuaWVuY2UiOyB0aGVuCi0rCSAgICBpZiB0ZXN0IC16ICIkd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWMiOyB0aGVuCi0rCSAgICAgIGZ1bmNfc2hvd19ldmFsICcke1JNfXIgIiRnZW50b3AiJwot KwkgICAgZmkKLSsJICBmaQotKwotKwkgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKwlmaQotKwotKwkj IENyZWF0ZSBsaW5rcyB0byB0aGUgcmVhbCBsaWJyYXJ5LgotKwlmb3IgbGlua25hbWUgaW4gJGxp bmtuYW1lczsgZG8KLSsJICBpZiB0ZXN0ICIkcmVhbG5hbWUiICE9ICIkbGlua25hbWUiOyB0aGVu Ci0rCSAgICBmdW5jX3Nob3dfZXZhbCAnKGNkICIkb3V0cHV0X29iamRpciIgJiYgJFJNICIkbGlu a25hbWUiICYmICRMTl9TICIkcmVhbG5hbWUiICIkbGlua25hbWUiKScgJ2V4aXQgJD8nCi0rCSAg ZmkKLSsJZG9uZQotKwotKwkjIElmIC1tb2R1bGUgb3IgLWV4cG9ydC1keW5hbWljIHdhcyBzcGVj aWZpZWQsIHNldCB0aGUgZGxuYW1lLgotKwlpZiB0ZXN0ICIkbW9kdWxlIiA9IHllcyB8fCB0ZXN0 ICIkZXhwb3J0X2R5bmFtaWMiID0geWVzOyB0aGVuCi0rCSAgIyBPbiBhbGwga25vd24gb3BlcmF0 aW5nIHN5c3RlbXMsIHRoZXNlIGFyZSBpZGVudGljYWwuCi0rCSAgZGxuYW1lPSIkc29uYW1lIgot KwlmaQotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgb2JqKQotKyAgICAgIGlmIHRlc3Qg LW4gIiRkbGZpbGVzJGRscHJlZmlsZXMiIHx8IHRlc3QgIiRkbHNlbGYiICE9IG5vOyB0aGVuCi0r CWZ1bmNfd2FybmluZyAiXGAtZGxvcGVuJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgotKyAgICAg IGZpCi0rCi0rICAgICAgY2FzZSAiICRkZXBsaWJzIiBpbgotKyAgICAgICpcIC1sKiB8ICpcIC1M KikKLSsJZnVuY193YXJuaW5nICJcYC1sJyBhbmQgXGAtTCcgYXJlIGlnbm9yZWQgZm9yIG9iamVj dHMiIDs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgIHRlc3QgLW4gIiRycGF0aCIgJiYgXAotKwlm dW5jX3dhcm5pbmcgIlxgLXJwYXRoJyBpcyBpZ25vcmVkIGZvciBvYmplY3RzIgotKwotKyAgICAg IHRlc3QgLW4gIiR4cnBhdGgiICYmIFwKLSsJZnVuY193YXJuaW5nICJcYC1SJyBpcyBpZ25vcmVk IGZvciBvYmplY3RzIgotKwotKyAgICAgIHRlc3QgLW4gIiR2aW5mbyIgJiYgXAotKwlmdW5jX3dh cm5pbmcgIlxgLXZlcnNpb24taW5mbycgaXMgaWdub3JlZCBmb3Igb2JqZWN0cyIKLSsKLSsgICAg ICB0ZXN0IC1uICIkcmVsZWFzZSIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlz IGlnbm9yZWQgZm9yIG9iamVjdHMiCi0rCi0rICAgICAgY2FzZSAkb3V0cHV0IGluCi0rICAgICAg Ki5sbykKLSsJdGVzdCAtbiAiJG9ianMkb2xkX2RlcGxpYnMiICYmIFwKLSsJICBmdW5jX2ZhdGFs X2Vycm9yICJjYW5ub3QgYnVpbGQgbGlicmFyeSBvYmplY3QgXGAkb3V0cHV0JyBmcm9tIG5vbi1s aWJ0b29sIG9iamVjdHMiCi0rCi0rCWxpYm9iaj0kb3V0cHV0Ci0rCWZ1bmNfbG8ybyAiJGxpYm9i aiIKLSsJb2JqPSRmdW5jX2xvMm9fcmVzdWx0Ci0rCTs7Ci0rICAgICAgKikKLSsJbGlib2JqPQot KwlvYmo9IiRvdXRwdXQiCi0rCTs7Ci0rICAgICAgZXNhYwotKwotKyAgICAgICMgRGVsZXRlIHRo ZSBvbGQgb2JqZWN0cy4KLSsgICAgICAkb3B0X2RyeV9ydW4gfHwgJFJNICRvYmogJGxpYm9iagot KwotKyAgICAgICMgT2JqZWN0cyBmcm9tIGNvbnZlbmllbmNlIGxpYnJhcmllcy4gIFRoaXMgYXNz dW1lcwotKyAgICAgICMgc2luZ2xlLXZlcnNpb24gY29udmVuaWVuY2UgbGlicmFyaWVzLiAgV2hl bmV2ZXIgd2UgY3JlYXRlCi0rICAgICAgIyBkaWZmZXJlbnQgb25lcyBmb3IgUElDL25vbi1QSUMs IHRoaXMgd2UnbGwgaGF2ZSB0byBkdXBsaWNhdGUKLSsgICAgICAjIHRoZSBleHRyYWN0aW9uLgot KyAgICAgIHJlbG9hZF9jb252X29ianM9Ci0rICAgICAgZ2VudG9wPQotKyAgICAgICMgcmVsb2Fk X2NtZHMgcnVucyAkTEQgZGlyZWN0bHksIHNvIGxldCB1cyBnZXQgcmlkIG9mCi0rICAgICAgIyAt V2wgZnJvbSB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYyBhbmQgaG9wZSB3ZSBjYW4gZ2V0IGJ5IHdp dGgKLSsgICAgICAjIHR1cm5pbmcgY29tbWEgaW50byBzcGFjZS4uCi0rICAgICAgd2w9Ci0rCi0r ICAgICAgaWYgdGVzdCAtbiAiJGNvbnZlbmllbmNlIjsgdGhlbgotKwlpZiB0ZXN0IC1uICIkd2hv bGVfYXJjaGl2ZV9mbGFnX3NwZWMiOyB0aGVuCi0rCSAgZXZhbCB0bXBfd2hvbGVfYXJjaGl2ZV9m bGFncz1cIiR3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY1wiCi0rCSAgcmVsb2FkX2NvbnZfb2Jqcz0k cmVsb2FkX29ianNcIGAkRUNITyAiJHRtcF93aG9sZV9hcmNoaXZlX2ZsYWdzIiB8ICRTRUQgJ3N8 LHwgfGcnYAotKwllbHNlCi0rCSAgZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke29ian14IgotKwkg IGZ1bmNfYXBwZW5kIGdlbmVyYXRlZCAiICRnZW50b3AiCi0rCi0rCSAgZnVuY19leHRyYWN0X2Fy Y2hpdmVzICRnZW50b3AgJGNvbnZlbmllbmNlCi0rCSAgcmVsb2FkX2NvbnZfb2Jqcz0iJHJlbG9h ZF9vYmpzICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKwlmaQotKyAgICAgIGZpCi0r Ci0rICAgICAgIyBJZiB3ZSdyZSBub3QgYnVpbGRpbmcgc2hhcmVkLCB3ZSBuZWVkIHRvIHVzZSBu b25fcGljX29ianMKLSsgICAgICB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXMgJiYg bGlib2Jqcz0iJG5vbl9waWNfb2JqZWN0cyIKLSsKLSsgICAgICAjIENyZWF0ZSB0aGUgb2xkLXN0 eWxlIG9iamVjdC4KLSsgICAgICByZWxvYWRfb2Jqcz0iJG9ianMkb2xkX2RlcGxpYnMgImAkRUNI TyAiJGxpYm9ianMiIHwgJFNQMk5MIHwgJFNFRCAiL1wuJHtsaWJleHR9JC9kOyAvXC5saWIkL2Q7 ICRsbzJvIiB8ICROTDJTUGAiICRyZWxvYWRfY29udl9vYmpzIiAjIyMgdGVzdHN1aXRlOiBza2lw IG5lc3RlZCBxdW90aW5nIHRlc3QKLSsKLSsgICAgICBvdXRwdXQ9IiRvYmoiCi0rICAgICAgZnVu Y19leGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIgJ2V4aXQgJD8nCi0rCi0rICAgICAgIyBFeGl0 IGlmIHdlIGFyZW4ndCBkb2luZyBhIGxpYnJhcnkgb2JqZWN0IGZpbGUuCi0rICAgICAgaWYgdGVz dCAteiAiJGxpYm9iaiI7IHRoZW4KLSsJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KLSsJICBm dW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKLSsJZmkKLSsKLSsJZXhpdCAkRVhJVF9T VUNDRVNTCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJz IiAhPSB5ZXM7IHRoZW4KLSsJaWYgdGVzdCAtbiAiJGdlbnRvcCI7IHRoZW4KLSsJICBmdW5jX3No b3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKLSsJZmkKLSsKLSsJIyBDcmVhdGUgYW4gaW52YWxp ZCBsaWJ0b29sIG9iamVjdCBpZiBubyBQSUMsIHNvIHRoYXQgd2UgZG9uJ3QKLSsJIyBhY2NpZGVu dGFsbHkgbGluayBpdCBpbnRvIGEgcHJvZ3JhbS4KLSsJIyAkc2hvdyAiZWNobyB0aW1lc3RhbXAg PiAkbGlib2JqIgotKwkjICRvcHRfZHJ5X3J1biB8fCBldmFsICJlY2hvIHRpbWVzdGFtcCA+ICRs aWJvYmoiIHx8IGV4aXQgJD8KLSsJZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgICAgZmkKLSsKLSsg ICAgICBpZiB0ZXN0IC1uICIkcGljX2ZsYWciIHx8IHRlc3QgIiRwaWNfbW9kZSIgIT0gZGVmYXVs dDsgdGhlbgotKwkjIE9ubHkgZG8gY29tbWFuZHMgaWYgd2UgcmVhbGx5IGhhdmUgZGlmZmVyZW50 IFBJQyBvYmplY3RzLgotKwlyZWxvYWRfb2Jqcz0iJGxpYm9ianMgJHJlbG9hZF9jb252X29ianMi Ci0rCW91dHB1dD0iJGxpYm9iaiIKLSsJZnVuY19leGVjdXRlX2NtZHMgIiRyZWxvYWRfY21kcyIg J2V4aXQgJD8nCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkZ2VudG9wIjsgdGhl bgotKwlmdW5jX3Nob3dfZXZhbCAnJHtSTX1yICIkZ2VudG9wIicKLSsgICAgICBmaQotKwotKyAg ICAgIGV4aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIDs7Ci0rCi0rICAgIHByb2cpCi0rICAgICAg Y2FzZSAkaG9zdCBpbgotKwkqY3lnd2luKikgZnVuY19zdHJpcG5hbWUgJycgJy5leGUnICIkb3V0 cHV0IgotKwkgICAgICAgICAgb3V0cHV0PSRmdW5jX3N0cmlwbmFtZV9yZXN1bHQuZXhlOzsKLSsg ICAgICBlc2FjCi0rICAgICAgdGVzdCAtbiAiJHZpbmZvIiAmJiBcCi0rCWZ1bmNfd2FybmluZyAi XGAtdmVyc2lvbi1pbmZvJyBpcyBpZ25vcmVkIGZvciBwcm9ncmFtcyIKLSsKLSsgICAgICB0ZXN0 IC1uICIkcmVsZWFzZSIgJiYgXAotKwlmdW5jX3dhcm5pbmcgIlxgLXJlbGVhc2UnIGlzIGlnbm9y ZWQgZm9yIHByb2dyYW1zIgotKwotKyAgICAgIHRlc3QgIiRwcmVsb2FkIiA9IHllcyBcCi0rICAg ICAgICAmJiB0ZXN0ICIkZGxvcGVuX3N1cHBvcnQiID0gdW5rbm93biBcCi0rCSYmIHRlc3QgIiRk bG9wZW5fc2VsZiIgPSB1bmtub3duIFwKLSsJJiYgdGVzdCAiJGRsb3Blbl9zZWxmX3N0YXRpYyIg PSB1bmtub3duICYmIFwKLSsJICBmdW5jX3dhcm5pbmcgIlxgTFRfSU5JVChbZGxvcGVuXSknIG5v dCB1c2VkLiBBc3N1bWluZyBubyBkbG9wZW4gc3VwcG9ydC4iCi0rCi0rICAgICAgY2FzZSAkaG9z dCBpbgotKyAgICAgICotKi1yaGFwc29keSogfCAqLSotZGFyd2luMS5bMDEyXSkKLSsJIyBPbiBS aGFwc29keSByZXBsYWNlIHRoZSBDIGxpYnJhcnkgaXMgdGhlIFN5c3RlbSBmcmFtZXdvcmsKLSsJ Y29tcGlsZV9kZXBsaWJzPWAkRUNITyAiICRjb21waWxlX2RlcGxpYnMiIHwgJFNFRCAncy8gLWxj IC8gU3lzdGVtLmx0ZnJhbWV3b3JrIC8nYAotKwlmaW5hbGl6ZV9kZXBsaWJzPWAkRUNITyAiICRm aW5hbGl6ZV9kZXBsaWJzIiB8ICRTRUQgJ3MvIC1sYyAvIFN5c3RlbS5sdGZyYW1ld29yayAvJ2AK LSsJOzsKLSsgICAgICBlc2FjCi0rCi0rICAgICAgY2FzZSAkaG9zdCBpbgotKyAgICAgICotKi1k YXJ3aW4qKQotKwkjIERvbid0IGFsbG93IGxhenkgbGlua2luZywgaXQgYnJlYWtzIEMrKyBnbG9i YWwgY29uc3RydWN0b3JzCi0rCSMgQnV0IGlzIHN1cHBvc2VkbHkgZml4ZWQgb24gMTAuNCBvciBs YXRlciAoeWF5ISkuCi0rCWlmIHRlc3QgIiR0YWduYW1lIiA9IENYWCA7IHRoZW4KLSsJICBjYXNl ICR7TUFDT1NYX0RFUExPWU1FTlRfVEFSR0VULTEwLjB9IGluCi0rCSAgICAxMC5bMDEyM10pCi0r CSAgICAgIGZ1bmNfYXBwZW5kIGNvbXBpbGVfY29tbWFuZCAiICR7d2x9LWJpbmRfYXRfbG9hZCIK LSsJICAgICAgZnVuY19hcHBlbmQgZmluYWxpemVfY29tbWFuZCAiICR7d2x9LWJpbmRfYXRfbG9h ZCIKLSsJICAgIDs7Ci0rCSAgZXNhYwotKwlmaQotKwkjIFRpbWUgdG8gY2hhbmdlIGFsbCBvdXIg ImZvby5sdGZyYW1ld29yayIgc3R1ZmYgYmFjayB0byAiLWZyYW1ld29yayBmb28iCi0rCWNvbXBp bGVfZGVwbGlicz1gJEVDSE8gIiAkY29tcGlsZV9kZXBsaWJzIiB8ICRTRUQgJ3MlIFwoW14gJF0q XCkubHRmcmFtZXdvcmslIC1mcmFtZXdvcmsgXDElZydgCi0rCWZpbmFsaXplX2RlcGxpYnM9YCRF Q0hPICIgJGZpbmFsaXplX2RlcGxpYnMiIHwgJFNFRCAncyUgXChbXiAkXSpcKS5sdGZyYW1ld29y ayUgLWZyYW1ld29yayBcMSVnJ2AKLSsJOzsKLSsgICAgICBlc2FjCi0rCi0rCi0rICAgICAgIyBt b3ZlIGxpYnJhcnkgc2VhcmNoIHBhdGhzIHRoYXQgY29pbmNpZGUgd2l0aCBwYXRocyB0byBub3Qg eWV0Ci0rICAgICAgIyBpbnN0YWxsZWQgbGlicmFyaWVzIHRvIHRoZSBiZWdpbm5pbmcgb2YgdGhl IGxpYnJhcnkgc2VhcmNoIGxpc3QKLSsgICAgICBuZXdfbGlicz0KLSsgICAgICBmb3IgcGF0aCBp biAkbm90aW5zdF9wYXRoOyBkbwotKwljYXNlICIgJG5ld19saWJzICIgaW4KLSsJKiIgLUwkcGF0 aC8kb2JqZGlyICIqKSA7OwotKwkqKQotKwkgIGNhc2UgIiAkY29tcGlsZV9kZXBsaWJzICIgaW4K LSsJICAqIiAtTCRwYXRoLyRvYmpkaXIgIiopCi0rCSAgICBmdW5jX2FwcGVuZCBuZXdfbGlicyAi IC1MJHBhdGgvJG9iamRpciIgOzsKLSsJICBlc2FjCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGRv bmUKLSsgICAgICBmb3IgZGVwbGliIGluICRjb21waWxlX2RlcGxpYnM7IGRvCi0rCWNhc2UgJGRl cGxpYiBpbgotKwktTCopCi0rCSAgY2FzZSAiICRuZXdfbGlicyAiIGluCi0rCSAgKiIgJGRlcGxp YiAiKikgOzsKLSsJICAqKSBmdW5jX2FwcGVuZCBuZXdfbGlicyAiICRkZXBsaWIiIDs7Ci0rCSAg ZXNhYwotKwkgIDs7Ci0rCSopIGZ1bmNfYXBwZW5kIG5ld19saWJzICIgJGRlcGxpYiIgOzsKLSsJ ZXNhYwotKyAgICAgIGRvbmUKLSsgICAgICBjb21waWxlX2RlcGxpYnM9IiRuZXdfbGlicyIKLSsK LSsKLSsgICAgICBmdW5jX2FwcGVuZCBjb21waWxlX2NvbW1hbmQgIiAkY29tcGlsZV9kZXBsaWJz IgotKyAgICAgIGZ1bmNfYXBwZW5kIGZpbmFsaXplX2NvbW1hbmQgIiAkZmluYWxpemVfZGVwbGli cyIKLSsKLSsgICAgICBpZiB0ZXN0IC1uICIkcnBhdGgkeHJwYXRoIjsgdGhlbgotKwkjIElmIHRo ZSB1c2VyIHNwZWNpZmllZCBhbnkgcnBhdGggZmxhZ3MsIHRoZW4gYWRkIHRoZW0uCi0rCWZvciBs aWJkaXIgaW4gJHJwYXRoICR4cnBhdGg7IGRvCi0rCSAgIyBUaGlzIGlzIHRoZSBtYWdpYyB0byB1 c2UgLXJwYXRoLgotKwkgIGNhc2UgIiRmaW5hbGl6ZV9ycGF0aCAiIGluCi0rCSAgKiIgJGxpYmRp ciAiKikgOzsKLSsJICAqKSBmdW5jX2FwcGVuZCBmaW5hbGl6ZV9ycGF0aCAiICRsaWJkaXIiIDs7 Ci0rCSAgZXNhYwotKwlkb25lCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE5vdyBoYXJkY29kZSB0 aGUgbGlicmFyeSBwYXRocwotKyAgICAgIHJwYXRoPQotKyAgICAgIGhhcmRjb2RlX2xpYmRpcnM9 Ci0rICAgICAgZm9yIGxpYmRpciBpbiAkY29tcGlsZV9ycGF0aCAkZmluYWxpemVfcnBhdGg7IGRv Ci0rCWlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjIjsgdGhlbgotKwkgIGlm IHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIjsgdGhlbgotKwkgICAgaWYgdGVz dCAteiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCSAgICAgIGhhcmRjb2RlX2xpYmRpcnM9 IiRsaWJkaXIiCi0rCSAgICBlbHNlCi0rCSAgICAgICMgSnVzdCBhY2N1bXVsYXRlIHRoZSB1bmlx dWUgbGliZGlycy4KLSsJICAgICAgY2FzZSAkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciRoYXJk Y29kZV9saWJkaXJzJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IgaW4KLSsJICAgICAgKiIkaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIq KQotKwkJOzsKLSsJICAgICAgKikKLSsJCWZ1bmNfYXBwZW5kIGhhcmRjb2RlX2xpYmRpcnMgIiRo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yJGxpYmRpciIKLSsJCTs7Ci0rCSAgICAgIGVzYWMKLSsJ ICAgIGZpCi0rCSAgZWxzZQotKwkgICAgZXZhbCBmbGFnPVwiJGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWNcIgotKwkgICAgZnVuY19hcHBlbmQgcnBhdGggIiAkZmxhZyIKLSsJICBmaQotKwllbGlm IHRlc3QgLW4gIiRydW5wYXRoX3ZhciI7IHRoZW4KLSsJICBjYXNlICIkcGVybV9ycGF0aCAiIGlu Ci0rCSAgKiIgJGxpYmRpciAiKikgOzsKLSsJICAqKSBmdW5jX2FwcGVuZCBwZXJtX3JwYXRoICIg JGxpYmRpciIgOzsKLSsJICBlc2FjCi0rCWZpCi0rCWNhc2UgJGhvc3QgaW4KLSsJKi0qLWN5Z3dp biogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLW9zMiogfCAqLWNlZ2NjKikKLSsJICB0 ZXN0YmluZGlyPWAke0VDSE99ICIkbGliZGlyIiB8ICR7U0VEfSAtZSAncyovbGliJCovYmluKidg Ci0rCSAgY2FzZSA6JGRsbHNlYXJjaHBhdGg6IGluCi0rCSAgKiI6JGxpYmRpcjoiKikgOzsKLSsJ ICA6OikgZGxsc2VhcmNocGF0aD0kbGliZGlyOzsKLSsJICAqKSBmdW5jX2FwcGVuZCBkbGxzZWFy Y2hwYXRoICI6JGxpYmRpciI7OwotKwkgIGVzYWMKLSsJICBjYXNlIDokZGxsc2VhcmNocGF0aDog aW4KLSsJICAqIjokdGVzdGJpbmRpcjoiKikgOzsKLSsJICA6OikgZGxsc2VhcmNocGF0aD0kdGVz dGJpbmRpcjs7Ci0rCSAgKikgZnVuY19hcHBlbmQgZGxsc2VhcmNocGF0aCAiOiR0ZXN0YmluZGly Ijs7Ci0rCSAgZXNhYwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBkb25lCi0rICAgICAgIyBTdWJz dGl0dXRlIHRoZSBoYXJkY29kZWQgbGliZGlycyBpbnRvIHRoZSBycGF0aC4KLSsgICAgICBpZiB0 ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgJiYKLSsJIHRlc3QgLW4gIiRoYXJk Y29kZV9saWJkaXJzIjsgdGhlbgotKwlsaWJkaXI9IiRoYXJkY29kZV9saWJkaXJzIgotKwlldmFs IHJwYXRoPVwiICRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjXCIKLSsgICAgICBmaQotKyAgICAg IGNvbXBpbGVfcnBhdGg9IiRycGF0aCIKLSsKLSsgICAgICBycGF0aD0KLSsgICAgICBoYXJkY29k ZV9saWJkaXJzPQotKyAgICAgIGZvciBsaWJkaXIgaW4gJGZpbmFsaXplX3JwYXRoOyBkbwotKwlp ZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyI7IHRoZW4KLSsJICBpZiB0ZXN0 IC1uICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciI7IHRoZW4KLSsJICAgIGlmIHRlc3QgLXog IiRoYXJkY29kZV9saWJkaXJzIjsgdGhlbgotKwkgICAgICBoYXJkY29kZV9saWJkaXJzPSIkbGli ZGlyIgotKwkgICAgZWxzZQotKwkgICAgICAjIEp1c3QgYWNjdW11bGF0ZSB0aGUgdW5pcXVlIGxp YmRpcnMuCi0rCSAgICAgIGNhc2UgJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IkaGFyZGNvZGVf bGliZGlycyRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIGluCi0rCSAgICAgICoiJGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3IkbGliZGlyJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3IiKikKLSsJ CTs7Ci0rCSAgICAgICopCi0rCQlmdW5jX2FwcGVuZCBoYXJkY29kZV9saWJkaXJzICIkaGFyZGNv ZGVfbGliZGlyX3NlcGFyYXRvciRsaWJkaXIiCi0rCQk7OwotKwkgICAgICBlc2FjCi0rCSAgICBm aQotKwkgIGVsc2UKLSsJICAgIGV2YWwgZmxhZz1cIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj XCIKLSsJICAgIGZ1bmNfYXBwZW5kIHJwYXRoICIgJGZsYWciCi0rCSAgZmkKLSsJZWxpZiB0ZXN0 IC1uICIkcnVucGF0aF92YXIiOyB0aGVuCi0rCSAgY2FzZSAiJGZpbmFsaXplX3Blcm1fcnBhdGgg IiBpbgotKwkgICoiICRsaWJkaXIgIiopIDs7Ci0rCSAgKikgZnVuY19hcHBlbmQgZmluYWxpemVf cGVybV9ycGF0aCAiICRsaWJkaXIiIDs7Ci0rCSAgZXNhYwotKwlmaQotKyAgICAgIGRvbmUKLSsg ICAgICAjIFN1YnN0aXR1dGUgdGhlIGhhcmRjb2RlZCBsaWJkaXJzIGludG8gdGhlIHJwYXRoLgot KyAgICAgIGlmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yIiAmJgotKwkgdGVz dCAtbiAiJGhhcmRjb2RlX2xpYmRpcnMiOyB0aGVuCi0rCWxpYmRpcj0iJGhhcmRjb2RlX2xpYmRp cnMiCi0rCWV2YWwgcnBhdGg9XCIgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNcIgotKyAgICAg IGZpCi0rICAgICAgZmluYWxpemVfcnBhdGg9IiRycGF0aCIKLSsKLSsgICAgICBpZiB0ZXN0IC1u ICIkbGlib2JqcyIgJiYgdGVzdCAiJGJ1aWxkX29sZF9saWJzIiA9IHllczsgdGhlbgotKwkjIFRy YW5zZm9ybSBhbGwgdGhlIGxpYnJhcnkgb2JqZWN0cyBpbnRvIHN0YW5kYXJkIG9iamVjdHMuCi0r CWNvbXBpbGVfY29tbWFuZD1gJEVDSE8gIiRjb21waWxlX2NvbW1hbmQiIHwgJFNQMk5MIHwgJFNF RCAiJGxvMm8iIHwgJE5MMlNQYAotKwlmaW5hbGl6ZV9jb21tYW5kPWAkRUNITyAiJGZpbmFsaXpl X2NvbW1hbmQiIHwgJFNQMk5MIHwgJFNFRCAiJGxvMm8iIHwgJE5MMlNQYAotKyAgICAgIGZpCi0r Ci0rICAgICAgZnVuY19nZW5lcmF0ZV9kbHN5bXMgIiRvdXRwdXRuYW1lIiAiQFBST0dSQU1AIiAi bm8iCi0rCi0rICAgICAgIyB0ZW1wbGF0ZSBwcmVsaW5raW5nIHN0ZXAKLSsgICAgICBpZiB0ZXN0 IC1uICIkcHJlbGlua19jbWRzIjsgdGhlbgotKwlmdW5jX2V4ZWN1dGVfY21kcyAiJHByZWxpbmtf Y21kcyIgJ2V4aXQgJD8nCi0rICAgICAgZmkKLSsKLSsgICAgICB3cmFwcGVyc19yZXF1aXJlZD15 ZXMKLSsgICAgICBjYXNlICRob3N0IGluCi0rICAgICAgKmNlZ2NjKiB8ICptaW5ndzMyY2UqKQot KyAgICAgICAgIyBEaXNhYmxlIHdyYXBwZXJzIGZvciBjZWdjYyBhbmQgbWluZ3czMmNlIGhvc3Rz LCB3ZSBhcmUgY3Jvc3MgY29tcGlsaW5nIGFueXdheS4KLSsgICAgICAgIHdyYXBwZXJzX3JlcXVp cmVkPW5vCi0rICAgICAgICA7OwotKyAgICAgICpjeWd3aW4qIHwgKm1pbmd3KiApCi0rICAgICAg ICBpZiB0ZXN0ICIkYnVpbGRfbGlidG9vbF9saWJzIiAhPSB5ZXM7IHRoZW4KLSsgICAgICAgICAg d3JhcHBlcnNfcmVxdWlyZWQ9bm8KLSsgICAgICAgIGZpCi0rICAgICAgICA7OwotKyAgICAgICop Ci0rICAgICAgICBpZiB0ZXN0ICIkbmVlZF9yZWxpbmsiID0gbm8gfHwgdGVzdCAiJGJ1aWxkX2xp YnRvb2xfbGlicyIgIT0geWVzOyB0aGVuCi0rICAgICAgICAgIHdyYXBwZXJzX3JlcXVpcmVkPW5v Ci0rICAgICAgICBmaQotKyAgICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgaWYgdGVzdCAi JHdyYXBwZXJzX3JlcXVpcmVkIiA9IG5vOyB0aGVuCi0rCSMgUmVwbGFjZSB0aGUgb3V0cHV0IGZp bGUgc3BlY2lmaWNhdGlvbi4KLSsJY29tcGlsZV9jb21tYW5kPWAkRUNITyAiJGNvbXBpbGVfY29t bWFuZCIgfCAkU0VEICdzJUBPVVRQVVRAJSciJG91dHB1dCInJWcnYAotKwlsaW5rX2NvbW1hbmQ9 IiRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKLSsKLSsJIyBXZSBoYXZlIG5vIHVuaW5z dGFsbGVkIGxpYnJhcnkgZGVwZW5kZW5jaWVzLCBzbyBmaW5hbGl6ZSByaWdodCBub3cuCi0rCWV4 aXRfc3RhdHVzPTAKLSsJZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0X3N0YXR1 cz0kPycKLSsKLSsJaWYgdGVzdCAtbiAiJHBvc3RsaW5rX2NtZHMiOyB0aGVuCi0rCSAgZnVuY190 b190b29sX2ZpbGUgIiRvdXRwdXQiCi0rCSAgcG9zdGxpbmtfY21kcz1gZnVuY19lY2hvX2FsbCAi JHBvc3RsaW5rX2NtZHMiIHwgJFNFRCAtZSAncyVAT1VUUFVUQCUnIiRvdXRwdXQiJyVnJyAtZSAn cyVAVE9PTF9PVVRQVVRAJSciJGZ1bmNfdG9fdG9vbF9maWxlX3Jlc3VsdCInJWcnYAotKwkgIGZ1 bmNfZXhlY3V0ZV9jbWRzICIkcG9zdGxpbmtfY21kcyIgJ2V4aXQgJD8nCi0rCWZpCi0rCi0rCSMg RGVsZXRlIHRoZSBnZW5lcmF0ZWQgZmlsZXMuCi0rCWlmIHRlc3QgLWYgIiRvdXRwdXRfb2JqZGly LyR7b3V0cHV0bmFtZX1TLiR7b2JqZXh0fSI7IHRoZW4KLSsJICBmdW5jX3Nob3dfZXZhbCAnJFJN ICIkb3V0cHV0X29iamRpci8ke291dHB1dG5hbWV9Uy4ke29iamV4dH0iJwotKwlmaQotKwotKwll eGl0ICRleGl0X3N0YXR1cwotKyAgICAgIGZpCi0rCi0rICAgICAgaWYgdGVzdCAtbiAiJGNvbXBp bGVfc2hsaWJwYXRoJGZpbmFsaXplX3NobGlicGF0aCI7IHRoZW4KLSsJY29tcGlsZV9jb21tYW5k PSIkc2hsaWJwYXRoX3Zhcj1cIiRjb21waWxlX3NobGlicGF0aCRmaW5hbGl6ZV9zaGxpYnBhdGhc JCRzaGxpYnBhdGhfdmFyXCIgJGNvbXBpbGVfY29tbWFuZCIKLSsgICAgICBmaQotKyAgICAgIGlm IHRlc3QgLW4gIiRmaW5hbGl6ZV9zaGxpYnBhdGgiOyB0aGVuCi0rCWZpbmFsaXplX2NvbW1hbmQ9 IiRzaGxpYnBhdGhfdmFyPVwiJGZpbmFsaXplX3NobGlicGF0aFwkJHNobGlicGF0aF92YXJcIiAk ZmluYWxpemVfY29tbWFuZCIKLSsgICAgICBmaQotKwotKyAgICAgIGNvbXBpbGVfdmFyPQotKyAg ICAgIGZpbmFsaXplX3Zhcj0KLSsgICAgICBpZiB0ZXN0IC1uICIkcnVucGF0aF92YXIiOyB0aGVu Ci0rCWlmIHRlc3QgLW4gIiRwZXJtX3JwYXRoIjsgdGhlbgotKwkgICMgV2Ugc2hvdWxkIHNldCB0 aGUgcnVucGF0aF92YXIuCi0rCSAgcnBhdGg9Ci0rCSAgZm9yIGRpciBpbiAkcGVybV9ycGF0aDsg ZG8KLSsJICAgIGZ1bmNfYXBwZW5kIHJwYXRoICIkZGlyOiIKLSsJICBkb25lCi0rCSAgY29tcGls ZV92YXI9IiRydW5wYXRoX3Zhcj1cIiRycGF0aFwkJHJ1bnBhdGhfdmFyXCIgIgotKwlmaQotKwlp ZiB0ZXN0IC1uICIkZmluYWxpemVfcGVybV9ycGF0aCI7IHRoZW4KLSsJICAjIFdlIHNob3VsZCBz ZXQgdGhlIHJ1bnBhdGhfdmFyLgotKwkgIHJwYXRoPQotKwkgIGZvciBkaXIgaW4gJGZpbmFsaXpl X3Blcm1fcnBhdGg7IGRvCi0rCSAgICBmdW5jX2FwcGVuZCBycGF0aCAiJGRpcjoiCi0rCSAgZG9u ZQotKwkgIGZpbmFsaXplX3Zhcj0iJHJ1bnBhdGhfdmFyPVwiJHJwYXRoXCQkcnVucGF0aF92YXJc IiAiCi0rCWZpCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0ZXN0ICIkbm9faW5zdGFsbCIgPSB5 ZXM7IHRoZW4KLSsJIyBXZSBkb24ndCBuZWVkIHRvIGNyZWF0ZSBhIHdyYXBwZXIgc2NyaXB0Lgot KwlsaW5rX2NvbW1hbmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0 aCIKLSsJIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBzcGVjaWZpY2F0aW9uLgotKwlsaW5rX2Nv bW1hbmQ9YCRFQ0hPICIkbGlua19jb21tYW5kIiB8ICRTRUQgJ3MlQE9VVFBVVEAlJyIkb3V0cHV0 IiclZydgCi0rCSMgRGVsZXRlIHRoZSBvbGQgb3V0cHV0IGZpbGUuCi0rCSRvcHRfZHJ5X3J1biB8 fCAkUk0gJG91dHB1dAotKwkjIExpbmsgdGhlIGV4ZWN1dGFibGUgYW5kIGV4aXQKLSsJZnVuY19z aG93X2V2YWwgIiRsaW5rX2NvbW1hbmQiICdleGl0ICQ/JwotKwotKwlpZiB0ZXN0IC1uICIkcG9z dGxpbmtfY21kcyI7IHRoZW4KLSsJICBmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dCIKLSsJICBw b3N0bGlua19jbWRzPWBmdW5jX2VjaG9fYWxsICIkcG9zdGxpbmtfY21kcyIgfCAkU0VEIC1lICdz JUBPVVRQVVRAJSciJG91dHB1dCInJWcnIC1lICdzJUBUT09MX09VVFBVVEAlJyIkZnVuY190b190 b29sX2ZpbGVfcmVzdWx0IiclZydgCi0rCSAgZnVuY19leGVjdXRlX2NtZHMgIiRwb3N0bGlua19j bWRzIiAnZXhpdCAkPycKLSsJZmkKLSsKLSsJZXhpdCAkRVhJVF9TVUNDRVNTCi0rICAgICAgZmkK LSsKLSsgICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYWN0aW9uIiA9IHJlbGluazsgdGhlbgotKwkj IEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0ZWQKLSsJbGlua19jb21tYW5kPSIkY29t cGlsZV92YXIkY29tcGlsZV9jb21tYW5kJGNvbXBpbGVfcnBhdGgiCi0rCXJlbGlua19jb21tYW5k PSIkZmluYWxpemVfdmFyJGZpbmFsaXplX2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCi0rCi0rCWZ1 bmNfd2FybmluZyAidGhpcyBwbGF0Zm9ybSBkb2VzIG5vdCBsaWtlIHVuaW5zdGFsbGVkIHNoYXJl ZCBsaWJyYXJpZXMiCi0rCWZ1bmNfd2FybmluZyAiXGAkb3V0cHV0JyB3aWxsIGJlIHJlbGlua2Vk IGR1cmluZyBpbnN0YWxsYXRpb24iCi0rICAgICAgZWxzZQotKwlpZiB0ZXN0ICIkZmFzdF9pbnN0 YWxsIiAhPSBubzsgdGhlbgotKwkgIGxpbmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRjb21waWxl X2NvbW1hbmQkZmluYWxpemVfcnBhdGgiCi0rCSAgaWYgdGVzdCAiJGZhc3RfaW5zdGFsbCIgPSB5 ZXM7IHRoZW4KLSsJICAgIHJlbGlua19jb21tYW5kPWAkRUNITyAiJGNvbXBpbGVfdmFyJGNvbXBp bGVfY29tbWFuZCRjb21waWxlX3JwYXRoIiB8ICRTRUQgJ3MlQE9VVFBVVEAlXCRwcm9nZGlyL1wk ZmlsZSVnJ2AKLSsJICBlbHNlCi0rCSAgICAjIGZhc3RfaW5zdGFsbCBpcyBzZXQgdG8gbmVlZGxl c3MKLSsJICAgIHJlbGlua19jb21tYW5kPQotKwkgIGZpCi0rCWVsc2UKLSsJICBsaW5rX2NvbW1h bmQ9IiRjb21waWxlX3ZhciRjb21waWxlX2NvbW1hbmQkY29tcGlsZV9ycGF0aCIKLSsJICByZWxp bmtfY29tbWFuZD0iJGZpbmFsaXplX3ZhciRmaW5hbGl6ZV9jb21tYW5kJGZpbmFsaXplX3JwYXRo IgotKwlmaQotKyAgICAgIGZpCi0rCi0rICAgICAgIyBSZXBsYWNlIHRoZSBvdXRwdXQgZmlsZSBz cGVjaWZpY2F0aW9uLgotKyAgICAgIGxpbmtfY29tbWFuZD1gJEVDSE8gIiRsaW5rX2NvbW1hbmQi IHwgJFNFRCAncyVAT1VUUFVUQCUnIiRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lIiclZydgCi0r Ci0rICAgICAgIyBEZWxldGUgdGhlIG9sZCBvdXRwdXQgZmlsZXMuCi0rICAgICAgJG9wdF9kcnlf cnVuIHx8ICRSTSAkb3V0cHV0ICRvdXRwdXRfb2JqZGlyLyRvdXRwdXRuYW1lICRvdXRwdXRfb2Jq ZGlyL2x0LSRvdXRwdXRuYW1lCi0rCi0rICAgICAgZnVuY19zaG93X2V2YWwgIiRsaW5rX2NvbW1h bmQiICdleGl0ICQ/JwotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRwb3N0bGlua19jbWRzIjsgdGhl bgotKwlmdW5jX3RvX3Rvb2xfZmlsZSAiJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiCi0rCXBv c3RsaW5rX2NtZHM9YGZ1bmNfZWNob19hbGwgIiRwb3N0bGlua19jbWRzIiB8ICRTRUQgLWUgJ3Ml QE9VVFBVVEAlJyIkb3V0cHV0X29iamRpci8kb3V0cHV0bmFtZSInJWcnIC1lICdzJUBUT09MX09V VFBVVEAlJyIkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IiclZydgCi0rCWZ1bmNfZXhlY3V0ZV9j bWRzICIkcG9zdGxpbmtfY21kcyIgJ2V4aXQgJD8nCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE5v dyBjcmVhdGUgdGhlIHdyYXBwZXIgc2NyaXB0LgotKyAgICAgIGZ1bmNfdmVyYm9zZSAiY3JlYXRp bmcgJG91dHB1dCIKLSsKLSsgICAgICAjIFF1b3RlIHRoZSByZWxpbmsgY29tbWFuZCBmb3Igc2hp cHBpbmcuCi0rICAgICAgaWYgdGVzdCAtbiAiJHJlbGlua19jb21tYW5kIjsgdGhlbgotKwkjIFBy ZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBtYXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCi0r CWZvciB2YXIgaW4gJHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rOyBkbwotKwkgIGlmIGV2YWwg dGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiOyB0aGVuCi0rCSAgICByZWxpbmtfY29tbWFuZD0ieyB0 ZXN0IC16IFwiXCR7JHZhcitzZXR9XCIgfHwgJGx0X3Vuc2V0ICR2YXIgfHwgeyAkdmFyPTsgZXhw b3J0ICR2YXI7IH07IH07ICRyZWxpbmtfY29tbWFuZCIKLSsJICBlbGlmIGV2YWwgdmFyX3ZhbHVl PVwkJHZhcjsgdGVzdCAteiAiJHZhcl92YWx1ZSI7IHRoZW4KLSsJICAgIHJlbGlua19jb21tYW5k PSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtfY29tbWFuZCIKLSsJICBlbHNlCi0rCSAgICBm dW5jX3F1b3RlX2Zvcl9ldmFsICIkdmFyX3ZhbHVlIgotKwkgICAgcmVsaW5rX2NvbW1hbmQ9IiR2 YXI9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBvcnQgJHZhcjsgJHJlbGlua19jb21t YW5kIgotKwkgIGZpCi0rCWRvbmUKLSsJcmVsaW5rX2NvbW1hbmQ9IihjZCBgcHdkYDsgJHJlbGlu a19jb21tYW5kKSIKLSsJcmVsaW5rX2NvbW1hbmQ9YCRFQ0hPICIkcmVsaW5rX2NvbW1hbmQiIHwg JFNFRCAiJHNlZF9xdW90ZV9zdWJzdCJgCi0rICAgICAgZmkKLSsKLSsgICAgICAjIE9ubHkgYWN0 dWFsbHkgZG8gdGhpbmdzIGlmIG5vdCBpbiBkcnkgcnVuIG1vZGUuCi0rICAgICAgJG9wdF9kcnlf cnVuIHx8IHsKLSsJIyB3aW4zMiB3aWxsIHRoaW5rIHRoZSBzY3JpcHQgaXMgYSBiaW5hcnkgaWYg aXQgaGFzCi0rCSMgYSAuZXhlIHN1ZmZpeCwgc28gd2Ugc3RyaXAgaXQgb2ZmIGhlcmUuCi0rCWNh c2UgJG91dHB1dCBpbgotKwkgICouZXhlKSBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRvdXRw dXQiCi0rCSAgICAgICAgIG91dHB1dD0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7Ci0rCWVzYWMK LSsJIyB0ZXN0IGZvciBjeWd3aW4gYmVjYXVzZSBtdiBmYWlscyB3L28gLmV4ZSBleHRlbnNpb25z Ci0rCWNhc2UgJGhvc3QgaW4KLSsJICAqY3lnd2luKikKLSsJICAgIGV4ZWV4dD0uZXhlCi0rCSAg ICBmdW5jX3N0cmlwbmFtZSAnJyAnLmV4ZScgIiRvdXRwdXRuYW1lIgotKwkgICAgb3V0cHV0bmFt ZT0kZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7Ci0rCSAgKikgZXhlZXh0PSA7OwotKwllc2FjCi0r CWNhc2UgJGhvc3QgaW4KLSsJICAqY3lnd2luKiB8ICptaW5ndyogKQotKwkgICAgZnVuY19kaXJu YW1lX2FuZF9iYXNlbmFtZSAiJG91dHB1dCIgIiIgIi4iCi0rCSAgICBvdXRwdXRfbmFtZT0kZnVu Y19iYXNlbmFtZV9yZXN1bHQKLSsJICAgIG91dHB1dF9wYXRoPSRmdW5jX2Rpcm5hbWVfcmVzdWx0 Ci0rCSAgICBjd3JhcHBlcnNvdXJjZT0iJG91dHB1dF9wYXRoLyRvYmpkaXIvbHQtJG91dHB1dF9u YW1lLmMiCi0rCSAgICBjd3JhcHBlcj0iJG91dHB1dF9wYXRoLyRvdXRwdXRfbmFtZS5leGUiCi0r CSAgICAkUk0gJGN3cmFwcGVyc291cmNlICRjd3JhcHBlcgotKwkgICAgdHJhcCAiJFJNICRjd3Jh cHBlcnNvdXJjZSAkY3dyYXBwZXI7IGV4aXQgJEVYSVRfRkFJTFVSRSIgMSAyIDE1Ci0rCi0rCSAg ICBmdW5jX2VtaXRfY3dyYXBwZXJleGVfc3JjID4gJGN3cmFwcGVyc291cmNlCi0rCi0rCSAgICAj IFRoZSB3cmFwcGVyIGV4ZWN1dGFibGUgaXMgYnVpbHQgdXNpbmcgdGhlICRob3N0IGNvbXBpbGVy LAotKwkgICAgIyBiZWNhdXNlIGl0IGNvbnRhaW5zICRob3N0IHBhdGhzIGFuZCBmaWxlcy4gSWYg Y3Jvc3MtCi0rCSAgICAjIGNvbXBpbGluZywgaXQsIGxpa2UgdGhlIHRhcmdldCBleGVjdXRhYmxl LCBtdXN0IGJlCi0rCSAgICAjIGV4ZWN1dGVkIG9uIHRoZSAkaG9zdCBvciB1bmRlciBhbiBlbXVs YXRpb24gZW52aXJvbm1lbnQuCi0rCSAgICAkb3B0X2RyeV9ydW4gfHwgewotKwkgICAgICAkTFRD QyAkTFRDRkxBR1MgLW8gJGN3cmFwcGVyICRjd3JhcHBlcnNvdXJjZQotKwkgICAgICAkU1RSSVAg JGN3cmFwcGVyCi0rCSAgICB9Ci0rCi0rCSAgICAjIE5vdywgY3JlYXRlIHRoZSB3cmFwcGVyIHNj cmlwdCBmb3IgZnVuY19zb3VyY2UgdXNlOgotKwkgICAgZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFt ZSAkY3dyYXBwZXIKLSsJICAgICRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQK LSsJICAgIHRyYXAgIiRSTSAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9yZXN1bHQ7IGV4aXQg JEVYSVRfRkFJTFVSRSIgMSAyIDE1Ci0rCSAgICAkb3B0X2RyeV9ydW4gfHwgewotKwkgICAgICAj IG5vdGU6IHRoaXMgc2NyaXB0IHdpbGwgbm90IGJlIGV4ZWN1dGVkLCBzbyBkbyBub3QgY2htb2Qu Ci0rCSAgICAgIGlmIHRlc3QgIngkYnVpbGQiID0gIngkaG9zdCIgOyB0aGVuCi0rCQkkY3dyYXBw ZXIgLS1sdC1kdW1wLXNjcmlwdCA+ICRmdW5jX2x0d3JhcHBlcl9zY3JpcHRuYW1lX3Jlc3VsdAot KwkgICAgICBlbHNlCi0rCQlmdW5jX2VtaXRfd3JhcHBlciBubyA+ICRmdW5jX2x0d3JhcHBlcl9z Y3JpcHRuYW1lX3Jlc3VsdAotKwkgICAgICBmaQotKwkgICAgfQotKwkgIDs7Ci0rCSAgKiApCi0r CSAgICAkUk0gJG91dHB1dAotKwkgICAgdHJhcCAiJFJNICRvdXRwdXQ7IGV4aXQgJEVYSVRfRkFJ TFVSRSIgMSAyIDE1Ci0rCi0rCSAgICBmdW5jX2VtaXRfd3JhcHBlciBubyA+ICRvdXRwdXQKLSsJ ICAgIGNobW9kICt4ICRvdXRwdXQKLSsJICA7OwotKwllc2FjCi0rICAgICAgfQotKyAgICAgIGV4 aXQgJEVYSVRfU1VDQ0VTUwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgIyBTZWUgaWYg d2UgbmVlZCB0byBidWlsZCBhbiBvbGQtZmFzaGlvbmVkIGFyY2hpdmUuCi0rICAgIGZvciBvbGRs aWIgaW4gJG9sZGxpYnM7IGRvCi0rCi0rICAgICAgaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGli cyIgPSBjb252ZW5pZW5jZTsgdGhlbgotKwlvbGRvYmpzPSIkbGlib2Jqc19zYXZlICRzeW1maWxl b2JqIgotKwlhZGRsaWJzPSIkY29udmVuaWVuY2UiCi0rCWJ1aWxkX2xpYnRvb2xfbGlicz1ubwot KyAgICAgIGVsc2UKLSsJaWYgdGVzdCAiJGJ1aWxkX2xpYnRvb2xfbGlicyIgPSBtb2R1bGU7IHRo ZW4KLSsJICBvbGRvYmpzPSIkbGlib2Jqc19zYXZlIgotKwkgIGJ1aWxkX2xpYnRvb2xfbGlicz1u bwotKwllbHNlCi0rCSAgb2xkb2Jqcz0iJG9sZF9kZXBsaWJzICRub25fcGljX29iamVjdHMiCi0r CSAgaWYgdGVzdCAiJHByZWxvYWQiID0geWVzICYmIHRlc3QgLWYgIiRzeW1maWxlb2JqIjsgdGhl bgotKwkgICAgZnVuY19hcHBlbmQgb2xkb2JqcyAiICRzeW1maWxlb2JqIgotKwkgIGZpCi0rCWZp Ci0rCWFkZGxpYnM9IiRvbGRfY29udmVuaWVuY2UiCi0rICAgICAgZmkKLSsKLSsgICAgICBpZiB0 ZXN0IC1uICIkYWRkbGlicyI7IHRoZW4KLSsJZ2VudG9wPSIkb3V0cHV0X29iamRpci8ke291dHB1 dG5hbWV9eCIKLSsJZnVuY19hcHBlbmQgZ2VuZXJhdGVkICIgJGdlbnRvcCIKLSsKLSsJZnVuY19l eHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGFkZGxpYnMKLSsJZnVuY19hcHBlbmQgb2xkb2JqcyAi ICRmdW5jX2V4dHJhY3RfYXJjaGl2ZXNfcmVzdWx0IgotKyAgICAgIGZpCi0rCi0rICAgICAgIyBE byBlYWNoIGNvbW1hbmQgaW4gdGhlIGFyY2hpdmUgY29tbWFuZHMuCi0rICAgICAgaWYgdGVzdCAt biAiJG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMiICYmIHRlc3QgIiRidWlsZF9saWJ0b29sX2xp YnMiID0geWVzOyB0aGVuCi0rCWNtZHM9JG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMKLSsgICAg ICBlbHNlCi0rCi0rCSMgQWRkIGFueSBvYmplY3RzIGZyb20gcHJlbG9hZGVkIGNvbnZlbmllbmNl IGxpYnJhcmllcwotKwlpZiB0ZXN0IC1uICIkZGxwcmVmaWxlcyI7IHRoZW4KLSsJICBnZW50b3A9 IiRvdXRwdXRfb2JqZGlyLyR7b3V0cHV0bmFtZX14IgotKwkgIGZ1bmNfYXBwZW5kIGdlbmVyYXRl ZCAiICRnZW50b3AiCi0rCi0rCSAgZnVuY19leHRyYWN0X2FyY2hpdmVzICRnZW50b3AgJGRscHJl ZmlsZXMKLSsJICBmdW5jX2FwcGVuZCBvbGRvYmpzICIgJGZ1bmNfZXh0cmFjdF9hcmNoaXZlc19y ZXN1bHQiCi0rCWZpCi0rCi0rCSMgUE9TSVggZGVtYW5kcyBubyBwYXRocyB0byBiZSBlbmNvZGVk IGluIGFyY2hpdmVzLiAgV2UgaGF2ZQotKwkjIHRvIGF2b2lkIGNyZWF0aW5nIGFyY2hpdmVzIHdp dGggZHVwbGljYXRlIGJhc2VuYW1lcyBpZiB3ZQotKwkjIG1pZ2h0IGhhdmUgdG8gZXh0cmFjdCB0 aGVtIGFmdGVyd2FyZHMsIGUuZy4sIHdoZW4gY3JlYXRpbmcgYQotKwkjIHN0YXRpYyBhcmNoaXZl IG91dCBvZiBhIGNvbnZlbmllbmNlIGxpYnJhcnksIG9yIHdoZW4gbGlua2luZwotKwkjIHRoZSBl bnRpcmV0eSBvZiBhIGxpYnRvb2wgYXJjaGl2ZSBpbnRvIGFub3RoZXIgKGN1cnJlbnRseQotKwkj IG5vdCBzdXBwb3J0ZWQgYnkgbGlidG9vbCkuCi0rCWlmIChmb3Igb2JqIGluICRvbGRvYmpzCi0r CSAgICBkbwotKwkgICAgICBmdW5jX2Jhc2VuYW1lICIkb2JqIgotKwkgICAgICAkRUNITyAiJGZ1 bmNfYmFzZW5hbWVfcmVzdWx0IgotKwkgICAgZG9uZSB8IHNvcnQgfCBzb3J0IC11YyA+L2Rldi9u dWxsIDI+JjEpOyB0aGVuCi0rCSAgOgotKwllbHNlCi0rCSAgZWNobyAiY29weWluZyBzZWxlY3Rl ZCBvYmplY3QgZmlsZXMgdG8gYXZvaWQgYmFzZW5hbWUgY29uZmxpY3RzLi4uIgotKwkgIGdlbnRv cD0iJG91dHB1dF9vYmpkaXIvJHtvdXRwdXRuYW1lfXgiCi0rCSAgZnVuY19hcHBlbmQgZ2VuZXJh dGVkICIgJGdlbnRvcCIKLSsJICBmdW5jX21rZGlyX3AgIiRnZW50b3AiCi0rCSAgc2F2ZV9vbGRv YmpzPSRvbGRvYmpzCi0rCSAgb2xkb2Jqcz0KLSsJICBjb3VudGVyPTEKLSsJICBmb3Igb2JqIGlu ICRzYXZlX29sZG9ianMKLSsJICBkbwotKwkgICAgZnVuY19iYXNlbmFtZSAiJG9iaiIKLSsJICAg IG9iamJhc2U9IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJICAgIGNhc2UgIiAkb2xkb2JqcyAi IGluCi0rCSAgICAiICIpIG9sZG9ianM9JG9iaiA7OwotKwkgICAgKltcIC9dIiRvYmpiYXNlICIq KQotKwkgICAgICB3aGlsZSA6OyBkbwotKwkJIyBNYWtlIHN1cmUgd2UgZG9uJ3QgcGljayBhbiBh bHRlcm5hdGUgbmFtZSB0aGF0IGFsc28KLSsJCSMgb3ZlcmxhcHMuCi0rCQluZXdvYmo9bHQkY291 bnRlci0kb2JqYmFzZQotKwkJZnVuY19hcml0aCAkY291bnRlciArIDEKLSsJCWNvdW50ZXI9JGZ1 bmNfYXJpdGhfcmVzdWx0Ci0rCQljYXNlICIgJG9sZG9ianMgIiBpbgotKwkJKltcIC9dIiRuZXdv YmogIiopIDs7Ci0rCQkqKSBpZiB0ZXN0ICEgLWYgIiRnZW50b3AvJG5ld29iaiI7IHRoZW4gYnJl YWs7IGZpIDs7Ci0rCQllc2FjCi0rCSAgICAgIGRvbmUKLSsJICAgICAgZnVuY19zaG93X2V2YWwg ImxuICRvYmogJGdlbnRvcC8kbmV3b2JqIHx8IGNwICRvYmogJGdlbnRvcC8kbmV3b2JqIgotKwkg ICAgICBmdW5jX2FwcGVuZCBvbGRvYmpzICIgJGdlbnRvcC8kbmV3b2JqIgotKwkgICAgICA7Owot KwkgICAgKikgZnVuY19hcHBlbmQgb2xkb2JqcyAiICRvYmoiIDs7Ci0rCSAgICBlc2FjCi0rCSAg ZG9uZQotKwlmaQotKwlldmFsIGNtZHM9XCIkb2xkX2FyY2hpdmVfY21kc1wiCi0rCi0rCWZ1bmNf bGVuICIgJGNtZHMiCi0rCWxlbj0kZnVuY19sZW5fcmVzdWx0Ci0rCWlmIHRlc3QgIiRsZW4iIC1s dCAiJG1heF9jbWRfbGVuIiB8fCB0ZXN0ICIkbWF4X2NtZF9sZW4iIC1sZSAtMTsgdGhlbgotKwkg IGNtZHM9JG9sZF9hcmNoaXZlX2NtZHMKLSsJZWxpZiB0ZXN0IC1uICIkYXJjaGl2ZXJfbGlzdF9z cGVjIjsgdGhlbgotKwkgIGZ1bmNfdmVyYm9zZSAidXNpbmcgY29tbWFuZCBmaWxlIGFyY2hpdmUg bGlua2luZy4uLiIKLSsJICBmb3Igb2JqIGluICRvbGRvYmpzCi0rCSAgZG8KLSsJICAgIGZ1bmNf dG9fdG9vbF9maWxlICIkb2JqIgotKwkgICAgJEVDSE8gIiRmdW5jX3RvX3Rvb2xfZmlsZV9yZXN1 bHQiCi0rCSAgZG9uZSA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmxpYmNtZAotKwkgIGZ1bmNf dG9fdG9vbF9maWxlICIkb3V0cHV0X29iamRpci8kbGlibmFtZS5saWJjbWQiCi0rCSAgb2xkb2Jq cz0iICRhcmNoaXZlcl9saXN0X3NwZWMkZnVuY190b190b29sX2ZpbGVfcmVzdWx0IgotKwkgIGNt ZHM9JG9sZF9hcmNoaXZlX2NtZHMKLSsJZWxzZQotKwkgICMgdGhlIGNvbW1hbmQgbGluZSBpcyB0 b28gbG9uZyB0byBsaW5rIGluIG9uZSBzdGVwLCBsaW5rIGluIHBhcnRzCi0rCSAgZnVuY192ZXJi b3NlICJ1c2luZyBwaWVjZXdpc2UgYXJjaGl2ZSBsaW5raW5nLi4uIgotKwkgIHNhdmVfUkFOTElC PSRSQU5MSUIKLSsJICBSQU5MSUI9OgotKwkgIG9iamxpc3Q9Ci0rCSAgY29uY2F0X2NtZHM9Ci0r CSAgc2F2ZV9vbGRvYmpzPSRvbGRvYmpzCi0rCSAgb2xkb2Jqcz0KLSsJICAjIElzIHRoZXJlIGEg YmV0dGVyIHdheSBvZiBmaW5kaW5nIHRoZSBsYXN0IG9iamVjdCBpbiB0aGUgbGlzdD8KLSsJICBm b3Igb2JqIGluICRzYXZlX29sZG9ianMKLSsJICBkbwotKwkgICAgbGFzdF9vbGRvYmo9JG9iagot KwkgIGRvbmUKLSsJICBldmFsIHRlc3RfY21kcz1cIiRvbGRfYXJjaGl2ZV9jbWRzXCIKLSsJICBm dW5jX2xlbiAiICR0ZXN0X2NtZHMiCi0rCSAgbGVuMD0kZnVuY19sZW5fcmVzdWx0Ci0rCSAgbGVu PSRsZW4wCi0rCSAgZm9yIG9iaiBpbiAkc2F2ZV9vbGRvYmpzCi0rCSAgZG8KLSsJICAgIGZ1bmNf bGVuICIgJG9iaiIKLSsJICAgIGZ1bmNfYXJpdGggJGxlbiArICRmdW5jX2xlbl9yZXN1bHQKLSsJ ICAgIGxlbj0kZnVuY19hcml0aF9yZXN1bHQKLSsJICAgIGZ1bmNfYXBwZW5kIG9iamxpc3QgIiAk b2JqIgotKwkgICAgaWYgdGVzdCAiJGxlbiIgLWx0ICIkbWF4X2NtZF9sZW4iOyB0aGVuCi0rCSAg ICAgIDoKLSsJICAgIGVsc2UKLSsJICAgICAgIyB0aGUgYWJvdmUgY29tbWFuZCBzaG91bGQgYmUg dXNlZCBiZWZvcmUgaXQgZ2V0cyB0b28gbG9uZwotKwkgICAgICBvbGRvYmpzPSRvYmpsaXN0Ci0r CSAgICAgIGlmIHRlc3QgIiRvYmoiID0gIiRsYXN0X29sZG9iaiIgOyB0aGVuCi0rCQlSQU5MSUI9 JHNhdmVfUkFOTElCCi0rCSAgICAgIGZpCi0rCSAgICAgIHRlc3QgLXogIiRjb25jYXRfY21kcyIg fHwgY29uY2F0X2NtZHM9JGNvbmNhdF9jbWRzfgotKwkgICAgICBldmFsIGNvbmNhdF9jbWRzPVwi XCR7Y29uY2F0X2NtZHN9JG9sZF9hcmNoaXZlX2NtZHNcIgotKwkgICAgICBvYmpsaXN0PQotKwkg ICAgICBsZW49JGxlbjAKLSsJICAgIGZpCi0rCSAgZG9uZQotKwkgIFJBTkxJQj0kc2F2ZV9SQU5M SUIKLSsJICBvbGRvYmpzPSRvYmpsaXN0Ci0rCSAgaWYgdGVzdCAiWCRvbGRvYmpzIiA9ICJYIiA7 IHRoZW4KLSsJICAgIGV2YWwgY21kcz1cIlwkY29uY2F0X2NtZHNcIgotKwkgIGVsc2UKLSsJICAg IGV2YWwgY21kcz1cIlwkY29uY2F0X2NtZHN+XCRvbGRfYXJjaGl2ZV9jbWRzXCIKLSsJICBmaQot KwlmaQotKyAgICAgIGZpCi0rICAgICAgZnVuY19leGVjdXRlX2NtZHMgIiRjbWRzIiAnZXhpdCAk PycKLSsgICAgZG9uZQotKwotKyAgICB0ZXN0IC1uICIkZ2VuZXJhdGVkIiAmJiBcCi0rICAgICAg ZnVuY19zaG93X2V2YWwgIiR7Uk19ciRnZW5lcmF0ZWQiCi0rCi0rICAgICMgTm93IGNyZWF0ZSB0 aGUgbGlidG9vbCBhcmNoaXZlLgotKyAgICBjYXNlICRvdXRwdXQgaW4KLSsgICAgKi5sYSkKLSsg ICAgICBvbGRfbGlicmFyeT0KLSsgICAgICB0ZXN0ICIkYnVpbGRfb2xkX2xpYnMiID0geWVzICYm IG9sZF9saWJyYXJ5PSIkbGlibmFtZS4kbGliZXh0IgotKyAgICAgIGZ1bmNfdmVyYm9zZSAiY3Jl YXRpbmcgJG91dHB1dCIKLSsKLSsgICAgICAjIFByZXNlcnZlIGFueSB2YXJpYWJsZXMgdGhhdCBt YXkgYWZmZWN0IGNvbXBpbGVyIGJlaGF2aW9yCi0rICAgICAgZm9yIHZhciBpbiAkdmFyaWFibGVz X3NhdmVkX2Zvcl9yZWxpbms7IGRvCi0rCWlmIGV2YWwgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwi OyB0aGVuCi0rCSAgcmVsaW5rX2NvbW1hbmQ9InsgdGVzdCAteiBcIlwkeyR2YXIrc2V0fVwiIHx8 ICRsdF91bnNldCAkdmFyIHx8IHsgJHZhcj07IGV4cG9ydCAkdmFyOyB9OyB9OyAkcmVsaW5rX2Nv bW1hbmQiCi0rCWVsaWYgZXZhbCB2YXJfdmFsdWU9XCQkdmFyOyB0ZXN0IC16ICIkdmFyX3ZhbHVl IjsgdGhlbgotKwkgIHJlbGlua19jb21tYW5kPSIkdmFyPTsgZXhwb3J0ICR2YXI7ICRyZWxpbmtf Y29tbWFuZCIKLSsJZWxzZQotKwkgIGZ1bmNfcXVvdGVfZm9yX2V2YWwgIiR2YXJfdmFsdWUiCi0r CSAgcmVsaW5rX2NvbW1hbmQ9IiR2YXI9JGZ1bmNfcXVvdGVfZm9yX2V2YWxfcmVzdWx0OyBleHBv cnQgJHZhcjsgJHJlbGlua19jb21tYW5kIgotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICAjIFF1 b3RlIHRoZSBsaW5rIGNvbW1hbmQgZm9yIHNoaXBwaW5nLgotKyAgICAgIHJlbGlua19jb21tYW5k PSIoY2QgYHB3ZGA7ICRTSEVMTCAkcHJvZ3BhdGggJHByZXNlcnZlX2FyZ3MgLS1tb2RlPXJlbGlu ayAkbGlidG9vbF9hcmdzIEBpbnN0X3ByZWZpeF9kaXJAKSIKLSsgICAgICByZWxpbmtfY29tbWFu ZD1gJEVDSE8gIiRyZWxpbmtfY29tbWFuZCIgfCAkU0VEICIkc2VkX3F1b3RlX3N1YnN0ImAKLSsg ICAgICBpZiB0ZXN0ICIkaGFyZGNvZGVfYXV0b21hdGljIiA9IHllcyA7IHRoZW4KLSsJcmVsaW5r X2NvbW1hbmQ9Ci0rICAgICAgZmkKLSsKLSsgICAgICAjIE9ubHkgY3JlYXRlIHRoZSBvdXRwdXQg aWYgbm90IGEgZHJ5IHJ1bi4KLSsgICAgICAkb3B0X2RyeV9ydW4gfHwgewotKwlmb3IgaW5zdGFs bGVkIGluIG5vIHllczsgZG8KLSsJICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IHllczsgdGhlbgot KwkgICAgaWYgdGVzdCAteiAiJGluc3RhbGxfbGliZGlyIjsgdGhlbgotKwkgICAgICBicmVhawot KwkgICAgZmkKLSsJICAgIG91dHB1dD0iJG91dHB1dF9vYmpkaXIvJG91dHB1dG5hbWUiaQotKwkg ICAgIyBSZXBsYWNlIGFsbCB1bmluc3RhbGxlZCBsaWJ0b29sIGxpYnJhcmllcyB3aXRoIHRoZSBp bnN0YWxsZWQgb25lcwotKwkgICAgbmV3ZGVwZW5kZW5jeV9saWJzPQotKwkgICAgZm9yIGRlcGxp YiBpbiAkZGVwZW5kZW5jeV9saWJzOyBkbwotKwkgICAgICBjYXNlICRkZXBsaWIgaW4KLSsJICAg ICAgKi5sYSkKLSsJCWZ1bmNfYmFzZW5hbWUgIiRkZXBsaWIiCi0rCQluYW1lPSIkZnVuY19iYXNl bmFtZV9yZXN1bHQiCi0rCQlldmFsIGxpYmRpcj1gJHtTRUR9IC1uIC1lICdzL15saWJkaXI9XCgu KlwpJC9cMS9wJyAkZGVwbGliYAotKwkJdGVzdCAteiAiJGxpYmRpciIgJiYgXAotKwkJICBmdW5j X2ZhdGFsX2Vycm9yICJcYCRkZXBsaWInIGlzIG5vdCBhIHZhbGlkIGxpYnRvb2wgYXJjaGl2ZSIK LSsJCWZ1bmNfYXBwZW5kIG5ld2RlcGVuZGVuY3lfbGlicyAiICR7bHRfc3lzcm9vdDorPX0kbGli ZGlyLyRuYW1lIgotKwkJOzsKLSsJICAgICAgLUwqKQotKwkJZnVuY19zdHJpcG5hbWUgLUwgJycg IiRkZXBsaWIiCi0rCQlmdW5jX3JlcGxhY2Vfc3lzcm9vdCAiJGZ1bmNfc3RyaXBuYW1lX3Jlc3Vs dCIKLSsJCWZ1bmNfYXBwZW5kIG5ld2RlcGVuZGVuY3lfbGlicyAiIC1MJGZ1bmNfcmVwbGFjZV9z eXNyb290X3Jlc3VsdCIKLSsJCTs7Ci0rCSAgICAgIC1SKikKLSsJCWZ1bmNfc3RyaXBuYW1lIC1S ICcnICIkZGVwbGliIgotKwkJZnVuY19yZXBsYWNlX3N5c3Jvb3QgIiRmdW5jX3N0cmlwbmFtZV9y ZXN1bHQiCi0rCQlmdW5jX2FwcGVuZCBuZXdkZXBlbmRlbmN5X2xpYnMgIiAtUiRmdW5jX3JlcGxh Y2Vfc3lzcm9vdF9yZXN1bHQiCi0rCQk7OwotKwkgICAgICAqKSBmdW5jX2FwcGVuZCBuZXdkZXBl bmRlbmN5X2xpYnMgIiAkZGVwbGliIiA7OwotKwkgICAgICBlc2FjCi0rCSAgICBkb25lCi0rCSAg ICBkZXBlbmRlbmN5X2xpYnM9IiRuZXdkZXBlbmRlbmN5X2xpYnMiCi0rCSAgICBuZXdkbGZpbGVz PQotKwotKwkgICAgZm9yIGxpYiBpbiAkZGxmaWxlczsgZG8KLSsJICAgICAgY2FzZSAkbGliIGlu Ci0rCSAgICAgICoubGEpCi0rCSAgICAgICAgZnVuY19iYXNlbmFtZSAiJGxpYiIKLSsJCW5hbWU9 IiRmdW5jX2Jhc2VuYW1lX3Jlc3VsdCIKLSsJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3Mv XmxpYmRpcj1cKC4qXCkkL1wxL3AnICRsaWJgCi0rCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBcCi0r CQkgIGZ1bmNfZmF0YWxfZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNo aXZlIgotKwkJZnVuY19hcHBlbmQgbmV3ZGxmaWxlcyAiICR7bHRfc3lzcm9vdDorPX0kbGliZGly LyRuYW1lIgotKwkJOzsKLSsJICAgICAgKikgZnVuY19hcHBlbmQgbmV3ZGxmaWxlcyAiICRsaWIi IDs7Ci0rCSAgICAgIGVzYWMKLSsJICAgIGRvbmUKLSsJICAgIGRsZmlsZXM9IiRuZXdkbGZpbGVz IgotKwkgICAgbmV3ZGxwcmVmaWxlcz0KLSsJICAgIGZvciBsaWIgaW4gJGRscHJlZmlsZXM7IGRv Ci0rCSAgICAgIGNhc2UgJGxpYiBpbgotKwkgICAgICAqLmxhKQotKwkJIyBPbmx5IHBhc3MgcHJl b3BlbmVkIGZpbGVzIHRvIHRoZSBwc2V1ZG8tYXJjaGl2ZSAoZm9yCi0rCQkjIGV2ZW50dWFsIGxp bmtpbmcgd2l0aCB0aGUgYXBwLiB0aGF0IGxpbmtzIGl0KSBpZiB3ZQotKwkJIyBkaWRuJ3QgYWxy ZWFkeSBsaW5rIHRoZSBwcmVvcGVuZWQgb2JqZWN0cyBkaXJlY3RseSBpbnRvCi0rCQkjIHRoZSBs aWJyYXJ5OgotKwkJZnVuY19iYXNlbmFtZSAiJGxpYiIKLSsJCW5hbWU9IiRmdW5jX2Jhc2VuYW1l X3Jlc3VsdCIKLSsJCWV2YWwgbGliZGlyPWAke1NFRH0gLW4gLWUgJ3MvXmxpYmRpcj1cKC4qXCkk L1wxL3AnICRsaWJgCi0rCQl0ZXN0IC16ICIkbGliZGlyIiAmJiBcCi0rCQkgIGZ1bmNfZmF0YWxf ZXJyb3IgIlxgJGxpYicgaXMgbm90IGEgdmFsaWQgbGlidG9vbCBhcmNoaXZlIgotKwkJZnVuY19h cHBlbmQgbmV3ZGxwcmVmaWxlcyAiICR7bHRfc3lzcm9vdDorPX0kbGliZGlyLyRuYW1lIgotKwkJ OzsKLSsJICAgICAgZXNhYwotKwkgICAgZG9uZQotKwkgICAgZGxwcmVmaWxlcz0iJG5ld2RscHJl ZmlsZXMiCi0rCSAgZWxzZQotKwkgICAgbmV3ZGxmaWxlcz0KLSsJICAgIGZvciBsaWIgaW4gJGRs ZmlsZXM7IGRvCi0rCSAgICAgIGNhc2UgJGxpYiBpbgotKwkJW1xcL10qIHwgW0EtWmEtel06W1xc L10qKSBhYnM9IiRsaWIiIDs7Ci0rCQkqKSBhYnM9YHB3ZGAiLyRsaWIiIDs7Ci0rCSAgICAgIGVz YWMKLSsJICAgICAgZnVuY19hcHBlbmQgbmV3ZGxmaWxlcyAiICRhYnMiCi0rCSAgICBkb25lCi0r CSAgICBkbGZpbGVzPSIkbmV3ZGxmaWxlcyIKLSsJICAgIG5ld2RscHJlZmlsZXM9Ci0rCSAgICBm b3IgbGliIGluICRkbHByZWZpbGVzOyBkbwotKwkgICAgICBjYXNlICRsaWIgaW4KLSsJCVtcXC9d KiB8IFtBLVphLXpdOltcXC9dKikgYWJzPSIkbGliIiA7OwotKwkJKikgYWJzPWBwd2RgIi8kbGli IiA7OwotKwkgICAgICBlc2FjCi0rCSAgICAgIGZ1bmNfYXBwZW5kIG5ld2RscHJlZmlsZXMgIiAk YWJzIgotKwkgICAgZG9uZQotKwkgICAgZGxwcmVmaWxlcz0iJG5ld2RscHJlZmlsZXMiCi0rCSAg ZmkKLSsJICAkUk0gJG91dHB1dAotKwkgICMgcGxhY2UgZGxuYW1lIGluIGNvcnJlY3QgcG9zaXRp b24gZm9yIGN5Z3dpbgotKwkgICMgSW4gZmFjdCwgaXQgd291bGQgYmUgbmljZSBpZiB3ZSBjb3Vs ZCB1c2UgdGhpcyBjb2RlIGZvciBhbGwgdGFyZ2V0Ci0rCSAgIyBzeXN0ZW1zIHRoYXQgY2FuJ3Qg aGFyZC1jb2RlIGxpYnJhcnkgcGF0aHMgaW50byB0aGVpciBleGVjdXRhYmxlcwotKwkgICMgYW5k IHRoYXQgaGF2ZSBubyBzaGFyZWQgbGlicmFyeSBwYXRoIHZhcmlhYmxlIGluZGVwZW5kZW50IG9m IFBBVEgsCi0rCSAgIyBidXQgaXQgdHVybnMgb3V0IHdlIGNhbid0IGVhc2lseSBkZXRlcm1pbmUg dGhhdCBmcm9tIGluc3BlY3RpbmcKLSsJICAjIGxpYnRvb2wgdmFyaWFibGVzLCBzbyB3ZSBoYXZl IHRvIGhhcmQtY29kZSB0aGUgT1NzIHRvIHdoaWNoIGl0Ci0rCSAgIyBhcHBsaWVzIGhlcmU7IGF0 IHRoZSBtb21lbnQsIHRoYXQgbWVhbnMgcGxhdGZvcm1zIHRoYXQgdXNlIHRoZSBQRQotKwkgICMg b2JqZWN0IGZvcm1hdCB3aXRoIERMTCBmaWxlcy4gIFNlZSB0aGUgbG9uZyBjb21tZW50IGF0IHRo ZSB0b3Agb2YKLSsJICAjIHRlc3RzL2JpbmRpci5hdCBmb3IgZnVsbCBkZXRhaWxzLgotKwkgIHRk bG5hbWU9JGRsbmFtZQotKwkgIGNhc2UgJGhvc3QsJG91dHB1dCwkaW5zdGFsbGVkLCRtb2R1bGUs JGRsbmFtZSBpbgotKwkgICAgKmN5Z3dpbiosKmxhaSx5ZXMsbm8sKi5kbGwgfCAqbWluZ3cqLCps YWkseWVzLG5vLCouZGxsIHwgKmNlZ2NjKiwqbGFpLHllcyxubywqLmRsbCkKLSsJICAgICAgIyBJ ZiBhIC1iaW5kaXIgYXJndW1lbnQgd2FzIHN1cHBsaWVkLCBwbGFjZSB0aGUgZGxsIHRoZXJlLgot KwkgICAgICBpZiB0ZXN0ICJ4JGJpbmRpciIgIT0geCA7Ci0rCSAgICAgIHRoZW4KLSsJCWZ1bmNf cmVsYXRpdmVfcGF0aCAiJGluc3RhbGxfbGliZGlyIiAiJGJpbmRpciIKLSsJCXRkbG5hbWU9JGZ1 bmNfcmVsYXRpdmVfcGF0aF9yZXN1bHQkZGxuYW1lCi0rCSAgICAgIGVsc2UKLSsJCSMgT3RoZXJ3 aXNlIGZhbGwgYmFjayBvbiBoZXVyaXN0aWMuCi0rCQl0ZGxuYW1lPS4uL2Jpbi8kZGxuYW1lCi0r CSAgICAgIGZpCi0rCSAgICAgIDs7Ci0rCSAgZXNhYwotKwkgICRFQ0hPID4gJG91dHB1dCAiXAot KyMgJG91dHB1dG5hbWUgLSBhIGxpYnRvb2wgbGlicmFyeSBmaWxlCi0rIyBHZW5lcmF0ZWQgYnkg JFBST0dSQU0gKEdOVSAkUEFDS0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCi0rIwotKyMgUGxlYXNl IERPIE5PVCBkZWxldGUgdGhpcyBmaWxlIQotKyMgSXQgaXMgbmVjZXNzYXJ5IGZvciBsaW5raW5n IHRoZSBsaWJyYXJ5LgotKwotKyMgVGhlIG5hbWUgdGhhdCB3ZSBjYW4gZGxvcGVuKDMpLgotK2Rs bmFtZT0nJHRkbG5hbWUnCi0rCi0rIyBOYW1lcyBvZiB0aGlzIGxpYnJhcnkuCi0rbGlicmFyeV9u YW1lcz0nJGxpYnJhcnlfbmFtZXMnCi0rCi0rIyBUaGUgbmFtZSBvZiB0aGUgc3RhdGljIGFyY2hp dmUuCi0rb2xkX2xpYnJhcnk9JyRvbGRfbGlicmFyeScKLSsKLSsjIExpbmtlciBmbGFncyB0aGF0 IGNhbiBub3QgZ28gaW4gZGVwZW5kZW5jeV9saWJzLgotK2luaGVyaXRlZF9saW5rZXJfZmxhZ3M9 JyRuZXdfaW5oZXJpdGVkX2xpbmtlcl9mbGFncycKLSsKLSsjIExpYnJhcmllcyB0aGF0IHRoaXMg b25lIGRlcGVuZHMgdXBvbi4KLStkZXBlbmRlbmN5X2xpYnM9JyRkZXBlbmRlbmN5X2xpYnMnCi0r Ci0rIyBOYW1lcyBvZiBhZGRpdGlvbmFsIHdlYWsgbGlicmFyaWVzIHByb3ZpZGVkIGJ5IHRoaXMg bGlicmFyeQotK3dlYWtfbGlicmFyeV9uYW1lcz0nJHdlYWtfbGlicycKLSsKLSsjIFZlcnNpb24g aW5mb3JtYXRpb24gZm9yICRsaWJuYW1lLgotK2N1cnJlbnQ9JGN1cnJlbnQKLSthZ2U9JGFnZQot K3JldmlzaW9uPSRyZXZpc2lvbgotKwotKyMgSXMgdGhpcyBhbiBhbHJlYWR5IGluc3RhbGxlZCBs aWJyYXJ5PwotK2luc3RhbGxlZD0kaW5zdGFsbGVkCi0rCi0rIyBTaG91bGQgd2Ugd2FybiBhYm91 dCBwb3J0YWJpbGl0eSB3aGVuIGxpbmtpbmcgYWdhaW5zdCAtbW9kdWxlcz8KLStzaG91bGRub3Rs aW5rPSRtb2R1bGUKLSsKLSsjIEZpbGVzIHRvIGRsb3Blbi9kbHByZW9wZW4KLStkbG9wZW49JyRk bGZpbGVzJwotK2RscHJlb3Blbj0nJGRscHJlZmlsZXMnCi0rCi0rIyBEaXJlY3RvcnkgdGhhdCB0 aGlzIGxpYnJhcnkgbmVlZHMgdG8gYmUgaW5zdGFsbGVkIGluOgotK2xpYmRpcj0nJGluc3RhbGxf bGliZGlyJyIKLSsJICBpZiB0ZXN0ICIkaW5zdGFsbGVkIiA9IG5vICYmIHRlc3QgIiRuZWVkX3Jl bGluayIgPSB5ZXM7IHRoZW4KLSsJICAgICRFQ0hPID4+ICRvdXRwdXQgIlwKLStyZWxpbmtfY29t bWFuZD1cIiRyZWxpbmtfY29tbWFuZFwiIgotKwkgIGZpCi0rCWRvbmUKLSsgICAgICB9Ci0rCi0r ICAgICAgIyBEbyBhIHN5bWJvbGljIGxpbmsgc28gdGhhdCB0aGUgbGlidG9vbCBhcmNoaXZlIGNh biBiZSBmb3VuZCBpbgotKyAgICAgICMgTERfTElCUkFSWV9QQVRIIGJlZm9yZSB0aGUgcHJvZ3Jh bSBpcyBpbnN0YWxsZWQuCi0rICAgICAgZnVuY19zaG93X2V2YWwgJyggY2QgIiRvdXRwdXRfb2Jq ZGlyIiAmJiAkUk0gIiRvdXRwdXRuYW1lIiAmJiAkTE5fUyAiLi4vJG91dHB1dG5hbWUiICIkb3V0 cHV0bmFtZSIgKScgJ2V4aXQgJD8nCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgICBleGl0ICRF WElUX1NVQ0NFU1MKLSt9Ci0rCi0reyB0ZXN0ICIkb3B0X21vZGUiID0gbGluayB8fCB0ZXN0ICIk b3B0X21vZGUiID0gcmVsaW5rOyB9ICYmCi0rICAgIGZ1bmNfbW9kZV9saW5rICR7MSsiJEAifQot KwotKwotKyMgZnVuY19tb2RlX3VuaW5zdGFsbCBhcmcuLi4KLStmdW5jX21vZGVfdW5pbnN0YWxs ICgpCi0rewotKyAgICAkb3B0X2RlYnVnCi0rICAgIFJNPSIkbm9ub3B0IgotKyAgICBmaWxlcz0K LSsgICAgcm1mb3JjZT0KLSsgICAgZXhpdF9zdGF0dXM9MAotKwotKyAgICAjIFRoaXMgdmFyaWFi bGUgdGVsbHMgd3JhcHBlciBzY3JpcHRzIGp1c3QgdG8gc2V0IHZhcmlhYmxlcyByYXRoZXIKLSsg ICAgIyB0aGFuIHJ1bm5pbmcgdGhlaXIgcHJvZ3JhbXMuCi0rICAgIGxpYnRvb2xfaW5zdGFsbF9t YWdpYz0iJG1hZ2ljIgotKwotKyAgICBmb3IgYXJnCi0rICAgIGRvCi0rICAgICAgY2FzZSAkYXJn IGluCi0rICAgICAgLWYpIGZ1bmNfYXBwZW5kIFJNICIgJGFyZyI7IHJtZm9yY2U9eWVzIDs7Ci0r ICAgICAgLSopIGZ1bmNfYXBwZW5kIFJNICIgJGFyZyIgOzsKLSsgICAgICAqKSBmdW5jX2FwcGVu ZCBmaWxlcyAiICRhcmciIDs7Ci0rICAgICAgZXNhYwotKyAgICBkb25lCi0rCi0rICAgIHRlc3Qg LXogIiRSTSIgJiYgXAotKyAgICAgIGZ1bmNfZmF0YWxfaGVscCAieW91IG11c3Qgc3BlY2lmeSBh biBSTSBwcm9ncmFtIgotKwotKyAgICBybWRpcnM9Ci0rCi0rICAgIGZvciBmaWxlIGluICRmaWxl czsgZG8KLSsgICAgICBmdW5jX2Rpcm5hbWUgIiRmaWxlIiAiIiAiLiIKLSsgICAgICBkaXI9IiRm dW5jX2Rpcm5hbWVfcmVzdWx0IgotKyAgICAgIGlmIHRlc3QgIlgkZGlyIiA9IFguOyB0aGVuCi0r CW9kaXI9IiRvYmpkaXIiCi0rICAgICAgZWxzZQotKwlvZGlyPSIkZGlyLyRvYmpkaXIiCi0rICAg ICAgZmkKLSsgICAgICBmdW5jX2Jhc2VuYW1lICIkZmlsZSIKLSsgICAgICBuYW1lPSIkZnVuY19i YXNlbmFtZV9yZXN1bHQiCi0rICAgICAgdGVzdCAiJG9wdF9tb2RlIiA9IHVuaW5zdGFsbCAmJiBv ZGlyPSIkZGlyIgotKwotKyAgICAgICMgUmVtZW1iZXIgb2RpciBmb3IgcmVtb3ZhbCBsYXRlciwg YmVpbmcgY2FyZWZ1bCB0byBhdm9pZCBkdXBsaWNhdGVzCi0rICAgICAgaWYgdGVzdCAiJG9wdF9t b2RlIiA9IGNsZWFuOyB0aGVuCi0rCWNhc2UgIiAkcm1kaXJzICIgaW4KLSsJICAqIiAkb2RpciAi KikgOzsKLSsJICAqKSBmdW5jX2FwcGVuZCBybWRpcnMgIiAkb2RpciIgOzsKLSsJZXNhYwotKyAg ICAgIGZpCi0rCi0rICAgICAgIyBEb24ndCBlcnJvciBpZiB0aGUgZmlsZSBkb2Vzbid0IGV4aXN0 IGFuZCBybSAtZiB3YXMgdXNlZC4KLSsgICAgICBpZiB7IHRlc3QgLUwgIiRmaWxlIjsgfSA+L2Rl di9udWxsIDI+JjEgfHwKLSsJIHsgdGVzdCAtaCAiJGZpbGUiOyB9ID4vZGV2L251bGwgMj4mMSB8 fAotKwkgdGVzdCAtZiAiJGZpbGUiOyB0aGVuCi0rCToKLSsgICAgICBlbGlmIHRlc3QgLWQgIiRm aWxlIjsgdGhlbgotKwlleGl0X3N0YXR1cz0xCi0rCWNvbnRpbnVlCi0rICAgICAgZWxpZiB0ZXN0 ICIkcm1mb3JjZSIgPSB5ZXM7IHRoZW4KLSsJY29udGludWUKLSsgICAgICBmaQotKwotKyAgICAg IHJtZmlsZXM9IiRmaWxlIgotKwotKyAgICAgIGNhc2UgJG5hbWUgaW4KLSsgICAgICAqLmxhKQot KwkjIFBvc3NpYmx5IGEgbGlidG9vbCBhcmNoaXZlLCBzbyB2ZXJpZnkgaXQuCi0rCWlmIGZ1bmNf bGFsaWJfcCAiJGZpbGUiOyB0aGVuCi0rCSAgZnVuY19zb3VyY2UgJGRpci8kbmFtZQotKwotKwkg ICMgRGVsZXRlIHRoZSBsaWJ0b29sIGxpYnJhcmllcyBhbmQgc3ltbGlua3MuCi0rCSAgZm9yIG4g aW4gJGxpYnJhcnlfbmFtZXM7IGRvCi0rCSAgICBmdW5jX2FwcGVuZCBybWZpbGVzICIgJG9kaXIv JG4iCi0rCSAgZG9uZQotKwkgIHRlc3QgLW4gIiRvbGRfbGlicmFyeSIgJiYgZnVuY19hcHBlbmQg cm1maWxlcyAiICRvZGlyLyRvbGRfbGlicmFyeSIKLSsKLSsJICBjYXNlICIkb3B0X21vZGUiIGlu Ci0rCSAgY2xlYW4pCi0rCSAgICBjYXNlICIgJGxpYnJhcnlfbmFtZXMgIiBpbgotKwkgICAgKiIg JGRsbmFtZSAiKikgOzsKLSsJICAgICopIHRlc3QgLW4gIiRkbG5hbWUiICYmIGZ1bmNfYXBwZW5k IHJtZmlsZXMgIiAkb2Rpci8kZGxuYW1lIiA7OwotKwkgICAgZXNhYwotKwkgICAgdGVzdCAtbiAi JGxpYmRpciIgJiYgZnVuY19hcHBlbmQgcm1maWxlcyAiICRvZGlyLyRuYW1lICRvZGlyLyR7bmFt ZX1pIgotKwkgICAgOzsKLSsJICB1bmluc3RhbGwpCi0rCSAgICBpZiB0ZXN0IC1uICIkbGlicmFy eV9uYW1lcyI7IHRoZW4KLSsJICAgICAgIyBEbyBlYWNoIGNvbW1hbmQgaW4gdGhlIHBvc3R1bmlu c3RhbGwgY29tbWFuZHMuCi0rCSAgICAgIGZ1bmNfZXhlY3V0ZV9jbWRzICIkcG9zdHVuaW5zdGFs bF9jbWRzIiAndGVzdCAiJHJtZm9yY2UiID0geWVzIHx8IGV4aXRfc3RhdHVzPTEnCi0rCSAgICBm aQotKwotKwkgICAgaWYgdGVzdCAtbiAiJG9sZF9saWJyYXJ5IjsgdGhlbgotKwkgICAgICAjIERv IGVhY2ggY29tbWFuZCBpbiB0aGUgb2xkX3Bvc3R1bmluc3RhbGwgY29tbWFuZHMuCi0rCSAgICAg IGZ1bmNfZXhlY3V0ZV9jbWRzICIkb2xkX3Bvc3R1bmluc3RhbGxfY21kcyIgJ3Rlc3QgIiRybWZv cmNlIiA9IHllcyB8fCBleGl0X3N0YXR1cz0xJwotKwkgICAgZmkKLSsJICAgICMgRklYTUU6IHNo b3VsZCByZWluc3RhbGwgdGhlIGJlc3QgcmVtYWluaW5nIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAg OzsKLSsJICBlc2FjCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgKi5sbykKLSsJIyBQb3NzaWJseSBh IGxpYnRvb2wgb2JqZWN0LCBzbyB2ZXJpZnkgaXQuCi0rCWlmIGZ1bmNfbGFsaWJfcCAiJGZpbGUi OyB0aGVuCi0rCi0rCSAgIyBSZWFkIHRoZSAubG8gZmlsZQotKwkgIGZ1bmNfc291cmNlICRkaXIv JG5hbWUKLSsKLSsJICAjIEFkZCBQSUMgb2JqZWN0IHRvIHRoZSBsaXN0IG9mIGZpbGVzIHRvIHJl bW92ZS4KLSsJICBpZiB0ZXN0IC1uICIkcGljX29iamVjdCIgJiYKLSsJICAgICB0ZXN0ICIkcGlj X29iamVjdCIgIT0gbm9uZTsgdGhlbgotKwkgICAgZnVuY19hcHBlbmQgcm1maWxlcyAiICRkaXIv JHBpY19vYmplY3QiCi0rCSAgZmkKLSsKLSsJICAjIEFkZCBub24tUElDIG9iamVjdCB0byB0aGUg bGlzdCBvZiBmaWxlcyB0byByZW1vdmUuCi0rCSAgaWYgdGVzdCAtbiAiJG5vbl9waWNfb2JqZWN0 IiAmJgotKwkgICAgIHRlc3QgIiRub25fcGljX29iamVjdCIgIT0gbm9uZTsgdGhlbgotKwkgICAg ZnVuY19hcHBlbmQgcm1maWxlcyAiICRkaXIvJG5vbl9waWNfb2JqZWN0IgotKwkgIGZpCi0rCWZp Ci0rCTs7Ci0rCi0rICAgICAgKikKLSsJaWYgdGVzdCAiJG9wdF9tb2RlIiA9IGNsZWFuIDsgdGhl bgotKwkgIG5vZXhlbmFtZT0kbmFtZQotKwkgIGNhc2UgJGZpbGUgaW4KLSsJICAqLmV4ZSkKLSsJ ICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJGZpbGUiCi0rCSAgICBmaWxlPSRmdW5jX3N0 cmlwbmFtZV9yZXN1bHQKLSsJICAgIGZ1bmNfc3RyaXBuYW1lICcnICcuZXhlJyAiJG5hbWUiCi0r CSAgICBub2V4ZW5hbWU9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdAotKwkgICAgIyAkZmlsZSB3aXRo IC5leGUgaGFzIGFscmVhZHkgYmVlbiBhZGRlZCB0byBybWZpbGVzLAotKwkgICAgIyBhZGQgJGZp bGUgd2l0aG91dCAuZXhlCi0rCSAgICBmdW5jX2FwcGVuZCBybWZpbGVzICIgJGZpbGUiCi0rCSAg ICA7OwotKwkgIGVzYWMKLSsJICAjIERvIGEgdGVzdCB0byBzZWUgaWYgdGhpcyBpcyBhIGxpYnRv b2wgcHJvZ3JhbS4KLSsJICBpZiBmdW5jX2x0d3JhcHBlcl9wICIkZmlsZSI7IHRoZW4KLSsJICAg IGlmIGZ1bmNfbHR3cmFwcGVyX2V4ZWN1dGFibGVfcCAiJGZpbGUiOyB0aGVuCi0rCSAgICAgIGZ1 bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWUgIiRmaWxlIgotKwkgICAgICByZWxpbmtfY29tbWFuZD0K LSsJICAgICAgZnVuY19zb3VyY2UgJGZ1bmNfbHR3cmFwcGVyX3NjcmlwdG5hbWVfcmVzdWx0Ci0r CSAgICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkZnVuY19sdHdyYXBwZXJfc2NyaXB0bmFtZV9y ZXN1bHQiCi0rCSAgICBlbHNlCi0rCSAgICAgIHJlbGlua19jb21tYW5kPQotKwkgICAgICBmdW5j X3NvdXJjZSAkZGlyLyRub2V4ZW5hbWUKLSsJICAgIGZpCi0rCi0rCSAgICAjIG5vdGUgJG5hbWUg c3RpbGwgY29udGFpbnMgLmV4ZSBpZiBpdCB3YXMgaW4gJGZpbGUgb3JpZ2luYWxseQotKwkgICAg IyBhcyBkb2VzIHRoZSB2ZXJzaW9uIG9mICRmaWxlIHRoYXQgd2FzIGFkZGVkIGludG8gJHJtZmls ZXMKLSsJICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkb2Rpci8kbmFtZSAkb2Rpci8ke25hbWV9 Uy4ke29iamV4dH0iCi0rCSAgICBpZiB0ZXN0ICIkZmFzdF9pbnN0YWxsIiA9IHllcyAmJiB0ZXN0 IC1uICIkcmVsaW5rX2NvbW1hbmQiOyB0aGVuCi0rCSAgICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMg IiAkb2Rpci9sdC0kbmFtZSIKLSsJICAgIGZpCi0rCSAgICBpZiB0ZXN0ICJYJG5vZXhlbmFtZSIg IT0gIlgkbmFtZSIgOyB0aGVuCi0rCSAgICAgIGZ1bmNfYXBwZW5kIHJtZmlsZXMgIiAkb2Rpci9s dC0ke25vZXhlbmFtZX0uYyIKLSsJICAgIGZpCi0rCSAgZmkKLSsJZmkKLSsJOzsKLSsgICAgICBl c2FjCi0rICAgICAgZnVuY19zaG93X2V2YWwgIiRSTSAkcm1maWxlcyIgJ2V4aXRfc3RhdHVzPTEn Ci0rICAgIGRvbmUKLSsKLSsgICAgIyBUcnkgdG8gcmVtb3ZlIHRoZSAke29iamRpcn1zIGluIHRo ZSBkaXJlY3RvcmllcyB3aGVyZSB3ZSBkZWxldGVkIGZpbGVzCi0rICAgIGZvciBkaXIgaW4gJHJt ZGlyczsgZG8KLSsgICAgICBpZiB0ZXN0IC1kICIkZGlyIjsgdGhlbgotKwlmdW5jX3Nob3dfZXZh bCAicm1kaXIgJGRpciA+L2Rldi9udWxsIDI+JjEiCi0rICAgICAgZmkKLSsgICAgZG9uZQotKwot KyAgICBleGl0ICRleGl0X3N0YXR1cwotK30KLSsKLSt7IHRlc3QgIiRvcHRfbW9kZSIgPSB1bmlu c3RhbGwgfHwgdGVzdCAiJG9wdF9tb2RlIiA9IGNsZWFuOyB9ICYmCi0rICAgIGZ1bmNfbW9kZV91 bmluc3RhbGwgJHsxKyIkQCJ9Ci0rCi0rdGVzdCAteiAiJG9wdF9tb2RlIiAmJiB7Ci0rICBoZWxw PSIkZ2VuZXJpY19oZWxwIgotKyAgZnVuY19mYXRhbF9oZWxwICJ5b3UgbXVzdCBzcGVjaWZ5IGEg TU9ERSIKLSt9Ci0rCi0rdGVzdCAteiAiJGV4ZWNfY21kIiAmJiBcCi0rICBmdW5jX2ZhdGFsX2hl bHAgImludmFsaWQgb3BlcmF0aW9uIG1vZGUgXGAkb3B0X21vZGUnIgotKwotK2lmIHRlc3QgLW4g IiRleGVjX2NtZCI7IHRoZW4KLSsgIGV2YWwgZXhlYyAiJGV4ZWNfY21kIgotKyAgZXhpdCAkRVhJ VF9GQUlMVVJFCi0rZmkKLSsKLStleGl0ICRleGl0X3N0YXR1cwotKwotKwotKyMgVGhlIFRBR3Mg YmVsb3cgYXJlIGRlZmluZWQgc3VjaCB0aGF0IHdlIG5ldmVyIGdldCBpbnRvIGEgc2l0dWF0aW9u Ci0rIyBpbiB3aGljaCB3ZSBkaXNhYmxlIGJvdGgga2luZHMgb2YgbGlicmFyaWVzLiAgR2l2ZW4g Y29uZmxpY3RpbmcKLSsjIGNob2ljZXMsIHdlIGdvIGZvciBhIHN0YXRpYyBsaWJyYXJ5LCB0aGF0 IGlzIHRoZSBtb3N0IHBvcnRhYmxlLAotKyMgc2luY2Ugd2UgY2FuJ3QgdGVsbCB3aGV0aGVyIHNo YXJlZCBsaWJyYXJpZXMgd2VyZSBkaXNhYmxlZCBiZWNhdXNlCi0rIyB0aGUgdXNlciBhc2tlZCBm b3IgdGhhdCBvciBiZWNhdXNlIHRoZSBwbGF0Zm9ybSBkb2Vzbid0IHN1cHBvcnQKLSsjIHRoZW0u ICBUaGlzIGlzIHBhcnRpY3VsYXJseSBpbXBvcnRhbnQgb24gQUlYLCBiZWNhdXNlIHdlIGRvbid0 Ci0rIyBzdXBwb3J0IGhhdmluZyBib3RoIHN0YXRpYyBhbmQgc2hhcmVkIGxpYnJhcmllcyBlbmFi bGVkIGF0IHRoZSBzYW1lCi0rIyB0aW1lIG9uIHRoYXQgcGxhdGZvcm0sIHNvIHdlIGRlZmF1bHQg dG8gYSBzaGFyZWQtb25seSBjb25maWd1cmF0aW9uLgotKyMgSWYgYSBkaXNhYmxlLXNoYXJlZCB0 YWcgaXMgZ2l2ZW4sIHdlJ2xsIGZhbGxiYWNrIHRvIGEgc3RhdGljLW9ubHkKLSsjIGNvbmZpZ3Vy YXRpb24uICBCdXQgd2UnbGwgbmV2ZXIgZ28gZnJvbSBzdGF0aWMtb25seSB0byBzaGFyZWQtb25s eS4KLSsKLSsjICMjIyBCRUdJTiBMSUJUT09MIFRBRyBDT05GSUc6IGRpc2FibGUtc2hhcmVkCi0r YnVpbGRfbGlidG9vbF9saWJzPW5vCi0rYnVpbGRfb2xkX2xpYnM9eWVzCi0rIyAjIyMgRU5EIExJ QlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zaGFyZWQKLSsKLSsjICMjIyBCRUdJTiBMSUJUT09M IFRBRyBDT05GSUc6IGRpc2FibGUtc3RhdGljCi0rYnVpbGRfb2xkX2xpYnM9YGNhc2UgJGJ1aWxk X2xpYnRvb2xfbGlicyBpbiB5ZXMpIGVjaG8gbm87OyAqKSBlY2hvIHllczs7IGVzYWNgCi0rIyAj IyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogZGlzYWJsZS1zdGF0aWMKLSsKLSsjIExvY2FsIFZh cmlhYmxlczoKLSsjIG1vZGU6c2hlbGwtc2NyaXB0Ci0rIyBzaC1pbmRlbnRhdGlvbjoyCi0rIyBF bmQ6Ci0rIyB2aTpzdz0yCi0rCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0 fm9ic29sZXRlLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHR+b2Jzb2xldGUubTQKLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHR+b2Jzb2xldGUubTQJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL2x0fm9i c29sZXRlLm00CTIwMTEtMDctMDMgMTg6NDQ6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDk4IEBACi0rIyBsdH5vYnNvbGV0ZS5tNCAtLSBhY2xvY2FsIHNhdGlzZnlpbmcgb2Jzb2xldGUg ZGVmaW5pdGlvbnMuICAgIC0qLUF1dG9jb25mLSotCi0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDIw MDQsIDIwMDUsIDIwMDcsIDIwMDkgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rIyAg IFdyaXR0ZW4gYnkgU2NvdHQgSmFtZXMgUmVtbmFudCwgMjAwNC4KLSsjCi0rIyBUaGlzIGZpbGUg aXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwotKyMg dW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBv ciB3aXRob3V0Ci0rIyBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHBy ZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA1IGx0fm9ic29sZXRlLm00Ci0rCi0rIyBUaGVzZSBleGlz dCBlbnRpcmVseSB0byBmb29sIGFjbG9jYWwgd2hlbiBib290c3RyYXBwaW5nIGxpYnRvb2wuCi0r IwotKyMgSW4gdGhlIHBhc3QgbGlidG9vbC5tNCBoYXMgcHJvdmlkZWQgbWFjcm9zIHZpYSBBQ19E RUZVTiAob3IgQVVfREVGVU4pCi0rIyB3aGljaCBoYXZlIGxhdGVyIGJlZW4gY2hhbmdlZCB0byBt NF9kZWZpbmUgYXMgdGhleSBhcmVuJ3QgcGFydCBvZiB0aGUKLSsjIGV4cG9ydGVkIEFQSSwgb3Ig bW92ZWQgdG8gQXV0b2NvbmYgb3IgQXV0b21ha2Ugd2hlcmUgdGhleSBiZWxvbmcuCi0rIwotKyMg VGhlIHRyb3VibGUgaXMsIGFjbG9jYWwgaXMgYSBiaXQgdGhpY2suICBJdCdsbCBzZWUgdGhlIG9s ZCBBQ19ERUZVTgotKyMgaW4gL3Vzci9zaGFyZS9hY2xvY2FsL2xpYnRvb2wubTQgYW5kIHJlbWVt YmVyIGl0LCB0aGVuIHdoZW4gaXQgc2VlcyB1cwotKyMgdXNpbmcgYSBtYWNybyB3aXRoIHRoZSBz YW1lIG5hbWUgaW4gb3VyIGxvY2FsIG00L2xpYnRvb2wubTQgaXQnbGwKLSsjIHB1bGwgdGhlIG9s ZCBsaWJ0b29sLm00IGluIChpdCBkb2Vzbid0IHNlZSBvdXIgc2hpbnkgbmV3IG00X2RlZmluZQot KyMgYW5kIGRvZXNuJ3Qga25vdyBhYm91dCBBdXRvY29uZiBtYWNyb3MgYXQgYWxsLikKLSsjCi0r IyBTbyB3ZSBwcm92aWRlIHRoaXMgZmlsZSwgd2hpY2ggaGFzIGEgc2lsbHkgZmlsZW5hbWUgc28g aXQncyBhbHdheXMKLSsjIGluY2x1ZGVkIGFmdGVyIGV2ZXJ5dGhpbmcgZWxzZS4gIFRoaXMgcHJv dmlkZXMgYWNsb2NhbCB3aXRoIHRoZQotKyMgQUNfREVGVU5zIGl0IHdhbnRzLCBidXQgd2hlbiBt NCBwcm9jZXNzZXMgaXQsIGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcKLSsjIGJlY2F1c2UgdGhvc2Ug bWFjcm9zIGFscmVhZHkgZXhpc3QsIG9yIHdpbGwgYmUgb3ZlcndyaXR0ZW4gbGF0ZXIuCi0rIyBX ZSB1c2UgQUNfREVGVU4gb3ZlciBBVV9ERUZVTiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIGFjbG9j YWwtMS42LiAKLSsjCi0rIyBBbnl0aW1lIHdlIHdpdGhkcmF3IGFuIEFDX0RFRlVOIG9yIEFVX0RF RlVOLCByZW1lbWJlciB0byBhZGQgaXQgaGVyZS4KLSsjIFllcywgdGhhdCBtZWFucyBldmVyeSBu YW1lIG9uY2UgdGFrZW4gd2lsbCBuZWVkIHRvIHJlbWFpbiBoZXJlIHVudGlsCi0rIyB3ZSBnaXZl IHVwIGNvbXBhdGliaWxpdHkgd2l0aCB2ZXJzaW9ucyBiZWZvcmUgMS43LCBhdCB3aGljaCBwb2lu dAotKyMgd2UgbmVlZCB0byBrZWVwIG9ubHkgdGhvc2UgbmFtZXMgd2hpY2ggd2Ugc3RpbGwgcmVm ZXIgdG8uCi0rCi0rIyBUaGlzIGlzIHRvIGhlbHAgYWNsb2NhbCBmaW5kIHRoZXNlIG1hY3Jvcywg YXMgaXQgY2FuJ3Qgc2VlIG00X2RlZmluZS4KLStBQ19ERUZVTihbTFRPQlNPTEVURV9WRVJTSU9O XSwgW200X2lmKFsxXSldKQotKwotK200X2lmbmRlZihbQUNfTElCVE9PTF9MSU5LRVJfT1BUSU9O XSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xJTktFUl9PUFRJT05dKV0pCi0rbTRfaWZuZGVmKFtB Q19QUk9HX0VHUkVQXSwJCVtBQ19ERUZVTihbQUNfUFJPR19FR1JFUF0pXSkKLSttNF9pZm5kZWYo W19MVF9BQ19QUk9HX0VDSE9fQkFDS1NMQVNIXSwJW0FDX0RFRlVOKFtfTFRfQUNfUFJPR19FQ0hP X0JBQ0tTTEFTSF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19TSEVMTF9JTklUXSwJCVtBQ19ERUZV TihbX0xUX0FDX1NIRUxMX0lOSVRdKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfU1lTX0xJQlBBVEhf QUlYXSwJW0FDX0RFRlVOKFtfTFRfQUNfU1lTX0xJQlBBVEhfQUlYXSldKQotK200X2lmbmRlZihb X0xUX1BST0dfTFRNQUlOXSwJCVtBQ19ERUZVTihbX0xUX1BST0dfTFRNQUlOXSldKQotK200X2lm bmRlZihbX0xUX0FDX1RBR1ZBUl0sCQlbQUNfREVGVU4oW19MVF9BQ19UQUdWQVJdKV0pCi0rbTRf aWZuZGVmKFtBQ19MVERMX0VOQUJMRV9JTlNUQUxMXSwJW0FDX0RFRlVOKFtBQ19MVERMX0VOQUJM RV9JTlNUQUxMXSldKQotK200X2lmbmRlZihbQUNfTFRETF9QUkVPUEVOXSwJCVtBQ19ERUZVTihb QUNfTFRETF9QUkVPUEVOXSldKQotK200X2lmbmRlZihbX0xUX0FDX1NZU19DT01QSUxFUl0sCVtB Q19ERUZVTihbX0xUX0FDX1NZU19DT01QSUxFUl0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MT0NL XSwJCVtBQ19ERUZVTihbX0xUX0FDX0xPQ0tdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZ U19PTERfQVJDSElWRV0sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfT0xEX0FSQ0hJVkVdKV0p Ci0rbTRfaWZuZGVmKFtfTFRfQUNfVFJZX0RMT1BFTl9TRUxGXSwJW0FDX0RFRlVOKFtfTFRfQUNf VFJZX0RMT1BFTl9TRUxGXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9QUk9HX0NDX0NfT10s CVtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0NDX0NfT10pXSkKLSttNF9pZm5kZWYoW0FDX0xJ QlRPT0xfU1lTX0hBUkRfTElOS19MT0NLU10sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9TWVNfSEFS RF9MSU5LX0xPQ0tTXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9PQkpESVJdLAkJW0FDX0RF RlVOKFtBQ19MSUJUT09MX09CSkRJUl0pXSkKLSttNF9pZm5kZWYoW0FDX0xURExfT0JKRElSXSwJ CVtBQ19ERUZVTihbQUNfTFRETF9PQkpESVJdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BS T0dfTERfSEFSRENPREVfTElCUEFUSF0sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0xEX0hB UkRDT0RFX0xJQlBBVEhdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19MSUJfU1RSSVBd LAlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0xJQl9TVFJJUF0pXSkKLSttNF9pZm5kZWYoW0FD X1BBVEhfTUFHSUNdLAkJW0FDX0RFRlVOKFtBQ19QQVRIX01BR0lDXSldKQotK200X2lmbmRlZihb QUNfUFJPR19MRF9HTlVdLAkJW0FDX0RFRlVOKFtBQ19QUk9HX0xEX0dOVV0pXSkKLSttNF9pZm5k ZWYoW0FDX1BST0dfTERfUkVMT0FEX0ZMQUddLAlbQUNfREVGVU4oW0FDX1BST0dfTERfUkVMT0FE X0ZMQUddKV0pCi0rbTRfaWZuZGVmKFtBQ19ERVBMSUJTX0NIRUNLX01FVEhPRF0sCVtBQ19ERUZV TihbQUNfREVQTElCU19DSEVDS19NRVRIT0RdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BS T0dfQ09NUElMRVJfTk9fUlRUSV0sIFtBQ19ERUZVTihbQUNfTElCVE9PTF9QUk9HX0NPTVBJTEVS X05PX1JUVEldKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1NZU19HTE9CQUxfU1lNQk9MX1BJ UEVdLCBbQUNfREVGVU4oW0FDX0xJQlRPT0xfU1lTX0dMT0JBTF9TWU1CT0xfUElQRV0pXSkKLStt NF9pZm5kZWYoW0FDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9QSUNdLCBbQUNfREVGVU4oW0FDX0xJ QlRPT0xfUFJPR19DT01QSUxFUl9QSUNdKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09MX1BST0df TERfU0hMSUJTXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX1BST0dfTERfU0hMSUJTXSldKQotK200 X2lmbmRlZihbQUNfTElCVE9PTF9QT1NUREVQX1BSRURFUF0sCVtBQ19ERUZVTihbQUNfTElCVE9P TF9QT1NUREVQX1BSRURFUF0pXSkKLSttNF9pZm5kZWYoW0xUX0FDX1BST0dfRUdSRVBdLAkJW0FD X0RFRlVOKFtMVF9BQ19QUk9HX0VHUkVQXSldKQotK200X2lmbmRlZihbTFRfQUNfUFJPR19TRURd LAkJW0FDX0RFRlVOKFtMVF9BQ19QUk9HX1NFRF0pXSkKLSttNF9pZm5kZWYoW19MVF9DQ19CQVNF TkFNRV0sCQlbQUNfREVGVU4oW19MVF9DQ19CQVNFTkFNRV0pXSkKLSttNF9pZm5kZWYoW19MVF9D T01QSUxFUl9CT0lMRVJQTEFURV0sCVtBQ19ERUZVTihbX0xUX0NPTVBJTEVSX0JPSUxFUlBMQVRF XSldKQotK200X2lmbmRlZihbX0xUX0xJTktFUl9CT0lMRVJQTEFURV0sCVtBQ19ERUZVTihbX0xU X0xJTktFUl9CT0lMRVJQTEFURV0pXSkKLSttNF9pZm5kZWYoW19BQ19QUk9HX0xJQlRPT0xdLAkJ W0FDX0RFRlVOKFtfQUNfUFJPR19MSUJUT09MXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9T RVRVUF0sCQlbQUNfREVGVU4oW0FDX0xJQlRPT0xfU0VUVVBdKV0pCi0rbTRfaWZuZGVmKFtfTFRf QUNfQ0hFQ0tfRExGQ05dLAkJW0FDX0RFRlVOKFtfTFRfQUNfQ0hFQ0tfRExGQ05dKV0pCi0rbTRf aWZuZGVmKFtBQ19MSUJUT09MX1NZU19EWU5BTUlDX0xJTktFUl0sCVtBQ19ERUZVTihbQUNfTElC VE9PTF9TWVNfRFlOQU1JQ19MSU5LRVJdKV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfVEFHQ09ORklH XSwJCVtBQ19ERUZVTihbX0xUX0FDX1RBR0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW0FDX0RJU0FC TEVfRkFTVF9JTlNUQUxMXSwJW0FDX0RFRlVOKFtBQ19ESVNBQkxFX0ZBU1RfSU5TVEFMTF0pXSkK LSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0NYWF0sCQlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0NY WF0pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0Y3N10sCQlbQUNfREVGVU4oW19MVF9BQ19M QU5HX0Y3N10pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0dDSl0sCQlbQUNfREVGVU4oW19M VF9BQ19MQU5HX0dDSl0pXSkKLSttNF9pZm5kZWYoW0FDX0xJQlRPT0xfTEFOR19DX0NPTkZJR10s CVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0NfQ09ORklHXSldKQotK200X2lmbmRlZihbX0xU X0FDX0xBTkdfQ19DT05GSUddLAlbQUNfREVGVU4oW19MVF9BQ19MQU5HX0NfQ09ORklHXSldKQot K200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX0NYWF9DT05GSUddLAlbQUNfREVGVU4oW0FDX0xJ QlRPT0xfTEFOR19DWFhfQ09ORklHXSldKQotK200X2lmbmRlZihbX0xUX0FDX0xBTkdfQ1hYX0NP TkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfQ1hYX0NPTkZJR10pXSkKLSttNF9pZm5kZWYo W0FDX0xJQlRPT0xfTEFOR19GNzdfQ09ORklHXSwJW0FDX0RFRlVOKFtBQ19MSUJUT09MX0xBTkdf Rjc3X0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19MQU5HX0Y3N19DT05GSUddLAlbQUNf REVGVU4oW19MVF9BQ19MQU5HX0Y3N19DT05GSUddKV0pCi0rbTRfaWZuZGVmKFtBQ19MSUJUT09M X0xBTkdfR0NKX0NPTkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX0dDSl9DT05GSUdd KV0pCi0rbTRfaWZuZGVmKFtfTFRfQUNfTEFOR19HQ0pfQ09ORklHXSwJW0FDX0RFRlVOKFtfTFRf QUNfTEFOR19HQ0pfQ09ORklHXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9MQU5HX1JDX0NP TkZJR10sCVtBQ19ERUZVTihbQUNfTElCVE9PTF9MQU5HX1JDX0NPTkZJR10pXSkKLSttNF9pZm5k ZWYoW19MVF9BQ19MQU5HX1JDX0NPTkZJR10sCVtBQ19ERUZVTihbX0xUX0FDX0xBTkdfUkNfQ09O RklHXSldKQotK200X2lmbmRlZihbQUNfTElCVE9PTF9DT05GSUddLAkJW0FDX0RFRlVOKFtBQ19M SUJUT09MX0NPTkZJR10pXSkKLSttNF9pZm5kZWYoW19MVF9BQ19GSUxFX0xURExMX0NdLAlbQUNf REVGVU4oW19MVF9BQ19GSUxFX0xURExMX0NdKV0pCi0rbTRfaWZuZGVmKFtfTFRfUkVRVUlSRURf REFSV0lOX0NIRUNLU10sCVtBQ19ERUZVTihbX0xUX1JFUVVJUkVEX0RBUldJTl9DSEVDS1NdKV0p Ci0rbTRfaWZuZGVmKFtfTFRfQUNfUFJPR19DWFhDUFBdLAkJW0FDX0RFRlVOKFtfTFRfQUNfUFJP R19DWFhDUFBdKV0pCi0rbTRfaWZuZGVmKFtfTFRfUFJFUEFSRV9TRURfUVVPVEVfVkFSU10sCVtB Q19ERUZVTihbX0xUX1BSRVBBUkVfU0VEX1FVT1RFX1ZBUlNdKV0pCi0rbTRfaWZuZGVmKFtfTFRf UFJPR19FQ0hPX0JBQ0tTTEFTSF0sCVtBQ19ERUZVTihbX0xUX1BST0dfRUNIT19CQUNLU0xBU0hd KV0pCi0rbTRfaWZuZGVmKFtfTFRfUFJPR19GNzddLAkJW0FDX0RFRlVOKFtfTFRfUFJPR19GNzdd KV0pCi0rbTRfaWZuZGVmKFtfTFRfUFJPR19GQ10sCQlbQUNfREVGVU4oW19MVF9QUk9HX0ZDXSld KQotK200X2lmbmRlZihbX0xUX1BST0dfQ1hYXSwJCVtBQ19ERUZVTihbX0xUX1BST0dfQ1hYXSld KQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdG9wdGlvbnMubTQgc29jaS0z LjAuMF90cmVwMzAwL2NvbmZpZy9sdG9wdGlvbnMubTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9j b25maWcvbHRvcHRpb25zLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0r Kysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdG9wdGlvbnMubTQJMjAxMS0wNy0wMyAxODo0 NDoyMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzY5IEBACi0rIyBIZWxwZXIgZnVuY3Rp b25zIGZvciBvcHRpb24gaGFuZGxpbmcuICAgICAgICAgICAgICAgICAgICAtKi0gQXV0b2NvbmYg LSotCi0rIwotKyMgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDgsIDIwMDkg RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMgICBJbmMuCi0rIyAgIFdyaXR0ZW4gYnkgR2Fy eSBWLiBWYXVnaGFuLCAyMDA0Ci0rIwotKyMgVGhpcyBmaWxlIGlzIGZyZWUgc29mdHdhcmU7IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKLSsjIHVubGltaXRlZCBwZXJtaXNzaW9u IHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsIHdpdGggb3Igd2l0aG91dAotKyMgbW9kaWZp Y2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBzZXJp YWwgNyBsdG9wdGlvbnMubTQKLSsKLSsjIFRoaXMgaXMgdG8gaGVscCBhY2xvY2FsIGZpbmQgdGhl c2UgbWFjcm9zLCBhcyBpdCBjYW4ndCBzZWUgbTRfZGVmaW5lLgotK0FDX0RFRlVOKFtMVE9QVElP TlNfVkVSU0lPTl0sIFttNF9pZihbMV0pXSkKLSsKLSsKLSsjIF9MVF9NQU5HTEVfT1BUSU9OKE1B Q1JPLU5BTUUsIE9QVElPTi1OQU1FKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtfTFRfTUFOR0xFX09QVElPTl0sCi0rW1tfTFRfT1BU SU9OX11tNF9icGF0c3Vic3QoJDFfXyQyLCBbW15hLXpBLVowLTlfXV0sIFtfXSldKQotKwotKwot KyMgX0xUX1NFVF9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUpCi0rIyAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFNldCBvcHRpb24gT1BUSU9OLU5BTUUg Zm9yIG1hY3JvIE1BQ1JPLU5BTUUsIGFuZCBpZiB0aGVyZSBpcyBhCi0rIyBtYXRjaGluZyBoYW5k bGVyIGRlZmluZWQsIGRpc3BhdGNoIHRvIGl0LiAgT3RoZXIgT1BUSU9OLU5BTUVzIGFyZQotKyMg c2F2ZWQgYXMgYSBmbGFnLgotK200X2RlZmluZShbX0xUX1NFVF9PUFRJT05dLAotK1ttNF9kZWZp bmUoX0xUX01BTkdMRV9PUFRJT04oWyQxXSwgWyQyXSkpZG5sCi0rbTRfaWZkZWYoX0xUX01BTkdM RV9ERUZVTihbJDFdLCBbJDJdKSwKLSsgICAgICAgIF9MVF9NQU5HTEVfREVGVU4oWyQxXSwgWyQy XSksCi0rICAgIFttNF93YXJuaW5nKFtVbmtub3duICQxIG9wdGlvbiBgJDInXSldKVtdZG5sCi0r XSkKLSsKLSsKLSsjIF9MVF9JRl9PUFRJT04oTUFDUk8tTkFNRSwgT1BUSU9OLU5BTUUsIElGLVNF VCwgW0lGLU5PVC1TRVRdKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBFeGVjdXRlIElGLVNFVCBpZiBPUFRJT04gaXMg c2V0LCBJRi1OT1QtU0VUIG90aGVyd2lzZS4KLSttNF9kZWZpbmUoW19MVF9JRl9PUFRJT05dLAot K1ttNF9pZmRlZihfTFRfTUFOR0xFX09QVElPTihbJDFdLCBbJDJdKSwgWyQzXSwgWyQ0XSldKQot KwotKwotKyMgX0xUX1VOTEVTU19PUFRJT05TKE1BQ1JPLU5BTUUsIE9QVElPTi1MSVNULCBJRi1O T1QtU0VUKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQotKyMgRXhlY3V0ZSBJRi1OT1QtU0VUIHVubGVzcyBhbGwgb3B0aW9ucyBpbiBP UFRJT04tTElTVCBmb3IgTUFDUk8tTkFNRQotKyMgYXJlIHNldC4KLSttNF9kZWZpbmUoW19MVF9V TkxFU1NfT1BUSU9OU10sCi0rW200X2ZvcmVhY2goW19MVF9PcHRpb25dLCBtNF9zcGxpdChtNF9u b3JtYWxpemUoWyQyXSkpLAotKwkgICAgW200X2lmZGVmKF9MVF9NQU5HTEVfT1BUSU9OKFskMV0s IF9MVF9PcHRpb24pLAotKwkJICAgICAgW200X2RlZmluZShbJDBfZm91bmRdKV0pXSlbXWRubAot K200X2lmZGVmKFskMF9mb3VuZF0sIFttNF91bmRlZmluZShbJDBfZm91bmRdKV0sIFskMwotK10p W11kbmwKLStdKQotKwotKwotKyMgX0xUX1NFVF9PUFRJT05TKE1BQ1JPLU5BTUUsIE9QVElPTi1M SVNUKQotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgT1BU SU9OLUxJU1QgaXMgYSBzcGFjZS1zZXBhcmF0ZWQgbGlzdCBvZiBMaWJ0b29sIG9wdGlvbnMgYXNz b2NpYXRlZAotKyMgd2l0aCBNQUNSTy1OQU1FLiAgSWYgYW55IE9QVElPTiBoYXMgYSBtYXRjaGlu ZyBoYW5kbGVyIGRlY2xhcmVkIHdpdGgKLSsjIExUX09QVElPTl9ERUZJTkUsIGRpc3BhdGNoIHRv IHRoYXQgbWFjcm87IG90aGVyd2lzZSBjb21wbGFpbiBhYm91dAotKyMgdGhlIHVua25vd24gb3B0 aW9uIGFuZCBleGl0LgotK200X2RlZnVuKFtfTFRfU0VUX09QVElPTlNdLAotK1sjIFNldCBvcHRp b25zCi0rbTRfZm9yZWFjaChbX0xUX09wdGlvbl0sIG00X3NwbGl0KG00X25vcm1hbGl6ZShbJDJd KSksCi0rICAgIFtfTFRfU0VUX09QVElPTihbJDFdLCBfTFRfT3B0aW9uKV0pCi0rCi0rbTRfaWYo WyQxXSxbTFRfSU5JVF0sWwotKyAgZG5sCi0rICBkbmwgU2ltcGx5IHNldCBzb21lIGRlZmF1bHQg dmFsdWVzIChpLmUgb2ZmKSBpZiBib29sZWFuIG9wdGlvbnMgd2VyZSBub3QKLSsgIGRubCBzcGVj aWZpZWQ6Ci0rICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbZGxvcGVuXSwgW2VuYWJs ZV9kbG9wZW49bm8KLSsgIF0pCi0rICBfTFRfVU5MRVNTX09QVElPTlMoW0xUX0lOSVRdLCBbd2lu MzItZGxsXSwgW2VuYWJsZV93aW4zMl9kbGw9bm8KLSsgIF0pCi0rICBkbmwKLSsgIGRubCBJZiBu byByZWZlcmVuY2Ugd2FzIG1hZGUgdG8gdmFyaW91cyBwYWlycyBvZiBvcHBvc2luZyBvcHRpb25z LCB0aGVuCi0rICBkbmwgd2UgcnVuIHRoZSBkZWZhdWx0IG1vZGUgaGFuZGxlciBmb3IgdGhlIHBh aXIuICBGb3IgZXhhbXBsZSwgaWYgbmVpdGhlcgotKyAgZG5sIGBzaGFyZWQnIG5vciBgZGlzYWJs ZS1zaGFyZWQnIHdhcyBwYXNzZWQsIHdlIGVuYWJsZSBidWlsZGluZyBvZiBzaGFyZWQKLSsgIGRu bCBhcmNoaXZlcyBieSBkZWZhdWx0OgotKyAgX0xUX1VOTEVTU19PUFRJT05TKFtMVF9JTklUXSwg W3NoYXJlZCBkaXNhYmxlLXNoYXJlZF0sIFtfTFRfRU5BQkxFX1NIQVJFRF0pCi0rICBfTFRfVU5M RVNTX09QVElPTlMoW0xUX0lOSVRdLCBbc3RhdGljIGRpc2FibGUtc3RhdGljXSwgW19MVF9FTkFC TEVfU1RBVElDXSkKLSsgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0sIFtwaWMtb25seSBu by1waWNdLCBbX0xUX1dJVEhfUElDXSkKLSsgIF9MVF9VTkxFU1NfT1BUSU9OUyhbTFRfSU5JVF0s IFtmYXN0LWluc3RhbGwgZGlzYWJsZS1mYXN0LWluc3RhbGxdLAotKyAgCQkgICBbX0xUX0VOQUJM RV9GQVNUX0lOU1RBTExdKQotKyAgXSkKLStdKSMgX0xUX1NFVF9PUFRJT05TCi0rCi0rCi0rIyMg LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgTWFjcm9zIHRvIGhhbmRs ZSBMVF9JTklUIG9wdGlvbnMuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tICMjCi0rCi0rIyBfTFRfTUFOR0xFX0RFRlVOKE1BQ1JPLU5BTUUsIE9QVElPTi1OQU1FKQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUo W19MVF9NQU5HTEVfREVGVU5dLAotK1tbX0xUX09QVElPTl9ERUZVTl9dbTRfYnBhdHN1YnN0KG00 X3RvdXBwZXIoWyQxX18kMl0pLCBbW15BLVowLTlfXV0sIFtfXSldKQotKwotKwotKyMgTFRfT1BU SU9OX0RFRklORShNQUNSTy1OQU1FLCBPUFRJT04tTkFNRSwgQ09ERSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtMVF9PUFRJ T05fREVGSU5FXSwKLStbbTRfZGVmaW5lKF9MVF9NQU5HTEVfREVGVU4oWyQxXSwgWyQyXSksIFsk M10pW11kbmwKLStdKSMgTFRfT1BUSU9OX0RFRklORQotKwotKwotKyMgZGxvcGVuCi0rIyAtLS0t LS0KLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Rsb3Blbl0sIFtlbmFibGVfZGxvcGVu PXllcwotK10pCi0rCi0rQVVfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOXSwKLStbX0xUX1NFVF9P UFRJT04oW0xUX0lOSVRdLCBbZGxvcGVuXSkKLStBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAotK1sk MDogUmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hl biB5b3UKLStwdXQgdGhlIGBkbG9wZW4nIG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJh bWV0ZXIuXSkKLStdKQotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0 eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfRExPUEVOXSwgW10pCi0rCi0rCi0rIyB3aW4z Mi1kbGwKLSsjIC0tLS0tLS0tLQotKyMgRGVjbGFyZSBwYWNrYWdlIHN1cHBvcnQgZm9yIGJ1aWxk aW5nIHdpbjMyIGRsbCdzLgotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbd2luMzItZGxs XSwKLStbZW5hYmxlX3dpbjMyX2RsbD15ZXMKLSsKLStjYXNlICRob3N0IGluCi0rKi0qLWN5Z3dp biogfCAqLSotbWluZ3cqIHwgKi0qLXB3MzIqIHwgKi0qLWNlZ2NjKikKLSsgIEFDX0NIRUNLX1RP T0woQVMsIGFzLCBmYWxzZSkKLSsgIEFDX0NIRUNLX1RPT0woRExMVE9PTCwgZGxsdG9vbCwgZmFs c2UpCi0rICBBQ19DSEVDS19UT09MKE9CSkRVTVAsIG9iamR1bXAsIGZhbHNlKQotKyAgOzsKLStl c2FjCi0rCi0rdGVzdCAteiAiJEFTIiAmJiBBUz1hcwotK19MVF9ERUNMKFtdLCBbQVNdLCAgICAg IFsxXSwgW0Fzc2VtYmxlciBwcm9ncmFtXSlkbmwKLSsKLSt0ZXN0IC16ICIkRExMVE9PTCIgJiYg RExMVE9PTD1kbGx0b29sCi0rX0xUX0RFQ0woW10sIFtETExUT09MXSwgWzFdLCBbRExMIGNyZWF0 aW9uIHByb2dyYW1dKWRubAotKwotK3Rlc3QgLXogIiRPQkpEVU1QIiAmJiBPQkpEVU1QPW9iamR1 bXAKLStfTFRfREVDTChbXSwgW09CSkRVTVBdLCBbMV0sIFtPYmplY3QgZHVtcGVyIHByb2dyYW1d KWRubAotK10pIyB3aW4zMi1kbGwKLSsKLStBVV9ERUZVTihbQUNfTElCVE9PTF9XSU4zMl9ETExd LAotK1tBQ19SRVFVSVJFKFtBQ19DQU5PTklDQUxfSE9TVF0pZG5sCi0rX0xUX1NFVF9PUFRJT04o W0xUX0lOSVRdLCBbd2luMzItZGxsXSkKLStBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAotK1skMDog UmVtb3ZlIHRoaXMgd2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5 b3UKLStwdXQgdGhlIGB3aW4zMi1kbGwnIG9wdGlvbiBpbnRvIExUX0lOSVQncyBmaXJzdCBwYXJh bWV0ZXIuXSkKLStdKQotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0 eToKLStkbmwgQUNfREVGVU4oW0FDX0xJQlRPT0xfV0lOMzJfRExMXSwgW10pCi0rCi0rCi0rIyBf TFRfRU5BQkxFX1NIQVJFRChbREVGQVVMVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rIyBpbXBsZW1lbnQgdGhlIC0tZW5hYmxlLXNoYXJlZCBmbGFnLCBhbmQgc3VwcG9ydHMg dGhlIGBzaGFyZWQnIGFuZAotKyMgYGRpc2FibGUtc2hhcmVkJyBMVF9JTklUIG9wdGlvbnMuCi0r IyBERUZBVUxUIGlzIGVpdGhlciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVs dHMgdG8gYHllcycuCi0rbTRfZGVmaW5lKFtfTFRfRU5BQkxFX1NIQVJFRF0sCi0rW200X2RlZmlu ZShbX0xUX0VOQUJMRV9TSEFSRURfREVGQVVMVF0sIFttNF9pZigkMSwgbm8sIG5vLCB5ZXMpXSlk bmwKLStBQ19BUkdfRU5BQkxFKFtzaGFyZWRdLAotKyAgICBbQVNfSEVMUF9TVFJJTkcoWy0tZW5h YmxlLXNoYXJlZEA8OkA9UEtHU0A6PkBdLAotKwlbYnVpbGQgc2hhcmVkIGxpYnJhcmllcyBAPDpA ZGVmYXVsdD1dX0xUX0VOQUJMRV9TSEFSRURfREVGQVVMVFtAOj5AXSldLAotKyAgICBbcD0ke1BB Q0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxl X3NoYXJlZD15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zaGFyZWQ9bm8gOzsKLSsgICAgKikKLSsg ICAgICBlbmFibGVfc2hhcmVkPW5vCi0rICAgICAgIyBMb29rIGF0IHRoZSBhcmd1bWVudCB3ZSBn b3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3JzLgotKyAgICAgIGx0X3Nh dmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1IsIgotKyAgICAgIGZvciBw a2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMiCi0rCWlmIHRlc3QgIlgk cGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX3NoYXJlZD15ZXMKLSsJZmkKLSsgICAgICBk b25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgOzsKLSsgICAgZXNhY10sCi0r ICAgIFtlbmFibGVfc2hhcmVkPV1fTFRfRU5BQkxFX1NIQVJFRF9ERUZBVUxUKQotKwotKyAgICBf TFRfREVDTChbYnVpbGRfbGlidG9vbF9saWJzXSwgW2VuYWJsZV9zaGFyZWRdLCBbMF0sCi0rCVtX aGV0aGVyIG9yIG5vdCB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzXSkKLStdKSMgX0xUX0VOQUJM RV9TSEFSRUQKLSsKLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW3NoYXJlZF0sIFtfTFRf RU5BQkxFX1NIQVJFRChbeWVzXSldKQotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlz YWJsZS1zaGFyZWRdLCBbX0xUX0VOQUJMRV9TSEFSRUQoW25vXSldKQotKwotKyMgT2xkIG5hbWVz OgotK0FDX0RFRlVOKFtBQ19FTkFCTEVfU0hBUkVEXSwKLStbX0xUX1NFVF9PUFRJT04oW0xUX0lO SVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtzaGFyZWRdKQotK10pCi0rCi0rQUNf REVGVU4oW0FDX0RJU0FCTEVfU0hBUkVEXSwKLStbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBb ZGlzYWJsZS1zaGFyZWRdKQotK10pCi0rCi0rQVVfREVGVU4oW0FNX0VOQUJMRV9TSEFSRURdLCBb QUNfRU5BQkxFX1NIQVJFRCgkQCldKQotK0FVX0RFRlVOKFtBTV9ESVNBQkxFX1NIQVJFRF0sIFtB Q19ESVNBQkxFX1NIQVJFRCgkQCldKQotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29t cGF0aWJpbGl0eToKLStkbmwgQUNfREVGVU4oW0FNX0VOQUJMRV9TSEFSRURdLCBbXSkKLStkbmwg QUNfREVGVU4oW0FNX0RJU0FCTEVfU0hBUkVEXSwgW10pCi0rCi0rCi0rCi0rIyBfTFRfRU5BQkxF X1NUQVRJQyhbREVGQVVMVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBp bXBsZW1lbnQgdGhlIC0tZW5hYmxlLXN0YXRpYyBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYHN0YXRp YycgYW5kCi0rIyBgZGlzYWJsZS1zdGF0aWMnIExUX0lOSVQgb3B0aW9ucy4KLSsjIERFRkFVTFQg aXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBkZWZhdWx0cyB0byBgeWVz Jy4KLSttNF9kZWZpbmUoW19MVF9FTkFCTEVfU1RBVElDXSwKLStbbTRfZGVmaW5lKFtfTFRfRU5B QkxFX1NUQVRJQ19ERUZBVUxUXSwgW200X2lmKCQxLCBubywgbm8sIHllcyldKWRubAotK0FDX0FS R19FTkFCTEUoW3N0YXRpY10sCi0rICAgIFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtc3RhdGlj QDw6QD1QS0dTQDo+QF0sCi0rCVtidWlsZCBzdGF0aWMgbGlicmFyaWVzIEA8OkBkZWZhdWx0PV1f TFRfRU5BQkxFX1NUQVRJQ19ERUZBVUxUW0A6PkBdKV0sCi0rICAgIFtwPSR7UEFDS0FHRS1kZWZh dWx0fQotKyAgICBjYXNlICRlbmFibGV2YWwgaW4KLSsgICAgeWVzKSBlbmFibGVfc3RhdGljPXll cyA7OwotKyAgICBubykgZW5hYmxlX3N0YXRpYz1ubyA7OwotKyAgICAqKQotKyAgICAgZW5hYmxl X3N0YXRpYz1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNl IGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0iJElG UyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRlbmFi bGV2YWw7IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRw IjsgdGhlbgotKwkgIGVuYWJsZV9zdGF0aWM9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICAg IElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAgIGVzYWNdLAotKyAgICBbZW5hYmxl X3N0YXRpYz1dX0xUX0VOQUJMRV9TVEFUSUNfREVGQVVMVCkKLSsKLSsgICAgX0xUX0RFQ0woW2J1 aWxkX29sZF9saWJzXSwgW2VuYWJsZV9zdGF0aWNdLCBbMF0sCi0rCVtXaGV0aGVyIG9yIG5vdCB0 byBidWlsZCBzdGF0aWMgbGlicmFyaWVzXSkKLStdKSMgX0xUX0VOQUJMRV9TVEFUSUMKLSsKLStM VF9PUFRJT05fREVGSU5FKFtMVF9JTklUXSwgW3N0YXRpY10sIFtfTFRfRU5BQkxFX1NUQVRJQyhb eWVzXSldKQotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1zdGF0aWNdLCBb X0xUX0VOQUJMRV9TVEFUSUMoW25vXSldKQotKwotKyMgT2xkIG5hbWVzOgotK0FDX0RFRlVOKFtB Q19FTkFCTEVfU1RBVElDXSwKLStbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFd LCBbbm9dLCBbZGlzYWJsZS1dKVtzdGF0aWNdKQotK10pCi0rCi0rQUNfREVGVU4oW0FDX0RJU0FC TEVfU1RBVElDXSwKLStbX0xUX1NFVF9PUFRJT04oW0xUX0lOSVRdLCBbZGlzYWJsZS1zdGF0aWNd KQotK10pCi0rCi0rQVVfREVGVU4oW0FNX0VOQUJMRV9TVEFUSUNdLCBbQUNfRU5BQkxFX1NUQVRJ QygkQCldKQotK0FVX0RFRlVOKFtBTV9ESVNBQkxFX1NUQVRJQ10sIFtBQ19ESVNBQkxFX1NUQVRJ QygkQCldKQotKwotK2RubCBhY2xvY2FsLTEuNCBiYWNrd2FyZHMgY29tcGF0aWJpbGl0eToKLStk bmwgQUNfREVGVU4oW0FNX0VOQUJMRV9TVEFUSUNdLCBbXSkKLStkbmwgQUNfREVGVU4oW0FNX0RJ U0FCTEVfU1RBVElDXSwgW10pCi0rCi0rCi0rCi0rIyBfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTChb REVGQVVMVF0pCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBpbXBs ZW1lbnQgdGhlIC0tZW5hYmxlLWZhc3QtaW5zdGFsbCBmbGFnLCBhbmQgc3VwcG9ydCB0aGUgYGZh c3QtaW5zdGFsbCcKLSsjIGFuZCBgZGlzYWJsZS1mYXN0LWluc3RhbGwnIExUX0lOSVQgb3B0aW9u cy4KLSsjIERFRkFVTFQgaXMgZWl0aGVyIGB5ZXMnIG9yIGBubycuICBJZiBvbWl0dGVkLCBpdCBk ZWZhdWx0cyB0byBgeWVzJy4KLSttNF9kZWZpbmUoW19MVF9FTkFCTEVfRkFTVF9JTlNUQUxMXSwK LStbbTRfZGVmaW5lKFtfTFRfRU5BQkxFX0ZBU1RfSU5TVEFMTF9ERUZBVUxUXSwgW200X2lmKCQx LCBubywgbm8sIHllcyldKWRubAotK0FDX0FSR19FTkFCTEUoW2Zhc3QtaW5zdGFsbF0sCi0rICAg IFtBU19IRUxQX1NUUklORyhbLS1lbmFibGUtZmFzdC1pbnN0YWxsQDw6QD1QS0dTQDo+QF0sCi0r ICAgIFtvcHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24gQDw6QGRlZmF1bHQ9XV9MVF9FTkFC TEVfRkFTVF9JTlNUQUxMX0RFRkFVTFRbQDo+QF0pXSwKLSsgICAgW3A9JHtQQUNLQUdFLWRlZmF1 bHR9Ci0rICAgIGNhc2UgJGVuYWJsZXZhbCBpbgotKyAgICB5ZXMpIGVuYWJsZV9mYXN0X2luc3Rh bGw9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVfZmFzdF9pbnN0YWxsPW5vIDs7Ci0rICAgICopCi0r ICAgICAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwotKyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1l bnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAg ICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAg ICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCi0rCUlGUz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0 ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgotKwkgIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzCi0r CWZpCi0rICAgICAgZG9uZQotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0r ICAgIGVzYWNdLAotKyAgICBbZW5hYmxlX2Zhc3RfaW5zdGFsbD1dX0xUX0VOQUJMRV9GQVNUX0lO U1RBTExfREVGQVVMVCkKLSsKLStfTFRfREVDTChbZmFzdF9pbnN0YWxsXSwgW2VuYWJsZV9mYXN0 X2luc3RhbGxdLCBbMF0sCi0rCSBbV2hldGhlciBvciBub3QgdG8gb3B0aW1pemUgZm9yIGZhc3Qg aW5zdGFsbGF0aW9uXSlkbmwKLStdKSMgX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwKLSsKLStMVF9P UFRJT05fREVGSU5FKFtMVF9JTklUXSwgW2Zhc3QtaW5zdGFsbF0sIFtfTFRfRU5BQkxFX0ZBU1Rf SU5TVEFMTChbeWVzXSldKQotK0xUX09QVElPTl9ERUZJTkUoW0xUX0lOSVRdLCBbZGlzYWJsZS1m YXN0LWluc3RhbGxdLCBbX0xUX0VOQUJMRV9GQVNUX0lOU1RBTEwoW25vXSldKQotKwotKyMgT2xk IG5hbWVzOgotK0FVX0RFRlVOKFtBQ19FTkFCTEVfRkFTVF9JTlNUQUxMXSwKLStbX0xUX1NFVF9P UFRJT04oW0xUX0lOSVRdLCBtNF9pZihbJDFdLCBbbm9dLCBbZGlzYWJsZS1dKVtmYXN0LWluc3Rh bGxdKQotK0FDX0RJQUdOT1NFKFtvYnNvbGV0ZV0sCi0rWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5n IGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09QVElPTiB3aGVuIHlvdSBwdXQKLSt0aGUgYGZhc3Qt aW5zdGFsbCcgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQotK10pCi0r Ci0rQVVfREVGVU4oW0FDX0RJU0FCTEVfRkFTVF9JTlNUQUxMXSwKLStbX0xUX1NFVF9PUFRJT04o W0xUX0lOSVRdLCBbZGlzYWJsZS1mYXN0LWluc3RhbGxdKQotK0FDX0RJQUdOT1NFKFtvYnNvbGV0 ZV0sCi0rWyQwOiBSZW1vdmUgdGhpcyB3YXJuaW5nIGFuZCB0aGUgY2FsbCB0byBfTFRfU0VUX09Q VElPTiB3aGVuIHlvdSBwdXQKLSt0aGUgYGRpc2FibGUtZmFzdC1pbnN0YWxsJyBvcHRpb24gaW50 byBMVF9JTklUJ3MgZmlyc3QgcGFyYW1ldGVyLl0pCi0rXSkKLSsKLStkbmwgYWNsb2NhbC0xLjQg YmFja3dhcmRzIGNvbXBhdGliaWxpdHk6Ci0rZG5sIEFDX0RFRlVOKFtBQ19FTkFCTEVfRkFTVF9J TlNUQUxMXSwgW10pCi0rZG5sIEFDX0RFRlVOKFtBTV9ESVNBQkxFX0ZBU1RfSU5TVEFMTF0sIFtd KQotKwotKwotKyMgX0xUX1dJVEhfUElDKFtNT0RFXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rIyBpbXBsZW1lbnQgdGhlIC0td2l0aC1waWMgZmxhZywgYW5kIHN1cHBvcnQgdGhlIGBwaWMt b25seScgYW5kIGBuby1waWMnCi0rIyBMVF9JTklUIG9wdGlvbnMuCi0rIyBNT0RFIGlzIGVpdGhl ciBgeWVzJyBvciBgbm8nLiAgSWYgb21pdHRlZCwgaXQgZGVmYXVsdHMgdG8gYGJvdGgnLgotK200 X2RlZmluZShbX0xUX1dJVEhfUElDXSwKLStbQUNfQVJHX1dJVEgoW3BpY10sCi0rICAgIFtBU19I RUxQX1NUUklORyhbLS13aXRoLXBpY10sCi0rCVt0cnkgdG8gdXNlIG9ubHkgUElDL25vbi1QSUMg b2JqZWN0cyBAPDpAZGVmYXVsdD11c2UgYm90aEA6PkBdKV0sCi0rICAgIFtwaWNfbW9kZT0iJHdp dGh2YWwiXSwKLSsgICAgW3BpY19tb2RlPWRlZmF1bHRdKQotKwotK3Rlc3QgLXogIiRwaWNfbW9k ZSIgJiYgcGljX21vZGU9bTRfZGVmYXVsdChbJDFdLCBbZGVmYXVsdF0pCi0rCi0rX0xUX0RFQ0wo W10sIFtwaWNfbW9kZV0sIFswXSwgW1doYXQgdHlwZSBvZiBvYmplY3RzIHRvIGJ1aWxkXSlkbmwK LStdKSMgX0xUX1dJVEhfUElDCi0rCi0rTFRfT1BUSU9OX0RFRklORShbTFRfSU5JVF0sIFtwaWMt b25seV0sIFtfTFRfV0lUSF9QSUMoW3llc10pXSkKLStMVF9PUFRJT05fREVGSU5FKFtMVF9JTklU XSwgW25vLXBpY10sIFtfTFRfV0lUSF9QSUMoW25vXSldKQotKwotKyMgT2xkIG5hbWU6Ci0rQVVf REVGVU4oW0FDX0xJQlRPT0xfUElDTU9ERV0sCi0rW19MVF9TRVRfT1BUSU9OKFtMVF9JTklUXSwg W3BpYy1vbmx5XSkKLStBQ19ESUFHTk9TRShbb2Jzb2xldGVdLAotK1skMDogUmVtb3ZlIHRoaXMg d2FybmluZyBhbmQgdGhlIGNhbGwgdG8gX0xUX1NFVF9PUFRJT04gd2hlbiB5b3UKLStwdXQgdGhl IGBwaWMtb25seScgb3B0aW9uIGludG8gTFRfSU5JVCdzIGZpcnN0IHBhcmFtZXRlci5dKQotK10p Ci0rCi0rZG5sIGFjbG9jYWwtMS40IGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5OgotK2RubCBBQ19E RUZVTihbQUNfTElCVE9PTF9QSUNNT0RFXSwgW10pCi0rCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0g IyMKLSsjIyBMVERMX0lOSVQgT3B0aW9ucyAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tICMjCi0r Ci0rbTRfZGVmaW5lKFtfTFRETF9NT0RFXSwgW10pCi0rTFRfT1BUSU9OX0RFRklORShbTFRETF9J TklUXSwgW25vbnJlY3Vyc2l2ZV0sCi0rCQkgW200X2RlZmluZShbX0xURExfTU9ERV0sIFtub25y ZWN1cnNpdmVdKV0pCi0rTFRfT1BUSU9OX0RFRklORShbTFRETF9JTklUXSwgW3JlY3Vyc2l2ZV0s Ci0rCQkgW200X2RlZmluZShbX0xURExfTU9ERV0sIFtyZWN1cnNpdmVdKV0pCi0rTFRfT1BUSU9O X0RFRklORShbTFRETF9JTklUXSwgW3N1YnByb2plY3RdLAotKwkJIFttNF9kZWZpbmUoW19MVERM X01PREVdLCBbc3VicHJvamVjdF0pXSkKLSsKLSttNF9kZWZpbmUoW19MVERMX1RZUEVdLCBbXSkK LStMVF9PUFRJT05fREVGSU5FKFtMVERMX0lOSVRdLCBbaW5zdGFsbGFibGVdLAotKwkJIFttNF9k ZWZpbmUoW19MVERMX1RZUEVdLCBbaW5zdGFsbGFibGVdKV0pCi0rTFRfT1BUSU9OX0RFRklORShb TFRETF9JTklUXSwgW2NvbnZlbmllbmNlXSwKLSsJCSBbbTRfZGVmaW5lKFtfTFRETF9UWVBFXSwg W2NvbnZlbmllbmNlXSldKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2NvbmZpZy9sdHN1 Z2FyLm00IHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWcvbHRzdWdhci5tNAotLS0tIHNvY2ktMy4w LjBfNC1wYWNrL2NvbmZpZy9sdHN1Z2FyLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9sdHN1Z2FyLm00CTIwMTEtMDct MDMgMTg6NDQ6MjIuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDEyMyBAQAotKyMgbHRzdWdh ci5tNCAtLSBsaWJ0b29sIG00IGJhc2UgbGF5ZXIuICAgICAgICAgICAgICAgICAgICAgICAgIC0q LUF1dG9jb25mLSotCi0rIwotKyMgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA3LCAyMDA4 IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgV3JpdHRlbiBieSBHYXJ5IFYuIFZh dWdoYW4sIDIwMDQKLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUg U29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwotKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8gY29w eSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0Ci0rIyBtb2RpZmljYXRpb25z LCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIHNlcmlhbCA2IGx0 c3VnYXIubTQKLSsKLSsjIFRoaXMgaXMgdG8gaGVscCBhY2xvY2FsIGZpbmQgdGhlc2UgbWFjcm9z LCBhcyBpdCBjYW4ndCBzZWUgbTRfZGVmaW5lLgotK0FDX0RFRlVOKFtMVFNVR0FSX1ZFUlNJT05d LCBbbTRfaWYoWzAuMV0pXSkKLSsKLSsKLSsjIGx0X2pvaW4oU0VQLCBBUkcxLCBbQVJHMi4uLl0p Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUHJvZHVjZSBBUkcxU0VQQVJH Mi4uLlNFUEFSR24sIG9taXR0aW5nIFtdIGFyZ3VtZW50cyBhbmQgdGhlaXIKLSsjIGFzc29jaWF0 ZWQgc2VwYXJhdG9yLgotKyMgTmVlZGVkIHVudGlsIHdlIGNhbiByZWx5IG9uIG00X2pvaW4gZnJv bSBBdXRvY29uZiAyLjYyLCBzaW5jZSBhbGwgZWFybGllcgotKyMgdmVyc2lvbnMgaW4gbTRzdWdh ciBoYWQgYnVncy4KLSttNF9kZWZpbmUoW2x0X2pvaW5dLAotK1ttNF9pZihbJCNdLCBbMV0sIFtd LAotKyAgICAgICBbJCNdLCBbMl0sIFtbJDJdXSwKLSsgICAgICAgW200X2lmKFskMl0sIFtdLCBb XSwgW1skMl1fXSkkMChbJDFdLCBtNF9zaGlmdChtNF9zaGlmdCgkQCkpKV0pXSkKLSttNF9kZWZp bmUoW19sdF9qb2luXSwKLStbbTRfaWYoWyQjJDJdLCBbMl0sIFtdLAotKyAgICAgICBbbTRfaWYo WyQyXSwgW10sIFtdLCBbWyQxJDJdXSkkMChbJDFdLCBtNF9zaGlmdChtNF9zaGlmdCgkQCkpKV0p XSkKLSsKLSsKLSsjIGx0X2NhcihMSVNUKQotKyMgbHRfY2RyKExJU1QpCi0rIyAtLS0tLS0tLS0t LS0KLSsjIE1hbmlwdWxhdGUgbTQgbGlzdHMuCi0rIyBUaGVzZSBtYWNyb3MgYXJlIG5lY2Vzc2Fy eSBhcyBsb25nIGFzIHdpbGwgc3RpbGwgbmVlZCB0byBzdXBwb3J0Ci0rIyBBdXRvY29uZi0yLjU5 IHdoaWNoIHF1b3RlcyBkaWZmZXJlbnRseS4KLSttNF9kZWZpbmUoW2x0X2Nhcl0sIFtbJDFdXSkK LSttNF9kZWZpbmUoW2x0X2Nkcl0sCi0rW200X2lmKFskI10sIDAsIFttNF9mYXRhbChbJDA6IGNh bm5vdCBiZSBjYWxsZWQgd2l0aG91dCBhcmd1bWVudHNdKV0sCi0rICAgICAgIFskI10sIDEsIFtd LAotKyAgICAgICBbbTRfZHF1b3RlKG00X3NoaWZ0KCRAKSldKV0pCi0rbTRfZGVmaW5lKFtsdF91 bnF1b3RlXSwgJDEpCi0rCi0rCi0rIyBsdF9hcHBlbmQoTUFDUk8tTkFNRSwgU1RSSU5HLCBbU0VQ QVJBVE9SXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KyMgUmVkZWZpbmUgTUFDUk8tTkFNRSB0byBob2xkIGl0cyBmb3JtZXIgY29udGVudCBwbHVzIGBT RVBBUkFUT1InYFNUUklORycuCi0rIyBOb3RlIHRoYXQgbmVpdGhlciBTRVBBUkFUT1Igbm9yIFNU UklORyBhcmUgZXhwYW5kZWQ7IHRoZXkgYXJlIGFwcGVuZGVkCi0rIyB0byBNQUNSTy1OQU1FIGFz IGlzIChsZWF2aW5nIHRoZSBleHBhbnNpb24gZm9yIHdoZW4gTUFDUk8tTkFNRSBpcyBpbnZva2Vk KS4KLSsjIE5vIFNFUEFSQVRPUiBpcyBvdXRwdXQgaWYgTUFDUk8tTkFNRSB3YXMgcHJldmlvdXNs eSB1bmRlZmluZWQgKGRpZmZlcmVudAotKyMgdGhhbiBkZWZpbmVkIGFuZCBlbXB0eSkuCi0rIwot KyMgVGhpcyBtYWNybyBpcyBuZWVkZWQgdW50aWwgd2UgY2FuIHJlbHkgb24gQXV0b2NvbmYgMi42 Miwgc2luY2UgZWFybGllcgotKyMgdmVyc2lvbnMgb2YgbTRzdWdhciBtaXN0YWtlbmx5IGV4cGFu ZGVkIFNFUEFSQVRPUiBidXQgbm90IFNUUklORy4KLSttNF9kZWZpbmUoW2x0X2FwcGVuZF0sCi0r W200X2RlZmluZShbJDFdLAotKwkgICBtNF9pZmRlZihbJDFdLCBbbTRfZGVmbihbJDFdKVskM11d KVskMl0pXSkKLSsKLSsKLSsKLSsjIGx0X2NvbWJpbmUoU0VQLCBQUkVGSVgtTElTVCwgSU5GSVgs IFNVRkZJWDEsIFtTVUZGSVgyLi4uXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFByb2R1Y2UgYSBTRVAgZGVsaW1pdGVk IGxpc3Qgb2YgYWxsIHBhaXJlZCBjb21iaW5hdGlvbnMgb2YgZWxlbWVudHMgb2YKLSsjIFBSRUZJ WC1MSVNUIHdpdGggU1VGRklYMSB0aHJvdWdoIFNVRkZJWG4uICBFYWNoIGVsZW1lbnQgb2YgdGhl IGxpc3QKLSsjIGhhcyB0aGUgZm9ybSBQUkVGSVhtSU5GSVhTVUZGSVhuLgotKyMgTmVlZGVkIHVu dGlsIHdlIGNhbiByZWx5IG9uIG00X2NvbWJpbmUgYWRkZWQgaW4gQXV0b2NvbmYgMi42Mi4KLStt NF9kZWZpbmUoW2x0X2NvbWJpbmVdLAotK1ttNF9pZihtNF9ldmFsKFskIyA+IDNdKSwgWzFdLAot KyAgICAgICBbbTRfcHVzaGRlZihbX0x0X3NlcF0sIFttNF9kZWZpbmUoW19MdF9zZXBdLCBtNF9k ZWZuKFtsdF9jYXJdKSldKV1dZG5sCi0rW1ttNF9mb3JlYWNoKFtfTHRfcHJlZml4XSwgWyQyXSwK LSsJICAgICBbbTRfZm9yZWFjaChbX0x0X3N1ZmZpeF0sCi0rCQldbTRfZHF1b3RlKG00X2RxdW90 ZShtNF9zaGlmdChtNF9zaGlmdChtNF9zaGlmdCgkQCkpKSkpWywKLSsJW19MdF9zZXAoWyQxXSlb XW00X2RlZm4oW19MdF9wcmVmaXhdKVskM11tNF9kZWZuKFtfTHRfc3VmZml4XSldKV0pXSldKQot KwotKwotKyMgbHRfaWZfYXBwZW5kX3VuaXEoTUFDUk8tTkFNRSwgVkFSTkFNRSwgW1NFUEFSQVRP Ul0sIFtVTklRXSwgW05PVC1VTklRXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBJZmYgTUFDUk8t TkFNRSBkb2VzIG5vdCB5ZXQgY29udGFpbiBWQVJOQU1FLCB0aGVuIGFwcGVuZCBpdCAoZGVsaW1p dGVkCi0rIyBieSBTRVBBUkFUT1IgaWYgc3VwcGxpZWQpIGFuZCBleHBhbmQgVU5JUSwgZWxzZSBO T1QtVU5JUS4KLSttNF9kZWZpbmUoW2x0X2lmX2FwcGVuZF91bmlxXSwKLStbbTRfaWZkZWYoWyQx XSwKLSsJICBbbTRfaWYobTRfaW5kZXgoWyQzXW00X2RlZm4oWyQxXSlbJDNdLCBbJDMkMiQzXSks IFstMV0sCi0rCQkgW2x0X2FwcGVuZChbJDFdLCBbJDJdLCBbJDNdKSQ0XSwKLSsJCSBbJDVdKV0s Ci0rCSAgW2x0X2FwcGVuZChbJDFdLCBbJDJdLCBbJDNdKSQ0XSldKQotKwotKwotKyMgbHRfZGlj dF9hZGQoRElDVCwgS0VZLCBWQUxVRSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ci0rbTRfZGVmaW5lKFtsdF9kaWN0X2FkZF0sCi0rW200X2RlZmluZShbJDEoJDIpXSwgWyQzXSld KQotKwotKwotKyMgbHRfZGljdF9hZGRfc3Via2V5KERJQ1QsIEtFWSwgU1VCS0VZLCBWQUxVRSkK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVm aW5lKFtsdF9kaWN0X2FkZF9zdWJrZXldLAotK1ttNF9kZWZpbmUoWyQxKCQyOiQzKV0sIFskNF0p XSkKLSsKLSsKLSsjIGx0X2RpY3RfZmV0Y2goRElDVCwgS0VZLCBbU1VCS0VZXSkKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSttNF9kZWZpbmUoW2x0X2RpY3RfZmV0Y2hd LAotK1ttNF9pZnZhbChbJDNdLAotKwltNF9pZmRlZihbJDEoJDI6JDMpXSwgW200X2RlZm4oWyQx KCQyOiQzKV0pXSksCi0rICAgIG00X2lmZGVmKFskMSgkMildLCBbbTRfZGVmbihbJDEoJDIpXSld KSldKQotKwotKwotKyMgbHRfaWZfZGljdF9mZXRjaChESUNULCBLRVksIFtTVUJLRVldLCBWQUxV RSwgSUYtVFJVRSwgW0lGLUZBTFNFXSkKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRfZGVmaW5lKFtsdF9pZl9k aWN0X2ZldGNoXSwKLStbbTRfaWYobHRfZGljdF9mZXRjaChbJDFdLCBbJDJdLCBbJDNdKSwgWyQ0 XSwKLSsJWyQ1XSwKLSsgICAgWyQ2XSldKQotKwotKwotKyMgbHRfZGljdF9maWx0ZXIoRElDVCwg W1NVQktFWV0sIFZBTFVFLCBbU0VQQVJBVE9SXSwgS0VZLCBbLi4uXSkKLSsjIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rbTRf ZGVmaW5lKFtsdF9kaWN0X2ZpbHRlcl0sCi0rW200X2lmKFskNV0sIFtdLCBbXSwKLSsgIFtsdF9q b2luKG00X3F1b3RlKG00X2RlZmF1bHQoWyQ0XSwgW1ssIF1dKSksCi0rICAgICAgICAgICBsdF91 bnF1b3RlKG00X3NwbGl0KG00X25vcm1hbGl6ZShtNF9mb3JlYWNoKF9MdF9rZXksIGx0X2Nhcihb bTRfc2hpZnRuKDQsICRAKV0pLAotKwkJICAgICAgW2x0X2lmX2RpY3RfZmV0Y2goWyQxXSwgX0x0 X2tleSwgWyQyXSwgWyQzXSwgW19MdF9rZXkgXSldKSkpKSldKVtdZG5sCi0rXSkKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9jb25maWcvbHR2ZXJzaW9uLm00IHNvY2ktMy4wLjBfdHJlcDMw MC9jb25maWcvbHR2ZXJzaW9uLm00Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svY29uZmlnL2x0dmVy c2lvbi5tNAkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWcvbHR2ZXJzaW9uLm00CTIwMTEtMDctMDMgMTg6NDQ6MjIuMDAwMDAw MDAwICswMjAwCi1AQCAtMCwwICsxLDIzIEBACi0rIyBsdHZlcnNpb24ubTQgLS0gdmVyc2lvbiBu dW1iZXJzCQkJLSotIEF1dG9jb25mIC0qLQotKyMKLSsjICAgQ29weXJpZ2h0IChDKSAyMDA0IEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotKyMgICBXcml0dGVuIGJ5IFNjb3R0IEphbWVz IFJlbW5hbnQsIDIwMDQKLSsjCi0rIyBUaGlzIGZpbGUgaXMgZnJlZSBzb2Z0d2FyZTsgdGhlIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiBnaXZlcwotKyMgdW5saW1pdGVkIHBlcm1pc3Npb24gdG8g Y29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0Ci0rIyBtb2RpZmljYXRp b25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIEBjb25maWd1 cmVfaW5wdXRACi0rCi0rIyBzZXJpYWwgMzI5MyBsdHZlcnNpb24ubTQKLSsjIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEdOVSBMaWJ0b29sCi0rCi0rbTRfZGVmaW5lKFtMVF9QQUNLQUdFX1ZFUlNJT05d LCBbMi40XSkKLSttNF9kZWZpbmUoW0xUX1BBQ0tBR0VfUkVWSVNJT05dLCBbMS4zMjkzXSkKLSsK LStBQ19ERUZVTihbTFRWRVJTSU9OX1ZFUlNJT05dLAotK1ttYWNyb192ZXJzaW9uPScyLjQnCi0r bWFjcm9fcmV2aXNpb249JzEuMzI5MycKLStfTFRfREVDTCgsIG1hY3JvX3ZlcnNpb24sIDAsIFtX aGljaCByZWxlYXNlIG9mIGxpYnRvb2wubTQgd2FzIHVzZWQ/XSkKLStfTFRfREVDTCgsIG1hY3Jv X3JldmlzaW9uLCAwKQotK10pCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlnL21p c3Npbmcgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZy9taXNzaW5nCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svY29uZmlnL21pc3NpbmcJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAK LSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvY29uZmlnL21pc3NpbmcJMjAxMS0wNy0wMyAxODo0NDoy Ny4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzc2IEBACi0rIyEgL2Jpbi9zaAotKyMgQ29t bW9uIHN0dWIgZm9yIGEgZmV3IG1pc3NpbmcgR05VIHByb2dyYW1zIHdoaWxlIGluc3RhbGxpbmcu Ci0rCi0rc2NyaXB0dmVyc2lvbj0yMDA5LTA0LTI4LjIxOyAjIFVUQwotKwotKyMgQ29weXJpZ2h0 IChDKSAxOTk2LCAxOTk3LCAxOTk5LCAyMDAwLCAyMDAyLCAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2 LAotKyMgMjAwOCwgMjAwOSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLSsjIE9yaWdp bmFsbHkgYnkgRnJhbixjb2lzIFBpbmFyZCA8cGluYXJkQGlyby51bW9udHJlYWwuY2E+LCAxOTk2 LgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmli dXRlIGl0IGFuZC9vciBtb2RpZnkKLSsjIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdl bmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Ci0rIyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyLCBvciAoYXQgeW91ciBvcHRpb24pCi0rIyBh bnkgbGF0ZXIgdmVyc2lvbi4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0 aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJ TElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdO VSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rCi0rIyBZb3Ugc2hv dWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZQotKyMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5n bnUub3JnL2xpY2Vuc2VzLz4uCi0rCi0rIyBBcyBhIHNwZWNpYWwgZXhjZXB0aW9uIHRvIHRoZSBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSwgaWYgeW91Ci0rIyBkaXN0cmlidXRlIHRoaXMgZmls ZSBhcyBwYXJ0IG9mIGEgcHJvZ3JhbSB0aGF0IGNvbnRhaW5zIGEKLSsjIGNvbmZpZ3VyYXRpb24g c2NyaXB0IGdlbmVyYXRlZCBieSBBdXRvY29uZiwgeW91IG1heSBpbmNsdWRlIGl0IHVuZGVyCi0r IyB0aGUgc2FtZSBkaXN0cmlidXRpb24gdGVybXMgdGhhdCB5b3UgdXNlIGZvciB0aGUgcmVzdCBv ZiB0aGF0IHByb2dyYW0uCi0rCi0raWYgdGVzdCAkIyAtZXEgMDsgdGhlbgotKyAgZWNobyAxPiYy ICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgotKyAgZXhpdCAxCi0rZmkK LSsKLStydW49OgotK3NlZF9vdXRwdXQ9J3MvLiogLS1vdXRwdXRbID1dXChbXiBdKlwpLiovXDEv cCcKLStzZWRfbWludXNvPSdzLy4qIC1vIFwoW14gXSpcKS4qL1wxL3AnCi0rCi0rIyBJbiB0aGUg Y2FzZXMgd2hlcmUgdGhpcyBtYXR0ZXJzLCBgbWlzc2luZycgaXMgYmVpbmcgcnVuIGluIHRoZQot KyMgc3JjZGlyIGFscmVhZHkuCi0raWYgdGVzdCAtZiBjb25maWd1cmUuYWM7IHRoZW4KLSsgIGNv bmZpZ3VyZV9hYz1jb25maWd1cmUuYWMKLStlbHNlCi0rICBjb25maWd1cmVfYWM9Y29uZmlndXJl LmluCi0rZmkKLSsKLSttc2c9Im1pc3Npbmcgb24geW91ciBzeXN0ZW0iCi0rCi0rY2FzZSAkMSBp bgotKy0tcnVuKQotKyAgIyBUcnkgdG8gcnVuIHJlcXVlc3RlZCBwcm9ncmFtLCBhbmQganVzdCBl eGl0IGlmIGl0IHN1Y2NlZWRzLgotKyAgcnVuPQotKyAgc2hpZnQKLSsgICIkQCIgJiYgZXhpdCAw Ci0rICAjIEV4aXQgY29kZSA2MyBtZWFucyB2ZXJzaW9uIG1pc21hdGNoLiAgVGhpcyBvZnRlbiBo YXBwZW5zCi0rICAjIHdoZW4gdGhlIHVzZXIgdHJ5IHRvIHVzZSBhbiBhbmNpZW50IHZlcnNpb24g b2YgYSB0b29sIG9uCi0rICAjIGEgZmlsZSB0aGF0IHJlcXVpcmVzIGEgbWluaW11bSB2ZXJzaW9u LiAgSW4gdGhpcyBjYXNlIHdlCi0rICAjIHdlIHNob3VsZCBwcm9jZWVkIGhhcyBpZiB0aGUgcHJv Z3JhbSBoYWQgYmVlbiBhYnNlbnQsIG9yCi0rICAjIGlmIC0tcnVuIGhhZG4ndCBiZWVuIHBhc3Nl ZC4KLSsgIGlmIHRlc3QgJD8gPSA2MzsgdGhlbgotKyAgICBydW49OgotKyAgICBtc2c9InByb2Jh Ymx5IHRvbyBvbGQiCi0rICBmaQotKyAgOzsKLSsKLSsgIC1ofC0taHwtLWhlfC0taGVsfC0taGVs cCkKLSsgICAgZWNobyAiXAotKyQwIFtPUFRJT05dLi4uIFBST0dSQU0gW0FSR1VNRU5UXS4uLgot KwotK0hhbmRsZSBcYFBST0dSQU0gW0FSR1VNRU5UXS4uLicgZm9yIHdoZW4gUFJPR1JBTSBpcyBt aXNzaW5nLCBvciByZXR1cm4gYW4KLStlcnJvciBzdGF0dXMgaWYgdGhlcmUgaXMgbm8ga25vd24g aGFuZGxpbmcgZm9yIFBST0dSQU0uCi0rCi0rT3B0aW9uczoKLSsgIC1oLCAtLWhlbHAgICAgICBk aXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAotKyAgLXYsIC0tdmVyc2lvbiAgIG91dHB1dCB2ZXJz aW9uIGluZm9ybWF0aW9uIGFuZCBleGl0Ci0rICAtLXJ1biAgICAgICAgICAgdHJ5IHRvIHJ1biB0 aGUgZ2l2ZW4gY29tbWFuZCwgYW5kIGVtdWxhdGUgaXQgaWYgaXQgZmFpbHMKLSsKLStTdXBwb3J0 ZWQgUFJPR1JBTSB2YWx1ZXM6Ci0rICBhY2xvY2FsICAgICAgdG91Y2ggZmlsZSBcYGFjbG9jYWwu bTQnCi0rICBhdXRvY29uZiAgICAgdG91Y2ggZmlsZSBcYGNvbmZpZ3VyZScKLSsgIGF1dG9oZWFk ZXIgICB0b3VjaCBmaWxlIFxgY29uZmlnLmguaW4nCi0rICBhdXRvbTR0ZSAgICAgdG91Y2ggdGhl IG91dHB1dCBmaWxlLCBvciBjcmVhdGUgYSBzdHViIG9uZQotKyAgYXV0b21ha2UgICAgIHRvdWNo IGFsbCBcYE1ha2VmaWxlLmluJyBmaWxlcwotKyAgYmlzb24gICAgICAgIGNyZWF0ZSBcYHkudGFi LltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2NoXQotKyAgZmxleCAgICAgICAg IGNyZWF0ZSBcYGxleC55eS5jJywgaWYgcG9zc2libGUsIGZyb20gZXhpc3RpbmcgLmMKLSsgIGhl bHAybWFuICAgICB0b3VjaCB0aGUgb3V0cHV0IGZpbGUKLSsgIGxleCAgICAgICAgICBjcmVhdGUg XGBsZXgueXkuYycsIGlmIHBvc3NpYmxlLCBmcm9tIGV4aXN0aW5nIC5jCi0rICBtYWtlaW5mbyAg ICAgdG91Y2ggdGhlIG91dHB1dCBmaWxlCi0rICB0YXIgICAgICAgICAgdHJ5IHRhciwgZ251dGFy LCBndGFyLCB0aGVuIHRhciB3aXRob3V0IG5vbi1wb3J0YWJsZSBmbGFncwotKyAgeWFjYyAgICAg ICAgIGNyZWF0ZSBcYHkudGFiLltjaF0nLCBpZiBwb3NzaWJsZSwgZnJvbSBleGlzdGluZyAuW2No XQotKwotK1ZlcnNpb24gc3VmZml4ZXMgdG8gUFJPR1JBTSBhcyB3ZWxsIGFzIHRoZSBwcmVmaXhl cyBcYGdudS0nLCBcYGdudScsIGFuZAotK1xgZycgYXJlIGlnbm9yZWQgd2hlbiBjaGVja2luZyB0 aGUgbmFtZS4KLSsKLStTZW5kIGJ1ZyByZXBvcnRzIHRvIDxidWctYXV0b21ha2VAZ251Lm9yZz4u IgotKyAgICBleGl0ICQ/Ci0rICAgIDs7Ci0rCi0rICAtdnwtLXZ8LS12ZXwtLXZlcnwtLXZlcnN8 LS12ZXJzaXwtLXZlcnNpb3wtLXZlcnNpb24pCi0rICAgIGVjaG8gIm1pc3NpbmcgJHNjcmlwdHZl cnNpb24gKEdOVSBBdXRvbWFrZSkiCi0rICAgIGV4aXQgJD8KLSsgICAgOzsKLSsKLSsgIC0qKQot KyAgICBlY2hvIDE+JjIgIiQwOiBVbmtub3duIFxgJDEnIG9wdGlvbiIKLSsgICAgZWNobyAxPiYy ICJUcnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgotKyAgICBleGl0IDEKLSsg ICAgOzsKLSsKLStlc2FjCi0rCi0rIyBub3JtYWxpemUgcHJvZ3JhbSBuYW1lIHRvIGNoZWNrIGZv ci4KLStwcm9ncmFtPWBlY2hvICIkMSIgfCBzZWQgJwotKyAgcy9eZ251LS8vOyB0Ci0rICBzL15n bnUvLzsgdAotKyAgcy9eZy8vOyB0J2AKLSsKLSsjIE5vdyBleGl0IGlmIHdlIGhhdmUgaXQsIGJ1 dCBpdCBmYWlsZWQuICBBbHNvIGV4aXQgbm93IGlmIHdlCi0rIyBkb24ndCBoYXZlIGl0IGFuZCAt LXZlcnNpb24gd2FzIHBhc3NlZCAobW9zdCBsaWtlbHkgdG8gZGV0ZWN0Ci0rIyB0aGUgcHJvZ3Jh bSkuICBUaGlzIGlzIGFib3V0IG5vbi1HTlUgcHJvZ3JhbXMsIHNvIHVzZSAkMSBub3QKLSsjICRw cm9ncmFtLgotK2Nhc2UgJDEgaW4KLSsgIGxleCp8eWFjYyopCi0rICAgICMgTm90IEdOVSBwcm9n cmFtcywgdGhleSBkb24ndCBoYXZlIC0tdmVyc2lvbi4KLSsgICAgOzsKLSsKLSsgIHRhciopCi0r ICAgIGlmIHRlc3QgLW4gIiRydW4iOyB0aGVuCi0rICAgICAgIGVjaG8gMT4mMiAiRVJST1I6IFxg dGFyJyByZXF1aXJlcyAtLXJ1biIKLSsgICAgICAgZXhpdCAxCi0rICAgIGVsaWYgdGVzdCAieCQy IiA9ICJ4LS12ZXJzaW9uIiB8fCB0ZXN0ICJ4JDIiID0gIngtLWhlbHAiOyB0aGVuCi0rICAgICAg IGV4aXQgMQotKyAgICBmaQotKyAgICA7OwotKwotKyAgKikKLSsgICAgaWYgdGVzdCAteiAiJHJ1 biIgJiYgKCQxIC0tdmVyc2lvbikgPiAvZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICAgICAjIFdl IGhhdmUgaXQsIGJ1dCBpdCBmYWlsZWQuCi0rICAgICAgIGV4aXQgMQotKyAgICBlbGlmIHRlc3Qg IngkMiIgPSAieC0tdmVyc2lvbiIgfHwgdGVzdCAieCQyIiA9ICJ4LS1oZWxwIjsgdGhlbgotKyAg ICAgICAjIENvdWxkIG5vdCBydW4gLS12ZXJzaW9uIG9yIC0taGVscC4gIFRoaXMgaXMgcHJvYmFi bHkgc29tZW9uZQotKyAgICAgICAjIHJ1bm5pbmcgYCRUT09MIC0tdmVyc2lvbicgb3IgYCRUT09M IC0taGVscCcgdG8gY2hlY2sgd2hldGhlcgotKyAgICAgICAjICRUT09MIGV4aXN0cyBhbmQgbm90 IGtub3dpbmcgJFRPT0wgdXNlcyBtaXNzaW5nLgotKyAgICAgICBleGl0IDEKLSsgICAgZmkKLSsg ICAgOzsKLStlc2FjCi0rCi0rIyBJZiBpdCBkb2VzIG5vdCBleGlzdCwgb3IgZmFpbHMgdG8gcnVu IChwb3NzaWJseSBhbiBvdXRkYXRlZCB2ZXJzaW9uKSwKLSsjIHRyeSB0byBlbXVsYXRlIGl0Lgot K2Nhc2UgJHByb2dyYW0gaW4KLSsgIGFjbG9jYWwqKQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJO SU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQgaXQgaWYKLSsgICAgICAg ICB5b3UgbW9kaWZpZWQgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlv dSBtaWdodCB3YW50Ci0rICAgICAgICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvbWFrZScgYW5kIFxg UGVybCcgcGFja2FnZXMuICBHcmFiIHRoZW0gZnJvbQotKyAgICAgICAgIGFueSBHTlUgYXJjaGl2 ZSBzaXRlLiIKLSsgICAgdG91Y2ggYWNsb2NhbC5tNAotKyAgICA7OwotKwotKyAgYXV0b2NvbmYq KQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3Vs ZCBvbmx5IG5lZWQgaXQgaWYKLSsgICAgICAgICB5b3UgbW9kaWZpZWQgXGAke2NvbmZpZ3VyZV9h Y30nLiAgWW91IG1pZ2h0IHdhbnQgdG8gaW5zdGFsbCB0aGUKLSsgICAgICAgICBcYEF1dG9jb25m JyBhbmQgXGBHTlUgbTQnIHBhY2thZ2VzLiAgR3JhYiB0aGVtIGZyb20gYW55IEdOVQotKyAgICAg ICAgIGFyY2hpdmUgc2l0ZS4iCi0rICAgIHRvdWNoIGNvbmZpZ3VyZQotKyAgICA7OwotKwotKyAg YXV0b2hlYWRlciopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cu ICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYGFj Y29uZmlnLmgnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4gIFlvdSBtaWdodCB3YW50Ci0rICAgICAg ICAgdG8gaW5zdGFsbCB0aGUgXGBBdXRvY29uZicgYW5kIFxgR05VIG00JyBwYWNrYWdlcy4gIEdy YWIgdGhlbQotKyAgICAgICAgIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotKyAgICBmaWxl cz1gc2VkIC1uICdzL15bIF0qQVtDTV1fQ09ORklHX0hFQURFUihcKFteKV0qXCkpLiovXDEvcCcg JHtjb25maWd1cmVfYWN9YAotKyAgICB0ZXN0IC16ICIkZmlsZXMiICYmIGZpbGVzPSJjb25maWcu aCIKLSsgICAgdG91Y2hfZmlsZXM9Ci0rICAgIGZvciBmIGluICRmaWxlczsgZG8KLSsgICAgICBj YXNlICRmIGluCi0rICAgICAgKjoqKSB0b3VjaF9maWxlcz0iJHRvdWNoX2ZpbGVzICJgZWNobyAi JGYiIHwKLSsJCQkJICAgICAgIHNlZCAtZSAncy9eW146XSo6Ly8nIC1lICdzLzouKi8vJ2A7Owot KyAgICAgICopIHRvdWNoX2ZpbGVzPSIkdG91Y2hfZmlsZXMgJGYuaW4iOzsKLSsgICAgICBlc2Fj Ci0rICAgIGRvbmUKLSsgICAgdG91Y2ggJHRvdWNoX2ZpbGVzCi0rICAgIDs7Ci0rCi0rICBhdXRv bWFrZSopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ug c2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBcYE1ha2VmaWxl LmFtJywgXGBhY2luY2x1ZGUubTQnIG9yIFxgJHtjb25maWd1cmVfYWN9Jy4KLSsgICAgICAgICBZ b3UgbWlnaHQgd2FudCB0byBpbnN0YWxsIHRoZSBcYEF1dG9tYWtlJyBhbmQgXGBQZXJsJyBwYWNr YWdlcy4KLSsgICAgICAgICBHcmFiIHRoZW0gZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0r ICAgIGZpbmQgLiAtdHlwZSBmIC1uYW1lIE1ha2VmaWxlLmFtIC1wcmludCB8Ci0rCSAgIHNlZCAn cy9cLmFtJC8uaW4vJyB8Ci0rCSAgIHdoaWxlIHJlYWQgZjsgZG8gdG91Y2ggIiRmIjsgZG9uZQot KyAgICA7OwotKwotKyAgYXV0b200dGUqKQotKyAgICBlY2hvIDE+JjIgIlwKLStXQVJOSU5HOiBc YCQxJyBpcyBuZWVkZWQsIGJ1dCBpcyAkbXNnLgotKyAgICAgICAgIFlvdSBtaWdodCBoYXZlIG1v ZGlmaWVkIHNvbWUgZmlsZXMgd2l0aG91dCBoYXZpbmcgdGhlCi0rICAgICAgICAgcHJvcGVyIHRv b2xzIGZvciBmdXJ0aGVyIGhhbmRsaW5nIHRoZW0uCi0rICAgICAgICAgWW91IGNhbiBnZXQgXGAk MScgYXMgcGFydCBvZiBcYEF1dG9jb25mJyBmcm9tIGFueSBHTlUKLSsgICAgICAgICBhcmNoaXZl IHNpdGUuIgotKwotKyAgICBmaWxlPWBlY2hvICIkKiIgfCBzZWQgLW4gIiRzZWRfb3V0cHV0ImAK LSsgICAgdGVzdCAteiAiJGZpbGUiICYmIGZpbGU9YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9t aW51c28iYAotKyAgICBpZiB0ZXN0IC1mICIkZmlsZSI7IHRoZW4KLSsJdG91Y2ggJGZpbGUKLSsg ICAgZWxzZQotKwl0ZXN0IC16ICIkZmlsZSIgfHwgZXhlYyA+JGZpbGUKLSsJZWNobyAiIyEgL2Jp bi9zaCIKLSsJZWNobyAiIyBDcmVhdGVkIGJ5IEdOVSBBdXRvbWFrZSBtaXNzaW5nIGFzIGEgcmVw bGFjZW1lbnQgb2YiCi0rCWVjaG8gIiMgICQgJEAiCi0rCWVjaG8gImV4aXQgMCIKLSsJY2htb2Qg K3ggJGZpbGUKLSsJZXhpdCAxCi0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICBiaXNvbip8eWFjYyop Ci0rICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnICRtc2cuICBZb3Ugc2hvdWxkIG9u bHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnknIGZpbGUuICBZb3Ug bWF5IG5lZWQgdGhlIFxgQmlzb24nIHBhY2thZ2UKLSsgICAgICAgICBpbiBvcmRlciBmb3IgdGhv c2UgbW9kaWZpY2F0aW9ucyB0byB0YWtlIGVmZmVjdC4gIFlvdSBjYW4gZ2V0Ci0rICAgICAgICAg XGBCaXNvbicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rICAgIHJtIC1mIHkudGFiLmMg eS50YWIuaAotKyAgICBpZiB0ZXN0ICQjIC1uZSAxOyB0aGVuCi0rICAgICAgICBldmFsIExBU1RB Ukc9IlwkeyQjfSIKLSsJY2FzZSAkTEFTVEFSRyBpbgotKwkqLnkpCi0rCSAgICBTUkNGSUxFPWBl Y2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MveSQvYy8nYAotKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJ TEUiOyB0aGVuCi0rCSAgICAgICAgIGNwICIkU1JDRklMRSIgeS50YWIuYwotKwkgICAgZmkKLSsJ ICAgIFNSQ0ZJTEU9YGVjaG8gIiRMQVNUQVJHIiB8IHNlZCAncy95JC9oLydgCi0rCSAgICBpZiB0 ZXN0IC1mICIkU1JDRklMRSI7IHRoZW4KLSsJICAgICAgICAgY3AgIiRTUkNGSUxFIiB5LnRhYi5o Ci0rCSAgICBmaQotKwkgIDs7Ci0rCWVzYWMKLSsgICAgZmkKLSsgICAgaWYgdGVzdCAhIC1mIHku dGFiLmg7IHRoZW4KLSsJZWNobyA+eS50YWIuaAotKyAgICBmaQotKyAgICBpZiB0ZXN0ICEgLWYg eS50YWIuYzsgdGhlbgotKwllY2hvICdtYWluKCkgeyByZXR1cm4gMDsgfScgPnkudGFiLmMKLSsg ICAgZmkKLSsgICAgOzsKLSsKLSsgIGxleCp8ZmxleCopCi0rICAgIGVjaG8gMT4mMiAiXAotK1dB Uk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9ubHkgbmVlZCBpdCBpZgotKyAgICAg ICAgIHlvdSBtb2RpZmllZCBhIFxgLmwnIGZpbGUuICBZb3UgbWF5IG5lZWQgdGhlIFxgRmxleCcg cGFja2FnZQotKyAgICAgICAgIGluIG9yZGVyIGZvciB0aG9zZSBtb2RpZmljYXRpb25zIHRvIHRh a2UgZWZmZWN0LiAgWW91IGNhbiBnZXQKLSsgICAgICAgICBcYEZsZXgnIGZyb20gYW55IEdOVSBh cmNoaXZlIHNpdGUuIgotKyAgICBybSAtZiBsZXgueXkuYwotKyAgICBpZiB0ZXN0ICQjIC1uZSAx OyB0aGVuCi0rICAgICAgICBldmFsIExBU1RBUkc9IlwkeyQjfSIKLSsJY2FzZSAkTEFTVEFSRyBp bgotKwkqLmwpCi0rCSAgICBTUkNGSUxFPWBlY2hvICIkTEFTVEFSRyIgfCBzZWQgJ3MvbCQvYy8n YAotKwkgICAgaWYgdGVzdCAtZiAiJFNSQ0ZJTEUiOyB0aGVuCi0rCSAgICAgICAgIGNwICIkU1JD RklMRSIgbGV4Lnl5LmMKLSsJICAgIGZpCi0rCSAgOzsKLSsJZXNhYwotKyAgICBmaQotKyAgICBp ZiB0ZXN0ICEgLWYgbGV4Lnl5LmM7IHRoZW4KLSsJZWNobyAnbWFpbigpIHsgcmV0dXJuIDA7IH0n ID5sZXgueXkuYwotKyAgICBmaQotKyAgICA7OwotKwotKyAgaGVscDJtYW4qKQotKyAgICBlY2hv IDE+JjIgIlwKLStXQVJOSU5HOiBcYCQxJyBpcyAkbXNnLiAgWW91IHNob3VsZCBvbmx5IG5lZWQg aXQgaWYKLSsJIHlvdSBtb2RpZmllZCBhIGRlcGVuZGVuY3kgb2YgYSBtYW51YWwgcGFnZS4gIFlv dSBtYXkgbmVlZCB0aGUKLSsJIFxgSGVscDJtYW4nIHBhY2thZ2UgaW4gb3JkZXIgZm9yIHRob3Nl IG1vZGlmaWNhdGlvbnMgdG8gdGFrZQotKwkgZWZmZWN0LiAgWW91IGNhbiBnZXQgXGBIZWxwMm1h bicgZnJvbSBhbnkgR05VIGFyY2hpdmUgc2l0ZS4iCi0rCi0rICAgIGZpbGU9YGVjaG8gIiQqIiB8 IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAotKyAgICB0ZXN0IC16ICIkZmlsZSIgJiYgZmlsZT1gZWNo byAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCi0rICAgIGlmIHRlc3QgLWYgIiRmaWxlIjsg dGhlbgotKwl0b3VjaCAkZmlsZQotKyAgICBlbHNlCi0rCXRlc3QgLXogIiRmaWxlIiB8fCBleGVj ID4kZmlsZQotKwllY2hvICIuYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhp cyBwYWdlIgotKwlleGl0ICQ/Ci0rICAgIGZpCi0rICAgIDs7Ci0rCi0rICBtYWtlaW5mbyopCi0r ICAgIGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzICRtc2cuICBZb3Ugc2hvdWxkIG9u bHkgbmVlZCBpdCBpZgotKyAgICAgICAgIHlvdSBtb2RpZmllZCBhIFxgLnRleGknIG9yIFxgLnRl eGluZm8nIGZpbGUsIG9yIGFueSBvdGhlciBmaWxlCi0rICAgICAgICAgaW5kaXJlY3RseSBhZmZl Y3RpbmcgdGhlIGFzcGVjdCBvZiB0aGUgbWFudWFsLiAgVGhlIHNwdXJpb3VzCi0rICAgICAgICAg Y2FsbCBtaWdodCBhbHNvIGJlIHRoZSBjb25zZXF1ZW5jZSBvZiB1c2luZyBhIGJ1Z2d5IFxgbWFr ZScgKEFJWCwKLSsgICAgICAgICBEVSwgSVJJWCkuICBZb3UgbWlnaHQgd2FudCB0byBpbnN0YWxs IHRoZSBcYFRleGluZm8nIHBhY2thZ2Ugb3IKLSsgICAgICAgICB0aGUgXGBHTlUgbWFrZScgcGFj a2FnZS4gIEdyYWIgZWl0aGVyIGZyb20gYW55IEdOVSBhcmNoaXZlIHNpdGUuIgotKyAgICAjIFRo ZSBmaWxlIHRvIHRvdWNoIGlzIHRoYXQgc3BlY2lmaWVkIHdpdGggLW8gLi4uCi0rICAgIGZpbGU9 YGVjaG8gIiQqIiB8IHNlZCAtbiAiJHNlZF9vdXRwdXQiYAotKyAgICB0ZXN0IC16ICIkZmlsZSIg JiYgZmlsZT1gZWNobyAiJCoiIHwgc2VkIC1uICIkc2VkX21pbnVzbyJgCi0rICAgIGlmIHRlc3Qg LXogIiRmaWxlIjsgdGhlbgotKyAgICAgICMgLi4uIG9yIGl0IGlzIHRoZSBvbmUgc3BlY2lmaWVk IHdpdGggQHNldGZpbGVuYW1lIC4uLgotKyAgICAgIGluZmlsZT1gZWNobyAiJCoiIHwgc2VkICdz Ly4qIFwoW14gXSpcKSAqJC9cMS8nYAotKyAgICAgIGZpbGU9YHNlZCAtbiAnCi0rCS9eQHNldGZp bGVuYW1lL3sKLSsJICBzLy4qIFwoW14gXSpcKSAqJC9cMS8KLSsJICBwCi0rCSAgcQotKwl9JyAk aW5maWxlYAotKyAgICAgICMgLi4uIG9yIGl0IGlzIGRlcml2ZWQgZnJvbSB0aGUgc291cmNlIG5h bWUgKGRpci9mLnRleGkgYmVjb21lcyBmLmluZm8pCi0rICAgICAgdGVzdCAteiAiJGZpbGUiICYm IGZpbGU9YGVjaG8gIiRpbmZpbGUiIHwgc2VkICdzLC4qLywsO3MsLlteLl0qJCwsJ2AuaW5mbwot KyAgICBmaQotKyAgICAjIElmIHRoZSBmaWxlIGRvZXMgbm90IGV4aXN0LCB0aGUgdXNlciByZWFs bHkgbmVlZHMgbWFrZWluZm87Ci0rICAgICMgbGV0J3MgZmFpbCB3aXRob3V0IHRvdWNoaW5nIGFu eXRoaW5nLgotKyAgICB0ZXN0IC1mICRmaWxlIHx8IGV4aXQgMQotKyAgICB0b3VjaCAkZmlsZQot KyAgICA7OwotKwotKyAgdGFyKikKLSsgICAgc2hpZnQKLSsKLSsgICAgIyBXZSBoYXZlIGFscmVh ZHkgdHJpZWQgdGFyIGluIHRoZSBnZW5lcmljIHBhcnQuCi0rICAgICMgTG9vayBmb3IgZ251dGFy L2d0YXIgYmVmb3JlIGludm9jYXRpb24gdG8gYXZvaWQgdWdseSBlcnJvcgotKyAgICAjIG1lc3Nh Z2VzLgotKyAgICBpZiAoZ251dGFyIC0tdmVyc2lvbiA+IC9kZXYvbnVsbCAyPiYxKTsgdGhlbgot KyAgICAgICBnbnV0YXIgIiRAIiAmJiBleGl0IDAKLSsgICAgZmkKLSsgICAgaWYgKGd0YXIgLS12 ZXJzaW9uID4gL2Rldi9udWxsIDI+JjEpOyB0aGVuCi0rICAgICAgIGd0YXIgIiRAIiAmJiBleGl0 IDAKLSsgICAgZmkKLSsgICAgZmlyc3Rhcmc9IiQxIgotKyAgICBpZiBzaGlmdDsgdGhlbgotKwlj YXNlICRmaXJzdGFyZyBpbgotKwkqbyopCi0rCSAgICBmaXJzdGFyZz1gZWNobyAiJGZpcnN0YXJn IiB8IHNlZCBzL28vL2AKLSsJICAgIHRhciAiJGZpcnN0YXJnIiAiJEAiICYmIGV4aXQgMAotKwkg ICAgOzsKLSsJZXNhYwotKwljYXNlICRmaXJzdGFyZyBpbgotKwkqaCopCi0rCSAgICBmaXJzdGFy Zz1gZWNobyAiJGZpcnN0YXJnIiB8IHNlZCBzL2gvL2AKLSsJICAgIHRhciAiJGZpcnN0YXJnIiAi JEAiICYmIGV4aXQgMAotKwkgICAgOzsKLSsJZXNhYwotKyAgICBmaQotKwotKyAgICBlY2hvIDE+ JjIgIlwKLStXQVJOSU5HOiBJIGNhbid0IHNlZW0gdG8gYmUgYWJsZSB0byBydW4gXGB0YXInIHdp dGggdGhlIGdpdmVuIGFyZ3VtZW50cy4KLSsgICAgICAgICBZb3UgbWF5IHdhbnQgdG8gaW5zdGFs bCBHTlUgdGFyIG9yIEZyZWUgcGF4dXRpbHMsIG9yIGNoZWNrIHRoZQotKyAgICAgICAgIGNvbW1h bmQgbGluZSBhcmd1bWVudHMuIgotKyAgICBleGl0IDEKLSsgICAgOzsKLSsKLSsgICopCi0rICAg IGVjaG8gMT4mMiAiXAotK1dBUk5JTkc6IFxgJDEnIGlzIG5lZWRlZCwgYW5kIGlzICRtc2cuCi0r ICAgICAgICAgWW91IG1pZ2h0IGhhdmUgbW9kaWZpZWQgc29tZSBmaWxlcyB3aXRob3V0IGhhdmlu ZyB0aGUKLSsgICAgICAgICBwcm9wZXIgdG9vbHMgZm9yIGZ1cnRoZXIgaGFuZGxpbmcgdGhlbS4g IENoZWNrIHRoZSBcYFJFQURNRScgZmlsZSwKLSsgICAgICAgICBpdCBvZnRlbiB0ZWxscyB5b3Ug YWJvdXQgdGhlIG5lZWRlZCBwcmVyZXF1aXNpdGVzIGZvciBpbnN0YWxsaW5nCi0rICAgICAgICAg dGhpcyBwYWNrYWdlLiAgWW91IG1heSBhbHNvIHBlZWsgYXQgYW55IEdOVSBhcmNoaXZlIHNpdGUs IGluIGNhc2UKLSsgICAgICAgICBzb21lIG90aGVyIHBhY2thZ2Ugd291bGQgY29udGFpbiB0aGlz IG1pc3NpbmcgXGAkMScgcHJvZ3JhbS4iCi0rICAgIGV4aXQgMQotKyAgICA7OwotK2VzYWMKLSsK LStleGl0IDAKLSsKLSsjIExvY2FsIHZhcmlhYmxlczoKLSsjIGV2YWw6IChhZGQtaG9vayAnd3Jp dGUtZmlsZS1ob29rcyAndGltZS1zdGFtcCkKLSsjIHRpbWUtc3RhbXAtc3RhcnQ6ICJzY3JpcHR2 ZXJzaW9uPSIKLSsjIHRpbWUtc3RhbXAtZm9ybWF0OiAiJTp5LSUwMm0tJTAyZC4lMDJIIgotKyMg dGltZS1zdGFtcC10aW1lLXpvbmU6ICJVVEMiCi0rIyB0aW1lLXN0YW1wLWVuZDogIjsgIyBVVEMi Ci0rIyBFbmQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svY29uZmlndXJlIHNvY2ktMy4w LjBfdHJlcDMwMC9jb25maWd1cmUKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9jb25maWd1cmUJMjAx MS0wNy0wMyAxODo1NTowNi40NTE4NzY4NzggKzAyMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv Y29uZmlndXJlCTIwMTEtMDctMDMgMTg6NDQ6MjYuMDAwMDAwMDAwICswMjAwCi1AQCAtMSw3MiAr MSwyMTM2NCBAQAotLSMhL2Jpbi9zaAotKyMhIC9iaW4vc2gKLSsjIEd1ZXNzIHZhbHVlcyBmb3Ig c3lzdGVtLWRlcGVuZGVudCB2YXJpYWJsZXMgYW5kIGNyZWF0ZSBNYWtlZmlsZXMuCi0rIyBHZW5l cmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjggZm9yIFNPQ0kgMy4wLjAuCi0rIwotKyMgUmVwb3J0 IGJ1Z3MgdG8gPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4uCi0rIwotKyMgQ29weXJp Z2h0IChDKSAyMDA0LTIwMTEgTWFjaWVqIFNvYmN6YWsgPG1zb2JjemFrQHVzZXJzLnNvdXJjZWZv cmdlLm5ldD4KLSsjCi0rIwotKyMgQ29weXJpZ2h0IChDKSAxOTkyLCAxOTkzLCAxOTk0LCAxOTk1 LCAxOTk2LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLAotKyMgMjAwMiwgMjAwMywgMjAwNCwgMjAw NSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSwgMjAxMCBGcmVlIFNvZnR3YXJlCi0rIyBGb3VuZGF0 aW9uLCBJbmMuCi0rIwotKyMKLSsjIFRoaXMgY29uZmlndXJlIHNjcmlwdCBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVy bWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQuCi0rIyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0gIyMKLSsjIyBNNHNoIEluaXRpYWxpemF0aW9uLiAjIwotKyMjIC0tLS0tLS0t LS0tLS0tLS0tLS0tICMjCi0gCi0taWYgWyAkIyAtZ3QgMCBdCi0rIyBCZSBtb3JlIEJvdXJuZSBj b21wYXRpYmxlCi0rRFVBTENBU0U9MTsgZXhwb3J0IERVQUxDQVNFICMgZm9yIE1LUyBzaAotK2lm IHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYgKGVtdWxhdGUgc2gpID4vZGV2L251bGwg Mj4mMTsgdGhlbiA6Ci0rICBlbXVsYXRlIHNoCi0rICBOVUxMQ01EPToKLSsgICMgUHJlLTQuMiB2 ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcgb24gJHsxKyIkQCJ9LCB3aGljaAotKyAg IyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFs aWFzIC1nICckezErIiRAIn0nPSciJEAiJwotKyAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNl Ci0rICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAgaW4gIygKLSsgICpwb3NpeCopIDoKLSsg ICAgc2V0IC1vIHBvc2l4IDs7ICMoCi0rICAqKSA6Ci0rICAgICA7OwotK2VzYWMKLStmaQotKwot KwotK2FzX25sPScKLSsnCi0rZXhwb3J0IGFzX25sCi0rIyBQcmludGluZyBhIGxvbmcgc3RyaW5n IGNyYXNoZXMgU29sYXJpcyA3IC91c3IvYmluL3ByaW50Zi4KLSthc19lY2hvPSdcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJwotK2FzX2VjaG89JGFzX2VjaG8k YXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobwotK2FzX2VjaG89JGFzX2VjaG8kYXNfZWNo byRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hvCi0rIyBQcmVmZXIgYSBrc2ggc2hlbGwg YnVpbHRpbiBvdmVyIGFuIGV4dGVybmFsIHByaW50ZiBwcm9ncmFtIG9uIFNvbGFyaXMsCi0rIyBi dXQgd2l0aG91dCB3YXN0aW5nIGZvcmtzIGZvciBiYXNoIG9yIHpzaC4KLStpZiB0ZXN0IC16ICIk QkFTSF9WRVJTSU9OJFpTSF9WRVJTSU9OIiBcCi0rICAgICYmICh0ZXN0ICJYYHByaW50IC1yIC0t ICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2L251bGw7IHRoZW4KLSsgIGFzX2VjaG89 J3ByaW50IC1yIC0tJwotKyAgYXNfZWNob19uPSdwcmludCAtcm4gLS0nCi0rZWxpZiAodGVzdCAi WGBwcmludGYgJXMgJGFzX2VjaG9gIiA9ICJYJGFzX2VjaG8iKSAyPi9kZXYvbnVsbDsgdGhlbgot KyAgYXNfZWNobz0ncHJpbnRmICVzXG4nCi0rICBhc19lY2hvX249J3ByaW50ZiAlcycKLStlbHNl Ci0rICBpZiB0ZXN0ICJYYCgvdXNyL3VjYi9lY2hvIC1uIC1uICRhc19lY2hvKSAyPi9kZXYvbnVs bGAiID0gIlgtbiAkYXNfZWNobyI7IHRoZW4KLSsgICAgYXNfZWNob19ib2R5PSdldmFsIC91c3Iv dWNiL2VjaG8gLW4gIiQxJGFzX25sIicKLSsgICAgYXNfZWNob19uPScvdXNyL3VjYi9lY2hvIC1u JwotKyAgZWxzZQotKyAgICBhc19lY2hvX2JvZHk9J2V2YWwgZXhwciAiWCQxIiA6ICJYXFwoLipc XCkiJwotKyAgICBhc19lY2hvX25fYm9keT0nZXZhbAotKyAgICAgIGFyZz0kMTsKLSsgICAgICBj YXNlICRhcmcgaW4gIygKLSsgICAgICAqIiRhc19ubCIqKQotKwlleHByICJYJGFyZyIgOiAiWFxc KC4qXFwpJGFzX25sIjsKLSsJYXJnPWBleHByICJYJGFyZyIgOiAiLiokYXNfbmxcXCguKlxcKSJg OzsKLSsgICAgICBlc2FjOwotKyAgICAgIGV4cHIgIlgkYXJnIiA6ICJYXFwoLipcXCkiIHwgdHIg LWQgIiRhc19ubCIKLSsgICAgJwotKyAgICBleHBvcnQgYXNfZWNob19uX2JvZHkKLSsgICAgYXNf ZWNob19uPSdzaCAtYyAkYXNfZWNob19uX2JvZHkgYXNfZWNobycKLSsgIGZpCi0rICBleHBvcnQg YXNfZWNob19ib2R5Ci0rICBhc19lY2hvPSdzaCAtYyAkYXNfZWNob19ib2R5IGFzX2VjaG8nCi0r ZmkKLSsKLSsjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdodC4KLStpZiB0ZXN0ICIke1BBVEhfU0VQ QVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotKyAgUEFUSF9TRVBBUkFUT1I9OgotKyAgKFBBVEg9 Jy9iaW47L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6KSA+L2Rldi9udWxsIDI+JjEgJiYgewot KyAgICAoUEFUSD0nL2JpbjovYmluJzsgRlBBVEg9JFBBVEg7IHNoIC1jIDopID4vZGV2L251bGwg Mj4mMSB8fAotKyAgICAgIFBBVEhfU0VQQVJBVE9SPSc7JwotKyAgfQotK2ZpCi0rCi0rCi0rIyBJ RlMKLSsjIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3IGxpbmUsIGluIHByZWNpc2VseSB0aGF0 IG9yZGVyLiAgUXVvdGluZyBpcwotKyMgdGhlcmUgdG8gcHJldmVudCBlZGl0b3JzIGZyb20gY29t cGxhaW5pbmcgYWJvdXQgc3BhY2UtdGFiLgotKyMgKElmIF9BU19QQVRIX1dBTEsgd2VyZSBjYWxs ZWQgd2l0aCBJRlMgdW5zZXQsIGl0IHdvdWxkIGRpc2FibGUgd29yZAotKyMgc3BsaXR0aW5nIGJ5 IHNldHRpbmcgSUZTIHRvIGVtcHR5IHZhbHVlLikKLStJRlM9IiAiIgkkYXNfbmwiCi0rCi0rIyBG aW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRoIGlmIHdlIGNvbnRhaW4gbm8gZGlyZWN0 b3J5IHNlcGFyYXRvci4KLSthc19teXNlbGY9Ci0rY2FzZSAkMCBpbiAjKCgKLSsgICpbXFwvXSog KSBhc19teXNlbGY9JDAgOzsKLSsgICopIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIHRlc3QgLXIgIiRhc19kaXIvJDAi ICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFrCi0rICBkb25lCi0rSUZTPSRhc19zYXZl X0lGUwotKwotKyAgICAgOzsKLStlc2FjCi0rIyBXZSBkaWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBt b3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBDT01NQU5EJwotKyMgaW4gd2hpY2ggY2Fz ZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBwYXRoLgotK2lmIHRlc3QgIngkYXNfbXlz ZWxmIiA9IHg7IHRoZW4KLSsgIGFzX215c2VsZj0kMAotK2ZpCi0raWYgdGVzdCAhIC1mICIkYXNf bXlzZWxmIjsgdGhlbgotKyAgJGFzX2VjaG8gIiRhc19teXNlbGY6IGVycm9yOiBjYW5ub3QgZmlu ZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUgZmlsZSBuYW1lIiA+JjIKLSsgIGV4aXQg MQotK2ZpCi0rCi0rIyBVbnNldCB2YXJpYWJsZXMgdGhhdCB3ZSBkbyBub3QgbmVlZCBhbmQgd2hp Y2ggY2F1c2UgYnVncyAoZS5nLiBpbgotKyMgcHJlLTMuMCBVV0lOIGtzaCkuICBCdXQgZG8gbm90 IGNhdXNlIGJ1Z3MgaW4gYmFzaCAyLjAxOyB0aGUgInx8IGV4aXQgMSIKLSsjIHN1cHByZXNzZXMg YW55ICJTZWdtZW50YXRpb24gZmF1bHQiIG1lc3NhZ2UgdGhlcmUuICAnKCgnIGNvdWxkCi0rIyB0 cmlnZ2VyIGEgYnVnIGluIHBka3NoIDUuMi4xNC4KLStmb3IgYXNfdmFyIGluIEJBU0hfRU5WIEVO ViBNQUlMIE1BSUxQQVRICi0rZG8gZXZhbCB0ZXN0IHhcJHskYXNfdmFyK3NldH0gPSB4c2V0IFwK LSsgICYmICggKHVuc2V0ICRhc192YXIpIHx8IGV4aXQgMSkgPi9kZXYvbnVsbCAyPiYxICYmIHVu c2V0ICRhc192YXIgfHwgOgotK2RvbmUKLStQUzE9JyQgJwotK1BTMj0nPiAnCi0rUFM0PScrICcK LSsKLSsjIE5MUyBudWlzYW5jZXMuCi0rTENfQUxMPUMKLStleHBvcnQgTENfQUxMCi0rTEFOR1VB R0U9QwotK2V4cG9ydCBMQU5HVUFHRQotKwotKyMgQ0RQQVRILgotKyh1bnNldCBDRFBBVEgpID4v ZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKLSsKLStpZiB0ZXN0ICJ4JENPTkZJR19TSEVM TCIgPSB4OyB0aGVuCi0rICBhc19ib3VybmVfY29tcGF0aWJsZT0iaWYgdGVzdCAtbiBcIlwke1pT SF9WRVJTSU9OK3NldH1cIiAmJiAoZW11bGF0ZSBzaCkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDoK LSsgIGVtdWxhdGUgc2gKLSsgIE5VTExDTUQ9OgotKyAgIyBQcmUtNC4yIHZlcnNpb25zIG9mIFpz aCBkbyB3b3JkIHNwbGl0dGluZyBvbiBcJHsxK1wiXCRAXCJ9LCB3aGljaAotKyAgIyBpcyBjb250 cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNhYmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICdc JHsxK1wiXCRAXCJ9Jz0nXCJcJEBcIicKLSsgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZWxzZQot KyAgY2FzZSBcYChzZXQgLW8pIDI+L2Rldi9udWxsXGAgaW4gIygKLSsgICpwb3NpeCopIDoKLSsg ICAgc2V0IC1vIHBvc2l4IDs7ICMoCi0rICAqKSA6Ci0rICAgICA7OwotK2VzYWMKLStmaQotKyIK LSsgIGFzX3JlcXVpcmVkPSJhc19mbl9yZXR1cm4gKCkgeyAoZXhpdCBcJDEpOyB9Ci0rYXNfZm5f c3VjY2VzcyAoKSB7IGFzX2ZuX3JldHVybiAwOyB9Ci0rYXNfZm5fZmFpbHVyZSAoKSB7IGFzX2Zu X3JldHVybiAxOyB9Ci0rYXNfZm5fcmV0X3N1Y2Nlc3MgKCkgeyByZXR1cm4gMDsgfQotK2FzX2Zu X3JldF9mYWlsdXJlICgpIHsgcmV0dXJuIDE7IH0KLSsKLStleGl0Y29kZT0wCi0rYXNfZm5fc3Vj Y2VzcyB8fCB7IGV4aXRjb2RlPTE7IGVjaG8gYXNfZm5fc3VjY2VzcyBmYWlsZWQuOyB9Ci0rYXNf Zm5fZmFpbHVyZSAmJiB7IGV4aXRjb2RlPTE7IGVjaG8gYXNfZm5fZmFpbHVyZSBzdWNjZWVkZWQu OyB9Ci0rYXNfZm5fcmV0X3N1Y2Nlc3MgfHwgeyBleGl0Y29kZT0xOyBlY2hvIGFzX2ZuX3JldF9z dWNjZXNzIGZhaWxlZC47IH0KLSthc19mbl9yZXRfZmFpbHVyZSAmJiB7IGV4aXRjb2RlPTE7IGVj aG8gYXNfZm5fcmV0X2ZhaWx1cmUgc3VjY2VlZGVkLjsgfQotK2lmICggc2V0IHg7IGFzX2ZuX3Jl dF9zdWNjZXNzIHkgJiYgdGVzdCB4ID0gXCJcJDFcIiApOyB0aGVuIDoKLSsKLStlbHNlCi0rICBl eGl0Y29kZT0xOyBlY2hvIHBvc2l0aW9uYWwgcGFyYW1ldGVycyB3ZXJlIG5vdCBzYXZlZC4KLStm aQotK3Rlc3QgeFwkZXhpdGNvZGUgPSB4MCB8fCBleGl0IDEiCi0rICBhc19zdWdnZXN0ZWQ9IiAg YXNfbGluZW5vXzE9Ijthc19zdWdnZXN0ZWQ9JGFzX3N1Z2dlc3RlZCRMSU5FTk87YXNfc3VnZ2Vz dGVkPSRhc19zdWdnZXN0ZWQiIGFzX2xpbmVub18xYT1cJExJTkVOTwotKyAgYXNfbGluZW5vXzI9 Ijthc19zdWdnZXN0ZWQ9JGFzX3N1Z2dlc3RlZCRMSU5FTk87YXNfc3VnZ2VzdGVkPSRhc19zdWdn ZXN0ZWQiIGFzX2xpbmVub18yYT1cJExJTkVOTwotKyAgZXZhbCAndGVzdCBcInhcJGFzX2xpbmVu b18xJ1wkYXNfcnVuJ1wiICE9IFwieFwkYXNfbGluZW5vXzInXCRhc19ydW4nXCIgJiYKLSsgIHRl c3QgXCJ4XGBleHByIFwkYXNfbGluZW5vXzEnXCRhc19ydW4nICsgMVxgXCIgPSBcInhcJGFzX2xp bmVub18yJ1wkYXNfcnVuJ1wiJyB8fCBleGl0IDEKLSsKLSsgIHRlc3QgLW4gXCJcJHtaU0hfVkVS U0lPTitzZXR9XCR7QkFTSF9WRVJTSU9OK3NldH1cIiB8fCAoCi0rICAgIEVDSE89J1xcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcJwotKyAgICBFQ0hPPVwkRUNIT1wkRUNIT1wkRUNI T1wkRUNIT1wkRUNITwotKyAgICBFQ0hPPVwkRUNIT1wkRUNIT1wkRUNIT1wkRUNIT1wkRUNIT1wk RUNITwotKyAgICBQQVRIPS9lbXB0eSBGUEFUSD0vZW1wdHk7IGV4cG9ydCBQQVRIIEZQQVRICi0r ICAgIHRlc3QgXCJYXGBwcmludGYgJXMgXCRFQ0hPXGBcIiA9IFwiWFwkRUNIT1wiIFxcCi0rICAg ICAgfHwgdGVzdCBcIlhcYHByaW50IC1yIC0tIFwkRUNIT1xgXCIgPSBcIlhcJEVDSE9cIiApIHx8 IGV4aXQgMQotK3Rlc3QgXCQoKCAxICsgMSApKSA9IDIgfHwgZXhpdCAxIgotKyAgaWYgKGV2YWwg IiRhc19yZXF1aXJlZCIpIDI+L2Rldi9udWxsOyB0aGVuIDoKLSsgIGFzX2hhdmVfcmVxdWlyZWQ9 eWVzCi0rZWxzZQotKyAgYXNfaGF2ZV9yZXF1aXJlZD1ubwotK2ZpCi0rICBpZiB0ZXN0IHgkYXNf aGF2ZV9yZXF1aXJlZCA9IHh5ZXMgJiYgKGV2YWwgIiRhc19zdWdnZXN0ZWQiKSAyPi9kZXYvbnVs bDsgdGhlbiA6Ci0rCi0rZWxzZQotKyAgYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS QVRPUgotK2FzX2ZvdW5kPWZhbHNlCi0rZm9yIGFzX2RpciBpbiAvYmluJFBBVEhfU0VQQVJBVE9S L3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0r ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgYXNfZm91bmQ9OgotKyAgY2FzZSAk YXNfZGlyIGluICMoCi0rCSAvKikKLSsJICAgZm9yIGFzX2Jhc2UgaW4gc2ggYmFzaCBrc2ggc2g1 OyBkbwotKwkgICAgICMgVHJ5IG9ubHkgc2hlbGxzIHRoYXQgZXhpc3QsIHRvIHNhdmUgc2V2ZXJh bCBmb3Jrcy4KLSsJICAgICBhc19zaGVsbD0kYXNfZGlyLyRhc19iYXNlCi0rCSAgICAgaWYgeyB0 ZXN0IC1mICIkYXNfc2hlbGwiIHx8IHRlc3QgLWYgIiRhc19zaGVsbC5leGUiOyB9ICYmCi0rCQkg ICAgeyAkYXNfZWNobyAiJGFzX2JvdXJuZV9jb21wYXRpYmxlIiIkYXNfcmVxdWlyZWQiIHwgYXNf cnVuPWEgIiRhc19zaGVsbCI7IH0gMj4vZGV2L251bGw7IHRoZW4gOgotKyAgQ09ORklHX1NIRUxM PSRhc19zaGVsbCBhc19oYXZlX3JlcXVpcmVkPXllcwotKwkJICAgaWYgeyAkYXNfZWNobyAiJGFz X2JvdXJuZV9jb21wYXRpYmxlIiIkYXNfc3VnZ2VzdGVkIiB8IGFzX3J1bj1hICIkYXNfc2hlbGwi OyB9IDI+L2Rldi9udWxsOyB0aGVuIDoKLSsgIGJyZWFrIDIKLStmaQotK2ZpCi0rCSAgIGRvbmU7 OwotKyAgICAgICBlc2FjCi0rICBhc19mb3VuZD1mYWxzZQotK2RvbmUKLSskYXNfZm91bmQgfHwg eyBpZiB7IHRlc3QgLWYgIiRTSEVMTCIgfHwgdGVzdCAtZiAiJFNIRUxMLmV4ZSI7IH0gJiYKLSsJ ICAgICAgeyAkYXNfZWNobyAiJGFzX2JvdXJuZV9jb21wYXRpYmxlIiIkYXNfcmVxdWlyZWQiIHwg YXNfcnVuPWEgIiRTSEVMTCI7IH0gMj4vZGV2L251bGw7IHRoZW4gOgotKyAgQ09ORklHX1NIRUxM PSRTSEVMTCBhc19oYXZlX3JlcXVpcmVkPXllcwotK2ZpOyB9Ci0rSUZTPSRhc19zYXZlX0lGUwot KwotKwotKyAgICAgIGlmIHRlc3QgIngkQ09ORklHX1NIRUxMIiAhPSB4OyB0aGVuIDoKLSsgICMg V2UgY2Fubm90IHlldCBhc3N1bWUgYSBkZWNlbnQgc2hlbGwsIHNvIHdlIGhhdmUgdG8gcHJvdmlk ZSBhCi0rCSMgbmV1dHJhbGl6YXRpb24gdmFsdWUgZm9yIHNoZWxscyB3aXRob3V0IHVuc2V0OyBh bmQgdGhpcyBhbHNvCi0rCSMgd29ya3MgYXJvdW5kIHNoZWxscyB0aGF0IGNhbm5vdCB1bnNldCBu b25leGlzdGVudCB2YXJpYWJsZXMuCi0rCSMgUHJlc2VydmUgLXYgYW5kIC14IHRvIHRoZSByZXBs YWNlbWVudCBzaGVsbC4KLSsJQkFTSF9FTlY9L2Rldi9udWxsCi0rCUVOVj0vZGV2L251bGwKLSsJ KHVuc2V0IEJBU0hfRU5WKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQkFTSF9FTlYgRU5WCi0r CWV4cG9ydCBDT05GSUdfU0hFTEwKLSsJY2FzZSAkLSBpbiAjICgoKCgKLSsJICAqdip4KiB8ICp4 KnYqICkgYXNfb3B0cz0tdnggOzsKLSsJICAqdiogKSBhc19vcHRzPS12IDs7Ci0rCSAgKngqICkg YXNfb3B0cz0teCA7OwotKwkgICogKSBhc19vcHRzPSA7OwotKwllc2FjCi0rCWV4ZWMgIiRDT05G SUdfU0hFTEwiICRhc19vcHRzICIkYXNfbXlzZWxmIiAkezErIiRAIn0KLStmaQotKwotKyAgICBp ZiB0ZXN0IHgkYXNfaGF2ZV9yZXF1aXJlZCA9IHhubzsgdGhlbiA6Ci0rICAkYXNfZWNobyAiJDA6 IFRoaXMgc2NyaXB0IHJlcXVpcmVzIGEgc2hlbGwgbW9yZSBtb2Rlcm4gdGhhbiBhbGwiCi0rICAk YXNfZWNobyAiJDA6IHRoZSBzaGVsbHMgdGhhdCBJIGZvdW5kIG9uIHlvdXIgc3lzdGVtLiIKLSsg IGlmIHRlc3QgeCR7WlNIX1ZFUlNJT04rc2V0fSA9IHhzZXQgOyB0aGVuCi0rICAgICRhc19lY2hv ICIkMDogSW4gcGFydGljdWxhciwgenNoICRaU0hfVkVSU0lPTiBoYXMgYnVncyBhbmQgc2hvdWxk IgotKyAgICAkYXNfZWNobyAiJDA6IGJlIHVwZ3JhZGVkIHRvIHpzaCA0LjMuNCBvciBsYXRlci4i Ci0rICBlbHNlCi0rICAgICRhc19lY2hvICIkMDogUGxlYXNlIHRlbGwgYnVnLWF1dG9jb25mQGdu dS5vcmcgYW5kCi0rJDA6IG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldCBhYm91dCB5b3Vy IHN5c3RlbSwKLSskMDogaW5jbHVkaW5nIGFueSBlcnJvciBwb3NzaWJseSBvdXRwdXQgYmVmb3Jl IHRoaXMKLSskMDogbWVzc2FnZS4gVGhlbiBpbnN0YWxsIGEgbW9kZXJuIHNoZWxsLCBvciBtYW51 YWxseSBydW4KLSskMDogdGhlIHNjcmlwdCB1bmRlciBzdWNoIGEgc2hlbGwgaWYgeW91IGRvIGhh dmUgb25lLiIKLSsgIGZpCi0rICBleGl0IDEKLStmaQotK2ZpCi0rZmkKLStTSEVMTD0ke0NPTkZJ R19TSEVMTC0vYmluL3NofQotK2V4cG9ydCBTSEVMTAotKyMgVW5zZXQgbW9yZSB2YXJpYWJsZXMg a25vd24gdG8gaW50ZXJmZXJlIHdpdGggYmVoYXZpb3Igb2YgY29tbW9uIHRvb2xzLgotK0NMSUNP TE9SX0ZPUkNFPSBHUkVQX09QVElPTlM9Ci0rdW5zZXQgQ0xJQ09MT1JfRk9SQ0UgR1JFUF9PUFRJ T05TCi0rCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgTTRzaCBTaGVsbCBGdW5j dGlvbnMuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyBhc19mbl91bnNldCBW QVIKLSsjIC0tLS0tLS0tLS0tLS0tLQotKyMgUG9ydGFibHkgdW5zZXQgVkFSLgotK2FzX2ZuX3Vu c2V0ICgpCi0rewotKyAgeyBldmFsICQxPTsgdW5zZXQgJDE7fQotK30KLSthc191bnNldD1hc19m bl91bnNldAotKwotKyMgYXNfZm5fc2V0X3N0YXR1cyBTVEFUVVMKLSsjIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBTZXQgJD8gdG8gU1RBVFVTLCB3aXRob3V0IGZvcmtpbmcuCi0rYXNfZm5f c2V0X3N0YXR1cyAoKQotK3sKLSsgIHJldHVybiAkMQotK30gIyBhc19mbl9zZXRfc3RhdHVzCi0r Ci0rIyBhc19mbl9leGl0IFNUQVRVUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEV4aXQgdGhl IHNoZWxsIHdpdGggU1RBVFVTLCBldmVuIGluIGEgInRyYXAgMCIgb3IgInNldCAtZSIgY29udGV4 dC4KLSthc19mbl9leGl0ICgpCi0rewotKyAgc2V0ICtlCi0rICBhc19mbl9zZXRfc3RhdHVzICQx Ci0rICBleGl0ICQxCi0rfSAjIGFzX2ZuX2V4aXQKLSsKLSsjIGFzX2ZuX21rZGlyX3AKLSsjIC0t LS0tLS0tLS0tLS0KLSsjIENyZWF0ZSAiJGFzX2RpciIgYXMgYSBkaXJlY3RvcnksIGluY2x1ZGlu ZyBwYXJlbnRzIGlmIG5lY2Vzc2FyeS4KLSthc19mbl9ta2Rpcl9wICgpCi0rewotKwotKyAgY2Fz ZSAkYXNfZGlyIGluICMoCi0rICAtKikgYXNfZGlyPS4vJGFzX2Rpcjs7Ci0rICBlc2FjCi0rICB0 ZXN0IC1kICIkYXNfZGlyIiB8fCBldmFsICRhc19ta2Rpcl9wIHx8IHsKLSsgICAgYXNfZGlycz0K LSsgICAgd2hpbGUgOjsgZG8KLSsgICAgICBjYXNlICRhc19kaXIgaW4gIygKLSsgICAgICAqXCcq KSBhc19xZGlyPWAkYXNfZWNobyAiJGFzX2RpciIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImA7 OyAjJygKLSsgICAgICAqKSBhc19xZGlyPSRhc19kaXI7OwotKyAgICAgIGVzYWMKLSsgICAgICBh c19kaXJzPSInJGFzX3FkaXInICRhc19kaXJzIgotKyAgICAgIGFzX2Rpcj1gJGFzX2Rpcm5hbWUg LS0gIiRhc19kaXIiIHx8Ci0rJGFzX2V4cHIgWCIkYXNfZGlyIiA6ICdYXCguKlteL11cKS8vKlte L11bXi9dKi8qJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvL1wpW14vXScgXHwgXAotKwkg WCIkYXNfZGlyIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYXNfZGlyIiA6ICdYXCgvXCknIFx8 IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19kaXIiIHwKLSsgICAgc2VkICcvXlhc KC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkg IH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9 Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAv XlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsg cSdgCi0rICAgICAgdGVzdCAtZCAiJGFzX2RpciIgJiYgYnJlYWsKLSsgICAgZG9uZQotKyAgICB0 ZXN0IC16ICIkYXNfZGlycyIgfHwgZXZhbCAibWtkaXIgJGFzX2RpcnMiCi0rICB9IHx8IHRlc3Qg LWQgIiRhc19kaXIiIHx8IGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgY3JlYXRlIGRpcmVjdG9yeSAk YXNfZGlyIgotKwotKwotK30gIyBhc19mbl9ta2Rpcl9wCi0rIyBhc19mbl9hcHBlbmQgVkFSIFZB TFVFCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBBcHBlbmQgdGhlIHRleHQgaW4gVkFM VUUgdG8gdGhlIGVuZCBvZiB0aGUgZGVmaW5pdGlvbiBjb250YWluZWQgaW4gVkFSLiBUYWtlCi0r IyBhZHZhbnRhZ2Ugb2YgYW55IHNoZWxsIG9wdGltaXphdGlvbnMgdGhhdCBhbGxvdyBhbW9ydGl6 ZWQgbGluZWFyIGdyb3d0aCBvdmVyCi0rIyByZXBlYXRlZCBhcHBlbmRzLCBpbnN0ZWFkIG9mIHRo ZSB0eXBpY2FsIHF1YWRyYXRpYyBncm93dGggcHJlc2VudCBpbiBuYWl2ZQotKyMgaW1wbGVtZW50 YXRpb25zLgotK2lmIChldmFsICJhc192YXI9MTsgYXNfdmFyKz0yOyB0ZXN0IHhcJGFzX3ZhciA9 IHgxMiIpIDI+L2Rldi9udWxsOyB0aGVuIDoKLSsgIGV2YWwgJ2FzX2ZuX2FwcGVuZCAoKQotKyAg ewotKyAgICBldmFsICQxKz1cJDIKLSsgIH0nCi0rZWxzZQotKyAgYXNfZm5fYXBwZW5kICgpCi0r ICB7Ci0rICAgIGV2YWwgJDE9XCQkMVwkMgotKyAgfQotK2ZpICMgYXNfZm5fYXBwZW5kCi0rCi0r IyBhc19mbl9hcml0aCBBUkcuLi4KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLQotKyMgUGVyZm9ybSBh cml0aG1ldGljIGV2YWx1YXRpb24gb24gdGhlIEFSR3MsIGFuZCBzdG9yZSB0aGUgcmVzdWx0IGlu IHRoZQotKyMgZ2xvYmFsICRhc192YWwuIFRha2UgYWR2YW50YWdlIG9mIHNoZWxscyB0aGF0IGNh biBhdm9pZCBmb3Jrcy4gVGhlIGFyZ3VtZW50cwotKyMgbXVzdCBiZSBwb3J0YWJsZSBhY3Jvc3Mg JCgoKSkgYW5kIGV4cHIuCi0raWYgKGV2YWwgInRlc3QgXCQoKCAxICsgMSApKSA9IDIiKSAyPi9k ZXYvbnVsbDsgdGhlbiA6Ci0rICBldmFsICdhc19mbl9hcml0aCAoKQotKyAgewotKyAgICBhc192 YWw9JCgoICQqICkpCi0rICB9JwotK2Vsc2UKLSsgIGFzX2ZuX2FyaXRoICgpCi0rICB7Ci0rICAg IGFzX3ZhbD1gZXhwciAiJEAiIHx8IHRlc3QgJD8gLWVxIDFgCi0rICB9Ci0rZmkgIyBhc19mbl9h cml0aAotKwotKwotKyMgYXNfZm5fZXJyb3IgU1RBVFVTIEVSUk9SIFtMSU5FTk8gTE9HX0ZEXQot KyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgT3V0cHV0ICJg YmFzZW5hbWUgJDBgOiBlcnJvcjogRVJST1IiIHRvIHN0ZGVyci4gSWYgTElORU5PIGFuZCBMT0df RkQgYXJlCi0rIyBwcm92aWRlZCwgYWxzbyBvdXRwdXQgdGhlIGVycm9yIHRvIExPR19GRCwgcmVm ZXJlbmNpbmcgTElORU5PLiBUaGVuIGV4aXQgdGhlCi0rIyBzY3JpcHQgd2l0aCBTVEFUVVMsIHVz aW5nIDEgaWYgdGhhdCB3YXMgMC4KLSthc19mbl9lcnJvciAoKQotK3sKLSsgIGFzX3N0YXR1cz0k MTsgdGVzdCAkYXNfc3RhdHVzIC1lcSAwICYmIGFzX3N0YXR1cz0xCi0rICBpZiB0ZXN0ICIkNCI7 IHRoZW4KLSsgICAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMyJ9IGFzX2xpbmVub19zdGFjaz1h c19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjawotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogJDIiID4mJDQKLSsgIGZpCi0rICAkYXNfZWNobyAi JGFzX21lOiBlcnJvcjogJDIiID4mMgotKyAgYXNfZm5fZXhpdCAkYXNfc3RhdHVzCi0rfSAjIGFz X2ZuX2Vycm9yCi0rCi0raWYgZXhwciBhIDogJ1woYVwpJyA+L2Rldi9udWxsIDI+JjEgJiYKLSsg ICB0ZXN0ICJYYGV4cHIgMDAwMDEgOiAnLipcKC4uLlwpJ2AiID0gWDAwMTsgdGhlbgotKyAgYXNf ZXhwcj1leHByCi0rZWxzZQotKyAgYXNfZXhwcj1mYWxzZQotK2ZpCi0rCi0raWYgKGJhc2VuYW1l IC0tIC8pID4vZGV2L251bGwgMj4mMSAmJiB0ZXN0ICJYYGJhc2VuYW1lIC0tIC8gMj4mMWAiID0g IlgvIjsgdGhlbgotKyAgYXNfYmFzZW5hbWU9YmFzZW5hbWUKLStlbHNlCi0rICBhc19iYXNlbmFt ZT1mYWxzZQotK2ZpCi0rCi0raWYgKGFzX2Rpcj1gZGlybmFtZSAtLSAvYCAmJiB0ZXN0ICJYJGFz X2RpciIgPSBYLykgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICBhc19kaXJuYW1lPWRpcm5hbWUK LStlbHNlCi0rICBhc19kaXJuYW1lPWZhbHNlCi0rZmkKLSsKLSthc19tZT1gJGFzX2Jhc2VuYW1l IC0tICIkMCIgfHwKLSskYXNfZXhwciBYLyIkMCIgOiAnLiovXChbXi9dW14vXSpcKS8qJCcgXHwg XAotKwkgWCIkMCIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJDAiIDogJ1hcKC9cKScgXHwgLiAy Pi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgvIiQwIiB8Ci0rICAgIHNlZCAnL14uKlwvXChbXi9d W14vXSpcKVwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkgIC9eWFwvXChc L1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcL1woXC9cKS4q L3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4qLy4vOyBxJ2AKLSsKLSsj IEF2b2lkIGRlcGVuZGluZyB1cG9uIENoYXJhY3RlciBSYW5nZXMuCi0rYXNfY3JfbGV0dGVycz0n YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXonCi0rYXNfY3JfTEVUVEVSUz0nQUJDREVGR0hJSktM TU5PUFFSU1RVVldYWVonCi0rYXNfY3JfTGV0dGVycz0kYXNfY3JfbGV0dGVycyRhc19jcl9MRVRU RVJTCi0rYXNfY3JfZGlnaXRzPScwMTIzNDU2Nzg5JwotK2FzX2NyX2FsbnVtPSRhc19jcl9MZXR0 ZXJzJGFzX2NyX2RpZ2l0cwotKwotKwotKyAgYXNfbGluZW5vXzE9JExJTkVOTyBhc19saW5lbm9f MWE9JExJTkVOTwotKyAgYXNfbGluZW5vXzI9JExJTkVOTyBhc19saW5lbm9fMmE9JExJTkVOTwot KyAgZXZhbCAndGVzdCAieCRhc19saW5lbm9fMSckYXNfcnVuJyIgIT0gIngkYXNfbGluZW5vXzIn JGFzX3J1biciICYmCi0rICB0ZXN0ICJ4YGV4cHIgJGFzX2xpbmVub18xJyRhc19ydW4nICsgMWAi ID0gIngkYXNfbGluZW5vXzInJGFzX3J1biciJyB8fCB7Ci0rICAjIEJsYW1lIExlZSBFLiBNY01h aG9uICgxOTMxLTE5ODkpIGZvciBzZWQncyBzeW50YXguICA6LSkKLSsgIHNlZCAtbiAnCi0rICAg IHAKLSsgICAgL1skXUxJTkVOTy89Ci0rICAnIDwkYXNfbXlzZWxmIHwKLSsgICAgc2VkICcKLSsg ICAgICBzL1skXUxJTkVOTy4qLyYtLwotKyAgICAgIHQgbGluZW5vCi0rICAgICAgYgotKyAgICAg IDpsaW5lbm8KLSsgICAgICBOCi0rICAgICAgOmxvb3AKLSsgICAgICBzL1skXUxJTkVOT1woW14n JGFzX2NyX2FsbnVtJ19dLipcblwpXCguKlwpL1wyXDFcMi8KLSsgICAgICB0IGxvb3AKLSsgICAg ICBzLy1cbi4qLy8KLSsgICAgJyA+JGFzX21lLmxpbmVubyAmJgotKyAgY2htb2QgK3ggIiRhc19t ZS5saW5lbm8iIHx8Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGNhbm5vdCBjcmVh dGUgJGFzX21lLmxpbmVubzsgcmVydW4gd2l0aCBhIFBPU0lYIHNoZWxsIiA+JjI7IGFzX2ZuX2V4 aXQgMTsgfQotKwotKyAgIyBEb24ndCB0cnkgdG8gZXhlYyBhcyBpdCBjaGFuZ2VzICRbMF0sIGNh dXNpbmcgYWxsIHNvcnQgb2YgcHJvYmxlbXMKLSsgICMgKHRoZSBkaXJuYW1lIG9mICRbMF0gaXMg bm90IHRoZSBwbGFjZSB3aGVyZSB3ZSBtaWdodCBmaW5kIHRoZQotKyAgIyBvcmlnaW5hbCBhbmQg c28gb24uICBBdXRvY29uZiBpcyBlc3BlY2lhbGx5IHNlbnNpdGl2ZSB0byB0aGlzKS4KLSsgIC4g Ii4vJGFzX21lLmxpbmVubyIKLSsgICMgRXhpdCBzdGF0dXMgaXMgdGhhdCBvZiB0aGUgbGFzdCBj b21tYW5kLgotKyAgZXhpdAotK30KLSsKLStFQ0hPX0M9IEVDSE9fTj0gRUNIT19UPQotK2Nhc2Ug YGVjaG8gLW4geGAgaW4gIygoKCgoCi0rLW4qKQotKyAgY2FzZSBgZWNobyAneHlcYydgIGluCi0r ICAqYyopIEVDSE9fVD0nCSc7OwkjIEVDSE9fVCBpcyBzaW5nbGUgdGFiIGNoYXJhY3Rlci4KLSsg IHh5KSAgRUNIT19DPSdcYyc7OwotKyAgKikgICBlY2hvIGBlY2hvIGtzaDg4IGJ1ZyBvbiBBSVgg Ni4xYCA+IC9kZXYvbnVsbAotKyAgICAgICBFQ0hPX1Q9JwknOzsKLSsgIGVzYWM7OwotKyopCi0r ICBFQ0hPX049Jy1uJzs7Ci0rZXNhYwotKwotK3JtIC1mIGNvbmYkJCBjb25mJCQuZXhlIGNvbmYk JC5maWxlCi0raWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0aGVuCi0rICBybSAtZiBjb25mJCQuZGly L2NvbmYkJC5maWxlCi0rZWxzZQotKyAgcm0gLWYgY29uZiQkLmRpcgotKyAgbWtkaXIgY29uZiQk LmRpciAyPi9kZXYvbnVsbAotK2ZpCi0raWYgKGVjaG8gPmNvbmYkJC5maWxlKSAyPi9kZXYvbnVs bDsgdGhlbgotKyAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+L2Rldi9udWxsOyB0aGVu Ci0rICAgIGFzX2xuX3M9J2xuIC1zJwotKyAgICAjIC4uLiBidXQgdGhlcmUgYXJlIHR3byBnb3Rj aGFzOgotKyAgICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1zIGZpbGUgZGlyJyBhbmQgYGxuIGZp bGUgZGlyJyBmYWlsLgotKyAgICAjIDIpIERKR1BQIDwgMi4wNCBoYXMgbm8gc3ltbGlua3M7IGBs biAtcycgY3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJsZS4KLSsgICAgIyBJbiBib3RoIGNhc2Vz LCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KLSsgICAgbG4gLXMgY29uZiQkLmZpbGUg Y29uZiQkLmRpciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYgY29uZiQkLmV4ZSB8fAotKyAgICAg IGFzX2xuX3M9J2NwIC1wJwotKyAgZWxpZiBsbiBjb25mJCQuZmlsZSBjb25mJCQgMj4vZGV2L251 bGw7IHRoZW4KLSsgICAgYXNfbG5fcz1sbgotKyAgZWxzZQotKyAgICBhc19sbl9zPSdjcCAtcCcK LSsgIGZpCi0rZWxzZQotKyAgYXNfbG5fcz0nY3AgLXAnCi0rZmkKLStybSAtZiBjb25mJCQgY29u ZiQkLmV4ZSBjb25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYkJC5maWxlCi0rcm1kaXIgY29uZiQk LmRpciAyPi9kZXYvbnVsbAotKwotK2lmIG1rZGlyIC1wIC4gMj4vZGV2L251bGw7IHRoZW4KLSsg IGFzX21rZGlyX3A9J21rZGlyIC1wICIkYXNfZGlyIicKLStlbHNlCi0rICB0ZXN0IC1kIC4vLXAg JiYgcm1kaXIgLi8tcAotKyAgYXNfbWtkaXJfcD1mYWxzZQotK2ZpCi0rCi0raWYgdGVzdCAteCAv ID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgYXNfdGVzdF94PSd0ZXN0IC14JwotK2Vsc2UKLSsg IGlmIGxzIC1kTCAvID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAgICBhc19sc19MX29wdGlvbj1M Ci0rICBlbHNlCi0rICAgIGFzX2xzX0xfb3B0aW9uPQotKyAgZmkKLSsgIGFzX3Rlc3RfeD0nCi0r ICAgIGV2YWwgc2ggLWMgJ1wnJwotKyAgICAgIGlmIHRlc3QgLWQgIiQxIjsgdGhlbgotKwl0ZXN0 IC1kICIkMS8uIjsKLSsgICAgICBlbHNlCi0rCWNhc2UgJDEgaW4gIygKLSsJLSopc2V0ICIuLyQx Ijs7Ci0rCWVzYWM7Ci0rCWNhc2UgYGxzIC1sZCckYXNfbHNfTF9vcHRpb24nICIkMSIgMj4vZGV2 L251bGxgIGluICMoKAotKwk/Pz9bc3hdKik6OzsqKWZhbHNlOztlc2FjO2ZpCi0rICAgICdcJycg c2gKLSsgICcKLStmaQotK2FzX2V4ZWN1dGFibGVfcD0kYXNfdGVzdF94Ci0rCi0rIyBTZWQgZXhw cmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250byBhIHZhbGlkIENQUCBuYW1lLgotK2FzX3RyX2Nw cD0iZXZhbCBzZWQgJ3klKiRhc19jcl9sZXR0ZXJzJVAkYXNfY3JfTEVUVEVSUyU7cyVbXl8kYXNf Y3JfYWxudW1dJV8lZyciCi0rCi0rIyBTZWQgZXhwcmVzc2lvbiB0byBtYXAgYSBzdHJpbmcgb250 byBhIHZhbGlkIHZhcmlhYmxlIG5hbWUuCi0rYXNfdHJfc2g9ImV2YWwgc2VkICd5JSorJXBwJTtz JVteXyRhc19jcl9hbG51bV0lXyVnJyIKLSsKLStTSEVMTD0ke0NPTkZJR19TSEVMTC0vYmluL3No fQotKwotKwotK3Rlc3QgLW4gIiRESkRJUiIgfHwgZXhlYyA3PCYwIDwvZGV2L251bGwKLStleGVj IDY+JjEKLSsKLSsjIE5hbWUgb2YgdGhlIGhvc3QuCi0rIyBob3N0bmFtZSBvbiBzb21lIHN5c3Rl bXMgKFNWUjMuMiwgb2xkIEdOVS9MaW51eCkgcmV0dXJucyBhIGJvZ3VzIGV4aXQgc3RhdHVzLAot KyMgc28gdW5hbWUgZ2V0cyBydW4gdG9vLgotK2FjX2hvc3RuYW1lPWAoaG9zdG5hbWUgfHwgdW5h bWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAotKwotKyMKLSsjIEluaXRpYWxpemF0aW9ucy4K LSsjCi0rYWNfZGVmYXVsdF9wcmVmaXg9L3Vzci9sb2NhbAotK2FjX2NsZWFuX2ZpbGVzPQotK2Fj X2NvbmZpZ19saWJvYmpfZGlyPS4KLStMSUJPQkpTPQotK2Nyb3NzX2NvbXBpbGluZz1ubwotK3N1 YmRpcnM9Ci0rTUZMQUdTPQotK01BS0VGTEFHUz0KLSsKLSsjIElkZW50aXR5IG9mIHRoaXMgcGFj a2FnZS4KLStQQUNLQUdFX05BTUU9J1NPQ0knCi0rUEFDS0FHRV9UQVJOQU1FPSdzb2NpJwotK1BB Q0tBR0VfVkVSU0lPTj0nMy4wLjAnCi0rUEFDS0FHRV9TVFJJTkc9J1NPQ0kgMy4wLjAnCi0rUEFD S0FHRV9CVUdSRVBPUlQ9J21zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldCcKLStQQUNLQUdF X1VSTD0nJwotKwotK2FjX3VuaXF1ZV9maWxlPSJzb2NpL2NvcmUvZXJyb3IuY3BwIgotKyMgRmFj dG9yaW5nIGRlZmF1bHQgaGVhZGVycyBmb3IgbW9zdCB0ZXN0cy4KLSthY19pbmNsdWRlc19kZWZh dWx0PSJcCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rI2lmZGVmIEhBVkVfU1lTX1RZUEVTX0gKLSsj IGluY2x1ZGUgPHN5cy90eXBlcy5oPgotKyNlbmRpZgotKyNpZmRlZiBIQVZFX1NZU19TVEFUX0gK LSsjIGluY2x1ZGUgPHN5cy9zdGF0Lmg+Ci0rI2VuZGlmCi0rI2lmZGVmIFNURENfSEVBREVSUwot KyMgaW5jbHVkZSA8c3RkbGliLmg+Ci0rIyBpbmNsdWRlIDxzdGRkZWYuaD4KLSsjZWxzZQotKyMg aWZkZWYgSEFWRV9TVERMSUJfSAotKyMgIGluY2x1ZGUgPHN0ZGxpYi5oPgotKyMgZW5kaWYKLSsj ZW5kaWYKLSsjaWZkZWYgSEFWRV9TVFJJTkdfSAotKyMgaWYgIWRlZmluZWQgU1REQ19IRUFERVJT ICYmIGRlZmluZWQgSEFWRV9NRU1PUllfSAotKyMgIGluY2x1ZGUgPG1lbW9yeS5oPgotKyMgZW5k aWYKLSsjIGluY2x1ZGUgPHN0cmluZy5oPgotKyNlbmRpZgotKyNpZmRlZiBIQVZFX1NUUklOR1Nf SAotKyMgaW5jbHVkZSA8c3RyaW5ncy5oPgotKyNlbmRpZgotKyNpZmRlZiBIQVZFX0lOVFRZUEVT X0gKLSsjIGluY2x1ZGUgPGludHR5cGVzLmg+Ci0rI2VuZGlmCi0rI2lmZGVmIEhBVkVfU1RESU5U X0gKLSsjIGluY2x1ZGUgPHN0ZGludC5oPgotKyNlbmRpZgotKyNpZmRlZiBIQVZFX1VOSVNURF9I Ci0rIyBpbmNsdWRlIDx1bmlzdGQuaD4KLSsjZW5kaWYiCi0rCi0rYWNfc3Vic3RfdmFycz0nYW1f X0VYRUVYVF9GQUxTRQotK2FtX19FWEVFWFRfVFJVRQotK0xUTElCT0JKUwotK0xJQk9CSlMKLStS VU5fVEVTVFNfRkFMU0UKLStSVU5fVEVTVFNfVFJVRQotK3NlZF9vawotK2RpZmZfb2sKLStIVE1M X0RPQ19GQUxTRQotK0hUTUxfRE9DX1RSVUUKLStQRVJMCi0rZ3Nfb2sKLStkdmlwc19vawotK2xh dGV4X29rCi0rZG94eWdlbl9vawotK0lORk9fRE9DX0ZBTFNFCi0rSU5GT19ET0NfVFJVRQotK1BP U1RHUkVTUUxfRElSUwotK0hBVkVfUE9TVEdSRVNRTF9GQUxTRQotK0hBVkVfUE9TVEdSRVNRTF9U UlVFCi0rUE9TVEdSRVNRTF9MREZMQUdTCi0rUE9TVEdSRVNRTF9DRkxBR1MKLStQT1NUR1JFU1FM X1ZFUlNJT04KLStQR19DT05GSUcKLStPUkFDTEVfRElSUwotK0hBVkVfT1JBQ0xFX0ZBTFNFCi0r SEFWRV9PUkFDTEVfVFJVRQotK09SQUNMRV9PQ0lfTERGTEFHUwotK09SQUNMRV9PQ0lfQ0ZMQUdT Ci0rT1JBQ0xFX09DSV9WRVJTSU9OCi0rTVlTUUxfRElSUwotK0hBVkVfTVlTUUxfRkFMU0UKLStI QVZFX01ZU1FMX1RSVUUKLStNWVNRTF9DX0xJQgotK01ZU1FMX0xJQlMKLStNWVNRTF9DRkxBR1MK LStNWVNRTF9WRVJTSU9OCi0rQk9PU1RfVkVSU0lPTgotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdP UktfTElCCi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIKLStCT09TVF9NUElfTElCCi0rQk9PU1RfUFlU SE9OX0xJQgotK0JPT1NUX0FTSU9fTElCCi0rQk9PU1RfUkVHRVhfTElCCi0rQk9PU1RfREFURV9U SU1FX0xJQgotK0JPT1NUX1NJR05BTFNfTElCCi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCCi0r Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUIKLStCT09TVF9JT1NUUkVBTVNfTElCCi0rQk9PU1RfVEhS RUFEX0xJQgotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIKLStCT09TVF9TWVNURU1fTElCCi0r Qk9PU1RfRklMRVNZU1RFTV9MSUIKLStCT09TVF9MSUJTCi0rQk9PU1RfQ0ZMQUdTCi0rU09DSV9Q T1NUR1JFU1FMX0hFQURFUlNfQlVSSUVECi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE X0ZBTFNFCi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEX1RSVUUKLStTT0NJX01ZU1FM X0hFQURFUlNfQlVSSUVECi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRQotK1NPQ0lf TVlTUUxfSEVBREVSU19CVVJJRURfVFJVRQotK1NPQ0lfSEVBREVSU19CVVJJRUQKLStTT0NJX0hF QURFUlNfQlVSSUVEX0ZBTFNFCi0rU09DSV9IRUFERVJTX0JVUklFRF9UUlVFCi0rQ1BQCi0rT1RP T0w2NAotK09UT09MCi0rTElQTwotK05NRURJVAotK0RTWU1VVElMCi0rTUFOSUZFU1RfVE9PTAot K1JBTkxJQgotK2FjX2N0X0FSCi0rQVIKLStETExUT09MCi0rT0JKRFVNUAotK0xOX1MKLStOTQot K2FjX2N0X0RVTVBCSU4KLStEVU1QQklOCi0rTEQKLStGR1JFUAotK0VHUkVQCi0rR1JFUAotK1NF RAotK2FtX19mYXN0ZGVwQ0NfRkFMU0UKLSthbV9fZmFzdGRlcENDX1RSVUUKLStDQ0RFUE1PREUK LSthY19jdF9DQwotK0NGTEFHUwotK0NDCi0rTElCVE9PTAotK0NYWENQUAotK2FtX19mYXN0ZGVw Q1hYX0ZBTFNFCi0rYW1fX2Zhc3RkZXBDWFhfVFJVRQotK0NYWERFUE1PREUKLStBTURFUEJBQ0tT TEFTSAotK0FNREVQX0ZBTFNFCi0rQU1ERVBfVFJVRQotK2FtX19xdW90ZQotK2FtX19pbmNsdWRl Ci0rREVQRElSCi0rT0JKRVhUCi0rRVhFRVhUCi0rYWNfY3RfQ1hYCi0rQ1BQRkxBR1MKLStMREZM QUdTCi0rQ1hYRkxBR1MKLStDWFgKLStob3N0X29zCi0raG9zdF92ZW5kb3IKLStob3N0X2NwdQot K2hvc3QKLStidWlsZF9vcwotK2J1aWxkX3ZlbmRvcgotK2J1aWxkX2NwdQotK2J1aWxkCi0rVVBM T0FEX0NPTU1BTkQKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTgotK0hBVkVfQ1BQVU5JVF9GQUxT RQotK0hBVkVfQ1BQVU5JVF9UUlVFCi0rQ1BQVU5JVF9WRVJTSU9OCi0rQ1BQVU5JVF9MSUJTCi0r Q1BQVU5JVF9DRkxBR1MKLStDUFBVTklUX0NPTkZJRwotK2FtX191bnRhcgotK2FtX190YXIKLStB TVRBUgotK2FtX19sZWFkaW5nX2RvdAotK1NFVF9NQUtFCi0rQVdLCi0rbWtkaXJfcAotK01LRElS X1AKLStJTlNUQUxMX1NUUklQX1BST0dSQU0KLStTVFJJUAotK2luc3RhbGxfc2gKLStNQUtFSU5G TwotK0FVVE9IRUFERVIKLStBVVRPTUFLRQotK0FVVE9DT05GCi0rQUNMT0NBTAotK1ZFUlNJT04K LStQQUNLQUdFCi0rQ1lHUEFUSF9XCi0rYW1fX2lzcmMKLStJTlNUQUxMX0RBVEEKLStJTlNUQUxM X1NDUklQVAotK0lOU1RBTExfUFJPR1JBTQotK3RhcmdldF9hbGlhcwotK2hvc3RfYWxpYXMKLSti dWlsZF9hbGlhcwotK0xJQlMKLStFQ0hPX1QKLStFQ0hPX04KLStFQ0hPX0MKLStERUZTCi0rbWFu ZGlyCi0rbG9jYWxlZGlyCi0rbGliZGlyCi0rcHNkaXIKLStwZGZkaXIKLStkdmlkaXIKLStodG1s ZGlyCi0raW5mb2RpcgotK2RvY2RpcgotK29sZGluY2x1ZGVkaXIKLStpbmNsdWRlZGlyCi0rbG9j YWxzdGF0ZWRpcgotK3NoYXJlZHN0YXRlZGlyCi0rc3lzY29uZmRpcgotK2RhdGFkaXIKLStkYXRh cm9vdGRpcgotK2xpYmV4ZWNkaXIKLStzYmluZGlyCi0rYmluZGlyCi0rcHJvZ3JhbV90cmFuc2Zv cm1fbmFtZQotK3ByZWZpeAotK2V4ZWNfcHJlZml4Ci0rUEFDS0FHRV9VUkwKLStQQUNLQUdFX0JV R1JFUE9SVAotK1BBQ0tBR0VfU1RSSU5HCi0rUEFDS0FHRV9WRVJTSU9OCi0rUEFDS0FHRV9UQVJO QU1FCi0rUEFDS0FHRV9OQU1FCi0rUEFUSF9TRVBBUkFUT1IKLStTSEVMTCcKLSthY19zdWJzdF9m aWxlcz0nJwotK2FjX3VzZXJfb3B0cz0nCi0rZW5hYmxlX29wdGlvbl9jaGVja2luZwotK3dpdGhf Y3BwdW5pdF9wcmVmaXgKLSt3aXRoX2NwcHVuaXRfZXhlY19wcmVmaXgKLStlbmFibGVfc2hhcmVk Ci0rZW5hYmxlX3N0YXRpYwotK2VuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nCi0rd2l0aF9waWMK LStlbmFibGVfZmFzdF9pbnN0YWxsCi0rd2l0aF9nbnVfbGQKLSt3aXRoX3N5c3Jvb3QKLStlbmFi bGVfbGlidG9vbF9sb2NrCi0rZW5hYmxlX2V4Y2VwdGlvbnMKLStlbmFibGVfaW5mb19kb2MKLStl bmFibGVfaHRtbF9kb2MKLSt3aXRoX2RvY2RpcgotK2VuYWJsZV9idXJyaWVkX2hlYWRlcnMKLStl bmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzCi0rZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9o ZWFkZXJzCi0rd2l0aF9ib29zdAotK2VuYWJsZV9iYWNrZW5kX215c3FsCi0rd2l0aF9teXNxbAot K3dpdGhfbXlzcWxfbGliCi0rd2l0aF9teXNxbF9pbmNsdWRlCi0rZW5hYmxlX2JhY2tlbmRfb3Jh Y2xlCi0rd2l0aF9vcmFjbGUKLSt3aXRoX29yYWNsZV9pbmNsdWRlCi0rd2l0aF9vcmFjbGVfbGli Ci0rZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbAotK3dpdGhfcG9zdGdyZXNxbAotKycKLSsgICAg ICBhY19wcmVjaW91c192YXJzPSdidWlsZF9hbGlhcwotK2hvc3RfYWxpYXMKLSt0YXJnZXRfYWxp YXMKLStDWFgKLStDWFhGTEFHUwotK0xERkxBR1MKLStMSUJTCi0rQ1BQRkxBR1MKLStDQ0MKLStD WFhDUFAKLStDQwotK0NGTEFHUwotK0NQUCcKLSsKLSsKLSsjIEluaXRpYWxpemUgc29tZSB2YXJp YWJsZXMgc2V0IGJ5IG9wdGlvbnMuCi0rYWNfaW5pdF9oZWxwPQotK2FjX2luaXRfdmVyc2lvbj1m YWxzZQotK2FjX3VucmVjb2duaXplZF9vcHRzPQotK2FjX3VucmVjb2duaXplZF9zZXA9Ci0rIyBU aGUgdmFyaWFibGVzIGhhdmUgdGhlIHNhbWUgbmFtZXMgYXMgdGhlIG9wdGlvbnMsIHdpdGgKLSsj IGRhc2hlcyBjaGFuZ2VkIHRvIHVuZGVybGluZXMuCi0rY2FjaGVfZmlsZT0vZGV2L251bGwKLStl eGVjX3ByZWZpeD1OT05FCi0rbm9fY3JlYXRlPQotK25vX3JlY3Vyc2lvbj0KLStwcmVmaXg9Tk9O RQotK3Byb2dyYW1fcHJlZml4PU5PTkUKLStwcm9ncmFtX3N1ZmZpeD1OT05FCi0rcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZT1zLHgseCwKLStzaWxlbnQ9Ci0rc2l0ZT0KLStzcmNkaXI9Ci0rdmVyYm9z ZT0KLSt4X2luY2x1ZGVzPU5PTkUKLSt4X2xpYnJhcmllcz1OT05FCi0rCi0rIyBJbnN0YWxsYXRp b24gZGlyZWN0b3J5IG9wdGlvbnMuCi0rIyBUaGVzZSBhcmUgbGVmdCB1bmV4cGFuZGVkIHNvIHVz ZXJzIGNhbiAibWFrZSBpbnN0YWxsIGV4ZWNfcHJlZml4PS9mb28iCi0rIyBhbmQgYWxsIHRoZSB2 YXJpYWJsZXMgdGhhdCBhcmUgc3VwcG9zZWQgdG8gYmUgYmFzZWQgb24gZXhlY19wcmVmaXgKLSsj IGJ5IGRlZmF1bHQgd2lsbCBhY3R1YWxseSBjaGFuZ2UuCi0rIyBVc2UgYnJhY2VzIGluc3RlYWQg b2YgcGFyZW5zIGJlY2F1c2Ugc2gsIHBlcmwsIGV0Yy4gYWxzbyBhY2NlcHQgdGhlbS4KLSsjIChU aGUgbGlzdCBmb2xsb3dzIHRoZSBzYW1lIG9yZGVyIGFzIHRoZSBHTlUgQ29kaW5nIFN0YW5kYXJk cy4pCi0rYmluZGlyPScke2V4ZWNfcHJlZml4fS9iaW4nCi0rc2JpbmRpcj0nJHtleGVjX3ByZWZp eH0vc2JpbicKLStsaWJleGVjZGlyPScke2V4ZWNfcHJlZml4fS9saWJleGVjJwotK2RhdGFyb290 ZGlyPScke3ByZWZpeH0vc2hhcmUnCi0rZGF0YWRpcj0nJHtkYXRhcm9vdGRpcn0nCi0rc3lzY29u ZmRpcj0nJHtwcmVmaXh9L2V0YycKLStzaGFyZWRzdGF0ZWRpcj0nJHtwcmVmaXh9L2NvbScKLSts b2NhbHN0YXRlZGlyPScke3ByZWZpeH0vdmFyJwotK2luY2x1ZGVkaXI9JyR7cHJlZml4fS9pbmNs dWRlJwotK29sZGluY2x1ZGVkaXI9Jy91c3IvaW5jbHVkZScKLStkb2NkaXI9JyR7ZGF0YXJvb3Rk aXJ9L2RvYy8ke1BBQ0tBR0VfVEFSTkFNRX0nCi0raW5mb2Rpcj0nJHtkYXRhcm9vdGRpcn0vaW5m bycKLStodG1sZGlyPScke2RvY2Rpcn0nCi0rZHZpZGlyPScke2RvY2Rpcn0nCi0rcGRmZGlyPSck e2RvY2Rpcn0nCi0rcHNkaXI9JyR7ZG9jZGlyfScKLStsaWJkaXI9JyR7ZXhlY19wcmVmaXh9L2xp YicKLStsb2NhbGVkaXI9JyR7ZGF0YXJvb3RkaXJ9L2xvY2FsZScKLSttYW5kaXI9JyR7ZGF0YXJv b3RkaXJ9L21hbicKLSsKLSthY19wcmV2PQotK2FjX2Rhc2hkYXNoPQotK2ZvciBhY19vcHRpb24K LStkbwotKyAgIyBJZiB0aGUgcHJldmlvdXMgb3B0aW9uIG5lZWRzIGFuIGFyZ3VtZW50LCBhc3Np Z24gaXQuCi0rICBpZiB0ZXN0IC1uICIkYWNfcHJldiI7IHRoZW4KLSsgICAgZXZhbCAkYWNfcHJl dj1cJGFjX29wdGlvbgotKyAgICBhY19wcmV2PQotKyAgICBjb250aW51ZQotKyAgZmkKLSsKLSsg IGNhc2UgJGFjX29wdGlvbiBpbgotKyAgKj0/KikgYWNfb3B0YXJnPWBleHByICJYJGFjX29wdGlv biIgOiAnW149XSo9XCguKlwpJ2AgOzsKLSsgICo9KSAgIGFjX29wdGFyZz0gOzsKLSsgICopICAg IGFjX29wdGFyZz15ZXMgOzsKLSsgIGVzYWMKLSsKLSsgICMgQWNjZXB0IHRoZSBpbXBvcnRhbnQg Q3lnbnVzIGNvbmZpZ3VyZSBvcHRpb25zLCBzbyB3ZSBjYW4gZGlhZ25vc2UgdHlwb3MuCi0rCi0r ICBjYXNlICRhY19kYXNoZGFzaCRhY19vcHRpb24gaW4KLSsgIC0tKQotKyAgICBhY19kYXNoZGFz aD15ZXMgOzsKLSsKLSsgIC1iaW5kaXIgfCAtLWJpbmRpciB8IC0tYmluZGkgfCAtLWJpbmQgfCAt LWJpbiB8IC0tYmkpCi0rICAgIGFjX3ByZXY9YmluZGlyIDs7Ci0rICAtYmluZGlyPSogfCAtLWJp bmRpcj0qIHwgLS1iaW5kaT0qIHwgLS1iaW5kPSogfCAtLWJpbj0qIHwgLS1iaT0qKQotKyAgICBi aW5kaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWJ1aWxkIHwgLS1idWlsZCB8IC0tYnVpbCB8IC0t YnVpIHwgLS1idSkKLSsgICAgYWNfcHJldj1idWlsZF9hbGlhcyA7OwotKyAgLWJ1aWxkPSogfCAt LWJ1aWxkPSogfCAtLWJ1aWw9KiB8IC0tYnVpPSogfCAtLWJ1PSopCi0rICAgIGJ1aWxkX2FsaWFz PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1jYWNoZS1maWxlIHwgLS1jYWNoZS1maWxlIHwgLS1jYWNo ZS1maWwgfCAtLWNhY2hlLWZpIFwKLSsgIHwgLS1jYWNoZS1mIHwgLS1jYWNoZS0gfCAtLWNhY2hl IHwgLS1jYWNoIHwgLS1jYWMgfCAtLWNhIHwgLS1jKQotKyAgICBhY19wcmV2PWNhY2hlX2ZpbGUg OzsKLSsgIC1jYWNoZS1maWxlPSogfCAtLWNhY2hlLWZpbGU9KiB8IC0tY2FjaGUtZmlsPSogfCAt LWNhY2hlLWZpPSogXAotKyAgfCAtLWNhY2hlLWY9KiB8IC0tY2FjaGUtPSogfCAtLWNhY2hlPSog fCAtLWNhY2g9KiB8IC0tY2FjPSogfCAtLWNhPSogfCAtLWM9KikKLSsgICAgY2FjaGVfZmlsZT0k YWNfb3B0YXJnIDs7Ci0rCi0rICAtLWNvbmZpZy1jYWNoZSB8IC1DKQotKyAgICBjYWNoZV9maWxl PWNvbmZpZy5jYWNoZSA7OwotKwotKyAgLWRhdGFkaXIgfCAtLWRhdGFkaXIgfCAtLWRhdGFkaSB8 IC0tZGF0YWQpCi0rICAgIGFjX3ByZXY9ZGF0YWRpciA7OwotKyAgLWRhdGFkaXI9KiB8IC0tZGF0 YWRpcj0qIHwgLS1kYXRhZGk9KiB8IC0tZGF0YWQ9KikKLSsgICAgZGF0YWRpcj0kYWNfb3B0YXJn IDs7Ci0rCi0rICAtZGF0YXJvb3RkaXIgfCAtLWRhdGFyb290ZGlyIHwgLS1kYXRhcm9vdGRpIHwg LS1kYXRhcm9vdGQgfCAtLWRhdGFyb290IFwKLSsgIHwgLS1kYXRhcm9vIHwgLS1kYXRhcm8gfCAt LWRhdGFyKQotKyAgICBhY19wcmV2PWRhdGFyb290ZGlyIDs7Ci0rICAtZGF0YXJvb3RkaXI9KiB8 IC0tZGF0YXJvb3RkaXI9KiB8IC0tZGF0YXJvb3RkaT0qIHwgLS1kYXRhcm9vdGQ9KiBcCi0rICB8 IC0tZGF0YXJvb3Q9KiB8IC0tZGF0YXJvbz0qIHwgLS1kYXRhcm89KiB8IC0tZGF0YXI9KikKLSsg ICAgZGF0YXJvb3RkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWRpc2FibGUtKiB8IC0tZGlzYWJs ZS0qKQotKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZGlzYWJsZS1c KC4qXCknYAotKyAgICAjIFJlamVjdCBuYW1lcyB0aGF0IGFyZSBub3QgdmFsaWQgc2hlbGwgdmFy aWFibGUgbmFtZXMuCi0rICAgIGV4cHIgIngkYWNfdXNlcm9wdCIgOiAiLipbXi0rLl8kYXNfY3Jf YWxudW1dIiA+L2Rldi9udWxsICYmCi0rICAgICAgYXNfZm5fZXJyb3IgJD8gImludmFsaWQgZmVh dHVyZSBuYW1lOiAkYWNfdXNlcm9wdCIKLSsgICAgYWNfdXNlcm9wdF9vcmlnPSRhY191c2Vyb3B0 Ci0rICAgIGFjX3VzZXJvcHQ9YCRhc19lY2hvICIkYWNfdXNlcm9wdCIgfCBzZWQgJ3MvWy0rLl0v Xy9nJ2AKLSsgICAgY2FzZSAkYWNfdXNlcl9vcHRzIGluCi0rICAgICAgKiIKLSsiZW5hYmxlXyRh Y191c2Vyb3B0IgotKyIqKSA7OwotKyAgICAgICopIGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNf dW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25pemVkX3NlcC0tZGlzYWJsZS0kYWNfdXNlcm9w dF9vcmlnIgotKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0nLCAnOzsKLSsgICAgZXNhYwotKyAgICBl dmFsIGVuYWJsZV8kYWNfdXNlcm9wdD1ubyA7OwotKwotKyAgLWRvY2RpciB8IC0tZG9jZGlyIHwg LS1kb2NkaSB8IC0tZG9jIHwgLS1kbykKLSsgICAgYWNfcHJldj1kb2NkaXIgOzsKLSsgIC1kb2Nk aXI9KiB8IC0tZG9jZGlyPSogfCAtLWRvY2RpPSogfCAtLWRvYz0qIHwgLS1kbz0qKQotKyAgICBk b2NkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWR2aWRpciB8IC0tZHZpZGlyIHwgLS1kdmlkaSB8 IC0tZHZpZCB8IC0tZHZpIHwgLS1kdikKLSsgICAgYWNfcHJldj1kdmlkaXIgOzsKLSsgIC1kdmlk aXI9KiB8IC0tZHZpZGlyPSogfCAtLWR2aWRpPSogfCAtLWR2aWQ9KiB8IC0tZHZpPSogfCAtLWR2 PSopCi0rICAgIGR2aWRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtZW5hYmxlLSogfCAtLWVuYWJs ZS0qKQotKyAgICBhY191c2Vyb3B0PWBleHByICJ4JGFjX29wdGlvbiIgOiAneC0qZW5hYmxlLVwo W149XSpcKSdgCi0rICAgICMgUmVqZWN0IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2 YXJpYWJsZSBuYW1lcy4KLSsgICAgZXhwciAieCRhY191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19j cl9hbG51bV0iID4vZGV2L251bGwgJiYKLSsgICAgICBhc19mbl9lcnJvciAkPyAiaW52YWxpZCBm ZWF0dXJlIG5hbWU6ICRhY191c2Vyb3B0IgotKyAgICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJv cHQKLSsgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8gIiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsu XS9fL2cnYAotKyAgICBjYXNlICRhY191c2VyX29wdHMgaW4KLSsgICAgICAqIgotKyJlbmFibGVf JGFjX3VzZXJvcHQiCi0rIiopIDs7Ci0rICAgICAgKikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRh Y191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29nbml6ZWRfc2VwLS1lbmFibGUtJGFjX3VzZXJv cHRfb3JpZyIKLSsJIGFjX3VucmVjb2duaXplZF9zZXA9JywgJzs7Ci0rICAgIGVzYWMKLSsgICAg ZXZhbCBlbmFibGVfJGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcgOzsKLSsKLSsgIC1leGVjLXByZWZp eCB8IC0tZXhlY19wcmVmaXggfCAtLWV4ZWMtcHJlZml4IHwgLS1leGVjLXByZWZpIFwKLSsgIHwg LS1leGVjLXByZWYgfCAtLWV4ZWMtcHJlIHwgLS1leGVjLXByIHwgLS1leGVjLXAgfCAtLWV4ZWMt IFwKLSsgIHwgLS1leGVjIHwgLS1leGUgfCAtLWV4KQotKyAgICBhY19wcmV2PWV4ZWNfcHJlZml4 IDs7Ci0rICAtZXhlYy1wcmVmaXg9KiB8IC0tZXhlY19wcmVmaXg9KiB8IC0tZXhlYy1wcmVmaXg9 KiB8IC0tZXhlYy1wcmVmaT0qIFwKLSsgIHwgLS1leGVjLXByZWY9KiB8IC0tZXhlYy1wcmU9KiB8 IC0tZXhlYy1wcj0qIHwgLS1leGVjLXA9KiB8IC0tZXhlYy09KiBcCi0rICB8IC0tZXhlYz0qIHwg LS1leGU9KiB8IC0tZXg9KikKLSsgICAgZXhlY19wcmVmaXg9JGFjX29wdGFyZyA7OwotKwotKyAg LWdhcyB8IC0tZ2FzIHwgLS1nYSB8IC0tZykKLSsgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aC1n YXMuCi0rICAgIHdpdGhfZ2FzPXllcyA7OwotKwotKyAgLWhlbHAgfCAtLWhlbHAgfCAtLWhlbCB8 IC0taGUgfCAtaCkKLSsgICAgYWNfaW5pdF9oZWxwPWxvbmcgOzsKLSsgIC1oZWxwPXIqIHwgLS1o ZWxwPXIqIHwgLS1oZWw9ciogfCAtLWhlPXIqIHwgLWhyKikKLSsgICAgYWNfaW5pdF9oZWxwPXJl Y3Vyc2l2ZSA7OwotKyAgLWhlbHA9cyogfCAtLWhlbHA9cyogfCAtLWhlbD1zKiB8IC0taGU9cyog fCAtaHMqKQotKyAgICBhY19pbml0X2hlbHA9c2hvcnQgOzsKLSsKLSsgIC1ob3N0IHwgLS1ob3N0 IHwgLS1ob3MgfCAtLWhvKQotKyAgICBhY19wcmV2PWhvc3RfYWxpYXMgOzsKLSsgIC1ob3N0PSog fCAtLWhvc3Q9KiB8IC0taG9zPSogfCAtLWhvPSopCi0rICAgIGhvc3RfYWxpYXM9JGFjX29wdGFy ZyA7OwotKwotKyAgLWh0bWxkaXIgfCAtLWh0bWxkaXIgfCAtLWh0bWxkaSB8IC0taHRtbGQgfCAt LWh0bWwgfCAtLWh0bSB8IC0taHQpCi0rICAgIGFjX3ByZXY9aHRtbGRpciA7OwotKyAgLWh0bWxk aXI9KiB8IC0taHRtbGRpcj0qIHwgLS1odG1sZGk9KiB8IC0taHRtbGQ9KiB8IC0taHRtbD0qIHwg LS1odG09KiBcCi0rICB8IC0taHQ9KikKLSsgICAgaHRtbGRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0r ICAtaW5jbHVkZWRpciB8IC0taW5jbHVkZWRpciB8IC0taW5jbHVkZWRpIHwgLS1pbmNsdWRlZCB8 IC0taW5jbHVkZSBcCi0rICB8IC0taW5jbHVkIHwgLS1pbmNsdSB8IC0taW5jbCB8IC0taW5jKQot KyAgICBhY19wcmV2PWluY2x1ZGVkaXIgOzsKLSsgIC1pbmNsdWRlZGlyPSogfCAtLWluY2x1ZGVk aXI9KiB8IC0taW5jbHVkZWRpPSogfCAtLWluY2x1ZGVkPSogfCAtLWluY2x1ZGU9KiBcCi0rICB8 IC0taW5jbHVkPSogfCAtLWluY2x1PSogfCAtLWluY2w9KiB8IC0taW5jPSopCi0rICAgIGluY2x1 ZGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWluZm9kaXIgfCAtLWluZm9kaXIgfCAtLWluZm9k aSB8IC0taW5mb2QgfCAtLWluZm8gfCAtLWluZikKLSsgICAgYWNfcHJldj1pbmZvZGlyIDs7Ci0r ICAtaW5mb2Rpcj0qIHwgLS1pbmZvZGlyPSogfCAtLWluZm9kaT0qIHwgLS1pbmZvZD0qIHwgLS1p bmZvPSogfCAtLWluZj0qKQotKyAgICBpbmZvZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1saWJk aXIgfCAtLWxpYmRpciB8IC0tbGliZGkgfCAtLWxpYmQpCi0rICAgIGFjX3ByZXY9bGliZGlyIDs7 Ci0rICAtbGliZGlyPSogfCAtLWxpYmRpcj0qIHwgLS1saWJkaT0qIHwgLS1saWJkPSopCi0rICAg IGxpYmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtbGliZXhlY2RpciB8IC0tbGliZXhlY2RpciB8 IC0tbGliZXhlY2RpIHwgLS1saWJleGVjZCB8IC0tbGliZXhlYyBcCi0rICB8IC0tbGliZXhlIHwg LS1saWJleCB8IC0tbGliZSkKLSsgICAgYWNfcHJldj1saWJleGVjZGlyIDs7Ci0rICAtbGliZXhl Y2Rpcj0qIHwgLS1saWJleGVjZGlyPSogfCAtLWxpYmV4ZWNkaT0qIHwgLS1saWJleGVjZD0qIHwg LS1saWJleGVjPSogXAotKyAgfCAtLWxpYmV4ZT0qIHwgLS1saWJleD0qIHwgLS1saWJlPSopCi0r ICAgIGxpYmV4ZWNkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLWxvY2FsZWRpciB8IC0tbG9jYWxl ZGlyIHwgLS1sb2NhbGVkaSB8IC0tbG9jYWxlZCB8IC0tbG9jYWxlKQotKyAgICBhY19wcmV2PWxv Y2FsZWRpciA7OwotKyAgLWxvY2FsZWRpcj0qIHwgLS1sb2NhbGVkaXI9KiB8IC0tbG9jYWxlZGk9 KiB8IC0tbG9jYWxlZD0qIHwgLS1sb2NhbGU9KikKLSsgICAgbG9jYWxlZGlyPSRhY19vcHRhcmcg OzsKLSsKLSsgIC1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRlZGlyIHwgLS1sb2NhbHN0YXRl ZGkgfCAtLWxvY2Fsc3RhdGVkIFwKLSsgIHwgLS1sb2NhbHN0YXRlIHwgLS1sb2NhbHN0YXQgfCAt LWxvY2Fsc3RhIHwgLS1sb2NhbHN0IHwgLS1sb2NhbHMpCi0rICAgIGFjX3ByZXY9bG9jYWxzdGF0 ZWRpciA7OwotKyAgLWxvY2Fsc3RhdGVkaXI9KiB8IC0tbG9jYWxzdGF0ZWRpcj0qIHwgLS1sb2Nh bHN0YXRlZGk9KiB8IC0tbG9jYWxzdGF0ZWQ9KiBcCi0rICB8IC0tbG9jYWxzdGF0ZT0qIHwgLS1s b2NhbHN0YXQ9KiB8IC0tbG9jYWxzdGE9KiB8IC0tbG9jYWxzdD0qIHwgLS1sb2NhbHM9KikKLSsg ICAgbG9jYWxzdGF0ZWRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtbWFuZGlyIHwgLS1tYW5kaXIg fCAtLW1hbmRpIHwgLS1tYW5kIHwgLS1tYW4gfCAtLW1hIHwgLS1tKQotKyAgICBhY19wcmV2PW1h bmRpciA7OwotKyAgLW1hbmRpcj0qIHwgLS1tYW5kaXI9KiB8IC0tbWFuZGk9KiB8IC0tbWFuZD0q IHwgLS1tYW49KiB8IC0tbWE9KiB8IC0tbT0qKQotKyAgICBtYW5kaXI9JGFjX29wdGFyZyA7Owot KwotKyAgLW5mcCB8IC0tbmZwIHwgLS1uZikKLSsgICAgIyBPYnNvbGV0ZTsgdXNlIC0td2l0aG91 dC1mcC4KLSsgICAgd2l0aF9mcD1ubyA7OwotKwotKyAgLW5vLWNyZWF0ZSB8IC0tbm8tY3JlYXRl IHwgLS1uby1jcmVhdCB8IC0tbm8tY3JlYSB8IC0tbm8tY3JlIFwKLSsgIHwgLS1uby1jciB8IC0t bm8tYyB8IC1uKQotKyAgICBub19jcmVhdGU9eWVzIDs7Ci0rCi0rICAtbm8tcmVjdXJzaW9uIHwg LS1uby1yZWN1cnNpb24gfCAtLW5vLXJlY3Vyc2lvIHwgLS1uby1yZWN1cnNpIFwKLSsgIHwgLS1u by1yZWN1cnMgfCAtLW5vLXJlY3VyIHwgLS1uby1yZWN1IHwgLS1uby1yZWMgfCAtLW5vLXJlIHwg LS1uby1yKQotKyAgICBub19yZWN1cnNpb249eWVzIDs7Ci0rCi0rICAtb2xkaW5jbHVkZWRpciB8 IC0tb2xkaW5jbHVkZWRpciB8IC0tb2xkaW5jbHVkZWRpIHwgLS1vbGRpbmNsdWRlZCBcCi0rICB8 IC0tb2xkaW5jbHVkZSB8IC0tb2xkaW5jbHVkIHwgLS1vbGRpbmNsdSB8IC0tb2xkaW5jbCB8IC0t b2xkaW5jIFwKLSsgIHwgLS1vbGRpbiB8IC0tb2xkaSB8IC0tb2xkIHwgLS1vbCB8IC0tbykKLSsg ICAgYWNfcHJldj1vbGRpbmNsdWRlZGlyIDs7Ci0rICAtb2xkaW5jbHVkZWRpcj0qIHwgLS1vbGRp bmNsdWRlZGlyPSogfCAtLW9sZGluY2x1ZGVkaT0qIHwgLS1vbGRpbmNsdWRlZD0qIFwKLSsgIHwg LS1vbGRpbmNsdWRlPSogfCAtLW9sZGluY2x1ZD0qIHwgLS1vbGRpbmNsdT0qIHwgLS1vbGRpbmNs PSogfCAtLW9sZGluYz0qIFwKLSsgIHwgLS1vbGRpbj0qIHwgLS1vbGRpPSogfCAtLW9sZD0qIHwg LS1vbD0qIHwgLS1vPSopCi0rICAgIG9sZGluY2x1ZGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAg LXByZWZpeCB8IC0tcHJlZml4IHwgLS1wcmVmaSB8IC0tcHJlZiB8IC0tcHJlIHwgLS1wciB8IC0t cCkKLSsgICAgYWNfcHJldj1wcmVmaXggOzsKLSsgIC1wcmVmaXg9KiB8IC0tcHJlZml4PSogfCAt LXByZWZpPSogfCAtLXByZWY9KiB8IC0tcHJlPSogfCAtLXByPSogfCAtLXA9KikKLSsgICAgcHJl Zml4PSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFtLXByZWZpeCB8IC0tcHJvZ3JhbS1wcmVm aXggfCAtLXByb2dyYW0tcHJlZmkgfCAtLXByb2dyYW0tcHJlZiBcCi0rICB8IC0tcHJvZ3JhbS1w cmUgfCAtLXByb2dyYW0tcHIgfCAtLXByb2dyYW0tcCkKLSsgICAgYWNfcHJldj1wcm9ncmFtX3By ZWZpeCA7OwotKyAgLXByb2dyYW0tcHJlZml4PSogfCAtLXByb2dyYW0tcHJlZml4PSogfCAtLXBy b2dyYW0tcHJlZmk9KiBcCi0rICB8IC0tcHJvZ3JhbS1wcmVmPSogfCAtLXByb2dyYW0tcHJlPSog fCAtLXByb2dyYW0tcHI9KiB8IC0tcHJvZ3JhbS1wPSopCi0rICAgIHByb2dyYW1fcHJlZml4PSRh Y19vcHRhcmcgOzsKLSsKLSsgIC1wcm9ncmFtLXN1ZmZpeCB8IC0tcHJvZ3JhbS1zdWZmaXggfCAt LXByb2dyYW0tc3VmZmkgfCAtLXByb2dyYW0tc3VmZiBcCi0rICB8IC0tcHJvZ3JhbS1zdWYgfCAt LXByb2dyYW0tc3UgfCAtLXByb2dyYW0tcykKLSsgICAgYWNfcHJldj1wcm9ncmFtX3N1ZmZpeCA7 OwotKyAgLXByb2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0tc3VmZml4PSogfCAtLXByb2dyYW0t c3VmZmk9KiBcCi0rICB8IC0tcHJvZ3JhbS1zdWZmPSogfCAtLXByb2dyYW0tc3VmPSogfCAtLXBy b2dyYW0tc3U9KiB8IC0tcHJvZ3JhbS1zPSopCi0rICAgIHByb2dyYW1fc3VmZml4PSRhY19vcHRh cmcgOzsKLSsKLSsgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lIHwgLS1wcm9ncmFtLXRyYW5zZm9y bS1uYW1lIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uYW0gfCAtLXByb2dyYW0tdHJhbnNm b3JtLW5hIFwKLSsgIHwgLS1wcm9ncmFtLXRyYW5zZm9ybS1uIHwgLS1wcm9ncmFtLXRyYW5zZm9y bS0gXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtIHwgLS1wcm9ncmFtLXRyYW5zZm9yIFwKLSsg IHwgLS1wcm9ncmFtLXRyYW5zZm8gfCAtLXByb2dyYW0tdHJhbnNmIFwKLSsgIHwgLS1wcm9ncmFt LXRyYW5zIHwgLS1wcm9ncmFtLXRyYW4gXAotKyAgfCAtLXByb2dyLXRyYSB8IC0tcHJvZ3JhbS10 ciB8IC0tcHJvZ3JhbS10KQotKyAgICBhY19wcmV2PXByb2dyYW1fdHJhbnNmb3JtX25hbWUgOzsK LSsgIC1wcm9ncmFtLXRyYW5zZm9ybS1uYW1lPSogfCAtLXByb2dyYW0tdHJhbnNmb3JtLW5hbWU9 KiBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2Zvcm0tbmFtPSogfCAtLXByb2dyYW0tdHJhbnNmb3Jt LW5hPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtLW49KiB8IC0tcHJvZ3JhbS10cmFuc2Zv cm0tPSogXAotKyAgfCAtLXByb2dyYW0tdHJhbnNmb3JtPSogfCAtLXByb2dyYW0tdHJhbnNmb3I9 KiBcCi0rICB8IC0tcHJvZ3JhbS10cmFuc2ZvPSogfCAtLXByb2dyYW0tdHJhbnNmPSogXAotKyAg fCAtLXByb2dyYW0tdHJhbnM9KiB8IC0tcHJvZ3JhbS10cmFuPSogXAotKyAgfCAtLXByb2dyLXRy YT0qIHwgLS1wcm9ncmFtLXRyPSogfCAtLXByb2dyYW0tdD0qKQotKyAgICBwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1wZGZkaXIgfCAtLXBkZmRpciB8IC0tcGRm ZGkgfCAtLXBkZmQgfCAtLXBkZiB8IC0tcGQpCi0rICAgIGFjX3ByZXY9cGRmZGlyIDs7Ci0rICAt cGRmZGlyPSogfCAtLXBkZmRpcj0qIHwgLS1wZGZkaT0qIHwgLS1wZGZkPSogfCAtLXBkZj0qIHwg LS1wZD0qKQotKyAgICBwZGZkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXBzZGlyIHwgLS1wc2Rp ciB8IC0tcHNkaSB8IC0tcHNkIHwgLS1wcykKLSsgICAgYWNfcHJldj1wc2RpciA7OwotKyAgLXBz ZGlyPSogfCAtLXBzZGlyPSogfCAtLXBzZGk9KiB8IC0tcHNkPSogfCAtLXBzPSopCi0rICAgIHBz ZGlyPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1xIHwgLXF1aWV0IHwgLS1xdWlldCB8IC0tcXVpZSB8 IC0tcXVpIHwgLS1xdSB8IC0tcSBcCi0rICB8IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4g fCAtLXNpbGUgfCAtLXNpbCkKLSsgICAgc2lsZW50PXllcyA7OwotKwotKyAgLXNiaW5kaXIgfCAt LXNiaW5kaXIgfCAtLXNiaW5kaSB8IC0tc2JpbmQgfCAtLXNiaW4gfCAtLXNiaSB8IC0tc2IpCi0r ICAgIGFjX3ByZXY9c2JpbmRpciA7OwotKyAgLXNiaW5kaXI9KiB8IC0tc2JpbmRpcj0qIHwgLS1z YmluZGk9KiB8IC0tc2JpbmQ9KiB8IC0tc2Jpbj0qIFwKLSsgIHwgLS1zYmk9KiB8IC0tc2I9KikK LSsgICAgc2JpbmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtc2hhcmVkc3RhdGVkaXIgfCAtLXNo YXJlZHN0YXRlZGlyIHwgLS1zaGFyZWRzdGF0ZWRpIFwKLSsgIHwgLS1zaGFyZWRzdGF0ZWQgfCAt LXNoYXJlZHN0YXRlIHwgLS1zaGFyZWRzdGF0IHwgLS1zaGFyZWRzdGEgXAotKyAgfCAtLXNoYXJl ZHN0IHwgLS1zaGFyZWRzIHwgLS1zaGFyZWQgfCAtLXNoYXJlIHwgLS1zaGFyIFwKLSsgIHwgLS1z aGEgfCAtLXNoKQotKyAgICBhY19wcmV2PXNoYXJlZHN0YXRlZGlyIDs7Ci0rICAtc2hhcmVkc3Rh dGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaXI9KiB8IC0tc2hhcmVkc3RhdGVkaT0qIFwKLSsgIHwg LS1zaGFyZWRzdGF0ZWQ9KiB8IC0tc2hhcmVkc3RhdGU9KiB8IC0tc2hhcmVkc3RhdD0qIHwgLS1z aGFyZWRzdGE9KiBcCi0rICB8IC0tc2hhcmVkc3Q9KiB8IC0tc2hhcmVkcz0qIHwgLS1zaGFyZWQ9 KiB8IC0tc2hhcmU9KiB8IC0tc2hhcj0qIFwKLSsgIHwgLS1zaGE9KiB8IC0tc2g9KikKLSsgICAg c2hhcmVkc3RhdGVkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXNpdGUgfCAtLXNpdGUgfCAtLXNp dCkKLSsgICAgYWNfcHJldj1zaXRlIDs7Ci0rICAtc2l0ZT0qIHwgLS1zaXRlPSogfCAtLXNpdD0q KQotKyAgICBzaXRlPSRhY19vcHRhcmcgOzsKLSsKLSsgIC1zcmNkaXIgfCAtLXNyY2RpciB8IC0t c3JjZGkgfCAtLXNyY2QgfCAtLXNyYyB8IC0tc3IpCi0rICAgIGFjX3ByZXY9c3JjZGlyIDs7Ci0r ICAtc3JjZGlyPSogfCAtLXNyY2Rpcj0qIHwgLS1zcmNkaT0qIHwgLS1zcmNkPSogfCAtLXNyYz0q IHwgLS1zcj0qKQotKyAgICBzcmNkaXI9JGFjX29wdGFyZyA7OwotKwotKyAgLXN5c2NvbmZkaXIg fCAtLXN5c2NvbmZkaXIgfCAtLXN5c2NvbmZkaSB8IC0tc3lzY29uZmQgfCAtLXN5c2NvbmYgXAot KyAgfCAtLXN5c2NvbiB8IC0tc3lzY28gfCAtLXN5c2MgfCAtLXN5cyB8IC0tc3kpCi0rICAgIGFj X3ByZXY9c3lzY29uZmRpciA7OwotKyAgLXN5c2NvbmZkaXI9KiB8IC0tc3lzY29uZmRpcj0qIHwg LS1zeXNjb25mZGk9KiB8IC0tc3lzY29uZmQ9KiB8IC0tc3lzY29uZj0qIFwKLSsgIHwgLS1zeXNj b249KiB8IC0tc3lzY289KiB8IC0tc3lzYz0qIHwgLS1zeXM9KiB8IC0tc3k9KikKLSsgICAgc3lz Y29uZmRpcj0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtdGFyZ2V0IHwgLS10YXJnZXQgfCAtLXRhcmdl IHwgLS10YXJnIHwgLS10YXIgfCAtLXRhIHwgLS10KQotKyAgICBhY19wcmV2PXRhcmdldF9hbGlh cyA7OwotKyAgLXRhcmdldD0qIHwgLS10YXJnZXQ9KiB8IC0tdGFyZ2U9KiB8IC0tdGFyZz0qIHwg LS10YXI9KiB8IC0tdGE9KiB8IC0tdD0qKQotKyAgICB0YXJnZXRfYWxpYXM9JGFjX29wdGFyZyA7 OwotKwotKyAgLXYgfCAtdmVyYm9zZSB8IC0tdmVyYm9zZSB8IC0tdmVyYm9zIHwgLS12ZXJibyB8 IC0tdmVyYikKLSsgICAgdmVyYm9zZT15ZXMgOzsKLSsKLSsgIC12ZXJzaW9uIHwgLS12ZXJzaW9u IHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLVYpCi0rICAgIGFjX2luaXRfdmVyc2lv bj06IDs7Ci0rCi0rICAtd2l0aC0qIHwgLS13aXRoLSopCi0rICAgIGFjX3VzZXJvcHQ9YGV4cHIg IngkYWNfb3B0aW9uIiA6ICd4LSp3aXRoLVwoW149XSpcKSdgCi0rICAgICMgUmVqZWN0IG5hbWVz IHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLSsgICAgZXhwciAieCRh Y191c2Vyb3B0IiA6ICIuKlteLSsuXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwgJiYKLSsgICAg ICBhc19mbl9lcnJvciAkPyAiaW52YWxpZCBwYWNrYWdlIG5hbWU6ICRhY191c2Vyb3B0IgotKyAg ICBhY191c2Vyb3B0X29yaWc9JGFjX3VzZXJvcHQKLSsgICAgYWNfdXNlcm9wdD1gJGFzX2VjaG8g IiRhY191c2Vyb3B0IiB8IHNlZCAncy9bLSsuXS9fL2cnYAotKyAgICBjYXNlICRhY191c2VyX29w dHMgaW4KLSsgICAgICAqIgotKyJ3aXRoXyRhY191c2Vyb3B0IgotKyIqKSA7OwotKyAgICAgICop IGFjX3VucmVjb2duaXplZF9vcHRzPSIkYWNfdW5yZWNvZ25pemVkX29wdHMkYWNfdW5yZWNvZ25p emVkX3NlcC0td2l0aC0kYWNfdXNlcm9wdF9vcmlnIgotKwkgYWNfdW5yZWNvZ25pemVkX3NlcD0n LCAnOzsKLSsgICAgZXNhYwotKyAgICBldmFsIHdpdGhfJGFjX3VzZXJvcHQ9XCRhY19vcHRhcmcg OzsKLSsKLSsgIC13aXRob3V0LSogfCAtLXdpdGhvdXQtKikKLSsgICAgYWNfdXNlcm9wdD1gZXhw ciAieCRhY19vcHRpb24iIDogJ3gtKndpdGhvdXQtXCguKlwpJ2AKLSsgICAgIyBSZWplY3QgbmFt ZXMgdGhhdCBhcmUgbm90IHZhbGlkIHNoZWxsIHZhcmlhYmxlIG5hbWVzLgotKyAgICBleHByICJ4 JGFjX3VzZXJvcHQiIDogIi4qW14tKy5fJGFzX2NyX2FsbnVtXSIgPi9kZXYvbnVsbCAmJgotKyAg ICAgIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHBhY2thZ2UgbmFtZTogJGFjX3VzZXJvcHQiCi0r ICAgIGFjX3VzZXJvcHRfb3JpZz0kYWNfdXNlcm9wdAotKyAgICBhY191c2Vyb3B0PWAkYXNfZWNo byAiJGFjX3VzZXJvcHQiIHwgc2VkICdzL1stKy5dL18vZydgCi0rICAgIGNhc2UgJGFjX3VzZXJf b3B0cyBpbgotKyAgICAgICoiCi0rIndpdGhfJGFjX3VzZXJvcHQiCi0rIiopIDs7Ci0rICAgICAg KikgYWNfdW5yZWNvZ25pemVkX29wdHM9IiRhY191bnJlY29nbml6ZWRfb3B0cyRhY191bnJlY29n bml6ZWRfc2VwLS13aXRob3V0LSRhY191c2Vyb3B0X29yaWciCi0rCSBhY191bnJlY29nbml6ZWRf c2VwPScsICc7OwotKyAgICBlc2FjCi0rICAgIGV2YWwgd2l0aF8kYWNfdXNlcm9wdD1ubyA7Owot KwotKyAgLS14KQotKyAgICAjIE9ic29sZXRlOyB1c2UgLS13aXRoLXguCi0rICAgIHdpdGhfeD15 ZXMgOzsKLSsKLSsgIC14LWluY2x1ZGVzIHwgLS14LWluY2x1ZGVzIHwgLS14LWluY2x1ZGUgfCAt LXgtaW5jbHVkIHwgLS14LWluY2x1IFwKLSsgIHwgLS14LWluY2wgfCAtLXgtaW5jIHwgLS14LWlu IHwgLS14LWkpCi0rICAgIGFjX3ByZXY9eF9pbmNsdWRlcyA7OwotKyAgLXgtaW5jbHVkZXM9KiB8 IC0teC1pbmNsdWRlcz0qIHwgLS14LWluY2x1ZGU9KiB8IC0teC1pbmNsdWQ9KiB8IC0teC1pbmNs dT0qIFwKLSsgIHwgLS14LWluY2w9KiB8IC0teC1pbmM9KiB8IC0teC1pbj0qIHwgLS14LWk9KikK LSsgICAgeF9pbmNsdWRlcz0kYWNfb3B0YXJnIDs7Ci0rCi0rICAteC1saWJyYXJpZXMgfCAtLXgt bGlicmFyaWVzIHwgLS14LWxpYnJhcmllIHwgLS14LWxpYnJhcmkgXAotKyAgfCAtLXgtbGlicmFy IHwgLS14LWxpYnJhIHwgLS14LWxpYnIgfCAtLXgtbGliIHwgLS14LWxpIHwgLS14LWwpCi0rICAg IGFjX3ByZXY9eF9saWJyYXJpZXMgOzsKLSsgIC14LWxpYnJhcmllcz0qIHwgLS14LWxpYnJhcmll cz0qIHwgLS14LWxpYnJhcmllPSogfCAtLXgtbGlicmFyaT0qIFwKLSsgIHwgLS14LWxpYnJhcj0q IHwgLS14LWxpYnJhPSogfCAtLXgtbGlicj0qIHwgLS14LWxpYj0qIHwgLS14LWxpPSogfCAtLXgt bD0qKQotKyAgICB4X2xpYnJhcmllcz0kYWNfb3B0YXJnIDs7Ci0rCi0rICAtKikgYXNfZm5fZXJy b3IgJD8gInVucmVjb2duaXplZCBvcHRpb246IFxgJGFjX29wdGlvbicKLStUcnkgXGAkMCAtLWhl bHAnIGZvciBtb3JlIGluZm9ybWF0aW9uIgotKyAgICA7OwotKwotKyAgKj0qKQotKyAgICBhY19l bnZ2YXI9YGV4cHIgIngkYWNfb3B0aW9uIiA6ICd4XChbXj1dKlwpPSdgCi0rICAgICMgUmVqZWN0 IG5hbWVzIHRoYXQgYXJlIG5vdCB2YWxpZCBzaGVsbCB2YXJpYWJsZSBuYW1lcy4KLSsgICAgY2Fz ZSAkYWNfZW52dmFyIGluICMoCi0rICAgICAgJycgfCBbMC05XSogfCAqWyFfJGFzX2NyX2FsbnVt XSogKQotKyAgICAgIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHZhcmlhYmxlIG5hbWU6IFxgJGFj X2VudnZhciciIDs7Ci0rICAgIGVzYWMKLSsgICAgZXZhbCAkYWNfZW52dmFyPVwkYWNfb3B0YXJn Ci0rICAgIGV4cG9ydCAkYWNfZW52dmFyIDs7Ci0rCi0rICAqKQotKyAgICAjIEZJWE1FOiBzaG91 bGQgYmUgcmVtb3ZlZCBpbiBhdXRvY29uZiAzLjAuCi0rICAgICRhc19lY2hvICIkYXNfbWU6IFdB Uk5JTkc6IHlvdSBzaG91bGQgdXNlIC0tYnVpbGQsIC0taG9zdCwgLS10YXJnZXQiID4mMgotKyAg ICBleHByICJ4JGFjX29wdGlvbiIgOiAiLipbXi0uXyRhc19jcl9hbG51bV0iID4vZGV2L251bGwg JiYKLSsgICAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBpbnZhbGlkIGhvc3QgdHlwZTog JGFjX29wdGlvbiIgPiYyCi0rICAgIDogIiR7YnVpbGRfYWxpYXM9JGFjX29wdGlvbn0gJHtob3N0 X2FsaWFzPSRhY19vcHRpb259ICR7dGFyZ2V0X2FsaWFzPSRhY19vcHRpb259IgotKyAgICA7Owot KwotKyAgZXNhYwotK2RvbmUKLSsKLStpZiB0ZXN0IC1uICIkYWNfcHJldiI7IHRoZW4KLSsgIGFj X29wdGlvbj0tLWBlY2hvICRhY19wcmV2IHwgc2VkICdzL18vLS9nJ2AKLSsgIGFzX2ZuX2Vycm9y ICQ/ICJtaXNzaW5nIGFyZ3VtZW50IHRvICRhY19vcHRpb24iCi0rZmkKLSsKLStpZiB0ZXN0IC1u ICIkYWNfdW5yZWNvZ25pemVkX29wdHMiOyB0aGVuCi0rICBjYXNlICRlbmFibGVfb3B0aW9uX2No ZWNraW5nIGluCi0rICAgIG5vKSA7OwotKyAgICBmYXRhbCkgYXNfZm5fZXJyb3IgJD8gInVucmVj b2duaXplZCBvcHRpb25zOiAkYWNfdW5yZWNvZ25pemVkX29wdHMiIDs7Ci0rICAgICopICAgICAk YXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1bnJlY29nbml6ZWQgb3B0aW9uczogJGFjX3VucmVj b2duaXplZF9vcHRzIiA+JjIgOzsKLSsgIGVzYWMKLStmaQotKwotKyMgQ2hlY2sgYWxsIGRpcmVj dG9yeSBhcmd1bWVudHMgZm9yIGNvbnNpc3RlbmN5LgotK2ZvciBhY192YXIgaW4JZXhlY19wcmVm aXggcHJlZml4IGJpbmRpciBzYmluZGlyIGxpYmV4ZWNkaXIgZGF0YXJvb3RkaXIgXAotKwkJZGF0 YWRpciBzeXNjb25mZGlyIHNoYXJlZHN0YXRlZGlyIGxvY2Fsc3RhdGVkaXIgaW5jbHVkZWRpciBc Ci0rCQlvbGRpbmNsdWRlZGlyIGRvY2RpciBpbmZvZGlyIGh0bWxkaXIgZHZpZGlyIHBkZmRpciBw c2RpciBcCi0rCQlsaWJkaXIgbG9jYWxlZGlyIG1hbmRpcgotK2RvCi0rICBldmFsIGFjX3ZhbD1c JCRhY192YXIKLSsgICMgUmVtb3ZlIHRyYWlsaW5nIHNsYXNoZXMuCi0rICBjYXNlICRhY192YWwg aW4KLSsgICAgKi8gKQotKyAgICAgIGFjX3ZhbD1gZXhwciAiWCRhY192YWwiIDogJ1hcKC4qW14v XVwpJyBcfCAiWCRhY192YWwiIDogJ1hcKC4qXCknYAotKyAgICAgIGV2YWwgJGFjX3Zhcj1cJGFj X3ZhbDs7Ci0rICBlc2FjCi0rICAjIEJlIHN1cmUgdG8gaGF2ZSBhYnNvbHV0ZSBkaXJlY3Rvcnkg bmFtZXMuCi0rICBjYXNlICRhY192YWwgaW4KLSsgICAgW1xcLyRdKiB8ID86W1xcL10qICkgIGNv bnRpbnVlOzsKLSsgICAgTk9ORSB8ICcnICkgY2FzZSAkYWNfdmFyIGluICpwcmVmaXggKSBjb250 aW51ZTs7IGVzYWM7OwotKyAgZXNhYwotKyAgYXNfZm5fZXJyb3IgJD8gImV4cGVjdGVkIGFuIGFi c29sdXRlIGRpcmVjdG9yeSBuYW1lIGZvciAtLSRhY192YXI6ICRhY192YWwiCi0rZG9uZQotKwot KyMgVGhlcmUgbWlnaHQgYmUgcGVvcGxlIHdobyBkZXBlbmQgb24gdGhlIG9sZCBicm9rZW4gYmVo YXZpb3I6IGAkaG9zdCcKLSsjIHVzZWQgdG8gaG9sZCB0aGUgYXJndW1lbnQgb2YgLS1ob3N0IGV0 Yy4KLSsjIEZJWE1FOiBUbyByZW1vdmUgc29tZSBkYXkuCi0rYnVpbGQ9JGJ1aWxkX2FsaWFzCi0r aG9zdD0kaG9zdF9hbGlhcwotK3RhcmdldD0kdGFyZ2V0X2FsaWFzCi0rCi0rIyBGSVhNRTogVG8g cmVtb3ZlIHNvbWUgZGF5LgotK2lmIHRlc3QgIngkaG9zdF9hbGlhcyIgIT0geDsgdGhlbgotKyAg aWYgdGVzdCAieCRidWlsZF9hbGlhcyIgPSB4OyB0aGVuCi0rICAgIGNyb3NzX2NvbXBpbGluZz1t YXliZQotKyAgICAkYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBpZiB5b3Ugd2FudGVkIHRvIHNl dCB0aGUgLS1idWlsZCB0eXBlLCBkb24ndCB1c2UgLS1ob3N0LgotKyAgICBJZiBhIGNyb3NzIGNv bXBpbGVyIGlzIGRldGVjdGVkIHRoZW4gY3Jvc3MgY29tcGlsZSBtb2RlIHdpbGwgYmUgdXNlZCIg PiYyCi0rICBlbGlmIHRlc3QgIngkYnVpbGRfYWxpYXMiICE9ICJ4JGhvc3RfYWxpYXMiOyB0aGVu Ci0rICAgIGNyb3NzX2NvbXBpbGluZz15ZXMKLSsgIGZpCi0rZmkKLSsKLSthY190b29sX3ByZWZp eD0KLSt0ZXN0IC1uICIkaG9zdF9hbGlhcyIgJiYgYWNfdG9vbF9wcmVmaXg9JGhvc3RfYWxpYXMt Ci0rCi0rdGVzdCAiJHNpbGVudCIgPSB5ZXMgJiYgZXhlYyA2Pi9kZXYvbnVsbAotKwotKwotK2Fj X3B3ZD1gcHdkYCAmJiB0ZXN0IC1uICIkYWNfcHdkIiAmJgotK2FjX2xzX2RpPWBscyAtZGkgLmAg JiYKLSthY19wd2RfbHNfZGk9YGNkICIkYWNfcHdkIiAmJiBscyAtZGkgLmAgfHwKLSsgIGFzX2Zu X2Vycm9yICQ/ICJ3b3JraW5nIGRpcmVjdG9yeSBjYW5ub3QgYmUgZGV0ZXJtaW5lZCIKLSt0ZXN0 ICJYJGFjX2xzX2RpIiA9ICJYJGFjX3B3ZF9sc19kaSIgfHwKLSsgIGFzX2ZuX2Vycm9yICQ/ICJw d2QgZG9lcyBub3QgcmVwb3J0IG5hbWUgb2Ygd29ya2luZyBkaXJlY3RvcnkiCi0rCi0rCi0rIyBG aW5kIHRoZSBzb3VyY2UgZmlsZXMsIGlmIGxvY2F0aW9uIHdhcyBub3Qgc3BlY2lmaWVkLgotK2lm IHRlc3QgLXogIiRzcmNkaXIiOyB0aGVuCi0rICBhY19zcmNkaXJfZGVmYXVsdGVkPXllcwotKyAg IyBUcnkgdGhlIGRpcmVjdG9yeSBjb250YWluaW5nIHRoaXMgc2NyaXB0LCB0aGVuIHRoZSBwYXJl bnQgZGlyZWN0b3J5LgotKyAgYWNfY29uZmRpcj1gJGFzX2Rpcm5hbWUgLS0gIiRhc19teXNlbGYi IHx8Ci0rJGFzX2V4cHIgWCIkYXNfbXlzZWxmIiA6ICdYXCguKlteL11cKS8vKlteL11bXi9dKi8q JCcgXHwgXAotKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvL1wpW14vXScgXHwgXAotKwkgWCIkYXNf bXlzZWxmIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYXNfbXlzZWxmIiA6ICdYXCgvXCknIFx8 IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYIiRhc19teXNlbGYiIHwKLSsgICAgc2VkICcv XlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQot KwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJ ICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJ ICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8u LzsgcSdgCi0rICBzcmNkaXI9JGFjX2NvbmZkaXIKLSsgIGlmIHRlc3QgISAtciAiJHNyY2Rpci8k YWNfdW5pcXVlX2ZpbGUiOyB0aGVuCi0rICAgIHNyY2Rpcj0uLgotKyAgZmkKLStlbHNlCi0rICBh Y19zcmNkaXJfZGVmYXVsdGVkPW5vCi0rZmkKLStpZiB0ZXN0ICEgLXIgIiRzcmNkaXIvJGFjX3Vu aXF1ZV9maWxlIjsgdGhlbgotKyAgdGVzdCAiJGFjX3NyY2Rpcl9kZWZhdWx0ZWQiID0geWVzICYm IHNyY2Rpcj0iJGFjX2NvbmZkaXIgb3IgLi4iCi0rICBhc19mbl9lcnJvciAkPyAiY2Fubm90IGZp bmQgc291cmNlcyAoJGFjX3VuaXF1ZV9maWxlKSBpbiAkc3JjZGlyIgotK2ZpCi0rYWNfbXNnPSJz b3VyY2VzIGFyZSBpbiAkc3JjZGlyLCBidXQgXGBjZCAkc3JjZGlyJyBkb2VzIG5vdCB3b3JrIgot K2FjX2Fic19jb25mZGlyPWAoCi0rCWNkICIkc3JjZGlyIiAmJiB0ZXN0IC1yICIuLyRhY191bmlx dWVfZmlsZSIgfHwgYXNfZm5fZXJyb3IgJD8gIiRhY19tc2ciCi0rCXB3ZClgCi0rIyBXaGVuIGJ1 aWxkaW5nIGluIHBsYWNlLCBzZXQgc3JjZGlyPS4KLStpZiB0ZXN0ICIkYWNfYWJzX2NvbmZkaXIi ID0gIiRhY19wd2QiOyB0aGVuCi0rICBzcmNkaXI9LgotK2ZpCi0rIyBSZW1vdmUgdW5uZWNlc3Nh cnkgdHJhaWxpbmcgc2xhc2hlcyBmcm9tIHNyY2Rpci4KLSsjIERvdWJsZSBzbGFzaGVzIGluIGZp bGUgbmFtZXMgaW4gb2JqZWN0IGZpbGUgZGVidWdnaW5nIGluZm8KLSsjIG1lc3MgdXAgTS14IGdk YiBpbiBFbWFjcy4KLStjYXNlICRzcmNkaXIgaW4KLSsqLykgc3JjZGlyPWBleHByICJYJHNyY2Rp ciIgOiAnWFwoLipbXi9dXCknIFx8ICJYJHNyY2RpciIgOiAnWFwoLipcKSdgOzsKLStlc2FjCi0r Zm9yIGFjX3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFyczsgZG8KLSsgIGV2YWwgYWNfZW52XyR7YWNf dmFyfV9zZXQ9XCR7JHthY192YXJ9K3NldH0KLSsgIGV2YWwgYWNfZW52XyR7YWNfdmFyfV92YWx1 ZT1cJCR7YWNfdmFyfQotKyAgZXZhbCBhY19jdl9lbnZfJHthY192YXJ9X3NldD1cJHske2FjX3Zh cn0rc2V0fQotKyAgZXZhbCBhY19jdl9lbnZfJHthY192YXJ9X3ZhbHVlPVwkJHthY192YXJ9Ci0r ZG9uZQotKwotKyMKLSsjIFJlcG9ydCB0aGUgLS1oZWxwIG1lc3NhZ2UuCi0rIwotK2lmIHRlc3Qg IiRhY19pbml0X2hlbHAiID0gImxvbmciOyB0aGVuCi0rICAjIE9taXQgc29tZSBpbnRlcm5hbCBv ciBvYnNvbGV0ZSBvcHRpb25zIHRvIG1ha2UgdGhlIGxpc3QgbGVzcyBpbXBvc2luZy4KLSsgICMg VGhpcyBtZXNzYWdlIGlzIHRvbyBsb25nIHRvIGJlIGEgc3RyaW5nIGluIHRoZSBBL1VYIDMuMSBz aC4KLSsgIGNhdCA8PF9BQ0VPRgotK1xgY29uZmlndXJlJyBjb25maWd1cmVzIFNPQ0kgMy4wLjAg dG8gYWRhcHQgdG8gbWFueSBraW5kcyBvZiBzeXN0ZW1zLgotKwotK1VzYWdlOiAkMCBbT1BUSU9O XS4uLiBbVkFSPVZBTFVFXS4uLgotKwotK1RvIGFzc2lnbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMg KGUuZy4sIENDLCBDRkxBR1MuLi4pLCBzcGVjaWZ5IHRoZW0gYXMKLStWQVI9VkFMVUUuICBTZWUg YmVsb3cgZm9yIGRlc2NyaXB0aW9ucyBvZiBzb21lIG9mIHRoZSB1c2VmdWwgdmFyaWFibGVzLgot KwotK0RlZmF1bHRzIGZvciB0aGUgb3B0aW9ucyBhcmUgc3BlY2lmaWVkIGluIGJyYWNrZXRzLgot KwotK0NvbmZpZ3VyYXRpb246Ci0rICAtaCwgLS1oZWxwICAgICAgICAgICAgICBkaXNwbGF5IHRo aXMgaGVscCBhbmQgZXhpdAotKyAgICAgIC0taGVscD1zaG9ydCAgICAgICAgZGlzcGxheSBvcHRp b25zIHNwZWNpZmljIHRvIHRoaXMgcGFja2FnZQotKyAgICAgIC0taGVscD1yZWN1cnNpdmUgICAg ZGlzcGxheSB0aGUgc2hvcnQgaGVscCBvZiBhbGwgdGhlIGluY2x1ZGVkIHBhY2thZ2VzCi0rICAt ViwgLS12ZXJzaW9uICAgICAgICAgICBkaXNwbGF5IHZlcnNpb24gaW5mb3JtYXRpb24gYW5kIGV4 aXQKLSsgIC1xLCAtLXF1aWV0LCAtLXNpbGVudCAgIGRvIG5vdCBwcmludCBcYGNoZWNraW5nIC4u LicgbWVzc2FnZXMKLSsgICAgICAtLWNhY2hlLWZpbGU9RklMRSAgIGNhY2hlIHRlc3QgcmVzdWx0 cyBpbiBGSUxFIFtkaXNhYmxlZF0KLSsgIC1DLCAtLWNvbmZpZy1jYWNoZSAgICAgIGFsaWFzIGZv ciBcYC0tY2FjaGUtZmlsZT1jb25maWcuY2FjaGUnCi0rICAtbiwgLS1uby1jcmVhdGUgICAgICAg ICBkbyBub3QgY3JlYXRlIG91dHB1dCBmaWxlcwotKyAgICAgIC0tc3JjZGlyPURJUiAgICAgICAg ZmluZCB0aGUgc291cmNlcyBpbiBESVIgW2NvbmZpZ3VyZSBkaXIgb3IgXGAuLiddCi0rCi0rSW5z dGFsbGF0aW9uIGRpcmVjdG9yaWVzOgotKyAgLS1wcmVmaXg9UFJFRklYICAgICAgICAgaW5zdGFs bCBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQgZmlsZXMgaW4gUFJFRklYCi0rICAgICAgICAgICAg ICAgICAgICAgICAgICBbJGFjX2RlZmF1bHRfcHJlZml4XQotKyAgLS1leGVjLXByZWZpeD1FUFJF RklYICAgaW5zdGFsbCBhcmNoaXRlY3R1cmUtZGVwZW5kZW50IGZpbGVzIGluIEVQUkVGSVgKLSsg ICAgICAgICAgICAgICAgICAgICAgICAgIFtQUkVGSVhdCi0rCi0rQnkgZGVmYXVsdCwgXGBtYWtl IGluc3RhbGwnIHdpbGwgaW5zdGFsbCBhbGwgdGhlIGZpbGVzIGluCi0rXGAkYWNfZGVmYXVsdF9w cmVmaXgvYmluJywgXGAkYWNfZGVmYXVsdF9wcmVmaXgvbGliJyBldGMuICBZb3UgY2FuIHNwZWNp ZnkKLSthbiBpbnN0YWxsYXRpb24gcHJlZml4IG90aGVyIHRoYW4gXGAkYWNfZGVmYXVsdF9wcmVm aXgnIHVzaW5nIFxgLS1wcmVmaXgnLAotK2ZvciBpbnN0YW5jZSBcYC0tcHJlZml4PVwkSE9NRScu Ci0rCi0rRm9yIGJldHRlciBjb250cm9sLCB1c2UgdGhlIG9wdGlvbnMgYmVsb3cuCi0rCi0rRmlu ZSB0dW5pbmcgb2YgdGhlIGluc3RhbGxhdGlvbiBkaXJlY3RvcmllczoKLSsgIC0tYmluZGlyPURJ UiAgICAgICAgICAgIHVzZXIgZXhlY3V0YWJsZXMgW0VQUkVGSVgvYmluXQotKyAgLS1zYmluZGly PURJUiAgICAgICAgICAgc3lzdGVtIGFkbWluIGV4ZWN1dGFibGVzIFtFUFJFRklYL3NiaW5dCi0r ICAtLWxpYmV4ZWNkaXI9RElSICAgICAgICBwcm9ncmFtIGV4ZWN1dGFibGVzIFtFUFJFRklYL2xp YmV4ZWNdCi0rICAtLXN5c2NvbmZkaXI9RElSICAgICAgICByZWFkLW9ubHkgc2luZ2xlLW1hY2hp bmUgZGF0YSBbUFJFRklYL2V0Y10KLSsgIC0tc2hhcmVkc3RhdGVkaXI9RElSICAgIG1vZGlmaWFi bGUgYXJjaGl0ZWN0dXJlLWluZGVwZW5kZW50IGRhdGEgW1BSRUZJWC9jb21dCi0rICAtLWxvY2Fs c3RhdGVkaXI9RElSICAgICBtb2RpZmlhYmxlIHNpbmdsZS1tYWNoaW5lIGRhdGEgW1BSRUZJWC92 YXJdCi0rICAtLWxpYmRpcj1ESVIgICAgICAgICAgICBvYmplY3QgY29kZSBsaWJyYXJpZXMgW0VQ UkVGSVgvbGliXQotKyAgLS1pbmNsdWRlZGlyPURJUiAgICAgICAgQyBoZWFkZXIgZmlsZXMgW1BS RUZJWC9pbmNsdWRlXQotKyAgLS1vbGRpbmNsdWRlZGlyPURJUiAgICAgQyBoZWFkZXIgZmlsZXMg Zm9yIG5vbi1nY2MgWy91c3IvaW5jbHVkZV0KLSsgIC0tZGF0YXJvb3RkaXI9RElSICAgICAgIHJl YWQtb25seSBhcmNoLi1pbmRlcGVuZGVudCBkYXRhIHJvb3QgW1BSRUZJWC9zaGFyZV0KLSsgIC0t ZGF0YWRpcj1ESVIgICAgICAgICAgIHJlYWQtb25seSBhcmNoaXRlY3R1cmUtaW5kZXBlbmRlbnQg ZGF0YSBbREFUQVJPT1RESVJdCi0rICAtLWluZm9kaXI9RElSICAgICAgICAgICBpbmZvIGRvY3Vt ZW50YXRpb24gW0RBVEFST09URElSL2luZm9dCi0rICAtLWxvY2FsZWRpcj1ESVIgICAgICAgICBs b2NhbGUtZGVwZW5kZW50IGRhdGEgW0RBVEFST09URElSL2xvY2FsZV0KLSsgIC0tbWFuZGlyPURJ UiAgICAgICAgICAgIG1hbiBkb2N1bWVudGF0aW9uIFtEQVRBUk9PVERJUi9tYW5dCi0rICAtLWRv Y2Rpcj1ESVIgICAgICAgICAgICBkb2N1bWVudGF0aW9uIHJvb3QgW0RBVEFST09URElSL2RvYy9z b2NpXQotKyAgLS1odG1sZGlyPURJUiAgICAgICAgICAgaHRtbCBkb2N1bWVudGF0aW9uIFtET0NE SVJdCi0rICAtLWR2aWRpcj1ESVIgICAgICAgICAgICBkdmkgZG9jdW1lbnRhdGlvbiBbRE9DRElS XQotKyAgLS1wZGZkaXI9RElSICAgICAgICAgICAgcGRmIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0K LSsgIC0tcHNkaXI9RElSICAgICAgICAgICAgIHBzIGRvY3VtZW50YXRpb24gW0RPQ0RJUl0KLStf QUNFT0YKLSsKLSsgIGNhdCA8PFxfQUNFT0YKLSsKLStQcm9ncmFtIG5hbWVzOgotKyAgLS1wcm9n cmFtLXByZWZpeD1QUkVGSVggICAgICAgICAgICBwcmVwZW5kIFBSRUZJWCB0byBpbnN0YWxsZWQg cHJvZ3JhbSBuYW1lcwotKyAgLS1wcm9ncmFtLXN1ZmZpeD1TVUZGSVggICAgICAgICAgICBhcHBl bmQgU1VGRklYIHRvIGluc3RhbGxlZCBwcm9ncmFtIG5hbWVzCi0rICAtLXByb2dyYW0tdHJhbnNm b3JtLW5hbWU9UFJPR1JBTSAgIHJ1biBzZWQgUFJPR1JBTSBvbiBpbnN0YWxsZWQgcHJvZ3JhbSBu YW1lcwotKwotK1N5c3RlbSB0eXBlczoKLSsgIC0tYnVpbGQ9QlVJTEQgICAgIGNvbmZpZ3VyZSBm b3IgYnVpbGRpbmcgb24gQlVJTEQgW2d1ZXNzZWRdCi0rICAtLWhvc3Q9SE9TVCAgICAgICBjcm9z cy1jb21waWxlIHRvIGJ1aWxkIHByb2dyYW1zIHRvIHJ1biBvbiBIT1NUIFtCVUlMRF0KLStfQUNF T0YKLStmaQotKwotK2lmIHRlc3QgLW4gIiRhY19pbml0X2hlbHAiOyB0aGVuCi0rICBjYXNlICRh Y19pbml0X2hlbHAgaW4KLSsgICAgIHNob3J0IHwgcmVjdXJzaXZlICkgZWNobyAiQ29uZmlndXJh dGlvbiBvZiBTT0NJIDMuMC4wOiI7OwotKyAgIGVzYWMKLSsgIGNhdCA8PFxfQUNFT0YKLSsKLStP cHRpb25hbCBGZWF0dXJlczoKLSsgIC0tZGlzYWJsZS1vcHRpb24tY2hlY2tpbmcgIGlnbm9yZSB1 bnJlY29nbml6ZWQgLS1lbmFibGUvLS13aXRoIG9wdGlvbnMKLSsgIC0tZGlzYWJsZS1GRUFUVVJF ICAgICAgIGRvIG5vdCBpbmNsdWRlIEZFQVRVUkUgKHNhbWUgYXMgLS1lbmFibGUtRkVBVFVSRT1u bykKLSsgIC0tZW5hYmxlLUZFQVRVUkVbPUFSR10gIGluY2x1ZGUgRkVBVFVSRSBbQVJHPXllc10K LSsgIC0tZW5hYmxlLXNoYXJlZFs9UEtHU10gIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMgW2RlZmF1 bHQ9bm9dCi0rICAtLWVuYWJsZS1zdGF0aWNbPVBLR1NdICBidWlsZCBzdGF0aWMgbGlicmFyaWVz IFtkZWZhdWx0PXllc10KLSsgIC0tZGlzYWJsZS1kZXBlbmRlbmN5LXRyYWNraW5nICBzcGVlZHMg dXAgb25lLXRpbWUgYnVpbGQKLSsgIC0tZW5hYmxlLWRlcGVuZGVuY3ktdHJhY2tpbmcgICBkbyBu b3QgcmVqZWN0IHNsb3cgZGVwZW5kZW5jeSBleHRyYWN0b3JzCi0rICAtLWVuYWJsZS1mYXN0LWlu c3RhbGxbPVBLR1NdCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBvcHRpbWl6ZSBmb3IgZmFz dCBpbnN0YWxsYXRpb24gW2RlZmF1bHQ9eWVzXQotKyAgLS1kaXNhYmxlLWxpYnRvb2wtbG9jayAg YXZvaWQgbG9ja2luZyAobWlnaHQgYnJlYWsgcGFyYWxsZWwgYnVpbGRzKQotKyAgLS1lbmFibGUt ZXhjZXB0aW9ucyAgICAgZW5hYmxlIGV4Y2VwdGlvbnMgaGFuZGxpbmcgbWVjaGFuaXNtCi0rICAt LWRpc2FibGUtaW5mby1kb2MgICAgICBkbyBub3QgZ2VuZXJhdGUgSW5mbyBkb2N1bWVudGF0aW9u Ci0rICAtLWRpc2FibGUtaHRtbC1kb2MgICAgICBkbyBub3QgZ2VuZXJhdGUgSFRNTCBkb2N1bWVu dGF0aW9uCi0rICAtLWVuYWJsZS1idXJyaWVkLWhlYWRlcnMKLSsgICAgICAgICAgICAgICAgICAg ICAgICAgIGluY2x1ZGUgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkgc3RydWN0dXJlCi0r ICAtLWVuYWJsZS1teXNxbC1idXJyaWVkLWhlYWRlcnMKLSsgICAgICAgICAgICAgICAgICAgICAg ICAgIGluY2x1ZGUgTXlTUUwgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3RvcnkKLSsgICAgICAg ICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZQotKyAgLS1lbmFibGUtcG9zdGdyZXNxbC1idXJy aWVkLWhlYWRlcnMKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGluY2x1ZGUgUG9zdEdyZVNR TCBoZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeQotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgc3RydWN0dXJlCi0rICAtLWVuYWJsZS1iYWNrZW5kLW15c3FsICBidWlsZC1pbiBNeVNRTCBi YWNrZW5kIHN1cHBvcnQgW2RlZmF1bHQ9bm9dCi0rICAtLWVuYWJsZS1iYWNrZW5kLW9yYWNsZSBi dWlsZC1pbiBPUkFDTEUgYmFja2VuZCBzdXBwb3J0IFtkZWZhdWx0PW5vXQotKyAgLS1lbmFibGUt YmFja2VuZC1wb3N0Z3Jlc3FsCi0rICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZC1pbiBQ b3N0Z3JlU1FMIGJhY2tlbmQgc3VwcG9ydCBbZGVmYXVsdD1ub10KLSsKLStPcHRpb25hbCBQYWNr YWdlczoKLSsgIC0td2l0aC1QQUNLQUdFWz1BUkddICAgIHVzZSBQQUNLQUdFIFtBUkc9eWVzXQot KyAgLS13aXRob3V0LVBBQ0tBR0UgICAgICAgZG8gbm90IHVzZSBQQUNLQUdFIChzYW1lIGFzIC0t d2l0aC1QQUNLQUdFPW5vKQotKyAgLS13aXRoLWNwcHVuaXQtcHJlZml4PVBGWCAgIFByZWZpeCB3 aGVyZSBDcHBVbml0IGlzIGluc3RhbGxlZCAob3B0aW9uYWwpCi0rICAtLXdpdGgtY3BwdW5pdC1l eGVjLXByZWZpeD1QRlggIEV4ZWMgcHJlZml4IHdoZXJlIENwcFVuaXQgaXMgaW5zdGFsbGVkIChv cHRpb25hbCkKLSsgIC0td2l0aC1waWMgICAgICAgICAgICAgIHRyeSB0byB1c2Ugb25seSBQSUMv bm9uLVBJQyBvYmplY3RzIFtkZWZhdWx0PXVzZQotKyAgICAgICAgICAgICAgICAgICAgICAgICAg Ym90aF0KLSsgIC0td2l0aC1nbnUtbGQgICAgICAgICAgIGFzc3VtZSB0aGUgQyBjb21waWxlciB1 c2VzIEdOVSBsZCBbZGVmYXVsdD1ub10KLSsgIC0td2l0aC1zeXNyb290PURJUiBTZWFyY2ggZm9y IGRlcGVuZGVudCBsaWJyYXJpZXMgd2l0aGluIERJUgotKyAgICAgICAgICAgICAgICAgICAgICAg IChvciB0aGUgY29tcGlsZXIncyBzeXNyb290IGlmIG5vdCBzcGVjaWZpZWQpLgotKyAgLS13aXRo LWRvY2Rpcj1ESVIgICAgICAgc2V0IGRvY3VtZW50YXRpb24gZGlyZWN0b3J5IHRvIERJUgotKyAg LS13aXRoLWJvb3N0PURJUiAgICAgICAgdXNlIGJvb3N0IChkZWZhdWx0IGlzIE5PKSAsIHNwZWNp ZnkgdGhlIHJvb3QKLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yeSBmb3IgYm9v c3QgbGlicmFyeSAob3B0aW9uYWwpCi0rICAtLXdpdGgtbXlzcWw9PHBhdGg+ICAgICByb290IGRp cmVjdG9yeSBwYXRoIG9mIE15U1FMIGluc3RhbGxhdGlvbgotKyAgLS13aXRoLW15c3FsLWxpYj08 cGF0aD4gZGlyZWN0b3J5IHBhdGggb2YgTXlTUUwgbGlicmFyeSBpbnN0YWxsYXRpb24KLSsgIC0t d2l0aC1teXNxbC1pbmNsdWRlPTxwYXRoPiBkaXJlY3RvcnkgcGF0aCBvZiBNeVNRTCBoZWFkZXIg aW5zdGFsbGF0aW9uCi0rICAtLXdpdGgtb3JhY2xlPVtESVJdICAgICB1c2UgT3JhY2xlIE9DSSBB UEkgZnJvbSBnaXZlbiBwYXRoIHRvIE9yYWNsZSBob21lCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICBkaXJlY3RvcnkKLSsgIC0td2l0aC1vcmFjbGUtaW5jbHVkZT1bRElSXQotKyAgICAgICAg ICAgICAgICAgICAgICAgICAgdXNlIE9yYWNsZSBPQ0kgQVBJIGhlYWRlcnMgZnJvbSBnaXZlbiBw YXRoCi0rICAtLXdpdGgtb3JhY2xlLWxpYj1bRElSXSB1c2UgT3JhY2xlIE9DSSBBUEkgbGlicmFy aWVzIGZyb20gZ2l2ZW4gcGF0aAotKyAgLS13aXRoLXBvc3RncmVzcWw9W0FSR10gdXNlIFBvc3Rn cmVTUUwgbGlicmFyeSBbZGVmYXVsdD15ZXNdLCBvcHRpb25hbGx5Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICBzcGVjaWZ5IHBhdGggdG8gcGdfY29uZmlnCi0rCi0rU29tZSBpbmZsdWVudGlh bCBlbnZpcm9ubWVudCB2YXJpYWJsZXM6Ci0rICBDWFggICAgICAgICBDKysgY29tcGlsZXIgY29t bWFuZAotKyAgQ1hYRkxBR1MgICAgQysrIGNvbXBpbGVyIGZsYWdzCi0rICBMREZMQUdTICAgICBs aW5rZXIgZmxhZ3MsIGUuZy4gLUw8bGliIGRpcj4gaWYgeW91IGhhdmUgbGlicmFyaWVzIGluIGEK LSsgICAgICAgICAgICAgIG5vbnN0YW5kYXJkIGRpcmVjdG9yeSA8bGliIGRpcj4KLSsgIExJQlMg ICAgICAgIGxpYnJhcmllcyB0byBwYXNzIHRvIHRoZSBsaW5rZXIsIGUuZy4gLWw8bGlicmFyeT4K LSsgIENQUEZMQUdTICAgIChPYmplY3RpdmUpIEMvQysrIHByZXByb2Nlc3NvciBmbGFncywgZS5n LiAtSTxpbmNsdWRlIGRpcj4gaWYKLSsgICAgICAgICAgICAgIHlvdSBoYXZlIGhlYWRlcnMgaW4g YSBub25zdGFuZGFyZCBkaXJlY3RvcnkgPGluY2x1ZGUgZGlyPgotKyAgQ1hYQ1BQICAgICAgQysr IHByZXByb2Nlc3NvcgotKyAgQ0MgICAgICAgICAgQyBjb21waWxlciBjb21tYW5kCi0rICBDRkxB R1MgICAgICBDIGNvbXBpbGVyIGZsYWdzCi0rICBDUFAgICAgICAgICBDIHByZXByb2Nlc3Nvcgot KwotK1VzZSB0aGVzZSB2YXJpYWJsZXMgdG8gb3ZlcnJpZGUgdGhlIGNob2ljZXMgbWFkZSBieSBg Y29uZmlndXJlJyBvciB0byBoZWxwCi0raXQgdG8gZmluZCBsaWJyYXJpZXMgYW5kIHByb2dyYW1z IHdpdGggbm9uc3RhbmRhcmQgbmFtZXMvbG9jYXRpb25zLgotKwotK1JlcG9ydCBidWdzIHRvIDxt c29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+LgotK19BQ0VPRgotK2FjX3N0YXR1cz0kPwot K2ZpCi0rCi0raWYgdGVzdCAiJGFjX2luaXRfaGVscCIgPSAicmVjdXJzaXZlIjsgdGhlbgotKyAg IyBJZiB0aGVyZSBhcmUgc3ViZGlycywgcmVwb3J0IHRoZWlyIHNwZWNpZmljIC0taGVscC4KLSsg IGZvciBhY19kaXIgaW4gOiAkYWNfc3ViZGlyc19hbGw7IGRvIHRlc3QgIngkYWNfZGlyIiA9IHg6 ICYmIGNvbnRpbnVlCi0rICAgIHRlc3QgLWQgIiRhY19kaXIiIHx8Ci0rICAgICAgeyBjZCAiJHNy Y2RpciIgJiYgYWNfcHdkPWBwd2RgICYmIHNyY2Rpcj0uICYmIHRlc3QgLWQgIiRhY19kaXIiOyB9 IHx8Ci0rICAgICAgY29udGludWUKLSsgICAgYWNfYnVpbGRkaXI9LgotKwotK2Nhc2UgIiRhY19k aXIiIGluCi0rLikgYWNfZGlyX3N1ZmZpeD0gYWNfdG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9i dWlsZF9wcmVmaXg9IDs7Ci0rKikKLSsgIGFjX2Rpcl9zdWZmaXg9L2AkYXNfZWNobyAiJGFjX2Rp ciIgfCBzZWQgJ3N8XlwuW1xcL118fCdgCi0rICAjIEEgIi4uIiBmb3IgZWFjaCBkaXJlY3Rvcnkg aW4gJGFjX2Rpcl9zdWZmaXguCi0rICBhY190b3BfYnVpbGRkaXJfc3ViPWAkYXNfZWNobyAiJGFj X2Rpcl9zdWZmaXgiIHwgc2VkICdzfC9bXlxcL10qfC8uLnxnO3N8L3x8J2AKLSsgIGNhc2UgJGFj X3RvcF9idWlsZGRpcl9zdWIgaW4KLSsgICIiKSBhY190b3BfYnVpbGRkaXJfc3ViPS4gYWNfdG9w X2J1aWxkX3ByZWZpeD0gOzsKLSsgICopICBhY190b3BfYnVpbGRfcHJlZml4PSRhY190b3BfYnVp bGRkaXJfc3ViLyA7OwotKyAgZXNhYyA7OwotK2VzYWMKLSthY19hYnNfdG9wX2J1aWxkZGlyPSRh Y19wd2QKLSthY19hYnNfYnVpbGRkaXI9JGFjX3B3ZCRhY19kaXJfc3VmZml4Ci0rIyBmb3IgYmFj a3dhcmQgY29tcGF0aWJpbGl0eToKLSthY190b3BfYnVpbGRkaXI9JGFjX3RvcF9idWlsZF9wcmVm aXgKLSsKLStjYXNlICRzcmNkaXIgaW4KLSsgIC4pICAjIFdlIGFyZSBidWlsZGluZyBpbiBwbGFj ZS4KLSsgICAgYWNfc3JjZGlyPS4KLSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkZGly X3N1YgotKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNfcHdkIDs7Ci0rICBbXFwvXSogfCA/Oltc XC9dKiApICAjIEFic29sdXRlIG5hbWUuCi0rICAgIGFjX3NyY2Rpcj0kc3JjZGlyJGFjX2Rpcl9z dWZmaXg7Ci0rICAgIGFjX3RvcF9zcmNkaXI9JHNyY2RpcgotKyAgICBhY19hYnNfdG9wX3NyY2Rp cj0kc3JjZGlyIDs7Ci0rICAqKSAjIFJlbGF0aXZlIG5hbWUuCi0rICAgIGFjX3NyY2Rpcj0kYWNf dG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIkYWNfZGlyX3N1ZmZpeAotKyAgICBhY190b3Bfc3JjZGly PSRhY190b3BfYnVpbGRfcHJlZml4JHNyY2RpcgotKyAgICBhY19hYnNfdG9wX3NyY2Rpcj0kYWNf cHdkLyRzcmNkaXIgOzsKLStlc2FjCi0rYWNfYWJzX3NyY2Rpcj0kYWNfYWJzX3RvcF9zcmNkaXIk YWNfZGlyX3N1ZmZpeAotKwotKyAgICBjZCAiJGFjX2RpciIgfHwgeyBhY19zdGF0dXM9JD87IGNv bnRpbnVlOyB9Ci0rICAgICMgQ2hlY2sgZm9yIGd1ZXN0ZWQgY29uZmlndXJlLgotKyAgICBpZiB0 ZXN0IC1mICIkYWNfc3JjZGlyL2NvbmZpZ3VyZS5nbnUiOyB0aGVuCi0rICAgICAgZWNobyAmJgot KyAgICAgICRTSEVMTCAiJGFjX3NyY2Rpci9jb25maWd1cmUuZ251IiAtLWhlbHA9cmVjdXJzaXZl Ci0rICAgIGVsaWYgdGVzdCAtZiAiJGFjX3NyY2Rpci9jb25maWd1cmUiOyB0aGVuCi0rICAgICAg ZWNobyAmJgotKyAgICAgICRTSEVMTCAiJGFjX3NyY2Rpci9jb25maWd1cmUiIC0taGVscD1yZWN1 cnNpdmUKLSsgICAgZWxzZQotKyAgICAgICRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IG5vIGNv bmZpZ3VyYXRpb24gaW5mb3JtYXRpb24gaXMgaW4gJGFjX2RpciIgPiYyCi0rICAgIGZpIHx8IGFj X3N0YXR1cz0kPwotKyAgICBjZCAiJGFjX3B3ZCIgfHwgeyBhY19zdGF0dXM9JD87IGJyZWFrOyB9 Ci0rICBkb25lCi0rZmkKLSsKLSt0ZXN0IC1uICIkYWNfaW5pdF9oZWxwIiAmJiBleGl0ICRhY19z dGF0dXMKLStpZiAkYWNfaW5pdF92ZXJzaW9uOyB0aGVuCi0rICBjYXQgPDxcX0FDRU9GCi0rU09D SSBjb25maWd1cmUgMy4wLjAKLStnZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjgKLSsKLStD b3B5cmlnaHQgKEMpIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0rVGhpcyBj b25maWd1cmUgc2NyaXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5k YXRpb24KLStnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFu ZCBtb2RpZnkgaXQuCi0rCi0rQ29weXJpZ2h0IChDKSAyMDA0LTIwMTEgTWFjaWVqIFNvYmN6YWsg PG1zb2JjemFrQHVzZXJzLnNvdXJjZWZvcmdlLm5ldD4KLStfQUNFT0YKLSsgIGV4aXQKLStmaQot KwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIEF1dG9jb25mIGluaXRpYWxp emF0aW9uLiAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKwotKyMgYWNfZm5f Y3h4X3RyeV9jb21waWxlIExJTkVOTwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KyMgVHJ5IHRvIGNvbXBpbGUgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRo aXMgc3VjY2VlZGVkLgotK2FjX2ZuX2N4eF90cnlfY29tcGlsZSAoKQotK3sKLSsgIGFzX2xpbmVu bz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19s aW5lbm9fc3RhY2sKLSsgIHJtIC1mIGNvbmZ0ZXN0LiRhY19vYmpleHQKLSsgIGlmIHsgeyBhY190 cnk9IiRhY19jb21waWxlIgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwg KlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7 Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyI7IH0gPiY1Ci0rICAo ZXZhbCAiJGFjX2NvbXBpbGUiKSAyPmNvbmZ0ZXN0LmVycgotKyAgYWNfc3RhdHVzPSQ/Ci0rICBp ZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICBncmVwIC12ICdeICorJyBjb25mdGVz dC5lcnIgPmNvbmZ0ZXN0LmVyMQotKyAgICBjYXQgY29uZnRlc3QuZXIxID4mNQotKyAgICBtdiAt ZiBjb25mdGVzdC5lcjEgY29uZnRlc3QuZXJyCi0rICBmaQotKyAgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19z dGF0dXMgPSAwOyB9ICYmIHsKLSsJIHRlc3QgLXogIiRhY19jeHhfd2Vycm9yX2ZsYWciIHx8Ci0r CSB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdC4k YWNfb2JqZXh0OyB0aGVuIDoKLSsgIGFjX3JldHZhbD0wCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRh c19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4k YWNfZXh0ID4mNQotKwotKwlhY19yZXR2YWw9MQotK2ZpCi0rICBldmFsICRhc19saW5lbm9fc3Rh Y2s7ICR7YXNfbGluZW5vX3N0YWNrOis6fSB1bnNldCBhc19saW5lbm8KLSsgIGFzX2ZuX3NldF9z dGF0dXMgJGFjX3JldHZhbAotKwotK30gIyBhY19mbl9jeHhfdHJ5X2NvbXBpbGUKLSsKLSsjIGFj X2ZuX2N4eF90cnlfY3BwIExJTkVOTwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBU cnkgdG8gcHJlcHJvY2VzcyBjb25mdGVzdC4kYWNfZXh0LCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhp cyBzdWNjZWVkZWQuCi0rYWNfZm5fY3h4X3RyeV9jcHAgKCkKLSt7Ci0rICBhc19saW5lbm89JHth c19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5v X3N0YWNrCi0rICBpZiB7IHsgYWNfdHJ5PSIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiCi0rY2Fz ZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFj X3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlf ZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKLSsk YXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKLSsgIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0 LiRhY19leHQiKSAyPmNvbmZ0ZXN0LmVycgotKyAgYWNfc3RhdHVzPSQ/Ci0rICBpZiB0ZXN0IC1z IGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICBncmVwIC12ICdeICorJyBjb25mdGVzdC5lcnIgPmNv bmZ0ZXN0LmVyMQotKyAgICBjYXQgY29uZnRlc3QuZXIxID4mNQotKyAgICBtdiAtZiBjb25mdGVz dC5lcjEgY29uZnRlc3QuZXJyCi0rICBmaQotKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAw OyB9ID4gY29uZnRlc3QuaSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY3h4X3ByZXByb2Nfd2Fybl9m bGFnJGFjX2N4eF93ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsg ICAgICAgfTsgdGhlbiA6Ci0rICBhY19yZXR2YWw9MAotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNf bWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFj X2V4dCA+JjUKLSsKLSsgICAgYWNfcmV0dmFsPTEKLStmaQotKyAgZXZhbCAkYXNfbGluZW5vX3N0 YWNrOyAke2FzX2xpbmVub19zdGFjazorOn0gdW5zZXQgYXNfbGluZW5vCi0rICBhc19mbl9zZXRf c3RhdHVzICRhY19yZXR2YWwKLSsKLSt9ICMgYWNfZm5fY3h4X3RyeV9jcHAKLSsKLSsjIGFjX2Zu X2NfdHJ5X2NvbXBpbGUgTElORU5PCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMg VHJ5IHRvIGNvbXBpbGUgY29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRoaXMg c3VjY2VlZGVkLgotK2FjX2ZuX2NfdHJ5X2NvbXBpbGUgKCkKLSt7Ci0rICBhc19saW5lbm89JHth c19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5v X3N0YWNrCi0rICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0Ci0rICBpZiB7IHsgYWNfdHJ5PSIk YWNfY29tcGlsZSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpcXCop IGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7OwotK2Vz YWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICRh Y190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQotKyAgKGV2YWwg IiRhY19jb21waWxlIikgMj5jb25mdGVzdC5lcnIKLSsgIGFjX3N0YXR1cz0kPwotKyAgaWYgdGVz dCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXJy ID5jb25mdGVzdC5lcjEKLSsgICAgY2F0IGNvbmZ0ZXN0LmVyMSA+JjUKLSsgICAgbXYgLWYgY29u ZnRlc3QuZXIxIGNvbmZ0ZXN0LmVycgotKyAgZmkKLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVz ID0gMDsgfSAmJiB7Ci0rCSB0ZXN0IC16ICIkYWNfY193ZXJyb3JfZmxhZyIgfHwKLSsJIHRlc3Qg ISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0LiRhY19vYmpl eHQ7IHRoZW4gOgotKyAgYWNfcmV0dmFsPTAKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBm YWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQg PiY1Ci0rCi0rCWFjX3JldHZhbD0xCi0rZmkKLSsgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgJHth c19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFzX2xpbmVubwotKyAgYXNfZm5fc2V0X3N0YXR1cyAk YWNfcmV0dmFsCi0rCi0rfSAjIGFjX2ZuX2NfdHJ5X2NvbXBpbGUKLSsKLSsjIGFjX2ZuX2NfdHJ5 X2xpbmsgTElORU5PCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgVHJ5IHRvIGxpbmsg Y29uZnRlc3QuJGFjX2V4dCwgYW5kIHJldHVybiB3aGV0aGVyIHRoaXMgc3VjY2VlZGVkLgotK2Fj X2ZuX2NfdHJ5X2xpbmsgKCkKLSt7Ci0rICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNf bGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCi0rICBybSAtZiBj b25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4dAotKyAgaWYgeyB7IGFjX3RyeT0i JGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBh Y190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2Fj Ci0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNf dHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKLSsgIChldmFsICIk YWNfbGluayIpIDI+Y29uZnRlc3QuZXJyCi0rICBhY19zdGF0dXM9JD8KLSsgIGlmIHRlc3QgLXMg Y29uZnRlc3QuZXJyOyB0aGVuCi0rICAgIGdyZXAgLXYgJ14gKisnIGNvbmZ0ZXN0LmVyciA+Y29u ZnRlc3QuZXIxCi0rICAgIGNhdCBjb25mdGVzdC5lcjEgPiY1Ci0rICAgIG12IC1mIGNvbmZ0ZXN0 LmVyMSBjb25mdGVzdC5lcnIKLSsgIGZpCi0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7 IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2Nfd2Vycm9yX2ZsYWciIHx8Ci0rCSB0ZXN0ICEgLXMg Y29uZnRlc3QuZXJyCi0rICAgICAgIH0gJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQgJiYg ewotKwkgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXMgfHwKLSsJICRhc190ZXN0X3ggY29u ZnRlc3QkYWNfZXhlZXh0Ci0rICAgICAgIH07IHRoZW4gOgotKyAgYWNfcmV0dmFsPTAKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBmYWlsZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3Mv Xi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1Ci0rCi0rCWFjX3JldHZhbD0xCi0rZmkKLSsgICMg RGVsZXRlIHRoZSBJUEEvSVBPIChJbnRlciBQcm9jZWR1cmFsIEFuYWx5c2lzL09wdGltaXphdGlv bikgaW5mb3JtYXRpb24KLSsgICMgY3JlYXRlZCBieSB0aGUgUEdJIGNvbXBpbGVyIChjb25mdGVz dF9pcGE4X2NvbmZ0ZXN0Lm9vKSwgYXMgaXQgd291bGQKLSsgICMgaW50ZXJmZXJlIHdpdGggdGhl IG5leHQgbGluayBjb21tYW5kOyBhbHNvIGRlbGV0ZSBhIGRpcmVjdG9yeSB0aGF0IGlzCi0rICAj IGxlZnQgYmVoaW5kIGJ5IEFwcGxlJ3MgY29tcGlsZXIuICBXZSBkbyB0aGlzIGJlZm9yZSBleGVj dXRpbmcgdGhlIGFjdGlvbnMuCi0rICBybSAtcmYgY29uZnRlc3QuZFNZTSBjb25mdGVzdF9pcGE4 X2NvbmZ0ZXN0Lm9vCi0rICBldmFsICRhc19saW5lbm9fc3RhY2s7ICR7YXNfbGluZW5vX3N0YWNr Ois6fSB1bnNldCBhc19saW5lbm8KLSsgIGFzX2ZuX3NldF9zdGF0dXMgJGFjX3JldHZhbAotKwot K30gIyBhY19mbl9jX3RyeV9saW5rCi0rCi0rIyBhY19mbl9jX2NoZWNrX2hlYWRlcl9jb21waWxl IExJTkVOTyBIRUFERVIgVkFSIElOQ0xVREVTCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBUZXN0cyB3aGV0aGVyIEhFQURFUiBl eGlzdHMgYW5kIGNhbiBiZSBjb21waWxlZCB1c2luZyB0aGUgaW5jbHVkZSBmaWxlcyBpbgotKyMg SU5DTFVERVMsIHNldHRpbmcgdGhlIGNhY2hlIHZhcmlhYmxlIFZBUiBhY2NvcmRpbmdseS4KLSth Y19mbl9jX2NoZWNrX2hlYWRlcl9jb21waWxlICgpCi0rewotKyAgYXNfbGluZW5vPSR7YXNfbGlu ZW5vLSIkMSJ9IGFzX2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFj awotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgJDIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkMi4uLiAiID4mNjsgfQotK2lm IGV2YWwgXCR7JDMrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0 Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyQ0Ci0rI2luY2x1ZGUgPCQyPgotK19BQ0VPRgot K2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGV2YWwgIiQzPXll cyIKLStlbHNlCi0rICBldmFsICIkMz1ubyIKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rZXZhbCBhY19yZXM9 XCQkMwotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLSsgIGV2YWwg JGFzX2xpbmVub19zdGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFzX2xpbmVubwot KwotK30gIyBhY19mbl9jX2NoZWNrX2hlYWRlcl9jb21waWxlCi0rCi0rIyBhY19mbl9jX3RyeV9j cHAgTElORU5PCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBUcnkgdG8gcHJlcHJvY2Vz cyBjb25mdGVzdC4kYWNfZXh0LCBhbmQgcmV0dXJuIHdoZXRoZXIgdGhpcyBzdWNjZWVkZWQuCi0r YWNfZm5fY190cnlfY3BwICgpCi0rewotKyAgYXNfbGluZW5vPSR7YXNfbGluZW5vLSIkMSJ9IGFz X2xpbmVub19zdGFjaz1hc19saW5lbm9fc3RhY2s9JGFzX2xpbmVub19zdGFjawotKyAgaWYgeyB7 IGFjX3RyeT0iJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4K LSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNf dHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlf ZWNobyI7IH0gPiY1Ci0rICAoZXZhbCAiJGFjX2NwcCBjb25mdGVzdC4kYWNfZXh0IikgMj5jb25m dGVzdC5lcnIKLSsgIGFjX3N0YXR1cz0kPwotKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRo ZW4KLSsgICAgZ3JlcCAtdiAnXiAqKycgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjEKLSsgICAg Y2F0IGNvbmZ0ZXN0LmVyMSA+JjUKLSsgICAgbXYgLWYgY29uZnRlc3QuZXIxIGNvbmZ0ZXN0LmVy cgotKyAgZmkKLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9 ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSA+IGNvbmZ0ZXN0Lmkg JiYgewotKwkgdGVzdCAteiAiJGFjX2NfcHJlcHJvY193YXJuX2ZsYWckYWNfY193ZXJyb3JfZmxh ZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfTsgdGhlbiA6Ci0rICBh Y19yZXR2YWw9MAotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdh czoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsgICAgYWNf cmV0dmFsPTEKLStmaQotKyAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyAke2FzX2xpbmVub19zdGFj azorOn0gdW5zZXQgYXNfbGluZW5vCi0rICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwKLSsK LSt9ICMgYWNfZm5fY190cnlfY3BwCi0rCi0rIyBhY19mbl9jX3RyeV9ydW4gTElORU5PCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBUcnkgdG8gbGluayBjb25mdGVzdC4kYWNfZXh0LCBh bmQgcmV0dXJuIHdoZXRoZXIgdGhpcyBzdWNjZWVkZWQuIEFzc3VtZXMKLSsjIHRoYXQgZXhlY3V0 YWJsZXMgKmNhbiogYmUgcnVuLgotK2FjX2ZuX2NfdHJ5X3J1biAoKQotK3sKLSsgIGFzX2xpbmVu bz0ke2FzX2xpbmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19s aW5lbm9fc3RhY2sKLSsgIGlmIHsgeyBhY190cnk9IiRhY19saW5rIgotK2Nhc2UgIigoJGFjX3Ry eSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAg KikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRh Y190cnlfZWNobyI7IH0gPiY1Ci0rICAoZXZhbCAiJGFjX2xpbmsiKSAyPiY1Ci0rICBhY19zdGF0 dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRh Y19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB7IGFjX3RyeT0nLi9j b25mdGVzdCRhY19leGVleHQnCi0rICB7IHsgY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8 ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0k YWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+ JjUKLSsgIChldmFsICIkYWNfdHJ5IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsg IHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IH07IHRoZW4gOgotKyAgYWNfcmV0dmFsPTAKLStlbHNl Ci0rICAkYXNfZWNobyAiJGFzX21lOiBwcm9ncmFtIGV4aXRlZCB3aXRoIHN0YXR1cyAkYWNfc3Rh dHVzIiA+JjUKLSsgICAgICAgJGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIg PiY1Ci0rc2VkICdzL14vfCAvJyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotKyAgICAgICBhY19y ZXR2YWw9JGFjX3N0YXR1cwotK2ZpCi0rICBybSAtcmYgY29uZnRlc3QuZFNZTSBjb25mdGVzdF9p cGE4X2NvbmZ0ZXN0Lm9vCi0rICBldmFsICRhc19saW5lbm9fc3RhY2s7ICR7YXNfbGluZW5vX3N0 YWNrOis6fSB1bnNldCBhc19saW5lbm8KLSsgIGFzX2ZuX3NldF9zdGF0dXMgJGFjX3JldHZhbAot KwotK30gIyBhY19mbl9jX3RyeV9ydW4KLSsKLSsjIGFjX2ZuX2NfY2hlY2tfZnVuYyBMSU5FTk8g RlVOQyBWQVIKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFRlc3Rz IHdoZXRoZXIgRlVOQyBleGlzdHMsIHNldHRpbmcgdGhlIGNhY2hlIHZhcmlhYmxlIFZBUiBhY2Nv cmRpbmdseQotK2FjX2ZuX2NfY2hlY2tfZnVuYyAoKQotK3sKLSsgIGFzX2xpbmVubz0ke2FzX2xp bmVuby0iJDEifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5vX3N0YWNrPSRhc19saW5lbm9fc3Rh Y2sKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yICQyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJDIuLi4gIiA+JjY7IH0KLStp ZiBldmFsIFwkeyQzKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4 dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsvKiBEZWZpbmUgJDIgdG8gYW4gaW5ub2N1b3Vz IHZhcmlhbnQsIGluIGNhc2UgPGxpbWl0cy5oPiBkZWNsYXJlcyAkMi4KLSsgICBGb3IgZXhhbXBs ZSwgSFAtVVggMTFpIDxsaW1pdHMuaD4gZGVjbGFyZXMgZ2V0dGltZW9mZGF5LiAgKi8KLSsjZGVm aW5lICQyIGlubm9jdW91c18kMgotKwotKy8qIFN5c3RlbSBoZWFkZXIgdG8gZGVmaW5lIF9fc3R1 YiBtYWNyb3MgYW5kIGhvcGVmdWxseSBmZXcgcHJvdG90eXBlcywKLSsgICAgd2hpY2ggY2FuIGNv bmZsaWN0IHdpdGggY2hhciAkMiAoKTsgYmVsb3cuCi0rICAgIFByZWZlciA8bGltaXRzLmg+IHRv IDxhc3NlcnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICAgPGxpbWl0cy5o PiBleGlzdHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLiAgKi8KLSsKLSsjaWZkZWYg X19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3Nl cnQuaD4KLSsjZW5kaWYKLSsKLSsjdW5kZWYgJDIKLSsKLSsvKiBPdmVycmlkZSBhbnkgR0NDIGlu dGVybmFsIHByb3RvdHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBiZWNhdXNl IGludCBtaWdodCBtYXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWlsdGluIGFu ZCB0aGVuIGl0cyBhcmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotKyNp ZmRlZiBfX2NwbHVzcGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyICQyICgpOwotKy8q IFRoZSBHTlUgQyBsaWJyYXJ5IGRlZmluZXMgdGhpcyBmb3IgZnVuY3Rpb25zIHdoaWNoIGl0IGlt cGxlbWVudHMKLSsgICAgdG8gYWx3YXlzIGZhaWwgd2l0aCBFTk9TWVMuICBTb21lIGZ1bmN0aW9u cyBhcmUgYWN0dWFsbHkgbmFtZWQKLSsgICAgc29tZXRoaW5nIHN0YXJ0aW5nIHdpdGggX18gYW5k IHRoZSBub3JtYWwgbmFtZSBpcyBhbiBhbGlhcy4gICovCi0rI2lmIGRlZmluZWQgX19zdHViXyQy IHx8IGRlZmluZWQgX19zdHViX19fJDIKLStjaG9rZSBtZQotKyNlbmRpZgotKwotK2ludAotK21h aW4gKCkKLSt7Ci0rcmV0dXJuICQyICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VP RgotK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGV2YWwgIiQzPXll cyIKLStlbHNlCi0rICBldmFsICIkMz1ubyIKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAotK2ZpCi0rZXZhbCBhY19yZXM9XCQkMwotKwkgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hv ICIkYWNfcmVzIiA+JjY7IH0KLSsgIGV2YWwgJGFzX2xpbmVub19zdGFjazsgJHthc19saW5lbm9f c3RhY2s6Kzp9IHVuc2V0IGFzX2xpbmVubwotKwotK30gIyBhY19mbl9jX2NoZWNrX2Z1bmMKLSsK LSsjIGFjX2ZuX2N4eF90cnlfbGluayBMSU5FTk8KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsjIFRyeSB0byBsaW5rIGNvbmZ0ZXN0LiRhY19leHQsIGFuZCByZXR1cm4gd2hldGhlciB0 aGlzIHN1Y2NlZWRlZC4KLSthY19mbl9jeHhfdHJ5X2xpbmsgKCkKLSt7Ci0rICBhc19saW5lbm89 JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGlu ZW5vX3N0YWNrCi0rICBybSAtZiBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0JGFjX2V4ZWV4 dAotKyAgaWYgeyB7IGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IjsgfSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+Y29uZnRlc3QuZXJyCi0rICBhY19zdGF0 dXM9JD8KLSsgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0rICAgIGdyZXAgLXYgJ14g KisnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIxCi0rICAgIGNhdCBjb25mdGVzdC5lcjEgPiY1 Ci0rICAgIG12IC1mIGNvbmZ0ZXN0LmVyMSBjb25mdGVzdC5lcnIKLSsgIGZpCi0rICAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsg IHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gJiYgewotKwkgdGVzdCAteiAiJGFjX2N4eF93ZXJyb3Jf ZmxhZyIgfHwKLSsJIHRlc3QgISAtcyBjb25mdGVzdC5lcnIKLSsgICAgICAgfSAmJiB0ZXN0IC1z IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAmJiB7Ci0rCSB0ZXN0ICIkY3Jvc3NfY29tcGlsaW5nIiA9IHll cyB8fAotKwkgJGFzX3Rlc3RfeCBjb25mdGVzdCRhY19leGVleHQKLSsgICAgICAgfTsgdGhlbiA6 Ci0rICBhY19yZXR2YWw9MAotK2Vsc2UKLSsgICRhc19lY2hvICIkYXNfbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsKLSsJ YWNfcmV0dmFsPTEKLStmaQotKyAgIyBEZWxldGUgdGhlIElQQS9JUE8gKEludGVyIFByb2NlZHVy YWwgQW5hbHlzaXMvT3B0aW1pemF0aW9uKSBpbmZvcm1hdGlvbgotKyAgIyBjcmVhdGVkIGJ5IHRo ZSBQR0kgY29tcGlsZXIgKGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28pLCBhcyBpdCB3b3VsZAot KyAgIyBpbnRlcmZlcmUgd2l0aCB0aGUgbmV4dCBsaW5rIGNvbW1hbmQ7IGFsc28gZGVsZXRlIGEg ZGlyZWN0b3J5IHRoYXQgaXMKLSsgICMgbGVmdCBiZWhpbmQgYnkgQXBwbGUncyBjb21waWxlci4g IFdlIGRvIHRoaXMgYmVmb3JlIGV4ZWN1dGluZyB0aGUgYWN0aW9ucy4KLSsgIHJtIC1yZiBjb25m dGVzdC5kU1lNIGNvbmZ0ZXN0X2lwYThfY29uZnRlc3Qub28KLSsgIGV2YWwgJGFzX2xpbmVub19z dGFjazsgJHthc19saW5lbm9fc3RhY2s6Kzp9IHVuc2V0IGFzX2xpbmVubwotKyAgYXNfZm5fc2V0 X3N0YXR1cyAkYWNfcmV0dmFsCi0rCi0rfSAjIGFjX2ZuX2N4eF90cnlfbGluawotKwotKyMgYWNf Zm5fY3h4X3RyeV9ydW4gTElORU5PCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIFRy eSB0byBsaW5rIGNvbmZ0ZXN0LiRhY19leHQsIGFuZCByZXR1cm4gd2hldGhlciB0aGlzIHN1Y2Nl ZWRlZC4gQXNzdW1lcwotKyMgdGhhdCBleGVjdXRhYmxlcyAqY2FuKiBiZSBydW4uCi0rYWNfZm5f Y3h4X3RyeV9ydW4gKCkKLSt7Ci0rICBhc19saW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGlu ZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0kYXNfbGluZW5vX3N0YWNrCi0rICBpZiB7IHsgYWNf dHJ5PSIkYWNfbGluayIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIqIHwgKlxgKiB8ICpc XCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hvPSRhY190cnk7Owot K2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9ID4mNQotKyAgKGV2 YWwgIiRhY19saW5rIikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFj X3N0YXR1cyA9IDA7IH0gJiYgeyBhY190cnk9Jy4vY29uZnRlc3QkYWNfZXhlZXh0JwotKyAgeyB7 IGNhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89 XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNf dHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIi Ci0rJGFzX2VjaG8gIiRhY190cnlfZWNobyI7IH0gPiY1Ci0rICAoZXZhbCAiJGFjX3RyeSIpIDI+ JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB9 OyB0aGVuIDoKLSsgIGFjX3JldHZhbD0wCi0rZWxzZQotKyAgJGFzX2VjaG8gIiRhc19tZTogcHJv Z3JhbSBleGl0ZWQgd2l0aCBzdGF0dXMgJGFjX3N0YXR1cyIgPiY1Ci0rICAgICAgICRhc19lY2hv ICIkYXNfbWU6IGZhaWxlZCBwcm9ncmFtIHdhczoiID4mNQotK3NlZCAncy9eL3wgLycgY29uZnRl c3QuJGFjX2V4dCA+JjUKLSsKLSsgICAgICAgYWNfcmV0dmFsPSRhY19zdGF0dXMKLStmaQotKyAg cm0gLXJmIGNvbmZ0ZXN0LmRTWU0gY29uZnRlc3RfaXBhOF9jb25mdGVzdC5vbwotKyAgZXZhbCAk YXNfbGluZW5vX3N0YWNrOyAke2FzX2xpbmVub19zdGFjazorOn0gdW5zZXQgYXNfbGluZW5vCi0r ICBhc19mbl9zZXRfc3RhdHVzICRhY19yZXR2YWwKLSsKLSt9ICMgYWNfZm5fY3h4X3RyeV9ydW4K LSsKLSsjIGFjX2ZuX2N4eF9jaGVja19oZWFkZXJfbW9uZ3JlbCBMSU5FTk8gSEVBREVSIFZBUiBJ TkNMVURFUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBUZXN0cyB3aGV0aGVyIEhFQURFUiBleGlzdHMsIGdpdmluZyBhIHdh cm5pbmcgaWYgaXQgY2Fubm90IGJlIGNvbXBpbGVkIHVzaW5nCi0rIyB0aGUgaW5jbHVkZSBmaWxl cyBpbiBJTkNMVURFUyBhbmQgc2V0dGluZyB0aGUgY2FjaGUgdmFyaWFibGUgVkFSCi0rIyBhY2Nv cmRpbmdseS4KLSthY19mbl9jeHhfY2hlY2tfaGVhZGVyX21vbmdyZWwgKCkKLSt7Ci0rICBhc19s aW5lbm89JHthc19saW5lbm8tIiQxIn0gYXNfbGluZW5vX3N0YWNrPWFzX2xpbmVub19zdGFjaz0k YXNfbGluZW5vX3N0YWNrCi0rICBpZiBldmFsIFwkeyQzKzp9IGZhbHNlOyB0aGVuIDoKLSsgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICQyIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJDIuLi4gIiA+JjY7IH0KLStpZiBldmFsIFwk eyQzKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZmkK LStldmFsIGFjX3Jlcz1cJCQzCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4m NjsgfQotK2Vsc2UKLSsgICMgSXMgdGhlIGhlYWRlciBjb21waWxhYmxlPwotK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgJDIgdXNhYmlsaXR5IiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyAkMiB1c2FiaWxpdHkuLi4gIiA+JjY7IH0KLStjYXQgY29u ZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmgu ICAqLwotKyQ0Ci0rI2luY2x1ZGUgPCQyPgotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfY29t cGlsZSAiJExJTkVOTyI7IHRoZW4gOgotKyAgYWNfaGVhZGVyX2NvbXBpbGVyPXllcwotK2Vsc2UK LSsgIGFjX2hlYWRlcl9jb21waWxlcj1ubwotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIg Y29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0reyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19oZWFkZXJfY29tcGlsZXIiID4mNQot KyRhc19lY2hvICIkYWNfaGVhZGVyX2NvbXBpbGVyIiA+JjY7IH0KLSsKLSsjIElzIHRoZSBoZWFk ZXIgcHJlc2VudD8KLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nICQyIHByZXNlbmNlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyAkMiBwcmVzZW5j ZS4uLiAiID4mNjsgfQotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19l eHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPCQyPgotK19BQ0VPRgotK2lm IGFjX2ZuX2N4eF90cnlfY3BwICIkTElORU5PIjsgdGhlbiA6Ci0rICBhY19oZWFkZXJfcHJlcHJv Yz15ZXMKLStlbHNlCi0rICBhY19oZWFkZXJfcHJlcHJvYz1ubwotK2ZpCi0rcm0gLWYgY29uZnRl c3QuZXJyIGNvbmZ0ZXN0LmkgY29uZnRlc3QuJGFjX2V4dAotK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfaGVhZGVyX3ByZXByb2MiID4mNQotKyRh c19lY2hvICIkYWNfaGVhZGVyX3ByZXByb2MiID4mNjsgfQotKwotKyMgU28/ICBXaGF0IGFib3V0 IHRoaXMgaGVhZGVyPwotK2Nhc2UgJGFjX2hlYWRlcl9jb21waWxlcjokYWNfaGVhZGVyX3ByZXBy b2M6JGFjX2N4eF9wcmVwcm9jX3dhcm5fZmxhZyBpbiAjKCgKLSsgIHllczpubzogKQotKyAgICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6ICQyOiBhY2Nl cHRlZCBieSB0aGUgY29tcGlsZXIsIHJlamVjdGVkIGJ5IHRoZSBwcmVwcm9jZXNzb3IhIiA+JjUK LSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkMjogYWNjZXB0ZWQgYnkgdGhlIGNvbXBpbGVy LCByZWplY3RlZCBieSB0aGUgcHJlcHJvY2Vzc29yISIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkMjogcHJvY2VlZGluZyB3aXRo IHRoZSBjb21waWxlcidzIHJlc3VsdCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog JDI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mMjt9Ci0rICAgIDs7 Ci0rICBubzp5ZXM6KiApCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogV0FSTklORzogJDI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21waWxlZCIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJDI6IHByZXNlbnQgYnV0IGNhbm5vdCBiZSBjb21w aWxlZCIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBXQVJOSU5HOiAkMjogICAgIGNoZWNrIGZvciBtaXNzaW5nIHByZXJlcXVpc2l0ZSBoZWFkZXJz PyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJDI6ICAgICBjaGVjayBmb3IgbWlz c2luZyBwcmVyZXF1aXNpdGUgaGVhZGVycz8iID4mMjt9Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogJDI6IHNlZSB0aGUgQXV0b2NvbmYgZG9j dW1lbnRhdGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogJDI6IHNlZSB0aGUg QXV0b2NvbmYgZG9jdW1lbnRhdGlvbiIgPiYyO30KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkMjogICAgIHNlY3Rpb24gXCJQcmVzZW50IEJ1 dCBDYW5ub3QgQmUgQ29tcGlsZWRcIiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzog JDI6ICAgICBzZWN0aW9uIFwiUHJlc2VudCBCdXQgQ2Fubm90IEJlIENvbXBpbGVkXCIiID4mMjt9 Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzog JDI6IHByb2NlZWRpbmcgd2l0aCB0aGUgY29tcGlsZXIncyByZXN1bHQiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IFdBUk5JTkc6ICQyOiBwcm9jZWVkaW5nIHdpdGggdGhlIGNvbXBpbGVyJ3MgcmVz dWx0IiA+JjI7fQotKyggJGFzX2VjaG8gIiMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIFJlcG9ydCB0aGlzIHRvIG1zb2JjemFrQHVzZXJzLnNv dXJjZWZvcmdlLm5ldCAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLSAjIyIKLSsgICAgICkgfCBzZWQgInMvXi8kYXNfbWU6IFdBUk5JTkc6ICAgICAv IiA+JjIKLSsgICAgOzsKLStlc2FjCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGZvciAkMiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9y ICQyLi4uICIgPiY2OyB9Ci0raWYgZXZhbCBcJHskMys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGV2YWwgIiQzPVwkYWNfaGVhZGVyX2Nv bXBpbGVyIgotK2ZpCi0rZXZhbCBhY19yZXM9XCQkMwotKwkgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hv ICIkYWNfcmVzIiA+JjY7IH0KLStmaQotKyAgZXZhbCAkYXNfbGluZW5vX3N0YWNrOyAke2FzX2xp bmVub19zdGFjazorOn0gdW5zZXQgYXNfbGluZW5vCi0rCi0rfSAjIGFjX2ZuX2N4eF9jaGVja19o ZWFkZXJfbW9uZ3JlbAotK2NhdCA+Y29uZmlnLmxvZyA8PF9BQ0VPRgotK1RoaXMgZmlsZSBjb250 YWlucyBhbnkgbWVzc2FnZXMgcHJvZHVjZWQgYnkgY29tcGlsZXJzIHdoaWxlCi0rcnVubmluZyBj b25maWd1cmUsIHRvIGFpZCBkZWJ1Z2dpbmcgaWYgY29uZmlndXJlIG1ha2VzIGEgbWlzdGFrZS4K LSsKLStJdCB3YXMgY3JlYXRlZCBieSBTT0NJICRhc19tZSAzLjAuMCwgd2hpY2ggd2FzCi0rZ2Vu ZXJhdGVkIGJ5IEdOVSBBdXRvY29uZiAyLjY4LiAgSW52b2NhdGlvbiBjb21tYW5kIGxpbmUgd2Fz Ci0rCi0rICAkICQwICRACi0rCi0rX0FDRU9GCi0rZXhlYyA1Pj5jb25maWcubG9nCi0rewotK2Nh dCA8PF9BU1VOQU1FCi0rIyMgLS0tLS0tLS0tICMjCi0rIyMgUGxhdGZvcm0uICMjCi0rIyMgLS0t LS0tLS0tICMjCi0rCi0raG9zdG5hbWUgPSBgKGhvc3RuYW1lIHx8IHVuYW1lIC1uKSAyPi9kZXYv bnVsbCB8IHNlZCAxcWAKLSt1bmFtZSAtbSA9IGAodW5hbWUgLW0pIDI+L2Rldi9udWxsIHx8IGVj aG8gdW5rbm93bmAKLSt1bmFtZSAtciA9IGAodW5hbWUgLXIpIDI+L2Rldi9udWxsIHx8IGVjaG8g dW5rbm93bmAKLSt1bmFtZSAtcyA9IGAodW5hbWUgLXMpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5r bm93bmAKLSt1bmFtZSAtdiA9IGAodW5hbWUgLXYpIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93 bmAKLSsKLSsvdXNyL2Jpbi91bmFtZSAtcCA9IGAoL3Vzci9iaW4vdW5hbWUgLXApIDI+L2Rldi9u dWxsIHx8IGVjaG8gdW5rbm93bmAKLSsvYmluL3VuYW1lIC1YICAgICA9IGAoL2Jpbi91bmFtZSAt WCkgMj4vZGV2L251bGwgICAgIHx8IGVjaG8gdW5rbm93bmAKLSsKLSsvYmluL2FyY2ggICAgICAg ICAgICAgID0gYCgvYmluL2FyY2gpIDI+L2Rldi9udWxsICAgICAgICAgICAgICB8fCBlY2hvIHVu a25vd25gCi0rL3Vzci9iaW4vYXJjaCAtayAgICAgICA9IGAoL3Vzci9iaW4vYXJjaCAtaykgMj4v ZGV2L251bGwgICAgICAgfHwgZWNobyB1bmtub3duYAotKy91c3IvY29udmV4L2dldHN5c2luZm8g PSBgKC91c3IvY29udmV4L2dldHN5c2luZm8pIDI+L2Rldi9udWxsIHx8IGVjaG8gdW5rbm93bmAK LSsvdXNyL2Jpbi9ob3N0aW5mbyAgICAgID0gYCgvdXNyL2Jpbi9ob3N0aW5mbykgMj4vZGV2L251 bGwgICAgICB8fCBlY2hvIHVua25vd25gCi0rL2Jpbi9tYWNoaW5lICAgICAgICAgICA9IGAoL2Jp bi9tYWNoaW5lKSAyPi9kZXYvbnVsbCAgICAgICAgICAgfHwgZWNobyB1bmtub3duYAotKy91c3Iv YmluL29zbGV2ZWwgICAgICAgPSBgKC91c3IvYmluL29zbGV2ZWwpIDI+L2Rldi9udWxsICAgICAg IHx8IGVjaG8gdW5rbm93bmAKLSsvYmluL3VuaXZlcnNlICAgICAgICAgID0gYCgvYmluL3VuaXZl cnNlKSAyPi9kZXYvbnVsbCAgICAgICAgICB8fCBlY2hvIHVua25vd25gCi0rCi0rX0FTVU5BTUUK LSsKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBp biAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgotKyAgICAkYXNfZWNobyAiUEFUSDogJGFzX2RpciIKLSsgIGRvbmUKLStJRlM9 JGFzX3NhdmVfSUZTCi0rCi0rfSA+JjUKLSsKLStjYXQgPiY1IDw8X0FDRU9GCi0rCi0rCi0rIyMg LS0tLS0tLS0tLS0gIyMKLSsjIyBDb3JlIHRlc3RzLiAjIwotKyMjIC0tLS0tLS0tLS0tICMjCi0r Ci0rX0FDRU9GCi0rCi0rCi0rIyBLZWVwIGEgdHJhY2Ugb2YgdGhlIGNvbW1hbmQgbGluZS4KLSsj IFN0cmlwIG91dCAtLW5vLWNyZWF0ZSBhbmQgLS1uby1yZWN1cnNpb24gc28gdGhleSBkbyBub3Qg cGlsZSB1cC4KLSsjIFN0cmlwIG91dCAtLXNpbGVudCBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8g cmVjb3JkIGl0IGZvciBmdXR1cmUgcnVucy4KLSsjIEFsc28gcXVvdGUgYW55IGFyZ3MgY29udGFp bmluZyBzaGVsbCBtZXRhLWNoYXJhY3RlcnMuCi0rIyBNYWtlIHR3byBwYXNzZXMgdG8gYWxsb3cg Zm9yIHByb3BlciBkdXBsaWNhdGUtYXJndW1lbnQgc3VwcHJlc3Npb24uCi0rYWNfY29uZmlndXJl X2FyZ3M9Ci0rYWNfY29uZmlndXJlX2FyZ3MwPQotK2FjX2NvbmZpZ3VyZV9hcmdzMT0KLSthY19t dXN0X2tlZXBfbmV4dD1mYWxzZQotK2ZvciBhY19wYXNzIGluIDEgMgotK2RvCi0rICBmb3IgYWNf YXJnCi0rICBkbwotKyAgICBjYXNlICRhY19hcmcgaW4KLSsgICAgLW5vLWNyZWF0ZSB8IC0tbm8t YyogfCAtbiB8IC1uby1yZWN1cnNpb24gfCAtLW5vLXIqKSBjb250aW51ZSA7OwotKyAgICAtcSB8 IC1xdWlldCB8IC0tcXVpZXQgfCAtLXF1aWUgfCAtLXF1aSB8IC0tcXUgfCAtLXEgXAotKyAgICB8 IC1zaWxlbnQgfCAtLXNpbGVudCB8IC0tc2lsZW4gfCAtLXNpbGUgfCAtLXNpbCkKLSsgICAgICBj b250aW51ZSA7OwotKyAgICAqXCcqKQotKyAgICAgIGFjX2FyZz1gJGFzX2VjaG8gIiRhY19hcmci IHwgc2VkICJzLycvJ1xcXFxcXFxcJycvZyJgIDs7Ci0rICAgIGVzYWMKLSsgICAgY2FzZSAkYWNf cGFzcyBpbgotKyAgICAxKSBhc19mbl9hcHBlbmQgYWNfY29uZmlndXJlX2FyZ3MwICIgJyRhY19h cmcnIiA7OwotKyAgICAyKQotKyAgICAgIGFzX2ZuX2FwcGVuZCBhY19jb25maWd1cmVfYXJnczEg IiAnJGFjX2FyZyciCi0rICAgICAgaWYgdGVzdCAkYWNfbXVzdF9rZWVwX25leHQgPSB0cnVlOyB0 aGVuCi0rCWFjX211c3Rfa2VlcF9uZXh0PWZhbHNlICMgR290IHZhbHVlLCBiYWNrIHRvIG5vcm1h bC4KLSsgICAgICBlbHNlCi0rCWNhc2UgJGFjX2FyZyBpbgotKwkgICo9KiB8IC0tY29uZmlnLWNh Y2hlIHwgLUMgfCAtZGlzYWJsZS0qIHwgLS1kaXNhYmxlLSogXAotKwkgIHwgLWVuYWJsZS0qIHwg LS1lbmFibGUtKiB8IC1nYXMgfCAtLWcqIHwgLW5mcCB8IC0tbmYqIFwKLSsJICB8IC1xIHwgLXF1 aWV0IHwgLS1xKiB8IC1zaWxlbnQgfCAtLXNpbCogfCAtdiB8IC12ZXJiKiBcCi0rCSAgfCAtd2l0 aC0qIHwgLS13aXRoLSogfCAtd2l0aG91dC0qIHwgLS13aXRob3V0LSogfCAtLXgpCi0rCSAgICBj YXNlICIkYWNfY29uZmlndXJlX2FyZ3MwICIgaW4KLSsJICAgICAgIiRhY19jb25maWd1cmVfYXJn czEiKiIgJyRhY19hcmcnICIqICkgY29udGludWUgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0r CSAgLSogKSBhY19tdXN0X2tlZXBfbmV4dD10cnVlIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAg ICAgIGFzX2ZuX2FwcGVuZCBhY19jb25maWd1cmVfYXJncyAiICckYWNfYXJnJyIKLSsgICAgICA7 OwotKyAgICBlc2FjCi0rICBkb25lCi0rZG9uZQotK3sgYWNfY29uZmlndXJlX2FyZ3MwPTsgdW5z ZXQgYWNfY29uZmlndXJlX2FyZ3MwO30KLSt7IGFjX2NvbmZpZ3VyZV9hcmdzMT07IHVuc2V0IGFj X2NvbmZpZ3VyZV9hcmdzMTt9Ci0rCi0rIyBXaGVuIGludGVycnVwdGVkIG9yIGV4aXQnZCwgY2xl YW51cCB0ZW1wb3JhcnkgZmlsZXMsIGFuZCBjb21wbGV0ZQotKyMgY29uZmlnLmxvZy4gIFdlIHJl bW92ZSBjb21tZW50cyBiZWNhdXNlIGFueXdheSB0aGUgcXVvdGVzIGluIHRoZXJlCi0rIyB3b3Vs ZCBjYXVzZSBwcm9ibGVtcyBvciBsb29rIHVnbHkuCi0rIyBXQVJOSU5HOiBVc2UgJ1wnJyB0byBy ZXByZXNlbnQgYW4gYXBvc3Ryb3BoZSB3aXRoaW4gdGhlIHRyYXAuCi0rIyBXQVJOSU5HOiBEbyBu b3Qgc3RhcnQgdGhlIHRyYXAgY29kZSB3aXRoIGEgbmV3bGluZSwgZHVlIHRvIGEgRnJlZUJTRCA0 LjAgYnVnLgotK3RyYXAgJ2V4aXRfc3RhdHVzPSQ/Ci0rICAjIFNhdmUgaW50byBjb25maWcubG9n IHNvbWUgaW5mb3JtYXRpb24gdGhhdCBtaWdodCBoZWxwIGluIGRlYnVnZ2luZy4KLSsgIHsKLSsg ICAgZWNobwotKwotKyAgICAkYXNfZWNobyAiIyMgLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIENh Y2hlIHZhcmlhYmxlcy4gIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tICMjIgotKyAgICBlY2hvCi0r ICAgICMgVGhlIGZvbGxvd2luZyB3YXkgb2Ygd3JpdGluZyB0aGUgY2FjaGUgbWlzaGFuZGxlcyBu ZXdsaW5lcyBpbiB2YWx1ZXMsCi0rKAotKyAgZm9yIGFjX3ZhciBpbiBgKHNldCkgMj4mMSB8IHNl ZCAtbiAnXCcncy9eXChbYS16QS1aX11bYS16QS1aMC05X10qXCk9LiovXDEvcCdcJydgOyBkbwot KyAgICBldmFsIGFjX3ZhbD1cJCRhY192YXIKLSsgICAgY2FzZSAkYWNfdmFsIGluICMoCi0rICAg ICoke2FzX25sfSopCi0rICAgICAgY2FzZSAkYWNfdmFyIGluICMoCi0rICAgICAgKl9jdl8qKSB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IGNhY2hlIHZh cmlhYmxlICRhY192YXIgY29udGFpbnMgYSBuZXdsaW5lIiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiYy O30gOzsKLSsgICAgICBlc2FjCi0rICAgICAgY2FzZSAkYWNfdmFyIGluICMoCi0rICAgICAgXyB8 IElGUyB8IGFzX25sKSA7OyAjKAotKyAgICAgIEJBU0hfQVJHViB8IEJBU0hfU09VUkNFKSBldmFs ICRhY192YXI9IDs7ICMoCi0rICAgICAgKikgeyBldmFsICRhY192YXI9OyB1bnNldCAkYWNfdmFy O30gOzsKLSsgICAgICBlc2FjIDs7Ci0rICAgIGVzYWMKLSsgIGRvbmUKLSsgIChzZXQpIDI+JjEg fAotKyAgICBjYXNlICRhc19ubGAoYWNfc3BhY2U9J1wnJyAnXCcnOyBzZXQpIDI+JjFgIGluICMo Ci0rICAgICoke2FzX25sfWFjX3NwYWNlPVwgKikKLSsgICAgICBzZWQgLW4gXAotKwkicy8nXCcn LydcJydcXFxcJ1wnJydcJycvZzsKLSsJICBzL15cXChbXyRhc19jcl9hbG51bV0qX2N2X1tfJGFz X2NyX2FsbnVtXSpcXCk9XFwoLipcXCkvXFwxPSdcJydcXDInXCcnL3AiCi0rICAgICAgOzsgIygK LSsgICAgKikKLSsgICAgICBzZWQgLW4gIi9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9h bG51bV0qPS9wIgotKyAgICAgIDs7Ci0rICAgIGVzYWMgfAotKyAgICBzb3J0Ci0rKQotKyAgICBl Y2hvCi0rCi0rICAgICRhc19lY2hvICIjIyAtLS0tLS0tLS0tLS0tLS0tLSAjIwotKyMjIE91dHB1 dCB2YXJpYWJsZXMuICMjCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0gIyMiCi0rICAgIGVjaG8KLSsg ICAgZm9yIGFjX3ZhciBpbiAkYWNfc3Vic3RfdmFycwotKyAgICBkbwotKyAgICAgIGV2YWwgYWNf dmFsPVwkJGFjX3ZhcgotKyAgICAgIGNhc2UgJGFjX3ZhbCBpbgotKyAgICAgICpcJ1wnJyopIGFj X3ZhbD1gJGFzX2VjaG8gIiRhY192YWwiIHwgc2VkICJzLydcJycvJ1wnJ1xcXFxcXFxcJ1wnJydc JycvZyJgOzsKLSsgICAgICBlc2FjCi0rICAgICAgJGFzX2VjaG8gIiRhY192YXI9J1wnJyRhY192 YWwnXCcnIgotKyAgICBkb25lIHwgc29ydAotKyAgICBlY2hvCi0rCi0rICAgIGlmIHRlc3QgLW4g IiRhY19zdWJzdF9maWxlcyI7IHRoZW4KLSsgICAgICAkYXNfZWNobyAiIyMgLS0tLS0tLS0tLS0t LS0tLS0tLSAjIwotKyMjIEZpbGUgc3Vic3RpdHV0aW9ucy4gIyMKLSsjIyAtLS0tLS0tLS0tLS0t LS0tLS0tICMjIgotKyAgICAgIGVjaG8KLSsgICAgICBmb3IgYWNfdmFyIGluICRhY19zdWJzdF9m aWxlcwotKyAgICAgIGRvCi0rCWV2YWwgYWNfdmFsPVwkJGFjX3ZhcgotKwljYXNlICRhY192YWwg aW4KLSsJKlwnXCcnKikgYWNfdmFsPWAkYXNfZWNobyAiJGFjX3ZhbCIgfCBzZWQgInMvJ1wnJy8n XCcnXFxcXFxcXFwnXCcnJ1wnJy9nImA7OwotKwllc2FjCi0rCSRhc19lY2hvICIkYWNfdmFyPSdc JyckYWNfdmFsJ1wnJyIKLSsgICAgICBkb25lIHwgc29ydAotKyAgICAgIGVjaG8KLSsgICAgZmkK LSsKLSsgICAgaWYgdGVzdCAtcyBjb25mZGVmcy5oOyB0aGVuCi0rICAgICAgJGFzX2VjaG8gIiMj IC0tLS0tLS0tLS0tICMjCi0rIyMgY29uZmRlZnMuaC4gIyMKLSsjIyAtLS0tLS0tLS0tLSAjIyIK LSsgICAgICBlY2hvCi0rICAgICAgY2F0IGNvbmZkZWZzLmgKLSsgICAgICBlY2hvCi0rICAgIGZp Ci0rICAgIHRlc3QgIiRhY19zaWduYWwiICE9IDAgJiYKLSsgICAgICAkYXNfZWNobyAiJGFzX21l OiBjYXVnaHQgc2lnbmFsICRhY19zaWduYWwiCi0rICAgICRhc19lY2hvICIkYXNfbWU6IGV4aXQg JGV4aXRfc3RhdHVzIgotKyAgfSA+JjUKLSsgIHJtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRl c3QuKiAmJgotKyAgICBybSAtZiAtciBjb25mdGVzdCogY29uZmRlZnMqIGNvbmYkJCogJGFjX2Ns ZWFuX2ZpbGVzICYmCi0rICAgIGV4aXQgJGV4aXRfc3RhdHVzCi0rJyAwCi0rZm9yIGFjX3NpZ25h bCBpbiAxIDIgMTMgMTU7IGRvCi0rICB0cmFwICdhY19zaWduYWw9JyRhY19zaWduYWwnOyBhc19m bl9leGl0IDEnICRhY19zaWduYWwKLStkb25lCi0rYWNfc2lnbmFsPTAKLSsKLSsjIGNvbmZkZWZz LmggYXZvaWRzIE9TIGNvbW1hbmQgbGluZSBsZW5ndGggbGltaXRzIHRoYXQgREVGUyBjYW4gZXhj ZWVkLgotK3JtIC1mIC1yIGNvbmZ0ZXN0KiBjb25mZGVmcy5oCi0rCi0rJGFzX2VjaG8gIi8qIGNv bmZkZWZzLmggKi8iID4gY29uZmRlZnMuaAotKwotKyMgUHJlZGVmaW5lZCBwcmVwcm9jZXNzb3Ig dmFyaWFibGVzLgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIFBBQ0tB R0VfTkFNRSAiJFBBQ0tBR0VfTkFNRSIKLStfQUNFT0YKLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8 X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX1RBUk5BTUUgIiRQQUNLQUdFX1RBUk5BTUUiCi0rX0FD RU9GCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgUEFDS0FHRV9WRVJT SU9OICIkUEFDS0FHRV9WRVJTSU9OIgotK19BQ0VPRgotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxf QUNFT0YKLSsjZGVmaW5lIFBBQ0tBR0VfU1RSSU5HICIkUEFDS0FHRV9TVFJJTkciCi0rX0FDRU9G Ci0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgUEFDS0FHRV9CVUdSRVBP UlQgIiRQQUNLQUdFX0JVR1JFUE9SVCIKLStfQUNFT0YKLSsKLStjYXQgPj5jb25mZGVmcy5oIDw8 X0FDRU9GCi0rI2RlZmluZSBQQUNLQUdFX1VSTCAiJFBBQ0tBR0VfVVJMIgotK19BQ0VPRgotKwot KwotKyMgTGV0IHRoZSBzaXRlIGZpbGUgc2VsZWN0IGFuIGFsdGVybmF0ZSBjYWNoZSBmaWxlIGlm IGl0IHdhbnRzIHRvLgotKyMgUHJlZmVyIGFuIGV4cGxpY2l0bHkgc2VsZWN0ZWQgZmlsZSB0byBh dXRvbWF0aWNhbGx5IHNlbGVjdGVkIG9uZXMuCi0rYWNfc2l0ZV9maWxlMT1OT05FCi0rYWNfc2l0 ZV9maWxlMj1OT05FCi0raWYgdGVzdCAtbiAiJENPTkZJR19TSVRFIjsgdGhlbgotKyAgIyBXZSBk byBub3Qgd2FudCBhIFBBVEggc2VhcmNoIGZvciBjb25maWcuc2l0ZS4KLSsgIGNhc2UgJENPTkZJ R19TSVRFIGluICMoKAotKyAgICAtKikgIGFjX3NpdGVfZmlsZTE9Li8kQ09ORklHX1NJVEU7Owot KyAgICAqLyopIGFjX3NpdGVfZmlsZTE9JENPTkZJR19TSVRFOzsKLSsgICAgKikgICBhY19zaXRl X2ZpbGUxPS4vJENPTkZJR19TSVRFOzsKLSsgIGVzYWMKLStlbGlmIHRlc3QgIngkcHJlZml4IiAh PSB4Tk9ORTsgdGhlbgotKyAgYWNfc2l0ZV9maWxlMT0kcHJlZml4L3NoYXJlL2NvbmZpZy5zaXRl Ci0rICBhY19zaXRlX2ZpbGUyPSRwcmVmaXgvZXRjL2NvbmZpZy5zaXRlCi0rZWxzZQotKyAgYWNf c2l0ZV9maWxlMT0kYWNfZGVmYXVsdF9wcmVmaXgvc2hhcmUvY29uZmlnLnNpdGUKLSsgIGFjX3Np dGVfZmlsZTI9JGFjX2RlZmF1bHRfcHJlZml4L2V0Yy9jb25maWcuc2l0ZQotK2ZpCi0rZm9yIGFj X3NpdGVfZmlsZSBpbiAiJGFjX3NpdGVfZmlsZTEiICIkYWNfc2l0ZV9maWxlMiIKLStkbwotKyAg dGVzdCAieCRhY19zaXRlX2ZpbGUiID0geE5PTkUgJiYgY29udGludWUKLSsgIGlmIHRlc3QgL2Rl di9udWxsICE9ICIkYWNfc2l0ZV9maWxlIiAmJiB0ZXN0IC1yICIkYWNfc2l0ZV9maWxlIjsgdGhl bgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGxvYWRpbmcg c2l0ZSBzY3JpcHQgJGFjX3NpdGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogbG9hZGlu ZyBzaXRlIHNjcmlwdCAkYWNfc2l0ZV9maWxlIiA+JjY7fQotKyAgICBzZWQgJ3MvXi98IC8nICIk YWNfc2l0ZV9maWxlIiA+JjUKLSsgICAgLiAiJGFjX3NpdGVfZmlsZSIgXAotKyAgICAgIHx8IHsg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNf cHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYy O30KLSthc19mbl9lcnJvciAkPyAiZmFpbGVkIHRvIGxvYWQgc2l0ZSBzY3JpcHQgJGFjX3NpdGVf ZmlsZQotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRldGFpbHMiICIkTElORU5PIiA1OyB9 Ci0rICBmaQotK2RvbmUKLSsKLStpZiB0ZXN0IC1yICIkY2FjaGVfZmlsZSI7IHRoZW4KLSsgICMg U29tZSB2ZXJzaW9ucyBvZiBiYXNoIHdpbGwgZmFpbCB0byBzb3VyY2UgL2Rldi9udWxsIChzcGVj aWFsIGZpbGVzCi0rICAjIGFjdHVhbGx5KSwgc28gd2UgYXZvaWQgZG9pbmcgdGhhdC4gIERKR1BQ IGVtdWxhdGVzIGl0IGFzIGEgcmVndWxhciBmaWxlLgotKyAgaWYgdGVzdCAvZGV2L251bGwgIT0g IiRjYWNoZV9maWxlIiAmJiB0ZXN0IC1mICIkY2FjaGVfZmlsZSI7IHRoZW4KLSsgICAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBsb2FkaW5nIGNhY2hlICRjYWNoZV9m aWxlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBsb2FkaW5nIGNhY2hlICRjYWNoZV9maWxlIiA+ JjY7fQotKyAgICBjYXNlICRjYWNoZV9maWxlIGluCi0rICAgICAgW1xcL10qIHwgPzpbXFwvXSog KSAuICIkY2FjaGVfZmlsZSI7OwotKyAgICAgICopICAgICAgICAgICAgICAgICAgICAgIC4gIi4v JGNhY2hlX2ZpbGUiOzsKLSsgICAgZXNhYwotKyAgZmkKLStlbHNlCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNyZWF0aW5nIGNhY2hlICRjYWNoZV9maWxlIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBjcmVhdGluZyBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2O30K LSsgID4kY2FjaGVfZmlsZQotK2ZpCi0rCi0rIyBDaGVjayB0aGF0IHRoZSBwcmVjaW91cyB2YXJp YWJsZXMgc2F2ZWQgaW4gdGhlIGNhY2hlIGhhdmUga2VwdCB0aGUgc2FtZQotKyMgdmFsdWUuCi0r YWNfY2FjaGVfY29ycnVwdGVkPWZhbHNlCi0rZm9yIGFjX3ZhciBpbiAkYWNfcHJlY2lvdXNfdmFy czsgZG8KLSsgIGV2YWwgYWNfb2xkX3NldD1cJGFjX2N2X2Vudl8ke2FjX3Zhcn1fc2V0Ci0rICBl dmFsIGFjX25ld19zZXQ9XCRhY19lbnZfJHthY192YXJ9X3NldAotKyAgZXZhbCBhY19vbGRfdmFs PVwkYWNfY3ZfZW52XyR7YWNfdmFyfV92YWx1ZQotKyAgZXZhbCBhY19uZXdfdmFsPVwkYWNfZW52 XyR7YWNfdmFyfV92YWx1ZQotKyAgY2FzZSAkYWNfb2xkX3NldCwkYWNfbmV3X3NldCBpbgotKyAg ICBzZXQsKQotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog ZXJyb3I6IFxgJGFjX3Zhcicgd2FzIHNldCB0byBcYCRhY19vbGRfdmFsJyBpbiB0aGUgcHJldmlv dXMgcnVuIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogXGAkYWNfdmFyJyB3YXMgc2V0 IHRvIFxgJGFjX29sZF92YWwnIGluIHRoZSBwcmV2aW91cyBydW4iID4mMjt9Ci0rICAgICAgYWNf Y2FjaGVfY29ycnVwdGVkPTogOzsKLSsgICAgLHNldCkKLSsgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBcYCRhY192YXInIHdhcyBub3Qgc2V0IGlu IHRoZSBwcmV2aW91cyBydW4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBcYCRhY192 YXInIHdhcyBub3Qgc2V0IGluIHRoZSBwcmV2aW91cyBydW4iID4mMjt9Ci0rICAgICAgYWNfY2Fj aGVfY29ycnVwdGVkPTogOzsKLSsgICAgLCk7OwotKyAgICAqKQotKyAgICAgIGlmIHRlc3QgIngk YWNfb2xkX3ZhbCIgIT0gIngkYWNfbmV3X3ZhbCI7IHRoZW4KLSsJIyBkaWZmZXJlbmNlcyBpbiB3 aGl0ZXNwYWNlIGRvIG5vdCBsZWFkIHRvIGZhaWx1cmUuCi0rCWFjX29sZF92YWxfdz1gZWNobyB4 ICRhY19vbGRfdmFsYAotKwlhY19uZXdfdmFsX3c9YGVjaG8geCAkYWNfbmV3X3ZhbGAKLSsJaWYg dGVzdCAiJGFjX29sZF92YWxfdyIgIT0gIiRhY19uZXdfdmFsX3ciOyB0aGVuCi0rCSAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogXGAkYWNfdmFyJyBoYXMg Y2hhbmdlZCBzaW5jZSB0aGUgcHJldmlvdXMgcnVuOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6IFxgJGFjX3ZhcicgaGFzIGNoYW5nZWQgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4m Mjt9Ci0rCSAgYWNfY2FjaGVfY29ycnVwdGVkPToKLSsJZWxzZQotKwkgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogd2FybmluZzogaWdub3Jpbmcgd2hpdGVzcGFjZSBj aGFuZ2VzIGluIFxgJGFjX3Zhcicgc2luY2UgdGhlIHByZXZpb3VzIHJ1bjoiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IHdhcm5pbmc6IGlnbm9yaW5nIHdoaXRlc3BhY2UgY2hhbmdlcyBpbiBcYCRh Y192YXInIHNpbmNlIHRoZSBwcmV2aW91cyBydW46IiA+JjI7fQotKwkgIGV2YWwgJGFjX3Zhcj1c JGFjX29sZF92YWwKLSsJZmkKLSsJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiAgIGZvcm1lciB2YWx1ZTogIFxgJGFjX29sZF92YWwnIiA+JjUKLSskYXNfZWNobyAiJGFz X21lOiAgIGZvcm1lciB2YWx1ZTogIFxgJGFjX29sZF92YWwnIiA+JjI7fQotKwl7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306ICAgY3VycmVudCB2YWx1ZTogXGAkYWNfbmV3 X3ZhbCciID4mNQotKyRhc19lY2hvICIkYXNfbWU6ICAgY3VycmVudCB2YWx1ZTogXGAkYWNfbmV3 X3ZhbCciID4mMjt9Ci0rICAgICAgZmk7OwotKyAgZXNhYwotKyAgIyBQYXNzIHByZWNpb3VzIHZh cmlhYmxlcyB0byBjb25maWcuc3RhdHVzLgotKyAgaWYgdGVzdCAiJGFjX25ld19zZXQiID0gc2V0 OyB0aGVuCi0rICAgIGNhc2UgJGFjX25ld192YWwgaW4KLSsgICAgKlwnKikgYWNfYXJnPSRhY192 YXI9YCRhc19lY2hvICIkYWNfbmV3X3ZhbCIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsK LSsgICAgKikgYWNfYXJnPSRhY192YXI9JGFjX25ld192YWwgOzsKLSsgICAgZXNhYwotKyAgICBj YXNlICIgJGFjX2NvbmZpZ3VyZV9hcmdzICIgaW4KLSsgICAgICAqIiAnJGFjX2FyZycgIiopIDs7 ICMgQXZvaWQgZHVwcy4gIFVzZSBvZiBxdW90ZXMgZW5zdXJlcyBhY2N1cmFjeS4KLSsgICAgICAq KSBhc19mbl9hcHBlbmQgYWNfY29uZmlndXJlX2FyZ3MgIiAnJGFjX2FyZyciIDs7Ci0rICAgIGVz YWMKLSsgIGZpCi0rZG9uZQotK2lmICRhY19jYWNoZV9jb3JydXB0ZWQ7IHRoZW4KLSsgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6 IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0r ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBjaGFuZ2Vz IGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJvbWlzZSB0aGUgYnVpbGQiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IGVycm9yOiBjaGFuZ2VzIGluIHRoZSBlbnZpcm9ubWVudCBjYW4gY29tcHJv bWlzZSB0aGUgYnVpbGQiID4mMjt9Ci0rICBhc19mbl9lcnJvciAkPyAicnVuIFxgbWFrZSBkaXN0 Y2xlYW4nIGFuZC9vciBcYHJtICRjYWNoZV9maWxlJyBhbmQgc3RhcnQgb3ZlciIgIiRMSU5FTk8i IDUKLStmaQotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rIyMgTWFpbiBib2R5IG9mIHNj cmlwdC4gIyMKLSsjIyAtLS0tLS0tLS0tLS0tLS0tLS0tLSAjIwotKwotK2FjX2V4dD1jCi0rYWNf Y3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rCi0rYWNfY29u ZmlnX2hlYWRlcnM9IiRhY19jb25maWdfaGVhZGVycyBzb2NpL2NvbmZpZy5oIgotKwotKwotK2Fj X2F1eF9kaXI9Ci0rZm9yIGFjX2RpciBpbiBjb25maWcgIiRzcmNkaXIiL2NvbmZpZzsgZG8KLSsg IGlmIHRlc3QgLWYgIiRhY19kaXIvaW5zdGFsbC1zaCI7IHRoZW4KLSsgICAgYWNfYXV4X2Rpcj0k YWNfZGlyCi0rICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL2luc3RhbGwtc2ggLWMiCi0r ICAgIGJyZWFrCi0rICBlbGlmIHRlc3QgLWYgIiRhY19kaXIvaW5zdGFsbC5zaCI7IHRoZW4KLSsg ICAgYWNfYXV4X2Rpcj0kYWNfZGlyCi0rICAgIGFjX2luc3RhbGxfc2g9IiRhY19hdXhfZGlyL2lu c3RhbGwuc2ggLWMiCi0rICAgIGJyZWFrCi0rICBlbGlmIHRlc3QgLWYgIiRhY19kaXIvc2h0b29s IjsgdGhlbgotKyAgICBhY19hdXhfZGlyPSRhY19kaXIKLSsgICAgYWNfaW5zdGFsbF9zaD0iJGFj X2F1eF9kaXIvc2h0b29sIGluc3RhbGwgLWMiCi0rICAgIGJyZWFrCi0rICBmaQotK2RvbmUKLStp ZiB0ZXN0IC16ICIkYWNfYXV4X2RpciI7IHRoZW4KLSsgIGFzX2ZuX2Vycm9yICQ/ICJjYW5ub3Qg ZmluZCBpbnN0YWxsLXNoLCBpbnN0YWxsLnNoLCBvciBzaHRvb2wgaW4gY29uZmlnIFwiJHNyY2Rp clwiL2NvbmZpZyIgIiRMSU5FTk8iIDUKLStmaQotKwotKyMgVGhlc2UgdGhyZWUgdmFyaWFibGVz IGFyZSB1bmRvY3VtZW50ZWQgYW5kIHVuc3VwcG9ydGVkLAotKyMgYW5kIGFyZSBpbnRlbmRlZCB0 byBiZSB3aXRoZHJhd24gaW4gYSBmdXR1cmUgQXV0b2NvbmYgcmVsZWFzZS4KLSsjIFRoZXkgY2Fu IGNhdXNlIHNlcmlvdXMgcHJvYmxlbXMgaWYgYSBidWlsZGVyJ3Mgc291cmNlIHRyZWUgaXMgaW4g YSBkaXJlY3RvcnkKLSsjIHdob3NlIGZ1bGwgbmFtZSBjb250YWlucyB1bnVzdWFsIGNoYXJhY3Rl cnMuCi0rYWNfY29uZmlnX2d1ZXNzPSIkU0hFTEwgJGFjX2F1eF9kaXIvY29uZmlnLmd1ZXNzIiAg IyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgotK2FjX2NvbmZpZ19zdWI9IiRTSEVMTCAkYWNf YXV4X2Rpci9jb25maWcuc3ViIiAgIyBQbGVhc2UgZG9uJ3QgdXNlIHRoaXMgdmFyLgotK2FjX2Nv bmZpZ3VyZT0iJFNIRUxMICRhY19hdXhfZGlyL2NvbmZpZ3VyZSIgICMgUGxlYXNlIGRvbid0IHVz ZSB0aGlzIHZhci4KLSsKLSsKLSthbV9fYXBpX3ZlcnNpb249JzEuMTEnCi0rCi0rIyBGaW5kIGEg Z29vZCBpbnN0YWxsIHByb2dyYW0uICBXZSBwcmVmZXIgYSBDIHByb2dyYW0gKGZhc3RlciksCi0r IyBzbyBvbmUgc2NyaXB0IGlzIGFzIGdvb2QgYXMgYW5vdGhlci4gIEJ1dCBhdm9pZCB0aGUgYnJv a2VuIG9yCi0rIyBpbmNvbXBhdGlibGUgdmVyc2lvbnM6Ci0rIyBTeXNWIC9ldGMvaW5zdGFsbCwg L3Vzci9zYmluL2luc3RhbGwKLSsjIFN1bk9TIC91c3IvZXRjL2luc3RhbGwKLSsjIElSSVggL3Ni aW4vaW5zdGFsbAotKyMgQUlYIC9iaW4vaW5zdGFsbAotKyMgQW1pZ2FPUyAvQy9pbnN0YWxsLCB3 aGljaCBpbnN0YWxscyBib290YmxvY2tzIG9uIGZsb3BweSBkaXNjcwotKyMgQUlYIDQgL3Vzci9i aW4vaW5zdGFsbGJzZCwgd2hpY2ggZG9lc24ndCB3b3JrIHdpdGhvdXQgYSAtZyBmbGFnCi0rIyBB RlMgL3Vzci9hZnN3cy9iaW4vaW5zdGFsbCwgd2hpY2ggbWlzaGFuZGxlcyBub25leGlzdGVudCBh cmdzCi0rIyBTVlI0IC91c3IvdWNiL2luc3RhbGwsIHdoaWNoIHRyaWVzIHRvIHVzZSB0aGUgbm9u ZXhpc3RlbnQgZ3JvdXAgInN0YWZmIgotKyMgT1MvMidzIHN5c3RlbSBpbnN0YWxsLCB3aGljaCBo YXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBzZW1hbnRpYwotKyMgLi9pbnN0YWxsLCB3aGljaCBj YW4gYmUgZXJyb25lb3VzbHkgY3JlYXRlZCBieSBtYWtlIGZyb20gLi9pbnN0YWxsLnNoLgotKyMg UmVqZWN0IGluc3RhbGwgcHJvZ3JhbXMgdGhhdCBjYW5ub3QgaW5zdGFsbCBtdWx0aXBsZSBmaWxl cy4KLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZv ciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciBhIEJTRC1jb21wYXRpYmxlIGluc3RhbGwuLi4gIiA+JjY7IH0KLStpZiB0ZXN0IC16ICIkSU5T VEFMTCI7IHRoZW4KLStpZiAke2FjX2N2X3BhdGhfaW5zdGFsbCs6fSBmYWxzZTsgdGhlbiA6Ci0r ICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0k YXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgICMgQWNj b3VudCBmb3IgcGVvcGxlIHdobyBwdXQgdHJhaWxpbmcgc2xhc2hlcyBpbiBQQVRIIGVsZW1lbnRz LgotK2Nhc2UgJGFzX2Rpci8gaW4gIygoCi0rICAuLyB8IC4vLyB8IC9bY0NdLyogfCBcCi0rICAv ZXRjLyogfCAvdXNyL3NiaW4vKiB8IC91c3IvZXRjLyogfCAvc2Jpbi8qIHwgL3Vzci9hZnN3cy9i aW4vKiB8IFwKLSsgID86W1xcL11vczJbXFwvXWluc3RhbGxbXFwvXSogfCA/OltcXC9dT1MyW1xc L11JTlNUQUxMW1xcL10qIHwgXAotKyAgL3Vzci91Y2IvKiApIDs7Ci0rICAqKQotKyAgICAjIE9T RjEgYW5kIFNDTyBPRFQgMy4wIGhhdmUgdGhlaXIgb3duIG5hbWVzIGZvciBpbnN0YWxsLgotKyAg ICAjIERvbid0IHVzZSBpbnN0YWxsYnNkIGZyb20gT1NGIHNpbmNlIGl0IGluc3RhbGxzIHN0dWZm IGFzIHJvb3QKLSsgICAgIyBieSBkZWZhdWx0LgotKyAgICBmb3IgYWNfcHJvZyBpbiBnaW5zdGFs bCBzY29pbnN0IGluc3RhbGw7IGRvCi0rICAgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19l eGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rCWlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfcHJv ZyRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4 dCI7IH07IHRoZW4KLSsJICBpZiB0ZXN0ICRhY19wcm9nID0gaW5zdGFsbCAmJgotKwkgICAgZ3Jl cCBkc3Btc2cgIiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiID4vZGV2L251bGwgMj4mMTsg dGhlbgotKwkgICAgIyBBSVggaW5zdGFsbC4gIEl0IGhhcyBhbiBpbmNvbXBhdGlibGUgY2FsbGlu ZyBjb252ZW50aW9uLgotKwkgICAgOgotKwkgIGVsaWYgdGVzdCAkYWNfcHJvZyA9IGluc3RhbGwg JiYKLSsJICAgIGdyZXAgcHdwbHVzICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiA+L2Rl di9udWxsIDI+JjE7IHRoZW4KLSsJICAgICMgcHJvZ3JhbS1zcGVjaWZpYyBpbnN0YWxsIHNjcmlw dCB1c2VkIGJ5IEhQIHB3cGx1cy0tZG9uJ3QgdXNlLgotKwkgICAgOgotKwkgIGVsc2UKLSsJICAg IHJtIC1yZiBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvIGNvbmZ0ZXN0LmRpcgotKwkgICAgZWNo byBvbmUgPiBjb25mdGVzdC5vbmUKLSsJICAgIGVjaG8gdHdvID4gY29uZnRlc3QudHdvCi0rCSAg ICBta2RpciBjb25mdGVzdC5kaXIKLSsJICAgIGlmICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNf ZXh0IiAtYyBjb25mdGVzdC5vbmUgY29uZnRlc3QudHdvICJgcHdkYC9jb25mdGVzdC5kaXIiICYm Ci0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3Qub25lICYmIHRlc3QgLXMgY29uZnRlc3QudHdvICYm Ci0rCSAgICAgIHRlc3QgLXMgY29uZnRlc3QuZGlyL2NvbmZ0ZXN0Lm9uZSAmJgotKwkgICAgICB0 ZXN0IC1zIGNvbmZ0ZXN0LmRpci9jb25mdGVzdC50d28KLSsJICAgIHRoZW4KLSsJICAgICAgYWNf Y3ZfcGF0aF9pbnN0YWxsPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IC1jIgotKwkgICAg ICBicmVhayAzCi0rCSAgICBmaQotKwkgIGZpCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICBkb25l Ci0rICAgIDs7Ci0rZXNhYwotKwotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStybSAt cmYgY29uZnRlc3Qub25lIGNvbmZ0ZXN0LnR3byBjb25mdGVzdC5kaXIKLSsKLStmaQotKyAgaWYg dGVzdCAiJHthY19jdl9wYXRoX2luc3RhbGwrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgICAgSU5TVEFM TD0kYWNfY3ZfcGF0aF9pbnN0YWxsCi0rICBlbHNlCi0rICAgICMgQXMgYSBsYXN0IHJlc29ydCwg dXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIERvbid0IGNhY2hlIGEKLSsgICAgIyB2YWx1ZSBm b3IgSU5TVEFMTCB3aXRoaW4gYSBzb3VyY2UgZGlyZWN0b3J5LCBiZWNhdXNlIHRoYXQgd2lsbAot KyAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVzaW5nIHRoZSBjYWNoZSBpZiB0aGF0IGRpcmVj dG9yeSBpcwotKyAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSB2YWx1ZSBpcyBhIHJlbGF0aXZlIG5h bWUuCi0rICAgIElOU1RBTEw9JGFjX2luc3RhbGxfc2gKLSsgIGZpCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJElOU1RBTEwiID4mNQotKyRh c19lY2hvICIkSU5TVEFMTCIgPiY2OyB9Ci0rCi0rIyBVc2UgdGVzdCAteiBiZWNhdXNlIFN1bk9T NCBzaCBtaXNoYW5kbGVzIGJyYWNlcyBpbiAke3Zhci12YWx9LgotKyMgSXQgdGhpbmtzIHRoZSBm aXJzdCBjbG9zZSBicmFjZSBlbmRzIHRoZSB2YXJpYWJsZSBzdWJzdGl0dXRpb24uCi0rdGVzdCAt eiAiJElOU1RBTExfUFJPR1JBTSIgJiYgSU5TVEFMTF9QUk9HUkFNPScke0lOU1RBTEx9JwotKwot K3Rlc3QgLXogIiRJTlNUQUxMX1NDUklQVCIgJiYgSU5TVEFMTF9TQ1JJUFQ9JyR7SU5TVEFMTH0n Ci0rCi0rdGVzdCAteiAiJElOU1RBTExfREFUQSIgJiYgSU5TVEFMTF9EQVRBPScke0lOU1RBTEx9 IC1tIDY0NCcKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIHdoZXRoZXIgYnVpbGQgZW52aXJvbm1lbnQgaXMgc2FuZSIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciBidWlsZCBlbnZpcm9ubWVudCBpcyBzYW5lLi4uICIgPiY2OyB9 Ci0rIyBKdXN0IGluIGNhc2UKLStzbGVlcCAxCi0rZWNobyB0aW1lc3RhbXAgPiBjb25mdGVzdC5m aWxlCi0rIyBSZWplY3QgdW5zYWZlIGNoYXJhY3RlcnMgaW4gJHNyY2RpciBvciB0aGUgYWJzb2x1 dGUgd29ya2luZyBkaXJlY3RvcnkKLSsjIG5hbWUuICBBY2NlcHQgc3BhY2UgYW5kIHRhYiBvbmx5 IGluIHRoZSBsYXR0ZXIuCi0rYW1fbGY9JwotKycKLStjYXNlIGBwd2RgIGluCi0rICAqW1xcXCJc I1wkXCZcJ1xgJGFtX2xmXSopCi0rICAgIGFzX2ZuX2Vycm9yICQ/ICJ1bnNhZmUgYWJzb2x1dGUg d29ya2luZyBkaXJlY3RvcnkgbmFtZSIgIiRMSU5FTk8iIDU7OwotK2VzYWMKLStjYXNlICRzcmNk aXIgaW4KLSsgICpbXFxcIlwjXCRcJlwnXGAkYW1fbGZcIFwJXSopCi0rICAgIGFzX2ZuX2Vycm9y ICQ/ICJ1bnNhZmUgc3JjZGlyIHZhbHVlOiBcYCRzcmNkaXInIiAiJExJTkVOTyIgNTs7Ci0rZXNh YwotKwotKyMgRG8gYHNldCcgaW4gYSBzdWJzaGVsbCBzbyB3ZSBkb24ndCBjbG9iYmVyIHRoZSBj dXJyZW50IHNoZWxsJ3MKLSsjIGFyZ3VtZW50cy4gIE11c3QgdHJ5IC1MIGZpcnN0IGluIGNhc2Ug Y29uZmlndXJlIGlzIGFjdHVhbGx5IGEKLSsjIHN5bWxpbms7IHNvbWUgc3lzdGVtcyBwbGF5IHdl aXJkIGdhbWVzIHdpdGggdGhlIG1vZCB0aW1lIG9mIHN5bWxpbmtzCi0rIyAoZWcgRnJlZUJTRCBy ZXR1cm5zIHRoZSBtb2QgdGltZSBvZiB0aGUgc3ltbGluaydzIGNvbnRhaW5pbmcKLSsjIGRpcmVj dG9yeSkuCi0raWYgKAotKyAgIHNldCBYIGBscyAtTHQgIiRzcmNkaXIvY29uZmlndXJlIiBjb25m dGVzdC5maWxlIDI+IC9kZXYvbnVsbGAKLSsgICBpZiB0ZXN0ICIkKiIgPSAiWCI7IHRoZW4KLSsg ICAgICAjIC1MIGRpZG4ndCB3b3JrLgotKyAgICAgIHNldCBYIGBscyAtdCAiJHNyY2Rpci9jb25m aWd1cmUiIGNvbmZ0ZXN0LmZpbGVgCi0rICAgZmkKLSsgICBybSAtZiBjb25mdGVzdC5maWxlCi0r ICAgaWYgdGVzdCAiJCoiICE9ICJYICRzcmNkaXIvY29uZmlndXJlIGNvbmZ0ZXN0LmZpbGUiIFwK LSsgICAgICAmJiB0ZXN0ICIkKiIgIT0gIlggY29uZnRlc3QuZmlsZSAkc3JjZGlyL2NvbmZpZ3Vy ZSI7IHRoZW4KLSsKLSsgICAgICAjIElmIG5laXRoZXIgbWF0Y2hlZCwgdGhlbiB3ZSBoYXZlIGEg YnJva2VuIGxzLiAgVGhpcyBjYW4gaGFwcGVuCi0rICAgICAgIyBpZiwgZm9yIGluc3RhbmNlLCBD T05GSUdfU0hFTEwgaXMgYmFzaCBhbmQgaXQgaW5oZXJpdHMgYQotKyAgICAgICMgYnJva2VuIGxz IGFsaWFzIGZyb20gdGhlIGVudmlyb25tZW50LiAgVGhpcyBoYXMgYWN0dWFsbHkKLSsgICAgICAj IGhhcHBlbmVkLiAgU3VjaCBhIHN5c3RlbSBjb3VsZCBub3QgYmUgY29uc2lkZXJlZCAic2FuZSIu Ci0rICAgICAgYXNfZm5fZXJyb3IgJD8gImxzIC10IGFwcGVhcnMgdG8gZmFpbC4gIE1ha2Ugc3Vy ZSB0aGVyZSBpcyBub3QgYSBicm9rZW4KLSthbGlhcyBpbiB5b3VyIGVudmlyb25tZW50IiAiJExJ TkVOTyIgNQotKyAgIGZpCi0rCi0rICAgdGVzdCAiJDIiID0gY29uZnRlc3QuZmlsZQotKyAgICkK LSB0aGVuCi0tICAgIGlmIFsgJDEgPSAiLWhlbHAiIC1vICQxID0gIi0taGVscCIgXQotLSAgICB0 aGVuCi0tICAgICAgICBlY2hvICdSZWNvZ25pemVkIGNvbmZpZ3VyZSBvcHRpb25zOicKLS0gICAg ICAgIGVjaG8gJycKLS0gICAgICAgIGVjaG8gJ0luc3RhbGxhdGlvbiBvcHRpb25zOicKLS0gICAg ICAgIGVjaG8gJy0taW5jbHVkZS1wcmVmaXg9L3NvbWUvcGF0aCAgICAgIC0gcGF0aCB0byBpbnN0 YWxsIFNPQ0kgaGVhZGVyIGZpbGVzJwotLSAgICAgICAgZWNobyAnLS1saWItcHJlZml4PS9zb21l L3BhdGggICAgICAgICAgLSBwYXRoIHRvIGluc3RhbGwgU09DSSBsaWJyYXJpZXMnCi0tICAgICAg ICBlY2hvICcnCi0tICAgICAgICBlY2hvICdNeVNRTCBvcHRpb25zOicKLS0gICAgICAgIGVjaG8g Jy0tbXlzcWwtaW5jbHVkZT0vc29tZS9wYXRoICAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcg bXlzcWwuaCcKLS0gICAgICAgIGVjaG8gJy0tbXlzcWwtbGliPS9zb21lL3BhdGggICAgICAgICAg IC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgbGlibXlzcWxjbGllbnQuW2F8c29dJwotLSAgICAgICAg ZWNobyAnJwotLSAgICAgICAgZWNobyAnT3JhY2xlIG9wdGlvbnMgKGlmIE9SQUNMRV9IT01FIHZh cmlhYmxlIGlzIG5vdCBzZXQpOicKLS0gICAgICAgIGVjaG8gJy0tb3JhY2xlLWluY2x1ZGU9L3Nv bWUvcGF0aCAgICAgIC0gZGlyZWN0b3J5IGNvbnRhaW5pbmcgb2NpLmgnCi0tICAgICAgICBlY2hv ICctLW9yYWNsZS1saWI9L3NvbWUvcGF0aCAgICAgICAgICAtIGRpcmVjdG9yeSBjb250YWluaW5n IGxpYmNsbnRzaC5bYXxzb10nCi0tICAgICAgICBlY2hvICcnCi0tICAgICAgICBlY2hvICdQb3N0 Z3JlU1FMIG9wdGlvbnM6JwotLSAgICAgICAgZWNobyAnLS1wb3N0Z3Jlc3FsLWluY2x1ZGU9L3Nv bWUvcGF0aCAgLSBkaXJlY3RvcnkgY29udGFpbmluZyBsaWJwcS9saWJwcS1mcy5oJwotLSAgICAg ICAgZWNobyAnLS1wb3N0Z3Jlc3FsLWxpYj0vc29tZS9wYXRoICAgICAgLSBkaXJlY3RvcnkgY29u dGFpbmluZyBsaWJwcS5bYXxzb10nCi0tICAgICAgICBlY2hvICcnCi0tICAgICAgICBlY2hvICdU ZXN0IHByb2dyYW1zIGNvbXBpbGF0aW9uIG9wdGlvbnMgKG5vdCBuZWVkZWQgZm9yIGxpYnJhcnkg YnVpbGQpOicKLS0gICAgICAgIGVjaG8gJy0tYm9vc3QtaW5jbHVkZT0vc29tZS9wYXRoICAgICAg IC0gcm9vdCBpbmNsdWRlIGRpcmVjdG9yeSBvZiBCb29zdCcKLS0gICAgICAgIGVjaG8gJy0tYm9v c3QtbGliPS9zb21lL3BhdGggICAgICAgICAgIC0gcm9vdCBsaWIgZGlyZWN0b3J5IG9mIEJvb3N0 JwotLSAgICAgICAgZWNobyAnJwotLSAgICAgICAgZXhpdAotKyAgICMgT2suCi0rICAgOgotK2Vs c2UKLSsgICBhc19mbl9lcnJvciAkPyAibmV3bHkgY3JlYXRlZCBmaWxlIGlzIG9sZGVyIHRoYW4g ZGlzdHJpYnV0ZWQgZmlsZXMhCi0rQ2hlY2sgeW91ciBzeXN0ZW0gY2xvY2siICIkTElORU5PIiA1 Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog eWVzIiA+JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLSt0ZXN0ICIkcHJvZ3JhbV9wcmVmaXgi ICE9IE5PTkUgJiYKLSsgIHByb2dyYW1fdHJhbnNmb3JtX25hbWU9InMmXiYkcHJvZ3JhbV9wcmVm aXgmOyRwcm9ncmFtX3RyYW5zZm9ybV9uYW1lIgotKyMgVXNlIGEgZG91YmxlICQgc28gbWFrZSBp Z25vcmVzIGl0LgotK3Rlc3QgIiRwcm9ncmFtX3N1ZmZpeCIgIT0gTk9ORSAmJgotKyAgcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZT0icyZcJCYkcHJvZ3JhbV9zdWZmaXgmOyRwcm9ncmFtX3RyYW5zZm9y bV9uYW1lIgotKyMgRG91YmxlIGFueSBcIG9yICQuCi0rIyBCeSBkZWZhdWx0IHdhcyBgcyx4LHgn LCByZW1vdmUgaXQgaWYgdXNlbGVzcy4KLSthY19zY3JpcHQ9J3MvW1xcJF0vJiYvZztzLztzLHgs eCwkLy8nCi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZT1gJGFzX2VjaG8gIiRwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lIiB8IHNlZCAiJGFjX3NjcmlwdCJgCi0rCi0rIyBleHBhbmQgJGFjX2F1eF9kaXIg dG8gYW4gYWJzb2x1dGUgcGF0aAotK2FtX2F1eF9kaXI9YGNkICRhY19hdXhfZGlyICYmIHB3ZGAK LSsKLStpZiB0ZXN0IHgiJHtNSVNTSU5HK3NldH0iICE9IHhzZXQ7IHRoZW4KLSsgIGNhc2UgJGFt X2F1eF9kaXIgaW4KLSsgICpcICogfCAqXAkqKQotKyAgICBNSVNTSU5HPSJcJHtTSEVMTH0gXCIk YW1fYXV4X2Rpci9taXNzaW5nXCIiIDs7Ci0rICAqKQotKyAgICBNSVNTSU5HPSJcJHtTSEVMTH0g JGFtX2F1eF9kaXIvbWlzc2luZyIgOzsKLSsgIGVzYWMKLStmaQotKyMgVXNlIGV2YWwgdG8gZXhw YW5kICRTSEVMTAotK2lmIGV2YWwgIiRNSVNTSU5HIC0tcnVuIHRydWUiOyB0aGVuCi0rICBhbV9t aXNzaW5nX3J1bj0iJE1JU1NJTkcgLS1ydW4gIgotK2Vsc2UKLSsgIGFtX21pc3NpbmdfcnVuPQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiBcYG1p c3NpbmcnIHNjcmlwdCBpcyB0b28gb2xkIG9yIG1pc3NpbmciID4mNQotKyRhc19lY2hvICIkYXNf bWU6IFdBUk5JTkc6IFxgbWlzc2luZycgc2NyaXB0IGlzIHRvbyBvbGQgb3IgbWlzc2luZyIgPiYy O30KLStmaQotKwotK2lmIHRlc3QgeCIke2luc3RhbGxfc2h9IiAhPSB4c2V0OyB0aGVuCi0rICBj YXNlICRhbV9hdXhfZGlyIGluCi0rICAqXCAqIHwgKlwJKikKLSsgICAgaW5zdGFsbF9zaD0iXCR7 U0hFTEx9ICckYW1fYXV4X2Rpci9pbnN0YWxsLXNoJyIgOzsKLSsgICopCi0rICAgIGluc3RhbGxf c2g9Ilwke1NIRUxMfSAkYW1fYXV4X2Rpci9pbnN0YWxsLXNoIgotKyAgZXNhYwotK2ZpCi0rCi0r IyBJbnN0YWxsZWQgYmluYXJpZXMgYXJlIHVzdWFsbHkgc3RyaXBwZWQgdXNpbmcgYHN0cmlwJyB3 aGVuIHRoZSB1c2VyCi0rIyBydW4gYG1ha2UgaW5zdGFsbC1zdHJpcCcuICBIb3dldmVyIGBzdHJp cCcgbWlnaHQgbm90IGJlIHRoZSByaWdodAotKyMgdG9vbCB0byB1c2UgaW4gY3Jvc3MtY29tcGls YXRpb24gZW52aXJvbm1lbnRzLCB0aGVyZWZvcmUgQXV0b21ha2UKLSsjIHdpbGwgaG9ub3IgdGhl IGBTVFJJUCcgZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gb3ZlcnJ1bGUgdGhpcyBwcm9ncmFtLgot K2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmciICE9IG5vOyB0aGVuCi0rICBpZiB0ZXN0IC1uICIk YWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7 YWNfdG9vbF9wcmVmaXh9c3RyaXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmdzLgotK3NldCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fXN0cmlwOyBhY193b3JkPSQyCi0reyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dv cmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQot K2lmICR7YWNfY3ZfcHJvZ19TVFJJUCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KLSsgIGFj X2N2X3Byb2dfU1RSSVA9IiRTVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu Ci0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgotKyAgICBhY19jdl9wcm9nX1NUUklQPSIke2FjX3Rvb2xfcHJlZml4fXN0cmlwIgotKyAg ICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rICBk b25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStTVFJJUD0kYWNfY3ZfcHJvZ19T VFJJUAotK2lmIHRlc3QgLW4gIiRTVFJJUCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkU1RSSVAiID4mNQotKyRhc19lY2hvICIkU1RS SVAiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwot K2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfU1RSSVAiOyB0aGVuCi0rICBhY19jdF9TVFJJ UD0kU1RSSVAKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAic3RyaXAiLCBzbyBpdCBj YW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBzdHJpcDsgYWNfd29y ZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4g IiA+JjY7IH0KLStpZiAke2FjX2N2X3Byb2dfYWNfY3RfU1RSSVArOn0gZmFsc2U7IHRoZW4gOgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNf Y3RfU1RSSVAiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSIkYWNfY3RfU1RSSVAi ICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0k SUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJ RlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBm b3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlm IHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19h Y19jdF9TVFJJUD0ic3RyaXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVh ayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStm aQotK2FjX2N0X1NUUklQPSRhY19jdl9wcm9nX2FjX2N0X1NUUklQCi0raWYgdGVzdCAtbiAiJGFj X2N0X1NUUklQIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRhY19jdF9TVFJJUCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9TVFJJUCIg PiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0 ZXN0ICJ4JGFjX2N0X1NUUklQIiA9IHg7IHRoZW4KLSsgICAgU1RSSVA9IjoiCi0rICBlbHNlCi0r ICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jv c3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAi JGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0 IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBTVFJJ UD0kYWNfY3RfU1RSSVAKLSsgIGZpCi0rZWxzZQotKyAgU1RSSVA9IiRhY19jdl9wcm9nX1NUUklQ IgotK2ZpCi0rCi0rZmkKLStJTlNUQUxMX1NUUklQX1BST0dSQU09IlwkKGluc3RhbGxfc2gpIC1j IC1zIgotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yIGEgdGhyZWFkLXNhZmUgbWtkaXIgLXAiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBhIHRocmVhZC1zYWZlIG1rZGlyIC1wLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAteiAiJE1L RElSX1AiOyB0aGVuCi0rICBpZiAke2FjX2N2X3BhdGhfbWtkaXIrOn0gZmFsc2U7IHRoZW4gOgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRP Ui9vcHQvc2Z3L2JpbgotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfcHJvZyBpbiBta2RpciBnbWtkaXI7IGRvCi0r CSBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsJ ICAgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94 ICIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IjsgfSB8fCBjb250aW51ZQotKwkgICBjYXNl IGAiJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIgLS12ZXJzaW9uIDI+JjFgIGluICMoCi0r CSAgICAgJ21rZGlyIChHTlUgY29yZXV0aWxzKSAnKiB8IFwKLSsJICAgICAnbWtkaXIgKGNvcmV1 dGlscykgJyogfCBcCi0rCSAgICAgJ21rZGlyIChmaWxldXRpbHMpICc0LjEqKQotKwkgICAgICAg YWNfY3ZfcGF0aF9ta2Rpcj0kYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0Ci0rCSAgICAgICBi cmVhayAzOzsKLSsJICAgZXNhYwotKwkgZG9uZQotKyAgICAgICBkb25lCi0rICBkb25lCi0rSUZT PSRhc19zYXZlX0lGUwotKwotK2ZpCi0rCi0rICB0ZXN0IC1kIC4vLS12ZXJzaW9uICYmIHJtZGly IC4vLS12ZXJzaW9uCi0rICBpZiB0ZXN0ICIke2FjX2N2X3BhdGhfbWtkaXIrc2V0fSIgPSBzZXQ7 IHRoZW4KLSsgICAgTUtESVJfUD0iJGFjX2N2X3BhdGhfbWtkaXIgLXAiCi0rICBlbHNlCi0rICAg ICMgQXMgYSBsYXN0IHJlc29ydCwgdXNlIHRoZSBzbG93IHNoZWxsIHNjcmlwdC4gIERvbid0IGNh Y2hlIGEKLSsgICAgIyB2YWx1ZSBmb3IgTUtESVJfUCB3aXRoaW4gYSBzb3VyY2UgZGlyZWN0b3J5 LCBiZWNhdXNlIHRoYXQgd2lsbAotKyAgICAjIGJyZWFrIG90aGVyIHBhY2thZ2VzIHVzaW5nIHRo ZSBjYWNoZSBpZiB0aGF0IGRpcmVjdG9yeSBpcwotKyAgICAjIHJlbW92ZWQsIG9yIGlmIHRoZSB2 YWx1ZSBpcyBhIHJlbGF0aXZlIG5hbWUuCi0rICAgIE1LRElSX1A9IiRhY19pbnN0YWxsX3NoIC1k IgotKyAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiAkTUtESVJfUCIgPiY1Ci0rJGFzX2VjaG8gIiRNS0RJUl9QIiA+JjY7IH0KLSsKLStt a2Rpcl9wPSIkTUtESVJfUCIKLStjYXNlICRta2Rpcl9wIGluCi0rICBbXFwvJF0qIHwgPzpbXFwv XSopIDs7Ci0rICAqLyopIG1rZGlyX3A9IlwkKHRvcF9idWlsZGRpcikvJG1rZGlyX3AiIDs7Ci0r ZXNhYwotKwotK2ZvciBhY19wcm9nIGluIGdhd2sgbWF3ayBuYXdrIGF3awotK2RvCi0rICAjIEV4 dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiRhY19wcm9nIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3Jh bSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJGFjX3Byb2c7IGFjX3dvcmQ9JDIKLSt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29y ZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0r aWYgJHthY19jdl9wcm9nX0FXSys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRBV0siOyB0aGVuCi0rICBhY19jdl9w cm9nX0FXSz0iJEFXSyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQot K2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQ QVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAg ICBhY19jdl9wcm9nX0FXSz0iJGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQot KyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0r Ci0rZmkKLStmaQotK0FXSz0kYWNfY3ZfcHJvZ19BV0sKLStpZiB0ZXN0IC1uICIkQVdLIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRB V0siID4mNQotKyRhc19lY2hvICIkQVdLIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgIHRlc3QgLW4gIiRBV0siICYmIGJyZWFrCi0rZG9uZQot KwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hl dGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgd2hldGhlciAke01BS0UtbWFrZX0gc2V0cyBcJChNQUtFKS4uLiAiID4mNjsgfQotK3NldCB4 ICR7TUFLRS1tYWtlfQotK2FjX21ha2U9YCRhc19lY2hvICIkMiIgfCBzZWQgJ3MvKy9wL2c7IHMv W15hLXpBLVowLTlfXS9fL2cnYAotK2lmIGV2YWwgXCR7YWNfY3ZfcHJvZ19tYWtlXyR7YWNfbWFr ZX1fc2V0Kzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgY2F0ID5jb25mdGVzdC5tYWtlIDw8XF9BQ0VPRgotK1NIRUxMID0gL2Jpbi9zaAot K2FsbDoKLSsJQGVjaG8gJ0BAQCUlJT0kKE1BS0UpPUBAQCUlJScKLStfQUNFT0YKLSsjIEdOVSBt YWtlIHNvbWV0aW1lcyBwcmludHMgIm1ha2VbMV06IEVudGVyaW5nIC4uLiIsIHdoaWNoIHdvdWxk IGNvbmZ1c2UgdXMuCi0rY2FzZSBgJHtNQUtFLW1ha2V9IC1mIGNvbmZ0ZXN0Lm1ha2UgMj4vZGV2 L251bGxgIGluCi0rICAqQEBAJSUlPT8qPUBAQCUlJSopCi0rICAgIGV2YWwgYWNfY3ZfcHJvZ19t YWtlXyR7YWNfbWFrZX1fc2V0PXllczs7Ci0rICAqKQotKyAgICBldmFsIGFjX2N2X3Byb2dfbWFr ZV8ke2FjX21ha2V9X3NldD1ubzs7Ci0rZXNhYwotK3JtIC1mIGNvbmZ0ZXN0Lm1ha2UKLStmaQot K2lmIGV2YWwgdGVzdCBcJGFjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldCA9IHllczsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHll cyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rICBTRVRfTUFLRT0KLStlbHNlCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQot KyRhc19lY2hvICJubyIgPiY2OyB9Ci0rICBTRVRfTUFLRT0iTUFLRT0ke01BS0UtbWFrZX0iCi0r ZmkKLSsKLStybSAtcmYgLnRzdCAyPi9kZXYvbnVsbAotK21rZGlyIC50c3QgMj4vZGV2L251bGwK LStpZiB0ZXN0IC1kIC50c3Q7IHRoZW4KLSsgIGFtX19sZWFkaW5nX2RvdD0uCi0rZWxzZQotKyAg YW1fX2xlYWRpbmdfZG90PV8KLStmaQotK3JtZGlyIC50c3QgMj4vZGV2L251bGwKLSsKLStpZiB0 ZXN0ICJgY2QgJHNyY2RpciAmJiBwd2RgIiAhPSAiYHB3ZGAiOyB0aGVuCi0rICAjIFVzZSAtSSQo c3JjZGlyKSBvbmx5IHdoZW4gJChzcmNkaXIpICE9IC4sIHNvIHRoYXQgbWFrZSdzIG91dHB1dAot KyAgIyBpcyBub3QgcG9sbHV0ZWQgd2l0aCByZXBlYXRlZCAiLUkuIgotKyAgYW1fX2lzcmM9JyAt SSQoc3JjZGlyKScKLSsgICMgdGVzdCB0byBzZWUgaWYgc3JjZGlyIGFscmVhZHkgY29uZmlndXJl ZAotKyAgaWYgdGVzdCAtZiAkc3JjZGlyL2NvbmZpZy5zdGF0dXM7IHRoZW4KLSsgICAgYXNfZm5f ZXJyb3IgJD8gInNvdXJjZSBkaXJlY3RvcnkgYWxyZWFkeSBjb25maWd1cmVkOyBydW4gXCJtYWtl IGRpc3RjbGVhblwiIHRoZXJlIGZpcnN0IiAiJExJTkVOTyIgNQotKyAgZmkKLStmaQotKwotKyMg dGVzdCB3aGV0aGVyIHdlIGhhdmUgY3lncGF0aAotK2lmIHRlc3QgLXogIiRDWUdQQVRIX1ciOyB0 aGVuCi0rICBpZiAoY3lncGF0aCAtLXZlcnNpb24pID4vZGV2L251bGwgMj4vZGV2L251bGw7IHRo ZW4KLSsgICAgQ1lHUEFUSF9XPSdjeWdwYXRoIC13JwotKyAgZWxzZQotKyAgICBDWUdQQVRIX1c9 ZWNobwotKyAgZmkKLStmaQotKwotKwotKyMgRGVmaW5lIHRoZSBpZGVudGl0eSBvZiB0aGUgcGFj a2FnZS4KLSsgUEFDS0FHRT0nc29jaScKLSsgVkVSU0lPTj0nMy4wLjAnCi0rCi0rCi0rY2F0ID4+ Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgUEFDS0FHRSAiJFBBQ0tBR0UiCi0rX0FDRU9G Ci0rCi0rCi0rY2F0ID4+Y29uZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgVkVSU0lPTiAiJFZF UlNJT04iCi0rX0FDRU9GCi0rCi0rIyBTb21lIHRvb2xzIEF1dG9tYWtlIG5lZWRzLgotKwotK0FD TE9DQUw9JHtBQ0xPQ0FMLSIke2FtX21pc3NpbmdfcnVufWFjbG9jYWwtJHthbV9fYXBpX3ZlcnNp b259In0KLSsKLSsKLStBVVRPQ09ORj0ke0FVVE9DT05GLSIke2FtX21pc3NpbmdfcnVufWF1dG9j b25mIn0KLSsKLSsKLStBVVRPTUFLRT0ke0FVVE9NQUtFLSIke2FtX21pc3NpbmdfcnVufWF1dG9t YWtlLSR7YW1fX2FwaV92ZXJzaW9ufSJ9Ci0rCi0rCi0rQVVUT0hFQURFUj0ke0FVVE9IRUFERVIt IiR7YW1fbWlzc2luZ19ydW59YXV0b2hlYWRlciJ9Ci0rCi0rCi0rTUFLRUlORk89JHtNQUtFSU5G Ty0iJHthbV9taXNzaW5nX3J1bn1tYWtlaW5mbyJ9Ci0rCi0rIyBXZSBuZWVkIGF3ayBmb3IgdGhl ICJjaGVjayIgdGFyZ2V0LiAgVGhlIHN5c3RlbSAiYXdrIiBpcyBiYWQgb24KLSsjIHNvbWUgcGxh dGZvcm1zLgotKyMgQWx3YXlzIGRlZmluZSBBTVRBUiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0 eS4KLSsKLStBTVRBUj0ke0FNVEFSLSIke2FtX21pc3NpbmdfcnVufXRhciJ9Ci0rCi0rYW1fX3Rh cj0nJHtBTVRBUn0gY2hvZiAtICIkJHRhcmRpciInOyBhbV9fdW50YXI9JyR7QU1UQVJ9IHhmIC0n Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1jcHB1bml0 LXByZWZpeCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX2NwcHVuaXRfcHJlZml4K3NldH0i ID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfY3BwdW5pdF9wcmVmaXg7IGNwcHVuaXRf Y29uZmlnX3ByZWZpeD0iJHdpdGh2YWwiCi0rZWxzZQotKyAgY3BwdW5pdF9jb25maWdfcHJlZml4 PSIiCi0rZmkKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLWNwcHVuaXQtZXhlYy1wcmVm aXggd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9jcHB1bml0X2V4ZWNfcHJlZml4K3NldH0i ID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfY3BwdW5pdF9leGVjX3ByZWZpeDsgY3Bw dW5pdF9jb25maWdfZXhlY19wcmVmaXg9IiR3aXRodmFsIgotK2Vsc2UKLSsgIGNwcHVuaXRfY29u ZmlnX2V4ZWNfcHJlZml4PSIiCi0rZmkKLSsKLSsKLSsgIGlmIHRlc3QgeCRjcHB1bml0X2NvbmZp Z19leGVjX3ByZWZpeCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5pdF9jb25maWdfYXJncz0iJGNw cHVuaXRfY29uZmlnX2FyZ3MgLS1leGVjLXByZWZpeD0kY3BwdW5pdF9jb25maWdfZXhlY19wcmVm aXgiCi0rICAgICBpZiB0ZXN0IHgke0NQUFVOSVRfQ09ORklHK3NldH0gIT0geHNldCA7IHRoZW4K LSsgICAgICAgIENQUFVOSVRfQ09ORklHPSRjcHB1bml0X2NvbmZpZ19leGVjX3ByZWZpeC9iaW4v Y3BwdW5pdC1jb25maWcKLSsgICAgIGZpCi0rICBmaQotKyAgaWYgdGVzdCB4JGNwcHVuaXRfY29u ZmlnX3ByZWZpeCAhPSB4IDsgdGhlbgotKyAgICAgY3BwdW5pdF9jb25maWdfYXJncz0iJGNwcHVu aXRfY29uZmlnX2FyZ3MgLS1wcmVmaXg9JGNwcHVuaXRfY29uZmlnX3ByZWZpeCIKLSsgICAgIGlm IHRlc3QgeCR7Q1BQVU5JVF9DT05GSUcrc2V0fSAhPSB4c2V0IDsgdGhlbgotKyAgICAgICAgQ1BQ VU5JVF9DT05GSUc9JGNwcHVuaXRfY29uZmlnX3ByZWZpeC9iaW4vY3BwdW5pdC1jb25maWcKLSsg ICAgIGZpCi0rICBmaQotKwotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjcHB1bml0 LWNvbmZpZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1 bW15IGNwcHVuaXQtY29uZmlnOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcGF0aF9DUFBV TklUX0NPTkZJRys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGNhc2UgJENQUFVOSVRfQ09ORklHIGluCi0rICBbXFwvXSogfCA/OltcXC9d KikKLSsgIGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUc9IiRDUFBVTklUX0NPTkZJRyIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7OwotKyAgKikKLSsg IGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQ QVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFz X2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNp b25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAm JiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAg ICBhY19jdl9wYXRoX0NQUFVOSVRfQ09ORklHPSIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25l Ci0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVzdCAteiAiJGFjX2N2X3BhdGhf Q1BQVU5JVF9DT05GSUciICYmIGFjX2N2X3BhdGhfQ1BQVU5JVF9DT05GSUc9Im5vIgotKyAgOzsK LStlc2FjCi0rZmkKLStDUFBVTklUX0NPTkZJRz0kYWNfY3ZfcGF0aF9DUFBVTklUX0NPTkZJRwot K2lmIHRlc3QgLW4gIiRDUFBVTklUX0NPTkZJRyI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkQ1BQVU5JVF9DT05GSUciID4mNQotKyRh c19lY2hvICIkQ1BQVU5JVF9DT05GSUciID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5v IiA+JjY7IH0KLStmaQotKwotKwotKyAgY3BwdW5pdF92ZXJzaW9uX21pbj0xLjEwCi0rCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBDcHB1 bml0IC0gdmVyc2lvbiA+PSAkY3BwdW5pdF92ZXJzaW9uX21pbiIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIENwcHVuaXQgLSB2ZXJzaW9uID49ICRjcHB1bml0X3ZlcnNpb25fbWluLi4u ICIgPiY2OyB9Ci0rICBub19jcHB1bml0PSIiCi0rICBpZiB0ZXN0ICIkQ1BQVU5JVF9DT05GSUci ID0gIm5vIiA7IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotKyAgICBub19jcHB1 bml0PXllcwotKyAgZWxzZQotKyAgICBDUFBVTklUX0NGTEFHUz1gJENQUFVOSVRfQ09ORklHIC0t Y2ZsYWdzYAotKyAgICBDUFBVTklUX0xJQlM9YCRDUFBVTklUX0NPTkZJRyAtLWxpYnNgCi0rICAg IENQUFVOSVRfVkVSU0lPTj1gJENQUFVOSVRfQ09ORklHIC0tdmVyc2lvbmAKLSsKLSsgICAgY3Bw dW5pdF9tYWpvcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAg ICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDEvJ2AKLSsgICAgY3Bw dW5pdF9taW5vcl92ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAg ICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDIvJ2AKLSsgICAgY3Bw dW5pdF9taWNyb192ZXJzaW9uPWBlY2hvICRDUFBVTklUX1ZFUlNJT04gfCBcCi0rICAgICAgICAg ICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDMvJ2AKLSsKLSsgICAg Y3BwdW5pdF9tYWpvcl9taW49YGVjaG8gJGNwcHVuaXRfdmVyc2lvbl9taW4gfCBcCi0rICAgICAg ICAgICBzZWQgJ3MvXChbMC05XSpcKS5cKFswLTldKlwpLlwoWzAtOV0qXCkvXDEvJ2AKLSsgICAg aWYgdGVzdCAieCR7Y3BwdW5pdF9tYWpvcl9taW59IiA9ICJ4IiA7IHRoZW4KLSsgICAgICAgY3Bw dW5pdF9tYWpvcl9taW49MAotKyAgICBmaQotKwotKyAgICBjcHB1bml0X21pbm9yX21pbj1gZWNo byAkY3BwdW5pdF92ZXJzaW9uX21pbiB8IFwKLSsgICAgICAgICAgIHNlZCAncy9cKFswLTldKlwp LlwoWzAtOV0qXCkuXChbMC05XSpcKS9cMi8nYAotKyAgICBpZiB0ZXN0ICJ4JHtjcHB1bml0X21p bm9yX21pbn0iID0gIngiIDsgdGhlbgotKyAgICAgICBjcHB1bml0X21pbm9yX21pbj0wCi0rICAg IGZpCi0rCi0rICAgIGNwcHVuaXRfbWljcm9fbWluPWBlY2hvICRjcHB1bml0X3ZlcnNpb25fbWlu IHwgXAotKyAgICAgICAgICAgc2VkICdzL1woWzAtOV0qXCkuXChbMC05XSpcKS5cKFswLTldKlwp L1wzLydgCi0rICAgIGlmIHRlc3QgIngke2NwcHVuaXRfbWljcm9fbWlufSIgPSAieCIgOyB0aGVu Ci0rICAgICAgIGNwcHVuaXRfbWljcm9fbWluPTAKLSsgICAgZmkKLSsKLSsgICAgY3BwdW5pdF92 ZXJzaW9uX3Byb3Blcj1gZXhwciBcCi0rICAgICAgICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9uIFw+ ICRjcHB1bml0X21ham9yX21pbiBcfCBcCi0rICAgICAgICAkY3BwdW5pdF9tYWpvcl92ZXJzaW9u IFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCi0rICAgICAgICAkY3BwdW5pdF9taW5vcl92ZXJz aW9uIFw+ICRjcHB1bml0X21pbm9yX21pbiBcfCBcCi0rICAgICAgICAkY3BwdW5pdF9tYWpvcl92 ZXJzaW9uIFw9ICRjcHB1bml0X21ham9yX21pbiBcJiBcCi0rICAgICAgICAkY3BwdW5pdF9taW5v cl92ZXJzaW9uIFw9ICRjcHB1bml0X21pbm9yX21pbiBcJiBcCi0rICAgICAgICAkY3BwdW5pdF9t aWNyb192ZXJzaW9uIFw+PSAkY3BwdW5pdF9taWNyb19taW4gYAotKwotKyAgICBpZiB0ZXN0ICIk Y3BwdW5pdF92ZXJzaW9uX3Byb3BlciIgPSAiMSIgOyB0aGVuCi0rICAgICAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRjcHB1bml0X21ham9yX3ZlcnNp b24uJGNwcHVuaXRfbWlub3JfdmVyc2lvbi4kY3BwdW5pdF9taWNyb192ZXJzaW9uIiA+JjUKLSsk YXNfZWNobyAiJGNwcHVuaXRfbWFqb3JfdmVyc2lvbi4kY3BwdW5pdF9taW5vcl92ZXJzaW9uLiRj cHB1bml0X21pY3JvX3ZlcnNpb24iID4mNjsgfQotKyAgICBlbHNlCi0rICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNo byAibm8iID4mNjsgfQotKyAgICAgIG5vX2NwcHVuaXQ9eWVzCi0rICAgIGZpCi0rICBmaQotKwot KyAgaWYgdGVzdCAieCRub19jcHB1bml0IiA9IHggOyB0aGVuCi0rICAgICA6Ci0rICBlbHNlCi0r ICAgICBDUFBVTklUX0NGTEFHUz0iIgotKyAgICAgQ1BQVU5JVF9MSUJTPSIiCi0rICAgICA6Ci0r ICBmaQotKwotKwotKwotKwotKwotKyBpZiB0ZXN0ICJ4JENQUFVOSVRfTElCUyIgIT0geDsgdGhl bgotKyAgSEFWRV9DUFBVTklUX1RSVUU9Ci0rICBIQVZFX0NQUFVOSVRfRkFMU0U9JyMnCi0rZWxz ZQotKyAgSEFWRV9DUFBVTklUX1RSVUU9JyMnCi0rICBIQVZFX0NQUFVOSVRfRkFMU0U9Ci0rZmkK LSsKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHZlcnNpb25pbmcKLStHRU5FUklDX0xJQlJBUllfVkVS U0lPTj0iMzowOjAiCi0rIyAgICAgICAgICAgICAgICAgICAgICAgIHwgfCB8Ci0rIyAgICAgICAg ICAgICAgICAgKy0tLS0tLSsgfCArLS0tKwotKyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwg ICAgIHwKLSsjICAgICAgICAgICAgICBjdXJyZW50OnJldmlzaW9uOmFnZQotKyMgICAgICAgICAg ICAgICAgIHwgICAgICAgIHwgICAgIHwKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAg ICArLSBpbmNyZW1lbnQgaWYgaW50ZXJmYWNlcyBoYXZlIGJlZW4gYWRkZWQ7Ci0rIyAgICAgICAg ICAgICAgICAgfCAgICAgICAgfCAgICAgICAgc2V0IHRvIHplcm8gaWYgaW50ZXJmYWNlcyBoYXZl IGJlZW4KLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICAgICByZW1vdmVkIG9yIGNo YW5nZWQKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICArLSBpbmNyZW1lbnQgaWYgc291cmNl IGNvZGUgaGFzIGNoYW5nZWQ7Ci0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgc2V0IHRv IHplcm8gaWYgY3VycmVudCBpcyBpbmNyZW1lbnRlZAotKyMgICAgICAgICAgICAgICAgICstIGlu Y3JlbWVudCBpZiBpbnRlcmZhY2VzIGhhdmUgYmVlbiBhZGRlZCwgcmVtb3ZlZAotKyMgICAgICAg ICAgICAgICAgICAgIG9yIGNoYW5nZWQKLSsKLSsKLSsjIFVwbG9hZCBjb21tYW5kIGZvciBTb3Vy Y2VGb3JnZQotK1VQTE9BRF9DT01NQU5EPSJuY2Z0cHB1dCAtdiB1cGxvYWQuc291cmNlZm9yZ2Uu bmV0IC9pbmNvbWluZyIKLSsKLSsKLSsjIENoZWNrIGZvciBob3N0IGFuZCBkaXNhYmxlIGJ1aWxk aW5nIGEgc2hhcmVkIGxpYnJhcnkgaW4gV2luZG93cwotKyMgTWFrZSBzdXJlIHdlIGNhbiBydW4g Y29uZmlnLnN1Yi4KLSskU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5zdWIiIHN1bjQgPi9kZXYv bnVsbCAyPiYxIHx8Ci0rICBhc19mbl9lcnJvciAkPyAiY2Fubm90IHJ1biAkU0hFTEwgJGFjX2F1 eF9kaXIvY29uZmlnLnN1YiIgIiRMSU5FTk8iIDUKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGJ1aWxkIHN5c3RlbSB0eXBlIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBidWlsZCBzeXN0ZW0gdHlwZS4uLiAiID4mNjsgfQotK2lmICR7YWNf Y3ZfYnVpbGQrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBhY19idWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKLSt0ZXN0ICJ4JGFjX2J1aWxk X2FsaWFzIiA9IHggJiYKLSsgIGFjX2J1aWxkX2FsaWFzPWAkU0hFTEwgIiRhY19hdXhfZGlyL2Nv bmZpZy5ndWVzcyJgCi0rdGVzdCAieCRhY19idWlsZF9hbGlhcyIgPSB4ICYmCi0rICBhc19mbl9l cnJvciAkPyAiY2Fubm90IGd1ZXNzIGJ1aWxkIHR5cGU7IHlvdSBtdXN0IHNwZWNpZnkgb25lIiAi JExJTkVOTyIgNQotK2FjX2N2X2J1aWxkPWAkU0hFTEwgIiRhY19hdXhfZGlyL2NvbmZpZy5zdWIi ICRhY19idWlsZF9hbGlhc2AgfHwKLSsgIGFzX2ZuX2Vycm9yICQ/ICIkU0hFTEwgJGFjX2F1eF9k aXIvY29uZmlnLnN1YiAkYWNfYnVpbGRfYWxpYXMgZmFpbGVkIiAiJExJTkVOTyIgNQotKwotK2Zp Ci0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19j dl9idWlsZCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9idWlsZCIgPiY2OyB9Ci0rY2FzZSAkYWNf Y3ZfYnVpbGQgaW4KLSsqLSotKikgOzsKLSsqKSBhc19mbl9lcnJvciAkPyAiaW52YWxpZCB2YWx1 ZSBvZiBjYW5vbmljYWwgYnVpbGQiICIkTElORU5PIiA1OzsKLStlc2FjCi0rYnVpbGQ9JGFjX2N2 X2J1aWxkCi0rYWNfc2F2ZV9JRlM9JElGUzsgSUZTPSctJwotK3NldCB4ICRhY19jdl9idWlsZAot K3NoaWZ0Ci0rYnVpbGRfY3B1PSQxCi0rYnVpbGRfdmVuZG9yPSQyCi0rc2hpZnQ7IHNoaWZ0Ci0r IyBSZW1lbWJlciwgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBJRlMgaXMgdXNlZCB0byBjcmVhdGUg JCosCi0rIyBleGNlcHQgd2l0aCBvbGQgc2hlbGxzOgotK2J1aWxkX29zPSQqCi0rSUZTPSRhY19z YXZlX0lGUwotK2Nhc2UgJGJ1aWxkX29zIGluICpcICopIGJ1aWxkX29zPWBlY2hvICIkYnVpbGRf b3MiIHwgc2VkICdzLyAvLS9nJ2A7OyBlc2FjCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBob3N0IHN5c3RlbSB0eXBlLi4uICIgPiY2OyB9Ci0raWYgJHthY19j dl9ob3N0Kzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgaWYgdGVzdCAieCRob3N0X2FsaWFzIiA9IHg7IHRoZW4KLSsgIGFjX2N2X2hvc3Q9 JGFjX2N2X2J1aWxkCi0rZWxzZQotKyAgYWNfY3ZfaG9zdD1gJFNIRUxMICIkYWNfYXV4X2Rpci9j b25maWcuc3ViIiAkaG9zdF9hbGlhc2AgfHwKLSsgICAgYXNfZm5fZXJyb3IgJD8gIiRTSEVMTCAk YWNfYXV4X2Rpci9jb25maWcuc3ViICRob3N0X2FsaWFzIGZhaWxlZCIgIiRMSU5FTk8iIDUKLStm aQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRhY19jdl9ob3N0IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2hvc3QiID4mNjsgfQotK2Nh c2UgJGFjX2N2X2hvc3QgaW4KLSsqLSotKikgOzsKLSsqKSBhc19mbl9lcnJvciAkPyAiaW52YWxp ZCB2YWx1ZSBvZiBjYW5vbmljYWwgaG9zdCIgIiRMSU5FTk8iIDU7OwotK2VzYWMKLStob3N0PSRh Y19jdl9ob3N0Ci0rYWNfc2F2ZV9JRlM9JElGUzsgSUZTPSctJwotK3NldCB4ICRhY19jdl9ob3N0 Ci0rc2hpZnQKLStob3N0X2NwdT0kMQotK2hvc3RfdmVuZG9yPSQyCi0rc2hpZnQ7IHNoaWZ0Ci0r IyBSZW1lbWJlciwgdGhlIGZpcnN0IGNoYXJhY3RlciBvZiBJRlMgaXMgdXNlZCB0byBjcmVhdGUg JCosCi0rIyBleGNlcHQgd2l0aCBvbGQgc2hlbGxzOgotK2hvc3Rfb3M9JCoKLStJRlM9JGFjX3Nh dmVfSUZTCi0rY2FzZSAkaG9zdF9vcyBpbiAqXCAqKSBob3N0X29zPWBlY2hvICIkaG9zdF9vcyIg fCBzZWQgJ3MvIC8tL2cnYDs7IGVzYWMKLSsKLSsKLStjYXNlICRob3N0IGluCi0rICAqLSotbXNk b3MqIHwgKi0qLWdvMzIqIHwgKi0qLW1pbmd3MzIqIHwgKi0qLWN5Z3dpbiogfCAqLSotd2luZG93 cyopCi0rICAgICMgQ2hlY2sgd2hldGhlciAtLWVuYWJsZS1zaGFyZWQgd2FzIGdpdmVuLgotK2lm IHRlc3QgIiR7ZW5hYmxlX3NoYXJlZCtzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICBlbmFibGV2YWw9 JGVuYWJsZV9zaGFyZWQ7IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJsZXZh bCBpbgotKyAgICB5ZXMpIGVuYWJsZV9zaGFyZWQ9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVfc2hh cmVkPW5vIDs7Ci0rICAgICopCi0rICAgICAgZW5hYmxlX3NoYXJlZD1ubwotKyAgICAgICMgTG9v ayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29tbW9uIGxpc3Qgc2Vw YXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJRlN9JFBBVEhfU0VQ QVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCi0rCUlGUz0iJGx0X3Nh dmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgotKwkgIGVuYWJsZV9zaGFy ZWQ9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAg ICAgIDs7Ci0rICAgIGVzYWMKLStlbHNlCi0rICBlbmFibGVfc2hhcmVkPW5vCi0rZmkKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXN0YXRp YyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfc3RhdGljK3NldH0iID0gc2V0OyB0aGVu IDoKLSsgIGVuYWJsZXZhbD0kZW5hYmxlX3N0YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsg ICAgY2FzZSAkZW5hYmxldmFsIGluCi0rICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKLSsg ICAgbm8pIGVuYWJsZV9zdGF0aWM9bm8gOzsKLSsgICAgKikKLSsgICAgIGVuYWJsZV9zdGF0aWM9 bm8KLSsgICAgICAjIExvb2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhl IGNvbW1vbiBsaXN0IHNlcGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9 IiR7SUZTfSRQQVRIX1NFUEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBk bwotKwlJRlM9IiRsdF9zYXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4K LSsJICBlbmFibGVfc3RhdGljPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRs dF9zYXZlX2lmcyIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZWxzZQotKyAgZW5hYmxlX3N0YXRp Yz15ZXMKLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgICA7OwotKyAgKikKLSsg ICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXNoYXJlZCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAi JHtlbmFibGVfc2hhcmVkK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIGVuYWJsZXZhbD0kZW5hYmxl X3NoYXJlZDsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxldmFsIGluCi0r ICAgIHllcykgZW5hYmxlX3NoYXJlZD15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9zaGFyZWQ9bm8g OzsKLSsgICAgKikKLSsgICAgICBlbmFibGVfc2hhcmVkPW5vCi0rICAgICAgIyBMb29rIGF0IHRo ZSBhcmd1bWVudCB3ZSBnb3QuICBXZSB1c2UgYWxsIHRoZSBjb21tb24gbGlzdCBzZXBhcmF0b3Jz LgotKyAgICAgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSIke0lGU30kUEFUSF9TRVBBUkFUT1Is IgotKyAgICAgIGZvciBwa2cgaW4gJGVuYWJsZXZhbDsgZG8KLSsJSUZTPSIkbHRfc2F2ZV9pZnMi Ci0rCWlmIHRlc3QgIlgkcGtnIiA9ICJYJHAiOyB0aGVuCi0rCSAgZW5hYmxlX3NoYXJlZD15ZXMK LSsJZmkKLSsgICAgICBkb25lCi0rICAgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgICAgOzsK LSsgICAgZXNhYwotK2Vsc2UKLSsgIGVuYWJsZV9zaGFyZWQ9eWVzCi0rZmkKLSsKLSsKLSsKLSsK LSsKLSsKLSsgICAgIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLXN0YXRpYyB3YXMgZ2l2ZW4uCi0r aWYgdGVzdCAiJHtlbmFibGVfc3RhdGljK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIGVuYWJsZXZh bD0kZW5hYmxlX3N0YXRpYzsgcD0ke1BBQ0tBR0UtZGVmYXVsdH0KLSsgICAgY2FzZSAkZW5hYmxl dmFsIGluCi0rICAgIHllcykgZW5hYmxlX3N0YXRpYz15ZXMgOzsKLSsgICAgbm8pIGVuYWJsZV9z dGF0aWM9bm8gOzsKLSsgICAgKikKLSsgICAgIGVuYWJsZV9zdGF0aWM9bm8KLSsgICAgICAjIExv b2sgYXQgdGhlIGFyZ3VtZW50IHdlIGdvdC4gIFdlIHVzZSBhbGwgdGhlIGNvbW1vbiBsaXN0IHNl cGFyYXRvcnMuCi0rICAgICAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9IiR7SUZTfSRQQVRIX1NF UEFSQVRPUiwiCi0rICAgICAgZm9yIHBrZyBpbiAkZW5hYmxldmFsOyBkbwotKwlJRlM9IiRsdF9z YXZlX2lmcyIKLSsJaWYgdGVzdCAiWCRwa2ciID0gIlgkcCI7IHRoZW4KLSsJICBlbmFibGVfc3Rh dGljPXllcwotKwlmaQotKyAgICAgIGRvbmUKLSsgICAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsg ICAgICA7OwotKyAgICBlc2FjCi0rZWxzZQotKyAgZW5hYmxlX3N0YXRpYz1ubwotK2ZpCi0rCi0r Ci0rCi0rCi0rCi0rCi0rICAgIDs7Ci0rZXNhYwotKwotKyMgU2V0IGRlZmF1bHQgbGFuZ3VhZ2Ug dG8gQysrCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29t cGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1Jwot K2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1Mg JExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRh Y19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAk Q1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0 ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRD WFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0r YWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rIyBDaGVja3Mg Zm9yIHByb2dyYW1zCi0rc2F2ZV9DWFhGTEFHUz0iJENYWEZMQUdTIgotK2FjX2V4dD1jcHAKLSth Y19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdT ICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQot K2lmIHRlc3QgLXogIiRDWFgiOyB0aGVuCi0rICBpZiB0ZXN0IC1uICIkQ0NDIjsgdGhlbgotKyAg ICBDWFg9JENDQwotKyAgZWxzZQotKyAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0 aGVuCi0rICBmb3IgYWNfcHJvZyBpbiBnKysgYysrIGdwcCBhQ0MgQ0MgY3h4IGNjKysgY2wuZXhl IEZDQyBLQ0MgUkNDIHhsQ19yIHhsQwotKyAgZG8KLSsgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0g bmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193 b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19DWFgrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkQ1hYIjsgdGhl bgotKyAgYWNfY3ZfcHJvZ19DWFg9IiRDWFgiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9y IGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7 IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DWFg9IiRhY190b29sX3ByZWZpeCRhY19wcm9nIgot KyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0r ICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStDWFg9JGFjX2N2X3Byb2df Q1hYCi0raWYgdGVzdCAtbiAiJENYWCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkQ1hYIiA+JjUKLSskYXNfZWNobyAiJENYWCIgPiY2 OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAgIHRl c3QgLW4gIiRDWFgiICYmIGJyZWFrCi0rICBkb25lCi0rZmkKLStpZiB0ZXN0IC16ICIkQ1hYIjsg dGhlbgotKyAgYWNfY3RfQ1hYPSRDWFgKLSsgIGZvciBhY19wcm9nIGluIGcrKyBjKysgZ3BwIGFD QyBDQyBjeHggY2MrKyBjbC5leGUgRkNDIEtDQyBSQ0MgeGxDX3IgeGxDCi0rZG8KLSsgICMgRXh0 cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3Jk IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStp ZiAke2FjX2N2X3Byb2dfYWNfY3RfQ1hYKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJGFjX2N0X0NYWCI7IHRoZW4K LSsgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfY3RfQ1hYIiAjIExldCB0aGUgdXNlciBvdmVy cmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS QVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfQ1hYPSIkYWNfcHJvZyIK LSsgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQot KyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQ1hYPSRhY19j dl9wcm9nX2FjX2N0X0NYWAotK2lmIHRlc3QgLW4gIiRhY19jdF9DWFgiOyB0aGVuCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0NYWCIg PiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9DWFgiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8g Im5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgdGVzdCAtbiAiJGFjX2N0X0NYWCIgJiYgYnJlYWsK LStkb25lCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0NYWCIgPSB4OyB0aGVuCi0rICAgIENYWD0i ZysrIgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVk IGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdB Uk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7Owot K2VzYWMKLSsgICAgQ1hYPSRhY19jdF9DWFgKLSsgIGZpCi0rZmkKLSsKLSsgIGZpCi0rZmkKLSsj IFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCi0rJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciB2 ZXJzaW9uIiA+JjUKLStzZXQgWCAkYWNfY29tcGlsZQotK2FjX2NvbXBpbGVyPSQyCi0rZm9yIGFj X29wdGlvbiBpbiAtLXZlcnNpb24gLXYgLVYgLXF2ZXJzaW9uOyBkbwotKyAgeyB7IGFjX3RyeT0i JGFjX2NvbXBpbGVyICRhY19vcHRpb24gPiY1IgotK2Nhc2UgIigoJGFjX3RyeSIgaW4KLSsgICpc IiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190cnk7OwotKyAgKikgYWNfdHJ5X2Vj aG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2VjaG89IlwiXCRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCi0rJGFzX2VjaG8gIiRhY190cnlfZWNobyI7 IH0gPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGVyICRhY19vcHRpb24gPiY1IikgMj5jb25mdGVz dC5lcnIKLSsgIGFjX3N0YXR1cz0kPwotKyAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4K LSsgICAgc2VkICcxMGFcCi0rLi4uIHJlc3Qgb2Ygc3RkZXJyIG91dHB1dCBkZWxldGVkIC4uLgot KyAgICAgICAgIDEwcScgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjEKLSsgICAgY2F0IGNvbmZ0 ZXN0LmVyMSA+JjUKLSsgIGZpCi0rICBybSAtZiBjb25mdGVzdC5lcjEgY29uZnRlc3QuZXJyCi0r ICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVz IiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0KLStkb25lCi0rCi0rY2F0IGNvbmZkZWZz LmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8K LSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VP RgotK2FjX2NsZWFuX2ZpbGVzX3NhdmU9JGFjX2NsZWFuX2ZpbGVzCi0rYWNfY2xlYW5fZmlsZXM9 IiRhY19jbGVhbl9maWxlcyBhLm91dCBhLm91dC5kU1lNIGEuZXhlIGIub3V0IgotKyMgVHJ5IHRv IGNyZWF0ZSBhbiBleGVjdXRhYmxlIHdpdGhvdXQgLW8gZmlyc3QsIGRpc3JlZ2FyZCBhLm91dC4K LSsjIEl0IHdpbGwgaGVscCB1cyBkaWFnbm9zZSBicm9rZW4gY29tcGlsZXJzLCBhbmQgZmluZGlu ZyBvdXQgYW4gaW50dWl0aW9uCi0rIyBvZiBleGVleHQuCi0reyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBDKysgY29tcGlsZXIgd29y a3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEMrKyBjb21waWxlciB3 b3Jrcy4uLiAiID4mNjsgfQotK2FjX2xpbmtfZGVmYXVsdD1gJGFzX2VjaG8gIiRhY19saW5rIiB8 IHNlZCAncy8gLW8gKmNvbmZ0ZXN0W14gXSovLydgCi0rCi0rIyBUaGUgcG9zc2libGUgb3V0cHV0 IGZpbGVzOgotK2FjX2ZpbGVzPSJhLm91dCBjb25mdGVzdC5leGUgY29uZnRlc3QgYS5leGUgYV9v dXQuZXhlIGIub3V0IGNvbmZ0ZXN0LioiCi0rCi0rYWNfcm1maWxlcz0KLStmb3IgYWNfZmlsZSBp biAkYWNfZmlsZXMKLStkbwotKyAgY2FzZSAkYWNfZmlsZSBpbgotKyAgICAqLiRhY19leHQgfCAq Lnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICoueFNZTSB8ICouYmIgfCAqLmJiZyB8ICou bWFwIHwgKi5pbmYgfCAqLmRTWU0gfCAqLm8gfCAqLm9iaiApIDs7Ci0rICAgICogKSBhY19ybWZp bGVzPSIkYWNfcm1maWxlcyAkYWNfZmlsZSI7OwotKyAgZXNhYwotK2RvbmUKLStybSAtZiAkYWNf cm1maWxlcwotKwotK2lmIHsgeyBhY190cnk9IiRhY19saW5rX2RlZmF1bHQiCi0rY2FzZSAiKCgk YWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7 Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0i XCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNo byAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKLSsgIChldmFsICIkYWNfbGlua19kZWZhdWx0IikgMj4m NQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IHRo ZW4gOgotKyAgIyBBdXRvY29uZi0yLjEzIGNvdWxkIHNldCB0aGUgYWNfY3ZfZXhlZXh0IHZhcmlh YmxlIHRvIGBubycuCi0rIyBTbyBpZ25vcmUgYSB2YWx1ZSBvZiBgbm8nLCBvdGhlcndpc2UgdGhp cyB3b3VsZCBsZWFkIHRvIGBFWEVFWFQgPSBubycKLSsjIGluIGEgTWFrZWZpbGUuICBXZSBzaG91 bGQgbm90IG92ZXJyaWRlIGFjX2N2X2V4ZWV4dCBpZiBpdCB3YXMgY2FjaGVkLAotKyMgc28gdGhh dCB0aGUgdXNlciBjYW4gc2hvcnQtY2lyY3VpdCB0aGlzIHRlc3QgZm9yIGNvbXBpbGVycyB1bmtu b3duIHRvCi0rIyBBdXRvY29uZi4KLStmb3IgYWNfZmlsZSBpbiAkYWNfZmlsZXMgJycKLStkbwot KyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCi0rICBjYXNlICRhY19maWxlIGluCi0r ICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICouZCB8ICoucGRiIHwgKi54U1lNIHwg Ki5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZTSB8ICoubyB8ICoub2JqICkKLSsJ OzsKLSsgICAgW2FiXS5vdXQgKQotKwkjIFdlIGZvdW5kIHRoZSBkZWZhdWx0IGV4ZWN1dGFibGUs IGJ1dCBleGVleHQ9JycgaXMgbW9zdAotKwkjIGNlcnRhaW5seSByaWdodC4KLSsJYnJlYWs7Owot KyAgICAqLiogKQotKwlpZiB0ZXN0ICIke2FjX2N2X2V4ZWV4dCtzZXR9IiA9IHNldCAmJiB0ZXN0 ICIkYWNfY3ZfZXhlZXh0IiAhPSBubzsKLSsJdGhlbiA6OyBlbHNlCi0rCSAgIGFjX2N2X2V4ZWV4 dD1gZXhwciAiJGFjX2ZpbGUiIDogJ1teLl0qXChcLi4qXCknYAotKwlmaQotKwkjIFdlIHNldCBh Y19jdl9leGVleHQgaGVyZSBiZWNhdXNlIHRoZSBsYXRlciB0ZXN0IGZvciBpdCBpcyBub3QKLSsJ IyBzYWZlOiBjcm9zcyBjb21waWxlcnMgbWF5IG5vdCBhZGQgdGhlIHN1ZmZpeCBpZiBnaXZlbiBh biBgLW8nCi0rCSMgYXJndW1lbnQsIHNvIHdlIG1heSBuZWVkIHRvIGtub3cgaXQgYXQgdGhhdCBw b2ludCBhbHJlYWR5LgotKwkjIEV2ZW4gaWYgdGhpcyBzZWN0aW9uIGxvb2tzIGNydWZ0eTogaXQg aGFzIHRoZSBhZHZhbnRhZ2Ugb2YKLSsJIyBhY3R1YWxseSB3b3JraW5nLgotKwlicmVhazs7Ci0r ICAgICogKQotKwlicmVhazs7Ci0rICBlc2FjCi0rZG9uZQotK3Rlc3QgIiRhY19jdl9leGVleHQi ID0gbm8gJiYgYWNfY3ZfZXhlZXh0PQotKwotK2Vsc2UKLSsgIGFjX2ZpbGU9JycKLStmaQotK2lm IHRlc3QgLXogIiRhY19maWxlIjsgdGhlbiA6Ci0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0r JGFzX2VjaG8gIiRhc19tZTogZmFpbGVkIHByb2dyYW0gd2FzOiIgPiY1Ci0rc2VkICdzL14vfCAv JyBjb25mdGVzdC4kYWNfZXh0ID4mNQotKwotK3sgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSthc19mbl9lcnJvciA3NyAiQysrIGNv bXBpbGVyIGNhbm5vdCBjcmVhdGUgZXhlY3V0YWJsZXMKLStTZWUgXGBjb25maWcubG9nJyBmb3Ig bW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMi ID4mNjsgfQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3IgQysrIGNvbXBpbGVyIGRlZmF1bHQgb3V0cHV0IGZpbGUgbmFtZSIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEMrKyBjb21waWxlciBkZWZhdWx0IG91dHB1dCBmaWxl IG5hbWUuLi4gIiA+JjY7IH0KLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJGFjX2ZpbGUiID4mNQotKyRhc19lY2hvICIkYWNfZmlsZSIgPiY2OyB9Ci0r YWNfZXhlZXh0PSRhY19jdl9leGVleHQKLSsKLStybSAtZiAtciBhLm91dCBhLm91dC5kU1lNIGEu ZXhlIGNvbmZ0ZXN0JGFjX2N2X2V4ZWV4dCBiLm91dAotK2FjX2NsZWFuX2ZpbGVzPSRhY19jbGVh bl9maWxlc19zYXZlCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBmb3Igc3VmZml4IG9mIGV4ZWN1dGFibGVzLi4uICIgPiY2OyB9Ci0raWYgeyB7IGFjX3Ry eT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwq KSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStl c2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAk YWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hvIjsgfSA+JjUKLSsgIChldmFs ICIkYWNfbGluayIpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19z dGF0dXMgPSAwOyB9OyB0aGVuIDoKLSsgICMgSWYgYm90aCBgY29uZnRlc3QuZXhlJyBhbmQgYGNv bmZ0ZXN0JyBhcmUgYHByZXNlbnQnICh3ZWxsLCBvYnNlcnZhYmxlKQotKyMgY2F0Y2ggYGNvbmZ0 ZXN0LmV4ZScuICBGb3IgaW5zdGFuY2Ugd2l0aCBDeWd3aW4sIGBscyBjb25mdGVzdCcgd2lsbAot KyMgd29yayBwcm9wZXJseSAoaS5lLiwgcmVmZXIgdG8gYGNvbmZ0ZXN0LmV4ZScpLCB3aGlsZSBp dCB3b24ndCB3aXRoCi0rIyBgcm0nLgotK2ZvciBhY19maWxlIGluIGNvbmZ0ZXN0LmV4ZSBjb25m dGVzdCBjb25mdGVzdC4qOyBkbwotKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlCi0r ICBjYXNlICRhY19maWxlIGluCi0rICAgICouJGFjX2V4dCB8ICoueGNvZmYgfCAqLnRkcyB8ICou ZCB8ICoucGRiIHwgKi54U1lNIHwgKi5iYiB8ICouYmJnIHwgKi5tYXAgfCAqLmluZiB8ICouZFNZ TSB8ICoubyB8ICoub2JqICkgOzsKLSsgICAgKi4qICkgYWNfY3ZfZXhlZXh0PWBleHByICIkYWNf ZmlsZSIgOiAnW14uXSpcKFwuLipcKSdgCi0rCSAgYnJlYWs7OwotKyAgICAqICkgYnJlYWs7Owot KyAgZXNhYwotK2RvbmUKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0rYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBj b21wdXRlIHN1ZmZpeCBvZiBleGVjdXRhYmxlczogY2Fubm90IGNvbXBpbGUgYW5kIGxpbmsKLStT ZWUgXGBjb25maWcubG9nJyBmb3IgbW9yZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQotK2ZpCi0r cm0gLWYgY29uZnRlc3QgY29uZnRlc3QkYWNfY3ZfZXhlZXh0Ci0reyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9leGVleHQiID4mNQotKyRhc19l Y2hvICIkYWNfY3ZfZXhlZXh0IiA+JjY7IH0KLSsKLStybSAtZiBjb25mdGVzdC4kYWNfZXh0Ci0r RVhFRVhUPSRhY19jdl9leGVleHQKLSthY19leGVleHQ9JEVYRUVYVAotK2NhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0r I2luY2x1ZGUgPHN0ZGlvLmg+Ci0raW50Ci0rbWFpbiAoKQotK3sKLStGSUxFICpmID0gZm9wZW4g KCJjb25mdGVzdC5vdXQiLCAidyIpOwotKyByZXR1cm4gZmVycm9yIChmKSB8fCBmY2xvc2UgKGYp ICE9IDA7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0rYWNfY2xlYW5fZmls ZXM9IiRhY19jbGVhbl9maWxlcyBjb25mdGVzdC5vdXQiCi0rIyBDaGVjayB0aGF0IHRoZSBjb21w aWxlciBwcm9kdWNlcyBleGVjdXRhYmxlcyB3ZSBjYW4gcnVuLiAgSWYgbm90LCBlaXRoZXIKLSsj IHRoZSBjb21waWxlciBpcyBicm9rZW4sIG9yIHdlIGNyb3NzIGNvbXBpbGUuCi0reyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHdlIGFyZSBj cm9zcyBjb21waWxpbmciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgd2UgYXJl IGNyb3NzIGNvbXBpbGluZy4uLiAiID4mNjsgfQotK2lmIHRlc3QgIiRjcm9zc19jb21waWxpbmci ICE9IHllczsgdGhlbgotKyAgeyB7IGFjX3RyeT0iJGFjX2xpbmsiCi0rY2FzZSAiKCgkYWNfdHJ5 IiBpbgotKyAgKlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAq KSBhY190cnlfZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFj X3RyeV9lY2hvIjsgfSA+JjUKLSsgIChldmFsICIkYWNfbGluayIpIDI+JjUKLSsgIGFjX3N0YXR1 cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFj X3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9Ci0rICBpZiB7IGFjX3RyeT0n Li9jb25mdGVzdCRhY19jdl9leGVleHQnCi0rICB7IHsgY2FzZSAiKCgkYWNfdHJ5IiBpbgotKyAg KlwiKiB8ICpcYCogfCAqXFwqKSBhY190cnlfZWNobz1cJGFjX3RyeTs7Ci0rICAqKSBhY190cnlf ZWNobz0kYWNfdHJ5OzsKLStlc2FjCi0rZXZhbCBhY190cnlfZWNobz0iXCJcJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiAkYWNfdHJ5X2VjaG9cIiIKLSskYXNfZWNobyAiJGFjX3RyeV9lY2hv IjsgfSA+JjUKLSsgIChldmFsICIkYWNfdHJ5IikgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IH07IHRoZW4KLSsgICAgY3Jvc3NfY29tcGls aW5nPW5vCi0rICBlbHNlCi0rICAgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0gbWF5YmU7 IHRoZW4KLSsJY3Jvc3NfY29tcGlsaW5nPXllcwotKyAgICBlbHNlCi0rCXsgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQot KyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBcYCRhY19wd2QnOiIgPiYyO30KLSthc19mbl9l cnJvciAkPyAiY2Fubm90IHJ1biBDKysgY29tcGlsZWQgcHJvZ3JhbXMuCi0rSWYgeW91IG1lYW50 IHRvIGNyb3NzIGNvbXBpbGUsIHVzZSBcYC0taG9zdCcuCi0rU2VlIFxgY29uZmlnLmxvZycgZm9y IG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KLSsgICAgZmkKLSsgIGZpCi0rZmkKLSt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGNyb3NzX2NvbXBp bGluZyIgPiY1Ci0rJGFzX2VjaG8gIiRjcm9zc19jb21waWxpbmciID4mNjsgfQotKwotK3JtIC1m IGNvbmZ0ZXN0LiRhY19leHQgY29uZnRlc3QkYWNfY3ZfZXhlZXh0IGNvbmZ0ZXN0Lm91dAotK2Fj X2NsZWFuX2ZpbGVzPSRhY19jbGVhbl9maWxlc19zYXZlCi0reyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igc3VmZml4IG9mIG9iamVjdCBmaWxlcyIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN1ZmZpeCBvZiBvYmplY3QgZmlsZXMuLi4g IiA+JjY7IH0KLStpZiAke2FjX2N2X29iamV4dCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0Yg PmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFp biAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStybSAtZiBjb25m dGVzdC5vIGNvbmZ0ZXN0Lm9iagotK2lmIHsgeyBhY190cnk9IiRhY19jb21waWxlIgotK2Nhc2Ug IigoJGFjX3RyeSIgaW4KLSsgICpcIiogfCAqXGAqIHwgKlxcKikgYWNfdHJ5X2VjaG89XCRhY190 cnk7OwotKyAgKikgYWNfdHJ5X2VjaG89JGFjX3RyeTs7Ci0rZXNhYwotK2V2YWwgYWNfdHJ5X2Vj aG89IlwiXCRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogJGFjX3RyeV9lY2hvXCIiCi0rJGFz X2VjaG8gIiRhY190cnlfZWNobyI7IH0gPiY1Ci0rICAoZXZhbCAiJGFjX2NvbXBpbGUiKSAyPiY1 Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhl biA6Ci0rICBmb3IgYWNfZmlsZSBpbiBjb25mdGVzdC5vIGNvbmZ0ZXN0Lm9iaiBjb25mdGVzdC4q OyBkbwotKyAgdGVzdCAtZiAiJGFjX2ZpbGUiIHx8IGNvbnRpbnVlOwotKyAgY2FzZSAkYWNfZmls ZSBpbgotKyAgICAqLiRhY19leHQgfCAqLnhjb2ZmIHwgKi50ZHMgfCAqLmQgfCAqLnBkYiB8ICou eFNZTSB8ICouYmIgfCAqLmJiZyB8ICoubWFwIHwgKi5pbmYgfCAqLmRTWU0gKSA7OwotKyAgICAq KSBhY19jdl9vYmpleHQ9YGV4cHIgIiRhY19maWxlIiA6ICcuKlwuXCguKlwpJ2AKLSsgICAgICAg YnJlYWs7OwotKyAgZXNhYwotK2RvbmUKLStlbHNlCi0rICAkYXNfZWNobyAiJGFzX21lOiBmYWls ZWQgcHJvZ3JhbSB3YXM6IiA+JjUKLStzZWQgJ3MvXi98IC8nIGNvbmZ0ZXN0LiRhY19leHQgPiY1 Ci0rCi0reyB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBp biBcYCRhY19wd2QnOiIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3 ZCc6IiA+JjI7fQotK2FzX2ZuX2Vycm9yICQ/ICJjYW5ub3QgY29tcHV0ZSBzdWZmaXggb2Ygb2Jq ZWN0IGZpbGVzOiBjYW5ub3QgY29tcGlsZQotK1NlZSBcYGNvbmZpZy5sb2cnIGZvciBtb3JlIGRl dGFpbHMiICIkTElORU5PIiA1OyB9Ci0rZmkKLStybSAtZiBjb25mdGVzdC4kYWNfY3Zfb2JqZXh0 IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkYWNfY3Zfb2JqZXh0IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X29i amV4dCIgPiY2OyB9Ci0rT0JKRVhUPSRhY19jdl9vYmpleHQKLSthY19vYmpleHQ9JE9CSkVYVAot K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhl ciB3ZSBhcmUgdXNpbmcgdGhlIEdOVSBDKysgY29tcGlsZXIiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIHdoZXRoZXIgd2UgYXJlIHVzaW5nIHRoZSBHTlUgQysrIGNvbXBpbGVyLi4uICIgPiY2 OyB9Ci0raWYgJHthY19jdl9jeHhfY29tcGlsZXJfZ251Kzp9IGZhbHNlOyB0aGVuIDoKLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9B Q0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQK LSttYWluICgpCi0rewotKyNpZm5kZWYgX19HTlVDX18KLSsgICAgICAgY2hva2UgbWUKLSsjZW5k aWYKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5 X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGFjX2NvbXBpbGVyX2dudT15ZXMKLStlbHNl Ci0rICBhY19jb21waWxlcl9nbnU9bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2FjX2N2X2N4eF9jb21waWxlcl9n bnU9JGFjX2NvbXBpbGVyX2dudQotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9jeHhfY29tcGlsZXJfZ251IiA+JjUKLSskYXNf ZWNobyAiJGFjX2N2X2N4eF9jb21waWxlcl9nbnUiID4mNjsgfQotK2lmIHRlc3QgJGFjX2NvbXBp bGVyX2dudSA9IHllczsgdGhlbgotKyAgR1hYPXllcwotK2Vsc2UKLSsgIEdYWD0KLStmaQotK2Fj X3Rlc3RfQ1hYRkxBR1M9JHtDWFhGTEFHUytzZXR9Ci0rYWNfc2F2ZV9DWFhGTEFHUz0kQ1hYRkxB R1MKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdo ZXRoZXIgJENYWCBhY2NlcHRzIC1nIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy ICRDWFggYWNjZXB0cyAtZy4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19jeHhfZys6fSBm YWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFj X3NhdmVfY3h4X3dlcnJvcl9mbGFnPSRhY19jeHhfd2Vycm9yX2ZsYWcKLSsgICBhY19jeHhfd2Vy cm9yX2ZsYWc9eWVzCi0rICAgYWNfY3ZfcHJvZ19jeHhfZz1ubwotKyAgIENYWEZMQUdTPSItZyIK LSsgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5k IGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1 cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsg dGhlbiA6Ci0rICBhY19jdl9wcm9nX2N4eF9nPXllcwotK2Vsc2UKLSsgIENYWEZMQUdTPSIiCi0r ICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0 dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7 IHRoZW4gOgotKwotK2Vsc2UKLSsgIGFjX2N4eF93ZXJyb3JfZmxhZz0kYWNfc2F2ZV9jeHhfd2Vy cm9yX2ZsYWcKLSsJIENYWEZMQUdTPSItZyIKLSsJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0Yg PmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFp biAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9j eHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGFjX2N2X3Byb2dfY3h4X2c9eWVz Ci0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19v YmpleHQgY29uZnRlc3QuJGFjX2V4dAotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgYWNfY3h4X3dlcnJvcl9mbGFn PSRhY19zYXZlX2N4eF93ZXJyb3JfZmxhZwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9wcm9nX2N4eF9nIiA+JjUKLSskYXNfZWNo byAiJGFjX2N2X3Byb2dfY3h4X2ciID4mNjsgfQotK2lmIHRlc3QgIiRhY190ZXN0X0NYWEZMQUdT IiA9IHNldDsgdGhlbgotKyAgQ1hYRkxBR1M9JGFjX3NhdmVfQ1hYRkxBR1MKLStlbGlmIHRlc3Qg JGFjX2N2X3Byb2dfY3h4X2cgPSB5ZXM7IHRoZW4KLSsgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0 aGVuCi0rICAgIENYWEZMQUdTPSItZyAtTzIiCi0rICBlbHNlCi0rICAgIENYWEZMQUdTPSItZyIK LSsgIGZpCi0rZWxzZQotKyAgaWYgdGVzdCAiJEdYWCIgPSB5ZXM7IHRoZW4KLSsgICAgQ1hYRkxB R1M9Ii1PMiIKLSsgIGVsc2UKLSsgICAgQ1hYRkxBR1M9Ci0rICBmaQotK2ZpCi0rYWNfZXh0PWNw cAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hY RkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8g Y29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3Qu JGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJf Z251Ci0rREVQRElSPSIke2FtX19sZWFkaW5nX2RvdH1kZXBzIgotKwotK2FjX2NvbmZpZ19jb21t YW5kcz0iJGFjX2NvbmZpZ19jb21tYW5kcyBkZXBmaWxlcyIKLSsKLSsKLSthbV9tYWtlPSR7TUFL RS1tYWtlfQotK2NhdCA+IGNvbmZpbmMgPDwgJ0VORCcKLSthbV9fZG9pdDoKLSsJQGVjaG8gdGhp cyBpcyB0aGUgYW1fX2RvaXQgdGFyZ2V0Ci0rLlBIT05ZOiBhbV9fZG9pdAotK0VORAotKyMgSWYg d2UgZG9uJ3QgZmluZCBhbiBpbmNsdWRlIGRpcmVjdGl2ZSwganVzdCBjb21tZW50IG91dCB0aGUg Y29kZS4KLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2UiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBzdHlsZSBvZiBpbmNsdWRlIHVzZWQgYnkgJGFtX21ha2UuLi4gIiA+JjY7 IH0KLSthbV9faW5jbHVkZT0iIyIKLSthbV9fcXVvdGU9Ci0rX2FtX3Jlc3VsdD1ub25lCi0rIyBG aXJzdCB0cnkgR05VIG1ha2Ugc3R5bGUgaW5jbHVkZS4KLStlY2hvICJpbmNsdWRlIGNvbmZpbmMi ID4gY29uZm1mCi0rIyBJZ25vcmUgYWxsIGtpbmRzIG9mIGFkZGl0aW9uYWwgb3V0cHV0IGZyb20g YG1ha2UnLgotK2Nhc2UgYCRhbV9tYWtlIC1zIC1mIGNvbmZtZiAyPiAvZGV2L251bGxgIGluICMo Ci0rKnRoZVwgYW1fX2RvaXRcIHRhcmdldCopCi0rICBhbV9faW5jbHVkZT1pbmNsdWRlCi0rICBh bV9fcXVvdGU9Ci0rICBfYW1fcmVzdWx0PUdOVQotKyAgOzsKLStlc2FjCi0rIyBOb3cgdHJ5IEJT RCBtYWtlIHN0eWxlIGluY2x1ZGUuCi0raWYgdGVzdCAiJGFtX19pbmNsdWRlIiA9ICIjIjsgdGhl bgotKyAgIGVjaG8gJy5pbmNsdWRlICJjb25maW5jIicgPiBjb25mbWYKLSsgICBjYXNlIGAkYW1f bWFrZSAtcyAtZiBjb25mbWYgMj4gL2Rldi9udWxsYCBpbiAjKAotKyAgICp0aGVcIGFtX19kb2l0 XCB0YXJnZXQqKQotKyAgICAgYW1fX2luY2x1ZGU9LmluY2x1ZGUKLSsgICAgIGFtX19xdW90ZT0i XCIiCi0rICAgICBfYW1fcmVzdWx0PUJTRAotKyAgICAgOzsKLSsgICBlc2FjCi0rZmkKLSsKLSsK LSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJF9hbV9y ZXN1bHQiID4mNQotKyRhc19lY2hvICIkX2FtX3Jlc3VsdCIgPiY2OyB9Ci0rcm0gLWYgY29uZmlu YyBjb25mbWYKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtZGVwZW5kZW5jeS10cmFja2lu ZyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZytzZXR9 IiA9IHNldDsgdGhlbiA6Ci0rICBlbmFibGV2YWw9JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5n OwotK2ZpCi0rCi0raWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5v OyB0aGVuCi0rICBhbV9kZXBjb21wPSIkYWNfYXV4X2Rpci9kZXBjb21wIgotKyAgQU1ERVBCQUNL U0xBU0g9J1wnCi0rZmkKLSsgaWYgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIg IT0geG5vOyB0aGVuCi0rICBBTURFUF9UUlVFPQotKyAgQU1ERVBfRkFMU0U9JyMnCi0rZWxzZQot KyAgQU1ERVBfVFJVRT0nIycKLSsgIEFNREVQX0ZBTFNFPQotK2ZpCi0rCi0rCi0rCi0rZGVwY2M9 IiRDWFgiICBhbV9jb21waWxlcl9saXN0PQotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICIgPiY2 OyB9Ci0raWYgJHthbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUrOn0gZmFsc2U7 IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0 IC16ICIkQU1ERVBfVFJVRSIgJiYgdGVzdCAtZiAiJGFtX2RlcGNvbXAiOyB0aGVuCi0rICAjIFdl IG1ha2UgYSBzdWJkaXIgYW5kIGRvIHRoZSB0ZXN0cyB0aGVyZS4gIE90aGVyd2lzZSB3ZSBjYW4g ZW5kIHVwCi0rICAjIG1ha2luZyBib2d1cyBmaWxlcyB0aGF0IHdlIGRvbid0IGtub3cgYWJvdXQg YW5kIG5ldmVyIHJlbW92ZS4gIEZvcgotKyAgIyBpbnN0YW5jZSBpdCB3YXMgcmVwb3J0ZWQgdGhh dCBvbiBIUC1VWCB0aGUgZ2NjIHRlc3Qgd2lsbCBlbmQgdXAKLSsgICMgbWFraW5nIGEgZHVtbXkg ZmlsZSBuYW1lZCBgRCcgLS0gYmVjYXVzZSBgLU1EJyBtZWFucyBgcHV0IHRoZSBvdXRwdXQKLSsg ICMgaW4gRCcuCi0rICBta2RpciBjb25mdGVzdC5kaXIKLSsgICMgQ29weSBkZXBjb21wIHRvIHN1 YmRpciBiZWNhdXNlIG90aGVyd2lzZSB3ZSB3b24ndCBmaW5kIGl0IGlmIHdlJ3JlCi0rICAjIHVz aW5nIGEgcmVsYXRpdmUgZGlyZWN0b3J5LgotKyAgY3AgIiRhbV9kZXBjb21wIiBjb25mdGVzdC5k aXIKLSsgIGNkIGNvbmZ0ZXN0LmRpcgotKyAgIyBXZSB3aWxsIGJ1aWxkIG9iamVjdHMgYW5kIGRl cGVuZGVuY2llcyBpbiBhIHN1YmRpcmVjdG9yeSBiZWNhdXNlCi0rICAjIGl0IGhlbHBzIHRvIGRl dGVjdCBpbmFwcGxpY2FibGUgZGVwZW5kZW5jeSBtb2Rlcy4gIEZvciBpbnN0YW5jZQotKyAgIyBi b3RoIFRydTY0J3MgY2MgYW5kIElDQyBzdXBwb3J0IC1NRCB0byBvdXRwdXQgZGVwZW5kZW5jaWVz IGFzIGEKLSsgICMgc2lkZSBlZmZlY3Qgb2YgY29tcGlsYXRpb24sIGJ1dCBJQ0Mgd2lsbCBwdXQg dGhlIGRlcGVuZGVuY2llcyBpbgotKyAgIyB0aGUgY3VycmVudCBkaXJlY3Rvcnkgd2hpbGUgVHJ1 NjQgd2lsbCBwdXQgdGhlbSBpbiB0aGUgb2JqZWN0Ci0rICAjIGRpcmVjdG9yeS4KLSsgIG1rZGly IHN1YgotKwotKyAgYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBlPW5vbmUKLSsg IGlmIHRlc3QgIiRhbV9jb21waWxlcl9saXN0IiA9ICIiOyB0aGVuCi0rICAgICBhbV9jb21waWxl cl9saXN0PWBzZWQgLW4gJ3MvXiMqXChbYS16QS1aMC05XSpcKSkkL1wxL3AnIDwgLi9kZXBjb21w YAotKyAgZmkKLSsgIGFtX191bml2ZXJzYWw9ZmFsc2UKLSsgIGNhc2UgIiAkZGVwY2MgIiBpbiAj KAotKyAgICAgKlwgLWFyY2hcICpcIC1hcmNoXCAqKSBhbV9fdW5pdmVyc2FsPXRydWUgOzsKLSsg ICAgIGVzYWMKLSsKLSsgIGZvciBkZXBtb2RlIGluICRhbV9jb21waWxlcl9saXN0OyBkbwotKyAg ICAjIFNldHVwIGEgc291cmNlIHdpdGggbWFueSBkZXBlbmRlbmNpZXMsIGJlY2F1c2Ugc29tZSBj b21waWxlcnMKLSsgICAgIyBsaWtlIHRvIHdyYXAgbGFyZ2UgZGVwZW5kZW5jeSBsaXN0cyBvbiBj b2x1bW4gODAgKHdpdGggXCksIGFuZAotKyAgICAjIHdlIHNob3VsZCBub3QgY2hvb3NlIGEgZGVw Y29tcCBtb2RlIHdoaWNoIGlzIGNvbmZ1c2VkIGJ5IHRoaXMuCi0rICAgICMKLSsgICAgIyBXZSBu ZWVkIHRvIHJlY3JlYXRlIHRoZXNlIGZpbGVzIGZvciBlYWNoIHRlc3QsIGFzIHRoZSBjb21waWxl ciBtYXkKLSsgICAgIyBvdmVyd3JpdGUgc29tZSBvZiB0aGVtIHdoZW4gdGVzdGluZyB3aXRoIG9i c2N1cmUgY29tbWFuZCBsaW5lcy4KLSsgICAgIyBUaGlzIGhhcHBlbnMgYXQgbGVhc3Qgd2l0aCB0 aGUgQUlYIEMgY29tcGlsZXIuCi0rICAgIDogPiBzdWIvY29uZnRlc3QuYwotKyAgICBmb3IgaSBp biAxIDIgMyA0IDUgNjsgZG8KLSsgICAgICBlY2hvICcjaW5jbHVkZSAiY29uZnRzdCckaScuaCIn ID4+IHN1Yi9jb25mdGVzdC5jCi0rICAgICAgIyBVc2luZyBgOiA+IHN1Yi9jb25mdHN0JGkuaCcg Y3JlYXRlcyBvbmx5IHN1Yi9jb25mdHN0MS5oIHdpdGgKLSsgICAgICAjIFNvbGFyaXMgOCdzIHsv dXNyLH0vYmluL3NoLgotKyAgICAgIHRvdWNoIHN1Yi9jb25mdHN0JGkuaAotKyAgICBkb25lCi0r ICAgIGVjaG8gIiR7YW1fX2luY2x1ZGV9ICR7YW1fX3F1b3RlfXN1Yi9jb25mdGVzdC5QbyR7YW1f X3F1b3RlfSIgPiBjb25mbWYKLSsKLSsgICAgIyBXZSBjaGVjayB3aXRoIGAtYycgYW5kIGAtbycg Zm9yIHRoZSBzYWtlIG9mIHRoZSAiZGFzaG1zdGRvdXQiCi0rICAgICMgbW9kZS4gIEl0IHR1cm5z IG91dCB0aGF0IHRoZSBTdW5Qcm8gQysrIGNvbXBpbGVyIGRvZXMgbm90IHByb3Blcmx5Ci0rICAg ICMgaGFuZGxlIGAtTSAtbycsIGFuZCB3ZSBuZWVkIHRvIGRldGVjdCB0aGlzLiAgQWxzbywgc29t ZSBJbnRlbAotKyAgICAjIHZlcnNpb25zIGhhZCB0cm91YmxlIHdpdGggb3V0cHV0IGluIHN1YmRp cnMKLSsgICAgYW1fX29iaj1zdWIvY29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgYW1fX21pbnVz X29iaj0iLW8gJGFtX19vYmoiCi0rICAgIGNhc2UgJGRlcG1vZGUgaW4KLSsgICAgZ2NjKQotKyAg ICAgICMgVGhpcyBkZXBtb2RlIGNhdXNlcyBhIGNvbXBpbGVyIHJhY2UgaW4gdW5pdmVyc2FsIG1v ZGUuCi0rICAgICAgdGVzdCAiJGFtX191bml2ZXJzYWwiID0gZmFsc2UgfHwgY29udGludWUKLSsg ICAgICA7OwotKyAgICBub3NpZGVlZmZlY3QpCi0rICAgICAgIyBhZnRlciB0aGlzIHRhZywgbWVj aGFuaXNtcyBhcmUgbm90IGJ5IHNpZGUtZWZmZWN0LCBzbyB0aGV5J2xsCi0rICAgICAgIyBvbmx5 IGJlIHVzZWQgd2hlbiBleHBsaWNpdGx5IHJlcXVlc3RlZAotKyAgICAgIGlmIHRlc3QgIngkZW5h YmxlX2RlcGVuZGVuY3lfdHJhY2tpbmciID0geHllczsgdGhlbgotKwljb250aW51ZQotKyAgICAg IGVsc2UKLSsJYnJlYWsKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIG1zdmlzdWFsY3BwIHwg bXN2Y21zeXMpCi0rICAgICAgIyBUaGlzIGNvbXBpbGVyIHdvbid0IGdyb2sgYC1jIC1vJywgYnV0 IGFsc28sIHRoZSBtaW51c28gdGVzdCBoYXMKLSsgICAgICAjIG5vdCBydW4geWV0LiAgVGhlc2Ug ZGVwbW9kZXMgYXJlIGxhdGUgZW5vdWdoIGluIHRoZSBnYW1lLCBhbmQKLSsgICAgICAjIHNvIHdl YWsgdGhhdCB0aGVpciBmdW5jdGlvbmluZyBzaG91bGQgbm90IGJlIGltcGFjdGVkLgotKyAgICAg IGFtX19vYmo9Y29uZnRlc3QuJHtPQkpFWFQtb30KLSsgICAgICBhbV9fbWludXNfb2JqPQotKyAg ICAgIDs7Ci0rICAgIG5vbmUpIGJyZWFrIDs7Ci0rICAgIGVzYWMKLSsgICAgaWYgZGVwbW9kZT0k ZGVwbW9kZSBcCi0rICAgICAgIHNvdXJjZT1zdWIvY29uZnRlc3QuYyBvYmplY3Q9JGFtX19vYmog XAotKyAgICAgICBkZXBmaWxlPXN1Yi9jb25mdGVzdC5QbyB0bXBkZXBmaWxlPXN1Yi9jb25mdGVz dC5UUG8gXAotKyAgICAgICAkU0hFTEwgLi9kZXBjb21wICRkZXBjYyAtYyAkYW1fX21pbnVzX29i aiBzdWIvY29uZnRlc3QuYyBcCi0rICAgICAgICAgPi9kZXYvbnVsbCAyPmNvbmZ0ZXN0LmVyciAm JgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0MS5oIHN1Yi9jb25mdGVzdC5QbyA+IC9kZXYvbnVs bCAyPiYxICYmCi0rICAgICAgIGdyZXAgc3ViL2NvbmZ0c3Q2Lmggc3ViL2NvbmZ0ZXN0LlBvID4g L2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgZ3JlcCAkYW1fX29iaiBzdWIvY29uZnRlc3QuUG8g PiAvZGV2L251bGwgMj4mMSAmJgotKyAgICAgICAke01BS0UtbWFrZX0gLXMgLWYgY29uZm1mID4g L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICAjIGljYyBkb2Vzbid0IGNob2tlIG9uIHVua25v d24gb3B0aW9ucywgaXQgd2lsbCBqdXN0IGlzc3VlIHdhcm5pbmdzCi0rICAgICAgIyBvciByZW1h cmtzIChldmVuIHdpdGggLVdlcnJvcikuICBTbyB3ZSBncmVwIHN0ZGVyciBmb3IgYW55IG1lc3Nh Z2UKLSsgICAgICAjIHRoYXQgc2F5cyBhbiBvcHRpb24gd2FzIGlnbm9yZWQgb3Igbm90IHN1cHBv cnRlZC4KLSsgICAgICAjIFdoZW4gZ2l2ZW4gLU1QLCBpY2MgNy4wIGFuZCA3LjEgY29tcGxhaW4g dGh1c2x5OgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSB3YXJuaW5nOiBpZ25vcmluZyBv cHRpb24gJy1NJzsgbm8gYXJndW1lbnQgcmVxdWlyZWQKLSsgICAgICAjIFRoZSBkaWFnbm9zaXMg Y2hhbmdlZCBpbiBpY2MgOC4wOgotKyAgICAgICMgICBpY2M6IENvbW1hbmQgbGluZSByZW1hcms6 IG9wdGlvbiAnLU1QJyBub3Qgc3VwcG9ydGVkCi0rICAgICAgaWYgKGdyZXAgJ2lnbm9yaW5nIG9w dGlvbicgY29uZnRlc3QuZXJyIHx8Ci0rICAgICAgICAgIGdyZXAgJ25vdCBzdXBwb3J0ZWQnIGNv bmZ0ZXN0LmVycikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIDo7IGVsc2UKLSsgICAgICAgIGFtX2N2 X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQotKyAgICAgICAgYnJlYWsK LSsgICAgICBmaQotKyAgICBmaQotKyAgZG9uZQotKwotKyAgY2QgLi4KLSsgIHJtIC1yZiBjb25m dGVzdC5kaXIKLStlbHNlCi0rICBhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGU9 bm9uZQotK2ZpCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPiY1Ci0r JGFzX2VjaG8gIiRhbV9jdl9DWFhfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNjsgfQot K0NYWERFUE1PREU9ZGVwbW9kZT0kYW1fY3ZfQ1hYX2RlcGVuZGVuY2llc19jb21waWxlcl90eXBl Ci0rCi0rIGlmCi0rICB0ZXN0ICJ4JGVuYWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiAhPSB4bm8g XAotKyAgJiYgdGVzdCAiJGFtX2N2X0NYWF9kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBn Y2MzOyB0aGVuCi0rICBhbV9fZmFzdGRlcENYWF9UUlVFPQotKyAgYW1fX2Zhc3RkZXBDWFhfRkFM U0U9JyMnCi0rZWxzZQotKyAgYW1fX2Zhc3RkZXBDWFhfVFJVRT0nIycKLSsgIGFtX19mYXN0ZGVw Q1hYX0ZBTFNFPQotK2ZpCi0rCi0rCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQ RkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0reyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDKysgcHJlcHJv Y2Vzc29yIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gcnVuIHRoZSBDKysgcHJl cHJvY2Vzc29yLi4uICIgPiY2OyB9Ci0raWYgdGVzdCAteiAiJENYWENQUCI7IHRoZW4KLSsgIGlm ICR7YWNfY3ZfcHJvZ19DWFhDUFArOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICAgICAgIyBEb3VibGUgcXVvdGVzIGJlY2F1c2UgQ1hYQ1BQ IG5lZWRzIHRvIGJlIGV4cGFuZGVkCi0rICAgIGZvciBDWFhDUFAgaW4gIiRDWFggLUUiICIvbGli L2NwcCIKLSsgICAgZG8KLSsgICAgICBhY19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFjX2N4eF9w cmVwcm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0 aGF0IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJl c2ggY3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3Nl cnQuaD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlz dHMgZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2Mg LUUgcnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90 IGp1c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBj YXNlLgotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0 cy5oPgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsJCSAgICAgU3lu dGF4IGVycm9yCi0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jcHAgIiRMSU5FTk8iOyB0aGVu IDoKLSsKLStlbHNlCi0rICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0rY29udGlu dWUKLStmaQotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC5pIGNvbmZ0ZXN0LiRhY19leHQK LSsKLSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25l eGlzdGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotKyAgY2F0IGNv bmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5o LiAgKi8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiBhY19mbl9j eHhfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52 YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0r YWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVz dC5pIGNvbmZ0ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNhdXNlIG9mIGBicmVhaycsIF9B Q19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCi0rcm0gLWYgY29u ZnRlc3QuaSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29r OyB0aGVuIDoKLSsgIGJyZWFrCi0rZmkKLSsKLSsgICAgZG9uZQotKyAgICBhY19jdl9wcm9nX0NY WENQUD0kQ1hYQ1BQCi0rCi0rZmkKLSsgIENYWENQUD0kYWNfY3ZfcHJvZ19DWFhDUFAKLStlbHNl Ci0rICBhY19jdl9wcm9nX0NYWENQUD0kQ1hYQ1BQCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJENYWENQUCIgPiY1Ci0rJGFzX2VjaG8gIiRD WFhDUFAiID4mNjsgfQotK2FjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3IgYWNfY3h4X3ByZXByb2Nf d2Fybl9mbGFnIGluICcnIHllcwotK2RvCi0rICAjIFVzZSBhIGhlYWRlciBmaWxlIHRoYXQgY29t ZXMgd2l0aCBnY2MsIHNvIGNvbmZpZ3VyaW5nIGdsaWJjCi0rICAjIHdpdGggYSBmcmVzaCBjcm9z cy1jb21waWxlciB3b3Jrcy4KLSsgICMgUHJlZmVyIDxsaW1pdHMuaD4gdG8gPGFzc2VydC5oPiBp ZiBfX1NURENfXyBpcyBkZWZpbmVkLCBzaW5jZQotKyAgIyA8bGltaXRzLmg+IGV4aXN0cyBldmVu IG9uIGZyZWVzdGFuZGluZyBjb21waWxlcnMuCi0rICAjIE9uIHRoZSBOZVhULCBjYyAtRSBydW5z IHRoZSBjb2RlIHRocm91Z2ggdGhlIGNvbXBpbGVyJ3MgcGFyc2VyLAotKyAgIyBub3QganVzdCB0 aHJvdWdoIGNwcC4gIlN5bnRheCBlcnJvciIgaXMgaGVyZSB0byBjYXRjaCB0aGlzIGNhc2UuCi0r ICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKyNpZmRlZiBfX1NURENfXwotKyMgaW5jbHVkZSA8bGltaXRzLmg+Ci0r I2Vsc2UKLSsjIGluY2x1ZGUgPGFzc2VydC5oPgotKyNlbmRpZgotKwkJICAgICBTeW50YXggZXJy b3IKLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgotKwot K2Vsc2UKLSsgICMgQnJva2VuOiBmYWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Zp Ci0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LmkgY29uZnRlc3QuJGFjX2V4dAotKwotKyAg IyBPSywgd29ya3Mgb24gc2FuZSBjYXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50 IGhlYWRlcnMKLSsgICMgY2FuIGJlIGRldGVjdGVkIGFuZCBob3cuCi0rICBjYXQgY29uZmRlZnMu aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KyNpbmNsdWRlIDxhY19ub25leGlzdGVudC5oPgotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlf Y3BwICIkTElORU5PIjsgdGhlbiA6Ci0rICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlu cHV0LgotK2NvbnRpbnVlCi0rZWxzZQotKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KLSthY19wcmVw cm9jX29rPToKLSticmVhawotK2ZpCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LmkgY29u ZnRlc3QuJGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBS T0NfSUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLStybSAtZiBjb25mdGVzdC5p IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4g OgotKwotK2Vsc2UKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBlcnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBp biBcYCRhY19wd2QnOiIgPiYyO30KLSthc19mbl9lcnJvciAkPyAiQysrIHByZXByb2Nlc3NvciBc IiRDWFhDUFBcIiBmYWlscyBzYW5pdHkgY2hlY2sKLStTZWUgXGBjb25maWcubG9nJyBmb3IgbW9y ZSBkZXRhaWxzIiAiJExJTkVOTyIgNTsgfQotK2ZpCi0rCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rQ1hY RkxBR1M9IiRzYXZlX0NYWEZMQUdTIgotKwotK2Nhc2UgYHB3ZGAgaW4KLSsgICpcICogfCAqXAkq KQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6 IExpYnRvb2wgZG9lcyBub3QgY29wZSB3ZWxsIHdpdGggd2hpdGVzcGFjZSBpbiBcYHB3ZFxgIiA+ JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBMaWJ0b29sIGRvZXMgbm90IGNvcGUgd2Vs bCB3aXRoIHdoaXRlc3BhY2UgaW4gXGBwd2RcYCIgPiYyO30gOzsKLStlc2FjCi0rCi0rCi0rCi0r bWFjcm9fdmVyc2lvbj0nMi40JwotK21hY3JvX3JldmlzaW9uPScxLjMyOTMnCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rbHRtYWluPSIkYWNfYXV4X2Rpci9sdG1haW4u c2giCi0rCi0rIyBCYWNrc2xhc2hpZnkgbWV0YWNoYXJhY3RlcnMgdGhhdCBhcmUgc3RpbGwgYWN0 aXZlIHdpdGhpbgotKyMgZG91YmxlLXF1b3RlZCBzdHJpbmdzLgotK3NlZF9xdW90ZV9zdWJzdD0n cy9cKFsiYCRcXF1cKS9cXFwxL2cnCi0rCi0rIyBTYW1lIGFzIGFib3ZlLCBidXQgZG8gbm90IHF1 b3RlIHZhcmlhYmxlIHJlZmVyZW5jZXMuCi0rZG91YmxlX3F1b3RlX3N1YnN0PSdzL1woWyJgXFxd XCkvXFxcMS9nJwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBkZWxheSBleHBhbnNpb24gb2Yg YW4gZXNjYXBlZCBzaGVsbCB2YXJpYWJsZSBpbiBhCi0rIyBkb3VibGVfcXVvdGVfc3Vic3QnZWQg c3RyaW5nLgotK2RlbGF5X3ZhcmlhYmxlX3N1YnN0PSdzL1xcXFxcXFxcXFxcJC9cXFxcXFwkL2cn Ci0rCi0rIyBTZWQgc3Vic3RpdHV0aW9uIHRvIGRlbGF5IGV4cGFuc2lvbiBvZiBhbiBlc2NhcGVk IHNpbmdsZSBxdW90ZS4KLStkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Q9J3MvJ1wnJy8nXCdcXFxc XFxcJ1wnJy9nJwotKwotKyMgU2VkIHN1YnN0aXR1dGlvbiB0byBhdm9pZCBhY2NpZGVudGFsIGds b2JiaW5nIGluIGV2YWxlZCBleHByZXNzaW9ucwotK25vX2dsb2Jfc3Vic3Q9J3MvXCovXFxcKi9n JwotKwotK0VDSE89J1xcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFwnCi0rRUNITz0kRUNITyRFQ0hPJEVDSE8kRUNITyRFQ0hPCi0rRUNITz0kRUNITyRFQ0hPJEVD SE8kRUNITyRFQ0hPJEVDSE8KLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIGhvdyB0byBwcmludCBzdHJpbmdzIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBob3cgdG8gcHJpbnQgc3RyaW5ncy4uLiAiID4mNjsgfQotKyMgVGVzdCBwcmludCBm aXJzdCwgYmVjYXVzZSBpdCB3aWxsIGJlIGEgYnVpbHRpbiBpZiBwcmVzZW50LgotK2lmIHRlc3Qg IlhgKCBwcmludCAtciAtLSAtbiApIDI+L2Rldi9udWxsYCIgPSBYLW4gJiYgXAotKyAgIHRlc3Qg IlhgcHJpbnQgLXIgLS0gJEVDSE8gMj4vZGV2L251bGxgIiA9ICJYJEVDSE8iOyB0aGVuCi0rICBF Q0hPPSdwcmludCAtciAtLScKLStlbGlmIHRlc3QgIlhgcHJpbnRmICVzICRFQ0hPIDI+L2Rldi9u dWxsYCIgPSAiWCRFQ0hPIjsgdGhlbgotKyAgRUNITz0ncHJpbnRmICVzXG4nCi0rZWxzZQotKyAg IyBVc2UgdGhpcyBmdW5jdGlvbiBhcyBhIGZhbGxiYWNrIHRoYXQgYWx3YXlzIHdvcmtzLgotKyAg ZnVuY19mYWxsYmFja19lY2hvICgpCi0rICB7Ci0rICAgIGV2YWwgJ2NhdCA8PF9MVEVDSE9fRU9G Ci0rJDEKLStfTFRFQ0hPX0VPRicKLSsgIH0KLSsgIEVDSE89J2Z1bmNfZmFsbGJhY2tfZWNobycK LStmaQotKwotKyMgZnVuY19lY2hvX2FsbCBhcmcuLi4KLSsjIEludm9rZSAkRUNITyB3aXRoIGFs bCBhcmdzLCBzcGFjZS1zZXBhcmF0ZWQuCi0rZnVuY19lY2hvX2FsbCAoKQotK3sKLSsgICAgJEVD SE8gIiIKLSt9Ci0rCi0rY2FzZSAiJEVDSE8iIGluCi0rICBwcmludGYqKSB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogcHJpbnRmIiA+JjUKLSskYXNfZWNo byAicHJpbnRmIiA+JjY7IH0gOzsKLSsgIHByaW50KikgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHByaW50IC1yIiA+JjUKLSskYXNfZWNobyAicHJpbnQg LXIiID4mNjsgfSA7OwotKyAgKikgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6IGNhdCIgPiY1Ci0rJGFzX2VjaG8gImNhdCIgPiY2OyB9IDs7Ci0rZXNhYwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotK2FjX2V4dD1jCi0rYWNf Y3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxB R1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4 ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4m NScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0raWYgdGVzdCAtbiAi JGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIk e2FjX3Rvb2xfcHJlZml4fWdjYyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Z2NjOyBhY193b3JkPSQyCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lm ICR7YWNfY3ZfcHJvZ19DQys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4KLSsgIGFjX2N2X3Byb2df Q0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3Nh dmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0r ZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0u Ci0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBk bwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNf dGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19j dl9wcm9nX0NDPSIke2FjX3Rvb2xfcHJlZml4fWdjYyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIg PiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9J RlMKLSsKLStmaQotK2ZpCi0rQ0M9JGFjX2N2X3Byb2dfQ0MKLStpZiB0ZXN0IC1uICIkQ0MiOyB0 aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JENDIiA+JjUKLSskYXNfZWNobyAiJENDIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0NDIjsg dGhlbgotKyAgYWNfY3RfQ0M9JENDCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImdj YyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGdj YzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFj X3dvcmQuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X3Byb2dfYWNfY3RfQ0MrOn0gZmFsc2U7IHRo ZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1u ICIkYWNfY3RfQ0MiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMg TGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9 JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3Ig YWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsg dGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFz X2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19j dF9DQz0iZ2NjIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAg ZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19j dF9DQz0kYWNfY3ZfcHJvZ19hY19jdF9DQwotK2lmIHRlc3QgLW4gIiRhY19jdF9DQyI7IHRoZW4K LSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNf Y3RfQ0MiID4mNQotKyRhc19lY2hvICIkYWNfY3RfQ0MiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFz X2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9DQyIgPSB4OyB0 aGVuCi0rICAgIENDPSIiCi0rICBlbHNlCi0rICAgIGNhc2UgJGNyb3NzX2NvbXBpbGluZzokYWNf dG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9z dCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0 b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJu ZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBDQz0kYWNfY3RfQ0MKLSsgIGZpCi0rZWxzZQotKyAgQ0M9 IiRhY19jdl9wcm9nX0NDIgotK2ZpCi0rCi0raWYgdGVzdCAteiAiJENDIjsgdGhlbgotKyAgICAg ICAgICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICAgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1jYyIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9Y2M7IGFj X3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3Jk Li4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX0NDKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJENDIjsgdGhl bgotKyAgYWNfY3ZfcHJvZ19DQz0iJENDIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVz dC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBh c19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRh YmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9 OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfQ0M9IiR7YWNfdG9vbF9wcmVmaXh9Y2MiCi0rICAgICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dv cmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUK LStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0NDPSRhY19jdl9wcm9nX0NDCi0raWYg dGVzdCAtbiAiJENDIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRDQyIgPiY2OyB9Ci0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+ JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICBmaQotK2ZpCi0raWYgdGVz dCAteiAiJENDIjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJjYyIsIHNv IGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGNjOyBhY193 b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4u LiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19DQys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRDQyI7IHRoZW4K LSsgIGFjX2N2X3Byb2dfQ0M9IiRDQyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu Ci0rZWxzZQotKyAgYWNfcHJvZ19yZWplY3RlZD1ubwotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0k UEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2 ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVj X2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1m ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBpZiB0ZXN0ICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiA9ICIvdXNyL3VjYi9jYyI7IHRoZW4KLSsgICAgICAgYWNfcHJvZ19y ZWplY3RlZD15ZXMKLSsgICAgICAgY29udGludWUKLSsgICAgIGZpCi0rICAgIGFjX2N2X3Byb2df Q0M9ImNjIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3Vu ZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkK LStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2lmIHRlc3QgJGFjX3Byb2df cmVqZWN0ZWQgPSB5ZXM7IHRoZW4KLSsgICMgV2UgZm91bmQgYSBib2dvbiBpbiB0aGUgcGF0aCwg c28gbWFrZSBzdXJlIHdlIG5ldmVyIHVzZSBpdC4KLSsgIHNldCBkdW1teSAkYWNfY3ZfcHJvZ19D QwotKyAgc2hpZnQKLSsgIGlmIHRlc3QgJCMgIT0gMDsgdGhlbgotKyAgICAjIFdlIGNob3NlIGEg ZGlmZmVyZW50IGNvbXBpbGVyIGZyb20gdGhlIGJvZ3VzIG9uZS4KLSsgICAgIyBIb3dldmVyLCBp dCBoYXMgdGhlIHNhbWUgYmFzZW5hbWUsIHNvIHRoZSBib2dvbiB3aWxsIGJlIGNob3NlbgotKyAg ICAjIGZpcnN0IGlmIHdlIHNldCBDQyB0byBqdXN0IHRoZSBiYXNlbmFtZTsgdXNlIHRoZSBmdWxs IGZpbGUgbmFtZS4KLSsgICAgc2hpZnQKLSsgICAgYWNfY3ZfcHJvZ19DQz0iJGFzX2Rpci8kYWNf d29yZCR7MSsnICd9JEAiCi0rICBmaQotK2ZpCi0rZmkKLStmaQotK0NDPSRhY19jdl9wcm9nX0ND Ci0raWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRDQyIgPiY2OyB9Ci0r ZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0 IC16ICIkQ0MiOyB0aGVuCi0rICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0r ICBmb3IgYWNfcHJvZyBpbiBjbC5leGUKLSsgIGRvCi0rICAgICMgRXh0cmFjdCB0aGUgZmlyc3Qg d29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFt IG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZzsgYWNf d29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQu Li4gIiA+JjY7IH0KLStpZiAke2FjX2N2X3Byb2dfQ0MrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkQ0MiOyB0aGVu Ci0rICBhY19jdl9wcm9nX0NDPSIkQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFz X2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19DQz0iJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciCi0rICAg ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRv bmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK0NDPSRhY19jdl9wcm9nX0NDCi0r aWYgdGVzdCAtbiAiJENDIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRDQyIgPiY1Ci0rJGFzX2VjaG8gIiRDQyIgPiY2OyB9Ci0rZWxz ZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5v IiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICAgIHRlc3QgLW4gIiRD QyIgJiYgYnJlYWsKLSsgIGRvbmUKLStmaQotK2lmIHRlc3QgLXogIiRDQyI7IHRoZW4KLSsgIGFj X2N0X0NDPSRDQwotKyAgZm9yIGFjX3Byb2cgaW4gY2wuZXhlCi0rZG8KLSsgICMgRXh0cmFjdCB0 aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Byb2ciLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUg d2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiAke2Fj X2N2X3Byb2dfYWNfY3RfQ0MrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfQ0MiOyB0aGVuCi0rICBhY19j dl9wcm9nX2FjX2N0X0NDPSIkYWNfY3RfQ0MiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9y IGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7 IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9DQz0iJGFjX3Byb2ciCi0rICAgICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJ RlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0NDPSRhY19jdl9wcm9nX2FjX2N0 X0NDCi0raWYgdGVzdCAtbiAiJGFjX2N0X0NDIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9DQyIgPiY1Ci0rJGFzX2VjaG8g IiRhY19jdF9DQyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2Zp Ci0rCi0rCi0rICB0ZXN0IC1uICIkYWNfY3RfQ0MiICYmIGJyZWFrCi0rZG9uZQotKwotKyAgaWYg dGVzdCAieCRhY19jdF9DQyIgPSB4OyB0aGVuCi0rICAgIENDPSIiCi0rICBlbHNlCi0rICAgIGNh c2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9v bHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBs ZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBDQz0kYWNfY3Rf Q0MKLSsgIGZpCi0rZmkKLSsKLStmaQotKwotKwotK3Rlc3QgLXogIiRDQyIgJiYgeyB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGVycm9yOiBpbiBcYCRhY19wd2QnOiIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjI7fQotK2Fz X2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIEMgY29tcGlsZXIgZm91bmQgaW4gXCRQQVRICi0r U2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KLSsKLSsj IFByb3ZpZGUgc29tZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29tcGlsZXIuCi0rJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIEMgY29tcGlsZXIgdmVy c2lvbiIgPiY1Ci0rc2V0IFggJGFjX2NvbXBpbGUKLSthY19jb21waWxlcj0kMgotK2ZvciBhY19v cHRpb24gaW4gLS12ZXJzaW9uIC12IC1WIC1xdmVyc2lvbjsgZG8KLSsgIHsgeyBhY190cnk9IiRh Y19jb21waWxlciAkYWNfb3B0aW9uID4mNSIKLStjYXNlICIoKCRhY190cnkiIGluCi0rICAqXCIq IHwgKlxgKiB8ICpcXCopIGFjX3RyeV9lY2hvPVwkYWNfdHJ5OzsKLSsgICopIGFjX3RyeV9lY2hv PSRhY190cnk7OwotK2VzYWMKLStldmFsIGFjX3RyeV9lY2hvPSJcIlwkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306ICRhY190cnlfZWNob1wiIgotKyRhc19lY2hvICIkYWNfdHJ5X2VjaG8iOyB9 ID4mNQotKyAgKGV2YWwgIiRhY19jb21waWxlciAkYWNfb3B0aW9uID4mNSIpIDI+Y29uZnRlc3Qu ZXJyCi0rICBhY19zdGF0dXM9JD8KLSsgIGlmIHRlc3QgLXMgY29uZnRlc3QuZXJyOyB0aGVuCi0r ICAgIHNlZCAnMTBhXAotKy4uLiByZXN0IG9mIHN0ZGVyciBvdXRwdXQgZGVsZXRlZCAuLi4KLSsg ICAgICAgICAxMHEnIGNvbmZ0ZXN0LmVyciA+Y29uZnRlc3QuZXIxCi0rICAgIGNhdCBjb25mdGVz dC5lcjEgPiY1Ci0rICBmaQotKyAgcm0gLWYgY29uZnRlc3QuZXIxIGNvbmZ0ZXN0LmVycgotKyAg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIg PiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9Ci0rZG9uZQotKwotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB3ZSBhcmUgdXNpbmcg dGhlIEdOVSBDIGNvbXBpbGVyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHdl IGFyZSB1c2luZyB0aGUgR05VIEMgY29tcGlsZXIuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X2Nf Y29tcGlsZXJfZ251Kzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4 dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKyNpZm5k ZWYgX19HTlVDX18KLSsgICAgICAgY2hva2UgbWUKLSsjZW5kaWYKLSsKLSsgIDsKLSsgIHJldHVy biAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElORU5PIjsgdGhl biA6Ci0rICBhY19jb21waWxlcl9nbnU9eWVzCi0rZWxzZQotKyAgYWNfY29tcGlsZXJfZ251PW5v Ci0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLSthY19jdl9jX2NvbXBpbGVyX2dudT0kYWNfY29tcGlsZXJfZ251Ci0rCi0r ZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFj X2N2X2NfY29tcGlsZXJfZ251IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2NfY29tcGlsZXJfZ251 IiA+JjY7IH0KLStpZiB0ZXN0ICRhY19jb21waWxlcl9nbnUgPSB5ZXM7IHRoZW4KLSsgIEdDQz15 ZXMKLStlbHNlCi0rICBHQ0M9Ci0rZmkKLSthY190ZXN0X0NGTEFHUz0ke0NGTEFHUytzZXR9Ci0r YWNfc2F2ZV9DRkxBR1M9JENGTEFHUwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZyIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciAkQ0MgYWNjZXB0cyAtZy4uLiAiID4mNjsgfQotK2lmICR7YWNf Y3ZfcHJvZ19jY19nKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIg PiY2Ci0rZWxzZQotKyAgYWNfc2F2ZV9jX3dlcnJvcl9mbGFnPSRhY19jX3dlcnJvcl9mbGFnCi0r ICAgYWNfY193ZXJyb3JfZmxhZz15ZXMKLSsgICBhY19jdl9wcm9nX2NjX2c9bm8KLSsgICBDRkxB R1M9Ii1nIgotKyAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsK LSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9jb21waWxlICIkTElO RU5PIjsgdGhlbiA6Ci0rICBhY19jdl9wcm9nX2NjX2c9eWVzCi0rZWxzZQotKyAgQ0ZMQUdTPSIi Ci0rICAgICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8q IGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAg cmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8i OyB0aGVuIDoKLSsKLStlbHNlCi0rICBhY19jX3dlcnJvcl9mbGFnPSRhY19zYXZlX2Nfd2Vycm9y X2ZsYWcKLSsJIENGTEFHUz0iLWciCi0rCSBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m dGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkK LSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY190cnlf Y29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgotKyAgYWNfY3ZfcHJvZ19jY19nPXllcwotK2ZpCi0r cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNf ZXh0Ci0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0LiRhY19leHQKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKyAgIGFjX2Nfd2Vycm9yX2ZsYWc9JGFjX3NhdmVf Y193ZXJyb3JfZmxhZwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRhY19jdl9wcm9nX2NjX2ciID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcHJv Z19jY19nIiA+JjY7IH0KLStpZiB0ZXN0ICIkYWNfdGVzdF9DRkxBR1MiID0gc2V0OyB0aGVuCi0r ICBDRkxBR1M9JGFjX3NhdmVfQ0ZMQUdTCi0rZWxpZiB0ZXN0ICRhY19jdl9wcm9nX2NjX2cgPSB5 ZXM7IHRoZW4KLSsgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICAgIENGTEFHUz0iLWcg LU8yIgotKyAgZWxzZQotKyAgICBDRkxBR1M9Ii1nIgotKyAgZmkKLStlbHNlCi0rICBpZiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBDRkxBR1M9Ii1PMiIKLSsgIGVsc2UKLSsgICAgQ0ZM QUdTPQotKyAgZmkKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgZm9yICRDQyBvcHRpb24gdG8gYWNjZXB0IElTTyBDODkiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciAkQ0Mgb3B0aW9uIHRvIGFjY2VwdCBJU08gQzg5Li4uICIgPiY2 OyB9Ci0raWYgJHthY19jdl9wcm9nX2NjX2M4OSs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2N2X3Byb2dfY2NfYzg5PW5vCi0rYWNf c2F2ZV9DQz0kQ0MKLStjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0 Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxzdGRhcmcuaD4KLSsjaW5jbHVk ZSA8c3RkaW8uaD4KLSsjaW5jbHVkZSA8c3lzL3R5cGVzLmg+Ci0rI2luY2x1ZGUgPHN5cy9zdGF0 Lmg+Ci0rLyogTW9zdCBvZiB0aGUgZm9sbG93aW5nIHRlc3RzIGFyZSBzdG9sZW4gZnJvbSBSQ1Mg NS43J3Mgc3JjL2NvbmYuc2guICAqLwotK3N0cnVjdCBidWYgeyBpbnQgeDsgfTsKLStGSUxFICog KCpyY3NvcGVuKSAoc3RydWN0IGJ1ZiAqLCBzdHJ1Y3Qgc3RhdCAqLCBpbnQpOwotK3N0YXRpYyBj aGFyICplIChwLCBpKQotKyAgICAgY2hhciAqKnA7Ci0rICAgICBpbnQgaTsKLSt7Ci0rICByZXR1 cm4gcFtpXTsKLSt9Ci0rc3RhdGljIGNoYXIgKmYgKGNoYXIgKiAoKmcpIChjaGFyICoqLCBpbnQp LCBjaGFyICoqcCwgLi4uKQotK3sKLSsgIGNoYXIgKnM7Ci0rICB2YV9saXN0IHY7Ci0rICB2YV9z dGFydCAodixwKTsKLSsgIHMgPSBnIChwLCB2YV9hcmcgKHYsaW50KSk7Ci0rICB2YV9lbmQgKHYp OwotKyAgcmV0dXJuIHM7Ci0rfQotKwotKy8qIE9TRiA0LjAgQ29tcGFxIGNjIGlzIHNvbWUgc29y dCBvZiBhbG1vc3QtQU5TSSBieSBkZWZhdWx0LiAgSXQgaGFzCi0rICAgZnVuY3Rpb24gcHJvdG90 eXBlcyBhbmQgc3R1ZmYsIGJ1dCBub3QgJ1x4SEgnIGhleCBjaGFyYWN0ZXIgY29uc3RhbnRzLgot KyAgIFRoZXNlIGRvbid0IHByb3Zva2UgYW4gZXJyb3IgdW5mb3J0dW5hdGVseSwgaW5zdGVhZCBh cmUgc2lsZW50bHkgdHJlYXRlZAotKyAgIGFzICd4Jy4gIFRoZSBmb2xsb3dpbmcgaW5kdWNlcyBh biBlcnJvciwgdW50aWwgLXN0ZCBpcyBhZGRlZCB0byBnZXQKLSsgICBwcm9wZXIgQU5TSSBtb2Rl LiAgQ3VyaW91c2x5ICdceDAwJyE9J3gnIGFsd2F5cyBjb21lcyBvdXQgdHJ1ZSwgZm9yIGFuCi0r ICAgYXJyYXkgc2l6ZSBhdCBsZWFzdC4gIEl0J3MgbmVjZXNzYXJ5IHRvIHdyaXRlICdceDAwJz09 MCB0byBnZXQgc29tZXRoaW5nCi0rICAgdGhhdCdzIHRydWUgb25seSB3aXRoIC1zdGQuICAqLwot K2ludCBvc2Y0X2NjX2FycmF5IFsnXHgwMCcgPT0gMCA/IDEgOiAtMV07Ci0rCi0rLyogSUJNIEMg NiBmb3IgQUlYIGlzIGFsbW9zdC1BTlNJIGJ5IGRlZmF1bHQsIGJ1dCBpdCByZXBsYWNlcyBtYWNy byBwYXJhbWV0ZXJzCi0rICAgaW5zaWRlIHN0cmluZ3MgYW5kIGNoYXJhY3RlciBjb25zdGFudHMu ICAqLwotKyNkZWZpbmUgRk9PKHgpICd4JwotK2ludCB4bGM2X2NjX2FycmF5W0ZPTyhhKSA9PSAn eCcgPyAxIDogLTFdOwotKwotK2ludCB0ZXN0IChpbnQgaSwgZG91YmxlIHgpOwotK3N0cnVjdCBz MSB7aW50ICgqZikgKGludCBhKTt9OwotK3N0cnVjdCBzMiB7aW50ICgqZikgKGRvdWJsZSBhKTt9 OwotK2ludCBwYWlybmFtZXMgKGludCwgY2hhciAqKiwgRklMRSAqKCopKHN0cnVjdCBidWYgKiwg c3RydWN0IHN0YXQgKiwgaW50KSwgaW50LCBpbnQpOwotK2ludCBhcmdjOwotK2NoYXIgKiphcmd2 OwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGYgKGUsIGFyZ3YsIDApICE9IGFyZ3ZbMF0g IHx8ICBmIChlLCBhcmd2LCAxKSAhPSBhcmd2WzFdOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQot K19BQ0VPRgotK2ZvciBhY19hcmcgaW4gJycgLXFsYW5nbHZsPWV4dGM4OSAtcWxhbmdsdmw9YW5z aSAtc3RkIFwKLSsJLUFlICItQWEgLURfSFBVWF9TT1VSQ0UiICItWGMgLURfX0VYVEVOU0lPTlNf XyIKLStkbwotKyAgQ0M9IiRhY19zYXZlX0NDICRhY19hcmciCi0rICBpZiBhY19mbl9jX3RyeV9j b21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBhY19jdl9wcm9nX2NjX2M4OT0kYWNfYXJnCi0r ZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0Ci0rICB0ZXN0 ICJ4JGFjX2N2X3Byb2dfY2NfYzg5IiAhPSAieG5vIiAmJiBicmVhawotK2RvbmUKLStybSAtZiBj b25mdGVzdC4kYWNfZXh0Ci0rQ0M9JGFjX3NhdmVfQ0MKLSsKLStmaQotKyMgQUNfQ0FDSEVfVkFM Ci0rY2FzZSAieCRhY19jdl9wcm9nX2NjX2M4OSIgaW4KLSsgIHgpCi0rICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBub25lIG5lZWRlZCIgPiY1Ci0r JGFzX2VjaG8gIm5vbmUgbmVlZGVkIiA+JjY7IH0gOzsKLSsgIHhubykKLSsgICAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHVuc3VwcG9ydGVkIiA+JjUK LSskYXNfZWNobyAidW5zdXBwb3J0ZWQiID4mNjsgfSA7OwotKyAgKikKLSsgICAgQ0M9IiRDQyAk YWNfY3ZfcHJvZ19jY19jODkiCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkYWNfY3ZfcHJvZ19jY19jODkiID4mNQotKyRhc19lY2hvICIkYWNf Y3ZfcHJvZ19jY19jODkiID4mNjsgfSA7OwotK2VzYWMKLStpZiB0ZXN0ICJ4JGFjX2N2X3Byb2df Y2NfYzg5IiAhPSB4bm87IHRoZW4gOgotKwotK2ZpCi0rCi0rYWNfZXh0PWNwcAotK2FjX2NwcD0n JENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNf ZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElC UyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rZGVw Y2M9IiRDQyIgICBhbV9jb21waWxlcl9saXN0PQotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZGVwZW5kZW5jeSBzdHlsZSBvZiAkZGVwY2MiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGRlcGVuZGVuY3kgc3R5bGUgb2YgJGRlcGNjLi4uICIg PiY2OyB9Ci0raWYgJHthbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSs6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRl c3QgLXogIiRBTURFUF9UUlVFIiAmJiB0ZXN0IC1mICIkYW1fZGVwY29tcCI7IHRoZW4KLSsgICMg V2UgbWFrZSBhIHN1YmRpciBhbmQgZG8gdGhlIHRlc3RzIHRoZXJlLiAgT3RoZXJ3aXNlIHdlIGNh biBlbmQgdXAKLSsgICMgbWFraW5nIGJvZ3VzIGZpbGVzIHRoYXQgd2UgZG9uJ3Qga25vdyBhYm91 dCBhbmQgbmV2ZXIgcmVtb3ZlLiAgRm9yCi0rICAjIGluc3RhbmNlIGl0IHdhcyByZXBvcnRlZCB0 aGF0IG9uIEhQLVVYIHRoZSBnY2MgdGVzdCB3aWxsIGVuZCB1cAotKyAgIyBtYWtpbmcgYSBkdW1t eSBmaWxlIG5hbWVkIGBEJyAtLSBiZWNhdXNlIGAtTUQnIG1lYW5zIGBwdXQgdGhlIG91dHB1dAot KyAgIyBpbiBEJy4KLSsgIG1rZGlyIGNvbmZ0ZXN0LmRpcgotKyAgIyBDb3B5IGRlcGNvbXAgdG8g c3ViZGlyIGJlY2F1c2Ugb3RoZXJ3aXNlIHdlIHdvbid0IGZpbmQgaXQgaWYgd2UncmUKLSsgICMg dXNpbmcgYSByZWxhdGl2ZSBkaXJlY3RvcnkuCi0rICBjcCAiJGFtX2RlcGNvbXAiIGNvbmZ0ZXN0 LmRpcgotKyAgY2QgY29uZnRlc3QuZGlyCi0rICAjIFdlIHdpbGwgYnVpbGQgb2JqZWN0cyBhbmQg ZGVwZW5kZW5jaWVzIGluIGEgc3ViZGlyZWN0b3J5IGJlY2F1c2UKLSsgICMgaXQgaGVscHMgdG8g ZGV0ZWN0IGluYXBwbGljYWJsZSBkZXBlbmRlbmN5IG1vZGVzLiAgRm9yIGluc3RhbmNlCi0rICAj IGJvdGggVHJ1NjQncyBjYyBhbmQgSUNDIHN1cHBvcnQgLU1EIHRvIG91dHB1dCBkZXBlbmRlbmNp ZXMgYXMgYQotKyAgIyBzaWRlIGVmZmVjdCBvZiBjb21waWxhdGlvbiwgYnV0IElDQyB3aWxsIHB1 dCB0aGUgZGVwZW5kZW5jaWVzIGluCi0rICAjIHRoZSBjdXJyZW50IGRpcmVjdG9yeSB3aGlsZSBU cnU2NCB3aWxsIHB1dCB0aGVtIGluIHRoZSBvYmplY3QKLSsgICMgZGlyZWN0b3J5LgotKyAgbWtk aXIgc3ViCi0rCi0rICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1ub25lCi0r ICBpZiB0ZXN0ICIkYW1fY29tcGlsZXJfbGlzdCIgPSAiIjsgdGhlbgotKyAgICAgYW1fY29tcGls ZXJfbGlzdD1gc2VkIC1uICdzL14jKlwoW2EtekEtWjAtOV0qXCkpJC9cMS9wJyA8IC4vZGVwY29t cGAKLSsgIGZpCi0rICBhbV9fdW5pdmVyc2FsPWZhbHNlCi0rICBjYXNlICIgJGRlcGNjICIgaW4g IygKLSsgICAgICpcIC1hcmNoXCAqXCAtYXJjaFwgKikgYW1fX3VuaXZlcnNhbD10cnVlIDs7Ci0r ICAgICBlc2FjCi0rCi0rICBmb3IgZGVwbW9kZSBpbiAkYW1fY29tcGlsZXJfbGlzdDsgZG8KLSsg ICAgIyBTZXR1cCBhIHNvdXJjZSB3aXRoIG1hbnkgZGVwZW5kZW5jaWVzLCBiZWNhdXNlIHNvbWUg Y29tcGlsZXJzCi0rICAgICMgbGlrZSB0byB3cmFwIGxhcmdlIGRlcGVuZGVuY3kgbGlzdHMgb24g Y29sdW1uIDgwICh3aXRoIFwpLCBhbmQKLSsgICAgIyB3ZSBzaG91bGQgbm90IGNob29zZSBhIGRl cGNvbXAgbW9kZSB3aGljaCBpcyBjb25mdXNlZCBieSB0aGlzLgotKyAgICAjCi0rICAgICMgV2Ug bmVlZCB0byByZWNyZWF0ZSB0aGVzZSBmaWxlcyBmb3IgZWFjaCB0ZXN0LCBhcyB0aGUgY29tcGls ZXIgbWF5Ci0rICAgICMgb3ZlcndyaXRlIHNvbWUgb2YgdGhlbSB3aGVuIHRlc3Rpbmcgd2l0aCBv YnNjdXJlIGNvbW1hbmQgbGluZXMuCi0rICAgICMgVGhpcyBoYXBwZW5zIGF0IGxlYXN0IHdpdGgg dGhlIEFJWCBDIGNvbXBpbGVyLgotKyAgICA6ID4gc3ViL2NvbmZ0ZXN0LmMKLSsgICAgZm9yIGkg aW4gMSAyIDMgNCA1IDY7IGRvCi0rICAgICAgZWNobyAnI2luY2x1ZGUgImNvbmZ0c3QnJGknLmgi JyA+PiBzdWIvY29uZnRlc3QuYwotKyAgICAgICMgVXNpbmcgYDogPiBzdWIvY29uZnRzdCRpLmgn IGNyZWF0ZXMgb25seSBzdWIvY29uZnRzdDEuaCB3aXRoCi0rICAgICAgIyBTb2xhcmlzIDgncyB7 L3Vzcix9L2Jpbi9zaC4KLSsgICAgICB0b3VjaCBzdWIvY29uZnRzdCRpLmgKLSsgICAgZG9uZQot KyAgICBlY2hvICIke2FtX19pbmNsdWRlfSAke2FtX19xdW90ZX1zdWIvY29uZnRlc3QuUG8ke2Ft X19xdW90ZX0iID4gY29uZm1mCi0rCi0rICAgICMgV2UgY2hlY2sgd2l0aCBgLWMnIGFuZCBgLW8n IGZvciB0aGUgc2FrZSBvZiB0aGUgImRhc2htc3Rkb3V0IgotKyAgICAjIG1vZGUuICBJdCB0dXJu cyBvdXQgdGhhdCB0aGUgU3VuUHJvIEMrKyBjb21waWxlciBkb2VzIG5vdCBwcm9wZXJseQotKyAg ICAjIGhhbmRsZSBgLU0gLW8nLCBhbmQgd2UgbmVlZCB0byBkZXRlY3QgdGhpcy4gIEFsc28sIHNv bWUgSW50ZWwKLSsgICAgIyB2ZXJzaW9ucyBoYWQgdHJvdWJsZSB3aXRoIG91dHB1dCBpbiBzdWJk aXJzCi0rICAgIGFtX19vYmo9c3ViL2NvbmZ0ZXN0LiR7T0JKRVhULW99Ci0rICAgIGFtX19taW51 c19vYmo9Ii1vICRhbV9fb2JqIgotKyAgICBjYXNlICRkZXBtb2RlIGluCi0rICAgIGdjYykKLSsg ICAgICAjIFRoaXMgZGVwbW9kZSBjYXVzZXMgYSBjb21waWxlciByYWNlIGluIHVuaXZlcnNhbCBt b2RlLgotKyAgICAgIHRlc3QgIiRhbV9fdW5pdmVyc2FsIiA9IGZhbHNlIHx8IGNvbnRpbnVlCi0r ICAgICAgOzsKLSsgICAgbm9zaWRlZWZmZWN0KQotKyAgICAgICMgYWZ0ZXIgdGhpcyB0YWcsIG1l Y2hhbmlzbXMgYXJlIG5vdCBieSBzaWRlLWVmZmVjdCwgc28gdGhleSdsbAotKyAgICAgICMgb25s eSBiZSB1c2VkIHdoZW4gZXhwbGljaXRseSByZXF1ZXN0ZWQKLSsgICAgICBpZiB0ZXN0ICJ4JGVu YWJsZV9kZXBlbmRlbmN5X3RyYWNraW5nIiA9IHh5ZXM7IHRoZW4KLSsJY29udGludWUKLSsgICAg ICBlbHNlCi0rCWJyZWFrCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBtc3Zpc3VhbGNwcCB8 IG1zdmNtc3lzKQotKyAgICAgICMgVGhpcyBjb21waWxlciB3b24ndCBncm9rIGAtYyAtbycsIGJ1 dCBhbHNvLCB0aGUgbWludXNvIHRlc3QgaGFzCi0rICAgICAgIyBub3QgcnVuIHlldC4gIFRoZXNl IGRlcG1vZGVzIGFyZSBsYXRlIGVub3VnaCBpbiB0aGUgZ2FtZSwgYW5kCi0rICAgICAgIyBzbyB3 ZWFrIHRoYXQgdGhlaXIgZnVuY3Rpb25pbmcgc2hvdWxkIG5vdCBiZSBpbXBhY3RlZC4KLSsgICAg ICBhbV9fb2JqPWNvbmZ0ZXN0LiR7T0JKRVhULW99Ci0rICAgICAgYW1fX21pbnVzX29iaj0KLSsg ICAgICA7OwotKyAgICBub25lKSBicmVhayA7OwotKyAgICBlc2FjCi0rICAgIGlmIGRlcG1vZGU9 JGRlcG1vZGUgXAotKyAgICAgICBzb3VyY2U9c3ViL2NvbmZ0ZXN0LmMgb2JqZWN0PSRhbV9fb2Jq IFwKLSsgICAgICAgZGVwZmlsZT1zdWIvY29uZnRlc3QuUG8gdG1wZGVwZmlsZT1zdWIvY29uZnRl c3QuVFBvIFwKLSsgICAgICAgJFNIRUxMIC4vZGVwY29tcCAkZGVwY2MgLWMgJGFtX19taW51c19v Ymogc3ViL2NvbmZ0ZXN0LmMgXAotKyAgICAgICAgID4vZGV2L251bGwgMj5jb25mdGVzdC5lcnIg JiYKLSsgICAgICAgZ3JlcCBzdWIvY29uZnRzdDEuaCBzdWIvY29uZnRlc3QuUG8gPiAvZGV2L251 bGwgMj4mMSAmJgotKyAgICAgICBncmVwIHN1Yi9jb25mdHN0Ni5oIHN1Yi9jb25mdGVzdC5QbyA+ IC9kZXYvbnVsbCAyPiYxICYmCi0rICAgICAgIGdyZXAgJGFtX19vYmogc3ViL2NvbmZ0ZXN0LlBv ID4gL2Rldi9udWxsIDI+JjEgJiYKLSsgICAgICAgJHtNQUtFLW1ha2V9IC1zIC1mIGNvbmZtZiA+ IC9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rICAgICAgIyBpY2MgZG9lc24ndCBjaG9rZSBvbiB1bmtu b3duIG9wdGlvbnMsIGl0IHdpbGwganVzdCBpc3N1ZSB3YXJuaW5ncwotKyAgICAgICMgb3IgcmVt YXJrcyAoZXZlbiB3aXRoIC1XZXJyb3IpLiAgU28gd2UgZ3JlcCBzdGRlcnIgZm9yIGFueSBtZXNz YWdlCi0rICAgICAgIyB0aGF0IHNheXMgYW4gb3B0aW9uIHdhcyBpZ25vcmVkIG9yIG5vdCBzdXBw b3J0ZWQuCi0rICAgICAgIyBXaGVuIGdpdmVuIC1NUCwgaWNjIDcuMCBhbmQgNy4xIGNvbXBsYWlu IHRodXNseToKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgd2FybmluZzogaWdub3Jpbmcg b3B0aW9uICctTSc7IG5vIGFyZ3VtZW50IHJlcXVpcmVkCi0rICAgICAgIyBUaGUgZGlhZ25vc2lz IGNoYW5nZWQgaW4gaWNjIDguMDoKLSsgICAgICAjICAgaWNjOiBDb21tYW5kIGxpbmUgcmVtYXJr OiBvcHRpb24gJy1NUCcgbm90IHN1cHBvcnRlZAotKyAgICAgIGlmIChncmVwICdpZ25vcmluZyBv cHRpb24nIGNvbmZ0ZXN0LmVyciB8fAotKyAgICAgICAgICBncmVwICdub3Qgc3VwcG9ydGVkJyBj b25mdGVzdC5lcnIpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6OyBlbHNlCi0rICAgICAgICBhbV9j dl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT0kZGVwbW9kZQotKyAgICAgICAgYnJlYWsK LSsgICAgICBmaQotKyAgICBmaQotKyAgZG9uZQotKwotKyAgY2QgLi4KLSsgIHJtIC1yZiBjb25m dGVzdC5kaXIKLStlbHNlCi0rICBhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZT1u b25lCi0rZmkKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogcmVzdWx0OiAkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNQotKyRh c19lY2hvICIkYW1fY3ZfQ0NfZGVwZW5kZW5jaWVzX2NvbXBpbGVyX3R5cGUiID4mNjsgfQotK0ND REVQTU9ERT1kZXBtb2RlPSRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZQotKwot KyBpZgotKyAgdGVzdCAieCRlbmFibGVfZGVwZW5kZW5jeV90cmFja2luZyIgIT0geG5vIFwKLSsg ICYmIHRlc3QgIiRhbV9jdl9DQ19kZXBlbmRlbmNpZXNfY29tcGlsZXJfdHlwZSIgPSBnY2MzOyB0 aGVuCi0rICBhbV9fZmFzdGRlcENDX1RSVUU9Ci0rICBhbV9fZmFzdGRlcENDX0ZBTFNFPScjJwot K2Vsc2UKLSsgIGFtX19mYXN0ZGVwQ0NfVFJVRT0nIycKLSsgIGFtX19mYXN0ZGVwQ0NfRkFMU0U9 Ci0rZmkKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIGZvciBhIHNlZCB0aGF0IGRvZXMgbm90IHRydW5jYXRlIG91dHB1dCIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yIGEgc2VkIHRoYXQgZG9lcyBub3QgdHJ1bmNhdGUgb3V0cHV0 Li4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wYXRoX1NFRCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgICAgICAgICAgICBhY19zY3JpcHQ9 cy9hYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYS9iYmJiYmJiYmJiYmJiYmJiYmJi YmJiYmJiYmJiYmJiYmIvCi0rICAgICBmb3IgYWNfaSBpbiAxIDIgMyA0IDUgNiA3OyBkbwotKyAg ICAgICBhY19zY3JpcHQ9IiRhY19zY3JpcHQkYXNfbmwkYWNfc2NyaXB0IgotKyAgICAgZG9uZQot KyAgICAgZWNobyAiJGFjX3NjcmlwdCIgMj4vZGV2L251bGwgfCBzZWQgOTlxID5jb25mdGVzdC5z ZWQKLSsgICAgIHsgYWNfc2NyaXB0PTsgdW5zZXQgYWNfc2NyaXB0O30KLSsgICAgIGlmIHRlc3Qg LXogIiRTRUQiOyB0aGVuCi0rICBhY19wYXRoX1NFRF9mb3VuZD1mYWxzZQotKyAgIyBMb29wIHRo cm91Z2ggdGhlIHVzZXIncyBwYXRoIGFuZCB0ZXN0IGZvciBlYWNoIG9mIFBST0dOQU1FLUxJU1QK LSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGlu ICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCi0rICAgIGZvciBhY19wcm9nIGluIHNlZCBnc2VkOyBkbwotKyAgICBmb3IgYWNf ZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgICAgICBhY19w YXRoX1NFRD0iJGFzX2Rpci8kYWNfcHJvZyRhY19leGVjX2V4dCIKLSsgICAgICB7IHRlc3QgLWYg IiRhY19wYXRoX1NFRCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhfU0VEIjsgfSB8fCBjb250aW51 ZQotKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX1NFRCBhbmQgc2VsZWN0IGl0IGlmIGl0IGlzIGZv dW5kLgotKyAgIyBDaGVjayBmb3IgR05VICRhY19wYXRoX1NFRAotK2Nhc2UgYCIkYWNfcGF0aF9T RUQiIC0tdmVyc2lvbiAyPiYxYCBpbgotKypHTlUqKQotKyAgYWNfY3ZfcGF0aF9TRUQ9IiRhY19w YXRoX1NFRCIgYWNfcGF0aF9TRURfZm91bmQ9Ojs7Ci0rKikKLSsgIGFjX2NvdW50PTAKLSsgICRh c19lY2hvX24gMDEyMzQ1Njc4OSA+ImNvbmZ0ZXN0LmluIgotKyAgd2hpbGUgOgotKyAgZG8KLSsg ICAgY2F0ICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIKLSsgICAg bXYgImNvbmZ0ZXN0LnRtcCIgImNvbmZ0ZXN0LmluIgotKyAgICBjcCAiY29uZnRlc3QuaW4iICJj b25mdGVzdC5ubCIKLSsgICAgJGFzX2VjaG8gJycgPj4gImNvbmZ0ZXN0Lm5sIgotKyAgICAiJGFj X3BhdGhfU0VEIiAtZiBjb25mdGVzdC5zZWQgPCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0 IiAyPi9kZXYvbnVsbCB8fCBicmVhawotKyAgICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVz dC5ubCIgPi9kZXYvbnVsbCAyPiYxIHx8IGJyZWFrCi0rICAgIGFzX2ZuX2FyaXRoICRhY19jb3Vu dCArIDEgJiYgYWNfY291bnQ9JGFzX3ZhbAotKyAgICBpZiB0ZXN0ICRhY19jb3VudCAtZ3QgJHth Y19wYXRoX1NFRF9tYXgtMH07IHRoZW4KLSsgICAgICAjIEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBp dCBidXQga2VlcCBsb29raW5nIGZvciBhIGJldHRlciBvbmUKLSsgICAgICBhY19jdl9wYXRoX1NF RD0iJGFjX3BhdGhfU0VEIgotKyAgICAgIGFjX3BhdGhfU0VEX21heD0kYWNfY291bnQKLSsgICAg ZmkKLSsgICAgIyAxMCooMl4xMCkgY2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3Vn aAotKyAgICB0ZXN0ICRhY19jb3VudCAtZ3QgMTAgJiYgYnJlYWsKLSsgIGRvbmUKLSsgIHJtIC1m IGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0LnRtcCBjb25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7OwotK2Vz YWMKLSsKLSsgICAgICAkYWNfcGF0aF9TRURfZm91bmQgJiYgYnJlYWsgMwotKyAgICBkb25lCi0r ICBkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKyAgaWYgdGVzdCAteiAiJGFjX2N2 X3BhdGhfU0VEIjsgdGhlbgotKyAgICBhc19mbl9lcnJvciAkPyAibm8gYWNjZXB0YWJsZSBzZWQg Y291bGQgYmUgZm91bmQgaW4gXCRQQVRIIiAiJExJTkVOTyIgNQotKyAgZmkKLStlbHNlCi0rICBh Y19jdl9wYXRoX1NFRD0kU0VECi0rZmkKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfcGF0aF9TRUQiID4mNQotKyRhc19lY2hv ICIkYWNfY3ZfcGF0aF9TRUQiID4mNjsgfQotKyBTRUQ9IiRhY19jdl9wYXRoX1NFRCIKLSsgIHJt IC1mIGNvbmZ0ZXN0LnNlZAotKwotK3Rlc3QgLXogIiRTRUQiICYmIFNFRD1zZWQKLStYc2VkPSIk U0VEIC1lIDFzL15YLy8iCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgZ3JlcCB0aGF0 IGhhbmRsZXMgbG9uZyBsaW5lcyBhbmQgLWUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciBncmVwIHRoYXQgaGFuZGxlcyBsb25nIGxpbmVzIGFuZCAtZS4uLiAiID4mNjsgfQotK2lmICR7 YWNfY3ZfcGF0aF9HUkVQKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAteiAiJEdSRVAiOyB0aGVuCi0rICBhY19wYXRoX0dS RVBfZm91bmQ9ZmFsc2UKLSsgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0aCBhbmQgdGVz dCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCi0rICBhc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBn NC9iaW4KLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KLSsgICAgZm9yIGFjX3Byb2cgaW4gZ3JlcCBnZ3JlcDsgZG8KLSsgICAgZm9yIGFj X2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICAgICAgYWNf cGF0aF9HUkVQPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNfZXh0IgotKyAgICAgIHsgdGVzdCAt ZiAiJGFjX3BhdGhfR1JFUCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhfR1JFUCI7IH0gfHwgY29u dGludWUKLSsjIENoZWNrIGZvciBHTlUgYWNfcGF0aF9HUkVQIGFuZCBzZWxlY3QgaXQgaWYgaXQg aXMgZm91bmQuCi0rICAjIENoZWNrIGZvciBHTlUgJGFjX3BhdGhfR1JFUAotK2Nhc2UgYCIkYWNf cGF0aF9HUkVQIiAtLXZlcnNpb24gMj4mMWAgaW4KLSsqR05VKikKLSsgIGFjX2N2X3BhdGhfR1JF UD0iJGFjX3BhdGhfR1JFUCIgYWNfcGF0aF9HUkVQX2ZvdW5kPTo7OwotKyopCi0rICBhY19jb3Vu dD0wCi0rICAkYXNfZWNob19uIDAxMjM0NTY3ODkgPiJjb25mdGVzdC5pbiIKLSsgIHdoaWxlIDoK LSsgIGRvCi0rICAgIGNhdCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5pbiIgPiJjb25mdGVzdC50 bXAiCi0rICAgIG12ICJjb25mdGVzdC50bXAiICJjb25mdGVzdC5pbiIKLSsgICAgY3AgImNvbmZ0 ZXN0LmluIiAiY29uZnRlc3QubmwiCi0rICAgICRhc19lY2hvICdHUkVQJyA+PiAiY29uZnRlc3Qu bmwiCi0rICAgICIkYWNfcGF0aF9HUkVQIiAtZSAnR1JFUCQnIC1lICctKGNhbm5vdCBtYXRjaCkt JyA8ICJjb25mdGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8IGJyZWFrCi0r ICAgIGRpZmYgImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEgfHwg YnJlYWsKLSsgICAgYXNfZm5fYXJpdGggJGFjX2NvdW50ICsgMSAmJiBhY19jb3VudD0kYXNfdmFs Ci0rICAgIGlmIHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfR1JFUF9tYXgtMH07IHRoZW4K LSsgICAgICAjIEJlc3Qgb25lIHNvIGZhciwgc2F2ZSBpdCBidXQga2VlcCBsb29raW5nIGZvciBh IGJldHRlciBvbmUKLSsgICAgICBhY19jdl9wYXRoX0dSRVA9IiRhY19wYXRoX0dSRVAiCi0rICAg ICAgYWNfcGF0aF9HUkVQX21heD0kYWNfY291bnQKLSsgICAgZmkKLSsgICAgIyAxMCooMl4xMCkg Y2hhcnMgYXMgaW5wdXQgc2VlbXMgbW9yZSB0aGFuIGVub3VnaAotKyAgICB0ZXN0ICRhY19jb3Vu dCAtZ3QgMTAgJiYgYnJlYWsKLSsgIGRvbmUKLSsgIHJtIC1mIGNvbmZ0ZXN0LmluIGNvbmZ0ZXN0 LnRtcCBjb25mdGVzdC5ubCBjb25mdGVzdC5vdXQ7OwotK2VzYWMKLSsKLSsgICAgICAkYWNfcGF0 aF9HUkVQX2ZvdW5kICYmIGJyZWFrIDMKLSsgICAgZG9uZQotKyAgZG9uZQotKyAgZG9uZQotK0lG Uz0kYXNfc2F2ZV9JRlMKLSsgIGlmIHRlc3QgLXogIiRhY19jdl9wYXRoX0dSRVAiOyB0aGVuCi0r ICAgIGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIGdyZXAgY291bGQgYmUgZm91bmQgaW4g JFBBVEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluIiAiJExJTkVOTyIgNQotKyAgZmkKLStl bHNlCi0rICBhY19jdl9wYXRoX0dSRVA9JEdSRVAKLStmaQotKwotK2ZpCi0reyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9wYXRoX0dSRVAiID4m NQotKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9HUkVQIiA+JjY7IH0KLSsgR1JFUD0iJGFjX2N2X3Bh dGhfR1JFUCIKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGZvciBlZ3JlcCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGVncmVw Li4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wYXRoX0VHUkVQKzp9IGZhbHNlOyB0aGVuIDoKLSsg ICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgZWNobyBhIHwgJEdSRVAg LUUgJyhhfGIpJyA+L2Rldi9udWxsIDI+JjEKLSsgICB0aGVuIGFjX2N2X3BhdGhfRUdSRVA9IiRH UkVQIC1FIgotKyAgIGVsc2UKLSsgICAgIGlmIHRlc3QgLXogIiRFR1JFUCI7IHRoZW4KLSsgIGFj X3BhdGhfRUdSRVBfZm91bmQ9ZmFsc2UKLSsgICMgTG9vcCB0aHJvdWdoIHRoZSB1c2VyJ3MgcGF0 aCBhbmQgdGVzdCBmb3IgZWFjaCBvZiBQUk9HTkFNRS1MSVNUCi0rICBhc19zYXZlX0lGUz0kSUZT OyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSCRQQVRIX1NFUEFSQVRP Ui91c3IveHBnNC9iaW4KLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFz X2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX3Byb2cgaW4gZWdyZXA7IGRvCi0rICAgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgICAg IGFjX3BhdGhfRUdSRVA9IiRhc19kaXIvJGFjX3Byb2ckYWNfZXhlY19leHQiCi0rICAgICAgeyB0 ZXN0IC1mICIkYWNfcGF0aF9FR1JFUCIgJiYgJGFzX3Rlc3RfeCAiJGFjX3BhdGhfRUdSRVAiOyB9 IHx8IGNvbnRpbnVlCi0rIyBDaGVjayBmb3IgR05VIGFjX3BhdGhfRUdSRVAgYW5kIHNlbGVjdCBp dCBpZiBpdCBpcyBmb3VuZC4KLSsgICMgQ2hlY2sgZm9yIEdOVSAkYWNfcGF0aF9FR1JFUAotK2Nh c2UgYCIkYWNfcGF0aF9FR1JFUCIgLS12ZXJzaW9uIDI+JjFgIGluCi0rKkdOVSopCi0rICBhY19j dl9wYXRoX0VHUkVQPSIkYWNfcGF0aF9FR1JFUCIgYWNfcGF0aF9FR1JFUF9mb3VuZD06OzsKLSsq KQotKyAgYWNfY291bnQ9MAotKyAgJGFzX2VjaG9fbiAwMTIzNDU2Nzg5ID4iY29uZnRlc3QuaW4i Ci0rICB3aGlsZSA6Ci0rICBkbwotKyAgICBjYXQgImNvbmZ0ZXN0LmluIiAiY29uZnRlc3QuaW4i ID4iY29uZnRlc3QudG1wIgotKyAgICBtdiAiY29uZnRlc3QudG1wIiAiY29uZnRlc3QuaW4iCi0r ICAgIGNwICJjb25mdGVzdC5pbiIgImNvbmZ0ZXN0Lm5sIgotKyAgICAkYXNfZWNobyAnRUdSRVAn ID4+ICJjb25mdGVzdC5ubCIKLSsgICAgIiRhY19wYXRoX0VHUkVQIiAnRUdSRVAkJyA8ICJjb25m dGVzdC5ubCIgPiJjb25mdGVzdC5vdXQiIDI+L2Rldi9udWxsIHx8IGJyZWFrCi0rICAgIGRpZmYg ImNvbmZ0ZXN0Lm91dCIgImNvbmZ0ZXN0Lm5sIiA+L2Rldi9udWxsIDI+JjEgfHwgYnJlYWsKLSsg ICAgYXNfZm5fYXJpdGggJGFjX2NvdW50ICsgMSAmJiBhY19jb3VudD0kYXNfdmFsCi0rICAgIGlm IHRlc3QgJGFjX2NvdW50IC1ndCAke2FjX3BhdGhfRUdSRVBfbWF4LTB9OyB0aGVuCi0rICAgICAg IyBCZXN0IG9uZSBzbyBmYXIsIHNhdmUgaXQgYnV0IGtlZXAgbG9va2luZyBmb3IgYSBiZXR0ZXIg b25lCi0rICAgICAgYWNfY3ZfcGF0aF9FR1JFUD0iJGFjX3BhdGhfRUdSRVAiCi0rICAgICAgYWNf cGF0aF9FR1JFUF9tYXg9JGFjX2NvdW50Ci0rICAgIGZpCi0rICAgICMgMTAqKDJeMTApIGNoYXJz IGFzIGlucHV0IHNlZW1zIG1vcmUgdGhhbiBlbm91Z2gKLSsgICAgdGVzdCAkYWNfY291bnQgLWd0 IDEwICYmIGJyZWFrCi0rICBkb25lCi0rICBybSAtZiBjb25mdGVzdC5pbiBjb25mdGVzdC50bXAg Y29uZnRlc3QubmwgY29uZnRlc3Qub3V0OzsKLStlc2FjCi0rCi0rICAgICAgJGFjX3BhdGhfRUdS RVBfZm91bmQgJiYgYnJlYWsgMwotKyAgICBkb25lCi0rICBkb25lCi0rICBkb25lCi0rSUZTPSRh c19zYXZlX0lGUwotKyAgaWYgdGVzdCAteiAiJGFjX2N2X3BhdGhfRUdSRVAiOyB0aGVuCi0rICAg IGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIGVncmVwIGNvdWxkIGJlIGZvdW5kIGluICRQ QVRIJFBBVEhfU0VQQVJBVE9SL3Vzci94cGc0L2JpbiIgIiRMSU5FTk8iIDUKLSsgIGZpCi0rZWxz ZQotKyAgYWNfY3ZfcGF0aF9FR1JFUD0kRUdSRVAKLStmaQotKwotKyAgIGZpCi0rZmkKLSt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X3BhdGhf RUdSRVAiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfcGF0aF9FR1JFUCIgPiY2OyB9Ci0rIEVHUkVQ PSIkYWNfY3ZfcGF0aF9FR1JFUCIKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGZvciBmZ3JlcCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yIGZncmVwLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wYXRoX0ZHUkVQKzp9IGZhbHNl OyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgZWNo byAnYWIqYycgfCAkR1JFUCAtRiAnYWIqYycgPi9kZXYvbnVsbCAyPiYxCi0rICAgdGhlbiBhY19j dl9wYXRoX0ZHUkVQPSIkR1JFUCAtRiIKLSsgICBlbHNlCi0rICAgICBpZiB0ZXN0IC16ICIkRkdS RVAiOyB0aGVuCi0rICBhY19wYXRoX0ZHUkVQX2ZvdW5kPWZhbHNlCi0rICAjIExvb3AgdGhyb3Vn aCB0aGUgdXNlcidzIHBhdGggYW5kIHRlc3QgZm9yIGVhY2ggb2YgUFJPR05BTUUtTElTVAotKyAg YXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBB VEgkUEFUSF9TRVBBUkFUT1IvdXNyL3hwZzQvYmluCi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMK LSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19wcm9nIGluIGZn cmVwOyBkbwotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5z aW9uczsgZG8KLSsgICAgICBhY19wYXRoX0ZHUkVQPSIkYXNfZGlyLyRhY19wcm9nJGFjX2V4ZWNf ZXh0IgotKyAgICAgIHsgdGVzdCAtZiAiJGFjX3BhdGhfRkdSRVAiICYmICRhc190ZXN0X3ggIiRh Y19wYXRoX0ZHUkVQIjsgfSB8fCBjb250aW51ZQotKyMgQ2hlY2sgZm9yIEdOVSBhY19wYXRoX0ZH UkVQIGFuZCBzZWxlY3QgaXQgaWYgaXQgaXMgZm91bmQuCi0rICAjIENoZWNrIGZvciBHTlUgJGFj X3BhdGhfRkdSRVAKLStjYXNlIGAiJGFjX3BhdGhfRkdSRVAiIC0tdmVyc2lvbiAyPiYxYCBpbgot KypHTlUqKQotKyAgYWNfY3ZfcGF0aF9GR1JFUD0iJGFjX3BhdGhfRkdSRVAiIGFjX3BhdGhfRkdS RVBfZm91bmQ9Ojs7Ci0rKikKLSsgIGFjX2NvdW50PTAKLSsgICRhc19lY2hvX24gMDEyMzQ1Njc4 OSA+ImNvbmZ0ZXN0LmluIgotKyAgd2hpbGUgOgotKyAgZG8KLSsgICAgY2F0ICJjb25mdGVzdC5p biIgImNvbmZ0ZXN0LmluIiA+ImNvbmZ0ZXN0LnRtcCIKLSsgICAgbXYgImNvbmZ0ZXN0LnRtcCIg ImNvbmZ0ZXN0LmluIgotKyAgICBjcCAiY29uZnRlc3QuaW4iICJjb25mdGVzdC5ubCIKLSsgICAg JGFzX2VjaG8gJ0ZHUkVQJyA+PiAiY29uZnRlc3QubmwiCi0rICAgICIkYWNfcGF0aF9GR1JFUCIg RkdSRVAgPCAiY29uZnRlc3QubmwiID4iY29uZnRlc3Qub3V0IiAyPi9kZXYvbnVsbCB8fCBicmVh awotKyAgICBkaWZmICJjb25mdGVzdC5vdXQiICJjb25mdGVzdC5ubCIgPi9kZXYvbnVsbCAyPiYx IHx8IGJyZWFrCi0rICAgIGFzX2ZuX2FyaXRoICRhY19jb3VudCArIDEgJiYgYWNfY291bnQ9JGFz X3ZhbAotKyAgICBpZiB0ZXN0ICRhY19jb3VudCAtZ3QgJHthY19wYXRoX0ZHUkVQX21heC0wfTsg dGhlbgotKyAgICAgICMgQmVzdCBvbmUgc28gZmFyLCBzYXZlIGl0IGJ1dCBrZWVwIGxvb2tpbmcg Zm9yIGEgYmV0dGVyIG9uZQotKyAgICAgIGFjX2N2X3BhdGhfRkdSRVA9IiRhY19wYXRoX0ZHUkVQ IgotKyAgICAgIGFjX3BhdGhfRkdSRVBfbWF4PSRhY19jb3VudAotKyAgICBmaQotKyAgICAjIDEw KigyXjEwKSBjaGFycyBhcyBpbnB1dCBzZWVtcyBtb3JlIHRoYW4gZW5vdWdoCi0rICAgIHRlc3Qg JGFjX2NvdW50IC1ndCAxMCAmJiBicmVhawotKyAgZG9uZQotKyAgcm0gLWYgY29uZnRlc3QuaW4g Y29uZnRlc3QudG1wIGNvbmZ0ZXN0Lm5sIGNvbmZ0ZXN0Lm91dDs7Ci0rZXNhYwotKwotKyAgICAg ICRhY19wYXRoX0ZHUkVQX2ZvdW5kICYmIGJyZWFrIDMKLSsgICAgZG9uZQotKyAgZG9uZQotKyAg ZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsgIGlmIHRlc3QgLXogIiRhY19jdl9wYXRoX0ZHUkVQ IjsgdGhlbgotKyAgICBhc19mbl9lcnJvciAkPyAibm8gYWNjZXB0YWJsZSBmZ3JlcCBjb3VsZCBi ZSBmb3VuZCBpbiAkUEFUSCRQQVRIX1NFUEFSQVRPUi91c3IveHBnNC9iaW4iICIkTElORU5PIiA1 Ci0rICBmaQotK2Vsc2UKLSsgIGFjX2N2X3BhdGhfRkdSRVA9JEZHUkVQCi0rZmkKLSsKLSsgICBm aQotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRhY19jdl9wYXRoX0ZHUkVQIiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X3BhdGhfRkdSRVAiID4m NjsgfQotKyBGR1JFUD0iJGFjX2N2X3BhdGhfRkdSRVAiCi0rCi0rCi0rdGVzdCAteiAiJEdSRVAi ICYmIEdSRVA9Z3JlcAotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZ251LWxkIHdhcyBnaXZlbi4K LStpZiB0ZXN0ICIke3dpdGhfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9 JHdpdGhfZ251X2xkOyB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXMKLStl bHNlCi0rICB3aXRoX2dudV9sZD1ubwotK2ZpCi0rCi0rYWNfcHJvZz1sZAotK2lmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCi0rICAjIENoZWNrIGlmIGdjYyAtcHJpbnQtcHJvZy1uYW1lPWxkIGdp dmVzIGEgcGF0aC4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBm b3IgbGQgdXNlZCBieSAkQ0MuLi4gIiA+JjY7IH0KLSsgIGNhc2UgJGhvc3QgaW4KLSsgICotKi1t aW5ndyopCi0rICAgICMgZ2NjIGxlYXZlcyBhIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiB3aGlj aCB1cHNldHMgbWluZ3cKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAy PiY1IHwgdHIgLWQgJ1wwMTUnYCA7OwotKyAgKikKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQt cHJvZy1uYW1lPWxkKSAyPiY1YCA7OwotKyAgZXNhYwotKyAgY2FzZSAkYWNfcHJvZyBpbgotKyAg ICAjIEFjY2VwdCBhYnNvbHV0ZSBwYXRocy4KLSsgICAgW1xcL10qIHwgPzpbXFwvXSopCi0rICAg ICAgcmVfZGlyZWx0PScvW14vXVteL10qL1wuXC4vJwotKyAgICAgICMgQ2Fub25pY2FsaXplIHRo ZSBwYXRobmFtZSBvZiBsZAotKyAgICAgIGFjX3Byb2c9YCRFQ0hPICIkYWNfcHJvZyJ8ICRTRUQg J3MlXFxcXCUvJWcnYAotKyAgICAgIHdoaWxlICRFQ0hPICIkYWNfcHJvZyIgfCAkR1JFUCAiJHJl X2RpcmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KLSsJYWNfcHJvZz1gJEVDSE8gJGFjX3Byb2d8 ICRTRUQgInMlJHJlX2RpcmVsdCUvJSJgCi0rICAgICAgZG9uZQotKyAgICAgIHRlc3QgLXogIiRM RCIgJiYgTEQ9IiRhY19wcm9nIgotKyAgICAgIDs7Ci0rICAiIikKLSsgICAgIyBJZiBpdCBmYWls cywgdGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCi0rICAgIGFjX3Byb2c9bGQKLSsg ICAgOzsKLSsgICopCi0rICAgICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0 aGUgZmlyc3QgbGQgaW4gUEFUSC4KLSsgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgotKyAgICA7Owot KyAgZXNhYwotK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgR05VIGxkIiA+ JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05VIGxkLi4uICIgPiY2OyB9Ci0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Ig bm9uLUdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQuLi4g IiA+JjY7IH0KLStmaQotK2lmICR7bHRfY3ZfcGF0aF9MRCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLXogIiRMRCI7IHRo ZW4KLSsgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgZm9yIGFj X2RpciBpbiAkUEFUSDsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3QgLXog IiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ci IHx8IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhlbgotKyAgICAgIGx0 X2N2X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCi0rICAgICAgIyBDaGVjayB0byBzZWUgaWYg dGhlIHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uLAotKyAgICAg ICMgYnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25seSBhY2NlcHQgLXYu Ci0rICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1HTlUgbGQgdGhhdCB3 ZSBwcmVmZXIuCi0rICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAyPiYxIDwvZGV2L251 bGxgIGluCi0rICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rCXRlc3QgIiR3aXRoX2dudV9s ZCIgIT0gbm8gJiYgYnJlYWsKLSsJOzsKLSsgICAgICAqKQotKwl0ZXN0ICIkd2l0aF9nbnVfbGQi ICE9IHllcyAmJiBicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgIGRvbmUKLSsg IElGUz0iJGx0X3NhdmVfaWZzIgotK2Vsc2UKLSsgIGx0X2N2X3BhdGhfTEQ9IiRMRCIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rZmkKLStmaQotKwotK0xE PSIkbHRfY3ZfcGF0aF9MRCIKLStpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJExEIiA+JjUKLSskYXNfZWNo byAiJExEIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSt0 ZXN0IC16ICIkTEQiICYmIGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGlu IFwkUEFUSCIgIiRMSU5FTk8iIDUKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZC4uLiAiID4mNjsg fQotK2lmICR7bHRfY3ZfcHJvZ19nbnVfbGQrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBo ZXJlLCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCi0rY2FzZSBg JExEIC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsqR05VKiB8ICond2l0aCBCRkQnKikKLSsgIGx0 X2N2X3Byb2dfZ251X2xkPXllcwotKyAgOzsKLSsqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8K LSsgIDs7Ci0rZXNhYwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2dudV9sZCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9w cm9nX2dudV9sZCIgPiY2OyB9Ci0rd2l0aF9nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyIChu bSkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBCU0QtIG9yIE1TLWNvbXBhdGlibGUg bmFtZSBsaXN0ZXIgKG5tKS4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfcGF0aF9OTSs6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRl c3QgLW4gIiROTSI7IHRoZW4KLSsgICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0Lgot KyAgbHRfY3ZfcGF0aF9OTT0iJE5NIgotK2Vsc2UKLSsgIGx0X25tX3RvX2NoZWNrPSIke2FjX3Rv b2xfcHJlZml4fW5tIgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IiAmJiB0ZXN0ICIk YnVpbGQiID0gIiRob3N0IjsgdGhlbgotKyAgICBsdF9ubV90b19jaGVjaz0iJGx0X25tX3RvX2No ZWNrIG5tIgotKyAgZmkKLSsgIGZvciBsdF90bXBfbm0gaW4gJGx0X25tX3RvX2NoZWNrOyBkbwot KyAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0kUEFUSF9TRVBBUkFUT1IKLSsgICAgZm9yIGFj X2RpciBpbiAkUEFUSCAvdXNyL2Njcy9iaW4vZWxmIC91c3IvY2NzL2JpbiAvdXNyL3VjYiAvYmlu OyBkbwotKyAgICAgIElGUz0iJGx0X3NhdmVfaWZzIgotKyAgICAgIHRlc3QgLXogIiRhY19kaXIi ICYmIGFjX2Rpcj0uCi0rICAgICAgdG1wX25tPSIkYWNfZGlyLyRsdF90bXBfbm0iCi0rICAgICAg aWYgdGVzdCAtZiAiJHRtcF9ubSIgfHwgdGVzdCAtZiAiJHRtcF9ubSRhY19leGVleHQiIDsgdGhl bgotKwkjIENoZWNrIHRvIHNlZSBpZiB0aGUgbm0gYWNjZXB0cyBhIEJTRC1jb21wYXQgZmxhZy4K LSsJIyBBZGRpbmcgdGhlIGBzZWQgMXEnIHByZXZlbnRzIGZhbHNlIHBvc2l0aXZlcyBvbiBIUC1V WCwgd2hpY2ggc2F5czoKLSsJIyAgIG5tOiB1bmtub3duIG9wdGlvbiAiQiIgaWdub3JlZAotKwkj IFRydTY0J3Mgbm0gY29tcGxhaW5zIHRoYXQgL2Rldi9udWxsIGlzIGFuIGludmFsaWQgb2JqZWN0 IGZpbGUKLSsJY2FzZSBgIiR0bXBfbm0iIC1CIC9kZXYvbnVsbCAyPiYxIHwgc2VkICcxcSdgIGlu Ci0rCSovZGV2L251bGwqIHwgKidJbnZhbGlkIGZpbGUgb3Igb2JqZWN0IHR5cGUnKikKLSsJICBs dF9jdl9wYXRoX05NPSIkdG1wX25tIC1CIgotKwkgIGJyZWFrCi0rCSAgOzsKLSsJKikKLSsJICBj YXNlIGAiJHRtcF9ubSIgLXAgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFxJ2AgaW4KLSsJICAqL2Rl di9udWxsKikKLSsJICAgIGx0X2N2X3BhdGhfTk09IiR0bXBfbm0gLXAiCi0rCSAgICBicmVhawot KwkgICAgOzsKLSsJICAqKQotKwkgICAgbHRfY3ZfcGF0aF9OTT0ke2x0X2N2X3BhdGhfTk09IiR0 bXBfbm0ifSAjIGtlZXAgdGhlIGZpcnN0IG1hdGNoLCBidXQKLSsJICAgIGNvbnRpbnVlICMgc28g dGhhdCB3ZSBjYW4gdHJ5IHRvIGZpbmQgb25lIHRoYXQgc3VwcG9ydHMgQlNEIGZsYWdzCi0rCSAg ICA7OwotKwkgIGVzYWMKLSsJICA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgZG9uZQotKyAg ICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgIGRvbmUKLSsgIDogJHtsdF9jdl9wYXRoX05NPW5vfQot K2ZpCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJGx0X2N2X3BhdGhfTk0iID4mNQotKyRhc19lY2hvICIkbHRfY3ZfcGF0aF9OTSIgPiY2OyB9 Ci0raWYgdGVzdCAiJGx0X2N2X3BhdGhfTk0iICE9ICJubyI7IHRoZW4KLSsgIE5NPSIkbHRfY3Zf cGF0aF9OTSIKLStlbHNlCi0rICAjIERpZG4ndCBmaW5kIGFueSBCU0QgY29tcGF0aWJsZSBuYW1l IGxpc3RlciwgbG9vayBmb3IgZHVtcGJpbi4KLSsgIGlmIHRlc3QgLW4gIiREVU1QQklOIjsgdGhl biA6Ci0rICAgICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotKyAgZWxzZQotKyAg ICBpZiB0ZXN0IC1uICIkYWNfdG9vbF9wcmVmaXgiOyB0aGVuCi0rICBmb3IgYWNfcHJvZyBpbiBk dW1wYmluICJsaW5rIC1kdW1wIgotKyAgZG8KLSsgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICIkYWNfdG9vbF9wcmVmaXgkYWNfcHJvZyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFt ZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY190b29sX3ByZWZpeCRhY19wcm9nOyBhY193b3Jk PSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAi ID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19EVU1QQklOKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRh c19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJERVTVBCSU4i OyB0aGVuCi0rICBhY19jdl9wcm9nX0RVTVBCSU49IiREVU1QQklOIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwot KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfRFVNUEJJTj0iJGFjX3Rvb2xf cHJlZml4JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAy Ci0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQot K0RVTVBCSU49JGFjX2N2X3Byb2dfRFVNUEJJTgotK2lmIHRlc3QgLW4gIiREVU1QQklOIjsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRE VU1QQklOIiA+JjUKLSskYXNfZWNobyAiJERVTVBCSU4iID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFz X2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgICB0ZXN0IC1uICIkRFVNUEJJTiIgJiYg YnJlYWsKLSsgIGRvbmUKLStmaQotK2lmIHRlc3QgLXogIiREVU1QQklOIjsgdGhlbgotKyAgYWNf Y3RfRFVNUEJJTj0kRFVNUEJJTgotKyAgZm9yIGFjX3Byb2cgaW4gZHVtcGJpbiAibGluayAtZHVt cCIKLStkbwotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0 IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY19wcm9nOyBh Y193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9EVU1QQklOKzp9IGZhbHNlOyB0 aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAt biAiJGFjX2N0X0RVTVBCSU4iOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X0RVTVBCSU49IiRh Y19jdF9EVU1QQklOIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0r YXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBB VEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNf ZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYm ICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAg IGFjX2N2X3Byb2dfYWNfY3RfRFVNUEJJTj0iJGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3Nh dmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X0RVTVBCSU49JGFjX2N2X3Byb2dfYWNfY3RfRFVN UEJJTgotK2lmIHRlc3QgLW4gIiRhY19jdF9EVU1QQklOIjsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9EVU1QQklOIiA+JjUK LSskYXNfZWNobyAiJGFjX2N0X0RVTVBCSU4iID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8g Im5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgdGVzdCAtbiAiJGFjX2N0X0RVTVBCSU4iICYmIGJy ZWFrCi0rZG9uZQotKwotKyAgaWYgdGVzdCAieCRhY19jdF9EVU1QQklOIiA9IHg7IHRoZW4KLSsg ICAgRFVNUEJJTj0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190 b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0 IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRv b2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5l ZD15ZXMgOzsKLStlc2FjCi0rICAgIERVTVBCSU49JGFjX2N0X0RVTVBCSU4KLSsgIGZpCi0rZmkK LSsKLSsgICAgY2FzZSBgJERVTVBCSU4gLXN5bWJvbHMgL2Rldi9udWxsIDI+JjEgfCBzZWQgJzFx J2AgaW4KLSsgICAgKkNPRkYqKQotKyAgICAgIERVTVBCSU49IiREVU1QQklOIC1zeW1ib2xzIgot KyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgRFVNUEJJTj06Ci0rICAgICAgOzsKLSsgICAgZXNh YwotKyAgZmkKLSsKLSsgIGlmIHRlc3QgIiREVU1QQklOIiAhPSAiOiI7IHRoZW4KLSsgICAgTk09 IiREVU1QQklOIgotKyAgZmkKLStmaQotK3Rlc3QgLXogIiROTSIgJiYgTk09bm0KLSsKLSsKLSsK LSsKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIHRoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2UiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIHRoZSBuYW1lIGxpc3RlciAoJE5NKSBpbnRlcmZhY2UuLi4gIiA+JjY7IH0KLStpZiAk e2x0X2N2X25tX2ludGVyZmFjZSs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X25tX2ludGVyZmFjZT0iQlNEIG5tIgotKyAgZWNo byAiaW50IHNvbWVfdmFyaWFibGUgPSAwOyIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAoZXZhbCBl Y2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGFjX2NvbXBpbGVcIiIgPiY1KQotKyAgKGV2YWwgIiRh Y19jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAo ZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJE5NIFxcXCJjb25mdGVzdC4kYWNfb2JqZXh0 XFxcIlwiIiA+JjUpCi0rICAoZXZhbCAiJE5NIFwiY29uZnRlc3QuJGFjX29iamV4dFwiIiAyPmNv bmZ0ZXN0LmVyciA+IGNvbmZ0ZXN0Lm91dCkKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAo ZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogb3V0cHV0XCIiID4mNSkKLSsgIGNhdCBjb25m dGVzdC5vdXQgPiY1Ci0rICBpZiAkR1JFUCAnRXh0ZXJuYWwuKnNvbWVfdmFyaWFibGUnIGNvbmZ0 ZXN0Lm91dCA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICBsdF9jdl9ubV9pbnRlcmZhY2U9Ik1TIGR1 bXBiaW4iCi0rICBmaQotKyAgcm0gLWYgY29uZnRlc3QqCi0rZmkKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X25tX2ludGVyZmFjZSIgPiY1 Ci0rJGFzX2VjaG8gIiRsdF9jdl9ubV9pbnRlcmZhY2UiID4mNjsgfQotKwotK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3Jr cyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciBsbiAtcyB3b3Jrcy4uLiAiID4m NjsgfQotK0xOX1M9JGFzX2xuX3MKLStpZiB0ZXN0ICIkTE5fUyIgPSAibG4gLXMiOyB0aGVuCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+ JjUKLSskYXNfZWNobyAieWVzIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8sIHVzaW5nICRMTl9TIiA+JjUKLSskYXNf ZWNobyAibm8sIHVzaW5nICRMTl9TIiA+JjY7IH0KLStmaQotKwotKyMgZmluZCB0aGUgbWF4aW11 bSBsZW5ndGggb2YgY29tbWFuZCBsaW5lIGFyZ3VtZW50cwotK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgdGhlIG1heGltdW0gbGVuZ3RoIG9mIGNvbW1h bmQgbGluZSBhcmd1bWVudHMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHRoZSBtYXhpbXVt IGxlbmd0aCBvZiBjb21tYW5kIGxpbmUgYXJndW1lbnRzLi4uICIgPiY2OyB9Ci0raWYgJHtsdF9j dl9zeXNfbWF4X2NtZF9sZW4rOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICAgIGk9MAotKyAgdGVzdHN0cmluZz0iQUJDRCIKLSsKLSsgIGNh c2UgJGJ1aWxkX29zIGluCi0rICBtc2Rvc2RqZ3BwKikKLSsgICAgIyBPbiBESkdQUCwgdGhpcyB0 ZXN0IGNhbiBibG93IHVwIHByZXR0eSBiYWRseSBkdWUgdG8gcHJvYmxlbXMgaW4gbGliYwotKyAg ICAjIChhbnkgc2luZ2xlIGFyZ3VtZW50IGV4Y2VlZGluZyAyMDAwIGJ5dGVzIGNhdXNlcyBhIGJ1 ZmZlciBvdmVycnVuCi0rICAgICMgZHVyaW5nIGdsb2IgZXhwYW5zaW9uKS4gIEV2ZW4gaWYgaXQg d2VyZSBmaXhlZCwgdGhlIHJlc3VsdCBvZiB0aGlzCi0rICAgICMgY2hlY2sgd291bGQgYmUgbGFy Z2VyIHRoYW4gaXQgc2hvdWxkIGJlLgotKyAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49MTIyODg7 ICAgICMgMTJLIGlzIGFib3V0IHJpZ2h0Ci0rICAgIDs7Ci0rCi0rICBnbnUqKQotKyAgICAjIFVu ZGVyIEdOVSBIdXJkLCB0aGlzIHRlc3QgaXMgbm90IHJlcXVpcmVkIGJlY2F1c2UgdGhlcmUgaXMK LSsgICAgIyBubyBsaW1pdCB0byB0aGUgbGVuZ3RoIG9mIGNvbW1hbmQgbGluZSBhcmd1bWVudHMu Ci0rICAgICMgTGlidG9vbCB3aWxsIGludGVycHJldCAtMSBhcyBubyBsaW1pdCB3aGF0c29ldmVy Ci0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0tMTsKLSsgICAgOzsKLSsKLSsgIGN5Z3dpbiog fCBtaW5ndyogfCBjZWdjYyopCi0rICAgICMgT24gV2luOXgvTUUsIHRoaXMgdGVzdCBibG93cyB1 cCAtLSBpdCBzdWNjZWVkcywgYnV0IHRha2VzCi0rICAgICMgYWJvdXQgNSBtaW51dGVzIGFzIHRo ZSB0ZXN0c3RyaW5nIGdyb3dzIGV4cG9uZW50aWFsbHkuCi0rICAgICMgV29yc2UsIHNpbmNlIDl4 L01FIGFyZSBub3QgcHJlLWVtcHRpdmVseSBtdWx0aXRhc2tpbmcsCi0rICAgICMgeW91IGVuZCB1 cCB3aXRoIGEgImZyb3plbiIgY29tcHV0ZXIsIGV2ZW4gdGhvdWdoIHdpdGggcGF0aWVuY2UKLSsg ICAgIyB0aGUgdGVzdCBldmVudHVhbGx5IHN1Y2NlZWRzICh3aXRoIGEgbWF4IGxpbmUgbGVuZ3Ro IG9mIDI1NmspLgotKyAgICAjIEluc3RlYWQsIGxldCdzIGp1c3QgcHVudDogdXNlIHRoZSBtaW5p bXVtIGxpbmVsZW5ndGggcmVwb3J0ZWQgYnkKLSsgICAgIyBhbGwgb2YgdGhlIHN1cHBvcnRlZCBw bGF0Zm9ybXM6IDgxOTIgKG9uIE5ULzJLL1hQKS4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVu PTgxOTI7Ci0rICAgIDs7Ci0rCi0rICBtaW50KikKLSsgICAgIyBPbiBNaU5UIHRoaXMgY2FuIHRh a2UgYSBsb25nIHRpbWUgYW5kIHJ1biBvdXQgb2YgbWVtb3J5LgotKyAgICBsdF9jdl9zeXNfbWF4 X2NtZF9sZW49ODE5MjsKLSsgICAgOzsKLSsKLSsgIGFtaWdhb3MqKQotKyAgICAjIE9uIEFtaWdh T1Mgd2l0aCBwZGtzaCwgdGhpcyB0ZXN0IHRha2VzIGhvdXJzLCBsaXRlcmFsbHkuCi0rICAgICMg U28gd2UganVzdCBwdW50IGFuZCB1c2UgYSBtaW5pbXVtIGxpbmUgbGVuZ3RoIG9mIDgxOTIuCi0r ICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj04MTkyOwotKyAgICA7OwotKwotKyAgbmV0YnNkKiB8 IGZyZWVic2QqIHwgb3BlbmJzZCogfCBkYXJ3aW4qIHwgZHJhZ29uZmx5KikKLSsgICAgIyBUaGlz IGhhcyBiZWVuIGFyb3VuZCBzaW5jZSAzODZCU0QsIGF0IGxlYXN0LiAgTGlrZWx5IGZ1cnRoZXIu Ci0rICAgIGlmIHRlc3QgLXggL3NiaW4vc3lzY3RsOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21h eF9jbWRfbGVuPWAvc2Jpbi9zeXNjdGwgLW4ga2Vybi5hcmdtYXhgCi0rICAgIGVsaWYgdGVzdCAt eCAvdXNyL3NiaW4vc3lzY3RsOyB0aGVuCi0rICAgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPWAv dXNyL3NiaW4vc3lzY3RsIC1uIGtlcm4uYXJnbWF4YAotKyAgICBlbHNlCi0rICAgICAgbHRfY3Zf c3lzX21heF9jbWRfbGVuPTY1NTM2CSMgdXNhYmxlIGRlZmF1bHQgZm9yIGFsbCBCU0RzCi0rICAg IGZpCi0rICAgICMgQW5kIGFkZCBhIHNhZmV0eSB6b25lCi0rICAgIGx0X2N2X3N5c19tYXhfY21k X2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwvIDRgCi0rICAgIGx0X2N2X3N5c19t YXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIFwqIDNgCi0rICAgIDs7Ci0r Ci0rICBpbnRlcml4KikKLSsgICAgIyBXZSBrbm93IHRoZSB2YWx1ZSAyNjIxNDQgYW5kIGhhcmRj b2RlIGl0IHdpdGggYSBzYWZldHkgem9uZSAobGlrZSBCU0QpCi0rICAgIGx0X2N2X3N5c19tYXhf Y21kX2xlbj0xOTY2MDgKLSsgICAgOzsKLSsKLSsgIG9zZiopCi0rICAgICMgRHIuIEhhbnMgRWtr ZWhhcmQgUGxlc3NlciByZXBvcnRzIHNlZWluZyBhIGtlcm5lbCBwYW5pYyBydW5uaW5nIGNvbmZp Z3VyZQotKyAgICAjIGR1ZSB0byB0aGlzIHRlc3Qgd2hlbiBleGVjX2Rpc2FibGVfYXJnX2xpbWl0 IGlzIDEgb24gVHJ1NjQuIEl0IGlzIG5vdAotKyAgICAjIG5pY2UgdG8gY2F1c2Uga2VybmVsIHBh bmljcyBzbyBsZXRzIGF2b2lkIHRoZSBsb29wIGJlbG93LgotKyAgICAjIEZpcnN0IHNldCBhIHJl YXNvbmFibGUgZGVmYXVsdC4KLSsgICAgbHRfY3Zfc3lzX21heF9jbWRfbGVuPTE2Mzg0Ci0rICAg ICMKLSsgICAgaWYgdGVzdCAteCAvc2Jpbi9zeXNjb25maWc7IHRoZW4KLSsgICAgICBjYXNlIGAv c2Jpbi9zeXNjb25maWcgLXEgcHJvYyBleGVjX2Rpc2FibGVfYXJnX2xpbWl0YCBpbgotKyAgICAg ICAgKjEqKSBsdF9jdl9zeXNfbWF4X2NtZF9sZW49LTEgOzsKLSsgICAgICBlc2FjCi0rICAgIGZp Ci0rICAgIDs7Ci0rICBzY28zLjJ2NSopCi0rICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj0xMDI0 MDAKLSsgICAgOzsKLSsgIHN5c3Y1KiB8IHNjbzV2NiogfCBzeXN2NC4ydXcyKikKLSsgICAga2Fy Z21heD1gZ3JlcCBBUkdfTUFYIC9ldGMvY29uZi9jZi5kL3N0dW5lIDI+L2Rldi9udWxsYAotKyAg ICBpZiB0ZXN0IC1uICIka2FyZ21heCI7IHRoZW4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9s ZW49YGVjaG8gJGthcmdtYXggfCBzZWQgJ3MvLipbCSBdLy8nYAotKyAgICBlbHNlCi0rICAgICAg bHRfY3Zfc3lzX21heF9jbWRfbGVuPTMyNzY4Ci0rICAgIGZpCi0rICAgIDs7Ci0rICAqKQotKyAg ICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YChnZXRjb25mIEFSR19NQVgpIDI+IC9kZXYvbnVsbGAK LSsgICAgaWYgdGVzdCAtbiAiJGx0X2N2X3N5c19tYXhfY21kX2xlbiI7IHRoZW4KLSsgICAgICBs dF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyA0YAot KyAgICAgIGx0X2N2X3N5c19tYXhfY21kX2xlbj1gZXhwciAkbHRfY3Zfc3lzX21heF9jbWRfbGVu IFwqIDNgCi0rICAgIGVsc2UKLSsgICAgICAjIE1ha2UgdGVzdHN0cmluZyBhIGxpdHRsZSBiaWdn ZXIgYmVmb3JlIHdlIGRvIGFueXRoaW5nIHdpdGggaXQuCi0rICAgICAgIyBhIDFLIHN0cmluZyBz aG91bGQgYmUgYSByZWFzb25hYmxlIHN0YXJ0LgotKyAgICAgIGZvciBpIGluIDEgMiAzIDQgNSA2 IDcgOCA7IGRvCi0rICAgICAgICB0ZXN0c3RyaW5nPSR0ZXN0c3RyaW5nJHRlc3RzdHJpbmcKLSsg ICAgICBkb25lCi0rICAgICAgU0hFTEw9JHtTSEVMTC0ke0NPTkZJR19TSEVMTC0vYmluL3NofX0K LSsgICAgICAjIElmIHRlc3QgaXMgbm90IGEgc2hlbGwgYnVpbHQtaW4sIHdlJ2xsIHByb2JhYmx5 IGVuZCB1cCBjb21wdXRpbmcgYQotKyAgICAgICMgbWF4aW11bSBsZW5ndGggdGhhdCBpcyBvbmx5 IGhhbGYgb2YgdGhlIGFjdHVhbCBtYXhpbXVtIGxlbmd0aCwgYnV0Ci0rICAgICAgIyB3ZSBjYW4n dCB0ZWxsLgotKyAgICAgIHdoaWxlIHsgdGVzdCAiWCJgZnVuY19mYWxsYmFja19lY2hvICIkdGVz dHN0cmluZyR0ZXN0c3RyaW5nIiAyPi9kZXYvbnVsbGAgXAotKwkgICAgICAgICA9ICJYJHRlc3Rz dHJpbmckdGVzdHN0cmluZyI7IH0gPi9kZXYvbnVsbCAyPiYxICYmCi0rCSAgICAgIHRlc3QgJGkg IT0gMTcgIyAxLzIgTUIgc2hvdWxkIGJlIGVub3VnaAotKyAgICAgIGRvCi0rICAgICAgICBpPWBl eHByICRpICsgMWAKLSsgICAgICAgIHRlc3RzdHJpbmc9JHRlc3RzdHJpbmckdGVzdHN0cmluZwot KyAgICAgIGRvbmUKLSsgICAgICAjIE9ubHkgY2hlY2sgdGhlIHN0cmluZyBsZW5ndGggb3V0c2lk ZSB0aGUgbG9vcC4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49YGV4cHIgIlgkdGVzdHN0 cmluZyIgOiAiLioiIDI+JjFgCi0rICAgICAgdGVzdHN0cmluZz0KLSsgICAgICAjIEFkZCBhIHNp Z25pZmljYW50IHNhZmV0eSBmYWN0b3IgYmVjYXVzZSBDKysgY29tcGlsZXJzIGNhbiB0YWNrIG9u Ci0rICAgICAgIyBtYXNzaXZlIGFtb3VudHMgb2YgYWRkaXRpb25hbCBhcmd1bWVudHMgYmVmb3Jl IHBhc3NpbmcgdGhlbSB0byB0aGUKLSsgICAgICAjIGxpbmtlci4gIEl0IGFwcGVhcnMgYXMgdGhv dWdoIDEvMiBpcyBhIHVzYWJsZSB2YWx1ZS4KLSsgICAgICBsdF9jdl9zeXNfbWF4X2NtZF9sZW49 YGV4cHIgJGx0X2N2X3N5c19tYXhfY21kX2xlbiBcLyAyYAotKyAgICBmaQotKyAgICA7OwotKyAg ZXNhYwotKwotK2ZpCi0rCi0raWYgdGVzdCAtbiAkbHRfY3Zfc3lzX21heF9jbWRfbGVuIDsgdGhl bgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRs dF9jdl9zeXNfbWF4X2NtZF9sZW4iID4mNQotKyRhc19lY2hvICIkbHRfY3Zfc3lzX21heF9jbWRf bGVuIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogbm9uZSIgPiY1Ci0rJGFzX2VjaG8gIm5vbmUiID4mNjsgfQotK2ZpCi0r bWF4X2NtZF9sZW49JGx0X2N2X3N5c19tYXhfY21kX2xlbgotKwotKwotKwotKwotKwotKwotKzog JHtDUD0iY3AgLWYifQotKzogJHtNVj0ibXYgLWYifQotKzogJHtSTT0icm0gLWYifQotKwotK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0 aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3RydWN0cyIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgc29tZSBYU0kgY29uc3Ry dWN0cy4uLiAiID4mNjsgfQotKyMgVHJ5IHNvbWUgWFNJIGZlYXR1cmVzCi0reHNpX3NoZWxsPW5v Ci0rKCBfbHRfZHVtbXk9ImEvYi9jIgotKyAgdGVzdCAiJHtfbHRfZHVtbXkjIyovfSwke19sdF9k dW1teSUvKn0sJHtfbHRfZHVtbXkjPz99IiR7X2x0X2R1bW15JSIkX2x0X2R1bW15In0sIFwKLSsg ICAgICA9IGMsYS9iLGIvYywgXAotKyAgICAmJiBldmFsICd0ZXN0ICQoKCAxICsgMSApKSAtZXEg MiBcCi0rICAgICYmIHRlc3QgIiR7I19sdF9kdW1teX0iIC1lcSA1JyApID4vZGV2L251bGwgMj4m MSBcCi0rICAmJiB4c2lfc2hlbGw9eWVzCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICR4c2lfc2hlbGwiID4mNQotKyRhc19lY2hvICIkeHNpX3NoZWxs IiA+JjY7IH0KLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIHdoZXRoZXIgdGhlIHNoZWxsIHVuZGVyc3RhbmRzIFwiKz1cIiIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgc2hlbGwgdW5kZXJzdGFuZHMgXCIrPVwiLi4u ICIgPiY2OyB9Ci0rbHRfc2hlbGxfYXBwZW5kPW5vCi0rKCBmb289YmFyOyBzZXQgZm9vIGJhejsg ZXZhbCAiJDErPVwkMiIgJiYgdGVzdCAiJGZvbyIgPSBiYXJiYXogKSBcCi0rICAgID4vZGV2L251 bGwgMj4mMSBcCi0rICAmJiBsdF9zaGVsbF9hcHBlbmQ9eWVzCi0reyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9zaGVsbF9hcHBlbmQiID4mNQotKyRh c19lY2hvICIkbHRfc2hlbGxfYXBwZW5kIiA+JjY7IH0KLSsKLSsKLStpZiAoIChNQUlMPTYwOyB1 bnNldCBNQUlMKSB8fCBleGl0KSA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGx0X3Vuc2V0PXVu c2V0Ci0rZWxzZQotKyAgbHRfdW5zZXQ9ZmFsc2UKLStmaQotKwotKwotKwotKwotKwotKyMgdGVz dCBFQkNESUMgb3IgQVNDSUkKLStjYXNlIGBlY2hvIFh8dHIgWCAnXDEwMSdgIGluCi0rIEEpICMg QVNDSUkgYmFzZWQgc3lzdGVtCi0rICAgICMgXG4gaXMgbm90IGludGVycHJldGVkIGNvcnJlY3Rs eSBieSBTb2xhcmlzIDggL3Vzci91Y2IvdHIKLSsgIGx0X1NQMk5MPSd0ciBcMDQwIFwwMTInCi0r ICBsdF9OTDJTUD0ndHIgXDAxNVwwMTIgXDA0MFwwNDAnCi0rICA7OwotKyAqKSAjIEVCQ0RJQyBi YXNlZCBzeXN0ZW0KLSsgIGx0X1NQMk5MPSd0ciBcMTAwIFxuJwotKyAgbHRfTkwyU1A9J3RyIFxy XG4gXDEwMFwxMDAnCi0rICA7OwotK2VzYWMKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGhvdyB0byBj b252ZXJ0ICRidWlsZCBmaWxlIG5hbWVzIHRvICRob3N0IGZvcm1hdCIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgaG93IHRvIGNvbnZlcnQgJGJ1aWxkIGZpbGUgbmFtZXMgdG8gJGhvc3QgZm9y bWF0Li4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl90b19ob3N0X2ZpbGVfY21kKzp9IGZhbHNlOyB0 aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2FzZSAkaG9z dCBpbgotKyAgKi0qLW1pbmd3KiApCi0rICAgIGNhc2UgJGJ1aWxkIGluCi0rICAgICAgKi0qLW1p bmd3KiApICMgYWN0dWFsbHkgbXN5cwotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1m dW5jX2NvbnZlcnRfZmlsZV9tc3lzX3RvX3czMgotKyAgICAgICAgOzsKLSsgICAgICAqLSotY3ln d2luKiApCi0rICAgICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxl X2N5Z3dpbl90b193MzIKLSsgICAgICAgIDs7Ci0rICAgICAgKiApICMgb3RoZXJ3aXNlLCBhc3N1 bWUgKm5peAotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmls ZV9uaXhfdG9fdzMyCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICAqLSotY3ln d2luKiApCi0rICAgIGNhc2UgJGJ1aWxkIGluCi0rICAgICAgKi0qLW1pbmd3KiApICMgYWN0dWFs bHkgbXN5cwotKyAgICAgICAgbHRfY3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmls ZV9tc3lzX3RvX2N5Z3dpbgotKyAgICAgICAgOzsKLSsgICAgICAqLSotY3lnd2luKiApCi0rICAg ICAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25vb3AKLSsgICAg ICAgIDs7Ci0rICAgICAgKiApICMgb3RoZXJ3aXNlLCBhc3N1bWUgKm5peAotKyAgICAgICAgbHRf Y3ZfdG9faG9zdF9maWxlX2NtZD1mdW5jX2NvbnZlcnRfZmlsZV9uaXhfdG9fY3lnd2luCi0rICAg ICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICAqICkgIyB1bmhhbmRsZWQgaG9zdHMgKGFu ZCAibm9ybWFsIiBuYXRpdmUgYnVpbGRzKQotKyAgICBsdF9jdl90b19ob3N0X2ZpbGVfY21kPWZ1 bmNfY29udmVydF9maWxlX25vb3AKLSsgICAgOzsKLStlc2FjCi0rCi0rZmkKLSsKLSt0b19ob3N0 X2ZpbGVfY21kPSRsdF9jdl90b19ob3N0X2ZpbGVfY21kCi0reyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl90b19ob3N0X2ZpbGVfY21kIiA+JjUK LSskYXNfZWNobyAiJGx0X2N2X3RvX2hvc3RfZmlsZV9jbWQiID4mNjsgfQotKwotKwotKwotKwot KwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaG93 IHRvIGNvbnZlcnQgJGJ1aWxkIGZpbGUgbmFtZXMgdG8gdG9vbGNoYWluIGZvcm1hdCIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIGNvbnZlcnQgJGJ1aWxkIGZpbGUgbmFtZXMgdG8g dG9vbGNoYWluIGZvcm1hdC4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfdG9fdG9vbF9maWxlX2Nt ZCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgICNhc3N1bWUgb3JkaW5hcnkgY3Jvc3MgdG9vbHMsIG9yIG5hdGl2ZSBidWlsZC4KLStsdF9j dl90b190b29sX2ZpbGVfY21kPWZ1bmNfY29udmVydF9maWxlX25vb3AKLStjYXNlICRob3N0IGlu Ci0rICAqLSotbWluZ3cqICkKLSsgICAgY2FzZSAkYnVpbGQgaW4KLSsgICAgICAqLSotbWluZ3cq ICkgIyBhY3R1YWxseSBtc3lzCi0rICAgICAgICBsdF9jdl90b190b29sX2ZpbGVfY21kPWZ1bmNf Y29udmVydF9maWxlX21zeXNfdG9fdzMyCi0rICAgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7 Ci0rZXNhYwotKwotK2ZpCi0rCi0rdG9fdG9vbF9maWxlX2NtZD0kbHRfY3ZfdG9fdG9vbF9maWxl X2NtZAotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk bHRfY3ZfdG9fdG9vbF9maWxlX2NtZCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl90b190b29sX2Zp bGVfY21kIiA+JjY7IH0KLSsKLSsKLSsKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkTEQgb3B0aW9uIHRvIHJlbG9hZCBvYmplY3Qg ZmlsZXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkTEQgb3B0aW9uIHRvIHJlbG9h ZCBvYmplY3QgZmlsZXMuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X2xkX3JlbG9hZF9mbGFnKzp9 IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg bHRfY3ZfbGRfcmVsb2FkX2ZsYWc9Jy1yJwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9sZF9yZWxvYWRfZmxhZyIgPiY1Ci0rJGFz X2VjaG8gIiRsdF9jdl9sZF9yZWxvYWRfZmxhZyIgPiY2OyB9Ci0rcmVsb2FkX2ZsYWc9JGx0X2N2 X2xkX3JlbG9hZF9mbGFnCi0rY2FzZSAkcmVsb2FkX2ZsYWcgaW4KLSsiIiB8ICIgIiopIDs7Ci0r KikgcmVsb2FkX2ZsYWc9IiAkcmVsb2FkX2ZsYWciIDs7Ci0rZXNhYwotK3JlbG9hZF9jbWRzPSck TEQkcmVsb2FkX2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKLStjYXNlICRob3N0X29zIGlu Ci0rICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICAgIGlmIHRlc3QgIiRH Q0MiICE9IHllczsgdGhlbgotKyAgICAgIHJlbG9hZF9jbWRzPWZhbHNlCi0rICAgIGZpCi0rICAg IDs7Ci0rICBkYXJ3aW4qKQotKyAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICAg IHJlbG9hZF9jbWRzPSckTFRDQyAkTFRDRkxBR1MgLW5vc3RkbGliICR7d2x9LXIgLW8gJG91dHB1 dCRyZWxvYWRfb2JqcycKLSsgICAgZWxzZQotKyAgICAgIHJlbG9hZF9jbWRzPSckTEQkcmVsb2Fk X2ZsYWcgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKLSsgICAgZmkKLSsgICAgOzsKLStlc2FjCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0raWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4Ijsg dGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fW9i amR1bXAiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1t eSAke2FjX3Rvb2xfcHJlZml4fW9iamR1bXA7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9w cm9nX09CSkRVTVArOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkT0JKRFVNUCI7IHRoZW4KLSsgIGFjX2N2X3Byb2df T0JKRFVNUD0iJE9CSkRVTVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vs c2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBp biAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAm JiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0 ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4K LSsgICAgYWNfY3ZfcHJvZ19PQkpEVU1QPSIke2FjX3Rvb2xfcHJlZml4fW9iamR1bXAiCi0rICAg ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRv bmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK09CSkRVTVA9JGFjX2N2X3Byb2df T0JKRFVNUAotK2lmIHRlc3QgLW4gIiRPQkpEVU1QIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRPQkpEVU1QIiA+JjUKLSskYXNfZWNo byAiJE9CSkRVTVAiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStm aQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfT0JKRFVNUCI7IHRoZW4KLSsg IGFjX2N0X09CSkRVTVA9JE9CSkRVTVAKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAi b2JqZHVtcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1 bW15IG9iamR1bXA7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX2FjX2N0X09CSkRV TVArOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNl Ci0rICBpZiB0ZXN0IC1uICIkYWNfY3RfT0JKRFVNUCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNf Y3RfT0JKRFVNUD0iJGFjX2N0X09CSkRVTVAiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0 ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9y IGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIk YXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1 dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7 IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9PQkpEVU1QPSJvYmpkdW1wIgotKyAgICAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rICBkb25l Ci0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9PQkpEVU1QPSRhY19jdl9w cm9nX2FjX2N0X09CSkRVTVAKLStpZiB0ZXN0IC1uICIkYWNfY3RfT0JKRFVNUCI7IHRoZW4KLSsg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3Rf T0JKRFVNUCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9PQkpEVU1QIiA+JjY7IH0KLStlbHNlCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4m NQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfT0JK RFVNUCIgPSB4OyB0aGVuCi0rICAgIE9CSkRVTVA9ImZhbHNlIgotKyAgZWxzZQotKyAgICBjYXNl ICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xz IG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgT0JKRFVNUD0kYWNf Y3RfT0JKRFVNUAotKyAgZmkKLStlbHNlCi0rICBPQkpEVU1QPSIkYWNfY3ZfcHJvZ19PQkpEVU1Q IgotK2ZpCi0rCi0rdGVzdCAteiAiJE9CSkRVTVAiICYmIE9CSkRVTVA9b2JqZHVtcAotKwotKwot KwotKwotKwotKwotKwotKwotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgaG93IHRvIHJlY29nbml6ZSBkZXBlbmRlbnQgbGlicmFyaWVzIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBob3cgdG8gcmVjb2duaXplIGRlcGVuZGVudCBsaWJyYXJp ZXMuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kKzp9IGZhbHNl OyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3Zf ZmlsZV9tYWdpY19jbWQ9JyRNQUdJQ19DTUQnCi0rbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9 Ci0rbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J3Vua25vd24nCi0rIyBOZWVkIHRvIHNldCB0 aGUgcHJlY2VkaW5nIHZhcmlhYmxlIG9uIGFsbCBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0Ci0rIyBp bnRlcmxpYnJhcnkgZGVwZW5kZW5jaWVzLgotKyMgJ25vbmUnIC0tIGRlcGVuZGVuY2llcyBub3Qg c3VwcG9ydGVkLgotKyMgYHVua25vd24nIC0tIHNhbWUgYXMgbm9uZSwgYnV0IGRvY3VtZW50cyB0 aGF0IHdlIHJlYWxseSBkb24ndCBrbm93LgotKyMgJ3Bhc3NfYWxsJyAtLSBhbGwgZGVwZW5kZW5j aWVzIHBhc3NlZCB3aXRoIG5vIGNoZWNrcy4KLSsjICd0ZXN0X2NvbXBpbGUnIC0tIGNoZWNrIGJ5 IG1ha2luZyB0ZXN0IHByb2dyYW0uCi0rIyAnZmlsZV9tYWdpYyBbW3JlZ2V4XV0nIC0tIGNoZWNr IGJ5IGxvb2tpbmcgZm9yIGZpbGVzIGluIGxpYnJhcnkgcGF0aAotKyMgd2hpY2ggcmVzcG9uZHMg dG8gdGhlICRmaWxlX21hZ2ljX2NtZCB3aXRoIGEgZ2l2ZW4gZXh0ZW5kZWQgcmVnZXguCi0rIyBJ ZiB5b3UgaGF2ZSBgZmlsZScgb3IgZXF1aXZhbGVudCBvbiB5b3VyIHN5c3RlbSBhbmQgeW91J3Jl IG5vdCBzdXJlCi0rIyB3aGV0aGVyIGBwYXNzX2FsbCcgd2lsbCAqYWx3YXlzKiB3b3JrLCB5b3Ug cHJvYmFibHkgd2FudCB0aGlzIG9uZS4KLSsKLStjYXNlICRob3N0X29zIGluCi0rYWl4WzQtOV0q KQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rYmVv cyopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsKLSsKLSti c2RpWzQ1XSopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyBFTEYg WzAtOV1bMC05XSotYml0IFtNTF1TQiAoc2hhcmVkIG9iamVjdHxkeW5hbWljIGxpYiknCi0rICBs dF9jdl9maWxlX21hZ2ljX2NtZD0nL3Vzci9iaW4vZmlsZSAtTCcKLSsgIGx0X2N2X2ZpbGVfbWFn aWNfdGVzdF9maWxlPS9zaGxpYi9saWJjLnNvCi0rICA7OwotKwotK2N5Z3dpbiopCi0rICAjIGZ1 bmNfd2luMzJfbGliaWQgaXMgYSBzaGVsbCBmdW5jdGlvbiBkZWZpbmVkIGluIGx0bWFpbi5zaAot KyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBhcmNoaXZlIGlt cG9ydHxeeDg2IERMTCcKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSdmdW5jX3dpbjMyX2xpYmlk JwotKyAgOzsKLSsKLSttaW5ndyogfCBwdzMyKikKLSsgICMgQmFzZSBNU1lTL01pbkdXIGRvIG5v dCBwcm92aWRlIHRoZSAnZmlsZScgY29tbWFuZCBuZWVkZWQgYnkKLSsgICMgZnVuY193aW4zMl9s aWJpZCBzaGVsbCBmdW5jdGlvbiwgc28gdXNlIGEgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1 bXAnLAotKyAgIyB1bmxlc3Mgd2UgZmluZCAnZmlsZScsIGZvciBleGFtcGxlIGJlY2F1c2Ugd2Ug YXJlIGNyb3NzLWNvbXBpbGluZy4KLSsgICMgZnVuY193aW4zMl9saWJpZCBhc3N1bWVzIEJTRCBu bSwgc28gZGlzYWxsb3cgaXQgaWYgdXNpbmcgTVMgZHVtcGJpbi4KLSsgIGlmICggdGVzdCAiJGx0 X2N2X25tX2ludGVyZmFjZSIgPSAiQlNEIG5tIiAmJiBmaWxlIC8gKSA+L2Rldi9udWxsIDI+JjE7 IHRoZW4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgXng4NiBh cmNoaXZlIGltcG9ydHxeeDg2IERMTCcKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9J2Z1bmNf d2luMzJfbGliaWQnCi0rICBlbHNlCi0rICAgICMgS2VlcCB0aGlzIHBhdHRlcm4gaW4gc3luYyB3 aXRoIHRoZSBvbmUgaW4gZnVuY193aW4zMl9saWJpZC4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVj a19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgKHBlaSotaTM4NiguKmFyY2hpdGVjdHVy ZTogaTM4Nik/fHBlLWFybS13aW5jZXxwZS14ODYtNjQpJwotKyAgICBsdF9jdl9maWxlX21hZ2lj X2NtZD0nJE9CSkRVTVAgLWYnCi0rICBmaQotKyAgOzsKLSsKLStjZWdjYyopCi0rICAjIHVzZSB0 aGUgd2Vha2VyIHRlc3QgYmFzZWQgb24gJ29iamR1bXAnLiBTZWUgbWluZ3cqLgotKyAgbHRfY3Zf ZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgZmlsZSBmb3JtYXQgcGUtYXJtLS4qbGl0 dGxlKC4qYXJjaGl0ZWN0dXJlOiBhcm0pPycKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPSckT0JK RFVNUCAtZicKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGx0X2N2X2RlcGxp YnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2ZyZWVic2QqIHwgZHJhZ29uZmx5 KikKLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZfXyA+IC9kZXYv bnVsbDsgdGhlbgotKyAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICBpKjg2ICkKLSsgICAgICAj IE5vdCBzdXJlIHdoZXRoZXIgdGhlIHByZXNlbmNlIG9mIE9wZW5CU0QgaGVyZSB3YXMgYSBtaXN0 YWtlLgotKyAgICAgICMgTGV0J3MgYWNjZXB0IGJvdGggb2YgdGhlbSB1bnRpbCB0aGlzIGlzIGNs ZWFyZWQgdXAuCi0rICAgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMg KEZyZWVCU0R8T3BlbkJTRHxEcmFnb25GbHkpL2lbMy05XTg2IChjb21wYWN0ICk/ZGVtYW5kIHBh Z2VkIHNoYXJlZCBsaWJyYXJ5JwotKyAgICAgIGx0X2N2X2ZpbGVfbWFnaWNfY21kPS91c3IvYmlu L2ZpbGUKLSsgICAgICBsdF9jdl9maWxlX21hZ2ljX3Rlc3RfZmlsZT1gZWNobyAvdXNyL2xpYi9s aWJjLnNvLipgCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZWxzZQotKyAgICBsdF9jdl9kZXBs aWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgZmkKLSsgIDs7Ci0rCi0rZ251KikKLSsgIGx0 X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2hhaWt1KikKLSsg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK2hwdXgxMC4y MCogfCBocHV4MTEqKQotKyAgbHRfY3ZfZmlsZV9tYWdpY19jbWQ9L3Vzci9iaW4vZmlsZQotKyAg Y2FzZSAkaG9zdF9jcHUgaW4KLSsgIGlhNjQqKQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21l dGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEYtWzAtOV1bMC05XSkgc2hhcmVk IG9iamVjdCBmaWxlIC0gSUE2NCcKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L3Vz ci9saWIvaHB1eDMyL2xpYmMuc28KLSsgICAgOzsKLSsgIGhwcGEqNjQqKQotKyAgICBsdF9jdl9k ZXBsaWJzX2NoZWNrX21ldGhvZD0nZmlsZV9tYWdpYyAoc1swLTldWzAtOV1bMC05XXxFTEZbIC1d WzAtOV1bMC05XSkoLWJpdCk/KCBbTE1dU0IpPyBzaGFyZWQgb2JqZWN0KCBmaWxlKT9bLCAtXSog UEEtUklTQyBbMC05XVwuWzAtOV0nCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91 c3IvbGliL3BhMjBfNjQvbGliYy5zbAotKyAgICA7OwotKyAgKikKLSsgICAgbHRfY3ZfZGVwbGli c19jaGVja19tZXRob2Q9J2ZpbGVfbWFnaWMgKHNbMC05XVswLTldWzAtOV18UEEtUklTQ1swLTld XC5bMC05XSkgc2hhcmVkIGxpYnJhcnknCi0rICAgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxl PS91c3IvbGliL2xpYmMuc2wKLSsgICAgOzsKLSsgIGVzYWMKLSsgIDs7Ci0rCi0raW50ZXJpeFsz LTldKikKLSsgICMgUElDIGNvZGUgaXMgYnJva2VuIG9uIEludGVyaXggMy54LCB0aGF0J3Mgd2h5 IHxcLmEgbm90IHxfcGljXC5hIGhlcmUKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdt YXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNvfFwuYSkkJwotKyAgOzsKLSsKLStpcml4NSogfCBp cml4NiogfCBub25zdG9wdXgqKQotKyAgY2FzZSAkTEQgaW4KLSsgICotMzJ8KiItMzIgIikgbGli bWFnaWM9MzItYml0OzsKLSsgICotbjMyfCoiLW4zMiAiKSBsaWJtYWdpYz1OMzI7OwotKyAgKi02 NHwqIi02NCAiKSBsaWJtYWdpYz02NC1iaXQ7OwotKyAgKikgbGlibWFnaWM9bmV2ZXItbWF0Y2g7 OwotKyAgZXNhYwotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7 Ci0rCi0rIyBUaGlzIG11c3QgYmUgTGludXggRUxGLgotK2xpbnV4KiB8IGsqYnNkKi1nbnUgfCBr b3BlbnNvbGFyaXMqLWdudSkKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxs Ci0rICA7OwotKwotK25ldGJzZCopCi0rICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRH UkVQIF9fRUxGX18gPiAvZGV2L251bGw7IHRoZW4KLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19t ZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc29cLlswLTldK1wuWzAtOV0rfF9waWNc LmEpJCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9J21hdGNoX3Bh dHRlcm4gL2xpYlteL10rKFwuc298X3BpY1wuYSkkJwotKyAgZmkKLSsgIDs7Ci0rCi0rbmV3b3M2 KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVMRiBbMC05XVsw LTldKi1iaXQgW01MXVNCIChleGVjdXRhYmxlfGR5bmFtaWMgbGliKScKLSsgIGx0X2N2X2ZpbGVf bWFnaWNfY21kPS91c3IvYmluL2ZpbGUKLSsgIGx0X2N2X2ZpbGVfbWFnaWNfdGVzdF9maWxlPS91 c3IvbGliL2xpYm5scy5zbwotKyAgOzsKLSsKLSsqbnRvKiB8ICpxbngqKQotKyAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICBpZiB0 ZXN0IC16ICJgZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVz dCAiJGhvc3Rfb3MtJGhvc3RfY3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAg IGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdtYXRjaF9wYXR0ZXJuIC9saWJbXi9dKyhcLnNv XC5bMC05XStcLlswLTldK3xcLnNvfF9waWNcLmEpJCcKLSsgIGVsc2UKLSsgICAgbHRfY3ZfZGVw bGlic19jaGVja19tZXRob2Q9J21hdGNoX3BhdHRlcm4gL2xpYlteL10rKFwuc29cLlswLTldK1wu WzAtOV0rfF9waWNcLmEpJCcKLSsgIGZpCi0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1 KikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICA7OwotKwotK3Jk b3MqKQotKyAgbHRfY3ZfZGVwbGlic19jaGVja19tZXRob2Q9cGFzc19hbGwKLSsgIDs7Ci0rCi0r c29sYXJpcyopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgOzsK LSsKLStzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwgT3BlblVOSVgq IHwgc3lzdjQqdXcyKikKLSsgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0r ICA7OwotKwotK3N5c3Y0IHwgc3lzdjQuMyopCi0rICBjYXNlICRob3N0X3ZlbmRvciBpbgotKyAg bW90b3JvbGEpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPSdmaWxlX21hZ2ljIEVM RiBbMC05XVswLTldKi1iaXQgW01MXVNCIChzaGFyZWQgb2JqZWN0fGR5bmFtaWMgbGliKSBNWzAt OV1bMC05XSogVmVyc2lvbiBbMC05XScKLSsgICAgbHRfY3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9 YGVjaG8gL3Vzci9saWIvbGliYy5zbypgCi0rICAgIDs7Ci0rICBuY3IpCi0rICAgIGx0X2N2X2Rl cGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0rICBzZXF1ZW50KQotKyAgICBs dF9jdl9maWxlX21hZ2ljX2NtZD0nL2Jpbi9maWxlJwotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNr X21ldGhvZD0nZmlsZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0IFtMTV1TQiAoc2hhcmVkIG9i amVjdHxkeW5hbWljIGxpYiApJwotKyAgICA7OwotKyAgc25pKQotKyAgICBsdF9jdl9maWxlX21h Z2ljX2NtZD0nL2Jpbi9maWxlJwotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD0iZmls ZV9tYWdpYyBFTEYgWzAtOV1bMC05XSotYml0IFtMTV1TQiBkeW5hbWljIGxpYiIKLSsgICAgbHRf Y3ZfZmlsZV9tYWdpY190ZXN0X2ZpbGU9L2xpYi9saWJjLnNvCi0rICAgIDs7Ci0rICBzaWVtZW5z KQotKyAgICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1wYXNzX2FsbAotKyAgICA7OwotKyAg cGMpCi0rICAgIGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kPXBhc3NfYWxsCi0rICAgIDs7Ci0r ICBlc2FjCi0rICA7OwotKwotK3RwZiopCi0rICBsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhvZD1w YXNzX2FsbAotKyAgOzsKLStlc2FjCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kIiA+JjUK LSskYXNfZWNobyAiJGx0X2N2X2RlcGxpYnNfY2hlY2tfbWV0aG9kIiA+JjY7IH0KLSsKLStmaWxl X21hZ2ljX2dsb2I9Ci0rd2FudF9ub2Nhc2VnbG9iPW5vCi0raWYgdGVzdCAiJGJ1aWxkIiA9ICIk aG9zdCI7IHRoZW4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIG1pbmd3KiB8IHB3MzIqKQotKyAg ICBpZiAoIHNob3B0IHwgZ3JlcCBub2Nhc2VnbG9iICkgPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0r ICAgICAgd2FudF9ub2Nhc2VnbG9iPXllcwotKyAgICBlbHNlCi0rICAgICAgZmlsZV9tYWdpY19n bG9iPWBlY2hvIGFBYkJjQ2REZUVmRmdHaEhpSWpKa0tsTG1Nbk5vT3BQcVFyUnNTdFR1VXZWd1d4 WHlZelogfCAkU0VEIC1lICJzL1woLi5cKS9zXC9bXDFdXC9bXDFdXC9nOy9nImAKLSsgICAgZmkK LSsgICAgOzsKLSsgIGVzYWMKLStmaQotKwotK2ZpbGVfbWFnaWNfY21kPSRsdF9jdl9maWxlX21h Z2ljX2NtZAotK2RlcGxpYnNfY2hlY2tfbWV0aG9kPSRsdF9jdl9kZXBsaWJzX2NoZWNrX21ldGhv ZAotK3Rlc3QgLXogIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgJiYgZGVwbGlic19jaGVja19tZXRo b2Q9dW5rbm93bgotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4K LSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1kbGx0b29s Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHth Y190b29sX3ByZWZpeH1kbGx0b29sOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hv X24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19E TExUT09MKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0r ZWxzZQotKyAgaWYgdGVzdCAtbiAiJERMTFRPT0wiOyB0aGVuCi0rICBhY19jdl9wcm9nX0RMTFRP T0w9IiRETExUT09MIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0r YXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBB VEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNf ZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lv bnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYm ICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAg IGFjX2N2X3Byb2dfRExMVE9PTD0iJHthY190b29sX3ByZWZpeH1kbGx0b29sIgotKyAgICAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3Jk JGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0r SUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStETExUT09MPSRhY19jdl9wcm9nX0RMTFRP T0wKLStpZiB0ZXN0IC1uICIkRExMVE9PTCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkRExMVE9PTCIgPiY1Ci0rJGFzX2VjaG8gIiRE TExUT09MIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsK LSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0RMTFRPT0wiOyB0aGVuCi0rICBhY19j dF9ETExUT09MPSRETExUT09MCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRsbHRv b2wiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBk bGx0b29sOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9ETExUT09MKzp9 IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg aWYgdGVzdCAtbiAiJGFjX2N0X0RMTFRPT0wiOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X0RM TFRPT0w9IiRhY19jdF9ETExUT09MIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4K LStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19k aXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2Rp ciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxl X2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhl Y19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0 aGVuCi0rICAgIGFjX2N2X3Byb2dfYWNfY3RfRExMVE9PTD0iZGxsdG9vbCIKLSsgICAgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lG Uz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfRExMVE9PTD0kYWNfY3ZfcHJvZ19h Y19jdF9ETExUT09MCi0raWYgdGVzdCAtbiAiJGFjX2N0X0RMTFRPT0wiOyB0aGVuCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0RMTFRP T0wiID4mNQotKyRhc19lY2hvICIkYWNfY3RfRExMVE9PTCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSsk YXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0RMTFRPT0wi ID0geDsgdGhlbgotKyAgICBETExUT09MPSJmYWxzZSIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jv c3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3Qg cHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5J Tkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYy O30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIERMTFRPT0w9JGFjX2N0X0RM TFRPT0wKLSsgIGZpCi0rZWxzZQotKyAgRExMVE9PTD0iJGFjX2N2X3Byb2dfRExMVE9PTCIKLStm aQotKwotK3Rlc3QgLXogIiRETExUT09MIiAmJiBETExUT09MPWRsbHRvb2wKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGhvdyB0byBhc3NvY2lhdGUgcnVudGltZSBhbmQgbGluayBsaWJyYXJpZXMi ID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBhc3NvY2lhdGUgcnVudGltZSBhbmQg bGluayBsaWJyYXJpZXMuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X3NoYXJlZGxpYl9mcm9tX2xp bmtsaWJfY21kKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9J3Vua25vd24nCi0r Ci0rY2FzZSAkaG9zdF9vcyBpbgotK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikK LSsgICMgdHdvIGRpZmZlcmVudCBzaGVsbCBmdW5jdGlvbnMgZGVmaW5lZCBpbiBsdG1haW4uc2gK LSsgICMgZGVjaWRlIHdoaWNoIHRvIHVzZSBiYXNlZCBvbiBjYXBhYmlsaXRpZXMgb2YgJERMTFRP T0wKLSsgIGNhc2UgYCRETExUT09MIC0taGVscCAyPiYxYCBpbgotKyAgKi0taWRlbnRpZnktc3Ry aWN0KikKLSsgICAgbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9ZnVuY19jeWdtaW5n X2RsbF9mb3JfaW1wbGliCi0rICAgIDs7Ci0rICAqKQotKyAgICBsdF9jdl9zaGFyZWRsaWJfZnJv bV9saW5rbGliX2NtZD1mdW5jX2N5Z21pbmdfZGxsX2Zvcl9pbXBsaWJfZmFsbGJhY2sKLSsgICAg OzsKLSsgIGVzYWMKLSsgIDs7Ci0rKikKLSsgICMgZmFsbGJhY2s6IGFzc3VtZSBsaW5rbGliIElT IHNoYXJlZGxpYgotKyAgbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9IiRFQ0hPIgot KyAgOzsKLStlc2FjCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogJGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kIiA+JjUKLSsk YXNfZWNobyAiJGx0X2N2X3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kIiA+JjY7IH0KLStzaGFy ZWRsaWJfZnJvbV9saW5rbGliX2NtZD0kbHRfY3Zfc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQK LSt0ZXN0IC16ICIkc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQiICYmIHNoYXJlZGxpYl9mcm9t X2xpbmtsaWJfY21kPSRFQ0hPCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0raWYgdGVzdCAtbiAi JGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgZm9yIGFjX3Byb2cgaW4gYXIKLSsgIGRvCi0rICAg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJGFjX3Rvb2xfcHJlZml4JGFjX3Byb2ciLCBz byBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSAkYWNfdG9v bF9wcmVmaXgkYWNfcHJvZzsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X3Byb2dfQVIrOn0g ZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBp ZiB0ZXN0IC1uICIkQVIiOyB0aGVuCi0rICBhY19jdl9wcm9nX0FSPSIkQVIiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVf SUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19BUj0iJGFjX3Rvb2xf cHJlZml4JGFjX3Byb2ciCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAy Ci0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQot K0FSPSRhY19jdl9wcm9nX0FSCi0raWYgdGVzdCAtbiAiJEFSIjsgdGhlbgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRBUiIgPiY1Ci0rJGFzX2Vj aG8gIiRBUiIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0r Ci0rCi0rICAgIHRlc3QgLW4gIiRBUiIgJiYgYnJlYWsKLSsgIGRvbmUKLStmaQotK2lmIHRlc3Qg LXogIiRBUiI7IHRoZW4KLSsgIGFjX2N0X0FSPSRBUgotKyAgZm9yIGFjX3Byb2cgaW4gYXIKLStk bwotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIkYWNfcHJvZyIsIHNvIGl0IGNhbiBi ZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICRhY19wcm9nOyBhY193b3Jk PSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAi ID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9BUis6fSBmYWxzZTsgdGhlbiA6Ci0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9B UiI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfQVI9IiRhY19jdF9BUiIgIyBMZXQgdGhlIHVz ZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFU SF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9J RlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4 dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193 b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X0FSPSIkYWNf cHJvZyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0r ZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfQVI9 JGFjX2N2X3Byb2dfYWNfY3RfQVIKLStpZiB0ZXN0IC1uICIkYWNfY3RfQVIiOyB0aGVuCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0FS IiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X0FSIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hv ICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLSsgIHRlc3QgLW4gIiRhY19jdF9BUiIgJiYgYnJlYWsK LStkb25lCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X0FSIiA9IHg7IHRoZW4KLSsgICAgQVI9ImZh bHNlIgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVk IGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdB Uk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIg PiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHBy ZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7Owot K2VzYWMKLSsgICAgQVI9JGFjX2N0X0FSCi0rICBmaQotK2ZpCi0rCi0rOiAke0FSPWFyfQotKzog JHtBUl9GTEFHUz1jcnV9Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgYXJjaGl2ZXIg QEZJTEUgc3VwcG9ydCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGFyY2hpdmVyIEBG SUxFIHN1cHBvcnQuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X2FyX2F0X2ZpbGUrOn0gZmFsc2U7 IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9h cl9hdF9maWxlPW5vCi0rICAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFj X2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwot KyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfY29tcGls ZSAiJExJTkVOTyI7IHRoZW4gOgotKyAgZWNobyBjb25mdGVzdC4kYWNfb2JqZXh0ID4gY29uZnRl c3QubHN0Ci0rICAgICAgbHRfYXJfdHJ5PSckQVIgJEFSX0ZMQUdTIGxpYmNvbmZ0ZXN0LmEgQGNv bmZ0ZXN0LmxzdCA+JjUnCi0rICAgICAgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19s aW5lbm8tJExJTkVOT306IFwiJGx0X2FyX3RyeVwiIjsgfSA+JjUKLSsgIChldmFsICRsdF9hcl90 cnkpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAw OyB9Ci0rICAgICAgaWYgdGVzdCAiJGFjX3N0YXR1cyIgLWVxIDA7IHRoZW4KLSsJIyBFbnN1cmUg dGhlIGFyY2hpdmVyIGZhaWxzIHVwb24gYm9ndXMgZmlsZSBuYW1lcy4KLSsJcm0gLWYgY29uZnRl c3QuJGFjX29iamV4dCBsaWJjb25mdGVzdC5hCi0rCXsgeyBldmFsIGVjaG8gIlwiXCRhc19tZVwi OiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRsdF9hcl90cnlcIiI7IH0gPiY1Ci0rICAoZXZhbCAk bHRfYXJfdHJ5KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3Rh dHVzID0gMDsgfQotKwlpZiB0ZXN0ICIkYWNfc3RhdHVzIiAtbmUgMDsgdGhlbgotKyAgICAgICAg ICBsdF9jdl9hcl9hdF9maWxlPUAKLSsgICAgICAgIGZpCi0rICAgICAgZmkKLSsgICAgICBybSAt ZiBjb25mdGVzdC4qIGxpYmNvbmZ0ZXN0LmEKLSsKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwotK2ZpCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9hcl9hdF9m aWxlIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X2FyX2F0X2ZpbGUiID4mNjsgfQotKwotK2lmIHRl c3QgIngkbHRfY3ZfYXJfYXRfZmlsZSIgPSB4bm87IHRoZW4KLSsgIGFyY2hpdmVyX2xpc3Rfc3Bl Yz0KLStlbHNlCi0rICBhcmNoaXZlcl9saXN0X3NwZWM9JGx0X2N2X2FyX2F0X2ZpbGUKLStmaQot KwotKwotKwotKwotKwotKwotKwotK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4K LSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1zdHJpcCIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNf dG9vbF9wcmVmaXh9c3RyaXA7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX1NUUklQ Kzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KyAgaWYgdGVzdCAtbiAiJFNUUklQIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19TVFJJUD0iJFNUUklQ IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAg SUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2df U1RSSVA9IiR7YWNfdG9vbF9wcmVmaXh9c3RyaXAiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4m NQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZT Ci0rCi0rZmkKLStmaQotK1NUUklQPSRhY19jdl9wcm9nX1NUUklQCi0raWYgdGVzdCAtbiAiJFNU UklQIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6ICRTVFJJUCIgPiY1Ci0rJGFzX2VjaG8gIiRTVFJJUCIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNf Y3ZfcHJvZ19TVFJJUCI7IHRoZW4KLSsgIGFjX2N0X1NUUklQPSRTVFJJUAotKyAgIyBFeHRyYWN0 IHRoZSBmaXJzdCB3b3JkIG9mICJzdHJpcCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3 aXRoIGFyZ3MuCi0rc2V0IGR1bW15IHN0cmlwOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3Zf cHJvZ19hY19jdF9TVFJJUCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9TVFJJUCI7IHRoZW4KLSsgIGFj X2N2X3Byb2dfYWNfY3RfU1RSSVA9IiRhY19jdF9TVFJJUCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJp ZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAk YWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X1NUUklQPSJzdHJpcCIKLSsg ICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8k YWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAg ZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfU1RSSVA9JGFjX2N2 X3Byb2dfYWNfY3RfU1RSSVAKLStpZiB0ZXN0IC1uICIkYWNfY3RfU1RSSVAiOyB0aGVuCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X1NU UklQIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X1NUUklQIiA+JjY7IH0KLStlbHNlCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRh c19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfU1RSSVAiID0g eDsgdGhlbgotKyAgICBTVFJJUD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGls aW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQg d2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5n IGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190 b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIFNUUklQPSRhY19jdF9TVFJJUAotKyAgZmkK LStlbHNlCi0rICBTVFJJUD0iJGFjX2N2X3Byb2dfU1RSSVAiCi0rZmkKLSsKLSt0ZXN0IC16ICIk U1RSSVAiICYmIFNUUklQPToKLSsKLSsKLSsKLSsKLSsKLSsKLStpZiB0ZXN0IC1uICIkYWNfdG9v bF9wcmVmaXgiOyB0aGVuCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIiR7YWNfdG9v bF9wcmVmaXh9cmFubGliIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4K LStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1yYW5saWI7IGFjX3dvcmQ9JDIKLSt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYg JHthY19jdl9wcm9nX1JBTkxJQis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICBhY19j dl9wcm9nX1JBTkxJQj0iJFJBTkxJQiIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qu Ci0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgotKyAgICBhY19jdl9wcm9nX1JBTkxJQj0iJHthY190b29sX3ByZWZpeH1yYW5saWIiCi0r ICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsg IGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK1JBTkxJQj0kYWNfY3ZfcHJv Z19SQU5MSUIKLStpZiB0ZXN0IC1uICIkUkFOTElCIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRSQU5MSUIiID4mNQotKyRhc19lY2hv ICIkUkFOTElCIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkK LSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX1JBTkxJQiI7IHRoZW4KLSsgIGFj X2N0X1JBTkxJQj0kUkFOTElCCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgInJhbmxp YiIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IHJh bmxpYjsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig JGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X3Byb2dfYWNfY3RfUkFOTElCKzp9IGZh bHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYg dGVzdCAtbiAiJGFjX2N0X1JBTkxJQiI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElC PSIkYWNfY3RfUkFOTElCIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNl Ci0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4g JFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYg YXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVu c2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi ICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0r ICAgIGFjX2N2X3Byb2dfYWNfY3RfUkFOTElCPSJyYW5saWIiCi0rICAgICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19l eHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3Nh dmVfSUZTCi0rCi0rZmkKLStmaQotK2FjX2N0X1JBTkxJQj0kYWNfY3ZfcHJvZ19hY19jdF9SQU5M SUIKLStpZiB0ZXN0IC1uICIkYWNfY3RfUkFOTElCIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdF9SQU5MSUIiID4mNQotKyRh c19lY2hvICIkYWNfY3RfUkFOTElCIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIg PiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfUkFOTElCIiA9IHg7IHRoZW4KLSsg ICAgUkFOTElCPSI6IgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9zc19jb21waWxpbmc6JGFjX3Rv b2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3Qg dHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9v bHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVk PXllcyA7OwotK2VzYWMKLSsgICAgUkFOTElCPSRhY19jdF9SQU5MSUIKLSsgIGZpCi0rZWxzZQot KyAgUkFOTElCPSIkYWNfY3ZfcHJvZ19SQU5MSUIiCi0rZmkKLSsKLSt0ZXN0IC16ICIkUkFOTElC IiAmJiBSQU5MSUI9OgotKwotKwotKwotKwotKwotKwotKyMgRGV0ZXJtaW5lIGNvbW1hbmRzIHRv IGNyZWF0ZSBvbGQtc3R5bGUgc3RhdGljIGFyY2hpdmVzLgotK29sZF9hcmNoaXZlX2NtZHM9JyRB UiAkQVJfRkxBR1MgJG9sZGxpYiRvbGRvYmpzJwotK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdjaG1v ZCA2NDQgJG9sZGxpYicKLStvbGRfcG9zdHVuaW5zdGFsbF9jbWRzPQotKwotK2lmIHRlc3QgLW4g IiRSQU5MSUIiOyB0aGVuCi0rICBjYXNlICRob3N0X29zIGluCi0rICBvcGVuYnNkKikKLSsgICAg b2xkX3Bvc3RpbnN0YWxsX2NtZHM9IiRvbGRfcG9zdGluc3RhbGxfY21kc35cJFJBTkxJQiAtdCBc JG9sZGxpYiIKLSsgICAgOzsKLSsgICopCi0rICAgIG9sZF9wb3N0aW5zdGFsbF9jbWRzPSIkb2xk X3Bvc3RpbnN0YWxsX2NtZHN+XCRSQU5MSUIgXCRvbGRsaWIiCi0rICAgIDs7Ci0rICBlc2FjCi0r ICBvbGRfYXJjaGl2ZV9jbWRzPSIkb2xkX2FyY2hpdmVfY21kc35cJFJBTkxJQiBcJG9sZGxpYiIK LStmaQotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSsgIGRhcndpbiopCi0rICAgIGxvY2tfb2xkX2Fy Y2hpdmVfZXh0cmFjdGlvbj15ZXMgOzsKLSsgICopCi0rICAgIGxvY2tfb2xkX2FyY2hpdmVfZXh0 cmFjdGlvbj1ubyA7OwotK2VzYWMKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsjIElmIG5vIEMgY29tcGlsZXIgd2FzIHNwZWNpZmll ZCwgdXNlIENDLgotK0xUQ0M9JHtMVENDLSIkQ0MifQotKwotKyMgSWYgbm8gQyBjb21waWxlciBm bGFncyB3ZXJlIHNwZWNpZmllZCwgdXNlIENGTEFHUy4KLStMVENGTEFHUz0ke0xUQ0ZMQUdTLSIk Q0ZMQUdTIn0KLSsKLSsjIEFsbG93IENDIHRvIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJndW1l bnRzLgotK2NvbXBpbGVyPSRDQwotKwotKwotKyMgQ2hlY2sgZm9yIGNvbW1hbmQgdG8gZ3JhYiB0 aGUgcmF3IHN5bWJvbCBuYW1lIGZvbGxvd2VkIGJ5IEMgc3ltYm9sIGZyb20gbm0uCi0reyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBjb21tYW5kIHRvIHBh cnNlICROTSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2JqZWN0IiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBjb21tYW5kIHRvIHBhcnNlICROTSBvdXRwdXQgZnJvbSAkY29tcGlsZXIgb2JqZWN0 Li4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlKzp9IGZhbHNl OyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKyMgVGhl c2UgYXJlIHNhbmUgZGVmYXVsdHMgdGhhdCB3b3JrIG9uIGF0IGxlYXN0IGEgZmV3IG9sZCBzeXN0 ZW1zLgotKyMgW1RoZXkgY29tZSBmcm9tIFVsdHJpeC4gIFdoYXQgY291bGQgYmUgb2xkZXIgdGhh biBVbHRyaXg/ISEgOyldCi0rCi0rIyBDaGFyYWN0ZXIgY2xhc3MgZGVzY3JpYmluZyBOTSBnbG9i YWwgc3ltYm9sIGNvZGVzLgotK3N5bWNvZGU9J1tCQ0RFR1JTVF0nCi0rCi0rIyBSZWdleHAgdG8g bWF0Y2ggc3ltYm9scyB0aGF0IGNhbiBiZSBhY2Nlc3NlZCBkaXJlY3RseSBmcm9tIEMuCi0rc3lt cGF0PSdcKFtfQS1aYS16XVtfQS1aYS16MC05XSpcKScKLSsKLSsjIERlZmluZSBzeXN0ZW0tc3Bl Y2lmaWMgdmFyaWFibGVzLgotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgqKQotKyAgc3ltY29kZT0n W0JDRFRdJwotKyAgOzsKLStjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiogfCBjZWdjYyopCi0rICBz eW1jb2RlPSdbQUJDREdJU1RXXScKLSsgIDs7Ci0raHB1eCopCi0rICBpZiB0ZXN0ICIkaG9zdF9j cHUiID0gaWE2NDsgdGhlbgotKyAgICBzeW1jb2RlPSdbQUJDREVHUlNUXScKLSsgIGZpCi0rICA7 OwotK2lyaXgqIHwgbm9uc3RvcHV4KikKLSsgIHN5bWNvZGU9J1tCQ0RFR1JTVF0nCi0rICA7Owot K29zZiopCi0rICBzeW1jb2RlPSdbQkNERUdRUlNUXScKLSsgIDs7Ci0rc29sYXJpcyopCi0rICBz eW1jb2RlPSdbQkRSVF0nCi0rICA7OwotK3NjbzMuMnY1KikKLSsgIHN5bWNvZGU9J1tEVF0nCi0r ICA7OwotK3N5c3Y0LjJ1dzIqKQotKyAgc3ltY29kZT0nW0RUXScKLSsgIDs7Ci0rc3lzdjUqIHwg c2NvNXY2KiB8IHVuaXh3YXJlKiB8IE9wZW5VTklYKikKLSsgIHN5bWNvZGU9J1tBQkRUXScKLSsg IDs7Ci0rc3lzdjQpCi0rICBzeW1jb2RlPSdbREZOU1RVXScKLSsgIDs7Ci0rZXNhYwotKwotKyMg SWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHVzZSBpdHMgc3RhbmRhcmQgc3ltYm9sIGNvZGVz LgotK2Nhc2UgYCROTSAtViAyPiYxYCBpbgotKypHTlUqIHwgKid3aXRoIEJGRCcqKQotKyAgc3lt Y29kZT0nW0FCQ0RHSVJTVFddJyA7OwotK2VzYWMKLSsKLSsjIFRyYW5zZm9ybSBhbiBleHRyYWN0 ZWQgc3ltYm9sIGxpbmUgaW50byBhIHByb3BlciBDIGRlY2xhcmF0aW9uLgotKyMgU29tZSBzeXN0 ZW1zIChlc3AuIG9uIGlhNjQpIGxpbmsgZGF0YSBhbmQgY29kZSBzeW1ib2xzIGRpZmZlcmVudGx5 LAotKyMgc28gdXNlIHRoaXMgZ2VuZXJhbCBhcHByb2FjaC4KLStsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF90b19jZGVjbD0ic2VkIC1uIC1lICdzL15UIC4qIFwoLipcKSQvZXh0ZXJuIGludCBcMSgp Oy9wJyAtZSAncy9eJHN5bWNvZGUqIC4qIFwoLipcKSQvZXh0ZXJuIGNoYXIgXDE7L3AnIgotKwot KyMgVHJhbnNmb3JtIGFuIGV4dHJhY3RlZCBzeW1ib2wgbGluZSBpbnRvIHN5bWJvbCBuYW1lIGFu ZCBzeW1ib2wgYWRkcmVzcwotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRy ZXNzPSJzZWQgLW4gLWUgJ3MvXjogXChbXiBdKlwpWyBdKiQvICB7XFxcIlwxXFxcIiwgKHZvaWQg KikgMH0sL3AnIC1lICdzL14kc3ltY29kZSogXChbXiBdKlwpIFwoW14gXSpcKSQvICB7XCJcMlwi LCAodm9pZCAqKSBcJlwyfSwvcCciCi0rbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1l X2FkZHJlc3NfbGliX3ByZWZpeD0ic2VkIC1uIC1lICdzL146IFwoW14gXSpcKVsgXSokLyAge1xc XCJcMVxcXCIsICh2b2lkICopIDB9LC9wJyAtZSAncy9eJHN5bWNvZGUqIFwoW14gXSpcKSBcKGxp YlteIF0qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sL3AnIC1lICdzL14kc3ltY29kZSog XChbXiBdKlwpIFwoW14gXSpcKSQvICB7XCJsaWJcMlwiLCAodm9pZCAqKSBcJlwyfSwvcCciCi0r Ci0rIyBIYW5kbGUgQ1JMRiBpbiBtaW5ndyB0b29sIGNoYWluCi0rb3B0X2NyPQotK2Nhc2UgJGJ1 aWxkX29zIGluCi0rbWluZ3cqKQotKyAgb3B0X2NyPWAkRUNITyAneFx7MCwxXH0nIHwgdHIgeCAn XDAxNSdgICMgb3B0aW9uIGNyIGluIHJlZ2V4cAotKyAgOzsKLStlc2FjCi0rCi0rIyBUcnkgd2l0 aG91dCBhIHByZWZpeCB1bmRlcnNjb3JlLCB0aGVuIHdpdGggaXQuCi0rZm9yIGFjX3N5bXByZngg aW4gIiIgIl8iOyBkbwotKwotKyAgIyBUcmFuc2Zvcm0gc3ltY29kZSwgc3ltcGF0LCBhbmQgc3lt cHJmeCBpbnRvIGEgcmF3IHN5bWJvbCBhbmQgYSBDIHN5bWJvbC4KLSsgIHN5bXhmcm09IlxcMSAk YWNfc3ltcHJmeFxcMiBcXDIiCi0rCi0rICAjIFdyaXRlIHRoZSByYXcgYW5kIEMgaWRlbnRpZmll cnMuCi0rICBpZiB0ZXN0ICIkbHRfY3Zfbm1faW50ZXJmYWNlIiA9ICJNUyBkdW1wYmluIjsgdGhl bgotKyAgICAjIEZha2UgaXQgZm9yIGR1bXBiaW4gYW5kIHNheSBUIGZvciBhbnkgbm9uLXN0YXRp YyBmdW5jdGlvbgotKyAgICAjIGFuZCBEIGZvciBhbnkgZ2xvYmFsIHZhcmlhYmxlLgotKyAgICAj IEFsc28gZmluZCBDKysgYW5kIF9fZmFzdGNhbGwgc3ltYm9scyBmcm9tIE1TVkMrKywKLSsgICAg IyB3aGljaCBzdGFydCB3aXRoIEAgb3IgPy4KLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xf cGlwZT0iJEFXSyAnIlwKLSsiICAgICB7bGFzdF9zZWN0aW9uPXNlY3Rpb247IHNlY3Rpb249XCQg M307IlwKLSsiICAgICAvU2VjdGlvbiBsZW5ndGggLiojcmVsb2NzLioocGljayBhbnkpL3toaWRl W2xhc3Rfc2VjdGlvbl09MX07IlwKLSsiICAgICBcJCAwIX4vRXh0ZXJuYWwgKlx8L3tuZXh0fTsi XAotKyIgICAgIC8gMCsgVU5ERUYgL3tuZXh0fTsgLyBVTkRFRiBcKFtefF1cKSooKS97bmV4dH07 IlwKLSsiICAgICB7aWYoaGlkZVtzZWN0aW9uXSkgbmV4dH07IlwKLSsiICAgICB7Zj0wfTsgXCQg MH4vXChcKS4qXHwve2Y9MX07IHtwcmludGYgZiA/IFwiVCBcIiA6IFwiRCBcIn07IlwKLSsiICAg ICB7c3BsaXQoXCQgMCwgYSwgL1x8fFxyLyk7IHNwbGl0KGFbMl0sIHMpfTsiXAotKyIgICAgIHNb MV1+L15bQD9dL3twcmludCBzWzFdLCBzWzFdOyBuZXh0fTsiXAotKyIgICAgIHNbMV1+cHJmeCB7 c3BsaXQoc1sxXSx0LFwiQFwiKTsgcHJpbnQgdFsxXSwgc3Vic3RyKHRbMV0sbGVuZ3RoKHByZngp KX0iXAotKyIgICAgICcgcHJmeD1eJGFjX3N5bXByZngiCi0rICBlbHNlCi0rICAgIGx0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3BpcGU9InNlZCAtbiAtZSAncy9eLipbCSBdXCgkc3ltY29kZSRzeW1j b2RlKlwpWwkgXVsJIF0qJGFjX3N5bXByZngkc3ltcGF0JG9wdF9jciQvJHN5bXhmcm0vcCciCi0r ICBmaQotKyAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZT0iJGx0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3BpcGUgfCBzZWQgJy8gX19nbnVfbHRvL2QnIgotKwotKyAgIyBDaGVjayB0byBzZWUg dGhhdCB0aGUgcGlwZSB3b3JrcyBjb3JyZWN0bHkuCi0rICBwaXBlX3dvcmtzPW5vCi0rCi0rICBy bSAtZiBjb25mdGVzdCoKLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0rI2lm ZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIiB7Ci0rI2VuZGlmCi0rY2hhciBubV90ZXN0X3Zh cjsKLSt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKTsKLSt2b2lkIG5tX3Rlc3RfZnVuYyh2b2lkKXt9 Ci0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZgotK2ludCBtYWluKCl7bm1fdGVzdF92 YXI9J2EnO25tX3Rlc3RfZnVuYygpO3JldHVybigwKTt9Ci0rX0xUX0VPRgotKwotKyAgaWYgeyB7 IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFjX2NvbXBp bGVcIiI7IH0gPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IHRoZW4KLSsgICAgIyBOb3cgdHJ5 IHRvIGdyYWIgdGhlIHN5bWJvbHMuCi0rICAgIG5saXN0PWNvbmZ0ZXN0Lm5tCi0rICAgIGlmIHsg eyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiROTSBjb25m dGVzdC4kYWNfb2JqZXh0IFx8ICIkbHRfY3Zfc3lzX2dsb2JhbF9zeW1ib2xfcGlwZSIgXD4gJG5s aXN0XCIiOyB9ID4mNQotKyAgKGV2YWwgJE5NIGNvbmZ0ZXN0LiRhY19vYmpleHQgXHwgIiRsdF9j dl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBlIiBcPiAkbmxpc3QpIDI+JjUKLSsgIGFjX3N0YXR1cz0k PwotKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9ICYmIHRlc3QgLXMgIiRubGlzdCI7 IHRoZW4KLSsgICAgICAjIFRyeSBzb3J0aW5nIGFuZCB1bmlxdWlmeWluZyB0aGUgb3V0cHV0Lgot KyAgICAgIGlmIHNvcnQgIiRubGlzdCIgfCB1bmlxID4gIiRubGlzdCJUOyB0aGVuCi0rCW12IC1m ICIkbmxpc3QiVCAiJG5saXN0IgotKyAgICAgIGVsc2UKLSsJcm0gLWYgIiRubGlzdCJUCi0rICAg ICAgZmkKLSsKLSsgICAgICAjIE1ha2Ugc3VyZSB0aGF0IHdlIHNuYWdnZWQgYWxsIHRoZSBzeW1i b2xzIHdlIG5lZWQuCi0rICAgICAgaWYgJEdSRVAgJyBubV90ZXN0X3ZhciQnICIkbmxpc3QiID4v ZGV2L251bGw7IHRoZW4KLSsJaWYgJEdSRVAgJyBubV90ZXN0X2Z1bmMkJyAiJG5saXN0IiA+L2Rl di9udWxsOyB0aGVuCi0rCSAgY2F0IDw8X0xUX0VPRiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsvKiBL ZWVwIHRoaXMgY29kZSBpbiBzeW5jIGJldHdlZW4gbGlidG9vbC5tNCwgbHRtYWluLCBsdF9zeXN0 ZW0uaCwgYW5kIHRlc3RzLiAgKi8KLSsjaWYgZGVmaW5lZChfV0lOMzIpIHx8IGRlZmluZWQoX19D WUdXSU5fXykgfHwgZGVmaW5lZChfV0lOMzJfV0NFKQotKy8qIERBVEEgaW1wb3J0cyBmcm9tIERM THMgb24gV0lOMzIgY29uJ3QgYmUgY29uc3QsIGJlY2F1c2UgcnVudGltZQotKyAgIHJlbG9jYXRp b25zIGFyZSBwZXJmb3JtZWQgLS0gc2VlIGxkJ3MgZG9jdW1lbnRhdGlvbiBvbiBwc2V1ZG8tcmVs b2NzLiAgKi8KLSsjIGRlZmluZSBMVF9ETFNZTV9DT05TVAotKyNlbGlmIGRlZmluZWQoX19vc2Zf XykKLSsvKiBUaGlzIHN5c3RlbSBkb2VzIG5vdCBjb3BlIHdlbGwgd2l0aCByZWxvY2F0aW9ucyBp biBjb25zdCBkYXRhLiAgKi8KLSsjIGRlZmluZSBMVF9ETFNZTV9DT05TVAotKyNlbHNlCi0rIyBk ZWZpbmUgTFRfRExTWU1fQ09OU1QgY29uc3QKLSsjZW5kaWYKLSsKLSsjaWZkZWYgX19jcGx1c3Bs dXMKLStleHRlcm4gIkMiIHsKLSsjZW5kaWYKLSsKLStfTFRfRU9GCi0rCSAgIyBOb3cgZ2VuZXJh dGUgdGhlIHN5bWJvbCBmaWxlLgotKwkgIGV2YWwgIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90 b19jZGVjbCInIDwgIiRubGlzdCIgfCAkR1JFUCAtdiBtYWluID4+IGNvbmZ0ZXN0LiRhY19leHQn Ci0rCi0rCSAgY2F0IDw8X0xUX0VPRiA+PiBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rLyogVGhlIG1h cHBpbmcgYmV0d2VlbiBzeW1ib2wgbmFtZXMgYW5kIHN5bWJvbHMuICAqLwotK0xUX0RMU1lNX0NP TlNUIHN0cnVjdCB7Ci0rICBjb25zdCBjaGFyICpuYW1lOwotKyAgdm9pZCAgICAgICAqYWRkcmVz czsKLSt9Ci0rbHRfX1BST0dSQU1fX0xUWF9wcmVsb2FkZWRfc3ltYm9sc1tdID0KLSt7Ci0rICB7 ICJAUFJPR1JBTUAiLCAodm9pZCAqKSAwIH0sCi0rX0xUX0VPRgotKwkgICRTRUQgInMvXiRzeW1j b2RlJHN5bWNvZGUqIFwoLipcKSBcKC4qXCkkLyAge1wiXDJcIiwgKHZvaWQgKikgXCZcMn0sLyIg PCAiJG5saXN0IiB8ICRHUkVQIC12IG1haW4gPj4gY29uZnRlc3QuJGFjX2V4dAotKwkgIGNhdCA8 PFxfTFRfRU9GID4+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIHswLCAodm9pZCAqKSAwfQotK307Ci0r Ci0rLyogVGhpcyB3b3JrcyBhcm91bmQgYSBwcm9ibGVtIGluIEZyZWVCU0QgbGlua2VyICovCi0r I2lmZGVmIEZSRUVCU0RfV09SS0FST1VORAotK3N0YXRpYyBjb25zdCB2b2lkICpsdF9wcmVsb2Fk ZWRfc2V0dXAoKSB7Ci0rICByZXR1cm4gbHRfX1BST0dSQU1fX0xUWF9wcmVsb2FkZWRfc3ltYm9s czsKLSt9Ci0rI2VuZGlmCi0rCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rfQotKyNlbmRpZgotK19M VF9FT0YKLSsJICAjIE5vdyB0cnkgbGlua2luZyB0aGUgdHdvIGZpbGVzLgotKwkgIG12IGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRzdG0uJGFjX29iamV4dAotKwkgIGx0X2dsb2JzeW1fc2F2ZV9M SUJTPSRMSUJTCi0rCSAgbHRfZ2xvYnN5bV9zYXZlX0NGTEFHUz0kQ0ZMQUdTCi0rCSAgTElCUz0i Y29uZnRzdG0uJGFjX29iamV4dCIKLSsJICBDRkxBR1M9IiRDRkxBR1MkbHRfcHJvZ19jb21waWxl cl9ub19idWlsdGluX2ZsYWciCi0rCSAgaWYgeyB7IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHth c19saW5lbm8tJExJTkVOT306IFwiJGFjX2xpbmtcIiI7IH0gPiY1Ci0rICAoZXZhbCAkYWNfbGlu aykgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7 IH0gJiYgdGVzdCAtcyBjb25mdGVzdCR7YWNfZXhlZXh0fTsgdGhlbgotKwkgICAgcGlwZV93b3Jr cz15ZXMKLSsJICBmaQotKwkgIExJQlM9JGx0X2dsb2JzeW1fc2F2ZV9MSUJTCi0rCSAgQ0ZMQUdT PSRsdF9nbG9ic3ltX3NhdmVfQ0ZMQUdTCi0rCWVsc2UKLSsJICBlY2hvICJjYW5ub3QgZmluZCBu bV90ZXN0X2Z1bmMgaW4gJG5saXN0IiA+JjUKLSsJZmkKLSsgICAgICBlbHNlCi0rCWVjaG8gImNh bm5vdCBmaW5kIG5tX3Rlc3RfdmFyIGluICRubGlzdCIgPiY1Ci0rICAgICAgZmkKLSsgICAgZWxz ZQotKyAgICAgIGVjaG8gImNhbm5vdCBydW4gJGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGUi ID4mNQotKyAgICBmaQotKyAgZWxzZQotKyAgICBlY2hvICIkcHJvZ25hbWU6IGZhaWxlZCBwcm9n cmFtIHdhczoiID4mNQotKyAgICBjYXQgY29uZnRlc3QuJGFjX2V4dCA+JjUKLSsgIGZpCi0rICBy bSAtcmYgY29uZnRlc3QqIGNvbmZ0c3QqCi0rCi0rICAjIERvIG5vdCB1c2UgdGhlIGdsb2JhbF9z eW1ib2xfcGlwZSB1bmxlc3MgaXQgd29ya3MuCi0rICBpZiB0ZXN0ICIkcGlwZV93b3JrcyIgPSB5 ZXM7IHRoZW4KLSsgICAgYnJlYWsKLSsgIGVsc2UKLSsgICAgbHRfY3Zfc3lzX2dsb2JhbF9zeW1i b2xfcGlwZT0KLSsgIGZpCi0rZG9uZQotKwotK2ZpCi0rCi0raWYgdGVzdCAteiAiJGx0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3BpcGUiOyB0aGVuCi0rICBsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90 b19jZGVjbD0KLStmaQotK2lmIHRlc3QgLXogIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF9waXBl JGx0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIjsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IGZhaWxlZCIgPiY1Ci0rJGFzX2Vj aG8gImZhaWxlZCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6IG9rIiA+JjUKLSskYXNfZWNobyAib2siID4mNjsgfQotK2Zp Ci0rCi0rIyBSZXNwb25zZSBmaWxlIHN1cHBvcnQuCi0raWYgdGVzdCAiJGx0X2N2X25tX2ludGVy ZmFjZSIgPSAiTVMgZHVtcGJpbiI7IHRoZW4KLSsgIG5tX2ZpbGVfbGlzdF9zcGVjPSdAJwotK2Vs aWYgJE5NIC0taGVscCAyPi9kZXYvbnVsbCB8IGdyZXAgJ1tAXUZJTEUnID4vZGV2L251bGw7IHRo ZW4KLSsgIG5tX2ZpbGVfbGlzdF9zcGVjPSdAJwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Ig c3lzcm9vdCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIHN5c3Jvb3QuLi4gIiA+JjY7 IH0KLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLXN5c3Jvb3Qgd2FzIGdpdmVuLgotK2lmIHRl c3QgIiR7d2l0aF9zeXNyb290K3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhf c3lzcm9vdDsKLStlbHNlCi0rICB3aXRoX3N5c3Jvb3Q9bm8KLStmaQotKwotKwotK2x0X3N5c3Jv b3Q9Ci0rY2FzZSAke3dpdGhfc3lzcm9vdH0gaW4gIygKLSsgeWVzKQotKyAgIGlmIHRlc3QgIiRH Q0MiID0geWVzOyB0aGVuCi0rICAgICBsdF9zeXNyb290PWAkQ0MgLS1wcmludC1zeXNyb290IDI+ L2Rldi9udWxsYAotKyAgIGZpCi0rICAgOzsgIygKLSsgLyopCi0rICAgbHRfc3lzcm9vdD1gZWNo byAiJHdpdGhfc3lzcm9vdCIgfCBzZWQgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotKyAgIDs7ICMo Ci0rIG5vfCcnKQotKyAgIDs7ICMoCi0rICopCi0rICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICR7d2l0aF9zeXNyb290fSIgPiY1Ci0rJGFzX2VjaG8g IiR7d2l0aF9zeXNyb290fSIgPiY2OyB9Ci0rICAgYXNfZm5fZXJyb3IgJD8gIlRoZSBzeXNyb290 IG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC4iICIkTElORU5PIiA1Ci0rICAgOzsKLStlc2FjCi0r Ci0rIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAke2x0 X3N5c3Jvb3Q6LW5vfSIgPiY1Ci0rJGFzX2VjaG8gIiR7bHRfc3lzcm9vdDotbm99IiA+JjY7IH0K LSsKLSsKLSsKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtbGlidG9vbC1sb2Nr IHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9saWJ0b29sX2xvY2src2V0fSIgPSBzZXQ7 IHRoZW4gOgotKyAgZW5hYmxldmFsPSRlbmFibGVfbGlidG9vbF9sb2NrOwotK2ZpCi0rCi0rdGVz dCAieCRlbmFibGVfbGlidG9vbF9sb2NrIiAhPSB4bm8gJiYgZW5hYmxlX2xpYnRvb2xfbG9jaz15 ZXMKLSsKLSsjIFNvbWUgZmxhZ3MgbmVlZCB0byBiZSBwcm9wYWdhdGVkIHRvIHRoZSBjb21waWxl ciBvciBsaW5rZXIgZm9yIGdvb2QKLSsjIGxpYnRvb2wgc3VwcG9ydC4KLStjYXNlICRob3N0IGlu Ci0raWE2NC0qLWhwdXgqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2UgYXJlIHVzaW5nLgot KyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIHsgeyBldmFsIGVjaG8g IlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19jb21waWxlXCIiOyB9ID4m NQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0r ICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVuCi0rICAgIGNhc2UgYC91c3IvYmluL2ZpbGUg Y29uZnRlc3QuJGFjX29iamV4dGAgaW4KLSsgICAgICAqRUxGLTMyKikKLSsJSFBVWF9JQTY0X01P REU9IjMyIgotKwk7OwotKyAgICAgICpFTEYtNjQqKQotKwlIUFVYX0lBNjRfTU9ERT0iNjQiCi0r CTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0rICA7OwotKyotKi1p cml4NiopCi0rICAjIEZpbmQgb3V0IHdoaWNoIEFCSSB3ZSBhcmUgdXNpbmcuCi0rICBlY2hvICcj bGluZSAnJExJTkVOTycgImNvbmZpZ3VyZSInID4gY29uZnRlc3QuJGFjX2V4dAotKyAgaWYgeyB7 IGV2YWwgZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFjX2NvbXBp bGVcIiI7IH0gPiY1Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/ Ci0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3Rh dHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1cyA9IDA7IH07IHRoZW4KLSsgICAgaWYgdGVzdCAi JGx0X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICAgIGNhc2UgYC91c3IvYmluL2Zp bGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KLSsJKjMyLWJpdCopCi0rCSAgTEQ9IiR7TEQtbGR9 IC1tZWxmMzJic21pcCIKLSsJICA7OwotKwkqTjMyKikKLSsJICBMRD0iJHtMRC1sZH0gLW1lbGYz MmJtaXBuMzIiCi0rCSAgOzsKLSsJKjY0LWJpdCopCi0rCSAgTEQ9IiR7TEQtbGR9IC1tZWxmNjRi bWlwIgotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZWxzZQotKyAgICAgIGNhc2UgYC91c3IvYmlu L2ZpbGUgY29uZnRlc3QuJGFjX29iamV4dGAgaW4KLSsJKjMyLWJpdCopCi0rCSAgTEQ9IiR7TEQt bGR9IC0zMiIKLSsJICA7OwotKwkqTjMyKikKLSsJICBMRD0iJHtMRC1sZH0gLW4zMiIKLSsJICA7 OwotKwkqNjQtYml0KikKLSsJICBMRD0iJHtMRC1sZH0gLTY0IgotKwkgIDs7Ci0rICAgICAgZXNh YwotKyAgICBmaQotKyAgZmkKLSsgIHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7Ci0rCi0reDg2XzY0 LSprZnJlZWJzZCotZ251fHg4Nl82NC0qbGludXgqfHBwYyotKmxpbnV4Knxwb3dlcnBjKi0qbGlu dXgqfCBcCi0rczM5MCotKmxpbnV4KnxzMzkwKi0qdHBmKnxzcGFyYyotKmxpbnV4KikKLSsgICMg RmluZCBvdXQgd2hpY2ggQUJJIHdlIGFyZSB1c2luZy4KLSsgIGVjaG8gJ2ludCBpOycgPiBjb25m dGVzdC4kYWNfZXh0Ci0rICBpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVu by0kTElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsgfSA+JjUKLSsgIChldmFsICRhY19jb21waWxl KSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsg fTsgdGhlbgotKyAgICBjYXNlIGAvdXNyL2Jpbi9maWxlIGNvbmZ0ZXN0Lm9gIGluCi0rICAgICAg KjMyLWJpdCopCi0rCWNhc2UgJGhvc3QgaW4KLSsJICB4ODZfNjQtKmtmcmVlYnNkKi1nbnUpCi0r CSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODZfZmJzZCIKLSsJICAgIDs7Ci0rCSAgeDg2XzY0 LSpsaW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX2kzODYiCi0rCSAgICA7OwotKwkg IHBwYzY0LSpsaW51eCp8cG93ZXJwYzY0LSpsaW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0g ZWxmMzJwcGNsaW51eCIKLSsJICAgIDs7Ci0rCSAgczM5MHgtKmxpbnV4KikKLSsJICAgIExEPSIk e0xELWxkfSAtbSBlbGZfczM5MCIKLSsJICAgIDs7Ci0rCSAgc3BhcmM2NC0qbGludXgqKQotKwkg ICAgTEQ9IiR7TEQtbGR9IC1tIGVsZjMyX3NwYXJjIgotKwkgICAgOzsKLSsJZXNhYwotKwk7Owot KyAgICAgICo2NC1iaXQqKQotKwljYXNlICRob3N0IGluCi0rCSAgeDg2XzY0LSprZnJlZWJzZCot Z251KQotKwkgICAgTEQ9IiR7TEQtbGR9IC1tIGVsZl94ODZfNjRfZmJzZCIKLSsJICAgIDs7Ci0r CSAgeDg2XzY0LSpsaW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmX3g4Nl82NCIKLSsJ ICAgIDs7Ci0rCSAgcHBjKi0qbGludXgqfHBvd2VycGMqLSpsaW51eCopCi0rCSAgICBMRD0iJHtM RC1sZH0gLW0gZWxmNjRwcGMiCi0rCSAgICA7OwotKwkgIHMzOTAqLSpsaW51eCp8czM5MCotKnRw ZiopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfczM5MCIKLSsJICAgIDs7Ci0rCSAgc3Bh cmMqLSpsaW51eCopCi0rCSAgICBMRD0iJHtMRC1sZH0gLW0gZWxmNjRfc3BhcmMiCi0rCSAgICA7 OwotKwllc2FjCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBybSAtcmYgY29uZnRlc3QqCi0r ICA7OwotKwotKyotKi1zY28zLjJ2NSopCi0rICAjIE9uIFNDTyBPcGVuU2VydmVyIDUsIHdlIG5l ZWQgLWJlbGYgdG8gZ2V0IGZ1bGwtZmVhdHVyZWQgYmluYXJpZXMuCi0rICBTQVZFX0NGTEFHUz0i JENGTEFHUyIKLSsgIENGTEFHUz0iJENGTEFHUyAtYmVsZiIKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21waWxlciBu ZWVkcyAtYmVsZiIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQyBjb21w aWxlciBuZWVkcyAtYmVsZi4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfY2NfbmVlZHNfYmVsZis6 fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGFjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMg JENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251 Ci0rCi0rICAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0r LyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0r ICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7 IHRoZW4gOgotKyAgbHRfY3ZfY2NfbmVlZHNfYmVsZj15ZXMKLStlbHNlCi0rICBsdF9jdl9jY19u ZWVkc19iZWxmPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNf b2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAg IGFjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ0MgLWMg JENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4k YWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251 Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJGx0X2N2X2NjX25lZWRzX2JlbGYiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfY2NfbmVlZHNf YmVsZiIgPiY2OyB9Ci0rICBpZiB0ZXN0IHgiJGx0X2N2X2NjX25lZWRzX2JlbGYiICE9IHgieWVz IjsgdGhlbgotKyAgICAjIHRoaXMgaXMgcHJvYmFibHkgZ2NjIDIuOC4wLCBlZ2NzIDEuMCBvciBu ZXdlcjsgbm8gbmVlZCBmb3IgLWJlbGYKLSsgICAgQ0ZMQUdTPSIkU0FWRV9DRkxBR1MiCi0rICBm aQotKyAgOzsKLStzcGFyYyotKnNvbGFyaXMqKQotKyAgIyBGaW5kIG91dCB3aGljaCBBQkkgd2Ug YXJlIHVzaW5nLgotKyAgZWNobyAnaW50IGk7JyA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIHsg eyBldmFsIGVjaG8gIlwiXCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19jb21w aWxlXCIiOyB9ID4mNQotKyAgKGV2YWwgJGFjX2NvbXBpbGUpIDI+JjUKLSsgIGFjX3N0YXR1cz0k PwotKyAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0 YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0dXMgPSAwOyB9OyB0aGVuCi0rICAgIGNhc2UgYC91 c3IvYmluL2ZpbGUgY29uZnRlc3Qub2AgaW4KLSsgICAgKjY0LWJpdCopCi0rICAgICAgY2FzZSAk bHRfY3ZfcHJvZ19nbnVfbGQgaW4KLSsgICAgICB5ZXMqKSBMRD0iJHtMRC1sZH0gLW0gZWxmNjRf c3BhcmMiIDs7Ci0rICAgICAgKikKLSsJaWYgJHtMRC1sZH0gLTY0IC1yIC1vIGNvbmZ0ZXN0Mi5v IGNvbmZ0ZXN0Lm8gPi9kZXYvbnVsbCAyPiYxOyB0aGVuCi0rCSAgTEQ9IiR7TEQtbGR9IC02NCIK LSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsg IHJtIC1yZiBjb25mdGVzdCoKLSsgIDs7Ci0rZXNhYwotKwotK25lZWRfbG9ja3M9IiRlbmFibGVf bGlidG9vbF9sb2NrIgotKwotK2lmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsg ICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1tdCIsIHNvIGl0 IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9w cmVmaXh9bXQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg Zm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX01BTklGRVNUX1RPT0wr On0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBpZiB0ZXN0IC1uICIkTUFOSUZFU1RfVE9PTCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfTUFOSUZF U1RfVE9PTD0iJE1BTklGRVNUX1RPT0wiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFz X2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19NQU5JRkVTVF9UT09MPSIke2FjX3Rvb2xfcHJlZml4fW10 IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25l Ci0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStNQU5JRkVTVF9UT09M PSRhY19jdl9wcm9nX01BTklGRVNUX1RPT0wKLStpZiB0ZXN0IC1uICIkTUFOSUZFU1RfVE9PTCI7 IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0 OiAkTUFOSUZFU1RfVE9PTCIgPiY1Ci0rJGFzX2VjaG8gIiRNQU5JRkVTVF9UT09MIiA+JjY7IH0K LStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsKLStmaQotK2lmIHRl c3QgLXogIiRhY19jdl9wcm9nX01BTklGRVNUX1RPT0wiOyB0aGVuCi0rICBhY19jdF9NQU5JRkVT VF9UT09MPSRNQU5JRkVTVF9UT09MCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgIm10 Iiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgbXQ7 IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX2FjX2N0X01BTklGRVNUX1RPT0wrOn0g ZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBp ZiB0ZXN0IC1uICIkYWNfY3RfTUFOSUZFU1RfVE9PTCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNf Y3RfTUFOSUZFU1RfVE9PTD0iJGFjX2N0X01BTklGRVNUX1RPT0wiICMgTGV0IHRoZSB1c2VyIG92 ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQ QVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0r ICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4g JycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rp ci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRh Y19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9NQU5JRkVTVF9UT09M PSJtdCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQg JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0r ZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfTUFO SUZFU1RfVE9PTD0kYWNfY3ZfcHJvZ19hY19jdF9NQU5JRkVTVF9UT09MCi0raWYgdGVzdCAtbiAi JGFjX2N0X01BTklGRVNUX1RPT0wiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X01BTklGRVNUX1RPT0wiID4mNQotKyRhc19l Y2hvICIkYWNfY3RfTUFOSUZFU1RfVE9PTCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAi bm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0X01BTklGRVNUX1RPT0wiID0g eDsgdGhlbgotKyAgICBNQU5JRkVTVF9UT09MPSI6IgotKyAgZWxzZQotKyAgICBjYXNlICRjcm9z c19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBw cmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjI7 fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgTUFOSUZFU1RfVE9PTD0kYWNf Y3RfTUFOSUZFU1RfVE9PTAotKyAgZmkKLStlbHNlCi0rICBNQU5JRkVTVF9UT09MPSIkYWNfY3Zf cHJvZ19NQU5JRkVTVF9UT09MIgotK2ZpCi0rCi0rdGVzdCAteiAiJE1BTklGRVNUX1RPT0wiICYm IE1BTklGRVNUX1RPT0w9bXQKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGlmICRNQU5JRkVTVF9UT09MIGlzIGEgbWFuaWZlc3QgdG9vbCIgPiY1Ci0r JGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJE1BTklGRVNUX1RPT0wgaXMgYSBtYW5pZmVzdCB0b29s Li4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9wYXRoX21haW5mZXN0X3Rvb2wrOn0gZmFsc2U7IHRo ZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wYXRo X21haW5mZXN0X3Rvb2w9bm8KLSsgIGVjaG8gIiRhc19tZTokTElORU5POiAkTUFOSUZFU1RfVE9P TCAnLT8nIiA+JjUKLSsgICRNQU5JRkVTVF9UT09MICctPycgMj5jb25mdGVzdC5lcnIgPiBjb25m dGVzdC5vdXQKLSsgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICBpZiAkR1JFUCAnTWFuaWZlc3Qg VG9vbCcgY29uZnRlc3Qub3V0ID4gL2Rldi9udWxsOyB0aGVuCi0rICAgIGx0X2N2X3BhdGhfbWFp bmZlc3RfdG9vbD15ZXMKLSsgIGZpCi0rICBybSAtZiBjb25mdGVzdCoKLStmaQotK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfcGF0aF9tYWlu ZmVzdF90b29sIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3BhdGhfbWFpbmZlc3RfdG9vbCIgPiY2 OyB9Ci0raWYgdGVzdCAieCRsdF9jdl9wYXRoX21haW5mZXN0X3Rvb2wiICE9IHh5ZXM7IHRoZW4K LSsgIE1BTklGRVNUX1RPT0w9OgotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rICBjYXNlICRob3N0 X29zIGluCi0rICAgIHJoYXBzb2R5KiB8IGRhcndpbiopCi0rICAgIGlmIHRlc3QgLW4gIiRhY190 b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190 b29sX3ByZWZpeH1kc3ltdXRpbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFy Z3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9ZHN5bXV0aWw7IGFjX3dvcmQ9JDIKLSt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNf d29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9 Ci0raWYgJHthY19jdl9wcm9nX0RTWU1VVElMKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJERTWU1VVElMIjsgdGhl bgotKyAgYWNfY3ZfcHJvZ19EU1lNVVRJTD0iJERTWU1VVElMIiAjIExldCB0aGUgdXNlciBvdmVy cmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFS QVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAg dGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcn ICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIv JGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNf ZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfRFNZTVVUSUw9IiR7YWNfdG9vbF9w cmVmaXh9ZHN5bXV0aWwiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAy Ci0rICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQot K0RTWU1VVElMPSRhY19jdl9wcm9nX0RTWU1VVElMCi0raWYgdGVzdCAtbiAiJERTWU1VVElMIjsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICREU1lNVVRJTCIgPiY1Ci0rJGFzX2VjaG8gIiREU1lNVVRJTCIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNf Y3ZfcHJvZ19EU1lNVVRJTCI7IHRoZW4KLSsgIGFjX2N0X0RTWU1VVElMPSREU1lNVVRJTAotKyAg IyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkc3ltdXRpbCIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGRzeW11dGlsOyBhY193b3JkPSQyCi0r eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFj X3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsg fQotK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9EU1lNVVRJTCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9E U1lNVVRJTCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUw9IiRhY19jdF9EU1lN VVRJTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8K LSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0r ICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwot KyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVz dF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9w cm9nX2FjX2N0X0RTWU1VVElMPSJkc3ltdXRpbCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1 Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMK LSsKLStmaQotK2ZpCi0rYWNfY3RfRFNZTVVUSUw9JGFjX2N2X3Byb2dfYWNfY3RfRFNZTVVUSUwK LStpZiB0ZXN0IC1uICIkYWNfY3RfRFNZTVVUSUwiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X0RTWU1VVElMIiA+JjUKLSsk YXNfZWNobyAiJGFjX2N0X0RTWU1VVElMIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfRFNZTVVUSUwiID0geDsgdGhl bgotKyAgICBEU1lNVVRJTD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5n OiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0 aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNy b3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29s X3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIERTWU1VVElMPSRhY19jdF9EU1lNVVRJTAotKyAg ZmkKLStlbHNlCi0rICBEU1lNVVRJTD0iJGFjX2N2X3Byb2dfRFNZTVVUSUwiCi0rZmkKLSsKLSsg ICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBm aXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJlZml4fW5tZWRpdCIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9bm1lZGl0 OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNf d29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19OTUVESVQrOn0gZmFsc2U7IHRoZW4g OgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIk Tk1FRElUIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19OTUVESVQ9IiROTUVESVQiICMgTGV0IHRoZSB1 c2VyIG92ZXJyaWRlIHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBB VEhfU0VQQVJBVE9SCi0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVf SUZTCi0rICB0ZXN0IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19l eHQgaW4gJycgJGFjX2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAi JGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19OTUVESVQ9IiR7YWNf dG9vbF9wcmVmaXh9bm1lZGl0IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJl YWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0r ZmkKLStOTUVESVQ9JGFjX2N2X3Byb2dfTk1FRElUCi0raWYgdGVzdCAtbiAiJE5NRURJVCI7IHRo ZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk Tk1FRElUIiA+JjUKLSskYXNfZWNobyAiJE5NRURJVCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNf ZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJv Z19OTUVESVQiOyB0aGVuCi0rICBhY19jdF9OTUVESVQ9JE5NRURJVAotKyAgIyBFeHRyYWN0IHRo ZSBmaXJzdCB3b3JkIG9mICJubWVkaXQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0 aCBhcmdzLgotK3NldCBkdW1teSBubWVkaXQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFz X2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9w cm9nX2FjX2N0X05NRURJVCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVk KSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRhY19jdF9OTUVESVQiOyB0aGVuCi0rICBh Y19jdl9wcm9nX2FjX2N0X05NRURJVD0iJGFjX2N0X05NRURJVCIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2FjX2N0X05NRURJVD0ibm1lZGl0 IgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25l Ci0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9OTUVESVQ9 JGFjX2N2X3Byb2dfYWNfY3RfTk1FRElUCi0raWYgdGVzdCAtbiAiJGFjX2N0X05NRURJVCI7IHRo ZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk YWNfY3RfTk1FRElUIiA+JjUKLSskYXNfZWNobyAiJGFjX2N0X05NRURJVCIgPiY2OyB9Ci0rZWxz ZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5v IiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4JGFjX2N0 X05NRURJVCIgPSB4OyB0aGVuCi0rICAgIE5NRURJVD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAk Y3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5lZCBpbgotK3llczopCi0reyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBu b3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdB Uk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIg PiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsKLStlc2FjCi0rICAgIE5NRURJVD0kYWNfY3Rf Tk1FRElUCi0rICBmaQotK2Vsc2UKLSsgIE5NRURJVD0iJGFjX2N2X3Byb2dfTk1FRElUIgotK2Zp Ci0rCi0rICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFj dCB0aGUgZmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1saXBvIiwgc28gaXQgY2FuIGJl IGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQgZHVtbXkgJHthY190b29sX3ByZWZpeH1s aXBvOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19MSVBPKzp9IGZhbHNlOyB0aGVu IDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAi JExJUE8iOyB0aGVuCi0rICBhY19jdl9wcm9nX0xJUE89IiRMSVBPIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwot KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfTElQTz0iJHthY190b29sX3By ZWZpeH1saXBvIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAg ZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLStMSVBP PSRhY19jdl9wcm9nX0xJUE8KLStpZiB0ZXN0IC1uICIkTElQTyI7IHRoZW4KLSsgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkTElQTyIgPiY1Ci0rJGFz X2VjaG8gIiRMSVBPIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0r ZmkKLSsKLSsKLStmaQotK2lmIHRlc3QgLXogIiRhY19jdl9wcm9nX0xJUE8iOyB0aGVuCi0rICBh Y19jdF9MSVBPPSRMSVBPCi0rICAjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImxpcG8iLCBz byBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBsaXBvOyBh Y193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVj a2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29y ZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9MSVBPKzp9IGZhbHNlOyB0aGVu IDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAi JGFjX2N0X0xJUE8iOyB0aGVuCi0rICBhY19jdl9wcm9nX2FjX2N0X0xJUE89IiRhY19jdF9MSVBP IiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9 JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAg SUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAg Zm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBp ZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3gg IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2df YWNfY3RfTElQTz0ibGlwbyIKLSsgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFr IDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLStmaQotK2Zp Ci0rYWNfY3RfTElQTz0kYWNfY3ZfcHJvZ19hY19jdF9MSVBPCi0raWYgdGVzdCAtbiAiJGFjX2N0 X0xJUE8iOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IHJlc3VsdDogJGFjX2N0X0xJUE8iID4mNQotKyRhc19lY2hvICIkYWNfY3RfTElQTyIgPiY2OyB9 Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rICBpZiB0ZXN0ICJ4 JGFjX2N0X0xJUE8iID0geDsgdGhlbgotKyAgICBMSVBPPSI6IgotKyAgZWxzZQotKyAgICBjYXNl ICRjcm9zc19jb21waWxpbmc6JGFjX3Rvb2xfd2FybmVkIGluCi0reWVzOikKLSt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xz IG5vdCBwcmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog V0FSTklORzogdXNpbmcgY3Jvc3MgdG9vbHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0 IiA+JjI7fQotK2FjX3Rvb2xfd2FybmVkPXllcyA7OwotK2VzYWMKLSsgICAgTElQTz0kYWNfY3Rf TElQTwotKyAgZmkKLStlbHNlCi0rICBMSVBPPSIkYWNfY3ZfcHJvZ19MSVBPIgotK2ZpCi0rCi0r ICAgIGlmIHRlc3QgLW4gIiRhY190b29sX3ByZWZpeCI7IHRoZW4KLSsgICMgRXh0cmFjdCB0aGUg Zmlyc3Qgd29yZCBvZiAiJHthY190b29sX3ByZWZpeH1vdG9vbCIsIHNvIGl0IGNhbiBiZSBhIHBy b2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15ICR7YWNfdG9vbF9wcmVmaXh9b3Rvb2w7 IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193 b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX09UT09MKzp9IGZhbHNlOyB0aGVuIDoK LSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVzdCAtbiAiJE9U T09MIjsgdGhlbgotKyAgYWNfY3ZfcHJvZ19PVE9PTD0iJE9UT09MIiAjIExldCB0aGUgdXNlciBv dmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NF UEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwotKyAgSUZTPSRhc19zYXZlX0lGUwot KyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsgICAgZm9yIGFjX2V4ZWNfZXh0IGlu ICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0rICBpZiB7IHRlc3QgLWYgIiRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQk YWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3Byb2dfT1RPT0w9IiR7YWNfdG9vbF9w cmVmaXh9b3Rvb2wiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGZvdW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0r ICBmaQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK09U T09MPSRhY19jdl9wcm9nX09UT09MCi0raWYgdGVzdCAtbiAiJE9UT09MIjsgdGhlbgotKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRPVE9PTCIgPiY1 Ci0rJGFzX2VjaG8gIiRPVE9PTCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4m NjsgfQotK2ZpCi0rCi0rCi0rZmkKLStpZiB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19PVE9PTCI7IHRo ZW4KLSsgIGFjX2N0X09UT09MPSRPVE9PTAotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9m ICJvdG9vbCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1 bW15IG90b29sOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19hY19jdF9PVE9PTCs6 fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGlmIHRlc3QgLW4gIiRhY19jdF9PVE9PTCI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfYWNfY3RfT1RP T0w9IiRhY19jdF9PVE9PTCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxz ZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGlu ICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYm IGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRl bnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0 IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgot KyAgICBhY19jdl9wcm9nX2FjX2N0X09UT09MPSJvdG9vbCIKLSsgICAgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4 dCIgPiY1Ci0rICAgIGJyZWFrIDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2 ZV9JRlMKLSsKLStmaQotK2ZpCi0rYWNfY3RfT1RPT0w9JGFjX2N2X3Byb2dfYWNfY3RfT1RPT0wK LStpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0wiOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N0X09UT09MIiA+JjUKLSskYXNfZWNo byAiJGFjX2N0X09UT09MIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9 Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNfY3RfT1RPT0wiID0geDsgdGhlbgotKyAgICBPVE9P TD0iOiIKLSsgIGVsc2UKLSsgICAgY2FzZSAkY3Jvc3NfY29tcGlsaW5nOiRhY190b29sX3dhcm5l ZCBpbgotK3llczopCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBX QVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBsZXQi ID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IHVzaW5nIGNyb3NzIHRvb2xzIG5vdCBw cmVmaXhlZCB3aXRoIGhvc3QgdHJpcGxldCIgPiYyO30KLSthY190b29sX3dhcm5lZD15ZXMgOzsK LStlc2FjCi0rICAgIE9UT09MPSRhY19jdF9PVE9PTAotKyAgZmkKLStlbHNlCi0rICBPVE9PTD0i JGFjX2N2X3Byb2dfT1RPT0wiCi0rZmkKLSsKLSsgICAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJl Zml4IjsgdGhlbgotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICIke2FjX3Rvb2xfcHJl Zml4fW90b29sNjQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3Nl dCBkdW1teSAke2FjX3Rvb2xfcHJlZml4fW90b29sNjQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHth Y19jdl9wcm9nX09UT09MNjQrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hl ZCkgIiA+JjYKLStlbHNlCi0rICBpZiB0ZXN0IC1uICIkT1RPT0w2NCI7IHRoZW4KLSsgIGFjX2N2 X3Byb2dfT1RPT0w2ND0iJE9UT09MNjQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRlIHRoZSB0ZXN0 LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rZm9yIGFz X2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0IC16ICIkYXNf ZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFjX2V4ZWN1dGFi bGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNfd29yZCRhY19l eGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCI7IH07 IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19PVE9PTDY0PSIke2FjX3Rvb2xfcHJlZml4fW90b29sNjQi Ci0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUK LSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rZmkKLStmaQotK09UT09MNjQ9JGFjX2N2 X3Byb2dfT1RPT0w2NAotK2lmIHRlc3QgLW4gIiRPVE9PTDY0IjsgdGhlbgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRPVE9PTDY0IiA+JjUKLSsk YXNfZWNobyAiJE9UT09MNjQiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7 IH0KLStmaQotKwotKwotK2ZpCi0raWYgdGVzdCAteiAiJGFjX2N2X3Byb2dfT1RPT0w2NCI7IHRo ZW4KLSsgIGFjX2N0X09UT09MNjQ9JE9UT09MNjQKLSsgICMgRXh0cmFjdCB0aGUgZmlyc3Qgd29y ZCBvZiAib3Rvb2w2NCIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0r c2V0IGR1bW15IG90b29sNjQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX2FjX2N0 X09UT09MNjQrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYK LStlbHNlCi0rICBpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0w2NCI7IHRoZW4KLSsgIGFjX2N2X3By b2dfYWNfY3RfT1RPT0w2ND0iJGFjX2N0X09UT09MNjQiICMgTGV0IHRoZSB1c2VyIG92ZXJyaWRl IHRoZSB0ZXN0LgotK2Vsc2UKLSthc19zYXZlX0lGUz0kSUZTOyBJRlM9JFBBVEhfU0VQQVJBVE9S Ci0rZm9yIGFzX2RpciBpbiAkUEFUSAotK2RvCi0rICBJRlM9JGFzX3NhdmVfSUZTCi0rICB0ZXN0 IC16ICIkYXNfZGlyIiAmJiBhc19kaXI9LgotKyAgICBmb3IgYWNfZXhlY19leHQgaW4gJycgJGFj X2V4ZWN1dGFibGVfZXh0ZW5zaW9uczsgZG8KLSsgIGlmIHsgdGVzdCAtZiAiJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIgJiYgJGFzX3Rlc3RfeCAiJGFzX2Rpci8kYWNfd29yZCRhY19leGVj X2V4dCI7IH07IHRoZW4KLSsgICAgYWNfY3ZfcHJvZ19hY19jdF9PVE9PTDY0PSJvdG9vbDY0Igot KyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBmb3VuZCAkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAgZmkKLStkb25lCi0r ICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotK2ZpCi0rZmkKLSthY19jdF9PVE9PTDY0PSRh Y19jdl9wcm9nX2FjX2N0X09UT09MNjQKLStpZiB0ZXN0IC1uICIkYWNfY3RfT1RPT0w2NCI7IHRo ZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAk YWNfY3RfT1RPT0w2NCIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdF9PVE9PTDY0IiA+JjY7IH0KLStl bHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog bm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSsKLSsgIGlmIHRlc3QgIngkYWNf Y3RfT1RPT0w2NCIgPSB4OyB0aGVuCi0rICAgIE9UT09MNjQ9IjoiCi0rICBlbHNlCi0rICAgIGNh c2UgJGNyb3NzX2NvbXBpbGluZzokYWNfdG9vbF93YXJuZWQgaW4KLSt5ZXM6KQotK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdXNpbmcgY3Jvc3MgdG9v bHMgbm90IHByZWZpeGVkIHdpdGggaG9zdCB0cmlwbGV0IiA+JjUKLSskYXNfZWNobyAiJGFzX21l OiBXQVJOSU5HOiB1c2luZyBjcm9zcyB0b29scyBub3QgcHJlZml4ZWQgd2l0aCBob3N0IHRyaXBs ZXQiID4mMjt9Ci0rYWNfdG9vbF93YXJuZWQ9eWVzIDs7Ci0rZXNhYwotKyAgICBPVE9PTDY0PSRh Y19jdF9PVE9PTDY0Ci0rICBmaQotK2Vsc2UKLSsgIE9UT09MNjQ9IiRhY19jdl9wcm9nX09UT09M NjQiCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICAgeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgLXNpbmdsZV9tb2R1bGUgbGlua2Vy IGZsYWciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAtc2luZ2xlX21vZHVsZSBsaW5r ZXIgZmxhZy4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCs6fSBm YWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0 X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Q9bm8KLSsgICAgICBpZiB0ZXN0IC16ICIke0xUX01VTFRJ X01PRFVMRX0iOyB0aGVuCi0rCSMgQnkgZGVmYXVsdCB3ZSB3aWxsIGFkZCB0aGUgLXNpbmdsZV9t b2R1bGUgZmxhZy4gWW91IGNhbiBvdmVycmlkZQotKwkjIGJ5IGVpdGhlciBzZXR0aW5nIHRoZSBl bnZpcm9ubWVudCB2YXJpYWJsZSBMVF9NVUxUSV9NT0RVTEUKLSsJIyBub24tZW1wdHkgYXQgY29u ZmlndXJlIHRpbWUsIG9yIGJ5IGFkZGluZyAtbXVsdGlfbW9kdWxlIHRvIHRoZQotKwkjIGxpbmsg ZmxhZ3MuCi0rCXJtIC1yZiBsaWJjb25mdGVzdC5keWxpYioKLSsJZWNobyAiaW50IGZvbyh2b2lk KXtyZXR1cm4gMTt9IiA+IGNvbmZ0ZXN0LmMKLSsJZWNobyAiJExUQ0MgJExUQ0ZMQUdTICRMREZM QUdTIC1vIGxpYmNvbmZ0ZXN0LmR5bGliIFwKLSstZHluYW1pY2xpYiAtV2wsLXNpbmdsZV9tb2R1 bGUgY29uZnRlc3QuYyIgPiY1Ci0rCSRMVENDICRMVENGTEFHUyAkTERGTEFHUyAtbyBsaWJjb25m dGVzdC5keWxpYiBcCi0rCSAgLWR5bmFtaWNsaWIgLVdsLC1zaW5nbGVfbW9kdWxlIGNvbmZ0ZXN0 LmMgMj5jb25mdGVzdC5lcnIKLSsgICAgICAgIF9sdF9yZXN1bHQ9JD8KLSsJaWYgdGVzdCAtZiBs aWJjb25mdGVzdC5keWxpYiAmJiB0ZXN0ICEgLXMgY29uZnRlc3QuZXJyICYmIHRlc3QgJF9sdF9y ZXN1bHQgPSAwOyB0aGVuCi0rCSAgbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZD15ZXMKLSsJZWxz ZQotKwkgIGNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rCWZpCi0rCXJtIC1yZiBsaWJjb25mdGVzdC5k eWxpYioKLSsJcm0gLWYgY29uZnRlc3QuKgotKyAgICAgIGZpCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X2FwcGxlX2NjX3Npbmds ZV9tb2QiID4mNQotKyRhc19lY2hvICIkbHRfY3ZfYXBwbGVfY2Nfc2luZ2xlX21vZCIgPiY2OyB9 Ci0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yIC1leHBvcnRlZF9zeW1ib2xzX2xpc3QgbGlua2VyIGZsYWciID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciAtZXhwb3J0ZWRfc3ltYm9sc19saXN0IGxpbmtlciBmbGFnLi4uICIgPiY2 OyB9Ci0raWYgJHtsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3QrOn0gZmFsc2U7IHRoZW4g OgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9sZF9leHBv cnRlZF9zeW1ib2xzX2xpc3Q9bm8KLSsgICAgICBzYXZlX0xERkxBR1M9JExERkxBR1MKLSsgICAg ICBlY2hvICJfbWFpbiIgPiBjb25mdGVzdC5zeW0KLSsgICAgICBMREZMQUdTPSIkTERGTEFHUyAt V2wsLWV4cG9ydGVkX3N5bWJvbHNfbGlzdCxjb25mdGVzdC5zeW0iCi0rICAgICAgY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGx0X2N2X2xk X2V4cG9ydGVkX3N5bWJvbHNfbGlzdD15ZXMKLStlbHNlCi0rICBsdF9jdl9sZF9leHBvcnRlZF9z eW1ib2xzX2xpc3Q9bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotKwlM REZMQUdTPSIkc2F2ZV9MREZMQUdTIgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9sZF9leHBvcnRlZF9zeW1ib2xzX2xpc3Qi ID4mNQotKyRhc19lY2hvICIkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0IiA+JjY7IH0K LSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBm b3IgLWZvcmNlX2xvYWQgbGlua2VyIGZsYWciID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZv ciAtZm9yY2VfbG9hZCBsaW5rZXIgZmxhZy4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfbGRfZm9y Y2VfbG9hZCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGx0X2N2X2xkX2ZvcmNlX2xvYWQ9bm8KLSsgICAgICBjYXQgPiBjb25mdGVzdC5j IDw8IF9MVF9FT0YKLStpbnQgZm9yY2VkX2xvYWRlZCgpIHsgcmV0dXJuIDI7fQotK19MVF9FT0YK LSsgICAgICBlY2hvICIkTFRDQyAkTFRDRkxBR1MgLWMgLW8gY29uZnRlc3QubyBjb25mdGVzdC5j IiA+JjUKLSsgICAgICAkTFRDQyAkTFRDRkxBR1MgLWMgLW8gY29uZnRlc3QubyBjb25mdGVzdC5j IDI+JjUKLSsgICAgICBlY2hvICIkQVIgY3J1IGxpYmNvbmZ0ZXN0LmEgY29uZnRlc3QubyIgPiY1 Ci0rICAgICAgJEFSIGNydSBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0Lm8gMj4mNQotKyAgICAgIGVj aG8gIiRSQU5MSUIgbGliY29uZnRlc3QuYSIgPiY1Ci0rICAgICAgJFJBTkxJQiBsaWJjb25mdGVz dC5hIDI+JjUKLSsgICAgICBjYXQgPiBjb25mdGVzdC5jIDw8IF9MVF9FT0YKLStpbnQgbWFpbigp IHsgcmV0dXJuIDA7fQotK19MVF9FT0YKLSsgICAgICBlY2hvICIkTFRDQyAkTFRDRkxBR1MgJExE RkxBR1MgLW8gY29uZnRlc3QgY29uZnRlc3QuYyAtV2wsLWZvcmNlX2xvYWQsLi9saWJjb25mdGVz dC5hIiA+JjUKLSsgICAgICAkTFRDQyAkTFRDRkxBR1MgJExERkxBR1MgLW8gY29uZnRlc3QgY29u ZnRlc3QuYyAtV2wsLWZvcmNlX2xvYWQsLi9saWJjb25mdGVzdC5hIDI+Y29uZnRlc3QuZXJyCi0r ICAgICAgX2x0X3Jlc3VsdD0kPwotKyAgICAgIGlmIHRlc3QgLWYgY29uZnRlc3QgJiYgdGVzdCAh IC1zIGNvbmZ0ZXN0LmVyciAmJiB0ZXN0ICRfbHRfcmVzdWx0ID0gMCAmJiAkR1JFUCBmb3JjZWRf bG9hZCBjb25mdGVzdCAyPiYxID4vZGV2L251bGw7IHRoZW4KLSsJbHRfY3ZfbGRfZm9yY2VfbG9h ZD15ZXMKLSsgICAgICBlbHNlCi0rCWNhdCBjb25mdGVzdC5lcnIgPiY1Ci0rICAgICAgZmkKLSsg ICAgICAgIHJtIC1mIGNvbmZ0ZXN0LmVyciBsaWJjb25mdGVzdC5hIGNvbmZ0ZXN0IGNvbmZ0ZXN0 LmMKLSsgICAgICAgIHJtIC1yZiBjb25mdGVzdC5kU1lNCi0rCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X2xkX2ZvcmNlX2xvYWQi ID4mNQotKyRhc19lY2hvICIkbHRfY3ZfbGRfZm9yY2VfbG9hZCIgPiY2OyB9Ci0rICAgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgICAgcmhhcHNvZHkqIHwgZGFyd2luMS5bMDEyXSkKLSsgICAgICBfbHRf ZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0r ICAgIGRhcndpbjEuKikKLSsgICAgICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tZmxh dF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVkICR7d2x9c3VwcHJlc3MnIDs7Ci0rICAgIGRhcndp biopICMgZGFyd2luIDUueCBvbgotKyAgICAgICMgaWYgcnVubmluZyBvbiAxMC41IG9yIGxhdGVy LCB0aGUgZGVwbG95bWVudCB0YXJnZXQgZGVmYXVsdHMKLSsgICAgICAjIHRvIHRoZSBPUyB2ZXJz aW9uLCBpZiBvbiB4ODYsIGFuZCAxMC40LCB0aGUgZGVwbG95bWVudAotKyAgICAgICMgdGFyZ2V0 IGRlZmF1bHRzIHRvIDEwLjQuIERvbid0IHlvdSBsb3ZlIGl0PwotKyAgICAgIGNhc2UgJHtNQUNP U1hfREVQTE9ZTUVOVF9UQVJHRVQtMTAuMH0sJGhvc3QgaW4KLSsJMTAuMCwqODYqLWRhcndpbjgq fDEwLjAsKi1kYXJ3aW5bOTFdKikKLSsJICBfbHRfZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0t dW5kZWZpbmVkICR7d2x9ZHluYW1pY19sb29rdXAnIDs7Ci0rCTEwLlswMTJdKikKLSsJICBfbHRf ZGFyX2FsbG93X3VuZGVmaW5lZD0nJHt3bH0tZmxhdF9uYW1lc3BhY2UgJHt3bH0tdW5kZWZpbmVk ICR7d2x9c3VwcHJlc3MnIDs7Ci0rCTEwLiopCi0rCSAgX2x0X2Rhcl9hbGxvd191bmRlZmluZWQ9 JyR7d2x9LXVuZGVmaW5lZCAke3dsfWR5bmFtaWNfbG9va3VwJyA7OwotKyAgICAgIGVzYWMKLSsg ICAgOzsKLSsgIGVzYWMKLSsgICAgaWYgdGVzdCAiJGx0X2N2X2FwcGxlX2NjX3NpbmdsZV9tb2Qi ID0gInllcyI7IHRoZW4KLSsgICAgICBfbHRfZGFyX3NpbmdsZV9tb2Q9JyRzaW5nbGVfbW9kdWxl JwotKyAgICBmaQotKyAgICBpZiB0ZXN0ICIkbHRfY3ZfbGRfZXhwb3J0ZWRfc3ltYm9sc19saXN0 IiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nICR7d2x9LWV4cG9y dGVkX3N5bWJvbHNfbGlzdCwkb3V0cHV0X29iamRpci8ke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3lt JwotKyAgICBlbHNlCi0rICAgICAgX2x0X2Rhcl9leHBvcnRfc3ltcz0nfiROTUVESVQgLXMgJG91 dHB1dF9vYmpkaXIvJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bSAke2xpYn0nCi0rICAgIGZpCi0r ICAgIGlmIHRlc3QgIiREU1lNVVRJTCIgIT0gIjoiICYmIHRlc3QgIiRsdF9jdl9sZF9mb3JjZV9s b2FkIiA9ICJubyI7IHRoZW4KLSsgICAgICBfbHRfZHN5bXV0aWw9J34kRFNZTVVUSUwgJGxpYiB8 fCA6JwotKyAgICBlbHNlCi0rICAgICAgX2x0X2RzeW11dGlsPQotKyAgICBmaQotKyAgICA7Owot KyAgZXNhYwotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBGTEFHUycKLSthY19jb21w aWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNf bGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRDUFBGTEFHUyAkTERGTEFH UyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2Nf Y29tcGlsZXJfZ251Ci0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBob3cgdG8gcnVuIHRoZSBDIHByZXByb2Nlc3NvciIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQyBwcmVwcm9jZXNzb3IuLi4gIiA+JjY7IH0KLSsjIE9u IFN1bnMsIHNvbWV0aW1lcyAkQ1BQIG5hbWVzIGEgZGlyZWN0b3J5LgotK2lmIHRlc3QgLW4gIiRD UFAiICYmIHRlc3QgLWQgIiRDUFAiOyB0aGVuCi0rICBDUFA9Ci0rZmkKLStpZiB0ZXN0IC16ICIk Q1BQIjsgdGhlbgotKyAgaWYgJHthY19jdl9wcm9nX0NQUCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgICAgICAjIERvdWJsZSBxdW90ZXMg YmVjYXVzZSBDUFAgbmVlZHMgdG8gYmUgZXhwYW5kZWQKLSsgICAgZm9yIENQUCBpbiAiJENDIC1F IiAiJENDIC1FIC10cmFkaXRpb25hbC1jcHAiICIvbGliL2NwcCIKLSsgICAgZG8KLSsgICAgICBh Y19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFjX2NfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVz Ci0rZG8KLSsgICMgVXNlIGEgaGVhZGVyIGZpbGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29u ZmlndXJpbmcgZ2xpYmMKLSsgICMgd2l0aCBhIGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgot KyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmlu ZWQsIHNpbmNlCi0rICAjIDxsaW1pdHMuaD4gZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNv bXBpbGVycy4KLSsgICMgT24gdGhlIE5lWFQsIGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0 aGUgY29tcGlsZXIncyBwYXJzZXIsCi0rICAjIG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4 IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRoaXMgY2FzZS4KLSsgIGNhdCBjb25mZGVmcy5oIC0g PDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2lm ZGVmIF9fU1REQ19fCi0rIyBpbmNsdWRlIDxsaW1pdHMuaD4KLSsjZWxzZQotKyMgaW5jbHVkZSA8 YXNzZXJ0Lmg+Ci0rI2VuZGlmCi0rCQkgICAgIFN5bnRheCBlcnJvcgotK19BQ0VPRgotK2lmIGFj X2ZuX2NfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgotKwotK2Vsc2UKLSsgICMgQnJva2VuOiBm YWlscyBvbiB2YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2ZpCi0rcm0gLWYgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LmkgY29uZnRlc3QuJGFjX2V4dAotKwotKyAgIyBPSywgd29ya3Mgb24gc2FuZSBj YXNlcy4gIE5vdyBjaGVjayB3aGV0aGVyIG5vbmV4aXN0ZW50IGhlYWRlcnMKLSsgICMgY2FuIGJl IGRldGVjdGVkIGFuZCBob3cuCi0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz dC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxhY19ub25leGlz dGVudC5oPgotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgot KyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxpZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UK LSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0rYWNfcHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQot K3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC5pIGNvbmZ0ZXN0LiRhY19leHQKLSsKLStkb25l Ci0rIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19QUkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNv ZGUgd2FzIHNraXBwZWQuCi0rcm0gLWYgY29uZnRlc3QuaSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29rOyB0aGVuIDoKLSsgIGJyZWFrCi0rZmkKLSsKLSsg ICAgZG9uZQotKyAgICBhY19jdl9wcm9nX0NQUD0kQ1BQCi0rCi0rZmkKLSsgIENQUD0kYWNfY3Zf cHJvZ19DUFAKLStlbHNlCi0rICBhY19jdl9wcm9nX0NQUD0kQ1BQCi0rZmkKLSt7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJENQUCIgPiY1Ci0rJGFzX2Vj aG8gIiRDUFAiID4mNjsgfQotK2FjX3ByZXByb2Nfb2s9ZmFsc2UKLStmb3IgYWNfY19wcmVwcm9j X3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0IGNv bWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJlc2ggY3Jv c3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQuaD4g aWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlzdHMgZXZl biBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUgcnVu cyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90IGp1c3Qg dGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNlLgot KyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBj b25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5oPgot KyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsJCSAgICAgU3ludGF4IGVy cm9yCi0rX0FDRU9GCi0raWYgYWNfZm5fY190cnlfY3BwICIkTElORU5PIjsgdGhlbiA6Ci0rCi0r ZWxzZQotKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgotK2NvbnRpbnVlCi0rZmkK LStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuaSBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rICAj IE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIgbm9uZXhpc3RlbnQg aGVhZGVycwotKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KLSsgIGNhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0r I2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0raWYgYWNfZm5fY190cnlfY3Bw ICIkTElORU5PIjsgdGhlbiA6Ci0rICAjIEJyb2tlbjogc3VjY2VzcyBvbiBpbnZhbGlkIGlucHV0 LgotK2NvbnRpbnVlCi0rZWxzZQotKyAgIyBQYXNzZXMgYm90aCB0ZXN0cy4KLSthY19wcmVwcm9j X29rPToKLSticmVhawotK2ZpCi0rcm0gLWYgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LmkgY29uZnRl c3QuJGFjX2V4dAotKwotK2RvbmUKLSsjIEJlY2F1c2Ugb2YgYGJyZWFrJywgX0FDX1BSRVBST0Nf SUZFTFNFJ3MgY2xlYW5pbmcgY29kZSB3YXMgc2tpcHBlZC4KLStybSAtZiBjb25mdGVzdC5pIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfZXh0Ci0raWYgJGFjX3ByZXByb2Nfb2s7IHRoZW4gOgot KwotK2Vsc2UKLSsgIHsgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBl cnJvcjogaW4gXGAkYWNfcHdkJzoiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IGVycm9yOiBpbiBc YCRhY19wd2QnOiIgPiYyO30KLSthc19mbl9lcnJvciAkPyAiQyBwcmVwcm9jZXNzb3IgXCIkQ1BQ XCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0rU2VlIFxgY29uZmlnLmxvZycgZm9yIG1vcmUgZGV0YWls cyIgIiRMSU5FTk8iIDU7IH0KLStmaQotKwotK2FjX2V4dD1jCi0rYWNfY3BwPSckQ1BQICRDUFBG TEFHUycKLSthY19jb21waWxlPSckQ0MgLWMgJENGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCi0rYWNfbGluaz0nJENDIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ0ZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxl cl9nbnU9JGFjX2N2X2NfY29tcGlsZXJfZ251Ci0rCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcyIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIEFOU0kgQyBoZWFkZXIgZmlsZXMuLi4gIiA+JjY7 IH0KLStpZiAke2FjX2N2X2hlYWRlcl9zdGRjKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hv X24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3Rk bGliLmg+Ci0rI2luY2x1ZGUgPHN0ZGFyZy5oPgotKyNpbmNsdWRlIDxzdHJpbmcuaD4KLSsjaW5j bHVkZSA8ZmxvYXQuaD4KLSsKLStpbnQKLSttYWluICgpCi0rewotKwotKyAgOwotKyAgcmV0dXJu IDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVu IDoKLSsgIGFjX2N2X2hlYWRlcl9zdGRjPXllcwotK2Vsc2UKLSsgIGFjX2N2X2hlYWRlcl9zdGRj PW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNv bmZ0ZXN0LiRhY19leHQKLSsKLStpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsgdGhl bgotKyAgIyBTdW5PUyA0Lnggc3RyaW5nLmggZG9lcyBub3QgZGVjbGFyZSBtZW0qLCBjb250cmFy eSB0byBBTlNJLgotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4 dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8c3RyaW5nLmg+Ci0rCi0rX0FD RU9GCi0raWYgKGV2YWwgIiRhY19jcHAgY29uZnRlc3QuJGFjX2V4dCIpIDI+JjUgfAotKyAgJEVH UkVQICJtZW1jaHIiID4vZGV2L251bGwgMj4mMTsgdGhlbiA6Ci0rCi0rZWxzZQotKyAgYWNfY3Zf aGVhZGVyX3N0ZGM9bm8KLStmaQotK3JtIC1mIGNvbmZ0ZXN0KgotKwotK2ZpCi0rCi0raWYgdGVz dCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsgICMgSVNDIDIuMC4yIHN0ZGxpYi5o IGRvZXMgbm90IGRlY2xhcmUgZnJlZSwgY29udHJhcnkgdG8gQU5TSS4KLSsgIGNhdCBjb25mZGVm cy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICov Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKwotK19BQ0VPRgotK2lmIChldmFsICIkYWNfY3BwIGNv bmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSsgICRFR1JFUCAiZnJlZSIgPi9kZXYvbnVsbCAyPiYx OyB0aGVuIDoKLSsKLStlbHNlCi0rICBhY19jdl9oZWFkZXJfc3RkYz1ubwotK2ZpCi0rcm0gLWYg Y29uZnRlc3QqCi0rCi0rZmkKLSsKLStpZiB0ZXN0ICRhY19jdl9oZWFkZXJfc3RkYyA9IHllczsg dGhlbgotKyAgIyAvYmluL2NjIGluIElyaXgtNC4wLjUgZ2V0cyBub24tQU5TSSBjdHlwZSBtYWNy b3MgdW5sZXNzIHVzaW5nIC1hbnNpLgotKyAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5 ZXM7IHRoZW4gOgotKyAgOgotK2Vsc2UKLSsgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNv bmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGN0eXBl Lmg+Ci0rI2luY2x1ZGUgPHN0ZGxpYi5oPgotKyNpZiAoKCcgJyAmIDB4MEZGKSA9PSAweDAyMCkK LSsjIGRlZmluZSBJU0xPV0VSKGMpICgnYScgPD0gKGMpICYmIChjKSA8PSAneicpCi0rIyBkZWZp bmUgVE9VUFBFUihjKSAoSVNMT1dFUihjKSA/ICdBJyArICgoYykgLSAnYScpIDogKGMpKQotKyNl bHNlCi0rIyBkZWZpbmUgSVNMT1dFUihjKSBcCi0rCQkgICAoKCdhJyA8PSAoYykgJiYgKGMpIDw9 ICdpJykgXAotKwkJICAgICB8fCAoJ2onIDw9IChjKSAmJiAoYykgPD0gJ3InKSBcCi0rCQkgICAg IHx8ICgncycgPD0gKGMpICYmIChjKSA8PSAneicpKQotKyMgZGVmaW5lIFRPVVBQRVIoYykgKElT TE9XRVIoYykgPyAoKGMpIHwgMHg0MCkgOiAoYykpCi0rI2VuZGlmCi0rCi0rI2RlZmluZSBYT1Io ZSwgZikgKCgoZSkgJiYgIShmKSkgfHwgKCEoZSkgJiYgKGYpKSkKLStpbnQKLSttYWluICgpCi0r ewotKyAgaW50IGk7Ci0rICBmb3IgKGkgPSAwOyBpIDwgMjU2OyBpKyspCi0rICAgIGlmIChYT1Ig KGlzbG93ZXIgKGkpLCBJU0xPV0VSIChpKSkKLSsJfHwgdG91cHBlciAoaSkgIT0gVE9VUFBFUiAo aSkpCi0rICAgICAgcmV0dXJuIDI7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNf Zm5fY190cnlfcnVuICIkTElORU5PIjsgdGhlbiA6Ci0rCi0rZWxzZQotKyAgYWNfY3ZfaGVhZGVy X3N0ZGM9bm8KLStmaQotK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91 dCBiYi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKLSsgIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QuYmVhbSBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSsKLStmaQotK2ZpCi0reyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3Rk YyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfc3RkYyIgPiY2OyB9Ci0raWYgdGVzdCAk YWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsKLSskYXNfZWNobyAiI2RlZmluZSBTVERD X0hFQURFUlMgMSIgPj5jb25mZGVmcy5oCi0rCi0rZmkKLSsKLSsjIE9uIElSSVggNS4zLCBzeXMv dHlwZXMgYW5kIGludHR5cGVzLmggYXJlIGNvbmZsaWN0aW5nLgotK2ZvciBhY19oZWFkZXIgaW4g c3lzL3R5cGVzLmggc3lzL3N0YXQuaCBzdGRsaWIuaCBzdHJpbmcuaCBtZW1vcnkuaCBzdHJpbmdz LmggXAotKwkJICBpbnR0eXBlcy5oIHN0ZGludC5oIHVuaXN0ZC5oCi0rZG8gOgotKyAgYXNfYWNf SGVhZGVyPWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFzX3RyX3NoYAot K2FjX2ZuX2NfY2hlY2tfaGVhZGVyX2NvbXBpbGUgIiRMSU5FTk8iICIkYWNfaGVhZGVyIiAiJGFz X2FjX0hlYWRlciIgIiRhY19pbmNsdWRlc19kZWZhdWx0Ci0rIgotK2lmIGV2YWwgdGVzdCBcInhc JCIkYXNfYWNfSGVhZGVyIlwiID0geCJ5ZXMiOyB0aGVuIDoKLSsgIGNhdCA+PmNvbmZkZWZzLmgg PDxfQUNFT0YKLSsjZGVmaW5lIGAkYXNfZWNobyAiSEFWRV8kYWNfaGVhZGVyIiB8ICRhc190cl9j cHBgIDEKLStfQUNFT0YKLSsKLStmaQotKwotK2RvbmUKLSsKLSsKLStmb3IgYWNfaGVhZGVyIGlu IGRsZmNuLmgKLStkbyA6Ci0rICBhY19mbl9jX2NoZWNrX2hlYWRlcl9jb21waWxlICIkTElORU5P IiAiZGxmY24uaCIgImFjX2N2X2hlYWRlcl9kbGZjbl9oIiAiJGFjX2luY2x1ZGVzX2RlZmF1bHQK LSsiCi0raWYgdGVzdCAieCRhY19jdl9oZWFkZXJfZGxmY25faCIgPSB4eWVzOyB0aGVuIDoKLSsg IGNhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YKLSsjZGVmaW5lIEhBVkVfRExGQ05fSCAxCi0rX0FD RU9GCi0rCi0rZmkKLSsKLStkb25lCi0rCi0rCi0rCi0rZnVuY19zdHJpcG5hbWVfY25mICgpCi0r ewotKyAgY2FzZSAkezJ9IGluCi0rICAuKikgZnVuY19zdHJpcG5hbWVfcmVzdWx0PWAkRUNITyAi JHszfSIgfCAkU0VEICJzJV4kezF9JSU7IHMlXFxcXCR7Mn1cJCUlImA7OwotKyAgKikgIGZ1bmNf c3RyaXBuYW1lX3Jlc3VsdD1gJEVDSE8gIiR7M30iIHwgJFNFRCAicyVeJHsxfSUlOyBzJSR7Mn1c JCUlImA7OwotKyAgZXNhYwotK30gIyBmdW5jX3N0cmlwbmFtZV9jbmYKLSsKLSsKLSsKLSsKLSsK LSsjIFNldCBvcHRpb25zCi0rCi0rCi0rCi0rICAgICAgICBlbmFibGVfZGxvcGVuPW5vCi0rCi0r Ci0rICBlbmFibGVfd2luMzJfZGxsPW5vCi0rCi0rCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVy IC0td2l0aC1waWMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9waWMrc2V0fSIgPSBzZXQ7 IHRoZW4gOgotKyAgd2l0aHZhbD0kd2l0aF9waWM7IHBpY19tb2RlPSIkd2l0aHZhbCIKLStlbHNl Ci0rICBwaWNfbW9kZT1kZWZhdWx0Ci0rZmkKLSsKLSsKLSt0ZXN0IC16ICIkcGljX21vZGUiICYm IHBpY19tb2RlPWRlZmF1bHQKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgICMgQ2hlY2sgd2hldGhl ciAtLWVuYWJsZS1mYXN0LWluc3RhbGwgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2Zh c3RfaW5zdGFsbCtzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICBlbmFibGV2YWw9JGVuYWJsZV9mYXN0 X2luc3RhbGw7IHA9JHtQQUNLQUdFLWRlZmF1bHR9Ci0rICAgIGNhc2UgJGVuYWJsZXZhbCBpbgot KyAgICB5ZXMpIGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzIDs7Ci0rICAgIG5vKSBlbmFibGVfZmFz dF9pbnN0YWxsPW5vIDs7Ci0rICAgICopCi0rICAgICAgZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwot KyAgICAgICMgTG9vayBhdCB0aGUgYXJndW1lbnQgd2UgZ290LiAgV2UgdXNlIGFsbCB0aGUgY29t bW9uIGxpc3Qgc2VwYXJhdG9ycy4KLSsgICAgICBsdF9zYXZlX2lmcz0iJElGUyI7IElGUz0iJHtJ RlN9JFBBVEhfU0VQQVJBVE9SLCIKLSsgICAgICBmb3IgcGtnIGluICRlbmFibGV2YWw7IGRvCi0r CUlGUz0iJGx0X3NhdmVfaWZzIgotKwlpZiB0ZXN0ICJYJHBrZyIgPSAiWCRwIjsgdGhlbgotKwkg IGVuYWJsZV9mYXN0X2luc3RhbGw9eWVzCi0rCWZpCi0rICAgICAgZG9uZQotKyAgICAgIElGUz0i JGx0X3NhdmVfaWZzIgotKyAgICAgIDs7Ci0rICAgIGVzYWMKLStlbHNlCi0rICBlbmFibGVfZmFz dF9pbnN0YWxsPXllcwotK2ZpCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIyBU aGlzIGNhbiBiZSB1c2VkIHRvIHJlYnVpbGQgbGlidG9vbCB3aGVuIG5lZWRlZAotK0xJQlRPT0xf REVQUz0iJGx0bWFpbiIKLSsKLSsjIEFsd2F5cyB1c2Ugb3VyIG93biBsaWJ0b29sLgotK0xJQlRP T0w9JyQoU0hFTEwpICQodG9wX2J1aWxkZGlyKS9saWJ0b29sJwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotK3Rlc3QgLXogIiRMTl9TIiAmJiBMTl9TPSJsbiAtcyIKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLStpZiB0ZXN0IC1uICIke1pTSF9WRVJTSU9OK3NldH0iIDsg dGhlbgotKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZmkKLSsKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBvYmpkaXIiID4mNQotKyRhc19l Y2hvX24gImNoZWNraW5nIGZvciBvYmpkaXIuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X29iamRp cis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UK LSsgIHJtIC1mIC5saWJzIDI+L2Rldi9udWxsCi0rbWtkaXIgLmxpYnMgMj4vZGV2L251bGwKLStp ZiB0ZXN0IC1kIC5saWJzOyB0aGVuCi0rICBsdF9jdl9vYmpkaXI9LmxpYnMKLStlbHNlCi0rICAj IE1TLURPUyBkb2VzIG5vdCBhbGxvdyBmaWxlbmFtZXMgdGhhdCBiZWdpbiB3aXRoIGEgZG90Lgot KyAgbHRfY3Zfb2JqZGlyPV9saWJzCi0rZmkKLStybWRpciAubGlicyAyPi9kZXYvbnVsbAotK2Zp Ci0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9j dl9vYmpkaXIiID4mNQotKyRhc19lY2hvICIkbHRfY3Zfb2JqZGlyIiA+JjY7IH0KLStvYmpkaXI9 JGx0X2N2X29iamRpcgotKwotKwotKwotKwotKwotK2NhdCA+PmNvbmZkZWZzLmggPDxfQUNFT0YK LSsjZGVmaW5lIExUX09CSkRJUiAiJGx0X2N2X29iamRpci8iCi0rX0FDRU9GCi0rCi0rCi0rCi0r Ci0rY2FzZSAkaG9zdF9vcyBpbgotK2FpeDMqKQotKyAgIyBBSVggc29tZXRpbWVzIGhhcyBwcm9i bGVtcyB3aXRoIHRoZSBHQ0MgY29sbGVjdDIgcHJvZ3JhbS4gIEZvciBzb21lCi0rICAjIHJlYXNv biwgaWYgd2Ugc2V0IHRoZSBDT0xMRUNUX05BTUVTIGVudmlyb25tZW50IHZhcmlhYmxlLCB0aGUg cHJvYmxlbXMKLSsgICMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KLSsgIGlmIHRlc3QgIlgk e0NPTExFQ1RfTkFNRVMrc2V0fSIgIT0gWHNldDsgdGhlbgotKyAgICBDT0xMRUNUX05BTUVTPQot KyAgICBleHBvcnQgQ09MTEVDVF9OQU1FUwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwotKyMgR2xv YmFsIHZhcmlhYmxlczoKLStvZmlsZT1saWJ0b29sCi0rY2FuX2J1aWxkX3NoYXJlZD15ZXMKLSsK LSsjIEFsbCBrbm93biBsaW5rZXJzIHJlcXVpcmUgYSBgLmEnIGFyY2hpdmUgZm9yIHN0YXRpYyBs aW5raW5nIChleGNlcHQgTVNWQywKLSsjIHdoaWNoIG5lZWRzICcubGliJykuCi0rbGliZXh0PWEK LSsKLSt3aXRoX2dudV9sZD0iJGx0X2N2X3Byb2dfZ251X2xkIgotKwotK29sZF9DQz0iJENDIgot K29sZF9DRkxBR1M9IiRDRkxBR1MiCi0rCi0rIyBTZXQgc2FuZSBkZWZhdWx0cyBmb3IgdmFyaW91 cyB2YXJpYWJsZXMKLSt0ZXN0IC16ICIkQ0MiICYmIENDPWNjCi0rdGVzdCAteiAiJExUQ0MiICYm IExUQ0M9JENDCi0rdGVzdCAteiAiJExUQ0ZMQUdTIiAmJiBMVENGTEFHUz0kQ0ZMQUdTCi0rdGVz dCAteiAiJExEIiAmJiBMRD1sZAotK3Rlc3QgLXogIiRhY19vYmpleHQiICYmIGFjX29iamV4dD1v Ci0rCi0rZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCi0rICBjYXNlICRjY190ZW1wIGlu Ci0rICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwgKltcXC9dY2NhY2hlICkg OzsKLSsgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVyaWZ5ICkg OzsKLSsgICAgXC0qKSA7OwotKyAgICAqKSBicmVhazs7Ci0rICBlc2FjCi0rZG9uZQotK2NjX2Jh c2VuYW1lPWAkRUNITyAiJGNjX3RlbXAiIHwgJFNFRCAicyUuKi8lJTsgcyVeJGhvc3RfYWxpYXMt JSUiYAotKwotKwotKyMgT25seSBwZXJmb3JtIHRoZSBjaGVjayBmb3IgZmlsZSwgaWYgdGhlIGNo ZWNrIG1ldGhvZCByZXF1aXJlcyBpdAotK3Rlc3QgLXogIiRNQUdJQ19DTUQiICYmIE1BR0lDX0NN RD1maWxlCi0rY2FzZSAkZGVwbGlic19jaGVja19tZXRob2QgaW4KLStmaWxlX21hZ2ljKikKLSsg IGlmIHRlc3QgIiRmaWxlX21hZ2ljX2NtZCIgPSAnJE1BR0lDX0NNRCc7IHRoZW4KLSsgICAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJHthY190 b29sX3ByZWZpeH1maWxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgJHthY190b29s X3ByZWZpeH1maWxlLi4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9wYXRoX01BR0lDX0NNRCs6fSBm YWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNh c2UgJE1BR0lDX0NNRCBpbgotK1tcXC8qXSB8ICA/OltcXC9dKikKLSsgIGx0X2N2X3BhdGhfTUFH SUNfQ01EPSIkTUFHSUNfQ01EIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdCB3aXRo IGEgcGF0aC4KLSsgIDs7Ci0rKikKLSsgIGx0X3NhdmVfTUFHSUNfQ01EPSIkTUFHSUNfQ01EIgot KyAgbHRfc2F2ZV9pZnM9IiRJRlMiOyBJRlM9JFBBVEhfU0VQQVJBVE9SCi0rICBhY19kdW1teT0i L3Vzci9iaW4kUEFUSF9TRVBBUkFUT1IkUEFUSCIKLSsgIGZvciBhY19kaXIgaW4gJGFjX2R1bW15 OyBkbwotKyAgICBJRlM9IiRsdF9zYXZlX2lmcyIKLSsgICAgdGVzdCAteiAiJGFjX2RpciIgJiYg YWNfZGlyPS4KLSsgICAgaWYgdGVzdCAtZiAkYWNfZGlyLyR7YWNfdG9vbF9wcmVmaXh9ZmlsZTsg dGhlbgotKyAgICAgIGx0X2N2X3BhdGhfTUFHSUNfQ01EPSIkYWNfZGlyLyR7YWNfdG9vbF9wcmVm aXh9ZmlsZSIKLSsgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0aGVu Ci0rCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rCSJmaWxlX21hZ2ljICIqKQotKwkg IGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiZmlsZV9t YWdpYyBcKC4qXCkiYAotKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgotKwkg IGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rldi9u dWxsIHwKLSsJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0aGVu Ci0rCSAgICA6Ci0rCSAgZWxzZQotKwkgICAgY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdh cm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJhcmll cywKLSsqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBvdXRwdXQgdGhhdCBsaWJ0b29sIGNh bm5vdCByZWNvZ25pemUuCi0rKioqIFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBmYWls IHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCi0rKioqIGFzIHN1Y2guICBUaGlzIHdpbGwg YWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0Ci0rKioqIGRlcGVu ZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlua2VkIHdpdGggc3VjaCBsaWJ0 b29sCi0rKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlzIHByb2JsZW0u ICBOZXZlcnRoZWxlc3MsIHlvdQotKyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhlIHByb2JsZW0g dG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KLSsqKiogYnVnLWxpYnRvb2xAZ251Lm9y ZwotKwotK19MVF9FT0YKLSsJICBmaSA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBicmVh awotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICBNQUdJQ19DTUQ9 IiRsdF9zYXZlX01BR0lDX0NNRCIKLSsgIDs7Ci0rZXNhYwotK2ZpCi0rCi0rTUFHSUNfQ01EPSIk bHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0raWYgdGVzdCAtbiAiJE1BR0lDX0NNRCI7IHRoZW4KLSsg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkTUFHSUNf Q01EIiA+JjUKLSskYXNfZWNobyAiJE1BR0lDX0NNRCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNf ZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rCi0rCi0rCi0raWYgdGVzdCAteiAiJGx0X2N2 X3BhdGhfTUFHSUNfQ01EIjsgdGhlbgotKyAgaWYgdGVzdCAtbiAiJGFjX3Rvb2xfcHJlZml4Ijsg dGhlbgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIGZvciBmaWxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgZmlsZS4uLiAiID4m NjsgfQotK2lmICR7bHRfY3ZfcGF0aF9NQUdJQ19DTUQrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFz X2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXNlICRNQUdJQ19DTUQgaW4KLStb XFwvKl0gfCAgPzpbXFwvXSopCi0rICBsdF9jdl9wYXRoX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7OwotKyop Ci0rICBsdF9zYXZlX01BR0lDX0NNRD0iJE1BR0lDX0NNRCIKLSsgIGx0X3NhdmVfaWZzPSIkSUZT IjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgYWNfZHVtbXk9Ii91c3IvYmluJFBBVEhfU0VQQVJB VE9SJFBBVEgiCi0rICBmb3IgYWNfZGlyIGluICRhY19kdW1teTsgZG8KLSsgICAgSUZTPSIkbHRf c2F2ZV9pZnMiCi0rICAgIHRlc3QgLXogIiRhY19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRl c3QgLWYgJGFjX2Rpci9maWxlOyB0aGVuCi0rICAgICAgbHRfY3ZfcGF0aF9NQUdJQ19DTUQ9IiRh Y19kaXIvZmlsZSIKLSsgICAgICBpZiB0ZXN0IC1uICIkZmlsZV9tYWdpY190ZXN0X2ZpbGUiOyB0 aGVuCi0rCWNhc2UgJGRlcGxpYnNfY2hlY2tfbWV0aG9kIGluCi0rCSJmaWxlX21hZ2ljICIqKQot KwkgIGZpbGVfbWFnaWNfcmVnZXg9YGV4cHIgIiRkZXBsaWJzX2NoZWNrX21ldGhvZCIgOiAiZmls ZV9tYWdpYyBcKC4qXCkiYAotKwkgIE1BR0lDX0NNRD0iJGx0X2N2X3BhdGhfTUFHSUNfQ01EIgot KwkgIGlmIGV2YWwgJGZpbGVfbWFnaWNfY21kIFwkZmlsZV9tYWdpY190ZXN0X2ZpbGUgMj4gL2Rl di9udWxsIHwKLSsJICAgICRFR1JFUCAiJGZpbGVfbWFnaWNfcmVnZXgiID4gL2Rldi9udWxsOyB0 aGVuCi0rCSAgICA6Ci0rCSAgZWxzZQotKwkgICAgY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioq IFdhcm5pbmc6IHRoZSBjb21tYW5kIGxpYnRvb2wgdXNlcyB0byBkZXRlY3Qgc2hhcmVkIGxpYnJh cmllcywKLSsqKiogJGZpbGVfbWFnaWNfY21kLCBwcm9kdWNlcyBvdXRwdXQgdGhhdCBsaWJ0b29s IGNhbm5vdCByZWNvZ25pemUuCi0rKioqIFRoZSByZXN1bHQgaXMgdGhhdCBsaWJ0b29sIG1heSBm YWlsIHRvIHJlY29nbml6ZSBzaGFyZWQgbGlicmFyaWVzCi0rKioqIGFzIHN1Y2guICBUaGlzIHdp bGwgYWZmZWN0IHRoZSBjcmVhdGlvbiBvZiBsaWJ0b29sIGxpYnJhcmllcyB0aGF0Ci0rKioqIGRl cGVuZCBvbiBzaGFyZWQgbGlicmFyaWVzLCBidXQgcHJvZ3JhbXMgbGlua2VkIHdpdGggc3VjaCBs aWJ0b29sCi0rKioqIGxpYnJhcmllcyB3aWxsIHdvcmsgcmVnYXJkbGVzcyBvZiB0aGlzIHByb2Js ZW0uICBOZXZlcnRoZWxlc3MsIHlvdQotKyoqKiBtYXkgd2FudCB0byByZXBvcnQgdGhlIHByb2Js ZW0gdG8geW91ciBzeXN0ZW0gbWFuYWdlciBhbmQvb3IgdG8KLSsqKiogYnVnLWxpYnRvb2xAZ251 Lm9yZwotKwotK19MVF9FT0YKLSsJICBmaSA7OwotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBi cmVhawotKyAgICBmaQotKyAgZG9uZQotKyAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICBNQUdJQ19D TUQ9IiRsdF9zYXZlX01BR0lDX0NNRCIKLSsgIDs7Ci0rZXNhYwotK2ZpCi0rCi0rTUFHSUNfQ01E PSIkbHRfY3ZfcGF0aF9NQUdJQ19DTUQiCi0raWYgdGVzdCAtbiAiJE1BR0lDX0NNRCI7IHRoZW4K LSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkTUFH SUNfQ01EIiA+JjUKLSskYXNfZWNobyAiJE1BR0lDX0NNRCIgPiY2OyB9Ci0rZWxzZQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSsk YXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rICBlbHNlCi0rICAgIE1BR0lDX0NNRD06 Ci0rICBmaQotK2ZpCi0rCi0rICBmaQotKyAgOzsKLStlc2FjCi0rCi0rIyBVc2UgQyBmb3IgdGhl IGRlZmF1bHQgY29uZmlndXJhdGlvbiBpbiB0aGUgbGlidG9vbCBzY3JpcHQKLSsKLStsdF9zYXZl X0NDPSIkQ0MiCi0rYWNfZXh0PWMKLSthY19jcHA9JyRDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBp bGU9JyRDQyAtYyAkQ0ZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19s aW5rPSckQ0MgLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDRkxBR1MgJENQUEZMQUdTICRMREZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY19j b21waWxlcl9nbnUKLSsKLSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQyB0ZXN0IHNv dXJjZXMuCi0rYWNfZXh0PWMKLSsKLSsjIE9iamVjdCBmaWxlIGV4dGVuc2lvbiBmb3IgY29tcGls ZWQgQyB0ZXN0IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStvYmpleHQ9JG9iamV4dAotKwotKyMgQ29k ZSB0byBiZSB1c2VkIGluIHNpbXBsZSBjb21waWxlIHRlc3RzCi0rbHRfc2ltcGxlX2NvbXBpbGVf dGVzdF9jb2RlPSJpbnQgc29tZV92YXJpYWJsZSA9IDA7IgotKwotKyMgQ29kZSB0byBiZSB1c2Vk IGluIHNpbXBsZSBsaW5rIHRlc3RzCi0rbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlPSdpbnQgbWFp bigpe3JldHVybigwKTt9JwotKwotKwotKwotKwotKwotKwotKwotKyMgSWYgbm8gQyBjb21waWxl ciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0MuCi0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBu byBDIGNvbXBpbGVyIGZsYWdzIHdlcmUgc3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdT PSR7TFRDRkxBR1MtIiRDRkxBR1MifQotKwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5h bWUgd2l0aCBhcmd1bWVudHMuCi0rY29tcGlsZXI9JENDCi0rCi0rIyBTYXZlIHRoZSBkZWZhdWx0 IGNvbXBpbGVyLCBzaW5jZSBpdCBnZXRzIG92ZXJ3cml0dGVuIHdoZW4gdGhlIG90aGVyCi0rIyB0 YWdzIGFyZSBiZWluZyB0ZXN0ZWQsIGFuZCBfTFRfVEFHVkFSKGNvbXBpbGVyLCBbXSkgaXMgYSBO T1AuCi0rY29tcGlsZXJfREVGQVVMVD0kQ0MKLSsKLSsjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxh dGUgb2Ygc2ltcGxlIHRlc3QgY29kZQotK2FjX291dGZpbGU9Y29uZnRlc3QuJGFjX29iamV4dAot K2VjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID5jb25mdGVzdC4kYWNfZXh0Ci0r ZXZhbCAiJGFjX2NvbXBpbGUiIDI+JjEgPi9kZXYvbnVsbCB8ICRTRUQgJy9eJC9kOyAvXiAqKy9k JyA+Y29uZnRlc3QuZXJyCi0rX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3Qu ZXJyYAotKyRSTSBjb25mdGVzdCoKLSsKLSthY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQK LStlY2hvICIkbHRfc2ltcGxlX2xpbmtfdGVzdF9jb2RlIiA+Y29uZnRlc3QuJGFjX2V4dAotK2V2 YWwgIiRhY19saW5rIiAyPiYxID4vZGV2L251bGwgfCAkU0VEICcvXiQvZDsgL14gKisvZCcgPmNv bmZ0ZXN0LmVycgotK19sdF9saW5rZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCi0r JFJNIC1yIGNvbmZ0ZXN0KgotKwotKwotKyMjIENBVkVBVCBFTVBUT1I6Ci0rIyMgVGhlcmUgaXMg bm8gZW5jYXBzdWxhdGlvbiB3aXRoaW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFu Z2UKLSsjIyB0aGUgcnVubmluZyBvcmRlciBvciBvdGhlcndpc2UgbW92ZSB0aGVtIGFyb3VuZCB1 bmxlc3MgeW91IGtub3cgZXhhY3RseQotKyMjIHdoYXQgeW91IGFyZSBkb2luZy4uLgotK2lmIHRl c3QgLW4gIiRjb21waWxlciI7IHRoZW4KLSsKLStsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5f ZmxhZz0KLSsKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgY2FzZSAkY2NfYmFzZW5h bWUgaW4KLSsgIG52Y2MqKQotKyAgICBsdF9wcm9nX2NvbXBpbGVyX25vX2J1aWx0aW5fZmxhZz0n IC1YY29tcGlsZXIgLWZuby1idWlsdGluJyA7OwotKyAgKikKLSsgICAgbHRfcHJvZ19jb21waWxl cl9ub19idWlsdGluX2ZsYWc9JyAtZm5vLWJ1aWx0aW4nIDs7Ci0rICBlc2FjCi0rCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmICRjb21waWxl ciBzdXBwb3J0cyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIiA+JjUKLSskYXNfZWNob19uICJj aGVja2luZyBpZiAkY29tcGlsZXIgc3VwcG9ydHMgLWZuby1ydHRpIC1mbm8tZXhjZXB0aW9ucy4u LiAiID4mNjsgfQotK2lmICR7bHRfY3ZfcHJvZ19jb21waWxlcl9ydHRpX2V4Y2VwdGlvbnMrOn0g ZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBs dF9jdl9wcm9nX2NvbXBpbGVyX3J0dGlfZXhjZXB0aW9ucz1ubwotKyAgIGFjX291dGZpbGU9Y29u ZnRlc3QuJGFjX29iamV4dAotKyAgIGVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUi ID4gY29uZnRlc3QuJGFjX2V4dAotKyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1mbm8tcnR0aSAtZm5v LWV4Y2VwdGlvbnMiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRo ZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRh aW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRh Y19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMK LSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hv dWxkIHdvcmsgY29ycmVjdGx5LgotKyAgICMgVGhlIG9wdGlvbiBpcyByZWZlcmVuY2VkIHZpYSBh IHZhcmlhYmxlIHRvIGF2b2lkIGNvbmZ1c2luZyBzZWQuCi0rICAgbHRfY29tcGlsZT1gZWNobyAi JGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6LipGTEFHU31cezAsMVx9IDomJGx0X2Nv bXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBbXiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21w aWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAkbHRfY29tcGlsZXJfZmxhZzonYAotKyAg IChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAkbHRfY29tcGlsZVwiIiA+JjUpCi0rICAg KGV2YWwgIiRsdF9jb21waWxlIiAyPmNvbmZ0ZXN0LmVycikKLSsgICBhY19zdGF0dXM9JD8KLSsg ICBjYXQgY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAk YWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zICIkYWNf b3V0ZmlsZSI7IHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGln bm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0 aGVyZSBhcmUgd2FybmluZ3Mgb3RoZXIgdGhhbiB0aGUgdXN1YWwgb3V0cHV0LgotKyAgICAgJEVD SE8gIiRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFNFRCAnL14kL2QnID5jb25mdGVzdC5l eHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBjb25mdGVzdC5lcnIgPmNvbmZ0ZXN0LmVy MgotKyAgICAgaWYgdGVzdCAhIC1zIGNvbmZ0ZXN0LmVyMiB8fCBkaWZmIGNvbmZ0ZXN0LmV4cCBj b25mdGVzdC5lcjIgPi9kZXYvbnVsbDsgdGhlbgotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVy X3J0dGlfZXhjZXB0aW9ucz15ZXMKLSsgICAgIGZpCi0rICAgZmkKLSsgICAkUk0gY29uZnRlc3Qq Ci0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zIiA+JjUKLSskYXNfZWNobyAi JGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zIiA+JjY7IH0KLSsKLStpZiB0ZXN0 IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfcnR0aV9leGNlcHRpb25zIiA9IHh5ZXM7IHRoZW4KLSsg ICAgbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9IiRsdF9wcm9nX2NvbXBpbGVyX25v X2J1aWx0aW5fZmxhZyAtZm5vLXJ0dGkgLWZuby1leGNlcHRpb25zIgotK2Vsc2UKLSsgICAgOgot K2ZpCi0rCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsgIGx0X3Byb2dfY29tcGlsZXJfd2w9Ci0r bHRfcHJvZ19jb21waWxlcl9waWM9Ci0rbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Ci0rCi0rCi0r ICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSct V2wsJwotKyAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLXN0YXRpYycKLSsKLSsgICAgY2Fz ZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeCopCi0rICAgICAgIyBBbGwgQUlYIGNvZGUgaXMgUElD LgotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgQUlYIDUgbm93 IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0 YXRpYycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAgIGNh c2UgJGhvc3RfY3B1IGluCi0rICAgICAgcG93ZXJwYykKLSsgICAgICAgICAgICAjIHNlZSBjb21t ZW50IGFib3V0IEFtaWdhT1M0IC5zbyBzdXBwb3J0Ci0rICAgICAgICAgICAgbHRfcHJvZ19jb21w aWxlcl9waWM9Jy1mUElDJwotKyAgICAgICAgOzsKLSsgICAgICBtNjhrKQotKyAgICAgICAgICAg ICMgRklYTUU6IHdlIG5lZWQgYXQgbGVhc3QgNjgwMjAgY29kZSB0byBidWlsZCBzaGFyZWQgbGli cmFyaWVzLCBidXQKLSsgICAgICAgICAgICAjIGFkZGluZyB0aGUgYC1tNjgwMjAnIGZsYWcgdG8g R0NDIHByZXZlbnRzIGJ1aWxkaW5nIGFueXRoaW5nIGJldHRlciwKLSsgICAgICAgICAgICAjIGxp a2UgYC1tNjgwNDAnLgotKyAgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctbTY4MDIw IC1yZXNpZGVudDMyIC1tYWx3YXlzLXJlc3RvcmUtYTQnCi0rICAgICAgICA7OwotKyAgICAgIGVz YWMKLSsgICAgICA7OwotKwotKyAgICBiZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1 eCogfCBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQg Zm9yIHRoZXNlIE9TZXMuCi0rICAgICAgOzsKLSsKLSsgICAgbWluZ3cqIHwgY3lnd2luKiB8IHB3 MzIqIHwgb3MyKiB8IGNlZ2NjKikKLSsgICAgICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBz b3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVyIGl0IGlzIGJlaW5nCi0rICAgICAgIyBidWlsdCBm b3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQgc2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFt cGxlKS4KLSsgICAgICAjIEFsdGhvdWdoIHRoZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0 aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxlCi0rICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1w b3J0KSBsaWJyYXJpZXMKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLURETExfRVhQT1JU JwotKyAgICAgIDs7Ci0rCi0rICAgIGRhcndpbiogfCByaGFwc29keSopCi0rICAgICAgIyBQSUMg aXMgdGhlIGRlZmF1bHQgb24gdGhpcyBwbGF0Zm9ybQotKyAgICAgICMgQ29tbW9uIHN5bWJvbHMg bm90IGFsbG93ZWQgaW4gTUhfRFlMSUIgZmlsZXMKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3Bp Yz0nLWZuby1jb21tb24nCi0rICAgICAgOzsKLSsKLSsgICAgaGFpa3UqKQotKyAgICAgICMgUElD IGlzIHRoZSBkZWZhdWx0IGZvciBIYWlrdS4KLSsgICAgICAjIFRoZSAiLXN0YXRpYyIgZmxhZyBl eGlzdHMsIGJ1dCBpcyBicm9rZW4uCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Ci0r ICAgICAgOzsKLSsKLSsgICAgaHB1eCopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9y IDY0LWJpdCBQQSBIUC1VWCwgYnV0IG5vdCBmb3IgMzItYml0Ci0rICAgICAgIyBQQSBIUC1VWC4g IE9uIElBNjQgSFAtVVgsIFBJQyBpcyB0aGUgZGVmYXVsdCBidXQgdGhlIHBpYyBmbGFnCi0rICAg ICAgIyBzZXRzIHRoZSBkZWZhdWx0IFRMUyBtb2RlbCBhbmQgYWZmZWN0cyBpbmxpbmluZy4KLSsg ICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIGhwcGEqNjQqKQotKwkjICtaIHRoZSBkZWZh dWx0Ci0rCTs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl9waWM9Jy1mUElDJwotKwk7 OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBpbnRlcml4WzMtOV0qKQotKyAgICAg ICMgSW50ZXJpeCAzLnggZ2NjIC1mcGljLy1mUElDIG9wdGlvbnMgZ2VuZXJhdGUgYnJva2VuIGNv ZGUuCi0rICAgICAgIyBJbnN0ZWFkLCB3ZSByZWxvY2F0ZSBzaGFyZWQgbGlicmFyaWVzIGF0IHJ1 bnRpbWUuCi0rICAgICAgOzsKLSsKLSsgICAgbXNkb3NkamdwcCopCi0rICAgICAgIyBKdXN0IGJl Y2F1c2Ugd2UgdXNlIEdDQyBkb2Vzbid0IG1lYW4gd2Ugc3VkZGVubHkgZ2V0IHNoYXJlZCBsaWJy YXJpZXMKLSsgICAgICAjIG9uIHN5c3RlbXMgdGhhdCBkb24ndCBzdXBwb3J0IHRoZW0uCi0rICAg ICAgbHRfcHJvZ19jb21waWxlcl9jYW5fYnVpbGRfc2hhcmVkPW5vCi0rICAgICAgZW5hYmxlX3No YXJlZD1ubwotKyAgICAgIDs7Ci0rCi0rICAgICpudG8qIHwgKnFueCopCi0rICAgICAgIyBRTlgg dXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUgLXNoYXJlZCBvcHRpb24gdG9vLCBvdGhl cndpc2UKLSsgICAgICAjIGl0IHdpbGwgY29yZWR1bXAuCi0rICAgICAgbHRfcHJvZ19jb21waWxl cl9waWM9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQqTVAqKQotKyAg ICAgIGlmIHRlc3QgLWQgL3Vzci9uZWM7IHRoZW4KLSsJbHRfcHJvZ19jb21waWxlcl9waWM9LUtj b25mb3JtX3BpYwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpYz0nLWZQSUMnCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICBj YXNlICRjY19iYXNlbmFtZSBpbgotKyAgICBudmNjKikgIyBDdWRhIENvbXBpbGVyIERyaXZlciAy LjIKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctWGxpbmtlciAnCi0rICAgICAgbHRfcHJv Z19jb21waWxlcl9waWM9Jy1YY29tcGlsZXIgLWZQSUMnCi0rICAgICAgOzsKLSsgICAgZXNhYwot KyAgZWxzZQotKyAgICAjIFBPUlRNRSBDaGVjayBmb3IgZmxhZyB0byBwYXNzIGxpbmtlciBmbGFn cyB0aHJvdWdoIHRoZSBzeXN0ZW0gY29tcGlsZXIuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsg ICAgYWl4KikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgIGlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQg cHJvY2Vzc29yCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICBl bHNlCi0rCWx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctYm5zbyAtYkk6L2xpYi9zeXNjYWxscy5l eHAnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBtaW5ndyogfCBjeWd3aW4qIHwgcHcz MiogfCBvczIqIHwgY2VnY2MqKQotKyAgICAgICMgVGhpcyBoYWNrIGlzIHNvIHRoYXQgdGhlIHNv dXJjZSBmaWxlIGNhbiB0ZWxsIHdoZXRoZXIgaXQgaXMgYmVpbmcKLSsgICAgICAjIGJ1aWx0IGZv ciBpbmNsdXNpb24gaW4gYSBkbGwgKGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1w bGUpLgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctRERMTF9FWFBPUlQnCi0rICAgICAg OzsKLSsKLSsgICAgaHB1eDkqIHwgaHB1eDEwKiB8IGhwdXgxMSopCi0rICAgICAgbHRfcHJvZ19j b21waWxlcl93bD0nLVdsLCcKLSsgICAgICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgSUE2NCBI UC1VWCBhbmQgNjQtYml0IEhQLVVYLCBidXQKLSsgICAgICAjIG5vdCBmb3IgUEEgSFAtVVguCi0r ICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsgICAgICBocHBhKjY0KnxpYTY0KikKLSsJIyArWiB0 aGUgZGVmYXVsdAotKwk7OwotKyAgICAgICopCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPScrWicK LSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgIyBJcyB0aGVyZSBhIGJldHRlciBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYyB0aGF0IHdvcmtzIHdpdGggdGhlIGJ1bmRsZWQgQ0M/Ci0rICAgICAgbHRf cHJvZ19jb21waWxlcl9zdGF0aWM9JyR7d2x9LWEgJHt3bH1hcmNoaXZlJwotKyAgICAgIDs7Ci0r Ci0rICAgIGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICAgICAgbHRfcHJvZ19jb21w aWxlcl93bD0nLVdsLCcKLSsgICAgICAjIFBJQyAod2l0aCAtS1BJQykgaXMgdGhlIGRlZmF1bHQu Ci0rICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1ub25fc2hhcmVkJwotKyAgICAgIDs7 Ci0rCi0rICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKLSsgICAg ICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICMgb2xkIEludGVsIGZvciB4ODZfNjQgd2hp Y2ggc3RpbGwgc3VwcG9ydGVkIC1LUElDLgotKyAgICAgIGVjYyopCi0rCWx0X3Byb2dfY29tcGls ZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsJbHRfcHJvZ19j b21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgICMgaWNjIHVzZWQg dG8gYmUgaW5jb21wYXRpYmxlIHdpdGggR0NDLgotKyAgICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNj ZXB0IC1LUElDIGFueSBtb3JlLgotKyAgICAgIGljYyogfCBpZm9ydCopCi0rCWx0X3Byb2dfY29t cGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQycKLSsJbHRfcHJv Z19jb21waWxlcl9zdGF0aWM9Jy1zdGF0aWMnCi0rICAgICAgICA7OwotKyAgICAgICMgTGFoZXkg Rm9ydHJhbiA4LjEuCi0rICAgICAgbGY5NSopCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwn Ci0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctLXNoYXJlZCcKLSsJbHRfcHJvZ19jb21waWxlcl9z dGF0aWM9Jy0tc3RhdGljJwotKwk7OwotKyAgICAgIG5hZ2ZvciopCi0rCSMgTkFHIEZvcnRyYW4g Y29tcGlsZXIKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLC1XbCwsJwotKwlsdF9wcm9nX2Nv bXBpbGVyX3BpYz0nLVBJQycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwot Kwk7OwotKyAgICAgIHBnY2MqIHwgcGdmNzcqIHwgcGdmOTAqIHwgcGdmOTUqIHwgcGdmb3J0cmFu KikKLSsgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgY29tcGlsZXJzICgqbm90KiB0aGUgUGVudGl1 bSBnY2MgY29tcGlsZXIsCi0rCSMgd2hpY2ggbG9va3MgdG8gYmUgYSBkZWFkIHByb2plY3QpCi0r CWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljPSctZnBp YycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAgICAgICAgOzsKLSsg ICAgICBjY2MqKQotKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKLSsgICAgICAg ICMgQWxsIEFscGhhIGNvZGUgaXMgUElDLgotKyAgICAgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWM9Jy1ub25fc2hhcmVkJwotKyAgICAgICAgOzsKLSsgICAgICB4bCogfCBiZ3hsKiB8IGJnZiog fCBtcGl4bCopCi0rCSMgSUJNIFhMIEMgOC4wL0ZvcnRyYW4gMTAuMSwgMTEuMSBvbiBQUEMgYW5k IEJsdWVHZW5lCi0rCWx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwnCi0rCWx0X3Byb2dfY29tcGls ZXJfcGljPSctcXBpYycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1xc3RhdGljbGluaycK LSsJOzsKLSsgICAgICAqKQotKwljYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4KLSsJKlN1 blwgRiogfCAqU3VuKkZvcnRyYW4qKQotKwkgICMgU3VuIEZvcnRyYW4gOC4zIHBhc3NlcyBhbGwg dW5yZWNvZ25pemVkIGZsYWdzIHRvIHRoZSBsaW5rZXIKLSsJICBsdF9wcm9nX2NvbXBpbGVyX3Bp Yz0nLUtQSUMnCi0rCSAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKwkgIGx0 X3Byb2dfY29tcGlsZXJfd2w9JycKLSsJICA7OwotKwkqU3VuXCBDKikKLSsJICAjIFN1biBDIDUu OQotKwkgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsJICBsdF9wcm9nX2NvbXBpbGVy X3N0YXRpYz0nLUJzdGF0aWMnCi0rCSAgbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCcKLSsJICA7 OwotKwllc2FjCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIG5ld3NvczYp Ci0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngq KQotKyAgICAgICMgUU5YIHVzZXMgR05VIEMrKywgYnV0IG5lZWQgdG8gZGVmaW5lIC1zaGFyZWQg b3B0aW9uIHRvbywgb3RoZXJ3aXNlCi0rICAgICAgIyBpdCB3aWxsIGNvcmVkdW1wLgotKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfcGljPSctZlBJQyAtc2hhcmVkJwotKyAgICAgIDs7Ci0rCi0rICAg IG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2ws JwotKyAgICAgICMgQWxsIE9TRi8xIGNvZGUgaXMgUElDLgotKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfc3RhdGljPSctbm9uX3NoYXJlZCcKLSsgICAgICA7OwotKwotKyAgICByZG9zKikKLSsgICAg ICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpYz0nLW5vbl9zaGFyZWQnCi0rICAgICAgOzsKLSsKLSsg ICAgc29sYXJpcyopCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAgICAg IGx0X3Byb2dfY29tcGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICBjYXNlICRjY19iYXNl bmFtZSBpbgotKyAgICAgIGY3NyogfCBmOTAqIHwgZjk1KiB8IHN1bmY3NyogfCBzdW5mOTAqIHwg c3VuZjk1KikKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVFvcHRpb24gbGQgJzs7Ci0rICAgICAg KikKLSsJbHRfcHJvZ19jb21waWxlcl93bD0nLVdsLCc7OwotKyAgICAgIGVzYWMKLSsgICAgICA7 OwotKwotKyAgICBzdW5vczQqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1Rb3B0aW9u IGxkICcKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpYz0nLVBJQycKLSsgICAgICBsdF9wcm9n X2NvbXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQgfCBz eXN2NC4ydXcyKiB8IHN5c3Y0LjMqKQotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfd2w9Jy1XbCwn Ci0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWM9Jy1LUElDJwotKyAgICAgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljPSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICBzeXN2NCpNUCopCi0r ICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYyA7dGhlbgotKwlsdF9wcm9nX2NvbXBpbGVyX3BpYz0n LUtjb25mb3JtX3BpYycKLSsJbHRfcHJvZ19jb21waWxlcl9zdGF0aWM9Jy1Cc3RhdGljJwotKyAg ICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjUqIHwgdW5peHdhcmUqIHwgc2NvMy4ydjUq IHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2ws JwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSctS1BJQycKLSsgICAgICBsdF9wcm9nX2Nv bXBpbGVyX3N0YXRpYz0nLUJzdGF0aWMnCi0rICAgICAgOzsKLSsKLSsgICAgdW5pY29zKikKLSsg ICAgICBsdF9wcm9nX2NvbXBpbGVyX3dsPSctV2wsJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJf Y2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIGx0 X3Byb2dfY29tcGlsZXJfcGljPSctcGljJwotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGlj PSctQnN0YXRpYycKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rCi0r Y2FzZSAkaG9zdF9vcyBpbgotKyAgIyBGb3IgcGxhdGZvcm1zIHdoaWNoIGRvIG5vdCBzdXBwb3J0 IFBJQywgLURQSUMgaXMgbWVhbmluZ2xlc3M6Ci0rICAqZGpncHAqKQotKyAgICBsdF9wcm9nX2Nv bXBpbGVyX3BpYz0KLSsgICAgOzsKLSsgICopCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPSIk bHRfcHJvZ19jb21waWxlcl9waWMgLURQSUMiCi0rICAgIDs7Ci0rZXNhYwotKwotK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yICRjb21waWxlciBv cHRpb24gdG8gcHJvZHVjZSBQSUMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkY29t cGlsZXIgb3B0aW9uIHRvIHByb2R1Y2UgUElDLi4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9wcm9n X2NvbXBpbGVyX3BpYys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAi ID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljPSRsdF9wcm9nX2NvbXBpbGVy X3BpYwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpYyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9n X2NvbXBpbGVyX3BpYyIgPiY2OyB9Ci0rbHRfcHJvZ19jb21waWxlcl9waWM9JGx0X2N2X3Byb2df Y29tcGlsZXJfcGljCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxhZyBh Y3R1YWxseSB3b3Jrcy4KLSsjCi0raWYgdGVzdCAtbiAiJGx0X3Byb2dfY29tcGlsZXJfcGljIjsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2lu ZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29tcGlsZXJfcGljIHdvcmtzIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29tcGlsZXIgUElDIGZsYWcgJGx0X3Byb2dfY29t cGlsZXJfcGljIHdvcmtzLi4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9wcm9nX2NvbXBpbGVyX3Bp Y193b3Jrcys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dvcmtzPW5vCi0rICAgYWNfb3V0Zmls ZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rICAgZWNobyAiJGx0X3NpbXBsZV9jb21waWxlX3Rlc3Rf Y29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgbHRfY29tcGlsZXJfZmxhZz0iJGx0X3Byb2df Y29tcGlsZXJfcGljIC1EUElDIgotKyAgICMgSW5zZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBh ZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUsIG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29y ZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAoMykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUg dGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBub3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQg YmVnaW5zCi0rICAgIyB3aXRoIGEgZG9sbGFyIHNpZ24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBl Y2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KLSsgICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNl ZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25mdXNpbmcgc2VkLgotKyAgIGx0X2NvbXBpbGU9 YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6 JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAk bHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6 J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiY1 KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5jb25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVz PSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUKLSsgICBlY2hvICIkYXNfbWU6JExJTkVOTzog XCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYgKGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAt cyAiJGFjX291dGZpbGUiOyB0aGVuCi0rICAgICAjIFRoZSBjb21waWxlciBjYW4gb25seSB3YXJu IGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkg bm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVyIHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KLSsg ICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+Y29u ZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJyID5jb25m dGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBjb25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVz dC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19j b21waWxlcl9waWNfd29ya3M9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgJFJNIGNvbmZ0ZXN0 KgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9j dl9wcm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPiY2OyB9Ci0rCi0raWYgdGVzdCB4IiRsdF9jdl9w cm9nX2NvbXBpbGVyX3BpY193b3JrcyIgPSB4eWVzOyB0aGVuCi0rICAgIGNhc2UgJGx0X3Byb2df Y29tcGlsZXJfcGljIGluCi0rICAgICAiIiB8ICIgIiopIDs7Ci0rICAgICAqKSBsdF9wcm9nX2Nv bXBpbGVyX3BpYz0iICRsdF9wcm9nX2NvbXBpbGVyX3BpYyIgOzsKLSsgICAgIGVzYWMKLStlbHNl Ci0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljPQotKyAgICAgbHRfcHJvZ19jb21waWxlcl9jYW5f YnVpbGRfc2hhcmVkPW5vCi0rZmkKLSsKLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKyMKLSsjIENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkg d29ya3MuCi0rIwotK3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsIGV2YWwgbHRfdG1wX3N0YXRpY19m bGFnPVwiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljXCIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmICRjb21waWxlciBzdGF0aWMgZmxhZyAkbHRf dG1wX3N0YXRpY19mbGFnIHdvcmtzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBpZiAkY29t cGlsZXIgc3RhdGljIGZsYWcgJGx0X3RtcF9zdGF0aWNfZmxhZyB3b3Jrcy4uLiAiID4mNjsgfQot K2lmICR7bHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3MrOn0gZmFsc2U7IHRoZW4gOgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBp bGVyX3N0YXRpY193b3Jrcz1ubwotKyAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAgTERG TEFHUz0iJExERkxBR1MgJGx0X3RtcF9zdGF0aWNfZmxhZyIKLSsgICBlY2hvICIkbHRfc2ltcGxl X2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBpZiAoZXZhbCAkYWNfbGlu ayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4KLSsg ICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBu b3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzCi0r ICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICAgICAjIEFwcGVuZCBhbnkg ZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgotKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+JjUK LSsgICAgICAgJEVDSE8gIiRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+ IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3QuZXJy ID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIy ID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193 b3Jrcz15ZXMKLSsgICAgICAgZmkKLSsgICAgIGVsc2UKLSsgICAgICAgbHRfY3ZfcHJvZ19jb21w aWxlcl9zdGF0aWNfd29ya3M9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAgJFJNIC1yIGNvbmZ0 ZXN0KgotKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rCi0rZmkKLSt7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJf c3RhdGljX3dvcmtzIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGlj X3dvcmtzIiA+JjY7IH0KLSsKLStpZiB0ZXN0IHgiJGx0X2N2X3Byb2dfY29tcGlsZXJfc3RhdGlj X3dvcmtzIiA9IHh5ZXM7IHRoZW4KLSsgICAgOgotK2Vsc2UKLSsgICAgbHRfcHJvZ19jb21waWxl cl9zdGF0aWM9Ci0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1j IC1vIGZpbGUuJGFjX29iamV4dCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBp bGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4uLiAiID4mNjsgfQotK2lmICR7bHRf Y3ZfcHJvZ19jb21waWxlcl9jX28rOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz1ubwotKyAgICRS TSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2QgY29u ZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9j b2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQv Y29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEp IGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3 b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90 ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFu ZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhl IGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19j b21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxl cl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJf ZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZh bCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFs ICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAg IGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8g PSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91 dC9jb25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNh biBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAg ICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRFQ0hPICIkX2x0X2Nv bXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKLSsg ICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3Qu ZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25m dGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgIGx0X2N2 X3Byb2dfY29tcGlsZXJfY19vPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgIGNobW9kIHUrdyAu IDI+JjUKLSsgICAkUk0gY29uZnRlc3QqCi0rICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3Jl YXRlIGRpcmVjdG9yeSBvdXQvaWlfZmlsZXMvIGZvcgotKyAgICMgdGVtcGxhdGUgaW5zdGFudGlh dGlvbgotKyAgIHRlc3QgLWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAmJiBy bWRpciBvdXQvaWlfZmlsZXMKLSsgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0Ci0rICAgY2QgLi4K LSsgICAkUk0gLXIgY29uZnRlc3QKLSsgICAkUk0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3Byb2dfY29t cGlsZXJfY19vIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjY7 IH0KLSsKLSsKLSsKLSsKLSsKLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29i amV4dCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1j IC1vIGZpbGUuJGFjX29iamV4dC4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfcHJvZ19jb21waWxl cl9jX28rOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStl bHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfbz1ubwotKyAgICRSTSAtciBjb25mdGVzdCAy Pi9kZXYvbnVsbAotKyAgIG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2QgY29uZnRlc3QKLSsgICBta2Rp ciBvdXQKLSsgICBlY2hvICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0 LiRhY19leHQKLSsKLSsgICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19v YmpleHQiCi0rICAgIyBJbnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0 ICpGTEFHUyB2YXJpYWJsZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcg ImNvbmZ0ZXN0LiIsIG9yICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21w aWxlIGl0c2VsZiBkb2VzIG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAj IHdpdGggYSBkb2xsYXIgc2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdv cmsgY29ycmVjdGx5LgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQg XAotKyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwK LSsgICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0r ICAgLWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNf bWU6JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIg Mj5vdXQvY29uZnRlc3QuZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRl c3QuZXJyID4mNQotKyAgIGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+ JjUKLSsgICBpZiAoZXhpdCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFj X29iamV4dAotKyAgIHRoZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5k IGlnbm9yZSB0aGUgb3B0aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBp ZiB0aGVyZSBhcmUgd2FybmluZ3MKLSsgICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxlcnBs YXRlIiB8ICRTRUQgJy9eJC9kJyA+IG91dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9k OyAvXiAqKy9kJyBvdXQvY29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAgICBpZiB0 ZXN0ICEgLXMgb3V0L2NvbmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2Nv bmZ0ZXN0LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJf Y19vPXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgIGNobW9kIHUrdyAuIDI+JjUKLSsgICAkUk0g Y29uZnRlc3QqCi0rICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBv dXQvaWlfZmlsZXMvIGZvcgotKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgotKyAgIHRlc3Qg LWQgb3V0L2lpX2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmls ZXMKLSsgICAkUk0gb3V0LyogJiYgcm1kaXIgb3V0Ci0rICAgY2QgLi4KLSsgICAkUk0gLXIgY29u ZnRlc3QKLSsgICAkUk0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjUK LSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vIiA+JjY7IH0KLSsKLSsKLSsKLSsK LStoYXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJf Y19vIiA9IG5vICYmIHRlc3QgIiRuZWVkX2xvY2tzIiAhPSBubzsgdGhlbgotKyAgIyBkbyBub3Qg b3ZlcndyaXRlIHRoZSB2YWx1ZSBvZiBuZWVkX2xvY2tzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyCi0r ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIHdl IGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaWYg d2UgY2FuIGxvY2sgd2l0aCBoYXJkIGxpbmtzLi4uICIgPiY2OyB9Ci0rICBoYXJkX2xpbmtzPXll cwotKyAgJFJNIGNvbmZ0ZXN0KgotKyAgbG4gY29uZnRlc3QuYSBjb25mdGVzdC5iIDI+L2Rldi9u dWxsICYmIGhhcmRfbGlua3M9bm8KLSsgIHRvdWNoIGNvbmZ0ZXN0LmEKLSsgIGxuIGNvbmZ0ZXN0 LmEgY29uZnRlc3QuYiAyPiY1IHx8IGhhcmRfbGlua3M9bm8KLSsgIGxuIGNvbmZ0ZXN0LmEgY29u ZnRlc3QuYiAyPi9kZXYvbnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGhhcmRfbGlua3MiID4mNQotKyRhc19l Y2hvICIkaGFyZF9saW5rcyIgPiY2OyB9Ci0rICBpZiB0ZXN0ICIkaGFyZF9saW5rcyIgPSBubzsg dGhlbgotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5J Tkc6IFxgJENDJyBkb2VzIG5vdCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBi ZSB1bnNhZmUiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IFxgJENDJyBkb2VzIG5v dCBzdXBwb3J0IFxgLWMgLW8nLCBzbyBcYG1ha2UgLWonIG1heSBiZSB1bnNhZmUiID4mMjt9Ci0r ICAgIG5lZWRfbG9ja3M9d2FybgotKyAgZmkKLStlbHNlCi0rICBuZWVkX2xvY2tzPW5vCi0rZmkK LSsKLSsKLSsKLSsKLSsKLSsKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0 cyBzaGFyZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRo ZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+ JjY7IH0KLSsKLSsgIHJ1bnBhdGhfdmFyPQotKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ci0rICBh bHdheXNfZXhwb3J0X3N5bWJvbHM9bm8KLSsgIGFyY2hpdmVfY21kcz0KLSsgIGFyY2hpdmVfZXhw c3ltX2NtZHM9Ci0rICBjb21waWxlcl9uZWVkc19vYmplY3Q9bm8KLSsgIGVuYWJsZV9zaGFyZWRf d2l0aF9zdGF0aWNfcnVudGltZXM9bm8KLSsgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0KLSsg IGV4cG9ydF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFs X3N5bWJvbF9waXBlIHwgJFNFRCAnXCcncy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBv cnRfc3ltYm9scycKLSsgIGhhcmRjb2RlX2F1dG9tYXRpYz1ubwotKyAgaGFyZGNvZGVfZGlyZWN0 PW5vCi0rICBoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9bm8KLSsgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9Ci0rICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPQotKyAgaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcj0KLSsgIGhhcmRjb2RlX21pbnVzX0w9bm8KLSsgIGhhcmRjb2RlX3No bGlicGF0aF92YXI9dW5zdXBwb3J0ZWQKLSsgIGluaGVyaXRfcnBhdGg9bm8KLSsgIGxpbmtfYWxs X2RlcGxpYnM9dW5rbm93bgotKyAgbW9kdWxlX2NtZHM9Ci0rICBtb2R1bGVfZXhwc3ltX2NtZHM9 Ci0rICBvbGRfYXJjaGl2ZV9mcm9tX25ld19jbWRzPQotKyAgb2xkX2FyY2hpdmVfZnJvbV9leHBz eW1zX2NtZHM9Ci0rICB0aHJlYWRfc2FmZV9mbGFnX3NwZWM9Ci0rICB3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlYz0KLSsgICMgaW5jbHVkZV9leHBzeW1zIHNob3VsZCBiZSBhIGxpc3Qgb2Ygc3BhY2Ut c2VwYXJhdGVkIHN5bWJvbHMgdG8gYmUgKmFsd2F5cyoKLSsgICMgaW5jbHVkZWQgaW4gdGhlIHN5 bWJvbCBsaXN0Ci0rICBpbmNsdWRlX2V4cHN5bXM9Ci0rICAjIGV4Y2x1ZGVfZXhwc3ltcyBjYW4g YmUgYW4gZXh0ZW5kZWQgcmVnZXhwIG9mIHN5bWJvbHMgdG8gZXhjbHVkZQotKyAgIyBpdCB3aWxs IGJlIHdyYXBwZWQgYnkgYCAoJyBhbmQgYCkkJywgc28gb25lIG11c3Qgbm90IG1hdGNoIGJlZ2lu bmluZyBvcgotKyAgIyBlbmQgb2YgbGluZS4gIEV4YW1wbGU6IGBhfGJjfC4qZC4qJyB3aWxsIGV4 Y2x1ZGUgdGhlIHN5bWJvbHMgYGEnIGFuZCBgYmMnLAotKyAgIyBhcyB3ZWxsIGFzIGFueSBzeW1i b2wgdGhhdCBjb250YWlucyBgZCcuCi0rICBleGNsdWRlX2V4cHN5bXM9J19HTE9CQUxfT0ZGU0VU X1RBQkxFX3xfR0xPQkFMX19GW0lEXV8uKicKLSsgICMgQWx0aG91Z2ggX0dMT0JBTF9PRkZTRVRf VEFCTEVfIGlzIGEgdmFsaWQgc3ltYm9sIEMgbmFtZSwgbW9zdCBhLm91dAotKyAgIyBwbGF0Zm9y bXMgKGFiKXVzZSBpdCBpbiBQSUMgY29kZSwgYnV0IHRoZWlyIGxpbmtlcnMgZ2V0IGNvbmZ1c2Vk IGlmCi0rICAjIHRoZSBzeW1ib2wgaXMgZXhwbGljaXRseSByZWZlcmVuY2VkLiAgU2luY2UgcG9y dGFibGUgY29kZSBjYW5ub3QKLSsgICMgcmVseSBvbiB0aGlzIHN5bWJvbCBuYW1lLCBpdCdzIHBy b2JhYmx5IGZpbmUgdG8gbmV2ZXIgaW5jbHVkZSBpdCBpbgotKyAgIyBwcmVsb2FkZWQgc3ltYm9s IHRhYmxlcy4KLSsgICMgRXhjbHVkZSBzaGFyZWQgbGlicmFyeSBpbml0aWFsaXphdGlvbi9maW5h bGl6YXRpb24gc3ltYm9scy4KLSsgIGV4dHJhY3RfZXhwc3ltc19jbWRzPQotKwotKyAgY2FzZSAk aG9zdF9vcyBpbgotKyAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIqIHwgY2VnY2MqKQotKyAgICAj IEZJWE1FOiB0aGUgTVNWQysrIHBvcnQgaGFzbid0IGJlZW4gdGVzdGVkIGluIGEgbG9vb29uZyB0 aW1lCi0rICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50bHkgYXNzdW1lIHRoYXQg d2UgYXJlIHVzaW5nCi0rICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgIGlmIHRlc3Qg IiRHQ0MiICE9IHllczsgdGhlbgotKyAgICAgIHdpdGhfZ251X2xkPW5vCi0rICAgIGZpCi0rICAg IDs7Ci0rICBpbnRlcml4KikKLSsgICAgIyB3ZSBqdXN0IGhvcGUvYXNzdW1lIHRoaXMgaXMgZ2Nj IGFuZCBub3QgYzg5ICg9IE1TVkMrKykKLSsgICAgd2l0aF9nbnVfbGQ9eWVzCi0rICAgIDs7Ci0r ICBvcGVuYnNkKikKLSsgICAgd2l0aF9nbnVfbGQ9bm8KLSsgICAgOzsKLSsgIGVzYWMKLSsKLSsg IGxkX3NobGlicz15ZXMKLSsKLSsgICMgT24gc29tZSB0YXJnZXRzLCBHTlUgbGQgaXMgY29tcGF0 aWJsZSBlbm91Z2ggd2l0aCB0aGUgbmF0aXZlIGxpbmtlcgotKyAgIyB0aGF0IHdlJ3JlIGJldHRl ciBvZmYgdXNpbmcgdGhlIG5hdGl2ZSBpbnRlcmZhY2UgZm9yIGJvdGguCi0rICBsdF91c2VfZ251 X2xkX2ludGVyZmFjZT1ubwotKyAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgot KyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4KikKLSsJIyBUaGUgQUlYIHBvcnQgb2Yg R05VIGxkIGhhcyBhbHdheXMgYXNwaXJlZCB0byBjb21wYXRpYmlsaXR5Ci0rCSMgd2l0aCB0aGUg bmF0aXZlIGxpbmtlci4gIEhvd2V2ZXIsIGFzIHRoZSB3YXJuaW5nIGluIHRoZSBHTlUgbGQKLSsJ IyBibG9jayBzYXlzLCB2ZXJzaW9ucyBiZWZvcmUgMi4xOS41KiBjb3VsZG4ndCByZWFsbHkgY3Jl YXRlIHdvcmtpbmcKLSsJIyBzaGFyZWQgbGlicmFyaWVzLCByZWdhcmRsZXNzIG9mIHRoZSBpbnRl cmZhY2UgdXNlZC4KLSsJY2FzZSBgJExEIC12IDI+JjFgIGluCi0rCSAgKlwgXChHTlVcIEJpbnV0 aWxzXClcIDIuMTkuNSopIDs7Ci0rCSAgKlwgXChHTlVcIEJpbnV0aWxzXClcIDIuWzItOV0qKSA7 OwotKwkgICpcIFwoR05VXCBCaW51dGlsc1wpXCBbMy05XSopIDs7Ci0rCSAgKikKLSsJICAgIGx0 X3VzZV9nbnVfbGRfaW50ZXJmYWNlPXllcwotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAg ICopCi0rCWx0X3VzZV9nbnVfbGRfaW50ZXJmYWNlPXllcwotKwk7OwotKyAgICBlc2FjCi0rICBm aQotKwotKyAgaWYgdGVzdCAiJGx0X3VzZV9nbnVfbGRfaW50ZXJmYWNlIiA9IHllczsgdGhlbgot KyAgICAjIElmIGFyY2hpdmVfY21kcyBydW5zIExELCBub3QgQ0MsIHdsYXJjIHNob3VsZCBiZSBl bXB0eQotKyAgICB3bGFyYz0nJHt3bH0nCi0rCi0rICAgICMgU2V0IHNvbWUgZGVmYXVsdHMgZm9y IEdOVSBsZCB3aXRoIHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQuIFRoZXNlCi0rICAgICMgYXJlIHJl c2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRpbmcg dGhlbQotKyAgICAjIGhlcmUgYWxsb3dzIHRoZW0gdG8gYmUgb3ZlcnJpZGRlbiBpZiBuZWNlc3Nh cnkuCi0rICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjPScke3dsfS0tZXhwb3J0LWR5bmFtaWMnCi0rICAgICMgYW5jaWVudCBHTlUgbGQg ZGlkbid0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlIGV0LiBhbC4KLSsgICAgaWYgJExEIC0taGVs cCAyPiYxIHwgJEdSRVAgJ25vLXdob2xlLWFyY2hpdmUnID4gL2Rldi9udWxsOyB0aGVuCi0rICAg ICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZl bmllbmNlICciJHdsYXJjIictLW5vLXdob2xlLWFyY2hpdmUnCi0rICAgIGVsc2UKLSsgICAgICB3 aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0KLSsgICAgZmkKLSsgICAgc3VwcG9ydHNfYW5vbl92ZXJz aW9uaW5nPW5vCi0rICAgIGNhc2UgYCRMRCAtdiAyPiYxYCBpbgotKyAgICAgICpHTlVcIGdvbGQq KSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7Ci0rICAgICAgKlwgWzAxXS4qIHwgKlwg Mi5bMC05XS4qIHwgKlwgMi4xMC4qKSA7OyAjIGNhdGNoIHZlcnNpb25zIDwgMi4xMQotKyAgICAg ICpcIDIuMTEuOTMuMC4yXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25pbmc9eWVzIDs7ICMgUkg3 LjMgLi4uCi0rICAgICAgKlwgMi4xMS45Mi4wLjEyXCAqKSBzdXBwb3J0c19hbm9uX3ZlcnNpb25p bmc9eWVzIDs7ICMgTWFuZHJha2UgOC4yIC4uLgotKyAgICAgICpcIDIuMTEuKikgOzsgIyBvdGhl ciAyLjExIHZlcnNpb25zCi0rICAgICAgKikgc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nPXllcyA7 OwotKyAgICBlc2FjCi0rCi0rICAgICMgU2VlIGlmIEdOVSBsZCBzdXBwb3J0cyBzaGFyZWQgbGli cmFyaWVzLgotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGFpeFszLTldKikKLSsgICAgICAj IE9uIEFJWC9QUEMsIHRoZSBHTlUgbGlua2VyIGlzIHZlcnkgYnJva2VuCi0rICAgICAgaWYgdGVz dCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCi0rCWxkX3NobGlicz1ubwotKwljYXQgPDxfTFRf RU9GIDE+JjIKLSsKLSsqKiogV2FybmluZzogdGhlIEdOVSBsaW5rZXIsIGF0IGxlYXN0IHVwIHRv IHJlbGVhc2UgMi4xOSwgaXMgcmVwb3J0ZWQKLSsqKiogdG8gYmUgdW5hYmxlIHRvIHJlbGlhYmx5 IGNyZWF0ZSBzaGFyZWQgbGlicmFyaWVzIG9uIEFJWC4KLSsqKiogVGhlcmVmb3JlLCBsaWJ0b29s IGlzIGRpc2FibGluZyBzaGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBJZiB5b3UKLSsqKiogcmVh bGx5IGNhcmUgZm9yIHNoYXJlZCBsaWJyYXJpZXMsIHlvdSBtYXkgd2FudCB0byBpbnN0YWxsIGJp bnV0aWxzCi0rKioqIDIuMjAgb3IgYWJvdmUsIG9yIG1vZGlmeSB5b3VyIFBBVEggc28gdGhhdCBh IG5vbi1HTlUgbGlua2VyIGlzIGZvdW5kLgotKyoqKiBZb3Ugd2lsbCB0aGVuIG5lZWQgdG8gcmVz dGFydCB0aGUgY29uZmlndXJhdGlvbiBwcm9jZXNzLgotKwotK19MVF9FT0YKLSsgICAgICBmaQot KyAgICAgIDs7Ci0rCi0rICAgIGFtaWdhb3MqKQotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0r ICAgICAgcG93ZXJwYykKLSsgICAgICAgICAgICAjIHNlZSBjb21tZW50IGFib3V0IEFtaWdhT1M0 IC5zbyBzdXBwb3J0Ci0rICAgICAgICAgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGli b2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8g JGxpYicKLSsgICAgICAgICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzPScnCi0rICAgICAgICA7Owot KyAgICAgIG02OGspCi0rICAgICAgICAgICAgYXJjaGl2ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpk aXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBOQU1FICRsaWJuYW1lIiA+ICRvdXRw dXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgTElCUkFSWV9JRCAxIiA+ PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIFZFUlNJT04g JG1ham9yIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5l IFJFVklTSU9OICRyZXZpc2lvbiIgPj4gJG91dHB1dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4k QVIgJEFSX0ZMQUdTICRsaWIgJGxpYm9ianN+JFJBTkxJQiAkbGlifihjZCAkb3V0cHV0X29iamRp ciAmJiBhMml4bGlicmFyeSAtMzIpJwotKyAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICAgICAgICBoYXJkY29kZV9taW51c19MPXllcwotKyAg ICAgICAgOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsgICAgYmVvcyopCi0rICAgICAg aWYgJExEIC0taGVscCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+ IC9kZXYvbnVsbDsgdGhlbgotKwlhbGxvd191bmRlZmluZWRfZmxhZz11bnN1cHBvcnRlZAotKwkj IEpvc2VwaCBCZWNrZW5iYWNoIDxqcmIzQGJlc3QuY29tPiBzYXlzIHNvbWUgcmVsZWFzZXMgb2Yg Z2NjCi0rCSMgc3VwcG9ydCAtLXVuZGVmaW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3Rp Z2F0aW9uLiAgRklYTUUKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0r ICAgICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAg IGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsgICAgICAjIF9MVF9UQUdWQVIo aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYywgKSBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywKLSsg ICAgICAjIGFzIHRoZXJlIGlzIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgotKyAgICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICBleHBvcnRfZHluYW1pY19m bGFnX3NwZWM9JyR7d2x9LS1leHBvcnQtYWxsLXN5bWJvbHMnCi0rICAgICAgYWxsb3dfdW5kZWZp bmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsgICAgICBhbHdheXNfZXhwb3J0X3N5bWJvbHM9bm8KLSsg ICAgICBlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzPXllcwotKyAgICAgIGV4cG9y dF9zeW1ib2xzX2NtZHM9JyROTSAkbGlib2JqcyAkY29udmVuaWVuY2UgfCAkZ2xvYmFsX3N5bWJv bF9waXBlIHwgJFNFRCAtZSAnXCcnL15bQkNER1JTXVsgXS9zLy4qWyBdXChbXiBdKlwpL1wxIERB VEEvO3MvXi4qWyBdX19ubV9fXChbXiBdKlwpWyBdW14gXSovXDEgREFUQS87L15JWyBdL2Q7L15b QUlUV11bIF0vcy8uKiAvLydcJycgfCBzb3J0IHwgdW5pcSA+ICRleHBvcnRfc3ltYm9scycKLSsg ICAgICBleGNsdWRlX2V4cHN5bXM9J1tfXStHTE9CQUxfT0ZGU0VUX1RBQkxFX3xbX10rR0xPQkFM X19bRklEXV8uKnxbX10raGVhZF9bQS1aYS16MC05X10rX2RsbHxbQS1aYS16MC05X10rX2RsbF9p bmFtZScKLSsKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnYXV0by1pbXBvcnQn ID4gL2Rldi9udWxsOyB0aGVuCi0rICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRs aWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1l ICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxp bmtlciAkbGliJwotKwkjIElmIHRoZSBleHBvcnQtc3ltYm9scyBmaWxlIGFscmVhZHkgaXMgYSAu ZGVmIGZpbGUgKDFzdCBsaW5lCi0rCSMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBpczsgb3RoZXJ3 aXNlLCBwcmVwZW5kLi4uCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9J2lmIHRlc3QgInhgJFNFRCAx cSAkZXhwb3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0rCSAgY3AgJGV4cG9ydF9zeW1i b2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwllbHNlCi0rCSAgZWNobyBFWFBPUlRT ID4gJG91dHB1dF9vYmpkaXIvJHNvbmFtZS5kZWY7Ci0rCSAgY2F0ICRleHBvcnRfc3ltYm9scyA+ PiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRlZjsKLSsJZml+Ci0rCSRDQyAtc2hhcmVkICRvdXRw dXRfb2JqZGlyLyRzb25hbWUuZGVmICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAt byAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1Y bGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAkbGliJwotKyAgICAgIGVsc2UKLSsJbGRfc2hs aWJzPW5vCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBoYWlrdSopCi0rICAgICAgYXJj aGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mg JHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJz PXllcwotKyAgICAgIDs7Ci0rCi0rICAgIGludGVyaXhbMy05XSopCi0rICAgICAgaGFyZGNvZGVf ZGlyZWN0PW5vCi0rICAgICAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rICAgICAgZXhwb3J0 X2R5bmFtaWNfZmxhZ19zcGVjPScke3dsfS1FJwotKyAgICAgICMgSGFjazogT24gSW50ZXJpeCAz LngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2VuIGdjYy4KLSsgICAg ICAjIEluc3RlYWQsIHNoYXJlZCBsaWJyYXJpZXMgYXJlIGxvYWRlZCBhdCBhbiBpbWFnZSBiYXNl ICgweDEwMDAwMDAwIGJ5Ci0rICAgICAgIyBkZWZhdWx0KSBhbmQgcmVsb2NhdGVkIGlmIHRoZXkg Y29uZmxpY3QsIHdoaWNoIGlzIGEgc2xvdyB2ZXJ5IG1lbW9yeQotKyAgICAgICMgY29uc3VtaW5n IGFuZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRv bSwKLSsgICAgICAjIDI1NiBLaUItYWxpZ25lZCBpbWFnZSBiYXNlIGJldHdlZW4gMHg1MDAwMDAw MCBhbmQgMHg2RkZDMDAwMCBhdCBsaW5rCi0rICAgICAgIyB0aW1lLiAgTW92aW5nIHVwIGZyb20g MHgxMDAwMDAwMCBhbHNvIGFsbG93cyBtb3JlIHNicmsoMikgc3BhY2UuCi0rICAgICAgYXJjaGl2 ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LWgsJHNvbmFtZSAke3dsfS0taW1hZ2UtYmFzZSxgZXhwciAke1JBTkRPTS0k JH0gJSA0MDk2IC8gMiBcKiAyNjIxNDQgKyAxMzQyMTc3MjgwYCAtbyAkbGliJwotKyAgICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHM9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRf b2JqZGlyLyRzb25hbWUuZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9s cy1maWxlLCRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBl eHByICR7UkFORE9NLSQkfSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRs aWInCi0rICAgICAgOzsKLSsKLSsgICAgZ251KiB8IGxpbnV4KiB8IHRwZiogfCBrKmJzZCotZ251 IHwga29wZW5zb2xhcmlzKi1nbnUpCi0rICAgICAgdG1wX2RpZXQ9bm8KLSsgICAgICBpZiB0ZXN0 ICIkaG9zdF9vcyIgPSBsaW51eC1kaWV0bGliYzsgdGhlbgotKwljYXNlICRjY19iYXNlbmFtZSBp bgotKwkgIGRpZXRcICopIHRtcF9kaWV0PXllczs7CSMgbGludXgtZGlldGxpYmMgd2l0aCBzdGF0 aWMgbGlua2luZyAoIWRpZXQtZHluKQotKwllc2FjCi0rICAgICAgZmkKLSsgICAgICBpZiAkTEQg LS1oZWxwIDI+JjEgfCAkRUdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYv bnVsbCBcCi0rCSAmJiB0ZXN0ICIkdG1wX2RpZXQiID0gbm8KLSsgICAgICB0aGVuCi0rCXRtcF9h ZGRmbGFnPScgJHBpY19mbGFnJwotKwl0bXBfc2hhcmVkZmxhZz0nLXNoYXJlZCcKLSsJY2FzZSAk Y2NfYmFzZW5hbWUsJGhvc3RfY3B1IGluCi0rICAgICAgICBwZ2NjKikJCQkJIyBQb3J0bGFuZCBH cm91cCBDIGNvbXBpbGVyCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7d2x9LS13aG9s ZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNv bnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252XCI7IGRvbmU7 IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13aG9sZS1hcmNo aXZlJwotKwkgIHRtcF9hZGRmbGFnPScgJHBpY19mbGFnJwotKwkgIDs7Ci0rCXBnZjc3KiB8IHBn ZjkwKiB8IHBnZjk1KiB8IHBnZm9ydHJhbiopCi0rCQkJCQkjIFBvcnRsYW5kIEdyb3VwIGY3NyBh bmQgZjkwIGNvbXBpbGVycwotKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hv bGUtYXJjaGl2ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRj b252XCIgJiYgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25l OyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJj aGl2ZScKLSsJICB0bXBfYWRkZmxhZz0nICRwaWNfZmxhZyAtTW5vbWFpbicgOzsKLSsJZWNjKixp YTY0KiB8IGljYyosaWE2NCopCSMgSW50ZWwgQyBjb21waWxlciBvbiBpYTY0Ci0rCSAgdG1wX2Fk ZGZsYWc9JyAtaV9keW5hbWljJyA7OwotKwllZmMqLGlhNjQqIHwgaWZvcnQqLGlhNjQqKQkjIElu dGVsIEZvcnRyYW4gY29tcGlsZXIgb24gaWE2NAotKwkgIHRtcF9hZGRmbGFnPScgLWlfZHluYW1p YyAtbm9mb3JfbWFpbicgOzsKLSsJaWZjKiB8IGlmb3J0KikJCQkjIEludGVsIEZvcnRyYW4gY29t cGlsZXIKLSsJICB0bXBfYWRkZmxhZz0nIC1ub2Zvcl9tYWluJyA7OwotKwlsZjk1KikJCQkJIyBM YWhleSBGb3J0cmFuIDguMQotKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQotKwkgIHRtcF9z aGFyZWRmbGFnPSctLXNoYXJlZCcgOzsKLSsJeGxbY0NdKiB8IGJneGxbY0NdKiB8IG1waXhsW2ND XSopICMgSUJNIFhMIEMgOC4wIG9uIFBQQyAoZGVhbCB3aXRoIHhsZiBiZWxvdykKLSsJICB0bXBf c2hhcmVkZmxhZz0nLXFta3Nocm9iaicKLSsJICB0bXBfYWRkZmxhZz0gOzsKLSsJbnZjYyopCSMg Q3VkYSBDb21waWxlciBEcml2ZXIgMi4yCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JyR7 d2x9LS13aG9sZS1hcmNoaXZlYGZvciBjb252IGluICRjb252ZW5pZW5jZVwiXCI7IGRvIHRlc3Qg IC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252 XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13 aG9sZS1hcmNoaXZlJwotKwkgIGNvbXBpbGVyX25lZWRzX29iamVjdD15ZXMKLSsJICA7OwotKwll c2FjCi0rCWNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotKwkqU3VuXCBDKikJCQkjIFN1 biBDIDUuOQotKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS0td2hvbGUtYXJjaGl2 ZWBuZXdfY29udmVuaWVuY2U9OyBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0 IC16IFwiJGNvbnZcIiB8fCBuZXdfY29udmVuaWVuY2U9XCIkbmV3X2NvbnZlbmllbmNlLCRjb252 XCI7IGRvbmU7IGZ1bmNfZWNob19hbGwgXCIkbmV3X2NvbnZlbmllbmNlXCJgICR7d2x9LS1uby13 aG9sZS1hcmNoaXZlJwotKwkgIGNvbXBpbGVyX25lZWRzX29iamVjdD15ZXMKLSsJICB0bXBfc2hh cmVkZmxhZz0nLUcnIDs7Ci0rCSpTdW5cIEYqKQkJCSMgU3VuIEZvcnRyYW4gOC4zCi0rCSAgdG1w X3NoYXJlZGZsYWc9Jy1HJyA7OwotKwllc2FjCi0rCWFyY2hpdmVfY21kcz0nJENDICciJHRtcF9z aGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsKLSsgICAgICAgIGlmIHRlc3Qg Ingkc3VwcG9ydHNfYW5vbl92ZXJzaW9uaW5nIiA9IHh5ZXM7IHRoZW4KLSsgICAgICAgICAgYXJj aGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lLnZlcn4KLSsJICAgIGNhdCAkZXhwb3J0X3N5bWJvbHMgfCBzZWQgLWUgInMvXCguKlwpL1wx Oy8iID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJICAgIGVjaG8gImxvY2FsOiAq OyB9OyIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkgICAgJENDICciJHRtcF9z aGFyZWRmbGFnIiIkdG1wX2FkZGZsYWciJyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1zY3JpcHQgJHt3bH0kb3V0 cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsgICAgICAgIGZpCi0rCi0rCWNhc2Ug JGNjX2Jhc2VuYW1lIGluCi0rCXhsZiogfCBiZ2YqIHwgYmd4bGYqIHwgbXBpeGxmKikKLSsJICAj IElCTSBYTCBGb3J0cmFuIDEwLjEgb24gUFBDIGNhbm5vdCBjcmVhdGUgc2hhcmVkIGxpYnMgaXRz ZWxmCi0rCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9Jy0td2hvbGUtYXJjaGl2ZSRjb252ZW5p ZW5jZSAtLW5vLXdob2xlLWFyY2hpdmUnCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0K LSsJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPSctcnBhdGggJGxpYmRpcicKLSsJICBh cmNoaXZlX2NtZHM9JyRMRCAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3Mg LXNvbmFtZSAkc29uYW1lIC1vICRsaWInCi0rCSAgaWYgdGVzdCAieCRzdXBwb3J0c19hbm9uX3Zl cnNpb25pbmciID0geHllczsgdGhlbgotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAi eyBnbG9iYWw6IiA+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLnZlcn4KLSsJICAgICAgY2F0ICRl eHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1dF9vYmpkaXIv JGxpYm5hbWUudmVyfgotKwkgICAgICBlY2hvICJsb2NhbDogKjsgfTsiID4+ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLnZlcn4KLSsJICAgICAgJExEIC1zaGFyZWQgJGxpYm9ianMgJGRlcGxpYnMg JGxpbmtlcl9mbGFncyAtc29uYW1lICRzb25hbWUgLXZlcnNpb24tc2NyaXB0ICRvdXRwdXRfb2Jq ZGlyLyRsaWJuYW1lLnZlciAtbyAkbGliJwotKwkgIGZpCi0rCSAgOzsKLSsJZXNhYwotKyAgICAg IGVsc2UKLSsgICAgICAgIGxkX3NobGlicz1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsg ICAgbmV0YnNkKikKLSsgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9f RUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzIC1vICRsaWInCi0rCXdsYXJjPQotKyAgICAg IGVsc2UKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0r CWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVw bGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWlu LXN5bWJvbHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsgICAgICBmaQotKyAg ICAgIDs7Ci0rCi0rICAgIHNvbGFyaXMqKQotKyAgICAgIGlmICRMRCAtdiAyPiYxIHwgJEdSRVAg J0JGRCAyXC44JyA+IC9kZXYvbnVsbDsgdGhlbgotKwlsZF9zaGxpYnM9bm8KLSsJY2F0IDw8X0xU X0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IFRoZSByZWxlYXNlcyAyLjguKiBvZiB0aGUgR05V IGxpbmtlciBjYW5ub3QgcmVsaWFibHkKLSsqKiogY3JlYXRlIHNoYXJlZCBsaWJyYXJpZXMgb24g U29sYXJpcyBzeXN0ZW1zLiAgVGhlcmVmb3JlLCBsaWJ0b29sCi0rKioqIGlzIGRpc2FibGluZyBz aGFyZWQgbGlicmFyaWVzIHN1cHBvcnQuICBXZSB1cmdlIHlvdSB0byB1cGdyYWRlIEdOVQotKyoq KiBiaW51dGlscyB0byByZWxlYXNlIDIuOS4xIG9yIG5ld2VyLiAgQW5vdGhlciBvcHRpb24gaXMg dG8gbW9kaWZ5Ci0rKioqIHlvdXIgUEFUSCBvciBjb21waWxlciBjb25maWd1cmF0aW9uIHNvIHRo YXQgdGhlIG5hdGl2ZSBsaW5rZXIgaXMKLSsqKiogdXNlZCwgYW5kIHRoZW4gcmVzdGFydC4KLSsK LStfTFRfRU9GCi0rICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBwb3J0 ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCWFyY2hpdmVfY21kcz0nJEND IC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwlhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9 LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHdsJGV4cG9ydF9z eW1ib2xzIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQot KyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2Fy ZSogfCBPcGVuVU5JWCopCi0rICAgICAgY2FzZSBgJExEIC12IDI+JjFgIGluCi0rICAgICAgICAq XCBbMDFdLiogfCAqXCAyLlswLTldLiogfCAqXCAyLjFbMC01XS4qKQotKwlsZF9zaGxpYnM9bm8K LSsJY2F0IDw8X0xUX0VPRiAxPiYyCi0rCi0rKioqIFdhcm5pbmc6IFJlbGVhc2VzIG9mIHRoZSBH TlUgbGlua2VyIHByaW9yIHRvIDIuMTYuOTEuMC4zIGNhbiBub3QKLSsqKiogcmVsaWFibHkgY3Jl YXRlIHNoYXJlZCBsaWJyYXJpZXMgb24gU0NPIHN5c3RlbXMuICBUaGVyZWZvcmUsIGxpYnRvb2wK LSsqKiogaXMgZGlzYWJsaW5nIHNoYXJlZCBsaWJyYXJpZXMgc3VwcG9ydC4gIFdlIHVyZ2UgeW91 IHRvIHVwZ3JhZGUgR05VCi0rKioqIGJpbnV0aWxzIHRvIHJlbGVhc2UgMi4xNi45MS4wLjMgb3Ig bmV3ZXIuICBBbm90aGVyIG9wdGlvbiBpcyB0byBtb2RpZnkKLSsqKiogeW91ciBQQVRIIG9yIGNv bXBpbGVyIGNvbmZpZ3VyYXRpb24gc28gdGhhdCB0aGUgbmF0aXZlIGxpbmtlciBpcwotKyoqKiB1 c2VkLCBhbmQgdGhlbiByZXN0YXJ0LgotKwotK19MVF9FT0YKLSsJOzsKLSsJKikKLSsJICAjIEZv ciBzZWN1cml0eSByZWFzb25zLCBpdCBpcyBoaWdobHkgcmVjb21tZW5kZWQgdGhhdCB5b3UgYWx3 YXlzCi0rCSAgIyB1c2UgYWJzb2x1dGUgcGF0aHMgZm9yIG5hbWluZyBzaGFyZWQgbGlicmFyaWVz LCBhbmQgZXhjbHVkZSB0aGUKLSsJICAjIERUX1JVTlBBVEggdGFnIGZyb20gZXhlY3V0YWJsZXMg YW5kIGxpYnJhcmllcy4gIEJ1dCBkb2luZyBzbwotKwkgICMgcmVxdWlyZXMgdGhhdCB5b3UgY29t cGlsZSBldmVyeXRoaW5nIHR3aWNlLCB3aGljaCBpcyBhIHBhaW4uCi0rCSAgaWYgJExEIC0taGVs cCAyPiYxIHwgJEdSRVAgJzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsg dGhlbgotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0k bGliZGlyJwotKwkgICAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsJICAg IGFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1m aWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGliJwotKwkgIGVsc2UKLSsJICAgIGxkX3NobGli cz1ubwotKwkgIGZpCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIDs7Ci0rCi0rICAgIHN1bm9z NCopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLWFzc2VydCBwdXJlLXRleHQgLUJzaGFyZWFi bGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIHdsYXJj PQotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhf dmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBpZiAkTEQgLS1oZWxwIDI+JjEg fCAkR1JFUCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0r CWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwlhcmNoaXZl X2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxpYnMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xz LWZpbGUgJHdsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rICAgICAgZWxzZQotKwlsZF9zaGxp YnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsKLSsgICAgaWYgdGVzdCAi JGxkX3NobGlicyIgPSBubzsgdGhlbgotKyAgICAgIHJ1bnBhdGhfdmFyPQotKyAgICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWM9Ci0rICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPQot KyAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPQotKyAgICBmaQotKyAgZWxzZQotKyAgICAj IFBPUlRNRSBmaWxsIGluIGEgZGVzY3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBsaW5rZXIgKG5v dCBHTlUgbGQpCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgYWl4MyopCi0rICAgICAgYWxs b3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsgICAgICBhbHdheXNfZXhwb3J0X3N5bWJv bHM9eWVzCi0rICAgICAgYXJjaGl2ZV9leHBzeW1fY21kcz0nJExEIC1vICRvdXRwdXRfb2JqZGly LyRzb25hbWUgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9mbGFncyAtYkU6JGV4cG9ydF9zeW1i b2xzIC1UNTEyIC1INTEyIC1iTTpTUkV+JEFSICRBUl9GTEFHUyAkbGliICRvdXRwdXRfb2JqZGly LyRzb25hbWUnCi0rICAgICAgIyBOb3RlOiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVj dG9yaWVzIGluIExJQlBBVEggaWYgdGhlcmUKLSsgICAgICAjIGFyZSBubyBkaXJlY3RvcmllcyBz cGVjaWZpZWQgYnkgLUwuCi0rICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSsgICAgICBpZiB0 ZXN0ICIkR0NDIiA9IHllcyAmJiB0ZXN0IC16ICIkbHRfcHJvZ19jb21waWxlcl9zdGF0aWMiOyB0 aGVuCi0rCSMgTmVpdGhlciBkaXJlY3QgaGFyZGNvZGluZyBub3Igc3RhdGljIGxpbmtpbmcgaXMg c3VwcG9ydGVkIHdpdGggYQotKwkjIGJyb2tlbiBjb2xsZWN0Mi4KLSsJaGFyZGNvZGVfZGlyZWN0 PXVuc3VwcG9ydGVkCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBhaXhbNC05XSopCi0r ICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBPbiBJQTY0LCB0aGUg bGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAotKwkj IGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KLSsJYWl4X3VzZV9ydW50aW1lbGlua2luZz1u bwotKwlleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0JwotKwlub19lbnRyeV9mbGFnPSIiCi0rICAgICAg ZWxzZQotKwkjIElmIHdlJ3JlIHVzaW5nIEdOVSBubSwgdGhlbiB3ZSBkb24ndCB3YW50IHRoZSAi LUMiIG9wdGlvbi4KLSsJIyAtQyBtZWFucyBkZW1hbmdsZSB0byBBSVggbm0sIGJ1dCBtZWFucyBk b24ndCBkZW1hbmdsZSB3aXRoIEdOVSBubQotKwkjIEFsc28sIEFJWCBubSB0cmVhdHMgd2VhayBk ZWZpbmVkIHN5bWJvbHMgbGlrZSBvdGhlciBnbG9iYWwKLSsJIyBkZWZpbmVkIHN5bWJvbHMsIHdo ZXJlYXMgR05VIG5tIG1hcmtzIHRoZW0gYXMgIlciLgotKwlpZiAkTk0gLVYgMj4mMSB8ICRHUkVQ ICdHTlUnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NIC1C cGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdrICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8 fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJCIikgfHwgKFwkIDIgPT0gIlciKSkgJiYgKHN1 YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4g JGV4cG9ydF9zeW1ib2xzJwotKwllbHNlCi0rCSAgZXhwb3J0X3N5bWJvbHNfY21kcz0nJE5NIC1C Q3BnICRsaWJvYmpzICRjb252ZW5pZW5jZSB8IGF3ayAnXCcneyBpZiAoKChcJCAyID09ICJUIikg fHwgKFwkIDIgPT0gIkQiKSB8fCAoXCQgMiA9PSAiQiIpKSAmJiAoc3Vic3RyKFwkIDMsMSwxKSAh PSAiLiIpKSB7IHByaW50IFwkIDMgfSB9J1wnJyB8IHNvcnQgLXUgPiAkZXhwb3J0X3N5bWJvbHMn Ci0rCWZpCi0rCWFpeF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsKLSsJIyBUZXN0IGlmIHdlIGFy ZSB0cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCi0rCSMgQUlYIHN0eWxl IGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQotKwkjIG5lZWQg dG8gZG8gcnVudGltZSBsaW5raW5nLgotKwljYXNlICRob3N0X29zIGluIGFpeDQuWzIzXXxhaXg0 LlsyM10uKnxhaXhbNS05XSopCi0rCSAgZm9yIGxkX2ZsYWcgaW4gJExERkxBR1M7IGRvCi0rCSAg aWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxkX2ZsYWcgPSAiLVdsLC1icnRs Iik7IHRoZW4KLSsJICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCi0rCSAgICBicmVhawot KwkgIGZpCi0rCSAgZG9uZQotKwkgIDs7Ci0rCWVzYWMKLSsKLSsJZXhwX3N5bV9mbGFnPSctYmV4 cG9ydCcKLSsJbm9fZW50cnlfZmxhZz0nLWJub2VudHJ5JwotKyAgICAgIGZpCi0rCi0rICAgICAg IyBXaGVuIGxhcmdlIGV4ZWN1dGFibGVzIG9yIHNoYXJlZCBvYmplY3RzIGFyZSBidWlsdCwgQUlY IGxkIGNhbgotKyAgICAgICMgaGF2ZSBwcm9ibGVtcyBjcmVhdGluZyB0aGUgdGFibGUgb2YgY29u dGVudHMuICBJZiBsaW5raW5nIGEgbGlicmFyeQotKyAgICAgICMgb3IgcHJvZ3JhbSByZXN1bHRz IGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCi0rICAgICAgIyBD WFhGTEFHUy9DRkxBR1MgZm9yIGcrKy9nY2MuICBJbiB0aGUgY2FzZXMgd2hlcmUgdGhhdCBpcyBu b3QKLSsgICAgICAjIGVub3VnaCB0byBmaXggdGhlIHByb2JsZW0sIGFkZCAtV2wsLWJiaWd0b2Mg dG8gTERGTEFHUy4KLSsKLSsgICAgICBhcmNoaXZlX2NtZHM9JycKLSsgICAgICBoYXJkY29kZV9k aXJlY3Q9eWVzCi0rICAgICAgaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlPXllcwotKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9JzonCi0rICAgICAgbGlua19hbGxfZGVwbGlicz15ZXMK LSsgICAgICBmaWxlX2xpc3Rfc3BlYz0nJHt3bH0tZiwnCi0rCi0rICAgICAgaWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KLSsJY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAxMl0u KikKLSsJIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFuZCBsb3dlciwgdGhl IGNoZWNrCi0rCSMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0MiBkb2Vzbid0IHdvcmsgdW5kZXIg NC4zKwotKwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50LXByb2ctbmFtZT1jb2xsZWN0MmAK LSsJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJgotKwkgICBzdHJpbmdzICIkY29sbGVj dDJuYW1lIiB8ICRHUkVQIHJlc29sdmVfbGliX25hbWUgPi9kZXYvbnVsbAotKwkgIHRoZW4KLSsJ ICAjIFdlIGhhdmUgcmV3b3JrZWQgY29sbGVjdDIKLSsJICA6Ci0rCSAgZWxzZQotKwkgICMgV2Ug aGF2ZSBvbGQgY29sbGVjdDIKLSsJICBoYXJkY29kZV9kaXJlY3Q9dW5zdXBwb3J0ZWQKLSsJICAj IEl0IGZhaWxzIHRvIGZpbmQgdW5pbnN0YWxsZWQgbGlicmFyaWVzIHdoZW4gdGhlIHVuaW5zdGFs bGVkCi0rCSAgIyBwYXRoIGlzIG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhh cmRjb2RlX21pbnVzX0wKLSsJICAjIHRvIHVuc3VwcG9ydGVkIGZvcmNlcyByZWxpbmtpbmcKLSsJ ICBoYXJkY29kZV9taW51c19MPXllcwotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1M JGxpYmRpcicKLSsJICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPQotKwkgIGZpCi0rCSAgOzsK LSsJZXNhYwotKwlzaGFyZWRfZmxhZz0nLXNoYXJlZCcKLSsJaWYgdGVzdCAiJGFpeF91c2VfcnVu dGltZWxpbmtpbmciID0geWVzOyB0aGVuCi0rCSAgc2hhcmVkX2ZsYWc9IiRzaGFyZWRfZmxhZyAi JyR7d2x9LUcnCi0rCWZpCi0rICAgICAgZWxzZQotKwkjIG5vdCB1c2luZyBnY2MKLSsJaWYgdGVz dCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsJIyBWaXN1YWxBZ2UgQysrLCBWZXJzaW9uIDUu NSBmb3IgQUlYIDVMIGZvciBJQS02NCwgQmV0YSAzIFJlbGVhc2UKLSsJIyBjaG9rZXMgb24gLVds LC1HLiBUaGUgZm9sbG93aW5nIGxpbmUgaXMgY29ycmVjdDoKLSsJICBzaGFyZWRfZmxhZz0nLUcn Ci0rCWVsc2UKLSsJICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRo ZW4KLSsJICAgIHNoYXJlZF9mbGFnPScke3dsfS1HJwotKwkgIGVsc2UKLSsJICAgIHNoYXJlZF9m bGFnPScke3dsfS1iTTpTUkUnCi0rCSAgZmkKLSsJZmkKLSsgICAgICBmaQotKwotKyAgICAgIGV4 cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tYmV4cGFsbCcKLSsgICAgICAjIEl0IHNlZW1z IHRoYXQgLWJleHBhbGwgZG9lcyBub3QgZXhwb3J0IHN5bWJvbHMgYmVnaW5uaW5nIHdpdGgKLSsg ICAgICAjIHVuZGVyc2NvcmUgKF8pLCBzbyBpdCBpcyBiZXR0ZXIgdG8gZ2VuZXJhdGUgYSBsaXN0 IG9mIHN5bWJvbHMgdG8gZXhwb3J0LgotKyAgICAgIGFsd2F5c19leHBvcnRfc3ltYm9scz15ZXMK LSsgICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJ IyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3RoZXIgcnVudGltZSBsb2FkaW5nIGZsYWdz ICgtYnJ0bCksCi0rCSMgLWJlcm9rIHdpbGwgbGluayB3aXRob3V0IGVycm9yLCBidXQgbWF5IHBy b2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Jy1iZXJvaycK LSsgICAgICAgICMgRGV0ZXJtaW5lIHRoZSBkZWZhdWx0IGxpYnBhdGggZnJvbSB0aGUgdmFsdWUg ZW5jb2RlZCBpbiBhbgotKyAgICAgICAgIyBlbXB0eSBleGVjdXRhYmxlLgotKyAgICAgICAgaWYg dGVzdCAiJHtsdF9jdl9haXhfbGlicGF0aCtzZXR9IiA9IHNldDsgdGhlbgotKyAgYWl4X2xpYnBh dGg9JGx0X2N2X2FpeF9saWJwYXRoCi0rZWxzZQotKyAgaWYgJHtsdF9jdl9haXhfbGlicGF0aF8r On0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0r ICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNv bmZkZWZzLmguICAqLwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY190cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgot KwotKyAgbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAgICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8s L14kLyB7Ci0rCSAgL14wLyB7Ci0rCSAgICAgIHMvXjAgICpcKFteIF0qXCkgKiQvXDEvCi0rCSAg ICAgIHAKLSsJICB9Ci0rICAgICAgfScKLSsgIGx0X2N2X2FpeF9saWJwYXRoXz1gZHVtcCAtSCBj b25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBh dGhfc2VkImAKLSsgICMgQ2hlY2sgZm9yIGEgNjQtYml0IG9iamVjdCBpZiB3ZSBkaWRuJ3QgZmlu ZCBhbnl0aGluZy4KLSsgIGlmIHRlc3QgLXogIiRsdF9jdl9haXhfbGlicGF0aF8iOyB0aGVuCi0r ICAgIGx0X2N2X2FpeF9saWJwYXRoXz1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4v ZGV2L251bGwgfCAkU0VEIC1uIC1lICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLSsgIGZpCi0rZmkK LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgIGlmIHRlc3QgLXogIiRsdF9jdl9h aXhfbGlicGF0aF8iOyB0aGVuCi0rICAgIGx0X2N2X2FpeF9saWJwYXRoXz0iL3Vzci9saWI6L2xp YiIKLSsgIGZpCi0rCi0rZmkKLSsKLSsgIGFpeF9saWJwYXRoPSRsdF9jdl9haXhfbGlicGF0aF8K LStmaQotKwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBh dGg6JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9 JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9 JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93X3VuZGVm aW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuIGZ1bmNfZWNob19hbGwgIiR7d2x9JHthbGxvd191bmRl ZmluZWRfZmxhZ30iOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRleHBvcnRf c3ltYm9scyAkc2hhcmVkX2ZsYWciCi0rICAgICAgZWxzZQotKwlpZiB0ZXN0ICIkaG9zdF9jcHUi ID0gaWE2NDsgdGhlbgotKwkgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LVIgJGxp YmRpcjovdXNyL2xpYjovbGliJwotKwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSIteiBub2RlZnMi Ci0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0iXCRDQyAkc2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0 X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICciXCR7d2x9JG5vX2VudHJ5X2ZsYWci JyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0ke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAnIlwke3dsfSRl eHBfc3ltX2ZsYWc6XCRleHBvcnRfc3ltYm9scyIKLSsJZWxzZQotKwkgIyBEZXRlcm1pbmUgdGhl IGRlZmF1bHQgbGlicGF0aCBmcm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuCi0rCSAjIGVtcHR5 IGV4ZWN1dGFibGUuCi0rCSBpZiB0ZXN0ICIke2x0X2N2X2FpeF9saWJwYXRoK3NldH0iID0gc2V0 OyB0aGVuCi0rICBhaXhfbGlicGF0aD0kbHRfY3ZfYWl4X2xpYnBhdGgKLStlbHNlCi0rICBpZiAk e2x0X2N2X2FpeF9saWJwYXRoXys6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0 LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sK LSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9saW5r ICIkTElORU5PIjsgdGhlbiA6Ci0rCi0rICBsdF9haXhfbGlicGF0aF9zZWQ9JwotKyAgICAgIC9J bXBvcnQgRmlsZSBTdHJpbmdzLywvXiQvIHsKLSsJICAvXjAvIHsKLSsJICAgICAgcy9eMCAgKlwo W14gXSpcKSAqJC9cMS8KLSsJICAgICAgcAotKwkgIH0KLSsgICAgICB9JwotKyAgbHRfY3ZfYWl4 X2xpYnBhdGhfPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQg LW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotKyAgIyBDaGVjayBmb3IgYSA2NC1iaXQgb2Jq ZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotKyAgaWYgdGVzdCAteiAiJGx0X2N2X2Fp eF9saWJwYXRoXyI7IHRoZW4KLSsgICAgbHRfY3ZfYWl4X2xpYnBhdGhfPWBkdW1wIC1IWDY0IGNv bmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0 aF9zZWQiYAotKyAgZmkKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRh Y19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotKyAg aWYgdGVzdCAteiAiJGx0X2N2X2FpeF9saWJwYXRoXyI7IHRoZW4KLSsgICAgbHRfY3ZfYWl4X2xp YnBhdGhfPSIvdXNyL2xpYjovbGliIgotKyAgZmkKLSsKLStmaQotKwotKyAgYWl4X2xpYnBhdGg9 JGx0X2N2X2FpeF9saWJwYXRoXwotK2ZpCi0rCi0rCSBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PScke3dsfS1ibGlicGF0aDokbGliZGlyOiciJGFpeF9saWJwYXRoIgotKwkgICMgV2FybmluZyAt IHdpdGhvdXQgdXNpbmcgdGhlIG90aGVyIHJ1biB0aW1lIGxvYWRpbmcgZmxhZ3MsCi0rCSAgIyAt YmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJvZHVjZSBhIGJyb2tlbiBs aWJyYXJ5LgotKwkgIG5vX3VuZGVmaW5lZF9mbGFnPScgJHt3bH0tYmVybm90b2snCi0rCSAgYWxs b3dfdW5kZWZpbmVkX2ZsYWc9JyAke3dsfS1iZXJvaycKLSsJICBpZiB0ZXN0ICIkd2l0aF9nbnVf bGQiID0geWVzOyB0aGVuCi0rCSAgICAjIFdlIG9ubHkgdXNlIHRoaXMgY29kZSBmb3IgR05VIGxk cyB0aGF0IHN1cHBvcnQgLS13aG9sZS1hcmNoaXZlLgotKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWM9JyR7d2x9LS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICR7d2x9LS1uby13aG9sZS1h cmNoaXZlJwotKwkgIGVsc2UKLSsJICAgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUgcHVsbGVk IGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcwotKwkgICAgd2hvbGVfYXJjaGl2ZV9m bGFnX3NwZWM9JyRjb252ZW5pZW5jZScKLSsJICBmaQotKwkgIGFyY2hpdmVfY21kc19uZWVkX2xj PXllcwotKwkgICMgVGhpcyBpcyBzaW1pbGFyIHRvIGhvdyBBSVggdHJhZGl0aW9uYWxseSBidWls ZHMgaXRzIHNoYXJlZCBsaWJyYXJpZXMuCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0iXCRDQyAk c2hhcmVkX2ZsYWciJyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJz ICR7d2x9LWJub2VudHJ5ICRjb21waWxlcl9mbGFncyAke3dsfS1iRTokZXhwb3J0X3N5bWJvbHMk e2FsbG93X3VuZGVmaW5lZF9mbGFnfX4kQVIgJEFSX0ZMQUdTICRvdXRwdXRfb2JqZGlyLyRsaWJu YW1lJHJlbGVhc2UuYSAkb3V0cHV0X29iamRpci8kc29uYW1lJwotKwlmaQotKyAgICAgIGZpCi0r ICAgICAgOzsKLSsKLSsgICAgYW1pZ2FvcyopCi0rICAgICAgY2FzZSAkaG9zdF9jcHUgaW4KLSsg ICAgICBwb3dlcnBjKQotKyAgICAgICAgICAgICMgc2VlIGNvbW1lbnQgYWJvdXQgQW1pZ2FPUzQg LnNvIHN1cHBvcnQKLSsgICAgICAgICAgICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJv YmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAk bGliJwotKyAgICAgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHM9JycKLSsgICAgICAgIDs7Ci0r ICAgICAgbTY4aykKLSsgICAgICAgICAgICBhcmNoaXZlX2NtZHM9JyRSTSAkb3V0cHV0X29iamRp ci9hMml4bGlicmFyeS5kYXRhfiRFQ0hPICIjZGVmaW5lIE5BTUUgJGxpYm5hbWUiID4gJG91dHB1 dF9vYmpkaXIvYTJpeGxpYnJhcnkuZGF0YX4kRUNITyAiI2RlZmluZSBMSUJSQVJZX0lEIDEiID4+ ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUgVkVSU0lPTiAk bWFqb3IiID4+ICRvdXRwdXRfb2JqZGlyL2EyaXhsaWJyYXJ5LmRhdGF+JEVDSE8gIiNkZWZpbmUg UkVWSVNJT04gJHJldmlzaW9uIiA+PiAkb3V0cHV0X29iamRpci9hMml4bGlicmFyeS5kYXRhfiRB UiAkQVJfRkxBR1MgJGxpYiAkbGlib2Jqc34kUkFOTElCICRsaWJ+KGNkICRvdXRwdXRfb2JqZGly ICYmIGEyaXhsaWJyYXJ5IC0zMiknCi0rICAgICAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nLUwkbGliZGlyJwotKyAgICAgICAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAg ICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBic2RpWzQ1XSopCi0rICAg ICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjPS1yZHluYW1pYwotKyAgICAgIDs7Ci0rCi0rICAg IGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsgICAgICAjIFdoZW4gbm90IHVz aW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZwotKyAgICAgICMg TWljcm9zb2Z0IFZpc3VhbCBDKysuCi0rICAgICAgIyBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj IGlzIGFjdHVhbGx5IG1lYW5pbmdsZXNzLCBhcyB0aGVyZSBpcwotKyAgICAgICMgbm8gc2VhcmNo IHBhdGggZm9yIERMTHMuCi0rICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICBjbCop Ci0rCSMgTmF0aXZlIE1TVkMKLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nICcKLSsJYWxs b3dfdW5kZWZpbmVkX2ZsYWc9dW5zdXBwb3J0ZWQKLSsJYWx3YXlzX2V4cG9ydF9zeW1ib2xzPXll cwotKwlmaWxlX2xpc3Rfc3BlYz0nQCcKLSsJIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5saWIgZmls ZXMsIG5vdCAuYSBmaWxlcy4KLSsJbGliZXh0PWxpYgotKwkjIFRlbGwgbHRtYWluIHRvIG1ha2Ug LmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KLSsJc2hyZXh0X2NtZHM9Ii5kbGwiCi0rCSMgRklY TUU6IFNldHRpbmcgbGlua25hbWVzIGhlcmUgaXMgYSBiYWQgaGFjay4KLSsJYXJjaGl2ZV9jbWRz PSckQ0MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkY29tcGlsZXJfZmxhZ3Mg JGRlcGxpYnMgLVdsLC1kbGx+bGlua25hbWVzPScKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0naWYg dGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KLSsJICAg IHNlZCAtbiAtZSAncy9cXFxcXFxcKC4qXFxcXFxcXCkvLWxpbmtcXFwgLUVYUE9SVDpcXFxcXFxc MS8nIC1lICcxXFxcIXAnIDwgJGV4cG9ydF9zeW1ib2xzID4gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZS5leHA7Ci0rCSAgZWxzZQotKwkgICAgc2VkIC1lICdzL1xcXFxcXFwoLipcXFxcXFxcKS8tbGlu a1xcXCAtRVhQT1JUOlxcXFxcXFwxLycgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRp ci8kc29uYW1lLmV4cDsKLSsJICBmaX4KLSsJICAkQ0MgLW8gJHRvb2xfb3V0cHV0X29iamRpciRz b25hbWUgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWJzICJAJHRvb2xfb3V0cHV0X29i amRpciRzb25hbWUuZXhwIiAtV2wsLURMTCwtSU1QTElCOiIkdG9vbF9vdXRwdXRfb2JqZGlyJGxp Ym5hbWUuZGxsLmxpYiJ+Ci0rCSAgbGlua25hbWVzPScKLSsJIyBUaGUgbGlua2VyIHdpbGwgbm90 IGF1dG9tYXRpY2FsbHkgYnVpbGQgYSBzdGF0aWMgbGliIGlmIHdlIGJ1aWxkIGEgRExMLgotKwkj IF9MVF9UQUdWQVIob2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcywgKT0ndHJ1ZScKLSsJZW5hYmxl X3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcz15ZXMKLSsJZXhwb3J0X3N5bWJvbHNfY21kcz0n JE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAkU0VEIC1l ICdcJycvXltCQ0RHUlNdWyBdL3MvLipbIF1cKFteIF0qXCkvXDEsREFUQS8nXCcnIHwgJFNFRCAt ZSAnXCcnL15bQUlUV11bIF0vcy8uKlsgXS8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9z eW1ib2xzJwotKwkjIERvbid0IHVzZSByYW5saWIKLSsJb2xkX3Bvc3RpbnN0YWxsX2NtZHM9J2No bW9kIDY0NCAkb2xkbGliJwotKwlwb3N0bGlua19jbWRzPSdsdF9vdXRwdXRmaWxlPSJAT1VUUFVU QCJ+Ci0rCSAgbHRfdG9vbF9vdXRwdXRmaWxlPSJAVE9PTF9PVVRQVVRAIn4KLSsJICBjYXNlICRs dF9vdXRwdXRmaWxlIGluCi0rCSAgICAqLmV4ZXwqLkVYRSkgOzsKLSsJICAgICopCi0rCSAgICAg IGx0X291dHB1dGZpbGU9IiRsdF9vdXRwdXRmaWxlLmV4ZSIKLSsJICAgICAgbHRfdG9vbF9vdXRw dXRmaWxlPSIkbHRfdG9vbF9vdXRwdXRmaWxlLmV4ZSIKLSsJICAgICAgOzsKLSsJICBlc2Fjfgot KwkgIGlmIHRlc3QgIiRNQU5JRkVTVF9UT09MIiAhPSAiOiIgJiYgdGVzdCAtZiAiJGx0X291dHB1 dGZpbGUubWFuaWZlc3QiOyB0aGVuCi0rCSAgICAkTUFOSUZFU1RfVE9PTCAtbWFuaWZlc3QgIiRs dF90b29sX291dHB1dGZpbGUubWFuaWZlc3QiIC1vdXRwdXRyZXNvdXJjZToiJGx0X3Rvb2xfb3V0 cHV0ZmlsZSIgfHwgZXhpdCAxOwotKwkgICAgJFJNICIkbHRfb3V0cHV0ZmlsZS5tYW5pZmVzdCI7 Ci0rCSAgZmknCi0rCTs7Ci0rICAgICAgKikKLSsJIyBBc3N1bWUgTVNWQyB3cmFwcGVyCi0rCWhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyAnCi0rCWFsbG93X3VuZGVmaW5lZF9mbGFnPXVuc3Vw cG9ydGVkCi0rCSMgVGVsbCBsdG1haW4gdG8gbWFrZSAubGliIGZpbGVzLCBub3QgLmEgZmlsZXMu Ci0rCWxpYmV4dD1saWIKLSsJIyBUZWxsIGx0bWFpbiB0byBtYWtlIC5kbGwgZmlsZXMsIG5vdCAu c28gZmlsZXMuCi0rCXNocmV4dF9jbWRzPSIuZGxsIgotKwkjIEZJWE1FOiBTZXR0aW5nIGxpbmtu YW1lcyBoZXJlIGlzIGEgYmFkIGhhY2suCi0rCWFyY2hpdmVfY21kcz0nJENDIC1vICRsaWIgJGxp Ym9ianMgJGNvbXBpbGVyX2ZsYWdzIGBmdW5jX2VjaG9fYWxsICIkZGVwbGlicyIgfCAkU0VEICdc JydzLyAtbGMkLy8nXCcnYCAtbGluayAtZGxsfmxpbmtuYW1lcz0nCi0rCSMgVGhlIGxpbmtlciB3 aWxsIGF1dG9tYXRpY2FsbHkgYnVpbGQgYSAubGliIGZpbGUgaWYgd2UgYnVpbGQgYSBETEwuCi0r CW9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9J3RydWUnCi0rCSMgRklYTUU6IFNob3VsZCBsZXQg dGhlIHVzZXIgc3BlY2lmeSB0aGUgbGliIHByb2dyYW0uCi0rCW9sZF9hcmNoaXZlX2NtZHM9J2xp YiAtT1VUOiRvbGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicycKLSsJZW5hYmxlX3NoYXJlZF93aXRo X3N0YXRpY19ydW50aW1lcz15ZXMKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsKLSsg ICAgZGFyd2luKiB8IHJoYXBzb2R5KikKLSsKLSsKLSsgIGFyY2hpdmVfY21kc19uZWVkX2xjPW5v Ci0rICBoYXJkY29kZV9kaXJlY3Q9bm8KLSsgIGhhcmRjb2RlX2F1dG9tYXRpYz15ZXMKLSsgIGhh cmRjb2RlX3NobGlicGF0aF92YXI9dW5zdXBwb3J0ZWQKLSsgIGlmIHRlc3QgIiRsdF9jdl9sZF9m b3JjZV9sb2FkIiA9ICJ5ZXMiOyB0aGVuCi0rICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSdg Zm9yIGNvbnYgaW4gJGNvbnZlbmllbmNlXCJcIjsgZG8gdGVzdCAgLW4gXCIkY29udlwiICYmIG5l d19jb252ZW5pZW5jZT1cIiRuZXdfY29udmVuaWVuY2UgJHt3bH0tZm9yY2VfbG9hZCwkY29udlwi OyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCcKLSsgIGVsc2UKLSsg ICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JycKLSsgIGZpCi0rICBsaW5rX2FsbF9kZXBsaWJz PXllcwotKyAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9IiRfbHRfZGFyX2FsbG93X3VuZGVmaW5lZCIK LSsgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICBpZm9ydCopIF9sdF9kYXJfY2FuX3NoYXJl ZD15ZXMgOzsKLSsgICAgICopIF9sdF9kYXJfY2FuX3NoYXJlZD0kR0NDIDs7Ci0rICBlc2FjCi0r ICBpZiB0ZXN0ICIkX2x0X2Rhcl9jYW5fc2hhcmVkIiA9ICJ5ZXMiOyB0aGVuCi0rICAgIG91dHB1 dF92ZXJib3NlX2xpbmtfY21kPWZ1bmNfZWNob19hbGwKLSsgICAgYXJjaGl2ZV9jbWRzPSJcJEND IC1keW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwk ZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBc JHZlcnN0cmluZyAkX2x0X2Rhcl9zaW5nbGVfbW9kJHtfbHRfZHN5bXV0aWx9IgotKyAgICBtb2R1 bGVfY21kcz0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRs aWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgotKyAgICBh cmNoaXZlX2V4cHN5bV9jbWRzPSJzZWQgJ3MsXixfLCcgPCBcJGV4cG9ydF9zeW1ib2xzID4gXCRv dXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3ltflwkQ0MgLWR5bmFtaWNsaWIg XCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBsaWJzIFwkY29t cGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVyc3RyaW5nICR7 X2x0X2Rhcl9zaW5nbGVfbW9kfSR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0i Ci0rICAgIG1vZHVsZV9leHBzeW1fY21kcz0ic2VkIC1lICdzLF4sXywnIDwgXCRleHBvcnRfc3lt Ym9scyA+IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIFwk YWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgLWJ1bmRsZSBcJGxpYm9ianMgXCRkZXBsaWJz IFwkY29tcGlsZXJfZmxhZ3Mke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0aWx9Igot KwotKyAgZWxzZQotKyAgbGRfc2hsaWJzPW5vCi0rICBmaQotKwotKyAgICAgIDs7Ci0rCi0rICAg IGRndXgqKQotKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0r ICAgICAgOzsKLSsKLSsgICAgZnJlZWJzZDEqKQotKyAgICAgIGxkX3NobGlicz1ubwotKyAgICAg IDs7Ci0rCi0rICAgICMgRnJlZUJTRCAyLjIuWzAxMl0gYWxsb3dzIHVzIHRvIGluY2x1ZGUgYysr cnQwLm8gdG8gZ2V0IEMrKyBjb25zdHJ1Y3RvcgotKyAgICAjIHN1cHBvcnQuICBGdXR1cmUgdmVy c2lvbnMgZG8gdGhpcyBhdXRvbWF0aWNhbGx5LCBidXQgYW4gZXhwbGljaXQgYysrcnQwLm8KLSsg ICAgIyBkb2VzIG5vdCBicmVhayBhbnl0aGluZywgYW5kIGhlbHBzIHNpZ25pZmljYW50bHkgKGF0 IHRoZSBjb3N0IG9mIGEgbGl0dGxlCi0rICAgICMgZXh0cmEgc3BhY2UpLgotKyAgICBmcmVlYnNk Mi4yKikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MgL3Vzci9saWIvYysrcnQwLm8nCi0rICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLVIkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVj dD15ZXMKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsg ICAgIyBVbmZvcnR1bmF0ZWx5LCBvbGRlciB2ZXJzaW9ucyBvZiBGcmVlQlNEIDIgZG8gbm90IGhh dmUgdGhpcyBmZWF0dXJlLgotKyAgICBmcmVlYnNkMiopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSck TEQgLUJzaGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwot KyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9taW51c19MPXllcwot KyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7OwotKwotKyAgICAjIEZy ZWVCU0QgMyBhbmQgZ3JlYXRlciB1c2VzIGdjYyAtc2hhcmVkIHRvIGRvIHNoYXJlZCBsaWJyYXJp ZXMuCi0rICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRD QyAtc2hhcmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKLSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0rICAg ICAgaGFyZGNvZGVfZGlyZWN0PXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8K LSsgICAgICA7OwotKwotKyAgICBocHV4OSopCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7 IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNo YXJlZCAkcGljX2ZsYWcgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29i amRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFnc350ZXN0ICRvdXRw dXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxp YicKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJFJNICRvdXRwdXRfb2JqZGlyLyRzb25h bWV+JExEIC1iICtiICRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRs aWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1l ID0gJGxpYiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgZmkKLSsg ICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9JGxpYmRpcicKLSsg ICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9 eWVzCi0rCi0rICAgICAgIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFy Y2ggUEFUSCwKLSsgICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGli cmFyeS4KLSsgICAgICBoYXJkY29kZV9taW51c19MPXllcwotKyAgICAgIGV4cG9ydF9keW5hbWlj X2ZsYWdfc3BlYz0nJHt3bH0tRScKLSsgICAgICA7OwotKwotKyAgICBocHV4MTAqKQotKyAgICAg IGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgot KwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAke3dsfStoICR7d2x9JHNvbmFt ZSAke3dsfStiICR7d2x9JGluc3RhbGxfbGliZGlyIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzPSckTEQgLWIgK2gg JHNvbmFtZSArYiAkaW5zdGFsbF9saWJkaXIgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IG5v OyB0aGVuCi0rCWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9K2IgJHt3bH0kbGliZGly JwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xkPScrYiAkbGliZGlyJwotKwloYXJkY29k ZV9saWJkaXJfc2VwYXJhdG9yPToKLSsJaGFyZGNvZGVfZGlyZWN0PXllcwotKwloYXJkY29kZV9k aXJlY3RfYWJzb2x1dGU9eWVzCi0rCWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScK LSsJIyBoYXJkY29kZV9taW51c19MOiBOb3QgcmVhbGx5IGluIHRoZSBzZWFyY2ggUEFUSCwKLSsJ IyBidXQgYXMgdGhlIGRlZmF1bHQgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnkuCi0rCWhhcmRjb2Rl X21pbnVzX0w9eWVzCi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICBocHV4MTEqKQotKyAg ICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhl bgotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBhcmNoaXZlX2NtZHM9JyRD QyAtc2hhcmVkICR7d2x9K2ggJHt3bH0kc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0rCWlhNjQqKQotKwkgIGFyY2hpdmVfY21kcz0nJEND IC1zaGFyZWQgJHBpY19mbGFnICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K25vZGVmYXVsdHJw YXRoIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgIDs7Ci0r CSopCi0rCSAgYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHt3bH0raCAke3ds fSRzb25hbWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJvYmpzICRk ZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwllc2FjCi0rICAgICAgZWxzZQotKwlj YXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KikKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAk e3dsfStoICR7d2x9JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncycKLSsJICA7OwotKwlpYTY0KikKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtYiAke3dsfSto ICR7d2x9JHNvbmFtZSAke3dsfStub2RlZmF1bHRycGF0aCAtbyAkbGliICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncycKLSsJICA7OwotKwkqKQotKwotKwkgICMgT2xkZXIgdmVyc2lv bnMgb2YgdGhlIDExLjAwIGNvbXBpbGVyIGRvIG5vdCB1bmRlcnN0YW5kIC1iIHlldAotKwkgICMg KEhQOTI0NTMtMDEgQS4xMS4wMS4yMCBkb2Vzbid0LCBIUDkyNDUzLTAxIEIuMTEuWC4zNTE3NS0z NTE3Ni5HUCBkb2VzKQotKwkgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogY2hlY2tpbmcgaWYgJENDIHVuZGVyc3RhbmRzIC1iIiA+JjUKLSskYXNfZWNob19uICJjaGVj a2luZyBpZiAkQ0MgdW5kZXJzdGFuZHMgLWIuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X3Byb2df Y29tcGlsZXJfX2IrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX19iPW5vCi0rICAgc2F2ZV9MREZMQUdT PSIkTERGTEFHUyIKLSsgICBMREZMQUdTPSIkTERGTEFHUyAtYiIKLSsgICBlY2hvICIkbHRfc2lt cGxlX2xpbmtfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBpZiAoZXZhbCAkYWNf bGluayAyPmNvbmZ0ZXN0LmVycikgJiYgdGVzdCAtcyBjb25mdGVzdCRhY19leGVleHQ7IHRoZW4K LSsgICAgICMgVGhlIGxpbmtlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBp ZiBub3QgcmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdz Ci0rICAgICBpZiB0ZXN0IC1zIGNvbmZ0ZXN0LmVycjsgdGhlbgotKyAgICAgICAjIEFwcGVuZCBh bnkgZXJyb3JzIHRvIHRoZSBjb25maWcubG9nLgotKyAgICAgICBjYXQgY29uZnRlc3QuZXJyIDE+ JjUKLSsgICAgICAgJEVDSE8gIiRfbHRfbGlua2VyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9eJC9k JyA+IGNvbmZ0ZXN0LmV4cAotKyAgICAgICAkU0VEICcvXiQvZDsgL14gKisvZCcgY29uZnRlc3Qu ZXJyID5jb25mdGVzdC5lcjIKLSsgICAgICAgaWYgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3Qu ZXIyID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX19iPXll cwotKyAgICAgICBmaQotKyAgICAgZWxzZQotKyAgICAgICBsdF9jdl9wcm9nX2NvbXBpbGVyX19i PXllcwotKyAgICAgZmkKLSsgICBmaQotKyAgICRSTSAtciBjb25mdGVzdCoKLSsgICBMREZMQUdT PSIkc2F2ZV9MREZMQUdTIgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX19iIiA+JjUKLSskYXNfZWNo byAiJGx0X2N2X3Byb2dfY29tcGlsZXJfX2IiID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3Zf cHJvZ19jb21waWxlcl9fYiIgPSB4eWVzOyB0aGVuCi0rICAgIGFyY2hpdmVfY21kcz0nJENDIC1i ICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJGxp YiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rZWxzZQotKyAgICBhcmNoaXZl X2NtZHM9JyRMRCAtYiAraCAkc29uYW1lICtiICRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rZmkKLSsKLSsJICA7OwotKwllc2FjCi0rICAg ICAgZmkKLSsgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0rCWhhcmRjb2RlX2xp YmRpcl9zZXBhcmF0b3I9OgotKwotKwljYXNlICRob3N0X2NwdSBpbgotKwlocHBhKjY0KnxpYTY0 KikKLSsJICBoYXJkY29kZV9kaXJlY3Q9bm8KLSsJICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5v Ci0rCSAgOzsKLSsJKikKLSsJICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rCSAgaGFyZGNvZGVfZGly ZWN0X2Fic29sdXRlPXllcwotKwkgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tRScK LSsKLSsJICAjIGhhcmRjb2RlX21pbnVzX0w6IE5vdCByZWFsbHkgaW4gdGhlIHNlYXJjaCBQQVRI LAotKwkgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotKwkg IGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rCSAgOzsKLSsJZXNhYwotKyAgICAgIGZpCi0rICAgICAg OzsKLSsKLSsgICAgaXJpeDUqIHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsgICAgICBpZiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRDQyAtc2hhcmVkICRwaWNfZmxh ZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3Zl cnNpb24gJHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJIyBUcnkgdG8gdXNlIHRoZSAtZXhw b3J0ZWRfc3ltYm9sIGxkIG9wdGlvbiwgaWYgaXQgZG9lcyBub3QKLSsJIyB3b3JrLCBhc3N1bWUg dGhhdCAtZXhwb3J0c19maWxlIGRvZXMgbm90IHdvcmsgZWl0aGVyIGFuZAotKwkjIGltcGxpY2l0 bHkgZXhwb3J0IGFsbCBzeW1ib2xzLgotKwkjIFRoaXMgc2hvdWxkIGJlIHRoZSBzYW1lIGZvciBh bGwgbGFuZ3VhZ2VzLCBzbyBubyBwZXItdGFnIGNhY2hlIHZhcmlhYmxlLgotKwl7ICRhc19lY2hv ICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlICRob3N0 X29zIGxpbmtlciBhY2NlcHRzIC1leHBvcnRlZF9zeW1ib2wiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIHdoZXRoZXIgdGhlICRob3N0X29zIGxpbmtlciBhY2NlcHRzIC1leHBvcnRlZF9zeW1i b2wuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X2lyaXhfZXhwb3J0ZWRfc3ltYm9sKzp9IGZhbHNl OyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgc2F2ZV9M REZMQUdTPSIkTERGTEFHUyIKLSsJICAgTERGTEFHUz0iJExERkxBR1MgLXNoYXJlZCAke3dsfS1l eHBvcnRlZF9zeW1ib2wgJHt3bH1mb28gJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9L2Rldi9u dWxsIgotKwkgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0r LyogZW5kIGNvbmZkZWZzLmguICAqLwotK2ludCBmb28gKHZvaWQpIHsgcmV0dXJuIDA7IH0KLStf QUNFT0YKLStpZiBhY19mbl9jX3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0rICBsdF9jdl9p cml4X2V4cG9ydGVkX3N5bWJvbD15ZXMKLStlbHNlCi0rICBsdF9jdl9pcml4X2V4cG9ydGVkX3N5 bWJvbD1ubwotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4 dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgICAgICAg ICBMREZMQUdTPSIkc2F2ZV9MREZMQUdTIgotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbCIgPiY1 Ci0rJGFzX2VjaG8gIiRsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbCIgPiY2OyB9Ci0rCWlmIHRl c3QgIiRsdF9jdl9pcml4X2V4cG9ydGVkX3N5bWJvbCIgPSB5ZXM7IHRoZW4KLSsgICAgICAgICAg YXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBs aWJzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIk dmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJz dHJpbmciYCAke3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xv Y2F0aW9ucyAke3dsfS1leHBvcnRzX2ZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicK LSsJZmkKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJGxpYm9ianMg JGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzIC1zb25hbWUgJHNvbmFtZSBgdGVzdCAtbiAiJHZlcnN0 cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiLXNldF92ZXJzaW9uICR2ZXJzdHJpbmciYCAtdXBkYXRl X3JlZ2lzdHJ5ICR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWInCi0rCWFyY2hp dmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9m bGFncyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19h bGwgIi1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9v YmpkaXJ9L3NvX2xvY2F0aW9ucyAtZXhwb3J0c19maWxlICRleHBvcnRfc3ltYm9scyAtbyAkbGli JwotKyAgICAgIGZpCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9J25vJwotKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSsgICAg ICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsgICAgICBpbmhlcml0X3JwYXRoPXllcwot KyAgICAgIGxpbmtfYWxsX2RlcGxpYnM9eWVzCi0rICAgICAgOzsKLSsKLSsgICAgbmV0YnNkKikK LSsgICAgICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX18gPi9kZXYv bnVsbDsgdGhlbgotKwlhcmNoaXZlX2NtZHM9JyRMRCAtQnNoYXJlYWJsZSAtbyAkbGliICRsaWJv YmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnICAjIGEub3V0Ci0rICAgICAgZWxzZQotKwlhcmNo aXZlX2NtZHM9JyRMRCAtc2hhcmVkIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGxpbmtlcl9m bGFncycgICAgICAjIEVMRgotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlYz0nLVIkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgbmV3c29zNikKLSsgICAg ICBhcmNoaXZlX2NtZHM9JyRMRCAtRyAtaCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRlcGxp YnMgJGxpbmtlcl9mbGFncycKLSsgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0rICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAg IGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92 YXI9bm8KLSsgICAgICA7OwotKwotKyAgICAqbnRvKiB8ICpxbngqKQotKyAgICAgIDs7Ci0rCi0r ICAgIG9wZW5ic2QqKQotKyAgICAgIGlmIHRlc3QgLWYgL3Vzci9saWJleGVjL2xkLnNvOyB0aGVu Ci0rCWhhcmRjb2RlX2RpcmVjdD15ZXMKLSsJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKwlo YXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9eWVzCi0rCWlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18g fCAkQ0MgLUUgLSB8ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUi ID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtc2hh cmVkICRwaWNfZmxhZyAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycK LSsJICBhcmNoaXZlX2V4cHN5bV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW8gJGxpYiAk bGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmls ZSwkZXhwb3J0X3N5bWJvbHMnCi0rCSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0t cnBhdGgsJGxpYmRpcicKLSsJICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9LUUnCi0r CWVsc2UKLSsJICBjYXNlICRob3N0X29zIGluCi0rCSAgIG9wZW5ic2RbMDFdLiogfCBvcGVuYnNk Mi5bMC03XSB8IG9wZW5ic2QyLlswLTddLiopCi0rCSAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUJz aGFyZWFibGUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKLSsJICAgICA7OwotKwkgICAq KQotKwkgICAgIGFyY2hpdmVfY21kcz0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgICAgOzsKLSsJICBlc2FjCi0rCWZp Ci0rICAgICAgZWxzZQotKwlsZF9zaGxpYnM9bm8KLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0r ICAgIG9zMiopCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwot KyAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0rICAgICAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9 dW5zdXBwb3J0ZWQKLSsgICAgICBhcmNoaXZlX2NtZHM9JyRFQ0hPICJMSUJSQVJZICRsaWJuYW1l IElOSVRJTlNUQU5DRSIgPiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+JEVDSE8gIkRFU0NS SVBUSU9OIFwiJGxpYm5hbWVcIiIgPj4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVjaG8g REFUQSA+PiAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWZ+ZWNobyAiIFNJTkdMRSBOT05TSEFS RUQiID4+ICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZn5lY2hvIEVYUE9SVFMgPj4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUuZGVmfmVteGV4cCAkbGlib2JqcyA+PiAkb3V0cHV0X29iamRpci8k bGlibmFtZS5kZWZ+JENDIC1aZGxsIC1aY3J0ZGxsIC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMg JGNvbXBpbGVyX2ZsYWdzICRvdXRwdXRfb2JqZGlyLyRsaWJuYW1lLmRlZicKLSsgICAgICBvbGRf YXJjaGl2ZV9mcm9tX25ld19jbWRzPSdlbXhpbXAgLW8gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUu YSAkb3V0cHV0X29iamRpci8kbGlibmFtZS5kZWYnCi0rICAgICAgOzsKLSsKLSsgICAgb3NmMyop Ci0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYWxsb3dfdW5kZWZpbmVkX2Zs YWc9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwlhcmNoaXZlX2NtZHM9JyRD QyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRfZmxhZ30gJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBp bGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmci ICYmIGZ1bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7 d2x9LXVwZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1v ICRsaWInCi0rICAgICAgZWxzZQotKwlhbGxvd191bmRlZmluZWRfZmxhZz0nIC1leHBlY3RfdW5y ZXNvbHZlZCBcKicKLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAtc29uYW1lICRzb25hbWUg YHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVyc2lvbiAkdmVy c3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJwotKyAgICAgIGZpCi0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9J25vJwotKyAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicK LSsgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSsgICAgICA7OwotKwotKyAgICBv c2Y0KiB8IG9zZjUqKQkjIGFzIG9zZjMqIHdpdGggdGhlIGFkZGl0aW9uIG9mIC1tc3ltIGZsYWcK LSsgICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKwlhbGxvd191bmRlZmluZWRfZmxh Zz0nICR7d2x9LWV4cGVjdF91bnJlc29sdmVkICR7d2x9XConCi0rCWFyY2hpdmVfY21kcz0nJEND IC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkcGljX2ZsYWcgJGxpYm9ianMgJGRlcGxp YnMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBg dGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24g JHt3bH0kdmVyc3RyaW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2Jq ZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKyAgICAgIGVsc2UKLSsJYWxsb3dfdW5kZWZpbmVk X2ZsYWc9JyAtZXhwZWN0X3VucmVzb2x2ZWQgXConCi0rCWFyY2hpdmVfY21kcz0nJENDIC1zaGFy ZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxh Z3MgLW1zeW0gLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5nIiAmJiBmdW5jX2Vj aG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRw dXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0n Zm9yIGkgaW4gYGNhdCAkZXhwb3J0X3N5bWJvbHNgOyBkbyBwcmludGYgIiVzICVzXFxuIiAtZXhw b3J0ZWRfc3ltYm9sICJcJGkiID4+ICRsaWIuZXhwOyBkb25lOyBwcmludGYgIiVzXFxuIiAiLWhp ZGRlbiI+PiAkbGliLmV4cH4KLSsJJENDIC1zaGFyZWQke2FsbG93X3VuZGVmaW5lZF9mbGFnfSAk e3dsfS1pbnB1dCAke3dsfSRsaWIuZXhwICRjb21waWxlcl9mbGFncyAkbGlib2JqcyAkZGVwbGli cyAtc29uYW1lICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmICRFQ0hPICItc2V0X3Zl cnNpb24gJHZlcnN0cmluZyJgIC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19s b2NhdGlvbnMgLW8gJGxpYn4kUk0gJGxpYi5leHAnCi0rCi0rCSMgQm90aCBjIGFuZCBjeHggY29t cGlsZXIgc3VwcG9ydCAtcnBhdGggZGlyZWN0bHkKLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nLXJwYXRoICRsaWJkaXInCi0rICAgICAgZmkKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9s Yz0nbm8nCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06Ci0rICAgICAgOzsKLSsK LSsgICAgc29sYXJpcyopCi0rICAgICAgbm9fdW5kZWZpbmVkX2ZsYWc9JyAteiBkZWZzJwotKyAg ICAgIGlmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rCXdsYXJjPScke3dsfScKLSsJYXJjaGl2 ZV9jbWRzPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHt3bH0teiAke3dsfXRleHQgJHt3bH0taCAk e3dsfSRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r CWFyY2hpdmVfZXhwc3ltX2NtZHM9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4 cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAi bG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJICAkQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHt3 bH0teiAke3dsfXRleHQgJHt3bH0tTSAke3dsfSRsaWIuZXhwICR7d2x9LWggJHt3bH0kc29uYW1l IC1vICRsaWIgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcK LSsgICAgICBlbHNlCi0rCWNhc2UgYCRDQyAtViAyPiYxYCBpbgotKwkqIkNvbXBpbGVycyA1LjAi KikKLSsJICB3bGFyYz0nJwotKwkgIGFyY2hpdmVfY21kcz0nJExEIC1HJHthbGxvd191bmRlZmlu ZWRfZmxhZ30gLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxh Z3MnCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhw fmNhdCAkZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4 cH5lY2hvICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICRMRCAtRyR7YWxsb3dfdW5k ZWZpbmVkX2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVw bGlicyAkbGlua2VyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsJICA7OwotKwkqKQotKwkgIHdsYXJj PScke3dsfScKLSsJICBhcmNoaXZlX2NtZHM9JyRDQyAtRyR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9 IC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0r CSAgYXJjaGl2ZV9leHBzeW1fY21kcz0nZWNobyAieyBnbG9iYWw6IiA+ICRsaWIuZXhwfmNhdCAk ZXhwb3J0X3N5bWJvbHMgfCAkU0VEIC1lICJzL1woLipcKS9cMTsvIiA+PiAkbGliLmV4cH5lY2hv ICJsb2NhbDogKjsgfTsiID4+ICRsaWIuZXhwfgotKwkgICRDQyAtRyR7YWxsb3dfdW5kZWZpbmVk X2ZsYWd9IC1NICRsaWIuZXhwIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3N+JFJNICRsaWIuZXhwJwotKwkgIDs7Ci0rCWVzYWMKLSsgICAgICBmaQot KyAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKLSsgICAgICBoYXJk Y29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIHNv bGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0uKikgOzsKLSsgICAgICAqKQotKwkjIFRoZSBj b21waWxlciBkcml2ZXIgd2lsbCBjb21iaW5lIGFuZCByZW9yZGVyIGxpbmtlciBvcHRpb25zLAot KwkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlua2VyX2ZsYWcnLiAgR0NDIGRpc2NhcmRzIGl0IHdp dGhvdXQgYCR3bCcsCi0rCSMgYnV0IGlzIGNhcmVmdWwgZW5vdWdoIG5vdCB0byByZW9yZGVyLgot KwkjIFN1cHBvcnRlZCBzaW5jZSBTb2xhcmlzIDIuNiAobWF5YmUgMi41LjE/KQotKwlpZiB0ZXN0 ICIkR0NDIiA9IHllczsgdGhlbgotKwkgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjPScke3dsfS16 ICR7d2x9YWxsZXh0cmFjdCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3Qn Ci0rCWVsc2UKLSsJICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlYz0nLXogYWxsZXh0cmFjdCRjb252 ZW5pZW5jZSAteiBkZWZhdWx0ZXh0cmFjdCcKLSsJZmkKLSsJOzsKLSsgICAgICBlc2FjCi0rICAg ICAgbGlua19hbGxfZGVwbGlicz15ZXMKLSsgICAgICA7OwotKwotKyAgICBzdW5vczQqKQotKyAg ICAgIGlmIHRlc3QgIngkaG9zdF92ZW5kb3IiID0geHNlcXVlbnQ7IHRoZW4KLSsJIyBVc2UgJEND IHRvIGxpbmsgdW5kZXIgc2VxdWVudCwgYmVjYXVzZSBpdCB0aHJvd3MgaW4gc29tZSBleHRyYSAu bwotKwkjIGZpbGVzIHRoYXQgbWFrZSAuaW5pdCBhbmQgLmZpbmkgc2VjdGlvbnMgd29yay4KLSsJ YXJjaGl2ZV9jbWRzPSckQ0MgLUcgJHt3bH0taCAkc29uYW1lIC1vICRsaWIgJGxpYm9ianMgJGRl cGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKyAgICAgIGVsc2UKLSsJYXJjaGl2ZV9jbWRzPSckTEQg LWFzc2VydCBwdXJlLXRleHQgLUJzdGF0aWMgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlu a2VyX2ZsYWdzJwotKyAgICAgIGZpCi0rICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0n LUwkbGliZGlyJwotKyAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSsgICAgICBoYXJkY29kZV9t aW51c19MPXllcwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICA7Owot KwotKyAgICBzeXN2NCkKLSsgICAgICBjYXNlICRob3N0X3ZlbmRvciBpbgotKwlzbmkpCi0rCSAg YXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRsaW5rZXJfZmxhZ3MnCi0rCSAgaGFyZGNvZGVfZGlyZWN0PXllcyAjIGlzIHRoaXMgcmVhbGx5 IHRydWU/Pz8KLSsJOzsKLSsJc2llbWVucykKLSsJICAjIyBMRCBpcyBsZCBpdCBtYWtlcyBhIFBM QU1MSUIKLSsJICAjIyBDQyBqdXN0IG1ha2VzIGEgR3Jvc3NNb2R1bGUuCi0rCSAgYXJjaGl2ZV9j bWRzPSckTEQgLUcgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKwkg IHJlbG9hZF9jbWRzPSckQ0MgLXIgLW8gJG91dHB1dCRyZWxvYWRfb2JqcycKLSsJICBoYXJkY29k ZV9kaXJlY3Q9bm8KLSsgICAgICAgIDs7Ci0rCW1vdG9yb2xhKQotKwkgIGFyY2hpdmVfY21kcz0n JExEIC1HIC1oICRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdz JwotKwkgIGhhcmRjb2RlX2RpcmVjdD1ubyAjTW90b3JvbGEgbWFudWFsIHNheXMgeWVzLCBidXQg bXkgdGVzdHMgc2F5IHRoZXkgbGllCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgICAgIHJ1bnBhdGhf dmFyPSdMRF9SVU5fUEFUSCcKLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyPW5vCi0rICAg ICAgOzsKLSsKLSsgICAgc3lzdjQuMyopCi0rICAgICAgYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWgg JHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rICAgICAg aGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj1ubwotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3Bl Yz0nLUJleHBvcnQnCi0rICAgICAgOzsKLSsKLSsgICAgc3lzdjQqTVAqKQotKyAgICAgIGlmIHRl c3QgLWQgL3Vzci9uZWM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckTEQgLUcgLWggJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRsaW5rZXJfZmxhZ3MnCi0rCWhhcmRjb2RlX3NobGli cGF0aF92YXI9bm8KLSsJcnVucGF0aF92YXI9TERfUlVOX1BBVEgKLSsJaGFyZGNvZGVfcnVucGF0 aF92YXI9eWVzCi0rCWxkX3NobGlicz15ZXMKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAg IHN5c3Y0KnV3MiogfCBzeXN2NU9wZW5VTklYKiB8IHN5c3Y1VW5peFdhcmU3LlswMV0uWzEwXSog fCB1bml4d2FyZTcqIHwgc2NvMy4ydjUuMC5bMDI0XSopCi0rICAgICAgbm9fdW5kZWZpbmVkX2Zs YWc9JyR7d2x9LXosdGV4dCcKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9sYz1ubwotKyAgICAg IGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8KLSsgICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BB VEgnCi0rCi0rICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRz PSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhwc3ltX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9 LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpz ICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0n JENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21kcz0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4 cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRj b21waWxlcl9mbGFncycKLSsgICAgICBmaQotKyAgICAgIDs7Ci0rCi0rICAgIHN5c3Y1KiB8IHNj bzMuMnY1KiB8IHNjbzV2NiopCi0rICAgICAgIyBOb3RlOiBXZSBjYW4gTk9UIHVzZSAteiBkZWZz IGFzIHdlIG1pZ2h0IGRlc2lyZSwgYmVjYXVzZSB3ZSBkbyBub3QKLSsgICAgICAjIGxpbmsgd2l0 aCAtbGMsIGFuZCB0aGF0IHdvdWxkIGNhdXNlIGFueSBzeW1ib2xzIHVzZWQgZnJvbSBsaWJjIHRv Ci0rICAgICAgIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBu byBsaWJyYXJ5IHdvdWxkCi0rICAgICAgIyBldmVyIGxpbmsgY29ycmVjdGx5LiAgSWYgd2UncmUg bm90IHVzaW5nIEdOVSBsZCB3ZSB1c2UgLXogdGV4dAotKyAgICAgICMgdGhvdWdoLCB3aGljaCBk b2VzIGNhdGNoIHNvbWUgYmFkIHN5bWJvbHMgYnV0IGlzbid0IGFzIGhlYXZ5LWhhbmRlZAotKyAg ICAgICMgYXMgLXogZGVmcy4KLSsgICAgICBub191bmRlZmluZWRfZmxhZz0nJHt3bH0teix0ZXh0 JwotKyAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnPScke3dsfS16LG5vZGVmcycKLSsgICAgICBh cmNoaXZlX2NtZHNfbmVlZF9sYz1ubwotKyAgICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXI9bm8K LSsgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1SLCRsaWJkaXInCi0rICAg ICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0nOicKLSsgICAgICBsaW5rX2FsbF9kZXBsaWJz PXllcwotKyAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYz0nJHt3bH0tQmV4cG9ydCcKLSsg ICAgICBydW5wYXRoX3Zhcj0nTERfUlVOX1BBVEgnCi0rCi0rICAgICAgaWYgdGVzdCAiJEdDQyIg PSB5ZXM7IHRoZW4KLSsJYXJjaGl2ZV9jbWRzPSckQ0MgLXNoYXJlZCAke3dsfS1oLCRzb25hbWUg LW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCWFyY2hpdmVfZXhw c3ltX2NtZHM9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9 LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsg ICAgICBlbHNlCi0rCWFyY2hpdmVfY21kcz0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGli ICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJYXJjaGl2ZV9leHBzeW1fY21k cz0nJENDIC1HICR7d2x9LUJleHBvcnQ6JGV4cG9ydF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAt byAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsgICAgICBmaQotKyAg ICAgIDs7Ci0rCi0rICAgIHV0czQqKQotKyAgICAgIGFyY2hpdmVfY21kcz0nJExEIC1HIC1oICRz b25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkbGlua2VyX2ZsYWdzJwotKyAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSsgICAgICBoYXJkY29kZV9zaGxp YnBhdGhfdmFyPW5vCi0rICAgICAgOzsKLSsKLSsgICAgKikKLSsgICAgICBsZF9zaGxpYnM9bm8K LSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgeCRob3N0X3ZlbmRvciA9IHhz bmk7IHRoZW4KLSsgICAgICBjYXNlICRob3N0IGluCi0rICAgICAgc3lzdjQgfCBzeXN2NC4ydXcy KiB8IHN5c3Y0LjMqIHwgc3lzdjUqKQotKwlleHBvcnRfZHluYW1pY19mbGFnX3NwZWM9JyR7d2x9 LUJsYXJnZWR5bnN5bScKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgIGZpCi0rICBmaQotKwotK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbGRfc2hsaWJz IiA+JjUKLSskYXNfZWNobyAiJGxkX3NobGlicyIgPiY2OyB9Ci0rdGVzdCAiJGxkX3NobGlicyIg PSBubyAmJiBjYW5fYnVpbGRfc2hhcmVkPW5vCi0rCi0rd2l0aF9nbnVfbGQ9JHdpdGhfZ251X2xk Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIwotKyMgRG8g d2UgbmVlZCB0byBleHBsaWNpdGx5IGxpbmsgbGliYz8KLSsjCi0rY2FzZSAieCRhcmNoaXZlX2Nt ZHNfbmVlZF9sYyIgaW4KLSt4fHh5ZXMpCi0rICAjIEFzc3VtZSAtbGMgc2hvdWxkIGJlIGFkZGVk Ci0rICBhcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKLSsKLSsgIGlmIHRlc3QgIiRlbmFibGVfc2hh cmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotKyAgICBjYXNlICRhcmNoaXZl X2NtZHMgaW4KLSsgICAgKid+JyopCi0rICAgICAgIyBGSVhNRTogd2UgbWF5IGhhdmUgdG8gZGVh bCB3aXRoIG11bHRpLWNvbW1hbmQgc2VxdWVuY2VzLgotKyAgICAgIDs7Ci0rICAgICckQ0MgJyop Ci0rICAgICAgIyBUZXN0IHdoZXRoZXIgdGhlIGNvbXBpbGVyIGltcGxpY2l0bHkgbGlua3Mgd2l0 aCAtbGMgc2luY2Ugb24gc29tZQotKyAgICAgICMgc3lzdGVtcywgLWxnY2MgaGFzIHRvIGNvbWUg YmVmb3JlIC1sYy4gSWYgZ2NjIGFscmVhZHkgcGFzc2VzIC1sYwotKyAgICAgICMgdG8gbGQsIGRv bid0IGFkZCAtbGMgYmVmb3JlIC1sZ2NjLgotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0 bHkgbGlua2VkIGluIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIC1sYyBzaG91 bGQgYmUgZXhwbGljaXRseSBsaW5rZWQgaW4uLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X2FyY2hp dmVfY21kc19uZWVkX2xjKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgJFJNIGNvbmZ0ZXN0KgotKwllY2hvICIkbHRfc2ltcGxlX2NvbXBp bGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsJaWYgeyB7IGV2YWwgZWNobyAi XCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFjX2NvbXBpbGVcIiI7IH0gPiY1 Ci0rICAoZXZhbCAkYWNfY29tcGlsZSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsg IHRlc3QgJGFjX3N0YXR1cyA9IDA7IH0gMj5jb25mdGVzdC5lcnI7IHRoZW4KLSsJICBzb25hbWU9 Y29uZnRlc3QKLSsJICBsaWI9Y29uZnRlc3QKLSsJICBsaWJvYmpzPWNvbmZ0ZXN0LiRhY19vYmpl eHQKLSsJICBkZXBsaWJzPQotKwkgIHdsPSRsdF9wcm9nX2NvbXBpbGVyX3dsCi0rCSAgcGljX2Zs YWc9JGx0X3Byb2dfY29tcGlsZXJfcGljCi0rCSAgY29tcGlsZXJfZmxhZ3M9LXYKLSsJICBsaW5r ZXJfZmxhZ3M9LXYKLSsJICB2ZXJzdHJpbmc9Ci0rCSAgb3V0cHV0X29iamRpcj0uCi0rCSAgbGli bmFtZT1jb25mdGVzdAotKwkgIGx0X3NhdmVfYWxsb3dfdW5kZWZpbmVkX2ZsYWc9JGFsbG93X3Vu ZGVmaW5lZF9mbGFnCi0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWc9Ci0rCSAgaWYgeyB7IGV2YWwg ZWNobyAiXCJcJGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFyY2hpdmVfY21kcyAy XD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxsIDJcPlwmMVwiIjsgfSA+JjUKLSsg IChldmFsICRhcmNoaXZlX2NtZHMgMlw+XCYxIFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVs bCAyXD5cJjEpIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRhY19zdGF0 dXMgPSAwOyB9Ci0rCSAgdGhlbgotKwkgICAgbHRfY3ZfYXJjaGl2ZV9jbWRzX25lZWRfbGM9bm8K LSsJICBlbHNlCi0rCSAgICBsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sYz15ZXMKLSsJICBmaQot KwkgIGFsbG93X3VuZGVmaW5lZF9mbGFnPSRsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnCi0r CWVsc2UKLSsJICBjYXQgY29uZnRlc3QuZXJyIDE+JjUKLSsJZmkKLSsJJFJNIGNvbmZ0ZXN0Kgot KwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sYyIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9hcmNo aXZlX2NtZHNfbmVlZF9sYyIgPiY2OyB9Ci0rICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGM9JGx0 X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjCi0rICAgICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsg IDs7Ci0rZXNhYwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiBjaGVja2luZyBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcy4u LiAiID4mNjsgfQotKwotK2lmIHRlc3QgIiRHQ0MiID0geWVzOyB0aGVuCi0rICBjYXNlICRob3N0 X29zIGluCi0rICAgIGRhcndpbiopIGx0X2F3a19hcmc9Ii9ebGlicmFyaWVzOi8sL0xSLyIgOzsK LSsgICAgKikgbHRfYXdrX2FyZz0iL15saWJyYXJpZXM6LyIgOzsKLSsgIGVzYWMKLSsgIGNhc2Ug JGhvc3Rfb3MgaW4KLSsgICAgbWluZ3cqIHwgY2VnY2MqKSBsdF9zZWRfc3RyaXBfZXE9InMsPVwo W0EtWmEtel06XCksXDEsZyIgOzsKLSsgICAgKikgbHRfc2VkX3N0cmlwX2VxPSJzLD0vLC8sZyIg OzsKLSsgIGVzYWMKLSsgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRDQyAtcHJpbnQtc2VhcmNoLWRp cnMgfCBhd2sgJGx0X2F3a19hcmcgfCAkU0VEIC1lICJzL15saWJyYXJpZXM6Ly8iIC1lICRsdF9z ZWRfc3RyaXBfZXFgCi0rICBjYXNlICRsdF9zZWFyY2hfcGF0aF9zcGVjIGluCi0rICAqXDsqKQot KyAgICAjIGlmIHRoZSBwYXRoIGNvbnRhaW5zICI7IiB0aGVuIHdlIGFzc3VtZSBpdCB0byBiZSB0 aGUgc2VwYXJhdG9yCi0rICAgICMgb3RoZXJ3aXNlIGRlZmF1bHQgdG8gdGhlIHN0YW5kYXJkIHBh dGggc2VwYXJhdG9yIChpLmUuICI6IikgLSBpdCBpcwotKyAgICAjIGFzc3VtZWQgdGhhdCBubyBw YXJ0IG9mIGEgbm9ybWFsIHBhdGhuYW1lIGNvbnRhaW5zICI7IiBidXQgdGhhdCBzaG91bGQKLSsg ICAgIyBva2F5IGluIHRoZSByZWFsIHdvcmxkIHdoZXJlICI7IiBpbiBkaXJwYXRocyBpcyBpdHNl bGYgcHJvYmxlbWF0aWMuCi0rICAgIGx0X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2Vh cmNoX3BhdGhfc3BlYyIgfCAkU0VEICdzLzsvIC9nJ2AKLSsgICAgOzsKLSsgICopCi0rICAgIGx0 X3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEICJz LyRQQVRIX1NFUEFSQVRPUi8gL2ciYAotKyAgICA7OwotKyAgZXNhYwotKyAgIyBPaywgbm93IHdl IGhhdmUgdGhlIHBhdGgsIHNlcGFyYXRlZCBieSBzcGFjZXMsIHdlIGNhbiBzdGVwIHRocm91Z2gg aXQKLSsgICMgYW5kIGFkZCBtdWx0aWxpYiBkaXIgaWYgbmVjZXNzYXJ5LgotKyAgbHRfdG1wX2x0 X3NlYXJjaF9wYXRoX3NwZWM9Ci0rICBsdF9tdWx0aV9vc19kaXI9YCRDQyAkQ1BQRkxBR1MgJENG TEFHUyAkTERGTEFHUyAtcHJpbnQtbXVsdGktb3MtZGlyZWN0b3J5IDI+L2Rldi9udWxsYAotKyAg Zm9yIGx0X3N5c19wYXRoIGluICRsdF9zZWFyY2hfcGF0aF9zcGVjOyBkbwotKyAgICBpZiB0ZXN0 IC1kICIkbHRfc3lzX3BhdGgvJGx0X211bHRpX29zX2RpciI7IHRoZW4KLSsgICAgICBsdF90bXBf bHRfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjICRsdF9zeXNf cGF0aC8kbHRfbXVsdGlfb3NfZGlyIgotKyAgICBlbHNlCi0rICAgICAgdGVzdCAtZCAiJGx0X3N5 c19wYXRoIiAmJiBcCi0rCWx0X3RtcF9sdF9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfdG1wX2x0X3Nl YXJjaF9wYXRoX3NwZWMgJGx0X3N5c19wYXRoIgotKyAgICBmaQotKyAgZG9uZQotKyAgbHRfc2Vh cmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF90bXBfbHRfc2VhcmNoX3BhdGhfc3BlYyIgfCBhd2sg JwotK0JFR0lOIHtSUz0iICI7IEZTPSIvfFxuIjt9IHsKLSsgIGx0X2Zvbz0iIjsKLSsgIGx0X2Nv dW50PTA7Ci0rICBmb3IgKGx0X2kgPSBORjsgbHRfaSA+IDA7IGx0X2ktLSkgewotKyAgICBpZiAo JGx0X2kgIT0gIiIgJiYgJGx0X2kgIT0gIi4iKSB7Ci0rICAgICAgaWYgKCRsdF9pID09ICIuLiIp IHsKLSsgICAgICAgIGx0X2NvdW50Kys7Ci0rICAgICAgfSBlbHNlIHsKLSsgICAgICAgIGlmIChs dF9jb3VudCA9PSAwKSB7Ci0rICAgICAgICAgIGx0X2Zvbz0iLyIgJGx0X2kgbHRfZm9vOwotKyAg ICAgICAgfSBlbHNlIHsKLSsgICAgICAgICAgbHRfY291bnQtLTsKLSsgICAgICAgIH0KLSsgICAg ICB9Ci0rICAgIH0KLSsgIH0KLSsgIGlmIChsdF9mb28gIT0gIiIpIHsgbHRfZnJlcVtsdF9mb29d Kys7IH0KLSsgIGlmIChsdF9mcmVxW2x0X2Zvb10gPT0gMSkgeyBwcmludCBsdF9mb287IH0KLSt9 J2AKLSsgICMgQVdLIHByb2dyYW0gYWJvdmUgZXJyb25lb3VzbHkgcHJlcGVuZHMgJy8nIHRvIEM6 L2Rvcy9wYXRocwotKyAgIyBmb3IgdGhlc2UgaG9zdHMuCi0rICBjYXNlICRob3N0X29zIGluCi0r ICAgIG1pbmd3KiB8IGNlZ2NjKikgbHRfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRsdF9zZWFy Y2hfcGF0aF9zcGVjIiB8XAotKyAgICAgICRTRUQgJ3MsL1woW0EtWmEtel06XCksXDEsZydgIDs7 Ci0rICBlc2FjCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkbHRfc2VhcmNo X3BhdGhfc3BlYyIgfCAkbHRfTkwyU1BgCi0rZWxzZQotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9z cGVjPSIvbGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgotK2ZpCi0rbGlicmFyeV9uYW1lc19z cGVjPQotK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCi0rc29uYW1lX3NwZWM9Ci0rc2hyZXh0X2Nt ZHM9Ii5zbyIKLStwb3N0aW5zdGFsbF9jbWRzPQotK3Bvc3R1bmluc3RhbGxfY21kcz0KLStmaW5p c2hfY21kcz0KLStmaW5pc2hfZXZhbD0KLStzaGxpYnBhdGhfdmFyPQotK3NobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD11bmtub3duCi0rdmVyc2lvbl90eXBlPW5vbmUKLStkeW5hbWljX2xpbmtl cj0iJGhvc3Rfb3MgbGQuc28iCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWIgL3Vz ci9saWIiCi0rbmVlZF9saWJfcHJlZml4PXVua25vd24KLStoYXJkY29kZV9pbnRvX2xpYnM9bm8K LSsKLSsjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3VyZSBpdCBkb2Vz IG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KLSsjIGZsYWdzIHRvIGJlIGxlZnQgd2l0aG91dCBhcmd1 bWVudHMKLStuZWVkX3ZlcnNpb249dW5rbm93bgotKwotK2Nhc2UgJGhvc3Rfb3MgaW4KLSthaXgz KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEnCi0rICBzaGxp YnBhdGhfdmFyPUxJQlBBVEgKLSsKLSsgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25pbmcgc3VwcG9y dCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KLSsgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICA7OwotKwot K2FpeFs0LTldKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5v Ci0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgIGlmIHRl c3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAgICMgQUlYIDUgc3VwcG9ydHMgSUE2NAot KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IGVsc2UKLSsgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdvdWxkIGNyZWF0 ZSBhbiBpbXBvcnQgZmlsZQotKyAgICAjIGZvciBkZXBlbmRlbmNlIGxpYnJhcmllcy4gIFRoZSBp bXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCi0rICAgICMgdGhlIGxpbmUgYCMhIC4nLiAgVGhp cyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KLSsgICAgIyBkZXBlbmQgb24g YC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQgaW4KLSsgICAg IyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMuMC4KLSsgICAgY2FzZSAk aG9zdF9vcyBpbgotKyAgICAgIGFpeDQgfCBhaXg0LlswMV0gfCBhaXg0LlswMV0uKikKLSsgICAg ICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIgJiYgX19HTlVD X01JTk9SX18gPj0gOTcpJwotKwkgICBlY2hvICcgeWVzICcKLSsJICAgZWNobyAnI2VuZGlmJzsg fSB8ICR7Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KLSsJOgotKyAgICAg IGVsc2UKLSsJY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsgICAg ZXNhYwotKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBzdXBwb3J0LCBz byBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0Ci0rICAgICMgc29uYW1lIGlu dG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1cHBvcnQgdG8K LSsgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNlZnVsIGluIGZ1 dHVyZS4KLSsgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0geWVzOyB0aGVu Ci0rICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4yIG9yIGxhdGVy KSB1c2UgbGliPG5hbWU+LnNvCi0rICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1lPi5hIHRvIGxl dCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKLSsgICAgICAjIHR5cGljYWwgQUlYIHNo YXJlZCBsaWJyYXJpZXMuCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHty ZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIGVsc2UKLSsgICAgICAj IFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmllcyB0aHJvdWdo IEFJWDQuMgotKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2luZyBydW4gdGlt ZSBsaW5raW5nLgotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0uYSAkbGlibmFtZS5hJwotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGZpCi0rICAgIHNobGlicGF0aF92YXI9TElCUEFU SAotKyAgZmkKLSsgIDs7Ci0rCi0rYW1pZ2FvcyopCi0rICBjYXNlICRob3N0X2NwdSBpbgotKyAg cG93ZXJwYykKLSsgICAgIyBTaW5jZSBKdWx5IDIwMDcgQW1pZ2FPUzQgb2ZmaWNpYWxseSBzdXBw b3J0cyAuc28gbGlicmFyaWVzLgotKyAgICAjIFdoZW4gY29tcGlsaW5nIHRoZSBleGVjdXRhYmxl LCBhZGQgLXVzZS1keW5sZCAtTHNvYmpzOiB0byB0aGUgY29tcGlsZWxpbmUuCi0rICAgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUke3NoYXJl ZF9leHR9JwotKyAgICA7OwotKyAgbTY4aykKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGli bmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKLSsgICAgIyBDcmVhdGUgJHtsaWJuYW1lfV9peGxp YnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KLSsgICAgZmluaXNoX2V2YWw9J2ZvciBsaWIg aW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJuYW1lPWBmdW5j X2VjaG9fYWxsICIkbGliIiB8ICRTRUQgJ1wnJ3MlXi4qL1woW14vXSpcKVwuaXhsaWJyYXJ5JCVc MSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5LmE7ICRzaG93 ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFyeS5hIjsgY2Qg L3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8fCBleGl0IDE7 IGRvbmUnCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK2Jlb3MqKQotKyAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIGR5bmFtaWNfbGlua2VyPSIk aG9zdF9vcyBsZC5zbyIKLSsgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICi0rICA7OwotKwot K2JzZGlbNDVdKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF92ZXJzaW9uPW5vCi0r ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1l JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNv bmZpZyAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHN5c19s aWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xpYiAvdXNyL2Nv bnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCi0rICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhf c3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgotKyAgIyB0aGUgZGVmYXVsdCBs ZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKLSsgICMgL3Vzci9Y MTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0IGxldCB1cyBh bGxvdwotKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dyYW1zCi0rICA7 OwotKwotK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsgIHZlcnNpb25fdHlw ZT13aW5kb3dzCi0rICBzaHJleHRfY21kcz0iLmRsbCIKLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAg bmVlZF9saWJfcHJlZml4PW5vCi0rCi0rICBjYXNlICRHQ0MsJGNjX2Jhc2VuYW1lIGluCi0rICB5 ZXMsKikKLSsgICAgIyBnY2MKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5kbGwu YScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4gYnkgcG9zdGlu c3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJhc2VuYW1lIFwk e2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRkaXIvJ1wnJ1wk e2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRsZGlyPSRkZXN0 ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAgICB0ZXN0IC1kIFwkZGxkaXIgfHwgbWtkaXIg LXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBcJGRsZGlyLyRk bG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZX4KLSsgICAgICBpZiB0ZXN0 IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0cmlwbGliJ1wnJzsgdGhlbgot KyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRsbmFtZSdcJycgfHwgZXhpdCBc JD87Ci0rICAgICAgZmknCi0rICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9YCRTSEVMTCAy PiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxwYXRoPSRk aXIvXCRkbGRsbH4KLSsgICAgICAgJFJNIFwkZGxwYXRoJwotKyAgICBzaGxpYnBhdGhfb3ZlcnJp ZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgY3lnd2luKikK LSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRoYW4gJ2xpYicK LSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9ebGliL2N5 Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7 c2hhcmVkX2V4dH0nCi0rCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjIC91c3IvbGliL3czMmFwaSIKLSsgICAgICA7OwotKyAgICBtaW5n dyogfCBjZWdjYyopCi0rICAgICAgIyBNaW5HVyBETExzIHVzZSB0cmFkaXRpb25hbCAnbGliJyBw cmVmaXgKLSsgICAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfWBlY2hvICR7cmVsZWFzZX0gfCAk U0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rICAgICAgOzsK LSsgICAgcHczMiopCi0rICAgICAgIyBwdzMyIERMTHMgdXNlICdwdycgcHJlZml4IHJhdGhlciB0 aGFuICdsaWInCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPSdgZWNobyAke2xpYm5hbWV9IHwg c2VkIC1lICdzL15saWIvcHcvJ2BgZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9bLl0vLS9n J2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIDs7Ci0rICAgIGVzYWMKLSsgICAg ZHluYW1pY19saW5rZXI9J1dpbjMyIGxkLmV4ZScKLSsgICAgOzsKLSsKLSsgICosY2wqKQotKyAg ICAjIE5hdGl2ZSBNU1ZDCi0rICAgIGxpYm5hbWVfc3BlYz0nJG5hbWUnCi0rICAgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2 ZXJzdWZmaXh9JHtzaGFyZWRfZXh0fScKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5h bWV9LmRsbC5saWInCi0rCi0rICAgIGNhc2UgJGJ1aWxkX29zIGluCi0rICAgIG1pbmd3KikKLSsg ICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ci0rICAgICAgbHRfc2F2ZV9pZnM9JElGUwot KyAgICAgIElGUz0nOycKLSsgICAgICBmb3IgbHRfcGF0aCBpbiAkTElCCi0rICAgICAgZG8KLSsg ICAgICAgIElGUz0kbHRfc2F2ZV9pZnMKLSsgICAgICAgICMgTGV0IERPUyB2YXJpYWJsZSBleHBh bnNpb24gcHJpbnQgdGhlIHNob3J0IDguMyBzdHlsZSBmaWxlIG5hbWUuCi0rICAgICAgICBsdF9w YXRoPWBjZCAiJGx0X3BhdGgiIDI+L2Rldi9udWxsICYmIGNtZCAvL0MgImZvciAlaSBpbiAoIi4i KSBkbyBAZWNobyAlfnNpImAKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyAkbHRfcGF0aCIKLSsgICAgICBkb25lCi0rICAgICAgSUZT PSRsdF9zYXZlX2lmcwotKyAgICAgICMgQ29udmVydCB0byBNU1lTIHN0eWxlLgotKyAgICAgIHN5 c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMi IHwgc2VkIC1lICdzfFxcXFx8L3xnJyAtZSAnc3wgXFwoW2EtekEtWl1cXCk6fCAvXFwxfGcnIC1l ICdzfF4gfHwnYAotKyAgICAgIDs7Ci0rICAgIGN5Z3dpbiopCi0rICAgICAgIyBDb252ZXJ0IHRv IHVuaXggZm9ybSwgdGhlbiB0byBkb3MgZm9ybSwgdGhlbiBiYWNrIHRvIHVuaXggZm9ybQotKyAg ICAgICMgYnV0IHRoaXMgdGltZSBkb3Mgc3R5bGUgKG5vIHNwYWNlcyEpIHNvIHRoYXQgdGhlIHVu aXggZm9ybSBsb29rcwotKyAgICAgICMgbGlrZSAvY3lnZHJpdmUvYy9QUk9HUkF+MTovY3lnZHIu Li4KLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YGN5Z3BhdGggLS1wYXRoIC0tdW5p eCAiJExJQiJgCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBjeWdwYXRoIC0tcGF0 aCAtLWRvcyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgMj4vZGV2L251bGxgCi0rICAgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBjeWdwYXRoIC0tcGF0aCAtLXVuaXggIiRzeXNfbGli X3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAicy8kUEFUSF9TRVBBUkFUT1IvIC9nImAKLSsg ICAgICA7OwotKyAgICAqKQotKyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJExJQiIK LSsgICAgICBpZiAkRUNITyAiJHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkR1JFUCAnO1tj LXpDLVpdOi8nID4vZGV2L251bGw7IHRoZW4KLSsgICAgICAgICMgSXQgaXMgbW9zdCBwcm9iYWJs eSBhIFdpbmRvd3MgZm9ybWF0IFBBVEguCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgJ3MvOy8gL2cn YAotKyAgICAgIGVsc2UKLSsgICAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gJEVDSE8g IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAtZSAicy8kUEFUSF9TRVBBUkFUT1Iv IC9nImAKLSsgICAgICBmaQotKyAgICAgICMgRklYTUU6IGZpbmQgdGhlIHNob3J0IG5hbWUgb3Ig dGhlIHBhdGggY29tcG9uZW50cywgYXMgc3BhY2VzIGFyZQotKyAgICAgICMgY29tbW9uLiAoZS5n LiAiUHJvZ3JhbSBGaWxlcyIgLT4gIlBST0dSQX4xIikKLSsgICAgICA7OwotKyAgICBlc2FjCi0r Ci0rICAgICMgRExMIGlzIGluc3RhbGxlZCB0byAkKGxpYmRpcikvLi4vYmluIGJ5IHBvc3RpbnN0 YWxsX2NtZHMKLSsgICAgcG9zdGluc3RhbGxfY21kcz0nYmFzZV9maWxlPWBiYXNlbmFtZSBcJHtm aWxlfWB+Ci0rICAgICAgZGxwYXRoPWAkU0hFTEwgMj4mMSAtYyAnXCcnLiAkZGlyLydcJydcJHti YXNlX2ZpbGV9J1wnJ2k7IGVjaG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBkbGRpcj0kZGVzdGRp ci9gZGlybmFtZSBcJGRscGF0aGB+Ci0rICAgICAgdGVzdCAtZCBcJGRsZGlyIHx8IG1rZGlyIC1w IFwkZGxkaXJ+Ci0rICAgICAgJGluc3RhbGxfcHJvZyAkZGlyLyRkbG5hbWUgXCRkbGRpci8kZGxu YW1lJwotKyAgICBwb3N0dW5pbnN0YWxsX2NtZHM9J2RsZGxsPWAkU0hFTEwgMj4mMSAtYyAnXCcn LiAkZmlsZTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRscGF0aD0kZGlyL1wkZGxkbGx+ Ci0rICAgICAgICRSTSBcJGRscGF0aCcKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo PXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGluay5leGUnCi0rICAgIDs7Ci0rCi0r ICAqKQotKyAgICAjIEFzc3VtZSBNU1ZDIHdyYXBwZXIKLSsgICAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9YGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJz dWZmaXh9JHtzaGFyZWRfZXh0fSAkbGlibmFtZS5saWInCi0rICAgIGR5bmFtaWNfbGlua2VyPSdX aW4zMiBsZC5leGUnCi0rICAgIDs7Ci0rICBlc2FjCi0rICAjIEZJWE1FOiBmaXJzdCB3ZSBzaG91 bGQgc2VhcmNoIC4gYW5kIHRoZSBkaXJlY3RvcnkgdGhlIGV4ZWN1dGFibGUgaXMgaW4KLSsgIHNo bGlicGF0aF92YXI9UEFUSAotKyAgOzsKLSsKLStkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKyAgZHlu YW1pY19saW5rZXI9IiRob3N0X29zIGR5bGQiCi0rICB2ZXJzaW9uX3R5cGU9ZGFyd2luCi0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQgJHtsaWJuYW1lfSRz aGFyZWRfZXh0JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHttYWpvcn0k c2hhcmVkX2V4dCcKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIHNobGli cGF0aF92YXI9RFlMRF9MSUJSQVJZX1BBVEgKLSsgIHNocmV4dF9jbWRzPSdgdGVzdCAuJG1vZHVs ZSA9IC55ZXMgJiYgZWNobyAuc28gfHwgZWNobyAuZHlsaWJgJwotKwotKyAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIC91c3IvbG9jYWwvbGliIgot KyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy91c3IvbG9jYWwvbGliIC9saWIgL3Vzci9s aWInCi0rICA7OwotKwotK2RndXgqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBuZWVkX2xp Yl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSRzaGFyZWRfZXh0JwotKyAgc29uYW1l X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGli cGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICA7OwotKwotK2ZyZWVic2QxKikKLSsgIGR5bmFt aWNfbGlua2VyPW5vCi0rICA7OwotKwotK2ZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgICMgRHJh Z29uRmx5IGRvZXMgbm90IGhhdmUgYW91dC4gIFdoZW4vaWYgdGhleSBpbXBsZW1lbnQgYSBuZXcK LSsgICMgdmVyc2lvbmluZyBtZWNoYW5pc20sIGFkanVzdCB0aGlzLgotKyAgaWYgdGVzdCAteCAv dXNyL2Jpbi9vYmpmb3JtYXQ7IHRoZW4KLSsgICAgb2JqZm9ybWF0PWAvdXNyL2Jpbi9vYmpmb3Jt YXRgCi0rICBlbHNlCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgZnJlZWJzZFsxMjNdKikg b2JqZm9ybWF0PWFvdXQgOzsKLSsgICAgKikgb2JqZm9ybWF0PWVsZiA7OwotKyAgICBlc2FjCi0r ICBmaQotKyAgdmVyc2lvbl90eXBlPWZyZWVic2QtJG9iamZvcm1hdAotKyAgY2FzZSAkdmVyc2lv bl90eXBlIGluCi0rICAgIGZyZWVic2QtZWxmKikKLSsgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgICBuZWVk X3ZlcnNpb249bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICA7OwotKyAgICBm cmVlYnNkLSopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgn Ci0rICAgICAgbmVlZF92ZXJzaW9uPXllcwotKyAgICAgIDs7Ci0rICBlc2FjCi0rICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgZnJlZWJzZDIq KQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICAgIDs7Ci0rICBmcmVl YnNkMy5bMDFdKiB8IGZyZWVic2RlbGYzLlswMV0qKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGZy ZWVic2QzLlsyLTldKiB8IGZyZWVic2RlbGYzLlsyLTldKiB8IFwKLSsgIGZyZWVic2Q0LlswLTVd IHwgZnJlZWJzZGVsZjQuWzAtNV0gfCBmcmVlYnNkNC4xLjEgfCBmcmVlYnNkZWxmNC4xLjEpCi0r ICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICBoYXJkY29kZV9pbnRvX2xp YnM9eWVzCi0rICAgIDs7Ci0rICAqKSAjIGZyb20gNC42IG9uLCBhbmQgRHJhZ29uRmx5Ci0rICAg IHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAgaGFyZGNvZGVfaW50b19saWJz PXllcwotKyAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStnbnUqKQotKyAgdmVyc2lvbl90eXBl PWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR7bWFqb3J9ICR7bGlibmFtZX0k e3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBoYXJk Y29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK2hhaWt1KikKLSsgIHZlcnNpb25fdHlwZT1s aW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGR5bmFt aWNfbGlua2VyPSIkaG9zdF9vcyBydW50aW1lX2xvYWRlciIKLSsgIGxpYnJhcnlfbmFtZXNfc3Bl Yz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScK LSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICBzaGxpYnBhdGhfdmFyPUxJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPXllcwotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Jy9ib290L2hvbWUvY29u ZmlnL2xpYiAvYm9vdC9jb21tb24vbGliIC9ib290L3N5c3RlbS9saWInCi0rICBoYXJkY29kZV9p bnRvX2xpYnM9eWVzCi0rICA7OwotKwotK2hwdXg5KiB8IGhwdXgxMCogfCBocHV4MTEqKQotKyAg IyBHaXZlIGEgc29uYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG1ham9yIHZlcnNpb24gc28gdGhh dCBkbGQuc2wgcmVmdXNlcyB0bwotKyAgIyBsaW5rIGFnYWluc3Qgb3RoZXIgdmVyc2lvbnMuCi0r ICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJz aW9uPW5vCi0rICBjYXNlICRob3N0X2NwdSBpbgotKyAgaWE2NCopCi0rICAgIHNocmV4dF9jbWRz PScuc28nCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgZHluYW1pY19saW5rZXI9 IiRob3N0X29zIGRsZC5zbyIKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg ICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcyAjIFVubGVzcyArbm9lbnZ2YXIgaXMg c3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgaWYgdGVzdCAiWCRIUFVYX0lB NjRfTU9ERSIgPSBYMzI7IHRoZW4KLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91 c3IvbGliL2hwdXgzMiAvdXNyL2xvY2FsL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9saWIiCi0rICAg IGVsc2UKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliL2hwdXg2NCAv dXNyL2xvY2FsL2xpYi9ocHV4NjQiCi0rICAgIGZpCi0rICAgIHN5c19saWJfZGxzZWFyY2hfcGF0 aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsgICAgOzsKLSsgIGhwcGEqNjQqKQot KyAgICBzaHJleHRfY21kcz0nLnNsJwotKyAgICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICAg IGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc2wiCi0rICAgIHNobGlicGF0aF92YXI9TERf TElCUkFSWV9QQVRIICMgSG93IHNob3VsZCB3ZSBoYW5kbGUgU0hMSUJfUEFUSAotKyAgICBzaGxp YnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzICMgVW5sZXNzICtub2VudnZhciBpcyBzcGVjaWZp ZWQuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVs ZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Ii91c3IvbGliL3BhMjBfNjQgL3Vzci9jY3MvbGliL3BhMjBfNjQiCi0rICAgIHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPSRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMKLSsgICAgOzsKLSsgICop Ci0rICAgIHNocmV4dF9jbWRzPScuc2wnCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBk bGQuc2wiCi0rICAgIHNobGlicGF0aF92YXI9U0hMSUJfUEFUSAotKyAgICBzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9bm8gIyArcyBpcyByZXF1aXJlZCB0byBlbmFibGUgU0hMSUJfUEFUSAot KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0 fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJu YW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgOzsKLSsgIGVzYWMKLSsgICMgSFAtVVggcnVucyAq cmVhbGx5KiBzbG93bHkgdW5sZXNzIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG1vZGUgNTU1LCAuLi4K LSsgIHBvc3RpbnN0YWxsX2NtZHM9J2NobW9kIDU1NSAkbGliJwotKyAgIyBvciBmYWlscyBvdXRy aWdodCwgc28gb3ZlcnJpZGUgYXRvbWljYWxseToKLSsgIGluc3RhbGxfb3ZlcnJpZGVfbW9kZT01 NTUKLSsgIDs7Ci0rCi0raW50ZXJpeFszLTldKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAg bmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0n Ci0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y JwotKyAgZHluYW1pY19saW5rZXI9J0ludGVyaXggMy54IGxkLnNvLjEgKFBFLCBsaWtlIEVMRikn Ci0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPW5vCi0rICBoYXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK2lyaXg1 KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCopCi0rICBjYXNlICRob3N0X29zIGluCi0rICAgIG5vbnN0 b3B1eCopIHZlcnNpb25fdHlwZT1ub25zdG9wdXggOzsKLSsgICAgKikKLSsJaWYgdGVzdCAiJGx0 X2N2X3Byb2dfZ251X2xkIiA9IHllczsgdGhlbgotKwkJdmVyc2lvbl90eXBlPWxpbnV4Ci0rCWVs c2UKLSsJCXZlcnNpb25fdHlwZT1pcml4Ci0rCWZpIDs7Ci0rICBlc2FjCi0rICBuZWVkX2xpYl9w cmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0k e3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHts aWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGlyaXg1KiB8 IG5vbnN0b3B1eCopCi0rICAgIGxpYnN1ZmY9IHNobGlic3VmZj0KLSsgICAgOzsKLSsgICopCi0r ICAgIGNhc2UgJExEIGluICMgbGlidG9vbC5tNCB3aWxsIGFkZCBvbmUgb2YgdGhlc2Ugc3dpdGNo ZXMgdG8gTEQKLSsgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8KiItbWVsZjMyYnNtaXAg IikKLSsgICAgICBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPTMyLWJpdDs7Ci0rICAgICot bjMyfCoiLW4zMiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlwbjMyICIpCi0rICAgICAg bGlic3VmZj0zMiBzaGxpYnN1ZmY9TjMyIGxpYm1hZ2ljPU4zMjs7Ci0rICAgICotNjR8KiItNjQg InwqLW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAiKQotKyAgICAgIGxpYnN1ZmY9NjQgc2hsaWJz dWZmPTY0IGxpYm1hZ2ljPTY0LWJpdDs7Ci0rICAgICopIGxpYnN1ZmY9IHNobGlic3VmZj0gbGli bWFnaWM9bmV2ZXItbWF0Y2g7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICBlc2FjCi0rICBzaGxp YnBhdGhfdmFyPUxEX0xJQlJBUlkke3NobGlic3VmZn1fUEFUSAotKyAgc2hsaWJwYXRoX292ZXJy aWRlc19ydW5wYXRoPW5vCi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Ii91c3IvbGliJHts aWJzdWZmfSAvbGliJHtsaWJzdWZmfSAvdXNyL2xvY2FsL2xpYiR7bGlic3VmZn0iCi0rICBzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0iL3Vzci9saWIke2xpYnN1ZmZ9IC9saWIke2xpYnN1ZmZ9 IgotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLSsjIE5vIHNoYXJlZCBsaWIg c3VwcG9ydCBmb3IgTGludXggb2xkbGQsIGFvdXQsIG9yIGNvZmYuCi0rbGludXgqb2xkbGQqIHwg bGludXgqYW91dCogfCBsaW51eCpjb2ZmKikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7Owot KwotKyMgVGhpcyBtdXN0IGJlIExpbnV4IEVMRi4KLStsaW51eCogfCBrKmJzZCotZ251IHwga29w ZW5zb2xhcmlzKi1nbnUpCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZp eD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0k e3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21k cz0nUEFUSD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbiAkbGliZGlyJwotKyAgc2hsaWJwYXRo X3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwot KwotKyAgIyBTb21lIGJpbnV0aWxzIGxkIGFyZSBwYXRjaGVkIHRvIHNldCBEVF9SVU5QQVRICi0r ICBpZiAke2x0X2N2X3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aCs6fSBmYWxzZTsgdGhlbiA6 Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3NobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICBzYXZlX0xERkxBR1M9JExERkxBR1MKLSsgICAg c2F2ZV9saWJkaXI9JGxpYmRpcgotKyAgICBldmFsICJsaWJkaXI9L2Zvbzsgd2w9XCIkbHRfcHJv Z19jb21waWxlcl93bFwiOyBcCi0rCSBMREZMQUdTPVwiXCRMREZMQUdTICRoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjXCIiCi0rICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0 LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sK LSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9saW5r ICIkTElORU5PIjsgdGhlbiA6Ci0rICBpZiAgKCRPQkpEVU1QIC1wIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCkgMj4vZGV2L251bGwgfCBncmVwICJSVU5QQVRILiokbGliZGlyIiA+L2Rldi9udWxsOyB0aGVu IDoKLSsgIGx0X2N2X3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLStmaQotK2ZpCi0r cm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0rICAgIGNvbmZ0 ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgIExERkxBR1M9JHNhdmVfTERGTEFH UwotKyAgICBsaWJkaXI9JHNhdmVfbGliZGlyCi0rCi0rZmkKLSsKLSsgIHNobGlicGF0aF9vdmVy cmlkZXNfcnVucGF0aD0kbHRfY3Zfc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoCi0rCi0rICAj IFRoaXMgaW1wbGllcyBubyBmYXN0X2luc3RhbGwsIHdoaWNoIGlzIHVuYWNjZXB0YWJsZS4KLSsg ICMgU29tZSByZXdvcmsgd2lsbCBiZSBuZWVkZWQgdG8gYWxsb3cgZm9yIGZhc3RfaW5zdGFsbAot KyAgIyBiZWZvcmUgdGhpcyBjYW4gYmUgZW5hYmxlZC4KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKLSsKLSsgICMgQWRkIEFCSS1zcGVjaWZpYyBkaXJlY3RvcmllcyB0byB0aGUgc3lzdGVtIGxp YnJhcnkgcGF0aC4KLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvbGliNjQgL3Vzci9s aWI2NCAvbGliIC91c3IvbGliIgotKwotKyAgIyBBcHBlbmQgbGQuc28uY29uZiBjb250ZW50cyB0 byB0aGUgc2VhcmNoIHBhdGgKLSsgIGlmIHRlc3QgLWYgL2V0Yy9sZC5zby5jb25mOyB0aGVuCi0r ICAgIGx0X2xkX2V4dHJhPWBhd2sgJy9eaW5jbHVkZSAvIHsgc3lzdGVtKHNwcmludGYoImNkIC9l dGM7IGNhdCAlcyAyPi9kZXYvbnVsbCIsIFwkMikpOyBza2lwID0gMTsgfSB7IGlmICghc2tpcCkg cHJpbnQgXCQwOyBza2lwID0gMDsgfScgPCAvZXRjL2xkLnNvLmNvbmYgfCAkU0VEIC1lICdzLyMu Ki8vOy9eWwkgXSpod2NhcFsJIF0vZDtzL1s6LAldLyAvZztzLz1bXj1dKiQvLztzLz1bXj0gXSog LyAvZztzLyIvL2c7L14kL2QnIHwgdHIgJ1xuJyAnICdgCi0rICAgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMgJGx0X2xkX2V4dHJhIgotKwot KyAgZmkKLSsKLSsgICMgV2UgdXNlZCB0byB0ZXN0IGZvciAvbGliL2xkLnNvLjEgYW5kIGRpc2Fi bGUgc2hhcmVkIGxpYnJhcmllcyBvbgotKyAgIyBwb3dlcnBjLCBiZWNhdXNlIE1rTGludXggb25s eSBzdXBwb3J0ZWQgc2hhcmVkIGxpYnJhcmllcyB3aXRoIHRoZQotKyAgIyBHTlUgZHluYW1pYyBs aW5rZXIuICBTaW5jZSB0aGlzIHdhcyBicm9rZW4gd2l0aCBjcm9zcyBjb21waWxlcnMsCi0rICAj IG1vc3QgcG93ZXJwYy1saW51eCBib3hlcyBzdXBwb3J0IGR5bmFtaWMgbGlua2luZyB0aGVzZSBk YXlzIGFuZAotKyAgIyBwZW9wbGUgY2FuIGFsd2F5cyAtLWRpc2FibGUtc2hhcmVkLCB0aGUgdGVz dCB3YXMgcmVtb3ZlZCwgYW5kIHdlCi0rICAjIGFzc3VtZSB0aGUgR05VL0xpbnV4IGR5bmFtaWMg bGlua2VyIGlzIGluIHVzZS4KLSsgIGR5bmFtaWNfbGlua2VyPSdHTlUvTGludXggbGQuc28nCi0r ICA7OwotKwotK25ldGJzZCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIG5lZWRfbGliX3By ZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBpZiBlY2hvIF9fRUxGX18gfCAkQ0MgLUUg LSB8ICRHUkVQIF9fRUxGX18gPi9kZXYvbnVsbDsgdGhlbgotKyAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRI Oi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgICBkeW5hbWljX2xpbmtlcj0nTmV0QlNE IChhLm91dCkgbGQuc28nCi0rICBlbHNlCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3IgJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFt ZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGR5 bmFtaWNfbGlua2VyPSdOZXRCU0QgbGQuZWxmX3NvJwotKyAgZmkKLSsgIHNobGlicGF0aF92YXI9 TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBo YXJkY29kZV9pbnRvX2xpYnM9eWVzCi0rICA7OwotKwotK25ld3NvczYpCi0rICB2ZXJzaW9uX3R5 cGU9bGludXgKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BB VEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIDs7Ci0rCi0rKm50byog fCAqcW54KikKLSsgIHZlcnNpb25fdHlwZT1xbngKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAg bmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJ QlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vCi0rICBoYXJkY29k ZV9pbnRvX2xpYnM9eWVzCi0rICBkeW5hbWljX2xpbmtlcj0nbGRxbnguc28nCi0rICA7OwotKwot K29wZW5ic2QqKQotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBzeXNfbGliX2Rsc2VhcmNoX3Bh dGhfc3BlYz0iL3Vzci9saWIiCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICMgU29tZSBvbGRl ciB2ZXJzaW9ucyBvZiBPcGVuQlNEICgzLjMgYXQgbGVhc3QpICpkbyogbmVlZCB2ZXJzaW9uZWQg bGlicy4KLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgb3BlbmJzZDMuMyB8IG9wZW5ic2QzLjMu KikJbmVlZF92ZXJzaW9uPXllcyA7OwotKyAgICAqKQkJCQluZWVkX3ZlcnNpb249bm8gIDs7Ci0r ICBlc2FjCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAg ZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRjb25maWcgLW0gJGxpYmRpcicKLSsg IHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBpZiB0ZXN0IC16ICJgZWNobyBfX0VM Rl9fIHwgJENDIC1FIC0gfCAkR1JFUCBfX0VMRl9fYCIgfHwgdGVzdCAiJGhvc3Rfb3MtJGhvc3Rf Y3B1IiA9ICJvcGVuYnNkMi44LXBvd2VycGMiOyB0aGVuCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4K LSsgICAgICBvcGVuYnNkMi5bODldIHwgb3BlbmJzZDIuWzg5XS4qKQotKwlzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGg9bm8KLSsJOzsKLSsgICAgICAqKQotKwlzaGxpYnBhdGhfb3ZlcnJpZGVz X3J1bnBhdGg9eWVzCi0rCTs7Ci0rICAgICAgZXNhYwotKyAgZWxzZQotKyAgICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBmaQotKyAgOzsKLSsKLStvczIqKQotKyAgbGlibmFt ZV9zcGVjPSckbmFtZScKLSsgIHNocmV4dF9jbWRzPSIuZGxsIgotKyAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fSAkbGlibmFt ZS5hJwotKyAgZHluYW1pY19saW5rZXI9J09TLzIgbGQuZXhlJwotKyAgc2hsaWJwYXRoX3Zhcj1M SUJQQVRICi0rICA7OwotKwotK29zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgIHZlcnNpb25fdHlw ZT1vc2YKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBzb25h bWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjPSIvdXNyL3NobGliIC91c3IvY2NzL2xpYiAvdXNyL2xpYi9jbXBscnMv Y2MgL3Vzci9saWIgL3Vzci9sb2NhbC9saWIgL3Zhci9zaGxpYiIKLSsgIHN5c19saWJfZGxzZWFy Y2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIgotKyAgOzsKLSsKLStyZG9z KikKLSsgIGR5bmFtaWNfbGlua2VyPW5vCi0rICA7OwotKwotK3NvbGFyaXMqKQotKyAgdmVyc2lv bl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNo bGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK LSsgICMgbGRkIGNvbXBsYWlucyB1bmxlc3MgbGlicmFyaWVzIGFyZSBleGVjdXRhYmxlCi0rICBw b3N0aW5zdGFsbF9jbWRzPSdjaG1vZCAreCAkbGliJwotKyAgOzsKLSsKLStzdW5vczQqKQotKyAg dmVyc2lvbl90eXBlPXN1bm9zCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4JwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovdXNyL2V0YyIgbGRjb25maWcg JGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzaGxpYnBhdGhf b3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0 aGVuCi0rICAgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgZmkKLSsgIG5lZWRfdmVyc2lvbj15ZXMK LSsgIDs7Ci0rCi0rc3lzdjQgfCBzeXN2NC4zKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVy c3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7 c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGNhc2Ug JGhvc3RfdmVuZG9yIGluCi0rICAgIHNuaSkKLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICBydW5wYXRoX3Zhcj1M RF9SVU5fUEFUSAotKyAgICAgIDs7Ci0rICAgIHNpZW1lbnMpCi0rICAgICAgbmVlZF9saWJfcHJl Zml4PW5vCi0rICAgICAgOzsKLSsgICAgbW90b3JvbGEpCi0rICAgICAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgc2hsaWJwYXRoX292ZXJyaWRlc19y dW5wYXRoPW5vCi0rICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvbGliIC91c3IvbGli IC91c3IvY2NzL2xpYicKLSsgICAgICA7OwotKyAgZXNhYwotKyAgOzsKLSsKLStzeXN2NCpNUCop Ci0rICBpZiB0ZXN0IC1kIC91c3IvbmVjIDt0aGVuCi0rICAgIHZlcnNpb25fdHlwZT1saW51eAot KyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kdmVyc3VmZml4 ICRsaWJuYW1lJHtzaGFyZWRfZXh0fS4kbWFqb3IgJGxpYm5hbWUke3NoYXJlZF9leHR9JwotKyAg ICBzb25hbWVfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiRtYWpvcicKLSsgICAgc2hsaWJw YXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIGZpCi0rICA7OwotKwotK3N5c3Y1KiB8IHNjbzMu MnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCogfCBzeXN2NCp1dzIqKQotKyAg dmVyc2lvbl90eXBlPWZyZWVic2QtZWxmCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRf dmVyc2lvbj1ubwotKyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAk bGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFz ZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK LSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2xvY2FsL2xpYiAvdXNyL2dudS9saWIgL3Vzci9jY3Mv bGliIC91c3IvbGliIC9saWInCi0rICBlbHNlCi0rICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3Bl Yz0nL3Vzci9jY3MvbGliIC91c3IvbGliJwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAg c2NvMy4ydjUqKQotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjIC9saWIiCi0rCTs7Ci0rICAgIGVzYWMKLSsgIGZpCi0rICBzeXNfbGli X2Rsc2VhcmNoX3BhdGhfc3BlYz0nL3Vzci9saWInCi0rICA7OwotKwotK3RwZiopCi0rICAjIFRQ RiBpcyBhIGNyb3NzLXRhcmdldCBvbmx5LiAgUHJlZmVycmVkIGNyb3NzLWhvc3QgPSBHTlUvTGlu dXguCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVl ZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFS WV9QQVRICi0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2lu dG9fbGlicz15ZXMKLSsgIDs7Ci0rCi0rdXRzNCopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICA7Owot KwotKyopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLStlc2FjCi0reyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRkeW5hbWljX2xpbmtlciIgPiY1 Ci0rJGFzX2VjaG8gIiRkeW5hbWljX2xpbmtlciIgPiY2OyB9Ci0rdGVzdCAiJGR5bmFtaWNfbGlu a2VyIiA9IG5vICYmIGNhbl9idWlsZF9zaGFyZWQ9bm8KLSsKLSt2YXJpYWJsZXNfc2F2ZWRfZm9y X3JlbGluaz0iUEFUSCAkc2hsaWJwYXRoX3ZhciAkcnVucGF0aF92YXIiCi0raWYgdGVzdCAiJEdD QyIgPSB5ZXM7IHRoZW4KLSsgIHZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSIkdmFyaWFibGVz X3NhdmVkX2Zvcl9yZWxpbmsgR0NDX0VYRUNfUFJFRklYIENPTVBJTEVSX1BBVEggTElCUkFSWV9Q QVRIIgotK2ZpCi0rCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMr c2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iJGx0X2N2X3N5 c19saWJfc2VhcmNoX3BhdGhfc3BlYyIKLStmaQotK2lmIHRlc3QgIiR7bHRfY3Zfc3lzX2xpYl9k bHNlYXJjaF9wYXRoX3NwZWMrc2V0fSIgPSBzZXQ7IHRoZW4KLSsgIHN5c19saWJfZGxzZWFyY2hf cGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiCi0rZmkKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaG93IHRvIGhhcmRjb2RlIGxp YnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93 IHRvIGhhcmRjb2RlIGxpYnJhcnkgcGF0aHMgaW50byBwcm9ncmFtcy4uLiAiID4mNjsgfQotK2hh cmRjb2RlX2FjdGlvbj0KLStpZiB0ZXN0IC1uICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIg fHwKLSsgICB0ZXN0IC1uICIkcnVucGF0aF92YXIiIHx8Ci0rICAgdGVzdCAiWCRoYXJkY29kZV9h dXRvbWF0aWMiID0gIlh5ZXMiIDsgdGhlbgotKwotKyAgIyBXZSBjYW4gaGFyZGNvZGUgbm9uLWV4 aXN0ZW50IGRpcmVjdG9yaWVzLgotKyAgaWYgdGVzdCAiJGhhcmRjb2RlX2RpcmVjdCIgIT0gbm8g JiYKLSsgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lkIGhhcmRjb2RpbmcgaXMg c2hsaWJwYXRoX3Zhciwgd2UKLSsgICAgICMgaGF2ZSB0byByZWxpbmssIG90aGVyd2lzZSB3ZSBt aWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKLSsgICAgICMgd2hlbiB3ZSBzaG91 bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBvbmUKLSsgICAgICMjIHRl c3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsICkiICE9IG5vICYmCi0rICAg ICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTCIgIT0gbm87IHRoZW4KLSsgICAgIyBMaW5raW5nIGFs d2F5cyBoYXJkY29kZXMgdGhlIHRlbXBvcmFyeSBsaWJyYXJ5IGRpcmVjdG9yeS4KLSsgICAgaGFy ZGNvZGVfYWN0aW9uPXJlbGluawotKyAgZWxzZQotKyAgICAjIFdlIGNhbiBsaW5rIHdpdGhvdXQg aGFyZGNvZGluZywgYW5kIHdlIGNhbiBoYXJkY29kZSBub25leGlzdGluZyBkaXJzLgotKyAgICBo YXJkY29kZV9hY3Rpb249aW1tZWRpYXRlCi0rICBmaQotK2Vsc2UKLSsgICMgV2UgY2Fubm90IGhh cmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdlIGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCi0r ICAjIGRpcmVjdG9yaWVzLgotKyAgaGFyZGNvZGVfYWN0aW9uPXVuc3VwcG9ydGVkCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGhhcmRjb2Rl X2FjdGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRoYXJkY29kZV9hY3Rpb24iID4mNjsgfQotKwotK2lm IHRlc3QgIiRoYXJkY29kZV9hY3Rpb24iID0gcmVsaW5rIHx8Ci0rICAgdGVzdCAiJGluaGVyaXRf cnBhdGgiID0geWVzOyB0aGVuCi0rICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBzdXBwb3J0 ZWQKLSsgIGVuYWJsZV9mYXN0X2luc3RhbGw9bm8KLStlbGlmIHRlc3QgIiRzaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGgiID0geWVzIHx8Ci0rICAgICB0ZXN0ICIkZW5hYmxlX3NoYXJlZCIgPSBu bzsgdGhlbgotKyAgIyBGYXN0IGluc3RhbGxhdGlvbiBpcyBub3QgbmVjZXNzYXJ5Ci0rICBlbmFi bGVfZmFzdF9pbnN0YWxsPW5lZWRsZXNzCi0rZmkKLSsKLSsKLSsKLSsKLSsKLSsKLSsgIGlmIHRl c3QgIngkZW5hYmxlX2Rsb3BlbiIgIT0geHllczsgdGhlbgotKyAgZW5hYmxlX2Rsb3Blbj11bmtu b3duCi0rICBlbmFibGVfZGxvcGVuX3NlbGY9dW5rbm93bgotKyAgZW5hYmxlX2Rsb3Blbl9zZWxm X3N0YXRpYz11bmtub3duCi0rZWxzZQotKyAgbHRfY3ZfZGxvcGVuPW5vCi0rICBsdF9jdl9kbG9w ZW5fbGlicz0KLSsKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGJlb3MqKQotKyAgICBsdF9jdl9k bG9wZW49ImxvYWRfYWRkX29uIgotKyAgICBsdF9jdl9kbG9wZW5fbGlicz0KLSsgICAgbHRfY3Zf ZGxvcGVuX3NlbGY9eWVzCi0rICAgIDs7Ci0rCi0rICBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikK LSsgICAgbHRfY3ZfZGxvcGVuPSJMb2FkTGlicmFyeSIKLSsgICAgbHRfY3ZfZGxvcGVuX2xpYnM9 Ci0rICAgIDs7Ci0rCi0rICBjeWd3aW4qKQotKyAgICBsdF9jdl9kbG9wZW49ImRsb3BlbiIKLSsg ICAgbHRfY3ZfZGxvcGVuX2xpYnM9Ci0rICAgIDs7Ci0rCi0rICBkYXJ3aW4qKQotKyAgIyBpZiBs aWJkbCBpcyBpbnN0YWxsZWQgd2UgbmVlZCB0byBsaW5rIGFnYWluc3QgaXQKLSsgICAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgZGxvcGVuIGlu IC1sZGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4gLWxkbC4uLiAi ID4mNjsgfQotK2lmICR7YWNfY3ZfbGliX2RsX2Rsb3Blbis6fSBmYWxzZTsgdGhlbiA6Ci0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJ QlM9JExJQlMKLStMSUJTPSItbGRsICAkTElCUyIKLStjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9G ID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKy8qIE92ZXJy aWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9yLgotKyAgIFVz ZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBvZiBhIEdDQwot KyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3VsZCBzdGlsbCBh cHBseS4gICovCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIgotKyNlbmRpZgotK2No YXIgZGxvcGVuICgpOwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGRsb3BlbiAoKTsKLSsg IDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9saW5rICIkTElO RU5PIjsgdGhlbiA6Ci0rICBhY19jdl9saWJfZGxfZGxvcGVuPXllcwotK2Vsc2UKLSsgIGFjX2N2 X2xpYl9kbF9kbG9wZW49bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0 LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4dAot K0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZTok e2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliX2RsX2Rsb3BlbiIgPiY1Ci0r JGFzX2VjaG8gIiRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjY7IH0KLStpZiB0ZXN0ICJ4JGFjX2N2 X2xpYl9kbF9kbG9wZW4iID0geHllczsgdGhlbiA6Ci0rICBsdF9jdl9kbG9wZW49ImRsb3BlbiIg bHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiCi0rZWxzZQotKwotKyAgICBsdF9jdl9kbG9wZW49ImR5 bGQiCi0rICAgIGx0X2N2X2Rsb3Blbl9saWJzPQotKyAgICBsdF9jdl9kbG9wZW5fc2VsZj15ZXMK LSsKLStmaQotKwotKyAgICA7OwotKwotKyAgKikKLSsgICAgYWNfZm5fY19jaGVja19mdW5jICIk TElORU5PIiAic2hsX2xvYWQiICJhY19jdl9mdW5jX3NobF9sb2FkIgotK2lmIHRlc3QgIngkYWNf Y3ZfZnVuY19zaGxfbG9hZCIgPSB4eWVzOyB0aGVuIDoKLSsgIGx0X2N2X2Rsb3Blbj0ic2hsX2xv YWQiCi0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3Igc2hsX2xvYWQgaW4gLWxkbGQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciBzaGxfbG9hZCBpbiAtbGRsZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfbGliX2RsZF9z aGxfbG9hZCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgot K2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbGRsZCAgJExJ QlMiCi0rY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsvKiBPdmVycmlkZSBhbnkgR0NDIGludGVybmFsIHByb3Rv dHlwZSB0byBhdm9pZCBhbiBlcnJvci4KLSsgICBVc2UgY2hhciBiZWNhdXNlIGludCBtaWdodCBt YXRjaCB0aGUgcmV0dXJuIHR5cGUgb2YgYSBHQ0MKLSsgICBidWlsdGluIGFuZCB0aGVuIGl0cyBh cmd1bWVudCBwcm90b3R5cGUgd291bGQgc3RpbGwgYXBwbHkuICAqLwotKyNpZmRlZiBfX2NwbHVz cGx1cwotK2V4dGVybiAiQyIKLSsjZW5kaWYKLStjaGFyIHNobF9sb2FkICgpOwotK2ludAotK21h aW4gKCkKLSt7Ci0rcmV0dXJuIHNobF9sb2FkICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQot K19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGFjX2N2 X2xpYl9kbGRfc2hsX2xvYWQ9eWVzCi0rZWxzZQotKyAgYWNfY3ZfbGliX2RsZF9zaGxfbG9hZD1u bwotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0r ICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tf bGliX3NhdmVfTElCUwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiByZXN1bHQ6ICRhY19jdl9saWJfZGxkX3NobF9sb2FkIiA+JjUKLSskYXNfZWNobyAiJGFj X2N2X2xpYl9kbGRfc2hsX2xvYWQiID4mNjsgfQotK2lmIHRlc3QgIngkYWNfY3ZfbGliX2RsZF9z aGxfbG9hZCIgPSB4eWVzOyB0aGVuIDoKLSsgIGx0X2N2X2Rsb3Blbj0ic2hsX2xvYWQiIGx0X2N2 X2Rsb3Blbl9saWJzPSItbGRsZCIKLStlbHNlCi0rICBhY19mbl9jX2NoZWNrX2Z1bmMgIiRMSU5F Tk8iICJkbG9wZW4iICJhY19jdl9mdW5jX2Rsb3BlbiIKLStpZiB0ZXN0ICJ4JGFjX2N2X2Z1bmNf ZGxvcGVuIiA9IHh5ZXM7IHRoZW4gOgotKyAgbHRfY3ZfZGxvcGVuPSJkbG9wZW4iCi0rZWxzZQot KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Ig ZGxvcGVuIGluIC1sZGwiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBkbG9wZW4gaW4g LWxkbC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfbGliX2RsX2Rsb3Blbis6fSBmYWxzZTsgdGhl biA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xp Yl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbGRsICAkTElCUyIKLStjYXQgY29uZmRlZnMuaCAt IDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwot Ky8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y LgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv ZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3Vs ZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIgotKyNl bmRpZgotK2NoYXIgZGxvcGVuICgpOwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIGRsb3Bl biAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jX3RyeV9s aW5rICIkTElORU5PIjsgdGhlbiA6Ci0rICBhY19jdl9saWJfZGxfZGxvcGVuPXllcwotK2Vsc2UK LSsgIGFjX2N2X2xpYl9kbF9kbG9wZW49bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3Qu JGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliX2RsX2Rsb3Bl biIgPiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9saWJfZGxfZGxvcGVuIiA+JjY7IH0KLStpZiB0ZXN0 ICJ4JGFjX2N2X2xpYl9kbF9kbG9wZW4iID0geHllczsgdGhlbiA6Ci0rICBsdF9jdl9kbG9wZW49 ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGwiCi0rZWxzZQotKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgZGxvcGVuIGluIC1sc3Zs ZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsb3BlbiBpbiAtbHN2bGQuLi4gIiA+ JjY7IH0KLStpZiAke2FjX2N2X2xpYl9zdmxkX2Rsb3Blbis6fSBmYWxzZTsgdGhlbiA6Ci0rICAk YXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJ QlM9JExJQlMKLStMSUJTPSItbHN2bGQgICRMSUJTIgotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rLyogT3Zl cnJpZGUgYW55IEdDQyBpbnRlcm5hbCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0rICAg VXNlIGNoYXIgYmVjYXVzZSBpbnQgbWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0ND Ci0rICAgYnVpbHRpbiBhbmQgdGhlbiBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxs IGFwcGx5LiAgKi8KLSsjaWZkZWYgX19jcGx1c3BsdXMKLStleHRlcm4gIkMiCi0rI2VuZGlmCi0r Y2hhciBkbG9wZW4gKCk7Ci0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gZGxvcGVuICgpOwot KyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2NfdHJ5X2xpbmsgIiRM SU5FTk8iOyB0aGVuIDoKLSsgIGFjX2N2X2xpYl9zdmxkX2Rsb3Blbj15ZXMKLStlbHNlCi0rICBh Y19jdl9saWJfc3ZsZF9kbG9wZW49bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNv bmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFj X2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfbGliX3N2bGRfZGxvcGVu IiA+JjUKLSskYXNfZWNobyAiJGFjX2N2X2xpYl9zdmxkX2Rsb3BlbiIgPiY2OyB9Ci0raWYgdGVz dCAieCRhY19jdl9saWJfc3ZsZF9kbG9wZW4iID0geHllczsgdGhlbiA6Ci0rICBsdF9jdl9kbG9w ZW49ImRsb3BlbiIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sc3ZsZCIKLStlbHNlCi0rICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBkbGRfbGluayBp biAtbGRsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIGRsZF9saW5rIGluIC1sZGxk Li4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9saWJfZGxkX2RsZF9saW5rKzp9IGZhbHNlOyB0aGVu IDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGli X3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sZGxkICAkTElCUyIKLStjYXQgY29uZmRlZnMuaCAt IDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwot Ky8qIE92ZXJyaWRlIGFueSBHQ0MgaW50ZXJuYWwgcHJvdG90eXBlIHRvIGF2b2lkIGFuIGVycm9y LgotKyAgIFVzZSBjaGFyIGJlY2F1c2UgaW50IG1pZ2h0IG1hdGNoIHRoZSByZXR1cm4gdHlwZSBv ZiBhIEdDQwotKyAgIGJ1aWx0aW4gYW5kIHRoZW4gaXRzIGFyZ3VtZW50IHByb3RvdHlwZSB3b3Vs ZCBzdGlsbCBhcHBseS4gICovCi0rI2lmZGVmIF9fY3BsdXNwbHVzCi0rZXh0ZXJuICJDIgotKyNl bmRpZgotK2NoYXIgZGxkX2xpbmsgKCk7Ci0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gZGxk X2xpbmsgKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY190 cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotKyAgYWNfY3ZfbGliX2RsZF9kbGRfbGluaz15ZXMK LStlbHNlCi0rICBhY19jdl9saWJfZGxkX2RsZF9saW5rPW5vCi0rZmkKLStybSAtZiBjb3JlIGNv bmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0 IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX2N2X2xp Yl9kbGRfZGxkX2xpbmsiID4mNQotKyRhc19lY2hvICIkYWNfY3ZfbGliX2RsZF9kbGRfbGluayIg PiY2OyB9Ci0raWYgdGVzdCAieCRhY19jdl9saWJfZGxkX2RsZF9saW5rIiA9IHh5ZXM7IHRoZW4g OgotKyAgbHRfY3ZfZGxvcGVuPSJkbGRfbGluayIgbHRfY3ZfZGxvcGVuX2xpYnM9Ii1sZGxkIgot K2ZpCi0rCi0rCi0rZmkKLSsKLSsKLStmaQotKwotKwotK2ZpCi0rCi0rCi0rZmkKLSsKLSsKLStm aQotKwotKyAgICA7OwotKyAgZXNhYwotKwotKyAgaWYgdGVzdCAieCRsdF9jdl9kbG9wZW4iICE9 IHhubzsgdGhlbgotKyAgICBlbmFibGVfZGxvcGVuPXllcwotKyAgZWxzZQotKyAgICBlbmFibGVf ZGxvcGVuPW5vCi0rICBmaQotKwotKyAgY2FzZSAkbHRfY3ZfZGxvcGVuIGluCi0rICBkbG9wZW4p Ci0rICAgIHNhdmVfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSsgICAgdGVzdCAieCRhY19jdl9oZWFk ZXJfZGxmY25faCIgPSB4eWVzICYmIENQUEZMQUdTPSIkQ1BQRkxBR1MgLURIQVZFX0RMRkNOX0gi Ci0rCi0rICAgIHNhdmVfTERGTEFHUz0iJExERkxBR1MiCi0rICAgIHdsPSRsdF9wcm9nX2NvbXBp bGVyX3dsIGV2YWwgTERGTEFHUz1cIlwkTERGTEFHUyAkZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVj XCIKLSsKLSsgICAgc2F2ZV9MSUJTPSIkTElCUyIKLSsgICAgTElCUz0iJGx0X2N2X2Rsb3Blbl9s aWJzICRMSUJTIgotKwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIHdoZXRoZXIgYSBwcm9ncmFtIGNhbiBkbG9wZW4gaXRzZWxmIiA+JjUKLSsk YXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGEgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZi4u LiAiID4mNjsgfQotK2lmICR7bHRfY3ZfZGxvcGVuX3NlbGYrOn0gZmFsc2U7IHRoZW4gOgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAJICBpZiB0ZXN0ICIkY3Jvc3Nf Y29tcGlsaW5nIiA9IHllczsgdGhlbiA6Ci0rICBsdF9jdl9kbG9wZW5fc2VsZj1jcm9zcwotK2Vs c2UKLSsgIGx0X2RsdW5rbm93bj0wOyBsdF9kbG5vX3VzY29yZT0xOyBsdF9kbG5lZWRfdXNjb3Jl PTIKLSsgIGx0X3N0YXR1cz0kbHRfZGx1bmtub3duCi0rICBjYXQgPiBjb25mdGVzdC4kYWNfZXh0 IDw8X0xUX0VPRgotKyNsaW5lICRMSU5FTk8gImNvbmZpZ3VyZSIKLSsjaW5jbHVkZSAiY29uZmRl ZnMuaCIKLSsKLSsjaWYgSEFWRV9ETEZDTl9ICi0rI2luY2x1ZGUgPGRsZmNuLmg+Ci0rI2VuZGlm Ci0rCi0rI2luY2x1ZGUgPHN0ZGlvLmg+Ci0rCi0rI2lmZGVmIFJUTERfR0xPQkFMCi0rIyAgZGVm aW5lIExUX0RMR0xPQkFMCQlSVExEX0dMT0JBTAotKyNlbHNlCi0rIyAgaWZkZWYgRExfR0xPQkFM Ci0rIyAgICBkZWZpbmUgTFRfRExHTE9CQUwJCURMX0dMT0JBTAotKyMgIGVsc2UKLSsjICAgIGRl ZmluZSBMVF9ETEdMT0JBTAkJMAotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rLyogV2UgbWF5IGhh dmUgdG8gZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cgaW4gdGhlIGNvbW1hbmQgbGluZSBpZiB3ZQot KyAgIGZpbmQgb3V0IGl0IGRvZXMgbm90IHdvcmsgaW4gc29tZSBwbGF0Zm9ybS4gKi8KLSsjaWZu ZGVmIExUX0RMTEFaWV9PUl9OT1cKLSsjICBpZmRlZiBSVExEX0xBWlkKLSsjICAgIGRlZmluZSBM VF9ETExBWllfT1JfTk9XCQlSVExEX0xBWlkKLSsjICBlbHNlCi0rIyAgICBpZmRlZiBETF9MQVpZ Ci0rIyAgICAgIGRlZmluZSBMVF9ETExBWllfT1JfTk9XCQlETF9MQVpZCi0rIyAgICBlbHNlCi0r IyAgICAgIGlmZGVmIFJUTERfTk9XCi0rIyAgICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJ UlRMRF9OT1cKLSsjICAgICAgZWxzZQotKyMgICAgICAgIGlmZGVmIERMX05PVwotKyMgICAgICAg ICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJRExfTk9XCi0rIyAgICAgICAgZWxzZQotKyMgICAg ICAgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9OT1cJMAotKyMgICAgICAgIGVuZGlmCi0rIyAgICAg IGVuZGlmCi0rIyAgICBlbmRpZgotKyMgIGVuZGlmCi0rI2VuZGlmCi0rCi0rLyogV2hlbiAtZnZp c2JpbGl0eT1oaWRkZW4gaXMgdXNlZCwgYXNzdW1lIHRoZSBjb2RlIGhhcyBiZWVuIGFubm90YXRl ZAotKyAgIGNvcnJlc3BvbmRpbmdseSBmb3IgdGhlIHN5bWJvbHMgbmVlZGVkLiAgKi8KLSsjaWYg ZGVmaW5lZChfX0dOVUNfXykgJiYgKCgoX19HTlVDX18gPT0gMykgJiYgKF9fR05VQ19NSU5PUl9f ID49IDMpKSB8fCAoX19HTlVDX18gPiAzKSkKLStpbnQgZm5vcmQgKCkgX19hdHRyaWJ1dGVfXygo dmlzaWJpbGl0eSgiZGVmYXVsdCIpKSk7Ci0rI2VuZGlmCi0rCi0raW50IGZub3JkICgpIHsgcmV0 dXJuIDQyOyB9Ci0raW50IG1haW4gKCkKLSt7Ci0rICB2b2lkICpzZWxmID0gZGxvcGVuICgwLCBM VF9ETEdMT0JBTHxMVF9ETExBWllfT1JfTk9XKTsKLSsgIGludCBzdGF0dXMgPSAkbHRfZGx1bmtu b3duOwotKwotKyAgaWYgKHNlbGYpCi0rICAgIHsKLSsgICAgICBpZiAoZGxzeW0gKHNlbGYsImZu b3JkIikpICAgICAgIHN0YXR1cyA9ICRsdF9kbG5vX3VzY29yZTsKLSsgICAgICBlbHNlCi0rICAg ICAgICB7Ci0rCSAgaWYgKGRsc3ltKCBzZWxmLCJfZm5vcmQiKSkgIHN0YXR1cyA9ICRsdF9kbG5l ZWRfdXNjb3JlOwotKyAgICAgICAgICBlbHNlIHB1dHMgKGRsZXJyb3IgKCkpOwotKwl9Ci0rICAg ICAgLyogZGxjbG9zZSAoc2VsZik7ICovCi0rICAgIH0KLSsgIGVsc2UKLSsgICAgcHV0cyAoZGxl cnJvciAoKSk7Ci0rCi0rICByZXR1cm4gc3RhdHVzOwotK30KLStfTFRfRU9GCi0rICBpZiB7IHsg ZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTogXCIkYWNfbGlua1wi IjsgfSA+JjUKLSsgIChldmFsICRhY19saW5rKSAyPiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4m NQotKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAmJiB0ZXN0IC1zIGNvbmZ0ZXN0JHthY19leGVl eHR9IDI+L2Rldi9udWxsOyB0aGVuCi0rICAgICguL2NvbmZ0ZXN0OyBleGl0OyApID4mNSAyPi9k ZXYvbnVsbAotKyAgICBsdF9zdGF0dXM9JD8KLSsgICAgY2FzZSB4JGx0X3N0YXR1cyBpbgotKyAg ICAgIHgkbHRfZGxub191c2NvcmUpIGx0X2N2X2Rsb3Blbl9zZWxmPXllcyA7OwotKyAgICAgIHgk bHRfZGxuZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGY9eWVzIDs7Ci0rICAgICAgeCRsdF9k bHVua25vd258eCopIGx0X2N2X2Rsb3Blbl9zZWxmPW5vIDs7Ci0rICAgIGVzYWMKLSsgIGVsc2Ug OgotKyAgICAjIGNvbXBpbGF0aW9uIGZhaWxlZAotKyAgICBsdF9jdl9kbG9wZW5fc2VsZj1ubwot KyAgZmkKLStmaQotK3JtIC1mciBjb25mdGVzdCoKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfZGxvcGVuX3NlbGYiID4m NQotKyRhc19lY2hvICIkbHRfY3ZfZGxvcGVuX3NlbGYiID4mNjsgfQotKwotKyAgICBpZiB0ZXN0 ICJ4JGx0X2N2X2Rsb3Blbl9zZWxmIiA9IHh5ZXM7IHRoZW4KLSsgICAgICB3bD0kbHRfcHJvZ19j b21waWxlcl93bCBldmFsIExERkxBR1M9XCJcJExERkxBR1MgJGx0X3Byb2dfY29tcGlsZXJfc3Rh dGljXCIKLSsgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNo ZWNraW5nIHdoZXRoZXIgYSBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtIGNhbiBkbG9wZW4gaXRz ZWxmIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIGEgc3RhdGljYWxseSBsaW5r ZWQgcHJvZ3JhbSBjYW4gZGxvcGVuIGl0c2VsZi4uLiAiID4mNjsgfQotK2lmICR7bHRfY3ZfZGxv cGVuX3NlbGZfc3RhdGljKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgCSAgaWYgdGVzdCAiJGNyb3NzX2NvbXBpbGluZyIgPSB5ZXM7IHRo ZW4gOgotKyAgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPWNyb3NzCi0rZWxzZQotKyAgbHRfZGx1 bmtub3duPTA7IGx0X2Rsbm9fdXNjb3JlPTE7IGx0X2RsbmVlZF91c2NvcmU9MgotKyAgbHRfc3Rh dHVzPSRsdF9kbHVua25vd24KLSsgIGNhdCA+IGNvbmZ0ZXN0LiRhY19leHQgPDxfTFRfRU9GCi0r I2xpbmUgJExJTkVOTyAiY29uZmlndXJlIgotKyNpbmNsdWRlICJjb25mZGVmcy5oIgotKwotKyNp ZiBIQVZFX0RMRkNOX0gKLSsjaW5jbHVkZSA8ZGxmY24uaD4KLSsjZW5kaWYKLSsKLSsjaW5jbHVk ZSA8c3RkaW8uaD4KLSsKLSsjaWZkZWYgUlRMRF9HTE9CQUwKLSsjICBkZWZpbmUgTFRfRExHTE9C QUwJCVJUTERfR0xPQkFMCi0rI2Vsc2UKLSsjICBpZmRlZiBETF9HTE9CQUwKLSsjICAgIGRlZmlu ZSBMVF9ETEdMT0JBTAkJRExfR0xPQkFMCi0rIyAgZWxzZQotKyMgICAgZGVmaW5lIExUX0RMR0xP QkFMCQkwCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSsvKiBXZSBtYXkgaGF2ZSB0byBkZWZpbmUg TFRfRExMQVpZX09SX05PVyBpbiB0aGUgY29tbWFuZCBsaW5lIGlmIHdlCi0rICAgZmluZCBvdXQg aXQgZG9lcyBub3Qgd29yayBpbiBzb21lIHBsYXRmb3JtLiAqLwotKyNpZm5kZWYgTFRfRExMQVpZ X09SX05PVwotKyMgIGlmZGVmIFJUTERfTEFaWQotKyMgICAgZGVmaW5lIExUX0RMTEFaWV9PUl9O T1cJCVJUTERfTEFaWQotKyMgIGVsc2UKLSsjICAgIGlmZGVmIERMX0xBWlkKLSsjICAgICAgZGVm aW5lIExUX0RMTEFaWV9PUl9OT1cJCURMX0xBWlkKLSsjICAgIGVsc2UKLSsjICAgICAgaWZkZWYg UlRMRF9OT1cKLSsjICAgICAgICBkZWZpbmUgTFRfRExMQVpZX09SX05PVwlSVExEX05PVwotKyMg ICAgICBlbHNlCi0rIyAgICAgICAgaWZkZWYgRExfTk9XCi0rIyAgICAgICAgICBkZWZpbmUgTFRf RExMQVpZX09SX05PVwlETF9OT1cKLSsjICAgICAgICBlbHNlCi0rIyAgICAgICAgICBkZWZpbmUg TFRfRExMQVpZX09SX05PVwkwCi0rIyAgICAgICAgZW5kaWYKLSsjICAgICAgZW5kaWYKLSsjICAg IGVuZGlmCi0rIyAgZW5kaWYKLSsjZW5kaWYKLSsKLSsvKiBXaGVuIC1mdmlzYmlsaXR5PWhpZGRl biBpcyB1c2VkLCBhc3N1bWUgdGhlIGNvZGUgaGFzIGJlZW4gYW5ub3RhdGVkCi0rICAgY29ycmVz cG9uZGluZ2x5IGZvciB0aGUgc3ltYm9scyBuZWVkZWQuICAqLwotKyNpZiBkZWZpbmVkKF9fR05V Q19fKSAmJiAoKChfX0dOVUNfXyA9PSAzKSAmJiAoX19HTlVDX01JTk9SX18gPj0gMykpIHx8IChf X0dOVUNfXyA+IDMpKQotK2ludCBmbm9yZCAoKSBfX2F0dHJpYnV0ZV9fKCh2aXNpYmlsaXR5KCJk ZWZhdWx0IikpKTsKLSsjZW5kaWYKLSsKLStpbnQgZm5vcmQgKCkgeyByZXR1cm4gNDI7IH0KLStp bnQgbWFpbiAoKQotK3sKLSsgIHZvaWQgKnNlbGYgPSBkbG9wZW4gKDAsIExUX0RMR0xPQkFMfExU X0RMTEFaWV9PUl9OT1cpOwotKyAgaW50IHN0YXR1cyA9ICRsdF9kbHVua25vd247Ci0rCi0rICBp ZiAoc2VsZikKLSsgICAgewotKyAgICAgIGlmIChkbHN5bSAoc2VsZiwiZm5vcmQiKSkgICAgICAg c3RhdHVzID0gJGx0X2Rsbm9fdXNjb3JlOwotKyAgICAgIGVsc2UKLSsgICAgICAgIHsKLSsJICBp ZiAoZGxzeW0oIHNlbGYsIl9mbm9yZCIpKSAgc3RhdHVzID0gJGx0X2RsbmVlZF91c2NvcmU7Ci0r ICAgICAgICAgIGVsc2UgcHV0cyAoZGxlcnJvciAoKSk7Ci0rCX0KLSsgICAgICAvKiBkbGNsb3Nl IChzZWxmKTsgKi8KLSsgICAgfQotKyAgZWxzZQotKyAgICBwdXRzIChkbGVycm9yICgpKTsKLSsK LSsgIHJldHVybiBzdGF0dXM7Ci0rfQotK19MVF9FT0YKLSsgIGlmIHsgeyBldmFsIGVjaG8gIlwi XCRhc19tZVwiOiR7YXNfbGluZW5vLSRMSU5FTk99OiBcIiRhY19saW5rXCIiOyB9ID4mNQotKyAg KGV2YWwgJGFjX2xpbmspIDI+JjUKLSsgIGFjX3N0YXR1cz0kPwotKyAgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICB0ZXN0ICRh Y19zdGF0dXMgPSAwOyB9ICYmIHRlc3QgLXMgY29uZnRlc3Qke2FjX2V4ZWV4dH0gMj4vZGV2L251 bGw7IHRoZW4KLSsgICAgKC4vY29uZnRlc3Q7IGV4aXQ7ICkgPiY1IDI+L2Rldi9udWxsCi0rICAg IGx0X3N0YXR1cz0kPwotKyAgICBjYXNlIHgkbHRfc3RhdHVzIGluCi0rICAgICAgeCRsdF9kbG5v X3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OwotKyAgICAgIHgkbHRfZGxu ZWVkX3VzY29yZSkgbHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljPXllcyA7OwotKyAgICAgIHgkbHRf ZGx1bmtub3dufHgqKSBsdF9jdl9kbG9wZW5fc2VsZl9zdGF0aWM9bm8gOzsKLSsgICAgZXNhYwot KyAgZWxzZSA6Ci0rICAgICMgY29tcGlsYXRpb24gZmFpbGVkCi0rICAgIGx0X2N2X2Rsb3Blbl9z ZWxmX3N0YXRpYz1ubwotKyAgZmkKLStmaQotK3JtIC1mciBjb25mdGVzdCoKLSsKLSsKLStmaQot K3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3Zf ZGxvcGVuX3NlbGZfc3RhdGljIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X2Rsb3Blbl9zZWxmX3N0 YXRpYyIgPiY2OyB9Ci0rICAgIGZpCi0rCi0rICAgIENQUEZMQUdTPSIkc2F2ZV9DUFBGTEFHUyIK LSsgICAgTERGTEFHUz0iJHNhdmVfTERGTEFHUyIKLSsgICAgTElCUz0iJHNhdmVfTElCUyIKLSsg ICAgOzsKLSsgIGVzYWMKLSsKLSsgIGNhc2UgJGx0X2N2X2Rsb3Blbl9zZWxmIGluCi0rICB5ZXN8 bm8pIGVuYWJsZV9kbG9wZW5fc2VsZj0kbHRfY3ZfZGxvcGVuX3NlbGYgOzsKLSsgICopIGVuYWJs ZV9kbG9wZW5fc2VsZj11bmtub3duIDs7Ci0rICBlc2FjCi0rCi0rICBjYXNlICRsdF9jdl9kbG9w ZW5fc2VsZl9zdGF0aWMgaW4KLSsgIHllc3xubykgZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYz0k bHRfY3ZfZGxvcGVuX3NlbGZfc3RhdGljIDs7Ci0rICAqKSBlbmFibGVfZGxvcGVuX3NlbGZfc3Rh dGljPXVua25vd24gOzsKLSsgIGVzYWMKLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotK3N0cmlwbGliPQotK29sZF9zdHJpcGxpYj0KLSt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgc3Ry aXBwaW5nIGxpYnJhcmllcyBpcyBwb3NzaWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg d2hldGhlciBzdHJpcHBpbmcgbGlicmFyaWVzIGlzIHBvc3NpYmxlLi4uICIgPiY2OyB9Ci0raWYg dGVzdCAtbiAiJFNUUklQIiAmJiAkU1RSSVAgLVYgMj4mMSB8ICRHUkVQICJHTlUgc3RyaXAiID4v ZGV2L251bGw7IHRoZW4KLSsgIHRlc3QgLXogIiRvbGRfc3RyaXBsaWIiICYmIG9sZF9zdHJpcGxp Yj0iJFNUUklQIC0tc3RyaXAtZGVidWciCi0rICB0ZXN0IC16ICIkc3RyaXBsaWIiICYmIHN0cmlw bGliPSIkU1RSSVAgLS1zdHJpcC11bm5lZWRlZCIKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5ZXMiID4mNjsg fQotK2Vsc2UKLSsjIEZJWE1FIC0gaW5zZXJ0IHNvbWUgcmVhbCB0ZXN0cywgaG9zdF9vcyBpc24n dCByZWFsbHkgZ29vZCBlbm91Z2gKLSsgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGRhcndpbiopCi0r ICAgIGlmIHRlc3QgLW4gIiRTVFJJUCIgOyB0aGVuCi0rICAgICAgc3RyaXBsaWI9IiRTVFJJUCAt eCIKLSsgICAgICBvbGRfc3RyaXBsaWI9IiRTVFJJUCAtUyIKLSsgICAgICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKLSskYXNfZWNobyAi eWVzIiA+JjY7IH0KLSsgICAgZWxzZQotKyAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsg ICAgZmkKLSsgICAgOzsKLSsgICopCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAg OzsKLSsgIGVzYWMKLStmaQotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAg IyBSZXBvcnQgd2hpY2ggbGlicmFyeSB0eXBlcyB3aWxsIGFjdHVhbGx5IGJlIGJ1aWx0Ci0rICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmIGxpYnRv b2wgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcg aWYgbGlidG9vbCBzdXBwb3J0cyBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0rICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGNhbl9idWlsZF9z aGFyZWQiID4mNQotKyRhc19lY2hvICIkY2FuX2J1aWxkX3NoYXJlZCIgPiY2OyB9Ci0rCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIg dG8gYnVpbGQgc2hhcmVkIGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciB0byBidWlsZCBzaGFyZWQgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0rICB0ZXN0ICIkY2Fu X2J1aWxkX3NoYXJlZCIgPSAibm8iICYmIGVuYWJsZV9zaGFyZWQ9bm8KLSsKLSsgICMgT24gQUlY LCBzaGFyZWQgbGlicmFyaWVzIGFuZCBzdGF0aWMgbGlicmFyaWVzIHVzZSB0aGUgc2FtZSBuYW1l c3BhY2UsIGFuZAotKyAgIyBhcmUgYWxsIGJ1aWx0IGZyb20gUElDLgotKyAgY2FzZSAkaG9zdF9v cyBpbgotKyAgYWl4MyopCi0rICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiBlbmFi bGVfc3RhdGljPW5vCi0rICAgIGlmIHRlc3QgLW4gIiRSQU5MSUIiOyB0aGVuCi0rICAgICAgYXJj aGl2ZV9jbWRzPSIkYXJjaGl2ZV9jbWRzflwkUkFOTElCIFwkbGliIgotKyAgICAgIHBvc3RpbnN0 YWxsX2NtZHM9JyRSQU5MSUIgJGxpYicKLSsgICAgZmkKLSsgICAgOzsKLSsKLSsgIGFpeFs0LTld KikKLSsgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0ICYmIHRlc3QgIiRhaXhfdXNlX3J1 bnRpbWVsaW5raW5nIiA9IG5vIDsgdGhlbgotKyAgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9 IHllcyAmJiBlbmFibGVfc3RhdGljPW5vCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICB7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGVuYWJsZV9z aGFyZWQiID4mNQotKyRhc19lY2hvICIkZW5hYmxlX3NoYXJlZCIgPiY2OyB9Ci0rCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdG8g YnVpbGQgc3RhdGljIGxpYnJhcmllcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhl ciB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVzLi4uICIgPiY2OyB9Ci0rICAjIE1ha2Ugc3VyZSBl aXRoZXIgZW5hYmxlX3NoYXJlZCBvciBlbmFibGVfc3RhdGljIGlzIHllcy4KLSsgIHRlc3QgIiRl bmFibGVfc2hhcmVkIiA9IHllcyB8fCBlbmFibGVfc3RhdGljPXllcwotKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRlbmFibGVfc3RhdGljIiA+JjUK LSskYXNfZWNobyAiJGVuYWJsZV9zdGF0aWMiID4mNjsgfQotKwotKwotKwotKwotK2ZpCi0rYWNf ZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAt YyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRD WFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29u ZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29t cGlsZXJfZ251Ci0rCi0rQ0M9IiRsdF9zYXZlX0NDIgotKwotKyAgICAgIGlmIHRlc3QgLW4gIiRD WFgiICYmICggdGVzdCAiWCRDWFgiICE9ICJYbm8iICYmCi0rICAgICggKHRlc3QgIlgkQ1hYIiA9 ICJYZysrIiAmJiBgZysrIC12ID4vZGV2L251bGwgMj4mMWAgKSB8fAotKyAgICAodGVzdCAiWCRD WFgiICE9ICJYZysrIikpKSA7IHRoZW4KLSsgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAg JENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwot K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysrIHBy ZXByb2Nlc3NvciIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgaG93IHRvIHJ1biB0aGUgQysr IHByZXByb2Nlc3Nvci4uLiAiID4mNjsgfQotK2lmIHRlc3QgLXogIiRDWFhDUFAiOyB0aGVuCi0r ICBpZiAke2FjX2N2X3Byb2dfQ1hYQ1BQKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgICAgICMgRG91YmxlIHF1b3RlcyBiZWNhdXNlIENY WENQUCBuZWVkcyB0byBiZSBleHBhbmRlZAotKyAgICBmb3IgQ1hYQ1BQIGluICIkQ1hYIC1FIiAi L2xpYi9jcHAiCi0rICAgIGRvCi0rICAgICAgYWNfcHJlcHJvY19vaz1mYWxzZQotK2ZvciBhY19j eHhfcHJlcHJvY193YXJuX2ZsYWcgaW4gJycgeWVzCi0rZG8KLSsgICMgVXNlIGEgaGVhZGVyIGZp bGUgdGhhdCBjb21lcyB3aXRoIGdjYywgc28gY29uZmlndXJpbmcgZ2xpYmMKLSsgICMgd2l0aCBh IGZyZXNoIGNyb3NzLWNvbXBpbGVyIHdvcmtzLgotKyAgIyBQcmVmZXIgPGxpbWl0cy5oPiB0byA8 YXNzZXJ0Lmg+IGlmIF9fU1REQ19fIGlzIGRlZmluZWQsIHNpbmNlCi0rICAjIDxsaW1pdHMuaD4g ZXhpc3RzIGV2ZW4gb24gZnJlZXN0YW5kaW5nIGNvbXBpbGVycy4KLSsgICMgT24gdGhlIE5lWFQs IGNjIC1FIHJ1bnMgdGhlIGNvZGUgdGhyb3VnaCB0aGUgY29tcGlsZXIncyBwYXJzZXIsCi0rICAj IG5vdCBqdXN0IHRocm91Z2ggY3BwLiAiU3ludGF4IGVycm9yIiBpcyBoZXJlIHRvIGNhdGNoIHRo aXMgY2FzZS4KLSsgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2lmZGVmIF9fU1REQ19fCi0rIyBpbmNsdWRlIDxs aW1pdHMuaD4KLSsjZWxzZQotKyMgaW5jbHVkZSA8YXNzZXJ0Lmg+Ci0rI2VuZGlmCi0rCQkgICAg IFN5bnRheCBlcnJvcgotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfY3BwICIkTElORU5PIjsg dGhlbiA6Ci0rCi0rZWxzZQotKyAgIyBCcm9rZW46IGZhaWxzIG9uIHZhbGlkIGlucHV0LgotK2Nv bnRpbnVlCi0rZmkKLStybSAtZiBjb25mdGVzdC5lcnIgY29uZnRlc3QuaSBjb25mdGVzdC4kYWNf ZXh0Ci0rCi0rICAjIE9LLCB3b3JrcyBvbiBzYW5lIGNhc2VzLiAgTm93IGNoZWNrIHdoZXRoZXIg bm9uZXhpc3RlbnQgaGVhZGVycwotKyAgIyBjYW4gYmUgZGV0ZWN0ZWQgYW5kIGhvdy4KLSsgIGNh dCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRl ZnMuaC4gICovCi0rI2luY2x1ZGUgPGFjX25vbmV4aXN0ZW50Lmg+Ci0rX0FDRU9GCi0raWYgYWNf Zm5fY3h4X3RyeV9jcHAgIiRMSU5FTk8iOyB0aGVuIDoKLSsgICMgQnJva2VuOiBzdWNjZXNzIG9u IGludmFsaWQgaW5wdXQuCi0rY29udGludWUKLStlbHNlCi0rICAjIFBhc3NlcyBib3RoIHRlc3Rz LgotK2FjX3ByZXByb2Nfb2s9OgotK2JyZWFrCi0rZmkKLStybSAtZiBjb25mdGVzdC5lcnIgY29u ZnRlc3QuaSBjb25mdGVzdC4kYWNfZXh0Ci0rCi0rZG9uZQotKyMgQmVjYXVzZSBvZiBgYnJlYWsn LCBfQUNfUFJFUFJPQ19JRkVMU0UncyBjbGVhbmluZyBjb2RlIHdhcyBza2lwcGVkLgotK3JtIC1m IGNvbmZ0ZXN0LmkgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19leHQKLStpZiAkYWNfcHJlcHJv Y19vazsgdGhlbiA6Ci0rICBicmVhawotK2ZpCi0rCi0rICAgIGRvbmUKLSsgICAgYWNfY3ZfcHJv Z19DWFhDUFA9JENYWENQUAotKwotK2ZpCi0rICBDWFhDUFA9JGFjX2N2X3Byb2dfQ1hYQ1BQCi0r ZWxzZQotKyAgYWNfY3ZfcHJvZ19DWFhDUFA9JENYWENQUAotK2ZpCi0reyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRDWFhDUFAiID4mNQotKyRhc19lY2hv ICIkQ1hYQ1BQIiA+JjY7IH0KLSthY19wcmVwcm9jX29rPWZhbHNlCi0rZm9yIGFjX2N4eF9wcmVw cm9jX3dhcm5fZmxhZyBpbiAnJyB5ZXMKLStkbwotKyAgIyBVc2UgYSBoZWFkZXIgZmlsZSB0aGF0 IGNvbWVzIHdpdGggZ2NjLCBzbyBjb25maWd1cmluZyBnbGliYwotKyAgIyB3aXRoIGEgZnJlc2gg Y3Jvc3MtY29tcGlsZXIgd29ya3MuCi0rICAjIFByZWZlciA8bGltaXRzLmg+IHRvIDxhc3NlcnQu aD4gaWYgX19TVERDX18gaXMgZGVmaW5lZCwgc2luY2UKLSsgICMgPGxpbWl0cy5oPiBleGlzdHMg ZXZlbiBvbiBmcmVlc3RhbmRpbmcgY29tcGlsZXJzLgotKyAgIyBPbiB0aGUgTmVYVCwgY2MgLUUg cnVucyB0aGUgY29kZSB0aHJvdWdoIHRoZSBjb21waWxlcidzIHBhcnNlciwKLSsgICMgbm90IGp1 c3QgdGhyb3VnaCBjcHAuICJTeW50YXggZXJyb3IiIGlzIGhlcmUgdG8gY2F0Y2ggdGhpcyBjYXNl LgotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVu ZCBjb25mZGVmcy5oLiAgKi8KLSsjaWZkZWYgX19TVERDX18KLSsjIGluY2x1ZGUgPGxpbWl0cy5o PgotKyNlbHNlCi0rIyBpbmNsdWRlIDxhc3NlcnQuaD4KLSsjZW5kaWYKLSsJCSAgICAgU3ludGF4 IGVycm9yCi0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jcHAgIiRMSU5FTk8iOyB0aGVuIDoK LSsKLStlbHNlCi0rICAjIEJyb2tlbjogZmFpbHMgb24gdmFsaWQgaW5wdXQuCi0rY29udGludWUK LStmaQotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC5pIGNvbmZ0ZXN0LiRhY19leHQKLSsK LSsgICMgT0ssIHdvcmtzIG9uIHNhbmUgY2FzZXMuICBOb3cgY2hlY2sgd2hldGhlciBub25leGlz dGVudCBoZWFkZXJzCi0rICAjIGNhbiBiZSBkZXRlY3RlZCBhbmQgaG93LgotKyAgY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsjaW5jbHVkZSA8YWNfbm9uZXhpc3RlbnQuaD4KLStfQUNFT0YKLStpZiBhY19mbl9jeHhf dHJ5X2NwcCAiJExJTkVOTyI7IHRoZW4gOgotKyAgIyBCcm9rZW46IHN1Y2Nlc3Mgb24gaW52YWxp ZCBpbnB1dC4KLStjb250aW51ZQotK2Vsc2UKLSsgICMgUGFzc2VzIGJvdGggdGVzdHMuCi0rYWNf cHJlcHJvY19vaz06Ci0rYnJlYWsKLStmaQotK3JtIC1mIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC5p IGNvbmZ0ZXN0LiRhY19leHQKLSsKLStkb25lCi0rIyBCZWNhdXNlIG9mIGBicmVhaycsIF9BQ19Q UkVQUk9DX0lGRUxTRSdzIGNsZWFuaW5nIGNvZGUgd2FzIHNraXBwZWQuCi0rcm0gLWYgY29uZnRl c3QuaSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX2V4dAotK2lmICRhY19wcmVwcm9jX29rOyB0 aGVuIDoKLSsKLStlbHNlCi0rICB7IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogZXJyb3I6IGluIFxgJGFjX3B3ZCc6IiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBlcnJv cjogaW4gXGAkYWNfcHdkJzoiID4mMjt9Ci0rYXNfZm5fZXJyb3IgJD8gIkMrKyBwcmVwcm9jZXNz b3IgXCIkQ1hYQ1BQXCIgZmFpbHMgc2FuaXR5IGNoZWNrCi0rU2VlIFxgY29uZmlnLmxvZycgZm9y IG1vcmUgZGV0YWlscyIgIiRMSU5FTk8iIDU7IH0KLStmaQotKwotK2FjX2V4dD1jcHAKLSthY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwot K2Vsc2UKLSsgIF9sdF9jYXVnaHRfQ1hYX2Vycm9yPXllcwotK2ZpCi0rCi0rYWNfZXh0PWNwcAot K2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxB R1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29u ZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFj X2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251 Ci0rCi0rYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCi0rYWxsb3dfdW5kZWZpbmVkX2ZsYWdf Q1hYPQotK2Fsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9bm8KLSthcmNoaXZlX2V4cHN5bV9jbWRz X0NYWD0KLStjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYPW5vCi0rZXhwb3J0X2R5bmFtaWNfZmxh Z19zcGVjX0NYWD0KLStoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCi0raGFyZGNvZGVfZGlyZWN0X2Fi c29sdXRlX0NYWD1ubwotK2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPQotK2hhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWNfbGRfQ1hYPQotK2hhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hY PQotK2hhcmRjb2RlX21pbnVzX0xfQ1hYPW5vCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9 dW5zdXBwb3J0ZWQKLStoYXJkY29kZV9hdXRvbWF0aWNfQ1hYPW5vCi0raW5oZXJpdF9ycGF0aF9D WFg9bm8KLSttb2R1bGVfY21kc19DWFg9Ci0rbW9kdWxlX2V4cHN5bV9jbWRzX0NYWD0KLStsaW5r X2FsbF9kZXBsaWJzX0NYWD11bmtub3duCi0rb2xkX2FyY2hpdmVfY21kc19DWFg9JG9sZF9hcmNo aXZlX2NtZHMKLStyZWxvYWRfZmxhZ19DWFg9JHJlbG9hZF9mbGFnCi0rcmVsb2FkX2NtZHNfQ1hY PSRyZWxvYWRfY21kcwotK25vX3VuZGVmaW5lZF9mbGFnX0NYWD0KLSt3aG9sZV9hcmNoaXZlX2Zs YWdfc3BlY19DWFg9Ci0rZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFg9bm8K LSsKLSsjIFNvdXJjZSBmaWxlIGV4dGVuc2lvbiBmb3IgQysrIHRlc3Qgc291cmNlcy4KLSthY19l eHQ9Y3BwCi0rCi0rIyBPYmplY3QgZmlsZSBleHRlbnNpb24gZm9yIGNvbXBpbGVkIEMrKyB0ZXN0 IHNvdXJjZXMuCi0rb2JqZXh0PW8KLStvYmpleHRfQ1hYPSRvYmpleHQKLSsKLSsjIE5vIHNlbnNl IGluIHJ1bm5pbmcgYWxsIHRoZXNlIHRlc3RzIGlmIHdlIGFscmVhZHkgZGV0ZXJtaW5lZCB0aGF0 Ci0rIyB0aGUgQ1hYIGNvbXBpbGVyIGlzbid0IHdvcmtpbmcuICBTb21lIHZhcmlhYmxlcyAobGlr ZSBlbmFibGVfc2hhcmVkKQotKyMgYXJlIGN1cnJlbnRseSBhc3N1bWVkIHRvIGFwcGx5IHRvIGFs bCBjb21waWxlcnMgb24gdGhpcyBwbGF0Zm9ybSwKLSsjIGFuZCB3aWxsIGJlIGNvcnJ1cHRlZCBi eSBzZXR0aW5nIHRoZW0gYmFzZWQgb24gYSBub24td29ya2luZyBjb21waWxlci4KLStpZiB0ZXN0 ICIkX2x0X2NhdWdodF9DWFhfZXJyb3IiICE9IHllczsgdGhlbgotKyAgIyBDb2RlIHRvIGJlIHVz ZWQgaW4gc2ltcGxlIGNvbXBpbGUgdGVzdHMKLSsgIGx0X3NpbXBsZV9jb21waWxlX3Rlc3RfY29k ZT0iaW50IHNvbWVfdmFyaWFibGUgPSAwOyIKLSsKLSsgICMgQ29kZSB0byBiZSB1c2VkIGluIHNp bXBsZSBsaW5rIHRlc3RzCi0rICBsdF9zaW1wbGVfbGlua190ZXN0X2NvZGU9J2ludCBtYWluKGlu dCwgY2hhciAqW10pIHsgcmV0dXJuKDApOyB9JwotKwotKyAgIyBsdG1haW4gb25seSB1c2VzICRD QyBmb3IgdGFnZ2VkIGNvbmZpZ3VyYXRpb25zIHNvIG1ha2Ugc3VyZSAkQ0MgaXMgc2V0LgotKwot KwotKwotKwotKwotKwotKyMgSWYgbm8gQyBjb21waWxlciB3YXMgc3BlY2lmaWVkLCB1c2UgQ0Mu Ci0rTFRDQz0ke0xUQ0MtIiRDQyJ9Ci0rCi0rIyBJZiBubyBDIGNvbXBpbGVyIGZsYWdzIHdlcmUg c3BlY2lmaWVkLCB1c2UgQ0ZMQUdTLgotK0xUQ0ZMQUdTPSR7TFRDRkxBR1MtIiRDRkxBR1MifQot KwotKyMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmd1bWVudHMuCi0rY29t cGlsZXI9JENDCi0rCi0rCi0rICAjIHNhdmUgd2FybmluZ3MvYm9pbGVycGxhdGUgb2Ygc2ltcGxl IHRlc3QgY29kZQotKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rZWNobyAiJGx0 X3NpbXBsZV9jb21waWxlX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKLStldmFsICIkYWNf Y29tcGlsZSIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVz dC5lcnIKLStfbHRfY29tcGlsZXJfYm9pbGVycGxhdGU9YGNhdCBjb25mdGVzdC5lcnJgCi0rJFJN IGNvbmZ0ZXN0KgotKwotKyAgYWNfb3V0ZmlsZT1jb25mdGVzdC4kYWNfb2JqZXh0Ci0rZWNobyAi JGx0X3NpbXBsZV9saW5rX3Rlc3RfY29kZSIgPmNvbmZ0ZXN0LiRhY19leHQKLStldmFsICIkYWNf bGluayIgMj4mMSA+L2Rldi9udWxsIHwgJFNFRCAnL14kL2Q7IC9eICorL2QnID5jb25mdGVzdC5l cnIKLStfbHRfbGlua2VyX2JvaWxlcnBsYXRlPWBjYXQgY29uZnRlc3QuZXJyYAotKyRSTSAtciBj b25mdGVzdCoKLSsKLSsKLSsgICMgQWxsb3cgQ0MgdG8gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBh cmd1bWVudHMuCi0rICBsdF9zYXZlX0NDPSRDQwotKyAgbHRfc2F2ZV9DRkxBR1M9JENGTEFHUwot KyAgbHRfc2F2ZV9MRD0kTEQKLSsgIGx0X3NhdmVfR0NDPSRHQ0MKLSsgIEdDQz0kR1hYCi0rICBs dF9zYXZlX3dpdGhfZ251X2xkPSR3aXRoX2dudV9sZAotKyAgbHRfc2F2ZV9wYXRoX0xEPSRsdF9j dl9wYXRoX0xECi0rICBpZiB0ZXN0IC1uICIke2x0X2N2X3Byb2dfZ251X2xkY3h4K3NldH0iOyB0 aGVuCi0rICAgIGx0X2N2X3Byb2dfZ251X2xkPSRsdF9jdl9wcm9nX2dudV9sZGN4eAotKyAgZWxz ZQotKyAgICAkYXNfdW5zZXQgbHRfY3ZfcHJvZ19nbnVfbGQKLSsgIGZpCi0rICBpZiB0ZXN0IC1u ICIke2x0X2N2X3BhdGhfTERDWFgrc2V0fSI7IHRoZW4KLSsgICAgbHRfY3ZfcGF0aF9MRD0kbHRf Y3ZfcGF0aF9MRENYWAotKyAgZWxzZQotKyAgICAkYXNfdW5zZXQgbHRfY3ZfcGF0aF9MRAotKyAg ZmkKLSsgIHRlc3QgLXogIiR7TERDWFgrc2V0fSIgfHwgTEQ9JExEQ1hYCi0rICBDQz0ke0NYWC0i YysrIn0KLSsgIENGTEFHUz0kQ1hYRkxBR1MKLSsgIGNvbXBpbGVyPSRDQwotKyAgY29tcGlsZXJf Q1hYPSRDQwotKyAgZm9yIGNjX3RlbXAgaW4gJGNvbXBpbGVyIiI7IGRvCi0rICBjYXNlICRjY190 ZW1wIGluCi0rICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwgKltcXC9dY2Nh Y2hlICkgOzsKLSsgICAgZGlzdGNjIHwgKltcXC9dZGlzdGNjIHwgcHVyaWZ5IHwgKltcXC9dcHVy aWZ5ICkgOzsKLSsgICAgXC0qKSA7OwotKyAgICAqKSBicmVhazs7Ci0rICBlc2FjCi0rZG9uZQot K2NjX2Jhc2VuYW1lPWAkRUNITyAiJGNjX3RlbXAiIHwgJFNFRCAicyUuKi8lJTsgcyVeJGhvc3Rf YWxpYXMtJSUiYAotKwotKwotKyAgaWYgdGVzdCAtbiAiJGNvbXBpbGVyIjsgdGhlbgotKyAgICAj IFdlIGRvbid0IHdhbnQgLWZuby1leGNlcHRpb24gd2hlbiBjb21waWxpbmcgQysrIGNvZGUsIHNv IHNldCB0aGUKLSsgICAgIyBub19idWlsdGluX2ZsYWcgc2VwYXJhdGVseQotKyAgICBpZiB0ZXN0 ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9m bGFnX0NYWD0nIC1mbm8tYnVpbHRpbicKLSsgICAgZWxzZQotKyAgICAgIGx0X3Byb2dfY29tcGls ZXJfbm9fYnVpbHRpbl9mbGFnX0NYWD0KLSsgICAgZmkKLSsKLSsgICAgaWYgdGVzdCAiJEdYWCIg PSB5ZXM7IHRoZW4KLSsgICAgICAjIFNldCB1cCBkZWZhdWx0IEdOVSBDKysgY29uZmlndXJhdGlv bgotKwotKwotKwotKyMgQ2hlY2sgd2hldGhlciAtLXdpdGgtZ251LWxkIHdhcyBnaXZlbi4KLStp ZiB0ZXN0ICIke3dpdGhfZ251X2xkK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdp dGhfZ251X2xkOyB0ZXN0ICIkd2l0aHZhbCIgPSBubyB8fCB3aXRoX2dudV9sZD15ZXMKLStlbHNl Ci0rICB3aXRoX2dudV9sZD1ubwotK2ZpCi0rCi0rYWNfcHJvZz1sZAotK2lmIHRlc3QgIiRHQ0Mi ID0geWVzOyB0aGVuCi0rICAjIENoZWNrIGlmIGdjYyAtcHJpbnQtcHJvZy1uYW1lPWxkIGdpdmVz IGEgcGF0aC4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgZm9yIGxkIHVzZWQgYnkgJENDIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig bGQgdXNlZCBieSAkQ0MuLi4gIiA+JjY7IH0KLSsgIGNhc2UgJGhvc3QgaW4KLSsgICotKi1taW5n dyopCi0rICAgICMgZ2NjIGxlYXZlcyBhIHRyYWlsaW5nIGNhcnJpYWdlIHJldHVybiB3aGljaCB1 cHNldHMgbWluZ3cKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJvZy1uYW1lPWxkKSAyPiY1 IHwgdHIgLWQgJ1wwMTUnYCA7OwotKyAgKikKLSsgICAgYWNfcHJvZz1gKCRDQyAtcHJpbnQtcHJv Zy1uYW1lPWxkKSAyPiY1YCA7OwotKyAgZXNhYwotKyAgY2FzZSAkYWNfcHJvZyBpbgotKyAgICAj IEFjY2VwdCBhYnNvbHV0ZSBwYXRocy4KLSsgICAgW1xcL10qIHwgPzpbXFwvXSopCi0rICAgICAg cmVfZGlyZWx0PScvW14vXVteL10qL1wuXC4vJwotKyAgICAgICMgQ2Fub25pY2FsaXplIHRoZSBw YXRobmFtZSBvZiBsZAotKyAgICAgIGFjX3Byb2c9YCRFQ0hPICIkYWNfcHJvZyJ8ICRTRUQgJ3Ml XFxcXCUvJWcnYAotKyAgICAgIHdoaWxlICRFQ0hPICIkYWNfcHJvZyIgfCAkR1JFUCAiJHJlX2Rp cmVsdCIgPiAvZGV2L251bGwgMj4mMTsgZG8KLSsJYWNfcHJvZz1gJEVDSE8gJGFjX3Byb2d8ICRT RUQgInMlJHJlX2RpcmVsdCUvJSJgCi0rICAgICAgZG9uZQotKyAgICAgIHRlc3QgLXogIiRMRCIg JiYgTEQ9IiRhY19wcm9nIgotKyAgICAgIDs7Ci0rICAiIikKLSsgICAgIyBJZiBpdCBmYWlscywg dGhlbiBwcmV0ZW5kIHdlIGFyZW4ndCB1c2luZyBHQ0MuCi0rICAgIGFjX3Byb2c9bGQKLSsgICAg OzsKLSsgICopCi0rICAgICMgSWYgaXQgaXMgcmVsYXRpdmUsIHRoZW4gc2VhcmNoIGZvciB0aGUg Zmlyc3QgbGQgaW4gUEFUSC4KLSsgICAgd2l0aF9nbnVfbGQ9dW5rbm93bgotKyAgICA7OwotKyAg ZXNhYwotK2VsaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgR05VIGxkIiA+JjUK LSskYXNfZWNob19uICJjaGVja2luZyBmb3IgR05VIGxkLi4uICIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3Igbm9u LUdOVSBsZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG5vbi1HTlUgbGQuLi4gIiA+ JjY7IH0KLStmaQotK2lmICR7bHRfY3ZfcGF0aF9MRCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLXogIiRMRCI7IHRoZW4K LSsgIGx0X3NhdmVfaWZzPSIkSUZTIjsgSUZTPSRQQVRIX1NFUEFSQVRPUgotKyAgZm9yIGFjX2Rp ciBpbiAkUEFUSDsgZG8KLSsgICAgSUZTPSIkbHRfc2F2ZV9pZnMiCi0rICAgIHRlc3QgLXogIiRh Y19kaXIiICYmIGFjX2Rpcj0uCi0rICAgIGlmIHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ciIHx8 IHRlc3QgLWYgIiRhY19kaXIvJGFjX3Byb2ckYWNfZXhlZXh0IjsgdGhlbgotKyAgICAgIGx0X2N2 X3BhdGhfTEQ9IiRhY19kaXIvJGFjX3Byb2ciCi0rICAgICAgIyBDaGVjayB0byBzZWUgaWYgdGhl IHByb2dyYW0gaXMgR05VIGxkLiAgSSdkIHJhdGhlciB1c2UgLS12ZXJzaW9uLAotKyAgICAgICMg YnV0IGFwcGFyZW50bHkgc29tZSB2YXJpYW50cyBvZiBHTlUgbGQgb25seSBhY2NlcHQgLXYuCi0r ICAgICAgIyBCcmVhayBvbmx5IGlmIGl0IHdhcyB0aGUgR05VL25vbi1HTlUgbGQgdGhhdCB3ZSBw cmVmZXIuCi0rICAgICAgY2FzZSBgIiRsdF9jdl9wYXRoX0xEIiAtdiAyPiYxIDwvZGV2L251bGxg IGluCi0rICAgICAgKkdOVSogfCAqJ3dpdGggQkZEJyopCi0rCXRlc3QgIiR3aXRoX2dudV9sZCIg IT0gbm8gJiYgYnJlYWsKLSsJOzsKLSsgICAgICAqKQotKwl0ZXN0ICIkd2l0aF9nbnVfbGQiICE9 IHllcyAmJiBicmVhawotKwk7OwotKyAgICAgIGVzYWMKLSsgICAgZmkKLSsgIGRvbmUKLSsgIElG Uz0iJGx0X3NhdmVfaWZzIgotK2Vsc2UKLSsgIGx0X2N2X3BhdGhfTEQ9IiRMRCIgIyBMZXQgdGhl IHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rZmkKLStmaQotKwotK0xEPSIk bHRfY3ZfcGF0aF9MRCIKLStpZiB0ZXN0IC1uICIkTEQiOyB0aGVuCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJExEIiA+JjUKLSskYXNfZWNobyAi JExEIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJubyIgPiY2OyB9Ci0rZmkKLSt0ZXN0 IC16ICIkTEQiICYmIGFzX2ZuX2Vycm9yICQ/ICJubyBhY2NlcHRhYmxlIGxkIGZvdW5kIGluIFwk UEFUSCIgIiRMSU5FTk8iIDUKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IGNoZWNraW5nIGlmIHRoZSBsaW5rZXIgKCRMRCkgaXMgR05VIGxkIiA+JjUKLSskYXNfZWNo b19uICJjaGVja2luZyBpZiB0aGUgbGlua2VyICgkTEQpIGlzIEdOVSBsZC4uLiAiID4mNjsgfQot K2lmICR7bHRfY3ZfcHJvZ19nbnVfbGQrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAjIEknZCByYXRoZXIgdXNlIC0tdmVyc2lvbiBoZXJl LCBidXQgYXBwYXJlbnRseSBzb21lIEdOVSBsZHMgb25seSBhY2NlcHQgLXYuCi0rY2FzZSBgJExE IC12IDI+JjEgPC9kZXYvbnVsbGAgaW4KLSsqR05VKiB8ICond2l0aCBCRkQnKikKLSsgIGx0X2N2 X3Byb2dfZ251X2xkPXllcwotKyAgOzsKLSsqKQotKyAgbHRfY3ZfcHJvZ19nbnVfbGQ9bm8KLSsg IDs7Ci0rZXNhYwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2dudV9sZCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9n X2dudV9sZCIgPiY2OyB9Ci0rd2l0aF9nbnVfbGQ9JGx0X2N2X3Byb2dfZ251X2xkCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rICAgICAgIyBDaGVjayBpZiBHTlUgQysrIHVzZXMgR05VIGxkIGFzIHRo ZSB1bmRlcmx5aW5nIGxpbmtlciwgc2luY2UgdGhlCi0rICAgICAgIyBhcmNoaXZpbmcgY29tbWFu ZHMgYmVsb3cgYXNzdW1lIHRoYXQgR05VIGxkIGlzIGJlaW5nIHVzZWQuCi0rICAgICAgaWYgdGVz dCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0n JENDICRwaWNfZmxhZyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMg JGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3 bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0Mg JHBpY19mbGFnIC1zaGFyZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVw bGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNv bmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAtbyAkbGli JwotKwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRo ICR7d2x9JGxpYmRpcicKLSsgICAgICAgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7 d2x9LS1leHBvcnQtZHluYW1pYycKLSsKLSsgICAgICAgICMgSWYgYXJjaGl2ZV9jbWRzIHJ1bnMg TEQsIG5vdCBDQywgd2xhcmMgc2hvdWxkIGJlIGVtcHR5Ci0rICAgICAgICAjIFhYWCBJIHRoaW5r IHdsYXJjIGNhbiBiZSBlbGltaW5hdGVkIGluIGx0Y2YtY3h4LCBidXQgSSBuZWVkIHRvCi0rICAg ICAgICAjICAgICBpbnZlc3RpZ2F0ZSBpdCBhIGxpdHRsZSBiaXQgbW9yZS4gKE1NKQotKyAgICAg ICAgd2xhcmM9JyR7d2x9JwotKwotKyAgICAgICAgIyBhbmNpZW50IEdOVSBsZCBkaWRuJ3Qgc3Vw cG9ydCAtLXdob2xlLWFyY2hpdmUgZXQuIGFsLgotKyAgICAgICAgaWYgZXZhbCAiYCRDQyAtcHJp bnQtcHJvZy1uYW1lPWxkYCAtLWhlbHAgMj4mMSIgfAotKwkgICRHUkVQICduby13aG9sZS1hcmNo aXZlJyA+IC9kZXYvbnVsbDsgdGhlbgotKyAgICAgICAgICB3aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl Y19DWFg9IiR3bGFyYyInLS13aG9sZS1hcmNoaXZlJGNvbnZlbmllbmNlICciJHdsYXJjIictLW5v LXdob2xlLWFyY2hpdmUnCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIHdob2xlX2FyY2hpdmVf ZmxhZ19zcGVjX0NYWD0KLSsgICAgICAgIGZpCi0rICAgICAgZWxzZQotKyAgICAgICAgd2l0aF9n bnVfbGQ9bm8KLSsgICAgICAgIHdsYXJjPQotKwotKyAgICAgICAgIyBBIGdlbmVyaWMgYW5kIHZl cnkgc2ltcGxlIGRlZmF1bHQgc2hhcmVkIGxpYnJhcnkgY3JlYXRpb24KLSsgICAgICAgICMgY29t bWFuZCBmb3IgR05VIEMrKyBmb3IgdGhlIGNhc2Ugd2hlcmUgaXQgdXNlcyB0aGUgbmF0aXZlCi0r ICAgICAgICAjIGxpbmtlciwgaW5zdGVhZCBvZiBHTlUgbGQuICBJZiBwb3NzaWJsZSwgdGhpcyBz ZXR0aW5nIHNob3VsZAotKyAgICAgICAgIyBvdmVycmlkZGVuIHRvIHRha2UgYWR2YW50YWdlIG9m IHRoZSBuYXRpdmUgbGlua2VyIGZlYXR1cmVzIG9uCi0rICAgICAgICAjIHRoZSBwbGF0Zm9ybSBp dCBpcyBiZWluZyB1c2VkIG9uLgotKyAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFy ZWQgLW5vc3RkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkbGliJwotKyAgICAgIGZpCi0rCi0rICAgICAgIyBD b21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0 cwotKyAgICAgICMgd2hhdCAiaGlkZGVuIiBsaWJyYXJpZXMsIG9iamVjdCBmaWxlcyBhbmQgZmxh Z3MgYXJlIHVzZWQgd2hlbgotKyAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKyAg ICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSckQ0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0 ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQIC12ICJeQ29uZmlndXJlZCB3aXRoOiIgfCAkR1JFUCAi XC1MIicKLSsKLSsgICAgZWxzZQotKyAgICAgIEdYWD1ubwotKyAgICAgIHdpdGhfZ251X2xkPW5v Ci0rICAgICAgd2xhcmM9Ci0rICAgIGZpCi0rCi0rICAgICMgUE9SVE1FOiBmaWxsIGluIGEgZGVz Y3JpcHRpb24gb2YgeW91ciBzeXN0ZW0ncyBDKysgbGluayBjaGFyYWN0ZXJpc3RpY3MKLSsgICAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVy IHRoZSAkY29tcGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMiID4m NQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlICRjb21waWxlciBsaW5rZXIgKCRM RCkgc3VwcG9ydHMgc2hhcmVkIGxpYnJhcmllcy4uLiAiID4mNjsgfQotKyAgICBsZF9zaGxpYnNf Q1hYPXllcwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgICAgYWl4MyopCi0rICAgICAgICAj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgIGxkX3No bGlic19DWFg9bm8KLSsgICAgICAgIDs7Ci0rICAgICAgYWl4WzQtOV0qKQotKyAgICAgICAgaWYg dGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSsgICAgICAgICAgIyBPbiBJQTY0LCB0aGUg bGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAotKyAg ICAgICAgICAjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KLSsgICAgICAgICAgYWl4X3Vz ZV9ydW50aW1lbGlua2luZz1ubwotKyAgICAgICAgICBleHBfc3ltX2ZsYWc9Jy1CZXhwb3J0Jwot KyAgICAgICAgICBub19lbnRyeV9mbGFnPSIiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIGFp eF91c2VfcnVudGltZWxpbmtpbmc9bm8KLSsKLSsgICAgICAgICAgIyBUZXN0IGlmIHdlIGFyZSB0 cnlpbmcgdG8gdXNlIHJ1biB0aW1lIGxpbmtpbmcgb3Igbm9ybWFsCi0rICAgICAgICAgICMgQUlY IHN0eWxlIGxpbmtpbmcuIElmIC1icnRsIGlzIHNvbWV3aGVyZSBpbiBMREZMQUdTLCB3ZQotKyAg ICAgICAgICAjIG5lZWQgdG8gZG8gcnVudGltZSBsaW5raW5nLgotKyAgICAgICAgICBjYXNlICRo b3N0X29zIGluIGFpeDQuWzIzXXxhaXg0LlsyM10uKnxhaXhbNS05XSopCi0rCSAgICBmb3IgbGRf ZmxhZyBpbiAkTERGTEFHUzsgZG8KLSsJICAgICAgY2FzZSAkbGRfZmxhZyBpbgotKwkgICAgICAq LWJydGwqKQotKwkgICAgICAgIGFpeF91c2VfcnVudGltZWxpbmtpbmc9eWVzCi0rCSAgICAgICAg YnJlYWsKLSsJICAgICAgICA7OwotKwkgICAgICBlc2FjCi0rCSAgICBkb25lCi0rCSAgICA7Owot KyAgICAgICAgICBlc2FjCi0rCi0rICAgICAgICAgIGV4cF9zeW1fZmxhZz0nLWJleHBvcnQnCi0r ICAgICAgICAgIG5vX2VudHJ5X2ZsYWc9Jy1ibm9lbnRyeScKLSsgICAgICAgIGZpCi0rCi0rICAg ICAgICAjIFdoZW4gbGFyZ2UgZXhlY3V0YWJsZXMgb3Igc2hhcmVkIG9iamVjdHMgYXJlIGJ1aWx0 LCBBSVggbGQgY2FuCi0rICAgICAgICAjIGhhdmUgcHJvYmxlbXMgY3JlYXRpbmcgdGhlIHRhYmxl IG9mIGNvbnRlbnRzLiAgSWYgbGlua2luZyBhIGxpYnJhcnkKLSsgICAgICAgICMgb3IgcHJvZ3Jh bSByZXN1bHRzIGluICJlcnJvciBUT0Mgb3ZlcmZsb3ciIGFkZCAtbW1pbmltYWwtdG9jIHRvCi0r ICAgICAgICAjIENYWEZMQUdTL0NGTEFHUyBmb3IgZysrL2djYy4gIEluIHRoZSBjYXNlcyB3aGVy ZSB0aGF0IGlzIG5vdAotKyAgICAgICAgIyBlbm91Z2ggdG8gZml4IHRoZSBwcm9ibGVtLCBhZGQg LVdsLC1iYmlndG9jIHRvIExERkxBR1MuCi0rCi0rICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPScn Ci0rICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcwotKyAgICAgICAgaGFyZGNvZGVfZGly ZWN0X2Fic29sdXRlX0NYWD15ZXMKLSsgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3Jf Q1hYPSc6JwotKyAgICAgICAgbGlua19hbGxfZGVwbGlic19DWFg9eWVzCi0rICAgICAgICBmaWxl X2xpc3Rfc3BlY19DWFg9JyR7d2x9LWYsJwotKwotKyAgICAgICAgaWYgdGVzdCAiJEdYWCIgPSB5 ZXM7IHRoZW4KLSsgICAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFpeDQuWzAx Ml0uKikKLSsgICAgICAgICAgIyBXZSBvbmx5IHdhbnQgdG8gZG8gdGhpcyBvbiBBSVggNC4yIGFu ZCBsb3dlciwgdGhlIGNoZWNrCi0rICAgICAgICAgICMgYmVsb3cgZm9yIGJyb2tlbiBjb2xsZWN0 MiBkb2Vzbid0IHdvcmsgdW5kZXIgNC4zKwotKwkgIGNvbGxlY3QybmFtZT1gJHtDQ30gLXByaW50 LXByb2ctbmFtZT1jb2xsZWN0MmAKLSsJICBpZiB0ZXN0IC1mICIkY29sbGVjdDJuYW1lIiAmJgot KwkgICAgIHN0cmluZ3MgIiRjb2xsZWN0Mm5hbWUiIHwgJEdSRVAgcmVzb2x2ZV9saWJfbmFtZSA+ L2Rldi9udWxsCi0rCSAgdGhlbgotKwkgICAgIyBXZSBoYXZlIHJld29ya2VkIGNvbGxlY3QyCi0r CSAgICA6Ci0rCSAgZWxzZQotKwkgICAgIyBXZSBoYXZlIG9sZCBjb2xsZWN0MgotKwkgICAgaGFy ZGNvZGVfZGlyZWN0X0NYWD11bnN1cHBvcnRlZAotKwkgICAgIyBJdCBmYWlscyB0byBmaW5kIHVu aW5zdGFsbGVkIGxpYnJhcmllcyB3aGVuIHRoZSB1bmluc3RhbGxlZAotKwkgICAgIyBwYXRoIGlz IG5vdCBsaXN0ZWQgaW4gdGhlIGxpYnBhdGguICBTZXR0aW5nIGhhcmRjb2RlX21pbnVzX0wKLSsJ ICAgICMgdG8gdW5zdXBwb3J0ZWQgZm9yY2VzIHJlbGlua2luZwotKwkgICAgaGFyZGNvZGVfbWlu dXNfTF9DWFg9eWVzCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLUwkbGli ZGlyJwotKwkgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9Ci0rCSAgZmkKLSsgICAg ICAgICAgZXNhYwotKyAgICAgICAgICBzaGFyZWRfZmxhZz0nLXNoYXJlZCcKLSsJICBpZiB0ZXN0 ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSsJICAgIHNoYXJlZF9mbGFn PSIkc2hhcmVkX2ZsYWcgIicke3dsfS1HJwotKwkgIGZpCi0rICAgICAgICBlbHNlCi0rICAgICAg ICAgICMgbm90IHVzaW5nIGdjYwotKyAgICAgICAgICBpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2 NDsgdGhlbgotKwkgICMgVmlzdWFsQWdlIEMrKywgVmVyc2lvbiA1LjUgZm9yIEFJWCA1TCBmb3Ig SUEtNjQsIEJldGEgMyBSZWxlYXNlCi0rCSAgIyBjaG9rZXMgb24gLVdsLC1HLiBUaGUgZm9sbG93 aW5nIGxpbmUgaXMgY29ycmVjdDoKLSsJICBzaGFyZWRfZmxhZz0nLUcnCi0rICAgICAgICAgIGVs c2UKLSsJICAgIGlmIHRlc3QgIiRhaXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgot KwkgICAgICBzaGFyZWRfZmxhZz0nJHt3bH0tRycKLSsJICAgIGVsc2UKLSsJICAgICAgc2hhcmVk X2ZsYWc9JyR7d2x9LWJNOlNSRScKLSsJICAgIGZpCi0rICAgICAgICAgIGZpCi0rICAgICAgICBm aQotKwotKyAgICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tYmV4cGFs bCcKLSsgICAgICAgICMgSXQgc2VlbXMgdGhhdCAtYmV4cGFsbCBkb2VzIG5vdCBleHBvcnQgc3lt Ym9scyBiZWdpbm5pbmcgd2l0aAotKyAgICAgICAgIyB1bmRlcnNjb3JlIChfKSwgc28gaXQgaXMg YmV0dGVyIHRvIGdlbmVyYXRlIGEgbGlzdCBvZiBzeW1ib2xzIHRvCi0rCSMgZXhwb3J0LgotKyAg ICAgICAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWD15ZXMKLSsgICAgICAgIGlmIHRlc3QgIiRh aXhfdXNlX3J1bnRpbWVsaW5raW5nIiA9IHllczsgdGhlbgotKyAgICAgICAgICAjIFdhcm5pbmcg LSB3aXRob3V0IHVzaW5nIHRoZSBvdGhlciBydW50aW1lIGxvYWRpbmcgZmxhZ3MgKC1icnRsKSwK LSsgICAgICAgICAgIyAtYmVyb2sgd2lsbCBsaW5rIHdpdGhvdXQgZXJyb3IsIGJ1dCBtYXkgcHJv ZHVjZSBhIGJyb2tlbiBsaWJyYXJ5LgotKyAgICAgICAgICBhbGxvd191bmRlZmluZWRfZmxhZ19D WFg9Jy1iZXJvaycKLSsgICAgICAgICAgIyBEZXRlcm1pbmUgdGhlIGRlZmF1bHQgbGlicGF0aCBm cm9tIHRoZSB2YWx1ZSBlbmNvZGVkIGluIGFuIGVtcHR5Ci0rICAgICAgICAgICMgZXhlY3V0YWJs ZS4KLSsgICAgICAgICAgaWYgdGVzdCAiJHtsdF9jdl9haXhfbGlicGF0aCtzZXR9IiA9IHNldDsg dGhlbgotKyAgYWl4X2xpYnBhdGg9JGx0X2N2X2FpeF9saWJwYXRoCi0rZWxzZQotKyAgaWYgJHts dF9jdl9haXhfbGlicGF0aF9fQ1hYKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihj YWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRl c3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLStpbnQKLSttYWluICgpCi0r ewotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlf bGluayAiJExJTkVOTyI7IHRoZW4gOgotKwotKyAgbHRfYWl4X2xpYnBhdGhfc2VkPScKLSsgICAg ICAvSW1wb3J0IEZpbGUgU3RyaW5ncy8sL14kLyB7Ci0rCSAgL14wLyB7Ci0rCSAgICAgIHMvXjAg ICpcKFteIF0qXCkgKiQvXDEvCi0rCSAgICAgIHAKLSsJICB9Ci0rICAgICAgfScKLSsgIGx0X2N2 X2FpeF9saWJwYXRoX19DWFg9YGR1bXAgLUggY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxs IHwgJFNFRCAtbiAtZSAiJGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rICAjIENoZWNrIGZvciBhIDY0 LWJpdCBvYmplY3QgaWYgd2UgZGlkbid0IGZpbmQgYW55dGhpbmcuCi0rICBpZiB0ZXN0IC16ICIk bHRfY3ZfYWl4X2xpYnBhdGhfX0NYWCI7IHRoZW4KLSsgICAgbHRfY3ZfYWl4X2xpYnBhdGhfX0NY WD1gZHVtcCAtSFg2NCBjb25mdGVzdCRhY19leGVleHQgMj4vZGV2L251bGwgfCAkU0VEIC1uIC1l ICIkbHRfYWl4X2xpYnBhdGhfc2VkImAKLSsgIGZpCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLSsgIGlmIHRlc3QgLXogIiRsdF9jdl9haXhfbGlicGF0aF9fQ1hYIjsgdGhl bgotKyAgICBsdF9jdl9haXhfbGlicGF0aF9fQ1hYPSIvdXNyL2xpYjovbGliIgotKyAgZmkKLSsK LStmaQotKwotKyAgYWl4X2xpYnBhdGg9JGx0X2N2X2FpeF9saWJwYXRoX19DWFgKLStmaQotKwot KyAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tYmxpYnBhdGg6 JGxpYmRpcjonIiRhaXhfbGlicGF0aCIKLSsKLSsgICAgICAgICAgYXJjaGl2ZV9leHBzeW1fY21k c19DWFg9JyRDQyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWJvYmpzICRkZXBsaWJzICci XCR7d2x9JG5vX2VudHJ5X2ZsYWciJyAkY29tcGlsZXJfZmxhZ3MgYGlmIHRlc3QgIngke2FsbG93 X3VuZGVmaW5lZF9mbGFnfSIgIT0gIngiOyB0aGVuIGZ1bmNfZWNob19hbGwgIiR7d2x9JHthbGxv d191bmRlZmluZWRfZmxhZ30iOyBlbHNlIDo7IGZpYCAnIlwke3dsfSRleHBfc3ltX2ZsYWc6XCRl eHBvcnRfc3ltYm9scyAkc2hhcmVkX2ZsYWciCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgIGlm IHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjX0NYWD0nJHt3bH0tUiAkbGliZGlyOi91c3IvbGliOi9saWInCi0rCSAgICBhbGxvd191 bmRlZmluZWRfZmxhZ19DWFg9Ii16IG5vZGVmcyIKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNf Q1hYPSJcJENDICRzaGFyZWRfZmxhZyInIC1vICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYm9i anMgJGRlcGxpYnMgJyJcJHt3bH0kbm9fZW50cnlfZmxhZyInICRjb21waWxlcl9mbGFncyAke3ds fSR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICciXCR7d2x9JGV4cF9zeW1fZmxhZzpcJGV4cG9ydF9z eW1ib2xzIgotKyAgICAgICAgICBlbHNlCi0rCSAgICAjIERldGVybWluZSB0aGUgZGVmYXVsdCBs aWJwYXRoIGZyb20gdGhlIHZhbHVlIGVuY29kZWQgaW4gYW4KLSsJICAgICMgZW1wdHkgZXhlY3V0 YWJsZS4KLSsJICAgIGlmIHRlc3QgIiR7bHRfY3ZfYWl4X2xpYnBhdGgrc2V0fSIgPSBzZXQ7IHRo ZW4KLSsgIGFpeF9saWJwYXRoPSRsdF9jdl9haXhfbGlicGF0aAotK2Vsc2UKLSsgIGlmICR7bHRf Y3ZfYWl4X2xpYnBhdGhfX0NYWCs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2Fj aGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0 LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sK LSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xp bmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsKLSsgIGx0X2FpeF9saWJwYXRoX3NlZD0nCi0rICAgICAg L0ltcG9ydCBGaWxlIFN0cmluZ3MvLC9eJC8gewotKwkgIC9eMC8gewotKwkgICAgICBzL14wICAq XChbXiBdKlwpICokL1wxLwotKwkgICAgICBwCi0rCSAgfQotKyAgICAgIH0nCi0rICBsdF9jdl9h aXhfbGlicGF0aF9fQ1hYPWBkdW1wIC1IIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAyPi9kZXYvbnVsbCB8 ICRTRUQgLW4gLWUgIiRsdF9haXhfbGlicGF0aF9zZWQiYAotKyAgIyBDaGVjayBmb3IgYSA2NC1i aXQgb2JqZWN0IGlmIHdlIGRpZG4ndCBmaW5kIGFueXRoaW5nLgotKyAgaWYgdGVzdCAteiAiJGx0 X2N2X2FpeF9saWJwYXRoX19DWFgiOyB0aGVuCi0rICAgIGx0X2N2X2FpeF9saWJwYXRoX19DWFg9 YGR1bXAgLUhYNjQgY29uZnRlc3QkYWNfZXhlZXh0IDI+L2Rldi9udWxsIHwgJFNFRCAtbiAtZSAi JGx0X2FpeF9saWJwYXRoX3NlZCJgCi0rICBmaQotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5l cnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVz dC4kYWNfZXh0Ci0rICBpZiB0ZXN0IC16ICIkbHRfY3ZfYWl4X2xpYnBhdGhfX0NYWCI7IHRoZW4K LSsgICAgbHRfY3ZfYWl4X2xpYnBhdGhfX0NYWD0iL3Vzci9saWI6L2xpYiIKLSsgIGZpCi0rCi0r ZmkKLSsKLSsgIGFpeF9saWJwYXRoPSRsdF9jdl9haXhfbGlicGF0aF9fQ1hYCi0rZmkKLSsKLSsJ ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ibGlicGF0aDokbGliZGly OiciJGFpeF9saWJwYXRoIgotKwkgICAgIyBXYXJuaW5nIC0gd2l0aG91dCB1c2luZyB0aGUgb3Ro ZXIgcnVuIHRpbWUgbG9hZGluZyBmbGFncywKLSsJICAgICMgLWJlcm9rIHdpbGwgbGluayB3aXRo b3V0IGVycm9yLCBidXQgbWF5IHByb2R1Y2UgYSBicm9rZW4gbGlicmFyeS4KLSsJICAgIG5vX3Vu ZGVmaW5lZF9mbGFnX0NYWD0nICR7d2x9LWJlcm5vdG9rJwotKwkgICAgYWxsb3dfdW5kZWZpbmVk X2ZsYWdfQ1hYPScgJHt3bH0tYmVyb2snCi0rCSAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0g eWVzOyB0aGVuCi0rCSAgICAgICMgV2Ugb25seSB1c2UgdGhpcyBjb2RlIGZvciBHTlUgbGRzIHRo YXQgc3VwcG9ydCAtLXdob2xlLWFyY2hpdmUuCi0rCSAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19z cGVjX0NYWD0nJHt3bH0tLXdob2xlLWFyY2hpdmUkY29udmVuaWVuY2UgJHt3bH0tLW5vLXdob2xl LWFyY2hpdmUnCi0rCSAgICBlbHNlCi0rCSAgICAgICMgRXhwb3J0ZWQgc3ltYm9scyBjYW4gYmUg cHVsbGVkIGludG8gc2hhcmVkIG9iamVjdHMgZnJvbSBhcmNoaXZlcwotKwkgICAgICB3aG9sZV9h cmNoaXZlX2ZsYWdfc3BlY19DWFg9JyRjb252ZW5pZW5jZScKLSsJICAgIGZpCi0rCSAgICBhcmNo aXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCi0rCSAgICAjIFRoaXMgaXMgc2ltaWxhciB0byBob3cg QUlYIHRyYWRpdGlvbmFsbHkgYnVpbGRzIGl0cyBzaGFyZWQKLSsJICAgICMgbGlicmFyaWVzLgot KwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9IlwkQ0MgJHNoYXJlZF9mbGFnIicgLW8gJG91 dHB1dF9vYmpkaXIvJHNvbmFtZSAkbGlib2JqcyAkZGVwbGlicyAke3dsfS1ibm9lbnRyeSAkY29t cGlsZXJfZmxhZ3MgJHt3bH0tYkU6JGV4cG9ydF9zeW1ib2xzJHthbGxvd191bmRlZmluZWRfZmxh Z31+JEFSICRBUl9GTEFHUyAkb3V0cHV0X29iamRpci8kbGlibmFtZSRyZWxlYXNlLmEgJG91dHB1 dF9vYmpkaXIvJHNvbmFtZScKLSsgICAgICAgICAgZmkKLSsgICAgICAgIGZpCi0rICAgICAgICA7 OwotKwotKyAgICAgIGJlb3MqKQotKwlpZiAkTEQgLS1oZWxwIDI+JjEgfCAkR1JFUCAnOiBzdXBw b3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgYWxsb3dfdW5kZWZp bmVkX2ZsYWdfQ1hYPXVuc3VwcG9ydGVkCi0rCSAgIyBKb3NlcGggQmVja2VuYmFjaCA8anJiM0Bi ZXN0LmNvbT4gc2F5cyBzb21lIHJlbGVhc2VzIG9mIGdjYwotKwkgICMgc3VwcG9ydCAtLXVuZGVm aW5lZC4gIFRoaXMgZGVzZXJ2ZXMgc29tZSBpbnZlc3RpZ2F0aW9uLiAgRklYTUUKLSsJICBhcmNo aXZlX2NtZHNfQ1hYPSckQ0MgLW5vc3RhcnQgJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCWVsc2UKLSsJICBsZF9zaGxp YnNfQ1hYPW5vCi0rCWZpCi0rCTs7Ci0rCi0rICAgICAgY2hvcnVzKikKLSsgICAgICAgIGNhc2Ug JGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgICopCi0rCSAgIyBGSVhNRTogaW5zZXJ0IHByb3Bl ciBDKysgbGlicmFyeSBzdXBwb3J0Ci0rCSAgbGRfc2hsaWJzX0NYWD1ubwotKwkgIDs7Ci0rICAg ICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMy KiB8IGNlZ2NjKikKLSsJY2FzZSAkR1hYLCRjY19iYXNlbmFtZSBpbgotKwksY2wqIHwgbm8sY2wq KQotKwkgICMgTmF0aXZlIE1TVkMKLSsJICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMg YWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCi0rCSAgIyBubyBzZWFyY2ggcGF0aCBm b3IgRExMcy4KLSsJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nICcKLSsJICBhbGxv d191bmRlZmluZWRfZmxhZ19DWFg9dW5zdXBwb3J0ZWQKLSsJICBhbHdheXNfZXhwb3J0X3N5bWJv bHNfQ1hYPXllcwotKwkgIGZpbGVfbGlzdF9zcGVjX0NYWD0nQCcKLSsJICAjIFRlbGwgbHRtYWlu IHRvIG1ha2UgLmxpYiBmaWxlcywgbm90IC5hIGZpbGVzLgotKwkgIGxpYmV4dD1saWIKLSsJICAj IFRlbGwgbHRtYWluIHRvIG1ha2UgLmRsbCBmaWxlcywgbm90IC5zbyBmaWxlcy4KLSsJICBzaHJl eHRfY21kcz0iLmRsbCIKLSsJICAjIEZJWE1FOiBTZXR0aW5nIGxpbmtuYW1lcyBoZXJlIGlzIGEg YmFkIGhhY2suCi0rCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1vICRvdXRwdXRfb2JqZGlyLyRz b25hbWUgJGxpYm9ianMgJGNvbXBpbGVyX2ZsYWdzICRkZXBsaWJzIC1XbCwtZGxsfmxpbmtuYW1l cz0nCi0rCSAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2lmIHRlc3QgInhgJFNFRCAxcSAkZXhw b3J0X3N5bWJvbHNgIiA9IHhFWFBPUlRTOyB0aGVuCi0rCSAgICAgICRTRUQgLW4gLWUgJ3MvXFxc XFxcXCguKlxcXFxcXFwpLy1saW5rXFxcIC1FWFBPUlQ6XFxcXFxcXDEvJyAtZSAnMVxcXCFwJyA8 ICRleHBvcnRfc3ltYm9scyA+ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZXhwOwotKwkgICAgZWxz ZQotKwkgICAgICAkU0VEIC1lICdzL1xcXFxcXFwoLipcXFxcXFxcKS8tbGlua1xcXCAtRVhQT1JU OlxcXFxcXFwxLycgPCAkZXhwb3J0X3N5bWJvbHMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmV4 cDsKLSsJICAgIGZpfgotKwkgICAgJENDIC1vICR0b29sX291dHB1dF9vYmpkaXIkc29uYW1lICRs aWJvYmpzICRjb21waWxlcl9mbGFncyAkZGVwbGlicyAiQCR0b29sX291dHB1dF9vYmpkaXIkc29u YW1lLmV4cCIgLVdsLC1ETEwsLUlNUExJQjoiJHRvb2xfb3V0cHV0X29iamRpciRsaWJuYW1lLmRs bC5saWIifgotKwkgICAgbGlua25hbWVzPScKLSsJICAjIFRoZSBsaW5rZXIgd2lsbCBub3QgYXV0 b21hdGljYWxseSBidWlsZCBhIHN0YXRpYyBsaWIgaWYgd2UgYnVpbGQgYSBETEwuCi0rCSAgIyBf TFRfVEFHVkFSKG9sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHMsIENYWCk9J3RydWUnCi0rCSAgZW5h YmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFg9eWVzCi0rCSAgIyBEb24ndCB1c2Ug cmFubGliCi0rCSAgb2xkX3Bvc3RpbnN0YWxsX2NtZHNfQ1hYPSdjaG1vZCA2NDQgJG9sZGxpYicK LSsJICBwb3N0bGlua19jbWRzX0NYWD0nbHRfb3V0cHV0ZmlsZT0iQE9VVFBVVEAifgotKwkgICAg bHRfdG9vbF9vdXRwdXRmaWxlPSJAVE9PTF9PVVRQVVRAIn4KLSsJICAgIGNhc2UgJGx0X291dHB1 dGZpbGUgaW4KLSsJICAgICAgKi5leGV8Ki5FWEUpIDs7Ci0rCSAgICAgICopCi0rCQlsdF9vdXRw dXRmaWxlPSIkbHRfb3V0cHV0ZmlsZS5leGUiCi0rCQlsdF90b29sX291dHB1dGZpbGU9IiRsdF90 b29sX291dHB1dGZpbGUuZXhlIgotKwkJOzsKLSsJICAgIGVzYWN+Ci0rCSAgICBmdW5jX3RvX3Rv b2xfZmlsZSAiJGx0X291dHB1dGZpbGUifgotKwkgICAgaWYgdGVzdCAiJE1BTklGRVNUX1RPT0wi ICE9ICI6IiAmJiB0ZXN0IC1mICIkbHRfb3V0cHV0ZmlsZS5tYW5pZmVzdCI7IHRoZW4KLSsJICAg ICAgJE1BTklGRVNUX1RPT0wgLW1hbmlmZXN0ICIkbHRfdG9vbF9vdXRwdXRmaWxlLm1hbmlmZXN0 IiAtb3V0cHV0cmVzb3VyY2U6IiRsdF90b29sX291dHB1dGZpbGUiIHx8IGV4aXQgMTsKLSsJICAg ICAgJFJNICIkbHRfb3V0cHV0ZmlsZS5tYW5pZmVzdCI7Ci0rCSAgICBmaScKLSsJICA7OwotKwkq KQotKwkgICMgZysrCi0rCSAgIyBfTFRfVEFHVkFSKGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMs IENYWCkgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsCi0rCSAgIyBhcyB0aGVyZSBpcyBubyBzZWFy Y2ggcGF0aCBmb3IgRExMcy4KLSsJICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLUwk bGliZGlyJwotKwkgIGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LS1leHBvcnQt YWxsLXN5bWJvbHMnCi0rCSAgYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPXVuc3VwcG9ydGVkCi0r CSAgYWx3YXlzX2V4cG9ydF9zeW1ib2xzX0NYWD1ubwotKwkgIGVuYWJsZV9zaGFyZWRfd2l0aF9z dGF0aWNfcnVudGltZXNfQ1hYPXllcwotKwotKwkgIGlmICRMRCAtLWhlbHAgMj4mMSB8ICRHUkVQ ICdhdXRvLWltcG9ydCcgPiAvZGV2L251bGw7IHRoZW4KLSsJICAgIGFyY2hpdmVfY21kc19DWFg9 JyRDQyAtc2hhcmVkIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJG91dHB1dF9vYmpkaXIvJHNvbmFt ZSAke3dsfS0tZW5hYmxlLWF1dG8taW1hZ2UtYmFzZSAtWGxpbmtlciAtLW91dC1pbXBsaWIgLVhs aW5rZXIgJGxpYicKLSsJICAgICMgSWYgdGhlIGV4cG9ydC1zeW1ib2xzIGZpbGUgYWxyZWFkeSBp cyBhIC5kZWYgZmlsZSAoMXN0IGxpbmUKLSsJICAgICMgaXMgRVhQT1JUUyksIHVzZSBpdCBhcyBp czsgb3RoZXJ3aXNlLCBwcmVwZW5kLi4uCi0rCSAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0n aWYgdGVzdCAieGAkU0VEIDFxICRleHBvcnRfc3ltYm9sc2AiID0geEVYUE9SVFM7IHRoZW4KLSsJ ICAgICAgY3AgJGV4cG9ydF9zeW1ib2xzICRvdXRwdXRfb2JqZGlyLyRzb25hbWUuZGVmOwotKwkg ICAgZWxzZQotKwkgICAgICBlY2hvIEVYUE9SVFMgPiAkb3V0cHV0X29iamRpci8kc29uYW1lLmRl ZjsKLSsJICAgICAgY2F0ICRleHBvcnRfc3ltYm9scyA+PiAkb3V0cHV0X29iamRpci8kc29uYW1l LmRlZjsKLSsJICAgIGZpfgotKwkgICAgJENDIC1zaGFyZWQgLW5vc3RkbGliICRvdXRwdXRfb2Jq ZGlyLyRzb25hbWUuZGVmICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbyAkb3V0cHV0X29iamRpci8kc29uYW1lICR7d2x9 LS1lbmFibGUtYXV0by1pbWFnZS1iYXNlIC1YbGlua2VyIC0tb3V0LWltcGxpYiAtWGxpbmtlciAk bGliJwotKwkgIGVsc2UKLSsJICAgIGxkX3NobGlic19DWFg9bm8KLSsJICBmaQotKwkgIDs7Ci0r CWVzYWMKLSsJOzsKLSsgICAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQotKwotKwotKyAgYXJjaGl2 ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCi0rICBoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCi0rICBoYXJk Y29kZV9hdXRvbWF0aWNfQ1hYPXllcwotKyAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9dW5z dXBwb3J0ZWQKLSsgIGlmIHRlc3QgIiRsdF9jdl9sZF9mb3JjZV9sb2FkIiA9ICJ5ZXMiOyB0aGVu Ci0rICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nYGZvciBjb252IGluICRjb252ZW5p ZW5jZVwiXCI7IGRvIHRlc3QgIC1uIFwiJGNvbnZcIiAmJiBuZXdfY29udmVuaWVuY2U9XCIkbmV3 X2NvbnZlbmllbmNlICR7d2x9LWZvcmNlX2xvYWQsJGNvbnZcIjsgZG9uZTsgZnVuY19lY2hvX2Fs bCBcIiRuZXdfY29udmVuaWVuY2VcImAnCi0rICBlbHNlCi0rICAgIHdob2xlX2FyY2hpdmVfZmxh Z19zcGVjX0NYWD0nJwotKyAgZmkKLSsgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcwotKyAgYWxs b3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSIkX2x0X2Rhcl9hbGxvd191bmRlZmluZWQiCi0rICBjYXNl ICRjY19iYXNlbmFtZSBpbgotKyAgICAgaWZvcnQqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9eWVzIDs7 Ci0rICAgICAqKSBfbHRfZGFyX2Nhbl9zaGFyZWQ9JEdDQyA7OwotKyAgZXNhYwotKyAgaWYgdGVz dCAiJF9sdF9kYXJfY2FuX3NoYXJlZCIgPSAieWVzIjsgdGhlbgotKyAgICBvdXRwdXRfdmVyYm9z ZV9saW5rX2NtZD1mdW5jX2VjaG9fYWxsCi0rICAgIGFyY2hpdmVfY21kc19DWFg9IlwkQ0MgLWR5 bmFtaWNsaWIgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJGxpYm9ianMgXCRkZXBs aWJzIFwkY29tcGlsZXJfZmxhZ3MgLWluc3RhbGxfbmFtZSBcJHJwYXRoL1wkc29uYW1lIFwkdmVy c3RyaW5nICRfbHRfZGFyX3NpbmdsZV9tb2Qke19sdF9kc3ltdXRpbH0iCi0rICAgIG1vZHVsZV9j bWRzX0NYWD0iXCRDQyBcJGFsbG93X3VuZGVmaW5lZF9mbGFnIC1vIFwkbGliIC1idW5kbGUgXCRs aWJvYmpzIFwkZGVwbGlicyBcJGNvbXBpbGVyX2ZsYWdzJHtfbHRfZHN5bXV0aWx9IgotKyAgICBh cmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0ic2VkICdzLF4sXywnIDwgXCRleHBvcnRfc3ltYm9scyA+ IFwkb3V0cHV0X29iamRpci9cJHtsaWJuYW1lfS1zeW1ib2xzLmV4cHN5bX5cJENDIC1keW5hbWlj bGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCRsaWJvYmpzIFwkZGVwbGlicyBc JGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0cmlu ZyAke19sdF9kYXJfc2luZ2xlX21vZH0ke19sdF9kYXJfZXhwb3J0X3N5bXN9JHtfbHRfZHN5bXV0 aWx9IgotKyAgICBtb2R1bGVfZXhwc3ltX2NtZHNfQ1hYPSJzZWQgLWUgJ3MsXixfLCcgPCBcJGV4 cG9ydF9zeW1ib2xzID4gXCRvdXRwdXRfb2JqZGlyL1wke2xpYm5hbWV9LXN5bWJvbHMuZXhwc3lt flwkQ0MgXCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiAtYnVuZGxlIFwkbGlib2JqcyBc JGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3lt dXRpbH0iCi0rICAgICAgIGlmIHRlc3QgIiRsdF9jdl9hcHBsZV9jY19zaW5nbGVfbW9kIiAhPSAi eWVzIjsgdGhlbgotKyAgICAgIGFyY2hpdmVfY21kc19DWFg9IlwkQ0MgLXIgLWtlZXBfcHJpdmF0 ZV9leHRlcm5zIC1ub3N0ZGxpYiAtbyBcJHtsaWJ9LW1hc3Rlci5vIFwkbGlib2Jqc35cJENDIC1k eW5hbWljbGliIFwkYWxsb3dfdW5kZWZpbmVkX2ZsYWcgLW8gXCRsaWIgXCR7bGlifS1tYXN0ZXIu byBcJGRlcGxpYnMgXCRjb21waWxlcl9mbGFncyAtaW5zdGFsbF9uYW1lIFwkcnBhdGgvXCRzb25h bWUgXCR2ZXJzdHJpbmcke19sdF9kc3ltdXRpbH0iCi0rICAgICAgYXJjaGl2ZV9leHBzeW1fY21k c19DWFg9InNlZCAncyxeLF8sJyA8IFwkZXhwb3J0X3N5bWJvbHMgPiBcJG91dHB1dF9vYmpkaXIv XCR7bGlibmFtZX0tc3ltYm9scy5leHBzeW1+XCRDQyAtciAta2VlcF9wcml2YXRlX2V4dGVybnMg LW5vc3RkbGliIC1vIFwke2xpYn0tbWFzdGVyLm8gXCRsaWJvYmpzflwkQ0MgLWR5bmFtaWNsaWIg XCRhbGxvd191bmRlZmluZWRfZmxhZyAtbyBcJGxpYiBcJHtsaWJ9LW1hc3Rlci5vIFwkZGVwbGli cyBcJGNvbXBpbGVyX2ZsYWdzIC1pbnN0YWxsX25hbWUgXCRycGF0aC9cJHNvbmFtZSBcJHZlcnN0 cmluZyR7X2x0X2Rhcl9leHBvcnRfc3ltc30ke19sdF9kc3ltdXRpbH0iCi0rICAgIGZpCi0rCi0r ICBlbHNlCi0rICBsZF9zaGxpYnNfQ1hYPW5vCi0rICBmaQotKwotKwk7OwotKwotKyAgICAgIGRn dXgqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgZWMrKyopCi0r CSAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgIGxk X3NobGlic19DWFg9bm8KLSsJICAgIDs7Ci0rICAgICAgICAgIGdoY3gqKQotKwkgICAgIyBHcmVl biBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxp YnJhcnkgc3VwcG9ydAotKwkgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgOzsKLSsgICAgICAg ICAgKikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAot KwkgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAg IDs7Ci0rCi0rICAgICAgZnJlZWJzZFsxMl0qKQotKyAgICAgICAgIyBDKysgc2hhcmVkIGxpYnJh cmllcyByZXBvcnRlZCB0byBiZSBmYWlybHkgYnJva2VuIGJlZm9yZQotKwkjIHN3aXRjaCB0byBF TEYKLSsgICAgICAgIGxkX3NobGlic19DWFg9bm8KLSsgICAgICAgIDs7Ci0rCi0rICAgICAgZnJl ZWJzZC1lbGYqKQotKyAgICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPW5vCi0rICAgICAg ICA7OwotKwotKyAgICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSsgICAgICAgICMgRnJlZUJT RCAzIGFuZCBsYXRlciB1c2UgR05VIEMrKyBhbmQgR05VIGxkIHdpdGggc3RhbmRhcmQgRUxGCi0r ICAgICAgICAjIGNvbnZlbnRpb25zCi0rICAgICAgICBsZF9zaGxpYnNfQ1hYPXllcwotKyAgICAg ICAgOzsKLSsKLSsgICAgICBnbnUqKQotKyAgICAgICAgOzsKLSsKLSsgICAgICBoYWlrdSopCi0r ICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgLW8gJGxpYicKLSsgICAgICAg IGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcwotKyAgICAgICAgOzsKLSsKLSsgICAgICBocHV4OSop Ci0rICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0rYiAke3dsfSRs aWJkaXInCi0rICAgICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Ci0rICAgICAg ICBleHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1FJwotKyAgICAgICAgaGFyZGNv ZGVfZGlyZWN0X0NYWD15ZXMKLSsgICAgICAgIGhhcmRjb2RlX21pbnVzX0xfQ1hYPXllcyAjIE5v dCBpbiB0aGUgc2VhcmNoIFBBVEgsCi0rCQkJCSAgICAgICAgICAgICAjIGJ1dCBhcyB0aGUgZGVm YXVsdAotKwkJCQkgICAgICAgICAgICAgIyBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSsKLSsg ICAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsgICAgICAgICAg ICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgICAg ICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICAgICAgOzsKLSsgICAgICAgICAgYUNDKikKLSsg ICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4k Q0MgLWIgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkb3V0cHV0X29iamRpci8kc29u YW1lICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRj b21waWxlcl9mbGFnc350ZXN0ICRvdXRwdXRfb2JqZGlyLyRzb25hbWUgPSAkbGliIHx8IG12ICRv dXRwdXRfb2JqZGlyLyRzb25hbWUgJGxpYicKLSsgICAgICAgICAgICAjIENvbW1hbmRzIHRvIG1h a2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0rICAgICAgICAg ICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUg dXNlZCB3aGVuCi0rICAgICAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVkIGxpYnJhcnkuCi0rICAg ICAgICAgICAgIwotKyAgICAgICAgICAgICMgVGhlcmUgZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3 YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsgICAgICAgICAgICAjIGV4cGxpY2l0 bHkgbGlua2luZyBzeXN0ZW0gb2JqZWN0IGZpbGVzIHNvIHdlIG5lZWQgdG8gc3RyaXAgdGhlbQot KyAgICAgICAgICAgICMgZnJvbSB0aGUgb3V0cHV0IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5j bHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsgICAgICAgICAgICAjIGRlcGVuZGVuY2llcy4KLSsgICAg ICAgICAgICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0ndGVtcGxpc3Q9YCgkQ0MgLWIgJENGTEFH UyAtdiBjb25mdGVzdC4kb2JqZXh0IDI+JjEpIHwgJEVHUkVQICJcLUwiYDsgbGlzdD0iIjsgZm9y IHogaW4gJHRlbXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRs aXN0ICR6Ijs7ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1 bmNfZWNob19hbGwgIiRsaXN0IicKLSsgICAgICAgICAgICA7OwotKyAgICAgICAgICAqKQotKyAg ICAgICAgICAgIGlmIHRlc3QgIiRHWFgiID0geWVzOyB0aGVuCi0rICAgICAgICAgICAgICBhcmNo aXZlX2NtZHNfQ1hYPSckUk0gJG91dHB1dF9vYmpkaXIvJHNvbmFtZX4kQ0MgLXNoYXJlZCAtbm9z dGRsaWIgJHBpY19mbGFnICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJkaXIgLW8gJG91dHB1dF9v YmpkaXIvJHNvbmFtZSAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3N+dGVzdCAkb3V0cHV0X29iamRpci8kc29uYW1lID0gJGxp YiB8fCBtdiAkb3V0cHV0X29iamRpci8kc29uYW1lICRsaWInCi0rICAgICAgICAgICAgZWxzZQot KyAgICAgICAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 Ci0rICAgICAgICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICAgICAgZmkKLSsgICAg ICAgICAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsKLSsKLSsgICAgICBocHV4MTAq fGhwdXgxMSopCi0rICAgICAgICBpZiB0ZXN0ICR3aXRoX2dudV9sZCA9IG5vOyB0aGVuCi0rCSAg aGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9K2IgJHt3bH0kbGliZGlyJwotKwkg IGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hYPToKLSsKLSsgICAgICAgICAgY2FzZSAkaG9z dF9jcHUgaW4KLSsgICAgICAgICAgICBocHBhKjY0KnxpYTY0KikKLSsgICAgICAgICAgICAgIDs7 Ci0rICAgICAgICAgICAgKikKLSsJICAgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0n JHt3bH0tRScKLSsgICAgICAgICAgICAgIDs7Ci0rICAgICAgICAgIGVzYWMKLSsgICAgICAgIGZp Ci0rICAgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgICAgICBocHBhKjY0KnxpYTY0KikK LSsgICAgICAgICAgICBoYXJkY29kZV9kaXJlY3RfQ1hYPW5vCi0rICAgICAgICAgICAgaGFyZGNv ZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KLSsgICAgICAgICAgICA7OwotKyAgICAgICAgICAqKQot KyAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdF9DWFg9eWVzCi0rICAgICAgICAgICAgaGFyZGNv ZGVfZGlyZWN0X2Fic29sdXRlX0NYWD15ZXMKLSsgICAgICAgICAgICBoYXJkY29kZV9taW51c19M X0NYWD15ZXMgIyBOb3QgaW4gdGhlIHNlYXJjaCBQQVRILAotKwkJCQkJICAgICAgICAgIyBidXQg YXMgdGhlIGRlZmF1bHQKLSsJCQkJCSAgICAgICAgICMgbG9jYXRpb24gb2YgdGhlIGxpYnJhcnku Ci0rICAgICAgICAgICAgOzsKLSsgICAgICAgIGVzYWMKLSsKLSsgICAgICAgIGNhc2UgJGNjX2Jh c2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgOzsKLSsg ICAgICAgICAgYUNDKikKLSsJICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rCSAgICAgIGhwcGEqNjQq KQotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtYiAke3dsfStoICR7d2x9JHNvbmFt ZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmpl Y3RzICRjb21waWxlcl9mbGFncycKLSsJICAgICAgICA7OwotKwkgICAgICBpYTY0KikKLSsJICAg ICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0r bm9kZWZhdWx0cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgOzsKLSsJICAgICAg KikKLSsJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLWIgJHt3bH0raCAke3dsfSRzb25h bWUgJHt3bH0rYiAke3dsfSRpbnN0YWxsX2xpYmRpciAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAg ICAgICA7OwotKwkgICAgZXNhYwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNvbXBpbGVyIHBy b2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJoaWRkZW4iIGxp YnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAjIGxp bmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICMKLSsJICAgICMgVGhlcmUgZG9lc24ndCBh cHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20KLSsJICAgICMg ZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVlZCB0byBzdHJp cCB0aGVtCi0rCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9uJ3QgZ2V0IGlu Y2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIGRlcGVuZGVuY2llcy4KLSsJICAgIG91dHB1 dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gKCRDQyAtYiAkQ0ZMQUdTIC12IGNvbmZ0ZXN0 LiRvYmpleHQgMj4mMSkgfCAkR1JFUCAiXC1MImA7IGxpc3Q9IiI7IGZvciB6IGluICR0ZW1wbGlz dDsgZG8gY2FzZSAkeiBpbiBjb25mdGVzdC4kb2JqZXh0KSBsaXN0PSIkbGlzdCAkeiI7OyAqLiRv YmpleHQpOzsgKikgbGlzdD0iJGxpc3QgJHoiOztlc2FjOyBkb25lOyBmdW5jX2VjaG9fYWxsICIk bGlzdCInCi0rCSAgICA7OwotKyAgICAgICAgICAqKQotKwkgICAgaWYgdGVzdCAiJEdYWCIgPSB5 ZXM7IHRoZW4KLSsJICAgICAgaWYgdGVzdCAkd2l0aF9nbnVfbGQgPSBubzsgdGhlbgotKwkgICAg ICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rCSAgICAgICAgICBocHBhKjY0KikKLSsJICAgICAgICAg ICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgLW5vc3RkbGliIC1mUElDICR7d2x9K2gg JHt3bH0kc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgICAgICAgICA7OwotKwkgICAg ICAgICAgaWE2NCopCi0rCSAgICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVk IC1ub3N0ZGxpYiAkcGljX2ZsYWcgJHt3bH0raCAke3dsfSRzb25hbWUgJHt3bH0rbm9kZWZhdWx0 cnBhdGggLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBf b2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgICAgIDs7Ci0rCSAgICAgICAgICAq KQotKwkgICAgICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIg JHBpY19mbGFnICR7d2x9K2ggJHt3bH0kc29uYW1lICR7d2x9K2IgJHt3bH0kaW5zdGFsbF9saWJk aXIgLW8gJGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgICAgICAgICAgIDs7Ci0rCSAgICAgICAgZXNhYwot KwkgICAgICBmaQotKwkgICAgZWxzZQotKwkgICAgICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMr KyBsaWJyYXJ5IHN1cHBvcnQKLSsJICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgZmkKLSsJ ICAgIDs7Ci0rICAgICAgICBlc2FjCi0rICAgICAgICA7OwotKwotKyAgICAgIGludGVyaXhbMy05 XSopCi0rCWhhcmRjb2RlX2RpcmVjdF9DWFg9bm8KLSsJaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9D WFg9bm8KLSsJaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJk aXInCi0rCWV4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9JyR7d2x9LUUnCi0rCSMgSGFjazog T24gSW50ZXJpeCAzLngsIHdlIGNhbm5vdCBjb21waWxlIFBJQyBiZWNhdXNlIG9mIGEgYnJva2Vu IGdjYy4KLSsJIyBJbnN0ZWFkLCBzaGFyZWQgbGlicmFyaWVzIGFyZSBsb2FkZWQgYXQgYW4gaW1h Z2UgYmFzZSAoMHgxMDAwMDAwMCBieQotKwkjIGRlZmF1bHQpIGFuZCByZWxvY2F0ZWQgaWYgdGhl eSBjb25mbGljdCwgd2hpY2ggaXMgYSBzbG93IHZlcnkgbWVtb3J5Ci0rCSMgY29uc3VtaW5nIGFu ZCBmcmFnbWVudGluZyBwcm9jZXNzLiAgVG8gYXZvaWQgdGhpcywgd2UgcGljayBhIHJhbmRvbSwK LSsJIyAyNTYgS2lCLWFsaWduZWQgaW1hZ2UgYmFzZSBiZXR3ZWVuIDB4NTAwMDAwMDAgYW5kIDB4 NkZGQzAwMDAgYXQgbGluawotKwkjIHRpbWUuICBNb3ZpbmcgdXAgZnJvbSAweDEwMDAwMDAwIGFs c28gYWxsb3dzIG1vcmUgc2JyaygyKSBzcGFjZS4KLSsJYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1z aGFyZWQgJHBpY19mbGFnICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncyAke3dsfS1o LCRzb25hbWUgJHt3bH0tLWltYWdlLWJhc2UsYGV4cHIgJHtSQU5ET00tJCR9ICUgNDA5NiAvIDIg XCogMjYyMTQ0ICsgMTM0MjE3NzI4MGAgLW8gJGxpYicKLSsJYXJjaGl2ZV9leHBzeW1fY21kc19D WFg9J3NlZCAicyxeLF8sIiAkZXhwb3J0X3N5bWJvbHMgPiRvdXRwdXRfb2JqZGlyLyRzb25hbWUu ZXhwc3ltfiRDQyAtc2hhcmVkICRwaWNfZmxhZyAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MgJHt3bH0taCwkc29uYW1lICR7d2x9LS1yZXRhaW4tc3ltYm9scy1maWxlLCRvdXRwdXRf b2JqZGlyLyRzb25hbWUuZXhwc3ltICR7d2x9LS1pbWFnZS1iYXNlLGBleHByICR7UkFORE9NLSQk fSAlIDQwOTYgLyAyIFwqIDI2MjE0NCArIDEzNDIxNzcyODBgIC1vICRsaWInCi0rCTs7Ci0rICAg ICAgaXJpeDUqIHwgaXJpeDYqKQotKyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAg ICAgICAgQ0MqKQotKwkgICAgIyBTR0kgQysrCi0rCSAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0Mg LXNoYXJlZCAtYWxsIC1tdWx0aWdvdCAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMg JHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1u ICIkdmVyc3RyaW5nIiAmJiBmdW5jX2VjaG9fYWxsICItc2V0X3ZlcnNpb24gJHZlcnN0cmluZyJg IC11cGRhdGVfcmVnaXN0cnkgJHtvdXRwdXRfb2JqZGlyfS9zb19sb2NhdGlvbnMgLW8gJGxpYicK LSsKLSsJICAgICMgQXJjaGl2ZXMgY29udGFpbmluZyBDKysgb2JqZWN0IGZpbGVzIG11c3QgYmUg Y3JlYXRlZCB1c2luZwotKwkgICAgIyAiQ0MgLWFyIiwgd2hlcmUgIkNDIiBpcyB0aGUgSVJJWCBD KysgY29tcGlsZXIuICBUaGlzIGlzCi0rCSAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5z dGFudGlhdGVkIHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKLSsJICAgICMgaW4gdGhlIGFyY2hpdmUu Ci0rCSAgICBvbGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1hciAtV1IsLXUgLW8gJG9sZGxpYiAk b2xkb2JqcycKLSsJICAgIDs7Ci0rICAgICAgICAgICopCi0rCSAgICBpZiB0ZXN0ICIkR1hYIiA9 IHllczsgdGhlbgotKwkgICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJ ICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgLW5vc3RkbGli ICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21w aWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5n IiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAke3dsfSR2ZXJzdHJpbmciYCAk e3dsfS11cGRhdGVfcmVnaXN0cnkgJHt3bH0ke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGliJwotKwkgICAgICBlbHNlCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1z aGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxpYiAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxp YnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNv bmFtZSBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3Zl cnNpb24gJHt3bH0kdmVyc3RyaW5nImAgLW8gJGxpYicKLSsJICAgICAgZmkKLSsJICAgIGZpCi0r CSAgICBsaW5rX2FsbF9kZXBsaWJzX0NYWD15ZXMKLSsJICAgIDs7Ci0rICAgICAgICBlc2FjCi0r ICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0k bGliZGlyJwotKyAgICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFg9OgotKyAgICAg ICAgaW5oZXJpdF9ycGF0aF9DWFg9eWVzCi0rICAgICAgICA7OwotKwotKyAgICAgIGxpbnV4KiB8 IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2Vu YW1lIGluCi0rICAgICAgICAgIEtDQyopCi0rCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIElu Yy4gKEtBSSkgQysrIENvbXBpbGVyCi0rCi0rCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEg c2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCi0rCSAgICAjIGVuZHMgd2l0aCAiLnNv IiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIHRv IGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgotKwkgICAgYXJj aGl2ZV9jbWRzX0NYWD0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3Mv XChbXigpMC05QS1aYS16e31dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAkbGliIHwg JFNFRCAtZSAicy9cJHt0ZW1wZXh0fVwuLiovLnNvLyJgOyAkQ0MgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzIC0tc29uYW1l ICRzb25hbWUgLW8gXCR0ZW1wbGliOyBtdiBcJHRlbXBsaWIgJGxpYicKLSsJICAgIGFyY2hpdmVf ZXhwc3ltX2NtZHNfQ1hYPSd0ZW1wZXh0PWBlY2hvICRzaGFyZWRfZXh0IHwgJFNFRCAtZSAnXCcn cy9cKFteKCkwLTlBLVphLXp7fV1cKS9cXFxcXDEvZydcJydgOyB0ZW1wbGliPWBlY2hvICRsaWIg fCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25h bWUgJHNvbmFtZSAtbyBcJHRlbXBsaWIgJHt3bH0tcmV0YWluLXN5bWJvbHMtZmlsZSwkZXhwb3J0 X3N5bWJvbHM7IG12IFwkdGVtcGxpYiAkbGliJwotKwkgICAgIyBDb21tYW5kcyB0byBtYWtlIGNv bXBpbGVyIHByb2R1Y2UgdmVyYm9zZSBvdXRwdXQgdGhhdCBsaXN0cwotKwkgICAgIyB3aGF0ICJo aWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0r CSAgICAjIGxpbmtpbmcgYSBzaGFyZWQgbGlicmFyeS4KLSsJICAgICMKLSsJICAgICMgVGhlcmUg ZG9lc24ndCBhcHBlYXIgdG8gYmUgYSB3YXkgdG8gcHJldmVudCB0aGlzIGNvbXBpbGVyIGZyb20K LSsJICAgICMgZXhwbGljaXRseSBsaW5raW5nIHN5c3RlbSBvYmplY3QgZmlsZXMgc28gd2UgbmVl ZCB0byBzdHJpcCB0aGVtCi0rCSAgICAjIGZyb20gdGhlIG91dHB1dCBzbyB0aGF0IHRoZXkgZG9u J3QgZ2V0IGluY2x1ZGVkIGluIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIGRlcGVuZGVuY2llcy4KLSsJ ICAgIG91dHB1dF92ZXJib3NlX2xpbmtfY21kPSd0ZW1wbGlzdD1gJENDICRDRkxBR1MgLXYgY29u ZnRlc3QuJG9iamV4dCAtbyBsaWJjb25mdGVzdCRzaGFyZWRfZXh0IDI+JjEgfCAkR1JFUCAibGQi YDsgcm0gLWYgbGliY29uZnRlc3Qkc2hhcmVkX2V4dDsgbGlzdD0iIjsgZm9yIHogaW4gJHRlbXBs aXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7ICou JG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19hbGwg IiRsaXN0IicKLSsKLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1y cGF0aCwkbGliZGlyJwotKwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0t LWV4cG9ydC1keW5hbWljJwotKwotKwkgICAgIyBBcmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmpl Y3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5nCi0rCSAgICAjICJDQyAtQnN0YXRpYyIsIHdo ZXJlICJDQyIgaXMgdGhlIEtBSSBDKysgY29tcGlsZXIuCi0rCSAgICBvbGRfYXJjaGl2ZV9jbWRz X0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7OwotKwkgIGlj cGMqIHwgZWNwYyogKQotKwkgICAgIyBJbnRlbCBDKysKLSsJICAgIHdpdGhfZ251X2xkPXllcwot KwkgICAgIyB2ZXJzaW9uIDguMCBhbmQgYWJvdmUgb2YgaWNwYyBjaG9rZSBvbiBtdWx0aXBseSBk ZWZpbmVkIHN5bWJvbHMKLSsJICAgICMgaWYgd2UgYWRkICRwcmVkZXBfb2JqZWN0cyBhbmQgJHBv c3RkZXBfb2JqZWN0cywgaG93ZXZlciA3LjEgYW5kCi0rCSAgICAjIGVhcmxpZXIgZG8gbm90IGFk ZCB0aGUgb2JqZWN0cyB0aGVtc2VsdmVzLgotKwkgICAgY2FzZSBgJENDIC1WIDI+JjFgIGluCi0r CSAgICAgICoiVmVyc2lvbiA3LiIqKQotKwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAt c2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3Rz ICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkJYXJj aGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUg JHdsJHNvbmFtZSAke3dsfS1yZXRhaW4tc3ltYm9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scyAt byAkbGliJwotKwkJOzsKLSsJICAgICAgKikgICMgVmVyc2lvbiA4LjAgb3IgbmV3ZXIKLSsJICAg ICAgICB0bXBfaWR5bj0KLSsJICAgICAgICBjYXNlICRob3N0X2NwdSBpbgotKwkJICBpYTY0Kikg dG1wX2lkeW49JyAtaV9keW5hbWljJzs7Ci0rCQllc2FjCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRz X0NYWD0nJENDIC1zaGFyZWQnIiR0bXBfaWR5biInICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAtbyAkbGliJwotKwkJYXJjaGl2ZV9leHBz eW1fY21kc19DWFg9JyRDQyAtc2hhcmVkJyIkdG1wX2lkeW4iJyAkbGlib2JqcyAkZGVwbGlicyAk Y29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tcmV0YWluLXN5bWJv bHMtZmlsZSAkd2wkZXhwb3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJCTs7Ci0rCSAgICBlc2FjCi0r CSAgICBhcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9bm8KLSsJICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCwkbGliZGlyJwotKwkgICAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwkgICAgd2hvbGVfYXJjaGl2 ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAke3dsfS0t bm8td2hvbGUtYXJjaGl2ZScKLSsJICAgIDs7Ci0rICAgICAgICAgIHBnQ0MqIHwgcGdjcHAqKQot KyAgICAgICAgICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCi0rCSAgICBjYXNlIGAk Q0MgLVZgIGluCi0rCSAgICAqcGdDQ1wgWzEtNV0uKiB8ICpwZ2NwcFwgWzEtNV0uKikKLSsJICAg ICAgcHJlbGlua19jbWRzX0NYWD0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KLSsJCXJtIC1yZiAkdHBs ZGlyfgotKwkJJENDIC0tcHJlbGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRp ciAkb2JqcyAkbGlib2JqcyAkY29tcGlsZV9kZXBsaWJzfgotKwkJY29tcGlsZV9jb21tYW5kPSIk Y29tcGlsZV9jb21tYW5kIGBmaW5kICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1Bg IicKLSsJICAgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0r CQlybSAtcmYgJHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRp b25fZGlyICR0cGxkaXIgJG9sZG9ianMkb2xkX2RlcGxpYnN+Ci0rCQkkQVIgJEFSX0ZMQUdTICRv bGRsaWIkb2xkb2JqcyRvbGRfZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCBzb3J0 IHwgJE5MMlNQYH4KLSsJCSRSQU5MSUIgJG9sZGxpYicKLSsJICAgICAgYXJjaGl2ZV9jbWRzX0NY WD0ndHBsZGlyPVRlbXBsYXRlLmRpcn4KLSsJCXJtIC1yZiAkdHBsZGlyfgotKwkJJENDIC0tcHJl bGlua19vYmplY3RzIC0taW5zdGFudGlhdGlvbl9kaXIgJHRwbGRpciAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJGNvbnZlbmllbmNlICRwb3N0ZGVwX29iamVjdHN+Ci0rCQkkQ0Mg LXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzIGBmaW5k ICR0cGxkaXIgLW5hbWUgXCoubyB8IHNvcnQgfCAkTkwyU1BgICRwb3N0ZGVwX29iamVjdHMgJGNv bXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgLW8gJGxpYicKLSsJICAgICAg YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J3RwbGRpcj1UZW1wbGF0ZS5kaXJ+Ci0rCQlybSAtcmYg JHRwbGRpcn4KLSsJCSRDQyAtLXByZWxpbmtfb2JqZWN0cyAtLWluc3RhbnRpYXRpb25fZGlyICR0 cGxkaXIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRjb252ZW5pZW5jZSAkcG9z dGRlcF9vYmplY3RzfgotKwkJJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0cyAk bGlib2JqcyAkZGVwbGlicyBgZmluZCAkdHBsZGlyIC1uYW1lIFwqLm8gfCBzb3J0IHwgJE5MMlNQ YCAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHt3bH0kc29u YW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhwb3J0X3N5bWJvbHMgLW8gJGxp YicKLSsJICAgICAgOzsKLSsJICAgICopICMgVmVyc2lvbiA2IGFuZCBhYm92ZSB1c2Ugd2VhayBz eW1ib2xzCi0rCSAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwaWNfZmxhZyAk cHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGls ZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSAtbyAkbGliJwotKwkgICAgICBhcmNo aXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnICRwcmVkZXBfb2JqZWN0 cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3ds fS1zb25hbWUgJHt3bH0kc29uYW1lICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUgJHt3bH0kZXhw b3J0X3N5bWJvbHMgLW8gJGxpYicKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsKLSsJICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS0tcnBhdGggJHt3bH0kbGliZGlyJwot KwkgICAgZXhwb3J0X2R5bmFtaWNfZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWlj JwotKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS0td2hvbGUtYXJjaGl2 ZWBmb3IgY29udiBpbiAkY29udmVuaWVuY2VcIlwiOyBkbyB0ZXN0ICAtbiBcIiRjb252XCIgJiYg bmV3X2NvbnZlbmllbmNlPVwiJG5ld19jb252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2Vj aG9fYWxsIFwiJG5ld19jb252ZW5pZW5jZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsg ICAgICAgICAgICA7OwotKwkgIGN4eCopCi0rCSAgICAjIENvbXBhcSBDKysKLSsJICAgIGFyY2hp dmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGli cyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFt ZSAtbyAkbGliJwotKwkgICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICRw cmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxl cl9mbGFncyAke3dsfS1zb25hbWUgJHdsJHNvbmFtZSAgLW8gJGxpYiAke3dsfS1yZXRhaW4tc3lt Ym9scy1maWxlICR3bCRleHBvcnRfc3ltYm9scycKLSsKLSsJICAgIHJ1bnBhdGhfdmFyPUxEX1JV Tl9QQVRICi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nLXJwYXRoICRsaWJk aXInCi0rCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Ci0rCi0rCSAgICAjIENv bW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3Rz Ci0rCSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdz IGFyZSB1c2VkIHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAg IwotKwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRo aXMgY29tcGlsZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVj dCBmaWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAgICMgZnJvbSB0aGUgb3V0cHV0 IHNvIHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsJICAgICMg ZGVwZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAk Q0MgLXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCJg OyB0ZW1wbGlzdD1gZnVuY19lY2hvX2FsbCAiJHRlbXBsaXN0IiB8ICRTRUQgInMvXCheLipsZC4q XClcKCAuKmxkIC4qJFwpL1wxLyJgOyBsaXN0PSIiOyBmb3IgeiBpbiAkdGVtcGxpc3Q7IGRvIGNh c2UgJHogaW4gY29uZnRlc3QuJG9iamV4dCkgbGlzdD0iJGxpc3QgJHoiOzsgKi4kb2JqZXh0KTs7 ICopIGxpc3Q9IiRsaXN0ICR6Ijs7ZXNhYzsgZG9uZTsgZnVuY19lY2hvX2FsbCAiWCRsaXN0IiB8 ICRYc2VkJwotKwkgICAgOzsKLSsJICB4bCogfCBtcGl4bCogfCBiZ3hsKikKLSsJICAgICMgSUJN IFhMIDguMCBvbiBQUEMsIHdpdGggR05VIGxkCi0rCSAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAgZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjX0NYWD0nJHt3bH0tLWV4cG9ydC1keW5hbWljJwotKwkgICAgYXJjaGl2ZV9jbWRz X0NYWD0nJENDIC1xbWtzaHJvYmogJGxpYm9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzICR7 d2x9LXNvbmFtZSAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICBpZiB0ZXN0ICJ4JHN1cHBvcnRz X2Fub25fdmVyc2lvbmluZyIgPSB4eWVzOyB0aGVuCi0rCSAgICAgIGFyY2hpdmVfZXhwc3ltX2Nt ZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4gJG91dHB1dF9vYmpkaXIvJGxpYm5hbWUudmVyfgot KwkJY2F0ICRleHBvcnRfc3ltYm9scyB8IHNlZCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJG91dHB1 dF9vYmpkaXIvJGxpYm5hbWUudmVyfgotKwkJZWNobyAibG9jYWw6ICo7IH07IiA+PiAkb3V0cHV0 X29iamRpci8kbGlibmFtZS52ZXJ+Ci0rCQkkQ0MgLXFta3Nocm9iaiAkbGlib2JqcyAkZGVwbGli cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0tc29uYW1lICR3bCRzb25hbWUgJHt3bH0tdmVyc2lvbi1z Y3JpcHQgJHt3bH0kb3V0cHV0X29iamRpci8kbGlibmFtZS52ZXIgLW8gJGxpYicKLSsJICAgIGZp Ci0rCSAgICA7OwotKwkgICopCi0rCSAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAgaW4K LSsJICAgICpTdW5cIEMqKQotKwkgICAgICAjIFN1biBDKysgNS45Ci0rCSAgICAgIG5vX3VuZGVm aW5lZF9mbGFnX0NYWD0nIC16ZGVmcycKLSsJICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1H JHthbGxvd191bmRlZmluZWRfZmxhZ30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3Rz ICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzJwotKwkg ICAgICBhcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nJENDIC1HJHthbGxvd191bmRlZmluZWRfZmxh Z30gLWgkc29uYW1lIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRw b3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJldGFpbi1zeW1ib2xzLWZpbGUg JHt3bH0kZXhwb3J0X3N5bWJvbHMnCi0rCSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNf Q1hYPSctUiRsaWJkaXInCi0rCSAgICAgIHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nJHt3 bH0tLXdob2xlLWFyY2hpdmVgbmV3X2NvbnZlbmllbmNlPTsgZm9yIGNvbnYgaW4gJGNvbnZlbmll bmNlXCJcIjsgZG8gdGVzdCAteiBcIiRjb252XCIgfHwgbmV3X2NvbnZlbmllbmNlPVwiJG5ld19j b252ZW5pZW5jZSwkY29udlwiOyBkb25lOyBmdW5jX2VjaG9fYWxsIFwiJG5ld19jb252ZW5pZW5j ZVwiYCAke3dsfS0tbm8td2hvbGUtYXJjaGl2ZScKLSsJICAgICAgY29tcGlsZXJfbmVlZHNfb2Jq ZWN0X0NYWD15ZXMKLSsKLSsJICAgICAgIyBOb3Qgc3VyZSB3aGV0aGVyIHNvbWV0aGluZyBiYXNl ZCBvbgotKwkgICAgICAjICRDQyAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgLW8gbGliY29u ZnRlc3Qkc2hhcmVkX2V4dCAyPiYxCi0rCSAgICAgICMgd291bGQgYmUgYmV0dGVyLgotKwkgICAg ICBvdXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nZnVuY19lY2hvX2FsbCcKLSsKLSsJICAgICAgIyBB cmNoaXZlcyBjb250YWluaW5nIEMrKyBvYmplY3QgZmlsZXMgbXVzdCBiZSBjcmVhdGVkIHVzaW5n Ci0rCSAgICAgICMgIkNDIC14YXIiLCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVy LiAgVGhpcyBpcwotKwkgICAgICAjIG5lY2Vzc2FyeSB0byBtYWtlIHN1cmUgaW5zdGFudGlhdGVk IHRlbXBsYXRlcyBhcmUgaW5jbHVkZWQKLSsJICAgICAgIyBpbiB0aGUgYXJjaGl2ZS4KLSsJICAg ICAgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCi0r CSAgICAgIDs7Ci0rCSAgICBlc2FjCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rCi0rICAgICAg bHlueG9zKikKLSsgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3Vw cG9ydAotKwlsZF9zaGxpYnNfQ1hYPW5vCi0rCTs7Ci0rCi0rICAgICAgbTg4ayopCi0rICAgICAg ICAjIEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgIGxk X3NobGlic19DWFg9bm8KLSsJOzsKLSsKLSsgICAgICBtdnMqKQotKyAgICAgICAgY2FzZSAkY2Nf YmFzZW5hbWUgaW4KLSsgICAgICAgICAgY3h4KikKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9w ZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgOzsK LSsJICAqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0 Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rCi0rICAg ICAgbmV0YnNkKikKLSsgICAgICAgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAg X19FTEZfXyA+L2Rldi9udWxsOyB0aGVuCi0rCSAgYXJjaGl2ZV9jbWRzX0NYWD0nJExEIC1Cc2hh cmVhYmxlICAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRl cF9vYmplY3RzICRsaW5rZXJfZmxhZ3MnCi0rCSAgd2xhcmM9Ci0rCSAgaGFyZGNvZGVfbGliZGly X2ZsYWdfc3BlY19DWFg9Jy1SJGxpYmRpcicKLSsJICBoYXJkY29kZV9kaXJlY3RfQ1hYPXllcwot KwkgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rCWZpCi0rCSMgV29ya2Fyb3VuZCBz b21lIGJyb2tlbiBwcmUtMS41IHRvb2xjaGFpbnMKLSsJb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9 JyRDQyAtc2hhcmVkICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgY29u ZnRlc3QuJG9iamV4dCB8ICRTRUQgLWUgInM6LWxnY2MgLWxjIC1sZ2NjOjoiJwotKwk7OwotKwot KyAgICAgICpudG8qIHwgKnFueCopCi0rICAgICAgICBsZF9zaGxpYnNfQ1hYPXllcwotKwk7Owot KwotKyAgICAgIG9wZW5ic2QyKikKLSsgICAgICAgICMgQysrIHNoYXJlZCBsaWJyYXJpZXMgYXJl IGZhaXJseSBicm9rZW4KLSsJbGRfc2hsaWJzX0NYWD1ubwotKwk7OwotKwotKyAgICAgIG9wZW5i c2QqKQotKwlpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgotKwkgIGhhcmRjb2Rl X2RpcmVjdF9DWFg9eWVzCi0rCSAgaGFyZGNvZGVfc2hsaWJwYXRoX3Zhcl9DWFg9bm8KLSsJICBo YXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYPXllcwotKwkgIGFyY2hpdmVfY21kc19DWFg9JyRD QyAtc2hhcmVkICRwaWNfZmxhZyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBv c3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLW8gJGxpYicKLSsJICBoYXJkY29kZV9saWJk aXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGgsJGxpYmRpcicKLSsJICBpZiB0ZXN0IC16ICJg ZWNobyBfX0VMRl9fIHwgJENDIC1FIC0gfCBncmVwIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9v cy0kaG9zdF9jcHUiID0gIm9wZW5ic2QyLjgtcG93ZXJwYyI7IHRoZW4KLSsJICAgIGFyY2hpdmVf ZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAkcGljX2ZsYWcgJHByZWRlcF9vYmplY3RzICRs aWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzICR7d2x9LXJl dGFpbi1zeW1ib2xzLWZpbGUsJGV4cG9ydF9zeW1ib2xzIC1vICRsaWInCi0rCSAgICBleHBvcnRf ZHluYW1pY19mbGFnX3NwZWNfQ1hYPScke3dsfS1FJwotKwkgICAgd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWNfQ1hYPSIkd2xhcmMiJy0td2hvbGUtYXJjaGl2ZSRjb252ZW5pZW5jZSAnIiR3bGFyYyIn LS1uby13aG9sZS1hcmNoaXZlJwotKwkgIGZpCi0rCSAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9 ZnVuY19lY2hvX2FsbAotKwllbHNlCi0rCSAgbGRfc2hsaWJzX0NYWD1ubwotKwlmaQotKwk7Owot KwotKyAgICAgIG9zZjMqIHwgb3NmNCogfCBvc2Y1KikKLSsgICAgICAgIGNhc2UgJGNjX2Jhc2Vu YW1lIGluCi0rICAgICAgICAgIEtDQyopCi0rCSAgICAjIEt1Y2sgYW5kIEFzc29jaWF0ZXMsIElu Yy4gKEtBSSkgQysrIENvbXBpbGVyCi0rCi0rCSAgICAjIEtDQyB3aWxsIG9ubHkgY3JlYXRlIGEg c2hhcmVkIGxpYnJhcnkgaWYgdGhlIG91dHB1dCBmaWxlCi0rCSAgICAjIGVuZHMgd2l0aCAiLnNv IiAob3IgIi5zbCIgZm9yIEhQLVVYKSwgc28gcmVuYW1lIHRoZSBsaWJyYXJ5Ci0rCSAgICAjIHRv IGl0cyBwcm9wZXIgbmFtZSAod2l0aCB2ZXJzaW9uKSBhZnRlciBsaW5raW5nLgotKwkgICAgYXJj aGl2ZV9jbWRzX0NYWD0ndGVtcGV4dD1gZWNobyAkc2hhcmVkX2V4dCB8ICRTRUQgLWUgJ1wnJ3Mv XChbXigpMC05QS1aYS16e31dXCkvXFxcXFwxL2cnXCcnYDsgdGVtcGxpYj1gZWNobyAiJGxpYiIg fCAkU0VEIC1lICJzL1wke3RlbXBleHR9XC4uKi8uc28vImA7ICRDQyAkcHJlZGVwX29iamVjdHMg JGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxhZ3MgLS1zb25h bWUgJHNvbmFtZSAtbyBcJHRlbXBsaWI7IG12IFwkdGVtcGxpYiAkbGliJwotKwotKwkgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0rCSAgICBo YXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Ci0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRh aW5pbmcgQysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgdGhl IEtBSSBDKysgY29tcGlsZXIuCi0rCSAgICBjYXNlICRob3N0IGluCi0rCSAgICAgIG9zZjMqKSBv bGRfYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1Cc3RhdGljIC1vICRvbGRsaWIgJG9sZG9ianMnIDs7 Ci0rCSAgICAgICopIG9sZF9hcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLW8gJG9sZGxpYiAkb2xkb2Jq cycgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rICAgICAgICAgIFJDQyopCi0rCSAgICAjIFJh dGlvbmFsIEMrKyAyLjQuMQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFy eSBzdXBwb3J0Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7OwotKyAgICAgICAgICBj eHgqKQotKwkgICAgY2FzZSAkaG9zdCBpbgotKwkgICAgICBvc2YzKikKLSsJICAgICAgICBhbGxv d191bmRlZmluZWRfZmxhZ19DWFg9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwot KwkgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkJHthbGxvd191bmRlZmluZWRf ZmxhZ30gJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzICR7d2x9LXNvbmFtZSAkc29uYW1lIGB0ZXN0IC1uICIkdmVyc3RyaW5n IiAmJiBmdW5jX2VjaG9fYWxsICIke3dsfS1zZXRfdmVyc2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0 ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAtbyAkbGliJwotKwkgICAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYPScke3dsfS1ycGF0aCAke3dsfSRsaWJk aXInCi0rCQk7OwotKwkgICAgICAqKQotKwkgICAgICAgIGFsbG93X3VuZGVmaW5lZF9mbGFnX0NY WD0nIC1leHBlY3RfdW5yZXNvbHZlZCBcKicKLSsJICAgICAgICBhcmNoaXZlX2NtZHNfQ1hYPSck Q0MgLXNoYXJlZCR7YWxsb3dfdW5kZWZpbmVkX2ZsYWd9ICRwcmVkZXBfb2JqZWN0cyAkbGlib2Jq cyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncyAtbXN5bSAtc29uYW1l ICRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1bmNfZWNob19hbGwgIi1zZXRfdmVy c2lvbiAkdmVyc3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xv Y2F0aW9ucyAtbyAkbGliJwotKwkgICAgICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdmb3Ig aSBpbiBgY2F0ICRleHBvcnRfc3ltYm9sc2A7IGRvIHByaW50ZiAiJXMgJXNcXG4iIC1leHBvcnRl ZF9zeW1ib2wgIlwkaSIgPj4gJGxpYi5leHA7IGRvbmV+Ci0rCSAgICAgICAgICBlY2hvICItaGlk ZGVuIj4+ICRsaWIuZXhwfgotKwkgICAgICAgICAgJENDIC1zaGFyZWQkYWxsb3dfdW5kZWZpbmVk X2ZsYWcgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMg JGNvbXBpbGVyX2ZsYWdzIC1tc3ltIC1zb25hbWUgJHNvbmFtZSAke3dsfS1pbnB1dCAke3dsfSRs aWIuZXhwICBgdGVzdCAtbiAiJHZlcnN0cmluZyIgJiYgJEVDSE8gIi1zZXRfdmVyc2lvbiAkdmVy c3RyaW5nImAgLXVwZGF0ZV9yZWdpc3RyeSAke291dHB1dF9vYmpkaXJ9L3NvX2xvY2F0aW9ucyAt byAkbGlifgotKwkgICAgICAgICAgJFJNICRsaWIuZXhwJwotKwkgICAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfQ1hYPSctcnBhdGggJGxpYmRpcicKLSsJCTs7Ci0rCSAgICBlc2FjCi0r Ci0rCSAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Ci0rCi0rCSAgICAjIENvbW1h bmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0aGF0IGxpc3RzCi0r CSAgICAjIHdoYXQgImhpZGRlbiIgbGlicmFyaWVzLCBvYmplY3QgZmlsZXMgYW5kIGZsYWdzIGFy ZSB1c2VkIHdoZW4KLSsJICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgIwot KwkgICAgIyBUaGVyZSBkb2Vzbid0IGFwcGVhciB0byBiZSBhIHdheSB0byBwcmV2ZW50IHRoaXMg Y29tcGlsZXIgZnJvbQotKwkgICAgIyBleHBsaWNpdGx5IGxpbmtpbmcgc3lzdGVtIG9iamVjdCBm aWxlcyBzbyB3ZSBuZWVkIHRvIHN0cmlwIHRoZW0KLSsJICAgICMgZnJvbSB0aGUgb3V0cHV0IHNv IHRoYXQgdGhleSBkb24ndCBnZXQgaW5jbHVkZWQgaW4gdGhlIGxpYnJhcnkKLSsJICAgICMgZGVw ZW5kZW5jaWVzLgotKwkgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9J3RlbXBsaXN0PWAkQ0Mg LXNoYXJlZCAkQ0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQICJsZCIgfCAk R1JFUCAtdiAibGQ6ImA7IHRlbXBsaXN0PWBmdW5jX2VjaG9fYWxsICIkdGVtcGxpc3QiIHwgJFNF RCAicy9cKF4uKmxkLipcKVwoIC4qbGQuKiRcKS9cMS8iYDsgbGlzdD0iIjsgZm9yIHogaW4gJHRl bXBsaXN0OyBkbyBjYXNlICR6IGluIGNvbmZ0ZXN0LiRvYmpleHQpIGxpc3Q9IiRsaXN0ICR6Ijs7 ICouJG9iamV4dCk7OyAqKSBsaXN0PSIkbGlzdCAkeiI7O2VzYWM7IGRvbmU7IGZ1bmNfZWNob19h bGwgIiRsaXN0IicKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGlmIHRlc3QgIiRHWFgiID0geWVz ICYmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBubzsgdGhlbgotKwkgICAgICBhbGxvd191bmRlZmlu ZWRfZmxhZ19DWFg9JyAke3dsfS1leHBlY3RfdW5yZXNvbHZlZCAke3dsfVwqJwotKwkgICAgICBj YXNlICRob3N0IGluCi0rCSAgICAgICAgb3NmMyopCi0rCSAgICAgICAgICBhcmNoaXZlX2NtZHNf Q1hYPSckQ0MgLXNoYXJlZCAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHByZWRl cF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2Zs YWdzICR7d2x9LXNvbmFtZSAke3dsfSRzb25hbWUgYHRlc3QgLW4gIiR2ZXJzdHJpbmciICYmIGZ1 bmNfZWNob19hbGwgIiR7d2x9LXNldF92ZXJzaW9uICR7d2x9JHZlcnN0cmluZyJgICR7d2x9LXVw ZGF0ZV9yZWdpc3RyeSAke3dsfSR7b3V0cHV0X29iamRpcn0vc29fbG9jYXRpb25zIC1vICRsaWIn Ci0rCQkgIDs7Ci0rCSAgICAgICAgKikKLSsJICAgICAgICAgIGFyY2hpdmVfY21kc19DWFg9JyRD QyAtc2hhcmVkICRwaWNfZmxhZyAtbm9zdGRsaWIgJHthbGxvd191bmRlZmluZWRfZmxhZ30gJHBy ZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVy X2ZsYWdzICR7d2x9LW1zeW0gJHt3bH0tc29uYW1lICR7d2x9JHNvbmFtZSBgdGVzdCAtbiAiJHZl cnN0cmluZyIgJiYgZnVuY19lY2hvX2FsbCAiJHt3bH0tc2V0X3ZlcnNpb24gJHt3bH0kdmVyc3Ry aW5nImAgJHt3bH0tdXBkYXRlX3JlZ2lzdHJ5ICR7d2x9JHtvdXRwdXRfb2JqZGlyfS9zb19sb2Nh dGlvbnMgLW8gJGxpYicKLSsJCSAgOzsKLSsJICAgICAgZXNhYwotKwotKwkgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjX0NYWD0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotKwkgICAg ICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWD06Ci0rCi0rCSAgICAgICMgQ29tbWFuZHMg dG8gbWFrZSBjb21waWxlciBwcm9kdWNlIHZlcmJvc2Ugb3V0cHV0IHRoYXQgbGlzdHMKLSsJICAg ICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZpbGVzIGFuZCBmbGFncyBhcmUg dXNlZCB3aGVuCi0rCSAgICAgICMgbGlua2luZyBhIHNoYXJlZCBsaWJyYXJ5LgotKwkgICAgICBv dXRwdXRfdmVyYm9zZV9saW5rX2NtZD0nJENDIC1zaGFyZWQgJENGTEFHUyAtdiBjb25mdGVzdC4k b2JqZXh0IDI+JjEgfCAkR1JFUCAtdiAiXkNvbmZpZ3VyZWQgd2l0aDoiIHwgJEdSRVAgIlwtTCIn Ci0rCi0rCSAgICBlbHNlCi0rCSAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJh cnkgc3VwcG9ydAotKwkgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICBmaQotKwkgICAgOzsK LSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgcHNvcyopCi0rICAgICAgICAj IEZJWE1FOiBpbnNlcnQgcHJvcGVyIEMrKyBsaWJyYXJ5IHN1cHBvcnQKLSsgICAgICAgIGxkX3No bGlic19DWFg9bm8KLSsgICAgICAgIDs7Ci0rCi0rICAgICAgc3Vub3M0KikKLSsgICAgICAgIGNh c2UgJGNjX2Jhc2VuYW1lIGluCi0rICAgICAgICAgIENDKikKLSsJICAgICMgU3VuIEMrKyA0LngK LSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAg bGRfc2hsaWJzX0NYWD1ubwotKwkgICAgOzsKLSsgICAgICAgICAgbGNjKikKLSsJICAgICMgTHVj aWQKLSsJICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkg ICAgbGRfc2hsaWJzX0NYWD1ubwotKwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAgICMgRklY TUU6IGluc2VydCBwcm9wZXIgQysrIGxpYnJhcnkgc3VwcG9ydAotKwkgICAgbGRfc2hsaWJzX0NY WD1ubwotKwkgICAgOzsKLSsgICAgICAgIGVzYWMKLSsgICAgICAgIDs7Ci0rCi0rICAgICAgc29s YXJpcyopCi0rICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgotKyAgICAgICAgICBDQyogfCBz dW5DQyopCi0rCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCi0rICAg ICAgICAgICAgYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYPXllcwotKwkgICAgbm9fdW5kZWZpbmVk X2ZsYWdfQ1hYPScgLXpkZWZzJwotKwkgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HJHthbGxv d191bmRlZmluZWRfZmxhZ30gIC1oJHNvbmFtZSAtbyAkbGliICRwcmVkZXBfb2JqZWN0cyAkbGli b2JqcyAkZGVwbGlicyAkcG9zdGRlcF9vYmplY3RzICRjb21waWxlcl9mbGFncycKLSsJICAgIGFy Y2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSdlY2hvICJ7IGdsb2JhbDoiID4gJGxpYi5leHB+Y2F0ICRl eHBvcnRfc3ltYm9scyB8ICRTRUQgLWUgInMvXCguKlwpL1wxOy8iID4+ICRsaWIuZXhwfmVjaG8g ImxvY2FsOiAqOyB9OyIgPj4gJGxpYi5leHB+Ci0rCSAgICAgICRDQyAtRyR7YWxsb3dfdW5kZWZp bmVkX2ZsYWd9ICR7d2x9LU0gJHt3bH0kbGliLmV4cCAtaCRzb25hbWUgLW8gJGxpYiAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3N+JFJNICRsaWIuZXhwJwotKwotKwkgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFg9 Jy1SJGxpYmRpcicKLSsJICAgIGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYPW5vCi0rCSAgICBj YXNlICRob3N0X29zIGluCi0rCSAgICAgIHNvbGFyaXMyLlswLTVdIHwgc29sYXJpczIuWzAtNV0u KikgOzsKLSsJICAgICAgKikKLSsJCSMgVGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGNvbWJpbmUg YW5kIHJlb3JkZXIgbGlua2VyIG9wdGlvbnMsCi0rCQkjIGJ1dCB1bmRlcnN0YW5kcyBgLXogbGlu a2VyX2ZsYWcnLgotKwkgICAgICAgICMgU3VwcG9ydGVkIHNpbmNlIFNvbGFyaXMgMi42IChtYXli ZSAyLjUuMT8pCi0rCQl3aG9sZV9hcmNoaXZlX2ZsYWdfc3BlY19DWFg9Jy16IGFsbGV4dHJhY3Qk Y29udmVuaWVuY2UgLXogZGVmYXVsdGV4dHJhY3QnCi0rCSAgICAgICAgOzsKLSsJICAgIGVzYWMK LSsJICAgIGxpbmtfYWxsX2RlcGxpYnNfQ1hYPXllcwotKwotKwkgICAgb3V0cHV0X3ZlcmJvc2Vf bGlua19jbWQ9J2Z1bmNfZWNob19hbGwnCi0rCi0rCSAgICAjIEFyY2hpdmVzIGNvbnRhaW5pbmcg QysrIG9iamVjdCBmaWxlcyBtdXN0IGJlIGNyZWF0ZWQgdXNpbmcKLSsJICAgICMgIkNDIC14YXIi LCB3aGVyZSAiQ0MiIGlzIHRoZSBTdW4gQysrIGNvbXBpbGVyLiAgVGhpcyBpcwotKwkgICAgIyBu ZWNlc3NhcnkgdG8gbWFrZSBzdXJlIGluc3RhbnRpYXRlZCB0ZW1wbGF0ZXMgYXJlIGluY2x1ZGVk Ci0rCSAgICAjIGluIHRoZSBhcmNoaXZlLgotKwkgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRD QyAteGFyIC1vICRvbGRsaWIgJG9sZG9ianMnCi0rCSAgICA7OwotKyAgICAgICAgICBnY3gqKQot KwkgICAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAgIGFyY2hpdmVfY21kc19DWFg9 JyRDQyAtc2hhcmVkICRwcmVkZXBfb2JqZWN0cyAkbGlib2JqcyAkZGVwbGlicyAkcG9zdGRlcF9v YmplY3RzICRjb21waWxlcl9mbGFncyAke3dsfS1oICR3bCRzb25hbWUgLW8gJGxpYicKLSsKLSsJ ICAgICMgVGhlIEMrKyBjb21waWxlciBtdXN0IGJlIHVzZWQgdG8gY3JlYXRlIHRoZSBhcmNoaXZl LgotKwkgICAgb2xkX2FyY2hpdmVfY21kc19DWFg9JyRDQyAkTERGTEFHUyAtYXJjaGl2ZSAtbyAk b2xkbGliICRvbGRvYmpzJwotKwkgICAgOzsKLSsgICAgICAgICAgKikKLSsJICAgICMgR05VIEMr KyBjb21waWxlciB3aXRoIFNvbGFyaXMgbGlua2VyCi0rCSAgICBpZiB0ZXN0ICIkR1hYIiA9IHll cyAmJiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87IHRoZW4KLSsJICAgICAgbm9fdW5kZWZpbmVk X2ZsYWdfQ1hYPScgJHt3bH0teiAke3dsfWRlZnMnCi0rCSAgICAgIGlmICRDQyAtLXZlcnNpb24g fCAkR1JFUCAtdiAnXjJcLjcnID4gL2Rldi9udWxsOyB0aGVuCi0rCSAgICAgICAgYXJjaGl2ZV9j bWRzX0NYWD0nJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxpYiAkTERGTEFHUyAkcHJlZGVw X29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2JqZWN0cyAkY29tcGlsZXJfZmxh Z3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICAgICAgYXJjaGl2ZV9leHBzeW1f Y21kc19DWFg9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5jYXQgJGV4cG9ydF9zeW1ib2xz IHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ZWNobyAibG9jYWw6ICo7IH07 IiA+PiAkbGliLmV4cH4KLSsJCSAgJENDIC1zaGFyZWQgJHBpY19mbGFnIC1ub3N0ZGxpYiAke3ds fS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBsaWJz ICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsKLSsJICAg ICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1dCB0 aGF0IGxpc3RzCi0rCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0IGZp bGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAgICAgIyBsaW5raW5nIGEgc2hhcmVk IGxpYnJhcnkuCi0rCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtc2hhcmVk ICRDRkxBR1MgLXYgY29uZnRlc3QuJG9iamV4dCAyPiYxIHwgJEdSRVAgLXYgIl5Db25maWd1cmVk IHdpdGg6IiB8ICRHUkVQICJcLUwiJwotKwkgICAgICBlbHNlCi0rCSAgICAgICAgIyBnKysgMi43 IGFwcGVhcnMgdG8gcmVxdWlyZSBgLUcnIE5PVCBgLXNoYXJlZCcgb24gdGhpcwotKwkgICAgICAg ICMgcGxhdGZvcm0uCi0rCSAgICAgICAgYXJjaGl2ZV9jbWRzX0NYWD0nJENDIC1HIC1ub3N0ZGxp YiAkTERGTEFHUyAkcHJlZGVwX29iamVjdHMgJGxpYm9ianMgJGRlcGxpYnMgJHBvc3RkZXBfb2Jq ZWN0cyAkY29tcGlsZXJfZmxhZ3MgJHt3bH0taCAkd2wkc29uYW1lIC1vICRsaWInCi0rCSAgICAg ICAgYXJjaGl2ZV9leHBzeW1fY21kc19DWFg9J2VjaG8gInsgZ2xvYmFsOiIgPiAkbGliLmV4cH5j YXQgJGV4cG9ydF9zeW1ib2xzIHwgJFNFRCAtZSAicy9cKC4qXCkvXDE7LyIgPj4gJGxpYi5leHB+ ZWNobyAibG9jYWw6ICo7IH07IiA+PiAkbGliLmV4cH4KLSsJCSAgJENDIC1HIC1ub3N0ZGxpYiAk e3dsfS1NICR3bCRsaWIuZXhwIC1vICRsaWIgJHByZWRlcF9vYmplY3RzICRsaWJvYmpzICRkZXBs aWJzICRwb3N0ZGVwX29iamVjdHMgJGNvbXBpbGVyX2ZsYWdzfiRSTSAkbGliLmV4cCcKLSsKLSsJ ICAgICAgICAjIENvbW1hbmRzIHRvIG1ha2UgY29tcGlsZXIgcHJvZHVjZSB2ZXJib3NlIG91dHB1 dCB0aGF0IGxpc3RzCi0rCSAgICAgICAgIyB3aGF0ICJoaWRkZW4iIGxpYnJhcmllcywgb2JqZWN0 IGZpbGVzIGFuZCBmbGFncyBhcmUgdXNlZCB3aGVuCi0rCSAgICAgICAgIyBsaW5raW5nIGEgc2hh cmVkIGxpYnJhcnkuCi0rCSAgICAgICAgb3V0cHV0X3ZlcmJvc2VfbGlua19jbWQ9JyRDQyAtRyAk Q0ZMQUdTIC12IGNvbmZ0ZXN0LiRvYmpleHQgMj4mMSB8ICRHUkVQIC12ICJeQ29uZmlndXJlZCB3 aXRoOiIgfCAkR1JFUCAiXC1MIicKLSsJICAgICAgZmkKLSsKLSsJICAgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlY19DWFg9JyR7d2x9LVIgJHdsJGxpYmRpcicKLSsJICAgICAgY2FzZSAkaG9z dF9vcyBpbgotKwkJc29sYXJpczIuWzAtNV0gfCBzb2xhcmlzMi5bMC01XS4qKSA7OwotKwkJKikK LSsJCSAgd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWNfQ1hYPScke3dsfS16ICR7d2x9YWxsZXh0cmFj dCRjb252ZW5pZW5jZSAke3dsfS16ICR7d2x9ZGVmYXVsdGV4dHJhY3QnCi0rCQkgIDs7Ci0rCSAg ICAgIGVzYWMKLSsJICAgIGZpCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAgOzsK LSsKLSsgICAgc3lzdjQqdXcyKiB8IHN5c3Y1T3BlblVOSVgqIHwgc3lzdjVVbml4V2FyZTcuWzAx XS5bMTBdKiB8IHVuaXh3YXJlNyogfCBzY28zLjJ2NS4wLlswMjRdKikKLSsgICAgICBub191bmRl ZmluZWRfZmxhZ19DWFg9JyR7d2x9LXosdGV4dCcKLSsgICAgICBhcmNoaXZlX2NtZHNfbmVlZF9s Y19DWFg9bm8KLSsgICAgICBoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKyAgICAgIHJ1 bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsKLSsgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgot KyAgICAgICAgQ0MqKQotKwkgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtRyAke3dsfS1oLCRzb25h bWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAgYXJjaGl2 ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtRyAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3ltYm9scyAk e3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3Mn Ci0rCSAgOzsKLSsJKikKLSsJICBhcmNoaXZlX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3dsfS1o LCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJfZmxhZ3MnCi0rCSAg YXJjaGl2ZV9leHBzeW1fY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LUJleHBvcnQ6JGV4cG9y dF9zeW1ib2xzICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21w aWxlcl9mbGFncycKLSsJICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICAgIHN5 c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiopCi0rCSMgTm90ZTogV2UgY2FuIE5PVCB1c2UgLXog ZGVmcyBhcyB3ZSBtaWdodCBkZXNpcmUsIGJlY2F1c2Ugd2UgZG8gbm90Ci0rCSMgbGluayB3aXRo IC1sYywgYW5kIHRoYXQgd291bGQgY2F1c2UgYW55IHN5bWJvbHMgdXNlZCBmcm9tIGxpYmMgdG8K LSsJIyBhbHdheXMgYmUgdW5yZXNvbHZlZCwgd2hpY2ggbWVhbnMganVzdCBhYm91dCBubyBsaWJy YXJ5IHdvdWxkCi0rCSMgZXZlciBsaW5rIGNvcnJlY3RseS4gIElmIHdlJ3JlIG5vdCB1c2luZyBH TlUgbGQgd2UgdXNlIC16IHRleHQKLSsJIyB0aG91Z2gsIHdoaWNoIGRvZXMgY2F0Y2ggc29tZSBi YWQgc3ltYm9scyBidXQgaXNuJ3QgYXMgaGVhdnktaGFuZGVkCi0rCSMgYXMgLXogZGVmcy4KLSsJ bm9fdW5kZWZpbmVkX2ZsYWdfQ1hYPScke3dsfS16LHRleHQnCi0rCWFsbG93X3VuZGVmaW5lZF9m bGFnX0NYWD0nJHt3bH0teixub2RlZnMnCi0rCWFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD1ubwot KwloYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWD1ubwotKwloYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjX0NYWD0nJHt3bH0tUiwkbGliZGlyJwotKwloYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NY WD0nOicKLSsJbGlua19hbGxfZGVwbGlic19DWFg9eWVzCi0rCWV4cG9ydF9keW5hbWljX2ZsYWdf c3BlY19DWFg9JyR7d2x9LUJleHBvcnQnCi0rCXJ1bnBhdGhfdmFyPSdMRF9SVU5fUEFUSCcKLSsK LSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgQ0MqKQotKwkgICAgYXJjaGl2ZV9j bWRzX0NYWD0nJENDIC1HICR7d2x9LWgsJHNvbmFtZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJz ICRjb21waWxlcl9mbGFncycKLSsJICAgIGFyY2hpdmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLUcg JHt3bH0tQmV4cG9ydDokZXhwb3J0X3N5bWJvbHMgJHt3bH0taCwkc29uYW1lIC1vICRsaWIgJGxp Ym9ianMgJGRlcGxpYnMgJGNvbXBpbGVyX2ZsYWdzJwotKwkgICAgb2xkX2FyY2hpdmVfY21kc19D WFg9JyRDQyAtVHByZWxpbmtfb2JqZWN0cyAkb2xkb2Jqc34KLSsJICAgICAgJyIkb2xkX2FyY2hp dmVfY21kc19DWFgiCi0rCSAgICByZWxvYWRfY21kc19DWFg9JyRDQyAtVHByZWxpbmtfb2JqZWN0 cyAkcmVsb2FkX29ianN+Ci0rCSAgICAgICciJHJlbG9hZF9jbWRzX0NYWCIKLSsJICAgIDs7Ci0r CSAgKikKLSsJICAgIGFyY2hpdmVfY21kc19DWFg9JyRDQyAtc2hhcmVkICR7d2x9LWgsJHNvbmFt ZSAtbyAkbGliICRsaWJvYmpzICRkZXBsaWJzICRjb21waWxlcl9mbGFncycKLSsJICAgIGFyY2hp dmVfZXhwc3ltX2NtZHNfQ1hYPSckQ0MgLXNoYXJlZCAke3dsfS1CZXhwb3J0OiRleHBvcnRfc3lt Ym9scyAke3dsfS1oLCRzb25hbWUgLW8gJGxpYiAkbGlib2JqcyAkZGVwbGlicyAkY29tcGlsZXJf ZmxhZ3MnCi0rCSAgICA7OwotKwllc2FjCi0rICAgICAgOzsKLSsKLSsgICAgICB0YW5kZW0qKQot KyAgICAgICAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgICAgICAgICAgTkNDKikKLSsJICAgICMg Tm9uU3RvcC1VWCBOQ0MgMy4yMAotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0Ci0rCSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7OwotKyAgICAgICAg ICAqKQotKwkgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGlicmFyeSBzdXBwb3J0Ci0r CSAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rCSAgICA7OwotKyAgICAgICAgZXNhYwotKyAgICAgICAg OzsKLSsKLSsgICAgICB2eHdvcmtzKikKLSsgICAgICAgICMgRklYTUU6IGluc2VydCBwcm9wZXIg QysrIGxpYnJhcnkgc3VwcG9ydAotKyAgICAgICAgbGRfc2hsaWJzX0NYWD1ubwotKyAgICAgICAg OzsKLSsKLSsgICAgICAqKQotKyAgICAgICAgIyBGSVhNRTogaW5zZXJ0IHByb3BlciBDKysgbGli cmFyeSBzdXBwb3J0Ci0rICAgICAgICBsZF9zaGxpYnNfQ1hYPW5vCi0rICAgICAgICA7OwotKyAg ICBlc2FjCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsZF9zaGxpYnNfQ1hYIiA+ JjY7IH0KLSsgICAgdGVzdCAiJGxkX3NobGlic19DWFgiID0gbm8gJiYgY2FuX2J1aWxkX3NoYXJl ZD1ubwotKwotKyAgICBHQ0NfQ1hYPSIkR1hYIgotKyAgICBMRF9DWFg9IiRMRCIKLSsKLSsgICAg IyMgQ0FWRUFUIEVNUFRPUjoKLSsgICAgIyMgVGhlcmUgaXMgbm8gZW5jYXBzdWxhdGlvbiB3aXRo aW4gdGhlIGZvbGxvd2luZyBtYWNyb3MsIGRvIG5vdCBjaGFuZ2UKLSsgICAgIyMgdGhlIHJ1bm5p bmcgb3JkZXIgb3Igb3RoZXJ3aXNlIG1vdmUgdGhlbSBhcm91bmQgdW5sZXNzIHlvdSBrbm93IGV4 YWN0bHkKLSsgICAgIyMgd2hhdCB5b3UgYXJlIGRvaW5nLi4uCi0rICAgICMgRGVwZW5kZW5jaWVz IHRvIHBsYWNlIGJlZm9yZSBhbmQgYWZ0ZXIgdGhlIG9iamVjdCBiZWluZyBsaW5rZWQ6Ci0rcHJl ZGVwX29iamVjdHNfQ1hYPQotK3Bvc3RkZXBfb2JqZWN0c19DWFg9Ci0rcHJlZGVwc19DWFg9Ci0r cG9zdGRlcHNfQ1hYPQotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg9Ci0rCi0rY2F0ID4g Y29uZnRlc3QuJGFjX2V4dCA8PF9MVF9FT0YKLStjbGFzcyBGb28KLSt7Ci0rcHVibGljOgotKyAg Rm9vICh2b2lkKSB7IGEgPSAwOyB9Ci0rcHJpdmF0ZToKLSsgIGludCBhOwotK307Ci0rX0xUX0VP RgotKwotKwotK19sdF9saWJkZXBzX3NhdmVfQ0ZMQUdTPSRDRkxBR1MKLStjYXNlICIkQ0MgJENG TEFHUyAiIGluICMoCi0rKlwgLWZsdG8qXCAqKSBDRkxBR1M9IiRDRkxBR1MgLWZuby1sdG8iIDs7 Ci0rKlwgLWZ3aG9wcipcICopIENGTEFHUz0iJENGTEFHUyAtZm5vLXdob3ByIiA7OwotK2VzYWMK LSsKLStpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0kTElORU5PfTog XCIkYWNfY29tcGlsZVwiIjsgfSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAyPiY1Ci0rICBh Y19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFwk PyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfTsgdGhlbgotKyAg IyBQYXJzZSB0aGUgY29tcGlsZXIgb3V0cHV0IGFuZCBleHRyYWN0IHRoZSBuZWNlc3NhcnkKLSsg ICMgb2JqZWN0cywgbGlicmFyaWVzIGFuZCBsaWJyYXJ5IGZsYWdzLgotKwotKyAgIyBTZW50aW5l bCB1c2VkIHRvIGtlZXAgdHJhY2sgb2Ygd2hldGhlciBvciBub3Qgd2UgYXJlIGJlZm9yZQotKyAg IyB0aGUgY29uZnRlc3Qgb2JqZWN0IGZpbGUuCi0rICBwcmVfdGVzdF9vYmplY3RfZGVwc19kb25l PW5vCi0rCi0rICBmb3IgcCBpbiBgZXZhbCAiJG91dHB1dF92ZXJib3NlX2xpbmtfY21kImA7IGRv Ci0rICAgIGNhc2UgJHtwcmV2fSR7cH0gaW4KLSsKLSsgICAgLUwqIHwgLVIqIHwgLWwqKQotKyAg ICAgICAjIFNvbWUgY29tcGlsZXJzIHBsYWNlIHNwYWNlIGJldHdlZW4gIi17TCxSfSIgYW5kIHRo ZSBwYXRoLgotKyAgICAgICAjIFJlbW92ZSB0aGUgc3BhY2UuCi0rICAgICAgIGlmIHRlc3QgJHAg PSAiLUwiIHx8Ci0rICAgICAgICAgIHRlc3QgJHAgPSAiLVIiOyB0aGVuCi0rCSBwcmV2PSRwCi0r CSBjb250aW51ZQotKyAgICAgICBmaQotKwotKyAgICAgICAjIEV4cGFuZCB0aGUgc3lzcm9vdCB0 byBlYXNlIGV4dHJhY3RpbmcgdGhlIGRpcmVjdG9yaWVzIGxhdGVyLgotKyAgICAgICBpZiB0ZXN0 IC16ICIkcHJldiI7IHRoZW4KLSsgICAgICAgICBjYXNlICRwIGluCi0rICAgICAgICAgLUwqKSBm dW5jX3N0cmlwbmFtZV9jbmYgJy1MJyAnJyAiJHAiOyBwcmV2PS1MOyBwPSRmdW5jX3N0cmlwbmFt ZV9yZXN1bHQgOzsKLSsgICAgICAgICAtUiopIGZ1bmNfc3RyaXBuYW1lX2NuZiAnLVInICcnICIk cCI7IHByZXY9LVI7IHA9JGZ1bmNfc3RyaXBuYW1lX3Jlc3VsdCA7OwotKyAgICAgICAgIC1sKikg ZnVuY19zdHJpcG5hbWVfY25mICctbCcgJycgIiRwIjsgcHJldj0tbDsgcD0kZnVuY19zdHJpcG5h bWVfcmVzdWx0IDs7Ci0rICAgICAgICAgZXNhYwotKyAgICAgICBmaQotKyAgICAgICBjYXNlICRw IGluCi0rICAgICAgID0qKSBmdW5jX3N0cmlwbmFtZV9jbmYgJz0nICcnICIkcCI7IHA9JGx0X3N5 c3Jvb3QkZnVuY19zdHJpcG5hbWVfcmVzdWx0IDs7Ci0rICAgICAgIGVzYWMKLSsgICAgICAgaWYg dGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KLSsJIGNhc2UgJHtw cmV2fSBpbgotKwkgLUwgfCAtUikKLSsJICAgIyBJbnRlcm5hbCBjb21waWxlciBsaWJyYXJ5IHBh dGhzIHNob3VsZCBjb21lIGFmdGVyIHRob3NlCi0rCSAgICMgcHJvdmlkZWQgdGhlIHVzZXIuICBU aGUgcG9zdGRlcHMgYWxyZWFkeSBjb21lIGFmdGVyIHRoZQotKwkgICAjIHVzZXIgc3VwcGxpZWQg bGlicyBzbyB0aGVyZSBpcyBubyBuZWVkIHRvIHByb2Nlc3MgdGhlbS4KLSsJICAgaWYgdGVzdCAt eiAiJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFgiOyB0aGVuCi0rCSAgICAgY29tcGlsZXJf bGliX3NlYXJjaF9wYXRoX0NYWD0iJHtwcmV2fSR7cH0iCi0rCSAgIGVsc2UKLSsJICAgICBjb21w aWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYPSIke2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFh9 ICR7cHJldn0ke3B9IgotKwkgICBmaQotKwkgICA7OwotKwkgIyBUaGUgIi1sIiBjYXNlIHdvdWxk IG5ldmVyIGNvbWUgYmVmb3JlIHRoZSBvYmplY3QgYmVpbmcKLSsJICMgbGlua2VkLCBzbyBkb24n dCBib3RoZXIgaGFuZGxpbmcgdGhpcyBjYXNlLgotKwkgZXNhYwotKyAgICAgICBlbHNlCi0rCSBp ZiB0ZXN0IC16ICIkcG9zdGRlcHNfQ1hYIjsgdGhlbgotKwkgICBwb3N0ZGVwc19DWFg9IiR7cHJl dn0ke3B9IgotKwkgZWxzZQotKwkgICBwb3N0ZGVwc19DWFg9IiR7cG9zdGRlcHNfQ1hYfSAke3By ZXZ9JHtwfSIKLSsJIGZpCi0rICAgICAgIGZpCi0rICAgICAgIHByZXY9Ci0rICAgICAgIDs7Ci0r Ci0rICAgICoubHRvLiRvYmpleHQpIDs7ICMgSWdub3JlIEdDQyBMVE8gb2JqZWN0cwotKyAgICAq LiRvYmpleHQpCi0rICAgICAgICMgVGhpcyBhc3N1bWVzIHRoYXQgdGhlIHRlc3Qgb2JqZWN0IGZp bGUgb25seSBzaG93cyB1cAotKyAgICAgICAjIG9uY2UgaW4gdGhlIGNvbXBpbGVyIG91dHB1dC4K LSsgICAgICAgaWYgdGVzdCAiJHAiID0gImNvbmZ0ZXN0LiRvYmpleHQiOyB0aGVuCi0rCSBwcmVf dGVzdF9vYmplY3RfZGVwc19kb25lPXllcwotKwkgY29udGludWUKLSsgICAgICAgZmkKLSsKLSsg ICAgICAgaWYgdGVzdCAiJHByZV90ZXN0X29iamVjdF9kZXBzX2RvbmUiID0gbm87IHRoZW4KLSsJ IGlmIHRlc3QgLXogIiRwcmVkZXBfb2JqZWN0c19DWFgiOyB0aGVuCi0rCSAgIHByZWRlcF9vYmpl Y3RzX0NYWD0iJHAiCi0rCSBlbHNlCi0rCSAgIHByZWRlcF9vYmplY3RzX0NYWD0iJHByZWRlcF9v YmplY3RzX0NYWCAkcCIKLSsJIGZpCi0rICAgICAgIGVsc2UKLSsJIGlmIHRlc3QgLXogIiRwb3N0 ZGVwX29iamVjdHNfQ1hYIjsgdGhlbgotKwkgICBwb3N0ZGVwX29iamVjdHNfQ1hYPSIkcCIKLSsJ IGVsc2UKLSsJICAgcG9zdGRlcF9vYmplY3RzX0NYWD0iJHBvc3RkZXBfb2JqZWN0c19DWFggJHAi Ci0rCSBmaQotKyAgICAgICBmaQotKyAgICAgICA7OwotKwotKyAgICAqKSA7OyAjIElnbm9yZSB0 aGUgcmVzdC4KLSsKLSsgICAgZXNhYwotKyAgZG9uZQotKwotKyAgIyBDbGVhbiB1cC4KLSsgIHJt IC1mIGEub3V0IGEuZXhlCi0rZWxzZQotKyAgZWNobyAibGlidG9vbC5tNDogZXJyb3I6IHByb2Js ZW0gY29tcGlsaW5nIENYWCB0ZXN0IHByb2dyYW0iCi0rZmkKLSsKLSskUk0gLWYgY29uZmVzdC4k b2JqZXh0Ci0rQ0ZMQUdTPSRfbHRfbGliZGVwc19zYXZlX0NGTEFHUwotKwotKyMgUE9SVE1FOiBv dmVycmlkZSBhYm92ZSB0ZXN0IG9uIHN5c3RlbXMgd2hlcmUgaXQgaXMgYnJva2VuCi0rY2FzZSAk aG9zdF9vcyBpbgotK2ludGVyaXhbMy05XSopCi0rICAjIEludGVyaXggMy41IGluc3RhbGxzIGNv bXBsZXRlbHkgaG9zZWQgLmxhIGZpbGVzIGZvciBDKyssIHNvIHJhdGhlciB0aGFuCi0rICAjIGhh Y2sgYWxsIGFyb3VuZCBpdCwgbGV0J3MganVzdCB0cnVzdCAiZysrIiB0byBEVFJULgotKyAgcHJl ZGVwX29iamVjdHNfQ1hYPQotKyAgcG9zdGRlcF9vYmplY3RzX0NYWD0KLSsgIHBvc3RkZXBzX0NY WD0KLSsgIDs7Ci0rCi0rbGludXgqKQotKyAgY2FzZSBgJENDIC1WIDI+JjEgfCBzZWQgNXFgIGlu Ci0rICAqU3VuXCBDKikKLSsgICAgIyBTdW4gQysrIDUuOQotKwotKyAgICAjIFRoZSBtb3JlIHN0 YW5kYXJkcy1jb25mb3JtaW5nIHN0bHBvcnQ0IGxpYnJhcnkgaXMKLSsgICAgIyBpbmNvbXBhdGli bGUgd2l0aCB0aGUgQ3N0ZCBsaWJyYXJ5LiBBdm9pZCBzcGVjaWZ5aW5nCi0rICAgICMgaXQgaWYg aXQncyBpbiBDWFhGTEFHUy4gSWdub3JlIGxpYkNydW4gYXMKLSsgICAgIyAtbGlicmFyeT1zdGxw b3J0NCBkZXBlbmRzIG9uIGl0LgotKyAgICBjYXNlICIgJENYWCAkQ1hYRkxBR1MgIiBpbgotKyAg ICAqIiAtbGlicmFyeT1zdGxwb3J0NCAiKikKLSsgICAgICBzb2xhcmlzX3VzZV9zdGxwb3J0ND15 ZXMKLSsgICAgICA7OwotKyAgICBlc2FjCi0rCi0rICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9z dGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgcG9zdGRlcHNfQ1hYPSctbGlicmFyeT1Dc3Rk IC1saWJyYXJ5PUNydW4nCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK3Nv bGFyaXMqKQotKyAgY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsgIENDKiB8IHN1bkNDKikKLSsgICAg IyBUaGUgbW9yZSBzdGFuZGFyZHMtY29uZm9ybWluZyBzdGxwb3J0NCBsaWJyYXJ5IGlzCi0rICAg ICMgaW5jb21wYXRpYmxlIHdpdGggdGhlIENzdGQgbGlicmFyeS4gQXZvaWQgc3BlY2lmeWluZwot KyAgICAjIGl0IGlmIGl0J3MgaW4gQ1hYRkxBR1MuIElnbm9yZSBsaWJDcnVuIGFzCi0rICAgICMg LWxpYnJhcnk9c3RscG9ydDQgZGVwZW5kcyBvbiBpdC4KLSsgICAgY2FzZSAiICRDWFggJENYWEZM QUdTICIgaW4KLSsgICAgKiIgLWxpYnJhcnk9c3RscG9ydDQgIiopCi0rICAgICAgc29sYXJpc191 c2Vfc3RscG9ydDQ9eWVzCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIEFkZGluZyB0 aGlzIHJlcXVpcmVzIGEga25vd24tZ29vZCBzZXR1cCBvZiBzaGFyZWQgbGlicmFyaWVzIGZvcgot KyAgICAjIFN1biBjb21waWxlciB2ZXJzaW9ucyBiZWZvcmUgNS42LCBlbHNlIFBJQyBvYmplY3Rz IGZyb20gYW4gb2xkCi0rICAgICMgYXJjaGl2ZSB3aWxsIGJlIGxpbmtlZCBpbnRvIHRoZSBvdXRw dXQsIGxlYWRpbmcgdG8gc3VidGxlIGJ1Z3MuCi0rICAgIGlmIHRlc3QgIiRzb2xhcmlzX3VzZV9z dGxwb3J0NCIgIT0geWVzOyB0aGVuCi0rICAgICAgcG9zdGRlcHNfQ1hYPSctbGlicmFyeT1Dc3Rk IC1saWJyYXJ5PUNydW4nCi0rICAgIGZpCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotK2VzYWMK LSsKLSsKLStjYXNlICIgJHBvc3RkZXBzX0NYWCAiIGluCi0rKiIgLWxjICIqKSBhcmNoaXZlX2Nt ZHNfbmVlZF9sY19DWFg9bm8gOzsKLStlc2FjCi0rIGNvbXBpbGVyX2xpYl9zZWFyY2hfZGlyc19D WFg9Ci0raWYgdGVzdCAtbiAiJHtjb21waWxlcl9saWJfc2VhcmNoX3BhdGhfQ1hYfSI7IHRoZW4K LSsgY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD1gZWNobyAiICR7Y29tcGlsZXJfbGliX3Nl YXJjaF9wYXRoX0NYWH0iIHwgJHtTRUR9IC1lICdzISAtTCEgIWcnIC1lICdzIV4gISEnYAotK2Zp Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0r Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rICAgIGx0X3Byb2dfY29tcGls ZXJfd2xfQ1hYPQotK2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLStsdF9wcm9nX2NvbXBpbGVy X3N0YXRpY19DWFg9Ci0rCi0rCi0rICAjIEMrKyBzcGVjaWZpYyBjYXNlcyBmb3IgcGljLCBzdGF0 aWMsIHdsLCBldGMuCi0rICBpZiB0ZXN0ICIkR1hYIiA9IHllczsgdGhlbgotKyAgICBsdF9wcm9n X2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hY PSctc3RhdGljJwotKwotKyAgICBjYXNlICRob3N0X29zIGluCi0rICAgIGFpeCopCi0rICAgICAg IyBBbGwgQUlYIGNvZGUgaXMgUElDLgotKyAgICAgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0 OyB0aGVuCi0rCSMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCWx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0NYWD0nLUJzdGF0aWMnCi0rICAgICAgZmkKLSsgICAgICA7OwotKwot KyAgICBhbWlnYW9zKikKLSsgICAgICBjYXNlICRob3N0X2NwdSBpbgotKyAgICAgIHBvd2VycGMp Ci0rICAgICAgICAgICAgIyBzZWUgY29tbWVudCBhYm91dCBBbWlnYU9TNCAuc28gc3VwcG9ydAot KyAgICAgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMnCi0rICAgICAgICA7 OwotKyAgICAgIG02OGspCi0rICAgICAgICAgICAgIyBGSVhNRTogd2UgbmVlZCBhdCBsZWFzdCA2 ODAyMCBjb2RlIHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMsIGJ1dAotKyAgICAgICAgICAgICMg YWRkaW5nIHRoZSBgLW02ODAyMCcgZmxhZyB0byBHQ0MgcHJldmVudHMgYnVpbGRpbmcgYW55dGhp bmcgYmV0dGVyLAotKyAgICAgICAgICAgICMgbGlrZSBgLW02ODA0MCcuCi0rICAgICAgICAgICAg bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctbTY4MDIwIC1yZXNpZGVudDMyIC1tYWx3YXlzLXJl c3RvcmUtYTQnCi0rICAgICAgICA7OwotKyAgICAgIGVzYWMKLSsgICAgICA7OwotKwotKyAgICBi ZW9zKiB8IGlyaXg1KiB8IGlyaXg2KiB8IG5vbnN0b3B1eCogfCBvc2YzKiB8IG9zZjQqIHwgb3Nm NSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIHRoZXNlIE9TZXMuCi0rICAgICAg OzsKLSsgICAgbWluZ3cqIHwgY3lnd2luKiB8IG9zMiogfCBwdzMyKiB8IGNlZ2NjKikKLSsgICAg ICAjIFRoaXMgaGFjayBpcyBzbyB0aGF0IHRoZSBzb3VyY2UgZmlsZSBjYW4gdGVsbCB3aGV0aGVy IGl0IGlzIGJlaW5nCi0rICAgICAgIyBidWlsdCBmb3IgaW5jbHVzaW9uIGluIGEgZGxsIChhbmQg c2hvdWxkIGV4cG9ydCBzeW1ib2xzIGZvciBleGFtcGxlKS4KLSsgICAgICAjIEFsdGhvdWdoIHRo ZSBjeWd3aW4gZ2NjIGlnbm9yZXMgLWZQSUMsIHN0aWxsIG5lZWQgdGhpcyBmb3Igb2xkLXN0eWxl Ci0rICAgICAgIyAoLS1kaXNhYmxlLWF1dG8taW1wb3J0KSBsaWJyYXJpZXMKLSsgICAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1ERExMX0VYUE9SVCcKLSsgICAgICA7OwotKyAgICBkYXJ3 aW4qIHwgcmhhcHNvZHkqKQotKyAgICAgICMgUElDIGlzIHRoZSBkZWZhdWx0IG9uIHRoaXMgcGxh dGZvcm0KLSsgICAgICAjIENvbW1vbiBzeW1ib2xzIG5vdCBhbGxvd2VkIGluIE1IX0RZTElCIGZp bGVzCi0rICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctZm5vLWNvbW1vbicKLSsgICAg ICA7OwotKyAgICAqZGpncHAqKQotKyAgICAgICMgREpHUFAgZG9lcyBub3Qgc3VwcG9ydCBzaGFy ZWQgbGlicmFyaWVzIGF0IGFsbAotKyAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLSsg ICAgICA7OwotKyAgICBoYWlrdSopCi0rICAgICAgIyBQSUMgaXMgdGhlIGRlZmF1bHQgZm9yIEhh aWt1LgotKyAgICAgICMgVGhlICItc3RhdGljIiBmbGFnIGV4aXN0cywgYnV0IGlzIGJyb2tlbi4K LSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Ci0rICAgICAgOzsKLSsgICAgaW50 ZXJpeFszLTldKikKLSsgICAgICAjIEludGVyaXggMy54IGdjYyAtZnBpYy8tZlBJQyBvcHRpb25z IGdlbmVyYXRlIGJyb2tlbiBjb2RlLgotKyAgICAgICMgSW5zdGVhZCwgd2UgcmVsb2NhdGUgc2hh cmVkIGxpYnJhcmllcyBhdCBydW50aW1lLgotKyAgICAgIDs7Ci0rICAgIHN5c3Y0Kk1QKikKLSsg ICAgICBpZiB0ZXN0IC1kIC91c3IvbmVjOyB0aGVuCi0rCWx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0tS2NvbmZvcm1fcGljCi0rICAgICAgZmkKLSsgICAgICA7OwotKyAgICBocHV4KikKLSsgICAg ICAjIFBJQyBpcyB0aGUgZGVmYXVsdCBmb3IgNjQtYml0IFBBIEhQLVVYLCBidXQgbm90IGZvciAz Mi1iaXQKLSsgICAgICAjIFBBIEhQLVVYLiAgT24gSUE2NCBIUC1VWCwgUElDIGlzIHRoZSBkZWZh dWx0IGJ1dCB0aGUgcGljIGZsYWcKLSsgICAgICAjIHNldHMgdGhlIGRlZmF1bHQgVExTIG1vZGVs IGFuZCBhZmZlY3RzIGlubGluaW5nLgotKyAgICAgIGNhc2UgJGhvc3RfY3B1IGluCi0rICAgICAg aHBwYSo2NCopCi0rCTs7Ci0rICAgICAgKikKLSsJbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSct ZlBJQycKLSsJOzsKLSsgICAgICBlc2FjCi0rICAgICAgOzsKLSsgICAgKnFueCogfCAqbnRvKikK LSsgICAgICAjIFFOWCB1c2VzIEdOVSBDKyssIGJ1dCBuZWVkIHRvIGRlZmluZSAtc2hhcmVkIG9w dGlvbiB0b28sIG90aGVyd2lzZQotKyAgICAgICMgaXQgd2lsbCBjb3JlZHVtcC4KLSsgICAgICBs dF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDIC1zaGFyZWQnCi0rICAgICAgOzsKLSsgICAg KikKLSsgICAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJwotKyAgICAgIDs7Ci0r ICAgIGVzYWMKLSsgIGVsc2UKLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeFs0LTld KikKLSsJIyBBbGwgQUlYIGNvZGUgaXMgUElDLgotKwlpZiB0ZXN0ICIkaG9zdF9jcHUiID0gaWE2 NDsgdGhlbgotKwkgICMgQUlYIDUgbm93IHN1cHBvcnRzIElBNjQgcHJvY2Vzc29yCi0rCSAgbHRf cHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJZWxzZQotKwkgIGx0X3Byb2df Y29tcGlsZXJfc3RhdGljX0NYWD0nLWJuc28gLWJJOi9saWIvc3lzY2FsbHMuZXhwJwotKwlmaQot Kwk7OwotKyAgICAgIGNob3J1cyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCWN4Y2g2OCop Ci0rCSAgIyBHcmVlbiBIaWxscyBDKysgQ29tcGlsZXIKLSsJICAjIF9MVF9UQUdWQVIobHRfcHJv Z19jb21waWxlcl9zdGF0aWMsIENYWCk9Ii0tbm9fYXV0b19pbnN0YW50aWF0aW9uIC11IF9fbWFp biAtdSBfX3ByZW1haW4gLXUgX2Fib3J0IC1yICRDT09MX0RJUi9saWIvbGliT3JiLmEgJE1WTUVf RElSL2xpYi9DQy9saWJDLmEgJE1WTUVfRElSL2xpYi9jbGFzc2l4L2xpYmN4LnMuYSIKLSsJICA7 OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbWluZ3cqIHwgY3lnd2luKiB8IG9zMiogfCBwdzMyKiB8 IGNlZ2NjKikKLSsJIyBUaGlzIGhhY2sgaXMgc28gdGhhdCB0aGUgc291cmNlIGZpbGUgY2FuIHRl bGwgd2hldGhlciBpdCBpcyBiZWluZwotKwkjIGJ1aWx0IGZvciBpbmNsdXNpb24gaW4gYSBkbGwg KGFuZCBzaG91bGQgZXhwb3J0IHN5bWJvbHMgZm9yIGV4YW1wbGUpLgotKwlsdF9wcm9nX2NvbXBp bGVyX3BpY19DWFg9Jy1ERExMX0VYUE9SVCcKLSsJOzsKLSsgICAgICBkZ3V4KikKLSsJY2FzZSAk Y2NfYmFzZW5hbWUgaW4KLSsJICBlYysrKikKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NY WD0nLUtQSUMnCi0rCSAgICA7OwotKwkgIGdoY3gqKQotKwkgICAgIyBHcmVlbiBIaWxscyBDKysg Q29tcGlsZXIKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKLSsJICAgIDs7 Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBmcmVlYnNkKiB8IGRyYWdv bmZseSopCi0rCSMgRnJlZUJTRCB1c2VzIEdOVSBDKysKLSsJOzsKLSsgICAgICBocHV4OSogfCBo cHV4MTAqIHwgaHB1eDExKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyopCi0rCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJf c3RhdGljX0NYWD0nJHt3bH0tYSAke3dsfWFyY2hpdmUnCi0rCSAgICBpZiB0ZXN0ICIkaG9zdF9j cHUiICE9IGlhNjQ7IHRoZW4KLSsJICAgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPScrWicK LSsJICAgIGZpCi0rCSAgICA7OwotKwkgIGFDQyopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3ds X0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0nJHt3bH0tYSAk e3dsfWFyY2hpdmUnCi0rCSAgICBjYXNlICRob3N0X2NwdSBpbgotKwkgICAgaHBwYSo2NCp8aWE2 NCopCi0rCSAgICAgICMgK1ogdGhlIGRlZmF1bHQKLSsJICAgICAgOzsKLSsJICAgICopCi0rCSAg ICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nK1onCi0rCSAgICAgIDs7Ci0rCSAgICBlc2Fj Ci0rCSAgICA7OwotKwkgICopCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgaW50ZXJp eCopCi0rCSMgVGhpcyBpcyBjODksIHdoaWNoIGlzIE1TIFZpc3VhbCBDKysgKG5vIHNoYXJlZCBs aWJzKQotKwkjIEFueW9uZSB3YW50cyB0byBkbyBhIHBvcnQ/Ci0rCTs7Ci0rICAgICAgaXJpeDUq IHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyop Ci0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29t cGlsZXJfc3RhdGljX0NYWD0nLW5vbl9zaGFyZWQnCi0rCSAgICAjIENDIHBpYyBmbGFnIC1LUElD IGlzIHRoZSBkZWZhdWx0LgotKwkgICAgOzsKLSsJICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7 OwotKyAgICAgIGxpbnV4KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKLSsJY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBLQ0MqKQotKwkgICAgIyBLQUkgQysrIENvbXBpbGVyCi0r CSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLS1iYWNrZW5kIC1XbCwnCi0rCSAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJwotKwkgICAgOzsKLSsJICBlY3BjKiApCi0rCSAg ICAjIG9sZCBJbnRlbCBDKysgZm9yIHg4Nl82NCB3aGljaCBzdGlsbCBzdXBwb3J0ZWQgLUtQSUMu Ci0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29t cGlsZXJfcGljX0NYWD0nLUtQSUMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9 Jy1zdGF0aWMnCi0rCSAgICA7OwotKwkgIGljcGMqICkKLSsJICAgICMgSW50ZWwgQysrLCB1c2Vk IHRvIGJlIGluY29tcGF0aWJsZSB3aXRoIEdDQy4KLSsJICAgICMgSUNDIDEwIGRvZXNuJ3QgYWNj ZXB0IC1LUElDIGFueSBtb3JlLgotKwkgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9Jy1XbCwn Ci0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1mUElDJwotKwkgICAgbHRfcHJvZ19j b21waWxlcl9zdGF0aWNfQ1hYPSctc3RhdGljJwotKwkgICAgOzsKLSsJICBwZ0NDKiB8IHBnY3Bw KikKLSsJICAgICMgUG9ydGxhbmQgR3JvdXAgQysrIGNvbXBpbGVyCi0rCSAgICBsdF9wcm9nX2Nv bXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZw aWMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1Cc3RhdGljJwotKwkgICAg OzsKLSsJICBjeHgqKQotKwkgICAgIyBDb21wYXEgQysrCi0rCSAgICAjIE1ha2Ugc3VyZSB0aGUg UElDIGZsYWcgaXMgZW1wdHkuICBJdCBhcHBlYXJzIHRoYXQgYWxsIEFscGhhCi0rCSAgICAjIExp bnV4IGFuZCBDb21wYXEgVHJ1NjQgVW5peCBvYmplY3RzIGFyZSBQSUMuCi0rCSAgICBsdF9wcm9n X2NvbXBpbGVyX3BpY19DWFg9Ci0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1u b25fc2hhcmVkJwotKwkgICAgOzsKLSsJICB4bGMqIHwgeGxDKiB8IGJneGxbY0NdKiB8IG1waXhs W2NDXSopCi0rCSAgICAjIElCTSBYTCA4LjAsIDkuMCBvbiBQUEMgYW5kIEJsdWVHZW5lCi0rCSAg ICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLVdsLCcKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJf cGljX0NYWD0nLXFwaWMnCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9Jy1xc3Rh dGljbGluaycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAgIGNhc2UgYCRDQyAtViAyPiYxIHwgc2Vk IDVxYCBpbgotKwkgICAgKlN1blwgQyopCi0rCSAgICAgICMgU3VuIEMrKyA1LjkKLSsJICAgICAg bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAgICAgbHRfcHJvZ19jb21waWxl cl9zdGF0aWNfQ1hYPSctQnN0YXRpYycKLSsJICAgICAgbHRfcHJvZ19jb21waWxlcl93bF9DWFg9 Jy1Rb3B0aW9uIGxkICcKLSsJICAgICAgOzsKLSsJICAgIGVzYWMKLSsJICAgIDs7Ci0rCWVzYWMK LSsJOzsKLSsgICAgICBseW54b3MqKQotKwk7OwotKyAgICAgIG04OGsqKQotKwk7OwotKyAgICAg IG12cyopCi0rCWNhc2UgJGNjX2Jhc2VuYW1lIGluCi0rCSAgY3h4KikKLSsJICAgIGx0X3Byb2df Y29tcGlsZXJfcGljX0NYWD0nLVcgYyxleHBvcnRhbGwnCi0rCSAgICA7OwotKwkgICopCi0rCSAg ICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgbmV0YnNkKikKLSsJOzsKLSsgICAgICAqcW54KiB8 ICpudG8qKQotKyAgICAgICAgIyBRTlggdXNlcyBHTlUgQysrLCBidXQgbmVlZCB0byBkZWZpbmUg LXNoYXJlZCBvcHRpb24gdG9vLCBvdGhlcndpc2UKLSsgICAgICAgICMgaXQgd2lsbCBjb3JlZHVt cC4KLSsgICAgICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLWZQSUMgLXNoYXJlZCcKLSsg ICAgICAgIDs7Ci0rICAgICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKwljYXNlICRjY19iYXNl bmFtZSBpbgotKwkgIEtDQyopCi0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWD0nLS1iYWNr ZW5kIC1XbCwnCi0rCSAgICA7OwotKwkgIFJDQyopCi0rCSAgICAjIFJhdGlvbmFsIEMrKyAyLjQu MQotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctcGljJwotKwkgICAgOzsKLSsJICBj eHgqKQotKwkgICAgIyBEaWdpdGFsL0NvbXBhcSBDKysKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJf d2xfQ1hYPSctV2wsJwotKwkgICAgIyBNYWtlIHN1cmUgdGhlIFBJQyBmbGFnIGlzIGVtcHR5LiAg SXQgYXBwZWFycyB0aGF0IGFsbCBBbHBoYQotKwkgICAgIyBMaW51eCBhbmQgQ29tcGFxIFRydTY0 IFVuaXggb2JqZWN0cyBhcmUgUElDLgotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPQot KwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPSctbm9uX3NoYXJlZCcKLSsJICAgIDs7 Ci0rCSAgKikKLSsJICAgIDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBwc29zKikKLSsJOzsKLSsg ICAgICBzb2xhcmlzKikKLSsJY2FzZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBDQyogfCBzdW5DQyop Ci0rCSAgICAjIFN1biBDKysgNC4yLCA1LnggYW5kIENlbnRlcmxpbmUgQysrCi0rCSAgICBsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0 aWNfQ1hYPSctQnN0YXRpYycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctUW9wdGlv biBsZCAnCi0rCSAgICA7OwotKwkgIGdjeCopCi0rCSAgICAjIEdyZWVuIEhpbGxzIEMrKyBDb21w aWxlcgotKwkgICAgbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYPSctUElDJwotKwkgICAgOzsKLSsJ ICAqKQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHN1bm9zNCopCi0rCWNhc2UgJGNj X2Jhc2VuYW1lIGluCi0rCSAgQ0MqKQotKwkgICAgIyBTdW4gQysrIDQueAotKwkgICAgbHRfcHJv Z19jb21waWxlcl9waWNfQ1hYPSctcGljJwotKwkgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNf Q1hYPSctQnN0YXRpYycKLSsJICAgIDs7Ci0rCSAgbGNjKikKLSsJICAgICMgTHVjaWQKLSsJICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0nLXBpYycKLSsJICAgIDs7Ci0rCSAgKikKLSsJICAg IDs7Ci0rCWVzYWMKLSsJOzsKLSsgICAgICBzeXN2NSogfCB1bml4d2FyZSogfCBzY28zLjJ2NSog fCBzY281djYqIHwgT3BlblVOSVgqKQotKwljYXNlICRjY19iYXNlbmFtZSBpbgotKwkgIENDKikK LSsJICAgIGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYPSctV2wsJwotKwkgICAgbHRfcHJvZ19jb21w aWxlcl9waWNfQ1hYPSctS1BJQycKLSsJICAgIGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWD0n LUJzdGF0aWMnCi0rCSAgICA7OwotKwllc2FjCi0rCTs7Ci0rICAgICAgdGFuZGVtKikKLSsJY2Fz ZSAkY2NfYmFzZW5hbWUgaW4KLSsJICBOQ0MqKQotKwkgICAgIyBOb25TdG9wLVVYIE5DQyAzLjIw Ci0rCSAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Jy1LUElDJwotKwkgICAgOzsKLSsJICAq KQotKwkgICAgOzsKLSsJZXNhYwotKwk7OwotKyAgICAgIHZ4d29ya3MqKQotKwk7OwotKyAgICAg ICopCi0rCWx0X3Byb2dfY29tcGlsZXJfY2FuX2J1aWxkX3NoYXJlZF9DWFg9bm8KLSsJOzsKLSsg ICAgZXNhYwotKyAgZmkKLSsKLStjYXNlICRob3N0X29zIGluCi0rICAjIEZvciBwbGF0Zm9ybXMg d2hpY2ggZG8gbm90IHN1cHBvcnQgUElDLCAtRFBJQyBpcyBtZWFuaW5nbGVzczoKLSsgICpkamdw cCopCi0rICAgIGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0KLSsgICAgOzsKLSsgICopCi0rICAg IGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0iJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCAtRFBJ QyIKLSsgICAgOzsKLStlc2FjCi0rCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgJGNvbXBpbGVyIG9wdGlvbiB0byBwcm9kdWNlIFBJQyIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRjb21waWxlciBvcHRpb24gdG8gcHJvZHVjZSBQ SUMuLi4gIiA+JjY7IH0KLStpZiAke2x0X2N2X3Byb2dfY29tcGlsZXJfcGljX0NYWCs6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2 X3Byb2dfY29tcGlsZXJfcGljX0NYWD0kbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3By b2dfY29tcGlsZXJfcGljX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVy X3BpY19DWFgiID4mNjsgfQotK2x0X3Byb2dfY29tcGlsZXJfcGljX0NYWD0kbHRfY3ZfcHJvZ19j b21waWxlcl9waWNfQ1hYCi0rCi0rIwotKyMgQ2hlY2sgdG8gbWFrZSBzdXJlIHRoZSBQSUMgZmxh ZyBhY3R1YWxseSB3b3Jrcy4KLSsjCi0raWYgdGVzdCAtbiAiJGx0X3Byb2dfY29tcGlsZXJfcGlj X0NYWCI7IHRoZW4KLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgaWYgJGNvbXBpbGVyIFBJQyBmbGFnICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgg d29ya3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxlciBQSUMgZmxhZyAk bHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIHdvcmtzLi4uICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9w cm9nX2NvbXBpbGVyX3BpY193b3Jrc19DWFgrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193b3Jr c19DWFg9bm8KLSsgICBhY19vdXRmaWxlPWNvbmZ0ZXN0LiRhY19vYmpleHQKLSsgICBlY2hvICIk bHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsgICBsdF9j b21waWxlcl9mbGFnPSIkbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIC1EUElDIgotKyAgICMgSW5z ZXJ0IHRoZSBvcHRpb24gZWl0aGVyICgxKSBhZnRlciB0aGUgbGFzdCAqRkxBR1MgdmFyaWFibGUs IG9yCi0rICAgIyAoMikgYmVmb3JlIGEgd29yZCBjb250YWluaW5nICJjb25mdGVzdC4iLCBvciAo MykgYXQgdGhlIGVuZC4KLSsgICAjIE5vdGUgdGhhdCAkYWNfY29tcGlsZSBpdHNlbGYgZG9lcyBu b3QgY29udGFpbiBiYWNrc2xhc2hlcyBhbmQgYmVnaW5zCi0rICAgIyB3aXRoIGEgZG9sbGFyIHNp Z24gKG5vdCBhIGh5cGhlbiksIHNvIHRoZSBlY2hvIHNob3VsZCB3b3JrIGNvcnJlY3RseS4KLSsg ICAjIFRoZSBvcHRpb24gaXMgcmVmZXJlbmNlZCB2aWEgYSB2YXJpYWJsZSB0byBhdm9pZCBjb25m dXNpbmcgc2VkLgotKyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAot KyAgIC1lICdzOi4qRkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsg ICAtZSAnczogW14gXSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAg LWUgJ3M6JDogJGx0X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6 JExJTkVOTzogJGx0X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5j b25mdGVzdC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IGNvbmZ0ZXN0LmVyciA+JjUK LSsgICBlY2hvICIkYXNfbWU6JExJTkVOTzogXCQ/ID0gJGFjX3N0YXR1cyIgPiY1Ci0rICAgaWYg KGV4aXQgJGFjX3N0YXR1cykgJiYgdGVzdCAtcyAiJGFjX291dGZpbGUiOyB0aGVuCi0rICAgICAj IFRoZSBjb21waWxlciBjYW4gb25seSB3YXJuIGFuZCBpZ25vcmUgdGhlIG9wdGlvbiBpZiBub3Qg cmVjb2duaXplZAotKyAgICAgIyBTbyBzYXkgbm8gaWYgdGhlcmUgYXJlIHdhcm5pbmdzIG90aGVy IHRoYW4gdGhlIHVzdWFsIG91dHB1dC4KLSsgICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxl cnBsYXRlIiB8ICRTRUQgJy9eJC9kJyA+Y29uZnRlc3QuZXhwCi0rICAgICAkU0VEICcvXiQvZDsg L14gKisvZCcgY29uZnRlc3QuZXJyID5jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBj b25mdGVzdC5lcjIgfHwgZGlmZiBjb25mdGVzdC5leHAgY29uZnRlc3QuZXIyID4vZGV2L251bGw7 IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9waWNfd29ya3NfQ1hYPXllcwotKyAg ICAgZmkKLSsgICBmaQotKyAgICRSTSBjb25mdGVzdCoKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkbHRfY3ZfcHJvZ19jb21waWxlcl9w aWNfd29ya3NfQ1hYIiA+JjUKLSskYXNfZWNobyAiJGx0X2N2X3Byb2dfY29tcGlsZXJfcGljX3dv cmtzX0NYWCIgPiY2OyB9Ci0rCi0raWYgdGVzdCB4IiRsdF9jdl9wcm9nX2NvbXBpbGVyX3BpY193 b3Jrc19DWFgiID0geHllczsgdGhlbgotKyAgICBjYXNlICRsdF9wcm9nX2NvbXBpbGVyX3BpY19D WFggaW4KLSsgICAgICIiIHwgIiAiKikgOzsKLSsgICAgICopIGx0X3Byb2dfY29tcGlsZXJfcGlj X0NYWD0iICRsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgiIDs7Ci0rICAgICBlc2FjCi0rZWxzZQot KyAgICBsdF9wcm9nX2NvbXBpbGVyX3BpY19DWFg9Ci0rICAgICBsdF9wcm9nX2NvbXBpbGVyX2Nh bl9idWlsZF9zaGFyZWRfQ1hYPW5vCi0rZmkKLSsKLStmaQotKwotKwotKwotKwotKwotKyMKLSsj IENoZWNrIHRvIG1ha2Ugc3VyZSB0aGUgc3RhdGljIGZsYWcgYWN0dWFsbHkgd29ya3MuCi0rIwot K3dsPSRsdF9wcm9nX2NvbXBpbGVyX3dsX0NYWCBldmFsIGx0X3RtcF9zdGF0aWNfZmxhZz1cIiRs dF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFhcIgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN0YXRpYyBmbGFnICRsdF90bXBf c3RhdGljX2ZsYWcgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmICRjb21waWxl ciBzdGF0aWMgZmxhZyAkbHRfdG1wX3N0YXRpY19mbGFnIHdvcmtzLi4uICIgPiY2OyB9Ci0raWYg JHtsdF9jdl9wcm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgrOn0gZmFsc2U7IHRoZW4gOgot KyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBsdF9jdl9wcm9nX2NvbXBp bGVyX3N0YXRpY193b3Jrc19DWFg9bm8KLSsgICBzYXZlX0xERkxBR1M9IiRMREZMQUdTIgotKyAg IExERkxBR1M9IiRMREZMQUdTICRsdF90bXBfc3RhdGljX2ZsYWciCi0rICAgZWNobyAiJGx0X3Np bXBsZV9saW5rX3Rlc3RfY29kZSIgPiBjb25mdGVzdC4kYWNfZXh0Ci0rICAgaWYgKGV2YWwgJGFj X2xpbmsgMj5jb25mdGVzdC5lcnIpICYmIHRlc3QgLXMgY29uZnRlc3QkYWNfZXhlZXh0OyB0aGVu Ci0rICAgICAjIFRoZSBsaW5rZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBvcHRpb24g aWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3YXJuaW5n cwotKyAgICAgaWYgdGVzdCAtcyBjb25mdGVzdC5lcnI7IHRoZW4KLSsgICAgICAgIyBBcHBlbmQg YW55IGVycm9ycyB0byB0aGUgY29uZmlnLmxvZy4KLSsgICAgICAgY2F0IGNvbmZ0ZXN0LmVyciAx PiY1Ci0rICAgICAgICRFQ0hPICIkX2x0X2xpbmtlcl9ib2lsZXJwbGF0ZSIgfCAkU0VEICcvXiQv ZCcgPiBjb25mdGVzdC5leHAKLSsgICAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIGNvbmZ0ZXN0 LmVyciA+Y29uZnRlc3QuZXIyCi0rICAgICAgIGlmIGRpZmYgY29uZnRlc3QuZXhwIGNvbmZ0ZXN0 LmVyMiA+L2Rldi9udWxsOyB0aGVuCi0rICAgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9zdGF0 aWNfd29ya3NfQ1hYPXllcwotKyAgICAgICBmaQotKyAgICAgZWxzZQotKyAgICAgICBsdF9jdl9w cm9nX2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFg9eWVzCi0rICAgICBmaQotKyAgIGZpCi0rICAg JFJNIC1yIGNvbmZ0ZXN0KgotKyAgIExERkxBR1M9IiRzYXZlX0xERkxBR1MiCi0rCi0rZmkKLSt7 ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGx0X2N2X3By b2dfY29tcGlsZXJfc3RhdGljX3dvcmtzX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsdF9jdl9wcm9n X2NvbXBpbGVyX3N0YXRpY193b3Jrc19DWFgiID4mNjsgfQotKwotK2lmIHRlc3QgeCIkbHRfY3Zf cHJvZ19jb21waWxlcl9zdGF0aWNfd29ya3NfQ1hYIiA9IHh5ZXM7IHRoZW4KLSsgICAgOgotK2Vs c2UKLSsgICAgbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYPQotK2ZpCi0rCi0rCi0rCi0rCi0r ICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgaWYg JGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dCIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgaWYgJGNvbXBpbGVyIHN1cHBvcnRzIC1jIC1vIGZpbGUuJGFjX29iamV4dC4u LiAiID4mNjsgfQotK2lmICR7bHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYKzp9IGZhbHNlOyB0 aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgbHRfY3ZfcHJv Z19jb21waWxlcl9jX29fQ1hYPW5vCi0rICAgJFJNIC1yIGNvbmZ0ZXN0IDI+L2Rldi9udWxsCi0r ICAgbWtkaXIgY29uZnRlc3QKLSsgICBjZCBjb25mdGVzdAotKyAgIG1rZGlyIG91dAotKyAgIGVj aG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3QuJGFjX2V4dAotKwot KyAgIGx0X2NvbXBpbGVyX2ZsYWc9Ii1vIG91dC9jb25mdGVzdDIuJGFjX29iamV4dCIKLSsgICAj IEluc2VydCB0aGUgb3B0aW9uIGVpdGhlciAoMSkgYWZ0ZXIgdGhlIGxhc3QgKkZMQUdTIHZhcmlh YmxlLCBvcgotKyAgICMgKDIpIGJlZm9yZSBhIHdvcmQgY29udGFpbmluZyAiY29uZnRlc3QuIiwg b3IgKDMpIGF0IHRoZSBlbmQuCi0rICAgIyBOb3RlIHRoYXQgJGFjX2NvbXBpbGUgaXRzZWxmIGRv ZXMgbm90IGNvbnRhaW4gYmFja3NsYXNoZXMgYW5kIGJlZ2lucwotKyAgICMgd2l0aCBhIGRvbGxh ciBzaWduIChub3QgYSBoeXBoZW4pLCBzbyB0aGUgZWNobyBzaG91bGQgd29yayBjb3JyZWN0bHku Ci0rICAgbHRfY29tcGlsZT1gZWNobyAiJGFjX2NvbXBpbGUiIHwgJFNFRCBcCi0rICAgLWUgJ3M6 LipGTEFHU31cezAsMVx9IDomJGx0X2NvbXBpbGVyX2ZsYWcgOjsgdCcgXAotKyAgIC1lICdzOiBb XiBdKmNvbmZ0ZXN0XC46ICRsdF9jb21waWxlcl9mbGFnJjo7IHQnIFwKLSsgICAtZSAnczokOiAk bHRfY29tcGlsZXJfZmxhZzonYAotKyAgIChldmFsIGVjaG8gIlwiXCRhc19tZTokTElORU5POiAk bHRfY29tcGlsZVwiIiA+JjUpCi0rICAgKGV2YWwgIiRsdF9jb21waWxlIiAyPm91dC9jb25mdGVz dC5lcnIpCi0rICAgYWNfc3RhdHVzPSQ/Ci0rICAgY2F0IG91dC9jb25mdGVzdC5lcnIgPiY1Ci0r ICAgZWNobyAiJGFzX21lOiRMSU5FTk86IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgIGlmIChl eGl0ICRhY19zdGF0dXMpICYmIHRlc3QgLXMgb3V0L2NvbmZ0ZXN0Mi4kYWNfb2JqZXh0Ci0rICAg dGhlbgotKyAgICAgIyBUaGUgY29tcGlsZXIgY2FuIG9ubHkgd2FybiBhbmQgaWdub3JlIHRoZSBv cHRpb24gaWYgbm90IHJlY29nbml6ZWQKLSsgICAgICMgU28gc2F5IG5vIGlmIHRoZXJlIGFyZSB3 YXJuaW5ncwotKyAgICAgJEVDSE8gIiRfbHRfY29tcGlsZXJfYm9pbGVycGxhdGUiIHwgJFNFRCAn L14kL2QnID4gb3V0L2NvbmZ0ZXN0LmV4cAotKyAgICAgJFNFRCAnL14kL2Q7IC9eICorL2QnIG91 dC9jb25mdGVzdC5lcnIgPm91dC9jb25mdGVzdC5lcjIKLSsgICAgIGlmIHRlc3QgISAtcyBvdXQv Y29uZnRlc3QuZXIyIHx8IGRpZmYgb3V0L2NvbmZ0ZXN0LmV4cCBvdXQvY29uZnRlc3QuZXIyID4v ZGV2L251bGw7IHRoZW4KLSsgICAgICAgbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYPXllcwot KyAgICAgZmkKLSsgICBmaQotKyAgIGNobW9kIHUrdyAuIDI+JjUKLSsgICAkUk0gY29uZnRlc3Qq Ci0rICAgIyBTR0kgQysrIGNvbXBpbGVyIHdpbGwgY3JlYXRlIGRpcmVjdG9yeSBvdXQvaWlfZmls ZXMvIGZvcgotKyAgICMgdGVtcGxhdGUgaW5zdGFudGlhdGlvbgotKyAgIHRlc3QgLWQgb3V0L2lp X2ZpbGVzICYmICRSTSBvdXQvaWlfZmlsZXMvKiAmJiBybWRpciBvdXQvaWlfZmlsZXMKLSsgICAk Uk0gb3V0LyogJiYgcm1kaXIgb3V0Ci0rICAgY2QgLi4KLSsgICAkUk0gLXIgY29uZnRlc3QKLSsg ICAkUk0gY29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IHJlc3VsdDogJGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCIgPiY1Ci0rJGFz X2VjaG8gIiRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID4mNjsgfQotKwotKwotKwotKyAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGlmICRj b21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGlmICRjb21waWxlciBzdXBwb3J0cyAtYyAtbyBmaWxlLiRhY19vYmpleHQuLi4g IiA+JjY7IH0KLStpZiAke2x0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWCs6fSBmYWxzZTsgdGhl biA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGx0X2N2X3Byb2df Y29tcGlsZXJfY19vX0NYWD1ubwotKyAgICRSTSAtciBjb25mdGVzdCAyPi9kZXYvbnVsbAotKyAg IG1rZGlyIGNvbmZ0ZXN0Ci0rICAgY2QgY29uZnRlc3QKLSsgICBta2RpciBvdXQKLSsgICBlY2hv ICIkbHRfc2ltcGxlX2NvbXBpbGVfdGVzdF9jb2RlIiA+IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsg ICBsdF9jb21waWxlcl9mbGFnPSItbyBvdXQvY29uZnRlc3QyLiRhY19vYmpleHQiCi0rICAgIyBJ bnNlcnQgdGhlIG9wdGlvbiBlaXRoZXIgKDEpIGFmdGVyIHRoZSBsYXN0ICpGTEFHUyB2YXJpYWJs ZSwgb3IKLSsgICAjICgyKSBiZWZvcmUgYSB3b3JkIGNvbnRhaW5pbmcgImNvbmZ0ZXN0LiIsIG9y ICgzKSBhdCB0aGUgZW5kLgotKyAgICMgTm90ZSB0aGF0ICRhY19jb21waWxlIGl0c2VsZiBkb2Vz IG5vdCBjb250YWluIGJhY2tzbGFzaGVzIGFuZCBiZWdpbnMKLSsgICAjIHdpdGggYSBkb2xsYXIg c2lnbiAobm90IGEgaHlwaGVuKSwgc28gdGhlIGVjaG8gc2hvdWxkIHdvcmsgY29ycmVjdGx5Lgot KyAgIGx0X2NvbXBpbGU9YGVjaG8gIiRhY19jb21waWxlIiB8ICRTRUQgXAotKyAgIC1lICdzOi4q RkxBR1N9XHswLDFcfSA6JiRsdF9jb21waWxlcl9mbGFnIDo7IHQnIFwKLSsgICAtZSAnczogW14g XSpjb25mdGVzdFwuOiAkbHRfY29tcGlsZXJfZmxhZyY6OyB0JyBcCi0rICAgLWUgJ3M6JDogJGx0 X2NvbXBpbGVyX2ZsYWc6J2AKLSsgICAoZXZhbCBlY2hvICJcIlwkYXNfbWU6JExJTkVOTzogJGx0 X2NvbXBpbGVcIiIgPiY1KQotKyAgIChldmFsICIkbHRfY29tcGlsZSIgMj5vdXQvY29uZnRlc3Qu ZXJyKQotKyAgIGFjX3N0YXR1cz0kPwotKyAgIGNhdCBvdXQvY29uZnRlc3QuZXJyID4mNQotKyAg IGVjaG8gIiRhc19tZTokTElORU5POiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgICBpZiAoZXhp dCAkYWNfc3RhdHVzKSAmJiB0ZXN0IC1zIG91dC9jb25mdGVzdDIuJGFjX29iamV4dAotKyAgIHRo ZW4KLSsgICAgICMgVGhlIGNvbXBpbGVyIGNhbiBvbmx5IHdhcm4gYW5kIGlnbm9yZSB0aGUgb3B0 aW9uIGlmIG5vdCByZWNvZ25pemVkCi0rICAgICAjIFNvIHNheSBubyBpZiB0aGVyZSBhcmUgd2Fy bmluZ3MKLSsgICAgICRFQ0hPICIkX2x0X2NvbXBpbGVyX2JvaWxlcnBsYXRlIiB8ICRTRUQgJy9e JC9kJyA+IG91dC9jb25mdGVzdC5leHAKLSsgICAgICRTRUQgJy9eJC9kOyAvXiAqKy9kJyBvdXQv Y29uZnRlc3QuZXJyID5vdXQvY29uZnRlc3QuZXIyCi0rICAgICBpZiB0ZXN0ICEgLXMgb3V0L2Nv bmZ0ZXN0LmVyMiB8fCBkaWZmIG91dC9jb25mdGVzdC5leHAgb3V0L2NvbmZ0ZXN0LmVyMiA+L2Rl di9udWxsOyB0aGVuCi0rICAgICAgIGx0X2N2X3Byb2dfY29tcGlsZXJfY19vX0NYWD15ZXMKLSsg ICAgIGZpCi0rICAgZmkKLSsgICBjaG1vZCB1K3cgLiAyPiY1Ci0rICAgJFJNIGNvbmZ0ZXN0Kgot KyAgICMgU0dJIEMrKyBjb21waWxlciB3aWxsIGNyZWF0ZSBkaXJlY3Rvcnkgb3V0L2lpX2ZpbGVz LyBmb3IKLSsgICAjIHRlbXBsYXRlIGluc3RhbnRpYXRpb24KLSsgICB0ZXN0IC1kIG91dC9paV9m aWxlcyAmJiAkUk0gb3V0L2lpX2ZpbGVzLyogJiYgcm1kaXIgb3V0L2lpX2ZpbGVzCi0rICAgJFJN IG91dC8qICYmIHJtZGlyIG91dAotKyAgIGNkIC4uCi0rICAgJFJNIC1yIGNvbmZ0ZXN0Ci0rICAg JFJNIGNvbmZ0ZXN0KgotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6ICRsdF9jdl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiID4mNQotKyRhc19l Y2hvICIkbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYIiA+JjY7IH0KLSsKLSsKLSsKLSsKLSto YXJkX2xpbmtzPSJub3R0ZXN0ZWQiCi0raWYgdGVzdCAiJGx0X2N2X3Byb2dfY29tcGlsZXJfY19v X0NYWCIgPSBubyAmJiB0ZXN0ICIkbmVlZF9sb2NrcyIgIT0gbm87IHRoZW4KLSsgICMgZG8gbm90 IG92ZXJ3cml0ZSB0aGUgdmFsdWUgb2YgbmVlZF9sb2NrcyBwcm92aWRlZCBieSB0aGUgdXNlcgot KyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiB3 ZSBjYW4gbG9jayB3aXRoIGhhcmQgbGlua3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlm IHdlIGNhbiBsb2NrIHdpdGggaGFyZCBsaW5rcy4uLiAiID4mNjsgfQotKyAgaGFyZF9saW5rcz15 ZXMKLSsgICRSTSBjb25mdGVzdCoKLSsgIGxuIGNvbmZ0ZXN0LmEgY29uZnRlc3QuYiAyPi9kZXYv bnVsbCAmJiBoYXJkX2xpbmtzPW5vCi0rICB0b3VjaCBjb25mdGVzdC5hCi0rICBsbiBjb25mdGVz dC5hIGNvbmZ0ZXN0LmIgMj4mNSB8fCBoYXJkX2xpbmtzPW5vCi0rICBsbiBjb25mdGVzdC5hIGNv bmZ0ZXN0LmIgMj4vZGV2L251bGwgJiYgaGFyZF9saW5rcz1ubwotKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRoYXJkX2xpbmtzIiA+JjUKLSskYXNf ZWNobyAiJGhhcmRfbGlua3MiID4mNjsgfQotKyAgaWYgdGVzdCAiJGhhcmRfbGlua3MiID0gbm87 IHRoZW4KLSsgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJO SU5HOiBcYCRDQycgZG9lcyBub3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkg YmUgdW5zYWZlIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiBcYCRDQycgZG9lcyBu b3Qgc3VwcG9ydCBcYC1jIC1vJywgc28gXGBtYWtlIC1qJyBtYXkgYmUgdW5zYWZlIiA+JjI7fQot KyAgICBuZWVkX2xvY2tzPXdhcm4KLSsgIGZpCi0rZWxzZQotKyAgbmVlZF9sb2Nrcz1ubwotK2Zp Ci0rCi0rCi0rCi0rICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog Y2hlY2tpbmcgd2hldGhlciB0aGUgJGNvbXBpbGVyIGxpbmtlciAoJExEKSBzdXBwb3J0cyBzaGFy ZWQgbGlicmFyaWVzIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSAkY29t cGlsZXIgbGlua2VyICgkTEQpIHN1cHBvcnRzIHNoYXJlZCBsaWJyYXJpZXMuLi4gIiA+JjY7IH0K LSsKLSsgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSckTk0gJGxpYm9ianMgJGNvbnZlbmllbmNl IHwgJGdsb2JhbF9zeW1ib2xfcGlwZSB8ICRTRUQgJ1wnJ3MvLiogLy8nXCcnIHwgc29ydCB8IHVu aXEgPiAkZXhwb3J0X3N5bWJvbHMnCi0rICBleGNsdWRlX2V4cHN5bXNfQ1hYPSdfR0xPQkFMX09G RlNFVF9UQUJMRV98X0dMT0JBTF9fRltJRF1fLionCi0rICBjYXNlICRob3N0X29zIGluCi0rICBh aXhbNC05XSopCi0rICAgICMgSWYgd2UncmUgdXNpbmcgR05VIG5tLCB0aGVuIHdlIGRvbid0IHdh bnQgdGhlICItQyIgb3B0aW9uLgotKyAgICAjIC1DIG1lYW5zIGRlbWFuZ2xlIHRvIEFJWCBubSwg YnV0IG1lYW5zIGRvbid0IGRlbWFuZ2xlIHdpdGggR05VIG5tCi0rICAgICMgQWxzbywgQUlYIG5t IHRyZWF0cyB3ZWFrIGRlZmluZWQgc3ltYm9scyBsaWtlIG90aGVyIGdsb2JhbCBkZWZpbmVkCi0r ICAgICMgc3ltYm9scywgd2hlcmVhcyBHTlUgbm0gbWFya3MgdGhlbSBhcyAiVyIuCi0rICAgIGlm ICROTSAtViAyPiYxIHwgJEdSRVAgJ0dOVScgPiAvZGV2L251bGw7IHRoZW4KLSsgICAgICBleHBv cnRfc3ltYm9sc19jbWRzX0NYWD0nJE5NIC1CcGcgJGxpYm9ianMgJGNvbnZlbmllbmNlIHwgYXdr ICdcJyd7IGlmICgoKFwkIDIgPT0gIlQiKSB8fCAoXCQgMiA9PSAiRCIpIHx8IChcJCAyID09ICJC IikgfHwgKFwkIDIgPT0gIlciKSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmlu dCBcJCAzIH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBlbHNlCi0r ICAgICAgZXhwb3J0X3N5bWJvbHNfY21kc19DWFg9JyROTSAtQkNwZyAkbGlib2JqcyAkY29udmVu aWVuY2UgfCBhd2sgJ1wnJ3sgaWYgKCgoXCQgMiA9PSAiVCIpIHx8IChcJCAyID09ICJEIikgfHwg KFwkIDIgPT0gIkIiKSkgJiYgKHN1YnN0cihcJCAzLDEsMSkgIT0gIi4iKSkgeyBwcmludCBcJCAz IH0gfSdcJycgfCBzb3J0IC11ID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICBmaQotKyAgICA7Owot KyAgcHczMiopCi0rICAgIGV4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSIkbHRkbGxfY21kcyIKLSsg ICAgOzsKLSsgIGN5Z3dpbiogfCBtaW5ndyogfCBjZWdjYyopCi0rICAgIGNhc2UgJGNjX2Jhc2Vu YW1lIGluCi0rICAgIGNsKikgOzsKLSsgICAgKikKLSsgICAgICBleHBvcnRfc3ltYm9sc19jbWRz X0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3BpcGUgfCAk U0VEIC1lICdcJycvXltCQ0RHUlNdWyBdL3MvLipbIF1cKFteIF0qXCkvXDEgREFUQS87cy9eLipb IF1fX25tX19cKFteIF0qXClbIF1bXiBdKi9cMSBEQVRBLzsvXklbIF0vZDsvXltBSVRXXVsgXS9z Ly4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xzJwotKyAgICAgIGV4Y2x1 ZGVfZXhwc3ltc19DWFg9J1tfXStHTE9CQUxfT0ZGU0VUX1RBQkxFX3xbX10rR0xPQkFMX19bRklE XV8uKnxbX10raGVhZF9bQS1aYS16MC05X10rX2RsbHxbQS1aYS16MC05X10rX2RsbF9pbmFtZScK LSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIDs7Ci0rICAqKQotKyAgICBleHBvcnRfc3ltYm9s c19jbWRzX0NYWD0nJE5NICRsaWJvYmpzICRjb252ZW5pZW5jZSB8ICRnbG9iYWxfc3ltYm9sX3Bp cGUgfCAkU0VEICdcJydzLy4qIC8vJ1wnJyB8IHNvcnQgfCB1bmlxID4gJGV4cG9ydF9zeW1ib2xz JwotKyAgICA7OwotKyAgZXNhYwotKwotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkbGRfc2hsaWJzX0NYWCIgPiY1Ci0rJGFzX2VjaG8gIiRsZF9zaGxp YnNfQ1hYIiA+JjY7IH0KLSt0ZXN0ICIkbGRfc2hsaWJzX0NYWCIgPSBubyAmJiBjYW5fYnVpbGRf c2hhcmVkPW5vCi0rCi0rd2l0aF9nbnVfbGRfQ1hYPSR3aXRoX2dudV9sZAotKwotKwotKwotKwot KwotKwotKyMKLSsjIERvIHdlIG5lZWQgdG8gZXhwbGljaXRseSBsaW5rIGxpYmM/Ci0rIwotK2Nh c2UgIngkYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYIiBpbgotK3h8eHllcykKLSsgICMgQXNzdW1l IC1sYyBzaG91bGQgYmUgYWRkZWQKLSsgIGFyY2hpdmVfY21kc19uZWVkX2xjX0NYWD15ZXMKLSsK LSsgIGlmIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IHllcyAmJiB0ZXN0ICIkR0NDIiA9IHllczsg dGhlbgotKyAgICBjYXNlICRhcmNoaXZlX2NtZHNfQ1hYIGluCi0rICAgIConficqKQotKyAgICAg ICMgRklYTUU6IHdlIG1heSBoYXZlIHRvIGRlYWwgd2l0aCBtdWx0aS1jb21tYW5kIHNlcXVlbmNl cy4KLSsgICAgICA7OwotKyAgICAnJENDICcqKQotKyAgICAgICMgVGVzdCB3aGV0aGVyIHRoZSBj b21waWxlciBpbXBsaWNpdGx5IGxpbmtzIHdpdGggLWxjIHNpbmNlIG9uIHNvbWUKLSsgICAgICAj IHN5c3RlbXMsIC1sZ2NjIGhhcyB0byBjb21lIGJlZm9yZSAtbGMuIElmIGdjYyBhbHJlYWR5IHBh c3NlcyAtbGMKLSsgICAgICAjIHRvIGxkLCBkb24ndCBhZGQgLWxjIGJlZm9yZSAtbGdjYy4KLSsg ICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdo ZXRoZXIgLWxjIHNob3VsZCBiZSBleHBsaWNpdGx5IGxpbmtlZCBpbiIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciAtbGMgc2hvdWxkIGJlIGV4cGxpY2l0bHkgbGlua2VkIGluLi4u ICIgPiY2OyB9Ci0raWYgJHtsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgrOn0gZmFsc2U7 IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICAkUk0gY29u ZnRlc3QqCi0rCWVjaG8gIiRsdF9zaW1wbGVfY29tcGlsZV90ZXN0X2NvZGUiID4gY29uZnRlc3Qu JGFjX2V4dAotKwotKwlpZiB7IHsgZXZhbCBlY2hvICJcIlwkYXNfbWVcIjoke2FzX2xpbmVuby0k TElORU5PfTogXCIkYWNfY29tcGlsZVwiIjsgfSA+JjUKLSsgIChldmFsICRhY19jb21waWxlKSAy PiY1Ci0rICBhY19zdGF0dXM9JD8KLSsgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IFwkPyA9ICRhY19zdGF0dXMiID4mNQotKyAgdGVzdCAkYWNfc3RhdHVzID0gMDsgfSAy PmNvbmZ0ZXN0LmVycjsgdGhlbgotKwkgIHNvbmFtZT1jb25mdGVzdAotKwkgIGxpYj1jb25mdGVz dAotKwkgIGxpYm9ianM9Y29uZnRlc3QuJGFjX29iamV4dAotKwkgIGRlcGxpYnM9Ci0rCSAgd2w9 JGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYCi0rCSAgcGljX2ZsYWc9JGx0X3Byb2dfY29tcGlsZXJf cGljX0NYWAotKwkgIGNvbXBpbGVyX2ZsYWdzPS12Ci0rCSAgbGlua2VyX2ZsYWdzPS12Ci0rCSAg dmVyc3RyaW5nPQotKwkgIG91dHB1dF9vYmpkaXI9LgotKwkgIGxpYm5hbWU9Y29uZnRlc3QKLSsJ ICBsdF9zYXZlX2FsbG93X3VuZGVmaW5lZF9mbGFnPSRhbGxvd191bmRlZmluZWRfZmxhZ19DWFgK LSsJICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9Ci0rCSAgaWYgeyB7IGV2YWwgZWNobyAiXCJc JGFzX21lXCI6JHthc19saW5lbm8tJExJTkVOT306IFwiJGFyY2hpdmVfY21kc19DWFggMlw+XCYx IFx8ICRHUkVQIFwiIC1sYyBcIiBcPi9kZXYvbnVsbCAyXD5cJjFcIiI7IH0gPiY1Ci0rICAoZXZh bCAkYXJjaGl2ZV9jbWRzX0NYWCAyXD5cJjEgXHwgJEdSRVAgXCIgLWxjIFwiIFw+L2Rldi9udWxs IDJcPlwmMSkgMj4mNQotKyAgYWNfc3RhdHVzPSQ/Ci0rICAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBcJD8gPSAkYWNfc3RhdHVzIiA+JjUKLSsgIHRlc3QgJGFjX3N0YXR1 cyA9IDA7IH0KLSsJICB0aGVuCi0rCSAgICBsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9 bm8KLSsJICBlbHNlCi0rCSAgICBsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sY19DWFg9eWVzCi0r CSAgZmkKLSsJICBhbGxvd191bmRlZmluZWRfZmxhZ19DWFg9JGx0X3NhdmVfYWxsb3dfdW5kZWZp bmVkX2ZsYWcKLSsJZWxzZQotKwkgIGNhdCBjb25mdGVzdC5lcnIgMT4mNQotKwlmaQotKwkkUk0g Y29uZnRlc3QqCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVO T306IHJlc3VsdDogJGx0X2N2X2FyY2hpdmVfY21kc19uZWVkX2xjX0NYWCIgPiY1Ci0rJGFzX2Vj aG8gIiRsdF9jdl9hcmNoaXZlX2NtZHNfbmVlZF9sY19DWFgiID4mNjsgfQotKyAgICAgIGFyY2hp dmVfY21kc19uZWVkX2xjX0NYWD0kbHRfY3ZfYXJjaGl2ZV9jbWRzX25lZWRfbGNfQ1hYCi0rICAg ICAgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIDs7Ci0rZXNhYwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IGR5bmFtaWMgbGlua2VyIGNoYXJhY3RlcmlzdGljcyIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZHluYW1pYyBsaW5rZXIgY2hhcmFjdGVyaXN0aWNzLi4uICIgPiY2OyB9Ci0rCi0rbGlicmFy eV9uYW1lc19zcGVjPQotK2xpYm5hbWVfc3BlYz0nbGliJG5hbWUnCi0rc29uYW1lX3NwZWM9Ci0r c2hyZXh0X2NtZHM9Ii5zbyIKLStwb3N0aW5zdGFsbF9jbWRzPQotK3Bvc3R1bmluc3RhbGxfY21k cz0KLStmaW5pc2hfY21kcz0KLStmaW5pc2hfZXZhbD0KLStzaGxpYnBhdGhfdmFyPQotK3NobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD11bmtub3duCi0rdmVyc2lvbl90eXBlPW5vbmUKLStkeW5h bWljX2xpbmtlcj0iJGhvc3Rfb3MgbGQuc28iCi0rc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9 Ii9saWIgL3Vzci9saWIiCi0rbmVlZF9saWJfcHJlZml4PXVua25vd24KLStoYXJkY29kZV9pbnRv X2xpYnM9bm8KLSsKLSsjIHdoZW4geW91IHNldCBuZWVkX3ZlcnNpb24gdG8gbm8sIG1ha2Ugc3Vy ZSBpdCBkb2VzIG5vdCBjYXVzZSAtc2V0X3ZlcnNpb24KLSsjIGZsYWdzIHRvIGJlIGxlZnQgd2l0 aG91dCBhcmd1bWVudHMKLStuZWVkX3ZlcnNpb249dW5rbm93bgotKwotK2Nhc2UgJGhvc3Rfb3Mg aW4KLSthaXgzKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19zcGVj PScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICRsaWJuYW1lLmEn Ci0rICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsKLSsgICMgQUlYIDMgaGFzIG5vIHZlcnNpb25p bmcgc3VwcG9ydCwgc28gd2UgYXBwZW5kIGEgbWFqb3IgdmVyc2lvbiB0byB0aGUgbmFtZS4KLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICA7OwotKwotK2FpeFs0LTldKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJf cHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK LSsgIGlmIHRlc3QgIiRob3N0X2NwdSIgPSBpYTY0OyB0aGVuCi0rICAgICMgQUlYIDUgc3VwcG9y dHMgSUE2NAotKyAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvciAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgICAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZ X1BBVEgKLSsgIGVsc2UKLSsgICAgIyBXaXRoIEdDQyB1cCB0byAyLjk1LngsIGNvbGxlY3QyIHdv dWxkIGNyZWF0ZSBhbiBpbXBvcnQgZmlsZQotKyAgICAjIGZvciBkZXBlbmRlbmNlIGxpYnJhcmll cy4gIFRoZSBpbXBvcnQgZmlsZSB3b3VsZCBzdGFydCB3aXRoCi0rICAgICMgdGhlIGxpbmUgYCMh IC4nLiAgVGhpcyB3b3VsZCBjYXVzZSB0aGUgZ2VuZXJhdGVkIGxpYnJhcnkgdG8KLSsgICAgIyBk ZXBlbmQgb24gYC4nLCBhbHdheXMgYW4gaW52YWxpZCBsaWJyYXJ5LiAgVGhpcyB3YXMgZml4ZWQg aW4KLSsgICAgIyBkZXZlbG9wbWVudCBzbmFwc2hvdHMgb2YgR0NDIHByaW9yIHRvIDMuMC4KLSsg ICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIGFpeDQgfCBhaXg0LlswMV0gfCBhaXg0LlswMV0u KikKLSsgICAgICBpZiB7IGVjaG8gJyNpZiBfX0dOVUNfXyA+IDIgfHwgKF9fR05VQ19fID09IDIg JiYgX19HTlVDX01JTk9SX18gPj0gOTcpJwotKwkgICBlY2hvICcgeWVzICcKLSsJICAgZWNobyAn I2VuZGlmJzsgfSB8ICR7Q0N9IC1FIC0gfCAkR1JFUCB5ZXMgPiAvZGV2L251bGw7IHRoZW4KLSsJ OgotKyAgICAgIGVsc2UKLSsJY2FuX2J1aWxkX3NoYXJlZD1ubwotKyAgICAgIGZpCi0rICAgICAg OzsKLSsgICAgZXNhYwotKyAgICAjIEFJWCAob24gUG93ZXIqKSBoYXMgbm8gdmVyc2lvbmluZyBz dXBwb3J0LCBzbyBjdXJyZW50bHkgd2UgY2FuIG5vdCBoYXJkY29kZSBjb3JyZWN0Ci0rICAgICMg c29uYW1lIGludG8gZXhlY3V0YWJsZS4gUHJvYmFibHkgd2UgY2FuIGFkZCB2ZXJzaW9uaW5nIHN1 cHBvcnQgdG8KLSsgICAgIyBjb2xsZWN0Miwgc28gYWRkaXRpb25hbCBsaW5rcyBjYW4gYmUgdXNl ZnVsIGluIGZ1dHVyZS4KLSsgICAgaWYgdGVzdCAiJGFpeF91c2VfcnVudGltZWxpbmtpbmciID0g eWVzOyB0aGVuCi0rICAgICAgIyBJZiB1c2luZyBydW4gdGltZSBsaW5raW5nIChvbiBBSVggNC4y IG9yIGxhdGVyKSB1c2UgbGliPG5hbWU+LnNvCi0rICAgICAgIyBpbnN0ZWFkIG9mIGxpYjxuYW1l Pi5hIHRvIGxldCBwZW9wbGUga25vdyB0aGF0IHRoZXNlIGFyZSBub3QKLSsgICAgICAjIHR5cGlj YWwgQUlYIHNoYXJlZCBsaWJyYXJpZXMuCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xp Ym5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVh c2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIGVsc2UK LSsgICAgICAjIFdlIHByZXNlcnZlIC5hIGFzIGV4dGVuc2lvbiBmb3Igc2hhcmVkIGxpYnJhcmll cyB0aHJvdWdoIEFJWDQuMgotKyAgICAgICMgYW5kIGxhdGVyIHdoZW4gd2UgYXJlIG5vdCBkb2lu ZyBydW4gdGltZSBsaW5raW5nLgotKyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0uYSAkbGlibmFtZS5hJwotKyAgICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9 JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAgIGZpCi0rICAgIHNobGlicGF0aF92 YXI9TElCUEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0rYW1pZ2FvcyopCi0rICBjYXNlICRob3N0X2Nw dSBpbgotKyAgcG93ZXJwYykKLSsgICAgIyBTaW5jZSBKdWx5IDIwMDcgQW1pZ2FPUzQgb2ZmaWNp YWxseSBzdXBwb3J0cyAuc28gbGlicmFyaWVzLgotKyAgICAjIFdoZW4gY29tcGlsaW5nIHRoZSBl eGVjdXRhYmxlLCBhZGQgLXVzZS1keW5sZCAtTHNvYmpzOiB0byB0aGUgY29tcGlsZWxpbmUuCi0r ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JwotKyAgICA7OwotKyAgbTY4aykKLSsgICAgbGlicmFyeV9uYW1lc19z cGVjPSckbGlibmFtZS5peGxpYnJhcnkgJGxpYm5hbWUuYScKLSsgICAgIyBDcmVhdGUgJHtsaWJu YW1lfV9peGxpYnJhcnkuYSBlbnRyaWVzIGluIC9zeXMvbGlicy4KLSsgICAgZmluaXNoX2V2YWw9 J2ZvciBsaWIgaW4gYGxzICRsaWJkaXIvKi5peGxpYnJhcnkgMj4vZGV2L251bGxgOyBkbyBsaWJu YW1lPWBmdW5jX2VjaG9fYWxsICIkbGliIiB8ICRTRUQgJ1wnJ3MlXi4qL1woW14vXSpcKVwuaXhs aWJyYXJ5JCVcMSUnXCcnYDsgdGVzdCAkUk0gL3N5cy9saWJzLyR7bGlibmFtZX1faXhsaWJyYXJ5 LmE7ICRzaG93ICJjZCAvc3lzL2xpYnMgJiYgJExOX1MgJGxpYiAke2xpYm5hbWV9X2l4bGlicmFy eS5hIjsgY2QgL3N5cy9saWJzICYmICRMTl9TICRsaWIgJHtsaWJuYW1lfV9peGxpYnJhcnkuYSB8 fCBleGl0IDE7IGRvbmUnCi0rICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK2Jlb3MqKQotKyAg bGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIGR5bmFtaWNf bGlua2VyPSIkaG9zdF9vcyBsZC5zbyIKLSsgIHNobGlicGF0aF92YXI9TElCUkFSWV9QQVRICi0r ICA7OwotKwotK2JzZGlbNDVdKikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF92ZXJz aW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFy ZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9y ICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxl YXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBmaW5pc2hfY21kcz0nUEFUSD0iXCRQQVRIOi9z YmluIiBsZGNvbmZpZyAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK LSsgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvWDExL2xp YiAvdXNyL2NvbnRyaWIvbGliIC9saWIgL3Vzci9sb2NhbC9saWIiCi0rICBzeXNfbGliX2Rsc2Vh cmNoX3BhdGhfc3BlYz0iL3NobGliIC91c3IvbGliIC91c3IvbG9jYWwvbGliIgotKyAgIyB0aGUg ZGVmYXVsdCBsZC5zby5jb25mIGFsc28gY29udGFpbnMgL3Vzci9jb250cmliL2xpYiBhbmQKLSsg ICMgL3Vzci9YMTFSNi9saWIgKC91c3IvWDExIGlzIGEgbGluayB0byAvdXNyL1gxMVI2KSwgYnV0 IGxldCB1cyBhbGxvdwotKyAgIyBsaWJ0b29sIHRvIGhhcmQtY29kZSB0aGVzZSBpbnRvIHByb2dy YW1zCi0rICA7OwotKwotK2N5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSsgIHZl cnNpb25fdHlwZT13aW5kb3dzCi0rICBzaHJleHRfY21kcz0iLmRsbCIKLSsgIG5lZWRfdmVyc2lv bj1ubwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rCi0rICBjYXNlICRHQ0MsJGNjX2Jhc2VuYW1l IGluCi0rICB5ZXMsKikKLSsgICAgIyBnY2MKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGli bmFtZS5kbGwuYScKLSsgICAgIyBETEwgaXMgaW5zdGFsbGVkIHRvICQobGliZGlyKS8uLi9iaW4g YnkgcG9zdGluc3RhbGxfY21kcwotKyAgICBwb3N0aW5zdGFsbF9jbWRzPSdiYXNlX2ZpbGU9YGJh c2VuYW1lIFwke2ZpbGV9YH4KLSsgICAgICBkbHBhdGg9YCRTSEVMTCAyPiYxIC1jICdcJycuICRk aXIvJ1wnJ1wke2Jhc2VfZmlsZX0nXCcnaTsgZWNobyBcJGRsbmFtZSdcJydgfgotKyAgICAgIGRs ZGlyPSRkZXN0ZGlyL2BkaXJuYW1lIFwkZGxwYXRoYH4KLSsgICAgICB0ZXN0IC1kIFwkZGxkaXIg fHwgbWtkaXIgLXAgXCRkbGRpcn4KLSsgICAgICAkaW5zdGFsbF9wcm9nICRkaXIvJGRsbmFtZSBc JGRsZGlyLyRkbG5hbWV+Ci0rICAgICAgY2htb2QgYSt4IFwkZGxkaXIvJGRsbmFtZX4KLSsgICAg ICBpZiB0ZXN0IC1uICdcJyckc3RyaXBtZSdcJycgJiYgdGVzdCAtbiAnXCcnJHN0cmlwbGliJ1wn JzsgdGhlbgotKyAgICAgICAgZXZhbCAnXCcnJHN0cmlwbGliIFwkZGxkaXIvJGRsbmFtZSdcJycg fHwgZXhpdCBcJD87Ci0rICAgICAgZmknCi0rICAgIHBvc3R1bmluc3RhbGxfY21kcz0nZGxkbGw9 YCRTSEVMTCAyPiYxIC1jICdcJycuICRmaWxlOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAg ZGxwYXRoPSRkaXIvXCRkbGRsbH4KLSsgICAgICAgJFJNIFwkZGxwYXRoJwotKyAgICBzaGxpYnBh dGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAg Y3lnd2luKikKLSsgICAgICAjIEN5Z3dpbiBETExzIHVzZSAnY3lnJyBwcmVmaXggcmF0aGVyIHRo YW4gJ2xpYicKLSsgICAgICBzb25hbWVfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAn cy9ebGliL2N5Zy8nYGBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVy c3VmZml4fSR7c2hhcmVkX2V4dH0nCi0rCi0rICAgICAgOzsKLSsgICAgbWluZ3cqIHwgY2VnY2Mq KQotKyAgICAgICMgTWluR1cgRExMcyB1c2UgdHJhZGl0aW9uYWwgJ2xpYicgcHJlZml4Ci0rICAg ICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX1gZWNobyAke3JlbGVhc2V9IHwgJFNFRCAtZSAncy9b Ll0vLS9nJ2Ake3ZlcnN1ZmZpeH0ke3NoYXJlZF9leHR9JwotKyAgICAgIDs7Ci0rICAgIHB3MzIq KQotKyAgICAgICMgcHczMiBETExzIHVzZSAncHcnIHByZWZpeCByYXRoZXIgdGhhbiAnbGliJwot KyAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nYGVjaG8gJHtsaWJuYW1lfSB8IHNlZCAtZSAncy9e bGliL3B3LydgYGVjaG8gJHtyZWxlYXNlfSB8ICRTRUQgLWUgJ3MvWy5dLy0vZydgJHt2ZXJzdWZm aXh9JHtzaGFyZWRfZXh0fScKLSsgICAgICA7OwotKyAgICBlc2FjCi0rICAgIGR5bmFtaWNfbGlu a2VyPSdXaW4zMiBsZC5leGUnCi0rICAgIDs7Ci0rCi0rICAqLGNsKikKLSsgICAgIyBOYXRpdmUg TVNWQwotKyAgICBsaWJuYW1lX3NwZWM9JyRuYW1lJwotKyAgICBzb25hbWVfc3BlYz0nJHtsaWJu YW1lfWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7 c2hhcmVkX2V4dH0nCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfS5kbGwubGli JwotKwotKyAgICBjYXNlICRidWlsZF9vcyBpbgotKyAgICBtaW5ndyopCi0rICAgICAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjPQotKyAgICAgIGx0X3NhdmVfaWZzPSRJRlMKLSsgICAgICBJRlM9 JzsnCi0rICAgICAgZm9yIGx0X3BhdGggaW4gJExJQgotKyAgICAgIGRvCi0rICAgICAgICBJRlM9 JGx0X3NhdmVfaWZzCi0rICAgICAgICAjIExldCBET1MgdmFyaWFibGUgZXhwYW5zaW9uIHByaW50 IHRoZSBzaG9ydCA4LjMgc3R5bGUgZmlsZSBuYW1lLgotKyAgICAgICAgbHRfcGF0aD1gY2QgIiRs dF9wYXRoIiAyPi9kZXYvbnVsbCAmJiBjbWQgLy9DICJmb3IgJWkgaW4gKCIuIikgZG8gQGVjaG8g JX5zaSJgCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWMgJGx0X3BhdGgiCi0rICAgICAgZG9uZQotKyAgICAgIElGUz0kbHRfc2F2ZV9p ZnMKLSsgICAgICAjIENvbnZlcnQgdG8gTVNZUyBzdHlsZS4KLSsgICAgICBzeXNfbGliX3NlYXJj aF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8IHNlZCAtZSAn c3xcXFxcfC98ZycgLWUgJ3N8IFxcKFthLXpBLVpdXFwpOnwgL1xcMXxnJyAtZSAnc3xeIHx8J2AK LSsgICAgICA7OwotKyAgICBjeWd3aW4qKQotKyAgICAgICMgQ29udmVydCB0byB1bml4IGZvcm0s IHRoZW4gdG8gZG9zIGZvcm0sIHRoZW4gYmFjayB0byB1bml4IGZvcm0KLSsgICAgICAjIGJ1dCB0 aGlzIHRpbWUgZG9zIHN0eWxlIChubyBzcGFjZXMhKSBzbyB0aGF0IHRoZSB1bml4IGZvcm0gbG9v a3MKLSsgICAgICAjIGxpa2UgL2N5Z2RyaXZlL2MvUFJPR1JBfjE6L2N5Z2RyLi4uCi0rICAgICAg c3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWBjeWdwYXRoIC0tcGF0aCAtLXVuaXggIiRMSUIiYAot KyAgICAgIHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYz1gY3lncGF0aCAtLXBhdGggLS1kb3MgIiRz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIDI+L2Rldi9udWxsYAotKyAgICAgIHN5c19saWJfc2Vh cmNoX3BhdGhfc3BlYz1gY3lncGF0aCAtLXBhdGggLS11bml4ICIkc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjIiB8ICRTRUQgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAgICAgOzsKLSsg ICAgKikKLSsgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRMSUIiCi0rICAgICAgaWYg JEVDSE8gIiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiIHwgJEdSRVAgJztbYy16Qy1aXTovJyA+ L2Rldi9udWxsOyB0aGVuCi0rICAgICAgICAjIEl0IGlzIG1vc3QgcHJvYmFibHkgYSBXaW5kb3dz IGZvcm1hdCBQQVRILgotKyAgICAgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPWAkRUNITyAi JHN5c19saWJfc2VhcmNoX3BhdGhfc3BlYyIgfCAkU0VEIC1lICdzLzsvIC9nJ2AKLSsgICAgICBl bHNlCi0rICAgICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9YCRFQ0hPICIkc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgLWUgInMvJFBBVEhfU0VQQVJBVE9SLyAvZyJgCi0rICAg ICAgZmkKLSsgICAgICAjIEZJWE1FOiBmaW5kIHRoZSBzaG9ydCBuYW1lIG9yIHRoZSBwYXRoIGNv bXBvbmVudHMsIGFzIHNwYWNlcyBhcmUKLSsgICAgICAjIGNvbW1vbi4gKGUuZy4gIlByb2dyYW0g RmlsZXMiIC0+ICJQUk9HUkF+MSIpCi0rICAgICAgOzsKLSsgICAgZXNhYwotKwotKyAgICAjIERM TCBpcyBpbnN0YWxsZWQgdG8gJChsaWJkaXIpLy4uL2JpbiBieSBwb3N0aW5zdGFsbF9jbWRzCi0r ICAgIHBvc3RpbnN0YWxsX2NtZHM9J2Jhc2VfZmlsZT1gYmFzZW5hbWUgXCR7ZmlsZX1gfgotKyAg ICAgIGRscGF0aD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGRpci8nXCcnXCR7YmFzZV9maWxlfSdc JydpOyBlY2hvIFwkZGxuYW1lJ1wnJ2B+Ci0rICAgICAgZGxkaXI9JGRlc3RkaXIvYGRpcm5hbWUg XCRkbHBhdGhgfgotKyAgICAgIHRlc3QgLWQgXCRkbGRpciB8fCBta2RpciAtcCBcJGRsZGlyfgot KyAgICAgICRpbnN0YWxsX3Byb2cgJGRpci8kZGxuYW1lIFwkZGxkaXIvJGRsbmFtZScKLSsgICAg cG9zdHVuaW5zdGFsbF9jbWRzPSdkbGRsbD1gJFNIRUxMIDI+JjEgLWMgJ1wnJy4gJGZpbGU7IGVj aG8gXCRkbG5hbWUnXCcnYH4KLSsgICAgICBkbHBhdGg9JGRpci9cJGRsZGxsfgotKyAgICAgICAk Uk0gXCRkbHBhdGgnCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgICAg ZHluYW1pY19saW5rZXI9J1dpbjMyIGxpbmsuZXhlJwotKyAgICA7OwotKwotKyAgKikKLSsgICAg IyBBc3N1bWUgTVNWQyB3cmFwcGVyCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fWBlY2hvICR7cmVsZWFzZX0gfCAkU0VEIC1lICdzL1suXS8tL2cnYCR7dmVyc3VmZml4fSR7c2hh cmVkX2V4dH0gJGxpYm5hbWUubGliJwotKyAgICBkeW5hbWljX2xpbmtlcj0nV2luMzIgbGQuZXhl JwotKyAgICA7OwotKyAgZXNhYwotKyAgIyBGSVhNRTogZmlyc3Qgd2Ugc2hvdWxkIHNlYXJjaCAu IGFuZCB0aGUgZGlyZWN0b3J5IHRoZSBleGVjdXRhYmxlIGlzIGluCi0rICBzaGxpYnBhdGhfdmFy PVBBVEgKLSsgIDs7Ci0rCi0rZGFyd2luKiB8IHJoYXBzb2R5KikKLSsgIGR5bmFtaWNfbGlua2Vy PSIkaG9zdF9vcyBkeWxkIgotKyAgdmVyc2lvbl90eXBlPWRhcndpbgotKyAgbmVlZF9saWJfcHJl Zml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJu YW1lfSR7cmVsZWFzZX0ke21ham9yfSRzaGFyZWRfZXh0ICR7bGlibmFtZX0kc2hhcmVkX2V4dCcK LSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7bWFqb3J9JHNoYXJlZF9leHQn Ci0rICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9eWVzCi0rICBzaGxpYnBhdGhfdmFyPURZ TERfTElCUkFSWV9QQVRICi0rICBzaHJleHRfY21kcz0nYHRlc3QgLiRtb2R1bGUgPSAueWVzICYm IGVjaG8gLnNvIHx8IGVjaG8gLmR5bGliYCcKLSsKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjPScvdXNyL2xvY2FsL2xpYiAvbGliIC91c3IvbGliJwotKyAgOzsKLSsKLStkZ3V4KikKLSsg IHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNp b249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJl ZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3Ig JGxpYm5hbWUkc2hhcmVkX2V4dCcKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNl fSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAot KyAgOzsKLSsKLStmcmVlYnNkMSopCi0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLStm cmVlYnNkKiB8IGRyYWdvbmZseSopCi0rICAjIERyYWdvbkZseSBkb2VzIG5vdCBoYXZlIGFvdXQu ICBXaGVuL2lmIHRoZXkgaW1wbGVtZW50IGEgbmV3Ci0rICAjIHZlcnNpb25pbmcgbWVjaGFuaXNt LCBhZGp1c3QgdGhpcy4KLSsgIGlmIHRlc3QgLXggL3Vzci9iaW4vb2JqZm9ybWF0OyB0aGVuCi0r ICAgIG9iamZvcm1hdD1gL3Vzci9iaW4vb2JqZm9ybWF0YAotKyAgZWxzZQotKyAgICBjYXNlICRo b3N0X29zIGluCi0rICAgIGZyZWVic2RbMTIzXSopIG9iamZvcm1hdD1hb3V0IDs7Ci0rICAgICop IG9iamZvcm1hdD1lbGYgOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHZlcnNpb25fdHlwZT1mcmVl YnNkLSRvYmpmb3JtYXQKLSsgIGNhc2UgJHZlcnNpb25fdHlwZSBpbgotKyAgICBmcmVlYnNkLWVs ZiopCi0rICAgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hh cmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGli bmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgICAgbmVlZF92ZXJzaW9uPW5vCi0rICAgICAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICAgICAgOzsKLSsgICAgZnJlZWJzZC0qKQotKyAgICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAk bGlibmFtZSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4JwotKyAgICAgIG5lZWRfdmVyc2lvbj15ZXMK LSsgICAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsg IGNhc2UgJGhvc3Rfb3MgaW4KLSsgIGZyZWVic2QyKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcwotKyAgICA7OwotKyAgZnJlZWJzZDMuWzAxXSogfCBmcmVlYnNkZWxmMy5b MDFdKikKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgICBoYXJkY29k ZV9pbnRvX2xpYnM9eWVzCi0rICAgIDs7Ci0rICBmcmVlYnNkMy5bMi05XSogfCBmcmVlYnNkZWxm My5bMi05XSogfCBcCi0rICBmcmVlYnNkNC5bMC01XSB8IGZyZWVic2RlbGY0LlswLTVdIHwgZnJl ZWJzZDQuMS4xIHwgZnJlZWJzZGVsZjQuMS4xKQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1 bnBhdGg9bm8KLSsgICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICA7OwotKyAgKikgIyBm cm9tIDQuNiBvbiwgYW5kIERyYWdvbkZseQotKyAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBh dGg9eWVzCi0rICAgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMKLSsgICAgOzsKLSsgIGVzYWMKLSsg IDs7Ci0rCi0rZ251KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4 PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0ke21ham9yfSAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgIHNvbmFtZV9z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBzaGxpYnBh dGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsK LSsKLStoYWlrdSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1u bwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgcnVudGlt ZV9sb2FkZXIiCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHtt YWpvcn0gJHtsaWJuYW1lfSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwotKyAgc2hsaWJwYXRoX3Zhcj1MSUJSQVJZ X1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIHN5c19saWJfZGxz ZWFyY2hfcGF0aF9zcGVjPScvYm9vdC9ob21lL2NvbmZpZy9saWIgL2Jvb3QvY29tbW9uL2xpYiAv Ym9vdC9zeXN0ZW0vbGliJwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgOzsKLSsKLSto cHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSsgICMgR2l2ZSBhIHNvbmFtZSBjb3JyZXNwb25k aW5nIHRvIHRoZSBtYWpvciB2ZXJzaW9uIHNvIHRoYXQgZGxkLnNsIHJlZnVzZXMgdG8KLSsgICMg bGluayBhZ2FpbnN0IG90aGVyIHZlcnNpb25zLgotKyAgdmVyc2lvbl90eXBlPXN1bm9zCi0rICBu ZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwotKyAgY2FzZSAkaG9zdF9jcHUg aW4KLSsgIGlhNjQqKQotKyAgICBzaHJleHRfY21kcz0nLnNvJwotKyAgICBoYXJkY29kZV9pbnRv X2xpYnM9eWVzCi0rICAgIGR5bmFtaWNfbGlua2VyPSIkaG9zdF9vcyBkbGQuc28iCi0rICAgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVu cGF0aD15ZXMgIyBVbmxlc3MgK25vZW52dmFyIGlzIHNwZWNpZmllZC4KLSsgICAgbGlicmFyeV9u YW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4 dH0nCi0rICAgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICAgIGlmIHRlc3QgIlgkSFBVWF9JQTY0X01PREUiID0gWDMyOyB0aGVuCi0rICAg ICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4MzIgL3Vzci9sb2NhbC9s aWIvaHB1eDMyIC91c3IvbG9jYWwvbGliIgotKyAgICBlbHNlCi0rICAgICAgc3lzX2xpYl9zZWFy Y2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9ocHV4NjQgL3Vzci9sb2NhbC9saWIvaHB1eDY0IgotKyAg ICBmaQotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjCi0rICAgIDs7Ci0rICBocHBhKjY0KikKLSsgICAgc2hyZXh0X2NtZHM9Jy5zbCcKLSsg ICAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3Mg ZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSCAjIEhvdyBzaG91bGQg d2UgaGFuZGxlIFNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXll cyAjIFVubGVzcyArbm9lbnZ2YXIgaXMgc3BlY2lmaWVkLgotKyAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg ICAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicK LSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYi9wYTIwXzY0IC91c3IvY2Nz L2xpYi9wYTIwXzY0IgotKyAgICBzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0kc3lzX2xpYl9z ZWFyY2hfcGF0aF9zcGVjCi0rICAgIDs7Ci0rICAqKQotKyAgICBzaHJleHRfY21kcz0nLnNsJwot KyAgICBkeW5hbWljX2xpbmtlcj0iJGhvc3Rfb3MgZGxkLnNsIgotKyAgICBzaGxpYnBhdGhfdmFy PVNITElCX1BBVEgKLSsgICAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPW5vICMgK3MgaXMg cmVxdWlyZWQgdG8gZW5hYmxlIFNITElCX1BBVEgKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPSck e2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3Jl bGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNv bmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICAg IDs7Ci0rICBlc2FjCi0rICAjIEhQLVVYIHJ1bnMgKnJlYWxseSogc2xvd2x5IHVubGVzcyBzaGFy ZWQgbGlicmFyaWVzIGFyZSBtb2RlIDU1NSwgLi4uCi0rICBwb3N0aW5zdGFsbF9jbWRzPSdjaG1v ZCA1NTUgJGxpYicKLSsgICMgb3IgZmFpbHMgb3V0cmlnaHQsIHNvIG92ZXJyaWRlIGF0b21pY2Fs bHk6Ci0rICBpbnN0YWxsX292ZXJyaWRlX21vZGU9NTU1Ci0rICA7OwotKwotK2ludGVyaXhbMy05 XSopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVl ZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9 JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JG1ham9yICR7bGlibmFtZX0ke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgIGR5bmFtaWNfbGlua2VyPSdJbnRl cml4IDMueCBsZC5zby4xIChQRSwgbGlrZSBFTEYpJwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJS QVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVf aW50b19saWJzPXllcwotKyAgOzsKLSsKLStpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQot KyAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICBub25zdG9wdXgqKSB2ZXJzaW9uX3R5cGU9bm9uc3Rv cHV4IDs7Ci0rICAgICopCi0rCWlmIHRlc3QgIiRsdF9jdl9wcm9nX2dudV9sZCIgPSB5ZXM7IHRo ZW4KLSsJCXZlcnNpb25fdHlwZT1saW51eAotKwllbHNlCi0rCQl2ZXJzaW9uX3R5cGU9aXJpeAot KwlmaSA7OwotKyAgZXNhYwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249 bm8KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFq b3InCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRf ZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICR7 bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0r ICBjYXNlICRob3N0X29zIGluCi0rICBpcml4NSogfCBub25zdG9wdXgqKQotKyAgICBsaWJzdWZm PSBzaGxpYnN1ZmY9Ci0rICAgIDs7Ci0rICAqKQotKyAgICBjYXNlICRMRCBpbiAjIGxpYnRvb2wu bTQgd2lsbCBhZGQgb25lIG9mIHRoZXNlIHN3aXRjaGVzIHRvIExECi0rICAgICotMzJ8KiItMzIg InwqLW1lbGYzMmJzbWlwfCoiLW1lbGYzMmJzbWlwICIpCi0rICAgICAgbGlic3VmZj0gc2hsaWJz dWZmPSBsaWJtYWdpYz0zMi1iaXQ7OwotKyAgICAqLW4zMnwqIi1uMzIgInwqLW1lbGYzMmJtaXBu MzJ8KiItbWVsZjMyYm1pcG4zMiAiKQotKyAgICAgIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4zMiBs aWJtYWdpYz1OMzI7OwotKyAgICAqLTY0fCoiLTY0ICJ8Ki1tZWxmNjRibWlwfCoiLW1lbGY2NGJt aXAgIikKLSsgICAgICBsaWJzdWZmPTY0IHNobGlic3VmZj02NCBsaWJtYWdpYz02NC1iaXQ7Owot KyAgICAqKSBsaWJzdWZmPSBzaGxpYnN1ZmY9IGxpYm1hZ2ljPW5ldmVyLW1hdGNoOzsKLSsgICAg ZXNhYwotKyAgICA7OwotKyAgZXNhYwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZJHtzaGxp YnN1ZmZ9X1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgc3lzX2xp Yl9zZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xpYiR7bGlic3VmZn0gL2xpYiR7bGlic3VmZn0gL3Vz ci9sb2NhbC9saWIke2xpYnN1ZmZ9IgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii91 c3IvbGliJHtsaWJzdWZmfSAvbGliJHtsaWJzdWZmfSIKLSsgIGhhcmRjb2RlX2ludG9fbGlicz15 ZXMKLSsgIDs7Ci0rCi0rIyBObyBzaGFyZWQgbGliIHN1cHBvcnQgZm9yIExpbnV4IG9sZGxkLCBh b3V0LCBvciBjb2ZmLgotK2xpbnV4Km9sZGxkKiB8IGxpbnV4KmFvdXQqIHwgbGludXgqY29mZiop Ci0rICBkeW5hbWljX2xpbmtlcj1ubwotKyAgOzsKLSsKLSsjIFRoaXMgbXVzdCBiZSBMaW51eCBF TEYuCi0rbGludXgqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQotKyAgdmVyc2lv bl90eXBlPWxpbnV4Ci0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIG5lZWRfdmVyc2lvbj1ubwot KyAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k dmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFt ZSR7c2hhcmVkX2V4dH0nCi0rICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3No YXJlZF9leHR9JG1ham9yJwotKyAgZmluaXNoX2NtZHM9J1BBVEg9IlwkUEFUSDovc2JpbiIgbGRj b25maWcgLW4gJGxpYmRpcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsKLSsgICMgU29tZSBiaW51dGlscyBsZCBh cmUgcGF0Y2hlZCB0byBzZXQgRFRfUlVOUEFUSAotKyAgaWYgJHtsdF9jdl9zaGxpYnBhdGhfb3Zl cnJpZGVzX3J1bnBhdGgrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkg IiA+JjYKLStlbHNlCi0rICBsdF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsg ICAgc2F2ZV9MREZMQUdTPSRMREZMQUdTCi0rICAgIHNhdmVfbGliZGlyPSRsaWJkaXIKLSsgICAg ZXZhbCAibGliZGlyPS9mb287IHdsPVwiJGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYXCI7IFwKLSsJ IExERkxBR1M9XCJcJExERkxBR1MgJGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYXCIiCi0r ICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsgIDsKLSsgIHJldHVy biAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVu IDoKLSsgIGlmICAoJE9CSkRVTVAgLXAgY29uZnRlc3QkYWNfZXhlZXh0KSAyPi9kZXYvbnVsbCB8 IGdyZXAgIlJVTlBBVEguKiRsaWJkaXIiID4vZGV2L251bGw7IHRoZW4gOgotKyAgbHRfY3Zfc2hs aWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPXllcwotK2ZpCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0 ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNv bmZ0ZXN0LiRhY19leHQKLSsgICAgTERGTEFHUz0kc2F2ZV9MREZMQUdTCi0rICAgIGxpYmRpcj0k c2F2ZV9saWJkaXIKLSsKLStmaQotKwotKyAgc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRoPSRs dF9jdl9zaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGgKLSsKLSsgICMgVGhpcyBpbXBsaWVzIG5v IGZhc3RfaW5zdGFsbCwgd2hpY2ggaXMgdW5hY2NlcHRhYmxlLgotKyAgIyBTb21lIHJld29yayB3 aWxsIGJlIG5lZWRlZCB0byBhbGxvdyBmb3IgZmFzdF9pbnN0YWxsCi0rICAjIGJlZm9yZSB0aGlz IGNhbiBiZSBlbmFibGVkLgotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKwotKyAgIyBBZGQg QUJJLXNwZWNpZmljIGRpcmVjdG9yaWVzIHRvIHRoZSBzeXN0ZW0gbGlicmFyeSBwYXRoLgotKyAg c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9Ii9saWI2NCAvdXNyL2xpYjY0IC9saWIgL3Vzci9s aWIiCi0rCi0rICAjIEFwcGVuZCBsZC5zby5jb25mIGNvbnRlbnRzIHRvIHRoZSBzZWFyY2ggcGF0 aAotKyAgaWYgdGVzdCAtZiAvZXRjL2xkLnNvLmNvbmY7IHRoZW4KLSsgICAgbHRfbGRfZXh0cmE9 YGF3ayAnL15pbmNsdWRlIC8geyBzeXN0ZW0oc3ByaW50ZigiY2QgL2V0YzsgY2F0ICVzIDI+L2Rl di9udWxsIiwgXCQyKSk7IHNraXAgPSAxOyB9IHsgaWYgKCFza2lwKSBwcmludCBcJDA7IHNraXAg PSAwOyB9JyA8IC9ldGMvbGQuc28uY29uZiB8ICRTRUQgLWUgJ3MvIy4qLy87L15bCSBdKmh3Y2Fw WwkgXS9kO3MvWzosCV0vIC9nO3MvPVtePV0qJC8vO3MvPVtePSBdKiAvIC9nO3MvIi8vZzsvXiQv ZCcgfCB0ciAnXG4nICcgJ2AKLSsgICAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRzeXNf bGliX2Rsc2VhcmNoX3BhdGhfc3BlYyAkbHRfbGRfZXh0cmEiCi0rCi0rICBmaQotKwotKyAgIyBX ZSB1c2VkIHRvIHRlc3QgZm9yIC9saWIvbGQuc28uMSBhbmQgZGlzYWJsZSBzaGFyZWQgbGlicmFy aWVzIG9uCi0rICAjIHBvd2VycGMsIGJlY2F1c2UgTWtMaW51eCBvbmx5IHN1cHBvcnRlZCBzaGFy ZWQgbGlicmFyaWVzIHdpdGggdGhlCi0rICAjIEdOVSBkeW5hbWljIGxpbmtlci4gIFNpbmNlIHRo aXMgd2FzIGJyb2tlbiB3aXRoIGNyb3NzIGNvbXBpbGVycywKLSsgICMgbW9zdCBwb3dlcnBjLWxp bnV4IGJveGVzIHN1cHBvcnQgZHluYW1pYyBsaW5raW5nIHRoZXNlIGRheXMgYW5kCi0rICAjIHBl b3BsZSBjYW4gYWx3YXlzIC0tZGlzYWJsZS1zaGFyZWQsIHRoZSB0ZXN0IHdhcyByZW1vdmVkLCBh bmQgd2UKLSsgICMgYXNzdW1lIHRoZSBHTlUvTGludXggZHluYW1pYyBsaW5rZXIgaXMgaW4gdXNl LgotKyAgZHluYW1pY19saW5rZXI9J0dOVS9MaW51eCBsZC5zbycKLSsgIDs7Ci0rCi0rbmV0YnNk KikKLSsgIHZlcnNpb25fdHlwZT1zdW5vcwotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVk X3ZlcnNpb249bm8KLSsgIGlmIGVjaG8gX19FTEZfXyB8ICRDQyAtRSAtIHwgJEdSRVAgX19FTEZf XyA+L2Rldi9udWxsOyB0aGVuCi0rICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2 ZXJzdWZmaXgnCi0rICAgIGZpbmlzaF9jbWRzPSdQQVRIPSJcJFBBVEg6L3NiaW4iIGxkY29uZmln IC1tICRsaWJkaXInCi0rICAgIGR5bmFtaWNfbGlua2VyPSdOZXRCU0QgKGEub3V0KSBsZC5zbycK LSsgIGVsc2UKLSsgICAgbGlicmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7 c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRt YWpvciAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fScKLSsgICAgc29uYW1lX3NwZWM9JyR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvcicKLSsgICAgZHluYW1pY19saW5rZXI9J05l dEJTRCBsZC5lbGZfc28nCi0rICBmaQotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgK LSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsgIGhhcmRjb2RlX2ludG9fbGli cz15ZXMKLSsgIDs7Ci0rCi0rbmV3c29zNikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGli cmFyeV9uYW1lc19zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3Vm Zml4ICR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hh cmVkX2V4dH0nCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRo X292ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgOzsKLSsKLSsqbnRvKiB8ICpxbngqKQotKyAgdmVy c2lvbl90eXBlPXFueAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8K LSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9 JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5h bWUke3NoYXJlZF9leHR9JwotKyAgc29uYW1lX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtz aGFyZWRfZXh0fSRtYWpvcicKLSsgIHNobGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBz aGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgIGhhcmRjb2RlX2ludG9fbGlicz15ZXMK LSsgIGR5bmFtaWNfbGlua2VyPSdsZHFueC5zbycKLSsgIDs7Ci0rCi0rb3BlbmJzZCopCi0rICB2 ZXJzaW9uX3R5cGU9c3Vub3MKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVjPSIvdXNyL2xp YiIKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgIyBTb21lIG9sZGVyIHZlcnNpb25zIG9mIE9w ZW5CU0QgKDMuMyBhdCBsZWFzdCkgKmRvKiBuZWVkIHZlcnNpb25lZCBsaWJzLgotKyAgY2FzZSAk aG9zdF9vcyBpbgotKyAgICBvcGVuYnNkMy4zIHwgb3BlbmJzZDMuMy4qKQluZWVkX3ZlcnNpb249 eWVzIDs7Ci0rICAgICopCQkJCW5lZWRfdmVyc2lvbj1ubyAgOzsKLSsgIGVzYWMKLSsgIGxpYnJh cnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZlcnN1ZmZp eCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5pc2hfY21kcz0nUEFU SD0iXCRQQVRIOi9zYmluIiBsZGNvbmZpZyAtbSAkbGliZGlyJwotKyAgc2hsaWJwYXRoX3Zhcj1M RF9MSUJSQVJZX1BBVEgKLSsgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8 ICRHUkVQIF9fRUxGX19gIiB8fCB0ZXN0ICIkaG9zdF9vcy0kaG9zdF9jcHUiID0gIm9wZW5ic2Qy LjgtcG93ZXJwYyI7IHRoZW4KLSsgICAgY2FzZSAkaG9zdF9vcyBpbgotKyAgICAgIG9wZW5ic2Qy Lls4OV0gfCBvcGVuYnNkMi5bODldLiopCi0rCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1u bwotKwk7OwotKyAgICAgICopCi0rCXNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD15ZXMKLSsJ OzsKLSsgICAgICBlc2FjCi0rICBlbHNlCi0rICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMKLSsgIGZpCi0rICA7OwotKwotK29zMiopCi0rICBsaWJuYW1lX3NwZWM9JyRuYW1lJwot KyAgc2hyZXh0X2NtZHM9Ii5kbGwiCi0rICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9ICRsaWJuYW1lLmEnCi0rICBkeW5hbWlj X2xpbmtlcj0nT1MvMiBsZC5leGUnCi0rICBzaGxpYnBhdGhfdmFyPUxJQlBBVEgKLSsgIDs7Ci0r Ci0rb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotKyAgdmVyc2lvbl90eXBlPW9zZgotKyAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsgIHNvbmFtZV9zcGVjPScke2xpYm5h bWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0rICBsaWJyYXJ5X25hbWVzX3NwZWM9 JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1lfSR7 cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsgIHNo bGlicGF0aF92YXI9TERfTElCUkFSWV9QQVRICi0rICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9 Ii91c3Ivc2hsaWIgL3Vzci9jY3MvbGliIC91c3IvbGliL2NtcGxycy9jYyAvdXNyL2xpYiAvdXNy L2xvY2FsL2xpYiAvdmFyL3NobGliIgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRz eXNfbGliX3NlYXJjaF9wYXRoX3NwZWMiCi0rICA7OwotKwotK3Jkb3MqKQotKyAgZHluYW1pY19s aW5rZXI9bm8KLSsgIDs7Ci0rCi0rc29sYXJpcyopCi0rICB2ZXJzaW9uX3R5cGU9bGludXgKLSsg IG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBsaWJyYXJ5X25hbWVz X3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJu YW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScK LSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3In Ci0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292ZXJyaWRl c19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgIyBsZGQgY29tcGxh aW5zIHVubGVzcyBsaWJyYXJpZXMgYXJlIGV4ZWN1dGFibGUKLSsgIHBvc3RpbnN0YWxsX2NtZHM9 J2NobW9kICt4ICRsaWInCi0rICA7OwotKwotK3N1bm9zNCopCi0rICB2ZXJzaW9uX3R5cGU9c3Vu b3MKLSsgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9l eHR9JHZlcnN1ZmZpeCAke2xpYm5hbWV9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXgnCi0rICBmaW5p c2hfY21kcz0nUEFUSD0iXCRQQVRIOi91c3IvZXRjIiBsZGNvbmZpZyAkbGliZGlyJwotKyAgc2hs aWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0 aD15ZXMKLSsgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSB5ZXM7IHRoZW4KLSsgICAgbmVlZF9s aWJfcHJlZml4PW5vCi0rICBmaQotKyAgbmVlZF92ZXJzaW9uPXllcwotKyAgOzsKLSsKLStzeXN2 NCB8IHN5c3Y0LjMqKQotKyAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJzdWZmaXggJHtsaWJuYW1l fSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yICRsaWJuYW1lJHtzaGFyZWRfZXh0fScKLSsg IHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3InCi0r ICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgY2FzZSAkaG9zdF92ZW5kb3IgaW4K LSsgICAgc25pKQotKyAgICAgIHNobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgICAg IG5lZWRfbGliX3ByZWZpeD1ubwotKyAgICAgIHJ1bnBhdGhfdmFyPUxEX1JVTl9QQVRICi0rICAg ICAgOzsKLSsgICAgc2llbWVucykKLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICA7 OwotKyAgICBtb3Rvcm9sYSkKLSsgICAgICBuZWVkX2xpYl9wcmVmaXg9bm8KLSsgICAgICBuZWVk X3ZlcnNpb249bm8KLSsgICAgICBzaGxpYnBhdGhfb3ZlcnJpZGVzX3J1bnBhdGg9bm8KLSsgICAg ICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9Jy9saWIgL3Vzci9saWIgL3Vzci9jY3MvbGliJwot KyAgICAgIDs7Ci0rICBlc2FjCi0rICA7OwotKwotK3N5c3Y0Kk1QKikKLSsgIGlmIHRlc3QgLWQg L3Vzci9uZWMgO3RoZW4KLSsgICAgdmVyc2lvbl90eXBlPWxpbnV4Ci0rICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJGxpYm5hbWUke3NoYXJlZF9leHR9LiR2ZXJzdWZmaXggJGxpYm5hbWUke3NoYXJl ZF9leHR9LiRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0rICAgIHNvbmFtZV9zcGVjPSck bGlibmFtZSR7c2hhcmVkX2V4dH0uJG1ham9yJwotKyAgICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJB UllfUEFUSAotKyAgZmkKLSsgIDs7Ci0rCi0rc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8 IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCi0rICB2ZXJzaW9uX3R5cGU9ZnJl ZWJzZC1lbGYKLSsgIG5lZWRfbGliX3ByZWZpeD1ubwotKyAgbmVlZF92ZXJzaW9uPW5vCi0rICBs aWJyYXJ5X25hbWVzX3NwZWM9JyR7bGlibmFtZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSR2ZXJz dWZmaXggJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9ICRsaWJuYW1lJHtzaGFyZWRf ZXh0fScKLSsgIHNvbmFtZV9zcGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0k bWFqb3InCi0rICBzaGxpYnBhdGhfdmFyPUxEX0xJQlJBUllfUEFUSAotKyAgc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoPXllcwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAgaWYgdGVz dCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotKyAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3Nw ZWM9Jy91c3IvbG9jYWwvbGliIC91c3IvZ251L2xpYiAvdXNyL2Njcy9saWIgL3Vzci9saWIgL2xp YicKLSsgIGVsc2UKLSsgICAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPScvdXNyL2Njcy9saWIg L3Vzci9saWInCi0rICAgIGNhc2UgJGhvc3Rfb3MgaW4KLSsgICAgICBzY28zLjJ2NSopCi0rICAg ICAgICBzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9IiRzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWMg L2xpYiIKLSsJOzsKLSsgICAgZXNhYwotKyAgZmkKLSsgIHN5c19saWJfZGxzZWFyY2hfcGF0aF9z cGVjPScvdXNyL2xpYicKLSsgIDs7Ci0rCi0rdHBmKikKLSsgICMgVFBGIGlzIGEgY3Jvc3MtdGFy Z2V0IG9ubHkuICBQcmVmZXJyZWQgY3Jvc3MtaG9zdCA9IEdOVS9MaW51eC4KLSsgIHZlcnNpb25f dHlwZT1saW51eAotKyAgbmVlZF9saWJfcHJlZml4PW5vCi0rICBuZWVkX3ZlcnNpb249bm8KLSsg IGxpYnJhcnlfbmFtZXNfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JHZl cnN1ZmZpeCAke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kbWFqb3IgJGxpYm5hbWUk e3NoYXJlZF9leHR9JwotKyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIHNobGli cGF0aF9vdmVycmlkZXNfcnVucGF0aD1ubwotKyAgaGFyZGNvZGVfaW50b19saWJzPXllcwotKyAg OzsKLSsKLSt1dHM0KikKLSsgIHZlcnNpb25fdHlwZT1saW51eAotKyAgbGlicmFyeV9uYW1lc19z cGVjPScke2xpYm5hbWV9JHtyZWxlYXNlfSR7c2hhcmVkX2V4dH0kdmVyc3VmZml4ICR7bGlibmFt ZX0ke3JlbGVhc2V9JHtzaGFyZWRfZXh0fSRtYWpvciAkbGlibmFtZSR7c2hhcmVkX2V4dH0nCi0r ICBzb25hbWVfc3BlYz0nJHtsaWJuYW1lfSR7cmVsZWFzZX0ke3NoYXJlZF9leHR9JG1ham9yJwot KyAgc2hsaWJwYXRoX3Zhcj1MRF9MSUJSQVJZX1BBVEgKLSsgIDs7Ci0rCi0rKikKLSsgIGR5bmFt aWNfbGlua2VyPW5vCi0rICA7OwotK2VzYWMKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IHJlc3VsdDogJGR5bmFtaWNfbGlua2VyIiA+JjUKLSskYXNfZWNobyAiJGR5 bmFtaWNfbGlua2VyIiA+JjY7IH0KLSt0ZXN0ICIkZHluYW1pY19saW5rZXIiID0gbm8gJiYgY2Fu X2J1aWxkX3NoYXJlZD1ubwotKwotK3ZhcmlhYmxlc19zYXZlZF9mb3JfcmVsaW5rPSJQQVRIICRz aGxpYnBhdGhfdmFyICRydW5wYXRoX3ZhciIKLStpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgot KyAgdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9IiR2YXJpYWJsZXNfc2F2ZWRfZm9yX3JlbGlu ayBHQ0NfRVhFQ19QUkVGSVggQ09NUElMRVJfUEFUSCBMSUJSQVJZX1BBVEgiCi0rZmkKLSsKLStp ZiB0ZXN0ICIke2x0X2N2X3N5c19saWJfc2VhcmNoX3BhdGhfc3BlYytzZXR9IiA9IHNldDsgdGhl bgotKyAgc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjPSIkbHRfY3Zfc3lzX2xpYl9zZWFyY2hfcGF0 aF9zcGVjIgotK2ZpCi0raWYgdGVzdCAiJHtsdF9jdl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3Bl YytzZXR9IiA9IHNldDsgdGhlbgotKyAgc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9IiRsdF9j dl9zeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyIKLStmaQotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwot KwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKwotKyAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGhvdyB0byBoYXJkY29kZSBsaWJyYXJ5 IHBhdGhzIGludG8gcHJvZ3JhbXMiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGhvdyB0byBo YXJkY29kZSBsaWJyYXJ5IHBhdGhzIGludG8gcHJvZ3JhbXMuLi4gIiA+JjY7IH0KLStoYXJkY29k ZV9hY3Rpb25fQ1hYPQotK2lmIHRlc3QgLW4gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX0NY WCIgfHwKLSsgICB0ZXN0IC1uICIkcnVucGF0aF92YXJfQ1hYIiB8fAotKyAgIHRlc3QgIlgkaGFy ZGNvZGVfYXV0b21hdGljX0NYWCIgPSAiWHllcyIgOyB0aGVuCi0rCi0rICAjIFdlIGNhbiBoYXJk Y29kZSBub24tZXhpc3RlbnQgZGlyZWN0b3JpZXMuCi0rICBpZiB0ZXN0ICIkaGFyZGNvZGVfZGly ZWN0X0NYWCIgIT0gbm8gJiYKLSsgICAgICMgSWYgdGhlIG9ubHkgbWVjaGFuaXNtIHRvIGF2b2lk IGhhcmRjb2RpbmcgaXMgc2hsaWJwYXRoX3Zhciwgd2UKLSsgICAgICMgaGF2ZSB0byByZWxpbmss IG90aGVyd2lzZSB3ZSBtaWdodCBsaW5rIHdpdGggYW4gaW5zdGFsbGVkIGxpYnJhcnkKLSsgICAg ICMgd2hlbiB3ZSBzaG91bGQgYmUgbGlua2luZyB3aXRoIGEgeWV0LXRvLWJlLWluc3RhbGxlZCBv bmUKLSsgICAgICMjIHRlc3QgIiRfTFRfVEFHVkFSKGhhcmRjb2RlX3NobGlicGF0aF92YXIsIENY WCkiICE9IG5vICYmCi0rICAgICB0ZXN0ICIkaGFyZGNvZGVfbWludXNfTF9DWFgiICE9IG5vOyB0 aGVuCi0rICAgICMgTGlua2luZyBhbHdheXMgaGFyZGNvZGVzIHRoZSB0ZW1wb3JhcnkgbGlicmFy eSBkaXJlY3RvcnkuCi0rICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9cmVsaW5rCi0rICBlbHNlCi0r ICAgICMgV2UgY2FuIGxpbmsgd2l0aG91dCBoYXJkY29kaW5nLCBhbmQgd2UgY2FuIGhhcmRjb2Rl IG5vbmV4aXN0aW5nIGRpcnMuCi0rICAgIGhhcmRjb2RlX2FjdGlvbl9DWFg9aW1tZWRpYXRlCi0r ICBmaQotK2Vsc2UKLSsgICMgV2UgY2Fubm90IGhhcmRjb2RlIGFueXRoaW5nLCBvciBlbHNlIHdl IGNhbiBvbmx5IGhhcmRjb2RlIGV4aXN0aW5nCi0rICAjIGRpcmVjdG9yaWVzLgotKyAgaGFyZGNv ZGVfYWN0aW9uX0NYWD11bnN1cHBvcnRlZAotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRoYXJkY29kZV9hY3Rpb25fQ1hYIiA+JjUKLSskYXNf ZWNobyAiJGhhcmRjb2RlX2FjdGlvbl9DWFgiID4mNjsgfQotKwotK2lmIHRlc3QgIiRoYXJkY29k ZV9hY3Rpb25fQ1hYIiA9IHJlbGluayB8fAotKyAgIHRlc3QgIiRpbmhlcml0X3JwYXRoX0NYWCIg PSB5ZXM7IHRoZW4KLSsgICMgRmFzdCBpbnN0YWxsYXRpb24gaXMgbm90IHN1cHBvcnRlZAotKyAg ZW5hYmxlX2Zhc3RfaW5zdGFsbD1ubwotK2VsaWYgdGVzdCAiJHNobGlicGF0aF9vdmVycmlkZXNf cnVucGF0aCIgPSB5ZXMgfHwKLSsgICAgIHRlc3QgIiRlbmFibGVfc2hhcmVkIiA9IG5vOyB0aGVu Ci0rICAjIEZhc3QgaW5zdGFsbGF0aW9uIGlzIG5vdCBuZWNlc3NhcnkKLSsgIGVuYWJsZV9mYXN0 X2luc3RhbGw9bmVlZGxlc3MKLStmaQotKwotKwotKwotKwotKwotKwotKwotKyAgZmkgIyB0ZXN0 IC1uICIkY29tcGlsZXIiCi0rCi0rICBDQz0kbHRfc2F2ZV9DQwotKyAgQ0ZMQUdTPSRsdF9zYXZl X0NGTEFHUwotKyAgTERDWFg9JExECi0rICBMRD0kbHRfc2F2ZV9MRAotKyAgR0NDPSRsdF9zYXZl X0dDQwotKyAgd2l0aF9nbnVfbGQ9JGx0X3NhdmVfd2l0aF9nbnVfbGQKLSsgIGx0X2N2X3BhdGhf TERDWFg9JGx0X2N2X3BhdGhfTEQKLSsgIGx0X2N2X3BhdGhfTEQ9JGx0X3NhdmVfcGF0aF9MRAot KyAgbHRfY3ZfcHJvZ19nbnVfbGRjeHg9JGx0X2N2X3Byb2dfZ251X2xkCi0rICBsdF9jdl9wcm9n X2dudV9sZD0kbHRfc2F2ZV93aXRoX2dudV9sZAotK2ZpICMgdGVzdCAiJF9sdF9jYXVnaHRfQ1hY X2Vycm9yIiAhPSB5ZXMKLSsKLSthY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21w aWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLSsKLSsKLSsKLSsKLSsKLSsK LSsKLSsKLSsKLSsKLSsKLSsgICAgICAgIGFjX2NvbmZpZ19jb21tYW5kcz0iJGFjX2NvbmZpZ19j b21tYW5kcyBsaWJ0b29sIgotKwotKwotKwotKwotKyMgT25seSBleHBhbmQgb25jZToKLSsKLSsK LSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRo ZXIgbG4gLXMgd29ya3MiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgbG4gLXMg d29ya3MuLi4gIiA+JjY7IH0KLStMTl9TPSRhc19sbl9zCi0raWYgdGVzdCAiJExOX1MiID0gImxu IC1zIjsgdGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vLCB1c2luZyAkTE5f UyIgPiY1Ci0rJGFzX2VjaG8gIm5vLCB1c2luZyAkTE5fUyIgPiY2OyB9Ci0rZmkKLSsKLSt7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgJHtN QUtFLW1ha2V9IHNldHMgXCQoTUFLRSkiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRo ZXIgJHtNQUtFLW1ha2V9IHNldHMgXCQoTUFLRSkuLi4gIiA+JjY7IH0KLStzZXQgeCAke01BS0Ut bWFrZX0KLSthY19tYWtlPWAkYXNfZWNobyAiJDIiIHwgc2VkICdzLysvcC9nOyBzL1teYS16QS1a MC05X10vXy9nJ2AKLStpZiBldmFsIFwke2FjX2N2X3Byb2dfbWFrZV8ke2FjX21ha2V9X3NldCs6 fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsg IGNhdCA+Y29uZnRlc3QubWFrZSA8PFxfQUNFT0YKLStTSEVMTCA9IC9iaW4vc2gKLSthbGw6Ci0r CUBlY2hvICdAQEAlJSU9JChNQUtFKT1AQEAlJSUnCi0rX0FDRU9GCi0rIyBHTlUgbWFrZSBzb21l dGltZXMgcHJpbnRzICJtYWtlWzFdOiBFbnRlcmluZyAuLi4iLCB3aGljaCB3b3VsZCBjb25mdXNl IHVzLgotK2Nhc2UgYCR7TUFLRS1tYWtlfSAtZiBjb25mdGVzdC5tYWtlIDI+L2Rldi9udWxsYCBp bgotKyAgKkBAQCUlJT0/Kj1AQEAlJSUqKQotKyAgICBldmFsIGFjX2N2X3Byb2dfbWFrZV8ke2Fj X21ha2V9X3NldD15ZXM7OwotKyAgKikKLSsgICAgZXZhbCBhY19jdl9wcm9nX21ha2VfJHthY19t YWtlfV9zZXQ9bm87OwotK2VzYWMKLStybSAtZiBjb25mdGVzdC5tYWtlCi0rZmkKLStpZiBldmFs IHRlc3QgXCRhY19jdl9wcm9nX21ha2VfJHthY19tYWtlfV9zZXQgPSB5ZXM7IHRoZW4KLSsgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQot KyRhc19lY2hvICJ5ZXMiID4mNjsgfQotKyAgU0VUX01BS0U9Ci0rZWxzZQotKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNo byAibm8iID4mNjsgfQotKyAgU0VUX01BS0U9Ik1BS0U9JHtNQUtFLW1ha2V9IgotK2ZpCi0rCi0r Ci0rIyBDaGVjayBmb3IgZXhjZXB0aW9ucyBzd2l0Y2gKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFi bGUtZXhjZXB0aW9ucyB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHtlbmFibGVfZXhjZXB0aW9ucytz ZXR9IiA9IHNldDsgdGhlbiA6Ci0rICBlbmFibGV2YWw9JGVuYWJsZV9leGNlcHRpb25zOwotKyRh c19lY2hvICIjZGVmaW5lIFNPQ0lfRVhDRVBUSU9OUyAxIiA+PmNvbmZkZWZzLmgKLSsKLStmaQot KwotK3Rlc3QgIngkZW5hYmxlX2V4Y2VwdGlvbnMiICE9IHhubyAmJiBlbmFibGVfZXhjZXB0aW9u cz15ZXMKLSt0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgIT0geG5vICYmIGVuYWJsZV9l eGNlcHRpb25zPXllcwotKwotKyMgQ2hlY2sgZm9yIGluZm8gcGFnZXMKLSsjIENoZWNrIHdoZXRo ZXIgLS1lbmFibGUtaW5mby1kb2Mgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2luZm9f ZG9jK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIGVuYWJsZXZhbD0kZW5hYmxlX2luZm9fZG9jOwot K2ZpCi0rCi0rdGVzdCAieCRlbmFibGVfaW5mb19kb2MiICE9IHhubyAmJiBlbmFibGVfaW5mb19k b2M9eWVzCi0rCi0rCi0rIyBDaGVjayBmb3IgaHRtbC1kb2Mgc3dpdGNoCi0rIyBDaGVjayB3aGV0 aGVyIC0tZW5hYmxlLWh0bWwtZG9jIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9odG1s X2RvYytzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICBlbmFibGV2YWw9JGVuYWJsZV9odG1sX2RvYzsK LStmaQotKwotK3Rlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm8gJiYgZW5hYmxlX2h0bWxf ZG9jPXllcwotKwotKwotKyMgUHJvdmlkZSAtLXdpdGgtZG9jZGlyCi0rCi0rIyBDaGVjayB3aGV0 aGVyIC0td2l0aC1kb2NkaXIgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9kb2NkaXIrc2V0 fSIgPSBzZXQ7IHRoZW4gOgotKyAgd2l0aHZhbD0kd2l0aF9kb2NkaXI7IERPQ19ESVI9IiR3aXRo dmFsIgotK2Vsc2UKLSsgIERPQ19ESVI9IiIKLStmaQotKwotK2lmIHRlc3QgIngkRE9DX0RJUiIg IT0geDsgdGhlbgotKyAgZG9jZGlyPSIkRE9DX0RJUiIKLStlbHNlCi0rICBkb2NkaXI9IiR7ZGF0 YWRpcn0vZG9jLyRQQUNLQUdFLSRWRVJTSU9OIgotK2ZpCi0rCi0rCi0rCi0rIyBDaGVjayBmb3Ig YnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBTT0NJIGl0c2VsZikKLSsjIENoZWNrIHdoZXRoZXIg LS1lbmFibGUtYnVycmllZC1oZWFkZXJzIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke2VuYWJsZV9i dXJyaWVkX2hlYWRlcnMrc2V0fSIgPSBzZXQ7IHRoZW4gOgotKyAgZW5hYmxldmFsPSRlbmFibGVf YnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAg IGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0rICAgICAgZW5hYmxlX2J1cnJp ZWRfaGVhZGVycz15ZXMKLSsgICBmaQotK2Vsc2UKLSsgICBlbmFibGVfYnVycmllZF9oZWFkZXJz PW5vCi0rZmkKLSsKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlv bgotK2VuYWJsZV9idXJyaWVkX2hlYWRlcnM9eWVzCi0rIGlmIHRlc3QgIngkZW5hYmxlX2J1cnJp ZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICBTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUU9Ci0r ICBTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJwotK2Vsc2UKLSsgIFNPQ0lfSEVBREVSU19C VVJJRURfVFJVRT0nIycKLSsgIFNPQ0lfSEVBREVSU19CVVJJRURfRkFMU0U9Ci0rZmkKLSsKLSsK LStpZiB0ZXN0ICJ4JGVuYWJsZV9idXJyaWVkX2hlYWRlcnMiID0geHllczsgdGhlbgotKyAgIENQ UEZMQUdTPSItRFNPQ0lfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rIyBDaGVj ayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBNeVNRTCBjbGllbnQpCi0rIyBDaGVjayB3 aGV0aGVyIC0tZW5hYmxlLW15c3FsLWJ1cnJpZWQtaGVhZGVycyB3YXMgZ2l2ZW4uCi0raWYgdGVz dCAiJHtlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzK3NldH0iID0gc2V0OyB0aGVuIDoKLSsg IGVuYWJsZXZhbD0kZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVyczsgIGlmIHRlc3QgIiRlbmFi bGV2YWwiID0gbm87IHRoZW4KLSsJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz1ubwotKyAg IGVsc2UKLSsJZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaQotK2Vsc2UK LSsgICBlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vCi0rZmkKLSsKLSsjIFRlbXBvcmFy eSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgotK2VuYWJsZV9teXNxbF9idXJyaWVk X2hlYWRlcnM9eWVzCi0rIGlmIHRlc3QgIngkZW5hYmxlX215c3FsX2J1cnJpZWRfaGVhZGVycyIg PSB4eWVzOyB0aGVuCi0rICBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX1RSVUU9Ci0rICBTT0NJ X01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFPScjJwotK2Vsc2UKLSsgIFNPQ0lfTVlTUUxfSEVB REVSU19CVVJJRURfVFJVRT0nIycKLSsgIFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURfRkFMU0U9 Ci0rZmkKLSsKLSsKLStpZiB0ZXN0ICJ4JGVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnMiID0g eHllczsgdGhlbgotKyAgIENQUEZMQUdTPSItRFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgJENQ UEZMQUdTIgotK2ZpCi0rCi0rIyBDaGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBQ b3N0R3JlU1FMIGNsaWVudCkKLSsjIENoZWNrIHdoZXRoZXIgLS1lbmFibGUtcG9zdGdyZXNxbC1i dXJyaWVkLWhlYWRlcnMgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX3Bvc3RncmVzcWxf YnVycmllZF9oZWFkZXJzK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIGVuYWJsZXZhbD0kZW5hYmxl X3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsg dGhlbgotKwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0r CWVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLSsgICBmaQotK2Vsc2UKLSsg ICBlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnM9bm8KLStmaQotKwotKyMgVGVtcG9y YXJ5LCBmb3IgdGhlIFJQTSBwYWNrYWdlcyBnZW5lcmF0aW9uCi0rZW5hYmxlX3Bvc3RncmVzcWxf YnVycmllZF9oZWFkZXJzPXllcwotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJp ZWRfaGVhZGVycyIgPSB4eWVzOyB0aGVuCi0rICBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJ RURfVFJVRT0KLSsgIFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0nIycKLStl bHNlCi0rICBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfVFJVRT0nIycKLSsgIFNPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9GQUxTRT0KLStmaQotKwotKwotK2lmIHRlc3QgIngk ZW5hYmxlX3Bvc3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KLSsgICBDUFBG TEFHUz0iLURTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgotK2ZpCi0r Ci0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQotKyMgQm9vc3QgKFNUTCBFeHRlbnNpb25zOiBodHRwOi8vd3d3LmJvb3N0Lm9yZykK LSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1ib29zdCB3YXMgZ2l2ZW4uCi0raWYg dGVzdCAiJHt3aXRoX2Jvb3N0K3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhf Ym9vc3Q7Ci0rICAgICAgICAgICAgICAgIGlmIHRlc3QgIiR3aXRodmFsIiA9ICJubyI7IHRoZW4K LSsJCSAgICAgICAgICAgIHdhbnRfYm9vc3Q9Im5vIgotKyAgICAgICAgICAgICAgICBlbGlmIHRl c3QgIiR3aXRodmFsIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgICAgICAgICB3YW50X2Jv b3N0PSJ5ZXMiCi0rICAgICAgICAgICAgICAgICAgICBhY19ib29zdF9wYXRoPSIiCi0rICAgICAg ICAgICAgICAgIGVsc2UKLSsJCQkgICAgICAgIHdhbnRfYm9vc3Q9InllcyIKLSsgICAgICAgICAg ICAJCWFjX2Jvb3N0X3BhdGg9IiR3aXRodmFsIgotKwkJICAgICAgICBmaQotKwotK2Vsc2UKLSsg IHdhbnRfYm9vc3Q9InllcyIKLStmaQotKwotKwotKyMgICAgQUNfQ0FOT05JQ0FMX0JVSUxECi0r Qk9PU1RfTURXX1ZFUlNJT049IjEtMzMtMSIKLStCT09TVExJQl9NRFdfVkVSU0lPTj0iMV8zM18x IgotK0JPT1NUX3ZlcnNpb25faGVhZGVyPSJib29zdC92ZXJzaW9uLmhwcCIKLSsKLSsJaWYgdGVz dCAieCR3YW50X2Jvb3N0IiA9ICJ4eWVzIjsgdGhlbgotKwkJYm9vc3RfbGliX3ZlcnNpb25fcmVx PTEuMzMKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuPWBleHByICRib29zdF9saWJf dmVyc2lvbl9yZXEgOiAnXChbMC05XSpcLlswLTldKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9u X3JlcV9tYWpvcj1gZXhwciAkYm9vc3RfbGliX3ZlcnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAot KwkJYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRib29zdF9saWJfdmVyc2lvbl9y ZXEgOiAnWzAtOV0qXC5cKFswLTldKlwpJ2AKLSsJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJf bWlub3I9YGV4cHIgJGJvb3N0X2xpYl92ZXJzaW9uX3JlcSA6ICdbMC05XSpcLlswLTldKlwuXChb MC05XSpcKSdgCi0rCQlpZiB0ZXN0ICJ4JGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3Ii ID0gIngiIDsgdGhlbgotKwkJCWJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zdWJfbWlub3I9IjAiCi0r ICAgIAlmaQotKwkJV0FOVF9CT09TVF9WRVJTSU9OPWBleHByICRib29zdF9saWJfdmVyc2lvbl9y ZXFfbWFqb3IgXCogMTAwMDAwIFwrICAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX21pbm9yIFwqIDEw MCBcKyAkYm9vc3RfbGliX3ZlcnNpb25fcmVxX3N1Yl9taW5vcmAKLSsJCXsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIGJvb3N0bGliID49ICRib29z dF9saWJfdmVyc2lvbl9yZXEiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBib29zdGxp YiA+PSAkYm9vc3RfbGliX3ZlcnNpb25fcmVxLi4uICIgPiY2OyB9Ci0rCQlzdWNjZWVkZWQ9bm8K LSsKLSsJCQkJCQkJCQkJaWYgdGVzdCAtZCAvbGliNjQKLSsJCXRoZW4KLSsJCQlCT09TVF9MSUJE SVJUWVBFPSJsaWI2NCIKLSsJCWVsc2UKLSsJCQlCT09TVF9MSUJESVJUWVBFPSJsaWIiCi0rCQlm aQotKwkJaWYgdGVzdCAiJGFjX2Jvb3N0X3BhdGgiICE9ICIiCi0rCQl0aGVuCi0rCQkJaWYgdGVz dCAiJEJPT1NUX0xJQkRJUlRZUEUiID09ICJsaWI2NCIKLSsJCQl0aGVuCi0rCQkJCWlmIHRlc3Qg LWQgIiRhY19ib29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIiAmJiB0ZXN0IC1yICIkYWNfYm9v c3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJdGhlbgotKwkgICAgICAgICAgICAgICAg Qk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC8kQk9PU1RfTElCRElSVFlQRSIKLSsJCQkJZWxz ZQotKyAgICAgICAgICAgICAgICAgICAgQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aC9saWIi Ci0rCQkJCWZpCi0rCQkJZWxzZQotKwkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoL2xp YiIKLSsJCQlmaQotKwkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aC9pbmNsdWRlIgot KwkJCUJPT1NUX1ZFUlNJT049YGdyZXAgImRlZmluZSBCT09TVF9MSUJfVkVSU0lPTiIgJGFjX2Jv b3N0X3BhdGgvaW5jbHVkZS8ke0JPT1NUX3ZlcnNpb25faGVhZGVyfSB8IGN1dCAtZCcgJyAtZjMg fCBjdXQgLWRcIiAtZjJgCi0rCQllbHNlCi0rCQkJZm9yIGFjX2Jvb3N0X3BhdGhfdG1wIGluIC91 c3IgL3Vzci9sb2NhbCAvb3B0IC9uYXN0b29scy9ib29zdAotKwkJCWRvCi0rCQkJCWlmIHRlc3Qg LWQgIiRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0IiAmJiB0ZXN0IC1yICIkYWNfYm9v c3RfcGF0aF90bXAvaW5jbHVkZS9ib29zdCIKLSsJCQkJdGhlbgotKwkJCQkJQk9PU1RfTElCUz0i LUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NUX0xJQkRJUlRZUEUiCi0rCQkJCQlCT09TVF9DRkxB R1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2luY2x1ZGUiCi0rCQkJCQlCT09TVF9WRVJTSU9OPWBn cmVwICJkZWZpbmUgQk9PU1RfTElCX1ZFUlNJT04iICRhY19ib29zdF9wYXRoX3RtcC9pbmNsdWRl LyR7Qk9PU1RfdmVyc2lvbl9oZWFkZXJ9IHwgY3V0IC1kJyAnIC1mMyB8IGN1dCAtZFwiIC1mMmAK LSsJCQkJCWJyZWFrOwotKwkJCQlmaQotKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aF90 bXAvaW5jbHVkZS9ib29zdC0kQk9PU1RfTURXX1ZFUlNJT04vYm9vc3QiICYmIHRlc3QgLXIgIiRh Y19ib29zdF9wYXRoX3RtcC9pbmNsdWRlL2Jvb3N0LSRCT09TVF9NRFdfVkVSU0lPTi9ib29zdCIK LSsJCQkJdGhlbgotKwkJCQkJQk9PU1RfTElCUz0iLUwkYWNfYm9vc3RfcGF0aF90bXAvJEJPT1NU X0xJQkRJUlRZUEUiCi0rCQkJCQlCT09TVF9DRkxBR1M9Ii1JJGFjX2Jvb3N0X3BhdGhfdG1wL2lu Y2x1ZGUvYm9vc3QtJEJPT1NUX01EV19WRVJTSU9OIgotKwkJCQkJQk9PU1RfVkVSU0lPTj1gZ3Jl cCAiZGVmaW5lIEJPT1NUX0xJQl9WRVJTSU9OIiAkYWNfYm9vc3RfcGF0aF90bXAvaW5jbHVkZS9i b29zdC0kQk9PU1RfTURXX1ZFUlNJT04vJHtCT09TVF92ZXJzaW9uX2hlYWRlcn0gfCBjdXQgLWQn ICcgLWYzIHwgY3V0IC1kXCIgLWYyYAotKwotKwkJCQkJCQkJCQlpZiB0ZXN0IC1kICIkYWNfYm9v c3RfcGF0aF90bXAvbGliIiBcCi0rCQkJCQkmJiB0ZXN0IC1yICIkYWNfYm9vc3RfcGF0aF90bXAv bGliIiBcCi0rCQkJCQkmJiB0ZXN0ICEgLWQgIiRhY19ib29zdF9wYXRoX3RtcC9saWI2NCIKLSsJ CQkJCXRoZW4KLSsJCQkJCQlCT09TVF9MSUJTPSItTCRhY19ib29zdF9wYXRoX3RtcC9saWIiCi0r CQkJCQkJZWNobyAiSGFjazogJEJPT1NUX0xJQlMiCi0rCQkJCQlmaQotKwkJCQkJYnJlYWs7Ci0r CQkJCWZpCi0rCQkJZG9uZQotKwkJZmkKLSsKLSsJCUNQUEZMQUdTX1NBVkVEPSIkQ1BQRkxBR1Mi Ci0rCQlDUFBGTEFHUz0iJENQUEZMQUdTICRCT09TVF9DRkxBR1MiCi0rCQlleHBvcnQgQ1BQRkxB R1MKLSsKLSsJCUxERkxBR1NfU0FWRUQ9IiRMREZMQUdTIgotKwkJTERGTEFHUz0iJExERkxBR1Mg JEJPT1NUX0xJQlMiCi0rCQlleHBvcnQgTERGTEFHUwotKwotKyAgICAgCWNhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0r Ci0rI2luY2x1ZGUgPGJvb3N0L3ZlcnNpb24uaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0r Ci0rI2lmIEJPT1NUX1ZFUlNJT04gPj0gJFdBTlRfQk9PU1RfVkVSU0lPTgotKy8vIEV2ZXJ5dGhp bmcgaXMgb2theQotKyNlbHNlCi0rIyAgZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCi0r I2VuZGlmCi0rCi0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5f Y3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rCi0rICAgICAgICAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2Vj aG8gInllcyIgPiY2OyB9Ci0rCQkgc3VjY2VlZGVkPXllcwotKwkJIGZvdW5kX3N5c3RlbT15ZXMK LSsgICAgICAgICA6Ci0rCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsKLSsJCQkJCQlpZiB0ZXN0ICJ4JHN1Y2NlZWRl ZCIgIT0gInh5ZXMiOyB0aGVuCi0rCQkJX3ZlcnNpb249MAotKwkJCWlmIHRlc3QgIiRhY19ib29z dF9wYXRoIiAhPSAiIjsgdGhlbgotKyAgICAgICAgICAgICAgICBCT09TVF9MSUJTPSItTCRhY19i b29zdF9wYXRoLyRCT09TVF9MSUJESVJUWVBFIgotKwkJCQlpZiB0ZXN0IC1kICIkYWNfYm9vc3Rf cGF0aCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgiOyB0aGVuCi0rCQkJCQlmb3IgaSBpbiBg bHMgLWQgJGFjX2Jvb3N0X3BhdGgvaW5jbHVkZS9ib29zdC0qIDI+L2Rldi9udWxsYDsgZG8KLSsJ CQkJCQlfdmVyc2lvbl90bXA9YGVjaG8gJGkgfCBzZWQgInMjJGFjX2Jvb3N0X3BhdGgjIyIgfCBz ZWQgJ3MvXC9pbmNsdWRlXC9ib29zdC0vLycgfCBzZWQgJ3MvXy8uLydgCi0rCQkJCQkJVl9DSEVD Sz1gZXhwciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVyc2lvbmAKLSsJCQkJCQlpZiB0ZXN0ICIkVl9D SEVDSyIgPSAiMSIgOyB0aGVuCi0rCQkJCQkJCV92ZXJzaW9uPSRfdmVyc2lvbl90bXAKLSsJCQkJ CQlmaQotKwkJCQkJCVZFUlNJT05fVU5ERVJTQ09SRT1gZWNobyAkX3ZlcnNpb24gfCBzZWQgJ3Mv XC4vXy8nYAotKwkJCQkJCUJPT1NUX0NGTEFHUz0iLUkkYWNfYm9vc3RfcGF0aC9pbmNsdWRlL2Jv b3N0LSRWRVJTSU9OX1VOREVSU0NPUkUiCi0rCQkJCQlkb25lCi0rCQkJCWZpCi0rCQkJZWxzZQot KwkJCQlmb3IgYWNfYm9vc3RfcGF0aCBpbiAvdXNyIC91c3IvbG9jYWwgL29wdCA7IGRvCi0rCQkJ CQlpZiB0ZXN0IC1kICIkYWNfYm9vc3RfcGF0aCIgJiYgdGVzdCAtciAiJGFjX2Jvb3N0X3BhdGgi OyB0aGVuCi0rCQkJCQkJZm9yIGkgaW4gYGxzIC1kICRhY19ib29zdF9wYXRoL2luY2x1ZGUvYm9v c3QtKiAyPi9kZXYvbnVsbGA7IGRvCi0rCQkJCQkJCV92ZXJzaW9uX3RtcD1gZWNobyAkaSB8IHNl ZCAicyMkYWNfYm9vc3RfcGF0aCMjIiB8IHNlZCAncy9cL2luY2x1ZGVcL2Jvb3N0LS8vJyB8IHNl ZCAncy9fLy4vJ2AKLSsJCQkJCQkJVl9DSEVDSz1gZXhwciAkX3ZlcnNpb25fdG1wIFw+ICRfdmVy c2lvbmAKLSsJCQkJCQkJaWYgdGVzdCAiJFZfQ0hFQ0siID0gIjEiIDsgdGhlbgotKwkJCQkJCQkJ X3ZlcnNpb249JF92ZXJzaW9uX3RtcAotKwkJCQkJCQkJYmVzdF9wYXRoPSRhY19ib29zdF9wYXRo Ci0rCQkJCQkJCWZpCi0rCQkJCQkJZG9uZQotKwkJCQkJZmkKLSsJCQkJZG9uZQotKwotKwkJCQlW RVJTSU9OX1VOREVSU0NPUkU9YGVjaG8gJF92ZXJzaW9uIHwgc2VkICdzL1wuL18vJ2AKLSsJCQkJ Qk9PU1RfQ0ZMQUdTPSItSSRiZXN0X3BhdGgvaW5jbHVkZS9ib29zdC0kVkVSU0lPTl9VTkRFUlND T1JFIgotKwkJCQlCT09TVF9MSUJTPSItTCRiZXN0X3BhdGgvJEJPT1NUX0xJQkRJUlRZUEUiCi0r Ci0rCSAgICAJCWlmIHRlc3QgIngkQk9PU1RfUk9PVCIgIT0gIngiOyB0aGVuCi0rCQkJCQlpZiB0 ZXN0IC1kICIkQk9PU1RfUk9PVCIgJiYgdGVzdCAtciAiJEJPT1NUX1JPT1QiOyB0aGVuCi0rCQkJ CQkJdmVyc2lvbl9kaXI9YGV4cHIgLy8kQk9PU1RfUk9PVCA6ICcuKi9cKC4qXCknYAotKwkJCQkJ CXN0YWdlX3ZlcnNpb249YGVjaG8gJHZlcnNpb25fZGlyIHwgc2VkICdzL2Jvb3N0Xy8vJyB8IHNl ZCAncy9fLy4vZydgCi0rCQkJCQkJc3RhZ2VfdmVyc2lvbl9zaG9ydGVuPWBleHByICRzdGFnZV92 ZXJzaW9uIDogJ1woWzAtOV0qXC5bMC05XSpcKSdgCi0rCQkJCQkJVl9DSEVDSz1gZXhwciAkc3Rh Z2VfdmVyc2lvbl9zaG9ydGVuIFw+XD0gJF92ZXJzaW9uYAotKwkJCQkJCWlmIHRlc3QgIiRWX0NI RUNLIiA9ICIxIiA7IHRoZW4KLSsJCQkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBXZSB3aWxsIHVzZSBhIHN0YWdlZCBib29zdCBsaWJyYXJ5IGZyb20gJEJPT1NU X1JPT1QiID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdlIHdpbGwgdXNlIGEgc3RhZ2VkIGJvb3N0 IGxpYnJhcnkgZnJvbSAkQk9PU1RfUk9PVCIgPiY2O30KLSsJCQkJCQkJQk9PU1RfQ0ZMQUdTPSIt SSRCT09TVF9ST09UIgotKwkJCQkJCQlCT09TVF9MSUJTPSItTCRCT09TVF9ST09UL3N0YWdlLyRC T09TVF9MSUJESVJUWVBFIgotKwkJCQkJCWZpCi0rCQkJCQlmaQotKwkgICAgCQlmaQotKwkJCWZp Ci0rCi0rCQkJQ1BQRkxBR1M9IiRDUFBGTEFHUyAkQk9PU1RfQ0ZMQUdTIgotKwkJCWV4cG9ydCBD UFBGTEFHUwotKwkJCUxERkxBR1M9IiRMREZMQUdTICRCT09TVF9MSUJTIgotKwkJCWV4cG9ydCBM REZMQUdTCi0rCi0rICAgICAJCWNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRh Y19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rI2luY2x1ZGUgPGJvb3N0L3ZlcnNp b24uaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rI2lmIEJPT1NUX1ZFUlNJT04gPj0g JFdBTlRfQk9PU1RfVkVSU0lPTgotKy8vIEV2ZXJ5dGhpbmcgaXMgb2theQotKyNlbHNlCi0rIyAg ZXJyb3IgQm9vc3QgdmVyc2lvbiBpcyB0b28gb2xkCi0rI2VuZGlmCi0rCi0rCi0rICA7Ci0rICBy ZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5P IjsgdGhlbiA6Ci0rCi0rICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiByZXN1bHQ6IHllcyAoJF92ZXJzaW9uKSIgPiY1Ci0rJGFzX2VjaG8gInllcyAoJF92 ZXJzaW9uKSIgPiY2OyB9Ci0rCQkgc3VjY2VlZGVkPXllcwotKyAgICAgICAgIDoKLSsKLStlbHNl Ci0rCi0rICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6IG5vICgkX3ZlcnNpb24pIiA+JjUKLSskYXNfZWNobyAibm8gKCRfdmVyc2lvbikiID4m NjsgfQotKyAgICAgICAgIDoKLSsKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJZmkKLSsKLSsJCWlmIHRlc3QgIiRz dWNjZWVkZWQiICE9ICJ5ZXMiIDsgdGhlbgotKwkJCWlmIHRlc3QgIiRfdmVyc2lvbiIgPSAiMCIg OyB0aGVuCi0rCQkJCWFzX2ZuX2Vycm9yICQ/ICJXZSBjb3VsZCBub3QgZGV0ZWN0IHRoZSBib29z dCBsaWJyYXJpZXMgKHZlcnNpb24gJGJvb3N0X2xpYl92ZXJzaW9uX3JlcV9zaG9ydGVuIG9yIGhp Z2hlcikuIElmIHlvdSBoYXZlIGEgc3RhZ2VkIGJvb3N0IGxpYnJhcnkgKHN0aWxsIG5vdCBpbnN0 YWxsZWQpIHBsZWFzZSBzcGVjaWZ5IFwkQk9PU1RfUk9PVCBpbiB5b3VyIGVudmlyb25tZW50IGFu ZCBkbyBub3QgZ2l2ZSBhIFBBVEggdG8gLS13aXRoLWJvb3N0IG9wdGlvbi4gIElmIHlvdSBhcmUg c3VyZSB5b3UgaGF2ZSBib29zdCBpbnN0YWxsZWQsIHRoZW4gY2hlY2sgeW91ciB2ZXJzaW9uIG51 bWJlciBsb29raW5nIGluIDxib29zdC92ZXJzaW9uLmhwcD4uIiAiJExJTkVOTyIgNQotKwkJCWVs c2UKLSsJCQkJYXNfZm5fZXJyb3IgJD8gIidZb3VyIGJvb3N0IGxpYnJhcmllcyBzZWVtcyB0byBv bGQgKHZlcnNpb24gJF92ZXJzaW9uKS4gIFdlIG5lZWQgYXQgbGVhc3QgJGJvb3N0X2xpYl92ZXJz aW9uX3Nob3J0ZW4nIiAiJExJTkVOTyIgNQotKwkJCWZpCi0rCQllbHNlCi0rCi0rCi0rCi0rJGFz X2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVCAvKiovIiA+PmNvbmZkZWZzLmgKLSsKLSsKLSsjCi0r IyBCb29zdDo6RmlsZXN5c3RlbQotKyMKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpGaWxlc3lzdGVtIGxpYnJh cnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBC b29zdDo6RmlsZXN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmICR7 YXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSs6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIo Y2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQ UCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNv bmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0 ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUn Ci0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCQkJIGNhdCBj b25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMu aC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L2ZpbGVzeXN0ZW0vcGF0aC5ocHA+Ci0raW50Ci0rbWFp biAoKQotK3sKLSt1c2luZyBuYW1lc3BhY2UgYm9vc3Q6OmZpbGVzeXN0ZW07Ci0rICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoIG15X3BhdGgoICJmb28vYmFyL2RhdGEudHh0 IiApOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICA7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIk TElORU5PIjsgdGhlbiA6Ci0rICBheF9jdl9ib29zdF9maWxlc3lzdGVtPXllcwotK2Vsc2UKLSsg IGF4X2N2X2Jvb3N0X2ZpbGVzeXN0ZW09bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJy IGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3QuJGFjX2V4dAotKwkJIAkJICAgICAgICAJCQlh Y19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hY IC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0n JENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBj b25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9j b21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfZmlsZXN5c3RlbSIgPiY1Ci0rJGFzX2VjaG8g IiRheF9jdl9ib29zdF9maWxlc3lzdGVtIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICIkYXhfY3ZfYm9v c3RfZmlsZXN5c3RlbSIgPSAieWVzIjsgdGhlbgotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVf Qk9PU1RfRklMRVNZU1RFTSAvKiovIiA+PmNvbmZkZWZzLmgKLSsKLSsJCQkJQk49Ym9vc3RfZmls ZXN5c3RlbQotKwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRDQy1t dCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxpYiRC TiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxpYiRC Ti0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1tZ3ct cyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAg ICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3Ry X3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg Zm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFp biBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiBldmFsIFwkeyRhc19hY19MaWIrOn0gZmFs c2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19j aGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQg Y29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZz LmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7 Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElO RU5PIjsgdGhlbiA6Ci0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICBldmFsICIk YXNfYWNfTGliPW5vIgotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFj X29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElC Uz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rZXZhbCBhY19yZXM9XCQkYXNfYWNfTGli Ci0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2lmIGV2YWwgdGVz dCBcInhcJCIkYXNfYWNfTGliIlwiID0geCJ5ZXMiOyB0aGVuIDoKLSsgIEJPT1NUX0ZJTEVTWVNU RU1fTElCPSItbCRheF9saWIiICBsaW5rX2ZpbGVzeXN0ZW09InllcyIgYnJlYWsKLStlbHNlCi0r ICBsaW5rX2ZpbGVzeXN0ZW09Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0 ICJ4JGxpbmtfZmlsZXN5c3RlbSIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIg ISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGli ICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6U3lzdGVtCi0rIwot KyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlN5c3RlbSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OlN5c3RlbSBsaWJyYXJ5 IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmICR7YXhfY3ZfYm9vc3Rfc3lzdGVtKzp9IGZh bHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKyAg ICAgICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2Nv bXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK LSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdT ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0k YWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKyAgICAgICAgICAgIGNhdCBjb25mZGVmcy5oIC0g PDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2lu Y2x1ZGUgPGJvb3N0L3N5c3RlbS9lcnJvcl9jb2RlLmhwcD4KLStpbnQKLSttYWluICgpCi0rewot K3VzaW5nIG5hbWVzcGFjZSBib29zdDo6c3lzdGVtOwotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZXJyb3JfY29kZSBteUVycm9yQ29kZSgpOwotKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FD RU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBheF9j dl9ib29zdF9zeXN0ZW09eWVzCi0rZWxzZQotKyAgYXhfY3ZfYm9vc3Rfc3lzdGVtPW5vCi0rZmkK LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh Y19leHQKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY19leHQ9Y3BwCi0r YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK LSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkYXhfY3ZfYm9vc3Rfc3lzdGVtIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3N5 c3RlbSIgPiY2OyB9Ci0rICAgICAgICAgICAgaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3N5c3RlbSIg PSAieWVzIjsgdGhlbgotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfU1lTVEVNIC8q Ki8iID4+Y29uZmRlZnMuaAotKwotKyAgICAgICAgICAgICAgICAgQk49Ym9vc3Rfc3lzdGVtCi0r ICAgICAgICAgICAgICAgICBmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRD Qy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxp YiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxp YiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1t Z3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rICAg ICAgICAgICAgICAgICAgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRheF9saWIn J19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2VjaG9fbiAi Y2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgZXZhbCBcJHsk YXNfYWNfTGliKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1sJGF4X2xp YiAgJExJQlMiCi0rY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAot Ky8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewotK3JldHVy biBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4 eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0r ZWxzZQotKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3Qu ZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRl c3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2V2YWwgYWNf cmVzPVwkJGFzX2FjX0xpYgotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7 IH0KLStpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6Ci0r ICBCT09TVF9TWVNURU1fTElCPSItbCRheF9saWIiICBsaW5rX3N5c3RlbT0ieWVzIiBicmVhawot K2Vsc2UKLSsgIGxpbmtfc3lzdGVtPSJubyIKLStmaQotKwotKyAgICAgICAgICAgICAgICAgZG9u ZQotKyAgICAgICAgICAgICAgICAgaWYgdGVzdCAieCRsaW5rX3N5c3RlbSIgPSAieG5vIjsgdGhl bgotKyAgICAgICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKyAgICAg ICAgICAgICAgICAgZmkKLSsgICAgICAgICAgICBmaQotKwotKyMKLSsjIEJvb3N0OjpQcm9ncmFt X09wdGlvbnMKLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMg YXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6 UHJvZ3JhbV9PcHRpb25zIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgJHth eF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnMrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9f biAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg YWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251Ci0rCi0rCSAgICAgICAgICAgICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUg PGJvb3N0L3Byb2dyYW1fb3B0aW9ucy5ocHA+Ci0raW50Ci0rbWFpbiAoKQotK3sKLStib29zdDo6 cHJvZ3JhbV9vcHRpb25zOjpvcHRpb25zX2Rlc2NyaXB0aW9uIGdlbmVyaWMoIkdlbmVyaWMgb3B0 aW9ucyIpOwotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7Ci0r ICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxl ICIkTElORU5PIjsgdGhlbiA6Ci0rICBheF9jdl9ib29zdF9wcm9ncmFtX29wdGlvbnM9eWVzCi0r ZWxzZQotKyAgYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRpb25zPW5vCi0rZmkKLStybSAtZiBjb3Jl IGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkg ICAgICAgICAgICAgICBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSth Y19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+ JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBG TEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9n bnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfcHJvZ3JhbV9vcHRp b25zIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPiY2OyB9 Ci0rCQkJaWYgdGVzdCAiJGF4X2N2X2Jvb3N0X3Byb2dyYW1fb3B0aW9ucyIgPSB5ZXM7IHRoZW4K LSsKLSskYXNfZWNobyAiI2RlZmluZSBIQVZFX0JPT1NUX1BST0dSQU1fT1BUSU9OUyAvKiovIiA+ PmNvbmZkZWZzLmgKLSsKLSsJCQkJQk49Ym9vc3RfcHJvZ3JhbV9vcHRpb25zCi0rCQkJCWZvciBh eF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10ICRCTi0kQ0MgXAotKwkJCQkJ JEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJOIFwKLSsJCQkJCWxpYiRCTi0k Q0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJOLSRDQy1zIFwKLSsJCQkJCSRC Ti1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKLSsJCQkJCSRCTi0kQ0Mt bXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2Vj aG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9s aWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAi ID4mNjsgfQotK2lmIGV2YWwgXCR7JGFzX2FjX0xpYis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9 JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30K LStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGV2 YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgIGV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkK LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2 ZV9MSUJTCi0rZmkKLStldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIKLSsJICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSsk YXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0raWYgZXZhbCB0ZXN0IFwieFwkIiRhc19hY19MaWIi XCIgPSB4InllcyI7IHRoZW4gOgotKyAgQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQj0iLWwkYXhf bGliIiAgbGlua19wcm9ncmFtX29wdGlvbnM9InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3By b2dyYW1fb3B0aW9ucz0ibm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngk bGlua19wcm9ncmFtX29wdGlvbnM9Im5vIiIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAk YXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6VGhyZWFk cwotKyMKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNr aW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpUaHJlYWQgbGlicmFyeSBp cyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiAke2F4X2N2X2Jvb3N0X3RocmVhZCs6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkg YWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENY WCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9 JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1Mg Y29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhf Y29tcGlsZXJfZ251Ci0rCi0rCQkJIENYWEZMQUdTX1NBVkU9JENYWEZMQUdTCi0rCi0rCQkJIGlm IHRlc3QgIngkYnVpbGRfb3MiID0gInhzb2xhcmlzIiA7IHRoZW4KLSsgIAkJCQkgQ1hYRkxBR1M9 Ii1wdGhyZWFkcyAkQ1hYRkxBR1MiCi0rCQkJIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1p bmczMiIgOyB0aGVuCi0rCQkJCSBDWFhGTEFHUz0iLW10aHJlYWRzICRDWFhGTEFHUyIKLSsJCQkg ZWxzZQotKwkJCQlDWFhGTEFHUz0iLXB0aHJlYWQgJENYWEZMQUdTIgotKwkJCSBmaQotKwkJCSBj YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZk ZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC90aHJlYWQvdGhyZWFkLmhwcD4KLStpbnQKLStt YWluICgpCi0rewotK2Jvb3N0Ojp0aHJlYWRfZ3JvdXAgdGhyZHM7Ci0rICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGF4 X2N2X2Jvb3N0X3RocmVhZD15ZXMKLStlbHNlCi0rICBheF9jdl9ib29zdF90aHJlYWQ9bm8KLStm aQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRlc3Qu JGFjX2V4dAotKwkJCSBDWFhGTEFHUz0kQ1hYRkxBR1NfU0FWRQotKwkJCSBhY19leHQ9Y3BwCi0r YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK LSsKLSsKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVz dWx0OiAkYXhfY3ZfYm9vc3RfdGhyZWFkIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3Ro cmVhZCIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF90aHJlYWQiID0gInh5ZXMi OyB0aGVuCi0rICAgICAgICAgICAgICAgaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieHNvbGFyaXMi IDsgdGhlbgotKyAJCQkJICBCT09TVF9DRkxBR1M9Ii1wdGhyZWFkcyAkQk9PU1RfQ0ZMQUdTIgot KwkJCSAgIGVsaWYgdGVzdCAieCRidWlsZF9vcyIgPSAieG1pbmczMiIgOyB0aGVuCi0rIAkJCQkg IEJPT1NUX0NGTEFHUz0iLW10aHJlYWRzICRCT09TVF9DRkxBR1MiCi0rCQkJICAgZWxzZQotKwkJ CQkgIEJPT1NUX0NGTEFHUz0iLXB0aHJlYWQgJEJPT1NUX0NGTEFHUyIKLSsJCQkgICBmaQotKwot KwotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfVEhSRUFEIC8qKi8iID4+Y29uZmRl ZnMuaAotKwotKwkJCQlCTj1ib29zdF90aHJlYWQKLSsJCQkJZm9yIGF4X2xpYiBpbiBcCi0rCQkJ CQkkQk4tbXQgJEJOICRCTi0kQ0MtbXQgJEJOLSRDQyBcCi0rCQkJCQkkQk4tJENDLW10LXMgJEJO LSRDQy1zIGxpYiRCTi1tdCBsaWIkQk4gXAotKwkJCQkJbGliJEJOLSRDQy1tdCBsaWIkQk4tJEND IGxpYiRCTi0kQ0MtbXQtcyBsaWIkQk4tJENDLXMgXAotKwkJCQkJJEJOLW1ndy1tdCAkQk4tbWd3 ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAotKwkJCQkJJEJOLSRDQy1tdC0kQk9PU1RMSUJfTURX X1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNfY3ZfbGliXyRh eF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1Ci0rJGFzX2Vj aG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9Ci0raWYgZXZh bCBcJHskYXNfYWNfTGliKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQp ICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwotK0xJQlM9Ii1s JGF4X2xpYiAgJExJQlMiCi0rY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFj X2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWluICgpCi0rewot K3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFj X2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotKyAgZXZhbCAiJGFzX2FjX0xpYj15 ZXMiCi0rZWxzZQotKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotK3JtIC1mIGNvcmUgY29u ZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQg Y29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2V2 YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVz IiA+JjY7IH0KLStpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhl biA6Ci0rICBCT09TVF9USFJFQURfTElCPSItbCRheF9saWIiICBsaW5rX3RocmVhZD0ieWVzIiBi cmVhawotK2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStmaQotKwotKyAgCQkJCWRvbmUKLSsJ CQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRh eF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAk YXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6SU9TdHJl YW1zCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hl Y2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OklPU3RyZWFtcyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIg PiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OklPU3RyZWFtcyBs aWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lmICR7YXhfY3ZfYm9vc3RfaW9zdHJl YW1zKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxz ZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19j b21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUn Ci0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFH UyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9 JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VP RiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8 Ym9vc3QvaW9zdHJlYW1zL2ZpbHRlcmluZ19zdHJlYW0uaHBwPgotKwkgICAjaW5jbHVkZSA8Ym9v c3QvcmFuZ2UvaXRlcmF0b3JfcmFuZ2UuaHBwPgotK2ludAotK21haW4gKCkKLSt7Ci0rc3RkOjpz dHJpbmcgIGlucHV0ID0gIkhlbGxvIFdvcmxkISI7Ci0rCSAgIG5hbWVzcGFjZSBpbyA9IGJvb3N0 Ojppb3N0cmVhbXM7Ci0rCSAgIGlvOjpmaWx0ZXJpbmdfaXN0cmVhbSBpbiAoYm9vc3Q6Om1ha2Vf aXRlcmF0b3JfcmFuZ2UoaW5wdXQpKTsKLSsJICAgcmV0dXJuIDA7Ci0rCi0rICA7Ci0rICByZXR1 cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsg dGhlbiA6Ci0rICBheF9jdl9ib29zdF9pb3N0cmVhbXM9eWVzCi0rZWxzZQotKyAgYXhfY3ZfYm9v c3RfaW9zdHJlYW1zPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENY WENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdT IGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhl ZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+ JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkK LSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2 X2Jvb3N0X2lvc3RyZWFtcyIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9pb3N0cmVhbXMi ID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfaW9zdHJlYW1zIiA9ICJ4eWVzIjsg dGhlbgotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfSU9TVFJFQU1TIC8qKi8iID4+ Y29uZmRlZnMuaAotKwotKwkJCQlCTj1ib29zdF9pb3N0cmVhbXMKLSsJCQkJZm9yIGF4X2xpYiBp biBcCi0rCQkJCQkkQk4tbXQgJEJOICRCTi0kQ0MtbXQgJEJOLSRDQyBcCi0rCQkJCQkkQk4tJEND LW10LXMgJEJOLSRDQy1zIGxpYiRCTi1tdCBsaWIkQk4gXAotKwkJCQkJbGliJEJOLSRDQy1tdCBs aWIkQk4tJENDIGxpYiRCTi0kQ0MtbXQtcyBsaWIkQk4tJENDLXMgXAotKwkJCQkJJEJOLW1ndy1t dCAkQk4tbWd3ICRCTi1tZ3ctbXQtcyAkQk4tbWd3LXMgXAotKwkJCQkJJEJOLSRDQy1tdC0kQk9P U1RMSUJfTURXX1ZFUlNJT04gOyBkbwotKwkJCQkgICAgYXNfYWNfTGliPWAkYXNfZWNobyAiYWNf Y3ZfbGliXyRheF9saWInJ19tYWluIiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYiIgPiY1 Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwkYXhfbGliLi4uICIgPiY2OyB9 Ci0raWYgZXZhbCBcJHskYXNfYWNfTGliKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24g IihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgYWNfY2hlY2tfbGliX3NhdmVfTElCUz0kTElCUwot K0xJQlM9Ii1sJGF4X2xpYiAgJExJQlMiCi0rY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29u ZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsKLSsKLStpbnQKLSttYWlu ICgpCi0rewotK3JldHVybiBtYWluICgpOwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VP RgotK2lmIGFjX2ZuX2N4eF90cnlfbGluayAiJExJTkVOTyI7IHRoZW4gOgotKyAgZXZhbCAiJGFz X2FjX0xpYj15ZXMiCi0rZWxzZQotKyAgZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotK3JtIC1m IGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRh Y19leGVleHQgY29uZnRlc3QuJGFjX2V4dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMK LStmaQotK2V2YWwgYWNfcmVzPVwkJGFzX2FjX0xpYgotKwkgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hv ICIkYWNfcmVzIiA+JjY7IH0KLStpZiBldmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9IHgi eWVzIjsgdGhlbiA6Ci0rICBCT09TVF9JT1NUUkVBTVNfTElCPSItbCRheF9saWIiICBsaW5rX3Ro cmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIKLStmaQotKwotKyAg CQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5vIjsgdGhlbgotKwkJ CQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGlu ayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxp bmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBC b29zdDo6U2VyaWFsaXphdGlvbgotKyMKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpTZXJpYWxpemF0aW9uIGxp YnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRo ZSBCb29zdDo6U2VyaWFsaXphdGlvbiBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQot K2lmICR7YXhfY3ZfYm9vc3Rfc2VyaWFsaXphdGlvbis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2Nw cD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3Qk YWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0r CQkJIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQg Y29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGZzdHJlYW0+Ci0rCSNpbmNsdWRlIDxib29zdC9h cmNoaXZlL3RleHRfb2FyY2hpdmUuaHBwPgotKyAgICAgICAgI2luY2x1ZGUgPGJvb3N0L2FyY2hp dmUvdGV4dF9pYXJjaGl2ZS5ocHA+Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStzdGQ6Om9mc3Ry ZWFtIG9mcygiZmlsZW5hbWUiKTsKLSsJYm9vc3Q6OmFyY2hpdmU6OnRleHRfb2FyY2hpdmUgb2Eo b2ZzKTsKLSsJcmV0dXJuIDA7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0r aWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBheF9jdl9ib29z dF9zZXJpYWxpemF0aW9uPXllcwotK2Vsc2UKLSsgIGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb249 bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29u ZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFH UycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFj X2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdT ICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21w aWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3Rfc2VyaWFs aXphdGlvbiIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9zZXJpYWxpemF0aW9uIiA+JjY7 IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3NlcmlhbGl6YXRpb24iID0gInh5ZXMiOyB0 aGVuCi0rCi0rJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9CT09TVF9TRVJJQUxJWkFUSU9OIC8qKi8i ID4+Y29uZmRlZnMuaAotKwotKwkJCQlCTj1ib29zdF9zZXJpYWxpemF0aW9uCi0rCQkJCWZvciBh eF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10ICRCTi0kQ0MgXAotKwkJCQkJ JEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJOIFwKLSsJCQkJCWxpYiRCTi0k Q0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJOLSRDQy1zIFwKLSsJCQkJCSRC Ti1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKLSsJCQkJCSRCTi0kQ0Mt bXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2Vj aG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9s aWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAi ID4mNjsgfQotK2lmIGV2YWwgXCR7JGFzX2FjX0xpYis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9 JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30K LStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGV2 YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgIGV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkK LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2 ZV9MSUJTCi0rZmkKLStldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIKLSsJICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSsk YXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0raWYgZXZhbCB0ZXN0IFwieFwkIiRhc19hY19MaWIi XCIgPSB4InllcyI7IHRoZW4gOgotKyAgQk9PU1RfU0VSSUFMSVpBVElPTl9MSUI9Ii1sJGF4X2xp YiIgIGxpbmtfdGhyZWFkPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlua190aHJlYWQ9Im5vIgot K2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlCTj1ib29zdF93c2VyaWFsaXphdGlvbgotKwkJCQlm b3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJENDIFwKLSsJ CQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJCQlsaWIk Qk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBcCi0rCQkJ CQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJCQkkQk4t JENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19MaWI9YCRh c19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4gaW4gLWwk YXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIu Li4gIiA+JjY7IH0KLStpZiBldmFsIFwkeyRhc19hY19MaWIrOn0gZmFsc2U7IHRoZW4gOgotKyAg JGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9M SUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgY29uZmRlZnMuaCAtIDw8 X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKwotKwot K2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1cm4gMDsK LSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsgdGhlbiA6Ci0r ICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICBldmFsICIkYXNfYWNfTGliPW5vIgot K2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBcCi0rICAg IGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hlY2tfbGli X3NhdmVfTElCUwotK2ZpCi0rZXZhbCBhY19yZXM9XCQkYXNfYWNfTGliCi0rCSAgICAgICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3JlcyIgPiY1 Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2lmIGV2YWwgdGVzdCBcInhcJCIkYXNfYWNf TGliIlwiID0geCJ5ZXMiOyB0aGVuIDoKLSsgIEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQj0iLWwk YXhfbGliIiAgbGlua190aHJlYWQ9InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX3RocmVhZD0i bm8iCi0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua190aHJlYWQiID0g InhubyI7IHRoZW4KLSsJCQkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5P fTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNQotKyRhc19lY2hvICIkYXNf bWU6IENvdWxkIG5vdCBsaW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjY7fQotKwkJCQlmaQotKwkJ CWZpCi0rCi0rIwotKyMgQm9vc3Q6OlNpZ25hbHMKLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFzX21l OiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6U2lnbmFs cyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hldGhl ciB0aGUgQm9vc3Q6OlNpZ25hbHMgbGlicmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStp ZiAke2F4X2N2X2Jvb3N0X3NpZ25hbHMrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhD UFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBj b25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4 dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1 JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJCSBjYXQg Y29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZz LmguICAqLwotKyNpbmNsdWRlIDxib29zdC9zaWduYWwuaHBwPgotKwotK2ludAotK21haW4gKCkK LSt7Ci0rYm9vc3Q6OnNpZ25hbDx2b2lkICgpPiBzaWc7Ci0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAwOwotKwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19B Q0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVOTyI7IHRoZW4gOgotKyAgYXhf Y3ZfYm9vc3Rfc2lnbmFscz15ZXMKLStlbHNlCi0rICBheF9jdl9ib29zdF9zaWduYWxzPW5vCi0r ZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0 LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0r YWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg PiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQ RkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJf Z251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3NpZ25hbHMiID4m NQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3Rfc2lnbmFscyIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAi eCRheF9jdl9ib29zdF9zaWduYWxzIiA9ICJ4eWVzIjsgdGhlbgotKwotKyRhc19lY2hvICIjZGVm aW5lIEhBVkVfQk9PU1RfU0lHTkFMUyAvKiovIiA+PmNvbmZkZWZzLmgKLSsKLSsJCQkJQk49Ym9v c3Rfc2lnbmFscwotKwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRD Qy1tdCAkQk4tJENDIFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxp YiRCTiBcCi0rCQkJCQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxp YiRCTi0kQ0MtcyBcCi0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1t Z3ctcyBcCi0rCQkJCQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJ CSAgICBhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFz X3RyX3NoYAotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tp bmcgZm9yIG1haW4gaW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3Ig bWFpbiBpbiAtbCRheF9saWIuLi4gIiA+JjY7IH0KLStpZiBldmFsIFwkeyRhc19hY19MaWIrOn0g ZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBh Y19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStj YXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZk ZWZzLmguICAqLwotKwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0r ICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9saW5rICIk TElORU5PIjsgdGhlbiA6Ci0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICBldmFs ICIkYXNfYWNfTGliPW5vIgotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3Qu JGFjX29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0r TElCUz0kYWNfY2hlY2tfbGliX3NhdmVfTElCUwotK2ZpCi0rZXZhbCBhY19yZXM9XCQkYXNfYWNf TGliCi0rCSAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJl c3VsdDogJGFjX3JlcyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2lmIGV2YWwg dGVzdCBcInhcJCIkYXNfYWNfTGliIlwiID0geCJ5ZXMiOyB0aGVuIDoKLSsgIEJPT1NUX1NJR05B TFNfTElCPSItbCRheF9saWIiICBsaW5rX3NpZ25hbHM9InllcyIgYnJlYWsKLStlbHNlCi0rICBs aW5rX3NpZ25hbHM9Im5vIgotK2ZpCi0rCi0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxp bmtfc2lnbmFscyIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9 Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6RGF0ZV9UaW1lCi0rIwotKwkJCXsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0 aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9f biAiY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkRhdGVfVGltZSBsaWJyYXJ5IGlzIGF2YWls YWJsZS4uLiAiID4mNjsgfQotK2lmICR7YXhfY3ZfYm9vc3RfZGF0ZV90aW1lKzp9IGZhbHNlOyB0 aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19l eHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1j ICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENY WCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w aWxlcl9nbnUKLSsKLSsJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFj X2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9vc3QvZGF0ZV90aW1l L2dyZWdvcmlhbi9ncmVnb3JpYW5fdHlwZXMuaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0r dXNpbmcgbmFtZXNwYWNlIGJvb3N0OjpncmVnb3JpYW47IGRhdGUgZCgyMDAyLEphbiwxMCk7Ci0r ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKwotKyAgOwot KyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJ TkVOTyI7IHRoZW4gOgotKyAgYXhfY3ZfYm9vc3RfZGF0ZV90aW1lPXllcwotK2Vsc2UKLSsgIGF4 X2N2X2Jvb3N0X2RhdGVfdGltZT1ubwotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29u ZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rCQkJIGFjX2V4dD1jcHAKLSthY19j cHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRD UFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0 JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQg JExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwot KwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRheF9jdl9ib29zdF9kYXRlX3RpbWUiID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfZGF0 ZV90aW1lIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X2RhdGVfdGltZSIgPSAi eHllcyI7IHRoZW4KLSsKLSskYXNfZWNobyAiI2RlZmluZSBIQVZFX0JPT1NUX0RBVEVfVElNRSAv KiovIiA+PmNvbmZkZWZzLmgKLSsKLSsJCQkJQk49Ym9vc3RfZGF0ZV90aW1lCi0rCQkJCWZvciBh eF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10ICRCTi0kQ0MgXAotKwkJCQkJ JEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJOIFwKLSsJCQkJCWxpYiRCTi0k Q0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJOLSRDQy1zIFwKLSsJCQkJCSRC Ti1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKLSsJCQkJCSRCTi0kQ0Mt bXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2Vj aG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9s aWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAi ID4mNjsgfQotK2lmIGV2YWwgXCR7JGFzX2FjX0xpYis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNf ZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9 JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNF T0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50 Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30K LStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGV2 YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgIGV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkK LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29u ZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2 ZV9MSUJTCi0rZmkKLStldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIKLSsJICAgICAgIHsgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSsk YXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0raWYgZXZhbCB0ZXN0IFwieFwkIiRhc19hY19MaWIi XCIgPSB4InllcyI7IHRoZW4gOgotKyAgQk9PU1RfREFURV9USU1FX0xJQj0iLWwkYXhfbGliIiAg bGlua19kYXRlX3RpbWU9InllcyIgYnJlYWsKLStlbHNlCi0rICBsaW5rX2RhdGVfdGltZT0ibm8i Ci0rZmkKLSsKLSsgIAkJCQlkb25lCi0rCQkJCWlmIHRlc3QgIngkbGlua19kYXRlX3RpbWUiPSJu byIgPSAieG5vIjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8g IiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZp Ci0rCQkJZmkKLSsKLSsjCi0rIyBCb29zdDo6UmVnZXgKLSsjCi0rCQkJeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6UmVn ZXggbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRo ZXIgdGhlIEJvb3N0OjpSZWdleCBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lm ICR7YXhfY3ZfYm9vc3RfcmVnZXgrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAg JENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25m dGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAk Q1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1Jwot K2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJCSBjYXQgY29u ZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmgu ICAqLwotKyNpbmNsdWRlIDxib29zdC9yZWdleC5ocHA+Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sK LStib29zdDo6cmVnZXggcigpOyByZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStf QUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGF4 X2N2X2Jvb3N0X3JlZ2V4PXllcwotK2Vsc2UKLSsgIGF4X2N2X2Jvb3N0X3JlZ2V4PW5vCi0rZmkK LStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRh Y19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNf Y29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1 JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxB R1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251 PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3JlZ2V4IiA+JjUKLSsk YXNfZWNobyAiJGF4X2N2X2Jvb3N0X3JlZ2V4IiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2 X2Jvb3N0X3JlZ2V4IiA9ICJ4eWVzIjsgdGhlbgotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVf Qk9PU1RfUkVHRVggLyoqLyIgPj5jb25mZGVmcy5oCi0rCi0rCQkJCUJOPWJvb3N0X3JlZ2V4Ci0r CQkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10ICRCTi0kQ0Mg XAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJOIFwKLSsJCQkJ CWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJOLSRDQy1zIFwK LSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKLSsJCQkJ CSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xp Yj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGliJydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBp biAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4 X2xpYi4uLiAiID4mNjsgfQotK2lmIGV2YWwgXCR7JGFzX2FjX0xpYis6fSBmYWxzZTsgdGhlbiA6 Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9z YXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9saWIgICRMSUJTIgotK2NhdCBjb25mZGVmcy5o IC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0r Ci0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVy biAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVu IDoKLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgotK2Vsc2UKLSsgIGV2YWwgIiRhc19hY19MaWI9 bm8iCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwK LSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVj a19saWJfc2F2ZV9MSUJTCi0rZmkKLStldmFsIGFjX3Jlcz1cJCRhc19hY19MaWIKLSsJICAgICAg IHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVz IiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2OyB9Ci0raWYgZXZhbCB0ZXN0IFwieFwkIiRh c19hY19MaWIiXCIgPSB4InllcyI7IHRoZW4gOgotKyAgQk9PU1RfUkVHRVhfTElCPSItbCRheF9s aWIiICBsaW5rX3RocmVhZD0ieWVzIiBicmVhawotK2Vsc2UKLSsgIGxpbmtfdGhyZWFkPSJubyIK LStmaQotKwotKyAgCQkJCWRvbmUKLSsJCQkJaWYgdGVzdCAieCRsaW5rX3RocmVhZCIgPSAieG5v IjsgdGhlbgotKwkJCQkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBD b3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTog Q291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4mNjt9Ci0rCQkJCWZpCi0rCQkJZmkK LSsKLSsjCi0rIyBCb29zdDo6QVNJTzogaXQgbmVlZHMgQm9vc3QuU3lzdGVtLCBCb29zdC5SZWdl eCwgQm9vc3QuVGhyZWFkIGFuZAotKyMgQm9vc3QuRGF0ZVRpbWUsIGJ1dCBkb2VzIG5vdCBwcm9k dWNlIGFueSAob3RoZXIpIGxpYnJhcnkuCi0rIwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6OkFzaW8gbGlicmFy eSBpcyBhdmFpbGFibGUiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJv b3N0OjpBc2lvIGxpYnJhcnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgJHtheF9jdl9i b29zdF9hc2lvKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2 Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycK LSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4 dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRD UFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxl cl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0IGNvbmZkZWZzLmggLSA8 PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5j bHVkZSA8Ym9vc3QvYXNpby5ocHA+Ci0raW50Ci0rbWFpbiAoKQotK3sKLStib29zdDo6YXNpbzo6 aW9fc2VydmljZSBpbzsKLSsJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vc3Q6 OnN5c3RlbTo6ZXJyb3JfY29kZSB0aW1lcl9yZXN1bHQ7Ci0rCSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGJvb3N0Ojphc2lvOjpkZWFkbGluZV90aW1lciB0KGlvKTsKLSsJICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgdC5jYW5jZWwoKTsKLSsJICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaW8ucnVuX29uZSgpOwotKwkgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gMDsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YK LStpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGF4X2N2X2Jv b3N0X2FzaW89eWVzCi0rZWxzZQotKyAgYXhfY3ZfYm9vc3RfYXNpbz1ubwotK2ZpCi0rcm0gLWYg Y29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0r CQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9 JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19s aW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZM QUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3Zf Y3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9ib29zdF9hc2lvIiA+JjUKLSskYXNfZWNobyAi JGF4X2N2X2Jvb3N0X2FzaW8iID4mNjsgfQotKwkJCWlmIHRlc3QgIngkYXhfY3ZfYm9vc3RfYXNp byIgPSAieHllcyI7IHRoZW4KLSsKLSskYXNfZWNobyAiI2RlZmluZSBIQVZFX0JPT1NUX0FTSU8g LyoqLyIgPj5jb25mZGVmcy5oCi0rCi0rCQkJICAgQk9PU1RfQVNJT19MSUI9IiR7Qk9PU1RfU1lT VEVNX0xJQn0gJHtCT09TVF9USFJFQURfTElCfSIKLSsJCQkgICBCT09TVF9BU0lPX0xJQj0iJHtC T09TVF9BU0lPX0xJQn0gJHtCT09TVF9EQVRFX1RJTUVfTElCfSIKLSsJCQkgICBCT09TVF9BU0lP X0xJQj0iJHtCT09TVF9BU0lPX0xJQn0gJHtCT09TVF9SRUdFWF9MSUJ9IgotKwkJCSAgIEJPT1NU X0FTSU9fTElCPSIke0JPT1NUX0FTSU9fTElCfSAke0JPT1NUX1NFUklBTElaQVRJT05fTElCfSIK LSsKLSsJCQlmaQotKwotKyMKLSsjIFN1cHBvcnQgZm9yIFB5dGhvbiBhbmQgTVBJIChNUElDSDIs IEJvb3N0OjpNUEksIEJvb3N0OjpQeXRob24sCi0rIyBCb29zdDo6U2VyaWFsaXphdGlvbiwgQm9v c3Q6Ok1QSV9QeXRob24pCi0rIyBOb3RlOiBvbiBzb21lIGRpc3RyaWJ1dGlvbnMgKGUuZy4sIERl YmlhbiksIEJvb3N0Lk1QSSB1c2VzIE9wZW5NUEkgcmF0aGVyCi0rIyAgICAgICB0aGFuIE1QSUNI MgotKyMKLSsJCQlDUFBGTEFHU19PUklHPSIke0NQUEZMQUdTfSIKLSsJCQlDUFBGTEFHUz0iJHtD UFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01QSUdFTl9DRkxBR1N9IgotKyMJCQlDUFBGTEFH Uz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke01QSUNIMl9DRkxBR1N9IgotKyMJCQlD UFBGTEFHUz0iJHtDUFBGTEFHU30gJHtQWVRIT05fQ0ZMQUdTfSAke09QRU5NUElfQ0ZMQUdTfSIK LSsJCQlMREZMQUdTX09SSUc9IiR7TERGTEFHU30iCi0rCQkJTERGTEFHUz0iJHtMREZMQUdTfSAk e1BZVEhPTl9MSUJTfSAke1BZVEhPTl9BRERfTElCU30gJHtNUElHRU5fTElCU30iCi0rIwkJCUxE RkxBR1M9IiR7TERGTEFHU30gJHtQWVRIT05fTElCU30gJHtQWVRIT05fQUREX0xJQlN9ICR7TVBJ Q0gyX0xJQlN9IgotKyMJCQlMREZMQUdTPSIke0xERkxBR1N9ICR7UFlUSE9OX0xJQlN9ICR7UFlU SE9OX0FERF9MSUJTfSAke09QRU5NUElfTElCU30iCi0rCi0rIwotKyMgQm9vc3Q6OlB5dGhvbgot KyMKLSsJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5n IHdoZXRoZXIgdGhlIEJvb3N0OjpQeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQotKyRh c19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpQeXRob24gbGlicmFyeSBpcyBh dmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiAke2F4X2N2X2Jvb3N0X3B5dGhvbis6fSBmYWxzZTsg dGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsKLSsJCQlhY19l eHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1j ICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENY WCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w aWxlcl9nbnUKLSsKLSsKLSsJCSAgICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz dC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxib29zdC9weXRo b24uaHBwPgotKwkJCWNoYXIgY29uc3QqIGdyZWV0KCkgeyByZXR1cm4gImhlbGxvIjsgfQotKwkJ CUJPT1NUX1BZVEhPTl9NT0RVTEUoaGVsbG9fZXh0KSB7IGJvb3N0OjpweXRob246OmRlZigiZ3Jl ZXQiLCBncmVldCk7fQotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4g MDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhl biA6Ci0rICBheF9jdl9ib29zdF9weXRob249eWVzCi0rZWxzZQotKyAgYXhfY3ZfYm9vc3RfcHl0 aG9uPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0 IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQ RkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhG TEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNf Y29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rCi0rZmkKLSt7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGF4X2N2X2Jvb3N0X3B5 dGhvbiIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF9weXRob24iID4mNjsgfQotKwotKwkJ CUJPT1NUX1BZVEhPTl9MSUI9Ii1sYm9vc3RfcHl0aG9uICR7UFlUSE9OX0xJQlN9ICR7UFlUSE9O X0FERF9MSUJTfSIKLSsKLSsKLSsjCi0rIyBCb29zdDo6TVBJCi0rIwotKwkJCXsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUgQm9vc3Q6 Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgd2hl dGhlciB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJsZS4uLiAiID4mNjsgfQotK2lm ICR7YXhfY3ZfYm9vc3RfbXBpKzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNo ZWQpICIgPiY2Ci0rZWxzZQotKwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRD UFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSth Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsjaW5jbHVkZSA8Ym9vc3QvbXBpLmhwcD4KLStpbnQKLSttYWluICgpCi0rewotKwotKwkg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKLSsKLSsgIDsKLSsgIHJl dHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8i OyB0aGVuIDoKLSsgIGF4X2N2X2Jvb3N0X21waT15ZXMKLStlbHNlCi0rICBheF9jdl9ib29zdF9t cGk9bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpleHQg Y29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBG TEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3Qu JGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZM QUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19j b21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFzX2Vj aG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3RfbXBp IiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X21waSIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAi eCRheF9jdl9ib29zdF9tcGkiID0gInh5ZXMiOyB0aGVuCi0rCi0rJGFzX2VjaG8gIiNkZWZpbmUg SEFWRV9CT09TVF9NUEkgLyoqLyIgPj5jb25mZGVmcy5oCi0rCi0rCQkJCUJOPWJvb3N0X21waQot KwkJCQlmb3IgYXhfbGliIGluIFwKLSsJCQkJCSRCTi1tdCAkQk4gJEJOLSRDQy1tdCAkQk4tJEND IFwKLSsJCQkJCSRCTi0kQ0MtbXQtcyAkQk4tJENDLXMgbGliJEJOLW10IGxpYiRCTiBcCi0rCQkJ CQlsaWIkQk4tJENDLW10IGxpYiRCTi0kQ0MgbGliJEJOLSRDQy1tdC1zIGxpYiRCTi0kQ0MtcyBc Ci0rCQkJCQkkQk4tbWd3LW10ICRCTi1tZ3cgJEJOLW1ndy1tdC1zICRCTi1tZ3ctcyBcCi0rCQkJ CQkkQk4tJENDLW10LSRCT09TVExJQl9NRFdfVkVSU0lPTiA7IGRvCi0rCQkJCSAgICBhc19hY19M aWI9YCRhc19lY2hvICJhY19jdl9saWJfJGF4X2xpYicnX21haW4iIHwgJGFzX3RyX3NoYAotK3sg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIG1haW4g aW4gLWwkYXhfbGliIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRh eF9saWIuLi4gIiA+JjY7IH0KLStpZiBldmFsIFwkeyRhc19hY19MaWIrOn0gZmFsc2U7IHRoZW4g OgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBhY19jaGVja19saWJf c2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkYXhfbGliICAkTElCUyIKLStjYXQgY29uZmRlZnMu aCAtIDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwot KwotKwotK2ludAotK21haW4gKCkKLSt7Ci0rcmV0dXJuIG1haW4gKCk7Ci0rICA7Ci0rICByZXR1 cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9saW5rICIkTElORU5PIjsgdGhl biA6Ci0rICBldmFsICIkYXNfYWNfTGliPXllcyIKLStlbHNlCi0rICBldmFsICIkYXNfYWNfTGli PW5vIgotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBc Ci0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rTElCUz0kYWNfY2hl Y2tfbGliX3NhdmVfTElCUwotK2ZpCi0rZXZhbCBhY19yZXM9XCQkYXNfYWNfTGliCi0rCSAgICAg ICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogJGFjX3Jl cyIgPiY1Ci0rJGFzX2VjaG8gIiRhY19yZXMiID4mNjsgfQotK2lmIGV2YWwgdGVzdCBcInhcJCIk YXNfYWNfTGliIlwiID0geCJ5ZXMiOyB0aGVuIDoKLSsgIEJPT1NUX01QSV9MSUI9Ii1sJGF4X2xp YiIgIGxpbmtfbXBpPSJ5ZXMiIGJyZWFrCi0rZWxzZQotKyAgbGlua19tcGk9Im5vIgotK2ZpCi0r Ci0rICAJCQkJZG9uZQotKwkJCQlpZiB0ZXN0ICJ4JGxpbmtfbXBpIiA9ICJ4bm8iOyB0aGVuCi0r CQkJCQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IENvdWxkIG5vdCBs aW5rIGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3Qg bGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZWxzZQotKwkJCQkJQk9PU1RfTVBJ X0xJQj0iJHtCT09TVF9NUElfTElCfSAke0JPT1NUX1NFUklBTElaQVRJT05fTElCfSAke01QSUdF Tl9MSUJTfSIKLSsJCQkJZmkKLSsJCQlmaQotKwotKyMKLSsjIEJvb3N0OjpNUElfUHl0aG9uCi0r IwotKwkJCXsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcg d2hldGhlciB0aGUgQm9vc3Q6Ok1waV9QeXRob24gbGlicmFyeSBpcyBhdmFpbGFibGUiID4mNQot KyRhc19lY2hvX24gImNoZWNraW5nIHdoZXRoZXIgdGhlIEJvb3N0OjpNcGlfUHl0aG9uIGxpYnJh cnkgaXMgYXZhaWxhYmxlLi4uICIgPiY2OyB9Ci0raWYgJHtheF9jdl9ib29zdF9tcGlfcHl0aG9u Kzp9IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQot KwotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21w aWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0r YWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAk TERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFj X2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsJCQkgY2F0IGNvbmZkZWZzLmggLSA8PF9BQ0VPRiA+ Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5jbHVkZSA8Ym9v c3QvbXBpL3B5dGhvbi9zZXJpYWxpemUuaHBwPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0r CSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAwOwotKwotKyAgOwotKyAg cmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfY29tcGlsZSAiJExJTkVO TyI7IHRoZW4gOgotKyAgYXhfY3ZfYm9vc3RfbXBpX3B5dGhvbj15ZXMKLStlbHNlCi0rICBheF9j dl9ib29zdF9tcGlfcHl0aG9uPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25m dGVzdC4kYWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsJCQkgYWNfZXh0PWNwcAotK2FjX2Nw cD0nJENYWENQUCAkQ1BQRkxBR1MnCi0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQ UEZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3Qk YWNfZXhlZXh0ICRDWFhGTEFHUyAkQ1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAk TElCUyA+JjUnCi0rYWNfY29tcGlsZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0r Ci0rZmkKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDog JGF4X2N2X2Jvb3N0X21waV9weXRob24iID4mNQotKyRhc19lY2hvICIkYXhfY3ZfYm9vc3RfbXBp X3B5dGhvbiIgPiY2OyB9Ci0rCQkJaWYgdGVzdCAieCRheF9jdl9ib29zdF9tcGlfcHl0aG9uIiA9 ICJ4eWVzIjsgdGhlbgotKwotKyRhc19lY2hvICIjZGVmaW5lIEhBVkVfQk9PU1RfTVBJX1BZVEhP TiAvKiovIiA+PmNvbmZkZWZzLmgKLSsKLSsJCQkJQk49Ym9vc3RfbXBpX3B5dGhvbgotKyMJCQkJ Qk49Ym9vc3RfbXBpX3B5dGhvbi1weTI1Ci0rCQkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJO LW10ICRCTiAkQk4tJENDLW10ICRCTi0kQ0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0Mt cyBsaWIkQk4tbXQgbGliJEJOIFwKLSsJCQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIk Qk4tJENDLW10LXMgbGliJEJOLSRDQy1zIFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4t bWd3LW10LXMgJEJOLW1ndy1zIFwKLSsJCQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJT SU9OIDsgZG8KLSsJCQkJICAgIGFzX2FjX0xpYj1gJGFzX2VjaG8gImFjX2N2X2xpYl8kYXhfbGli JydfbWFpbiIgfCAkYXNfdHJfc2hgCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgbWFpbiBpbiAtbCRheF9saWIiID4mNQotKyRhc19lY2hvX24g ImNoZWNraW5nIGZvciBtYWluIGluIC1sJGF4X2xpYi4uLiAiID4mNjsgfQotK2lmIGV2YWwgXCR7 JGFzX2FjX0xpYis6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4m NgotK2Vsc2UKLSsgIGFjX2NoZWNrX2xpYl9zYXZlX0xJQlM9JExJQlMKLStMSUJTPSItbCRheF9s aWIgICRMSUJTIgotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rCi0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1 cm4gbWFpbiAoKTsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9j eHhfdHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGV2YWwgIiRhc19hY19MaWI9eWVzIgot K2Vsc2UKLSsgIGV2YWwgIiRhc19hY19MaWI9bm8iCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0 LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29uZnRlc3QkYWNfZXhlZXh0IGNvbmZ0 ZXN0LiRhY19leHQKLStMSUJTPSRhY19jaGVja19saWJfc2F2ZV9MSUJTCi0rZmkKLStldmFsIGFj X3Jlcz1cJCRhc19hY19MaWIKLSsJICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogcmVzdWx0OiAkYWNfcmVzIiA+JjUKLSskYXNfZWNobyAiJGFjX3JlcyIgPiY2 OyB9Ci0raWYgZXZhbCB0ZXN0IFwieFwkIiRhc19hY19MaWIiXCIgPSB4InllcyI7IHRoZW4gOgot KyAgQk9PU1RfTVBJX1BZVEhPTl9MSUI9Ii1sJGF4X2xpYiIgIGxpbmtfbXBpX3B5dGhvbj0ieWVz IiBicmVhawotK2Vsc2UKLSsgIGxpbmtfbXBpX3B5dGhvbj0ibm8iCi0rZmkKLSsKLSsgIAkJCQlk b25lCi0rCQkJCWlmIHRlc3QgIngkbGlua19tcGlfcHl0aG9uIiA9ICJ4bm8iOyB0aGVuCi0rCQkJ CQl7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IENvdWxkIG5vdCBsaW5r IGFnYWluc3QgJGF4X2xpYiAhIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBDb3VsZCBub3QgbGlu ayBhZ2FpbnN0ICRheF9saWIgISIgPiY2O30KLSsJCQkJZWxzZQotKwkJCQkJQk9PU1RfTVBJX1BZ VEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9MSUJ9ICR7Qk9PU1RfU0VSSUFMSVpBVElPTl9M SUJ9IgotKwkJCQkJQk9PU1RfTVBJX1BZVEhPTl9MSUI9IiR7Qk9PU1RfTVBJX1BZVEhPTl9MSUJ9 ICR7Qk9PU1RfUFlUSE9OX0xJQn0iCi0rCQkJCQlCT09TVF9NUElfUFlUSE9OX0xJQj0iJHtCT09T VF9NUElfUFlUSE9OX0xJQn0gJHtCT09TVF9NUElfTElCfSIKLSsJCQkJCUJPT1NUX01QSV9QWVRI T05fTElCPSIke0JPT1NUX01QSV9QWVRIT05fTElCfSAke01QSUdFTl9MSUJTfSIKLSsJCQkJZmkK LSsJCQlmaQotKwotKyMKLSsjIEVuZCBvZiBzZWN0aW9uIG9uIHN1cHBvcnQgZm9yIE1QSQotKyMK LSsJCQlDUFBGTEFHUz0iJHtDUFBGTEFHU19PUklHfSIKLSsJCQlMREZMQUdTPSIke0xERkxBR1Nf T1JJR30iCi0rCi0rIwotKyMgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrCi0rIwotKwkJCXsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgd2hldGhlciB0aGUg Qm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyB3aGV0aGVyIHRoZSBCb29zdDo6VW5pdFRlc3RGcmFtZXdvcmsgbGli cmFyeSBpcyBhdmFpbGFibGUuLi4gIiA+JjY7IH0KLStpZiAke2F4X2N2X2Jvb3N0X3VuaXRfdGVz dF9mcmFtZXdvcmsrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+ JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdT JwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1Mg JENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBp bGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwkJCSBjYXQgY29uZmRlZnMuaCAt IDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNp bmNsdWRlIDxib29zdC90ZXN0L3VuaXRfdGVzdC5ocHA+Ci0raW50Ci0rbWFpbiAoKQotK3sKLSt1 c2luZyBib29zdDo6dW5pdF90ZXN0Ojp0ZXN0X3N1aXRlOwotKwkJCQkJICAgICAgICAgICAgICAg ICB0ZXN0X3N1aXRlKiB0ZXN0PSBCT09TVF9URVNUX1NVSVRFKCAiVW5pdCB0ZXN0IGV4YW1wbGUg MSIgKTsgcmV0dXJuIDA7Ci0rICA7Ci0rICByZXR1cm4gMDsKLSt9Ci0rX0FDRU9GCi0raWYgYWNf Zm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0rICBheF9jdl9ib29zdF91bml0 X3Rlc3RfZnJhbWV3b3JrPXllcwotK2Vsc2UKLSsgIGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFt ZXdvcms9bm8KLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0ZXN0LiRhY19vYmpl eHQgY29uZnRlc3QuJGFjX2V4dAotKwkJCSBhY19leHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRD UFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRl c3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25mdGVzdCRhY19leGVleHQgJENY WEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSth Y19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUKLSsKLSsKLStmaQotK3sgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYXhfY3ZfYm9vc3Rf dW5pdF90ZXN0X2ZyYW1ld29yayIgPiY1Ci0rJGFzX2VjaG8gIiRheF9jdl9ib29zdF91bml0X3Rl c3RfZnJhbWV3b3JrIiA+JjY7IH0KLSsJCQlpZiB0ZXN0ICJ4JGF4X2N2X2Jvb3N0X3VuaXRfdGVz dF9mcmFtZXdvcmsiID0gInh5ZXMiOyB0aGVuCi0rCi0rJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9C T09TVF9VTklUX1RFU1RfRlJBTUVXT1JLIC8qKi8iID4+Y29uZmRlZnMuaAotKwotKwkJCUJOPWJv b3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsKLSsgICAgCQlzYXZlZF9sZGZsYWdzPSIke0xERkxBR1N9 IgotKwkJCWZvciBheF9saWIgaW4gXAotKwkJCQkJJEJOLW10ICRCTiAkQk4tJENDLW10ICRCTi0k Q0MgXAotKwkJCQkJJEJOLSRDQy1tdC1zICRCTi0kQ0MtcyBsaWIkQk4tbXQgbGliJEJOIFwKLSsJ CQkJCWxpYiRCTi0kQ0MtbXQgbGliJEJOLSRDQyBsaWIkQk4tJENDLW10LXMgbGliJEJOLSRDQy1z IFwKLSsJCQkJCSRCTi1tZ3ctbXQgJEJOLW1ndyAkQk4tbWd3LW10LXMgJEJOLW1ndy1zIFwKLSsJ CQkJCSRCTi0kQ0MtbXQtJEJPT1NUTElCX01EV19WRVJTSU9OIDsgZG8KLSsgICAgICAgICAgICAg ICAgTERGTEFHUz0iJHtMREZMQUdTfSAtbCRheF9saWIiCi0rICAgIAkJCXsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgdGhlIG5hbWUgb2YgdGhlIEJvb3N0 OjpVbml0VGVzdEZyYW1ld29yayBsaWJyYXJ5IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB0 aGUgbmFtZSBvZiB0aGUgQm9vc3Q6OlVuaXRUZXN0RnJhbWV3b3JrIGxpYnJhcnkuLi4gIiA+JjY7 IH0KLStpZiAke2F4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsrOn0gZmFsc2U7IHRoZW4g OgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rCi0rCQkJIGFjX2V4dD1j cHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2NvbXBpbGU9JyRDWFggLWMgJENY WEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScKLSthY19saW5rPSckQ1hYIC1v IGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdTICRMREZMQUdTIGNvbmZ0ZXN0 LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0kYWNfY3ZfY3h4X2NvbXBpbGVy X2dudQotKwotKyAgICAgICAgICAgICAgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0 ZXN0LiRhY19leHQKLSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPGJvb3N0L3Rl c3QvdW5pdF90ZXN0LmhwcD4KLStpbnQKLSttYWluICgpCi0rewotK3VzaW5nIGJvb3N0Ojp1bml0 X3Rlc3Q6OnRlc3Rfc3VpdGU7Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRlc3Rf c3VpdGUqIHRlc3Q9IEJPT1NUX1RFU1RfU1VJVEUoICJVbml0IHRlc3QgZXhhbXBsZSAxIiApOyBy ZXR1cm4gMDsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhf dHJ5X2xpbmsgIiRMSU5FTk8iOyB0aGVuIDoKLSsgIGxpbmtfdGhyZWFkPSJ5ZXMiCi0rZWxzZQot KyAgbGlua190aHJlYWQ9Im5vIgotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRl c3QuJGFjX29iamV4dCBcCi0rICAgIGNvbmZ0ZXN0JGFjX2V4ZWV4dCBjb25mdGVzdC4kYWNfZXh0 Ci0rCi0rCQkJIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2FjX2Nv bXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4mNScK LSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZMQUdT ICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2dudT0k YWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKwotK2ZpCi0reyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRheF9jdl9ib29zdF91bml0X3Rlc3RfZnJhbWV3 b3JrIiA+JjUKLSskYXNfZWNobyAiJGF4X2N2X2Jvb3N0X3VuaXRfdGVzdF9mcmFtZXdvcmsiID4m NjsgfQotKyAgICAgICAgICAgICAgICBMREZMQUdTPSIke3NhdmVkX2xkZmxhZ3N9IgotKwkJCSAg ICBpZiB0ZXN0ICJ4JGxpbmtfdGhyZWFkIiA9ICJ4eWVzIjsgdGhlbgotKyAgICAgICAgICAgICAg ICAgICAgQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUI9Ii1sJGF4X2xpYiIKLSsKLSsJCQkJ CWJyZWFrCi0rCQkJCWZpCi0rICAgICAgICAgICAgICBkb25lCi0rCQkJICAgIGlmIHRlc3QgIngk bGlua190aHJlYWQiID0gInhubyI7IHRoZW4KLSsJCQkJICAgeyAkYXNfZWNobyAiJGFzX21lOiR7 YXNfbGluZW5vLSRMSU5FTk99OiBDb3VsZCBub3QgbGluayBhZ2FpbnN0ICRheF9saWIgISIgPiY1 Ci0rJGFzX2VjaG8gIiRhc19tZTogQ291bGQgbm90IGxpbmsgYWdhaW5zdCAkYXhfbGliICEiID4m Njt9Ci0rCQkJCWZpCi0rCQkJZmkKLSsKLSsKLSsJCWZpCi0rICAgICAgICBDUFBGTEFHUz0iJENQ UEZMQUdTX1NBVkVEIgotKyAgICAgICAgTERGTEFHUz0iJExERkxBR1NfU0FWRUQiCi0rCi0rCWZp Ci0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyMgU3VwcG9ydCBm b3IgTXlTUUwgYmFja2VuZCAoQyBjbGllbnQgQVBJKTogaHR0cDovL3d3dy5teXNxbC5vcmcKLSsj IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCi0rIyBDaGVjayB3aGV0aGVyIC0tZW5hYmxlLWJhY2tlbmQtbXlzcWwgd2Fz IGdpdmVuLgotK2lmIHRlc3QgIiR7ZW5hYmxlX2JhY2tlbmRfbXlzcWwrc2V0fSIgPSBzZXQ7IHRo ZW4gOgotKyAgZW5hYmxldmFsPSRlbmFibGVfYmFja2VuZF9teXNxbDsgIGlmIHRlc3QgIiRlbmFi bGV2YWwiID0gbm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vCi0rICAg ICAgZWxzZQotKwkgZW5hYmxlX2JhY2tlbmRfbXlzcWw9eWVzCi0rICAgICAgZmkKLStlbHNlCi0r ICAgZW5hYmxlX2JhY2tlbmRfbXlzcWw9bm8KLSsKLStmaQotKwotKwotK2lmIHRlc3QgIngkZW5h YmxlX2JhY2tlbmRfbXlzcWwiID0gInh5ZXMiOyB0aGVuCi0rICAgTVlTUUxfRElSUz0ibXlzcWwi Ci0rIyAgIE1ZU1FMX1JFUV9WRVJTSU9OPSIzLjAuMCIKLSsKLSsJIwotKwkjIFNldCB1cCBjb25m aWd1cmUgc2NyaXB0IG1hY3JvcwotKwkjCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1teXNx bCB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX215c3FsK3NldH0iID0gc2V0OyB0aGVuIDoK LSsgIHdpdGh2YWw9JHdpdGhfbXlzcWw7IE1ZU1FMX2xpYl9jaGVjaz0iJHdpdGhfbXlzcWwvbGli NjQvbXlzcWwgJHdpdGhfbXlzcWwvbGliL215c3FsICR3aXRoX215c3FsL2xpYjY0ICR3aXRoX215 c3FsL2xpYiIKLSsJCU1ZU1FMX2luY19jaGVjaz0iJHdpdGhfbXlzcWwvaW5jbHVkZSAkd2l0aF9t eXNxbC9pbmNsdWRlL215c3FsIgotKwkJTVlTUUxfYmluX2NoZWNrPSIkd2l0aF9teXNxbC9iaW4i Ci0rZWxzZQotKyAgTVlTUUxfbGliX2NoZWNrPSIvdXNyL2xpYjY0IC91c3IvbGliIC91c3IvbGli NjQvbXlzcWwgL3Vzci9saWIvbXlzcWwgL3Vzci9sb2NhbC9saWI2NCAvdXNyL2xvY2FsL2xpYiAv dXNyL2xvY2FsL2xpYi9teXNxbCAvdXNyL2xvY2FsL215c3FsL2xpYiAvdXNyL2xvY2FsL215c3Fs L2xpYi9teXNxbCAvb3B0L215c3FsL2xpYiAvb3B0L215c3FsL2xpYi9teXNxbCIKLSsJCU1ZU1FM X2luY19jaGVjaz0iL3Vzci9pbmNsdWRlL215c3FsIC91c3IvbG9jYWwvaW5jbHVkZS9teXNxbCAv dXNyL2xvY2FsL215c3FsL2luY2x1ZGUgL3Vzci9sb2NhbC9teXNxbC9pbmNsdWRlL215c3FsIC9v cHQvbXlzcWwvaW5jbHVkZS9teXNxbCIKLSsJCU1ZU1FMX2Jpbl9jaGVjaz0iL3Vzci9iaW4gL3Vz ci9sb2NhbC9iaW4gL3Vzci9sb2NhbC9teXNxbC9iaW4iCi0rZmkKLSsKLSsKLSsKLSsjIENoZWNr IHdoZXRoZXIgLS13aXRoLW15c3FsLWxpYiB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX215 c3FsX2xpYitzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICB3aXRodmFsPSR3aXRoX215c3FsX2xpYjsg TVlTUUxfbGliX2NoZWNrPSIkd2l0aF9teXNxbF9saWIgJHdpdGhfbXlzcWxfbGliL2xpYjY0ICR3 aXRoX215c3FsX2xpYi9saWIgJHdpdGhfbXlzcWxfbGliL2xpYjY0L215c3FsICR3aXRoX215c3Fs X2xpYi9saWIvbXlzcWwiCi0rZmkKLSsKLSsKLSsKLSsjIENoZWNrIHdoZXRoZXIgLS13aXRoLW15 c3FsLWluY2x1ZGUgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9teXNxbF9pbmNsdWRlK3Nl dH0iID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfbXlzcWxfaW5jbHVkZTsgTVlTUUxf aW5jX2NoZWNrPSIkd2l0aF9teXNxbF9pbmNsdWRlICR3aXRoX215c3FsX2luY2x1ZGUvaW5jbHVk ZSAkd2l0aF9teXNxbF9pbmNsdWRlL2luY2x1ZGUvbXlzcWwiCi0rZmkKLSsKLSsKLSsKLSsgICAg IwotKwkjIExvb2sgZm9yIE15U1FMIENvbmZpZ3VyYXRpb24gU2NyaXB0Ci0rCSMKLSsJeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgTXlTUUwgY29u ZmlndXJhdGlvbiBzY3JpcHQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBNeVNRTCBj b25maWd1cmF0aW9uIHNjcmlwdC4uLiAiID4mNjsgfQotKwlNWVNRTF9DT05GSUc9Ci0rCU1ZU1FM X2JpbmRpcj0KLSsJZm9yIG0gaW4gJE1ZU1FMX2Jpbl9jaGVjawotKwkJZG8KLSsJCQlpZiB0ZXN0 IC1kICIkbSIgJiYgdGVzdCAtZiAiJG0vbXlzcWxfY29uZmlnIgotKwkJCXRoZW4KLSsJCQkJTVlT UUxfQ09ORklHPSRtL215c3FsX2NvbmZpZwotKwkJCQlNWVNRTF9iaW5kaXI9JG0KLSsJCQlicmVh awotKwkJZmkKLSsJZG9uZQotKwotKwlpZiB0ZXN0IC16ICIkTVlTUUxfYmluZGlyIgotKwl0aGVu Ci0rCQlhc19mbl9lcnJvciAkPyAiRGlkbid0IGZpbmQgJE1ZU1FMX0NPTkZJRyBiaW5hcnkgaW4g JyRNWVNRTF9iaW5fY2hlY2snIiAiJExJTkVOTyIgNQotKwlmaQotKwotKwljYXNlICIkTVlTUUxf YmluZGlyIiBpbgotKwkJLyogKSA7OwotKwkJKiApICBhc19mbl9lcnJvciAkPyAiVGhlIE15U1FM IGJpbmFyeSBkaXJlY3RvcnkgKCRNWVNRTF9iaW5kaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0 aC4iICIkTElORU5PIiA1IDs7Ci0rCWVzYWMKLSsKLSsJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNf bGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRNWVNRTF9DT05GSUciID4mNQotKyRhc19lY2hvICIk TVlTUUxfQ09ORklHIiA+JjY7IH0KLSsKLSsjCUFDX1BBVEhfUFJPRyhNWVNRTF9DT05GSUcsIG15 c3FsX2NvbmZpZywgJE1ZU1FMX2JpbmRpcikKLSsKLSsJIwotKwkjIERlY2lkZSB3aGljaCBDIEFQ SSBsaWJyYXJ5IHRvIHVzZSwgYmFzZWQgb24gdGhyZWFkIHN1cHBvcnQKLSsJIwotKwlpZiB0ZXN0 ICJ4JGFjeF9wdGhyZWFkX29rIiA9IHh5ZXMKLSsJdGhlbgotKwkJTVlTUUxfQ19MSUI9bXlzcWxj bGllbnRfcgotKwkJTVlTUUxfTElCX09QVElPTj1saWJzX3IKLSsJZWxzZQotKwkJTVlTUUxfQ19M SUI9bXlzcWxjbGllbnQKLSsJCU1ZU1FMX0xJQl9PUFRJT049bGlicwotKwlmaQotKwotKwlpZiB0 ZXN0ICJ4JHtNWVNRTF9DT05GSUd9MSIgPSAieDEiCi0rCXRoZW4KLSsJCU1ZU1FMX1ZFUlNJT049 YCR7TVlTUUxfQ09ORklHfSAtLXZlcnNpb25gCi0rCQlNWVNRTF9DRkxBR1M9YCR7TVlTUUxfQ09O RklHfSAtLWNmbGFnc2AKLSsJCU1ZU1FMX0xJQlM9YCR7TVlTUUxfQ09ORklHfSAtLSR7TVlTUUxf TElCX09QVElPTn1gCi0rCWVsc2UKLSsJCSMKLSsJCSMgTG9vayBmb3IgTXlTUUwgQyBBUEkgbGli cmFyeQotKwkJIwotKwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3IgTXlTUUwgbGlicmFyeSBkaXJlY3RvcnkiID4mNQotKyRhc19lY2hvX24gImNo ZWNraW5nIGZvciBNeVNRTCBsaWJyYXJ5IGRpcmVjdG9yeS4uLiAiID4mNjsgfQotKwkJTVlTUUxf bGliZGlyPQotKwkJZm9yIG0gaW4gJE1ZU1FMX2xpYl9jaGVjawotKwkJZG8KLSsJCQlpZiB0ZXN0 IC1kICIkbSIgJiYgXAotKwkJCQkodGVzdCAtZiAiJG0vbGliJE1ZU1FMX0NfTElCLnNvIiBcCi0r CQkJCXx8IHRlc3QgLWYgIiRtL2xpYiRNWVNRTF9DX0xJQi5hIikKLSsJCQl0aGVuCi0rCQkJCU1Z U1FMX2xpYmRpcj0kbQotKwkJCQlicmVhawotKwkJCWZpCi0rCQlkb25lCi0rCi0rCQlpZiB0ZXN0 IC16ICIkTVlTUUxfbGliZGlyIgotKwkJdGhlbgotKwkJCWFzX2ZuX2Vycm9yICQ/ICJEaWRuJ3Qg ZmluZCAkTVlTUUxfQ19MSUIgbGlicmFyeSBpbiAnJE1ZU1FMX2xpYl9jaGVjayciICIkTElORU5P IiA1Ci0rCQlmaQotKwotKwkJY2FzZSAiJE1ZU1FMX2xpYmRpciIgaW4KLSsJCQkvKiApIDs7Ci0r CQkJKiApICBhc19mbl9lcnJvciAkPyAiVGhlIE15U1FMIGxpYnJhcnkgZGlyZWN0b3J5ICgkTVlT UUxfbGliZGlyKSBtdXN0IGJlIGFuIGFic29sdXRlIHBhdGguIiAiJExJTkVOTyIgNSA7OwotKwkJ ZXNhYwotKwotKwkJeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1 bHQ6ICRNWVNRTF9saWJkaXIiID4mNQotKyRhc19lY2hvICIkTVlTUUxfbGliZGlyIiA+JjY7IH0K LSsKLSsjCQljYXNlICIkTVlTUUxfbGliZGlyIiBpbgotKyMJCSAgL3Vzci9saWIpIDs7Ci0rIwkJ ICAqKSBMREZMQUdTPSIkTERGTEFHUyAtTCR7TVlTUUxfbGliZGlyfSIgOzsKLSsjCQllc2FjCi0r Ci0rCQkjCi0rCQkjIExvb2sgZm9yIE15U1FMIEMgQVBJIGhlYWRlcnMKLSsJCSMKLSsJCXsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIE15U1FMIGlu Y2x1ZGUgZGlyZWN0b3J5IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgTXlTUUwgaW5j bHVkZSBkaXJlY3RvcnkuLi4gIiA+JjY7IH0KLSsJCU1ZU1FMX2luY2Rpcj0KLSsJCWZvciBtIGlu ICRNWVNRTF9pbmNfY2hlY2sKLSsJCWRvCi0rCQkJaWYgdGVzdCAtZCAiJG0iICYmIHRlc3QgLWYg IiRtL215c3FsLmgiCi0rCQkJdGhlbgotKwkJCQlNWVNRTF9pbmNkaXI9JG0KLSsJCQkJYnJlYWsK LSsJCQlmaQotKwkJZG9uZQotKwotKwkJaWYgdGVzdCAteiAiJE1ZU1FMX2luY2RpciIKLSsJCXRo ZW4KLSsJCQlhc19mbl9lcnJvciAkPyAiRGlkbid0IGZpbmQgdGhlIE15U1FMIGluY2x1ZGUgZGly IGluICckTVlTUUxfaW5jX2NoZWNrJyIgIiRMSU5FTk8iIDUKLSsJCWZpCi0rCi0rCQljYXNlICIk TVlTUUxfaW5jZGlyIiBpbgotKwkJCSAvKiApIDs7Ci0rCQkJICogKSAgYXNfZm5fZXJyb3IgJD8g IlRoZSBNeVNRTCBpbmNsdWRlIGRpcmVjdG9yeSAoJE1ZU1FMX2luY2RpcikgbXVzdCBiZSBhbiBh YnNvbHV0ZSBwYXRoLiIgIiRMSU5FTk8iIDUgOzsKLSsJCWVzYWMKLSsKLSsJCXsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkTVlTUUxfaW5jZGlyIiA+JjUK LSskYXNfZWNobyAiJE1ZU1FMX2luY2RpciIgPiY2OyB9Ci0rCi0rCQlNWVNRTF9WRVJTSU9OPWBn cmVwICJkZWZpbmUgTVlTUUxfU0VSVkVSX1ZFUlNJT04iICRNWVNRTF9pbmNkaXIvbXlzcWxfdmVy c2lvbi5oIHwgY3V0IC1kXCIgLWYyYAotKwkJTVlTUUxfQ0ZMQUdTPSItSSR7TVlTUUxfaW5jZGly fSIKLSsJCU1ZU1FMX0xJQlM9Ii1MJHtNWVNRTF9saWJkaXJ9IC1sJHtNWVNRTF9DX0xJQn0iCi0r CWZpCi0rCi0rCi0rCi0rCi0rCi0rCXNhdmVfTElCUz0iJExJQlMiCi0rCUxJQlM9IiRMSUJTICRN WVNRTF9MSUJTIgotKwlhc19hY19MaWI9YCRhc19lY2hvICJhY19jdl9saWJfJE1ZU1FMX0NfTElC JydfbXlzcWxfc3RvcmVfcmVzdWx0IiB8ICRhc190cl9zaGAKLSt7ICRhc19lY2hvICIkYXNfbWU6 JHthc19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBteXNxbF9zdG9yZV9yZXN1bHQgaW4g LWwkTVlTUUxfQ19MSUIiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciBteXNxbF9zdG9y ZV9yZXN1bHQgaW4gLWwkTVlTUUxfQ19MSUIuLi4gIiA+JjY7IH0KLStpZiBldmFsIFwkeyRhc19h Y19MaWIrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNhY2hlZCkgIiA+JjYKLStl bHNlCi0rICBhY19jaGVja19saWJfc2F2ZV9MSUJTPSRMSUJTCi0rTElCUz0iLWwkTVlTUUxfQ19M SUIgICRMSUJTIgotK2NhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQK LSsvKiBlbmQgY29uZmRlZnMuaC4gICovCi0rCi0rLyogT3ZlcnJpZGUgYW55IEdDQyBpbnRlcm5h bCBwcm90b3R5cGUgdG8gYXZvaWQgYW4gZXJyb3IuCi0rICAgVXNlIGNoYXIgYmVjYXVzZSBpbnQg bWlnaHQgbWF0Y2ggdGhlIHJldHVybiB0eXBlIG9mIGEgR0NDCi0rICAgYnVpbHRpbiBhbmQgdGhl biBpdHMgYXJndW1lbnQgcHJvdG90eXBlIHdvdWxkIHN0aWxsIGFwcGx5LiAgKi8KLSsjaWZkZWYg X19jcGx1c3BsdXMKLStleHRlcm4gIkMiCi0rI2VuZGlmCi0rY2hhciBteXNxbF9zdG9yZV9yZXN1 bHQgKCk7Ci0raW50Ci0rbWFpbiAoKQotK3sKLStyZXR1cm4gbXlzcWxfc3RvcmVfcmVzdWx0ICgp OwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfbGlu ayAiJExJTkVOTyI7IHRoZW4gOgotKyAgZXZhbCAiJGFzX2FjX0xpYj15ZXMiCi0rZWxzZQotKyAg ZXZhbCAiJGFzX2FjX0xpYj1ubyIKLStmaQotK3JtIC1mIGNvcmUgY29uZnRlc3QuZXJyIGNvbmZ0 ZXN0LiRhY19vYmpleHQgXAotKyAgICBjb25mdGVzdCRhY19leGVleHQgY29uZnRlc3QuJGFjX2V4 dAotK0xJQlM9JGFjX2NoZWNrX2xpYl9zYXZlX0xJQlMKLStmaQotK2V2YWwgYWNfcmVzPVwkJGFz X2FjX0xpYgotKwkgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiByZXN1bHQ6ICRhY19yZXMiID4mNQotKyRhc19lY2hvICIkYWNfcmVzIiA+JjY7IH0KLStpZiBl dmFsIHRlc3QgXCJ4XCQiJGFzX2FjX0xpYiJcIiA9IHgieWVzIjsgdGhlbiA6Ci0rICBjYXQgPj5j b25mZGVmcy5oIDw8X0FDRU9GCi0rI2RlZmluZSBgJGFzX2VjaG8gIkhBVkVfTElCJE1ZU1FMX0Nf TElCIiB8ICRhc190cl9jcHBgIDEKLStfQUNFT0YKLSsKLSsgIExJQlM9Ii1sJE1ZU1FMX0NfTElC ICRMSUJTIgotKwotK2Vsc2UKLSsgIGFzX2ZuX2Vycm9yICQ/ICJDb3VsZCBub3QgZmluZCB3b3Jr aW5nIE15U1FMIGNsaWVudCBsaWJyYXJ5ISIgIiRMSU5FTk8iIDUKLSsKLStmaQotKwotKwotKwlM SUJTPSIkc2F2ZV9MSUJTIgotKwotK2ZpCi0rIGlmIHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfbXlz cWwiID0geHllczsgdGhlbgotKyAgSEFWRV9NWVNRTF9UUlVFPQotKyAgSEFWRV9NWVNRTF9GQUxT RT0nIycKLStlbHNlCi0rICBIQVZFX01ZU1FMX1RSVUU9JyMnCi0rICBIQVZFX01ZU1FMX0ZBTFNF PQotK2ZpCi0rCi0rI01ZU1FMX0RJUlM9Im15c3FsIgotKwotKwotKwotKwotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgU3VwcG9ydCBmb3IgT3JhY2xlIGJhY2tlbmQKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNr IHdoZXRoZXIgLS1lbmFibGUtYmFja2VuZC1vcmFjbGUgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7 ZW5hYmxlX2JhY2tlbmRfb3JhY2xlK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIGVuYWJsZXZhbD0k ZW5hYmxlX2JhY2tlbmRfb3JhY2xlOyAgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgot KyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfb3JhY2xlPW5vCi0rICAgICAgZWxzZQotKwkgZW5hYmxl X2JhY2tlbmRfb3JhY2xlPXllcwotKyAgICAgIGZpCi0rZWxzZQotKyAgIGVuYWJsZV9iYWNrZW5k X29yYWNsZT1ubwotKwotK2ZpCi0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFj bGUiID0gInh5ZXMiOyB0aGVuCi0rICAgT1JBQ0xFX0RJUlM9Im9yYWNsZSIKLSsgICBPUkFDTEVf T0NJX1JFUV9WRVJTSU9OPSI5LjAiCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1v cmFjbGUgd2FzIGdpdmVuLgotK2lmIHRlc3QgIiR7d2l0aF9vcmFjbGUrc2V0fSIgPSBzZXQ7IHRo ZW4gOgotKyAgd2l0aHZhbD0kd2l0aF9vcmFjbGU7Ci0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZh bCIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIGlmIHRlc3QgLW4gIiRPUkFDTEVfSE9NRSI7 IHRoZW4KLSsgICAgICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIkT1JBQ0xFX0hPTUUiCi0r ICAgICAgICAgICAgZWxzZQotKyAgICAgICAgICAgICAgICBvcmFjbGVfaG9tZV9kaXI9IiIKLSsg ICAgICAgICAgICBmaQotKyAgICAgICAgZmkKLSsKLStlbHNlCi0rCi0rICAgICAgICBpZiB0ZXN0 IC1uICIkT1JBQ0xFX0hPTUUiOyB0aGVuCi0rICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGlyPSIk T1JBQ0xFX0hPTUUiCi0rICAgICAgICBlbHNlCi0rICAgICAgICAgICAgb3JhY2xlX2hvbWVfZGly PSIiCi0rICAgICAgICBmaQotKwotKwotK2ZpCi0rCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0t d2l0aC1vcmFjbGUtaW5jbHVkZSB3YXMgZ2l2ZW4uCi0raWYgdGVzdCAiJHt3aXRoX29yYWNsZV9p bmNsdWRlK3NldH0iID0gc2V0OyB0aGVuIDoKLSsgIHdpdGh2YWw9JHdpdGhfb3JhY2xlX2luY2x1 ZGU7IG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyPSIkd2l0aHZhbCIKLStlbHNlCi0rICBvcmFjbGVf aG9tZV9pbmNsdWRlX2Rpcj0iIgotKwotK2ZpCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0 aC1vcmFjbGUtbGliIHdhcyBnaXZlbi4KLStpZiB0ZXN0ICIke3dpdGhfb3JhY2xlX2xpYitzZXR9 IiA9IHNldDsgdGhlbiA6Ci0rICB3aXRodmFsPSR3aXRoX29yYWNsZV9saWI7IG9yYWNsZV9ob21l X2xpYl9kaXI9IiR3aXRodmFsIgotK2Vsc2UKLSsgIG9yYWNsZV9ob21lX2xpYl9kaXI9IiIKLSsK LStmaQotKwotKwotKyAgICBPUkFDTEVfT0NJX0NGTEFHUz0iIgotKyAgICBPUkFDTEVfT0NJX0xE RkxBR1M9IiIKLSsgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIiCi0rCi0rICAgICAgICAgICAgICAg IHdhbnRfb3JhY2xlX2J1dF9ub19wYXRoPSJubyIKLSsKLSsgICAgaWYgdGVzdCAtbiAiJG9yYWNs ZV9ob21lX2RpciI7IHRoZW4KLSsKLSsgICAgICAgIGlmIHRlc3QgIiRvcmFjbGVfaG9tZV9kaXIi ICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9kaXIiICE9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAg ICAgICAgICAgICAgICAgICAgb3JhY2xlX2luY2x1ZGVfZGlyPSIkb3JhY2xlX2hvbWVfZGlyL3Jk Ym1zL3B1YmxpYyIKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9k aXIyPSIkb3JhY2xlX2hvbWVfZGlyL3JkYm1zL2RlbW8iCi0rCi0rICAgICAgICAgICAgICAgICAg ICAgICAgb3JhY2xlX2xpYl9kaXI9IiRvcmFjbGVfaG9tZV9kaXIvbGliIgotKyAgICAgICAgZWxp ZiB0ZXN0ICIkb3JhY2xlX2hvbWVfZGlyIiA9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgd2Fu dF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKLSsgICAgICAgIGZpCi0rCi0rICAgIGVsaWYgdGVz dCAtbiAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiAtbyAtbiAiJG9yYWNsZV9ob21lX2xpYl9k aXIiOyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfaW5jbHVkZV9kaXIi ICE9ICJubyIgLWEgIiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIgIT0gInllcyI7IHRoZW4KLSsg ICAgICAgICAgICBvcmFjbGVfaW5jbHVkZV9kaXI9IiRvcmFjbGVfaG9tZV9pbmNsdWRlX2RpciIK LSsgICAgICAgIGVsaWYgdGVzdCAiJG9yYWNsZV9ob21lX2luY2x1ZGVfZGlyIiA9ICJ5ZXMiOyB0 aGVuCi0rICAgICAgICAgICAgd2FudF9vcmFjbGVfYnV0X25vX3BhdGg9InllcyIKLSsgICAgICAg IGZpCi0rCi0rICAgICAgICBpZiB0ZXN0ICIkb3JhY2xlX2hvbWVfbGliX2RpciIgIT0gIm5vIiAt YSAiJG9yYWNsZV9ob21lX2xpYl9kaXIiICE9ICJ5ZXMiOyB0aGVuCi0rICAgICAgICAgICAgb3Jh Y2xlX2xpYl9kaXI9IiRvcmFjbGVfaG9tZV9saWJfZGlyIgotKyAgICAgICAgZWxpZiB0ZXN0ICIk b3JhY2xlX2hvbWVfbGliX2RpciIgPSAieWVzIjsgdGhlbgotKyAgICAgICAgICAgIHdhbnRfb3Jh Y2xlX2J1dF9ub19wYXRoPSJ5ZXMiCi0rICAgICAgICBmaQotKyAgICBmaQotKwotKyAgICBpZiB0 ZXN0ICIkd2FudF9vcmFjbGVfYnV0X25vX3BhdGgiID0gInllcyI7IHRoZW4KLSsgICAgICAgIHsg JGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogT3JhY2xlIHN1 cHBvcnQgaXMgcmVxdWVzdGVkIGJ1dCBubyBPcmFjbGUgcGF0aHMgaGF2ZSBiZWVuIHByb3ZpZGVk LiBcCi0rUGxlYXNlLCBsb2NhdGUgT3JhY2xlIGRpcmVjdG9yaWVzIHVzaW5nIC0td2l0aC1vcmFj bGUgb3IgXAotKy0td2l0aC1vcmFjbGUtaW5jbHVkZSBhbmQgLS13aXRoLW9yYWNsZS1saWIgb3B0 aW9ucy4iID4mNQotKyRhc19lY2hvICIkYXNfbWU6IFdBUk5JTkc6IE9yYWNsZSBzdXBwb3J0IGlz IHJlcXVlc3RlZCBidXQgbm8gT3JhY2xlIHBhdGhzIGhhdmUgYmVlbiBwcm92aWRlZC4gXAotK1Bs ZWFzZSwgbG9jYXRlIE9yYWNsZSBkaXJlY3RvcmllcyB1c2luZyAtLXdpdGgtb3JhY2xlIG9yIFwK LSstLXdpdGgtb3JhY2xlLWluY2x1ZGUgYW5kIC0td2l0aC1vcmFjbGUtbGliIG9wdGlvbnMuIiA+ JjI7fQotKyAgICBmaQotKwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3JhY2xlX2lu Y2x1ZGVfZGlyIiAtYSAtbiAiJG9yYWNsZV9saWJfZGlyIjsgdGhlbgotKwotKyAgICAgICAgc2F2 ZWRfQ1BQRkxBR1M9IiRDUFBGTEFHUyIKLSsgICAgICAgIENQUEZMQUdTPSIkQ1BQRkxBR1MgLUkk b3JhY2xlX2luY2x1ZGVfZGlyIgotKwotKyAgICAgICAgICAgICAgICBpZiB0ZXN0IC1uICIkb3Jh Y2xlX2luY2x1ZGVfZGlyMiI7IHRoZW4KLSsgICAgICAgICAgICBDUFBGTEFHUz0iJENQUEZMQUdT IC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIiCi0rICAgICAgICBmaQotKwotKyAgICAgICAgIyBGaWd1 cmUgb3V0IGlmIHdlIGFyZSBidWlsZGluZyBvbiB3aW4zMi4KLSsgICAgICAgIGNhc2UgJGhvc3Rf b3MgaW4KLSsgICAgICAgICAgICAqbWluZ3czMiogKSBXSU4zMj15ZXMgOzsKLSsgICAgICAgICAg ICAqY3lnd2luKiApICBXSU4zMj15ZXMgOzsKLSsgICAgICAgICAgICAqKSBXSU4zMj1ubyA7Owot KyAgICAgICAgZXNhYwotKwotKyAgICAgICAgaWYgdGVzdCAiJFdJTjMyIiA9ICJubyIKLSsgICAg ICAgIHRoZW4KLSsgICAgICAgICAgICBvY2lfbGlicz0iLWxjbG50c2ggLWxubnoxMSIKLSsgICAg ICAgIGVsc2UKLSsgICAgICAgICAgICBvY2lfbGlicz0iLWxvY2kiCi0rICAgICAgICBmaQotKwot KyAgICAgICAgc2F2ZWRfTERGTEFHUz0iJExERkxBR1MiCi0rICAgICAgICBzYXZlZF9MSUJTPSIk TElCUyIKLSsgICAgICAgIG9jaV9sZGZsYWdzPSItTCRvcmFjbGVfbGliX2RpciIKLSsgICAgICAg IExERkxBR1M9IiRMREZMQUdTICRvY2lfbGRmbGFncyIKLSsgICAgICAgIExJQlM9IiRMSUJTICRv Y2lfbGlicyIKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogY2hlY2tpbmcgZm9yIE9yYWNsZSBPQ0kgaGVh ZGVycyBpbiAkb3JhY2xlX2luY2x1ZGVfZGlyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBm b3IgT3JhY2xlIE9DSSBoZWFkZXJzIGluICRvcmFjbGVfaW5jbHVkZV9kaXIuLi4gIiA+JjY7IH0K LSsKLSsgICAgICAgIGFjX2V4dD1jcHAKLSthY19jcHA9JyRDWFhDUFAgJENQUEZMQUdTJwotK2Fj X2NvbXBpbGU9JyRDWFggLWMgJENYWEZMQUdTICRDUFBGTEFHUyBjb25mdGVzdC4kYWNfZXh0ID4m NScKLSthY19saW5rPSckQ1hYIC1vIGNvbmZ0ZXN0JGFjX2V4ZWV4dCAkQ1hYRkxBR1MgJENQUEZM QUdTICRMREZMQUdTIGNvbmZ0ZXN0LiRhY19leHQgJExJQlMgPiY1JwotK2FjX2NvbXBpbGVyX2du dT0kYWNfY3ZfY3h4X2NvbXBpbGVyX2dudQotKwotKyAgICAgICAgY2F0IGNvbmZkZWZzLmggLSA8 PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAgKi8KLSsjaW5j bHVkZSA8b2NpLmg+Ci0raW50Ci0rbWFpbiAoKQotK3sKLSsKLSsjaWYgZGVmaW5lZChPQ0lfTUFK T1JfVkVSU0lPTikKLSsjaWYgT0NJX01BSk9SX1ZFUlNJT04gPT0gMTAgJiYgT0NJX01JTk9SX1ZF UlNJT04gPT0gMgotKy8vIE9yYWNsZSAxMC4yIGRldGVjdGVkCi0rI2VuZGlmCi0rI2VsaWYgZGVm aW5lZChPQ0lfVjdfU1lOVEFYKQotKy8vIE9LLCBvbGRlciBPcmFjbGUgZGV0ZWN0ZWQKLSsvLyBU T0RPIC0gbWxvc2tvdDogZmluZCBiZXR0ZXIgbWFjcm8gdG8gY2hlY2sgZm9yIG9sZGVyIHZlcnNp b25zOwotKyNlbHNlCi0rIyAgZXJyb3IgT3JhY2xlIG9jaS5oIGhlYWRlciBub3QgZm91bmQKLSsj ZW5kaWYKLSsKLSsKLSsgIDsKLSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9j eHhfdHJ5X2NvbXBpbGUgIiRMSU5FTk8iOyB0aGVuIDoKLSsKLSsgICAgICAgICAgICBPUkFDTEVf T0NJX0NGTEFHUz0iLUkkb3JhY2xlX2luY2x1ZGVfZGlyIgotKwotKyAgICAgICAgICAgIGlmIHRl c3QgLW4gIiRvcmFjbGVfaW5jbHVkZV9kaXIyIjsgdGhlbgotKyAgICAgICAgICAgICAgICBPUkFD TEVfT0NJX0NGTEFHUz0iJE9SQUNMRV9PQ0lfQ0ZMQUdTIC1JJG9yYWNsZV9pbmNsdWRlX2RpcjIi Ci0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBvY2lfaGVhZGVyX2ZvdW5kPSJ5ZXMi Ci0rICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBy ZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rCi0rZWxzZQotKwotKyAg ICAgICAgICAgIG9jaV9oZWFkZXJfZm91bmQ9Im5vIgotKyAgICAgICAgICAgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBub3QgZm91bmQiID4mNQotKyRh c19lY2hvICJub3QgZm91bmQiID4mNjsgfQotKwotKwotK2ZpCi0rcm0gLWYgY29yZSBjb25mdGVz dC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVzdC4kYWNfZXh0Ci0rICAgICAgICBhY19l eHQ9Y3BwCi0rYWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1j ICRDWFhGTEFHUyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENY WCAtbyBjb25mdGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25m dGVzdC4kYWNfZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21w aWxlcl9nbnUKLSsKLSsKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIHRlc3Qg IiRvY2lfaGVhZGVyX2ZvdW5kIiA9ICJ5ZXMiOyB0aGVuCi0rCi0rICAgICAgICAgICAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgT3JhY2xlIE9D SSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9saWJfZGlyIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgT3JhY2xlIE9DSSBsaWJyYXJpZXMgaW4gJG9yYWNsZV9saWJfZGlyLi4uICIgPiY2OyB9 Ci0rCi0rICAgICAgICAgICAgYWNfZXh0PWNwcAotK2FjX2NwcD0nJENYWENQUCAkQ1BQRkxBR1Mn Ci0rYWNfY29tcGlsZT0nJENYWCAtYyAkQ1hYRkxBR1MgJENQUEZMQUdTIGNvbmZ0ZXN0LiRhY19l eHQgPiY1JwotK2FjX2xpbms9JyRDWFggLW8gY29uZnRlc3QkYWNfZXhlZXh0ICRDWFhGTEFHUyAk Q1BQRkxBR1MgJExERkxBR1MgY29uZnRlc3QuJGFjX2V4dCAkTElCUyA+JjUnCi0rYWNfY29tcGls ZXJfZ251PSRhY19jdl9jeHhfY29tcGlsZXJfZ251Ci0rCi0rICAgICAgICAgICAgY2F0IGNvbmZk ZWZzLmggLSA8PF9BQ0VPRiA+Y29uZnRlc3QuJGFjX2V4dAotKy8qIGVuZCBjb25mZGVmcy5oLiAg Ki8KLSsjaW5jbHVkZSA8b2NpLmg+Ci0raW50Ci0rbWFpbiAoKQotK3sKLSsKLStPQ0lFbnYqIGVu dmggPSAwOwotK09DSUVudkNyZWF0ZSgmZW52aCwgT0NJX0RFRkFVTFQsIDAsIDAsIDAsIDAsIDAs IDApOwotK2lmIChlbnZoKSBPQ0lIYW5kbGVGcmVlKGVudmgsIE9DSV9IVFlQRV9FTlYpOwotKwot KwotKyAgOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4eF90cnlfbGlu ayAiJExJTkVOTyI7IHRoZW4gOgotKwotKyAgICAgICAgICAgICAgICBPUkFDTEVfT0NJX0xERkxB R1M9IiRvY2lfbGRmbGFncyAkb2NpX2xpYnMiCi0rICAgICAgICAgICAgICAgIG9jaV9saWJfZm91 bmQ9InllcyIKLSsgICAgICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6IHllcyIgPiY1Ci0rJGFzX2VjaG8gInllcyIgPiY2OyB9Ci0rCi0r ZWxzZQotKwotKyAgICAgICAgICAgICAgICBvY2lfbGliX2ZvdW5kPSJubyIKLSsgICAgICAgICAg ICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5v dCBmb3VuZCIgPiY1Ci0rJGFzX2VjaG8gIm5vdCBmb3VuZCIgPiY2OyB9Ci0rCi0rCi0rZmkKLSty bSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4kYWNfb2JqZXh0IFwKLSsgICAgY29uZnRl c3QkYWNfZXhlZXh0IGNvbmZ0ZXN0LiRhY19leHQKLSsgICAgICAgICAgICBhY19leHQ9Y3BwCi0r YWNfY3BwPSckQ1hYQ1BQICRDUFBGTEFHUycKLSthY19jb21waWxlPSckQ1hYIC1jICRDWFhGTEFH UyAkQ1BQRkxBR1MgY29uZnRlc3QuJGFjX2V4dCA+JjUnCi0rYWNfbGluaz0nJENYWCAtbyBjb25m dGVzdCRhY19leGVleHQgJENYWEZMQUdTICRDUFBGTEFHUyAkTERGTEFHUyBjb25mdGVzdC4kYWNf ZXh0ICRMSUJTID4mNScKLSthY19jb21waWxlcl9nbnU9JGFjX2N2X2N4eF9jb21waWxlcl9nbnUK LSsKLSsgICAgICAgIGZpCi0rCi0rICAgICAgICBDUFBGTEFHUz0iJHNhdmVkX0NQUEZMQUdTIgot KyAgICAgICAgTERGTEFHUz0iJHNhdmVkX0xERkxBR1MiCi0rICAgICAgICBMSUJTPSIkc2F2ZWRf TElCUyIKLSsgICAgZmkKLSsKLSsgICAgICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxPSRP UkFDTEVfT0NJX1JFUV9WRVJTSU9OCi0rCi0rICAgIGlmIHRlc3QgIiRvY2lfaGVhZGVyX2ZvdW5k IiA9ICJ5ZXMiIC1hICIkb2NpX2xpYl9mb3VuZCIgPSAieWVzIiAtYSBcCi0rICAgICAgICAtbiAi JG9yYWNsZV92ZXJzaW9uX3JlcSI7IHRoZW4KLSsKLSsgICAgICAgIG9yYWNsZV92ZXJzaW9uX21h am9yPWBjYXQgJG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCi0rICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NQUpPUl9WRVJTSU9OLionIFwKLSsgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01BSk9SX1ZF UlNJT04gICovLycgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3Mv ICAqXC9cKi4qXCpcLy8vJ2AKLSsKLSsgICAgICAgIG9yYWNsZV92ZXJzaW9uX21pbm9yPWBjYXQg JG9yYWNsZV9pbmNsdWRlX2Rpci9vY2kuaCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IGdyZXAgJyNkZWZpbmUuKk9DSV9NSU5PUl9WRVJTSU9OLionIFwKLSsgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgc2VkIC1lICdzLyNkZWZpbmUgT0NJX01JTk9SX1ZFUlNJT04gICov LycgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBzZWQgLWUgJ3MvICAqXC9cKi4q XCpcLy8vJ2AKLSsKLSsgICAgICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogY2hlY2tpbmcgaWYgT3JhY2xlIE9DSSB2ZXJzaW9uIGlzID49ICRvcmFjbGVfdmVyc2lv bl9yZXEiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGlmIE9yYWNsZSBPQ0kgdmVyc2lvbiBp cyA+PSAkb3JhY2xlX3ZlcnNpb25fcmVxLi4uICIgPiY2OyB9Ci0rCi0rICAgICAgICBpZiB0ZXN0 IC1uICIkb3JhY2xlX3ZlcnNpb25fbWFqb3IiIC1hIC1uICQib3JhY2xlX3ZlcnNpb25fbWlub3Ii OyB0aGVuCi0rCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSIkb3JhY2xlX3ZlcnNp b25fbWFqb3IuJG9yYWNsZV92ZXJzaW9uX21pbm9yIgotKwotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3JlcV9tYWpvcj1gZXhwciAkb3JhY2xlX3Zl cnNpb25fcmVxIDogJ1woWzAtOV0qXCknYAotKyAgICAgICAgICAgIG9yYWNsZV92ZXJzaW9uX3Jl cV9taW5vcj1gZXhwciAkb3JhY2xlX3ZlcnNpb25fcmVxIDogJ1swLTldKlwuXChbMC05XSpcKSdg Ci0rCi0rICAgICAgICAgICAgb3JhY2xlX3ZlcnNpb25fcmVxX251bWJlcj1gZXhwciAkb3JhY2xl X3ZlcnNpb25fcmVxX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwrICRvcmFjbGVfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMGAKLSsK LSsgICAgICAgICAgICAgICAgICAgICAgICBvcmFjbGVfdmVyc2lvbl9udW1iZXI9YGV4cHIgJG9y YWNsZV92ZXJzaW9uX21ham9yIFwqIDEwMDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcKyAkb3JhY2xlX3ZlcnNpb25fbWlub3IgXCogMTAwMGAKLSsKLSsgICAgICAg ICAgICBvcmFjbGVfdmVyc2lvbl9jaGVjaz1gZXhwciAkb3JhY2xlX3ZlcnNpb25fbnVtYmVyIFw+ XD0gJG9yYWNsZV92ZXJzaW9uX3JlcV9udW1iZXJgCi0rICAgICAgICAgICAgaWYgdGVzdCAiJG9y YWNsZV92ZXJzaW9uX2NoZWNrIiA9ICIxIjsgdGhlbgotKyAgICAgICAgICAgICAgICB7ICRhc19l Y2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogeWVzIiA+JjUKLSskYXNf ZWNobyAieWVzIiA+JjY7IH0KLSsKLSskYXNfZWNobyAiI2RlZmluZSBIQVZFX09SQUNMRSAxIiA+ PmNvbmZkZWZzLmgKLSsKLSsgICAgICAgICAgICBlbHNlCi0rICAgICAgICAgICAgICAgIHsgJGFz X2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFz X2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgICAgICAgICAgICAgYXNfZm5fZXJyb3IgJD8gIk9yYWNs ZSAkT1JBQ0xFX09DSV9WRVJTSU9OIGZvdW5kLCBidXQgcmVxdWlyZWQgdmVyc2lvbiBpcyAkb3Jh Y2xlX3ZlcnNpb25fcmVxIiAiJExJTkVOTyIgNQotKyAgICAgICAgICAgIGZpCi0rICAgICAgICBl bHNlCi0rICAgICAgICAgICAgT1JBQ0xFX09DSV9WRVJTSU9OPSJVTktOT1dOIgotKyAgICAgICAg ICAgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIg PiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IE9yYWNsZSB2ZXJzaW9uIHVua25vd24s IHByb2JhYmx5IE9DSSBvbGRlciB0aGFuIDEwLjIgaXMgYXZhaWxhYmxlIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBXQVJOSU5HOiBPcmFjbGUgdmVyc2lvbiB1bmtub3duLCBwcm9iYWJseSBPQ0kg b2xkZXIgdGhhbiAxMC4yIGlzIGF2YWlsYWJsZSIgPiYyO30KLSsgICAgICAgIGZpCi0rICAgIGZp Ci0rCi0rCi0rCi0rCi0rCi0rZmkKLSsgaWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9vcmFjbGUi ID0geHllczsgdGhlbgotKyAgSEFWRV9PUkFDTEVfVFJVRT0KLSsgIEhBVkVfT1JBQ0xFX0ZBTFNF PScjJwotK2Vsc2UKLSsgIEhBVkVfT1JBQ0xFX1RSVUU9JyMnCi0rICBIQVZFX09SQUNMRV9GQUxT RT0KLStmaQotKwotKyNPUkFDTEVfRElSUz0ib3JhY2xlIgotKwotKwotKwotKyMgLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQotKyMgU3VwcG9ydCBmb3IgUG9zdGdyZVNRTCBiYWNrZW5kCi0rIyAtLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBD aGVjayB3aGV0aGVyIC0tZW5hYmxlLWJhY2tlbmQtcG9zdGdyZXNxbCB3YXMgZ2l2ZW4uCi0raWYg dGVzdCAiJHtlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsK3NldH0iID0gc2V0OyB0aGVuIDoKLSsg IGVuYWJsZXZhbD0kZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbDsgIGlmIHRlc3QgIiRlbmFibGV2 YWwiID0gbm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KLSsg ICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsPXllcwotKyAgICAgIGZpCi0r ZWxzZQotKyAgIGVuYWJsZV9iYWNrZW5kX3Bvc3RncmVzcWw9bm8KLSsKLStmaQotKwotKwotK2lm IHRlc3QgIngkZW5hYmxlX2JhY2tlbmRfcG9zdGdyZXNxbCIgPSAieHllcyI7IHRoZW4KLSsgICBQ T1NUR1JFU1FMX0RJUlM9InBvc3RncmVzcWwiCi0rICAgUE9TVEdSRVNRTF9SRVFfVkVSU0lPTj0i Ny4xLjQiCi0rCi0rCi0rIyBDaGVjayB3aGV0aGVyIC0td2l0aC1wb3N0Z3Jlc3FsIHdhcyBnaXZl bi4KLStpZiB0ZXN0ICIke3dpdGhfcG9zdGdyZXNxbCtzZXR9IiA9IHNldDsgdGhlbiA6Ci0rICB3 aXRodmFsPSR3aXRoX3Bvc3RncmVzcWw7Ci0rCVBPU1RHUkVTUUxfaW5jX2NoZWNrPSIkd2l0aF9w b3N0Z3Jlc3FsL2luY2x1ZGUiCi0rICAgICAgICBpZiB0ZXN0ICIkd2l0aHZhbCIgPSAibm8iOyB0 aGVuCi0rICAgICAgICAgICAgd2FudF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGVsaWYgdGVz dCAiJHdpdGh2YWwiID0gInllcyI7IHRoZW4KLSsgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9 InllcyIKLSsgICAgICAgIGVsc2UKLSsgICAgICAgICAgICB3YW50X3Bvc3RncmVzcWw9InllcyIK LSsgICAgICAgICAgICBQR19DT05GSUc9IiR3aXRodmFsIgotKyAgICAgICAgZmkKLSsKLStlbHNl Ci0rICB3YW50X3Bvc3RncmVzcWw9InllcyIKLSsJUE9TVEdSRVNRTF9pbmNfY2hlY2s9Ii91c3Iv aW5jbHVkZSAvdXNyL2xvY2FsIC9vcHQiCi0rCi0rZmkKLSsKLSsKLSsgICAgUE9TVEdSRVNRTF9D RkxBR1M9IiIKLSsgICAgUE9TVEdSRVNRTF9MREZMQUdTPSIiCi0rICAgIFBPU1RHUkVTUUxfUE9T VEdSRVNRTD0iIgotKwotKwotKyAgICBpZiB0ZXN0ICIkd2FudF9wb3N0Z3Jlc3FsIiA9ICJ5ZXMi OyB0aGVuCi0rCi0rICAgICAgICBpZiB0ZXN0IC16ICIkUEdfQ09ORklHIiAtbyB0ZXN0OyB0aGVu Ci0rICAgICAgICAgICAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJwZ19jb25maWciLCBz byBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBwZ19jb25m aWc7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tpbmcgZm9yICRh Y193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wYXRoX1BHX0NPTkZJRys6fSBmYWxzZTsg dGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhc2UgJFBH X0NPTkZJRyBpbgotKyAgW1xcL10qIHwgPzpbXFwvXSopCi0rICBhY19jdl9wYXRoX1BHX0NPTkZJ Rz0iJFBHX0NPTkZJRyIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBh dGguCi0rICA7OwotKyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFU T1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRl c3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAk YWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRh Y193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wYXRoX1BHX0NPTkZJRz0iJGFzX2Rpci8kYWNf d29yZCRhY19leGVjX2V4dCIKLSsgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElO RU5PfTogZm91bmQgJGFzX2Rpci8kYWNfd29yZCRhY19leGVjX2V4dCIgPiY1Ci0rICAgIGJyZWFr IDIKLSsgIGZpCi0rZG9uZQotKyAgZG9uZQotK0lGUz0kYXNfc2F2ZV9JRlMKLSsKLSsgIDs7Ci0r ZXNhYwotK2ZpCi0rUEdfQ09ORklHPSRhY19jdl9wYXRoX1BHX0NPTkZJRwotK2lmIHRlc3QgLW4g IiRQR19DT05GSUciOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IHJlc3VsdDogJFBHX0NPTkZJRyIgPiY1Ci0rJGFzX2VjaG8gIiRQR19DT05GSUciID4m NjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTog cmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStmaQotKwotKwotKyAgICAg ICAgZmkKLSsKLSsgICAgICAgIGlmIHRlc3QgISAteCAiJFBHX0NPTkZJRyI7IHRoZW4KLSsgICAg ICAgICAgICBhc19mbl9lcnJvciAkPyAiJFBHX0NPTkZJRyBkb2VzIG5vdCBleGlzdCBvciBpdCBp cyBub3QgYW4gZXhlY3R1YWJsZSBmaWxlIiAiJExJTkVOTyIgNQotKyAgICAgICAgICAgIFBHX0NP TkZJRz0ibm8iCi0rICAgICAgICAgICAgZm91bmRfcG9zdGdyZXNxbD0ibm8iCi0rICAgICAgICBm aQotKwotKyAgICAgICAgaWYgdGVzdCAiJFBHX0NPTkZJRyIgIT0gIm5vIjsgdGhlbgotKyAgICAg ICAgICAgICMKLSsgICAgICAgICAgICAjIExvb2sgZm9yIFBvc3RncmVzcWwgQyBBUEkgaGVhZGVy cwotKyAgICAgICAgICAgICMKLSsgICAgICAgICAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IGNoZWNraW5nIGZvciBQb3N0Z3Jlc3FsIGluY2x1ZGUgZGlyZWN0b3J5 IiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyBmb3IgUG9zdGdyZXNxbCBpbmNsdWRlIGRpcmVj dG9yeS4uLiAiID4mNjsgfQotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfaW5jZGlyPQotKyAgICAg ICAgICAgIGZvciBwb3N0Z3Jlc3FsX2luY19kaXIgaW4gJFBPU1RHUkVTUUxfaW5jX2NoZWNrCi0r ICAgICAgICAgICAgZG8KLSsgICAgICAgICAgICAgICAgaWYgdGVzdCAtZCAiJHBvc3RncmVzcWxf aW5jX2RpciIgXAotKyAgICAgICAgICAgICAgICAmJiB0ZXN0IC1mICIkcG9zdGdyZXNxbF9pbmNf ZGlyL3Bvc3RncmVzX2V4dC5oIgotKyAgICAgICAgICAgICAgICB0aGVuCi0rICAgICAgICAgICAg ICAgICAgICBQT1NUR1JFU1FMX2luY2Rpcj0kcG9zdGdyZXNxbF9pbmNfZGlyCi0rICAgICAgICAg ICAgICAgICAgICBicmVhawotKyAgICAgICAgICAgICAgICBmaQotKyAgICAgICAgICAgIGRvbmUK LSsKLSsgICAgICAgICAgICBpZiB0ZXN0IC16ICIkUE9TVEdSRVNRTF9pbmNkaXIiCi0rICAgICAg ICAgICAgdGhlbgotKyAgICAgICAgICAgICAgICBhc19mbl9lcnJvciAkPyAiRGlkbid0IGZpbmQg dGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXIgaW4gJyRQT1NUR1JFU1FMX2luY19jaGVjayciICIk TElORU5PIiA1Ci0rICAgICAgICAgICAgZmkKLSsKLSsgICAgICAgICAgICBjYXNlICIkUE9TVEdS RVNRTF9pbmNkaXIiIGluCi0rICAgICAgICAgICAgICAgIC8qICkgOzsKLSsgICAgICAgICAgICAg ICAgKiApICBhc19mbl9lcnJvciAkPyAiVGhlIFBvc3RncmVzcWwgaW5jbHVkZSBkaXJlY3Rvcnkg KCRQT1NUR1JFU1FMX2luY2RpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLiIgIiRMSU5FTk8i IDUgOzsKLSsgICAgICAgICAgICBlc2FjCi0rCi0rICAgICAgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRQT1NUR1JFU1FMX2luY2RpciIgPiY1 Ci0rJGFzX2VjaG8gIiRQT1NUR1JFU1FMX2luY2RpciIgPiY2OyB9Ci0rCi0rICAgICAgICAgICAg aWYgdGVzdCAiJFBPU1RHUkVTUUxfaW5jZGlyIiA9ICIvdXNyL2luY2x1ZGUiOyB0aGVuCi0rICAg ICAgICAgICAgICBQT1NUR1JFU1FMX0NGTEFHUz0iIgotKyAgICAgICAgICAgIGVsc2UKLSsgICAg ICAgICAgICAgIFBPU1RHUkVTUUxfQ0ZMQUdTPSItSSR7UE9TVEdSRVNRTF9pbmNkaXJ9IgotKyAg ICAgICAgICAgIGZpCi0rCi0rICAgICAgICAgICAgUE9TVEdSRVNRTF9MREZMQUdTPSItTGAkUEdf Q09ORklHIC0tbGliZGlyYCAtbHBxIgotKwotKyAgICAgICAgICAgIFBPU1RHUkVTUUxfVkVSU0lP Tj1gJFBHX0NPTkZJRyAtLXZlcnNpb24gfCBzZWQgLWUgJ3MjUG9zdGdyZVNRTCAjIydgCi0rCi0r Ci0rJGFzX2VjaG8gIiNkZWZpbmUgSEFWRV9QT1NUR1JFU1FMIDEiID4+Y29uZmRlZnMuaAotKwot KwotKyAgICAgICAgICAgIGZvdW5kX3Bvc3RncmVzcWw9InllcyIKLSsgICAgICAgIGVsc2UKLSsg ICAgICAgICAgICBmb3VuZF9wb3N0Z3Jlc3FsPSJubyIKLSsgICAgICAgIGZpCi0rICAgIGZpCi0r Ci0rCi0rCi0rICAgIHBvc3RncmVzcWxfdmVyc2lvbl9yZXE9JFBPU1RHUkVTUUxfUkVRX1ZFUlNJ T04KLSsKLSsgICAgaWYgdGVzdCAiJGZvdW5kX3Bvc3RncmVzcWwiID0gInllcyIgLWEgLW4gIiRw b3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIjsgdGhlbgotKwotKyAgICAgICAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBpZiBQb3N0Z3JlU1FMIHZlcnNpb24g aXMgPj0gJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGlmIFBvc3RncmVTUUwgdmVyc2lvbiBpcyA+PSAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcS4uLiAi ID4mNjsgfQotKwotKyAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9y ZXFfbWFqb3I9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9yZXEgOiAnXChbMC05XSpcKSdgCi0r ICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21pbm9yPWBleHByICRwb3N0Z3Jlc3FsX3Zl cnNpb25fcmVxIDogJ1swLTldKlwuXChbMC05XSpcKSdgCi0rICAgICAgICBwb3N0Z3Jlc3FsX3Zl cnNpb25fcmVxX21pY3JvPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxIDogJ1swLTldKlwu WzAtOV0qXC5cKFswLTldKlwpJ2AKLSsgICAgICAgIGlmIHRlc3QgIngkcG9zdGdyZXNxbF92ZXJz aW9uX3JlcV9taWNybyIgPSAieCI7IHRoZW4KLSsgICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNp b25fcmVxX21pY3JvPSIwIgotKyAgICAgICAgZmkKLSsKLSsgICAgICAgIHBvc3RncmVzcWxfdmVy c2lvbl9yZXFfbnVtYmVyPWBleHByICRwb3N0Z3Jlc3FsX3ZlcnNpb25fcmVxX21ham9yIFwqIDEw MDAwMDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVz cWxfdmVyc2lvbl9yZXFfbWlub3IgXCogMTAwMCBcCi0rICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcKyAkcG9zdGdyZXNxbF92ZXJzaW9uX3JlcV9taWNyb2AKLSsKLSsgICAgICAg ICAgICAgICAgICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWFqb3I9YGV4cHIgJFBPU1RHUkVT UUxfVkVSU0lPTiA6ICdcKFswLTldKlwpJ2AKLSsgICAgICAgIHBvc3RncmVzcWxfdmVyc2lvbl9t aW5vcj1gZXhwciAkUE9TVEdSRVNRTF9WRVJTSU9OIDogJ1swLTldKlwuXChbMC05XSpcKSdgCi0r ICAgICAgICBwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm89YGV4cHIgJFBPU1RHUkVTUUxfVkVSU0lP TiA6ICdbMC05XSpcLlswLTldKlwuXChbMC05XSpcKSdgCi0rICAgICAgICBpZiB0ZXN0ICJ4JHBv c3RncmVzcWxfdmVyc2lvbl9taWNybyIgPSAieCI7IHRoZW4KLSsgICAgICAgICAgICBwb3N0Z3Jl c3FsX3ZlcnNpb25fbWljcm89IjAiCi0rICAgICAgICBmaQotKwotKyAgICAgICAgcG9zdGdyZXNx bF92ZXJzaW9uX251bWJlcj1gZXhwciAkcG9zdGdyZXNxbF92ZXJzaW9uX21ham9yIFwqIDEwMDAw MDAgXAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCsgJHBvc3RncmVzcWxf dmVyc2lvbl9taW5vciBcKiAxMDAwIFwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwrICRwb3N0Z3Jlc3FsX3ZlcnNpb25fbWljcm9gCi0rCi0rICAgICAgICBwb3N0Z3Jlc3Fs X3ZlcnNpb25fY2hlY2s9YGV4cHIgJHBvc3RncmVzcWxfdmVyc2lvbl9udW1iZXIgXD5cPSAkcG9z dGdyZXNxbF92ZXJzaW9uX3JlcV9udW1iZXJgCi0rICAgICAgICBpZiB0ZXN0ICIkcG9zdGdyZXNx bF92ZXJzaW9uX2NoZWNrIiA9ICIxIjsgdGhlbgotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRh c19tZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiB5ZXMiID4mNQotKyRhc19lY2hvICJ5 ZXMiID4mNjsgfQotKyAgICAgICAgZWxzZQotKyAgICAgICAgICAgIHsgJGFzX2VjaG8gIiRhc19t ZToke2FzX2xpbmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+ JjY7IH0KLSsgICAgICAgIGZpCi0rICAgIGZpCi0rCi0rCi0rCi0rCi0rCi0rZmkKLSsgaWYgdGVz dCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsIiA9IHh5ZXM7IHRoZW4KLSsgIEhBVkVfUE9T VEdSRVNRTF9UUlVFPQotKyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNFPScjJwotK2Vsc2UKLSsgIEhB VkVfUE9TVEdSRVNRTF9UUlVFPScjJwotKyAgSEFWRV9QT1NUR1JFU1FMX0ZBTFNFPQotK2ZpCi0r Ci0rI1BPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKLSsKLSsKLSsKLSsKLSsjIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KLSsjIFN1cHBvcnQgZm9yIGRvY3VtZW50YXRpb24KLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIENoZWNr cyBmb3IgZG9jdW1lbnRhdGlvbiBidWlsZCB0b29scwotKyNBQ19DSEVDS19QUk9HKFt0ZXhpbmZv X29rXSwgW3RleGluZm9dLCBbeWVzXSwgW25vXSkKLSsjaWYgdGVzdCAieCRlbmFibGVfaW5mb19k b2MiICE9IHhubzsgdGhlbgotKyMgIHRlc3QgIngkdGV4aW5mb19vayIgIT0geHllcyAmJiBlbmFi bGVfaW5mb19kb2M9bm8KLSsjICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0sIFtdKQotKyNm aQotKyBpZiB0ZXN0ICJ4JGVuYWJsZV9pbmZvX2RvYyIgPSB4eWVzOyB0aGVuCi0rICBJTkZPX0RP Q19UUlVFPQotKyAgSU5GT19ET0NfRkFMU0U9JyMnCi0rZWxzZQotKyAgSU5GT19ET0NfVFJVRT0n IycKLSsgIElORk9fRE9DX0ZBTFNFPQotK2ZpCi0rCi0rCi0rIyBDaGVja3MgZm9yIGRvY3VtZW50 YXRpb24gYnVpbGQgdG9vbHMKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdvcmQgb2YgImRveHlnZW4i LCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3NldCBkdW1teSBkb3h5 Z2VuOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99 OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAk YWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19kb3h5Z2VuX29rKzp9IGZhbHNl OyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAgaWYgdGVz dCAtbiAiJGRveHlnZW5fb2siOyB0aGVuCi0rICBhY19jdl9wcm9nX2RveHlnZW5fb2s9IiRkb3h5 Z2VuX29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2 ZV9JRlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStk bwotKyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4K LSsgICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRv Ci0rICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190 ZXN0X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2 X3Byb2dfZG94eWdlbl9vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAg YnJlYWsgMgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAg dGVzdCAteiAiJGFjX2N2X3Byb2dfZG94eWdlbl9vayIgJiYgYWNfY3ZfcHJvZ19kb3h5Z2VuX29r PSJubyIKLStmaQotK2ZpCi0rZG94eWdlbl9vaz0kYWNfY3ZfcHJvZ19kb3h5Z2VuX29rCi0raWYg dGVzdCAtbiAiJGRveHlnZW5fb2siOyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19s aW5lbm8tJExJTkVOT306IHJlc3VsdDogJGRveHlnZW5fb2siID4mNQotKyRhc19lY2hvICIkZG94 eWdlbl9vayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0r Ci0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJsYXRleCIsIHNvIGl0IGNhbiBiZSBh IHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGxhdGV4OyBhY193b3JkPSQyCi0r eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFj X3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsg fQotK2lmICR7YWNfY3ZfcHJvZ19sYXRleF9vays6fSBmYWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNo b19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4gIiRsYXRleF9vayI7IHRo ZW4KLSsgIGFjX2N2X3Byb2dfbGF0ZXhfb2s9IiRsYXRleF9vayIgIyBMZXQgdGhlIHVzZXIgb3Zl cnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBB UkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsg IHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAn JyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFj X2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2xhdGV4X29rPSJ5ZXMiCi0rICAg ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19kaXIvJGFj X3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUKLSsgIGRv bmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0IC16ICIkYWNfY3ZfcHJvZ19sYXRleF9v ayIgJiYgYWNfY3ZfcHJvZ19sYXRleF9vaz0ibm8iCi0rZmkKLStmaQotK2xhdGV4X29rPSRhY19j dl9wcm9nX2xhdGV4X29rCi0raWYgdGVzdCAtbiAiJGxhdGV4X29rIjsgdGhlbgotKyAgeyAkYXNf ZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRsYXRleF9vayIgPiY1 Ci0rJGFzX2VjaG8gIiRsYXRleF9vayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFz X21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8i ID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3JkIG9mICJkdmlwcyIs IHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0IGR1bW15IGR2aXBz OyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBj aGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5nIGZvciAkYWNf d29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19kdmlwc19vays6fSBmYWxzZTsgdGhl biA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRlc3QgLW4g IiRkdmlwc19vayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfZHZpcHNfb2s9IiRkdmlwc19vayIgIyBM ZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7 IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0k YXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBh Y19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0 ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNf ZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2R2aXBz X29rPSJ5ZXMiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZv dW5kICRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBm aQotK2RvbmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0IC16ICIkYWNf Y3ZfcHJvZ19kdmlwc19vayIgJiYgYWNfY3ZfcHJvZ19kdmlwc19vaz0ibm8iCi0rZmkKLStmaQot K2R2aXBzX29rPSRhY19jdl9wcm9nX2R2aXBzX29rCi0raWYgdGVzdCAtbiAiJGR2aXBzX29rIjsg dGhlbgotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6 ICRkdmlwc19vayIgPiY1Ci0rJGFzX2VjaG8gIiRkdmlwc19vayIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICJncyIsIHNvIGl0IGNhbiBiZSBhIHByb2dyYW0gbmFtZSB3aXRoIGFyZ3MuCi0rc2V0 IGR1bW15IGdzOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRM SU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNraW5n IGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19nc19vays6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlmIHRl c3QgLW4gIiRnc19vayI7IHRoZW4KLSsgIGFjX2N2X3Byb2dfZ3Nfb2s9IiRnc19vayIgIyBMZXQg dGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJRlM7IElG Uz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNf c2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19l eGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0 IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGly LyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX2dzX29rPSJ5 ZXMiCi0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRh c19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2Rv bmUKLSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICB0ZXN0IC16ICIkYWNfY3ZfcHJv Z19nc19vayIgJiYgYWNfY3ZfcHJvZ19nc19vaz0ibm8iCi0rZmkKLStmaQotK2dzX29rPSRhY19j dl9wcm9nX2dzX29rCi0raWYgdGVzdCAtbiAiJGdzX29rIjsgdGhlbgotKyAgeyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRnc19vayIgPiY1Ci0rJGFzX2Vj aG8gIiRnc19vayIgPiY2OyB9Ci0rZWxzZQotKyAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGlu ZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUKLSskYXNfZWNobyAibm8iID4mNjsgfQotK2Zp Ci0rCi0rCi0raWYgdGVzdCAieCRlbmFibGVfaHRtbF9kb2MiICE9IHhubzsgdGhlbgotKyAgdGVz dCAieCRkb3h5Z2VuX29rIiAhPSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgdGVzdCAi eCRsYXRleF9vayIgIT0geHllcyAmJiBlbmFibGVfaHRtbF9kb2M9bm8KLSsgIHRlc3QgIngkZHZp cHNfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGdzX29rIiAh PSB4eWVzICYmIGVuYWJsZV9odG1sX2RvYz1ubwotKyAgIyBFeHRyYWN0IHRoZSBmaXJzdCB3b3Jk IG9mICJwZXJsIiwgc28gaXQgY2FuIGJlIGEgcHJvZ3JhbSBuYW1lIHdpdGggYXJncy4KLStzZXQg ZHVtbXkgcGVybDsgYWNfd29yZD0kMgotK3sgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0k TElORU5PfTogY2hlY2tpbmcgZm9yICRhY193b3JkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2lu ZyBmb3IgJGFjX3dvcmQuLi4gIiA+JjY7IH0KLStpZiAke2FjX2N2X3BhdGhfUEVSTCs6fSBmYWxz ZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGNhc2Ug JFBFUkwgaW4KLSsgIFtcXC9dKiB8ID86W1xcL10qKQotKyAgYWNfY3ZfcGF0aF9QRVJMPSIkUEVS TCIgIyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3Qgd2l0aCBhIHBhdGguCi0rICA7Owot KyAgKikKLSsgIGFzX3NhdmVfSUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNf ZGlyIGluICRQQVRICi0rZG8KLSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19k aXIiICYmIGFzX2Rpcj0uCi0rICAgIGZvciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJs ZV9leHRlbnNpb25zOyBkbwotKyAgaWYgeyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4 ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsg dGhlbgotKyAgICBhY19jdl9wYXRoX1BFUkw9IiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQi Ci0rICAgICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IGZvdW5kICRhc19k aXIvJGFjX3dvcmQkYWNfZXhlY19leHQiID4mNQotKyAgICBicmVhayAyCi0rICBmaQotK2RvbmUK LSsgIGRvbmUKLStJRlM9JGFzX3NhdmVfSUZTCi0rCi0rICA7OwotK2VzYWMKLStmaQotK1BFUkw9 JGFjX2N2X3BhdGhfUEVSTAotK2lmIHRlc3QgLW4gIiRQRVJMIjsgdGhlbgotKyAgeyAkYXNfZWNo byAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRQRVJMIiA+JjUKLSskYXNf ZWNobyAiJFBFUkwiID4mNjsgfQotK2Vsc2UKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xp bmVuby0kTElORU5PfTogcmVzdWx0OiBubyIgPiY1Ci0rJGFzX2VjaG8gIm5vIiA+JjY7IH0KLStm aQotKwotKwotK2ZpCi0rIGlmIHRlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiA9IHh5ZXM7IHRoZW4K LSsgIEhUTUxfRE9DX1RSVUU9Ci0rICBIVE1MX0RPQ19GQUxTRT0nIycKLStlbHNlCi0rICBIVE1M X0RPQ19UUlVFPScjJwotKyAgSFRNTF9ET0NfRkFMU0U9Ci0rZmkKLSsKLSsKLSsKLSsjIENoZWNr IGZvciBkaWZmIHByb2dyYW0gdXNlZCBmb3IgdGVzdHMKLSsjIEV4dHJhY3QgdGhlIGZpcnN0IHdv cmQgb2YgImRpZmYiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3Nl dCBkdW1teSBkaWZmOyBhY193b3JkPSQyCi0reyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5v LSRMSU5FTk99OiBjaGVja2luZyBmb3IgJGFjX3dvcmQiID4mNQotKyRhc19lY2hvX24gImNoZWNr aW5nIGZvciAkYWNfd29yZC4uLiAiID4mNjsgfQotK2lmICR7YWNfY3ZfcHJvZ19kaWZmX29rKzp9 IGZhbHNlOyB0aGVuIDoKLSsgICRhc19lY2hvX24gIihjYWNoZWQpICIgPiY2Ci0rZWxzZQotKyAg aWYgdGVzdCAtbiAiJGRpZmZfb2siOyB0aGVuCi0rICBhY19jdl9wcm9nX2RpZmZfb2s9IiRkaWZm X29rIiAjIExldCB0aGUgdXNlciBvdmVycmlkZSB0aGUgdGVzdC4KLStlbHNlCi0rYXNfc2F2ZV9J RlM9JElGUzsgSUZTPSRQQVRIX1NFUEFSQVRPUgotK2ZvciBhc19kaXIgaW4gJFBBVEgKLStkbwot KyAgSUZTPSRhc19zYXZlX0lGUwotKyAgdGVzdCAteiAiJGFzX2RpciIgJiYgYXNfZGlyPS4KLSsg ICAgZm9yIGFjX2V4ZWNfZXh0IGluICcnICRhY19leGVjdXRhYmxlX2V4dGVuc2lvbnM7IGRvCi0r ICBpZiB7IHRlc3QgLWYgIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiICYmICRhc190ZXN0 X3ggIiRhc19kaXIvJGFjX3dvcmQkYWNfZXhlY19leHQiOyB9OyB0aGVuCi0rICAgIGFjX2N2X3By b2dfZGlmZl9vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5F Tk99OiBmb3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsg MgotKyAgZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVzdCAt eiAiJGFjX2N2X3Byb2dfZGlmZl9vayIgJiYgYWNfY3ZfcHJvZ19kaWZmX29rPSJubyIKLStmaQot K2ZpCi0rZGlmZl9vaz0kYWNfY3ZfcHJvZ19kaWZmX29rCi0raWYgdGVzdCAtbiAiJGRpZmZfb2si OyB0aGVuCi0rICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3Vs dDogJGRpZmZfb2siID4mNQotKyRhc19lY2hvICIkZGlmZl9vayIgPiY2OyB9Ci0rZWxzZQotKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6IG5vIiA+JjUK LSskYXNfZWNobyAibm8iID4mNjsgfQotK2ZpCi0rCi0rCi0rIyBFeHRyYWN0IHRoZSBmaXJzdCB3 b3JkIG9mICJzZWQiLCBzbyBpdCBjYW4gYmUgYSBwcm9ncmFtIG5hbWUgd2l0aCBhcmdzLgotK3Nl dCBkdW1teSBzZWQ7IGFjX3dvcmQ9JDIKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8t JExJTkVOT306IGNoZWNraW5nIGZvciAkYWNfd29yZCIgPiY1Ci0rJGFzX2VjaG9fbiAiY2hlY2tp bmcgZm9yICRhY193b3JkLi4uICIgPiY2OyB9Ci0raWYgJHthY19jdl9wcm9nX3NlZF9vays6fSBm YWxzZTsgdGhlbiA6Ci0rICAkYXNfZWNob19uICIoY2FjaGVkKSAiID4mNgotK2Vsc2UKLSsgIGlm IHRlc3QgLW4gIiRzZWRfb2siOyB0aGVuCi0rICBhY19jdl9wcm9nX3NlZF9vaz0iJHNlZF9vayIg IyBMZXQgdGhlIHVzZXIgb3ZlcnJpZGUgdGhlIHRlc3QuCi0rZWxzZQotK2FzX3NhdmVfSUZTPSRJ RlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8KLSsgIElG Uz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0rICAgIGZv ciBhY19leGVjX2V4dCBpbiAnJyAkYWNfZXhlY3V0YWJsZV9leHRlbnNpb25zOyBkbwotKyAgaWYg eyB0ZXN0IC1mICIkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiAmJiAkYXNfdGVzdF94ICIk YXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IjsgfTsgdGhlbgotKyAgICBhY19jdl9wcm9nX3Nl ZF9vaz0ieWVzIgotKyAgICAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBm b3VuZCAkYXNfZGlyLyRhY193b3JkJGFjX2V4ZWNfZXh0IiA+JjUKLSsgICAgYnJlYWsgMgotKyAg ZmkKLStkb25lCi0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgdGVzdCAteiAiJGFj X2N2X3Byb2dfc2VkX29rIiAmJiBhY19jdl9wcm9nX3NlZF9vaz0ibm8iCi0rZmkKLStmaQotK3Nl ZF9vaz0kYWNfY3ZfcHJvZ19zZWRfb2sKLStpZiB0ZXN0IC1uICIkc2VkX29rIjsgdGhlbgotKyAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRzZWRfb2si ID4mNQotKyRhc19lY2hvICIkc2VkX29rIiA+JjY7IH0KLStlbHNlCi0rICB7ICRhc19lY2hvICIk YXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IHJlc3VsdDogbm8iID4mNQotKyRhc19lY2hvICJu byIgPiY2OyB9Ci0rZmkKLSsKLSsKLStlbmFibGVfdGVzdHM9eWVzCi0rdGVzdCAieCRkaWZmX29r IiAhPSB4eWVzICYmIGVuYWJsZV90ZXN0cz1ubwotK3Rlc3QgIngkc2VkX29rIiAhPSB4eWVzICYm IGVuYWJsZV90ZXN0cz1ubwotKyBpZiB0ZXN0ICJ4JGVuYWJsZV90ZXN0cyIgPSB4eWVzOyB0aGVu Ci0rICBSVU5fVEVTVFNfVFJVRT0KLSsgIFJVTl9URVNUU19GQUxTRT0nIycKLStlbHNlCi0rICBS VU5fVEVTVFNfVFJVRT0nIycKLSsgIFJVTl9URVNUU19GQUxTRT0KLStmaQotKwotKwotKwotKyMg Q2hlY2tzIGZvciBoZWFkZXIgZmlsZXMKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5l bm8tJExJTkVOT306IGNoZWNraW5nIGZvciBBTlNJIEMgaGVhZGVyIGZpbGVzIiA+JjUKLSskYXNf ZWNob19uICJjaGVja2luZyBmb3IgQU5TSSBDIGhlYWRlciBmaWxlcy4uLiAiID4mNjsgfQotK2lm ICR7YWNfY3ZfaGVhZGVyX3N0ZGMrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAiKGNh Y2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz dC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxzdGRsaWIuaD4K LSsjaW5jbHVkZSA8c3RkYXJnLmg+Ci0rI2luY2x1ZGUgPHN0cmluZy5oPgotKyNpbmNsdWRlIDxm bG9hdC5oPgotKwotK2ludAotK21haW4gKCkKLSt7Ci0rCi0rICA7Ci0rICByZXR1cm4gMDsKLSt9 Ci0rX0FDRU9GCi0raWYgYWNfZm5fY3h4X3RyeV9jb21waWxlICIkTElORU5PIjsgdGhlbiA6Ci0r ICBhY19jdl9oZWFkZXJfc3RkYz15ZXMKLStlbHNlCi0rICBhY19jdl9oZWFkZXJfc3RkYz1ubwot K2ZpCi0rcm0gLWYgY29yZSBjb25mdGVzdC5lcnIgY29uZnRlc3QuJGFjX29iamV4dCBjb25mdGVz dC4kYWNfZXh0Ci0rCi0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsg ICMgU3VuT1MgNC54IHN0cmluZy5oIGRvZXMgbm90IGRlY2xhcmUgbWVtKiwgY29udHJhcnkgdG8g QU5TSS4KLSsgIGNhdCBjb25mZGVmcy5oIC0gPDxfQUNFT0YgPmNvbmZ0ZXN0LiRhY19leHQKLSsv KiBlbmQgY29uZmRlZnMuaC4gICovCi0rI2luY2x1ZGUgPHN0cmluZy5oPgotKwotK19BQ0VPRgot K2lmIChldmFsICIkYWNfY3BwIGNvbmZ0ZXN0LiRhY19leHQiKSAyPiY1IHwKLSsgICRFR1JFUCAi bWVtY2hyIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4gOgotKwotK2Vsc2UKLSsgIGFjX2N2X2hlYWRl cl9zdGRjPW5vCi0rZmkKLStybSAtZiBjb25mdGVzdCoKLSsKLStmaQotKwotK2lmIHRlc3QgJGFj X2N2X2hlYWRlcl9zdGRjID0geWVzOyB0aGVuCi0rICAjIElTQyAyLjAuMiBzdGRsaWIuaCBkb2Vz IG5vdCBkZWNsYXJlIGZyZWUsIGNvbnRyYXJ5IHRvIEFOU0kuCi0rICBjYXQgY29uZmRlZnMuaCAt IDw8X0FDRU9GID5jb25mdGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNp bmNsdWRlIDxzdGRsaWIuaD4KLSsKLStfQUNFT0YKLStpZiAoZXZhbCAiJGFjX2NwcCBjb25mdGVz dC4kYWNfZXh0IikgMj4mNSB8Ci0rICAkRUdSRVAgImZyZWUiID4vZGV2L251bGwgMj4mMTsgdGhl biA6Ci0rCi0rZWxzZQotKyAgYWNfY3ZfaGVhZGVyX3N0ZGM9bm8KLStmaQotK3JtIC1mIGNvbmZ0 ZXN0KgotKwotK2ZpCi0rCi0raWYgdGVzdCAkYWNfY3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4K LSsgICMgL2Jpbi9jYyBpbiBJcml4LTQuMC41IGdldHMgbm9uLUFOU0kgY3R5cGUgbWFjcm9zIHVu bGVzcyB1c2luZyAtYW5zaS4KLSsgIGlmIHRlc3QgIiRjcm9zc19jb21waWxpbmciID0geWVzOyB0 aGVuIDoKLSsgIDoKLStlbHNlCi0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25mdGVz dC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxjdHlwZS5oPgot KyNpbmNsdWRlIDxzdGRsaWIuaD4KLSsjaWYgKCgnICcgJiAweDBGRikgPT0gMHgwMjApCi0rIyBk ZWZpbmUgSVNMT1dFUihjKSAoJ2EnIDw9IChjKSAmJiAoYykgPD0gJ3onKQotKyMgZGVmaW5lIFRP VVBQRVIoYykgKElTTE9XRVIoYykgPyAnQScgKyAoKGMpIC0gJ2EnKSA6IChjKSkKLSsjZWxzZQot KyMgZGVmaW5lIElTTE9XRVIoYykgXAotKwkJICAgKCgnYScgPD0gKGMpICYmIChjKSA8PSAnaScp IFwKLSsJCSAgICAgfHwgKCdqJyA8PSAoYykgJiYgKGMpIDw9ICdyJykgXAotKwkJICAgICB8fCAo J3MnIDw9IChjKSAmJiAoYykgPD0gJ3onKSkKLSsjIGRlZmluZSBUT1VQUEVSKGMpIChJU0xPV0VS KGMpID8gKChjKSB8IDB4NDApIDogKGMpKQotKyNlbmRpZgotKwotKyNkZWZpbmUgWE9SKGUsIGYp ICgoKGUpICYmICEoZikpIHx8ICghKGUpICYmIChmKSkpCi0raW50Ci0rbWFpbiAoKQotK3sKLSsg IGludCBpOwotKyAgZm9yIChpID0gMDsgaSA8IDI1NjsgaSsrKQotKyAgICBpZiAoWE9SIChpc2xv d2VyIChpKSwgSVNMT1dFUiAoaSkpCi0rCXx8IHRvdXBwZXIgKGkpICE9IFRPVVBQRVIgKGkpKQot KyAgICAgIHJldHVybiAyOwotKyAgcmV0dXJuIDA7Ci0rfQotK19BQ0VPRgotK2lmIGFjX2ZuX2N4 eF90cnlfcnVuICIkTElORU5PIjsgdGhlbiA6Ci0rCi0rZWxzZQotKyAgYWNfY3ZfaGVhZGVyX3N0 ZGM9bm8KLStmaQotK3JtIC1mIGNvcmUgKi5jb3JlIGNvcmUuY29uZnRlc3QuKiBnbW9uLm91dCBi Yi5vdXQgY29uZnRlc3QkYWNfZXhlZXh0IFwKLSsgIGNvbmZ0ZXN0LiRhY19vYmpleHQgY29uZnRl c3QuYmVhbSBjb25mdGVzdC4kYWNfZXh0Ci0rZmkKLSsKLStmaQotK2ZpCi0reyAkYXNfZWNobyAi JGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiByZXN1bHQ6ICRhY19jdl9oZWFkZXJfc3RkYyIg PiY1Ci0rJGFzX2VjaG8gIiRhY19jdl9oZWFkZXJfc3RkYyIgPiY2OyB9Ci0raWYgdGVzdCAkYWNf Y3ZfaGVhZGVyX3N0ZGMgPSB5ZXM7IHRoZW4KLSsKLSskYXNfZWNobyAiI2RlZmluZSBTVERDX0hF QURFUlMgMSIgPj5jb25mZGVmcy5oCi0rCi0rZmkKLSsKLSt7ICRhc19lY2hvICIkYXNfbWU6JHth c19saW5lbm8tJExJTkVOT306IGNoZWNraW5nIHdoZXRoZXIgdGltZS5oIGFuZCBzeXMvdGltZS5o IG1heSBib3RoIGJlIGluY2x1ZGVkIiA+JjUKLSskYXNfZWNob19uICJjaGVja2luZyB3aGV0aGVy IHRpbWUuaCBhbmQgc3lzL3RpbWUuaCBtYXkgYm90aCBiZSBpbmNsdWRlZC4uLiAiID4mNjsgfQot K2lmICR7YWNfY3ZfaGVhZGVyX3RpbWUrOn0gZmFsc2U7IHRoZW4gOgotKyAgJGFzX2VjaG9fbiAi KGNhY2hlZCkgIiA+JjYKLStlbHNlCi0rICBjYXQgY29uZmRlZnMuaCAtIDw8X0FDRU9GID5jb25m dGVzdC4kYWNfZXh0Ci0rLyogZW5kIGNvbmZkZWZzLmguICAqLwotKyNpbmNsdWRlIDxzeXMvdHlw ZXMuaD4KLSsjaW5jbHVkZSA8c3lzL3RpbWUuaD4KLSsjaW5jbHVkZSA8dGltZS5oPgotKwotK2lu dAotK21haW4gKCkKLSt7Ci0raWYgKChzdHJ1Y3QgdG0gKikgMCkKLStyZXR1cm4gMDsKLSsgIDsK LSsgIHJldHVybiAwOwotK30KLStfQUNFT0YKLStpZiBhY19mbl9jeHhfdHJ5X2NvbXBpbGUgIiRM SU5FTk8iOyB0aGVuIDoKLSsgIGFjX2N2X2hlYWRlcl90aW1lPXllcwotK2Vsc2UKLSsgIGFjX2N2 X2hlYWRlcl90aW1lPW5vCi0rZmkKLStybSAtZiBjb3JlIGNvbmZ0ZXN0LmVyciBjb25mdGVzdC4k YWNfb2JqZXh0IGNvbmZ0ZXN0LiRhY19leHQKLStmaQotK3sgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogcmVzdWx0OiAkYWNfY3ZfaGVhZGVyX3RpbWUiID4mNQotKyRhc19l Y2hvICIkYWNfY3ZfaGVhZGVyX3RpbWUiID4mNjsgfQotK2lmIHRlc3QgJGFjX2N2X2hlYWRlcl90 aW1lID0geWVzOyB0aGVuCi0rCi0rJGFzX2VjaG8gIiNkZWZpbmUgVElNRV9XSVRIX1NZU19USU1F IDEiID4+Y29uZmRlZnMuaAotKwotK2ZpCi0rCi0rZm9yIGFjX2hlYWRlciBpbiBjbWF0aCBcCi0r ICBkZXF1ZSBcCi0rICBmc3RyZWFtIFwKLSsgIGlvbWFuaXAgXAotKyAgaW9zdHJlYW0gXAotKyAg c3N0cmVhbSBcCi0rICBsaW1pdHMgXAotKyAgbGlzdCBcCi0rICBzZXQgXAotKyAgdmVjdG9yIFwK LSsgIG1hcCBcCi0rICBxdWV1ZSBcCi0rICBzdGRleGNlcHQgXAotKyAgc3RyaW5nCi0rZG8gOgot KyAgYXNfYWNfSGVhZGVyPWAkYXNfZWNobyAiYWNfY3ZfaGVhZGVyXyRhY19oZWFkZXIiIHwgJGFz X3RyX3NoYAotK2FjX2ZuX2N4eF9jaGVja19oZWFkZXJfbW9uZ3JlbCAiJExJTkVOTyIgIiRhY19o ZWFkZXIiICIkYXNfYWNfSGVhZGVyIiAiJGFjX2luY2x1ZGVzX2RlZmF1bHQiCi0raWYgZXZhbCB0 ZXN0IFwieFwkIiRhc19hY19IZWFkZXIiXCIgPSB4InllcyI7IHRoZW4gOgotKyAgY2F0ID4+Y29u ZmRlZnMuaCA8PF9BQ0VPRgotKyNkZWZpbmUgYCRhc19lY2hvICJIQVZFXyRhY19oZWFkZXIiIHwg JGFzX3RyX2NwcGAgMQotK19BQ0VPRgotKwotK2ZpCi0rCi0rZG9uZQotKwotKwotKwotKyMgRGVm aW5lIGNvbmZpZ3VyZWQgZmlsZXMKLSthY19jb25maWdfZmlsZXM9IiRhY19jb25maWdfZmlsZXMg TWFrZWZpbGUgc29jaS1jb25maWcgc29jaS5wYyBzb2NpL01ha2VmaWxlIHNvY2kvY29yZS9NYWtl ZmlsZSBzb2NpL2NvcmUvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL01ha2VmaWxlIHNvY2kv YmFja2VuZHMvbXlzcWwvTWFrZWZpbGUgc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2VmaWxl IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvdGVzdC9NYWtlZmlsZSBzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZSBzb2NpL2JhY2tl bmRzL29yYWNsZS90ZXN0L01ha2VmaWxlIG1hbi9NYWtlZmlsZSBkb2MvTWFrZWZpbGUgZG9jL2Jh Y2tlbmRzL01ha2VmaWxlIGJ1aWxkL01ha2VmaWxlIGJ1aWxkL3VuaXgvTWFrZWZpbGUgYnVpbGQv bXN2YzgwL01ha2VmaWxlIGJ1aWxkL21zdmM4MC9kbGwvTWFrZWZpbGUgYnVpbGQvbXN2YzgwL2xp Yi9NYWtlZmlsZSIKLSsKLSsKLStjYXQgPmNvbmZjYWNoZSA8PFxfQUNFT0YKLSsjIFRoaXMgZmls ZSBpcyBhIHNoZWxsIHNjcmlwdCB0aGF0IGNhY2hlcyB0aGUgcmVzdWx0cyBvZiBjb25maWd1cmUK LSsjIHRlc3RzIHJ1biBvbiB0aGlzIHN5c3RlbSBzbyB0aGV5IGNhbiBiZSBzaGFyZWQgYmV0d2Vl biBjb25maWd1cmUKLSsjIHNjcmlwdHMgYW5kIGNvbmZpZ3VyZSBydW5zLCBzZWUgY29uZmlndXJl J3Mgb3B0aW9uIC0tY29uZmlnLWNhY2hlLgotKyMgSXQgaXMgbm90IHVzZWZ1bCBvbiBvdGhlciBz eXN0ZW1zLiAgSWYgaXQgY29udGFpbnMgcmVzdWx0cyB5b3UgZG9uJ3QKLSsjIHdhbnQgdG8ga2Vl cCwgeW91IG1heSByZW1vdmUgb3IgZWRpdCBpdC4KLSsjCi0rIyBjb25maWcuc3RhdHVzIG9ubHkg cGF5cyBhdHRlbnRpb24gdG8gdGhlIGNhY2hlIGZpbGUgaWYgeW91IGdpdmUgaXQKLSsjIHRoZSAt LXJlY2hlY2sgb3B0aW9uIHRvIHJlcnVuIGNvbmZpZ3VyZS4KLSsjCi0rIyBgYWNfY3ZfZW52X2Zv bycgdmFyaWFibGVzIChzZXQgb3IgdW5zZXQpIHdpbGwgYmUgb3ZlcnJpZGRlbiB3aGVuCi0rIyBs b2FkaW5nIHRoaXMgZmlsZSwgb3RoZXIgKnVuc2V0KiBgYWNfY3ZfZm9vJyB3aWxsIGJlIGFzc2ln bmVkIHRoZQotKyMgZm9sbG93aW5nIHZhbHVlcy4KLSsKLStfQUNFT0YKLSsKLSsjIFRoZSBmb2xs b3dpbmcgd2F5IG9mIHdyaXRpbmcgdGhlIGNhY2hlIG1pc2hhbmRsZXMgbmV3bGluZXMgaW4gdmFs dWVzLAotKyMgYnV0IHdlIGtub3cgb2Ygbm8gd29ya2Fyb3VuZCB0aGF0IGlzIHNpbXBsZSwgcG9y dGFibGUsIGFuZCBlZmZpY2llbnQuCi0rIyBTbywgd2Uga2lsbCB2YXJpYWJsZXMgY29udGFpbmlu ZyBuZXdsaW5lcy4KLSsjIFVsdHJpeCBzaCBzZXQgd3JpdGVzIHRvIHN0ZGVyciBhbmQgY2FuJ3Qg YmUgcmVkaXJlY3RlZCBkaXJlY3RseSwKLSsjIGFuZCBzZXRzIHRoZSBoaWdoIGJpdCBpbiB0aGUg Y2FjaGUgZmlsZSB1bmxlc3Mgd2UgYXNzaWduIHRvIHRoZSB2YXJzLgotKygKLSsgIGZvciBhY192 YXIgaW4gYChzZXQpIDI+JjEgfCBzZWQgLW4gJ3MvXlwoW2EtekEtWl9dW2EtekEtWjAtOV9dKlwp PS4qL1wxL3AnYDsgZG8KLSsgICAgZXZhbCBhY192YWw9XCQkYWNfdmFyCi0rICAgIGNhc2UgJGFj X3ZhbCBpbiAjKAotKyAgICAqJHthc19ubH0qKQotKyAgICAgIGNhc2UgJGFjX3ZhciBpbiAjKAot KyAgICAgICpfY3ZfKikgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBX QVJOSU5HOiBjYWNoZSB2YXJpYWJsZSAkYWNfdmFyIGNvbnRhaW5zIGEgbmV3bGluZSIgPiY1Ci0r JGFzX2VjaG8gIiRhc19tZTogV0FSTklORzogY2FjaGUgdmFyaWFibGUgJGFjX3ZhciBjb250YWlu cyBhIG5ld2xpbmUiID4mMjt9IDs7Ci0rICAgICAgZXNhYwotKyAgICAgIGNhc2UgJGFjX3ZhciBp biAjKAotKyAgICAgIF8gfCBJRlMgfCBhc19ubCkgOzsgIygKLSsgICAgICBCQVNIX0FSR1YgfCBC QVNIX1NPVVJDRSkgZXZhbCAkYWNfdmFyPSA7OyAjKAotKyAgICAgICopIHsgZXZhbCAkYWNfdmFy PTsgdW5zZXQgJGFjX3Zhcjt9IDs7Ci0rICAgICAgZXNhYyA7OwotKyAgICBlc2FjCi0rICBkb25l Ci0rCi0rICAoc2V0KSAyPiYxIHwKLSsgICAgY2FzZSAkYXNfbmxgKGFjX3NwYWNlPScgJzsgc2V0 KSAyPiYxYCBpbiAjKAotKyAgICAqJHthc19ubH1hY19zcGFjZT1cICopCi0rICAgICAgIyBgc2V0 JyBkb2VzIG5vdCBxdW90ZSBjb3JyZWN0bHksIHNvIGFkZCBxdW90ZXM6IGRvdWJsZS1xdW90ZQot KyAgICAgICMgc3Vic3RpdHV0aW9uIHR1cm5zIFxcXFwgaW50byBcXCwgYW5kIHNlZCB0dXJucyBc XCBpbnRvIFwuCi0rICAgICAgc2VkIC1uIFwKLSsJInMvJy8nXFxcXCcnL2c7Ci0rCSAgcy9eXFwo W18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qXFwpPVxcKC4qXFwpL1xcMT0nXFwy Jy9wIgotKyAgICAgIDs7ICMoCi0rICAgICopCi0rICAgICAgIyBgc2V0JyBxdW90ZXMgY29ycmVj dGx5IGFzIHJlcXVpcmVkIGJ5IFBPU0lYLCBzbyBkbyBub3QgYWRkIHF1b3Rlcy4KLSsgICAgICBz ZWQgLW4gIi9eW18kYXNfY3JfYWxudW1dKl9jdl9bXyRhc19jcl9hbG51bV0qPS9wIgotKyAgICAg IDs7Ci0rICAgIGVzYWMgfAotKyAgICBzb3J0Ci0rKSB8Ci0rICBzZWQgJwotKyAgICAgL15hY19j dl9lbnZfL2IgZW5kCi0rICAgICB0IGNsZWFyCi0rICAgICA6Y2xlYXIKLSsgICAgIHMvXlwoW149 XSpcKT1cKC4qW3t9XS4qXCkkL3Rlc3QgIiR7XDErc2V0fSIgPSBzZXQgfHwgJi8KLSsgICAgIHQg ZW5kCi0rICAgICBzL15cKFtePV0qXCk9XCguKlwpJC9cMT0ke1wxPVwyfS8KLSsgICAgIDplbmQn ID4+Y29uZmNhY2hlCi0raWYgZGlmZiAiJGNhY2hlX2ZpbGUiIGNvbmZjYWNoZSA+L2Rldi9udWxs IDI+JjE7IHRoZW4gOjsgZWxzZQotKyAgaWYgdGVzdCAtdyAiJGNhY2hlX2ZpbGUiOyB0aGVuCi0r ICAgIGlmIHRlc3QgIngkY2FjaGVfZmlsZSIgIT0gIngvZGV2L251bGwiOyB0aGVuCi0rICAgICAg eyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiB1cGRhdGluZyBjYWNoZSAk Y2FjaGVfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogdXBkYXRpbmcgY2FjaGUgJGNhY2hl X2ZpbGUiID4mNjt9Ci0rICAgICAgaWYgdGVzdCAhIC1mICIkY2FjaGVfZmlsZSIgfHwgdGVzdCAt aCAiJGNhY2hlX2ZpbGUiOyB0aGVuCi0rCWNhdCBjb25mY2FjaGUgPiIkY2FjaGVfZmlsZSIKLSsg ICAgICBlbHNlCi0rICAgICAgICBjYXNlICRjYWNoZV9maWxlIGluICMoCi0rICAgICAgICAqLyog fCA/OiopCi0rCSAgbXYgLWYgY29uZmNhY2hlICIkY2FjaGVfZmlsZSIkJCAmJgotKwkgIG12IC1m ICIkY2FjaGVfZmlsZSIkJCAiJGNhY2hlX2ZpbGUiIDs7ICMoCi0rICAgICAgICAqKQotKwkgIG12 IC1mIGNvbmZjYWNoZSAiJGNhY2hlX2ZpbGUiIDs7Ci0rCWVzYWMKLSsgICAgICBmaQotKyAgICBm aQotKyAgZWxzZQotKyAgICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306 IG5vdCB1cGRhdGluZyB1bndyaXRhYmxlIGNhY2hlICRjYWNoZV9maWxlIiA+JjUKLSskYXNfZWNo byAiJGFzX21lOiBub3QgdXBkYXRpbmcgdW53cml0YWJsZSBjYWNoZSAkY2FjaGVfZmlsZSIgPiY2 O30KLSsgIGZpCi0rZmkKLStybSAtZiBjb25mY2FjaGUKLSsKLSt0ZXN0ICJ4JHByZWZpeCIgPSB4 Tk9ORSAmJiBwcmVmaXg9JGFjX2RlZmF1bHRfcHJlZml4Ci0rIyBMZXQgbWFrZSBleHBhbmQgZXhl Y19wcmVmaXguCi0rdGVzdCAieCRleGVjX3ByZWZpeCIgPSB4Tk9ORSAmJiBleGVjX3ByZWZpeD0n JHtwcmVmaXh9JwotKwotK0RFRlM9LURIQVZFX0NPTkZJR19ICi0rCi0rYWNfbGlib2Jqcz0KLSth Y19sdGxpYm9ianM9Ci0rVT0KLStmb3IgYWNfaSBpbiA6ICRMSUJPQkpTOyBkbyB0ZXN0ICJ4JGFj X2kiID0geDogJiYgY29udGludWUKLSsgICMgMS4gUmVtb3ZlIHRoZSBleHRlbnNpb24sIGFuZCAk VSBpZiBhbHJlYWR5IGluc3RhbGxlZC4KLSsgIGFjX3NjcmlwdD0ncy9cJFVcLi8uLztzL1wubyQv LztzL1wub2JqJC8vJwotKyAgYWNfaT1gJGFzX2VjaG8gIiRhY19pIiB8IHNlZCAiJGFjX3Njcmlw dCJgCi0rICAjIDIuIFByZXBlbmQgTElCT0JKRElSLiAgV2hlbiB1c2VkIHdpdGggYXV0b21ha2U+ PTEuMTAgTElCT0JKRElSCi0rICAjICAgIHdpbGwgYmUgc2V0IHRvIHRoZSBkaXJlY3Rvcnkgd2hl cmUgTElCT0JKUyBvYmplY3RzIGFyZSBidWlsdC4KLSsgIGFzX2ZuX2FwcGVuZCBhY19saWJvYmpz ICIgXCR7TElCT0JKRElSfSRhY19pXCRVLiRhY19vYmpleHQiCi0rICBhc19mbl9hcHBlbmQgYWNf bHRsaWJvYmpzICIgXCR7TElCT0JKRElSfSRhY19pIickVS5sbycKLStkb25lCi0rTElCT0JKUz0k YWNfbGlib2JqcwotKwotK0xUTElCT0JKUz0kYWNfbHRsaWJvYmpzCi0rCi0rCi0rIGlmIHRlc3Qg LW4gIiRFWEVFWFQiOyB0aGVuCi0rICBhbV9fRVhFRVhUX1RSVUU9Ci0rICBhbV9fRVhFRVhUX0ZB TFNFPScjJwotK2Vsc2UKLSsgIGFtX19FWEVFWFRfVFJVRT0nIycKLSsgIGFtX19FWEVFWFRfRkFM U0U9Ci0rZmkKLSsKLStpZiB0ZXN0IC16ICIke0hBVkVfQ1BQVU5JVF9UUlVFfSIgJiYgdGVzdCAt eiAiJHtIQVZFX0NQUFVOSVRfRkFMU0V9IjsgdGhlbgotKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRp dGlvbmFsIFwiSEFWRV9DUFBVTklUXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlz IG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVO TyIgNQotK2ZpCi0raWYgdGVzdCAteiAiJHtBTURFUF9UUlVFfSIgJiYgdGVzdCAteiAiJHtBTURF UF9GQUxTRX0iOyB0aGVuCi0rICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJBTURFUFwi IHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9u bHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKLStmaQotK2lmIHRlc3QgLXog IiR7YW1fX2Zhc3RkZXBDWFhfVFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDWFhfRkFM U0V9IjsgdGhlbgotKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiYW1fX2Zhc3RkZXBD WFhcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1Ci0rZmkKLStpZiB0ZXN0 IC16ICIke2FtX19mYXN0ZGVwQ0NfVFJVRX0iICYmIHRlc3QgLXogIiR7YW1fX2Zhc3RkZXBDQ19G QUxTRX0iOyB0aGVuCi0rICBhc19mbl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJhbV9fZmFzdGRl cENDXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3 YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQotK2ZpCi0raWYgdGVz dCAteiAiJHtTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUV9IiAmJiB0ZXN0IC16ICIke1NPQ0lfSEVB REVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgotKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFs IFwiU09DSV9IRUFERVJTX0JVUklFRFwiIHdhcyBuZXZlciBkZWZpbmVkLgotK1VzdWFsbHkgdGhp cyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25hbGx5LiIgIiRMSU5F Tk8iIDUKLStmaQotK2lmIHRlc3QgLXogIiR7U09DSV9NWVNRTF9IRUFERVJTX0JVUklFRF9UUlVF fSIgJiYgdGVzdCAteiAiJHtTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEX0ZBTFNFfSI7IHRoZW4K LSsgIGFzX2ZuX2Vycm9yICQ/ICJjb25kaXRpb25hbCBcIlNPQ0lfTVlTUUxfSEVBREVSU19CVVJJ RURcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdh cyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5PIiA1Ci0rZmkKLStpZiB0ZXN0 IC16ICIke1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRF9UUlVFfSIgJiYgdGVzdCAteiAi JHtTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURfRkFMU0V9IjsgdGhlbgotKyAgYXNfZm5f ZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEXCIg d2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25s eSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQotK2ZpCi0raWYgdGVzdCAteiAi JHtIQVZFX01ZU1FMX1RSVUV9IiAmJiB0ZXN0IC16ICIke0hBVkVfTVlTUUxfRkFMU0V9IjsgdGhl bgotKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFWRV9NWVNRTFwiIHdhcyBuZXZl ciBkZWZpbmVkLgotK1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tl ZCBjb25kaXRpb25hbGx5LiIgIiRMSU5FTk8iIDUKLStmaQotK2lmIHRlc3QgLXogIiR7SEFWRV9P UkFDTEVfVFJVRX0iICYmIHRlc3QgLXogIiR7SEFWRV9PUkFDTEVfRkFMU0V9IjsgdGhlbgotKyAg YXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFWRV9PUkFDTEVcIiB3YXMgbmV2ZXIgZGVm aW5lZC4KLStVc3VhbGx5IHRoaXMgbWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29u ZGl0aW9uYWxseS4iICIkTElORU5PIiA1Ci0rZmkKLStpZiB0ZXN0IC16ICIke0hBVkVfUE9TVEdS RVNRTF9UUlVFfSIgJiYgdGVzdCAteiAiJHtIQVZFX1BPU1RHUkVTUUxfRkFMU0V9IjsgdGhlbgot KyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwiSEFWRV9QT1NUR1JFU1FMXCIgd2FzIG5l dmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBtYWNybyB3YXMgb25seSBpbnZv a2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQotK2ZpCi0raWYgdGVzdCAteiAiJHtJTkZP X0RPQ19UUlVFfSIgJiYgdGVzdCAteiAiJHtJTkZPX0RPQ19GQUxTRX0iOyB0aGVuCi0rICBhc19m bl9lcnJvciAkPyAiY29uZGl0aW9uYWwgXCJJTkZPX0RPQ1wiIHdhcyBuZXZlciBkZWZpbmVkLgot K1VzdWFsbHkgdGhpcyBtZWFucyB0aGUgbWFjcm8gd2FzIG9ubHkgaW52b2tlZCBjb25kaXRpb25h bGx5LiIgIiRMSU5FTk8iIDUKLStmaQotK2lmIHRlc3QgLXogIiR7SFRNTF9ET0NfVFJVRX0iICYm IHRlc3QgLXogIiR7SFRNTF9ET0NfRkFMU0V9IjsgdGhlbgotKyAgYXNfZm5fZXJyb3IgJD8gImNv bmRpdGlvbmFsIFwiSFRNTF9ET0NcIiB3YXMgbmV2ZXIgZGVmaW5lZC4KLStVc3VhbGx5IHRoaXMg bWVhbnMgdGhlIG1hY3JvIHdhcyBvbmx5IGludm9rZWQgY29uZGl0aW9uYWxseS4iICIkTElORU5P IiA1Ci0rZmkKLStpZiB0ZXN0IC16ICIke1JVTl9URVNUU19UUlVFfSIgJiYgdGVzdCAteiAiJHtS VU5fVEVTVFNfRkFMU0V9IjsgdGhlbgotKyAgYXNfZm5fZXJyb3IgJD8gImNvbmRpdGlvbmFsIFwi UlVOX1RFU1RTXCIgd2FzIG5ldmVyIGRlZmluZWQuCi0rVXN1YWxseSB0aGlzIG1lYW5zIHRoZSBt YWNybyB3YXMgb25seSBpbnZva2VkIGNvbmRpdGlvbmFsbHkuIiAiJExJTkVOTyIgNQotK2ZpCi0r Ci0rOiAiJHtDT05GSUdfU1RBVFVTPS4vY29uZmlnLnN0YXR1c30iCi0rYWNfd3JpdGVfZmFpbD0w Ci0rYWNfY2xlYW5fZmlsZXNfc2F2ZT0kYWNfY2xlYW5fZmlsZXMKLSthY19jbGVhbl9maWxlcz0i JGFjX2NsZWFuX2ZpbGVzICRDT05GSUdfU1RBVFVTIgotK3sgJGFzX2VjaG8gIiRhc19tZToke2Fz X2xpbmVuby0kTElORU5PfTogY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiID4mNQotKyRhc19lY2hv ICIkYXNfbWU6IGNyZWF0aW5nICRDT05GSUdfU1RBVFVTIiA+JjY7fQotK2FzX3dyaXRlX2ZhaWw9 MAotK2NhdCA+JENPTkZJR19TVEFUVVMgPDxfQVNFT0YgfHwgYXNfd3JpdGVfZmFpbD0xCi0rIyEg JFNIRUxMCi0rIyBHZW5lcmF0ZWQgYnkgJGFzX21lLgotKyMgUnVuIHRoaXMgZmlsZSB0byByZWNy ZWF0ZSB0aGUgY3VycmVudCBjb25maWd1cmF0aW9uLgotKyMgQ29tcGlsZXIgb3V0cHV0IHByb2R1 Y2VkIGJ5IGNvbmZpZ3VyZSwgdXNlZnVsIGZvciBkZWJ1Z2dpbmcKLSsjIGNvbmZpZ3VyZSwgaXMg aW4gY29uZmlnLmxvZyBpZiBpdCBleGlzdHMuCi0rCi0rZGVidWc9ZmFsc2UKLSthY19jc19yZWNo ZWNrPWZhbHNlCi0rYWNfY3Nfc2lsZW50PWZhbHNlCi0rCi0rU0hFTEw9XCR7Q09ORklHX1NIRUxM LSRTSEVMTH0KLStleHBvcnQgU0hFTEwKLStfQVNFT0YKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8 PFxfQVNFT0YgfHwgYXNfd3JpdGVfZmFpbD0xCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMK LSsjIyBNNHNoIEluaXRpYWxpemF0aW9uLiAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0tLS0tICMj Ci0rCi0rIyBCZSBtb3JlIEJvdXJuZSBjb21wYXRpYmxlCi0rRFVBTENBU0U9MTsgZXhwb3J0IERV QUxDQVNFICMgZm9yIE1LUyBzaAotK2lmIHRlc3QgLW4gIiR7WlNIX1ZFUlNJT04rc2V0fSIgJiYg KGVtdWxhdGUgc2gpID4vZGV2L251bGwgMj4mMTsgdGhlbiA6Ci0rICBlbXVsYXRlIHNoCi0rICBO VUxMQ01EPToKLSsgICMgUHJlLTQuMiB2ZXJzaW9ucyBvZiBac2ggZG8gd29yZCBzcGxpdHRpbmcg b24gJHsxKyIkQCJ9LCB3aGljaAotKyAgIyBpcyBjb250cmFyeSB0byBvdXIgdXNhZ2UuICBEaXNh YmxlIHRoaXMgZmVhdHVyZS4KLSsgIGFsaWFzIC1nICckezErIiRAIn0nPSciJEAiJwotKyAgc2V0 b3B0IE5PX0dMT0JfU1VCU1QKLStlbHNlCi0rICBjYXNlIGAoc2V0IC1vKSAyPi9kZXYvbnVsbGAg aW4gIygKLSsgICpwb3NpeCopIDoKLSsgICAgc2V0IC1vIHBvc2l4IDs7ICMoCi0rICAqKSA6Ci0r ICAgICA7OwotK2VzYWMKLStmaQotKwotKwotK2FzX25sPScKLSsnCi0rZXhwb3J0IGFzX25sCi0r IyBQcmludGluZyBhIGxvbmcgc3RyaW5nIGNyYXNoZXMgU29sYXJpcyA3IC91c3IvYmluL3ByaW50 Zi4KLSthc19lY2hvPSdcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxc XFxcJwotK2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobwot K2FzX2VjaG89JGFzX2VjaG8kYXNfZWNobyRhc19lY2hvJGFzX2VjaG8kYXNfZWNobyRhc19lY2hv Ci0rIyBQcmVmZXIgYSBrc2ggc2hlbGwgYnVpbHRpbiBvdmVyIGFuIGV4dGVybmFsIHByaW50ZiBw cm9ncmFtIG9uIFNvbGFyaXMsCi0rIyBidXQgd2l0aG91dCB3YXN0aW5nIGZvcmtzIGZvciBiYXNo IG9yIHpzaC4KLStpZiB0ZXN0IC16ICIkQkFTSF9WRVJTSU9OJFpTSF9WRVJTSU9OIiBcCi0rICAg ICYmICh0ZXN0ICJYYHByaW50IC1yIC0tICRhc19lY2hvYCIgPSAiWCRhc19lY2hvIikgMj4vZGV2 L251bGw7IHRoZW4KLSsgIGFzX2VjaG89J3ByaW50IC1yIC0tJwotKyAgYXNfZWNob19uPSdwcmlu dCAtcm4gLS0nCi0rZWxpZiAodGVzdCAiWGBwcmludGYgJXMgJGFzX2VjaG9gIiA9ICJYJGFzX2Vj aG8iKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgYXNfZWNobz0ncHJpbnRmICVzXG4nCi0rICBhc19l Y2hvX249J3ByaW50ZiAlcycKLStlbHNlCi0rICBpZiB0ZXN0ICJYYCgvdXNyL3VjYi9lY2hvIC1u IC1uICRhc19lY2hvKSAyPi9kZXYvbnVsbGAiID0gIlgtbiAkYXNfZWNobyI7IHRoZW4KLSsgICAg YXNfZWNob19ib2R5PSdldmFsIC91c3IvdWNiL2VjaG8gLW4gIiQxJGFzX25sIicKLSsgICAgYXNf ZWNob19uPScvdXNyL3VjYi9lY2hvIC1uJwotKyAgZWxzZQotKyAgICBhc19lY2hvX2JvZHk9J2V2 YWwgZXhwciAiWCQxIiA6ICJYXFwoLipcXCkiJwotKyAgICBhc19lY2hvX25fYm9keT0nZXZhbAot KyAgICAgIGFyZz0kMTsKLSsgICAgICBjYXNlICRhcmcgaW4gIygKLSsgICAgICAqIiRhc19ubCIq KQotKwlleHByICJYJGFyZyIgOiAiWFxcKC4qXFwpJGFzX25sIjsKLSsJYXJnPWBleHByICJYJGFy ZyIgOiAiLiokYXNfbmxcXCguKlxcKSJgOzsKLSsgICAgICBlc2FjOwotKyAgICAgIGV4cHIgIlgk YXJnIiA6ICJYXFwoLipcXCkiIHwgdHIgLWQgIiRhc19ubCIKLSsgICAgJwotKyAgICBleHBvcnQg YXNfZWNob19uX2JvZHkKLSsgICAgYXNfZWNob19uPSdzaCAtYyAkYXNfZWNob19uX2JvZHkgYXNf ZWNobycKLSsgIGZpCi0rICBleHBvcnQgYXNfZWNob19ib2R5Ci0rICBhc19lY2hvPSdzaCAtYyAk YXNfZWNob19ib2R5IGFzX2VjaG8nCi0rZmkKLSsKLSsjIFRoZSB1c2VyIGlzIGFsd2F5cyByaWdo dC4KLStpZiB0ZXN0ICIke1BBVEhfU0VQQVJBVE9SK3NldH0iICE9IHNldDsgdGhlbgotKyAgUEFU SF9TRVBBUkFUT1I9OgotKyAgKFBBVEg9Jy9iaW47L2Jpbic7IEZQQVRIPSRQQVRIOyBzaCAtYyA6 KSA+L2Rldi9udWxsIDI+JjEgJiYgewotKyAgICAoUEFUSD0nL2JpbjovYmluJzsgRlBBVEg9JFBB VEg7IHNoIC1jIDopID4vZGV2L251bGwgMj4mMSB8fAotKyAgICAgIFBBVEhfU0VQQVJBVE9SPSc7 JwotKyAgfQotK2ZpCi0rCi0rCi0rIyBJRlMKLSsjIFdlIG5lZWQgc3BhY2UsIHRhYiBhbmQgbmV3 IGxpbmUsIGluIHByZWNpc2VseSB0aGF0IG9yZGVyLiAgUXVvdGluZyBpcwotKyMgdGhlcmUgdG8g cHJldmVudCBlZGl0b3JzIGZyb20gY29tcGxhaW5pbmcgYWJvdXQgc3BhY2UtdGFiLgotKyMgKElm IF9BU19QQVRIX1dBTEsgd2VyZSBjYWxsZWQgd2l0aCBJRlMgdW5zZXQsIGl0IHdvdWxkIGRpc2Fi bGUgd29yZAotKyMgc3BsaXR0aW5nIGJ5IHNldHRpbmcgSUZTIHRvIGVtcHR5IHZhbHVlLikKLStJ RlM9IiAiIgkkYXNfbmwiCi0rCi0rIyBGaW5kIHdobyB3ZSBhcmUuICBMb29rIGluIHRoZSBwYXRo IGlmIHdlIGNvbnRhaW4gbm8gZGlyZWN0b3J5IHNlcGFyYXRvci4KLSthc19teXNlbGY9Ci0rY2Fz ZSAkMCBpbiAjKCgKLSsgICpbXFwvXSogKSBhc19teXNlbGY9JDAgOzsKLSsgICopIGFzX3NhdmVf SUZTPSRJRlM7IElGUz0kUEFUSF9TRVBBUkFUT1IKLStmb3IgYXNfZGlyIGluICRQQVRICi0rZG8K LSsgIElGUz0kYXNfc2F2ZV9JRlMKLSsgIHRlc3QgLXogIiRhc19kaXIiICYmIGFzX2Rpcj0uCi0r ICAgIHRlc3QgLXIgIiRhc19kaXIvJDAiICYmIGFzX215c2VsZj0kYXNfZGlyLyQwICYmIGJyZWFr Ci0rICBkb25lCi0rSUZTPSRhc19zYXZlX0lGUwotKwotKyAgICAgOzsKLStlc2FjCi0rIyBXZSBk aWQgbm90IGZpbmQgb3Vyc2VsdmVzLCBtb3N0IHByb2JhYmx5IHdlIHdlcmUgcnVuIGFzIGBzaCBD T01NQU5EJwotKyMgaW4gd2hpY2ggY2FzZSB3ZSBhcmUgbm90IHRvIGJlIGZvdW5kIGluIHRoZSBw YXRoLgotK2lmIHRlc3QgIngkYXNfbXlzZWxmIiA9IHg7IHRoZW4KLSsgIGFzX215c2VsZj0kMAot K2ZpCi0raWYgdGVzdCAhIC1mICIkYXNfbXlzZWxmIjsgdGhlbgotKyAgJGFzX2VjaG8gIiRhc19t eXNlbGY6IGVycm9yOiBjYW5ub3QgZmluZCBteXNlbGY7IHJlcnVuIHdpdGggYW4gYWJzb2x1dGUg ZmlsZSBuYW1lIiA+JjIKLSsgIGV4aXQgMQotK2ZpCi0rCi0rIyBVbnNldCB2YXJpYWJsZXMgdGhh dCB3ZSBkbyBub3QgbmVlZCBhbmQgd2hpY2ggY2F1c2UgYnVncyAoZS5nLiBpbgotKyMgcHJlLTMu MCBVV0lOIGtzaCkuICBCdXQgZG8gbm90IGNhdXNlIGJ1Z3MgaW4gYmFzaCAyLjAxOyB0aGUgInx8 IGV4aXQgMSIKLSsjIHN1cHByZXNzZXMgYW55ICJTZWdtZW50YXRpb24gZmF1bHQiIG1lc3NhZ2Ug dGhlcmUuICAnKCgnIGNvdWxkCi0rIyB0cmlnZ2VyIGEgYnVnIGluIHBka3NoIDUuMi4xNC4KLStm b3IgYXNfdmFyIGluIEJBU0hfRU5WIEVOViBNQUlMIE1BSUxQQVRICi0rZG8gZXZhbCB0ZXN0IHhc JHskYXNfdmFyK3NldH0gPSB4c2V0IFwKLSsgICYmICggKHVuc2V0ICRhc192YXIpIHx8IGV4aXQg MSkgPi9kZXYvbnVsbCAyPiYxICYmIHVuc2V0ICRhc192YXIgfHwgOgotK2RvbmUKLStQUzE9JyQg JwotK1BTMj0nPiAnCi0rUFM0PScrICcKLSsKLSsjIE5MUyBudWlzYW5jZXMuCi0rTENfQUxMPUMK LStleHBvcnQgTENfQUxMCi0rTEFOR1VBR0U9QwotK2V4cG9ydCBMQU5HVUFHRQotKwotKyMgQ0RQ QVRILgotKyh1bnNldCBDRFBBVEgpID4vZGV2L251bGwgMj4mMSAmJiB1bnNldCBDRFBBVEgKLSsK LSsKLSsjIGFzX2ZuX2Vycm9yIFNUQVRVUyBFUlJPUiBbTElORU5PIExPR19GRF0KLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsjIE91dHB1dCAiYGJhc2VuYW1l ICQwYDogZXJyb3I6IEVSUk9SIiB0byBzdGRlcnIuIElmIExJTkVOTyBhbmQgTE9HX0ZEIGFyZQot KyMgcHJvdmlkZWQsIGFsc28gb3V0cHV0IHRoZSBlcnJvciB0byBMT0dfRkQsIHJlZmVyZW5jaW5n IExJTkVOTy4gVGhlbiBleGl0IHRoZQotKyMgc2NyaXB0IHdpdGggU1RBVFVTLCB1c2luZyAxIGlm IHRoYXQgd2FzIDAuCi0rYXNfZm5fZXJyb3IgKCkKLSt7Ci0rICBhc19zdGF0dXM9JDE7IHRlc3Qg JGFzX3N0YXR1cyAtZXEgMCAmJiBhc19zdGF0dXM9MQotKyAgaWYgdGVzdCAiJDQiOyB0aGVuCi0r ICAgIGFzX2xpbmVubz0ke2FzX2xpbmVuby0iJDMifSBhc19saW5lbm9fc3RhY2s9YXNfbGluZW5v X3N0YWNrPSRhc19saW5lbm9fc3RhY2sKLSsgICAgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVu by0kTElORU5PfTogZXJyb3I6ICQyIiA+JiQ0Ci0rICBmaQotKyAgJGFzX2VjaG8gIiRhc19tZTog ZXJyb3I6ICQyIiA+JjIKLSsgIGFzX2ZuX2V4aXQgJGFzX3N0YXR1cwotK30gIyBhc19mbl9lcnJv cgotKwotKwotKyMgYXNfZm5fc2V0X3N0YXR1cyBTVEFUVVMKLSsjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCi0rIyBTZXQgJD8gdG8gU1RBVFVTLCB3aXRob3V0IGZvcmtpbmcuCi0rYXNfZm5fc2V0 X3N0YXR1cyAoKQotK3sKLSsgIHJldHVybiAkMQotK30gIyBhc19mbl9zZXRfc3RhdHVzCi0rCi0r IyBhc19mbl9leGl0IFNUQVRVUwotKyMgLS0tLS0tLS0tLS0tLS0tLS0KLSsjIEV4aXQgdGhlIHNo ZWxsIHdpdGggU1RBVFVTLCBldmVuIGluIGEgInRyYXAgMCIgb3IgInNldCAtZSIgY29udGV4dC4K LSthc19mbl9leGl0ICgpCi0rewotKyAgc2V0ICtlCi0rICBhc19mbl9zZXRfc3RhdHVzICQxCi0r ICBleGl0ICQxCi0rfSAjIGFzX2ZuX2V4aXQKLSsKLSsjIGFzX2ZuX3Vuc2V0IFZBUgotKyMgLS0t LS0tLS0tLS0tLS0tCi0rIyBQb3J0YWJseSB1bnNldCBWQVIuCi0rYXNfZm5fdW5zZXQgKCkKLSt7 Ci0rICB7IGV2YWwgJDE9OyB1bnNldCAkMTt9Ci0rfQotK2FzX3Vuc2V0PWFzX2ZuX3Vuc2V0Ci0r IyBhc19mbl9hcHBlbmQgVkFSIFZBTFVFCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBB cHBlbmQgdGhlIHRleHQgaW4gVkFMVUUgdG8gdGhlIGVuZCBvZiB0aGUgZGVmaW5pdGlvbiBjb250 YWluZWQgaW4gVkFSLiBUYWtlCi0rIyBhZHZhbnRhZ2Ugb2YgYW55IHNoZWxsIG9wdGltaXphdGlv bnMgdGhhdCBhbGxvdyBhbW9ydGl6ZWQgbGluZWFyIGdyb3d0aCBvdmVyCi0rIyByZXBlYXRlZCBh cHBlbmRzLCBpbnN0ZWFkIG9mIHRoZSB0eXBpY2FsIHF1YWRyYXRpYyBncm93dGggcHJlc2VudCBp biBuYWl2ZQotKyMgaW1wbGVtZW50YXRpb25zLgotK2lmIChldmFsICJhc192YXI9MTsgYXNfdmFy Kz0yOyB0ZXN0IHhcJGFzX3ZhciA9IHgxMiIpIDI+L2Rldi9udWxsOyB0aGVuIDoKLSsgIGV2YWwg J2FzX2ZuX2FwcGVuZCAoKQotKyAgewotKyAgICBldmFsICQxKz1cJDIKLSsgIH0nCi0rZWxzZQot KyAgYXNfZm5fYXBwZW5kICgpCi0rICB7Ci0rICAgIGV2YWwgJDE9XCQkMVwkMgotKyAgfQotK2Zp ICMgYXNfZm5fYXBwZW5kCi0rCi0rIyBhc19mbl9hcml0aCBBUkcuLi4KLSsjIC0tLS0tLS0tLS0t LS0tLS0tLQotKyMgUGVyZm9ybSBhcml0aG1ldGljIGV2YWx1YXRpb24gb24gdGhlIEFSR3MsIGFu ZCBzdG9yZSB0aGUgcmVzdWx0IGluIHRoZQotKyMgZ2xvYmFsICRhc192YWwuIFRha2UgYWR2YW50 YWdlIG9mIHNoZWxscyB0aGF0IGNhbiBhdm9pZCBmb3Jrcy4gVGhlIGFyZ3VtZW50cwotKyMgbXVz dCBiZSBwb3J0YWJsZSBhY3Jvc3MgJCgoKSkgYW5kIGV4cHIuCi0raWYgKGV2YWwgInRlc3QgXCQo KCAxICsgMSApKSA9IDIiKSAyPi9kZXYvbnVsbDsgdGhlbiA6Ci0rICBldmFsICdhc19mbl9hcml0 aCAoKQotKyAgewotKyAgICBhc192YWw9JCgoICQqICkpCi0rICB9JwotK2Vsc2UKLSsgIGFzX2Zu X2FyaXRoICgpCi0rICB7Ci0rICAgIGFzX3ZhbD1gZXhwciAiJEAiIHx8IHRlc3QgJD8gLWVxIDFg Ci0rICB9Ci0rZmkgIyBhc19mbl9hcml0aAotKwotKwotK2lmIGV4cHIgYSA6ICdcKGFcKScgPi9k ZXYvbnVsbCAyPiYxICYmCi0rICAgdGVzdCAiWGBleHByIDAwMDAxIDogJy4qXCguLi5cKSdgIiA9 IFgwMDE7IHRoZW4KLSsgIGFzX2V4cHI9ZXhwcgotK2Vsc2UKLSsgIGFzX2V4cHI9ZmFsc2UKLStm aQotKwotK2lmIChiYXNlbmFtZSAtLSAvKSA+L2Rldi9udWxsIDI+JjEgJiYgdGVzdCAiWGBiYXNl bmFtZSAtLSAvIDI+JjFgIiA9ICJYLyI7IHRoZW4KLSsgIGFzX2Jhc2VuYW1lPWJhc2VuYW1lCi0r ZWxzZQotKyAgYXNfYmFzZW5hbWU9ZmFsc2UKLStmaQotKwotK2lmIChhc19kaXI9YGRpcm5hbWUg LS0gL2AgJiYgdGVzdCAiWCRhc19kaXIiID0gWC8pID4vZGV2L251bGwgMj4mMTsgdGhlbgotKyAg YXNfZGlybmFtZT1kaXJuYW1lCi0rZWxzZQotKyAgYXNfZGlybmFtZT1mYWxzZQotK2ZpCi0rCi0r YXNfbWU9YCRhc19iYXNlbmFtZSAtLSAiJDAiIHx8Ci0rJGFzX2V4cHIgWC8iJDAiIDogJy4qL1wo W14vXVteL10qXCkvKiQnIFx8IFwKLSsJIFgiJDAiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiQw IiA6ICdYXCgvXCknIFx8IC4gMj4vZGV2L251bGwgfHwKLSskYXNfZWNobyBYLyIkMCIgfAotKyAg ICBzZWQgJy9eLipcL1woW14vXVteL10qXClcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQot KwkgIH0KLSsJICAvXlhcL1woXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9 Ci0rCSAgL15YXC9cKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAg cy8uKi8uLzsgcSdgCi0rCi0rIyBBdm9pZCBkZXBlbmRpbmcgdXBvbiBDaGFyYWN0ZXIgUmFuZ2Vz LgotK2FzX2NyX2xldHRlcnM9J2FiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6JwotK2FzX2NyX0xF VFRFUlM9J0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaJwotK2FzX2NyX0xldHRlcnM9JGFzX2Ny X2xldHRlcnMkYXNfY3JfTEVUVEVSUwotK2FzX2NyX2RpZ2l0cz0nMDEyMzQ1Njc4OScKLSthc19j cl9hbG51bT0kYXNfY3JfTGV0dGVycyRhc19jcl9kaWdpdHMKLSsKLStFQ0hPX0M9IEVDSE9fTj0g RUNIT19UPQotK2Nhc2UgYGVjaG8gLW4geGAgaW4gIygoKCgoCi0rLW4qKQotKyAgY2FzZSBgZWNo byAneHlcYydgIGluCi0rICAqYyopIEVDSE9fVD0nCSc7OwkjIEVDSE9fVCBpcyBzaW5nbGUgdGFi IGNoYXJhY3Rlci4KLSsgIHh5KSAgRUNIT19DPSdcYyc7OwotKyAgKikgICBlY2hvIGBlY2hvIGtz aDg4IGJ1ZyBvbiBBSVggNi4xYCA+IC9kZXYvbnVsbAotKyAgICAgICBFQ0hPX1Q9JwknOzsKLSsg IGVzYWM7OwotKyopCi0rICBFQ0hPX049Jy1uJzs7Ci0rZXNhYwotKwotK3JtIC1mIGNvbmYkJCBj b25mJCQuZXhlIGNvbmYkJC5maWxlCi0raWYgdGVzdCAtZCBjb25mJCQuZGlyOyB0aGVuCi0rICBy bSAtZiBjb25mJCQuZGlyL2NvbmYkJC5maWxlCi0rZWxzZQotKyAgcm0gLWYgY29uZiQkLmRpcgot KyAgbWtkaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotK2ZpCi0raWYgKGVjaG8gPmNvbmYkJC5m aWxlKSAyPi9kZXYvbnVsbDsgdGhlbgotKyAgaWYgbG4gLXMgY29uZiQkLmZpbGUgY29uZiQkIDI+ L2Rldi9udWxsOyB0aGVuCi0rICAgIGFzX2xuX3M9J2xuIC1zJwotKyAgICAjIC4uLiBidXQgdGhl cmUgYXJlIHR3byBnb3RjaGFzOgotKyAgICAjIDEpIE9uIE1TWVMsIGJvdGggYGxuIC1zIGZpbGUg ZGlyJyBhbmQgYGxuIGZpbGUgZGlyJyBmYWlsLgotKyAgICAjIDIpIERKR1BQIDwgMi4wNCBoYXMg bm8gc3ltbGlua3M7IGBsbiAtcycgY3JlYXRlcyBhIHdyYXBwZXIgZXhlY3V0YWJsZS4KLSsgICAg IyBJbiBib3RoIGNhc2VzLCB3ZSBoYXZlIHRvIGRlZmF1bHQgdG8gYGNwIC1wJy4KLSsgICAgbG4g LXMgY29uZiQkLmZpbGUgY29uZiQkLmRpciAyPi9kZXYvbnVsbCAmJiB0ZXN0ICEgLWYgY29uZiQk LmV4ZSB8fAotKyAgICAgIGFzX2xuX3M9J2NwIC1wJwotKyAgZWxpZiBsbiBjb25mJCQuZmlsZSBj b25mJCQgMj4vZGV2L251bGw7IHRoZW4KLSsgICAgYXNfbG5fcz1sbgotKyAgZWxzZQotKyAgICBh c19sbl9zPSdjcCAtcCcKLSsgIGZpCi0rZWxzZQotKyAgYXNfbG5fcz0nY3AgLXAnCi0rZmkKLSty bSAtZiBjb25mJCQgY29uZiQkLmV4ZSBjb25mJCQuZGlyL2NvbmYkJC5maWxlIGNvbmYkJC5maWxl Ci0rcm1kaXIgY29uZiQkLmRpciAyPi9kZXYvbnVsbAotKwotKwotKyMgYXNfZm5fbWtkaXJfcAot KyMgLS0tLS0tLS0tLS0tLQotKyMgQ3JlYXRlICIkYXNfZGlyIiBhcyBhIGRpcmVjdG9yeSwgaW5j bHVkaW5nIHBhcmVudHMgaWYgbmVjZXNzYXJ5LgotK2FzX2ZuX21rZGlyX3AgKCkKLSt7Ci0rCi0r ICBjYXNlICRhc19kaXIgaW4gIygKLSsgIC0qKSBhc19kaXI9Li8kYXNfZGlyOzsKLSsgIGVzYWMK LSsgIHRlc3QgLWQgIiRhc19kaXIiIHx8IGV2YWwgJGFzX21rZGlyX3AgfHwgewotKyAgICBhc19k aXJzPQotKyAgICB3aGlsZSA6OyBkbwotKyAgICAgIGNhc2UgJGFzX2RpciBpbiAjKAotKyAgICAg ICpcJyopIGFzX3FkaXI9YCRhc19lY2hvICIkYXNfZGlyIiB8IHNlZCAicy8nLydcXFxcXFxcXCcn L2ciYDs7ICMnKAotKyAgICAgICopIGFzX3FkaXI9JGFzX2Rpcjs7Ci0rICAgICAgZXNhYwotKyAg ICAgIGFzX2RpcnM9IickYXNfcWRpcicgJGFzX2RpcnMiCi0rICAgICAgYXNfZGlyPWAkYXNfZGly bmFtZSAtLSAiJGFzX2RpciIgfHwKLSskYXNfZXhwciBYIiRhc19kaXIiIDogJ1hcKC4qW14vXVwp Ly8qW14vXVteL10qLyokJyBcfCBcCi0rCSBYIiRhc19kaXIiIDogJ1hcKC8vXClbXi9dJyBcfCBc Ci0rCSBYIiRhc19kaXIiIDogJ1hcKC8vXCkkJyBcfCBcCi0rCSBYIiRhc19kaXIiIDogJ1hcKC9c KScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJGFzX2RpciIgfAotKyAgICBzZWQg Jy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAgICBx Ci0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQot KwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQot KwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBzLy4q Ly4vOyBxJ2AKLSsgICAgICB0ZXN0IC1kICIkYXNfZGlyIiAmJiBicmVhawotKyAgICBkb25lCi0r ICAgIHRlc3QgLXogIiRhc19kaXJzIiB8fCBldmFsICJta2RpciAkYXNfZGlycyIKLSsgIH0gfHwg dGVzdCAtZCAiJGFzX2RpciIgfHwgYXNfZm5fZXJyb3IgJD8gImNhbm5vdCBjcmVhdGUgZGlyZWN0 b3J5ICRhc19kaXIiCi0rCi0rCi0rfSAjIGFzX2ZuX21rZGlyX3AKLStpZiBta2RpciAtcCAuIDI+ L2Rldi9udWxsOyB0aGVuCi0rICBhc19ta2Rpcl9wPSdta2RpciAtcCAiJGFzX2RpciInCi0rZWxz ZQotKyAgdGVzdCAtZCAuLy1wICYmIHJtZGlyIC4vLXAKLSsgIGFzX21rZGlyX3A9ZmFsc2UKLStm aQotKwotK2lmIHRlc3QgLXggLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgIGFzX3Rlc3RfeD0n dGVzdCAteCcKLStlbHNlCi0rICBpZiBscyAtZEwgLyA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsg ICAgYXNfbHNfTF9vcHRpb249TAotKyAgZWxzZQotKyAgICBhc19sc19MX29wdGlvbj0KLSsgIGZp Ci0rICBhc190ZXN0X3g9JwotKyAgICBldmFsIHNoIC1jICdcJycKLSsgICAgICBpZiB0ZXN0IC1k ICIkMSI7IHRoZW4KLSsJdGVzdCAtZCAiJDEvLiI7Ci0rICAgICAgZWxzZQotKwljYXNlICQxIGlu ICMoCi0rCS0qKXNldCAiLi8kMSI7OwotKwllc2FjOwotKwljYXNlIGBscyAtbGQnJGFzX2xzX0xf b3B0aW9uJyAiJDEiIDI+L2Rldi9udWxsYCBpbiAjKCgKLSsJPz8/W3N4XSopOjs7KilmYWxzZTs7 ZXNhYztmaQotKyAgICAnXCcnIHNoCi0rICAnCi0rZmkKLSthc19leGVjdXRhYmxlX3A9JGFzX3Rl c3RfeAotKwotKyMgU2VkIGV4cHJlc3Npb24gdG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCBD UFAgbmFtZS4KLSthc190cl9jcHA9ImV2YWwgc2VkICd5JSokYXNfY3JfbGV0dGVycyVQJGFzX2Ny X0xFVFRFUlMlO3MlW15fJGFzX2NyX2FsbnVtXSVfJWcnIgotKwotKyMgU2VkIGV4cHJlc3Npb24g dG8gbWFwIGEgc3RyaW5nIG9udG8gYSB2YWxpZCB2YXJpYWJsZSBuYW1lLgotK2FzX3RyX3NoPSJl dmFsIHNlZCAneSUqKyVwcCU7cyVbXl8kYXNfY3JfYWxudW1dJV8lZyciCi0rCi0rCi0rZXhlYyA2 PiYxCi0rIyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIyMKLSsjIyBNYWlu IGJvZHkgb2YgJENPTkZJR19TVEFUVVMgc2NyaXB0LiAjIwotKyMjIC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tICMjCi0rX0FTRU9GCi0rdGVzdCAkYXNfd3JpdGVfZmFpbCA9IDAg JiYgY2htb2QgK3ggJENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0xCi0rCi0rY2F0ID4+ JENPTkZJR19TVEFUVVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKyMgU2F2ZSB0aGUg bG9nIG1lc3NhZ2UsIHRvIGtlZXAgJDAgYW5kIHNvIG9uIG1lYW5pbmdmdWwsIGFuZCB0bwotKyMg cmVwb3J0IGFjdHVhbCBpbnB1dCB2YWx1ZXMgb2YgQ09ORklHX0ZJTEVTIGV0Yy4gaW5zdGVhZCBv ZiB0aGVpcgotKyMgdmFsdWVzIGFmdGVyIG9wdGlvbnMgaGFuZGxpbmcuCi0rYWNfbG9nPSIKLStU aGlzIGZpbGUgd2FzIGV4dGVuZGVkIGJ5IFNPQ0kgJGFzX21lIDMuMC4wLCB3aGljaCB3YXMKLStn ZW5lcmF0ZWQgYnkgR05VIEF1dG9jb25mIDIuNjguICBJbnZvY2F0aW9uIGNvbW1hbmQgbGluZSB3 YXMKLSsKLSsgIENPTkZJR19GSUxFUyAgICA9ICRDT05GSUdfRklMRVMKLSsgIENPTkZJR19IRUFE RVJTICA9ICRDT05GSUdfSEVBREVSUwotKyAgQ09ORklHX0xJTktTICAgID0gJENPTkZJR19MSU5L UwotKyAgQ09ORklHX0NPTU1BTkRTID0gJENPTkZJR19DT01NQU5EUwotKyAgJCAkMCAkQAotKwot K29uIGAoaG9zdG5hbWUgfHwgdW5hbWUgLW4pIDI+L2Rldi9udWxsIHwgc2VkIDFxYAotKyIKLSsK LStfQUNFT0YKLSsKLStjYXNlICRhY19jb25maWdfZmlsZXMgaW4gKiIKLSsiKikgc2V0IHggJGFj X2NvbmZpZ19maWxlczsgc2hpZnQ7IGFjX2NvbmZpZ19maWxlcz0kKjs7Ci0rZXNhYwotKwotK2Nh c2UgJGFjX2NvbmZpZ19oZWFkZXJzIGluICoiCi0rIiopIHNldCB4ICRhY19jb25maWdfaGVhZGVy czsgc2hpZnQ7IGFjX2NvbmZpZ19oZWFkZXJzPSQqOzsKLStlc2FjCi0rCi0rCi0rY2F0ID4+JENP TkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyBGaWxlcyB0aGF0IGNv bmZpZy5zdGF0dXMgd2FzIG1hZGUgZm9yLgotK2NvbmZpZ19maWxlcz0iJGFjX2NvbmZpZ19maWxl cyIKLStjb25maWdfaGVhZGVycz0iJGFjX2NvbmZpZ19oZWFkZXJzIgotK2NvbmZpZ19jb21tYW5k cz0iJGFjX2NvbmZpZ19jb21tYW5kcyIKLSsKLStfQUNFT0YKLSsKLStjYXQgPj4kQ09ORklHX1NU QVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rYWNfY3NfdXNhZ2U9IlwKLStcYCRh c19tZScgaW5zdGFudGlhdGVzIGZpbGVzIGFuZCBvdGhlciBjb25maWd1cmF0aW9uIGFjdGlvbnMK LStmcm9tIHRlbXBsYXRlcyBhY2NvcmRpbmcgdG8gdGhlIGN1cnJlbnQgY29uZmlndXJhdGlvbi4g IFVubGVzcyB0aGUgZmlsZXMKLSthbmQgYWN0aW9ucyBhcmUgc3BlY2lmaWVkIGFzIFRBR3MsIGFs bCBhcmUgaW5zdGFudGlhdGVkIGJ5IGRlZmF1bHQuCi0rCi0rVXNhZ2U6ICQwIFtPUFRJT05dLi4u IFtUQUddLi4uCi0rCi0rICAtaCwgLS1oZWxwICAgICAgIHByaW50IHRoaXMgaGVscCwgdGhlbiBl eGl0Ci0rICAtViwgLS12ZXJzaW9uICAgIHByaW50IHZlcnNpb24gbnVtYmVyIGFuZCBjb25maWd1 cmF0aW9uIHNldHRpbmdzLCB0aGVuIGV4aXQKLSsgICAgICAtLWNvbmZpZyAgICAgcHJpbnQgY29u ZmlndXJhdGlvbiwgdGhlbiBleGl0Ci0rICAtcSwgLS1xdWlldCwgLS1zaWxlbnQKLSsgICAgICAg ICAgICAgICAgICAgZG8gbm90IHByaW50IHByb2dyZXNzIG1lc3NhZ2VzCi0rICAtZCwgLS1kZWJ1 ZyAgICAgIGRvbid0IHJlbW92ZSB0ZW1wb3JhcnkgZmlsZXMKLSsgICAgICAtLXJlY2hlY2sgICAg dXBkYXRlICRhc19tZSBieSByZWNvbmZpZ3VyaW5nIGluIHRoZSBzYW1lIGNvbmRpdGlvbnMKLSsg ICAgICAtLWZpbGU9RklMRVs6VEVNUExBVEVdCi0rICAgICAgICAgICAgICAgICAgIGluc3RhbnRp YXRlIHRoZSBjb25maWd1cmF0aW9uIGZpbGUgRklMRQotKyAgICAgIC0taGVhZGVyPUZJTEVbOlRF TVBMQVRFXQotKyAgICAgICAgICAgICAgICAgICBpbnN0YW50aWF0ZSB0aGUgY29uZmlndXJhdGlv biBoZWFkZXIgRklMRQotKwotK0NvbmZpZ3VyYXRpb24gZmlsZXM6Ci0rJGNvbmZpZ19maWxlcwot KwotK0NvbmZpZ3VyYXRpb24gaGVhZGVyczoKLSskY29uZmlnX2hlYWRlcnMKLSsKLStDb25maWd1 cmF0aW9uIGNvbW1hbmRzOgotKyRjb25maWdfY29tbWFuZHMKLSsKLStSZXBvcnQgYnVncyB0byA8 bXNvYmN6YWtAdXNlcnMuc291cmNlZm9yZ2UubmV0Pi4iCi0rCi0rX0FDRU9GCi0rY2F0ID4+JENP TkZJR19TVEFUVVMgPDxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rYWNfY3NfY29uZmlnPSJg JGFzX2VjaG8gIiRhY19jb25maWd1cmVfYXJncyIgfCBzZWQgJ3MvXiAvLzsgcy9bXFwiIlxgXCRd L1xcXFwmL2cnYCIKLSthY19jc192ZXJzaW9uPSJcXAotK1NPQ0kgY29uZmlnLnN0YXR1cyAzLjAu MAotK2NvbmZpZ3VyZWQgYnkgJDAsIGdlbmVyYXRlZCBieSBHTlUgQXV0b2NvbmYgMi42OCwKLSsg IHdpdGggb3B0aW9ucyBcXCJcJGFjX2NzX2NvbmZpZ1xcIgotKwotK0NvcHlyaWdodCAoQykgMjAx MCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KLStUaGlzIGNvbmZpZy5zdGF0dXMgc2Ny aXB0IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLStnaXZl cyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5LCBkaXN0cmlidXRlIGFuZCBtb2RpZnkgaXQu IgotKwotK2FjX3B3ZD0nJGFjX3B3ZCcKLStzcmNkaXI9JyRzcmNkaXInCi0rSU5TVEFMTD0nJElO U1RBTEwnCi0rTUtESVJfUD0nJE1LRElSX1AnCi0rQVdLPSckQVdLJwotK3Rlc3QgLW4gIlwkQVdL IiB8fCBBV0s9YXdrCi0rX0FDRU9GCi0rCi0rY2F0ID4+JENPTkZJR19TVEFUVVMgPDxcX0FDRU9G IHx8IGFjX3dyaXRlX2ZhaWw9MQotKyMgVGhlIGRlZmF1bHQgbGlzdHMgYXBwbHkgaWYgdGhlIHVz ZXIgZG9lcyBub3Qgc3BlY2lmeSBhbnkgZmlsZS4KLSthY19uZWVkX2RlZmF1bHRzPToKLSt3aGls ZSB0ZXN0ICQjICE9IDAKLStkbwotKyAgY2FzZSAkMSBpbgotKyAgLS0qPT8qKQotKyAgICBhY19v cHRpb249YGV4cHIgIlgkMSIgOiAnWFwoW149XSpcKT0nYAotKyAgICBhY19vcHRhcmc9YGV4cHIg IlgkMSIgOiAnWFtePV0qPVwoLipcKSdgCi0rICAgIGFjX3NoaWZ0PToKLSsgICAgOzsKLSsgIC0t Kj0pCi0rICAgIGFjX29wdGlvbj1gZXhwciAiWCQxIiA6ICdYXChbXj1dKlwpPSdgCi0rICAgIGFj X29wdGFyZz0KLSsgICAgYWNfc2hpZnQ9OgotKyAgICA7OwotKyAgKikKLSsgICAgYWNfb3B0aW9u PSQxCi0rICAgIGFjX29wdGFyZz0kMgotKyAgICBhY19zaGlmdD1zaGlmdAotKyAgICA7OwotKyAg ZXNhYwotKwotKyAgY2FzZSAkYWNfb3B0aW9uIGluCi0rICAjIEhhbmRsaW5nIG9mIHRoZSBvcHRp b25zLgotKyAgLXJlY2hlY2sgfCAtLXJlY2hlY2sgfCAtLXJlY2hlYyB8IC0tcmVjaGUgfCAtLXJl Y2ggfCAtLXJlYyB8IC0tcmUgfCAtLXIpCi0rICAgIGFjX2NzX3JlY2hlY2s9OiA7OwotKyAgLS12 ZXJzaW9uIHwgLS12ZXJzaW8gfCAtLXZlcnNpIHwgLS12ZXJzIHwgLS12ZXIgfCAtLXZlIHwgLS12 IHwgLVYgKQotKyAgICAkYXNfZWNobyAiJGFjX2NzX3ZlcnNpb24iOyBleGl0IDs7Ci0rICAtLWNv bmZpZyB8IC0tY29uZmkgfCAtLWNvbmYgfCAtLWNvbiB8IC0tY28gfCAtLWMgKQotKyAgICAkYXNf ZWNobyAiJGFjX2NzX2NvbmZpZyI7IGV4aXQgOzsKLSsgIC0tZGVidWcgfCAtLWRlYnUgfCAtLWRl YiB8IC0tZGUgfCAtLWQgfCAtZCApCi0rICAgIGRlYnVnPTogOzsKLSsgIC0tZmlsZSB8IC0tZmls IHwgLS1maSB8IC0tZiApCi0rICAgICRhY19zaGlmdAotKyAgICBjYXNlICRhY19vcHRhcmcgaW4K LSsgICAgKlwnKikgYWNfb3B0YXJnPWAkYXNfZWNobyAiJGFjX29wdGFyZyIgfCBzZWQgInMvJy8n XFxcXFxcXFwnJy9nImAgOzsKLSsgICAgJycpIGFzX2ZuX2Vycm9yICQ/ICJtaXNzaW5nIGZpbGUg YXJndW1lbnQiIDs7Ci0rICAgIGVzYWMKLSsgICAgYXNfZm5fYXBwZW5kIENPTkZJR19GSUxFUyAi ICckYWNfb3B0YXJnJyIKLSsgICAgYWNfbmVlZF9kZWZhdWx0cz1mYWxzZTs7Ci0rICAtLWhlYWRl ciB8IC0taGVhZGUgfCAtLWhlYWQgfCAtLWhlYSApCi0rICAgICRhY19zaGlmdAotKyAgICBjYXNl ICRhY19vcHRhcmcgaW4KLSsgICAgKlwnKikgYWNfb3B0YXJnPWAkYXNfZWNobyAiJGFjX29wdGFy ZyIgfCBzZWQgInMvJy8nXFxcXFxcXFwnJy9nImAgOzsKLSsgICAgZXNhYwotKyAgICBhc19mbl9h cHBlbmQgQ09ORklHX0hFQURFUlMgIiAnJGFjX29wdGFyZyciCi0rICAgIGFjX25lZWRfZGVmYXVs dHM9ZmFsc2U7OwotKyAgLS1oZSB8IC0taCkKLSsgICAgIyBDb25mbGljdCBiZXR3ZWVuIC0taGVs cCBhbmQgLS1oZWFkZXIKLSsgICAgYXNfZm5fZXJyb3IgJD8gImFtYmlndW91cyBvcHRpb246IFxg JDEnCi0rVHJ5IFxgJDAgLS1oZWxwJyBmb3IgbW9yZSBpbmZvcm1hdGlvbi4iOzsKLSsgIC0taGVs cCB8IC0taGVsIHwgLWggKQotKyAgICAkYXNfZWNobyAiJGFjX2NzX3VzYWdlIjsgZXhpdCA7Owot KyAgLXEgfCAtcXVpZXQgfCAtLXF1aWV0IHwgLS1xdWllIHwgLS1xdWkgfCAtLXF1IHwgLS1xIFwK LSsgIHwgLXNpbGVudCB8IC0tc2lsZW50IHwgLS1zaWxlbiB8IC0tc2lsZSB8IC0tc2lsIHwgLS1z aSB8IC0tcykKLSsgICAgYWNfY3Nfc2lsZW50PTogOzsKLSsKLSsgICMgVGhpcyBpcyBhbiBlcnJv ci4KLSsgIC0qKSBhc19mbl9lcnJvciAkPyAidW5yZWNvZ25pemVkIG9wdGlvbjogXGAkMScKLStU cnkgXGAkMCAtLWhlbHAnIGZvciBtb3JlIGluZm9ybWF0aW9uLiIgOzsKLSsKLSsgICopIGFzX2Zu X2FwcGVuZCBhY19jb25maWdfdGFyZ2V0cyAiICQxIgotKyAgICAgYWNfbmVlZF9kZWZhdWx0cz1m YWxzZSA7OwotKwotKyAgZXNhYwotKyAgc2hpZnQKLStkb25lCi0rCi0rYWNfY29uZmlndXJlX2V4 dHJhX2FyZ3M9Ci0rCi0raWYgJGFjX2NzX3NpbGVudDsgdGhlbgotKyAgZXhlYyA2Pi9kZXYvbnVs bAotKyAgYWNfY29uZmlndXJlX2V4dHJhX2FyZ3M9IiRhY19jb25maWd1cmVfZXh0cmFfYXJncyAt LXNpbGVudCIKLStmaQotKwotK19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8X0FDRU9G IHx8IGFjX3dyaXRlX2ZhaWw9MQotK2lmIFwkYWNfY3NfcmVjaGVjazsgdGhlbgotKyAgc2V0IFgg JyRTSEVMTCcgJyQwJyAkYWNfY29uZmlndXJlX2FyZ3MgXCRhY19jb25maWd1cmVfZXh0cmFfYXJn cyAtLW5vLWNyZWF0ZSAtLW5vLXJlY3Vyc2lvbgotKyAgc2hpZnQKLSsgIFwkYXNfZWNobyAicnVu bmluZyBDT05GSUdfU0hFTEw9JFNIRUxMIFwkKiIgPiY2Ci0rICBDT05GSUdfU0hFTEw9JyRTSEVM TCcKLSsgIGV4cG9ydCBDT05GSUdfU0hFTEwKLSsgIGV4ZWMgIlwkQCIKLStmaQotKwotK19BQ0VP RgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLStl eGVjIDU+PmNvbmZpZy5sb2cKLSt7Ci0rICBlY2hvCi0rICBzZWQgJ2g7cy8uLy0vZztzL14uLi4v IyMgLztzLy4uLiQvICMjLztwO3g7cDt4JyA8PF9BU0JPWAotKyMjIFJ1bm5pbmcgJGFzX21lLiAj IwotK19BU0JPWAotKyAgJGFzX2VjaG8gIiRhY19sb2ciCi0rfSA+JjUKLSsKLStfQUNFT0YKLStj YXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSsjCi0rIyBJ TklULUNPTU1BTkRTCi0rIwotK0FNREVQX1RSVUU9IiRBTURFUF9UUlVFIiBhY19hdXhfZGlyPSIk YWNfYXV4X2RpciIKLSsKLSsKLSsjIFRoZSBIUC1VWCBrc2ggYW5kIFBPU0lYIHNoZWxsIHByaW50 IHRoZSB0YXJnZXQgZGlyZWN0b3J5IHRvIHN0ZG91dAotKyMgaWYgQ0RQQVRIIGlzIHNldC4KLSso dW5zZXQgQ0RQQVRIKSA+L2Rldi9udWxsIDI+JjEgJiYgdW5zZXQgQ0RQQVRICi0rCi0rc2VkX3F1 b3RlX3N1YnN0PSckc2VkX3F1b3RlX3N1YnN0JwotK2RvdWJsZV9xdW90ZV9zdWJzdD0nJGRvdWJs ZV9xdW90ZV9zdWJzdCcKLStkZWxheV92YXJpYWJsZV9zdWJzdD0nJGRlbGF5X3ZhcmlhYmxlX3N1 YnN0JwotK2VuYWJsZV9zaGFyZWQ9J2AkRUNITyAiJGVuYWJsZV9zaGFyZWQiIHwgJFNFRCAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2VuYWJsZV9zdGF0aWM9J2AkRUNITyAiJGVuYWJs ZV9zdGF0aWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK21hY3JvX3Zl cnNpb249J2AkRUNITyAiJG1hY3JvX3ZlcnNpb24iIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK21hY3JvX3JldmlzaW9uPSdgJEVDSE8gIiRtYWNyb19yZXZpc2lvbiIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcGljX21vZGU9J2AkRUNITyAiJHBp Y19tb2RlIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfZmFz dF9pbnN0YWxsPSdgJEVDSE8gIiRlbmFibGVfZmFzdF9pbnN0YWxsIiB8ICRTRUQgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStTSEVMTD0nYCRFQ0hPICIkU0hFTEwiIHwgJFNFRCAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0VDSE89J2AkRUNITyAiJEVDSE8iIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hvc3RfYWxpYXM9J2AkRUNITyAiJGhvc3Rf YWxpYXMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hvc3Q9J2AkRUNI TyAiJGhvc3QiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hvc3Rfb3M9 J2AkRUNITyAiJGhvc3Rfb3MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K2J1aWxkX2FsaWFzPSdgJEVDSE8gIiRidWlsZF9hbGlhcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0rYnVpbGQ9J2AkRUNITyAiJGJ1aWxkIiB8ICRTRUQgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStidWlsZF9vcz0nYCRFQ0hPICIkYnVpbGRfb3MiIHwgJFNF RCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1NFRD0nYCRFQ0hPICIkU0VEIiB8ICRT RUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStYc2VkPSdgJEVDSE8gIiRYc2VkIiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStHUkVQPSdgJEVDSE8gIiRHUkVQ IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStFR1JFUD0nYCRFQ0hPICIk RUdSRVAiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0ZHUkVQPSdgJEVD SE8gIiRGR1JFUCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rTEQ9J2Ak RUNITyAiJExEIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStOTT0nYCRF Q0hPICIkTk0iIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0xOX1M9J2Ak RUNITyAiJExOX1MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK21heF9j bWRfbGVuPSdgJEVDSE8gIiRtYXhfY21kX2xlbiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rYWNfb2JqZXh0PSdgJEVDSE8gIiRhY19vYmpleHQiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4ZWV4dD0nYCRFQ0hPICIkZXhlZXh0IiB8ICRTRUQg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF91bnNldD0nYCRFQ0hPICIkbHRfdW5z ZXQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X1NQMk5MPSdgJEVD SE8gIiRsdF9TUDJOTCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRf TkwyU1A9J2AkRUNITyAiJGx0X05MMlNQIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStsdF9jdl90b19ob3N0X2ZpbGVfY21kPSdgJEVDSE8gIiRsdF9jdl90b19ob3N0X2Zp bGVfY21kIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9jdl90b190 b29sX2ZpbGVfY21kPSdgJEVDSE8gIiRsdF9jdl90b190b29sX2ZpbGVfY21kIiB8ICRTRUQgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStyZWxvYWRfZmxhZz0nYCRFQ0hPICIkcmVsb2Fk X2ZsYWciIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3JlbG9hZF9jbWRz PSdgJEVDSE8gIiRyZWxvYWRfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rT0JKRFVNUD0nYCRFQ0hPICIkT0JKRFVNUCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rZGVwbGlic19jaGVja19tZXRob2Q9J2AkRUNITyAiJGRlcGxpYnNfY2hl Y2tfbWV0aG9kIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStmaWxlX21h Z2ljX2NtZD0nYCRFQ0hPICIkZmlsZV9tYWdpY19jbWQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK2ZpbGVfbWFnaWNfZ2xvYj0nYCRFQ0hPICIkZmlsZV9tYWdpY19nbG9i IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSt3YW50X25vY2FzZWdsb2I9 J2AkRUNITyAiJHdhbnRfbm9jYXNlZ2xvYiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rRExMVE9PTD0nYCRFQ0hPICIkRExMVE9PTCIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0rc2hhcmVkbGliX2Zyb21fbGlua2xpYl9jbWQ9J2AkRUNITyAiJHNo YXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLStBUj0nYCRFQ0hPICIkQVIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK0FSX0ZMQUdTPSdgJEVDSE8gIiRBUl9GTEFHUyIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0rYXJjaGl2ZXJfbGlzdF9zcGVjPSdgJEVDSE8gIiRhcmNoaXZlcl9s aXN0X3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK1NUUklQPSdg JEVDSE8gIiRTVFJJUCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rUkFO TElCPSdgJEVDSE8gIiRSQU5MSUIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK29sZF9wb3N0aW5zdGFsbF9jbWRzPSdgJEVDSE8gIiRvbGRfcG9zdGluc3RhbGxfY21kcyIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX3Bvc3R1bmluc3RhbGxf Y21kcz0nYCRFQ0hPICIkb2xkX3Bvc3R1bmluc3RhbGxfY21kcyIgfCAkU0VEICIkZGVsYXlfc2lu Z2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVfY21kcz0nYCRFQ0hPICIkb2xkX2FyY2hp dmVfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbG9ja19vbGRf YXJjaGl2ZV9leHRyYWN0aW9uPSdgJEVDSE8gIiRsb2NrX29sZF9hcmNoaXZlX2V4dHJhY3Rpb24i IHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0NDPSdgJEVDSE8gIiRDQyIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rQ0ZMQUdTPSdgJEVDSE8gIiRD RkxBR1MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2NvbXBpbGVyPSdg JEVDSE8gIiRjb21waWxlciIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r R0NDPSdgJEVDSE8gIiRHQ0MiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3BpcGU9J2AkRUNITyAiJGx0X2N2X3N5c19nbG9iYWxf c3ltYm9sX3BpcGUiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X2N2 X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsPSdgJEVDSE8gIiRsdF9jdl9zeXNfZ2xvYmFsX3N5 bWJvbF90b19jZGVjbCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRf Y3Zfc3lzX2dsb2JhbF9zeW1ib2xfdG9fY19uYW1lX2FkZHJlc3M9J2AkRUNITyAiJGx0X2N2X3N5 c19nbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVz c19saWJfcHJlZml4PSdgJEVDSE8gIiRsdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVf YWRkcmVzc19saWJfcHJlZml4IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcK LStubV9maWxlX2xpc3Rfc3BlYz0nYCRFQ0hPICIkbm1fZmlsZV9saXN0X3NwZWMiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X3N5c3Jvb3Q9J2AkRUNITyAiJGx0X3N5 c3Jvb3QiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK29iamRpcj0nYCRF Q0hPICIkb2JqZGlyIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStNQUdJ Q19DTUQ9J2AkRUNITyAiJE1BR0lDX0NNRCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rbHRfcHJvZ19jb21waWxlcl9ub19idWlsdGluX2ZsYWc9J2AkRUNITyAiJGx0X3By b2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3BpYz0nYCRFQ0hPICIkbHRfcHJvZ19jb21waWxl cl9waWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X3Byb2dfY29t cGlsZXJfd2w9J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfd2wiIHwgJFNFRCAiJGRlbGF5X3Np bmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X3Byb2dfY29tcGlsZXJfc3RhdGljPSdgJEVDSE8gIiRs dF9wcm9nX2NvbXBpbGVyX3N0YXRpYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rbHRfY3ZfcHJvZ19jb21waWxlcl9jX289J2AkRUNITyAiJGx0X2N2X3Byb2dfY29tcGls ZXJfY19vIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStuZWVkX2xvY2tz PSdgJEVDSE8gIiRuZWVkX2xvY2tzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStNQU5JRkVTVF9UT09MPSdgJEVDSE8gIiRNQU5JRkVTVF9UT09MIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStEU1lNVVRJTD0nYCRFQ0hPICIkRFNZTVVUSUwiIHwg JFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK05NRURJVD0nYCRFQ0hPICIkTk1F RElUIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStMSVBPPSdgJEVDSE8g IiRMSVBPIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStPVE9PTD0nYCRF Q0hPICIkT1RPT0wiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK09UT09M NjQ9J2AkRUNITyAiJE9UT09MNjQiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJg JwotK2xpYmV4dD0nYCRFQ0hPICIkbGliZXh0IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStzaHJleHRfY21kcz0nYCRFQ0hPICIkc2hyZXh0X2NtZHMiIHwgJFNFRCAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4dHJhY3RfZXhwc3ltc19jbWRzPSdgJEVDSE8g IiRleHRyYWN0X2V4cHN5bXNfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rYXJjaGl2ZV9jbWRzX25lZWRfbGM9J2AkRUNITyAiJGFyY2hpdmVfY21kc19uZWVkX2xj IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfc2hhcmVkX3dp dGhfc3RhdGljX3J1bnRpbWVzPSdgJEVDSE8gIiRlbmFibGVfc2hhcmVkX3dpdGhfc3RhdGljX3J1 bnRpbWVzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStleHBvcnRfZHlu YW1pY19mbGFnX3NwZWM9J2AkRUNITyAiJGV4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9 J2AkRUNITyAiJHdob2xlX2FyY2hpdmVfZmxhZ19zcGVjIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStjb21waWxlcl9uZWVkc19vYmplY3Q9J2AkRUNITyAiJGNvbXBpbGVy X25lZWRzX29iamVjdCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xk X2FyY2hpdmVfZnJvbV9uZXdfY21kcz0nYCRFQ0hPICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21k cyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX2FyY2hpdmVfZnJv bV9leHBzeW1zX2NtZHM9J2AkRUNITyAiJG9sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSthcmNoaXZlX2NtZHM9J2AkRUNI TyAiJGFyY2hpdmVfY21kcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0r YXJjaGl2ZV9leHBzeW1fY21kcz0nYCRFQ0hPICIkYXJjaGl2ZV9leHBzeW1fY21kcyIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbW9kdWxlX2NtZHM9J2AkRUNITyAiJG1v ZHVsZV9jbWRzIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSttb2R1bGVf ZXhwc3ltX2NtZHM9J2AkRUNITyAiJG1vZHVsZV9leHBzeW1fY21kcyIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rd2l0aF9nbnVfbGQ9J2AkRUNITyAiJHdpdGhfZ251X2xk IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSthbGxvd191bmRlZmluZWRf ZmxhZz0nYCRFQ0hPICIkYWxsb3dfdW5kZWZpbmVkX2ZsYWciIHwgJFNFRCAiJGRlbGF5X3Npbmds ZV9xdW90ZV9zdWJzdCJgJwotK25vX3VuZGVmaW5lZF9mbGFnPSdgJEVDSE8gIiRub191bmRlZmlu ZWRfZmxhZyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVf bGliZGlyX2ZsYWdfc3BlYz0nYCRFQ0hPICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdf c3BlY19sZD0nYCRFQ0hPICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0n YCRFQ0hPICIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfZGlyZWN0PSdgJEVDSE8gIiRoYXJkY29kZV9kaXJl Y3QiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2RpcmVj dF9hYnNvbHV0ZT0nYCRFQ0hPICIkaGFyZGNvZGVfZGlyZWN0X2Fic29sdXRlIiB8ICRTRUQgIiRk ZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9taW51c19MPSdgJEVDSE8gIiRo YXJkY29kZV9taW51c19MIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSto YXJkY29kZV9zaGxpYnBhdGhfdmFyPSdgJEVDSE8gIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyIiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9hdXRvbWF0aWM9 J2AkRUNITyAiJGhhcmRjb2RlX2F1dG9tYXRpYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0raW5oZXJpdF9ycGF0aD0nYCRFQ0hPICIkaW5oZXJpdF9ycGF0aCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbGlua19hbGxfZGVwbGlicz0nYCRFQ0hP ICIkbGlua19hbGxfZGVwbGlicyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSdgJEVDSE8gIiRhbHdheXNfZXhwb3J0X3N5bWJvbHMi IHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2V4cG9ydF9zeW1ib2xzX2Nt ZHM9J2AkRUNITyAiJGV4cG9ydF9zeW1ib2xzX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK2V4Y2x1ZGVfZXhwc3ltcz0nYCRFQ0hPICIkZXhjbHVkZV9leHBzeW1z IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStpbmNsdWRlX2V4cHN5bXM9 J2AkRUNITyAiJGluY2x1ZGVfZXhwc3ltcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0rcHJlbGlua19jbWRzPSdgJEVDSE8gIiRwcmVsaW5rX2NtZHMiIHwgJFNFRCAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3Bvc3RsaW5rX2NtZHM9J2AkRUNITyAiJHBvc3Rs aW5rX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2ZpbGVfbGlz dF9zcGVjPSdgJEVDSE8gIiRmaWxlX2xpc3Rfc3BlYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbms9J2AkRUNITyAiJHZhcmlh Ymxlc19zYXZlZF9mb3JfcmVsaW5rIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStuZWVkX2xpYl9wcmVmaXg9J2AkRUNITyAiJG5lZWRfbGliX3ByZWZpeCIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbmVlZF92ZXJzaW9uPSdgJEVDSE8gIiRuZWVk X3ZlcnNpb24iIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3ZlcnNpb25f dHlwZT0nYCRFQ0hPICIkdmVyc2lvbl90eXBlIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStydW5wYXRoX3Zhcj0nYCRFQ0hPICIkcnVucGF0aF92YXIiIHwgJFNFRCAiJGRl bGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3NobGlicGF0aF92YXI9J2AkRUNITyAiJHNobGli cGF0aF92YXIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3NobGlicGF0 aF9vdmVycmlkZXNfcnVucGF0aD0nYCRFQ0hPICIkc2hsaWJwYXRoX292ZXJyaWRlc19ydW5wYXRo IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsaWJuYW1lX3NwZWM9J2Ak RUNITyAiJGxpYm5hbWVfc3BlYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAn Ci0rbGlicmFyeV9uYW1lc19zcGVjPSdgJEVDSE8gIiRsaWJyYXJ5X25hbWVzX3NwZWMiIHwgJFNF RCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3NvbmFtZV9zcGVjPSdgJEVDSE8gIiRz b25hbWVfc3BlYyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raW5zdGFs bF9vdmVycmlkZV9tb2RlPSdgJEVDSE8gIiRpbnN0YWxsX292ZXJyaWRlX21vZGUiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3Bvc3RpbnN0YWxsX2NtZHM9J2AkRUNITyAi JHBvc3RpbnN0YWxsX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K3Bvc3R1bmluc3RhbGxfY21kcz0nYCRFQ0hPICIkcG9zdHVuaW5zdGFsbF9jbWRzIiB8ICRTRUQg IiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStmaW5pc2hfY21kcz0nYCRFQ0hPICIkZmlu aXNoX2NtZHMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2ZpbmlzaF9l dmFsPSdgJEVDSE8gIiRmaW5pc2hfZXZhbCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1 YnN0ImAnCi0raGFyZGNvZGVfaW50b19saWJzPSdgJEVDSE8gIiRoYXJkY29kZV9pbnRvX2xpYnMi IHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3N5c19saWJfc2VhcmNoX3Bh dGhfc3BlYz0nYCRFQ0hPICIkc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIiB8ICRTRUQgIiRkZWxh eV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYz0nYCRF Q0hPICIkc3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWMiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9x dW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2FjdGlvbj0nYCRFQ0hPICIkaGFyZGNvZGVfYWN0aW9u IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVfZGxvcGVuPSdg JEVDSE8gIiRlbmFibGVfZGxvcGVuIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStlbmFibGVfZGxvcGVuX3NlbGY9J2AkRUNITyAiJGVuYWJsZV9kbG9wZW5fc2VsZiIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZW5hYmxlX2Rsb3Blbl9zZWxmX3N0 YXRpYz0nYCRFQ0hPICIkZW5hYmxlX2Rsb3Blbl9zZWxmX3N0YXRpYyIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rb2xkX3N0cmlwbGliPSdgJEVDSE8gIiRvbGRfc3RyaXBs aWIiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3N0cmlwbGliPSdgJEVD SE8gIiRzdHJpcGxpYiIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29t cGlsZXJfbGliX3NlYXJjaF9kaXJzPSdgJEVDSE8gIiRjb21waWxlcl9saWJfc2VhcmNoX2RpcnMi IHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3ByZWRlcF9vYmplY3RzPSdg JEVDSE8gIiRwcmVkZXBfb2JqZWN0cyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rcG9zdGRlcF9vYmplY3RzPSdgJEVDSE8gIiRwb3N0ZGVwX29iamVjdHMiIHwgJFNFRCAi JGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3ByZWRlcHM9J2AkRUNITyAiJHByZWRlcHMi IHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3Bvc3RkZXBzPSdgJEVDSE8g IiRwb3N0ZGVwcyIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rY29tcGls ZXJfbGliX3NlYXJjaF9wYXRoPSdgJEVDSE8gIiRjb21waWxlcl9saWJfc2VhcmNoX3BhdGgiIHwg JFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0xEX0NYWD0nYCRFQ0hPICIkTERf Q1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStyZWxvYWRfZmxhZ19D WFg9J2AkRUNITyAiJHJlbG9hZF9mbGFnX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rcmVsb2FkX2NtZHNfQ1hYPSdgJEVDSE8gIiRyZWxvYWRfY21kc19DWFgiIHwg JFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK29sZF9hcmNoaXZlX2NtZHNfQ1hY PSdgJEVDSE8gIiRvbGRfYXJjaGl2ZV9jbWRzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rY29tcGlsZXJfQ1hYPSdgJEVDSE8gIiRjb21waWxlcl9DWFgiIHwgJFNF RCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK0dDQ19DWFg9J2AkRUNITyAiJEdDQ19D WFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2x0X3Byb2dfY29tcGls ZXJfbm9fYnVpbHRpbl9mbGFnX0NYWD0nYCRFQ0hPICIkbHRfcHJvZ19jb21waWxlcl9ub19idWls dGluX2ZsYWdfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9w cm9nX2NvbXBpbGVyX3BpY19DWFg9J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfcGljX0NYWCIg fCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rbHRfcHJvZ19jb21waWxlcl93 bF9DWFg9J2AkRUNITyAiJGx0X3Byb2dfY29tcGlsZXJfd2xfQ1hYIiB8ICRTRUQgIiRkZWxheV9z aW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsdF9wcm9nX2NvbXBpbGVyX3N0YXRpY19DWFg9J2AkRUNI TyAiJGx0X3Byb2dfY29tcGlsZXJfc3RhdGljX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1 b3RlX3N1YnN0ImAnCi0rbHRfY3ZfcHJvZ19jb21waWxlcl9jX29fQ1hYPSdgJEVDSE8gIiRsdF9j dl9wcm9nX2NvbXBpbGVyX2Nfb19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2FyY2hpdmVfY21kc19uZWVkX2xjX0NYWD0nYCRFQ0hPICIkYXJjaGl2ZV9jbWRzX25l ZWRfbGNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStlbmFibGVf c2hhcmVkX3dpdGhfc3RhdGljX3J1bnRpbWVzX0NYWD0nYCRFQ0hPICIkZW5hYmxlX3NoYXJlZF93 aXRoX3N0YXRpY19ydW50aW1lc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJz dCJgJwotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFg9J2AkRUNITyAiJGV4cG9ydF9keW5h bWljX2ZsYWdfc3BlY19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwot K3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NYWD0nYCRFQ0hPICIkd2hvbGVfYXJjaGl2ZV9mbGFn X3NwZWNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStjb21waWxl cl9uZWVkc19vYmplY3RfQ1hYPSdgJEVDSE8gIiRjb21waWxlcl9uZWVkc19vYmplY3RfQ1hYIiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStvbGRfYXJjaGl2ZV9mcm9tX25l d19jbWRzX0NYWD0nYCRFQ0hPICIkb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFgiIHwgJFNF RCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3lt c19jbWRzX0NYWD0nYCRFQ0hPICIkb2xkX2FyY2hpdmVfZnJvbV9leHBzeW1zX2NtZHNfQ1hYIiB8 ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSthcmNoaXZlX2NtZHNfQ1hYPSdg JEVDSE8gIiRhcmNoaXZlX2NtZHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vi c3QiYCcKLSthcmNoaXZlX2V4cHN5bV9jbWRzX0NYWD0nYCRFQ0hPICIkYXJjaGl2ZV9leHBzeW1f Y21kc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK21vZHVsZV9j bWRzX0NYWD0nYCRFQ0hPICIkbW9kdWxlX2NtZHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLSttb2R1bGVfZXhwc3ltX2NtZHNfQ1hYPSdgJEVDSE8gIiRtb2R1bGVf ZXhwc3ltX2NtZHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLSt3 aXRoX2dudV9sZF9DWFg9J2AkRUNITyAiJHdpdGhfZ251X2xkX0NYWCIgfCAkU0VEICIkZGVsYXlf c2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rYWxsb3dfdW5kZWZpbmVkX2ZsYWdfQ1hYPSdgJEVDSE8g IiRhbGxvd191bmRlZmluZWRfZmxhZ19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9z dWJzdCJgJwotK25vX3VuZGVmaW5lZF9mbGFnX0NYWD0nYCRFQ0hPICIkbm9fdW5kZWZpbmVkX2Zs YWdfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjX0NYWD0nYCRFQ0hPICIkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19D WFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWNfbGRfQ1hYPSdgJEVDSE8gIiRoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjX2xk X0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfbGli ZGlyX3NlcGFyYXRvcl9DWFg9J2AkRUNITyAiJGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3JfQ1hY IiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9kaXJlY3Rf Q1hYPSdgJEVDSE8gIiRoYXJkY29kZV9kaXJlY3RfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVf cXVvdGVfc3Vic3QiYCcKLStoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYPSdgJEVDSE8gIiRo YXJkY29kZV9kaXJlY3RfYWJzb2x1dGVfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVf c3Vic3QiYCcKLStoYXJkY29kZV9taW51c19MX0NYWD0nYCRFQ0hPICIkaGFyZGNvZGVfbWludXNf TF9DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2hhcmRjb2RlX3No bGlicGF0aF92YXJfQ1hYPSdgJEVDSE8gIiRoYXJkY29kZV9zaGxpYnBhdGhfdmFyX0NYWCIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfYXV0b21hdGljX0NY WD0nYCRFQ0hPICIkaGFyZGNvZGVfYXV0b21hdGljX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xl X3F1b3RlX3N1YnN0ImAnCi0raW5oZXJpdF9ycGF0aF9DWFg9J2AkRUNITyAiJGluaGVyaXRfcnBh dGhfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3QiYCcKLStsaW5rX2FsbF9k ZXBsaWJzX0NYWD0nYCRFQ0hPICIkbGlua19hbGxfZGVwbGlic19DWFgiIHwgJFNFRCAiJGRlbGF5 X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2Fsd2F5c19leHBvcnRfc3ltYm9sc19DWFg9J2AkRUNI TyAiJGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK2V4cG9ydF9zeW1ib2xzX2NtZHNfQ1hYPSdgJEVDSE8gIiRleHBvcnRfc3lt Ym9sc19jbWRzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rZXhj bHVkZV9leHBzeW1zX0NYWD0nYCRFQ0hPICIkZXhjbHVkZV9leHBzeW1zX0NYWCIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raW5jbHVkZV9leHBzeW1zX0NYWD0nYCRFQ0hP ICIkaW5jbHVkZV9leHBzeW1zX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rcHJlbGlua19jbWRzX0NYWD0nYCRFQ0hPICIkcHJlbGlua19jbWRzX0NYWCIgfCAkU0VE ICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcG9zdGxpbmtfY21kc19DWFg9J2AkRUNI TyAiJHBvc3RsaW5rX2NtZHNfQ1hYIiB8ICRTRUQgIiRkZWxheV9zaW5nbGVfcXVvdGVfc3Vic3Qi YCcKLStmaWxlX2xpc3Rfc3BlY19DWFg9J2AkRUNITyAiJGZpbGVfbGlzdF9zcGVjX0NYWCIgfCAk U0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0raGFyZGNvZGVfYWN0aW9uX0NYWD0n YCRFQ0hPICIkaGFyZGNvZGVfYWN0aW9uX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3Rl X3N1YnN0ImAnCi0rY29tcGlsZXJfbGliX3NlYXJjaF9kaXJzX0NYWD0nYCRFQ0hPICIkY29tcGls ZXJfbGliX3NlYXJjaF9kaXJzX0NYWCIgfCAkU0VEICIkZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0 ImAnCi0rcHJlZGVwX29iamVjdHNfQ1hYPSdgJEVDSE8gIiRwcmVkZXBfb2JqZWN0c19DWFgiIHwg JFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK3Bvc3RkZXBfb2JqZWN0c19DWFg9 J2AkRUNITyAiJHBvc3RkZXBfb2JqZWN0c19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90 ZV9zdWJzdCJgJwotK3ByZWRlcHNfQ1hYPSdgJEVDSE8gIiRwcmVkZXBzX0NYWCIgfCAkU0VEICIk ZGVsYXlfc2luZ2xlX3F1b3RlX3N1YnN0ImAnCi0rcG9zdGRlcHNfQ1hYPSdgJEVDSE8gIiRwb3N0 ZGVwc19DWFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotK2NvbXBpbGVy X2xpYl9zZWFyY2hfcGF0aF9DWFg9J2AkRUNITyAiJGNvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9D WFgiIHwgJFNFRCAiJGRlbGF5X3NpbmdsZV9xdW90ZV9zdWJzdCJgJwotKwotK0xUQ0M9JyRMVEND JwotK0xUQ0ZMQUdTPSckTFRDRkxBR1MnCi0rY29tcGlsZXI9JyRjb21waWxlcl9ERUZBVUxUJwot KwotKyMgQSBmdW5jdGlvbiB0aGF0IGlzIHVzZWQgd2hlbiB0aGVyZSBpcyBubyBwcmludCBidWls dGluIG9yIHByaW50Zi4KLStmdW5jX2ZhbGxiYWNrX2VjaG8gKCkKLSt7Ci0rICBldmFsICdjYXQg PDxfTFRFQ0hPX0VPRgotK1wkMQotK19MVEVDSE9fRU9GJwotK30KLSsKLSsjIFF1b3RlIGV2YWxl ZCBzdHJpbmdzLgotK2ZvciB2YXIgaW4gU0hFTEwgXAotK0VDSE8gXAotK1NFRCBcCi0rR1JFUCBc Ci0rRUdSRVAgXAotK0ZHUkVQIFwKLStMRCBcCi0rTk0gXAotK0xOX1MgXAotK2x0X1NQMk5MIFwK LStsdF9OTDJTUCBcCi0rcmVsb2FkX2ZsYWcgXAotK09CSkRVTVAgXAotK2RlcGxpYnNfY2hlY2tf bWV0aG9kIFwKLStmaWxlX21hZ2ljX2NtZCBcCi0rZmlsZV9tYWdpY19nbG9iIFwKLSt3YW50X25v Y2FzZWdsb2IgXAotK0RMTFRPT0wgXAotK3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kIFwKLStB UiBcCi0rQVJfRkxBR1MgXAotK2FyY2hpdmVyX2xpc3Rfc3BlYyBcCi0rU1RSSVAgXAotK1JBTkxJ QiBcCi0rQ0MgXAotK0NGTEFHUyBcCi0rY29tcGlsZXIgXAotK2x0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3BpcGUgXAotK2x0X2N2X3N5c19nbG9iYWxfc3ltYm9sX3RvX2NkZWNsIFwKLStsdF9jdl9z eXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcyBcCi0rbHRfY3Zfc3lzX2dsb2JhbF9z eW1ib2xfdG9fY19uYW1lX2FkZHJlc3NfbGliX3ByZWZpeCBcCi0rbm1fZmlsZV9saXN0X3NwZWMg XAotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnIFwKLStsdF9wcm9nX2NvbXBpbGVy X3BpYyBcCi0rbHRfcHJvZ19jb21waWxlcl93bCBcCi0rbHRfcHJvZ19jb21waWxlcl9zdGF0aWMg XAotK2x0X2N2X3Byb2dfY29tcGlsZXJfY19vIFwKLStuZWVkX2xvY2tzIFwKLStNQU5JRkVTVF9U T09MIFwKLStEU1lNVVRJTCBcCi0rTk1FRElUIFwKLStMSVBPIFwKLStPVE9PTCBcCi0rT1RPT0w2 NCBcCi0rc2hyZXh0X2NtZHMgXAotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYyBcCi0rd2hvbGVf YXJjaGl2ZV9mbGFnX3NwZWMgXAotK2NvbXBpbGVyX25lZWRzX29iamVjdCBcCi0rd2l0aF9nbnVf bGQgXAotK2FsbG93X3VuZGVmaW5lZF9mbGFnIFwKLStub191bmRlZmluZWRfZmxhZyBcCi0raGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZCBc Ci0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciBcCi0rZXhjbHVkZV9leHBzeW1zIFwKLStpbmNs dWRlX2V4cHN5bXMgXAotK2ZpbGVfbGlzdF9zcGVjIFwKLSt2YXJpYWJsZXNfc2F2ZWRfZm9yX3Jl bGluayBcCi0rbGlibmFtZV9zcGVjIFwKLStsaWJyYXJ5X25hbWVzX3NwZWMgXAotK3NvbmFtZV9z cGVjIFwKLStpbnN0YWxsX292ZXJyaWRlX21vZGUgXAotK2ZpbmlzaF9ldmFsIFwKLStvbGRfc3Ry aXBsaWIgXAotK3N0cmlwbGliIFwKLStjb21waWxlcl9saWJfc2VhcmNoX2RpcnMgXAotK3ByZWRl cF9vYmplY3RzIFwKLStwb3N0ZGVwX29iamVjdHMgXAotK3ByZWRlcHMgXAotK3Bvc3RkZXBzIFwK LStjb21waWxlcl9saWJfc2VhcmNoX3BhdGggXAotK0xEX0NYWCBcCi0rcmVsb2FkX2ZsYWdfQ1hY IFwKLStjb21waWxlcl9DWFggXAotK2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NY WCBcCi0rbHRfcHJvZ19jb21waWxlcl9waWNfQ1hYIFwKLStsdF9wcm9nX2NvbXBpbGVyX3dsX0NY WCBcCi0rbHRfcHJvZ19jb21waWxlcl9zdGF0aWNfQ1hYIFwKLStsdF9jdl9wcm9nX2NvbXBpbGVy X2Nfb19DWFggXAotK2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlY19DWFggXAotK3dob2xlX2FyY2hp dmVfZmxhZ19zcGVjX0NYWCBcCi0rY29tcGlsZXJfbmVlZHNfb2JqZWN0X0NYWCBcCi0rd2l0aF9n bnVfbGRfQ1hYIFwKLSthbGxvd191bmRlZmluZWRfZmxhZ19DWFggXAotK25vX3VuZGVmaW5lZF9m bGFnX0NYWCBcCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19DWFggXAotK2hhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWNfbGRfQ1hYIFwKLStoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yX0NYWCBc Ci0rZXhjbHVkZV9leHBzeW1zX0NYWCBcCi0raW5jbHVkZV9leHBzeW1zX0NYWCBcCi0rZmlsZV9s aXN0X3NwZWNfQ1hYIFwKLStjb21waWxlcl9saWJfc2VhcmNoX2RpcnNfQ1hYIFwKLStwcmVkZXBf b2JqZWN0c19DWFggXAotK3Bvc3RkZXBfb2JqZWN0c19DWFggXAotK3ByZWRlcHNfQ1hYIFwKLStw b3N0ZGVwc19DWFggXAotK2NvbXBpbGVyX2xpYl9zZWFyY2hfcGF0aF9DWFg7IGRvCi0rICAgIGNh c2UgXGBldmFsIFxcXFxcJEVDSE8gXFxcXCIiXFxcXFwkXCR2YXIiXFxcXCJcYCBpbgotKyAgICAq W1xcXFxcXFxgXFwiXFxcJF0qKQotKyAgICAgIGV2YWwgImx0X1wkdmFyPVxcXFxcXCJcXFxgXFxc JEVDSE8gXFwiXFxcJFwkdmFyXFwiIHwgXFxcJFNFRCBcXCJcXFwkc2VkX3F1b3RlX3N1YnN0XFwi XFxcYFxcXFxcXCIiCi0rICAgICAgOzsKLSsgICAgKikKLSsgICAgICBldmFsICJsdF9cJHZhcj1c XFxcXFwiXFxcJFwkdmFyXFxcXFxcIiIKLSsgICAgICA7OwotKyAgICBlc2FjCi0rZG9uZQotKwot KyMgRG91YmxlLXF1b3RlIGRvdWJsZS1ldmFsZWQgc3RyaW5ncy4KLStmb3IgdmFyIGluIHJlbG9h ZF9jbWRzIFwKLStvbGRfcG9zdGluc3RhbGxfY21kcyBcCi0rb2xkX3Bvc3R1bmluc3RhbGxfY21k cyBcCi0rb2xkX2FyY2hpdmVfY21kcyBcCi0rZXh0cmFjdF9leHBzeW1zX2NtZHMgXAotK29sZF9h cmNoaXZlX2Zyb21fbmV3X2NtZHMgXAotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzIFwK LSthcmNoaXZlX2NtZHMgXAotK2FyY2hpdmVfZXhwc3ltX2NtZHMgXAotK21vZHVsZV9jbWRzIFwK LSttb2R1bGVfZXhwc3ltX2NtZHMgXAotK2V4cG9ydF9zeW1ib2xzX2NtZHMgXAotK3ByZWxpbmtf Y21kcyBcCi0rcG9zdGxpbmtfY21kcyBcCi0rcG9zdGluc3RhbGxfY21kcyBcCi0rcG9zdHVuaW5z dGFsbF9jbWRzIFwKLStmaW5pc2hfY21kcyBcCi0rc3lzX2xpYl9zZWFyY2hfcGF0aF9zcGVjIFwK LStzeXNfbGliX2Rsc2VhcmNoX3BhdGhfc3BlYyBcCi0rcmVsb2FkX2NtZHNfQ1hYIFwKLStvbGRf YXJjaGl2ZV9jbWRzX0NYWCBcCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kc19DWFggXAotK29s ZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWCBcCi0rYXJjaGl2ZV9jbWRzX0NYWCBcCi0r YXJjaGl2ZV9leHBzeW1fY21kc19DWFggXAotK21vZHVsZV9jbWRzX0NYWCBcCi0rbW9kdWxlX2V4 cHN5bV9jbWRzX0NYWCBcCi0rZXhwb3J0X3N5bWJvbHNfY21kc19DWFggXAotK3ByZWxpbmtfY21k c19DWFggXAotK3Bvc3RsaW5rX2NtZHNfQ1hYOyBkbwotKyAgICBjYXNlIFxgZXZhbCBcXFxcXCRF Q0hPIFxcXFwiIlxcXFxcJFwkdmFyIlxcXFwiXGAgaW4KLSsgICAgKltcXFxcXFxcYFxcIlxcXCRd KikKLSsgICAgICBldmFsICJsdF9cJHZhcj1cXFxcXFwiXFxcYFxcXCRFQ0hPIFxcIlxcXCRcJHZh clxcIiB8IFxcXCRTRUQgLWUgXFwiXFxcJGRvdWJsZV9xdW90ZV9zdWJzdFxcIiAtZSBcXCJcXFwk c2VkX3F1b3RlX3N1YnN0XFwiIC1lIFxcIlxcXCRkZWxheV92YXJpYWJsZV9zdWJzdFxcIlxcXGBc XFxcXFwiIgotKyAgICAgIDs7Ci0rICAgICopCi0rICAgICAgZXZhbCAibHRfXCR2YXI9XFxcXFxc IlxcXCRcJHZhclxcXFxcXCIiCi0rICAgICAgOzsKLSsgICAgZXNhYwotK2RvbmUKLSsKLSthY19h dXhfZGlyPSckYWNfYXV4X2RpcicKLSt4c2lfc2hlbGw9JyR4c2lfc2hlbGwnCi0rbHRfc2hlbGxf YXBwZW5kPSckbHRfc2hlbGxfYXBwZW5kJwotKwotKyMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9u IHpzaCwgYW5kIHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsjIGNvbW1hbmRzIHRo cm91Z2ggd2l0aG91dCByZW1vdmFsIG9mIFwgZXNjYXBlcyBJTklULgotK2lmIHRlc3QgLW4gIlwk e1pTSF9WRVJTSU9OK3NldH0iIDsgdGhlbgotKyAgIHNldG9wdCBOT19HTE9CX1NVQlNUCi0rZmkK LSsKLSsKLSsgICAgUEFDS0FHRT0nJFBBQ0tBR0UnCi0rICAgIFZFUlNJT049JyRWRVJTSU9OJwot KyAgICBUSU1FU1RBTVA9JyRUSU1FU1RBTVAnCi0rICAgIFJNPSckUk0nCi0rICAgIG9maWxlPSck b2ZpbGUnCi0rCi0rCi0rCi0rCi0rCi0rCi0rX0FDRU9GCi0rCi0rY2F0ID4+JENPTkZJR19TVEFU VVMgPDxcX0FDRU9GIHx8IGFjX3dyaXRlX2ZhaWw9MQotKwotKyMgSGFuZGxpbmcgb2YgYXJndW1l bnRzLgotK2ZvciBhY19jb25maWdfdGFyZ2V0IGluICRhY19jb25maWdfdGFyZ2V0cwotK2RvCi0r ICBjYXNlICRhY19jb25maWdfdGFyZ2V0IGluCi0rICAgICJzb2NpL2NvbmZpZy5oIikgQ09ORklH X0hFQURFUlM9IiRDT05GSUdfSEVBREVSUyBzb2NpL2NvbmZpZy5oIiA7OwotKyAgICAiZGVwZmls ZXMiKSBDT05GSUdfQ09NTUFORFM9IiRDT05GSUdfQ09NTUFORFMgZGVwZmlsZXMiIDs7Ci0rICAg ICJsaWJ0b29sIikgQ09ORklHX0NPTU1BTkRTPSIkQ09ORklHX0NPTU1BTkRTIGxpYnRvb2wiIDs7 Ci0rICAgICJNYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBNYWtlZmlsZSIg OzsKLSsgICAgInNvY2ktY29uZmlnIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kt Y29uZmlnIiA7OwotKyAgICAic29jaS5wYyIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBz b2NpLnBjIiA7OwotKyAgICAic29jaS9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19G SUxFUyBzb2NpL01ha2VmaWxlIiA7OwotKyAgICAic29jaS9jb3JlL01ha2VmaWxlIikgQ09ORklH X0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvY29yZS9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kv Y29yZS90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvY29y ZS90ZXN0L01ha2VmaWxlIiA7OwotKyAgICAic29jaS9iYWNrZW5kcy9NYWtlZmlsZSIpIENPTkZJ R19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL01ha2VmaWxlIiA7OwotKyAgICAi c29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxF UyBzb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlIiA7OwotKyAgICAic29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFj a2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvTWFrZWZpbGUiIDs7Ci0rICAgICJzb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv dGVzdC9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRz L3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZSIgOzsKLSsgICAgInNvY2kvYmFja2VuZHMvb3JhY2xl L01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklHX0ZJTEVTIHNvY2kvYmFja2VuZHMvb3Jh Y2xlL01ha2VmaWxlIiA7OwotKyAgICAic29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmls ZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBzb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L01ha2VmaWxlIiA7OwotKyAgICAibWFuL01ha2VmaWxlIikgQ09ORklHX0ZJTEVTPSIkQ09ORklH X0ZJTEVTIG1hbi9NYWtlZmlsZSIgOzsKLSsgICAgImRvYy9NYWtlZmlsZSIpIENPTkZJR19GSUxF Uz0iJENPTkZJR19GSUxFUyBkb2MvTWFrZWZpbGUiIDs7Ci0rICAgICJkb2MvYmFja2VuZHMvTWFr ZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgZG9jL2JhY2tlbmRzL01ha2VmaWxl IiA7OwotKyAgICAiYnVpbGQvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMg YnVpbGQvTWFrZWZpbGUiIDs7Ci0rICAgICJidWlsZC91bml4L01ha2VmaWxlIikgQ09ORklHX0ZJ TEVTPSIkQ09ORklHX0ZJTEVTIGJ1aWxkL3VuaXgvTWFrZWZpbGUiIDs7Ci0rICAgICJidWlsZC9t c3ZjODAvTWFrZWZpbGUiKSBDT05GSUdfRklMRVM9IiRDT05GSUdfRklMRVMgYnVpbGQvbXN2Yzgw L01ha2VmaWxlIiA7OwotKyAgICAiYnVpbGQvbXN2YzgwL2RsbC9NYWtlZmlsZSIpIENPTkZJR19G SUxFUz0iJENPTkZJR19GSUxFUyBidWlsZC9tc3ZjODAvZGxsL01ha2VmaWxlIiA7OwotKyAgICAi YnVpbGQvbXN2YzgwL2xpYi9NYWtlZmlsZSIpIENPTkZJR19GSUxFUz0iJENPTkZJR19GSUxFUyBi dWlsZC9tc3ZjODAvbGliL01ha2VmaWxlIiA7OwotKwotKyAgKikgYXNfZm5fZXJyb3IgJD8gImlu dmFsaWQgYXJndW1lbnQ6IFxgJGFjX2NvbmZpZ190YXJnZXQnIiAiJExJTkVOTyIgNTs7Ci0rICBl c2FjCi0rZG9uZQotKwotKwotKyMgSWYgdGhlIHVzZXIgZGlkIG5vdCB1c2UgdGhlIGFyZ3VtZW50 cyB0byBzcGVjaWZ5IHRoZSBpdGVtcyB0byBpbnN0YW50aWF0ZSwKLSsjIHRoZW4gdGhlIGVudnZh ciBpbnRlcmZhY2UgaXMgdXNlZC4gIFNldCBvbmx5IHRob3NlIHRoYXQgYXJlIG5vdC4KLSsjIFdl IHVzZSB0aGUgbG9uZyBmb3JtIGZvciB0aGUgZGVmYXVsdCBhc3NpZ25tZW50IGJlY2F1c2Ugb2Yg YW4gZXh0cmVtZWx5Ci0rIyBiaXphcnJlIGJ1ZyBvbiBTdW5PUyA0LjEuMy4KLStpZiAkYWNfbmVl ZF9kZWZhdWx0czsgdGhlbgotKyAgdGVzdCAiJHtDT05GSUdfRklMRVMrc2V0fSIgPSBzZXQgfHwg Q09ORklHX0ZJTEVTPSRjb25maWdfZmlsZXMKLSsgIHRlc3QgIiR7Q09ORklHX0hFQURFUlMrc2V0 fSIgPSBzZXQgfHwgQ09ORklHX0hFQURFUlM9JGNvbmZpZ19oZWFkZXJzCi0rICB0ZXN0ICIke0NP TkZJR19DT01NQU5EUytzZXR9IiA9IHNldCB8fCBDT05GSUdfQ09NTUFORFM9JGNvbmZpZ19jb21t YW5kcwotK2ZpCi0rCi0rIyBIYXZlIGEgdGVtcG9yYXJ5IGRpcmVjdG9yeSBmb3IgY29udmVuaWVu Y2UuICBNYWtlIGl0IGluIHRoZSBidWlsZCB0cmVlCi0rIyBzaW1wbHkgYmVjYXVzZSB0aGVyZSBp cyBubyByZWFzb24gYWdhaW5zdCBoYXZpbmcgaXQgaGVyZSwgYW5kIGluIGFkZGl0aW9uLAotKyMg Y3JlYXRpbmcgYW5kIG1vdmluZyBmaWxlcyBmcm9tIC90bXAgY2FuIHNvbWV0aW1lcyBjYXVzZSBw cm9ibGVtcy4KLSsjIEhvb2sgZm9yIGl0cyByZW1vdmFsIHVubGVzcyBkZWJ1Z2dpbmcuCi0rIyBO b3RlIHRoYXQgdGhlcmUgaXMgYSBzbWFsbCB3aW5kb3cgaW4gd2hpY2ggdGhlIGRpcmVjdG9yeSB3 aWxsIG5vdCBiZSBjbGVhbmVkOgotKyMgYWZ0ZXIgaXRzIGNyZWF0aW9uIGJ1dCBiZWZvcmUgaXRz IG5hbWUgaGFzIGJlZW4gYXNzaWduZWQgdG8gYCR0bXAnLgotKyRkZWJ1ZyB8fAotK3sKLSsgIHRt cD0gYWNfdG1wPQotKyAgdHJhcCAnZXhpdF9zdGF0dXM9JD8KLSsgIDogIiR7YWNfdG1wOj0kdG1w fSIKLSsgIHsgdGVzdCAhIC1kICIkYWNfdG1wIiB8fCBybSAtZnIgIiRhY190bXAiOyB9ICYmIGV4 aXQgJGV4aXRfc3RhdHVzCi0rJyAwCi0rICB0cmFwICdhc19mbl9leGl0IDEnIDEgMiAxMyAxNQot K30KLSsjIENyZWF0ZSBhIChzZWN1cmUpIHRtcCBkaXJlY3RvcnkgZm9yIHRtcCBmaWxlcy4KLSsK LSt7Ci0rICB0bXA9YCh1bWFzayAwNzcgJiYgbWt0ZW1wIC1kICIuL2NvbmZYWFhYWFgiKSAyPi9k ZXYvbnVsbGAgJiYKLSsgIHRlc3QgLWQgIiR0bXAiCi0rfSAgfHwKLSt7Ci0rICB0bXA9Li9jb25m JCQtJFJBTkRPTQotKyAgKHVtYXNrIDA3NyAmJiBta2RpciAiJHRtcCIpCi0rfSB8fCBhc19mbl9l cnJvciAkPyAiY2Fubm90IGNyZWF0ZSBhIHRlbXBvcmFyeSBkaXJlY3RvcnkgaW4gLiIgIiRMSU5F Tk8iIDUKLSthY190bXA9JHRtcAotKwotKyMgU2V0IHVwIHRoZSBzY3JpcHRzIGZvciBDT05GSUdf RklMRVMgc2VjdGlvbi4KLSsjIE5vIG5lZWQgdG8gZ2VuZXJhdGUgdGhlbSBpZiB0aGVyZSBhcmUg bm8gQ09ORklHX0ZJTEVTLgotKyMgVGhpcyBoYXBwZW5zIGZvciBpbnN0YW5jZSB3aXRoIGAuL2Nv bmZpZy5zdGF0dXMgY29uZmlnLmgnLgotK2lmIHRlc3QgLW4gIiRDT05GSUdfRklMRVMiOyB0aGVu Ci0rCi0rCi0rYWNfY3I9YGVjaG8gWCB8IHRyIFggJ1wwMTUnYAotKyMgT24gY3lnd2luLCBiYXNo IGNhbiBlYXQgXHIgaW5zaWRlIGBgIGlmIHRoZSB1c2VyIHJlcXVlc3RlZCBpZ25jci4KLSsjIEJ1 dCB3ZSBrbm93IG9mIG5vIG90aGVyIHNoZWxsIHdoZXJlIGFjX2NyIHdvdWxkIGJlIGVtcHR5IGF0 IHRoaXMKLSsjIHBvaW50LCBzbyB3ZSBjYW4gdXNlIGEgYmFzaGlzbSBhcyBhIGZhbGxiYWNrLgot K2lmIHRlc3QgIngkYWNfY3IiID0geDsgdGhlbgotKyAgZXZhbCBhY19jcj1cJFwnXFxyXCcKLStm aQotK2FjX2NzX2F3a19jcj1gJEFXSyAnQkVHSU4geyBwcmludCAiYVxyYiIgfScgPC9kZXYvbnVs bCAyPi9kZXYvbnVsbGAKLStpZiB0ZXN0ICIkYWNfY3NfYXdrX2NyIiA9ICJhJHthY19jcn1iIjsg dGhlbgotKyAgYWNfY3NfYXdrX2NyPSdcXHInCi0rZWxzZQotKyAgYWNfY3NfYXdrX2NyPSRhY19j cgotK2ZpCi0rCi0rZWNobyAnQkVHSU4geycgPiIkYWNfdG1wL3N1YnMxLmF3ayIgJiYKLStfQUNF T0YKLSsKLSsKLSt7Ci0rICBlY2hvICJjYXQgPmNvbmYkJHN1YnMuYXdrIDw8X0FDRU9GIiAmJgot KyAgZWNobyAiJGFjX3N1YnN0X3ZhcnMiIHwgc2VkICdzLy4qLyYhJCYkYWNfZGVsaW0vJyAmJgot KyAgZWNobyAiX0FDRU9GIgotK30gPmNvbmYkJHN1YnMuc2ggfHwKLSsgIGFzX2ZuX2Vycm9yICQ/ ICJjb3VsZCBub3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgIiRMSU5FTk8iIDUKLSthY19kZWxpbV9u dW09YGVjaG8gIiRhY19zdWJzdF92YXJzIiB8IGdyZXAgLWMgJ14nYAotK2FjX2RlbGltPSclIV8h IyAnCi0rZm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZhbHNlIGZhbHNlIGZhbHNlIGZhbHNlIDo7 IGRvCi0rICAuIC4vY29uZiQkc3Vicy5zaCB8fAotKyAgICBhc19mbl9lcnJvciAkPyAiY291bGQg bm90IG1ha2UgJENPTkZJR19TVEFUVVMiICIkTElORU5PIiA1Ci0rCi0rICBhY19kZWxpbV9uPWBz ZWQgLW4gInMvLiokYWNfZGVsaW1cJC9YL3AiIGNvbmYkJHN1YnMuYXdrIHwgZ3JlcCAtYyBYYAot KyAgaWYgdGVzdCAkYWNfZGVsaW1fbiA9ICRhY19kZWxpbV9udW07IHRoZW4KLSsgICAgYnJlYWsK LSsgIGVsaWYgJGFjX2xhc3RfdHJ5OyB0aGVuCi0rICAgIGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBu b3QgbWFrZSAkQ09ORklHX1NUQVRVUyIgIiRMSU5FTk8iIDUKLSsgIGVsc2UKLSsgICAgYWNfZGVs aW09IiRhY19kZWxpbSEkYWNfZGVsaW0gXyRhY19kZWxpbSEhICIKLSsgIGZpCi0rZG9uZQotK3Jt IC1mIGNvbmYkJHN1YnMuc2gKLSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBh Y193cml0ZV9mYWlsPTEKLStjYXQgPj4iXCRhY190bXAvc3ViczEuYXdrIiA8PFxcX0FDQVdLICYm Ci0rX0FDRU9GCi0rc2VkIC1uICcKLStoCi0rcy9eL1NbIi87IHMvIS4qLyJdPS8KLStwCi0rZwot K3MvXlteIV0qIS8vCi0rOnJlcGwKLSt0IHJlcGwKLStzLyciJGFjX2RlbGltIickLy8KLSt0IGRl bGltCi0rOm5sCi0raAotK3MvXCguXHsxNDhcfVwpLi4qL1wxLwotK3QgbW9yZTEKLStzL1siXFxd L1xcJi9nOyBzL14vIi87IHMvJC9cXG4iXFwvCi0rcAotK24KLStiIHJlcGwKLSs6bW9yZTEKLStz L1siXFxdL1xcJi9nOyBzL14vIi87IHMvJC8iXFwvCi0rcAotK2cKLStzLy5cezE0OFx9Ly8KLSt0 IG5sCi0rOmRlbGltCi0raAotK3MvXCguXHsxNDhcfVwpLi4qL1wxLwotK3QgbW9yZTIKLStzL1si XFxdL1xcJi9nOyBzL14vIi87IHMvJC8iLwotK3AKLStiCi0rOm1vcmUyCi0rcy9bIlxcXS9cXCYv Zzsgcy9eLyIvOyBzLyQvIlxcLwotK3AKLStnCi0rcy8uXHsxNDhcfS8vCi0rdCBkZWxpbQotKycg PGNvbmYkJHN1YnMuYXdrIHwgc2VkICcKLSsvXlteIiJdL3sKLSsgIE4KLSsgIHMvXG4vLwotK30K LSsnID4+JENPTkZJR19TVEFUVVMgfHwgYWNfd3JpdGVfZmFpbD0xCi0rcm0gLWYgY29uZiQkc3Vi cy5hd2sKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEK LStfQUNBV0sKLStjYXQgPj4iXCRhY190bXAvc3ViczEuYXdrIiA8PF9BQ0FXSyAmJgotKyAgZm9y IChrZXkgaW4gUykgU19pc19zZXRba2V5XSA9IDEKLSsgIEZTID0gIgciCi0rCi0rfQotK3sKLSsg IGxpbmUgPSAkIDAKLSsgIG5maWVsZHMgPSBzcGxpdChsaW5lLCBmaWVsZCwgIkAiKQotKyAgc3Vi c3RlZCA9IDAKLSsgIGxlbiA9IGxlbmd0aChmaWVsZFsxXSkKLSsgIGZvciAoaSA9IDI7IGkgPCBu ZmllbGRzOyBpKyspIHsKLSsgICAga2V5ID0gZmllbGRbaV0KLSsgICAga2V5bGVuID0gbGVuZ3Ro KGtleSkKLSsgICAgaWYgKFNfaXNfc2V0W2tleV0pIHsKLSsgICAgICB2YWx1ZSA9IFNba2V5XQot KyAgICAgIGxpbmUgPSBzdWJzdHIobGluZSwgMSwgbGVuKSAiIiB2YWx1ZSAiIiBzdWJzdHIobGlu ZSwgbGVuICsga2V5bGVuICsgMykKLSsgICAgICBsZW4gKz0gbGVuZ3RoKHZhbHVlKSArIGxlbmd0 aChmaWVsZFsrK2ldKQotKyAgICAgIHN1YnN0ZWQgPSAxCi0rICAgIH0gZWxzZQotKyAgICAgIGxl biArPSAxICsga2V5bGVuCi0rICB9Ci0rCi0rICBwcmludCBsaW5lCi0rfQotKwotK19BQ0FXSwot K19BQ0VPRgotK2NhdCA+PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKLStpZiBzZWQgInMvJGFjX2NyLy8iIDwgL2Rldi9udWxsID4gL2Rldi9udWxsIDI+JjE7IHRo ZW4KLSsgIHNlZCAicy8kYWNfY3JcJC8vOyBzLyRhY19jci8kYWNfY3NfYXdrX2NyL2ciCi0rZWxz ZQotKyAgY2F0Ci0rZmkgPCAiJGFjX3RtcC9zdWJzMS5hd2siID4gIiRhY190bXAvc3Vicy5hd2si IFwKLSsgIHx8IGFzX2ZuX2Vycm9yICQ/ICJjb3VsZCBub3Qgc2V0dXAgY29uZmlnIGZpbGVzIG1h Y2hpbmVyeSIgIiRMSU5FTk8iIDUKLStfQUNFT0YKLSsKLSsjIFZQQVRIIG1heSBjYXVzZSB0cm91 YmxlIHdpdGggc29tZSBtYWtlcywgc28gd2UgcmVtb3ZlIHNvbGUgJChzcmNkaXIpLAotKyMgJHtz cmNkaXJ9IGFuZCBAc3JjZGlyQCBlbnRyaWVzIGZyb20gVlBBVEggaWYgc3JjZGlyIGlzICIuIiwg c3RyaXAgbGVhZGluZyBhbmQKLSsjIHRyYWlsaW5nIGNvbG9ucyBhbmQgdGhlbiByZW1vdmUgdGhl IHdob2xlIGxpbmUgaWYgVlBBVEggYmVjb21lcyBlbXB0eQotKyMgKGFjdHVhbGx5IHdlIGxlYXZl IGFuIGVtcHR5IGxpbmUgdG8gcHJlc2VydmUgbGluZSBudW1iZXJzKS4KLStpZiB0ZXN0ICJ4JHNy Y2RpciIgPSB4LjsgdGhlbgotKyAgYWNfdnBzdWI9Jy9eWwkgXSpWUEFUSFsJIF0qPVsJIF0qL3sK LStoCi0rcy8vLwotK3MvXi86LwotK3MvWwkgXSokLzovCi0rcy86XCQoc3JjZGlyKTovOi9nCi0r cy86XCR7c3JjZGlyfTovOi9nCi0rcy86QHNyY2RpckA6LzovZwotK3MvXjoqLy8KLStzLzoqJC8v Ci0reAotK3MvXCg9WwkgXSpcKS4qL1wxLwotK0cKLStzL1xuLy8KLStzL15bXj1dKj1bCSBdKiQv LwotK30nCi0rZmkKLSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3Jp dGVfZmFpbD0xCi0rZmkgIyB0ZXN0IC1uICIkQ09ORklHX0ZJTEVTIgotKwotKyMgU2V0IHVwIHRo ZSBzY3JpcHRzIGZvciBDT05GSUdfSEVBREVSUyBzZWN0aW9uLgotKyMgTm8gbmVlZCB0byBnZW5l cmF0ZSB0aGVtIGlmIHRoZXJlIGFyZSBubyBDT05GSUdfSEVBREVSUy4KLSsjIFRoaXMgaGFwcGVu cyBmb3IgaW5zdGFuY2Ugd2l0aCBgLi9jb25maWcuc3RhdHVzIE1ha2VmaWxlJy4KLStpZiB0ZXN0 IC1uICIkQ09ORklHX0hFQURFUlMiOyB0aGVuCi0rY2F0ID4iJGFjX3RtcC9kZWZpbmVzLmF3ayIg PDxcX0FDQVdLIHx8Ci0rQkVHSU4gewotK19BQ0VPRgotKwotKyMgVHJhbnNmb3JtIGNvbmZkZWZz LmggaW50byBhbiBhd2sgc2NyaXB0IGBkZWZpbmVzLmF3aycsIGVtYmVkZGVkIGFzCi0rIyBoZXJl LWRvY3VtZW50IGluIGNvbmZpZy5zdGF0dXMsIHRoYXQgc3Vic3RpdHV0ZXMgdGhlIHByb3BlciB2 YWx1ZXMgaW50bwotKyMgY29uZmlnLmguaW4gdG8gcHJvZHVjZSBjb25maWcuaC4KLSsKLSsjIENy ZWF0ZSBhIGRlbGltaXRlciBzdHJpbmcgdGhhdCBkb2VzIG5vdCBleGlzdCBpbiBjb25mZGVmcy5o LCB0byBlYXNlCi0rIyBoYW5kbGluZyBvZiBsb25nIGxpbmVzLgotK2FjX2RlbGltPSclIV8hIyAn Ci0rZm9yIGFjX2xhc3RfdHJ5IGluIGZhbHNlIGZhbHNlIDo7IGRvCi0rICBhY190dD1gc2VkIC1u ICIvJGFjX2RlbGltL3AiIGNvbmZkZWZzLmhgCi0rICBpZiB0ZXN0IC16ICIkYWNfdHQiOyB0aGVu Ci0rICAgIGJyZWFrCi0rICBlbGlmICRhY19sYXN0X3RyeTsgdGhlbgotKyAgICBhc19mbl9lcnJv ciAkPyAiY291bGQgbm90IG1ha2UgJENPTkZJR19IRUFERVJTIiAiJExJTkVOTyIgNQotKyAgZWxz ZQotKyAgICBhY19kZWxpbT0iJGFjX2RlbGltISRhY19kZWxpbSBfJGFjX2RlbGltISEgIgotKyAg ZmkKLStkb25lCi0rCi0rIyBGb3IgdGhlIGF3ayBzY3JpcHQsIEQgaXMgYW4gYXJyYXkgb2YgbWFj cm8gdmFsdWVzIGtleWVkIGJ5IG5hbWUsCi0rIyBsaWtld2lzZSBQIGNvbnRhaW5zIG1hY3JvIHBh cmFtZXRlcnMgaWYgYW55LiAgUHJlc2VydmUgYmFja3NsYXNoCi0rIyBuZXdsaW5lIHNlcXVlbmNl cy4KLSsKLSthY193b3JkX3JlPVtfJGFzX2NyX0xldHRlcnNdW18kYXNfY3JfYWxudW1dKgotK3Nl ZCAtbiAnCi0rcy8uXHsxNDhcfS8mJyIkYWNfZGVsaW0iJy9nCi0rdCByc2V0Ci0rOnJzZXQKLStz L15bCSBdKiNbCSBdKmRlZmluZVsJIF1bCSBdKi8gLwotK3QgZGVmCi0rZAotKzpkZWYKLStzL1xc JC8vCi0rdCBic25sCi0rcy9bIlxcXS9cXCYvZwotK3MvXiBcKCciJGFjX3dvcmRfcmUiJ1wpXCgo W14oKV0qKVwpWwkgXSpcKC4qXCkvUFsiXDEiXT0iXDIiXAotK0RbIlwxIl09IiBcMyIvcAotK3Mv XiBcKCciJGFjX3dvcmRfcmUiJ1wpWwkgXSpcKC4qXCkvRFsiXDEiXT0iIFwyIi9wCi0rZAotKzpi c25sCi0rcy9bIlxcXS9cXCYvZwotK3MvXiBcKCciJGFjX3dvcmRfcmUiJ1wpXCgoW14oKV0qKVwp WwkgXSpcKC4qXCkvUFsiXDEiXT0iXDIiXAotK0RbIlwxIl09IiBcM1xcXFxcXG4iXFwvcAotK3Qg Y29udAotK3MvXiBcKCciJGFjX3dvcmRfcmUiJ1wpWwkgXSpcKC4qXCkvRFsiXDEiXT0iIFwyXFxc XFxcbiJcXC9wCi0rdCBjb250Ci0rZAotKzpjb250Ci0rbgotK3MvLlx7MTQ4XH0vJiciJGFjX2Rl bGltIicvZwotK3QgY2xlYXIKLSs6Y2xlYXIKLStzL1xcJC8vCi0rdCBic25sYwotK3MvWyJcXF0v XFwmL2c7IHMvXi8iLzsgcy8kLyIvcAotK2QKLSs6YnNubGMKLStzL1siXFxdL1xcJi9nOyBzL14v Ii87IHMvJC9cXFxcXFxuIlxcL3AKLStiIGNvbnQKLSsnIDxjb25mZGVmcy5oIHwgc2VkICcKLStz LyciJGFjX2RlbGltIicvIlxcXAotKyIvZycgPj4kQ09ORklHX1NUQVRVUyB8fCBhY193cml0ZV9m YWlsPTEKLSsKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKLSsgIGZvciAoa2V5IGluIEQpIERfaXNfc2V0W2tleV0gPSAxCi0rICBGUyA9ICIHIgotK30K LSsvXltcdCBdKiNbXHQgXSooZGVmaW5lfHVuZGVmKVtcdCBdKyRhY193b3JkX3JlKFtcdCAoXXxc JCkvIHsKLSsgIGxpbmUgPSBcJCAwCi0rICBzcGxpdChsaW5lLCBhcmcsICIgIikKLSsgIGlmIChh cmdbMV0gPT0gIiMiKSB7Ci0rICAgIGRlZnVuZGVmID0gYXJnWzJdCi0rICAgIG1hYzEgPSBhcmdb M10KLSsgIH0gZWxzZSB7Ci0rICAgIGRlZnVuZGVmID0gc3Vic3RyKGFyZ1sxXSwgMikKLSsgICAg bWFjMSA9IGFyZ1syXQotKyAgfQotKyAgc3BsaXQobWFjMSwgbWFjMiwgIigiKSAjKQotKyAgbWFj cm8gPSBtYWMyWzFdCi0rICBwcmVmaXggPSBzdWJzdHIobGluZSwgMSwgaW5kZXgobGluZSwgZGVm dW5kZWYpIC0gMSkKLSsgIGlmIChEX2lzX3NldFttYWNyb10pIHsKLSsgICAgIyBQcmVzZXJ2ZSB0 aGUgd2hpdGUgc3BhY2Ugc3Vycm91bmRpbmcgdGhlICIjIi4KLSsgICAgcHJpbnQgcHJlZml4ICJk ZWZpbmUiLCBtYWNybyBQW21hY3JvXSBEW21hY3JvXQotKyAgICBuZXh0Ci0rICB9IGVsc2Ugewot KyAgICAjIFJlcGxhY2UgI3VuZGVmIHdpdGggY29tbWVudHMuICBUaGlzIGlzIG5lY2Vzc2FyeSwg Zm9yIGV4YW1wbGUsCi0rICAgICMgaW4gdGhlIGNhc2Ugb2YgX1BPU0lYX1NPVVJDRSwgd2hpY2gg aXMgcHJlZGVmaW5lZCBhbmQgcmVxdWlyZWQKLSsgICAgIyBvbiBzb21lIHN5c3RlbXMgd2hlcmUg Y29uZmlndXJlIHdpbGwgbm90IGRlY2lkZSB0byBkZWZpbmUgaXQuCi0rICAgIGlmIChkZWZ1bmRl ZiA9PSAidW5kZWYiKSB7Ci0rICAgICAgcHJpbnQgIi8qIiwgcHJlZml4IGRlZnVuZGVmLCBtYWNy bywgIiovIgotKyAgICAgIG5leHQKLSsgICAgfQotKyAgfQotK30KLSt7IHByaW50IH0KLStfQUNB V0sKLStfQUNFT0YKLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVf ZmFpbD0xCi0rICBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IHNldHVwIGNvbmZpZyBoZWFkZXJz IG1hY2hpbmVyeSIgIiRMSU5FTk8iIDUKLStmaSAjIHRlc3QgLW4gIiRDT05GSUdfSEVBREVSUyIK LSsKLSsKLStldmFsIHNldCBYICIgIDpGICRDT05GSUdfRklMRVMgIDpIICRDT05GSUdfSEVBREVS UyAgICA6QyAkQ09ORklHX0NPTU1BTkRTIgotK3NoaWZ0Ci0rZm9yIGFjX3RhZwotK2RvCi0rICBj YXNlICRhY190YWcgaW4KLSsgIDpbRkhMQ10pIGFjX21vZGU9JGFjX3RhZzsgY29udGludWU7Owot KyAgZXNhYwotKyAgY2FzZSAkYWNfbW9kZSRhY190YWcgaW4KLSsgIDpbRkhMXSo6Kik7OwotKyAg OkwqIHwgOkMqOiopIGFzX2ZuX2Vycm9yICQ/ICJpbnZhbGlkIHRhZyBcYCRhY190YWcnIiAiJExJ TkVOTyIgNTs7Ci0rICA6W0ZIXS0pIGFjX3RhZz0tOi07OwotKyAgOltGSF0qKSBhY190YWc9JGFj X3RhZzokYWNfdGFnLmluOzsKLSsgIGVzYWMKLSsgIGFjX3NhdmVfSUZTPSRJRlMKLSsgIElGUz06 Ci0rICBzZXQgeCAkYWNfdGFnCi0rICBJRlM9JGFjX3NhdmVfSUZTCi0rICBzaGlmdAotKyAgYWNf ZmlsZT0kMQotKyAgc2hpZnQKLSsKLSsgIGNhc2UgJGFjX21vZGUgaW4KLSsgIDpMKSBhY19zb3Vy Y2U9JDE7OwotKyAgOltGSF0pCi0rICAgIGFjX2ZpbGVfaW5wdXRzPQotKyAgICBmb3IgYWNfZgot KyAgICBkbwotKyAgICAgIGNhc2UgJGFjX2YgaW4KLSsgICAgICAtKSBhY19mPSIkYWNfdG1wL3N0 ZGluIjs7Ci0rICAgICAgKikgIyBMb29rIGZvciB0aGUgZmlsZSBmaXJzdCBpbiB0aGUgYnVpbGQg dHJlZSwgdGhlbiBpbiB0aGUgc291cmNlIHRyZWUKLSsJICMgKGlmIHRoZSBwYXRoIGlzIG5vdCBh YnNvbHV0ZSkuICBUaGUgYWJzb2x1dGUgcGF0aCBjYW5ub3QgYmUgRE9TLXN0eWxlLAotKwkgIyBi ZWNhdXNlICRhY19mIGNhbm5vdCBjb250YWluIGA6Jy4KLSsJIHRlc3QgLWYgIiRhY19mIiB8fAot KwkgICBjYXNlICRhY19mIGluCi0rCSAgIFtcXC8kXSopIGZhbHNlOzsKLSsJICAgKikgdGVzdCAt ZiAiJHNyY2Rpci8kYWNfZiIgJiYgYWNfZj0iJHNyY2Rpci8kYWNfZiI7OwotKwkgICBlc2FjIHx8 Ci0rCSAgIGFzX2ZuX2Vycm9yIDEgImNhbm5vdCBmaW5kIGlucHV0IGZpbGU6IFxgJGFjX2YnIiAi JExJTkVOTyIgNTs7Ci0rICAgICAgZXNhYwotKyAgICAgIGNhc2UgJGFjX2YgaW4gKlwnKikgYWNf Zj1gJGFzX2VjaG8gIiRhY19mIiB8IHNlZCAicy8nLydcXFxcXFxcXCcnL2ciYDs7IGVzYWMKLSsg ICAgICBhc19mbl9hcHBlbmQgYWNfZmlsZV9pbnB1dHMgIiAnJGFjX2YnIgotKyAgICBkb25lCi0r Ci0rICAgICMgTGV0J3Mgc3RpbGwgcHJldGVuZCBpdCBpcyBgY29uZmlndXJlJyB3aGljaCBpbnN0 YW50aWF0ZXMgKGkuZS4sIGRvbid0Ci0rICAgICMgdXNlICRhc19tZSksIHBlb3BsZSB3b3VsZCBi ZSBzdXJwcmlzZWQgdG8gcmVhZDoKLSsgICAgIyAgICAvKiBjb25maWcuaC4gIEdlbmVyYXRlZCBi eSBjb25maWcuc3RhdHVzLiAgKi8KLSsgICAgY29uZmlndXJlX2lucHV0PSdHZW5lcmF0ZWQgZnJv bSAnYAotKwkgICRhc19lY2hvICIkKiIgfCBzZWQgJ3N8XlteOl0qL3x8O3N8OlteOl0qL3wsIHxn JwotKwlgJyBieSBjb25maWd1cmUuJwotKyAgICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0 aGVuCi0rICAgICAgY29uZmlndXJlX2lucHV0PSIkYWNfZmlsZS4gICRjb25maWd1cmVfaW5wdXQi Ci0rICAgICAgeyAkYXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBjcmVhdGlu ZyAkYWNfZmlsZSIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogY3JlYXRpbmcgJGFjX2ZpbGUiID4m Njt9Ci0gICAgIGZpCi0tZmkKLSsgICAgIyBOZXV0cmFsaXplIHNwZWNpYWwgY2hhcmFjdGVycyBp bnRlcnByZXRlZCBieSBzZWQgaW4gcmVwbGFjZW1lbnQgc3RyaW5ncy4KLSsgICAgY2FzZSAkY29u ZmlndXJlX2lucHV0IGluICMoCi0rICAgICpcJiogfCAqXHwqIHwgKlxcKiApCi0rICAgICAgIGFj X3NlZF9jb25mX2lucHV0PWAkYXNfZWNobyAiJGNvbmZpZ3VyZV9pbnB1dCIgfAotKyAgICAgICBz ZWQgJ3MvW1xcXFwmfF0vXFxcXCYvZydgOzsgIygKLSsgICAgKikgYWNfc2VkX2NvbmZfaW5wdXQ9 JGNvbmZpZ3VyZV9pbnB1dDs7Ci0rICAgIGVzYWMKLSAKLS1ta2RpciAtcCBidWlsZC91bml4L2xv Y2FsCi0tcGF0aD0iYnVpbGQvdW5peC9sb2NhbC9wYXJhbWV0ZXJzIgotLXJtIC1mICRwYXRoCi0t dG91Y2ggJHBhdGgKLS1mb3IgcGFyYW0gaW4gJCoKLS1kbwotLSAgICAgICAgZWNobyAkcGFyYW0g Pj4gJHBhdGgKLS1kb25lCi0tCi0tcHJpbnRmICdUcnlpbmcgdG8gZmluZCB0aGUgVGNsIGludGVy cHJldGVyLi4uICcKLS10Y2xfZm91bmQ9MAotLQotLWZvciBwYXRoIGluICIvdXNyL2Jpbi90Y2xz aCIgXAotLSAgICAgICAgICAgICIvdXNyL2xvY2FsL2Jpbi90Y2xzaDguNSIgXAotLSAgICAgICAg ICAgICIvdXNyL2xvY2FsL2Jpbi90Y2xzaDguNCIgXAotLSAgICAgICAgICAgICIvdXNyL2xvY2Fs L2Jpbi90Y2xzaDguMyI7IGRvCi0tICAgIGlmIFsgLXggJHBhdGggXQotLSAgICB0aGVuCi0tICAg ICAgICBlY2hvICRwYXRoID4gYnVpbGQvdW5peC9sb2NhbC90Y2wKLS0gICAgICAgIGVjaG8gJHBh dGgKLS0gICAgICAgIHRjbF9mb3VuZD0xCi0tICAgICAgICBicmVhawotKyAgICBjYXNlICRhY190 YWcgaW4KLSsgICAgKjotOiogfCAqOi0pIGNhdCA+IiRhY190bXAvc3RkaW4iIFwKLSsgICAgICB8 fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUg OzsKLSsgICAgZXNhYwotKyAgICA7OwotKyAgZXNhYwotKwotKyAgYWNfZGlyPWAkYXNfZGlybmFt ZSAtLSAiJGFjX2ZpbGUiIHx8Ci0rJGFzX2V4cHIgWCIkYWNfZmlsZSIgOiAnWFwoLipbXi9dXCkv LypbXi9dW14vXSovKiQnIFx8IFwKLSsJIFgiJGFjX2ZpbGUiIDogJ1hcKC8vXClbXi9dJyBcfCBc Ci0rCSBYIiRhY19maWxlIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkYWNfZmlsZSIgOiAnWFwo L1wpJyBcfCAuIDI+L2Rldi9udWxsIHx8Ci0rJGFzX2VjaG8gWCIkYWNfZmlsZSIgfAotKyAgICBz ZWQgJy9eWFwoLipbXi9dXClcL1wvKlteL11bXi9dKlwvKiQvewotKwkgICAgcy8vXDEvCi0rCSAg ICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpW14vXS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAg cQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKSQvewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAg fQotKwkgIC9eWFwoXC9cKS4qL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICBz Ly4qLy4vOyBxJ2AKLSsgIGFzX2Rpcj0iJGFjX2RpciI7IGFzX2ZuX21rZGlyX3AKLSsgIGFjX2J1 aWxkZGlyPS4KLSsKLStjYXNlICIkYWNfZGlyIiBpbgotKy4pIGFjX2Rpcl9zdWZmaXg9IGFjX3Rv cF9idWlsZGRpcl9zdWI9LiBhY190b3BfYnVpbGRfcHJlZml4PSA7OwotKyopCi0rICBhY19kaXJf c3VmZml4PS9gJGFzX2VjaG8gIiRhY19kaXIiIHwgc2VkICdzfF5cLltcXC9dfHwnYAotKyAgIyBB ICIuLiIgZm9yIGVhY2ggZGlyZWN0b3J5IGluICRhY19kaXJfc3VmZml4LgotKyAgYWNfdG9wX2J1 aWxkZGlyX3N1Yj1gJGFzX2VjaG8gIiRhY19kaXJfc3VmZml4IiB8IHNlZCAnc3wvW15cXC9dKnwv Li58ZztzfC98fCdgCi0rICBjYXNlICRhY190b3BfYnVpbGRkaXJfc3ViIGluCi0rICAiIikgYWNf dG9wX2J1aWxkZGlyX3N1Yj0uIGFjX3RvcF9idWlsZF9wcmVmaXg9IDs7Ci0rICAqKSAgYWNfdG9w X2J1aWxkX3ByZWZpeD0kYWNfdG9wX2J1aWxkZGlyX3N1Yi8gOzsKLSsgIGVzYWMgOzsKLStlc2Fj Ci0rYWNfYWJzX3RvcF9idWlsZGRpcj0kYWNfcHdkCi0rYWNfYWJzX2J1aWxkZGlyPSRhY19wd2Qk YWNfZGlyX3N1ZmZpeAotKyMgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6Ci0rYWNfdG9wX2J1 aWxkZGlyPSRhY190b3BfYnVpbGRfcHJlZml4Ci0rCi0rY2FzZSAkc3JjZGlyIGluCi0rICAuKSAg IyBXZSBhcmUgYnVpbGRpbmcgaW4gcGxhY2UuCi0rICAgIGFjX3NyY2Rpcj0uCi0rICAgIGFjX3Rv cF9zcmNkaXI9JGFjX3RvcF9idWlsZGRpcl9zdWIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFj X3B3ZCA7OwotKyAgW1xcL10qIHwgPzpbXFwvXSogKSAgIyBBYnNvbHV0ZSBuYW1lLgotKyAgICBh Y19zcmNkaXI9JHNyY2RpciRhY19kaXJfc3VmZml4OwotKyAgICBhY190b3Bfc3JjZGlyPSRzcmNk aXIKLSsgICAgYWNfYWJzX3RvcF9zcmNkaXI9JHNyY2RpciA7OwotKyAgKikgIyBSZWxhdGl2ZSBu YW1lLgotKyAgICBhY19zcmNkaXI9JGFjX3RvcF9idWlsZF9wcmVmaXgkc3JjZGlyJGFjX2Rpcl9z dWZmaXgKLSsgICAgYWNfdG9wX3NyY2Rpcj0kYWNfdG9wX2J1aWxkX3ByZWZpeCRzcmNkaXIKLSsg ICAgYWNfYWJzX3RvcF9zcmNkaXI9JGFjX3B3ZC8kc3JjZGlyIDs7Ci0rZXNhYwotK2FjX2Fic19z cmNkaXI9JGFjX2Fic190b3Bfc3JjZGlyJGFjX2Rpcl9zdWZmaXgKLSsKLSsKLSsgIGNhc2UgJGFj X21vZGUgaW4KLSsgIDpGKQotKyAgIwotKyAgIyBDT05GSUdfRklMRQotKyAgIwotKwotKyAgY2Fz ZSAkSU5TVEFMTCBpbgotKyAgW1xcLyRdKiB8ID86W1xcL10qICkgYWNfSU5TVEFMTD0kSU5TVEFM TCA7OwotKyAgKikgYWNfSU5TVEFMTD0kYWNfdG9wX2J1aWxkX3ByZWZpeCRJTlNUQUxMIDs7Ci0r ICBlc2FjCi0rICBhY19NS0RJUl9QPSRNS0RJUl9QCi0rICBjYXNlICRNS0RJUl9QIGluCi0rICBb XFwvJF0qIHwgPzpbXFwvXSogKSA7OwotKyAgKi8qKSBhY19NS0RJUl9QPSRhY190b3BfYnVpbGRf cHJlZml4JE1LRElSX1AgOzsKLSsgIGVzYWMKLStfQUNFT0YKLSsKLStjYXQgPj4kQ09ORklHX1NU QVRVUyA8PFxfQUNFT0YgfHwgYWNfd3JpdGVfZmFpbD0xCi0rIyBJZiB0aGUgdGVtcGxhdGUgZG9l cyBub3Qga25vdyBhYm91dCBkYXRhcm9vdGRpciwgZXhwYW5kIGl0LgotKyMgRklYTUU6IFRoaXMg aGFjayBzaG91bGQgYmUgcmVtb3ZlZCBhIGZldyB5ZWFycyBhZnRlciAyLjYwLgotK2FjX2RhdGFy b290ZGlyX2hhY2s9OyBhY19kYXRhcm9vdGRpcl9zZWVuPQotK2FjX3NlZF9kYXRhcm9vdD0nCi0r L2RhdGFyb290ZGlyLyB7Ci0rICBwCi0rICBxCi0rfQotKy9AZGF0YWRpckAvcAotKy9AZG9jZGly QC9wCi0rL0BpbmZvZGlyQC9wCi0rL0Bsb2NhbGVkaXJAL3AKLSsvQG1hbmRpckAvcCcKLStjYXNl IGBldmFsICJzZWQgLW4gXCJcJGFjX3NlZF9kYXRhcm9vdFwiICRhY19maWxlX2lucHV0cyJgIGlu Ci0rKmRhdGFyb290ZGlyKikgYWNfZGF0YXJvb3RkaXJfc2Vlbj15ZXM7OwotKypAZGF0YWRpckAq fCpAZG9jZGlyQCp8KkBpbmZvZGlyQCp8KkBsb2NhbGVkaXJAKnwqQG1hbmRpckAqKQotKyAgeyAk YXNfZWNobyAiJGFzX21lOiR7YXNfbGluZW5vLSRMSU5FTk99OiBXQVJOSU5HOiAkYWNfZmlsZV9p bnB1dHMgc2VlbXMgdG8gaWdub3JlIHRoZSAtLWRhdGFyb290ZGlyIHNldHRpbmciID4mNQotKyRh c19lY2hvICIkYXNfbWU6IFdBUk5JTkc6ICRhY19maWxlX2lucHV0cyBzZWVtcyB0byBpZ25vcmUg dGhlIC0tZGF0YXJvb3RkaXIgc2V0dGluZyIgPiYyO30KLStfQUNFT0YKLStjYXQgPj4kQ09ORklH X1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSsgIGFjX2RhdGFyb290ZGlyX2hh Y2s9JwotKyAgcyZAZGF0YWRpckAmJGRhdGFkaXImZwotKyAgcyZAZG9jZGlyQCYkZG9jZGlyJmcK LSsgIHMmQGluZm9kaXJAJiRpbmZvZGlyJmcKLSsgIHMmQGxvY2FsZWRpckAmJGxvY2FsZWRpciZn Ci0rICBzJkBtYW5kaXJAJiRtYW5kaXImZwotKyAgcyZcXFwke2RhdGFyb290ZGlyfSYkZGF0YXJv b3RkaXImZycgOzsKLStlc2FjCi0rX0FDRU9GCi0rCi0rIyBOZXV0cmFsaXplIFZQQVRIIHdoZW4g YCRzcmNkaXInID0gYC4nLgotKyMgU2hlbGwgY29kZSBpbiBjb25maWd1cmUuYWMgbWlnaHQgc2V0 IGV4dHJhc3ViLgotKyMgRklYTUU6IGRvIHdlIHJlYWxseSB3YW50IHRvIG1haW50YWluIHRoaXMg ZmVhdHVyZT8KLStjYXQgPj4kQ09ORklHX1NUQVRVUyA8PF9BQ0VPRiB8fCBhY193cml0ZV9mYWls PTEKLSthY19zZWRfZXh0cmE9IiRhY192cHN1YgotKyRleHRyYXN1YgotK19BQ0VPRgotK2NhdCA+ PiRDT05GSUdfU1RBVFVTIDw8XF9BQ0VPRiB8fCBhY193cml0ZV9mYWlsPTEKLSs6dAotKy9AW2Et ekEtWl9dW2EtekEtWl8wLTldKkAvIWIKLStzfEBjb25maWd1cmVfaW5wdXRAfCRhY19zZWRfY29u Zl9pbnB1dHw7dCB0Ci0rcyZAdG9wX2J1aWxkZGlyQCYkYWNfdG9wX2J1aWxkZGlyX3N1YiY7dCB0 Ci0rcyZAdG9wX2J1aWxkX3ByZWZpeEAmJGFjX3RvcF9idWlsZF9wcmVmaXgmO3QgdAotK3MmQHNy Y2RpckAmJGFjX3NyY2RpciY7dCB0Ci0rcyZAYWJzX3NyY2RpckAmJGFjX2Fic19zcmNkaXImO3Qg dAotK3MmQHRvcF9zcmNkaXJAJiRhY190b3Bfc3JjZGlyJjt0IHQKLStzJkBhYnNfdG9wX3NyY2Rp ckAmJGFjX2Fic190b3Bfc3JjZGlyJjt0IHQKLStzJkBidWlsZGRpckAmJGFjX2J1aWxkZGlyJjt0 IHQKLStzJkBhYnNfYnVpbGRkaXJAJiRhY19hYnNfYnVpbGRkaXImO3QgdAotK3MmQGFic190b3Bf YnVpbGRkaXJAJiRhY19hYnNfdG9wX2J1aWxkZGlyJjt0IHQKLStzJkBJTlNUQUxMQCYkYWNfSU5T VEFMTCY7dCB0Ci0rcyZATUtESVJfUEAmJGFjX01LRElSX1AmO3QgdAotKyRhY19kYXRhcm9vdGRp cl9oYWNrCi0rIgotK2V2YWwgc2VkIFwiXCRhY19zZWRfZXh0cmFcIiAiJGFjX2ZpbGVfaW5wdXRz IiB8ICRBV0sgLWYgIiRhY190bXAvc3Vicy5hd2siIFwKLSsgID4kYWNfdG1wL291dCB8fCBhc19m bl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUKLSsKLSt0 ZXN0IC16ICIkYWNfZGF0YXJvb3RkaXJfaGFjayRhY19kYXRhcm9vdGRpcl9zZWVuIiAmJgotKyAg eyBhY19vdXQ9YHNlZCAtbiAnL1wke2RhdGFyb290ZGlyfS9wJyAiJGFjX3RtcC9vdXQiYDsgdGVz dCAtbiAiJGFjX291dCI7IH0gJiYKLSsgIHsgYWNfb3V0PWBzZWQgLW4gJy9eWwkgXSpkYXRhcm9v dGRpclsJIF0qOio9L3AnIFwKLSsgICAgICAiJGFjX3RtcC9vdXQiYDsgdGVzdCAteiAiJGFjX291 dCI7IH0gJiYKLSsgIHsgJGFzX2VjaG8gIiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FS TklORzogJGFjX2ZpbGUgY29udGFpbnMgYSByZWZlcmVuY2UgdG8gdGhlIHZhcmlhYmxlIFxgZGF0 YXJvb3RkaXInCi0rd2hpY2ggc2VlbXMgdG8gYmUgdW5kZWZpbmVkLiAgUGxlYXNlIG1ha2Ugc3Vy ZSBpdCBpcyBkZWZpbmVkIiA+JjUKLSskYXNfZWNobyAiJGFzX21lOiBXQVJOSU5HOiAkYWNfZmls ZSBjb250YWlucyBhIHJlZmVyZW5jZSB0byB0aGUgdmFyaWFibGUgXGBkYXRhcm9vdGRpcicKLSt3 aGljaCBzZWVtcyB0byBiZSB1bmRlZmluZWQuICBQbGVhc2UgbWFrZSBzdXJlIGl0IGlzIGRlZmlu ZWQiID4mMjt9Ci0rCi0rICBybSAtZiAiJGFjX3RtcC9zdGRpbiIKLSsgIGNhc2UgJGFjX2ZpbGUg aW4KLSsgIC0pIGNhdCAiJGFjX3RtcC9vdXQiICYmIHJtIC1mICIkYWNfdG1wL291dCI7OwotKyAg Kikgcm0gLWYgIiRhY19maWxlIiAmJiBtdiAiJGFjX3RtcC9vdXQiICIkYWNfZmlsZSI7OwotKyAg ZXNhYyBcCi0rICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0ZSAkYWNfZmlsZSIg IiRMSU5FTk8iIDUKLSsgOzsKLSsgIDpIKQotKyAgIwotKyAgIyBDT05GSUdfSEVBREVSCi0rICAj Ci0rICBpZiB0ZXN0IHgiJGFjX2ZpbGUiICE9IHgtOyB0aGVuCi0rICAgIHsKLSsgICAgICAkYXNf ZWNobyAiLyogJGNvbmZpZ3VyZV9pbnB1dCAgKi8iIFwKLSsgICAgICAmJiBldmFsICckQVdLIC1m ICIkYWNfdG1wL2RlZmluZXMuYXdrIicgIiRhY19maWxlX2lucHV0cyIKLSsgICAgfSA+IiRhY190 bXAvY29uZmlnLmgiIFwKLSsgICAgICB8fCBhc19mbl9lcnJvciAkPyAiY291bGQgbm90IGNyZWF0 ZSAkYWNfZmlsZSIgIiRMSU5FTk8iIDUKLSsgICAgaWYgZGlmZiAiJGFjX2ZpbGUiICIkYWNfdG1w L2NvbmZpZy5oIiA+L2Rldi9udWxsIDI+JjE7IHRoZW4KLSsgICAgICB7ICRhc19lY2hvICIkYXNf bWU6JHthc19saW5lbm8tJExJTkVOT306ICRhY19maWxlIGlzIHVuY2hhbmdlZCIgPiY1Ci0rJGFz X2VjaG8gIiRhc19tZTogJGFjX2ZpbGUgaXMgdW5jaGFuZ2VkIiA+JjY7fQotKyAgICBlbHNlCi0r ICAgICAgcm0gLWYgIiRhY19maWxlIgotKyAgICAgIG12ICIkYWNfdG1wL2NvbmZpZy5oIiAiJGFj X2ZpbGUiIFwKLSsJfHwgYXNfZm5fZXJyb3IgJD8gImNvdWxkIG5vdCBjcmVhdGUgJGFjX2ZpbGUi ICIkTElORU5PIiA1Ci0gICAgIGZpCi0rICBlbHNlCi0rICAgICRhc19lY2hvICIvKiAkY29uZmln dXJlX2lucHV0ICAqLyIgXAotKyAgICAgICYmIGV2YWwgJyRBV0sgLWYgIiRhY190bXAvZGVmaW5l cy5hd2siJyAiJGFjX2ZpbGVfaW5wdXRzIiBcCi0rICAgICAgfHwgYXNfZm5fZXJyb3IgJD8gImNv dWxkIG5vdCBjcmVhdGUgLSIgIiRMSU5FTk8iIDUKLSsgIGZpCi0rIyBDb21wdXRlICIkYWNfZmls ZSIncyBpbmRleCBpbiAkY29uZmlnX2hlYWRlcnMuCi0rX2FtX2FyZz0iJGFjX2ZpbGUiCi0rX2Ft X3N0YW1wX2NvdW50PTEKLStmb3IgX2FtX2hlYWRlciBpbiAkY29uZmlnX2hlYWRlcnMgOjsgZG8K LSsgIGNhc2UgJF9hbV9oZWFkZXIgaW4KLSsgICAgJF9hbV9hcmcgfCAkX2FtX2FyZzoqICkKLSsg ICAgICBicmVhayA7OwotKyAgICAqICkKLSsgICAgICBfYW1fc3RhbXBfY291bnQ9YGV4cHIgJF9h bV9zdGFtcF9jb3VudCArIDFgIDs7Ci0rICBlc2FjCi0gZG9uZQotK2VjaG8gInRpbWVzdGFtcCBm b3IgJF9hbV9hcmciID5gJGFzX2Rpcm5hbWUgLS0gIiRfYW1fYXJnIiB8fAotKyRhc19leHByIFgi JF9hbV9hcmciIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0rCSBYIiRfYW1f YXJnIiA6ICdYXCgvL1wpW14vXScgXHwgXAotKwkgWCIkX2FtX2FyZyIgOiAnWFwoLy9cKSQnIFx8 IFwKLSsJIFgiJF9hbV9hcmciIDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19l Y2hvIFgiJF9hbV9hcmciIHwKLSsgICAgc2VkICcvXlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpc LyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10u Ki97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJ ICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9c MS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8uLzsgcSdgL3N0YW1wLWgkX2FtX3N0YW1wX2Nv dW50Ci0rIDs7Ci0gCi0taWYgWyAkdGNsX2ZvdW5kIC1lcSAwIF0KLS10aGVuCi0tICAgICAgICBl Y2hvICdOT1QgZm91bmQuJwotLSAgICAgICAgZWNobyAnSXMgdGhlIFRjbCBpbnN0YWxsZWQ/Jwot LSAgICAgICAgZXhpdAotKyAgOkMpICB7ICRhc19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJ TkVOT306IGV4ZWN1dGluZyAkYWNfZmlsZSBjb21tYW5kcyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19t ZTogZXhlY3V0aW5nICRhY19maWxlIGNvbW1hbmRzIiA+JjY7fQotKyA7OwotKyAgZXNhYwotKwot KwotKyAgY2FzZSAkYWNfZmlsZSRhY19tb2RlIGluCi0rICAgICJkZXBmaWxlcyI6QykgdGVzdCB4 IiRBTURFUF9UUlVFIiAhPSB4IiIgfHwgewotKyAgIyBBdXRvY29uZiAyLjYyIHF1b3RlcyAtLWZp bGUgYXJndW1lbnRzIGZvciBldmFsLCBidXQgbm90IHdoZW4gZmlsZXMKLSsgICMgYXJlIGxpc3Rl ZCB3aXRob3V0IC0tZmlsZS4gIExldCdzIHBsYXkgc2FmZSBhbmQgb25seSBlbmFibGUgdGhlIGV2 YWwKLSsgICMgaWYgd2UgZGV0ZWN0IHRoZSBxdW90aW5nLgotKyAgY2FzZSAkQ09ORklHX0ZJTEVT IGluCi0rICAqXCcqKSBldmFsIHNldCB4ICIkQ09ORklHX0ZJTEVTIiA7OwotKyAgKikgICBzZXQg eCAkQ09ORklHX0ZJTEVTIDs7Ci0rICBlc2FjCi0rICBzaGlmdAotKyAgZm9yIG1mCi0rICBkbwot KyAgICAjIFN0cmlwIE1GIHNvIHdlIGVuZCB1cCB3aXRoIHRoZSBuYW1lIG9mIHRoZSBmaWxlLgot KyAgICBtZj1gZWNobyAiJG1mIiB8IHNlZCAtZSAncy86LiokLy8nYAotKyAgICAjIENoZWNrIHdo ZXRoZXIgdGhpcyBpcyBhbiBBdXRvbWFrZSBnZW5lcmF0ZWQgTWFrZWZpbGUgb3Igbm90LgotKyAg ICAjIFdlIHVzZWQgdG8gbWF0Y2ggb25seSB0aGUgZmlsZXMgbmFtZWQgYE1ha2VmaWxlLmluJywg YnV0Ci0rICAgICMgc29tZSBwZW9wbGUgcmVuYW1lIHRoZW07IHNvIGluc3RlYWQgd2UgbG9vayBh dCB0aGUgZmlsZSBjb250ZW50LgotKyAgICAjIEdyZXAnaW5nIHRoZSBmaXJzdCBsaW5lIGlzIG5v dCBlbm91Z2g6IHNvbWUgcGVvcGxlIHBvc3QtcHJvY2VzcwotKyAgICAjIGVhY2ggTWFrZWZpbGUu aW4gYW5kIGFkZCBhIG5ldyBsaW5lIG9uIHRvcCBvZiBlYWNoIGZpbGUgdG8gc2F5IHNvLgotKyAg ICAjIEdyZXAnaW5nIHRoZSB3aG9sZSBmaWxlIGlzIG5vdCBnb29kIGVpdGhlcjogQUlYIGdyZXAg aGFzIGEgbGluZQotKyAgICAjIGxpbWl0IG9mIDIwNDgsIGJ1dCBhbGwgc2VkJ3Mgd2Uga25vdyBo YXZlIHVuZGVyc3RhbmQgYXQgbGVhc3QgNDAwMC4KLSsgICAgaWYgc2VkIC1uICdzLF4jLipnZW5l cmF0ZWQgYnkgYXV0b21ha2UuKixYLHAnICIkbWYiIHwgZ3JlcCBYID4vZGV2L251bGwgMj4mMTsg dGhlbgotKyAgICAgIGRpcnBhcnQ9YCRhc19kaXJuYW1lIC0tICIkbWYiIHx8Ci0rJGFzX2V4cHIg WCIkbWYiIDogJ1hcKC4qW14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0rCSBYIiRtZiIgOiAn WFwoLy9cKVteL10nIFx8IFwKLSsJIFgiJG1mIiA6ICdYXCgvL1wpJCcgXHwgXAotKwkgWCIkbWYi IDogJ1hcKC9cKScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJG1mIiB8Ci0rICAg IHNlZCAnL15YXCguKlteL11cKVwvXC8qW14vXVteL10qXC8qJC97Ci0rCSAgICBzLy9cMS8KLSsJ ICAgIHEKLSsJICB9Ci0rCSAgL15YXChcL1wvXClbXi9dLiovewotKwkgICAgcy8vXDEvCi0rCSAg ICBxCi0rCSAgfQotKwkgIC9eWFwoXC9cL1wpJC97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJ ICB9Ci0rCSAgL15YXChcL1wpLiovewotKwkgICAgcy8vXDEvCi0rCSAgICBxCi0rCSAgfQotKwkg IHMvLiovLi87IHEnYAotKyAgICBlbHNlCi0rICAgICAgY29udGludWUKLSsgICAgZmkKLSsgICAg IyBFeHRyYWN0IHRoZSBkZWZpbml0aW9uIG9mIERFUERJUiwgYW1fX2luY2x1ZGUsIGFuZCBhbV9f cXVvdGUKLSsgICAgIyBmcm9tIHRoZSBNYWtlZmlsZSB3aXRob3V0IHJ1bm5pbmcgYG1ha2UnLgot KyAgICBERVBESVI9YHNlZCAtbiAncy9eREVQRElSID0gLy9wJyA8ICIkbWYiYAotKyAgICB0ZXN0 IC16ICIkREVQRElSIiAmJiBjb250aW51ZQotKyAgICBhbV9faW5jbHVkZT1gc2VkIC1uICdzL15h bV9faW5jbHVkZSA9IC8vcCcgPCAiJG1mImAKLSsgICAgdGVzdCAteiAiYW1fX2luY2x1ZGUiICYm IGNvbnRpbnVlCi0rICAgIGFtX19xdW90ZT1gc2VkIC1uICdzL15hbV9fcXVvdGUgPSAvL3AnIDwg IiRtZiJgCi0rICAgICMgV2hlbiB1c2luZyBhbnNpMmtuciwgVSBtYXkgYmUgZW1wdHkgb3IgYW4g dW5kZXJzY29yZTsgZXhwYW5kIGl0Ci0rICAgIFU9YHNlZCAtbiAncy9eVSA9IC8vcCcgPCAiJG1m ImAKLSsgICAgIyBGaW5kIGFsbCBkZXBlbmRlbmN5IG91dHB1dCBmaWxlcywgdGhleSBhcmUgaW5j bHVkZWQgZmlsZXMgd2l0aAotKyAgICAjICQoREVQRElSKSBpbiB0aGVpciBuYW1lcy4gIFdlIGlu dm9rZSBzZWQgdHdpY2UgYmVjYXVzZSBpdCBpcyB0aGUKLSsgICAgIyBzaW1wbGVzdCBhcHByb2Fj aCB0byBjaGFuZ2luZyAkKERFUERJUikgdG8gaXRzIGFjdHVhbCB2YWx1ZSBpbiB0aGUKLSsgICAg IyBleHBhbnNpb24uCi0rICAgIGZvciBmaWxlIGluIGBzZWQgLW4gIgotKyAgICAgIHMvXiRhbV9f aW5jbHVkZSAkYW1fX3F1b3RlXCguKihERVBESVIpLipcKSRhbV9fcXVvdGUiJyQvXDEvcCcgPCIk bWYiIHwgXAotKwkgc2VkIC1lICdzL1wkKERFUERJUikvJyIkREVQRElSIicvZycgLWUgJ3MvXCRV LyciJFUiJy9nJ2A7IGRvCi0rICAgICAgIyBNYWtlIHN1cmUgdGhlIGRpcmVjdG9yeSBleGlzdHMu Ci0rICAgICAgdGVzdCAtZiAiJGRpcnBhcnQvJGZpbGUiICYmIGNvbnRpbnVlCi0rICAgICAgZmRp cj1gJGFzX2Rpcm5hbWUgLS0gIiRmaWxlIiB8fAotKyRhc19leHByIFgiJGZpbGUiIDogJ1hcKC4q W14vXVwpLy8qW14vXVteL10qLyokJyBcfCBcCi0rCSBYIiRmaWxlIiA6ICdYXCgvL1wpW14vXScg XHwgXAotKwkgWCIkZmlsZSIgOiAnWFwoLy9cKSQnIFx8IFwKLSsJIFgiJGZpbGUiIDogJ1hcKC9c KScgXHwgLiAyPi9kZXYvbnVsbCB8fAotKyRhc19lY2hvIFgiJGZpbGUiIHwKLSsgICAgc2VkICcv XlhcKC4qW14vXVwpXC9cLypbXi9dW14vXSpcLyokL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQot KwkgIH0KLSsJICAvXlhcKFwvXC9cKVteL10uKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJ ICB9Ci0rCSAgL15YXChcL1wvXCkkL3sKLSsJICAgIHMvL1wxLwotKwkgICAgcQotKwkgIH0KLSsJ ICAvXlhcKFwvXCkuKi97Ci0rCSAgICBzLy9cMS8KLSsJICAgIHEKLSsJICB9Ci0rCSAgcy8uKi8u LzsgcSdgCi0rICAgICAgYXNfZGlyPSRkaXJwYXJ0LyRmZGlyOyBhc19mbl9ta2Rpcl9wCi0rICAg ICAgIyBlY2hvICJjcmVhdGluZyAkZGlycGFydC8kZmlsZSIKLSsgICAgICBlY2hvICcjIGR1bW15 JyA+ICIkZGlycGFydC8kZmlsZSIKLSsgICAgZG9uZQotKyAgZG9uZQotK30KLSsgOzsKLSsgICAg ImxpYnRvb2wiOkMpCi0rCi0rICAgICMgU2VlIGlmIHdlIGFyZSBydW5uaW5nIG9uIHpzaCwgYW5k IHNldCB0aGUgb3B0aW9ucyB3aGljaCBhbGxvdyBvdXIKLSsgICAgIyBjb21tYW5kcyB0aHJvdWdo IHdpdGhvdXQgcmVtb3ZhbCBvZiBcIGVzY2FwZXMuCi0rICAgIGlmIHRlc3QgLW4gIiR7WlNIX1ZF UlNJT04rc2V0fSIgOyB0aGVuCi0rICAgICAgc2V0b3B0IE5PX0dMT0JfU1VCU1QKLSsgICAgZmkK LSsKLSsgICAgY2ZnZmlsZT0iJHtvZmlsZX1UIgotKyAgICB0cmFwICIkUk0gXCIkY2ZnZmlsZVwi OyBleGl0IDEiIDEgMiAxNQotKyAgICAkUk0gIiRjZmdmaWxlIgotKwotKyAgICBjYXQgPDxfTFRf RU9GID4+ICIkY2ZnZmlsZSIKLSsjISAkU0hFTEwKLSsKLSsjIGAkRUNITyAiJG9maWxlIiB8IHNl ZCAncyVeLiovJSUnYCAtIFByb3ZpZGUgZ2VuZXJhbGl6ZWQgbGlicmFyeS1idWlsZGluZyBzdXBw b3J0IHNlcnZpY2VzLgotKyMgR2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkgYnkgJGFzX21lICgkUEFD S0FHRSRUSU1FU1RBTVApICRWRVJTSU9OCi0rIyBMaWJ0b29sIHdhcyBjb25maWd1cmVkIG9uIGhv c3QgYChob3N0bmFtZSB8fCB1bmFtZSAtbikgMj4vZGV2L251bGwgfCBzZWQgMXFgOgotKyMgTk9U RTogQ2hhbmdlcyBtYWRlIHRvIHRoaXMgZmlsZSB3aWxsIGJlIGxvc3Q6IGxvb2sgYXQgbHRtYWlu LnNoLgotKyMKLSsjICAgQ29weXJpZ2h0IChDKSAxOTk2LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAw LCAyMDAxLCAyMDAzLCAyMDA0LCAyMDA1LAotKyMgICAgICAgICAgICAgICAgIDIwMDYsIDIwMDcs IDIwMDgsIDIwMDksIDIwMTAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMgICAgICAgICAg ICAgICAgIEluYy4KLSsjICAgV3JpdHRlbiBieSBHb3Jkb24gTWF0emlna2VpdCwgMTk5NgotKyMK LSsjICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgR05VIExpYnRvb2wuCi0rIwotKyMgR05VIExpYnRv b2wgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0rIyBt b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5z ZSBhcwotKyMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhl ciB2ZXJzaW9uIDIgb2YKLSsjIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBs YXRlciB2ZXJzaW9uLgotKyMKLSsjIEFzIGEgc3BlY2lhbCBleGNlcHRpb24gdG8gdGhlIEdOVSBH ZW5lcmFsIFB1YmxpYyBMaWNlbnNlLAotKyMgaWYgeW91IGRpc3RyaWJ1dGUgdGhpcyBmaWxlIGFz IHBhcnQgb2YgYSBwcm9ncmFtIG9yIGxpYnJhcnkgdGhhdAotKyMgaXMgYnVpbHQgdXNpbmcgR05V IExpYnRvb2wsIHlvdSBtYXkgaW5jbHVkZSB0aGlzIGZpbGUgdW5kZXIgdGhlCi0rIyBzYW1lIGRp c3RyaWJ1dGlvbiB0ZXJtcyB0aGF0IHlvdSB1c2UgZm9yIHRoZSByZXN0IG9mIHRoYXQgcHJvZ3Jh bS4KLSsjCi0rIyBHTlUgTGlidG9vbCBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0 IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2 ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSsjIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSsjIEdOVSBHZW5lcmFsIFB1Ymxp YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0rIwotKyMgWW91IHNob3VsZCBoYXZlIHJlY2Vp dmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSsjIGFsb25nIHdp dGggR05VIExpYnRvb2w7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLiAgSWYgbm90LCBhIGNvcHkKLSsj IGNhbiBiZSBkb3dubG9hZGVkIGZyb20gaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC5o dG1sLCBvcgotKyMgb2J0YWluZWQgYnkgd3JpdGluZyB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuLAotKyMgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9u LCBNQSAwMjExMC0xMzAxLCBVU0EuCi0rCi0rCi0rIyBUaGUgbmFtZXMgb2YgdGhlIHRhZ2dlZCBj b25maWd1cmF0aW9ucyBzdXBwb3J0ZWQgYnkgdGhpcyBzY3JpcHQuCi0rYXZhaWxhYmxlX3RhZ3M9 IkNYWCAiCi0rCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBDT05GSUcKLSsKLSsjIFdoZXRoZXIgb3Ig bm90IHRvIGJ1aWxkIHNoYXJlZCBsaWJyYXJpZXMuCi0rYnVpbGRfbGlidG9vbF9saWJzPSRlbmFi bGVfc2hhcmVkCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBidWlsZCBzdGF0aWMgbGlicmFyaWVz LgotK2J1aWxkX29sZF9saWJzPSRlbmFibGVfc3RhdGljCi0rCi0rIyBXaGljaCByZWxlYXNlIG9m IGxpYnRvb2wubTQgd2FzIHVzZWQ/Ci0rbWFjcm9fdmVyc2lvbj0kbWFjcm9fdmVyc2lvbgotK21h Y3JvX3JldmlzaW9uPSRtYWNyb19yZXZpc2lvbgotKwotKyMgV2hhdCB0eXBlIG9mIG9iamVjdHMg dG8gYnVpbGQuCi0rcGljX21vZGU9JHBpY19tb2RlCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBv cHRpbWl6ZSBmb3IgZmFzdCBpbnN0YWxsYXRpb24uCi0rZmFzdF9pbnN0YWxsPSRlbmFibGVfZmFz dF9pbnN0YWxsCi0rCi0rIyBTaGVsbCB0byB1c2Ugd2hlbiBpbnZva2luZyBzaGVsbCBzY3JpcHRz LgotK1NIRUxMPSRsdF9TSEVMTAotKwotKyMgQW4gZWNobyBwcm9ncmFtIHRoYXQgcHJvdGVjdHMg YmFja3NsYXNoZXMuCi0rRUNITz0kbHRfRUNITwotKwotKyMgVGhlIGhvc3Qgc3lzdGVtLgotK2hv c3RfYWxpYXM9JGhvc3RfYWxpYXMKLStob3N0PSRob3N0Ci0raG9zdF9vcz0kaG9zdF9vcwotKwot KyMgVGhlIGJ1aWxkIHN5c3RlbS4KLStidWlsZF9hbGlhcz0kYnVpbGRfYWxpYXMKLStidWlsZD0k YnVpbGQKLStidWlsZF9vcz0kYnVpbGRfb3MKLSsKLSsjIEEgc2VkIHByb2dyYW0gdGhhdCBkb2Vz IG5vdCB0cnVuY2F0ZSBvdXRwdXQuCi0rU0VEPSRsdF9TRUQKLSsKLSsjIFNlZCB0aGF0IGhlbHBz IHVzIGF2b2lkIGFjY2lkZW50YWxseSB0cmlnZ2VyaW5nIGVjaG8oMSkgb3B0aW9ucyBsaWtlIC1u LgotK1hzZWQ9IlwkU0VEIC1lIDFzL15YLy8iCi0rCi0rIyBBIGdyZXAgcHJvZ3JhbSB0aGF0IGhh bmRsZXMgbG9uZyBsaW5lcy4KLStHUkVQPSRsdF9HUkVQCi0rCi0rIyBBbiBFUkUgbWF0Y2hlci4K LStFR1JFUD0kbHRfRUdSRVAKLSsKLSsjIEEgbGl0ZXJhbCBzdHJpbmcgbWF0Y2hlci4KLStGR1JF UD0kbHRfRkdSRVAKLSsKLSsjIEEgQlNELSBvciBNUy1jb21wYXRpYmxlIG5hbWUgbGlzdGVyLgot K05NPSRsdF9OTQotKwotKyMgV2hldGhlciB3ZSBuZWVkIHNvZnQgb3IgaGFyZCBsaW5rcy4KLStM Tl9TPSRsdF9MTl9TCi0rCi0rIyBXaGF0IGlzIHRoZSBtYXhpbXVtIGxlbmd0aCBvZiBhIGNvbW1h bmQ/Ci0rbWF4X2NtZF9sZW49JG1heF9jbWRfbGVuCi0rCi0rIyBPYmplY3QgZmlsZSBzdWZmaXgg KG5vcm1hbGx5ICJvIikuCi0rb2JqZXh0PSRhY19vYmpleHQKLSsKLSsjIEV4ZWN1dGFibGUgZmls ZSBzdWZmaXggKG5vcm1hbGx5ICIiKS4KLStleGVleHQ9JGV4ZWV4dAotKwotKyMgd2hldGhlciB0 aGUgc2hlbGwgdW5kZXJzdGFuZHMgInVuc2V0Ii4KLStsdF91bnNldD0kbHRfdW5zZXQKLSsKLSsj IHR1cm4gc3BhY2VzIGludG8gbmV3bGluZXMuCi0rU1AyTkw9JGx0X2x0X1NQMk5MCi0rCi0rIyB0 dXJuIG5ld2xpbmVzIGludG8gc3BhY2VzLgotK05MMlNQPSRsdF9sdF9OTDJTUAotKwotKyMgY29u dmVydCBcJGJ1aWxkIGZpbGUgbmFtZXMgdG8gXCRob3N0IGZvcm1hdC4KLSt0b19ob3N0X2ZpbGVf Y21kPSRsdF9jdl90b19ob3N0X2ZpbGVfY21kCi0rCi0rIyBjb252ZXJ0IFwkYnVpbGQgZmlsZXMg dG8gdG9vbGNoYWluIGZvcm1hdC4KLSt0b190b29sX2ZpbGVfY21kPSRsdF9jdl90b190b29sX2Zp bGVfY21kCi0rCi0rIyBBbiBvYmplY3Qgc3ltYm9sIGR1bXBlci4KLStPQkpEVU1QPSRsdF9PQkpE VU1QCi0rCi0rIyBNZXRob2QgdG8gY2hlY2sgd2hldGhlciBkZXBlbmRlbnQgbGlicmFyaWVzIGFy ZSBzaGFyZWQgb2JqZWN0cy4KLStkZXBsaWJzX2NoZWNrX21ldGhvZD0kbHRfZGVwbGlic19jaGVj a19tZXRob2QKLSsKLSsjIENvbW1hbmQgdG8gdXNlIHdoZW4gZGVwbGlic19jaGVja19tZXRob2Qg PSAiZmlsZV9tYWdpYyIuCi0rZmlsZV9tYWdpY19jbWQ9JGx0X2ZpbGVfbWFnaWNfY21kCi0rCi0r IyBIb3cgdG8gZmluZCBwb3RlbnRpYWwgZmlsZXMgd2hlbiBkZXBsaWJzX2NoZWNrX21ldGhvZCA9 ICJmaWxlX21hZ2ljIi4KLStmaWxlX21hZ2ljX2dsb2I9JGx0X2ZpbGVfbWFnaWNfZ2xvYgotKwot KyMgRmluZCBwb3RlbnRpYWwgZmlsZXMgdXNpbmcgbm9jYXNlZ2xvYiB3aGVuIGRlcGxpYnNfY2hl Y2tfbWV0aG9kID0gImZpbGVfbWFnaWMiLgotK3dhbnRfbm9jYXNlZ2xvYj0kbHRfd2FudF9ub2Nh c2VnbG9iCi0rCi0rIyBETEwgY3JlYXRpb24gcHJvZ3JhbS4KLStETExUT09MPSRsdF9ETExUT09M Ci0rCi0rIyBDb21tYW5kIHRvIGFzc29jaWF0ZSBzaGFyZWQgYW5kIGxpbmsgbGlicmFyaWVzLgot K3NoYXJlZGxpYl9mcm9tX2xpbmtsaWJfY21kPSRsdF9zaGFyZWRsaWJfZnJvbV9saW5rbGliX2Nt ZAotKwotKyMgVGhlIGFyY2hpdmVyLgotK0FSPSRsdF9BUgotKwotKyMgRmxhZ3MgdG8gY3JlYXRl IGFuIGFyY2hpdmUuCi0rQVJfRkxBR1M9JGx0X0FSX0ZMQUdTCi0rCi0rIyBIb3cgdG8gZmVlZCBh IGZpbGUgbGlzdGluZyB0byB0aGUgYXJjaGl2ZXIuCi0rYXJjaGl2ZXJfbGlzdF9zcGVjPSRsdF9h cmNoaXZlcl9saXN0X3NwZWMKLSsKLSsjIEEgc3ltYm9sIHN0cmlwcGluZyBwcm9ncmFtLgotK1NU UklQPSRsdF9TVFJJUAotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBpbnN0YWxsIGFuIG9sZC1zdHls ZSBhcmNoaXZlLgotK1JBTkxJQj0kbHRfUkFOTElCCi0rb2xkX3Bvc3RpbnN0YWxsX2NtZHM9JGx0 X29sZF9wb3N0aW5zdGFsbF9jbWRzCi0rb2xkX3Bvc3R1bmluc3RhbGxfY21kcz0kbHRfb2xkX3Bv c3R1bmluc3RhbGxfY21kcwotKwotKyMgV2hldGhlciB0byB1c2UgYSBsb2NrIGZvciBvbGQgYXJj aGl2ZSBleHRyYWN0aW9uLgotK2xvY2tfb2xkX2FyY2hpdmVfZXh0cmFjdGlvbj0kbG9ja19vbGRf YXJjaGl2ZV9leHRyYWN0aW9uCi0rCi0rIyBBIEMgY29tcGlsZXIuCi0rTFRDQz0kbHRfQ0MKLSsK LSsjIExUQ0MgY29tcGlsZXIgZmxhZ3MuCi0rTFRDRkxBR1M9JGx0X0NGTEFHUwotKwotKyMgVGFr ZSB0aGUgb3V0cHV0IG9mIG5tIGFuZCBwcm9kdWNlIGEgbGlzdGluZyBvZiByYXcgc3ltYm9scyBh bmQgQyBuYW1lcy4KLStnbG9iYWxfc3ltYm9sX3BpcGU9JGx0X2x0X2N2X3N5c19nbG9iYWxfc3lt Ym9sX3BpcGUKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEgcHJvcGVyIEMg ZGVjbGFyYXRpb24uCi0rZ2xvYmFsX3N5bWJvbF90b19jZGVjbD0kbHRfbHRfY3Zfc3lzX2dsb2Jh bF9zeW1ib2xfdG9fY2RlY2wKLSsKLSsjIFRyYW5zZm9ybSB0aGUgb3V0cHV0IG9mIG5tIGluIGEg QyBuYW1lIGFkZHJlc3MgcGFpci4KLStnbG9iYWxfc3ltYm9sX3RvX2NfbmFtZV9hZGRyZXNzPSRs dF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzcwotKwotKyMgVHJhbnNm b3JtIHRoZSBvdXRwdXQgb2Ygbm0gaW4gYSBDIG5hbWUgYWRkcmVzcyBwYWlyIHdoZW4gbGliIHBy ZWZpeCBpcyBuZWVkZWQuCi0rZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJl Zml4PSRsdF9sdF9jdl9zeXNfZ2xvYmFsX3N5bWJvbF90b19jX25hbWVfYWRkcmVzc19saWJfcHJl Zml4Ci0rCi0rIyBTcGVjaWZ5IGZpbGVuYW1lIGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMgZm9yIFwk Tk0uCi0rbm1fZmlsZV9saXN0X3NwZWM9JGx0X25tX2ZpbGVfbGlzdF9zcGVjCi0rCi0rIyBUaGUg cm9vdCB3aGVyZSB0byBzZWFyY2ggZm9yIGRlcGVuZGVudCBsaWJyYXJpZXMsYW5kIGluIHdoaWNo IG91ciBsaWJyYXJpZXMgc2hvdWxkIGJlIGluc3RhbGxlZC4KLStsdF9zeXNyb290PSRsdF9zeXNy b290Ci0rCi0rIyBUaGUgbmFtZSBvZiB0aGUgZGlyZWN0b3J5IHRoYXQgY29udGFpbnMgdGVtcG9y YXJ5IGxpYnRvb2wgZmlsZXMuCi0rb2JqZGlyPSRvYmpkaXIKLSsKLSsjIFVzZWQgdG8gZXhhbWlu ZSBsaWJyYXJpZXMgd2hlbiBmaWxlX21hZ2ljX2NtZCBiZWdpbnMgd2l0aCAiZmlsZSIuCi0rTUFH SUNfQ01EPSRNQUdJQ19DTUQKLSsKLSsjIE11c3Qgd2UgbG9jayBmaWxlcyB3aGVuIGRvaW5nIGNv bXBpbGF0aW9uPwotK25lZWRfbG9ja3M9JGx0X25lZWRfbG9ja3MKLSsKLSsjIE1hbmlmZXN0IHRv b2wuCi0rTUFOSUZFU1RfVE9PTD0kbHRfTUFOSUZFU1RfVE9PTAotKwotKyMgVG9vbCB0byBtYW5p cHVsYXRlIGFyY2hpdmVkIERXQVJGIGRlYnVnIHN5bWJvbCBmaWxlcyBvbiBNYWMgT1MgWC4KLStE U1lNVVRJTD0kbHRfRFNZTVVUSUwKLSsKLSsjIFRvb2wgdG8gY2hhbmdlIGdsb2JhbCB0byBsb2Nh bCBzeW1ib2xzIG9uIE1hYyBPUyBYLgotK05NRURJVD0kbHRfTk1FRElUCi0rCi0rIyBUb29sIHRv IG1hbmlwdWxhdGUgZmF0IG9iamVjdHMgYW5kIGFyY2hpdmVzIG9uIE1hYyBPUyBYLgotK0xJUE89 JGx0X0xJUE8KLSsKLSsjIGxkZC9yZWFkZWxmIGxpa2UgdG9vbCBmb3IgTWFjaC1PIGJpbmFyaWVz IG9uIE1hYyBPUyBYLgotK09UT09MPSRsdF9PVE9PTAotKwotKyMgbGRkL3JlYWRlbGYgbGlrZSB0 b29sIGZvciA2NCBiaXQgTWFjaC1PIGJpbmFyaWVzIG9uIE1hYyBPUyBYIDEwLjQuCi0rT1RPT0w2 ND0kbHRfT1RPT0w2NAotKwotKyMgT2xkIGFyY2hpdmUgc3VmZml4IChub3JtYWxseSAiYSIpLgot K2xpYmV4dD0kbGliZXh0Ci0rCi0rIyBTaGFyZWQgbGlicmFyeSBzdWZmaXggKG5vcm1hbGx5ICIu c28iKS4KLStzaHJleHRfY21kcz0kbHRfc2hyZXh0X2NtZHMKLSsKLSsjIFRoZSBjb21tYW5kcyB0 byBleHRyYWN0IHRoZSBleHBvcnRlZCBzeW1ib2wgbGlzdCBmcm9tIGEgc2hhcmVkIGFyY2hpdmUu Ci0rZXh0cmFjdF9leHBzeW1zX2NtZHM9JGx0X2V4dHJhY3RfZXhwc3ltc19jbWRzCi0rCi0rIyBW YXJpYWJsZXMgd2hvc2UgdmFsdWVzIHNob3VsZCBiZSBzYXZlZCBpbiBsaWJ0b29sIHdyYXBwZXIg c2NyaXB0cyBhbmQKLSsjIHJlc3RvcmVkIGF0IGxpbmsgdGltZS4KLSt2YXJpYWJsZXNfc2F2ZWRf Zm9yX3JlbGluaz0kbHRfdmFyaWFibGVzX3NhdmVkX2Zvcl9yZWxpbmsKLSsKLSsjIERvIHdlIG5l ZWQgdGhlICJsaWIiIHByZWZpeCBmb3IgbW9kdWxlcz8KLStuZWVkX2xpYl9wcmVmaXg9JG5lZWRf bGliX3ByZWZpeAotKwotKyMgRG8gd2UgbmVlZCBhIHZlcnNpb24gZm9yIGxpYnJhcmllcz8KLStu ZWVkX3ZlcnNpb249JG5lZWRfdmVyc2lvbgotKwotKyMgTGlicmFyeSB2ZXJzaW9uaW5nIHR5cGUu Ci0rdmVyc2lvbl90eXBlPSR2ZXJzaW9uX3R5cGUKLSsKLSsjIFNoYXJlZCBsaWJyYXJ5IHJ1bnRp bWUgcGF0aCB2YXJpYWJsZS4KLStydW5wYXRoX3Zhcj0kcnVucGF0aF92YXIKLSsKLSsjIFNoYXJl ZCBsaWJyYXJ5IHBhdGggdmFyaWFibGUuCi0rc2hsaWJwYXRoX3Zhcj0kc2hsaWJwYXRoX3Zhcgot KwotKyMgSXMgc2hsaWJwYXRoIHNlYXJjaGVkIGJlZm9yZSB0aGUgaGFyZC1jb2RlZCBsaWJyYXJ5 IHNlYXJjaCBwYXRoPwotK3NobGlicGF0aF9vdmVycmlkZXNfcnVucGF0aD0kc2hsaWJwYXRoX292 ZXJyaWRlc19ydW5wYXRoCi0rCi0rIyBGb3JtYXQgb2YgbGlicmFyeSBuYW1lIHByZWZpeC4KLSts aWJuYW1lX3NwZWM9JGx0X2xpYm5hbWVfc3BlYwotKwotKyMgTGlzdCBvZiBhcmNoaXZlIG5hbWVz LiAgRmlyc3QgbmFtZSBpcyB0aGUgcmVhbCBvbmUsIHRoZSByZXN0IGFyZSBsaW5rcy4KLSsjIFRo ZSBsYXN0IG5hbWUgaXMgdGhlIG9uZSB0aGF0IHRoZSBsaW5rZXIgZmluZHMgd2l0aCAtbE5BTUUK LStsaWJyYXJ5X25hbWVzX3NwZWM9JGx0X2xpYnJhcnlfbmFtZXNfc3BlYwotKwotKyMgVGhlIGNv ZGVkIG5hbWUgb2YgdGhlIGxpYnJhcnksIGlmIGRpZmZlcmVudCBmcm9tIHRoZSByZWFsIG5hbWUu Ci0rc29uYW1lX3NwZWM9JGx0X3NvbmFtZV9zcGVjCi0rCi0rIyBQZXJtaXNzaW9uIG1vZGUgb3Zl cnJpZGUgZm9yIGluc3RhbGxhdGlvbiBvZiBzaGFyZWQgbGlicmFyaWVzLgotK2luc3RhbGxfb3Zl cnJpZGVfbW9kZT0kbHRfaW5zdGFsbF9vdmVycmlkZV9tb2RlCi0rCi0rIyBDb21tYW5kIHRvIHVz ZSBhZnRlciBpbnN0YWxsYXRpb24gb2YgYSBzaGFyZWQgYXJjaGl2ZS4KLStwb3N0aW5zdGFsbF9j bWRzPSRsdF9wb3N0aW5zdGFsbF9jbWRzCi0rCi0rIyBDb21tYW5kIHRvIHVzZSBhZnRlciB1bmlu c3RhbGxhdGlvbiBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK3Bvc3R1bmluc3RhbGxfY21kcz0kbHRf cG9zdHVuaW5zdGFsbF9jbWRzCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGZpbmlzaCBhIGxpYnRv b2wgbGlicmFyeSBpbnN0YWxsYXRpb24gaW4gYSBkaXJlY3RvcnkuCi0rZmluaXNoX2NtZHM9JGx0 X2ZpbmlzaF9jbWRzCi0rCi0rIyBBcyAiZmluaXNoX2NtZHMiLCBleGNlcHQgYSBzaW5nbGUgc2Ny aXB0IGZyYWdtZW50IHRvIGJlIGV2YWxlZCBidXQKLSsjIG5vdCBzaG93bi4KLStmaW5pc2hfZXZh bD0kbHRfZmluaXNoX2V2YWwKLSsKLSsjIFdoZXRoZXIgd2Ugc2hvdWxkIGhhcmRjb2RlIGxpYnJh cnkgcGF0aHMgaW50byBsaWJyYXJpZXMuCi0raGFyZGNvZGVfaW50b19saWJzPSRoYXJkY29kZV9p bnRvX2xpYnMKLSsKLSsjIENvbXBpbGUtdGltZSBzeXN0ZW0gc2VhcmNoIHBhdGggZm9yIGxpYnJh cmllcy4KLStzeXNfbGliX3NlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfc2VhcmNoX3BhdGhf c3BlYwotKwotKyMgUnVuLXRpbWUgc3lzdGVtIHNlYXJjaCBwYXRoIGZvciBsaWJyYXJpZXMuCi0r c3lzX2xpYl9kbHNlYXJjaF9wYXRoX3NwZWM9JGx0X3N5c19saWJfZGxzZWFyY2hfcGF0aF9zcGVj Ci0rCi0rIyBXaGV0aGVyIGRsb3BlbiBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVuX3N1cHBvcnQ9JGVu YWJsZV9kbG9wZW4KLSsKLSsjIFdoZXRoZXIgZGxvcGVuIG9mIHByb2dyYW1zIGlzIHN1cHBvcnRl ZC4KLStkbG9wZW5fc2VsZj0kZW5hYmxlX2Rsb3Blbl9zZWxmCi0rCi0rIyBXaGV0aGVyIGRsb3Bl biBvZiBzdGF0aWNhbGx5IGxpbmtlZCBwcm9ncmFtcyBpcyBzdXBwb3J0ZWQuCi0rZGxvcGVuX3Nl bGZfc3RhdGljPSRlbmFibGVfZGxvcGVuX3NlbGZfc3RhdGljCi0rCi0rIyBDb21tYW5kcyB0byBz dHJpcCBsaWJyYXJpZXMuCi0rb2xkX3N0cmlwbGliPSRsdF9vbGRfc3RyaXBsaWIKLStzdHJpcGxp Yj0kbHRfc3RyaXBsaWIKLSsKLSsKLSsjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJp ZXMuCi0rTEQ9JGx0X0xECi0rCi0rIyBIb3cgdG8gY3JlYXRlIHJlbG9hZGFibGUgb2JqZWN0IGZp bGVzLgotK3JlbG9hZF9mbGFnPSRsdF9yZWxvYWRfZmxhZwotK3JlbG9hZF9jbWRzPSRsdF9yZWxv YWRfY21kcwotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5bGUgYXJjaGl2 ZS4KLStvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzCi0rCi0rIyBBIGxhbmd1 YWdlIHNwZWNpZmljIGNvbXBpbGVyLgotK0NDPSRsdF9jb21waWxlcgotKwotKyMgSXMgdGhlIGNv bXBpbGVyIHRoZSBHTlUgY29tcGlsZXI/Ci0rd2l0aF9nY2M9JEdDQwotKwotKyMgQ29tcGlsZXIg ZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4KLStub19idWlsdGluX2ZsYWc9JGx0 X2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnCi0rCi0rIyBBZGRpdGlvbmFsIGNvbXBp bGVyIGZsYWdzIGZvciBidWlsZGluZyBsaWJyYXJ5IG9iamVjdHMuCi0rcGljX2ZsYWc9JGx0X2x0 X3Byb2dfY29tcGlsZXJfcGljCi0rCi0rIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRocm91 Z2ggdGhlIGNvbXBpbGVyLgotK3dsPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3dsCi0rCi0rIyBDb21w aWxlciBmbGFnIHRvIHByZXZlbnQgZHluYW1pYyBsaW5raW5nLgotK2xpbmtfc3RhdGljX2ZsYWc9 JGx0X2x0X3Byb2dfY29tcGlsZXJfc3RhdGljCi0rCi0rIyBEb2VzIGNvbXBpbGVyIHNpbXVsdGFu ZW91c2x5IHN1cHBvcnQgLWMgYW5kIC1vIG9wdGlvbnM/Ci0rY29tcGlsZXJfY19vPSRsdF9sdF9j dl9wcm9nX2NvbXBpbGVyX2NfbwotKwotKyMgV2hldGhlciBvciBub3QgdG8gYWRkIC1sYyBmb3Ig YnVpbGRpbmcgc2hhcmVkIGxpYnJhcmllcy4KLStidWlsZF9saWJ0b29sX25lZWRfbGM9JGFyY2hp dmVfY21kc19uZWVkX2xjCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQg bGlicyB3aGVuIHJ1bnRpbWUgbGlicyBhcmUgc3RhdGljLgotK2FsbG93X2xpYnRvb2xfbGlic193 aXRoX3N0YXRpY19ydW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lcwot KwotKyMgQ29tcGlsZXIgZmxhZyB0byBhbGxvdyByZWZsZXhpdmUgZGxvcGVucy4KLStleHBvcnRf ZHluYW1pY19mbGFnX3NwZWM9JGx0X2V4cG9ydF9keW5hbWljX2ZsYWdfc3BlYwotKwotKyMgQ29t cGlsZXIgZmxhZyB0byBnZW5lcmF0ZSBzaGFyZWQgb2JqZWN0cyBkaXJlY3RseSBmcm9tIGFyY2hp dmVzLgotK3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjPSRsdF93aG9sZV9hcmNoaXZlX2ZsYWdfc3Bl YwotKwotKyMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVj dHMgZGlyZWN0bHkuCi0rY29tcGlsZXJfbmVlZHNfb2JqZWN0PSRsdF9jb21waWxlcl9uZWVkc19v YmplY3QKLSsKLSsjIENyZWF0ZSBhbiBvbGQtc3R5bGUgYXJjaGl2ZSBmcm9tIGEgc2hhcmVkIGFy Y2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJvbV9uZXdfY21kcz0kbHRfb2xkX2FyY2hpdmVfZnJvbV9u ZXdfY21kcwotKwotKyMgQ3JlYXRlIGEgdGVtcG9yYXJ5IG9sZC1zdHlsZSBhcmNoaXZlIHRvIGxp bmsgaW5zdGVhZCBvZiBhIHNoYXJlZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zyb21fZXhwc3lt c19jbWRzPSRsdF9vbGRfYXJjaGl2ZV9mcm9tX2V4cHN5bXNfY21kcwotKwotKyMgQ29tbWFuZHMg dXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgotK2FyY2hpdmVfY21kcz0kbHRfYXJjaGl2 ZV9jbWRzCi0rYXJjaGl2ZV9leHBzeW1fY21kcz0kbHRfYXJjaGl2ZV9leHBzeW1fY21kcwotKwot KyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIGxvYWRhYmxlIG1vZHVsZSBpZiBkaWZmZXJlbnQg ZnJvbSBidWlsZGluZwotKyMgYSBzaGFyZWQgYXJjaGl2ZS4KLSttb2R1bGVfY21kcz0kbHRfbW9k dWxlX2NtZHMKLSttb2R1bGVfZXhwc3ltX2NtZHM9JGx0X21vZHVsZV9leHBzeW1fY21kcwotKwot KyMgV2hldGhlciB3ZSBhcmUgYnVpbGRpbmcgd2l0aCBHTlUgbGQgb3Igbm90LgotK3dpdGhfZ251 X2xkPSRsdF93aXRoX2dudV9sZAotKwotKyMgRmxhZyB0aGF0IGFsbG93cyBzaGFyZWQgbGlicmFy aWVzIHdpdGggdW5kZWZpbmVkIHN5bWJvbHMgdG8gYmUgYnVpbHQuCi0rYWxsb3dfdW5kZWZpbmVk X2ZsYWc9JGx0X2FsbG93X3VuZGVmaW5lZF9mbGFnCi0rCi0rIyBGbGFnIHRoYXQgZW5mb3JjZXMg bm8gdW5kZWZpbmVkIHN5bWJvbHMuCi0rbm9fdW5kZWZpbmVkX2ZsYWc9JGx0X25vX3VuZGVmaW5l ZF9mbGFnCi0rCi0rIyBGbGFnIHRvIGhhcmRjb2RlIFwkbGliZGlyIGludG8gYSBiaW5hcnkgZHVy aW5nIGxpbmtpbmcuCi0rIyBUaGlzIG11c3Qgd29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90 IGV4aXN0Ci0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0kbHRfaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYwotKwotKyMgSWYgbGQgaXMgdXNlZCB3aGVuIGxpbmtpbmcsIGZsYWcgdG8gaGFyZGNv ZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeQotKyMgZHVyaW5nIGxpbmtpbmcuICBUaGlzIG11c3Qg d29yayBldmVuIGlmIFwkbGliZGlyIGRvZXMgbm90IGV4aXN0LgotK2hhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWNfbGQ9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfbGQKLSsKLSsjIFdoZXRo ZXIgd2UgbmVlZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1l bnQuCi0raGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3NlcGFy YXRvcgotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4 dH0gZHVyaW5nIGxpbmtpbmcgaGFyZGNvZGVzCi0rIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJp bmFyeS4KLStoYXJkY29kZV9kaXJlY3Q9JGhhcmRjb2RlX2RpcmVjdAotKwotKyMgU2V0IHRvICJ5 ZXMiIGlmIHVzaW5nIERJUi9saWJOQU1FXCR7c2hhcmVkX2V4dH0gZHVyaW5nIGxpbmtpbmcgaGFy ZGNvZGVzCi0rIyBESVIgaW50byB0aGUgcmVzdWx0aW5nIGJpbmFyeSBhbmQgdGhlIHJlc3VsdGlu ZyBsaWJyYXJ5IGRlcGVuZGVuY3kgaXMKLSsjICJhYnNvbHV0ZSIsaS5lIGltcG9zc2libGUgdG8g Y2hhbmdlIGJ5IHNldHRpbmcgXCR7c2hsaWJwYXRoX3Zhcn0gaWYgdGhlCi0rIyBsaWJyYXJ5IGlz IHJlbG9jYXRlZC4KLStoYXJkY29kZV9kaXJlY3RfYWJzb2x1dGU9JGhhcmRjb2RlX2RpcmVjdF9h YnNvbHV0ZQotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmlu ZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0r aGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTAotKwotKyMgU2V0IHRvICJ5ZXMiIGlm IHVzaW5nIFNITElCUEFUSF9WQVI9RElSIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsj IGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnkuCi0raGFyZGNvZGVfc2hsaWJwYXRoX3Zhcj0kaGFy ZGNvZGVfc2hsaWJwYXRoX3ZhcgotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIGJ1aWxkaW5nIGEgc2hh cmVkIGxpYnJhcnkgYXV0b21hdGljYWxseSBoYXJkY29kZXMgRElSCi0rIyBpbnRvIHRoZSBsaWJy YXJ5IGFuZCBhbGwgc3Vic2VxdWVudCBsaWJyYXJpZXMgYW5kIGV4ZWN1dGFibGVzIGxpbmtlZAot KyMgYWdhaW5zdCBpdC4KLStoYXJkY29kZV9hdXRvbWF0aWM9JGhhcmRjb2RlX2F1dG9tYXRpYwot KwotKyMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBhdGhzIG9mIGRlcGVuZGVu dCBsaWJyYXJpZXMKLSsjIHRvIHJ1bnRpbWUgcGF0aCBsaXN0LgotK2luaGVyaXRfcnBhdGg9JGlu aGVyaXRfcnBhdGgKLSsKLSsjIFdoZXRoZXIgbGlidG9vbCBtdXN0IGxpbmsgYSBwcm9ncmFtIGFn YWluc3QgYWxsIGl0cyBkZXBlbmRlbmN5IGxpYnJhcmllcy4KLStsaW5rX2FsbF9kZXBsaWJzPSRs aW5rX2FsbF9kZXBsaWJzCi0rCi0rIyBTZXQgdG8gInllcyIgaWYgZXhwb3J0ZWQgc3ltYm9scyBh cmUgcmVxdWlyZWQuCi0rYWx3YXlzX2V4cG9ydF9zeW1ib2xzPSRhbHdheXNfZXhwb3J0X3N5bWJv bHMKLSsKLSsjIFRoZSBjb21tYW5kcyB0byBsaXN0IGV4cG9ydGVkIHN5bWJvbHMuCi0rZXhwb3J0 X3N5bWJvbHNfY21kcz0kbHRfZXhwb3J0X3N5bWJvbHNfY21kcwotKwotKyMgU3ltYm9scyB0aGF0 IHNob3VsZCBub3QgYmUgbGlzdGVkIGluIHRoZSBwcmVsb2FkZWQgc3ltYm9scy4KLStleGNsdWRl X2V4cHN5bXM9JGx0X2V4Y2x1ZGVfZXhwc3ltcwotKwotKyMgU3ltYm9scyB0aGF0IG11c3QgYWx3 YXlzIGJlIGV4cG9ydGVkLgotK2luY2x1ZGVfZXhwc3ltcz0kbHRfaW5jbHVkZV9leHBzeW1zCi0r Ci0rIyBDb21tYW5kcyBuZWNlc3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGli cmFyaWVzKSB3aXRoIHRlbXBsYXRlcy4KLStwcmVsaW5rX2NtZHM9JGx0X3ByZWxpbmtfY21kcwot KwotKyMgQ29tbWFuZHMgbmVjZXNzYXJ5IGZvciBmaW5pc2hpbmcgbGlua2luZyBwcm9ncmFtcy4K LStwb3N0bGlua19jbWRzPSRsdF9wb3N0bGlua19jbWRzCi0rCi0rIyBTcGVjaWZ5IGZpbGVuYW1l IGNvbnRhaW5pbmcgaW5wdXQgZmlsZXMuCi0rZmlsZV9saXN0X3NwZWM9JGx0X2ZpbGVfbGlzdF9z cGVjCi0rCi0rIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4g ZXhlY3V0YWJsZS4KLStoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbgotKwotKyMgVGhl IGRpcmVjdG9yaWVzIHNlYXJjaGVkIGJ5IHRoaXMgY29tcGlsZXIgd2hlbiBjcmVhdGluZyBhIHNo YXJlZCBsaWJyYXJ5LgotK2NvbXBpbGVyX2xpYl9zZWFyY2hfZGlycz0kbHRfY29tcGlsZXJfbGli X3NlYXJjaF9kaXJzCi0rCi0rIyBEZXBlbmRlbmNpZXMgdG8gcGxhY2UgYmVmb3JlIGFuZCBhZnRl ciB0aGUgb2JqZWN0cyBiZWluZyBsaW5rZWQgdG8KLSsjIGNyZWF0ZSBhIHNoYXJlZCBsaWJyYXJ5 LgotK3ByZWRlcF9vYmplY3RzPSRsdF9wcmVkZXBfb2JqZWN0cwotK3Bvc3RkZXBfb2JqZWN0cz0k bHRfcG9zdGRlcF9vYmplY3RzCi0rcHJlZGVwcz0kbHRfcHJlZGVwcwotK3Bvc3RkZXBzPSRsdF9w b3N0ZGVwcwotKwotKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGggdXNlZCBpbnRlcm5hbGx5IGJ5 IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKLSsjIGEgc2hhcmVkIGxpYnJhcnkuCi0rY29tcGls ZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9jb21waWxlcl9saWJfc2VhcmNoX3BhdGgKLSsKLSsjICMj IyBFTkQgTElCVE9PTCBDT05GSUcKLSsKLStfTFRfRU9GCi0rCi0rICBjYXNlICRob3N0X29zIGlu Ci0rICBhaXgzKikKLSsgICAgY2F0IDw8XF9MVF9FT0YgPj4gIiRjZmdmaWxlIgotKyMgQUlYIHNv bWV0aW1lcyBoYXMgcHJvYmxlbXMgd2l0aCB0aGUgR0NDIGNvbGxlY3QyIHByb2dyYW0uICBGb3Ig c29tZQotKyMgcmVhc29uLCBpZiB3ZSBzZXQgdGhlIENPTExFQ1RfTkFNRVMgZW52aXJvbm1lbnQg dmFyaWFibGUsIHRoZSBwcm9ibGVtcwotKyMgdmFuaXNoIGluIGEgcHVmZiBvZiBzbW9rZS4KLStp ZiB0ZXN0ICJYJHtDT0xMRUNUX05BTUVTK3NldH0iICE9IFhzZXQ7IHRoZW4KLSsgIENPTExFQ1Rf TkFNRVM9Ci0rICBleHBvcnQgQ09MTEVDVF9OQU1FUwotK2ZpCi0rX0xUX0VPRgotKyAgICA7Owot KyAgZXNhYwotKwotKwotK2x0bWFpbj0iJGFjX2F1eF9kaXIvbHRtYWluLnNoIgotKwotKwotKyAg IyBXZSB1c2Ugc2VkIGluc3RlYWQgb2YgY2F0IGJlY2F1c2UgYmFzaCBvbiBESkdQUCBnZXRzIGNv bmZ1c2VkIGlmCi0rICAjIGlmIGZpbmRzIG1peGVkIENSL0xGIGFuZCBMRi1vbmx5IGxpbmVzLiAg U2luY2Ugc2VkIG9wZXJhdGVzIGluCi0rICAjIHRleHQgbW9kZSwgaXQgcHJvcGVybHkgY29udmVy dHMgbGluZXMgdG8gQ1IvTEYuICBUaGlzIGJhc2ggcHJvYmxlbQotKyAgIyBpcyByZXBvcnRlZGx5 IGZpeGVkLCBidXQgd2h5IG5vdCBydW4gb24gb2xkIHZlcnNpb25zIHRvbz8KLSsgIHNlZCAnJHEn ICIkbHRtYWluIiA+PiAiJGNmZ2ZpbGUiIFwKLSsgICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiOyBl eGl0IDEpCi0rCi0rICBpZiB0ZXN0IHgiJHhzaV9zaGVsbCIgPSB4eWVzOyB0aGVuCi0rICBzZWQg LWUgJy9eZnVuY19kaXJuYW1lICgpJC8sL159ICMgZnVuY19kaXJuYW1lIC9jXAotK2Z1bmNfZGly bmFtZSAoKVwKLSt7XAotK1wgICAgY2FzZSAkezF9IGluXAotK1wgICAgICAqLyopIGZ1bmNfZGly bmFtZV9yZXN1bHQ9IiR7MSUvKn0kezJ9IiA7O1wKLStcICAgICAgKiAgKSBmdW5jX2Rpcm5hbWVf cmVzdWx0PSIkezN9IiA7O1wKLStcICAgIGVzYWNcCi0rfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNf ZGlybmFtZSBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBcCi0rICAm JiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsgICAgfHwgKHJtIC1mICIkY2Zn ZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUu dG1wIikKLSt0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgotKwot KwotKyAgc2VkIC1lICcvXmZ1bmNfYmFzZW5hbWUgKCkkLywvXn0gIyBmdW5jX2Jhc2VuYW1lIC9j XAotK2Z1bmNfYmFzZW5hbWUgKClcCi0re1wKLStcICAgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIk ezEjIyovfSJcCi0rfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfYmFzZW5hbWUgaW1wbGVtZW50YXRp b24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAotKyAgJiYgbXYgLWYgIiRjZmdmaWxlLnRt cCIgIiRjZmdmaWxlIiBcCi0rICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmls ZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCi0rdGVzdCAwIC1lcSAk PyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKLSsKLSsKLSsgIHNlZCAtZSAnL15mdW5j X2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpJC8sL159ICMgZnVuY19kaXJuYW1lX2FuZF9iYXNlbmFt ZSAvY1wKLStmdW5jX2Rpcm5hbWVfYW5kX2Jhc2VuYW1lICgpXAotK3tcCi0rXCAgICBjYXNlICR7 MX0gaW5cCi0rXCAgICAgICovKikgZnVuY19kaXJuYW1lX3Jlc3VsdD0iJHsxJS8qfSR7Mn0iIDs7 XAotK1wgICAgICAqICApIGZ1bmNfZGlybmFtZV9yZXN1bHQ9IiR7M30iIDs7XAotK1wgICAgZXNh Y1wKLStcICAgIGZ1bmNfYmFzZW5hbWVfcmVzdWx0PSIkezEjIyovfSJcCi0rfSAjIEV4dGVuZGVk LXNoZWxsIGZ1bmNfZGlybmFtZV9hbmRfYmFzZW5hbWUgaW1wbGVtZW50YXRpb24nICIkY2ZnZmls ZSIgPiAkY2ZnZmlsZS50bXAgXAotKyAgJiYgbXYgLWYgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxl IiBcCi0rICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNwICIkY2ZnZmlsZS50bXAiICIkY2Zn ZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCi0rdGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVu Y3Rpb25fcmVwbGFjZV9mYWlsPToKLSsKLSsKLSsgIHNlZCAtZSAnL15mdW5jX3N0cmlwbmFtZSAo KSQvLC9efSAjIGZ1bmNfc3RyaXBuYW1lIC9jXAotK2Z1bmNfc3RyaXBuYW1lICgpXAotK3tcCi0r XCAgICAjIHBka3NoIDUuMi4xNCBkb2VzIG5vdCBkbyAke1glJFl9IGNvcnJlY3RseSBpZiBib3Ro IFggYW5kIFkgYXJlXAotK1wgICAgIyBwb3NpdGlvbmFsIHBhcmFtZXRlcnMsIHNvIGFzc2lnbiBv bmUgdG8gb3JkaW5hcnkgcGFyYW1ldGVyIGZpcnN0LlwKLStcICAgIGZ1bmNfc3RyaXBuYW1lX3Jl c3VsdD0kezN9XAotK1wgICAgZnVuY19zdHJpcG5hbWVfcmVzdWx0PSR7ZnVuY19zdHJpcG5hbWVf cmVzdWx0IyIkezF9In1cCi0rXCAgICBmdW5jX3N0cmlwbmFtZV9yZXN1bHQ9JHtmdW5jX3N0cmlw bmFtZV9yZXN1bHQlIiR7Mn0ifVwKLSt9ICMgRXh0ZW5kZWQtc2hlbGwgZnVuY19zdHJpcG5hbWUg aW1wbGVtZW50YXRpb24nICIkY2ZnZmlsZSIgPiAkY2ZnZmlsZS50bXAgXAotKyAgJiYgbXYgLWYg IiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiBcCi0rICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYm IGNwICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCi0r dGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKLSsKLSsKLSsgIHNl ZCAtZSAnL15mdW5jX3NwbGl0X2xvbmdfb3B0ICgpJC8sL159ICMgZnVuY19zcGxpdF9sb25nX29w dCAvY1wKLStmdW5jX3NwbGl0X2xvbmdfb3B0ICgpXAotK3tcCi0rXCAgICBmdW5jX3NwbGl0X2xv bmdfb3B0X25hbWU9JHsxJSU9Kn1cCi0rXCAgICBmdW5jX3NwbGl0X2xvbmdfb3B0X2FyZz0kezEj Kj19XAotK30gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX3NwbGl0X2xvbmdfb3B0IGltcGxlbWVudGF0 aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2ZpbGUudG1wIFwKLSsgICYmIG12IC1mICIkY2ZnZmlsZS50 bXAiICIkY2ZnZmlsZSIgXAotKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2Zp bGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQotK3Rlc3QgMCAtZXEg JD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06Ci0rCi0rCi0rICBzZWQgLWUgJy9eZnVu Y19zcGxpdF9zaG9ydF9vcHQgKCkkLywvXn0gIyBmdW5jX3NwbGl0X3Nob3J0X29wdCAvY1wKLStm dW5jX3NwbGl0X3Nob3J0X29wdCAoKVwKLSt7XAotK1wgICAgZnVuY19zcGxpdF9zaG9ydF9vcHRf YXJnPSR7MSM/P31cCi0rXCAgICBmdW5jX3NwbGl0X3Nob3J0X29wdF9uYW1lPSR7MSUiJGZ1bmNf c3BsaXRfc2hvcnRfb3B0X2FyZyJ9XAotK30gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX3NwbGl0X3No b3J0X29wdCBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBcCi0rICAm JiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsgICAgfHwgKHJtIC1mICIkY2Zn ZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUu dG1wIikKLSt0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgotKwot KwotKyAgc2VkIC1lICcvXmZ1bmNfbG8ybyAoKSQvLC9efSAjIGZ1bmNfbG8ybyAvY1wKLStmdW5j X2xvMm8gKClcCi0re1wKLStcICAgIGNhc2UgJHsxfSBpblwKLStcICAgICAgKi5sbykgZnVuY19s bzJvX3Jlc3VsdD0kezElLmxvfS4ke29iamV4dH0gOztcCi0rXCAgICAgICopICAgIGZ1bmNfbG8y b19yZXN1bHQ9JHsxfSA7O1wKLStcICAgIGVzYWNcCi0rfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNf bG8ybyBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBcCi0rICAmJiBt diAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsgICAgfHwgKHJtIC1mICIkY2ZnZmls ZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1w IikKLSt0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgotKwotKwot KyAgc2VkIC1lICcvXmZ1bmNfeGZvcm0gKCkkLywvXn0gIyBmdW5jX3hmb3JtIC9jXAotK2Z1bmNf eGZvcm0gKClcCi0re1wKLSsgICAgZnVuY194Zm9ybV9yZXN1bHQ9JHsxJS4qfS5sb1wKLSt9ICMg RXh0ZW5kZWQtc2hlbGwgZnVuY194Zm9ybSBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRj ZmdmaWxlLnRtcCBcCi0rICAmJiBtdiAtZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsg ICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAm JiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKLSt0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9y ZXBsYWNlX2ZhaWw9OgotKwotKwotKyAgc2VkIC1lICcvXmZ1bmNfYXJpdGggKCkkLywvXn0gIyBm dW5jX2FyaXRoIC9jXAotK2Z1bmNfYXJpdGggKClcCi0re1wKLSsgICAgZnVuY19hcml0aF9yZXN1 bHQ9JCgoICQqICkpXAotK30gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX2FyaXRoIGltcGxlbWVudGF0 aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2ZpbGUudG1wIFwKLSsgICYmIG12IC1mICIkY2ZnZmlsZS50 bXAiICIkY2ZnZmlsZSIgXAotKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAiJGNmZ2Zp bGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQotK3Rlc3QgMCAtZXEg JD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06Ci0rCi0rCi0rICBzZWQgLWUgJy9eZnVu Y19sZW4gKCkkLywvXn0gIyBmdW5jX2xlbiAvY1wKLStmdW5jX2xlbiAoKVwKLSt7XAotKyAgICBm dW5jX2xlbl9yZXN1bHQ9JHsjMX1cCi0rfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfbGVuIGltcGxl bWVudGF0aW9uJyAiJGNmZ2ZpbGUiID4gJGNmZ2ZpbGUudG1wIFwKLSsgICYmIG12IC1mICIkY2Zn ZmlsZS50bXAiICIkY2ZnZmlsZSIgXAotKyAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBjcCAi JGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQotK3Rlc3Qg MCAtZXEgJD8gfHwgX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbD06Ci0rCi0rZmkKLSsKLStpZiB0 ZXN0IHgiJGx0X3NoZWxsX2FwcGVuZCIgPSB4eWVzOyB0aGVuCi0rICBzZWQgLWUgJy9eZnVuY19h cHBlbmQgKCkkLywvXn0gIyBmdW5jX2FwcGVuZCAvY1wKLStmdW5jX2FwcGVuZCAoKVwKLSt7XAot KyAgICBldmFsICIkezF9Kz1cXCR7Mn0iXAotK30gIyBFeHRlbmRlZC1zaGVsbCBmdW5jX2FwcGVu ZCBpbXBsZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBcCi0rICAmJiBtdiAt ZiAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIg JiYgY3AgIiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikK LSt0ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgotKwotKwotKyAg c2VkIC1lICcvXmZ1bmNfYXBwZW5kX3F1b3RlZCAoKSQvLC9efSAjIGZ1bmNfYXBwZW5kX3F1b3Rl ZCAvY1wKLStmdW5jX2FwcGVuZF9xdW90ZWQgKClcCi0re1wKLStcICAgIGZ1bmNfcXVvdGVfZm9y X2V2YWwgIiR7Mn0iXAotK1wgICAgZXZhbCAiJHsxfSs9XFxcXCBcXCRmdW5jX3F1b3RlX2Zvcl9l dmFsX3Jlc3VsdCJcCi0rfSAjIEV4dGVuZGVkLXNoZWxsIGZ1bmNfYXBwZW5kX3F1b3RlZCBpbXBs ZW1lbnRhdGlvbicgIiRjZmdmaWxlIiA+ICRjZmdmaWxlLnRtcCBcCi0rICAmJiBtdiAtZiAiJGNm Z2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsgICAgfHwgKHJtIC1mICIkY2ZnZmlsZSIgJiYgY3Ag IiRjZmdmaWxlLnRtcCIgIiRjZmdmaWxlIiAmJiBybSAtZiAiJGNmZ2ZpbGUudG1wIikKLSt0ZXN0 IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgotKwotKwotKyAgIyBTYXZl IGEgYGZ1bmNfYXBwZW5kJyBmdW5jdGlvbiBjYWxsIHdoZXJlIHBvc3NpYmxlIGJ5IGRpcmVjdCB1 c2Ugb2YgJys9JwotKyAgc2VkIC1lICdzJWZ1bmNfYXBwZW5kIFwoW2EtekEtWl9dXHsxLFx9XCkg IiVcMSs9IiVnJyAkY2ZnZmlsZSA+ICRjZmdmaWxlLnRtcCBcCi0rICAgICYmIG12IC1mICIkY2Zn ZmlsZS50bXAiICIkY2ZnZmlsZSIgXAotKyAgICAgIHx8IChybSAtZiAiJGNmZ2ZpbGUiICYmIGNw ICIkY2ZnZmlsZS50bXAiICIkY2ZnZmlsZSIgJiYgcm0gLWYgIiRjZmdmaWxlLnRtcCIpCi0rICB0 ZXN0IDAgLWVxICQ/IHx8IF9sdF9mdW5jdGlvbl9yZXBsYWNlX2ZhaWw9OgotK2Vsc2UKLSsgICMg U2F2ZSBhIGBmdW5jX2FwcGVuZCcgZnVuY3Rpb24gY2FsbCBldmVuIHdoZW4gJys9JyBpcyBub3Qg YXZhaWxhYmxlCi0rICBzZWQgLWUgJ3MlZnVuY19hcHBlbmQgXChbYS16QS1aX11cezEsXH1cKSAi JVwxPSIkXDElZycgJGNmZ2ZpbGUgPiAkY2ZnZmlsZS50bXAgXAotKyAgICAmJiBtdiAtZiAiJGNm Z2ZpbGUudG1wIiAiJGNmZ2ZpbGUiIFwKLSsgICAgICB8fCAocm0gLWYgIiRjZmdmaWxlIiAmJiBj cCAiJGNmZ2ZpbGUudG1wIiAiJGNmZ2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZS50bXAiKQotKyAg dGVzdCAwIC1lcSAkPyB8fCBfbHRfZnVuY3Rpb25fcmVwbGFjZV9mYWlsPToKLStmaQotKwotK2lm IHRlc3QgeCIkX2x0X2Z1bmN0aW9uX3JlcGxhY2VfZmFpbCIgPSB4IjoiOyB0aGVuCi0rICB7ICRh c19lY2hvICIkYXNfbWU6JHthc19saW5lbm8tJExJTkVOT306IFdBUk5JTkc6IFVuYWJsZSB0byBz dWJzdGl0dXRlIGV4dGVuZGVkIHNoZWxsIGZ1bmN0aW9ucyBpbiAkb2ZpbGUiID4mNQotKyRhc19l Y2hvICIkYXNfbWU6IFdBUk5JTkc6IFVuYWJsZSB0byBzdWJzdGl0dXRlIGV4dGVuZGVkIHNoZWxs IGZ1bmN0aW9ucyBpbiAkb2ZpbGUiID4mMjt9Ci0rZmkKLSsKLSsKLSsgICBtdiAtZiAiJGNmZ2Zp bGUiICIkb2ZpbGUiIHx8Ci0rICAgIChybSAtZiAiJG9maWxlIiAmJiBjcCAiJGNmZ2ZpbGUiICIk b2ZpbGUiICYmIHJtIC1mICIkY2ZnZmlsZSIpCi0rICBjaG1vZCAreCAiJG9maWxlIgotKwotKwot KyAgICBjYXQgPDxfTFRfRU9GID4+ICIkb2ZpbGUiCi0rCi0rIyAjIyMgQkVHSU4gTElCVE9PTCBU QUcgQ09ORklHOiBDWFgKLSsKLSsjIFRoZSBsaW5rZXIgdXNlZCB0byBidWlsZCBsaWJyYXJpZXMu Ci0rTEQ9JGx0X0xEX0NYWAotKwotKyMgSG93IHRvIGNyZWF0ZSByZWxvYWRhYmxlIG9iamVjdCBm aWxlcy4KLStyZWxvYWRfZmxhZz0kbHRfcmVsb2FkX2ZsYWdfQ1hYCi0rcmVsb2FkX2NtZHM9JGx0 X3JlbG9hZF9jbWRzX0NYWAotKwotKyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhbiBvbGQtc3R5 bGUgYXJjaGl2ZS4KLStvbGRfYXJjaGl2ZV9jbWRzPSRsdF9vbGRfYXJjaGl2ZV9jbWRzX0NYWAot KwotKyMgQSBsYW5ndWFnZSBzcGVjaWZpYyBjb21waWxlci4KLStDQz0kbHRfY29tcGlsZXJfQ1hY Ci0rCi0rIyBJcyB0aGUgY29tcGlsZXIgdGhlIEdOVSBjb21waWxlcj8KLSt3aXRoX2djYz0kR0ND X0NYWAotKwotKyMgQ29tcGlsZXIgZmxhZyB0byB0dXJuIG9mZiBidWlsdGluIGZ1bmN0aW9ucy4K LStub19idWlsdGluX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfbm9fYnVpbHRpbl9mbGFnX0NY WAotKwotKyMgQWRkaXRpb25hbCBjb21waWxlciBmbGFncyBmb3IgYnVpbGRpbmcgbGlicmFyeSBv YmplY3RzLgotK3BpY19mbGFnPSRsdF9sdF9wcm9nX2NvbXBpbGVyX3BpY19DWFgKLSsKLSsjIEhv dyB0byBwYXNzIGEgbGlua2VyIGZsYWcgdGhyb3VnaCB0aGUgY29tcGlsZXIuCi0rd2w9JGx0X2x0 X3Byb2dfY29tcGlsZXJfd2xfQ1hYCi0rCi0rIyBDb21waWxlciBmbGFnIHRvIHByZXZlbnQgZHlu YW1pYyBsaW5raW5nLgotK2xpbmtfc3RhdGljX2ZsYWc9JGx0X2x0X3Byb2dfY29tcGlsZXJfc3Rh dGljX0NYWAotKwotKyMgRG9lcyBjb21waWxlciBzaW11bHRhbmVvdXNseSBzdXBwb3J0IC1jIGFu ZCAtbyBvcHRpb25zPwotK2NvbXBpbGVyX2Nfbz0kbHRfbHRfY3ZfcHJvZ19jb21waWxlcl9jX29f Q1hYCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBhZGQgLWxjIGZvciBidWlsZGluZyBzaGFyZWQg bGlicmFyaWVzLgotK2J1aWxkX2xpYnRvb2xfbmVlZF9sYz0kYXJjaGl2ZV9jbWRzX25lZWRfbGNf Q1hYCi0rCi0rIyBXaGV0aGVyIG9yIG5vdCB0byBkaXNhbGxvdyBzaGFyZWQgbGlicyB3aGVuIHJ1 bnRpbWUgbGlicyBhcmUgc3RhdGljLgotK2FsbG93X2xpYnRvb2xfbGlic193aXRoX3N0YXRpY19y dW50aW1lcz0kZW5hYmxlX3NoYXJlZF93aXRoX3N0YXRpY19ydW50aW1lc19DWFgKLSsKLSsjIENv bXBpbGVyIGZsYWcgdG8gYWxsb3cgcmVmbGV4aXZlIGRsb3BlbnMuCi0rZXhwb3J0X2R5bmFtaWNf ZmxhZ19zcGVjPSRsdF9leHBvcnRfZHluYW1pY19mbGFnX3NwZWNfQ1hYCi0rCi0rIyBDb21waWxl ciBmbGFnIHRvIGdlbmVyYXRlIHNoYXJlZCBvYmplY3RzIGRpcmVjdGx5IGZyb20gYXJjaGl2ZXMu Ci0rd2hvbGVfYXJjaGl2ZV9mbGFnX3NwZWM9JGx0X3dob2xlX2FyY2hpdmVfZmxhZ19zcGVjX0NY WAotKwotKyMgV2hldGhlciB0aGUgY29tcGlsZXIgY29wZXMgd2l0aCBwYXNzaW5nIG5vIG9iamVj dHMgZGlyZWN0bHkuCi0rY29tcGlsZXJfbmVlZHNfb2JqZWN0PSRsdF9jb21waWxlcl9uZWVkc19v YmplY3RfQ1hYCi0rCi0rIyBDcmVhdGUgYW4gb2xkLXN0eWxlIGFyY2hpdmUgZnJvbSBhIHNoYXJl ZCBhcmNoaXZlLgotK29sZF9hcmNoaXZlX2Zyb21fbmV3X2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zy b21fbmV3X2NtZHNfQ1hYCi0rCi0rIyBDcmVhdGUgYSB0ZW1wb3Jhcnkgb2xkLXN0eWxlIGFyY2hp dmUgdG8gbGluayBpbnN0ZWFkIG9mIGEgc2hhcmVkIGFyY2hpdmUuCi0rb2xkX2FyY2hpdmVfZnJv bV9leHBzeW1zX2NtZHM9JGx0X29sZF9hcmNoaXZlX2Zyb21fZXhwc3ltc19jbWRzX0NYWAotKwot KyMgQ29tbWFuZHMgdXNlZCB0byBidWlsZCBhIHNoYXJlZCBhcmNoaXZlLgotK2FyY2hpdmVfY21k cz0kbHRfYXJjaGl2ZV9jbWRzX0NYWAotK2FyY2hpdmVfZXhwc3ltX2NtZHM9JGx0X2FyY2hpdmVf ZXhwc3ltX2NtZHNfQ1hYCi0rCi0rIyBDb21tYW5kcyB1c2VkIHRvIGJ1aWxkIGEgbG9hZGFibGUg bW9kdWxlIGlmIGRpZmZlcmVudCBmcm9tIGJ1aWxkaW5nCi0rIyBhIHNoYXJlZCBhcmNoaXZlLgot K21vZHVsZV9jbWRzPSRsdF9tb2R1bGVfY21kc19DWFgKLSttb2R1bGVfZXhwc3ltX2NtZHM9JGx0 X21vZHVsZV9leHBzeW1fY21kc19DWFgKLSsKLSsjIFdoZXRoZXIgd2UgYXJlIGJ1aWxkaW5nIHdp dGggR05VIGxkIG9yIG5vdC4KLSt3aXRoX2dudV9sZD0kbHRfd2l0aF9nbnVfbGRfQ1hYCi0rCi0r IyBGbGFnIHRoYXQgYWxsb3dzIHNoYXJlZCBsaWJyYXJpZXMgd2l0aCB1bmRlZmluZWQgc3ltYm9s cyB0byBiZSBidWlsdC4KLSthbGxvd191bmRlZmluZWRfZmxhZz0kbHRfYWxsb3dfdW5kZWZpbmVk X2ZsYWdfQ1hYCi0rCi0rIyBGbGFnIHRoYXQgZW5mb3JjZXMgbm8gdW5kZWZpbmVkIHN5bWJvbHMu Ci0rbm9fdW5kZWZpbmVkX2ZsYWc9JGx0X25vX3VuZGVmaW5lZF9mbGFnX0NYWAotKwotKyMgRmxh ZyB0byBoYXJkY29kZSBcJGxpYmRpciBpbnRvIGEgYmluYXJ5IGR1cmluZyBsaW5raW5nLgotKyMg VGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBleGlzdAotK2hhcmRjb2Rl X2xpYmRpcl9mbGFnX3NwZWM9JGx0X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWNfQ1hYCi0rCi0r IyBJZiBsZCBpcyB1c2VkIHdoZW4gbGlua2luZywgZmxhZyB0byBoYXJkY29kZSBcJGxpYmRpciBp bnRvIGEgYmluYXJ5Ci0rIyBkdXJpbmcgbGlua2luZy4gIFRoaXMgbXVzdCB3b3JrIGV2ZW4gaWYg XCRsaWJkaXIgZG9lcyBub3QgZXhpc3QuCi0raGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZD0k bHRfaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlY19sZF9DWFgKLSsKLSsjIFdoZXRoZXIgd2UgbmVl ZCBhIHNpbmdsZSAiLXJwYXRoIiBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCi0raGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcj0kbHRfaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcl9DWFgK LSsKLSsjIFNldCB0byAieWVzIiBpZiB1c2luZyBESVIvbGliTkFNRVwke3NoYXJlZF9leHR9IGR1 cmluZyBsaW5raW5nIGhhcmRjb2RlcwotKyMgRElSIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnku Ci0raGFyZGNvZGVfZGlyZWN0PSRoYXJkY29kZV9kaXJlY3RfQ1hYCi0rCi0rIyBTZXQgdG8gInll cyIgaWYgdXNpbmcgRElSL2xpYk5BTUVcJHtzaGFyZWRfZXh0fSBkdXJpbmcgbGlua2luZyBoYXJk Y29kZXMKLSsjIERJUiBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5IGFuZCB0aGUgcmVzdWx0aW5n IGxpYnJhcnkgZGVwZW5kZW5jeSBpcwotKyMgImFic29sdXRlIixpLmUgaW1wb3NzaWJsZSB0byBj aGFuZ2UgYnkgc2V0dGluZyBcJHtzaGxpYnBhdGhfdmFyfSBpZiB0aGUKLSsjIGxpYnJhcnkgaXMg cmVsb2NhdGVkLgotK2hhcmRjb2RlX2RpcmVjdF9hYnNvbHV0ZT0kaGFyZGNvZGVfZGlyZWN0X2Fi c29sdXRlX0NYWAotKwotKyMgU2V0IHRvICJ5ZXMiIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1 cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIKLSsjIGludG8gdGhlIHJlc3VsdGluZyBiaW5hcnku Ci0raGFyZGNvZGVfbWludXNfTD0kaGFyZGNvZGVfbWludXNfTF9DWFgKLSsKLSsjIFNldCB0byAi eWVzIiBpZiB1c2luZyBTSExJQlBBVEhfVkFSPURJUiBkdXJpbmcgbGlua2luZyBoYXJkY29kZXMg RElSCi0rIyBpbnRvIHRoZSByZXN1bHRpbmcgYmluYXJ5LgotK2hhcmRjb2RlX3NobGlicGF0aF92 YXI9JGhhcmRjb2RlX3NobGlicGF0aF92YXJfQ1hYCi0rCi0rIyBTZXQgdG8gInllcyIgaWYgYnVp bGRpbmcgYSBzaGFyZWQgbGlicmFyeSBhdXRvbWF0aWNhbGx5IGhhcmRjb2RlcyBESVIKLSsjIGlu dG8gdGhlIGxpYnJhcnkgYW5kIGFsbCBzdWJzZXF1ZW50IGxpYnJhcmllcyBhbmQgZXhlY3V0YWJs ZXMgbGlua2VkCi0rIyBhZ2FpbnN0IGl0LgotK2hhcmRjb2RlX2F1dG9tYXRpYz0kaGFyZGNvZGVf YXV0b21hdGljX0NYWAotKwotKyMgU2V0IHRvIHllcyBpZiBsaW5rZXIgYWRkcyBydW50aW1lIHBh dGhzIG9mIGRlcGVuZGVudCBsaWJyYXJpZXMKLSsjIHRvIHJ1bnRpbWUgcGF0aCBsaXN0LgotK2lu aGVyaXRfcnBhdGg9JGluaGVyaXRfcnBhdGhfQ1hYCi0rCi0rIyBXaGV0aGVyIGxpYnRvb2wgbXVz dCBsaW5rIGEgcHJvZ3JhbSBhZ2FpbnN0IGFsbCBpdHMgZGVwZW5kZW5jeSBsaWJyYXJpZXMuCi0r bGlua19hbGxfZGVwbGlicz0kbGlua19hbGxfZGVwbGlic19DWFgKLSsKLSsjIFNldCB0byAieWVz IiBpZiBleHBvcnRlZCBzeW1ib2xzIGFyZSByZXF1aXJlZC4KLSthbHdheXNfZXhwb3J0X3N5bWJv bHM9JGFsd2F5c19leHBvcnRfc3ltYm9sc19DWFgKLSsKLSsjIFRoZSBjb21tYW5kcyB0byBsaXN0 IGV4cG9ydGVkIHN5bWJvbHMuCi0rZXhwb3J0X3N5bWJvbHNfY21kcz0kbHRfZXhwb3J0X3N5bWJv bHNfY21kc19DWFgKLSsKLSsjIFN5bWJvbHMgdGhhdCBzaG91bGQgbm90IGJlIGxpc3RlZCBpbiB0 aGUgcHJlbG9hZGVkIHN5bWJvbHMuCi0rZXhjbHVkZV9leHBzeW1zPSRsdF9leGNsdWRlX2V4cHN5 bXNfQ1hYCi0rCi0rIyBTeW1ib2xzIHRoYXQgbXVzdCBhbHdheXMgYmUgZXhwb3J0ZWQuCi0raW5j bHVkZV9leHBzeW1zPSRsdF9pbmNsdWRlX2V4cHN5bXNfQ1hYCi0rCi0rIyBDb21tYW5kcyBuZWNl c3NhcnkgZm9yIGxpbmtpbmcgcHJvZ3JhbXMgKGFnYWluc3QgbGlicmFyaWVzKSB3aXRoIHRlbXBs YXRlcy4KLStwcmVsaW5rX2NtZHM9JGx0X3ByZWxpbmtfY21kc19DWFgKLSsKLSsjIENvbW1hbmRz IG5lY2Vzc2FyeSBmb3IgZmluaXNoaW5nIGxpbmtpbmcgcHJvZ3JhbXMuCi0rcG9zdGxpbmtfY21k cz0kbHRfcG9zdGxpbmtfY21kc19DWFgKLSsKLSsjIFNwZWNpZnkgZmlsZW5hbWUgY29udGFpbmlu ZyBpbnB1dCBmaWxlcy4KLStmaWxlX2xpc3Rfc3BlYz0kbHRfZmlsZV9saXN0X3NwZWNfQ1hYCi0r Ci0rIyBIb3cgdG8gaGFyZGNvZGUgYSBzaGFyZWQgbGlicmFyeSBwYXRoIGludG8gYW4gZXhlY3V0 YWJsZS4KLStoYXJkY29kZV9hY3Rpb249JGhhcmRjb2RlX2FjdGlvbl9DWFgKLSsKLSsjIFRoZSBk aXJlY3RvcmllcyBzZWFyY2hlZCBieSB0aGlzIGNvbXBpbGVyIHdoZW4gY3JlYXRpbmcgYSBzaGFy ZWQgbGlicmFyeS4KLStjb21waWxlcl9saWJfc2VhcmNoX2RpcnM9JGx0X2NvbXBpbGVyX2xpYl9z ZWFyY2hfZGlyc19DWFgKLSsKLSsjIERlcGVuZGVuY2llcyB0byBwbGFjZSBiZWZvcmUgYW5kIGFm dGVyIHRoZSBvYmplY3RzIGJlaW5nIGxpbmtlZCB0bwotKyMgY3JlYXRlIGEgc2hhcmVkIGxpYnJh cnkuCi0rcHJlZGVwX29iamVjdHM9JGx0X3ByZWRlcF9vYmplY3RzX0NYWAotK3Bvc3RkZXBfb2Jq ZWN0cz0kbHRfcG9zdGRlcF9vYmplY3RzX0NYWAotK3ByZWRlcHM9JGx0X3ByZWRlcHNfQ1hYCi0r cG9zdGRlcHM9JGx0X3Bvc3RkZXBzX0NYWAotKwotKyMgVGhlIGxpYnJhcnkgc2VhcmNoIHBhdGgg dXNlZCBpbnRlcm5hbGx5IGJ5IHRoZSBjb21waWxlciB3aGVuIGxpbmtpbmcKLSsjIGEgc2hhcmVk IGxpYnJhcnkuCi0rY29tcGlsZXJfbGliX3NlYXJjaF9wYXRoPSRsdF9jb21waWxlcl9saWJfc2Vh cmNoX3BhdGhfQ1hYCi0rCi0rIyAjIyMgRU5EIExJQlRPT0wgVEFHIENPTkZJRzogQ1hYCi0rX0xU X0VPRgotKwotKyA7OwotKwotKyAgZXNhYwotK2RvbmUgIyBmb3IgYWNfdGFnCi0rCi0rCi0rYXNf Zm5fZXhpdCAwCi0rX0FDRU9GCi0rYWNfY2xlYW5fZmlsZXM9JGFjX2NsZWFuX2ZpbGVzX3NhdmUK LSsKLSt0ZXN0ICRhY193cml0ZV9mYWlsID0gMCB8fAotKyAgYXNfZm5fZXJyb3IgJD8gIndyaXRl IGZhaWx1cmUgY3JlYXRpbmcgJENPTkZJR19TVEFUVVMiICIkTElORU5PIiA1Ci0rCi0rCi0rIyBj b25maWd1cmUgaXMgd3JpdGluZyB0byBjb25maWcubG9nLCBhbmQgdGhlbiBjYWxscyBjb25maWcu c3RhdHVzLgotKyMgY29uZmlnLnN0YXR1cyBkb2VzIGl0cyBvd24gcmVkaXJlY3Rpb24sIGFwcGVu ZGluZyB0byBjb25maWcubG9nLgotKyMgVW5mb3J0dW5hdGVseSwgb24gRE9TIHRoaXMgZmFpbHMs IGFzIGNvbmZpZy5sb2cgaXMgc3RpbGwga2VwdCBvcGVuCi0rIyBieSBjb25maWd1cmUsIHNvIGNv bmZpZy5zdGF0dXMgd29uJ3QgYmUgYWJsZSB0byB3cml0ZSB0byBpdDsgaXRzCi0rIyBvdXRwdXQg aXMgc2ltcGx5IGRpc2NhcmRlZC4gIFNvIHdlIGV4ZWMgdGhlIEZEIHRvIC9kZXYvbnVsbCwKLSsj IGVmZmVjdGl2ZWx5IGNsb3NpbmcgY29uZmlnLmxvZywgc28gaXQgY2FuIGJlIHByb3Blcmx5IChy ZSlvcGVuZWQgYW5kCi0rIyBhcHBlbmRlZCB0byBieSBjb25maWcuc3RhdHVzLiAgV2hlbiBjb21p bmcgYmFjayB0byBjb25maWd1cmUsIHdlCi0rIyBuZWVkIHRvIG1ha2UgdGhlIEZEIGF2YWlsYWJs ZSBhZ2Fpbi4KLStpZiB0ZXN0ICIkbm9fY3JlYXRlIiAhPSB5ZXM7IHRoZW4KLSsgIGFjX2NzX3N1 Y2Nlc3M9OgotKyAgYWNfY29uZmlnX3N0YXR1c19hcmdzPQotKyAgdGVzdCAiJHNpbGVudCIgPSB5 ZXMgJiYKLSsgICAgYWNfY29uZmlnX3N0YXR1c19hcmdzPSIkYWNfY29uZmlnX3N0YXR1c19hcmdz IC0tcXVpZXQiCi0rICBleGVjIDU+L2Rldi9udWxsCi0rICAkU0hFTEwgJENPTkZJR19TVEFUVVMg JGFjX2NvbmZpZ19zdGF0dXNfYXJncyB8fCBhY19jc19zdWNjZXNzPWZhbHNlCi0rICBleGVjIDU+ PmNvbmZpZy5sb2cKLSsgICMgVXNlIHx8LCBub3QgJiYsIHRvIGF2b2lkIGV4aXRpbmcgZnJvbSB0 aGUgaWYgd2l0aCAkPyA9IDEsIHdoaWNoCi0rICAjIHdvdWxkIG1ha2UgY29uZmlndXJlIGZhaWwg aWYgdGhpcyBpcyB0aGUgbGFzdCBpbnN0cnVjdGlvbi4KLSsgICRhY19jc19zdWNjZXNzIHx8IGFz X2ZuX2V4aXQgMQotIGZpCi0raWYgdGVzdCAtbiAiJGFjX3VucmVjb2duaXplZF9vcHRzIiAmJiB0 ZXN0ICIkZW5hYmxlX29wdGlvbl9jaGVja2luZyIgIT0gbm87IHRoZW4KLSsgIHsgJGFzX2VjaG8g IiRhc19tZToke2FzX2xpbmVuby0kTElORU5PfTogV0FSTklORzogdW5yZWNvZ25pemVkIG9wdGlv bnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiY1Ci0rJGFzX2VjaG8gIiRhc19tZTogV0FSTklO RzogdW5yZWNvZ25pemVkIG9wdGlvbnM6ICRhY191bnJlY29nbml6ZWRfb3B0cyIgPiYyO30KLStm aQotKwotKwotK2VjaG8gIgotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyRQQUNLQUdFLSRWRVJT SU9OIGxpYnJhcnkgY29uZmlndXJhdGlvbjoKLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLSsKLStE aXJlY3RvcmllczoKLSsgIC0gcHJlZml4IC4uLi4uLi4uLi4uLi4uLiA6ICR7cHJlZml4fQotKyAg LSBleGVjX3ByZWZpeCAuLi4uLi4uLi4uIDogJHtleGVjX3ByZWZpeH0KLSsgIC0gaW5jbHVkZWRp ciAuLi4uLi4uLi4uLiA6ICR7aW5jbHVkZWRpcn0KLSsgIC0gbGliZGlyIC4uLi4uLi4uLi4uLi4u LiA6ICR7bGliZGlyfQotKyAgLSBkb2NkaXIgLi4uLi4uLi4uLi4uLi4uIDogJHtkb2NkaXJ9Ci0r ICAtIG1hbmRpciAuLi4uLi4uLi4uLi4uLi4gOiAke21hbmRpcn0KLSsgIC0gaW5mb2RpciAuLi4u Li4uLi4uLi4uLiA6ICR7aW5mb2Rpcn0KLSsKLStTd2l0Y2hlczoKLSsgIC0gZXhjZXB0aW9ucyAu Li4uLi4uLi4uLiA6ICR7ZW5hYmxlX2V4Y2VwdGlvbnN9Ci0rICAtIGluZm8tZG9jIC4uLi4uLi4u Li4uLi4gOiAke2VuYWJsZV9pbmZvX2RvY30KLSsgIC0gaHRtbC1kb2MgLi4uLi4uLi4uLi4uLiA6 ICR7ZW5hYmxlX2h0bWxfZG9jfQotKyAgLSBzaGFyZWQgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFi bGVfc2hhcmVkfQotKyAgLSBzdGF0aWMgLi4uLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfc3RhdGlj fQotKwotK0RvY3VtZW50YXRpb24gdG9vbHM6Ci0rICAtIHRleGluZm8gLi4uLi4uLi4uLi4uLi4g OiAke3RleGluZm9fb2t9Ci0rICAtIGRveHlnZW4gLi4uLi4uLi4uLi4uLi4gOiAke2RveHlnZW5f b2t9Ci0rICAtIGxhdGV4IC4uLi4uLi4uLi4uLi4uLi4gOiAke2xhdGV4X29rfQotKyAgLSBkdmlw cyAuLi4uLi4uLi4uLi4uLi4uIDogJHtkdmlwc19va30KLSsgIC0gZ2hvc3RzY3JpcHQgLi4uLi4u Li4uLiA6ICR7Z3Nfb2t9Ci0rCi0rVGVzdGluZyB0b29sczoKLSsgIC0gZGlmZiAuLi4uLi4uLi4u Li4uLi4uLiA6ICR7ZGlmZl9va30KLSsgIC0gc2VkIC4uLi4uLi4uLi4uLi4uLi4uLiA6ICR7c2Vk X29rfQotKwotK0NvbXBpbGVyL2xpbmtlciBmbGFncy9saWJzL2RlZnM6Ci0rICAtIENYWCAuLi4u Li4uLi4uLi4uLi4uLi4gOiAke0NYWH0KLSsgIC0gQ1hYRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7 Q1hYRkxBR1N9Ci0rICAtIENQUEZMQUdTIC4uLi4uLi4uLi4uLi4gOiAke0NQUEZMQUdTfQotKyAg LSBMREZMQUdTIC4uLi4uLi4uLi4uLi4uIDogJHtMREZMQUdTfQotKyAgLSBMSUJTIC4uLi4uLi4u Li4uLi4uLi4uIDogJHtMSUJTfQotKwotK0J1cnJpZWQgaGVhZGVyIGZpbGVzOgotKyAgLSBTT0NJ X0hFQURFUlNfQlVSSUVEIC4uLi4uLi4gOiAke2VuYWJsZV9idXJyaWVkX2hlYWRlcnN9Ci0rICAt IE1ZU1FMX0hFQURFUlNfQlVSSUVEIC4uLi4uLiA6ICR7ZW5hYmxlX215c3FsX2J1cnJpZWRfaGVh ZGVyc30KLSsgIC0gUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCAuIDogJHtlbmFibGVfcG9zdGdy ZXNxbF9idXJyaWVkX2hlYWRlcnN9Ci0rCi0rRXh0ZXJuYWwgbGlicmFyaWVzOgotKyAgLSBCb29z dCAuLi4uLi4uLi4uLi4uLi4uIDoKLSsgICAgbyBCT09TVF9WRVJTSU9OIC4uLi4uLiA6ICR7Qk9P U1RfVkVSU0lPTn0KLSsgICAgbyBCT09TVF9DRkxBR1MgLi4uLi4uLiA6ICR7Qk9PU1RfQ0ZMQUdT fQotKyAgICBvIEJPT1NUX0xJQlMgLi4uLi4uLi4uIDogJHtCT09TVF9MSUJTfQotKyAgICBvIEJP T1NUX0RUX0xJQiAuLi4uLi4uIDogJHtCT09TVF9EQVRFX1RJTUVfTElCfQotKyAgICBvIEJPT1NU X1BPX0xJQiAuLi4uLi4uIDogJHtCT09TVF9QUk9HUkFNX09QVElPTlNfTElCfQotKwotKyAgLSBN eVNRTCBzdXBwb3J0IC4uLi4uLi4uIDogJHtlbmFibGVfYmFja2VuZF9teXNxbH0KLSsgICAgbyBN WVNRTF9WRVJTSU9OIC4uLi4uLiA6ICR7TVlTUUxfVkVSU0lPTn0KLSsgICAgbyBNWVNRTF9DRkxB R1MgLi4uLi4uLiA6ICR7TVlTUUxfQ0ZMQUdTfQotKyAgICBvIE1ZU1FMX0xJQlMgLi4uLi4uLi4u IDogJHtNWVNRTF9MSUJTfQotKwotKyAgLSBQb3N0R3JlU1FMIHN1cHBvcnQgLi4uIDogJHtlbmFi bGVfYmFja2VuZF9wb3N0Z3Jlc3FsfQotKyAgICBvIFBPU1RHUkVTUUxfVkVSU0lPTiAuIDogJHtQ T1NUR1JFU1FMX1ZFUlNJT059Ci0rICAgIG8gUE9TVEdSRVNRTF9DRkxBR1MgLi4gOiAke1BPU1RH UkVTUUxfQ0ZMQUdTfQotKyAgICBvIFBPU1RHUkVTUUxfTERGTEFHUyAuIDogJHtQT1NUR1JFU1FM X0xERkxBR1N9Ci0rCi0rICAtIE9yYWNsZSBzdXBwb3J0IC4uLi4uLi4gOiAke2VuYWJsZV9iYWNr ZW5kX29yYWNsZX0KLSsgICAgbyBPUkFDTEVfVkVSU0lPTiAuLi4uLiA6ICR7T1JBQ0xFX09DSV9W RVJTSU9OfQotKyAgICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4uIDogJHtPUkFDTEVfT0NJX0NGTEFH U30KLSsgICAgbyBPUkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7T1JBQ0xFX09DSV9MREZMQUdTfQot KwotKyAgLSBDUFBVbml0IC4uLi4uLi4uLi4uLi4uIDoKLSsgICAgbyBDUFBVTklUX1ZFUlNJT04g Li4uLiA6ICR7Q1BQVU5JVF9WRVJTSU9OfQotKyAgICBvIENQUFVOSVRfQ0ZMQUdTIC4uLi4uIDog JHtDUFBVTklUX0NGTEFHU30KLSsgICAgbyBDUFBVTklUX0xJQlMgLi4uLi4uLiA6ICR7Q1BQVU5J VF9MSUJTfQotIAotLWVjaG8gJycKLS1jZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgcGFy c2UtcGFyYW1ldGVycy50Y2wKLS0KLS1lY2hvICcnCi0tZWNobyAnQ29uZmlndXJlIGRvbmUuJwot LWVjaG8gJ1llcywgaXQgd2FzIHNob3J0LicKLS1lY2hvICcnCi0tZWNobyAnWW91IGNhbiBub3cg cnVuIG1ha2UuJwotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotK05vdyB0eXBlICdtYWtlICYmIG1h a2UgaW5zdGFsbCcgdG8gYnVpbGQgYW5kIGluc3RhbGwgJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFy eQotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKyIKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9jb25maWd1cmUuYWMgc29jaS0zLjAuMF90cmVwMzAwL2NvbmZpZ3VyZS5hYwotLS0tIHNvY2kt My4wLjBfNC1wYWNrL2NvbmZpZ3VyZS5hYwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCAr MDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9jb25maWd1cmUuYWMJMjAxMS0wNy0wMyAxODoy NDo1MC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMzk4IEBACi0rIyBQcm9jZXNzIHRoaXMg ZmlsZSB3aXRoIGF1dG9jb25mIHRvIHByb2R1Y2UgYSBjb25maWd1cmUgc2NyaXB0Ci0rIy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KLStBQ19QUkVSRVEoMi41OSkKLStBQ19DT1BZUklHSFQoW0NvcHlyaWdodCAoQykgMjAw NC0yMDExIE1hY2llaiBTb2JjemFrIDxtc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXQ+XSkK LStBQ19JTklUKFtTT0NJXSxbMy4wLjBdLFttc29iY3pha0B1c2Vycy5zb3VyY2Vmb3JnZS5uZXRd LFtzb2NpXSkKLStBQ19DT05GSUdfSEVBREVSKFtzb2NpL2NvbmZpZy5oXSkKLStBQ19DT05GSUdf U1JDRElSKFtzb2NpL2NvcmUvZXJyb3IuY3BwXSkKLStBQ19DT05GSUdfQVVYX0RJUihbY29uZmln XSkKLStBTV9JTklUX0FVVE9NQUtFCi0rQU1fUEFUSF9DUFBVTklUKDEuMTApCi0rQU1fQ09ORElU SU9OQUwoW0hBVkVfQ1BQVU5JVF0sIFt0ZXN0ICJ4JENQUFVOSVRfTElCUyIgIT0geF0pCi0rCi0r IyBTaGFyZWQgbGlicmFyeSB2ZXJzaW9uaW5nCi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT049IjM6 MDowIgotKyMgICAgICAgICAgICAgICAgICAgICAgICB8IHwgfAotKyMgICAgICAgICAgICAgICAg ICstLS0tLS0rIHwgKy0tLSsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICB8ICAgICB8Ci0r IyAgICAgICAgICAgICAgY3VycmVudDpyZXZpc2lvbjphZ2UKLSsjICAgICAgICAgICAgICAgICB8 ICAgICAgICB8ICAgICB8Ci0rIyAgICAgICAgICAgICAgICAgfCAgICAgICAgfCAgICAgKy0gaW5j cmVtZW50IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkOwotKyMgICAgICAgICAgICAgICAg IHwgICAgICAgIHwgICAgICAgIHNldCB0byB6ZXJvIGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIAot KyMgICAgICAgICAgICAgICAgIHwgICAgICAgIHwgICAgICAgIHJlbW92ZWQgb3IgY2hhbmdlZAot KyMgICAgICAgICAgICAgICAgIHwgICAgICAgICstIGluY3JlbWVudCBpZiBzb3VyY2UgY29kZSBo YXMgY2hhbmdlZDsKLSsjICAgICAgICAgICAgICAgICB8ICAgICAgICAgICBzZXQgdG8gemVybyBp ZiBjdXJyZW50IGlzIGluY3JlbWVudGVkCi0rIyAgICAgICAgICAgICAgICAgKy0gaW5jcmVtZW50 IGlmIGludGVyZmFjZXMgaGF2ZSBiZWVuIGFkZGVkLCByZW1vdmVkCi0rIyAgICAgICAgICAgICAg ICAgICAgb3IgY2hhbmdlZAotK0FDX1NVQlNUKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwot KyMgVXBsb2FkIGNvbW1hbmQgZm9yIFNvdXJjZUZvcmdlCi0rVVBMT0FEX0NPTU1BTkQ9Im5jZnRw cHV0IC12IHVwbG9hZC5zb3VyY2Vmb3JnZS5uZXQgL2luY29taW5nIgotK0FDX1NVQlNUKFVQTE9B RF9DT01NQU5EKQotKwotKyMgQ2hlY2sgZm9yIGhvc3QgYW5kIGRpc2FibGUgYnVpbGRpbmcgYSBz aGFyZWQgbGlicmFyeSBpbiBXaW5kb3dzCi0rQUNfQ0FOT05JQ0FMX0hPU1QKLStjYXNlICRob3N0 IGluCi0rICAqLSotbXNkb3MqIHwgKi0qLWdvMzIqIHwgKi0qLW1pbmd3MzIqIHwgKi0qLWN5Z3dp biogfCAqLSotd2luZG93cyopIAotKyAgICBBQ19ESVNBQkxFX1NIQVJFRAotKyAgICBBQ19FTkFC TEVfU1RBVElDCi0rICAgIDs7Ci0rICAqKSAgCi0rICAgIEFDX0VOQUJMRV9TSEFSRUQKLSsgICAg QUNfRElTQUJMRV9TVEFUSUMKLSsgICAgOzsKLStlc2FjCi0rCi0rIyBTZXQgZGVmYXVsdCBsYW5n dWFnZSB0byBDKysKLStBQ19MQU5HKFtDKytdKQotK0FDX0xBTkdfQ1BMVVNQTFVTCi0rCi0rIyBD aGVja3MgZm9yIHByb2dyYW1zCi0rc2F2ZV9DWFhGTEFHUz0iJENYWEZMQUdTIgotK0FDX1BST0df Q1hYCi0rQUNfUFJPR19DWFhDUFAKLStDWFhGTEFHUz0iJHNhdmVfQ1hYRkxBR1MiCi0rQUNfUFJP R19JTlNUQUxMCi0rQUNfUFJPR19MSUJUT09MCi0rQUNfUFJPR19MTl9TCi0rQUNfUFJPR19NQUtF X1NFVAotKwotKyMgQ2hlY2sgZm9yIGV4Y2VwdGlvbnMgc3dpdGNoCi0rQUNfQVJHX0VOQUJMRShl eGNlcHRpb25zLAotKyAgICAgICAgICAgICAgW0FTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1leGNl cHRpb25zXSwKLSsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW5hYmxlIGV4Y2VwdGlv bnMgaGFuZGxpbmcgbWVjaGFuaXNtXSldLAotKyAgICAgICAgICAgICAgW0FDX0RFRklORShbU09D SV9FWENFUFRJT05TXSwgWzFdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICBbRGVmaW5lIGlm IHlvdSB3YW50IGV4Y2VwdGlvbnMgaGFuZGxpbmddKV0pCi0rdGVzdCAieCRlbmFibGVfZXhjZXB0 aW9ucyIgIT0geG5vICYmIGVuYWJsZV9leGNlcHRpb25zPXllcwotK3Rlc3QgIngkYXhfY3ZfYm9v c3RfZGF0ZV90aW1lIiAhPSB4bm8gJiYgZW5hYmxlX2V4Y2VwdGlvbnM9eWVzCi0rCi0rIyBDaGVj ayBmb3IgaW5mbyBwYWdlcwotK0FDX0FSR19FTkFCTEUoaW5mby1kb2MsIAotKyAgICAgICAgICAg ICAgW0FTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtaW5mby1kb2NdLAotKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFtkbyBub3QgZ2VuZXJhdGUgSW5mbyBkb2N1bWVudGF0aW9uXSldKQot K3Rlc3QgIngkZW5hYmxlX2luZm9fZG9jIiAhPSB4bm8gJiYgZW5hYmxlX2luZm9fZG9jPXllcwot KwotKwotKyMgQ2hlY2sgZm9yIGh0bWwtZG9jIHN3aXRjaAotK0FDX0FSR19FTkFCTEUoaHRtbC1k b2MsIAotKyAgICAgICAgICAgICAgW0FTX0hFTFBfU1RSSU5HKFstLWRpc2FibGUtaHRtbC1kb2Nd LAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkbyBub3QgZ2VuZXJhdGUgSFRNTCBk b2N1bWVudGF0aW9uXSldKQotK3Rlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiAhPSB4bm8gJiYgZW5h YmxlX2h0bWxfZG9jPXllcwotKwotKwotKyMgUHJvdmlkZSAtLXdpdGgtZG9jZGlyCi0rQUNfQVJH X1dJVEgoZG9jZGlyLAotKyAgICAgICAgICAgIFtBU19IRUxQX1NUUklORyhbLS13aXRoLWRvY2Rp cj1ESVJdLAotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc2V0IGRvY3VtZW50YXRpb24g ZGlyZWN0b3J5IHRvIERJUl0pXSwKLSsgICAgICAgICAgICBbRE9DX0RJUj0iJHdpdGh2YWwiXSwK LSsgICAgICAgICAgICBbRE9DX0RJUj0iIl0pCi0raWYgdGVzdCAieCRET0NfRElSIiAhPSB4OyB0 aGVuCi0rICBkb2NkaXI9IiRET0NfRElSIgotK2Vsc2UKLSsgIGRvY2Rpcj0iJHtkYXRhZGlyfS9k b2MvJFBBQ0tBR0UtJFZFUlNJT04iCi0rZmkKLStBQ19TVUJTVChkb2NkaXIpCi0rCi0rCi0rIyBD aGVjayBmb3IgYnVycmllZCBoZWFkZXIgZmlsZXMgKGZvciBTT0NJIGl0c2VsZikKLStBQ19BUkdf RU5BQkxFKGJ1cnJpZWQtaGVhZGVycywgCi0rIEFTX0hFTFBfU1RSSU5HKFstLWVuYWJsZS1idXJy aWVkLWhlYWRlcnNdLAotKwkJW2luY2x1ZGUgaGVhZGVyIGZpbGVzIGZyb20gYSBkaXJlY3Rvcnkg c3RydWN0dXJlXSksCi0rIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAg IGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8KLSsgICBlbHNlCi0rICAgICAgZW5hYmxlX2J1cnJp ZWRfaGVhZGVycz15ZXMKLSsgICBmaSBdLAotKyBbIGVuYWJsZV9idXJyaWVkX2hlYWRlcnM9bm8g XSkKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlvbgotK2VuYWJs ZV9idXJyaWVkX2hlYWRlcnM9eWVzCi0rQU1fQ09ORElUSU9OQUwoW1NPQ0lfSEVBREVSU19CVVJJ RURdLCBbdGVzdCAieCRlbmFibGVfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXNdKQotK0FDX1NVQlNU KFNPQ0lfSEVBREVSU19CVVJJRUQpCi0raWYgdGVzdCAieCRlbmFibGVfYnVycmllZF9oZWFkZXJz IiA9IHh5ZXM7IHRoZW4KLSsgICBDUFBGTEFHUz0iLURTT0NJX0hFQURFUlNfQlVSSUVEICRDUFBG TEFHUyIKLStmaQotKwotKyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3IgTXlT UUwgY2xpZW50KQotK0FDX0FSR19FTkFCTEUobXlzcWwtYnVycmllZC1oZWFkZXJzLCAKLSsgQVNf SEVMUF9TVFJJTkcoWy0tZW5hYmxlLW15c3FsLWJ1cnJpZWQtaGVhZGVyc10sCi0rCQlbaW5jbHVk ZSBNeVNRTCBoZWFkZXIgZmlsZXMgZnJvbSBhIGRpcmVjdG9yeSBzdHJ1Y3R1cmVdKSwKLSsgWyBp ZiB0ZXN0ICIkZW5hYmxldmFsIiA9IG5vOyB0aGVuCi0rCWVuYWJsZV9teXNxbF9idXJyaWVkX2hl YWRlcnM9bm8KLSsgICBlbHNlCi0rCWVuYWJsZV9teXNxbF9idXJyaWVkX2hlYWRlcnM9eWVzCi0r ICAgZmkgXSwKLSsgWyBlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzPW5vIF0pCi0rIyBUZW1w b3JhcnksIGZvciB0aGUgUlBNIHBhY2thZ2VzIGdlbmVyYXRpb24KLStlbmFibGVfbXlzcWxfYnVy cmllZF9oZWFkZXJzPXllcwotK0FNX0NPTkRJVElPTkFMKFtTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEXSwKLSsgICAgICAgICAgICAgICBbdGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFk ZXJzIiA9IHh5ZXNdKQotK0FDX1NVQlNUKFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQpCi0raWYg dGVzdCAieCRlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KLSsgICBD UFBGTEFHUz0iLURTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEICRDUFBGTEFHUyIKLStmaQotKwot KyMgQ2hlY2sgZm9yIGJ1cnJpZWQgaGVhZGVyIGZpbGVzIChmb3IgUG9zdEdyZVNRTCBjbGllbnQp Ci0rQUNfQVJHX0VOQUJMRShwb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVycywgCi0rIEFTX0hFTFBf U1RSSU5HKFstLWVuYWJsZS1wb3N0Z3Jlc3FsLWJ1cnJpZWQtaGVhZGVyc10sCi0rCQlbaW5jbHVk ZSBQb3N0R3JlU1FMIGhlYWRlciBmaWxlcyBmcm9tIGEgZGlyZWN0b3J5IHN0cnVjdHVyZV0pLAot KyBbIGlmIHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsJZW5hYmxlX3Bvc3RncmVzcWxf YnVycmllZF9oZWFkZXJzPW5vCi0rICAgZWxzZQotKwllbmFibGVfcG9zdGdyZXNxbF9idXJyaWVk X2hlYWRlcnM9eWVzCi0rICAgZmkgXSwKLSsgWyBlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hl YWRlcnM9bm8gXSkKLSsjIFRlbXBvcmFyeSwgZm9yIHRoZSBSUE0gcGFja2FnZXMgZ2VuZXJhdGlv bgotK2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRfaGVhZGVycz15ZXMKLStBTV9DT05ESVRJT05B TChbU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEXSwKLSsgICAgICAgICAgICAgICBbdGVz dCAieCRlbmFibGVfcG9zdGdyZXNxbF9idXJyaWVkX2hlYWRlcnMiID0geHllc10pCi0rQUNfU1VC U1QoU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEKQotK2lmIHRlc3QgIngkZW5hYmxlX3Bv c3RncmVzcWxfYnVycmllZF9oZWFkZXJzIiA9IHh5ZXM7IHRoZW4KLSsgICBDUFBGTEFHUz0iLURT T0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgJENQUEZMQUdTIgotK2ZpCi0rCi0rCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQot KyMgQm9vc3QgKFNUTCBFeHRlbnNpb25zOiBodHRwOi8vd3d3LmJvb3N0Lm9yZykKLSsjIC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rQVhf Qk9PU1QoWzEuMzNdKQotK0FDX1NVQlNUKEJPT1NUX1ZFUlNJT04pCi0rQUNfU1VCU1QoQk9PU1Rf Q0ZMQUdTKQotK0FDX1NVQlNUKEJPT1NUX0xJQlMpCi0rQUNfU1VCU1QoQk9PU1RfREFURV9USU1F X0xJQikKLStBQ19TVUJTVChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKQotK0FDX1NVQlNUKEJP T1NUX0ZJTEVTWVNURU1fTElCKQotK0FDX1NVQlNUKEJPT1NUX1RIUkVBRF9MSUIpCi0rQUNfU1VC U1QoQk9PU1RfUFlUSE9OX0xJQikKLSsKLSsjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTdXBwb3J0IGZvciBN eVNRTCBiYWNrZW5kIChDIGNsaWVudCBBUEkpOiBodHRwOi8vd3d3Lm15c3FsLm9yZwotKyMgLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLStBQ19BUkdfRU5BQkxFKFtiYWNrZW5kLW15c3FsXSwKLSsgICAgQUNfSEVMUF9T VFJJTkcoWy0tZW5hYmxlLWJhY2tlbmQtbXlzcWxdLAotKyAgICAgICAgW2J1aWxkLWluIE15U1FM IGJhY2tlbmQgc3VwcG9ydCBAPDpAZGVmYXVsdD1ub0A6PkBdCi0rICAgICksCi0rICAgIFsgaWYg dGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5hYmxlX2JhY2tlbmRfbXlz cWw9bm8KLSsgICAgICBlbHNlCi0rCSBlbmFibGVfYmFja2VuZF9teXNxbD15ZXMKLSsgICAgICBm aSBdLAotKyAgICBbIGVuYWJsZV9iYWNrZW5kX215c3FsPW5vIF0KLSspCi0rCi0raWYgdGVzdCAi eCRlbmFibGVfYmFja2VuZF9teXNxbCIgPSAieHllcyI7IHRoZW4KLSsgICBNWVNRTF9ESVJTPSJt eXNxbCIKLSsjICAgTVlTUUxfUkVRX1ZFUlNJT049IjMuMC4wIgotKyAgIEFYX01ZU1FMCi0rZmkK LStBTV9DT05ESVRJT05BTChbSEFWRV9NWVNRTF0sIFt0ZXN0ICJ4JGVuYWJsZV9iYWNrZW5kX215 c3FsIiA9IHh5ZXNdKQotKyNNWVNRTF9ESVJTPSJteXNxbCIKLSsKLStBQ19TVUJTVChbTVlTUUxf RElSU10pCi0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTdXBwb3J0IGZvciBPcmFjbGUgYmFja2Vu ZAotKyMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQotK0FDX0FSR19FTkFCTEUoW2JhY2tlbmQtb3JhY2xlXSwKLSsgICAg QUNfSEVMUF9TVFJJTkcoWy0tZW5hYmxlLWJhY2tlbmQtb3JhY2xlXSwKLSsJCSAgIFtidWlsZC1p biBPUkFDTEUgYmFja2VuZCBzdXBwb3J0IEA8OkBkZWZhdWx0PW5vQDo+QF0pLAotKyAgICBbIGlm IHRlc3QgIiRlbmFibGV2YWwiID0gbm87IHRoZW4KLSsgICAgICAJIGVuYWJsZV9iYWNrZW5kX29y YWNsZT1ubwotKyAgICAgIGVsc2UKLSsJIGVuYWJsZV9iYWNrZW5kX29yYWNsZT15ZXMKLSsgICAg ICBmaSBdLAotKyAgICBbIGVuYWJsZV9iYWNrZW5kX29yYWNsZT1ubyBdCi0rKQotKwotK2lmIHRl c3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9ICJ4eWVzIjsgdGhlbgotKyAgIE9SQUNMRV9E SVJTPSJvcmFjbGUiCi0rICAgT1JBQ0xFX09DSV9SRVFfVkVSU0lPTj0iOS4wIgotKyAgIEFYX0xJ Ql9PUkFDTEVfT0NJKCRPUkFDTEVfT0NJX1JFUV9WRVJTSU9OKQotK2ZpCi0rQU1fQ09ORElUSU9O QUwoW0hBVkVfT1JBQ0xFXSwgW3Rlc3QgIngkZW5hYmxlX2JhY2tlbmRfb3JhY2xlIiA9IHh5ZXNd KQotKyNPUkFDTEVfRElSUz0ib3JhY2xlIgotKwotK0FDX1NVQlNUKFtPUkFDTEVfRElSU10pCi0r Ci0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCi0rIyBTdXBwb3J0IGZvciBQb3N0Z3JlU1FMIGJhY2tlbmQKLSsjIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KLStBQ19BUkdfRU5BQkxFKFtiYWNrZW5kLXBvc3RncmVzcWxdLAotKyAgICBBQ19I RUxQX1NUUklORyhbLS1lbmFibGUtYmFja2VuZC1wb3N0Z3Jlc3FsXSwKLSsgICAgICAgIFtidWls ZC1pbiBQb3N0Z3JlU1FMIGJhY2tlbmQgc3VwcG9ydCBAPDpAZGVmYXVsdD1ub0A6PkBdCi0rICAg ICksCi0rICAgIFsgaWYgdGVzdCAiJGVuYWJsZXZhbCIgPSBubzsgdGhlbgotKyAgICAgIAkgZW5h YmxlX2JhY2tlbmRfcG9zdGdyZXNxbD1ubwotKyAgICAgIGVsc2UKLSsJIGVuYWJsZV9iYWNrZW5k X3Bvc3RncmVzcWw9eWVzCi0rICAgICAgZmkgXSwKLSsgICAgWyBlbmFibGVfYmFja2VuZF9wb3N0 Z3Jlc3FsPW5vIF0KLSspCi0rCi0raWYgdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3Fs IiA9ICJ4eWVzIjsgdGhlbgotKyAgIFBPU1RHUkVTUUxfRElSUz0icG9zdGdyZXNxbCIKLSsgICBQ T1NUR1JFU1FMX1JFUV9WRVJTSU9OPSI3LjEuNCIKLSsgICBBWF9MSUJfUE9TVEdSRVNRTCgkUE9T VEdSRVNRTF9SRVFfVkVSU0lPTikKLStmaQotK0FNX0NPTkRJVElPTkFMKFtIQVZFX1BPU1RHUkVT UUxdLCBbdGVzdCAieCRlbmFibGVfYmFja2VuZF9wb3N0Z3Jlc3FsIiA9IHh5ZXNdKQotKyNQT1NU R1JFU1FMX0RJUlM9InBvc3RncmVzcWwiCi0rCi0rQUNfU1VCU1QoW1BPU1RHUkVTUUxfRElSU10p Ci0rCi0rCi0rIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rIyBTdXBwb3J0IGZvciBkb2N1bWVudGF0aW9uCi0rIyAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCi0rIyBDaGVja3MgZm9yIGRvY3VtZW50YXRpb24gYnVpbGQgdG9vbHMKLSsjQUNf Q0hFQ0tfUFJPRyhbdGV4aW5mb19va10sIFt0ZXhpbmZvXSwgW3llc10sIFtub10pCi0rI2lmIHRl c3QgIngkZW5hYmxlX2luZm9fZG9jIiAhPSB4bm87IHRoZW4KLSsjICB0ZXN0ICJ4JHRleGluZm9f b2siICE9IHh5ZXMgJiYgZW5hYmxlX2luZm9fZG9jPW5vCi0rIyAgQUNfUEFUSF9QUk9HKFtQRVJM XSwgW3BlcmxdLCBbXSkKLSsjZmkKLStBTV9DT05ESVRJT05BTChbSU5GT19ET0NdLCBbdGVzdCAi eCRlbmFibGVfaW5mb19kb2MiID0geHllc10pCi0rCi0rIyBDaGVja3MgZm9yIGRvY3VtZW50YXRp b24gYnVpbGQgdG9vbHMKLStBQ19DSEVDS19QUk9HKFtkb3h5Z2VuX29rXSwgW2RveHlnZW5dLCBb eWVzXSwgW25vXSkKLStBQ19DSEVDS19QUk9HKFtsYXRleF9va10sIFtsYXRleF0sIFt5ZXNdLCBb bm9dKQotK0FDX0NIRUNLX1BST0coW2R2aXBzX29rXSwgW2R2aXBzXSwgW3llc10sIFtub10pCi0r QUNfQ0hFQ0tfUFJPRyhbZ3Nfb2tdLCBbZ3NdLCBbeWVzXSwgW25vXSkKLStpZiB0ZXN0ICJ4JGVu YWJsZV9odG1sX2RvYyIgIT0geG5vOyB0aGVuCi0rICB0ZXN0ICJ4JGRveHlnZW5fb2siICE9IHh5 ZXMgJiYgZW5hYmxlX2h0bWxfZG9jPW5vCi0rICB0ZXN0ICJ4JGxhdGV4X29rIiAhPSB4eWVzICYm IGVuYWJsZV9odG1sX2RvYz1ubwotKyAgdGVzdCAieCRkdmlwc19vayIgIT0geHllcyAmJiBlbmFi bGVfaHRtbF9kb2M9bm8KLSsgIHRlc3QgIngkZ3Nfb2siICE9IHh5ZXMgJiYgZW5hYmxlX2h0bWxf ZG9jPW5vCi0rICBBQ19QQVRIX1BST0coW1BFUkxdLCBbcGVybF0sIFtdKQotK2ZpCi0rQU1fQ09O RElUSU9OQUwoW0hUTUxfRE9DXSwgW3Rlc3QgIngkZW5hYmxlX2h0bWxfZG9jIiA9IHh5ZXNdKQot KwotKwotKyMgQ2hlY2sgZm9yIGRpZmYgcHJvZ3JhbSB1c2VkIGZvciB0ZXN0cwotK0FDX0NIRUNL X1BST0coW2RpZmZfb2tdLCBbZGlmZl0sIFt5ZXNdLCBbbm9dKQotK0FDX0NIRUNLX1BST0coW3Nl ZF9va10sIFtzZWRdLCBbeWVzXSwgW25vXSkKLStlbmFibGVfdGVzdHM9eWVzCi0rdGVzdCAieCRk aWZmX29rIiAhPSB4eWVzICYmIGVuYWJsZV90ZXN0cz1ubwotK3Rlc3QgIngkc2VkX29rIiAhPSB4 eWVzICYmIGVuYWJsZV90ZXN0cz1ubwotK0FNX0NPTkRJVElPTkFMKFtSVU5fVEVTVFNdLCBbdGVz dCAieCRlbmFibGVfdGVzdHMiID0geHllc10pCi0rCi0rCi0rIyBDaGVja3MgZm9yIGhlYWRlciBm aWxlcwotK0FDX0hFQURFUl9TVERDCi0rQUNfSEVBREVSX1RJTUUKLStBQ19DSEVDS19IRUFERVJT KFtjbWF0aCBcCi0rICBkZXF1ZSBcCi0rICBmc3RyZWFtIFwKLSsgIGlvbWFuaXAgXAotKyAgaW9z dHJlYW0gXAotKyAgc3N0cmVhbSBcCi0rICBsaW1pdHMgXAotKyAgbGlzdCBcCi0rICBzZXQgXAot KyAgdmVjdG9yIFwKLSsgIG1hcCBcCi0rICBxdWV1ZSBcCi0rICBzdGRleGNlcHQgXAotKyAgc3Ry aW5nXSkKLSsKLSsKLSsjIERlZmluZSBjb25maWd1cmVkIGZpbGVzCi0rQUNfQ09ORklHX0ZJTEVT KAotKwlNYWtlZmlsZQotKwlzb2NpLWNvbmZpZwotKwlzb2NpLnBjCi0rCXNvY2kvTWFrZWZpbGUK LSsJc29jaS9jb3JlL01ha2VmaWxlCi0rCXNvY2kvY29yZS90ZXN0L01ha2VmaWxlCi0rCXNvY2kv YmFja2VuZHMvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZQotKwlzb2Np L2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKLSsJc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlCi0rCXNv Y2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlCi0rCXNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv TWFrZWZpbGUKLSsJbWFuL01ha2VmaWxlCi0rICAgICAgICBkb2MvTWFrZWZpbGUKLSsgICAgICAg IGRvYy9iYWNrZW5kcy9NYWtlZmlsZQotKwlidWlsZC9NYWtlZmlsZQotKwlidWlsZC91bml4L01h a2VmaWxlCi0rCWJ1aWxkL21zdmM4MC9NYWtlZmlsZQotKwlidWlsZC9tc3ZjODAvZGxsL01ha2Vm aWxlCi0rCWJ1aWxkL21zdmM4MC9saWIvTWFrZWZpbGUpCi0rCi0rQUNfT1VUUFVUCi0rCi0rZWNo byAiCi0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0rJFBBQ0tBR0UtJFZFUlNJT04gbGlicmFyeSBj b25maWd1cmF0aW9uOgotKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotKwotK0RpcmVjdG9yaWVzOgot KyAgLSBwcmVmaXggLi4uLi4uLi4uLi4uLi4uIDogJHtwcmVmaXh9Ci0rICAtIGV4ZWNfcHJlZml4 IC4uLi4uLi4uLi4gOiAke2V4ZWNfcHJlZml4fQotKyAgLSBpbmNsdWRlZGlyIC4uLi4uLi4uLi4u IDogJHtpbmNsdWRlZGlyfQotKyAgLSBsaWJkaXIgLi4uLi4uLi4uLi4uLi4uIDogJHtsaWJkaXJ9 Ci0rICAtIGRvY2RpciAuLi4uLi4uLi4uLi4uLi4gOiAke2RvY2Rpcn0KLSsgIC0gbWFuZGlyIC4u Li4uLi4uLi4uLi4uLiA6ICR7bWFuZGlyfQotKyAgLSBpbmZvZGlyIC4uLi4uLi4uLi4uLi4uIDog JHtpbmZvZGlyfQotKwotK1N3aXRjaGVzOgotKyAgLSBleGNlcHRpb25zIC4uLi4uLi4uLi4uIDog JHtlbmFibGVfZXhjZXB0aW9uc30KLSsgIC0gaW5mby1kb2MgLi4uLi4uLi4uLi4uLiA6ICR7ZW5h YmxlX2luZm9fZG9jfQotKyAgLSBodG1sLWRvYyAuLi4uLi4uLi4uLi4uIDogJHtlbmFibGVfaHRt bF9kb2N9Ci0rICAtIHNoYXJlZCAuLi4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9zaGFyZWR9Ci0r ICAtIHN0YXRpYyAuLi4uLi4uLi4uLi4uLi4gOiAke2VuYWJsZV9zdGF0aWN9Ci0rCi0rRG9jdW1l bnRhdGlvbiB0b29sczoKLSsgIC0gdGV4aW5mbyAuLi4uLi4uLi4uLi4uLiA6ICR7dGV4aW5mb19v a30KLSsgIC0gZG94eWdlbiAuLi4uLi4uLi4uLi4uLiA6ICR7ZG94eWdlbl9va30KLSsgIC0gbGF0 ZXggLi4uLi4uLi4uLi4uLi4uLiA6ICR7bGF0ZXhfb2t9Ci0rICAtIGR2aXBzIC4uLi4uLi4uLi4u Li4uLi4gOiAke2R2aXBzX29rfQotKyAgLSBnaG9zdHNjcmlwdCAuLi4uLi4uLi4uIDogJHtnc19v a30KLSsKLStUZXN0aW5nIHRvb2xzOgotKyAgLSBkaWZmIC4uLi4uLi4uLi4uLi4uLi4uIDogJHtk aWZmX29rfQotKyAgLSBzZWQgLi4uLi4uLi4uLi4uLi4uLi4uIDogJHtzZWRfb2t9Ci0rCi0rQ29t cGlsZXIvbGlua2VyIGZsYWdzL2xpYnMvZGVmczoKLSsgIC0gQ1hYIC4uLi4uLi4uLi4uLi4uLi4u LiA6ICR7Q1hYfQotKyAgLSBDWFhGTEFHUyAuLi4uLi4uLi4uLi4uIDogJHtDWFhGTEFHU30KLSsg IC0gQ1BQRkxBR1MgLi4uLi4uLi4uLi4uLiA6ICR7Q1BQRkxBR1N9Ci0rICAtIExERkxBR1MgLi4u Li4uLi4uLi4uLi4gOiAke0xERkxBR1N9Ci0rICAtIExJQlMgLi4uLi4uLi4uLi4uLi4uLi4gOiAk e0xJQlN9Ci0rCi0rQnVycmllZCBoZWFkZXIgZmlsZXM6Ci0rICAtIFNPQ0lfSEVBREVSU19CVVJJ RUQgLi4uLi4uLiA6ICR7ZW5hYmxlX2J1cnJpZWRfaGVhZGVyc30KLSsgIC0gTVlTUUxfSEVBREVS U19CVVJJRUQgLi4uLi4uIDogJHtlbmFibGVfbXlzcWxfYnVycmllZF9oZWFkZXJzfQotKyAgLSBQ T1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEIC4gOiAke2VuYWJsZV9wb3N0Z3Jlc3FsX2J1cnJpZWRf aGVhZGVyc30KLSsKLStFeHRlcm5hbCBsaWJyYXJpZXM6Ci0rICAtIEJvb3N0IC4uLi4uLi4uLi4u Li4uLi4gOgotKyAgICBvIEJPT1NUX1ZFUlNJT04gLi4uLi4uIDogJHtCT09TVF9WRVJTSU9OfQot KyAgICBvIEJPT1NUX0NGTEFHUyAuLi4uLi4uIDogJHtCT09TVF9DRkxBR1N9Ci0rICAgIG8gQk9P U1RfTElCUyAuLi4uLi4uLi4gOiAke0JPT1NUX0xJQlN9Ci0rICAgIG8gQk9PU1RfRFRfTElCIC4u Li4uLi4gOiAke0JPT1NUX0RBVEVfVElNRV9MSUJ9Ci0rICAgIG8gQk9PU1RfUE9fTElCIC4uLi4u Li4gOiAke0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJ9Ci0rCi0rICAtIE15U1FMIHN1cHBvcnQg Li4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX215c3FsfQotKyAgICBvIE1ZU1FMX1ZFUlNJT04g Li4uLi4uIDogJHtNWVNRTF9WRVJTSU9OfQotKyAgICBvIE1ZU1FMX0NGTEFHUyAuLi4uLi4uIDog JHtNWVNRTF9DRkxBR1N9Ci0rICAgIG8gTVlTUUxfTElCUyAuLi4uLi4uLi4gOiAke01ZU1FMX0xJ QlN9Ci0rCi0rICAtIFBvc3RHcmVTUUwgc3VwcG9ydCAuLi4gOiAke2VuYWJsZV9iYWNrZW5kX3Bv c3RncmVzcWx9Ci0rICAgIG8gUE9TVEdSRVNRTF9WRVJTSU9OIC4gOiAke1BPU1RHUkVTUUxfVkVS U0lPTn0KLSsgICAgbyBQT1NUR1JFU1FMX0NGTEFHUyAuLiA6ICR7UE9TVEdSRVNRTF9DRkxBR1N9 Ci0rICAgIG8gUE9TVEdSRVNRTF9MREZMQUdTIC4gOiAke1BPU1RHUkVTUUxfTERGTEFHU30gCi0r Ci0rICAtIE9yYWNsZSBzdXBwb3J0IC4uLi4uLi4gOiAke2VuYWJsZV9iYWNrZW5kX29yYWNsZX0K LSsgICAgbyBPUkFDTEVfVkVSU0lPTiAuLi4uLiA6ICR7T1JBQ0xFX09DSV9WRVJTSU9OfQotKyAg ICBvIE9SQUNMRV9DRkxBR1MgLi4uLi4uIDogJHtPUkFDTEVfT0NJX0NGTEFHU30KLSsgICAgbyBP UkFDTEVfTERGTEFHUyAuLi4uLiA6ICR7T1JBQ0xFX09DSV9MREZMQUdTfSAKLSsKLSsgIC0gQ1BQ VW5pdCAuLi4uLi4uLi4uLi4uLiA6Ci0rICAgIG8gQ1BQVU5JVF9WRVJTSU9OIC4uLi4gOiAke0NQ UFVOSVRfVkVSU0lPTn0KLSsgICAgbyBDUFBVTklUX0NGTEFHUyAuLi4uLiA6ICR7Q1BQVU5JVF9D RkxBR1N9Ci0rICAgIG8gQ1BQVU5JVF9MSUJTIC4uLi4uLi4gOiAke0NQUFVOSVRfTElCU30KLSsK LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLStOb3cgdHlwZSAnbWFrZSAmJiBtYWtlIGluc3RhbGwn IHRvIGJ1aWxkIGFuZCBpbnN0YWxsICRQQUNLQUdFLSRWRVJTSU9OIGxpYnJhcnkKLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KLSsiCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svZG9jL2JhY2tl bmRzL01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvTWFrZWZpbGUu YW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZpbGUuYW0JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvZG9j L2JhY2tlbmRzL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6NTA6MzguMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDE2IEBACi0rIyMgZG9jL2JhY2tlbmRzIHN1Yi1kaXJlY3RvcnkKLStpbmNs dWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291 cmNlcy5tawotKwotKyMjIFNvdXJjZSBkaXJlY3RvcnkKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9Ci0rCi0rRVhUUkFfRElTVF9GT1JfU09DSV9D T01QQVRJQklMSVRZID0gJChodG1sX2Jja19zb3VyY2VzKQotKyNmaXJlYmlyZC5odG1sIGluZGV4 Lmh0bWwgbXlzcWwuaHRtbCBvZGJjLmh0bWwgb3JhY2xlLmh0bWwgcG9zdGdyZXNxbC5odG1sIHNx bGl0ZTMuaHRtbAotKwotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFU SUJJTElUWSkKLSsKLSsjcGtnZGF0YWRpciA9ICQoaHRtbF9iY2tfc291cmNlcykKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvYmFja2VuZHMvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90 cmVwMzAwL2RvYy9iYWNrZW5kcy9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2Rv Yy9iYWNrZW5kcy9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvTWFrZWZpbGUuaW4JMjAxMS0w Ny0wMyAxODo0NDoyNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNjMyIEBACi0rIyBNYWtl ZmlsZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCi0r IyBAY29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2 LCAxOTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAw NSwgMjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMg SW5jLgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0 d2FyZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFu ZC9vciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFz IGxvbmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlz IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQg V0lUSE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0 aG91dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3Ig RklUTkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLStW UEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtn aW5jbHVkZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJk aXIpL0BQQUNLQUdFQAotK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAot K2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYg Y2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxf c2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5z dGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9y bSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVf SU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQ UkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBA YnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2Rpcikv TWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMu bWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBkb2MvYmFja2VuZHMK LStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRf ZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVf b2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s aWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0 dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9w X3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2Nh bF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQot K21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9w X2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdf Q0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQotK0RJU1RfU09VUkNFUyA9Ci0rUkVDVVJT SVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNrLXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZl IFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNpdmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2 ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJ aW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWluZm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFs bC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJzaXZlIGluc3RhbGwtcmVjdXJzaXZlIFwK LSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxsZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vy c2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwtcmVjdXJzaXZlCi0rUkVDVVJTSVZFX0NM RUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsg IGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStBTV9SRUNV UlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKLSsJJChS RUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdT IFwKLSsJZGlzdGRpcgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJE SVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VS Q0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZpemUgPSBcCi0rICBk aXIwPWBwd2RgOyBcCi0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKLSsg IHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwp JCQsXDEsJzsgXAotKyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3aGlsZSB0 ZXN0IC1uICIkJGRpcjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1l ICIkJHNlZF9maXJzdCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBc Ci0rICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsgICAgICAgIGRpcjI9 YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAotKyAgICAg ICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCi0rICAg ICAgZWxzZSBcCi0rICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2Vk X2ZpcnN0ImA7IFwKLSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhl biBcCi0rICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3Qi YDsgXAotKyAgICAgICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKLSsg ICAgICAgIGZpOyBcCi0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAotKyAgICAg IGZpOyBcCi0rICAgIGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQk c2VkX3Jlc3QiYDsgXAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIiCi0rQUNMT0NBTCA9 IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FSID0gQEFSQAotK0FVVE9DT05GID0gQEFV VE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURFUkAKLStBVVRPTUFLRSA9IEBBVVRPTUFL RUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0FTSU9fTElCID0gQEJPT1NUX0FTSU9fTElCQAotK0JP T1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9PU1RfREFURV9USU1FX0xJQiA9IEBCT09T VF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNURU1fTElCID0gQEJPT1NUX0ZJTEVTWVNU RU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBAQk9PU1RfSU9TVFJFQU1TX0xJQkAKLStC T09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1RfTVBJX0xJQiA9IEBCT09TVF9NUElfTElC QAotK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NUX01QSV9QWVRIT05fTElCQAotK0JPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQkAKLStCT09T VF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJACi0rQk9PU1RfUkVHRVhfTElCID0gQEJP T1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJ WkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9IEBCT09TVF9TSUdOQUxTX0xJQkAKLStC T09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9MSUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9 IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCID0gQEJP T1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JPT1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVS U0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfV1NFUklBTElaQVRJT05f TElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBDQ0RFUE1PREVACi0rQ0ZMQUdTID0gQENG TEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0gQENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZM QUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRfQ09ORklHID0gQENQUFVOSVRfQ09ORklH QAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNACi0rQ1BQVU5JVF9WRVJTSU9OID0gQENQ UFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NYWENQUCA9IEBDWFhDUFBACi0rQ1hYREVQ TU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0gQENYWEZMQUdTQAotK0NZR1BBVEhfVyA9 IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RFUERJUiA9IEBERVBESVJACi0rRExMVE9P TCA9IEBETExUT09MQAotK0RTWU1VVElMID0gQERTWU1VVElMQAotK0RVTVBCSU4gPSBARFVNUEJJ TkAKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9IEBFQ0hPX05ACi0rRUNIT19UID0gQEVD SE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQgPSBARVhFRVhUQAotK0ZHUkVQID0gQEZH UkVQQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0gQEdFTkVSSUNfTElCUkFSWV9WRVJTSU9O QAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElOU1RBTExACi0rSU5TVEFMTF9EQVRBID0g QElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0gPSBASU5TVEFMTF9QUk9HUkFNQAotK0lO U1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAotK0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9 IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTEQgPSBATERACi0rTERGTEFHUyA9IEBMREZMQUdT QAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0gQExJQlNACi0rTElCVE9PTCA9IEBMSUJU T09MQAotK0xJUE8gPSBATElQT0AKLStMTl9TID0gQExOX1NACi0rTFRMSUJPQkpTID0gQExUTElC T0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStNQU5JRkVTVF9UT09MID0gQE1BTklGRVNU X1RPT0xACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01ZU1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxB R1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJACi0rTVlTUUxfRElSUyA9IEBNWVNRTF9E SVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AKLStNWVNRTF9WRVJTSU9OID0gQE1ZU1FM X1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0gQE5NRURJVEAKLStPQkpEVU1QID0gQE9C SkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFDTEVfRElSUyA9IEBPUkFDTEVfRElSU0AK LStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJX0NGTEFHU0AKLStPUkFDTEVfT0NJX0xE RkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09SQUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFD TEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xACi0rT1RPT0w2NCA9IEBPVE9PTDY0QAot K1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JVR1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JF UE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9OQU1FQAotK1BBQ0tBR0VfU1RSSU5HID0g QFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFNRSA9IEBQQUNLQUdFX1RBUk5BTUVACi0r UEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACi0rUEFDS0FHRV9WRVJTSU9OID0gQFBBQ0tBR0Vf VkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRIX1NFUEFSQVRPUkAKLStQRVJMID0gQFBF UkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQT1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NU R1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMgPSBAUE9TVEdSRVNRTF9ESVJTQAotK1BP U1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xERkxBR1NACi0rUE9TVEdSRVNRTF9WRVJT SU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5MSUIgPSBAUkFOTElCQAotK1NFRCA9IEBT RURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hFTEwgPSBAU0hFTExACi0rU09DSV9IRUFE RVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfTVlTUUxfSEVBREVSU19C VVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklFREAKLStTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEQAotK1NUUklQID0g QFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9BRF9DT01NQU5EQAotK1ZFUlNJT04gPSBA VkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1aWxkZGlyQAotK2Fic19zcmNkaXIgPSBA YWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0gQGFic190b3BfYnVpbGRkaXJACi0rYWJz X3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0rYWNfY3RfQVIgPSBAYWNfY3RfQVJACi0r YWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hYID0gQGFjX2N0X0NYWEAKLSthY19jdF9E VU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2luY2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0r YW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2RvdEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1 b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9fdW50YXIgPSBAYW1fX3VudGFyQAotK2Jp bmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRACi0rYnVpbGRfYWxpYXMgPSBAYnVpbGRf YWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAKLStidWlsZF9vcyA9IEBidWlsZF9vc0AK LStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAotK2J1aWxkZGlyID0gQGJ1aWxkZGlyQAot K2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRpciA9IEBkYXRhcm9vdGRpckAKLStkaWZm X29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2RpckAKLStkb3h5Z2VuX29rID0gQGRveHln ZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlwc19vayA9IEBkdmlwc19va0AKLStleGVj X3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9IEBnc19va0AKLStob3N0ID0gQGhvc3RA Ci0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hvc3RfY3B1ID0gQGhvc3RfY3B1QAotK2hv c3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9IEBob3N0X3ZlbmRvckAKLStodG1sZGly ID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNsdWRlZGlyQAotK2luZm9kaXIgPSBAaW5m b2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hACi0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tA Ci0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGlyID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxl ZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGlyID0gQGxvY2Fsc3RhdGVkaXJACi0rbWFu ZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGlyX3BACi0rb2xkaW5jbHVkZWRpciA9IEBv bGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJACi0rcHJlZml4ID0gQHByZWZpeEAKLStw cm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1fdHJhbnNmb3JtX25hbWVACi0rcHNkaXIg PSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAotK3NlZF9vayA9IEBzZWRfb2tACi0rc2hh cmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0rc3JjZGlyID0gQHNyY2RpckAKLStzeXNj b25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2FsaWFzID0gQHRhcmdldF9hbGlhc0AKLSt0 b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVmaXhACi0rdG9wX2J1aWxkZGlyID0gQHRv cF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9zcmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAt SSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikKLStodG1sX2Jja19zb3VyY2VzID0gJCh0 b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvaW5kZXguaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9j L2JhY2tlbmRzL2ZpcmViaXJkLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9t eXNxbC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb2RiYy5odG1sIFwKLSsJ JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb3JhY2xlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIp L2RvYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNr ZW5kcy9zcWxpdGUzLmh0bWwKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmlu Ci0rU1VCRElSUyA9IAotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9ICQoaHRt bF9iY2tfc291cmNlcykKLSsjZmlyZWJpcmQuaHRtbCBpbmRleC5odG1sIG15c3FsLmh0bWwgb2Ri Yy5odG1sIG9yYWNsZS5odG1sIHBvc3RncmVzcWwuaHRtbCBzcWxpdGUzLmh0bWwKLStFWFRSQV9E SVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rYWxsOiBhbGwtcmVj dXJzaXZlCi0rCi0rLlNVRkZJWEVTOgotKyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGly KS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291 cmNlcy5tayAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJ ICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJ ICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0t LXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsg ZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJ ZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBk b2MvYmFja2VuZHMvTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwK LSsJICAkKEFVVE9NQUtFKSAtLWdudSBkb2MvYmFja2VuZHMvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6 IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyop IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNf bWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwot KwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChh bV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotKwotK21v c3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJ LXJtIC1yZiAubGlicyBfbGlicwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3Rvcmll cyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1 biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFu Z2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFr ZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMn LCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtl ZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3Ro ZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGlu ZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwK LSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAg ICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0r CSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAk QCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJk aXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGly IjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vl bj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBc Ci0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1f X2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkg XAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rf c2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJn ZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJT SVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3Ig ZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwg LS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2Fj OyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBk aXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7 OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7 IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBc Ci0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQg cy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hv ICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAg ZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAg KCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3Rh cmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRm YWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBp biAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRz dWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdz LXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBk byBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVS UykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAk KEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQk dW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykg JChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJ U1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3Mt aW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9v cHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0r CSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsg XAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQk c3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRo ZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNP VVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBm b3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAk JGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChB V0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBp ZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJc2hp ZnQ7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBl bHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0r CSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdT KSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAiJCRAIiAkJHVuaXF1 ZTsgXAotKwkgIGVsc2UgXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdT RkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAkJHVuaXF1ZTsgXAotKwkgIGZpOyBcCi0r CWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQo U09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQ KQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7 IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQk aSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRv bmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAot KwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9 OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCi0rCSAgfHwgJChD VEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkg ICAgICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRp cikgJiYgcHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0 YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJt IC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAk KERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1td LlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3Jj ZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJ TEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRm aWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAg ICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJ Y2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0 X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10q JCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGlu ICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRm aWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQk ZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywv W14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhl biBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcw MCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGlmIHRlc3Qg LWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkg ICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAx OyBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcw MCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1mcFIg JCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJ ICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRm aWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwK LSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAg dGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChk aXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9u ZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwK LSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgZGlyMT0k JHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKLSsJICAgICQoYW1fX3JlbGF0 aXZpemUpOyBcCi0rCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZGlyMT0kJHN1 YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXplKTsg XAotKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBlY2hvICIgKGNkICQk c3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3Bf ZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCi0rCSAgICBlY2hvICIgICAg IGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21v ZGVfZml4PTogZGlzdGRpcikiOyBcCi0rCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYmIFwKLSsJ ICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIk JG5ld190b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwK LSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwK LSsJCWFtX19za2lwX21vZGVfZml4PTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAg fHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVj azogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOiBpbnN0 YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxsOiBpbnN0YWxsLXJl Y3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwt ZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vy c2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykg aW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFs bGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5z dGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBf RkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNU QUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNs ZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoK LSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xF QU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19D TEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQot KwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBp bnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxl cyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16 ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxF UykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJl Y3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3Rj bGVhbi1nZW5lcmljIGRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJzaXZlCi0rCi0r ZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raHRtbC1hbToKLSsKLStpbmZv OiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwot K2luc3RhbGwtZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWR2aS1hbToK LSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVj dXJzaXZlCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1p bmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mby1hbToKLSsKLStpbnN0YWxsLW1hbjoKLSsK LStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wZGYtYW06 Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzLWFt OgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVy LWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFt OiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46 IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1n ZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStw ZGYtYW06Ci0rCi0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1h bToKLSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFS R0VUUykgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3Mt cmVjdXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VS U0lWRV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0g Y2xlYW4gY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJz aXZlIGRpc3RjbGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRp c3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGlu Zm8tYW0gaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1h bSBpbnN0YWxsLWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4 ZWMtYW0gaW5zdGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0 YWxsLWluZm8tYW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAotKwlp bnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAotKwlp bnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVh biBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1n ZW5lcmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3Mg dGFncy1yZWN1cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtF QAotKwotKyNwa2dkYXRhZGlyID0gJChodG1sX2Jja19zb3VyY2VzKQotKwotKyMgVGVsbCB2ZXJz aW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMu Ci0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUg ZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9i YWNrZW5kcy9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2MvYmFja2VuZHMvc291cmNl cy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9iYWNrZW5kcy9zb3VyY2VzLm1rCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2Rv Yy9iYWNrZW5kcy9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6NDc6NTMuMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDcgQEAKLStodG1sX2Jja19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9kb2Mv YmFja2VuZHMvaW5kZXguaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzL2ZpcmVi aXJkLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9teXNxbC5odG1sIFwKLSsJ JCh0b3Bfc3JjZGlyKS9kb2MvYmFja2VuZHMvb2RiYy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9k b2MvYmFja2VuZHMvb3JhY2xlLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9w b3N0Z3Jlc3FsLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYWNrZW5kcy9zcWxpdGUzLmh0 bWwKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9kb2MvTWFrZWZpbGUuYW0gc29jaS0zLjAu MF90cmVwMzAwL2RvYy9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9NYWtl ZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9kb2MvTWFrZWZpbGUuYW0JMjAxMC0wMS0yMyAxMzoyNTo1Ny4wMDAwMDAwMDAg KzAxMDAKLUBAIC0wLDAgKzEsOCBAQAotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9kb2Mvc291cmNl cy5tawotKwotK1NVQkRJUlMgPSBiYWNrZW5kcwotKwotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09N UEFUSUJJTElUWSA9ICQoaHRtbF9sb2NhbF9zb3VyY2VzKSBcCi0rCSQoY3NzX2xvY2FsX3NvdXJj ZXMpICQoaW1nX2xvY2FsX3NvdXJjZXMpCi0rCi0rRVhUUkFfRElTVCA9ICQoRVhUUkFfRElTVF9G T1JfU09DSV9DT01QQVRJQklMSVRZKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL2RvYy9N YWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL01ha2VmaWxlLmluCi0tLS0gc29jaS0z LjAuMF80LXBhY2svZG9jL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL2RvYy9NYWtlZmlsZS5pbgkyMDExLTA3LTAz IDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw2MzUgQEAKLSsjIE1ha2VmaWxl LmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBj b25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMu Ci0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0 Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRI ID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNs dWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikv QFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1f X2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAot K2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9Q Uk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxs X3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0g JChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNU QUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9V TklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWls ZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtl ZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9zb3Vy Y2VzLm1rCi0rc3ViZGlyID0gZG9jCi0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2RpcikvYWNsb2Nh bC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9ib29z dC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4 X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmln L2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19jb25maWd1 cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5ERU5DSUVT KSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3NoKSAtZAot K0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NPTkZJR19D TEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KLStTT1VSQ0VTID0KLStE SVNUX1NPVVJDRVMgPQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxsLXJlY3Vyc2l2ZSBjaGVjay1y ZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJzaXZlIGluZm8tcmVjdXJzaXZl IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2aS1yZWN1cnNpdmUgaW5zdGFs bC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1cnNpdmUgaW5zdGFsbC1pbmZv LXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBpbnN0YWxsLXBzLXJlY3Vyc2l2 ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1yZWN1cnNpdmUgaW5zdGFsbGRp cnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1cnNpdmUgdW5pbnN0YWxsLXJl Y3Vyc2l2ZQotK1JFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTID0gbW9zdGx5Y2xlYW4tcmVjdXJzaXZl IGNsZWFuLXJlY3Vyc2l2ZQlcCi0rICBkaXN0Y2xlYW4tcmVjdXJzaXZlIG1haW50YWluZXItY2xl YW4tcmVjdXJzaXZlCi0rQU1fUkVDVVJTSVZFX1RBUkdFVFMgPSAkKFJFQ1VSU0lWRV9UQVJHRVRT Oi1yZWN1cnNpdmU9KSBcCi0rCSQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFM6LXJlY3Vyc2l2ZT0p IHRhZ3MgVEFHUyBjdGFncyBDVEFHUyBcCi0rCWRpc3RkaXIKLStFVEFHUyA9IGV0YWdzCi0rQ1RB R1MgPSBjdGFncwotK0RJU1RfU1VCRElSUyA9ICQoU1VCRElSUykKLStESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK2Ft X19yZWxhdGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAgc2VkX2ZpcnN0PSdzLF5cKFte L10qXCkvLiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14vXSovKiwsJzsgXAotKyAgc2Vk X2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNlZF9idXRsYXN0PSdzLC8qW14v XSokJCwsJzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8gXAotKyAgICBmaXJzdD1g ZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICBpZiB0ZXN0ICIk JGZpcnN0IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3QgIiQkZmlyc3QiID0gIi4uIjsg dGhlbiBcCi0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9sYXN0 ImAvIiQkZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQk c2VkX2J1dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAgICAgZmlyc3QyPWBlY2hvICIk JGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgICAgICBpZiB0ZXN0ICIkJGZp cnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjIi IHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVsc2UgXAotKyAgICAgICAgICBk aXIyPSIuLi8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAgICAgICAgZGlyMD0iJCRkaXIw Ii8iJCRmaXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsgXAotKyAgICBkaXIxPWBlY2hv ICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgIGRvbmU7IFwKLSsgIHJlbGRp cj0iJCRkaXIyIgotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9 IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJA Ci0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJQiA9 IEBCT09TVF9BU0lPX0xJQkAKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NU X0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVN X0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJP T1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01Q SV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9N UElfUFlUSE9OX0xJQkAKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAot K0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBA Qk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElC QAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09T VF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NE RVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBD UFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NP TkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAot K0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhD UFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBD WFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBE SVIgPSBAREVQRElSQAotK0RMTFRPT0wgPSBARExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJ TEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBA RUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0g QEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBH RU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNU QUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0g QElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJ TlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExE QAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBM SUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9T QAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUFO SUZFU1RfVE9PTCA9IEBNQU5JRkVTVF9UT09MQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNR TF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAot K01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0r TVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBO TUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xF X0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9D RkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFD TEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAot K09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdS RVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFN RUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUg PSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tB R0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9T RVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9T VEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0g QFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZM QUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElC ID0gQFJBTkxJQkAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxM ID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAK LStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURA Ci0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFE RVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURf Q09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWls ZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBh YnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2Fj X2N0X0FSID0gQGFjX2N0X0FSQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9 IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNs dWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RA Ci0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3Vu dGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAot K2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0r YnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLSti dWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIg PSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJA Ci0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNf b2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBA Z3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0 X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBA aG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVk ZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAot K2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9 IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9 IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9w QAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAot K3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStz ZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3Ny Y2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlh cyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4 QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3Jj ZGlyQAotK2h0bWxfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzLmh0 bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYXNpY3MuaHRtbCBcCi0rCSQodG9wX3NyY2Rpcikv ZG9jL2JleW9uZC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYm9vc3QuaHRtbCBcCi0rCSQo dG9wX3NyY2RpcikvZG9jL2Vycm9ycy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvZXhjaGFu Z2UuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2luZGV4Lmh0bWwgXAotKwkkKHRvcF9zcmNk aXIpL2RvYy9pbnRlcmZhY2VzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9tdWx0aXRocmVh ZGluZy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvcmF0aW9uYWxlLmh0bWwgXAotKwkkKHRv cF9zcmNkaXIpL2RvYy9yZWZlcmVuY2UuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3N0YXRl bWVudHMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5odG1sCi0rCi0rY3Nz X2xvY2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHlsZS5jc3MKLStpbWdfbG9jYWxf c291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5wbmcKLStTVUJESVJTID0gYmFj a2VuZHMKLStFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAkKGh0bWxfbG9jYWxf c291cmNlcykgXAotKwkkKGNzc19sb2NhbF9zb3VyY2VzKSAkKGltZ19sb2NhbF9zb3VyY2VzKQot KwotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLSth bGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmlu OiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvZG9jL3NvdXJjZXMubWsgJChh bV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChh bV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkg XAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7 IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJ ZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgZG9jL01ha2VmaWxl JzsgXAotKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRPTUFLRSkgLS1n bnUgZG9jL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAkKHNyY2Rp cikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNhc2UgJyQ/ JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikgXAotKwkg ICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMg JChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQodG9wX2J1 aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2Rl cGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29uZmlnLnN0 YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVOREVOQ0lF UykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1cmVfZGVw cykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1y ZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJY2QgJCh0 b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoCi0rJChh bV9fYWNsb2NhbF9tNF9kZXBzKToKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYg Ki5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLSsjIFRo aXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsgeW91 IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhyb3Vn aCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZhcmlh YmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFyaWFi bGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsjICAg ICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdoZW4g eW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2YWx1 ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6Ci0r CUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRv IFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICpr KikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rf c2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0r CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGVjaG8g Ik1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIg PSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90YXJnZXQ9 IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsgXAot Kwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7IHRl c3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZhaWw9 IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkg IGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWls Y29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5v OyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNsZWFu LSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElSUykn IDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0r CSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2PSIk JHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYgLiI7 IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Igc3Vi ZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGly IjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2NhbF90 YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIk JHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNv bTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToKLSsJbGlz dD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRz dWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElS UyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4g fHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFncyk7 IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRBR1Nf RklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19GSUxF UyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1m ICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJ ICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9 IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQg aTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStUQUdT OiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJ RVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlzZXQgeDsgXAotKwloZXJlPWBwd2Rg OyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJzaW9uKSA+L2Rldi9udWxs IDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3MtaW5jbHVkZTsgXAotKwkg IGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0taW5jbHVkZTsg XAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBz dWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6 OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8IFwKLSsJICAgICAgc2V0 ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9UQUdTIjsgXAotKwkgIGZp OyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQo VEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBp ZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsg Zmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1w dHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxl cykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1Nf QVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUi IHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwK LSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FS R1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJICAgICQoRVRB R1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAg ICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiBj dGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVT KSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1Nf QVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFH U0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwlo ZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmICQoYW1fX2Nk KSAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUi Ci0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lN UyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1g ZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9w c3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xc XFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9y IGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8 XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98 JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAq LyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8v IWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7 IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0 ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rp cik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1g ZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0 IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIp LyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwK LSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAk JGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxl ICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIp LyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwK LSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIg fHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmls ZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJ ICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQoRElTVF9TVUJE SVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRzdWJkaXIi IFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8 IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQoRElTVF9TVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gLjsg dGhlbiA6OyBlbHNlIFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQoZGlzdGRpcikvJCRz dWJkaXIiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X2Rpc3RkaXI9 JCRyZWxkaXI7IFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQodG9wX2Rpc3RkaXIpIjsg XAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld190b3BfZGlzdGRpcj0kJHJl bGRpcjsgXAotKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3RkaXI9IiQkbmV3X2Rpc3Rk aXIiIFxcIjsgXAotKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBhbV9fc2tp cF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3RkaXIpIjsgXAotKwkgICAg KCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIFwKLSsJICAgICAg ICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCi0rCQlhbV9fcmVtb3ZlX2Rpc3RkaXI9OiBcCi0r CQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCQlhbV9fc2tpcF9tb2RlX2ZpeD06IFwKLSsJ ICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRv bmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLXJlY3Vyc2l2ZQotK2FsbC1hbTog TWFrZWZpbGUKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRp cnMtYW06Ci0raW5zdGFsbDogaW5zdGFsbC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3Rh bGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUK LSt1bmluc3RhbGw6IHVuaW5zdGFsbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0K LSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEt YW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0 cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFM TF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NU UklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNU UklQKScgfHwgXAotKwkgICAgZWNobyAiSU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQo U1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVy aWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9G SUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3Jj ZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAk KENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6 Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVz ZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRv b2xzIHRvIHJlYnVpbGQuIgotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStjbGVhbi1hbTog Y2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIG1vc3RseWNsZWFuLWFtCi0rCi0rZGlzdGNsZWFu OiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTog Y2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1y ZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1yZWN1cnNpdmUKLSsKLStodG1s LWFtOgotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxs LWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGlu c3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1p bmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2lu c3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStp bnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwot K2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xl YW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50 YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsK LSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06 IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJl Y3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0r Ci0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAk KFJFQ1VSU0lWRV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWFtIGluc3Rh bGwtc3RyaXAgdGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RB UkdFVFMpICQoUkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBj aGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxpYnRvb2wgXAotKwljdGFn cyBjdGFncy1yZWN1cnNpdmUgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNs ZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlo dG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJ aW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBc Ci0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwt aW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBpbnN0YWxs LXBkZi1hbSBcCi0rCWluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIGluc3Rh bGxjaGVjayBcCi0rCWluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBt YWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFu IG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0g cHMgcHMtYW0gdGFncyB0YWdzLXJlY3Vyc2l2ZSBcCi0rCXVuaW5zdGFsbCB1bmluc3RhbGwtYW0K LSsKLSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4 cG9ydCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lz ViBhdCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2Np LTMuMC4wXzQtcGFjay9kb2Mvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvZG9jL3NvdXJj ZXMubWsKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9kb2Mvc291cmNlcy5tawkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9kb2Mvc291cmNl cy5tawkyMDEwLTAxLTIzIDEzOjI1OjU3LjAwMDAwMDAwMCArMDEwMAotQEAgLTAsMCArMSwxOCBA QAotK2h0bWxfbG9jYWxfc291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL2JhY2tlbmRzLmh0bWwg XAotKwkkKHRvcF9zcmNkaXIpL2RvYy9iYXNpY3MuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9j L2JleW9uZC5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvYm9vc3QuaHRtbCBcCi0rCSQodG9w X3NyY2RpcikvZG9jL2Vycm9ycy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvZXhjaGFuZ2Uu aHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL2luZGV4Lmh0bWwgXAotKwkkKHRvcF9zcmNkaXIp L2RvYy9pbnRlcmZhY2VzLmh0bWwgXAotKwkkKHRvcF9zcmNkaXIpL2RvYy9tdWx0aXRocmVhZGlu Zy5odG1sIFwKLSsJJCh0b3Bfc3JjZGlyKS9kb2MvcmF0aW9uYWxlLmh0bWwgXAotKwkkKHRvcF9z cmNkaXIpL2RvYy9yZWZlcmVuY2UuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3N0YXRlbWVu dHMuaHRtbCBcCi0rCSQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5odG1sCi0rCi0rY3NzX2xv Y2FsX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL2RvYy9zdHlsZS5jc3MKLSsKLStpbWdfbG9jYWxf c291cmNlcyA9ICQodG9wX3NyY2RpcikvZG9jL3N0cnVjdHVyZS5wbmcKLSsKLWRpZmYgLU51ciBz b2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZSBzb2NpLTMuMC4wX3RyZXAzMDAvTWFrZWZpbGUKLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9NYWtlZmlsZQkyMDExLTA3LTAzIDE4OjU1OjA2LjM3NDg3NzI4 MSArMDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZQkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsMjAgKzAsMCBAQAotLWJ1aWxkX2xpYnMgOgotLQlj ZCBidWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgYnVpbGQudGNsIGNvcmUgY29yZS1zbyBteXNx bCBteXNxbC1zbyBwb3N0Z3Jlc3FsIHBvc3RncmVzcWwtc28gb3JhY2xlIG9yYWNsZS1zbwotLQot LXRlc3RzIDoKLS0JY2QgYnVpbGQvdW5peDsgYGNhdCBsb2NhbC90Y2xgIGJ1aWxkLnRjbCBteXNx bC10ZXN0IG9yYWNsZS10ZXN0IHBvc3RncmVzcWwtdGVzdAotLQotLWluc3RhbGwgOgotLQljZCBi dWlsZC91bml4OyBgY2F0IGxvY2FsL3RjbGAgaW5zdGFsbC50Y2wKLS0KLS11bmluc3RhbGwgOgot LQljZCBidWlsZC91bml4L2xvY2FsOyAvYmluL3NoIHVuaW5zdGFsbC5zaAotLQotLWNsZWFuIDoK LS0JZmluZCAuIC1uYW1lICcqLm8nIHwgeGFyZ3Mgcm0KLS0JZmluZCAuIC1uYW1lICcqLmEnIHwg eGFyZ3Mgcm0KLS0JZmluZCAuIC1uYW1lICcqLnNvJyB8IHhhcmdzIHJtCi0tCXJtIC1mIHNyYy9i YWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwKLS0Jcm0gLWYgc3JjL2JhY2tlbmRzL29yYWNs ZS90ZXN0L3Rlc3Qtb3JhY2xlCi0tCXJtIC1mIHNyYy9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qv dGVzdC1wb3N0Z3Jlc3FsCi0tCXJtIC1yZiBidWlsZC91bml4L2luY2x1ZGUgYnVpbGQvdW5peC9s aWIgYnVpbGQvdW5peC90ZXN0cwotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxl LmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5hbQotLS0tIHNvY2ktMy4wLjBfNC1wYWNr L01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmFtCTIwMTEtMDItMDggMjI6Mjk6NTQuMDAwMDAwMDAw ICswMTAwCi1AQCAtMCwwICsxLDYyIEBACi0rIyMgdG9wIGRpcmVjdG9yeQotK2luY2x1ZGUgJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLSsKLStBQ0xPQ0FMX0FNRkxBR1MgPSAtSSBjb25m aWcKLSsKLStBVVRPTUFLRV9PUFRJT05TID0gZGlzdC1iemlwMgotKwotK2lmIFJVTl9URVNUUwot KyMgIFRFU1RfRElSID0gdGVzdAotK2VuZGlmCi0rCi0rTUFOX0RPQ19ESVIgPSBtYW4KLSsKLSsj IE1haW50YWluYW5jZSBmaWxlcwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4g YWNsb2NhbC5tNCBjb25maWd1cmUgXAotKwkJCWNvbmZpZy1oLmluIHNpYy9zdGFtcC1oLmluIGF1 dG9nZW4uc2ggYm9vdHN0cmFwCi0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElU WSA9IC5fY29uZmlndXJlIC5fTWFrZWZpbGUgY29udHJpYgotK0VYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSA9IGNvbnRyaWIKLSsKLStFWFRSQV9ESVNUID0gTWFrZWZpbGUuY29tbW9u ICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZKSBAUEFDS0FHRUAubTQKLSsKLSsj IEJ1aWxkIGluIHRoZXNlIGRpcmVjdG9yaWVzOgotK1NVQkRJUlMgPSBidWlsZCBAUEFDS0FHRUAg JChNQU5fRE9DX0RJUikgZG9jICQoVEVTVF9ESVIpCi0rCi0rCi0rIyBDb25maWd1cmF0aW9uIGhl bHBlcnMKLStiaW5fU0NSSVBUUyA9IEBQQUNLQUdFQC1jb25maWcKLSsKLStwa2djb25maWdkaXIg PSAkKGxpYmRpcikvcGtnY29uZmlnCi0rcGtnY29uZmlnX0RBVEEgPSBAUEFDS0FHRUAucGMKLSsK LSttNGRhdGFkaXIgPSAkKGRhdGFkaXIpL2FjbG9jYWwKLSttNGRhdGFfREFUQSA9IEBQQUNLQUdF QC5tNAotKwotKyMgVGFyZ2V0cwotK3VuaW5zdGFsbC1sb2NhbDoKLSsJcm0gLXJmICQoREVTVERJ UikkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotKwotK2Rpc3QtaHRtbDoKLSsJJChNQUtFKSAtQyBk b2MgZGlzdC1odG1sCi0rCi0rCi0rc25hcHNob3Q6IHNuYXBzaG90LXNyYyBzbmFwc2hvdC1odG1s Ci0rCi0rCi0rc25hcHNob3Qtc3JjOgotKwkkKE1BS0UpIGRpc3QgZGlzdGRpcj1AUEFDS0FHRV9U QVJOQU1FQC1gZGF0ZSArIiVZJW0lZCJgCi0rCi0rc25hcHNob3QtaHRtbDoKLSsJJChNQUtFKSAt QyBkb2MgZGlzdC1odG1sIGh0bWxfdGFybmFtZT1AUEFDS0FHRV9UQVJOQU1FQC1odG1sLWRvYy1g ZGF0ZSArIiVZJW0lZCJgCi0rCi0rdXBsb2FkOiB1cGxvYWQtc3JjIHVwbG9hZC1odG1sCi0rCi0r dXBsb2FkLXNyYzogZGlzdAotKwlAVVBMT0FEX0NPTU1BTkRAIEBQQUNLQUdFX1RBUk5BTUVALUBW RVJTSU9OQC50YXIuZ3ogXAotKwlAUEFDS0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmJ6Mgot KwotK3VwbG9hZC1odG1sOiBkaXN0LWh0bWwKLSsJQFVQTE9BRF9DT01NQU5EQCBAUEFDS0FHRV9U QVJOQU1FQC1odG1sLWRvYy1AVkVSU0lPTkAudGFyLmd6IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAt aHRtbC1kb2MtQFZFUlNJT05ALnRhci5iejIKLSsKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9NYWtlZmlsZS5jb21tb24gc29jaS0zLjAuMF90cmVwMzAwL01ha2VmaWxlLmNvbW1vbgotLS0t IHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmNvbW1vbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9NYWtlZmlsZS5jb21tb24JMjAw OS0wNC0xOCAxNzoyMDozMi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMiBAQAotK0BTRVRf TUFLRUAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMw MC9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL01ha2VmaWxlLmluCTE5NzAtMDEt MDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL01ha2Vm aWxlLmluCTIwMTEtMDctMDMgMTg6NDQ6MjguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDky NCBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1h a2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5 NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIw MDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Np b24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2Rp ZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRl ZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStA U0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFk aXIpL0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAot K3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJl eGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQ QVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAt YyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFs bF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RB TExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFM X0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1B TF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoK LStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1Rf Q09NTU9OID0gUkVBRE1FICQoYW1fX2NvbmZpZ3VyZV9kZXBzKSAkKHNyY2RpcikvTWFrZWZpbGUu YW0gXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvY2ktY29uZmlnLmluIFwK LSsJJChzcmNkaXIpL3NvY2kucGMuaW4gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSBBVVRIT1JTIENPUFlJTkcgQ2hhbmdlTG9nIElOU1RB TEwgTkVXUyBcCi0rCWNvbmZpZy9jb25maWcuZ3Vlc3MgY29uZmlnL2NvbmZpZy5zdWIgY29uZmln L2RlcGNvbXAgXAotKwljb25maWcvaW5zdGFsbC1zaCBjb25maWcvbHRtYWluLnNoIGNvbmZpZy9t aXNzaW5nCi0rc3ViZGlyID0gLgotK0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwu bTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3Qu bTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2Rp cikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9w b3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQo dG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9s dG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv bHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJl X2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykg XAotKwkkKEFDTE9DQUxfTTQpCi0rYW1fX0NPTkZJR19ESVNUQ0xFQU5fRklMRVMgPSBjb25maWcu c3RhdHVzIGNvbmZpZy5jYWNoZSBjb25maWcubG9nIFwKLSsgY29uZmlndXJlLmxpbmVubyBjb25m aWcuc3RhdHVzLmxpbmVubwotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09O RklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFO X0ZJTEVTID0gc29jaS1jb25maWcgc29jaS5wYwotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9 Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwg c2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChz cmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwK LSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQk cCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9tYXggPSA0MAotK2FtX19ub2Jh c2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNl ZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFzZV9zdHJpcCA9IFwKLSsgIGZv ciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0 cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwK LSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCi0rICBzZWQg InN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14v XSokJCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmls ZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBpZiAoKytuWyQkMl0gPT0gJChh bV9faW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQy XSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxl cykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2VfbGlzdCA9IFwKLSsgIHNlZCAn JCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCi0rICBzZWQg JyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVT VERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChtNGRhdGFkaXIpIiBcCi0rCSIkKERFU1RESVIp JChwa2djb25maWdkaXIpIgotK1NDUklQVFMgPSAkKGJpbl9TQ1JJUFRTKQotK1NPVVJDRVMgPQot K0RJU1RfU09VUkNFUyA9Ci0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNr LXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNp dmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0 YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWlu Zm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJz aXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxs ZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwt cmVjdXJzaXZlCi0rREFUQSA9ICQobTRkYXRhX0RBVEEpICQocGtnY29uZmlnX0RBVEEpCi0rUkVD VVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJz aXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUK LStBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0p IFwKLSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0 YWdzIENUQUdTIFwKLSsJZGlzdGRpciBkaXN0IGRpc3QtYWxsIGRpc3RjaGVjawotK0VUQUdTID0g ZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RG SUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJB X0RJU1QpCi0rZGlzdGRpciA9ICQoUEFDS0FHRSktJChWRVJTSU9OKQotK3RvcF9kaXN0ZGlyID0g JChkaXN0ZGlyKQotK2FtX19yZW1vdmVfZGlzdGRpciA9IFwKLSsgIHsgdGVzdCAhIC1kICIkKGRp c3RkaXIpIiBcCi0rICAgIHx8IHsgZmluZCAiJChkaXN0ZGlyKSIgLXR5cGUgZCAhIC1wZXJtIC0y MDAgLWV4ZWMgY2htb2QgdSt3IHt9ICc7JyBcCi0rICAgICAgICAgJiYgcm0gLWZyICIkKGRpc3Rk aXIpIjsgfTsgfQotK2FtX19yZWxhdGl2aXplID0gXAotKyAgZGlyMD1gcHdkYDsgXAotKyAgc2Vk X2ZpcnN0PSdzLF5cKFteL10qXCkvLiokJCxcMSwnOyBcCi0rICBzZWRfcmVzdD0ncyxeW14vXSov KiwsJzsgXAotKyAgc2VkX2xhc3Q9J3MsXi4qL1woW14vXSpcKSQkLFwxLCc7IFwKLSsgIHNlZF9i dXRsYXN0PSdzLC8qW14vXSokJCwsJzsgXAotKyAgd2hpbGUgdGVzdCAtbiAiJCRkaXIxIjsgZG8g XAotKyAgICBmaXJzdD1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAot KyAgICBpZiB0ZXN0ICIkJGZpcnN0IiAhPSAiLiI7IHRoZW4gXAotKyAgICAgIGlmIHRlc3QgIiQk Zmlyc3QiID0gIi4uIjsgdGhlbiBcCi0rICAgICAgICBkaXIyPWBlY2hvICIkJGRpcjAiIHwgc2Vk IC1lICIkJHNlZF9sYXN0ImAvIiQkZGlyMiI7IFwKLSsgICAgICAgIGRpcjA9YGVjaG8gIiQkZGly MCIgfCBzZWQgLWUgIiQkc2VkX2J1dGxhc3QiYDsgXAotKyAgICAgIGVsc2UgXAotKyAgICAgICAg Zmlyc3QyPWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgICAg ICBpZiB0ZXN0ICIkJGZpcnN0MiIgPSAiJCRmaXJzdCI7IHRoZW4gXAotKyAgICAgICAgICBkaXIy PWBlY2hvICIkJGRpcjIiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgICAgICAgIGVsc2Ug XAotKyAgICAgICAgICBkaXIyPSIuLi8kJGRpcjIiOyBcCi0rICAgICAgICBmaTsgXAotKyAgICAg ICAgZGlyMD0iJCRkaXIwIi8iJCRmaXJzdCI7IFwKLSsgICAgICBmaTsgXAotKyAgICBmaTsgXAot KyAgICBkaXIxPWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9yZXN0ImA7IFwKLSsgIGRv bmU7IFwKLSsgIHJlbGRpcj0iJCRkaXIyIgotK0RJU1RfQVJDSElWRVMgPSAkKGRpc3RkaXIpLnRh ci5neiAkKGRpc3RkaXIpLnRhci5iejIKLStHWklQX0VOViA9IC0tYmVzdAotK2Rpc3R1bmluc3Rh bGxjaGVja19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKLStkaXN0Y2xlYW5jaGVj a19saXN0ZmlsZXMgPSBmaW5kIC4gLXR5cGUgZiAtcHJpbnQKLStBQ0xPQ0FMID0gQEFDTE9DQUxA Ci0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0r QVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9 IEBBV0tACi0rQk9PU1RfQVNJT19MSUIgPSBAQk9PU1RfQVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdT ID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElN RV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0r Qk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMg PSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1Rf TVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9P UFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9M SUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhf TElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElC QAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RF TV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RI UkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9U RVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JP T1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0Mg PSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQ UCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQ VU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5J VF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJT SU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENY WERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhf V0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERFUERJUkAKLStETExUT09MID0gQERMTFRP T0xACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9f QyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VH UkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VO RVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9 IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9E QVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJ UFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExf U1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JK UyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQ TyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01B S0VJTkZPID0gQE1BS0VJTkZPQAotK01BTklGRVNUX1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKLStN S0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNR TF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlT UUxfTElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAK LStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStP QkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9P Q0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBP UkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVS U0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9 IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BB Q0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9T VFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1VS TCA9IEBQQUNLQUdFX1VSTEAKLStQQUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAot K1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19D T05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZM QUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9M REZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9T VEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5MSUJACi0rU0VEID0gQFNFREAKLStTRVRf TUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBT T0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklF RCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0r VVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAot K2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGly QAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2Rp ciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9BUiA9IEBhY19jdF9BUkAKLSthY19jdF9DQyA9 IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBA YWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGlu Z19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1f X3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJp bmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLSti dWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3Zl bmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9 IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlm Zl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStk dmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0g QGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2Fs aWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBo b3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRp ckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2lu c3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIg PSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9j YWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFu ZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVk aXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJh bnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAK LStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRp ciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBA c3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9w cmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGly QAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVp bGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK0FDTE9DQUxfQU1GTEFHUyA9IC1JIGNvbmZpZwotK0FV VE9NQUtFX09QVElPTlMgPSBkaXN0LWJ6aXAyCi0rCi0rIyAgVEVTVF9ESVIgPSB0ZXN0Ci0rTUFO X0RPQ19ESVIgPSBtYW4KLSsKLSsjIE1haW50YWluYW5jZSBmaWxlcwotK01BSU5UQUlORVJDTEVB TkZJTEVTID0gTWFrZWZpbGUuaW4gYWNsb2NhbC5tNCBjb25maWd1cmUgXAotKwkJCWNvbmZpZy1o LmluIHNpYy9zdGFtcC1oLmluIGF1dG9nZW4uc2ggYm9vdHN0cmFwCi0rCi0rCi0rI0VYVFJBX0RJ U1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IC5fY29uZmlndXJlIC5fTWFrZWZpbGUgY29udHJp YgotK0VYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSA9IGNvbnRyaWIKLStFWFRSQV9E SVNUID0gTWFrZWZpbGUuY29tbW9uICQoRVhUUkFfRElTVF9GT1JfU09DSV9DT01QQVRJQklMSVRZ KSBAUEFDS0FHRUAubTQKLSsKLSsjIEJ1aWxkIGluIHRoZXNlIGRpcmVjdG9yaWVzOgotK1NVQkRJ UlMgPSBidWlsZCBAUEFDS0FHRUAgJChNQU5fRE9DX0RJUikgZG9jICQoVEVTVF9ESVIpCi0rCi0r IyBDb25maWd1cmF0aW9uIGhlbHBlcnMKLStiaW5fU0NSSVBUUyA9IEBQQUNLQUdFQC1jb25maWcK LStwa2djb25maWdkaXIgPSAkKGxpYmRpcikvcGtnY29uZmlnCi0rcGtnY29uZmlnX0RBVEEgPSBA UEFDS0FHRUAucGMKLSttNGRhdGFkaXIgPSAkKGRhdGFkaXIpL2FjbG9jYWwKLSttNGRhdGFfREFU QSA9IEBQQUNLQUdFQC5tNAotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSth bS0tcmVmcmVzaDoKLSsJQDoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFr ZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChhbV9fY29uZmlndXJlX2Rl cHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2Rl cHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgIGVjaG8gJyBjZCAkKHNyY2Rpcikg JiYgJChBVVRPTUFLRSkgLS1nbnUnOyBcCi0rCSAgICAgICQoYW1fX2NkKSAkKHNyY2RpcikgJiYg JChBVVRPTUFLRSkgLS1nbnUgXAotKwkJJiYgZXhpdCAwOyBcCi0rCSAgICAgIGV4aXQgMTs7IFwK LSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChB VVRPTUFLRSkgLS1nbnUgTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYm IFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBNYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUK LStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcu c3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAg ZWNobyAnICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyc7IFwKLSsJICAgICQoU0hFTEwpIC4vY29u ZmlnLnN0YXR1czs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBc Ci0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRA ICQoYW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikv Y29uZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RF UEVOREVOQ0lFUykKLSsJJChTSEVMTCkgLi9jb25maWcuc3RhdHVzIC0tcmVjaGVjawotKwotKyQo dG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCSQoYW1fX2Nk KSAkKHNyY2RpcikgJiYgJChBVVRPQ09ORikKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2Nh bF9tNF9kZXBzKQotKwkkKGFtX19jZCkgJChzcmNkaXIpICYmICQoQUNMT0NBTCkgJChBQ0xPQ0FM X0FNRkxBR1MpCi0rJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKLStzb2NpLWNvbmZpZzogJCh0b3Bf YnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMgJChzcmNkaXIpL3NvY2ktY29uZmlnLmluCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJEAKLStzb2NpLnBjOiAk KHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cyAkKHNyY2Rpcikvc29jaS5wYy5pbgotKwljZCAk KHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICRACi0raW5zdGFsbC1i aW5TQ1JJUFRTOiAkKGJpbl9TQ1JJUFRTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAt eiAiJChiaW5kaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChiaW5kaXIpIgotKwlAbGlz dD0nJChiaW5fU0NSSVBUUyknOyB0ZXN0IC1uICIkKGJpbmRpcikiIHx8IGxpc3Q9OyBcCi0rCWZv ciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2Ug ZD0iJChzcmNkaXIpLyI7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZiAiJCRkJCRwIjsgdGhlbiBlY2hv ICIkJGQkJHAiOyBlY2hvICIkJHAiOyBlbHNlIDo7IGZpOyBcCi0rCWRvbmUgfCBcCi0rCXNlZCAt ZSAncDtzLC4qLywsO24nIFwKLSsJICAgIC1lICdoO3N8Lip8LnwnIFwKLSsJICAgIC1lICdwO3g7 cywuKi8sLDskKHRyYW5zZm9ybSknIHwgc2VkICdOO047TjtzLFxuLCAsZycgfCBcCi0rCSQoQVdL KSAnQkVHSU4geyBmaWxlc1siLiJdID0gIiI7IGRpcnNbIi4iXSA9IDE7IH0gXAotKwkgIHsgZD0k JDM7IGlmIChkaXJzW2RdICE9IDEpIHsgcHJpbnQgImQiLCBkOyBkaXJzW2RdID0gMSB9IFwKLSsJ ICAgIGlmICgkJDIgPT0gJCQ0KSB7IGZpbGVzW2RdID0gZmlsZXNbZF0gIiAiICQkMTsgXAotKwkg ICAgICBpZiAoKytuW2RdID09ICQoYW1fX2luc3RhbGxfbWF4KSkgeyBcCi0rCQlwcmludCAiZiIs IGQsIGZpbGVzW2RdOyBuW2RdID0gMDsgZmlsZXNbZF0gPSAiIiB9IH0gXAotKwkgICAgZWxzZSB7 IHByaW50ICJmIiwgZCAiLyIgJCQ0LCAkJDEgfSB9IFwKLSsJICBFTkQgeyBmb3IgKGQgaW4gZmls ZXMpIHByaW50ICJmIiwgZCwgZmlsZXNbZF0gfScgfCBcCi0rCXdoaWxlIHJlYWQgdHlwZSBkaXIg ZmlsZXM7IGRvIFwKLSsJICAgICBpZiB0ZXN0ICIkJGRpciIgPSAuOyB0aGVuIGRpcj07IGVsc2Ug ZGlyPS8kJGRpcjsgZmk7IFwKLSsJICAgICB0ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKLSsJICAg ICAgIGVjaG8gIiAkKElOU1RBTExfU0NSSVBUKSAkJGZpbGVzICckKERFU1RESVIpJChiaW5kaXIp JCRkaXInIjsgXAotKwkgICAgICAgJChJTlNUQUxMX1NDUklQVCkgJCRmaWxlcyAiJChERVNURElS KSQoYmluZGlyKSQkZGlyIiB8fCBleGl0ICQkPzsgXAotKwkgICAgIH0gXAotKwk7IGRvbmUKLSsK LSt1bmluc3RhbGwtYmluU0NSSVBUUzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9 JyQoYmluX1NDUklQVFMpJzsgdGVzdCAtbiAiJChiaW5kaXIpIiB8fCBleGl0IDA7IFwKLSsJZmls ZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IFwKLSsJICAgICAgIHNl ZCAtZSAncywuKi8sLDskKHRyYW5zZm9ybSknYDsgXAotKwl0ZXN0IC1uICIkJGxpc3QiIHx8IGV4 aXQgMDsgXAotKwllY2hvICIgKCBjZCAnJChERVNURElSKSQoYmluZGlyKScgJiYgcm0gLWYiICQk ZmlsZXMgIikiOyBcCi0rCWNkICIkKERFU1RESVIpJChiaW5kaXIpIiAmJiBybSAtZiAkJGZpbGVz Ci0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0 b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0rCi0rZGlzdGNsZWFuLWxpYnRvb2w6Ci0rCS1y bSAtZiBsaWJ0b29sIGNvbmZpZy5sdAotK2luc3RhbGwtbTRkYXRhREFUQTogJChtNGRhdGFfREFU QSkKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQobTRkYXRhZGlyKSIgfHwgJChN S0RJUl9QKSAiJChERVNURElSKSQobTRkYXRhZGlyKSIKLSsJQGxpc3Q9JyQobTRkYXRhX0RBVEEp JzsgdGVzdCAtbiAiJChtNGRhdGFkaXIpIiB8fCBsaXN0PTsgXAotKwlmb3IgcCBpbiAkJGxpc3Q7 IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8i OyBmaTsgXAotKwkgIGVjaG8gIiQkZCQkcCI7IFwKLSsJZG9uZSB8ICQoYW1fX2Jhc2VfbGlzdCkg fCBcCi0rCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKLSsJICBlY2hvICIgJChJTlNUQUxMX0RBVEEp ICQkZmlsZXMgJyQoREVTVERJUikkKG00ZGF0YWRpciknIjsgXAotKwkgICQoSU5TVEFMTF9EQVRB KSAkJGZpbGVzICIkKERFU1RESVIpJChtNGRhdGFkaXIpIiB8fCBleGl0ICQkPzsgXAotKwlkb25l Ci0rCi0rdW5pbnN0YWxsLW00ZGF0YURBVEE6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBs aXN0PSckKG00ZGF0YV9EQVRBKSc7IHRlc3QgLW4gIiQobTRkYXRhZGlyKSIgfHwgbGlzdD07IFwK LSsJZmlsZXM9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8 Xi4qL3x8J2A7IFwKLSsJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCi0rCWVjaG8gIiAo IGNkICckKERFU1RESVIpJChtNGRhdGFkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKLSsJ Y2QgIiQoREVTVERJUikkKG00ZGF0YWRpcikiICYmIHJtIC1mICQkZmlsZXMKLStpbnN0YWxsLXBr Z2NvbmZpZ0RBVEE6ICQocGtnY29uZmlnX0RBVEEpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0 ZXN0IC16ICIkKHBrZ2NvbmZpZ2RpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBrZ2Nv bmZpZ2RpcikiCi0rCUBsaXN0PSckKHBrZ2NvbmZpZ19EQVRBKSc7IHRlc3QgLW4gIiQocGtnY29u ZmlnZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVz dCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwKLSsJICBlY2hv ICIkJGQkJHAiOyBcCi0rCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAotKwl3aGlsZSByZWFk IGZpbGVzOyBkbyBcCi0rCSAgZWNobyAiICQoSU5TVEFMTF9EQVRBKSAkJGZpbGVzICckKERFU1RE SVIpJChwa2djb25maWdkaXIpJyI7IFwKLSsJICAkKElOU1RBTExfREFUQSkgJCRmaWxlcyAiJChE RVNURElSKSQocGtnY29uZmlnZGlyKSIgfHwgZXhpdCAkJD87IFwKLSsJZG9uZQotKwotK3VuaW5z dGFsbC1wa2djb25maWdEQVRBOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChw a2djb25maWdfREFUQSknOyB0ZXN0IC1uICIkKHBrZ2NvbmZpZ2RpcikiIHx8IGxpc3Q9OyBcCi0r CWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRwOyBkb25lIHwgc2VkIC1lICdzfF4u Ki98fCdgOyBcCi0rCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQgMDsgXAotKwllY2hvICIgKCBj ZCAnJChERVNURElSKSQocGtnY29uZmlnZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCi0r CWNkICIkKERFU1RESVIpJChwa2djb25maWdkaXIpIiAmJiBybSAtZiAkJGZpbGVzCi0rCi0rIyBU aGlzIGRpcmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlv dSBjYW4gY2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91 Z2ggdGhpcyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJp YWJsZXM6IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlh YmxlIGlzIHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAg ICAgKHdoaWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVu IHlvdSBydW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFs dWVzIG9uIHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgot KwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBk byBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAq ayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90 X3NlZW49bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAot KwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hv ICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIi ID0gIi4iOyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwK LSsJZG9uZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0 ZXN0IC16ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWls PSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJ ICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFp bGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1u bzsgXAotKwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVh bi0qKSBsaXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMp JyA7OyBcCi0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAot KwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0i JCRzdWJkaXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4i OyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1 YmRpciBpbiAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRp ciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0i JCR0YXJnZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxj b207IFwKLSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxp c3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQk c3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSB0YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAu IHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3Mp OyBcCi0rCWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdT X0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklM RVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAt ZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0r CSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsg fSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50 IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFH UzogdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5D SUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdk YDsgXAotKwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVs bCAyPiYxOyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJ ICBlbXB0eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7 IFwKLSsJICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4g OjsgZWxzZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNl dCAiJCRAIiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBm aTsgXAotKwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdT X0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVl IiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBc Ci0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19B UkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVU QUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAg ICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzog Y3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lF UykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFE RVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlz dDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hv ICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNb JCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkg eyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdT X0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RB R1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJ aGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19j ZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJl IgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZ TVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwkkKGFtX19yZW1vdmVf ZGlzdGRpcikKLSsJdGVzdCAtZCAiJChkaXN0ZGlyKSIgfHwgbWtkaXIgIiQoZGlzdGRpcikiCi0r CUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdz L1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAg ZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwK LSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0 b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2Zp bGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0r CQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJ CSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7 IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47 IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVu IFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBc Ci0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBm aW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2Qg dStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8k JGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAk KHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBm aW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2Qg dStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQo ZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIk KGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGly KS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxp c3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlz dGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJk aXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQo RElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9 IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkg ICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQo dG9wX2Rpc3RkaXIpIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld190 b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3Rk aXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAotKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rp c3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3Rk aXIpIjsgXAotKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3Rk aXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCi0rCQlhbV9fcmVtb3Zl X2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCQlhbV9fc2tpcF9t b2RlX2ZpeD06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQgMTsgXAot KwkgIGZpOyBcCi0rCWRvbmUKLSsJLXRlc3QgLW4gIiQoYW1fX3NraXBfbW9kZV9maXgpIiBcCi0r CXx8IGZpbmQgIiQoZGlzdGRpcikiIC10eXBlIGQgISAtcGVybSAtNzU1IFwKLSsJCS1leGVjIGNo bW9kIHUrcnd4LGdvK3J4IHt9IFw7IC1vIFwKLSsJICAhIC10eXBlIGQgISAtcGVybSAtNDQ0IC1s aW5rcyAxIC1leGVjIGNobW9kIGErciB7fSBcOyAtbyBcCi0rCSAgISAtdHlwZSBkICEgLXBlcm0g LTQwMCAtZXhlYyBjaG1vZCBhK3Ige30gXDsgLW8gXAotKwkgICEgLXR5cGUgZCAhIC1wZXJtIC00 NDQgLWV4ZWMgJChpbnN0YWxsX3NoKSAtYyAtbSBhK3Ige30ge30gXDsgXAotKwl8fCBjaG1vZCAt UiBhK3IgIiQoZGlzdGRpcikiCi0rZGlzdC1nemlwOiBkaXN0ZGlyCi0rCXRhcmRpcj0kKGRpc3Rk aXIpICYmICQoYW1fX3RhcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRpciku dGFyLmd6Ci0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotK2Rpc3QtYnppcDI6IGRpc3RkaXIKLSsJ dGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIp LnRhci5iejIKLSsJJChhbV9fcmVtb3ZlX2Rpc3RkaXIpCi0rCi0rZGlzdC1sem1hOiBkaXN0ZGly Ci0rCXRhcmRpcj0kKGRpc3RkaXIpICYmICQoYW1fX3RhcikgfCBsem1hIC05IC1jID4kKGRpc3Rk aXIpLnRhci5sem1hCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwotK2Rpc3QteHo6IGRpc3Rk aXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IHh6IC1jID4kKGRpc3RkaXIp LnRhci54egotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsKLStkaXN0LXRhclo6IGRpc3RkaXIK LSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IGNvbXByZXNzIC1jID4kKGRpc3Rk aXIpLnRhci5aCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwotK2Rpc3Qtc2hhcjogZGlzdGRp cgotKwlzaGFyICQoZGlzdGRpcikgfCBHWklQPSQoR1pJUF9FTlYpIGd6aXAgLWMgPiQoZGlzdGRp cikuc2hhci5negotKwkkKGFtX19yZW1vdmVfZGlzdGRpcikKLSsKLStkaXN0LXppcDogZGlzdGRp cgotKwktcm0gLWYgJChkaXN0ZGlyKS56aXAKLSsJemlwIC1ycSAkKGRpc3RkaXIpLnppcCAkKGRp c3RkaXIpCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwotK2Rpc3QgZGlzdC1hbGw6IGRpc3Rk aXIKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9fdGFyKSB8IEdaSVA9JChHWklQX0VOVikg Z3ppcCAtYyA+JChkaXN0ZGlyKS50YXIuZ3oKLSsJdGFyZGlyPSQoZGlzdGRpcikgJiYgJChhbV9f dGFyKSB8IGJ6aXAyIC05IC1jID4kKGRpc3RkaXIpLnRhci5iejIKLSsJJChhbV9fcmVtb3ZlX2Rp c3RkaXIpCi0rCi0rIyBUaGlzIHRhcmdldCB1bnRhcnMgdGhlIGRpc3QgZmlsZSBhbmQgdHJpZXMg YSBWUEFUSCBjb25maWd1cmF0aW9uLiAgVGhlbgotKyMgaXQgZ3VhcmFudGVlcyB0aGF0IHRoZSBk aXN0cmlidXRpb24gaXMgc2VsZi1jb250YWluZWQgYnkgbWFraW5nIGFub3RoZXIKLSsjIHRhcmZp bGUuCi0rZGlzdGNoZWNrOiBkaXN0Ci0rCWNhc2UgJyQoRElTVF9BUkNISVZFUyknIGluIFwKLSsJ Ki50YXIuZ3oqKSBcCi0rCSAgR1pJUD0kKEdaSVBfRU5WKSBnemlwIC1kYyAkKGRpc3RkaXIpLnRh ci5neiB8ICQoYW1fX3VudGFyKSA7O1wKLSsJKi50YXIuYnoyKikgXAotKwkgIGJ6aXAyIC1kYyAk KGRpc3RkaXIpLnRhci5iejIgfCAkKGFtX191bnRhcikgOztcCi0rCSoudGFyLmx6bWEqKSBcCi0r CSAgbHptYSAtZGMgJChkaXN0ZGlyKS50YXIubHptYSB8ICQoYW1fX3VudGFyKSA7O1wKLSsJKi50 YXIueHoqKSBcCi0rCSAgeHogLWRjICQoZGlzdGRpcikudGFyLnh6IHwgJChhbV9fdW50YXIpIDs7 XAotKwkqLnRhci5aKikgXAotKwkgIHVuY29tcHJlc3MgLWMgJChkaXN0ZGlyKS50YXIuWiB8ICQo YW1fX3VudGFyKSA7O1wKLSsJKi5zaGFyLmd6KikgXAotKwkgIEdaSVA9JChHWklQX0VOVikgZ3pp cCAtZGMgJChkaXN0ZGlyKS5zaGFyLmd6IHwgdW5zaGFyIDs7XAotKwkqLnppcCopIFwKLSsJICB1 bnppcCAkKGRpc3RkaXIpLnppcCA7O1wKLSsJZXNhYwotKwljaG1vZCAtUiBhLXcgJChkaXN0ZGly KTsgY2htb2QgYSt3ICQoZGlzdGRpcikKLSsJbWtkaXIgJChkaXN0ZGlyKS9fYnVpbGQKLSsJbWtk aXIgJChkaXN0ZGlyKS9faW5zdAotKwljaG1vZCBhLXcgJChkaXN0ZGlyKQotKwl0ZXN0IC1kICQo ZGlzdGRpcikvX2J1aWxkIHx8IGV4aXQgMDsgXAotKwlkY19pbnN0YWxsX2Jhc2U9YCQoYW1fX2Nk KSAkKGRpc3RkaXIpL19pbnN0ICYmIHB3ZCB8IHNlZCAtZSAncyxeW146XFwvXTpbXFwvXSwvLCdg IFwKLSsJICAmJiBkY19kZXN0ZGlyPSIkJHtUTVBESVItL3RtcH0vYW0tZGMtJCQkJC8iIFwKLSsJ ICAmJiBhbV9fY3dkPWBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJChkaXN0ZGlyKS9fYnVpbGQg XAotKwkgICYmIC4uL2NvbmZpZ3VyZSAtLXNyY2Rpcj0uLiAtLXByZWZpeD0iJCRkY19pbnN0YWxs X2Jhc2UiIFwKLSsJICAgICQoRElTVENIRUNLX0NPTkZJR1VSRV9GTEFHUykgXAotKwkgICYmICQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBk dmkgXAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGNoZWNrIFwKLSsJICAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsIFwKLSsJICAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBpbnN0YWxsY2hlY2sgXAotKwkgICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHVuaW5z dGFsbCBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgZGlzdHVuaW5zdGFsbGNoZWNr X2Rpcj0iJCRkY19pbnN0YWxsX2Jhc2UiIFwKLSsJICAgICAgICBkaXN0dW5pbnN0YWxsY2hlY2sg XAotKwkgICYmIGNobW9kIC1SIGEtdyAiJCRkY19pbnN0YWxsX2Jhc2UiIFwKLSsJICAmJiAoeyBc Ci0rCSAgICAgICAoY2QgLi4vLi4gJiYgdW1hc2sgMDc3ICYmIG1rZGlyICIkJGRjX2Rlc3RkaXIi KSBcCi0rCSAgICAgICAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBERVNURElSPSIkJGRjX2Rl c3RkaXIiIGluc3RhbGwgXAotKwkgICAgICAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgREVT VERJUj0iJCRkY19kZXN0ZGlyIiB1bmluc3RhbGwgXAotKwkgICAgICAgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgREVTVERJUj0iJCRkY19kZXN0ZGlyIiBcCi0rCSAgICAgICAgICAgIGRpc3R1 bmluc3RhbGxjaGVja19kaXI9IiQkZGNfZGVzdGRpciIgZGlzdHVuaW5zdGFsbGNoZWNrOyBcCi0r CSAgICAgIH0gfHwgeyBybSAtcmYgIiQkZGNfZGVzdGRpciI7IGV4aXQgMTsgfSkgXAotKwkgICYm IHJtIC1yZiAiJCRkY19kZXN0ZGlyIiBcCi0rCSAgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg ZGlzdCBcCi0rCSAgJiYgcm0gLXJmICQoRElTVF9BUkNISVZFUykgXAotKwkgICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGRpc3RjbGVhbmNoZWNrIFwKLSsJICAmJiBjZCAiJCRhbV9fY3dkIiBc Ci0rCSAgfHwgZXhpdCAxCi0rCSQoYW1fX3JlbW92ZV9kaXN0ZGlyKQotKwlAKGVjaG8gIiQoZGlz dGRpcikgYXJjaGl2ZXMgcmVhZHkgZm9yIGRpc3RyaWJ1dGlvbjogIjsgXAotKwkgIGxpc3Q9JyQo RElTVF9BUkNISVZFUyknOyBmb3IgaSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRpOyBkb25lKSB8IFwK LSsJICBzZWQgLWUgMWggLWUgMXMvLi89L2cgLWUgMXAgLWUgMXggLWUgJyQkcCcgLWUgJyQkeCcK LStkaXN0dW5pbnN0YWxsY2hlY2s6Ci0rCUAkKGFtX19jZCkgJyQoZGlzdHVuaW5zdGFsbGNoZWNr X2RpciknIFwKLSsJJiYgdGVzdCBgJChkaXN0dW5pbnN0YWxsY2hlY2tfbGlzdGZpbGVzKSB8IHdj IC1sYCAtbGUgMSBcCi0rCSAgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgYWZ0ZXIgdW5p bnN0YWxsOiIgOyBcCi0rCSAgICAgICAgaWYgdGVzdCAtbiAiJChERVNURElSKSI7IHRoZW4gXAot KwkgICAgICAgICAgZWNobyAiICAoY2hlY2sgREVTVERJUiBzdXBwb3J0KSI7IFwKLSsJICAgICAg ICBmaSA7IFwKLSsJICAgICAgICAkKGRpc3R1bmluc3RhbGxjaGVja19saXN0ZmlsZXMpIDsgXAot KwkgICAgICAgIGV4aXQgMTsgfSA+JjIKLStkaXN0Y2xlYW5jaGVjazogZGlzdGNsZWFuCi0rCUBp ZiB0ZXN0ICckKHNyY2RpciknID0gLiA7IHRoZW4gXAotKwkgIGVjaG8gIkVSUk9SOiBkaXN0Y2xl YW5jaGVjayBjYW4gb25seSBydW4gZnJvbSBhIFZQQVRIIGJ1aWxkIiA7IFwKLSsJICBleGl0IDEg OyBcCi0rCWZpCi0rCUB0ZXN0IGAkKGRpc3RjbGVhbmNoZWNrX2xpc3RmaWxlcykgfCB3YyAtbGAg LWVxIDAgXAotKwkgIHx8IHsgZWNobyAiRVJST1I6IGZpbGVzIGxlZnQgaW4gYnVpbGQgZGlyZWN0 b3J5IGFmdGVyIGRpc3RjbGVhbjoiIDsgXAotKwkgICAgICAgJChkaXN0Y2xlYW5jaGVja19saXN0 ZmlsZXMpIDsgXAotKwkgICAgICAgZXhpdCAxOyB9ID4mMgotK2NoZWNrLWFtOiBhbGwtYW0KLStj aGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZSAkKFNDUklQVFMpICQoREFU QSkKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06 Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGJpbmRpcikiICIkKERFU1RESVIpJChtNGRhdGFk aXIpIiAiJChERVNURElSKSQocGtnY29uZmlnZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRp ciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLXJl Y3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwt ZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vy c2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykg aW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFs bGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5z dGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBf RkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNU QUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNs ZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoK LSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xF QU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19D TEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQot KwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBp bnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxl cyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16 ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxF UykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMg Y2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJl Y3Vyc2l2ZQotKwktcm0gLWYgJChhbV9fQ09ORklHX0RJU1RDTEVBTl9GSUxFUykKLSsJLXJtIC1m IE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0 Y2xlYW4tbGlidG9vbCBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJzaXZl Ci0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raHRtbC1hbToKLSsK LStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFt OiBpbnN0YWxsLW00ZGF0YURBVEEgaW5zdGFsbC1wa2djb25maWdEQVRBCi0rCi0raW5zdGFsbC1k dmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3Rh bGwtZXhlYy1hbTogaW5zdGFsbC1iaW5TQ1JJUFRTCi0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxs LWh0bWwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzog aW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaW5mby1hbToKLSsKLStpbnN0YWxs LW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFs bC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLXBzLWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBt YWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgJChhbV9fQ09ORklHX0RJU1RDTEVB Tl9GSUxFUykKLSsJLXJtIC1yZiAkKHRvcF9zcmNkaXIpL2F1dG9tNHRlLmNhY2hlCi0rCS1ybSAt ZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVy LWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVjdXJzaXZlCi0r Ci0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9v bAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJz aXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtYmluU0NSSVBUUyB1 bmluc3RhbGwtbG9jYWwgXAotKwl1bmluc3RhbGwtbTRkYXRhREFUQSB1bmluc3RhbGwtcGtnY29u ZmlnREFUQQotKwotKy5NQUtFOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lW RV9UQVJHRVRTKSBjdGFncy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWFtIGluc3RhbGwtc3RyaXAg dGFncy1yZWN1cnNpdmUKLSsKLSsuUEhPTlk6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQo UkVDVVJTSVZFX1RBUkdFVFMpIENUQUdTIEdUQUdTIFwKLSsJYWxsIGFsbC1hbSBhbS0tcmVmcmVz aCBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIFwKLSsJY2xlYW4tbGlidG9vbCBj dGFncyBjdGFncy1yZWN1cnNpdmUgZGlzdCBkaXN0LWFsbCBkaXN0LWJ6aXAyIFwKLSsJZGlzdC1n emlwIGRpc3QtbHptYSBkaXN0LXNoYXIgZGlzdC10YXJaIGRpc3QteHogZGlzdC16aXAgXAotKwlk aXN0Y2hlY2sgZGlzdGNsZWFuIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwK LSsJZGlzdGNsZWFuLXRhZ3MgZGlzdGNsZWFuY2hlY2sgZGlzdGRpciBkaXN0dW5pbnN0YWxsY2hl Y2sgZHZpIFwKLSsJZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBpbnN0 YWxsLWFtIFwKLSsJaW5zdGFsbC1iaW5TQ1JJUFRTIGluc3RhbGwtZGF0YSBpbnN0YWxsLWRhdGEt YW0gaW5zdGFsbC1kdmkgXAotKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtaHRtbCBcCi0rCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gaW5z dGFsbC1pbmZvLWFtIFwKLSsJaW5zdGFsbC1tNGRhdGFEQVRBIGluc3RhbGwtbWFuIGluc3RhbGwt cGRmIGluc3RhbGwtcGRmLWFtIFwKLSsJaW5zdGFsbC1wa2djb25maWdEQVRBIGluc3RhbGwtcHMg aW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVj ay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBcCi0rCW1haW50YWluZXItY2xlYW4gbWFp bnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdzIHRhZ3Mt cmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3RhbGwtYmluU0NSSVBU UyB1bmluc3RhbGwtbG9jYWwgdW5pbnN0YWxsLW00ZGF0YURBVEEgXAotKwl1bmluc3RhbGwtcGtn Y29uZmlnREFUQQotKwotK0BTRVRfTUFLRUAKLSsKLSsjIFRhcmdldHMKLSt1bmluc3RhbGwtbG9j YWw6Ci0rCXJtIC1yZiAkKERFU1RESVIpJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLSsKLStkaXN0 LWh0bWw6Ci0rCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbAotKwotK3NuYXBzaG90OiBzbmFwc2hv dC1zcmMgc25hcHNob3QtaHRtbAotKwotK3NuYXBzaG90LXNyYzoKLSsJJChNQUtFKSBkaXN0IGRp c3RkaXI9QFBBQ0tBR0VfVEFSTkFNRUAtYGRhdGUgKyIlWSVtJWQiYAotKwotK3NuYXBzaG90LWh0 bWw6Ci0rCSQoTUFLRSkgLUMgZG9jIGRpc3QtaHRtbCBodG1sX3Rhcm5hbWU9QFBBQ0tBR0VfVEFS TkFNRUAtaHRtbC1kb2MtYGRhdGUgKyIlWSVtJWQiYAotKwotK3VwbG9hZDogdXBsb2FkLXNyYyB1 cGxvYWQtaHRtbAotKwotK3VwbG9hZC1zcmM6IGRpc3QKLSsJQFVQTE9BRF9DT01NQU5EQCBAUEFD S0FHRV9UQVJOQU1FQC1AVkVSU0lPTkAudGFyLmd6IFwKLSsJQFBBQ0tBR0VfVEFSTkFNRUAtQFZF UlNJT05ALnRhci5iejIKLSsKLSt1cGxvYWQtaHRtbDogZGlzdC1odG1sCi0rCUBVUExPQURfQ09N TUFOREAgQFBBQ0tBR0VfVEFSTkFNRUAtaHRtbC1kb2MtQFZFUlNJT05ALnRhci5neiBcCi0rCUBQ QUNLQUdFX1RBUk5BTUVALWh0bWwtZG9jLUBWRVJTSU9OQC50YXIuYnoyCi0rCi0rIyBUZWxsIHZl cnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxl cy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBi ZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svbWFu L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9tYW4vTWFrZWZpbGUuYW0KLS0tLSBzb2Np LTMuMC4wXzQtcGFjay9tYW4vTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAw MDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL01ha2VmaWxlLmFtCTIwMDktMDQt MTYgMTk6Mzc6MDkuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDQgQEAKLSsjIE1hbiBwYWdl cwotK21hbl9NQU5TID0gc29jaS1jb25maWcuMQotKwotK0VYVFJBX0RJU1QgPSAkKG1hbl9NQU5T KQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL21hbi9NYWtlZmlsZS5pbiBzb2NpLTMuMC4w X3RyZXAzMDAvbWFuL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svbWFuL01ha2Vm aWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAu MF90cmVwMzAwL21hbi9NYWtlZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSw0OTcgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRv bWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0r IyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAs IDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5 ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmlu IGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVz IHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3 aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBw cmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8g dGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVk IHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNV TEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRh ZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGly KS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhl Y2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hf VkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQo aW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3No KSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVB REVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9u YW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFM TCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9V TklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBA aG9zdEAKLStzdWJkaXIgPSBtYW4KLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5h bSAkKHNyY2RpcikvTWFrZWZpbGUuaW4KLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xv Y2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jv b3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZp Z3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJ RVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1k Ci0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklH X0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQot K0RJU1RfU09VUkNFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hv ICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRw IGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGly c3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9k aXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9tYXgg PSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFzZV9z dHJpcCA9IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAt ZSAic3wkJHNyY2RpcnN0cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9z dHJpcF9zZXR1cCk7IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRv bmUgfCBcCi0rICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4v OyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIu Il0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBpZiAo KytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIsIGZp bGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQgeyBm b3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2VfbGlz dCA9IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAv ZycgfCBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rbWFuMWRpciA9 ICQobWFuZGlyKS9tYW4xCi0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJUikkKG1hbjFkaXIp IgotK05ST0ZGID0gbnJvZmYKLStNQU5TID0gJChtYW5fTUFOUykKLStESVNURklMRVMgPSAkKERJ U1RfQ09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FD TE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09O RiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBA QVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJQiA9IEBCT09TVF9BU0lPX0xJ QkAKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIg PSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9G SUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19M SUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1Rf TVBJX0xJQkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAK LStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJA Ci0rQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJ QiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1Rf U0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19M SUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVB RF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJ QiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJP T1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJ WkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFH UyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBV TklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklU X0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lP TiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAot K0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQ QVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAot K0RMTFRPT0wgPSBARExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0g QERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9f VCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JF UCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllf VkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExf REFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JB TUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BS T0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBA TERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wg PSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9 IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUFOSUZFU1RfVE9PTCA9IEBN QU5JRkVTVF9UT09MQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlT UUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBA TVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9 IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVN UCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xF X0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xF X09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04g PSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RP T0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FH RV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NU UklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJO QU1FQAotK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQ QUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVS TCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1Mg PSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElS U0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVT UUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStT RUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NP Q0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hF QURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JF U1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStT VFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJT SU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3Jj ZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGly QAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0FSID0gQGFjX2N0 X0FSQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0r YWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNs dWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0g QGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRh ckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0g QGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVp bGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWls ZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJA Ci0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9 IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tA Ci0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9 IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2Nw dUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0r aHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGly ID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxh dGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAot K2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGly QAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVk aXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVm aXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAot K3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29r QAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJA Ci0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxp YXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRp ciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotKwotKyMgTWFu IHBhZ2VzCi0rbWFuX01BTlMgPSBzb2NpLWNvbmZpZy4xCi0rRVhUUkFfRElTVCA9ICQobWFuX01B TlMpCi0rYWxsOiBhbGwtYW0KLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxlLmlu OiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICAkKGFtX19jb25maWd1cmVfZGVwcykKLSsJQGZvciBk ZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVfZGVwcyknIGluIFwKLSsJ ICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAgJiYgeyBpZiB0ZXN0IC1m ICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJICAgICAgZXhpdCAxOzsg XAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0b3Bfc3JjZGlyKSAmJiAk KEFVVE9NQUtFKSAtLWdudSBtYW4vTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNk aXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBtYW4vTWFrZWZpbGUKLSsuUFJFQ0lPVVM6 IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyop IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNf bWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwot KwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChh bV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotKwotK21v c3RseWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJ LXJtIC1yZiAubGlicyBfbGlicwotK2luc3RhbGwtbWFuMTogJChtYW5fTUFOUykKLSsJQCQoTk9S TUFMX0lOU1RBTEwpCi0rCXRlc3QgLXogIiQobWFuMWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVT VERJUikkKG1hbjFkaXIpIgotKwlAbGlzdD0nJzsgdGVzdCAtbiAiJChtYW4xZGlyKSIgfHwgZXhp dCAwOyBcCi0rCXsgZm9yIGkgaW4gJCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCi0rCWwy PSckKG1hbl9NQU5TKSc7IGZvciBpIGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCi0r CSAgc2VkIC1uICcvXC4xW2Etel0qJCQvcCc7IFwKLSsJfSB8IHdoaWxlIHJlYWQgcDsgZG8gXAot KwkgIGlmIHRlc3QgLWYgJCRwOyB0aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAot KwkgIGVjaG8gIiQkZCQkcCI7IGVjaG8gIiQkcCI7IFwKLSsJZG9uZSB8IFwKLSsJc2VkIC1lICdu O3MsLiovLCw7cDtoO3MsLipcLiwsO3MsXlteMV1bMC05YS16XSokJCwxLDt4JyBcCi0rCSAgICAg IC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7RztzLFxuLC4sJyB8IFwKLSsJc2Vk ICdOO047cyxcbiwgLGcnIHwgeyBcCi0rCWxpc3Q9OyB3aGlsZSByZWFkIGZpbGUgYmFzZSBpbnN0 OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRiYXNlIiA9ICIkJGluc3QiOyB0aGVuIGxpc3Q9IiQkbGlz dCAkJGZpbGUiOyBlbHNlIFwKLSsJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJyQkZmlsZScg JyQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCciOyBcCi0rCSAgICAkKElOU1RBTExfREFUQSkg IiQkZmlsZSIgIiQoREVTVERJUikkKG1hbjFkaXIpLyQkaW5zdCIgfHwgZXhpdCAkJD87IFwKLSsJ ICBmaTsgXAotKwlkb25lOyBcCi0rCWZvciBpIGluICQkbGlzdDsgZG8gZWNobyAiJCRpIjsgZG9u ZSB8ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCi0rCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKLSsJICB0 ZXN0IC16ICIkJGZpbGVzIiB8fCB7IFwKLSsJICAgIGVjaG8gIiAkKElOU1RBTExfREFUQSkgJCRm aWxlcyAnJChERVNURElSKSQobWFuMWRpciknIjsgXAotKwkgICAgJChJTlNUQUxMX0RBVEEpICQk ZmlsZXMgIiQoREVTVERJUikkKG1hbjFkaXIpIiB8fCBleGl0ICQkPzsgfTsgXAotKwlkb25lOyB9 Ci0rCi0rdW5pbnN0YWxsLW1hbjE6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PScn OyB0ZXN0IC1uICIkKG1hbjFkaXIpIiB8fCBleGl0IDA7IFwKLSsJZmlsZXM9YHsgZm9yIGkgaW4g JCRsaXN0OyBkbyBlY2hvICIkJGkiOyBkb25lOyBcCi0rCWwyPSckKG1hbl9NQU5TKSc7IGZvciBp IGluICQkbDI7IGRvIGVjaG8gIiQkaSI7IGRvbmUgfCBcCi0rCSAgc2VkIC1uICcvXC4xW2Etel0q JCQvcCc7IFwKLSsJfSB8IHNlZCAtZSAncywuKi8sLDtoO3MsLipcLiwsO3MsXlteMV1bMC05YS16 XSokJCwxLDt4JyBcCi0rCSAgICAgIC1lICdzLFwuWzAtOWEtel0qJCQsLDskKHRyYW5zZm9ybSk7 RztzLFxuLC4sJ2A7IFwKLSsJdGVzdCAteiAiJCRmaWxlcyIgfHwgeyBcCi0rCSAgZWNobyAiICgg Y2QgJyQoREVTVERJUikkKG1hbjFkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKLSsJICBj ZCAiJChERVNURElSKSQobWFuMWRpcikiICYmIHJtIC1mICQkZmlsZXM7IH0KLSt0YWdzOiBUQUdT Ci0rVEFHUzoKLSsKLStjdGFnczogQ1RBR1MKLStDVEFHUzoKLSsKLSsKLStkaXN0ZGlyOiAkKERJ U1RGSUxFUykKLSsJQGxpc3Q9JyQoTUFOUyknOyBpZiB0ZXN0IC1uICIkJGxpc3QiOyB0aGVuIFwK LSsJICBsaXN0PWBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgJCRwOyB0 aGVuIGQ9OyBlbHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgICAgaWYgdGVzdCAtZiAiJCRk JCRwIjsgdGhlbiBlY2hvICIkJGQkJHAiOyBlbHNlIDo7IGZpOyBkb25lYDsgXAotKwkgIGlmIHRl c3QgLW4gIiQkbGlzdCIgJiYgXAotKwkgICAgZ3JlcCAnYWIgaGVscDJtYW4gaXMgcmVxdWlyZWQg dG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgPi9kZXYvbnVsbDsgdGhlbiBcCi0rCSAgICBl Y2hvICJlcnJvcjogZm91bmQgbWFuIHBhZ2VzIGNvbnRhaW5pbmcgdGhlIFxgbWlzc2luZyBoZWxw Mm1hbicgcmVwbGFjZW1lbnQgdGV4dDoiID4mMjsgXAotKwkgICAgZ3JlcCAtbCAnYWIgaGVscDJt YW4gaXMgcmVxdWlyZWQgdG8gZ2VuZXJhdGUgdGhpcyBwYWdlJyAkJGxpc3QgfCBzZWQgJ3MvXi8g ICAgICAgICAvJyA+JjI7IFwKLSsJICAgIGVjaG8gIiAgICAgICB0byBmaXggdGhlbSwgaW5zdGFs bCBoZWxwMm1hbiwgcmVtb3ZlIGFuZCByZWdlbmVyYXRlIHRoZSBtYW4gcGFnZXM7IiA+JjI7IFwK LSsJICAgIGVjaG8gIiAgICAgICB0eXBpY2FsbHkgXGBtYWtlIG1haW50YWluZXItY2xlYW4nIHdp bGwgcmVtb3ZlIHRoZW0iID4mMjsgXAotKwkgICAgZXhpdCAxOyBcCi0rCSAgZWxzZSA6OyBmaTsg XAotKwllbHNlIDo7IGZpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9w X3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJ U1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hv ICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAot KwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBc Ci0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQk ZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9b Xi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmls ZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1k ICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAt ZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUg J3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7 IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJt IC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0 ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwK LSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4 aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJt IC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAt ZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBc Ci0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRk LyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZp OyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFt OiBNYWtlZmlsZSAkKE1BTlMpCi0raW5zdGFsbGRpcnM6Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJ UikkKG1hbjFkaXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIk JGRpciI7IFwKLSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGlu c3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxs OiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9N QUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hl Y2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAg aW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RS SVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJ TlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3Rs eWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJp YzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdf Q0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJ R19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT KQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBp cyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBm aWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rY2xlYW46 IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0 bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtZiBNYWtlZmls ZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWdlbmVyaWMKLSsKLStkdmk6IGR2 aS1hbQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raHRtbC1hbToKLSsKLStp bmZvOiBpbmZvLWFtCi0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwt bWFuCi0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLWFtCi0rCi0raW5zdGFsbC1kdmktYW06 Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFt Ci0rCi0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFt Ci0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOiBpbnN0YWxsLW1hbjEKLSsK LStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYtYW0KLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStp bnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0rCi0raW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxs Y2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQotKwkt cm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRh aW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLWFtCi0rCi0r bW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbAot KwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1hbQotKwotK3BzLWFtOgot KwotK3VuaW5zdGFsbC1hbTogdW5pbnN0YWxsLW1hbgotKwotK3VuaW5zdGFsbC1tYW46IHVuaW5z dGFsbC1tYW4xCi0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9O WTogYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5lcmljIGNsZWFuLWxp YnRvb2wgXAotKwlkaXN0Y2xlYW4gZGlzdGNsZWFuLWdlbmVyaWMgZGlzdGNsZWFuLWxpYnRvb2wg ZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxs IGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZp IGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxs LWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBp bnN0YWxsLW1hbiBpbnN0YWxsLW1hbjEgXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBp bnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gXAotKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBp bnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgXAotKwltYWludGFpbmVyLWNsZWFuIG1haW50YWlu ZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBcCi0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9z dGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdW5pbnN0YWxsIHVuaW5z dGFsbC1hbSB1bmluc3RhbGwtbWFuIHVuaW5zdGFsbC1tYW4xCi0rCi0rCi0rIyBUZWxsIHZlcnNp b25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4K LSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBl eGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svbWFuL3Nv Y2ktY29uZmlnLjEgc29jaS0zLjAuMF90cmVwMzAwL21hbi9zb2NpLWNvbmZpZy4xCi0tLS0gc29j aS0zLjAuMF80LXBhY2svbWFuL3NvY2ktY29uZmlnLjEJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAw MDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvbWFuL3NvY2ktY29uZmlnLjEJMjAx MS0wMi0wOSAwMTowMTo0NC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMzkgQEAKLSsuVEgg U09DSSAxICIyOCBNYXJjaCAyMDA5IgotKy5TSCBOQU1FCi0rc29jaS1jb25maWcgLSBzY3JpcHQg dG8gZ2V0IHZlcnNpb24gbnVtYmVyIGFuZCBjb21waWxlciBmbGFncyBvZiB0aGUgaW5zdGFsbGVk IFNPQ0kgbGlicmFyeQotKy5TSCBTWU5PUFNJUwotKy5CIHNvY2ktY29uZmlnCi0rW1wtXC1wcmVm aXhdICBbXC1cLXZlcnNpb25dIFtcLVwtbGlic10gW1wtXC1jZmxhZ3NdCi0rLlNIIERFU0NSSVBU SU9OCi0rLlBQCi0rXGZJc29jaS1jb25maWdcZlAgaXMgYSB0b29sIHRoYXQgaXMgdXNlZCB0byBj b25maWd1cmUgdG8gZGV0ZXJtaW5lCi0rdGhlIGNvbXBpbGVyIGFuZCBsaW5rZXIgZmxhZ3MgdGhh dCBzaG91bGQgYmUgdXNlZCB0byBjb21waWxlCi0rYW5kIGxpbmsgcHJvZ3JhbXMgdGhhdCB1c2Ug XGZJU09DSVxmUC4gSXQgaXMgYWxzbyB1c2VkIGludGVybmFsbHkKLSt0byB0aGUgLm00IG1hY3Jv cyBmb3IgR05VIGF1dG9jb25mIHRoYXQgYXJlIGluY2x1ZGVkIHdpdGggXGZJU09DSVxmUC4KLSsu Ci0rLlNIIE9QVElPTlMKLSsuUFAKLStcZklzb2NpLWNvbmZpZ1xmUCBhY2NlcHRzIHRoZSBmb2xs b3dpbmcgb3B0aW9uczoKLSsuVFAgOAotKy5CICBcLVwtdmVyc2lvbgotK1ByaW50IHRoZSBjdXJy ZW50bHkgaW5zdGFsbGVkIHZlcnNpb24gb2YgXGZJU09DSVxmUCBvbiB0aGUgc3RhbmRhcmQgb3V0 cHV0LgotKy5UUCA4Ci0rLkIgIFwtXC1saWJzCi0rUHJpbnQgdGhlIGxpbmtlciBmbGFncyB0aGF0 IGFyZSBuZWNlc3NhcnkgdG8gbGluayBhIFxmSVNPQ0lcZlAgcHJvZ3JhbSwgd2l0aCBjYmxhcwot Ky5UUCA4Ci0rLkIgIFwtXC1jZmxhZ3MKLStQcmludCB0aGUgY29tcGlsZXIgZmxhZ3MgdGhhdCBh cmUgbmVjZXNzYXJ5IHRvIGNvbXBpbGUgYSBcZklTT0NJXGZQIHByb2dyYW0uCi0rLlRQIDgKLSsu QiAgXC1cLXByZWZpeAotK1Nob3cgdGhlIFNPQ0kgaW5zdGFsbGF0aW9uIHByZWZpeC4KLSsuU0gg U0VFIEFMU08KLSsuQlIgZ3RrLWNvbmZpZyAoMSksCi0rLkJSIGdub21lLWNvbmZpZyAoMSkKLSsu U0ggQ09QWVJJR0hUCi0rQ29weXJpZ2h0IFwoY28gIDIwMDkgRGVuaXMgQXJuYXVkCi0rCi0rUGVy bWlzc2lvbiB0byB1c2UsIGNvcHksIG1vZGlmeSwgYW5kIGRpc3RyaWJ1dGUgdGhpcyBzb2Z0d2Fy ZSBhbmQgaXRzCi0rZG9jdW1lbnRhdGlvbiBmb3IgYW55IHB1cnBvc2UgYW5kIHdpdGhvdXQgZmVl IGlzIGhlcmVieSBncmFudGVkLAotK3Byb3ZpZGVkIHRoYXQgdGhlIGFib3ZlIGNvcHlyaWdodCBu b3RpY2UgYXBwZWFyIGluIGFsbCBjb3BpZXMgYW5kIHRoYXQKLStib3RoIHRoYXQgY29weXJpZ2h0 IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBhcHBlYXIgaW4KLStzdXBwb3J0aW5n IGRvY3VtZW50YXRpb24uCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9NYWtlZmlsZS5hbSBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5h bQotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFrZWZpbGUuYW0JMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9NYWtlZmlsZS5hbQkyMDA5LTA0LTI4IDIzOjE1OjE0LjAwMDAwMDAwMCArMDIw MAotQEAgLTAsMCArMSw5IEBACi0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1v bgotKwotKyMjIFNvdXJjZSBkaXJlY3RvcnkKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1h a2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IEBNWVNRTF9ESVJTQCBAUE9TVEdSRVNRTF9ESVJTQCBA T1JBQ0xFX0RJUlNACi0rCi0rRVhUUkFfRElTVCA9Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9NYWtlZmlsZS5pbgotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvTWFr ZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9NYWtlZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI3 LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw2MjAgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVy YXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVf aW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgs IDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3 LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlz IE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1 dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlz IG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB Ci0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotK1ZQQVRIID0gQHNyY2Rp ckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0g JChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VA Ci0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQ QVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxf c2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0g JChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwot K0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFt X3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgot K1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwg PSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0 X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAk KHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgot K3N1YmRpciA9IHNvY2kvYmFja2VuZHMKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xv Y2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jv b3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcv YXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZp Z3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJ RVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1k Ci0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklH X0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1NPVVJDRVMgPQot K0RJU1RfU09VUkNFUyA9Ci0rUkVDVVJTSVZFX1RBUkdFVFMgPSBhbGwtcmVjdXJzaXZlIGNoZWNr LXJlY3Vyc2l2ZSBkdmktcmVjdXJzaXZlIFwKLSsJaHRtbC1yZWN1cnNpdmUgaW5mby1yZWN1cnNp dmUgaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtZHZpLXJlY3Vyc2l2ZSBpbnN0 YWxsLWV4ZWMtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZSBpbnN0YWxsLWlu Zm8tcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1wZGYtcmVjdXJzaXZlIGluc3RhbGwtcHMtcmVjdXJz aXZlIGluc3RhbGwtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZSBpbnN0YWxs ZGlycy1yZWN1cnNpdmUgcGRmLXJlY3Vyc2l2ZSBcCi0rCXBzLXJlY3Vyc2l2ZSB1bmluc3RhbGwt cmVjdXJzaXZlCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMgPSBtb3N0bHljbGVhbi1yZWN1cnNp dmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1yZWN1cnNpdmUgbWFpbnRhaW5lci1j bGVhbi1yZWN1cnNpdmUKLStBTV9SRUNVUlNJVkVfVEFSR0VUUyA9ICQoUkVDVVJTSVZFX1RBUkdF VFM6LXJlY3Vyc2l2ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUzotcmVjdXJzaXZl PSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKLSsJZGlzdGRpcgotK0VUQUdTID0gZXRhZ3MKLStD VEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJESVJTKQotK0RJU1RGSUxFUyA9ICQo RElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElORk9TKSAkKEVYVFJBX0RJU1QpCi0r YW1fX3JlbGF0aXZpemUgPSBcCi0rICBkaXIwPWBwd2RgOyBcCi0rICBzZWRfZmlyc3Q9J3MsXlwo W14vXSpcKS8uKiQkLFwxLCc7IFwKLSsgIHNlZF9yZXN0PSdzLF5bXi9dKi8qLCwnOyBcCi0rICBz ZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAotKyAgc2VkX2J1dGxhc3Q9J3MsLypb Xi9dKiQkLCwnOyBcCi0rICB3aGlsZSB0ZXN0IC1uICIkJGRpcjEiOyBkbyBcCi0rICAgIGZpcnN0 PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJzdCJgOyBcCi0rICAgIGlmIHRlc3Qg IiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCi0rICAgICAgaWYgdGVzdCAiJCRmaXJzdCIgPSAiLi4i OyB0aGVuIFwKLSsgICAgICAgIGRpcjI9YGVjaG8gIiQkZGlyMCIgfCBzZWQgLWUgIiQkc2VkX2xh c3QiYC8iJCRkaXIyIjsgXAotKyAgICAgICAgZGlyMD1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAi JCRzZWRfYnV0bGFzdCJgOyBcCi0rICAgICAgZWxzZSBcCi0rICAgICAgICBmaXJzdDI9YGVjaG8g IiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgICAgIGlmIHRlc3QgIiQk Zmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCi0rICAgICAgICAgIGRpcjI9YGVjaG8gIiQkZGly MiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgICAgICAgZWxzZSBcCi0rICAgICAgICAg IGRpcjI9Ii4uLyQkZGlyMiI7IFwKLSsgICAgICAgIGZpOyBcCi0rICAgICAgICBkaXIwPSIkJGRp cjAiLyIkJGZpcnN0IjsgXAotKyAgICAgIGZpOyBcCi0rICAgIGZpOyBcCi0rICAgIGRpcjE9YGVj aG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgZG9uZTsgXAotKyAgcmVs ZGlyPSIkJGRpcjIiCi0rQUNMT0NBTCA9IEBBQ0xPQ0FMQAotK0FNVEFSID0gQEFNVEFSQAotK0FS ID0gQEFSQAotK0FVVE9DT05GID0gQEFVVE9DT05GQAotK0FVVE9IRUFERVIgPSBAQVVUT0hFQURF UkAKLStBVVRPTUFLRSA9IEBBVVRPTUFLRUAKLStBV0sgPSBAQVdLQAotK0JPT1NUX0FTSU9fTElC ID0gQEJPT1NUX0FTSU9fTElCQAotK0JPT1NUX0NGTEFHUyA9IEBCT09TVF9DRkxBR1NACi0rQk9P U1RfREFURV9USU1FX0xJQiA9IEBCT09TVF9EQVRFX1RJTUVfTElCQAotK0JPT1NUX0ZJTEVTWVNU RU1fTElCID0gQEJPT1NUX0ZJTEVTWVNURU1fTElCQAotK0JPT1NUX0lPU1RSRUFNU19MSUIgPSBA Qk9PU1RfSU9TVFJFQU1TX0xJQkAKLStCT09TVF9MSUJTID0gQEJPT1NUX0xJQlNACi0rQk9PU1Rf TVBJX0xJQiA9IEBCT09TVF9NUElfTElCQAotK0JPT1NUX01QSV9QWVRIT05fTElCID0gQEJPT1NU X01QSV9QWVRIT05fTElCQAotK0JPT1NUX1BST0dSQU1fT1BUSU9OU19MSUIgPSBAQk9PU1RfUFJP R1JBTV9PUFRJT05TX0xJQkAKLStCT09TVF9QWVRIT05fTElCID0gQEJPT1NUX1BZVEhPTl9MSUJA Ci0rQk9PU1RfUkVHRVhfTElCID0gQEJPT1NUX1JFR0VYX0xJQkAKLStCT09TVF9TRVJJQUxJWkFU SU9OX0xJQiA9IEBCT09TVF9TRVJJQUxJWkFUSU9OX0xJQkAKLStCT09TVF9TSUdOQUxTX0xJQiA9 IEBCT09TVF9TSUdOQUxTX0xJQkAKLStCT09TVF9TWVNURU1fTElCID0gQEJPT1NUX1NZU1RFTV9M SUJACi0rQk9PU1RfVEhSRUFEX0xJQiA9IEBCT09TVF9USFJFQURfTElCQAotK0JPT1NUX1VOSVRf VEVTVF9GUkFNRVdPUktfTElCID0gQEJPT1NUX1VOSVRfVEVTVF9GUkFNRVdPUktfTElCQAotK0JP T1NUX1ZFUlNJT04gPSBAQk9PU1RfVkVSU0lPTkAKLStCT09TVF9XU0VSSUFMSVpBVElPTl9MSUIg PSBAQk9PU1RfV1NFUklBTElaQVRJT05fTElCQAotK0NDID0gQENDQAotK0NDREVQTU9ERSA9IEBD Q0RFUE1PREVACi0rQ0ZMQUdTID0gQENGTEFHU0AKLStDUFAgPSBAQ1BQQAotK0NQUEZMQUdTID0g QENQUEZMQUdTQAotK0NQUFVOSVRfQ0ZMQUdTID0gQENQUFVOSVRfQ0ZMQUdTQAotK0NQUFVOSVRf Q09ORklHID0gQENQUFVOSVRfQ09ORklHQAotK0NQUFVOSVRfTElCUyA9IEBDUFBVTklUX0xJQlNA Ci0rQ1BQVU5JVF9WRVJTSU9OID0gQENQUFVOSVRfVkVSU0lPTkAKLStDWFggPSBAQ1hYQAotK0NY WENQUCA9IEBDWFhDUFBACi0rQ1hYREVQTU9ERSA9IEBDWFhERVBNT0RFQAotK0NYWEZMQUdTID0g QENYWEZMQUdTQAotK0NZR1BBVEhfVyA9IEBDWUdQQVRIX1dACi0rREVGUyA9IEBERUZTQAotK0RF UERJUiA9IEBERVBESVJACi0rRExMVE9PTCA9IEBETExUT09MQAotK0RTWU1VVElMID0gQERTWU1V VElMQAotK0RVTVBCSU4gPSBARFVNUEJJTkAKLStFQ0hPX0MgPSBARUNIT19DQAotK0VDSE9fTiA9 IEBFQ0hPX05ACi0rRUNIT19UID0gQEVDSE9fVEAKLStFR1JFUCA9IEBFR1JFUEAKLStFWEVFWFQg PSBARVhFRVhUQAotK0ZHUkVQID0gQEZHUkVQQAotK0dFTkVSSUNfTElCUkFSWV9WRVJTSU9OID0g QEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OQAotK0dSRVAgPSBAR1JFUEAKLStJTlNUQUxMID0gQElO U1RBTExACi0rSU5TVEFMTF9EQVRBID0gQElOU1RBTExfREFUQUAKLStJTlNUQUxMX1BST0dSQU0g PSBASU5TVEFMTF9QUk9HUkFNQAotK0lOU1RBTExfU0NSSVBUID0gQElOU1RBTExfU0NSSVBUQAot K0lOU1RBTExfU1RSSVBfUFJPR1JBTSA9IEBJTlNUQUxMX1NUUklQX1BST0dSQU1ACi0rTEQgPSBA TERACi0rTERGTEFHUyA9IEBMREZMQUdTQAotK0xJQk9CSlMgPSBATElCT0JKU0AKLStMSUJTID0g QExJQlNACi0rTElCVE9PTCA9IEBMSUJUT09MQAotK0xJUE8gPSBATElQT0AKLStMTl9TID0gQExO X1NACi0rTFRMSUJPQkpTID0gQExUTElCT0JKU0AKLStNQUtFSU5GTyA9IEBNQUtFSU5GT0AKLStN QU5JRkVTVF9UT09MID0gQE1BTklGRVNUX1RPT0xACi0rTUtESVJfUCA9IEBNS0RJUl9QQAotK01Z U1FMX0NGTEFHUyA9IEBNWVNRTF9DRkxBR1NACi0rTVlTUUxfQ19MSUIgPSBATVlTUUxfQ19MSUJA Ci0rTVlTUUxfRElSUyA9IEBNWVNRTF9ESVJTQAotK01ZU1FMX0xJQlMgPSBATVlTUUxfTElCU0AK LStNWVNRTF9WRVJTSU9OID0gQE1ZU1FMX1ZFUlNJT05ACi0rTk0gPSBATk1ACi0rTk1FRElUID0g QE5NRURJVEAKLStPQkpEVU1QID0gQE9CSkRVTVBACi0rT0JKRVhUID0gQE9CSkVYVEAKLStPUkFD TEVfRElSUyA9IEBPUkFDTEVfRElSU0AKLStPUkFDTEVfT0NJX0NGTEFHUyA9IEBPUkFDTEVfT0NJ X0NGTEFHU0AKLStPUkFDTEVfT0NJX0xERkxBR1MgPSBAT1JBQ0xFX09DSV9MREZMQUdTQAotK09S QUNMRV9PQ0lfVkVSU0lPTiA9IEBPUkFDTEVfT0NJX1ZFUlNJT05ACi0rT1RPT0wgPSBAT1RPT0xA Ci0rT1RPT0w2NCA9IEBPVE9PTDY0QAotK1BBQ0tBR0UgPSBAUEFDS0FHRUAKLStQQUNLQUdFX0JV R1JFUE9SVCA9IEBQQUNLQUdFX0JVR1JFUE9SVEAKLStQQUNLQUdFX05BTUUgPSBAUEFDS0FHRV9O QU1FQAotK1BBQ0tBR0VfU1RSSU5HID0gQFBBQ0tBR0VfU1RSSU5HQAotK1BBQ0tBR0VfVEFSTkFN RSA9IEBQQUNLQUdFX1RBUk5BTUVACi0rUEFDS0FHRV9VUkwgPSBAUEFDS0FHRV9VUkxACi0rUEFD S0FHRV9WRVJTSU9OID0gQFBBQ0tBR0VfVkVSU0lPTkAKLStQQVRIX1NFUEFSQVRPUiA9IEBQQVRI X1NFUEFSQVRPUkAKLStQRVJMID0gQFBFUkxACi0rUEdfQ09ORklHID0gQFBHX0NPTkZJR0AKLStQ T1NUR1JFU1FMX0NGTEFHUyA9IEBQT1NUR1JFU1FMX0NGTEFHU0AKLStQT1NUR1JFU1FMX0RJUlMg PSBAUE9TVEdSRVNRTF9ESVJTQAotK1BPU1RHUkVTUUxfTERGTEFHUyA9IEBQT1NUR1JFU1FMX0xE RkxBR1NACi0rUE9TVEdSRVNRTF9WRVJTSU9OID0gQFBPU1RHUkVTUUxfVkVSU0lPTkAKLStSQU5M SUIgPSBAUkFOTElCQAotK1NFRCA9IEBTRURACi0rU0VUX01BS0UgPSBAU0VUX01BS0VACi0rU0hF TEwgPSBAU0hFTExACi0rU09DSV9IRUFERVJTX0JVUklFRCA9IEBTT0NJX0hFQURFUlNfQlVSSUVE QAotK1NPQ0lfTVlTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9NWVNRTF9IRUFERVJTX0JVUklF REAKLStTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJRUQgPSBAU09DSV9QT1NUR1JFU1FMX0hF QURFUlNfQlVSSUVEQAotK1NUUklQID0gQFNUUklQQAotK1VQTE9BRF9DT01NQU5EID0gQFVQTE9B RF9DT01NQU5EQAotK1ZFUlNJT04gPSBAVkVSU0lPTkAKLSthYnNfYnVpbGRkaXIgPSBAYWJzX2J1 aWxkZGlyQAotK2Fic19zcmNkaXIgPSBAYWJzX3NyY2RpckAKLSthYnNfdG9wX2J1aWxkZGlyID0g QGFic190b3BfYnVpbGRkaXJACi0rYWJzX3RvcF9zcmNkaXIgPSBAYWJzX3RvcF9zcmNkaXJACi0r YWNfY3RfQVIgPSBAYWNfY3RfQVJACi0rYWNfY3RfQ0MgPSBAYWNfY3RfQ0NACi0rYWNfY3RfQ1hY ID0gQGFjX2N0X0NYWEAKLSthY19jdF9EVU1QQklOID0gQGFjX2N0X0RVTVBCSU5ACi0rYW1fX2lu Y2x1ZGUgPSBAYW1fX2luY2x1ZGVACi0rYW1fX2xlYWRpbmdfZG90ID0gQGFtX19sZWFkaW5nX2Rv dEAKLSthbV9fcXVvdGUgPSBAYW1fX3F1b3RlQAotK2FtX190YXIgPSBAYW1fX3RhckAKLSthbV9f dW50YXIgPSBAYW1fX3VudGFyQAotK2JpbmRpciA9IEBiaW5kaXJACi0rYnVpbGQgPSBAYnVpbGRA Ci0rYnVpbGRfYWxpYXMgPSBAYnVpbGRfYWxpYXNACi0rYnVpbGRfY3B1ID0gQGJ1aWxkX2NwdUAK LStidWlsZF9vcyA9IEBidWlsZF9vc0AKLStidWlsZF92ZW5kb3IgPSBAYnVpbGRfdmVuZG9yQAot K2J1aWxkZGlyID0gQGJ1aWxkZGlyQAotK2RhdGFkaXIgPSBAZGF0YWRpckAKLStkYXRhcm9vdGRp ciA9IEBkYXRhcm9vdGRpckAKLStkaWZmX29rID0gQGRpZmZfb2tACi0rZG9jZGlyID0gQGRvY2Rp ckAKLStkb3h5Z2VuX29rID0gQGRveHlnZW5fb2tACi0rZHZpZGlyID0gQGR2aWRpckAKLStkdmlw c19vayA9IEBkdmlwc19va0AKLStleGVjX3ByZWZpeCA9IEBleGVjX3ByZWZpeEAKLStnc19vayA9 IEBnc19va0AKLStob3N0ID0gQGhvc3RACi0raG9zdF9hbGlhcyA9IEBob3N0X2FsaWFzQAotK2hv c3RfY3B1ID0gQGhvc3RfY3B1QAotK2hvc3Rfb3MgPSBAaG9zdF9vc0AKLStob3N0X3ZlbmRvciA9 IEBob3N0X3ZlbmRvckAKLStodG1sZGlyID0gQGh0bWxkaXJACi0raW5jbHVkZWRpciA9IEBpbmNs dWRlZGlyQAotK2luZm9kaXIgPSBAaW5mb2RpckAKLStpbnN0YWxsX3NoID0gQGluc3RhbGxfc2hA Ci0rbGF0ZXhfb2sgPSBAbGF0ZXhfb2tACi0rbGliZGlyID0gQGxpYmRpckAKLStsaWJleGVjZGly ID0gQGxpYmV4ZWNkaXJACi0rbG9jYWxlZGlyID0gQGxvY2FsZWRpckAKLStsb2NhbHN0YXRlZGly ID0gQGxvY2Fsc3RhdGVkaXJACi0rbWFuZGlyID0gQG1hbmRpckAKLStta2Rpcl9wID0gQG1rZGly X3BACi0rb2xkaW5jbHVkZWRpciA9IEBvbGRpbmNsdWRlZGlyQAotK3BkZmRpciA9IEBwZGZkaXJA Ci0rcHJlZml4ID0gQHByZWZpeEAKLStwcm9ncmFtX3RyYW5zZm9ybV9uYW1lID0gQHByb2dyYW1f dHJhbnNmb3JtX25hbWVACi0rcHNkaXIgPSBAcHNkaXJACi0rc2JpbmRpciA9IEBzYmluZGlyQAot K3NlZF9vayA9IEBzZWRfb2tACi0rc2hhcmVkc3RhdGVkaXIgPSBAc2hhcmVkc3RhdGVkaXJACi0r c3JjZGlyID0gQHNyY2RpckAKLStzeXNjb25mZGlyID0gQHN5c2NvbmZkaXJACi0rdGFyZ2V0X2Fs aWFzID0gQHRhcmdldF9hbGlhc0AKLSt0b3BfYnVpbGRfcHJlZml4ID0gQHRvcF9idWlsZF9wcmVm aXhACi0rdG9wX2J1aWxkZGlyID0gQHRvcF9idWlsZGRpckAKLSt0b3Bfc3JjZGlyID0gQHRvcF9z cmNkaXJACi0rQU1fQ1BQRkxBR1MgPSAtSSQodG9wX2J1aWxkZGlyKSAtSSQodG9wX3NyY2RpcikK LStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IEBNWVNRTF9E SVJTQCBAUE9TVEdSRVNRTF9ESVJTQCBAT1JBQ0xFX0RJUlNACi0rRVhUUkFfRElTVCA9IAotK2Fs bDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46 ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChh bV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChh bV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2Qg JCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkg XAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7 IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJ ZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5k cy9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVU T01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxl Ci0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsg XAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJ R19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTog ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2Nh bF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotKwotK21vc3RseWNsZWFu LWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAu bGlicyBfbGlicwotKwotKyMgVGhpcyBkaXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9z dGx5IGluZGVwZW5kZW50OyB5b3UgY2FuIGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScg d2l0aG91dCBnb2luZyB0aHJvdWdoIHRoaXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZh bHVlcyBvZiBgbWFrZScgdmFyaWFibGVzOiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAot KyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBpcyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBj b25maWcuc3RhdHVzJwotKyMgICAgICh3aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8g YmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3UgcnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBw YXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBvbiB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJF Q1VSU0lWRV9UQVJHRVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYg aW4geCAkJE1BS0VGTEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0t WyFrXSopOzsgXAotKwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsg XAotKwlkb25lOyBcCi0rCWRvdF9zZWVuPW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBz Ly1yZWN1cnNpdmUvL2A7IFwKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRs aXN0OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkg IGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwK LSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBs b2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1 YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8 IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAi bm8iOyB0aGVuIFwKLSsJICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8 IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAteiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFO X1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQk TUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7 OyBcCi0rCSAgICAqayopIGZhaWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRv bmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4t KiB8IG1haW50YWluZXItY2xlYW4tKikgbGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAg KikgbGlzdD0nJChTVUJESVJTKScgOzsgXAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsg ZWxzZSBcCi0rCSAgICByZXY9IiQkc3ViZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7 IFwKLSsJcmV2PSIkJHJldiAuIjsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJz aXZlLy9gOyBcCi0rCWZvciBzdWJkaXIgaW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcg JCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0 aGVuIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0r CSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2Nk KSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAot KwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgotK3Rh Z3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7 IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgdGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2 ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAg dGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpIGN0YWdzKTsgXAotKwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VS Q0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMp ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0r dGFnczogVEFHUwotKwotK1RBR1M6IHRhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VT KSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNl dCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAt LXZlcnNpb24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1l dGFncy1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVk ZV9vcHRpb249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIk JHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RB R1MgfHwgXAotKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3Vi ZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQo SEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAk JGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2Ug ZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZp bGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1w dHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJc2hpZnQ7IFwKLSsJ aWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJ ICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgaWYgdGVz dCAkJCMgLWd0IDA7IHRoZW4gXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VU QUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAotKwkg IGVsc2UgXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQo RVRBR1NfQVJHUykgXAotKwkgICAgICAkJHVuaXF1ZTsgXAotKwkgIGZpOyBcCi0rCWZpCi0rY3Rh Z3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykg ICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5p cXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4g ZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0r CSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBF TkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwK LSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChD VEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdW5p cXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdk YCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQo R1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1Mg SUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxF UykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpd L1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBz ZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwK LSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25l IHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJz fF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRp c3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8 IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBc Ci0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9m aWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVu IGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7 IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCws J2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0rCSAg ICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBj aG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNk aXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAt ZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAg ICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBj aG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQkZmls ZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3Qg LWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRp c3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQot KwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAi JChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8k JHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlz dD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsg ZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBc Ci0rCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGly Mj0iJCh0b3BfZGlzdGRpcikiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkgICAg bmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCi0rCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIg ZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBcCi0rCSAgICBlY2hvICIgICAgIGFtX19yZW1v dmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4PTog ZGlzdGRpcikiOyBcCi0rCSAgICAoJChhbV9fY2QpICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3Bf ZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwKLSsJCWFtX19y ZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJCWFtX19z a2lwX21vZGVfZml4PTogXAotKwkgICAgICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAx OyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2st cmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZQotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1y ZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQot K2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5z dGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwot K2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1l eGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJl Y3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RB TExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9Q Uk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBc Ci0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dS QU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVy aWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMp Ci0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFU SF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50 YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBm b3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1h eSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5U QUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVh bjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGli dG9vbCBtb3N0bHljbGVhbi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQot Kwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5l cmljIGRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgot KwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLXJl Y3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3RhbGwt ZHZpOiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0 YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtcmVjdXJzaXZlCi0r Ci0raW5zdGFsbC1odG1sLWFtOgotKwotK2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLXJlY3Vy c2l2ZQotKwotK2luc3RhbGwtaW5mby1hbToKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxs LXBkZjogaW5zdGFsbC1wZGYtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5z dGFsbC1wczogaW5zdGFsbC1wcy1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBzLWFtOgotKwotK2lu c3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFpbmVyLWNsZWFuLXJl Y3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xl YW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNs ZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1nZW5lcmljIG1v c3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6IHBkZi1yZWN1cnNpdmUKLSsKLStwZGYtYW06Ci0r Ci0rcHM6IHBzLXJlY3Vyc2l2ZQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsu TUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3Rh Z3MtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZl Ci0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJH RVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xl YW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3Rj bGVhbiBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10 YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5z dGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxs LWR2aSBpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5z dGFsbC1odG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8t YW0gaW5zdGFsbC1tYW4gaW5zdGFsbC1wZGYgaW5zdGFsbC1wZGYtYW0gXAotKwlpbnN0YWxsLXBz IGluc3RhbGwtcHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgXAotKwlpbnN0YWxsY2hl Y2stYW0gaW5zdGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1h aW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1nZW5lcmljIFwK LSsJbW9zdGx5Y2xlYW4tbGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdGFncy1yZWN1 cnNpdmUgXAotKwl1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAotKwotKyMg VGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3QgZXhwb3J0IGFsbCB2 YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBTeXNWIGF0IGxlYXN0 KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYW0KLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2Np L2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmFtCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAw ICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZp bGUuYW0JMjAwOS0wNC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMjYg QEAKLSsjIyBiYWNrZW5kcy9teXNxbCBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStN QUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IC4gdGVzdAot KwotK2lmIEhBVkVfTVlTUUwKLStsaWJfTFRMSUJSQVJJRVM9IGxpYnNvY2lfbXlzcWwubGEKLSsK LStsaWJzb2NpX215c3FsX2xhX1NPVVJDRVM9ICQoYmNrX215c3FsX2hfc291cmNlcykgJChiY2tf bXlzcWxfY2Nfc291cmNlcykgCi0rbGlic29jaV9teXNxbF9sYV9DWFhGTEFHUyA9ICQoTVlTUUxf Q0ZMQUdTKQotK2xpYnNvY2lfbXlzcWxfbGFfTElCQUREID0KLStsaWJzb2NpX215c3FsX2xhX0xE RkxBR1MgPSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NU X1BST0dSQU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFS WV9WRVJTSU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLStlbmRpZgotK2lmIFNPQ0lfSEVBREVSU19CVVJJ RUQKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL215c3Fs Ci0rZWxzZQotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rZW5kaWYKLStwa2dp bmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1w YWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUuYmFzaWMKLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmJhc2ljCTIwMTEtMDctMDMgMTg6NTU6MDYu NDE0ODc3MDcxICswMjAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlz cWwvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBA IC0xLDk3ICswLDAgQEAKLS0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGVzIGFyZSBzcGVjaWZpYyB0 byB0aGlzIGJhY2tlbmQgYW5kIHRoZWlyIGNvcnJlY3QKLS0jIHZhbHVlcyBtaWdodCBkZXBlbmQg b24geW91ciBlbnZpcm9ubWVudCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCi0t Ci0tTVlTUUxMSUJESVIgPSAtTC91c3IvbGliL215c3FsCi0tTVlTUUxMSUJTID0gLWxteXNxbGNs aWVudCAtbHoKLS1NWVNRTElOQ0xVREVESVIgPSAtSS91c3IvaW5jbHVkZS9teXNxbAotLQotLSMg VGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW5kZW50IG9mIHRoZSB0YXJnZXQgZW52 aXJvbm1lbnQuCi0tCi0tQ09NUElMRVIgPSBnKysKLS1DWFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRp YyAtV25vLWxvbmctbG9uZwotLUNYWEZMQUdTU08gPSAke0NYWEZMQUdTfSAtZlBJQwotLUlOQ0xV REVESVJTID0gLUkuLi8uLi9jb3JlICR7TVlTUUxJTkNMVURFRElSfQotLQotLQotLU9CSkVDVFMg PSBibG9iLm8gZmFjdG9yeS5vIHJvdy1pZC5vIHNlc3Npb24ubyBzdGFuZGFyZC1pbnRvLXR5cGUu byBcCi0tCXN0YW5kYXJkLXVzZS10eXBlLm8gc3RhdGVtZW50Lm8gdmVjdG9yLWludG8tdHlwZS5v IHZlY3Rvci11c2UtdHlwZS5vIFwKLS0JY29tbW9uLm8KLS0KLS0KLS1PQkpFQ1RTU08gPSBibG9i LXMubyBmYWN0b3J5LXMubyByb3ctaWQtcy5vIHNlc3Npb24tcy5vIFwKLS0Jc3RhbmRhcmQtaW50 by10eXBlLXMubyBzdGFuZGFyZC11c2UtdHlwZS1zLm8gc3RhdGVtZW50LXMubyBcCi0tCXZlY3Rv ci1pbnRvLXR5cGUtcy5vIHZlY3Rvci11c2UtdHlwZS1zLm8gY29tbW9uLXMubwotLQotLQotLWxp YnNvY2lfbXlzcWwuYSA6ICR7T0JKRUNUU30KLS0JYXIgcnYgJEAgJD8KLS0Jcm0gKi5vCi0tCi0t Ci0tYmxvYi5vIDogYmxvYi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJ TkNMVURFRElSU30KLS0KLS1jb21tb24ubyA6IGNvbW1vbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1mYWN0b3J5Lm8gOiBmYWN0b3J5LmNw cAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXJv dy1pZC5vIDogcm93LWlkLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1j ICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLm8g OiBzdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtdXNlLXR5cGUubyA6IHN0YW5kYXJkLXVzZS10 eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQot LQotLXN0YXRlbWVudC5vIDogc3RhdGVtZW50LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NY WEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci1pbnRvLXR5cGUubyA6IHZlY3Rvci1p bnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9Ci0tCi0tdmVjdG9yLXVzZS10eXBlLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc2hhcmVkIDogJHtP QkpFQ1RTU099Ci0tCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9teXNxbC5zbyAke09C SkVDVFNTT30KLS0Jcm0gKi5vCi0tCi0tYmxvYi1zLm8gOiBibG9iLmNwcAotLQkke0NPTVBJTEVS fSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tY29tbW9uLXMu byA6IGNvbW1vbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAk e0lOQ0xVREVESVJTfQotLQotLWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXJvdy1pZC1z Lm8gOiByb3ctaWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30g JHtJTkNMVURFRElSU30KLS0KLS1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09NUElM RVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFy ZC1pbnRvLXR5cGUtcy5vIDogc3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAt YyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtdXNl LXR5cGUtcy5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQtcy5vIDogc3Rh dGVtZW50LmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5D TFVERURJUlN9Ci0tCi0tdmVjdG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNw cAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9 Ci0tCi0tdmVjdG9yLXVzZS10eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLQotLWNs ZWFuIDoKLS0Jcm0gLWYgbGlic29jaV9teXNxbC5hIGxpYnNvY2lfbXlzcWwuc28KLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmluIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL01ha2VmaWxlLmluCi0tLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAx OjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tl bmRzL215c3FsL01ha2VmaWxlLmluCTIwMTEtMDctMDMgMTg6NDQ6MjcuMDAwMDAwMDAwICswMjAw Ci1AQCAtMCwwICsxLDkwMSBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtl IDEuMTEuMSBmcm9tIE1ha2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENv cHlyaWdodCAoQykgMTk5NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAw MSwgMjAwMiwKLSsjIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMg ZnJlZSBzb2Z0d2FyZTsgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5s aW1pdGVkIHBlcm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGgg b3Igd2l0aG91dCBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNl cnZlZC4KLSsKLSsjIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUg ZXh0ZW50IHBlcm1pdHRlZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2Fy cmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIg UFVSUE9TRS4KLSsKLStAU0VUX01BS0VACi0rCi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2Rh dGFkaXIgPSAkKGRhdGFkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmRpciA9ICQobGliZGlyKS9AUEFD S0FHRUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVjZGlyKS9AUEFDS0FHRUAKLSthbV9fY2Qg PSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRIX1NFUEFSQVRPUikiICYmIGNkCi0raW5z dGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAtbSA2NDQKLStpbnN0YWxsX3NoX1BST0dS QU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9zaF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gp IC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExfREFUQSkKLSt0cmFuc2Zvcm0gPSAkKHBy b2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lOU1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwg PSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9VTklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5T VEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLStidWlsZF90cmlwbGV0ID0gQGJ1aWxkQAot K2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09NTU9OID0gJChhbV9fcGtnaW5jbHVkZV9I RUFERVJTX0RJU1QpICQoc3JjZGlyKS9NYWtlZmlsZS5hbSBcCi0rCSQoc3JjZGlyKS9NYWtlZmls ZS5pbiAkKHNyY2Rpcikvc291cmNlcy5tayBcCi0rCSQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uCi0rc3ViZGlyID0gc29jaS9iYWNrZW5kcy9teXNxbAotK0FDTE9DQUxfTTQgPSAkKHRvcF9z cmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3Bw dW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1 Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMK LSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJF X0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5z dGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmln LmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0r YW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2Vk ICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChzcmNk aXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsg ICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8 IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9tYXggPSA0MAotK2FtX19ub2Jhc2Vf c3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFzZV9zdHJpcCA9IFwKLSsgIGZvciBw IGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlw L3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKLSsg IGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCi0rICBzZWQgInN8 ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSok JCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNb JCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9f aW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9 IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykg cHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2VfbGlzdCA9IFwKLSsgIHNlZCAnJCQh TjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCi0rICBzZWQgJyQk IU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJ UikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLStMVExJQlJBUklFUyA9 ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfbXlzcWxfbGFfREVQRU5ERU5DSUVTID0KLSth bV9fbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTX0RJU1QgPSAgXAotKwkkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc29jaS1teXNxbC5oIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL2Jsb2IuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1v bi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAg XAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCBcCi0rCSQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCBcCi0rCSQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwIFwKLSsJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0r CSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGF0ZW1lbnQuY3BwIFwKLSsJJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwIFwKLSsJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSth bV9fb2JqZWN0c18xID0KLSthbV9fb2JqZWN0c18yID0gbGlic29jaV9teXNxbF9sYS1ibG9iLmxv IGxpYnNvY2lfbXlzcWxfbGEtY29tbW9uLmxvIFwKLSsJbGlic29jaV9teXNxbF9sYS1mYWN0b3J5 LmxvIGxpYnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIFwKLSsJbGlic29jaV9teXNxbF9sYS1zZXNz aW9uLmxvIFwKLSsJbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gXAotKwls aWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIFwKLSsJbGlic29jaV9teXNxbF9s YS1zdGF0ZW1lbnQubG8gXAotKwlsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8g XAotKwlsaWJzb2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbwotK0BIQVZFX01ZU1FMX1RS VUVAYW1fbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18xKSBcCi0rQEhB VkVfTVlTUUxfVFJVRUAJJChhbV9fb2JqZWN0c18yKQotK2xpYnNvY2lfbXlzcWxfbGFfT0JKRUNU UyA9ICQoYW1fbGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKQotK2xpYnNvY2lfbXlzcWxfbGFfTElO SyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9P TEZMQUdTKSAtLW1vZGU9bGluayAkKENYWExEKSBcCi0rCSQobGlic29jaV9teXNxbF9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgXAotKwkkKGxpYnNvY2lfbXlzcWxfbGFfTERGTEFHUykgJChMREZM QUdTKSAtbyAkQAotK0BIQVZFX01ZU1FMX1RSVUVAYW1fbGlic29jaV9teXNxbF9sYV9ycGF0aCA9 IC1ycGF0aCAkKGxpYmRpcikKLStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQo dG9wX2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29u ZmlnL2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotK2FtX19tdiA9IG12 IC1mCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAk KENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9ICQoQ1hYKQot K0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhG TEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStDT01QSUxFID0gJChD QykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp IFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0xUQ09NUElMRSA9ICQo TElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0r CS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFH UykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NG TEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09V UkNFUyA9ICQobGlic29jaV9teXNxbF9sYV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQoYW1f X2xpYnNvY2lfbXlzcWxfbGFfU09VUkNFU19ESVNUKQotK1JFQ1VSU0lWRV9UQVJHRVRTID0gYWxs LXJlY3Vyc2l2ZSBjaGVjay1yZWN1cnNpdmUgZHZpLXJlY3Vyc2l2ZSBcCi0rCWh0bWwtcmVjdXJz aXZlIGluZm8tcmVjdXJzaXZlIGluc3RhbGwtZGF0YS1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWR2 aS1yZWN1cnNpdmUgaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtaHRtbC1yZWN1 cnNpdmUgaW5zdGFsbC1pbmZvLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtcGRmLXJlY3Vyc2l2ZSBp bnN0YWxsLXBzLXJlY3Vyc2l2ZSBpbnN0YWxsLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGxjaGVjay1y ZWN1cnNpdmUgaW5zdGFsbGRpcnMtcmVjdXJzaXZlIHBkZi1yZWN1cnNpdmUgXAotKwlwcy1yZWN1 cnNpdmUgdW5pbnN0YWxsLXJlY3Vyc2l2ZQotK2FtX19wa2dpbmNsdWRlX0hFQURFUlNfRElTVCA9 ICBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zb2NpLW15c3FsLmgKLStI RUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMg PSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1y ZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStBTV9SRUNVUlNJVkVfVEFSR0VU UyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKLSsJZGlzdGRp cgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJE SVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElO Rk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZpemUgPSBcCi0rICBkaXIwPWBwd2RgOyBc Ci0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKLSsgIHNlZF9yZXN0PSdz LF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAot KyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3aGlsZSB0ZXN0IC1uICIkJGRp cjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJz dCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCi0rICAgICAgaWYg dGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsgICAgICAgIGRpcjI9YGVjaG8gIiQkZGly MCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAotKyAgICAgICAgZGlyMD1gZWNo byAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCi0rICAgICAgZWxzZSBcCi0r ICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwK LSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCi0rICAgICAg ICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgICAg ICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKLSsgICAgICAgIGZpOyBc Ci0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAotKyAgICAgIGZpOyBcCi0rICAg IGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsg XAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIiCi0rcGtnaW5jbHVkZWRpciA9ICQoc29j aV9pbmNsdWRlX2RpcikKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0r QVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVB REVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQVNJT19M SUIgPSBAQk9PU1RfQVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStC T09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZ U1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9 IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09T VF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9P U1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJ QkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTEla QVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElC ID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVN X0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0r Qk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0g QENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1Mg PSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5J VF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElC U0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0r Q1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1Mg PSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0r REVQRElSID0gQERFUERJUkAKLStETExUT09MID0gQERMTFRPT0xACi0rRFNZTVVUSUwgPSBARFNZ TVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19O ID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVY VCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04g PSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBA SU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JB TSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRA Ci0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9 IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMg PSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBA TE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAot K01BTklGRVNUX1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJUl9QID0gQE1LRElSX1BACi0r TVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJ QkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJT QAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQg PSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09S QUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9P Q0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0r T1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9P TEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0Vf QlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdF X05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJO QU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKLStQ QUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBB VEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAot K1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElS UyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxf TERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JB TkxJQiA9IEBSQU5MSUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStT SEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJ RURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBM T0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNf YnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIg PSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAK LSthY19jdF9BUiA9IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9D WFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9f aW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdf ZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2Ft X191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWls ZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1 QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JA Ci0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290 ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9j ZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2 aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29r ID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0r aG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9y ID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGlu Y2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9z aEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNk aXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVk aXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtk aXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRp ckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJA Ci0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAK LStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRf YWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3By ZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9w X3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGly KQotK2Jja19teXNxbF9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotKwotK2Jja19teXNxbF9jY19zb3VyY2VzID0gXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNwcCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAgXAot KyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJkLWludG8t dHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSsKLStNQUlOVEFJTkVS Q0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IC4gdGVzdAotK0BIQVZFX01ZU1FM X1RSVUVAbGliX0xUTElCUkFSSUVTID0gbGlic29jaV9teXNxbC5sYQotK0BIQVZFX01ZU1FMX1RS VUVAbGlic29jaV9teXNxbF9sYV9TT1VSQ0VTID0gJChiY2tfbXlzcWxfaF9zb3VyY2VzKSAkKGJj a19teXNxbF9jY19zb3VyY2VzKSAKLStASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlzcWxfbGFf Q1hYRkxBR1MgPSAkKE1ZU1FMX0NGTEFHUykKLStASEFWRV9NWVNRTF9UUlVFQGxpYnNvY2lfbXlz cWxfbGFfTElCQUREID0gCi0rQEhBVkVfTVlTUUxfVFJVRUBsaWJzb2NpX215c3FsX2xhX0xERkxB R1MgPSBcCi0rQEhBVkVfTVlTUUxfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElN RV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAotK0BIQVZFX01ZU1FMX1RSVUVA CS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStASEFWRV9NWVNR TF9UUlVFQHBrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC9zb2NpLW15c3FsLmgKLStAU09DSV9IRUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1 ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9p bmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9iYWNrZW5kcy9teXNxbAotK2FsbDogYWxs LXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoK LSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJl X2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJl X2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRk aXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAg ICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0r CSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQo dG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9teXNxbC9NYWtl ZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0Up IC0tZ251IHNvY2kvYmFja2VuZHMvbXlzcWwvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6IE1ha2VmaWxl Ci0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRpcikvY29uZmln LnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyopIFwKLSsJICAg IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hF TEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpJzsg XAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAk KHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwotKwotKyQodG9w X2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZSAkKENPTkZJ R19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZTog ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChhbV9fYWNsb2Nh bF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFH UykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotK2luc3RhbGwtbGliTFRM SUJSQVJJRVM6ICQobGliX0xUTElCUkFSSUVTKQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVz dCAteiAiJChsaWJkaXIpIiB8fCAkKE1LRElSX1ApICIkKERFU1RESVIpJChsaWJkaXIpIgotKwlA bGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsg XAotKwlsaXN0Mj07IGZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRwOyB0 aGVuIFwKLSsJICAgIGxpc3QyPSIkJGxpc3QyICQkcCI7IFwKLSsJICBlbHNlIDo7IGZpOyBcCi0r CWRvbmU7IFwKLSsJdGVzdCAteiAiJCRsaXN0MiIgfHwgeyBcCi0rCSAgZWNobyAiICQoTElCVE9P TCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElO U1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICckKERFU1RESVIpJChsaWJkaXIp JyI7IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWluc3RhbGwgJChJTlNUQUxMKSAkKElOU1RBTExfU1RSSVBfRkxBRykgJCRsaXN0MiAi JChERVNURElSKSQobGliZGlyKSI7IFwKLSsJfQotKwotK3VuaW5zdGFsbC1saWJMVExJQlJBUklF UzoKLSsJQCQoTk9STUFMX1VOSU5TVEFMTCkKLSsJQGxpc3Q9JyQobGliX0xUTElCUkFSSUVTKSc7 IHRlc3QgLW4gIiQobGliZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgJChhbV9fc3RyaXBfZGlyKSBcCi0rCSAgZWNobyAiICQoTElCVE9PTCkgJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9dW5pbnN0YWxsIHJtIC1mICckKERFU1RE SVIpJChsaWJkaXIpLyQkZiciOyBcCi0rCSAgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgIiQoREVTVERJUikkKGxpYmRp cikvJCRmIjsgXAotKwlkb25lCi0rCi0rY2xlYW4tbGliTFRMSUJSQVJJRVM6Ci0rCS10ZXN0IC16 ICIkKGxpYl9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobGliX0xUTElCUkFSSUVTKQotKwlAbGlz dD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZGlyPSJg ZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRlc3QgIiQkZGlyIiAh PSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGlyfS9zb19sb2NhdGlv bnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBcCi0rCWRvbmUKLSts aWJzb2NpX215c3FsLmxhOiAkKGxpYnNvY2lfbXlzcWxfbGFfT0JKRUNUUykgJChsaWJzb2NpX215 c3FsX2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29jaV9teXNxbF9sYV9MSU5LKSAkKGFtX2xp YnNvY2lfbXlzcWxfbGFfcnBhdGgpICQobGlic29jaV9teXNxbF9sYV9PQkpFQ1RTKSAkKGxpYnNv Y2lfbXlzcWxfbGFfTElCQUREKSAkKExJQlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJ LXJtIC1mICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRh Yi5jCi0rCi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWNvbW1vbi5Q bG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLWZhY3RvcnkuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9s YS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlBsb0BhbV9fcXVvdGVA Ci0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNv Y2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RS VUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEt c3RhbmRhcmQtdXNlLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQuUGxv QGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERF UERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsb0BhbV9fcXVvdGVACi0r QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf bXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERF UERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBC QUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChE RVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6 Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1G ICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8K LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0n JEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAt byAkQCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBv IC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv JCouVHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotK2xpYnNvY2lfbXlzcWxfbGEt YmxvYi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVM VF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJz b2NpX215c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1i bG9iLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJsb2IuVHBvIC1j IC1vIGxpYnNvY2lfbXlzcWxfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL215c3FsL2Jsb2IuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLWJsb2IuVHBvICQoREVQRElSKS9s aWJzb2NpX215c3FsX2xhLWJsb2IuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCcg b2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215 c3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWJsb2Iu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9ibG9iLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Js b2IuY3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1jb21tb24ubG86ICQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtTVQgbGlic29jaV9teXNxbF9sYS1jb21tb24ubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xh LWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Nv bW1vbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9teXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERF UERJUikvbGlic29jaV9teXNxbF9sYS1jb21tb24uVHBvICQoREVQRElSKS9saWJzb2NpX215c3Fs X2xhLWNvbW1vbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIG9iamVjdD0n bGlic29jaV9teXNxbF9sYS1jb21tb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX215c3FsX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX215c3FsX2xhLWNvbW1vbi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2NvbW1vbi5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21t b24uY3BwCi0rCi0rbGlic29jaV9teXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvZmFjdG9yeS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLWZhY3RvcnkubG8gLU1EIC1NUCAtTUYg JChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5UcG8gLWMgLW8gbGlic29jaV9teXNx bF9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9teXNxbC9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5UcG8gJChERVBESVIpL2xpYnNv Y2lfbXlzcWxfbGEtZmFjdG9yeS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2ZhY3RvcnkuY3Bw JyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtZmFjdG9yeS5sbycgbGlidG9vbD15ZXMgQEFNREVQ QkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQo REVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9f ZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEt ZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Zh Y3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvZmFjdG9yeS5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1yb3ctaWQuVHBvIC1jIC1vIGxp YnNvY2lfbXlzcWxfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Jvdy1pZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXJvdy1pZC5UcG8gJChERVBESVIp L2xpYnNvY2lfbXlzcWxfbGEtcm93LWlkLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlk LmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXJvdy1pZC5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxf bGEtcm93LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv cm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL215c3FsL3Jvdy1pZC5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG86ICQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc2Vzc2lvbi5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAt byBsaWJzb2NpX215c3FsX2xhLXNlc3Npb24ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlRwbyAk KERFUERJUikvbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLlBsbwotK0BBTURFUF9UUlVFQEBhbV9f ZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvc2Vzc2lvbi5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1zZXNzaW9uLmxvJyBsaWJ0 b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNL U0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9teXNxbF9sYS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvbXlzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC9zZXNzaW9uLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEt c3RhbmRhcmQtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwv c3RhbmRhcmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLmxvIC1NRCAtTVAg LU1GICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gLWMg LW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBl Y2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRh cmQtaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBE SVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAkKERFUERJUikvbGli c29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfbXlzcWxfbGEtc3RhbmRh cmQtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8g YHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC1pbnRv LXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtc3Rh bmRhcmQtdXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFu ZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUg JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1Mp IC1NVCBsaWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLlRwbyAtYyAtbyBsaWJz b2NpX215c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNy Y2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhbmRhcmQtdXNlLXR5 cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29j aV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxf bGEtc3RhbmRhcmQtdXNlLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11 c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9zdGFuZGFy ZC11c2UtdHlwZS5jcHAKLSsKLStsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5sbzogJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxf bGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX215c3FsX2xhLXN0YXRlbWVudC5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS1zdGF0ZW1lbnQuVHBvIC1j IC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zh c3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX215c3FsX2xhLXN0YXRl bWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX215c3FsX2xhLXN0 YXRlbWVudC5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfbXlzcWxfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1jIC1vIGxpYnNvY2lfbXlzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChz cmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YXRlbWVudC5jcHAK LSsKLStsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG86ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENY WF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9P TEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9s YV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLWludG8t dHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50 by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX215c3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItaW50by10eXBl LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAkKERFUERJ UikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv bXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9teXNxbF9sYS12ZWN0 b3ItaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0 ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlw ZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC92ZWN0b3ItaW50by10eXBlLmNwcAotKwotK2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10 eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9teXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNv Y2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJz b2NpX215c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9teXNxbF9sYS12 ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9t eXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfbXlzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9teXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuUGxv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9teXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNv Y2lfbXlzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xB U0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIp ICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9teXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9teXNxbF9sYS12ZWN0b3It dXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC92 ZWN0b3ItdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotKwotK21vc3RseWNsZWFuLWxp YnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJtIC1yZiAubGli cyBfbGlicwotK2luc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6ICQocGtnaW5jbHVkZV9IRUFERVJT KQotKwlAJChOT1JNQUxfSU5TVEFMTCkKLSsJdGVzdCAteiAiJChwa2dpbmNsdWRlZGlyKSIgfHwg JChNS0RJUl9QKSAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rCUBsaXN0PSckKHBrZ2lu Y2x1ZGVfSEVBREVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAot Kwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICIkJHAiOyB0aGVuIGQ9OyBl bHNlIGQ9IiQoc3JjZGlyKS8iOyBmaTsgXAotKwkgIGVjaG8gIiQkZCQkcCI7IFwKLSsJZG9uZSB8 ICQoYW1fX2Jhc2VfbGlzdCkgfCBcCi0rCXdoaWxlIHJlYWQgZmlsZXM7IGRvIFwKLSsJICBlY2hv ICIgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAnJChERVNURElSKSQocGtnaW5jbHVkZWRpcikn IjsgXAotKwkgICQoSU5TVEFMTF9IRUFERVIpICQkZmlsZXMgIiQoREVTVERJUikkKHBrZ2luY2x1 ZGVkaXIpIiB8fCBleGl0ICQkPzsgXAotKwlkb25lCi0rCi0rdW5pbnN0YWxsLXBrZ2luY2x1ZGVI RUFERVJTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hF QURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKLSsJZmlsZXM9 YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAkJHA7IGRvbmUgfCBzZWQgLWUgJ3N8Xi4qL3x8J2A7 IFwKLSsJdGVzdCAtbiAiJCRmaWxlcyIgfHwgZXhpdCAwOyBcCi0rCWVjaG8gIiAoIGNkICckKERF U1RESVIpJChwa2dpbmNsdWRlZGlyKScgJiYgcm0gLWYiICQkZmlsZXMgIikiOyBcCi0rCWNkICIk KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgJiYgcm0gLWYgJCRmaWxlcwotKwotKyMgVGhpcyBk aXJlY3RvcnkncyBzdWJkaXJlY3RvcmllcyBhcmUgbW9zdGx5IGluZGVwZW5kZW50OyB5b3UgY2Fu IGNkCi0rIyBpbnRvIHRoZW0gYW5kIHJ1biBgbWFrZScgd2l0aG91dCBnb2luZyB0aHJvdWdoIHRo aXMgTWFrZWZpbGUuCi0rIyBUbyBjaGFuZ2UgdGhlIHZhbHVlcyBvZiBgbWFrZScgdmFyaWFibGVz OiBpbnN0ZWFkIG9mIGVkaXRpbmcgTWFrZWZpbGVzLAotKyMgKDEpIGlmIHRoZSB2YXJpYWJsZSBp cyBzZXQgaW4gYGNvbmZpZy5zdGF0dXMnLCBlZGl0IGBjb25maWcuc3RhdHVzJwotKyMgICAgICh3 aGljaCB3aWxsIGNhdXNlIHRoZSBNYWtlZmlsZXMgdG8gYmUgcmVnZW5lcmF0ZWQgd2hlbiB5b3Ug cnVuIGBtYWtlJyk7Ci0rIyAoMikgb3RoZXJ3aXNlLCBwYXNzIHRoZSBkZXNpcmVkIHZhbHVlcyBv biB0aGUgYG1ha2UnIGNvbW1hbmQgbGluZS4KLSskKFJFQ1VSU0lWRV9UQVJHRVRTKToKLSsJQGZh aWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAot KwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBm YWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVu PW5vOyBcCi0rCXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJbGlz dD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgZWNobyAiTWFr aW5nICQkdGFyZ2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIu IjsgdGhlbiBcCi0rCSAgICBkb3Rfc2Vlbj15ZXM7IFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0 YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0Ijsg XAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBcCi0rCWRv bmU7IFwKLSsJaWYgdGVzdCAiJCRkb3Rfc2VlbiIgPSAibm8iOyB0aGVuIFwKLSsJICAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSAiJCR0YXJnZXQtYW0iIHx8IGV4aXQgMTsgXAotKwlmaTsgdGVzdCAt eiAiJCRmYWlsIgotKwotKyQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFp bGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2Fz ZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209 J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwK LSsJY2FzZSAiJEAiIGluIFwKLSsJICBkaXN0Y2xlYW4tKiB8IG1haW50YWluZXItY2xlYW4tKikg bGlzdD0nJChESVNUX1NVQkRJUlMpJyA7OyBcCi0rCSAgKikgbGlzdD0nJChTVUJESVJTKScgOzsg XAotKwllc2FjOyBcCi0rCXJldj0nJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBp ZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgICByZXY9IiQkc3Vi ZGlyICQkcmV2IjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJcmV2PSIkJHJldiAuIjsgXAot Kwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBcCi0rCWZvciBzdWJkaXIg aW4gJCRyZXY7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBc Ci0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwKLSsJICAgIGxvY2FsX3Rhcmdl dD0iJCR0YXJnZXQtYW0iOyBcCi0rCSAgZWxzZSBcCi0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFy Z2V0IjsgXAotKwkgIGZpOyBcCi0rCSAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQo QU1fTUFLRUZMQUdTKSAkJGxvY2FsX3RhcmdldCkgXAotKwkgIHx8IGV2YWwgJCRmYWlsY29tOyBc Ci0rCWRvbmUgJiYgdGVzdCAteiAiJCRmYWlsIgotK3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSck KFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRp ciIgPSAuIHx8ICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg dGFncyk7IFwKLSsJZG9uZQotK2N0YWdzLXJlY3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7 IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAo JChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGN0YWdzKTsgXAot Kwlkb25lCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxF UykKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7 IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQk aSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRv bmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAot KwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9 OyB9J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6IHRh Z3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykg XAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwK LSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNpb24pID4vZGV2L251bGwgMj4m MTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1pbmNsdWRlOyBcCi0rCSAgZW1w dHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1pbmNsdWRlOyBcCi0r CSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVs c2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwgXAotKwkgICAgICBzZXQgIiQk QCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RBR1MiOyBcCi0rCSAgZmk7IFwK LSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdT X0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRl c3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsg XAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9 IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBw cmludCBpOyB9OyB9J2A7IFwKLSsJc2hpZnQ7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdT KSQkKiQkdW5pcXVlIjsgdGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwg dW5pcXVlPSQkZW1wdHlfZml4OyBcCi0rCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAotKwkg ICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykg XAotKwkgICAgICAiJCRAIiAkJHVuaXF1ZTsgXAotKwkgIGVsc2UgXAotKwkgICAgJChFVEFHUykg JChFVEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAk JHVuaXF1ZTsgXAotKwkgIGZpOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6IGN0YWdz LXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwK LSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykg ICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRv IFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNy Y2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0g PSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9y IChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdT KSQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxB R1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9 YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQo dG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsK LStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQ QVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hv ICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNk aXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYv ZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmls ZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRz cmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRv cF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikg JChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtz fF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAot Kwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3Qg LWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsg Zmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hv ICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQg IiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRm aWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkg ICAgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAh PSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQo ZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRm aWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkg ICAgZmk7IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBl eGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBc Ci0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAg fHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMp JzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAu OyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAot KwkgICAgfHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhp dCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVu IDo7IGVsc2UgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRp ciI7IFwKLSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfZGlzdGRpcj0kJHJl bGRpcjsgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCi0r CSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGly OyBcCi0rCSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIg XFwiOyBcCi0rCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xl bmd0aF9jaGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCi0rCSAgICAoJChh bV9fY2QpICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAot KwkgICAgICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRp c3RkaXI9IiQkbmV3X2Rpc3RkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFt X19za2lwX2xlbmd0aF9jaGVjaz06IFwKLSsJCWFtX19za2lwX21vZGVfZml4PTogXAotKwkgICAg ICAgIGRpc3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQot K2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtl ZmlsZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCi0raW5zdGFsbGRpcnM6IGluc3RhbGxkaXJz LXJlY3Vyc2l2ZQotK2luc3RhbGxkaXJzLWFtOgotKwlmb3IgZGlyIGluICIkKERFU1RESVIpJChs aWJkaXIpIiAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiOyBkbyBcCi0rCSAgdGVzdCAteiAi JCRkaXIiIHx8ICQoTUtESVJfUCkgIiQkZGlyIjsgXAotKwlkb25lCi0raW5zdGFsbDogaW5zdGFs bC1yZWN1cnNpdmUKLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1yZWN1cnNpdmUKLStpbnN0 YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1yZWN1cnNpdmUKLSt1bmluc3RhbGw6IHVuaW5zdGFsbC1y ZWN1cnNpdmUKLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxB R1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGlu c3RhbGxjaGVjay1yZWN1cnNpdmUKLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkg IGluc3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NU UklQX0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAi SU5TVEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0 bHljbGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVy aWM6Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklH X0NMRUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05G SUdfQ0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxF UykKLSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQg aXMgaW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMg ZmlsZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVz dCAteiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFO RklMRVMpCi0rY2xlYW46IGNsZWFuLXJlY3Vyc2l2ZQotKwotK2NsZWFuLWFtOiBjbGVhbi1nZW5l cmljIGNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgXAotKwltb3N0bHljbGVhbi1h bQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLXJmIC4vJChERVBE SVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVhbi1hbTogY2xlYW4tYW0gZGlzdGNsZWFu LWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlkaXN0Y2xlYW4tdGFncwotKwotK2R2aTog ZHZpLXJlY3Vyc2l2ZQotKwotK2R2aS1hbToKLSsKLStodG1sOiBodG1sLXJlY3Vyc2l2ZQotKwot K2h0bWwtYW06Ci0rCi0raW5mbzogaW5mby1yZWN1cnNpdmUKLSsKLStpbmZvLWFtOgotKwotK2lu c3RhbGwtZGF0YS1hbTogaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK2luc3RhbGwtZHZp OiBpbnN0YWxsLWR2aS1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxs LWV4ZWMtYW06IGluc3RhbGwtbGliTFRMSUJSQVJJRVMKLSsKLStpbnN0YWxsLWh0bWw6IGluc3Rh bGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZv OiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3Rh bGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46 IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJt IC1mIE1ha2VmaWxlCi0rbWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWlu ZXItY2xlYW4tZ2VuZXJpYwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1yZWN1cnNpdmUK LSsKLSttb3N0bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5l cmljIFwKLSsJbW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwot K3BkZi1hbToKLSsKLStwczogcHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxs LWFtOiB1bmluc3RhbGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJT Ci0rCi0rLk1BS0U6ICQoUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMpICQoUkVDVVJTSVZFX1RBUkdF VFMpIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcCB0YWdzLXJl Y3Vyc2l2ZQotKwotKy5QSE9OWTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJ VkVfVEFSR0VUUykgQ1RBR1MgR1RBR1MgXAotKwlhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNs ZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29s IGN0YWdzIGN0YWdzLXJlY3Vyc2l2ZSBcCi0rCWRpc3RjbGVhbiBkaXN0Y2xlYW4tY29tcGlsZSBk aXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1saWJ0b29sIGRpc3RjbGVhbi10YWdzIGRp c3RkaXIgZHZpIGR2aS1hbSBodG1sIFwKLSsJaHRtbC1hbSBpbmZvIGluZm8tYW0gaW5zdGFsbCBp bnN0YWxsLWFtIGluc3RhbGwtZGF0YSBcCi0rCWluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBp bnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgXAotKwlpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1o dG1sIGluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWluZm8gXAotKwlpbnN0YWxsLWluZm8tYW0gaW5z dGFsbC1saWJMVExJQlJBUklFUyBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwt cGRmLWFtIGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFsbC1wcyBcCi0rCWluc3RhbGwt cHMtYW0gaW5zdGFsbC1zdHJpcCBpbnN0YWxsY2hlY2sgaW5zdGFsbGNoZWNrLWFtIFwKLSsJaW5z dGFsbGRpcnMgaW5zdGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXIt Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAot Kwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3Rh bGwtbGliTFRMSUJSQVJJRVMgdW5pbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0rQFNFVF9N QUtFQAotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUgbWFrZSB0byBub3Qg ZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0gbGltaXQgKGZvciBT eXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvc291cmNlcy5tayBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80 LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC9zb3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAu MDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlz cWwvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAs MCArMSwxNCBAQAotK2Jja19teXNxbF9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvY29tbW9uLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3NvY2ktbXlzcWwuaAotK2Jja19teXNxbF9jY19zb3VyY2Vz ID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL2Jsb2IuY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9jb21tb24uY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC9mYWN0b3J5LmNw cCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvcm93LWlkLmNw cCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvc2Vzc2lvbi5j cHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3N0YW5kYXJk LWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215 c3FsL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvbXlzcWwvdmVjdG9yLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLWRpZmYgLU51 ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYW0g c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5hbQot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5h bQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUuYW0JMjAxMC0wMS0yMyAxNDo0 MzoxOC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0wLDAgKzEsMTggQEAKLSsjIyBiYWNrZW5kL215c3Fs L3Rlc3Qgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNMRUFORklM RVMgPSBNYWtlZmlsZS5pbgotKwotK2lmIFJVTl9URVNUUwotKyAgbm9pbnN0X1BST0dSQU1TID0g dGVzdF9teXNxbAotK2VuZGlmCi0rCi0rdGVzdF9teXNxbF9TT1VSQ0VTID0gJChteXNxbF90ZXN0 X2NjX3NvdXJjZXMpCi0rdGVzdF9teXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKQotK3Rl c3RfbXlzcWxfTERBREQgPQotK3Rlc3RfbXlzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9z b2NpL2NvcmUvbGlic29jaV9jb3JlLmxhIC1sZGwgXAotKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kv YmFja2VuZHMvbXlzcWwvbGlic29jaV9teXNxbC5sYSBcCi0rCQkkKE1ZU1FMX0xJQlMpCi0rCi0r I25vZGlzdF9wa2dpbmNsdWRlX0hFQURFUlMgPSAkKG15c3FsX3Rlc3RfaF9zb3VyY2VzKQotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmls ZS5iYXNpYyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L01ha2Vm aWxlLmJhc2ljCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L01ha2VmaWxlLmJhc2ljCTIwMTEtMDctMDMgMTg6NTU6MDYuNDExODc3MDg2ICswMjAwCi0rKysg c29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtlZmlsZS5iYXNp YwkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsMjIgKzAsMCBAQAot LSMgVGhlIGZvbGxvd2luZyB2YXJpYWJsZXMgYXJlIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBh bmQgdGhlaXIgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVudmlyb25t ZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KLS0KLS1NWVNRTExJQkRJUiA9 IC1ML3Vzci9saWIvbXlzcWwKLS1NWVNRTExJQlMgPSAtbG15c3FsY2xpZW50IC1segotLU1ZU1FM SU5DTFVERURJUiA9IC1JL3Vzci9pbmNsdWRlL215c3FsCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUg TWFrZWZpbGUgaXMgaW5kZXBlbmRlbnQgb2YgdGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1D T01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25n Ci0tSU5DTFVERURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29yZSAke01ZU1FMSU5DTFVERURJUn0K LS1MSUJESVJTID0gLUwuLiAtTC4uLy4uLy4uL2NvcmUgJHtNWVNRTExJQkRJUn0KLS1MSUJTID0g LWxzb2NpX2NvcmUgLWxzb2NpX215c3FsIC1sZGwgJHtNWVNRTExJQlN9Ci0tCi0tCi0tdGVzdC1t eXNxbCA6IHRlc3QtbXlzcWwuY3BwCi0tCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9ICR7TElCRElSU30gJHtMSUJTfQotLQotLQotLWNsZWFuIDoKLS0Jcm0g LWYgdGVzdC1teXNxbAotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv bXlzcWwvdGVzdC9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9t eXNxbC90ZXN0L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9teXNxbC90ZXN0L01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC9NYWtl ZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw1 NjEgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBN YWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5 OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAy MDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZv dW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7 IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNz aW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9k aWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBU aGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVz ZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0 ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNI QU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0r QFNFVF9NQUtFQAotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGly KS9AUEFDS0FHRUAKLStwa2dpbmNsdWRlZGlyID0gJChpbmNsdWRlZGlyKS9AUEFDS0FHRUAKLStw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhl Y2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9J TlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxf VU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0r YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NP TU1PTiA9ICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHNyY2RpcikvTWFrZWZpbGUuaW4gXAotKwkk KHNyY2Rpcikvc291cmNlcy5tayAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNvbW1vbgotK0BSVU5f VEVTVFNfVFJVRUBub2luc3RfUFJPR1JBTVMgPSB0ZXN0X215c3FsJChFWEVFWFQpCi0rc3ViZGly ID0gc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0Ci0rQUNMT0NBTF9NNCA9ICQodG9wX3NyY2Rpcikv YWNsb2NhbC5tNAotK2FtX19hY2xvY2FsX200X2RlcHMgPSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9ib29zdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X215c3FsLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfb3JhY2xlX29jaS5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2F4X3Bvc3RncmVzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9jcHB1bml0Lm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbGlidG9vbC5tNCBcCi0rCSQodG9wX3NyY2Rpcikv Y29uZmlnL2x0b3B0aW9ucy5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0c3VnYXIubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHZlcnNpb24ubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdH5vYnNvbGV0ZS5tNCAkKHRvcF9zcmNkaXIpL2NvbmZpZ3VyZS5hYwotK2FtX19j b25maWd1cmVfZGVwcyA9ICQoYW1fX2FjbG9jYWxfbTRfZGVwcykgJChDT05GSUdVUkVfREVQRU5E RU5DSUVTKSBcCi0rCSQoQUNMT0NBTF9NNCkKLStta2luc3RhbGxkaXJzID0gJChpbnN0YWxsX3No KSAtZAotK0NPTkZJR19IRUFERVIgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb25maWcuaAotK0NP TkZJR19DTEVBTl9GSUxFUyA9Ci0rQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTID0KLStQUk9HUkFN UyA9ICQobm9pbnN0X1BST0dSQU1TKQotK2FtX19vYmplY3RzXzEgPSB0ZXN0X215c3FsLXRlc3Qt bXlzcWwuJChPQkpFWFQpCi0rYW1fdGVzdF9teXNxbF9PQkpFQ1RTID0gJChhbV9fb2JqZWN0c18x KQotK3Rlc3RfbXlzcWxfT0JKRUNUUyA9ICQoYW1fdGVzdF9teXNxbF9PQkpFQ1RTKQotK3Rlc3Rf bXlzcWxfREVQRU5ERU5DSUVTID0KLSt0ZXN0X215c3FsX0xJTksgPSAkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsg JChDWFhMRCkgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSBcCi0rCSQoQ1hYRkxBR1MpICQodGVzdF9t eXNxbF9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBh bV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK2RlcGNvbXAgPSAkKFNIRUxMKSAkKHRv cF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZpbGVzX21heWJlID0gZGVwZmlsZXMK LSthbV9fbXYgPSBtdiAtZgotK0NYWENPTVBJTEUgPSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRf SU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChB TV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENPTVBJTEUgPSAkKExJQlRPT0wpIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBp bGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rQ1hY TEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09M RkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1saW5rICQoQ1hYTEQpICQoQU1fQ1hY RkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0r U09VUkNFUyA9ICQodGVzdF9teXNxbF9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQodGVzdF9t eXNxbF9TT1VSQ0VTKQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVEZJTEVT ID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElT VCkKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIgPSBAQVJACi0r QVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVSQAotK0FVVE9N QUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQVNJT19MSUIgPSBAQk9PU1Rf QVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09TVF9EQVRFX1RJ TUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RFTV9MSUIgPSBA Qk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBCT09TVF9JT1NU UkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9NUElfTElCID0g QEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1RfTVBJX1BZVEhP Tl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9HUkFNX09QVElP TlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAKLStCT09TVF9S RUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJT05fTElCID0g QEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0gQEJPT1NUX1NJ R05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJQkAKLStCT09T VF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9URVNUX0ZSQU1F V09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9PU1RfVkVSU0lP TiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9IEBCT09TVF9X U0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQENDREVQTU9ERUAK LStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBAQ1BQRkxBR1NA Ci0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9DT05GSUcgPSBA Q1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AKLStDUFBVTklU X1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hYQ1BQID0gQENY WENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBAQ1hYRkxBR1NA Ci0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQRElSID0gQERF UERJUkAKLStETExUT09MID0gQERMTFRPT0xACi0rRFNZTVVUSUwgPSBARFNZTVVUSUxACi0rRFVN UEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0gQEVDSE9fTkAK LStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9IEBFWEVFWFRA Ci0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBAR0VORVJJQ19M SUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5TVEFMTEAKLStJ TlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9IEBJTlNUQUxM X1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0rSU5TVEFMTF9T VFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBMREAKLStMREZM QUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBATElCU0AKLStM SUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5fU0AKLStMVExJ Qk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01BTklGRVNUX1RP T0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlTUUxfQ0ZMQUdT ID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAKLStNWVNRTF9E SVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAotK01ZU1FMX1ZF UlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBATk1FRElUQAot K09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNMRV9ESVJTID0g QE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lfQ0ZMQUdTQAot K09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JBQ0xFX09DSV9W RVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAKLStPVE9PTDY0 ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVHUkVQT1JUID0g QFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05BTUVACi0rUEFD S0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1FID0gQFBBQ0tB R0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKLStQQUNLQUdFX1ZFUlNJ T04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhfU0VQQVJBVE9S QAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BPU1RHUkVTUUxf Q0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9IEBQT1NUR1JF U1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERGTEFHU0AKLStQ T1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJQiA9IEBSQU5M SUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVMTCA9IEBTSEVM TEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURACi0rU09DSV9N WVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEQAotK1NPQ0lf UE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVBREVSU19CVVJJ RURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FEX0NPTU1BTkRA Ci0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVpbGRkaXJACi0r YWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBAYWJzX3RvcF9i dWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSthY19jdF9BUiA9 IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFggPSBAYWNfY3Rf Q1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5jbHVkZSA9IEBh bV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90QAotK2FtX19x dW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191bnRhciA9IEBh bV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAKLStidWlsZF9h bGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAotK2J1aWxkX29z ID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0rYnVpbGRkaXIg PSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGlyID0gQGRhdGFy b290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGlyQAotK2RveHln ZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBzX29rID0gQGR2 aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0gQGdzX29rQAot K2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9zdF9jcHUgPSBA aG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0gQGhvc3RfdmVu ZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1ZGVkaXJACi0r aW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAKLStsYXRleF9v ayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIgPSBAbGliZXhl Y2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIgPSBAbG9jYWxz dGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJfcEAKLStvbGRp bmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAKLStwcmVmaXgg PSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0rc2VkX29rID0g QHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStzcmNkaXIgPSBA c3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxpYXMgPSBAdGFy Z2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZpeEAKLSt0b3Bf YnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3NyY2RpckAKLStB TV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQotK215c3FsX3Rl c3RfaF9zb3VyY2VzID0gCi0rbXlzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLStNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCi0rdGVzdF9teXNxbF9TT1VSQ0VTID0gJChteXNxbF90ZXN0X2Nj X3NvdXJjZXMpCi0rdGVzdF9teXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdTKQotK3Rlc3Rf bXlzcWxfTERBREQgPSAKLSt0ZXN0X215c3FsX0xERkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29j aS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKLSsJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL2xpYnNvY2lfbXlzcWwubGEgXAotKwkJJChNWVNRTF9MSUJTKQotKwotK2Fs bDogYWxsLWFtCi0rCi0rLlNVRkZJWEVTOgotKy5TVUZGSVhFUzogLmNwcCAubG8gLm8gLm9iagot KyQoc3JjZGlyKS9NYWtlZmlsZS5pbjogICQoc3JjZGlyKS9NYWtlZmlsZS5hbSAkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbiAkKHNyY2Rpcikvc291cmNlcy5tayAkKGFtX19jb25maWd1cmVf ZGVwcykKLSsJQGZvciBkZXAgaW4gJD87IGRvIFwKLSsJICBjYXNlICckKGFtX19jb25maWd1cmVf ZGVwcyknIGluIFwKLSsJICAgICokJGRlcCopIFwKLSsJICAgICAgKCBjZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2ggKSBcCi0rCSAgICAgICAg JiYgeyBpZiB0ZXN0IC1mICRAOyB0aGVuIGV4aXQgMDsgZWxzZSBicmVhazsgZmk7IH07IFwKLSsJ ICAgICAgZXhpdCAxOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwllY2hvICcgY2QgJCh0 b3Bfc3JjZGlyKSAmJiAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qv TWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9N QUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6 IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyop IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNf bWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwot KwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChh bV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotKwotK2Ns ZWFuLW5vaW5zdFBST0dSQU1TOgotKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgdGVzdCAt biAiJCRsaXN0IiB8fCBleGl0IDA7IFwKLSsJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKLSsJcm0g LWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCi0rCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAw OyBcCi0rCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAn cy8kKEVYRUVYVCkkJC8vJ2A7IFwKLSsJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKLSsJcm0gLWYg JCRsaXN0Ci0rdGVzdF9teXNxbCQoRVhFRVhUKTogJCh0ZXN0X215c3FsX09CSkVDVFMpICQodGVz dF9teXNxbF9ERVBFTkRFTkNJRVMpIAotKwlAcm0gLWYgdGVzdF9teXNxbCQoRVhFRVhUKQotKwkk KHRlc3RfbXlzcWxfTElOSykgJCh0ZXN0X215c3FsX09CSkVDVFMpICQodGVzdF9teXNxbF9MREFE RCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLiQoT0JKRVhU KQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi50YWIuYwotKwotK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS90ZXN0X215c3FsLXRlc3Qt bXlzcWwuUG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAk QCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAk KERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChD WFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1j IC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9f bXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURF UEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0k KERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAn JDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxF KSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCou UGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmpl Y3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21w KSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElM RSkgLWMgLW8gJEAgJDwKLSsKLSt0ZXN0X215c3FsLXRlc3QtbXlzcWwubzogJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxB R1MpIC1NVCB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVz dF9teXNxbC10ZXN0LW15c3FsLlRwbyAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyBgdGVz dCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNx bC90ZXN0L3Rlc3QtbXlzcWwuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvdGVzdF9teXNxbC10ZXN0LW15c3FsLlRwbyAkKERFUERJUikvdGVzdF9teXNxbC10 ZXN0LW15c3FsLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3BwJyBv YmplY3Q9J3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5vJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFT SEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyB0ZXN0X215c3FsLXRlc3QtbXlzcWwubyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwu Y3BwCi0rCi0rdGVzdF9teXNxbC10ZXN0LW15c3FsLm9iajogJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3QvdGVzdC1teXNxbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZM QUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfbXlzcWxfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCB0 ZXN0X215c3FsLXRlc3QtbXlzcWwub2JqIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X215c3Fs LXRlc3QtbXlzcWwuVHBvIC1jIC1vIHRlc3RfbXlzcWwtdGVzdC1teXNxbC5vYmogYGlmIHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3Rlc3QtbXlzcWwuY3Bw JzsgdGhlbiAkKENZR1BBVEhfVykgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90 ZXN0L3Rlc3QtbXlzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGZpYAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1t eXNxbC5UcG8gJChERVBESVIpL3Rlc3RfbXlzcWwtdGVzdC1teXNxbC5QbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCcgb2JqZWN0PSd0ZXN0X215c3FsLXRlc3QtbXlz cWwub2JqJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXAp IEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJCh0ZXN0X215c3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X215c3FsLXRl c3QtbXlzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvbXlz cWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvbXlzcWwvdGVzdC90ZXN0LW15c3FsLmNwcCc7IGVsc2UgJChDWUdQQVRI X1cpICckKHNyY2RpcikvJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3QvdGVz dC1teXNxbC5jcHAnOyBmaWAKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5s bwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLStJRDogJChI RUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJD RVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1m SUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VT KSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNl dCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXog IiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAi JCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRlc3QgJCQjIC1ndCAw OyB0aGVuIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAk KEVUQUdTX0FSR1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJ ICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1Mp IFwKLSsJICAgICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwot K0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0r CQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAk KExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNk aXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0g MTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAo aSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykk JHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdT KSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAk KGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAotKwkgICYmICQoYW1fX2NkKSAkKHRv cF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCi0rCi0r ZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFU SCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAi JChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGly c3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cn YDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUg aW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3Jj ZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3Bf YnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQo TUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xe fCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJ ZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1m ICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZp OyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAi LyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIk KGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmls ZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAg IGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0g JChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRp c3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmls ZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAg IGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhp dCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAot KwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8 IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6 IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmlsZSAkKFBST0dSQU1TKQotK2luc3RhbGxkaXJzOgot K2luc3RhbGw6IGluc3RhbGwtYW0KLStpbnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2lu c3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsK LStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJQCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0KLSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1h bQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJP R1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFN PSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAg YHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5W PVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0r Ci0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQo Q09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10 ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxF UykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXIt Y2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFp bnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1 aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJD TEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xl YW4tYW0KLSsKLStjbGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5v aW5zdFBST0dSQU1TIFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVh bi1hbQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAtZiBNYWtlZmlsZQotK2Rpc3RjbGVh bi1hbTogY2xlYW4tYW0gZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVyaWMgXAotKwlk aXN0Y2xlYW4tdGFncwotKwotK2R2aTogZHZpLWFtCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0 bWwtYW0KLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tYW0KLSsKLStpbmZvLWFtOgotKwot K2luc3RhbGwtZGF0YS1hbToKLSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStp bnN0YWxsLWR2aS1hbToKLSsKLStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBp bnN0YWxsLWh0bWwtYW0KLSsKLStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBp bnN0YWxsLWluZm8tYW0KLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0r Ci0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0r aW5zdGFsbC1wczogaW5zdGFsbC1wcy1hbQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFs bGNoZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJ LXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFu LWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xl YW46IG1vc3RseWNsZWFuLWFtCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWNvbXBp bGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBcCi0rCW1vc3RseWNsZWFuLWxpYnRvb2wKLSsKLStwZGY6 IHBkZi1hbQotKwotK3BkZi1hbToKLSsKLStwczogcHMtYW0KLSsKLStwcy1hbToKLSsKLSt1bmlu c3RhbGwtYW06Ci0rCi0rLk1BS0U6IGluc3RhbGwtYW0gaW5zdGFsbC1zdHJpcAotKwotKy5QSE9O WTogQ1RBR1MgR1RBR1MgYWxsIGFsbC1hbSBjaGVjayBjaGVjay1hbSBjbGVhbiBjbGVhbi1nZW5l cmljIFwKLSsJY2xlYW4tbGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBjdGFncyBkaXN0Y2xl YW4gXAotKwlkaXN0Y2xlYW4tY29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBkaXN0Y2xlYW4tbGli dG9vbCBcCi0rCWRpc3RjbGVhbi10YWdzIGRpc3RkaXIgZHZpIGR2aS1hbSBodG1sIGh0bWwtYW0g aW5mbyBpbmZvLWFtIFwKLSsJaW5zdGFsbCBpbnN0YWxsLWFtIGluc3RhbGwtZGF0YSBpbnN0YWxs LWRhdGEtYW0gaW5zdGFsbC1kdmkgXAotKwlpbnN0YWxsLWR2aS1hbSBpbnN0YWxsLWV4ZWMgaW5z dGFsbC1leGVjLWFtIGluc3RhbGwtaHRtbCBcCi0rCWluc3RhbGwtaHRtbC1hbSBpbnN0YWxsLWlu Zm8gaW5zdGFsbC1pbmZvLWFtIGluc3RhbGwtbWFuIFwKLSsJaW5zdGFsbC1wZGYgaW5zdGFsbC1w ZGYtYW0gaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIFwKLSsJaW5zdGFsbC1zdHJpcCBpbnN0YWxs Y2hlY2sgaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIFwKLSsJbWFpbnRhaW5lci1jbGVhbiBt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4gXAotKwltb3N0bHljbGVhbi1jb21w aWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4tbGlidG9vbCBcCi0rCXBkZiBwZGYt YW0gcHMgcHMtYW0gdGFncyB1bmluc3RhbGwgdW5pbnN0YWxsLWFtCi0rCi0rQFNFVF9NQUtFQAot KwotKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFERVJTID0gJChteXNxbF90ZXN0X2hfc291cmNlcykK LSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9y dCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBh dCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0L3NvdXJjZXMubWsKLS0tLSBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tawkxOTcwLTAxLTAx IDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2Jh Y2tlbmRzL215c3FsL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA2LjAwMDAwMDAw MCArMDIwMAotQEAgLTAsMCArMSwyIEBACi0rbXlzcWxfdGVzdF9oX3NvdXJjZXMgPQotK215c3Fs X3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9teXNxbC90ZXN0 L3Rlc3QtbXlzcWwuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9vcmFjbGUvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFj bGUvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBz b2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuYW0JMjAwOS0w NC0xNiAxOTozNzowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMjcgQEAKLSsjIyBiYWNr ZW5kcy9vcmFjbGUgc3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24KLStpbmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNM RUFORklMRVMgPSBNYWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSAuIHRlc3QKLSsKLStpZiBIQVZF X09SQUNMRQotK2xpYl9MVExJQlJBUklFUz0gbGlic29jaV9vcmFjbGUubGEKLSsKLStsaWJzb2Np X29yYWNsZV9sYV9TT1VSQ0VTPSAkKGJja19vcmFjbGVfaF9zb3VyY2VzKSAkKGJja19vcmFjbGVf Y2Nfc291cmNlcykgCi0rbGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MgPSAkKE9SQUNMRV9PQ0lf Q0ZMQUdTKQotK2xpYnNvY2lfb3JhY2xlX2xhX0xJQkFERCA9Ci0rbGlic29jaV9vcmFjbGVfbGFf TERGTEFHUyA9IFwKLSsJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9P U1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAotKwkkKE9SQUNMRV9PQ0lfTERGTEFHUykgXAotKwkt dmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCi0rCi0rbm9iYXNlX3BrZ2lu Y2x1ZGVfSEVBREVSUyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1v cmFjbGUuaAotK2VuZGlmCi0raWYgU09DSV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9k aXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlCi0rZWxzZQotK3NvY2lfaW5j bHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rZW5kaWYKLStwa2dpbmNsdWRlZGlyID0gJChzb2Np X2luY2x1ZGVfZGlyKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv b3JhY2xlL01ha2VmaWxlLmJhc2ljIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29y YWNsZS9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv b3JhY2xlL01ha2VmaWxlLmJhc2ljCTIwMTEtMDctMDMgMTg6NTU6MDYuNDA4ODc3MTAzICswMjAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL01ha2VmaWxlLmJh c2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtMSw5NSArMCwwIEBA Ci0tIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBh bmQgaXRzIGNvcnJlY3QKLS0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVu dCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCi0tCi0tT1JBQ0xFSU5DTFVERURJ UiA9IC1JL3Vzci9saWIvb3JhY2xlL3hlL2FwcC9vcmFjbGUvcHJvZHVjdC8xMC4yLjAvc2VydmVy L3JkYm1zL3B1YmxpYwotLQotLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxlIGlzIGluZGVwZW50 ZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuCi0tCi0tQ09NUElMRVIgPSBnKysKLS1DWFhG TEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZwotLUNYWEZMQUdTU08gPSAke0NY WEZMQUdTfSAtZlBJQwotLUlOQ0xVREVESVJTID0gLUkuLi8uLi9jb3JlICR7T1JBQ0xFSU5DTFVE RURJUn0KLS0KLS1PQkpFQ1RTID0gYmxvYi5vIGZhY3RvcnkubyByb3ctaWQubyBzZXNzaW9uLm8g c3RhbmRhcmQtaW50by10eXBlLm8gXAotLQlzdGFuZGFyZC11c2UtdHlwZS5vIHN0YXRlbWVudC5v IHZlY3Rvci1pbnRvLXR5cGUubyB2ZWN0b3ItdXNlLXR5cGUubyBcCi0tCWVycm9yLm8KLS0KLS1P QkpFQ1RTU08gPSBibG9iLXMubyBmYWN0b3J5LXMubyByb3ctaWQtcy5vIHNlc3Npb24tcy5vIFwK LS0Jc3RhbmRhcmQtaW50by10eXBlLXMubyBzdGFuZGFyZC11c2UtdHlwZS1zLm8gc3RhdGVtZW50 LXMubyBcCi0tCXZlY3Rvci1pbnRvLXR5cGUtcy5vIHZlY3Rvci11c2UtdHlwZS1zLm8gZXJyb3It cy5vCi0tCi0tbGlic29jaV9vcmFjbGUuYSA6ICR7T0JKRUNUU30KLS0JYXIgcnYgJEAgJD8KLS0J cm0gKi5vCi0tCi0tc29jaS1vcmFjbGUubyA6IHNvY2ktb3JhY2xlLmNwcCAKLS0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0JCi0tYmxvYi5vIDogYmxvYi5j cHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1l cnJvci5vIDogZXJyb3IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5D TFVERURJUlN9Ci0tCi0tZmFjdG9yeS5vIDogZmFjdG9yeS5jcHAKLS0JJHtDT01QSUxFUn0gLWMg JD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ctaWQubyA6IHJvdy1pZC5jcHAK LS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zZXNz aW9uLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lO Q0xVREVESVJTfQotLQotLXN0YW5kYXJkLWludG8tdHlwZS5vIDogc3RhbmRhcmQtaW50by10eXBl LmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQot LXN0YW5kYXJkLXVzZS10eXBlLm8gOiBzdGFuZGFyZC11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQubyA6IHN0 YXRlbWVudC5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElS U30KLS0KLS12ZWN0b3ItaW50by10eXBlLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAotLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11c2Ut dHlwZS5vIDogdmVjdG9yLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZM QUdTfSAke0lOQ0xVREVESVJTfQotLQotLQotLXNoYXJlZCA6ICR7T0JKRUNUU1NPfQotLQkke0NP TVBJTEVSfSAtc2hhcmVkIC1vIGxpYnNvY2lfb3JhY2xlLnNvICR7T0JKRUNUU1NPfQotLQlybSAq Lm8KLS0KLS1ibG9iLXMubyA6IGJsb2IuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1lcnJvci1zLm8gOiBlcnJvci5jcHAKLS0J JHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQot LWZhY3Rvcnktcy5vIDogZmFjdG9yeS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtD WFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXJvdy1pZC1zLm8gOiByb3ctaWQuY3BwCi0t CSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0K LS1zZXNzaW9uLXMubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7 Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1zdGFuZGFyZC1pbnRvLXR5cGUtcy5vIDog c3RhbmRhcmQtaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZM QUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtdXNlLXR5cGUtcy5vIDogc3RhbmRh cmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30g JHtJTkNMVURFRElSU30KLS0KLS1zdGF0ZW1lbnQtcy5vIDogc3RhdGVtZW50LmNwcAotLQkke0NP TVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVj dG9yLWludG8tdHlwZS1zLm8gOiB2ZWN0b3ItaW50by10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAt YyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tdmVjdG9yLXVzZS10 eXBlLXMubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8g JHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLQotLWNsZWFuIDoKLS0Jcm0gLWYgKi5v IGxpYnNvY2lfb3JhY2xlLmEgbGlic29jaV9vcmFjbGUuc28KLWRpZmYgLU51ciBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbiBzb2NpLTMuMC4wX3RyZXAz MDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS9NYWtlZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI3LjAwMDAwMDAwMCArMDIwMAotQEAgLTAs MCArMSw5MDYgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEg ZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQg KEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIs Ci0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29m dHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBw ZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhv dXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0r Ci0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs IGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBw ZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0Uu Ci0rCi0rQFNFVF9NQUtFQAotKwotKwotK1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0g JChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0r cGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRI PSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hf REFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChp bnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lO U1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3Ry YW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BP U1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6 Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3Ry aXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQoYW1fX25vYmFzZV9wa2dpbmNsdWRlX0hF QURFUlNfRElTVCkgXAotKwkkKHNyY2RpcikvTWFrZWZpbGUuYW0gJChzcmNkaXIpL01ha2VmaWxl LmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21t b24KLStzdWJkaXIgPSBzb2NpL2JhY2tlbmRzL29yYWNsZQotK0FDTE9DQUxfTTQgPSAkKHRvcF9z cmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3JjZGlyKS9j b25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNxbC5tNCBc Ci0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRvcF9zcmNk aXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvY3Bw dW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdHN1 Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJJCh0b3Bf c3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUuYWMK LSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09ORklHVVJF X0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9ICQoaW5z dGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kvY29uZmln LmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0r YW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2Vk ICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAgJChzcmNk aXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7IFwKLSsg ICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hvICQkcCB8 IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9tYXggPSA0MAotK2FtX19ub2Jhc2Vf c3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAn cy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFzZV9zdHJpcCA9IFwKLSsgIGZvciBw IGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2RpcnN0cmlw L3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7IFwKLSsg IGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCi0rICBzZWQgInN8 ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkvW14vXSok JCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsgZmlsZXNb JCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBpZiAoKytuWyQkMl0gPT0gJChhbV9f aW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5bJCQyXSA9 IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQgeyBmb3IgKGRpciBpbiBmaWxlcykg cHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2VfbGlzdCA9IFwKLSsgIHNlZCAnJCQh TjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCi0rICBzZWQgJyQk IU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1fX2luc3RhbGxkaXJzID0gIiQoREVTVERJ UikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLStMVExJQlJBUklFUyA9 ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfb3JhY2xlX2xhX0RFUEVOREVOQ0lFUyA9Ci0r YW1fX2xpYnNvY2lfb3JhY2xlX2xhX1NPVVJDRVNfRElTVCA9ICBcCi0rCSQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9vcmFjbGUvZXJyb3IuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9vcmFjbGUvYmxvYi5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L2Vycm9yLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvZmFjdG9y eS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAg XAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwIFwKLSsJ JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC1pbnRvLXR5cGUuY3Bw IFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlw ZS5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5j cHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci1pbnRvLXR5 cGUuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNl LXR5cGUuY3BwCi0rYW1fX29iamVjdHNfMSA9Ci0rYW1fX29iamVjdHNfMiA9IGxpYnNvY2lfb3Jh Y2xlX2xhLWJsb2IubG8gbGlic29jaV9vcmFjbGVfbGEtZXJyb3IubG8gXAotKwlsaWJzb2NpX29y YWNsZV9sYS1mYWN0b3J5LmxvIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBcCi0rCWxpYnNv Y2lfb3JhY2xlX2xhLXNlc3Npb24ubG8gXAotKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1p bnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBc Ci0rCWxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBcCi0rCWxpYnNvY2lfb3JhY2xlX2xh LXZlY3Rvci1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5 cGUubG8KLStASEFWRV9PUkFDTEVfVFJVRUBhbV9saWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTID0g JChhbV9fb2JqZWN0c18xKSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACSQoYW1fX29iamVjdHNfMikK LStsaWJzb2NpX29yYWNsZV9sYV9PQkpFQ1RTID0gJChhbV9saWJzb2NpX29yYWNsZV9sYV9PQkpF Q1RTKQotK2xpYnNvY2lfb3JhY2xlX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFN X0xJQlRPT0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkg XAotKwkkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSBcCi0rCSQobGli c29jaV9vcmFjbGVfbGFfTERGTEFHUykgJChMREZMQUdTKSAtbyAkQAotK0BIQVZFX09SQUNMRV9U UlVFQGFtX2xpYnNvY2lfb3JhY2xlX2xhX3JwYXRoID0gLXJwYXRoICQobGliZGlyKQotK0RFRkFV TFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVpbGRkaXIpL3NvY2kKLStkZXBj b21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVwY29tcAotK2FtX19kZXBmaWxl c19tYXliZSA9IGRlcGZpbGVzCi0rYW1fX212ID0gbXYgLWYKLStDWFhDT01QSUxFID0gJChDWFgp ICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpCi0rTFRDWFhDT01QSUxF ID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdT KSAkKENYWEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElOSyA9ICQoTElCVE9PTCkgLS10 YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9bGlu ayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAkKEFNX0xERkxBR1MpIFwKLSsJ JChMREZMQUdTKSAtbyAkQAotK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAotKwkkKENQUEZMQUdTKSAkKEFNX0NG TEFHUykgJChDRkxBR1MpCi0rTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDQykgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0NDTEQgPSAkKENDKQotK0xJTksg PSAkKExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg XAotKwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZM QUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0gJChsaWJzb2NpX29yYWNsZV9s YV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQoYW1fX2xpYnNvY2lfb3JhY2xlX2xhX1NPVVJD RVNfRElTVCkKLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJz aXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0 YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhl Yy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1 cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5z dGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJl Y3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNp dmUKLSthbV9fbm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUID0gIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0rSEVBREVSUyA9ICQobm9i YXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3Rs eWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2 ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vyc2l2ZQotK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChS RUNVUlNJVkVfVEFSR0VUUzotcmVjdXJzaXZlPSkgXAotKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAotKwlkaXN0ZGlyCi0rRVRB R1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0r RElTVEZJTEVTID0gJChESVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQo RVhUUkFfRElTVCkKLSthbV9fcmVsYXRpdml6ZSA9IFwKLSsgIGRpcjA9YHB3ZGA7IFwKLSsgIHNl ZF9maXJzdD0ncyxeXChbXi9dKlwpLy4qJCQsXDEsJzsgXAotKyAgc2VkX3Jlc3Q9J3MsXlteL10q LyosLCc7IFwKLSsgIHNlZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCi0rICBzZWRf YnV0bGFzdD0ncywvKlteL10qJCQsLCc7IFwKLSsgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRv IFwKLSsgICAgZmlyc3Q9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwK LSsgICAgaWYgdGVzdCAiJCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKLSsgICAgICBpZiB0ZXN0ICIk JGZpcnN0IiA9ICIuLiI7IHRoZW4gXAotKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNl ZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRpcjIiOyBcCi0rICAgICAgICBkaXIwPWBlY2hvICIkJGRp cjAiIHwgc2VkIC1lICIkJHNlZF9idXRsYXN0ImA7IFwKLSsgICAgICBlbHNlIFwKLSsgICAgICAg IGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICAg ICAgaWYgdGVzdCAiJCRmaXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKLSsgICAgICAgICAgZGly Mj1gZWNobyAiJCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICAgICAgICBlbHNl IFwKLSsgICAgICAgICAgZGlyMj0iLi4vJCRkaXIyIjsgXAotKyAgICAgICAgZmk7IFwKLSsgICAg ICAgIGRpcjA9IiQkZGlyMCIvIiQkZmlyc3QiOyBcCi0rICAgICAgZmk7IFwKLSsgICAgZmk7IFwK LSsgICAgZGlyMT1gZWNobyAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICBk b25lOyBcCi0rICByZWxkaXI9IiQkZGlyMiIKLStwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1 ZGVfZGlyKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBB UkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0r QVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJQiA9IEBC T09TVF9BU0lPX0xJQkAKLStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RB VEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJ QiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NU X0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9M SUIgPSBAQk9PU1RfTVBJX0xJQkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElf UFlUSE9OX0xJQkAKLStCT09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1f T1BUSU9OU19MSUJACi0rQk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JP T1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9M SUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9P U1RfU0lHTkFMU19MSUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAot K0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1Rf RlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9W RVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJP T1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBN T0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBG TEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJ RyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQ UFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAg PSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhG TEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIg PSBAREVQRElSQAotK0RMTFRPT0wgPSBARExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAK LStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNI T19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVY RUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5F UklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxM QAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElO U1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNU QUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAot K0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJT QAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAot K0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUFOSUZF U1RfVE9PTCA9IEBNQU5JRkVTVF9UT09MQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9D RkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01Z U1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlT UUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVE SVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJ UlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxB R1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVf T0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09U T09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBP UlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAK LStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBA UEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tBR0Vf VkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBB UkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdS RVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBP U1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdT QAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0g QFJBTkxJQkAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0g QFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStT T0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0r U09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJT X0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09N TUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRp ckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNf dG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0 X0FSID0gQGFjX2N0X0FSQAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBh Y19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRl ID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0r YW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFy ID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1 aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVp bGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWls ZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBA ZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0r ZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sg PSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nf b2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2Nw dSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9z dF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRp ckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xh dGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBs aWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBs b2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAot K29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3By ZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5z Zm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRf b2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2Rp ciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9 IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAot K3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGly QAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rYmNr X29yYWNsZV9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvb3JhY2xlL2Vycm9yLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zb2NpLW9yYWNsZS5oCi0rCi0rYmNrX29yYWNsZV9jY19zb3VyY2VzID0gXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24uY3BwIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50 by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSsKLStNQUlO VEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IC4gdGVzdAotK0BIQVZF X09SQUNMRV9UUlVFQGxpYl9MVExJQlJBUklFUyA9IGxpYnNvY2lfb3JhY2xlLmxhCi0rQEhBVkVf T1JBQ0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfU09VUkNFUyA9ICQoYmNrX29yYWNsZV9oX3Nv dXJjZXMpICQoYmNrX29yYWNsZV9jY19zb3VyY2VzKSAKLStASEFWRV9PUkFDTEVfVFJVRUBsaWJz b2NpX29yYWNsZV9sYV9DWFhGTEFHUyA9ICQoT1JBQ0xFX09DSV9DRkxBR1MpCi0rQEhBVkVfT1JB Q0xFX1RSVUVAbGlic29jaV9vcmFjbGVfbGFfTElCQUREID0gCi0rQEhBVkVfT1JBQ0xFX1RSVUVA bGlic29jaV9vcmFjbGVfbGFfTERGTEFHUyA9IFwKLStASEFWRV9PUkFDTEVfVFJVRUAJJChCT09T VF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQoQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJ QikgXAotK0BIQVZFX09SQUNMRV9UUlVFQAkkKE9SQUNMRV9PQ0lfTERGTEFHUykgXAotK0BIQVZF X09SQUNMRV9UUlVFQAktdmVyc2lvbi1pbmZvICQoR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCi0r Ci0rQEhBVkVfT1JBQ0xFX1RSVUVAbm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc29jaS1vcmFjbGUuaAotK0BTT0NJX0hFQURFUlNf QlVSSUVEX0ZBTFNFQHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rQFNPQ0lfSEVB REVSU19CVVJJRURfVFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZQotK2FsbDogYWxsLXJlY3Vyc2l2ZQotKwotKy5TVUZGSVhFUzoKLSsuU1VG RklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKLSskKHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2Rp cikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3Nv dXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0r CSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0r CSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFt LS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7 IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0r CWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUg c29jaS9iYWNrZW5kcy9vcmFjbGUvTWFrZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNk aXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2JhY2tlbmRzL29yYWNsZS9NYWtl ZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxl LmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkg ICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXli ZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9w X3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwot KyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQo QUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxf bTRfZGVwcyk6Ci0raW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCi0r CUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkg IiQoREVTVERJUikkKGxpYmRpcikiCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0ZXN0 IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCi0rCWxpc3QyPTsgZm9yIHAgaW4gJCRsaXN0OyBk byBcCi0rCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAotKwkgICAgbGlzdDI9IiQkbGlzdDIgJCRw IjsgXAotKwkgIGVsc2UgOjsgZmk7IFwKLSsJZG9uZTsgXAotKwl0ZXN0IC16ICIkJGxpc3QyIiB8 fCB7IFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQk bGlzdDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAotKwkgICQoTElCVE9PTCkgJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5T VEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIpJChsaWJkaXIpIjsgXAotKwl9Ci0r Ci0rdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlA bGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsg XAotKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICAkKGFtX19zdHJpcF9kaXIpIFwKLSsJICBl Y2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKLSsJICAkKExJ QlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFs bCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLStjbGVhbi1s aWJMVExJQlJBUklFUzoKLSsJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYg JChsaWJfTFRMSUJSQVJJRVMpCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBp biAkJGxpc3Q7IGRvIFwKLSsJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8 J2AiOyBcCi0rCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCi0rCSAgZWNobyAi cm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAotKwkgIHJtIC1mICIkJHtkaXJ9L3Nv X2xvY2F0aW9ucyI7IFwKLSsJZG9uZQotK2xpYnNvY2lfb3JhY2xlLmxhOiAkKGxpYnNvY2lfb3Jh Y2xlX2xhX09CSkVDVFMpICQobGlic29jaV9vcmFjbGVfbGFfREVQRU5ERU5DSUVTKSAKLSsJJChs aWJzb2NpX29yYWNsZV9sYV9MSU5LKSAkKGFtX2xpYnNvY2lfb3JhY2xlX2xhX3JwYXRoKSAkKGxp YnNvY2lfb3JhY2xlX2xhX09CSkVDVFMpICQobGlic29jaV9vcmFjbGVfbGFfTElCQUREKSAkKExJ QlMpCi0rCi0rbW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICouJChPQkpFWFQpCi0rCi0r ZGlzdGNsZWFuLWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0rCi0rQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2Iu UGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVf bGEtZmFjdG9yeS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFt X19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuUGxvQGFtX19xdW90 ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGli c29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9f aW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFy ZC1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUu UGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlBsb0BhbV9fcXVvdGVACi0rQEFN REVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1f X2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtdmVjdG9y LXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1j IC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCou VHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6Ci0rQGFtX19mYXN0ZGVw Q1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5U cG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8g QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCBgJChDWUdQQVRI X1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMVENYWENP TVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRAICQ8Ci0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCouVHBvICQoREVQRElS KS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwn IG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRl cGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTFRDWFhD T01QSUxFKSAtYyAtbyAkQCAkPAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG86ICQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvYmxvYi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xh X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtYmxvYi5sbyAtTUQg LU1QIC1NRiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtYmxvYi5UcG8gLWMgLW8gbGlic29j aV9vcmFjbGVfbGEtYmxvYi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2Np X29yYWNsZV9sYS1ibG9iLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Jsb2IuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfb3JhY2xlX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNs ZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtYmxvYi5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9iLmNwcCcg fHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9i bG9iLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLWVycm9yLmxvOiAkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZXJyb3IuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xl X2xhLWVycm9yLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L2Vycm9yLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9lcnJvci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1lcnJvci5UcG8gJChERVBESVIpL2xpYnNvY2lfb3Jh Y2xlX2xhLWVycm9yLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmNwcCcgb2JqZWN0 PSdsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1lcnJvci5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9lcnJvci5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv ZXJyb3IuY3BwCi0rCi0rbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIC1NRCAt TVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LlRwbyAtYyAtbyBsaWJz b2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5UcG8gJChE RVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLWZhY3RvcnkuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19m YXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtZmFjdG9yeS5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBs aWJzb2NpX29yYWNsZV9sYS1mYWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3RvcnkuY3BwCi0rCi0rbGlic29jaV9vcmFj bGVfbGEtcm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1p ZC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9vcmFjbGVfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX29yYWNs ZV9sYS1yb3ctaWQuVHBvIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXJvdy1pZC5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9yb3ctaWQuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX29y YWNsZV9sYS1yb3ctaWQuVHBvICQoREVQRElSKS9saWJzb2NpX29yYWNsZV9sYS1yb3ctaWQuUGxv Ci0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rp cikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNs ZV9sYS1yb3ctaWQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAk KGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtcm93LWlkLmxvIGB0ZXN0IC1mICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Jvdy1pZC5jcHAnIHx8IGVjaG8gJyQo c3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93LWlkLmNwcAot KwotK2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9vcmFjbGUvc2Vzc2lvbi5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5sbyAtTUQgLU1QIC1NRiAkKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtc2Vzc2lvbi5UcG8gLWMgLW8gbGlic29jaV9vcmFjbGVf bGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9saWJz b2NpX29yYWNsZV9sYS1zZXNzaW9uLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nlc3Npb24u Y3BwJyBvYmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBB TURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJ Uj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xG TEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVG QVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChs aWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFj bGVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29y YWNsZS9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL29yYWNsZS9zZXNzaW9uLmNwcAotKwotK2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5k YXJkLWludG8tdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0t dGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxl ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFH UykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8tdHlwZS5sbyAtTUQgLU1QIC1N RiAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAtYyAt byBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERF UERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlRwbyAkKERFUERJUikv bGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtaW50by10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEt c3RhbmRhcmQtaW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLWludG8t dHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFu ZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX29y YWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRz L29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8g LU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXN0YW5kYXJkLXVzZS10eXBl LlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbyBgdGVzdCAt ZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5j cHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFj bGUvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNlLXR5cGUuVHBvICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8KLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVf bGEtc3RhbmRhcmQtdXNlLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9D WFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9vcmFjbGVfbGEtc3RhbmRhcmQtdXNl LXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3Rh bmRhcmQtdXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcAotKwotK2xpYnNvY2lfb3Jh Y2xlX2xhLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9z dGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1U IGxpYnNvY2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGli c29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2NpX29yYWNsZV9sYS1zdGF0 ZW1lbnQubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvc3Rh dGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGli c29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRl bWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9vcmFjbGVfbGEtc3RhdGVtZW50LmxvJyBsaWJ0b29s PXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xB U0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9M SUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxB R1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNv Y2lfb3JhY2xlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAKLSsKLStsaWJzb2NpX29y YWNsZV9sYS12ZWN0b3ItaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3ZlY3Rvci1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX29yYWNsZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBv IC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVj dG9yLWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS9saWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItaW50by10eXBlLlRwbyAkKERFUERJUikvbGli c29jaV9vcmFjbGVfbGEtdmVjdG9yLWludG8tdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNs ZS92ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3It aW50by10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci1pbnRvLXR5cGUubG8gYHRl c3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLWludG8tdHlw ZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9v cmFjbGUvdmVjdG9yLWludG8tdHlwZS5jcHAKLSsKLStsaWJzb2NpX29yYWNsZV9sYS12ZWN0b3It dXNlLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVz ZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFgg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQobGlic29jaV9vcmFjbGVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX29yYWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIp L2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9vcmFj bGVfbGEtdmVjdG9yLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcAotK0Bh bV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xh LXZlY3Rvci11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11 c2UtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwJyBv YmplY3Q9J2xpYnNvY2lfb3JhY2xlX2xhLXZlY3Rvci11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMg QEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQ RElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAot K0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9P TEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChE RUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAk KGxpYnNvY2lfb3JhY2xlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX29y YWNsZV9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9i YWNrZW5kcy9vcmFjbGUvdmVjdG9yLXVzZS10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItdXNlLXR5cGUuY3BwCi0r Ci0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29s OgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0raW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURF UlM6ICQobm9iYXNlX3BrZ2luY2x1ZGVfSEVBREVSUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0r CXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpIgotKwlAbGlzdD0nJChub2Jhc2VfcGtnaW5jbHVkZV9IRUFERVJTKSc7IHRl c3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCi0rCSQoYW1fX25vYmFzZV9saXN0 KSB8IHdoaWxlIHJlYWQgZGlyIGZpbGVzOyBkbyBcCi0rCSAgeGZpbGVzPTsgZm9yIGZpbGUgaW4g JCRmaWxlczsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRmaWxlIjsgdGhlbiB4ZmlsZXM9IiQk eGZpbGVzICQkZmlsZSI7IFwKLSsJICAgIGVsc2UgeGZpbGVzPSIkJHhmaWxlcyAkKHNyY2Rpcikv JCRmaWxlIjsgZmk7IGRvbmU7IFwKLSsJICB0ZXN0IC16ICIkJHhmaWxlcyIgfHwgeyBcCi0rCSAg ICB0ZXN0ICJ4JCRkaXIiID0geC4gfHwgeyBcCi0rCSAgICAgIGVjaG8gIiQoTUtESVJfUCkgJyQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZGlyJyI7IFwKLSsJICAgICAgJChNS0RJUl9QKSAi JChERVNURElSKSQocGtnaW5jbHVkZWRpcikvJCRkaXIiOyB9OyBcCi0rCSAgICBlY2hvICIgJChJ TlNUQUxMX0hFQURFUikgJCR4ZmlsZXMgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpLyQkZGly JyI7IFwKLSsJICAgICQoSU5TVEFMTF9IRUFERVIpICQkeGZpbGVzICIkKERFU1RESVIpJChwa2dp bmNsdWRlZGlyKS8kJGRpciIgfHwgZXhpdCAkJD87IH07IFwKLSsJZG9uZQotKwotK3VuaW5zdGFs bC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBs aXN0PSckKG5vYmFzZV9wa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAiJChwa2dpbmNsdWRl ZGlyKSIgfHwgbGlzdD07IFwKLSsJJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsgZmlsZXM9YCQo YW1fX25vYmFzZV9zdHJpcClgOyBcCi0rCXRlc3QgLW4gIiQkZmlsZXMiIHx8IGV4aXQgMDsgXAot KwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknICYmIHJtIC1mIiAkJGZp bGVzICIpIjsgXAotKwljZCAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiICYmIHJtIC1mICQk ZmlsZXMKLSsKLSsjIFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBp bmRlcGVuZGVudDsgeW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhv dXQgZ29pbmcgdGhyb3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMg b2YgYG1ha2UnIHZhcmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgx KSBpZiB0aGUgdmFyaWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmln LnN0YXR1cycKLSsjICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJl Z2VuZXJhdGVkIHdoZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0 aGUgZGVzaXJlZCB2YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJ VkVfVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHgg JCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10q KTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJ ZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVj dXJzaXZlLy9gOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsg ZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAg ICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxf dGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJkaXIg JiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFs ICQkZmFpbGNvbTsgXAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsg dGhlbiBcCi0rCSAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0 IDE7IFwKLSsJZmk7IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJH RVRTKToKLSsJQGZhaWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VG TEFHUzsgZG8gXAotKwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAot KwkgICAgKmsqKSBmYWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBc Ci0rCWRvdF9zZWVuPW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBt YWludGFpbmVyLWNsZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxp c3Q9JyQoU1VCRElSUyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4g JCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2Ug XAotKwkgICAgcmV2PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0r CXJldj0iJCRyZXYgLiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8v YDsgXAotKwlmb3Igc3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFy Z2V0IGluICQkc3ViZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBc Ci0rCSAgICBsb2NhbF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAg bG9jYWxfdGFyZ2V0PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRz dWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8 fCBldmFsICQkZmFpbGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJl Y3Vyc2l2ZToKLSsJbGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgdGVzdCAiJCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0r CWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3Qg IiQkc3ViZGlyIiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBjdGFncyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykg JChMSVNQKSAkKFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJ U1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0r CSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIp LyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsg bm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBp biBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6 IFRBR1MKLSsKLStUQUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgICQo VEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwlzZXQgeDsg XAotKwloZXJlPWBwd2RgOyBcCi0rCWlmICgkKEVUQUdTKSAtLWV0YWdzLWluY2x1ZGUgLS12ZXJz aW9uKSA+L2Rldi9udWxsIDI+JjE7IHRoZW4gXAotKwkgIGluY2x1ZGVfb3B0aW9uPS0tZXRhZ3Mt aW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD0uOyBcCi0rCWVsc2UgXAotKwkgIGluY2x1ZGVfb3B0 aW9uPS0taW5jbHVkZTsgXAotKwkgIGVtcHR5X2ZpeD07IFwKLSsJZmk7IFwKLSsJbGlzdD0nJChT VUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJk aXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgISAtZiAkJHN1YmRpci9UQUdTIHx8 IFwKLSsJICAgICAgc2V0ICIkJEAiICIkJGluY2x1ZGVfb3B0aW9uPSQkaGVyZS8kJHN1YmRpci9U QUdTIjsgXAotKwkgIGZpOyBcCi0rCWRvbmU7IFwKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURF UlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0 OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8g JChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1sk JDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7 IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXNoaWZ0OyBcCi0rCWlmIHRl c3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVz dCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5X2ZpeDsgXAotKwkgIGlmIHRlc3QgJCQj IC1ndCAwOyB0aGVuIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZM QUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgIiQkQCIgJCR1bmlxdWU7IFwKLSsJICBlbHNl IFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdT X0FSR1MpIFwKLSsJICAgICAgJCR1bmlxdWU7IFwKLSsJICBmaTsgXAotKwlmaQotK2N0YWdzOiBD VEFHUwotK0NUQUdTOiBjdGFncy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRB R1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJbGlzdD0nJChT T1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0rCXVuaXF1ZT1g Zm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8g JCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwgXAotKwkgICQo QVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAgICAgRU5EIHsg aWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdgOyBcCi0rCXRl c3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1MpICQoQ1RBR1NG TEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAkJHVuaXF1ZQot KwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYmIHB3ZGAgXAot KwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAtaSAkKEdUQUdT X0FSR1MpICIkJGhlcmUiCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBUQUdTIElEIEdU QUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNURklMRVMpCi0r CUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxc Ji9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2RpcikiIHwgc2VkICdz L1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUyknOyBcCi0rCSAg ZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsgZG9uZSB8IFwK LSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAtZSAic3xeJCR0 b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2UgJCRkaXN0X2Zp bGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxlcyIgfCBcCi0r CQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwnIHwgXAotKwkJ CSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRpc3RfZmlsZXM7 IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsgdGhlbiBkPS47 IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRmaWxlOyB0aGVu IFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10qJCQsLCdgOyBc Ci0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAotKwkgICAgICBm aW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2Qg dStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQoc3JjZGlyKS8k JGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAgY3AgLWZwUiAk KHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgICAgICBm aW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4ZWMgY2htb2Qg dStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8kJGZpbGUgIiQo ZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0ZXN0IC1mICIk KGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAiJChkaXN0ZGly KS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxp c3Q9JyQoRElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYg dGVzdCAiJCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHRlc3QgLWQgIiQoZGlz dGRpcikvJCRzdWJkaXIiIFwKLSsJICAgIHx8ICQoTUtESVJfUCkgIiQoZGlzdGRpcikvJCRzdWJk aXIiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRvbmUKLSsJQGxpc3Q9JyQo RElTVF9TVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAi JCRzdWJkaXIiID0gLjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9 IiQoZGlzdGRpcikvJCRzdWJkaXIiOyBcCi0rCSAgICAkKGFtX19yZWxhdGl2aXplKTsgXAotKwkg ICAgbmV3X2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAgIGRpcjE9JCRzdWJkaXI7IGRpcjI9IiQo dG9wX2Rpc3RkaXIpIjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld190 b3BfZGlzdGRpcj0kJHJlbGRpcjsgXAotKwkgICAgZWNobyAiIChjZCAkJHN1YmRpciAmJiAkKE1B S0UpICQoQU1fTUFLRUZMQUdTKSB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3RkaXIiIGRpc3Rk aXI9IiQkbmV3X2Rpc3RkaXIiIFxcIjsgXAotKwkgICAgZWNobyAiICAgICBhbV9fcmVtb3ZlX2Rp c3RkaXI9OiBhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBhbV9fc2tpcF9tb2RlX2ZpeD06IGRpc3Rk aXIpIjsgXAotKwkgICAgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiBcCi0rCSAgICAgICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIFwKLSsJICAgICAgICB0b3BfZGlzdGRpcj0iJCRuZXdfdG9wX2Rpc3Rk aXIiIFwKLSsJICAgICAgICBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcCi0rCQlhbV9fcmVtb3Zl X2Rpc3RkaXI9OiBcCi0rCQlhbV9fc2tpcF9sZW5ndGhfY2hlY2s9OiBcCi0rCQlhbV9fc2tpcF9t b2RlX2ZpeD06IFwKLSsJICAgICAgICBkaXN0ZGlyKSBcCi0rCSAgICAgIHx8IGV4aXQgMTsgXAot KwkgIGZpOyBcCi0rCWRvbmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLXJlY3Vy c2l2ZQotK2FsbC1hbTogTWFrZWZpbGUgJChMVExJQlJBUklFUykgJChIRUFERVJTKQotK2luc3Rh bGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGlycy1hbToKLSsJZm9yIGRp ciBpbiAiJChERVNURElSKSQobGliZGlyKSIgIiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIjsg ZG8gXAotKwkgIHRlc3QgLXogIiQkZGlyIiB8fCAkKE1LRElSX1ApICIkJGRpciI7IFwKLSsJZG9u ZQotK2luc3RhbGw6IGluc3RhbGwtcmVjdXJzaXZlCi0raW5zdGFsbC1leGVjOiBpbnN0YWxsLWV4 ZWMtcmVjdXJzaXZlCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlCi0rdW5p bnN0YWxsOiB1bmluc3RhbGwtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAk KE1BS0UpICQoQU1fTUFLRUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0r Ci0raW5zdGFsbGNoZWNrOiBpbnN0YWxsY2hlY2stcmVjdXJzaXZlCi0raW5zdGFsbC1zdHJpcDoK LSsJJChNQUtFKSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RS SVBfUFJPR1JBTSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9Q Uk9HUkFNKSIgSU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCkn IHx8IFwKLSsJICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQ KSciYCBpbnN0YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgot KwotK2Rpc3RjbGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMp IiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2Rpciki IHx8IHRlc3QgLXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05G SUdfQ0xFQU5fVlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlA ZWNobyAiVGhpcyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0r CUBlY2hvICJpdCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0 byByZWJ1aWxkLiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAt ZiAkKE1BSU5UQUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1yZWN1cnNpdmUKLSsKLStj bGVhbi1hbTogY2xlYW4tZ2VuZXJpYyBjbGVhbi1saWJMVExJQlJBUklFUyBjbGVhbi1saWJ0b29s IFwKLSsJbW9zdGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1yZWN1cnNpdmUK LSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLStkaXN0Y2xlYW4tYW06 IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNs ZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRtbDog aHRtbC1yZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tcmVjdXJzaXZlCi0r Ci0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtbm9iYXNlX3BrZ2luY2x1 ZGVIRUFERVJTCi0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2lu c3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklF UwotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwt aHRtbC1hbToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStp bnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3Rh bGwtcGRmLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGlu c3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2st YW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJ LXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFu LWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xl YW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVh bi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0r Ci0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUK LSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyBc Ci0rCXVuaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMKLSsKLSsuTUFLRTogJChSRUNV UlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3MtcmVjdXJzaXZl IFwKLSsJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCi0rCi0rLlBIT05Z OiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBDVEFHUyBH VEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4tZ2VuZXJpYyBc Ci0rCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3RhZ3MtcmVjdXJz aXZlIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIFwK LSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0 bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1k YXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIGluc3Rh bGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFt IGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxUTElCUkFSSUVT IGluc3RhbGwtbWFuIFwKLSsJaW5zdGFsbC1ub2Jhc2VfcGtnaW5jbHVkZUhFQURFUlMgaW5zdGFs bC1wZGYgaW5zdGFsbC1wZGYtYW0gXAotKwlpbnN0YWxsLXBzIGluc3RhbGwtcHMtYW0gaW5zdGFs bC1zdHJpcCBpbnN0YWxsY2hlY2sgXAotKwlpbnN0YWxsY2hlY2stYW0gaW5zdGFsbGRpcnMgaW5z dGFsbGRpcnMtYW0gbWFpbnRhaW5lci1jbGVhbiBcCi0rCW1haW50YWluZXItY2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbiBtb3N0bHljbGVhbi1jb21waWxlIFwKLSsJbW9zdGx5Y2xlYW4tZ2VuZXJp YyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAotKwl0YWdzIHRhZ3Mt cmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0gXAotKwl1bmluc3RhbGwtbGliTFRMSUJS QVJJRVMgdW5pbnN0YWxsLW5vYmFzZV9wa2dpbmNsdWRlSEVBREVSUwotKwotK0BTRVRfTUFLRUAK LSsKLSsjIFRlbGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9y dCBhbGwgdmFyaWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBh dCBsZWFzdCkgbWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJl cDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9iYWNrZW5kcy9vcmFjbGUvc291cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAw MDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCww ICsxLDE0IEBACi0rYmNrX29yYWNsZV9oX3NvdXJjZXMgPSBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9yLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL29yYWNsZS9zb2NpLW9yYWNsZS5oCi0rYmNrX29yYWNsZV9jY19zb3Vy Y2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9ibG9i LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2Vycm9y LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL2ZhY3Rv cnkuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvcm93 LWlkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Nl c3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUv c3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3N0YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3N0YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS92ZWN0b3ItaW50by10eXBlLmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3ZlY3Rvci11c2UtdHlwZS5j cHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUv dGVzdC9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysr IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2VmaWxlLmFt CTIwMDktMDQtMTYgMTk6Mzc6MDYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIyIEBACi0r IyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01ha2VmaWxlLmNv bW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJTkVSQ0xFQU5G SUxFUyA9IE1ha2VmaWxlLmluCi0rCi0raWYgSEFWRV9PUkFDTEUKLSsgIFRFU1RfT1JBQ0xFID0g dGVzdF9vcmFjbGUKLSsKLStpZiBSVU5fVEVTVFMKLSsgIG5vaW5zdF9QUk9HUkFNUyA9ICQoVEVT VF9PUkFDTEUpCi0rZW5kaWYKLSsKLSt0ZXN0X29yYWNsZV9TT1VSQ0VTID0gJChvcmFjbGVfdGVz dF9jY19zb3VyY2VzKQotK3Rlc3Rfb3JhY2xlX0NYWEZMQUdTID0gJChCT09TVF9DRkxBR1MpICQo T1JBQ0xFX09DSV9DRkxBR1MpCi0rdGVzdF9vcmFjbGVfTERBREQgPQotK3Rlc3Rfb3JhY2xlX0xE RkxBR1MgPSAkKHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwK LSsJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9saWJzb2NpX29yYWNsZS5s YSBcCi0rCQkkKE9SQUNMRV9PQ0lfTERGTEFHUykKLStlbmRpZgotKwotKyNub2Rpc3RfcGtnaW5j bHVkZV9IRUFERVJTID0gJChvcmFjbGVfdGVzdF9oX3NvdXJjZXMpCi1kaWZmIC1OdXIgc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYyBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYwot LS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUu YmFzaWMJMjAxMS0wNy0wMyAxODo1NTowNi40MDQ4NzcxMjMgKzAyMDAKLSsrKyBzb2NpLTMuMC4w X3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9NYWtlZmlsZS5iYXNpYwkxOTcwLTAx LTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotQEAgLTEsMjMgKzAsMCBAQAotLSMgVGhlIGZv bGxvd2luZyB2YXJpYWJsZSBpcyBzcGVjaWZpYyB0byB0aGlzIGJhY2tlbmQgYW5kIGl0cyBjb3Jy ZWN0Ci0tIyB2YWx1ZXMgbWlnaHQgZGVwZW5kIG9uIHlvdXIgZW52aXJvbm1lbnQgLSBmZWVsIGZy ZWUgdG8gc2V0IGl0IGFjY29yZGluZ2x5LgotLQotLU9SQUNMRUlOQ0xVREVESVIgPSAtSS91c3Iv bGliL29yYWNsZS94ZS9hcHAvb3JhY2xlL3Byb2R1Y3QvMTAuMi4wL3NlcnZlci9yZGJtcy9wdWJs aWMgCi0tT1JBQ0xFTElCRElSID0gLUwvdXNyL2xpYi9vcmFjbGUveGUvYXBwL29yYWNsZS9wcm9k dWN0LzEwLjIuMC9zZXJ2ZXIvbGliIAotLU9SQUNMRUxJQlMgPSAtbGNsbnRzaCAtbG5uejEwCi0t Ci0tIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2YgdGhlIHRhcmdl dCBlbnZpcm9ubWVudC4KLS0KLS1DT01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0gLVdhbGwgLXBl ZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVERURJUlMgPSAtSS4uIC1JLi4vLi4vLi4vY29y ZSAtSS4uLy4uLy4uL2NvcmUvdGVzdCAke09SQUNMRUlOQ0xVREVESVJ9Ci0tTElCRElSUyA9IC1M Li4gLUwuLi8uLi8uLi9jb3JlICR7T1JBQ0xFTElCRElSfQotLUxJQlMgPSAtbHNvY2lfY29yZSAt bHNvY2lfb3JhY2xlIC1sZGwgLWxib29zdF9kYXRlX3RpbWUgJHtPUkFDTEVMSUJTfQotLQotLQot LXRlc3Qtb3JhY2xlIDogdGVzdC1vcmFjbGUuY3BwIAotLSMuLi8uLi8uLi9jb3JlL3Rlc3QvY29t bW9uLXRlc3RzLmgKLS0JJHtDT01QSUxFUn0gLW8gJEAgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURF RElSU30gJHtMSUJESVJTfSAke0xJQlN9Ci0tCi0tCi0tY2xlYW4gOgotLQlybSAtZiAqLm8gdGVz dC1vcmFjbGUKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L01ha2VmaWxlLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNs ZS90ZXN0L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9v cmFjbGUvdGVzdC9NYWtlZmlsZS5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEw MAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L01ha2Vm aWxlLmluCTIwMTEtMDctMDMgMTg6NDQ6MjguMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDU2 NSBAQAotKyMgTWFrZWZpbGUuaW4gZ2VuZXJhdGVkIGJ5IGF1dG9tYWtlIDEuMTEuMSBmcm9tIE1h a2VmaWxlLmFtLgotKyMgQGNvbmZpZ3VyZV9pbnB1dEAKLSsKLSsjIENvcHlyaWdodCAoQykgMTk5 NCwgMTk5NSwgMTk5NiwgMTk5NywgMTk5OCwgMTk5OSwgMjAwMCwgMjAwMSwgMjAwMiwKLSsjIDIw MDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDgsIDIwMDkgIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbiwKLSsjIEluYy4KLSsjIFRoaXMgTWFrZWZpbGUuaW4gaXMgZnJlZSBzb2Z0d2FyZTsg dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbgotKyMgZ2l2ZXMgdW5saW1pdGVkIHBlcm1pc3Np b24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwKLSsjIHdpdGggb3Igd2l0aG91dCBtb2Rp ZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZlZC4KLSsKLSsjIFRo aXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl ZnVsLAotKyMgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZLCB0byB0aGUgZXh0ZW50IHBlcm1pdHRl ZCBieSBsYXc7IHdpdGhvdXQKLSsjIGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hB TlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEKLSsjIFBBUlRJQ1VMQVIgUFVSUE9TRS4KLSsKLStA U0VUX01BS0VACi0rCi0rVlBBVEggPSBAc3JjZGlyQAotK3BrZ2RhdGFkaXIgPSAkKGRhdGFkaXIp L0BQQUNLQUdFQAotK3BrZ2luY2x1ZGVkaXIgPSAkKGluY2x1ZGVkaXIpL0BQQUNLQUdFQAotK3Br Z2xpYmRpciA9ICQobGliZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJleGVjZGlyID0gJChsaWJleGVj ZGlyKS9AUEFDS0FHRUAKLSthbV9fY2QgPSBDRFBBVEg9IiQke1pTSF9WRVJTSU9OKy59JChQQVRI X1NFUEFSQVRPUikiICYmIGNkCi0raW5zdGFsbF9zaF9EQVRBID0gJChpbnN0YWxsX3NoKSAtYyAt bSA2NDQKLStpbnN0YWxsX3NoX1BST0dSQU0gPSAkKGluc3RhbGxfc2gpIC1jCi0raW5zdGFsbF9z aF9TQ1JJUFQgPSAkKGluc3RhbGxfc2gpIC1jCi0rSU5TVEFMTF9IRUFERVIgPSAkKElOU1RBTExf REFUQSkKLSt0cmFuc2Zvcm0gPSAkKHByb2dyYW1fdHJhbnNmb3JtX25hbWUpCi0rTk9STUFMX0lO U1RBTEwgPSA6Ci0rUFJFX0lOU1RBTEwgPSA6Ci0rUE9TVF9JTlNUQUxMID0gOgotK05PUk1BTF9V TklOU1RBTEwgPSA6Ci0rUFJFX1VOSU5TVEFMTCA9IDoKLStQT1NUX1VOSU5TVEFMTCA9IDoKLSti dWlsZF90cmlwbGV0ID0gQGJ1aWxkQAotK2hvc3RfdHJpcGxldCA9IEBob3N0QAotK0RJU1RfQ09N TU9OID0gJChzcmNkaXIpL01ha2VmaWxlLmFtICQoc3JjZGlyKS9NYWtlZmlsZS5pbiBcCi0rCSQo c3JjZGlyKS9zb3VyY2VzLm1rICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rQEhBVkVf T1JBQ0xFX1RSVUVAQFJVTl9URVNUU19UUlVFQG5vaW5zdF9QUk9HUkFNUyA9ICQoYW1fX0VYRUVY VF8xKQotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QKLStBQ0xPQ0FMX000ID0g JCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0rYW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3Ny Y2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlz cWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdyZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29u ZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRpb25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0r CSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9ic29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmln dXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBzID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENP TkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJJChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMg PSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklHX0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2Np L2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJTEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklM RVMgPQotK0BIQVZFX09SQUNMRV9UUlVFQGFtX19FWEVFWFRfMSA9IHRlc3Rfb3JhY2xlJChFWEVF WFQpCi0rUFJPR1JBTVMgPSAkKG5vaW5zdF9QUk9HUkFNUykKLSthbV9fdGVzdF9vcmFjbGVfU09V UkNFU19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0 L3Rlc3Qtb3JhY2xlLmNwcAotK2FtX19vYmplY3RzXzEgPSB0ZXN0X29yYWNsZS10ZXN0LW9yYWNs ZS4kKE9CSkVYVCkKLStASEFWRV9PUkFDTEVfVFJVRUBhbV90ZXN0X29yYWNsZV9PQkpFQ1RTID0g JChhbV9fb2JqZWN0c18xKQotK3Rlc3Rfb3JhY2xlX09CSkVDVFMgPSAkKGFtX3Rlc3Rfb3JhY2xl X09CSkVDVFMpCi0rdGVzdF9vcmFjbGVfREVQRU5ERU5DSUVTID0KLSt0ZXN0X29yYWNsZV9MSU5L ID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKLSsJJChMSUJUT09M RkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpIFwKLSsJ JChDWFhGTEFHUykgJCh0ZXN0X29yYWNsZV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rREVG QVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9idWlsZGRpcikvc29jaQotK2Rl cGNvbXAgPSAkKFNIRUxMKSAkKHRvcF9zcmNkaXIpL2NvbmZpZy9kZXBjb21wCi0rYW1fX2RlcGZp bGVzX21heWJlID0gZGVwZmlsZXMKLSthbV9fbXYgPSBtdiAtZgotK0NYWENPTVBJTEUgPSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStMVENYWENPTVBJ TEUgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxB R1MpICQoQ1hYRkxBR1MpCi0rQ1hYTEQgPSAkKENYWCkKLStDWFhMSU5LID0gJChMSUJUT09MKSAt LXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1s aW5rICQoQ1hYTEQpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxBR1MpICQoQU1fTERGTEFHUykgXAot KwkkKExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQodGVzdF9vcmFjbGVfU09VUkNFUykKLStE SVNUX1NPVVJDRVMgPSAkKGFtX190ZXN0X29yYWNsZV9TT1VSQ0VTX0RJU1QpCi0rRVRBR1MgPSBl dGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNURklMRVMgPSAkKERJU1RfQ09NTU9OKSAkKERJU1Rf U09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAK LStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStB VVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0g QEFXS0AKLStCT09TVF9BU0lPX0xJQiA9IEBCT09TVF9BU0lPX0xJQkAKLStCT09TVF9DRkxBR1Mg PSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1F X0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStC T09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9 IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKLStCT09TVF9N UElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKLStCT09TVF9QUk9HUkFNX09Q VElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUFlUSE9OX0xJ QiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9M SUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJA Ci0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfU1lTVEVN X0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhS RUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RF U1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9P U1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9 IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQ ID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBV TklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklU X0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJ T05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hY REVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9X QAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RMTFRPT0wgPSBARExMVE9P TEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19D ID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdS RVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5F UklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0g QEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RB VEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQ VCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9T VFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpT ID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBP ID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFL RUlORk8gPSBATUFLRUlORk9ACi0rTUFOSUZFU1RfVE9PTCA9IEBNQU5JRkVTVF9UT09MQAotK01L RElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FM X0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNR TF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAot K05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09C SkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09D SV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9S QUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJT SU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0g QFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFD S0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NU UklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVVJM ID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0r UEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NP TkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxB R1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xE RkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NU R1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStTRUQgPSBAU0VEQAotK1NFVF9N QUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQg PSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStV UExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0r YWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJA Ci0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGly ID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0FSID0gQGFjX2N0X0FSQAotK2FjX2N0X0NDID0g QGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBh Y19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5n X2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9f dGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmlu ZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1 aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVu ZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0g QGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZm X29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2 aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBA ZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxp YXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhv c3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGly QAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5z dGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9 IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2Nh bGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5k aXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRp ckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFu c2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAot K3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGly ID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBz eXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3By ZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJA Ci0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWls ZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rb3JhY2xlX3Rlc3RfaF9zb3VyY2VzID0gCi0rb3JhY2xl X3Rlc3RfY2Nfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVz dC90ZXN0LW9yYWNsZS5jcHAKLStNQUlOVEFJTkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0r QEhBVkVfT1JBQ0xFX1RSVUVAVEVTVF9PUkFDTEUgPSB0ZXN0X29yYWNsZQotK0BIQVZFX09SQUNM RV9UUlVFQHRlc3Rfb3JhY2xlX1NPVVJDRVMgPSAkKG9yYWNsZV90ZXN0X2NjX3NvdXJjZXMpCi0r QEhBVkVfT1JBQ0xFX1RSVUVAdGVzdF9vcmFjbGVfQ1hYRkxBR1MgPSAkKEJPT1NUX0NGTEFHUykg JChPUkFDTEVfT0NJX0NGTEFHUykKLStASEFWRV9PUkFDTEVfVFJVRUB0ZXN0X29yYWNsZV9MREFE RCA9IAotK0BIQVZFX09SQUNMRV9UUlVFQHRlc3Rfb3JhY2xlX0xERkxBR1MgPSAkKHRvcF9idWls ZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKLStASEFWRV9PUkFDTEVfVFJV RUAJCSQodG9wX2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS9saWJzb2NpX29yYWNsZS5s YSBcCi0rQEhBVkVfT1JBQ0xFX1RSVUVACQkkKE9SQUNMRV9PQ0lfTERGTEFHUykKLSsKLSthbGw6 IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSsuU1VGRklYRVM6IC5jcHAgLmxvIC5vIC5vYmoKLSsk KHNyY2RpcikvTWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGly KS9NYWtlZmlsZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2Rl cHMpCi0rCUBmb3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2Rl cHMpJyBpbiBcCi0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYm IHsgaWYgdGVzdCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAg ICAgIGV4aXQgMTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9w X3NyY2RpcikgJiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9N YWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01B S0UpIC0tZ251IHNvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvTWFrZWZpbGUKLSsuUFJFQ0lPVVM6 IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9idWlsZGRp cikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0YXR1cyop IFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBh bS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNf bWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwllc2FjOwot KwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2NvbmZpZ3Vy ZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQpOiAgJChh bV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtFKSAkKEFN X01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgotKwotK2Ns ZWFuLW5vaW5zdFBST0dSQU1TOgotKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsgdGVzdCAt biAiJCRsaXN0IiB8fCBleGl0IDA7IFwKLSsJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKLSsJcm0g LWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCi0rCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwgZXhpdCAw OyBcCi0rCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAn cy8kKEVYRUVYVCkkJC8vJ2A7IFwKLSsJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKLSsJcm0gLWYg JCRsaXN0Ci0rdGVzdF9vcmFjbGUkKEVYRUVYVCk6ICQodGVzdF9vcmFjbGVfT0JKRUNUUykgJCh0 ZXN0X29yYWNsZV9ERVBFTkRFTkNJRVMpIAotKwlAcm0gLWYgdGVzdF9vcmFjbGUkKEVYRUVYVCkK LSsJJCh0ZXN0X29yYWNsZV9MSU5LKSAkKHRlc3Rfb3JhY2xlX09CSkVDVFMpICQodGVzdF9vcmFj bGVfTERBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4k KE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStA QU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvdGVzdF9vcmFj bGUtdGVzdC1vcmFjbGUuUG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBD WFhfVFJVRUAJJChDWFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRw byAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIp LyQqLlRwbyAkKERFUERJUikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFz dGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikv JCouVHBvIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29s PW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFT SEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lH UEFUSF9XKSAnJDwnYAotKwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRD WFhDT01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAk PAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERF UERJUikvJCouUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExU Q1hYQ09NUElMRSkgLWMgLW8gJEAgJDwKLSsKLSt0ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5vOiAk KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJCh0ZXN0X29yYWNsZV9DWFhG TEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm8gLU1EIC1NUCAt TUYgJChERVBESVIpL3Rlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLlRwbyAtYyAtbyB0ZXN0X29yYWNs ZS10ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3Jh Y2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFjbGUu VHBvICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5QbwotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyBvYmplY3Q9J3Rlc3Rfb3JhY2xlLXRlc3Qtb3Jh Y2xlLm8nIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFz dGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkg QEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKHRlc3Rfb3JhY2xlX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyB0ZXN0X29yYWNsZS10 ZXN0LW9yYWNsZS5vIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xl L3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwCi0rCi0rdGVzdF9vcmFj bGUtdGVzdC1vcmFjbGUub2JqOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rl c3QvdGVzdC1vcmFjbGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJCh0ZXN0X29yYWNsZV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIHRlc3Rfb3JhY2xlLXRl c3Qtb3JhY2xlLm9iaiAtTUQgLU1QIC1NRiAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1vcmFj bGUuVHBvIC1jIC1vIHRlc3Rfb3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiBgaWYgdGVzdCAtZiAnJCh0 b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IHRo ZW4gJChDWUdQQVRIX1cpICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qv dGVzdC1vcmFjbGUuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZmlgCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvdGVzdF9vcmFjbGUtdGVzdC1v cmFjbGUuVHBvICQoREVQRElSKS90ZXN0X29yYWNsZS10ZXN0LW9yYWNsZS5QbwotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJyBvYmplY3Q9J3Rlc3Rfb3JhY2xlLXRl c3Qtb3JhY2xlLm9iaicgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQodGVzdF9vcmFjbGVfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIHRlc3Rf b3JhY2xlLXRlc3Qtb3JhY2xlLm9iaiBgaWYgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICck KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsg ZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv b3JhY2xlL3Rlc3QvdGVzdC1vcmFjbGUuY3BwJzsgZmlgCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9v bDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9s aWJzCi0rCi0rSUQ6ICQoSEVBREVSUykgJChTT1VSQ0VTKSAkKExJU1ApICQoVEFHU19GSUxFUykK LSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwK LSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7 IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUg fCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkg ICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9 J2A7IFwKLSsJbWtpZCAtZklEICQkdW5pcXVlCi0rdGFnczogVEFHUwotKwotK1RBR1M6ICAkKEhF QURFUlMpICQoU09VUkNFUykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxF UykgJChMSVNQKQotKwlzZXQgeDsgXAotKwloZXJlPWBwd2RgOyBcCi0rCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsg XAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2Ug XAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBp ZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQo QU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBc Ci0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFH UykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkK LStjdGFnczogQ1RBR1MKLStDVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RF UEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNF UykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16 ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1Mp ICQoQU1fQ1RBR1NGTEFHUykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStH VEFHUzoKLSsJaGVyZT1gJChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAm JiAkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdT KSAiJCRoZXJlIgotKwotK2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBH UlRBR1MgR1NZTVMgR1BBVEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3Jj ZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydg OyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5b XiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3Rf ZmlsZXM9YGZvciBmaWxlIGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAg c2VkIC1lICJzfF4kJHNyY2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3Jj ZGlyc3RyaXAvfCQodG9wX2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBp biBcCi0rCSAgKi8qKSAkKE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAg IHNlZCAnL1wvLyFkO3N8XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBz b3J0IC11YCA7OyBcCi0rCWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBc Ci0rCSAgaWYgdGVzdCAtZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNl IGQ9JChzcmNkaXIpOyBmaTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0r CSAgICBkaXI9YGVjaG8gIi8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkg ICAgaWYgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAi JChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4 IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxl ICYmIHRlc3QgJCRkICE9ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNk aXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAi JChkaXN0ZGlyKS8kJGZpbGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4 IHt9IFw7OyBcCi0rCSAgICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3Rk aXIpJCRkaXIiIHx8IGV4aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0 ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRm aWxlIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06 IGFsbC1hbQotK2NoZWNrOiBjaGVjay1hbQotK2FsbC1hbTogTWFrZWZpbGUgJChQUk9HUkFNUykK LStpbnN0YWxsZGlyczoKLStpbnN0YWxsOiBpbnN0YWxsLWFtCi0raW5zdGFsbC1leGVjOiBpbnN0 YWxsLWV4ZWMtYW0KLStpbnN0YWxsLWRhdGE6IGluc3RhbGwtZGF0YS1hbQotK3VuaW5zdGFsbDog dW5pbnN0YWxsLWFtCi0rCi0raW5zdGFsbC1hbTogYWxsLWFtCi0rCUAkKE1BS0UpICQoQU1fTUFL RUZMQUdTKSBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1kYXRhLWFtCi0rCi0raW5zdGFsbGNoZWNr OiBpbnN0YWxsY2hlY2stYW0KLStpbnN0YWxsLXN0cmlwOgotKwkkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBJTlNUQUxMX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIgXAotKwkgIGlu c3RhbGxfc2hfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBJTlNUQUxMX1NUUklQ X0ZMQUc9LXMgXAotKwkgIGB0ZXN0IC16ICckKFNUUklQKScgfHwgXAotKwkgICAgZWNobyAiSU5T VEFMTF9QUk9HUkFNX0VOVj1TVFJJUFBST0c9JyQoU1RSSVApJyJgIGluc3RhbGwKLSttb3N0bHlj bGVhbi1nZW5lcmljOgotKwotK2NsZWFuLWdlbmVyaWM6Ci0rCi0rZGlzdGNsZWFuLWdlbmVyaWM6 Ci0rCS10ZXN0IC16ICIkKENPTkZJR19DTEVBTl9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NM RUFOX0ZJTEVTKQotKwktdGVzdCAuID0gIiQoc3JjZGlyKSIgfHwgdGVzdCAteiAiJChDT05GSUdf Q0xFQU5fVlBBVEhfRklMRVMpIiB8fCBybSAtZiAkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykK LSsKLSttYWludGFpbmVyLWNsZWFuLWdlbmVyaWM6Ci0rCUBlY2hvICJUaGlzIGNvbW1hbmQgaXMg aW50ZW5kZWQgZm9yIG1haW50YWluZXJzIHRvIHVzZSIKLSsJQGVjaG8gIml0IGRlbGV0ZXMgZmls ZXMgdGhhdCBtYXkgcmVxdWlyZSBzcGVjaWFsIHRvb2xzIHRvIHJlYnVpbGQuIgotKwktdGVzdCAt eiAiJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykiIHx8IHJtIC1mICQoTUFJTlRBSU5FUkNMRUFORklM RVMpCi0rY2xlYW46IGNsZWFuLWFtCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4t bGlidG9vbCBjbGVhbi1ub2luc3RQUk9HUkFNUyBcCi0rCW1vc3RseWNsZWFuLWFtCi0rCi0rZGlz dGNsZWFuOiBkaXN0Y2xlYW4tYW0KLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFr ZWZpbGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVh bi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1h bToKLSsKLStodG1sOiBodG1sLWFtCi0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLWFtCi0r Ci0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGluc3Rh bGwtZHZpLWFtCi0rCi0raW5zdGFsbC1kdmktYW06Ci0rCi0raW5zdGFsbC1leGVjLWFtOgotKwot K2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLWFtCi0rCi0raW5zdGFsbC1odG1sLWFtOgotKwot K2luc3RhbGwtaW5mbzogaW5zdGFsbC1pbmZvLWFtCi0rCi0raW5zdGFsbC1pbmZvLWFtOgotKwot K2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBpbnN0YWxsLXBkZi1hbQotKwotK2luc3Rh bGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtYW0KLSsKLStpbnN0YWxsLXBz LWFtOgotKwotK2luc3RhbGxjaGVjay1hbToKLSsKLSttYWludGFpbmVyLWNsZWFuOiBtYWludGFp bmVyLWNsZWFuLWFtCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJtIC1mIE1ha2VmaWxlCi0r bWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJp YwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFtOiBt b3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1s aWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0rCi0r cHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiBpbnN0YWxsLWFtIGluc3RhbGwt c3RyaXAKLSsKLSsuUEhPTlk6IENUQUdTIEdUQUdTIGFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0g Y2xlYW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JB TVMgY3RhZ3MgZGlzdGNsZWFuIFwKLSsJZGlzdGNsZWFuLWNvbXBpbGUgZGlzdGNsZWFuLWdlbmVy aWMgZGlzdGNsZWFuLWxpYnRvb2wgXAotKwlkaXN0Y2xlYW4tdGFncyBkaXN0ZGlyIGR2aSBkdmkt YW0gaHRtbCBodG1sLWFtIGluZm8gaW5mby1hbSBcCi0rCWluc3RhbGwgaW5zdGFsbC1hbSBpbnN0 YWxsLWRhdGEgaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIFwKLSsJaW5zdGFsbC1kdmktYW0g aW5zdGFsbC1leGVjIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgXAotKwlpbnN0YWxsLWh0 bWwtYW0gaW5zdGFsbC1pbmZvIGluc3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBcCi0rCWluc3Rh bGwtcGRmIGluc3RhbGwtcGRmLWFtIGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBcCi0rCWluc3Rh bGwtc3RyaXAgaW5zdGFsbGNoZWNrIGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBcCi0rCW1h aW50YWluZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKLSsJ bW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRv b2wgXAotKwlwZGYgcGRmLWFtIHBzIHBzLWFtIHRhZ3MgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbQot KwotK0BTRVRfTUFLRUAKLSsKLSsjbm9kaXN0X3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQob3JhY2xl X3Rlc3RfaF9zb3VyY2VzKQotKwotKyMgVGVsbCB2ZXJzaW9ucyBbMy41OSwzLjYzKSBvZiBHTlUg bWFrZSB0byBub3QgZXhwb3J0IGFsbCB2YXJpYWJsZXMuCi0rIyBPdGhlcndpc2UgYSBzeXN0ZW0g bGltaXQgKGZvciBTeXNWIGF0IGxlYXN0KSBtYXkgYmUgZXhjZWVkZWQuCi0rLk5PRVhQT1JUOgot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qvc291 cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9zb3Vy Y2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9vcmFjbGUvdGVzdC9z b3VyY2VzLm1rCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvb3JhY2xlL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0 LTE2IDE5OjM3OjA2LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwyIEBACi0rb3JhY2xlX3Rl c3RfaF9zb3VyY2VzID0KLStvcmFjbGVfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL29yYWNsZS90ZXN0L3Rlc3Qtb3JhY2xlLmNwcAotZGlmZiAtTnVyIHNvY2kt My4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5hbSBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtCi0tLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmFtCTE5NzAt MDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5hbQkyMDA5LTA0LTE2IDE5OjM3OjA1LjAw MDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSwzMCBAQAotKyMjIGJhY2tlbmRzL3Bvc3RncmVzcWwg c3ViLWRpcmVjdG9yeQotK2luY2x1ZGUgJCh0b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStp bmNsdWRlICQoc3JjZGlyKS9zb3VyY2VzLm1rCi0rCi0rTUFJTlRBSU5FUkNMRUFORklMRVMgPSBN YWtlZmlsZS5pbgotKwotK1NVQkRJUlMgPSAuIHRlc3QKLSsKLSsjRVhUUkFfRElTVF9GT1JfU09D SV9DT01QQVRJQklMSVRZID0gLl9jb21tb24uaAotKwotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJ U1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkKLSsKLStpZiBIQVZFX1BPU1RHUkVTUUwKLStsaWJf TFRMSUJSQVJJRVM9IGxpYnNvY2lfcG9zdGdyZXNxbC5sYQotKwotK2xpYnNvY2lfcG9zdGdyZXNx bF9sYV9TT1VSQ0VTPSAkKGJja19wb3N0Z3Jlc3FsX2hfc291cmNlcykgJChiY2tfcG9zdGdyZXNx bF9jY19zb3VyY2VzKSAKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MgPSAkKFBPU1RH UkVTUUxfQ0ZMQUdTKQotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9MSUJBREQgPQotK2xpYnNvY2lf cG9zdGdyZXNxbF9sYV9MREZMQUdTID0gXAotKwkkKEJPT1NUX0xJQlMpICQoQk9PU1RfREFURV9U SU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCi0rCS12ZXJzaW9uLWluZm8g JChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAotK2Vu ZGlmCi0raWYgU09DSV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1 ZGVkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbAotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGly ID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0rcGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRl X2RpcikKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9NYWtlZmlsZS5iYXNpYwkyMDExLTA3LTAzIDE4OjU1OjA2LjQwMjg3NzEzMyAr MDIwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvTWFr ZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDk1 ICswLDAgQEAKLS0jIFRoZSBmb2xsb3dpbmcgdmFyaWFibGUgaXMgc3BlY2lmaWMgdG8gdGhpcyBi YWNrZW5kIGFuZCBpdHMgY29ycmVjdAotLSMgdmFsdWVzIG1pZ2h0IGRlcGVuZCBvbiB5b3VyIGVu dmlyb25tZW50IC0gZmVlbCBmcmVlIHRvIHNldCBpdCBhY2NvcmRpbmdseS4KLS0KLS1QR1NRTElO Q0xVREVESVIgPSAtSS91c3IvaW5jbHVkZQotLQotLSMgVGhlIHJlc3Qgb2YgdGhlIE1ha2VmaWxl IGlzIGluZGVwZW50ZW50IG9mIHRoZSB0YXJnZXQgZW52aXJvbm1lbnQuCi0tCi0tQ09NUElMRVIg PSBnKysKLS1DWFhGTEFHUyA9IC1XYWxsIC1wZWRhbnRpYyAtV25vLWxvbmctbG9uZwotLUNYWEZM QUdTU08gPSAke0NYWEZMQUdTfSAtZlBJQwotLUlOQ0xVREVESVJTID0gLUkuLi8uLi9jb3JlICR7 UEdTUUxJTkNMVURFRElSfQotLQotLQotLU9CSkVDVFMgPSBibG9iLm8gZmFjdG9yeS5vIHJvdy1p ZC5vIHNlc3Npb24ubyBzdGFuZGFyZC1pbnRvLXR5cGUubyBcCi0tCXN0YW5kYXJkLXVzZS10eXBl Lm8gc3RhdGVtZW50Lm8gdmVjdG9yLWludG8tdHlwZS5vIHZlY3Rvci11c2UtdHlwZS5vIFwKLS0J Y29tbW9uLm8KLS0KLS1PQkpFQ1RTU08gPSBibG9iLXMubyBmYWN0b3J5LXMubyByb3ctaWQtcy5v IHNlc3Npb24tcy5vIFwKLS0Jc3RhbmRhcmQtaW50by10eXBlLXMubyBzdGFuZGFyZC11c2UtdHlw ZS1zLm8gc3RhdGVtZW50LXMubyBcCi0tCXZlY3Rvci1pbnRvLXR5cGUtcy5vIHZlY3Rvci11c2Ut dHlwZS1zLm8gY29tbW9uLXMubwotLQotLQotLWxpYnNvY2lfcG9zdGdyZXNxbC5hIDogJHtPQkpF Q1RTfQotLQlhciBydiAkQCAkPwotLQlybSAqLm8KLS0KLS0KLS1ibG9iLm8gOiBibG9iLmNwcAot LQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWNvbW1v bi5vIDogY29tbW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xV REVESVJTfQotLQotLWZhY3RvcnkubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcm93LWlkLm8gOiByb3ctaWQuY3BwCi0t CSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc2Vzc2lv bi5vIDogc2Vzc2lvbi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNM VURFRElSU30KLS0KLS1zdGFuZGFyZC1pbnRvLXR5cGUubyA6IHN0YW5kYXJkLWludG8tdHlwZS5j cHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS1z dGFuZGFyZC11c2UtdHlwZS5vIDogc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9 IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50Lm8gOiBzdGF0 ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9 Ci0tCi0tdmVjdG9yLWludG8tdHlwZS5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01Q SUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS12ZWN0b3ItdXNlLXR5 cGUubyA6IHZlY3Rvci11c2UtdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFH U30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1zaGFyZWQgOiAke09CSkVDVFNTT30KLS0JJHtDT01Q SUxFUn0gLXNoYXJlZCAtbyBsaWJzb2NpX3Bvc3RncmVzcWwuc28gJHtPQkpFQ1RTU099Ci0tCXJt ICoubwotLQotLWJsb2Itcy5vIDogYmxvYi5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8g JHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLWNvbW1vbi1zLm8gOiBjb21tb24uY3Bw Ci0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30K LS0KLS1mYWN0b3J5LXMubyA6IGZhY3RvcnkuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRAICQ/ ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS1yb3ctaWQtcy5vIDogcm93LWlkLmNw cAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9 Ci0tCi0tc2Vzc2lvbi1zLm8gOiBzZXNzaW9uLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAk PyAke0NYWEZMQUdTU099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhbmRhcmQtaW50by10eXBlLXMu byA6IHN0YW5kYXJkLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtD WFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXN0YW5kYXJkLXVzZS10eXBlLXMubyA6IHN0 YW5kYXJkLXVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAtbyAkQCAkPyAke0NYWEZMQUdT U099ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50LXMubyA6IHN0YXRlbWVudC5jcHAKLS0J JHtDT01QSUxFUn0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQot LXZlY3Rvci1pbnRvLXR5cGUtcy5vIDogdmVjdG9yLWludG8tdHlwZS5jcHAKLS0JJHtDT01QSUxF Un0gLWMgLW8gJEAgJD8gJHtDWFhGTEFHU1NPfSAke0lOQ0xVREVESVJTfQotLQotLXZlY3Rvci11 c2UtdHlwZS1zLm8gOiB2ZWN0b3ItdXNlLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jIC1vICRA ICQ/ICR7Q1hYRkxBR1NTT30gJHtJTkNMVURFRElSU30KLS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1m IGxpYnNvY2lfcG9zdGdyZXNxbC5hIGxpYnNvY2lfcG9zdGdyZXNxbC5zbwotZGlmZiAtTnVyIHNv Y2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5pbiBzb2Np LTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluCi0tLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL01ha2VmaWxlLmluCTE5 NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAw L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZS5pbgkyMDExLTA3LTAzIDE4OjQ0OjI4 LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw5MDcgQEAKLSsjIE1ha2VmaWxlLmluIGdlbmVy YXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBjb25maWd1cmVf aW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5OTcsIDE5OTgs IDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3 LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMuCi0rIyBUaGlz IE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29yIGRpc3RyaWJ1 dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlz IG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQg aW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRIT1VUIEFOWSBX QVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0Ci0rIyBldmVu IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBB Ci0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotKwotK1ZQQVRIID0g QHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStwa2dsaWJkaXIg PSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhlY2RpcikvQFBB Q0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFUSF9TRVBBUkFU T1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMgLW0gNjQ0Ci0r aW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxfc2hfU0NSSVBU ID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxMX0RBVEEpCi0r dHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9JTlNUQUxMID0g OgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxfVU5JTlNUQUxM ID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0rYnVpbGRfdHJp cGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NPTU1PTiA9ICQo YW1fX3BrZ2luY2x1ZGVfSEVBREVSU19ESVNUKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAotKwkk KHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAotKwkkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbAot K0FDTE9DQUxfTTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9k ZXBzID0gJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9heF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9v Y2kubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0 b3Bfc3JjZGlyKS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xp YnRvb2wubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2 ZXJzaW9uLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bf c3JjZGlyKS9jb25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2Fs X200X2RlcHMpICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0r bWtpbnN0YWxsZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3Bf YnVpbGRkaXIpL3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19D TEVBTl9WUEFUSF9GSUxFUyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBl Y2hvICIkKHNyY2RpcikiIHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2Ug JCRwIGluIFwKLSsgICAgJChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3Jj ZGlyc3RyaXAvfHwiYDs7IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJp cF9kaXIgPSBmPWBlY2hvICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9t YXggPSA0MAotK2FtX19ub2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNo byAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFz ZV9zdHJpcCA9IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNl ZCAtZSAic3wkJHNyY2RpcnN0cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFz ZV9zdHJpcF9zZXR1cCk7IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7 IGRvbmUgfCBcCi0rICBzZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiov IC4vOyBzLFwoIC4qXCkvW14vXSokJCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVz WyIuIl0gPSAiIiB9IHsgZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBp ZiAoKytuWyQkMl0gPT0gJChhbV9faW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIs IGZpbGVzWyQkMl07IG5bJCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQg eyBmb3IgKGRpciBpbiBmaWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2Vf bGlzdCA9IFwKLSsgIHNlZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xu LyAvZycgfCBcCi0rICBzZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1fX2lu c3RhbGxkaXJzID0gIiQoREVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRl ZGlyKSIKLStMVExJQlJBUklFUyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfcG9zdGdy ZXNxbF9sYV9ERVBFTkRFTkNJRVMgPQotK2FtX19saWJzb2NpX3Bvc3RncmVzcWxfbGFfU09VUkNF U19ESVNUID0gIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29t bW9uLmggXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb2NpLXBv c3RncmVzcWwuaCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Js b2IuY3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9u LmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3Rvcnku Y3BwIFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNw cCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3Bw IFwKLSsJJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50 by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLXVzZS10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3N0YXRlbWVudC5jcHAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCBcCi0rCSQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLSthbV9fb2JqZWN0c18xID0KLSth bV9fb2JqZWN0c18yID0gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gXAotKwlsaWJzb2Np X3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3Rv cnkubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIFwKLSsJbGlic29jaV9w b3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gXAotKwlsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRh cmQtaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLXVzZS10 eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5sbyBcCi0rCWxpYnNv Y2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIFwKLSsJbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5sbwotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBhbV9saWJz b2NpX3Bvc3RncmVzcWxfbGFfT0JKRUNUUyA9ICBcCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQAkk KGFtX19vYmplY3RzXzEpICQoYW1fX29iamVjdHNfMikKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGFf T0JKRUNUUyA9ICQoYW1fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpCi0rbGlic29jaV9w b3N0Z3Jlc3FsX2xhX0xJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFH UykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDWFhMRCkgXAotKwkkKGxpYnNv Y2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgXAotKwkkKGxpYnNvY2lfcG9z dGdyZXNxbF9sYV9MREZMQUdTKSAkKExERkxBR1MpIC1vICRACi0rQEhBVkVfUE9TVEdSRVNRTF9U UlVFQGFtX2xpYnNvY2lfcG9zdGdyZXNxbF9sYV9ycGF0aCA9IC1ycGF0aCBcCi0rQEhBVkVfUE9T VEdSRVNRTF9UUlVFQAkkKGxpYmRpcikKLStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3Jj QCAtSSQodG9wX2J1aWxkZGlyKS9zb2NpCi0rZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2Rp cikvY29uZmlnL2RlcGNvbXAKLSthbV9fZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotK2FtX19t diA9IG12IC1mCi0rQ1hYQ09NUElMRSA9ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZM QUdTKSAkKENYWEZMQUdTKQotK0xUQ1hYQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBG TEFHUykgJChDUFBGTEFHUykgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9ICQo Q1hYKQotK0NYWExJTksgPSAkKExJQlRPT0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykg JChDWFhGTEFHUykgJChBTV9MREZMQUdTKSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStDT01QSUxF ID0gJChDQykgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQ RkxBR1MpIFwKLSsJJChDUFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0xUQ09NUElM RSA9ICQoTElCVE9PTCkgLS10YWc9Q0MgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAk KENGTEFHUykKLStDQ0xEID0gJChDQykKLStMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFN X0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDQ0xEKSAk KEFNX0NGTEFHUykgJChDRkxBR1MpICQoQU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRA Ci0rU09VUkNFUyA9ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVMpCi0rRElTVF9TT1VS Q0VTID0gJChhbV9fbGlic29jaV9wb3N0Z3Jlc3FsX2xhX1NPVVJDRVNfRElTVCkKLStSRUNVUlNJ VkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUg XAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZl IFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1cnNpdmUgXAotKwlp bnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUgXAotKwlpbnN0YWxs LXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1yZWN1cnNpdmUgXAot KwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJz aXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLSthbV9fcGtnaW5jbHVk ZV9IRUFERVJTX0RJU1QgPSAgXAotKwkkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zb2NpLXBvc3RncmVzcWwuaAotK0hFQURFUlMgPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykK LStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZSBjbGVhbi1y ZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNsZWFuLXJlY3Vy c2l2ZQotK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VUUzotcmVjdXJz aXZlPSkgXAotKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9KSB0YWdzIFRB R1MgY3RhZ3MgQ1RBR1MgXAotKwlkaXN0ZGlyCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3Rh Z3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChESVNUX0NPTU1P TikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLSthbV9fcmVsYXRp dml6ZSA9IFwKLSsgIGRpcjA9YHB3ZGA7IFwKLSsgIHNlZF9maXJzdD0ncyxeXChbXi9dKlwpLy4q JCQsXDEsJzsgXAotKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKLSsgIHNlZF9sYXN0PSdz LF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCi0rICBzZWRfYnV0bGFzdD0ncywvKlteL10qJCQsLCc7 IFwKLSsgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKLSsgICAgZmlyc3Q9YGVjaG8gIiQk ZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgaWYgdGVzdCAiJCRmaXJzdCIg IT0gIi4iOyB0aGVuIFwKLSsgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7IHRoZW4gXAot KyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFzdCJgLyIkJGRp cjIiOyBcCi0rICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIkJHNlZF9idXRs YXN0ImA7IFwKLSsgICAgICBlbHNlIFwKLSsgICAgICAgIGZpcnN0Mj1gZWNobyAiJCRkaXIyIiB8 IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICAgICAgaWYgdGVzdCAiJCRmaXJzdDIiID0g IiQkZmlyc3QiOyB0aGVuIFwKLSsgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIyIiB8IHNlZCAt ZSAiJCRzZWRfcmVzdCJgOyBcCi0rICAgICAgICBlbHNlIFwKLSsgICAgICAgICAgZGlyMj0iLi4v JCRkaXIyIjsgXAotKyAgICAgICAgZmk7IFwKLSsgICAgICAgIGRpcjA9IiQkZGlyMCIvIiQkZmly c3QiOyBcCi0rICAgICAgZmk7IFwKLSsgICAgZmk7IFwKLSsgICAgZGlyMT1gZWNobyAiJCRkaXIx IiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICBkb25lOyBcCi0rICByZWxkaXI9IiQkZGly MiIKLStwa2dpbmNsdWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotK0FDTE9DQUwgPSBAQUNM T0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09O RkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0r QVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJQiA9IEBCT09TVF9BU0lPX0xJQkAKLStCT09TVF9D RkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFU RV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJ QkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1Rf TElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKLStC T09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKLStCT09TVF9QUk9H UkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUFlU SE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9S RUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElP Tl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1Rf U1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9P U1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9V TklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05A Ci0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAK LStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NA Ci0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9 IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStD UFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklU X1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUg PSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lH UEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RMTFRPT0wgPSBA RExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0r RUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RA Ci0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAK LStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStH UkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNU QUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxM X1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5T VEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStM SUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAK LStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNA Ci0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUFOSUZFU1RfVE9PTCA9IEBNQU5JRkVTVF9UT09M QAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAot K01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AK LStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJT SU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1Q QAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JB Q0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdT ID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09D SV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNL QUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRA Ci0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNL QUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tB R0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJ T05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAot K1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNR TF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JF U1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9 IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStTRUQgPSBAU0VEQAot K1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19C VVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE ID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNf QlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJ UEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJ T05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19z cmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bf c3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0FSID0gQGFjX2N0X0FSQAotK2FjX2N0 X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJ TiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19s ZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAK LSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIg PSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFz QAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVp bGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRh ZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9 IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29r QAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVm aXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hv c3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29z ID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBo dG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJA Ci0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xp YmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9 IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9 IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5j bHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBz ZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0 YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRp ciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1 aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVp bGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRv cF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzID0g XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9u LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc29j aS1wb3N0Z3Jlc3FsLmgKLSsKLStiY2tfcG9zdGdyZXNxbF9jY19zb3VyY2VzID0gXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9mYWN0b3J5 LmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9y b3ctaWQuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3Nlc3Npb24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3N0YW5kYXJkLWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVjdG9y LWludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdmVjdG9yLXVzZS10eXBlLmNwcAotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0g TWFrZWZpbGUuaW4KLStTVUJESVJTID0gLiB0ZXN0Ci0rCi0rI0VYVFJBX0RJU1RfRk9SX1NPQ0lf Q09NUEFUSUJJTElUWSA9IC5fY29tbW9uLmgKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkpCi0rQEhBVkVfUE9TVEdSRVNRTF9UUlVFQGxpYl9MVExJQlJB UklFUyA9IGxpYnNvY2lfcG9zdGdyZXNxbC5sYQotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJz b2NpX3Bvc3RncmVzcWxfbGFfU09VUkNFUyA9ICQoYmNrX3Bvc3RncmVzcWxfaF9zb3VyY2VzKSAk KGJja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMpIAotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUBsaWJz b2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MgPSAkKFBPU1RHUkVTUUxfQ0ZMQUdTKQotK0BIQVZF X1BPU1RHUkVTUUxfVFJVRUBsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElCQUREID0gCi0rQEhBVkVf UE9TVEdSRVNRTF9UUlVFQGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9MREZMQUdTID0gXAotK0BIQVZF X1BPU1RHUkVTUUxfVFJVRUAJJChCT09TVF9MSUJTKSAkKEJPT1NUX0RBVEVfVElNRV9MSUIpICQo Qk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQikgXAotK0BIQVZFX1BPU1RHUkVTUUxfVFJVRUAJLXZl cnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJTSU9OKQotKwotK0BIQVZFX1BPU1RHUkVT UUxfVFJVRUBwa2dpbmNsdWRlX0hFQURFUlMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zb2NpLXBvc3RncmVzcWwuaAotK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNF QHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rQFNPQ0lfSEVBREVSU19CVVJJRURf VFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3Rn cmVzcWwKLSthbGw6IGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rLlNVRkZJWEVTOiAu Y3BwIC5sbyAubyAub2JqCi0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2Vm aWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1r ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2Ug JyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAo IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJy ZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBc Ci0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9NYWtlZmlsZSc7IFwKLSsJJChhbV9fY2QpICQodG9wX3NyY2Rpcikg JiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9NYWtl ZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIpL01ha2VmaWxl LmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycgaW4gXAotKwkg ICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAgIGVjaG8gJyBj ZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8k QCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWlsZGRpcikgJiYg JChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXli ZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXM6ICQodG9w X3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMpCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKwot KyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQo QUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9wX2J1aWxkZGly KSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1fX2FjbG9jYWxf bTRfZGVwcyk6Ci0raW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRMSUJSQVJJRVMpCi0r CUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8ICQoTUtESVJfUCkg IiQoREVTVERJUikkKGxpYmRpcikiCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyB0ZXN0 IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCi0rCWxpc3QyPTsgZm9yIHAgaW4gJCRsaXN0OyBk byBcCi0rCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAotKwkgICAgbGlzdDI9IiQkbGlzdDIgJCRw IjsgXAotKwkgIGVsc2UgOjsgZmk7IFwKLSsJZG9uZTsgXAotKwl0ZXN0IC16ICIkJGxpc3QyIiB8 fCB7IFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NUUklQX0ZMQUcpICQk bGlzdDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAotKwkgICQoTElCVE9PTCkgJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElOU1RBTEwpICQoSU5T VEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIpJChsaWJkaXIpIjsgXAotKwl9Ci0r Ci0rdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgotKwlAJChOT1JNQUxfVU5JTlNUQUxMKQotKwlA bGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIpIiB8fCBsaXN0PTsg XAotKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICAkKGFtX19zdHJpcF9kaXIpIFwKLSsJICBl Y2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7IFwKLSsJICAkKExJ QlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPXVuaW5zdGFs bCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCi0rCWRvbmUKLSsKLStjbGVhbi1s aWJMVExJQlJBUklFUzoKLSsJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVTKSIgfHwgcm0gLWYg JChsaWJfTFRMSUJSQVJJRVMpCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklFUyknOyBmb3IgcCBp biAkJGxpc3Q7IGRvIFwKLSsJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAnc3wvW14vXSokJHx8 J2AiOyBcCi0rCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBcCi0rCSAgZWNobyAi cm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAotKwkgIHJtIC1mICIkJHtkaXJ9L3Nv X2xvY2F0aW9ucyI7IFwKLSsJZG9uZQotK2xpYnNvY2lfcG9zdGdyZXNxbC5sYTogJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfT0JKRUNUUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfREVQRU5ERU5D SUVTKSAKLSsJJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfTElOSykgJChhbV9saWJzb2NpX3Bvc3Rn cmVzcWxfbGFfcnBhdGgpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX09CSkVDVFMpICQobGlic29j aV9wb3N0Z3Jlc3FsX2xhX0xJQkFERCkgJChMSUJTKQotKwotK21vc3RseWNsZWFuLWNvbXBpbGU6 Ci0rCS1ybSAtZiAqLiQoT0JKRVhUKQotKwotK2Rpc3RjbGVhbi1jb21waWxlOgotKwktcm0gLWYg Ki50YWIuYwotKwotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtY29tbW9uLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlBsb0Bh bV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBf VFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXNlc3Npb24uUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWlu dG8tdHlwZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUu UGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8k KERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5QbG9AYW1fX3F1b3RlQAot K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9U UlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtdmVjdG9yLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rCi0rLmNwcC5vOgotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJ UikvJCouVHBvIC1jIC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvJCouVHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNL U0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBE SVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0 ZGVwQ1hYX0ZBTFNFQAkkKENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0rCi0rLmNwcC5vYmo6Ci0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAgLU1GICQo REVQRElSKS8kKi5UcG8gLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUG8KLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwnIG9iamVjdD0nJEAn IGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENY WF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQ QkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01QSUxFKSAtYyAtbyAk QCBgJChDWUdQQVRIX1cpICckPCdgCi0rCi0rLmNwcC5sbzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJV RUAJJChMVENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1j IC1vICRAICQ8Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCou VHBvICQoREVQRElSKS8kKi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CXNvdXJjZT0nJDwnIG9iamVjdD0nJEAnIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoTFRDWFhDT01QSUxFKSAtYyAtbyAkQCAkPAotKwotK2xpYnNvY2lfcG9zdGdyZXNxbF9s YS1ibG9iLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNw cAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJU T09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAk KERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1Mp ICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9z dGdyZXNxbF9sYS1ibG9iLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtYmxvYi5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL2Jsb2IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikv bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVz cWxfbGEtYmxvYi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAnIG9iamVj dD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWJsb2IubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bv c3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNx bF9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9ibG9iLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvYmxvYi5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29t bW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3Bw Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykg JChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2Np X3Bvc3RncmVzcWxfbGEtY29tbW9uLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtY29tbW9uLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtY29tbW9u LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21t b24uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9jb21tb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAk KERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5UcG8gJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1jb21tb24uUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2Nv bW1vbi5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbycgbGlidG9v bD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxT RUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NM QVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8g bGlic29jaV9wb3N0Z3Jlc3FsX2xhLWNvbW1vbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydg JCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvY29tbW9uLmNwcAotKwotK2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9mYWN0b3J5LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdT KSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8gLU1EIC1N UCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1mYWN0b3J5LlRwbyAtYyAtbyBs aWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3RvcnkuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3Fs X2xhLWZhY3RvcnkuVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtZmFjdG9yeS5Q bG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAnIG9iamVjdD0nbGlic29j aV9wb3N0Z3Jlc3FsX2xhLWZhY3RvcnkubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAK LStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChD WFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVz cWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1m YWN0b3J5LmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNx bC9mYWN0b3J5LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2Jh Y2tlbmRzL3Bvc3RncmVzcWwvZmFjdG9yeS5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxfbGEt cm93LWlkLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9yb3ctaWQu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX3Bvc3RncmVzcWxfbGEtcm93LWlkLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X3Bvc3RncmVzcWxfbGEtcm93LWlkLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtcm93 LWlkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9y b3ctaWQuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC9yb3ctaWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5UcG8gJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1yb3ctaWQuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Jvdy1pZC5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMg LW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXJvdy1pZC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvcm93LWlkLmNwcAotKwot K2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC9zZXNzaW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zZXNzaW9uLlRwbyAtYyAt byBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Nlc3Npb24uY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXNlc3Npb24uVHBvICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc2Vzc2lv bi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bf c3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAnIG9iamVjdD0nbGli c29jaV9wb3N0Z3Jlc3FsX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFT SEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikg JChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJU T09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3Rn cmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9s YS1zZXNzaW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zZXNzaW9uLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2Np L2JhY2tlbmRzL3Bvc3RncmVzcWwvc2Vzc2lvbi5jcHAKLSsKLStsaWJzb2NpX3Bvc3RncmVzcWxf bGEtc3RhbmRhcmQtaW50by10eXBlLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQtaW50 by10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3Rh bmRhcmQtaW50by10eXBlLlRwbyAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhbmRhcmQt aW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdy ZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC1pbnRvLXR5cGUuY3BwCi0r QGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YW5kYXJkLWludG8tdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1zdGFuZGFyZC1pbnRvLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hY X0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0 YW5kYXJkLWludG8tdHlwZS5jcHAnIG9iamVjdD0nbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5k YXJkLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNxbF9sYV9DWFhG TEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0YW5kYXJkLWlu dG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcAotKwot K2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbzogJCh0b3Bfc3JjZGly KS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwCi0rQGFtX19m YXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX3Bvc3RncmVz cWxfbGEtc3RhbmRhcmQtdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf cG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gLWMgLW8gbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXN0YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv YmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3Jj ZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVz ZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xp YnNvY2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNv Y2lfcG9zdGdyZXNxbF9sYS1zdGFuZGFyZC11c2UtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1f X2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc3RhbmRhcmQtdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lfcG9zdGdyZXNx bF9sYS1zdGFuZGFyZC11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAot K0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENY WERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9G QUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXN0 YW5kYXJkLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMv cG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YW5kYXJkLXVzZS10eXBlLmNw cAotKwotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG86ICQodG9wX3NyY2Rpcikv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xG TEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAk KElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdyZXNx bF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0 ZW1lbnQubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0 ZW1lbnQuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNxbF9sYS1zdGF0ZW1lbnQubG8gYHRlc3Qg LWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3N0YXRlbWVudC5jcHAn IHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jl c3FsL3N0YXRlbWVudC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LlRwbyAkKERFUERJUikvbGlic29j aV9wb3N0Z3Jlc3FsX2xhLXN0YXRlbWVudC5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwv c3RhdGVtZW50LmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50Lmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdT KSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtc3RhdGVtZW50LmxvIGB0ZXN0IC1mICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGF0 ZW1lbnQuY3BwCi0rCi0rbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUubG86 ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUu Y3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJ QlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMp ICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFH UykgJChsaWJzb2NpX3Bvc3RncmVzcWxfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJz b2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbyAtTUQgLU1QIC1NRiAkKERFUERJ UikvbGlic29jaV9wb3N0Z3Jlc3FsX2xhLXZlY3Rvci1pbnRvLXR5cGUuVHBvIC1jIC1vIGxpYnNv Y2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNk aXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgfHwgZWNo byAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVj dG9yLWludG8tdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS9saWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5UcG8gJChERVBESVIp L2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItaW50by10eXBlLlBsbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3Rn cmVzcWxfbGEtdmVjdG9yLWludG8tdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNI QAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAk KENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENY WF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVT KSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfcG9zdGdy ZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9wb3N0Z3Jlc3FsX2xh LXZlY3Rvci1pbnRvLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3ZlY3Rvci1pbnRvLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItaW50by10eXBlLmNw cAotKwotK2xpYnNvY2lfcG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG86ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfcG9zdGdyZXNxbF9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfcG9zdGdy ZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lf cG9zdGdyZXNxbF9sYS12ZWN0b3ItdXNlLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lfcG9zdGdyZXNx bF9sYS12ZWN0b3ItdXNlLXR5cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3ZlY3Rvci11c2UtdHlwZS5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX3Bv c3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLlRwbyAkKERFUERJUikvbGlic29jaV9wb3N0Z3Jl c3FsX2xhLXZlY3Rvci11c2UtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhf RkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdmVj dG9yLXVzZS10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVz ZS10eXBlLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBj b21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wp ICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29t cGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9wb3N0Z3Jlc3FsX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX3Bvc3RncmVzcWxfbGEtdmVjdG9yLXVzZS10eXBlLmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3It dXNlLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvYmFj a2VuZHMvcG9zdGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi0rCi0rbW9zdGx5Y2xlYW4tbGli dG9vbDoKLSsJLXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJz IF9saWJzCi0raW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzogJChwa2dpbmNsdWRlX0hFQURFUlMp Ci0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAk KE1LRElSX1ApICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLSsJQGxpc3Q9JyQocGtnaW5j bHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCi0r CWZvciBwIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVs c2UgZD0iJChzcmNkaXIpLyI7IGZpOyBcCi0rCSAgZWNobyAiJCRkJCRwIjsgXAotKwlkb25lIHwg JChhbV9fYmFzZV9saXN0KSB8IFwKLSsJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAotKwkgIGVjaG8g IiAkKElOU1RBTExfSEVBREVSKSAkJGZpbGVzICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSci OyBcCi0rCSAgJChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAiJChERVNURElSKSQocGtnaW5jbHVk ZWRpcikiIHx8IGV4aXQgJCQ/OyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtcGtnaW5jbHVkZUhF QURFUlM6Ci0rCUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVB REVSUyknOyB0ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAotKwlmaWxlcz1g Zm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNlZCAtZSAnc3xeLiovfHwnYDsg XAotKwl0ZXN0IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKLSsJZWNobyAiICggY2QgJyQoREVT VERJUikkKHBrZ2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKLSsJY2QgIiQo REVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVzCi0rCi0rIyBUaGlzIGRp cmVjdG9yeSdzIHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4g Y2QKLSsjIGludG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhp cyBNYWtlZmlsZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6 IGluc3RlYWQgb2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlz IHNldCBpbiBgY29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdo aWNoIHdpbGwgY2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBy dW4gYG1ha2UnKTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9u IHRoZSBgbWFrZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFp bD0gZmFpbGNvbT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0r CSAgY2FzZSAkJGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZh aWxjb209J2ZhaWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49 bm87IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0 PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtp bmcgJCR0YXJnZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4i OyB0aGVuIFwKLSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBc Ci0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9u ZTsgXAotKwlpZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkg JChBTV9NQUtFRkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16 ICIkJGZhaWwiCi0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWls Y29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNl ICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0n ZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAot KwljYXNlICIkQCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBs aXN0PSckKERJU1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBc Ci0rCWVzYWM7IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlm IHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJk aXIgJCRyZXYiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0r CXRhcmdldD1gZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBp biAkJHJldjsgZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwK LSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJn ZXQiOyBcCi0rCSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChB TV9NQUtFRkxBR1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwK LSsJZG9uZSAmJiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQo U1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGly IiA9IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0 YWdzKTsgXAotKwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsg Zm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgk KGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0r CWRvbmUKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVT KQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9u ZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0r CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFn cy1yZWN1cnNpdmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBc Ci0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAot KwlpZiAoJChFVEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYx OyB0aGVuIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0 eV9maXg9LjsgXAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJ ICBlbXB0eV9maXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGly IGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxz ZSBcCi0rCSAgICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRA IiAiJCRpbmNsdWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAot Kwlkb25lOyBcCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1Nf RklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVz dCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBc Ci0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0g MTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHBy aW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1Mp JCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1 bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAg ICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBc Ci0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAk KEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQk dW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3Mt cmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAot KwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAg JChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8g XAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3Jj ZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9 IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3Ig KGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1Mp JCR1bmlxdWUiIFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFH UykgJChDVEFHU19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1g JChhbV9fY2QpICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0 b3Bfc3JjZGlyKSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwot K2Rpc3RjbGVhbi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BB VEggdGFncwotKwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8g IiQoc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2Rp cnN0cmlwPWBlY2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9n J2A7IFwKLSsJbGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxl IGluICQkbGlzdDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNy Y2RpcnN0cmlwL3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9w X2J1aWxkZGlyKS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAk KE1LRElSX1ApIGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8 XnwkKGRpc3RkaXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0r CWVzYWM7IFwKLSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAt ZiAkJGZpbGUgfHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBm aTsgXAotKwkgIGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8g Ii8kJGZpbGUiIHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAi JChkaXN0ZGlyKS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZp bGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAg ICBmaTsgXAotKwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9 ICQoc3JjZGlyKTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChk aXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZp bGUiIC10eXBlIGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAg ICBmaTsgXAotKwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4 aXQgMTsgXAotKwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwK LSsJICAgIHx8IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8 fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47 IHRoZW4gOjsgZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0r CSAgICB8fCAkKE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0 IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Ig c3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4g OjsgZWxzZSBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGly IjsgXAotKwkgICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQkcmVs ZGlyOyBcCi0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJ ICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7 IFwKLSsJICAgIGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykg dG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBc XCI7IFwKLSsJICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVu Z3RoX2NoZWNrPTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgkKGFt X19jZCkgJCRzdWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0r CSAgICAgICAgdG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlz dGRpcj0iJCRuZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1f X3NraXBfbGVuZ3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAgICAg ICAgZGlzdGRpcikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0r Y2hlY2stYW06IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2Vm aWxlICQoTFRMSUJSQVJJRVMpICQoSEVBREVSUykKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMt cmVjdXJzaXZlCi0raW5zdGFsbGRpcnMtYW06Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxp YmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIk JGRpciIgfHwgJChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxs LXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3Rh bGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJl Y3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFH UykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5z dGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAg aW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RS SVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJ TlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3Rs eWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJp YzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdf Q0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJ R19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVT KQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBp cyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBm aWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0 IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5G SUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVy aWMgY2xlYW4tbGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCi0rCW1vc3RseWNsZWFuLWFt Ci0rCi0rZGlzdGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJ UikKLSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4t Y29tcGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBk dmktcmVjdXJzaXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0r aHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5z dGFsbC1kYXRhLWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0raW5zdGFsbC1kdmk6 IGluc3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwt ZXhlYy1hbTogaW5zdGFsbC1saWJMVExJQlJBUklFUwotKwotK2luc3RhbGwtaHRtbDogaW5zdGFs bC1odG1sLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsKLStpbnN0YWxsLWluZm86 IGluc3RhbGwtaW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFs bC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2luc3Rh bGwtcGRmLWFtOgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5z dGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjog bWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0g LWYgTWFrZWZpbGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5l ci1jbGVhbi1nZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQot KwotK21vc3RseWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVy aWMgXAotKwltb3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0r cGRmLWFtOgotKwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwt YW06IHVuaW5zdGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMK LSsKLSsuTUFLRTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VU UykgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVj dXJzaXZlCi0rCi0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lW RV9UQVJHRVRTKSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xl YW4gY2xlYW4tZ2VuZXJpYyBcCi0rCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wg Y3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRp c3RjbGVhbi1nZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlz dGRpciBkdmkgZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGlu c3RhbGwtYW0gaW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGlu c3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0 bWwgaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0 YWxsLWxpYkxUTElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKLSsJaW5zdGFsbC1w ZGYtYW0gaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBzIFwKLSsJaW5zdGFsbC1w cy1hbSBpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gXAotKwlpbnN0 YWxsZGlycyBpbnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1j bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAotKwltb3N0bHlj bGVhbi1nZW5lcmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCi0r CXRhZ3MgdGFncy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCi0rCXVuaW5zdGFs bC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLStAU0VUX01B S0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBl eHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5 c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMubWsgc29jaS0z LjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zb3VyY2VzLm1rCi0tLS0gc29j aS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMubWsJMTk3MC0w MS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29j aS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAw MDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTQgQEAKLStiY2tfcG9zdGdyZXNxbF9oX3NvdXJjZXMg PSBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21t b24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9z b2NpLXBvc3RncmVzcWwuaAotK2Jja19wb3N0Z3Jlc3FsX2NjX3NvdXJjZXMgPSBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9ibG9iLmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9jb21tb24uY3BwIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL2ZhY3Rvcnku Y3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Jv dy1pZC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVz cWwvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvc3RhbmRhcmQtaW50by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9zdGFuZGFyZC11c2UtdHlwZS5jcHAgXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvc3RhdGVtZW50LmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC92ZWN0b3It aW50by10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC92ZWN0b3ItdXNlLXR5cGUuY3BwCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmFtCi0tLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuYW0JMjAwOS0wNC0xNiAxOToz NzowNS4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTggQEAKLSsjIyBjb3JlIHN1Yi1kaXJl Y3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0raW5jbHVkZSAk KHNyY2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUu aW4KLSsKLStpZiBSVU5fVEVTVFMKLSsgIG5vaW5zdF9QUk9HUkFNUyA9IHRlc3RfcG9zdGdyZXNx bAotK2VuZGlmCi0rCi0rdGVzdF9wb3N0Z3Jlc3FsX1NPVVJDRVMgPSAkKHBvc3RncmVzcWxfdGVz dF9jY19zb3VyY2VzKQotK3Rlc3RfcG9zdGdyZXNxbF9DWFhGTEFHUyA9ICQoQk9PU1RfQ0ZMQUdT KQotK3Rlc3RfcG9zdGdyZXNxbF9MREFERCA9Ci0rdGVzdF9wb3N0Z3Jlc3FsX0xERkxBR1MgPSAk KHRvcF9idWlsZGRpcikvc29jaS9jb3JlL2xpYnNvY2lfY29yZS5sYSAtbGRsIFwKLSsJCSQodG9w X2J1aWxkZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvbGlic29jaV9wb3N0Z3Jlc3FsLmxh IFwKLSsJCSQoUE9TVEdSRVNRTF9MREZMQUdTKQotKwotKyNub2Rpc3RfcGtnaW5jbHVkZV9IRUFE RVJTID0gJChwb3N0Z3Jlc3FsX3Rlc3RfaF9zb3VyY2VzKQotZGlmZiAtTnVyIHNvY2ktMy4wLjBf NC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJhc2ljIHNvY2kt My4wLjBfdHJlcDMwMC9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC9NYWtlZmlsZS5iYXNp YwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01h a2VmaWxlLmJhc2ljCTIwMTEtMDctMDMgMTg6NTU6MDYuMzk5ODc3MTUwICswMjAwCi0rKysgc29j aS0zLjAuMF90cmVwMzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmJh c2ljCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAwCi1AQCAtMSwyMiArMCwwIEBA Ci0tIyBUaGUgZm9sbG93aW5nIHZhcmlhYmxlIGlzIHNwZWNpZmljIHRvIHRoaXMgYmFja2VuZCBh bmQgaXRzIGNvcnJlY3QKLS0jIHZhbHVlcyBtaWdodCBkZXBlbmQgb24geW91ciBlbnZpcm9ubWVu dCAtIGZlZWwgZnJlZSB0byBzZXQgaXQgYWNjb3JkaW5nbHkuCi0tCi0tUEdTUUxJTkNMVURFRElS ID0gLUkvdXNyL2luY2x1ZGUKLS1QR1NRTExJQkRJUiA9IC1ML3Vzci9saWIKLS1QR1NRTExJQlMg PSAtbHBxCi0tCi0tIyBUaGUgcmVzdCBvZiB0aGUgTWFrZWZpbGUgaXMgaW5kZXBlbnRlbnQgb2Yg dGhlIHRhcmdldCBlbnZpcm9ubWVudC4KLS0KLS1DT01QSUxFUiA9IGcrKwotLUNYWEZMQUdTID0g LVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVERURJUlMgPSAtSS4uIC1JLi4v Li4vLi4vY29yZS90ZXN0IC1JLi4vLi4vLi4vY29yZSAke1BHU1FMSU5DTFVERURJUn0KLS1MSUJE SVJTID0gLUwuLiAtTC4uLy4uLy4uL2NvcmUgJHtQR1NRTExJQkRJUn0KLS1MSUJTID0gLWxzb2Np X2NvcmUgLWxzb2NpX3Bvc3RncmVzcWwgLWxkbCAke1BHU1FMTElCU30KLS0KLS0KLS10ZXN0LXBv c3RncmVzcWwgOiB0ZXN0LXBvc3RncmVzcWwuY3BwCi0tCSR7Q09NUElMRVJ9IC1vICRAICQ/ICR7 Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9ICR7TElCRElSU30gJHtMSUJTfQotLQotLQotLWNsZWFu IDoKLS0Jcm0gLWYgdGVzdC1wb3N0Z3Jlc3FsCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2sv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVw MzAwL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L01ha2VmaWxlLmluCi0tLS0gc29jaS0z LjAuMF80LXBhY2svc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4JMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUuaW4JMjAxMS0wNy0wMyAxODo0 NDoyOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTYyIEBACi0rIyBNYWtlZmlsZS5pbiBn ZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29uZmln dXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3LCAx OTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwg MjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMgSW5jLgotKyMg VGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0 cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcgYXMg dGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9VVCBB TlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAotKyMg ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG T1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLSsKLStWUEFUSCA9 IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVk ZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQ QUNLQUdFQAotK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAotK2FtX19j ZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStp bnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJP R1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9z aCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQo cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFM TCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5J TlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRA Ci0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZp bGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNkaXIpL3NvdXJjZXMubWsgJCh0 b3Bfc3JjZGlyKS9NYWtlZmlsZS5jb21tb24KLStAUlVOX1RFU1RTX1RSVUVAbm9pbnN0X1BST0dS QU1TID0gdGVzdF9wb3N0Z3Jlc3FsJChFWEVFWFQpCi0rc3ViZGlyID0gc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3QKLStBQ0xPQ0FMX000ID0gJCh0b3Bfc3JjZGlyKS9hY2xvY2FsLm00Ci0r YW1fX2FjbG9jYWxfbTRfZGVwcyA9ICQodG9wX3NyY2RpcikvY29uZmlnL2F4X2Jvb3N0Lm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfbXlzcWwubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9heF9vcmFjbGVfb2NpLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvYXhfcG9zdGdy ZXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2NwcHVuaXQubTQgXAotKwkkKHRvcF9z cmNkaXIpL2NvbmZpZy9saWJ0b29sLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRvcHRp b25zLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHRzdWdhci5tNCBcCi0rCSQodG9wX3Ny Y2RpcikvY29uZmlnL2x0dmVyc2lvbi5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2x0fm9i c29sZXRlLm00ICQodG9wX3NyY2RpcikvY29uZmlndXJlLmFjCi0rYW1fX2NvbmZpZ3VyZV9kZXBz ID0gJChhbV9fYWNsb2NhbF9tNF9kZXBzKSAkKENPTkZJR1VSRV9ERVBFTkRFTkNJRVMpIFwKLSsJ JChBQ0xPQ0FMX000KQotK21raW5zdGFsbGRpcnMgPSAkKGluc3RhbGxfc2gpIC1kCi0rQ09ORklH X0hFQURFUiA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvbmZpZy5oCi0rQ09ORklHX0NMRUFOX0ZJ TEVTID0KLStDT05GSUdfQ0xFQU5fVlBBVEhfRklMRVMgPQotK1BST0dSQU1TID0gJChub2luc3Rf UFJPR1JBTVMpCi0rYW1fX29iamVjdHNfMSA9IHRlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVz cWwuJChPQkpFWFQpCi0rYW1fdGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMgPSAkKGFtX19vYmplY3Rz XzEpCi0rdGVzdF9wb3N0Z3Jlc3FsX09CSkVDVFMgPSAkKGFtX3Rlc3RfcG9zdGdyZXNxbF9PQkpF Q1RTKQotK3Rlc3RfcG9zdGdyZXNxbF9ERVBFTkRFTkNJRVMgPQotK3Rlc3RfcG9zdGdyZXNxbF9M SU5LID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpIFwKLSsJJChMSUJU T09MRkxBR1MpIC0tbW9kZT1saW5rICQoQ1hYTEQpIFwKLSsJJCh0ZXN0X3Bvc3RncmVzcWxfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIFwKLSsJJCh0ZXN0X3Bvc3RncmVzcWxfTERGTEFHUykgJChMREZM QUdTKSAtbyAkQAotK0RFRkFVTFRfSU5DTFVERVMgPSAtSS5AYW1fX2lzcmNAIC1JJCh0b3BfYnVp bGRkaXIpL3NvY2kKLStkZXBjb21wID0gJChTSEVMTCkgJCh0b3Bfc3JjZGlyKS9jb25maWcvZGVw Y29tcAotK2FtX19kZXBmaWxlc19tYXliZSA9IGRlcGZpbGVzCi0rYW1fX212ID0gbXYgLWYKLStD WFhDT01QSUxFID0gJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSBcCi0rCSQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ1hYRkxBR1MpICQoQ1hYRkxB R1MpCi0rTFRDWFhDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQo REVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0NYWExEID0gJChDWFgpCi0rQ1hYTElO SyA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFH UykgXAotKwktLW1vZGU9bGluayAkKENYWExEKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAk KEFNX0xERkxBR1MpIFwKLSsJJChMREZMQUdTKSAtbyAkQAotK1NPVVJDRVMgPSAkKHRlc3RfcG9z dGdyZXNxbF9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQodGVzdF9wb3N0Z3Jlc3FsX1NPVVJD RVMpCi0rRVRBR1MgPSBldGFncwotK0NUQUdTID0gY3RhZ3MKLStESVNURklMRVMgPSAkKERJU1Rf Q09NTU9OKSAkKERJU1RfU09VUkNFUykgJChURVhJTkZPUykgJChFWFRSQV9ESVNUKQotK0FDTE9D QUwgPSBAQUNMT0NBTEAKLStBTVRBUiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9 IEBBVVRPQ09ORkAKLStBVVRPSEVBREVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVU T01BS0VACi0rQVdLID0gQEFXS0AKLStCT09TVF9BU0lPX0xJQiA9IEBCT09TVF9BU0lPX0xJQkAK LStCT09TVF9DRkxBR1MgPSBAQk9PU1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBA Qk9PU1RfREFURV9USU1FX0xJQkAKLStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxF U1lTVEVNX0xJQkAKLStCT09TVF9JT1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJA Ci0rQk9PU1RfTElCUyA9IEBCT09TVF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJ X0xJQkAKLStCT09TVF9NUElfUFlUSE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKLStC T09TVF9QUk9HUkFNX09QVElPTlNfTElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0r Qk9PU1RfUFlUSE9OX0xJQiA9IEBCT09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9 IEBCT09TVF9SRUdFWF9MSUJACi0rQk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VS SUFMSVpBVElPTl9MSUJACi0rQk9PU1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJA Ci0rQk9PU1RfU1lTVEVNX0xJQiA9IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVBRF9M SUIgPSBAQk9PU1RfVEhSRUFEX0xJQkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9 IEBCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NU X1ZFUlNJT05ACi0rQk9PU1RfV1NFUklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFU SU9OX0xJQkAKLStDQyA9IEBDQ0AKLStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9 IEBDRkxBR1NACi0rQ1BQID0gQENQUEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklU X0NGTEFHUyA9IEBDUFBVTklUX0NGTEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NP TkZJR0AKLStDUFBVTklUX0xJQlMgPSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9 IEBDUFBVTklUX1ZFUlNJT05ACi0rQ1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NY WERFUE1PREUgPSBAQ1hYREVQTU9ERUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRI X1cgPSBAQ1lHUEFUSF9XQAotK0RFRlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RM TFRPT0wgPSBARExMVE9PTEAKLStEU1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERV TVBCSU5ACi0rRUNIT19DID0gQEVDSE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9 IEBFQ0hPX1RACi0rRUdSRVAgPSBARUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9 IEBGR1JFUEAKLStHRU5FUklDX0xJQlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVS U0lPTkAKLStHUkVQID0gQEdSRVBACi0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFU QSA9IEBJTlNUQUxMX0RBVEFACi0rSU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAK LStJTlNUQUxMX1NDUklQVCA9IEBJTlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dS QU0gPSBASU5TVEFMTF9TVFJJUF9QUk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERG TEFHU0AKLStMSUJPQkpTID0gQExJQk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBA TElCVE9PTEAKLStMSVBPID0gQExJUE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBM VExJQk9CSlNACi0rTUFLRUlORk8gPSBATUFLRUlORk9ACi0rTUFOSUZFU1RfVE9PTCA9IEBNQU5J RkVTVF9UT09MQAotK01LRElSX1AgPSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxf Q0ZMQUdTQAotK01ZU1FMX0NfTElCID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlT UUxfRElSU0AKLStNWVNRTF9MSUJTID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBN WVNRTF9WRVJTSU9OQAotK05NID0gQE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9 IEBPQkpEVU1QQAotK09CSkVYVCA9IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJ UlNACi0rT1JBQ0xFX09DSV9DRkxBR1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09D SV9MREZMQUdTID0gQE9SQUNMRV9PQ0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBA T1JBQ0xFX09DSV9WRVJTSU9OQAotK09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2 NEAKLStQQUNLQUdFID0gQFBBQ0tBR0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9C VUdSRVBPUlRACi0rUEFDS0FHRV9OQU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklO RyA9IEBQQUNLQUdFX1NUUklOR0AKLStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1F QAotK1BBQ0tBR0VfVVJMID0gQFBBQ0tBR0VfVVJMQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNL QUdFX1ZFUlNJT05ACi0rUEFUSF9TRVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9 IEBQRVJMQAotK1BHX0NPTkZJRyA9IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBA UE9TVEdSRVNRTF9DRkxBR1NACi0rUE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AK LStQT1NUR1JFU1FMX0xERkxBR1MgPSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxf VkVSU0lPTiA9IEBQT1NUR1JFU1FMX1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStTRUQg PSBAU0VEQAotK1NFVF9NQUtFID0gQFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lf SEVBREVSU19CVVJJRUQgPSBAU09DSV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURF UlNfQlVSSUVEID0gQFNPQ0lfTVlTUUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FM X0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJ UCA9IEBTVFJJUEAKLStVUExPQURfQ09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9O ID0gQFZFUlNJT05ACi0rYWJzX2J1aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGly ID0gQGFic19zcmNkaXJACi0rYWJzX3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAot K2Fic190b3Bfc3JjZGlyID0gQGFic190b3Bfc3JjZGlyQAotK2FjX2N0X0FSID0gQGFjX2N0X0FS QAotK2FjX2N0X0NDID0gQGFjX2N0X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNf Y3RfRFVNUEJJTiA9IEBhY19jdF9EVU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRl QAotK2FtX19sZWFkaW5nX2RvdCA9IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFt X19xdW90ZUAKLSthbV9fdGFyID0gQGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAK LStiaW5kaXIgPSBAYmluZGlyQAotK2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1 aWxkX2FsaWFzQAotK2J1aWxkX2NwdSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRf b3NACi0rYnVpbGRfdmVuZG9yID0gQGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRp ckAKLStkYXRhZGlyID0gQGRhdGFkaXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0r ZGlmZl9vayA9IEBkaWZmX29rQAotK2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBk b3h5Z2VuX29rQAotK2R2aWRpciA9IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0r ZXhlY19wcmVmaXggPSBAZXhlY19wcmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBo b3N0QAotK2hvc3RfYWxpYXMgPSBAaG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAK LStob3N0X29zID0gQGhvc3Rfb3NACi0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRt bGRpciA9IEBodG1sZGlyQAotK2luY2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0g QGluZm9kaXJACi0raW5zdGFsbF9zaCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4 X29rQAotK2xpYmRpciA9IEBsaWJkaXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xv Y2FsZWRpciA9IEBsb2NhbGVkaXJACi0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAot K21hbmRpciA9IEBtYW5kaXJACi0rbWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIg PSBAb2xkaW5jbHVkZWRpckAKLStwZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhA Ci0rcHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3Bz ZGlyID0gQHBzZGlyQAotK3NiaW5kaXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAot K3NoYXJlZHN0YXRlZGlyID0gQHNoYXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0r c3lzY29uZmRpciA9IEBzeXNjb25mZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNA Ci0rdG9wX2J1aWxkX3ByZWZpeCA9IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9 IEB0b3BfYnVpbGRkaXJACi0rdG9wX3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdT ID0gLUkkKHRvcF9idWlsZGRpcikgLUkkKHRvcF9zcmNkaXIpCi0rcG9zdGdyZXNxbF90ZXN0X2hf c291cmNlcyA9IAotK3Bvc3RncmVzcWxfdGVzdF9jY19zb3VyY2VzID0gJCh0b3Bfc3JjZGlyKS9z b2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi0rTUFJTlRB SU5FUkNMRUFORklMRVMgPSBNYWtlZmlsZS5pbgotK3Rlc3RfcG9zdGdyZXNxbF9TT1VSQ0VTID0g JChwb3N0Z3Jlc3FsX3Rlc3RfY2Nfc291cmNlcykKLSt0ZXN0X3Bvc3RncmVzcWxfQ1hYRkxBR1Mg PSAkKEJPT1NUX0NGTEFHUykKLSt0ZXN0X3Bvc3RncmVzcWxfTERBREQgPSAKLSt0ZXN0X3Bvc3Rn cmVzcWxfTERGTEFHUyA9ICQodG9wX2J1aWxkZGlyKS9zb2NpL2NvcmUvbGlic29jaV9jb3JlLmxh IC1sZGwgXAotKwkJJCh0b3BfYnVpbGRkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC9saWJz b2NpX3Bvc3RncmVzcWwubGEgXAotKwkJJChQT1NUR1JFU1FMX0xERkxBR1MpCi0rCi0rYWxsOiBh bGwtYW0KLSsKLSsuU1VGRklYRVM6Ci0rLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2JqCi0rJChz cmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2Rpcikv TWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3VyZV9kZXBz KQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3VyZV9kZXBz KScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxkZGlyKSAm JiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAgICAmJiB7 IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAotKwkgICAg ICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAkKHRvcF9z cmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0 L01ha2VmaWxlJzsgXAotKwkkKGFtX19jZCkgJCh0b3Bfc3JjZGlyKSAmJiBcCi0rCSAgJChBVVRP TUFLRSkgLS1nbnUgc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvTWFrZWZpbGUKLSsuUFJF Q0lPVVM6IE1ha2VmaWxlCi0rTWFrZWZpbGU6ICQoc3JjZGlyKS9NYWtlZmlsZS5pbiAkKHRvcF9i dWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlAY2FzZSAnJD8nIGluIFwKLSsJICAqY29uZmlnLnN0 YXR1cyopIFwKLSsJICAgIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZM QUdTKSBhbS0tcmVmcmVzaDs7IFwKLSsJICAqKSBcCi0rCSAgICBlY2hvICcgY2QgJCh0b3BfYnVp bGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVw ZmlsZXNfbWF5YmUpJzsgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4v Y29uZmlnLnN0YXR1cyAkKHN1YmRpcikvJEAgJChhbV9fZGVwZmlsZXNfbWF5YmUpOzsgXAotKwll c2FjOwotKwotKyQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzOiAkKHRvcF9zcmNkaXIpL2Nv bmZpZ3VyZSAkKENPTkZJR19TVEFUVVNfREVQRU5ERU5DSUVTKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSsKLSskKHRvcF9zcmNk aXIpL2NvbmZpZ3VyZTogICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRp cikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKEFDTE9DQUxfTTQp OiAgJChhbV9fYWNsb2NhbF9tNF9kZXBzKQotKwljZCAkKHRvcF9idWlsZGRpcikgJiYgJChNQUtF KSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2gKLSskKGFtX19hY2xvY2FsX200X2RlcHMpOgot KwotK2NsZWFuLW5vaW5zdFBST0dSQU1TOgotKwlAbGlzdD0nJChub2luc3RfUFJPR1JBTVMpJzsg dGVzdCAtbiAiJCRsaXN0IiB8fCBleGl0IDA7IFwKLSsJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwK LSsJcm0gLWYgJCRsaXN0IHx8IGV4aXQgJCQ/OyBcCi0rCXRlc3QgLW4gIiQoRVhFRVhUKSIgfHwg ZXhpdCAwOyBcCi0rCWxpc3Q9YGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8 IHNlZCAncy8kKEVYRUVYVCkkJC8vJ2A7IFwKLSsJZWNobyAiIHJtIC1mIiAkJGxpc3Q7IFwKLSsJ cm0gLWYgJCRsaXN0Ci0rdGVzdF9wb3N0Z3Jlc3FsJChFWEVFWFQpOiAkKHRlc3RfcG9zdGdyZXNx bF9PQkpFQ1RTKSAkKHRlc3RfcG9zdGdyZXNxbF9ERVBFTkRFTkNJRVMpIAotKwlAcm0gLWYgdGVz dF9wb3N0Z3Jlc3FsJChFWEVFWFQpCi0rCSQodGVzdF9wb3N0Z3Jlc3FsX0xJTkspICQodGVzdF9w b3N0Z3Jlc3FsX09CSkVDVFMpICQodGVzdF9wb3N0Z3Jlc3FsX0xEQUREKSAkKExJQlMpCi0rCi0r bW9zdGx5Y2xlYW4tY29tcGlsZToKLSsJLXJtIC1mICouJChPQkpFWFQpCi0rCi0rZGlzdGNsZWFu LWNvbXBpbGU6Ci0rCS1ybSAtZiAqLnRhYi5jCi0rCi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRl QCBAYW1fX3F1b3RlQC4vJChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwu UG9AYW1fX3F1b3RlQAotKwotKy5jcHAubzoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhD T01QSUxFKSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJ UikvJCouUG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJDwn IG9iamVjdD0nJEAnIGxpYnRvb2w9bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVw Y29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFhDT01Q SUxFKSAtYyAtbyAkQCAkPAotKwotKy5jcHAub2JqOgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkk KENYWENPTVBJTEUpIC1NVCAkQCAtTUQgLU1QIC1NRiAkKERFUERJUikvJCouVHBvIC1jIC1vICRA IGAkKENZR1BBVEhfVykgJyQ8J2AKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQo REVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRAJyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8gJEAgYCQoQ1lHUEFUSF9XKSAnJDwnYAot KwotKy5jcHAubG86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTFRDWFhDT01QSUxFKSAtTVQg JEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCAkPAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpLyQqLlRwbyAkKERFUERJUikvJCouUGxvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRA JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExUQ1hYQ09NUElMRSkgLWMg LW8gJEAgJDwKLSsKLSt0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm86ICQodG9wX3Ny Y2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAot K0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMp ICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3Fs X0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNx bC5vIC1NRCAtTVAgLU1GICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3Fs LlRwbyAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3Fs LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5UcG8g JChERVBESVIpL3Rlc3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuUG8KLStAQU1ERVBfVFJV RUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tl bmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwJyBvYmplY3Q9J3Rlc3RfcG9z dGdyZXNxbC10ZXN0LXBvc3RncmVzcWwubycgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hY REVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZB TFNFQAkkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1f Q1BQRkxBR1MpICQoQ1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZM QUdTKSAtYyAtbyB0ZXN0X3Bvc3RncmVzcWwtdGVzdC1wb3N0Z3Jlc3FsLm8gYHRlc3QgLWYgJyQo dG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3Fs LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bv c3RncmVzcWwvdGVzdC90ZXN0LXBvc3RncmVzcWwuY3BwCi0rCi0rdGVzdF9wb3N0Z3Jlc3FsLXRl c3QtcG9zdGdyZXNxbC5vYmo6ICQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0Z3Jlc3Fs L3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKENYWCkg JChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQo Q1BQRkxBR1MpICQodGVzdF9wb3N0Z3Jlc3FsX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgdGVz dF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmogLU1EIC1NUCAtTUYgJChERVBESVIpL3Rl c3RfcG9zdGdyZXNxbC10ZXN0LXBvc3RncmVzcWwuVHBvIC1jIC1vIHRlc3RfcG9zdGdyZXNxbC10 ZXN0LXBvc3RncmVzcWwub2JqIGBpZiB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvYmFja2Vu ZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyB0aGVuICQoQ1lHUEFUSF9X KSAnJCh0b3Bfc3JjZGlyKS9zb2NpL2JhY2tlbmRzL3Bvc3RncmVzcWwvdGVzdC90ZXN0LXBvc3Rn cmVzcWwuY3BwJzsgZWxzZSAkKENZR1BBVEhfVykgJyQoc3JjZGlyKS8kKHRvcF9zcmNkaXIpL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAnOyBmaWAKLStA YW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS90ZXN0X3Bvc3RncmVzcWwt dGVzdC1wb3N0Z3Jlc3FsLlRwbyAkKERFUERJUikvdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdy ZXNxbC5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5j cHAnIG9iamVjdD0ndGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9zdGdyZXNxbC5vYmonIGxpYnRvb2w9 bm8gQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xV REVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKHRlc3RfcG9zdGdy ZXNxbF9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gdGVzdF9wb3N0Z3Jlc3FsLXRlc3QtcG9z dGdyZXNxbC5vYmogYGlmIHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9iYWNrZW5kcy9wb3N0 Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IHRoZW4gJChDWUdQQVRIX1cpICckKHRv cF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5j cHAnOyBlbHNlICQoQ1lHUEFUSF9XKSAnJChzcmNkaXIpLyQodG9wX3NyY2Rpcikvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3QvdGVzdC1wb3N0Z3Jlc3FsLmNwcCc7IGZpYAotKwotK21vc3Rs eWNsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtZiAqLmxvCi0rCi0rY2xlYW4tbGlidG9vbDoKLSsJLXJt IC1yZiAubGlicyBfbGlicwotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAk KFRBR1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFH U19GSUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0 ZXN0IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7 IFwKLSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkg PSAxOyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykg cHJpbnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsK LStUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0r CQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJc2hpZnQ7IFwKLSsJaWYgdGVzdCAteiAiJChFVEFHU19BUkdTKSQkKiQkdW5pcXVlIjsg dGhlbiA6OyBlbHNlIFwKLSsJICB0ZXN0IC1uICIkJHVuaXF1ZSIgfHwgdW5pcXVlPSQkZW1wdHlf Zml4OyBcCi0rCSAgaWYgdGVzdCAkJCMgLWd0IDA7IHRoZW4gXAotKwkgICAgJChFVEFHUykgJChF VEFHU0ZMQUdTKSAkKEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAiJCRA IiAkJHVuaXF1ZTsgXAotKwkgIGVsc2UgXAotKwkgICAgJChFVEFHUykgJChFVEFHU0ZMQUdTKSAk KEFNX0VUQUdTRkxBR1MpICQoRVRBR1NfQVJHUykgXAotKwkgICAgICAkJHVuaXF1ZTsgXAotKwkg IGZpOyBcCi0rCWZpCi0rY3RhZ3M6IENUQUdTCi0rQ1RBR1M6ICAkKEhFQURFUlMpICQoU09VUkNF UykgICQoVEFHU19ERVBFTkRFTkNJRVMpIFwKLSsJCSQoVEFHU19GSUxFUykgJChMSVNQKQotKwls aXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgICQoTElTUCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJ dW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRo ZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2RpcikvJCRpOyBmaTsgXAotKwkgIGRvbmUgfCBc Ci0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBub25lbXB0eSA9IDE7IH0gXAotKwkgICAg ICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGluIGZpbGVzKSBwcmludCBpOyB9OyB9J2A7 IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5pcXVlIiBcCi0rCSAgfHwgJChDVEFHUykg JChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQoQ1RBR1NfQVJHUykgXAotKwkgICAgICQk dW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1fX2NkKSAkKHRvcF9idWlsZGRpcikgJiYg cHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3NyY2RpcikgXAotKwkgICYmIGd0YWdzIC1p ICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRB R1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRhZ3MKLSsKLStkaXN0ZGlyOiAkKERJU1RG SUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwgc2VkICdzL1tdLlteJCRc XCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJpcD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIg fCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7 IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAkJGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBk b25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJzdHJpcC98fDt0IiBcCi0rCSAgICAgIC1l ICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWlsZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAk JGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJUl9QKSBgZWNobyAiJCRkaXN0X2ZpbGVz IiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChkaXN0ZGlyKS98O3MsL1teL10qJCQsLCcg fCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2FjOyBcCi0rCWZvciBmaWxlIGluICQkZGlz dF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRmaWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0 aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwKLSsJICBpZiB0ZXN0IC1kICQkZC8kJGZp bGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRmaWxlIiB8IHNlZCAtZSAncywvW14vXSok JCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlzdGRpcikvJCRmaWxlIjsgdGhlbiBcCi0r CSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhl YyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGlmIHRlc3QgLWQgJChz cmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNyY2Rpcik7IHRoZW4gXAotKwkgICAgICBj cCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0r CSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAtdHlwZSBkICEgLXBlcm0gLTcwMCAtZXhl YyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQk ZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7IFwKLSsJICBlbHNlIFwKLSsJICAgIHRl c3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBjcCAtcCAkJGQvJCRmaWxlICIk KGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9u ZQotK2NoZWNrLWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stYW0KLSthbGwtYW06IE1ha2VmaWxl ICQoUFJPR1JBTVMpCi0raW5zdGFsbGRpcnM6Ci0raW5zdGFsbDogaW5zdGFsbC1hbQotK2luc3Rh bGwtZXhlYzogaW5zdGFsbC1leGVjLWFtCi0raW5zdGFsbC1kYXRhOiBpbnN0YWxsLWRhdGEtYW0K LSt1bmluc3RhbGw6IHVuaW5zdGFsbC1hbQotKwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChN QUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwot K2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLWFtCi0raW5zdGFsbC1zdHJpcDoKLSsJJChNQUtF KSAkKEFNX01BS0VGTEFHUykgSU5TVEFMTF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIFwKLSsJICBpbnN0YWxsX3NoX1BST0dSQU09IiQoSU5TVEFMTF9TVFJJUF9QUk9HUkFNKSIg SU5TVEFMTF9TVFJJUF9GTEFHPS1zIFwKLSsJICBgdGVzdCAteiAnJChTVFJJUCknIHx8IFwKLSsJ ICAgIGVjaG8gIklOU1RBTExfUFJPR1JBTV9FTlY9U1RSSVBQUk9HPSckKFNUUklQKSciYCBpbnN0 YWxsCi0rbW9zdGx5Y2xlYW4tZ2VuZXJpYzoKLSsKLStjbGVhbi1nZW5lcmljOgotKwotK2Rpc3Rj bGVhbi1nZW5lcmljOgotKwktdGVzdCAteiAiJChDT05GSUdfQ0xFQU5fRklMRVMpIiB8fCBybSAt ZiAkKENPTkZJR19DTEVBTl9GSUxFUykKLSsJLXRlc3QgLiA9ICIkKHNyY2RpcikiIHx8IHRlc3Qg LXogIiQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5f VlBBVEhfRklMRVMpCi0rCi0rbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljOgotKwlAZWNobyAiVGhp cyBjb21tYW5kIGlzIGludGVuZGVkIGZvciBtYWludGFpbmVycyB0byB1c2UiCi0rCUBlY2hvICJp dCBkZWxldGVzIGZpbGVzIHRoYXQgbWF5IHJlcXVpcmUgc3BlY2lhbCB0b29scyB0byByZWJ1aWxk LiIKLSsJLXRlc3QgLXogIiQoTUFJTlRBSU5FUkNMRUFORklMRVMpIiB8fCBybSAtZiAkKE1BSU5U QUlORVJDTEVBTkZJTEVTKQotK2NsZWFuOiBjbGVhbi1hbQotKwotK2NsZWFuLWFtOiBjbGVhbi1n ZW5lcmljIGNsZWFuLWxpYnRvb2wgY2xlYW4tbm9pbnN0UFJPR1JBTVMgXAotKwltb3N0bHljbGVh bi1hbQotKwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLWFtCi0rCS1ybSAtcmYgLi8kKERFUERJUikK LSsJLXJtIC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29t cGlsZSBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmkt YW0KLSsKLStkdmktYW06Ci0rCi0raHRtbDogaHRtbC1hbQotKwotK2h0bWwtYW06Ci0rCi0raW5m bzogaW5mby1hbQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRhLWFtOgotKwotK2luc3Rh bGwtZHZpOiBpbnN0YWxsLWR2aS1hbQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwt ZXhlYy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1hbQotKwotK2luc3RhbGwt aHRtbC1hbToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwtaW5mby1hbQotKwotK2luc3RhbGwt aW5mby1hbToKLSsKLStpbnN0YWxsLW1hbjoKLSsKLStpbnN0YWxsLXBkZjogaW5zdGFsbC1wZGYt YW0KLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBzOiBpbnN0YWxsLXBzLWFtCi0r Ci0raW5zdGFsbC1wcy1hbToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1j bGVhbjogbWFpbnRhaW5lci1jbGVhbi1hbQotKwktcm0gLXJmIC4vJChERVBESVIpCi0rCS1ybSAt ZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBtYWludGFpbmVy LWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tYW0KLSsKLSttb3N0 bHljbGVhbi1hbTogbW9zdGx5Y2xlYW4tY29tcGlsZSBtb3N0bHljbGVhbi1nZW5lcmljIFwKLSsJ bW9zdGx5Y2xlYW4tbGlidG9vbAotKwotK3BkZjogcGRmLWFtCi0rCi0rcGRmLWFtOgotKwotK3Bz OiBwcy1hbQotKwotK3BzLWFtOgotKwotK3VuaW5zdGFsbC1hbToKLSsKLSsuTUFLRTogaW5zdGFs bC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBDVEFHUyBHVEFHUyBhbGwgYWxsLWFtIGNo ZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVhbi1saWJ0b29sIGNsZWFu LW5vaW5zdFBST0dSQU1TIGN0YWdzIGRpc3RjbGVhbiBcCi0rCWRpc3RjbGVhbi1jb21waWxlIGRp c3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKLSsJZGlzdGNsZWFuLXRhZ3MgZGlz dGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8tYW0gXAotKwlpbnN0YWxsIGlu c3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBpbnN0YWxsLWR2aSBcCi0rCWlu c3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMtYW0gaW5zdGFsbC1odG1sIFwK LSsJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxsLWluZm8tYW0gaW5zdGFsbC1t YW4gXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0YWxsLXBzIGluc3RhbGwtcHMt YW0gXAotKwlpbnN0YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gaW5zdGFs bGRpcnMgXAotKwltYWludGFpbmVyLWNsZWFuIG1haW50YWluZXItY2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbiBcCi0rCW1vc3RseWNsZWFuLWNvbXBpbGUgbW9zdGx5Y2xlYW4tZ2VuZXJpYyBtb3N0 bHljbGVhbi1saWJ0b29sIFwKLSsJcGRmIHBkZi1hbSBwcyBwcy1hbSB0YWdzIHVuaW5zdGFsbCB1 bmluc3RhbGwtYW0KLSsKLStAU0VUX01BS0VACi0rCi0rI25vZGlzdF9wa2dpbmNsdWRlX0hFQURF UlMgPSAkKHBvc3RncmVzcWxfdGVzdF9oX3NvdXJjZXMpCi0rCi0rIyBUZWxsIHZlcnNpb25zIFsz LjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90 aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRl ZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9iYWNrZW5k cy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tayBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNr ZW5kcy9wb3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tawotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3Nv Y2kvYmFja2VuZHMvcG9zdGdyZXNxbC90ZXN0L3NvdXJjZXMubWsJMTk3MC0wMS0wMSAwMTowMDow MC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9iYWNrZW5kcy9w b3N0Z3Jlc3FsL3Rlc3Qvc291cmNlcy5tawkyMDA5LTA0LTE2IDE5OjM3OjA1LjAwMDAwMDAwMCAr MDIwMAotQEAgLTAsMCArMSwyIEBACi0rcG9zdGdyZXNxbF90ZXN0X2hfc291cmNlcyA9Ci0rcG9z dGdyZXNxbF90ZXN0X2NjX3NvdXJjZXMgPSAkKHRvcF9zcmNkaXIpL3NvY2kvYmFja2VuZHMvcG9z dGdyZXNxbC90ZXN0L3Rlc3QtcG9zdGdyZXNxbC5jcHAKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQt cGFjay9zb2NpL2NvbmZpZy5oLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvbmZpZy5oLmlu Ci0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb25maWcuaC5pbgkxOTcwLTAxLTAxIDAxOjAw OjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvbmZpZy5o LmluCTIwMTEtMDctMDMgMTg6NDQ6MjYuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDE1OCBA QAotKy8qIHNvY2kvY29uZmlnLmguaW4uICBHZW5lcmF0ZWQgZnJvbSBjb25maWd1cmUuYWMgYnkg YXV0b2hlYWRlci4gICovCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdCBsaWJyYXJ5IGlzIGF2 YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29z dDo6QXNpbyBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX0FTSU8K LSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpEYXRlX1RpbWUgbGlicmFyeSBpcyBhdmFpbGFi bGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9EQVRFX1RJTUUKLSsKLSsvKiBkZWZpbmUgaWYgdGhl IEJvb3N0OjpGSUxFU1lTVEVNIGxpYnJhcnkgaXMgYXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVf Qk9PU1RfRklMRVNZU1RFTQotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OklPU3RyZWFtcyBs aWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX0lPU1RSRUFNUwotKwot Ky8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6Ok1waSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1 bmRlZiBIQVZFX0JPT1NUX01QSQotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6Ok1waV9QeXRo b24gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9NUElfUFlUSE9O Ci0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6UFJPR1JBTV9PUFRJT05TIGxpYnJhcnkgaXMg YXZhaWxhYmxlICovCi0rI3VuZGVmIEhBVkVfQk9PU1RfUFJPR1JBTV9PUFRJT05TCi0rCi0rLyog ZGVmaW5lIGlmIHRoZSBCb29zdDo6UmVnZXggbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5k ZWYgSEFWRV9CT09TVF9SRUdFWAotKwotKy8qIGRlZmluZSBpZiB0aGUgQm9vc3Q6OlNlcmlhbGl6 YXRpb24gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9TRVJJQUxJ WkFUSU9OCi0rCi0rLyogZGVmaW5lIGlmIHRoZSBCb29zdDo6U2lnbmFscyBsaWJyYXJ5IGlzIGF2 YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZFX0JPT1NUX1NJR05BTFMKLSsKLSsvKiBkZWZpbmUgaWYg dGhlIEJvb3N0OjpTWVNURU0gbGlicmFyeSBpcyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9C T09TVF9TWVNURU0KLSsKLSsvKiBkZWZpbmUgaWYgdGhlIEJvb3N0OjpUSFJFQUQgbGlicmFyeSBp cyBhdmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9CT09TVF9USFJFQUQKLSsKLSsvKiBkZWZpbmUg aWYgdGhlIEJvb3N0OjpVbml0X3Rlc3RfZnJhbWV3b3JrIGxpYnJhcnkgaXMgYXZhaWxhYmxlICov Ci0rI3VuZGVmIEhBVkVfQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SSwotKwotKy8qIERlZmluZSB0 byAxIGlmIHlvdSBoYXZlIHRoZSA8Y21hdGg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZF X0NNQVRICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxkZXF1ZT4gaGVhZGVy IGZpbGUuICovCi0rI3VuZGVmIEhBVkVfREVRVUUKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgPGRsZmNuLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0RMRkNOX0gK LSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGZzdHJlYW0+IGhlYWRlciBmaWxl LiAqLwotKyN1bmRlZiBIQVZFX0ZTVFJFQU0KLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgPGludHR5cGVzLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0lOVFRZUEVT X0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPGlvbWFuaXA+IGhlYWRlciBm aWxlLiAqLwotKyN1bmRlZiBIQVZFX0lPTUFOSVAKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3Ug aGF2ZSB0aGUgPGlvc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9JT1NUUkVB TQotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSA8bGltaXRzPiBoZWFkZXIgZmls ZS4gKi8KLSsjdW5kZWYgSEFWRV9MSU1JVFMKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2 ZSB0aGUgPGxpc3Q+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX0xJU1QKLSsKLSsvKiBE ZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPG1hcD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVm IEhBVkVfTUFQCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxtZW1vcnkuaD4g aGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfTUVNT1JZX0gKLSsKLSsvKiBEZWZpbmUgdG8g MSBpZiB0aGUgT3JhY2xlIE9DSSBsaWJyYXJ5IGlzIGF2YWlsYWJsZSAqLwotKyN1bmRlZiBIQVZF X09SQUNMRQotKwotKy8qIERlZmluZSB0byAxIGlmIFBvc3RncmVTUUwgbGlicmFyaWVzIGFyZSBh dmFpbGFibGUgKi8KLSsjdW5kZWYgSEFWRV9QT1NUR1JFU1FMCi0rCi0rLyogRGVmaW5lIHRvIDEg aWYgeW91IGhhdmUgdGhlIDxxdWV1ZT4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfUVVF VUUKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHNldD4gaGVhZGVyIGZpbGUu ICovCi0rI3VuZGVmIEhBVkVfU0VUCi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhl IDxzc3RyZWFtPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9TU1RSRUFNCi0rCi0rLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRleGNlcHQ+IGhlYWRlciBmaWxlLiAqLwot KyN1bmRlZiBIQVZFX1NUREVYQ0VQVAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8c3RkaW50Lmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NURElOVF9ICi0rCi0r LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdGRsaWIuaD4gaGVhZGVyIGZpbGUuICov Ci0rI3VuZGVmIEhBVkVfU1RETElCX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0 aGUgPHN0cmluZz4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1RSSU5HCi0rCi0rLyog RGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzdHJpbmdzLmg+IGhlYWRlciBmaWxlLiAqLwot KyN1bmRlZiBIQVZFX1NUUklOR1NfSAotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRo ZSA8c3RyaW5nLmg+IGhlYWRlciBmaWxlLiAqLwotKyN1bmRlZiBIQVZFX1NUUklOR19ICi0rCi0r LyogRGVmaW5lIHRvIDEgaWYgeW91IGhhdmUgdGhlIDxzeXMvc3RhdC5oPiBoZWFkZXIgZmlsZS4g Ki8KLSsjdW5kZWYgSEFWRV9TWVNfU1RBVF9ICi0rCi0rLyogRGVmaW5lIHRvIDEgaWYgeW91IGhh dmUgdGhlIDxzeXMvdHlwZXMuaD4gaGVhZGVyIGZpbGUuICovCi0rI3VuZGVmIEhBVkVfU1lTX1RZ UEVTX0gKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHVuaXN0ZC5oPiBoZWFk ZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9VTklTVERfSAotKwotKy8qIERlZmluZSB0byAxIGlm IHlvdSBoYXZlIHRoZSA8dmVjdG9yPiBoZWFkZXIgZmlsZS4gKi8KLSsjdW5kZWYgSEFWRV9WRUNU T1IKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIHN1Yi1kaXJlY3RvcnkgaW4gd2hpY2ggbGlidG9vbCBz dG9yZXMgdW5pbnN0YWxsZWQgbGlicmFyaWVzLgotKyAgICovCi0rI3VuZGVmIExUX09CSkRJUgot KwotKy8qIE5hbWUgb2YgcGFja2FnZSAqLwotKyN1bmRlZiBQQUNLQUdFCi0rCi0rLyogRGVmaW5l IHRvIHRoZSBhZGRyZXNzIHdoZXJlIGJ1ZyByZXBvcnRzIGZvciB0aGlzIHBhY2thZ2Ugc2hvdWxk IGJlIHNlbnQuICovCi0rI3VuZGVmIFBBQ0tBR0VfQlVHUkVQT1JUCi0rCi0rLyogRGVmaW5lIHRv IHRoZSBmdWxsIG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLwotKyN1bmRlZiBQQUNLQUdFX05BTUUK LSsKLSsvKiBEZWZpbmUgdG8gdGhlIGZ1bGwgbmFtZSBhbmQgdmVyc2lvbiBvZiB0aGlzIHBhY2th Z2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfU1RSSU5HCi0rCi0rLyogRGVmaW5lIHRvIHRoZSBvbmUg c3ltYm9sIHNob3J0IG5hbWUgb2YgdGhpcyBwYWNrYWdlLiAqLwotKyN1bmRlZiBQQUNLQUdFX1RB Uk5BTUUKLSsKLSsvKiBEZWZpbmUgdG8gdGhlIGhvbWUgcGFnZSBmb3IgdGhpcyBwYWNrYWdlLiAq LwotKyN1bmRlZiBQQUNLQUdFX1VSTAotKwotKy8qIERlZmluZSB0byB0aGUgdmVyc2lvbiBvZiB0 aGlzIHBhY2thZ2UuICovCi0rI3VuZGVmIFBBQ0tBR0VfVkVSU0lPTgotKwotKy8qIERlZmluZSBp ZiB5b3Ugd2FudCBleGNlcHRpb25zIGhhbmRsaW5nICovCi0rI3VuZGVmIFNPQ0lfRVhDRVBUSU9O UwotKwotKy8qIERlZmluZSB0byAxIGlmIHlvdSBoYXZlIHRoZSBBTlNJIEMgaGVhZGVyIGZpbGVz LiAqLwotKyN1bmRlZiBTVERDX0hFQURFUlMKLSsKLSsvKiBEZWZpbmUgdG8gMSBpZiB5b3UgY2Fu IHNhZmVseSBpbmNsdWRlIGJvdGggPHN5cy90aW1lLmg+IGFuZCA8dGltZS5oPi4gKi8KLSsjdW5k ZWYgVElNRV9XSVRIX1NZU19USU1FCi0rCi0rLyogVmVyc2lvbiBudW1iZXIgb2YgcGFja2FnZSAq LwotKyN1bmRlZiBWRVJTSU9OCi1kaWZmIC1OdXIgc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3Jl L01ha2VmaWxlLmFtIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYW0KLS0t LSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL01h a2VmaWxlLmFtCTIwMDktMDUtMDYgMDA6Mjg6MTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsx LDI5IEBACi0rIyMgY29yZSBzdWItZGlyZWN0b3J5Ci0raW5jbHVkZSAkKHRvcF9zcmNkaXIpL01h a2VmaWxlLmNvbW1vbgotK2luY2x1ZGUgJChzcmNkaXIpL3NvdXJjZXMubWsKLSsKLStNQUlOVEFJ TkVSQ0xFQU5GSUxFUyA9IE1ha2VmaWxlLmluCi0rCi0rU1VCRElSUyA9IC4gdGVzdAotKwotKyNF WFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkgPSAuX3Jvdy5jcHAgLl9zb2NpLXNpbXBs ZS5jcHAgLl9zb2NpLXNpbXBsZS5oIC5fdmFsdWVzLWV4Y2hhbmdlLmgKLSsKLStFWFRSQV9ESVNU ID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkpCi0rCi0rbGliX0xUTElCUkFS SUVTPSBsaWJzb2NpX2NvcmUubGEKLSsKLStsaWJzb2NpX2NvcmVfbGFfU09VUkNFUz0gJChjb3Jl X2hfc291cmNlcykgJChjb3JlX2NjX3NvdXJjZXMpIAotK2xpYnNvY2lfY29yZV9sYV9DWFhGTEFH UyA9Ci0rbGlic29jaV9jb3JlX2xhX0xJQkFERCA9Ci0rbGlic29jaV9jb3JlX2xhX0xERkxBR1Mg PSBcCi0rCSQoQk9PU1RfTElCUykgJChCT09TVF9EQVRFX1RJTUVfTElCKSAkKEJPT1NUX1BST0dS QU1fT1BUSU9OU19MSUIpIFwKLSsJLXZlcnNpb24taW5mbyAkKEdFTkVSSUNfTElCUkFSWV9WRVJT SU9OKQotKwotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV9oX3NvdXJjZXMpCi0raWYgU09D SV9IRUFERVJTX0JVUklFRAotK3NvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpL3NvY2kv Y29yZQotK2Vsc2UKLStzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK2VuZGlmCi0r cGtnaW5jbHVkZWRpciA9ICQoc29jaV9pbmNsdWRlX2RpcikKLSsKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMgc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvY29yZS9NYWtlZmlsZS5iYXNpYwotLS0tIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9N YWtlZmlsZS5iYXNpYwkyMDExLTA3LTAzIDE4OjU1OjA2LjM5Mjg3NzE4NyArMDIwMAotKysrIHNv Y2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUvTWFrZWZpbGUuYmFzaWMJMTk3MC0wMS0wMSAwMTow MDowMC4wMDAwMDAwMDAgKzAxMDAKLUBAIC0xLDc2ICswLDAgQEAKLS1DT01QSUxFUiA9IGcrKwot LUNYWEZMQUdTID0gLVdhbGwgLXBlZGFudGljIC1Xbm8tbG9uZy1sb25nCi0tSU5DTFVERURJUlMg PSAKLS1PQkpTID0gIHNlc3Npb24ubyBzdGF0ZW1lbnQubyByb3cubyB2YWx1ZXMubyBcCi0tCWlu dG8tdHlwZS5vIHVzZS10eXBlLm8gXAotLQlibG9iLm8gcm93aWQubyBwcm9jZWR1cmUubyByZWYt Y291bnRlZC1wcmVwYXJlLWluZm8ubyByZWYtY291bnRlZC1zdGF0ZW1lbnQubyBcCi0tCW9uY2Ut dGVtcC10eXBlLm8gcHJlcGFyZS10ZW1wLXR5cGUubyBlcnJvci5vIHRyYW5zYWN0aW9uLm8gYmFj a2VuZC1sb2FkZXIubyBcCi0tCWNvbm5lY3Rpb24tcG9vbC5vIHNvY2ktc2ltcGxlLm8KLS0KLS0K LS1saWJzb2NpX2NvcmUuYSA6ICR7T0JKU30gCi0tCWFyIHJ2ICRAICQ/Ci0tCXJtICoubwotLQot LXNoYXJlZCA6ICR7T0JKU30gCi0tCSR7Q09NUElMRVJ9IC1mUElDIC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCSR7Q09NUElMRVJ9IC1zaGFyZWQgLW8gbGlic29jaV9jb3JlLnNv ICR7T0JKU30gCi0tCXJtICoubwotLQotLXNlc3Npb24ubyA6IHNlc3Npb24uY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tc3RhdGVtZW50Lm8g OiBzdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVE RURJUlN9Ci0tCi0tcm93Lm8gOiByb3cuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxB R1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tdmFsdWVzLm8gOiB2YWx1ZXMuY3BwCi0tCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0taW50by10eXBlLm8gOiBp bnRvLXR5cGUuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJ UlN9Ci0tCi0tdXNlLXR5cGUubyA6IHVzZS10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAk e0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQkKLS1ibG9iLm8gOiBibG9iLmNwcAotLQkke0NP TVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWVycm9yLm8gOiBl cnJvci5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K LS0KLS1yb3dpZC5vIDogcm93aWQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tcHJvY2VkdXJlLm8gOiBwcm9jZWR1cmUuY3BwCi0tCSR7Q09N UElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcmVmLWNvdW50ZWQt cHJlcGFyZS1pbmZvLm8gOiByZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCi0tCSR7Q09NUElM RVJ9IC1jICQ/ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tcmVmLWNvdW50ZWQtc3Rh dGVtZW50Lm8gOiByZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ ICR7Q1hYRkxBR1N9ICR7SU5DTFVERURJUlN9Ci0tCi0tb25jZS10ZW1wLXR5cGUubyA6IG9uY2Ut dGVtcC10eXBlLmNwcAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVE SVJTfQotLQotLXByZXBhcmUtdGVtcC10eXBlLm8gOiBwcmVwYXJlLXRlbXAtdHlwZS5jcHAKLS0J JHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30KLS0KLS10cmFuc2Fj dGlvbi5vIDogdHJhbnNhY3Rpb24uY3BwCi0tCSR7Q09NUElMRVJ9IC1jICQ/ICR7Q1hYRkxBR1N9 ICR7SU5DTFVERURJUlN9Ci0tCi0tYmFja2VuZC1sb2FkZXIubyA6IGJhY2tlbmQtbG9hZGVyLmNw cAotLQkke0NPTVBJTEVSfSAtYyAkPyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLWNv bm5lY3Rpb24tcG9vbC5vIDogY29ubmVjdGlvbi1wb29sLmNwcAotLQkke0NPTVBJTEVSfSAtYyAk PyAke0NYWEZMQUdTfSAke0lOQ0xVREVESVJTfQotLQotLXNvY2ktc2ltcGxlLm8gOiBzb2NpLXNp bXBsZS5jcHAKLS0JJHtDT01QSUxFUn0gLWMgJD8gJHtDWFhGTEFHU30gJHtJTkNMVURFRElSU30K LS0KLS0KLS1jbGVhbiA6Ci0tCXJtIC1mIGxpYnNvY2lfY29yZS5hIGxpYnNvY2lfY29yZS5zbwot ZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvY29yZS9NYWtlZmlsZS5pbiBzb2NpLTMu MC4wX3RyZXAzMDAvc29jaS9jb3JlL01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9jb3JlL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICswMTAw Ci0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9NYWtlZmlsZS5pbgkyMDExLTA3LTAz IDE4OjQ0OjI4LjAwMDAwMDAwMCArMDIwMAotQEAgLTAsMCArMSw5OTkgQEAKLSsjIE1ha2VmaWxl LmluIGdlbmVyYXRlZCBieSBhdXRvbWFrZSAxLjExLjEgZnJvbSBNYWtlZmlsZS5hbS4KLSsjIEBj b25maWd1cmVfaW5wdXRACi0rCi0rIyBDb3B5cmlnaHQgKEMpIDE5OTQsIDE5OTUsIDE5OTYsIDE5 OTcsIDE5OTgsIDE5OTksIDIwMDAsIDIwMDEsIDIwMDIsCi0rIyAyMDAzLCAyMDA0LCAyMDA1LCAy MDA2LCAyMDA3LCAyMDA4LCAyMDA5ICBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sCi0rIyBJbmMu Ci0rIyBUaGlzIE1ha2VmaWxlLmluIGlzIGZyZWUgc29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJl IEZvdW5kYXRpb24KLSsjIGdpdmVzIHVubGltaXRlZCBwZXJtaXNzaW9uIHRvIGNvcHkgYW5kL29y IGRpc3RyaWJ1dGUgaXQsCi0rIyB3aXRoIG9yIHdpdGhvdXQgbW9kaWZpY2F0aW9ucywgYXMgbG9u ZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0rCi0rIyBUaGlzIHByb2dyYW0gaXMgZGlz dHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSsjIGJ1dCBXSVRI T1VUIEFOWSBXQVJSQU5UWSwgdG8gdGhlIGV4dGVudCBwZXJtaXR0ZWQgYnkgbGF3OyB3aXRob3V0 Ci0rIyBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO RVNTIEZPUiBBCi0rIyBQQVJUSUNVTEFSIFBVUlBPU0UuCi0rCi0rQFNFVF9NQUtFQAotKwotKwot K1ZQQVRIID0gQHNyY2RpckAKLStwa2dkYXRhZGlyID0gJChkYXRhZGlyKS9AUEFDS0FHRUAKLStw a2dsaWJkaXIgPSAkKGxpYmRpcikvQFBBQ0tBR0VACi0rcGtnbGliZXhlY2RpciA9ICQobGliZXhl Y2RpcikvQFBBQ0tBR0VACi0rYW1fX2NkID0gQ0RQQVRIPSIkJHtaU0hfVkVSU0lPTisufSQoUEFU SF9TRVBBUkFUT1IpIiAmJiBjZAotK2luc3RhbGxfc2hfREFUQSA9ICQoaW5zdGFsbF9zaCkgLWMg LW0gNjQ0Ci0raW5zdGFsbF9zaF9QUk9HUkFNID0gJChpbnN0YWxsX3NoKSAtYwotK2luc3RhbGxf c2hfU0NSSVBUID0gJChpbnN0YWxsX3NoKSAtYwotK0lOU1RBTExfSEVBREVSID0gJChJTlNUQUxM X0RBVEEpCi0rdHJhbnNmb3JtID0gJChwcm9ncmFtX3RyYW5zZm9ybV9uYW1lKQotK05PUk1BTF9J TlNUQUxMID0gOgotK1BSRV9JTlNUQUxMID0gOgotK1BPU1RfSU5TVEFMTCA9IDoKLStOT1JNQUxf VU5JTlNUQUxMID0gOgotK1BSRV9VTklOU1RBTEwgPSA6Ci0rUE9TVF9VTklOU1RBTEwgPSA6Ci0r YnVpbGRfdHJpcGxldCA9IEBidWlsZEAKLStob3N0X3RyaXBsZXQgPSBAaG9zdEAKLStESVNUX0NP TU1PTiA9ICQocGtnaW5jbHVkZV9IRUFERVJTKSAkKHNyY2RpcikvTWFrZWZpbGUuYW0gXAotKwkk KHNyY2RpcikvTWFrZWZpbGUuaW4gJChzcmNkaXIpL3NvdXJjZXMubWsgXAotKwkkKHRvcF9zcmNk aXIpL01ha2VmaWxlLmNvbW1vbgotK3N1YmRpciA9IHNvY2kvY29yZQotK0FDTE9DQUxfTTQgPSAk KHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bfc3Jj ZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9teXNx bC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkkKHRv cF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25m aWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZp Zy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwKLSsJ JCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25maWd1 cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQoQ09O RklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGlycyA9 ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIpL3NvY2kv Y29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxF UyA9Ci0rYW1fX3ZwYXRoX2Fkal9zZXR1cCA9IHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2Rpciki IHwgc2VkICdzfC58LnxnJ2A7Ci0rYW1fX3ZwYXRoX2FkaiA9IGNhc2UgJCRwIGluIFwKLSsgICAg JChzcmNkaXIpLyopIGY9YGVjaG8gIiQkcCIgfCBzZWQgInN8XiQkc3JjZGlyc3RyaXAvfHwiYDs7 IFwKLSsgICAgKikgZj0kJHA7OyBcCi0rICBlc2FjOwotK2FtX19zdHJpcF9kaXIgPSBmPWBlY2hv ICQkcCB8IHNlZCAtZSAnc3xeLiovfHwnYDsKLSthbV9faW5zdGFsbF9tYXggPSA0MAotK2FtX19u b2Jhc2Vfc3RyaXBfc2V0dXAgPSBcCi0rICBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8 IHNlZCAncy9bXS5bXiQkXFwqfF0vXFxcXCYvZydgCi0rYW1fX25vYmFzZV9zdHJpcCA9IFwKLSsg IGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwIjsgZG9uZSB8IHNlZCAtZSAic3wkJHNyY2Rp cnN0cmlwL3x8IgotK2FtX19ub2Jhc2VfbGlzdCA9ICQoYW1fX25vYmFzZV9zdHJpcF9zZXR1cCk7 IFwKLSsgIGZvciBwIGluICQkbGlzdDsgZG8gZWNobyAiJCRwICQkcCI7IGRvbmUgfCBcCi0rICBz ZWQgInN8ICQkc3JjZGlyc3RyaXAvfCB8OyInIC8gLipcLy8hcy8gLiovIC4vOyBzLFwoIC4qXCkv W14vXSokJCxcMSwnIHwgXAotKyAgJChBV0spICdCRUdJTiB7IGZpbGVzWyIuIl0gPSAiIiB9IHsg ZmlsZXNbJCQyXSA9IGZpbGVzWyQkMl0gIiAiICQkMTsgXAotKyAgICBpZiAoKytuWyQkMl0gPT0g JChhbV9faW5zdGFsbF9tYXgpKSBcCi0rICAgICAgeyBwcmludCAkJDIsIGZpbGVzWyQkMl07IG5b JCQyXSA9IDA7IGZpbGVzWyQkMl0gPSAiIiB9IH0gXAotKyAgICBFTkQgeyBmb3IgKGRpciBpbiBm aWxlcykgcHJpbnQgZGlyLCBmaWxlc1tkaXJdIH0nCi0rYW1fX2Jhc2VfbGlzdCA9IFwKLSsgIHNl ZCAnJCQhTjskJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycgfCBcCi0rICBz ZWQgJyQkIU47JCQhTjskJCFOOyQkIU47cy9cbi8gL2cnCi0rYW1fX2luc3RhbGxkaXJzID0gIiQo REVTVERJUikkKGxpYmRpcikiICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLStMVExJQlJB UklFUyA9ICQobGliX0xUTElCUkFSSUVTKQotK2xpYnNvY2lfY29yZV9sYV9ERVBFTkRFTkNJRVMg PQotK2FtX19vYmplY3RzXzEgPQotK2FtX19vYmplY3RzXzIgPSBsaWJzb2NpX2NvcmVfbGEtYmFj a2VuZC1sb2FkZXIubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyBsaWJzb2NpX2NvcmVf bGEtY29ubmVjdGlvbi1wb29sLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLWVycm9yLmxvIGxpYnNv Y2lfY29yZV9sYS1pbnRvLXR5cGUubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5 cGUubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG8gXAotKwlsaWJz b2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVk LXByZXBhcmUtaW5mby5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1l bnQubG8gXAotKwlsaWJzb2NpX2NvcmVfbGEtcm93LmxvIGxpYnNvY2lfY29yZV9sYS1yb3dpZC5s byBcCi0rCWxpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNp bXBsZS5sbyBcCi0rCWxpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQubG8gbGlic29jaV9jb3JlX2xh LXRyYW5zYWN0aW9uLmxvIFwKLSsJbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIGxpYnNvY2lf Y29yZV9sYS12YWx1ZXMubG8KLSthbV9saWJzb2NpX2NvcmVfbGFfT0JKRUNUUyA9ICQoYW1fX29i amVjdHNfMSkgJChhbV9fb2JqZWN0c18yKQotK2xpYnNvY2lfY29yZV9sYV9PQkpFQ1RTID0gJChh bV9saWJzb2NpX2NvcmVfbGFfT0JKRUNUUykKLStsaWJzb2NpX2NvcmVfbGFfTElOSyA9ICQoTElC VE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSBcCi0rCSQoTElCVE9PTEZMQUdTKSAt LW1vZGU9bGluayAkKENYWExEKSBcCi0rCSQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSBcCi0rCSQobGlic29jaV9jb3JlX2xhX0xERkxBR1MpICQoTERGTEFHUykgLW8gJEAK LStERUZBVUxUX0lOQ0xVREVTID0gLUkuQGFtX19pc3JjQCAtSSQodG9wX2J1aWxkZGlyKS9zb2Np Ci0rZGVwY29tcCA9ICQoU0hFTEwpICQodG9wX3NyY2RpcikvY29uZmlnL2RlcGNvbXAKLSthbV9f ZGVwZmlsZXNfbWF5YmUgPSBkZXBmaWxlcwotK2FtX19tdiA9IG12IC1mCi0rQ1hYQ09NUElMRSA9 ICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgXAotKwkkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKEFNX0NYWEZMQUdTKSAkKENYWEZMQUdTKQotK0xUQ1hY Q09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRP T0xGTEFHUykgXAotKwktLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5D TFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChBTV9D WFhGTEFHUykgJChDWFhGTEFHUykKLStDWFhMRCA9ICQoQ1hYKQotK0NYWExJTksgPSAkKExJQlRP T0wpIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1t b2RlPWxpbmsgJChDWFhMRCkgJChBTV9DWFhGTEFHUykgJChDWFhGTEFHUykgJChBTV9MREZMQUdT KSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStDT01QSUxFID0gJChDQykgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpIFwKLSsJJChDUFBGTEFHUykg JChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0xUQ09NUElMRSA9ICQoTElCVE9PTCkgLS10YWc9Q0Mg JChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSBcCi0rCS0tbW9kZT1jb21waWxlICQo Q0MpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSBcCi0rCSQoQU1fQ1BQ RkxBR1MpICQoQ1BQRkxBR1MpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykKLStDQ0xEID0gJChDQykK LStMSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIFwKLSsJLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NGTEFHUykgJChDRkxBR1MpICQo QU1fTERGTEFHUykgXAotKwkkKExERkxBR1MpIC1vICRACi0rU09VUkNFUyA9ICQobGlic29jaV9j b3JlX2xhX1NPVVJDRVMpCi0rRElTVF9TT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfbGFfU09VUkNF UykKLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2stcmVjdXJzaXZlIGR2 aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2ZSBpbnN0YWxsLWRh dGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3RhbGwtZXhlYy1yZWN1 cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5mby1yZWN1cnNpdmUg XAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNpdmUgaW5zdGFsbC1y ZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxkaXJzLXJlY3Vyc2l2 ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1yZWN1cnNpdmUKLStI RUFERVJTID0gJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rUkVDVVJTSVZFX0NMRUFOX1RBUkdFVFMg PSBtb3N0bHljbGVhbi1yZWN1cnNpdmUgY2xlYW4tcmVjdXJzaXZlCVwKLSsgIGRpc3RjbGVhbi1y ZWN1cnNpdmUgbWFpbnRhaW5lci1jbGVhbi1yZWN1cnNpdmUKLStBTV9SRUNVUlNJVkVfVEFSR0VU UyA9ICQoUkVDVVJTSVZFX1RBUkdFVFM6LXJlY3Vyc2l2ZT0pIFwKLSsJJChSRUNVUlNJVkVfQ0xF QU5fVEFSR0VUUzotcmVjdXJzaXZlPSkgdGFncyBUQUdTIGN0YWdzIENUQUdTIFwKLSsJZGlzdGRp cgotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVF9TVUJESVJTID0gJChTVUJE SVJTKQotK0RJU1RGSUxFUyA9ICQoRElTVF9DT01NT04pICQoRElTVF9TT1VSQ0VTKSAkKFRFWElO Rk9TKSAkKEVYVFJBX0RJU1QpCi0rYW1fX3JlbGF0aXZpemUgPSBcCi0rICBkaXIwPWBwd2RgOyBc Ci0rICBzZWRfZmlyc3Q9J3MsXlwoW14vXSpcKS8uKiQkLFwxLCc7IFwKLSsgIHNlZF9yZXN0PSdz LF5bXi9dKi8qLCwnOyBcCi0rICBzZWRfbGFzdD0ncyxeLiovXChbXi9dKlwpJCQsXDEsJzsgXAot KyAgc2VkX2J1dGxhc3Q9J3MsLypbXi9dKiQkLCwnOyBcCi0rICB3aGlsZSB0ZXN0IC1uICIkJGRp cjEiOyBkbyBcCi0rICAgIGZpcnN0PWBlY2hvICIkJGRpcjEiIHwgc2VkIC1lICIkJHNlZF9maXJz dCJgOyBcCi0rICAgIGlmIHRlc3QgIiQkZmlyc3QiICE9ICIuIjsgdGhlbiBcCi0rICAgICAgaWYg dGVzdCAiJCRmaXJzdCIgPSAiLi4iOyB0aGVuIFwKLSsgICAgICAgIGRpcjI9YGVjaG8gIiQkZGly MCIgfCBzZWQgLWUgIiQkc2VkX2xhc3QiYC8iJCRkaXIyIjsgXAotKyAgICAgICAgZGlyMD1gZWNo byAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfYnV0bGFzdCJgOyBcCi0rICAgICAgZWxzZSBcCi0r ICAgICAgICBmaXJzdDI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwK LSsgICAgICAgIGlmIHRlc3QgIiQkZmlyc3QyIiA9ICIkJGZpcnN0IjsgdGhlbiBcCi0rICAgICAg ICAgIGRpcjI9YGVjaG8gIiQkZGlyMiIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsgXAotKyAgICAg ICAgZWxzZSBcCi0rICAgICAgICAgIGRpcjI9Ii4uLyQkZGlyMiI7IFwKLSsgICAgICAgIGZpOyBc Ci0rICAgICAgICBkaXIwPSIkJGRpcjAiLyIkJGZpcnN0IjsgXAotKyAgICAgIGZpOyBcCi0rICAg IGZpOyBcCi0rICAgIGRpcjE9YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX3Jlc3QiYDsg XAotKyAgZG9uZTsgXAotKyAgcmVsZGlyPSIkJGRpcjIiCi0rcGtnaW5jbHVkZWRpciA9ICQoc29j aV9pbmNsdWRlX2RpcikKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0r QVIgPSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVB REVSQAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQVNJT19M SUIgPSBAQk9PU1RfQVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStC T09TVF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZ U1RFTV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9 IEBCT09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09T VF9NUElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9P U1RfTVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9Q Uk9HUkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJ QkAKLStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTEla QVRJT05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElC ID0gQEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVN X0xJQkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5J VF9URVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0r Qk9PU1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJ QiA9IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0g QENDREVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1Mg PSBAQ1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5J VF9DT05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElC U0AKLStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0r Q1hYQ1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1Mg PSBAQ1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0r REVQRElSID0gQERFUERJUkAKLStETExUT09MID0gQERMTFRPT0xACi0rRFNZTVVUSUwgPSBARFNZ TVVUSUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19O ID0gQEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVY VCA9IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04g PSBAR0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBA SU5TVEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JB TSA9IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRA Ci0rSU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9 IEBMREAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMg PSBATElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBA TE5fU0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAot K01BTklGRVNUX1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJUl9QID0gQE1LRElSX1BACi0r TVlTUUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJ QkAKLStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJT QAotK01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQg PSBATk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09S QUNMRV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9P Q0lfQ0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0r T1JBQ0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9P TEAKLStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0Vf QlVHUkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdF X05BTUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJO QU1FID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKLStQ QUNLQUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBB VEhfU0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAot K1BPU1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElS UyA9IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxf TERGTEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JB TkxJQiA9IEBSQU5MSUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStT SEVMTCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJ RURACi0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVS SUVEQAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxf SEVBREVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBM T0FEX0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNf YnVpbGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIg PSBAYWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAK LSthY19jdF9BUiA9IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9D WFggPSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9f aW5jbHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdf ZG90QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2Ft X191bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWls ZEAKLStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1 QAotK2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JA Ci0rYnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290 ZGlyID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9j ZGlyQAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2 aXBzX29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29r ID0gQGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0r aG9zdF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9y ID0gQGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGlu Y2x1ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9z aEAKLStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNk aXIgPSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVk aXIgPSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtk aXJfcEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRp ckAKLStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3Jh bV90cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJA Ci0rc2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAK LStzcmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRf YWxpYXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3By ZWZpeEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9w X3NyY2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGly KQotK2NvcmVfaF9zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv YmFja2VuZC1sb2FkZXIuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9i LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi1leGNoYW5nZS5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LWdyZWdvcmlhbi1kYXRlLmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtZnVzaW9uLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3Qtb3B0aW9uYWwuaCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC10dXBsZS5oIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Vycm9yLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvZXhjaGFuZ2UtdHJhaXRzLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv aW50by5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuaCBcCi0rICAgICAgICAkKHRv cF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uaCBcCi0rICAgICAg ICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1zdGF0ZW1lbnQuaCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuaCBcCi0rICAgICAgICAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9yb3ctZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3Nv Y2kvY29yZS9yb3dpZC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lk LWV4Y2hhbmdlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93c2V0Lmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5oIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktYmFja2VuZC5oIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktY29uZmlnLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvc29jaS1wbGF0Zm9ybS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3NvY2ktc2ltcGxlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUv c29jaS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0YXRlbWVudC5oIFwK LSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmggXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLmggXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1jb252ZXJzaW9uLXRyYWl0cy5oIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtaG9sZGVyLmggXAotKyAgICAgICAgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHlwZS1wdHIuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS91c2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2Ut dHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5oIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy1leGNoYW5nZS5oCi0rCi0rY29y ZV9jY19zb3VyY2VzID0gXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2Vu ZC1sb2FkZXIuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3Bw IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwIFwKLSsgICAgICAg ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCBcCi0rICAgICAgICAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAgXAotKyAgICAgICAgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3Jvd2lkLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9z ZXNzaW9uLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBs ZS5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwIFwKLSsgICAgICAgICQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKLSsKLStNQUlOVEFJTkVSQ0xFQU5GSUxF UyA9IE1ha2VmaWxlLmluCi0rU1VCRElSUyA9IC4gdGVzdAotKwotKyNFWFRSQV9ESVNUX0ZPUl9T T0NJX0NPTVBBVElCSUxJVFkgPSAuX3Jvdy5jcHAgLl9zb2NpLXNpbXBsZS5jcHAgLl9zb2NpLXNp bXBsZS5oIC5fdmFsdWVzLWV4Y2hhbmdlLmgKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZP Ul9TT0NJX0NPTVBBVElCSUxJVFkpCi0rbGliX0xUTElCUkFSSUVTID0gbGlic29jaV9jb3JlLmxh Ci0rbGlic29jaV9jb3JlX2xhX1NPVVJDRVMgPSAkKGNvcmVfaF9zb3VyY2VzKSAkKGNvcmVfY2Nf c291cmNlcykgCi0rbGlic29jaV9jb3JlX2xhX0NYWEZMQUdTID0gCi0rbGlic29jaV9jb3JlX2xh X0xJQkFERCA9IAotK2xpYnNvY2lfY29yZV9sYV9MREZMQUdTID0gXAotKwkkKEJPT1NUX0xJQlMp ICQoQk9PU1RfREFURV9USU1FX0xJQikgJChCT09TVF9QUk9HUkFNX09QVElPTlNfTElCKSBcCi0r CS12ZXJzaW9uLWluZm8gJChHRU5FUklDX0xJQlJBUllfVkVSU0lPTikKLSsKLStwa2dpbmNsdWRl X0hFQURFUlMgPSAkKGNvcmVfaF9zb3VyY2VzKQotK0BTT0NJX0hFQURFUlNfQlVSSUVEX0ZBTFNF QHNvY2lfaW5jbHVkZV9kaXIgPSAkKGluY2x1ZGVkaXIpCi0rQFNPQ0lfSEVBREVSU19CVVJJRURf VFJVRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKS9zb2NpL2NvcmUKLSthbGw6IGFs bC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rLlNVRkZJWEVTOiAuY3BwIC5sbyAubyAub2Jq Ci0rJChzcmNkaXIpL01ha2VmaWxlLmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3Ny Y2RpcikvTWFrZWZpbGUuY29tbW9uICQoc3JjZGlyKS9zb3VyY2VzLm1rICQoYW1fX2NvbmZpZ3Vy ZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2UgJyQoYW1fX2NvbmZpZ3Vy ZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAoIGNkICQodG9wX2J1aWxk ZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaCApIFwKLSsJICAgICAg ICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJyZWFrOyBmaTsgfTsgXAot KwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWVjaG8gJyBjZCAk KHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvY29yZS9NYWtlZmlsZSc7IFwK LSsJJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgXAotKwkgICQoQVVUT01BS0UpIC0tZ251IHNv Y2kvY29yZS9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNk aXIpL01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICck PycgaW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIp ICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJ ICAgIGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVz ICQoc3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9i dWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19k ZXBmaWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5z dGF0dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJ RVMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2Rl cHMpCi0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0t cmVmcmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQo YW1fX2FjbG9jYWxfbTRfZGVwcyk6Ci0raW5zdGFsbC1saWJMVExJQlJBUklFUzogJChsaWJfTFRM SUJSQVJJRVMpCi0rCUAkKE5PUk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKGxpYmRpcikiIHx8 ICQoTUtESVJfUCkgIiQoREVTVERJUikkKGxpYmRpcikiCi0rCUBsaXN0PSckKGxpYl9MVExJQlJB UklFUyknOyB0ZXN0IC1uICIkKGxpYmRpcikiIHx8IGxpc3Q9OyBcCi0rCWxpc3QyPTsgZm9yIHAg aW4gJCRsaXN0OyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJHA7IHRoZW4gXAotKwkgICAgbGlzdDI9 IiQkbGlzdDIgJCRwIjsgXAotKwkgIGVsc2UgOjsgZmk7IFwKLSsJZG9uZTsgXAotKwl0ZXN0IC16 ICIkJGxpc3QyIiB8fCB7IFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFH UykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1pbnN0YWxsICQoSU5TVEFMTCkgJChJTlNUQUxMX1NU UklQX0ZMQUcpICQkbGlzdDIgJyQoREVTVERJUikkKGxpYmRpciknIjsgXAotKwkgICQoTElCVE9P TCkgJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9aW5zdGFsbCAkKElO U1RBTEwpICQoSU5TVEFMTF9TVFJJUF9GTEFHKSAkJGxpc3QyICIkKERFU1RESVIpJChsaWJkaXIp IjsgXAotKwl9Ci0rCi0rdW5pbnN0YWxsLWxpYkxUTElCUkFSSUVTOgotKwlAJChOT1JNQUxfVU5J TlNUQUxMKQotKwlAbGlzdD0nJChsaWJfTFRMSUJSQVJJRVMpJzsgdGVzdCAtbiAiJChsaWJkaXIp IiB8fCBsaXN0PTsgXAotKwlmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICAkKGFtX19zdHJpcF9k aXIpIFwKLSsJICBlY2hvICIgJChMSUJUT09MKSAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT11bmluc3RhbGwgcm0gLWYgJyQoREVTVERJUikkKGxpYmRpcikvJCRmJyI7 IFwKLSsJICAkKExJQlRPT0wpICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPXVuaW5zdGFsbCBybSAtZiAiJChERVNURElSKSQobGliZGlyKS8kJGYiOyBcCi0rCWRvbmUK LSsKLStjbGVhbi1saWJMVExJQlJBUklFUzoKLSsJLXRlc3QgLXogIiQobGliX0xUTElCUkFSSUVT KSIgfHwgcm0gLWYgJChsaWJfTFRMSUJSQVJJRVMpCi0rCUBsaXN0PSckKGxpYl9MVExJQlJBUklF UyknOyBmb3IgcCBpbiAkJGxpc3Q7IGRvIFwKLSsJICBkaXI9ImBlY2hvICQkcCB8IHNlZCAtZSAn c3wvW14vXSokJHx8J2AiOyBcCi0rCSAgdGVzdCAiJCRkaXIiICE9ICIkJHAiIHx8IGRpcj0uOyBc Ci0rCSAgZWNobyAicm0gLWYgXCIkJHtkaXJ9L3NvX2xvY2F0aW9uc1wiIjsgXAotKwkgIHJtIC1m ICIkJHtkaXJ9L3NvX2xvY2F0aW9ucyI7IFwKLSsJZG9uZQotK2xpYnNvY2lfY29yZS5sYTogJChs aWJzb2NpX2NvcmVfbGFfT0JKRUNUUykgJChsaWJzb2NpX2NvcmVfbGFfREVQRU5ERU5DSUVTKSAK LSsJJChsaWJzb2NpX2NvcmVfbGFfTElOSykgLXJwYXRoICQobGliZGlyKSAkKGxpYnNvY2lfY29y ZV9sYV9PQkpFQ1RTKSAkKGxpYnNvY2lfY29yZV9sYV9MSUJBREQpICQoTElCUykKLSsKLSttb3N0 bHljbGVhbi1jb21waWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29t cGlsZToKLSsJLXJtIC1mICoudGFiLmMKLSsKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBh bV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLlBsb0Bh bV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFt X19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0 aW9uLXBvb2wuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9f cXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLWVycm9yLlBsb0BhbV9fcXVvdGVACi0r QEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lf Y29yZV9sYS1pbnRvLXR5cGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1 ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBl LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4v JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5QbG9AYW1fX3F1b3Rl QAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtcHJvY2VkdXJlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19p bmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRl ZC1wcmVwYXJlLWluZm8uUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2luY2x1ZGVA IEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRl bWVudC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90 ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcm93LlBsb0BhbV9fcXVvdGVACi0rQEFNREVQ X1RSVUVAQGFtX19pbmNsdWRlQCBAYW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1yb3dpZC5QbG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19x dW90ZUAuLyQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5QbG9AYW1fX3F1b3RlQAot K0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtc29jaS1zaW1wbGUuUGxvQGFtX19xdW90ZUAKLStAQU1ERVBfVFJVRUBAYW1fX2lu Y2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5Q bG9AYW1fX3F1b3RlQAotK0BBTURFUF9UUlVFQEBhbV9faW5jbHVkZUAgQGFtX19xdW90ZUAuLyQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rpb24uUGxvQGFtX19xdW90ZUAKLStAQU1E RVBfVFJVRUBAYW1fX2luY2x1ZGVAIEBhbV9fcXVvdGVALi8kKERFUERJUikvbGlic29jaV9jb3Jl X2xhLXVzZS10eXBlLlBsb0BhbV9fcXVvdGVACi0rQEFNREVQX1RSVUVAQGFtX19pbmNsdWRlQCBA YW1fX3F1b3RlQC4vJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS12YWx1ZXMuUGxvQGFtX19xdW90 ZUAKLSsKLSsuY3BwLm86Ci0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoQ1hYQ09NUElMRSkgLU1U ICRAIC1NRCAtTVAgLU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3Rk ZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQ8JyBvYmplY3Q9JyRA JyBsaWJ0b29sPW5vIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBD WFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURF UEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoQ1hYQ09NUElMRSkgLWMgLW8g JEAgJDwKLSsKLSsuY3BwLm9iajoKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChDWFhDT01QSUxF KSAtTVQgJEAgLU1EIC1NUCAtTUYgJChERVBESVIpLyQqLlRwbyAtYyAtbyAkQCBgJChDWUdQQVRI X1cpICckPCdgCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvJCou VHBvICQoREVQRElSKS8kKi5QbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ c291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD1ubyBAQU1ERVBCQUNLU0xBU0hACi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQ TU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAkkKENYWENPTVBJTEUpIC1jIC1vICRAIGAkKENZR1BBVEhfVykgJyQ8J2AKLSsKLSsuY3BwLmxv OgotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExUQ1hYQ09NUElMRSkgLU1UICRAIC1NRCAtTVAg LU1GICQoREVQRElSKS8kKi5UcG8gLWMgLW8gJEAgJDwKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS8kKi5UcG8gJChERVBESVIpLyQqLlBsbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckPCcgb2JqZWN0PSckQCcgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMVENYWENPTVBJTEUpIC1jIC1vICRAICQ8Ci0r Ci0rbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9iYWNrZW5kLWxvYWRlci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09M KSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNv bXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFN X0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhG TEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1iYWNrZW5kLWxvYWRlci5sbyAtTUQgLU1QIC1NRiAk KERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLlRwbyAtYyAtbyBsaWJzb2Np X2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9j b3JlL2JhY2tlbmQtbG9hZGVyLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo YW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLlRwbyAkKERF UERJUikvbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLlBsbwotK0BBTURFUF9UUlVFQEBh bV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9iYWNr ZW5kLWxvYWRlci5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLWJhY2tlbmQtbG9hZGVyLmxv JyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVw Q1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1E RVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1D WFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENY WCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1Mp ICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAt byBsaWJzb2NpX2NvcmVfbGEtYmFja2VuZC1sb2FkZXIubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rp cikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmFja2VuZC1sb2FkZXIuY3BwCi0rCi0rbGlic29jaV9jb3Jl X2xhLWJsb2IubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbyAt TUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWJsb2IuVHBvIC1jIC1vIGxpYnNv Y2lfY29yZV9sYS1ibG9iLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9i LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYmxvYi5j cHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2Nv cmVfbGEtYmxvYi5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1ibG9iLlBsbwotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9ibG9iLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtYmxvYi5sbycgbGlidG9vbD15 ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJ REVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNI QAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElC VE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykg JChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdT KSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9j b3JlX2xhLWJsb2IubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jsb2IuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ibG9iLmNwcAot KwotK2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG86ICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJU T09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2Rl PWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAk KEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChD WFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gLU1EIC1NUCAt TUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wuVHBvIC1jIC1vIGxp YnNvY2lfY29yZV9sYS1jb25uZWN0aW9uLXBvb2wubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Nvbm5lY3Rpb24tcG9vbC5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29s LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWNvbm5lY3Rpb24tcG9vbC5QbG8KLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvY29ubmVjdGlvbi1wb29sLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtY29ubmVj dGlvbi1wb29sLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtY29ubmVjdGlvbi1wb29sLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwJyB8fCBlY2hvICck KHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuY3BwCi0r Ci0rbGlic29jaV9jb3JlX2xhLWVycm9yLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJv ci5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1f TElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVG UykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZM QUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lf Y29yZV9sYS1lcnJvci5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWVy cm9yLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8gYHRlc3QgLWYgJyQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212 KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWVycm9yLlRwbyAkKERFUERJUikvbGlic29jaV9j b3JlX2xhLWVycm9yLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291 cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5jcHAnIG9iamVjdD0nbGlic29jaV9j b3JlX2xhLWVycm9yLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RS VUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkg JChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJ QlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1v ZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMp ICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAk KENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtZXJyb3IubG8gYHRlc3QgLWYgJyQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvZXJyb3IuY3BwCi0rCi0rbGlic29jaV9jb3JlX2xhLWludG8tdHlw ZS5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRl cENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElC VE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVE RVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3Jl X2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5s byAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5UcG8gLWMg LW8gbGlic29jaV9jb3JlX2xhLWludG8tdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvaW50by10eXBlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvaW50by10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19t dikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUuVHBvICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtaW50by10eXBlLlBsbwotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwJyBvYmpl Y3Q9J2xpYnNvY2lfY29yZV9sYS1pbnRvLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tT TEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJ UikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1pbnRvLXR5 cGUubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2ludG8tdHlwZS5jcHAK LSsKLStsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLW9uY2UtdGVtcC10eXBlLmxvIC1NRCAtTVAgLU1G ICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuVHBvIC1jIC1vIGxpYnNv Y2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJ JChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuVHBvICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUuUGxvCi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29u Y2UtdGVtcC10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEtb25jZS10ZW1wLXR5cGUu bG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBB TURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFn PUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQo Q1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFH UykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1j IC1vIGxpYnNvY2lfY29yZV9sYS1vbmNlLXRlbXAtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvb25jZS10ZW1wLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRlbXAtdHlwZS5jcHAKLSsKLStsaWJzb2NpX2Nv cmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBh cmUtdGVtcC10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9jb3JlX2xhLXByZXBhcmUtdGVtcC10eXBlLmxvIC1NRCAtTVAgLU1GICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuVHBvIC1jIC1vIGxpYnNvY2lf Y29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2Np L2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhf VFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5 cGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJlcGFyZS10ZW1wLXR5cGUuUGxvCi0r QEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3ByZXBhcmUtdGVtcC10eXBlLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVfbGEt cHJlcGFyZS10ZW1wLXR5cGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1E RVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBN T0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VA CSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1Mp IC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNM VURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxB R1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1wcmVwYXJlLXRlbXAtdHlwZS5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJlcGFyZS10ZW1wLXR5cGUuY3Bw JyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRl bXAtdHlwZS5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvOiAkKHRvcF9zcmNk aXIpL3NvY2kvY29yZS9wcm9jZWR1cmUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElC VE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9k ZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykg JChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQo Q1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLmxvIC1NRCAtTVAgLU1GICQo REVQRElSKS9saWJzb2NpX2NvcmVfbGEtcHJvY2VkdXJlLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVf bGEtcHJvY2VkdXJlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9jZWR1 cmUuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcm9j ZWR1cmUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGli c29jaV9jb3JlX2xhLXByb2NlZHVyZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1wcm9j ZWR1cmUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3Byb2NlZHVyZS5jcHAnIG9iamVjdD0nbGlic29jaV9jb3Jl X2xhLXByb2NlZHVyZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXByb2NlZHVyZS5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCcgfHwgZWNobyAnJChzcmNkaXIp LydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcAotKwotK2xpYnNvY2lfY29y ZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8ubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWluZm8u bG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVw YXJlLWluZm8uVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1wcmVwYXJlLWlu Zm8ubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXByZXBh cmUtaW5mby5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3JlZi1jb3VudGVkLXByZXBhcmUtaW5mby5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChh bV9fbXYpICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZv LlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXByZXBhcmUtaW5mby5Q bG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmNwcCcgb2JqZWN0PSdsaWJz b2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvJyBsaWJ0b29sPXllcyBAQU1E RVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9 JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChkZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFt X19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxB R1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFV TFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGli c29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEt cmVmLWNvdW50ZWQtcHJlcGFyZS1pbmZvLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2Ak KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwCi0rCi0r bGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5sbzogJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVF QAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdT KSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5D TFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZM QUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVu dC5sbyAtTUQgLU1QIC1NRiAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0 YXRlbWVudC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJlZi1jb3VudGVkLXN0YXRlbWVudC5s byBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3RhdGVtZW50 LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNv dW50ZWQtc3RhdGVtZW50LmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQuVHBvICQoREVQRElS KS9saWJzb2NpX2NvcmVfbGEtcmVmLWNvdW50ZWQtc3RhdGVtZW50LlBsbwotK0BBTURFUF9UUlVF QEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJc291cmNlPSckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9y ZWYtY291bnRlZC1zdGF0ZW1lbnQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yZWYtY291 bnRlZC1zdGF0ZW1lbnQubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStAQU1ERVBf VFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhERVBNT0RF KSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1yZWYtY291bnRlZC1zdGF0ZW1lbnQu bG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVu dC5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1j b3VudGVkLXN0YXRlbWVudC5jcHAKLSsKLStsaWJzb2NpX2NvcmVfbGEtcm93LmxvOiAkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9P TCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1j b21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChB TV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hY RkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcm93LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtcm93LlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtcm93LmxvIGB0ZXN0 IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwJyB8fCBlY2hvICckKHNyY2Rpcikv J2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3cuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVA CSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXJvdy5UcG8gJChERVBESVIpL2xp YnNvY2lfY29yZV9sYS1yb3cuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNF QAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvdy5jcHAnIG9iamVjdD0nbGlic29j aV9jb3JlX2xhLXJvdy5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9U UlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUp ICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChM SUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1t b2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVT KSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykg JChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXJvdy5sbyBgdGVzdCAtZiAnJCh0b3Bf c3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3Jj ZGlyKS9zb2NpL2NvcmUvcm93LmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS1yb3dpZC5sbzogJCh0 b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQo TElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0t bW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURF UykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1Mp ICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtcm93aWQubG8gLU1EIC1NUCAtTUYgJChE RVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5UcG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXJv d2lkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAnIHx8IGVj aG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcAotK0BhbV9f ZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dp ZC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1yb3dpZC5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93 aWQuY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS1yb3dpZC5sbycgbGlidG9vbD15ZXMgQEFN REVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElS PSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0Bh bV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZM QUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZB VUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxp YnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xh LXJvd2lkLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAnIHx8 IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Jvd2lkLmNwcAotKwot K2xpYnNvY2lfY29yZV9sYS1zZXNzaW9uLmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNz aW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRhZz1DWFggJChB TV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAkKENYWCkgJChE RUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxBR1MpICQoQ1BQ RkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAtTVQgbGlic29j aV9jb3JlX2xhLXNlc3Npb24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS1zZXNzaW9uLlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5sbyBgdGVzdCAtZiAn JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8n YCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Npb24uY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RS VUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXNlc3Npb24uVHBvICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtc2Vzc2lvbi5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3Rk ZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAn IG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXNlc3Npb24ubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJB Q0tTTEFTSEAKLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERF UERJUikgJChDWFhERVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zh c3RkZXBDWFhfRkFMU0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykg JChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9J TkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2Np X2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zZXNz aW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zZXNzaW9uLmNwcCcgfHwg ZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAKLSsK LStsaWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3Jl L3NvY2ktc2ltcGxlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKExJQlRPT0wpICAtLXRh Zz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9Y29tcGlsZSAk KENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQoQU1fQ1BQRkxB R1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENYWEZMQUdTKSAt TVQgbGlic29jaV9jb3JlX2xhLXNvY2ktc2ltcGxlLmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9s aWJzb2NpX2NvcmVfbGEtc29jaS1zaW1wbGUuVHBvIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zb2Np LXNpbXBsZS5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUu Y3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNp bXBsZS5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQRElSKS9saWJz b2NpX2NvcmVfbGEtc29jaS1zaW1wbGUuVHBvICQoREVQRElSKS9saWJzb2NpX2NvcmVfbGEtc29j aS1zaW1wbGUuUGxvCi0rQEFNREVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9 JyQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktc2ltcGxlLmNwcCcgb2JqZWN0PSdsaWJzb2Np X2NvcmVfbGEtc29jaS1zaW1wbGUubG8nIGxpYnRvb2w9eWVzIEBBTURFUEJBQ0tTTEFTSEAKLStA QU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACURFUERJUj0kKERFUERJUikgJChDWFhE RVBNT0RFKSAkKGRlcGNvbXApIEBBTURFUEJBQ0tTTEFTSEAKLStAYW1fX2Zhc3RkZXBDWFhfRkFM U0VACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxB R1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJ TkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hY RkxBR1MpICQoQ1hYRkxBR1MpIC1jIC1vIGxpYnNvY2lfY29yZV9sYS1zb2NpLXNpbXBsZS5sbyBg dGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvc29jaS1zaW1wbGUuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5jcHAKLSsK LStsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvOiAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9z dGF0ZW1lbnQuY3BwCi0rQGFtX19mYXN0ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNY WCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hY KSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykg JChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBs aWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50LmxvIC1NRCAtTVAgLU1GICQoREVQRElSKS9saWJzb2Np X2NvcmVfbGEtc3RhdGVtZW50LlRwbyAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtc3RhdGVtZW50Lmxv IGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwJyB8fCBlY2hv ICckKHNyY2RpcikvJ2AkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zdGF0ZW1lbnQuY3BwCi0rQGFt X19mYXN0ZGVwQ1hYX1RSVUVACSQoYW1fX212KSAkKERFUERJUikvbGlic29jaV9jb3JlX2xhLXN0 YXRlbWVudC5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS1zdGF0ZW1lbnQuUGxvCi0rQEFN REVQX1RSVUVAQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlzb3VyY2U9JyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3N0YXRlbWVudC5jcHAnIG9iamVjdD0nbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5s bycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRl cENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFN REVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9 Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChD WFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdT KSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMg LW8gbGlic29jaV9jb3JlX2xhLXN0YXRlbWVudC5sbyBgdGVzdCAtZiAnJCh0b3Bfc3JjZGlyKS9z b2NpL2NvcmUvc3RhdGVtZW50LmNwcCcgfHwgZWNobyAnJChzcmNkaXIpLydgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvc3RhdGVtZW50LmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlv bi5sbzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rpb24uY3BwCi0rQGFtX19mYXN0 ZGVwQ1hYX1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChM SUJUT09MRkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNM VURFUykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2Nv cmVfbGFfQ1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtdHJhbnNhY3Rp b24ubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5U cG8gLWMgLW8gbGlic29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS90cmFuc2FjdGlvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQo dG9wX3NyY2Rpcikvc29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcAotK0BhbV9fZmFzdGRlcENYWF9U UlVFQAkkKGFtX19tdikgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5UcG8g JChERVBESVIpL2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5QbG8KLStAQU1ERVBfVFJVRUBA YW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJh bnNhY3Rpb24uY3BwJyBvYmplY3Q9J2xpYnNvY2lfY29yZV9sYS10cmFuc2FjdGlvbi5sbycgbGli dG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURFUF9UUlVFQEBhbV9fZmFzdGRlcENYWF9G QUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1PREUpICQoZGVwY29tcCkgQEFNREVQQkFD S1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQo QU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQo REVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQ UEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLWMgLW8gbGli c29jaV9jb3JlX2xhLXRyYW5zYWN0aW9uLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS90cmFuc2FjdGlvbi5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikv c29jaS9jb3JlL3RyYW5zYWN0aW9uLmNwcAotKwotK2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5s bzogJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwCi0rQGFtX19mYXN0ZGVwQ1hY X1RSVUVACSQoTElCVE9PTCkgIC0tdGFnPUNYWCAkKEFNX0xJQlRPT0xGTEFHUykgJChMSUJUT09M RkxBR1MpIC0tbW9kZT1jb21waWxlICQoQ1hYKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURFUykg JChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgJChDUFBGTEFHUykgJChsaWJzb2NpX2NvcmVfbGFf Q1hYRkxBR1MpICQoQ1hYRkxBR1MpIC1NVCBsaWJzb2NpX2NvcmVfbGEtdXNlLXR5cGUubG8gLU1E IC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5UcG8gLWMgLW8gbGli c29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIGB0ZXN0IC1mICckKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS91c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29jaS9j b3JlL3VzZS10eXBlLmNwcAotK0BhbV9fZmFzdGRlcENYWF9UUlVFQAkkKGFtX19tdikgJChERVBE SVIpL2xpYnNvY2lfY29yZV9sYS11c2UtdHlwZS5UcG8gJChERVBESVIpL2xpYnNvY2lfY29yZV9s YS11c2UtdHlwZS5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJj ZT0nJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLXR5cGUuY3BwJyBvYmplY3Q9J2xpYnNvY2lf Y29yZV9sYS11c2UtdHlwZS5sbycgbGlidG9vbD15ZXMgQEFNREVQQkFDS1NMQVNIQAotK0BBTURF UF9UUlVFQEBhbV9fZmFzdGRlcENYWF9GQUxTRUAJREVQRElSPSQoREVQRElSKSAkKENYWERFUE1P REUpICQoZGVwY29tcCkgQEFNREVQQkFDS1NMQVNIQAotK0BhbV9fZmFzdGRlcENYWF9GQUxTRUAJ JChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykg LS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxUX0lOQ0xVREVTKSAkKElOQ0xV REVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNvY2lfY29yZV9sYV9DWFhGTEFH UykgJChDWFhGTEFHUykgLWMgLW8gbGlic29jaV9jb3JlX2xhLXVzZS10eXBlLmxvIGB0ZXN0IC1m ICckKHRvcF9zcmNkaXIpL3NvY2kvY29yZS91c2UtdHlwZS5jcHAnIHx8IGVjaG8gJyQoc3JjZGly KS8nYCQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcAotKwotK2xpYnNvY2lfY29y ZV9sYS12YWx1ZXMubG86ICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ZhbHVlcy5jcHAKLStAYW1f X2Zhc3RkZXBDWFhfVFJVRUAJJChMSUJUT09MKSAgLS10YWc9Q1hYICQoQU1fTElCVE9PTEZMQUdT KSAkKExJQlRPT0xGTEFHUykgLS1tb2RlPWNvbXBpbGUgJChDWFgpICQoREVGUykgJChERUZBVUxU X0lOQ0xVREVTKSAkKElOQ0xVREVTKSAkKEFNX0NQUEZMQUdTKSAkKENQUEZMQUdTKSAkKGxpYnNv Y2lfY29yZV9sYV9DWFhGTEFHUykgJChDWFhGTEFHUykgLU1UIGxpYnNvY2lfY29yZV9sYS12YWx1 ZXMubG8gLU1EIC1NUCAtTUYgJChERVBESVIpL2xpYnNvY2lfY29yZV9sYS12YWx1ZXMuVHBvIC1j IC1vIGxpYnNvY2lfY29yZV9sYS12YWx1ZXMubG8gYHRlc3QgLWYgJyQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3ZhbHVlcy5jcHAnIHx8IGVjaG8gJyQoc3JjZGlyKS8nYCQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3ZhbHVlcy5jcHAKLStAYW1fX2Zhc3RkZXBDWFhfVFJVRUAJJChhbV9fbXYpICQoREVQ RElSKS9saWJzb2NpX2NvcmVfbGEtdmFsdWVzLlRwbyAkKERFUERJUikvbGlic29jaV9jb3JlX2xh LXZhbHVlcy5QbG8KLStAQU1ERVBfVFJVRUBAYW1fX2Zhc3RkZXBDWFhfRkFMU0VACXNvdXJjZT0n JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdmFsdWVzLmNwcCcgb2JqZWN0PSdsaWJzb2NpX2NvcmVf bGEtdmFsdWVzLmxvJyBsaWJ0b29sPXllcyBAQU1ERVBCQUNLU0xBU0hACi0rQEFNREVQX1RSVUVA QGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAlERVBESVI9JChERVBESVIpICQoQ1hYREVQTU9ERSkgJChk ZXBjb21wKSBAQU1ERVBCQUNLU0xBU0hACi0rQGFtX19mYXN0ZGVwQ1hYX0ZBTFNFQAkkKExJQlRP T0wpICAtLXRhZz1DWFggJChBTV9MSUJUT09MRkxBR1MpICQoTElCVE9PTEZMQUdTKSAtLW1vZGU9 Y29tcGlsZSAkKENYWCkgJChERUZTKSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpICQo QU1fQ1BQRkxBR1MpICQoQ1BQRkxBR1MpICQobGlic29jaV9jb3JlX2xhX0NYWEZMQUdTKSAkKENY WEZMQUdTKSAtYyAtbyBsaWJzb2NpX2NvcmVfbGEtdmFsdWVzLmxvIGB0ZXN0IC1mICckKHRvcF9z cmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwJyB8fCBlY2hvICckKHNyY2RpcikvJ2AkKHRvcF9z cmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwCi0rCi0rbW9zdGx5Y2xlYW4tbGlidG9vbDoKLSsJ LXJtIC1mICoubG8KLSsKLStjbGVhbi1saWJ0b29sOgotKwktcm0gLXJmIC5saWJzIF9saWJzCi0r aW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzogJChwa2dpbmNsdWRlX0hFQURFUlMpCi0rCUAkKE5P Uk1BTF9JTlNUQUxMKQotKwl0ZXN0IC16ICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCAkKE1LRElSX1Ap ICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIKLSsJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFE RVJTKSc7IHRlc3QgLW4gIiQocGtnaW5jbHVkZWRpcikiIHx8IGxpc3Q9OyBcCi0rCWZvciBwIGlu ICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgLWYgIiQkcCI7IHRoZW4gZD07IGVsc2UgZD0iJChz cmNkaXIpLyI7IGZpOyBcCi0rCSAgZWNobyAiJCRkJCRwIjsgXAotKwlkb25lIHwgJChhbV9fYmFz ZV9saXN0KSB8IFwKLSsJd2hpbGUgcmVhZCBmaWxlczsgZG8gXAotKwkgIGVjaG8gIiAkKElOU1RB TExfSEVBREVSKSAkJGZpbGVzICckKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSciOyBcCi0rCSAg JChJTlNUQUxMX0hFQURFUikgJCRmaWxlcyAiJChERVNURElSKSQocGtnaW5jbHVkZWRpcikiIHx8 IGV4aXQgJCQ/OyBcCi0rCWRvbmUKLSsKLSt1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlM6Ci0r CUAkKE5PUk1BTF9VTklOU1RBTEwpCi0rCUBsaXN0PSckKHBrZ2luY2x1ZGVfSEVBREVSUyknOyB0 ZXN0IC1uICIkKHBrZ2luY2x1ZGVkaXIpIiB8fCBsaXN0PTsgXAotKwlmaWxlcz1gZm9yIHAgaW4g JCRsaXN0OyBkbyBlY2hvICQkcDsgZG9uZSB8IHNlZCAtZSAnc3xeLiovfHwnYDsgXAotKwl0ZXN0 IC1uICIkJGZpbGVzIiB8fCBleGl0IDA7IFwKLSsJZWNobyAiICggY2QgJyQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpJyAmJiBybSAtZiIgJCRmaWxlcyAiKSI7IFwKLSsJY2QgIiQoREVTVERJUikk KHBrZ2luY2x1ZGVkaXIpIiAmJiBybSAtZiAkJGZpbGVzCi0rCi0rIyBUaGlzIGRpcmVjdG9yeSdz IHN1YmRpcmVjdG9yaWVzIGFyZSBtb3N0bHkgaW5kZXBlbmRlbnQ7IHlvdSBjYW4gY2QKLSsjIGlu dG8gdGhlbSBhbmQgcnVuIGBtYWtlJyB3aXRob3V0IGdvaW5nIHRocm91Z2ggdGhpcyBNYWtlZmls ZS4KLSsjIFRvIGNoYW5nZSB0aGUgdmFsdWVzIG9mIGBtYWtlJyB2YXJpYWJsZXM6IGluc3RlYWQg b2YgZWRpdGluZyBNYWtlZmlsZXMsCi0rIyAoMSkgaWYgdGhlIHZhcmlhYmxlIGlzIHNldCBpbiBg Y29uZmlnLnN0YXR1cycsIGVkaXQgYGNvbmZpZy5zdGF0dXMnCi0rIyAgICAgKHdoaWNoIHdpbGwg Y2F1c2UgdGhlIE1ha2VmaWxlcyB0byBiZSByZWdlbmVyYXRlZCB3aGVuIHlvdSBydW4gYG1ha2Un KTsKLSsjICgyKSBvdGhlcndpc2UsIHBhc3MgdGhlIGRlc2lyZWQgdmFsdWVzIG9uIHRoZSBgbWFr ZScgY29tbWFuZCBsaW5lLgotKyQoUkVDVVJTSVZFX1RBUkdFVFMpOgotKwlAZmFpbD0gZmFpbGNv bT0nZXhpdCAxJzsgXAotKwlmb3IgZiBpbiB4ICQkTUFLRUZMQUdTOyBkbyBcCi0rCSAgY2FzZSAk JGYgaW4gXAotKwkgICAgKj0qIHwgLS1bIWtdKik7OyBcCi0rCSAgICAqayopIGZhaWxjb209J2Zh aWw9eWVzJzs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZG90X3NlZW49bm87IFwKLSsJ dGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlsaXN0PSckKFNVQkRJ UlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBlY2hvICJNYWtpbmcgJCR0YXJn ZXQgaW4gJCRzdWJkaXIiOyBcCi0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIFwK LSsJICAgIGRvdF9zZWVuPXllczsgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdldC1hbSI7 IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0rCSAgZmk7 IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpICQk bG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZTsgXAotKwlp ZiB0ZXN0ICIkJGRvdF9zZWVuIiA9ICJubyI7IHRoZW4gXAotKwkgICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpICIkJHRhcmdldC1hbSIgfHwgZXhpdCAxOyBcCi0rCWZpOyB0ZXN0IC16ICIkJGZhaWwi Ci0rCi0rJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyk6Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0 IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7IGRvIFwKLSsJICBjYXNlICQkZiBpbiBc Ci0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAgICprKikgZmFpbGNvbT0nZmFpbD15ZXMn OzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlkb3Rfc2Vlbj1ubzsgXAotKwljYXNlICIk QCIgaW4gXAotKwkgIGRpc3RjbGVhbi0qIHwgbWFpbnRhaW5lci1jbGVhbi0qKSBsaXN0PSckKERJ U1RfU1VCRElSUyknIDs7IFwKLSsJICAqKSBsaXN0PSckKFNVQkRJUlMpJyA7OyBcCi0rCWVzYWM7 IFwKLSsJcmV2PScnOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQk c3ViZGlyIiA9ICIuIjsgdGhlbiA6OyBlbHNlIFwKLSsJICAgIHJldj0iJCRzdWJkaXIgJCRyZXYi OyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlyZXY9IiQkcmV2IC4iOyBcCi0rCXRhcmdldD1g ZWNobyAkQCB8IHNlZCBzLy1yZWN1cnNpdmUvL2A7IFwKLSsJZm9yIHN1YmRpciBpbiAkJHJldjsg ZG8gXAotKwkgIGVjaG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0 ZXN0ICIkJHN1YmRpciIgPSAiLiI7IHRoZW4gXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRhcmdl dC1hbSI7IFwKLSsJICBlbHNlIFwKLSsJICAgIGxvY2FsX3RhcmdldD0iJCR0YXJnZXQiOyBcCi0r CSAgZmk7IFwKLSsJICAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxB R1MpICQkbG9jYWxfdGFyZ2V0KSBcCi0rCSAgfHwgZXZhbCAkJGZhaWxjb207IFwKLSsJZG9uZSAm JiB0ZXN0IC16ICIkJGZhaWwiCi0rdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VCRElSUykn OyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9IC4gfHwg KCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSB0YWdzKTsgXAot Kwlkb25lCi0rY3RhZ3MtcmVjdXJzaXZlOgotKwlsaXN0PSckKFNVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICB0ZXN0ICIkJHN1YmRpciIgPSAuIHx8ICgkKGFtX19jZCkg JCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgY3RhZ3MpOyBcCi0rCWRvbmUKLSsK LStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkgJChUQUdTX0ZJTEVTKQotKwlsaXN0 PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlx dWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBl Y2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJ ICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVO RCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAot Kwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0rCi0rVEFHUzogdGFncy1yZWN1cnNp dmUgJChIRUFERVJTKSAkKFNPVVJDRVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRB R1NfRklMRVMpICQoTElTUCkKLSsJc2V0IHg7IFwKLSsJaGVyZT1gcHdkYDsgXAotKwlpZiAoJChF VEFHUykgLS1ldGFncy1pbmNsdWRlIC0tdmVyc2lvbikgPi9kZXYvbnVsbCAyPiYxOyB0aGVuIFwK LSsJICBpbmNsdWRlX29wdGlvbj0tLWV0YWdzLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9maXg9Ljsg XAotKwllbHNlIFwKLSsJICBpbmNsdWRlX29wdGlvbj0tLWluY2x1ZGU7IFwKLSsJICBlbXB0eV9m aXg9OyBcCi0rCWZpOyBcCi0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlz dDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBcCi0rCSAg ICB0ZXN0ICEgLWYgJCRzdWJkaXIvVEFHUyB8fCBcCi0rCSAgICAgIHNldCAiJCRAIiAiJCRpbmNs dWRlX29wdGlvbj0kJGhlcmUvJCRzdWJkaXIvVEFHUyI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBc Ci0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAkKFRBR1NfRklMRVMpJzsg XAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRp IjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9u ZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0r CSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07 IH0nYDsgXAotKwlzaGlmdDsgXAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlx dWUiOyB0aGVuIDo7IGVsc2UgXAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRl bXB0eV9maXg7IFwKLSsJICBpZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdT KSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAg ICIkJEAiICQkdW5pcXVlOyBcCi0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxB R1MpICQoQU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBc Ci0rCSAgZmk7IFwKLSsJZmkKLStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZl ICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdT X0ZJTEVTKSAkKExJU1ApCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAgJChMSVNQKSAk KFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAg aWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7 IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVt cHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmls ZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwl0ZXN0IC16ICIkKENUQUdTX0FSR1MpJCR1bmlxdWUi IFwKLSsJICB8fCAkKENUQUdTKSAkKENUQUdTRkxBR1MpICQoQU1fQ1RBR1NGTEFHUykgJChDVEFH U19BUkdTKSBcCi0rCSAgICAgJCR1bmlxdWUKLSsKLStHVEFHUzoKLSsJaGVyZT1gJChhbV9fY2Qp ICQodG9wX2J1aWxkZGlyKSAmJiBwd2RgIFwKLSsJICAmJiAkKGFtX19jZCkgJCh0b3Bfc3JjZGly KSBcCi0rCSAgJiYgZ3RhZ3MgLWkgJChHVEFHU19BUkdTKSAiJCRoZXJlIgotKwotK2Rpc3RjbGVh bi10YWdzOgotKwktcm0gLWYgVEFHUyBJRCBHVEFHUyBHUlRBR1MgR1NZTVMgR1BBVEggdGFncwot KwotK2Rpc3RkaXI6ICQoRElTVEZJTEVTKQotKwlAc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGly KSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBcCi0rCXRvcHNyY2RpcnN0cmlwPWBl Y2hvICIkKHRvcF9zcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQkXFwqXS9cXFxcJi9nJ2A7IFwKLSsJ bGlzdD0nJChESVNURklMRVMpJzsgXAotKwkgIGRpc3RfZmlsZXM9YGZvciBmaWxlIGluICQkbGlz dDsgZG8gZWNobyAkJGZpbGU7IGRvbmUgfCBcCi0rCSAgc2VkIC1lICJzfF4kJHNyY2RpcnN0cmlw L3x8O3QiIFwKLSsJICAgICAgLWUgInN8XiQkdG9wc3JjZGlyc3RyaXAvfCQodG9wX2J1aWxkZGly KS98O3QiYDsgXAotKwljYXNlICQkZGlzdF9maWxlcyBpbiBcCi0rCSAgKi8qKSAkKE1LRElSX1Ap IGBlY2hvICIkJGRpc3RfZmlsZXMiIHwgXAotKwkJCSAgIHNlZCAnL1wvLyFkO3N8XnwkKGRpc3Rk aXIpL3w7cywvW14vXSokJCwsJyB8IFwKLSsJCQkgICBzb3J0IC11YCA7OyBcCi0rCWVzYWM7IFwK LSsJZm9yIGZpbGUgaW4gJCRkaXN0X2ZpbGVzOyBkbyBcCi0rCSAgaWYgdGVzdCAtZiAkJGZpbGUg fHwgdGVzdCAtZCAkJGZpbGU7IHRoZW4gZD0uOyBlbHNlIGQ9JChzcmNkaXIpOyBmaTsgXAotKwkg IGlmIHRlc3QgLWQgJCRkLyQkZmlsZTsgdGhlbiBcCi0rCSAgICBkaXI9YGVjaG8gIi8kJGZpbGUi IHwgc2VkIC1lICdzLC9bXi9dKiQkLCwnYDsgXAotKwkgICAgaWYgdGVzdCAtZCAiJChkaXN0ZGly KS8kJGZpbGUiOyB0aGVuIFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBl IGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAot KwkgICAgaWYgdGVzdCAtZCAkKHNyY2RpcikvJCRmaWxlICYmIHRlc3QgJCRkICE9ICQoc3JjZGly KTsgdGhlbiBcCi0rCSAgICAgIGNwIC1mcFIgJChzcmNkaXIpLyQkZmlsZSAiJChkaXN0ZGlyKSQk ZGlyIiB8fCBleGl0IDE7IFwKLSsJICAgICAgZmluZCAiJChkaXN0ZGlyKS8kJGZpbGUiIC10eXBl IGQgISAtcGVybSAtNzAwIC1leGVjIGNobW9kIHUrcnd4IHt9IFw7OyBcCi0rCSAgICBmaTsgXAot KwkgICAgY3AgLWZwUiAkJGQvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAot KwkgIGVsc2UgXAotKwkgICAgdGVzdCAtZiAiJChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8 IGNwIC1wICQkZC8kJGZpbGUgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAgICB8fCBleGl0IDE7 IFwKLSsJICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3Vi ZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsg ZWxzZSBcCi0rCSAgICB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCAk KE1LRElSX1ApICIkKGRpc3RkaXIpLyQkc3ViZGlyIiBcCi0rCSAgICB8fCBleGl0IDE7IFwKLSsJ ICBmaTsgXAotKwlkb25lCi0rCUBsaXN0PSckKERJU1RfU1VCRElSUyknOyBmb3Igc3ViZGlyIGlu ICQkbGlzdDsgZG8gXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9IC47IHRoZW4gOjsgZWxzZSBc Ci0rCSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKGRpc3RkaXIpLyQkc3ViZGlyIjsgXAotKwkg ICAgJChhbV9fcmVsYXRpdml6ZSk7IFwKLSsJICAgIG5ld19kaXN0ZGlyPSQkcmVsZGlyOyBcCi0r CSAgICBkaXIxPSQkc3ViZGlyOyBkaXIyPSIkKHRvcF9kaXN0ZGlyKSI7IFwKLSsJICAgICQoYW1f X3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfdG9wX2Rpc3RkaXI9JCRyZWxkaXI7IFwKLSsJICAg IGVjaG8gIiAoY2QgJCRzdWJkaXIgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgdG9wX2Rpc3Rk aXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBkaXN0ZGlyPSIkJG5ld19kaXN0ZGlyIiBcXCI7IFwKLSsJ ICAgIGVjaG8gIiAgICAgYW1fX3JlbW92ZV9kaXN0ZGlyPTogYW1fX3NraXBfbGVuZ3RoX2NoZWNr PTogYW1fX3NraXBfbW9kZV9maXg9OiBkaXN0ZGlyKSI7IFwKLSsJICAgICgkKGFtX19jZCkgJCRz dWJkaXIgJiYgXAotKwkgICAgICAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBcCi0rCSAgICAgICAg dG9wX2Rpc3RkaXI9IiQkbmV3X3RvcF9kaXN0ZGlyIiBcCi0rCSAgICAgICAgZGlzdGRpcj0iJCRu ZXdfZGlzdGRpciIgXAotKwkJYW1fX3JlbW92ZV9kaXN0ZGlyPTogXAotKwkJYW1fX3NraXBfbGVu Z3RoX2NoZWNrPTogXAotKwkJYW1fX3NraXBfbW9kZV9maXg9OiBcCi0rCSAgICAgICAgZGlzdGRp cikgXAotKwkgICAgICB8fCBleGl0IDE7IFwKLSsJICBmaTsgXAotKwlkb25lCi0rY2hlY2stYW06 IGFsbC1hbQotK2NoZWNrOiBjaGVjay1yZWN1cnNpdmUKLSthbGwtYW06IE1ha2VmaWxlICQoTFRM SUJSQVJJRVMpICQoSEVBREVSUykKLStpbnN0YWxsZGlyczogaW5zdGFsbGRpcnMtcmVjdXJzaXZl Ci0raW5zdGFsbGRpcnMtYW06Ci0rCWZvciBkaXIgaW4gIiQoREVTVERJUikkKGxpYmRpcikiICIk KERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSI7IGRvIFwKLSsJICB0ZXN0IC16ICIkJGRpciIgfHwg JChNS0RJUl9QKSAiJCRkaXIiOyBcCi0rCWRvbmUKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2 ZQotK2luc3RhbGwtZXhlYzogaW5zdGFsbC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTog aW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQotK3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQot KwotK2luc3RhbGwtYW06IGFsbC1hbQotKwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFs bC1leGVjLWFtIGluc3RhbGwtZGF0YS1hbQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNr LXJlY3Vyc2l2ZQotK2luc3RhbGwtc3RyaXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElO U1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9z aF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0t cyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BS T0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdl bmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRl c3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklM RVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9W UEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21h aW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRl ZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0 IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1B SU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStj bGVhbjogY2xlYW4tcmVjdXJzaXZlCi0rCi0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4t bGliTFRMSUJSQVJJRVMgY2xlYW4tbGlidG9vbCBcCi0rCW1vc3RseWNsZWFuLWFtCi0rCi0rZGlz dGNsZWFuOiBkaXN0Y2xlYW4tcmVjdXJzaXZlCi0rCS1ybSAtcmYgLi8kKERFUERJUikKLSsJLXJt IC1mIE1ha2VmaWxlCi0rZGlzdGNsZWFuLWFtOiBjbGVhbi1hbSBkaXN0Y2xlYW4tY29tcGlsZSBk aXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi10YWdzCi0rCi0rZHZpOiBkdmktcmVjdXJz aXZlCi0rCi0rZHZpLWFtOgotKwotK2h0bWw6IGh0bWwtcmVjdXJzaXZlCi0rCi0raHRtbC1hbToK LSsKLStpbmZvOiBpbmZvLXJlY3Vyc2l2ZQotKwotK2luZm8tYW06Ci0rCi0raW5zdGFsbC1kYXRh LWFtOiBpbnN0YWxsLXBrZ2luY2x1ZGVIRUFERVJTCi0rCi0raW5zdGFsbC1kdmk6IGluc3RhbGwt ZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhlYy1hbTog aW5zdGFsbC1saWJMVExJQlJBUklFUwotKwotK2luc3RhbGwtaHRtbDogaW5zdGFsbC1odG1sLXJl Y3Vyc2l2ZQotKwotK2luc3RhbGwtaHRtbC1hbToKLSsKLStpbnN0YWxsLWluZm86IGluc3RhbGwt aW5mby1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0r Ci0raW5zdGFsbC1wZGY6IGluc3RhbGwtcGRmLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcGRmLWFt OgotKwotK2luc3RhbGwtcHM6IGluc3RhbGwtcHMtcmVjdXJzaXZlCi0rCi0raW5zdGFsbC1wcy1h bToKLSsKLStpbnN0YWxsY2hlY2stYW06Ci0rCi0rbWFpbnRhaW5lci1jbGVhbjogbWFpbnRhaW5l ci1jbGVhbi1yZWN1cnNpdmUKLSsJLXJtIC1yZiAuLyQoREVQRElSKQotKwktcm0gLWYgTWFrZWZp bGUKLSttYWludGFpbmVyLWNsZWFuLWFtOiBkaXN0Y2xlYW4tYW0gbWFpbnRhaW5lci1jbGVhbi1n ZW5lcmljCi0rCi0rbW9zdGx5Y2xlYW46IG1vc3RseWNsZWFuLXJlY3Vyc2l2ZQotKwotK21vc3Rs eWNsZWFuLWFtOiBtb3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwlt b3N0bHljbGVhbi1saWJ0b29sCi0rCi0rcGRmOiBwZGYtcmVjdXJzaXZlCi0rCi0rcGRmLWFtOgot KwotK3BzOiBwcy1yZWN1cnNpdmUKLSsKLStwcy1hbToKLSsKLSt1bmluc3RhbGwtYW06IHVuaW5z dGFsbC1saWJMVExJQlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLSsuTUFL RTogJChSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUykgJChSRUNVUlNJVkVfVEFSR0VUUykgY3RhZ3Mt cmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCi0r Ci0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRT KSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4t Z2VuZXJpYyBcCi0rCWNsZWFuLWxpYkxUTElCUkFSSUVTIGNsZWFuLWxpYnRvb2wgY3RhZ3MgY3Rh Z3MtcmVjdXJzaXZlIFwKLSsJZGlzdGNsZWFuIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1n ZW5lcmljIFwKLSsJZGlzdGNsZWFuLWxpYnRvb2wgZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkg ZHZpLWFtIGh0bWwgXAotKwlodG1sLWFtIGluZm8gaW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0g aW5zdGFsbC1kYXRhIFwKLSsJaW5zdGFsbC1kYXRhLWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZp LWFtIGluc3RhbGwtZXhlYyBcCi0rCWluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFs bC1odG1sLWFtIGluc3RhbGwtaW5mbyBcCi0rCWluc3RhbGwtaW5mby1hbSBpbnN0YWxsLWxpYkxU TElCUkFSSUVTIGluc3RhbGwtbWFuIGluc3RhbGwtcGRmIFwKLSsJaW5zdGFsbC1wZGYtYW0gaW5z dGFsbC1wa2dpbmNsdWRlSEVBREVSUyBpbnN0YWxsLXBzIFwKLSsJaW5zdGFsbC1wcy1hbSBpbnN0 YWxsLXN0cmlwIGluc3RhbGxjaGVjayBpbnN0YWxsY2hlY2stYW0gXAotKwlpbnN0YWxsZGlycyBp bnN0YWxsZGlycy1hbSBtYWludGFpbmVyLWNsZWFuIFwKLSsJbWFpbnRhaW5lci1jbGVhbi1nZW5l cmljIG1vc3RseWNsZWFuIG1vc3RseWNsZWFuLWNvbXBpbGUgXAotKwltb3N0bHljbGVhbi1nZW5l cmljIG1vc3RseWNsZWFuLWxpYnRvb2wgcGRmIHBkZi1hbSBwcyBwcy1hbSBcCi0rCXRhZ3MgdGFn cy1yZWN1cnNpdmUgdW5pbnN0YWxsIHVuaW5zdGFsbC1hbSBcCi0rCXVuaW5zdGFsbC1saWJMVExJ QlJBUklFUyB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsKLStAU0VUX01BS0VACi0rCi0r IyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBleHBvcnQgYWxs IHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5c1YgYXQgbGVh c3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29jaS0zLjAuMF80 LXBhY2svc29jaS9jb3JlL3NvdXJjZXMubWsgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvY29yZS9z b3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3NvdXJjZXMubWsJMTk3 MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAv c29jaS9jb3JlL3NvdXJjZXMubWsJMjAwOS0wNC0xNiAxOTozNzowNS4wMDAwMDAwMDAgKzAyMDAK LUBAIC0wLDAgKzEsNTggQEAKLStjb3JlX2hfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2JhY2tlbmQtbG9hZGVyLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvYmxvYi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Js b2ItZXhjaGFuZ2UuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9ib29zdC1n cmVnb3JpYW4tZGF0ZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0 LWZ1c2lvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Jvb3N0LW9wdGlv bmFsLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvYm9vc3QtdHVwbGUuaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0aW9uLXBvb2wuaCBcCi0r ICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9lcnJvci5oIFwKLSsgICAgICAgICQodG9w X3NyY2Rpcikvc29jaS9jb3JlL2V4Y2hhbmdlLXRyYWl0cy5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL2ludG8uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9pbnRvLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9vbmNlLXRl bXAtdHlwZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3ByZXBhcmUtdGVt cC10eXBlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmgg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtcHJlcGFyZS1p bmZvLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcmVmLWNvdW50ZWQtc3Rh dGVtZW50LmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmggXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LWV4Y2hhbmdlLmggXAotKyAgICAgICAg JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93aWQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIp L3NvY2kvY29yZS9yb3dpZC1leGNoYW5nZS5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Jvd3NldC5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3Nlc3Np b24uaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLWJhY2tlbmQuaCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLWNvbmZpZy5oIFwKLSsgICAg ICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3NvY2ktcGxhdGZvcm0uaCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9zb2NpLXNpbXBsZS5oIFwKLSsgICAgICAgICQodG9wX3Ny Y2Rpcikvc29jaS9jb3JlL3NvY2kuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS9zdGF0ZW1lbnQuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90cmFuc2Fj dGlvbi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtY29udmVyc2lv bi5oIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtY29udmVyc2lvbi10 cmFpdHMuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS90eXBlLWhvbGRlci5o IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3R5cGUtcHRyLmggXAotKyAgICAg ICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdXNlLmggXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvdXNlLXR5cGUuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29y ZS92YWx1ZXMuaCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMtZXhj aGFuZ2UuaAotK2NvcmVfY2Nfc291cmNlcyA9IFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL2JhY2tlbmQtbG9hZGVyLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kv Y29yZS9ibG9iLmNwcCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9jb25uZWN0 aW9uLXBvb2wuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL2Vycm9yLmNw cCBcCi0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9pbnRvLXR5cGUuY3BwIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL29uY2UtdGVtcC10eXBlLmNwcCBcCi0rICAg ICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS9wcmVwYXJlLXRlbXAtdHlwZS5jcHAgXAotKyAg ICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcHJvY2VkdXJlLmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yZWYtY291bnRlZC1wcmVwYXJlLWluZm8uY3BwIFwKLSsg ICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3JlZi1jb3VudGVkLXN0YXRlbWVudC5jcHAg XAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvcm93LmNwcCBcCi0rICAgICAgICAk KHRvcF9zcmNkaXIpL3NvY2kvY29yZS9yb3dpZC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGly KS9zb2NpL2NvcmUvc2Vzc2lvbi5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2Nv cmUvc29jaS1zaW1wbGUuY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3N0 YXRlbWVudC5jcHAgXAotKyAgICAgICAgJCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdHJhbnNhY3Rp b24uY3BwIFwKLSsgICAgICAgICQodG9wX3NyY2Rpcikvc29jaS9jb3JlL3VzZS10eXBlLmNwcCBc Ci0rICAgICAgICAkKHRvcF9zcmNkaXIpL3NvY2kvY29yZS92YWx1ZXMuY3BwCi1kaWZmIC1OdXIg c29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0gc29jaS0zLjAuMF90 cmVwMzAwL3NvY2kvY29yZS90ZXN0L01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBhY2sv c29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAg KzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuYW0J MjAwOS0wNS0wNiAwMDoyOTowNi4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMjYgQEAKLSsj IyBjb3JlIHN1Yi1kaXJlY3RvcnkKLStpbmNsdWRlICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29t bW9uCi0raW5jbHVkZSAkKHNyY2Rpcikvc291cmNlcy5tawotKwotK01BSU5UQUlORVJDTEVBTkZJ TEVTID0gTWFrZWZpbGUuaW4KLSsKLStFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBBVElCSUxJVFkg PQotKwotK0VYVFJBX0RJU1QgPSAkKEVYVFJBX0RJU1RfRk9SX1NPQ0lfQ09NUEFUSUJJTElUWSkK LSsKLStub2luc3RfTFRMSUJSQVJJRVM9IGxpYnNvY2lfY29yZV90ZXN0LmxhCi0rCi0rbGlic29j aV9jb3JlX3Rlc3RfbGFfU09VUkNFUz0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQotK2xpYnNvY2lf Y29yZV90ZXN0X2xhX0NYWEZMQUdTID0KLStsaWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQgPQot KyNsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTID0gLXZlcnNpb24taW5mbyAkKEdFTkVSSUNf TElCUkFSWV9WRVJTSU9OKQotK2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MgPQotKwotK3Br Z2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291cmNlcykKLStpZiBTT0NJX0hFQURF UlNfQlVSSUVECi0rc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikvc29jaS9jb3JlL3Rl c3QKLStlbHNlCi0rc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikKLStlbmRpZgotK3Br Z2luY2x1ZGVkaXIgPSAkKHNvY2lfaW5jbHVkZV9kaXIpCi0rCi1kaWZmIC1OdXIgc29jaS0zLjAu MF80LXBhY2svc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3Nv Y2kvY29yZS90ZXN0L01ha2VmaWxlLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3Jl L3Rlc3QvTWFrZWZpbGUuaW4JMTk3MC0wMS0wMSAwMTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsr KyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUuaW4JMjAxMS0wNy0w MyAxODo0NDoyOC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNTY3IEBACi0rIyBNYWtlZmls ZS5pbiBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBA Y29uZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAx OTk3LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwg MjAwNiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMgSW5j LgotKyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2Fy ZSBGb3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9v ciBkaXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxv bmcgYXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRp c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lU SE9VVCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91 dAotKyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU TkVTUyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLSsKLSsK LStWUEFUSCA9IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0r cGtnbGliZGlyID0gJChsaWJkaXIpL0BQQUNLQUdFQAotK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4 ZWNkaXIpL0BQQUNLQUdFQAotK2FtX19jZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBB VEhfU0VQQVJBVE9SKSIgJiYgY2QKLStpbnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1j IC1tIDY0NAotK2luc3RhbGxfc2hfUFJPR1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxs X3NoX1NDUklQVCA9ICQoaW5zdGFsbF9zaCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFM TF9EQVRBKQotK3RyYW5zZm9ybSA9ICQocHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxf SU5TVEFMTCA9IDoKLStQUkVfSU5TVEFMTCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFM X1VOSU5TVEFMTCA9IDoKLStQUkVfVU5JTlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgot K2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRACi0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9D T01NT04gPSAkKHBrZ2luY2x1ZGVfSEVBREVSUykgJChzcmNkaXIpL01ha2VmaWxlLmFtIFwKLSsJ JChzcmNkaXIpL01ha2VmaWxlLmluICQoc3JjZGlyKS9zb3VyY2VzLm1rIFwKLSsJJCh0b3Bfc3Jj ZGlyKS9NYWtlZmlsZS5jb21tb24KLStzdWJkaXIgPSBzb2NpL2NvcmUvdGVzdAotK0FDTE9DQUxf TTQgPSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0 b3Bfc3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9h eF9teXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGly KS9jb25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQg XAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIp L2NvbmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00 IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9j b25maWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMp ICQoQ09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxs ZGlycyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gJCh0b3BfYnVpbGRkaXIp L3NvY2kvY29uZmlnLmgKLStDT05GSUdfQ0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFU SF9GSUxFUyA9Ci0rTFRMSUJSQVJJRVMgPSAkKG5vaW5zdF9MVExJQlJBUklFUykKLStsaWJzb2Np X2NvcmVfdGVzdF9sYV9ERVBFTkRFTkNJRVMgPQotK2FtX19vYmplY3RzXzEgPQotK2FtX2xpYnNv Y2lfY29yZV90ZXN0X2xhX09CSkVDVFMgPSAkKGFtX19vYmplY3RzXzEpCi0rbGlic29jaV9jb3Jl X3Rlc3RfbGFfT0JKRUNUUyA9ICQoYW1fbGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUykKLSts aWJzb2NpX2NvcmVfdGVzdF9sYV9MSU5LID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRP T0xGTEFHUykgXAotKwkkKExJQlRPT0xGTEFHUykgLS1tb2RlPWxpbmsgJChDQ0xEKSAkKEFNX0NG TEFHUykgJChDRkxBR1MpIFwKLSsJJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9MREZMQUdTKSAkKExE RkxBR1MpIC1vICRACi0rREVGQVVMVF9JTkNMVURFUyA9IC1JLkBhbV9faXNyY0AgLUkkKHRvcF9i dWlsZGRpcikvc29jaQotK0NPTVBJTEUgPSAkKENDKSAkKERFRlMpICQoREVGQVVMVF9JTkNMVURF UykgJChJTkNMVURFUykgJChBTV9DUFBGTEFHUykgXAotKwkkKENQUEZMQUdTKSAkKEFNX0NGTEFH UykgJChDRkxBR1MpCi0rTFRDT01QSUxFID0gJChMSUJUT09MKSAtLXRhZz1DQyAkKEFNX0xJQlRP T0xGTEFHUykgJChMSUJUT09MRkxBR1MpIFwKLSsJLS1tb2RlPWNvbXBpbGUgJChDQykgJChERUZT KSAkKERFRkFVTFRfSU5DTFVERVMpICQoSU5DTFVERVMpIFwKLSsJJChBTV9DUFBGTEFHUykgJChD UFBGTEFHUykgJChBTV9DRkxBR1MpICQoQ0ZMQUdTKQotK0NDTEQgPSAkKENDKQotK0xJTksgPSAk KExJQlRPT0wpIC0tdGFnPUNDICQoQU1fTElCVE9PTEZMQUdTKSAkKExJQlRPT0xGTEFHUykgXAot KwktLW1vZGU9bGluayAkKENDTEQpICQoQU1fQ0ZMQUdTKSAkKENGTEFHUykgJChBTV9MREZMQUdT KSBcCi0rCSQoTERGTEFHUykgLW8gJEAKLStTT1VSQ0VTID0gJChsaWJzb2NpX2NvcmVfdGVzdF9s YV9TT1VSQ0VTKQotK0RJU1RfU09VUkNFUyA9ICQobGlic29jaV9jb3JlX3Rlc3RfbGFfU09VUkNF UykKLSthbV9fdnBhdGhfYWRqX3NldHVwID0gc3JjZGlyc3RyaXA9YGVjaG8gIiQoc3JjZGlyKSIg fCBzZWQgJ3N8LnwufGcnYDsKLSthbV9fdnBhdGhfYWRqID0gY2FzZSAkJHAgaW4gXAotKyAgICAk KHNyY2RpcikvKikgZj1gZWNobyAiJCRwIiB8IHNlZCAic3xeJCRzcmNkaXJzdHJpcC98fCJgOzsg XAotKyAgICAqKSBmPSQkcDs7IFwKLSsgIGVzYWM7Ci0rYW1fX3N0cmlwX2RpciA9IGY9YGVjaG8g JCRwIHwgc2VkIC1lICdzfF4uKi98fCdgOwotK2FtX19pbnN0YWxsX21heCA9IDQwCi0rYW1fX25v YmFzZV9zdHJpcF9zZXR1cCA9IFwKLSsgIHNyY2RpcnN0cmlwPWBlY2hvICIkKHNyY2RpcikiIHwg c2VkICdzL1tdLlteJCRcXCp8XS9cXFxcJi9nJ2AKLSthbV9fbm9iYXNlX3N0cmlwID0gXAotKyAg Zm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAiOyBkb25lIHwgc2VkIC1lICJzfCQkc3JjZGly c3RyaXAvfHwiCi0rYW1fX25vYmFzZV9saXN0ID0gJChhbV9fbm9iYXNlX3N0cmlwX3NldHVwKTsg XAotKyAgZm9yIHAgaW4gJCRsaXN0OyBkbyBlY2hvICIkJHAgJCRwIjsgZG9uZSB8IFwKLSsgIHNl ZCAic3wgJCRzcmNkaXJzdHJpcC98IHw7IicgLyAuKlwvLyFzLyAuKi8gLi87IHMsXCggLipcKS9b Xi9dKiQkLFwxLCcgfCBcCi0rICAkKEFXSykgJ0JFR0lOIHsgZmlsZXNbIi4iXSA9ICIiIH0geyBm aWxlc1skJDJdID0gZmlsZXNbJCQyXSAiICIgJCQxOyBcCi0rICAgIGlmICgrK25bJCQyXSA9PSAk KGFtX19pbnN0YWxsX21heCkpIFwKLSsgICAgICB7IHByaW50ICQkMiwgZmlsZXNbJCQyXTsgblsk JDJdID0gMDsgZmlsZXNbJCQyXSA9ICIiIH0gfSBcCi0rICAgIEVORCB7IGZvciAoZGlyIGluIGZp bGVzKSBwcmludCBkaXIsIGZpbGVzW2Rpcl0gfScKLSthbV9fYmFzZV9saXN0ID0gXAotKyAgc2Vk ICckJCFOOyQkIU47JCQhTjskJCFOOyQkIU47JCQhTjskJCFOO3MvXG4vIC9nJyB8IFwKLSsgIHNl ZCAnJCQhTjskJCFOOyQkIU47JCQhTjtzL1xuLyAvZycKLSthbV9faW5zdGFsbGRpcnMgPSAiJChE RVNURElSKSQocGtnaW5jbHVkZWRpcikiCi0rSEVBREVSUyA9ICQocGtnaW5jbHVkZV9IRUFERVJT KQotK0VUQUdTID0gZXRhZ3MKLStDVEFHUyA9IGN0YWdzCi0rRElTVEZJTEVTID0gJChESVNUX0NP TU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLStwa2dpbmNs dWRlZGlyID0gJChzb2NpX2luY2x1ZGVfZGlyKQotK0FDTE9DQUwgPSBAQUNMT0NBTEAKLStBTVRB UiA9IEBBTVRBUkAKLStBUiA9IEBBUkAKLStBVVRPQ09ORiA9IEBBVVRPQ09ORkAKLStBVVRPSEVB REVSID0gQEFVVE9IRUFERVJACi0rQVVUT01BS0UgPSBAQVVUT01BS0VACi0rQVdLID0gQEFXS0AK LStCT09TVF9BU0lPX0xJQiA9IEBCT09TVF9BU0lPX0xJQkAKLStCT09TVF9DRkxBR1MgPSBAQk9P U1RfQ0ZMQUdTQAotK0JPT1NUX0RBVEVfVElNRV9MSUIgPSBAQk9PU1RfREFURV9USU1FX0xJQkAK LStCT09TVF9GSUxFU1lTVEVNX0xJQiA9IEBCT09TVF9GSUxFU1lTVEVNX0xJQkAKLStCT09TVF9J T1NUUkVBTVNfTElCID0gQEJPT1NUX0lPU1RSRUFNU19MSUJACi0rQk9PU1RfTElCUyA9IEBCT09T VF9MSUJTQAotK0JPT1NUX01QSV9MSUIgPSBAQk9PU1RfTVBJX0xJQkAKLStCT09TVF9NUElfUFlU SE9OX0xJQiA9IEBCT09TVF9NUElfUFlUSE9OX0xJQkAKLStCT09TVF9QUk9HUkFNX09QVElPTlNf TElCID0gQEJPT1NUX1BST0dSQU1fT1BUSU9OU19MSUJACi0rQk9PU1RfUFlUSE9OX0xJQiA9IEBC T09TVF9QWVRIT05fTElCQAotK0JPT1NUX1JFR0VYX0xJQiA9IEBCT09TVF9SRUdFWF9MSUJACi0r Qk9PU1RfU0VSSUFMSVpBVElPTl9MSUIgPSBAQk9PU1RfU0VSSUFMSVpBVElPTl9MSUJACi0rQk9P U1RfU0lHTkFMU19MSUIgPSBAQk9PU1RfU0lHTkFMU19MSUJACi0rQk9PU1RfU1lTVEVNX0xJQiA9 IEBCT09TVF9TWVNURU1fTElCQAotK0JPT1NUX1RIUkVBRF9MSUIgPSBAQk9PU1RfVEhSRUFEX0xJ QkAKLStCT09TVF9VTklUX1RFU1RfRlJBTUVXT1JLX0xJQiA9IEBCT09TVF9VTklUX1RFU1RfRlJB TUVXT1JLX0xJQkAKLStCT09TVF9WRVJTSU9OID0gQEJPT1NUX1ZFUlNJT05ACi0rQk9PU1RfV1NF UklBTElaQVRJT05fTElCID0gQEJPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQkAKLStDQyA9IEBDQ0AK LStDQ0RFUE1PREUgPSBAQ0NERVBNT0RFQAotK0NGTEFHUyA9IEBDRkxBR1NACi0rQ1BQID0gQENQ UEAKLStDUFBGTEFHUyA9IEBDUFBGTEFHU0AKLStDUFBVTklUX0NGTEFHUyA9IEBDUFBVTklUX0NG TEFHU0AKLStDUFBVTklUX0NPTkZJRyA9IEBDUFBVTklUX0NPTkZJR0AKLStDUFBVTklUX0xJQlMg PSBAQ1BQVU5JVF9MSUJTQAotK0NQUFVOSVRfVkVSU0lPTiA9IEBDUFBVTklUX1ZFUlNJT05ACi0r Q1hYID0gQENYWEAKLStDWFhDUFAgPSBAQ1hYQ1BQQAotK0NYWERFUE1PREUgPSBAQ1hYREVQTU9E RUAKLStDWFhGTEFHUyA9IEBDWFhGTEFHU0AKLStDWUdQQVRIX1cgPSBAQ1lHUEFUSF9XQAotK0RF RlMgPSBAREVGU0AKLStERVBESVIgPSBAREVQRElSQAotK0RMTFRPT0wgPSBARExMVE9PTEAKLStE U1lNVVRJTCA9IEBEU1lNVVRJTEAKLStEVU1QQklOID0gQERVTVBCSU5ACi0rRUNIT19DID0gQEVD SE9fQ0AKLStFQ0hPX04gPSBARUNIT19OQAotK0VDSE9fVCA9IEBFQ0hPX1RACi0rRUdSRVAgPSBA RUdSRVBACi0rRVhFRVhUID0gQEVYRUVYVEAKLStGR1JFUCA9IEBGR1JFUEAKLStHRU5FUklDX0xJ QlJBUllfVkVSU0lPTiA9IEBHRU5FUklDX0xJQlJBUllfVkVSU0lPTkAKLStHUkVQID0gQEdSRVBA Ci0rSU5TVEFMTCA9IEBJTlNUQUxMQAotK0lOU1RBTExfREFUQSA9IEBJTlNUQUxMX0RBVEFACi0r SU5TVEFMTF9QUk9HUkFNID0gQElOU1RBTExfUFJPR1JBTUAKLStJTlNUQUxMX1NDUklQVCA9IEBJ TlNUQUxMX1NDUklQVEAKLStJTlNUQUxMX1NUUklQX1BST0dSQU0gPSBASU5TVEFMTF9TVFJJUF9Q Uk9HUkFNQAotK0xEID0gQExEQAotK0xERkxBR1MgPSBATERGTEFHU0AKLStMSUJPQkpTID0gQExJ Qk9CSlNACi0rTElCUyA9IEBMSUJTQAotK0xJQlRPT0wgPSBATElCVE9PTEAKLStMSVBPID0gQExJ UE9ACi0rTE5fUyA9IEBMTl9TQAotK0xUTElCT0JKUyA9IEBMVExJQk9CSlNACi0rTUFLRUlORk8g PSBATUFLRUlORk9ACi0rTUFOSUZFU1RfVE9PTCA9IEBNQU5JRkVTVF9UT09MQAotK01LRElSX1Ag PSBATUtESVJfUEAKLStNWVNRTF9DRkxBR1MgPSBATVlTUUxfQ0ZMQUdTQAotK01ZU1FMX0NfTElC ID0gQE1ZU1FMX0NfTElCQAotK01ZU1FMX0RJUlMgPSBATVlTUUxfRElSU0AKLStNWVNRTF9MSUJT ID0gQE1ZU1FMX0xJQlNACi0rTVlTUUxfVkVSU0lPTiA9IEBNWVNRTF9WRVJTSU9OQAotK05NID0g QE5NQAotK05NRURJVCA9IEBOTUVESVRACi0rT0JKRFVNUCA9IEBPQkpEVU1QQAotK09CSkVYVCA9 IEBPQkpFWFRACi0rT1JBQ0xFX0RJUlMgPSBAT1JBQ0xFX0RJUlNACi0rT1JBQ0xFX09DSV9DRkxB R1MgPSBAT1JBQ0xFX09DSV9DRkxBR1NACi0rT1JBQ0xFX09DSV9MREZMQUdTID0gQE9SQUNMRV9P Q0lfTERGTEFHU0AKLStPUkFDTEVfT0NJX1ZFUlNJT04gPSBAT1JBQ0xFX09DSV9WRVJTSU9OQAot K09UT09MID0gQE9UT09MQAotK09UT09MNjQgPSBAT1RPT0w2NEAKLStQQUNLQUdFID0gQFBBQ0tB R0VACi0rUEFDS0FHRV9CVUdSRVBPUlQgPSBAUEFDS0FHRV9CVUdSRVBPUlRACi0rUEFDS0FHRV9O QU1FID0gQFBBQ0tBR0VfTkFNRUAKLStQQUNLQUdFX1NUUklORyA9IEBQQUNLQUdFX1NUUklOR0AK LStQQUNLQUdFX1RBUk5BTUUgPSBAUEFDS0FHRV9UQVJOQU1FQAotK1BBQ0tBR0VfVVJMID0gQFBB Q0tBR0VfVVJMQAotK1BBQ0tBR0VfVkVSU0lPTiA9IEBQQUNLQUdFX1ZFUlNJT05ACi0rUEFUSF9T RVBBUkFUT1IgPSBAUEFUSF9TRVBBUkFUT1JACi0rUEVSTCA9IEBQRVJMQAotK1BHX0NPTkZJRyA9 IEBQR19DT05GSUdACi0rUE9TVEdSRVNRTF9DRkxBR1MgPSBAUE9TVEdSRVNRTF9DRkxBR1NACi0r UE9TVEdSRVNRTF9ESVJTID0gQFBPU1RHUkVTUUxfRElSU0AKLStQT1NUR1JFU1FMX0xERkxBR1Mg PSBAUE9TVEdSRVNRTF9MREZMQUdTQAotK1BPU1RHUkVTUUxfVkVSU0lPTiA9IEBQT1NUR1JFU1FM X1ZFUlNJT05ACi0rUkFOTElCID0gQFJBTkxJQkAKLStTRUQgPSBAU0VEQAotK1NFVF9NQUtFID0g QFNFVF9NQUtFQAotK1NIRUxMID0gQFNIRUxMQAotK1NPQ0lfSEVBREVSU19CVVJJRUQgPSBAU09D SV9IRUFERVJTX0JVUklFREAKLStTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfTVlT UUxfSEVBREVSU19CVVJJRURACi0rU09DSV9QT1NUR1JFU1FMX0hFQURFUlNfQlVSSUVEID0gQFNP Q0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFREAKLStTVFJJUCA9IEBTVFJJUEAKLStVUExPQURf Q09NTUFORCA9IEBVUExPQURfQ09NTUFOREAKLStWRVJTSU9OID0gQFZFUlNJT05ACi0rYWJzX2J1 aWxkZGlyID0gQGFic19idWlsZGRpckAKLSthYnNfc3JjZGlyID0gQGFic19zcmNkaXJACi0rYWJz X3RvcF9idWlsZGRpciA9IEBhYnNfdG9wX2J1aWxkZGlyQAotK2Fic190b3Bfc3JjZGlyID0gQGFi c190b3Bfc3JjZGlyQAotK2FjX2N0X0FSID0gQGFjX2N0X0FSQAotK2FjX2N0X0NDID0gQGFjX2N0 X0NDQAotK2FjX2N0X0NYWCA9IEBhY19jdF9DWFhACi0rYWNfY3RfRFVNUEJJTiA9IEBhY19jdF9E VU1QQklOQAotK2FtX19pbmNsdWRlID0gQGFtX19pbmNsdWRlQAotK2FtX19sZWFkaW5nX2RvdCA9 IEBhbV9fbGVhZGluZ19kb3RACi0rYW1fX3F1b3RlID0gQGFtX19xdW90ZUAKLSthbV9fdGFyID0g QGFtX190YXJACi0rYW1fX3VudGFyID0gQGFtX191bnRhckAKLStiaW5kaXIgPSBAYmluZGlyQAot K2J1aWxkID0gQGJ1aWxkQAotK2J1aWxkX2FsaWFzID0gQGJ1aWxkX2FsaWFzQAotK2J1aWxkX2Nw dSA9IEBidWlsZF9jcHVACi0rYnVpbGRfb3MgPSBAYnVpbGRfb3NACi0rYnVpbGRfdmVuZG9yID0g QGJ1aWxkX3ZlbmRvckAKLStidWlsZGRpciA9IEBidWlsZGRpckAKLStkYXRhZGlyID0gQGRhdGFk aXJACi0rZGF0YXJvb3RkaXIgPSBAZGF0YXJvb3RkaXJACi0rZGlmZl9vayA9IEBkaWZmX29rQAot K2RvY2RpciA9IEBkb2NkaXJACi0rZG94eWdlbl9vayA9IEBkb3h5Z2VuX29rQAotK2R2aWRpciA9 IEBkdmlkaXJACi0rZHZpcHNfb2sgPSBAZHZpcHNfb2tACi0rZXhlY19wcmVmaXggPSBAZXhlY19w cmVmaXhACi0rZ3Nfb2sgPSBAZ3Nfb2tACi0raG9zdCA9IEBob3N0QAotK2hvc3RfYWxpYXMgPSBA aG9zdF9hbGlhc0AKLStob3N0X2NwdSA9IEBob3N0X2NwdUAKLStob3N0X29zID0gQGhvc3Rfb3NA Ci0raG9zdF92ZW5kb3IgPSBAaG9zdF92ZW5kb3JACi0raHRtbGRpciA9IEBodG1sZGlyQAotK2lu Y2x1ZGVkaXIgPSBAaW5jbHVkZWRpckAKLStpbmZvZGlyID0gQGluZm9kaXJACi0raW5zdGFsbF9z aCA9IEBpbnN0YWxsX3NoQAotK2xhdGV4X29rID0gQGxhdGV4X29rQAotK2xpYmRpciA9IEBsaWJk aXJACi0rbGliZXhlY2RpciA9IEBsaWJleGVjZGlyQAotK2xvY2FsZWRpciA9IEBsb2NhbGVkaXJA Ci0rbG9jYWxzdGF0ZWRpciA9IEBsb2NhbHN0YXRlZGlyQAotK21hbmRpciA9IEBtYW5kaXJACi0r bWtkaXJfcCA9IEBta2Rpcl9wQAotK29sZGluY2x1ZGVkaXIgPSBAb2xkaW5jbHVkZWRpckAKLStw ZGZkaXIgPSBAcGRmZGlyQAotK3ByZWZpeCA9IEBwcmVmaXhACi0rcHJvZ3JhbV90cmFuc2Zvcm1f bmFtZSA9IEBwcm9ncmFtX3RyYW5zZm9ybV9uYW1lQAotK3BzZGlyID0gQHBzZGlyQAotK3NiaW5k aXIgPSBAc2JpbmRpckAKLStzZWRfb2sgPSBAc2VkX29rQAotK3NoYXJlZHN0YXRlZGlyID0gQHNo YXJlZHN0YXRlZGlyQAotK3NyY2RpciA9IEBzcmNkaXJACi0rc3lzY29uZmRpciA9IEBzeXNjb25m ZGlyQAotK3RhcmdldF9hbGlhcyA9IEB0YXJnZXRfYWxpYXNACi0rdG9wX2J1aWxkX3ByZWZpeCA9 IEB0b3BfYnVpbGRfcHJlZml4QAotK3RvcF9idWlsZGRpciA9IEB0b3BfYnVpbGRkaXJACi0rdG9w X3NyY2RpciA9IEB0b3Bfc3JjZGlyQAotK0FNX0NQUEZMQUdTID0gLUkkKHRvcF9idWlsZGRpcikg LUkkKHRvcF9zcmNkaXIpCi0rY29yZV90ZXN0X2hfc291cmNlcyA9ICQodG9wX3NyY2Rpcikvc29j aS9jb3JlL3Rlc3QvY29tbW9uLXRlc3RzLmgKLStjb3JlX3Rlc3RfY2Nfc291cmNlcyA9IAotK01B SU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStFWFRSQV9ESVNUX0ZPUl9TT0NJX0NP TVBBVElCSUxJVFkgPSAKLStFWFRSQV9ESVNUID0gJChFWFRSQV9ESVNUX0ZPUl9TT0NJX0NPTVBB VElCSUxJVFkpCi0rbm9pbnN0X0xUTElCUkFSSUVTID0gbGlic29jaV9jb3JlX3Rlc3QubGEKLSts aWJzb2NpX2NvcmVfdGVzdF9sYV9TT1VSQ0VTID0gJChjb3JlX3Rlc3RfaF9zb3VyY2VzKQotK2xp YnNvY2lfY29yZV90ZXN0X2xhX0NYWEZMQUdTID0gCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfTElC QUREID0gCi0rI2xpYnNvY2lfY29yZV90ZXN0X2xhX0xERkxBR1MgPSAtdmVyc2lvbi1pbmZvICQo R0VORVJJQ19MSUJSQVJZX1ZFUlNJT04pCi0rbGlic29jaV9jb3JlX3Rlc3RfbGFfTERGTEFHUyA9 IAotK3BrZ2luY2x1ZGVfSEVBREVSUyA9ICQoY29yZV90ZXN0X2hfc291cmNlcykKLStAU09DSV9I RUFERVJTX0JVUklFRF9GQUxTRUBzb2NpX2luY2x1ZGVfZGlyID0gJChpbmNsdWRlZGlyKQotK0BT T0NJX0hFQURFUlNfQlVSSUVEX1RSVUVAc29jaV9pbmNsdWRlX2RpciA9ICQoaW5jbHVkZWRpcikv c29jaS9jb3JlL3Rlc3QKLSthbGw6IGFsbC1hbQotKwotKy5TVUZGSVhFUzoKLSskKHNyY2Rpcikv TWFrZWZpbGUuaW46ICAkKHNyY2RpcikvTWFrZWZpbGUuYW0gJCh0b3Bfc3JjZGlyKS9NYWtlZmls ZS5jb21tb24gJChzcmNkaXIpL3NvdXJjZXMubWsgJChhbV9fY29uZmlndXJlX2RlcHMpCi0rCUBm b3IgZGVwIGluICQ/OyBkbyBcCi0rCSAgY2FzZSAnJChhbV9fY29uZmlndXJlX2RlcHMpJyBpbiBc Ci0rCSAgICAqJCRkZXAqKSBcCi0rCSAgICAgICggY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFL RSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoICkgXAotKwkgICAgICAgICYmIHsgaWYgdGVz dCAtZiAkQDsgdGhlbiBleGl0IDA7IGVsc2UgYnJlYWs7IGZpOyB9OyBcCi0rCSAgICAgIGV4aXQg MTs7IFwKLSsJICBlc2FjOyBcCi0rCWRvbmU7IFwKLSsJZWNobyAnIGNkICQodG9wX3NyY2Rpcikg JiYgJChBVVRPTUFLRSkgLS1nbnUgc29jaS9jb3JlL3Rlc3QvTWFrZWZpbGUnOyBcCi0rCSQoYW1f X2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtFKSAtLWdudSBzb2NpL2NvcmUv dGVzdC9NYWtlZmlsZQotKy5QUkVDSU9VUzogTWFrZWZpbGUKLStNYWtlZmlsZTogJChzcmNkaXIp L01ha2VmaWxlLmluICQodG9wX2J1aWxkZGlyKS9jb25maWcuc3RhdHVzCi0rCUBjYXNlICckPycg aW4gXAotKwkgICpjb25maWcuc3RhdHVzKikgXAotKwkgICAgY2QgJCh0b3BfYnVpbGRkaXIpICYm ICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNoOzsgXAotKwkgICopIFwKLSsJICAg IGVjaG8gJyBjZCAkKHRvcF9idWlsZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQo c3ViZGlyKS8kQCAkKGFtX19kZXBmaWxlc19tYXliZSknOyBcCi0rCSAgICBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChTSEVMTCkgLi9jb25maWcuc3RhdHVzICQoc3ViZGlyKS8kQCAkKGFtX19kZXBm aWxlc19tYXliZSk7OyBcCi0rCWVzYWM7Ci0rCi0rJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0 dXM6ICQodG9wX3NyY2RpcikvY29uZmlndXJlICQoQ09ORklHX1NUQVRVU19ERVBFTkRFTkNJRVMp Ci0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAotKwotKyQodG9wX3NyY2RpcikvY29uZmlndXJlOiAgJChhbV9fY29uZmlndXJlX2RlcHMp Ci0rCWNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVm cmVzaAotKyQoQUNMT0NBTF9NNCk6ICAkKGFtX19hY2xvY2FsX200X2RlcHMpCi0rCWNkICQodG9w X2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVzaAotKyQoYW1f X2FjbG9jYWxfbTRfZGVwcyk6Ci0rCi0rY2xlYW4tbm9pbnN0TFRMSUJSQVJJRVM6Ci0rCS10ZXN0 IC16ICIkKG5vaW5zdF9MVExJQlJBUklFUykiIHx8IHJtIC1mICQobm9pbnN0X0xUTElCUkFSSUVT KQotKwlAbGlzdD0nJChub2luc3RfTFRMSUJSQVJJRVMpJzsgZm9yIHAgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgZGlyPSJgZWNobyAkJHAgfCBzZWQgLWUgJ3N8L1teL10qJCR8fCdgIjsgXAotKwkgIHRl c3QgIiQkZGlyIiAhPSAiJCRwIiB8fCBkaXI9LjsgXAotKwkgIGVjaG8gInJtIC1mIFwiJCR7ZGly fS9zb19sb2NhdGlvbnNcIiI7IFwKLSsJICBybSAtZiAiJCR7ZGlyfS9zb19sb2NhdGlvbnMiOyBc Ci0rCWRvbmUKLStsaWJzb2NpX2NvcmVfdGVzdC5sYTogJChsaWJzb2NpX2NvcmVfdGVzdF9sYV9P QkpFQ1RTKSAkKGxpYnNvY2lfY29yZV90ZXN0X2xhX0RFUEVOREVOQ0lFUykgCi0rCSQobGlic29j aV9jb3JlX3Rlc3RfbGFfTElOSykgICQobGlic29jaV9jb3JlX3Rlc3RfbGFfT0JKRUNUUykgJChs aWJzb2NpX2NvcmVfdGVzdF9sYV9MSUJBREQpICQoTElCUykKLSsKLSttb3N0bHljbGVhbi1jb21w aWxlOgotKwktcm0gLWYgKi4kKE9CSkVYVCkKLSsKLStkaXN0Y2xlYW4tY29tcGlsZToKLSsJLXJt IC1mICoudGFiLmMKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0gLWYgKi5sbwotKwot K2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLStpbnN0YWxsLXBrZ2luY2x1 ZGVIRUFERVJTOiAkKHBrZ2luY2x1ZGVfSEVBREVSUykKLSsJQCQoTk9STUFMX0lOU1RBTEwpCi0r CXRlc3QgLXogIiQocGtnaW5jbHVkZWRpcikiIHx8ICQoTUtESVJfUCkgIiQoREVTVERJUikkKHBr Z2luY2x1ZGVkaXIpIgotKwlAbGlzdD0nJChwa2dpbmNsdWRlX0hFQURFUlMpJzsgdGVzdCAtbiAi JChwa2dpbmNsdWRlZGlyKSIgfHwgbGlzdD07IFwKLSsJZm9yIHAgaW4gJCRsaXN0OyBkbyBcCi0r CSAgaWYgdGVzdCAtZiAiJCRwIjsgdGhlbiBkPTsgZWxzZSBkPSIkKHNyY2RpcikvIjsgZmk7IFwK LSsJICBlY2hvICIkJGQkJHAiOyBcCi0rCWRvbmUgfCAkKGFtX19iYXNlX2xpc3QpIHwgXAotKwl3 aGlsZSByZWFkIGZpbGVzOyBkbyBcCi0rCSAgZWNobyAiICQoSU5TVEFMTF9IRUFERVIpICQkZmls ZXMgJyQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpJyI7IFwKLSsJICAkKElOU1RBTExfSEVBREVS KSAkJGZpbGVzICIkKERFU1RESVIpJChwa2dpbmNsdWRlZGlyKSIgfHwgZXhpdCAkJD87IFwKLSsJ ZG9uZQotKwotK3VuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUzoKLSsJQCQoTk9STUFMX1VOSU5T VEFMTCkKLSsJQGxpc3Q9JyQocGtnaW5jbHVkZV9IRUFERVJTKSc7IHRlc3QgLW4gIiQocGtnaW5j bHVkZWRpcikiIHx8IGxpc3Q9OyBcCi0rCWZpbGVzPWBmb3IgcCBpbiAkJGxpc3Q7IGRvIGVjaG8g JCRwOyBkb25lIHwgc2VkIC1lICdzfF4uKi98fCdgOyBcCi0rCXRlc3QgLW4gIiQkZmlsZXMiIHx8 IGV4aXQgMDsgXAotKwllY2hvICIgKCBjZCAnJChERVNURElSKSQocGtnaW5jbHVkZWRpciknICYm IHJtIC1mIiAkJGZpbGVzICIpIjsgXAotKwljZCAiJChERVNURElSKSQocGtnaW5jbHVkZWRpciki ICYmIHJtIC1mICQkZmlsZXMKLSsKLStJRDogJChIRUFERVJTKSAkKFNPVVJDRVMpICQoTElTUCkg JChUQUdTX0ZJTEVTKQotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVSUykgJChMSVNQKSAkKFRB R1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBpIGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYg dGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsgZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZp OyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykgJ3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5 ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChub25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMp IHByaW50IGk7IH07IH0nYDsgXAotKwlta2lkIC1mSUQgJCR1bmlxdWUKLSt0YWdzOiBUQUdTCi0r Ci0rVEFHUzogICQoSEVBREVSUykgJChTT1VSQ0VTKSAgJChUQUdTX0RFUEVOREVOQ0lFUykgXAot KwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBcCi0rCWhlcmU9YHB3ZGA7IFwKLSsJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0r CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwg XAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCi0rCXNoaWZ0OyBcCi0rCWlmIHRlc3QgLXogIiQoRVRBR1NfQVJHUykkJCokJHVuaXF1ZSI7 IHRoZW4gOjsgZWxzZSBcCi0rCSAgdGVzdCAtbiAiJCR1bmlxdWUiIHx8IHVuaXF1ZT0kJGVtcHR5 X2ZpeDsgXAotKwkgIGlmIHRlc3QgJCQjIC1ndCAwOyB0aGVuIFwKLSsJICAgICQoRVRBR1MpICQo RVRBR1NGTEFHUykgJChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgIiQk QCIgJCR1bmlxdWU7IFwKLSsJICBlbHNlIFwKLSsJICAgICQoRVRBR1MpICQoRVRBR1NGTEFHUykg JChBTV9FVEFHU0ZMQUdTKSAkKEVUQUdTX0FSR1MpIFwKLSsJICAgICAgJCR1bmlxdWU7IFwKLSsJ ICBmaTsgXAotKwlmaQotK2N0YWdzOiBDVEFHUwotK0NUQUdTOiAgJChIRUFERVJTKSAkKFNPVVJD RVMpICAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMpICQoTElTUCkKLSsJ bGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpICAkKExJU1ApICQoVEFHU19GSUxFUyknOyBcCi0r CXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0IC1mICIkJGkiOyB0 aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwKLSsJICBkb25lIHwg XAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAxOyB9IFwKLSsJICAg ICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJpbnQgaTsgfTsgfSdg OyBcCi0rCXRlc3QgLXogIiQoQ1RBR1NfQVJHUykkJHVuaXF1ZSIgXAotKwkgIHx8ICQoQ1RBR1Mp ICQoQ1RBR1NGTEFHUykgJChBTV9DVEFHU0ZMQUdTKSAkKENUQUdTX0FSR1MpIFwKLSsJICAgICAk JHVuaXF1ZQotKwotK0dUQUdTOgotKwloZXJlPWAkKGFtX19jZCkgJCh0b3BfYnVpbGRkaXIpICYm IHB3ZGAgXAotKwkgICYmICQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpIFwKLSsJICAmJiBndGFncyAt aSAkKEdUQUdTX0FSR1MpICIkJGhlcmUiCi0rCi0rZGlzdGNsZWFuLXRhZ3M6Ci0rCS1ybSAtZiBU QUdTIElEIEdUQUdTIEdSVEFHUyBHU1lNUyBHUEFUSCB0YWdzCi0rCi0rZGlzdGRpcjogJChESVNU RklMRVMpCi0rCUBzcmNkaXJzdHJpcD1gZWNobyAiJChzcmNkaXIpIiB8IHNlZCAncy9bXS5bXiQk XFwqXS9cXFxcJi9nJ2A7IFwKLSsJdG9wc3JjZGlyc3RyaXA9YGVjaG8gIiQodG9wX3NyY2Rpciki IHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwlsaXN0PSckKERJU1RGSUxFUykn OyBcCi0rCSAgZGlzdF9maWxlcz1gZm9yIGZpbGUgaW4gJCRsaXN0OyBkbyBlY2hvICQkZmlsZTsg ZG9uZSB8IFwKLSsJICBzZWQgLWUgInN8XiQkc3JjZGlyc3RyaXAvfHw7dCIgXAotKwkgICAgICAt ZSAic3xeJCR0b3BzcmNkaXJzdHJpcC98JCh0b3BfYnVpbGRkaXIpL3w7dCJgOyBcCi0rCWNhc2Ug JCRkaXN0X2ZpbGVzIGluIFwKLSsJICAqLyopICQoTUtESVJfUCkgYGVjaG8gIiQkZGlzdF9maWxl cyIgfCBcCi0rCQkJICAgc2VkICcvXC8vIWQ7c3xefCQoZGlzdGRpcikvfDtzLC9bXi9dKiQkLCwn IHwgXAotKwkJCSAgIHNvcnQgLXVgIDs7IFwKLSsJZXNhYzsgXAotKwlmb3IgZmlsZSBpbiAkJGRp c3RfZmlsZXM7IGRvIFwKLSsJICBpZiB0ZXN0IC1mICQkZmlsZSB8fCB0ZXN0IC1kICQkZmlsZTsg dGhlbiBkPS47IGVsc2UgZD0kKHNyY2Rpcik7IGZpOyBcCi0rCSAgaWYgdGVzdCAtZCAkJGQvJCRm aWxlOyB0aGVuIFwKLSsJICAgIGRpcj1gZWNobyAiLyQkZmlsZSIgfCBzZWQgLWUgJ3MsL1teL10q JCQsLCdgOyBcCi0rCSAgICBpZiB0ZXN0IC1kICIkKGRpc3RkaXIpLyQkZmlsZSI7IHRoZW4gXAot KwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4 ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBpZiB0ZXN0IC1kICQo c3JjZGlyKS8kJGZpbGUgJiYgdGVzdCAkJGQgIT0gJChzcmNkaXIpOyB0aGVuIFwKLSsJICAgICAg Y3AgLWZwUiAkKHNyY2RpcikvJCRmaWxlICIkKGRpc3RkaXIpJCRkaXIiIHx8IGV4aXQgMTsgXAot KwkgICAgICBmaW5kICIkKGRpc3RkaXIpLyQkZmlsZSIgLXR5cGUgZCAhIC1wZXJtIC03MDAgLWV4 ZWMgY2htb2QgdStyd3gge30gXDs7IFwKLSsJICAgIGZpOyBcCi0rCSAgICBjcCAtZnBSICQkZC8k JGZpbGUgIiQoZGlzdGRpcikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgZWxzZSBcCi0rCSAgICB0 ZXN0IC1mICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgY3AgLXAgJCRkLyQkZmlsZSAi JChkaXN0ZGlyKS8kJGZpbGUiIFwKLSsJICAgIHx8IGV4aXQgMTsgXAotKwkgIGZpOyBcCi0rCWRv bmUKLStjaGVjay1hbTogYWxsLWFtCi0rY2hlY2s6IGNoZWNrLWFtCi0rYWxsLWFtOiBNYWtlZmls ZSAkKExUTElCUkFSSUVTKSAkKEhFQURFUlMpCi0raW5zdGFsbGRpcnM6Ci0rCWZvciBkaXIgaW4g IiQoREVTVERJUikkKHBrZ2luY2x1ZGVkaXIpIjsgZG8gXAotKwkgIHRlc3QgLXogIiQkZGlyIiB8 fCAkKE1LRElSX1ApICIkJGRpciI7IFwKLSsJZG9uZQotK2luc3RhbGw6IGluc3RhbGwtYW0KLStp bnN0YWxsLWV4ZWM6IGluc3RhbGwtZXhlYy1hbQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRh LWFtCi0rdW5pbnN0YWxsOiB1bmluc3RhbGwtYW0KLSsKLStpbnN0YWxsLWFtOiBhbGwtYW0KLSsJ QCQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGluc3RhbGwtZXhlYy1hbSBpbnN0YWxsLWRhdGEtYW0K LSsKLStpbnN0YWxsY2hlY2s6IGluc3RhbGxjaGVjay1hbQotK2luc3RhbGwtc3RyaXA6Ci0rCSQo TUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxMX1NUUklQX1BS T0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RSSVBfUFJPR1JB TSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RSSVApJyB8fCBc Ci0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChTVFJJUCknImAg aW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJpYzoKLSsKLStk aXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJTEVTKSIgfHwg cm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNkaXIpIiB8fCB0 ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQoQ09ORklHX0NM RUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoKLSsJQGVjaG8g IlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNlIgotKwlAZWNo byAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9vbHMgdG8gcmVi dWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwgcm0gLWYgJChN QUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tYW0KLSsKLStjbGVhbi1hbTogY2xl YW4tZ2VuZXJpYyBjbGVhbi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIFwKLSsJbW9z dGx5Y2xlYW4tYW0KLSsKLStkaXN0Y2xlYW46IGRpc3RjbGVhbi1hbQotKwktcm0gLWYgTWFrZWZp bGUKLStkaXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1n ZW5lcmljIFwKLSsJZGlzdGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1hbQotKwotK2R2aS1hbToK LSsKLStodG1sOiBodG1sLWFtCi0rCi0raHRtbC1hbToKLSsKLStpbmZvOiBpbmZvLWFtCi0rCi0r aW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06IGluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMK LSsKLStpbnN0YWxsLWR2aTogaW5zdGFsbC1kdmktYW0KLSsKLStpbnN0YWxsLWR2aS1hbToKLSsK LStpbnN0YWxsLWV4ZWMtYW06Ci0rCi0raW5zdGFsbC1odG1sOiBpbnN0YWxsLWh0bWwtYW0KLSsK LStpbnN0YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tYW0KLSsK LStpbnN0YWxsLWluZm8tYW06Ci0rCi0raW5zdGFsbC1tYW46Ci0rCi0raW5zdGFsbC1wZGY6IGlu c3RhbGwtcGRmLWFtCi0rCi0raW5zdGFsbC1wZGYtYW06Ci0rCi0raW5zdGFsbC1wczogaW5zdGFs bC1wcy1hbQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNoZWNrLWFtOgotKwotK21h aW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tYW0KLSsJLXJtIC1mIE1ha2VmaWxlCi0r bWFpbnRhaW5lci1jbGVhbi1hbTogZGlzdGNsZWFuLWFtIG1haW50YWluZXItY2xlYW4tZ2VuZXJp YwotKwotK21vc3RseWNsZWFuOiBtb3N0bHljbGVhbi1hbQotKwotK21vc3RseWNsZWFuLWFtOiBt b3N0bHljbGVhbi1jb21waWxlIG1vc3RseWNsZWFuLWdlbmVyaWMgXAotKwltb3N0bHljbGVhbi1s aWJ0b29sCi0rCi0rcGRmOiBwZGYtYW0KLSsKLStwZGYtYW06Ci0rCi0rcHM6IHBzLWFtCi0rCi0r cHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOiB1bmluc3RhbGwtcGtnaW5jbHVkZUhFQURFUlMKLSsK LSsuTUFLRTogaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwCi0rCi0rLlBIT05ZOiBDVEFHUyBHVEFH UyBhbGwgYWxsLWFtIGNoZWNrIGNoZWNrLWFtIGNsZWFuIGNsZWFuLWdlbmVyaWMgXAotKwljbGVh bi1saWJ0b29sIGNsZWFuLW5vaW5zdExUTElCUkFSSUVTIGN0YWdzIGRpc3RjbGVhbiBcCi0rCWRp c3RjbGVhbi1jb21waWxlIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1saWJ0b29sIFwKLSsJ ZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgZHZpLWFtIGh0bWwgaHRtbC1hbSBpbmZvIGluZm8t YW0gXAotKwlpbnN0YWxsIGluc3RhbGwtYW0gaW5zdGFsbC1kYXRhIGluc3RhbGwtZGF0YS1hbSBp bnN0YWxsLWR2aSBcCi0rCWluc3RhbGwtZHZpLWFtIGluc3RhbGwtZXhlYyBpbnN0YWxsLWV4ZWMt YW0gaW5zdGFsbC1odG1sIFwKLSsJaW5zdGFsbC1odG1sLWFtIGluc3RhbGwtaW5mbyBpbnN0YWxs LWluZm8tYW0gaW5zdGFsbC1tYW4gXAotKwlpbnN0YWxsLXBkZiBpbnN0YWxsLXBkZi1hbSBpbnN0 YWxsLXBrZ2luY2x1ZGVIRUFERVJTIFwKLSsJaW5zdGFsbC1wcyBpbnN0YWxsLXBzLWFtIGluc3Rh bGwtc3RyaXAgaW5zdGFsbGNoZWNrIFwKLSsJaW5zdGFsbGNoZWNrLWFtIGluc3RhbGxkaXJzIG1h aW50YWluZXItY2xlYW4gXAotKwltYWludGFpbmVyLWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4g bW9zdGx5Y2xlYW4tY29tcGlsZSBcCi0rCW1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xlYW4t bGlidG9vbCBwZGYgcGRmLWFtIHBzIHBzLWFtIFwKLSsJdGFncyB1bmluc3RhbGwgdW5pbnN0YWxs LWFtIHVuaW5zdGFsbC1wa2dpbmNsdWRlSEVBREVSUwotKwotK0BTRVRfTUFLRUAKLSsKLSsjIFRl bGwgdmVyc2lvbnMgWzMuNTksMy42Mykgb2YgR05VIG1ha2UgdG8gbm90IGV4cG9ydCBhbGwgdmFy aWFibGVzLgotKyMgT3RoZXJ3aXNlIGEgc3lzdGVtIGxpbWl0IChmb3IgU3lzViBhdCBsZWFzdCkg bWF5IGJlIGV4Y2VlZGVkLgotKy5OT0VYUE9SVDoKLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFj ay9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL2NvcmUv dGVzdC9zb3VyY2VzLm1rCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS9jb3JlL3Rlc3Qvc291 cmNlcy5tawkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAotKysrIHNvY2ktMy4w LjBfdHJlcDMwMC9zb2NpL2NvcmUvdGVzdC9zb3VyY2VzLm1rCTIwMDktMDQtMTYgMTk6Mzc6MDUu MDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDIgQEAKLStjb3JlX3Rlc3RfaF9zb3VyY2VzID0g JCh0b3Bfc3JjZGlyKS9zb2NpL2NvcmUvdGVzdC9jb21tb24tdGVzdHMuaAotK2NvcmVfdGVzdF9j Y19zb3VyY2VzID0KLWRpZmYgLU51ciBzb2NpLTMuMC4wXzQtcGFjay9zb2NpL01ha2VmaWxlLmFt IHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCi0tLS0gc29jaS0zLjAuMF80LXBh Y2svc29jaS9NYWtlZmlsZS5hbQkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAwMCArMDEwMAot KysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpL01ha2VmaWxlLmFtCTIwMDktMDQtMTYgMTk6Mzc6 MDcuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDkgQEAKLStpbmNsdWRlICQodG9wX3NyY2Rp cikvTWFrZWZpbGUuY29tbW9uCi0rCi0rIyMgU291cmNlIGRpcmVjdG9yeQotKwotK01BSU5UQUlO RVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLSsKLStTVUJESVJTID0gY29yZSBiYWNrZW5kcwot KwotK0VYVFJBX0RJU1QgPQotZGlmZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kvTWFrZWZp bGUuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4KLS0tLSBzb2NpLTMuMC4w XzQtcGFjay9zb2NpL01ha2VmaWxlLmluCTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAwMDAwMDAwICsw MTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kvTWFrZWZpbGUuaW4JMjAxMS0wNy0wMyAx ODo0NDoyNy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNjM4IEBACi0rIyBNYWtlZmlsZS5p biBnZW5lcmF0ZWQgYnkgYXV0b21ha2UgMS4xMS4xIGZyb20gTWFrZWZpbGUuYW0uCi0rIyBAY29u ZmlndXJlX2lucHV0QAotKwotKyMgQ29weXJpZ2h0IChDKSAxOTk0LCAxOTk1LCAxOTk2LCAxOTk3 LCAxOTk4LCAxOTk5LCAyMDAwLCAyMDAxLCAyMDAyLAotKyMgMjAwMywgMjAwNCwgMjAwNSwgMjAw NiwgMjAwNywgMjAwOCwgMjAwOSAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLAotKyMgSW5jLgot KyMgVGhpcyBNYWtlZmlsZS5pbiBpcyBmcmVlIHNvZnR3YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBG b3VuZGF0aW9uCi0rIyBnaXZlcyB1bmxpbWl0ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBk aXN0cmlidXRlIGl0LAotKyMgd2l0aCBvciB3aXRob3V0IG1vZGlmaWNhdGlvbnMsIGFzIGxvbmcg YXMgdGhpcyBub3RpY2UgaXMgcHJlc2VydmVkLgotKwotKyMgVGhpcyBwcm9ncmFtIGlzIGRpc3Ry aWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0rIyBidXQgV0lUSE9V VCBBTlkgV0FSUkFOVFksIHRvIHRoZSBleHRlbnQgcGVybWl0dGVkIGJ5IGxhdzsgd2l0aG91dAot KyMgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVT UyBGT1IgQQotKyMgUEFSVElDVUxBUiBQVVJQT1NFLgotKwotK0BTRVRfTUFLRUAKLStWUEFUSCA9 IEBzcmNkaXJACi0rcGtnZGF0YWRpciA9ICQoZGF0YWRpcikvQFBBQ0tBR0VACi0rcGtnaW5jbHVk ZWRpciA9ICQoaW5jbHVkZWRpcikvQFBBQ0tBR0VACi0rcGtnbGliZGlyID0gJChsaWJkaXIpL0BQ QUNLQUdFQAotK3BrZ2xpYmV4ZWNkaXIgPSAkKGxpYmV4ZWNkaXIpL0BQQUNLQUdFQAotK2FtX19j ZCA9IENEUEFUSD0iJCR7WlNIX1ZFUlNJT04rLn0kKFBBVEhfU0VQQVJBVE9SKSIgJiYgY2QKLStp bnN0YWxsX3NoX0RBVEEgPSAkKGluc3RhbGxfc2gpIC1jIC1tIDY0NAotK2luc3RhbGxfc2hfUFJP R1JBTSA9ICQoaW5zdGFsbF9zaCkgLWMKLStpbnN0YWxsX3NoX1NDUklQVCA9ICQoaW5zdGFsbF9z aCkgLWMKLStJTlNUQUxMX0hFQURFUiA9ICQoSU5TVEFMTF9EQVRBKQotK3RyYW5zZm9ybSA9ICQo cHJvZ3JhbV90cmFuc2Zvcm1fbmFtZSkKLStOT1JNQUxfSU5TVEFMTCA9IDoKLStQUkVfSU5TVEFM TCA9IDoKLStQT1NUX0lOU1RBTEwgPSA6Ci0rTk9STUFMX1VOSU5TVEFMTCA9IDoKLStQUkVfVU5J TlNUQUxMID0gOgotK1BPU1RfVU5JTlNUQUxMID0gOgotK2J1aWxkX3RyaXBsZXQgPSBAYnVpbGRA Ci0raG9zdF90cmlwbGV0ID0gQGhvc3RACi0rRElTVF9DT01NT04gPSAkKHNyY2RpcikvTWFrZWZp bGUuYW0gJChzcmNkaXIpL01ha2VmaWxlLmluIFwKLSsJJChzcmNkaXIpL2NvbmZpZy5oLmluICQo dG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9uCi0rc3ViZGlyID0gc29jaQotK0FDTE9DQUxfTTQg PSAkKHRvcF9zcmNkaXIpL2FjbG9jYWwubTQKLSthbV9fYWNsb2NhbF9tNF9kZXBzID0gJCh0b3Bf c3JjZGlyKS9jb25maWcvYXhfYm9vc3QubTQgXAotKwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9heF9t eXNxbC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2F4X29yYWNsZV9vY2kubTQgXAotKwkk KHRvcF9zcmNkaXIpL2NvbmZpZy9heF9wb3N0Z3Jlc3FsLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9j b25maWcvY3BwdW5pdC5tNCBcCi0rCSQodG9wX3NyY2RpcikvY29uZmlnL2xpYnRvb2wubTQgXAot KwkkKHRvcF9zcmNkaXIpL2NvbmZpZy9sdG9wdGlvbnMubTQgXAotKwkkKHRvcF9zcmNkaXIpL2Nv bmZpZy9sdHN1Z2FyLm00IFwKLSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR2ZXJzaW9uLm00IFwK LSsJJCh0b3Bfc3JjZGlyKS9jb25maWcvbHR+b2Jzb2xldGUubTQgJCh0b3Bfc3JjZGlyKS9jb25m aWd1cmUuYWMKLSthbV9fY29uZmlndXJlX2RlcHMgPSAkKGFtX19hY2xvY2FsX200X2RlcHMpICQo Q09ORklHVVJFX0RFUEVOREVOQ0lFUykgXAotKwkkKEFDTE9DQUxfTTQpCi0rbWtpbnN0YWxsZGly cyA9ICQoaW5zdGFsbF9zaCkgLWQKLStDT05GSUdfSEVBREVSID0gY29uZmlnLmgKLStDT05GSUdf Q0xFQU5fRklMRVMgPQotK0NPTkZJR19DTEVBTl9WUEFUSF9GSUxFUyA9Ci0rU09VUkNFUyA9Ci0r RElTVF9TT1VSQ0VTID0KLStSRUNVUlNJVkVfVEFSR0VUUyA9IGFsbC1yZWN1cnNpdmUgY2hlY2st cmVjdXJzaXZlIGR2aS1yZWN1cnNpdmUgXAotKwlodG1sLXJlY3Vyc2l2ZSBpbmZvLXJlY3Vyc2l2 ZSBpbnN0YWxsLWRhdGEtcmVjdXJzaXZlIFwKLSsJaW5zdGFsbC1kdmktcmVjdXJzaXZlIGluc3Rh bGwtZXhlYy1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLWh0bWwtcmVjdXJzaXZlIGluc3RhbGwtaW5m by1yZWN1cnNpdmUgXAotKwlpbnN0YWxsLXBkZi1yZWN1cnNpdmUgaW5zdGFsbC1wcy1yZWN1cnNp dmUgaW5zdGFsbC1yZWN1cnNpdmUgXAotKwlpbnN0YWxsY2hlY2stcmVjdXJzaXZlIGluc3RhbGxk aXJzLXJlY3Vyc2l2ZSBwZGYtcmVjdXJzaXZlIFwKLSsJcHMtcmVjdXJzaXZlIHVuaW5zdGFsbC1y ZWN1cnNpdmUKLStSRUNVUlNJVkVfQ0xFQU5fVEFSR0VUUyA9IG1vc3RseWNsZWFuLXJlY3Vyc2l2 ZSBjbGVhbi1yZWN1cnNpdmUJXAotKyAgZGlzdGNsZWFuLXJlY3Vyc2l2ZSBtYWludGFpbmVyLWNs ZWFuLXJlY3Vyc2l2ZQotK0FNX1JFQ1VSU0lWRV9UQVJHRVRTID0gJChSRUNVUlNJVkVfVEFSR0VU UzotcmVjdXJzaXZlPSkgXAotKwkkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTOi1yZWN1cnNpdmU9 KSB0YWdzIFRBR1MgY3RhZ3MgQ1RBR1MgXAotKwlkaXN0ZGlyCi0rRVRBR1MgPSBldGFncwotK0NU QUdTID0gY3RhZ3MKLStESVNUX1NVQkRJUlMgPSAkKFNVQkRJUlMpCi0rRElTVEZJTEVTID0gJChE SVNUX0NPTU1PTikgJChESVNUX1NPVVJDRVMpICQoVEVYSU5GT1MpICQoRVhUUkFfRElTVCkKLSth bV9fcmVsYXRpdml6ZSA9IFwKLSsgIGRpcjA9YHB3ZGA7IFwKLSsgIHNlZF9maXJzdD0ncyxeXChb Xi9dKlwpLy4qJCQsXDEsJzsgXAotKyAgc2VkX3Jlc3Q9J3MsXlteL10qLyosLCc7IFwKLSsgIHNl ZF9sYXN0PSdzLF4uKi9cKFteL10qXCkkJCxcMSwnOyBcCi0rICBzZWRfYnV0bGFzdD0ncywvKlte L10qJCQsLCc7IFwKLSsgIHdoaWxlIHRlc3QgLW4gIiQkZGlyMSI7IGRvIFwKLSsgICAgZmlyc3Q9 YGVjaG8gIiQkZGlyMSIgfCBzZWQgLWUgIiQkc2VkX2ZpcnN0ImA7IFwKLSsgICAgaWYgdGVzdCAi JCRmaXJzdCIgIT0gIi4iOyB0aGVuIFwKLSsgICAgICBpZiB0ZXN0ICIkJGZpcnN0IiA9ICIuLiI7 IHRoZW4gXAotKyAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIwIiB8IHNlZCAtZSAiJCRzZWRfbGFz dCJgLyIkJGRpcjIiOyBcCi0rICAgICAgICBkaXIwPWBlY2hvICIkJGRpcjAiIHwgc2VkIC1lICIk JHNlZF9idXRsYXN0ImA7IFwKLSsgICAgICBlbHNlIFwKLSsgICAgICAgIGZpcnN0Mj1gZWNobyAi JCRkaXIyIiB8IHNlZCAtZSAiJCRzZWRfZmlyc3QiYDsgXAotKyAgICAgICAgaWYgdGVzdCAiJCRm aXJzdDIiID0gIiQkZmlyc3QiOyB0aGVuIFwKLSsgICAgICAgICAgZGlyMj1gZWNobyAiJCRkaXIy IiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICAgICAgICBlbHNlIFwKLSsgICAgICAgICAg ZGlyMj0iLi4vJCRkaXIyIjsgXAotKyAgICAgICAgZmk7IFwKLSsgICAgICAgIGRpcjA9IiQkZGly MCIvIiQkZmlyc3QiOyBcCi0rICAgICAgZmk7IFwKLSsgICAgZmk7IFwKLSsgICAgZGlyMT1gZWNo byAiJCRkaXIxIiB8IHNlZCAtZSAiJCRzZWRfcmVzdCJgOyBcCi0rICBkb25lOyBcCi0rICByZWxk aXI9IiQkZGlyMiIKLStBQ0xPQ0FMID0gQEFDTE9DQUxACi0rQU1UQVIgPSBAQU1UQVJACi0rQVIg PSBAQVJACi0rQVVUT0NPTkYgPSBAQVVUT0NPTkZACi0rQVVUT0hFQURFUiA9IEBBVVRPSEVBREVS QAotK0FVVE9NQUtFID0gQEFVVE9NQUtFQAotK0FXSyA9IEBBV0tACi0rQk9PU1RfQVNJT19MSUIg PSBAQk9PU1RfQVNJT19MSUJACi0rQk9PU1RfQ0ZMQUdTID0gQEJPT1NUX0NGTEFHU0AKLStCT09T VF9EQVRFX1RJTUVfTElCID0gQEJPT1NUX0RBVEVfVElNRV9MSUJACi0rQk9PU1RfRklMRVNZU1RF TV9MSUIgPSBAQk9PU1RfRklMRVNZU1RFTV9MSUJACi0rQk9PU1RfSU9TVFJFQU1TX0xJQiA9IEBC T09TVF9JT1NUUkVBTVNfTElCQAotK0JPT1NUX0xJQlMgPSBAQk9PU1RfTElCU0AKLStCT09TVF9N UElfTElCID0gQEJPT1NUX01QSV9MSUJACi0rQk9PU1RfTVBJX1BZVEhPTl9MSUIgPSBAQk9PU1Rf TVBJX1BZVEhPTl9MSUJACi0rQk9PU1RfUFJPR1JBTV9PUFRJT05TX0xJQiA9IEBCT09TVF9QUk9H UkFNX09QVElPTlNfTElCQAotK0JPT1NUX1BZVEhPTl9MSUIgPSBAQk9PU1RfUFlUSE9OX0xJQkAK LStCT09TVF9SRUdFWF9MSUIgPSBAQk9PU1RfUkVHRVhfTElCQAotK0JPT1NUX1NFUklBTElaQVRJ T05fTElCID0gQEJPT1NUX1NFUklBTElaQVRJT05fTElCQAotK0JPT1NUX1NJR05BTFNfTElCID0g QEJPT1NUX1NJR05BTFNfTElCQAotK0JPT1NUX1NZU1RFTV9MSUIgPSBAQk9PU1RfU1lTVEVNX0xJ QkAKLStCT09TVF9USFJFQURfTElCID0gQEJPT1NUX1RIUkVBRF9MSUJACi0rQk9PU1RfVU5JVF9U RVNUX0ZSQU1FV09SS19MSUIgPSBAQk9PU1RfVU5JVF9URVNUX0ZSQU1FV09SS19MSUJACi0rQk9P U1RfVkVSU0lPTiA9IEBCT09TVF9WRVJTSU9OQAotK0JPT1NUX1dTRVJJQUxJWkFUSU9OX0xJQiA9 IEBCT09TVF9XU0VSSUFMSVpBVElPTl9MSUJACi0rQ0MgPSBAQ0NACi0rQ0NERVBNT0RFID0gQEND REVQTU9ERUAKLStDRkxBR1MgPSBAQ0ZMQUdTQAotK0NQUCA9IEBDUFBACi0rQ1BQRkxBR1MgPSBA Q1BQRkxBR1NACi0rQ1BQVU5JVF9DRkxBR1MgPSBAQ1BQVU5JVF9DRkxBR1NACi0rQ1BQVU5JVF9D T05GSUcgPSBAQ1BQVU5JVF9DT05GSUdACi0rQ1BQVU5JVF9MSUJTID0gQENQUFVOSVRfTElCU0AK LStDUFBVTklUX1ZFUlNJT04gPSBAQ1BQVU5JVF9WRVJTSU9OQAotK0NYWCA9IEBDWFhACi0rQ1hY Q1BQID0gQENYWENQUEAKLStDWFhERVBNT0RFID0gQENYWERFUE1PREVACi0rQ1hYRkxBR1MgPSBA Q1hYRkxBR1NACi0rQ1lHUEFUSF9XID0gQENZR1BBVEhfV0AKLStERUZTID0gQERFRlNACi0rREVQ RElSID0gQERFUERJUkAKLStETExUT09MID0gQERMTFRPT0xACi0rRFNZTVVUSUwgPSBARFNZTVVU SUxACi0rRFVNUEJJTiA9IEBEVU1QQklOQAotK0VDSE9fQyA9IEBFQ0hPX0NACi0rRUNIT19OID0g QEVDSE9fTkAKLStFQ0hPX1QgPSBARUNIT19UQAotK0VHUkVQID0gQEVHUkVQQAotK0VYRUVYVCA9 IEBFWEVFWFRACi0rRkdSRVAgPSBARkdSRVBACi0rR0VORVJJQ19MSUJSQVJZX1ZFUlNJT04gPSBA R0VORVJJQ19MSUJSQVJZX1ZFUlNJT05ACi0rR1JFUCA9IEBHUkVQQAotK0lOU1RBTEwgPSBASU5T VEFMTEAKLStJTlNUQUxMX0RBVEEgPSBASU5TVEFMTF9EQVRBQAotK0lOU1RBTExfUFJPR1JBTSA9 IEBJTlNUQUxMX1BST0dSQU1ACi0rSU5TVEFMTF9TQ1JJUFQgPSBASU5TVEFMTF9TQ1JJUFRACi0r SU5TVEFMTF9TVFJJUF9QUk9HUkFNID0gQElOU1RBTExfU1RSSVBfUFJPR1JBTUAKLStMRCA9IEBM REAKLStMREZMQUdTID0gQExERkxBR1NACi0rTElCT0JKUyA9IEBMSUJPQkpTQAotK0xJQlMgPSBA TElCU0AKLStMSUJUT09MID0gQExJQlRPT0xACi0rTElQTyA9IEBMSVBPQAotK0xOX1MgPSBATE5f U0AKLStMVExJQk9CSlMgPSBATFRMSUJPQkpTQAotK01BS0VJTkZPID0gQE1BS0VJTkZPQAotK01B TklGRVNUX1RPT0wgPSBATUFOSUZFU1RfVE9PTEAKLStNS0RJUl9QID0gQE1LRElSX1BACi0rTVlT UUxfQ0ZMQUdTID0gQE1ZU1FMX0NGTEFHU0AKLStNWVNRTF9DX0xJQiA9IEBNWVNRTF9DX0xJQkAK LStNWVNRTF9ESVJTID0gQE1ZU1FMX0RJUlNACi0rTVlTUUxfTElCUyA9IEBNWVNRTF9MSUJTQAot K01ZU1FMX1ZFUlNJT04gPSBATVlTUUxfVkVSU0lPTkAKLStOTSA9IEBOTUAKLStOTUVESVQgPSBA Tk1FRElUQAotK09CSkRVTVAgPSBAT0JKRFVNUEAKLStPQkpFWFQgPSBAT0JKRVhUQAotK09SQUNM RV9ESVJTID0gQE9SQUNMRV9ESVJTQAotK09SQUNMRV9PQ0lfQ0ZMQUdTID0gQE9SQUNMRV9PQ0lf Q0ZMQUdTQAotK09SQUNMRV9PQ0lfTERGTEFHUyA9IEBPUkFDTEVfT0NJX0xERkxBR1NACi0rT1JB Q0xFX09DSV9WRVJTSU9OID0gQE9SQUNMRV9PQ0lfVkVSU0lPTkAKLStPVE9PTCA9IEBPVE9PTEAK LStPVE9PTDY0ID0gQE9UT09MNjRACi0rUEFDS0FHRSA9IEBQQUNLQUdFQAotK1BBQ0tBR0VfQlVH UkVQT1JUID0gQFBBQ0tBR0VfQlVHUkVQT1JUQAotK1BBQ0tBR0VfTkFNRSA9IEBQQUNLQUdFX05B TUVACi0rUEFDS0FHRV9TVFJJTkcgPSBAUEFDS0FHRV9TVFJJTkdACi0rUEFDS0FHRV9UQVJOQU1F ID0gQFBBQ0tBR0VfVEFSTkFNRUAKLStQQUNLQUdFX1VSTCA9IEBQQUNLQUdFX1VSTEAKLStQQUNL QUdFX1ZFUlNJT04gPSBAUEFDS0FHRV9WRVJTSU9OQAotK1BBVEhfU0VQQVJBVE9SID0gQFBBVEhf U0VQQVJBVE9SQAotK1BFUkwgPSBAUEVSTEAKLStQR19DT05GSUcgPSBAUEdfQ09ORklHQAotK1BP U1RHUkVTUUxfQ0ZMQUdTID0gQFBPU1RHUkVTUUxfQ0ZMQUdTQAotK1BPU1RHUkVTUUxfRElSUyA9 IEBQT1NUR1JFU1FMX0RJUlNACi0rUE9TVEdSRVNRTF9MREZMQUdTID0gQFBPU1RHUkVTUUxfTERG TEFHU0AKLStQT1NUR1JFU1FMX1ZFUlNJT04gPSBAUE9TVEdSRVNRTF9WRVJTSU9OQAotK1JBTkxJ QiA9IEBSQU5MSUJACi0rU0VEID0gQFNFREAKLStTRVRfTUFLRSA9IEBTRVRfTUFLRUAKLStTSEVM TCA9IEBTSEVMTEAKLStTT0NJX0hFQURFUlNfQlVSSUVEID0gQFNPQ0lfSEVBREVSU19CVVJJRURA Ci0rU09DSV9NWVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX01ZU1FMX0hFQURFUlNfQlVSSUVE QAotK1NPQ0lfUE9TVEdSRVNRTF9IRUFERVJTX0JVUklFRCA9IEBTT0NJX1BPU1RHUkVTUUxfSEVB REVSU19CVVJJRURACi0rU1RSSVAgPSBAU1RSSVBACi0rVVBMT0FEX0NPTU1BTkQgPSBAVVBMT0FE X0NPTU1BTkRACi0rVkVSU0lPTiA9IEBWRVJTSU9OQAotK2Fic19idWlsZGRpciA9IEBhYnNfYnVp bGRkaXJACi0rYWJzX3NyY2RpciA9IEBhYnNfc3JjZGlyQAotK2Fic190b3BfYnVpbGRkaXIgPSBA YWJzX3RvcF9idWlsZGRpckAKLSthYnNfdG9wX3NyY2RpciA9IEBhYnNfdG9wX3NyY2RpckAKLSth Y19jdF9BUiA9IEBhY19jdF9BUkAKLSthY19jdF9DQyA9IEBhY19jdF9DQ0AKLSthY19jdF9DWFgg PSBAYWNfY3RfQ1hYQAotK2FjX2N0X0RVTVBCSU4gPSBAYWNfY3RfRFVNUEJJTkAKLSthbV9faW5j bHVkZSA9IEBhbV9faW5jbHVkZUAKLSthbV9fbGVhZGluZ19kb3QgPSBAYW1fX2xlYWRpbmdfZG90 QAotK2FtX19xdW90ZSA9IEBhbV9fcXVvdGVACi0rYW1fX3RhciA9IEBhbV9fdGFyQAotK2FtX191 bnRhciA9IEBhbV9fdW50YXJACi0rYmluZGlyID0gQGJpbmRpckAKLStidWlsZCA9IEBidWlsZEAK LStidWlsZF9hbGlhcyA9IEBidWlsZF9hbGlhc0AKLStidWlsZF9jcHUgPSBAYnVpbGRfY3B1QAot K2J1aWxkX29zID0gQGJ1aWxkX29zQAotK2J1aWxkX3ZlbmRvciA9IEBidWlsZF92ZW5kb3JACi0r YnVpbGRkaXIgPSBAYnVpbGRkaXJACi0rZGF0YWRpciA9IEBkYXRhZGlyQAotK2RhdGFyb290ZGly ID0gQGRhdGFyb290ZGlyQAotK2RpZmZfb2sgPSBAZGlmZl9va0AKLStkb2NkaXIgPSBAZG9jZGly QAotK2RveHlnZW5fb2sgPSBAZG94eWdlbl9va0AKLStkdmlkaXIgPSBAZHZpZGlyQAotK2R2aXBz X29rID0gQGR2aXBzX29rQAotK2V4ZWNfcHJlZml4ID0gQGV4ZWNfcHJlZml4QAotK2dzX29rID0g QGdzX29rQAotK2hvc3QgPSBAaG9zdEAKLStob3N0X2FsaWFzID0gQGhvc3RfYWxpYXNACi0raG9z dF9jcHUgPSBAaG9zdF9jcHVACi0raG9zdF9vcyA9IEBob3N0X29zQAotK2hvc3RfdmVuZG9yID0g QGhvc3RfdmVuZG9yQAotK2h0bWxkaXIgPSBAaHRtbGRpckAKLStpbmNsdWRlZGlyID0gQGluY2x1 ZGVkaXJACi0raW5mb2RpciA9IEBpbmZvZGlyQAotK2luc3RhbGxfc2ggPSBAaW5zdGFsbF9zaEAK LStsYXRleF9vayA9IEBsYXRleF9va0AKLStsaWJkaXIgPSBAbGliZGlyQAotK2xpYmV4ZWNkaXIg PSBAbGliZXhlY2RpckAKLStsb2NhbGVkaXIgPSBAbG9jYWxlZGlyQAotK2xvY2Fsc3RhdGVkaXIg PSBAbG9jYWxzdGF0ZWRpckAKLSttYW5kaXIgPSBAbWFuZGlyQAotK21rZGlyX3AgPSBAbWtkaXJf cEAKLStvbGRpbmNsdWRlZGlyID0gQG9sZGluY2x1ZGVkaXJACi0rcGRmZGlyID0gQHBkZmRpckAK LStwcmVmaXggPSBAcHJlZml4QAotK3Byb2dyYW1fdHJhbnNmb3JtX25hbWUgPSBAcHJvZ3JhbV90 cmFuc2Zvcm1fbmFtZUAKLStwc2RpciA9IEBwc2RpckAKLStzYmluZGlyID0gQHNiaW5kaXJACi0r c2VkX29rID0gQHNlZF9va0AKLStzaGFyZWRzdGF0ZWRpciA9IEBzaGFyZWRzdGF0ZWRpckAKLStz cmNkaXIgPSBAc3JjZGlyQAotK3N5c2NvbmZkaXIgPSBAc3lzY29uZmRpckAKLSt0YXJnZXRfYWxp YXMgPSBAdGFyZ2V0X2FsaWFzQAotK3RvcF9idWlsZF9wcmVmaXggPSBAdG9wX2J1aWxkX3ByZWZp eEAKLSt0b3BfYnVpbGRkaXIgPSBAdG9wX2J1aWxkZGlyQAotK3RvcF9zcmNkaXIgPSBAdG9wX3Ny Y2RpckAKLStBTV9DUFBGTEFHUyA9IC1JJCh0b3BfYnVpbGRkaXIpIC1JJCh0b3Bfc3JjZGlyKQot K01BSU5UQUlORVJDTEVBTkZJTEVTID0gTWFrZWZpbGUuaW4KLStTVUJESVJTID0gY29yZSBiYWNr ZW5kcwotK0VYVFJBX0RJU1QgPSAKLSthbGw6IGNvbmZpZy5oCi0rCSQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIGFsbC1yZWN1cnNpdmUKLSsKLSsuU1VGRklYRVM6Ci0rJChzcmNkaXIpL01ha2VmaWxl LmluOiAgJChzcmNkaXIpL01ha2VmaWxlLmFtICQodG9wX3NyY2RpcikvTWFrZWZpbGUuY29tbW9u ICQoYW1fX2NvbmZpZ3VyZV9kZXBzKQotKwlAZm9yIGRlcCBpbiAkPzsgZG8gXAotKwkgIGNhc2Ug JyQoYW1fX2NvbmZpZ3VyZV9kZXBzKScgaW4gXAotKwkgICAgKiQkZGVwKikgXAotKwkgICAgICAo IGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBhbS0tcmVmcmVz aCApIFwKLSsJICAgICAgICAmJiB7IGlmIHRlc3QgLWYgJEA7IHRoZW4gZXhpdCAwOyBlbHNlIGJy ZWFrOyBmaTsgfTsgXAotKwkgICAgICBleGl0IDE7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBc Ci0rCWVjaG8gJyBjZCAkKHRvcF9zcmNkaXIpICYmICQoQVVUT01BS0UpIC0tZ251IHNvY2kvTWFr ZWZpbGUnOyBcCi0rCSQoYW1fX2NkKSAkKHRvcF9zcmNkaXIpICYmIFwKLSsJICAkKEFVVE9NQUtF KSAtLWdudSBzb2NpL01ha2VmaWxlCi0rLlBSRUNJT1VTOiBNYWtlZmlsZQotK01ha2VmaWxlOiAk KHNyY2RpcikvTWFrZWZpbGUuaW4gJCh0b3BfYnVpbGRkaXIpL2NvbmZpZy5zdGF0dXMKLSsJQGNh c2UgJyQ/JyBpbiBcCi0rCSAgKmNvbmZpZy5zdGF0dXMqKSBcCi0rCSAgICBjZCAkKHRvcF9idWls ZGRpcikgJiYgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgYW0tLXJlZnJlc2g7OyBcCi0rCSAgKikg XAotKwkgICAgZWNobyAnIGNkICQodG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5z dGF0dXMgJChzdWJkaXIpLyRAICQoYW1fX2RlcGZpbGVzX21heWJlKSc7IFwKLSsJICAgIGNkICQo dG9wX2J1aWxkZGlyKSAmJiAkKFNIRUxMKSAuL2NvbmZpZy5zdGF0dXMgJChzdWJkaXIpLyRAICQo YW1fX2RlcGZpbGVzX21heWJlKTs7IFwKLSsJZXNhYzsKLSsKLSskKHRvcF9idWlsZGRpcikvY29u ZmlnLnN0YXR1czogJCh0b3Bfc3JjZGlyKS9jb25maWd1cmUgJChDT05GSUdfU1RBVFVTX0RFUEVO REVOQ0lFUykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCi0rCi0rJCh0b3Bfc3JjZGlyKS9jb25maWd1cmU6ICAkKGFtX19jb25maWd1 cmVfZGVwcykKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1Mp IGFtLS1yZWZyZXNoCi0rJChBQ0xPQ0FMX000KTogICQoYW1fX2FjbG9jYWxfbTRfZGVwcykKLSsJ Y2QgJCh0b3BfYnVpbGRkaXIpICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIGFtLS1yZWZyZXNo Ci0rJChhbV9fYWNsb2NhbF9tNF9kZXBzKToKLSsKLStjb25maWcuaDogc3RhbXAtaDEKLSsJQGlm IHRlc3QgISAtZiAkQDsgdGhlbiBcCi0rCSAgcm0gLWYgc3RhbXAtaDE7IFwKLSsJICAkKE1BS0Up ICQoQU1fTUFLRUZMQUdTKSBzdGFtcC1oMTsgXAotKwllbHNlIDo7IGZpCi0rCi0rc3RhbXAtaDE6 ICQoc3JjZGlyKS9jb25maWcuaC5pbiAkKHRvcF9idWlsZGRpcikvY29uZmlnLnN0YXR1cwotKwlA cm0gLWYgc3RhbXAtaDEKLSsJY2QgJCh0b3BfYnVpbGRkaXIpICYmICQoU0hFTEwpIC4vY29uZmln LnN0YXR1cyBzb2NpL2NvbmZpZy5oCi0rJChzcmNkaXIpL2NvbmZpZy5oLmluOiAgJChhbV9fY29u ZmlndXJlX2RlcHMpIAotKwkoJChhbV9fY2QpICQodG9wX3NyY2RpcikgJiYgJChBVVRPSEVBREVS KSkKLSsJcm0gLWYgc3RhbXAtaDEKLSsJdG91Y2ggJEAKLSsKLStkaXN0Y2xlYW4taGRyOgotKwkt cm0gLWYgY29uZmlnLmggc3RhbXAtaDEKLSsKLSttb3N0bHljbGVhbi1saWJ0b29sOgotKwktcm0g LWYgKi5sbwotKwotK2NsZWFuLWxpYnRvb2w6Ci0rCS1ybSAtcmYgLmxpYnMgX2xpYnMKLSsKLSsj IFRoaXMgZGlyZWN0b3J5J3Mgc3ViZGlyZWN0b3JpZXMgYXJlIG1vc3RseSBpbmRlcGVuZGVudDsg eW91IGNhbiBjZAotKyMgaW50byB0aGVtIGFuZCBydW4gYG1ha2UnIHdpdGhvdXQgZ29pbmcgdGhy b3VnaCB0aGlzIE1ha2VmaWxlLgotKyMgVG8gY2hhbmdlIHRoZSB2YWx1ZXMgb2YgYG1ha2UnIHZh cmlhYmxlczogaW5zdGVhZCBvZiBlZGl0aW5nIE1ha2VmaWxlcywKLSsjICgxKSBpZiB0aGUgdmFy aWFibGUgaXMgc2V0IGluIGBjb25maWcuc3RhdHVzJywgZWRpdCBgY29uZmlnLnN0YXR1cycKLSsj ICAgICAod2hpY2ggd2lsbCBjYXVzZSB0aGUgTWFrZWZpbGVzIHRvIGJlIHJlZ2VuZXJhdGVkIHdo ZW4geW91IHJ1biBgbWFrZScpOwotKyMgKDIpIG90aGVyd2lzZSwgcGFzcyB0aGUgZGVzaXJlZCB2 YWx1ZXMgb24gdGhlIGBtYWtlJyBjb21tYW5kIGxpbmUuCi0rJChSRUNVUlNJVkVfVEFSR0VUUyk6 Ci0rCUBmYWlsPSBmYWlsY29tPSdleGl0IDEnOyBcCi0rCWZvciBmIGluIHggJCRNQUtFRkxBR1M7 IGRvIFwKLSsJICBjYXNlICQkZiBpbiBcCi0rCSAgICAqPSogfCAtLVsha10qKTs7IFwKLSsJICAg ICprKikgZmFpbGNvbT0nZmFpbD15ZXMnOzsgXAotKwkgIGVzYWM7IFwKLSsJZG9uZTsgXAotKwlk b3Rfc2Vlbj1ubzsgXAotKwl0YXJnZXQ9YGVjaG8gJEAgfCBzZWQgcy8tcmVjdXJzaXZlLy9gOyBc Ci0rCWxpc3Q9JyQoU1VCRElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIGVj aG8gIk1ha2luZyAkJHRhcmdldCBpbiAkJHN1YmRpciI7IFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAiLiI7IHRoZW4gXAotKwkgICAgZG90X3NlZW49eWVzOyBcCi0rCSAgICBsb2NhbF90YXJn ZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0PSIkJHRh cmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChNQUtFKSAk KEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFpbGNvbTsg XAotKwlkb25lOyBcCi0rCWlmIHRlc3QgIiQkZG90X3NlZW4iID0gIm5vIjsgdGhlbiBcCi0rCSAg JChNQUtFKSAkKEFNX01BS0VGTEFHUykgIiQkdGFyZ2V0LWFtIiB8fCBleGl0IDE7IFwKLSsJZmk7 IHRlc3QgLXogIiQkZmFpbCIKLSsKLSskKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKToKLSsJQGZh aWw9IGZhaWxjb209J2V4aXQgMSc7IFwKLSsJZm9yIGYgaW4geCAkJE1BS0VGTEFHUzsgZG8gXAot KwkgIGNhc2UgJCRmIGluIFwKLSsJICAgICo9KiB8IC0tWyFrXSopOzsgXAotKwkgICAgKmsqKSBm YWlsY29tPSdmYWlsPXllcyc7OyBcCi0rCSAgZXNhYzsgXAotKwlkb25lOyBcCi0rCWRvdF9zZWVu PW5vOyBcCi0rCWNhc2UgIiRAIiBpbiBcCi0rCSAgZGlzdGNsZWFuLSogfCBtYWludGFpbmVyLWNs ZWFuLSopIGxpc3Q9JyQoRElTVF9TVUJESVJTKScgOzsgXAotKwkgICopIGxpc3Q9JyQoU1VCRElS UyknIDs7IFwKLSsJZXNhYzsgXAotKwlyZXY9Jyc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBc Ci0rCSAgaWYgdGVzdCAiJCRzdWJkaXIiID0gIi4iOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgcmV2 PSIkJHN1YmRpciAkJHJldiI7IFwKLSsJICBmaTsgXAotKwlkb25lOyBcCi0rCXJldj0iJCRyZXYg LiI7IFwKLSsJdGFyZ2V0PWBlY2hvICRAIHwgc2VkIHMvLXJlY3Vyc2l2ZS8vYDsgXAotKwlmb3Ig c3ViZGlyIGluICQkcmV2OyBkbyBcCi0rCSAgZWNobyAiTWFraW5nICQkdGFyZ2V0IGluICQkc3Vi ZGlyIjsgXAotKwkgIGlmIHRlc3QgIiQkc3ViZGlyIiA9ICIuIjsgdGhlbiBcCi0rCSAgICBsb2Nh bF90YXJnZXQ9IiQkdGFyZ2V0LWFtIjsgXAotKwkgIGVsc2UgXAotKwkgICAgbG9jYWxfdGFyZ2V0 PSIkJHRhcmdldCI7IFwKLSsJICBmaTsgXAotKwkgICgkKGFtX19jZCkgJCRzdWJkaXIgJiYgJChN QUtFKSAkKEFNX01BS0VGTEFHUykgJCRsb2NhbF90YXJnZXQpIFwKLSsJICB8fCBldmFsICQkZmFp bGNvbTsgXAotKwlkb25lICYmIHRlc3QgLXogIiQkZmFpbCIKLSt0YWdzLXJlY3Vyc2l2ZToKLSsJ bGlzdD0nJChTVUJESVJTKSc7IGZvciBzdWJkaXIgaW4gJCRsaXN0OyBkbyBcCi0rCSAgdGVzdCAi JCRzdWJkaXIiID0gLiB8fCAoJChhbV9fY2QpICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtF RkxBR1MpIHRhZ3MpOyBcCi0rCWRvbmUKLStjdGFncy1yZWN1cnNpdmU6Ci0rCWxpc3Q9JyQoU1VC RElSUyknOyBmb3Igc3ViZGlyIGluICQkbGlzdDsgZG8gXAotKwkgIHRlc3QgIiQkc3ViZGlyIiA9 IC4gfHwgKCQoYW1fX2NkKSAkJHN1YmRpciAmJiAkKE1BS0UpICQoQU1fTUFLRUZMQUdTKSBjdGFn cyk7IFwKLSsJZG9uZQotKwotK0lEOiAkKEhFQURFUlMpICQoU09VUkNFUykgJChMSVNQKSAkKFRB R1NfRklMRVMpCi0rCWxpc3Q9JyQoU09VUkNFUykgJChIRUFERVJTKSAkKExJU1ApICQoVEFHU19G SUxFUyknOyBcCi0rCXVuaXF1ZT1gZm9yIGkgaW4gJCRsaXN0OyBkbyBcCi0rCSAgICBpZiB0ZXN0 IC1mICIkJGkiOyB0aGVuIGVjaG8gJCRpOyBlbHNlIGVjaG8gJChzcmNkaXIpLyQkaTsgZmk7IFwK LSsJICBkb25lIHwgXAotKwkgICQoQVdLKSAneyBmaWxlc1skJDBdID0gMTsgbm9uZW1wdHkgPSAx OyB9IFwKLSsJICAgICAgRU5EIHsgaWYgKG5vbmVtcHR5KSB7IGZvciAoaSBpbiBmaWxlcykgcHJp bnQgaTsgfTsgfSdgOyBcCi0rCW1raWQgLWZJRCAkJHVuaXF1ZQotK3RhZ3M6IFRBR1MKLSsKLStU QUdTOiB0YWdzLXJlY3Vyc2l2ZSAkKEhFQURFUlMpICQoU09VUkNFUykgY29uZmlnLmguaW4gJChU QUdTX0RFUEVOREVOQ0lFUykgXAotKwkJJChUQUdTX0ZJTEVTKSAkKExJU1ApCi0rCXNldCB4OyBc Ci0rCWhlcmU9YHB3ZGA7IFwKLSsJaWYgKCQoRVRBR1MpIC0tZXRhZ3MtaW5jbHVkZSAtLXZlcnNp b24pID4vZGV2L251bGwgMj4mMTsgdGhlbiBcCi0rCSAgaW5jbHVkZV9vcHRpb249LS1ldGFncy1p bmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PS47IFwKLSsJZWxzZSBcCi0rCSAgaW5jbHVkZV9vcHRp b249LS1pbmNsdWRlOyBcCi0rCSAgZW1wdHlfZml4PTsgXAotKwlmaTsgXAotKwlsaXN0PSckKFNV QkRJUlMpJzsgZm9yIHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRp ciIgPSAuOyB0aGVuIDo7IGVsc2UgXAotKwkgICAgdGVzdCAhIC1mICQkc3ViZGlyL1RBR1MgfHwg XAotKwkgICAgICBzZXQgIiQkQCIgIiQkaW5jbHVkZV9vcHRpb249JCRoZXJlLyQkc3ViZGlyL1RB R1MiOyBcCi0rCSAgZmk7IFwKLSsJZG9uZTsgXAotKwlsaXN0PSckKFNPVVJDRVMpICQoSEVBREVS UykgY29uZmlnLmguaW4gJChMSVNQKSAkKFRBR1NfRklMRVMpJzsgXAotKwl1bmlxdWU9YGZvciBp IGluICQkbGlzdDsgZG8gXAotKwkgICAgaWYgdGVzdCAtZiAiJCRpIjsgdGhlbiBlY2hvICQkaTsg ZWxzZSBlY2hvICQoc3JjZGlyKS8kJGk7IGZpOyBcCi0rCSAgZG9uZSB8IFwKLSsJICAkKEFXSykg J3sgZmlsZXNbJCQwXSA9IDE7IG5vbmVtcHR5ID0gMTsgfSBcCi0rCSAgICAgIEVORCB7IGlmIChu b25lbXB0eSkgeyBmb3IgKGkgaW4gZmlsZXMpIHByaW50IGk7IH07IH0nYDsgXAotKwlzaGlmdDsg XAotKwlpZiB0ZXN0IC16ICIkKEVUQUdTX0FSR1MpJCQqJCR1bmlxdWUiOyB0aGVuIDo7IGVsc2Ug XAotKwkgIHRlc3QgLW4gIiQkdW5pcXVlIiB8fCB1bmlxdWU9JCRlbXB0eV9maXg7IFwKLSsJICBp ZiB0ZXN0ICQkIyAtZ3QgMDsgdGhlbiBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQo QU1fRVRBR1NGTEFHUykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICIkJEAiICQkdW5pcXVlOyBc Ci0rCSAgZWxzZSBcCi0rCSAgICAkKEVUQUdTKSAkKEVUQUdTRkxBR1MpICQoQU1fRVRBR1NGTEFH UykgJChFVEFHU19BUkdTKSBcCi0rCSAgICAgICQkdW5pcXVlOyBcCi0rCSAgZmk7IFwKLSsJZmkK LStjdGFnczogQ1RBR1MKLStDVEFHUzogY3RhZ3MtcmVjdXJzaXZlICQoSEVBREVSUykgJChTT1VS Q0VTKSBjb25maWcuaC5pbiAkKFRBR1NfREVQRU5ERU5DSUVTKSBcCi0rCQkkKFRBR1NfRklMRVMp ICQoTElTUCkKLSsJbGlzdD0nJChTT1VSQ0VTKSAkKEhFQURFUlMpIGNvbmZpZy5oLmluICQoTElT UCkgJChUQUdTX0ZJTEVTKSc7IFwKLSsJdW5pcXVlPWBmb3IgaSBpbiAkJGxpc3Q7IGRvIFwKLSsJ ICAgIGlmIHRlc3QgLWYgIiQkaSI7IHRoZW4gZWNobyAkJGk7IGVsc2UgZWNobyAkKHNyY2Rpcikv JCRpOyBmaTsgXAotKwkgIGRvbmUgfCBcCi0rCSAgJChBV0spICd7IGZpbGVzWyQkMF0gPSAxOyBu b25lbXB0eSA9IDE7IH0gXAotKwkgICAgICBFTkQgeyBpZiAobm9uZW1wdHkpIHsgZm9yIChpIGlu IGZpbGVzKSBwcmludCBpOyB9OyB9J2A7IFwKLSsJdGVzdCAteiAiJChDVEFHU19BUkdTKSQkdW5p cXVlIiBcCi0rCSAgfHwgJChDVEFHUykgJChDVEFHU0ZMQUdTKSAkKEFNX0NUQUdTRkxBR1MpICQo Q1RBR1NfQVJHUykgXAotKwkgICAgICQkdW5pcXVlCi0rCi0rR1RBR1M6Ci0rCWhlcmU9YCQoYW1f X2NkKSAkKHRvcF9idWlsZGRpcikgJiYgcHdkYCBcCi0rCSAgJiYgJChhbV9fY2QpICQodG9wX3Ny Y2RpcikgXAotKwkgICYmIGd0YWdzIC1pICQoR1RBR1NfQVJHUykgIiQkaGVyZSIKLSsKLStkaXN0 Y2xlYW4tdGFnczoKLSsJLXJtIC1mIFRBR1MgSUQgR1RBR1MgR1JUQUdTIEdTWU1TIEdQQVRIIHRh Z3MKLSsKLStkaXN0ZGlyOiAkKERJU1RGSUxFUykKLSsJQHNyY2RpcnN0cmlwPWBlY2hvICIkKHNy Y2RpcikiIHwgc2VkICdzL1tdLlteJCRcXCpdL1xcXFwmL2cnYDsgXAotKwl0b3BzcmNkaXJzdHJp cD1gZWNobyAiJCh0b3Bfc3JjZGlyKSIgfCBzZWQgJ3MvW10uW14kJFxcKl0vXFxcXCYvZydgOyBc Ci0rCWxpc3Q9JyQoRElTVEZJTEVTKSc7IFwKLSsJICBkaXN0X2ZpbGVzPWBmb3IgZmlsZSBpbiAk JGxpc3Q7IGRvIGVjaG8gJCRmaWxlOyBkb25lIHwgXAotKwkgIHNlZCAtZSAic3xeJCRzcmNkaXJz dHJpcC98fDt0IiBcCi0rCSAgICAgIC1lICJzfF4kJHRvcHNyY2RpcnN0cmlwL3wkKHRvcF9idWls ZGRpcikvfDt0ImA7IFwKLSsJY2FzZSAkJGRpc3RfZmlsZXMgaW4gXAotKwkgICovKikgJChNS0RJ Ul9QKSBgZWNobyAiJCRkaXN0X2ZpbGVzIiB8IFwKLSsJCQkgICBzZWQgJy9cLy8hZDtzfF58JChk aXN0ZGlyKS98O3MsL1teL10qJCQsLCcgfCBcCi0rCQkJICAgc29ydCAtdWAgOzsgXAotKwllc2Fj OyBcCi0rCWZvciBmaWxlIGluICQkZGlzdF9maWxlczsgZG8gXAotKwkgIGlmIHRlc3QgLWYgJCRm aWxlIHx8IHRlc3QgLWQgJCRmaWxlOyB0aGVuIGQ9LjsgZWxzZSBkPSQoc3JjZGlyKTsgZmk7IFwK LSsJICBpZiB0ZXN0IC1kICQkZC8kJGZpbGU7IHRoZW4gXAotKwkgICAgZGlyPWBlY2hvICIvJCRm aWxlIiB8IHNlZCAtZSAncywvW14vXSokJCwsJ2A7IFwKLSsJICAgIGlmIHRlc3QgLWQgIiQoZGlz dGRpcikvJCRmaWxlIjsgdGhlbiBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAt dHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7 IFwKLSsJICAgIGlmIHRlc3QgLWQgJChzcmNkaXIpLyQkZmlsZSAmJiB0ZXN0ICQkZCAhPSAkKHNy Y2Rpcik7IHRoZW4gXAotKwkgICAgICBjcCAtZnBSICQoc3JjZGlyKS8kJGZpbGUgIiQoZGlzdGRp cikkJGRpciIgfHwgZXhpdCAxOyBcCi0rCSAgICAgIGZpbmQgIiQoZGlzdGRpcikvJCRmaWxlIiAt dHlwZSBkICEgLXBlcm0gLTcwMCAtZXhlYyBjaG1vZCB1K3J3eCB7fSBcOzsgXAotKwkgICAgZmk7 IFwKLSsJICAgIGNwIC1mcFIgJCRkLyQkZmlsZSAiJChkaXN0ZGlyKSQkZGlyIiB8fCBleGl0IDE7 IFwKLSsJICBlbHNlIFwKLSsJICAgIHRlc3QgLWYgIiQoZGlzdGRpcikvJCRmaWxlIiBcCi0rCSAg ICB8fCBjcCAtcCAkJGQvJCRmaWxlICIkKGRpc3RkaXIpLyQkZmlsZSIgXAotKwkgICAgfHwgZXhp dCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9y IHN1YmRpciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVu IDo7IGVsc2UgXAotKwkgICAgdGVzdCAtZCAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAg fHwgJChNS0RJUl9QKSAiJChkaXN0ZGlyKS8kJHN1YmRpciIgXAotKwkgICAgfHwgZXhpdCAxOyBc Ci0rCSAgZmk7IFwKLSsJZG9uZQotKwlAbGlzdD0nJChESVNUX1NVQkRJUlMpJzsgZm9yIHN1YmRp ciBpbiAkJGxpc3Q7IGRvIFwKLSsJICBpZiB0ZXN0ICIkJHN1YmRpciIgPSAuOyB0aGVuIDo7IGVs c2UgXAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJChkaXN0ZGlyKS8kJHN1YmRpciI7IFwK LSsJICAgICQoYW1fX3JlbGF0aXZpemUpOyBcCi0rCSAgICBuZXdfZGlzdGRpcj0kJHJlbGRpcjsg XAotKwkgICAgZGlyMT0kJHN1YmRpcjsgZGlyMj0iJCh0b3BfZGlzdGRpcikiOyBcCi0rCSAgICAk KGFtX19yZWxhdGl2aXplKTsgXAotKwkgICAgbmV3X3RvcF9kaXN0ZGlyPSQkcmVsZGlyOyBcCi0r CSAgICBlY2hvICIgKGNkICQkc3ViZGlyICYmICQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIHRvcF9k aXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgZGlzdGRpcj0iJCRuZXdfZGlzdGRpciIgXFwiOyBc Ci0rCSAgICBlY2hvICIgICAgIGFtX19yZW1vdmVfZGlzdGRpcj06IGFtX19za2lwX2xlbmd0aF9j aGVjaz06IGFtX19za2lwX21vZGVfZml4PTogZGlzdGRpcikiOyBcCi0rCSAgICAoJChhbV9fY2Qp ICQkc3ViZGlyICYmIFwKLSsJICAgICAgJChNQUtFKSAkKEFNX01BS0VGTEFHUykgXAotKwkgICAg ICAgIHRvcF9kaXN0ZGlyPSIkJG5ld190b3BfZGlzdGRpciIgXAotKwkgICAgICAgIGRpc3RkaXI9 IiQkbmV3X2Rpc3RkaXIiIFwKLSsJCWFtX19yZW1vdmVfZGlzdGRpcj06IFwKLSsJCWFtX19za2lw X2xlbmd0aF9jaGVjaz06IFwKLSsJCWFtX19za2lwX21vZGVfZml4PTogXAotKwkgICAgICAgIGRp c3RkaXIpIFwKLSsJICAgICAgfHwgZXhpdCAxOyBcCi0rCSAgZmk7IFwKLSsJZG9uZQotK2NoZWNr LWFtOiBhbGwtYW0KLStjaGVjazogY2hlY2stcmVjdXJzaXZlCi0rYWxsLWFtOiBNYWtlZmlsZSBj b25maWcuaAotK2luc3RhbGxkaXJzOiBpbnN0YWxsZGlycy1yZWN1cnNpdmUKLStpbnN0YWxsZGly cy1hbToKLStpbnN0YWxsOiBpbnN0YWxsLXJlY3Vyc2l2ZQotK2luc3RhbGwtZXhlYzogaW5zdGFs bC1leGVjLXJlY3Vyc2l2ZQotK2luc3RhbGwtZGF0YTogaW5zdGFsbC1kYXRhLXJlY3Vyc2l2ZQot K3VuaW5zdGFsbDogdW5pbnN0YWxsLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtYW06IGFsbC1hbQot KwlAJChNQUtFKSAkKEFNX01BS0VGTEFHUykgaW5zdGFsbC1leGVjLWFtIGluc3RhbGwtZGF0YS1h bQotKwotK2luc3RhbGxjaGVjazogaW5zdGFsbGNoZWNrLXJlY3Vyc2l2ZQotK2luc3RhbGwtc3Ry aXA6Ci0rCSQoTUFLRSkgJChBTV9NQUtFRkxBR1MpIElOU1RBTExfUFJPR1JBTT0iJChJTlNUQUxM X1NUUklQX1BST0dSQU0pIiBcCi0rCSAgaW5zdGFsbF9zaF9QUk9HUkFNPSIkKElOU1RBTExfU1RS SVBfUFJPR1JBTSkiIElOU1RBTExfU1RSSVBfRkxBRz0tcyBcCi0rCSAgYHRlc3QgLXogJyQoU1RS SVApJyB8fCBcCi0rCSAgICBlY2hvICJJTlNUQUxMX1BST0dSQU1fRU5WPVNUUklQUFJPRz0nJChT VFJJUCknImAgaW5zdGFsbAotK21vc3RseWNsZWFuLWdlbmVyaWM6Ci0rCi0rY2xlYW4tZ2VuZXJp YzoKLSsKLStkaXN0Y2xlYW4tZ2VuZXJpYzoKLSsJLXRlc3QgLXogIiQoQ09ORklHX0NMRUFOX0ZJ TEVTKSIgfHwgcm0gLWYgJChDT05GSUdfQ0xFQU5fRklMRVMpCi0rCS10ZXN0IC4gPSAiJChzcmNk aXIpIiB8fCB0ZXN0IC16ICIkKENPTkZJR19DTEVBTl9WUEFUSF9GSUxFUykiIHx8IHJtIC1mICQo Q09ORklHX0NMRUFOX1ZQQVRIX0ZJTEVTKQotKwotK21haW50YWluZXItY2xlYW4tZ2VuZXJpYzoK LSsJQGVjaG8gIlRoaXMgY29tbWFuZCBpcyBpbnRlbmRlZCBmb3IgbWFpbnRhaW5lcnMgdG8gdXNl IgotKwlAZWNobyAiaXQgZGVsZXRlcyBmaWxlcyB0aGF0IG1heSByZXF1aXJlIHNwZWNpYWwgdG9v bHMgdG8gcmVidWlsZC4iCi0rCS10ZXN0IC16ICIkKE1BSU5UQUlORVJDTEVBTkZJTEVTKSIgfHwg cm0gLWYgJChNQUlOVEFJTkVSQ0xFQU5GSUxFUykKLStjbGVhbjogY2xlYW4tcmVjdXJzaXZlCi0r Ci0rY2xlYW4tYW06IGNsZWFuLWdlbmVyaWMgY2xlYW4tbGlidG9vbCBtb3N0bHljbGVhbi1hbQot KwotK2Rpc3RjbGVhbjogZGlzdGNsZWFuLXJlY3Vyc2l2ZQotKwktcm0gLWYgTWFrZWZpbGUKLStk aXN0Y2xlYW4tYW06IGNsZWFuLWFtIGRpc3RjbGVhbi1nZW5lcmljIGRpc3RjbGVhbi1oZHIgZGlz dGNsZWFuLXRhZ3MKLSsKLStkdmk6IGR2aS1yZWN1cnNpdmUKLSsKLStkdmktYW06Ci0rCi0raHRt bDogaHRtbC1yZWN1cnNpdmUKLSsKLStodG1sLWFtOgotKwotK2luZm86IGluZm8tcmVjdXJzaXZl Ci0rCi0raW5mby1hbToKLSsKLStpbnN0YWxsLWRhdGEtYW06Ci0rCi0raW5zdGFsbC1kdmk6IGlu c3RhbGwtZHZpLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtZHZpLWFtOgotKwotK2luc3RhbGwtZXhl Yy1hbToKLSsKLStpbnN0YWxsLWh0bWw6IGluc3RhbGwtaHRtbC1yZWN1cnNpdmUKLSsKLStpbnN0 YWxsLWh0bWwtYW06Ci0rCi0raW5zdGFsbC1pbmZvOiBpbnN0YWxsLWluZm8tcmVjdXJzaXZlCi0r Ci0raW5zdGFsbC1pbmZvLWFtOgotKwotK2luc3RhbGwtbWFuOgotKwotK2luc3RhbGwtcGRmOiBp bnN0YWxsLXBkZi1yZWN1cnNpdmUKLSsKLStpbnN0YWxsLXBkZi1hbToKLSsKLStpbnN0YWxsLXBz OiBpbnN0YWxsLXBzLXJlY3Vyc2l2ZQotKwotK2luc3RhbGwtcHMtYW06Ci0rCi0raW5zdGFsbGNo ZWNrLWFtOgotKwotK21haW50YWluZXItY2xlYW46IG1haW50YWluZXItY2xlYW4tcmVjdXJzaXZl Ci0rCS1ybSAtZiBNYWtlZmlsZQotK21haW50YWluZXItY2xlYW4tYW06IGRpc3RjbGVhbi1hbSBt YWludGFpbmVyLWNsZWFuLWdlbmVyaWMKLSsKLSttb3N0bHljbGVhbjogbW9zdGx5Y2xlYW4tcmVj dXJzaXZlCi0rCi0rbW9zdGx5Y2xlYW4tYW06IG1vc3RseWNsZWFuLWdlbmVyaWMgbW9zdGx5Y2xl YW4tbGlidG9vbAotKwotK3BkZjogcGRmLXJlY3Vyc2l2ZQotKwotK3BkZi1hbToKLSsKLStwczog cHMtcmVjdXJzaXZlCi0rCi0rcHMtYW06Ci0rCi0rdW5pbnN0YWxsLWFtOgotKwotKy5NQUtFOiAk KFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRTKSBhbGwgXAotKwlj dGFncy1yZWN1cnNpdmUgaW5zdGFsbC1hbSBpbnN0YWxsLXN0cmlwIHRhZ3MtcmVjdXJzaXZlCi0r Ci0rLlBIT05ZOiAkKFJFQ1VSU0lWRV9DTEVBTl9UQVJHRVRTKSAkKFJFQ1VSU0lWRV9UQVJHRVRT KSBDVEFHUyBHVEFHUyBcCi0rCWFsbCBhbGwtYW0gY2hlY2sgY2hlY2stYW0gY2xlYW4gY2xlYW4t Z2VuZXJpYyBjbGVhbi1saWJ0b29sIFwKLSsJY3RhZ3MgY3RhZ3MtcmVjdXJzaXZlIGRpc3RjbGVh biBkaXN0Y2xlYW4tZ2VuZXJpYyBcCi0rCWRpc3RjbGVhbi1oZHIgZGlzdGNsZWFuLWxpYnRvb2wg ZGlzdGNsZWFuLXRhZ3MgZGlzdGRpciBkdmkgXAotKwlkdmktYW0gaHRtbCBodG1sLWFtIGluZm8g aW5mby1hbSBpbnN0YWxsIGluc3RhbGwtYW0gXAotKwlpbnN0YWxsLWRhdGEgaW5zdGFsbC1kYXRh LWFtIGluc3RhbGwtZHZpIGluc3RhbGwtZHZpLWFtIFwKLSsJaW5zdGFsbC1leGVjIGluc3RhbGwt ZXhlYy1hbSBpbnN0YWxsLWh0bWwgaW5zdGFsbC1odG1sLWFtIFwKLSsJaW5zdGFsbC1pbmZvIGlu c3RhbGwtaW5mby1hbSBpbnN0YWxsLW1hbiBpbnN0YWxsLXBkZiBcCi0rCWluc3RhbGwtcGRmLWFt IGluc3RhbGwtcHMgaW5zdGFsbC1wcy1hbSBpbnN0YWxsLXN0cmlwIFwKLSsJaW5zdGFsbGNoZWNr IGluc3RhbGxjaGVjay1hbSBpbnN0YWxsZGlycyBpbnN0YWxsZGlycy1hbSBcCi0rCW1haW50YWlu ZXItY2xlYW4gbWFpbnRhaW5lci1jbGVhbi1nZW5lcmljIG1vc3RseWNsZWFuIFwKLSsJbW9zdGx5 Y2xlYW4tZ2VuZXJpYyBtb3N0bHljbGVhbi1saWJ0b29sIHBkZiBwZGYtYW0gcHMgcHMtYW0gXAot Kwl0YWdzIHRhZ3MtcmVjdXJzaXZlIHVuaW5zdGFsbCB1bmluc3RhbGwtYW0KLSsKLStAU0VUX01B S0VACi0rCi0rIyBUZWxsIHZlcnNpb25zIFszLjU5LDMuNjMpIG9mIEdOVSBtYWtlIHRvIG5vdCBl eHBvcnQgYWxsIHZhcmlhYmxlcy4KLSsjIE90aGVyd2lzZSBhIHN5c3RlbSBsaW1pdCAoZm9yIFN5 c1YgYXQgbGVhc3QpIG1heSBiZSBleGNlZWRlZC4KLSsuTk9FWFBPUlQ6Ci1kaWZmIC1OdXIgc29j aS0zLjAuMF80LXBhY2svc29jaS1jb25maWcuaW4gc29jaS0zLjAuMF90cmVwMzAwL3NvY2ktY29u ZmlnLmluCi0tLS0gc29jaS0zLjAuMF80LXBhY2svc29jaS1jb25maWcuaW4JMTk3MC0wMS0wMSAw MTowMDowMC4wMDAwMDAwMDAgKzAxMDAKLSsrKyBzb2NpLTMuMC4wX3RyZXAzMDAvc29jaS1jb25m aWcuaW4JMjAwOS0wNC0xNiAxOTozNzoxMC4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsNzYg QEAKLSsjIS9iaW4vc2gKLSsKLStwcmVmaXg9QHByZWZpeEAKLStleGVjX3ByZWZpeD0ke3ByZWZp eH0KLStsaWJkaXI9QGxpYmRpckAKLStpbmNsdWRlZGlyPUBpbmNsdWRlZGlyQAotKwotK3VzYWdl KCkKLSt7Ci0rICBjYXQgPDxFT0YKLStVc2FnZTogQFBBQ0tBR0VALWNvbmZpZyBbT1BUSU9OXQot KwotK0tub3duIHZhbHVlcyBmb3IgT1BUSU9OIGFyZToKLSsKLSsgIC0tcHJlZml4ICAgICAgICBw cmludCBAUEFDS0FHRV9OQU1FQCBpbnN0YWxsYXRpb24gcHJlZml4Ci0rICAtLWxpYnMgICAgICAg ICAgcHJpbnQgbGlicmFyeSBsaW5raW5nIGluZm9ybWF0aW9uCi0rICAtLWNmbGFncyAgICAgICAg cHJpbnQgcHJlLXByb2Nlc3NvciBhbmQgY29tcGlsZXIgZmxhZ3MKLSsgIC0taGVscCAgICAgICAg ICBkaXNwbGF5IHRoaXMgaGVscCBhbmQgZXhpdAotKyAgLS12ZXJzaW9uICAgICAgIG91dHB1dCB2 ZXJzaW9uIGluZm9ybWF0aW9uCi0rRU9GCi0rICBleGl0ICQxCi0rfQotKwotK2lmIHRlc3QgJCMg LWVxIDA7IHRoZW4KLSsgIHVzYWdlIDEKLStmaQotKwotK2NmbGFncz1mYWxzZQotK2xpYnM9ZmFs c2UKLSsKLSt3aGlsZSB0ZXN0ICQjIC1ndCAwOyBkbwotKyAgY2FzZSAiJDEiIGluCi0rICAtKj0q KSBvcHRhcmc9YGVjaG8gIiQxIiB8IHNlZCAncy9bLV9hLXpBLVowLTldKj0vLydgIDs7Ci0rICAq KSBvcHRhcmc9IDs7Ci0rICBlc2FjCi0rCi0rICBjYXNlICQxIGluCi0rICAgIC0tcHJlZml4PSop Ci0rICAgICAgcHJlZml4PSRvcHRhcmcKLSsgICAgICA7OwotKwotKyAgICAtLXByZWZpeCkKLSsg ICAgICBlY2hvICRwcmVmaXgKLSsgICAgICA7OwotKwotKyAgICAtLXZlcnNpb24pCi0rICAgICAg ZWNobyBAVkVSU0lPTkAKLSsgICAgICA7OwotKwotKyAgICAtLWhlbHApCi0rICAgICAgdXNhZ2Ug MAotKyAgICAgIDs7Ci0rCi0rICAgIC0tY2ZsYWdzKQotKyAgICAgIGlmIFsgIiR7cHJlZml4fSIg IT0gIi91c3IiIF07IHRoZW4KLSsgICAgICAgIGVjaG8gLUkke2luY2x1ZGVkaXJ9Ci0rICAgICAg ZWxzZQotKyAgICAgICAgZWNobwotKyAgICAgIGZpCi0rICAgICAgOzsKLSsKLSsgICAgLS1saWJz KQotKyAgICAgIGlmIFsgIiR7cHJlZml4fSIgIT0gIi91c3IiIF07IHRoZW4KLSsgICAgICAgIGVj aG8gLUwke2xpYmRpcn0gLWxAUEFDS0FHRUAKLSsgICAgICBlbHNlCi0rICAgICAgICBlY2hvIC1s QFBBQ0tBR0VACi0rICAgICAgZmkKLSsgICAgICA7OwotKwotKyAgICAqKQotKyAgICAgIHVzYWdl Ci0rICAgICAgZXhpdCAxCi0rICAgICAgOzsKLSsgIGVzYWMKLSsgIHNoaWZ0Ci0rZG9uZQotZGlm ZiAtTnVyIHNvY2ktMy4wLjBfNC1wYWNrL3NvY2kubTQgc29jaS0zLjAuMF90cmVwMzAwL3NvY2ku bTQKLS0tLSBzb2NpLTMuMC4wXzQtcGFjay9zb2NpLm00CTE5NzAtMDEtMDEgMDE6MDA6MDAuMDAw MDAwMDAwICswMTAwCi0rKysgc29jaS0zLjAuMF90cmVwMzAwL3NvY2kubTQJMjAwOS0wNS0wMiAy Mzo1OToxMy4wMDAwMDAwMDAgKzAyMDAKLUBAIC0wLDAgKzEsMTE4IEBACi0rZG5sIEBzeW5vcHNp cyBBWF9TT0NJCi0rZG5sIAotK2RubCBUaGlzIG1hY3JvIHRyaWVzIHRvIGZpbmQgU29jaSBDIEFQ SSBoZWFkZXIgYW5kIGxpYnJhcnkgbG9jYXRpb25zLgotK2RubAotK2RubCBXZSBkZWZpbmUgdGhl IGZvbGxvd2luZyBjb25maWd1cmUgc2NyaXB0IGZsYWdzOgotK2RubAotK2RubAktLXdpdGgtc29j aTogR2l2ZSBwcmVmaXggZm9yIGJvdGggbGlicmFyeSBhbmQgaGVhZGVycywgYW5kIHRyeQotK2Ru bAkJICAgICB0byBndWVzcyBzdWJkaXJlY3RvcnkgbmFtZXMgZm9yIGVhY2guICAoZS5nLiBhZGQg L2xpYiBhbmQKLStkbmwJCSAgICAgL2luY2x1ZGUgb250byBnaXZlbiBkaXIgbmFtZXMsIGFuZCBv dGhlciBjb21tb24gc2NoZW1lcy4pCi0rZG5sCi0rZG5sIEB2ZXJzaW9uIDEuMywgMjAwOS8wNS8w MgotK2RubCBAYXV0aG9yIERlbmlzIEFybmF1ZCA8ZGVuaXNfYXJuYXVkQHVzZXJzLnNvdXJjZWZv cmdlLm5ldD4KLStkbmwKLStkbmwgQHZlcnNpb24gMS4yLCAyMDA3LzAyLzIwCi0rZG5sIEBhdXRo b3IgV2FycmVuIFlvdW5nIDxzb2NpcHBAZXRyLXVzYS5jb20+Ci0rCi0rQUNfREVGVU4oW0FYX1NP Q0ldLAotK1sKLSsjCi0rIyBTZXQgdXAgY29uZmlndXJlIHNjcmlwdCBtYWNyb3MKLSsjCi0rQUNf QVJHX1dJVEgoc29jaSwKLSsJWy0td2l0aC1zb2NpPTxwYXRoPiAgICAgcm9vdCBkaXJlY3Rvcnkg cGF0aCBvZiBTb2NpIGluc3RhbGxhdGlvbl0sCi0rCVtTT0NJX2xpYl9jaGVjaz0iJHdpdGhfc29j aS9saWI2NC9zb2NpICR3aXRoX3NvY2kvbGliL3NvY2kgJHdpdGhfc29jaS9saWI2NCAkd2l0aF9z b2NpL2xpYiIKLSsJU09DSV9pbmNfY2hlY2s9IiR3aXRoX3NvY2kvaW5jbHVkZSAkd2l0aF9zb2Np L2luY2x1ZGUvc29jaSJdLAotKwlbU09DSV9saWJfY2hlY2s9Ii91c3IvbGliNjQgL3Vzci9saWIg L3Vzci9saWI2NC9zb2NpIC91c3IvbGliL3NvY2kgL3Vzci9sb2NhbC9saWI2NCAvdXNyL2xvY2Fs L2xpYiAvb3B0L3NvY2kvbGliNjQgL29wdC9zb2NpL2xpYiAvdXNyL2xvY2FsL2xpYjY0L3NvY2kg L3Vzci9sb2NhbC9saWIvc29jaSAvdXNyL2xvY2FsL3NvY2kvbGliNjQgL3Vzci9sb2NhbC9zb2Np L2xpYiAvb3B0L3NvY2kvbGliNjQvc29jaSAvb3B0L3NvY2kvbGliL3NvY2kiCi0rCVNPQ0lfaW5j X2NoZWNrPSIvdXNyL2luY2x1ZGUgL3Vzci9pbmNsdWRlL3NvY2kgL3Vzci9sb2NhbC9pbmNsdWRl IC9vcHQvc29jaS9pbmNsdWRlIC91c3IvbG9jYWwvaW5jbHVkZS9zb2NpIC91c3IvbG9jYWwvc29j aS9pbmNsdWRlIC91c3IvbG9jYWwvc29jaS9pbmNsdWRlL3NvY2kgL29wdC9zb2NpL2luY2x1ZGUv c29jaSJdKQotKwotKyMgU09DSSBsaWJyYXJ5Ci0rU09DSV9DT1JFX0xJQj1zb2NpX2NvcmUKLStT T0NJX01ZU1FMX0xJQj1zb2NpX215c3FsCi0rCi0rIwotKyMgTG9vayBmb3IgU29jaSBDb3JlIEFQ SSBsaWJyYXJ5Ci0rIwotK0FDX01TR19DSEVDS0lORyhbZm9yIFNvY2kgbGlicmFyeSBkaXJlY3Rv cnldKQotK1NPQ0lfbGliZGlyPQotK2ZvciBtIGluICRTT0NJX2xpYl9jaGVjawotK2RvCi0rCWlm IHRlc3QgLWQgIiRtIiAmJiBcCi0rCQkodGVzdCAtZiAiJG0vbGliJFNPQ0lfQ09SRV9MSUIuc28i IHx8IHRlc3QgLWYgIiRtL2xpYiRTT0NJX0NPUkVfTElCLmEiKQotKwl0aGVuCi0rCQlTT0NJX2xp YmRpcj0kbQotKwkJYnJlYWsKLSsJZmkKLStkb25lCi0rCi0raWYgdGVzdCAteiAiJFNPQ0lfbGli ZGlyIgotK3RoZW4KLSsJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCAkU09DSV9DT1JFX0xJQiBs aWJyYXJ5IGluICckU09DSV9saWJfY2hlY2snXSkKLStmaQotKwotK2Nhc2UgIiRTT0NJX2xpYmRp ciIgaW4KLSsJLyogKSA7OwotKwkqICkgIEFDX01TR19FUlJPUihbVGhlIFNvY2kgbGlicmFyeSBk aXJlY3RvcnkgKCRTT0NJX2xpYmRpcikgbXVzdCBiZSBhbiBhYnNvbHV0ZSBwYXRoLl0pIDs7Ci0r ZXNhYwotKwotK0FDX01TR19SRVNVTFQoWyRTT0NJX2xpYmRpcl0pCi0rCi0rY2FzZSAiJFNPQ0lf bGliZGlyIiBpbgotKyAgL3Vzci9saWI2NCkgOzsKLSsgIC91c3IvbGliKSA7OwotKyAgKikgU09D SV9MSUJTPSItTCR7U09DSV9saWJkaXJ9IiA7OwotK2VzYWMKLStMREZMQUdTPSIkTERGTEFHUyAk e1NPQ0lfTElCU30iCi0rCi0rCi0rIwotKyMgTG9vayBmb3IgU29jaSBDb3JlIEFQSSBoZWFkZXJz Ci0rIwotK0FDX01TR19DSEVDS0lORyhbZm9yIFNvY2kgaW5jbHVkZSBkaXJlY3RvcnldKQotK1NP Q0lfaW5jZGlyPQotK2ZvciBtIGluICRTT0NJX2luY19jaGVjawotK2RvCi0rCWlmIHRlc3QgLWQg IiRtIiAmJiB0ZXN0IC1mICIkbS9zb2NpL2NvcmUvc29jaS5oIgotKwl0aGVuCi0rCQlTT0NJX2lu Y2Rpcj0kbQotKwkJYnJlYWsKLSsJZmkKLStkb25lCi0rCi0raWYgdGVzdCAteiAiJFNPQ0lfaW5j ZGlyIgotK3RoZW4KLSsJQUNfTVNHX0VSUk9SKFtEaWRuJ3QgZmluZCB0aGUgU29jaSBpbmNsdWRl IGRpciBpbiAnJFNPQ0lfaW5jX2NoZWNrJ10pCi0rZmkKLSsKLStjYXNlICIkU09DSV9pbmNkaXIi IGluCi0rCS8qICkgOzsKLSsJKiApICBBQ19NU0dfRVJST1IoW1RoZSBTb2NpIGluY2x1ZGUgZGly ZWN0b3J5ICgkU09DSV9pbmNkaXIpIG11c3QgYmUgYW4gYWJzb2x1dGUgcGF0aC5dKSA7OwotK2Vz YWMKLSsKLStBQ19NU0dfUkVTVUxUKFskU09DSV9pbmNkaXJdKQotKwotK2Nhc2UgIiRTT0NJX2lu Y2RpciIgaW4KLSsgIC91c3IvaW5jbHVkZSkgOzsKLSsgICopIFNPQ0lfQ0ZMQUdTPSItSSR7U09D SV9pbmNkaXJ9IiA7OwotK2VzYWMKLSsKLStTT0NJX0xJQlM9IiR7U09DSV9MSUJTfSAtbCR7U09D SV9DT1JFX0xJQn0gLWwke1NPQ0lfTVlTUUxfTElCfSAtbGRsIgotKwotK0FDX1NVQlNUKFNPQ0lf Q0ZMQUdTKQotK0FDX1NVQlNUKFNPQ0lfTElCUykKLSsKLSsjIFRlc3QgbGlua2luZyB3aXRoIHNv Y2kgKG5vdGUgdGhhdCBpdCBuZWVkcyBNeVNRTCBjbGllbnQgdG8gaGF2ZSBiZWVuIGRlZmluZWQK LSsjIGJlZm9yZSkKLStzYXZlX0xJQlM9IiRMSUJTIgotK2lmIHRlc3QgLXogIiRNWVNRTF9MSUJT IgotK3RoZW4KLSsJTVlTUUxfTElCUz0iLUwvdXNyL2xpYjY0L215c3FsIC1ML3Vzci9saWIvbXlz cWwgLWxteXNxbGNsaWVudCIKLStmaQotK0xJQlM9IiRMSUJTICRNWVNRTF9MSUJTICRTT0NJX0xJ QlMiCi0rQUNfQ0hFQ0tfTElCKCRTT0NJX0NPUkVfTElCLCBzb2NpX2JlZ2luLAotKwkgICAgIFtd LCAKLSsgICAgICAgICAgICAgW0FDX01TR19FUlJPUihbQ291bGQgbm90IGZpbmQgd29ya2luZyBT b2NpIGNsaWVudCBsaWJyYXJ5IV0pXQotKwkgICAgICkKLStMSUJTPSIkc2F2ZV9MSUJTIgotK0FD X1NVQlNUKFNPQ0lfQ09SRV9MSUIpCi0rXSkgZG5sIEFYX1NPQ0kKLWRpZmYgLU51ciBzb2NpLTMu MC4wXzQtcGFjay9zb2NpLnBjLmluIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnBjLmluCi0tLS0g c29jaS0zLjAuMF80LXBhY2svc29jaS5wYy5pbgkxOTcwLTAxLTAxIDAxOjAwOjAwLjAwMDAwMDAw MCArMDEwMAotKysrIHNvY2ktMy4wLjBfdHJlcDMwMC9zb2NpLnBjLmluCTIwMDktMDQtMTYgMTk6 Mzc6MTAuMDAwMDAwMDAwICswMjAwCi1AQCAtMCwwICsxLDExIEBACi0rcHJlZml4PUBwcmVmaXhA Ci0rZXhlY19wcmVmaXg9QGV4ZWNfcHJlZml4QAotK2xpYmRpcj1AbGliZGlyQAotK2luY2x1ZGVk aXI9QGluY2x1ZGVkaXJACi0rCi0rTmFtZTogQFBBQ0tBR0VfTkFNRUAKLStEZXNjcmlwdGlvbjog VGhlIGRhdGFiYXNlIGFjY2VzcyBsaWJyYXJ5IGZvciBDKysgcHJvZ3JhbW1lcnMKLStWZXJzaW9u OiBAUEFDS0FHRV9WRVJTSU9OQAotK1VSTDogaHR0cDovL0BQQUNLQUdFQC5zb3VyY2Vmb3JnZS5u ZXQKLStMaWJzOiAtTCR7bGliZGlyfSAtbEBQQUNLQUdFQF9jb3JlIEBMREZMQUdTQCBATElCU0AK LStDZmxhZ3M6IC1JJHtpbmNsdWRlZGlyfQo=