# Name: smd_lately v0.11 # Type: Client side plugin # Show recently viewed/popular articles # 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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEwOiJzbWRfbGF0ZWx5IjtzOjY6ImF1dGhvciI7czoxMToi U3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjI6Imh0dHA6Ly9zdGVmZGF3c29u LmNvbS8iO3M6NzoidmVyc2lvbiI7czo0OiIwLjExIjtzOjExOiJkZXNjcmlwdGlvbiI7czoz NzoiU2hvdyByZWNlbnRseSB2aWV3ZWQvcG9wdWxhciBhcnRpY2xlcyI7czo0OiJjb2RlIjtz OjM4NTE6ImZ1bmN0aW9uIHNtZF9sYXRlbHkoJGF0dHMsICR0aGluZz1OVUxMKSB7DQoJZ2xv YmFsICRwcmVmcywgJHRoaXNhcnRpY2xlLCAkcGVybWxpbmtfbW9kZTsNCg0KCS8vIENoZWNr IGxvZ2dpbmcgaXMgb24NCglpZiAoICRwcmVmc1snbG9nZ2luZyddICE9ICdhbGwnKSB7DQoJ CXRyaWdnZXJfZXJyb3Ioc21kX3J2X2dUeHQoJ2xvZ2dpbmdfZW5hYmxlZCcpLCBFX1VTRVJf Tk9USUNFKTsNCgkJcmV0dXJuOw0KCX0NCg0KCWV4dHJhY3QobEF0dHMoYXJyYXkoDQoJCSdi eScgPT4gJ1NNRF9DVVJSRU5UJywgLy8gRGVmYXVsdCBpcyB0aGUgSVAgYWRkcmVzcyBvZiB0 aGUgY3VycmVudCB2aXNpdG9yLiBDYW4gYmUgZW1wdHkgZm9yICdhbGwnIHZpc2l0b3JzDQoJ CSdzZWN0aW9uJyA9PiAnJywNCgkJJ3Nob3dfY3VycmVudCcgPT4gMCwNCgkJJ2Zvcm0nID0+ ICcnLA0KCQknbGltaXQnID0+IDEwLA0KCQknc29ydCcgPT4gJ3RpbWUgZGVzYycsDQoJCSd3 cmFwdGFnJyA9PiAnJywNCgkJJ2JyZWFrJyA9PiAnYnInLA0KCQknY2xhc3MnID0+ICdfX0ZV TkNUSU9OX18nLA0KCQknbGFiZWwnID0+ICcnLA0KCQknbGFiZWx0YWcnID0+ICcnLA0KCQkn ZGVidWcnID0+IDAsDQoJKSwgJGF0dHMpKTsNCg0KCS8vIFNhbml0aXplIHNvcnQgb3B0aW9u cw0KCSRzb3J0Qml0cyA9IGRvX2xpc3QoJHNvcnQsICIgIik7DQoJaWYgKCFpc3NldCgkc29y dEJpdHNbMV0pIHx8ICFpbl9hcnJheSgkc29ydEJpdHNbMV0sIGFycmF5KCdkZXNjJywgJ2Fz YycpKSkgew0KCQkkc29ydEJpdHNbMV0gPSAnZGVzYyc7DQoJCSRzb3J0ID0gam9pbigiICIs ICRzb3J0Qml0cyk7DQoJfQ0KDQoJLy8gSVAgYWRkcmVzcyBjbGF1c2UNCgkkaXAgPSAnJzsN CglpZiAoJGJ5ID09ICdTTURfQ1VSUkVOVCcpIHsNCgkJaWYgKGZ1bmN0aW9uX2V4aXN0cygn cmVtb3RlX2FkZHInKSkgew0KCQkJJGlwID0gcmVtb3RlX2FkZHIoKTsNCgkJfSBlbHNlIHsN CgkJCSRpcCA9IHNlcnZlclNldCgnUkVNT1RFX0FERFInKTsNCgkJCWlmICgoJGlwID09ICcx MjcuMC4wLjEnIHx8ICRpcCA9PSBzZXJ2ZXJTZXQoJ1NFUlZFUl9BRERSJykpICYmIHNlcnZl clNldCgnSFRUUF9YX0ZPUldBUkRFRF9GT1InKSkgew0KCQkJCSRpcHMgPSBleHBsb2RlKCcs ICcsIHNlcnZlclNldCgnSFRUUF9YX0ZPUldBUkRFRF9GT1InKSk7DQoJCQkJJGlwID0gJGlw c1swXTsNCgkJCX0NCgkJfQ0KCQlpZiAoJGlwKSB7DQoJCQkkaXAgPSAiIEFORCBpcD0nIi5k b1NsYXNoKCRpcCkuIiciOw0KCQl9DQoJfSBlbHNlIGlmICgkYnkgPT0gJ1NNRF9BTEwnKSB7 DQoJCSRieSA9ICcnOw0KCX0NCg0KCS8vIE1ha2Ugc3VyZSB3ZSBkb24ndCBpbmNsdWRlIHRo ZSBjdXJyZW50IGFydGljbGUNCgkvLyBOb3RlIHRoZSByZWdleHAgaXMgYW5jaG9yZWQgdG8g dGhlIGVuZCB3aXRoIGEgJA0KCSR0aGlzaWNsZSA9ICcnOw0KCWlmIChpc3NldCgkdGhpc2Fy dGljbGUpKSB7DQoJCWlmICghJHNob3dfY3VycmVudCkgew0KCQkJJHVybHRpdGxlID0gJHRo aXNhcnRpY2xlWyd1cmxfdGl0bGUnXTsNCgkJCSR0aGlzaWNsZSA9ICIgQU5EIHBhZ2UgTk9U IFJFR0VYUCAnJHVybHRpdGxlJCciOw0KCQl9DQoJfQ0KDQoJLy8gRmlsdGVyIG91dCBhcnRp Y2xlX2xpc3QgcGFnZXMgYW5kIG90aGVyICh1bilkZXNpcmFibGVzDQoJJHJ1bGVzID0gYXJy YXkoDQoJCSJwYWdlIE5PVCBSRUdFWFAgJ14vJCciLCAvLyBHb29kYnllIGZyb250IHBhZ2UN CgkJInBhZ2UgTk9UIFJFR0VYUCAncT0nIiwgLy8gR29vZGJ5ZSBzZWFyY2hlcw0KCQkicGFn ZSBOT1QgUkVHRVhQICdjPSciLCAvLyBHb29kYnllIGNhdCBsaXN0cw0KCQkicGFnZSBOT1Qg UkVHRVhQICdjYXRlZ29yeT0nIiwNCgkJInBhZ2UgTk9UIFJFR0VYUCAnXi9jYXRlZ29yeS8n IiwNCgkJInBhZ2UgTk9UIFJFR0VYUCAnYXV0aG9yPSciLA0KCQkicGFnZSBOT1QgUkVHRVhQ ICdeL2F1dGhvci8nIiwNCgkpOw0KDQoJaWYgKCRzZWN0aW9uKSB7DQoJCSRzZWN0aW9uID0g ZG9fbGlzdCgkc2VjdGlvbik7DQoJCSRzdWJydWxlID0gYXJyYXkoKTsNCgkJZm9yZWFjaCAo JHNlY3Rpb24gYXMgJHNlYykgew0KCQkJaWYgKCRwZXJtbGlua19tb2RlID09ICdtZXNzeScp IHsNCgkJCQkkc3VicnVsZVtdID0gInBhZ2UgUkVHRVhQICdzPSRzZWMnIjsNCgkJCX0gZWxz ZSB7DQoJCQkJJHN1YnJ1bGVbXSA9ICJwYWdlIFJFR0VYUCAnXi8kc2VjJyBBTkQgcGFnZSBO T1QgUkVHRVhQICdeLyRzZWMvPyQnIjsNCgkJCX0NCgkJfQ0KCQkkc3VicnVsZSA9ICcoJyAu IGpvaW4oJyBPUiAnLCAkc3VicnVsZSkgLiAnKSc7DQoJCSRydWxlc1tdID0gJHN1YnJ1bGU7 DQoJfSBlbHNlIHsNCgkJLy8gRXhjbHVkZSBhbnkgcm93cyB0aGF0IGp1c3QgY29udGFpbiB0 aGUgc2VjdGlvbiAoaS5lLiBhcnRpY2xlIGxpc3QgcGFnZXMpDQoJCSRhbGxTZWNzID0gc2Fm ZV9jb2x1bW4oJ25hbWUnLCAndHhwX3NlY3Rpb24nLCAiMT0xIiwgJGRlYnVnKTsNCgkJJHJ1 bGVzW10gPSAicGFnZSBOT1QgUkVHRVhQICdeLygiIC4gam9pbigifCIsICRhbGxTZWNzKSAu ICIpLz8kJyI7DQoJfQ0KDQoJJHJ1bGVzID0gJyBBTkQgJyAuIGpvaW4oJyBBTkQgJywgJHJ1 bGVzKTsNCg0KCSRxdWVyeSA9ICdTRUxFQ1QgY291bnQocGFnZSkgYXMgcG9wdWxhcml0eSwg cGFnZSwgTUFYKHRpbWUpIGFzIHRpbWUgRlJPTSAnLlBGWC4ndHhwX2xvZyBXSEVSRSAxPTEn LiRpcC4kdGhpc2ljbGUuJHJ1bGVzLicgQU5EIHN0YXR1cyA9IDIwMCBHUk9VUCBCWSBwYWdl IE9SREVSIEJZICcuJHNvcnQ7DQoJJHJzID0gZ2V0Um93cygkcXVlcnksICRkZWJ1Zyk7DQoN CglpZiAoJGRlYnVnID4gMSkgew0KCQlkbXAoJHJzKTsNCgl9DQoNCgkvLyBMb29wIHVudGls IGxpbWl0IHJlYWNoZWQNCgkkY291bnQgPSAwOw0KCSRvdXQgPSBhcnJheSgpOw0KCWlmICgk cnMpIHsNCgkJZm9yZWFjaCAoJHJzIGFzICRyb3cpIHsNCgkJCWlmICgkbGltaXQgPiAwICYm IGlzX251bWVyaWMoJGxpbWl0KSAmJiAkY291bnQgPT0gJGxpbWl0KSBicmVhazsNCgkJCSR1 cmxwYXJ0cyA9IGV4cGxvZGUoJy8nLCAkcm93WydwYWdlJ10pOw0KCQkJJGRhcnRpY2xlID0g c2FmZV9yb3coJyosIHVuaXhfdGltZXN0YW1wKFBvc3RlZCkgYXMgdVBvc3RlZCwgdW5peF90 aW1lc3RhbXAoRXhwaXJlcykgYXMgdUV4cGlyZXMsIHVuaXhfdGltZXN0YW1wKExhc3RNb2Qp IGFzIHVMYXN0TW9kJywgJ3RleHRwYXR0ZXJuJywgInVybF90aXRsZT0nIi4kdXJscGFydHNb Y291bnQoJHVybHBhcnRzKS0xXS4iJyIpOw0KCQkJYXJ0aWNsZV9wdXNoKCk7DQoJCQlwb3B1 bGF0ZUFydGljbGVEYXRhKCRkYXJ0aWNsZSk7DQoJCQkkb3V0W10gPSAoJHRoaW5nKSA/IHBh cnNlKCR0aGluZykgOiAoKCRmb3JtKSA/IHBhcnNlX2Zvcm0oJGZvcm0pIDogaHJlZigkZGFy dGljbGVbJ1RpdGxlJ10sIHBlcm1saW5rdXJsKCRkYXJ0aWNsZSkpKTsNCgkJCWFydGljbGVf cG9wKCk7DQoJCQkkY291bnQrKzsNCgkJfQ0KCX0NCglyZXR1cm4gKCRvdXQpID8gZG9MYWJl bCgkbGFiZWwsICRsYWJlbHRhZykuZG9XcmFwKCRvdXQsICR3cmFwdGFnLCAkYnJlYWssICRj bGFzcykgOiAnJzsNCn0NCg0KLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQovLyBQbHVn aW4tc3BlY2lmaWMgcmVwbGFjZW1lbnQgc3RyaW5ncyAtIGxvY2FsaXNlIGFzIHJlcXVpcmVk DQpmdW5jdGlvbiBzbWRfcnZfZ1R4dCgkd2hhdCwgJGF0dHMgPSBhcnJheSgpKSB7DQoJJGxh bmcgPSBhcnJheSgNCgkJJ2xvZ2dpbmdfZW5hYmxlZCcgPT4gJ0xvZ2dpbmcgbXVzdCBiZSBz ZXQgdG8gIkFsbCBoaXRzIiBpbiBCYXNpYyBQZWZzLicsDQoJKTsNCglyZXR1cm4gc3RydHIo JGxhbmdbJHdoYXRdLCAkYXR0cyk7DQp9IjtzOjQ6InR5cGUiO3M6MToiMCI7czo1OiJvcmRl ciI7czoxOiI1IjtzOjU6ImZsYWdzIjtzOjE6IjAiO3M6NDoiaGVscCI7czo2ODU0OiI8ZGl2 IGlkPSJzbWRfaGVscCI+CgoJPGgxPnNtZF9sYXRlbHk8L2gxPgoKCTxwPkxpc3QgdGhlIG1v c3QgcmVjZW50IGFydGljbGVzIHZpZXdlZCBieSB0aGUgY3VycmVudCB2aXNpdG9yIG9yLCBh bHRlcm5hdGl2ZWx5LCBhbGwgdmlzaXRvcnMuIENhbiBhbHNvIG9yZGVyIGJ5IHBvcHVsYXJp dHkgKG1vc3Qgdmlld2VkKS48L3A+CgoJPGgyIGlkPSJmZWF0dXJlcyI+RmVhdHVyZXM8L2gy PgoKCTx1bD4KCQk8bGk+TGlzdCByZWNlbnRseSB2aWV3ZWQgYXJ0aWNsZXM6IHVzZWZ1bCBv biBwcm9kdWN0IHBhZ2VzIG9yIGluIHNob3BwaW5nIGNhcnQ8L2xpPgoJCTxsaT5TaG93IGEg bGlzdCBvZiB0aGUgbW9zdCBwb3B1bGFyIGFydGljbGVzPC9saT4KCQk8bGk+TGltaXQgZWl0 aGVyIGxpc3QgYnkgc2VjdGlvbiBpZiB5b3Ugd2lzaDwvbGk+CgkJPGxpPlVzZXMgdGhlIHZp c2l0b3IgbG9nczwvbGk+CgkJPGxpPkF1dG9tYXRpY2FsbHkgZmlsdGVycyBvdXQgYXJ0aWNs ZSBsaXN0IHBhZ2VzLCBjYXRlZ29yeSwgYXV0aG9yIG9yIHNlYXJjaCB2aXNpdHM8L2xpPgoJ PC91bD4KCgk8aDIgaWQ9ImF1dGhvciI+QXV0aG9yIC8gY3JlZGl0czwvaDI+CgoJPHA+PGEg aHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2NvbnRhY3QiPlN0ZWYgRGF3c29uPC9hPi48 L3A+CgoJPGgyIGlkPSJpbnN0YWxsIj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxhdGlvbjwv aDI+CgoJPHAgY2xhc3M9InJlcXVpcmVkIj5SZXF1aXJlcyBMb2dnaW5nIHRvIGJlIHNldCB0 byA8ZW0+QWxsIGhpdHM8L2VtPiAod2lsbCBpc3N1ZSBhIHdhcm5pbmcgb2Ygbm90KTwvcD4K Cgk8cD5Eb3dubG9hZCB0aGUgcGx1Z2luIGZyb20gZWl0aGVyIDxhIGhyZWY9Imh0dHA6Ly90 ZXh0cGF0dGVybi5vcmcvcGx1Z2lucy8xMTEwL3NtZF9sYXRlbHkiPnRleHRwYXR0ZXJuLm9y ZzwvYT4sIG9yIHRoZSA8YSBocmVmPSJodHRwOi8vc3RlZmRhd3Nvbi5jb20vc3ciPnNvZnR3 YXJlIHBhZ2U8L2E+LCBwYXN0ZSB0aGUgY29kZSBpbnRvIHRoZSA8c3BhbiBjbGFzcz0iY2Fw cyI+VFhQPC9zcGFuPiBBZG1pbiAtJmd0OyBQbHVnaW5zIHBhbmUsIGluc3RhbGwgYW5kIGVu YWJsZSB0aGUgcGx1Z2luLiBWaXNpdCB0aGUgPGEgaHJlZj0iaHR0cDovL2ZvcnVtLnRleHRw YXR0ZXJuLmNvbS92aWV3dG9waWMucGhwP2lkPTMxMzQxIj5mb3J1bSB0aHJlYWQ8L2E+IGZv ciBtb3JlIGluZm8gb3IgdG8gcmVwb3J0IG9uIHRoZSBzdWNjZXNzIG9yIG90aGVyd2lzZSBv ZiB0aGUgcGx1Z2luLjwvcD4KCgk8cD5UbyB1bmluc3RhbGwsIHNpbXBseSBkZWxldGUgZnJv bSB0aGUgQWRtaW4gLSZndDsgUGx1Z2lucyBwYWdlLjwvcD4KCgk8aDIgaWQ9Im5wIj48Y29k ZT4mbHQ7dHhwOnNtZF9sYXRlbHkmZ3Q7PC9jb2RlPjwvaDI+CgoJPHA+UGxhY2UgdGhpcyB0 YWcgYW55d2hlcmUgeW91IHdpc2ggdG8gZGlzcGxheSBhIGxpc3Qgb2YgcmVjZW50bHkgdmll d2VkIGFydGljbGVzLiBUaGUgdGFnIG1heSBiZSB1c2VkIGFzIGEgc2luZ2xlIHRhZyAod2l0 aCBhbiBvcHRpb25hbCBmb3JtKSBvciBhcyBhIGNvbnRhaW5lci4gSW5zaWRlIHRoZSBmb3Jt L2NvbnRhaW5lciB5b3UgY2FuIHVzZSBhbnkgc3RhbmRhcmQgYXJ0aWNsZSB0YWdzICYjODIx MjsgPGNvZGU+Jmx0O3R4cDp0aXRsZSAvJmd0OzwvY29kZT4sIDxjb2RlPiZsdDt0eHA6ZXhj ZXJwdCAvJmd0OzwvY29kZT4sIDxjb2RlPiZsdDt0eHA6cG9zdGVkIC8mZ3Q7PC9jb2RlPiwg ZXRjICYjODIxMjsgdG8gZm9ybWF0IHRoZSBsaXN0IGhvd2V2ZXIgeW91IGxpa2UuIFdpdGhv dXQgZWl0aGVyIGEgZm9ybSBvciBhIGNvbnRhaW5lciwgdGhlIHBsdWdpbiBkaXNwbGF5cyBh IGh5cGVybGlua2VkIHRpdGxlIHRvIHRoZSBhcnRpY2xlLjwvcD4KCgk8cD5UaGUgZm9sbG93 aW5nIGF0dHJpYnV0ZXMgY2FuIGJlIHVzZWQgdG8gbW9kaWZ5IHRoZSBwbHVnaW4mIzgyMTc7 cyBvdXRwdXQ6PC9wPgoKCTxoMyBjbGFzcz0iYXR0cyI+QXR0cmlidXRlczwvaDM+CgoJPHVs PgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Ynk8L3NwYW4+IDogdXNlIDxjb2RlPmJ5PSZx dW90OyZxdW90OzwvY29kZT4gb3IgPGNvZGU+Ynk9JnF1b3Q7U01EX0FMTCZxdW90OzwvY29k ZT4gdG8gdmlldyB0aGUgbW9zdCByZWNlbnQgYXJ0aWNsZXMgYnkgYWxsIHNpdGUgdmlzaXRv cnMuIEJ5IGRlZmF1bHQgKGkuZS4gaWYgdGhlIGF0dHJpYnV0ZSBpcyBvbWl0dGVkKSB0aGUg cGx1Z2luIG9ubHkgc2hvd3MgdGhlIHJlY2VudCBhcnRpY2xlcyB2aWV3ZWQgYnkgdGhlIGN1 cnJlbnQgdmlzaXRvcjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5zZWN0aW9uPC9z cGFuPiA6IGNob29zZSB0byBzaG93IGFydGljbGVzIG9ubHkgZnJvbSB0aGlzIGxpc3Qgb2Yg c2VjdGlvbnMuIERlZmF1bHQ6IHVuc2V0IChpLmUuIGZyb20gYWxsIHNlY3Rpb25zKTwvbGk+ CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5zaG93X2N1cnJlbnQ8L3NwYW4+IDogRGlzcGxh eSB0aGUgYXJ0aWNsZSBiZWluZyB2aWV3ZWQgaW4gdGhlIGxpc3Q6IDE9WWVzOyAwPU5vLiBJ Z25vcmVkIGlmIGluIGFuIGFydGljbGVfbGlzdCBwYWdlLiBEZWZhdWx0OiAwPC9saT4KCQk8 bGk+PHNwYW4gY2xhc3M9ImF0bm0iPnNvcnQ8L3NwYW4+IDogb3JkZXIgdGhlIGxpc3QgYnkg ZWl0aGVyIDxjb2RlPnRpbWU8L2NvZGU+LCBvciA8Y29kZT5wb3B1bGFyaXR5PC9jb2RlPi4g QWRkIDxjb2RlPmFzYzwvY29kZT4gb3IgPGNvZGU+ZGVzYzwvY29kZT4gdG8gY2hvb3NlIGFz Y2VuZGluZyBvciBkZXNjZW5kaW5nIHNvcnQgb3JkZXIuIERlZmF1bHQ6IDxjb2RlPnRpbWUg ZGVzYzwvY29kZT48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+Zm9ybTwvc3Bhbj4g OiBpZiB5b3UgcHJlZmVyIHRvIHVzZSBhIGZvcm0gaW5zdGVhZCBvZiB0aGUgY29udGFpbmVy IHRvIGhvbGQgeW91ciBtYXJrdXAgYW5kIHRhZ3MsIHNwZWNpZnkgaXQgaGVyZS4gRGVmYXVs dDogdW5zZXQuPC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmxpbWl0PC9zcGFuPiA6 IHNob3cgdGhpcyBtYW55IGl0ZW1zIGluIHRoZSBsaXN0LiAwID0gdW5saW1pdGVkLiBEZWZh dWx0OiAxMDwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj53cmFwdGFnPC9zcGFuPiA6 IHRoZSAoWClIVE1MIHRhZywgd2l0aG91dCBpdHMgYnJhY2tldHMsIHRvIHdyYXAgdGhlIGxp c3Qgd2l0aC4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ Y2xhc3M8L3NwYW4+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5DU1M8L3NwYW4+IGNsYXNz IG5hbWUgdG8gYXBwbHkgdG8gdGhlIHdyYXB0YWcuIERlZmF1bHQ6IDxjb2RlPnNtZF9sYXRl bHk8L2NvZGU+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0iPmJyZWFrPC9zcGFuPiA6 IHRoZSAoWClIVE1MIHRhZywgd2l0aG91dCBpdHMgYnJhY2tldHMsIHRvIHdyYXAgZWFjaCBp dGVtIHdpdGguIERlZmF1bHQ6IDxjb2RlPmJyPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNs YXNzPSJhdG5tIj5sYWJlbDwvc3Bhbj4gOiB0aGUgbGFiZWwgdGV4dCB0byBhZGQgdG8gdGhl IHRvcCBvZiB0aGUgbGlzdC4gRGVmYXVsdDogdW5zZXQ8L2xpPgoJCTxsaT48c3BhbiBjbGFz cz0iYXRubSI+bGFiZWx0YWc8L3NwYW4+IDogdGhlIChYKUhUTUwgdGFnLCB3aXRob3V0IGl0 cyBicmFja2V0cywgdG8gd3JhcCB0aGUgbGFiZWwgd2l0aC4gRGVmYXVsdDogdW5zZXQ8L2xp PgoJPC91bD4KCgk8aDMgaWQ9ImNhdmVhdHMiPkNhdmVhdHM8L2gzPgoKCTxwPlNpbmNlIHRo ZSBwbHVnaW4gdXNlcyB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlRYUDwvc3Bhbj4gbG9ncyB5 b3UgbmVlZCB0byBtYWtlIHN1cmUgdGhleSBhcmUgYmVpbmcgdXNlZCAoQWRtaW4tJmd0O0Jh c2ljIFByZWZzKS4gSXQgYWxzbyBtZWFucyB0aGF0IGFueSB2aXNpdG9ycyB1c2luZyBhbiBh bm9ueW1pc2luZyBwcm94eSB3aWxsIGdldCBzcHVyaW91cyAob3Igbm8pIHJlc3VsdHMuIFRo ZWlyIGxvc3MuPC9wPgoKCTxoMiBjbGFzcz0iZXhhbXBsZXMiPkV4YW1wbGVzPC9oMj4KCgk8 aDMgaWQ9ImVnMSI+RXhhbXBsZSAxOiByZWNlbnQgYXJ0aWNsZSBsaXN0IGZvciBjdXJyZW50 IHZpc2l0b3I8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+ Jmx0O3R4cDpzbWRfbGF0ZWx5IC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnMiI+ RXhhbXBsZSAyOiByZWNlbnQgYXJ0aWNsZXMgZm9yIGFsbCB2aXNpdG9yczwvaDM+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9sYXRlbHkg Ynk9JnF1b3Q7JnF1b3Q7IHNlY3Rpb249JnF1b3Q7YXJjaGl2ZSwgYWJvdXQmcXVvdDsgLyZn dDsKPC9jb2RlPjwvcHJlPgoKCTxwPk9ubHkgc2hvd3MgdGhlIGFydGljbGVzIHZpZXdlZCBm cm9tIHRoZSAmIzgyMTY7YXJjaGl2ZSYjODIxNzsgYW5kICYjODIxNjthYm91dCYjODIxNzsg c2VjdGlvbnMuPC9wPgoKCTxoMyBpZD0iZWczIj5FeGFtcGxlIDM6IG1vc3QgcG9wdWxhciBh cnRpY2xlcyBhY3Jvc3MgdGhlIHNpdGU8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2Rl IGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfbGF0ZWx5IGJ5PSZxdW90OyZxdW90OyBzb3J0 PSZxdW90O3BvcHVsYXJpdHkmcXVvdDsgIC8mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5XaXRo b3V0IHVzaW5nIHRoZSA8Y29kZT5ieTwvY29kZT4gYXR0cmlidXRlLCB0aGlzIHdvdWxkIGdp dmUgdGhlIG1vc3QgcG9wdWxhciBhcnRpY2xlcyBmb3IgdGhlIGN1cnJlbnQgdmlzaXRvciAm IzgyMTI7IHByb2JhYmx5IG5vdCB3aGF0IHlvdSB3YW50ITwvcD4KCgk8aDMgaWQ9ImVnNCI+ RXhhbXBsZSA0OiB0YWcgYXMgYSBjb250YWluZXI8L2gzPgoKPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDpzbWRfbGF0ZWx5IGJ5PSZxdW90OyZxdW90 OwogICAgIHdyYXB0YWc9JnF1b3Q7dWwmcXVvdDsgYnJlYWs9JnF1b3Q7bGkmcXVvdDsgbGlt aXQ9JnF1b3Q7NiZxdW90OyZndDsKICAgJmx0O3R4cDpwZXJtbGluayZndDsmbHQ7dHhwOnRp dGxlIC8mZ3Q7Jmx0Oy90eHA6cGVybWxpbmsmZ3Q7Jmx0O2JyIC8mZ3Q7CiAgICZsdDt0eHA6 cG9zdGVkIC8mZ3Q7IGJ5ICZsdDt0eHA6YXV0aG9yIC8mZ3Q7CiZsdDsvdHhwOnNtZF9sYXRl bHkmZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5TaG93cyB0aGUgNiBtb3N0IHJlY2VudCBhcnRp Y2xlcyBhY2Nlc3NlZCBieSBhbnkgc2l0ZSB2aXNpdG9yLiBUaGUgdW5vcmRlcmVkIGxpc3Qg b3V0cHV0IGNvbnRhaW5zIGEgcGVybWxpbmtlZCB0aXRsZSwgdGhlIGRhdGUgdGhlIGFydGlj bGUgd2FzIHBvc3RlZCBhbmQgdGhlIGFydGljbGUmIzgyMTc7cyBhdXRob3IuPC9wPgoKCTxo MyBpZD0iY2hhbmdlbG9nIj5DaGFuZ2Vsb2c8L2gzPgoKCTxwPjIzIEp1bCAwOSB8IDAuMSB8 IEluaXRpYWwgcmVsZWFzZTxiciAvPgoyNCBKdWwgMDkgfCAwLjExIHwgTWFkZSBiYWNrd2Fy ZHMgY29tcGF0aWJsZSB3aXRoIDxzcGFuIGNsYXNzPSJjYXBzIj5UWFA8L3NwYW4+IDQuMC44 PC9wPgoKPC9kaXY+CjwhLS0gKioqIEJFR0lOIFBMVUdJTiBDU1MgKioqIC0tPgo8c3R5bGUg dHlwZT0idGV4dC9jc3MiPgojc21kX2hlbHAgeyBsaW5lLWhlaWdodDoxLjUgO30KI3NtZF9o ZWxwIGNvZGUgeyBmb250LXdlaWdodDpib2xkOyBmb250OiAxMDUlLzEzMCUgIkNvdXJpZXIg TmV3IiwgY291cmllciwgbW9ub3NwYWNlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO30K I3NtZF9oZWxwIGNvZGUuYmxvY2sgeyBmb250LXdlaWdodDpub3JtYWw7IGJvcmRlcjoxcHgg ZG90dGVkICM5OTk7IGJhY2tncm91bmQtY29sb3I6ICNmMGU2OGM7IGRpc3BsYXk6YmxvY2s7 IG1hcmdpbjoxMHB4IDEwcHggMjBweDsgcGFkZGluZzoxMHB4OyB9CiNzbWRfaGVscCBoMSB7 IGNvbG9yOiAjMzY5OyBmb250OiAyMHB4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IG1hcmdpbjog MDsgdGV4dC1hbGlnbjogY2VudGVyOyB9CiNzbWRfaGVscCBoMiB7IGJvcmRlci1ib3R0b206 IDFweCBzb2xpZCBibGFjazsgcGFkZGluZzoxMHB4IDAgMDsgY29sb3I6ICMzNjk7IGZvbnQ6 IDE3cHggR2VvcmdpYSwgc2Fucy1zZXJpZjsgfQojc21kX2hlbHAgaDMgeyBjb2xvcjogIzI3 NTY4NTsgZm9udDogYm9sZCAxMnB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2lu ZzogMXB4OyBtYXJnaW46IDEwcHggMCAwO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHRl eHQtZGVjb3JhdGlvbjp1bmRlcmxpbmU7fQojc21kX2hlbHAgaDQgeyBmb250OiBib2xkIDEx cHggQXJpYWwsIHNhbnMtc2VyaWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBw eCAwIDAgO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IH0KI3NtZF9oZWxwIC5hdG5tIHsg Zm9udC13ZWlnaHQ6Ym9sZDsgY29sb3I6IzMzZDsgfQojc21kX2hlbHAgLm1hbmQgeyBiYWNr Z3JvdW5kOiNlZWU7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IH0KI3NtZF9oZWxwIHRhYmxl IHt3aWR0aDo5MCU7IHRleHQtYWxpZ246Y2VudGVyOyBwYWRkaW5nLWJvdHRvbToxZW07fQoj c21kX2hlbHAgdGQsICNzbWRfaGVscCB0aCB7Ym9yZGVyOjFweCBzb2xpZCAjOTk5OyBwYWRk aW5nOi41ZW0gMDt9CiNzbWRfaGVscCB1bCB7IGxpc3Qtc3R5bGUtdHlwZTpzcXVhcmU7IH0K I3NtZF9oZWxwIC5yZXF1aXJlZCB7Y29sb3I6cmVkO30KI3NtZF9oZWxwIGxpIHsgbWFyZ2lu OjVweCAyMHB4IDVweCAzMHB4OyB9CiNzbWRfaGVscCAuYnJlYWsgeyBtYXJnaW4tdG9wOjVw eDsgfQo8L3N0eWxlPgo8IS0tICoqKiBFTkQgUExVR0lOIENTUyAqKiogLS0+CiI7czozOiJt ZDUiO3M6MzI6IjRkZGRlNjg0MTZiOTdhMTk1YTQ5NzFlZTJhOWM1MWRiIjt9