The top 45 must-see movies of 2025

2025 movies
Share this Article:

Looking ahead to 2025, here are the 45 films of all genres – from horror to comedy to drama and more – we reckon you really shouldn’t miss. Special mentions: Firstly, the movies you won’t be seeing, but want to namecheck. Our rules were that we didn’t want to include films that had screened, but ... The top 45 must-see movies of 2025

CjxwPjxzdHJvbmc+TG9va2luZyBhaGVhZCB0byAyMDI1LCBoZXJlIGFyZSB0aGUgNDUgZmlsbXMgb2YgYWxsIGdlbnJlcyAmIzgyMTE7IGZyb20gaG9ycm9yIHRvIGNvbWVkeSB0byBkcmFtYSBhbmQgbW9yZSAmIzgyMTE7IHdlIHJlY2tvbiB5b3UgcmVhbGx5IHNob3VsZG4mIzgyMTc7dCBtaXNzLjwvc3Ryb25nPjwvcD4KCgoKPGhyIGNsYXNzPSJ3cC1ibG9jay1zZXBhcmF0b3IgaGFzLWFscGhhLWNoYW5uZWwtb3BhY2l0eSIvPgoKCgo8cD48c3Ryb25nPlNwZWNpYWwgbWVudGlvbnM6PC9zdHJvbmc+PC9wPgoKCgo8cD5GaXJzdGx5LCB0aGUgbW92aWVzIHlvdSB3b27igJl0IGJlIHNlZWluZywgYnV0IHdhbnQgdG8gbmFtZWNoZWNrLiBPdXIgcnVsZXMgd2VyZSB0aGF0IHdlIGRpZG7igJl0IHdhbnQgdG8gaW5jbHVkZSBmaWxtcyB0aGF0IGhhZCBzY3JlZW5lZCwgYnV0IG5vdCBtYWRlIGl0IHRvIHRoZSBVSyB5ZXQgKHdpdGggdGhlIGV4Y2VwdGlvbiBvZiBCcml0aXNoIGZpbG1zKS4gSGVuY2UgJiM4MjExOyBzb3JyeSBLZXZpbiAmIzgyMTE7IHRoZSBuZXh0IDxlbT5Ib3Jpem9uPC9lbT4gZmlsbSBpc27igJl0IG9uIHRoZSBsaXN0LiBUaGVyZeKAmXMgc3R1ZmYgd2XigJlyZSB3YXRjaGluZyBmb3IgcmVsZWFzZSBkYXRlcyB0b286IDxlbT5BYm92ZSBUaGUgQmVsb3c8L2VtPiwgPGVtPk1vdGhlcuKAmXMgUHJpZGU8L2VtPiwgPGVtPkFsbCBPZiBZb3U8L2VtPiwgYW5kIHN1Y2ggbGlrZS4gV2UgYWNrbm93bGVkZ2UgdG9vIHRoYXQgdGhlcmXigJlzIGEgTWljaGFlbCBKYWNrc29uIGJpb3BpYyB0aGF0IHlvdSB3b27igJl0IGZpbmQgYmVsb3cuIFBsdXMgc3VwZXJoZXJvIGZpbG1zIHRoYXQgZG9u4oCZdCByZWFsbHkgbmVlZCBvdXIgaGVscCwgc28gd2UgbGltaXRlZCBvdXJzZWx2ZXMgdG8gb25lIG9yIHR3byBvZiB0aG9zZS48L3A+CgoKCjxwPkluc3RlYWQsIGhlcmXigJlzIHRoZSA0NSBmaWxtcyBmaXJtbHkgb24gb3VyIHJhZGFyIGZvciAyMDI14oCmPC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTQ1LWF2YXRhci1maXJlLWFuZC1hc2giPjxzdHJvbmc+NDU8L3N0cm9uZz4uIDxzdHJvbmc+QXZhdGFyOiBGaXJlIEFuZCBBc2ggPC9zdHJvbmc+PC9oMj4KCgoKPHA+SnVzdCB3aGVuIHlvdSB0aG91Z2h0IGl0IHdhcyBzYWZlIHRvIGdvIGJhY2sgdG8gUGFuZG9yYSwgSmFtZXMgQ2FtZXJvbiByZXR1cm5zIHdpdGggdGhlIGNvbnRpbnVhdGlvbiBvZiB3aGF0IGlzIHF1aWNrbHkgdHVybmluZyBpbnRvIHRoZSBtb3N0IHByb2ZpdGFibGUgZmlsbSBmcmFuY2hpc2Ugc2luY2Ugc29tZW9uZSB3b3JrZWQgb3V0IHlvdSBjYW4gbWFrZSAkNy43bSBmcm9tIGFuIG91dC1vZi1jb3B5cmlnaHQgV2lubmllIFRoZSBQb29oIHNsYXNoZXIuIFRoaXMgdGltZSwgdGhlIFN1bGx5IGNyZXcgc2F5IGhlbGxvIHRvIHRoZSDigJhBc2ggUGVvcGxl4oCZLCBhIHNvY2lldHkgb2YgTmHigJl2aSB3aG8gbWlnaHQgYmUgYSBiaXQgbGVzcyBjaGVlcmZ1bCB0aGFuIHRoZSB2YXJpb3VzIHNoYWRlcyBvZiBibHVlIHdl4oCZdmUgZW5jb3VudGVyZWQgc28gZmFyLCBhcyB0aG9zZSBwZXNreSBodW1hbnMgY29udGludWUgdG8gZ2V0IHVwIHRvIGFsbCBzb3J0cyBvZiBtaXNjaGllZi4gV2lsbCB0aGVyZSBiZSBtb3JlIHNwYWNlIHdoYWxlcz8gV2UgaG9wZSB0aGVyZeKAmWxsIGJlIG1vcmUgc3BhY2Ugd2hhbGVzLiAmIzgyMTE7IEphbWVzIEhhcnZleTwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogMTl0aCBEZWNlbWJlcjwvZW0+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTQ0LXRoZS10aHVyc2RheS1tdXJkZXItY2x1YiI+PHN0cm9uZz40NC4gVGhlIFRodXJzZGF5IE11cmRlciBDbHViPC9zdHJvbmc+PC9oMj4KCgoKPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vc3BhY2VzLmZpbG1zdG9yaWVzLmNvLnVrL3VwbG9hZHMvMjAyNC8wNS9UaGUtVGh1cnNkYXktTXVyZGVyLUNsdWIuanBnIiBhbHQ9IlRoZSBUaHVyc2RheSBNdXJkZXIgQ2x1YiIgY2xhc3M9IndwLWltYWdlLTcxNDE1Ii8+PC9maWd1cmU+CgoKCjxwPk11cmRlciBteXN0ZXJpZXMgYXJlIGJhY2sgaW4gdm9ndWUgb2YgbGF0ZSAoc2VlIHNlY29uZCBLbml2ZXMgT3V0IHNlcXVlbCA8ZW0+V2FrZSBVcCBEZWFkIE1hbjwvZW0+IGxhdGVyIGluIHRoaXMgbGlzdCksIGFuZCBoZXJlIGNvbWVzIGEgcGFydGljdWxhcmx5IGZ1bi1zb3VuZGluZyBvbmUuIEFkYXB0ZWQgZnJvbSBSaWNoYXJkIE9zbWFu4oCZcyBiZXN0LXNlbGxpbmcgbm92ZWwsIDxlbT5UaGUgVGh1cnNkYXkgTXVyZGVyIENsdWI8L2VtPiBpcyBhYm91dCBhIGJ1bmNoIG9mIHdlbGwtdG8tZG8gcmV0aXJlbWVudCBob21lIHJlc2lkZW50cyB3aG8gZW5kIHVwIHRyeWluZyB0byBzb2x2ZSB0aGUgbXlzdGVyaW91cyBkZWF0aCBvZiBhIGxvY2FsIHByb3BlcnR5IGRldmVsb3Blci4gSXTigJlzIHdyaXR0ZW4gYW5kIGRpcmVjdGVkIGJ5IENocmlzIENvbHVtYnVzLCBmZWF0dXJlcyBCZW4gS2luZ3NsZXksIEhlbGVuIE1pcnJlbiBhbmQgUGllcmNlIEJyb3NuYW4gYW1vbmcgaXRzIGNhc3QsIGFuZCBpdOKAmXMgaGVhZGluZyB0byBOZXRmbGl4LiBFeHBlY3QgYSB0aG9yb3VnaGx5IHplc3R5IGV2ZW5pbmfigJlzIGVudGVydGFpbm1lbnQuICYjODIxMTsgUnlhbiBMYW1iaWU8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IFRCQyAyMDI1PC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtNDMtZGVlcC1jb3ZlciI+PHN0cm9uZz40My4gRGVlcCBDb3Zlcjwvc3Ryb25nPjwvaDI+CgoKCjxwPkEgYnVuY2ggb2YgYWN0b3JzIGFyZSBoaXJlZCBieSB0aGUgcG9saWNlIHRvIGltcHJvdmlzZSB0aGVpciB3YXkgaW50byBnYW5nbGFuZCBMb25kb24gaW4gYW4gdXBjb21pbmcgdGhyaWxsZXIgc3RhcnJpbmcgQnJ5Y2UgRGFsbGFzIEhvd2FyZCwgT3JsYW5kbyBCbG9vbSwgSWFuIE1jU2hhbmUsIFBhZGR5IENvbnNpZGluZSwgTmljayBNb2hhbW1lZCBhbmQgU2VhbiBCZWFuLiBJdOKAmXMgZGlyZWN0ZWQgYnkgVG9tIEtpbmdzbGV5LCB3aG/igJlzIHBlcmhhcHMgYmVzdCBrbm93biBmb3IgaGlzIHdvcmsgb24gc3VjaCBoaXQgVFYgY29tZWRpZXMgYXM8ZW0+IFN0YXRoIExldHMgRmxhdHM8L2VtPiBhbmQgPGVtPkdob3N0czwvZW0+LiBJbnRyaWd1aW5nbHksIGl0cyBzY3JpcHQgaXMgY28td3JpdHRlbiBieSBDb2xpbiBUcmV2b3Jyb3csIHdobyBtYWRlIHRoZSBjaGFybWluZyBjb21lZHkgPGVtPlNhZmV0eSBOb3QgR3VhcmFudGVlZCA8L2VtPmJlZm9yZSBoZSBnb3Qgc3Vja2VkIGludG8gdGhlIGJsb2NrYnVzdGVyIG1hY2hpbmUgd2l0aCB0aGUgSnVyYXNzaWMgV29ybGQgbW92aWVzLiBXaWxsPGVtPiBEZWVwIENvdmVyIDwvZW0+YmUgdGhpcyB5ZWFy4oCZcyA8ZW0+SGl0IE1hbjwvZW0+ICYjODIxMTsgYW5vdGhlciBjb21lZHkgdGhyaWxsZXIgYWJvdXQgdW5kZXJjb3ZlciB3b3JrPyBObyBpZGVhLiBXZSBhcmVu4oCZdCBwc3ljaGljLiBXaHkgYXJlIHdlIGFza2luZyBvdXJzZWx2ZXMgdGhlc2UgcXVlc3Rpb25zPyBTaWdoLiAmIzgyMTE7IFJMPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiBUQkM8L2VtPjwvcD4KCgoKPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC00Mi1hLXdvcmtpbmctbWFuLWFuZC1tdXRpbnkiPjxzdHJvbmc+NDIuIEEgV29ya2luZyBNYW4gYW5kIE11dGlueTwvc3Ryb25nPjwvaDI+CgoKCjxwPlRha2UgeW91ciBwaWNrLCBjaHVtcywgVHdvIEphc29uIFN0YXRoYW0gYWN0aW9uIGZpbG1zIGFyZSBvbiB0aGUgc2xhdGUgZm9yIDIwMjUsIGFuZCBpdOKAmXMgaGFyZCB0byBzcGxpdC4gRmlyc3RseSwgVGhlIFN0YXRoYW0gcmV1am5pdGVzIHdpdGggPGVtPlRoZSBCZWVrZWVwZXI8L2VtPiBkaXJlY3RvciB0byBzaG9vdCBhbiBvbGQgU3lsdmVzdGVyIFN0YWxsb25lIHNjcmlwdC4gVGhlIHJlc3VsdGFudCBmaWxtIGlzIDxlbT5MZXZvbuKAmXMgVHJhZGU8L2VtPiAmIzgyMTE7IG5vdyByZXRpdGxlZCA8ZW0+PGEgaHJlZj0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vd2F0Y2g/dj16VGJnTkM0Mk9wcyI+QSBXb3JraW5nIE1hbjwvYT48L2VtPiAmIzgyMTE7ICBhbmQgdGhhdOKAmXMgZHVlIGluIE1hcmNoLiBMYXRlciBpbiAyMDI1IG1lYW53aGlsZSBpcyA8ZW0+TXV0aW55PC9lbT4sIHNob3QgaW4gdGhlIFVLIHdpdGggPGVtPlBsYW5lPC9lbT4gZGlyZWN0b3IgSmVhbi1GcmFuw6dvaXMgUmljaGV0IGF0IHRoZSBjb250cm9scy4gQm90aCB3aWxsIGJlIHVubWlzc2FibGUuIEJvdGggd2lsbCBoYXZlIHRvIGdvIHNvbWUgdG8gbWF0Y2ggdGhlIHNoZWVyIGVudGVydGFpbm1lbnQgbGV2ZWxzIG9mIDxlbT5UaGUgQmVla2VlcGVyPC9lbT4uICYjODIxMTsgU2ltb24gQnJldzwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZXM6IDI4dGggTWFyY2ggYW5kIFRCQyAyMDI1PC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtNDEtZmFudGFzdGljLWZvdXIiPjxzdHJvbmc+NDEuIEZhbnRhc3RpYyBGb3VyPC9zdHJvbmc+PC9oMj4KCgoKPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vc3BhY2VzLmZpbG1zdG9yaWVzLmNvLnVrL3VwbG9hZHMvMjAyNC8wMi9tY3UtZmFudGFzdGljLWZvdXItMTcwNzkyNjgyNDk2MC5wbmciIGFsdD0ibWFydmVsIGZhbnRhc3RpYyBmb3VyIiBjbGFzcz0id3AtaW1hZ2UtNjQ0ODMiLz48L2ZpZ3VyZT4KCgoKPHA+V2XigJlsbCBiZSBob25lc3QsIHRoaXMgb25lIGNvbXBsZXRlbHkgdG9vayB1cyBieSBzdXJwcmlzZS4gRXZlbiB3ZSwgaHVnZSBXZXMgQW5kZXJzb24gZmFucyBhbmQgY2luZS1hc3RzIHRoYXQgd2UgYXJlLCBoYWQgbm8gaWRlYSB0aGVyZeKAmWQgYWxyZWFkeSBiZWVuIGEgZm9sbG93LXVwIHRvIDxlbT5GYW50YXN0aWMgTXIgRm94PC9lbT4sIGxldCBhbG9uZSB0d28gb2YgdGhlbS4gV2XigJl2ZSBnb3QgcGxlbnR5IG9mIHRpbWUgdG8gY2F0Y2ggdXAgdGhvdWdoLCBiZWNhdXNlIHRoZSBmb3VydGggaW5zdGFsbG1lbnQgaW4gdGhlIHN0b3AtbW90aW9uIGZyYW5jaGnigKYgV2hhdCB3YXMgdGhhdD8gSXTigJlzIGEgTWFydmVsIG1vdmllPyBCYXNlZCBvbiB0aGUgbW9zdCBmYW1vdXMgZmFtaWx5IGluIGNvbWljIGJvb2sgaGlzdG9yeT8gSXQgbWlnaHQgbm90IGhhdmUgYW55dGhpbmcgdG8gZG8gd2l0aCBmb3hlcz8gT2guIEl0IGRvZXMgaGF2ZSBhbiBpbnRyaWd1aW5nLWxvb2tpbmcgc2l4dGllcyBzZXR0aW5nIGFuZCBhIHdob2xlIGxvYWQgb2YgZ29vZC13aWxsIGJlaGluZCBpdCwgdGhvdWdoLCBzbyBtaWdodCBiZSB3b3J0aCBhIHdhdGNoIHJlZ2FyZGxlc3MuICYjODIxMTsgSkg8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IDI1dGggSnVseTwvZW0+PC9wPgoKCgo8cCBjbGFzcz0iaGFzLXRleHQtYWxpZ24tY2VudGVyIj48c3Ryb25nPlJlYWQgbW9yZTo8L3N0cm9uZz4gPGEgaHJlZj0iaHR0cHM6Ly9zdGFnaW5nLmZpbG1zdG9yaWVzLmNvLnVrL25ld3MvdGhlLWZhbnRhc3RpYy1mb3VyLWZpcnN0LXN0ZXBzLXRyYWlsZXItbWFydmVsLXN3aW5ncy1mb3ItdGhlLXNpeHRpZXMvIj5UaGUgRmFudGFzdGljIEZvdXI6IEZpcnN0IFN0ZXBzIHRyYWlsZXIgfCBNYXJ2ZWwgc3dpbmdzIGZvciB0aGUgc2l4dGllczwvYT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtNDAtdGhlLW5ha2VkLWd1bi1uYnNwIj48c3Ryb25nPjQwLiBUaGUgTmFrZWQgR3VuJm5ic3A7PC9zdHJvbmc+PC9oMj4KCgoKPHA+UGluY2ggb2Ygc2FsdCwgb2J2aW91c2x5LCBidXQgZWFybHkgd29yZCBvZiB0ZXN0IHNjcmVlbmluZ3Mgc3VnZ2VzdHMgdGhlIHJlYm9vdCBvZiA8ZW0+VGhlIE5ha2VkIEd1bjwvZW0+IG1pZ2h0IGFjdHVhbGx5IGJlIGhhbGYgZGVjZW50LiBMaWFtIE5lZXNvbiB0YWtlcyB0aGUgbGVhZCByb2xlLCBidW1ibGluZyB3aGVyZSBMZXNsaWUgTmllc2VuIGJ1bWJsZWQgYmVmb3JlLiBXaGF0IGxpZnRzIHRoaXMgaXMgdGhlIHRlYW0gYmVoaW5kIGl0OiBkaXJlY3RvciBBa2l2YSBTY2hhZmVyIG1hZGUgdGhlIHN1YmxpbWUgPGVtPlBvcHN0YXI6IE5ldmVyIFN0b3AgTmV2ZXIgU3RvcHBpbmc8L2VtPiwgb25lIG9mIHRoZSBmbGF0LW91dCBmdW5uaWVzdCBmaWxtcyBvZiB0aGUgbGFzdCBkZWNhZGUgb3Igc28uIEhpcyA8ZW0+Q2hpcCDigJhuIERhbGU6IFJlc2N1ZSBSYW5nZXJzPC9lbT4gbW92aWUgdG9vIHdhcyBhIGh1Z2Ugc3VycHJpc2UuIFdyaXRlIGhpcyA8ZW0+TmFrZWQgR3VuIDwvZW0+b2ZmIGF0IHlvdXIgcGVyaWwuICYjODIxMTsgU0I8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IDFzdCBBdWd1c3Q8L2VtPjwvcD4KCgoKPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC0zOS1mb29scyI+PHN0cm9uZz4zOS4gRm9vbHM8L3N0cm9uZz48L2gyPgoKCgo8cD5HdXkgSmVua2luIGhhcyBwbGVudHkgb2YgZm9ybSBpbiBjb21lZHksIG5vdCBsZWFzdCBoaXMgd29yayBpbiA8ZW0+RHJvcCBUaGUgRGVhZCBEb25rZXk8L2VtPiBhbmQgPGVtPk91dG51bWJlcmVkPC9lbT4uIEhl4oCZcyB3cml0dGVuIGFuZCBkaXJlY3RlZCBhIG5ldyBjb21lZHkgbm93IGJ5IHRoZSBuYW1lIG9mIDxlbT5Gb29sczwvZW0+LCB3aGljaCBzZWVzIEthcmVuIEdpbGxhbiBpbiB0aGUgcm9sZSBvZiBRdWVlbiBNYXJ5IEkuIEFsb25nc2lkZSBKaW0gQnJvYWRiZW50LCBQYXRzeSBGZXJyYW4gYW5kIEJyZW5kYSBCbGV0aHluLCA8ZW0+Rm9vbHM8L2VtPiBpcyBmbHlpbmcgYSBiaXQgdW5kZXIgdGhlIHJhZGFyIGF0IHRoZSBtb21lbnQsIGJ1dCBmcm9tIHRoZSBvdXRzaWRlIGxvb2tpbmcgaW4sIHRoaXMgaGFzIHJlYWwgcGVkaWdyZWUgdG8gaXQuICYjODIxMTsgU0I8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IFRCQzwvZW0+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTM4LXpvb3Ryb3BvbGlzLTIiPjxzdHJvbmc+MzguIFpvb3Ryb3BvbGlzIDI8L3N0cm9uZz48L2gyPgoKCgo8cD5JdOKAmXMgYSBsaXR0bGUgZGlzaGVhcnRlbmluZyB0aGF0IERpc25leSBhbmQgUGl4YXIgYXJlIG1vc3RseSBmb2N1c2luZyBvbiBzZXF1ZWxzLCBidXQgd2hvIHdvdWxkbuKAmXQgd2FudCBhIHNlcXVlbCB0byAyMDE24oCZcyA8ZW0+Wm9vdHJvcG9saXM8L2VtPj8gR2lubmlmZXIgR29vZHdpbiB2b2ljZWQgYSBidW5ueSBkcmVhbWluZyBvZiBiZWNvbWluZyBhIHBvbGljZSBvZmZpY2VyIHdoaWxlIEphc29uIEJhdGVtYW4gbGVudCBoaXMgdm9pY2UgZm9yIGEgaHVzdGxpbmcgZm94IGFzIHRoZXkgd2VudCBhYm91dCBzb2x2aW5nIGEgY2FzZSBpbnZvbHZpbmcgcHJlZGF0b3J5IGFuaW1hbHMgYmVjb21pbmfigKYgd2VsbCwgcHJlZGF0b3JzLiBObyBuZXdzIG9uIHdoYXQgdGhlIHNlcXVlbCBtaWdodCBiZSBhYm91dCwgYnV0IHdl4oCZcmUgdmVyeSBleGNpdGVkIHRvIHJldHVybiB0byBab290cm9wb2xpcy4gJiM4MjExOyBNTDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogMjZ0aCBOb3ZlbWJlcjwvZW0+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTM3LWZhY2toYW0taGFsbCI+PHN0cm9uZz4zNy4gRmFja2hhbSBIYWxsPC9zdHJvbmc+PC9oMj4KCgoKPHA+VGhlIGZhY3QgdGhhdCA8ZW0+RmFja2hhbSBIYWxsPC9lbT4gaXMgY28td3JpdHRlbiBieSBKaW1teSBDYXJyIGlzIHdoYXTigJlzIGdpdmVuIHRoaXMgdXBjb21pbmcgQnJpdGlzaCBjb21lZHkgc29tZSBwcm9maWxlIHNvIGZhci4gRmlsbWVkIGluIHRoZSBub3J0aCBvZiBFbmdsYW5kLCBpbiBhIHllYXIgd2hlbiB0aGUgdGhpcmQgYW5kIGZpbmFsIDxlbT5Eb3dudG9uIEFiYmV5PC9lbT4gbW92aWUgbGFuZHMsIDxlbT5GYWNraGFtIEhhbGw8L2VtPiBpcyBnaXZpbmcgdGhlIHBlcmlvZCBkcmFtYSB0aGUgc3Bvb2YgdHJlYXRtZW50LiBCcml0aXNoIGNpbmVtYSBoYXMgZG9uZSB0aGlzIGJlZm9yZSwgd2l0aCA8ZW0+U3RpZmYgVXBwZXIgTGlwczwvZW0+LCBhbmQgdGhlcmXigJlzIHBsZW50eSB0byBhaW0gYXQuIEppbSBP4oCZSGFubG9uIGlzIGRpcmVjdGluZywgd2l0aCBhIGNhc3QgaW5jbHVkaW5nIFRob21hc2luIE1jS2VuemllLCBIZXJvIEZpZW5uZXMtVGlmZmluLCBLYXRoZXJpbmUgV2F0ZXJzdG9uIGFuZCBFbW1hIExhaXJkICYjODIxMTsgU0I8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IFRCQzwvZW0+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTM2LWdlcmFyZC1idXRsZXIiPjxzdHJvbmc+MzYuIEdlcmFyZCBCdXRsZXI8L3N0cm9uZz48L2gyPgoKCgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1pbWFnZSBzaXplLWZ1bGwiPjxpbWcgc3JjPSJodHRwczovL3NwYWNlcy5maWxtc3Rvcmllcy5jby51ay91cGxvYWRzLzIwMjAvMTEvZ2VyYXJkLWJ1dGxlci00LmpwZyIgYWx0PSJHZXJhcmQgQnV0bGVyIiBjbGFzcz0id3AtaW1hZ2UtMTU1ODkiLz48L2ZpZ3VyZT4KCgoKPHA+SG93IGRvIHlvdSBzZXBhcmF0ZSBhbGwgb2YgdGhlc2U/IFRoZSBtaWdodHkgQnV0bGVyIGhhcyBhIHBhaXIgb2Ygc2VxdWVscyB0byByZWFsbHkgZ29vZCBtb3ZpZXMgY29taW5nIG91dCBpbiAyMDI1LiA8ZW0+RGVuIE9mIFRoaWV2ZXMgMjwvZW0+IGtpY2tzIHRoZSB5ZWFyIG9mZiwgYSBmb2xsb3ctb24gdG8gdGhlIGh1Z2VseSBlbmpveWFibGUgaGVpc3QgdGhyaWxsZXIgb3JpZ2luYWwuIEFuZCB0aGVuIGEgcmVhbGx5IHN0cm9uZyAyMDIwIHN1cnByaXNlIHdhcyA8ZW0+R3JlZW5sYW5kPC9lbT4sIHRoYXQgc2tpcHBlZCBjaW5lbWFzIGR1ZSB0byBwYW5kZW1pYy15IHN0dWZmLCBidXQgcGVyZm9ybWVkIHdlbGwgZW5vdWdoIGVsc2V3aGVyZSB0byBnZXQgYSBzZXF1ZWwuIFRoYXQgdG9vIGFycml2ZXMgdGhpcyB5ZWFyLiBQbHVzISBHZXJhcmQgaW4gdGhlIGZsZXNoIGFwcGVhcnMgaW4gdGhlIGxpdmUgYWN0aW9uIDxlbT5Ib3cgVG8gVHJhaW4gWW91ciBEcmFnb24gPC9lbT5hcyB3ZWxsLiA8ZW0+R2Vvc3Rvcm0gMjwvZW0+IG5leHQgcGxlYXNlLCBHZXouICYjODIxMTsgU0I8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGVzOiAxMHRoIEphbnVhcnksIFRCQyAyMDI1IGFuZCAxM3RoIEp1bmU8L2VtPjwvcD4KCgoKPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC0zNS10aGUtYmFsbGFkLW9mLXdhbGxpcy1pc2xhbmQiPjxzdHJvbmc+MzUuIFRoZSBCYWxsYWQgT2YgV2FsbGlzIElzbGFuZDwvc3Ryb25nPjwvaDI+CgoKCjxwPkhlcmXigJlzIGEgQnJpdGlzaCBjb21lZHkgYWJvdXQgYSBkcmVhbSBtdXNpYyBnaWcgZ29pbmcgdmVyeSwgdmVyeSB3cm9uZy4gV2lzZWx5IGZvbGxvd2luZyB0aGUgaW5kaWUgbW92aWUgcGF0aCBhbmQgc2V0dGluZyB0aGUgc3Rvcnkgb24gYSBwcml2YXRlIGlzbGFuZC4gVGhhdOKAmXMgd2hlcmUgYSBsb3R0ZXJ5IHdpbm5lciBib29rcyBoaXMgZmF2b3VyaXRlIG11c2ljaWFuICYjODIxMTsgd2hvLCBlciwgaGUgb25jZSBoYWQgYSByZWxhdGlvbnNoaXAgd2l0aCAmIzgyMTE7IGZvciBhIHByaXZhdGUgY29uY2VydC4gVGhlbiB0aGUgd2VhdGhlciBoaXRzLiBUaW0gS2V5IGFuZCBUb20gQmFzZGVuIHdyb3RlIHRoZSBzY3JpcHQsIHdpdGggdGhlIHBhaXIgbGluaW5nIHVwIGFsb25nc2lkZSBDYXJleSBNdWxsaWdhbiBpbiB0aGUgY2FzdC4gSmFtZXMgR3JpZmZpdGhzIGRpcmVjdHMuICYjODIxMTsgU0I8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IDl0aCBNYXk8L2VtPjwvcD4KCgoKPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2stZW1iZWQgaXMtdHlwZS12aWRlbyBpcy1wcm92aWRlci15b3V0dWJlIHdwLWJsb2NrLWVtYmVkLXlvdXR1YmUgd3AtZW1iZWQtYXNwZWN0LTE2LTkgd3AtaGFzLWFzcGVjdC1yYXRpbyI+PGRpdiBjbGFzcz0id3AtYmxvY2stZW1iZWRfX3dyYXBwZXIiPgo8aWZyYW1lIHRpdGxlPSJUSEUgQkFMTEFEIE9GIFdBTExJUyBJU0xBTkQgLSBPZmZpY2lhbCBUcmFpbGVyIFtIRF0gLSBPbmx5IGluIFRoZWF0ZXJzIE1hcmNoIDI4IiB3aWR0aD0iMTc3OCIgaGVpZ2h0PSIxMDAwIiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL0hUaS1lMjB5Vk5zP2ZlYXR1cmU9b2VtYmVkIiBmcmFtZWJvcmRlcj0iMCIgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmU7IHdlYi1zaGFyZSIgcmVmZXJyZXJwb2xpY3k9InN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4KPC9kaXY+PC9maWd1cmU+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMzQtZWxpbyI+PHN0cm9uZz4zNC4gRWxpbzwvc3Ryb25nPjwvaDI+CgoKCjxwPkEgbmV3IFBpeGFyIGZpbG0gZmVlbHMgYSBiaXQgb2YgYW4gZXZlbnQgYW5kPGVtPiBFbGlvPC9lbT4gaXMgbm8gZXhjZXB0aW9uLiBFbGlvIGlzIGEga2lkIHdobyBsb3ZlcyBhbGllbnMgYW5kIGlzIGFjdGl2ZWx5IHRyeWluZyB0byBnZXQga2lkbmFwcGVkIGJ5IHRob3NlLiBIaXMgZHJlYW0gY29tZXMgdHJ1ZSBhbmQgaGXigJlzIG9mZiBvbiBhbiBpbnRlcmdhbGFjdGljIGFkdmVudHVyZSBhZnRlciBiZWluZyBtaXN0YWtlbiBhcyBFYXJ0aOKAmXMgbGVhZGVyLiBIb25lc3RseSwgYXQgdGltZXMgcG9pbnQsIHdlIGZpcm1seSBiZWxpZXZlIEVsaW8gd291bGQgYmUgYSBiZXR0ZXIgbGVhZGVyIHRoYW4gd2hhdCB3ZeKAmXZlIGdvdCBub3cuIDxlbT5UdXJuaW5nIFJlZOKAmXMgPC9lbT5Eb21lZSBTaGkgaXMgY28tZGlyZWN0aW5nIHdpdGggTWFkZWxpbmUgU2hhcmFmaWFuIGFuZCA8ZW0+Q29jb+KAmXMgPC9lbT5BZHJpYW4gTW9saW5hLiAmIzgyMTE7IE1MPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiAxM3RoIEp1bmU8L2VtPjwvcD4KCgoKPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC0zMy10aW1lLXRyYXZlbC1pcy1kYW5nZXJvdXMiPjxzdHJvbmc+MzMuIFRpbWUgVHJhdmVsIElzIERhbmdlcm91czwvc3Ryb25nPjwvaDI+CgoKCjxwPlRoZXJl4oCZcyBubyBhcmd1aW5nIHdpdGggdGhhdCB0aXRsZSwgaXMgdGhlcmU/IFRpbWUgdHJhdmVsIHJlYWxseSBpcyBhIGRhbmdlcm91cyBidXNpbmVzcy4gWW91IGNvdWxkIGFjY2lkZW50YWxseSBzdGVwIG9uIGEgYnV0dGVyZmx5IGFuZCB3aXBlIG91dCBhbGwgbGlmZSBvbiBFYXJ0aCwgZm9yIGV4YW1wbGUuIEl0IHNvdW5kcyBhcyB0aG91Z2ggdGhlcmXigJlzIGFsbCBzb3J0cyBvZiBoaWppbnggdG8gbG9vayBmb3J3YXJkIHRvIGluPGVtPiBUaW1lIFRyYXZlbCBJcyBEYW5nZXJvdXMsPC9lbT4gdGhvdWdoICYjODIxMTsgaXTigJlzIGEgQnJpdGlzaCBtb2NrdW1lbnRhcnkgY29tZWR5IGFib3V0IGEgY291cGxlIG9mIG5l4oCZZXItZG8td2VsbHMgd2hvIHNuZWFrIGFyb3VuZCBkaWZmZXJlbnQgcGVyaW9kcyBpbiB0aW1lLCBuaWNraW5nIHN0dWZmIHRoZSB0aGVuIHNlbGwgaW4gdGhlaXIgYnJpYy1hLWJyYWMgc2hvcC4gSm9obm55IFZlZ2FzLCBTb3BoaWUgVGhvbXBzb24gYW5kIEphbmUgSG9ycm9ja3MgYXJlIGFtb25nIHRoZSBjYXN0LCBhbmQgdGhlIHdvcmQgZnJvbSBmZXN0aXZhbHMgaXMgdGhhdCB0aGlzIGlzIGFsbCBhIGxvdCBvZiBmdW4uIEFzIHN1Y2gsIGl0IGVhcm5zIGEgc3BvdCBvbiB0aGUgbGlzdC4gJiM4MjExOyBSTDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogMjh0aCBNYXJjaDwvZW0+PC9wPgoKCgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1lbWJlZCBpcy10eXBlLXZpZGVvIGlzLXByb3ZpZGVyLXlvdXR1YmUgd3AtYmxvY2stZW1iZWQteW91dHViZSB3cC1lbWJlZC1hc3BlY3QtMTYtOSB3cC1oYXMtYXNwZWN0LXJhdGlvIj48ZGl2IGNsYXNzPSJ3cC1ibG9jay1lbWJlZF9fd3JhcHBlciI+CjxpZnJhbWUgdGl0bGU9IlRJTUUgVFJBVkVMIElTIERBTkdFUk9VUyBUZWFzZXIgVHJhaWxlciAoMjAyNCkgU2NpLUZpIENvbWVkeSIgd2lkdGg9IjE3NzgiIGhlaWdodD0iMTAwMCIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9lTlZ1bDZoLWpSST9mZWF0dXJlPW9lbWJlZCIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlOyB3ZWItc2hhcmUiIHJlZmVycmVycG9saWN5PSJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+CjwvZGl2PjwvZmlndXJlPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTMyLXBlYWt5LWJsaW5kZXJzIj48c3Ryb25nPjMyLiBQZWFreSBCbGluZGVyczwvc3Ryb25nPjwvaDI+CgoKCjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPjxpbWcgc3JjPSJodHRwczovL3NwYWNlcy5maWxtc3Rvcmllcy5jby51ay91cGxvYWRzLzIwMjQvMDkvcGVha3ktYmxpbmRlcnMtdG9tbXktc2hlbGJ5LTgwMHg1MzMuanBnIiBhbHQ9InBlYWt5IGJsaW5kZXJzIHRvbW15IHNoZWxieSIgY2xhc3M9IndwLWltYWdlLTkwMTg5Ii8+PGZpZ2NhcHRpb24gY2xhc3M9IndwLWVsZW1lbnQtY2FwdGlvbiI+Q3JlZGl0OiBOZXRmbGl4PC9maWdjYXB0aW9uPjwvZmlndXJlPgoKCgo8cD5CcmluZ2luZyB0aGUgbWFpbiA8ZW0+UGVha3kgQmxpbmRlcnM8L2VtPiBzdG9yeSB0byBhbiBlbmRwb2ludCwgdGhlIG1vdmllIHZlcnNpb24gb2YgdGhlIGh1Z2VseSBzdWNjZXNzZnVsIHNob3cgaGFzIG5vdyB3cmFwcGVkIGZpbG1pbmcuIENpbGxpYW4gTXVycGh5IGxlYWRzIHRoZSBlbnNlbWJsZSwgd29ya2luZyBmcm9tIDxhIGhyZWY9Imh0dHBzOi8vc3RhZ2luZy5maWxtc3Rvcmllcy5jby51ay9mZWF0dXJlcy9zdGV2ZW4ta25pZ2h0LWludGVydmlldy1wZWFreS1ibGluZGVycy1zZXJlbml0eS1iaXJtaW5naGFtLyI+U3RldmVuIEtuaWdodOKAmXM8L2E+IHNjcmlwdC4gSXTigJlzIHVubGlrZWx5IHRvIHNlZSBhIGNpbmVtYSwgc2FkbHksIGJ1dCBOZXRmbGl4IGlzIGJhbmtyb2xsaW5nIHRoZSBmZWF0dXJlLiBJdOKAmXMgYW4gaW1wb3J0YW50IGZpbG0gdG9vIGZvciB0aGUgQmlybWluZ2hhbSBhcmVhIGluIHRoZSBXZXN0IE1pZGxhbmRzLiBUaGFua3MgdG8gdGhlIHJlbGF0aXZlbHkgbmV3IERpZ2JldGggTG9jIGZhY2lsaXR5LCBpdOKAmXMgdGhlIGZpcnN0IHRpbWUgPGVtPlBlYWt5IEJsaW5kZXJzPC9lbT4gaGFzIGJlZW4gYWJsZSB0byBzaG9vdCBpbiB0aGUgYXJlYSB0aGUgc2hvdyBpcyBhY3R1YWxseSBzZXQgaW4uIFBsb3QgZGV0YWlscyB1bmRlciB3cmFwcyBmb3Igbm93LCBidXQgaXTigJlzIHBvaXNlZCB0byBiZSBvbmUgb2YgdGhlIGJpZ2dlc3QgQnJpdGlzaCBmaWxtcyBvZiB0aGUgeWVhci4gJiM4MjExOyBTQjwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogVEJDPC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMzEtdGhlLWFtYXRldXIiPjxzdHJvbmc+MzEuIFRoZSBBbWF0ZXVyIDwvc3Ryb25nPjwvaDI+CgoKCjxwPkphbWVzIEhhd2VzIG1hZGUgaGlzIGRpcmVjdG9yaWFsIGRlYnV0IHdpdGggdGhlIGltcHJlc3NpdmUgPGVtPk9uZSBMaWZlPC9lbT4sIGFmdGVyIG5vdGNoaW5nIHVwIHBsZW50eSBvZiBhY2NsYWltIGZvciBUViB3b3JrLiBJdOKAmXMgaGltIHlvdeKAmXZlIGdvdCB0byB0aGUgdGhhbmsgZm9yIHRoZSBvcGVuaW5nIGVwaXNvZGVzIG9mIDxlbT5TbG93IEhvcnNlczwvZW0+LCBmb3IgaW5zdGFuY2UsIGFuZCBDaHJpc3RvcGhlciBFY2NsZXN0b27igJlzIHdvbmRlcmZ1bCDigJhqdXN0IHRoaXMgb25jZeKAmSBtb21lbnQgaW4gPGVtPkRvY3RvciBXaG88L2VtPi48L3A+CgoKCjxwPjxlbT5UaGUgQW1hdGV1cjwvZW0+IGlzIGhpcyBzZWNvbmQgZmVhdHVyZSwgYW5kIGl0IGluc3RhbnRseSBsb29rcyBsaWtlIHRoZSBraW5kIG9mIHRocmlsbGVyIHNxdWVlemVkIG91dCB1c3VhbGx5IGJ5IHRoZSBIb2xseXdvb2Qgc3lzdGVtLiBSYW1pIE1hbGVrIGxlYWRzIHRoZSBjYXN0LCBhbmQgZmlsbWluZyB3YXMgZG9uZSBpbiB0d28gYmxvY2tzIGluIHRoZSBlbmQgZHVlIHRvIFNBRyBzdHJpa2VzLiBXZSBmaW5hbGx5IGdldCB0aGUgZW5kIHJlc3VsdCBpbiAyMDI1LiAmIzgyMTE7IFNCPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiAxMXRoIEFwcmlsIDwvZW0+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTMwLXRoZS1zY3VycnkiPjxzdHJvbmc+MzAuIFRoZSBTY3Vycnk8L3N0cm9uZz48L2gyPgoKCgo8cD5BIHJlYWwgc3RhbmQtb3V0IG9mIDIwMjIgd2FzIHRoZSBCcml0aXNoIGdvbGYgY29tZWR5IDxlbT48YSBocmVmPSJodHRwczovL3N0YWdpbmcuZmlsbXN0b3JpZXMuY28udWsvcG9kY2FzdC9wb2RjYXN0LXNsZWVweS1ob2xsb3ctMTk5OS1hbmQtdGhlLXBoYW50b20tb2YtdGhlLW9wZW4tMjAyMS8iPlRoZSBQaGFudG9tIE9mIFRoZSBPcGVuPC9hPjwvZW0+LiBEaXJlY3RlZCBieSBDcmFpZyBSb2JlcnRzLCBmcm9tIFNpbW9uIEZhcm5hYnnigJlzIHNjcmlwdCwgaXQgaGFkIGEgZmFpciBhbW91bnQgb2Ygc3RlZWwgYmVuZWF0aCBpdHMgY2hhcm1pbmcgc3VyZmFjZSwgYW5kIGZvciBSb2JlcnRzLCBjb250aW51ZWQgaGlzIHN1Y2Nlc3NmdWwgbWlncmF0aW9uIGZyb20gYWN0aW5nIHRvIGRpcmVjdGluZy48L3A+CgoKCjxwPjIwMjUgc2VlcyBoaW0gc2hlcGhlcmRpbmcga2lsbGVyIHNxdWlycmVscyBpbiBhIGhvcnJvciBjb21lZHkgYnkgdGhlIG5hbWUgb2YgPGVtPlRoZSBTY3Vycnk8L2VtPi4mbmJzcDsgUmh5cyBJZmFucywgRWxsYSBQdXJuZWxsLCBQYWFwYSBFc3NpZWR1IGFuZCBBbnRvbmlhIFRob21hcyBsZWFkIHRoZSBlbnNlbWJsZSwgd2l0aCBwZXN0IGNvbnRyb2xsZXJzIHRhY2tsaW5nIGEgcm91dGluZSBqb2IgdGhhdCBiZWNvbWVzLCB3ZWxsLCBub3Qgc28gcm91dGluZeKApiAmIzgyMTE7IFNCPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiBUQkMgMjAyNTwvZW0+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTI5LXRoZS1ydW5uaW5nLW1hbiI+PHN0cm9uZz4yOS4gVGhlIFJ1bm5pbmcgTWFuPC9zdHJvbmc+PC9oMj4KCgoKPHA+WWVzLCBBcm5vbGQgU2Nod2FyemVuZWdnZXIgYWxyZWFkeSBzdGFycmVkIGluIGEgaGlnaGx5IHF1b3RhYmxlIGFuZCBmdW4gZmlsbSBvZiB0aGUgc2FtZSBuYW1lIGluIDE5ODcuIERpcmVjdG9yIEVkZ2FyIFdyaWdodCBpcyBzYWlkIHRvIGJlIGdvaW5nIGJhY2sgdG8gU3RlcGhlbiBLaW5n4oCZcyBvcmlnaW5hbCBzb3VyY2Ugbm92ZWwgZm9yIHRoaXMgbmV3IGFkYXB0YXRpb24sIHRob3VnaCwgd2hpY2ggdGhpcyB0aW1lIHN0YXJzIEdsZW4gUG93ZWxsIGFzIEJlbiBSaWNoYXJkcywgYSBmaW5hbmNpYWxseSBkZXNwZXJhdGUgY2hhcCB3aG8gZW5kcyB1cCBvbiBhIGdhbWUgc2hvdyB3aGVyZSBjb250ZXN0YW50cyBhcmUgaHVudGVkIGRvd24gb24gbGl2ZSB0ZWxldmlzaW9uLiBXaWxsIGl0IGJlIHF1aXRlIGFzIGRvd25iZWF0IGFzIEtpbmfigJlzIGJvb2sgKHB1Ymxpc2hlZCB1bmRlciB0aGUgcHNldWRvbnltIFJpY2hhcmQgQmFjaG1hbik/IFdl4oCZbGwgaGF2ZSB0byB3YWl0IGFuZCBzZWUuIFdyaWdodOKAmXMgYSBkYWIgaGFuZCB3aGVuIGl0IGNvbWVzIHRvIGFjdGlvbiwgdGhvdWdoLCBzbyBpdOKAmWxsIHN1cmVseSBiZSBvbmUgb2YgMjAyNeKAmXMgbW9yZSBwcm9wdWxzaXZlIGZpbG1zLCBob3dldmVyIGl0IHR1cm5zIG91dC4gJiM4MjExOyBSTDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogN3RoIE5vdmVtYmVyPC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMjgtZnV6ZSI+PHN0cm9uZz4yOC4gRnV6ZTwvc3Ryb25nPjwvaDI+CgoKCjxwPkRhdmlkIE1hY2tlbnppZSBkaXJlY3RlZCBvbmUgb2YgdGhpcyB3cml0ZXLigJlzIGZhdm91cml0ZSBmaWxtcyBvZiB0aGUgMjAxMHMgJiM4MjExOyB0aGF0IGJlaW5nIHRoZSB0aHJpbGxlci93ZXN0ZXJuIDxlbT5IZWxsIE9yIEhpZ2ggV2F0ZXIuIDwvZW0+V2hpbGUgaXTigJlzIGltcG9zc2libGUgdG8ga25vdyB3aGV0aGVyIDxlbT5GdXplIDwvZW0+d2lsbCBzY2FsZSB0aG9zZSBoZWlnaHRzLCBhbnkgY3JpbWUgdGhyaWxsZXIgZnJvbSBNYWNrZW56aWUgaXMgd29ydGggbG9va2luZyBmb3J3YXJkIHRvLiBBYXJvbiBUYXlsb3ItSm9obnNvbiwgVGhlbyBKYW1lcywgU2FtIFdvcnRoaW5ndG9uIGFuZCBHdWd1IE1iYXRoYS1SYXcgYXJlIGFtb25nIHRoZSBjYXN0IGluIGEgcGxvdCB0aGF0IGludm9sdmVzIGEgYmFuayBoZWlzdCB3aGljaCB0YWtlcyBwbGFjZSB3aGlsZSBhbiB1bmV4cGxvZGVkIFdvcmxkIFdhciBJSSBib21iIGlzIGRlZnVzZWQgaW4gdGhlIG1pZGRsZSBvZiBMb25kb24uIDxlbT5GdXplIDwvZW0+YWxzbyBzZWVzIE1hY2tlbnppZSByZXVuaXRlZCB3aXRoIGNpbmVtYXRvZ3JhcGhlciBHaWxlcyBOdXR0Z2Vucywgc28gd2Ugc2hvdWxkIGJlIGluIGZvciBhbm90aGVyIGdvb2QtbG9va2luZyBnZW5yZSBmaWxtLiAmIzgyMTE7IFJMPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiBUQkM8L2VtPjwvcD4KCgoKPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC0yNy1oYW1uZXQiPjxzdHJvbmc+MjcuIEhhbW5ldDwvc3Ryb25nPjwvaDI+CgoKCjxwPkNobG/DqSBaaGFvIGZvbGxvd2VkIGhlciBkZXZhc3RhdGluZyA8ZW0+Tm9tYWRsYW5kIDwvZW0+d2l0aCBNYXJ2ZWzigJlzIDxlbT5FdGVybmFsczwvZW0+LCB3aGljaCBjYW1lIGFuZCB3ZW50IHdpdGhvdXQgbXVjaCBmYW5mYXJlLiA8YSBocmVmPSJodHRwczovL3N0YWdpbmcuZmlsbXN0b3JpZXMuY28udWsvbmV3cy9jaGxvZS16aGFvcy1oYW1uZXQtYmVnaW5zLXByb2R1Y3Rpb24taW4td2FsZXMvIj48ZW0+SGFtbmV0PC9lbT4gPC9hPndpbGwgZmluZCB0aGUgT3NjYXItd2lubmluZyBkaXJlY3RvciBiYWNrIG9uIGxvdy1rZXkgZHJhbWF0aWMgZ3JvdW5kLiBQYXVsIE1lc2NhbCBhbmQgSmVzc2llIEJ1Y2tsZXkgc3RhciBhcyBXaWxsaWFtIGFuZCBBZ25lcyBTaGFrZXNwZWFyZSB3aG8gYXJlIHRyeWluZyB0byBjb3BlIHdpdGggdGhlIGRlYXRoIG9mIHRoZWlyIHNvbiwgdGhlIHRpdHVsYXIgSGFtbmV0LiBUaGUgZmlsbSBpcyBiYXNlZCBvbiBNYWdnaWUgT+KAmUZhcnJlbGzigJlzIGZpY3Rpb25hbCBub3ZlbCBhbmQgaWYgWmhhb+KAmXMgcHJldmlvdXMgZmlsbXMgYXJlIGFueXRoaW5nIHRvIGdvIGJ5LCB3ZeKAmXJlIGluIGZvciBxdWl0ZSBhbiBlbW90aW9uYWwgcm9sbGVyY29hc3Rlci4gJiM4MjExOyBNTDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogVEJDPC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMjYtYS1zaW1wbGUtZmF2b3ItMiI+PHN0cm9uZz4yNi4gQSBTaW1wbGUgRmF2b3IgMiA8L3N0cm9uZz48L2gyPgoKCgo8cD5QYXVsIEZlaWcgaGFzIGNvbWUgY2xvc2UgdG8gbWFraW5nIGEgZm9sbG93LXVwIHRvIG9uZSBvZiBoaXMgZmlsbXMgYmVmb3JlLiBGb3IgYSB3aGlsZSwgaGUgd2FzIHdvcmtpbmcgb24gPGVtPlRoZSBIZWF0IDI8L2VtPiwgd2hpbGUgdGhlcmUgd2FzIHJlZ3VsYXJseSBjaGF0dGVyIGFib3V0IDxlbT5CcmlkZXNtYWlkcyAyPC9lbT4gYXMgd2VsbC4gSGlzIGZpcnN0IGZvbGxvdy11cCB0aG91Z2ggaXMgYWN0dWFsbHkgc2V0IHRvIGJlIDxlbT5BIFNpbXBsZSBGYXZvciAyPC9lbT4sIGEgZm9sbG93LW9uIHRvIHRoZSB3ZWxsLWxpa2VkIHR3aXN0eSB0aHJpbGxlciBvZiAyMDE4LiBCbGFrZSBMaXZlbHkgYW5kIEFubmEgS2VuZHJpY2sgYm90aCByZXR1cm4sIGFuZCBlYXJseSB3aGlzcGVycyBzdWdnZXN0IGEgdmVyeSB3b3J0aHdoaWxlIHNlY29uZCBjaGFwdGVyLiBJdOKAmXMgZHVlIG9uIFByaW1lIFZpZGVvIGluIHRoZSBzcHJpbmcuICYjODIxMTsgU0I8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IDFzdCBNYXkgPC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMjUtc3VwZXJtYW4iPjxzdHJvbmc+MjUuIFN1cGVybWFuIDwvc3Ryb25nPjwvaDI+CgoKCjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPjxpbWcgc3JjPSJodHRwczovL3NwYWNlcy5maWxtc3Rvcmllcy5jby51ay91cGxvYWRzLzIwMjQvMTIvc3VwZXJtYW4tdHJhaWxlci04MDB4NTEzLmpwZyIgYWx0PSJzdXBlcm1hbiB0cmFpbGVyIiBjbGFzcz0id3AtaW1hZ2UtOTUzMzIiLz48ZmlnY2FwdGlvbiBjbGFzcz0id3AtZWxlbWVudC1jYXB0aW9uIj5DcmVkaXQ6IFdhcm5lciBCcm9zLjwvZmlnY2FwdGlvbj48L2ZpZ3VyZT4KCgoKPHA+QndhaCBid2FoIGJ3YWggYndhaOKApiBCd2FoLCBid2FoLCBid2FoLCBid2FoIGJ3YWggYndhaCBid2FoLCBCV0FILCBCV0FILUJXQUghIEpvaG4gV2lsbGlhbXMgbWlnaHQgaGF2ZSBiZWVuIG5vd2hlcmUgbmVhciB0aGUgZmlyc3QgREMgU3R1ZGlvcyBwcm9qZWN0IGZyb20gSmFtZXMgR3VubiwgYnV0IGhpcyBzaGFkb3cgbGllcyBoZWF2eSBvbiB0aGUgTWFuIG9mIFN0ZWVs4oCZcyBsYXRlc3QgcmVpbmNhcm5hdGlvbi4gVGhhbmtmdWxseSwgaGUgaGFzIHN1cGVyLXN0cmVuZ3RoLCBzbyBoZSBjYW4gcHJvYmFibHkgZGVhbCB3aXRoIGl0LiBPcmlnaW5hbGx5IGNhbGxlZCA8ZW0+U3VwZXJtYW46IExlZ2FjeTwvZW0+LCB0aGUgc3ViLXRpdGxlIHdhcyBkcm9wcGVkLCA8ZW0+U29jaWFsIE5ldHdvcms8L2VtPi1zdHlsZSwgYnV0IHRoZSBzdG9yeSBpcyBzdGlsbCBzZXQgdG8gZm9sbG93IERhdmlkIENvcmVuc3dldOKAmXMgeW91bmcgU3VwZXMgYXMgaGUgdHJpZXMgdG8gcmVjb25jaWxlIGhpcyBLcnlwdG9uaWFuIGhlcml0YWdlIHdpdGggaGlzIGZvdW5kLWZhbWlseSBvbiBFYXJ0aC4gSGVhZGluZyB0byBhIG11bHRpcGxleCBmYXN0ZXIgdGhhbiBhIHNwZWVkaW5nIGJ1bGxldCAoYW1hemluZyB3aGF0IHlvdSBjYW4gZG8gd2l0aCBmdWxsLWZpYnJlKSB0aGlzIHN1bW1lci4mbmJzcDsgJiM4MjExOyBKSDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogMTF0aCBKdWx5PC9lbT48L3A+CgoKCjxwIGNsYXNzPSJoYXMtdGV4dC1hbGlnbi1jZW50ZXIiPjxzdHJvbmc+UmVhZCBtb3JlOjwvc3Ryb25nPiA8YSBocmVmPSJodHRwczovL3N0YWdpbmcuZmlsbXN0b3JpZXMuY28udWsvbmV3cy9zdXBlcm1hbi10cmFpbGVyLWhhcy1qYW1lcy1ndW5uLXNlY3JldGx5LW1hZGUtYS10ZWFtLXVwLWZpbG0vIj5TdXBlcm1hbiB0cmFpbGVyIHwgSGFzIEphbWVzIEd1bm4gc2VjcmV0bHkgbWFkZSBhIHRlYW0tdXAgZmlsbT88L2E+PC9wPgoKCgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1lbWJlZCBpcy10eXBlLXZpZGVvIGlzLXByb3ZpZGVyLXlvdXR1YmUgd3AtYmxvY2stZW1iZWQteW91dHViZSB3cC1lbWJlZC1hc3BlY3QtMTYtOSB3cC1oYXMtYXNwZWN0LXJhdGlvIj48ZGl2IGNsYXNzPSJ3cC1ibG9jay1lbWJlZF9fd3JhcHBlciI+CjxpZnJhbWUgdGl0bGU9IlNVUEVSTUFOICgyMDI1KTogVGhlIFVLIHRyYWlsZXIgaGFzIGxhbmRlZCEiIHdpZHRoPSIxNzc4IiBoZWlnaHQ9IjEwMDAiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvREw0VGFpV2RlTGs/c3RhcnQ9MyYjMDM4O2ZlYXR1cmU9b2VtYmVkIiBmcmFtZWJvcmRlcj0iMCIgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmU7IHdlYi1zaGFyZSIgcmVmZXJyZXJwb2xpY3k9InN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4KPC9kaXY+PC9maWd1cmU+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMjQtdGhlLWxhc3QtZGlzdHVyYmFuY2Utb2YtbWFkZWxpbmUtaHluZGUiPjxzdHJvbmc+MjQuIFRoZSBMYXN0IERpc3R1cmJhbmNlIE9mIE1hZGVsaW5lIEh5bmRlIDwvc3Ryb25nPjwvaDI+CgoKCjxwPktlbm5ldGggQnJhbmFnaCBoYXMgYWxyZWFkeSBwcm92ZWQgaGlzIGdsZWVmdWxseSBzcG9va3kgY3JlZGVudGlhbHMgd2l0aCAyMDIz4oCZcyBQb2lyb3QgbXlzdGVyeSwgPGVtPkEgSGF1bnRpbmcgSW4gVmVuaWNlPC9lbT4sIGFuZCBieSB0aGUgc291bmRzIG9mIHRoaXMgdGl0bGUsIGhlIG1pZ2h0IGhhdmUganVzdCBnb3QgdGhlIGhvcnJvci1hZGphY2VudCBidWcuIERlc2NyaWJlZCBhcyDigJxhIHBzeWNob2xvZ2ljYWwgdGhyaWxsZXLigJ0sIHRoZSBwcm9saWZpYyA8ZW0+QmVsZmFzdCA8L2VtPmRpcmVjdG9y4oCZcyBuZXh0IHByb2plY3QgaGFzIEpvZGllIENvbWVyIGF0dGFjaGVkIGFzIHRoZSBsZWFkLCBidXQgd2UgcmVhbGx5IGRvbuKAmXQga25vdyBtdWNoIGVsc2UuIEhvdyBtYW55IGRpc3R1cmJhbmNlcyBoYXMgb3VyIGhlcm9pbmUgaGFkPyBJcyB0aGUgY2hhcmFjdGVyIGEgdGhpbmx5LXZlaWxlZCBhbmFsb2d1ZSBmb3IgR3VhcmRpYW4gY29sdW1uaXN0IE1hcmluYSBIeWRlPyBXZSBzaW1wbHkgZG9u4oCZdCBrbm93LiZuYnNwOyYjODIxMTsgSkg8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IFRCQzwvZW0+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTIzLXByZXNlbmNlIj48c3Ryb25nPjIzLiBQcmVzZW5jZTwvc3Ryb25nPjwvaDI+CgoKCjxwPkEgbmV3IFN0ZXZlbiBTb2RlcmJlcmdoIGZpbG0gaXMgYWx3YXlzIGEgY2luZW1hdGljIGV2ZW50IGluIGl0c2VsZiwgYnV0IGEgU29kZXJiZXJnaCBob3Jyb3IgZmlsbT8gU2hvdCBmcm9tIHRoZSBwZXJzcGVjdGl2ZSBvZiBhIGdob3N0PyBXZWxsLCB0aGF04oCZcyBzb21ldGhpbmcgZWxzZSBlbnRpcmVseS4gSGF1bnRlZCBob3VzZSBmaWxtcyB0ZW5kIHRvIGZvbGxvdyB0aGUgc2FtZSwgc2xpZ2h0bHkgdGlyZWQgZm9ybXVsYSwgYnV0IDxlbT5QcmVzZW5jZTwvZW0+IGNvdWxkIHJlYWxseSBiZSBzb21ldGhpbmcgc3BlY2lhbCBhbmQgcmV2aXRhbGlzZSB0aGUgZ2VucmUuJm5ic3A7IEp1ZGdpbmcgZnJvbSB0aGUgdHJhaWxlciwgd2XigJlyZSBpbiBmb3IgYSBzcG9va3ksIGNyZWVweSBob3Jyb3IgbW92aWUgYW5kIHdlIGNhbuKAmXQgd2FpdC4gJiM4MjExOyBNTDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogMjR0aCBKYW51YXJ5PC9lbT48L3A+CgoKCjxwIGNsYXNzPSJoYXMtdGV4dC1hbGlnbi1jZW50ZXIiPjxzdHJvbmc+UmVhZCBtb3JlOiA8L3N0cm9uZz48YSBocmVmPSJodHRwczovL3N0YWdpbmcuZmlsbXN0b3JpZXMuY28udWsvcmV2aWV3cy9wcmVzZW5jZS1yZXZpZXctc29kZXJiZXJnaC1nb2VzLXNwb29reS1mb3ItaGF1bnRlZC1ob3VzZS1mYWJsZS8iPlByZXNlbmNlIHJldmlldyB8IFNvZGVyYmVyZ2ggZ29lcyBzcG9va3kgZm9yIGhhdW50ZWQgaG91c2UgZmFibGU8L2E+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTIyLXRoZS1tYWdpYy1mYXJhd2F5LXRyZWUiPjxzdHJvbmc+MjIuIFRoZSBNYWdpYyBGYXJhd2F5IFRyZWU8L3N0cm9uZz48L2gyPgoKCgo8cD5XaGVuIFNpbW9uIEZhcm5hYnkgZ2V0cyBiZWhpbmQgYSB0eXBld3JpdGVyLCB0aGUgPGVtPkhvcnJpYmxlIEhpc3RvcmllcyA8L2VtPnN0YXIgcmFyZWx5IHNlZW1zIHRvIG1pc3MuIEFmdGVyIHBlbm5pbmcgc3VjaCBmYW1pbHkgZmF2b3VyaXRlcyBhcyA8ZW0+UGFkZGluZ3RvbiAyPC9lbT4sIDxlbT5Xb25rYSA8L2VtPmFuZCA8ZW0+VGhlIFBoYW50b20gT2YgVGhlIE9wZW48L2VtPiwgaGlzIG5leHQgcHJvamVjdCBpcyBhbiBhZGFwdGF0aW9uIG9mIGEgYmVsb3ZlZCBFbmlkIEJseXRvbiBzZXJpZXMuIFdlIGRpZG7igJl0IGhhdmUg4oCcPGVtPlRoZSBNYWdpYyBGYXJhd2F5IFRyZWUgPC9lbT5maWxtIHdpbGwgdGFwIGludG8gY2hpbGRyZW7igJlzIHBvc3QtcGFuZGVtaWMgYW54aWV0eeKAnSBvbiBvdXIgTW9vbmZhY2UgYmluZ28gY2FyZCwgdG8gYmUgaG9uZXN0LCBidXQsIGFjY29yZGluZyB0byBkaXJlY3RvciBCZW4gR3JlZ29yLDxhIGhyZWY9Imh0dHBzOi8vZGVhZGxpbmUuY29tLzIwMjQvMDIvZW5pZC1ibHl0b24tdGhlLW1hZ2ljLWZhcmF3YXktdHJlZS1kaXJlY3Rvci1mcmVzaC1kZXRhaWxzLWZpcnN0LWNvbmNlcHQtYXJ0LWltYWdlLWVmbS0xMjM1ODI3NTQ0L2FtcC8iPiB0aGF04oCZcyBqdXN0IHdoYXQgd2XigJlyZSBnZXR0aW5nPC9hPi4gT2gsIGFuZCBBbmRyZXcgR2FyZmllbGQsIENsYWlyZSBGb3kgYW5kIE5pY29sYSBDb3VnaGxhbiBhcmUgaW4gaXQsIHRvby4gQnJpdGlzaCBjaW5lbWEgaXMgYmFjayEmbmJzcDsgJiM4MjExOyBKSDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogVEJDPC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMjEtanVyYXNzaWMtd29ybGQtcmViaXJ0aCI+PHN0cm9uZz4yMS4gSnVyYXNzaWMgV29ybGQ6IFJlYmlydGg8L3N0cm9uZz48L2gyPgoKCgo8cD5TdXJlLCA8ZW0+SnVyYXNzaWMgV29ybGQ6IERvbWluaW9uPC9lbT4gcHJvdmVkIHRvIGJlIGEgYml0IG9mIGEgZGlzYXBwb2ludG1lbnQsIGJ1dCBpdOKAmXMgaGFyZCBub3QgdG8gYmUgZXhjaXRlZCBieSBhbm90aGVyIDxlbT5KdXJhc3NpYyBXb3JsZCA8L2VtPmZpbG0uIFNjYXJsZXR0IEpvaGFuc3NvbiwgTWFoZXJzaGFsYSBBbGkgYW5kIEpvbmF0aGFuIEJhaWxleSBsZWFkIGFuIGVuc2VtYmxlIGNhc3QsIHdobyB3aWxsIGVuY291bnRlciBzb21lIHZlcnkgY29vbCwgQ0dJIGRpbm9zLCB3ZeKAmWQgaW1hZ2luZS4gR2FyZXRoIEVkd2FyZHMgaXMgZGlyZWN0aW5nLCB3aGljaCBtYWtlcyA8ZW0+UmViaXJ0aDwvZW0+IGFsbCB0aGUgbW9yZSBleGNpdGluZy4gQWZ0ZXIgYWxsLCBhY3Jvc3MgaGlzIGZvdXIgcHJldmlvdXMgZmVhdHVyZSBmaWxtcywgdGhlIG1hbiBoYXNu4oCZdCByZWFsbHkgbWlzc2VkLCBoYXMgaGU/ICYjODIxMTsgTUw8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IDJuZCBKdWx5IDwvZW0+PC9wPgoKCgo8ZmlndXJlIGNsYXNzPSJ3cC1ibG9jay1lbWJlZCBpcy10eXBlLXZpZGVvIGlzLXByb3ZpZGVyLXlvdXR1YmUgd3AtYmxvY2stZW1iZWQteW91dHViZSB3cC1lbWJlZC1hc3BlY3QtMTYtOSB3cC1oYXMtYXNwZWN0LXJhdGlvIj48ZGl2IGNsYXNzPSJ3cC1ibG9jay1lbWJlZF9fd3JhcHBlciI+CjxpZnJhbWUgdGl0bGU9IkpVUkFTU0lDIFdPUkxEOiBSRUJJUlRIIC0gaGVyZSYjMDM5O3MgdGhlIFVLIHRlYXNlciB0cmFpbGVyISIgd2lkdGg9IjE3NzgiIGhlaWdodD0iMTAwMCIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9tTUJGbzRIQjJ5cz9mZWF0dXJlPW9lbWJlZCIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlOyB3ZWItc2hhcmUiIHJlZmVycmVycG9saWN5PSJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+CjwvZGl2PjwvZmlndXJlPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTIwLXByZWRhdG9yLWJhZGxhbmRzIj48c3Ryb25nPjIwLiBQcmVkYXRvcjogQmFkbGFuZHM8L3N0cm9uZz48L2gyPgoKCgo8cD5UaGlzIHdyaXRlciBpcyBzdGlsbCB2ZXJ5IHNhbHR5IGFib3V0IERhbiBUcmFjaHRlbmJlcmfigJlzIDxlbT5UaGUgUHJlZGF0b3I8L2VtPiBwcmVxdWVsIDxlbT5QcmV5IDwvZW0+bm90IGdldHRpbmcgYSBmdWxsIGNpbmVtYSByZWxlYXNlLiBUaGFua2Z1bGx5LCBUcmFjaHRlbmJlcmfigJlzIG5leHQgUHJlZGF0b3IgZmlsbSB3aWxsIGJlIGhlYWRpbmcgaW50byBjaW5lbWFzLjxlbT4gUHJlZGF0b3I6IEJhZGxhbmQ8L2VtPnMgd2lsbCBzdGFyIEVsbGUgRmFubmluZyBpbiBhIHN0b3J5IGFib3V0IHR3byBzaXN0ZXJzIHRyYXZlbGxpbmcgdGhlIHdhc3RlbGFuZCBhbmQgbWFraW5nIGEgdGVycmlibGUgZGlzY292ZXJ5IGFib3V0IHRoZWlyIG93biBwYXN0LiBUcmFjaHRlbmJlcmcgaGFzIGFsc28gcmVwb3J0ZWRseSBmaWxtZWQgYW5vdGhlciBQcmVkYXRvciBmaWxtIGluIHNlY3JldCBhbmQgaXTigJlzIGR1ZSB0byBiZSByZWxlYXNlZCBiZWZvcmUgPGVtPkJhZGxhbmRzPC9lbT4sIGJ1dCB0aGVyZeKAmXMgbm8gb3RoZXIgaW5mb3JtYXRpb24gb24gdGhhdCBhdmFpbGFibGUgYXQgdGhlIHRpbWUgb2Ygd3JpdGluZy4gJiM4MjExOyBNTDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogN3RoIE5vdmVtYmVyPC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMTktYWx0by1rbmlnaHRzIj48c3Ryb25nPjE5LiBBbHRvIEtuaWdodHMgPC9zdHJvbmc+PC9oMj4KCgoKPHA+PHN0cm9uZz48ZW0+R2l2ZW4gaXQgd2FzIGRlbGF5ZWQgZnJvbSBsYXN0IHllYXIsIG1heSBhcyB3ZWxsIGNvcHkgdGhlIGVudHJ5IG92ZXIgZnJvbSBsYXN0IHllYXLigJlzIGxpc3QhIEl0IHJlYWQ6Jm5ic3A7PC9lbT48L3N0cm9uZz48L3A+CgoKCjxwPkJhcnJ5IExldmluc29uIG1ha2VzIHJhcmUgZm9yYXlzIGJlaGluZCB0aGUgY2FtZXJhLCBidXQgPGVtPkFsdG8gS25pZ2h0cyA8L2VtPuKAkyBwcmV2aW91c2x5IGtub3duIGFzIDxlbT5XaXNlZ3V5czwvZW0+IOKAkyBzZWVzIHRoZSBPc2Nhci13aW5uaW5nIGRpcmVjdG9yIGJhY2sgb24gYSBmaWxtIHNldC4gSGXigJlzIGF0dHJhY3RlZCBSb2JlcnQgRGUgTmlybyB0byB0aGUgbGVhZCByb2xlIG9mIGhpcyBmaWxtIHRvbywgd2hpY2ggY29tZXMgZnJvbSB0aGUgcGVuIG9mIE5pY2hvbGFzIFBpbGVnZ2kuIFBpbGVnZ2kgb2YgY291cnNlIHBlbm5lZCA8ZW0+R29vZGZlbGxhczwvZW0+LCB3aGljaCB3YXMgYWxzbyBwcmV2aW91c2x5IGtub3duIGFzIDxlbT5XaXNlZ3V5czwvZW0+LCBzbyBoZeKAmXMgbWFraW5nIGEgYml0IG9mIGEgaGFiaXQgb2YgdGhpcy48L3A+CgoKCjxwPlRoZSBmaWxtIGlzIGEgc3Rvcnkgb2YgY29tcGV0aW5nIG1vYiBib3NzZXMsIGFuZCBEZSBOaXJvIOKAkyBncmVlZHkgYnVnZ2VyIOKAkyBzZWVtcyB0byBiZSBwbGF5aW5nIGJvdGggb2YgdGhlIGxlYWQgcm9sZXMgaGVyZS4gSXTigJlzIGFsc28gYSBtb3ZpZSB0aGF04oCZcyB0YWtlIGFyb3VuZCBmaXZlIGRlY2FkZXMgdG8gZ2V0IHRvIHRoZSBzY3JlZW4sIGhhdmluZyBvcmlnaW5hbGx5IGJlZW4gY29uc2lkZXJlZCBhbGwgdGhlIHdheSBiYWNrIGluIHRoZSAxOTcwcy4gSXTigJlzIHNlbmlvciBIb2xseXdvb2QgaGVyZSB0YWNrbGluZyB3aGF0IGNvdWxkIGFuZCBzaG91bGQgYmUgYSBjb21wZWxsaW5nIG1vYiBkcmFtYS4g4oCTIFNCPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiAyMXN0IE1hcmNoPC9lbT48L3A+CgoKCjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWVtYmVkIGlzLXR5cGUtdmlkZW8gaXMtcHJvdmlkZXIteW91dHViZSB3cC1ibG9jay1lbWJlZC15b3V0dWJlIHdwLWVtYmVkLWFzcGVjdC0xNi05IHdwLWhhcy1hc3BlY3QtcmF0aW8iPjxkaXYgY2xhc3M9IndwLWJsb2NrLWVtYmVkX193cmFwcGVyIj4KPGlmcmFtZSB0aXRsZT0iVEhFIEFMVE8gS05JR0hUUyBVSyB0cmFpbGVyIC0gZG91YmxlIFJvYmVydCBEZSBOaXJvIGZvciB5b3VyIG1vbmV5ISIgd2lkdGg9IjE3NzgiIGhlaWdodD0iMTAwMCIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC8tcTM4WGJjYVZicz9mZWF0dXJlPW9lbWJlZCIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlOyB3ZWItc2hhcmUiIHJlZmVycmVycG9saWN5PSJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+CjwvZGl2PjwvZmlndXJlPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTE4LWRyb3AiPjxzdHJvbmc+MTguIERyb3A8L3N0cm9uZz48L2gyPgoKCgo8cD5DaHJpc3RvcGhlciBMYW5kb27igJlzIHByZXZpb3VzIGhvcnJvciBmaWxtcywgc3VjaCBhcyA8ZW0+RnJlYWt5IDwvZW0+YW5kIDxlbT5IYXBweSBEZWF0aCBEYXksPC9lbT4gaGF2ZSBsZWFuZWQgaGVhdmlseSBvbiBjb21lZHksIGJ1dCBoaXMgbmV4dCBmaWxtIHNvdW5kcyBnZW51aW5lbHkgdW5uZXJ2aW5nLiBNZWdoYW5uIEZhaHkgcGxheXMgYSB3aWRvd2VkIHNpbmdsZSBtb3RoZXIgb24gYSBkYXRlIHdoZW4gc2hlIGJlZ2lucyB0byByZWNlaXZlIGFub255bW91cyBtZXNzYWdlcyB0byBoZXIgcGhvbmUgd2l0aCBkaXN0dXJiaW5nIGluc3RydWN0aW9ucyBzaGUgbXVzdCBmb2xsb3cgb3IgaGVyIHlvdW5nIHNvbiBhbmQgaGlzIGJhYnlzaXR0ZXIgd2lsbCBiZSBraWxsZWQuIExhbmRvbiBoYXMgYW4gaW1wcmVzc2l2ZSBhYmlsaXR5IHRvIG1ha2UgdGhlIG1vc3Qgb3V0IG9mIGEgc2ltcGxlIHByZW1pc2Ugc28gd2Ugc2hvdWxkIGJlIGluIGZvciBhIGRlYWQgZ29vZCB0aW1lLiAmIzgyMTE7IE1MPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiAxMXRoIEFwcmlsPC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMTctaGF2b2MiPjxzdHJvbmc+MTcuIEhhdm9jPC9zdHJvbmc+PC9oMj4KCgoKPHA+R2FyZXRoIEV2YW5zIGlzIG9uZSBvZiB0aGUgbW9zdCBpbnRlcmVzdGluZyBhY3Rpb24gZmlsbW1ha2VycyB3b3JraW5nIHRvZGF5LiA8ZW0+VGhlIFJhaWQ8L2VtPiBhbmQgPGVtPlRoZSBSYWlkIDI8L2VtPiBhcmUgYm90aCBtb2Rlcm4gY2xhc3NpY3Mgb2YgdGhlIGdlbnJlIGFuZCBFdmFucyB0aXBwZWQgaGlzIHRvZXMgaW50byBtb3JlIG9mIGEgaG9ycm9yIHZpYmUgd2l0aCBOZXRmbGl44oCZcyA8ZW0+QXBvc3RsZTwvZW0+IGJ1dCA8ZW0+SGF2b2M8L2VtPiB3aWxsIHNlZSBoaW0gcmV0dXJuIHRvIGRvIHdoYXQgaGUgZG9lcyBiZXN0LiBTdGFycmluZyBUb20gSGFyZHksIFRpbW90aHkgT2x5cGhhbnQgYW5kIEZvcmVzdCBXaGl0YWtlciwgSGF2b2Mgd2lsbCBmb2xsb3cgSGFyZHnigJlzIGRldGVjdGl2ZSBvbiBhIG1pc3Npb24gdG8gc2F2ZSBhIHBvbGl0aWNpYW7igJlzIHNvbiB3aGlsZSB1bmNvdmVyaW5nIHRoZSB1Z2x5IHVuZGVyYmVsbHkgb2YgdGhlIGNpdHkuICYjODIxMTsgTUw8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IFRCQyAyMDI1PC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMTYtdGhlLWJyaWRlIj48c3Ryb25nPjE2LiBUaGUgQnJpZGUhPC9zdHJvbmc+PC9oMj4KCgoKPHA+SW4gb25lIG9mIHR3byBNYXJ5IFNoZWxsZXktaW5zcGlyZWQgZmlsbXMgb3V0IG5leHQgeWVhciAoTmV0ZmxpeCBwdWxsZWQgb3V0IG9mIHByb2R1Y3Rpb24gaW4gZmF2b3VyIG9mIEd1aWxsZXJtbyBEZWwgVG9yb+KAmXM8ZW0+IEZyYW5rZW5zdGVpbjwvZW0+LCBpbnN0ZWFkKSwgTWFnZ2llIEd5bGxlbmhhYWzigJlzIHJlbWFrZSBvZiAxOTM1IFVuaXZlcnNhbCBQaWN0dXJlcyBjbGFzc2ljIDxlbT5CcmlkZSBPZiBGcmFua2Vuc3RlaW48L2VtPiBpcyBoZWFkaW5nIHRvIGNpbmVtYXMgdmlhIFdhcm5lciBCcm9zIGluIFNlcHRlbWJlci4gUmV1bml0aW5nIHRoZSBkaXJlY3RvciB3aXRoIGhlciA8ZW0+VGhlIERhcmsgS25pZ2h0IDwvZW0+Y28tc3RhciwgQ2hyaXN0aWFuIEJhbGUsIGFuZCB3aXRoIHRoZSBldmVyLWV4Y2VsbGVudCBKZXNzaWUgQnVja2xleSBpbiB0aGUgdGl0dWxhciByb2xlLCB0aGUgPGVtPlRoZSBMb3N0IERhdWdodGVyIDwvZW0+ZGlyZWN0b3LigJlzIHNvcGhvbW9yZSBmZWF0dXJlIGhhcyB1cyBhbGwgZXhjaXRlZCAmIzgyMTE7IGFuZCBub3QganVzdCBiZWNhdXNlIHRoZSBvbmx5IGNvcnJlY3Qgd2F5IHRvIHByb25vdW5jZSB0aGUgbmFtZSBpbnZvbHZlcyBzaG91dGluZy4gJm5ic3A7ICYjODIxMTsgSkg8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IDI2dGggU2VwdGVtYmVyPC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMTUtcm9vZm1hbiI+PHN0cm9uZz4xNS4gUm9vZm1hbjwvc3Ryb25nPjwvaDI+CgoKCjxwPkRlcmVrIENpYW5mcmFuY2UgaGFzbuKAmXQgbWFkZSBhIGZpbG0gc2luY2UgMjAxN+KAmXMgPGVtPlRoZSBMaWdodCBCZXR3ZWVuIE9jZWFucyw8L2VtPiBidXQgdGhhdOKAmXMgYWxsIGR1ZSB0byBjaGFuZ2UgaW4gMjAyNSBhcyB0aGUgZGlyZWN0b3IgYWRhcHRzIHRoZSBiaXphcnJlIHJlYWwgbGlmZSBzdG9yeSBvZiBKZWZmcmV5IE1hbmNoZXN0ZXIgd2hvIGJyb2tlIGludG8gc2V2ZXJhbCBNY0RvbmFsZHMgcmVzdGF1cmFudHMgdmlhICYjODIxMTsgeW91IGd1ZXNzZWQgaXQhICYjODIxMTsgdGhlaXIgcm9vZnMuIENoYW5uaW5nIFRhdHVtIGlzIG9uIGJvYXJkIHRvIHBsYXkgTWFuY2hlc3RlciBhbmQgd2lsbCBiZSBqb2luZWQgYnkgS2lyc3RlbiBEdW5zdCwgQmVuIE1lbmRlbHNvaG4gYW5kIFBldGVyIERpbmtsYWdlIGFtb25nIG90aGVycy4gV2XigJlyZSBpbnRyaWd1ZWQgdG8gc2VlIGhvdyB0aGUgZGlyZWN0b3IgY29tYmluZXMgaGlzIHVzdWFsIG1lbGFuY2hvbGljIHN0eWxlIHdpdGggc3VjaCBhIHByZW1pc2UuICYjODIxMTsgTUw8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IDNyZCBPY3RvYmVyPC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMTQtZjEiPjxzdHJvbmc+MTQuIEYxPC9zdHJvbmc+PC9oMj4KCgoKPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vc3BhY2VzLmZpbG1zdG9yaWVzLmNvLnVrL3VwbG9hZHMvMjAyNC8wNy9GMS1tb3ZpZS5qcGciIGFsdD0iRjEgbW92aWUiIGNsYXNzPSJ3cC1pbWFnZS03NDU0MiIvPjwvZmlndXJlPgoKCgo8cD5Wcm9vbSwgYW5kIGluZGVlZCwgdnJvb20uIEpvc2VwaCBLb3NpbnNraeKAmXMgZmlyc3QgZmlsbSBzaW5jZSB0aGUgYmxvb2QtcHVtcGluZyA8ZW0+VG9wIEd1bjogTWF2ZXJpY2sgPC9lbT5mb2xsb3dzIEJyYWQgUGl0dOKAmXMgU29ubnkgSGF5ZXMsIGEgRm9ybXVsYSBPbmUgZHJpdmVyIGNvbnZpbmNlZCB0byBjb21lIG91dCBvZiByZXRpcmVtZW50IHRvIG1lbnRvciBhIHJvb2tpZSBwcm9kaWd5IChEYW1zb24gSWRyaXMpIG9uIGhvdyB0byBkcml2ZSBhIHZlcnkgbm9pc3kgdmVoaWNsZSByZWFsbHksIHJlYWxseSBmYXN0LiBTb3VuZCBmYW1pbGlhcj8gWWVzLiBBcmUgd2Uga2lkLW9uLUNocmlzdG1hcy1tb3JuaW5nIGV4Y2l0ZWQ/IEFic29sdXRlbHkuIFNlZSBpdCBvbiBhIHNjcmVlbiBzbyBiaWcgeW91ciBoZWFkIGlzIGZsYXR0ZW5lZCBpbnRvIGEgc2VhdCBjdXNoaW9uLiAmIzgyMTE7IEpIPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiAyNXRoIEp1bmU8L2VtPjwvcD4KCgoKPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC0xMy1tYXRlcmlhbGlzdHMiPjxzdHJvbmc+MTMuIE1hdGVyaWFsaXN0czwvc3Ryb25nPjwvaDI+CgoKCjxwPkNlbGluZSBTb25nIGhhcyBtYWRlIGFub3RoZXIgZmlsbT8gU2F5IG5vIG1vcmUuIEFmdGVyIHNoYXR0ZXJpbmcgaGVhcnRzIGFjcm9zcyB0aGUgZ2xvYmUgd2l0aCAyMDIz4oCZcyB1dHRlcmx5IHBlcmZlY3QgPGVtPlBhc3QgTGl2ZXM8L2VtPiwgRGFrb3RhIEpvaG5zb24sIENocmlzIEV2YW5zLCBhbmQgUGVkcm8gUGFzY2FsIHN0YXIgaW4gdGhlIHdyaXRlci1kaXJlY3RvcuKAmXMgc3BpbiBvbiB0aGUgcm9tLWNvbSBnZW5yZSwgd2hpY2ggc2VlcyBhIG1hdGNoLW1ha2VyLCBoZXIgZXgtYm95ZnJpZW5kIGFuZCBhIHdlYWx0aHkgYnVzaW5lc3NtYW4gY29sbGlkZSBpbiBOZXcgWW9yayBDaXR5LiBBMjQgaXMgZGlzdHJpYnV0aW5nIFN0YXRlc2lkZSwgd2l0aCBTb255IGhhbmRsaW5nIHRoZSByb2xsb3V0IGludGVybmF0aW9uYWxseSAmIzgyMTE7IHdl4oCZbGwgYmUgYnV5aW5nIHRpY2tldHMganVzdCBhcyBzb29uIGFzIHdlIGhhdmUgYSByZWxlYXNlIGRhdGUuICYjODIxMTsgSkg8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IFRCQzwvZW0+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTEyLXdha2UtdXAtZGVhZC1tYW4tYS1rbml2ZXMtb3V0LW15c3RlcnkiPjxzdHJvbmc+MTIuIFdha2UgVXAgRGVhZCBNYW46IEEgS25pdmVzIE91dCBNeXN0ZXJ5PC9zdHJvbmc+PC9oMj4KCgoKPHA+QmVub2l0IEJsYW5jIGlzIGJhY2sgZm9yIHRoaXMgdGhpcmQgbXVyZGVyIG15c3RlcnkuIFdlbGwsIHdlIGFzc3VtZSBpdOKAmWxsIGJlIGFub3RoZXIgbXVyZGVyIG15c3RlcnkgaW4gdGhlIHZlaW4gb2YgPGVtPktuaXZlcyBPdXQ8L2VtPiBhbmQgPGVtPkdsYXNzIE9uaW9uPC9lbT4sIGJ1dCBkaXJlY3RvciBSaWFuIEpvaG5zb24gaGFzIGtlcHQgdGhlIGRldGFpbHMgb2YgPGVtPldha2UgVXAgRGVhZCBNYW4gPC9lbT5xdWl0ZSBjbG9zZSB0byB0aGUgY2hlc3QuIFdlIGNhbiBzYXkgZm9yIHN1cmUgdGhhdCBCZW5vaXQgQmxhbmMgd2lsbCBvbmNlIGFnYWluIGJlIGltbWFjdWxhdGVseSBkcmVzc2VkIGFzIGhlIHNvbHZlcyB3aGF0ZXZlciBjcmltZSBoZSBpcyBoaXJlZCB0byBpbnZlc3RpZ2F0ZS4gJiM4MjExOyBNTDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogVEJDIDIwMjU8L2VtPjwvcD4KCgoKPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC0xMS10aGUtbW9ua2V5Ij48c3Ryb25nPjExLiBUaGUgTW9ua2V5PC9zdHJvbmc+PC9oMj4KCgoKPHA+V2hhdCBkbyB5b3UgZ2V0IHdoZW4geW91IGNvbWJpbmUgU3RlcGhlbiBLaW5nLCBUaGVvIEphbWVzIGFuZCBPc2dvb2QgUGVya2lucz8gQSBibG9vZHkgZ29vZCBob3Jyb3IgZmlsbSwgSSBob3BlLjxlbT4gPC9lbT48YSBocmVmPSJodHRwczovL3N0YWdpbmcuZmlsbXN0b3JpZXMuY28udWsvcmV2aWV3cy9sb25nbGVncy1yZXZpZXctYnJhY2UteW91cnNlbGYtZm9yLWFuLW91dGxhbmRpc2gtYXRtb3NwaGVyaWMtc2VyaWFsLWtpbGxlci1ob3Jyb3IvIj48ZW0+TG9uZ2xlZ3M8L2VtPjwvYT48ZW0+IDwvZW0+ZGlyZWN0b3IgUGVya2lucyBhZGFwdHMgS2luZ+KAmXMgMTk4MCBzaG9ydCBzdG9yeSBhbmQgSmFtZXMgaGFzIGJlZW4gdGFwcGVkIHRvIHBsYXkgdHdpbnMgd2hvIGJlZ2luIHRvIGV4cGVyaWVuY2Ugc3RyYW5nZSBkZWF0aHMgYXJvdW5kIHRoZW0gYWZ0ZXIgZGlzY292ZXJpbmcgYSB0b3kgbW9ua2V5IGluIHRoZWlyIGF0dGljLiBXZeKAmXJlIHN1cmUgdGhpcyB3aWxsIGJlIGEgdmVyeSBzdHJlc3MtZnJlZSB3YXRjaCB3aXRoIGEgaGFwcHkgZW5kaW5nLCBqdXN0IGxpa2UgPGVtPkxvbmdsZWdzPC9lbT4uICYjODIxMTsgTUw8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IDIxc3QgRmVicnVhcnk8L2VtPjwvcD4KCgoKPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2stZW1iZWQgaXMtdHlwZS12aWRlbyBpcy1wcm92aWRlci15b3V0dWJlIHdwLWJsb2NrLWVtYmVkLXlvdXR1YmUgd3AtZW1iZWQtYXNwZWN0LTE2LTkgd3AtaGFzLWFzcGVjdC1yYXRpbyI+PGRpdiBjbGFzcz0id3AtYmxvY2stZW1iZWRfX3dyYXBwZXIiPgo8aWZyYW1lIHRpdGxlPSJUSEUgTU9OS0VZIC0gVUsgcmVkIGJhbmQgdHJhaWxlciBmb3IgbmV4dCBmaWxtIGZyb20gTE9OR0xFR1MgZGlyZWN0b3IiIHdpZHRoPSIxNzc4IiBoZWlnaHQ9IjEwMDAiIHNyYz0iaHR0cHM6Ly93d3cueW91dHViZS5jb20vZW1iZWQvdW1ZTG9xSFNWeVk/ZmVhdHVyZT1vZW1iZWQiIGZyYW1lYm9yZGVyPSIwIiBhbGxvdz0iYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZTsgd2ViLXNoYXJlIiByZWZlcnJlcnBvbGljeT0ic3RyaWN0LW9yaWdpbi13aGVuLWNyb3NzLW9yaWdpbiIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPgo8L2Rpdj48L2ZpZ3VyZT4KCgoKPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC0xMC13YXJmYXJlIj48c3Ryb25nPjEwLiBXYXJmYXJlPC9zdHJvbmc+PC9oMj4KCgoKPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2staW1hZ2Ugc2l6ZS1sYXJnZSI+PGltZyBzcmM9Imh0dHBzOi8vc3BhY2VzLmZpbG1zdG9yaWVzLmNvLnVrL3VwbG9hZHMvMjAyNC8xMi9XYXJmYXJlLTgwMHg0ODguanBnIiBhbHQ9IldhcmZhcmUiIGNsYXNzPSJ3cC1pbWFnZS05NTExNiIvPjwvZmlndXJlPgoKCgo8cD5BbGV4IEdhcmxhbmQsIGhhdmluZyByYWlzZWQgdGhlIHJvb2Ygd2l0aCBoaXMgMjAyNCB3YXIgdGhyaWxsZXIgPGVtPkNpdmlsIFdhciwgPC9lbT5yZXR1cm5zIHRvIHNpbWlsYXIgbWF0ZXJpYWwsIGFsYmVpdCBvbiBhIHNtYWxsZXIgY2FudmFzLiBDby1kaXJlY3RlZCBhbmQgY28td3JpdHRlbiB3aXRoIFJheSBNZW5kb3phLCBhIGZvcm1lciBzb2xkaWVyIHdobyBzZXJ2ZWQgYXMgYSBjb25zdWx0YW50IG9uPGVtPiBDaXZpbCBXYXIsPC9lbT4gV2FyZmFyZSBpcyBhYm91dCBNZW5kb3ph4oCZcyBvd24gcmVjb2xsZWN0aW9ucyBvZiB0aGUgSXJhcSBXYXIgaW4gMjAwNi4gU3RhcnJpbmcgV2lsbCBQb3VsdGVyLCBDb3NtbyBKYXJ2aXMsIETigJlQaGFyYW9oIFdvb24tQS1UYWkgYW5kIG1vcmUgYmVzaWRlcywgaXTigJlzIHNhaWQgdG8gYmUgYSB3YXJ0aW1lIHRocmlsbGVyIHNob3QgYWxtb3N0IGVudGlyZWx5IGluIG9uZSBjb25maW5lZCBsb2NhdGlvbiwgcGVyaGFwcyBhIGxpdHRsZSBiaXQgbGlrZSBKb2huIENhcnBlbnRlcuKAmXMgZXhwbG9pdGF0aW9uLWVyYSBjbGFzc2ljLCA8ZW0+QXNzYXVsdCBPbiBQcmVjaW5jdCAxMzwvZW0+LiBDb3VudCB1cyBpbi4gJiM4MjExOyBSTDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogMTF0aCBBcHJpbDwvZW0+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTktdGhlLWRheS10aGUtZWFydGgtYmxldy11cC1hLWxvb25leS10dW5lcy1tb3ZpZSI+PHN0cm9uZz45LiBUaGUgRGF5IFRoZSBFYXJ0aCBCbGV3IFVwOiBBIExvb25leSBUdW5lcyBNb3ZpZTwvc3Ryb25nPjwvaDI+CgoKCjxwPkFuIGFuaW1hdGVkIGZlYXR1cmUsIGZlYXR1cmluZyBXYXJuZXIgQnJvc+KAmSBiZWxvdmVkIGNoYXJhY3RlcnMsIHdpdGggYSBwcmVtaXNlIHNlZW1pbmdseSBpbnNwaXJlZCBieSAxOTUwcy1lcmEgUmVkIE1lbmFjZSBpbnZhc2lvbiBmaWxtcz8gSXQgYWxsIHNvdW5kcyB0cmVtZW5kb3VzLiBVbmxpa2UgdGhlIGlsbC1mYXRlZCA8ZW0+V2lsZSBFIENveW90ZSBWcyBBY21lLCA8L2VtPmFub3RoZXIgTG9vbmV5IFR1bmVzLWNvbm5lY3RlZCBwcm9qZWN0PGVtPiwgVGhlIERheSBUaGUgRWFydGggQmxldyBVcCA8L2VtPmhhcyBzdXJ2aXZlZCB0aGUgbXVyZGVyb3VzIGltcHVsc2VzIG9mIGN1cnJlbnQgV2FybmVyIGJvc3MgRGF2aWQgWmFzbGF2LCBhbmQgZm9yIHRoYXQgYWxvbmUgd2XigJlyZSBncmF0ZWZ1bC4gVGhlIGVhcmx5IGJ1enogZnJvbSBmZXN0aXZhbCBzY3JlZW5pbmdzIGlzIHRoYXQgdGhlIGZpbmlzaGVkIGZpbG0gJiM4MjExOyBkaXJlY3RlZCBieSBQZXRlIEJyb3duZ2FyZHQgJiM4MjExOyBpcyBhIHJlYWwgdHJlYXQuIEhlbmNlIHdoeSBpdOKAmXMgcmlkaW5nIGhpZ2ggb24gb3VyIGxpc3Qgb2Ygb3VyIG1vc3QgYW50aWNpcGF0ZWQgMjAyNSBtb3Rpb24gcGljdHVyZXMuICYjODIxMTsgUkw8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IDE0dGggTWFyY2g8L2VtPjwvcD4KCgoKPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC04LTI4LXllYXJzLWxhdGVyIj48c3Ryb25nPjguIDI4IFllYXJzIExhdGVyPC9zdHJvbmc+PC9oMj4KCgoKPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2stZW1iZWQgaXMtdHlwZS12aWRlbyBpcy1wcm92aWRlci15b3V0dWJlIHdwLWJsb2NrLWVtYmVkLXlvdXR1YmUgd3AtZW1iZWQtYXNwZWN0LTE2LTkgd3AtaGFzLWFzcGVjdC1yYXRpbyI+PGRpdiBjbGFzcz0id3AtYmxvY2stZW1iZWRfX3dyYXBwZXIiPgo8aWZyYW1lIHRpdGxlPSIyOCBZRUFSUyBMQVRFUiDigJMgaGVyZSYjMDM5O3MgdGhlIGZpcnN0IFVLIHRyYWlsZXIhIiB3aWR0aD0iMTc3OCIgaGVpZ2h0PSIxMDAwIiBzcmM9Imh0dHBzOi8vd3d3LnlvdXR1YmUuY29tL2VtYmVkL2FqRFkwTnc0ajVZP2ZlYXR1cmU9b2VtYmVkIiBmcmFtZWJvcmRlcj0iMCIgYWxsb3c9ImFjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmU7IHdlYi1zaGFyZSIgcmVmZXJyZXJwb2xpY3k9InN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW4iIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT4KPC9kaXY+PC9maWd1cmU+CgoKCjxwPkRhbm55IEJveWxl4oCZcyA8ZW0+MjggRGF5cyBMYXRlcjwvZW0+IGZlZWxzIG11Y2ggbGVzcyBncm91bmRicmVha2luZyB0b2RheSB0aGFuIGl0IGRpZCBpbiAyMDAyLiBUaGF04oCZcyBtb3N0bHkgYmVjYXVzZSB0aGUgZmlsbSB3YXMgYW4gYW5vbWFseSB0aGVuLCBraWNrc3RhcnRpbmcgYW4gZW50aXJlbHkgbmV3IHdhdmUgb2Ygem9tYmllIGZpbG1zLiBHb25lIHdlcmUgdGhlIHNsb3cgd2Fsa2VycyBvZiBHZW9yZ2UgQS4gUm9tZXJvLCByZXBsYWNlZCBieSBob3JkZXMgb2YgdGhlIGluZmVjdGVkLCByYWdpbmcgb24gYXMgdGhlIHJlc3Qgb2YgaHVtYW5pdHkgaXMgdHJ5aW5nIHRvIGZpbmQgc2FmZXR5LCBhbmQgcG90ZW50aWFsbHkgZXZlbiBhIGN1cmUuIDxlbT4yOCBZZWFycyBMYXRlciA8L2VtPndpbGwsIHVuc3VycHJpc2luZ2x5LCB0YWtlIHBsYWNlIHllYXJzIGFmdGVyIHRoZSBvcmlnaW5hbCBhbmQgaXRzIGZpcnN0IHNlcXVlbCA8ZW0+MjggV2Vla3MgTGF0ZXI8L2VtPiBhbmQgQ2lsbGlhbiBNdXJwaHkgaXMgY29uZmlybWVkIHRvIGJlIGNvbWluZyBiYWNrIHRvIHJlcHJpc2UgaGlzIHJvbGUgYXMgSmltIGZyb20gdGhlIGZpcnN0IGZpbG0uIEJveWxlIGlzIGRpcmVjdGluZyBvbmNlIGFnYWluIGFuZCBoYXMgY29sbGFib3JhdGVkIG9uIHRoZSBzY3JpcHQgd2l0aCBvbGQgcGFsIEFsZXggR2FybGFuZC4gJiM4MjExOyBNTDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogMjB0aCBKdW5lPC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtNy1jaHJpc3RtYXMta2FybWEiPjxzdHJvbmc+Nzwvc3Ryb25nPi4gPHN0cm9uZz5DaHJpc3RtYXMgS2FybWE8L3N0cm9uZz48L2gyPgoKCgo8cD5JIGNhbuKAmXQgcHJldGVuZCB0byBoYXZlIGhhZCBtdWNoIGludGVyZXN0IGluIHNlZWluZyBhbm90aGVyIGFkYXB0YXRpb24gb2YgQ2hhcmxlcyBEaWNrZW7igJlzIDxlbT5BIENocmlzdG1hcyBDYXJvbDwvZW0+LCBidXQgR3VyaW5kZXIgQ2hhZGhh4oCZcyBmaXJzdCBmaWxtIHNpbmNlIGhlciB0ZXJyaWZpYyAyMDE5IG1vdmllIDxlbT5CbGluZGVkIEJ5IFRoZSBMaWdodCA8L2VtPmhhcyBqdXN0IHJldmVyc2VkIHRoYXQuIEEgY29udGVtcG9yYXJ5IHRlbGxpbmcgb2YgdGhlIHRhbGUsIHRoYXQgYXBwZWFycyB0byBoYXZlIGEgbXVzaWNhbCBlZGdlIHRvbywgPGVtPkNocmlzdG1hcyBLYXJtYSA8L2VtPnNob3QgaW4gMjAyNCwgYW5kIEnigJltIGdvaW5nIHRvIGdvIG91dCBvbiBhIGxpbWIgYW5kIHN1Z2dlc3QgdGhhdCBhIHJlbGVhc2Ugc29tZXdoZXJlIGFyb3VuZCBOb3ZlbWJlciBvciBEZWNlbWJlciBpcyBvbiB0aGUgbGlrZWx5IHNpZGUuICYjODIxMTsgU0I8L3A+CgoKCjxwPjxlbT5SZWxlYXNlIGRhdGU6IERlY2VtYmVyIDIwMjU8L2VtPjwvcD4KCgoKPGgyIGNsYXNzPSJ3cC1ibG9jay1oZWFkaW5nIiBpZD0iaC02LW1pc3Npb24taW1wb3NzaWJsZS10aGUtZmluYWwtcmVja29uaW5nIj48c3Ryb25nPjYuIE1pc3Npb246IEltcG9zc2libGUgJiM4MjExOyBUaGUgRmluYWwgUmVja29uaW5nPC9zdHJvbmc+PC9oMj4KCgoKPHA+VG9tIENydWlzZSBvbmNlIGFnYWluIGRpY2VzIHdpdGggZGVhdGggJiM4MjExOyBwZXJoYXBzIGZvciB0aGUgbGFzdCB0aW1lLCBpZiB0aGUgdHJhaWxlcnMgYW5kIHRpdGxlIGFyZSBhbnl0aGluZyB0byBnbyBieSAmIzgyMTE7IGluIHRoZSBsYXRlc3Qgb2YgaGlzIGdsb2JlLXNwYW5uaW5nIHRocmlsbGVycy4gVGhlIEZpbmFsIFJlY2tvbmluZyBpcyB0aGUgc2Vjb25kIGhhbGYgb2YgMjAyM+KAmXMgRGVhZCBSZWNrb25pbmcsIHdoaWNoIG1lYW5zIGl04oCZbGwgc2VlIEV0aGFuIEh1bnQgYW5kIGhpcyB0ZWFtIGVuZ2FnZSBpbiBhIGZpbmFsIHNob3dkb3duIHdpdGggYSBzZW50aWVudCBjb21wdXRlciBpbnRlbnQgb24gdGFraW5nIG92ZXIgdGhlIHdvcmxkLiBFeHBlY3Qgc3R1bnRzLCBleHBsb3Npb25zIGFuZCBtYXliZSBvbmUgb3IgdHdvIHRlYXJzIGJlZm9yZSBiZWR0aW1lLiAmIzgyMTE7IFJMPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiAyMXN0IE1heTwvZW0+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTUtbWlja2V5LTE3Ij48c3Ryb25nPjUuIE1pY2tleSAxNzwvc3Ryb25nPjwvaDI+CgoKCjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWltYWdlIHNpemUtbGFyZ2UiPjxpbWcgc3JjPSJodHRwczovL3NwYWNlcy5maWxtc3Rvcmllcy5jby51ay91cGxvYWRzLzIwMjMvMTEvbWlja2V5LTE3LmpwZWciIGFsdD0ibWlja2V5IDE3IHJvYmVydCBwYXR0aW5zb24iIGNsYXNzPSJ3cC1pbWFnZS01ODc4NiIvPjwvZmlndXJlPgoKCgo8cD5JdOKAmXMgZmFjZWQgZGVsYXlzLCBydW1vdXJzIG9mIGRpcmVjdG9yLXN0dWRpbyBjbGFzaGVzIGFuZCBkZWxheXMgKGFnYWluKSwgYnV0IEJvbmcgSm9vbi1ob+KAmXMgbmV4dCBkaXJlY3RvcmlhbCBvdXRpbmcgYWZ0ZXIgdGhlIE9zY2FyLXdpbm5pbmcgPGVtPlBhcmFzaXRlPC9lbT4gaXMgZmluYWxseSBvbiBpdHMgd2F5LiBSb2JlcnQgUGF0dGluc29uIHN0YXJzIGFzIGEgZG93bi1vbi1oaXMtbHVjayBjb2cgaW4gdGhlIGNvcnBvcmF0ZSBtYWNoaW5lLCBwZXJmb3JtaW5nIGRlYWRseSBtYW51YWwgdGFza3MgYmVmb3JlIGEgbWFjaGluZSBzcGl0cyBvdXQgYW4gaWRlbnRpY2FsIGRvcHBlbGdhbmdlciB3aXRoIChtb3N0IG9mKSBoaXMgbWVtb3JpZXMgaW50YWN0LiBJbiB0cnVlIDxlbT5Nb29uIDwvZW0+c3R5bGUsIHRoaW5ncyBkb27igJl0IHF1aXRlIGdvIHRvIHBsYW4sIGFuZCBNaWNrZXkgMTcgY29tZXMgZmFjZS10by1mYWNlIHdpdGggaGlzIG51bWVyaWNhbCB5b3VuZ2VyIGJyb3RoZXLigKYmbmJzcDsgJiM4MjExOyBKSDwvcD4KCgoKPHA+PGVtPlJlbGVhc2UgZGF0ZTogN3RoIE1hcmNoPC9lbT48L3A+CgoKCjxmaWd1cmUgY2xhc3M9IndwLWJsb2NrLWVtYmVkIGlzLXR5cGUtdmlkZW8gaXMtcHJvdmlkZXIteW91dHViZSB3cC1ibG9jay1lbWJlZC15b3V0dWJlIHdwLWVtYmVkLWFzcGVjdC0xNi05IHdwLWhhcy1hc3BlY3QtcmF0aW8iPjxkaXYgY2xhc3M9IndwLWJsb2NrLWVtYmVkX193cmFwcGVyIj4KPGlmcmFtZSB0aXRsZT0iTmV3IE1JQ0tFWSAxNyBVSyB0cmFpbGVyIGxhbmRzISIgd2lkdGg9IjE3NzgiIGhlaWdodD0iMTAwMCIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9YZmw3QkM4RHdWTT9mZWF0dXJlPW9lbWJlZCIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlOyB3ZWItc2hhcmUiIHJlZmVycmVycG9saWN5PSJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+CjwvZGl2PjwvZmlndXJlPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTQtZnJhbmtlbnN0ZWluIj48c3Ryb25nPjQuIEZyYW5rZW5zdGVpbjwvc3Ryb25nPjwvaDI+CgoKCjxwPlRoZXJlIGhhdmUgYmVlbiBtYW55LCBtYW55IHByZXZpb3VzIGF0dGVtcHRzIHRvIHR1cm4gTWFyeSBTaGVsbGV54oCZcyBzZW1pbmFsIHdvcmsgb2YgcHJvdG8gc2NpZW5jZSBmaWN0aW9uIGludG8gYSBtb3ZpZSwgaW5jbHVkaW5nIEphbWVzIFdoYWxl4oCZcyBjbGFzc2ljLCBLZW5uZXRoIEJyYW5hZ2jigJlzIDE5OTBzIHZlcnNpb24sIGFuZCAyMDE14oCZcyA8ZW0+VmljdG9yIEZyYW5rZW5zdGVpbiA8L2VtPiYjODIxMTsgYW4gYWRhcHRhdGlvbiBub2JvZHkgdGFsa3MgYWJvdXQgYWxsIHRoYXQgbXVjaCB0aGVzZSBkYXlzLiBUaGUgbGF0ZXN0IHRha2Ugb24gdGhlIG1hdGVyaWFsLCBob3dldmVyLCBpcyB3cml0dGVuIGFuZCBkaXJlY3RlZCBieSBHdWlsbGVybW8gZGVsIFRvcm8sIGEgZGlyZWN0b3Igd2hvIGtub3dzIGEgdGhpbmcgb3IgdHdvIGFib3V0IG1vbnN0ZXJzIGFuZCBHb3RoaWMgaG9ycm9yIGxpdGVyYXR1cmUuIFRoZSBhbGwtc3RhciBjYXN0IGluY2x1ZGVzIE9zY2FyIElzYWFjIGFzIHRoZSBzY2llbnRpc3QgVmljdG9yIEZyYW5rZW5zdGVpbjsgSmFjb2IgRWxvcmRpIGFzIGhpcyBtb25zdGVyIChhIGhhbmRzb21lIGNoYXAsIGFzIGhl4oCZcyBkZXNjcmliZWQgaW4gU2hlbGxleeKAmXMgdGV4dCkgYW5kIHRoZSBsaWtlcyBvZiBNaWEgR290aCAobm9taW5hdGl2ZSBkZXRlcm1pbmlzbSB0aGVyZSksIENoYXJsZXMgRGFuY2UgYW5kIHRoZSBncmF2ZWwtdm9pY2VkIFJhbHBoIEluZXNvbiBpbiBzdXBwb3J0aW5nIHJvbGVzLiBJdOKAmXMgZ29pbmcgdG8gYmUgYSBjb3JrZXIgaXNu4oCZdCBpdD8gU3VyZWx5LiAmIzgyMTE7IFJMPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiBOb3ZlbWJlciAyMDI1PC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMy10aGUtYmF0dGxlLW9mLWJha3Rhbi1jcm9zcyI+PHN0cm9uZz4zLiBUaGUgQmF0dGxlIE9mIEJha3RhbiBDcm9zcyA8L3N0cm9uZz48L2gyPgoKCgo8cD5XaGF0IG1pZ2h0IGp1c3QgYmUgUGF1bCBUaG9tYXMgQW5kZXJzb27igJlzIGJpZ2dlc3QgZmlsbSB5ZXQgaXMgYmFycmVsaW5nIGludG8gY2luZW1hcyBpbiBBdWd1c3QsIHBhaXJpbmcgdGhlIEFtZXJpY2FuIGNpbmVtYSBkYXJsaW5nIHdpdGggTGVvbmFyZG8gRGlDYXByaW8sIFJlZ2luYSBIYWxsIGFuZCBhIGdlbnJlIGRlc2NyaXB0aW9uIGNvbnRhaW5pbmcgdGhyZWUgb2Ygb3VyIGZhdm91cml0ZSB3b3JkcyAoY3JpbWUtZHJhbWEtdGhyaWxsZXIsIGFwcGFyZW50bHkpLiBSdW1vdXJlZCB0byBoYXZlIGJlZW4gaW5zcGlyZWQgYnkgVGhvbWFzIFB5bmNob24mIzgyMTc7cyAxOTkwIHBvbGl0aWNhbCBzYXRpcmUsIDxlbT5WaW5lbGFuZDwvZW0+LCB0aGUgZmlsbSA8ZW0+bWlnaHQ8L2VtPiBiZSBhIHdyeSBsb29rIGF0IEFtZXJpY2HigJlzIGdyZWF0IHBvc3Qtc2l4dGllcyBjb21lZG93biBpbnRvIHRoZSBwcmVzaWRlbmNpZXMgb2YgTml4b24gYW5kIFJlYWdhbi4gVGhlbiBhZ2FpbiwgaXQgbWlnaHQgbm90LiBTbmVha3kgc2NvdW5kcmVscywgdGhlc2UgZmlsbW1ha2VyLXR5cGVzLiAmIzgyMTE7IEpIPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiA4dGggQXVndXN0PC9lbT48L3A+CgoKCjxoMiBjbGFzcz0id3AtYmxvY2staGVhZGluZyIgaWQ9ImgtMi1kaWUtbXktbG92ZSI+PHN0cm9uZz4yLiBEaWUgTXkgTG92ZTwvc3Ryb25nPjwvaDI+CgoKCjxwPkxhc3QgdGltZSBKZW5uaWZlciBMYXdyZW5jZSBwbGF5ZWQgYSBtb3RoZXIgc3RydWdnbGluZyB3aXRoIGhlciBtZW50YWwgaGVhbHRoLCB0aGUgcmVzdWx0IHdhcyBEYXJyZW4gQXJvbm9mc2t54oCZcyBzaW5ndWxhciBob3Jyb3IgZmlsbSA8ZW0+TW90aGVyISw8L2VtPiBidXQgdGhpcyB0aW1lLCB0aGUgYWN0cmVzcyB0ZWFtcyB1cCB3aXRoIEx5bm5lIFJhbXNheS4gPGVtPkRpZSwgTXkgTG92ZTwvZW0+IGlzIGFkYXB0ZWQgZnJvbSBBcmlhbmEgSGFyd2ljeuKAmXMgbm92ZWwgYW5kIExhd3JlbmNlIHdpbGwgYmUgam9pbmVkIGJ5IFJvYmVydCBQYXR0aW5zb24sIExhS2VpdGggU3RhbmZpZWxkLCBTaXNzeSBTcGFjZWsgYW5kIE5pY2sgTm9sdGUgaW4gdGhlIGZpbG0gaW4gd2hpY2ggTGF3cmVuY2XigJlzIG1vdGhlciBmaW5kcyBoZXJzZWxmIGluIHRoZSB0aHJvdHRsZXMgb2YgcG9zdHBhcnR1bSBkZXByZXNzaW9uLCB3aGljaCBzZW5kcyBoZXIgaW50byBwc3ljaG9zaXMuIExldOKAmXMgaG9wZSBubyBiYWJpZXMgZ2V0IGRldm91cmVkIGluIHRoaXMgb25lLCBidXQgd2UgY2Fu4oCZdCBtYWtlIGFueSBwcm9taXNlcyBvbiB0aGF0LiAmIzgyMTE7IE1MPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiBUQkMgMjAyNTwvZW0+PC9wPgoKCgo8aDIgY2xhc3M9IndwLWJsb2NrLWhlYWRpbmciIGlkPSJoLTEtc2lubmVycyI+PHN0cm9uZz4xLiBTaW5uZXJzPC9zdHJvbmc+PC9oMj4KCgoKPGZpZ3VyZSBjbGFzcz0id3AtYmxvY2stZW1iZWQgaXMtdHlwZS12aWRlbyBpcy1wcm92aWRlci15b3V0dWJlIHdwLWJsb2NrLWVtYmVkLXlvdXR1YmUgd3AtZW1iZWQtYXNwZWN0LTE2LTkgd3AtaGFzLWFzcGVjdC1yYXRpbyI+PGRpdiBjbGFzcz0id3AtYmxvY2stZW1iZWRfX3dyYXBwZXIiPgo8aWZyYW1lIHRpdGxlPSJTSU5ORVJTIG1vdmllIC0gdGhlIGZ1bGwgVUsgdHJhaWxlciBmb3IgaW5jb21pbmcgdmFtcGlyZSBmaWxtISIgd2lkdGg9IjE3NzgiIGhlaWdodD0iMTAwMCIgc3JjPSJodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9yQTgtSF9PVzdLND9mZWF0dXJlPW9lbWJlZCIgZnJhbWVib3JkZXI9IjAiIGFsbG93PSJhY2NlbGVyb21ldGVyOyBhdXRvcGxheTsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlOyB3ZWItc2hhcmUiIHJlZmVycmVycG9saWN5PSJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+CjwvZGl2PjwvZmlndXJlPgoKCgo8cD5UaGUgYWlyIG9mIHNlY3JlY3kgc3Vycm91bmRpbmcgd3JpdGVyLWRpcmVjdG9yIFJ5YW4gQ29vZ2xlcuKAmXMgbGF0ZXN0IGZpbG0gaGFzIGJlZW4gc3VjaCB0aGF0LCB1bnRpbCByZWxhdGl2ZWx5IHJlY2VudGx5LCBpdCBkaWRu4oCZdCBoYXZlIGEgdGl0bGUuIDxlbT5TaW5uZXJzPC9lbT4sIGFzIGl04oCZcyBzaW5jZSBiZWVuIG5hbWVkLCBpcyBvbmUgb2YgYSBzdXJwcmlzaW5nbHkgbGFyZ2UgbnVtYmVyIG9mIHZhbXBpcmUgbW92aWVzIHdl4oCZdmUgc2VlbiBsZWFwIG91dCBvZiB0aGUgY3J5cHQgaW4gcmVjZW50IG1vbnRoczsgaXRzIHJhbmtzIGluY2x1ZGUgUm9iZXJ0IEVnZ2Vyc+KAmTxlbT4gTm9zZmVyYXR1LCBTYWxlbeKAmXMgTG90LCBBYmlnYWlsLCBTbGF5PC9lbT4gYW5kIHByb2JhYmx5IHNvbWUgb3RoZXJzIHdl4oCZdmUgZm9yZ290dGVuIGFib3V0LiBBbmQgd2FzbuKAmXQgQ2hyaXN0b3BoZXIgTm9sYW4gcnVtb3VyZWQgdG8gYmUgZGlyZWN0aW5nIGEgdmFtcGlyZSBmbGljayBhdCBvbmUgc3RhZ2U/IEJ1dCB3ZSBkaWdyZXNzLiBDb29nbGVy4oCZcyBmaWxtIGlzIGEgcGVyaW9kIHBpZWNlIHNldCBpbiB0aGUgRGVlcCBTb3V0aCwgd2l0aCByZWd1bGFyIGNvbGxhYm9yYXRvciBNaWNoYWVsIEIgSm9yZGFuIHBsYXlpbmcgdHdpbiBicm90aGVycyB3aG8gZmluZCBhbiBldmlsIChwcm9iYWJseSB0b290aHNvbWUpIHByZXNlbmNlIGluIHRoZWlyIG9sZCBob21ldG93bi4gQ29vZ2xlcuKAmXMgb25lIG9mIHRoZSBtb3N0IHRhbGVudGVkIGN1cnJlbnRseSB3b3JraW5nOyB0aGUgdHJhaWxlciBsb29rZWQgYWNlLiBPdXIgZmFuZ3MgYXJlIHJlYWR5LiAmIzgyMTE7IFJMPC9wPgoKCgo8cD48ZW0+UmVsZWFzZSBkYXRlOiAxOHRoIEFwcmlsPC9lbT48L3A+CgoKCiYjODIxMjsKPFA+CjxzdHJvbmc+VGhhbmsgeW91IGZvciB2aXNpdGluZyHCoElmIHlvdSYjODIxNztkIGxpa2UgdG8gc3VwcG9ydCBvdXIgYXR0ZW1wdHMgdG8gbWFrZSBhIG5vbi1jbGlja2JhaXR5IG1vdmllIHdlYnNpdGU6PC9zdHJvbmc+CjxQPgo8UD4KPGVtPkZvbGxvdyBGaWxtIFN0b3JpZXMgb24gVHdpdHRlcsKgPGEgaHJlZj0iaHR0cHM6Ly90d2l0dGVyLmNvbS9maWxtc3Rvcmllc3BvZCI+aGVyZTwvYT4sIGFuZCBvbiBGYWNlYm9va8KgPGEgaHJlZj0iaHR0cHM6Ly9mYWNlYm9vay5jb20vZmlsbXN0b3JpZXNvbmxpbmUiPmhlcmU8L2E+LjwvZW0+CjxQPgo8ZW0+QnV5IG91ciBGaWxtIFN0b3JpZXMgYW5kIEZpbG0gSnVuaW9yIHByaW50IG1hZ2F6aW5lc8KgPGEgaHJlZj0iaHR0cHM6Ly9maWxtLXN0b3JpZXMubXlzaG9waWZ5LmNvbS8iPmhlcmU8L2E+LjwvZW0+CjxQPgo8ZW0+QmVjb21lIGEgUGF0cm9uIDxhIGhyZWY9Imh0dHBzOi8vd3d3LnBhdHJlb24uY29tL3NpbW9uYnJldyI+aGVyZTwvYT4uPC9lbT4KPFA+CjxkaXYgaWQ9ImNvbGxlY3Rpb24tY29tcG9uZW50LTE1NzAwNTExNjY4MDciPjwvZGl2Pgo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci8qPCFbQ0RBVEFbKi8gKGZ1bmN0aW9uICgpIHsgdmFyIHNjcmlwdFVSTCA9ICdodHRwczovL3Nka3Muc2hvcGlmeWNkbi5jb20vYnV5LWJ1dHRvbi9sYXRlc3QvYnV5LWJ1dHRvbi1zdG9yZWZyb250Lm1pbi5qcyc7IGlmICh3aW5kb3cuU2hvcGlmeUJ1eSkgeyBpZiAod2luZG93LlNob3BpZnlCdXkuVUkpIHsgU2hvcGlmeUJ1eUluaXQoKTsgfSBlbHNlIHsgbG9hZFNjcmlwdCgpOyB9IH0gZWxzZSB7IGxvYWRTY3JpcHQoKTsgfSBmdW5jdGlvbiBsb2FkU2NyaXB0KCkgeyB2YXIgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7IHNjcmlwdC5hc3luYyA9IHRydWU7IHNjcmlwdC5zcmMgPSBzY3JpcHRVUkw7IChkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgnaGVhZCcpWzBdIHx8IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCdib2R5JylbMF0pLmFwcGVuZENoaWxkKHNjcmlwdCk7IHNjcmlwdC5vbmxvYWQgPSBTaG9waWZ5QnV5SW5pdDsgfSBmdW5jdGlvbiBTaG9waWZ5QnV5SW5pdCgpIHsgdmFyIGNsaWVudCA9IFNob3BpZnlCdXkuYnVpbGRDbGllbnQoeyBkb21haW46ICdmaWxtLXN0b3JpZXMubXlzaG9waWZ5LmNvbScsIHN0b3JlZnJvbnRBY2Nlc3NUb2tlbjogJ2M3YWFlYzJhZTc5NDkyMzY2ZjA0ZTY2NzYyODg5ZjczJywgfSk7IFNob3BpZnlCdXkuVUkub25SZWFkeShjbGllbnQpLnRoZW4oZnVuY3Rpb24gKHVpKSB7IHVpLmNyZWF0ZUNvbXBvbmVudCgnY29sbGVjdGlvbicsIHsgaWQ6ICcxNTA4NjkxMTQ5MTUnLCBub2RlOiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29sbGVjdGlvbi1jb21wb25lbnQtMTU3MDA1MTE2NjgwNycpLCBtb25leUZvcm1hdDogJyVDMiVBMyU3QiU3QmFtb3VudCU3RCU3RCcsIG9wdGlvbnM6IHsgInByb2R1Y3QiOiB7ICJzdHlsZXMiOiB7ICJwcm9kdWN0IjogeyAiQG1lZGlhIChtaW4td2lkdGg6IDYwMXB4KSI6IHsgIm1heC13aWR0aCI6ICJjYWxjKDI1JSAtIDIwcHgpIiwgIm1hcmdpbi1sZWZ0IjogIjIwcHgiLCAibWFyZ2luLWJvdHRvbSI6ICI1MHB4IiwgIndpZHRoIjogImNhbGMoMjUlIC0gMjBweCkiIH0sICJpbWciOiB7ICJoZWlnaHQiOiAiY2FsYygxMDAlIC0gMTVweCkiLCAicG9zaXRpb24iOiAiYWJzb2x1dGUiLCAibGVmdCI6ICIwIiwgInJpZ2h0IjogIjAiLCAidG9wIjogIjAiIH0sICJpbWdXcmFwcGVyIjogeyAicGFkZGluZy10b3AiOiAiY2FsYyg3NSUgKyAxNXB4KSIsICJwb3NpdGlvbiI6ICJyZWxhdGl2ZSIsICJoZWlnaHQiOiAiMCIgfSB9LCAiYnV0dG9uIjogeyAiZm9udC1zaXplIjogIjE2cHgiLCAicGFkZGluZy10b3AiOiAiMTZweCIsICJwYWRkaW5nLWJvdHRvbSI6ICIxNnB4IiB9LCAicXVhbnRpdHlJbnB1dCI6IHsgImZvbnQtc2l6ZSI6ICIxNnB4IiwgInBhZGRpbmctdG9wIjogIjE2cHgiLCAicGFkZGluZy1ib3R0b20iOiAiMTZweCIgfSB9LCAidGV4dCI6IHsgImJ1dHRvbiI6ICJBZGQgdG8gY2FydCIgfSB9LCAicHJvZHVjdFNldCI6IHsgInN0eWxlcyI6IHsgInByb2R1Y3RzIjogeyAiQG1lZGlhIChtaW4td2lkdGg6IDYwMXB4KSI6IHsgIm1hcmdpbi1sZWZ0IjogIi0yMHB4IiB9IH0gfSB9LCAibW9kYWxQcm9kdWN0IjogeyAiY29udGVudHMiOiB7ICJpbWciOiBmYWxzZSwgImltZ1dpdGhDYXJvdXNlbCI6IHRydWUsICJidXR0b24iOiBmYWxzZSwgImJ1dHRvbldpdGhRdWFudGl0eSI6IHRydWUgfSwgInN0eWxlcyI6IHsgInByb2R1Y3QiOiB7ICJAbWVkaWEgKG1pbi13aWR0aDogNjAxcHgpIjogeyAibWF4LXdpZHRoIjogIjEwMCUiLCAibWFyZ2luLWxlZnQiOiAiMHB4IiwgIm1hcmdpbi1ib3R0b20iOiAiMHB4IiB9IH0sICJidXR0b24iOiB7ICJmb250LXNpemUiOiAiMTZweCIsICJwYWRkaW5nLXRvcCI6ICIxNnB4IiwgInBhZGRpbmctYm90dG9tIjogIjE2cHgiIH0sICJxdWFudGl0eUlucHV0IjogeyAiZm9udC1zaXplIjogIjE2cHgiLCAicGFkZGluZy10b3AiOiAiMTZweCIsICJwYWRkaW5nLWJvdHRvbSI6ICIxNnB4IiB9IH0gfSwgImNhcnQiOiB7ICJzdHlsZXMiOiB7ICJidXR0b24iOiB7ICJmb250LXNpemUiOiAiMTZweCIsICJwYWRkaW5nLXRvcCI6ICIxNnB4IiwgInBhZGRpbmctYm90dG9tIjogIjE2cHgiIH0sICJ0aXRsZSI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0sICJoZWFkZXIiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAibGluZUl0ZW1zIjogeyAiY29sb3IiOiAiIzRjNGM0YyIgfSwgInN1YnRvdGFsVGV4dCI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0sICJzdWJ0b3RhbCI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0sICJub3RpY2UiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAiY3VycmVuY3kiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAiY2xvc2UiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiwgIjpob3ZlciI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0gfSwgImVtcHR5IjogeyAiY29sb3IiOiAiIzRjNGM0YyIgfSwgIm5vdGVEZXNjcmlwdGlvbiI6IHsgImNvbG9yIjogIiM0YzRjNGMiIH0sICJkaXNjb3VudFRleHQiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAiZGlzY291bnRJY29uIjogeyAiZmlsbCI6ICIjNGM0YzRjIiB9LCAiZGlzY291bnRBbW91bnQiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9IH0gfSwgInRvZ2dsZSI6IHsgInN0eWxlcyI6IHsgImNvdW50IjogeyAiZm9udC1zaXplIjogIjE2cHgiIH0gfSB9LCAibGluZUl0ZW0iOiB7ICJzdHlsZXMiOiB7ICJ2YXJpYW50VGl0bGUiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAidGl0bGUiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAicHJpY2UiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiB9LCAiZnVsbFByaWNlIjogeyAiY29sb3IiOiAiIzRjNGM0YyIgfSwgImRpc2NvdW50IjogeyAiY29sb3IiOiAiIzRjNGM0YyIgfSwgImRpc2NvdW50SWNvbiI6IHsgImZpbGwiOiAiIzRjNGM0YyIgfSwgInF1YW50aXR5IjogeyAiY29sb3IiOiAiIzRjNGM0YyIgfSwgInF1YW50aXR5SW5jcmVtZW50IjogeyAiY29sb3IiOiAiIzRjNGM0YyIsICJib3JkZXItY29sb3IiOiAiIzRjNGM0YyIgfSwgInF1YW50aXR5RGVjcmVtZW50IjogeyAiY29sb3IiOiAiIzRjNGM0YyIsICJib3JkZXItY29sb3IiOiAiIzRjNGM0YyIgfSwgInF1YW50aXR5SW5wdXQiOiB7ICJjb2xvciI6ICIjNGM0YzRjIiwgImJvcmRlci1jb2xvciI6ICIjNGM0YzRjIiB9IH0gfSB9LCB9KTsgfSk7IH0gfSkoKTsgLypdXT4qLwo8L3NjcmlwdD4K
Share this Article:

Related Stories

More like this