PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDMuMi8vRU4iPgo8SFRNTD4KPGhlYWQ+Cgk8TUVUQSBIVFRQLUVRVUlWPSJDT05URU5ULVRZUEUiIENPTlRFTlQ9InRleHQvaHRtbDsgY2hhcnNldD1pc28tODg1OS0xIj4KCTxUSVRMRT48L1RJVExFPgoJPE1FVEEgTkFNRT0iR0VORVJBVE9SIiBDT05URU5UPSJTdGFyT2ZmaWNlIDYuMCAgKFdpbjMyKSI+Cgk8TUVUQSBOQU1FPSJBVVRIT1IiIENPTlRFTlQ9IlNhc2NoYSBCYWxsYWNoIj4KCTxNRVRBIE5BTUU9IkNSRUFURUQiIENPTlRFTlQ9IjIwMDEwNjAxOzkzMTExODUiPgoJPE1FVEEgTkFNRT0iQ0hBTkdFREJZIiBDT05URU5UPSJEYW5pZWwgVm9nZWxoZWltIj4KCTxNRVRBIE5BTUU9IkNIQU5HRUQiIENPTlRFTlQ9IjIwMDEwNzI1OzE4MDMwMTc3Ij4KPC9oZWFkPgo8Ym9keT4KPEgxIEFMSUdOPUNFTlRFUj5Mb29zZSBsaXN0IG9mIHBvc3NpYmxlIG9wdGltaXphdGlvbnMgaW4gdGhlIHhtbAptb2R1bGU8L0gxPgo8UCBBTElHTj1MRUZUPlRoaXMgaXMgYSBsb29zZSBsaXN0IG9mIG9wdGltaXphdGlvbnMgaXRlbXMsIHdoaWNoIHRoZQpndXlzIHdoaWNoIHdvcmsgb24gdGhlIHhtbCBwcm9qZWN0IGZpbmQgb3V0LiBUaGlzIGxpc3QgZXhwYW5kcyBpZiBhbnkKb25lIGZvdW5kIG1vcmUgaXRlbXMuIFRoZSBzdGF0dXMgdGVsbHMgd2hhdCBoYXBwZW5zIHdpdGggdGhpcyBpdGVtcy4KSWYgYW4gaXRlbSBpcyBpbXBsZW1lbnRlZCwgdGhlbiB0aGUgc3RhdHVzIGNoYW5nZSBhbmQgdGhlIGJ1aWxkCnZlcnNpb24gaXMgYWRkLjwvUD4KPFAgQUxJR049TEVGVD5IZXJlIGFyZSBhbHNvIGFsbCBpdGVtcyBsaXN0ZWQgd2hpY2ggaGF2ZSB0byBkbyBpbgptb2R1bGVzIGxpa2Ugc3csIHNjLCBncmFwaGljcyBhbmQgc28gdG8gb3B0aW1pemUgZS5nLiB0aGUgc2F2ZSBhbmQKbG9hZCBwZXJmb3JtYW5jZSBvZiB0aGUgbmV3IGZpbGVmb3JtYXQuPC9QPgo8UCBBTElHTj1MRUZUPklmIGFueWJvZHkgZmluZCBhbHNvIHNvbWUgaXRlbXMsIHdoZXJlIHdlIG1heSBjaGFuZ2UKdGhlIGNvZGUgdGhlbiBoZSBjYW4gd3JpdGUgYSBtYWlsIHRvIG1lCig8QSBIUkVGPSJtYWlsdG86c2FzY2hhLmJhbGxhY2hAZ2VybWFueS5zdW4uY29tIj5TYXNjaGEuQmFsbGFjaEBnZXJtYW55LnN1bi5jb208L0E+KW9yCmFkZCBhIHRhc2sgaW50byB0aGUgPEEgSFJFRj0iaHR0cDovL3htbC5vcGVub2ZmaWNlLm9yZy9wcm9qZWN0X2lzc3Vlcy5odG1sIj5Jc3N1ZVppbGxhPC9BPi48L1A+CjxQIEFMSUdOPUxFRlQ+PEEgSFJFRj0iY3VycmVudF9vcHRpbWl6YXRpb25fc3RhdHVzLmh0bWwiPkhlcmU8L0E+IGNhbgphbnlib2R5IHNlZSB0aGUgY3VycmVudCBzdGF0ZSBvZiBvdXIgb3B0aW1pemF0aW9ucyBhbmQgdGhlIGN1cnJlbnQKcHJvYmxlbXMuPC9QPgo8UCBBTElHTj1MRUZUPjxBIEhSRUY9ImN1cnJlbnRfb3B0aW1pemF0aW9uX3N0YXR1cy5zeGMiPkhlcmU8L0E+IGlzCnRoZSBjb21wbGV0ZSBvdmVydmlldyBhcyBPcGVuT2ZmaWNlLm9yZyA2LjAgZmlsZS48L1A+CjxUQUJMRSBXSURUSD0xMDAlIEJPUkRFUj0xIEJPUkRFUkNPTE9SPSIjMDAwMDAwIiBDRUxMUEFERElORz00IENFTExTUEFDSU5HPTAgRlJBTUU9Vk9JRCBSVUxFUz1HUk9VUFM+Cgk8Q09MR1JPVVA+CgkJPENPTCBXSURUSD0xMyo+CgkJPENPTCBXSURUSD0yMCo+Cgk8L0NPTEdST1VQPgoJPENPTEdST1VQPgoJCTxDT0wgV0lEVEg9MjgqPgoJPC9DT0xHUk9VUD4KCTxDT0xHUk9VUD4KCQk8Q09MIFdJRFRIPTM2Kj4KCTwvQ09MR1JPVVA+Cgk8Q09MR1JPVVA+CgkJPENPTCBXSURUSD0xNTkqPgoJPC9DT0xHUk9VUD4KCTxUSEVBRD4KCQk8VFIgVkFMSUdOPVRPUD4KCQkJPFRIIENPTFNQQU49MiBXSURUSD0xMyU+CgkJCQk8UD5TdGF0dXM8L1A+CgkJCTwvVEg+CgkJCTxUSCBXSURUSD0xMSU+CgkJCQk8UD5Nb2R1bGU8L1A+CgkJCTwvVEg+CgkJCTxUSCBXSURUSD0xNCU+CgkJCQk8UD5UeXBlPC9QPgoJCQk8L1RIPgoJCQk8VEggV0lEVEg9NjIlPgoJCQkJPFA+RGVzY3JpcHRpb248L1A+CgkJCTwvVEg+CgkJPC9UUj4KCTwvVEhFQUQ+Cgk8VEJPRFk+CgkJPFRSIEJHQ09MT1I9IiNlNmU2ZTYiIFZBTElHTj1UT1A+CgkJCTxURCBXSURUSD01JT4KCQkJCTxQPkQ8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD04JT4KCQkJCTxQPiZuYnNwOzwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTExJT4KCQkJCTxQPkFMTDwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTE0JT4KCQkJCTxQPlJ1bnRpbWU8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD02MiU+CgkJCQk8UD5BdCB0aGUgbW9tZW50IGlzIHRoZSA8Q09ERT5nZXRQcm9wZXJ0eVN0YXRlczwvQ09ERT4gbWV0aG9kCgkJCQlpbXBsZW1lbnRlZCBhcyBhIGxvb3Agd2hpY2ggY2FsbHMgdGhlIDxDT0RFPmdldFByb3BlcnR5U3RhdGU8L0NPREU+CgkJCQltZXRob2QgZm9yIGV2ZXJ5IFByb3BlcnR5LiBTbyB0aGUgUHJvcGVydHkgaGFzIHRvIGJlIHNlYXJjaGVkCgkJCQlhZ2FpbiBhbmQgYWdhaW4uIFRoZXJlZm9yZSB0aGlzIG1ldGhvZCBuZWVkcyBhIGxvdCBvZiBzdHJpbmcKCQkJCWNvbXBhcmVzLiBXZSBoYXZlIHRvIHVzZSBhIGJldHRlciBpbXBsZW1lbnRhdGlvbiB3aGljaCB1c2UsIHRoYXQKCQkJCXRoZSA8Q09ERT5nZXRQcm9wZXJ0eVN0YXRlczwvQ09ERT4gbWV0aG9kIGdldHMgdGhlIFByb3BlcnR5TmFtZXMKCQkJCWluIGFscGhhYmV0aWNhbCBvcmRlci48L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCQk8VFIgVkFMSUdOPVRPUD4KCQkJPFREIFdJRFRIPTUlPgoJCQkJPFA+UDwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTglPgoJCQkJPFA+Jm5ic3A7PC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTElPgoJCQkJPFA+QUxMPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTQlPgoJCQkJPFA+UnVudGltZTwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTYyJT4KCQkJCTxQPldlIGhhdmUgdG8gaW1wbGVtZW50IGEgWE11bHRpUHJvcGVydHlTZXQgaW50ZXJmYWNlIGFuZCB1c2UgaXQKCQkJCWluc3RlYWQgb2YgdGhlIFhQcm9wZXJ0eVNldCBpbnRlcmZhY2UgdG8gZ2V0IGFuZCBzZXQgdGhlIHN0eWxlCgkJCQlwcm9wZXJ0aWVzLiAoRG9uZSBpbiBzb21lIG1vZHVsZXMpPC9QPgoJCQk8L1REPgoJCTwvVFI+CgkJPFRSIEJHQ09MT1I9IiNlNmU2ZTYiIFZBTElHTj1UT1A+CgkJCTxURCBXSURUSD01JT4KCQkJCTxQPlA8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD04JT4KCQkJCTxQPiZuYnNwOzwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTExJT4KCQkJCTxQPkFMTDwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTE0JT4KCQkJCTxQPkNvZGUvUnVudGltZTwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTYyJT4KCQkJCTxQPkRvbpJ0IGV4cG9ydCBYTUwgdG9rZW5zIGFzIGNoYXJhY3RlciBwb2ludGVyIGluIGFuIG93biBvYmplY3QKCQkJCWZpbGUuIFRoaXMgZXhwYW5kIHRoZSBzaXplIG9mIGVhY2ggRExMIHdoaWNoIHVzZSBhbnkgb2YgdGhlc2UgWE1MCgkJCQl0b2tlbnMuIFRoaXMgY2FuIGNoYW5nZSB0byBhIDxDT0RFPkdldFRva2VuKG5JZCk8L0NPREU+IGFuZAoJCQkJPENPREU+SXNUb2tlbihuSWQpPC9DT0RFPi48L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCQk8VFIgVkFMSUdOPVRPUD4KCQkJPFREIFdJRFRIPTUlPgoJCQkJPFA+RDwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTglPgoJCQkJPFA+Jm5ic3A7PC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTElPgoJCQkJPFA+U0M8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFA+UmVtZW1iZXIgdGhlIHN0eWxlIG5hbWVzIG9mIHRoZSBjZWxscyBzbyB0aGV5IGhhdmUgbm90IHRvIGdldAoJCQkJYWdhaW4uIChzYXZlIHNwcmVhZHNoZWV0IGRvY3VtZW50KTwvUD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBCR0NPTE9SPSIjZTZlNmU2IiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5EPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD4mbmJzcDs8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5TQzwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTE0JT4KCQkJCTxQPlJ1bnRpbWU8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD02MiU+CgkJCQk8UD5Db2xsZWN0IGFsbCBjZWxscyBhbmQgaGlzIHN0eWxlcyBhbmQgbWVyZ2UgdGhlIGNlbGxzIHRvIHJhbmdlcwoJCQkJYW5kIHNldCB0aGUgc3R5bGVzIG9uIHRoaXMgcmFuZ2VzLiAobG9hZCBzcHJlYWRzaGVldCBkb2N1bWVudCk8L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCQk8VFIgVkFMSUdOPVRPUD4KCQkJPFREIFdJRFRIPTUlPgoJCQkJPFA+RDwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTglPgoJCQkJPFA+Jm5ic3A7PC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTElPgoJCQkJPFA+U0M8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFA+UmVtZW1iZXIgYWxsIEFQSSBvYmplY3RzIHdoaWNoIGFyZSB1c2VkIGFnYWluIGFuZCBhZ2Fpbiwgc28KCQkJCXRoZXkgaGF2ZSBub3QgdG8gY3JlYXRlIHNvIG9mdGVuLjwvUD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBCR0NPTE9SPSIjZTZlNmU2IiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5EPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD4mbmJzcDs8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5TQzwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTE0JT4KCQkJCTxQPlJ1bnRpbWU8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD02MiU+CgkJCQk8UD5GaW5kIGEgYmV0dGVyIHdheSB0byBmaW5kIG91dCB3aGV0aGVyIGEgY2VsbCBjb250YWlucyBhCgkJCQlhbm5vdGF0aW9uIG9yIG5vdC48L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCQk8VFIgVkFMSUdOPVRPUD4KCQkJPFREIFdJRFRIPTUlPgoJCQkJPFA+RDwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTglPgoJCQkJPFA+Jm5ic3A7PC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTElPgoJCQkJPFA+U0M8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFA+VGhlIG1ldGhvZCA8Q09ERT5nZXRGb3JtdWxhKCk8L0NPREU+IGNoYW5nZSBpbiBldmVyeSBkb2N1bWVudAoJCQkJd2hpY2ggaXMgbm90IEVuZ2xpc2ggdGhlIGxhbmd1YWdlIHRvIGdldCB0aGUgRW5nbGlzaCBmb3JtdWxhLgoJCQkJVGhpcyBpcyBub3QgbmVjZXNzYXJ5LjwvUD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBCR0NPTE9SPSIjZTZlNmU2IiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5JPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD4mbmJzcDs8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5BTEw8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5Db2RlPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFA+U29tZSBBdHRyaWJ1dGVzIGNvbnRhaW5zIHRoZSBvbGQgdmlydHVhbCA8Q09ERT5pbXBvcnRYTUw8L0NPREU+CgkJCQlhbmQgPENPREU+ZXhwb3J0WE1MPC9DT0RFPiBtZXRob2RzLiBUaGVzZSBjYW4gcmVtb3ZlLCBiZWNhdXNlIHRoZQoJCQkJWE1MIGF0dHJpYnV0ZSBleHBvcnQgaXMgY2hhbmdlZDwvUD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5JPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD4mbmJzcDs8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5BTEw8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFA+VXNlIE11bHRpcHJvcGVydHlTZXQgaW4gdGhlIEFQSSBmb3IgUGFnZURlc2NyaXB0b3KSczwvUD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBCR0NPTE9SPSIjZTZlNmU2IiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5JPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD4mbmJzcDs8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5YTUw8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFA+VGhlIHBhY2thZ2UgY29tcG9uZW50IGhhcyB0d28gbWFqb3IgcGVyZm9ybWFuY2UgcHJvYmxlbXM6PC9QPgoJCQkJPE9MPgoJCQkJCTxMST48UD5XaGVuIHNhdmluZywgYWxsIHppcCBmaWxlIGRhdGEgaXMgd3JpdHRlbiB0byBhIGJ1ZmZlciBpbgoJCQkJCW1lbW9yeSB3aGljaCBpcyB0aGVuIHBhc3NlZCB0byB0aGUgVUNCIHRvIGJlIHdyaXR0ZW4gdG8gZGlzay4gSWYKCQkJCQl0aGVyZSBhcmUgbXVsdGlwbGUgT0xFIG9iamVjdHMsIHRoaXMgY291bGQgYmUgY3JpcHBsaW5nLiBEYXRhCgkJCQkJc2hvdWxkIGJlIHdyaXR0ZW4gdG8gZGlzaywgYnVmZmVyZWQuPC9QPgoJCQkJCTxMST48UD5XaGVuIGxvYWRpbmcsIHdob2xlIHN0cmVhbXMgYXJlIHJlYWQgaW50byBtZW1vcnkgYXQgb25jZQoJCQkJCWFuZCBhcmUgdGhlbiByZWFkIGZyb20gbWVtb3J5LiBUaGV5IHNob3VsZCBiZSB1bmNvbXByZXNzZWQgYW5kCgkJCQkJd3JpdHRlbiB0byB0ZW1wb3JhcnkgZmlsZXMgYW5kIGJlIHJlYWQgZnJvbSB0aGVyZSBpbnN0ZWFkPC9QPgoJCQkJPC9PTD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5QPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD4mbmJzcDs8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5TVzwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTE0JT4KCQkJCTxQPlJ1bnRpbWU8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD02MiU+CgkJCQk8UD5UaGUgWE1MIGxvYWQvc2F2ZSBjcmVhdGVzIGV2ZXJ5IHRpbWUgYSBEcmF3TW9kZWwKCQkJCShTd0RvYzo6TWFrZURyYXdNb2RlbCkuIFRoaXMgbXVzdCBjaGFuZ2UsIHNvIGl0cyBvbmx5IGNyZWF0ZWQgaWYKCQkJCWl0cyBuZWVkZWQuPC9QPgoJCQk8L1REPgoJCTwvVFI+CgkJPFRSIEJHQ09MT1I9IiNlNmU2ZTYiIFZBTElHTj1UT1A+CgkJCTxURCBXSURUSD01JT4KCQkJCTxQPkQ8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD04JT4KCQkJCTxQPiZuYnNwOzwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTExJT4KCQkJCTxQPlNDPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTQlPgoJCQkJPFA+UnVudGltZTwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTYyJT4KCQkJCTxQPk9uIHNhdmUgYW5kIGxvYWQgb2YgZWRpdCBjZWxscyB0aGUgbWV0aG9kIDxDT0RFPkdldFRleHRGb3J3YXJkZXIoKTwvQ09ERT4KCQkJCW1ha2VzIHRvIG11Y2ggdG8gb2Z0ZW4uIFRoaXMgaXMgbm90IG5lY2Vzc2FyeS4gT24gZXZlcnkgY3JlYXRpb24KCQkJCW9mIGEgbmV3IEFQSSBPYmplY3QgbGlrZSBYVGV4dFJhbmdlLCBYVGV4dEN1cnNvciBhbmQgc28gb24gb24gdGhlCgkJCQlzYW1lIGNlbGwgY3JlYXRlcyBhIG5ldyBvYmplY3QgYW5kIHNldCBhbGwgdGhlIHByb3BlcnRpZXMgYW5kIHNvCgkJCQlvbi4gVGhlIG1ldGhvZCBzaG91bGQgcmVtZW1iZXIgdGhlIGNyZWF0ZWQgb2JqZWN0IGFuZCBnaXZlIHRoaXMKCQkJCWFnYWluIGFuZCBhZ2Fpbi48L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCQk8VFIgVkFMSUdOPVRPUD4KCQkJPFREIFdJRFRIPTUlPgoJCQkJPFA+QzwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTglPgoJCQkJPFA+Jm5ic3A7PC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTElPgoJCQkJPFA+U0M8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFA+T24gc2F2ZSBvZiBhIGRvY3VtZW50IHRoZSBtZXRob2QgPENPREU+R2V0T3V0cHV0U3RyaW5nSW1wbDwvQ09ERT4KCQkJCWFzayBmb3IgdGhlIG51bWJlcmZvcm1hdCBvbiBldmVyeSBjZWxsLiBPbiBkb2N1bWVudHMgd2l0aCBtb3JlCgkJCQlsYW5ndWFnZXMgdGhpcyBuZWVkcyB2ZXJ5IGxvbmcsIGJlY2F1c2UgdGhlIGxhbmd1YWdlIGlzIGV2ZXJ5CgkJCQl0aW1lIGNoYW5nZWQuIFRoZSBjYWxsaW5nIG1ldGhvZCBrbm93cyB0aGUgbnVtYmVyZm9ybWF0LCBidXQKCQkJCXRoZXJlIGlzIG5vIHdheSB0byBnaXZlIHRoaXMgdG8gdGhlIG1ldGhvZCB3aXRoIHRoZSBBUEkuPC9QPgoJCQkJPFA+VGhpcyBvcHRpbWl6YXRpb24gaXMgY2hhbmdlZCB0byBhIG9wdGltaXphdGlvbiBvZiB0aGUKCQkJCTxDT0RFPkNoYW5nZUludGw8L0NPREU+IG1ldGhvZCBhbmQgdGhlIHVzZSBvZiBhbiBFbmdsaXNoCgkJCQlOdW1iZXJGb3JtYXR0ZXIgdG8gYXNrIHdoZXRoZXIgYSBzdHJpbmcgY2VsbCB1c2UgYSBOdW1iZXJGb3JtYXQuPC9QPgoJCQk8L1REPgoJCTwvVFI+CgkJPFRSIEJHQ09MT1I9IiNlNmU2ZTYiIFZBTElHTj1UT1A+CgkJCTxURCBXSURUSD01JT4KCQkJCTxQPkQ8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD04JT4KCQkJCTxQPiZuYnNwOzwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTExJT4KCQkJCTxQPlNDPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTQlPgoJCQkJPFA+UnVudGltZTwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTYyJT4KCQkJCTxQPkV4dGVuZCB0aGUgQVBJIHRvIGdldCBhbGwgZm9ybWF0dGVkIHJhbmdlcyB3aXRoIG9uZSBjYWxsLiBUaGlzCgkJCQltZWFucyB0byBtYWtlIGEgcG9zc2liaWxpdHkgdG8gZ2V0IGFsbCBmb3JtYXR0ZWQgcmFuZ2VzIHdpdGggdGhlCgkJCQlzYW1lIGZvcm1hdCBhcyBYQ2VsbFJhbmdlcyBvYmplY3QuIFNvIHdlIGhhdmUgdG8gYXNrIGZvciB0aGUKCQkJCWF1dG9zdHlsZSBvbmx5IG9uZSB0aW1lLjwvUD4KCQkJCTxQPlRoZSBzYW1lIHNob3VsZCBiZSBwb3NzaWJsZSB3aGlsZSBsb2FkaW5nIGEgZG9jdW1lbnQuIEhlcmUgd2UKCQkJCW5lZWQgYSBwb3NzaWJpbGl0eSB0byBjcmVhdGUgYSBYQ2VsbFJhbmdlcyBvYmplY3QgYW5kIGdpdmUgdGhlbQoJCQkJYWxsIHJhbmdlcyB3aXRoIHRoZSBzYW1lIGZvcm1hdCBhbmQgdGhlbiBzZXQgdGhlIGZvcm1hdCBvbiBhbGwKCQkJCXRoaXMgcmFuZ2VzIGluIG9uZSB0aW1lLjwvUD4KCQkJCTxQPkZpbmFsbHkgd2UgaGF2ZSB0byB1c2UgdGhpcyBleHRlbnNpb25zLjwvUD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5JPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD4mbmJzcDs8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5TQzwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTE0JT4KCQkJCTxQPlJ1bnRpbWU8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD02MiU+CgkJCQk8UD5Vc2UgYSBFbmdsaXNoIE51bWJlckZvcm1hdHRlciB0byByZWR1Y2UgdGhlIGNhbGxzIG9mIHRoZQoJCQkJPENPREU+Q2hhbmdlSW50bDxDT0RFPiBtZXRob2QuPC9DT0RFPjwvQ09ERT48L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCQk8VFIgQkdDT0xPUj0iI2U2ZTZlNiIgVkFMSUdOPVRPUD4KCQkJPFREIFdJRFRIPTUlPgoJCQkJPFA+STwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTglPgoJCQkJPFA+Jm5ic3A7PC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTElPgoJCQkJPFA+U0M8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFA+V2UgaGF2ZSBhbHNvIHRvIG9wdGltaXplIHRoZSA8Q09ERT5HZXRUZXh0Rm9yd2FyZGVyPC9DT0RFPgoJCQkJbWV0aG9kIGZvciB0aGUgc2F2aW5nIG9mIHRoZSBQYWdlU3R5bGVzLjwvUD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5JPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD4mbmJzcDs8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5YTUw8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFA+VGhlIDxDT0RFPkdldEtleUJ5QXR0ck5hbWU8L0NPREU+IG1ldGhvZCBzaG91bGQgYmUgb3B0aW1pemVkCgkJCQlzbyB0aGUgc3RyaW5nIHdpbGwgYmUgY3JlYXRlZCBvbmx5IG9uY2UgYW5kIHRoZW4gdGhlIHN0cmluZwoJCQkJc2hvdWxkIGJlIGNhY2hlZC4gVGhpcyBpbmNyZWFzZSB0aGUgcGVyZm9ybWFuY2UsIGJlY2F1c2UgdGhlIHNhbWUKCQkJCXN0cmluZ3MgYXJlIHVzZWQgdmVyeSBvZnRlbi48L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCQk8VFIgQkdDT0xPUj0iI2U2ZTZlNiIgVkFMSUdOPVRPUD4KCQkJPFREIFdJRFRIPTUlPgoJCQkJPFA+UDwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTglPgoJCQkJPFA+PEJSPgoJCQkJPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTElPgoJCQkJPFA+WE1MPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTQlPgoJCQkJPFA+UnVudGltZTwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTYyJT4KCQkJCTxQPkNyZWF0aW5nIHRoZSA8Q09ERT5Qcm9wZXJ0eVNldE1hcHBlcjwvQ09ERT5zIHRha2VzIGEgbG9uZwoJCQkJdGltZSwgbWFpbmx5IGR1ZSB0byBzdHJpbmcgY3JlYXRpb24uIFRoaXMgY2FuIGJlIHNwZWQgdXAgYnkKCQkJCXN0b3JpbmcgdGhlIHN0cmluZyBsZW5ndGggaW4gdGhlIG1hcHMuPC9QPgoJCQkJPFA+PEk+ZHZvOiBBcyBpdCB0dXJucyBvdXQsIHRoZSBzdHJpbmcgbGVuZ3RoIGRvZXNuJ3QgaGVscCBhCgkJCQl3aG9sZSBsb3QuIENvcHlpbmcgdGhlIHN0cmluZyBmcm9tIHNhbF9DaGFyKiB0byBzYWxfVW5pY29kZSogYW5kCgkJCQl0aGUgY29ycmVzcG9uZGluZyBtYWxsb2Mgc2VlbXMgdG8gdGFrZSBtb3N0IG9mIHRoZSB0aW1lLiBTbyBJJ20KCQkJCWFmcmFpZCB0aGVyZSdzIG5vdGhpbmcgd2UgY2FuIGRvIGFib3V0IHRoaXMuPC9JPjwvUD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5JPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD48QlI+CgkJCQk8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5YTUw8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFA+V2hlbiBsb2FkaW5nL3NhdmluZyBzbWFsbCBkb2N1bWVudHMsIHJlYWRpbmcvc2V0dGluZyB0aGUKCQkJCWRvY3VtZW50IHNldHRpbmdzIHRha2VzIGEgbG9uZyB0aW1lLiBJbiB0aGUgd3JpdGVyLCByZWFkaW5nIHRoZQoJCQkJZG9jdW1lbnQgc2V0dGluZ3MgdGFrZXMgYWJvdXQgYXMgbG9uZyBhcyBpbXBvcnRpbmcgMjAwCgkJCQlwYXJhZ3JhcGhzLiBUaGlzIHNob3VsZCBiZSBpbnZlc3RpZ2F0ZWQuPC9QPgoJCQk8L1REPgoJCTwvVFI+CgkJPFRSIEJHQ09MT1I9IiNlNmU2ZTYiIFZBTElHTj1UT1A+CgkJCTxURCBXSURUSD01JT4KCQkJCTxQPkk8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD04JT4KCQkJCTxQPjxCUj4KCQkJCTwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTExJT4KCQkJCTxQPlhNTDwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTE0JT4KCQkJCTxQPlJ1bnRpbWU8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD02MiU+CgkJCQk8UCBBTElHTj1MRUZUPlRoZSBOdW1iZXJGb3JtYXR0ZXIgdGFrZXMgcXVpdGUgbG9uZyB0byBmaW5kIHRoZQoJCQkJZmlyc3QgZGF0YSBzdHlsZSBmb3IgYSBwYXJ0aWN1bGFyIGxhbmd1YWdlLiBUaHVzLCBleHBvcnRpbmcgdGhlCgkJCQlmaXJzdCB0ZXh0ZmllbGQgdGhhdCB1c2VzIGEgbnVtYmVyIGZvcm1hdCB0YWtlcyBhYm91dCBhcyBsb25nIGFzCgkJCQlleHBvcnRpbmcgMjUgcGFyYWdyYXBocy48L1A+CgkJCQk8UCBBTElHTj1MRUZUPjxJPmR2bzogSSBjYW4ndCB0aGluayBvZiBhbnkgd2F5IHRvIGF2b2lkIHRoaXMsCgkJCQl0aG91Z2guPC9JPjwvUD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5QPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD48QlI+CgkJCQk8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5YTUw8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFAgQUxJR049TEVGVD5UaGUgTnVtYmVyRm9ybWF0c1N1cHBsaWVyIGlzIGFsd2F5cyBvYnRhaW5lZCBmcm9tCgkJCQl0aGUgZG9jdW1lbnQsIGV2ZW4gdGhvdWdoIGl0IGlzIG5vdCB1c2VkLiBUaGF0IHRha2VzIHF1aXRlIHNvbWUKCQkJCXRpbWUgaW4gc21hbGwgZG9jdW1lbnRzIHRoYXQgZG9uJ3QgdXNlIGl0LjwvUD4KCQkJCTxQIEFMSUdOPUxFRlQ+PEk+ZHZvOiBjcmVhdGluZyB0aGUgTnVtYmVyRm9ybWF0c1N1cHBsaWVyCgkJCQlvbi1kZW1hbmQgZml4ZXMgdGhlIHByb2JsZW0uIEhvd2V2ZXIsIHRoaXMgcmVxdWlyZXMgYW4KCQkJCWluY29tcGF0aWJsZSBidWlsZCwgc28gaXQgaXMgbm90IGNoZWNrZWQgaW4geWV0LjwvST48L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCQk8VFIgQkdDT0xPUj0iI2U2ZTZlNiIgVkFMSUdOPVRPUD4KCQkJPFREIFdJRFRIPTUlPgoJCQkJPFA+STwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTglPgoJCQkJPFA+PEJSPgoJCQkJPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTElPgoJCQkJPFA+WE1MPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTQlPgoJCQkJPFA+UnVudGltZTwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTYyJT4KCQkJCTxQIEFMSUdOPUxFRlQ+UmVzZXR0aW5nIGV4aXN0aW5nIHN0eWxlcyB0byBkZWZhdWx0IHRha2VzIGEgbG9uZwoJCQkJdGltZSBkdXJpbmcgaW1wb3J0LiAodXNlIDxDT0RFPlhNdWx0aVByb3BlcnRzU3RhdGVzPC9DT0RFPgoJCQkJaW50ZXJmYWNlKS4gQ3VycmVudGx5IHRoaXMgdXNlcyBnZXRQcm9wZXJ0eVNldCBhbmQgdGhlbiBzZXRzIHRoZW0KCQkJCXRvIGRlZmF1bHQgb25lLWJ5LW9uZS48L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCQk8VFIgVkFMSUdOPVRPUD4KCQkJPFREIFdJRFRIPTUlPgoJCQkJPFA+UDwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTglPgoJCQkJPFA+PEJSPgoJCQkJPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTElPgoJCQkJPFA+WE1ML1dyaXRlcjwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTE0JT4KCQkJCTxQPlJ1bnRpbWU8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD02MiU+CgkJCQk8UCBBTElHTj1MRUZUPkFsbCBzdHlsZXMgZm9yIGEgc3R5bGUgZmFtaWx5IGFyZSBvYnRhaW5lZCBmcm9tIHRoZQoJCQkJZG9jdW1lbnQgdGhyb3VnaCBhbiA8Q09ERT5YSW5kZXhBY2Nlc3M8L0NPREU+LCB3aGljaCBpcyB0aGVuIHVzZWQKCQkJCXRvIGl0ZXJhdGUgb3ZlciBhbGwgc3R5bGVzLiBUaGUgY3VycmVudCBXcml0ZXIgaW1wbGVtZW50YXRpb24gZm9yCgkJCQl0aGF0IGlzIHJlYWxseSwgcmVhbGx5IHNsb3cgKHByb2JhYmx5IHRydWUgZm9yIHRoZSBvdGhlciBhcHBzIGFzCgkJCQl3ZWxsLCBidXQgSSBoYXZlbid0IGNoZWNrZWQpLjwvUD4KCQkJCTxQIEFMSUdOPUxFRlQ+PEk+ZHZvOiBJIGhhdmUgdHJpZWQgcmVwbGFjaW5nIHRoZSBYSW5kZXhBY2Nlc3MKCQkJCXdpdGggYW4gWE5hbWVBY2Nlc3MuIFRoaXMgc3BlZWRzIG9idGFpbmluZyBhbGwgc3R5bGVzIHVwIGZyb20KCQkJCTI4MG1zIHRvIDEwbXMsIHdoaWNoIGlzIGFsbW9zdCBhIGZhY3RvciBvZiAzMC4gSG93ZXZlciwgSSdtIG5vdAoJCQkJc3VyZSBpZiBvdGhlciBhcHBzIGhhdmUgdGhlIHNhbWUgcGVyZm9ybWFuY2UgY2hhcmFjdGVyaXN0aWNzLgoJCQkJQWxzbywgYSBwcm9wZXJseSBpbXBsZW1lbnRlZCBnZXRCeUluZGV4IHNob3VsZCByZXNvbHZlIHRoaXMKCQkJCWlzc3VlcywgdG9vLiBUaGVyZWZvcmUsIEkgd2lsbCBub3QgY29tbWl0IHRoaXMgJ2ZpeCcuPC9JPjwvUD4KCQkJCTxQIEFMSUdOPUxFRlQ+PEk+ZHZvOiBJIHN1Ym1pdHRlZCBhIHBlcmZvcm1hbmNlIGJ1ZyBhYm91dCB0aGlzCgkJCQkoIzkwMjUxIyk8L0k+PC9QPgoJCQk8L1REPgoJCTwvVFI+CgkJPFRSIEJHQ09MT1I9IiNlNmU2ZTYiIFZBTElHTj1UT1A+CgkJCTxURCBXSURUSD01JT4KCQkJCTxQPkQ8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD04JT4KCQkJCTxQPjxCUj4KCQkJCTwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTExJT4KCQkJCTxQPldyaXRlcjwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTE0JT4KCQkJCTxQPlJ1bnRpbWU8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD02MiU+CgkJCQk8UCBBTElHTj1MRUZUPlRoZSBjb252ZXJzaW9uIGJldHdlZW4gVUkgbmFtZXMgYW5kCgkJCQlpbnRlcm5hdGlvbmFsaXplZCBuYW1lcyBpcyBzbG93LjwvUD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5JPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD48QlI+CgkJCQk8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5Xcml0ZXI8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFAgQUxJR049TEVGVD5UaGUgSXNQaHlzaWNhbCBwcm9wZXJ0eSB3aXRoIHN0eWxlcyBpcyBtdWNoIHNsb3dlcgoJCQkJdGhhbiBtb3N0IG90aGVyIHByb3BlcnRpZXMuPC9QPgoJCQk8L1REPgoJCTwvVFI+CgkJPFRSIEJHQ09MT1I9IiNlNmU2ZTYiIFZBTElHTj1UT1A+CgkJCTxURCBXSURUSD01JT4KCQkJCTxQPkk8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD04JT4KCQkJCTxQPjxCUj4KCQkJCTwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTExJT4KCQkJCTxQPlhNTCAvIFdyaXRlcjwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTE0JT4KCQkJCTxQPlJ1bnRpbWU8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD02MiU+CgkJCQk8UCBBTElHTj1MRUZUPkluIGV4cG9ydFRleHRDb250ZW50RW51bWVyYXRpb24sIGRldGVybWluaW5nIHdoaWNoCgkJCQkocmVsZXZhbnQpIHNlcnZpY2UgaXMgaW1wbGVtZW50ZWQgYnkgdGhlIGN1cnJlbnQgWFRleHRDb250ZW50IGlzCgkJCQlxdWl0ZSBzbG93LiBGb3IgYSBzaW1wbGUgZG9jdW1lbnQgd2l0aCAxNCB0ZXh0IGNvbnRlbnQgb2JqZWN0cwoJCQkJKHdoaWNoIHJ1biB0d2ljZSB0aHJvdWdoIHRoZSBtZXRob2QpIHRoZSB0b3RhbCB0aW1lIG5lZWRlZCB0bwoJCQkJZGV0ZXJtaW5lIHRoZSBzZXJ2aWNlIHRha2VzIGFzIG11Y2ggdGltZSBhcyBleHBvcnRpbmcgODAgc2ltcGxlCgkJCQlwYXJhZ3JhcGhzLjwvUD4KCQkJCTxQIEFMSUdOPUxFRlQ+PEk+ZHZvOiBBIG1vcmUgcmFkaWNhbCBhcHByb2FjaCB0byB0aGlzIHByb2JsZW0KCQkJCXdvdWxkIGJlIHRvIGdpdmUgYW4gWFRleHRDb250ZW50IGEgcmVxdWlyZWQgcHJvcGVydHkgd2hpY2gKCQkJCXJldHVybnMgdGhpcyB0eXBlIGFzIGEgc3RyaW5nIG9yIGFuIGludGVnZXIga2V5LiBIb3dldmVyLCB0aGlzCgkJCQl3b3VsZCByZXF1aXJlIGEgbW9kaWZpZWQgVGV4dENvbnRlbnQgc2VydmljZS48L0k+PC9QPgoJCQkJPFAgQUxJR049TEVGVD48ST5kdm86IE1vc3Qgb2YgdGhlIHRpbWUgc2VlbXMgdG8gYmUgc3BlbnQgaW4KCQkJCWFza2luZyBhIHNoYXBlIHdoZXRoZXIgaXQgaGFwcGVucyB0byBiZSBvZiBzb21lIHR5cGUgb2Ygc2VydmljZS4KCQkJCVRoZSB3YXkgdGhlIGludGVyZmFjZXMgYXJlLCB0aGVyZSBhcmVuJ3QgdG9vIG1hbnkgd2F5IHRvIHNwZWVkIHVwCgkJCQl0aGUgc2hhcGUgaW1wbGVtZW50YXRpb24uIFNpbXBseSBhc2tpbmcgdGhlIHNoYXBlIGVhcmx5IHNvbHZlcwoJCQkJdGhpcyBwcm9ibGVtIG5pY2VseS4gRm9yIHRoZSAnZWluZmFjaCcgVGVzdC1Eb2t1bWVudCwgY2hlY2tpbmcKCQkJCWZvciBzaGFwZXMgZWFybHkgcmVkdWNlcyB0aW1lIGZvciB0aGUgZW50aXJlCgkJCQlleHBvcnRUZXh0Q29udGVudEVudW1lcmF0aW9uIGJ5IDEwJS48L0k+PC9QPgoJCQkJPFAgQUxJR049TEVGVD48ST5kdm86IEkgc3VibWl0dGVkIGEgcGVyZm9ybWFuY2UgQnVnICM5MDI0MCMgYWJvdXQKCQkJCXRoaXMuPC9JPjwvUD4KCQkJPC9URD4KCQk8L1RSPgoJCTxUUiBWQUxJR049VE9QPgoJCQk8VEQgV0lEVEg9NSU+CgkJCQk8UD5JPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9OCU+CgkJCQk8UD48QlI+CgkJCQk8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xMSU+CgkJCQk8UD5Xcml0ZXI8L1A+CgkJCTwvVEQ+CgkJCTxURCBXSURUSD0xNCU+CgkJCQk8UD5SdW50aW1lPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9NjIlPgoJCQkJPFAgQUxJR049TEVGVD5UaGUgJ0ZpbGVMaW5rJyBwcm9wZXJ0eSBvZiB0ZXh0IHNlY3Rpb25zIGlzCgkJCQlpbXBsZW1lbnRlZCBmYWlybHkgc2xvdy48L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCQk8VFIgQkdDT0xPUj0iI2U2ZTZlNiIgVkFMSUdOPVRPUD4KCQkJPFREIFdJRFRIPTUlPgoJCQkJPFA+RDwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTglPgoJCQkJPFA+PEJSPgoJCQkJPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTElPgoJCQkJPFA+WE1MPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTQlPgoJCQkJPFA+UnVudGltZTwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTYyJT4KCQkJCTxQIEFMSUdOPUxFRlQ+VGhlIEZpbHRlclByb3BlcnR5SW5mb19tcGw6OkFkZFByb3BlcnR5IG1ldGhvZCBpcwoJCQkJcXVpdGUgc2xvdyBiZWNhdXNlIGl0IHVzZWQgYW4gKGFsYmVpdCBoYWNrZWQtdXApIHZlcnNpb24gb2YKCQkJCWluc2VydGlvbiBzb3J0LjwvUD4KCQkJCTxQIEFMSUdOPUxFRlQ+PEk+ZHZvOiBVc2luZyBTVEwgc29ydCBkdXJpbmcgR2V0QXBpTmFtZXMoKSBzcGVlZHMKCQkJCXVwIHRoZSBvcGVyYXRpb24gYnkgYWJvdXQgMzAlLjwvST48L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCQk8VFIgVkFMSUdOPVRPUD4KCQkJPFREIFdJRFRIPTUlPgoJCQkJPFA+QzwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTglPgoJCQkJPFA+PEJSPgoJCQkJPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTElPgoJCQkJPFA+WE1MPC9QPgoJCQk8L1REPgoJCQk8VEQgV0lEVEg9MTQlPgoJCQkJPFA+UnVudGltZTwvUD4KCQkJPC9URD4KCQkJPFREIFdJRFRIPTYyJT4KCQkJCTxQIEFMSUdOPUxFRlQ+SW1wb3J0aW5nIGEgc2luZ2xlIGNvbnRyb2wgaXMgYWJvdXQgYXMgc2xvdyBhcwoJCQkJaW1wb3J0aW5nIDE1MCBzaW1wbGUgcGFyYWdyYXBocy48L1A+CgkJCQk8UCBBTElHTj1MRUZUPjxJPmR2bzogVGhlIHRpbWUgaXMgc3BlbnQgaW4gbG9hZGluZyBzZXZlcmFsIERMTHMKCQkJCXJlcXVpcmVkIGZvciB0aGUgY29udHJvbHMuIFRoaXMgaXMgcHJvYmFibHkgdW5hdm9pZGFibGUuIFRoZQoJCQkJc2Vjb25kIGNvbnRyb2wgaXMgcXVpdGUgc3BlZWR5LjwvST48L1A+CgkJCTwvVEQ+CgkJPC9UUj4KCTwvVEJPRFk+CjwvVEFCTEU+CjxQPkxhc3QgY2hhbmdlOiAwNy8yNS8yMDAxPC9QPgo8UD48Qj5BZ2VuZGE8L0I+OjwvUD4KPFAgU1RZTEU9Im1hcmdpbi1ib3R0b206IDAuMDFjbSI+U3RhdHVzIFN5bWJvbHM6PC9QPgo8VEFCTEUgV0lEVEg9MTAwJSBCT1JERVI9MCBDRUxMUEFERElORz0wIENFTExTUEFDSU5HPTA+Cgk8Q09MIFdJRFRIPTE2Kj4KCTxDT0wgV0lEVEg9MjQwKj4KCTxUUiBWQUxJR049VE9QPgoJCTxURCBXSURUSD02JT4KCQkJPFA+STwvUD4KCQk8L1REPgoJCTxURCBXSURUSD05NCU+CgkJCTxQPklkZWEgCgkJCTwvUD4KCQk8L1REPgoJPC9UUj4KCTxUUiBWQUxJR049VE9QPgoJCTxURCBXSURUSD02JT4KCQkJPFA+RDwvUD4KCQk8L1REPgoJCTxURCBXSURUSD05NCU+CgkJCTxQPkRvbmU8L1A+CgkJPC9URD4KCTwvVFI+Cgk8VFIgVkFMSUdOPVRPUD4KCQk8VEQgV0lEVEg9NiU+CgkJCTxQPlA8L1A+CgkJPC9URD4KCQk8VEQgV0lEVEg9OTQlPgoJCQk8UD5pbiBQcm9ncmVzczwvUD4KCQk8L1REPgoJPC9UUj4KCTxUUiBWQUxJR049VE9QPgoJCTxURCBXSURUSD02JT4KCQkJPFA+QzwvUD4KCQk8L1REPgoJCTxURCBXSURUSD05NCU+CgkJCTxQPkNhbmNlbGxlZDwvUD4KCQk8L1REPgoJPC9UUj4KPC9UQUJMRT4KPFAgU1RZTEU9Im1hcmdpbi1ib3R0b206IDAuMDFjbSI+PEJSPjxCUj4KPC9QPgo8L2JvZHk+CjwvSFRNTD4K