eval %q{IyAgICAgICAgTmFtZSA6IGRhc2hlZF9yb2FkbGluZXMKIyBEZXNjcmlwdGlv biA6IENyZWF0ZXMgZGFzaGVkIGxpbmVzIHN0YXJ0aW5nIGZyb20gYSBzZWxl Y3Rpb24gb2YgY29ubmVjdGVkIGxpbmVzCiMgICAgICBBdXRob3IgOiBEaWRp ZXIgQnVyCiMgICAgICAgVXNhZ2UgOiBzZWxlY3QgbGluZXMgYW5kIHNlbGVj dCBvcHRpb24gZnJvbSB0aGUgUGx1Z2lucyBtZW51LCAKIyAgICAgICAgRGF0 ZSA6IDA4LkRlYy4yb282CiMgICAgICAgIFR5cGUgOiB0b29sCgoKcmVxdWly ZSAnc2tldGNodXAucmInCgpkZWYgcGFyc2VfbGluZXNldCBsaW5lc2V0CiRs aW5lc19hcnJheSA9IFtdCiMgRmluZCBmaXJzdCBmcmVlIHZlcnRleCwgcmVt b3ZlIGxpbmUgZnJvbSBzc3MgYW5kIHN0b3JlIGl0cyBJRCBpbiBvcmRlcmVk IGFycmF5CmxpbmVzZXQuZWFjaCBkbyB8bGluZXwKICBpZiBsaW5lLnN0YXJ0 LmVkZ2VzLmxlbmd0aCA9PSAxCiAgbGluZXNldC5yZW1vdmUgbGluZQogICRs aW5lc19hcnJheS5wdXNoIGxpbmUKICBmcmVlX3R5cGUgPSAic3RhcnQiCiAg YnJlYWsKICBlbmQKICBpZiBsaW5lLmVuZC5lZGdlcy5sZW5ndGggPT0gMQog IGxpbmVzZXQucmVtb3ZlIGxpbmUKICAkbGluZXNfYXJyYXkucHVzaCBsaW5l CiAgZnJlZV90eXBlID0gImVuZCIKICBicmVhawogIGVuZAplbmQKbGluZXNl dGxlbmd0aCA9IGxpbmVzZXQubGVuZ3RoCgppID0gMAp3aGlsZSBpIDwgbGlu ZXNldGxlbmd0aAogIGxpbmVzZXQuZWFjaCBkbyB8bGluZXwKICAgIGlmIGxp bmUuc3RhcnQgPT0gJGxpbmVzX2FycmF5Lmxhc3Quc3RhcnQgb3IgbGluZS5z dGFydCA9PSAkbGluZXNfYXJyYXkubGFzdC5lbmQgb3IgbGluZS5lbmQgPT0g JGxpbmVzX2FycmF5Lmxhc3Quc3RhcnQgb3IgbGluZS5lbmQgPT0gJGxpbmVz X2FycmF5Lmxhc3QuZW5kCiAgICAgIGxpbmVzZXQucmVtb3ZlIGxpbmUKICAg ICAgJGxpbmVzX2FycmF5LnB1c2ggbGluZQogICAgICBpID0gaSArIDEKICAg IGVuZCAjaWYKICBlbmQgI2VhY2gKZW5kICN3aGlsZQoKcmV0dXJuICRsaW5l c19hcnJheS5yZXZlcnNlIQplbmQKCmRlZiBtYXBfcG9pbnRzKGVkZ2UsIHN0 YXJ0X29mZnNldCwgdHlwZSkKcHRzX2FycmF5ID0gW10Kc3RhcnRfcHQgPSBl ZGdlLnN0YXJ0CmVkZ2VfdmVjID0gc3RhcnRfcHQucG9zaXRpb24udmVjdG9y X3RvIGVkZ2UuZW5kLnBvc2l0aW9uCgpzdGFydF9wdCA9IHN0YXJ0X3B0LnBv c2l0aW9uLm9mZnNldChlZGdlX3ZlYywgc3RhcnRfb2Zmc2V0KQpwdHNfYXJy YXkucHVzaCBbdHlwZSwgc3RhcnRfcHRdCiRkcl9wdHNfYXJyYXkucHVzaCBb dHlwZSwgc3RhcnRfcHRdCgpvZmZzZXRfZGlzdCA9IHN0YXJ0X29mZnNldAoK d2hpbGUgb2Zmc2V0X2Rpc3QgPCBlZGdlLmxlbmd0aAogIGNhc2UgdHlwZQog ICAgd2hlbiAxCiAgICAgIG9mZnNldF9kaXN0ID0gb2Zmc2V0X2Rpc3QgKyAk cl9saW5lc19sZW5ndGgKICAgICAgaWYgb2Zmc2V0X2Rpc3QgPCBlZGdlLmxl bmd0aAogICAgICAgIHR5cGUgPSAyCiAgICAgICAgcHRzX2FycmF5LnB1c2gg W3R5cGUsIGVkZ2Uuc3RhcnQucG9zaXRpb24ub2Zmc2V0KGVkZ2VfdmVjLCBv ZmZzZXRfZGlzdCldCiAgICAgICAgJGRyX3B0c19hcnJheS5wdXNoIFt0eXBl LCBlZGdlLnN0YXJ0LnBvc2l0aW9uLm9mZnNldChlZGdlX3ZlYywgb2Zmc2V0 X2Rpc3QpXQogICAgICAgIGVsc2UKICAgICAgICAjIHJldHVybiB0eXBlIG9m IG5leHQgcG9pbnQgb24gbmV4dCBlZGdlIGFuZCBuZXh0IG9mZnNldCBkaXN0 YW5jZSBhbmQgcHVzaCBlZGdlIGVuZAogICAgICAgIHB0c19hcnJheS5wdXNo IFszLCBlZGdlLmVuZC5wb3NpdGlvbl0KICAgICAgICAkZHJfcHRzX2FycmF5 LnB1c2ggWzMsIGVkZ2UuZW5kLnBvc2l0aW9uXQogICAgICAgICRuZXh0X3R5 cGUgPSAyCiAgICAgICAgJG5leHRfb2Zmc2V0ID0gb2Zmc2V0X2Rpc3QgLSBl ZGdlLmxlbmd0aAogICAgICBlbmQKICAgIHdoZW4gMgogICAgICBvZmZzZXRf ZGlzdCA9IG9mZnNldF9kaXN0ICsgJHJfbGluZXNfaW50ZXJ2YWwKICAgICAg aWYgb2Zmc2V0X2Rpc3QgPCBlZGdlLmxlbmd0aAogICAgICAgIHR5cGUgPSAx CiAgICAgICAgcHRzX2FycmF5LnB1c2ggW3R5cGUsIGVkZ2Uuc3RhcnQucG9z aXRpb24ub2Zmc2V0KGVkZ2VfdmVjLCBvZmZzZXRfZGlzdCldCiAgICAgICAg JGRyX3B0c19hcnJheS5wdXNoIFt0eXBlLCBlZGdlLnN0YXJ0LnBvc2l0aW9u Lm9mZnNldChlZGdlX3ZlYywgb2Zmc2V0X2Rpc3QpXQogICAgICAgIGVsc2UK ICAgICAgICAjIHJldHVybiB0eXBlIG9mIG5leHQgcG9pbnQgb24gbmV4dCBl ZGdlIGFuZCBuZXh0IG9mZnNldCBkaXN0YW5jZQogICAgICAgIHB0c19hcnJh eS5wdXNoIFszLCBlZGdlLmVuZC5wb3NpdGlvbl0KICAgICAgICAkZHJfcHRz X2FycmF5LnB1c2ggWzMsIGVkZ2UuZW5kLnBvc2l0aW9uXQogICAgICAgICRu ZXh0X3R5cGUgPSAxCiAgICAgICAgJG5leHRfb2Zmc2V0ID0gb2Zmc2V0X2Rp c3QgLSBlZGdlLmxlbmd0aAogICAgICBlbmQKICBlbmQKZW5kCnJldHVybiBb JG5leHRfdHlwZSwgJG5leHRfb2Zmc2V0XQplbmQKCmRlZiBkcl9tYXBfeigg cCkKcmV0dXJuIEdlb206OlBvaW50M2QubmV3KHAueCwgcC55LCAocC56ICsg JHJfbGluZXNfYWx0KSkKZW5kCgpkZWYgZHJfZ2V0X3JlY3RhbmdsZSggcHQx LCBwdDIpCmhhbGZfcGkgPSAxLjU3MDc5NjMyNjc5NDg5NjUKdmVjID0gcHQx LnZlY3Rvcl90byBwdDIKdmVjX2xlZnQgPSB2ZWMudHJhbnNmb3JtKEdlb206 OlRyYW5zZm9ybWF0aW9uLnJvdGF0aW9uKHB0MSwgWzAsMCwxXSwgKDAgLSBo YWxmX3BpKSkpCnB0MV9sZWZ0ID0gZHJfbWFwX3ooIHB0MS5vZmZzZXQodmVj X2xlZnQsICRyX2xpbmVzX3dpZHRoIC8gMi4wKSkKcHQyX2xlZnQgPSBwdDFf bGVmdC5vZmZzZXQodmVjKQp2ZWNfcmlnaHQgPSB2ZWMudHJhbnNmb3JtKEdl b206OlRyYW5zZm9ybWF0aW9uLnJvdGF0aW9uKHB0MSwgWzAsMCwxXSwgaGFs Zl9waSkpCnB0MV9yaWdodCA9IGRyX21hcF96KCBwdDEub2Zmc2V0KHZlY19y aWdodCwgJHJfbGluZXNfd2lkdGggLyAyLjApKQpwdDJfcmlnaHQgPSBwdDFf cmlnaHQub2Zmc2V0KHZlYykKZmFjZSA9IFNrZXRjaHVwLmFjdGl2ZV9tb2Rl bC5hY3RpdmVfZW50aXRpZXMuYWRkX2ZhY2UocHQxX2xlZnQsIHB0Ml9sZWZ0 LCBwdDJfcmlnaHQsIHB0MV9yaWdodCkKaWYgJHJfbGluZXNfaGVpZ2h0ICE9 IDAuMAogIGZhY2UucHVzaHB1bGwgJHJfbGluZXNfaGVpZ2h0CiAgI2Vsc2UK ICAjZmFjZS5yZXZlcnNlIQplbmQKZW5kCgpkZWYgZHJfZ2V0X2N1cnZlZF9y ZWN0YW5nbGUoIHB0MSwgcHQyLCBwdDMpCmhhbGZfcGkgPSAxLjU3MDc5NjMy Njc5NDg5NjUKdmVjMSA9IHB0MS52ZWN0b3JfdG8gcHQyCnZlYzIgPSBwdDIu dmVjdG9yX3RvIHB0Mwp2ZWMxX2xlZnQgPSB2ZWMxLnRyYW5zZm9ybShHZW9t OjpUcmFuc2Zvcm1hdGlvbi5yb3RhdGlvbihwdDEsIFswLDAsMV0sICgwIC0g aGFsZl9waSkpKQpwdDFfbGVmdCA9IGRyX21hcF96KCBwdDEub2Zmc2V0KHZl YzFfbGVmdCwgJHJfbGluZXNfd2lkdGggLyAyLjApKQp2ZWMxX3JpZ2h0ID0g dmVjMS50cmFuc2Zvcm0oR2VvbTo6VHJhbnNmb3JtYXRpb24ucm90YXRpb24o cHQxLCBbMCwwLDFdLCBoYWxmX3BpKSkKcHQxX3JpZ2h0ID0gZHJfbWFwX3oo IHB0MS5vZmZzZXQodmVjMV9yaWdodCwgJHJfbGluZXNfd2lkdGggLyAyLjAp KQoKdmVjMl9sZWZ0ID0gdmVjMi50cmFuc2Zvcm0oR2VvbTo6VHJhbnNmb3Jt YXRpb24ucm90YXRpb24ocHQzLCBbMCwwLDFdLCAoMCAtIGhhbGZfcGkpKSkK cHQzX2xlZnQgPSBkcl9tYXBfeiggcHQzLm9mZnNldCh2ZWMyX2xlZnQsICRy X2xpbmVzX3dpZHRoIC8gMi4wKSkKdmVjMl9yaWdodCA9IHZlYzIudHJhbnNm b3JtKEdlb206OlRyYW5zZm9ybWF0aW9uLnJvdGF0aW9uKHB0MywgWzAsMCwx XSwgaGFsZl9waSkpCnB0M19yaWdodCA9IGRyX21hcF96KCBwdDMub2Zmc2V0 KHZlYzJfcmlnaHQsICRyX2xpbmVzX3dpZHRoIC8gMi4wKSkKCmJpc3NfYW5n bGUgPSAodmVjMS5hbmdsZV9iZXR3ZWVuIHZlYzIpLzIuMAoKdmlydF9saW5l X2xlZnRfMSA9IFtwdDFfbGVmdCwgdmVjMV0KdmlydF9saW5lX2xlZnRfMiA9 IFtwdDNfbGVmdCwgdmVjMi5yZXZlcnNlXQp2aXJ0X2xpbmVfcmlnaHRfMSA9 IFtwdDFfcmlnaHQsIHZlYzFdCnZpcnRfbGluZV9yaWdodF8yID0gW3B0M19y aWdodCwgdmVjMi5yZXZlcnNlXQoKaW50ZXJzXzEgPSBHZW9tLmludGVyc2Vj dF9saW5lX2xpbmUgdmlydF9saW5lX2xlZnRfMSwgdmlydF9saW5lX2xlZnRf MiAKaW50ZXJzXzIgPSBHZW9tLmludGVyc2VjdF9saW5lX2xpbmUgdmlydF9s aW5lX3JpZ2h0XzEsIHZpcnRfbGluZV9yaWdodF8yCgpmYWNlID0gU2tldGNo dXAuYWN0aXZlX21vZGVsLmFjdGl2ZV9lbnRpdGllcy5hZGRfZmFjZShwdDFf bGVmdCwgaW50ZXJzXzEsIHB0M19sZWZ0LCBwdDNfcmlnaHQsIGludGVyc18y LCBwdDFfcmlnaHQpCiNmYWNlLnJldmVyc2UhCmlmICRyX2xpbmVzX2hlaWdo dCAhPSAwLjAKICBmYWNlLnB1c2hwdWxsICgwLjAgLSAkcl9saW5lc19oZWln aHQpCiAgI2Vsc2UKICAjZmFjZS5yZXZlcnNlIQplbmQKZW5kCgpkZWYgZHJh d19kcl9wdHNfYXJyYXkKaSA9IDAKbnB0cyA9ICRkcl9wdHNfYXJyYXkubGVu Z3RoCgp3aGlsZSBpIDwgKG5wdHMgLSAzKQogIHB0MSA9ICRkcl9wdHNfYXJy YXlbaV0KICBwdDIgPSAkZHJfcHRzX2FycmF5W2krMV0KICBwdDMgPSAkZHJf cHRzX2FycmF5W2krMl0KICB0MSA9IHB0MVswXQogIHAxID0gcHQxWzFdCiAg dDIgPSBwdDJbMF0KICBwMiA9IHB0MlsxXQogIHQzID0gcHQzWzBdCiAgcDMg PSBwdDNbMV0KICAKICBzZWdfdHlwZSA9IHQxLnRvX3MgKyAiLSIgKyB0Mi50 b19zICsgIi0iICsgdDMudG9fcwogIAogIGNhc2Ugc2VnX3R5cGUKICAgIHdo ZW4gIjEtMi0xIgogICAgICBkcl9nZXRfcmVjdGFuZ2xlKCBwMSwgcDIpCiAg ICAgIGkgPSBpICsgMgogICAgd2hlbiAiMS0yLTMiCiAgICBkcl9nZXRfcmVj dGFuZ2xlKCBwMSwgcDIpCiAgICBpID0gaSArIDIKICAgIHdoZW4gIjEtMy0y IgogICAgZHJfZ2V0X2N1cnZlZF9yZWN0YW5nbGUoIHAxLCBwMiwgcDMpCiAg ICBpID0gaSArIDMKICAgd2hlbiAiMy0xLTIiCiAgICBkcl9nZXRfcmVjdGFu Z2xlKCBwMiwgcDMpCiAgICBpID0gaSArIDIKICAgd2hlbiAiMi0xLTIiCiAg ICBkcl9nZXRfcmVjdGFuZ2xlKCBwMiwgcDMpCiAgICBpID0gaSArIDIKICAg I2lmIG5vdCBzdWNoIGEgc2VnLCBnbyBmb3J3YXJkCiAgICBlbHNlCiAgICBp ID0gaSArIDEKICBlbmQKZW5kCmVuZAoKZGVmIGxpbmVfdG9fZGFzaGVzCm1v ZGVsID0gU2tldGNodXAuYWN0aXZlX21vZGVsCm1vZGVsLnN0YXJ0X29wZXJh dGlvbiAiRGFzaGVkIHJvYWRsaW5lcyIKZW50aXRpZXMgPSBtb2RlbC5hY3Rp dmVfZW50aXRpZXMKc3MgPSBtb2RlbC5zZWxlY3Rpb24Kb2JqID0gc3NbMF0K CiNFbXB0eSBzZWxlY3Rpb24KaWYgc3MuZW1wdHk/IAogIFVJLm1lc3NhZ2Vi b3goIk5vIHNlbGVjdGlvbi4gUGxlYXNlIHNlbGVjdCBhIGxpbmUgb3IgYSBj dXJ2ZS4iKQogIHJldHVybiBuaWwKZW5kCgojQ2hlY2sgZm9yIG5vbi1lZGdl IG9iamVjdHMKY2hlY2sgPSB0cnVlCnNzLmVhY2ggZG8gfGVsdHwKICBpZiBl bHQudHlwZW5hbWUgIT0gIkVkZ2UiCiAgICBjaGVjayA9IGZhbHNlCiAgZW5k CmVuZAppZiBjaGVjayA9PSBmYWxzZQogIFVJLm1lc3NhZ2Vib3goIlNlbGVj dGVkIG9iamVjdCBpcyBub3QgbGluZShzKSBvciBhIGN1cnZlLlxuIFBsZWFz ZSBzZWxlY3QgbGluZShzKSBvciBhIGN1cnZlLiIpCiAgcmV0dXJuIG5pbApl bmQKCiMgTm90IGEgbGluZSBvciBjdXJ2ZQppZiBvYmoudHlwZW5hbWUgIT0g IkVkZ2UiCiAgVUkubWVzc2FnZWJveCgiU2VsZWN0ZWQgb2JqZWN0IGlzIG5v dCBsaW5lKHMpIG9yIGEgY3VydmUuXG4gUGxlYXNlIHNlbGVjdCBsaW5lKHMp IG9yIGEgY3VydmUuIikKICByZXR1cm4gbmlsCmVuZAojVHlwZSBjaGVjawpp ZiBzcy5sZW5ndGggPT0gMSBhbmQgbm90IG9iai5jdXJ2ZQogIHR5cGUgPSAi bGluZSIKZW5kCmlmIHNzLmxlbmd0aCA+PSAxIGFuZCBvYmouY3VydmUKICB0 eXBlID0gImN1cnZlIgplbmQKaWYgc3MubGVuZ3RoID4gMSBhbmQgbm90IG9i ai5jdXJ2ZQogIHR5cGUgPSAibGluZXNldCIKZW5kCgojIHNldHMgdGhlIGRl ZmF1bHQgd2FsbCBzZXR0aW5ncwokcm9hZF9saW5lc19sZW5ndGggPSAiMjAw IiBpZiBub3QgJHJvYWRfbGluZXNfbGVuZ3RoCiRyb2FkX2xpbmVzX2xlbmd0 aF9vdGhlciA9ICIiIGlmIG5vdCAkcm9hZF9saW5lc19sZW5ndGhfb3RoZXIK JHJvYWRfbGluZXNfaW50ZXJ2YWwgPSAiMjAwIiBpZiBub3QgJHJvYWRfbGlu ZXNfaW50ZXJ2YWwKJHJvYWRfbGluZXNfaW50ZXJ2YWxfb3RoZXIgPSAiIiBp ZiBub3QgJHJvYWRfbGluZXNfaW50ZXJ2YWxfb3RoZXIKJHJvYWRfbGluZXNf d2lkdGggPSAiMTUiIGlmIG5vdCAkcm9hZF9saW5lc193aWR0aAokcm9hZF9s aW5lc193aWR0aF9vdGhlciA9ICIiIGlmIG5vdCAkcm9hZF9saW5lc193aWR0 aF9vdGhlcgokcm9hZF9saW5lc19hbHQgPSAiMSIgaWYgbm90ICRyb2FkX2xp bmVzX2FsdAokcm9hZF9saW5lc19oZWlnaHQgPSAiIiBpZiBub3QgJHJvYWRf bGluZXNfaGVpZ2h0CgojIERpYWxvZyBib3gKZGFzaGVzX2xlbmd0aGVzX2xp c3QgPSAld1syMDAgMzAwIDUwMF0uam9pbigifCIpCmRhc2hlc19pbnRlcnZh bHNfbGlzdCA9ICV3WzIwMCAzMDAgNTAwXS5qb2luKCJ8IikKZGFzaGVzX3dp ZHRoc19saXN0ID0gJXdbMTUgMjBdLmpvaW4oInwiKQphcnJheV9vZl9kcm9w ZG93bnMgPSBbZGFzaGVzX2xlbmd0aGVzX2xpc3QsIGRhc2hlc19pbnRlcnZh bHNfbGlzdCwgZGFzaGVzX3dpZHRoc19saXN0XQoKcHJvbXB0cyA9IFsiRGFz aCBsZW5ndGg6ICIsICJEYXNoIGludGVydmFsOiAiLCAiRGFzaCB3aWR0aDog ICIsICJVc2VyIERhc2ggbGVuZ3RoOiAiLCAiVXNlciBEYXNoIGludGVydmFs OiAiLCAiVXNlciBEYXNoIHdpZHRoOiAgIiwgIlogZWxldmF0aW9uOiAiLCAi WiBoZWlnaHQ6ICAiXQp2YWx1ZXMgPSBbJHJvYWRfbGluZXNfbGVuZ3RoLCAk cm9hZF9saW5lc19pbnRlcnZhbCwgJHJvYWRfbGluZXNfd2lkdGgsICRyb2Fk X2xpbmVzX2xlbmd0aF9vdGhlciwgJHJvYWRfbGluZXNfaW50ZXJ2YWxfb3Ro ZXIsICRyb2FkX2xpbmVzX3dpZHRoX290aGVyLCAkcm9hZF9saW5lc19hbHQs ICRyb2FkX2xpbmVzX2hlaWdodF0KCnJlc3VsdHMgPSBpbnB1dGJveCBwcm9t cHRzLCB2YWx1ZXMsYXJyYXlfb2ZfZHJvcGRvd25zLCAiUm9hZGxpbmVzIHNl dHRpbmdzIChjbSkiCgpyZXR1cm4gaWYgbm90IHJlc3VsdHMKJHJvYWRfbGlu ZXNfbGVuZ3RoID0gcmVzdWx0c1swXQokcm9hZF9saW5lc19pbnRlcnZhbCA9 IHJlc3VsdHNbMV0KJHJvYWRfbGluZXNfd2lkdGggPSByZXN1bHRzWzJdCiRy b2FkX2xpbmVzX2xlbmd0aF9vdGhlciA9IHJlc3VsdHNbM10KJHJvYWRfbGlu ZXNfaW50ZXJ2YWxfb3RoZXIgPSByZXN1bHRzWzRdCiRyb2FkX2xpbmVzX3dp ZHRoX290aGVyID0gcmVzdWx0c1s1XQokcm9hZF9saW5lc19hbHQgPSByZXN1 bHRzWzZdCiRyb2FkX2xpbmVzX2hlaWdodCA9IHJlc3VsdHNbN10KCmlmICRy b2FkX2xpbmVzX2xlbmd0aF9vdGhlciAhPSAiIgogICRyb2FkX2xpbmVzX2xl bmd0aCA9ICRyb2FkX2xpbmVzX2xlbmd0aF9vdGhlcgogIGVsc2UKICAkcm9h ZF9saW5lc19sZW5ndGggPSAkcm9hZF9saW5lc19sZW5ndGgKZW5kCmlmICRy b2FkX2xpbmVzX2ludGVydmFsX290aGVyICE9ICIiCiAgJHJvYWRfbGluZXNf aW50ZXJ2YWwgPSAkcm9hZF9saW5lc19pbnRlcnZhbF9vdGhlcgogIGVsc2UK ICAkcm9hZF9saW5lc19pbnRlcnZhbCA9ICRyb2FkX2xpbmVzX2ludGVydmFs CmVuZAppZiAkcm9hZF9saW5lc193aWR0aF9vdGhlciAhPSAiIgogICRyb2Fk X2xpbmVzX2ludGVydmFsID0gJHJvYWRfbGluZXNfd2lkdGhfb3RoZXIKICBl bHNlCiAgJHJvYWRfbGluZXNfd2lkdGggPSAkcm9hZF9saW5lc193aWR0aApl bmQKJHJvYWRfbGluZXNfYWx0ID0gJHJvYWRfbGluZXNfYWx0CgojSW50ZXJ2 YWwgZ2xvYmFsIGFmZmVjdGF0aW9uCiRyX2xpbmVzX2xlbmd0aCA9ICRyb2Fk X2xpbmVzX2xlbmd0aC50b19mLmNtCiRyX2xpbmVzX2ludGVydmFsID0gJHJv YWRfbGluZXNfaW50ZXJ2YWwudG9fZi5jbQokcl9saW5lc193aWR0aCA9ICRy b2FkX2xpbmVzX3dpZHRoLnRvX2YuY20KJHJfbGluZXNfYWx0ID0gJHJvYWRf bGluZXNfYWx0LnRvX2YuY20KaWYgJHJvYWRfbGluZXNfaGVpZ2h0ICE9ICIi CiAgJHJfbGluZXNfaGVpZ2h0ID0gJHJvYWRfbGluZXNfaGVpZ2h0LnRvX2Yu Y20KICBlbHNlCiAgJHJfbGluZXNfaGVpZ2h0ID0gMC4wCmVuZAoKJGRyX3B0 c19hcnJheSA9IFtdCgpjYXNlIHR5cGUKICB3aGVuICJsaW5lIgogICAgcHQx ID0gb2JqLmxpbmVbMF0KICAgIGRhc2hfdmVjID0gb2JqLmxpbmVbMV0KICAg IGludGVydmFsX3ZlYyA9IG9iai5saW5lWzFdCiAgICBkYXNoX3ZlYy5sZW5n dGggPSAkcl9saW5lc19sZW5ndGgKICAgIGludGVydmFsX3ZlYy5sZW5ndGgg PSAkcl9saW5lc19pbnRlcnZhbAogICAgY3VycmVudF9kaXN0ID0gMC4wCiAg ICB3aGlsZSBjdXJyZW50X2Rpc3QgKyAkcl9saW5lc19sZW5ndGggKyAwLjAw MDAxIDwgb2JqLmxlbmd0aAogICAgICBwdDIgPSBwdDEub2Zmc2V0IGRhc2hf dmVjCiAgICAgIGN1cnJlbnRfZGlzdCA9IGN1cnJlbnRfZGlzdCArICRyX2xp bmVzX2xlbmd0aCArICRyX2xpbmVzX2ludGVydmFsCiAgICAgIGRyX2dldF9y ZWN0YW5nbGUocHQxLCBwdDIpCiAgICAgIHB0MSA9IHB0Mi5vZmZzZXQgaW50 ZXJ2YWxfdmVjCiAgICBlbmQKICAgICMgbGFzdCBkYXNoCiAgICBpZiBjdXJy ZW50X2Rpc3QgLSAkcl9saW5lc19pbnRlcnZhbCA8IG9iai5sZW5ndGgKICAg ICAgZHJfZ2V0X3JlY3RhbmdsZShwdDEsIG9iai5lbmQucG9zaXRpb24pCiAg ICBlbmQKICB3aGVuICJsaW5lc2V0IgogICAgaSA9IDAKICAgIGVkZ2VzID0g cGFyc2VfbGluZXNldCBzcwogICAgb2Zmc2V0X2Rpc3QgPSAwLjAKICAgIHRv dGFsX2Rpc3QgPSAwLjAKICAgICRuZXh0X29mZnNldCA9IDAuMAogICAgJG5l eHRfdHlwZSA9IDEKICAgIAogICAgZWRnZXMuZWFjaCBkbyB8ZWRnZXwKICAg ICAgbWFwX3BvaW50cyhlZGdlLCAkbmV4dF9vZmZzZXQsICRuZXh0X3R5cGUp CiAgICAgIGkgPSBpICsgMQogICAgZW5kCiAgd2hlbiAiY3VydmUiCiAgICBp ID0gMAogICAgY3VydmUgPSBvYmouY3VydmUKICAgIGVkZ2VzID0gY3VydmUu ZWRnZXMKICAgIG9mZnNldF9kaXN0ID0gMC4wCiAgICB0b3RhbF9kaXN0ID0g MC4wCiAgICAkbmV4dF9vZmZzZXQgPSAwLjAKICAgICRuZXh0X3R5cGUgPSAx CiAgICAKICAgIGVkZ2VzLmVhY2ggZG8gfGVkZ2V8CiAgICAgIG1hcF9wb2lu dHMoZWRnZSwgJG5leHRfb2Zmc2V0LCAkbmV4dF90eXBlKQogICAgICBpID0g aSArIDEKICAgIGVuZAplbmQgI2Nhc2UgdHlwZQoKI0RyYXcgZGFzaGVzCmlm ICRkcl9wdHNfYXJyYXkgIT0gW10KICBkcmF3X2RyX3B0c19hcnJheQplbmQK Cm1vZGVsLmNvbW1pdF9vcGVyYXRpb24KZW5kCgoKaWYoIG5vdCBmaWxlX2xv YWRlZD8oImFhYS5yYiIpICkKICBhZGRfc2VwYXJhdG9yX3RvX21lbnUoIlBs dWdpbnMiKQogIFVJLm1lbnUoIlBsdWdpbnMiKS5hZGRfaXRlbSgiRGFzaGVk IHJvYWRsaW5lcyIpIHsgbGluZV90b19kYXNoZXMgfQplbmQKCiMtLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpmaWxlX2xvYWRlZCgiYWFhLnJi IikK}.unpack("m").to_s