# Name: smd_each v0.11 # Type: Client side plugin # Iterate over TXP, URL or smd_vars variables # Author: Stef Dawson # URL: http://stefdawson.com/ # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YTo5OntzOjQ6Im5hbWUiO3M6ODoic21kX2VhY2giO3M6NjoiYXV0aG9yIjtzOjExOiJTdGVm IERhd3NvbiI7czoxMDoiYXV0aG9yX3VyaSI7czoyMjoiaHR0cDovL3N0ZWZkYXdzb24uY29t LyI7czo3OiJ2ZXJzaW9uIjtzOjQ6IjAuMTEiO3M6MTE6ImRlc2NyaXB0aW9uIjtzOjQzOiJJ dGVyYXRlIG92ZXIgVFhQLCBVUkwgb3Igc21kX3ZhcnMgdmFyaWFibGVzIjtzOjQ6ImNvZGUi O3M6ODMwMjoiLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQ0KLy8gSXRlcmF0ZSBvdmVyIGFyYml0cmFyeSBtYXRjaGlu ZyB2YXJpYWJsZXMsIGVpdGhlciBmcm9tIFRYUCBmaWVsZHMgb3Igb24gdGhlIFVSTCBsaW5l DQovLyBieSBTdGVmIERhd3Nvbg0KZnVuY3Rpb24gc21kX2VhY2goJGF0dHMsICR0aGluZz0n Jykgew0KCWdsb2JhbCAkcHJldGV4dCwgJHRoaXNhcnRpY2xlLCAkdGhpc2ZpbGUsICR0aGlz bGluaywgJHZhcmlhYmxlOw0KDQoJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ3R5cGUnID0+ ICdmaWVsZCcsDQoJCSdpbmNsdWRlJyA9PiAnJywNCgkJJ2V4Y2x1ZGUnID0+ICcnLA0KCQkn bWF0Y2gnID0+ICcnLA0KCQknbWF0Y2h3aXRoJyA9PiAnbmFtZScsDQoJCSdzdWJzZXQnID0+ ICcwJywNCgkJJ2NvbGxhdGUnID0+ICcnLA0KCQknZm9ybScgPT4gJycsDQoJCSdkZWxpbScg PT4gJywnLA0KCQkncGFyYW1kZWxpbScgPT4gJzonLA0KCQknb3V0ZGVsaW0nID0+ICcsJywN CgkJJ3dyYXB0YWcnID0+ICcnLA0KCQknYnJlYWsnID0+ICcnLA0KCQknY2xhc3MnID0+ICcn LA0KCQknZGVidWcnID0+ICcwJywNCgkpLCAkYXR0cykpOw0KDQoJLy8gTG9va3VwcyBmb3Ig YWxsb3dhYmxlIG9wdGlvbnMNCgkkdHlwZU9wdHMgPSBhcnJheSgnZmllbGQnLCAndXJsdmFy JywgJ3N2cnZhcicsICdjb29raWUnLCAndHhwdmFyJywgJ2ZpeGVkJyk7DQoJJG1hdGNoT3B0 cyA9IGFycmF5KCduYW1lJywgJ3ZhbHVlJyk7DQoNCgkvLyBWYWxpZGF0ZSB0aGUgb3B0aW9u cw0KCSR0aGluZyA9IChlbXB0eSgkZm9ybSkpID8gJHRoaW5nIDogZmV0Y2hfZm9ybSgkZm9y bSk7DQoJJHRoaW5nID0gKGVtcHR5KCR0aGluZykpID8gJ3t2YXJfdmFsdWV9JyA6ICR0aGlu ZzsNCg0KCSRpbmNsdWRlID0gZG9fbGlzdCgkaW5jbHVkZSwgJGRlbGltKTsNCgkkaW5jbHVk ZSA9ICgkaW5jbHVkZVswXSA9PSAiIikgPyBhcnJheSgpIDogJGluY2x1ZGU7DQoJJGV4Y2x1 ZGUgPSBkb19saXN0KCRleGNsdWRlLCAkZGVsaW0pOw0KCSRleGNsdWRlID0gKCRleGNsdWRl WzBdID09ICIiKSA/IGFycmF5KCkgOiAkZXhjbHVkZTsNCgkkbWF0Y2ggPSBkb19saXN0KCRt YXRjaCwgJGRlbGltKTsNCgkkbWF0Y2ggPSAoJG1hdGNoWzBdID09ICIiKSA/IGFycmF5KCkg OiAkbWF0Y2g7DQoJJG1hdGNod2l0aCA9IGRvX2xpc3QoJG1hdGNod2l0aCwgJGRlbGltKTsN Cglmb3JlYWNoICgkbWF0Y2h3aXRoIGFzICR0aGlzbWF0Y2gpIHsNCgkJJG1hdGNoZXNbXSA9 IChpbl9hcnJheSgkdGhpc21hdGNoLCRtYXRjaE9wdHMpKSA/ICR0aGlzbWF0Y2ggOiAkbWF0 Y2hPcHRzWzBdOw0KCX0NCgkkbWF0Y2hlcyA9IGFycmF5X3VuaXF1ZSgkbWF0Y2hlcyk7DQoN CgkvLyBTZXQgdXAgY29sbGF0ZWQgcXVvdGluZyBpZiBuZWNlc3NhcnkNCglpZiAoJGNvbGxh dGUpIHsNCgkJJHF1b3RlcyA9IGFycmF5KCdTTUROT05FJyk7DQoJCSRjb2xsYXRlT3B0cyA9 IGRvX2xpc3QoJGNvbGxhdGUsICRkZWxpbSk7DQoJCWZvcmVhY2ggKCRjb2xsYXRlT3B0cyBh cyAkb3B0aW9uKSB7DQoJCQkkaW5kZXhlcyA9IGRvX2xpc3QoJG9wdGlvbiwgJHBhcmFtZGVs aW0pOw0KCQkJJGNvbFR5cGUgPSBhcnJheV9zaGlmdCgkaW5kZXhlcyk7DQoJCQkvLyBTdXBw bHlpbmcgJ3F1b3RlJyBvbiBpdHMgb3duIHdpbGwgZW1wdHkgdGhlIHJlbGV2YW50IGFycmF5 LCBpbXBseWluZyAiQUxMIiBmaWVsZHMgYXJlIHRvIGJlIHF1b3RlZA0KCQkJc3dpdGNoICgk Y29sVHlwZSkgew0KCQkJCWNhc2UgInF1b3RlIjoNCgkJCQkJJHF1b3RlcyA9ICRpbmRleGVz Ow0KCQkJCQlicmVhazsNCgkJCX0NCgkJfQ0KCX0NCg0KCS8vIE1ha2UgdXAgYW4gYXJyYXkg b2YgbmFtZSA9PiB2YWx1ZSBwYWlycyBwb3B1bGF0ZWQgZnJvbSB0aGUgYXJyYXlzIG9mIHRo ZSBjaG9zZW4gJHR5cGVzDQoJJHR5cGVzID0gYXJyYXkoKTsNCgkkdmFycyA9IGFycmF5KCk7 DQoJJHR5cGUgPSBkb19saXN0KCR0eXBlLCAkZGVsaW0pOw0KCWZvcmVhY2ggKCR0eXBlIGFz ICR0aGlzdHlwZSkgew0KCQlzd2l0Y2ggKCR0aGlzdHlwZSkgew0KCQkJY2FzZSAidXJsdmFy IjoNCgkJCQlpZiAoJF9QT1NUKSAkdmFycyA9IHNtZF9lYWNoX2dyYWIoJF9QT1NULCAkdmFy cywgJ2RvU3BlY2lhbCwgZG9TdHJpcFRhZ3MnLCAkZGVsaW0sICRzdWJzZXQpOw0KCQkJCWlm ICgkX0dFVCkgJHZhcnMgPSBzbWRfZWFjaF9ncmFiKCRfR0VULCAkdmFycywgJ2RvU3BlY2lh bCwgZG9TdHJpcFRhZ3MnLCAkZGVsaW0sICRzdWJzZXQpOw0KCQkJCWJyZWFrOw0KCQkJY2Fz ZSAic3ZydmFyIjoNCgkJCQlpZiAoJF9TRVJWRVIpICR2YXJzID0gc21kX2VhY2hfZ3JhYigk X1NFUlZFUiwgJHZhcnMsICdkb1NwZWNpYWwsIGRvU3RyaXBUYWdzJywgJGRlbGltLCAkc3Vi c2V0KTsNCgkJCQlicmVhazsNCgkJCWNhc2UgImNvb2tpZSI6DQoJCQkJaWYgKCRfQ09PS0lF KSAkdmFycyA9IHNtZF9lYWNoX2dyYWIoJF9DT09LSUUsICR2YXJzLCAnZG9TcGVjaWFsLCBk b1N0cmlwVGFncycsICRkZWxpbSwgJHN1YnNldCk7DQoJCQkJYnJlYWs7DQoJCQljYXNlICJ0 eHB2YXIiOg0KCQkJCWlmICgkdmFyaWFibGUpICR2YXJzID0gc21kX2VhY2hfZ3JhYigkdmFy aWFibGUsICR2YXJzLCAnJywgJGRlbGltLCAkc3Vic2V0KTsNCgkJCQlicmVhazsNCgkJCWNh c2UgImZpeGVkIjoNCgkJCQkkbmV3dmFycyA9IGFycmF5KCk7DQoJCQkJZm9yZWFjaCAoJGlu Y2x1ZGUgYXMgJGtleSA9PiAkdmFsdWUpIHsNCgkJCQkJJHN1YnMgPSBkb19saXN0KCR2YWx1 ZSwgJHBhcmFtZGVsaW0pOw0KCQkJCQlpZiAoY291bnQoJHN1YnMpID4gMSkgew0KCQkJCQkJ JG5ld3ZhciA9IGFycmF5X3NoaWZ0KCRzdWJzKTsNCgkJCQkJCSRleHRyYXZhcnNbJG5ld3Zh cl0gPSBqb2luKCRkZWxpbSwgJHN1YnMpOw0KCQkJCQkJLy8gVGhlIG5ldyB2YXJpYWJsZSdz IHZhbHVlcyBoYXZlIGJlZW4gZXh0cmFjdGVkIGFuZCBzdG9yZWQsIHNvIG92ZXJ3cml0ZSB0 aGUgYXJyYXkgZW50cnkgd2l0aCBqdXN0IHRoZSB2YXJpYWJsZSBuYW1lDQoJCQkJCQkkaW5j bHVkZVska2V5XSA9ICRuZXd2YXI7DQoJCQkJCX0NCgkJCQl9DQoJCQkJaWYgKCRleHRyYXZh cnMpICR2YXJzID0gc21kX2VhY2hfZ3JhYigkZXh0cmF2YXJzLCAkdmFycywgJ2RvU3RyaXBU YWdzJywgJGRlbGltLCAkc3Vic2V0KTsNCgkJCQlicmVhazsNCgkJCWNhc2UgImZpZWxkIjoN CgkJCWNhc2UgImRlZmF1bHQiOg0KCQkJCWlmICgkdGhpc2ZpbGUpICR2YXJzID0gc21kX2Vh Y2hfZ3JhYigkdGhpc2ZpbGUsICR2YXJzLCAnJywgJGRlbGltLCAkc3Vic2V0KTsNCgkJCQlp ZiAoJHRoaXNsaW5rKSAkdmFycyA9IHNtZF9lYWNoX2dyYWIoJHRoaXNsaW5rLCAkdmFycywg JycsICRkZWxpbSwgJHN1YnNldCk7DQoJCQkJaWYgKCRwcmV0ZXh0KSAkdmFycyA9IHNtZF9l YWNoX2dyYWIoJHByZXRleHQsICR2YXJzLCAnJywgJGRlbGltLCAkc3Vic2V0KTsNCgkJCQlp ZiAoJHRoaXNhcnRpY2xlKSAkdmFycyA9IHNtZF9lYWNoX2dyYWIoJHRoaXNhcnRpY2xlLCAk dmFycywgJ2RvU3RyaXBUYWdzJywgJGRlbGltLCAkc3Vic2V0KTsNCgkJCQlicmVhazsNCgkJ fQ0KCX0NCg0KCWlmICgkZGVidWcpIHsNCgkJZWNobyAiKysgVkFSSUFCTEUgUE9PTCArKyI7 DQoJCWRtcCgkdmFycyk7DQoJfQ0KDQoJLy8gRmlsdGVyIHRoZSBhcnJheSBpZiBuZWNlc3Nh cnkgaW50byBhIHNtYWxsZXIgYXJyYXkgb2YgZGVzaXJlZCBlbGVtZW50cw0KCSRmaWx0ZXJ2 YXJzID0gYXJyYXkoKTsNCg0KCS8vIE5hbWVkIHZhcmlhYmxlcyBhcmUgYWx3YXlzIGNvcGll ZCBhY3Jvc3MNCglpZiAoJGluY2x1ZGUpIHsNCgkJZm9yZWFjaCAoJGluY2x1ZGUgYXMgJHRo aXNuYW1lKSB7DQoJCQlpZiAoJHRoaXNuYW1lICE9ICIiKSB7DQoJCQkJJHJlID0gJy8oJy4k dGhpc25hbWUuJyhfWzAtOV0qKT8pLyc7DQoJCQkJJG51bSA9IHByZWdfbWF0Y2hfYWxsKCRy ZSwgam9pbigkZGVsaW0sYXJyYXlfa2V5cygkdmFycykpLCAka2V5bmFtZXMpOw0KCQkJCWZv ciAoJGN0ciA9IDA7ICRjdHIgPCAkbnVtOyAkY3RyKyspIHsNCgkJCQkJJGZpbHRlcnZhcnNb JGtleW5hbWVzWzBdWyRjdHJdXSA9ICR2YXJzWyRrZXluYW1lc1swXVskY3RyXV07DQoJCQkJ fQ0KCQkJfQ0KCQl9DQoJfQ0KDQoJLy8gQW55IG5hbWVzL3ZhbHVlcyBtYXRjaGluZyAkbWF0 Y2ggYXJlIGFsc28gYWRkZWQNCglpZiAoJG1hdGNoKSB7DQoJCWZvcmVhY2ggKCR2YXJzIGFz ICRrZXkgPT4gJHZhbCkgew0KCQkJaWYgKGluX2FycmF5KCJuYW1lIiwgJG1hdGNoZXMpICYm ICghYXJyYXlfa2V5X2V4aXN0cygka2V5LCAkZmlsdGVydmFycykpKSB7DQoJCQkJZm9yZWFj aCAoJG1hdGNoIGFzICR0aGlzbWF0Y2gpIHsNCgkJCQkJaWYgKCR0aGlzbWF0Y2ggJiYgc3Ry cG9zKCRrZXksICR0aGlzbWF0Y2gpICE9PSBmYWxzZSkgew0KCQkJCQkJaWYgKCRkZWJ1Zykg ew0KCQkJCQkJCWRtcCgiQURESU5HICIuJGtleS4iIChmcm9tIG5hbWUpICIpOw0KCQkJCQkJ fQ0KCQkJCQkJJGZpbHRlcnZhcnNbJGtleV0gPSAkdmFsOw0KCQkJCQkJYnJlYWs7DQoJCQkJ CX0NCgkJCQl9DQoJCQl9DQoJCQkvLyBObyBwb2ludCBjaGVja2luZyB0aGUgdmFsdWVzIGlm IHRoZSB2YXJpYWJsZSBoYXMgYWxyZWFkeSBiZWVuIGFkZGVkIHRvIHRoZSBmaWx0ZXJlZCBs aXN0DQoJCQlpZiAoaW5fYXJyYXkoInZhbHVlIiwgJG1hdGNoZXMpICYmICghYXJyYXlfa2V5 X2V4aXN0cygka2V5LCAkZmlsdGVydmFycykpKSB7DQoJCQkJZm9yZWFjaCAoJG1hdGNoIGFz ICR0aGlzbWF0Y2gpIHsNCgkJCQkJaWYgKCR0aGlzbWF0Y2ggJiYgc3RycG9zKCR2YWwsICR0 aGlzbWF0Y2gpICE9PSBmYWxzZSkgew0KCQkJCQkJaWYgKCRkZWJ1Zykgew0KCQkJCQkJCWRt cCAoIkFERElORyAiLiRrZXkuIiAoZnJvbSB2YWx1ZSkgIik7DQoJCQkJCQl9DQoJCQkJCQkk ZmlsdGVydmFyc1ska2V5XSA9ICR2YWw7DQoJCQkJCQlicmVhazsNCgkJCQkJfQ0KCQkJCX0N CgkJCX0NCgkJfQ0KCX0NCg0KCS8vIFJlbW92ZSBhbnkgZXhjbHVkZWQgdmFyaWFibGVzDQoJ aWYgKCRleGNsdWRlKSB7DQoJCWZvcmVhY2ggKCRleGNsdWRlIGFzICR0aGlzbmFtZSkgew0K CQkJaWYgKCR0aGlzbmFtZSAhPSAiIikgew0KCQkJCSRyZSA9ICcvKCcuJHRoaXNuYW1lLico X1swLTldKik/KS8nOw0KCQkJCSRudW0gPSBwcmVnX21hdGNoX2FsbCgkcmUsIGpvaW4oJGRl bGltLGFycmF5X2tleXMoJGZpbHRlcnZhcnMpKSwgJGtleW5hbWVzKTsNCgkJCQlmb3IgKCRj dHIgPSAwOyAkY3RyIDwgJG51bTsgJGN0cisrKSB7DQoJCQkJCWlmICgkZGVidWcpIHsNCgkJ CQkJCWRtcCgiRVhDTFVESU5HICIuJGtleW5hbWVzWzBdWyRjdHJdKTsNCgkJCQkJfQ0KCQkJ CQl1bnNldCAoJGZpbHRlcnZhcnNbJGtleW5hbWVzWzBdWyRjdHJdXSk7DQoJCQkJfQ0KCQkJ fQ0KCQl9DQoJfQ0KDQoJLy8gSWYgbm8gZmlsdGVycyBhcmUgc3BlY2lmaWVkDQoJaWYgKCEk aW5jbHVkZSAmJiAhJGV4Y2x1ZGUgJiYgISRtYXRjaCkgew0KCQkkZmlsdGVydmFycyA9ICR2 YXJzOw0KCX0NCg0KCWlmICgkZGVidWcgJiYgKCRmaWx0ZXJ2YXJzICE9ICR2YXJzKSkgew0K CQllY2hvICIrKyBGSUxURVJFRCBWQVJTICsrIjsNCgkJZG1wKCRmaWx0ZXJ2YXJzKTsNCgl9 DQoNCgkvLyBUaHJvdyB0aGUgbmFtZSA9PiB2YWx1ZSBwYWlycyBhdCB0aGUgZm9ybQ0KCSRv dXQgPSBhcnJheSgpOw0KCSRjb2xsYXRpb25zID0gYXJyYXkoKTsNCgkkY3RyID0gMTsNCglm b3JlYWNoICgkZmlsdGVydmFycyBhcyAka2V5ID0+ICR2YWwpIHsNCgkJJHJlcGxhY2VtZW50 cyA9IGFycmF5KA0KCQkJJ3t2YXJfbmFtZX0nID0+ICRrZXksDQoJCQkne3Zhcl92YWx1ZX0n ID0+ICR2YWwsDQoJCSk7DQoNCgkJLy8gU29sb3MgYXJlIGl0ZW1zIGluIHRoZSBvdXRwdXQg Zm9ybSB0aGF0IHJlcXVpcmUgZGV0YWlscyBmcm9tIGEgc3BlY2lmaWMgcm93LiBVc2VmdWwg b25seSBpbiBjb2xsYXRpb24NCgkJLy8gbW9kZSwgdGhleSBhcmUgYWRkZWQgdG8gdGhlIHJl cGxhY2VtZW50cyBhcnJheSBvbiBhbiBhcy1uZWVkZWQgYmFzaXMgdG8gc2F2ZSBzcGFjZS90 aW1lDQoJCSRzb2xvUkUgPSAnL1x7KFthLXowLTlfXSspIycuJGN0ci4nXH0vJzsNCgkJJG51 bVNvbG9zID0gcHJlZ19tYXRjaF9hbGwoJHNvbG9SRSwgJHRoaW5nLCAkc29sb3MpOw0KCQlm b3IgKCRzb2xvQ3RyID0gMDsgJHNvbG9DdHIgPCAkbnVtU29sb3M7ICRzb2xvQ3RyKyspIHsN CgkJCSRmaWVsZG5hbWUgPSAneycuJHNvbG9zWzFdWyRzb2xvQ3RyXS4nIycuJGN0ci4nfSc7 DQoJCQkkZ3JhYmZpZWxkID0gJ3snLiRzb2xvc1sxXVskc29sb0N0cl0uJ30nOw0KCQkJJHJl cGxhY2VtZW50c1skZmllbGRuYW1lXSA9ICRyZXBsYWNlbWVudHNbJGdyYWJmaWVsZF07DQoJ CX0NCg0KCQlpZiAoJGRlYnVnKSB7DQoJCQllY2hvICIrKyBSRVBMQUNFTUVOVCAjJGN0ciAr KyI7DQoJCQlkbXAoJHJlcGxhY2VtZW50cyk7DQoJCX0NCgkJLy8gSW4gY29sbGF0ZSBtb2Rl IHRoZSBmb3JtIGlzIG9ubHkgcGFyc2VkIGF0IHRoZSBlbmQ6IGJ1aWxkIGEgY29sbG9zYWwg bXVsdGktZGltZW5zaW9uIGFycmF5IG9mIGFsbCBpdGVtcyBoZXJlDQoJCWlmICgkY29sbGF0 ZSkgew0KCQkJZm9yZWFjaCAoJHJlcGxhY2VtZW50cyBhcyAkZGVmTmFtZSA9PiAkZGVmVmFs KSB7DQoJCQkJJGNvbGxhdGlvbnNbJGRlZk5hbWVdW10gPSAkZGVmVmFsOw0KCQkJfQ0KCQl9 IGVsc2Ugew0KCQkJJG91dFtdID0gcGFyc2Uoc3RydHIoJHRoaW5nLCAkcmVwbGFjZW1lbnRz KSk7DQoJCX0NCg0KCQkkY3RyKys7DQoJfQ0KDQoJLy8gSGFuZGxlIHF1b3Rpbmcgb2YgY29s bGF0aW9ucw0KCWlmICgkY29sbGF0ZSkgew0KCQlmb3JlYWNoICgkY29sbGF0aW9ucyBhcyAk aXRlbSA9PiAkbGlzdCkgew0KCQkJLy8gUXVvdGUgdGhlIGxpc3RzIGlmIHJlcXVpcmVkDQoJ CQkkbGlzdCA9IChlbXB0eSgkcXVvdGVzKSB8fCBpbl9hcnJheSgkaXRlbSwgJHF1b3Rlcykp ID8gZG9BcnJheSgkbGlzdCwgJ2RvUXVvdGUnKSA6ICRsaXN0Ow0KCQkJJGNvbGxhdGlvbnNb JGl0ZW1dID0gaW1wbG9kZSgkb3V0ZGVsaW0sICRsaXN0KTsNCgkJfQ0KCQlpZiAoJGRlYnVn KSB7DQoJCQllY2hvICIrKyBDT0xMQVRJT05TICsrIjsNCgkJCWRtcCgkY29sbGF0aW9ucyk7 DQoJCX0NCgkJJG91dFtdID0gcGFyc2Uoc3RydHIoJHRoaW5nLCAkY29sbGF0aW9ucykpOw0K CX0NCg0KCXJldHVybiBkb1dyYXAoJG91dCwgJHdyYXB0YWcsICRicmVhaywgJGNsYXNzKTsN Cn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQ0KLy8gVGFrZSBhbiBhcnJheSBvZiBuYW1lLXZhbHVlIHBhaXJz LCBwcm9jZXNzIGFuZCBjb21iaW5lIHRoZW0gd2l0aCB3aGF0IGlzIGFscmVhZHkgaW4gJG91 dC4NCi8vIEhhbmRsZSBzdWItbGlzdHMgYXMgd2VsbA0KZnVuY3Rpb24gc21kX2VhY2hfZ3Jh YigkaXRlbSwgJG91dD0nJywgJHByb2M9JycsICRkbG09JywnLCAkc3ViPTApIHsNCgkkb3V0 ID0gKCRvdXQpID8gJG91dCA6IGFycmF5KCk7DQoJJHByb2MgPSBkb19saXN0KCRwcm9jLCAk ZGxtKTsNCgkkcHJvYyA9ICgkcHJvY1swXSA9PSAiIikgPyBhcnJheSgpIDogJHByb2M7DQoN Cgl3aGlsZSAobGlzdCgka2V5LCAkdmFsKSA9IGVhY2goJGl0ZW0pKSB7DQoJCSR2YWwgPSAo aXNfYXJyYXkoJHZhbCkpID8gam9pbigkZGxtLCAkdmFsKSA6ICR2YWw7DQoJCWlmICgkc3Vi KSB7DQoJCQlpZiAoJHN1YiA9PSAxKSB7DQoJCQkJLy8gQWRkIHRoZSBjb21wbGV0ZSBlbGVt ZW50IGJlZm9yZSBhdHRlbXB0aW5nIHRvIHNwbGl0IGl0DQoJCQkJZm9yZWFjaCgkcHJvYyBh cyAkb3ApIHsNCgkJCQkJJHZhbCA9ICRvcCgkdmFsKTsNCgkJCQl9DQoJCQkJJG91dFska2V5 XSA9ICR2YWw7DQoJCQl9DQoJCQkkdmFscyA9IGRvX2xpc3QoJHZhbCwgJGRsbSk7DQoJCQkk dmFscyA9IChjb3VudCgkdmFscyk9PTEpID8gYXJyYXkoKSA6ICR2YWxzOw0KCQkJJGN0ciA9 IDE7DQoJCQlmb3JlYWNoICgkdmFscyBhcyAkc3VidmFsKSB7DQoJCQkJZm9yZWFjaCgkcHJv YyBhcyAkb3ApIHsNCgkJCQkJJHN1YnZhbCA9ICRvcCgkc3VidmFsKTsNCgkJCQl9DQoJCQkJ JG91dFska2V5LidfJy4kY3RyKytdID0gJHN1YnZhbDsNCgkJCX0NCgkJfSBlbHNlIHsNCgkJ CWZvcmVhY2goJHByb2MgYXMgJG9wKSB7DQoJCQkJJHZhbCA9ICRvcCgkdmFsKTsNCgkJCX0N CgkJCSRvdXRbJGtleV0gPSAkdmFsOw0KCQl9DQoJfQ0KCXJldHVybiAkb3V0Ow0KfSI7czo0 OiJ0eXBlIjtzOjE6IjAiO3M6NDoiaGVscCI7czoxNjE1NDoiCTxwPjxkaXYgaWQ9InNtZF9o ZWxwIj48L3A+CgoJPGgxIGlkPSJ0b3AiPnNtZF9lYWNoPC9oMT4KCgk8aDIgaWQ9ImZlYXR1 cmVzIj5GZWF0dXJlczwvaDI+CgoJPHVsPgoJCTxsaT5JdGVyYXRlIG92ZXIgYW55IHZhcmlh YmxlcyB5b3UgY2FuIGdldCB5b3VyIGhhbmRzIG9uLiBUaGVzZSBjYW4gYmUgYW55dGhpbmcg ZnJvbSB0aGUgY3VycmVudCBhcnRpY2xlIChjdXN0b20gZmllbGQsIGFydGljbGVfaW1hZ2Us IGV0YyksIGFueSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPi9TRVJWRVIgdmFyaWFi bGUgb3IgY29va2llIChzdWJqZWN0IHRvIG5vcm1hbCBlc2NhcGluZyBydWxlcykgb3IgYW55 IDxjb2RlPiZsdDt0eHA6dmFyaWFibGUgLyZndDs8L2NvZGU+PC9saT4KCQk8bGk+SW5jbHVk ZSBvciBleGNsdWRlIHBhcnRpY3VsYXIgdmFyaWFibGVzLCBvciBvbmx5IGNob29zZSB2YXJp YWJsZXMgdGhhdCBtYXRjaCBwYXJ0aWN1bGFyIHRleHQ8L2xpPgoJCTxsaT5JdGVyYXRlIG92 ZXIgc3Vic2V0cyBvZiBkYXRhIGNvbnRhaW5lZCBpbiBhbnkgZmllbGQ8L2xpPgoJCTxsaT5D aG9vc2UgdG8gcHJvY2VzcyBlYWNoIHZhcmlhYmxlIG9uZSBieSBvbmUgd2l0aCBhIGZvcm0s IG9yIGNvbGxlY3QgdGhlbSB0b2dldGhlciBpbnRvIGEgZGVsaW1pdGVkIGxpc3QgdG8gYmUg cHJvY2Vzc2VkIG9ubHkgb25jZSBieSB0aGUgZm9ybTwvbGk+CgkJPGxpPlByb3ZpZGVzIGZy ZWUgaGVhZGFjaGVzIGlmIHlvdSBkb24mIzgyMTc7dCBrZWVwIHlvdXIgd2l0cyBhYm91dCB5 b3U8L2xpPgoJPC91bD4KCgk8aDIgaWQ9ImF1dGhvciI+QXV0aG9yPC9oMj4KCgk8cD48YSBo cmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vY29tbWVudEZvcm0iPlN0ZWYgRGF3c29uPC9h Pi4gRm9yIG90aGVyIHNvZnR3YXJlIGJ5IG1lLCBvciB0byBtYWtlIGEgZG9uYXRpb24sIHNl ZSB0aGUgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL3N3Ij5zb2Z0d2FyZSBwYWdl PC9hPi48L3A+CgoJPGgyIGlkPSJpbnN0YWxsIj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxh dGlvbjwvaDI+CgoJPHA+RG93bmxvYWQgdGhlIHBsdWdpbiBmcm9tIGVpdGhlciA8YSBocmVm PSJodHRwOi8vdGV4dHBhdHRlcm4ub3JnL3BsdWdpbnMvOTg2L3NtZF9lYWNoIj50ZXh0cGF0 dGVybi5vcmc8L2E+LCBvciB0aGUgc29mdHdhcmUgcGFnZSBhYm92ZSwgcGFzdGUgdGhlIGNv ZGUgaW50byB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gQWRtaW4gLSZndDsg UGx1Z2lucyBwYW5lLCBpbnN0YWxsIGFuZCBlbmFibGUgdGhlIHBsdWdpbi4gVmlzaXQgdGhl IDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVybi5jb20vdmlld3RvcGljLnBocD9p ZD0yNzQ2NCI+Zm9ydW0gdGhyZWFkPC9hPiBmb3IgbW9yZSBpbmZvIG9yIHRvIHJlcG9ydCBh IGJ1Zy9mZWF0dXJlIHJlcXVlc3QuPC9wPgoKCTxwPlRvIHJlbW92ZSB0aGUgcGx1Z2luLCBz aW1wbHkgZGVsZXRlIGl0IGZyb20gdGhlIEFkbWluLSZndDtQbHVnaW5zIHRhYi48L3A+CgoJ PGgyIGlkPSJ1c2FnZSI+VXNhZ2U8L2gyPgoKCTxwPkZvciBzb21lIGlkZWFzIG9uIHVzYWdl IHNjZW5hcmlvcywgc2VlIHRoZSA8YSBocmVmPSIjZXhhbXBsZXMiPmV4YW1wbGVzPC9hPi48 L3A+CgoJPGgzIGNsYXNzPSJ0YWcgIiBpZD0ic21kX2VhY2giPnNtZF9lYWNoPC9oMz4KCgk8 cCBjbGFzcz0idGFnLXN1bW1hcnkiPlBsYWNlIG9uZSBvciBtb3JlIHNtZF9lYWNoIHRhZ3Mg aW4gYW55IGFydGljbGUsIHBhZ2Ugb3IgZm9ybSwgc3VwcGx5IGFueSBvZiB0aGUgZm9sbG93 aW5nIG9wdGlvbnMgdG8gY29uZmlndXJlIGl0IGFuZCB1c2UgYSBmb3JtIChvciBjb250YWlu ZXIpIHRvIGRlZmluZSB3aGF0IHRvIGRvIHdpdGggZWFjaCBtYXRjaGluZyB2YXJpYWJsZS48 L3A+CgoJPHA+SW4gYSBudXRzaGVsbCwgaXQgZ3JhYnMgZXZlcnkgYXJyYXkgZnJvbSB0aGUg cGxhY2VzIHlvdSBzcGVjaWZ5LCBhbGxvd3MgeW91IHRvIGZpbHRlciB0aGUgYXJyYXkgd2l0 aCBtYXRjaGVzIG9yIHNwZWNpZmljIGl0ZW1zLCB0aGVuIGFzc2lnbnMgZWFjaCBzdWNjZXNz aXZlIG5hbWUvdmFsdWUgcGFpciB0byB0d28gcmVwbGFjZW1lbnQgdGFncyB0aGF0IHlvdSBj YW4gdXNlIGluIHlvdXIgZm9ybSB0byBkbyBzdHVmZi4gWW91IGNvdWxkIHNpbXBseSBkaXNw bGF5IHRoZSB2YWx1ZXMgb3IgcG9wdWxhdGUgbmV3IHRhYmxlcyB3aXRoIHRoZW0sIHBsdWcg dmFsdWVzIGludG8gcXVlcmllcywgY3JlYXRlIHNtZF92YXJzLCB0ZXN0IHRoZSB2YWx1ZXMg d2l0aCBzbWRfaWYsIHlvdSBuYW1lIGl0LjwvcD4KCgk8aDQgaWQ9ImF0dHJpYnV0ZXMiPkF0 dHJpYnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnR5cGU8L3Nw YW4+IDogd2hlcmUgdG8gbG9vayBmb3IgdmFyaWFibGVzLiBUaGV5IGNhbiBiZSBjb21iaW5l ZCBpbnRvIGEgY29tbWEtc2VwYXJhdGVkIGxpc3QgaWYgeW91IHdpc2ggdG8gc2VhcmNoIG1v cmUgdGhhbiBvbmUgcGxhY2UgYXQgb25jZS4gT3B0aW9ucyBhcmU6Cgk8dWw+CgkJPGxpPjxj b2RlPmZpZWxkPC9jb2RlPiA6IGEgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gYXJ0 aWNsZSBmaWVsZCAodGhlIGRlZmF1bHQpPC9saT4KCQk8bGk+PGNvZGU+dXJsdmFyPC9jb2Rl PiA6IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiwgZS5nLiBuYW1lMT12YWwm YW1wO25hbWUyPXZhbCZhbXA7JiM4MjMwOzwvbGk+CgkJPGxpPjxjb2RlPnN2cnZhcjwvY29k ZT4gOiB0aGUgc2VydmVyIGVudmlyb25tZW50IHZhcmlhYmxlczwvbGk+CgkJPGxpPjxjb2Rl PmNvb2tpZTwvY29kZT4gOiBhbnkgdXNlciBjb29raWVzPC9saT4KCQk8bGk+PGNvZGU+dHhw dmFyPC9jb2RlPiA6IGEgdmFsdWUgZnJvbSBhbnkgPGNvZGU+Jmx0O3R4cDp2YXJpYWJsZSAv Jmd0OzwvY29kZT4gdGFnPC9saT4KCQk8bGk+PGNvZGU+Zml4ZWQ8L2NvZGU+IDogc3BlY2lm eSB5b3VyIG93biBsaXN0IG9mIHZhcmlhYmxlcyB0byBpbmplY3QgaW50byB0aGUgbWl4ICh2 aWEgPGNvZGU+aW5jbHVkZTwvY29kZT4pPC9saT4KCTwvdWw+PC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPmluY2x1ZGU8L3NwYW4+IDogYmFzZSBsaXN0IG9mIHZhcmlhYmxlIG5h bWVzIHlvdSBkZWZpbml0ZWx5IHdhbnQgdG8gYmUgcmV0dXJuZWQgaW4gdGhlIHJlc3VsdC4g SWYgeW91IGFyZSB1c2luZyA8Y29kZT5maXhlZDwvY29kZT4gYXMgb25lIG9mIHRoZSA8Y29k ZT50eXBlPC9jb2RlPnMgeW91IGNhbiBhZGQgeW91ciBvd24gdmFyaWFibGVzIGhlcmUsIGRl bGltaXRlZCBieSA8Y29kZT5wYXJhbWRlbGltPC9jb2RlPi4gRm9yIGV4YW1wbGUgPGNvZGU+ aW5jbHVkZT0mcXVvdDtrZXl3b3JkcywgbXlfdmFyOm5vcnRoOnNvdXRoOmVhc3Q6d2VzdCZx dW90OzwvY29kZT4gd291bGQgaW5jbHVkZSB0aGUgPGNvZGU+a2V5d29yZHM8L2NvZGU+IGFy dGljbGUgZmllbGQgYW5kIGNyZWF0ZSA8Y29kZT5teV92YXI8L2NvZGU+LCBnaXZpbmcgaXQg YSB2YWx1ZSBvZiAmIzgyMjA7bm9ydGgsIHNvdXRoLCBlYXN0LCB3ZXN0JiM4MjIxOzwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5leGNsdWRlPC9zcGFuPiA6IGJhc2UgbGlzdCBv ZiB2YXJpYWJsZSBuYW1lcyB5b3UgZGVmaW5pdGVseSBkbyBub3Qgd2FudCB0byBiZSByZXR1 cm5lZCBpbiB0aGUgcmVzdWx0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPm1hdGNo PC9zcGFuPiA6IGxpc3Qgb2YgdGV4dCBzdHJpbmdzIHRvIHNlYXJjaCBmb3IgdG8gcmVmaW5l IHRoZSByZXR1cm5lZCB2YXJpYWJsZXMuIEJ5IGRlZmF1bHQgdGhpcyB3aWxsIG1hdGNoIGFn YWluc3QgPGVtPmV2ZXJ5PC9lbT4gdmFyaWFibGUgaW4gZXZlcnkgbG9jYXRpb24geW91IHNw ZWNpZmllZCBpbiA8Y29kZT50eXBlPC9jb2RlPi4gSXQgaXMgYXV0b21hdGljYWxseSB3aWxk IHNvIHdpbGwgbWF0Y2ggcG9ydGlvbnMgb2YgYSB2YXJpYWJsZTwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5tYXRjaHdpdGg8L3NwYW4+IDogZGVmYXVsdHMgdG8gPGNvZGU+bmFt ZTwvY29kZT4gd2hpY2ggbG9va3Mgb25seSBhdCB0aGUgdmFyaWFibGUmIzgyMTc7cyBuYW1l IGZvciBhIG1hdGNoLiBDYW4gYmUgc2V0IHRvIDxjb2RlPnZhbHVlPC9jb2RlPiB0byBsb29r IGF0IGl0cyB2YWx1ZSBvciA8Y29kZT5uYW1lLCB2YWx1ZTwvY29kZT4gdG8gbG9vayBpbiBi b3RoIGZvciBtYXRjaGVzPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnN1YnNldDwv c3Bhbj4gOiBpZiB5b3Uga25vdyB5b3VyIHZhcmlhYmxlcyBhcmUgZ29pbmcgdG8gY29udGFp biBsaXN0cyB0aGVtc2VsdmVzLCBzcGVjaWZ5IDxjb2RlPnN1YnNldD0mcXVvdDsxJnF1b3Q7 PC9jb2RlPiB0byBoYXZlIHRoZSBwbHVnaW4gYWRkIGVhY2ggcHNldWRvLXZhcmlhYmxlIHRv IHRoZSBhcnJheS4gRm9yIGV4YW1wbGUsIGlmIHlvdSBhcnRpY2xlX2ltYWdlIGZpZWxkIGNv bnRhaW5lZCA8Y29kZT4xNCwgNiwgMTcsIDMsIDk8L2NvZGU+IHlvdSB3b3VsZCBnZXQgZml2 ZSBtb3JlIHZhcmlhYmxlcyBjYWxsZWQgPGNvZGU+YXJ0aWNsZV9pbWFnZV8xPC9jb2RlPiAo dmFsdWU6MTQpLCA8Y29kZT5hcnRpY2xlX2ltYWdlXzI8L2NvZGU+ICh2YWx1ZTogNiksIGFu ZCBzbyBvbi48ZGl2IGNsYXNzPSJicmVhayI+Tm90ZSB0aGF0IHlvdSB3aWxsIGFsc28gZ2V0 IHRoZSBmdWxsIGFydGljbGVfaW1hZ2UgKGFuZCBhbGwgb3RoZXIgbWF0Y2hpbmcgbm9uLXN1 YnNldCB2YXJzKSBpbmNsdWRlZC4gSWYgeW91IHdpc2ggdG8gPGVtPm9ubHk8L2VtPiBzZWUg dmFyaWFibGVzIHRoYXQgY29udGFpbiBzdWJsaXN0cyBvZiBkYXRhLCB1c2UgPGNvZGU+c3Vi c2V0PSZxdW90OzImcXVvdDs8L2NvZGU+PC9kaXY+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPmZvcm08L3NwYW4+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+ IGZvcm0gdG8gZXhlY3V0ZSBmb3IgZXZlcnkgbWF0Y2hpbmcgdmFyaWFibGUuIElmIG5vdCBz cGVjaWZpZWQsIHRoZSBjb250YWluZXIgd2lsbCBiZSB1c2VkLiBJZiB0aGVyZSYjODIxNztz IG5vIGNvbnRhaW5lciwgYSBkZWZhdWx0IGZvcm0gd2l0aCBqdXN0IHRoZSB7dmFyX3ZhbHVl fSBpcyB1c2VkPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNvbGxhdGU8L3NwYW4+ IDogcHJldmVudCB0aGUgPGNvZGU+Zm9ybTwvY29kZT4gYmVpbmcgZXhlY3V0ZWQgZm9yIGV2 ZXJ5IHZhcmlhYmxlLiBJbnN0ZWFkLCBjb2xsZWN0IHRoZSB2YXJpYWJsZSBuYW1lcyBpbnRl cm5hbGx5IGFuZCB0aGVuIHByb2Nlc3MgdGhlIGVudGlyZSBsaXN0IGJ5IHRoZSBmb3JtIG9u Y2Ugb25seSwgYWZ0ZXIgYWxsIHZhcmlhYmxlcyBoYXZlIGJlZW4gcmVhZC4gU2VlIDxhIGhy ZWY9IiNjb2xsYXRlIj5jb2xsYXRlIG1vZGU8L2E+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPmRlbGltPC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIgdG8gdXNlIGZvciBzcGVjaWZ5 aW5nIHBsdWdpbiBvcHRpb25zLiBEZWZhdWx0cyB0byBjb21tYSAoLCk8L2xpPgoJCTxsaT48 c3BhbiBjbGFzcz0iYXRubSI+cGFyYW1kZWxpbTwvc3Bhbj4gOiB0aGUgZGVsaW1pdGVyIHRv IHVzZSBmb3Igc3BlY2lmeWluZyBpbnRlci12YWx1ZSBwbHVnaW4gb3B0aW9ucyAoZm9yIGV4 YW1wbGUgaW4gY29sbGF0ZSBtb2RlKS4gRGVmYXVsdHMgdG8gY29sb24gKDopPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPm91dGRlbGltPC9zcGFuPiA6IHRoZSBkZWxpbWl0ZXIg dG8gdXNlIHRvIHNlcGFyYXRlIGVhY2ggdmFyaWFibGUgZGlzcGxheWVkIGluIGNvbGxhdGUg bW9kZTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj53cmFwdGFnPC9zcGFuPiA6IHRo ZSAoWClIVE1MIHRhZyB0byB3cmFwIHRoZSBmb3JtIGluLCBlLmcuIDxjb2RlPndyYXB0YWc9 JnF1b3Q7dWwmcXVvdDs8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmJy ZWFrPC9zcGFuPiA6IHRoZSAoWClIVE1MIHRhZyB0byB3cmFwIGVhY2ggY2FsbCB0byB0aGUg Zm9ybSBpbiwgZS5nLiA8Y29kZT5icmVhaz0mcXVvdDtsaSZxdW90OzwvY29kZT48L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Y2xhc3M8L3NwYW4+IDogdGhlIDxzcGFuIGNsYXNz PSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIG5hbWUgdG8gZ2l2ZSB0byB0aGUgd3JhcHRhZzwv bGk+Cgk8L3VsPgoKCTxoNCBjbGFzcz0iYXR0cyAiIGlkPSJyZXBzIj5SZXBsYWNlbWVudCB0 YWdzPC9oND4KCgk8cD5Gb3IgZXZleSBtYXRjaGluZyB2YXJpYWJsZSwgeW91IGNhbiB1c2Ug dHdvIHJlcGxhY2VtZW50IHRhZ3MgaW4geW91ciBmb3JtOjwvcD4KCgk8dWw+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdG5tIj57dmFyX25hbWV9PC9zcGFuPiA6IHRoZSB2YXJpYWJsZSBuYW1l PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnt2YXJfdmFsdWV9PC9zcGFuPiA6IHRo ZSB2YXJpYWJsZSYjODIxNztzIHZhbHVlPC9saT4KCTwvdWw+CgoJPHA+VGhlc2UgY2FuIGJl IHVzZWQgZm9yIHdoYXRldmVyIGRldmlvdXMgbWVhbnMgeW91IHNlZSBmaXQuIGUuZy48L3A+ CgoJPHVsPgoJCTxsaT48Y29kZT4mbHQ7dHhwOmFydGljbGVfY3VzdG9tIGlkPSZxdW90O3t2 YXJfdmFsdWV9JnF1b3Q7IC8mZ3Q7PC9jb2RlPiB3aWxsIGRpc3BsYXkgdGhlIGdpdmVuIGFy dGljbGUgZm9yIGVhY2ggbWF0Y2hpbmcgSUQuPC9saT4KCQk8bGk+PGNvZGU+Jmx0O3R4cDph cnRpY2xlIGtleXdvcmRzPSZxdW90O3t2YXJfdmFsdWV9JnF1b3Q7IC8mZ3Q7PC9jb2RlPiBp biBjb2xsYXRlIG1vZGUsIG1pZ2h0IGRpc3BsYXkgdGhlIGdpdmVuIGFydGljbGVzIHRoYXQg aGF2ZSBrZXl3b3JkcyBtYXRjaGluZyBldmVyeSB1c2VyLXN1Ym1pdHRlZCBzZWFyY2ggdGVy bTwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0iY29sbGF0ZSI+Q29sbGF0ZSBtb2RlPC9oMz4KCgk8 cD5JbnN0ZWFkIG9mIHBhcnNpbmcgZWFjaCB2YXJpYWJsZSB3aXRoIHRoZSBmb3JtL2NvbnRh aW5lciwgeW91IG1heSBlbGVjdCB0byBpbnRlcm5hbGx5ICYjODIxNjtjb2xsZWN0JiM4MjE3 OyBhbGwgbWF0Y2hpbmcgdmFyaWFibGVzIGFuZCBvdXRwdXQgdGhlbSBpbiBvbmUgYmlnIGxp c3QgdmlhIHRoZSBmb3JtLiBUaHVzLCB0aGUgZm9ybSBpcyBvbmx5IGNhbGxlZCBvbmNlIGF0 IHRoZSBlbmQuIEl0IG1heSBzZWVtIHVzZWxlc3MgYnV0IGl0IGNhbiBiZSBvZiB2YWx1ZSBm b3IgY3JlYXRpbmcgbGlzdHMgb2YgdGhpbmdzIGZyb20gZWFjaCBtYXRjaGluZyB2YXJpYWJs ZS48L3A+CgoJPHA+U3RhcnRpbmcgc2ltcGx5LCA8Y29kZT5jb2xsYXRlPSZxdW90OzEmcXVv dDs8L2NvZGU+IHN3aXRjaGVzIGNvbGxhdGlvbiBtb2RlIG9uLiBJZiB0aGUgcGx1Z2luIG1h dGNoZWQgMyB2YXJpYWJsZXMgZnJvbSB5b3VyIGFydGljbGUgYW5kIHlvdSB3ZXJlIHRvIHVz ZSB0aGUgcmVwbGFjZW1lbnQgdGFncyBpbiB5b3VyIGZvcm0gbGlrZSB0aGlzOjwvcD4KCjxw cmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPlRoZSBtYXRjaGluZyB2YXJz OiB7dmFyX25hbWV9ID0ge3Zhcl92YWx1ZX0KPC9jb2RlPjwvcHJlPgoKCTxwPnlvdSBtaWdo dCBnZXQgdGhpczo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2Nr Ij5UaGUgbWF0Y2hpbmcgdmFyczogc2VjdGlvbixjYXRlZ29yeTEsY2F0ZWdvcnkyID0gYXJ0 aWNsZSxuZXdzLHBvbGl0aWNzCjwvY29kZT48L3ByZT4KCgk8cD5Db21wYXJlIHRoYXQgd2l0 aCB0aGUgcmVndWxhciBtb2RlLCB3aGljaCBvdXRwdXRzOjwvcD4KCjxwcmUgY2xhc3M9ImJs b2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPlRoZSBtYXRjaGluZyB2YXJzOiBzZWN0aW9uID0g YXJ0aWNsZQpUaGUgbWF0Y2hpbmcgdmFyczogY2F0ZWdvcnkxID0gbmV3cwpUaGUgbWF0Y2hp bmcgdmFyczogY2F0ZWdvcnkyID0gcG9saXRpY3MKPC9jb2RlPjwvcHJlPgoKCTxwPlNvbWV0 aW1lcyBpdCYjODIxNztzIHVzZWZ1bCB0byBiZSBhYmxlIHRvIHB1dCBxdW90ZXMgYXJvdW5k IGVhY2ggaXRlbTsgeW91IGNhbiB0ZWxsIGNvbGxhdGUgbW9kZSB0byBkbyB0aGF0OjwvcD4K Cgk8cD48Y29kZT5jb2xsYXRlPSZxdW90O3F1b3RlOnt2YXJfdmFsdWV9JnF1b3Q7PC9jb2Rl PjwvcD4KCgk8cD5Zb3Ugd291bGQgdGhlbiBnZXQ6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+VGhlIG1hdGNoaW5nIHZhcnM6IHNlY3Rpb24sY2F0ZWdv cnkxLGNhdGVnb3J5MiA9ICYjMzk7YXJ0aWNsZSYjMzk7LCYjMzk7bmV3cyYjMzk7LCYjMzk7 cG9saXRpY3MmIzM5Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhlIGRlbGltaXRlciAoYSBjb21t YSBpbiB0aGlzIGNhc2UpIGNhbiBiZSBvdmVycmlkZGVuIHdpdGggdGhlIDxjb2RlPm91dGRl bGltPC9jb2RlPiBhdHRyaWJ1dGUuIFlvdSBjYW4gcXVvdGUgbW9yZSB0aGFuIG9uZSB0aGlu ZyBhdCBvbmNlIGJ5IHNwZWNpZnlpbmcgdGhlIGl0ZW1zIGFzIGEgZGVsaW1pdGVkIGxpc3Q6 PC9wPgoKCTxwPjxjb2RlPmNvbGxhdGU9JnF1b3Q7cXVvdGU6e3Zhcl9uYW1lfTp7dmFyX3Zh bHVlfSZxdW90OzwvY29kZT48L3A+CgoJPHA+YnV0IHRoZXJlJiM4MjE3O3Mgbm90IG11Y2gg cG9pbnQgYmVjYXVzZSB0aGVyZSBhcmUgb25seSB0d28gcmVwbGFjZW1lbnQgdGFncyBhbmQg eW91IGNhbiB0aHVzIHVzZSB0aGUgc2hvcnRjdXQgPGNvZGU+Y29sbGF0ZT0mcXVvdDtxdW90 ZSZxdW90OzwvY29kZT4gdG8gcXVvdGUgdGhlbSBhbGwuIFRoZSBkZWxpbWl0ZXIgdXNlZCBi ZXR3ZWVuIGl0ZW1zICh0aGUgY29sb24pIGNhbiBiZSBvdmVycmlkZW4gd2l0aCB0aGUgPGNv ZGU+cGFyYW1kZWxpbTwvY29kZT4gYXR0cmlidXRlLjwvcD4KCgk8cD5UaGUgc2Vjb25kIHNw ZWNpYWwgZmVhdHVyZSBvZiBjb2xsYXRpb24gbW9kZSBpcyB0aGF0IHlvdSBkbyBub3QgaGF2 ZSB0byBhbHdheXMgb3V0cHV0IHRoZSBlbnRpcmUgbGlzdC4gWW91IGNhbiBncmFiIGluZGl2 aWR1YWwgZW50aXRpZXMgZnJvbSB3aXRoaW4gdGhlIGludGVybmFsIGFycmF5IGJ5IHVzaW5n IHRoZSAmIzgyMTY7IyYjODIxNzsgbm90YXRpb24gaW4geW91ciBmb3JtOjwvcD4KCjxwcmUg Y2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPnt2YXJfdmFsdWV9IG1pZ2h0IG91 dHB1dCAmIzM5O2FydGljbGUmIzM5OywmIzM5O25ld3MmIzM5OywmIzM5O3BvbGl0aWNzJiMz OTsgKGFzIGJlZm9yZSkKe3Zhcl92YWx1ZSMxfSB3b3VsZCBvbmx5IG91dHB1dCBhcnRpY2xl Cnt2YXJfbmFtZSMzfSB3b3VsZCBvbmx5IG91dHB1dCBjYXRlZ29yeTIKPC9jb2RlPjwvcHJl PgoKCTxwPk5vdGUgdGhhdCB3aGVuIHB1bGxpbmcgb3V0IGluZGl2aWR1YWwgZW50cmllcyB0 aGV5IDxzdHJvbmc+ZG8gbm90PC9zdHJvbmc+IGdldCBxdW90ZXMgYWRkZWQgdG8gdGhlbSwg cmVnYXJkbGVzcyBvZiB3aGV0aGVyIHlvdSB1c2VkIDxjb2RlPnF1b3RlPC9jb2RlPiBvciBu b3QuIFRoaXMgaXMgYmVjYXVzZSBpdCBpcyBhIHNpbmdsZSBpdGVtIHNvIHlvdSBjYW4gZWFz aWx5IHB1dCB0aGUgcXVvdGVzIGluIHRoZSBmb3JtIGl0c2VsZiAodml6OiA8Y29kZT4mcXVv dDt7dmFyX25hbWUjMn0mcXVvdDs8L2NvZGU+KTwvcD4KCgk8aDIgaWQ9ImV4YW1wbGVzIj5F eGFtcGxlczwvaDI+CgoJPGgzIGlkPSJlZzEiPkV4YW1wbGUgMTwvaDM+CgoJPHA+RGlzcGxh eSBlYWNoIGFydGljbGUgaW1hZ2UgZnJvbSBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0IG9mIElE cyBpbiB0aGUgQXJ0aWNsZSBJbWFnZSBmaWVsZC48L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+ PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9lYWNoIGluY2x1ZGU9JnF1b3Q7YXJ0 aWNsZV9pbWFnZSZxdW90OyBzdWJzZXQ9JnF1b3Q7MiZxdW90OyZndDsKICAmbHQ7dHhwOmlt YWdlIGlkPSZxdW90O3t2YXJfdmFsdWV9JnF1b3Q7IC8mZ3Q7CiZsdDsvdHhwOnNtZF9lYWNo Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUgMjwvaDM+CgoJPHA+ RGlzcGxheSBlYWNoIGFydGljbGUgaW1hZ2UgZnJvbSBhIGNvbW1hLXNlcGFyYXRlZCBsaXN0 IG9mIElEcyBpbiB0aGUgQXJ0aWNsZSBJbWFnZSBmaWVsZCwgYW5kIGFsc28gYWxsb3cgSURz IHRvIGJlIGdpdmVuIGluIHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+VVJMPC9zcGFuPiBsaW5l IHZpYSB0aGUgdmFyaWFibGUgbmFtZSA8Y29kZT5teV9pbWFnZV9saXN0PC9jb2RlPiA6PC9w PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRf ZWFjaCB0eXBlPSZxdW90O2ZpZWxkLCB1cmx2YXImcXVvdDsKICAgICBpbmNsdWRlPSZxdW90 O2FydGljbGVfaW1hZ2UsIG15X2ltYWdlX2xpc3QmcXVvdDsKICAgICBzdWJzZXQ9JnF1b3Q7 MiZxdW90OyBmb3JtPSZxdW90O3Zhcm91dCZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJ PHA+QW5kIGluIGZvcm0gPGNvZGU+dmFyb3V0PC9jb2RlPjo8L3A+Cgo8cHJlIGNsYXNzPSJi bG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOmltYWdlIGlkPSZxdW90O3t2YXJf dmFsdWV9JnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBs ZSAzPC9oMz4KCgk8cD5UaGlzIGlzIHNpbXBseSB0byBoaWdobGlnaHQgdGhlIGRpZmZlcmVu Y2VzIGJldHdlZW4gdGhlIHZhcmlvdXMgbWF0Y2hpbmcgbW9kZXMuIExldCYjODIxNztzIHRh a2UgYSBzaW1wbGUgYXJ0aWNsZTo8L3A+CgoJPHVsPgoJCTxsaT5zZWN0aW9uOiBhbmltYWxz PC9saT4KCQk8bGk+dGl0bGUgKHVybF90aXRsZSkgOiBUaGUgbGlvbiAodGhlLWxpb24pPC9s aT4KCQk8bGk+Y2F0ZWdvcnkxOiBtYW1tYWw8L2xpPgoJCTxsaT5jYXRlZ29yeTI6IGRhbmdl cm91czwvbGk+CgkJPGxpPmFydGljbGVfaW1hZ2U6IDI1LCAyOCwgMTI8L2xpPgoJCTxsaT5r ZXl3b3JkczogYmlnLCBjYXQsIG1hbmUsIGZ1ciwgdGVldGgsIHJvYXIsIGNob21wLCBvdWNo PC9saT4KCQk8bGk+Y3VzdG9tMSAoJiM4MjIwO29yaWdpbiYjODIyMTspOiBhZnJpY2E8L2xp PgoJPC91bD4KCgk8cD5UaGVyZSBhcmUgYSB3aG9sZSBob3N0IG9mIG90aGVyIHZhcmlhYmxl cyAoc3dpdGNoIGRlYnVnPSYjODIyMDsxJiM4MjIxOyBvbiB0byBzZWUgdGhlbSBhbGwgZm9y IHlvdXIgY2hvc2VuIDxjb2RlPnR5cGU8L2NvZGU+cykgYnV0IHdlJiM4MjE3O2xsIGNvbmNl bnRyYXRlIG9uIHRoZXNlIGZvciBub3cgdG8ga2VlcCB0aGluZ3Mgc2ltcGxlLjwvcD4KCgk8 dGFibGU+CgkJPHRyPgoJCQk8dGg+dGFnIG9wdGlvbnMgPC90aD4KCQkJPHRoPnZhcnMgcmV0 dXJuZWQgPC90aD4KCQkJPHRoPnJlbWFya3MgPC90aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRk PiBtYXRjaD0mIzgyMjA7Y2F0JiM4MjIxOyA8L3RkPgoJCQk8dGQ+IGNhdGVnb3J5MSwgY2F0 ZWdvcnkyIDwvdGQ+CgkJCTx0ZD4gZGVmYXVsdCBpcyB0byBtYXRjaCBuYW1lIG9ubHkgPC90 ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBtYXRjaD0mIzgyMjA7Y2F0JiM4MjIxOyBtYXRj aHdpdGg9JiM4MjIwO25hbWUsIHZhbHVlJiM4MjIxOyA8L3RkPgoJCQk8dGQ+IGNhdGVnb3J5 MSwgY2F0ZWdvcnkyLCBrZXl3b3JkcywgaWRfa2V5d29yZHMgPC90ZD4KCQkJPHRkPiBub3cg Y2hlY2tzIHZhbHVlIGFzIHdlbGwgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBtYXRj aD0mIzgyMjA7Y2F0JiM4MjIxOyBpbmNsdWRlPSYjODIyMDthcnRpY2xlX2ltYWdlJiM4MjIx OyA8L3RkPgoJCQk8dGQ+IGNhdGVnb3J5MSwgY2F0ZWdvcnkyLCBhcnRpY2xlX2ltYWdlIDwv dGQ+CgkJCTx0ZD4gaW5jbHVkZXMgYXJlIGFsd2F5cyBzZWxlY3RlZCA8L3RkPgoJCTwvdHI+ CgkJPHRyPgoJCQk8dGQ+IG1hdGNoPSYjODIyMDtjYXQmIzgyMjE7IGluY2x1ZGU9JiM4MjIw O2FydGljbGVfaW1hZ2UsIG9yaWdpbiYjODIyMTsgc3Vic2V0PSYjODIyMDsxJiM4MjIxOyA8 L3RkPgoJCQk8dGQ+IGNhdGVnb3J5MSwgY2F0ZWdvcnkyLCBvcmlnaW4sIGFydGljbGVfaW1h Z2UsIGFydGljbGVfaW1hZ2VfMSwgYXJ0aWNsZV9pbWFnZV8yLCBhcnRpY2xlX2ltYWdlXzMg PC90ZD4KCQkJPHRkPiBsb29rZWQgJiM4MjIwO2luc2lkZSYjODIyMTsgZWFjaCB2YXIgdG8g ZmluZCBhbnkgbGlzdHMgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBtYXRjaD0mIzgy MjA7Y2F0JiM4MjIxOyBpbmNsdWRlPSYjODIyMDthcnRpY2xlX2ltYWdlLCBvcmlnaW4mIzgy MjE7IHN1YnNldD0mIzgyMjA7MiYjODIyMTsgPC90ZD4KCQkJPHRkPiBhcnRpY2xlX2ltYWdl XzEsIGFydGljbGVfaW1hZ2VfMiwgYXJ0aWNsZV9pbWFnZV8zIDwvdGQ+CgkJCTx0ZD4gcmV0 dXJuIDxlbT5vbmx5PC9lbT4gZGF0YSBzZXRzIHRoYXQgY29udGFpbiBsaXN0cyBhbmQgcmVt b3ZlcyB0aGUgYWdncmVnYXRlIChiYXNlKSBlbnRyeSA8L3RkPgoJCTwvdHI+CgkJPHRyPgoJ CQk8dGQ+IG1hdGNoPSYjODIyMDtjYXQsIGFydGljbGVfaW1hZ2UmIzgyMjE7IG1hdGNod2l0 aD0mIzgyMjA7bmFtZSx2YWx1ZSYjODIyMTsgc3Vic2V0PSYjODIyMDsyJiM4MjIxOyA8L3Rk PgoJCQk8dGQ+IGFydGljbGVfaW1hZ2VfMSwgYXJ0aWNsZV9pbWFnZV8yLCBhcnRpY2xlX2lt YWdlXzMsIGtleXdvcmRzLCBpZF9rZXl3b3JkcyA8L3RkPgoJCQk8dGQ+IGNoZWNrcyBib3Ro IG5hbWUgYW5kIHZhbHVlIGZvciBlYWNoIG1hdGNoIHRlcm0sIGFuZCBvbmx5IHNob3dzIGl0 ZW1zIHRoYXQgaGF2ZSBsaXN0cyBpbiB0aGVtIChpZiA8Y29kZT5rZXl3b3JkczwvY29kZT4g aGVsZCBqdXN0IG9uZSBpdGVtICYjODIyMDtjYXQmIzgyMjE7IGl0IHdvdWxkIDxlbT5ub3Q8 L2VtPiBiZSBkaXNwbGF5ZWQpIDwvdGQ+CgkJPC90cj4KCTwvdGFibGU+CgoJPHA+Tm90ZSB0 aGF0IGlmIHlvdSBhcmUgdXNpbmcgdGhpcyB0YWcgaW4gYW4gYXJ0aWNsZSwgdGhlICYjODIx Njtib2R5JiM4MjE3OyBtYXkgbWF0Y2ggYmVjYXVzZSBpdCBjb250YWlucyB0aGUgc21kX2Vh Y2ggdGFnIHdoaWNoIGNvbnRhaW5zIHRoZSB2ZXJ5IGluZm9ybWF0aW9uIHlvdSBhcmUgbWF0 Y2hpbmchIEluIHRoaXMgY2FzZSwgYWRkaW5nIDxjb2RlPmV4Y2x1ZGU9JnF1b3Q7Ym9keSZx dW90OzwvY29kZT4gd2lsbCByZW1vdmUgaXQgZnJvbSB0aGUgcmVzdWx0cy48L3A+CgoJPGgz IGlkPSJlZzQiPkV4YW1wbGUgNDwvaDM+CgoJPHA+RnJvbSBhIHBhZ2UgdGVtcGxhdGUsIGFs bG93IHZpc2l0b3JzIHRvIGRpc3BsYXkgYW55IG51bWJlciBvZiBhcnRpY2xlcy48L3A+Cgo8 cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7Zm9ybSBuYW1lPSZx dW90O3Nob3dfYXJ0cyZxdW90OyBhY3Rpb249JnF1b3Q7L215L3Jlc3VsdHMvcGFnZSZxdW90 OyZndDsKICAmbHQ7dHhwOmFydGljbGVfY3VzdG9tIGZvcm09JnF1b3Q7bGlzdF9jaGVja3Mm cXVvdDsKICAgICAgIGNhdGVnb3J5PSZxdW90O2FuaW1hbHMmcXVvdDsgbGltaXQ9JnF1b3Q7 OTk5JnF1b3Q7IC8mZ3Q7CiAgJmx0O2lucHV0IHR5cGU9JnF1b3Q7c3VibWl0JnF1b3Q7IC8m Z3Q7CiZsdDsvZm9ybSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPllvdXIgZm9ybSA8Y29kZT5s aXN0X2NoZWNrczwvY29kZT4gc2ltcGx5IGRpc3BsYXlzIHRoZSBhcnRpY2xlIHRpdGxlIGFu ZCBhIGNoZWNrYm94OjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxv Y2siPiZsdDtsaSZndDsKJmx0O3R4cDp0aXRsZSAvJmd0OyZsdDtpbnB1dCB0eXBlPSZxdW90 O2NoZWNrYm94JnF1b3Q7CiAgICAgbmFtZT0mcXVvdDthcnRpY2xlX2xpc3RzW10mcXVvdDsK ICAgICB2YWx1ZT0mcXVvdDsmbHQ7dHhwOmFydGljbGVfaWQgLyZndDsmcXVvdDsgLyZndDsK Jmx0Oy9saSZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPldoZW4gdGhlIHVzZXIgc3VibWl0cyB0 aGUgZm9ybSB3ZSBjYW4gdXNlIHNtZF9lYWNoIHRvIGZpbmQgd2hpY2ggY2hlY2tib3hlcyBo YXZlIGJlZW4gY2xpY2tlZCBhbmQgc2hvdyB0aGUgcmVsZXZhbnQgYXJ0aWNsZXM6PC9wPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfZWFj aCB0eXBlPSZxdW90O3VybHZhciZxdW90OwogICAgIG1hdGNoPSZxdW90O2FydGljbGVfbGlz dHMmcXVvdDsgc3Vic2V0PSZxdW90OzImcXVvdDsmZ3Q7CiAgJmx0O3R4cDphcnRpY2xlX2N1 c3RvbSBpZD0mcXVvdDt7dmFyX3ZhbHVlfSZxdW90OyAvJmd0OwombHQ7L3R4cDpzbWRfZWFj aCZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPkFsdGVybmF0aXZlbHksIGlmIHlvdSBhcmUgdXNp bmcgYSBjb3B5IG9mIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IHRoYXQgc3VwcG9y dHMgbGlzdHMgaW4gYXJ0aWNsZV9jdXN0b20mIzgyMTc7cyA8Y29kZT5pZDwvY29kZT4gYXR0 cmlidXRlIHlvdSBjYW4gZHJvcCB0aGUgPGNvZGU+c3Vic2V0PC9jb2RlPi48L3A+CgoJPGgy IGlkPSJjaGFuZ2Vsb2ciPkNoYW5nZWxvZzwvaDI+CgoJPHVsPgoJCTxsaT4xMiBKdW4gMDgg fCAwLjEgfCBJbml0aWFsIHJlbGVhc2U8L2xpPgoJCTxsaT4yMiBKdW4gMDggfCAwLjExIHwg QWRkZWQgdHlwZT1maXhlZCAodGhhbmtzIG1yZGFsZSk8L2xpPgoJPC91bD4KCgk8cD48L2Rp dj48L3A+CjwhLS0gLS0tIEJFR0lOIFBMVUdJTiBDU1MgLS0tIC0tPgo8c3R5bGUgdHlwZT0i dGV4dC9jc3MiPgojc21kX2hlbHAgeyBsaW5lLWhlaWdodDoxLjUgO30KI3NtZF9oZWxwIGNv ZGUgeyBmb250LXdlaWdodDpib2xkOyBmb250OiAxMDUlLzEzMCUgIkNvdXJpZXIgTmV3Iiwg Y291cmllciwgbW9ub3NwYWNlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO30KI3NtZF9o ZWxwIGNvZGUuYmxvY2sgeyBmb250LXdlaWdodDpub3JtYWw7IGJvcmRlcjoxcHggZG90dGVk ICM5OTk7IGJhY2tncm91bmQtY29sb3I6ICNmMGU2OGM7IGRpc3BsYXk6YmxvY2s7IG1hcmdp bjoxMHB4IDEwcHggMjBweDsgcGFkZGluZzoxMHB4OyB9CiNzbWRfaGVscCBhOmxpbmssICNz bWRfaGVscCBhOnZpc2l0ZWQgeyBjb2xvcjogIzAwYzsgdGV4dC1kZWNvcmF0aW9uOiBub25l OyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30K I3NtZF9oZWxwIGE6aG92ZXIsICNzbWRfaGVscCBhOmFjdGl2ZSB7IGNvbG9yOiBibHVlOyB0 ZXh0LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBibHVlOyBw YWRkaW5nLWJvdHRvbToxcHg7fQojc21kX2hlbHAgaDEgeyBjb2xvcjogIzM2OTsgZm9udDog MjBweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7IHRleHQtYWxpZ246IGNlbnRl cjsgfQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7IHBh ZGRpbmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250OiAxN3B4IEdlb3JnaWEsIHNhbnMt c2VyaWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICMwNzk7IGZvbnQ6IGJvbGQgMTJweCBB cmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAg MDt0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB0ZXh0LWRlY29yYXRpb246dW5kZXJsaW5l O30KI3NtZF9oZWxwIGg0IHsgZm9udDogYm9sZCAxMXB4IEFyaWFsLCBzYW5zLXNlcmlmOyBs ZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEwcHggMCAwIDt0ZXh0LXRyYW5zZm9ybTog dXBwZXJjYXNlOyB9CiNzbWRfaGVscCAuYXRubSB7IGZvbnQtd2VpZ2h0OmJvbGQ7IGNvbG9y OiMzM2Q7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDojZWVlOyBib3JkZXI6MXB4 IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6OTAlOyB0ZXh0LWFsaWdu OmNlbnRlcjsgcGFkZGluZy1ib3R0b206MWVtO30KI3NtZF9oZWxwIHRkLCAjc21kX2hlbHAg dGgge2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVtIDA7fQojc21kX2hlbHAg dWwgeyBsaXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9CiNzbWRfaGVscCBsaSB7IG1hcmdpbjo1 cHggMjBweCA1cHggMzBweDsgfQojc21kX2hlbHAgLmJyZWFrIHsgbWFyZ2luLXRvcDo1cHg7 IH0KPC9zdHlsZT4KPCEtLSAtLS0gRU5EIFBMVUdJTiBDU1MgLS0tIC0tPgoiO3M6MzoibWQ1 IjtzOjMyOiJkZjlmNTE2YWIxNTViMzc3M2ExNDc4MWIwNDYwYzdlMyI7fQ==