# Name: smd_slimbox v0.31 # Type: Client side plugin # Image gallery lightbox wrapper that can use Slimbox, Litebox, Moonbox, Thickbox etc # 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: # ..................................................................... YTo5OntzOjQ6Im5hbWUiO3M6MTE6InNtZF9zbGltYm94IjtzOjY6ImF1dGhvciI7czoxMToi U3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjMxIjtzOjExOiJkZXNjcmlwdGlvbiI7czo4 MzoiSW1hZ2UgZ2FsbGVyeSBsaWdodGJveCB3cmFwcGVyIHRoYXQgY2FuIHVzZSBTbGltYm94 LCBMaXRlYm94LCBNb29uYm94LCBUaGlja2JveCBldGMiO3M6NDoiY29kZSI7czoxNTQ1Mjoi Ly8gREVQUkVDQVRFRA0KZnVuY3Rpb24gc21kX3NsaW1ib3hfaW5jKCRhdHRzKSB7DQoJZ2xv YmFsICRwcm9kdWN0aW9uX3N0YXR1czsNCglpZiAoaW5fYXJyYXkoJHByb2R1Y3Rpb25fc3Rh dHVzLCBhcnJheSgnZGVidWcnLCAndGVzdGluZycpKSkgew0KCQl0cmlnZ2VyX2Vycm9yKCJz bWRfc2xpbWJveF9pbmMgaXMgbm8gbG9uZ2VyIHN1cHBvcnRlZC4gUGxlYXNlIHJlbW92ZSBp dCBhbmQgaW5jbHVkZSB0aGUgcmVsZXZhbnQgamF2YXNjcmlwdCBsaWJyYXJpZXMgbWFudWFs bHkgb24geW91ciBwYWdlLiIpOw0KCX0NCglyZXR1cm47DQp9DQoNCmZ1bmN0aW9uIHNtZF9z bGltYm94KCRhdHRzLCAkdGhpbmc9JycpIHsNCglyZXF1aXJlX3BsdWdpbignc21kX2xpYicp Ow0KCWdsb2JhbCAkcHJvZHVjdGlvbl9zdGF0dXMsICRwcmV0ZXh0LCAkdGhpc2FydGljbGUs ICRpbWdfZGlyLCAkc21kX3Nib3hMYW5nOw0KDQoJLy8gTUxQIHN1cHBvcnQNCgkkc21kX3Ni b3hTdHIgPSBhcnJheSgNCgkJJ25leHRfbGJsJyA9PiAnTmV4dCcsDQoJCSdwcmV2X2xibCcg PT4gJ1ByZXYnLA0KCSk7DQoJJHNtZF9zYm94TGFuZyA9IG5ldyBzbWRfTUxQKCdzbWRfc2xp bWJveCcsICdzbWRfc2JveCcsICRzbWRfc2JveFN0cik7DQoNCgkvLyAqKiBMT09LVVAgVEFC TEVTDQoJLy8gSG9sZHMgZGF0YWJhc2UgZmllbGQgYXMga2V5IGluZGV4IGFuZCBwbHVnaW4g b3B0aW9uIG5hbWVzIGFzIHZhbHVlLg0KCS8vIFVzZSBhcnJheV9zZWFyY2ggdG8gZmluZCBp ZiB2YWx1ZSBleGlzdHMgYW5kIHJldHVybiBjb3JyZWN0IGtleSBmb3IgdXNlIGluIGRiIGNh bGxzLg0KCSRmaWVsZE1hcCA9IGFycmF5KA0KCQkibmFtZSIgPT4gIm5hbWUiLA0KCQkiaWQi ID0+ICJpZCIsDQoJCSJhbHQiID0+ICJhbHQiLA0KCQkiY2FwdGlvbiIgPT4gImNhcHRpb24i LA0KCQkiY2F0ZWdvcnkiID0+ICJjYXRlZ29yeSIsDQoJCSJhdXRob3IiID0+ICJhdXRob3Ii LA0KCQkiZGF0ZSIgPT4gImRhdGUiLA0KCQkiZXh0IiA9PiAiZXh0IiwNCgkJInciID0+ICJ3 aWR0aCIsDQoJCSJoIiA9PiAiaGVpZ2h0IiwNCgkpOw0KCSRzaG93TG9jcyA9IGFycmF5KCJi ZWxvdyIsImFib3ZlIiwiYWZ0ZXIiLCJiZWZvcmUiLCJvbmNoYW5nZSIpOw0KLy8JJGNsYXNz VHlwZXMgPSBhcnJheV9tZXJnZShhcnJheSgiZ3JvdXAiLCJjZWxsIiwibGluayIsImltZyIs InRodW1idGV4dCIsIm5hdiIsInByZXYiLCJuZXh0IiksJHNob3dMb2NzKTsNCi8vCSRvcGVy YW5kcyA9IGFycmF5KCJjaGFuZ2VzIiwgImNvbnRhaW5zIiwgImVxIiwgImx0IiwgImd0Iiwg Imx0ZSIsICJndGUiLCAibm90Iik7DQoJJHRodW1iaG9sZGVyID0gIjo6U0JPWF9SRVBMOjoi Ow0KDQoJJGF0dGVtcHRNYXRjaCA9IChpc3NldCgkYXR0c1snY2F0ZWdvcnknXSkgfHwgaXNz ZXQoJGF0dHNbJ2ltYWdlaWQnXSkpID8gdHJ1ZSA6IGZhbHNlOw0KDQoJLy8gUGx1Z2luIG9w dGlvbnMNCglleHRyYWN0KGxBdHRzKGFycmF5KA0KCQknZGVsaW0nCQkJCT0+ICcsJywNCgkJ J3BhcmFtZGVsaW0nCQk9PiAnOicsDQoJCSdpbWFnZWlkJwkJCT0+ICcnLA0KCQknY2F0ZWdv cnknCQkJPT4gJycsDQoJCSdzdWJjYXRzJwkJCT0+ICcwJywNCgkJJ3RyaWdnZXInCQkJPT4g J2xpZ2h0Ym94LScsDQoJCSdncm91cG5hbWUnCQkJPT4gJ3NtZCcsDQoJCSd0aHVtYicJCQkJ PT4gJzA6MScsDQoJCSdsaW1pdCcJCQkJPT4gJzAnLA0KCQknbWF4bGltaXQnCQkJPT4gJzk5 OTk5JywNCgkJJ3NvcnQnCQkJCT0+ICdjYXRlZ29yeSBhc2MnLCAvLyB3YXMgb3JkZXJieQ0K CQknb3JkZXJieScJCQk9PiAnJywgLy8gREVQUkVDQVRFRA0KCQknc2hvd3BhZ2VsaW5rcycJ PT4gJzEnLA0KCQknZ2FsbGVyeWlkJwkJCT0+ICc/NDo2JywNCgkJJ2ltYWdlY2FwdGlvbicJ CT0+ICc/Y2FwdGlvbicsDQoJCSd0aHVtYnNpemUnCQkJPT4gJycsDQoJCSd0aHVtYnRleHQn CQkJPT4gJycsDQoJCSd0aHVtYnRleHR3cmFwJwk9PiAnc3BhbicsDQoJCSd0aHVtYnRleHRj bGFzcycJPT4gJycsDQoJCSd3cmFwdGFnJwkJCT0+ICcnLA0KCQknbmF2d3JhcHRhZycJCT0+ ICcnLA0KCQkncHJldmxhYmVsJwkJCT0+ICRzbWRfc2JveExhbmctPmdUeHQoJ3ByZXZfbGJs JyksDQoJCSduZXh0bGFiZWwnCQkJPT4gJHNtZF9zYm94TGFuZy0+Z1R4dCgnbmV4dF9sYmwn KSwNCgkJJ3ByZXZjbGFzcycJCQk9PiAnc21kX3NsaW1ib3hfcHJldicsDQoJCSduZXh0Y2xh c3MnCQkJPT4gJ3NtZF9zbGltYm94X25leHQnLA0KCQknbmF2Y2xhc3MnCQkJPT4gJycsDQoJ CSdjZWxsY2xhc3MnCQkJPT4gJycsDQoJCSdsaW5rY2xhc3MnCQkJPT4gJycsDQoJCSdpbWdj bGFzcycJCQk9PiAnJywNCgkJJ2RlYnVnJwkJCT0+ICcwJywNCgkpLCAkYXR0cykpOw0KDQoJ Ly8gREVQUkVDQVRFRDogQ29udmVydCBvcmRlcmJ5IHRvIHRoZSBuZXcgc29ydC4gUmVtb3Zl IGluIGxhdGVyIHZlcnNpb25zDQoJaWYgKCRvcmRlcmJ5KSB7DQoJCSRzb3J0ID0gc3RyX3Jl cGxhY2UgKCI6IiwgIiAiLCAkb3JkZXJieSk7DQoJCWlmIChpbl9hcnJheSgkcHJvZHVjdGlv bl9zdGF0dXMsIGFycmF5KCdkZWJ1ZycsICd0ZXN0aW5nJykpKSB7DQoJCQl0cmlnZ2VyX2Vy cm9yKCInb3JkZXJieScgaXMgbm93IHJlbmFtZWQgJ3NvcnQnLiBVc2UgYSBzcGFjZSBpbnN0 ZWFkIG9mIGEgY29sb24gdG8gc3BlY2lmeSBzb3J0IG9yZGVyIChlLmcuIG9yZGVyYnk9J2Nh dGVnb3J5OmFzYycgaXMgbm93IHNvcnQ9J2NhdGVnb3J5IGFzYycpLiIpOw0KCQl9DQoJfQ0K CS8vIENhdGVnb3J5IHJlbGllcyBvbiB3aGV0aGVyIGltYWdlaWQgaGFzIGJlZW4gc3BlY2lm aWVkIG9yIG5vdC4NCgkvLyBsQXR0cygpIHdvbid0IGxldCB1cyBoYW5kbGUgdGhpcyBsb2dp YyBzbyBpdCBoYXMgdG8gYmUgZG9uZSBtYW51YWxseQ0KCSRjYXRlZ29yeSA9IGlzc2V0KCRj YXRlZ29yeSkgPyBkb1NsYXNoKCRjYXRlZ29yeSkgOiAoKCRpbWFnZWlkPT0iIikgPyAkcHJl dGV4dFsnYyddOiAnJyk7DQoNCgkvLyBUaGUgZ2FsbGVyeSBpZGVudGlmaWVyIGlzIHVzZWQg Zm9yIGtlZXBpbmcgdHJhY2sgb2YgbmV4dC9wcmV2IHRodW1icGFnZSBsaW5rcy4NCgkvLyBE b24ndCB1c2UgcGFyYW1kZWxpbSBoZXJlIG9yIHRoZSBkZWZhdWx0IG9wdGlvbiBicmVha3MN CgkkZ2FsbElEID0gIiI7DQoJaWYgKCRnYWxsZXJ5aWQgPT0gIiIgfHwgc3Vic3RyKCRnYWxs ZXJ5aWQsMCwxKSA9PSAiPyIpIHsNCgkJLy8gR2VuZXJhdGUgYSB1bmlxdWUgSUQgZm9yIHRo aXMgZ2FsbGVyeSBpbnN0YW5jZQ0KCQkkZ2FsbFRtcCA9IG1kNSgkY2F0ZWdvcnkuJGltYWdl aWQuJG9yZGVyYnkuJGxpbWl0LiRtYXhsaW1pdC4kd3JhcHRhZyk7DQoJCWxpc3QoJGdhbGxM ZW4sICRnYWxsU2tpcCkgPSBleHBsb2RlKCI6Iiwgc3Vic3RyKCRnYWxsZXJ5aWQsMSkpOw0K CQkkZ2FsbExlbiA9ICAoZW1wdHkoJGdhbGxMZW4pKSA/ICI0IiA6ICRnYWxsTGVuOw0KCQkk Z2FsbFNraXAgPSAgKGVtcHR5KCRnYWxsU2tpcCkpID8gIjEiIDogJGdhbGxTa2lwOw0KCQlm b3IgKCRpZHggPSAwLCAkY250ID0gMDsgJGNudCA8ICRnYWxsTGVuOyAkY250KyssICRpZHgg PSAoKCRpZHgrJGdhbGxTa2lwKSAlIHN0cmxlbigkZ2FsbFRtcCkpKSB7DQoJCQkkZ2FsbElE IC49ICRnYWxsVG1wWyRpZHhdOw0KCQl9DQoJfSBlbHNlIHsNCgkJJGdhbGxJRCA9ICRnYWxs ZXJ5aWQ7DQoJfQ0KDQoJLy8gU2V0IHVwIHRoZSB2YXJpYWJsZXMgZnJvbSB0aGUgdGh1bWIg b3B0aW9uLg0KCS8vIERvbid0IHVzZSBwYXJhbWRlbGltIGhlcmUgb3IgdGhlIGRlZmF1bHQg b3B0aW9uIGJyZWFrcw0KCSR0aHVtYk9wdHMgPSBkb19saXN0KCR0aHVtYiwgIjoiKTsNCglp ZiAoY291bnQoJHRodW1iT3B0cykgPT0gMSkgew0KCQkkZnVsbG1vZCA9ICgkdGh1bWJPcHRz WzBdID09IDEpID8gInQiIDogIiI7DQoJCSR0aHVtYm1vZCA9ICJ0IjsNCgl9IGVsc2Ugew0K CQkkZnVsbG1vZCA9ICgkdGh1bWJPcHRzWzBdID09IDEpID8gInQiIDogIiI7DQoJCSR0aHVt Ym1vZCA9ICgkdGh1bWJPcHRzWzFdID09IDEpID8gInQiIDogIiI7DQoJfQ0KDQoJLy8gRXh0 cmFjdCB0aGUgZ2l2ZW4gY2F0ZWdvcnkvaW1hZ2VpZCBsaXN0cyBhbmQgbWFrZSB1cCB0aGUg YmVnaW5uaW5ncyBvZiBhIFdIRVJFIGNsYXVzZQ0KCSRjbGF1c2VbXSA9ICcxPTEnOw0KCSRj bGF1c2VPUiA9IGFycmF5KCk7DQoJJHN1YmluZm8gPSAoJHN1YmNhdHMpID8gImltYWdlOiIu JHN1YmNhdHMgOiAnJzsNCglsaXN0KCRmdWxsSURMaXN0LCAkbm90SURMaXN0KSA9IHNtZF9k b0xpc3QoJGltYWdlaWQsIHRydWUsICcnLCB0cnVlLCAkZGVsaW0pOw0KCWxpc3QoJGZ1bGxD YXRMaXN0LCAkbm90Q2F0TGlzdCkgPSBzbWRfZG9MaXN0KCRjYXRlZ29yeSwgZmFsc2UsICRz dWJpbmZvLCB0cnVlLCAkZGVsaW0pOw0KCWlmICgkZnVsbElETGlzdCkgew0KCQkkY2xhdXNl T1JbXSA9ICd0eHBfaW1hZ2UuaWQgSU4gKCcuaW1wbG9kZSgiLCIsICRmdWxsSURMaXN0KS4n KSc7DQoJfQ0KCWlmICgkZnVsbENhdExpc3QpIHsNCgkJJGNsYXVzZU9SW10gPSAndHhwX2lt YWdlLmNhdGVnb3J5IElOICgnLmltcGxvZGUoIiwiLCAkZnVsbENhdExpc3QpLicpJzsNCgl9 DQoJaWYgKCFlbXB0eSgkY2xhdXNlT1IpKSB7DQoJCSRjbGF1c2VbXSA9IGltcGxvZGUoIiBP UiAiLCAkY2xhdXNlT1IpOw0KCX0NCg0KCSRjbGF1c2UgPSBpbXBsb2RlKCIgQU5EICIsICRj bGF1c2UpOw0KCSRjbGF1c2UgLj0gKCRub3RDYXRMaXN0KSA/ICcgQU5EIHR4cF9pbWFnZS5j YXRlZ29yeSBOT1QgSU4gKCcuaW1wbG9kZSgiLCIsICRub3RDYXRMaXN0KS4nKScgOiAnJzsN CgkkY2xhdXNlIC49ICgkbm90SURMaXN0KSA/ICcgQU5EIHR4cF9pbWFnZS5pZCBOT1QgSU4g KCcuaW1wbG9kZSgiLCIsICRub3RJRExpc3QpLicpJyA6ICcnOw0KDQoJLy8gSWYgYSBjYXRl Z29yeS9pbWFnZWlkIG9wdGlvbiB3YXMgY2hvc2VuIGFuZCB0aGV5IG1hdGNoZWQgbm90aGlu ZywgdXNlIGEgYm9ndXMgY2F0ZWdvcnkgdGhhdCBzaG91bGQgbm90IGV4aXN0Lg0KCS8vIFRo aXMgZW5zdXJlcyB0aGF0IHRoZSBwbHVnaW4gZG9lcyB0aGUgZXhwZWN0ZWQgdGhpbmcgb2Yg bWF0Y2hpbmcgbm90aGluZyBpbiB0aGUgZXZlbnQgaXQgZmluZHMgbm90aGluZy4NCglpZiAo JGNsYXVzZSA9PSAiMT0xIiAmJiAkYXR0ZW1wdE1hdGNoKSB7DQogIAkJJGNsYXVzZSA9ICd0 eHBfaW1hZ2UuY2F0ZWdvcnkgPSAic21kXycgLm10X3JhbmQoKS4gJyInOw0KCX0NCg0KCS8v IENvbnZlcnQgdGhlIHNvcnQgaW50byBhIHZhbGlkIHNvcnRpbmcgaGllcmFyY2h5Lg0KCS8v IE5vdGUgdGhhdCByYW5kb20gaXMgYSBzcGVjaWFsIGNhc2UgYW5kIHRoZSBmb2xsb3dpbmcg cnVsZXMgYXBwbHk6DQoJLy8gIDEpIEFueXRoaW5nIGFwcGVhcmluZyBiZWZvcmUgcmFuZG9t IGlzIHBhc3NlZCB0byB0aGUgZGF0YWJhc2UgcXVlcnkgZm9yIG9yZGVyaW5nDQoJLy8gIDIp IEFzIHNvb24gYXMgcmFuZG9tIGlzIGVuY291bnRlcmVkLCB0aGUgcmVzdCBvZiB0aGUgc29y dCBzdHJpbmcgaXMgaWdub3JlZC4NCgkvLyAgICAgVGhlIHJlc3VsdHNldCB3aWxsIGJlIHNv cnRlZCByYW5kb21seSBpbnN0ZWFkDQoJLy8gIDMpIElmIHJhbmRvbSBhcHBlYXJzIGZpcnN0 IGluIHRoZSBsaXN0LCB0aGUgZGF0YSBpcyByZXRyaWV2ZWQgcmFuZG9tbHkgdGhlbiB0aGUN CgkvLyAgICAgcmVtYWluaW5nIG9wdGlvbnMgc29ydCB0aGUgcmVzdWx0c2V0DQoJJGNsYXVz ZVNvcnQgPSBhcnJheSgpOw0KCSRwb3N0T3JkZXIgPSBhcnJheSgpOw0KCSRydWxlID0gInNx bCI7DQoJJHBvc3RQcmVmaXggPSAiU09SVF8iOw0KCSRmaXhlZE9yZGVyID0gJHJhbmRzb3J0 ID0gZmFsc2U7DQoJJHNvcnQgPSBkb19saXN0KCRzb3J0LCAkZGVsaW0pOw0KCWZvciAoJGlk eCA9IDA7ICRpZHggPCBjb3VudCgkc29ydCk7ICRpZHgrKykgew0KCQkkc29ydF9kaXIgPSBl eHBsb2RlKCcgJywgJHNvcnRbJGlkeF0pOw0KCQkkZGlyZWN0aW9uID0gJGNvbFJlZiA9ICcn Ow0KCQlpZiAoY291bnQoJHNvcnRfZGlyKSA8PSAxKSB7DQoJCQkkc29ydF9kaXJbMV0gPSAi YXNjIjsNCgkJfQ0KCQlpZiAoJHJ1bGUgPT0gInNxbCIpIHsNCgkJCSRkaXJlY3Rpb24gPSAo JHNvcnRfZGlyWzFdID09ICJkZXNjIikgPyAnIGRlc2MnIDogJyBhc2MnOw0KCQl9IGVsc2Ug ew0KCQkJJGRpcmVjdGlvbiA9ICgkc29ydF9kaXJbMV0gPT0gImRlc2MiKSA/ICRwb3N0UHJl Zml4LidERVNDJyA6ICRwb3N0UHJlZml4LidBU0MnOw0KCQl9DQoNCgkJc3dpdGNoICgkc29y dF9kaXJbMF0pIHsNCgkJCWNhc2UgJ3JhbmRvbSc6DQoJCQkJJHJ1bGUgPSAicG9zdCI7DQoJ CQkJaWYgKCRpZHggPT0gMCkgew0KCQkJCQkkY2xhdXNlU29ydFtdID0gJ3JhbmQoKSc7DQoJ CQkJfSBlbHNlIHsNCgkJCQkJJHJhbmRzb3J0ID0gdHJ1ZTsNCgkJCQl9DQoJCQkJYnJlYWs7 DQoJCQljYXNlICdmaXhlZCc6DQoJCQkJLy8gJ2ZpeGVkJyBvbmx5IHdvcmtzIG9uIGlkcw0K CQkJCSRmaXhlZE9yZGVyID0gKCRpbWFnZWlkID09ICcnKSA/IGZhbHNlIDogdHJ1ZTsNCgkJ CQlicmVhazsNCgkJCWRlZmF1bHQ6DQoJCQkJJGNvbFJlZiA9IGFycmF5X3NlYXJjaCgkc29y dF9kaXJbMF0sICRmaWVsZE1hcCk7DQoJCQkJYnJlYWs7DQoJCX0NCgkJaWYgKCRydWxlID09 ICJzcWwiKSB7DQoJCQlpZiAoJGNvbFJlZiAhPSAnJykgew0KCQkJCSRjbGF1c2VTb3J0W10g PSAkY29sUmVmLiRkaXJlY3Rpb247DQoJCQl9DQoJCX0gZWxzZSB7DQoJCQlpZiAoISRyYW5k c29ydCkgew0KCQkJCWlmICgkY29sUmVmICE9ICcnKSB7DQoJCQkJCSRwb3N0T3JkZXJbXSA9 IGFycmF5KCJjb2wiID0+ICRjb2xSZWYsICJzb3J0IiA9PiAkZGlyZWN0aW9uKTsNCgkJCQl9 DQoJCQl9DQoJCX0NCgl9DQoNCglpZiAoY291bnQoJGNsYXVzZVNvcnQpID4gMCkgew0KCQkk Y2xhdXNlIC49ICcgT1JERVIgQlkgJyAuIGltcGxvZGUoIiwiLCRjbGF1c2VTb3J0KTsNCgl9 DQoNCgkvLyBUaGUgZGF0YWJhc2UgZmllbGRzIHJlcXVpcmVkDQoJJGZpZWxkcyA9ICdpZCxu YW1lLGNhcHRpb24sYWx0LGNhdGVnb3J5LGRhdGUsYXV0aG9yLGV4dCx3LGgnOw0KDQoJLy8g SGFuZGxlIHBhZ2luZw0KCWlmICgoJGxpbWl0ID4gMCkgJiYgJHNob3dwYWdlbGlua3MpIHsN CgkJJHJzID0gc2FmZV9yb3dzKCRmaWVsZHMsICd0eHBfaW1hZ2UnLCAkY2xhdXNlIC4nIExJ TUlUIDAsJy4kbWF4bGltaXQsICRkZWJ1Zyk7DQoJCSRudW10aHVtID0gY291bnQoJHJzKTsN CgkJJG51bVBhZ2VzID0gKCRudW10aHVtID4gMCkgPyBjZWlsKCRudW10aHVtLyRsaW1pdCkg OiAxOw0KCQkkdGh1bWJwYWdlID0gKCFncHMoJGdhbGxJRCkpID8gMSA6IGdwcygkZ2FsbElE KTsNCgkJJG9mZnNldCA9ICgkdGh1bWJwYWdlIC0gMSkgKiAkbGltaXQ7DQoJfSBlbHNlIHsN CgkJLy8gTm8gcGFnaW5nIHJlcXVpcmVkDQoJCSRudW1QYWdlcyA9IDE7DQoJCSR0aHVtYnBh Z2UgPSAxOw0KCQkkcnMgPSBzYWZlX3Jvd3MoJGZpZWxkcywgJ3R4cF9pbWFnZScsICRjbGF1 c2UgLicgTElNSVQgMCwnLiAoKCRsaW1pdD09MCkgPyAkbWF4bGltaXQgOiAkbGltaXQpLCAk ZGVidWcpOw0KCX0NCg0KCS8vIElzIHBvc3Qtb3JkZXJpbmcgcmVxdWlyZWQ/IERvIGl0DQoJ aWYgKCRyYW5kc29ydCkgew0KCQlzaHVmZmxlKCRycyk7DQoJfSBlbHNlIGlmIChjb3VudCgk cG9zdE9yZGVyKSA+IDApIHsNCgkJLy8gVHJhbnNsYXRlIHRoZSByb3dzIGludG8gY29sdW1u cyB0aGF0IGNhbiBiZSBzb3J0ZWQNCgkJZm9yZWFjaCgkcnMgYXMgJGtleSA9PiAkcm93KSB7 DQoJCQkkY29sX2lkWyRrZXldID0gJHJvd1snaWQnXTsNCgkJCSRjb2xfbmFtZVska2V5XSA9 ICRyb3dbJ25hbWUnXTsNCgkJCSRjb2xfY2FwdGlvblska2V5XSA9ICRyb3dbJ2NhcHRpb24n XTsNCgkJCSRjb2xfYWx0WyRrZXldID0gJHJvd1snYWx0J107DQoJCQkkY29sX2NhdGVnb3J5 WyRrZXldID0gJHJvd1snY2F0ZWdvcnknXTsNCgkJCSRjb2xfZGF0ZVska2V5XSA9ICRyb3db J2RhdGUnXTsNCgkJCSRjb2xfZXh0WyRrZXldID0gJHJvd1snZXh0J107DQoJCQkkY29sX2F1 dGhvclska2V5XSA9ICRyb3dbJ2F1dGhvciddOw0KCQkJJGNvbF93WyRrZXldID0gJHJvd1sn dyddOw0KCQkJJGNvbF9oWyRrZXldID0gJHJvd1snaCddOw0KCQl9DQoJCS8vIE1ha2UgdXAg YW4gYXJyYXlfbXVsdGlzb3J0IGFyZyBsaXN0IGFuZCBleGVjdXRlIGl0DQoJCWZvciAoJGlk eCA9IDA7ICRpZHggPCBjb3VudCgkcG9zdE9yZGVyKTsgJGlkeCsrKSB7DQoJCQkkc29ydGFy Z3NbXSA9ICckY29sXycuJHBvc3RPcmRlclskaWR4XVsnY29sJ107DQoJCQkkc29ydGFyZ3Nb XSA9ICRwb3N0T3JkZXJbJGlkeF1bJ3NvcnQnXTsNCgkJfQ0KCQkkc29ydGl0ID0gJ2FycmF5 X211bHRpc29ydCgnLmltcGxvZGUoIiwgIiwkc29ydGFyZ3MpLicsICRycyk7JzsNCgkJZXZh bCgkc29ydGl0KTsNCgl9DQoNCgkvLyBJcyBmaXhlZC1vcmRlciBvdXRwdXQgZGVzaXJlZD8g SWYgc28sIHJlLW9yZGVyIHRoZSAkcnMNCglpZiAoJGZpeGVkT3JkZXIpIHsNCgkJJG9yZGVy ZWRSUyA9IEFycmF5KCk7DQoJCSRpZ25vcmVMaXN0ID0gQXJyYXkoKTsNCgkJJHJlbWFpbmlu Z1JTID0gQXJyYXkoKTsNCgkJLy8gU3VjayBvdXQgdGhlIGZpeGVkIGl0ZW1zIGZpcnN0DQoJ CWZvciAoJGlkeCA9IDA7ICRpZHggPCBjb3VudCgkZnVsbElETGlzdCk7ICRpZHgrKykgew0K CQkJZm9yZWFjaCgkcnMgYXMgJHJvdykgew0KCQkJCWlmICgiJyIuJHJvd1snaWQnXS4iJyIg PT0gJGZ1bGxJRExpc3RbJGlkeF0pIHsNCgkJCQkJJG9yZGVyZWRSU1tdID0gJHJvdzsNCgkJ CQkJJGlnbm9yZUxpc3RbXSA9ICRyb3dbJ2lkJ107DQoJCQkJfQ0KCQkJfQ0KCQl9DQoJCS8v IFRhY2sgb24gdGhlIHJlbWFpbmluZyByb3dzDQoJCWZvcmVhY2goJHJzIGFzICRyb3cpIHsN CgkJCWlmICghaW5fYXJyYXkoJHJvd1snaWQnXSwgJGlnbm9yZUxpc3QpKSB7DQoJCQkJJHJl bWFpbmluZ1JTW10gPSAkcm93Ow0KCQkJfQ0KCQl9DQoJCSRycyA9IGFycmF5X21lcmdlKCRv cmRlcmVkUlMsICRyZW1haW5pbmdSUyk7DQoJfQ0KDQoJaWYgKCgkbGltaXQgPiAwKSAmJiAk c2hvd3BhZ2VsaW5rcykgew0KCQkkcnMgPSBhcnJheV9zbGljZSgkcnMsICRvZmZzZXQsICRs aW1pdCk7DQoJfQ0KDQoJLy8gSGFuZGxlIHRodW1ic2l6ZQ0KCSR0aHVtYldpZHRoID0gJHRo dW1iSGVpZ2h0ID0gJyc7DQoJJHRodW1iV1VuaXRzID0gJHRodW1iSFVuaXRzID0gJyc7DQoJ aWYgKCR0aHVtYnNpemUpIHsNCgkJJHRodW1iU2l6ZXMgPSBkb19saXN0KCR0aHVtYnNpemUs ICRkZWxpbSk7DQoJCWlmIChjb3VudCgkdGh1bWJTaXplcykgPT0gMSkgew0KCQkJJHRodW1i V2lkdGggPSAkdGh1bWJIZWlnaHQgPSBlcmVnX3JlcGxhY2UoIlteMC05XSIsICcnLCAkdGh1 bWJTaXplc1swXSk7DQoJCQkkdW5pdHMgPSBlcmVnX3JlcGxhY2UoIlswLTldIiwgJycsICR0 aHVtYlNpemVzWzBdKTsNCgkJCSR0aHVtYldVbml0cyA9ICR0aHVtYkhVbml0cyA9ICgkdW5p dHMgPT0gJycpID8gJHRodW1iV1VuaXRzIDogJHVuaXRzOw0KCQl9IGVsc2Ugew0KCQkJJHRo dW1iV2lkdGggPSBlcmVnX3JlcGxhY2UoIlteMC05XSIsICcnLCAkdGh1bWJTaXplc1swXSk7 DQoJCQkkdGh1bWJIZWlnaHQgPSBlcmVnX3JlcGxhY2UoIlteMC05XSIsICcnLCAkdGh1bWJT aXplc1sxXSk7DQoJCQkkdW5pdHMgPSBlcmVnX3JlcGxhY2UoIlswLTldIiwgJycsICR0aHVt YlNpemVzWzBdKTsNCgkJCSR0aHVtYldVbml0cyA9ICgkdW5pdHMgPT0gJycgJiYgJHRodW1i V2lkdGggIT0gJycpID8gJHRodW1iV1VuaXRzIDogJHVuaXRzOw0KCQkJJHVuaXRzID0gZXJl Z19yZXBsYWNlKCJbMC05XSIsICcnLCAkdGh1bWJTaXplc1sxXSk7DQoJCQkkdGh1bWJIVW5p dHMgPSAoJHVuaXRzID09ICcnICYmICR0aHVtYkhlaWdodCAhPSAnJykgPyAkdGh1bWJIVW5p dHMgOiAkdW5pdHM7DQoJCX0NCgl9DQoNCgkvLyBTZXQgdXAgdGhlIHRodW1idGV4dCBwb3Np dGlvbnMNCgkkcG9zQXJyYXkgPSBhcnJheSgpOw0KCSRzaG93b3B0cyA9IGRvX2xpc3QoJHRo dW1idGV4dCwgJGRlbGltKTsNCglmb3JlYWNoICgkc2hvd29wdHMgYXMgJGl0ZW0pIHsNCgkJ JHNob3dwb3MgPSBkb19saXN0KCRpdGVtLCAkcGFyYW1kZWxpbSk7DQoJCWlmIChjb3VudCgk c2hvd3BvcykgPiAxICYmIGluX2FycmF5KCRzaG93cG9zWzBdLCRzaG93TG9jcykpIHsNCgkJ CSRwb3NBcnJheVskc2hvd3Bvc1swXV0gPSAkc2hvd3Bvc1sxXTsNCgkJfSBlbHNlIHsNCgkJ CSRwb3NBcnJheVskc2hvd0xvY3NbMF1dID0gKChjb3VudCgkc2hvd3Bvcyk+MSkgPyAkc2hv d3Bvc1sxXSA6ICRzaG93cG9zWzBdKTsNCgkJfQ0KCX0NCg0KCS8vIENvbnN0cnVjdCB0aGUg b3V0cHV0DQoJJGZpZWxkUkUgPSAnL1w/KCcuaW1wbG9kZSgnfCcsICRmaWVsZE1hcCkuJ3x1 cmwpLyc7DQoJJHRodW1idGV4dFBsYXRlID0gKCgkdGh1bWJ0ZXh0d3JhcCkgPyAnPCcgLiAk dGh1bWJ0ZXh0d3JhcCAuICgoJHRodW1idGV4dGNsYXNzICE9ICIiKSA/ICcgY2xhc3M9Iicg LiR0aHVtYnRleHRjbGFzcy4gJyInIDogJycpIC4gJz4nIDogJycpIC4kdGh1bWJob2xkZXIu ICgoJHRodW1idGV4dHdyYXApID8gJzwvJyAuICR0aHVtYnRleHR3cmFwLiAnPicgOiAnJyk7 DQoJJG91dFN0ciA9ICcnOw0KDQoJaWYgKCRkZWJ1Zykgew0KCQlkbXAoJHJzKTsNCgl9DQoN CglpZigkcnMpIHsNCgkJJHRodW1idGV4dEN1cnI9IiI7DQoJCWZvcmVhY2goJHJzIGFzICRy b3cpIHsNCgkJCSR0aGVUaHVtYiA9IGh1LiRpbWdfZGlyLicvJyAuICRyb3dbJ2lkJ10gLiAk dGh1bWJtb2QgLiAkcm93WydleHQnXTsNCgkJCSRmdWxsID0gaHUuJGltZ19kaXIuJy8nIC4g JHJvd1snaWQnXSAuICRmdWxsbW9kIC4kcm93WydleHQnXTsNCgkJCWlmICgkZ3JvdXBuYW1l ID09PSAiP2MiKSB7DQoJCQkJJGdycCA9ICRyb3dbJ2NhdGVnb3J5J107DQoJCQl9IGVsc2Ug aWYgKCRncm91cG5hbWUgPT09ICI/aWQiKSB7DQoJCQkJJGdycCA9ICRyb3dbJ2lkJ107DQoJ CQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/YXV0aG9yIikgew0KCQkJCSRncnAgPSAk cm93WydhdXRob3InXTsNCgkJCX0gZWxzZSBpZiAoJGdyb3VwbmFtZSA9PT0gIj9kYXRlIikg ew0KCQkJCSRncnAgPSAkcm93WydkYXRlJ107DQoJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUg PT09ICI/YWx0Iikgew0KCQkJCSRncnAgPSAkcm93WydhbHQnXTsNCgkJCX0gZWxzZSBpZiAo JGdyb3VwbmFtZSA9PT0gIj9jYXB0aW9uIikgew0KCQkJCSRncnAgPSAkcm93WydjYXB0aW9u J107DQoJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUgPT09ICI/ZXh0Iikgew0KCQkJCSRncnAg PSAkcm93WydleHQnXTsNCgkJCX0gZWxzZSBpZiAoJGdyb3VwbmFtZSA9PT0gIj9uYW1lIikg ew0KCQkJCSRncnAgPSAkcm93WyduYW1lJ107DQoJCQl9IGVsc2UgaWYgKCRncm91cG5hbWUg PT09ICI/d2lkdGgiKSB7DQoJCQkJJGdycCA9ICRyb3dbJ3cnXTsNCgkJCX0gZWxzZSBpZiAo JGdyb3VwbmFtZSA9PT0gIj9oZWlnaHQiKSB7DQoJCQkJJGdycCA9ICRyb3dbJ2gnXTsNCgkJ CX0gZWxzZSBpZiAoc3Vic3RyKCRncm91cG5hbWUsMCwxKSA9PT0gIj8iKSB7DQoJCQkJLy8g U3BsaXQgb2ZmIHRoZSBmaWVsZCBuYW1lIGZyb20gdGhlIHF1ZXN0aW9uIG1hcmsNCgkJCQkk ZmllbGRuYW1lID0gc3Vic3RyKCRncm91cG5hbWUsMSk7DQoJCQkJaWYgKGlzc2V0KCR0aGlz YXJ0aWNsZVskZmllbGRuYW1lXSkpIHsNCgkJCQkJJGdycCA9ICR0aGlzYXJ0aWNsZVskZmll bGRuYW1lXTsNCgkJCQl9IGVsc2Ugew0KCQkJCQkkZ3JwID0gJyc7DQoJCQkJfQ0KCQkJfSBl bHNlIHsNCgkJCQkkZ3JwID0gJGdyb3VwbmFtZTsNCgkJCX0NCg0KCQkJLy8gSGFuZGxlIGlt YWdlY2FwdGlvbg0KCQkJJGNhcHRpb25Nc2cgPSAkaW1hZ2VjYXB0aW9uOw0KCQkJJG1hdGNo ZXMgPSBhcnJheSgpOw0KCQkJJGN0ciA9IHByZWdfbWF0Y2hfYWxsKCRmaWVsZFJFLCAkY2Fw dGlvbk1zZywgJG1hdGNoZXMsIFBSRUdfU0VUX09SREVSKTsNCgkJCWZvciAoJGlkeCA9IDA7 ICRpZHggPCAkY3RyOyAkaWR4KyspIHsNCgkJCQkkZmllbGRuYW1lID0gJG1hdGNoZXNbJGlk eF1bMV07DQoJCQkJJGtleSA9IGFycmF5X3NlYXJjaCgkZmllbGRuYW1lLCAkZmllbGRNYXAp Ow0KCQkJCWlmICgka2V5KSB7DQoJCQkJCSRyZXAgPSAkcm93WyRrZXldOw0KCQkJCX0gZWxz ZSBpZiAoJGZpZWxkbmFtZSA9PSAidXJsIikgew0KCQkJCQkkcmVwID0gJGZ1bGw7DQoJCQkJ fSBlbHNlIHsNCgkJCQkJJHJlcCA9ICRmaWVsZG5hbWU7DQoJCQkJfQ0KCQkJCSRjYXB0aW9u TXNnID0gc3RyX3JlcGxhY2UoJG1hdGNoZXNbJGlkeF1bMF0sICRyZXAsICRjYXB0aW9uTXNn KTsNCgkJCX0NCg0KCQkJLy8gSGFuZGxlIHRodW1idGV4dA0KCQkJJHRodW1idGV4dEFycmF5 ID0gYXJyYXlfY29tYmluZSgkc2hvd0xvY3MsIGFycmF5KCIiLCIiLCIiLCIiLCIiKSk7IC8v IEluaXRpYWxpc2UgZXZlcnkgZWxlbWVudA0KCQkJZm9yZWFjaCAoJHBvc0FycmF5IGFzICRw b3MgPT4gJHRleHQpIHsNCgkJCQkkbWF0Y2hlcyA9IGFycmF5KCk7DQoJCQkJJGN0ciA9IHBy ZWdfbWF0Y2hfYWxsKCRmaWVsZFJFLCAkdGV4dCwgJG1hdGNoZXMsIFBSRUdfU0VUX09SREVS KTsNCgkJCQlmb3IgKCRpZHggPSAwOyAkaWR4IDwgJGN0cjsgJGlkeCsrKSB7DQoJCQkJCSRm aWVsZG5hbWUgPSAkbWF0Y2hlc1skaWR4XVsxXTsNCgkJCQkJJGtleSA9IGFycmF5X3NlYXJj aCgkZmllbGRuYW1lLCAkZmllbGRNYXApOw0KCQkJCQlpZiAoJGtleSkgew0KCQkJCQkJJHJl cCA9ICRyb3dbJGtleV07DQoJCQkJCX0gZWxzZSBpZiAoJGZpZWxkbmFtZSA9PSAidXJsIikg ew0KCQkJCQkJJHJlcCA9ICRmdWxsOw0KCQkJCQl9IGVsc2Ugew0KCQkJCQkJJHJlcCA9ICRm aWVsZG5hbWU7DQoJCQkJCX0NCgkJCQkJJHRleHQgPSBzdHJfcmVwbGFjZSgkbWF0Y2hlc1sk aWR4XVswXSwgJHJlcCwgJHRleHQpOw0KCQkJCX0NCgkJCQkkdGh1bWJ0ZXh0QXJyYXlbJHBv c10gPSAkdGV4dDsNCgkJCX0NCg0KCQkJLy8gQ29uc3RydWN0IHRoZSBsaW5rIGFuZCBwdXQg dGh1bWJ0ZXh0IGluIHRoZSBhcHByb3ByaWF0ZSBwb3NpdGlvbnMNCgkJCSRvdXRTdHIgLj0g KCR0aHVtYnRleHRBcnJheVsib25jaGFuZ2UiXSAmJiAkdGh1bWJ0ZXh0QXJyYXlbIm9uY2hh bmdlIl0gIT0gJHRodW1idGV4dEN1cnIpID8gc3RyX3JlcGxhY2UoJHRodW1iaG9sZGVyLCBo dG1sc3BlY2lhbGNoYXJzX2RlY29kZSgkdGh1bWJ0ZXh0QXJyYXlbIm9uY2hhbmdlIl0pLCAk dGh1bWJ0ZXh0UGxhdGUpIDogJyc7DQoJCQkkb3V0U3RyIC49ICgkd3JhcHRhZyAhPSAiIikg PyAnPCcgLiR3cmFwdGFnLiAoKCRjZWxsY2xhc3MgIT0gIiIpID8gJyBjbGFzcz0iJyAuJGNl bGxjbGFzcy4gJyInIDogJycpIC4gJz4nIDogJyc7DQoJCQkkb3V0U3RyIC49ICgkdGh1bWJ0 ZXh0QXJyYXlbImFib3ZlIl0pID8gc3RyX3JlcGxhY2UoJHRodW1iaG9sZGVyLCBodG1sc3Bl Y2lhbGNoYXJzX2RlY29kZSgkdGh1bWJ0ZXh0QXJyYXlbImFib3ZlIl0pLCAkdGh1bWJ0ZXh0 UGxhdGUpIDogJyc7DQoJCQkkb3V0U3RyIC49ICc8YSBocmVmPSInLiRmdWxsLiciIHJlbD0i JyAuJHRyaWdnZXIuJGdycC4gJyIgdGl0bGU9IicgLiRjYXB0aW9uTXNnLiAnIicgLigoJGxp bmtjbGFzcyAhPSAiIikgPyAnIGNsYXNzPSInIC4kbGlua2NsYXNzLiAnIicgOiAnJykuICc+ JyAuKCgkdGh1bWJ0ZXh0QXJyYXlbImJlZm9yZSJdKSA/IHN0cl9yZXBsYWNlKCR0aHVtYmhv bGRlciwgaHRtbHNwZWNpYWxjaGFyc19kZWNvZGUoJHRodW1idGV4dEFycmF5WyJiZWZvcmUi XSksICR0aHVtYnRleHRQbGF0ZSkgOiAnJykuICc8aW1nIHNyYz0iJyAuJHRoZVRodW1iLiAn IiBhbHQ9IicgLiRyb3dbJ2FsdCddLiAnIicgLiAoKCRpbWdjbGFzcyAhPSAiIikgPyAnIGNs YXNzPSInIC4kaW1nY2xhc3MuICciJyA6ICcnKSAuICgoJHRodW1iV2lkdGgpID8gJyB3aWR0 aD0iJyAuICR0aHVtYldpZHRoLiR0aHVtYldVbml0cy4gJyInIDogJycpIC4gKCgkdGh1bWJI ZWlnaHQpID8gJyBoZWlnaHQ9IicgLiAkdGh1bWJIZWlnaHQuJHRodW1iSFVuaXRzLiAnIicg OiAnJykgLiAnIC8+JyAuKCgkdGh1bWJ0ZXh0QXJyYXlbImFmdGVyIl0pID8gc3RyX3JlcGxh Y2UoJHRodW1iaG9sZGVyLCBodG1sc3BlY2lhbGNoYXJzX2RlY29kZSgkdGh1bWJ0ZXh0QXJy YXlbImFmdGVyIl0pLCAkdGh1bWJ0ZXh0UGxhdGUpIDogJycpLiAnPC9hPicubjsNCgkJCSRv dXRTdHIgLj0gKCR0aHVtYnRleHRBcnJheVsiYmVsb3ciXSkgPyBzdHJfcmVwbGFjZSgkdGh1 bWJob2xkZXIsIGh0bWxzcGVjaWFsY2hhcnNfZGVjb2RlKCR0aHVtYnRleHRBcnJheVsiYmVs b3ciXSksICR0aHVtYnRleHRQbGF0ZSkgOiAnJzsNCgkJCSRvdXRTdHIgLj0gKCR3cmFwdGFn ICE9ICIiKSA/ICc8LycgLiR3cmFwdGFnLiAnPicgOiAnJzsNCgkJCSRvdXRTdHIgLj0gbjsN CgkJCSR0aHVtYnRleHRDdXJyID0gJHRodW1idGV4dEFycmF5WyJvbmNoYW5nZSJdOw0KCQl9 DQoNCgkJLy8gQWRkIHRoZSBwYWdpbmcgZmVhdHVyZXMgaWYgcmVxdWlyZWQNCgkJaWYgKCgk bGltaXQgPiAwKSAmJiAkc2hvd3BhZ2VsaW5rcykgew0KCQkJJG5leHQgPSAoJG51bVBhZ2Vz ID4gMSAmJiAkdGh1bWJwYWdlICE9ICRudW1QYWdlcyk7DQoJCQkkcHJldiA9ICgkbnVtUGFn ZXMgPiAxICYmICR0aHVtYnBhZ2UgPiAxKTsNCg0KCQkJLy8gUmVwbGFjZSBhbnkgcGFnaW5n IGluZm8gaW4gdGhlIHF1ZXJ5IHN0cmluZw0KCQkJJHByZXZQYWdlID0gc21kX2FkZFFTVmFy KCRwcmV0ZXh0WydyZXF1ZXN0X3VyaSddLCAkZ2FsbElELCAkdGh1bWJwYWdlLTEpOw0KCQkJ JG5leHRQYWdlID0gc21kX2FkZFFTVmFyKCRwcmV0ZXh0WydyZXF1ZXN0X3VyaSddLCAkZ2Fs bElELCAkdGh1bWJwYWdlKzEpOw0KDQoJCQkkb3V0U3RyIC49ICgkbmF2d3JhcHRhZyAhPSAi IikgPyAnPCcgLiRuYXZ3cmFwdGFnLiAoKCRuYXZjbGFzcyAhPSAiIikgPyAnIGNsYXNzPSIn IC4kbmF2Y2xhc3MuICciJyA6ICcnKSAuICc+JyA6ICcnOw0KCQkJJG91dFN0ciAuPSAoJHBy ZXYpID8gJzxhJyAuICgoJHByZXZjbGFzcyAhPSAiIikgPyAnIGNsYXNzPSInIC4kcHJldmNs YXNzLiAnIicgOiAnJykgLiAnIGhyZWY9IicgLiRwcmV2UGFnZS4gJyI+JyAuJHByZXZsYWJl bC4gJzwvYT4nLm4gOiAnJzsNCgkJCSRvdXRTdHIgLj0gKCRuZXh0KSA/ICc8YScgLiAoKCRu ZXh0Y2xhc3MgIT0gIiIpID8gJyBjbGFzcz0iJyAuJG5leHRjbGFzcy4gJyInIDogJycpIC4g JyBocmVmPSInIC4kbmV4dFBhZ2UuICciPicgLiRuZXh0bGFiZWwuICc8L2E+Jy5uIDogJyc7 DQoJCQkkb3V0U3RyIC49ICgkbmF2d3JhcHRhZyAhPSAiIikgPyAnPC8nIC4kbmF2d3JhcHRh Zy4gJz4nIDogJyc7DQoJCQkkb3V0U3RyIC49IG47DQoJCX0NCgl9DQoNCglyZXR1cm4gJG91 dFN0cjsNCn0iO3M6NDoidHlwZSI7czoxOiIwIjtzOjQ6ImhlbHAiO3M6MzgyNzE6Igk8cD48 ZGl2IGlkPSJzbWRfaGVscCI+PC9wPgoKCTxoMSBpZD0idG9wIj5zbWRfc2xpbWJveDwvaDE+ CgoJPGgyIGlkPSJjb250ZW50cyI+Q29udGVudHM8L2gyPgoKCTx1bD4KCQk8bGk+PGEgaHJl Zj0iI2ZlYXR1cmVzIj5GZWF0dXJlczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjYXV0aG9y Ij5BdXRob3I8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2luc3RhbGwiPkluc3RhbGxhdGlv biAvIFVuaW5zdGFsbGF0aW9uPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiN1c2FnZSI+VGFn IHVzYWdlPC9hPgoJPHVsPgoJCTxsaT48YSBocmVmPSIjY2hhbmdlcyI+Q2hhbmdlcyBmcm9t IHByZXZpb3VzIHZlcnNpb248L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2F0dHMiPkF0dHJp YnV0ZXM8L2E+PC9saT4KCQk8bGk+PGEgaHJlZj0iI2ZpZWxkcyI+QXJ0aWNsZSBmaWVsZCBj b2RlczwvYT48L2xpPgoJCTxsaT48YSBocmVmPSIjaW1hZ2VfZmllbGRzIj5JbWFnZSBmaWVs ZCBjb2RlczwvYT48L2xpPgoJPC91bD48L2xpPgoJCTxsaT48YSBocmVmPSIjZXhhbXBsZXMi PkV4YW1wbGVzPC9hPjwvbGk+CgkJPGxpPjxhIGhyZWY9IiNzdHlsZSI+U3R5bGluZzwvYT48 L2xpPgoJCTxsaT48YSBocmVmPSIjY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2E+PC9saT4KCQk8 bGk+PGEgaHJlZj0iI2NyZWRpdHMiPkNyZWRpdHM8L2E+PC9saT4KCTwvdWw+CgoJPGgyIGlk PSJmZWF0dXJlcyI+RmVhdHVyZXM8L2gyPgoKCTx1bD4KCQk8bGk+R2VuZXJhdGVzIGEgbGlz dCBvZiB0aHVtYm5haWxzIHRoYXQgY2FuIGJlIHN0eWxlZCBhbnkgd2F5IHlvdSBsaWtlPC9s aT4KCQk8bGk+RmxleGlibGUgd2F5IG9mIGV4dHJhY3RpbmcgaW1hZ2VzIGZyb20gdGhlIDxz cGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IGRhdGFiYXNlOyBhcmJpdHJhcnkgaW5jbHVz aW9uL2V4Y2x1c2lvbiBvZiBjYXRlZ29yaWVzIG9yIGltYWdlIElEczwvbGk+CgkJPGxpPkxp c3RzIG9mIGNhdGVnb3JpZXMgYW5kIElEcyBjYW4gYmUgcHVsbGVkIGZyb20gYW55IGZpZWxk IGluIHRoZSBjdXJyZW50IGFydGljbGUsIGluY2x1ZGluZyBjdXN0b20gZmllbGRzPC9saT4K CQk8bGk+U3VwcG9ydHMgZ2x6X2N1c3RvbV9maWVsZHMgZm9yIGV2ZW4gZ3JlYXRlciBmbGV4 aWJpbGl0eSAoY3VycmVudGx5IHJlcXVpcmVzIGEgc21hbGwgbW9kIHRvIHB1Ymxpc2gucGhw KTwvbGk+CgkJPGxpPlN1YmNhdGVnb3JpZXM6IHNwZWNpZnkgYSBwYXJlbnQgYW5kIGFsbCBj aGlsZCBjYXRlZ29yaWVzIGFyZSBhdXRvbWF0aWNhbGx5IGluY2x1ZGVkPC9saT4KCQk8bGk+ U2hvdyBhc3NvY2lhdGVkIGltYWdlIHRleHQgaW4gdmFyaW91cyBsb2NhdGlvbnMgYXJvdW5k IHRoZSB0aHVtYm5haWxzPC9saT4KCQk8bGk+UGFnaW5nIGFuZCBtdWx0aXBsZSBnYWxsZXJp ZXMgcGVyIHBhZ2U8L2xpPgoJCTxsaT5TdXBwb3J0cyBTbGltYm94LCBMaWdodGJveCwgTGl0 ZWJveCwgTW9vbmJveCwgVGhpY2tib3ggYW5kIHBlcmhhcHMgc29tZSBtb3JlIGJlc2lkZXMu IEZvciBhIHdpZGVyIHJhbmdlLCBzZWUgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9y Zy9wbHVnaW5zLzk1Ny9zbWRfZ2FsbGVyeSI+c21kX2dhbGxlcnk8L2E+PC9saT4KCTwvdWw+ CgoJPGgyIGlkPSJhdXRob3IiPkF1dGhvcjwvaDI+CgoJPHA+PGEgaHJlZj0iaHR0cDovL3N0 ZWZkYXdzb24uY29tL2NvbW1lbnRGb3JtIj5TdGVmIERhd3NvbjwvYT4uIEZvciBvdGhlciBz b2Z0d2FyZSBieSBtZSwgb3IgdG8gbWFrZSBhIGRvbmF0aW9uLCBzZWUgdGhlIDxhIGhyZWY9 Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4uPC9wPgoKCTxw Pk9yaWdpbmFsbHkgYmFzZWQgb24gPGEgaHJlZj0iaHR0cDovL3d3dy5kaWdpdGFsaWEuYmUv c29mdHdhcmUvc2xpbWJveCI+c2xpbWJveCwgYSBsaWdodHdlaWdodCBMaWdodGJveCBjbG9u ZTwvYT4gYnkgQ2hyaXN0b3BoZSBCZXlscy4gRm9yIG1vcmUgaW5mbyBvciB0cm91Ymxlc2hv b3Rpbmcgb24gdGhlIGxpZ2h0Ym94IHNpZGUgb2YgdGhpbmdzIChhcyBvcHBvc2VkIHRvIHRo ZSB0aHVtYm5haWwgZ2VuZXJhdGlvbiBzaWRlIG9mIHRoaW5ncykgPGEgaHJlZj0iaHR0cDov L3d3dy5mcmVld2Vic2Zhcm1zLmNvbS9mb3J1bXMvdmlld3RvcGljLnBocD9waWQ9MzMxNiNw MzMxNiI+c2VlIENocmlzdG9waGUmIzgyMTc7cyBmb3J1bTwvYT4uPC9wPgoKCTxoMiBpZD0i aW5zdGFsbCI+SW5zdGFsbGF0aW9uIC8gVW5pbnN0YWxsYXRpb248L2gyPgoKCTxwIGNsYXNz PSJyZXF1aXJlZCI+UmVxdWlyZXMgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2Rv d25sb2Fkcy9zbWRfbGliX3YwLjMyLnR4dCI+c21kX2xpYiB2MC4zMjwvYT4gdG8gYmUgaW5z dGFsbGVkIGFuZCBhY3RpdmF0ZWQuPC9wPgoKCTxwPkRvd25sb2FkIHRoZSBwbHVnaW4gZnJv bSBlaXRoZXIgPGEgaHJlZj0iaHR0cDovL3RleHRwYXR0ZXJuLm9yZy9wbHVnaW5zLzc0MS9z bWRfc2xpbWJveCI+dGV4dHBhdHRlcm4ub3JnPC9hPiwgb3IgdGhlIDxhIGhyZWY9Imh0dHA6 Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29mdHdhcmUgcGFnZTwvYT4sIHBhc3RlIHRoZSBjb2Rl IGludG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IEFkbWluIC0mZ3Q7IFBs dWdpbnMgcGFuZSwgaW5zdGFsbCBhbmQgZW5hYmxlIHRoZSBwbHVnaW4uPC9wPgoKCTxwPllv dSB3aWxsIGFsc28gbmVlZCBhIGphdmFzY3JpcHQgbGlicmFyeSB0byBwZXJmb3JtIHRoZSBs aWdodGJveCBlZmZlY3QsIHdoaWNoIHlvdSBtdXN0IGxvYWQgb24geW91ciBwYWdlIGFzIHBl ciB0aGUgaW5zdHJ1Y3Rpb25zIGZvciB0aGF0IGxpYnJhcnkuIEFsdGhvdWdoIHRoZSBleGFt cGxlcyBpbiB0aGlzIHBhZ2UgYXJlIGZvciBTbGltYm94LCB0aGUgcGx1Z2luIHdpbGwgd29y ayB3aXRoIGEgbnVtYmVyIG9mIGZyZWVseS1hdmFpbGFibGUgamF2YXNjcmlwdCBsaWJyYXJp ZXMgJiM4MjEyOyBvZnRlbiB3aXRob3V0IG1vZGlmaWNhdGlvbi4gU29tZSBsaWJyYXJpZXMg KGUuZy4gVGhpY2tib3gpIHNpbXBseSByZXF1aXJlIGFuIGFkZGl0aW9uYWwgY2xhc3MgdG8g YmUgc2V0IG9uIHRoZSBpbWFnZSB0YWdzLjwvcD4KCgk8cD5WaXNpdCB0aGUgPGEgaHJlZj0i aHR0cDovL2ZvcnVtLnRleHRwYXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTIwNzE0Ij5m b3J1bSB0aHJlYWQ8L2E+IGZvciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNj ZXNzIG9yIG90aGVyd2lzZSBvZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5UbyByZW1vdmUgdGhl IHBsdWdpbiwgc2ltcGx5IGRlbGV0ZSBpdCBmcm9tIHRoZSBBZG1pbi0mZ3Q7UGx1Z2lucyB0 YWIgYW5kIHJlbW92ZSB5b3VyIHRoaXJkIHBhcnR5IGxpYnJhcmllcy48L3A+CgoJPGgyIGlk PSJ1c2FnZSI+VXNhZ2U8L2gyPgoKCTxwPlRoZSBwbHVnaW4gb3B0aW9ucyBnb3Zlcm4gd2hp Y2ggdGh1bWJuYWlscyB0byB1c2UgYW5kIGhvdyB0aGV5IGFyZSBkaXNwbGF5ZWQuIE9uY2Ug YSB0aHVtYiBpcyBjbGlja2VkLCBjb250cm9sIGlzIGhhbmRlZCBvdmVyIHRvIG1vb3Rvb2xz L2pRdWVyeS9wcm90b3R5cGUgdG8gZG8gdGhlIGZhbmN5IHdvcmsuIFRoZXJlZm9yZSwgaWYg eW91IHdpc2ggdG8gY29uZmlndXJlIHRoZSBsb29rIG9mIHRoZSAmIzgyMjA7bGlnaHRib3gm IzgyMjE7IHBhcnQsIHlvdSBuZWVkIHRvIGVkaXQgaXRzIGphdmFzY3JpcHQgYW5kL29yIGFz c29jaWF0ZWQgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4uPC9wPgoKCTxwPkJlZm9y ZSB5b3UgY2FuIHVzZSBzbWRfc2xpbWJveCB5b3UgaGF2ZSB0byBlbnN1cmUgdGhhdCB0aGUg cGFnZSBjYW4gcmVhZCB0aGUgZXh0ZXJuYWwgbGlicmFyeSBmaWxlcy4gWW91IGRvIHRoaXMg YnkgcHV0dGluZyA8Y29kZT4mbHQ7c2NyaXB0Jmd0OzwvY29kZT4gYW5kIDxjb2RlPiZsdDts aW5rJmd0OzwvY29kZT4gdGFncyBhcyB1c3VhbCBpbiB5b3VyIHBhZ2UgPGNvZGU+Jmx0O2hl YWQmZ3Q7PC9jb2RlPi48L3A+CgoJPGgzIGlkPSJjaGFuZ2VzIj5DaGFuZ2VzIGZyb20gcHJl dmlvdXMgdmVyc2lvbjwvaDM+CgoJPHA+RXhwZXJpZW5jZWQgdXNlcnMgb2Ygc21kX3NsaW1i b3gsIHBsZWFzZSBub3RlIHRoZXNlIGltcG9ydGFudCBjaGFuZ2VzIHRvIHRoZSBwbHVnaW46 PC9wPgoKCTx1bD4KCQk8bGk+QWZ0ZXIgb3ZlcndoZWxtaW5nIHN1cHBvcnQgZnJvbSB0aGUg cG9sbCwgPGNvZGU+c21kX3NsaW1ib3hfaW5jPC9jb2RlPiBpcyBub3cgcmVtb3ZlZC4gSWYg eW91IHVzZSBpdCwgYSB3YXJuaW5nIHdpbGwgYmUgaXNzdWVkPC9saT4KCQk8bGk+QWNjb3Jk aW5nbHksIDxjb2RlPmxpYmNoZWNrPC9jb2RlPiBoYXMgYmVlbiByZW1vdmVkPC9saT4KCQk8 bGk+PGNvZGU+Y2F0bGFiZWw8L2NvZGU+IGhhcyBiZWVuIHJlbW92ZWQuIFdpdGggbW9yZSA8 Y29kZT4/PC9jb2RlPiBhbmQgPGNvZGU+ITwvY29kZT4gPGEgaHJlZj0iI2ZpZWxkcyI+YXJ0 aWNsZSBmaWVsZCBjb2RlczwvYT4gbm93IGF2YWlsYWJsZSwgYW5kIHRoZSBhYmlsaXR5IHRv IGNvbWJpbmUgdGhlbSAoZS5nLiA/cy0/YykgeW91IGNhbiBub3cgcGVyZm9ybSB0aGUgc2Ft ZSBmdW5jdGlvbiBhcyA8Y29kZT5jYXRsYWJlbDwvY29kZT4gYnkgdXNpbmcgPGNvZGU+Y2F0 ZWdvcnk9JnF1b3Q7YXJ0aWNsZS0/aWQmcXVvdDs8L2NvZGU+PC9saT4KCQk8bGk+PGNvZGU+ c3ViY2F0czwvY29kZT4gaW1wcm92ZWQuIE5vdyB0YWtlcyBhbiBpbnRlZ2VyICYjODIyMDts ZXZlbCYjODIyMTsgdGhhdCBzcGVjaWZpZXMgaG93IGZhciBkb3duIHRoZSB0cmVlIHRvIGdv LiBGb3IgdGhlIHNhbWUgYmVoYXZpb3VyIGFzIGJlZm9yZSwgdXNlIDxjb2RlPnN1YmNhdHM9 JnF1b3Q7YWxsJnF1b3Q7PC9jb2RlPjwvbGk+CgkJPGxpPnNob3dhbHQvc2hvd2NhcHRpb24v YWx0Y2xhc3MvY2FwdGlvbmNsYXNzL3RleHRwb3MgaGF2ZSBiZWVuIHJlbW92ZWQuIFVzZSA8 Y29kZT50aHVtYnRleHQ8L2NvZGU+LCA8Y29kZT50aHVtYnRleHR3cmFwPC9jb2RlPiBhbmQg PGNvZGU+dGh1bWJ0ZXh0Y2xhc3M8L2NvZGU+IGluc3RlYWQ8L2xpPgoJCTxsaT48Y29kZT5v cmRlcmJ5PC9jb2RlPiBpcyBub3cgY2FsbGVkIDxjb2RlPnNvcnQ8L2NvZGU+IGluIGxpbmUg d2l0aCBvdGhlciA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiB0YWdzLCBhbmQgdGFr ZXMgYSBzcGFjZS1kZWxpbWl0ZWQgZGlyZWN0aW9uIG1vZGlmaWVyIGluc3RlYWQgb2YgdGhl IG9sZCBjb2xvbiBkZWxpbWl0ZXIuIDxjb2RlPm9yZGVyYnk8L2NvZGU+IGlzIHN0aWxsIHN1 cHBvcnRlZCBmb3Igbm93IGFuZCB3aWxsIGJlIGNvbnZlcnRlZCB0byB0aGUgbmV3IDxjb2Rl PnNvcnQ8L2NvZGU+IHRhZyBidXQgd2lsbCBpc3N1ZSBhIHdhcm5pbmcgaW4gcHJvZHVjdGlv bi9kZWJ1ZyBtb2RlczwvbGk+CgkJPGxpPjxjb2RlPnRodW1iPC9jb2RlPiBpcyBub3cgZW5o YW5jZWQgdG8gYWxsb3cgeW91IHRvIHNwZWNpZnkgd2hldGhlciB0aGUgZnVsbC1zaXplIGlt YWdlIGFuZC9vciB0aGUgdGh1bWJuYWlsIGFyZSBkaXNwbGF5ZWQgdXNpbmcgdGhlICYjODIx Njt0JiM4MjE3OyBpbWFnZSBvciBub3QuIFNvIHlvdSBjYW4gbm93IHN3YXAgdGh1bWJuYWls IGFuZCBmdWxsLXNpemUgaWYgeW91IHdpc2gsIG9yIG1ha2UgdGhlbSBzaG93IGlkZW50aWNh bCBpbWFnZXM8L2xpPgoJCTxsaT48Y29kZT50cmlnZ2VyPC9jb2RlPiBhZGRlZC4gVGhpcyBk ZWZhdWx0cyB0byAmIzgyMjA7bGlnaHRib3gtJiM4MjIxOyB3aGljaCBpcyB3aGF0IHNsaW1i b3ggdXNlcyBpbiB0aGUgPGNvZGU+cmVsPC9jb2RlPiBhdHRyaWJ1dGUgb2YgdGhlIGFuY2hv cnMuIE90aGVyIGxpYnJhcmllcyBtYXkgdXNlIG90aGVyIHdvcmRzIHRvIGlkZW50aWZ5IHRo ZW1zZWx2ZXMsIHNvIHRoaXMgYWxsb3dzIHlvdSB0byBtb2RpZnkgdGhlIHN0cmluZyB0byBz dWl0PC9saT4KCQk8bGk+PGNvZGU+ZGVsaW08L2NvZGU+IGFkZGVkLiBJZiB5b3UgZG9uJiM4 MjE3O3QgbGlrZSB1c2luZyBhIGNvbW1hIGFzIGEgZGVsaW1pdGVyLCBjaGFuZ2UgaXQuIFNl dCA8Y29kZT5kZWxpbT0mcXVvdDt8JnF1b3Q7PC9jb2RlPiBpZiB1c2luZyBjaGVja2JveGVz IGFuZCBtdWx0aS1zZWxlY3RzIHdpdGggZ2x6X2N1c3RvbV9maWVsZHM8L2xpPgoJCTxsaT48 Y29kZT5uYXZ3cmFwdGFnPC9jb2RlPiBhZGRlZCBzbyB0aGUgbmF2aWdhdGlvbiBibG9jayBj YW4gYmUgd3JhcHBlZCBpbiBhIGRpZmZlcmVudCB0YWcgdG8gZWFjaCBpbWFnZTwvbGk+CgkJ PGxpPjxjb2RlPmxpbmtjbGFzczwvY29kZT4gYWRkZWQgc28geW91IGNhbiBzcGVjaWZ5IGEg c2VwYXJhdGUgY2xhc3MgZm9yIHRoZSBpbWFnZSBhbmNob3JzIGlmIHlvdSB3aXNoPC9saT4K CTwvdWw+CgoJPGgzIGNsYXNzPSJhdHRzICIgaWQ9ImF0dHMiPkF0dHJpYnV0ZXM8L2gzPgoK CTxwPldpdGhvdXQgYW55IG9wdGlvbnMgdGhlIHBsdWdpbiBkaXNwbGF5cyBldmVyeSBpbWFn ZSBpbiB5b3VyIGVudGlyZSBjb2xsZWN0aW9uIGFuZCB3b24mIzgyMTc7dCBsb29rIHZlcnkg cHJldHR5ICh0aG91Z2ggeW91IGNhbiBoZWxwIGEgYml0IGJ5IHN0YXJ0aW5nIHdpdGggdGhl IDxhIGhyZWY9IiNzdHlsZSI+PHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj48L2E+KS4g VGhlIGZvbGxvd2luZyBvcHRpb25zIHRhbWUgdGhlIHBsdWdpbiBhIGxpdHRsZTo8L3A+CgoJ PHVsIGNsYXNzPSJhdHRzIj4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5jYXRlZ29y eTwvc3Bhbj4gOiBhIGxpc3Qgb2YgaW1hZ2UgY2F0ZWdvcmllcy4gQnkgZGVmYXVsdCB0aGUg bGlzdCBzaG91bGQgYmUgY29tbWEtc2VwYXJhdGVkIGJ1dCB0aGlzIGNhbiBiZSBjaGFuZ2Vk IHdpdGggdGhlIDxjb2RlPmRlbGltPC9jb2RlPiBvcHRpb24uIFRoaXMgYXR0cmlidXRlIG1h eSB0YWtlIGFueSBvZiB0aGUgc3BlY2lhbCA8YSBocmVmPSIjZmllbGRzIj5maWVsZCBjb2Rl czwvYT4gYnkgZ2l2aW5nIGl0cyBuYW1lIGFmdGVyIGEgPGNvZGU+PzwvY29kZT4gKHRvIGlu Y2x1ZGUgdGhhdCBmaWVsZCkgb3IgPGNvZGU+ITwvY29kZT4gKHRvIGV4Y2x1ZGUgdGhhdCBm aWVsZCk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmltYWdlaWQ8L3NwYW4+ IDogYSBsaXN0IG9mIGltYWdlIElEcy4gVGFrZXMgZXhhY3RseSB0aGUgc2FtZSBzeW50YXgg YXMgdGhlIDxjb2RlPmNhdGVnb3J5PC9jb2RlPiBhdHRyaWJ1dGU8L2xpPgoJCTxsaT48c3Bh biBjbGFzcz0iYXR0LW5hbWUiPnN1YmNhdHM8L3NwYW4+IDogaG93IGZhciAmIzgyMTY7ZG93 biYjODIxNzsgdG8gdHJhdmVyc2UgaW1hZ2Ugc3ViLWNhdGVnb3JpZXMuIFRha2VzIGFuIGlu dGVnZXIgdmFsdWUgb3IgJiM4MjE2O2FsbCYjODIxNzsuIDAgKHRoZSBkZWZhdWx0KSBtZWFu cyBubyBjaGlsZCBjYXRlZ29yaWVzOyAxIHVzZXMgdGhlIG1haW4gY2F0ZWdvcmllcyBhbmQg dGhlIGZpcnN0IGxldmVsIG9mIGNoaWxkcmVuOyAyIHVzZXMgdGhlIG1haW4gY2F0ZWdvcmll cyBhbmQgdXAgdG8gdHdvIGNoaWxkIHN1Yi1jYXRlZ29yaWVzOyBhbmQgc28gb248L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmltYWdlY2FwdGlvbjwvc3Bhbj4gOiB0aGUg dGV4dCB0byBkaXNwbGF5IHVuZGVyIHRoZSBsYXJnZSBsaWdodGJveCBpbWFnZS4gSXQgY2Fu IGJlIGFueSBmaXhlZCBzdHJpbmcgKHJhdGhlciBwb2ludGxlc3MhKSBvciBhIGNvbWJpbmF0 aW9uIG9mIGZpeGVkIHRleHQgYW5kIDxhIGhyZWY9IiNpbWFnZV9maWVsZHMiPmltYWdlIGZp ZWxkIGNvZGVzPC9hPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+dGh1bWI8 L3NwYW4+IDogaWYgeW91IHdpc2ggdGhlIGZ1bGxzaXplIGltYWdlcyBkaXNwbGF5ZWQgaW4g dGhlIGxpZ2h0Ym94IHRvIGJlIHRoZSB0aHVtYm5haWxzLCBvciBpZiB5b3Ugd2FudCB0aGUg dGh1bWJuYWlsIGdhbGxlcnkgdG8gdXNlIHRoZSBmdWxsc2l6ZSBpbWFnZXMsIHNwZWNpZnkg aXQgd2l0aCB0aGlzIGF0dHJpYnV0ZS4gVXNlIDxjb2RlPnRodW1iPSZxdW90OzEmcXVvdDs8 L2NvZGU+IHRvIHNwZWNpZnkgdGhhdCBib3RoIGZ1bGxzaXplIGltYWdlIGFuZCB0aHVtYm5h aWwgZGlzcGxheSB0aGUgJiM4MjE2O3QmIzgyMTc7ICh0aHVtYm5haWwpIGltYWdlLiBDb252 ZXJzZWx5LCB1c2UgPGNvZGU+dGh1bWI9JnF1b3Q7MCZxdW90OzwvY29kZT4gdG8gc3BlY2lm eSB0aGF0IGJvdGggZnVsbHNpemUgYW5kIHRodW1ibmFpbHMgdXNlIHRoZSBmdWxsIHNpemUg aW1hZ2VzLiBZb3UgY2FuIGFsc28gY2hvb3NlIG9uZSBvciB0aGUgb3RoZXIgYnkgZ2l2aW5n IHRoaXMgYXR0cmlidXRlIHR3byBudW1iZXJzIHNlcGFyYXRlZCBieSBhIGNvbG9uLjxkaXYg Y2xhc3M9ImJyZWFrIj5Gb3IgJiM4MjE2O25vcm1hbCYjODIxNzsgb3BlcmF0aW9uICYjODIx MjsgaS5lLiBmdWxsc2l6ZSBpbWFnZSBpcyBmdWxsIHNpemUsIHRodW1ibmFpbCBpcyAgdGh1 bWIgc2l6ZWQgJiM4MjEyOyBzcGVjaWZ5IDxjb2RlPnRodW1iPSZxdW90OzA6MSZxdW90Ozwv Y29kZT4uIFRvIHJldmVyc2UgdGhpcywgdXNlIDxjb2RlPnRodW1iPSZxdW90OzE6MCZxdW90 OzwvY29kZT4uIE5vdGUgdGhhdCA8Y29kZT4xOjE8L2NvZGU+IGFuZCA8Y29kZT4wOjA8L2Nv ZGU+IGFsc28gd29yayB0byBzZXQgYm90aCBpbWFnZXMgdG8gdGhlIHNhbWUgc2l6ZSBpZiB5 b3UgcHJlZmVyIHRoYXQgc3ludGF4IG92ZXIgdXNpbmcgYSBzaW5nbGUgZGlnaXQ8L2Rpdj48 L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmxpbWl0PC9zcGFuPiA6IHRoZSBu dW1iZXIgb2YgaW1hZ2UgdGh1bWJuYWlscyB0byBzaG93IHBlciBwYWdlLiAwIChvciBvbWl0 dGVkKSBtZWFucyBlc3NlbnRpYWxseSB1bmxpbWl0ZWQ8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXR0LW5hbWUiPm1heGxpbWl0PC9zcGFuPiA6IHRoZSBhYnNvbHV0ZSBtYXhpbXVtIG51 bWJlciBvZiBpbWFnZXMgdG8gcHVsbCBmcm9tIHRoZSBkYXRhYmFzZS4gMCAob3Igb21pdHRl ZCkgbWVhbnMgZXNzZW50aWFsbHkgdW5saW1pdGVkPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0dC1uYW1lIj5zb3J0PC9zcGFuPiA6IGEgbGlzdCBvZiB3YXlzIHRvIG9yZGVyIHRoZSBy ZXN1bHRzOyBieSBkZWZhdWx0IGl0IGlzIGJ5IGNhdGVnb3J5LiBTcGVjaWZ5IHRoZSBzb3J0 IG9yZGVyIGJ5IGFkZGluZyA8Y29kZT5hc2M8L2NvZGU+IG9yIDxjb2RlPmRlc2M8L2NvZGU+ IHRvIGFueSB2YWx1ZSwgZS5nLiA8Y29kZT5zb3J0PSZxdW90O2NhdGVnb3J5LCBkYXRlIGRl c2MmcXVvdDs8L2NvZGU+IHdvdWxkIHNvcnQgYnkgY2F0ZWdvcnkgZmlyc3QsIHRoZW4gZGVz Y2VuZGluZyBkYXRlLiBUYWtlcyBhbnkgb2YgdGhlIDxhIGhyZWY9IiNpbWFnZV9maWVsZHMi PmltYWdlIGZpZWxkIGNvZGVzPC9hPiBwbHVzIHR3byBzcGVjaWFsIGNvZGVzOjxkaXYgY2xh c3M9ImJyZWFrIj48Y29kZT5maXhlZDwvY29kZT4gZm9yY2VzIHRodW1icyB0byBiZSBvdXRw dXQgaW4gdGhlIG9yZGVyIGdpdmVuIGluIDxjb2RlPmltYWdlaWQ8L2NvZGU+LjwvZGl2Pjxk aXYgY2xhc3M9ImJyZWFrIj48Y29kZT5yYW5kb208L2NvZGU+IGFjdHMgc2xpZ2h0bHkgZGlm ZmVyZW50bHkgZnJvbSB0aGUgb3RoZXJzOiBpZiBpdCBhcHBlYXJzIGFzIHRoZSBmaXJzdCBp dGVtIGluIHRoZSBsaXN0LCByYW5kb20gaW1hZ2VzIHdpbGwgYmUgcHVsbGVkIGZyb20gdGhl IGRhdGFiYXNlIGFuZCB0aGV5IHdpbGwgdGhlbiBiZSBzb3J0ZWQgYWNjb3JkaW5nIHRvIHRo ZSBvcHRpb25zIGxpc3RlZCBhZnRlciBpdC4gSG93ZXZlciwgaWYgaXQgYXBwZWFycyBhbnl3 aGVyZSBlbHNlIGluIHRoZSBsaXN0LCBhbnkgc29ydCBpdGVtcyBiZWZvcmUgaXQgd2lsbCBk ZXRlcm1pbmUgdGhlIG9yZGVyIG9mIGRhdGEgcHVsbGVkIGZyb20gdGhlIGRhdGFiYXNlLCBh bmQgdGhlIHJlc3VsdHMgd2lsbCA8ZW0+dGhlbjwvZW0+IGJlIG9yZGVyZWQgcmFuZG9tbHkg KGluIHRoYXQgY2FzZSwgYW55IGl0ZW1zIGxpc3RlZCBhZnRlciA8Y29kZT5yYW5kb208L2Nv ZGU+IHdpbGwgYmUgaWdub3JlZCwgdGhvdWdoIDxjb2RlPmZpeGVkPC9jb2RlPiBpcyBzdGls bCBob25vdXJlZCkuIFNlZSA8YSBocmVmPSIjZWcyIj5leGFtcGxlIDI8L2E+IGZvciBtb3Jl PC9kaXY+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50cmlnZ2VyPC9zcGFu PiA6IGluIG9yZGVyIHRvIGluZGljYXRlIHRvIHRoZSBqYXZhc2NyaXB0IGxpYnJhcnkgdGhh dCBpbWFnZXMgYXJlIHRvIGJlICYjODIyMDtsaWdodGJveGVkJiM4MjIxOyB0aGUgJiM4MjE2 O3JlbCYjODIxNzsgYXR0cml1dGUgb2YgYW5jaG9yIGltYWdlcyBpcyBvZnRlbiB1c2VkICh0 aGlja2JveCBpcyB0aGUgZXhjZXB0aW9uIGFuZCB1c2VzIGl0cyBvd24gY2xhc3MpLiBTaW5j ZSB0aGUgbWV0aG9kIG9mIGluZGljYXRpbmcgaG93IHRvIGxpZ2h0Ym94IGFuIGltYWdlIHZh cmllcywgdGhpcyBhdHRyaWJ1dGUgY2FuIGJlIHRhaWxvcmVkIHRvIG1hdGNoIHdoaWNoZXZl ciBqYXZhc2NyaXB0IGxpYnJhcnkgeW91IGFyZSB1c2luZyAoc2VlIHRoZWlyIGluc3RydWN0 aW9ucykuIEJ5IGRlZmF1bHQsIGl0IGlzIHNldCB0byAmIzgyMjA7bGlnaHRib3gtJiM4MjIx OyB3aGljaCBzaG91bGQgY292ZXIgbW9zdCBtYWpvciBsaWdodGJveCBnYWxsZXJ5IGVmZmVj dHM8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmdyb3VwbmFtZTwvc3Bhbj4g OiB3aGVuIG1ha2luZyBtdWx0aXBsZSBnYWxsZXJpZXMgb3IgZm9yIHNwZWNpYWwgYmVoYXZp b3VycywgdGhpcyBhdHRyaWJ1dGUgYWxsb3dzIHlvdSB0byBsb2dpY2FsbHkgJiM4MjIwO2dy b3VwJiM4MjIxOyB0aHVtYm5haWxzLjxiciAvPgpPbmNlIGEgdmlzaXRvciBjbGlja3MgYSB0 aHVtYm5haWwgYW5kIGNvbnRyb2wgaXMgcGFzc2VkIHRvIHRoZSBqYXZhc2NyaXB0IGNvZGUs IG5hdmlnYXRpb24gaXMgdmlhIHRoZSBOZXh0L1ByZXYgbGlua3MuIFdpdGhvdXQgc3VwcGx5 aW5nIGEgPGNvZGU+Z3JvdXBuYW1lPC9jb2RlPiwgPGVtPmFsbDwvZW0+IGxpZ2h0Ym94YWJs ZSBpbWFnZXMgZnJvbSA8ZW0+YWxsPC9lbT4gc21kX3NsaW1ib3ggdGFncyB3aWxsIGJlIGlu Y2x1ZGVkIGluIHRoZSBuYXZpZ2F0aW9uLiBTbyBpZiB5b3UgaGFkIDMgc2xpbWJveCB0YWdz IG9uIHRoZSBwYWdlLCBlYWNoIHdpdGggMjAgaW1hZ2VzIGluIHRoZW0sIHRoZSBsaWdodGJv eCB3b3VsZCBzaG93ICYjODIyMDtJbWFnZSAxIG9mIDYwJiM4MjIxOyBhbmQgYWxsb3cgeW91 IHRvIG5hdmlnYXRlIGFtb25nIGFsbCBvZiB0aGVtLjxkaXYgY2xhc3M9ImJyZWFrIj5PbiBh cnRpY2xlIGxpc3QgcGFnZXMsIHRoaXMgaXMgb2Z0ZW4gdW5kZXNpcmFibGUgc28gdG8gY2hh bmdlIHRoaXMgYmVoYXZpb3VyLCBnaXZlIGVhY2ggc2xpbWJveCB0YWcgYSB1bmlxdWUgPGNv ZGU+Z3JvdXBuYW1lPC9jb2RlPjsgdGhhdCB3aWxsIGxpbWl0IHRoZSBuYXZpZ2F0aW9uIG9u bHkgdG8gdGhlIGdyb3VwIG9mIGltYWdlcyBpbiB0aGF0IHRhZy4gPGNvZGU+Z3JvdXBuYW1l PC9jb2RlPiBjYW4gYmUgYW55IHRleHQgeW91IGxpa2UgKGl0IGRlZmF1bHRzIHRvICYjODIy MDtzbWQmIzgyMjE7KSwgb3IgeW91IGNhbiBzdXBwbHkgYW55IG9mIHRoZSA8YSBocmVmPSIj aW1hZ2VfZmllbGRzIj5pbWFnZSBmaWVsZCBjb2RlczwvYT4gdG8gc2xpY2UgYW5kIGRpY2Ug dGhlIHRodW1ibmFpbHMgYW55IHdheSB5b3UgY2hvb3NlLiBTZWUgPGEgaHJlZj0iI2VnNCI+ ZXhhbXBsZSA0PC9hPiBmb3IgbW9yZTwvZGl2PjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHQtbmFtZSI+c2hvd3BhZ2VsaW5rczwvc3Bhbj4gOiBkaXNwbGF5cyBjbGlja2FibGUgbmV4 dC9wcmV2aW91cyBsaW5rcyB1bmRlciB0aGUgdGh1bWJuYWlscywgYWxsb3dpbmcgeW91IHRv IG5hdmlnYXRlIGZyb20gcGFnZSB0byBwYWdlIGFuZCBvbmx5IHNob3cgPGNvZGU+bGltaXQ8 L2NvZGU+IHRodW1icyBwZXIgcGFnZS4gSXQgaXMgb24gKDxjb2RlPjE8L2NvZGU+KSBieSBk ZWZhdWx0IGlmIGxpbWl0IGlzIGdyZWF0ZXIgdGhhbiAwLiBVc2UgPGNvZGU+c2hvd3BhZ2Vs aW5rcz0mcXVvdDswJnF1b3Q7PC9jb2RlPiB0byB0dXJuIGl0IG9mZjwvbGk+CgkJPGxpPjxz cGFuIGNsYXNzPSJhdHQtbmFtZSI+Z2FsbGVyeWlkPC9zcGFuPiA6IGlmIHVzaW5nIDxjb2Rl PnNob3dwYWdlbGlua3M8L2NvZGU+LCB0aGlzIGlzIHRoZSBzdHJpbmcgdGhhdCBpcyB1c2Vk IHRvIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBtdWx0aXBsZSBzbGltYm94IGdhbGxlcmllcyBv biBhIHNpbmdsZSBwYWdlLiBJdCBhbGxvd3MgcGFnaW5nIHRvIGJlIGNvbnRyb2xsZWQgb24g YSBwZXItZ2FsbGVyeSBiYXNpcywgc28gY2xpY2tpbmcgTmV4dC9QcmV2IGluIG9uZSBnYWxs ZXJ5IHdvbiYjODIxNzt0IGFmZmVjdCB0aGUgdGh1bWJuYWlscyBpbiBvdGhlciBnYWxsZXJp ZXMgb24gdGhlIHNhbWUgcGFnZS4gRWFjaCBnYWxsZXJ5IG9uIGEgcGFnZSA8ZW0+bXVzdDwv ZW0+IGhhdmUgYSB1bmlxdWUgPGNvZGU+Z2FsbGVyeWlkPC9jb2RlPiBpbiBvcmRlciBmb3Ig cGFnaW5nIHRvIHdvcmsuIFRoZSBnb29kIG5ld3MgaXMgeW91JiM4MjE3O2xsIHByb2JhYmx5 IG5ldmVyIGhhdmUgdG8gdXNlIHRoaXMgYXR0cmlidXRlIGJlY2F1c2UgaXQgd29ya3MgYXV0 b21hdGljYWxseSBmb3IgeW91LiBJbiB0aGUgKHZlcnkpIHVubGlrZWx5IGV2ZW50IGl0IGdl bmVyYXRlcyB0d28gaWRlbnRpY2FsIHN0cmluZ3MsIHlvdSBjYW4gdXNlIHRoaXMgb3B0aW9u IHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IGJlaGF2aW91ci48ZGl2IGNsYXNzPSJicmVhayI+ SXQgdGFrZXMgZWl0aGVyIGEgZml4ZWQgc3RyaW5nIChlLmcuIDxjb2RlPmdhbGxlcnlpZD0m cXVvdDtteUdhbGxlcnkxJnF1b3Q7PC9jb2RlPik7IG9yIGEgJiM4MjE2Oz8mIzgyMTc7IGZv bGxvd2VkIGJ5IHVwIHRvIHR3byBudW1iZXJzIHNlcGFyYXRlZCBieSBhIGNvbG9uICh0aGUg Y29sb24gY2FuIGJlIGNoYWduZWQgd2l0aCA8Y29kZT5wYXJhbWRlbGltPC9jb2RlPikuIElu dGVybmFsbHksIHRoZSBwbHVnaW4gZ2VuZXJhdGVzIGEgdW5pcXVlICgzMi1jaGFyYWN0ZXIp IHN0cmluZyBiYXNlZCBvbiB0aGUgb3RoZXIgYXR0cmlidXRlcyBnaXZlbi4gWW91IHVzZSB0 aGUgdHdvIG51bWJlcnMgdG8gY29udHJvbCB3aGljaCBjaGFyYWN0ZXJzIGZyb20gdGhpcyBz dHJpbmcgdG8gdXNlIGluIHlvdXIgdW5pcXVlIGNvZGUuIFRoZSBmaXJzdCBudW1iZXIgaXMg dGhlIGxlbmd0aCBvZiB0aGUgc3RyaW5nIHRvIGdlbmVyYXRlIGFuZCB0aGUgMm5kIG51bWJl ciBpcyBob3cgbWFueSBjaGFyYWN0ZXJzIHRvIHNraXAgZWFjaCB0aW1lIGl0IHBpY2tzIG9u ZSBmcm9tIHRoZSBzdHJpbmcgKHdyYXBwaW5nIGJhY2sgdG8gdGhlIHN0YXJ0IG9mIHRoZSBz dHJpbmcgaWYgaXQgZmFsbHMgb2ZmIHRoZSBlbmQpLjwvZGl2PjxkaXYgY2xhc3M9ImJyZWFr Ij5BbiBleGFtcGxlOiBzdXBwb3NlIHRoZSB0YWcgZ2VuZXJhdGVkIHRoaXMgc3RyaW5nIGlu dGVybmFsbHk6IDxjb2RlPjJjYjViYmY4YjBjMmMwMjhkOGYyMzRiNGJkNDZmZGRlPC9jb2Rl Pi4gVGhlc2UgYXJlIHRoZSByZXN1bHRzIG9mIHZhcmlvdXMgdmFsdWVzOjwvZGl2PjwvbGk+ Cgk8L3VsPgoKCTx0YWJsZT4KCQk8dHI+CgkJCTx0aD5nYWxsZXJ5aWQ9PC90aD4KCQkJPHRo PnJlc3VsdDwvdGg+CgkJCTx0aD5yZW1hcmtzPC90aD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRk PiAmIzgyMjA7JiM4MjIxOyBvciAmIzgyMjA7PzQ6NiYjODIyMTsgPC90ZD4KCQkJPHRkPiAy ZmNmIDwvdGQ+CgkJCTx0ZD4gdGhlIGRlZmF1bHQgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJ PHRkPiAmIzgyMjA7PzgmIzgyMjE7IDwvdGQ+CgkJCTx0ZD4gMmNiNWJiZjggPC90ZD4KCQkJ PHRkPiB0aGUgZmlyc3QgOCBjaGFyYWN0ZXJzIDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0 ZD4gJiM4MjIwOz83OjMmIzgyMjE7IDwvdGQ+CgkJCTx0ZD4gMjVmMGM4ZiA8L3RkPgoJCQk8 dGQ+IGxlbmd0aCA3LCBjaG9vc2luZyBldmVyeSAzcmQgY2hhcmFjdGVyIDwvdGQ+CgkJPC90 cj4KCQk8dHI+CgkJCTx0ZD4gJiM4MjIwOz84OjcmIzgyMjE7IDwvdGQ+CgkJCTx0ZD4gMjgy NGY1YzggPC90ZD4KCQkJPHRkPiBsZW5ndGggOCwgY2hvb3NpbmcgZXZlcnkgN3RoIGNoYXJh Y3RlciAod3JhcHMpIDwvdGQ+CgkJPC90cj4KCTwvdGFibGU+CgoJPHVsPgoJCTxsaT48c3Bh biBjbGFzcz0iYXR0LW5hbWUiPndyYXB0YWc8L3NwYW4+IDogKFgpSFRNTCB0YWcgdG8gd3Jh cCBlYWNoICYjODIxNjtjZWxsJiM4MjE3OyAoZWZmZWN0aXZlbHkgYSB0aHVtYm5haWwgaW1h Z2UpIHdpdGguIERvIG5vdCBzcGVjaWZ5IHRoZSAmbHQ7IG9yICZndDsgY2hhcmFjdGVycy4g Rm9yIGEgdmFsaWQgcGFnZSwgdGhlIG9ubHkgdXNlZnVsIG9wdGlvbnMgYXJlICYjODIyMDtk aXYmIzgyMjE7LCAmIzgyMjA7bGkmIzgyMjE7IG9yICYjODIyMDtwJiM4MjIxOy4gRGVmYXVs dDogZW1wdHkgKGkuZS4gbm8gdGFnKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFt ZSI+dGh1bWJzaXplPC9zcGFuPiA6IGVpdGhlciBmb3Igc3BlY2lhbCBlZmZlY3RzLCBvciBp biBvcmRlciB0byB2YWxpZGF0ZSBhZ2FpbnN0IDxzcGFuIGNsYXNzPSJjYXBzIj5YSFRNTDwv c3Bhbj4sIHRoZSBpbWFnZSB0aHVtYm5haWxzIHNob3VsZCBoYXZlIDxjb2RlPndpZHRoPC9j b2RlPiBhbmQgPGNvZGU+aGVpZ2h0PC9jb2RlPiBhdHRyaWJ1dGVzLiA8c3BhbiBjbGFzcz0i Y2FwcyI+VFhQPC9zcGFuPiBjYW5ub3Qgc3VwcGx5IHRoaXMgYXV0b21hdGljYWxseSwgYnV0 IHRoaXMgYXR0cmlidXRlIHdpbGwuPGRpdiBjbGFzcz0iYnJlYWsiPlNpbXBseSBzcGVjaWZ5 IHVwIHRvIHR3byB2YWx1ZXMgc2VwYXJhdGVkIGJ5IGEgY29tbWEgKHlvdSBjYW4gb3ZlcnJp ZGUgdGhpcyB3aXRoIDxjb2RlPmRlbGltPC9jb2RlPikgdG8gZGVmaW5lIHRoZSB3aWR0aCBh bmQgaGVpZ2h0IG9mIHlvdXIgdGh1bWJuYWlscyAoaW4gcGl4ZWxzIGJ5IGRlZmF1bHQpLiBG b3IgZXhhbXBsZTogPGNvZGU+dGh1bWJzaXplPSZxdW90OzQwLCA2MCZxdW90OzwvY29kZT4g d2lsbCBzZXQgNDAtcGl4ZWwgeCA2MC1waXhlbCB0aHVtYm5haWxzLiBTdXBwbHlpbmcgb25s eSBvbmUgdmFsdWUgd2lsbCBzZXQgYm90aCB3aWR0aCBhbmQgaGVpZ2h0IHRvIHRoZSBzYW1l IHZhbHVlLiBBZGRpbmcgdW5pdHMgYWZ0ZXIgZWFjaCB2YWx1ZSAoJiM4MjIwO3B4JiM4MjIx OywgJiM4MjIwO2VtJiM4MjIxOywgJiM4MjIwOyUmIzgyMjE7IGV0Yykgd2lsbCB1c2UgdGhv c2UgdW5pdHMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBwaXhlbHMuPC9kaXY+PGRpdiBjbGFz cz0iYnJlYWsiPlRvIHNwZWNpZnkganVzdCB0aGUgd2lkdGgsIHB1dCB0aGUgY29tbWEgaW4g YnV0IGxlYXZlIHRoZSBzZWNvbmQgcGFyYW1ldGVyIGVtcHR5IChlLmcuIDxjb2RlPnRodW1i c2l6ZT0mcXVvdDsyZW0sJnF1b3Q7PC9jb2RlPikuIFNpbWlsYXJseSB0byBzcGVjaWZ5IHRo ZSBoZWlnaHQgb25seSwgbGVhdmUgdGhlIGZpcnN0IHZhbHVlIGVtcHR5IGJ5IHN0YXJ0aW5n IHdpdGggYSBjb21tYSAoZS5nLiA8Y29kZT50aHVtYnNpemU9JnF1b3Q7LDEwJSZxdW90Ozwv Y29kZT4pPC9kaXY+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj50aHVtYnRl eHQ8L3NwYW4+IDogeW91IGNhbiBwbGFjZSB0ZXh0IGFyb3VuZCBlYWNoIHRodW1ibmFpbC4g TGlrZSA8Y29kZT5pbWFnZWNhcHRpb248L2NvZGU+LCBnaXZlIGFueSBmaXhlZCB0ZXh0IGFu ZC9vciA8YSBocmVmPSIjaW1hZ2VfZmllbGRzIj5pbWFnZSBmaWVsZCBjb2RlczwvYT4gdG8g YWRkIGl0IGJlbG93IGV2ZXJ5IHRodW1ibmFpbCAoaW5zaWRlIHRhZyA8Y29kZT50aHVtYnRl eHR3cmFwPC9jb2RlPiB3aXRoIGEgY2xhc3Mgb2YgPGNvZGU+dGh1bWJ0ZXh0Y2xhc3M8L2Nv ZGU+KS4gQnkgZGVmYXVsdCwgdGV4dCBpcyBwbGFjZWQgPGNvZGU+YmVsb3c8L2NvZGU+IHRo ZSBpbWFnZSBidXQgY2FuIGJlIHBsYWNlZCBpbiBhbnkgb2YgNSBwb3NpdGlvbnMsIGFzIGdp dmVuIGluIHRoZSB0YWJsZSBiZWxvdy4gPGNvZGU+b25jaGFuZ2U8L2NvZGU+IGlzIHZlcnkg dXNlZnVsIGZvciBhcHBseWluZyBoZWFkZXJzIHdoZW4gdGhlIGNhdGVnb3J5IGNoYW5nZXMu IFNlZSA8YSBocmVmPSIjZWc2Ij5leGFtcGxlIDY8L2E+LjwvbGk+Cgk8L3VsPgoKCTx0YWJs ZT4KCQk8dHI+CgkJCTx0aD5wb3NpdGlvbjwvdGg+CgkJCTx0aD5yZW1hcmtzPC90aD4KCQk8 L3RyPgoJCTx0cj4KCQkJPHRkPiBhYm92ZSA8L3RkPgoJCQk8dGQ+IGFib3ZlIHRoZSB0aHVt Ym5haWwsIG5vdCBjbGlja2FibGUgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBiZWxv dyA8L3RkPgoJCQk8dGQ+IGJlbG93IHRoZSB0aHVtYm5haWwsIG5vdCBjbGlja2FibGUgKGRl ZmF1bHQpIDwvdGQ+CgkJPC90cj4KCQk8dHI+CgkJCTx0ZD4gYmVmb3JlIDwvdGQ+CgkJCTx0 ZD4gaW1tZWRpYXRlbHkgaW4gZnJvbnQgb2YgdGhlIHRodW1ibmFpbCwgY2xpY2thYmxlIGFz IHBhcnQgb2YgdGhlIGxpbmsgPC90ZD4KCQk8L3RyPgoJCTx0cj4KCQkJPHRkPiBhZnRlciA8 L3RkPgoJCQk8dGQ+IGltbWVkaWF0ZWx5IGZvbGxvd2luZyB0aGUgdGh1bWJuYWlsLCBjbGlj a2FibGUgYXMgcGFydCBvZiB0aGUgbGluayA8L3RkPgoJCTwvdHI+CgkJPHRyPgoJCQk8dGQ+ IG9uY2hhbmdlIDwvdGQ+CgkJCTx0ZD4gYWJvdmUgZXZlcnkgdGh1bWJuYWlsIGJ1dCA8ZW0+ b25seTwvZW0+IGlmIGl0cyBjb250ZW50cyBjaGFuZ2VzIGZyb20gdGhlIGltYWdlIGJlZm9y ZSBpdCA8L3RkPgoJCTwvdHI+Cgk8L3RhYmxlPgoKCTx1bD4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0dC1uYW1lIj50aHVtYnRleHR3cmFwPC9zcGFuPiA6IChYKUhUTUwgdGFnIHRvIHdyYXAg YXJvdW5kIGVhY2ggdGh1bWJ0ZXh0IGl0ZW0uIERvIG5vdCBzcGVjaWZ5IHRoZSAmbHQ7IG9y ICZndDsgY2hhcmFjdGVycy4gRGVmYXVsdDogc3BhbjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNz PSJhdHQtbmFtZSI+dGh1bWJ0ZXh0Y2xhc3M8L3NwYW4+IDogPHNwYW4gY2xhc3M9ImNhcHMi PkNTUzwvc3Bhbj4gY2xhc3MgdG8gYXBwbHkgdG8gZXZlcnkgdGh1bWJ0ZXh0IGl0ZW0uIERl ZmF1bHQ6IGVtcHR5IChpLmUuIG5vIGNsYXNzKTwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dHQtbmFtZSI+ZGVsaW08L3NwYW4+IDogVGhlIGRlbGltaXRlciB0byB1c2UgYmV0d2VlbiBp dGVtcyBpbiBsaXN0cyAoPGNvZGU+Y2F0ZWdvcnk8L2NvZGU+LCA8Y29kZT5pbWFnZWlkPC9j b2RlPiwgPGNvZGU+dGh1bWJ0ZXh0PC9jb2RlPiBldGMpLiBJZiB1c2luZyBnbHpfY3VzdG9t X2ZpZWxkcyAmIzgyMTI7IGVzcGVjaWFsbHkgd2l0aCBjaGVja2JveGVzIG9yIGEgbXVsdGkg c2VsZWN0ICYjODIxMjsgeW91IHNob3VsZCBjaGFuZ2UgPGNvZGU+ZGVsaW08L2NvZGU+IHRv IGEgcGlwZSAmIzgyMTY7fCYjODIxNzsgY2hhcmFjdGVyPC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0dC1uYW1lIj5wYXJhbWRlbGltPC9zcGFuPiA6IGJ5IGRlZmF1bHQgaW4gdGhlIDxj b2RlPnRodW1idGV4dDwvY29kZT4gYXR0cmlidXRlLCB5b3Ugc2VwYXJhdGUgcGFyYW1ldGVy cyBmcm9tIG9wdGlvbiBuYW1lcyB1c2luZyB0aGUgY29sb24uIEluIHNvbWUgY2FzZSB5b3Ug bWF5IHdpc2ggdG8gdXNlIHRoZSBjb2xvbiBpbiB5b3VyIHN0cmluZyBvZiB0ZXh0IHNvIHlv dSB3aWxsIG5lZWQgdG8gc2V0IHRoZSBkZWxpbWl0ZXIgdG8gc29tZXRoaW5nIGVsc2UuIEl0 IGNhbiBiZSBwcmV0dHkgbXVjaCBhbnkgc3RyaW5nIHlvdSBsaWtlIChlLmcuIDxjb2RlPnBh cmFtZGVsaW09JnF1b3Q7W1tTUVVJRCZxdW90OzwvY29kZT4pLCBqdXN0IG1ha2Ugc3VyZSBp dCBkb2VzbiYjODIxNzt0IGFwcGVhciBhbnl3aGVyZSBlbHNlIGluIHlvdXIgdGV4dDwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+Y2VsbGNsYXNzPC9zcGFuPiA6IDxzcGFu IGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGZvciBlYWNoICYjODIxNjtjZWxsJiM4 MjE3OyB0aGF0IGRpc3BsYXlzIGEgdGh1bWJuYWlsLiBEZWZhdWx0OiBlbXB0eSAoaS5lLiBu byBjbGFzcyk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR0LW5hbWUiPmxpbmtjbGFzczwv c3Bhbj4gOiA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBmb3IgdGhlIGFu Y2hvciB0YWcgb2YgZWFjaCBpbWFnZS4gRGVmYXVsdDogZW1wdHkgKGkuZS4gbm8gY2xhc3Mp PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5pbWdjbGFzczwvc3Bhbj4gOiA8 c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBmb3IgZWFjaCBpbWcgdGFnLiBE ZWZhdWx0OiBlbXB0eSAoaS5lLiBubyBjbGFzcyk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXR0LW5hbWUiPm5hdndyYXB0YWc8L3NwYW4+IDogd2hlbiA8Y29kZT5zaG93cGFnZWxpbmtz PC9jb2RlPiBpcyBvbiwgc29tZSBuZXh0L3ByZXYgbGlua3MgYXJlIHBsYWNlZCB1bmRlciBl YWNoIGdhbGxlcnkgdG8gcGFnZSB0aHJvdWdoIDxjb2RlPmxpbWl0PC9jb2RlPiB0aHVtYm5h aWxzIGF0IGEgdGltZS4gVGhpcyBhdHRyaWJ1dGUgc3BlY2lmaWVzIHRoZSAoWClIVE1MIHRh ZyB0byB3cmFwIGFyb3VuZCB0aGUgd2hvbGUgbmF2aWdhdGlvbiBibG9jay4gRG8gbm90IHNw ZWNpZnkgdGhlICZsdDsgb3IgJmd0OyBjaGFyYWN0ZXJzLiBEZWZhdWx0OiBlbXB0eSAoaS5l LiBubyB0YWcpPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1uYW1lIj5uYXZjbGFzczwv c3Bhbj4gOiA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyBmb3IgdGhlIG5l eHQvcHJldiBjb250YWluZXIuIERlZmF1bHQ6IGVtcHR5IChpLmUuIG5vIGNsYXNzKTwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+cHJldmxhYmVsPC9zcGFuPiA6IExhYmVs IGZvciB0aGUgJiM4MjE2O3ByZXZpb3VzIHBhZ2UmIzgyMTc7IG9mIHBpY3R1cmVzIHdoZW4g dXNpbmcgPGNvZGU+c2hvd3BhZ2VsaW5rczwvY29kZT4uIERlZmF1bHQ6ICYjODIyMDtQcmV2 JiM4MjIxOy4gQ3VzdG9taXNhYmxlIGluIGRpZmZlcmVudCBsYW5ndWFnZXMgdmlhIDxzcGFu IGNsYXNzPSJjYXBzIj5NTFA8L3NwYW4+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dC1u YW1lIj5uZXh0bGFiZWw8L3NwYW4+IDogTGFiZWwgZm9yIHRoZSAmIzgyMTY7bmV4dCBwYWdl JiM4MjE3OyBvZiBwaWN0dXJlcyB3aGVuIHVzaW5nIDxjb2RlPnNob3dwYWdlbGlua3M8L2Nv ZGU+LiBEZWZhdWx0OiAmIzgyMjA7TmV4dCYjODIyMTsuIEN1c3RvbWlzYWJsZSBpbiBkaWZm ZXJlbnQgbGFuZ3VhZ2VzIHZpYSA8c3BhbiBjbGFzcz0iY2FwcyI+TUxQPC9zcGFuPjwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHQtbmFtZSI+cHJldmNsYXNzPC9zcGFuPiA6IDxzcGFu IGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNzIGZvciB0aGUgJiM4MjE2O3ByZXYmIzgy MTc7IGxpbmsuIERlZmF1bHQ6IHNtZF9zbGltYm94X3ByZXY8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXR0LW5hbWUiPm5leHRjbGFzczwvc3Bhbj4gOiA8c3BhbiBjbGFzcz0iY2FwcyI+ Q1NTPC9zcGFuPiBjbGFzcyBmb3IgdGhlICYjODIxNjtuZXh0JiM4MjE3OyBsaW5rLiBEZWZh dWx0OiBzbWRfc2xpbWJveF9uZXh0PC9saT4KCTwvdWw+CgoJPGgzIGlkPSJmaWVsZHMiPkFy dGljbGUgZmllbGQgY29kZXM8L2gzPgoKCTxwPlVzZSB0aGVzZSBjb2RlcyB0byBncmFiIGl0 ZW1zIGZyb20gdGhlIGN1cnJlbnRseSBkaXNwbGF5ZWQgYXJ0aWNsZSBhbmQgaW5qZWN0IHRo ZW0gaW50byBzbWRfc2xpbWJveCB0YWcgYXR0cmlidXRlcy4gQWxsIG9mIHRoZSB0YWdzIGNh biBiZSBjb21iaW5lZCB3aXRoIGZpeGVkIHRleHQgKGUuZy4gPGNvZGU+Y2F0ZWdvcnk9JnF1 b3Q7bXljYXQtP2FydGljbGVfaW1hZ2VfP3MmcXVvdDs8L2NvZGU+IG1pZ2h0IGNob29zZSBp bWFnZXMgZnJvbSB0aGUgY2F0ZWdvcnkgJiM4MjIwO215Y2F0LTEyX2xpb24mIzgyMjE7IGlm IHRoZSBjdXJyZW50IGFydGljbGUgd2FzIGluIHNlY3Rpb24gJiM4MjE2O2xpb24mIzgyMTc7 IGFuZCBoYWQgYW4gYXJ0aWNsZSBpbWFnZSBvZiAmIzgyMTY7MTImIzgyMTc7KS4gTm90ZSB0 aGF0IGFueSBhcnRpY2xlIG9yIGN1c3RvbSBmaWVsZHMgJiM4MjEyOyBpbmNsdWRpbmcgdGhv c2UgdXRpbGlzaW5nIGdsel9jdXN0b21fZmllbGRzICYjODIxMjsgbWF5IGNvbnRhaW4gbGlz dHMgb2YgaXRlbXMuPC9wPgoKCTx1bD4KCQk8bGk+PGNvZGU+P2M8L2NvZGU+IDogdXNlIHRo ZSBjdXJyZW50IGdsb2JhbCAoYXJ0aWNsZSkgY2F0ZWdvcnk8L2xpPgoJCTxsaT48Y29kZT4h YzwvY29kZT4gOiB1c2VzIGV2ZXJ5dGhpbmcgZXhjZXB0IHRoZSBjdXJyZW50IGdsb2JhbCBj YXRlZ29yeTwvbGk+CgkJPGxpPjxjb2RlPj9zPC9jb2RlPiA6IHVzZSB0aGUgY3VycmVudCA8 c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBzZWN0aW9uPC9saT4KCQk8bGk+PGNvZGU+ IXM8L2NvZGU+IDogdXNlcyBldmVyeXRoaW5nIGV4Y2VwdCB0aGUgY3VycmVudCBzZWN0aW9u PC9saT4KCQk8bGk+PGNvZGU+P3Q8L2NvZGU+IDogdXNlIHRoZSBjdXJyZW50IGFydGljbGUm IzgyMTc7cyB1cmwtdGl0bGU8L2xpPgoJCTxsaT48Y29kZT4hdDwvY29kZT4gOiB1c2VzIGFs bCB1cmwtdGl0bGVzIGV4Y2VwdCB0aGUgY3VycmVudCBhcnRpY2xlIChwcm9iYWJseSBub3Qg bXVjaCB1c2UhKTwvbGk+CgkJPGxpPjxjb2RlPj9pZDwvY29kZT4gOiB1c2UgdGhlIGN1cnJl bnQgYXJ0aWNsZSYjODIxNztzIElEIGFzIHRoZSBuYW1lIG9mIGFuIGltYWdlIGNhdGVnb3J5 LiBVc2VmdWwgdG8gbWFrZSBhIHBlci1hcnRpY2xlIGltYWdlIGdhbGxlcnkgKGUuZy4gPGNv ZGU+Y2F0ZWdvcnk9JnF1b3Q7YXJ0aWNsZS0/aWQmcXVvdDs8L2NvZGU+KTwvbGk+CgkJPGxp Pjxjb2RlPiFpZDwvY29kZT4gOiB1c2VzIGFsbCBpbWFnZSBJRHMgZXhjZXB0IHRoZSBjdXJy ZW50IGFydGljbGU8L2xpPgoJCTxsaT48Y29kZT4/ZmllbGRuYW1lPC9jb2RlPiA6IGxvb2tz IGluIHRoZSBnaXZlbiBmaWVsZG5hbWUgb2YgdGhlIGN1cnJlbnQgYXJ0aWNsZS4gRGVzaWdu ZWQgcHJpbWFyaWx5IGZvciB1c2Ugd2l0aCBjdXN0b20gZmllbGRzIChlLmcuIDxjb2RlPmlt YWdlaWQ9JnF1b3Q7P2N1c3RvbTEmcXVvdDs8L2NvZGU+KSwgaXQgY2FuIGFsc28gYmUgYW55 IG90aGVyIGZpZWxkIGZyb20geW91ciBhcnRpY2xlLiBDb21tb24gZmllbGRzIGFyZSA8Y29k ZT4/ZXhjZXJwdDwvY29kZT4gQD9jYXRlZ29yeTFAIDxjb2RlPj9rZXl3b3JkczwvY29kZT4g QD9hcnRpY2xlX2ltYWdlQCBvciA8Y29kZT4/YXV0aG9yaWQ8L2NvZGU+LjwvbGk+Cgk8L3Vs PgoKCTxwPlRvIG5lZ2F0ZSBhbnkgY2F0ZWdvcnkgc2VsZWN0aW9uLCB1c2UgPGNvZGU+IWNh dGVnb3J5PC9jb2RlPiBvciA8Y29kZT4hZmllbGRfbmFtZTwvY29kZT4uIElmIHlvdSBsaXN0 IHNwZWNpZmljIGltYWdlIGNhdGVnb3JpZXMgKGUuZy4gPGNvZGU+Y2F0ZWdvcnk9JnF1b3Q7 IWxhbmRzY2FwZSwgIWJpcmRzJnF1b3Q7PC9jb2RlPikgdGhvc2UgY2F0ZWdvcmllcyB3aWxs IGJlIGV4Y2x1ZGVkLiBJZiB5b3Ugc3BlY2lmeSBhIGZpZWxkIG5hbWUgc3VjaCBhcyA8Y29k ZT4ha2V5d29yZHM8L2NvZGU+LCB0aGUgY29udGVudHMgb2YgdGhhdCBmaWVsZCB3aWxsIGJl IHJlYWQgYW5kIHRoZSBsaXN0IG9mIGltYWdlIGNhdGVnb3JpZXMgZm91bmQgdGhlcmUgd2ls bCBiZSBleGNsdWRlZC48L3A+CgoJPHA+Tm90ZSB0aGF0IGlmIHlvdSBzcGVjaWZ5IGEgZmll bGQgbmFtZSBhbmQgdGhhdCBmaWVsZCBpbiB0aGUgYXJ0aWNsZSBpcyBlbXB0eSwgdGhlIG5h bWUgd2lsbCBiZSB0cmVhdGVkIGFzIGlmIGl0IHdhcyBhbiBhY3R1YWwgaW1hZ2UgY2F0ZWdv cnkuIFNvIGlmIHlvdSBzcGVjaWZpZWQgPGNvZGU+Y2F0ZWdvcnk9JnF1b3Q7P2tleXdvcmRz JnF1b3Q7PC9jb2RlPiBhbmQgdGhlICYjODIxNjtrZXl3b3JkcyYjODIxNzsgZmllbGQgaW4g dGhlIGN1cnJlbnQgYXJ0aWNsZSB3YXMgZW1wdHksIGl0IHdvdWxkIGxvb2sgZm9yIGFuIGlt YWdlIGNhdGVnb3J5IG5hbWVkICYjODIyMDtrZXl3b3JkcyYjODIyMTsuPC9wPgoKCTxwPkFs c28gbm90ZSB0aGF0LCByZWdhcmRsZXNzIG9mIHRoZSBvcmRlciB5b3UgbGlzdCB0aGVtLCBh bGwgJiM4MjE2O3Bvc2l0aXZlcyYjODIxNzsgd2lsbCBiZSBwcm9jZXNzZWQgZmlyc3QsIHRo ZW4gYW55IGV4Y2x1c2lvbnMgYXBwbGllZC48L3A+CgoJPGgzIGlkPSJpbWFnZV9maWVsZHMi PkltYWdlIGZpZWxkIGNvZGVzPC9oMz4KCgk8cD5MaWtlIDxhIGhyZWY9IiNmaWVsZHMiPmFy dGljbGUgZmllbGQgY29kZXM8L2E+LCB0aGVzZSBjYW4gYmUgc3BlY2lmaWVkIHRvIGdyYWIg cGllY2VzIG9mIGluZm9ybWF0aW9uIGZyb20gdGhlIGN1cnJlbnQgaW1hZ2UuIE5vdGUgdGhh dCB0aGUgJiM4MjE2O25lZ2F0aW9uJiM4MjE3OyB2ZXJzaW9ucyBkb24mIzgyMTc7dCBtYWtl IHNlbnNlIGhlcmUgc28gdGhlIGNvZGVzIGFyZSAmIzgyMTY7aW5jbHVkZSBvbmx5JiM4MjE3 Ozo8L3A+CgoJPHVsPgoJCTxsaT48Y29kZT4/Y2F0ZWdvcnk8L2NvZGU+IDogaW1hZ2UgY2F0 ZWdvcnk8L2xpPgoJCTxsaT48Y29kZT4/Y2FwdGlvbjwvY29kZT4gOiBpbWFnZSBjYXB0aW9u PC9saT4KCQk8bGk+PGNvZGU+P2FsdDwvY29kZT4gOiBpbWFnZSBhbHQgdGV4dDwvbGk+CgkJ PGxpPjxjb2RlPj9uYW1lPC9jb2RlPiA6IGltYWdlICh1c3VhbGx5IGZpbGUpIG5hbWU8L2xp PgoJCTxsaT48Y29kZT4/aWQ8L2NvZGU+IDogaW1hZ2UgSUQ8L2xpPgoJCTxsaT48Y29kZT4/ ZGF0ZTwvY29kZT4gOiBpbWFnZSB1cGxvYWQgZGF0ZXN0YW1wPC9saT4KCQk8bGk+PGNvZGU+ P2F1dGhvcjwvY29kZT4gOiBpbWFnZSBhdXRob3IgKHdobyB1cGxvYWRlZCBpdCB0byA8c3Bh biBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPik8L2xpPgoJCTxsaT48Y29kZT4/ZXh0PC9jb2Rl PiA6IGltYWdlIGZpbGUgZXh0ZW5zaW9uPC9saT4KCQk8bGk+PGNvZGU+P3dpZHRoPC9jb2Rl PiA6IGltYWdlIHdpZHRoIGluIHBpeGVsczwvbGk+CgkJPGxpPjxjb2RlPj9oZWlnaHQ8L2Nv ZGU+IDogaW1hZ2UgaGVpZ2h0IGluIHBpeGVsczwvbGk+CgkJPGxpPjxjb2RlPj91cmw8L2Nv ZGU+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8L3NwYW4+IG9mIHRoZSBmdWxsLXNp emUgaW1hZ2UgJiM4MjEyOyBjYW4gb25seSBiZSB1c2VkIHdpdGggPGNvZGU+aW1hZ2VjYXB0 aW9uPC9jb2RlPiBvciA8Y29kZT50aHVtYnRleHQ8L2NvZGU+PC9saT4KCTwvdWw+CgoJPHA+ Rm9yIGV4YW1wbGUsIHRvIHNob3cgdGhlIGFsdCB0ZXh0IHVuZGVyIHRoZSBtYWluIGltYWdl IGluc3RlYWQgb2YgdGhlIGNhcHRpb24gKHdoaWNoIGl0IG90aGVyd2lzZSB1c2VzIGJ5IGRl ZmF1bHQpIDo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj5p bWFnZWNhcHRpb249JnF1b3Q7P2FsdCZxdW90Owo8L2NvZGU+PC9wcmU+CgoJPHA+Rm9yIHRo ZSBhZHZlbnR1cm91czo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJs b2NrIj5pbWFnZWNhcHRpb249JnF1b3Q7P2NhcHRpb24gYnkgP2F1dGhvcgogICAgIFs/ZXh0 IHBpY3R1cmU6ID93aWR0aHg/aGVpZ2h0cHhdJnF1b3Q7CjwvY29kZT48L3ByZT4KCgk8cD5U aGF0IG1pZ2h0IHNob3cgYSBjYXB0aW9uIHN1Y2ggYXMgJiM4MjIwO0xha2UgV2luZGVybWVy ZSBhdCBuaWdodCBieSBTdGVmIFtqcGcgcGljdHVyZTogODAwJiMyMTU7NjAwcHhdJiM4MjIx Oy48L3A+CgoJPHA+VG8gcHV0IChhYm92ZSBlYWNoIHRodW1ibmFpbCkgdGhlIHRleHQgJiM4 MjIwO0ZpbGVkIGluJiM4MjIxOyBhbmQgdGhlbiB0aGUgY2F0ZWdvcnkgbmFtZSBvZiB0aGUg aW1hZ2UsIGZvbGxvd2VkIGJ5IGl0cyBmaWxlbmFtZSBpbiBzcXVhcmUgYnJhY2tldHM6PC9w PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+dGh1bWJ0ZXh0PSZx dW90O2Fib3ZlOiBGaWxlZCBpbiA/Y2F0ZWdvcnkgWz9uYW1lXSZxdW90OyZndDsKPC9jb2Rl PjwvcHJlPgoKCTxwPllvdSBjYW4gY29tYmluZSBkZWZpbml0aW9ucywgZWFjaCBzZXBhcmF0 ZWQgYnkgYSBjb21tYSwgZm9yIGV4YW1wbGU6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxj b2RlIGNsYXNzPSJibG9jayI+dGh1bWJ0ZXh0PSZxdW90O2Fib3ZlOkZpbGVkIGluID9jYXRl Z29yeSBbP25hbWUgKD93aWR0aCB4ID9oZWlnaHQpXSwKICAgICBiZWxvdzo/YXV0aG9yJnF1 b3Q7Jmx0Oy9jb2RlJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VGhhdCB3b3VsZCBhZGQgdGhl IGNhdGVnb3J5LCBmaWxlbmFtZSwgd2lkdGggYW5kIGhlaWdodCBhYm92ZSB0aGUgaW1hZ2Ug YW5kIHRoZSBhdXRob3IgKHRoZSBwZXJzb24gd2hvIHVwbG9hZGVkIGl0KSBiZWxvdyB0aGUg dGh1bWJuYWlsLiBZb3UgY2FuIGdldCBhcyBjcmVhdGl2ZSBhcyB5b3UgbGlrZS48L3A+CgoJ PHA+Tm90ZSB0aGF0IGlmIHlvdSB3YW50IHRvIHVzZSBhIGNvbG9uIGluIHRoZSB0ZXh0IGl0 c2VsZiwgeW91IHdpbGwgbmVlZCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBhbmQgc2V0IGl0 IHRvIGFueSBzdHJpbmcgb2YgY2hhcmFjdGVycyB5b3UgcHJlZmVyIHVzaW5nIHRoZSA8Y29k ZT5wYXJhbWRlbGltPC9jb2RlPiBvcHRpb24uPC9wPgoKCTxoMiBpZD0iZXhhbXBsZXMiPkV4 YW1wbGVzPC9oMj4KCgk8aDMgaWQ9ImVnMSI+RXhhbXBsZSAxPC9oMz4KCgk8cD5TaG93IGFs bCBpbWFnZXMgaW4gdGhlIGxhbmRzY2FwZSBjYXRlZ29yeSwgdGVuIGF0IGEgdGltZTo8L3A+ Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9z bGltYm94IGNhdGVnb3J5PSZxdW90O2xhbmRzY2FwZSZxdW90OyBsaW1pdD0mcXVvdDsxMCZx dW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJlZzIiPkV4YW1wbGUgMjwvaDM+ Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9z bGltYm94IGNhdGVnb3J5PSZxdW90O2RvZ3MsIGJpcmRzJnF1b3Q7IGxpbWl0PSZxdW90Ozkm cXVvdDsKICAgICB0aHVtYnRleHQ9JnF1b3Q7YWZ0ZXI6P2NhcHRpb24mcXVvdDsgd3JhcHRh Zz0mcXVvdDtsaSZxdW90OwogICAgIGNlbGxjbGFzcz0mcXVvdDtjZWxsJnF1b3Q7IC8mZ3Q7 CjwvY29kZT48L3ByZT4KCgk8cD5TaG93IGFsbCBpbWFnZXMgaW4gdGhlIGRvZ3MgYW5kIGJp cmRzIGNhdGVnb3JpZXMsIDkgcGVyIHBhZ2UuIEFkZCB0aGUgY2FwdGlvbnMgdW5kZXIgdGhl IHRodW1ibmFpbHMgYW5kIG1ha2UgdGhlbSBjbGlja2FibGUgdG9vLiBXcmFwIGVhY2ggaW1h Z2UgaW4gYSA8Y29kZT5saTwvY29kZT4gdGFnIGFuZCBnaXZlIGVhY2ggYSBjbGFzcyBvZiAm IzgyMTY7Y2VsbCYjODIxNzsgKGltcGxpZXMgeW91IG11c3QgbWFudWFsbHkgYWRkIGEgY29y cmVzcG9uZGluZyA8Y29kZT4mbHQ7dWwmZ3Q7PC9jb2RlPiB0YWcgYXJvdW5kIHRoZSBwbHVn aW4gaW4gb3JkZXIgdG8gbWFpbnRhaW4gcGFnZSB2YWxpZGl0eSkuPC9wPgoKCTxwPklmIHlv dSBhZGRlZCA8Y29kZT5zb3J0PSZxdW90O2RhdGUgZGVzYywgcmFuZG9tJnF1b3Q7PC9jb2Rl PiB0byB0aGUgYWJvdmUgdGFnLCB5b3Ugd291bGQgZ2V0IHRoZSBtb3N0IHJlY2VudCA5IGlt YWdlcyBvbiB0aGUgZmlyc3QgcGFnZSwgYnV0IHNob3duIGluIGEgcmFuZG9tIG9yZGVyLiBU aGUgbmV4dCBwYWdlIHdvdWxkIHNob3cgdGhlIG5leHQgbW9zdC1yZWNlbnQgOSBpbWFnZXMs IGFnYWluIHNvcnRlZCByYW5kb21seSB3aXRoaW4gdGhlbXNlbHZlcy48L3A+CgoJPHA+SG93 ZXZlciwgc3dpdGNoaW5nIHRoZSBhdHRyaWJ1dGVzIHRvOiA8Y29kZT5zb3J0PSZxdW90O3Jh bmRvbSwgZGF0ZSBkZXNjJnF1b3Q7PC9jb2RlPiB3b3VsZCBjaGFuZ2UgdGhlIG91dHB1dC4g WW91IHdvdWxkIHRoZW4gZ2V0IDkgcmFuZG9tIGltYWdlcyBvbiB0aGUgZmlyc3QgcGFnZSwg d2l0aCB0aGUgbW9zdCByZWNlbnQgb25lcyBvZiB0aGUgZ3JvdXAgc2hvd24gZmlyc3QuIENs aWNraW5nICYjODIxNjtOZXh0JiM4MjE3OyB3b3VsZCBzaG93IGFub3RoZXIgOSByYW5kb20g aW1hZ2VzIChzb21lIG1heSBiZSB0aGUgc2FtZSBhcyBwYWdlIDEpLCBhZ2FpbiBzb3J0ZWQg aW4gZGVzY2VuZGluZyBvcmRlciBvZiBkYXRlLiBGb3IgdGhpcyByZWFzb24gKHVubGVzcyB5 b3UmIzgyMTc7cmUgc2ltcGx5IHVzaW5nIHRoZSBwbHVnaW4gdG8gcHJldHR5IHVwIGEgcGFn ZSB3aXRoIHJhbmRvbSBpbWFnZXMpIGlmIHlvdSYjODIxNztyZSB1c2luZyByYW5kb20gYXMg dGhlIGZpcnN0IGFyZ3VtZW50IHRvIDxjb2RlPnNvcnQ8L2NvZGU+LCB5b3UgcHJvYmFibHkg d2FudCB0byBkaXNhYmxlIHBhZ2luZyBieSBzZXR0aW5nIHNob3dwYWdlbGlua3M9JiM4MjIw OzAmIzgyMjE7LjwvcD4KCgk8aDMgaWQ9ImVnMyI+RXhhbXBsZSAzPC9oMz4KCjxwcmUgY2xh c3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3NsaW1ib3ggaW1h Z2VpZD0mcXVvdDs0OCwgMjUsIDQmcXVvdDsKICAgICBjYXRlZ29yeT0mcXVvdDtkb2dzLCA/ Y3VzdG9tMSZxdW90OyBzdWJjYXRzPSZxdW90O2FsbCZxdW90OyBsaW1pdD0mcXVvdDsyMCZx dW90OwogICAgIHByZXZsYWJlbD0mcXVvdDtCYWNrJnF1b3Q7IHNvcnQ9JnF1b3Q7bmFtZSBk ZXNjLCBjYXRlZ29yeSZxdW90OyAvJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+U2hvdyBpbWFn ZXMgd2l0aCBJRHMgNDgsIDI1IGFuZCA0IGFzIHdlbGwgYXMgYWxsIGltYWdlcyBpbiB0aGUg ZG9ncyBjYXRlZ29yeSBhbmQgYWxzbyBwdWxsIHRoZSBpbWFnZSBjYXRlZ29yeSBuYW1lcyBm cm9tIHRoZSBjdXJyZW50IGFydGljbGUmIzgyMTc7cyBjdXN0b20xIGZpZWxkIChpZiBjdXN0 b20xIGhlbGQgPGNvZGU+YmlyZHMsIGxhbmRzY2FwZXM8L2NvZGU+IHlvdSYjODIxNztkIGdl dCBwaWN0dXJlcyBmcm9tIGFsbCB0aHJlZSBjYXRlZ29yaWVzIGFuZCBhbGwgdGhlaXIgc3Vi LWNhdGVnb3JpZXMpLiBUaGUgdGFnIGFsc28gbGltaXRzIHRoZSBudW1iZXIgb2YgdGh1bWJz IHBlciBwYWdlIHRvIDIwLCBjaGFuZ2VzIHRoZSBwcmV2aW91cyBwYWdlIGxhYmVsIHRvICYj ODIyMDtCYWNrJiM4MjIxOyBhbmQgc29ydHMgdGhlIGltYWdlcyBpbiBkZXNjZW5kaW5nIG9y ZGVyIG9mIG5hbWUsIHRoZW4gY2F0ZWdvcnkuPC9wPgoKCTxoMyBpZD0iZWc0Ij5FeGFtcGxl IDQ8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4 cDpzbWRfc2xpbWJveCBjYXRlZ29yeT0mcXVvdDtzdGF0aWMsIGNhdC0/aWQmcXVvdDsKICAg ICBpbWFnZWlkPSZxdW90OyFhcnRpY2xlX2ltYWdlJnF1b3Q7IGxpbWl0PSZxdW90OzYmcXVv dDsgZ3JvdXBuYW1lPSZxdW90Oz9jJnF1b3Q7CiAgICAgc2hvd3BhZ2VsaW5rcz0mcXVvdDsw JnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5JZiB0aGUgcGVyc29uIGlzIGN1cnJl bnRseSB2aWV3aW5nIGFydGljbGUgSUQgNjcsIHNob3cgYWxsIGltYWdlcyBmcm9tIHRoZSAm IzgyMTY7c3RhdGljJiM4MjE3OyBjYXRlZ29yeSBhbmQgdGhlICYjODIxNjtjYXQtNjcmIzgy MTc7IGNhdGVnb3J5LiBJZiBhbnkgaW1hZ2UgaW4gZWl0aGVyIG9mIHRob3NlIGNhdGVnb3Jp ZXMgaXMgZm91bmQgdG8gaGF2ZSBhbiBJRCBvZiB0aGUgYXJ0aWNsZSBpbWFnZSBmcm9tIHRo ZSBjdXJyZW50IGFydGljbGUsIHRoYXQgcGljdHVyZSB3aWxsIGJlIGlnbm9yZWQuIE9ubHkg c2hvdyA2IHBpY3R1cmVzIGFuZCBkb24mIzgyMTc7dCBzaG93IHRoZSBuZXh0L3ByZXYgbGlu a3Mgb24gdGhlIHBhZ2UuPC9wPgoKCTxwPkFsc28sIGdyb3VwIHRoZSBsaWdodGJveCBwaWN0 dXJlcyBieSBpbWFnZSBjYXRlZ29yeS4gVGhpcyBtZWFucyB0aGF0IGlmIHNvbWVvbmUgY2xp Y2tzIG9uIGEgcGljdHVyZSBmcm9tIHRoZSAmIzgyMjA7c3RhdGljJiM4MjIxOyBjYXRlZ29y eSwgdGhlIFNsaW1ib3ggbmV4dC9wcmV2IGxpbmtzIG9ubHkgbmF2aWdhdGUgYmV0d2VlbiB0 aG9zZSBwaWN0dXJlcy4gVGhlIHVzZXIgd2lsbCBoYXZlIHRvIGNsb3NlIHRoZSBsaWdodGJv eCBhbmQgY2xpY2sgYSBwaWN0dXJlIGluIHRoZSBjYXQtNjcgY2F0ZWdvcnkgdG8gc2hvdyBw aWN0dXJlcyBmcm9tIHRoZSBvdGhlciBncm91cC48L3A+CgoJPHA+T24gdGhlIHN1cmZhY2Ug dGhlIGdyb3VwbmFtZSBvcHRpb24gbWF5IHNlZW0gYSBsaXR0bGUgc3VwZXJmbHVvdXMgYnV0 IGl0IGNhbiBiZSB1c2VmdWwgdG8gYWxsb3cgcGVvcGxlIHRvIG9ubHkgZmxpY2sgdGhyb3Vn aCBhIHN1YnNldCBvZiB0aGUgcGljdHVyZXMgb24gZWFjaCBwYWdlLCBiYXNlZCBvbiB0aGVp ciBjYXRlZ29yeSwgZmlsZSBuYW1lLCBhdXRob3IsIHdpZHRoL2hlaWdodCwgYWx0L2NhcHRp b24sIGV2ZW4gSUQgaWYgeW91IHdhbnQgdGhlbSB0byBhbGwgYmUgdW5pcXVlIGVudGl0aWVz LiBZb3UgY2FuIGFsc28gdXNlIGEgZml4ZWQgdmFsdWUgcmVhZCBmcm9tIGEgZmllbGQgaW4g dGhlIGN1cnJlbnQgYXJ0aWNsZSwgZS5nLiA8Y29kZT5ncm91cG5hbWU9JnF1b3Q7P2N1c3Rv bTImcXVvdDs8L2NvZGU+LiBVc2VmdWwgd2hlbiB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGgg c29ydC48L3A+CgoJPGgzIGlkPSJlZzUiPkV4YW1wbGUgNTwvaDM+Cgo8cHJlIGNsYXNzPSJi bG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9zbGltYm94IGNhdGVnb3J5 PSZxdW90Oz9jLCA/Y3VzdG9tMSwgIWN1c3RvbTIsICFzdGF0aWMmcXVvdDsKICAgICBsaW1p dD0mcXVvdDs4JnF1b3Q7IG1heGxpbWl0PSZxdW90OzMyJnF1b3Q7IC8mZ3Q7CjwvY29kZT48 L3ByZT4KCgk8cD5BIGJpdCBvZiBhIGNvbnRyaXZlZCBleGFtcGxlIHRoYXQgc2hvd3MgaG93 IGNyYXp5IHlvdSBjYW4gZ2V0OiBUaGlzIHdpbGwgc2hvdyBhIG1heGltdW0gb2YgMzIgaW1h Z2VzIGZyb20gYW4gaW1hZ2UgY2F0ZWdvcnkgd2l0aCB0aGUgc2FtZSBuYW1lIGFzIHRoZSBj dXJyZW50IGdsb2JhbCBjYXRlZ29yeSwgcGx1cyBhbGwgaW1hZ2VzIGZyb20gY2F0ZWdvcmll cyBsaXN0ZWQgaW4gdGhlIGN1c3RvbTEgZmllbGQgb2YgdGhlIGN1cnJlbnQgYXJ0aWNsZSBi dXQgPGVtPmV4Y2x1ZGluZzwvZW0+IGltYWdlcyBmcm9tIGNhdGVnb3JpZXMgbGlzdGVkIGlu IGN1c3RvbTIgYW5kIGFsc28gZXhjbHVkaW5nIHRoZSAmIzgyMTY7c3RhdGljJiM4MjE3OyBj YXRlZ29yeS4gU2hvdyA4IGltYWdlIHRodW1ibmFpbHMgYXQgYSB0aW1lIChpLmUuIDQgcGFn ZXMpLjwvcD4KCgk8aDMgaWQ9ImVnNiI+RXhhbXBsZSA2PC9oMz4KCjxwcmUgY2xhc3M9ImJs b2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3NsaW1ib3ggY2F0ZWdvcnk9 JnF1b3Q7P1Bob3RvIGNvdW50cnkmcXVvdDsgc3ViY2F0cz0mcXVvdDthbGwmcXVvdDsKICAg ICB0aHVtYnRleHQ9JnF1b3Q7b25jaGFuZ2U6ICZhbXA7YW1wO2x0O2g0JmFtcDthbXA7Z3Q7 P2NhdGVnb3J5JmFtcDthbXA7bHQ7L2g0JmFtcDthbXA7Z3Q7JnF1b3Q7CiAgICAgZ3JvdXBu YW1lPSZxdW90Oz9jJnF1b3Q7IHRodW1idGV4dHdyYXA9JnF1b3Q7JnF1b3Q7IC8mZ3Q7Cjwv Y29kZT48L3ByZT4KCgk8cD5BIHdvcmstc2F2aW5nIHRhZyEgUHVsbHMgb3V0IGFsbCBwaWN0 dXJlcyBmcm9tIHRoZSBjYXRlZ29yeSBnaXZlbiBpbiB0aGUgY3VzdG9tIGZpZWxkIGxhYmVs bGVkICYjODIxNjtQaG90byBjb3VudHJ5JiM4MjE3OywgaW5jbHVkaW5nIGFueSBzdWItY2F0 ZWdvcmllcy4gQnkgZGVmYXVsdCBpdCBzb3J0cyB0aGVtIGJ5IGNhdGVnb3J5LCB3aGljaCBp cyBwZXJmZWN0LiBUaGUgY2xldmVyIGJpdCBpcyA8Y29kZT50aHVtYnRleHQ8L2NvZGU+LCB3 aGljaCB0ZWxscyB0aGUgcGx1Z2luIHRvIGRpc3BsYXkgdGhlIGNhdGVnb3J5IG5hbWUgYWJv dmUgdGhlIGltYWdlcyBidXQgPGVtPm9ubHk8L2VtPiB3aGVuIHRoZSBjYXRlZ29yeSBjaGFu Z2VzLiBUaGUgcmVzdWx0IGlzIGNhdGVnb3J5IGhlYWRpbmdzIChzdXJyb3VuZGVkIGJ5IGg0 IHRhZ3MsIHdpdGhvdXQgdGhlIGRlZmF1bHQgPGNvZGU+dGh1bWJ0ZXh0d3JhcDwvY29kZT4g c3BhbikgYWJvdmUgZWFjaCBncm91cCBvZiBpbWFnZXMuIE5vdGUgdGhhdCBpZiB5b3Ugd2Fu dCB0byBpbmNsdWRlIHNpbXBsZSA8c3BhbiBjbGFzcz0iY2FwcyI+SFRNTDwvc3Bhbj4gdGFn cyB5b3UgY2FuLCBidXQgdGhleSBtdXN0IGJlIGVuY29kZWQgd2l0aCB0aGVpciBjaGFyYWN0 ZXIgY29kZSBlcXVpdmFsZW50cyBvciA8c3BhbiBjbGFzcz0iY2FwcyI+VFhQPC9zcGFuPiBn ZXRzIG1hZC48L3A+CgoJPHA+VGhlIDxjb2RlPmdyb3VwbmFtZTwvY29kZT4gb3B0aW9uIHRl bGxzIHNsaW1ib3ggdG8gb25seSBwZXJtaXQgc3RlcHBpbmcgdGhyb3VnaCBlYWNoIGltYWdl IGluIGVhY2ggY2F0ZWdvcnkuIFlvdSBjYW5ub3QgJiM4MjE2O2ZhbGwgb2ZmJiM4MjE3OyB0 aGUgZW5kIG9mIG9uZSBjYXRlZ29yeSBpbnRvIHRoZSBuZXh0IHdoZW4gdXNpbmcgdGhlIE5l eHQvUHJldiBsaW5rcyBpbiB0aGUgbGlnaHRib3guPC9wPgoKCTxwPklmIHlvdSB3YW50ZWQg dG8gc2hvdyBjYXRlZ29yeSBoZWFkaW5ncyB0aGF0IGdyb3VwZWQgcGljdHVyZXMgYnkgYXV0 aG9yIGFzIHdlbGwgeW91IGNvdWxkIHVzZTo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj5zb3J0PSZxdW90O2NhdGVnb3J5LCBhdXRob3ImcXVvdDsKICAg ICB0aHVtYnRleHQ9JnF1b3Q7b25jaGFuZ2U6ICZhbXA7YW1wO2x0O2g0JmFtcDthbXA7Z3Q7 P2NhdGVnb3J5CiAgICAgKGJ5ID9hdXRob3IpJmFtcDthbXA7bHQ7L2g0JmFtcDthbXA7Z3Q7 JnF1b3Q7CjwvY29kZT48L3ByZT4KCgk8cD5BZGQgYSBsaXR0bGUgYml0IG9mIDxzcGFuIGNs YXNzPSJjYXBzIj5DU1M8L3NwYW4+IGFuZCB5b3VyIHNpbmdsZSBzbGltYm94IHRhZyBjYW4g bG9vayBsaWtlIGl0JiM4MjE3O3MgY3JlYXRpbmcgbXVsdGlwbGUgZ2FsbGVyaWVzLCBhbGwg YXV0b21hdGljYWxseS48L3A+CgoJPGgyIGlkPSJzdHlsZSI+U3R5bGluZyB3aXRoIDxzcGFu IGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+PC9oMj4KCgk8cD5UaGVyZSBhcmUgKGRlbGliZXJh dGVseSkgdmVyeSBmZXcgbGF5b3V0IGF0dHJpYnV0ZXMgZm9yIHRoZSBwbHVnaW4gYmVjYXVz ZSBwcmV0dHkgbXVjaCBldmVyeXRoaW5nIGNhbiBiZSBhY2Nlc3NlZCBmcm9tIDxzcGFuIGNs YXNzPSJjYXBzIj5DU1M8L3NwYW4+IHRvIGxheSB5b3VyIGltYWdlcyBvdXQgaG93ZXZlciB5 b3UgbGlrZSB0aGVtLiBXYW50IHRvIGNoYW5nZSB0aGUgbnVtYmVyIG9mIGltYWdlcyBwZXIg cm93PyBDaGFuZ2UgdGhlIHdpZHRoIG9mIHRoZSBjb250YWluaW5nICZsdDtkaXYmZ3Q7IGFu ZCBzZXQgdGhlIHdpZHRoIG9mIGVhY2ggdGh1bWJuYWlsIHNwYWNlIHRvIGEgcGFydGljdWxh ciBzaXplLjwvcD4KCgk8cD5UaGUgZm9sbG93aW5nIGxvZ2ljYWwgc3RydWN0dXJlIGFwcGxp ZXM6PC9wPgoKCTx1bD4KCQk8bGk+QW4gb3B0aW9uYWwgd3JhcHRhZyBhbmQgY2VsbGNsYXNz IGFyb3VuZCBlYWNoICYjODIyMDtjZWxsJiM4MjIxOyAoaS5lLiBsaW5rZWQgdGh1bWJuYWls KTwvbGk+CgkJPGxpPkEgbGluayBlbGVtZW50IGNvbnRhaW5pbmcgdGhlIHRodW1ibmFpbCYj ODIxNztzIDxjb2RlPiZsdDtpbWcmZ3Q7PC9jb2RlPiB0YWcgd2l0aCBhbiBvcHRpb25hbCBp bWdjbGFzczwvbGk+CgkJPGxpPlRoZSB0aHVtYnRleHQgaXMgYSAmbHQ7c3BhbiZndDsgd2l0 aCBhbiBvcHRpb25hbCB0aHVtYnRleHRjbGFzcyBhbmQgY2FuIGFwcGVhciBhYm92ZSwgYmVs b3cgb3Igd2l0aGluIHRoZSBsaW5rIGVsZW1lbnQ8L2xpPgoJCTxsaT5UaGUgbmV4dC9wcmV2 IGxpbmtzIGFyZSB3cmFwcGVkIGluIHRoZSBvcHRpb25hbCBuYXZ3cmFwdGFnIGNvbnRhaW5l ciBhbmQgY2FuIGJlIGdpdmVuIGFuIG9wdGlvbmFsIG5hdmNsYXNzPC9saT4KCQk8bGk+VGhl IG5leHQgbGluayBoYXMgYSAoZGVmYXVsdCkgY2xhc3Mgb2YgJiM4MjIwO3NtZF9zbGltYm94 X25leHQmIzgyMjE7IGFuZCBwcmV2IGhhcyAmIzgyMjA7c21kX3NsaW1ib3hfcHJldiYjODIy MTsuIFRoZXNlIGNhbiBiZSBjaGFuZ2VkIG9yIHJlbW92ZWQgaWYgeW91IHdpc2g8L2xpPgoJ PC91bD4KCgk8cD5Vc2luZyA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBzZWxlY3Rv cnMgeW91IGNhbiBhY2Nlc3MgZXZlcnkgcGFydCBvZiB0aGUgc3RydWN0dXJlLiBBbiBleGFt cGxlIDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGxheW91dCBpcyBnaXZlbiBoZXJl IHRvIGdldCB5b3Ugc3RhcnRlZCAoYXNzdW1lcyBhIHdyYXB0YWcgb2YgJiM4MjE2O2xpJiM4 MjE3OywgYSBjb250YWluaW5nICYjODIxNjt1bCYjODIxNzsgYXJvdW5kIHRoZSBwbHVnaW4g dGFnIHdpdGggYSBjbGFzcyBvZiA8Y29kZT5zbWRfc2xpbWJveDwvY29kZT4gYW5kIDxjb2Rl Pm5hdmNsYXNzPSZxdW90O3NtZF9zbGltYm94X25hdiZxdW90OzwvY29kZT4pLiBQYXN0ZSBp dCBpbnRvIHlvdXIgPHNwYW4gY2xhc3M9ImNhcHMiPkNTUzwvc3Bhbj4gdGVtcGxhdGUgYW5k IHlvdSYjODIxNztyZSBnb29kIHRvIGdvLjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29k ZSBjbGFzcz0iYmxvY2siPi5zbWRfc2xpbWJveCB7CglmbG9hdDpsZWZ0OwoJd2lkdGg6NjAw cHg7CgltYXJnaW46MWVtIDA7CgljbGVhcjpib3RoOwoJbGlzdC1zdHlsZTpub25lOwp9Ci5z bWRfc2xpbWJveCBsaSB7Cgl3aWR0aDoxNTBweDsKCWhlaWdodDoxNTBweDsKCWZsb2F0Omxl ZnQ7CgltYXJnaW46MWVtIGF1dG87Cgl0ZXh0LWFsaWduOmNlbnRlcjsKfQouc21kX3NsaW1i b3ggaW1nIHsKCW1hcmdpbjowIGF1dG87Cn0KLnNtZF9zbGltYm94IHNwYW4gewoJZmxvYXQ6 bGVmdDsKCXdpZHRoOjE0MHB4OwoJcGFkZGluZzoycHggMCAwIDVweDsKfQouc21kX3NsaW1i b3hfbmF2IHsKCWNsZWFyOmJvdGg7Cgl3aWR0aDo1MDBweDsKCXBhZGRpbmc6MjBweDsKfQou c21kX3NsaW1ib3hfcHJldiB7CglmbG9hdDpsZWZ0Owp9Ci5zbWRfc2xpbWJveF9uZXh0IHsK CWZsb2F0OnJpZ2h0Owp9CjwvY29kZT48L3ByZT4KCgk8aDIgaWQ9ImNoYW5nZWxvZyI+Q2hh bmdlbG9nPC9oMj4KCgk8dWw+CgkJPGxpPjE5IEphbiAwNyB8IDAuMSB8IEluaXRpYWwgcmVs ZWFzZTwvbGk+CgkJPGxpPjIwIEphbiAwNyB8IDAuMTEgfCBBZGRlZCAhY2F0ZWdvcnkgKG5l Z2F0aW9uKSBzdXBwb3J0LiBUaGFua3MgVml0cnV2aXVzPC9saT4KCQk8bGk+MDIgRmViIDA3 IHwgMC4xMiB8IEFkZGVkIGltYWdlaWQsIHdpdGggbmVnYXRpb24gc3VwcG9ydCAodGhhbmtz IHdvdWFyZW4pIGFuZCB0ZXh0cG9zIG9wdGlvbiAodGhhbmtzIGxlZSk8L2xpPgoJCTxsaT4w NiBGZWIgMDcgfCAwLjIgfCBqcyBhbmQgY3NzIGNhbiBub3cgYmUgbG9hZGVkIGVsc2V3aGVy ZSAodGhhbmtzIGpzdHViYnMpLiBBZGRlZCB3cmFwdGFnIGFuZCBjaGFuZ2VkIGRlZmF1bHRz IHRvIG1ha2Ugb3V0cHV0IGxlc3MgbGlrZSB0YWctc291cCAodGhhbmtzIHdvdWFyZW4pPC9s aT4KCQk8bGk+MTMgRmViIDA3IHwgMC4yMSB8IEFkZGVkIG9yZGVyYnk9JiM4MjIwO2ZpeGVk JiM4MjIxOyAodGhhbmtzIGxlZSkgYW5kIG1pbm9yIHdhcm5maXggKHRoYW5rcyBiZW5qaWJv dCk8L2xpPgoJCTxsaT4wNCBNYXIgMDcgfCAwLjIyIHwgQWRkZWQgPHNwYW4gY2xhc3M9ImNh cHMiPk1MUDwvc3Bhbj4gc3VwcG9ydCwgc3ViY2F0ZWdvcnkgc3VwcG9ydCBhbmQgZXh0ZW5k ZWQgdGhlIGNhdGVnb3J5L2ltYWdlaWQgb3B0aW9ucy4gTm93IHJlcXVpcmVzIHNtZF9saWIg KGluY2x1ZGVkIGluIHRoZSB6aXAgZmlsZSBmb3IgY29udmVuaWVuY2UgYnV0IGF2YWlsYWJs ZSBzZXBhcmF0ZWx5IGFzIHdlbGwpPC9saT4KCQk8bGk+MDQgTWFyIDA3IHwgMC4yMyB8IEZp eGVkIG9yZGVyYnkgd2hlbiB1c2luZyByYW5kb20gKHRoYW5rcyBtcmRhbGUpIGFuZCBhZGRl ZCBhYmlsaXR5IHRvIG92ZXJyaWRlIG1heGxpbWl0PC9saT4KCQk8bGk+MTkgTWFyIDA3IHwg MC4yNCB8IEFsbG93ZWQgc21kX3NsaW1ib3hfaW5jIHRvIGJlIGlnbm9yZWQgdmlhIDxjb2Rl PmxpYmNoZWNrPSZxdW90OzAmcXVvdDs8L2NvZGU+ICh0aGFua3MgcGFwdWFzcyk8L2xpPgoJ CTxsaT4zMCBKdW4gMDcgfCAwLjI0YiB8IEZpeGVkIHBhZ2luZyBpbiBzdWItZGlyZWN0b3J5 IGluc3RhbGxhdGlvbnMgKHRoYW5rcyB1bHRyYW1lZ2EgYW5kIFF3ZXN0KTwvbGk+CgkJPGxp PjI4IEp1bCAwNyB8IDAuMjUgfCBTdXBlcmNoYXJnZWQgdGhlIGdyb3VwbmFtZSBvcHRpb24g KHRoYW5rcyBbQXhlbF0pPC9saT4KCQk8bGk+MzEgSnVsIDA3IHwgMC4yNWEgfCBNYWludGVu YW5jZSB1cGdyYWRlIG9ubHkuIE5vIGZlYXR1cmVzLCBqdXN0IGJ1bmRsZWQgdGhlIGxhdGVz dCBzbGltYm94L21vb3Rvb2xzIGxpYnJhcnkgYW5kIGZpeGVkIHRoZSBoZWxwIGZpbGU8L2xp PgoJCTxsaT4wNCBBdWcgMDcgfCAwLjI2OiB8IEZpeGVkIHBhZ2luZyB0byBhbGxvdyBtdWx0 aXBsZSBzbGltYm94IHRhZ3MgcGVyIHBhZ2UgdG8gY28tZXhpc3QgKHRoYW5rcyB3aGVhdGlj dXMpPC9saT4KCQk8bGk+MjIgQXVnIDA3IHwgMC4yNzogfCBBZGRlZCB0aHVtYm5haWxzLWFz LW1haW4taW1hZ2Ugb3B0aW9uICh0aGFua3MgcHJvZ3JlNTUpPC9saT4KCQk8bGk+MzAgQXVn IDA3IHwgMC4yOCB8IEFkZGVkIGN1c3RvbWlzYWJsZSBjYXB0aW9ucyB1bmRlciB0aGUgbWFp biBpbWFnZSAodGhhbmtzIEFkYW1fVikgYW5kIGNvbnNvbGlkYXRlZCBvcmRlcmJ5IChpbnRl cm5hbCBjb2RlKTwvbGk+CgkJPGxpPjE0IFNlcCAwNyB8IDAuMjkgfCBBZGRlZCB0aGUgdGh1 bWJzaXplIG9wdGlvbiB0byBzZXQgdGh1bWJuYWlsIGRpbWVuc2lvbnMgKHRoYW5rcyBTaW1h bmVrKTwvbGk+CgkJPGxpPjIwIFNlcCAwNyB8IDAuMjlhIHwgRml4ZWQgdW5kZWNsYXJlZCBp bmRleCB3YXJuaW5ncyAodGhhbmtzIEFtYml0aW91c2xlbW9uKTwvbGk+CgkJPGxpPjIwIE9j dCAwNyB8IDAuMjliIHwgRml4ZWQgdGhlIGZpeCB0aGF0IGJyb2tlIGluIHYwLjI0ICh0aGFu a3MgTXIuU21pdGgpIGFuZCB0aGUgJiM4MjE2O3B4JiM4MjE3OyB0aHVtYnNpemUgaXNzdWUg KHRoYW5rcyByb2Jpbjc0Nik8L2xpPgoJCTxsaT4wMyBOb3YgMDcgfCAwLjIxMCB8IFVzZXMg c21kX2xpYiB2MC4zIHNvIGludGVnZXIgcmFuZ2VzIGFyZSBub3cgb25seSBhbGxvd2VkIGlu IGltYWdlaWQuIEFkZGVkIHRodW1idGV4dC90aHVtYnRleHRjbGFzcy9wYXJhbWRlbGltLiBE ZXByZWNhdGVkIHNob3dhbHQvc2hvd2NhcHRpb24vYWx0Y2xhc3MvY2FwdGlvbmNsYXNzL3Rl eHRwb3M8L2xpPgoJCTxsaT4yOCBOb3YgMDcgfCAwLjIxMSB8IFVzZXMgc21kX2xpYiB2MC4z MS4gRml4ZWQgc29tZSB3YXJuaW5ncyBhbmQgYWRkZWQgb25jaGFuZ2UgaGVhZGluZyBzdXBw b3J0ICh0aGFua3Mga2FybC5zcGVuY2VyLCBkZWNvZGVybHRkKTwvbGk+CgkJPGxpPjIwIEph biAwOCB8IDAuMjEyIHwgQWRkZWQgdGh1bWJ0ZXh0d3JhcCAodGhhbmtzIGpvZGVjaSkgYW5k IDxjb2RlPj91cmw8L2NvZGU+ICh0aGFua3MgbWFya3VzZmFsaykgOyBmaXhlZCB3aGl0ZXNw YWNlIGFyb3VuZCAmIzgyMTY7PyYjODIxNzsgY29kZXM8L2xpPgoJCTxsaT4wMSBBcHIgMDgg fCAwLjMgfCBVc2VzIHNtZF9saWIgdjAuMzIuIEJhY2twb3J0ZWQgZmVhdHVyZXMgYW5kIHJl ZmFjdG9yaXNhdGlvbiBmcm9tIHNtZF9nYWxsZXJ5IDsgYWRkZWQgdHJpZ2dlciwgZGVsaW0s IG5hdndyYXB0YWcgYW5kIGxpbmtjbGFzcyAodGhhbmtzIG1hcmlvcykgOyBjaGFuZ2VkIHN1 YmNhdHMgYW5kIHRodW1iICh0aGFua3MgZmFuZ29uaykgOyBkZXByZWNhdGVkIHNtZF9zbGlt Ym94X2luYyA7IHJlbW92ZWQgY2F0bGFiZWwsIGxpYmNoZWNrIGFuZCB0aGUgZGVwcmVjYXRl ZCBhdHRzIGZyb20gdjAuMjEwIDsgcmVuYW1lZCBvcmRlcmJ5IGFzIHNvcnQgOyBNb29uYm94 LCBMaWdodGJveCwgTGl0ZWJveCwgSW1hZ2Vib3ggYW5kIFRoaWNrYm94IChqUXVlcnkpIG5v dyBzdXBwb3J0ZWQgOyBhbHNvIHdvcmtzIHdpdGggZ2x6X2N1c3RvbV9maWVsZHMgKHRoYW5r cyBwcm9ncmU1NSBhbmQgZ2VyaGFyZCk8L2xpPgoJCTxsaT4wOSBKdW4gMDggfCAwLjMxIHwg Rml4ZWQgPGNvZGU+c29ydDwvY29kZT4gd2hlbiB1c2luZyA8Y29kZT5saW1pdDwvY29kZT4g YW5kIHNhdmVkIGEgcXVlcnkgKHRoYW5rcyByb2Jpbjc0Nik8L2xpPgoJPC91bD4KCgk8aDIg aWQ9ImNyZWRpdHMiPkNyZWRpdHM8L2gyPgoKCTxwPlRoaXMgcGx1Z2luIG9yaWdpbmFsbHkg cGxhZ2lhcmlzZWQgaWRlYXMgZnJvbSBSb2IgU2FibGUmIzgyMTc7cyByc3NfdGh1bWJwb3Ag YW5kIGhhcyBiZWVuIGJ1aWx0IHVwIGZyb20gdGhlcmUgd2l0aCBzdWdnZXN0aW9ucyBmcm9t IHZhcmlvdXMgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj5lcnMgaW4gdGhlIGNvbW11 bml0eS4gSXQgYWxzbyB3b3VsZG4mIzgyMTc7dCBleGlzdCB3aXRob3V0IHRoZSBoYXJkIHdv cmsgb2YgQ2hyaXN0b3BoZSBCZXlscyYjODIxNzsgb3JpZ2luYWwgaW1wbGVtZW50YXRpb24g b2YgU2xpbWJveC4gTWFueSB0aGFua3MgdG8gYWxsIHdobyBoYXZlIGhlbHBlZCBjcmFmdCB0 aGlzIHBsdWdpbiwgYW5kIG9mIGNvdXJzZSB0byB0aGUgYXdlc29tZSBUZWFtIFRleHRQYXR0 ZXJuLjwvcD4KCgk8cD48L2Rpdj48L3A+CjwhLS0gLS0tIEJFR0lOIFBMVUdJTiBDU1MgLS0t IC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojc21kX2hlbHAgeyBsaW5lLWhlaWdodDox LjQ1O30KI3NtZF9oZWxwIGNvZGUgeyBmb250LXdlaWdodDpib2xkOyBmb250OiAxMDUlLzEz MCUgIkNvdXJpZXIgTmV3IiwgY291cmllciwgbW9ub3NwYWNlOyBiYWNrZ3JvdW5kLWNvbG9y OiAjRkZGRkNDO30KI3NtZF9oZWxwIGNvZGUuYmxvY2sgeyBmb250LXdlaWdodDpub3JtYWw7 IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IGJhY2tncm91bmQtY29sb3I6ICNmMGU2OGM7IGRp c3BsYXk6YmxvY2s7IG1hcmdpbjoxMHB4IDEwcHggMjBweDsgcGFkZGluZzoxMHB4OyB9CiNz bWRfaGVscCAucmVxdWlyZWQge2NvbG9yOnJlZDt9CiNzbWRfaGVscCBhOmxpbmssICNzbWRf aGVscCBhOnZpc2l0ZWQgeyBjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBi b3JkZXItYm90dG9tOiAxcHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4O30KI3Nt ZF9oZWxwIGE6aG92ZXIsICNzbWRfaGVscCBhOmFjdGl2ZSB7IGNvbG9yOiBibHVlOyB0ZXh0 LWRlY29yYXRpb246IG5vbmU7IGJvcmRlci1ib3R0b206IDJweCBzb2xpZCBibHVlOyBwYWRk aW5nLWJvdHRvbToxcHg7fQojc21kX2hlbHAgaDEgeyBjb2xvcjogIzM2OTsgZm9udDogMjBw eCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyBtYXJnaW46IDA7IHRleHQtYWxpZ246IGNlbnRlcjsg fQojc21kX2hlbHAgaDIgeyBib3JkZXItYm90dG9tOiAxcHggc29saWQgYmxhY2s7IHBhZGRp bmc6MTBweCAwIDA7IGNvbG9yOiAjMzY5OyBmb250OiAxN3B4IEdlb3JnaWEsIHNhbnMtc2Vy aWY7IH0KI3NtZF9oZWxwIGgzIHsgY29sb3I6ICM2OTM7IGZvbnQ6IGJvbGQgMTJweCBBcmlh bCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAyMnB4IDAgMDsg dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9 CiNzbWRfaGVscCBoNCB7IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0 dGVyLXNwYWNpbmc6IDFweDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVw cGVyY2FzZTsgfQojc21kX2hlbHAgdWwgeyBsaXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9CiNz bWRfaGVscCBsaSB7IG1hcmdpbi1sZWZ0OjM1cHg7IH0KI3NtZF9oZWxwIC5hdHQtbmFtZSB7 IGZvbnQtd2VpZ2h0OmJvbGQ7IH0KI3NtZF9oZWxwIHRhYmxlIHt3aWR0aDo5MCU7IHRleHQt YWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbToxZW07IG1hcmdpbjowIGF1dG87fQojc21k X2hlbHAgdGQsICNzbWRfaGVscCB0aCB7Ym9yZGVyOjFweCBzb2xpZCAjOTk5OyBwYWRkaW5n Oi41ZW0gMDt9CiNzbWRfaGVscCAuYnJlYWsgeyBtYXJnaW4tdG9wOjVweDsgfQo8L3N0eWxl Pgo8IS0tIC0tLSBFTkQgUExVR0lOIENTUyAtLS0gLS0+CiI7czozOiJtZDUiO3M6MzI6ImNl NWEzMzBhYWIyZjI2NmFlNDBjMGM2OGRkMWY1OWQzIjt9