# Name: smd_multi_choice v0.1 # Type: Client side plugin # Switch / case construct for multiple conditional branches # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMDp7czo0OiJuYW1lIjtzOjE2OiJzbWRfbXVsdGlfY2hvaWNlIjtzOjY6ImF1dGhvciI7 czoxMToiU3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVm ZGF3c29uLmNvbS8iO3M6NzoidmVyc2lvbiI7czozOiIwLjEiO3M6MTE6ImRlc2NyaXB0aW9u IjtzOjU3OiJTd2l0Y2ggLyBjYXNlIGNvbnN0cnVjdCBmb3IgbXVsdGlwbGUgY29uZGl0aW9u YWwgYnJhbmNoZXMiO3M6NDoiY29kZSI7czo2NDk0OiJmdW5jdGlvbiBzbWRfc3dpdGNoKCRh dHRzLCAkdGhpbmcpIHsNCglnbG9iYWwgJHNtZF9zd2l0Y2hfaXRlbSwgJHNtZF9zd2l0Y2hf ZGVidWc7DQoNCglleHRyYWN0KGxBdHRzKGFycmF5KA0KCQknaXRlbScgPT4gJycsDQoJCSds b29rX2luJyA9PiAnU01EX0FMTCcsDQoJCSdsZWF2ZV9lbXB0eScgPT4gJzEnLA0KCQknZGVi dWcnID0+ICcwJywNCgkpLCAkYXR0cykpOw0KDQoJJHNtZF9zd2l0Y2hfaXRlbSA9IHNtZF9t Y19wYXJzZSgkaXRlbSwgJGxvb2tfaW4sICRsZWF2ZV9lbXB0eSk7DQoJJHNtZF9zd2l0Y2hf ZGVidWcgPSAkZGVidWc7DQoJcmV0dXJuIChwYXJzZSgkdGhpbmcpKTsNCn0NCg0KZnVuY3Rp b24gc21kX2Nhc2UoJGF0dHMsICR0aGluZz1OVUxMKSB7DQoJZ2xvYmFsICRzbWRfc3dpdGNo X2l0ZW0sICRzbWRfc3dpdGNoX2RlYnVnLCAkc21kX2Nhc2VfdHJ1ZSwgJHNtZF9tdWx0aV9j YXNlLCAkc21kX21jX3ZhbDsNCg0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSd2YWx1ZScg PT4gJycsDQoJCSdsb29rX2luJyA9PiAnU01EX0FMTCcsDQoJCSdsZWF2ZV9lbXB0eScgPT4g JzEnLA0KCQkndHlwZScgPT4gJ2VxJywNCgkJJ2Nhc2Vfc2Vuc2l0aXZlJyA9PiAwLA0KCQkn bnVtZXJpYycgPT4gMCwNCgkJJ2ZhbGx0aHJ1JyA9PiAwLA0KCQknZGVmYXVsdCcgPT4gMCwN CgkJJ2RlYnVnJyA9PiAwLA0KCSksICRhdHRzKSk7DQoNCgkkcmVzdWx0ID0gZmFsc2U7DQoN CgkvLyBWYWxpZGF0aW9uDQoJJGNhc2VzID0gYXJyYXkoJ2lzbG93ZXInLCAnaXN1cHBlcicp Ow0KCSRjYXNlX3NlbnNpdGl2ZSA9IChpbl9hcnJheSgkdHlwZSwgJGNhc2VzKSkgPyAxIDog JGNhc2Vfc2Vuc2l0aXZlOw0KCSR2YWx1ZSA9IHNtZF9tY19wYXJzZSgkdmFsdWUsICRsb29r X2luLCAkbGVhdmVfZW1wdHkpOw0KCSR2YWx1ZSA9ICgkY2FzZV9zZW5zaXRpdmUpID8gJHZh bHVlIDogc3RydG9sb3dlcigkdmFsdWUpOw0KCSR0ZXN0ZXIgPSAoJGNhc2Vfc2Vuc2l0aXZl KSA/ICRzbWRfc3dpdGNoX2l0ZW0gOiBzdHJ0b2xvd2VyKCRzbWRfc3dpdGNoX2l0ZW0pOw0K CSRmYWxsdGhydSA9ICghJHRoaW5nKSA/IDEgOiAkZmFsbHRocnU7DQoNCgkkcmVwbGFjZW1l bnRzID0gYXJyYXkoKTsNCgkkcmVwbGFjZW1lbnRzWyd7c21kX3N3aXRjaH0nXSA9ICRyZXBs YWNlbWVudHNbJ3tzbWRfbWNfaXRlbX0nXSA9ICR0ZXN0ZXI7DQoNCglpZiAoJHRlc3RlciAh PSAnJykgew0KCQlpZiAoJGRlYnVnIHx8ICRzbWRfc3dpdGNoX2RlYnVnKSB7DQoJCQllY2hv ICIrKyBURVNUICR0ZXN0ZXIgIiAuICgoJGRlZmF1bHQpID8gJ0RFRkFVTFQnIDogJHR5cGUu JyAnLiR2YWx1ZSk7DQoJCX0NCgkJaWYgKCRkZWZhdWx0ID09IDEgJiYgISRzbWRfY2FzZV90 cnVlKSB7DQoJCQkkcmVzdWx0ID0gdHJ1ZTsNCgkJfSBlbHNlIHsNCgkJCXN3aXRjaCAoJHR5 cGUpIHsNCgkJCQljYXNlICdndCc6DQoJCQkJCSRyZXN1bHQgPSAoJG51bWVyaWMpID8gKChj dHlwZV9kaWdpdCgoc3RyaW5nKSR0ZXN0ZXIpICYmIGN0eXBlX2RpZ2l0KChzdHJpbmcpJHZh bHVlKSAmJiAoaW50KSR0ZXN0ZXIgPiAoaW50KSR2YWx1ZSkgPyB0cnVlIDogZmFsc2UpIDog KCgkdGVzdGVyID4gJHZhbHVlKSA/IHRydWUgOiBmYWxzZSk7DQoJCQkJCWJyZWFrOw0KCQkJ CWNhc2UgJ2dlJzoNCgkJCQkJJHJlc3VsdCA9ICgkbnVtZXJpYykgPyAoKGN0eXBlX2RpZ2l0 KChzdHJpbmcpJHRlc3RlcikgJiYgY3R5cGVfZGlnaXQoKHN0cmluZykkdmFsdWUpICYmIChp bnQpJHRlc3RlciA+PSAoaW50KSR2YWx1ZSkgPyB0cnVlIDogZmFsc2UpIDogKCgkdGVzdGVy ID49ICR2YWx1ZSkgPyB0cnVlIDogZmFsc2UpOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICds dCc6DQoJCQkJCSRyZXN1bHQgPSAoJG51bWVyaWMpID8gKChjdHlwZV9kaWdpdCgoc3RyaW5n KSR0ZXN0ZXIpICYmIGN0eXBlX2RpZ2l0KChzdHJpbmcpJHZhbHVlKSAmJiAoaW50KSR0ZXN0 ZXIgPCAoaW50KSR2YWx1ZSkgPyB0cnVlIDogZmFsc2UpIDogKCgkdGVzdGVyIDwgJHZhbHVl KSA/IHRydWUgOiBmYWxzZSk7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2xlJzoNCgkJCQkJ JHJlc3VsdCA9ICgkbnVtZXJpYykgPyAoKGN0eXBlX2RpZ2l0KChzdHJpbmcpJHRlc3Rlcikg JiYgY3R5cGVfZGlnaXQoKHN0cmluZykkdmFsdWUpICYmIChpbnQpJHRlc3RlciA8PSAoaW50 KSR2YWx1ZSkgPyB0cnVlIDogZmFsc2UpIDogKCgkdGVzdGVyIDw9ICR2YWx1ZSkgPyB0cnVl IDogZmFsc2UpOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdkaXZpc2libGUnOg0KCQkJCQkk cmVzdWx0ID0gKGN0eXBlX2RpZ2l0KChzdHJpbmcpJHRlc3RlcikgJiYgY3R5cGVfZGlnaXQo KHN0cmluZykkdmFsdWUpICYmIChpbnQpJHRlc3RlciA+IDAgJiYgKGludCkkdGVzdGVyICUg KGludCkkdmFsdWUgPT09IDApID8gdHJ1ZSA6IGZhbHNlOw0KCQkJCQlicmVhazsNCgkJCQlj YXNlICdiZWdpbnMnOg0KCQkJCQkkcmVzdWx0ID0gKHN0cnBvcygkdGVzdGVyLCAkdmFsdWUp ID09PSAwKSA/IHRydWUgOiBmYWxzZTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnY29udGFp bnMnOg0KCQkJCQkkcmVzdWx0ID0gKHN0cnBvcygkdGVzdGVyLCAkdmFsdWUpICE9PSBmYWxz ZSkgPyB0cnVlIDogZmFsc2U7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2VuZHMnOg0KCQkJ CQkkcmVzdWx0ID0gKHN1YnN0cigkdGVzdGVyLCBzdHJsZW4oJHRlc3RlcikgLSBzdHJsZW4o JHZhbHVlKSkgPT09ICR2YWx1ZSkgPyB0cnVlIDogZmFsc2U7DQoJCQkJCWJyZWFrOw0KCQkJ CWNhc2UgJ2lzbnVtJzoNCgkJCQkJJHJlc3VsdCA9IChjdHlwZV9kaWdpdCgoc3RyaW5nKSR0 ZXN0ZXIpKSA/IHRydWUgOiBmYWxzZTsNCgkJCQkJYnJlYWs7DQoJCQkJY2FzZSAnaXNhbHBo YSc6DQoJCQkJCSRyZXN1bHQgPSAoY3R5cGVfYWxwaGEoKHN0cmluZykkdGVzdGVyKSkgPyB0 cnVlIDogZmFsc2U7DQoJCQkJCWJyZWFrOw0KCQkJCWNhc2UgJ2lzYWxudW0nOg0KCQkJCQkk cmVzdWx0ID0gKGN0eXBlX2FsbnVtKChzdHJpbmcpJHRlc3RlcikpID8gdHJ1ZSA6IGZhbHNl Ow0KCQkJCQlicmVhazsNCgkJCQljYXNlICdpc2xvd2VyJzoNCgkJCQkJJHJlc3VsdCA9IChj dHlwZV9sb3dlcigoc3RyaW5nKSR0ZXN0ZXIpKSA/IHRydWUgOiBmYWxzZTsNCgkJCQkJYnJl YWs7DQoJCQkJY2FzZSAnaXN1cHBlcic6DQoJCQkJCSRyZXN1bHQgPSAoY3R5cGVfdXBwZXIo KHN0cmluZykkdGVzdGVyKSkgPyB0cnVlIDogZmFsc2U7DQoJCQkJCWJyZWFrOw0KCQkJCWNh c2UgJ2lzcHVuY3QnOg0KCQkJCQkkcmVzdWx0ID0gKGN0eXBlX3B1bmN0KChzdHJpbmcpJHRl c3RlcikpID8gdHJ1ZSA6IGZhbHNlOw0KCQkJCQlicmVhazsNCgkJCQljYXNlICdpc3NwYWNl JzoNCgkJCQkJJHJlc3VsdCA9IChjdHlwZV9zcGFjZSgoc3RyaW5nKSR0ZXN0ZXIpKSA/IHRy dWUgOiBmYWxzZTsNCgkJCQkJYnJlYWs7DQoJCQkJZGVmYXVsdDoNCgkJCQkJLy8gRXF1YWxp dHkNCgkJCQkJJHJlc3VsdCA9ICgkbnVtZXJpYykgPyAoKCR0ZXN0ZXIgPT09ICR2YWx1ZSkg PyB0cnVlIDogZmFsc2UpIDogKCgkdGVzdGVyID09ICR2YWx1ZSkgPyB0cnVlIDogZmFsc2Up Ow0KCQkJCQlicmVhazsNCgkJCX0NCgkJfQ0KCQkkc21kX2Nhc2VfdHJ1ZSA9ICgkcmVzdWx0 KSA/IHRydWUgOiAkc21kX2Nhc2VfdHJ1ZTsNCgkJaWYgKCRkZWJ1ZyB8fCAkc21kX3N3aXRj aF9kZWJ1Zykgew0KCQkJZWNobyAnIFJFU1VMVDogJyAuICgoJHJlc3VsdCkgPyAnVFJVRScg OiAnRkFMU0UnICkgLiAnPGJyIC8+JzsNCgkJfQ0KDQoJCWlmICgkcmVzdWx0ICYmICEkZmFs bHRocnUpIHsNCgkJCSRzbWRfc3dpdGNoX2l0ZW0gPSAnJzsNCgkJfQ0KCQlpZiAoJHRoaW5n KSB7DQoJCQkkcmV0ID0gJHJlc3VsdCB8fCAkc21kX211bHRpX2Nhc2U7DQoJCQkkcmVwbGFj ZW1lbnRzWyd7c21kX2Nhc2V9J10gPSAkcmVwbGFjZW1lbnRzWyd7c21kX21jX3ZhbHVlfSdd ID0gKCRyZXN1bHQpID8gJHZhbHVlIDogJHNtZF9tY192YWw7DQoJCQkkc21kX211bHRpX2Nh c2UgPSBmYWxzZTsNCgkJCXJldHVybiBwYXJzZShFdmFsRWxzZShzdHJ0cigkdGhpbmcsICRy ZXBsYWNlbWVudHMpLCAkcmV0KSk7DQoJCX0gZWxzZSB7DQoJCQkkc21kX211bHRpX2Nhc2Ug PSAoJHJlc3VsdCkgPyB0cnVlIDogJHNtZF9tdWx0aV9jYXNlOw0KCQkJJHNtZF9tY192YWwg PSAoJHJlc3VsdCkgPyAkdmFsdWUgOiAkc21kX21jX3ZhbDsNCgkJfQ0KCX0gZWxzZSB7DQoJ CXJldHVybiBmYWxzZTsNCgl9DQp9DQoNCi8vIExvb2sgaW4gdGhlIGdpdmVuICRpbiBwbGFj ZXMgZm9yIGEgdmFsdWUgZnJvbSBhICc/JyB2YXJpYWJsZSAkaXRlbQ0KZnVuY3Rpb24gc21k X21jX3BhcnNlKCRpdGVtLCAkaW4sICRtdD0nMScpIHsNCglnbG9iYWwgJHByZXRleHQsICR0 aGlzYXJ0aWNsZSwgJHRoaXNpbWFnZSwgJHRoaXNmaWxlLCAkdGhpc2xpbmssICR2YXJpYWJs ZTsNCg0KCSRpbiA9ICgkaW4gPT0gIlNNRF9BTEwiKSA/ICJ0eHB2YXIsIHN2cnZhciwgaW1h Z2UsIGZpbGUsIGxpbmssIGdibCwgYXJ0aWNsZSwgdXJsdmFyLCBwaHB2YXIiIDogJGluOw0K CSRsb29raW4gPSBkb19saXN0KCRpbik7DQoNCgkkbW9kUkUgPSAnLyhcPykoW0EtWmEtejAt OV9cLSBdKykvJzsNCgkkbnVtTW9kcyA9IHByZWdfbWF0Y2hfYWxsKCRtb2RSRSwgJGl0ZW0s ICRtb2RzKTsNCg0KCWZvciAoJG1vZEN0ciA9IDA7ICRtb2RDdHIgPCAkbnVtTW9kczsgJG1v ZEN0cisrKSB7DQoJCSRtb2RDaGFyID0gJG1vZHNbMV1bJG1vZEN0cl07DQoJCSRtb2RJdGVt ID0gdHJpbSgkbW9kc1syXVskbW9kQ3RyXSk7DQoJCSRsb3dpdGVtID0gc3RydG9sb3dlcigk bW9kSXRlbSk7DQoNCgkJaWYgKGluX2FycmF5KCJ0eHB2YXIiLCAkbG9va2luKSAmJiBpc3Nl dCgkdmFyaWFibGVbJGxvd2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9k Q2hhci4kbW9kSXRlbSwgJHZhcmlhYmxlWyRsb3dpdGVtXSwgJGl0ZW0pOw0KCQl9IGVsc2Ug aWYgKGluX2FycmF5KCJzdnJ2YXIiLCAkbG9va2luKSAmJiBzZXJ2ZXJTZXQoJG1vZEl0ZW0p ICE9ICcnKSB7DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVtLCBk b1NsYXNoKHNlcnZlclNldCgkbW9kSXRlbSkpLCAkaXRlbSk7DQoJCX0gZWxzZSBpZiAoaW5f YXJyYXkoImltYWdlIiwgJGxvb2tpbikgJiYgaXNzZXQoJHRoaXNpbWFnZVskbG93aXRlbV0p ICYmICFlbXB0eSgkdGhpc2ltYWdlWyRsb3dpdGVtXSkpIHsNCgkJCSRpdGVtID0gc3RyX3Jl cGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sICR0aGlzaW1hZ2VbJGxvd2l0ZW1dLCAkaXRlbSk7 DQoJCX0gZWxzZSBpZiAoaW5fYXJyYXkoImZpbGUiLCAkbG9va2luKSAmJiBpc3NldCgkdGhp c2ZpbGVbJGxvd2l0ZW1dKSAmJiAhZW1wdHkoJHRoaXNmaWxlWyRsb3dpdGVtXSkpIHsNCgkJ CSRpdGVtID0gc3RyX3JlcGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sICR0aGlzZmlsZVskbG93 aXRlbV0sICRpdGVtKTsNCgkJfSBlbHNlIGlmIChpbl9hcnJheSgibGluayIsICRsb29raW4p ICYmIGlzc2V0KCR0aGlzbGlua1skbG93aXRlbV0pICYmICFlbXB0eSgkdGhpc2xpbmtbJGxv d2l0ZW1dKSkgew0KCQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwg JHRoaXNsaW5rWyRsb3dpdGVtXSwgJGl0ZW0pOw0KCQl9IGVsc2UgaWYgKGluX2FycmF5KCJn YmwiLCAkbG9va2luKSAmJiBhcnJheV9rZXlfZXhpc3RzKCRsb3dpdGVtLCAkcHJldGV4dCkg JiYgIWVtcHR5KCRwcmV0ZXh0WyRsb3dpdGVtXSkpIHsNCgkJCSRpdGVtID0gc3RyX3JlcGxh Y2UoJG1vZENoYXIuJG1vZEl0ZW0sICRwcmV0ZXh0WyRsb3dpdGVtXSwgJGl0ZW0pOw0KCQl9 IGVsc2UgaWYgKGluX2FycmF5KCJhcnRpY2xlIiwgJGxvb2tpbikgJiYgaXNzZXQoJHRoaXNh cnRpY2xlWyRsb3dpdGVtXSkgJiYgIWVtcHR5KCR0aGlzYXJ0aWNsZVskbG93aXRlbV0pKSB7 DQoJCQkkaXRlbSA9IHN0cl9yZXBsYWNlKCRtb2RDaGFyLiRtb2RJdGVtLCAkdGhpc2FydGlj bGVbJGxvd2l0ZW1dLCAkaXRlbSk7DQoJCX0gZWxzZSBpZiAoaW5fYXJyYXkoInVybHZhciIs ICRsb29raW4pICYmIGdwcygkbG93aXRlbSkgIT0gJycpIHsNCgkJCSRpdGVtID0gc3RyX3Jl cGxhY2UoJG1vZENoYXIuJG1vZEl0ZW0sIGRvU2xhc2goZ3BzKCRsb3dpdGVtKSksICRpdGVt KTsNCgkJfSBlbHNlIGlmIChpbl9hcnJheSgicGhwdmFyIiwgJGxvb2tpbikgJiYgaXNzZXQo JEdMT0JBTFNbJGxvd2l0ZW1dKSAmJiAhZW1wdHkoJEdMT0JBTFNbJGxvd2l0ZW1dKSkgew0K CQkJJGl0ZW0gPSBzdHJfcmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwgJEdMT0JBTFNbJGxv d2l0ZW1dLCAkaXRlbSk7DQoJCX0gZWxzZSBpZiAoISRtdCkgew0KCQkJJGl0ZW0gPSBzdHJf cmVwbGFjZSgkbW9kQ2hhci4kbW9kSXRlbSwgJG1vZEl0ZW0sICRpdGVtKTsNCgkJfSBlbHNl IHsNCgkJCSRpdGVtID0gJyc7DQoJCX0NCgl9DQoJcmV0dXJuICRpdGVtOw0KfSI7czo0OiJ0 eXBlIjtzOjE6IjAiO3M6NToib3JkZXIiO3M6MToiNSI7czo0OiJoZWxwIjtzOjE3NDgxOiIJ PHA+PGRpdiBpZD0ic21kX2hlbHAiPjwvcD4KCgk8aDE+c21kX211bHRpX2Nob2ljZTwvaDE+ CgoJPHA+QSBnZW5lcmljICYjODIxNjtpZiBjb25kaXRpb24mIzgyMTc7IHRlc3RlciB0aGF0 IGNhbiB0YWtlIGFjdGlvbiBpZiBzb21lIGFydGljbGUsIGZpbGUsIGxpbmssIDxzcGFuIGNs YXNzPSJjYXBzIj5VUkw8L3NwYW4+LCA8Y29kZT4mbHQ7dHhwOnZhcmlhYmxlIC8mZ3Q7PC9j b2RlPiBvciBnbG9iYWwgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwvc3Bhbj4gdmFyaWFibGUg bWF0Y2hlcyBvbmUgb3IgbW9yZSB0ZXN0cy4gVGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGlz IGFuZCBzbWRfaWYgaXMgdGhhdCB5b3UgZG8gbm90IG5lZWQgdG8gbmVzdCBzdWNjZXNzaXZl IHRlc3RzIGJlY2F1c2UgaXQgcGVyZm9ybXMgY29tcGFyaXNvbnMgdXNpbmcgYSA8Y29kZT5z d2l0Y2guLi4gY2FzZTwvY29kZT4gY29uc3RydWN0LjwvcD4KCgk8aDI+RmVhdHVyZXM8L2gy PgoKCTx1bD4KCQk8bGk+U3VwcG9ydHMgYWxsIG1ham9yIGFydGljbGUsIGZpbGUsIGFuZCBs aW5rIHZhcmlhYmxlcyBzdWNoIGFzIHNlY3Rpb24sIGNhdGVnb3J5LCBjdXN0b20gZmllbGRz LCBpZCwgcXVlcnkgc3RyaW5nLCBhdXRob3IsIGJvZHksIGV4Y2VycHQsIHlhaGRlIHlhaGRl LCBwbHVzIGNoZWNraW5nIHVybCB2YXJzLCBzZXJ2ZXIgdmFycywgdHhwIGFuZCA8c3BhbiBj bGFzcz0iY2FwcyI+UEhQPC9zcGFuPiB2YXJzPC9saT4KCQk8bGk+VGVzdHMgaW5jbHVkZSBl cXVhbGl0eSwgbGVzcyB0aGFuLCBncmVhdGVyIHRoYW4sIGRpdmlzaWJsZSBieSwgYmVnaW5z LCBlbmRzLCBjb250YWlucywgYW5kICYjODIxNjtjaGFyYWN0ZXImIzgyMTc7IHRlc3RzIHN1 Y2ggaXMgaXNhbHBoYSwgaXNudW0sIGV0YzwvbGk+CgkJPGxpPlRlc3RzIGNhbiBlaXRoZXIg dGVybWluYXRlIHdoZW4gYSBtYXRjaCBpcyBmb3VuZCwgb3IgJiM4MjIwO2ZhbGwgdGhyb3Vn aCYjODIyMTsgdG8gdGhlIG5leHQgdGVzdCAoJiM4MjIwOzxzcGFuIGNsYXNzPSJjYXBzIj5B TkQ8L3NwYW4+JiM4MjIxOyBsb2dpYyk8L2xpPgoJCTxsaT5NdWx0aXBsZSB0ZXN0cyBjYW4g aGF2ZSB0aGUgc2FtZSBvdXRjb21lICgmIzgyMjA7T1ImIzgyMjE7IGxvZ2ljKTwvbGk+CgkJ PGxpPlRoZSB0ZXN0ZWQgZmllbGQgJmFtcDsgbWF0Y2hlZCB2YWx1ZSBhcmUgPGEgaHJlZj0i I3JlcGxhY2VtZW50cyI+YXZhaWxhYmxlIHRvIHRoZSBjYXNlIGNvbnRhaW5lcjwvYT4gc28g eW91IGNhbiBkaXNwbGF5IHRoZW08L2xpPgoJCTxsaT5EZWZhdWx0IGNvbmRpdGlvbiBpbiB0 aGUgZXZlbnQgbm8gdGVzdCBjYXNlcyBtYXRjaDwvbGk+Cgk8L3VsPgoKCTxoMj5BdXRob3I8 L2gyPgoKCTxwPjxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9jb21tZW50Rm9ybSI+ U3RlZiBEYXdzb248L2E+LjwvcD4KCgk8aDI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRp b248L2gyPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJvbSBlaXRoZXIgPGEgaHJlZj0i aHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzEwNzcvc21kX211bHRpX2Nob2ljZSI+ dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4sIHBhc3RlIHRoZSBjb2RlIGludG8gdGhlIDxz cGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IEFkbWluIC0mZ3Q7IFBsdWdpbnMgcGFuZSwg aW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uIFZpc2l0IHRoZSA8YSBocmVmPSJodHRw Oi8vZm9ydW0udGV4dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/aWQ9MzAzNzYiPmZvcnVt IHRocmVhZDwvYT4gZm9yIG1vcmUgaW5mbyBvciB0byByZXBvcnQgb24gdGhlIHN1Y2Nlc3Mg b3Igb3RoZXJ3aXNlIG9mIHRoZSBwbHVnaW4uPC9wPgoKCTxwPlRvIHVuaW5zdGFsbCwgc2lt cGx5IGRlbGV0ZSBmcm9tIHRoZSBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhZ2UuPC9wPgoKCTxo Mj5Vc2FnZTwvaDI+CgoJPHA+VGhlIHBsdWdpbiBnaXZlcyB0d28gdGFncyB3aGljaCBtdXN0 IGJlIHVzZWQgaW4gdGFuZGVtLiBVc2UgPGNvZGU+Jmx0O3R4cDpzbWRfc3dpdGNoIC8mZ3Q7 PC9jb2RlPiB0byB0ZWxsIHRoZSBwbHVnaW4gd2hpY2ggPGNvZGU+aXRlbTwvY29kZT4geW91 IGFyZSBpbnRlcmVzdGVkIGluIGNvbXBhcmluZyBhZ2FpbnN0IGFuZCB0aGVuIHVzZSBvbmUg b3IgbW9yZSA8Y29kZT4mbHQ7dHhwOnNtZF9jYXNlIC8mZ3Q7PC9jb2RlPiB0YWdzIGluc2lk ZSB0aGUgc3dpdGNoIHRvIHRha2UgYWN0aW9uIGRlcGVuZGluZyBvbiB0aGUgdmFsdWUuPC9w PgoKCTxwPlVzZSB0aGUgdGFncyBpbiBhbnkgcGFnZSwgZm9ybSBvciBhcnRpY2xlIGNvbnRl eHQuIENhbiBhbHNvIGJlIHVzZWQgaW5zaWRlIGZpbGUsIGltYWdlIChpbiB0aGUgZnV0dXJl KSBvciBsaW5rIGxpc3RzIHRvIHRha2UgYWN0aW9uIGRlcGVuZGluZyBvbiBhdHRyaWJ1dGVz IG9mIHRoZSBjdXJyZW50IGl0ZW0uPC9wPgoKCTxoMyBjbGFzcz0idGFnIj5zbWRfc3dpdGNo PC9oMz4KCgk8cCBjbGFzcz0idGFnLXN1bW1hcnkiPkF0IHRoZSBwbGFjZSB5b3Ugd2lzaCB0 byBjb21wYXJlIGEgZmllbGQgd2l0aCBhIHNldCBvZiB2YWx1ZXMsIHB1dCB0aGlzIGNvbnRh aW5lciB0YWcuPC9wPgoKCTxoNCBjbGFzcz0iYXR0cyAiIGlkPSJhdHRyaWJ1dGVzIj5BdHRy aWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSBtYW5kIj5p dGVtPC9zcGFuPiA6IHRoZSB0aGluZyB5b3UgYXJlIGludGVyZXN0ZWQgaW4uIEl0IGNvdWxk IGJlIHRoZSByZXN1bHQgb2YgYW5vdGhlciB0YWctaW4tdGFnLCBhIGZpeGVkIHN0cmluZygh KSwgb3IgYSB2YXJpYWJsZSBpZiB5b3UgcHJlZml4IHRoZSBpdGVtIHdpdGggPGNvZGU+Pzwv Y29kZT4uIEV4YW1wbGUgdmFyaWFibGVzIGFyZSA8Y29kZT4/YXJ0aWNsZV9pbWFnZTwvY29k ZT4sIDxjb2RlPj91cmxfdGl0bGU8L2NvZGU+LCA8Y29kZT4/bXlfdHhwX3ZhcjwvY29kZT4s IDxjb2RlPj9teV91cmxfdmFyPC9jb2RlPiwgYW5kIHNvIG9uPC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0dC1uYW1lIj5sb29rX2luPC9zcGFuPiA6IGxpc3Qgb2YgcGxhY2VzIHRvIGxv b2sgZm9yIHRoZSA8Y29kZT5pdGVtPC9jb2RlPi4gRGVmYXVsdDogPGNvZGU+U01EX0FMTDwv Y29kZT4gd2hpY2ggY2hlY2tzIGFsbCBpdGVtcyBpbiB0aGUgZm9sbG93aW5nIGxpc3QsIGlu IG9yZGVyLiBZb3Ugc2hvdWxkIG5ldmVyIG5lZWQgdG8gY2hhbmdlIHRoaXMsIGJ1dCB5b3Ug bWF5IGNob29zZSBmcm9tIGFueSBvZiB0aGUgZm9sbG93aW5nIGFuZCBjb21tYS1zZXBhcmF0 ZSBlYWNoIG9uZSB5b3Ugd2lzaCB0byBjb25zaWRlcjoKCTx1bD4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0dC12YWwiPnR4cHZhcjwvc3Bhbj4gOiBhIDxjb2RlPiZsdDt0eHA6dmFyaWFibGUg LyZndDs8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPnN2cnZhcjwv c3Bhbj4gOiBzb21ldGhpbmcgaW4gPGNvZGU+JF9TRVJWRVI8L2NvZGU+PC9saT4KCQk8bGk+ PHNwYW4gY2xhc3M9ImF0dC12YWwiPmZpbGU8L3NwYW4+IDogdmFyaWFibGUgZnJvbSB0aGUg Y3VycmVudCBmaWxlIGluIGEgZmlsZV9kb3dubG9hZF9saXN0PC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0dC12YWwiPmxpbms8L3NwYW4+IDogdmFyaWFibGUgZnJvbSB0aGUgY3VycmVu dCBsaW5rIGluIGEgbGlua2xpc3Q8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LXZhbCI+ Z2JsPC9zcGFuPiA6IHZhcmlhYmxlIGZyb20gdGhlIGdsb2JhbCBhcnRpY2xlIGNvbnRleHQg KGEuay5hLiA8Y29kZT4kcHJldGV4dDwvY29kZT4pPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0dC12YWwiPmFydGljbGU8L3NwYW4+IDogdmFyaWFibGUgZnJvbSB0aGUgY3VycmVudCBh cnRpY2xlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPnVybHZhcjwvc3Bhbj4g OiBzb21ldGhpbmcgaW4gPGNvZGU+JF9HRVQ8L2NvZGU+IG9yIDxjb2RlPiRfUE9TVDwvY29k ZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LXZhbCI+cGhwdmFyPC9zcGFuPiA6IHNv bWV0aGluZyBpbiB0aGUgZ2xvYmFsIHNjb3BlPC9saT4KCTwvdWw+PC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0dC1uYW1lIj5sZWF2ZV9lbXB0eTwvc3Bhbj4gOiBpbiBtb3N0IGNhc2Vz IGlmIGEgdmFyaWFibGUgaXMgbm90IHNldCB5b3Ugd2lsbCB3YW50IGl0IHRvIHJlbWFpbiB0 aGF0IHdheSBzbyB5b3VyIHN3aXRjaCB3aWxsIGRvIG5vdGhpbmcuIEJ1dCB5b3UgbWF5IGRl Y2lkZSB0aGF0IHlvdSB3YW50IHRoZSB2YXJpYWJsZSBuYW1lIGl0c2VsZiB0byBiZWNvbWUg dGhlIDxjb2RlPml0ZW08L2NvZGU+LCBpLmUuIGlmIHlvdSB1c2VkIDxjb2RlPml0ZW09JnF1 b3Q7P3F1YW50aXR5JnF1b3Q7PC9jb2RlPiBhbmQgdGhlcmUgd2FzIG5vICYjODIxNjtxdWFu dGl0eSYjODIxNzsgdmFyaWFibGUgYW55d2hlcmUsIGl0IHdvdWxkIGNvbXBhcmUgYWdhaW5z dCB0aGUgYWN0dWFsIHdvcmQgJiM4MjE2O3F1YW50aXR5JiM4MjE3Oy4gVGhpcyBtYXkgYmUg dXNlZnVsIHdoZW4gc3BlY2lmeWluZyBkZWZhdWx0czwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdHQtbmFtZSI+ZGVidWc8L3NwYW4+IDogc2V0IHRvIDEgdG8gdHVybiBvbiBkaWFnbm9z dGljIGluZm8gZm9yIGFsbCBjb250YWluZWQgc21kX2Nhc2UgdGFnczwvbGk+Cgk8L3VsPgoK CTxoMyBjbGFzcz0idGFnIj5zbWRfY2FzZTwvaDM+CgoJPHAgY2xhc3M9InRhZy1zdW1tYXJ5 Ij5JbnNpZGUgeW91ciA8Y29kZT4mbHQ7dHhwOnNtZF9zd2l0Y2gmZ3Q7PC9jb2RlPiBjb250 YWluZXIgcHV0IG9uZSBvciBtb3JlIDxjb2RlPiZsdDt0eHA6c21kX2Nhc2UgLyZndDs8L2Nv ZGU+IHRhZ3MgdG8gdGVzdCB0aGUgPGNvZGU+aXRlbTwvY29kZT4gYWdhaW5zdCBlYWNoIHN1 Y2Nlc3NpdmUgdmFsdWUuIENhc2UgdGFncyBhcmUgdXN1YWxseSBjb250YWluZXJzIHRoYXQg d2lsbCBleGVjdXRlIHRoZSBlbmNsb3NlZCBjb250ZW50IGlmIHRoZSA8Y29kZT52YWx1ZTwv Y29kZT4gbWF0Y2hlcyB0aGUgPGNvZGU+aXRlbTwvY29kZT4sIGJ1dCBzZWUgPGEgaHJlZj0i I2VnNCI+ZXhhbXBsZSA0PC9hPiBmb3IgdXNlIGFzIGEgc2VsZi1jbG9zaW5nIHRhZy48L3A+ CgoJPGg0IGNsYXNzPSJhdHRzICIgaWQ9ImF0dHJpYnV0ZXMiPkF0dHJpYnV0ZXM8L2g0PgoK CTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj52YWx1ZTwvc3Bhbj4gOiB0aGUg dmFsdWUgeW91IHdhbnQgdG8gY2hlY2sgYWdhaW5zdC4gSXQgY2FuIGVpdGhlciBiZSBhIGZp eGVkIHZhbHVlIG9yIGFub3RoZXIgZmllbGQgaW4gdGhlIGN1cnJlbnQgY29udGV4dCAoc2Vl IHRoZSA8Y29kZT4mbHQ7dHhwOnNtZF9zd2l0Y2ggLyZndDs8L2NvZGU+IHRhZyYjODIxNztz IDxjb2RlPml0ZW08L2NvZGU+IGF0dHJpYnV0ZSBmb3IgaW5mbykuIERlZmF1bHQ6IHVuc2V0 PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50eXBlPC9zcGFuPiA6IHRoZSB0 eXBlIG9mIHRlc3QgeW91IHdhbnQgdG8gcGVyZm9ybToKCTx1bD4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0dC12YWwiPmVxPC9zcGFuPiA6IEVxdWFsaXR5ICh0aGUgZGVmYXVsdCk8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LXZhbCI+Z3Q8L3NwYW4+IDogPGNvZGU+aXRlbTwvY29k ZT4gaXMgZ3JlYXRlciB0aGFuIDxjb2RlPnZhbHVlPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdHQtdmFsIj5nZTwvc3Bhbj4gOiA8Y29kZT5pdGVtPC9jb2RlPiBpcyBncmVh dGVyIHRoYW4gb3IgZXF1YWwgdG8gPGNvZGU+dmFsdWU8L2NvZGU+PC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0dC12YWwiPmx0PC9zcGFuPiA6IDxjb2RlPml0ZW08L2NvZGU+IGlzIGxl c3MgdGhhbiA8Y29kZT52YWx1ZTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0 LXZhbCI+bGU8L3NwYW4+IDogPGNvZGU+aXRlbTwvY29kZT4gaXMgbGVzcyB0aGFuIG9yIGVx dWFsIHRvIDxjb2RlPnZhbHVlPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQt dmFsIj5kaXZpc2libGU8L3NwYW4+IDogPGNvZGU+aXRlbTwvY29kZT4gaXMgd2hvbGx5IGRp dmlzaWJsZSBieSA8Y29kZT52YWx1ZTwvY29kZT48c3VwIGNsYXNzPSJmb290bm90ZSI+PGEg aHJlZj0iI2ZuMTU3Mzc2MDg1NzQ5ZGY4MmNmNDNmMTYiPjE8L2E+PC9zdXA+PC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPmJlZ2luczwvc3Bhbj4gOiA8Y29kZT5pdGVtPC9j b2RlPiBzdGFydHMgd2l0aCA8Y29kZT52YWx1ZTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXR0LXZhbCI+Y29udGFpbnM8L3NwYW4+IDogPGNvZGU+aXRlbTwvY29kZT4gaGFz IDxjb2RlPnZhbHVlPC9jb2RlPiBzb21ld2hlcmUgd2l0aGluIGl0cyBjb250ZW50czwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtdmFsIj5lbmRzPC9zcGFuPiA6IDxjb2RlPml0ZW08 L2NvZGU+IGVuZHMgd2l0aCA8Y29kZT52YWx1ZTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXR0LXZhbCI+aXNudW08L3NwYW4+IDogPGNvZGU+dmFsdWU8L2NvZGU+IGlzIG1h ZGUgdXAgZW50aXJlbHkgb2YgZGlnaXRzPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC12 YWwiPmlzYWxwaGE8L3NwYW4+IDogPGNvZGU+dmFsdWU8L2NvZGU+IGlzIG1hZGUgdXAgZW50 aXJlbHkgb2YgYWxwaGFiZXRpYyBjaGFyYWN0ZXJzPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0dC12YWwiPmlzYWxudW08L3NwYW4+IDogPGNvZGU+dmFsdWU8L2NvZGU+IGlzIG1hZGUg dXAgZW50aXJlbHkgb2YgYWxwaGFudW1lcmljIGNoYXJhY3RlcnM8L2xpPgoJCTxsaT48c3Bh biBjbGFzcz0iYXR0LXZhbCI+aXNsb3dlcjwvc3Bhbj4gOiA8Y29kZT52YWx1ZTwvY29kZT4g aXMgbWFkZSB1cCBlbnRpcmVseSBvZiBsb3dlciBjYXNlIGNoYXJhY3RlcnM8c3VwIGNsYXNz PSJmb290bm90ZSI+PGEgaHJlZj0iI2ZuMTczNzcxMTI1MTQ5ZGY4MmNmNDQ2ZTYiPjI8L2E+ PC9zdXA+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC12YWwiPmlzdXBwZXI8L3NwYW4+ IDogPGNvZGU+dmFsdWU8L2NvZGU+IGlzIG1hZGUgdXAgZW50aXJlbHkgb2YgdXBwZXIgY2Fz ZSBjaGFyYWN0ZXJzPHN1cCBjbGFzcz0iZm9vdG5vdGUiPjxhIGhyZWY9IiNmbjE3Mzc3MTEy NTE0OWRmODJjZjQ0NmU2Ij4yPC9hPjwvc3VwPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHQtdmFsIj5pc3B1bmN0PC9zcGFuPiA6IDxjb2RlPnZhbHVlPC9jb2RlPiBpcyBtYWRlIHVw IGVudGlyZWx5IG9mIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnM8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXR0LXZhbCI+aXNzcGFjZTwvc3Bhbj4gOiA8Y29kZT52YWx1ZTwvY29kZT4gaXMg bWFkZSB1cCBlbnRpcmVseSBvZiAmIzgyMTY7d2hpdGVzcGFjZSYjODIxNzsgY2hhcmFjdGVy czwvbGk+Cgk8L3VsPjwvbGk+Cgk8L3VsPgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 dC1uYW1lIj5sb29rX2luPC9zcGFuPiA6IGV4YWN0bHkgdGhlIHNhbWUgb3B0aW9ucyBhcyBm b3Igc21kX3N3aXRjaCBleGNlcHQgdGhleSBhcHBseSB0byB0aGUgPGNvZGU+dmFsdWU8L2Nv ZGU+IGF0dHJpYnV0ZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+bGVhdmVf ZW1wdHk8L3NwYW4+IDogZXhhY3RseSB0aGUgc2FtZSBiZWhhdmlvdXIgZm9yIHNtZF9zd2l0 Y2ggZXhjZXB0IGl0IGFwcGxpZXMgdG8gdGhlIDxjb2RlPnZhbHVlPC9jb2RlPiBhdHRyaWJ1 dGU8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmNhc2Vfc2Vuc2l0aXZlPC9z cGFuPiA6IHdoZXRoZXIgeW91IHdpc2ggdG8gdGFrZSBjYXNlIGludG8gYWNjb3VudCB3aGVu IGNvbXBhcmUgPGNvZGU+aXRlbTwvY29kZT4gYW5kIDxjb2RlPnZhbHVlPC9jb2RlPjsgMT15 ZXMsIDA9bm8uIERlZmF1bHQ6IDA8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUi Pm51bWVyaWM8L3NwYW4+IDogd2hldGhlciB5b3Ugd2lzaCB0byBjb21wYXJlIHRoZSB2YWx1 ZXMgbnVtZXJpY2FsbHkgKDEpIGluc3RlYWQgb2YgYWxwaGEtbnVtZXJpY2FsbHkgKDApLiBV c2VmdWwgd2hlbiBjb21wYXJpbmcgbnVtYmVycyBiZWNhdXNlICYjODIxNjtmJiM4MjE3OyBp cyBhY3R1YWxseSBncmVhdGVyIHRoYW4gJiM4MjE2OzEmIzgyMTc7IGluIHRoZSA8c3BhbiBj bGFzcz0iY2FwcyI+QVNDSUk8L3NwYW4+IHRhYmxlLiBEZWZhdWx0OiAwLiBOb3RlIHRoYXQg YSBudW1lcmljIHRlc3QgaXMgaW1wbGllZCBpZiB1c2luZyA8Y29kZT50eXBlPSZxdW90O2Rp dmlzaWJsZSZxdW90OzwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUi PmZhbGx0aHJ1PC9zcGFuPiA6IHVuZGVyIG5vcm1hbCBjaXJjdW1zdGFuY2VzLCB3aGVuIG9u ZSBvZiB0aGUgdGVzdHMgbWF0Y2hlcyBhbnkgZnVydGhlciB0ZXN0cyBhcmUgaWdub3JlZC4g VGh1cyB0aGUgPGVtPm9yZGVyIG9mIHRoZSB0ZXN0cyBpcyBpbXBvcnRhbnQ8L2VtPi4gU29t ZXRpbWVzIHlvdSBtYXkgd2lzaCB0byB0YWtlIG1vcmUgdGhhbiBvbmUgYWN0aW9uLCBlLmcu IGlmIHRoZSBpdGVtIGlzIGdyZWF0ZXIgdGhhbiB2YWx1ZTEgdGhlbiBkaXNwbGF5IHNvbWV0 aGluZywgYW5kIGFsc28gZGlzcGxheSBzb21ldGhpbmcgZWxzZSBpZiBpdCBiZWdpbnMgd2l0 aCB2YWx1ZTIuIFRoaXMgdHlwZSBvZiAmIzgyMjA7PHNwYW4gY2xhc3M9ImNhcHMiPkFORDwv c3Bhbj4mIzgyMjE7IGNvbmRpdGlvbiBpcyBhY2hpZXZlZCBieSBzZXR0aW5nIDxjb2RlPmZh bGx0aHJ1PSZxdW90OzEmcXVvdDs8L2NvZGU+LiBJbiB0aGUgZXZlbnQgdGhlIGNhc2UgbWF0 Y2hlcyB0aGlzIGNvbmRpdGlvbiwgdGhlIG5leHQgY2FzZSB0YWcgd2lsbCBzdGlsbCBiZSBj aGVja2VkLiBGb3IgJiM4MjIwO09SJiM4MjIxOyBjb25kaXRpb25zLCBzZWUgJiM4MjIwO2V4 YW1wbGUgNDojZWc0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5kZWZhdWx0 PC9zcGFuPiA6IGluc2lkZSBhbnkgc3dpdGNoLCBvbmUgYW5kIG9ubHkgb25lIG9mIHlvdXIg Y2FzZSB0YWdzIGNhbiBiZSBkZXNpZ25hdGVkIGEgJiM4MjE2O2RlZmF1bHQmIzgyMTc7IGJ5 IHNldHRpbmcgdGhpcyBhdHRyaWJ1dGUgdG8gMS4gVGhpcyBkZWZhdWx0IGJyYW5jaCB3aWxs IGJlIHRha2VuIGlmIG5vbmUgb2YgdGhlIHByZWNlZGluZyBjYXNlIHRhZ3MgbWF0Y2ggYW55 dGhpbmcuIEl0IGlzIHVzdWFsbHkgdGhlIGxhc3QgdGFnIGluIGEgc3dpdGNoLiBEZWZhdWx0 OiAwPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5kZWJ1Zzwvc3Bhbj4gOiBz ZXQgdG8gMSB0byBzaG93IGRpYWdub3NpdGMgaW5mb3JtYXRpb24gZm9yIHRoaXMgY2FzZSB0 YWcgb25seS4gRGVmYXVsdDogMDwvbGk+Cgk8L3VsPgoKCTxwIGlkPSJmbjE1NzM3NjA4NTc0 OWRmODJjZjQzZjE2IiBjbGFzcz0iZm9vdG5vdGUiPjxzdXA+MTwvc3VwPiBUaGlzIHRlc3Qg Zm9yY2VzICYjODIxNjtudW1lcmljJiM4MjE3OyBvbiBhdXRvbXRpY2FsbHkuIEFsc28sIDAg aXMgcmVnYXJkZWQgYXMgPGVtPm5vdDwvZW0+IHdob2xseSBkaXZpc2libGUgYnkgYW55IHZh bHVlPC9wPgoKCTxwIGlkPSJmbjE3Mzc3MTEyNTE0OWRmODJjZjQ0NmU2IiBjbGFzcz0iZm9v dG5vdGUiPjxzdXA+Mjwvc3VwPiBjYXNlX3NlbnNpdGl2ZSBpcyBhdXRvbWF0aWNhbGx5IHNl dCB0byAxIGZvciB0aGVzZSB0ZXN0czwvcD4KCgk8aDIgaWQ9InJlcGxhY2VtZW50cyI+UmVw bGFjZW1lbnQgdmFyaWFibGVzPC9oMj4KCgk8cD5Tb21lIHJlcGxhY2VtZW50IHZhcmlhYmxl cyBhcmUgYXZhaWxhYmxlIHdpdGhpbiB0aGUgPGNvZGU+Jmx0O3R4cDpzbWRfY2FzZSZndDs8 L2NvZGU+IGNvbnRhaW5lciBzbyB5b3UgbWF5IG91dHB1dCB0aGUgbWF0Y2hlZCB2YWx1ZXMg ZGlyZWN0bHksIGZvciBleGFtcGxlLCBpbiBlcnJvciBtZXNzYWdlczo8L3A+CgoJPG9sPgoJ CTxsaT48Y29kZT57c21kX21jX2l0ZW19PC9jb2RlPiAob3IgPGNvZGU+e3NtZF9zd2l0Y2h9 PC9jb2RlPik6IHRoZSB2YWx1ZSBvZiB0aGUgc3dpdGNoIDxjb2RlPml0ZW08L2NvZGU+IGJl aW5nIGxvb2tlZCBhdDwvbGk+CgkJPGxpPjxjb2RlPntzbWRfbWNfdmFsdWV9PC9jb2RlPiAo b3IgPGNvZGU+e3NtZF9jYXNlfTwvY29kZT4pOiB0aGUgdmFsdWUgb2YgdGhlIGNhc2UgPGNv ZGU+dmFsdWU8L2NvZGU+IHRoYXQgbWF0Y2hlZCB0aGUgPGNvZGU+aXRlbTwvY29kZT48L2xp PgoJPC9vbD4KCgk8cD5XaGVuIHRlc3RpbmcgbW9yZSB0aGFuIG9uZSB2YWx1ZSB0byBwcm9k dWNlIGEgc2luZ2xlIG91dGNvbWUsIHRoZSA8ZW0+bW9zdCByZWNlbnQ8L2VtPiB2YWx1ZSB0 aGF0IG1hdGNoZXMgaXMgdGhlIG9uZSBhc3NpZ25lZCB0byB0aGUgcmVwbGFjZW1lbnQgdmFy aWFibGUuPC9wPgoKCTxoMiBpZD0iZXhhbXBsZXMiPkV4YW1wbGVzPC9oMj4KCgk8aDMgaWQ9 ImVnMSI+RXhhbXBsZSAxPC9oMz4KCgk8cD5PbiB5b3VyIGVycm9yX2RlZmF1bHQgcGFnZSB5 b3UgY291bGQgcHV0IHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNz PSJibG9jayI+Jmx0O3R4cDpzbWRfc3dpdGNoIGl0ZW09JnF1b3Q7P3R4cF9lcnJvcl9jb2Rl JnF1b3Q7Jmd0OwogICAmbHQ7dHhwOnNtZF9jYXNlIHZhbHVlPSZxdW90OzQwMyZxdW90OyZn dDsKICAgICAgJmx0O3AmZ3Q7Rm9yYmlkZGVuIGFjY2Vzcy4gQ29kZTogNDAzJmx0Oy9wJmd0 OwogICAmbHQ7L3R4cDpzbWRfY2FzZSZndDsKICAgJmx0O3R4cDpzbWRfY2FzZSB2YWx1ZT0m cXVvdDs0MDQmcXVvdDsmZ3Q7CiAgICAgICZsdDtwJmd0O1BhZ2Ugbm90IGZvdW5kLiBDb2Rl OiA0MDQmbHQ7L3AmZ3Q7CiAgICZsdDsvdHhwOnNtZF9jYXNlJmd0OwogICAmbHQ7dHhwOnNt ZF9jYXNlIHZhbHVlPSZxdW90OzUwMCZxdW90OyZndDsKICAgICAgJmx0O3AmZ3Q7U29tZXRo aW5nIHdlbnQgaG9ycmlibHkgd3JvbmcuIENvZGU6IDUwMCZsdDsvcCZndDsKICAgJmx0Oy90 eHA6c21kX2Nhc2UmZ3Q7CiAgICZsdDt0eHA6c21kX2Nhc2UgZGVmYXVsdD0mcXVvdDsxJnF1 b3Q7Jmd0OwogICAgICAmbHQ7cCZndDtXaG9vcHMhIEVycm9yIGNvZGU6IHtzbWRfbWNfaXRl bX0gb2NjdXJyZWQmbHQ7L3AmZ3Q7CiAgICZsdDsvdHhwOnNtZF9jYXNlJmd0OwombHQ7L3R4 cDpzbWRfc3dpdGNoJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUg MjwvaDM+CgoJPHA+VGVzdCBzb21lIHZhbHVlIG9idGFpbmVkIGZyb20gcHVibGljLXNpZGUg Zm9ybSBpbnB1dDo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2Nr Ij4mbHQ7dHhwOnNtZF9zd2l0Y2ggaXRlbT0mcXVvdDs/cXVhbnRpdHkmcXVvdDsgbG9va19p bj0mcXVvdDt1cmx2YXImcXVvdDsmZ3Q7CiAgICZsdDt0eHA6c21kX2Nhc2UgdmFsdWU9JnF1 b3Q7MiZxdW90OyB0eXBlPSZxdW90O2x0JnF1b3Q7CiAgICAgICAgbnVtZXJpYz0mcXVvdDsx JnF1b3Q7Jmd0OwogICAgICAmbHQ7cCZndDtWYWx1ZSB7c21kX3N3aXRjaH0gaXMgdG9vIHNt YWxsJmx0Oy9wJmd0OwogICAmbHQ7L3R4cDpzbWRfY2FzZSZndDsKICAgJmx0O3R4cDpzbWRf Y2FzZSB2YWx1ZT0mcXVvdDsyMCZxdW90OyB0eXBlPSZxdW90O2d0JnF1b3Q7CiAgICAgICAg bnVtZXJpYz0mcXVvdDsxJnF1b3Q7Jmd0OwogICAgICAmbHQ7cCZndDtWYWx1ZSB7c21kX3N3 aXRjaH0gaXMgdG9vIGxhcmdlJmx0Oy9wJmd0OwogICAmbHQ7L3R4cDpzbWRfY2FzZSZndDsK Jmx0Oy90eHA6c21kX3N3aXRjaCZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWczIj5F eGFtcGxlIDM8L2gzPgoKCTxwPkJ1aWxkaW5nIG9uIDxhIGhyZWY9IiNlZzIiPmV4YW1wbGUg MjwvYT4sIHRoaXMgcnVucyB0aGUgMm5kIGFuZCAzcmQgdGVzdHMgcmVnYXJkbGVzcyBvZiB3 aGV0aGVyIHRoZSAybmQgb25lIHJldHVybmVkIHRydWUuPC9wPgoKPHByZSBjbGFzcz0iYmxv Y2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfc3dpdGNoIGl0ZW09JnF1b3Q7 P3F1YW50aXR5JnF1b3Q7IGxvb2tfaW49JnF1b3Q7dXJsdmFyJnF1b3Q7Jmd0OwogICAmbHQ7 dHhwOnNtZF9jYXNlIHZhbHVlPSZxdW90OzImcXVvdDsgdHlwZT0mcXVvdDtsdCZxdW90Owog ICAgICAgIG51bWVyaWM9JnF1b3Q7MSZxdW90OyZndDsKICAgICAgVmFsdWUge3NtZF9zd2l0 Y2h9IGlzIHRvbyBzbWFsbCZsdDticiAvJmd0OwogICAmbHQ7L3R4cDpzbWRfY2FzZSZndDsK ICAgJmx0O3R4cDpzbWRfY2FzZSB2YWx1ZT0mcXVvdDsyMCZxdW90OyB0eXBlPSZxdW90O2d0 JnF1b3Q7CiAgICAgICAgbnVtZXJpYz0mcXVvdDsxJnF1b3Q7IGZhbGx0aHJ1PSZxdW90OzEm cXVvdDsmZ3Q7CiAgICAgIFZhbHVlIHtzbWRfc3dpdGNofSBpcyB0b28gbGFyZ2UmbHQ7YnIg LyZndDsKICAgJmx0Oy90eHA6c21kX2Nhc2UmZ3Q7CiAgICZsdDt0eHA6c21kX2Nhc2UgdmFs dWU9JnF1b3Q7MTAwJnF1b3Q7IHR5cGU9JnF1b3Q7Z3QmcXVvdDsKICAgICAgICBudW1lcmlj PSZxdW90OzEmcXVvdDsmZ3Q7CiAgICAgIC4uLiBhbmQgb3V0IG9mIHRoaXMgd29ybGQhICZs dDticiAvJmd0OwogICAmbHQ7L3R4cDpzbWRfY2FzZSZndDsKICAgJmx0O3R4cDpzbWRfY2Fz ZSBkZWZhdWx0PSZxdW90OzEmcXVvdDsmZ3Q7CiAgICAgIEV2ZXJ5dGhpbmcmIzM5O3MgZmlu ZQogICAmbHQ7L3R4cDpzbWRfY2FzZSZndDsKJmx0Oy90eHA6c21kX3N3aXRjaCZndDsKPC9j b2RlPjwvcHJlPgoKCTxwPlRodXMsIHlvdSBzZWUgdGhlIGZvbGxvd2luZyBpZiB5b3UgYWRk IHRoZXNlIHZhbHVlcyB0byB0aGUgYWRkcmVzcyBiYXI6PC9wPgoKCTx1bD4KCQk8bGk+PGNv ZGU+P3F1YW50aXR5PTE8L2NvZGU+IDogVmFsdWUgMSBpcyB0b28gc21hbGw8L2xpPgoJCTxs aT48Y29kZT4/cXVhbnRpdHk9MTU8L2NvZGU+IDogRXZlcnl0aGluZyBpcyBmaW5lPC9saT4K CQk8bGk+PGNvZGU+P3F1YW50aXR5PTI1PC9jb2RlPiA6IFZhbHVlIDI1IGlzIHRvbyBsYXJn ZTwvbGk+CgkJPGxpPjxjb2RlPj9xdWFudGl0eT0xMjU8L2NvZGU+IDogVmFsdWUgMTI1IGlz IHRvbyBsYXJnZSYjODIzMDsgYW5kIG91dCBvZiB0aGlzIHdvcmxkITwvbGk+Cgk8L3VsPgoK CTxoMyBpZD0iZWc0Ij5FeGFtcGxlIDQ8L2gzPgoKCTxwPlNvbWV0aW1lcyB5b3UgbWF5IHdh bnQgdG8gcGVyZm9ybSB0aGUgc2FtZSBhY3Rpb24gZm9yIGEgbnVtYmVyIG9mIG1hdGNoZXMu IEZvciB0aGVzZSBpbnN0YW5jZXMgeW91IG1heSB1c2UgdGhlIDxjb2RlPiZsdDt0eHA6c21k X2Nhc2UgLyZndDs8L2NvZGU+IHRhZyBpbiBpdHMgU2luZ2xlIGZvcm0uIExpc3QgYWxsIHRo ZSBjYXNlcyB0aGF0IHlvdSB3YW50IHRvIGhhdmUgdGhlIHNhbWUgb3V0Y29tZSwgdGhlbiB1 c2UgdGhlIGNvbnRhaW5lciBvZiB0aGUgbGFzdCBvbmUgdG8gcGVyZm9ybSB0aGUgYWN0aW9u IGlmIGFueSBvZiB0aGUgcHJlY2VkaW5nIGNhc2VzIG1hdGNoZWQuPC9wPgoKPHByZSBjbGFz cz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfc3dpdGNoIGl0ZW09 JnF1b3Q7P2N1c3RvbTEmcXVvdDsmZ3Q7CiAgICZsdDt0eHA6c21kX2Nhc2UgdmFsdWU9JnF1 b3Q7MiZxdW90OyB0eXBlPSZxdW90O2RpdmlzaWJsZSZxdW90OyAvJmd0OwogICAmbHQ7dHhw OnNtZF9jYXNlIHZhbHVlPSZxdW90OzQmcXVvdDsgdHlwZT0mcXVvdDtkaXZpc2libGUmcXVv dDsgLyZndDsKICAgJmx0O3R4cDpzbWRfY2FzZSB2YWx1ZT0mcXVvdDsxMCZxdW90OyB0eXBl PSZxdW90O2RpdmlzaWJsZSZxdW90OyZndDsKICAgICB7c21kX3N3aXRjaH0gaXMgZGl2aXNp YmxlIGJ5IDIsIDQgb3IgMTAKICAgJmx0Oy90eHA6c21kX2Nhc2UmZ3Q7CiAgICZsdDt0eHA6 c21kX2Nhc2UgdmFsdWU9JnF1b3Q7NSZxdW90OyB0eXBlPSZxdW90O2VuZHMmcXVvdDsgLyZn dDsKICAgJmx0O3R4cDpzbWRfY2FzZSB2YWx1ZT0mcXVvdDswJnF1b3Q7IHR5cGU9JnF1b3Q7 ZW5kcyZxdW90OyZndDsKICAgICBZYXkhIE51bWJlcnMgZW5kaW5nIGluIDUgb3IgMCB3aW4g YSB0ZWRkeS4KICAgJmx0Oy90eHA6c21kX2Nhc2UmZ3Q7CiZsdDsvdHhwOnNtZF9zd2l0Y2gm Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5JZiB5b3UgYWRkIDxjb2RlPmZhbGx0aHJ1PSZxdW90 OzEmcXVvdDs8L2NvZGU+IHRvIHRoZSA8Y29kZT52YWx1ZT0mcXVvdDsxMCZxdW90OzwvY29k ZT4gY2FzZSB0YWcsIGJvdGggJiM4MjE2O2RpdmlzaWJsZSYjODIxNzsgYW5kICYjODIxNjt0 ZWRkeSBiZWFyJiM4MjE3OyBzZXRzIG9mIGNvbmRpdGlvbnMgd291bGQgYmUgdGVzdGVkIGFu ZCB5b3UmIzgyMTc7ZCBzZWUgdmFyeWluZyBjb21iaW5hdGlvbnMgb2YgdGhlIG91dHB1dCBi YXNlZCBvbiB0aGUgY29udGVudHMgb2YgY3VzdG9tMS48L3A+CgoJPGgzIGlkPSJlZzUiPkV4 YW1wbGUgNTwvaDM+CgoJPHA+VGhpcyBvbmUgY2hlY2tzIHRoYXQgdGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5VUkw8L3NwYW4+IHZhcmlhYmxlIDxjb2RlPnF0eTwvY29kZT4gaXMgd2l0aGlu IHRoZSByYW5nZSBvZiBhIDxjb2RlPnN0b2NrPC9jb2RlPiBjdXN0b20gZmllbGQuPC9wPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfc3dp dGNoIGl0ZW09JnF1b3Q7P3F0eSZxdW90OyZndDsKICAgJmx0O3R4cDpzbWRfY2FzZSB0eXBl PSZxdW90O2lzYWxwaGEmcXVvdDsgLyZndDsKICAgJmx0O3R4cDpzbWRfY2FzZSB2YWx1ZT0m cXVvdDswJnF1b3Q7Jmd0OwogICAgICBQbGVhc2UgY2hvb3NlIGEgdmFsaWQgb3JkZXIgcXVh bnRpdHkKICAgJmx0Oy90eHA6c21kX2Nhc2UmZ3Q7CiAgICZsdDt0eHA6c21kX2Nhc2UgdmFs dWU9JnF1b3Q7P3N0b2NrJnF1b3Q7IHR5cGU9JnF1b3Q7bHQmcXVvdDsmZ3Q7CiAgICAgIFRo ZXJlIGFyZSBlbm91Z2ggb2YgdGhvc2UgaW4gc3RvY2suIFBsYWNlIG9yZGVyPwogICAmbHQ7 L3R4cDpzbWRfY2FzZSZndDsKICAgJmx0O3R4cDpzbWRfY2FzZSBkZWZhdWx0PSZxdW90OzEm cXVvdDsgdmFsdWU9JnF1b3Q7P3N0b2NrJnF1b3Q7Jmd0OwogICAgIFRoZXJlIGFyZSBvbmx5 IHtzbWRfbWNfdmFsdWV9IGluIHN0b2NrLiBQbGVhc2UgY2hvb3NlIGEgbG93ZXIgbnVtYmVy CiAgICZsdDsvdHhwOnNtZF9jYXNlJmd0OwombHQ7L3R4cDpzbWRfc3dpdGNoJmd0Owo8L2Nv ZGU+PC9wcmU+CgoJPHA+U28gaWYgc29tZW9uZSBlbnRlcnMgPGNvZGU+P3F0eT0wPC9jb2Rl PiBvciA8Y29kZT4/cXR5PWZyZWQ8L2NvZGU+IHRoZW4gYSBzcGVjaWFsIG1lc3NhZ2UgaXMg c2hvd24gdG8gcHJvbXB0IHRoZW0gdG8gZW50ZXIgYSB2YWxpZCBudW1iZXIuIElmIHRoZSA8 Y29kZT5xdHk8L2NvZGU+IHZhcmlhYmxlIGlzIGxvd2VyIHRoYW4gdGhlIHN0b2NrIGxldmVs IG9mIHRoZSBjdXJyZW50IGFydGljbGUgdGhlbiBhbGwgaXMgd2VsbC4gQnV0IGlmIGFueSBv dGhlciB2YWx1ZSBpcyB1c2VkLCB0aGUgPGNvZGU+ZGVmYXVsdDwvY29kZT4gY29uZGl0aW9u IGtpY2tzIGluIGFuZCB0ZWxscyB0aGUgdmlzaXRvciB0aGF0IHRoZXJlIGFyZSBub3QgZW5v dWdoIHRvIHNhdGlzZnkgdGhlaXIgcmF2ZW5vdXMgbmVlZHMuPC9wPgoKCTxwPk5vdGUgdGhh dCB0aGUgZGVmYXVsdCBjYXNlIGFsc28gdXNlcyA8Y29kZT52YWx1ZT0mcXVvdDs/c3RvY2sm cXVvdDs8L2NvZGU+IGV2ZW4gdGhvdWdoIGl0IHdvdWxkIGFwcGVhciB0byBub3QgYmUgc3Ry aWN0bHkgbmVjZXNzYXJ5LiBJdCBpcyB1c2VkIHNvIHRoZSByZXBsYWNlbWVudCB2YXJpYWJs ZSA8Y29kZT57c21kX21jX3ZhbHVlfTwvY29kZT4gY2FuIGJlIGluc2VydGVkIGluIHRoZSBv dXRwdXQuIElmIHlvdSBvbWl0IHRoZSA8Y29kZT52YWx1ZTwvY29kZT4gYXR0cmlidXRlIHRo ZW4gPGNvZGU+e3NtZF9tY192YWx1ZX08L2NvZGU+IGlzIG5vdCAmIzgyMTY7cHJpbWVkJiM4 MjE3OyBiZWNhdXNlIHRoZSBjYXNlIHRhZyBkb2VzIG5vdCBrbm93IHdoZXJlIHRvIGxvb2sg Zm9yIHRoZSB2YWx1ZS48L3A+CgoJPHA+PC9kaXY+PC9wPgo8IS0tIC0tLSBCRUdJTiBQTFVH SU4gQ1NTIC0tLSAtLT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3NtZF9oZWxwIHsgbGlu ZS1oZWlnaHQ6MS4zIDt9CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9u dDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9zcGFjZTsgYmFja2dy b3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWln aHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAj ZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6 MTBweDsgfQojc21kX2hlbHAgYTpsaW5rLCAjc21kX2hlbHAgYTp2aXNpdGVkIHsgY29sb3I6 IGJsdWU7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlk IGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBhOmhvdmVyLCAjc21kX2hl bHAgYTphY3RpdmUgeyBjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3Jk ZXItYm90dG9tOiAycHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9o ZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsg bWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVy LWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2 OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNv bG9yOiAjMjc1Njg1OyBmb250OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRl ci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zvcm06IHVwcGVy Y2FzZTt9CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJp ZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zv cm06IHVwcGVyY2FzZTsgfQojc21kX2hlbHAgLmF0dC1uYW1lIHsgZm9udC13ZWlnaHQ6Ym9s ZDsgfQojc21kX2hlbHAgLmF0dC12YWwgeyBmb250LXN0eWxlOml0YWxpYzt9CiNzbWRfaGVs cCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgfQoj c21kX2hlbHAgdGFibGUge3dpZHRoOjEwMCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5n LWJvdHRvbToxZW07IGJvcmRlcjoxcHggc29saWQgIzY2Njt9CiNzbWRfaGVscCB0ZCwgI3Nt ZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6LjVlbSAwO30KPC9z dHlsZT4KPCEtLSAtLS0gRU5EIFBMVUdJTiBDU1MgLS0tIC0tPgoiO3M6MzoibWQ1IjtzOjMy OiJjNzJiMzBmYTI1ZWEwYTkwZGEwMjk0YzIyOTY2ZDE4MiI7fQ==