PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwvL0VOIj4KPGh0bWw+CjxoZWFkPgo8dGl0bGU+U2ltcGxlIEltYWdlIEVmZmVjdHMgZm9yIFNXVDwvdGl0bGU+CjxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIKCWNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD13aW5kb3dzLTEyNTIiPgo8bGluayBocmVmPSIuLi9hcnRpY2xlLmNzcyIgdHlwZT0idGV4dC9jc3MiIHJlbD0ic3R5bGVzaGVldCI+CjwvaGVhZD4KPGJvZHk+Cgo8aDE+U2ltcGxlIEltYWdlIEVmZmVjdHMgZm9yIFNXVDwvaDE+CjxkaXYgY2xhc3M9InN1bW1hcnkiPgo8aDI+U3VtbWFyeTwvaDI+CjxwPlRoaXMgYXJ0aWNsZSBleHBsb3JlcyBzaW1wbGUgZW1ib3NzLCBibHVyLCBnbG93LCBhbmQgZHJvcApzaGFkb3cgYWxnb3JpdGhtcyB0aGF0IGNhbiBiZSBhcHBsaWVkIHRvIGltYWdlcyBpbiBTV1QuPC9wPgo8ZGl2IGNsYXNzPSJhdXRob3IiPkJ5IE5pY2hvbGFzIFJhamVuZHJhbSwgSUJNIENhbmFkYTwvZGl2Pgo8ZGl2IGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCAmY29weTsgMjAwNyBJQk0gQ2FuYWRhLjwvZGl2Pgo8ZGl2IGNsYXNzPSJkYXRlIj5BcHJpbCAyMCwgMjAwNzwvZGl2Pgo8L2Rpdj4KCjxkaXYgY2xhc3M9ImNvbnRlbnQiPgo8aDI+SW50cm9kdWN0aW9uPC9oMj4KPHA+VGhpcyBhcnRpY2xlIGRpc2N1c3NlcyBmb3VyIGltYWdlIGVmZmVjdCBhbGdvcml0aG1zIHRoYXQgSSBleHBsb3JlZAphcyBwYXJ0IG9mIG15IGNvLW9wIHdvcmsgdGVybSBvbiBJQk0ncyBFY2xpcHNlIFNXVCB0ZWFtLiAKSW1wbGVtZW50YXRpb25zIG9mIGEgc2ltcGxlIGVtYm9zcywgYmx1ciwgZ2xvdywgYW5kIGRyb3Agc2hhZG93IGFyZSAKaW5jbHVkZWQgYWxvbmcgd2l0aCBpZGVhcyBmb3IgZnV0dXJlIGltcHJvdmVtZW50cy4gTXkgcHJpbWFyeSBmb2N1cyBoYXMKYmVlbiBvbiBleHBsb3JpbmcgYmFzaWMgYWxnb3JpdGhtcyBmb3IgdGhlc2UgZWZmZWN0cy48L3A+CjxoMj5FbWJvc3MgQWxnb3JpdGhtPC9oMj4KPHA+VGhlIHNpbXBsZXN0IGdyYXBoaWNhbCBlZmZlY3QgdG8gZXhwbG9yZSBpcyBlbWJvc3NpbmcsIHdoaWNoIGdpdmVzIGltYWdlcwphIG1vbGRlZCBvciBjaGlzZWxlZCBhcHBlYXJhbmNlIFsxXS4gVGhlIGFsZ29yaXRobSBlbnRhaWxzIGNvbXBhcmluZyAKdGhlIGludGVuc2l0eSBvZiBlYWNoIHBpeGVsIGluIGFuIGltYWdlIHRvIG9uZSBvciBtb3JlIG9mIGl0cyBuZWlnaGJvcnMuClRoZSByZWQsIGdyZWVuLCBhbmQgYmx1ZSBpbnRlbnNpdHkgY29tcG9uZW50cyBvZiBhIHBpeGVsIGFyZSBjb21wYXJlZCAKc2VwYXJhdGVseSwgYW5kIHRoZSBsYXJnZXN0IGRpZmZlcmVuY2UgZm91bmQgaXMgdXNlZCB0byBkZXRlcm1pbmUgdGhlIAppbnRlbnNpdHkgb2YgZ3JheSB0aGUgcmVzdWx0aW5nIGVtYm9zc2VkIHBpeGVsIHdpbGwgZGlzcGxheS4gQW4gYWxnb3JpdGhtCm1heSBjb21wYXJlIGVhY2ggcGl4ZWwgd2l0aCBhIG5laWdoYm9yIHRvIGl0cyBsZWZ0LCByaWdodCwgdG9wLCBib3R0b20sCm9yIGRpYWdvbmFsLCBvciBldmVuIGEgbmVhcmJ5IHBpeGVsIHRoYXQgaXMgbm90IGFkamFjZW50IGF0IGFsbC48L3A+CjxoMz5JbXBsZW1lbnRhdGlvbjwvaDM+CjxwPlRlc3RpbmcgcmV2ZWFsZWQgdGhhdCBjaG9vc2luZyBhIGNvbXBhcmlzb24gcGl4ZWwgdGhhdCB3YXMgbm90IGRpcmVjdGx5CmFkamFjZW50IHRvIHRoZSBvcmlnaW5hbCBwaXhlbCBjcmVhdGVkIHRoZSBiZXN0IGVtYm9zc2VkIGFwcGVhcmFuY2UuClRoaXMgaW1wbGVtZW50YXRpb24gb2YgZW1ib3NzIGNvbXBhcmVzIGEgcGl4ZWwgdG8gaXRzIG5laWdoYm9yIG9uZSByb3cKYmVsb3cgYW5kIHR3byBjb2x1bW5zIHRvIHRoZSBsZWZ0LiBEaWZmaWN1bHRpZXMgYXJpc2UgYnkgZm9sbG93aW5nIHRoaXMKYXBwcm9hY2ggYmVjYXVzZSB0aGUgZmlyc3QgdHdvIGNvbHVtbnMgYW5kIGxhc3Qgcm93IGRvIG5vdCBoYXZlIGNvbXBhcmlzb24KcGl4ZWxzLiBUbyBzb2x2ZSB0aGUgcHJvYmxlbSwgdGhlc2UgYXJlYXMgdXNlIGEgZGlmZmVyZW50IGNvbXBhcmlzb24KZGlyZWN0aW9uLjwvcD4KPGRpdiBjbGFzcz0iZmlndXJlIj4KCTx0YWJsZT4KCTx0cj4KCSAgPHRkPjxpbWcgc3JjPSJpbWFnZXMvZW1ib3NzLmpwZyI+PGJyPk9yaWdpbmFsIEltYWdlPC90ZD4KCSAgPHRkPjxpbWcgc3JjPSJpbWFnZXMvZW1ib3NzXzEyNS5qcGciPjxicj5FbWJvc3M6IEdyYXkgbGV2ZWwgMTI1PC90ZD4KCSAgPHRkPjxpbWcgc3JjPSJpbWFnZXMvZW1ib3NzXzAuanBnIj48YnI+RW1ib3NzOiBHcmF5IGxldmVsIDA8L3RkPgoJPC90cj4JCgk8L3RhYmxlPgo8L2Rpdj4KPGgzPkZ1dHVyZSBJbXByb3ZlbWVudHM8L2gzPgo8cD5JbiB0aGUgZnV0dXJlLCB0aGUgY29tcGFyaXNvbiBkaXJlY3Rpb24gYW5kIGRpc3RhbmNlIHNob3VsZCBiZQpjb25maWd1cmFibGUgdG8gYWxsb3cgZm9yIGEgbW9yZSBjdXN0b21pemFibGUgZW1ib3NzLiBJbiBhZGRpdGlvbiwgdGhlCmVtYm9zc2VkIHJlc3VsdHMgc2hvdWxkIGJlIG1vcmUgdGhyZWUtZGltZW5zaW9uYWwgaW4gYXBwZWFyYW5jZSwgYXMKdGhleSBhcmUgaW4gZ3JhcGhpY3MgcGFja2FnZXMgbGlrZSBHSU1QLjwvcD4KPGgyPkF2ZXJhZ2UgQmx1ciBBbGdvcml0aG08L2gyPgo8cD5TZXZlcmFsIHR5cGVzIG9mIGJsdXIgZmlsdGVycyBleGlzdCBzdWNoIGFzIEdhdXNzaWFuIGJsdXIsIGF2ZXJhZ2UgYmx1ciwKYW5kIG1vdGlvbiBibHVyLiBUaGUgYXZlcmFnZSBibHVyIGFsZ29yaXRobSBpcyBleHBsb3JlZCBoZXJlIGJlY2F1c2Ugb2YgaXRzCiBmYXN0IHJ1biB0aW1lIGFuZCBzaW1wbGUgaW1wbGVtZW50YXRpb24uIFNpbWlsYXIgdG8gZW1ib3NzaW5nLCBhdmVyYWdlIApibHVycmluZyBpcyBhbiBhcmVhIGZpbHRlciCXdGhhdCBpcywgYSBmaWx0ZXJlZCBwaXhlbCBpcyBiYXNlZCBvbiBib3RoIHRoZQogb3JpZ2luYWwgYW5kIGl0cyBzdXJyb3VuZGluZyBwaXhlbHMgWzJdLiBBdmVyYWdlIGJsdXIgaXMgYWNoaWV2ZWQgYnkgCmF2ZXJhZ2luZyBhIHBpeGVsJ3MgUkdCIGludGVuc2l0aWVzIHdpdGggdGhlIGludGVuc2l0aWVzIG9mIHN1cnJvdW5kaW5nIApwaXhlbHMgd2l0aGluIGEgY2VydGFpbiBzcXVhcmUgcmFkaXVzIFsyXS48L3A+CjxoMz5JbXBsZW1lbnRhdGlvbjwvaDM+CjxwPlJlcGVhdGVkIGNhbGN1bGF0aW9ucyBjYW4gYmUgZWxpbWluYXRlZCBieSBwZXJmb3JtaW5nIHRoZSBhdmVyYWdlIGJsdXIKaW4gdHdvIHNlcGFyYXRlIHN0YWdlczogYSBob3Jpem9udGFsIGJsdXIgYW5kIHRoZW4gYSB2ZXJ0aWNhbCBibHVyIFszXS4gClNXVCdzIGRpcmVjdCBwYWxldHRlIEFQSSBzdXBwb3J0cyByZXRyaWV2aW5nIGFuIGVudGlyZSByb3cgb2YgcGl4ZWwgZGF0YSBhdApvbmNlLCBidXQgbm90IGFuIGVudGlyZSBjb2x1bW4uIEFzIGEgcmVzdWx0LCB0aGUgaW1wbGVtZW50YXRpb24gc2ltdWx0YW5lb3VzbHkKcGVyZm9ybXMgYSB2ZXJ0aWNhbCBibHVyIG9uIGFsbCBjb2x1bW5zIG9mIGEgcm93IHJhdGhlciB0aGFuIGFsbCByb3dzIG9mIGEKY29sdW1uLiBUaGlzIGFwcHJvYWNoIGltcHJvdmVzIG92ZXJhbGwgcGVyZm9ybWFuY2UgYW5kIHNwYWNlIGNvbXBsZXhpdHkgYnkgCnJlZHVjaW5nIHRoZSBudW1iZXIgb2Ygcm93cyB3aGljaCBtdXN0IGJlIGNhY2hlZCBkdXJpbmcgdGhlIHZlcnRpY2FsIGJsdXJyaW5nIApzdGFnZS48L3A+CjxkaXYgY2xhc3M9ImZpZ3VyZSI+Cgk8dGFibGU+Cgk8dHI+CgkgIDx0ZD48aW1nIHNyYz0iaW1hZ2VzL2JsdXIuanBnIj48YnI+T3JpZ2luYWwgSW1hZ2U8L3RkPgoJICA8dGQ+PGltZyBzcmM9ImltYWdlcy9ibHVyXzMuanBnIj48YnI+Qmx1cjogUmFkaXVzIDM8L3RkPgoJICA8dGQ+PGltZyBzcmM9ImltYWdlcy9ibHVyXzEwLmpwZyI+PGJyPkJsdXI6IFJhZGl1cyAxMDwvdGQ+Cgk8L3RyPgkKCTwvdGFibGU+CjwvZGl2Pgo8aDM+RnV0dXJlIEltcHJvdmVtZW50czwvaDM+CjxwPkF2ZXJhZ2UgYmx1ciBjYW4gYmUgaW1wcm92ZWQsIGF0IHRoZSBleHBlbnNlIG9mIHBlcmZvcm1hbmNlLCBieQpjb25zaWRlcmluZyBhIGNpcmN1bGFyIHJhZGl1cyBvZiBuZWlnaGJvcmluZyBwaXhlbHMgd2hlbiBibHVycmluZyBpbnN0ZWFkCm9mIGEgc3F1YXJlIHJhZGl1cy4gVGhpcyBhbHRlcmF0aW9uIHdvdWxkIGhlbHAgZWxpbWluYXRlIGhvcml6b250YWwgYW5kIAp2ZXJ0aWNhbCBhcnRpZmFjdHMgdGhhdCBjYW4gYmVjb21lIGFwcGFyZW50IGluIGJsdXJyZWQgaW1hZ2VzLCBlc3BlY2lhbGx5IGlmCnRoZXkgaW5jbHVkZSBib3JkZXJzIFsyXS4gU3VjaCBhIGNoYW5nZSBpbnRyb2R1Y2VzIG1hbnkgbmV3IGNvZGUKY29tcGxleGl0aWVzIGJlY2F1c2UgdGhlIGJsdXIgY2Fubm90IGJlIGNvbXBsZXRlZCBpbiBvbmUgYXZlcmFnaW5nIHBhc3MgcGVyCmRpcmVjdGlvbi4gCjxoMj5HbG93IEFsZ29yaXRobTwvaDI+CjxwPkluIG9yZGVyIHRvIGNyZWF0ZSBhIGdsb3dpbmcgdmlzdWFsIGVmZmVjdCBpbiBTV1QsIEkgY3JlYXRlZCBteSBvd24gY3VzdG9tCmFsZ29yaXRobS4gCkdsb3cgY2FuIGJlIGFjaGlldmVkIGJ5IGNyZWF0aW5nIGEgc29saWQgYm9yZGVyIGFyb3VuZCBhbiBpbWFnZSwgdGhlbgogdXNpbmcgYWxwaGEgCmJsZW5kaW5nIHRvIGRpZmZ1c2UgdGhlIGJvcmRlciBmcm9tIG9wYXF1ZSB0byB0cmFuc3BhcmVudC4gPC9wPgo8aDM+SW1wbGVtZW50YXRpb248L2gzPgo8cD5NeSBnbG93IGltcGxlbWVudGF0aW9uIGlzIGRlc2lnbmVkIHRvIGNyZWF0ZSBhIGdsb3cgYXJvdW5kIGEgcmVjdGFuZ3VsYXIgaW1hZ2UuCkZpcnN0LCBhIHNvbGlkIHJlY3Rhbmd1bGFyIGJvcmRlciBpcyBjcmVhdGVkIGFyb3VuZCB0aGUgaW1hZ2UuIFRoZSBib3JkZXIncyBhbHBoYQp2YWx1ZXMgCmFyZSBzZXQgYmFzZWQgb24gYSBsaW5lYXIgZnVuY3Rpb24gb2YgZGlzdGFuY2UgZnJvbSB0aGUgaW50ZXJuYWwgcmVjdGFuZ2xlJ3MKcGVyaW1ldGVyLiAKSW4gb3JkZXIgdG8gcHJldmVudCB0aGUgZ2xvdyBmcm9tIGJlY29taW5nIHRyYW5zcGFyZW50IHRvbyBxdWlja2x5LCBhbmQKdG8gYmV0dGVyIGhpZ2hsaWdodAogdGhlIGltYWdlLCBJIGludHJvZHVjZWQgYSBoaWdobGlnaHQgcmFkaXVzIHdoaWNoIGNyZWF0ZXMgYSBtb3JlCm9wYXF1ZSBib3JkZXIgCmRpcmVjdGx5IHN1cnJvdW5kaW5nIHRoZSBpbWFnZS4gCjwvcD4KPGRpdiBjbGFzcz0iZmlndXJlIj4KCTx0YWJsZT4KCTx0cj4KCSAgPHRkPjxpbWcgc3JjPSJpbWFnZXMvZ2xvdy5qcGciPjxicj5PcmlnaW5hbCBJbWFnZTwvdGQ+CgkgIDx0ZD48aW1nIHNyYz0iaW1hZ2VzL2dsb3dfMTUuanBnIj48YnI+R2xvdzogUmFkaXVzIDE1PC90ZD4KCSAgPHRkPjxpbWcgc3JjPSJpbWFnZXMvZ2xvd18zMC5qcGciPjxicj5HbG93OiBSYWRpdXMgMzA8L3RkPgoJPC90cj4JCgk8L3RhYmxlPgo8L2Rpdj4KPGgzPkZ1dHVyZSBJbXByb3ZlbWVudHM8L2gzPgo8cD5NeSBpbXBsZW1lbnRhdGlvbiBvZiBnbG93IGNvdWxkIGJlIGltcHJvdmVkIGJ5IHN1cHBvcnRpbmcgc2hhcGVzIG90aGVyIHRoYW4gcmVjdGFuZ2xlcy48L3A+CjxoMj5Ecm9wIFNoYWRvdyBBbGdvcml0aG08L2gyPgo8cD5BIGRyb3Agc2hhZG93IGlzIHNpbXBseSBhIHNwZWNpYWxpemVkIGdsb3cuIEJ5IGFsdGVyaW5nIHRoZSBnbG93IGFsZ29yaXRobSB0byBvbmx5IGdsb3cgb24KCnR3byBzaWRlcywgYW5kIHdpdGggc2xpZ2h0bHkgYWx0ZXJlZCBkaW1lbnNpb25zLCBhIGRyb3Agc2hhZG93IGVmZmVjdCBjYW4gYmUgYWNoaWV2ZWQuPC9wPgo8aDM+SW1wbGVtZW50YXRpb248L2gzPgo8ZGl2IGNsYXNzPSJmaWd1cmUiPgoJPHRhYmxlPgoJPHRyPgoJICA8dGQgc3R5bGU9InZlcnRpY2FsLWFsaWduOnRvcCI+PGltZyBzcmM9ImltYWdlcy9kcm9wc2hhZG93LmpwZyI+PGJyPjxkaXYgc3R5bGU9ImNhcHRpb24iPjxiPk9yaWdpbmFsIEltYWdlPC9iPjwvZGl2PjwvdGQ+CgkgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246dG9wIj48aW1nIHNyYz0iaW1hZ2VzL2Ryb3BzaGFkb3dfMTAuanBnIj48YnI+RHJvcCBTaGFkb3c6IFJhZGl1cyAxMDwvdGQ+CgkgIDx0ZCBzdHlsZT0idmVydGljYWwtYWxpZ246dG9wIj48aW1nIHNyYz0iaW1hZ2VzL2Ryb3BzaGFkb3dfMjAuanBnIj48YnI+RHJvcCBTaGFkb3c6IFJhZGl1cyAyMDwvdGQ+Cgk8L3RyPgkKCTwvdGFibGU+CjwvZGl2Pgo8aDM+RnV0dXJlIEltcHJvdmVtZW50czwvaDM+CjxwPkxpa2UgdGhlIGdsb3cgYWxnb3JpdGhtLCBkcm9wIHNoYWRvdyBjYW4gYmUgaW1wcm92ZWQgYnkgc3VwcG9ydGluZyBzaGFwZXMgb3RoZXIgdGhhbiByZWN0YW5nbGVzLgoKT25jZSBnbG93IGlzIGFsdGVyZWQgdG8gc3VwcG9ydCBzaGFwZXMsIGFuIGltcGxlbWVudGF0aW9uIGZvciBkcm9wIHNoYWRvdyBzaG91bGQgZWFzaWx5IGZvbGxvdy4gCkluIAphZGRpdGlvbiwgdGhlIGRpcmVjdGlvbiBvZiB0aGUgZHJvcCBzaGFkb3cgc2hvdWxkIGJlIGNvbmZpZ3VyYWJsZS4KPC9wPgo8aDI+U3VtbWFyeTwvaDI+CjxwPlRoZSBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlc2UgZm91ciBhbGdvcml0aG1zIGNhbiBiZSBidWlsdCB1cG9uIGFuZCBldmVudHVhbGx5IHVzZWQgdG8gcHJvdmlkZQoKYWR2YW5jZWQgZ3JhcGhpY2FsIGVmZmVjdHMgZm9yIFNXVC4gVGhleSBzaG91bGQgYWxsb3cgZm9yIG1vcmUgY3VzdG9taXphdGlvbiBhbmQgZGlzcGxheSBzZWFtbGVzc2x5CgpvbiBvciBhcm91bmQgYW55IHNoYXBlLiBJbiBhZGRpdGlvbiwgdGhlIG9yaWdpbmFsIHRyYW5zcGFyZW5jeSBpbmZvcm1hdGlvbiBvZiBpbWFnZXMgc2hvdWxkIGJlCmNvbnNpZGVyZWQgd2hlbiBhcHBseWluZyBpbWFnZSBlZmZlY3RzLgo8L3A+CjxoMiBpZD0ic291cmNlIj5Tb3VyY2UgQ29kZSBhbmQgRWZmZWN0cyBUb29sPC9oMj4KPHA+U291cmNlIGNvZGUgZm9yIGVhY2ggZWZmZWN0IGFsZ29yaXRobSBpcwppbmNsdWRlZCBpbiB0aGUgZm9sbG93aW5nIHBhY2thZ2UsIGFsb25nIHdpdGggc291cmNlIGZvcgphIEdVSSB0ZXN0IGFwcGxpY2F0aW9uLjwvcD4KPHA+PGEgaHJlZj0iaW1hZ2VFZmZlY3RzLnppcCI+RG93bmxvYWQgU291cmNlICh6aXApPC9hPjwvcD4KPGJyPgo8ZGl2IGNsYXNzPSJmaWd1cmUiPgo8dGFibGU+Cgk8dHI+CiAgCSAgPHRkPjxpbWcgc3JjPSJpbWFnZXMvc2NyZWVuc2hvdC5qcGciPjxicj5JbWFnZSBFZmZlY3RzIEdVSTwvdGQ+DQk8L3RyPgkKPC90YWJsZT4KPC9kaXY+CjxoMj5BY2tub3dsZWRnZW1lbnRzPC9oMj4KPHA+SSB3b3VsZCBsaWtlIHRvIHRoYW5rIHRoZSBlbnRpcmUgU1dUIHRlYW0gZm9yIGNyZWF0aW5nIGEgZnVuLCBlYXN5Z29pbmcgd29yayBlbnZpcm9ubWVudCwgd2l0aCAKc3BlY2lhbCB0aGFua3MgdG8gbXkKbWVudG9yLCBCb2dkYW4gR2hlb3JnaGUsIGZvciBoaXMgb25nb2luZyBzdXBwb3J0LCBlbmNvdXJhZ2VtZW50LCBhbmQgcGF0aWVuY2UuIApNeSBzdWNjZXNzIChhbmQgdGhpcyBhcnRpY2xlKSAKd291bGQgbm90IGJlIHBvc3NpYmxlIHdpdGhvdXQgaGlzIGRpcmVjdGlvbi4KPC9wPgo8aDI+UmVmZXJlbmNlczwvaDI+CjxwcmU+WzFdIEphdmEgVGVjaDogSW1hZ2UgRW1ib3NzaW5nOiBodHRwOi8vdG9kYXkuamF2YS5uZXQvcHViL2EvdG9kYXkvMjAwNS8xMi8wOC9pbWFnZS1lbWJvc3NpbmcuaHRtbApbMl0gRmlsdGVyOiBCbHVyOiBodHRwOi8vd3d3Lmphc29ud2FsdG1hbi5jb20vdGhlc2lzL2ZpbHRlci1ibHVyLmh0bWwKWzNdIEJsdXI6IGh0dHA6Ly93d3cuYmxhY2twYXduLmNvbS90ZXh0cy9ibHVyL2RlZmF1bHQuaHRtbAo8L3ByZT4KPC9ib2R5Pgo8L2h0bWw+Cg==