CiMKIyBDb3lvdGVDb25uZWN0b3IKIwoKY295b3RlQ29ubmVjdG9yLmFscmVhZHlJbml0aWFsaXplZD1MZSBjb25uZWN0ZXVyIGEgZOlq4CDpdOkgaW5pdGlhbGlz6Qpjb3lvdGVDb25uZWN0b3IuYWxyZWFkeVN0YXJ0ZWQ9TGUgY29ubmVjdGV1ciBhIGTpauAg6XTpIGTpbWFycukKY295b3RlQ29ubmVjdG9yLmNhbm5vdFJlZ2lzdGVyUHJvdG9jb2w9SW1wb3NzaWJsZSBkJ2VucmVnaXN0cmVyIGxlIE1CZWFuIHBvdXIgbGUgUHJvdG9jb2wKY295b3RlQ29ubmVjdG9yLm5vdFN0YXJ0ZWQ9TGUgY29ubmVjdGV1ciBDb3lvdGUgbicnYSBwYXMg6XTpIGTpbWFycukKY295b3RlQ29ubmVjdG9yLnByb3RvY29sSGFuZGxlckRlc3Ryb3lGYWlsZWQ9TGEgZGVzdHJ1Y3Rpb24gZHUgZ2VzdGlvbm5haXJlIGRlIHByb3RvY29sZSBhIOljaG916WU6IHswfQpjb3lvdGVDb25uZWN0b3IucHJvdG9jb2xIYW5kbGVySW5pdGlhbGl6YXRpb25GYWlsZWQ9TCcnaW5pdGlhbGlzYXRpb24gZHUgZ2VzdGlvbm5haXJlIGRlIHByb3RvY29sZSBhIOljaG916TogezB9CmNveW90ZUNvbm5lY3Rvci5wcm90b2NvbEhhbmRsZXJJbnN0YW50aWF0aW9uRmFpbGVkPUwnJ2luc3RhbnRpYXRpb24gZHUgZ2VzdGlvbm5haXJlIGRlIHByb3RvY29sZSBhIOljaG916TogezB9CmNveW90ZUNvbm5lY3Rvci5wcm90b2NvbEhhbmRsZXJTdGFydEZhaWxlZD1MZSBk6W1hcnJhZ2UgZHUgZ2VzdGlvbm5haXJlIGRlIHByb3RvY29sZSBhIOljaG916TogezB9CmNveW90ZUNvbm5lY3Rvci5wcm90b2NvbFJlZ2lzdHJhdGlvbkZhaWxlZD1MJ2VucmVnaXN0cmVtZW50IGR1IHByb3RvY29sIEpNWCBhIOljaG916Qpjb3lvdGVDb25uZWN0b3IucHJvdG9jb2xIYW5kbGVyUGF1c2VGYWlsZWQ9TGEgc3VzcGVuc2lvbiBkdSBnZXN0aW9ubmFpcmUgZGUgcHJvdG9jb2xlIGEg6WNob3XpZQpjb3lvdGVDb25uZWN0b3IucHJvdG9jb2xIYW5kbGVyUmVzdW1lRmFpbGVkPUxlIHJlZOltYXJyYWdlIGR1IGdlc3Rpb25uYWlyZSBkZSBwcm90b2NvbGUgYSDpY2hvdekKCiMKIyBDb3lvdGVBZGFwdGVyCiMKCmNveW90ZUFkYXB0ZXIuc2VydmljZT1VbmUgZXhjZXB0aW9uIG91IHVuZSBlcnJldXIgcycnZXN0IHByb2R1aXRlIGRhbnMgbGUgY29udGVuZXVyIGR1cmFudCBsZSB0cmFpdGVtZW50IGRlIGxhIHJlcXXqdGUKCiMKIyBDb3lvdGVSZXNwb25zZQojCgpjb3lvdGVSZXNwb25zZS5nZXRPdXRwdXRTdHJlYW0uaXNlPSJnZXRXcml0ZXIoKSIgYSBk6WrgIOl06SBhcHBlbOkgcG91ciBjZXR0ZSBy6XBvbnNlCmNveW90ZVJlc3BvbnNlLmdldFdyaXRlci5pc2U9ImdldE91dHB1dFN0cmVhbSgpIiBhIGTpauAg6XTpIGFwcGVs6SBwb3VyIGNldHRlIHLpcG9uc2UKY295b3RlUmVzcG9uc2UucmVzZXRCdWZmZXIuaXNlPUltcG9zc2libGUgZGUgcmVtZXR0cmUg4CB66XJvIGxlIHRhbXBvbiBhcHLocyBxdWUgbGEgculwb25zZSBhaXQg6XTpIGVudm956WUKY295b3RlUmVzcG9uc2Uuc2VuZEVycm9yLmlzZT1JbXBvc3NpYmxlIGQnJ2FwcGVsZXIgInNlbmRFcnJvcigpIiBhcHLocyBxdWUgbGEgculwb25zZSBhaXQg6XTpIGVudm956WUKY295b3RlUmVzcG9uc2Uuc2VuZFJlZGlyZWN0LmlzZT1JbXBvc3NpYmxlIGQnJ2FwcGVsZXIgInNlbmRSZWRpcmVjdCgpIiBhcHLocyBxdWUgbGEgculwb25zZSBhaXQg6XTpIGVudm956WUKY295b3RlUmVzcG9uc2Uuc2V0QnVmZmVyU2l6ZS5pc2U9SW1wb3NzaWJsZSBkZSBjaGFuZ2VyIGxhIHRhaWxsZSBkdSB0YW1wb24gYXBy6HMgcXVlIGxlcyBkb25u6WVzIGFpZW50IOl06SDpY3JpdGVzCgojCiMgQ295b3RlUmVxdWVzdAojCgpjb3lvdGVSZXF1ZXN0LmdldElucHV0U3RyZWFtLmlzZT0iZ2V0UmVhZGVyKCkiIGEgZOlq4CDpdOkgYXBwZWzpIHBvdXIgY2V0dGUgcmVxdep0ZQpjb3lvdGVSZXF1ZXN0LmdldFJlYWRlci5pc2U9ImdldElucHV0U3RyZWFtKCkiIGEgZOlq4CDpdOkgYXBwZWzpIHBvdXIgY2V0dGUgcmVxdep0ZQpjb3lvdGVSZXF1ZXN0LnNlc3Npb25DcmVhdGVDb21taXR0ZWQ9SW1wb3NzaWJsZSBkZSBjcullciB1bmUgc2Vzc2lvbmFwcuhzIHF1ZSBsYSBy6XBvbnNlIGFpdCDpdOkgZW52b3npZQpjb3lvdGVSZXF1ZXN0LnNldEF0dHJpYnV0ZS5uYW1lbnVsbD1JbXBvc3NpYmxlIGQnJ2FwcGVsZXIgInNldEF0dHJpYnV0ZSIgYXZlYyB1biBub20gbnVsCmNveW90ZVJlcXVlc3QubGlzdGVuZXJTdGFydD1VbmUgZXhjZXB0aW9uIHMnJ2VzdCBwcm9kdWl0ZSBsb3JzIGRlIGwnJ2Vudm9pIGRlIGwnJ+l26G5lbWVudCBjb250ZXh0ZSBpbml0aWFsaXPpIOAgbCcnaW5zdGFuY2UgZGUgY2xhc3NlIGQnJ+ljb3V0ZSB7MH0KY295b3RlUmVxdWVzdC5saXN0ZW5lclN0b3A9VW5lIGV4Y2VwdGlvbiBzJydlc3QgcHJvZHVpdGUgbG9ycyBkZSBsJydlbnZvaSBkZSBsJyfpduhuZW1lbnQgY29udGV4dGUgZOl0cnVpdCDgIGwnJ2luc3RhbmNlIGRlIGNsYXNzZSBkJyfpY291dGUgezB9CmNveW90ZVJlcXVlc3QuYXR0cmlidXRlRXZlbnQ9VW5lIGV4Y2VwdGlvbiBhIOl06SBsYW5j6WUgcGFyIGwnJ2luc3RhbmNlIGQnJ+ljb3V0ZSBwb3VyIGwnJ+l26G5lbWVudCBhdHRyaWJ1dHMgKGF0dHJpYnV0ZXMpCmNveW90ZVJlcXVlc3QucG9zdFRvb0xhcmdlPUxlcyBwYXJhbeh0cmVzIG4nb250IHBhcyDpdOkg6XZhbHXpIGNhciBsYSB0YWlsbGUgZGVzIGRvbm7pZXMgcG9zdOllcyBlc3QgdHJvcCBpbXBvcnRhbnQuIFV0aWxpc2V6IGwnYXR0cmlidXQgbWF4UG9zdFNpemUgZHUgY29ubmVjdGV1ciBwb3VyIGNvcnJpZ2VyIGNlIHByb2Js6G1lIHNpIHZvdHJlIGFwcGxpY2F0aW9uIGRvaXQgYWNjZXB0ZXIgZGVzIFBPU1RzIGltcG9ydGFudHMuCgoKIwojIE1hcHBlckxpc3RlbmVyCiMKCm1hcHBlckxpc3RlbmVyLnJlZ2lzdGVyQ29udGV4dD1FbnJlZ2lzdHJlbWVudCBkdSBjb250ZXh0ZSB7MH0KbWFwcGVyTGlzdGVuZXIudW5yZWdpc3RlckNvbnRleHQ9ROlzZW5yZWdpc3RyZW1lbnQgZHUgY29udGV4dGUgezB9Cm1hcHBlckxpc3RlbmVyLnJlZ2lzdGVyV3JhcHBlcj1FbnJlZ2lzdHJlbWVudCBkZSBsJ2Vucm9iZXVyICh3cmFwcGVyKSB7MH0gZGFucyBsZSBjb250ZXh0ZSB7MX0KCgoK