IyBHZXJtYW4gdHJhbnNsYXRpb25zIGZvciBjcHVmcmVxdXRpbHMgcGFja2FnZQojIEdlcm1hbiBtZXNzYWdlcyBmb3IgY3B1ZnJlcXV0aWxzLgojIENvcHlyaWdodCAoQykgMjAwNC0yMDA5IERvbWluaWsgQnJvZG93c2tpIDxsaW51eEBkb21pbmlrYnJvZG93c2tpLm5ldD4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgY3B1ZnJlcXV0aWxzIHBhY2thZ2UuCiMKbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IGNwdWZyZXF1dGlscyAwMDZcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDEwLTA5LTAxIDAxOjIwKzAyMDBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDktMDgtMDggMTc6MTgrMDEwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiAgPGxpbnV4QGRvbWluaWticm9kb3dza2kubmV0PlxuIgoiTGFuZ3VhZ2UtVGVhbTogTk9ORVxuIgoiTUlNRS1WZXJzaW9uOiAxLjBcbiIKIkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1JU08tODg1OS0xXG4iCiJDb250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0XG4iCiJQbHVyYWwtRm9ybXM6IG5wbHVyYWxzPTI7IHBsdXJhbD0obiAhPSAxKTtcbiIKCiM6IHV0aWxzL2luZm8uYzozNgojLCBjLWZvcm1hdAptc2dpZCAiQ291bGRuJ3QgY291bnQgdGhlIG51bWJlciBvZiBDUFVzICglczogJXMpLCBhc3N1bWluZyAxXG4iCm1zZ3N0ciAiIgoiS29ubnRlIG5pY2h0IGRpZSBBbnphaGwgZGVyIENQVXMgaGVyYXVzZmluZGVuICglcyA6ICVzKSwgbmVobWUgZGFoZXIgMSBhbi5cbiIKCiM6IHV0aWxzL2luZm8uYzo2OAojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAgICAgICAgIG1pbmltdW0gQ1BVIGZyZXF1ZW5jeSAgLSAgbWF4aW11bSBDUFUgZnJlcXVlbmN5ICAtICBnb3Zlcm5vclxuIgptc2dzdHIgIiIKIiAgICAgICAgICBtaW5pbWFsZSBDUFUtVGFrdGZyZXEuIC0gIG1heGltYWxlIENQVS1UYWt0ZnJlcS4gLSAgUmVnbGVyICBcbiIKCiM6IHV0aWxzL2luZm8uYzoxNTYKIywgYy1mb3JtYXQKbXNnaWQgImNvdWxkbid0IGFuYWx5emUgQ1BVICVkIGFzIGl0IGRvZXNuJ3Qgc2VlbSB0byBiZSBwcmVzZW50XG4iCm1zZ3N0ciAiIgoiS29ubnRlIG5pY2h0IGRpZSBDUFUgJWQgYW5hbHlzaWVyZW4sIGRhIHNpZSAoc2NoZWluYmFyPykgbmljaHQgZXhpc3RpZXJ0LlxuIgoKIzogdXRpbHMvaW5mby5jOjE2MAojLCBjLWZvcm1hdAptc2dpZCAiYW5hbHl6aW5nIENQVSAlZDpcbiIKbXNnc3RyICJhbmFseXNpZXJlIENQVSAlZDpcbiIKCiM6IHV0aWxzL2luZm8uYzoxNjcKIywgYy1mb3JtYXQKbXNnaWQgIiAgbm8gb3IgdW5rbm93biBjcHVmcmVxIGRyaXZlciBpcyBhY3RpdmUgb24gdGhpcyBDUFVcbiIKbXNnc3RyICIgIGtlaW4gb2RlciBuaWNodCBiZXN0aW1tYmFyZXIgY3B1ZnJlcS1UcmVpYmVyIGFrdGl2XG4iCgojOiB1dGlscy9pbmZvLmM6MTY5CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIGRyaXZlcjogJXNcbiIKbXNnc3RyICIgIFRyZWliZXI6ICVzXG4iCgojOiB1dGlscy9pbmZvLmM6MTc1CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIENQVXMgd2hpY2ggcnVuIGF0IHRoZSBzYW1lIGhhcmR3YXJlIGZyZXF1ZW5jeTogIgptc2dzdHIgIiAgRm9sZ2VuZGUgQ1BVcyBsYXVmZW4gbWl0IGRlciBnbGVpY2hlbiBIYXJkd2FyZS1UYWt0ZnJlcXVlbno6ICIKCiM6IHV0aWxzL2luZm8uYzoxODYKIywgYy1mb3JtYXQKbXNnaWQgIiAgQ1BVcyB3aGljaCBuZWVkIHRvIGhhdmUgdGhlaXIgZnJlcXVlbmN5IGNvb3JkaW5hdGVkIGJ5IHNvZnR3YXJlOiAiCm1zZ3N0ciAiICBEaWUgVGFrdGZyZXF1ZW56IGZvbGdlbmRlciBDUFVzIHdlcmRlbiBwZXIgU29mdHdhcmUga29vcmRpbmllcnQ6ICIKCiM6IHV0aWxzL2luZm8uYzoxOTcKIywgYy1mb3JtYXQKbXNnaWQgIiAgbWF4aW11bSB0cmFuc2l0aW9uIGxhdGVuY3k6ICIKbXNnc3RyICIgIE1heGltYWxlIERhdWVyIGVpbmVzIFRha3RmcmVxdWVuendlY2hzZWxzOiAiCgojOiB1dGlscy9pbmZvLmM6MjAzCiMsIGMtZm9ybWF0Cm1zZ2lkICIgIGhhcmR3YXJlIGxpbWl0czogIgptc2dzdHIgIiAgSGFyZHdhcmViZWRpbmd0ZSBHcmVuemVuIGRlciBUYWt0ZnJlcXVlbno6ICIKCiM6IHV0aWxzL2luZm8uYzoyMTIKIywgYy1mb3JtYXQKbXNnaWQgIiAgYXZhaWxhYmxlIGZyZXF1ZW5jeSBzdGVwczogIgptc2dzdHIgIiAgbfZnbGljaGUgVGFrdGZyZXF1ZW56ZW46ICIKCiM6IHV0aWxzL2luZm8uYzoyMjUKIywgYy1mb3JtYXQKbXNnaWQgIiAgYXZhaWxhYmxlIGNwdWZyZXEgZ292ZXJub3JzOiAiCm1zZ3N0ciAiICBt9mdsaWNoZSBSZWdsZXI6ICIKCiM6IHV0aWxzL2luZm8uYzoyMzYKIywgYy1mb3JtYXQKbXNnaWQgIiAgY3VycmVudCBwb2xpY3k6IGZyZXF1ZW5jeSBzaG91bGQgYmUgd2l0aGluICIKbXNnc3RyICIgIG1vbWVudGFuZSBUYWt0aWs6IGRpZSBGcmVxdWVueiBzb2xsIGlubmVyaGFsYiAiCgojOiB1dGlscy9pbmZvLmM6MjM4CiMsIGMtZm9ybWF0Cm1zZ2lkICIgYW5kICIKbXNnc3RyICIgdW5kICIKCiM6IHV0aWxzL2luZm8uYzoyNDIKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlRoZSBnb3Zlcm5vciBcIiVzXCIgbWF5IGRlY2lkZSB3aGljaCBzcGVlZCB0byB1c2VcbiIKIiAgICAgICAgICAgICAgICAgIHdpdGhpbiB0aGlzIHJhbmdlLlxuIgptc2dzdHIgIiIKIiAgbGllZ2VuLiBEZXIgUmVnbGVyIFwiJXNcIiBrYW5uIGZyZWkgZW50c2NoZWlkZW4sXG4iCiIgICAgICAgICAgICAgICAgICAgIHdlbGNoZSBUYWt0ZnJlcXVlbnogaW5uZXJoYWxiIGRpZXNlciBHcmVuemUgdmVyd2VuZGV0ICIKIndpcmQuXG4iCgojOiB1dGlscy9pbmZvLmM6MjQ5CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIGN1cnJlbnQgQ1BVIGZyZXF1ZW5jeSBpcyAiCm1zZ3N0ciAiICBtb21lbnRhbmUgVGFrdGZyZXF1ZW56IGlzdCAiCgojOiB1dGlscy9pbmZvLmM6MjUyCiMsIGMtZm9ybWF0Cm1zZ2lkICIgKGFzc2VydGVkIGJ5IGNhbGwgdG8gaGFyZHdhcmUpIgptc2dzdHIgIiAgKHZlcmlmaXppZXJ0IGR1cmNoIE5hY2hmcmFnZSBiZWkgZGVyIEhhcmR3YXJlKSIKCiM6IHV0aWxzL2luZm8uYzoyNjAKIywgYy1mb3JtYXQKbXNnaWQgIiAgY3B1ZnJlcSBzdGF0czogIgptc2dzdHIgIiAgU3RhdGlzdGlrOiIKCiM6IHV0aWxzL2luZm8uYzo0NDAgdXRpbHMvc2V0LmM6MzEKIywgYy1mb3JtYXQKbXNnaWQgIlJlcG9ydCBlcnJvcnMgYW5kIGJ1Z3MgdG8gJXMsIHBsZWFzZS5cbiIKbXNnc3RyICJCaXR0ZSBtZWxkZW4gU2llIEZlaGxlciBhbiAlcy5cbiIKCiM6IHV0aWxzL2luZm8uYzo0NDQKIywgYy1mb3JtYXQKbXNnaWQgIlVzYWdlOiBjcHVmcmVxLWluZm8gW29wdGlvbnNdXG4iCm1zZ3N0ciAiQXVmcnVmOiBjcHVmcmVxLWluZm8gW09wdGlvbmVuXVxuIgoKIzogdXRpbHMvaW5mby5jOjQ0NSB1dGlscy9zZXQuYzozNwojLCBjLWZvcm1hdAptc2dpZCAiT3B0aW9uczpcbiIKbXNnc3RyICJPcHRpb25lbjpcbiIKCiM6IHV0aWxzL2luZm8uYzo0NDYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLWMgQ1BVLCAtLWNwdSBDUFUgICAgQ1BVIG51bWJlciB3aGljaCBpbmZvcm1hdGlvbiBzaGFsbCBiZSBkZXRlcm1pbmVkICIKImFib3V0XG4iCm1zZ3N0ciAiIgoiICAtYyBDUFUsIC0tY3B1IENQVSAgICBOdW1tZXIgZGVyIENQVSwg/GJlciBkaWUgSW5mb3JtYXRpb25lbiBoZXJhdXNnZWZ1bmRlbiAiCiJ3ZXJkZW4gc29sbGVuXG4iCgojOiB1dGlscy9pbmZvLmM6NDQ3CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIC1lLCAtLWRlYnVnICAgICAgICAgIFByaW50cyBvdXQgZGVidWcgaW5mb3JtYXRpb25cbiIKbXNnc3RyICIiCiIgIC1lLCAtLWRlYnVnICAgICAgICAgIEVyemV1Z3QgZGV0YWlsbGllcnRlIEluZm9ybWF0aW9uZW4sIGhpbGZyZWljaFxuIgoiICAgICAgICAgICAgICAgICAgICAgICB6dW0gQXVmc3D8cmVuIHZvbiBGZWhsZXJuXG4iCgojOiB1dGlscy9pbmZvLmM6NDQ4CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1mLCAtLWZyZXEgICAgICAgICAgIEdldCBmcmVxdWVuY3kgdGhlIENQVSBjdXJyZW50bHkgcnVucyBhdCwgYWNjb3JkaW5nXG4iCiIgICAgICAgICAgICAgICAgICAgICAgIHRvIHRoZSBjcHVmcmVxIGNvcmUgKlxuIgptc2dzdHIgIiIKIiAgLWYsIC0tZnJlcSAgICAgICAgICAgRmluZGV0IGRpZSBtb21lbnRhbmUgQ1BVLVRha3RmcnF1ZW56IGhlcmF1cyAobmFjaFxuIgoiICAgICAgICAgICAgICAgICAgICAgICBNZWludW5nIGRlcyBCZXRyaWVic3N5c3RlbXMpICpcbiIKCiM6IHV0aWxzL2luZm8uYzo0NTAKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXcsIC0taHdmcmVxICAgICAgICAgR2V0IGZyZXF1ZW5jeSB0aGUgQ1BVIGN1cnJlbnRseSBydW5zIGF0LCBieSByZWFkaW5nXG4iCiIgICAgICAgICAgICAgICAgICAgICAgIGl0IGZyb20gaGFyZHdhcmUgKG9ubHkgYXZhaWxhYmxlIHRvIHJvb3QpICpcbiIKbXNnc3RyICIiCiIgIC13LCAtLWh3ZnJlcSAgICAgICAgIEZpbmRldCBkaWUgbW9tZW50YW5lIENQVS1UYWt0ZnJlcXVlbnogaGVyYXVzXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICh2ZXJpZml6aWVydCBkdXJjaCBOYWNoZnJhZ2UgYmVpIGRlciBIYXJkd2FyZSlcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgW251ciBkZXIgQWRtaW5pc3RyYXRvciBrYW5uIGRpZXMgdHVuXSAqXG4iCgojOiB1dGlscy9pbmZvLmM6NDUyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1sLCAtLWh3bGltaXRzICAgICAgIERldGVybWluZSB0aGUgbWluaW11bSBhbmQgbWF4aW11bSBDUFUgZnJlcXVlbmN5ICIKImFsbG93ZWQgKlxuIgptc2dzdHIgIiIKIiAgLWwsIC0taHdsaW1pdHMgICAgICAgRmluZGV0IGRpZSBtaW5pbWFsZSB1bmQgbWF4aW1hbGUgVGFrdGZyZXF1ZW56IGhlcmF1cyAiCiIqXG4iCgojOiB1dGlscy9pbmZvLmM6NDUzCiMsIGMtZm9ybWF0Cm1zZ2lkICIgIC1kLCAtLWRyaXZlciAgICAgICAgIERldGVybWluZXMgdGhlIHVzZWQgY3B1ZnJlcSBrZXJuZWwgZHJpdmVyICpcbiIKbXNnc3RyICIgIC1kLCAtLWRyaXZlciAgICAgICAgIEZpbmRldCBkZW4gbW9tZW50YW5lbiBUcmVpYmVyIGhlcmF1cyAqXG4iCgojOiB1dGlscy9pbmZvLmM6NDU0CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIC1wLCAtLXBvbGljeSAgICAgICAgIEdldHMgdGhlIGN1cnJlbnRseSB1c2VkIGNwdWZyZXEgcG9saWN5ICpcbiIKbXNnc3RyICIgIC1wLCAtLXBvbGljeSAgICAgICAgIEZpbmRldCBkaWUgbW9tZW50YW5lIFRha3RpayBoZXJhdXMgKlxuIgoKIzogdXRpbHMvaW5mby5jOjQ1NQojLCBjLWZvcm1hdAptc2dpZCAiICAtZywgLS1nb3Zlcm5vcnMgICAgICBEZXRlcm1pbmVzIGF2YWlsYWJsZSBjcHVmcmVxIGdvdmVybm9ycyAqXG4iCm1zZ3N0ciAiICAtZywgLS1nb3Zlcm5vcnMgICAgICBFcnpldWd0IGVpbmUgTGlzdGUgbWl0IHZlcmb8Z2JhcmVuIFJlZ2xlcm4gKlxuIgoKIzogdXRpbHMvaW5mby5jOjQ1NgojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtciwgLS1yZWxhdGVkLWNwdXMgICBEZXRlcm1pbmVzIHdoaWNoIENQVXMgcnVuIGF0IHRoZSBzYW1lIGhhcmR3YXJlICIKImZyZXF1ZW5jeSAqXG4iCm1zZ3N0ciAiIgoiICAtciwgLS1yZWxhdGVkLWNwdXMgICBGaW5kZXQgaGVyYXVzLCB3ZWxjaGUgQ1BVcyBtaXQgZGVyc2VsYmVuICIKInBoeXNpa2FsaXNjaGVuXG4iCiIgICAgICAgICAgICAgICAgICAgICAgIFRha3RmcmVxdWVueiBsYXVmZW4gKlxuIgoKIzogdXRpbHMvaW5mby5jOjQ1NwojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtYSwgLS1hZmZlY3RlZC1jcHVzICBEZXRlcm1pbmVzIHdoaWNoIENQVXMgbmVlZCB0byBoYXZlIHRoZWlyIGZyZXF1ZW5jeVxuIgoiICAgICAgICAgICAgICAgICAgICAgICBjb29yZGluYXRlZCBieSBzb2Z0d2FyZSAqXG4iCm1zZ3N0ciAiIgoiICAtYSwgLS1hZmZlY3RlZC1jcHVzICBGaW5kZXQgaGVyYXVzLCB2b24gd2VsY2hlbiBDUFVzIGRpZSBUYWt0ZnJlcXVlbnogIgoiZHVyY2hcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgU29mdHdhcmUga29vcmRpbmllcnQgd2VyZGVuIG11c3MgKlxuIgoKIzogdXRpbHMvaW5mby5jOjQ1OQojLCBjLWZvcm1hdAptc2dpZCAiICAtcywgLS1zdGF0cyAgICAgICAgICBTaG93cyBjcHVmcmVxIHN0YXRpc3RpY3MgaWYgYXZhaWxhYmxlXG4iCm1zZ3N0ciAiIgoiICAtcywgLS1zdGF0cyAgICAgICAgICBaZWlndCwgc29mZXJuIG32Z2xpY2gsIFN0YXRpc3Rpa2VuIPxiZXIgY3B1ZnJlcSBhbi5cbiIKCiM6IHV0aWxzL2luZm8uYzo0NjAKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXksIC0tbGF0ZW5jeSAgICAgICAgRGV0ZXJtaW5lcyB0aGUgbWF4aW11bSBsYXRlbmN5IG9uIENQVSBmcmVxdWVuY3kgIgoiY2hhbmdlcyAqXG4iCm1zZ3N0ciAiIgoiICAteSwgLS1sYXRlbmN5ICAgICAgICBGaW5kZXQgZGllIG1heGltYWxlIERhdWVyIGVpbmVzIFRha3RmcmVxdWVuendlY2hzZWxzICIKImhlcmF1cyAqXG4iCgojOiB1dGlscy9pbmZvLmM6NDYxCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1vLCAtLXByb2MgICAgICAgICAgIFByaW50cyBvdXQgaW5mb3JtYXRpb24gbGlrZSBwcm92aWRlZCBieSB0aGUgL3Byb2MvIgoiY3B1ZnJlcVxuIgoiICAgICAgICAgICAgICAgICAgICAgICBpbnRlcmZhY2UgaW4gMi40LiBhbmQgZWFybHkgMi42LiBrZXJuZWxzXG4iCm1zZ3N0ciAiIgoiICAtbywgLS1wcm9jICAgICAgICAgICBFcnpldWd0IEluZm9ybWF0aW9uZW4gaW4gZWluZW0g5GhubGljaGVtIEZvcm1hdCB6dSAiCiJkZW1cbiIKIiAgICAgICAgICAgICAgICAgICAgICAgZGVyIC9wcm9jL2NwdWZyZXEtRGF0ZWkgaW4gMi40LiB1bmQgZnL8aGVuIDIuNi5cbiIKIiAgICAgICAgICAgICAgICAgICAgICAgS2VybmVsLVZlcnNpb25lblxuIgoKIzogdXRpbHMvaW5mby5jOjQ2MwojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtbSwgLS1odW1hbiAgICAgICAgICBodW1hbi1yZWFkYWJsZSBvdXRwdXQgZm9yIHRoZSAtZiwgLXcsIC1zIGFuZCAteSAiCiJwYXJhbWV0ZXJzXG4iCm1zZ3N0ciAiIgoiICAtbSwgLS1odW1hbiAgICAgICAgICBGb3JtYXRpZXJ0IFRha3RmcmVxdWVuei0gdW5kIFplaXRkYXVlcmFuZ2FiZW4gaW4gIgoiYmVzc2VyXG4iCiIgICAgICAgICAgICAgICAgICAgICAgIGxlc2JhcmVyIEZvcm0gKE1IeiwgR0h6OyB1cywgbXMpXG4iCgojOiB1dGlscy9pbmZvLmM6NDY0CiMsIGMtZm9ybWF0Cm1zZ2lkICIgIC1oLCAtLWhlbHAgICAgICAgICAgIFByaW50cyBvdXQgdGhpcyBzY3JlZW5cbiIKbXNnc3RyICIgIC1oLCAtLWhlbHAgICAgICAgICAgIEdpYnQgZGllc2UgS3VyevxiZXJzaWNodCBhdXNcbiIKCiM6IHV0aWxzL2luZm8uYzo0NjcKIywgYy1mb3JtYXQKbXNnaWQgIiIKIklmIG5vIGFyZ3VtZW50IG9yIG9ubHkgdGhlIC1jLCAtLWNwdSBwYXJhbWV0ZXIgaXMgZ2l2ZW4sIGRlYnVnIG91dHB1dCBhYm91dFxuIgoiY3B1ZnJlcSBpcyBwcmludGVkIHdoaWNoIGlzIHVzZWZ1bCBlLmcuIGZvciByZXBvcnRpbmcgYnVncy5cbiIKbXNnc3RyICIiCiJTb2Zlcm4ga2VpbiBhbmRlcmVyIFBhcmFtZXRlciBhbHMgJy1jLCAtLWNwdScgYW5nZWdlYmVuIHdpcmQsIGxpZWZlcnQgIgoiZGllc2VzXG4iCiJQcm9ncmFtbSBJbmZvcm1hdGlvbmVuLCBkaWUgei5CLiB6dW0gQmVyaWNodGVuIHZvbiBGZWhsZXJuIG78dHpsaWNoIHNpbmQuXG4iCgojOiB1dGlscy9pbmZvLmM6NDY5CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJGb3IgdGhlIGFyZ3VtZW50cyBtYXJrZWQgd2l0aCAqLCBvbWl0dGluZyB0aGUgLWMgb3IgLS1jcHUgYXJndW1lbnQgaXNcbiIKImVxdWl2YWxlbnQgdG8gc2V0dGluZyBpdCB0byB6ZXJvXG4iCm1zZ3N0ciAiIgoiQmVpIGRlbiBtaXQgKiBtYXJraWVydGVuIFBhcmFtZXRlcm4gd2lyZCAnLS1jcHUgMCcgYW5nZW5vbW1lbiwgc293ZWl0IG5pY2h0XG4iCiJtaXR0ZWxzIC1jIG9kZXIgLS1jcHUgZXR3YXMgYW5kZXJlcyBhbmdlZ2ViZW4gd2lyZFxuIgoKIzogdXRpbHMvaW5mby5jOjU2MwojLCBjLWZvcm1hdAptc2dpZCAiIgoiVGhlIGFyZ3VtZW50IHBhc3NlZCB0byB0aGlzIHRvb2wgY2FuJ3QgYmUgY29tYmluZWQgd2l0aCBwYXNzaW5nIGEgLS1jcHUgIgoiYXJndW1lbnRcbiIKbXNnc3RyICJEaWVzZSBPcHRpb24ga2FubiBuaWNodCBtaXQgZGVyIC0tY3B1LU9wdGlvbiBrb21iaW5pZXJ0IHdlcmRlblxuIgoKIzogdXRpbHMvaW5mby5jOjU3NgojLCBjLWZvcm1hdAptc2dpZCAiIgoiWW91IGNhbid0IHNwZWNpZnkgbW9yZSB0aGFuIG9uZSAtLWNwdSBwYXJhbWV0ZXIgYW5kL29yXG4iCiJtb3JlIHRoYW4gb25lIG91dHB1dC1zcGVjaWZpYyBhcmd1bWVudFxuIgptc2dzdHIgIiIKIk1hbiBrYW5uIG5pY2h0IG1laHIgYWxzIGVpbmVuIC0tY3B1LVBhcmFtZXRlciB1bmQvb2RlciBtZWhyIGFscyBlaW5lblxuIgoiaW5mb3JtYXRpb25zc3BlemlmaXNjaGVuIFBhcmFtZXRlciBnbGVpY2h6ZWl0aWcgYW5nZWJlblxuIgoKIzogdXRpbHMvaW5mby5jOjU4MiB1dGlscy9zZXQuYzo5NQojLCBjLWZvcm1hdAptc2dpZCAiaW52YWxpZCBvciB1bmtub3duIGFyZ3VtZW50XG4iCm1zZ3N0ciAidW5iZWthbm50ZXIgb2RlciBmYWxzY2hlciBQYXJhbWV0ZXJcbiIKCiM6IHV0aWxzL3NldC5jOjM2CiMsIGMtZm9ybWF0Cm1zZ2lkICJVc2FnZTogY3B1ZnJlcS1zZXQgW29wdGlvbnNdXG4iCm1zZ3N0ciAiQXVmcnVmOiBjcHVmcmVxLXNldCBbT3B0aW9uZW5dXG4iCgojOiB1dGlscy9zZXQuYzozOAojLCBjLWZvcm1hdAptc2dpZCAiIgoiICAtYyBDUFUsIC0tY3B1IENQVSAgICAgICAgbnVtYmVyIG9mIENQVSB3aGVyZSBjcHVmcmVxIHNldHRpbmdzIHNoYWxsIGJlICIKIm1vZGlmaWVkXG4iCm1zZ3N0ciAiIgoiICAtYyBDUFUsIC0tY3B1IENQVSAgICAgICAgTnVtbWVyIGRlciBDUFUsIGRlcmVuIFRha3RmcmVxdWVuei1FaW5zdGVsbHVuZ1xuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgd2VyZGVuIHNvbGxcbiIKCiM6IHV0aWxzL3NldC5jOjM5CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1kIEZSRVEsIC0tbWluIEZSRVEgICAgICBuZXcgbWluaW11bSBDUFUgZnJlcXVlbmN5IHRoZSBnb3Zlcm5vciBtYXkgIgoic2VsZWN0XG4iCm1zZ3N0ciAiIgoiICAtZCBGUkVRLCAtLW1pbiBGUkVRICAgICAgbmV1ZSBtaW5pbWFsZSBUYWt0ZnJlcXVlbnosIGRpZSBkZXIgUmVnbGVyXG4iCiIgICAgICAgICAgICAgICAgICAgICAgICAgICBhdXN35GhsZW4gZGFyZlxuIgoKIzogdXRpbHMvc2V0LmM6NDAKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiAgLXUgRlJFUSwgLS1tYXggRlJFUSAgICAgIG5ldyBtYXhpbXVtIENQVSBmcmVxdWVuY3kgdGhlIGdvdmVybm9yIG1heSAiCiJzZWxlY3RcbiIKbXNnc3RyICIiCiIgIC11IEZSRVEsIC0tbWF4IEZSRVEgICAgICBuZXVlIG1heGltYWxlIFRha3RmcmVxdWVueiwgZGllIGRlciBSZWdsZXJcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1c3fkaGxlbiBkYXJmXG4iCgojOiB1dGlscy9zZXQuYzo0MQojLCBjLWZvcm1hdAptc2dpZCAiICAtZyBHT1YsIC0tZ292ZXJub3IgR09WICAgbmV3IGNwdWZyZXEgZ292ZXJub3JcbiIKbXNnc3RyICIgIC1nIEdPViwgLS1nb3Zlcm5vcnMgR09WICB3ZWNoc2xlIHp1IFJlZ2xlciBHT1ZcbiIKCiM6IHV0aWxzL3NldC5jOjQyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgIC1mIEZSRVEsIC0tZnJlcSBGUkVRICAgICBzcGVjaWZpYyBmcmVxdWVuY3kgdG8gYmUgc2V0LiBSZXF1aXJlcyB1c2Vyc3BhY2VcbiIKIiAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdmVybm9yIHRvIGJlIGF2YWlsYWJsZSBhbmQgbG9hZGVkXG4iCm1zZ3N0ciAiIgoiICAtZiBGUkVRLCAtLWZyZXEgRlJFUSAgICAgc2V0emUgZXhha3RlIFRha3RmcmVxdWVuei4gQmVu9nRpZ3QgZGVuIFJlZ2xlclxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3VzZXJzcGFjZScuXG4iCgojOiB1dGlscy9zZXQuYzo0NAojLCBjLWZvcm1hdAptc2dpZCAiICAtciwgLS1yZWxhdGVkICAgICAgICAgICAgU3dpdGNoZXMgYWxsIGhhcmR3YXJlLXJlbGF0ZWQgQ1BVc1xuIgptc2dzdHIgIiIKIiAgLXIsIC0tcmVsYXRlZCAgICAgICAgICAgIFNldHplIFdlcnRlIGb8ciBhbGxlIENQVXMsIGRlcmVuIFRha3RmcmVxdWVuelxuIgoiICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFyZHdhcmViZWRpbmd0IGlkZW50aXNjaCBpc3QuXG4iCgojOiB1dGlscy9zZXQuYzo0NQojLCBjLWZvcm1hdAptc2dpZCAiICAtaCwgLS1oZWxwICAgICAgICAgICAgICAgUHJpbnRzIG91dCB0aGlzIHNjcmVlblxuIgptc2dzdHIgIiAgLWgsIC0taGVscCAgICAgICAgICAgICAgIEdpYnQgZGllc2UgS3VyevxiZXJzaWNodCBhdXNcbiIKCiM6IHV0aWxzL3NldC5jOjQ3CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJOb3RlczpcbiIKIjEuIE9taXR0aW5nIHRoZSAtYyBvciAtLWNwdSBhcmd1bWVudCBpcyBlcXVpdmFsZW50IHRvIHNldHRpbmcgaXQgdG8gemVyb1xuIgoiMi4gVGhlIC1mIEZSRVEsIC0tZnJlcSBGUkVRIHBhcmFtZXRlciBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCBhbnkgb3RoZXIgIgoicGFyYW1ldGVyXG4iCiIgICBleGNlcHQgdGhlIC1jIENQVSwgLS1jcHUgQ1BVIHBhcmFtZXRlclxuIgoiMy4gRlJFUXVlbmNpZXMgY2FuIGJlIHBhc3NlZCBpbiBIeiwga0h6IChkZWZhdWx0KSwgTUh6LCBHSHosIG9yIFRIelxuIgoiICAgYnkgcG9zdGZpeGluZyB0aGUgdmFsdWUgd2l0aCB0aGUgd2FudGVkIHVuaXQgbmFtZSwgd2l0aG91dCBhbnkgc3BhY2VcbiIKIiAgIChGUkVRdWVuY3kgaW4ga0h6ID1eIEh6ICogMC4wMDEgPV4gTUh6ICogMTAwMCA9XiBHSHogKiAxMDAwMDAwKS5cbiIKbXNnc3RyICIiCiJIaW53ZWlzZTpcbiIKIjEuIFNvZmVybiBrZWluIC1jIG9kZXIgLS1jcHUtUGFyYW1ldGVyIGFuZ2VnZWJlbiBpc3QsIHdpcmQgJy0tY3B1IDAnXG4iCiIgICBhbmdlbm9tbWVuXG4iCiIyLiBEZXIgUGFyYW1ldGVyIC1mIGJ6dy4gLS1mcmVxIGthbm4gbWl0IGtlaW5lbSBhbmRlcmVuIGFscyBkZW0gUGFyYW1ldGVyXG4iCiIgICAtYyBiencuIC0tY3B1IGtvbWJpbmllcnQgd2VyZGVuXG4iCiIzLiBGUkVRdWVuemVuIGv2bm5lbiBpbiBIeiwga0h6IChTdGFuZGFyZCksIE1IeiwgR0h6IG9kZXIgVEh6IGVpbmdlZ2ViZW5cbiIKIiAgIHdlcmRlbiwgaW5kZW0gZGVyIFdlcnQgdW5kIHVubWl0dGVsYmFyIGFuc2NobGll32VuZCAob2huZSBMZWVyemVpY2hlbiEpXG4iCiIgICBkaWUgRWluaGVpdCBhbmdlZ2ViZW4gd2VyZGVuLiAoQnNwOiAxR0h6IClcbiIKIiAgIChGUkVRdWVueiBpbiBrSHogPV4gTUh6ICogMTAwMCA9XiBHSHogKiAxMDAwMDAwKS5cbiIKCiM6IHV0aWxzL3NldC5jOjY5CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJFcnJvciBzZXR0aW5nIG5ldyB2YWx1ZXMuIENvbW1vbiBlcnJvcnM6XG4iCiItIERvIHlvdSBoYXZlIHByb3BlciBhZG1pbmlzdHJhdGlvbiByaWdodHM/IChzdXBlci11c2VyPylcbiIKIi0gSXMgdGhlIGdvdmVybm9yIHlvdSByZXF1ZXN0ZWQgYXZhaWxhYmxlIGFuZCBtb2Rwcm9iZWQ/XG4iCiItIFRyeWluZyB0byBzZXQgYW4gaW52YWxpZCBwb2xpY3k/XG4iCiItIFRyeWluZyB0byBzZXQgYSBzcGVjaWZpYyBmcmVxdWVuY3ksIGJ1dCB1c2Vyc3BhY2UgZ292ZXJub3IgaXMgbm90ICIKImF2YWlsYWJsZSxcbiIKIiAgIGZvciBleGFtcGxlIGJlY2F1c2Ugb2YgaGFyZHdhcmUgd2hpY2ggY2Fubm90IGJlIHNldCB0byBhIHNwZWNpZmljICIKImZyZXF1ZW5jeVxuIgoiICAgb3IgYmVjYXVzZSB0aGUgdXNlcnNwYWNlIGdvdmVybm9yIGlzbid0IGxvYWRlZD9cbiIKbXNnc3RyICIiCiJCZWltIEVpbnN0ZWxsZW4gaXN0IGVpbiBGZWhsZXIgYXVmZ2V0cmV0ZW4uIFR5cGlzY2hlIEZlaGxlcnF1ZWxsZW4gc2luZDpcbiIKIi0gbmljaHQgYXVzcmVpY2hlbmRlIFJlY2h0ZSAoQWRtaW5pc3RyYXRvcilcbiIKIi0gZGVyIFJlZ2xlciBpc3QgbmljaHQgdmVyZvxnYmFyIGJ6dy4gbmljaHQgZ2VsYWRlblxuIgoiLSBkaWUgYW5nZWdlYmVuZSBUYWt0aWsgaXN0IGlua29ycmVrdFxuIgoiLSBlaW5lIHNwZXppZmlzY2hlIEZyZXF1ZW56IHd1cmRlIGFuZ2VnZWJlbiwgYWJlciBkZXIgUmVnbGVyICd1c2Vyc3BhY2UnXG4iCiIgIGthbm4gZW50d2VkZXIgaGFyZHdhcmViZWRpbmd0IG5pY2h0IGdlbnV0enQgd2VyZGVuIG9kZXIgaXN0IG5pY2h0IGdlbGFkZW5cbiIKCiM6IHV0aWxzL3NldC5jOjE4MwojLCBjLWZvcm1hdAptc2dpZCAid3JvbmcsIHVua25vd24gb3IgdW5oYW5kbGVkIENQVT9cbiIKbXNnc3RyICJ1bmJla2FubnRlIG9kZXIgbmljaHQgcmVnZWxiYXJlIENQVVxuIgoKIzogdXRpbHMvc2V0LmM6MzM2CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJ0aGUgLWYvLS1mcmVxIHBhcmFtZXRlciBjYW5ub3QgYmUgY29tYmluZWQgd2l0aCAtZC8tLW1pbiwgLXUvLS1tYXggb3JcbiIKIi1nLy0tZ292ZXJub3IgcGFyYW1ldGVyc1xuIgptc2dzdHIgIiIKIkRlciAtZiBiencuIC0tZnJlcS1QYXJhbWV0ZXIga2FubiBuaWNodCBtaXQgZGVuIFBhcmFtZXRlcm4gLWQvLS1taW4sIC11Ly0tIgoibWF4XG4iCiJvZGVyIC1nLy0tZ292ZXJub3Iga29tYmluaWVydCB3ZXJkZW5cbiIKCiM6IHV0aWxzL3NldC5jOjM0MgojLCBjLWZvcm1hdAptc2dpZCAiIgoiQXQgbGVhc3Qgb25lIHBhcmFtZXRlciBvdXQgb2YgLWYvLS1mcmVxLCAtZC8tLW1pbiwgLXUvLS1tYXgsIGFuZFxuIgoiLWcvLS1nb3Zlcm5vciBtdXN0IGJlIHBhc3NlZFxuIgptc2dzdHIgIiIKIkVzIG11c3MgbWluZGVzdGVucyBlaW4gUGFyYW1ldGVyIGF1cyAtZi8tLWZyZXEsIC1kLy0tbWluLCAtdS8tLW1heCBvZGVyXG4iCiItZy8tLWdvdmVybm9yIGFuZ2VnZWJlbiB3ZXJkZW4uXG4iCg==