# Name: smd_xml v0.1 # Type: Client side plugin # Extract any XML/feed info and reformat it # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjc6InNtZF94bWwiO3M6NjoiYXV0aG9yIjtzOjExOiJTdGVm IERhd3NvbiI7czoxMDoiYXV0aG9yX3VyaSI7czoyMjoiaHR0cDovL3N0ZWZkYXdzb24uY29t LyI7czo3OiJ2ZXJzaW9uIjtzOjM6IjAuMSI7czoxMToiZGVzY3JpcHRpb24iO3M6NDE6IkV4 dHJhY3QgYW55IFhNTC9mZWVkIGluZm8gYW5kIHJlZm9ybWF0IGl0IjtzOjQ6ImNvZGUiO3M6 NjgzOToiZnVuY3Rpb24gc21kX3htbCgkYXR0cywgJHRoaW5nPU5VTEwpIHsNCg0KCWV4dHJh Y3QobEF0dHMoYXJyYXkoDQoJCSdkYXRhJyA9PiAnJywNCgkJJ3JlY29yZCcgPT4gJycsDQoJ CSdmaWVsZHMnID0+ICcnLA0KCQknc2tpcCcgPT4gJycsDQoJCSd1cHBlcmNhc2UnID0+ICcw JywNCgkJJ2NvbnZlcnQnID0+ICcnLCAvLyBzZWFyY2g6cmVwbGFjZSwgc2VhcmNoOnJlcGxh Y2UsIC4uLg0KCQkndGFyZ2V0X2VuYycgPT4gJ1VURi04JywNCgkJJ2Zvcm0nID0+ICcnLA0K CQknd3JhcHRhZycgPT4gJycsDQoJCSdicmVhaycgPT4gJycsDQoJCSdjbGFzcycgPT4gJycs DQoJCSdkZWxpbScgPT4gJywnLA0KCQkncGFyYW1fZGVsaW0nID0+ICc6JywNCgkJJ2NvbmNh dF9kZWxpbScgPT4gJyAnLA0KCQknY29uY2F0JyA9PiAnMScsDQoJCSdkZWJ1ZycgPT4gJzAn LA0KCSksICRhdHRzKSk7DQoNCgkkc3JjID0gJyc7DQoJJHRoaW5nID0gKGVtcHR5KCRmb3Jt KSkgPyAkdGhpbmcgOiBmZXRjaF9mb3JtKCRmb3JtKTsNCg0KCWlmIChlbXB0eSgkZGF0YSkp IHsNCgkJdHJpZ2dlcl9lcnJvcigic21kX3htbCByZXF1aXJlcyBhIGRhdGEgc291cmNlIik7 DQoJfQ0KCWlmIChlbXB0eSgkcmVjb3JkKSkgew0KCQl0cmlnZ2VyX2Vycm9yKCJzbWRfeG1s IHJlcXVpcmVzIGEgcmVjb3JkIG5hbWUgd2l0aGluIHlvdXIgZGF0YSBzdHJlYW0iKTsNCgl9 DQoJaWYgKGVtcHR5KCRmaWVsZHMpKSB7DQoJCXRyaWdnZXJfZXJyb3IoInNtZF94bWwgcmVx dWlyZXMgYSBsaXN0IG9mIGZpZWxkcyB0byBleHRyYWN0IGZyb20gd2l0aGluIHlvdXIgcmVj b3JkcyIpOw0KCX0NCg0KCSR0YXJnZXRfZW5jID0gKGluX2FycmF5KCR0YXJnZXRfZW5jLCBh cnJheSgnSVNPLTg4NTktMScsICdVUy1BU0NJSScsICdVVEYtOCcpKSkgPyAkdGFyZ2V0X2Vu YyA6ICdVVEYtOCc7DQoNCglpZiAoKHN0cnBvcygkZGF0YSwgJ2h0dHA6JykgPT09IDApIHx8 IChzdHJwb3MoJGRhdGEsICdodHRwczonKSA9PT0gMCkpIHsNCgkJLy8gVGhlIGRhdGEgaXMg dG8gYmUgZmV0Y2hlZCBmcm9tIGEgVVJMDQoJCWlmKCBpc19jYWxsYWJsZSgnZnNvY2tvcGVu JykgKQ0KCQkJJHRyYW5zcG9ydCA9ICdmc29jayc7DQoJCWVsc2VpZiggaXNfY2FsbGFibGUo J2N1cmxfaW5pdCcpICkgew0KCQkJJHRyYW5zcG9ydCA9ICdjdXJsJzsNCgkJfSBlbHNlIHsN CgkJCSR0cmFuc3BvcnQgPSAnJzsNCgkJfQ0KDQoJCXN3aXRjaCAoJHRyYW5zcG9ydCkgew0K CQkJY2FzZSAnY3VybCc6DQoJCQkJJGMgPSBjdXJsX2luaXQoKTsNCgkJCQljdXJsX3NldG9w dCgkYywgQ1VSTE9QVF9VUkwsICRkYXRhKTsNCgkJCQljdXJsX3NldG9wdCgkYywgQ1VSTE9Q VF9SRUZFUkVSLCBodSk7DQoJCQkJY3VybF9zZXRvcHQoJGMsIENVUkxPUFRfUkVUVVJOVFJB TlNGRVIsIHRydWUpOw0KCQkJCWN1cmxfc2V0b3B0KCRjLCBDVVJMT1BUX1ZFUkJPU0UsIGZh bHNlKTsNCgkJCQljdXJsX3NldG9wdCgkYywgQ1VSTE9QVF9USU1FT1VULCAxMCk7DQoJCQkJ JHNyYyA9IGN1cmxfZXhlYygkYyk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICdmc29jayc6DQoJ CQkJJHVybCA9IHBhcnNlX3VybCgkZGF0YSk7DQoJCQkJJGZwID0gZnNvY2tvcGVuICgkdXJs Wydob3N0J10sIDgwLCAkZXJybm8sICRlcnJzdHIsIDEwKTsNCgkJCQkkcXJ5ID0gJ0dFVCAn LiR1cmxbJ3BhdGgnXTsNCgkJCQkkcXJ5IC49ICIgSFRUUC8xLjBcclxuIjsNCgkJCQkkcXJ5 IC49ICJIb3N0OiAiLiR1cmxbJ2hvc3QnXS4iXHJcbiI7DQoJCQkJJHFyeSAuPSAiVXNlci1B Z2VudDogTW96aWxsYS81LjAgKFdpbmRvd3M7IFU7IFdpbmRvd3MgTlQgNS4xOyBlbi1HQjsg cnY6MS45LjEuNikgR2Vja28vMjAwOTEyMDEgRmlyZWZveC8zLjUuNlxyXG5cclxuIjsgLy8g KnNocnVnKg0KDQoJCQkJZnB1dHMoJGZwLCAkcXJ5KTsNCgkJCQlzdHJlYW1fc2V0X3RpbWVv dXQoJGZwLCAxMCk7DQoJCQkJJGluZm8gPSBzdHJlYW1fZ2V0X21ldGFfZGF0YSgkZnApOw0K DQoJCQkJJGhkcnMgPSB0cnVlOw0KCQkJCXdoaWxlICgoIWZlb2YoJGZwKSkgJiYgKCEkaW5m b1sndGltZWRfb3V0J10pKSB7DQoJCQkJCSRsaW5lID0gZmdldHMoJGZwLCA4MTkyKTsNCgkJ CQkJJGxpbmUgPSBwcmVnX3JlcGxhY2UoIltcclxuXSIsICIiLCAkbGluZSk7DQoJCQkJCWlm ICgkaGRycyA9PSBmYWxzZSkgew0KCQkJCQkJJHNyYyAuPSAkbGluZS4iXG4iOw0KCQkJCQl9 DQoJCQkJCWlmIChzdHJsZW4oJGxpbmUpID09IDApICRoZHJzID0gZmFsc2U7DQoJCQkJfQ0K CQkJCWlmICgkaW5mb1sndGltZWRfb3V0J10pIHsNCgkJCQkJJHNyYyA9ICcnOw0KCQkJCX0N CgkJCQlmY2xvc2UoJGZwKTsNCgkJCQlicmVhazsNCgkJCWRlZmF1bHQ6DQoJCQkJJHNyYyA9 ICcnOw0KCQl9DQoJfSBlbHNlICB7DQoJCS8vIEFzc3VtZSBkYXRhIGlzIHByZXNlbnRlZCBp biByYXcgWE1MDQoJCSRzcmMgPSAkZGF0YTsNCgl9DQoNCgkvLyBNYWtlIHVwIGEgcmVwbGFj ZW1lbnQgYXJyYXkgZm9yIGRlY29kZWQgZW50aXRpZXMuLi4NCgkkY29udmVyc2lvbnMgPSBh cnJheSgpOw0KCSRjb252ZXJ0ID0gZG9fbGlzdCgkY29udmVydCwgJGRlbGltKTsNCglmb3Jl YWNoICgkY29udmVydCBhcyAkcGFpcikgew0KCQlpZiAoZW1wdHkoJHBhaXIpKSBjb250aW51 ZTsNCg0KCQkkcGFpciA9IGRvX2xpc3QoJHBhaXIsICRwYXJhbV9kZWxpbSk7DQoJCSRjb252 ZXJzaW9uc1skcGFpclswXV0gPSAkcGFpclsxXTsNCgl9DQoNCglpZiAoJGRlYnVnID4gMSkg ew0KCQllY2hvICIrKyBDT05WRVJTSU9OUyArKyI7DQoJCWRtcCgkY29udmVyc2lvbnMpOw0K CX0NCg0KCS8vIC4uLiBhbmQgcmVwbGFjZSB0aGVtDQoJJHNyYyA9IHN0cnRyKCRzcmMsICRj b252ZXJzaW9ucyk7DQoNCglpZiAoJGRlYnVnID4gMikgew0KCQllY2hvICIrKyBGSUxURVJF RCBTT1VSQ0UgREFUQSArKyI7DQoJCWRtcCgkc3JjKTsNCgl9DQoNCglpZiAoIWVtcHR5KCRz cmMpKSB7DQoJCSRyZWYgPSBuZXcgc21kX3htbF9wYXJzZXIoJHNyYywgJGZpZWxkcywgJHJl Y29yZCwgJHNraXAsICR1cHBlcmNhc2UsICR0YXJnZXRfZW5jLCAkdGhpbmcsICRkZWxpbSwg JHBhcmFtX2RlbGltLCAkY29uY2F0LCAkY29uY2F0X2RlbGltLCAkZGVidWcpOw0KCQkkcmVz dWx0ID0gJHJlZi0+Z2V0UmVzdWx0cygpOw0KCQlyZXR1cm4gZG9XcmFwKCRyZXN1bHQsICR3 cmFwdGFnLCAkYnJlYWssICRjbGFzcyk7DQoJfSBlbHNlIHsNCgkJcmV0dXJuICcnOw0KCX0N Cn0NCg0KY2xhc3Mgc21kX3htbF9wYXJzZXIgew0KCXByaXZhdGUgJGRhdGE7DQoJcHJpdmF0 ZSAkZmllbGRzOw0KCXByaXZhdGUgJHJlYzsNCglwcml2YXRlICRza2lwOw0KCXByaXZhdGUg JGNmOw0KCXByaXZhdGUgJG91dGVuYzsNCg0KCXByaXZhdGUgJGludGFnOw0KCXByaXZhdGUg JGluZGF0YTsNCglwcml2YXRlICRza2lwdGFnOw0KCXByaXZhdGUgJHhtbHRhZzsNCglwcml2 YXRlICR4bWxhdHRzOw0KCXByaXZhdGUgJHhtbGRhdGE7DQoJcHJpdmF0ZSAkdGhpbmc7DQoJ cHJpdmF0ZSAkb3V0Ow0KCXByaXZhdGUgJHBkZWxpbTsNCglwcml2YXRlICRjZGVsaW07DQoJ cHJpdmF0ZSAkY29uY2F0Ow0KCXByaXZhdGUgJGRlYnVnOw0KDQoJLyoqDQoJKiBjb25zdHJ1 Y3Rvcg0KCSovDQoJZnVuY3Rpb24gc21kX3htbF9wYXJzZXIoJGRhdGEsICRmaWVsZHMsICRy ZWMsICRza2lwLCAkY2YsICRvdXRlbmMsICR0aGluZywgJGRlbGltLCAkcGRlbGltLCAkY29u Y2F0LCAkY2RlbGltLCAkZGVidWc9MCkgew0KCQkkdGhpcy0+ZGF0YSA9ICRkYXRhOw0KCQkk dGhpcy0+ZmllbGRzID0gZG9fbGlzdCgkZmllbGRzLCAkZGVsaW0pOw0KCQkkdGhpcy0+c2tp cCA9IGRvX2xpc3QoJHNraXAsICRkZWxpbSk7DQoJCSR0aGlzLT5yZWMgPSAkcmVjOw0KCQkk dGhpcy0+Y2YgPSAkY2Y7IC8vIENhc2UgZm9sZGluZw0KCQkkdGhpcy0+b3V0ZW5jID0gJG91 dGVuYzsgLy8gVGFyZ2V0IGVuY29kaW5nDQoJCSR0aGlzLT50aGluZyA9ICR0aGluZzsNCgkJ JHRoaXMtPnBkZWxpbSA9ICRwZGVsaW07DQoJCSR0aGlzLT5jZGVsaW0gPSAkY2RlbGltOw0K CQkkdGhpcy0+Y29uY2F0ID0gJGNvbmNhdDsNCgkJJHRoaXMtPmRlYnVnID0gJGRlYnVnOw0K DQoJCSR0aGlzLT5pbnRhZyA9IGZhbHNlOw0KCQkkdGhpcy0+ZXhpc3RzID0gZmFsc2U7DQoJ CSR0aGlzLT5za2lwdGFnID0gJyc7DQoJCSR0aGlzLT54bWx0YWcgPSAnJzsNCgkJJHRoaXMt PnhtbHRhdHRzID0gJyc7DQoJCSR0aGlzLT54bWxkYXRhID0gYXJyYXkoKTsNCgkJJHRoaXMt Pm91dCA9IGFycmF5KCk7DQoNCgkJJHRoaXMtPnBhcnNlKCk7DQoJfQ0KDQoJcHVibGljIGZ1 bmN0aW9uIGdldFJlc3VsdHMoKSB7DQoJCWlmICgkdGhpcy0+b3V0KSB7DQoJCQlyZXR1cm4g JHRoaXMtPm91dDsNCgkJfSBlbHNlIHsNCgkJCXJldHVybiAnJzsNCgkJfQ0KCX0NCg0KCXBy aXZhdGUgZnVuY3Rpb24gcGFyc2UoKSB7DQoJCSR0aGlzLT5kYXRhID0gcHJlZ19yZXBsYWNl KCIvPiIuIltbOnNwYWNlOl1dKyIuIjwvaSIsICI+PCIsICR0aGlzLT5kYXRhKTsgLy8gS2ls bCB3aGl0ZXNwYWNlIGluIGRhdGENCgkJJHhtbHBhcnNlciA9IHhtbF9wYXJzZXJfY3JlYXRl KCk7DQoJCXhtbF9zZXRfb2JqZWN0KCR4bWxwYXJzZXIsICYkdGhpcyk7DQoJCXhtbF9wYXJz ZXJfc2V0X29wdGlvbigkeG1scGFyc2VyLCBYTUxfT1BUSU9OX0NBU0VfRk9MRElORywgJHRo aXMtPmNmKTsNCgkJeG1sX3BhcnNlcl9zZXRfb3B0aW9uKCR4bWxwYXJzZXIsIFhNTF9PUFRJ T05fVEFSR0VUX0VOQ09ESU5HLCAkdGhpcy0+b3V0ZW5jKTsNCgkJeG1sX3NldF9lbGVtZW50 X2hhbmRsZXIoJHhtbHBhcnNlciwgInNtZF94bWxfc3RhcnRfdGFnIiwgInNtZF94bWxfZW5k X3RhZyIpOw0KCQl4bWxfc2V0X2NoYXJhY3Rlcl9kYXRhX2hhbmRsZXIoJHhtbHBhcnNlciwg InNtZF94bWxfdGFnX2NvbnRlbnRzIik7DQoJCXhtbF9wYXJzZSgkeG1scGFyc2VyLCAkdGhp cy0+ZGF0YSk7DQoJCXhtbF9wYXJzZXJfZnJlZSgkeG1scGFyc2VyKTsNCgl9DQoNCglwcml2 YXRlIGZ1bmN0aW9uIHNtZF94bWxfc3RhcnRfdGFnKCRwYXJzZXIsICRuYW1lLCAkYXR0cmli cykgew0KCQlpZiAoJG5hbWUgPT0gJHRoaXMtPnJlYykgew0KCQkJJHRoaXMtPmludGFnID0g dHJ1ZTsNCgkJfQ0KCQlpZiAoJHRoaXMtPmludGFnKSB7DQoJCQlpZiAoaW5fYXJyYXkoJG5h bWUsICR0aGlzLT5za2lwKSkgew0KCQkJCSR0aGlzLT54bWx0YWcgPSAnJzsNCgkJCQkkdGhp cy0+eG1sYXR0cyA9IGFycmF5KCk7DQoJCQkJJHRoaXMtPnNraXB0YWcgPSAkbmFtZTsNCgkJ CX0gZWxzZSB7DQoJCQkJJHRoaXMtPnhtbHRhZyA9ICRuYW1lOw0KCQkJCSR0aGlzLT54bWxh dHRzID0gJGF0dHJpYnM7DQoJCQkJaWYgKCR0aGlzLT5jb25jYXQgJiYgaXNzZXQoJHRoaXMt PnhtbGRhdGFbJ3snLiR0aGlzLT54bWx0YWcuJ30nXSkpIHsNCgkJCQkJJHRoaXMtPmV4aXN0 cyA9IHRydWU7DQogICAgICAgIAkgfSBlbHNlIHsNCgkJCQkJJHRoaXMtPmV4aXN0cyA9IGZh bHNlOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQkkdGhpcy0+aW5kYXRhID0gZmFsc2U7DQoJfQ0K DQoJcHJpdmF0ZSBmdW5jdGlvbiBzbWRfeG1sX2VuZF90YWcoJHBhcnNlciwgJG5hbWUpIHsN CgkJaWYgKCRuYW1lID09ICR0aGlzLT5yZWMgJiYgJG5hbWUgIT0gJHRoaXMtPnNraXB0YWcp IHsNCgkJCSR0aGlzLT5pbnRhZyA9IGZhbHNlOw0KCQkJaWYgKCR0aGlzLT5kZWJ1ZyA+IDAp IHsNCgkJCQllY2hvICIrKyBSRVBMQUNFTUVOVFMgKysiOw0KCQkJCWRtcCgkdGhpcy0+eG1s ZGF0YSk7DQoJCQl9DQoJCQkkdGhpcy0+b3V0W10gPSBwYXJzZShzdHJ0cigkdGhpcy0+dGhp bmcsICR0aGlzLT54bWxkYXRhKSk7DQoJCQkkdGhpcy0+eG1sZGF0YSA9IGFycmF5KCk7IC8v IENsZWFyIGZvciBuZXh0IGl0ZXJhdGlvbg0KCQkJJHRoaXMtPmluZGF0YSA9IGZhbHNlOw0K CQl9DQoJCWlmICgkbmFtZSA9PSAkdGhpcy0+c2tpcHRhZykgew0KCQkJJHRoaXMtPnNraXB0 YWcgPSAnJzsNCgkJfQ0KCX0NCg0KCXByaXZhdGUgZnVuY3Rpb24gc21kX3htbF90YWdfY29u dGVudHMoJHBhcnNlciwgJGRhdGEpIHsNCgkJaWYgKCR0aGlzLT5pbnRhZyAmJiAhJHRoaXMt PnNraXB0YWcpIHsNCgkJCWlmICgkdGhpcy0+ZGVidWcgPiAxKSB7DQoJCQkJZG1wKCR0aGlz LT54bWx0YWcgLiAiIDogIi4gJGRhdGEpOw0KCQkJfQ0KDQoJCQlpZiAoaW5fYXJyYXkoJHRo aXMtPnhtbHRhZywgJHRoaXMtPmZpZWxkcykpIHsNCgkJCQlpZiAoJHRoaXMtPmluZGF0YSkg ew0KCQkJCQlpZiAoJHRoaXMtPmV4aXN0cykgew0KCQkJCQkJJHRoaXMtPnhtbGRhdGFbJ3sn LiR0aGlzLT54bWx0YWcuJ30nXSAuPSAkdGhpcy0+Y2RlbGltLiRkYXRhOw0KCQkJCQl9IGVs c2Ugew0KCQkJCQkJJHRoaXMtPnhtbGRhdGFbJ3snLiR0aGlzLT54bWx0YWcuJ30nXSAuPSAk ZGF0YTsNCgkJCQkJfQ0KCQkJCX0gZWxzZSB7DQoJCQkJCWlmICgkdGhpcy0+ZXhpc3RzKSB7 DQoJCQkJCQkkdGhpcy0+eG1sZGF0YVsneycuJHRoaXMtPnhtbHRhZy4nfSddIC49ICR0aGlz LT5jZGVsaW0uJGRhdGE7DQoJCQkJCX0gZWxzZSB7DQoJCQkJCQkkdGhpcy0+eG1sZGF0YVsn eycuJHRoaXMtPnhtbHRhZy4nfSddID0gJGRhdGE7DQoJCQkJCX0NCgkJCQl9DQoJCQkJaWYg KCR0aGlzLT54bWxhdHRzKSB7DQoJCQkJCWZvcmVhY2ggKCR0aGlzLT54bWxhdHRzIGFzICR4 a2V5ID0+ICR4dmFsKSB7DQoJCQkJCQkkdGhpcy0+eG1sZGF0YVsneycuJHRoaXMtPnhtbHRh Zy4kdGhpcy0+cGRlbGltLiR4a2V5Lid9J10gPSAkeHZhbDsNCgkJCQkJfQ0KCQkJCX0NCgkJ CQkkdGhpcy0+aW5kYXRhID0gdHJ1ZTsNCgkJCX0NCgkJfQ0KCX0NCn0iO3M6NDoidHlwZSI7 czoxOiIwIjtzOjU6Im9yZGVyIjtzOjE6IjUiO3M6NToiZmxhZ3MiO3M6MToiMCI7czo0OiJo ZWxwIjtzOjExNTY2OiI8ZGl2IGlkPSJzbWRfaGVscCI+CgoJPGgxPnNtZF94bWw8L2gxPgoK CTxwPllhbmsgYml0cyBvdXQgb2YgYW55IGh1bmsgb2YgPHNwYW4gY2xhc3M9ImNhcHMiPlhN TDwvc3Bhbj4gYW5kIHJlZm9ybWF0IGl0IHRvIHlvdXIgb3duIG5lZWRzLiBHcmVhdCBmb3Ig cHVsbGluZyBmZWVkIGluZm8gaW50byB5b3VyIFRleHRwYXR0ZXJuIHNpdGUsIGZvciBleGFt cGxlIGZyb20gZGVsaWNpb3VzLmNvbS48L3A+CgoJPGgyPkZlYXR1cmVzPC9oMj4KCgk8dWw+ CgkJPGxpPlNwZWNpZnkgeW91ciA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBkYXRh IGZyb20gYW55IDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+ICYjODIxMjsgaW50ZXJu YWwgb3IgZXh0ZXJuYWwgdG8gPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj48L2xpPgoJ CTxsaT5TZWxlY3RpdmVseSBleHRyYWN0IGFueSBpdGVtcyBpbiB5b3VyIHJlY29yZCBzZXQ8 L2xpPgoJCTxsaT5Vc2UgYSBGb3JtIG9yIHRoZSBwbHVnaW4gY29udGFpbmVyIHRvIG91dHB1 dCBkYXRhIHlvdSBoYXZlIGV4dHJhY3RlZDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJjYXBz Ij5YTUw8L3NwYW4+IHRhZyBhdHRyaWJ1dGVzIGFyZSBhdmFpbGFibGUgYXMgd2VsbDwvbGk+ Cgk8L3VsPgoKCTxoMiBpZD0iYXV0aG9yIj5BdXRob3I8L2gyPgoKCTxwPjxhIGhyZWY9Imh0 dHA6Ly9zdGVmZGF3c29uLmNvbS9jb250YWN0Ij5TdGVmIERhd3NvbjwvYT4uIEZvciBvdGhl ciBzb2Z0d2FyZSBieSBtZSwgb3IgdG8gbWFrZSBhIGRvbmF0aW9uLCBzZWUgdGhlIDxhIGhy ZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4uPC9wPgoK CTxoMiBpZD0iaW5zdGFsbCI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2gyPgoK CTxwIGNsYXNzPSJyZXF1aXJlZCI+UmVxdWlyZXMgPHNwYW4gY2xhc3M9ImNhcHMiPlBIUDwv c3Bhbj4gNSs8L3A+CgoJPHA+RG93bmxvYWQgdGhlIHBsdWdpbiBmcm9tIGVpdGhlciA8YSBo cmVmPSJodHRwOi8vdGV4dHBhdHRlcm4ub3JnL3BsdWdpbnMvMTEzOC9zbWRfeG1sIj50ZXh0 cGF0dGVybi5vcmc8L2E+LCBvciB0aGUgc29mdHdhcmUgcGFnZSBhYm92ZSwgcGFzdGUgdGhl IGNvZGUgaW50byB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gQWRtaW4gLSZn dDsgUGx1Z2lucyBwYW5lLCBpbnN0YWxsIGFuZCBlbmFibGUgdGhlIHBsdWdpbi4gVmlzaXQg dGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBo cD9pZD0zMjcxOCI+Zm9ydW0gdGhyZWFkPC9hPiBmb3IgbW9yZSBpbmZvIG9yIHRvIHJlcG9y dCBvbiB0aGUgc3VjY2VzcyBvciBvdGhlcndpc2Ugb2YgdGhlIHBsdWdpbi48L3A+CgoJPHA+ VG8gcmVtb3ZlIHRoZSBwbHVnaW4sIHNpbXBseSBkZWxldGUgaXQgZnJvbSB0aGUgQWRtaW4t Jmd0O1BsdWdpbnMgdGFiLjwvcD4KCgk8aDI+VXNhZ2U8L2gyPgoKCTxwPlBsYWNlIGEgPGNv ZGU+Jmx0O3R4cDpzbWRfeG1sJmd0OzwvY29kZT4gdGFnIHdoZXJlIHlvdSB3aXNoIHRvIHBy b2Nlc3MgPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gZGF0YSAmIzgyMTI7IHRoaXMg Y291bGQgYmUgZnJvbSBhIGZlZWQuIFNpbmNlIHRoaXMgcGx1Z2luIGlzIGJlc3QgZXhwbGFp bmVkIGJ5IGV4YW1wbGUsIGFzc3VtZSB0aGUgZm9sbG93aW5nIDxzcGFuIGNsYXNzPSJjYXBz Ij5YTUw8L3NwYW4+IGRvY3VtZW50IGlzIHByZXNlbnRlZCB0byB0aGUgcGx1Z2luOjwvcD4K CjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDtlbXBsb3llZXMm Z3Q7CiAgICZsdDtlbXBsb3llZSZndDsKICAgICAgJmx0O25hbWUgaWQ9JnF1b3Q7d2lsZV9l X2NveW90ZSZxdW90OyZndDtXaWxlIEUuIENveW90ZSZsdDsvbmFtZSZndDsKICAgICAgJmx0 O2pvYl90aXRsZSZndDtTY2hlbWVyJmx0Oy9qb2JfdGl0bGUmZ3Q7CiAgICAgICZsdDtkZXB0 Jmd0O0FDTUUgY29ycCZsdDsvZGVwdCZndDsKICAgICAgJmx0O3F1YWxpdHkmZ3Q7Q3Vubmlu ZyZsdDsvcXVhbGl0eSZndDsKICAgICAgJmx0O3F1YWxpdHkmZ3Q7RGV2aW91c25lc3MmbHQ7 L3F1YWxpdHkmZ3Q7CiAgICAgICZsdDtxdWFsaXR5Jmd0O1BlcnNpc3RlbmNlJmx0Oy9xdWFs aXR5Jmd0OwogICAmbHQ7L2VtcGxveWVlJmd0OwogICAmbHQ7ZW1wbG95ZWUmZ3Q7CiAgICAg ICZsdDtuYW1lIGlkPSZxdW90O3JvYWRfcnVubmVyJnF1b3Q7Jmd0O1JvYWQgUnVubmVyJmx0 Oy9uYW1lJmd0OwogICAgICAmbHQ7am9iX3RpdGxlJmd0O1NlZWQgZXhwZXJ0Jmx0Oy9qb2Jf dGl0bGUmZ3Q7CiAgICAgICZsdDtkZXB0Jmd0O0V2YXNpb24mbHQ7L2RlcHQmZ3Q7CiAgICAg ICZsdDtxdWFsaXR5Jmd0O1NwZWVkJmx0Oy9xdWFsaXR5Jmd0OwogICAgICAmbHQ7cXVhbGl0 eSZndDtNZWVwIG1lZXAmbHQ7L3F1YWxpdHkmZ3Q7CiAgICZsdDsvZW1wbG95ZWUmZ3Q7CiZs dDsvZW1wbG95ZWVzJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VXNlIHRoZSBmb2xsb3dpbmcg YXR0cmlidXRlcyB0byBjb25maWd1cmUgdGhlIHBsdWdpbiAoc2hhZGVkIGF0dHJpYnV0ZXMg YXJlIG1hbmRhdG9yeSkgOjwvcD4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIG1h bmQiPmRhdGE8L3NwYW4+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRh dGEgc291cmNlLiBNb3N0IG9mIHRoZSB0aW1lIHRoaXMgd2lsbCBiZSBhIDxzcGFuIGNsYXNz PSJjYXBzIj5VUkw8L3NwYW4+LCB0aG91Z2ggeW91IGNvdWxkIGhhcmQtY29kZSB0aGUgPHNw YW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gZGF0YSBvdCB1c2UgYW5vdGhlciA8c3BhbiBj bGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB0YWcgaGVyZSAoZS5nLiA8Y29kZT4mbHQ7dHhwOnZh cmlhYmxlIC8mZ3Q7PC9jb2RlPik8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSBtYW5k Ij5yZWNvcmQ8L3NwYW4+IDogdGhlIG5hbWUgb2YgdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5Y TUw8L3NwYW4+IHRhZyB0aGF0IHN1cnJvdW5kcyBlYWNoIHJlY29yZCBvZiBkYXRhIGluIHlv dXIgZmVlZC4gVGh1cyB5b3Ugd291bGQgbmVlZCA8Y29kZT5yZWNvcmQ9JnF1b3Q7ZW1wbG95 ZWUmcXVvdDs8L2NvZGU+IGluIHRoZSBhYm92ZSBkb2N1bWVudDwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIG1hbmQiPmZpZWxkczwvc3Bhbj4gOiBsaXN0IG9mIDxzcGFuIGNsYXNz PSJjYXBzIj5YTUw8L3NwYW4+IGZpZWxkcyB5b3Ugd2FudCB0byBleHRyYWN0IGZyb20gZWFj aCByZWNvcmQuIEZvciBleGFtcGxlLCA8Y29kZT5maWVsZHM9JnF1b3Q7bmFtZSwgZGVwdCZx dW90OzwvY29kZT4uIEVhY2ggdGFnIHlvdSBzcGVjaWZ5IGhlcmUgd2lsbCAgY3JlYXRlIGEg c2ltaWxhcmx5LW5hbWVkIDxhIGhyZWY9IiNyZXBzIj5yZXBsYWNlbWVudCB0YWc8L2E+IHRo YXQgeW91IG1heSB1c2UgaW4geW91ciBmb3JtL2NvbnRhaW5lciB0byBkaXNwbGF5IHRoZSBy ZWxldmFudCBwaWVjZSBvZiBkYXRhLiBJbiB0aGlzIGNhc2UsIDxjb2RlPntuYW1lfTwvY29k ZT4gYW5kIDxjb2RlPntkZXB0fTwvY29kZT4gd291bGQgYmUgYXZhaWxhYmxlIGluIHlvdXIg b3V0cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNraXA8L3NwYW4+IDogbGlz dCBvZiA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9zcGFuPiBmaWVsZHMgeW91IHdhbnQgdG8g c2tpcCBvdmVyIGluIGVhY2ggcmVjb3JkLiBVc2VmdWwgaWYgYSBmaWVsZCB5b3Ugd2lzaCB0 byBleHRyYWN0IGlzIHVzZWQgaW4gdHdvIHBsYWNlcyBpbiB0aGUgc2FtZSByZWNvcmQuIFNl ZSA8YSBocmVmPSIjZWcyIj5leGFtcGxlIDI8L2E+IGZvciBhIHByYWN0aWNhbCBhcHBsaWNh dGlvbjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5mb3JtPC9zcGFuPiA6IHRoZSA8 c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBGb3JtIHdpdGggd2hpY2ggdG8gcGFyc2Ug ZWFjaCByZWNvcmQuIFlvdSBtYXkgdXNlIHRoZSBwbHVnaW4gYXMgYSBjb250YWluZXIgaW5z dGVhZCBpZiB5b3UgcHJlZmVyPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnVwcGVy Y2FzZTwvc3Bhbj4gOiBzZXQgdG8gMSB0byBmb3JjZSBhbGwgPHNwYW4gY2xhc3M9ImNhcHMi PlhNTDwvc3Bhbj4gdGFnIG5hbWVzIHRvIGJlIGluIHVwcGVyIGNhc2UsIHRodXMgeW91IHdv dWxkIGhhdmUgdG8gc3BlY2lmeSA8Y29kZT5maWVsZHM9JnF1b3Q7TkFNRSwgREVQVCZxdW90 OzwvY29kZT4gaW4gb3JkZXIgdG8gc3VjY2Vzc2Z1bGx5IGV4dHJhY3QgdGhvc2UgZmllbGRz PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnRhcmdldF9lbmM8L3NwYW4+IDogY2hh cmFjdGVyIGVuY29kaW5nIHRvIGFwcGx5IHRvIHRoZSBwYXJzZWQgPHNwYW4gY2xhc3M9ImNh cHMiPlhNTDwvc3Bhbj4gZGF0YS4gQ2hvb3NlIGZyb20gPGNvZGU+SVNPLTg4NTktMTwvY29k ZT4sIDxjb2RlPlVTLUFTQ0lJPC9jb2RlPiwgb3IgPGNvZGU+VVRGLTg8L2NvZGU+LiBEZWZh dWx0OiA8Y29kZT5VVEYtODwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ Y29uY2F0PC9zcGFuPiA6IGFueSBkdXBsaWNhdGUgdGFncyBpbiB0aGUgc3RyZWFtIGFyZSB1 c3VhbGx5IGNvbmNhdGVuYXRlZCB0b2dldGhlci4gSWYgeW91IHdpc2ggdG8gdHVybiB0aGlz IGZlYXR1cmUgb2ZmIHNvIHRoYXQgb25seSB0aGUgbGFzdCB0YWcmIzgyMTc7cyBjb250ZW50 cyByZW1haW5zLCBzZXQgPGNvZGU+Y29uY2F0PSZxdW90OzAmcXVvdDs8L2NvZGU+LiBEZWZh dWx0OiAxPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmRlbGltPC9zcGFuPiA6IHRo ZSBkZWxpbWl0ZXIgdG8gdXNlIGJldHdlZW4gaXRlbXMgaW4gdGhlIHBsdWdpbiBhdHRyaWJ1 dGVzLiBEZWZhdWx0OiBjb21tYTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5wYXJh bV9kZWxpbTwvc3Bhbj4gOiB0aGUgZGVsaW1pdGVyIHRvIHVzZSBiZXR3ZWVuIGl0ZW1zIGlu IDxzcGFuIGNsYXNzPSJjYXBzIj5YTUw8L3NwYW4+IGRhdGEgYXR0cmlidXRlcy4gRGVmYXVs dDogY29sb248L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Y29uY2F0X2RlbGltPC9z cGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8gdXNlIGJldHdlZW4gaWRlbnRpY2FsbHktbmFtZWQg dGFncyBpbiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gZGF0YSBzdHJlYW0u IERlZmF1bHQ6IHNwYWNlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNvbnZlcnQ8 L3NwYW4+IDogaWYgeW91ciBkYXRhIHN0cmVhbSBjb250YWlucyBkYXRhIHlvdSBkb24mIzgy MTc7dCB3YW50IG9yIGRhdGEgdGhhdCB5b3Ugd2lzaCB0byB0cmFuc2xhdGUgKGZvciBleGFt cGxlLCBjaGFyYWN0ZXIgZW50aXRpZXMpIHlvdSBjYW4gbGlzdCB0aGVtIGhlcmUuIEl0ZW1z IGFyZSBzcGVjaWZpZWQgaW4gcGFpcnMgc2VwYXJhdGVkIGJ5IDxjb2RlPnBhcmFtX2RlbGlt PC9jb2RlPjsgdGhlIGZpcnN0IGlzIHRoZSBpdGVtIHRvIHNlYXJjaCBmb3IgYW5kIHRoZSBz ZWNvbmQgaXMgaXRzIHJlcGxhY2VtZW50LiBGb3IgZXhhbXBsZTogPGNvZGU+Y29udmVydD0m cXVvdDsmYW1wO2FtcDsjMDM5OiYjMzk7JnF1b3Q7PC9jb2RlPiB3b3VsZCByZXBsYWNlIGFs bCBvY2N1cnJlbmNlcyBvZiA8Y29kZT4mYW1wO2FtcDsjMDM5PC9jb2RlPiB3aXRoIGFuIGFw b3N0cm9waGUgY2hhcmFjdGVyLiBOb3RlIHRoYXQgdGhlIHJlcGxhY2VtZW50cyBhcmUgcGVy Zm9ybWVkIG9uIHRoZSByYXcgc3RyZWFtIDxlbT5iZWZvcmU8L2VtPiBpdCBpcyBwYXJzZWQu IEFsc28gdGFrZSBjYXJlIHdoZW4gZGVjb2RpbmcgZG91YmxlIHF1b3RlczsgdGhpcyBpcyB0 aGUgY29ycmVjdCBtZXRob2Q6IDxjb2RlPmNvbnZlcnQ9JnF1b3Q7JmFtcDthbXA7cXVvdDs6 JnF1b3Q7JnF1b3Q7JnF1b3Q7PC9jb2RlPiAobm90ZSB0aGUgZG91YmxlIHF1b3RlIGlzIGVz Y2FwZWQgYnkgcHV0dGluZyA8ZW0+dHdvPC9lbT4gZG91YmxlIHF1b3RlIGNoYXJhY3RlcnMg aW4pPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPndyYXB0YWc8L3NwYW4+IDogdGhl IChYKUhUTUwgdGFnLCB3aXRob3V0IGJyYWNrZXRzLCB0byBzdXJyb3VuZCBlYWNoIHJlY29y ZCB5b3Ugb3V0cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmJyZWFrPC9zcGFu PiA6IHRoZSAoWClIVE1MIHRhZywgd2l0aG91dCBicmFja2V0cywgdG8gc3Vycm91bmQgZWFj aCBmaWVsZCB5b3Ugb3V0cHV0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNz PC9zcGFuPiA6IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBuYW1l IHRvIGFwcGx5IHRvIHRoZSA8Y29kZT53cmFwdGFnPC9jb2RlPjwvbGk+Cgk8L3VsPgoKCTxo MiBpZD0icmVwcyI+UmVwbGFjZW1lbnQgdGFnczwvaDI+CgoJPHA+RWFjaCA8c3BhbiBjbGFz cz0iY2FwcyI+WE1MPC9zcGFuPiBmaWVsZCB5b3UgZXh0cmFjdCBmcm9tIHlvdXIgZGF0YSBz dHJlYW0gaGFzIGFuIGVxdWl2YWxlbnRseS1uYW1lZCByZXBsYWNlbWVudCB0YWcgYXZhaWxh YmxlIHNvIHlvdSBtYXkgdXNlIGl0IGFueXdoZXJlIHlvdSBsaWtlIGluIHlvdXIgRm9ybS9j b250YWluZXIuIFNvLCBpZiB5b3UgY2hvc2UgdG8gZXh0cmFjdCA8Y29kZT5maWVsZHM9JnF1 b3Q7bmFtZSwgam9iX3RpdGxlLCBxdWFsaXR5JnF1b3Q7PC9jb2RlPiB5b3Ugd291bGQgaGF2 ZSB0aGUgZm9sbG93aW5nIHJlcGxhY2VtZW50IHRhZ3MgYXZhaWxhYmxlIGR1cmluZyB0aGUg Zmlyc3QgcmVjb3JkOjwvcD4KCgk8dWw+CgkJPGxpPjxjb2RlPntuYW1lfTwvY29kZT4gOiBX aWxlIEUuIENveW90ZTwvbGk+CgkJPGxpPjxjb2RlPntuYW1lOmlkfTwvY29kZT4gOiB3aWxl X2VfY295b3RlPC9saT4KCQk8bGk+PGNvZGU+e2pvYl90aXRsZX08L2NvZGU+IDogU2NoZW1l cjwvbGk+CgkJPGxpPjxjb2RlPntxdWFsaXR5fTwvY29kZT4gOiBDdW5uaW5nIERldmlvdXNu ZXNzIFBlcnNpc3RlbmNlPC9saT4KCTwvdWw+CgoJPHA+QW5kIGR1cmluZyB0aGUgc2Vjb25k IHJlY29yZCwgdGhlIHNhbWUgcmVwbGFjZW1lbnQgdGFnIG5hbWVzIHdvdWxkIHJlZmVyIHRv IHRoZSBmb2xsb3dpbmcgaXRlbXM6PC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+e25hbWV9PC9j b2RlPiA6IFJvYWQgUnVubmVyPC9saT4KCQk8bGk+PGNvZGU+e25hbWU6aWR9PC9jb2RlPiA6 IHJvYWRfcnVubmVyPC9saT4KCQk8bGk+PGNvZGU+e2pvYl90aXRsZX08L2NvZGU+IDogU2Vl ZCBleHBlcnQ8L2xpPgoJCTxsaT48Y29kZT57cXVhbGl0eX08L2NvZGU+IDogU3BlZWQgTWVl cCBtZWVwPC9saT4KCTwvdWw+CgoJPHA+Tm90ZSB0aGF0IHRoZSBhdHRyaWJ1dGUgY2FsbGVk IDxjb2RlPmlkPC9jb2RlPiB0aGF0IGlzIHBhcnQgb2YgdGhlIDxjb2RlPiZsdDtuYW1lJmd0 OzwvY29kZT4gPHNwYW4gY2xhc3M9ImNhcHMiPlhNTDwvc3Bhbj4gdGFnIGhhcyBiZWVuIGV4 dHJhY3RlZCBhbmQgaXMgbWFkZSBhdmFpbGFibGUgYXV0b21hdGljYWxseS4gQnkgZGVmYXVs dCwgdGhlIG5hbWVzIG9mIGF0dHJpYnV0ZXMgYXJlIGRlZmluZWQgYXMgPGNvZGU+e3RhZzph dHRyaWJ1dGV9PC9jb2RlPi4gVGhlIGNvbG9uIGNhbiBiZSBhbHRlcmVkIHVzaW5nIDxjb2Rl PnBhcmFtX2RlbGltPC9jb2RlPjsgdGhpcyBpcyBzb21ldGltZXMgbmVjZXNzYXJ5IGlmIHRo ZSB0YWcgbmFtZSBpdHNlbGYgY29udGFpbnMgYSBjb2xvbiAoZGVsaWNpb3VzLmNvbSBkb2Vz IHRoaXMpLjwvcD4KCgk8cD5UaGUgPGNvZGU+e3F1YWxpdHl9PC9jb2RlPiB0YWcgYXBwZWFy cyBtb3JlIHRoYW4gb25jZSBpbiB0aGUgZXhhbXBsZSBkb2N1bWVudCBhYm92ZS4gWW91IGNh biBpbmZsdWVuY2UgaXRzIG91dHB1dCB1c2luZyB0aGUgPGNvZGU+Y29uY2F0PC9jb2RlPiBh bmQgPGNvZGU+Y29uY2F0X2RlbGltPC9jb2RlPiBhdHRyaWJ1dGVzLCBlLmcuIHVzaW5nIDxj b2RlPmNvbmNhdF9kZWxpbT0mcXVvdDt8JnF1b3Q7PC9jb2RlPiB3b3VsZCByZW5kZXIgdGhl IGZvbGxvd2luZyByZXBsYWNlbWVudCB2YXJpYWJsZSBvbiB0aGUgZmlyc3QgcmVjb3JkOjwv cD4KCgk8dWw+CgkJPGxpPjxjb2RlPntxdWFsaXR5fTwvY29kZT4gOiBDdW5uaW5nfERldmlv dXNuZXNzfFBlcnNpc3RlbmNlPC9saT4KCTwvdWw+CgoJPHA+d2hpbGUgPGNvZGU+Y29uY2F0 PSZxdW90OzAmcXVvdDs8L2NvZGU+IHdvdWxkIHJlbmRlciB0aGlzOjwvcD4KCgk8dWw+CgkJ PGxpPjxjb2RlPntxdWFsaXR5fTwvY29kZT4gOiBQZXJzaXN0ZW5jZTwvbGk+Cgk8L3VsPgoK CTxoMj5FeGFtcGxlczwvaDI+CgoJPGgzIGlkPSJlZzEiPkV4YW1wbGUgMTogZGVsaWNpb3Vz IGxpbmtzPC9oMz4KCgk8cD5Td2FwIDxjb2RlPnJvYWRydW5uZXI8L2NvZGU+IGluIHRoaXMg Y29kZSB3aXRoIHlvdXIgZGVsaWNpb3VzIHVzZXJuYW1lIHRvIGdldCB5b3VyIG93biBmZWVk OjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6 c21kX3htbCBkYXRhPSZxdW90O2h0dHA6Ly9mZWVkcy5kZWxpY2lvdXMuY29tL3YyL3Jzcy9y b2FkcnVubmVyJnF1b3Q7CiAgICAgcmVjb3JkPSZxdW90O2l0ZW0mcXVvdDsgZmllbGRzPSZx dW90O3RpdGxlLCBsaW5rLCBwdWJEYXRlLCBkZXNjcmlwdGlvbiZxdW90OwogICAgIHdyYXB0 YWc9JnF1b3Q7ZGwmcXVvdDsmZ3Q7CiAgICZsdDtkdCZndDsmbHQ7YSBocmVmPSZxdW90O3ts aW5rfSZxdW90OyZndDt7dGl0bGV9Jmx0Oy9hJmd0OyZsdDsvZHQmZ3Q7CiAgICZsdDtkZCZn dDtQb3N0ZWQ6IHtwdWJEYXRlfSZsdDticiAvJmd0O3tkZXNjcmlwdGlvbn0mbHQ7L2RkJmd0 OwombHQ7L3R4cDpzbWRfeG1sJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJlZzIiPkV4 YW1wbGUgMjogdHdpdHRlciBmZWVkPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBj bGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3htbAogICAgIGRhdGE9JnF1b3Q7aHR0cDovL3R3 aXR0ZXIuY29tL3N0YXR1c2VzL3VzZXJfdGltZWxpbmUvdGV4dHBhdHRlcm4ueG1sJnF1b3Q7 CiAgICAgcmVjb3JkPSZxdW90O3N0YXR1cyZxdW90OyBmaWVsZHM9JnF1b3Q7aWQsIHRleHQs IGNyZWF0ZWRfYXQmcXVvdDsgc2tpcD0mcXVvdDt1c2VyJnF1b3Q7CiAgICAgd3JhcHRhZz0m cXVvdDt1bCZxdW90OyZndDsKICAgJmx0O2xpJmd0OwogICAgICAmbHQ7YSBocmVmPSZxdW90 O2h0dHA6Ly90d2l0dGVyLmNvbS90ZXh0cGF0dGVybi9zdGF0dXNlcy97aWR9JnF1b3Q7Jmd0 OwogICAgICAgICB7Y3JlYXRlZF9hdH0KICAgICAgJmx0Oy9hJmd0OwogICAgICAmbHQ7YnIg LyZndDt7dGV4dH0KICAgJmx0Oy9saSZndDsKJmx0Oy90eHA6c21kX3htbCZndDsKPC9jb2Rl PjwvcHJlPgoKCTxwPk5vdGljZSB0aGF0IHdlIDxjb2RlPnNraXA8L2NvZGU+IHRoZSB3aG9s ZSA8ZW0+dXNlcjwvZW0+IGJsb2NrIGluIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+WE1MPC9z cGFuPiBkYXRhIHN0cmVhbS4gVGhpcyBpcyBmb3IgdHdvIHJlYXNvbnM6PC9wPgoKCTxvbD4K CQk8bGk+aXQgaXMgcmVkdW5kYW50IGluZm9ybWF0aW9uIHRoYXQgYXBwZWFycyBpbiBldmVy eSByZWNvcmQgJiM4MjEyOyB3ZSBhbHJlYWR5IGtub3cgdG8gd2hpY2ggdXNlciB0aGUgZmVl ZCBiZWxvbmdzIGJlY2F1c2UgdGhleXImIzgyMTc7ZSBhbGwgZnJvbSB0aGUgc2FtZSB1c2Vy PC9saT4KCQk8bGk+PGVtPmNyZWF0ZWRfYXQ8L2VtPiBpcyB1c2VkIGluc2lkZSB0aGUgdXNl ciBibG9jayBhcyB3ZWxsIGFzIGluIHRoZSBvdXRlciBzdGF0dXMgYmxvY2sgc28gd2UgZ2V0 IHR3byBkYXRlc3RhbXBzLCB3aGljaCBpcyBub3Qgd2hhdCB3ZSB3YW50IChpZiB3ZSBzaW1w bHkgdXNlZCA8Y29kZT5jb25jYXQ9JnF1b3Q7MCZxdW90OzwvY29kZT4gdG8gb25seSBncmFi IG9uZSBvZiB0aGUgY3JlYXRlZF9hdCBlbnRyaWVzLCB0aGUgbGFzdCBvbmUgd291bGQgcHJl dmFpbCAmIzgyMTI7IHRoZSBvbmUgZnJvbSB0aGUgdXNlciBibG9jayk8L2xpPgoJPC9vbD4K CjwvZGl2Pgo8IS0tICoqKiBCRUdJTiBQTFVHSU4gQ1NTICoqKiAtLT4KPHN0eWxlIHR5cGU9 InRleHQvY3NzIj4KI3NtZF9oZWxwIHsgbGluZS1oZWlnaHQ6MS41IDt9CiNzbWRfaGVscCBj b2RlIHsgZm9udC13ZWlnaHQ6Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIs IGNvdXJpZXIsIG1vbm9zcGFjZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRf aGVscCBjb2RlLmJsb2NrIHsgZm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRl ZCAjOTk5OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJn aW46MTBweCAxMHB4IDIwcHg7IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgYTpsaW5rLCAj c21kX2hlbHAgYTp2aXNpdGVkIHsgY29sb3I6ICMwMGM7IHRleHQtZGVjb3JhdGlvbjogbm9u ZTsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9 CiNzbWRfaGVscCBhOmhvdmVyLCAjc21kX2hlbHAgYTphY3RpdmUgeyBjb2xvcjogYmx1ZTsg dGV4dC1kZWNvcmF0aW9uOiBub25lOyBib3JkZXItYm90dG9tOiAycHggc29saWQgYmx1ZTsg cGFkZGluZy1ib3R0b206MXB4O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6 IDIwcHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50 ZXI7IH0KI3NtZF9oZWxwIGgyIHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBw YWRkaW5nOjEwcHggMCAwOyBjb2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5z LXNlcmlmOyB9CiNzbWRfaGVscCBoMyB7IGNvbG9yOiAjMDc5OyBmb250OiBib2xkIDEycHgg QXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAw IDA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGlu ZTt9CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsg bGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06 IHVwcGVyY2FzZTsgfQojc21kX2hlbHAgLmF0bm0geyBmb250LXdlaWdodDpib2xkOyBjb2xv cjojMzNkOyB9CiNzbWRfaGVscCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFw eCBkb3R0ZWQgIzk5OTsgfQojc21kX2hlbHAgdGFibGUge3dpZHRoOjkwJTsgdGV4dC1hbGln bjpjZW50ZXI7IHBhZGRpbmctYm90dG9tOjFlbTt9CiNzbWRfaGVscCB0ZCwgI3NtZF9oZWxw IHRoIHtib3JkZXI6MXB4IHNvbGlkICM5OTk7IHBhZGRpbmc6LjVlbSAwO30KI3NtZF9oZWxw IHVsIHsgbGlzdC1zdHlsZS10eXBlOnNxdWFyZTsgfQojc21kX2hlbHAgLnJlcXVpcmVkIHtj b2xvcjpyZWQ7fQojc21kX2hlbHAgbGkgeyBtYXJnaW46NXB4IDIwcHggNXB4IDMwcHg7IH0K I3NtZF9oZWxwIC5icmVhayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+CjwhLS0gKioq IEVORCBQTFVHSU4gQ1NTICoqKiAtLT4KIjtzOjM6Im1kNSI7czozMjoiZjhlY2UzM2U5Mzk0 NjUyODk2NDViNzMxNDYyMDhkNmEiO30=