# Name: smd_random_text v0.12 # Type: Client side plugin # Random text from file, database, string or TXP field/variable # Author: Stef Dawson # URL: http://stefdawson.com/ # Recommended load order: 5 # ..................................................................... # This is a plugin for Textpattern - http://textpattern.com/ # To install: textpattern > admin > plugins # Paste the following text into the 'Install plugin' box: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjE1OiJzbWRfcmFuZG9tX3RleHQiO3M6NjoiYXV0aG9yIjtz OjExOiJTdGVmIERhd3NvbiI7czoxMDoiYXV0aG9yX3VyaSI7czoyMjoiaHR0cDovL3N0ZWZk YXdzb24uY29tLyI7czo3OiJ2ZXJzaW9uIjtzOjQ6IjAuMTIiO3M6MTE6ImRlc2NyaXB0aW9u IjtzOjYxOiJSYW5kb20gdGV4dCBmcm9tIGZpbGUsIGRhdGFiYXNlLCBzdHJpbmcgb3IgVFhQ IGZpZWxkL3ZhcmlhYmxlIjtzOjQ6ImNvZGUiO3M6NDM2NjoiZnVuY3Rpb24gc21kX3JhbmRv bV90ZXh0KCRhdHRzLCAkdGhpbmc9TlVMTCkgew0KCWdsb2JhbCAkdHhwY2ZnLCAkdmFyaWFi bGUsICRwcmV0ZXh0LCAkdGhpc2FydGljbGUsICR0aGlzZmlsZSwgJHRoaXNsaW5rLCAkdGhp c2ltYWdlOw0KDQoJZXh0cmFjdChsQXR0cyhhcnJheSgNCgkJJ3R5cGUnID0+ICdzdHJpbmcn LA0KCQknc291cmNlJyA9PiAnaGVsbG8gd29ybGQnLA0KCQknZGVsaW0nID0+ICd8JywNCgkJ J2ZpbGVfZGVsaW0nID0+ICdcbicsDQoJCSdpdGVtX251bScgPT4gJycsDQoJCSdzaHVmZmxl JyA9PiAnMCcsDQoJCSd0cmltJyA9PiAnMScsDQoJCSdlc2NhcGUnID0+ICdodG1sJywNCgkJ J2Zvcm0nID0+ICcnLA0KCQknbGltaXQnID0+ICcxJywNCgkJJ2NvdW50JyA9PiAndXAnLA0K CQknd3JhcHRhZycgPT4gJycsDQoJCSdicmVhaycgPT4gJycsDQoJCSdjbGFzcycgPT4gJycs DQoJCSdkZWJ1ZycgPT4gJzAnLA0KCSksICRhdHRzKSk7DQoNCgkkc3JjcHQgPSBleHBsb2Rl KCRkZWxpbSwgJHNvdXJjZSk7DQoJJGxpbWl0ID0gKCRsaW1pdCA8IDEpID8gMSA6ICRsaW1p dDsNCgkkZnJvbSA9IGFycmF5KCk7DQoJJGl0ZW1zID0gYXJyYXkoKTsNCg0KCXN3aXRjaCAo JHR5cGUpIHsNCgkJY2FzZSAiZmllbGQiOg0KCQkJaWYgKGlzc2V0KCR0aGlzZmlsZVskc3Jj cHRbMF1dKSAmJiAkdGhpc2ZpbGVbJHNyY3B0WzBdXSAhPSAiIikgew0KCQkJCSRmcm9tID0g JHRoaXNmaWxlWyRzcmNwdFswXV07DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzbGlua1sk c3JjcHRbMF1dKSAmJiAkdGhpc2xpbmtbJHNyY3B0WzBdXSAhPSAiIikgew0KCQkJCSRmcm9t ID0gJHRoaXNsaW5rWyRzcmNwdFswXV07DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0aGlzaW1h Z2VbJHNyY3B0WzBdXSkgJiYgJHRoaXNpbWFnZVskc3JjcHRbMF1dICE9ICIiKSB7DQoJCQkJ JGZyb20gPSAkdGhpc2ltYWdlWyRzcmNwdFswXV07DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCRw cmV0ZXh0WyRzcmNwdFswXV0pICYmICRwcmV0ZXh0WyRzcmNwdFswXV0gIT0gIiIpIHsNCgkJ CQkkZnJvbSA9ICRwcmV0ZXh0WyRzcmNwdFswXV07DQoJCQl9IGVsc2UgaWYgKGlzc2V0KCR0 aGlzYXJ0aWNsZVskc3JjcHRbMF1dKSAmJiAkdGhpc2FydGljbGVbJHNyY3B0WzBdXSAhPSAi Iikgew0KCQkJCSRmcm9tID0gJHRoaXNhcnRpY2xlWyRzcmNwdFswXV07DQoJCQl9DQoJCQlp ZiAoJGZyb20pIHsNCgkJCQkkZnJvbSA9IGV4cGxvZGUoJGRlbGltLCAkZnJvbSk7DQoJCQkJ JGxpbWl0ID0gKGNvdW50KCRmcm9tKSA8ICRsaW1pdCkgPyBjb3VudCgkZnJvbSkgOiAkbGlt aXQ7DQoJCQkJJGl0ZW1zID0gKCRpdGVtX251bSAhPSAnJykgPyAoKGNvdW50KCRmcm9tKSA+ PSAkaXRlbV9udW0pID8gJGl0ZW1fbnVtIDogMCkgOiBhcnJheV9yYW5kKCRmcm9tLCAkbGlt aXQpOw0KCQkJfQ0KCQkJYnJlYWs7DQoJCWNhc2UgInR4cHZhciI6DQoJCQkkZnJvbSA9IGV4 cGxvZGUoJGRlbGltLCAkdmFyaWFibGVbJHNyY3B0WzBdXSk7DQoJCQkkbGltaXQgPSAoY291 bnQoJGZyb20pIDwgJGxpbWl0KSA/IGNvdW50KCRmcm9tKSA6ICRsaW1pdDsNCgkJCSRpdGVt cyA9ICgkaXRlbV9udW0gIT0gJycpID8gKChjb3VudCgkZnJvbSkgPj0gJGl0ZW1fbnVtKSA/ ICRpdGVtX251bSA6IDApIDogYXJyYXlfcmFuZCgkZnJvbSwgJGxpbWl0KTsNCgkJCWJyZWFr Ow0KCQljYXNlICJ1cmx2YXIiOg0KCQkJJGZyb20gPSBleHBsb2RlKCRkZWxpbSwgZ3BzKCRz cmNwdFswXSkpOw0KCQkJJGxpbWl0ID0gKGNvdW50KCRmcm9tKSA8ICRsaW1pdCkgPyBjb3Vu dCgkZnJvbSkgOiAkbGltaXQ7DQoJCQkkaXRlbXMgPSAoJGl0ZW1fbnVtICE9ICcnKSA/ICgo Y291bnQoJGZyb20pID49ICRpdGVtX251bSkgPyAkaXRlbV9udW0gOiAwKSA6IGFycmF5X3Jh bmQoJGZyb20sICRsaW1pdCk7DQoJCQlicmVhazsNCgkJY2FzZSAiZGF0YWJhc2UiOg0KCQkJ JHdoZXJlID0gIjE9MSBPUkRFUiBCWSBSQU5EKCkgTElNSVQgIi4kbGltaXQ7DQoJCQkkZnJv bSA9IHNhZmVfY29sdW1uKCRzcmNwdFsxXSwgJHNyY3B0WzBdLCAkd2hlcmUsICRkZWJ1Zyk7 DQoJCQkkbGltaXQgPSBjb3VudCgkZnJvbSk7DQoJCQkkaXRlbXMgPSAoJGl0ZW1fbnVtICE9 ICcnKSA/ICgoY291bnQoJGZyb20pID49ICRpdGVtX251bSkgPyAkaXRlbV9udW0gOiAwKSA6 IGFycmF5X2tleXMoJGZyb20pOw0KCQkJYnJlYWs7DQoJCWNhc2UgImZpbGUiOg0KCQkJJHBh dGggPSAkdHhwY2ZnWydkb2Nfcm9vdCddLigoc3Vic3RyKCRzcmNwdFswXSwgMCwgMSk9PScv JykgPyAnJyA6ICcvJykuJHNyY3B0WzBdOw0KCQkJaWYgKCRkZWJ1Zykgew0KCQkJCWVjaG8g IisrIEZJTEUgUEFUSCArKyI7DQoJCQkJZG1wICgkcGF0aCk7DQoJCQl9DQoJCQlpZiAoZmls ZV9leGlzdHMoJHBhdGgpKSB7DQoJCQkJJGZyb20gPSBkb0FycmF5KGZpbGUoJHBhdGgpLCAn cnRyaW0nKTsNCgkJCQlpZiAoJGZpbGVfZGVsaW0gIT0gJ1xuJykgew0KCQkJCQkkZnJvbSA9 IGV4cGxvZGUoJGZpbGVfZGVsaW0sICRmcm9tWzBdKTsNCgkJCQl9DQoJCQkJJGxpbWl0ID0g KGNvdW50KCRmcm9tKSA8ICRsaW1pdCkgPyBjb3VudCgkZnJvbSkgOiAkbGltaXQ7DQoJCQkJ JGl0ZW1zID0gKCRpdGVtX251bSAhPSAnJykgPyAoKGNvdW50KCRmcm9tKSA+PSAkaXRlbV9u dW0pID8gJGl0ZW1fbnVtIDogMCkgOiBhcnJheV9yYW5kKCRmcm9tLCAkbGltaXQpOw0KCQkJ fQ0KCQkJYnJlYWs7DQoJCWNhc2UgInN0cmluZyI6DQoJCWRlZmF1bHQ6DQoJCQkkZnJvbSA9 ICRzcmNwdDsNCgkJCSRsaW1pdCA9IChjb3VudCgkZnJvbSkgPCAkbGltaXQpID8gY291bnQo JGZyb20pIDogJGxpbWl0Ow0KCQkJJGl0ZW1zID0gKCRpdGVtX251bSAhPSAnJykgPyAoKGNv dW50KCRmcm9tKSA+PSAkaXRlbV9udW0pID8gJGl0ZW1fbnVtIDogMCkgOiBhcnJheV9yYW5k KCRmcm9tLCAkbGltaXQpOw0KCQkJYnJlYWs7DQoJfQ0KDQoJLy8gRm9yY2UgYXJyYXkgaWYg aXQgaXNuJ3QgYWxyZWFkeSAoc29tZSBQSFAgZnVuY3Rpb25zIHJldHVybiBzaW5nbGUgdmFs dWVzKQ0KCWlmICghaXNfYXJyYXkoJGl0ZW1zKSkgew0KCQkkaXRlbXMgPSBhcnJheSgkaXRl bXMpOw0KCX0NCg0KCWlmICgkc2h1ZmZsZSkgew0KCQlzaHVmZmxlKCRpdGVtcyk7DQoJfQ0K DQoJJGZyb20gPSAoJHRyaW0pID8gZG9BcnJheSgkZnJvbSwgJ3RyaW0nKSA6ICRmcm9tOw0K DQoJaWYgKCRkZWJ1Zykgew0KCQllY2hvICIrKyBJVEVNIFBPT0wgKysiOw0KCQlkbXAoJGZy b20pOw0KCQllY2hvICIrKyBDSE9TRU4gSVRFTVMgKysiOw0KCQlkbXAoJGl0ZW1zKTsNCgl9 DQoJaWYgKCRkZWJ1ZyA+IDIpIHsNCgkJZWNobyAiKysgUFJFVEVYVCArKyI7DQoJCWRtcCgk cHJldGV4dCk7DQoJCWVjaG8gIisrIFRISVMgRklMRSArKyI7DQoJCWRtcCgkdGhpc2ZpbGUp Ow0KCQllY2hvICIrKyBUSElTIExJTksgKysiOw0KCQlkbXAoJHRoaXNsaW5rKTsNCgkJZWNo byAiKysgVEhJUyBJTUFHRSArKyI7DQoJCWRtcCgkdGhpc2ltYWdlKTsNCgkJZWNobyAiKysg VEhJUyBBUlRJQ0xFICsrIjsNCgkJZG1wKCR0aGlzYXJ0aWNsZSk7DQoJfQ0KDQoJLy8gRmlu ZCBvdXQgaG93IHRvIHBsb25rIHRoZSBvdXRwdXQNCgkkd2hhdCA9ICgkZm9ybSkgPyBmZXRj aF9mb3JtKCRmb3JtKSA6ICgoJHRoaW5nKSA/ICR0aGluZyA6ICd7c21kX3JuZF90eHR9Jyk7 DQoNCgkvLyBQaWNrIHRoZSBnaXZlbiAkaXRlbXMga2V5cyBvdXQgb2YgdGhlICRmcm9tIGFy cmF5IGFuZCBkaXNwbGF5IHRoZW0NCgkkb3V0ID0gYXJyYXkoKTsNCgkkY3RyID0gKCRjb3Vu dD09InVwIikgPyAwIDogJGxpbWl0LTE7DQoJZm9yZWFjaCAoJGl0ZW1zIGFzICRpdGVtKSB7 DQoJCSRyZXBsYWNlbWVudCA9IGFycmF5KA0KCQkJJ3tzbWRfcm5kX3R4dH0nID0+ICggKCRl c2NhcGUgPT0gJ2h0bWwnKSA/IGh0bWxzcGVjaWFsY2hhcnMoJGZyb21bJGl0ZW1dKSA6ICRm cm9tWyRpdGVtXSApLA0KCQkJJ3tzbWRfcm5kX3R4dF9yb3dzfScgPT4gJGxpbWl0LA0KCQkJ J3tzbWRfcm5kX3R4dF90aGlzaW5kZXh9JyA9PiAkY3RyLA0KCQkJJ3tzbWRfcm5kX3R4dF90 aGlzcm93fScgPT4gJGN0ciArIDEsDQoJCQkne3NtZF9ybmRfdHh0X2Nob3Nlbl9pdGVtfScg PT4gJGl0ZW0sDQoJCSk7DQoJCWlmICgkZGVidWcgPiAxKSB7DQoJCQllY2hvICIrKyBSRVBM QUNFTUVOVFMgKysiOw0KCQkJZG1wKCRyZXBsYWNlbWVudCk7DQoJCX0NCgkJJG91dFtdID0g cGFyc2Uoc3RydHIoJHdoYXQsICRyZXBsYWNlbWVudCkpOw0KCQkkY3RyID0gKCRjb3VudD09 InVwIikgPyAkY3RyKzEgOiAkY3RyLTE7DQoJfQ0KDQoJcmV0dXJuIGRvV3JhcCgkb3V0LCAk d3JhcHRhZywgJGJyZWFrLCAkY2xhc3MpOw0KfSI7czo0OiJ0eXBlIjtzOjE6IjAiO3M6NToi b3JkZXIiO3M6MToiNSI7czo1OiJmbGFncyI7czoxOiIwIjtzOjQ6ImhlbHAiO3M6MTQxMjA6 IjxkaXYgaWQ9InNtZF9oZWxwIj4KCgk8aDE+c21kX3JhbmRvbV90ZXh0PC9oMT4KCgk8cD5D aG9vc2UgcmFuZG9tIHRleHQgc3RyaW5ncyBmcm9tIGEgdmFyaWV0eSBvZiBzb3VyY2VzLiBD b3VsZCBiZSB1c2VkIGFzIGEgcXVvdGUtb2YtdGhlLWRheSBzeXN0ZW0sIHJhbmRvbSB0YWcg bGluZXMsIG9yIHNvbWV0aGluZyBtb3JlIGVsYWJvcmF0ZS48L3A+CgoJPGgyPkZlYXR1cmVz PC9oMj4KCgk8dWw+CgkJPGxpPlB1bGwgdGhlIGl0ZW0gbGlzdCBmcm9tIGVpdGhlcjogYSBn aXZlbiBkZWxpbWl0ZWQgc3RyaW5nLCBhIGZpbGUsIGEgZGF0YWJhc2UgY29sdW1uLCBhIDxj b2RlPiZsdDt0eHA6dmFyaWFibGUgLyZndDs8L2NvZGU+LCB1c2VyLXN1Ym1pdHRlZCBmb3Jt IGRhdGEsIG9yIGEgVGV4dHBhdHRlcm4gZmllbGQ8L2xpPgoJCTxsaT5HcmFiIGFzIG1hbnkg cmFuZG9tIGl0ZW1zIGFzIHlvdSBsaWtlIGZyb20geW91ciBjaG9zZW4gbGlzdDwvbGk+CgkJ PGxpPlBhc3MgZWFjaCB0byBhIGZvcm0vdGhlIGNvbnRhaW5lciBpZiB5b3Ugd2lzaCB0byBm b3JtYXQgdGhlbTwvbGk+Cgk8L3VsPgoKCTxoMj5BdXRob3I8L2gyPgoKCTxwPjxhIGhyZWY9 Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9jb21tZW50Rm9ybSI+U3RlZiBEYXdzb248L2E+LiBD b21iaW5lcyBpZGVhcyBmcm9tIGRydV9yYW5kb21fdGV4dCBieSBEcmV3IE1jTGVsbGFuIGFu ZCBzaW1wbGVfcmFuZG9tX3RleHQgYnkgTWFudWVsIEViZXJ0LCBwbHVzIHNvbWUgc3ByaW5r bGluZ3Mgb2YgbXkgb3duLiBNYW55IHRoYW5rcyB0byB0aGUgYXV0aG9ycyBvZiB0aG9zZSB3 b3Jrcy48L3A+CgoJPGgyPkluc3RhbGxhdGlvbiAvIFVuaW5zdGFsbGF0aW9uPC9oMj4KCgk8 cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20gZWl0aGVyIDxhIGhyZWY9Imh0dHA6Ly90ZXh0 cGF0dGVybi5vcmcvcGx1Z2lucy8xMDIyL3NtZF9yYW5kb21fdGV4dCI+dGV4dHBhdHRlcm4u b3JnPC9hPiwgb3IgdGhlIDxhIGhyZWY9Imh0dHA6Ly9zdGVmZGF3c29uLmNvbS9zdyI+c29m dHdhcmUgcGFnZTwvYT4sIHBhc3RlIHRoZSBjb2RlIGludG8gdGhlIDxzcGFuIGNsYXNzPSJj YXBzIj5UWFA8L3NwYW4+IEFkbWluIC0mZ3Q7IFBsdWdpbnMgcGFuZSwgaW5zdGFsbCBhbmQg ZW5hYmxlIHRoZSBwbHVnaW4uIFZpc2l0IHRoZSA8YSBocmVmPSJodHRwOi8vZm9ydW0udGV4 dHBhdHRlcm4uY29tL3ZpZXd0b3BpYy5waHA/cGlkPTE5MDY3NSI+Zm9ydW0gdGhyZWFkPC9h PiBmb3IgbW9yZSBpbmZvIG9yIHRvIHJlcG9ydCBvbiB0aGUgc3VjY2VzcyBvciBvdGhlcndp c2Ugb2YgdGhlIHBsdWdpbi48L3A+CgoJPHA+VG8gdW5pbnN0YWxsLCBzaW1wbHkgZGVsZXRl IGZyb20gdGhlIEFkbWluIC0mZ3Q7IFBsdWdpbnMgcGFnZS48L3A+CgoJPGgyPlVzYWdlPC9o Mj4KCgk8cD5Vc2UgdGhlIHRhZyBpbiBhbnkgcGFnZSwgZm9ybSBvciBhcnRpY2xlL2ZpbGUv aW1hZ2UvbGluayBjb250ZXh0LjwvcD4KCgk8aDMgY2xhc3M9InRhZyI+c21kX3JhbmRvbV90 ZXh0PC9oMz4KCgk8cCBjbGFzcz0idGFnLXN1bW1hcnkiPlRoZXJlIGFyZSB0d28gbWFuZGF0 b3J5IGF0dHJpYnV0ZXM6IDxjb2RlPnR5cGU8L2NvZGU+IGFuZCA8Y29kZT5zb3VyY2U8L2Nv ZGU+LiBUaGUgb3RoZXJzIGFyZSB1c2VkIHRvIGNvbnRyb2wgaG93IHRoZSBpbmZvcm1hdGlv biBpcyBleHRyYWN0ZWQgYW5kL29yIHByZXNlbnRlZC48L3A+CgoJPGg0IGNsYXNzPSJhdHRz ICIgaWQ9ImF0dHJpYnV0ZXMiPkF0dHJpYnV0ZXM8L2g0PgoKCTx1bD4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0gbWFuZCI+dHlwZTwvc3Bhbj4gOiB3aGVyZSB0byBsb29rIGZvciB0aGUg cG9vbCBvZiB0ZXh0IHN0cmluZ3MuIENhbiBiZSBvbmUgb2YgPGNvZGU+c3RyaW5nPC9jb2Rl PiAodGhlIGRlZmF1bHQpLCA8Y29kZT5maWVsZDwvY29kZT4sIDxjb2RlPnR4cHZhcjwvY29k ZT4sIDxjb2RlPnVybHZhcjwvY29kZT4sIDxjb2RlPmRhdGFiYXNlPC9jb2RlPiwgb3IgPGNv ZGU+ZmlsZTwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSBtYW5kIj5zb3Vy Y2U8L3NwYW4+IDogZnVydGhlciByZWZpbmVtZW50IG9mIHdoZXJlIHRvIGZpbmQgdGhlIHN0 cmluZ3MgdXNpbmcgdGhlIGZvbGxvd2luZyBydWxlczoKCTx1bD4KCQk8bGk+PHNwYW4+c3Ry aW5nPC9zcGFuPiA6IGEgZGVsaW1pdGVkIGxpc3Qgb2YgdGV4dCAoZS5nLiA8Y29kZT5zb3Vy Y2U9JnF1b3Q7bXl8Y3JhY2tpbmd8d29yZHN8b2Z8dGhlfGRheXxpbiBhIG5hdHR5IGxpdHRs ZXxsaXN0JnF1b3Q7PC9jb2RlPik8L2xpPgoJCTxsaT48c3Bhbj5maWVsZDwvc3Bhbj4gOiB0 aGUgbmFtZSBvZiB0aGUgVGV4dHBhdHRlcm4gZmllbGQgdG8gbG9vayBpbiAoZS5nLiA8Y29k ZT5zb3VyY2U9JnF1b3Q7YXJ0aWNsZV9pbWFnZSZxdW90OzwvY29kZT4gb3IgPGNvZGU+c291 cmNlPSZxdW90O215X2N1c3RvbV9maWVsZF9uYW1lJnF1b3Q7PC9jb2RlPik8L2xpPgoJCTxs aT48c3Bhbj50eHB2YXI8L3NwYW4+IDogdGhlIG5hbWUgb2YgYSA8Y29kZT4mbHQ7dHhwOnZh cmlhYmxlIC8mZ3Q7PC9jb2RlPiB0aGF0IGhhcyBiZWVuIGRlZmluZWQgaW4gKGUuZy4gPGNv ZGU+c291cmNlPSZxdW90O215X2xpc3QmcXVvdDs8L2NvZGU+KTwvbGk+CgkJPGxpPjxzcGFu PnVybHZhcjwvc3Bhbj4gOiB0aGUgbmFtZSBvZiBhIDxzcGFuIGNsYXNzPSJjYXBzIj5VUkw8 L3NwYW4+IHZhcmlhYmxlICh2aWEgPHNwYW4gY2xhc3M9ImNhcHMiPkdFVDwvc3Bhbj4gb3Ig PHNwYW4gY2xhc3M9ImNhcHMiPlBPU1Q8L3NwYW4+KSB0aGF0IHdpbGwgYmUgcGFzc2VkIHRv IHRoZSBwYWdlIChlLmcuIDxjb2RlPnNvdXJjZT0mcXVvdDtwcm9wZXJ0eV9saXN0JnF1b3Q7 PC9jb2RlPik8L2xpPgoJCTxsaT48c3Bhbj5kYXRhYmFzZTwvc3Bhbj4gOiB0aGUgdGFibGUg YW5kIGNvbHVtbiBuYW1lLCBzZXBhcmF0ZWQgYnkgPGNvZGU+ZGVsaW08L2NvZGU+IChlLmcu IDxjb2RlPnNvdXJjZT0mcXVvdDt0eHBfY2F0ZWdvcnl8dGl0bGUmcXVvdDs8L2NvZGU+KTwv bGk+CgkJPGxpPjxzcGFuPmZpbGU8L3NwYW4+IDogYSBmaWxlIG5hbWUgcmVsYXRpdmUgdG8g dGhlIHJvb3Qgb2YgeW91ciBzaXRlLCB3aXRoIG9yIHdpdGhvdXQgbGVhZGluZyBzbGFzaCAo ZS5nLiA8Y29kZT5zb3VyY2U9JnF1b3Q7ZmlsZXMvbXlfc3RyaW5ncy50eHQmcXVvdDs8L2Nv ZGU+KTwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kZWxpbTwv c3Bhbj4gOiB0aGUgZGVsaW1pdGVyIHRvIHVzZSBiZXR3ZWVuIHdvcmRzL2F0dHJpYnV0ZSBv cHRpb25zLiBEZWZhdWx0OiBwaXBlIDxjb2RlPnw8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4g Y2xhc3M9ImF0bm0iPmZpbGVfZGVsaW08L3NwYW4+IDogdGhlIGRlbGltaXRlciB0byB1c2Ug d2hlbiBwYXJzaW5nIGZpbGVzLiBJZiBlYWNoIHdvcmQgb3IgcGhyYXNlIGlzIG9uIGl0cyBv d24gbGluZSB0aGVuIHRoZSBkZWZhdWx0IG5ld2xpbmUgKDxjb2RlPlxuPC9jb2RlPikgaXMg c3VmZmljaWVudC4gSWYgeW91IHdpc2ggdG8gaGF2ZSBhbGwgeW91ciB0ZXh0IHN0cmluZ3Mg b24gb25lIGxpbmUgb2YgdGhlIGZpbGUgZGVsaW1pdGVkIGJ5IHNvbWUgb3RoZXIgY2hhcmFj dGVyLCBzZXQgeW91ciBvd24gZGVsaW1pdGVyIGhlcmU8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+bGltaXQ8L3NwYW4+IDogdGhlIG51bWJlciBvZiBpdGVtcyB0byBwdWxsIGZy b20gdGhlIGxpc3QuIERlZmF1bHRzIHRvIDEuIElmIHlvdSBzcGVjaWZ5IG1vcmUgdGhhbiB0 aGUgYXZhaWxhYmxlIG51bWJlciBvZiBpdGVtcyBpbiB0aGUgcG9vbCwgdGhlIGVudGlyZSBw b29sIHdpbGwgYmUgdXNlZCBhbmQgcHJlc2VudGVkIGluIGEgcmFuZG9tIG9yZGVyPC9saT4K CQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPml0ZW1fbnVtPC9zcGFuPiA6IHNob3cgdGhpcyBw YXJ0aWN1bGFyIGl0ZW0gZnJvbSB0aGUgcG9vbC4gSWYgaXQgZG9lc24mIzgyMTc7dCBleGlz dCwgeW91IGdldCB0aGUgZmlyc3QgaXRlbS4gQnV0IHdhaXQ/ISBUaGlzIGlzIGEgcmFuZG9t X3RleHQgcGx1Z2luLCB3aHkgd291bGQgYW55Ym9keSB3YW50IHRvIHNwZWNpZnkgd2hpY2gg aXRlbSB0byB1c2U/IFR3byB1c2VzIHNwcmluZyB0byBtaW5kOiBGaXJzdGx5LCBpZiB5b3Ug aGF2ZSBhbHJlYWR5IHJhbmRvbWl6ZWQgeW91ciBpdGVtcyBleHRlcm5hbGx5IHlvdSBtaWdo dCB3aXNoIHRvIGFsd2F5cyBwaWNrLCBzYXksIHRoZSBmaXJzdCBpdGVtLiBTZWNvbmRseSAm IzgyMTI7IGFuZCBmYXIgbW9yZSBzdWJ0bHkgJiM4MjEyOyBpZiB5b3Ugd2lzaCB0byBwdWxs IG1vcmUgdGhhbiBvbmUgaXRlbSBmcm9tIGFueSByYW5kb21seSBjaG9zZW4gcGxhY2UsIHlv dSBjYW4gbmVzdCBzbWRfcmFuZG9tX3RleHQgdGFncyBhbmQgbWFrZSB0aGUgaW5uZXIgdGFn cyBhbHdheXMgdXNlIHRoZSBzYW1lIHJvdy9wb3NpdGlvbiBudW1iZXIgYXMgdGhlIHJhbmRv bWx5IGNob3NlbiBvdXRlciB0YWcuIFNlZSA8YSBocmVmPSIjZWc3Ij5leGFtcGxlIDc8L2E+ IGZvciBhbiBleGFtcGxlPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNodWZmbGU8 L3NwYW4+IDogcGVyaGFwcyBhIGxpdHRsZSBwb2ludGxlc3MsIHRoaXMgYWRkcyBhbiBleHRy YSBsYXllciBvZiByYW5kb21uZXNzIHRvIHByb2NlZWRpbmdzIGJ5IHNodWZmbGluZyB0aGUg Y2hvc2VuIGl0ZW1zIGFnYWluLiBTbyBpZiB5b3UgaGFkIGFza2VkIGZvciA2IGl0ZW1zIGlu IHlvdXIgbGlzdCBvZiAyMCBhbmQgdGhlIHBsdWdpbiBoYWQgcmFuZG9tbHkgY2hvc2VuIHRo ZW0gaW4gdGhpcyBvcmRlcjogPGNvZGU+NCwgMTcsIDIsIDUsIDEzLCAxMTwvY29kZT4sIHVz aW5nIDxjb2RlPnNodWZmbGU9JnF1b3Q7MSZxdW90OzwvY29kZT4gbWlnaHQgcmVvcmRlciB0 aGVtIHRvIDxjb2RlPjE3LCA1LCAyLCAxMSwgNCwgMTM8L2NvZGU+PC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0bm0iPmNvdW50PC9zcGFuPiA6IHdoZXRoZXIgdG8gY291bnQgPGNvZGU+ dXA8L2NvZGU+ICh0aGUgZGVmYXVsdCkgb3IgPGNvZGU+ZG93bjwvY29kZT4gZm9yIGVhY2gg cmFuZG9tIHBpZWNlIG9mIHRleHQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+dHJp bTwvc3Bhbj4gOiB3aGV0aGVyIHRvIHJlbW92ZSB3aGl0ZXNwYWNlIGZyb20gYXJvdW5kIGVh Y2ggbGlzdCBpdGVtICgxKSBvciBub3QgKDApLiBEZWZhdWx0OiAxPC9saT4KCQk8bGk+PHNw YW4gY2xhc3M9ImF0bm0iPmVzY2FwZTwvc3Bhbj4gOiBlc2NhcGUgPHNwYW4gY2xhc3M9ImNh cHMiPkhUTUw8L3NwYW4+IGVudGl0aWVzIHN1Y2ggYXMgPGNvZGU+Jmx0OzwvY29kZT4sIDxj b2RlPiZndDs8L2NvZGU+IGFuZCA8Y29kZT4mYW1wOzwvY29kZT4gaW4gYW55IHRleHQgaXRl bXMuIFVzZSA8Y29kZT5lc2NhcGU9JnF1b3Q7JnF1b3Q7PC9jb2RlPiB0byB0dXJuIGl0IG9m Zi4gRGVmYXVsdDogPGNvZGU+aHRtbDwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXRubSI+Zm9ybTwvc3Bhbj4gOiB0aGUgZm9ybSB0byB1c2UgdG8gZm9ybWF0IHRoZSB0ZXh0 LiBJZiBub3Qgc3VwcGxpZWQsIHdpbGwgdHJ5IHRoZSBjb250YWluZXIuIElmIHRoYXQmIzgy MTc7cyBub3QgdXNlZCBlaXRoZXIsIHRoZSBwbHVnaW4gd2lsbCBzaW1wbHkgb3V0cHV0IHRo ZSBjaG9zZW4gdGV4dCBvbiBpdHMgb3duPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PndyYXB0YWc8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnIHdpdGggd2hpY2ggdG8gd3JhcCB0 aGUgY2hvc2VuIHN0cmluZ3MsIGVnIDxjb2RlPndyYXB0YWc9JnF1b3Q7dWwmcXVvdDs8L2Nv ZGU+LiBEZWZhdWx0OiB1bnNldDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5icmVh azwvc3Bhbj4gOiB0aGUgKFgpSFRNTCB0YWcgdG8gcHV0IGJldHdlZW4gc3VjY2Vzc2l2ZSBp dGVtcyBvZiB0ZXh0LCBlZyA8Y29kZT5icmVhaz0mcXVvdDtsaSZxdW90OzwvY29kZT4uIERl ZmF1bHQ6IHVuc2V0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmNsYXNzPC9zcGFu PiA6IHRoZSA8c3BhbiBjbGFzcz0iY2FwcyI+Q1NTPC9zcGFuPiBjbGFzcyB0byBhcHBseSB0 byB0aGUgaXRlbSB3cmFwdGFnLCBlZyA8Y29kZT5jbGFzcz0mcXVvdDtyYW5kb21fc3RyaW5n cyZxdW90OzwvY29kZT4uIERlZmF1bHQ6IHVuc2V0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9 ImF0bm0iPmRlYnVnPC9zcGFuPiA6IHNldCB0byAxIHRvIHNob3cgdGhlIHBvb2wsIHRoZSBm aWxlIG5hbWUgKGlmIGFwcGxpY2FibGUpIGFuZCB0aGUgY2hvc2VuIGl0ZW1zLiBVc2UgMiB0 byBzZWUgd2hhdCA8Y29kZT5maWVsZDwvY29kZT5zIGFyZSBhdmFpbGFibGU8L2xpPgoJPC91 bD4KCgk8aDM+UmVwbGFjZW1lbnQgdGFnczwvaDM+CgoJPHA+V2hlbiB1c2luZyBhIGZvcm0g b3IgY29udGFpbmVyLCB1c2UgdGhlIGZvbGxvd2luZyByZXBsYWNlbWVudCB0YWdzIHRvIGlu c2VydCB0aGUgcmVsZXZhbnQgcGllY2Ugb2YgaW5mb3JtYXRpb24gd2hlcmV2ZXIgeW91IHdh bnQgaXQ6PC9wPgoKCTxwPjxjb2RlPntzbWRfcm5kX3R4dH08L2NvZGU+IDogdGhlIHRleHQg c3RyaW5nIGl0c2VsZjxiciAvPgo8Y29kZT57c21kX3JuZF90eHRfcm93c308L2NvZGU+IDog dGhlIG51bWJlciBvZiBpdGVtcyBpbiB0b3RhbDxiciAvPgo8Y29kZT57c21kX3JuZF90eHRf dGhpc3Jvd308L2NvZGU+IDogdGhlIGN1cnJlbnQgcm93IG51bWJlcjxiciAvPgo8Y29kZT57 c21kX3JuZF90eHRfdGhpc2luZGV4fTwvY29kZT4gOiB0aGUgY3VycmVudCByb3cgaW5kZXgg KHplcm8tYmFzZWQpPGJyIC8+Cjxjb2RlPntzbWRfcm5kX3R4dF9jaG9zZW5faXRlbX08L2Nv ZGU+IDogdGhlIHplcm8tYmFzZWQgaW5kZXggbnVtYmVyIG9mIHRoZSBhY3R1YWwgaXRlbSBz ZWxlY3RlZCBieSB0aGUgcGx1Z2luIChzZWUgPGEgaHJlZj0iI2VnNyI+ZXhhbXBsZSA3PC9h PjwvcD4KCgk8aDI+RXhhbXBsZXM8L2gyPgoKCTxoMyBpZD0iZWcxIj5FeGFtcGxlIDE6IFF1 b3RlIG9mIHRoZSBkYXk8L2gzPgoKCTxwPlJlYWQgZnJvbSBhIGRhdGFiYXNlLCB0aGUgdGFi bGUgKHRoYXQgaGFzIGJlZW4gYWRkZWQgdG8gdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8 L3NwYW4+IGRhdGFiYXNlOyB0aGUgY29ubmVjdGlvbiBtdXN0IGFscmVhZHkgYmUgb3Blbikg aXMgY2FsbGVkICYjODIyMDtxdW90ZXMmIzgyMjE7IGFuZCB0aGUgY29sdW1uIGNvbnRhaW5p bmcgdGhlIHF1b3RlcyBpcyBjYWxsZWQgJiM4MjIwO3RleHQmIzgyMjE7OjwvcD4KCjxwcmUg Y2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX3JhbmRvbV90 ZXh0IHR5cGU9JnF1b3Q7ZGF0YWJhc2UmcXVvdDsKICAgICBzb3VyY2U9JnF1b3Q7cXVvdGVz fHRleHQmcXVvdDsmZ3Q7CiAgJmx0O2RpdiBjbGFzcz0mcXVvdDtxb3RkJnF1b3Q7Jmd0O1F1 b3RlIG9mIHRoZSBkYXk6ICZsdDticiAvJmd0O3tzbWRfcm5kX3R4dH0mbHQ7L2RpdiZndDsK Jmx0Oy90eHA6c21kX3JhbmRvbV90ZXh0Jmd0Owo8L2NvZGU+PC9wcmU+CgoJPGgzIGlkPSJl ZzIiPkV4YW1wbGUgMjogRml2ZSByYW5kb20gY29tbWVudHM8L2gzPgoKPHByZSBjbGFzcz0i YmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFuZG9tX3RleHQgdHlw ZT0mcXVvdDtkYXRhYmFzZSZxdW90OwogICAgIHNvdXJjZT0mcXVvdDt0eHBfZGlzY3Vzc3xt ZXNzYWdlJnF1b3Q7IGxpbWl0PSZxdW90OzUmcXVvdDsKICAgICB3cmFwdGFnPSZxdW90O3Vs JnF1b3Q7IGJyZWFrPSZxdW90O2xpJnF1b3Q7IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMg aWQ9ImVnMyI+RXhhbXBsZSAzOiBUb3AgMTAgd29yZHM8L2gzPgoKCTxwPlRvcCB0ZW4gcmFu ZG9tIHNpbGx5IHdvcmRzIGZyb20gYSBsaXN0IGluIGEgZmlsZSBpbiB0aGUgdGV4dHBhdHRl cm4gcm9vdCBmb2xkZXIsIGNvdW50aW5nIGRvd24gZnJvbSAxMCB0byAxLiBFYWNoIHdvcmQg bXVzdCBiZSBvbiBhIHNlcGFyYXRlIHJvdyBvZiB0aGUgZmlsZSB1bmxlc3MgeW91IHNwZWNp ZnkgdGhlIDxjb2RlPmRlbGltPC9jb2RlPiBhdHRyaWJ1dGUgdG8gYmUgc29tZXRoaW5nIGVs c2U7IGluIHdoaWNoIGNhc2UgdGhlIHdvcmRzIG11c3QgYWxsIGFwcGVhciBvbiB0aGUgZmly c3Qgcm93IG9mIHRoZSBmaWxlLiBJZiB0aGVyZSBhcmVuJiM4MjE3O3QgMTAgaXRlbXMgaW4g dGhlIGZpbGUsIHRoZSBjb3VudCBiZWdpbnMgZnJvbSBob3dldmVyIGhpZ2ggaXQgY2FuIGdv LjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6 c21kX3JhbmRvbV90ZXh0IHR5cGU9JnF1b3Q7ZmlsZSZxdW90OwogICAgIHNvdXJjZT0mcXVv dDt3b3Jkcy50eHQmcXVvdDsgbGltaXQ9JnF1b3Q7MTAmcXVvdDsKICAgICBmb3JtPSZxdW90 O3dvcmRvdXQmcXVvdDsgY291bnQ9JnF1b3Q7ZG93biZxdW90OyAvJmd0Owo8L2NvZGU+PC9w cmU+CgoJPHA+YW5kIGluIGZvcm0gPGNvZGU+d29yZG91dDwvY29kZT46PC9wPgoKPHByZSBj bGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+I3tzbWRfcm5kX3R4dF90aGlzcm93 fSA6IHtzbWRfcm5kX3R4dH0gJmx0O2JyIC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9 ImVnNCI+RXhhbXBsZSA0OiBSYW5kb20gZS1tYWlsIGFkZHJlc3M8L2gzPgoKCTxwPlVzZSBh IDxjb2RlPiZsdDt0eHA6dmFyaWFibGUgLyZndDs8L2NvZGU+IHRvIGhvbGQgYSBsaXN0IG9m IHJhbmRvbSBlLW1haWwgYWRkcmVzc2VzIGZyb20gd2hpY2ggb25lIHdpbGwgYmUgc2VsZWN0 ZWQgdG8gYmUgc2VudCB2aWEgYSB6ZW1fY29udGFjdF9yZWJvcm4gZm9ybTo8L3A+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnZhcmlhYmxlIG5h bWU9JnF1b3Q7ZW1haWxzJnF1b3Q7CiAgICAgdmFsdWU9JnF1b3Q7QWxkb3VzLkh1eGxleXxX aWxsaWFtLlNoYWtlc3BlYXJlfEpvaG4uQmV0amVtYW4mcXVvdDsgLyZndDsKJmx0O3R4cDp6 ZW1fY29udGFjdAogICAgIHRvPSYjMzk7Jmx0O3R4cDpzbWRfcmFuZG9tX3RleHQgdHlwZT0m cXVvdDt0eHB2YXImcXVvdDsKICAgICBzb3VyY2U9JnF1b3Q7ZW1haWxzJnF1b3Q7IC8mZ3Q7 QHdyaXRlcnMuY29tJiMzOTsmZ3Q7CiAgLy8gT3RoZXIgemVtX2NvbnRhY3Qgb3B0aW9ucwom bHQ7L3R4cDp6ZW1fY29udGFjdCZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWc1Ij5F eGFtcGxlIDU6IFJhbmRvbSBpbWFnZSBzZWxlY3Rpb248L2gzPgoKCTxwPkluZGlyZWN0bHks IG5vdCBqdXN0IGZvciB0ZXh0ISBDaG9vc2UgdHdvIHJhbmRvbSBpbWFnZSBJRHMgZnJvbSBh IGNvbW1hLXNlcGFyYXRlZCBsaXN0IGdpdmVuIGluIHRoZSBjdXN0b20gZmllbGQgbGFiZWxs ZWQgJiM4MjIwO215X2ltYWdlcyYjODIyMTsgYW5kIGRpc3BsYXkgdGhlbSB2aWEgdGhlIGJ1 aWx0LWluIDxjb2RlPiZsdDt0eHA6aW1hZ2UgLyZndDs8L2NvZGU+IHRhZy48L3A+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9yYW5kb21f dGV4dCB0eXBlPSZxdW90O2ZpZWxkJnF1b3Q7CiAgICAgc291cmNlPSZxdW90O215X2ltYWdl cyZxdW90OyBsaW1pdD0mcXVvdDsyJnF1b3Q7IGRlbGltPSZxdW90OywmcXVvdDsmZ3Q7CiAg Jmx0O3R4cDppbWFnZSBpZD0mcXVvdDt7c21kX3JuZF90eHR9JnF1b3Q7IC8mZ3Q7CiZsdDsv dHhwOnNtZF9yYW5kb21fdGV4dCZndDsKPC9jb2RlPjwvcHJlPgoKCTxoMyBpZD0iZWc2Ij5F eGFtcGxlIDY6IEl0ZW0gZnJvbSBhIGZhY3QgZmlsZTwvaDM+CgoJPHA+QWRkIHRoaXMgdG8g eW91ciA8Y29kZT5maWxlczwvY29kZT4gZm9ybSB0byBkaXNwbGF5IGEgcmFuZG9tIGZhY3Qg YWJvdXQgZWFjaCBmaWxlIGZyb20gYSBwaXBlLWRlbG1paXRlZCBsaXN0IGRlZmluZWQgaW4g dGhlIGZpbGUmIzgyMTc7cyA8Y29kZT5kZXNjcmlwdGlvbjwvY29kZT4gZmllbGQ6PC9wPgoK PHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfcmFu ZG9tX3RleHQgdHlwZT0mcXVvdDtmaWVsZCZxdW90OwogICAgIHNvdXJjZT0mcXVvdDtkZXNj cmlwdGlvbiZxdW90OyZndDsKJmx0O2JyIC8mZ3Q7RkFDVDoge3NtZF9ybmRfdHh0fQombHQ7 L3R4cDpzbWRfcmFuZG9tX3RleHQmZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnNyI+ RXhhbXBsZSA3OiBLZWVwaW5nIGl0ZW1zIGluIHN5bmM8L2gzPgoKCTxwPlNheSB5b3UgaGF2 ZSBhIGRhdGFiYXNlIHRoYXQgaG9sZHMgZW1wbG95ZWUgaW5mb3JtYXRpb24gYW5kIHlvdSB3 YW50IHRvIGdpdmUgdGhyZWUgcmFuZG9tIGVtcGxveWVlcyBhIDEwJSBib251cy4gWW91IG5l ZWQgdG8gcHVibGlzaCB0aGUgbGlzdCBvbiB0aGUgd2ViIHNpdGUgYnV0IHlvdSB3YW50IHRv IG1ha2Ugc3VyZSB5b3UgZ2V0IHRoZSByaWdodCBlbXBsb3llZXMgY29taW5nIGZvcndhcmQu IFNvIHlvdSBuZWVkIHRvIHB1Ymxpc2ggdGhlaXIgbmFtZSwgZW1wbG95ZWUgSUQsIGFuZCBk ZXBhcnRtZW50IChpLmUuIDMgY29sdW1ucyBmcm9tIHRoZSB0YWJsZSkuPC9wPgoKCTxwPldp dGggc21kX3JhbmRvbV90ZXh0IHlvdSBjYW4gb25seSBncmFiIG9uZSBjb2x1bW4gYXQgYSB0 aW1lIHNvIGhvdyBkbyB5b3UgZW5zdXJlIHlvdSBnZXQgdGhlIHRocmVlIGNvbHVtbnMgdGhh dCBjb3JyZXNwb25kIHdpdGggdGhlIGNvcnJlY3Qgcm93IGZvciBlYWNoIGVtcGxveWVlPyBM aWtlIHRoaXM6PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+ Jmx0O3R4cDpzbWRfcmFuZG9tX3RleHQgdHlwZT0mcXVvdDtkYXRhYmFzZSZxdW90OwogICAg IHNvdXJjZT0mcXVvdDtlbXBsb3llZXM6bmFtZSZxdW90OyBsaW1pdD0mcXVvdDszJnF1b3Q7 IHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsKICAgICBicmVhaz0mcXVvdDtsaSZxdW90OyZndDsK ICAge3NtZF9ybmRfdHh0fQogICAoJmx0O3R4cDpzbWRfcmFuZG9tX3RleHQgdHlwZT0mcXVv dDtkYXRhYmFzZSZxdW90OwogICAgIHNvdXJjZT0mcXVvdDtlbXBsb3llZXM6SUQmcXVvdDsK ICAgICBpdGVtX251bT0mcXVvdDt7c21kX3JuZF90eHRfY2hvc2VuX2l0ZW19JnF1b3Q7IC8m Z3Q7KQogICBmcm9tIHRoZSAmbHQ7dHhwOnNtZF9yYW5kb21fdGV4dCB0eXBlPSZxdW90O2Rh dGFiYXNlJnF1b3Q7CiAgICAgc291cmNlPSZxdW90O2VtcGxveWVlczpkZXBhcnRtZW50JnF1 b3Q7CiAgICAgaXRlbV9udW09JnF1b3Q7e3NtZF9ybmRfdHh0X2Nob3Nlbl9pdGVtfSZxdW90 OyAvJmd0OwogICBkZXBhcnRtZW50CiZsdDsvdHhwOnNtZF9yYW5kb21fdGV4dCZndDsKPC9j b2RlPjwvcHJlPgoKCTxwPkFzIHlvdSBjYW4gc2VlLCB0aGUgZmlyc3Qgc21kX3JhbmRvbV90 ZXh0IGNob29zZXMgdGhyZWUgcmFuZG9tIGVtcGxveWVlIG5hbWVzIGZyb20gdGhlIGRhdGFi YXNlLiBUaGVuLCBmb3IgZWFjaCBvZiB0aGUgY2hvc2VuIGVtcGxveWVlIG5hbWVzLCB0aGUg c2Vjb25kIChpbm5lcikgc21kX3JhbmRvbV90ZXh0IGdvZXMgYmFjayB0byB0aGUgZGF0YWJh c2UgYW5kIGdldHMgdGhlICYjODIxNjtJRCYjODIxNzsgY29sdW1uIF9mcm9tIHRoZSBzYW1l IHJvdyBhcyB0aGUgb25lIGp1c3QgY2hvc2VuLiBJdCB1c2VzIDxjb2RlPntzbWRfcm5kX3R4 dF9jaG9zZW5faXRlbX08L2NvZGU+IHRvIGZvcmNlIHRoZSBwbHVnaW4gdG8gcmVhZCB0aGUg Y3VycmVudCByb3cuIFRoZSB0aGlyZCBzbWRfcmFuZG9tX3RleHQgZG9lcyBleGFjdGx5IHRo ZSBzYW1lOiBncmFicyB0aGUgJiM4MjE2O2RlcGFydG1lbnQmIzgyMTc7IGNvbHVtbiBmcm9t IHRoZSByb3cgd2UgcmFuZG9tbHkgc2VsZWN0ZWQgYXQgdGhlIHN0YXJ0LjwvcD4KCgk8cD5P SywgdGhhdCYjODIxNztzIGEgY29udHJpdmVkIGV4YW1wbGUgYmVjYXVzZSB5b3UmIzgyMTc7 ZCBuZXZlciB1c2Ugc21kX3JhbmRvbV90ZXh0IGZvciB0aGlzIHR5cGUgb2YgdGhpbmcgJiM4 MjEyOyAgZm9yIGEgc3RhcnQgaXQmIzgyMTc7cyBhIHdhc3RlIG9mIGJhbmR3aWR0aCBhbmQg dGhlIHRocmVlIGNhbGxzIGFyZSBub3QgYXRvbWljLiBZb3UgY291bGQsIGhvd2V2ZXIsIGFw cGx5IHRoZSBzYW1lIGxvZ2ljIHRvIHRocmVlIDxjb2RlPiZsdDt0eHA6dmFyaWFibGVzIC8m Z3Q7PC9jb2RlPiBjb250YWluaW5nIGxpbmtlZCBpbmZvcm1hdGlvbi4gSW4gdGhpcyBtYW5u ZXIgeW91IGNhbiBidWlsZCB1cCBjb21wbGV4IGludGVyYWN0aW9ucyBiZXR3ZWVuIHNvdXJj ZXM7IHRoZXkgZG9uJiM4MjE3O3QgZXZlbiBoYXZlIHRvIGJlIG9mIHRoZSBzYW1lIHR5cGUh PC9wPgoKCTxoMj5DaGFuZ2Vsb2c8L2gyPgoKCTx1bD4KCQk8bGk+MTAgT2N0IDA4IHwgMC4x IHwgSW5pdGlhbCByZWxlYXNlPC9saT4KCQk8bGk+MTcgTWFyIDA5IHwgMC4xMSB8IEFkZGVk IDxjb2RlPnRyaW08L2NvZGU+IGFuZCA8Y29kZT5lc2NhcGU8L2NvZGU+PC9saT4KCQk8bGk+ MjYgSnVsIDA5IHwgMC4xMiB8IEFkZGVkIDxjb2RlPml0ZW1fbnVtPC9jb2RlPiwgPGNvZGU+ c2h1ZmZsZTwvY29kZT4gYW5kIHRoZSByZXBsYWNlbWVudCB0YWcgPGNvZGU+e3NtZF9ybmRf dHh0X2Nob3Nlbl9pdGVtfTwvY29kZT48L2xpPgoJPC91bD4KCjwvZGl2Pgo8IS0tICoqKiBC RUdJTiBQTFVHSU4gQ1NTICoqKiAtLT4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3NtZF9o ZWxwIHsgbGluZS1oZWlnaHQ6MS41IDt9CiNzbWRfaGVscCBjb2RlIHsgZm9udC13ZWlnaHQ6 Ym9sZDsgZm9udDogMTA1JS8xMzAlICJDb3VyaWVyIE5ldyIsIGNvdXJpZXIsIG1vbm9zcGFj ZTsgYmFja2dyb3VuZC1jb2xvcjogI0ZGRkZDQzt9CiNzbWRfaGVscCBjb2RlLmJsb2NrIHsg Zm9udC13ZWlnaHQ6bm9ybWFsOyBib3JkZXI6MXB4IGRvdHRlZCAjOTk5OyBiYWNrZ3JvdW5k LWNvbG9yOiAjZjBlNjhjOyBkaXNwbGF5OmJsb2NrOyBtYXJnaW46MTBweCAxMHB4IDIwcHg7 IHBhZGRpbmc6MTBweDsgfQojc21kX2hlbHAgYTpsaW5rLCAjc21kX2hlbHAgYTp2aXNpdGVk IHsgY29sb3I6ICMwMGM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgYm9yZGVyLWJvdHRvbTog MXB4IHNvbGlkIGJsdWU7IHBhZGRpbmctYm90dG9tOjFweDt9CiNzbWRfaGVscCBhOmhvdmVy LCAjc21kX2hlbHAgYTphY3RpdmUgeyBjb2xvcjogYmx1ZTsgdGV4dC1kZWNvcmF0aW9uOiBu b25lOyBib3JkZXItYm90dG9tOiAycHggc29saWQgYmx1ZTsgcGFkZGluZy1ib3R0b206MXB4 O30KI3NtZF9oZWxwIGgxIHsgY29sb3I6ICMzNjk7IGZvbnQ6IDIwcHggR2VvcmdpYSwgc2Fu cy1zZXJpZjsgbWFyZ2luOiAwOyB0ZXh0LWFsaWduOiBjZW50ZXI7IH0KI3NtZF9oZWxwIGgy IHsgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkIGJsYWNrOyBwYWRkaW5nOjEwcHggMCAwOyBj b2xvcjogIzM2OTsgZm9udDogMTdweCBHZW9yZ2lhLCBzYW5zLXNlcmlmOyB9CiNzbWRfaGVs cCBoMyB7IGNvbG9yOiAjMDc5OyBmb250OiBib2xkIDEycHggQXJpYWwsIHNhbnMtc2VyaWY7 IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDA7dGV4dC10cmFuc2Zvcm06 IHVwcGVyY2FzZTsgdGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CiNzbWRfaGVscCBoNCB7 IGZvbnQ6IGJvbGQgMTFweCBBcmlhbCwgc2Fucy1zZXJpZjsgbGV0dGVyLXNwYWNpbmc6IDFw eDsgbWFyZ2luOiAxMHB4IDAgMCA7dGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTsgfQojc21k X2hlbHAgLmF0bm0geyBmb250LXdlaWdodDpib2xkOyBjb2xvcjojMzNkOyB9CiNzbWRfaGVs cCAubWFuZCB7IGJhY2tncm91bmQ6I2VlZTsgYm9yZGVyOjFweCBkb3R0ZWQgIzk5OTsgfQoj c21kX2hlbHAgdGFibGUge3dpZHRoOjkwJTsgdGV4dC1hbGlnbjpjZW50ZXI7IHBhZGRpbmct Ym90dG9tOjFlbTt9CiNzbWRfaGVscCB0ZCwgI3NtZF9oZWxwIHRoIHtib3JkZXI6MXB4IHNv bGlkICM5OTk7IHBhZGRpbmc6LjVlbSAwO30KI3NtZF9oZWxwIHVsIHsgbGlzdC1zdHlsZS10 eXBlOnNxdWFyZTsgfQojc21kX2hlbHAgbGkgeyBtYXJnaW46NXB4IDIwcHggNXB4IDMwcHg7 IH0KI3NtZF9oZWxwIC5icmVhayB7IG1hcmdpbi10b3A6NXB4OyB9Cjwvc3R5bGU+CjwhLS0g KioqIEVORCBQTFVHSU4gQ1NTICoqKiAtLT4KIjtzOjM6Im1kNSI7czozMjoiYThhMTJmYjJh Yjg0YjUzZjRkYTkwZjk5ZTllMDFlMGMiO30=