# Name: smd_countdown v0.1 # Type: Client side plugin # Time until article posted/expiry or any other date is reached # Author: Stef Dawson # URL: http://www.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: # ..................................................................... YToxMTp7czo0OiJuYW1lIjtzOjEzOiJzbWRfY291bnRkb3duIjtzOjY6ImF1dGhvciI7czox MToiU3RlZiBEYXdzb24iO3M6MTA6ImF1dGhvcl91cmkiO3M6MjY6Imh0dHA6Ly93d3cuc3Rl ZmRhd3Nvbi5jb20vIjtzOjc6InZlcnNpb24iO3M6MzoiMC4xIjtzOjExOiJkZXNjcmlwdGlv biI7czo2MToiVGltZSB1bnRpbCBhcnRpY2xlIHBvc3RlZC9leHBpcnkgb3IgYW55IG90aGVy IGRhdGUgaXMgcmVhY2hlZCI7czo0OiJoZWxwIjtzOjEzNzU4OiI8ZGl2IGlkPSJzbWRfaGVs cCI+CgoJPGgxPnNtZF9jb3VudGRvd248L2gxPgoKCTxoMj5GZWF0dXJlczwvaDI+CgoJPHVs PgoJCTxsaT5Db3VudGRvd24gdG8gZWl0aGVyOgoJPHVsPgoJCTxsaT5hcnRpY2xlIHBvc3Rl ZCwgZXhwaXJlZCwgbW9kaWZpZWQgdGltZTwvbGk+CgkJPGxpPmFueSB0aW1lIGdpdmVuIGlu IGFueSBhcnRpY2xlIGZpZWxkPC9saT4KCQk8bGk+YW55IGFyYml0cmFyeSB0aW1lIGdpdmVu IGFzIGFuIEVuZ2xpc2ggZGF0ZTwvbGk+Cgk8L3VsPjwvbGk+CgkJPGxpPlN1cHBvcnRzIDxj b2RlPiZsdDt0eHA6ZWxzZSAvJmd0OzwvY29kZT4gc28geW91IGNhbiB0YWtlIGFjdGlvbiB3 aGVuIHRoZSB0aW1lIGlzIHJlYWNoZWQ8L2xpPgoJCTxsaT5EaXNwbGF5IG51bWJlciBvZiB5 ZWFycywgbW9udGhzLCB3ZWVrcywgZGF5cywgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMgYXMg ZWl0aGVyOgoJPHVsPgoJCTxsaT5hbiBhYnNvbHV0ZSBudW1iZXIgKDEwIGRheXMgdG8gZ28p PC9saT4KCQk8bGk+YSBkYXRlLWJhc2VkIG51bWJlciAoMSB3ZWVrIDMgZGF5cyB0byBnbyk8 L2xpPgoJPC91bD48L2xpPgoJPC91bD4KCgk8aDIgaWQ9ImF1dGhvciI+QXV0aG9yIC8gY3Jl ZGl0czwvaDI+CgoJPHA+PGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24uY29tL2NvbnRhY3Qi PlN0ZWYgRGF3c29uPC9hPi4gQSBtb3JlIGZsZXhpYmxlIHZlcnNpb24gb2YgZ2x4X2NvdW50 ZG93bi48L3A+CgoJPGgyIGlkPSJpbnN0YWxsIj5JbnN0YWxsYXRpb24gLyBVbmluc3RhbGxh dGlvbjwvaDI+CgoJPHA+RG93bmxvYWQgdGhlIHBsdWdpbiBmcm9tIGVpdGhlciA8YSBocmVm PSJodHRwOi8vdGV4dHBhdHRlcm4ub3JnL3BsdWdpbnMvMTExNS9zbWRfY291bnRkb3duIj50 ZXh0cGF0dGVybi5vcmc8L2E+LCBvciB0aGUgPGEgaHJlZj0iaHR0cDovL3N0ZWZkYXdzb24u Y29tL3N3Ij5zb2Z0d2FyZSBwYWdlPC9hPiwgcGFzdGUgdGhlIGNvZGUgaW50byB0aGUgVGV4 dHBhdHRlcm4gQWRtaW4gLSZndDsgUGx1Z2lucyBwYW5lLCBpbnN0YWxsIGFuZCBlbmFibGUg dGhlIHBsdWdpbi4gVmlzaXQgdGhlIDxhIGhyZWY9Imh0dHA6Ly9mb3J1bS50ZXh0cGF0dGVy bi5jb20vdmlld3RvcGljLnBocD9pZD0zMTQ5NCI+Zm9ydW0gdGhyZWFkPC9hPiBmb3IgbW9y ZSBpbmZvIG9yIHRvIHJlcG9ydCBvbiB0aGUgc3VjY2VzcyBvciBvdGhlcndpc2Ugb2YgdGhl IHBsdWdpbi48L3A+CgoJPHA+VG8gdW5pbnN0YWxsLCBkZWxldGUgZnJvbSB0aGUgQWRtaW4g LSZndDsgUGx1Z2lucyBwYWdlLjwvcD4KCgk8aDI+VXNhZ2U8L2gyPgoKCTxoMz48Y29kZT4m bHQ7dHhwOnNtZF9jb3VudGRvd24mZ3Q7PC9jb2RlPjwvaDM+CgoJPHA+UGxhY2UgdGhpcyB0 YWcgaW4gYW55IGFydGljbGUgb3IgcGFnZSB0byBjb3VudCBkb3duIHRvIGEgc3BlY2lmaWMg ZGF0ZS90aW1lLiBJZiB5b3Ugd2lzaCB0byB1c2UgaXQgdG8gY291bnQgZG93biB0byBhIGRh dGUgaW4gdGhlIGdpdmVuIGFydGljbGUgeW91IG11c3QgZW5zdXJlIGl0JiM4MjE3O3MgdXNl ZCBpbiBhbiBhcnRpY2xlIGNvbnRleHQgKHRoZSBwbHVnaW4gd2lsbCBjb21wbGFpbiBpZiB5 b3UgZG9uJiM4MjE3O3QpLiBVc2UgdGhlIDxjb2RlPnRvPC9jb2RlPiBhdHRyaWJ1dGUgdG8g Y29uZmlndXJlIHRoZSBkZXN0aW5hdGlvbiBkYXRlLiBFeGFtcGxlczo8L3A+CgoJPHA+SW4g YSBQYWdlOjwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZs dDt0eHA6c21kX2NvdW50ZG93biB0bz0mcXVvdDsyNSBEZWMgMjAwOSZxdW90OyZndDsKICBJ dCYjMzk7cyBDaHJpc3RtYXMgZGF5IQombHQ7L3R4cDpzbWRfY291bnRkb3duJmd0Owo8L2Nv ZGU+PC9wcmU+CgoJPHA+SW4gYW4gYXJ0aWNsZSAvIGFydGljbGUgRm9ybTo8L3A+Cgo8cHJl IGNsYXNzPSJibG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9jb3VudGRv d24mZ3Q7CiAgUG9zdGVkIGRhdGUgaGFzIGFycml2ZWQuCiZsdDt0eHA6ZWxzZSAvJmd0Owog IEV2ZW50IGhhc24mIzM5O3Qgc3RhcnRlZCB5ZXQuCiZsdDsvdHhwOnNtZF9jb3VudGRvd24m Z3Q7CjwvY29kZT48L3ByZT4KCgk8cD5Pcjo8L3A+Cgo8cHJlIGNsYXNzPSJibG9jayI+PGNv ZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF9jb3VudGRvd24gdG89JnF1b3Q7ZXhwaXJl cyZxdW90OyZndDsKICBUb28gbGF0ZSwgeW91IG1pc3NlZCBpdCA6LSgKJmx0O3R4cDplbHNl IC8mZ3Q7CiAgVGhlcmUmIzM5O3Mgc3RpbGwgdGltZSB0byBnZXQgdG8gdGhlIHNob3cuLi4K Jmx0Oy90eHA6c21kX2NvdW50ZG93biZndDsKPC9jb2RlPjwvcHJlPgoKCTxwPk9yOjwvcD4K CjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2siPiZsdDt0eHA6c21kX2Nv dW50ZG93biB0bz0mcXVvdDs/bXlfZGF0ZSZxdW90OyZndDsKICBUaGUgZGF0ZSBpbiBjdXN0 b20gZmllbGQgIzEgKGNhbGxlZCBteV9kYXRlKSBoYXMgYmVlbiByZWFjaGVkCiZsdDsvdHhw OnNtZF9jb3VudGRvd24mZ3Q7CjwvY29kZT48L3ByZT4KCgk8aDM+PGNvZGU+Jmx0O3R4cDpz bWRfdGltZV9pbmZvJmd0OzwvY29kZT48L2gzPgoKCTxwPklmIHlvdSB3aXNoIHRvIHNob3cg dmlzaXRvcnMgaG93IG11Y2ggdGltZSB0aGV5IGhhdmUgbGVmdCBiZWZvcmUgdGhlIGRlc3Rp bmF0aW9uIGFycml2ZXMsIHVzZSB0aGlzIHRhZyB0byBkaXNwbGF5IHZhcmlvdXMgdGltZSBl bGVtZW50cy4gVGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzIGNvbmZpZ3VyZSB3aGF0IHlvdSB3 aXNoIHRvIHNob3c6PC9wPgoKCTxoNCBjbGFzcz0iYXR0cyAiIGlkPSJhdHRyaWJ1dGVzIj5B dHRyaWJ1dGVzPC9oND4KCgk8dWw+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdG5tIj5kaXNwbGF5 PC9zcGFuPiA6IHRoZSBpdGVtKHMpIHlvdSB3aXNoIHRvIGRpc3BsYXkuIENhbiB1c2Ugb25l IG9yIG1vcmUgKGNvbW1hLXNlcGFyYXRlZCkgZnJvbSB0aGUgZm9sbG93aW5nOgoJPHVsPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR2YWwiPnllYXI8L3NwYW4+IChvciA8c3BhbiBjbGFzcz0i YXR2YWwiPnllYXJfdG90YWw8L3NwYW4+KSA6IHRoZSBudW1iZXIgb2YgeWVhcnMgdW50aWwg dGhlIGV2ZW50PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dmFsIj5tb250aDwvc3Bhbj4g OiB0aGUgbnVtYmVyIG9mIGNhbGVuZGFyIG1vbnRocyB1bnRpbCB0aGUgZXZlbnQsIG1heGlt dW0gMTI8c3VwIGNsYXNzPSJmb290bm90ZSI+PGEgaHJlZj0iI2ZuMTYzNDM0YTdlZWJjZTc3 NjcwIj4xPC9hPjwvc3VwPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHZhbCI+bW9udGhf dG90YWw8L3NwYW4+IDogdGhlIGFic29sdXRlIG51bWJlciBvZiBtb250aHMgdW50aWwgdGhl IGV2ZW50PHN1cCBjbGFzcz0iZm9vdG5vdGUiPjxhIGhyZWY9IiNmbjE2MzQzNGE3ZWViY2U3 NzY3MCI+MTwvYT48L3N1cD48L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXR2YWwiPndlZWs8 L3NwYW4+IDogdGhlIG51bWJlciBvZiBjYWxlbmRhciB3ZWVrcyB1bnRpbCB0aGUgZXZlbnQs IG1heGltdW0gNTI8c3VwIGNsYXNzPSJmb290bm90ZSI+PGEgaHJlZj0iI2ZuMjQ3NzI0YTdl ZWJjZTc3NmFlIj4yPC9hPjwvc3VwPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHZhbCI+ d2Vla190b3RhbDwvc3Bhbj4gOiB0aGUgYWJzb2x1dGUgbnVtYmVyIG9mIHdlZWtzIHVudGls IHRoZSBldmVudDxzdXAgY2xhc3M9ImZvb3Rub3RlIj48YSBocmVmPSIjZm4yNDc3MjRhN2Vl YmNlNzc2YWUiPjI8L2E+PC9zdXA+PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dmFsIj5k YXk8L3NwYW4+IDogdGhlIG51bWJlciBvZiBjYWxlbmRhciBkYXlzIHVudGlsIHRoZSBldmVu dCwgbWF4aW11bSA3PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dmFsIj5kYXlfdG90YWw8 L3NwYW4+IDogdGhlIGFic29sdXRlIG51bWJlciBvZiBkYXlzIHVudGlsIHRoZSBldmVudDwv bGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJhdHZhbCI+aG91cjwvc3Bhbj4gOiB0aGUgbnVtYmVy IG9mIGRheS1iYXNlZCBob3VycyB1bnRpbCB0aGUgZXZlbnQsIG1heGltdW0gMjQ8L2xpPgoJ CTxsaT48c3BhbiBjbGFzcz0iYXR2YWwiPmhvdXJfdG90YWw8L3NwYW4+IDogdGhlIGFic29s dXRlIG51bWJlciBvZiBob3VycyB1bnRpbCB0aGUgZXZlbnQ8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXR2YWwiPm1pbnV0ZTwvc3Bhbj4gOiB0aGUgbnVtYmVyIG9mIGhvdXItYmFzZWQg bWludXRlcyB1bnRpbCB0aGUgZXZlbnQsIG1heGltdW0gNjA8L2xpPgoJCTxsaT48c3BhbiBj bGFzcz0iYXR2YWwiPm1pbnV0ZV90b3RhbDwvc3Bhbj4gOiB0aGUgYWJzb2x1dGUgbnVtYmVy IG9mIG1pbnV0ZXMgdW50aWwgdGhlIGV2ZW50PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 dmFsIj5zZWNvbmQ8L3NwYW4+IDogdGhlIG51bWJlciBvZiBtaW51dGUtYmFzZWQgc2Vjb25k cyB1bnRpbCB0aGUgZXZlbnQsIG1heGltdW0gNjA8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXR2YWwiPnNlY29uZF90b3RhbDwvc3Bhbj4gOiB0aGUgYWJzb2x1dGUgbnVtYmVyIG9mIHNl Y29uZHMgdW50aWwgdGhlIGV2ZW50PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dmFsIj5k ZXN0aW5hdGlvbjwvc3Bhbj4gOiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVOSVg8L3NwYW4+ IHRpbWVzdGFtcCBvZiB0aGUgZGVzdGluYXRpb248L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0i YXR2YWwiPmRpZmZlcmVuY2U8L3NwYW4+IDogdGhlIDxzcGFuIGNsYXNzPSJjYXBzIj5VTklY PC9zcGFuPiB0aW1lc3RhbXAgZGlmZmVyZW5jZSBiZXR3ZWVuIG5vdyBhbmQgdGhlIGRlc3Rp bmF0aW9uIChtYXkgYmUgbmVnYXRpdmUgaWYgdGhlIGRlc3RpbmF0aW9uIGhhcyBwYXNzZWQp PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0dmFsIj5hYnNfZGlmZmVyZW5jZTwvc3Bhbj4g OiB0aGUgPHNwYW4gY2xhc3M9ImNhcHMiPlVOSVg8L3NwYW4+IHRpbWVzdGFtcCBkaWZmZXJl bmNlIGJldHdlZW4gbm93IGFuZCB0aGUgZGVzdGluYXRpb24gaXJyZXNwZWN0aXZlIG9mIHdo ZXRoZXIgdGhlIGRhdGUgaGFzIHBhc3NlZCBvciBub3Q8L2xpPgoJPC91bD48L2xpPgoJCTxs aT48c3BhbiBjbGFzcz0iYXRubSI+c2hvd196ZXJvczwvc3Bhbj4gOiBpZiB5b3Ugd2lzaCB0 byBoaWRlIGxlYWRpbmcgaXRlbXMgdGhhdCBoYXZlIHplcm8gbW9udGhzLCB3ZWVrcywgZGF5 cywgZXRjLCBzZXQgdGhpcyB0byAwLiBEZWZhdWx0OiAxPC9saT4KCQk8bGk+PHNwYW4gY2xh c3M9ImF0bm0iPnBhZDwvc3Bhbj4gOiBwYWQgdGhlIG51bWVyaWNhbCBvdXRwdXQgd2l0aCBz b21lIHRleHQuIFNwZWNpZnkgdXAgdG8gdHdvIGNvbW1hLXNlcGFyYXRlZCB2YWx1ZXMgaGVy ZS4gVGhlIGZpcnN0IGlzIHRoZSB0b3RhbCB3aWR0aCBpbiBjaGFyYWN0ZXJzIG9mIHRoZSBz dHJpbmcgeW91IHdpc2ggdG8gZGlzcGxheS4gVGhlIHNlY29uZCBpcyB0aGUgdGV4dCB3aXRo IHdoaWNoIHlvdSB3aXNoIHRvIHBhZCB0aGUgbnVtYmVycy4gRGVmYXVsdDogPGNvZGU+Miwg MDwvY29kZT4gKGkuZS4gcGFkIHRvIGEgd2lkdGggb2YgdHdvIGNoYXJhY3RlcnMsIHVzaW5n IHplcm9zIGlmIG5lY2Vzc2FyeSk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+bGFi ZWw8L3NwYW4+IDogdXAgdG8gdHdvIHZhbHVlcyB3aXRoIHdoaWNoIHlvdSBjYW4gbGFiZWwg dGhlIGdpdmVuIGRpc3BsYXkgaXRlbShzKS4gSWYgeW91IHNwZWNpZnkgdHdvIHZhbHVlcywg dGhlIGZpcnN0IGlzIHdoYXQgdG8gdXNlIGZvciBzaW5ndWxhciBudW1iZXJzIChlLmcuIDEg PHN0cm9uZz5ob3VyPC9zdHJvbmc+KSwgdGhlIHNlY29uZCBpcyB0aGUgcGx1cmFsIChlLmcu IDMgPHN0cm9uZz5ob3Vyczwvc3Ryb25nPikuIE5vdGUgdGhhdCB1c2luZyB0aGUgPGNvZGU+ c2luZ3VsYXIsIHBsdXJhbDwvY29kZT4gZm9ybSBpbiB0aGlzIGF0dHJpYnV0ZSBkb2VzIG5v dCB1c3VhbGx5IG1ha2Ugc2Vuc2Ugd2hlbiA8Y29kZT5kaXNwbGF5PC9jb2RlPiBpcyBhIGxp c3Qgb2YgaXRlbXMuIERlZmF1bHQ6IHVuc2V0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0 bm0iPmxhYmVsdGFnPC9zcGFuPiA6IChYKUhUTUwgdGFnLCB3aXRob3V0IGJyYWNrZXRzLCB0 byB3cmFwIHRoZSBsYWJlbCB3aXRoLiBEZWZhdWx0OiB1bnNldDwvbGk+CgkJPGxpPjxzcGFu IGNsYXNzPSJhdG5tIj5sYWJlbGFmdGVyPC9zcGFuPiA6IHNldCB0byAxIGlmIHlvdSB3aXNo IHRoZSBsYWJlbCB0byBiZSBhcHBlbmRlZCB0byB0aGUgZGlzcGxheWVkIGl0ZW0ocykuIERl ZmF1bHQ6IDAgKGkuZS4gcHJlcGVuZCk8L2xpPgoJCTxsaT48c3BhbiBjbGFzcz0iYXRubSI+ bGFiZWxzcGFjZXI8L3NwYW4+IDogdGV4dCB0byBwdXQgYmVmb3JlL2FmdGVyIHRoZSBsYWJl bC4gVmVyeSB1c2VmdWwgaWYgPGNvZGU+bGFiZWxhZnRlcj0mcXVvdDsxJnF1b3Q7PC9jb2Rl PiBhbmQgeW91IHdpc2ggdG8gcHV0IGEgc3BhY2UgYmV0d2VlbiB0aGUgbnVtYmVyIGFuZCB0 aGUgbGFiZWwuIERlZmF1bHQ6IHVuc2V0PC9saT4KCQk8bGk+PHNwYW4gY2xhc3M9ImF0bm0i PndyYXB0YWc8L3NwYW4+IDogKFgpSFRNTCB0YWcsIHdpdGhvdXQgYnJhY2tldHMsIHRvIHdy YXAgdGhlIGRpc3BsYXllZCBpdGVtcyB3aXRoLiBEZWZhdWx0OiB1bnNldDwvbGk+CgkJPGxp PjxzcGFuIGNsYXNzPSJhdG5tIj5jbGFzczwvc3Bhbj4gOiA8c3BhbiBjbGFzcz0iY2FwcyI+ Q1NTPC9zcGFuPiBjbGFzcyBuYW1lIHRvIGFwcGx5IHRvIHRoZSB3cmFwdGFnLiBEZWZhdWx0 OiA8Y29kZT5zbWRfdGltZV9pbmZvPC9jb2RlPjwvbGk+CgkJPGxpPjxzcGFuIGNsYXNzPSJh dG5tIj5icmVhazwvc3Bhbj4gOiAoWClIVE1MIHRhZywgKHdpdGhvdXQgYnJhY2tldHMpIG9y IG90aGVyIGRlbGltaXRlciB0byB3cmFwIC8gcHV0IGJldHdlZW4gZWFjaCBkaXNwbGF5IGl0 ZW0uIERlZmF1bHQ6IHVuc2V0PC9saT4KCTwvdWw+CgoJPHAgaWQ9ImZuMTYzNDM0YTdlZWJj ZTc3NjcwIiBjbGFzcz0iZm9vdG5vdGUiPjxzdXA+MTwvc3VwPiBNb250aHMgbWF5IGdldCBh IGxpdHRsZSBkaXN0b3J0ZWQgb3ZlciB0aW1lIGJlY2F1c2UgYSBtb250aCBpcyBhc3N1bWVk IHRvIGJlIDMwIGRheXM8L3A+CgoJPHAgaWQ9ImZuMjQ3NzI0YTdlZWJjZTc3NmFlIiBjbGFz cz0iZm9vdG5vdGUiPjxzdXA+Mjwvc3VwPiBXZWVrcyBtYXkgZ2V0IGEgbGl0dGxlIGRpc3Rv cnRlZCBvdmVyIHRpbWUgYmVjYXVzZSBzb21lIHllYXJzIGhhdmUgNTMgd2Vla3M8L3A+CgoJ PGgyPkV4YW1wbGVzPC9oMj4KCgk8aDMgaWQ9ImVnMSI+RXhhbXBsZSAxOiBDb3VudGRvd24g dG8gcG9zdGVkIGl0ZW08L2gzPgoKCTxwPlRoZSB0YWcgZGVmYXVsdHMgdG8gdGhlIHBvc3Rl ZCBkYXRlIG9mIHRoZSBjdXJyZW50IGFydGljbGUuPC9wPgoKPHByZSBjbGFzcz0iYmxvY2si Pjxjb2RlIGNsYXNzPSJibG9jayI+VGhlIHBhcnR5ICZsdDt0eHA6c21kX2NvdW50ZG93biZn dDsKICAgaGFzIGFycml2ZWQuIEdldCB5b3VyIHJhdmluZyB0cm91c2VycyBvbiEKJmx0O3R4 cDplbHNlIC8mZ3Q7CiAgIGlzICZsdDt0eHA6c21kX3RpbWVfaW5mbyBkaXNwbGF5PSZxdW90 O2RheV90b3RhbCZxdW90OyAvJmd0OwogICAgIGRheXMgYXdheTogYnV5IGEgc2hpcnQuCiZs dDsvdHhwOnNtZF9jb3VudGRvd24mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGUgYWJvdmUg d2lsbCBhbHdheXMgc2hvdyAmIzgyMTY7ZGF5cyBhd2F5JiM4MjE3OywgZXZlbiB3aGVuIHRo ZSBsYXN0IGRheSBpcyByZWFjaGVkLiBUbyBpbXByb3ZlIHRoaXMsIHlvdSBjYW4gZG86PC9w PgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+aXMgJmx0O3R4cDpz bWRfdGltZV9pbmZvIGRpc3BsYXk9JnF1b3Q7ZGF5X3RvdGFsJnF1b3Q7CiAgICAgbGFiZWw9 JnF1b3Q7ZGF5LCBkYXlzJnF1b3Q7IGxhYmVsYWZ0ZXI9JnF1b3Q7MSZxdW90OwogICAgIGxh YmVsc3BhY2VyPSZxdW90OyAmcXVvdDsgLyZndDsKICAgYXdheTogYnV5IGEgc2hpcnQuCjwv Y29kZT48L3ByZT4KCgk8aDMgaWQ9ImVnMiI+RXhhbXBsZSAyOiBEaXNwbGF5aW5nIG11bHRp cGxlIGl0ZW1zPC9oMz4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0iYmxvY2si PiZsdDt0eHA6c21kX2NvdW50ZG93biB0bz0mcXVvdDtleHBpcmVzJnF1b3Q7Jmd0OwombHQ7 dHhwOmVsc2UgLyZndDsKICAgVGltZSByZW1haW5pbmc6CiAgICZsdDt0eHA6c21kX3RpbWVf aW5mbyBkaXNwbGF5PSZxdW90O2hvdXIsIG1pbnV0ZSwgc2Vjb25kJnF1b3Q7CiAgICAgYnJl YWs9JnF1b3Q7OiZxdW90OyBsYWJlbD0mcXVvdDtzJnF1b3Q7IGxhYmVsYWZ0ZXI9JnF1b3Q7 MSZxdW90OyAvJmd0OwombHQ7L3R4cDpzbWRfY291bnRkb3duJmd0Owo8L2NvZGU+PC9wcmU+ CgoJPHA+QWRkIDxjb2RlPnNob3dfemVyb3M9JnF1b3Q7MCZxdW90OzwvY29kZT4gaWYgeW91 IHdpc2ggdG8gcmVtb3ZlIGFueSBsZWFkaW5nIHplcm8gaXRlbXMgYXMgdGhlIGRhdGUgZHJh d3MgbmVhci4gTm90ZSB0aGF0IGl0IG9ubHkgcmVtb3ZlcyB0aGVyIG1vc3Qgc2lnbmlmaWNh bnQgJiM4MjE2O3plcm8mIzgyMTc7IGl0ZW1zLiBGb3IgZXhhbXBsZSwgaWYgeW91IGFyZSBq dXN0IG92ZXIgMSB3ZWVrIGF3YXkgZnJvbSBhbiBldmVudDo8L3A+Cgo8cHJlIGNsYXNzPSJi bG9jayI+PGNvZGUgY2xhc3M9ImJsb2NrIj4mbHQ7dHhwOnNtZF90aW1lX2luZm8KICAgICBk aXNwbGF5PSZxdW90O3dlZWssIGRheSwgaG91ciwgbWludXRlLCBzZWNvbmQmcXVvdDsKICAg ICBicmVhaz0mcXVvdDs6JnF1b3Q7IHNob3dfemVyb3M9JnF1b3Q7MCZxdW90OyAvJmd0Owo8 L2NvZGU+PC9wcmU+CgoJPHA+TWlnaHQgZGlzcGxheTogPGNvZGU+MDE6MDA6MDU6MDA6MTk8 L2NvZGU+ICgxIHdlZWssIDAgZGF5cywgNSBob3VycywgMCBtaW51dGVzLCAxOSBzZWNvbmRz KS4gQnV0IGF0IHRoZSBzYW1lIHRpbWUgbmV4dCBkYXkgaXQgd291bGQgc2hvdzogPGNvZGU+ MDY6MDU6MDA6MTk8L2NvZGU+ICg2IGRheXMsIDUgaG91cnMsIDAgbWludXRlcywgMTkgc2Vj b25kcykuPC9wPgoKCTxoMyBpZD0iZWczIj5FeGFtcGxlIDM6IFVzaW5nIG90aGVyIGZpZWxk czwvaDM+CgoJPHA+QSBxdWVzdGlvbiBtYXJrIGJlZm9yZSB0aGUgbmFtZSBvZiB0aGUgZmll bGQgd2lsbCB1c2UgdGhlIGRhdGUgb3IgdGltZXN0YW1wIGdpdmVuIGluIHRoYXQgZmllbGQu PC9wPgoKPHByZSBjbGFzcz0iYmxvY2siPjxjb2RlIGNsYXNzPSJibG9jayI+Jmx0O3R4cDph cnRpY2xlX2N1c3RvbSB0aW1lPSZxdW90O2FueSZxdW90OyBzZWN0aW9uPSZxdW90O2V2ZW50 cyZxdW90OyZndDsKICAgJmx0O3R4cDpwZXJtbGluayZndDsmbHQ7dHhwOnRpdGxlIC8mZ3Q7 Jmx0Oy90eHA6cGVybWxpbmsmZ3Q7CiAgICZsdDt0eHA6c21kX2NvdW50ZG93biB0bz0mcXVv dDs/ZXZlbnRfZGF0ZSZxdW90OyZndDsKICAgICAgJmx0O3R4cDpleGNlcnB0IC8mZ3Q7CiAg ICZsdDt0eHA6ZWxzZSAvJmd0OwogICAgICBFdmVudCBraWNrcyBvZmYgaW46CiAgICAgICZs dDt0eHA6c21kX3RpbWVfaW5mbyBkaXNwbGF5PSZxdW90O2RheSZxdW90OyBwYWQ9JnF1b3Q7 JnF1b3Q7IHNob3dfemVyb3M9JnF1b3Q7MCZxdW90OwogICAgICAgIGxhYmVsPSZxdW90O2Rh eSwgZGF5cyZxdW90OyBsYWJlbGFmdGVyPSZxdW90OzEmcXVvdDsgbGFiZWxzcGFjZXI9JnF1 b3Q7ICZxdW90OyAvJmd0OwogICAgICAmbHQ7dHhwOnNtZF90aW1lX2luZm8gZGlzcGxheT0m cXVvdDtob3VyLCBtaW51dGUsIHNlY29uZCZxdW90OwogICAgICAgIGJyZWFrPSZxdW90Ozom cXVvdDsgbGFiZWw9JnF1b3Q7cyZxdW90OyBsYWJlbGFmdGVyPSZxdW90OzEmcXVvdDsgLyZn dDsKICAgJmx0Oy90eHA6c21kX2NvdW50ZG93biZndDsKJmx0Oy90eHA6YXJ0aWNsZV9jdXN0 b20mZ3Q7CjwvY29kZT48L3ByZT4KCgk8cD5UaGUgPGNvZGU+ZXZlbnRfZGF0ZTwvY29kZT4g Y3VzdG9tIGZpZWxkIGluIHRoaXMgY2FzZSBtdXN0IGNvbnRhaW4gZWl0aGVyOjwvcD4KCgk8 dWw+CgkJPGxpPmFuIEVuZ2xpc2ggZGF0ZSBzdWNoIGFzIDxjb2RlPjI1IEF1ZyAyMDA5IDEy OjAwOjAwPC9jb2RlPjwvbGk+CgkJPGxpPmEgPHNwYW4gY2xhc3M9ImNhcHMiPlVOSVg8L3Nw YW4+IHRpbWVzdGFtcCB2YWx1ZTwvbGk+Cgk8L3VsPgoKCTxoMyBpZD0iZWc0Ij5FeGFtcGxl IDQ6IENoYWluaW5nIHRpbWVyczwvaDM+CgoJPHA+U3RhcnRpbmcgdG8gZ28gYSBsaXR0bGUg Y3Jhenkgbm93JiM4MjMwOzwvcD4KCjxwcmUgY2xhc3M9ImJsb2NrIj48Y29kZSBjbGFzcz0i YmxvY2siPiZsdDt0eHA6YXJ0aWNsZV9jdXN0b20gdGltZT0mcXVvdDthbnkmcXVvdDsgc2Vj dGlvbj0mcXVvdDt6b28mcXVvdDsKICAgICB3cmFwdGFnPSZxdW90O3VsJnF1b3Q7IGJyZWFr PSZxdW90O3VsJnF1b3Q7Jmd0OwogICAmbHQ7dHhwOnRpdGxlIC8mZ3Q7CiAgICZsdDt0eHA6 c21kX2NvdW50ZG93biZndDsKICAgICAgJmx0OyEtLSBXaGVuIHRoZSBhcnRpY2xlIGhhcyBi ZWVuIHBvc3RlZCwgdGhpcyBiaXQgcnVucyAtLSZndDsKICAgICAgJmx0O3R4cDpzbWRfY291 bnRkb3duIHRvPSZxdW90O2V4cGlyZXMmcXVvdDsmZ3Q7CiAgICAgICAgICZsdDshLS0gV2hl biB0aGUgYXJ0aWNsZSYjMzk7cyBleHBpcnkgaXMgcmVhY2hlZC4uLiAtLSZndDsKICAgICAg ICAgVGltZSYjMzk7cyB1cCEKICAgICAgICAgWW91IG1pc3NlZCB0aGlzIGFuaW1hbCBieQog ICAgICAgICAmbHQ7dHhwOnNtZF90aW1lX2luZm8gZGlzcGxheT0mcXVvdDtzZWNvbmRfdG90 YWwmcXVvdDsKICAgICAgICAgICBsYWJlbGFmdGVyPSZxdW90OzEmcXVvdDsgbGFiZWw9JnF1 b3Q7c2Vjb25kLCBzZWNvbmRzJnF1b3Q7CiAgICAgICAgICAgbGFiZWxzcGFjZXI9JnF1b3Q7 ICZxdW90OyAvJmd0OwogICAgICAmbHQ7dHhwOmVsc2UgLyZndDsKICAgICAgICAgJmx0OyEt LSBXaGlsZSB0aGUgYXJ0aWNsZSBpcyBsaXZlIC0tJmd0OwogICAgICAgICAmbHQ7dHhwOmV4 Y2VycHQgLyZndDsKICAgICAgICAgWW91IGhhdmUKICAgICAgICAgJmx0O3R4cDpzbWRfdGlt ZV9pbmZvIGRpc3BsYXk9JnF1b3Q7aG91ciZxdW90OwogICAgICAgICAgIGxhYmVsYWZ0ZXI9 JnF1b3Q7MSZxdW90OyBsYWJlbHNwYWNlcj0mcXVvdDsgJnF1b3Q7CiAgICAgICAgICAgbGFi ZWw9JnF1b3Q7aG91ciwgaG91cnMmcXVvdDsgc2hvd196ZXJvcz0mcXVvdDswJnF1b3Q7IC8m Z3Q7CiAgICAgICAgICZsdDt0eHA6c21kX3RpbWVfaW5mbyBkaXNwbGF5PSZxdW90O21pbnV0 ZSZxdW90OwogICAgICAgICAgIGxhYmVsYWZ0ZXI9JnF1b3Q7MSZxdW90OyBsYWJlbHNwYWNl cj0mcXVvdDsgJnF1b3Q7CiAgICAgICAgICAgbGFiZWw9JnF1b3Q7bWludXRlLCBtaW51dGVz JnF1b3Q7IHNob3dfemVyb3M9JnF1b3Q7MCZxdW90OyAvJmd0OwogICAgICAgICAmbHQ7dHhw OnNtZF90aW1lX2luZm8gZGlzcGxheT0mcXVvdDtzZWNvbmQmcXVvdDsKICAgICAgICAgICBs YWJlbGFmdGVyPSZxdW90OzEmcXVvdDsgbGFiZWxzcGFjZXI9JnF1b3Q7ICZxdW90OwogICAg ICAgICAgIGxhYmVsPSZxdW90O3NlY29uZCwgc2Vjb25kcyZxdW90OyBzaG93X3plcm9zPSZx dW90OzAmcXVvdDsgLyZndDsKICAgICAgICAgbGVmdCB0byAmbHQ7dHhwOnBlcm1saW5rJmd0 O2Vuam95IHRoaXMgYW5pbWFsJmx0Oy90eHA6cGVybWxpbmsmZ3Q7LgogICAgICAmbHQ7L3R4 cDpzbWRfY291bnRkb3duJmd0OwogICAmbHQ7dHhwOmVsc2UgLyZndDsKICAgICAgJmx0OyEt LSBUaGlzIHBvcnRpb24gaXMgZGlzcGxheWVkIGJlZm9yZSB0aGUgYXJ0aWNsZSYjMzk7cwog ICAgICAgICAgcG9zdGVkIHRpbWUgaXMgbWV0IC0tJmd0OwogICAgICBhcnJpdmVzIGluICZs dDt0eHA6c21kX3RpbWVfaW5mbwogICAgICAgIGRpc3BsYXk9JnF1b3Q7c2Vjb25kX3RvdGFs JnF1b3Q7IC8mZ3Q7IHNlY29uZHMuCiAgICZsdDsvdHhwOnNtZF9jb3VudGRvd24mZ3Q7CiZs dDsvdHhwOmFydGljbGVfY3VzdG9tJmd0Owo8L2NvZGU+PC9wcmU+CgoJPHA+VmVyeSB1c2Vm dWwgZm9yIGNvbXBldGl0aW9uIGFydGljbGVzIG9yIGV2ZW50cy4gTm90ZSB0aGF0IHRoaXMg b25seSB3b3JrcyBpZiB0aGUgPGVtPnB1Ymxpc2ggZXhwaXJlZCBhcnRpY2xlczwvZW0+IHNl dHRpbmcgaXMgc3dpdGNoZWQgb24gaW4gQWR2YW5jZWQgUHJlZnMuPC9wPgoKCTxoMyBpZD0i ZWc1Ij5FeGFtcGxlIDU6IFRoZXJlIGlzIG5vIGV4YW1wbGUgNSYjODIzMDs8L2gzPgoKCTxw PiYjODIzMDsgYnV0IGFzIGZvb2QgZm9yIGZ1cnRoZXIgc3R1ZHkgeW91IGNvdWxkIHVzZSB0 aGUgb3V0cHV0IGZyb20gc21kX2NvdW50ZG93biB0byBzZWVkIHRoZSBzdGFydCBvZiBhIGph dmFzY3JpcHQgb3IgZmxhc2gtYmFzZWQgdGltZXIgd2hpY2ggdXBkYXRlZCBhIHJlYWwtdGlt ZSBjbG9jayBjb3VudGluZyBkb3duIHRvIHlvdXIgZXZlbnQuPC9wPgoKPC9kaXY+CjwhLS0g KioqIEJFR0lOIFBMVUdJTiBDU1MgKioqIC0tPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoj c21kX2hlbHAgeyBsaW5lLWhlaWdodDoxLjUgO30KI3NtZF9oZWxwIGNvZGUgeyBmb250LXdl aWdodDpib2xkOyBmb250OiAxMDUlLzEzMCUgIkNvdXJpZXIgTmV3IiwgY291cmllciwgbW9u b3NwYWNlOyBiYWNrZ3JvdW5kLWNvbG9yOiAjRkZGRkNDO30KI3NtZF9oZWxwIGNvZGUuYmxv Y2sgeyBmb250LXdlaWdodDpub3JtYWw7IGJvcmRlcjoxcHggZG90dGVkICM5OTk7IGJhY2tn cm91bmQtY29sb3I6ICNmMGU2OGM7IGRpc3BsYXk6YmxvY2s7IG1hcmdpbjoxMHB4IDEwcHgg MjBweDsgcGFkZGluZzoxMHB4OyB9CiNzbWRfaGVscCBoMSB7IGNvbG9yOiAjMzY5OyBmb250 OiAyMHB4IEdlb3JnaWEsIHNhbnMtc2VyaWY7IG1hcmdpbjogMDsgdGV4dC1hbGlnbjogY2Vu dGVyOyB9CiNzbWRfaGVscCBoMiB7IGJvcmRlci1ib3R0b206IDFweCBzb2xpZCBibGFjazsg cGFkZGluZzoxMHB4IDAgMDsgY29sb3I6ICMzNjk7IGZvbnQ6IDE3cHggR2VvcmdpYSwgc2Fu cy1zZXJpZjsgfQojc21kX2hlbHAgaDMgeyBjb2xvcjogIzI3NTY4NTsgZm9udDogYm9sZCAx MnB4IEFyaWFsLCBzYW5zLXNlcmlmOyBsZXR0ZXItc3BhY2luZzogMXB4OyBtYXJnaW46IDEw cHggMCAwO3RleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7IHRleHQtZGVjb3JhdGlvbjp1bmRl cmxpbmU7fQojc21kX2hlbHAgaDQgeyBmb250OiBib2xkIDExcHggQXJpYWwsIHNhbnMtc2Vy aWY7IGxldHRlci1zcGFjaW5nOiAxcHg7IG1hcmdpbjogMTBweCAwIDAgO3RleHQtdHJhbnNm b3JtOiB1cHBlcmNhc2U7IH0KI3NtZF9oZWxwIC5hdG5tIHsgZm9udC13ZWlnaHQ6Ym9sZDsg Y29sb3I6IzMzZDsgfQojc21kX2hlbHAgLmF0dmFsIHsgZm9udC1zdHlsZTppdGFsaWM7IGNv bG9yOiMzM2Q7IH0KI3NtZF9oZWxwIC5tYW5kIHsgYmFja2dyb3VuZDojZWVlOyBib3JkZXI6 MXB4IGRvdHRlZCAjOTk5OyB9CiNzbWRfaGVscCB0YWJsZSB7d2lkdGg6OTAlOyB0ZXh0LWFs aWduOmNlbnRlcjsgcGFkZGluZy1ib3R0b206MWVtO30KI3NtZF9oZWxwIHRkLCAjc21kX2hl bHAgdGgge2JvcmRlcjoxcHggc29saWQgIzk5OTsgcGFkZGluZzouNWVtIDA7fQojc21kX2hl bHAgdWwgeyBsaXN0LXN0eWxlLXR5cGU6c3F1YXJlOyB9CiNzbWRfaGVscCAucmVxdWlyZWQg e2NvbG9yOnJlZDt9CiNzbWRfaGVscCBsaSB7IG1hcmdpbjo1cHggMjBweCA1cHggMzBweDsg fQojc21kX2hlbHAgLmJyZWFrIHsgbWFyZ2luLXRvcDo1cHg7IH0KPC9zdHlsZT4KPCEtLSAq KiogRU5EIFBMVUdJTiBDU1MgKioqIC0tPgoiO3M6NDoiY29kZSI7czoyODA3OiJmdW5jdGlv biBzbWRfY291bnRkb3duKCRhdHRzLCAkdGhpbmc9TlVMTCkgewoJZ2xvYmFsICR0aGlzYXJ0 aWNsZSwgJHNtZF90aW1lcjsKCglleHRyYWN0KGxBdHRzKGFycmF5KAoJCSd0bycgPT4gJ3Bv c3RlZCcsCgkJJ2RlYnVnJyA9PiAwLAoJKSwkYXR0cykpOwoKCSRkZXN0aW1lID0gJyc7CgoJ aWYgKCR0byA9PSAncG9zdGVkJyB8fCAkdG8gPT0gJ2V4cGlyZXMnIHx8ICR0byA9PSAnbW9k aWZpZWQnKSB7CgkJYXNzZXJ0X2FydGljbGUoKTsKCQkkZGVzdGltZSA9ICR0aGlzYXJ0aWNs ZVskdG9dOwoJfSBlbHNlIGlmIChzdHJwb3MoJHRvLCAiPyIpID09PSAwKSB7CgkJYXNzZXJ0 X2FydGljbGUoKTsKCQkkZmxkbmFtZSA9IHN1YnN0cihzdHJ0b2xvd2VyKCR0byksIDEpOwoJ CWlmIChpc3NldCgkdGhpc2FydGljbGVbJGZsZG5hbWVdKSkgewoJCQkkZGVzdGltZSA9IChp c19udW1lcmljKCR0aGlzYXJ0aWNsZVskZmxkbmFtZV0pKSA/ICR0aGlzYXJ0aWNsZVskZmxk bmFtZV0gOiBzdHJ0b3RpbWUoJHRoaXNhcnRpY2xlWyRmbGRuYW1lXSk7CgkJfQoJfSBlbHNl IGlmICgkdG8gIT0gJycpIHsKCQkkZGVzdGltZSA9IHN0cnRvdGltZSgkdG8pOwoJfQoKCWlm ICgkZGVidWcpIHsKCQllY2hvICcrKyBERVNUSU5BVElPTiArKyc7CgkJZG1wKCRkZXN0aW1l KTsKCQlkbXAoZGF0ZSgnZCBNIFkgSDppOnMnLCRkZXN0aW1lKSk7Cgl9CgoJaWYgKCRkZXN0 aW1lKSB7CgkJJG5vdyA9IHRpbWUoKTsKCgkJLy8gU3BsaXQgaW50byB5ZWFycy9tb250aHMv d2Vla3MvZGF5cy9ocnMvbWludXRlcy9zZWNvbmRzCgkJJGRpZmYgPSAkZGVzdGltZSAtICRu b3c7CgkJJGFic2RpZmYgPSAoJGRpZmY+MCkgPyAkZGlmZiA6ICRub3cgLSAkZGVzdGltZTsK CQkkc21kX3RpbWVyWydkaWZmZXJlbmNlJ10gPSAkZGlmZjsKCQkkc21kX3RpbWVyWydhYnNf ZGlmZmVyZW5jZSddID0gJGFic2RpZmY7CgkJJHNtZF90aW1lclsnZGVzdGluYXRpb24nXSA9 ICRkZXN0aW1lOwoKCQkkbG9va3VwID0gYXJyYXkoCgkJCSd5ZWFyJyA9PiBhcnJheSg2MCAq IDYwICogMjQgKiAzNjUpLAoJCQknbW9udGgnID0+IGFycmF5KDYwICogNjAgKiAyNCAqIDMw LCAxMiksIC8vIG1vbnRoKGlzaCkKCQkJJ3dlZWsnID0+IGFycmF5KDYwICogNjAgKiAyNCAq IDcsIDUyKSwKCQkJJ2RheScgPT4gYXJyYXkoNjAgKiA2MCAqIDI0LCA3KSwKCQkJJ2hvdXIn ID0+IGFycmF5KDYwICogNjAsIDI0KSwKCQkJJ21pbnV0ZScgPT4gYXJyYXkoNjAsIDYwKSwK CQkJJ3NlY29uZCcgPT4gYXJyYXkoMSwgNjApLAoJCSk7CgoJCWZvcmVhY2ggKCRsb29rdXAg YXMgJGl0ZW0gPT4gJGJsb2MpIHsKCQkJJHF0eSA9IGZsb29yKCRhYnNkaWZmIC8gJGJsb2Nb MF0pOwoJCQkkc21kX3RpbWVyWyRpdGVtXSA9IChpc3NldCgkYmxvY1sxXSkpID8gJHF0eSAl ICRibG9jWzFdIDogJHF0eTsKCQkJJHNtZF90aW1lclskaXRlbS4nX3RvdGFsJ10gPSAkcXR5 OwoJCX0KCgkJaWYgKCRkZWJ1ZykgewoJCQllY2hvICcrKyBUSU1FUiArKyc7CgkJCWRtcCgk c21kX3RpbWVyKTsKCQl9CgoJCSRyZXN1bHQgPSAoJGRpZmY+MCkgPyBmYWxzZSA6IHRydWU7 IC8vIFRydWUgaWYgZGVzdGluYXRpb24gcmVhY2hlZCwgZmFsc2Ugb3RoZXJ3aXNlCgoJCXJl dHVybiBwYXJzZShFdmFsRWxzZSgkdGhpbmcsICRyZXN1bHQpKTsKCX0gZWxzZSB7CgkJcmV0 dXJuICcnOwoJfQp9CgpmdW5jdGlvbiBzbWRfdGltZV9pbmZvKCRhdHRzKSB7CglnbG9iYWwg JHNtZF90aW1lcjsKCglleHRyYWN0KGxBdHRzKGFycmF5KAoJCSdkaXNwbGF5JyA9PiAnJywK CQknc2hvd196ZXJvcycgPT4gJzEnLAoJCSdwYWQnID0+ICcyLDAnLAoJCSdsYWJlbCcgPT4g JycsCgkJJ2xhYmVsdGFnJyA9PiAnJywKCQknbGFiZWxhZnRlcicgPT4gMCwKCQknbGFiZWxz cGFjZXInID0+ICcnLAoJCSd3cmFwdGFnJyA9PiAnJywKCQknY2xhc3MnID0+IF9fRlVOQ1RJ T05fXywKCQknYnJlYWsnID0+ICcnLAoJCSdkZWJ1ZycgPT4gMCwKCSksJGF0dHMpKTsKCgkk ZGlzcGxheSA9IGRvX2xpc3QoJGRpc3BsYXkpOwoJJGxhYmVsID0gZG9fbGlzdCgkbGFiZWwp OwoJJHBhZCA9IGRvX2xpc3QoJHBhZCk7CgkkcGFkWzBdID0gKGVtcHR5KCRwYWRbMF0pKSA/ ICcxJyA6ICRwYWRbMF07CgkkcGFkWzFdID0gKGNvdW50KCRwYWQpPT0xKSA/ICcwJyA6ICRw YWRbMV07CgoJJG91dCA9IGFycmF5KCk7CgkkdXNlX3BsdXJhbCA9IGZhbHNlOwoKCWZvcmVh Y2ggKCRkaXNwbGF5IGFzICRpdGVtKSB7CgkJaWYgKGlzc2V0KCRzbWRfdGltZXJbJGl0ZW1d KSkgewoJCQlpZiAoJHNtZF90aW1lclskaXRlbV0gPiAwIHx8ICgkc21kX3RpbWVyWyRpdGVt XSA9PSAwICYmICghZW1wdHkoJG91dCkgfHwgJHNob3dfemVyb3MpKSkgewoJCQkJJG91dFtd ID0gc3RyX3BhZCgkc21kX3RpbWVyWyRpdGVtXSwgJHBhZFswXSwgJHBhZFsxXSwgU1RSX1BB RF9MRUZUKTsKCQkJfQoJCQkkdXNlX3BsdXJhbCA9ICgkc21kX3RpbWVyWyRpdGVtXSAhPSAx KSA/IHRydWUgOiBmYWxzZTsKCQl9Cgl9CgoJJHRoZUxhYmVsID0gKCR1c2VfcGx1cmFsICYm IGlzc2V0KCRsYWJlbFsxXSkpID8gJGxhYmVsWzFdIDogJGxhYmVsWzBdOwoKCXJldHVybiAo JG91dCkKCQkJPyAoKCRsYWJlbGFmdGVyPT0wKSA/IGRvTGFiZWwoJHRoZUxhYmVsLiRsYWJl bHNwYWNlciwgJGxhYmVsdGFnKSA6ICcnKS4KCQkJCWRvV3JhcCgkb3V0LCAkd3JhcHRhZywg JGJyZWFrLCAkY2xhc3MpLgoJCQkJKCgkbGFiZWxhZnRlcj09MSkgPyBkb0xhYmVsKCRsYWJl bHNwYWNlci4kdGhlTGFiZWwsICRsYWJlbHRhZykgOiAnJykKCQkJOiAnJzsKfSI7czo0OiJ0 eXBlIjtzOjE6IjAiO3M6NToiZmxhZ3MiO3M6MToiMCI7czo1OiJvcmRlciI7czoxOiI1Ijtz OjM6Im1kNSI7czozMjoiN2E5MjliYjJlY2MwMTUzOGNlYjViNDI1NjMwN2EyMDEiO30=