ICAgIENoYW5nZUxvZwoKICAgIFByZWhpc3RvcnkgTWFydGluIFRpc2NoaOR1c2VyIDxtYXJ0aW5AaWtjYmFya2EuZnprLmRlPgoJICAgICAgIEluaXRpYWwgcmVnaXN0ZXItc2V0dGluZyBjb2RlIChmcm9tIHByb2Zvcm0tMS4wKS4KICAgIDE5OTcxMjE2ICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CiAgICAgICAgICAgICAgIE9yaWdpbmFsIHZlcnNpb24gZm9yIC9wcm9jL210cnIgaW50ZXJmYWNlLCBTTVAtc2FmZS4KICB2MS4wCiAgICAxOTk3MTIxNyAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgogICAgICAgICAgICAgICBCdWcgZml4IGZvciBpb2N0bHMoKSdzLgoJICAgICAgIEFkZGVkIHNhbXBsZSBjb2RlIGluIERvY3VtZW50YXRpb24vbXRyci50eHQKICB2MS4xCiAgICAxOTk3MTIxOCAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgogICAgICAgICAgICAgICBEaXNhbGxvdyBvdmVybGFwcGluZyByZWdpb25zLgogICAgMTk5NzEyMTkgICBKZW5zIE1hdXJlciA8am1hdXJlckBtZW51ZXR0LnJoZWluLW1haW4uZGU+CiAgICAgICAgICAgICAgIFJlZ2lzdGVyLXNldHRpbmcgZml4dXBzLgogIHYxLjIKICAgIDE5OTcxMjIyICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CiAgICAgICAgICAgICAgIEZpeHVwcyBmb3Iga2VybmVsIDIuMS43NS4KICB2MS4zCiAgICAxOTk3MTIyOSAgIERhdmlkIFdyYWdnIDxkcHdAZG9jLmljLmFjLnVrPgogICAgICAgICAgICAgICBSZWdpc3Rlci1zZXR0aW5nIGZpeHVwcyBhbmQgY29uZm9ybWl0eSB3aXRoIEludGVsIGNvbnZlbnRpb25zLgogICAgMTk5NzEyMjkgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KICAgICAgICAgICAgICAgQ29zbWV0aWMgY2hhbmdlcyBhbmQgd3JvdGUgdGhpcyBDaGFuZ2VMb2cgOy0pCiAgICAxOTk4MDEwNiAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgogICAgICAgICAgICAgICBGaXh1cHMgZm9yIGtlcm5lbCAyLjEuNzguCiAgdjEuNAogICAgMTk5ODAxMTkgICBEYXZpZCBXcmFnZyA8ZHB3QGRvYy5pYy5hYy51az4KICAgICAgICAgICAgICAgSW5jbHVkZWQgcGFzc2l2ZS1yZWxlYXNlIGVuYWJsZSBjb2RlIChlbHNld2hlcmUgaW4gUENJIHNldHVwKS4KICB2MS41CiAgICAxOTk4MDEzMSAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgogICAgICAgICAgICAgICBSZXBsYWNlZCBnbG9iYWwga2VybmVsIGxvY2sgd2l0aCBwcml2YXRlIHNwaW5sb2NrLgogIHYxLjYKICAgIDE5OTgwMjAxICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CiAgICAgICAgICAgICAgIEFkZGVkIHdhaXQgZm9yIG90aGVyIENQVXMgdG8gY29tcGxldGUgY2hhbmdlcy4KICB2MS43CiAgICAxOTk4MDIwMiAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgogICAgICAgICAgICAgICBCdWcgZml4IGluIGRlZmluaXRpb24gb2YgPHNldF9tdHJyPiBmb3IgVVAuCiAgdjEuOAogICAgMTk5ODAzMTkgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KICAgICAgICAgICAgICAgRml4dXBzIGZvciBrZXJuZWwgMi4xLjkwLgogICAgMTk5ODAzMjMgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KICAgICAgICAgICAgICAgTW92ZSBTTVAgQklPUyBmaXh1cCBiZWZvcmUgc2Vjb25kYXJ5IENQVXMgY2FsbCA8Y2FsaWJyYXRlX2RlbGF5PgogIHYxLjkKICAgIDE5OTgwMzI1ICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CiAgICAgICAgICAgICAgIEZpeGVkIHRlc3QgZm9yIG92ZXJsYXBwaW5nIHJlZ2lvbnM6IGNvbmZ1c2VkIGJ5IGFkamFjZW50IHJlZ2lvbnMKICAgIDE5OTgwMzI2ICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CiAgICAgICAgICAgICAgIEFkZGVkIHdiaW52ZCBpbiA8c2V0X210cnJfcHJlcGFyZT4uCiAgICAxOTk4MDQwMSAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgogICAgICAgICAgICAgICBCdWcgZml4IGZvciBub24tU01QIGNvbXBpbGF0aW9uLgogICAgMTk5ODA0MTggICBEYXZpZCBXcmFnZyA8ZHB3QGRvYy5pYy5hYy51az4KICAgICAgICAgICAgICAgRml4ZWQtTVRSUiBzeW5jaHJvbmlzYXRpb24gZm9yIFNNUCBhbmQgdXNlIGF0b21pYyBvcGVyYXRpb25zCgkgICAgICAgaW5zdGVhZCBvZiBzcGlubG9ja3MuCiAgICAxOTk4MDQxOCAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgoJICAgICAgIERpZmZlcmVudGlhdGUgZGlmZmVyZW50IE1UUlIgcmVnaXN0ZXIgY2xhc3NlcyBmb3IgQklPUyBmaXh1cC4KICB2MS4xMAogICAgMTk5ODA0MTkgICBEYXZpZCBXcmFnZyA8ZHB3QGRvYy5pYy5hYy51az4KCSAgICAgICBCdWcgZml4IGluIHZhcmlhYmxlIE1UUlIgc3luY2hyb25pc2F0aW9uLgogIHYxLjExCiAgICAxOTk4MDQxOSAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgoJICAgICAgIEZpeHVwcyBmb3Iga2VybmVsIDIuMS45Ny4KICB2MS4xMgogICAgMTk5ODA0MjEgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KCSAgICAgICBTYWZlciBzeW5jaHJvbmlzYXRpb24gYWNyb3NzIENQVXMgd2hlbiBjaGFuZ2luZyBNVFJScy4KICB2MS4xMwogICAgMTk5ODA0MjMgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KCSAgICAgICBCdWdmaXggZm9yIFNNUCBzeXN0ZW1zIHdpdGhvdXQgTVRSUiBzdXBwb3J0LgogIHYxLjE0CiAgICAxOTk4MDQyNyAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgoJICAgICAgIFRyYXAgY2FsbHMgdG8gPG10cnJfYWRkPiBhbmQgPG10cnJfZGVsPiBvbiBub24tTVRSUiBtYWNoaW5lcy4KICB2MS4xNQogICAgMTk5ODA0MjcgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KCSAgICAgICBVc2UgYXRvbWljIGJpdG9wcyBmb3Igc2V0dGluZyBTTVAgY2hhbmdlIG1hc2suCiAgdjEuMTYKICAgIDE5OTgwNDI4ICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CgkgICAgICAgUmVtb3ZlZCBzcHVyaW91cyBkaWFnbm9zdGljIG1lc3NhZ2UuCiAgdjEuMTcKICAgIDE5OTgwNDI5ICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CgkgICAgICAgTW92ZWQgcmVnaXN0ZXItc2V0dGluZyBtYWNyb3MgaW50byB0aGlzIGZpbGUuCgkgICAgICAgTW92ZWQgc2V0dXAgY29kZSBmcm9tIGluaXQvbWFpbi5jIHRvIGkzODYtc3BlY2lmaWMgYXJlYXMuCiAgdjEuMTgKICAgIDE5OTgwNTAyICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CgkgICAgICAgTW92ZWQgTVRSUiBkZXRlY3Rpb24gb3V0c2lkZSBjb25kaXRpb25hbHMgaW4gPG10cnJfaW5pdD4uCiAgdjEuMTkKICAgIDE5OTgwNTAyICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CgkgICAgICAgRG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudDogbWVudGlvbiBQZW50aXVtIElJIGFuZCBBR1AuCiAgdjEuMjAKICAgIDE5OTgwNTIxICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CgkgICAgICAgT25seSBtYW5pcHVsYXRlIGludGVycnVwdCBlbmFibGUgZmxhZyBvbiBsb2NhbCBDUFUuCgkgICAgICAgQWxsb3cgZW5jbG9zZWQgdW5jYWNoYWJsZSByZWdpb25zLgogIHYxLjIxCiAgICAxOTk4MDYxMSAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgoJICAgICAgIEFsd2F5cyBkZWZpbmUgPG1haW5fbG9jaz4uCiAgdjEuMjIKICAgIDE5OTgwOTAxICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CgkgICAgICAgUmVtb3ZlZCBtb2R1bGUgc3VwcG9ydCBpbiBvcmRlciB0byB0aWR5IHVwIGNvZGUuCgkgICAgICAgQWRkZWQgc2FuaXR5IGNoZWNrIGZvciA8bXRycl9hZGQ+LzxtdHJyX2RlbD4gYmVmb3JlIDxtdHJyX2luaXQ+LgoJICAgICAgIENyZWF0ZWQgYWRkaXRpb24gcXVldWUgZm9yIHByaW9yIHRvIFNNUCBjb21tZW5jZS4KICB2MS4yMwogICAgMTk5ODA5MDIgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KCSAgICAgICBQb3J0ZWQgcGF0Y2ggdG8ga2VybmVsIDIuMS4xMjAtcHJlMy4KICB2MS4yNAogICAgMTk5ODA5MTAgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KCSAgICAgICBSZW1vdmVkIHNhbml0eSBjaGVja3MgYW5kIGFkZGl0aW9uIHF1ZXVlOiBMaW51cyBwcmVmZXJzIGFuIE9PUFMuCiAgdjEuMjUKICAgIDE5OTgxMDAxICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CgkgICAgICAgRml4ZWQgaGFybWxlc3MgY29tcGlsZXIgd2FybmluZyBpbiBpbmNsdWRlL2FzbS1pMzg2L210cnIuaAoJICAgICAgIEZpeGVkIHZlcnNpb24gbnVtYmVyaW5nIGFuZCBoaXN0b3J5IGZvciB2MS4yMyAtPiB2MS4yNC4KICB2MS4yNgogICAgMTk5OTAxMTggICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KCSAgICAgICBBZGRlZCBkZXZmcyBzdXBwb3J0LgogIHYxLjI3CiAgICAxOTk5MDEyMyAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgoJICAgICAgIENoYW5nZWQgbG9ja2luZyB0byBzcGluIHdpdGggcmVzY2hlZHVsZS4KCSAgICAgICBNYWRlIHVzZSBvZiBuZXcgPHNtcF9jYWxsX2Z1bmN0aW9uPi4KICB2MS4yOAogICAgMTk5OTAyMDEgICBab2x04W4gQvZzevZybelueWkgPHpib3N6b3JAbWFpbC5leHRlcm5ldC5odT4KCSAgICAgICBFeHRlbmRlZCB0aGUgZHJpdmVyIHRvIGJlIGFibGUgdG8gdXNlIEN5cml4IHN0eWxlIEFSUnMuCiAgICAxOTk5MDIwNCAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgoJICAgICAgIFJlc3RydWN0dXJlZCBDeXJpeCBzdXBwb3J0LgogIHYxLjI5CiAgICAxOTk5MDIwNCAgIFpvbHThbiBC9nN69nJt6W55aSA8emJvc3pvckBtYWlsLmV4dGVybmV0Lmh1PgoJICAgICAgIFJlZmluZWQgQVJSIHN1cHBvcnQ6IGVuYWJsZSBNQVBFTiBpbiBzZXRfbXRycl9wcmVwYXJlKCkKCSAgICAgICBhbmQgZGlzYWJsZSBNQVBFTiBpbiBzZXRfbXRycl9kb25lKCkuCiAgICAxOTk5MDIwNSAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgoJICAgICAgIE1pbm9yIGNsZWFudXBzLgogIHYxLjMwCiAgICAxOTk5MDIwOCAgIFpvbHThbiBC9nN69nJt6W55aSA8emJvc3pvckBtYWlsLmV4dGVybmV0Lmh1PgogICAgICAgICAgICAgICBQcm90ZWN0IHBsYWluIDZ4ODZzIChhbmQgb3RoZXIgcHJvY2Vzc29ycyB3aXRob3V0IHRoZQogICAgICAgICAgICAgICBQYWdlIEdsb2JhbCBFbmFibGUgZmVhdHVyZSkgYWdhaW5zdCBhY2Nlc3NpbmcgQ1I0IGluCiAgICAgICAgICAgICAgIHNldF9tdHJyX3ByZXBhcmUoKSBhbmQgc2V0X210cnJfZG9uZSgpLgogICAgMTk5OTAyMTAgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KCSAgICAgICBUdXJuZWQgPHNldF9tdHJyX3VwPiBhbmQgPGdldF9tdHJyPiBpbnRvIGZ1bmN0aW9uIHBvaW50ZXJzLgogIHYxLjMxCiAgICAxOTk5MDIxMiAgIFpvbHThbiBC9nN69nJt6W55aSA8emJvc3pvckBtYWlsLmV4dGVybmV0Lmh1PgogICAgICAgICAgICAgICBNYWpvciByZXdyaXRlIG9mIGN5cml4X2Fycl9pbml0KCk6IGRvIG5vdCB0b3VjaCBBUlJzLAogICAgICAgICAgICAgICBsZWF2ZSB0aGVtIGFzIHRoZSBCSU9TIGhhdmUgc2V0IHRoZW0gdXAuCiAgICAgICAgICAgICAgIEVuYWJsZSB1c2FnZSBvZiBhbGwgOCBBUlJzLgogICAgICAgICAgICAgICBBdm9pZCBtdWx0aXBsaWNhdGlvbnMgYnkgMyBldmVyeXdoZXJlIGFuZCBvdGhlcgogICAgICAgICAgICAgICBjb2RlIGNsZWFuIHVwcy9zcGVlZCB1cHMuCiAgICAxOTk5MDIxMyAgIFpvbHThbiBC9nN69nJt6W55aSA8emJvc3pvckBtYWlsLmV4dGVybmV0Lmh1PgogICAgICAgICAgICAgICBTZXQgdXAgb3RoZXIgQ3lyaXggcHJvY2Vzc29ycyBpZGVudGljYWwgdG8gdGhlIGJvb3QgY3B1LgogICAgICAgICAgICAgICBTaW5jZSBDeXJpeCBkb24ndCBzdXBwb3J0IEludGVsIEFQSUMsIHRoaXMgaXMgbCdhcnQgcG91ciBsJ2FydC4KICAgICAgICAgICAgICAgV2VpZ2ggQVJScyBieSBzaXplOgogICAgICAgICAgICAgICBJZiBzaXplIDw9IDMyTSBpcyBnaXZlbiwgc2V0IHVwIEFSUiMgd2Ugd2VyZSBnaXZlbi4KICAgICAgICAgICAgICAgSWYgc2l6ZSA+ICAzMk0gaXMgZ2l2ZW4sIHNldCB1cCBBUlI3IG9ubHkgaWYgaXQgaXMgZnJlZSwKICAgICAgICAgICAgICAgZmFpbCBvdGhlcndpc2UuCiAgICAxOTk5MDIxNCAgIFpvbHThbiBC9nN69nJt6W55aSA8emJvc3pvckBtYWlsLmV4dGVybmV0Lmh1PgogICAgICAgICAgICAgICBBbHNvIGNoZWNrIGZvciBzaXplID49IDI1NksgaWYgd2UgYXJlIHRvIHNldCB1cCBBUlI3LAogICAgICAgICAgICAgICBtdHJyX2FkZCgpIHJldHVybnMgdGhlIHZhbHVlIGl0IGdldHMgZnJvbSBzZXRfbXRycigpCiAgICAxOTk5MDIxOCAgIFpvbHThbiBC9nN69nJt6W55aSA8emJvc3pvckBtYWlsLmV4dGVybmV0Lmh1PgogICAgICAgICAgICAgICBSZW1vdmUgQ3lyaXggImNvbWEgYnVnIiB3b3JrYXJvdW5kIGZyb20gaGVyZS4KICAgICAgICAgICAgICAgTW92ZWQgdG8gbGludXgvYXJjaC9pMzg2L2tlcm5lbC9zZXR1cC5jIGFuZAogICAgICAgICAgICAgICBsaW51eC9pbmNsdWRlL2FzbS1pMzg2L2J1Z3MuaAogICAgMTk5OTAyMjggICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KCSAgICAgICBBZGRlZCBNVFJSSU9DX0tJTExfRU5UUlkgaW9jdGwoMikKCSAgICAgICBUcmFwIGZvciBjb3VudGVyIHVuZGVyZmxvdyBpbiA8bXRycl9maWxlX2RlbD4uCgkgICAgICAgVHJhcCBmb3IgNCBNaUIgYWxpZ25lZCByZWdpb25zIGZvciBQUHJvLCBzdGVwcGluZyA8PSA3LgogICAgMTk5OTAzMDEgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KCSAgICAgICBDcmVhdGVkIDxnZXRfZnJlZV9yZWdpb24+IGhvb2suCiAgICAxOTk5MDMwNSAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgoJICAgICAgIFRlbXBvcmFyaWx5IGRpc2FibGUgQU1EIHN1cHBvcnQgbm93IE1UUlIgY2FwYWJpbGl0eSBmbGFnIGlzIHNldC4KICB2MS4zMgogICAgMTk5OTAzMDggICBab2x04W4gQvZzevZybelueWkgPHpib3N6b3JAbWFpbC5leHRlcm5ldC5odT4KCSAgICAgICBBZGp1c3QgbXkgY2hhbmdlcyAoMTk5OTAyMTItMTk5OTAyMTgpIHRvIFJpY2hhcmQgR29vY2gncwoJICAgICAgIGxhdGVzdCBjaGFuZ2VzLiAoMTk5OTAyMjgtMTk5OTAzMDUpCiAgdjEuMzMKICAgIDE5OTkwMzA5ICAgUmljaGFyZCBHb29jaCA8cmdvb2NoQGF0bmYuY3Npcm8uYXU+CgkgICAgICAgRml4ZWQgdHlwbyBpbiA8cHJpbnRrPiBtZXNzYWdlLgogICAgMTk5OTAzMTAgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KCSAgICAgICBTdXBwb3J0IEs2LUlJL0lJSSBiYXNlZCBvbiBBbGFuIENveCdzIDxhbGFuQHJlZGhhdC5jb20+IHBhdGNoZXMuCiAgdjEuMzQKICAgIDE5OTkwNTExICAgQmFydCBIYXJ0Z2VycyA8YmFydEBldHBtb2QucGh5cy50dWUubmw+CgkgICAgICAgU3VwcG9ydCBDZW50YXVyIEM2IE1DUidzLgogICAgMTk5OTA1MTIgICBSaWNoYXJkIEdvb2NoIDxyZ29vY2hAYXRuZi5jc2lyby5hdT4KCSAgICAgICBNaW5vciBjbGVhbnVwcy4KICB2MS4zNQogICAgMTk5OTA3MDcgICBab2x04W4gQvZzevZybelueWkgPHpib3N6b3JAbWFpbC5leHRlcm5ldC5odT4KICAgICAgICAgICAgICAgQ2hlY2sgd2hldGhlciBBUlIzIGlzIHByb3RlY3RlZCBpbiBjeXJpeF9nZXRfZnJlZV9yZWdpb24oKQogICAgICAgICAgICAgICBhbmQgbXRycl9kZWwoKS4gVGhlIGNvZGUgd29uJ3QgYXR0ZW1wdCB0byBkZWxldGUgb3IgY2hhbmdlIGl0CiAgICAgICAgICAgICAgIGZyb20gbm93IG9uIGlmIHRoZSBCSU9TIHByb3RlY3RlZCBBUlIzLiBJdCBzaWxlbnRseSBza2lwcyBBUlIzCiAgICAgICAgICAgICAgIGluIGN5cml4X2dldF9mcmVlX3JlZ2lvbigpIG9yIHJldHVybnMgd2l0aCBhbiBlcnJvciBjb2RlIGZyb20KICAgICAgICAgICAgICAgbXRycl9kZWwoKS4KICAgIDE5OTkwNzExICAgWm9sdOFuIEL2c3r2cm3pbnlpIDx6Ym9zem9yQG1haWwuZXh0ZXJuZXQuaHU+CiAgICAgICAgICAgICAgIFJlc2V0IHNvbWUgYml0cyBpbiB0aGUgQ0NScyBpbiBjeXJpeF9hcnJfaW5pdCgpIHRvIGRpc2FibGUgU01NCiAgICAgICAgICAgICAgIGlmIEFSUjMgaXNuJ3QgcHJvdGVjdGVkLiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIGlmIFNNTSBpcyBhY3RpdmUKICAgICAgICAgICAgICAgYW5kIEFSUjMgaXNuJ3QgcHJvdGVjdGVkIHRoZW4gZGVsZXRpbmcgYW5kIHNldHRpbmcgQVJSMyBhZ2FpbgogICAgICAgICAgICAgICBtYXkgbG9jayB1cCB0aGUgcHJvY2Vzc29yLiBXaXRoIFNNTSBlbnRpcmVseSBkaXNhYmxlZCwgaXQgZG9lcwogICAgICAgICAgICAgICBub3QgaGFwcGVuLgogICAgMTk5OTA4MTIgICBab2x04W4gQvZzevZybelueWkgPHpib3N6b3JAbWFpbC5leHRlcm5ldC5odT4KICAgICAgICAgICAgICAgUmVhcnJhbmdlIHN3aXRjaCgpIHN0YXRlbWVudHMgc28gdGhlIGRyaXZlciBhY2NvbW9kYXRlcyB0bwogICAgICAgICAgICAgICB0aGUgZmFjdCB0aGF0IHRoZSBBTUQgQXRobG9uIGhhbmRsZXMgaXRzIE1UUlJzIHRoZSBzYW1lIHdheQogICAgICAgICAgICAgICBhcyBJbnRlbCBkb2VzLgogICAgMTk5OTA4MTQgICBab2x04W4gQvZzevZybelueWkgPHpib3N6b3JAbWFpbC5leHRlcm5ldC5odT4KCSAgICAgICBEb3VibGUgY2hlY2sgZm9yIEludGVsIGluIG10cnJfYWRkKCkncyBiaWcgc3dpdGNoKCkgYmVjYXVzZQoJICAgICAgIHRoYXQgcmV2aXNpb24gY2hlY2sgaXMgb25seSB2YWxpZCBmb3IgSW50ZWwgQ1BVcy4KICAgIDE5OTkwODE5ICAgQWxhbiBDb3ggPGFsYW5AcmVkaGF0LmNvbT4KICAgICAgICAgICAgICAgVGVzdGVkIFpvbHRhbidzIGNoYW5nZXMgb24gYSBwcmUgcHJvZHVjdGlvbiBBdGhsb24gLSAxMDAlCiAgICAgICAgICAgICAgIHN1Y2Nlc3MuCiAgICAxOTk5MTAwOCAgIE1hbmZyZWQgU3ByYXVsIDxtYW5mcmVkc0Bjb2xvcmZ1bGxpZmUuY29tPgogICAgCSAgICAgICByZXBsYWNlZCBzcGluX2xvY2tfcmVzY2hlZHVsZSgpIHdpdGggYSBub3JtYWwgc2VtYXBob3JlLgogIHYxLjM2CiAgICAyMDAwMDIyMSAgIFJpY2hhcmQgR29vY2ggPHJnb29jaEBhdG5mLmNzaXJvLmF1PgogICAgICAgICAgICAgICBDb21waWxlIGZpeCBpZiBwcm9jZnMgYW5kIGRldmZzIG5vdCBlbmFibGVkLgoJICAgICAgIEZvcm1hdHRpbmcgY2hhbmdlcy4KICB2MS4zNwogICAgMjAwMDExMDkgICBILiBQZXRlciBBbnZpbiA8aHBhQHp5dG9yLmNvbT4KCSAgICAgICBVc2UgdGhlIG5ldyBjZW50cmFsaXplZCBDUFUgZmVhdHVyZSBkZXRlY3RzLgoKICB2MS4zOAogICAgMjAwMTAzMDkgICBEYXZlIEpvbmVzIDxkYXZlakBzdXNlLmRlPgoJICAgICAgIEFkZCBzdXBwb3J0IGZvciBDeXJpeCBJSUkuCgogIHYxLjM5CiAgICAyMDAxMDMxMiAgIERhdmUgSm9uZXMgPGRhdmVqQHN1c2UuZGU+CiAgICAgICAgICAgICAgIFVnaCwgSSBicm9rZSBBTUQgc3VwcG9ydC4KCSAgICAgICBSZXdvcmtlZCBmaXggYnkgVHJvZWxzIFdhbHN0ZWQgSGFuc2VuIDx0cm9lbHNAdGh1bGUubm8+CgogIHYxLjQwCiAgICAyMDAxMDMyNyAgIERhdmUgSm9uZXMgPGRhdmVqQHN1c2UuZGU+CgkgICAgICAgQWRhcHRlZCBDeXJpeCBJSUkgc3VwcG9ydCB0byBpbmNsdWRlIFZJQSBDMy4KCiAgdjIuMAogICAgMjAwMjAzMDYgICBQYXRyaWNrIE1vY2hlbCA8bW9jaGVsQG9zZGwub3JnPgogICAgICAgICAgICAgICBTcGxpdCBtdHJyLmMgLT4gbXRyci8qLmMKICAgICAgICAgICAgICAgQ29udmVydGVkIHRvIExpbnV4IEtlcm5lbCBDb2RpbmcgU3R5bGUKICAgICAgICAgICAgICAgRml4ZWQgc2V2ZXJhbCBtaW5vciBuaXRzIGluIGZvcm0KICAgICAgICAgICAgICAgTW92ZWQgc29tZSBTTVAtb25seSBmdW5jdGlvbnMgb3V0LCBzbyB0aGV5IGNhbiBiZSB1c2VkCiAgICAgICAgICAgICAgICBmb3IgcG93ZXIgbWFuYWdlbWVudCBpbiB0aGUgZnV0dXJlLgogICAgICAgICAgICAgICBUT0RPOiBGaXggdXNlciBpbnRlcmZhY2UgY3J1ZnQuCg==