IyBJcmlzaCB0cmFuc2xhdGlvbnMgZm9yIGdwcm9mLgojIENvcHlyaWdodCAoQykgMjAwNSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4KIyBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHNhbWUgbGljZW5zZSBhcyB0aGUgZ3Byb2YgcGFja2FnZS4KIyBLZXZpbiBQYXRyaWNrIFNjYW5uZWxsIDxzY2FubmVsbEBTTFUuRURVPiwgMjAwNSwgMjAwNy4KbXNnaWQgIiIKbXNnc3RyICIiCiJQcm9qZWN0LUlkLVZlcnNpb246IGdwcm9mIDIuMTcuOTBcbiIKIlJlcG9ydC1Nc2dpZC1CdWdzLVRvOiBcbiIKIlBPVC1DcmVhdGlvbi1EYXRlOiAyMDA3LTA1LTE1IDE2OjQ5KzA5MzBcbiIKIlBPLVJldmlzaW9uLURhdGU6IDIwMDctMDgtMDUgMTg6MzItMDUwMFxuIgoiTGFzdC1UcmFuc2xhdG9yOiBLZXZpbiBTY2FubmVsbCA8a3NjYW5uZUBnbWFpbC5jb20+XG4iCiJMYW5ndWFnZS1UZWFtOiBJcmlzaCA8Z2FlaWxnZS1nbnVsaW51eEBsaXN0cy5zb3VyY2Vmb3JnZS5uZXQ+XG4iCiJYLUJ1Z3M6IFJlcG9ydCB0cmFuc2xhdGlvbiBlcnJvcnMgdG8gdGhlIExhbmd1YWdlLVRlYW0gYWRkcmVzcy5cbiIKIk1JTUUtVmVyc2lvbjogMS4wXG4iCiJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9SVNPLTg4NTktMVxuIgoiQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdFxuIgoKIzogYWxwaGEuYzoxMDIgbWlwcy5jOjU0Cm1zZ2lkICI8aW5kaXJlY3QgY2hpbGQ+Igptc2dzdHIgIjxtYWMgaW5k7XJlYWNoPiIKCiM6IGFscGhhLmM6MTA3IG1pcHMuYzo1OQojLCBjLWZvcm1hdAptc2dpZCAiW2ZpbmRfY2FsbF0gJXM6IDB4JWx4IHRvIDB4JWx4XG4iCm1zZ3N0ciAiW2ZpbmRfY2FsbF0gJXM6IDB4JWx4IGdvIDB4JWx4XG4iCgojOiBhbHBoYS5jOjEyOQojLCBjLWZvcm1hdAptc2dpZCAiW2ZpbmRfY2FsbF0gMHglbHg6IGpzciVzIDxpbmRpcmVjdF9jaGlsZD5cbiIKbXNnc3RyICJbZmluZF9jYWxsXSAweCVseDoganNyJXMgPG1hY19pbmTtcmVhY2g+XG4iCgojOiBhbHBoYS5jOjEzOQojLCBjLWZvcm1hdAptc2dpZCAiW2ZpbmRfY2FsbF0gMHglbHg6IGJzciIKbXNnc3RyICJbZmluZF9jYWxsXSAweCVseDogYnNyIgoKIzogYmFzaWNfYmxvY2tzLmM6MTI4IGNhbGxfZ3JhcGguYzo4OSBoaXN0LmM6MTA1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogJXM6IHVuZXhwZWN0ZWQgZW5kIG9mIGZpbGVcbiIKbXNnc3RyICIlczogJXM6IGNvbWhhZGNocu1vY2ggZ2FuIGNob2lubmVcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjE5NgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHdhcm5pbmc6IGlnbm9yaW5nIGJhc2ljLWJsb2NrIGV4ZWMgY291bnRzICh1c2UgLWwgb3IgLS1saW5lKVxuIgptc2dzdHIgIiVzOiByYWJoYWRoOiBk6WFuZmFyIG5lYW1oc2h1aW0gYXIgbO1vbiBuYSByaXTtIGRlIGJodW5iaGxvaWMgKPpz4WlkIC1sIG7zIC0tbGluZSlcbiIKCiMuIEZJWE1FOiBUaGlzIG9ubHkgd29ya3MgaWYgYmZkX3ZtYSBpcyB1bnNpZ25lZCBsb25nLgojOiBiYXNpY19ibG9ja3MuYzoyODkgYmFzaWNfYmxvY2tzLmM6Mjk5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczolZDogKCVzOjB4JWx4KSAlbHUgZXhlY3V0aW9uc1xuIgptc2dzdHIgIiVzOiVkOiAoJXM6MHglbHgpICVsdSByaXRoXG4iCgojOiBiYXNpY19ibG9ja3MuYzoyOTAgYmFzaWNfYmxvY2tzLmM6MzAwCm1zZ2lkICI8dW5rbm93bj4iCm1zZ3N0ciAiPGFuYWl0aG5pZD4iCgojOiBiYXNpY19ibG9ja3MuYzo1NDMKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiXG4iCiJUb3AgJWQgTGluZXM6XG4iCiJcbiIKIiAgICAgTGluZSAgICAgIENvdW50XG4iCiJcbiIKbXNnc3RyICIiCiJcbiIKIlxuIgoiJWQgUHLtb21obO1uZTpcbiIKIlxuIgoiICAgICBM7W5lICAgICAgTO1vblxuIgoiXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1NjcKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiRXhlY3V0aW9uIFN1bW1hcnk6XG4iCiJcbiIKbXNnc3RyICIiCiJcbiIKIkFjaG9pbXJlIFJpdGU6XG4iCiJcbiIKCiM6IGJhc2ljX2Jsb2Nrcy5jOjU2OAojLCBjLWZvcm1hdAptc2dpZCAiJTlsZCAgIEV4ZWN1dGFibGUgbGluZXMgaW4gdGhpcyBmaWxlXG4iCm1zZ3N0ciAiJTlsZCAgIEztbnRlIGlucml0ZSBzYSBjaG9taGFkIHNlb1xuIgoKIzogYmFzaWNfYmxvY2tzLmM6NTcwCiMsIGMtZm9ybWF0Cm1zZ2lkICIlOWxkICAgTGluZXMgZXhlY3V0ZWRcbiIKbXNnc3RyICIlOWxkICAgTO1udGUgYXJuYSByaXRoXG4iCgojOiBiYXNpY19ibG9ja3MuYzo1NzEKIywgYy1mb3JtYXQKbXNnaWQgIiU5LjJmICAgUGVyY2VudCBvZiB0aGUgZmlsZSBleGVjdXRlZFxuIgptc2dzdHIgIiU5LjJmICAgQ+lhdGFk4W4gZGVuIGNob21oYWQgYSByaXRoZWFkaFxuIgoKIzogYmFzaWNfYmxvY2tzLmM6NTc1CiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcbiIKIiU5bHUgICBUb3RhbCBudW1iZXIgb2YgbGluZSBleGVjdXRpb25zXG4iCm1zZ3N0ciAiIgoiXG4iCiIlOWx1ICAgTO1vbiBpb21s4W4gbmEgcml07SBkZSBs7W50ZVxuIgoKIzogYmFzaWNfYmxvY2tzLmM6NTc3CiMsIGMtZm9ybWF0Cm1zZ2lkICIlOS4yZiAgIEF2ZXJhZ2UgZXhlY3V0aW9ucyBwZXIgbGluZVxuIgptc2dzdHIgIiU5LjJmICAgTWXhbmztb24gbmEgcml07SBkZSBnYWNoIGztbmVcbiIKCiM6IGNhbGxfZ3JhcGguYzo2OAojLCBjLWZvcm1hdAptc2dpZCAiW2NnX3RhbGx5XSBhcmMgZnJvbSAlcyB0byAlcyB0cmF2ZXJzZWQgJWx1IHRpbWVzXG4iCm1zZ3N0ciAiW2NnX3RhbGx5XSB0cmFzbmHtb2RoIGFuIHQtYXJjIPMgJXMgZ28gJXMgJWx1IHVhaXJlXG4iCgojOiBjZ19wcmludC5jOjczCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiJcdFx0ICAgICBDYWxsIGdyYXBoIChleHBsYW5hdGlvbiBmb2xsb3dzKVxuIgoiXG4iCm1zZ3N0ciAiIgoiXHRcdCAgICAgR2xhb2docmFmICht7W5p+iBpbmEgZGhpYWlkaClcbiIKIlxuIgoKIzogY2dfcHJpbnQuYzo3NQojLCBjLWZvcm1hdAptc2dpZCAiIgoiXHRcdFx0Q2FsbCBncmFwaFxuIgoiXG4iCm1zZ3N0ciAiIgoiXHRcdFx0R2xhb2docmFmXG4iCiJcbiIKCiM6IGNnX3ByaW50LmM6NzggaGlzdC5jOjQ2NgojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiJncmFudWxhcml0eTogZWFjaCBzYW1wbGUgaGl0IGNvdmVycyAlbGQgYnl0ZShzKSIKbXNnc3RyICIiCiJcbiIKImdy4WlubmVhY2h0OiB04SAlbGQgYmVhcnQgaSBuZ2FjaCBzYW1wbGEiCgojOiBjZ19wcmludC5jOjgyCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgZm9yICUuMmYlJSBvZiAlLjJmIHNlY29uZHNcbiIKIlxuIgptc2dzdHIgIiIKIiBkbyAlLjJmJSUgYXMgJS4yZiBzb2ljaW5kXG4iCiJcbiIKCiM6IGNnX3ByaW50LmM6ODYKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiBubyB0aW1lIHByb3BhZ2F0ZWRcbiIKIlxuIgptc2dzdHIgIiIKIiBu7W9yIGZvcmxlYXRoYWRoIGFvbiBhbVxuIgoiXG4iCgojOiBjZ19wcmludC5jOjk1IGNnX3ByaW50LmM6OTggY2dfcHJpbnQuYzoxMDAKbXNnaWQgImNhbGxlZCIKbXNnc3RyICJnbGFvaXRlIgoKIzogY2dfcHJpbnQuYzo5NSBjZ19wcmludC5jOjEwMAptc2dpZCAidG90YWwiCm1zZ3N0ciAiaW9tbOFuIgoKIzogY2dfcHJpbnQuYzo5NQptc2dpZCAicGFyZW50cyIKbXNnc3RyICJt4Wl0aHJlYWNoYSIKCiM6IGNnX3ByaW50LmM6OTcgY2dfcHJpbnQuYzo5OAptc2dpZCAiaW5kZXgiCm1zZ3N0ciAiaW5u6WFjcyIKCiM6IGNnX3ByaW50LmM6OTcKIywgYy1mb3JtYXQKbXNnaWQgIiV0aW1lIgptc2dzdHIgIiV0aW1lIChhbSkiCgojOiBjZ19wcmludC5jOjk3IGNnX3ByaW50LmM6OTgKbXNnaWQgInNlbGYiCm1zZ3N0ciAiZulpbiIKCiM6IGNnX3ByaW50LmM6OTcKbXNnaWQgImRlc2NlbmRhbnRzIgptc2dzdHIgInNsZWFjaHRhIgoKIzogY2dfcHJpbnQuYzo5OCBoaXN0LmM6NDkyCm1zZ2lkICJuYW1lIgptc2dzdHIgImFpbm0iCgojOiBjZ19wcmludC5jOjEwMAptc2dpZCAiY2hpbGRyZW4iCm1zZ3N0ciAibWljIgoKIzogY2dfcHJpbnQuYzoxMDUKIywgYy1mb3JtYXQKbXNnaWQgImluZGV4ICUlIHRpbWUgICAgc2VsZiAgY2hpbGRyZW4gICAgY2FsbGVkICAgICBuYW1lXG4iCm1zZ3N0ciAiaW5u6WFjcyAlJSBhbSAgICBm6WluICBtaWMgICAgICAgICBnbGFvaXRlICAgIGFpbm1cbiIKCiM6IGNnX3ByaW50LmM6MTI4CiMsIGMtZm9ybWF0Cm1zZ2lkICIgPGN5Y2xlICVkIGFzIGEgd2hvbGU+IFslZF1cbiIKbXNnc3RyICIgPGNpb2dhbCAlZCBpbmEgaW9tbOFpbmU+IFslZF1cbiIKCiM6IGNnX3ByaW50LmM6MzU0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlNi42cyAlNS41cyAlNy43cyAlMTEuMTFzICU3LjdzICU3LjdzICAgICA8c3BvbnRhbmVvdXM+XG4iCm1zZ3N0ciAiJTYuNnMgJTUuNXMgJTcuN3MgJTExLjExcyAlNy43cyAlNy43cyAgICAgPHNwb2504WluZWFjaD5cbiIKCiM6IGNnX3ByaW50LmM6MzU1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlNi42cyAlNS41cyAlNy43cyAlNy43cyAlNy43cyAlNy43cyAgICAgPHNwb250YW5lb3VzPlxuIgptc2dzdHIgIiU2LjZzICU1LjVzICU3LjdzICU3LjdzICU3LjdzICU3LjdzICAgICA8c3BvbnThaW5lYWNoPlxuIgoKIzogY2dfcHJpbnQuYzo1ODkKIywgYy1mb3JtYXQKbXNnaWQgIiIKIkluZGV4IGJ5IGZ1bmN0aW9uIG5hbWVcbiIKIlxuIgptc2dzdHIgIiIKIklubulhY3NhaWdoIGRlIHLpaXIgYWlubSBuYSBmZWlkaG1lXG4iCiJcbiIKCiM6IGNnX3ByaW50LmM6NjQ2IGNnX3ByaW50LmM6NjU1CiMsIGMtZm9ybWF0Cm1zZ2lkICI8Y3ljbGUgJWQ+Igptc2dzdHIgIjxjaW9nYWwgJWQ+IgoKIzogY29yZWZpbGUuYzo1OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHVuYWJsZSB0byBwYXJzZSBtYXBwaW5nIGZpbGUgJXMuXG4iCm1zZ3N0ciAiJXM6IG7tIGbpaWRpciBjb21oYWQgbWFw4WxhICVzIGEgcGhhcnPhaWwuXG4iCgojOiBjb3JlZmlsZS5jOjcyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY291bGQgbm90IG9wZW4gJXMuXG4iCm1zZ3N0ciAiJXM6IG7tb3JiaCBmaOlpZGlyICVzIGEgb3NjYWlsdC5cbiIKCiM6IGNvcmVmaWxlLmM6MTY2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogJXM6IG5vdCBpbiBleGVjdXRhYmxlIGZvcm1hdFxuIgptc2dzdHIgIiVzOiAlczogbu1sIHPpIGkgYmhmb3Jt4WlkIGlucml0ZVxuIgoKIzogY29yZWZpbGUuYzoxNzcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBjYW4ndCBmaW5kIC50ZXh0IHNlY3Rpb24gaW4gJXNcbiIKbXNnc3RyICIlczogbu0gZulpZGlyIHJvaW5uIC50ZXh0IGEgYWltc2n6IGkgJXNcbiIKCiM6IGNvcmVmaWxlLmM6MjUyCiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogcmFuIG91dCByb29tIGZvciAlbHUgYnl0ZXMgb2YgdGV4dCBzcGFjZVxuIgptc2dzdHIgIiVzOiBu7WwgZ28gbGVvciBzcOFzIGxlIGhhZ2hhaWRoICVsdSBiZWFydCBkZSB0aOlhY3NcbiIKCiM6IGNvcmVmaWxlLmM6MjY2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogY2FuJ3QgZG8gLWNcbiIKbXNnc3RyICIlczogbu0gZulpZGlyIC1jIGEgZGjpYW5hbWhcbiIKCiM6IGNvcmVmaWxlLmM6MzA1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogLWMgbm90IHN1cHBvcnRlZCBvbiBhcmNoaXRlY3R1cmUgJXNcbiIKbXNnc3RyICIlczogLWMgZ2FuIHRhY2Htb2NodCBhciBhaWx0aXJlYWNodCAlc1xuIgoKIzogY29yZWZpbGUuYzo0NzAKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlIGAlcycgaGFzIG5vIHN5bWJvbHNcbiIKbXNnc3RyICIlczogbu1sIHNpb21iYWls7SBhciBiaXRoIGFnIGFuIGdjb21oYWQgYCVzJ1xuIgoKIzogY29yZWZpbGUuYzo3NzIKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBzb21lYm9keSBtaXNjb3VudGVkOiBsdGFiLmxlbj0lZCBpbnN0ZWFkIG9mICVsZFxuIgptc2dzdHIgIiVzOiDhaXJlYW1oIG3tY2hlYXJ0OiBsdGFiLmxlbj0lZCBpbiBpb25hZCAlbGRcbiIKCiM6IGdtb25faW8uYzo4MwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGFkZHJlc3Mgc2l6ZSBoYXMgdW5leHBlY3RlZCB2YWx1ZSBvZiAldVxuIgptc2dzdHIgIiVzOiBu7SByYWJodGhhcyBhZyBz+mlsIGxlIG3paWQgc2VvbHRhIGRlICV1XG4iCgojOiBnbW9uX2lvLmM6MzIwIGdtb25faW8uYzo0MTYKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlIHRvbyBzaG9ydCB0byBiZSBhIGdtb24gZmlsZVxuIgptc2dzdHIgIiVzOiB04SBhbiBjb21oYWQgcvNnaGVhcnIgYSBiaGVpdGggaW5hIGNob21oYWQgZ21vblxuIgoKIzogZ21vbl9pby5jOjMzMCBnbW9uX2lvLmM6NDU5CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZmlsZSBgJXMnIGhhcyBiYWQgbWFnaWMgY29va2llXG4iCm1zZ3N0ciAiJXM6IGZpYW7hbiBkcmHtb2NodGEgZ28gaG9sYyBhZyBhbiBnY29taGFkIGAlcydcbiIKCiM6IGdtb25faW8uYzozNDEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBmaWxlIGAlcycgaGFzIHVuc3VwcG9ydGVkIHZlcnNpb24gJWRcbiIKbXNnc3RyICIlczogdOEgbGVhZ2FuIGdhbiB0YWNh7W9jaHQgYWcgYW4gZ2NvbWhhZCBgJXMnOiAlZFxuIgoKIzogZ21vbl9pby5jOjM3MQojLCBjLWZvcm1hdAptc2dpZCAiJXM6ICVzOiBmb3VuZCBiYWQgdGFnICVkIChmaWxlIGNvcnJ1cHRlZD8pXG4iCm1zZ3N0ciAiJXM6ICVzOiBhaW1z7W9kaCBkcm9jaC1jaGxpYiAlZCAoY29taGFkIHRydWFpbGxpdGhlPylcbiIKCiM6IGdtb25faW8uYzo0MzgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBwcm9maWxpbmcgcmF0ZSBpbmNvbXBhdGlibGUgd2l0aCBmaXJzdCBnbW9uIGZpbGVcbiIKbXNnc3RyICIlczogbu1sIGFuIHLhdGEgcHLzaWbtbGl0aGUgY29taG9pcmn6bmFjaCBsZWlzIGFuIGNo6WFkIGNob21oYWQgZ21vblxuIgoKIzogZ21vbl9pby5jOjQ4OQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGluY29tcGF0aWJsZSB3aXRoIGZpcnN0IGdtb24gZmlsZVxuIgptc2dzdHIgIiVzOiBuZWFtaC1jaG9taG9pcmn6bmFjaCBsZWlzIGFuIGNo6WFkIGNob21oYWQgZ21vblxuIgoKIzogZ21vbl9pby5jOjUxNgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGZpbGUgJyVzJyBkb2VzIG5vdCBhcHBlYXIgdG8gYmUgaW4gZ21vbi5vdXQgZm9ybWF0XG4iCm1zZ3N0ciAiJXM6IGlzIGNvc/ppbCBuYWNoIGJoZnVpbCBjb21oYWQgJyVzJyBpIGJoZm9ybeFpZCBnbW9uLm91dFxuIgoKIzogZ21vbl9pby5jOjUyOQojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHVuZXhwZWN0ZWQgRU9GIGFmdGVyIHJlYWRpbmcgJWQvJWQgYmluc1xuIgptc2dzdHIgIiVzOiBjb21oYWRjaHLtb2NoIGdhbiBjaG9pbm5lIGkgbmRpYWlkaCAlZC8lZCBnYWJoZOFuIOEgbOlhbWhcbiIKCiM6IGdtb25faW8uYzo1NjMKIywgYy1mb3JtYXQKbXNnaWQgInRpbWUgaXMgaW4gdGlja3MsIG5vdCBzZWNvbmRzXG4iCm1zZ3N0ciAiaXMgaSBkdGljZWFubmEgYW4gdC1hbSwgbu0gaSBzb2ljaW5k7VxuIgoKIzogZ21vbl9pby5jOjU2OSBnbW9uX2lvLmM6NzQ2CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZG9uJ3Qga25vdyBob3cgdG8gZGVhbCB3aXRoIGZpbGUgZm9ybWF0ICVkXG4iCm1zZ3N0ciAiJXM6IG7tbCBhIGZoaW9zIGFnYW0gY29uYXMgZm9ybeFpZCAlZCBhIGzhaW1oc2XhaWxcbiIKCiM6IGdtb25faW8uYzo1NzYKIywgYy1mb3JtYXQKbXNnaWQgIkZpbGUgYCVzJyAodmVyc2lvbiAlZCkgY29udGFpbnM6XG4iCm1zZ3N0ciAiSXMgaSBnY29taGFkIGAlcycgKGxlYWdhbiAlZCkgbmEgbe1yZWFubmEgc2VvOlxuIgoKIzogZ21vbl9pby5jOjU3OQojLCBjLWZvcm1hdAptc2dpZCAiXHQlZCBoaXN0b2dyYW0gcmVjb3JkXG4iCm1zZ3N0ciAiXHQlZCB0YWlmZWFkIGhpc3RlYWdyYWltXG4iCgojOiBnbW9uX2lvLmM6NTgwCiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGhpc3RvZ3JhbSByZWNvcmRzXG4iCm1zZ3N0ciAiXHQlZCB0YWlmZWFkIGhpc3RlYWdyYWltXG4iCgojOiBnbW9uX2lvLmM6NTgyCiMsIGMtZm9ybWF0Cm1zZ2lkICJcdCVkIGNhbGwtZ3JhcGggcmVjb3JkXG4iCm1zZ3N0ciAiXHQlZCB0YWlmZWFkIGdsYW9naHJhaWZcbiIKCiM6IGdtb25faW8uYzo1ODMKIywgYy1mb3JtYXQKbXNnaWQgIlx0JWQgY2FsbC1ncmFwaCByZWNvcmRzXG4iCm1zZ3N0ciAiXHQlZCB0YWlmZWFkIGdsYW9naHJhaWZcbiIKCiM6IGdtb25faW8uYzo1ODUKIywgYy1mb3JtYXQKbXNnaWQgIlx0JWQgYmFzaWMtYmxvY2sgY291bnQgcmVjb3JkXG4iCm1zZ3N0ciAiXHQlZCB0YWlmZWFkIGztbiBuYSBtYnVuYmhsb2NcbiIKCiM6IGdtb25faW8uYzo1ODYKIywgYy1mb3JtYXQKbXNnaWQgIlx0JWQgYmFzaWMtYmxvY2sgY291bnQgcmVjb3Jkc1xuIgptc2dzdHIgIlx0JWQgdGFpZmVhZCBs7W4gbmEgbWJ1bmJobG9jXG4iCgojOiBncHJvZi5jOjE1OAojLCBjLWZvcm1hdAptc2dpZCAiIgoiVXNhZ2U6ICVzIFstW2FiY0RoaWxMc1R2d3h5el1dIFstW0FDZUVmRkpuTk9wUHFRWl1bbmFtZV1dIFstSSBkaXJzXVxuIgoiXHRbLWRbbnVtXV0gWy1rIGZyb20vdG9dIFstbSBtaW4tY291bnRdIFstdCB0YWJsZS1sZW5ndGhdXG4iCiJcdFstLVtuby1dYW5ub3RhdGVkLXNvdXJjZVs9bmFtZV1dIFstLVtuby1dZXhlYy1jb3VudHNbPW5hbWVdXVxuIgoiXHRbLS1bbm8tXWZsYXQtcHJvZmlsZVs9bmFtZV1dIFstLVtuby1dZ3JhcGhbPW5hbWVdXVxuIgoiXHRbLS1bbm8tXXRpbWU9bmFtZV0gWy0tYWxsLWxpbmVzXSBbLS1icmllZl0gWy0tZGVidWdbPWxldmVsXV1cbiIKIlx0Wy0tZnVuY3Rpb24tb3JkZXJpbmddIFstLWZpbGUtb3JkZXJpbmddXG4iCiJcdFstLWRpcmVjdG9yeS1wYXRoPWRpcnNdIFstLWRpc3BsYXktdW51c2VkLWZ1bmN0aW9uc11cbiIKIlx0Wy0tZmlsZS1mb3JtYXQ9bmFtZV0gWy0tZmlsZS1pbmZvXSBbLS1oZWxwXSBbLS1saW5lXSBbLS1taW4tY291bnQ9bl1cbiIKIlx0Wy0tbm8tc3RhdGljXSBbLS1wcmludC1wYXRoXSBbLS1zZXBhcmF0ZS1maWxlc11cbiIKIlx0Wy0tc3RhdGljLWNhbGwtZ3JhcGhdIFstLXN1bV0gWy0tdGFibGUtbGVuZ3RoPWxlbl0gWy0tdHJhZGl0aW9uYWxdXG4iCiJcdFstLXZlcnNpb25dIFstLXdpZHRoPW5dIFstLWlnbm9yZS1ub24tZnVuY3Rpb25zXVxuIgoiXHRbLS1kZW1hbmdsZVs9U1RZTEVdXSBbLS1uby1kZW1hbmdsZV0gW0BGSUxFXVxuIgoiXHRbaW1hZ2UtZmlsZV0gW3Byb2ZpbGUtZmlsZS4uLl1cbiIKbXNnc3RyICIiCiLac+FpZDogJXMgWy1bYWJjRGhpbExzVHZ3eHl6XV0gWy1bQUNlRWZGSm5OT3BQcVFaXVthaW5tXV0gWy1JIGNvbWhhZGxhbm5hXVxuIgoiXHRbLWRbdWltaGlyXV0gWy1rIPMvZ29dIFstbSDtb3NtaOlpZF0gWy10IGZhZHThYmxhXVxuIgoiXHRbLS1bbm8tXWFubm90YXRlZC1zb3VyY2VbPWFpbm1dXSBbLS1bbm8tXWV4ZWMtY291bnRzWz1haW5tXV1cbiIKIlx0Wy0tW25vLV1mbGF0LXByb2ZpbGVbPWFpbm1dXSBbLS1bbm8tXWdyYXBoWz1haW5tXV1cbiIKIlx0Wy0tW25vLV10aW1lPWFpbm1dIFstLWFsbC1saW5lc10gWy0tYnJpZWZdIFstLWRlYnVnWz1sZWliaOlhbF1dXG4iCiJcdFstLWZ1bmN0aW9uLW9yZGVyaW5nXSBbLS1maWxlLW9yZGVyaW5nXVxuIgoiXHRbLS1kaXJlY3RvcnktcGF0aD1jb21oYWRsYW5uYV0gWy0tZGlzcGxheS11bnVzZWQtZnVuY3Rpb25zXVxuIgoiXHRbLS1maWxlLWZvcm1hdD1haW5tXSBbLS1maWxlLWluZm9dIFstLWhlbHBdIFstLWxpbmVdIFstLW1pbi1jb3VudD1uXVxuIgoiXHRbLS1uby1zdGF0aWNdIFstLXByaW50LXBhdGhdIFstLXNlcGFyYXRlLWZpbGVzXVxuIgoiXHRbLS1zdGF0aWMtY2FsbC1ncmFwaF0gWy0tc3VtXSBbLS10YWJsZS1sZW5ndGg9ZmFkXSBbLS10cmFkaXRpb25hbF1cbiIKIlx0Wy0tdmVyc2lvbl0gWy0td2lkdGg9bl0gWy0taWdub3JlLW5vbi1mdW5jdGlvbnNdXG4iCiJcdFstLWRlbWFuZ2xlWz1TVM1MXV0gWy0tbm8tZGVtYW5nbGVdIFtAQ09NSEFEXVxuIgoiXHRbY29taGFkLe1vbWjhXSBbY29taGFkLXBy82lm7WxlLi4uXVxuIgoKIzogZ3Byb2YuYzoxNzQKIywgYy1mb3JtYXQKbXNnaWQgIlJlcG9ydCBidWdzIHRvICVzXG4iCm1zZ3N0ciAiU2VvbCB0dWFpcmlzY+0gZmFiaHRhbm5hIGNodWlnICVzXG4iCgojOiBncHJvZi5jOjI1MAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGRlYnVnZ2luZyBub3Qgc3VwcG9ydGVkOyAtZCBpZ25vcmVkXG4iCm1zZ3N0ciAiJXM6IG7tIHRoYWNh7XRlYXIgbGUgZO1maGFiaHT6OyByaW5uZWFkaCBuZWFtaHNodWltIGFyIC1kXG4iCgojOiBncHJvZi5jOjMzMAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHVua25vd24gZmlsZSBmb3JtYXQgJXNcbiIKbXNnc3RyICIlczogZm9ybeFpZCBhbmFpdGhuaWQgY2hvbWhhaWQgJXNcbiIKCiMuIFRoaXMgb3V0cHV0IGlzIGludGVuZGVkIHRvIGZvbGxvdyB0aGUgR05VIHN0YW5kYXJkcyBkb2N1bWVudC4KIzogZ3Byb2YuYzo0MTQKIywgYy1mb3JtYXQKbXNnaWQgIkdOVSBncHJvZiAlc1xuIgptc2dzdHIgImdwcm9mIEdOVSAlc1xuIgoKIzogZ3Byb2YuYzo0MTUKIywgYy1mb3JtYXQKbXNnaWQgIkJhc2VkIG9uIEJTRCBncHJvZiwgY29weXJpZ2h0IDE5ODMgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhLlxuIgptc2dzdHIgIkJ1bmFpdGhlIGFyIGdwcm9mIEJTRCwgY/NpcGNoZWFydCAxOTgzIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYS5cbiIKCiM6IGdwcm9mLmM6NDE2CiMsIGMtZm9ybWF0Cm1zZ2lkICJUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZS4gIFRoaXMgcHJvZ3JhbSBoYXMgYWJzb2x1dGVseSBubyB3YXJyYW50eS5cbiIKbXNnc3RyICJJcyBzYW9yYmhvZ2VhcnJhIOkgYW4gY2zhciBzZW8uICBO7WwgYmFy4W50YSBhciBjaG9yIGFyIGJpdGggbGVpcyBhbiBnY2zhciBzZW8uXG4iCgojOiBncHJvZi5jOjQ1NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IHVua25vd24gZGVtYW5nbGluZyBzdHlsZSBgJXMnXG4iCm1zZ3N0ciAiJXM6IHN07WwgYW5haXRobmlkIGTtY2hvc2NhcnRoYSBgJXMnXG4iCgojOiBncHJvZi5jOjQ3NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IE9ubHkgb25lIG9mIC0tZnVuY3Rpb24tb3JkZXJpbmcgYW5kIC0tZmlsZS1vcmRlcmluZyBtYXkgYmUgc3BlY2lmaWVkLlxuIgptc2dzdHIgIiVzOiBO7SBjaGVhZGHtdGVhciBhY2ggY2Vhbm4gYW1o4WluIGRlIC0tZnVuY3Rpb24tb3JkZXJpbmcgYWd1cyAtLWZpbGUtb3JkZXJpbmcgYSBiaGVpdGggc29ucmFpdGhlLlxuIgoKIzogZ3Byb2YuYzo1MjcKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBzb3JyeSwgZmlsZSBmb3JtYXQgYHByb2YnIGlzIG5vdCB5ZXQgc3VwcG9ydGVkXG4iCm1zZ3N0ciAiJXM6IHThIGJy824gb3JtLCBu7SB0aGFjYe10ZWFyIGxlIGZvcm3haWQgYHByb2YnIGbzc1xuIgoKIzogZ3Byb2YuYzo1ODEKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiBnbW9uLm91dCBmaWxlIGlzIG1pc3NpbmcgaGlzdG9ncmFtXG4iCm1zZ3N0ciAiJXM6IGhpc3RlYWdyYW0gYXIgaWFycmFpZGgg8yBjaG9taGFkIGdtb24ub3V0XG4iCgojOiBncHJvZi5jOjU4OAojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGdtb24ub3V0IGZpbGUgaXMgbWlzc2luZyBjYWxsLWdyYXBoIGRhdGFcbiIKbXNnc3RyICIlczogc29ucmHtIGdsYW9naHJhaWYgYXIgaWFycmFpZGgg8yBjaG9taGFkIGdtb24ub3V0XG4iCgojOiBoaXN0LmM6MTMzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlczogZGltZW5zaW9uIHVuaXQgY2hhbmdlZCBiZXR3ZWVuIGhpc3RvZ3JhbSByZWNvcmRzXG4iCiIlczogZnJvbSAnJXMnXG4iCiIlczogdG8gJyVzJ1xuIgptc2dzdHIgIiIKIiVzOiBhdGhyYe1vZGggYW9uYWQgdG9pc2UgaWRpciB0YWlmaWQgaGlzdGVhZ3JhaW1cbiIKIiVzOiDzICclcydcbiIKIiVzOiBnbyAnJXMnXG4iCgojOiBoaXN0LmM6MTQzCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIlczogZGltZW5zaW9uIGFiYnJldmlhdGlvbiBjaGFuZ2VkIGJldHdlZW4gaGlzdG9ncmFtIHJlY29yZHNcbiIKIiVzOiBmcm9tICclYydcbiIKIiVzOiB0byAnJWMnXG4iCm1zZ3N0ciAiIgoiJXM6IGF0aHJh7W9kaCBnaW9ycvpjaOFuIHRvaXNlIGlkaXIgdGFpZmlkIGhpc3RlYWdyYWltXG4iCiIlczog8yAnJWMnXG4iCiIlczogZ28gJyVjJ1xuIgoKIzogaGlzdC5jOjE1NwojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGRpZmZlcmVudCBzY2FsZXMgaW4gaGlzdG9ncmFtIHJlY29yZHMiCm1zZ3N0ciAiJXM6IHNj4Wxh7SBkaWZyafpsYSBpIGR0YWlmaWQgaGlzdGVhZ3JhaW0iCgojOiBoaXN0LmM6MTk0CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogb3ZlcmxhcHBpbmcgaGlzdG9ncmFtIHJlY29yZHNcbiIKbXNnc3RyICIlczogdGFpZmlkIGZob3JsdWl0ZWFjaGEgaGlzdGVhZ3JhaW1cbiIKCiM6IGhpc3QuYzoyMjgKIywgYy1mb3JtYXQKbXNnaWQgIiVzOiAlczogdW5leHBlY3RlZCBFT0YgYWZ0ZXIgcmVhZGluZyAldSBvZiAldSBzYW1wbGVzXG4iCm1zZ3N0ciAiJXM6ICVzOiBjb21oYWRjaHLtb2NoIGdhbiBjaG9pbm5lIGkgbmRpYWlkaCBs6WltaCAldSBhcyAldSBzYW1wbGFcbiIKCiM6IGhpc3QuYzo0NjIKIywgYy1mb3JtYXQKbXNnaWQgIiVjJWMvY2FsbCIKbXNnc3RyICIlYyVjL2dsYW8iCgojOiBoaXN0LmM6NDcwCiMsIGMtZm9ybWF0Cm1zZ2lkICIiCiIgZm9yICUuMmYlJSBvZiAlLjJmICVzXG4iCiJcbiIKbXNnc3RyICIiCiIgZG8gJS4yZiUlIGFzICUuMmYgJXNcbiIKIlxuIgoKIzogaGlzdC5jOjQ3NgojLCBjLWZvcm1hdAptc2dpZCAiIgoiXG4iCiJFYWNoIHNhbXBsZSBjb3VudHMgYXMgJWcgJXMuXG4iCm1zZ3N0ciAiIgoiXG4iCiJJcyBmafogJWcgJXMg6SBnYWNoIHNhbXBsYS5cbiIKCiM6IGhpc3QuYzo0ODEKIywgYy1mb3JtYXQKbXNnaWQgIiIKIiBubyB0aW1lIGFjY3VtdWxhdGVkXG4iCiJcbiIKbXNnc3RyICIiCiIgbu1vciBjYXJuYWRoIGFvbiBhbVxuIgoiXG4iCgojOiBoaXN0LmM6NDg4Cm1zZ2lkICJjdW11bGF0aXZlIgptc2dzdHIgImNhcm5hY2giCgojOiBoaXN0LmM6NDg4Cm1zZ2lkICJzZWxmICAiCm1zZ3N0ciAiZulpbiAgIgoKIzogaGlzdC5jOjQ4OAptc2dpZCAidG90YWwgIgptc2dzdHIgImlvbWzhbiAiCgojOiBoaXN0LmM6NDkxCm1zZ2lkICJ0aW1lIgptc2dzdHIgImFtIgoKIzogaGlzdC5jOjQ5MQptc2dpZCAiY2FsbHMiCm1zZ3N0ciAiZ2xhb25uYSIKCiM6IGhpc3QuYzo1ODAKIywgYy1mb3JtYXQKbXNnaWQgIiIKIlxuIgoiXG4iCiJcbiIKImZsYXQgcHJvZmlsZTpcbiIKbXNnc3RyICIiCiJcbiIKIlxuIgoiXG4iCiJwcvNpZu1sIGNob3Rocm9tOlxuIgoKIzogaGlzdC5jOjU4NgojLCBjLWZvcm1hdAptc2dpZCAiRmxhdCBwcm9maWxlOlxuIgptc2dzdHIgIlBy82lm7WwgY2hvdGhyb206XG4iCgojOiBoaXN0LmM6NzA1CiMsIGMtZm9ybWF0Cm1zZ2lkICIlczogZm91bmQgYSBzeW1ib2wgdGhhdCBjb3ZlcnMgc2V2ZXJhbCBoaXN0b2dyYW0gcmVjb3JkcyIKbXNnc3RyICIlczogYWltc+1vZGggc2lvbWJhaWwgYSBiaGFpbmVhbm4gbGUgaGlsdGFpZmlkIGhpc3RlYWdyYWltIgoKIzogbWlwcy5jOjcxCiMsIGMtZm9ybWF0Cm1zZ2lkICJbZmluZF9jYWxsXSAweCVseDogamFsIgptc2dzdHIgIltmaW5kX2NhbGxdIDB4JWx4OiBqYWwiCgojOiBtaXBzLmM6OTYKIywgYy1mb3JtYXQKbXNnaWQgIltmaW5kX2NhbGxdIDB4JWx4OiBqYWxyXG4iCm1zZ3N0ciAiW2ZpbmRfY2FsbF0gMHglbHg6IGphbHJcbiIKCiM6IHNvdXJjZS5jOjE2MgojLCBjLWZvcm1hdAptc2dpZCAiJXM6IGNvdWxkIG5vdCBsb2NhdGUgYCVzJ1xuIgptc2dzdHIgIiVzOiBu7W9yYmggZmjpaWRpciBgJXMnIGEgYWltc2n6XG4iCgojOiBzb3VyY2UuYzoyMzcKIywgYy1mb3JtYXQKbXNnaWQgIioqKiBGaWxlICVzOlxuIgptc2dzdHIgIioqKiBDb21oYWQgJXM6XG4iCgojOiB1dGlscy5jOjk5CiMsIGMtZm9ybWF0Cm1zZ2lkICIgPGN5Y2xlICVkPiIKbXNnc3RyICIgPGNpb2dhbCAlZD4iCgojfiBtc2dpZCAiJXM6IGAlcycgaXMgaW5jb21wYXRpYmxlIHdpdGggZmlyc3QgZ21vbiBmaWxlXG4iCiN+IG1zZ3N0ciAiJXM6IG7tbCBgJXMnIGNvbWhvaXJp+m5hY2ggbGVpcyBhbiBjaOlhZCBjaG9taGFkIGdtb25cbiIK