ZGlmZiAtLWdpdCBhL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9naXRpbGVzLmNzcyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9naXRpbGVzLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYzU3NTE5Ci0tLSAvZGV2L251bGwKKysrIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL2dpdGlsZXMuY3NzCkBAIC0wLDAgKzEsMzE5IEBACisvKioKKyAqIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisgKgorICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKyAqCisgKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisgKgorICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisgKi8KKworLyogQ29tbW9uIHN0eWxlcyBhbmQgZGVmaW5pdGlvbnMuICovCisKK2gxIHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDA7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgIG1hcmdpbi10b3A6IDVweDsKK30KKy5tZW51IHsKKyAgcG9zaXRpb246IGFic29sdXRlOworICB0b3A6IDA7CisgIHJpZ2h0OiAwOworICBmb250LXNpemU6IDEwcHQ7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgIHRleHQtYWxpZ246IHJpZ2h0OworICBtYXJnaW4tdG9wOiA1cHg7CisgIG1hcmdpbi1yaWdodDogNXB4OworfQorLm1lbnUgLmVudHJ5IHsKKyAgcGFkZGluZy1yaWdodDogNXB4OworICBib3JkZXItcmlnaHQ6IDFweCBzb2xpZCBibGFjazsKKyAgbWFyZ2luLXJpZ2h0OiAwOworfQoraDIgeworICBtYXJnaW4tdG9wOiAzZW07Cit9CisuYnJlYWRjcnVtYnMgeworICBtYXJnaW4tdG9wOiAzZW07CisgIGZvbnQtc2l6ZTogMTUwJTsKKyAgYm9yZGVyLWJvdHRvbTogI2RkZCBzb2xpZCAxcHg7IC8qIEJPUkRFUiAqLworfQordGFibGUubGlzdCB7CisgIG1hcmdpbi10b3A6IDFlbTsKKyAgd2lkdGg6IDkwJTsKK30KK3RhYmxlLmxpc3QgdHIubm8taG92ZXI6aG92ZXIgeworICBiYWNrZ3JvdW5kOiAjZmZmOworfQordGFibGUubGlzdCB0cjpob3Zlciwgb2wubGlzdCBsaTpob3ZlciwgcHJlLnByZXR0eXByaW50IGxpOmhvdmVyIHsKKyAgYmFja2dyb3VuZDogI2VlZTsgLyogSE9WRVJfQkFDS0dST1VORCAqLworfQordGFibGUubGlzdCB0ZCB7CisgIHdoaXRlLXNwYWNlOiBub3dyYXA7CisgIHBhZGRpbmctdG9wOiAwLjI1ZW07CisgIHBhZGRpbmctYm90dG9tOiAwLjI1ZW07Cit9CisubG9nLWxpbmsgeworICBtYXJnaW4tbGVmdDogMC41ZW0KK30KKworCisvKiBTdHlsZXMgZm9yIHRoZSBob3N0IGluZGV4IHBhZ2UuICovCisKKy5pbnN0cnVjdGlvbnMgeworICB3aWR0aDogNDVlbTsKKyAgbWFyZ2luLWxlZnQ6IDFlbTsKKyAgbWFyZ2luLXJpZ2h0OiAxZW07CisgIGJvcmRlci10b3A6IDFweCBzb2xpZCAjNTU1OworICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzU1NTsKKyAgY29sb3I6ICM1NTU7Cit9CisuaW5zdHJ1Y3Rpb25zIHByZSB7CisgIGRpc3BsYXk6IGJsb2NrOworICBtYXJnaW4tbGVmdDogMWVtOworICBib3JkZXItbGVmdDogMnB4IHNvbGlkICMwNjA7CisgIHBhZGRpbmctbGVmdDogMWVtOworICB3aGl0ZS1zcGFjZTogbm93cmFwOworfQorLmZvb3RlciB7CisgIHRleHQtYWxpZ246IHJpZ2h0OworICBiYWNrZ3JvdW5kOiAjZWVlOworICBwYWRkaW5nLXJpZ2h0OiAxZW07CisgIHdpZHRoOiA5MCU7Cit9CisuZm9vdGVyIGEgeworICBjb2xvcjogYmxhY2s7CisgIGZvbnQtd2VpZ2h0OiBib2xkOworICBmb250LXNpemU6IDcwJTsKK30KKworCisvKiBTdHlsZXMgZm9yIHRoZSByZXBvc2l0b3J5IGluZGV4IHBhZ2UuICovCisKKy5yZXBvc2l0b3J5LWRlc2NyaXB0aW9uIHsKKyAgYm9yZGVyLWJvdHRvbTogI2RkZCBzb2xpZCAxcHg7IC8qIEJPUkRFUiAqLworICBwYWRkaW5nLWJvdHRvbTogNXB4OyAvKiBWUEFERElORyAqLworfQorLnJlcG9zaXRvcnktcmVmcyB7CisgIHdpZHRoOiA0NTBweDsKK30KKy5yZXBvc2l0b3J5LWJyYW5jaGVzIHsKKyAgZmxvYXQ6IGxlZnQ7CisgIHdpZHRoOiAyMDBweDsKK30KKy5yZXBvc2l0b3J5LXRhZ3MgeworICBmbG9hdDogcmlnaHQ7CisgIHdpZHRoOiAyNTBweDsKK30KKy5jbG9uZS1saW5lIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogI2U1ZWNmOTsgLyogQk9YX0JBQ0tHUk9VTkQgKi8KKyAgYm9yZGVyOiBub25lOworICBtYXJnaW46IDVweCAvKiBWUEFERElORyAqLyAwIDAgMDsKKyAgcGFkZGluZzogNXB4IDJlbTsgLyogUEFERElORyAqLworICBmb250LXNpemU6IDlwdDsKK30KKworCisvKiBTdHlsZXMgZm9yIHRoZSBvYmplY3QgZGV0YWlsIHRlbXBsYXRlcy4gKi8KKworLnNoYTEgeworICBjb2xvcjogIzY2NjsKKyAgZm9udC1zaXplOiA5cHQ7Cit9CitkaXYuc2hhMSB7CisgIHBhZGRpbmctdG9wOiA1cHg7IC8qIFZQQURESU5HICovCit9CisKKy5naXQtY29tbWl0LCAuZ2l0LXRhZyB7CisgIGZvbnQtc2l6ZTogOXB0OworICBib3JkZXItYm90dG9tOiAjZGRkIHNvbGlkIDFweDsgLyogQk9SREVSICovCisgIHBhZGRpbmc6IDVweCAyZW07IC8qIFBBRERJTkcgKi8KK30KKy5naXQtY29tbWl0IHRhYmxlLCAuZ2l0LXRhZyB0YWJsZSB7CisgIG1hcmdpbjogMDsKK30KKy5naXQtY29tbWl0IHRhYmxlIHRoLCAuZ2l0LXRhZyB0YWJsZSB0aCB7CisgIHRleHQtYWxpZ246IHJpZ2h0OworfQorcHJlLmNvbW1pdC1tZXNzYWdlLCBwcmUudGFnLW1lc3NhZ2UgeworICBib3JkZXItYm90dG9tOiAjZGRkIHNvbGlkIDFweDsgLyogQk9SREVSICovCisgIHBhZGRpbmc6IDVweCAyZW07IC8qIFBBRERJTkcgKi8KKyAgY29sb3I6ICMwMDA7CisgIGZvbnQtc2l6ZTogOXB0OworICBtYXJnaW46IDA7Cit9CisKK3VsLmRpZmYtdHJlZSB7CisgIGZvbnQtc2l6ZTogOXB0OworICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7CisgIG1hcmdpbjogMDsKKyAgcGFkZGluZzogNXB4IDJlbTsgLyogUEFERElORyAqLworfQordWwuZGlmZi10cmVlIC5hZGQgeworICBjb2xvcjogIzA2MDsKK30KK3VsLmRpZmYtdHJlZSAuZGVsZXRlIHsKKyAgY29sb3I6ICM2MDA7Cit9Cit1bC5kaWZmLXRyZWUgLnJlbmFtZSwgdWwuZGlmZi10cmVlIC5jb3B5IHsKKyAgY29sb3I6ICMwMDY7Cit9CitzcGFuLmRpZmYtbGluaywgdWwuZGlmZi10cmVlIC5hZGQsIHVsLmRpZmYtdHJlZSAubW9kaWZ5LCB1bC5kaWZmLXRyZWUgLmRlbGV0ZSwKKyAgICB1bC5kaWZmLXRyZWUgLnJlbmFtZSwgdWwuZGlmZi10cmVlIC5jb3B5IHsKKyAgbWFyZ2luLWxlZnQ6IDAuNWVtOworfQorLmRpZmYtc3VtbWFyeSB7CisgIGZvbnQtc2l6ZTogOXB0OworICBmb250LXN0eWxlOiBpdGFsaWM7CisgIHBhZGRpbmc6IDVweCAyZW07IC8qIFBBRERJTkcgKi8KKyAgYm9yZGVyLWJvdHRvbTogI2RkZCBzb2xpZCAxcHg7IC8qIEJPUkRFUiAqLworfQorCitvbC5maWxlcyB7CisgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKKyAgbWFyZ2luLWxlZnQ6IDFlbTsKKyAgZm9udC1zaXplOiAxMHB0OworICBsaW5lLWhlaWdodDogbm9ybWFsOworfQorCisvKiBUcmVlIGljb25zIGFyZSB0YWtlbiBmcm9tIHRoZSBwdWJsaWMgZG9tYWluIEFwYWNoZSBzdGFuZGFyZCBpY29uczoKKyAqIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9pY29ucy8gKi8KK29sLmZpbGVzIGxpLmdpdC10cmVleworICAvKiBzbWFsbC9mb2xkZXIucG5nICovCisgIGxpc3Qtc3R5bGUtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVlBQUFBZjgvOWhBQUFBQm1KTFIwUUFBQUFBQUFENVE3dC9BQUFBQ1hCSVdYTUFBQUJJQUFBQVNBQkd5V3MrQUFBQUNYWndRV2NBQUFBUUFBQUFFQUJjeHEzREFBQUEra2xFUVZRNHk2M1RNV3ZDUUJqRzhmOHIrUm91UlNlN09OY2h1Q1RRc1pTNkZOTEJTUXJkaTFQbUZoY25od3BPVWpvSzNpSXZSV2NkblAwcTE2RmNTT1NpamZTWmpodCtQTnk5cjZncUFHRVlXZ0JWRlNwRUFOdHExbmw3VFFDSWs1UThkQTRPQVBabXhIWDBBc0J5T2l3MFdrNkhSSjAyMHZCREFsaDcrTW91SE9RYXVVU2RObWE5SlU3U0FoSWNWOXFia1JjeTY2MzNEUUpLVWdiOUdUaUc1T291ZTU5OGF1Y0FBUE85QStEamMzVVpjQ3IvQS9TZTM3T2FsUUZWbGZsaVE1eWtGMEUxK0oydUt0Q2cvMmpkdWZDTitmbWZMelk4M043d2ROOHRSY2FUbVhqbndBZVZSZHc2bjRwYkxJQldzdzdBZURJVGdCL09USEVmRjNHNm9BQUFBQUJKUlU1RXJrSmdnZz09KTsKK30KK29sLmZpbGVzIGxpLnN5bWxpbmt7CisgIC8qIHNtYWxsL2ZvcndhcmQucG5nICovCisgIGxpc3Qtc3R5bGUtaW1hZ2U6IHVybChkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUJBQUFBQVFDQVFBQUFDMStqZnFBQUFBQW1KTFIwUUFBS3FOSXpJQUFBQUpjRWhaY3dBQUFFZ0FBQUJJQUViSmF6NEFBQUFKZG5CQlp3QUFBQkFBQUFBUUFGekdyY01BQUFDdFNVUkJWQ2pQZlpHeEVZTXdERVdmZk5Uc3dBcGNHcytSWTRLVXREU1pnSWJXSlJOd1dTSG5qaWJIQ3RraEN5aUZEWVlFK0tyay8wL1M5eGRQUXE0ZjRRZlp1dWtwRkM2eUkzanBJejRVZXhQdXlpRk1yc01KRGViSk9jd2J4NVdTTWw0UVRzeVhxVmtCTkZpZzVBYWd3VSsxZFRFQ0k0NDZ1bkJNMmdhN25YSlFWajBlUFBXcHhFQWxIZmJRaGZnbGcwRW54aFZsYVNVSzVxaGcvcFVtMGh0QmtrRlBKYXNWLzBqQmZ3SHNka285a1VDb013QUFBQUJKUlU1RXJrSmdnZz09KTsKK30KK29sLmZpbGVzIGxpLnJlZ3VsYXItZmlsZXsKKyAgLyogc21hbGwvdGV4dC5wbmcgKi8KKyAgbGlzdC1zdHlsZS1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBUUFBQUMxK2pmcUFBQUFBbUpMUjBRQUFLcU5JeklBQUFBSmNFaFpjd0FBQUVnQUFBQklBRWJKYXo0QUFBQUpkbkJCWndBQUFCQUFBQUFRQUZ6R3JjTUFBQUNEU1VSQlZDalBZenpBZ0I4d29RdWMrWS9LWnp6MzN4Q0plNTVCa21FcGd3a2pIaE1rR0tKUlRNRlFjSjdoT1lNSkkwSUpDd01EQTRNVlhQb1loUDJmZ2NFRVdjRTZKQk9PTVJ4a1pHQllqV3BDRUpJMEE0UDkveGRJR3RCTWVNSEF3Q0RCSUlHdUlJZ0JGUnpEYlFJbW9KY0p4L0NaOElteDkvOTlET0Z6REtGUUZnQmo2eUd3aHRFek93QUFBQUJKUlU1RXJrSmdnZz09KQorfQorb2wuZmlsZXMgbGkuZXhlY3V0YWJsZS1maWxleworICAvKiBzbWFsbC9wYXRjaC5wbmcgKi8KKyAgbGlzdC1zdHlsZS1pbWFnZTogdXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBUUFBQUMxK2pmcUFBQUFBbUpMUjBRQS80ZVB6TDhBQUFBSmNFaFpjd0FBQUVnQUFBQklBRWJKYXo0QUFBQUpkbkJCWndBQUFCQUFBQUFRQUZ6R3JjTUFBQUNEU1VSQlZDalBsWSt4RFlNd0VFVy9JNGFnWllSUXNnb2prQzRaQXpwMm9qTWp1UFFZandKRWN2Z1NLVit5enJLZW52OUovMmJrOGhENVRDUmprZHZWVUtzM2xnSllsZlVLYnlSRTdnYm9qcmtFdHdPQUpBMTgvVUtDN0hXWWpyTVhMWUJKU1ErbEV5bUFwK3gwREhZNmhrYXpHc2ZnckFud2MwMmJxZzBqcWZTZXR3Mmo3bGNoN1RadmZRQUFBQ1IwUlZoMFkyOXRiV1Z1ZEFCaWVTQk5ZWEowYVc0dVMzSmhaVzFsY2tCTlkyZ3VVMDVKTGtSbGFDUEY2UUFBQUFCSlJVNUVya0pnZ2c9PSk7Cit9CitvbC5maWxlcyBsaS5naXRsaW5reworICAvKiBzbWFsbC9jb250aW51ZWQucG5nICovCisgIGxpc3Qtc3R5bGUtaW1hZ2U6dXJsKGRhdGE6aW1hZ2UvcG5nO2Jhc2U2NCxpVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBQkFBQUFBUUNBUUFBQUMxK2pmcUFBQUFBbUpMUjBRQUFLcU5JeklBQUFBSmNFaFpjd0FBQUVnQUFBQklBRWJKYXo0QUFBQUpkbkJCWndBQUFCQUFBQUFRQUZ6R3JjTUFBQUNQU1VSQlZDalB6ZEN4YmNOQUZJUGg3d1F2a1RJakJFamoxaXNjWEdVU1RaREdMalZDS3VGV0NLNUxjL0FLR29VcHBOcTFXZjE4SUI0SWx1NjVKaThTbURPeTJ6bnpRZU9naVRtTFpvUTFWYldHa1dZeGgybWsrdkJkR2g2K1hEelFMTjVVSXljMmQ5dngrQWQvNEJkTnBUdEh6cm1sdTBVY3RGKzcwckhtM1dlQk5WekxYbkp6TGZiQUt5ejVUUC9yZWtHSzVQclpmZ0FBQUFCSlJVNUVya0pnZ2c9PSk7Cit9CisKKworLyogU3R5bGVzIGZvciB0aGUgcGF0aCBkZXRhaWwgcGFnZS4gKi8KKworLnN5bWxpbmstZGV0YWlsLCAuZ2l0bGluay1kZXRhaWwgeworICBtYXJnaW4tbGVmdDogMWVtOworICBjb2xvcjogIzY2NjsKKyAgZm9udC1zdHlsZTogaXRhbGljOworICBmb250LXNpemU6IDEwcHQ7Cit9CisKKworLyogU3R5bGVzIGZvciB0aGUgbG9nIGRldGFpbCBwYWdlLiAqLworCitvbC5zaG9ydGxvZyB7CisgIGxpc3Qtc3R5bGUtdHlwZTogbm9uZTsKKyAgbWFyZ2luOiAwOworICBwYWRkaW5nOiA1cHggMmVtOyAvKiBQQURESU5HICovCit9CitvbC5zaG9ydGxvZyBsaSB7CisgIGJvcmRlci1ib3R0b206ICNkZGQgc29saWQgMXB4OyAvKiBCT1JERVIgKi8KKyAgcGFkZGluZy10b3A6IDJweDsKKyAgcGFkZGluZy1ib3R0b206IDJweDsKK30KK29sLnNob3J0bG9nIGxpLmZpcnN0IHsKKyAgYm9yZGVyLXRvcDogI2RkZCBzb2xpZCAxcHg7IC8qIEJPUkRFUiAqLworfQorb2wuc2hvcnRsb2cgbGk6aG92ZXIgeworICBiYWNrZ3JvdW5kOiAjZWVlOyAvKiBIT1ZFUl9CQUNLR1JPVU5EICovCit9CitvbC5zaG9ydGxvZyAuc2hhMSB7CisgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7Cit9CisubG9nLW5hdiB7CisgIG1hcmdpbi10b3A6IDVweDsKKyAgdGV4dC1hbGlnbjogY2VudGVyOworfQorLmF1dGhvciB7CisgIHBhZGRpbmctbGVmdDogM3B4OworfQorLnRpbWUgeworICBmb250LXNpemU6IDlwdDsgLyogU0hPUlRMT0dfU01BTExfRk9OVF9TSVpFICovCisgIGZvbnQtc3R5bGU6IGl0YWxpYzsKK30KKy5icmFuY2gtbGFiZWwsIC50YWctbGFiZWwgeworICBmb250LXNpemU6IDlwdDsgLyogU0hPUlRMT0dfU01BTExfRk9OVF9TSVpFICovCisgIG1hcmdpbi1sZWZ0OiAzcHg7Cit9CithLmJyYW5jaC1sYWJlbCB7CisgIGNvbG9yOiAjZGQ0YjM5OworfQorYS50YWctbGFiZWwgeworICBjb2xvcjogIzAwOTkzMzsKK30KKworCisvKiBTdHlsZXMgZm9yIHRoZSBkaWZmIGRldGFpbCB0ZW1wbGF0ZS4gKi8KKworLmRpZmYtaGVhZGVyIHsKK30KKy5kaWZmLWdpdCB7CisgIGNvbG9yOiAjNDQ0OworICBmb250LXdlaWdodDogYm9sZDsKK30KK2EuZGlmZi1naXQ6aG92ZXIgeworICB0ZXh0LWRlY29yYXRpb246IG5vbmU7Cit9CisuZGlmZi1oZWFkZXIsIC5kaWZmLXVuaWZpZWQgeworICBjb2xvcjogIzAwMDsKKyAgZm9udC1zaXplOiA5cHQ7CisgIG1hcmdpbjogMDsKKyAgcGFkZGluZy1sZWZ0OiAyZW07Cit9CisuZGlmZi11bmlmaWVkIHsKKyAgYm9yZGVyLWJvdHRvbTogI2RkZCBzb2xpZCAxcHg7IC8qIEJPUkRFUiAqLworfQorLmRpZmYtdW5pZmllZCAuaCB7CisgIGNvbG9yOiBkYXJrYmx1ZTsKK30KKy5kaWZmLXVuaWZpZWQgLmQgeworICBjb2xvcjogZGFya3JlZDsKK30KKy5kaWZmLXVuaWZpZWQgLmkgeworICBjb2xvcjogZGFya2dyZWVuOworfQorCisKKy8qIE92ZXJyaWRlIHNvbWUgc3R5bGVzIGZyb20gdGhlIGRlZmF1bHQgcHJldHRpZnkuY3NzLiAqLworCisvKiBMaW5lIG51bWJlcnMgb24gYWxsIGxpbmVzLiAqLworbGkuTDAsIGxpLkwxLCBsaS5MMiwgbGkuTDMsIGxpLkw0LCBsaS5MNSwgbGkuTDYsIGxpLkw3LCBsaS5MOCwgbGkuTDkgeworICBsaXN0LXN0eWxlLXR5cGU6IGRlY2ltYWw7Cit9CisKKy8qIERpc2FibGUgYWx0ZXJuYXRpbmcgbGluZSBiYWNrZ3JvdW5kIGNvbG9yLiAqLworbGkuTDAsIGxpLkwxLCBsaS5MMiwgbGkuTDMsIGxpLkw0LCBsaS5MNSwgbGkuTDYsIGxpLkw3LCBsaS5MOCwgbGkuTDkgeworICBiYWNrZ3JvdW5kOiAjZmZmOworfQorCitwcmUuZ2l0LWJsb2IgeworICBib3JkZXItdG9wOiAjZGRkIHNvbGlkIDFweDsgLyogQk9SREVSICovCisgIGJvcmRlci1ib3R0b206ICNkZGQgc29saWQgMXB4OyAvKiBCT1JERVIgKi8KKyAgYm9yZGVyLWxlZnQ6IG5vbmU7CisgIGJvcmRlci1yaWdodDogbm9uZTsKKyAgcGFkZGluZy1sZWZ0OiAxZW07CisgIHBhZGRpbmctYm90dG9tOiA1cHg7CisgIGZvbnQtZmFtaWx5OiBtb25vc3BhY2U7CisgIGZvbnQtc2l6ZTogOHB0OworfQorcHJlLnByZXR0eXByaW50IG9sIHsKKyAgY29sb3I6IGdyZXk7Cit9CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvQ09QWUlORyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9DT1BZSU5HCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM3YTQxYzAKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvQ09QWUlORwpAQCAtMCwwICsxLDIxNCBAQAorZ29vZ2xlLWNvZGUtcHJldHRpZnkgZG93bmxvYWRlZCBmcm9tOgoraHR0cDovL2dvb2dsZS1jb2RlLXByZXR0aWZ5Lmdvb2dsZWNvZGUuY29tL2ZpbGVzL3ByZXR0aWZ5LXNtYWxsLTEtSnVuLTIwMTEudGFyLmJ6MgorCitBbGwgZmlsZXMgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCB3aXRoIHRoZSBmb2xsb3dpbmcgY29weXJpZ2h0czoKK3ByZXR0aWZ5LmpzOiBDb3B5cmlnaHQgKEMpIDIwMDYgR29vZ2xlIEluYy4KK2xhbmctYXBvbGxvLmpzOiBDb3B5cmlnaHQgKEMpIDIwMDkgT25ubyBIb21tZXMuCitsYW5nLWNsai5qczogKiBAbGljZW5zZSBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4KK2xhbmctY3NzLmpzOiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4KK2xhbmctZ28uanM6IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLgorbGFuZy1ocy5qczogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuCitsYW5nLWxpc3AuanM6IENvcHlyaWdodCAoQykgMjAwOCBHb29nbGUgSW5jLgorbGFuZy1sdWEuanM6IENvcHlyaWdodCAoQykgMjAwOCBHb29nbGUgSW5jLgorbGFuZy1tbC5qczogQ29weXJpZ2h0IChDKSAyMDA4IEdvb2dsZSBJbmMuCitsYW5nLW4uanM6IENvcHlyaWdodCAoQykgMjAxMSBaaW1pbiBBLlYuCitsYW5nLXByb3RvLmpzOiBDb3B5cmlnaHQgKEMpIDIwMDYgR29vZ2xlIEluYy4KK2xhbmctc2NhbGEuanM6IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLgorbGFuZy1zcWwuanM6IENvcHlyaWdodCAoQykgMjAwOCBHb29nbGUgSW5jLgorbGFuZy10ZXguanM6IENvcHlyaWdodCAoQykgMjAxMSBNYXJ0aW4gUy4KK2xhbmctdmIuanM6IENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUgSW5jLgorbGFuZy13aWtpLmpzOiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4KK2xhbmcteHEuanM6IENvcHlyaWdodCAoQykgMjAxMSBQYXRyaWNrIFdpZWQKKworPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQorCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcGFjaGUgTGljZW5zZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyc2lvbiAyLjAsIEphbnVhcnkgMjAwNAorICAgICAgICAgICAgICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzLworCisgICBURVJNUyBBTkQgQ09ORElUSU9OUyBGT1IgVVNFLCBSRVBST0RVQ1RJT04sIEFORCBESVNUUklCVVRJT04KKworICAgMS4gRGVmaW5pdGlvbnMuCisKKyAgICAgICJMaWNlbnNlIiBzaGFsbCBtZWFuIHRoZSB0ZXJtcyBhbmQgY29uZGl0aW9ucyBmb3IgdXNlLCByZXByb2R1Y3Rpb24sCisgICAgICBhbmQgZGlzdHJpYnV0aW9uIGFzIGRlZmluZWQgYnkgU2VjdGlvbnMgMSB0aHJvdWdoIDkgb2YgdGhpcyBkb2N1bWVudC4KKworICAgICAgIkxpY2Vuc29yIiBzaGFsbCBtZWFuIHRoZSBjb3B5cmlnaHQgb3duZXIgb3IgZW50aXR5IGF1dGhvcml6ZWQgYnkKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIgdGhhdCBpcyBncmFudGluZyB0aGUgTGljZW5zZS4KKworICAgICAgIkxlZ2FsIEVudGl0eSIgc2hhbGwgbWVhbiB0aGUgdW5pb24gb2YgdGhlIGFjdGluZyBlbnRpdHkgYW5kIGFsbAorICAgICAgb3RoZXIgZW50aXRpZXMgdGhhdCBjb250cm9sLCBhcmUgY29udHJvbGxlZCBieSwgb3IgYXJlIHVuZGVyIGNvbW1vbgorICAgICAgY29udHJvbCB3aXRoIHRoYXQgZW50aXR5LiBGb3IgdGhlIHB1cnBvc2VzIG9mIHRoaXMgZGVmaW5pdGlvbiwKKyAgICAgICJjb250cm9sIiBtZWFucyAoaSkgdGhlIHBvd2VyLCBkaXJlY3Qgb3IgaW5kaXJlY3QsIHRvIGNhdXNlIHRoZQorICAgICAgZGlyZWN0aW9uIG9yIG1hbmFnZW1lbnQgb2Ygc3VjaCBlbnRpdHksIHdoZXRoZXIgYnkgY29udHJhY3Qgb3IKKyAgICAgIG90aGVyd2lzZSwgb3IgKGlpKSBvd25lcnNoaXAgb2YgZmlmdHkgcGVyY2VudCAoNTAlKSBvciBtb3JlIG9mIHRoZQorICAgICAgb3V0c3RhbmRpbmcgc2hhcmVzLCBvciAoaWlpKSBiZW5lZmljaWFsIG93bmVyc2hpcCBvZiBzdWNoIGVudGl0eS4KKworICAgICAgIllvdSIgKG9yICJZb3VyIikgc2hhbGwgbWVhbiBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eQorICAgICAgZXhlcmNpc2luZyBwZXJtaXNzaW9ucyBncmFudGVkIGJ5IHRoaXMgTGljZW5zZS4KKworICAgICAgIlNvdXJjZSIgZm9ybSBzaGFsbCBtZWFuIHRoZSBwcmVmZXJyZWQgZm9ybSBmb3IgbWFraW5nIG1vZGlmaWNhdGlvbnMsCisgICAgICBpbmNsdWRpbmcgYnV0IG5vdCBsaW1pdGVkIHRvIHNvZnR3YXJlIHNvdXJjZSBjb2RlLCBkb2N1bWVudGF0aW9uCisgICAgICBzb3VyY2UsIGFuZCBjb25maWd1cmF0aW9uIGZpbGVzLgorCisgICAgICAiT2JqZWN0IiBmb3JtIHNoYWxsIG1lYW4gYW55IGZvcm0gcmVzdWx0aW5nIGZyb20gbWVjaGFuaWNhbAorICAgICAgdHJhbnNmb3JtYXRpb24gb3IgdHJhbnNsYXRpb24gb2YgYSBTb3VyY2UgZm9ybSwgaW5jbHVkaW5nIGJ1dAorICAgICAgbm90IGxpbWl0ZWQgdG8gY29tcGlsZWQgb2JqZWN0IGNvZGUsIGdlbmVyYXRlZCBkb2N1bWVudGF0aW9uLAorICAgICAgYW5kIGNvbnZlcnNpb25zIHRvIG90aGVyIG1lZGlhIHR5cGVzLgorCisgICAgICAiV29yayIgc2hhbGwgbWVhbiB0aGUgd29yayBvZiBhdXRob3JzaGlwLCB3aGV0aGVyIGluIFNvdXJjZSBvcgorICAgICAgT2JqZWN0IGZvcm0sIG1hZGUgYXZhaWxhYmxlIHVuZGVyIHRoZSBMaWNlbnNlLCBhcyBpbmRpY2F0ZWQgYnkgYQorICAgICAgY29weXJpZ2h0IG5vdGljZSB0aGF0IGlzIGluY2x1ZGVkIGluIG9yIGF0dGFjaGVkIHRvIHRoZSB3b3JrCisgICAgICAoYW4gZXhhbXBsZSBpcyBwcm92aWRlZCBpbiB0aGUgQXBwZW5kaXggYmVsb3cpLgorCisgICAgICAiRGVyaXZhdGl2ZSBXb3JrcyIgc2hhbGwgbWVhbiBhbnkgd29yaywgd2hldGhlciBpbiBTb3VyY2Ugb3IgT2JqZWN0CisgICAgICBmb3JtLCB0aGF0IGlzIGJhc2VkIG9uIChvciBkZXJpdmVkIGZyb20pIHRoZSBXb3JrIGFuZCBmb3Igd2hpY2ggdGhlCisgICAgICBlZGl0b3JpYWwgcmV2aXNpb25zLCBhbm5vdGF0aW9ucywgZWxhYm9yYXRpb25zLCBvciBvdGhlciBtb2RpZmljYXRpb25zCisgICAgICByZXByZXNlbnQsIGFzIGEgd2hvbGUsIGFuIG9yaWdpbmFsIHdvcmsgb2YgYXV0aG9yc2hpcC4gRm9yIHRoZSBwdXJwb3NlcworICAgICAgb2YgdGhpcyBMaWNlbnNlLCBEZXJpdmF0aXZlIFdvcmtzIHNoYWxsIG5vdCBpbmNsdWRlIHdvcmtzIHRoYXQgcmVtYWluCisgICAgICBzZXBhcmFibGUgZnJvbSwgb3IgbWVyZWx5IGxpbmsgKG9yIGJpbmQgYnkgbmFtZSkgdG8gdGhlIGludGVyZmFjZXMgb2YsCisgICAgICB0aGUgV29yayBhbmQgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLgorCisgICAgICAiQ29udHJpYnV0aW9uIiBzaGFsbCBtZWFuIGFueSB3b3JrIG9mIGF1dGhvcnNoaXAsIGluY2x1ZGluZworICAgICAgdGhlIG9yaWdpbmFsIHZlcnNpb24gb2YgdGhlIFdvcmsgYW5kIGFueSBtb2RpZmljYXRpb25zIG9yIGFkZGl0aW9ucworICAgICAgdG8gdGhhdCBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiwgdGhhdCBpcyBpbnRlbnRpb25hbGx5CisgICAgICBzdWJtaXR0ZWQgdG8gTGljZW5zb3IgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yayBieSB0aGUgY29weXJpZ2h0IG93bmVyCisgICAgICBvciBieSBhbiBpbmRpdmlkdWFsIG9yIExlZ2FsIEVudGl0eSBhdXRob3JpemVkIHRvIHN1Ym1pdCBvbiBiZWhhbGYgb2YKKyAgICAgIHRoZSBjb3B5cmlnaHQgb3duZXIuIEZvciB0aGUgcHVycG9zZXMgb2YgdGhpcyBkZWZpbml0aW9uLCAic3VibWl0dGVkIgorICAgICAgbWVhbnMgYW55IGZvcm0gb2YgZWxlY3Ryb25pYywgdmVyYmFsLCBvciB3cml0dGVuIGNvbW11bmljYXRpb24gc2VudAorICAgICAgdG8gdGhlIExpY2Vuc29yIG9yIGl0cyByZXByZXNlbnRhdGl2ZXMsIGluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8KKyAgICAgIGNvbW11bmljYXRpb24gb24gZWxlY3Ryb25pYyBtYWlsaW5nIGxpc3RzLCBzb3VyY2UgY29kZSBjb250cm9sIHN5c3RlbXMsCisgICAgICBhbmQgaXNzdWUgdHJhY2tpbmcgc3lzdGVtcyB0aGF0IGFyZSBtYW5hZ2VkIGJ5LCBvciBvbiBiZWhhbGYgb2YsIHRoZQorICAgICAgTGljZW5zb3IgZm9yIHRoZSBwdXJwb3NlIG9mIGRpc2N1c3NpbmcgYW5kIGltcHJvdmluZyB0aGUgV29yaywgYnV0CisgICAgICBleGNsdWRpbmcgY29tbXVuaWNhdGlvbiB0aGF0IGlzIGNvbnNwaWN1b3VzbHkgbWFya2VkIG9yIG90aGVyd2lzZQorICAgICAgZGVzaWduYXRlZCBpbiB3cml0aW5nIGJ5IHRoZSBjb3B5cmlnaHQgb3duZXIgYXMgIk5vdCBhIENvbnRyaWJ1dGlvbi4iCisKKyAgICAgICJDb250cmlidXRvciIgc2hhbGwgbWVhbiBMaWNlbnNvciBhbmQgYW55IGluZGl2aWR1YWwgb3IgTGVnYWwgRW50aXR5CisgICAgICBvbiBiZWhhbGYgb2Ygd2hvbSBhIENvbnRyaWJ1dGlvbiBoYXMgYmVlbiByZWNlaXZlZCBieSBMaWNlbnNvciBhbmQKKyAgICAgIHN1YnNlcXVlbnRseSBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrLgorCisgICAyLiBHcmFudCBvZiBDb3B5cmlnaHQgTGljZW5zZS4gU3ViamVjdCB0byB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgZWFjaCBDb250cmlidXRvciBoZXJlYnkgZ3JhbnRzIHRvIFlvdSBhIHBlcnBldHVhbCwKKyAgICAgIHdvcmxkd2lkZSwgbm9uLWV4Y2x1c2l2ZSwgbm8tY2hhcmdlLCByb3lhbHR5LWZyZWUsIGlycmV2b2NhYmxlCisgICAgICBjb3B5cmlnaHQgbGljZW5zZSB0byByZXByb2R1Y2UsIHByZXBhcmUgRGVyaXZhdGl2ZSBXb3JrcyBvZiwKKyAgICAgIHB1YmxpY2x5IGRpc3BsYXksIHB1YmxpY2x5IHBlcmZvcm0sIHN1YmxpY2Vuc2UsIGFuZCBkaXN0cmlidXRlIHRoZQorICAgICAgV29yayBhbmQgc3VjaCBEZXJpdmF0aXZlIFdvcmtzIGluIFNvdXJjZSBvciBPYmplY3QgZm9ybS4KKworICAgMy4gR3JhbnQgb2YgUGF0ZW50IExpY2Vuc2UuIFN1YmplY3QgdG8gdGhlIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mCisgICAgICB0aGlzIExpY2Vuc2UsIGVhY2ggQ29udHJpYnV0b3IgaGVyZWJ5IGdyYW50cyB0byBZb3UgYSBwZXJwZXR1YWwsCisgICAgICB3b3JsZHdpZGUsIG5vbi1leGNsdXNpdmUsIG5vLWNoYXJnZSwgcm95YWx0eS1mcmVlLCBpcnJldm9jYWJsZQorICAgICAgKGV4Y2VwdCBhcyBzdGF0ZWQgaW4gdGhpcyBzZWN0aW9uKSBwYXRlbnQgbGljZW5zZSB0byBtYWtlLCBoYXZlIG1hZGUsCisgICAgICB1c2UsIG9mZmVyIHRvIHNlbGwsIHNlbGwsIGltcG9ydCwgYW5kIG90aGVyd2lzZSB0cmFuc2ZlciB0aGUgV29yaywKKyAgICAgIHdoZXJlIHN1Y2ggbGljZW5zZSBhcHBsaWVzIG9ubHkgdG8gdGhvc2UgcGF0ZW50IGNsYWltcyBsaWNlbnNhYmxlCisgICAgICBieSBzdWNoIENvbnRyaWJ1dG9yIHRoYXQgYXJlIG5lY2Vzc2FyaWx5IGluZnJpbmdlZCBieSB0aGVpcgorICAgICAgQ29udHJpYnV0aW9uKHMpIGFsb25lIG9yIGJ5IGNvbWJpbmF0aW9uIG9mIHRoZWlyIENvbnRyaWJ1dGlvbihzKQorICAgICAgd2l0aCB0aGUgV29yayB0byB3aGljaCBzdWNoIENvbnRyaWJ1dGlvbihzKSB3YXMgc3VibWl0dGVkLiBJZiBZb3UKKyAgICAgIGluc3RpdHV0ZSBwYXRlbnQgbGl0aWdhdGlvbiBhZ2FpbnN0IGFueSBlbnRpdHkgKGluY2x1ZGluZyBhCisgICAgICBjcm9zcy1jbGFpbSBvciBjb3VudGVyY2xhaW0gaW4gYSBsYXdzdWl0KSBhbGxlZ2luZyB0aGF0IHRoZSBXb3JrCisgICAgICBvciBhIENvbnRyaWJ1dGlvbiBpbmNvcnBvcmF0ZWQgd2l0aGluIHRoZSBXb3JrIGNvbnN0aXR1dGVzIGRpcmVjdAorICAgICAgb3IgY29udHJpYnV0b3J5IHBhdGVudCBpbmZyaW5nZW1lbnQsIHRoZW4gYW55IHBhdGVudCBsaWNlbnNlcworICAgICAgZ3JhbnRlZCB0byBZb3UgdW5kZXIgdGhpcyBMaWNlbnNlIGZvciB0aGF0IFdvcmsgc2hhbGwgdGVybWluYXRlCisgICAgICBhcyBvZiB0aGUgZGF0ZSBzdWNoIGxpdGlnYXRpb24gaXMgZmlsZWQuCisKKyAgIDQuIFJlZGlzdHJpYnV0aW9uLiBZb3UgbWF5IHJlcHJvZHVjZSBhbmQgZGlzdHJpYnV0ZSBjb3BpZXMgb2YgdGhlCisgICAgICBXb3JrIG9yIERlcml2YXRpdmUgV29ya3MgdGhlcmVvZiBpbiBhbnkgbWVkaXVtLCB3aXRoIG9yIHdpdGhvdXQKKyAgICAgIG1vZGlmaWNhdGlvbnMsIGFuZCBpbiBTb3VyY2Ugb3IgT2JqZWN0IGZvcm0sIHByb3ZpZGVkIHRoYXQgWW91CisgICAgICBtZWV0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczoKKworICAgICAgKGEpIFlvdSBtdXN0IGdpdmUgYW55IG90aGVyIHJlY2lwaWVudHMgb2YgdGhlIFdvcmsgb3IKKyAgICAgICAgICBEZXJpdmF0aXZlIFdvcmtzIGEgY29weSBvZiB0aGlzIExpY2Vuc2U7IGFuZAorCisgICAgICAoYikgWW91IG11c3QgY2F1c2UgYW55IG1vZGlmaWVkIGZpbGVzIHRvIGNhcnJ5IHByb21pbmVudCBub3RpY2VzCisgICAgICAgICAgc3RhdGluZyB0aGF0IFlvdSBjaGFuZ2VkIHRoZSBmaWxlczsgYW5kCisKKyAgICAgIChjKSBZb3UgbXVzdCByZXRhaW4sIGluIHRoZSBTb3VyY2UgZm9ybSBvZiBhbnkgRGVyaXZhdGl2ZSBXb3JrcworICAgICAgICAgIHRoYXQgWW91IGRpc3RyaWJ1dGUsIGFsbCBjb3B5cmlnaHQsIHBhdGVudCwgdHJhZGVtYXJrLCBhbmQKKyAgICAgICAgICBhdHRyaWJ1dGlvbiBub3RpY2VzIGZyb20gdGhlIFNvdXJjZSBmb3JtIG9mIHRoZSBXb3JrLAorICAgICAgICAgIGV4Y2x1ZGluZyB0aG9zZSBub3RpY2VzIHRoYXQgZG8gbm90IHBlcnRhaW4gdG8gYW55IHBhcnQgb2YKKyAgICAgICAgICB0aGUgRGVyaXZhdGl2ZSBXb3JrczsgYW5kCisKKyAgICAgIChkKSBJZiB0aGUgV29yayBpbmNsdWRlcyBhICJOT1RJQ0UiIHRleHQgZmlsZSBhcyBwYXJ0IG9mIGl0cworICAgICAgICAgIGRpc3RyaWJ1dGlvbiwgdGhlbiBhbnkgRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlIG11c3QKKyAgICAgICAgICBpbmNsdWRlIGEgcmVhZGFibGUgY29weSBvZiB0aGUgYXR0cmlidXRpb24gbm90aWNlcyBjb250YWluZWQKKyAgICAgICAgICB3aXRoaW4gc3VjaCBOT1RJQ0UgZmlsZSwgZXhjbHVkaW5nIHRob3NlIG5vdGljZXMgdGhhdCBkbyBub3QKKyAgICAgICAgICBwZXJ0YWluIHRvIGFueSBwYXJ0IG9mIHRoZSBEZXJpdmF0aXZlIFdvcmtzLCBpbiBhdCBsZWFzdCBvbmUKKyAgICAgICAgICBvZiB0aGUgZm9sbG93aW5nIHBsYWNlczogd2l0aGluIGEgTk9USUNFIHRleHQgZmlsZSBkaXN0cmlidXRlZAorICAgICAgICAgIGFzIHBhcnQgb2YgdGhlIERlcml2YXRpdmUgV29ya3M7IHdpdGhpbiB0aGUgU291cmNlIGZvcm0gb3IKKyAgICAgICAgICBkb2N1bWVudGF0aW9uLCBpZiBwcm92aWRlZCBhbG9uZyB3aXRoIHRoZSBEZXJpdmF0aXZlIFdvcmtzOyBvciwKKyAgICAgICAgICB3aXRoaW4gYSBkaXNwbGF5IGdlbmVyYXRlZCBieSB0aGUgRGVyaXZhdGl2ZSBXb3JrcywgaWYgYW5kCisgICAgICAgICAgd2hlcmV2ZXIgc3VjaCB0aGlyZC1wYXJ0eSBub3RpY2VzIG5vcm1hbGx5IGFwcGVhci4gVGhlIGNvbnRlbnRzCisgICAgICAgICAgb2YgdGhlIE5PVElDRSBmaWxlIGFyZSBmb3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5IGFuZAorICAgICAgICAgIGRvIG5vdCBtb2RpZnkgdGhlIExpY2Vuc2UuIFlvdSBtYXkgYWRkIFlvdXIgb3duIGF0dHJpYnV0aW9uCisgICAgICAgICAgbm90aWNlcyB3aXRoaW4gRGVyaXZhdGl2ZSBXb3JrcyB0aGF0IFlvdSBkaXN0cmlidXRlLCBhbG9uZ3NpZGUKKyAgICAgICAgICBvciBhcyBhbiBhZGRlbmR1bSB0byB0aGUgTk9USUNFIHRleHQgZnJvbSB0aGUgV29yaywgcHJvdmlkZWQKKyAgICAgICAgICB0aGF0IHN1Y2ggYWRkaXRpb25hbCBhdHRyaWJ1dGlvbiBub3RpY2VzIGNhbm5vdCBiZSBjb25zdHJ1ZWQKKyAgICAgICAgICBhcyBtb2RpZnlpbmcgdGhlIExpY2Vuc2UuCisKKyAgICAgIFlvdSBtYXkgYWRkIFlvdXIgb3duIGNvcHlyaWdodCBzdGF0ZW1lbnQgdG8gWW91ciBtb2RpZmljYXRpb25zIGFuZAorICAgICAgbWF5IHByb3ZpZGUgYWRkaXRpb25hbCBvciBkaWZmZXJlbnQgbGljZW5zZSB0ZXJtcyBhbmQgY29uZGl0aW9ucworICAgICAgZm9yIHVzZSwgcmVwcm9kdWN0aW9uLCBvciBkaXN0cmlidXRpb24gb2YgWW91ciBtb2RpZmljYXRpb25zLCBvcgorICAgICAgZm9yIGFueSBzdWNoIERlcml2YXRpdmUgV29ya3MgYXMgYSB3aG9sZSwgcHJvdmlkZWQgWW91ciB1c2UsCisgICAgICByZXByb2R1Y3Rpb24sIGFuZCBkaXN0cmlidXRpb24gb2YgdGhlIFdvcmsgb3RoZXJ3aXNlIGNvbXBsaWVzIHdpdGgKKyAgICAgIHRoZSBjb25kaXRpb25zIHN0YXRlZCBpbiB0aGlzIExpY2Vuc2UuCisKKyAgIDUuIFN1Ym1pc3Npb24gb2YgQ29udHJpYnV0aW9ucy4gVW5sZXNzIFlvdSBleHBsaWNpdGx5IHN0YXRlIG90aGVyd2lzZSwKKyAgICAgIGFueSBDb250cmlidXRpb24gaW50ZW50aW9uYWxseSBzdWJtaXR0ZWQgZm9yIGluY2x1c2lvbiBpbiB0aGUgV29yaworICAgICAgYnkgWW91IHRvIHRoZSBMaWNlbnNvciBzaGFsbCBiZSB1bmRlciB0aGUgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YKKyAgICAgIHRoaXMgTGljZW5zZSwgd2l0aG91dCBhbnkgYWRkaXRpb25hbCB0ZXJtcyBvciBjb25kaXRpb25zLgorICAgICAgTm90d2l0aHN0YW5kaW5nIHRoZSBhYm92ZSwgbm90aGluZyBoZXJlaW4gc2hhbGwgc3VwZXJzZWRlIG9yIG1vZGlmeQorICAgICAgdGhlIHRlcm1zIG9mIGFueSBzZXBhcmF0ZSBsaWNlbnNlIGFncmVlbWVudCB5b3UgbWF5IGhhdmUgZXhlY3V0ZWQKKyAgICAgIHdpdGggTGljZW5zb3IgcmVnYXJkaW5nIHN1Y2ggQ29udHJpYnV0aW9ucy4KKworICAgNi4gVHJhZGVtYXJrcy4gVGhpcyBMaWNlbnNlIGRvZXMgbm90IGdyYW50IHBlcm1pc3Npb24gdG8gdXNlIHRoZSB0cmFkZQorICAgICAgbmFtZXMsIHRyYWRlbWFya3MsIHNlcnZpY2UgbWFya3MsIG9yIHByb2R1Y3QgbmFtZXMgb2YgdGhlIExpY2Vuc29yLAorICAgICAgZXhjZXB0IGFzIHJlcXVpcmVkIGZvciByZWFzb25hYmxlIGFuZCBjdXN0b21hcnkgdXNlIGluIGRlc2NyaWJpbmcgdGhlCisgICAgICBvcmlnaW4gb2YgdGhlIFdvcmsgYW5kIHJlcHJvZHVjaW5nIHRoZSBjb250ZW50IG9mIHRoZSBOT1RJQ0UgZmlsZS4KKworICAgNy4gRGlzY2xhaW1lciBvZiBXYXJyYW50eS4gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yCisgICAgICBhZ3JlZWQgdG8gaW4gd3JpdGluZywgTGljZW5zb3IgcHJvdmlkZXMgdGhlIFdvcmsgKGFuZCBlYWNoCisgICAgICBDb250cmlidXRvciBwcm92aWRlcyBpdHMgQ29udHJpYnV0aW9ucykgb24gYW4gIkFTIElTIiBCQVNJUywKKyAgICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvcgorICAgICAgaW1wbGllZCwgaW5jbHVkaW5nLCB3aXRob3V0IGxpbWl0YXRpb24sIGFueSB3YXJyYW50aWVzIG9yIGNvbmRpdGlvbnMKKyAgICAgIG9mIFRJVExFLCBOT04tSU5GUklOR0VNRU5ULCBNRVJDSEFOVEFCSUxJVFksIG9yIEZJVE5FU1MgRk9SIEEKKyAgICAgIFBBUlRJQ1VMQVIgUFVSUE9TRS4gWW91IGFyZSBzb2xlbHkgcmVzcG9uc2libGUgZm9yIGRldGVybWluaW5nIHRoZQorICAgICAgYXBwcm9wcmlhdGVuZXNzIG9mIHVzaW5nIG9yIHJlZGlzdHJpYnV0aW5nIHRoZSBXb3JrIGFuZCBhc3N1bWUgYW55CisgICAgICByaXNrcyBhc3NvY2lhdGVkIHdpdGggWW91ciBleGVyY2lzZSBvZiBwZXJtaXNzaW9ucyB1bmRlciB0aGlzIExpY2Vuc2UuCisKKyAgIDguIExpbWl0YXRpb24gb2YgTGlhYmlsaXR5LiBJbiBubyBldmVudCBhbmQgdW5kZXIgbm8gbGVnYWwgdGhlb3J5LAorICAgICAgd2hldGhlciBpbiB0b3J0IChpbmNsdWRpbmcgbmVnbGlnZW5jZSksIGNvbnRyYWN0LCBvciBvdGhlcndpc2UsCisgICAgICB1bmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgKHN1Y2ggYXMgZGVsaWJlcmF0ZSBhbmQgZ3Jvc3NseQorICAgICAgbmVnbGlnZW50IGFjdHMpIG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzaGFsbCBhbnkgQ29udHJpYnV0b3IgYmUKKyAgICAgIGxpYWJsZSB0byBZb3UgZm9yIGRhbWFnZXMsIGluY2x1ZGluZyBhbnkgZGlyZWN0LCBpbmRpcmVjdCwgc3BlY2lhbCwKKyAgICAgIGluY2lkZW50YWwsIG9yIGNvbnNlcXVlbnRpYWwgZGFtYWdlcyBvZiBhbnkgY2hhcmFjdGVyIGFyaXNpbmcgYXMgYQorICAgICAgcmVzdWx0IG9mIHRoaXMgTGljZW5zZSBvciBvdXQgb2YgdGhlIHVzZSBvciBpbmFiaWxpdHkgdG8gdXNlIHRoZQorICAgICAgV29yayAoaW5jbHVkaW5nIGJ1dCBub3QgbGltaXRlZCB0byBkYW1hZ2VzIGZvciBsb3NzIG9mIGdvb2R3aWxsLAorICAgICAgd29yayBzdG9wcGFnZSwgY29tcHV0ZXIgZmFpbHVyZSBvciBtYWxmdW5jdGlvbiwgb3IgYW55IGFuZCBhbGwKKyAgICAgIG90aGVyIGNvbW1lcmNpYWwgZGFtYWdlcyBvciBsb3NzZXMpLCBldmVuIGlmIHN1Y2ggQ29udHJpYnV0b3IKKyAgICAgIGhhcyBiZWVuIGFkdmlzZWQgb2YgdGhlIHBvc3NpYmlsaXR5IG9mIHN1Y2ggZGFtYWdlcy4KKworICAgOS4gQWNjZXB0aW5nIFdhcnJhbnR5IG9yIEFkZGl0aW9uYWwgTGlhYmlsaXR5LiBXaGlsZSByZWRpc3RyaWJ1dGluZworICAgICAgdGhlIFdvcmsgb3IgRGVyaXZhdGl2ZSBXb3JrcyB0aGVyZW9mLCBZb3UgbWF5IGNob29zZSB0byBvZmZlciwKKyAgICAgIGFuZCBjaGFyZ2UgYSBmZWUgZm9yLCBhY2NlcHRhbmNlIG9mIHN1cHBvcnQsIHdhcnJhbnR5LCBpbmRlbW5pdHksCisgICAgICBvciBvdGhlciBsaWFiaWxpdHkgb2JsaWdhdGlvbnMgYW5kL29yIHJpZ2h0cyBjb25zaXN0ZW50IHdpdGggdGhpcworICAgICAgTGljZW5zZS4gSG93ZXZlciwgaW4gYWNjZXB0aW5nIHN1Y2ggb2JsaWdhdGlvbnMsIFlvdSBtYXkgYWN0IG9ubHkKKyAgICAgIG9uIFlvdXIgb3duIGJlaGFsZiBhbmQgb24gWW91ciBzb2xlIHJlc3BvbnNpYmlsaXR5LCBub3Qgb24gYmVoYWxmCisgICAgICBvZiBhbnkgb3RoZXIgQ29udHJpYnV0b3IsIGFuZCBvbmx5IGlmIFlvdSBhZ3JlZSB0byBpbmRlbW5pZnksCisgICAgICBkZWZlbmQsIGFuZCBob2xkIGVhY2ggQ29udHJpYnV0b3IgaGFybWxlc3MgZm9yIGFueSBsaWFiaWxpdHkKKyAgICAgIGluY3VycmVkIGJ5LCBvciBjbGFpbXMgYXNzZXJ0ZWQgYWdhaW5zdCwgc3VjaCBDb250cmlidXRvciBieSByZWFzb24KKyAgICAgIG9mIHlvdXIgYWNjZXB0aW5nIGFueSBzdWNoIHdhcnJhbnR5IG9yIGFkZGl0aW9uYWwgbGlhYmlsaXR5LgorCisgICBFTkQgT0YgVEVSTVMgQU5EIENPTkRJVElPTlMKKworICAgQ29weXJpZ2h0IDIwMTEgTWlrZSBTYW11ZWwgZXQgYWwKKworICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKworICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorCisgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KZGlmZiAtLWdpdCBhL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLWFwb2xsby5qcyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLWFwb2xsby5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi43MDk4YmFmCi0tLSAvZGV2L251bGwKKysrIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctYXBvbGxvLmpzCkBAIC0wLDAgKzEsMiBAQAorUFIucmVnaXN0ZXJMYW5nSGFuZGxlcihQUi5jcmVhdGVTaW1wbGVMZXhlcihbWyJjb20iLC9eI1teXG5ccl0qLyxudWxsLCIjIl0sWyJwbG4iLC9eW1x0XG5cciBceGEwXSsvLG51bGwsIlx0XG5cciDCXHhhMCJdLFsic3RyIiwvXiIoPzpbXiJcXF18XFxbXFNcc10pKig/OiJ8JCkvLG51bGwsJyInXV0sW1sia3dkIiwvXig/OkFEU3xBRHxBVUd8QlpGfEJaTUZ8Q0FFfENBRnxDQXxDQ1N8Q09NfENTfERBU3xEQ0F8RENPTXxEQ1N8RERPVUJMfERJTXxET1VCTEV8RFRDQnxEVENGfERWfERYQ0h8RURSVVBUfEVYVEVORHxJTkNSfElOREVYfE5EWHxJTkhJTlR8TFhDSHxNQVNLfE1TS3xNUHxNU1V8Tk9PUHxPVlNLfFFYQ0h8UkFORHxSRUFEfFJFTElOVHxSRVNVTUV8UkVUVVJOfFJPUnxSWE9SfFNRVUFSRXxTVXxUQ1J8VENBQXxPVlNLfFRDRnxUQ3xUU3xXQU5EfFdPUnxXUklURXxYQ0h8WExRfFhYQUxRfFpMfFpRfEFERHxBRFp8U1VCfFNVWnxNUFl8TVBSfE1QWnxEVlB8Q09NfEFCU3xDTEF8Q0xafExEUXxTVE98U1RRfEFMU3xMTFN8TFJTfFRSQXxUU1F8VE1JfFRPVnxBWFR8VElYfERMWXxJTlB8T1VUKVxzLywKK251bGxdLFsidHlwIiwvXig/Oi0/R0VOQURSfD1NSU5VU3wyQkNBRFJ8Vk58Qk9GfE1NfC0/MkNBRFJ8LT9bMS02XUROQURSfEFEUkVTfEJCQ09OfFtFU10/QkFOSz0/fEJMT0NLfEJOS1NVTXxFP0NBRFJ8Q09VTlRcKj98Mj9ERUNcKj98LT9ETkNIQU58LT9ETlBUUnxFUVVBTFN8RVJBU0V8TUVNT1JZfDI/T0NUfFJFTUFEUnxTRVRMT0N8U1VCUk98T1JHfEJTU3xCRVN8U1lOfEVRVXxERUZJTkV8RU5EKVxzLyxudWxsXSxbImxpdCIsL14nKD86LSooPzpcd3xcXFshLX5dKSg/Oltcdy1dKnxcXFshLX5dKVshPT9dPyk/L10sWyJwbG4iLC9eLSooPzpbIS16XXxcXFshLX5dKSg/Oltcdy1dKnxcXFshLX5dKVshPT9dPy9dLFsicHVuIiwvXlteXHdcdFxuXHIgIictKTtcXFx4YTBdKy9dXSksWyJhcG9sbG8iLCJhZ2MiLCJhZWEiXSk7CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1jbGouanMgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1jbGouanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNTQyYTIyMAotLS0gL2Rldi9udWxsCisrKyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLWNsai5qcwpAQCAtMCwwICsxLDE4IEBACisvKgorIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLgorCisgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorCisgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisKKyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCisqLwordmFyIGE9bnVsbDsKK1BSLnJlZ2lzdGVyTGFuZ0hhbmRsZXIoUFIuY3JlYXRlU2ltcGxlTGV4ZXIoW1sib3BuIiwvXlsoW3tdKy8sYSwiKFt7Il0sWyJjbG8iLC9eWylcXX1dKy8sYSwiKV19Il0sWyJjb20iLC9eO1teXG5ccl0qLyxhLCI7Il0sWyJwbG4iLC9eW1x0XG5cciBceGEwXSsvLGEsIlx0XG5cciBceGEwIl0sWyJzdHIiLC9eIig/OlteIlxcXXxcXFtcU1xzXSkqKD86InwkKS8sYSwnIiddXSxbWyJrd2QiLC9eKD86ZGVmfGlmfGRvfGxldHxxdW90ZXx2YXJ8Zm58bG9vcHxyZWN1cnx0aHJvd3x0cnl8bW9uaXRvci1lbnRlcnxtb25pdG9yLWV4aXR8ZGVmbWFjcm98ZGVmbnxkZWZuLXxtYWNyb2V4cGFuZHxtYWNyb2V4cGFuZC0xfGZvcnxkb3NlcXxkb3N5bmN8ZG90aW1lc3xhbmR8b3J8d2hlbnxub3R8YXNzZXJ0fGRvdG98cHJveHl8ZGVmc3RydWN0fGZpcnN0fHJlc3R8Y29uc3xkZWZwcm90b2NvbHxkZWZ0eXBlfGRlZnJlY29yZHxyZWlmeXxkZWZtdWx0aXxkZWZtZXRob2R8bWV0YXx3aXRoLW1ldGF8bnN8aW4tbnN8Y3JlYXRlLW5zfGltcG9ydHxpbnRlcm58cmVmZXJ8YWxpYXN8bmFtZXNwYWNlfHJlc29sdmV8cmVmfGRlcmVmfHJlZnNldHxuZXd8c2V0IXxtZW1mbnx0by1hcnJheXxpbnRvLWFycmF5fGFzZXR8Z2VuLWNsYXNzfHJlZHVjZXxtYXB8ZmlsdGVyfGZpbmR8bmlsP3xlbXB0eT98aGFzaC1tYXB8aGFzaC1zZXR8dmVjfHZlY3RvcnxzZXF8ZmxhdHRlbnxyZXZlcnNlfGFzc29jfGRpc3NvY3xsaXN0fGxpc3Q/fGRpc2p8Z2V0fHVuaW9ufGRpZmZlcmVuY2V8aW50ZXJzZWN0aW9ufGV4dGVuZHxleHRlbmQtdHlwZXxleHRlbmQtcHJvdG9jb2x8cHJuKVxiLyxhXSwKK1sidHlwIiwvXjpbXGRBLVphLXotXSsvXV0pLFsiY2xqIl0pOwpkaWZmIC0tZ2l0IGEvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctY3NzLmpzIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctY3NzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA0MWUxZjUKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1jc3MuanMKQEAgLTAsMCArMSwyIEBACitQUi5yZWdpc3RlckxhbmdIYW5kbGVyKFBSLmNyZWF0ZVNpbXBsZUxleGVyKFtbInBsbiIsL15bXHRcblxmXHIgXSsvLG51bGwsIiBcdFxyXG4MIl1dLFtbInN0ciIsL14iKD86W15cblxmXHIiXFxdfFxcKD86XHJcbj98XG58XGYpfFxcW1xTXHNdKSoiLyxudWxsXSxbInN0ciIsL14nKD86W15cblxmXHInXFxdfFxcKD86XHJcbj98XG58XGYpfFxcW1xTXHNdKSonLyxudWxsXSxbImxhbmctY3NzLXN0ciIsL151cmxcKChbXiInKV0qKVwpL2ldLFsia3dkIiwvXig/OnVybHxyZ2J8IWltcG9ydGFudHxAaW1wb3J0fEBwYWdlfEBtZWRpYXxAY2hhcnNldHxpbmhlcml0KSg/PVteXHctXXwkKS9pLG51bGxdLFsibGFuZy1jc3Mta3ciLC9eKC0/KD86W19hLXpdfFxcW1xkYS1mXSsgPykoPzpbXHctXXxcXFxcW1xkYS1mXSsgPykqKVxzKjovaV0sWyJjb20iLC9eXC9cKlteKl0qXCorKD86W14qL11bXipdKlwqKykqXC8vXSxbImNvbSIsCisvXig/OjxcIS0tfC0tXD4pL10sWyJsaXQiLC9eKD86XGQrfFxkKlwuXGQrKSg/OiV8W2Etel0rKT8vaV0sWyJsaXQiLC9eI1tcZGEtZl17Myw2fS9pXSxbInBsbiIsL14tPyg/OltfYS16XXxcXFtcZGEtZl0rID8pKD86W1x3LV18XFxcXFtcZGEtZl0rID8pKi9pXSxbInB1biIsL15bXlxzXHciJ10rL11dKSxbImNzcyJdKTtQUi5yZWdpc3RlckxhbmdIYW5kbGVyKFBSLmNyZWF0ZVNpbXBsZUxleGVyKFtdLFtbImt3ZCIsL14tPyg/OltfYS16XXxcXFtcZGEtZl0rID8pKD86W1x3LV18XFxcXFtcZGEtZl0rID8pKi9pXV0pLFsiY3NzLWt3Il0pO1BSLnJlZ2lzdGVyTGFuZ0hhbmRsZXIoUFIuY3JlYXRlU2ltcGxlTGV4ZXIoW10sW1sic3RyIiwvXlteIicpXSsvXV0pLFsiY3NzLXN0ciJdKTsKZGlmZiAtLWdpdCBhL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLWdvLmpzIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctZ28uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZmMxOGRjMAotLS0gL2Rldi9udWxsCisrKyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLWdvLmpzCkBAIC0wLDAgKzEgQEAKK1BSLnJlZ2lzdGVyTGFuZ0hhbmRsZXIoUFIuY3JlYXRlU2ltcGxlTGV4ZXIoW1sicGxuIiwvXltcdFxuXHIgXHhhMF0rLyxudWxsLCJcdFxuXHIgwlx4YTAiXSxbInBsbiIsL14oPzoiKD86W14iXFxdfFxcW1xTXHNdKSooPzoifCQpfCcoPzpbXidcXF18XFxbXFNcc10pKyg/Oid8JCl8YFteYF0qKD86YHwkKSkvLG51bGwsIlwiJyJdXSxbWyJjb20iLC9eKD86XC9cL1teXG5ccl0qfFwvXCpbXFNcc10qP1wqXC8pL10sWyJwbG4iLC9eKD86W14iJy9gXXxcLyg/IVsqL10pKSsvXV0pLFsiZ28iXSk7CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1ocy5qcyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLWhzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjlkNzdiMDgKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1ocy5qcwpAQCAtMCwwICsxLDIgQEAKK1BSLnJlZ2lzdGVyTGFuZ0hhbmRsZXIoUFIuY3JlYXRlU2ltcGxlTGV4ZXIoW1sicGxuIiwvXltcdC1cciBdKy8sbnVsbCwiXHRcbgsMXHIgIl0sWyJzdHIiLC9eIig/OlteXG5cZlxyIlxcXXxcXFtcU1xzXSkqKD86InwkKS8sbnVsbCwnIiddLFsic3RyIiwvXicoPzpbXlxuXGZccidcXF18XFxbXiZdKSc/LyxudWxsLCInIl0sWyJsaXQiLC9eKD86MG9bMC03XSt8MHhbXGRhLWZdK3xcZCsoPzpcLlxkKyk/KD86ZVsrLV0/XGQrKT8pL2ksbnVsbCwiMDEyMzQ1Njc4OSJdXSxbWyJjb20iLC9eKD86LS0rW15cblxmXHJdKnx7LSg/OlteLV18LStbXn0tXSkqLX0pL10sWyJrd2QiLC9eKD86Y2FzZXxjbGFzc3xkYXRhfGRlZmF1bHR8ZGVyaXZpbmd8ZG98ZWxzZXxpZnxpbXBvcnR8aW58aW5maXh8aW5maXhsfGluZml4cnxpbnN0YW5jZXxsZXR8bW9kdWxlfG5ld3R5cGV8b2Z8dGhlbnx0eXBlfHdoZXJlfF8pKD89W15cZCdBLVphLXpdfCQpLywKK251bGxdLFsicGxuIiwvXig/OltBLVpdW1x3J10qXC4pKltBLVphLXpdW1x3J10qL10sWyJwdW4iLC9eW15cZFx0LVxyICInQS1aYS16XSsvXV0pLFsiaHMiXSk7CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1saXNwLmpzIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctbGlzcC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmEzMGU4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctbGlzcC5qcwpAQCAtMCwwICsxLDMgQEAKK3ZhciBhPW51bGw7CitQUi5yZWdpc3RlckxhbmdIYW5kbGVyKFBSLmNyZWF0ZVNpbXBsZUxleGVyKFtbIm9wbiIsL15cKCsvLGEsIigiXSxbImNsbyIsL15cKSsvLGEsIikiXSxbImNvbSIsL147W15cblxyXSovLGEsIjsiXSxbInBsbiIsL15bXHRcblxyIFx4YTBdKy8sYSwiXHRcblxyIFx4YTAiXSxbInN0ciIsL14iKD86W14iXFxdfFxcW1xTXHNdKSooPzoifCQpLyxhLCciJ11dLFtbImt3ZCIsL14oPzpibG9ja3xjW2FkXStyfGNhdGNofGNvbltkc118ZGVmKD86aW5lfHVuKXxkb3xlcXxlcWx8ZXF1YWx8ZXF1YWxwfGV2YWwtd2hlbnxmbGV0fGZvcm1hdHxnb3xpZnxsYWJlbHN8bGFtYmRhfGxldHxsb2FkLXRpbWUtdmFsdWV8bG9jYWxseXxtYWNyb2xldHxtdWx0aXBsZS12YWx1ZS1jYWxsfG5pbHxwcm9nbnxwcm9ndnxxdW90ZXxyZXF1aXJlfHJldHVybi1mcm9tfHNldHF8c3ltYm9sLW1hY3JvbGV0fHR8dGFnYm9keXx0aGV8dGhyb3d8dW53aW5kKVxiLyxhXSwKK1sibGl0IiwvXlsrLV0/KD86WyMwXXhbXGRhLWZdK3xcZCtcL1xkK3woPzpcLlxkK3xcZCsoPzpcLlxkKik/KSg/OltkZV1bKy1dP1xkKyk/KS9pXSxbImxpdCIsL14nKD86LSooPzpcd3xcXFshLX5dKSg/Oltcdy1dKnxcXFshLX5dKVshPT9dPyk/L10sWyJwbG4iLC9eLSooPzpbX2Etel18XFxbIS1+XSkoPzpbXHctXSp8XFxbIS1+XSlbIT0/XT8vaV0sWyJwdW4iLC9eW15cd1x0XG5cciAiJy0pO1xcXHhhMF0rL11dKSxbImNsIiwiZWwiLCJsaXNwIiwic2NtIl0pOwpkaWZmIC0tZ2l0IGEvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctbHVhLmpzIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctbHVhLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmU4M2EzYzQKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1sdWEuanMKQEAgLTAsMCArMSwyIEBACitQUi5yZWdpc3RlckxhbmdIYW5kbGVyKFBSLmNyZWF0ZVNpbXBsZUxleGVyKFtbInBsbiIsL15bXHRcblxyIFx4YTBdKy8sbnVsbCwiXHRcblxyIMJceGEwIl0sWyJzdHIiLC9eKD86Iig/OlteIlxcXXxcXFtcU1xzXSkqKD86InwkKXwnKD86W14nXFxdfFxcW1xTXHNdKSooPzonfCQpKS8sbnVsbCwiXCInIl1dLFtbImNvbSIsL14tLSg/OlxbKD0qKVxbW1xTXHNdKj8oPzpdXDFdfCQpfFteXG5ccl0qKS9dLFsic3RyIiwvXlxbKD0qKVxbW1xTXHNdKj8oPzpdXDFdfCQpL10sWyJrd2QiLC9eKD86YW5kfGJyZWFrfGRvfGVsc2V8ZWxzZWlmfGVuZHxmYWxzZXxmb3J8ZnVuY3Rpb258aWZ8aW58bG9jYWx8bmlsfG5vdHxvcnxyZXBlYXR8cmV0dXJufHRoZW58dHJ1ZXx1bnRpbHx3aGlsZSlcYi8sbnVsbF0sWyJsaXQiLC9eWystXT8oPzoweFtcZGEtZl0rfCg/OlwuXGQrfFxkKyg/OlwuXGQqKT8pKD86ZVsrLV0/XGQrKT8pL2ldLAorWyJwbG4iLC9eW19hLXpdXHcqL2ldLFsicHVuIiwvXlteXHdcdFxuXHIgXHhhMF1bXlx3XHRcblxyICInKz1ceGEwLV0qL11dKSxbImx1YSJdKTsKZGlmZiAtLWdpdCBhL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLW1sLmpzIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctbWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmRmMDJkNwotLS0gL2Rldi9udWxsCisrKyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLW1sLmpzCkBAIC0wLDAgKzEsMiBAQAorUFIucmVnaXN0ZXJMYW5nSGFuZGxlcihQUi5jcmVhdGVTaW1wbGVMZXhlcihbWyJwbG4iLC9eW1x0XG5cciBceGEwXSsvLG51bGwsIlx0XG5cciDCXHhhMCJdLFsiY29tIiwvXiMoPzppZltcdFxuXHIgXHhhMF0rKD86WyRfYS16XVtcdyddKnxgYFteXHRcblxyYF0qKD86YGB8JCkpfGVsc2V8ZW5kaWZ8bGlnaHQpL2ksbnVsbCwiIyJdLFsic3RyIiwvXig/OiIoPzpbXiJcXF18XFxbXFNcc10pKig/OiJ8JCl8Jyg/OlteJ1xcXXxcXFtcU1xzXSkoPzonfCQpKS8sbnVsbCwiXCInIl1dLFtbImNvbSIsL14oPzpcL1wvW15cblxyXSp8XChcKltcU1xzXSo/XCpcKSkvXSxbImt3ZCIsL14oPzphYnN0cmFjdHxhbmR8YXN8YXNzZXJ0fGJlZ2lufGNsYXNzfGRlZmF1bHR8ZGVsZWdhdGV8ZG98ZG9uZXxkb3duY2FzdHxkb3dudG98ZWxpZnxlbHNlfGVuZHxleGNlcHRpb258ZXh0ZXJufGZhbHNlfGZpbmFsbHl8Zm9yfGZ1bnxmdW5jdGlvbnxpZnxpbnxpbmhlcml0fGlubGluZXxpbnRlcmZhY2V8aW50ZXJuYWx8bGF6eXxsZXR8bWF0Y2h8bWVtYmVyfG1vZHVsZXxtdXRhYmxlfG5hbWVzcGFjZXxuZXd8bnVsbHxvZnxvcGVufG9yfG92ZXJyaWRlfHByaXZhdGV8cHVibGljfHJlY3xyZXR1cm58c3RhdGljfHN0cnVjdHx0aGVufHRvfHRydWV8dHJ5fHR5cGV8dXBjYXN0fHVzZXx2YWx8dm9pZHx3aGVufHdoaWxlfHdpdGh8eWllbGR8YXNyfGxhbmR8bG9yfGxzbHxsc3J8bHhvcnxtb2R8c2lnfGF0b21pY3xicmVha3xjaGVja2VkfGNvbXBvbmVudHxjb25zdHxjb25zdHJhaW50fGNvbnN0cnVjdG9yfGNvbnRpbnVlfGVhZ2VyfGV2ZW50fGV4dGVybmFsfGZpeGVkfGZ1bmN0b3J8Z2xvYmFsfGluY2x1ZGV8bWV0aG9kfG1peGlufG9iamVjdHxwYXJhbGxlbHxwcm9jZXNzfHByb3RlY3RlZHxwdXJlfHNlYWxlZHx0cmFpdHx2aXJ0dWFsfHZvbGF0aWxlKVxiL10sCitbImxpdCIsL15bKy1dPyg/OjB4W1xkYS1mXSt8KD86XC5cZCt8XGQrKD86XC5cZCopPykoPzplWystXT9cZCspPykvaV0sWyJwbG4iLC9eKD86W19hLXpdW1x3J10qWyEjP10/fGBgW15cdFxuXHJgXSooPzpgYHwkKSkvaV0sWyJwdW4iLC9eW15cd1x0XG5cciAiJ1x4YTBdKy9dXSksWyJmcyIsIm1sIl0pOwpkaWZmIC0tZ2l0IGEvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctbi5qcyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLW4uanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNmMyZTg1YgotLS0gL2Rldi9udWxsCisrKyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLW4uanMKQEAgLTAsMCArMSw0IEBACit2YXIgYT1udWxsOworUFIucmVnaXN0ZXJMYW5nSGFuZGxlcihQUi5jcmVhdGVTaW1wbGVMZXhlcihbWyJzdHIiLC9eKD86Jyg/OlteXG5ccidcXF18XFwuKSonfCIoPzpbXlxuXHIiXFxdfFxcLikqKD86InwkKSkvLGEsJyInXSxbImNvbSIsL14jKD86KD86ZGVmaW5lfGVsaWZ8ZWxzZXxlbmRpZnxlcnJvcnxpZmRlZnxpbmNsdWRlfGlmbmRlZnxsaW5lfHByYWdtYXx1bmRlZnx3YXJuaW5nKVxifFteXG5ccl0qKS8sYSwiIyJdLFsicGxuIiwvXlxzKy8sYSwiIFxyXG5cdFx4YTAiXV0sW1sic3RyIiwvXkAiKD86W14iXXwiIikqKD86InwkKS8sYV0sWyJzdHIiLC9ePCNbXiM+XSooPzojPnwkKS8sYV0sWyJzdHIiLC9ePCg/Oig/Oig/OlwuXC5cLykqfFwvPykoPzpbXHctXSsoPzpcL1tcdy1dKykrKT9bXHctXStcLmh8W2Etel1cdyopPi8sYV0sWyJjb20iLC9eXC9cL1teXG5ccl0qLyxhXSxbImNvbSIsL15cL1wqW1xTXHNdKj8oPzpcKlwvfCQpLywKK2FdLFsia3dkIiwvXig/OmFic3RyYWN0fGFuZHxhc3xiYXNlfGNhdGNofGNsYXNzfGRlZnxkZWxlZ2F0ZXxlbnVtfGV2ZW50fGV4dGVybnxmYWxzZXxmaW5hbGx5fGZ1bnxpbXBsZW1lbnRzfGludGVyZmFjZXxpbnRlcm5hbHxpc3xtYWNyb3xtYXRjaHxtYXRjaGVzfG1vZHVsZXxtdXRhYmxlfG5hbWVzcGFjZXxuZXd8bnVsbHxvdXR8b3ZlcnJpZGV8cGFyYW1zfHBhcnRpYWx8cHJpdmF0ZXxwcm90ZWN0ZWR8cHVibGljfHJlZnxzZWFsZWR8c3RhdGljfHN0cnVjdHxzeW50YXh8dGhpc3x0aHJvd3x0cnVlfHRyeXx0eXBlfHR5cGVvZnx1c2luZ3x2YXJpYW50fHZpcnR1YWx8dm9sYXRpbGV8d2hlbnx3aGVyZXx3aXRofGFzc2VydHxhc3NlcnQyfGFzeW5jfGJyZWFrfGNoZWNrZWR8Y29udGludWV8ZG98ZWxzZXxlbnN1cmVzfGZvcnxmb3JlYWNofGlmfGxhdGV8bG9ja3xuZXd8bm9sYXRlfG90aGVyd2lzZXxyZWdleHB8cmVwZWF0fHJlcXVpcmVzfHJldHVybnxzdXJyb3VuZHdpdGh8dW5jaGVja2VkfHVubGVzc3x1c2luZ3x3aGlsZXx5aWVsZClcYi8sCithXSxbInR5cCIsL14oPzphcnJheXxib29sfGJ5dGV8Y2hhcnxkZWNpbWFsfGRvdWJsZXxmbG9hdHxpbnR8bGlzdHxsb25nfG9iamVjdHxzYnl0ZXxzaG9ydHxzdHJpbmd8dWxvbmd8dWludHx1ZmxvYXR8dWxvbmd8dXNob3J0fHZvaWQpXGIvLGFdLFsibGl0IiwvXkBbJF9hLXpdW1x3JEBdKi9pLGFdLFsidHlwIiwvXkBbQS1aXStbYS16XVtcdyRAXSovLGFdLFsicGxuIiwvXic/WyRfYS16XVtcdyRAXSovaSxhXSxbImxpdCIsL14oPzoweFtcZGEtZl0rfCg/OlxkKD86X1xkKykqXGQqKD86XC5cZCopP3xcLlxkXCspKD86ZVsrLV0/XGQrKT8pW2Etel0qL2ksYSwiMDEyMzQ1Njc4OSJdLFsicHVuIiwvXi5bXlxzXHciLSQnLi9AYF0qLyxhXV0pLFsibiIsIm5lbWVybGUiXSk7CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1wcm90by5qcyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLXByb3RvLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmYwMDZhZDgKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1wcm90by5qcwpAQCAtMCwwICsxIEBACitQUi5yZWdpc3RlckxhbmdIYW5kbGVyKFBSLnNvdXJjZURlY29yYXRvcih7a2V5d29yZHM6ImJ5dGVzLGRlZmF1bHQsZG91YmxlLGVudW0sZXh0ZW5kLGV4dGVuc2lvbnMsZmFsc2UsZ3JvdXAsaW1wb3J0LG1heCxtZXNzYWdlLG9wdGlvbixvcHRpb25hbCxwYWNrYWdlLHJlcGVhdGVkLHJlcXVpcmVkLHJldHVybnMscnBjLHNlcnZpY2Usc3ludGF4LHRvLHRydWUiLHR5cGVzOi9eKGJvb2x8KGRvdWJsZXxzP2ZpeGVkfFtzdV0/aW50KSgzMnw2NCl8ZmxvYXR8c3RyaW5nKVxiLyxjU3R5bGVDb21tZW50czohMH0pLFsicHJvdG8iXSk7CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1zY2FsYS5qcyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLXNjYWxhLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjYwZDAzNGQKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1zY2FsYS5qcwpAQCAtMCwwICsxLDIgQEAKK1BSLnJlZ2lzdGVyTGFuZ0hhbmRsZXIoUFIuY3JlYXRlU2ltcGxlTGV4ZXIoW1sicGxuIiwvXltcdFxuXHIgXHhhMF0rLyxudWxsLCJcdFxuXHIgwlx4YTAiXSxbInN0ciIsL14iKD86IiIoPzoiIj8oPyEiKXxbXiJcXF18XFwuKSoiezAsM318KD86W15cblxyIlxcXXxcXC4pKiI/KS8sbnVsbCwnIiddLFsibGl0IiwvXmAoPzpbXlxuXHJcXGBdfFxcLikqYD8vLG51bGwsImAiXSxbInB1biIsL15bISMlJigtLTotQFstXnstfl0rLyxudWxsLCIhIyUmKCkqKywtOjs8PT4/QFtcXF1ee3x9fiJdXSxbWyJzdHIiLC9eJyg/OlteXG5ccidcXF18XFwoPzonfFteXG5cciddKykpJy9dLFsibGl0IiwvXidbJEEtWl9hLXpdW1x3JF0qKD8hW1x3JCddKS9dLFsia3dkIiwvXig/OmFic3RyYWN0fGNhc2V8Y2F0Y2h8Y2xhc3N8ZGVmfGRvfGVsc2V8ZXh0ZW5kc3xmaW5hbHxmaW5hbGx5fGZvcnxmb3JTb21lfGlmfGltcGxpY2l0fGltcG9ydHxsYXp5fG1hdGNofG5ld3xvYmplY3R8b3ZlcnJpZGV8cGFja2FnZXxwcml2YXRlfHByb3RlY3RlZHxyZXF1aXJlc3xyZXR1cm58c2VhbGVkfHN1cGVyfHRocm93fHRyYWl0fHRyeXx0eXBlfHZhbHx2YXJ8d2hpbGV8d2l0aHx5aWVsZClcYi9dLAorWyJsaXQiLC9eKD86dHJ1ZXxmYWxzZXxudWxsfHRoaXMpXGIvXSxbImxpdCIsL14oPzowKD86WzAtN10rfHhbXGRhLWZdKylsP3woPzowfFsxLTldXGQqKSg/Oig/OlwuXGQrKT8oPzplWystXT9cZCspP2Y/fGw/KXxcXC5cZCsoPzplWystXT9cZCspP2Y/KS9pXSxbInR5cCIsL15bJF9dKltBLVpdW1xkJEEtWl9dKlthLXpdW1x3JF0qL10sWyJwbG4iLC9eWyRBLVpfYS16XVtcdyRdKi9dLFsiY29tIiwvXlwvKD86XC8uKnxcKig/OlwvfFwqKlteKi9dKSooPzpcKitcLz8pPykvXSxbInB1biIsL14oPzpcLit8XC8pL11dKSxbInNjYWxhIl0pOwpkaWZmIC0tZ2l0IGEvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctc3FsLmpzIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctc3FsLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmRhNzA1YjAKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy1zcWwuanMKQEAgLTAsMCArMSwyIEBACitQUi5yZWdpc3RlckxhbmdIYW5kbGVyKFBSLmNyZWF0ZVNpbXBsZUxleGVyKFtbInBsbiIsL15bXHRcblxyIFx4YTBdKy8sbnVsbCwiXHRcblxyIMJceGEwIl0sWyJzdHIiLC9eKD86Iig/OlteIlxcXXxcXC4pKiJ8Jyg/OlteJ1xcXXxcXC4pKicpLyxudWxsLCJcIiciXV0sW1siY29tIiwvXig/Oi0tW15cblxyXSp8XC9cKltcU1xzXSo/KD86XCpcL3wkKSkvXSxbImt3ZCIsL14oPzphZGR8YWxsfGFsdGVyfGFuZHxhbnl8YXN8YXNjfGF1dGhvcml6YXRpb258YmFja3VwfGJlZ2lufGJldHdlZW58YnJlYWt8YnJvd3NlfGJ1bGt8Ynl8Y2FzY2FkZXxjYXNlfGNoZWNrfGNoZWNrcG9pbnR8Y2xvc2V8Y2x1c3RlcmVkfGNvYWxlc2NlfGNvbGxhdGV8Y29sdW1ufGNvbW1pdHxjb21wdXRlfGNvbnN0cmFpbnR8Y29udGFpbnN8Y29udGFpbnN0YWJsZXxjb250aW51ZXxjb252ZXJ0fGNyZWF0ZXxjcm9zc3xjdXJyZW50fGN1cnJlbnRfZGF0ZXxjdXJyZW50X3RpbWV8Y3VycmVudF90aW1lc3RhbXB8Y3VycmVudF91c2VyfGN1cnNvcnxkYXRhYmFzZXxkYmNjfGRlYWxsb2NhdGV8ZGVjbGFyZXxkZWZhdWx0fGRlbGV0ZXxkZW55fGRlc2N8ZGlza3xkaXN0aW5jdHxkaXN0cmlidXRlZHxkb3VibGV8ZHJvcHxkdW1teXxkdW1wfGVsc2V8ZW5kfGVycmx2bHxlc2NhcGV8ZXhjZXB0fGV4ZWN8ZXhlY3V0ZXxleGlzdHN8ZXhpdHxmZXRjaHxmaWxlfGZpbGxmYWN0b3J8Zm9yfGZvcmVpZ258ZnJlZXRleHR8ZnJlZXRleHR0YWJsZXxmcm9tfGZ1bGx8ZnVuY3Rpb258Z290b3xncmFudHxncm91cHxoYXZpbmd8aG9sZGxvY2t8aWRlbnRpdHl8aWRlbnRpdHljb2x8aWRlbnRpdHlfaW5zZXJ0fGlmfGlufGluZGV4fGlubmVyfGluc2VydHxpbnRlcnNlY3R8aW50b3xpc3xqb2lufGtleXxraWxsfGxlZnR8bGlrZXxsaW5lbm98bG9hZHxtYXRjaHxtZXJnZXxuYXRpb25hbHxub2NoZWNrfG5vbmNsdXN0ZXJlZHxub3R8bnVsbHxudWxsaWZ8b2Z8b2ZmfG9mZnNldHN8b258b3BlbnxvcGVuZGF0YXNvdXJjZXxvcGVucXVlcnl8b3BlbnJvd3NldHxvcGVueG1sfG9wdGlvbnxvcnxvcmRlcnxvdXRlcnxvdmVyfHBlcmNlbnR8cGxhbnxwcmVjaXNpb258cHJpbWFyeXxwcmludHxwcm9jfHByb2NlZHVyZXxwdWJsaWN8cmFpc2Vycm9yfHJlYWR8cmVhZHRleHR8cmVjb25maWd1cmV8cmVmZXJlbmNlc3xyZXBsaWNhdGlvbnxyZXN0b3JlfHJlc3RyaWN0fHJldHVybnxyZXZva2V8cmlnaHR8cm9sbGJhY2t8cm93Y291bnR8cm93Z3VpZGNvbHxydWxlfHNhdmV8c2NoZW1hfHNlbGVjdHxzZXNzaW9uX3VzZXJ8c2V0fHNldHVzZXJ8c2h1dGRvd258c29tZXxzdGF0aXN0aWNzfHN5c3RlbV91c2VyfHRhYmxlfHRleHRzaXplfHRoZW58dG98dG9wfHRyYW58dHJhbnNhY3Rpb258dHJpZ2dlcnx0cnVuY2F0ZXx0c2VxdWFsfHVuaW9ufHVuaXF1ZXx1cGRhdGV8dXBkYXRldGV4dHx1c2V8dXNlcnx1c2luZ3x2YWx1ZXN8dmFyeWluZ3x2aWV3fHdhaXRmb3J8d2hlbnx3aGVyZXx3aGlsZXx3aXRofHdyaXRldGV4dCkoPz1bXlx3LV18JCkvaSwKK251bGxdLFsibGl0IiwvXlsrLV0/KD86MHhbXGRhLWZdK3woPzpcLlxkK3xcZCsoPzpcLlxkKik/KSg/OmVbKy1dP1xkKyk/KS9pXSxbInBsbiIsL15bX2Etel1bXHctXSovaV0sWyJwdW4iLC9eW15cd1x0XG5cciAiJ1x4YTBdW15cd1x0XG5cciAiJytceGEwLV0qL11dKSxbInNxbCJdKTsKZGlmZiAtLWdpdCBhL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLXRleC5qcyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLXRleC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZTk2ZmJiCi0tLSAvZGV2L251bGwKKysrIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctdGV4LmpzCkBAIC0wLDAgKzEgQEAKK1BSLnJlZ2lzdGVyTGFuZ0hhbmRsZXIoUFIuY3JlYXRlU2ltcGxlTGV4ZXIoW1sicGxuIiwvXltcdFxuXHIgXHhhMF0rLyxudWxsLCJcdFxuXHIgwlx4YTAiXSxbImNvbSIsL14lW15cblxyXSovLG51bGwsIiUiXV0sW1sia3dkIiwvXlxcW0AtWmEtel0rL10sWyJrd2QiLC9eXFwuL10sWyJ0eXAiLC9eWyQmXS9dLFsibGl0IiwvWystXT8oPzpcLlxkK3xcZCsoPzpcLlxkKik/KShjbXxlbXxleHxpbnxwY3xwdHxicHxtbSkvaV0sWyJwdW4iLC9eWygpPVtcXXt9XSsvXV0pLFsibGF0ZXgiLCJ0ZXgiXSk7CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy12Yi5qcyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLXZiLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA3NTA2YjAKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy12Yi5qcwpAQCAtMCwwICsxLDIgQEAKK1BSLnJlZ2lzdGVyTGFuZ0hhbmRsZXIoUFIuY3JlYXRlU2ltcGxlTGV4ZXIoW1sicGxuIiwvXltcdFxuXHIgXHhhMFx1MjAyOFx1MjAyOV0rLyxudWxsLCJcdFxuXHIgwlx4YTDigKjigKkiXSxbInN0ciIsL14oPzpbIlx1MjAxY1x1MjAxZF0oPzpbXiJcdTIwMWNcdTIwMWRdfFsiXHUyMDFjXHUyMDFkXXsyfSkoPzpbIlx1MjAxY1x1MjAxZF1jfCQpfFsiXHUyMDFjXHUyMDFkXSg/OlteIlx1MjAxY1x1MjAxZF18WyJcdTIwMWNcdTIwMWRdezJ9KSooPzpbIlx1MjAxY1x1MjAxZF18JCkpL2ksbnVsbCwnIuKAnOKAnSddLFsiY29tIiwvXlsnXHUyMDE4XHUyMDE5XS4qLyxudWxsLCIn4oCY4oCZIl1dLFtbImt3ZCIsL14oPzphZGRoYW5kbGVyfGFkZHJlc3NvZnxhbGlhc3xhbmR8YW5kYWxzb3xhbnNpfGFzfGFzc2VtYmx5fGF1dG98Ym9vbGVhbnxieXJlZnxieXRlfGJ5dmFsfGNhbGx8Y2FzZXxjYXRjaHxjYm9vbHxjYnl0ZXxjY2hhcnxjZGF0ZXxjZGJsfGNkZWN8Y2hhcnxjaW50fGNsYXNzfGNsbmd8Y29ianxjb25zdHxjc2hvcnR8Y3NuZ3xjc3RyfGN0eXBlfGRhdGV8ZGVjaW1hbHxkZWNsYXJlfGRlZmF1bHR8ZGVsZWdhdGV8ZGltfGRpcmVjdGNhc3R8ZG98ZG91YmxlfGVhY2h8ZWxzZXxlbHNlaWZ8ZW5kfGVuZGlmfGVudW18ZXJhc2V8ZXJyb3J8ZXZlbnR8ZXhpdHxmaW5hbGx5fGZvcnxmcmllbmR8ZnVuY3Rpb258Z2V0fGdldHR5cGV8Z29zdWJ8Z290b3xoYW5kbGVzfGlmfGltcGxlbWVudHN8aW1wb3J0c3xpbnxpbmhlcml0c3xpbnRlZ2VyfGludGVyZmFjZXxpc3xsZXR8bGlifGxpa2V8bG9uZ3xsb29wfG1lfG1vZHxtb2R1bGV8bXVzdGluaGVyaXR8bXVzdG92ZXJyaWRlfG15YmFzZXxteWNsYXNzfG5hbWVzcGFjZXxuZXd8bmV4dHxub3R8bm90aW5oZXJpdGFibGV8bm90b3ZlcnJpZGFibGV8b2JqZWN0fG9ufG9wdGlvbnxvcHRpb25hbHxvcnxvcmVsc2V8b3ZlcmxvYWRzfG92ZXJyaWRhYmxlfG92ZXJyaWRlc3xwYXJhbWFycmF5fHByZXNlcnZlfHByaXZhdGV8cHJvcGVydHl8cHJvdGVjdGVkfHB1YmxpY3xyYWlzZWV2ZW50fHJlYWRvbmx5fHJlZGltfHJlbW92ZWhhbmRsZXJ8cmVzdW1lfHJldHVybnxzZWxlY3R8c2V0fHNoYWRvd3N8c2hhcmVkfHNob3J0fHNpbmdsZXxzdGF0aWN8c3RlcHxzdG9wfHN0cmluZ3xzdHJ1Y3R1cmV8c3VifHN5bmNsb2NrfHRoZW58dGhyb3d8dG98dHJ5fHR5cGVvZnx1bmljb2RlfHVudGlsfHZhcmlhbnR8d2VuZHx3aGVufHdoaWxlfHdpdGh8d2l0aGV2ZW50c3x3cml0ZW9ubHl8eG9yfGVuZGlmfGdvc3VifGxldHx2YXJpYW50fHdlbmQpXGIvaSwKK251bGxdLFsiY29tIiwvXnJlbS4qL2ldLFsibGl0IiwvXig/OnRydWVcYnxmYWxzZVxifG5vdGhpbmdcYnxcZCsoPzplWystXT9cZCtbZGZyXT98W2RmaWxyc10pP3woPzomaFtcZGEtZl0rfCZvWzAtN10rKVtpbHNdP3xcZCpcLlxkKyg/OmVbKy1dP1xkKyk/W2Rmcl0/fCNccysoPzpcZCtbLy1dXGQrWy8tXVxkKyg/OlxzK1xkKzpcZCsoPzo6XGQrKT8oXHMqKD86YW18cG0pKT8pP3xcZCs6XGQrKD86OlxkKyk/KFxzKig/OmFtfHBtKSk/KVxzKyMpL2ldLFsicGxuIiwvXig/Oig/OlthLXpdfF9cdylcdyp8XFsoPzpbYS16XXxfXHcpXHcqXSkvaV0sWyJwdW4iLC9eW15cd1x0XG5cciAiJ1tcXVx4YTBcdTIwMThcdTIwMTlcdTIwMWNcdTIwMWRcdTIwMjhcdTIwMjldKy9dLFsicHVuIiwvXig/OlxbfF0pL11dKSxbInZiIiwidmJzIl0pOwpkaWZmIC0tZ2l0IGEvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctdmhkbC5qcyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLXZoZGwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMTI4YjViNgotLS0gL2Rldi9udWxsCisrKyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLXZoZGwuanMKQEAgLTAsMCArMSwzIEBACitQUi5yZWdpc3RlckxhbmdIYW5kbGVyKFBSLmNyZWF0ZVNpbXBsZUxleGVyKFtbInBsbiIsL15bXHRcblxyIFx4YTBdKy8sbnVsbCwiXHRcblxyIMJceGEwIl1dLFtbInN0ciIsL14oPzpbYm94XT8iKD86W14iXXwiIikqInwnLicpL2ldLFsiY29tIiwvXi0tW15cblxyXSovXSxbImt3ZCIsL14oPzphYnN8YWNjZXNzfGFmdGVyfGFsaWFzfGFsbHxhbmR8YXJjaGl0ZWN0dXJlfGFycmF5fGFzc2VydHxhdHRyaWJ1dGV8YmVnaW58YmxvY2t8Ym9keXxidWZmZXJ8YnVzfGNhc2V8Y29tcG9uZW50fGNvbmZpZ3VyYXRpb258Y29uc3RhbnR8ZGlzY29ubmVjdHxkb3dudG98ZWxzZXxlbHNpZnxlbmR8ZW50aXR5fGV4aXR8ZmlsZXxmb3J8ZnVuY3Rpb258Z2VuZXJhdGV8Z2VuZXJpY3xncm91cHxndWFyZGVkfGlmfGltcHVyZXxpbnxpbmVydGlhbHxpbm91dHxpc3xsYWJlbHxsaWJyYXJ5fGxpbmthZ2V8bGl0ZXJhbHxsb29wfG1hcHxtb2R8bmFuZHxuZXd8bmV4dHxub3J8bm90fG51bGx8b2Z8b258b3BlbnxvcnxvdGhlcnN8b3V0fHBhY2thZ2V8cG9ydHxwb3N0cG9uZWR8cHJvY2VkdXJlfHByb2Nlc3N8cHVyZXxyYW5nZXxyZWNvcmR8cmVnaXN0ZXJ8cmVqZWN0fHJlbXxyZXBvcnR8cmV0dXJufHJvbHxyb3J8c2VsZWN0fHNldmVyaXR5fHNoYXJlZHxzaWduYWx8c2xhfHNsbHxzcmF8c3JsfHN1YnR5cGV8dGhlbnx0b3x0cmFuc3BvcnR8dHlwZXx1bmFmZmVjdGVkfHVuaXRzfHVudGlsfHVzZXx2YXJpYWJsZXx3YWl0fHdoZW58d2hpbGV8d2l0aHx4bm9yfHhvcikoPz1bXlx3LV18JCkvaSwKK251bGxdLFsidHlwIiwvXig/OmJpdHxiaXRfdmVjdG9yfGNoYXJhY3Rlcnxib29sZWFufGludGVnZXJ8cmVhbHx0aW1lfHN0cmluZ3xzZXZlcml0eV9sZXZlbHxwb3NpdGl2ZXxuYXR1cmFsfHNpZ25lZHx1bnNpZ25lZHxsaW5lfHRleHR8c3RkX3U/bG9naWMoPzpfdmVjdG9yKT8pKD89W15cdy1dfCQpL2ksbnVsbF0sWyJ0eXAiLC9eJyg/OmFjdGl2ZXxhc2NlbmRpbmd8YmFzZXxkZWxheWVkfGRyaXZpbmd8ZHJpdmluZ192YWx1ZXxldmVudHxoaWdofGltYWdlfGluc3RhbmNlX25hbWV8bGFzdF9hY3RpdmV8bGFzdF9ldmVudHxsYXN0X3ZhbHVlfGxlZnR8bGVmdG9mfGxlbmd0aHxsb3d8cGF0aF9uYW1lfHBvc3xwcmVkfHF1aWV0fHJhbmdlfHJldmVyc2VfcmFuZ2V8cmlnaHR8cmlnaHRvZnxzaW1wbGVfbmFtZXxzdGFibGV8c3VjY3x0cmFuc2FjdGlvbnx2YWx8dmFsdWUpKD89W15cdy1dfCQpL2ksbnVsbF0sWyJsaXQiLC9eXGQrKD86X1xkKykqKD86I1tcdy5cXF0rIyg/OlsrLV0/XGQrKD86X1xkKykqKT98KD86XC5cZCsoPzpfXGQrKSopPyg/OmVbKy1dP1xkKyg/Ol9cZCspKik/KS9pXSwKK1sicGxuIiwvXig/OlthLXpdXHcqfFxcW15cXF0qXFwpL2ldLFsicHVuIiwvXlteXHdcdFxuXHIgIidceGEwXVteXHdcdFxuXHIgIidceGEwLV0qL11dKSxbInZoZGwiLCJ2aGQiXSk7CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy13aWtpLmpzIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctd2lraS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45YjBiNDQ4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmctd2lraS5qcwpAQCAtMCwwICsxLDIgQEAKK1BSLnJlZ2lzdGVyTGFuZ0hhbmRsZXIoUFIuY3JlYXRlU2ltcGxlTGV4ZXIoW1sicGxuIiwvXltcZFx0IGEtZ2ktelx4YTBdKy8sbnVsbCwiXHQgwlx4YTBhYmNkZWZnaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSJdLFsicHVuIiwvXlsqPVtcXV5+XSsvLG51bGwsIj0qfl5bXSJdXSxbWyJsYW5nLXdpa2kubWV0YSIsLyg/Ol5efFxyXG4/fFxuKSgjW2Etel0rKVxiL10sWyJsaXQiLC9eW0EtWl1bYS16XVtcZGEtel0rW0EtWl1bYS16XVteXFdfXStcYi9dLFsibGFuZy0iLC9ee3t7KFtcU1xzXSs/KX19fS9dLFsibGFuZy0iLC9eYChbXlxuXHJgXSspYC9dLFsic3RyIiwvXmh0dHBzPzpcL1wvW15ccyMvP10qKD86XC9bXlxzIz9dKik/KD86XD9bXlxzI10qKT8oPzojXFMqKT8vaV0sWyJwbG4iLC9eKD86XHJcbnxbXFNcc10pW15cblxyIyo9QS1bXmBoe35dKi9dXSksWyJ3aWtpIl0pOworUFIucmVnaXN0ZXJMYW5nSGFuZGxlcihQUi5jcmVhdGVTaW1wbGVMZXhlcihbWyJrd2QiLC9eI1thLXpdKy9pLG51bGwsIiMiXV0sW10pLFsid2lraS5tZXRhIl0pOwpkaWZmIC0tZ2l0IGEvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmcteHEuanMgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvbGFuZy14cS5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5lMzIzYWUzCi0tLSAvZGV2L251bGwKKysrIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmcteHEuanMKQEAgLTAsMCArMSwzIEBACitQUi5yZWdpc3RlckxhbmdIYW5kbGVyKFBSLmNyZWF0ZVNpbXBsZUxleGVyKFtbInZhciBwbG4iLC9eXCRbXHctXSsvLG51bGwsIiQiXV0sW1sicGxuIiwvXltccz1dWzw+XVtccz1dL10sWyJsaXQiLC9eQFtcdy1dKy9dLFsidGFnIiwvXjxcLz9bYS16XSg/Oltcdy0uOl0qXHcpP3xcLz8+JC9pXSxbImNvbSIsL15cKDpbXFNcc10qPzpcKS9dLFsicGxuIiwvXlsoKSwvO1tcXXt9XSQvXSxbInN0ciIsL14oPzoiKD86W14iXFx7XXxcXFtcU1xzXSkqKD86InwkKXwnKD86W14nXFx7XXxcXFtcU1xzXSkqKD86J3wkKSkvLG51bGwsIlwiJyJdLFsia3dkIiwvXig/OnhxdWVyeXx3aGVyZXx2ZXJzaW9ufHZhcmlhYmxlfHVuaW9ufHR5cGVzd2l0Y2h8dHJlYXR8dG98dGhlbnx0ZXh0fHN0YWJsZXxzb3J0Ynl8c29tZXxzZWxmfHNjaGVtYXxzYXRpc2ZpZXN8cmV0dXJuc3xyZXR1cm58cmVmfHByb2Nlc3NpbmctaW5zdHJ1Y3Rpb258cHJlY2VkaW5nLXNpYmxpbmd8cHJlY2VkaW5nfHByZWNlZGVzfHBhcmVudHxvbmx5fG9mfG5vZGV8bmFtZXNwYWNlfG1vZHVsZXxsZXR8aXRlbXxpbnRlcnNlY3R8aW5zdGFuY2V8aW58aW1wb3J0fGlmfGZ1bmN0aW9ufGZvcnxmb2xsb3dzfGZvbGxvd2luZy1zaWJsaW5nfGZvbGxvd2luZ3xleHRlcm5hbHxleGNlcHR8ZXZlcnl8ZWxzZXxlbGVtZW50fGRlc2NlbmRpbmd8ZGVzY2VuZGFudC1vci1zZWxmfGRlc2NlbmRhbnR8ZGVmaW5lfGRlZmF1bHR8ZGVjbGFyZXxjb21tZW50fGNoaWxkfGNhc3R8Y2FzZXxiZWZvcmV8YXR0cmlidXRlfGFzc2VydHxhc2NlbmRpbmd8YXN8YW5jZXN0b3Itb3Itc2VsZnxhbmNlc3RvcnxhZnRlcnxlcXxvcmRlcnxieXxvcnxhbmR8c2NoZW1hLWVsZW1lbnR8ZG9jdW1lbnQtbm9kZXxub2RlfGF0KVxiL10sCitbInR5cCIsL14oPzp4czp5ZWFyTW9udGhEdXJhdGlvbnx4czp1bnNpZ25lZExvbmd8eHM6dGltZXx4czpzdHJpbmd8eHM6c2hvcnR8eHM6UU5hbWV8eHM6TmFtZXx4czpsb25nfHhzOmludGVnZXJ8eHM6aW50fHhzOmdZZWFyTW9udGh8eHM6Z1llYXJ8eHM6Z01vbnRoRGF5fHhzOmdEYXl8eHM6ZmxvYXR8eHM6ZHVyYXRpb258eHM6ZG91YmxlfHhzOmRlY2ltYWx8eHM6ZGF5VGltZUR1cmF0aW9ufHhzOmRhdGVUaW1lfHhzOmRhdGV8eHM6Ynl0ZXx4czpib29sZWFufHhzOmFueVVSSXx4Zjp5ZWFyTW9udGhEdXJhdGlvbilcYi8sbnVsbF0sWyJmdW4gcGxuIiwvXig/OnhwOmRlcmVmZXJlbmNlfHhpbmM6bm9kZS1leHBhbmR8eGluYzpsaW5rLXJlZmVyZW5jZXN8eGluYzpsaW5rLWV4cGFuZHx4aHRtbDpyZXN0cnVjdHVyZXx4aHRtbDpjbGVhbnx4aHRtbDphZGQtbGlzdHN8eGRtcDp6aXAtbWFuaWZlc3R8eGRtcDp6aXAtZ2V0fHhkbXA6emlwLWNyZWF0ZXx4ZG1wOnhxdWVyeS12ZXJzaW9ufHhkbXA6d29yZC1jb252ZXJ0fHhkbXA6d2l0aC1uYW1lc3BhY2VzfHhkbXA6dmVyc2lvbnx4ZG1wOnZhbHVlfHhkbXA6dXNlci1yb2xlc3x4ZG1wOnVzZXItbGFzdC1sb2dpbnx4ZG1wOnVzZXJ8eGRtcDp1cmwtZW5jb2RlfHhkbXA6dXJsLWRlY29kZXx4ZG1wOnVyaS1pcy1maWxlfHhkbXA6dXJpLWZvcm1hdHx4ZG1wOnVyaS1jb250ZW50LXR5cGV8eGRtcDp1bnF1b3RlfHhkbXA6dW5wYXRofHhkbXA6dHJpZ2dlcnMtZGF0YWJhc2V8eGRtcDp0cmFjZXx4ZG1wOnRvLWpzb258eGRtcDp0aWR5fHhkbXA6c3ViYmluYXJ5fHhkbXA6c3RyZnRpbWV8eGRtcDpzcGF3bi1pbnx4ZG1wOnNwYXdufHhkbXA6c2xlZXB8eGRtcDpzaHV0ZG93bnx4ZG1wOnNldC1zZXNzaW9uLWZpZWxkfHhkbXA6c2V0LXJlc3BvbnNlLWVuY29kaW5nfHhkbXA6c2V0LXJlc3BvbnNlLWNvbnRlbnQtdHlwZXx4ZG1wOnNldC1yZXNwb25zZS1jb2RlfHhkbXA6c2V0LXJlcXVlc3QtdGltZS1saW1pdHx4ZG1wOnNldHx4ZG1wOnNlcnZlcnN8eGRtcDpzZXJ2ZXItc3RhdHVzfHhkbXA6c2VydmVyLW5hbWV8eGRtcDpzZXJ2ZXJ8eGRtcDpzZWN1cml0eS1kYXRhYmFzZXx4ZG1wOnNlY3VyaXR5LWFzc2VydHx4ZG1wOnNjaGVtYS1kYXRhYmFzZXx4ZG1wOnNhdmV8eGRtcDpyb2xlLXJvbGVzfHhkbXA6cm9sZXx4ZG1wOnJldGhyb3d8eGRtcDpyZXN0YXJ0fHhkbXA6cmVxdWVzdC10aW1lc3RhbXB8eGRtcDpyZXF1ZXN0LXN0YXR1c3x4ZG1wOnJlcXVlc3QtY2FuY2VsfHhkbXA6cmVxdWVzdHx4ZG1wOnJlZGlyZWN0LXJlc3BvbnNlfHhkbXA6cmFuZG9tfHhkbXA6cXVvdGV8eGRtcDpxdWVyeS10cmFjZXx4ZG1wOnF1ZXJ5LW1ldGVyc3x4ZG1wOnByb2R1Y3QtZWRpdGlvbnx4ZG1wOnByaXZpbGVnZS1yb2xlc3x4ZG1wOnByaXZpbGVnZXx4ZG1wOnByZXR0eS1wcmludHx4ZG1wOnBvd2VycG9pbnQtY29udmVydHx4ZG1wOnBsYXRmb3JtfHhkbXA6cGVybWlzc2lvbnx4ZG1wOnBkZi1jb252ZXJ0fHhkbXA6cGF0aHx4ZG1wOm9jdGFsLXRvLWludGVnZXJ8eGRtcDpub2RlLXVyaXx4ZG1wOm5vZGUtcmVwbGFjZXx4ZG1wOm5vZGUta2luZHx4ZG1wOm5vZGUtaW5zZXJ0LWNoaWxkfHhkbXA6bm9kZS1pbnNlcnQtYmVmb3JlfHhkbXA6bm9kZS1pbnNlcnQtYWZ0ZXJ8eGRtcDpub2RlLWRlbGV0ZXx4ZG1wOm5vZGUtZGF0YWJhc2V8eGRtcDptdWw2NHx4ZG1wOm1vZHVsZXMtcm9vdHx4ZG1wOm1vZHVsZXMtZGF0YWJhc2V8eGRtcDptZXJnaW5nfHhkbXA6bWVyZ2UtY2FuY2VsfHhkbXA6bWVyZ2V8eGRtcDptZDV8eGRtcDpsb2dvdXR8eGRtcDpsb2dpbnx4ZG1wOmxvZy1sZXZlbHx4ZG1wOmxvZ3x4ZG1wOmxvY2stcmVsZWFzZXx4ZG1wOmxvY2stYWNxdWlyZXx4ZG1wOmxvYWR8eGRtcDppbnZva2UtaW58eGRtcDppbnZva2V8eGRtcDppbnRlZ2VyLXRvLW9jdGFsfHhkbXA6aW50ZWdlci10by1oZXh8eGRtcDpodHRwLXB1dHx4ZG1wOmh0dHAtcG9zdHx4ZG1wOmh0dHAtb3B0aW9uc3x4ZG1wOmh0dHAtaGVhZHx4ZG1wOmh0dHAtZ2V0fHhkbXA6aHR0cC1kZWxldGV8eGRtcDpob3N0c3x4ZG1wOmhvc3Qtc3RhdHVzfHhkbXA6aG9zdC1uYW1lfHhkbXA6aG9zdHx4ZG1wOmhleC10by1pbnRlZ2VyfHhkbXA6aGFzaDY0fHhkbXA6aGFzaDMyfHhkbXA6aGFzLXByaXZpbGVnZXx4ZG1wOmdyb3Vwc3x4ZG1wOmdyb3VwLXNlcnZlc3x4ZG1wOmdyb3VwLXNlcnZlcnN8eGRtcDpncm91cC1uYW1lfHhkbXA6Z3JvdXAtaG9zdHN8eGRtcDpncm91cHx4ZG1wOmdldC1zZXNzaW9uLWZpZWxkLW5hbWVzfHhkbXA6Z2V0LXNlc3Npb24tZmllbGR8eGRtcDpnZXQtcmVzcG9uc2UtZW5jb2Rpbmd8eGRtcDpnZXQtcmVzcG9uc2UtY29kZXx4ZG1wOmdldC1yZXF1ZXN0LXVzZXJuYW1lfHhkbXA6Z2V0LXJlcXVlc3QtdXNlcnx4ZG1wOmdldC1yZXF1ZXN0LXVybHx4ZG1wOmdldC1yZXF1ZXN0LXByb3RvY29sfHhkbXA6Z2V0LXJlcXVlc3QtcGF0aHx4ZG1wOmdldC1yZXF1ZXN0LW1ldGhvZHx4ZG1wOmdldC1yZXF1ZXN0LWhlYWRlci1uYW1lc3x4ZG1wOmdldC1yZXF1ZXN0LWhlYWRlcnx4ZG1wOmdldC1yZXF1ZXN0LWZpZWxkLW5hbWVzfHhkbXA6Z2V0LXJlcXVlc3QtZmllbGQtZmlsZW5hbWV8eGRtcDpnZXQtcmVxdWVzdC1maWVsZC1jb250ZW50LXR5cGV8eGRtcDpnZXQtcmVxdWVzdC1maWVsZHx4ZG1wOmdldC1yZXF1ZXN0LWNsaWVudC1jZXJ0aWZpY2F0ZXx4ZG1wOmdldC1yZXF1ZXN0LWNsaWVudC1hZGRyZXNzfHhkbXA6Z2V0LXJlcXVlc3QtYm9keXx4ZG1wOmdldC1jdXJyZW50LXVzZXJ8eGRtcDpnZXQtY3VycmVudC1yb2xlc3x4ZG1wOmdldHx4ZG1wOmZ1bmN0aW9uLW5hbWV8eGRtcDpmdW5jdGlvbi1tb2R1bGV8eGRtcDpmdW5jdGlvbnx4ZG1wOmZyb20tanNvbnx4ZG1wOmZvcmVzdHN8eGRtcDpmb3Jlc3Qtc3RhdHVzfHhkbXA6Zm9yZXN0LXJlc3RvcmV8eGRtcDpmb3Jlc3QtcmVzdGFydHx4ZG1wOmZvcmVzdC1uYW1lfHhkbXA6Zm9yZXN0LWRlbGV0ZXx4ZG1wOmZvcmVzdC1kYXRhYmFzZXN8eGRtcDpmb3Jlc3QtY291bnRzfHhkbXA6Zm9yZXN0LWNsZWFyfHhkbXA6Zm9yZXN0LWJhY2t1cHx4ZG1wOmZvcmVzdHx4ZG1wOmZpbGVzeXN0ZW0tZmlsZXx4ZG1wOmZpbGVzeXN0ZW0tZGlyZWN0b3J5fHhkbXA6ZXhpc3RzfHhkbXA6ZXhjZWwtY29udmVydHx4ZG1wOmV2YWwtaW58eGRtcDpldmFsfHhkbXA6ZXN0aW1hdGV8eGRtcDplbWFpbHx4ZG1wOmVsZW1lbnQtY29udGVudC10eXBlfHhkbXA6ZWxhcHNlZC10aW1lfHhkbXA6ZG9jdW1lbnQtc2V0LXF1YWxpdHl8eGRtcDpkb2N1bWVudC1zZXQtcHJvcGVydHl8eGRtcDpkb2N1bWVudC1zZXQtcHJvcGVydGllc3x4ZG1wOmRvY3VtZW50LXNldC1wZXJtaXNzaW9uc3x4ZG1wOmRvY3VtZW50LXNldC1jb2xsZWN0aW9uc3x4ZG1wOmRvY3VtZW50LXJlbW92ZS1wcm9wZXJ0aWVzfHhkbXA6ZG9jdW1lbnQtcmVtb3ZlLXBlcm1pc3Npb25zfHhkbXA6ZG9jdW1lbnQtcmVtb3ZlLWNvbGxlY3Rpb25zfHhkbXA6ZG9jdW1lbnQtcHJvcGVydGllc3x4ZG1wOmRvY3VtZW50LWxvY2tzfHhkbXA6ZG9jdW1lbnQtbG9hZHx4ZG1wOmRvY3VtZW50LWluc2VydHx4ZG1wOmRvY3VtZW50LWdldC1xdWFsaXR5fHhkbXA6ZG9jdW1lbnQtZ2V0LXByb3BlcnRpZXN8eGRtcDpkb2N1bWVudC1nZXQtcGVybWlzc2lvbnN8eGRtcDpkb2N1bWVudC1nZXQtY29sbGVjdGlvbnN8eGRtcDpkb2N1bWVudC1nZXR8eGRtcDpkb2N1bWVudC1mb3Jlc3R8eGRtcDpkb2N1bWVudC1kZWxldGV8eGRtcDpkb2N1bWVudC1hZGQtcHJvcGVydGllc3x4ZG1wOmRvY3VtZW50LWFkZC1wZXJtaXNzaW9uc3x4ZG1wOmRvY3VtZW50LWFkZC1jb2xsZWN0aW9uc3x4ZG1wOmRpcmVjdG9yeS1wcm9wZXJ0aWVzfHhkbXA6ZGlyZWN0b3J5LWxvY2tzfHhkbXA6ZGlyZWN0b3J5LWRlbGV0ZXx4ZG1wOmRpcmVjdG9yeS1jcmVhdGV8eGRtcDpkaXJlY3Rvcnl8eGRtcDpkaWFjcml0aWMtbGVzc3x4ZG1wOmRlc2NyaWJlfHhkbXA6ZGVmYXVsdC1wZXJtaXNzaW9uc3x4ZG1wOmRlZmF1bHQtY29sbGVjdGlvbnN8eGRtcDpkYXRhYmFzZXN8eGRtcDpkYXRhYmFzZS1yZXN0b3JlLXZhbGlkYXRlfHhkbXA6ZGF0YWJhc2UtcmVzdG9yZS1zdGF0dXN8eGRtcDpkYXRhYmFzZS1yZXN0b3JlLWNhbmNlbHx4ZG1wOmRhdGFiYXNlLXJlc3RvcmV8eGRtcDpkYXRhYmFzZS1uYW1lfHhkbXA6ZGF0YWJhc2UtZm9yZXN0c3x4ZG1wOmRhdGFiYXNlLWJhY2t1cC12YWxpZGF0ZXx4ZG1wOmRhdGFiYXNlLWJhY2t1cC1zdGF0dXN8eGRtcDpkYXRhYmFzZS1iYWNrdXAtcHVyZ2V8eGRtcDpkYXRhYmFzZS1iYWNrdXAtY2FuY2VsfHhkbXA6ZGF0YWJhc2UtYmFja3VwfHhkbXA6ZGF0YWJhc2V8eGRtcDpjb2xsZWN0aW9uLXByb3BlcnRpZXN8eGRtcDpjb2xsZWN0aW9uLWxvY2tzfHhkbXA6Y29sbGVjdGlvbi1kZWxldGV8eGRtcDpjb2xsYXRpb24tY2Fub25pY2FsLXVyaXx4ZG1wOmNhc3RhYmxlLWFzfHhkbXA6Y2FuLWdyYW50LXJvbGVzfHhkbXA6YmFzZTY0LWVuY29kZXx4ZG1wOmJhc2U2NC1kZWNvZGV8eGRtcDphcmNoaXRlY3R1cmV8eGRtcDphcHBseXx4ZG1wOmFtcC1yb2xlc3x4ZG1wOmFtcHx4ZG1wOmFkZDY0fHhkbXA6YWRkLXJlc3BvbnNlLWhlYWRlcnx4ZG1wOmFjY2Vzc3x0cmdyOnRyaWdnZXItc2V0LXJlY3Vyc2l2ZXx0cmdyOnRyaWdnZXItc2V0LXBlcm1pc3Npb25zfHRyZ3I6dHJpZ2dlci1zZXQtbmFtZXx0cmdyOnRyaWdnZXItc2V0LW1vZHVsZXx0cmdyOnRyaWdnZXItc2V0LWV2ZW50fHRyZ3I6dHJpZ2dlci1zZXQtZGVzY3JpcHRpb258dHJncjp0cmlnZ2VyLXJlbW92ZS1wZXJtaXNzaW9uc3x0cmdyOnRyaWdnZXItbW9kdWxlfHRyZ3I6dHJpZ2dlci1nZXQtcGVybWlzc2lvbnN8dHJncjp0cmlnZ2VyLWVuYWJsZXx0cmdyOnRyaWdnZXItZGlzYWJsZXx0cmdyOnRyaWdnZXItZGF0YWJhc2Utb25saW5lLWV2ZW50fHRyZ3I6dHJpZ2dlci1kYXRhLWV2ZW50fHRyZ3I6dHJpZ2dlci1hZGQtcGVybWlzc2lvbnN8dHJncjpyZW1vdmUtdHJpZ2dlcnx0cmdyOnByb3BlcnR5LWNvbnRlbnR8dHJncjpwcmUtY29tbWl0fHRyZ3I6cG9zdC1jb21taXR8dHJncjpnZXQtdHJpZ2dlci1ieS1pZHx0cmdyOmdldC10cmlnZ2VyfHRyZ3I6ZG9jdW1lbnQtc2NvcGV8dHJncjpkb2N1bWVudC1jb250ZW50fHRyZ3I6ZGlyZWN0b3J5LXNjb3BlfHRyZ3I6Y3JlYXRlLXRyaWdnZXJ8dHJncjpjb2xsZWN0aW9uLXNjb3BlfHRyZ3I6YW55LXByb3BlcnR5LWNvbnRlbnR8dGhzcjpzZXQtZW50cnl8dGhzcjpyZW1vdmUtdGVybXx0aHNyOnJlbW92ZS1zeW5vbnltfHRoc3I6cmVtb3ZlLWVudHJ5fHRoc3I6cXVlcnktbG9va3VwfHRoc3I6bG9va3VwfHRoc3I6bG9hZHx0aHNyOmluc2VydHx0aHNyOmV4cGFuZHx0aHNyOmFkZC1zeW5vbnltfHNwZWxsOnN1Z2dlc3QtZGV0YWlsZWR8c3BlbGw6c3VnZ2VzdHxzcGVsbDpyZW1vdmUtd29yZHxzcGVsbDptYWtlLWRpY3Rpb25hcnl8c3BlbGw6bG9hZHxzcGVsbDpsZXZlbnNodGVpbi1kaXN0YW5jZXxzcGVsbDppcy1jb3JyZWN0fHNwZWxsOmluc2VydHxzcGVsbDpkb3VibGUtbWV0YXBob25lfHNwZWxsOmFkZC13b3JkfHNlYzp1c2Vycy1jb2xsZWN0aW9ufHNlYzp1c2VyLXNldC1yb2xlc3xzZWM6dXNlci1zZXQtcGFzc3dvcmR8c2VjOnVzZXItc2V0LW5hbWV8c2VjOnVzZXItc2V0LWRlc2NyaXB0aW9ufHNlYzp1c2VyLXNldC1kZWZhdWx0LXBlcm1pc3Npb25zfHNlYzp1c2VyLXNldC1kZWZhdWx0LWNvbGxlY3Rpb25zfHNlYzp1c2VyLXJlbW92ZS1yb2xlc3xzZWM6dXNlci1wcml2aWxlZ2VzfHNlYzp1c2VyLWdldC1yb2xlc3xzZWM6dXNlci1nZXQtZGVzY3JpcHRpb258c2VjOnVzZXItZ2V0LWRlZmF1bHQtcGVybWlzc2lvbnN8c2VjOnVzZXItZ2V0LWRlZmF1bHQtY29sbGVjdGlvbnN8c2VjOnVzZXItZG9jLXBlcm1pc3Npb25zfHNlYzp1c2VyLWRvYy1jb2xsZWN0aW9uc3xzZWM6dXNlci1hZGQtcm9sZXN8c2VjOnVucHJvdGVjdC1jb2xsZWN0aW9ufHNlYzp1aWQtZm9yLW5hbWV8c2VjOnNldC1yZWFsbXxzZWM6c2VjdXJpdHktdmVyc2lvbnxzZWM6c2VjdXJpdHktbmFtZXNwYWNlfHNlYzpzZWN1cml0eS1pbnN0YWxsZWR8c2VjOnNlY3VyaXR5LWNvbGxlY3Rpb258c2VjOnJvbGVzLWNvbGxlY3Rpb258c2VjOnJvbGUtc2V0LXJvbGVzfHNlYzpyb2xlLXNldC1uYW1lfHNlYzpyb2xlLXNldC1kZXNjcmlwdGlvbnxzZWM6cm9sZS1zZXQtZGVmYXVsdC1wZXJtaXNzaW9uc3xzZWM6cm9sZS1zZXQtZGVmYXVsdC1jb2xsZWN0aW9uc3xzZWM6cm9sZS1yZW1vdmUtcm9sZXN8c2VjOnJvbGUtcHJpdmlsZWdlc3xzZWM6cm9sZS1nZXQtcm9sZXN8c2VjOnJvbGUtZ2V0LWRlc2NyaXB0aW9ufHNlYzpyb2xlLWdldC1kZWZhdWx0LXBlcm1pc3Npb25zfHNlYzpyb2xlLWdldC1kZWZhdWx0LWNvbGxlY3Rpb25zfHNlYzpyb2xlLWRvYy1wZXJtaXNzaW9uc3xzZWM6cm9sZS1kb2MtY29sbGVjdGlvbnN8c2VjOnJvbGUtYWRkLXJvbGVzfHNlYzpyZW1vdmUtdXNlcnxzZWM6cmVtb3ZlLXJvbGUtZnJvbS11c2Vyc3xzZWM6cmVtb3ZlLXJvbGUtZnJvbS1yb2xlfHNlYzpyZW1vdmUtcm9sZS1mcm9tLXByaXZpbGVnZXN8c2VjOnJlbW92ZS1yb2xlLWZyb20tYW1wc3xzZWM6cmVtb3ZlLXJvbGV8c2VjOnJlbW92ZS1wcml2aWxlZ2V8c2VjOnJlbW92ZS1hbXB8c2VjOnByb3RlY3QtY29sbGVjdGlvbnxzZWM6cHJpdmlsZWdlcy1jb2xsZWN0aW9ufHNlYzpwcml2aWxlZ2Utc2V0LXJvbGVzfHNlYzpwcml2aWxlZ2Utc2V0LW5hbWV8c2VjOnByaXZpbGVnZS1yZW1vdmUtcm9sZXN8c2VjOnByaXZpbGVnZS1nZXQtcm9sZXN8c2VjOnByaXZpbGVnZS1hZGQtcm9sZXN8c2VjOnByaXYtZG9jLXBlcm1pc3Npb25zfHNlYzpwcml2LWRvYy1jb2xsZWN0aW9uc3xzZWM6Z2V0LXVzZXItbmFtZXN8c2VjOmdldC11bmlxdWUtZWxlbS1pZHxzZWM6Z2V0LXJvbGUtbmFtZXN8c2VjOmdldC1yb2xlLWlkc3xzZWM6Z2V0LXByaXZpbGVnZXxzZWM6Z2V0LWRpc3RpbmN0LXBlcm1pc3Npb25zfHNlYzpnZXQtY29sbGVjdGlvbnxzZWM6Z2V0LWFtcHxzZWM6Y3JlYXRlLXVzZXItd2l0aC1yb2xlfHNlYzpjcmVhdGUtdXNlcnxzZWM6Y3JlYXRlLXJvbGV8c2VjOmNyZWF0ZS1wcml2aWxlZ2V8c2VjOmNyZWF0ZS1hbXB8c2VjOmNvbGxlY3Rpb25zLWNvbGxlY3Rpb258c2VjOmNvbGxlY3Rpb24tc2V0LXBlcm1pc3Npb25zfHNlYzpjb2xsZWN0aW9uLXJlbW92ZS1wZXJtaXNzaW9uc3xzZWM6Y29sbGVjdGlvbi1nZXQtcGVybWlzc2lvbnN8c2VjOmNvbGxlY3Rpb24tYWRkLXBlcm1pc3Npb25zfHNlYzpjaGVjay1hZG1pbnxzZWM6YW1wcy1jb2xsZWN0aW9ufHNlYzphbXAtc2V0LXJvbGVzfHNlYzphbXAtcmVtb3ZlLXJvbGVzfHNlYzphbXAtZ2V0LXJvbGVzfHNlYzphbXAtZG9jLXBlcm1pc3Npb25zfHNlYzphbXAtZG9jLWNvbGxlY3Rpb25zfHNlYzphbXAtYWRkLXJvbGVzfHNlYXJjaDp1bnBhcnNlfHNlYXJjaDpzdWdnZXN0fHNlYXJjaDpzbmlwcGV0fHNlYXJjaDpzZWFyY2h8c2VhcmNoOnJlc29sdmUtbm9kZXN8c2VhcmNoOnJlc29sdmV8c2VhcmNoOnJlbW92ZS1jb25zdHJhaW50fHNlYXJjaDpwYXJzZXxzZWFyY2g6Z2V0LWRlZmF1bHQtb3B0aW9uc3xzZWFyY2g6ZXN0aW1hdGV8c2VhcmNoOmNoZWNrLW9wdGlvbnN8cHJvZjp2YWx1ZXxwcm9mOnJlc2V0fHByb2Y6cmVwb3J0fHByb2Y6aW52b2tlfHByb2Y6ZXZhbHxwcm9mOmVuYWJsZXxwcm9mOmRpc2FibGV8cHJvZjphbGxvd2VkfHBwdDpjbGVhbnxwa2k6dGVtcGxhdGUtc2V0LXJlcXVlc3R8cGtpOnRlbXBsYXRlLXNldC1uYW1lfHBraTp0ZW1wbGF0ZS1zZXQta2V5LXR5cGV8cGtpOnRlbXBsYXRlLXNldC1rZXktb3B0aW9uc3xwa2k6dGVtcGxhdGUtc2V0LWRlc2NyaXB0aW9ufHBraTp0ZW1wbGF0ZS1pbi11c2V8cGtpOnRlbXBsYXRlLWdldC12ZXJzaW9ufHBraTp0ZW1wbGF0ZS1nZXQtcmVxdWVzdHxwa2k6dGVtcGxhdGUtZ2V0LW5hbWV8cGtpOnRlbXBsYXRlLWdldC1rZXktdHlwZXxwa2k6dGVtcGxhdGUtZ2V0LWtleS1vcHRpb25zfHBraTp0ZW1wbGF0ZS1nZXQtaWR8cGtpOnRlbXBsYXRlLWdldC1kZXNjcmlwdGlvbnxwa2k6bmVlZC1jZXJ0aWZpY2F0ZXxwa2k6aXMtdGVtcG9yYXJ5fHBraTppbnNlcnQtdHJ1c3RlZC1jZXJ0aWZpY2F0ZXN8cGtpOmluc2VydC10ZW1wbGF0ZXxwa2k6aW5zZXJ0LXNpZ25lZC1jZXJ0aWZpY2F0ZXN8cGtpOmluc2VydC1jZXJ0aWZpY2F0ZS1yZXZvY2F0aW9uLWxpc3R8cGtpOmdldC10cnVzdGVkLWNlcnRpZmljYXRlLWlkc3xwa2k6Z2V0LXRlbXBsYXRlLWlkc3xwa2k6Z2V0LXRlbXBsYXRlLWNlcnRpZmljYXRlLWF1dGhvcml0eXxwa2k6Z2V0LXRlbXBsYXRlLWJ5LW5hbWV8cGtpOmdldC10ZW1wbGF0ZXxwa2k6Z2V0LXBlbmRpbmctY2VydGlmaWNhdGUtcmVxdWVzdHMteG1sfHBraTpnZXQtcGVuZGluZy1jZXJ0aWZpY2F0ZS1yZXF1ZXN0cy1wZW18cGtpOmdldC1wZW5kaW5nLWNlcnRpZmljYXRlLXJlcXVlc3R8cGtpOmdldC1jZXJ0aWZpY2F0ZXMtZm9yLXRlbXBsYXRlLXhtbHxwa2k6Z2V0LWNlcnRpZmljYXRlcy1mb3ItdGVtcGxhdGV8cGtpOmdldC1jZXJ0aWZpY2F0ZXN8cGtpOmdldC1jZXJ0aWZpY2F0ZS14bWx8cGtpOmdldC1jZXJ0aWZpY2F0ZS1wZW18cGtpOmdldC1jZXJ0aWZpY2F0ZXxwa2k6Z2VuZXJhdGUtdGVtcG9yYXJ5LWNlcnRpZmljYXRlLWlmLW5lY2Vzc2FyeXxwa2k6Z2VuZXJhdGUtdGVtcG9yYXJ5LWNlcnRpZmljYXRlfHBraTpnZW5lcmF0ZS10ZW1wbGF0ZS1jZXJ0aWZpY2F0ZS1hdXRob3JpdHl8cGtpOmdlbmVyYXRlLWNlcnRpZmljYXRlLXJlcXVlc3R8cGtpOmRlbGV0ZS10ZW1wbGF0ZXxwa2k6ZGVsZXRlLWNlcnRpZmljYXRlfHBraTpjcmVhdGUtdGVtcGxhdGV8cGRmOm1ha2UtdG9jfHBkZjppbnNlcnQtdG9jLWhlYWRlcnN8cGRmOmdldC10b2N8cGRmOmNsZWFufHA6c3RhdHVzLXRyYW5zaXRpb258cDpzdGF0ZS10cmFuc2l0aW9ufHA6cmVtb3ZlfHA6cGlwZWxpbmVzfHA6aW5zZXJ0fHA6Z2V0LWJ5LWlkfHA6Z2V0fHA6ZXhlY3V0ZXxwOmNyZWF0ZXxwOmNvbmRpdGlvbnxwOmNvbGxlY3Rpb258cDphY3Rpb258b294bWw6cnVucy1tZXJnZXxvb3htbDpwYWNrYWdlLXVyaXN8b294bWw6cGFja2FnZS1wYXJ0cy1pbnNlcnR8b294bWw6cGFja2FnZS1wYXJ0c3xtc3dvcmQ6Y2xlYW58bWNnbTpwb2x5Z29ufG1jZ206cG9pbnR8bWNnbTpnZW9zcGF0aWFsLXF1ZXJ5LWZyb20tZWxlbWVudHN8bWNnbTpnZW9zcGF0aWFsLXF1ZXJ5fG1jZ206Y2lyY2xlfG1hdGg6dGFuaHxtYXRoOnRhbnxtYXRoOnNxcnR8bWF0aDpzaW5ofG1hdGg6c2lufG1hdGg6cG93fG1hdGg6bW9kZnxtYXRoOmxvZzEwfG1hdGg6bG9nfG1hdGg6bGRleHB8bWF0aDpmcmV4cHxtYXRoOmZtb2R8bWF0aDpmbG9vcnxtYXRoOmZhYnN8bWF0aDpleHB8bWF0aDpjb3NofG1hdGg6Y29zfG1hdGg6Y2VpbHxtYXRoOmF0YW4yfG1hdGg6YXRhbnxtYXRoOmFzaW58bWF0aDphY29zfG1hcDpwdXR8bWFwOm1hcHxtYXA6a2V5c3xtYXA6Z2V0fG1hcDpkZWxldGV8bWFwOmNvdW50fG1hcDpjbGVhcnxsbms6dG98bG5rOnJlbW92ZXxsbms6aW5zZXJ0fGxuazpnZXR8bG5rOmZyb218bG5rOmNyZWF0ZXxrbWw6cG9seWdvbnxrbWw6cG9pbnR8a21sOmludGVyaW9yLXBvbHlnb258a21sOmdlb3NwYXRpYWwtcXVlcnktZnJvbS1lbGVtZW50c3xrbWw6Z2Vvc3BhdGlhbC1xdWVyeXxrbWw6Y2lyY2xlfGttbDpib3h8Z21sOnBvbHlnb258Z21sOnBvaW50fGdtbDppbnRlcmlvci1wb2x5Z29ufGdtbDpnZW9zcGF0aWFsLXF1ZXJ5LWZyb20tZWxlbWVudHN8Z21sOmdlb3NwYXRpYWwtcXVlcnl8Z21sOmNpcmNsZXxnbWw6Ym94fGdlb3Jzczpwb2ludHxnZW9yc3M6Z2Vvc3BhdGlhbC1xdWVyeXxnZW9yc3M6Y2lyY2xlfGdlbzpwb2x5Z29ufGdlbzpwb2ludHxnZW86aW50ZXJpb3ItcG9seWdvbnxnZW86Z2Vvc3BhdGlhbC1xdWVyeS1mcm9tLWVsZW1lbnRzfGdlbzpnZW9zcGF0aWFsLXF1ZXJ5fGdlbzpjaXJjbGV8Z2VvOmJveHxmbjp6ZXJvLW9yLW9uZXxmbjp5ZWFycy1mcm9tLWR1cmF0aW9ufGZuOnllYXItZnJvbS1kYXRlVGltZXxmbjp5ZWFyLWZyb20tZGF0ZXxmbjp1cHBlci1jYXNlfGZuOnVub3JkZXJlZHxmbjp0cnVlfGZuOnRyYW5zbGF0ZXxmbjp0cmFjZXxmbjp0b2tlbml6ZXxmbjp0aW1lem9uZS1mcm9tLXRpbWV8Zm46dGltZXpvbmUtZnJvbS1kYXRlVGltZXxmbjp0aW1lem9uZS1mcm9tLWRhdGV8Zm46c3VtfGZuOnN1YnRyYWN0LWRhdGVUaW1lcy15aWVsZGluZy15ZWFyTW9udGhEdXJhdGlvbnxmbjpzdWJ0cmFjdC1kYXRlVGltZXMteWllbGRpbmctZGF5VGltZUR1cmF0aW9ufGZuOnN1YnN0cmluZy1iZWZvcmV8Zm46c3Vic3RyaW5nLWFmdGVyfGZuOnN1YnN0cmluZ3xmbjpzdWJzZXF1ZW5jZXxmbjpzdHJpbmctdG8tY29kZXBvaW50c3xmbjpzdHJpbmctcGFkfGZuOnN0cmluZy1sZW5ndGh8Zm46c3RyaW5nLWpvaW58Zm46c3RyaW5nfGZuOnN0YXRpYy1iYXNlLXVyaXxmbjpzdGFydHMtd2l0aHxmbjpzZWNvbmRzLWZyb20tdGltZXxmbjpzZWNvbmRzLWZyb20tZHVyYXRpb258Zm46c2Vjb25kcy1mcm9tLWRhdGVUaW1lfGZuOnJvdW5kLWhhbGYtdG8tZXZlbnxmbjpyb3VuZHxmbjpyb290fGZuOnJldmVyc2V8Zm46cmVzb2x2ZS11cml8Zm46cmVzb2x2ZS1RTmFtZXxmbjpyZXBsYWNlfGZuOnJlbW92ZXxmbjpRTmFtZXxmbjpwcmVmaXgtZnJvbS1RTmFtZXxmbjpwb3NpdGlvbnxmbjpvbmUtb3ItbW9yZXxmbjpudW1iZXJ8Zm46bm90fGZuOm5vcm1hbGl6ZS11bmljb2RlfGZuOm5vcm1hbGl6ZS1zcGFjZXxmbjpub2RlLW5hbWV8Zm46bm9kZS1raW5kfGZuOm5pbGxlZHxmbjpuYW1lc3BhY2UtdXJpLWZyb20tUU5hbWV8Zm46bmFtZXNwYWNlLXVyaS1mb3ItcHJlZml4fGZuOm5hbWVzcGFjZS11cml8Zm46bmFtZXxmbjptb250aHMtZnJvbS1kdXJhdGlvbnxmbjptb250aC1mcm9tLWRhdGVUaW1lfGZuOm1vbnRoLWZyb20tZGF0ZXxmbjptaW51dGVzLWZyb20tdGltZXxmbjptaW51dGVzLWZyb20tZHVyYXRpb258Zm46bWludXRlcy1mcm9tLWRhdGVUaW1lfGZuOm1pbnxmbjptYXh8Zm46bWF0Y2hlc3xmbjpsb3dlci1jYXNlfGZuOmxvY2FsLW5hbWUtZnJvbS1RTmFtZXxmbjpsb2NhbC1uYW1lfGZuOmxhc3R8Zm46bGFuZ3xmbjppcmktdG8tdXJpfGZuOmluc2VydC1iZWZvcmV8Zm46aW5kZXgtb2Z8Zm46aW4tc2NvcGUtcHJlZml4ZXN8Zm46aW1wbGljaXQtdGltZXpvbmV8Zm46aWRyZWZ8Zm46aWR8Zm46aG91cnMtZnJvbS10aW1lfGZuOmhvdXJzLWZyb20tZHVyYXRpb258Zm46aG91cnMtZnJvbS1kYXRlVGltZXxmbjpmbG9vcnxmbjpmYWxzZXxmbjpleHBhbmRlZC1RTmFtZXxmbjpleGlzdHN8Zm46ZXhhY3RseS1vbmV8Zm46ZXNjYXBlLXVyaXxmbjplc2NhcGUtaHRtbC11cml8Zm46ZXJyb3J8Zm46ZW5kcy13aXRofGZuOmVuY29kZS1mb3ItdXJpfGZuOmVtcHR5fGZuOmRvY3VtZW50LXVyaXxmbjpkb2MtYXZhaWxhYmxlfGZuOmRvY3xmbjpkaXN0aW5jdC12YWx1ZXN8Zm46ZGlzdGluY3Qtbm9kZXN8Zm46ZGVmYXVsdC1jb2xsYXRpb258Zm46ZGVlcC1lcXVhbHxmbjpkYXlzLWZyb20tZHVyYXRpb258Zm46ZGF5LWZyb20tZGF0ZVRpbWV8Zm46ZGF5LWZyb20tZGF0ZXxmbjpkYXRhfGZuOmN1cnJlbnQtdGltZXxmbjpjdXJyZW50LWRhdGVUaW1lfGZuOmN1cnJlbnQtZGF0ZXxmbjpjb3VudHxmbjpjb250YWluc3xmbjpjb25jYXR8Zm46Y29tcGFyZXxmbjpjb2xsZWN0aW9ufGZuOmNvZGVwb2ludHMtdG8tc3RyaW5nfGZuOmNvZGVwb2ludC1lcXVhbHxmbjpjZWlsaW5nfGZuOmJvb2xlYW58Zm46YmFzZS11cml8Zm46YXZnfGZuOmFkanVzdC10aW1lLXRvLXRpbWV6b25lfGZuOmFkanVzdC1kYXRlVGltZS10by10aW1lem9uZXxmbjphZGp1c3QtZGF0ZS10by10aW1lem9uZXxmbjphYnN8ZmVlZDp1bnN1YnNjcmliZXxmZWVkOnN1YnNjcmlwdGlvbnxmZWVkOnN1YnNjcmliZXxmZWVkOnJlcXVlc3R8ZmVlZDppdGVtfGZlZWQ6ZGVzY3JpcHRpb258ZXhjZWw6Y2xlYW58ZW50aXR5OmVucmljaHxkb206c2V0LXBpcGVsaW5lc3xkb206c2V0LXBlcm1pc3Npb25zfGRvbTpzZXQtbmFtZXxkb206c2V0LWV2YWx1YXRpb24tY29udGV4dHxkb206c2V0LWRvbWFpbi1zY29wZXxkb206c2V0LWRlc2NyaXB0aW9ufGRvbTpyZW1vdmUtcGlwZWxpbmV8ZG9tOnJlbW92ZS1wZXJtaXNzaW9uc3xkb206cmVtb3ZlfGRvbTpnZXR8ZG9tOmV2YWx1YXRpb24tY29udGV4dHxkb206ZG9tYWluc3xkb206ZG9tYWluLXNjb3BlfGRvbTpjcmVhdGV8ZG9tOmNvbmZpZ3VyYXRpb24tc2V0LXJlc3RhcnQtdXNlcnxkb206Y29uZmlndXJhdGlvbi1zZXQtcGVybWlzc2lvbnN8ZG9tOmNvbmZpZ3VyYXRpb24tc2V0LWV2YWx1YXRpb24tY29udGV4dHxkb206Y29uZmlndXJhdGlvbi1zZXQtZGVmYXVsdC1kb21haW58ZG9tOmNvbmZpZ3VyYXRpb24tZ2V0fGRvbTpjb25maWd1cmF0aW9uLWNyZWF0ZXxkb206Y29sbGVjdGlvbnxkb206YWRkLXBpcGVsaW5lfGRvbTphZGQtcGVybWlzc2lvbnN8ZGxzOnJldGVudGlvbi1ydWxlc3xkbHM6cmV0ZW50aW9uLXJ1bGUtcmVtb3ZlfGRsczpyZXRlbnRpb24tcnVsZS1pbnNlcnR8ZGxzOnJldGVudGlvbi1ydWxlfGRsczpwdXJnZXxkbHM6bm9kZS1leHBhbmR8ZGxzOmxpbmstcmVmZXJlbmNlc3xkbHM6bGluay1leHBhbmR8ZGxzOmRvY3VtZW50cy1xdWVyeXxkbHM6ZG9jdW1lbnQtdmVyc2lvbnMtcXVlcnl8ZGxzOmRvY3VtZW50LXZlcnNpb24tdXJpfGRsczpkb2N1bWVudC12ZXJzaW9uLXF1ZXJ5fGRsczpkb2N1bWVudC12ZXJzaW9uLWRlbGV0ZXxkbHM6ZG9jdW1lbnQtdmVyc2lvbi1hcy1vZnxkbHM6ZG9jdW1lbnQtdmVyc2lvbnxkbHM6ZG9jdW1lbnQtdXBkYXRlfGRsczpkb2N1bWVudC11bm1hbmFnZXxkbHM6ZG9jdW1lbnQtc2V0LXF1YWxpdHl8ZGxzOmRvY3VtZW50LXNldC1wcm9wZXJ0eXxkbHM6ZG9jdW1lbnQtc2V0LXByb3BlcnRpZXN8ZGxzOmRvY3VtZW50LXNldC1wZXJtaXNzaW9uc3xkbHM6ZG9jdW1lbnQtc2V0LWNvbGxlY3Rpb25zfGRsczpkb2N1bWVudC1yZXRlbnRpb24tcnVsZXN8ZGxzOmRvY3VtZW50LXJlbW92ZS1wcm9wZXJ0aWVzfGRsczpkb2N1bWVudC1yZW1vdmUtcGVybWlzc2lvbnN8ZGxzOmRvY3VtZW50LXJlbW92ZS1jb2xsZWN0aW9uc3xkbHM6ZG9jdW1lbnQtcHVyZ2V8ZGxzOmRvY3VtZW50LW1hbmFnZXxkbHM6ZG9jdW1lbnQtaXMtbWFuYWdlZHxkbHM6ZG9jdW1lbnQtaW5zZXJ0LWFuZC1tYW5hZ2V8ZGxzOmRvY3VtZW50LWluY2x1ZGUtcXVlcnl8ZGxzOmRvY3VtZW50LWhpc3Rvcnl8ZGxzOmRvY3VtZW50LWdldC1wZXJtaXNzaW9uc3xkbHM6ZG9jdW1lbnQtZXh0cmFjdC1wYXJ0fGRsczpkb2N1bWVudC1kZWxldGV8ZGxzOmRvY3VtZW50LWNoZWNrb3V0LXN0YXR1c3xkbHM6ZG9jdW1lbnQtY2hlY2tvdXR8ZGxzOmRvY3VtZW50LWNoZWNraW58ZGxzOmRvY3VtZW50LWFkZC1wcm9wZXJ0aWVzfGRsczpkb2N1bWVudC1hZGQtcGVybWlzc2lvbnN8ZGxzOmRvY3VtZW50LWFkZC1jb2xsZWN0aW9uc3xkbHM6YnJlYWstY2hlY2tvdXR8ZGxzOmF1dGhvci1xdWVyeXxkbHM6YXMtb2YtcXVlcnl8ZGJrOmNvbnZlcnR8ZGJnOndhaXR8ZGJnOnZhbHVlfGRiZzpzdG9wcGVkfGRiZzpzdG9wfGRiZzpzdGVwfGRiZzpzdGF0dXN8ZGJnOnN0YWNrfGRiZzpvdXR8ZGJnOm5leHR8ZGJnOmxpbmV8ZGJnOmludm9rZXxkYmc6ZnVuY3Rpb258ZGJnOmZpbmlzaHxkYmc6ZXhwcnxkYmc6ZXZhbHxkYmc6ZGlzY29ubmVjdHxkYmc6ZGV0YWNofGRiZzpjb250aW51ZXxkYmc6Y29ubmVjdHxkYmc6Y2xlYXJ8ZGJnOmJyZWFrcG9pbnRzfGRiZzpicmVha3xkYmc6YXR0YWNoZWR8ZGJnOmF0dGFjaHxjdnQ6c2F2ZS1jb252ZXJ0ZWQtZG9jdW1lbnRzfGN2dDpwYXJ0LXVyaXxjdnQ6ZGVzdGluYXRpb24tdXJpfGN2dDpiYXNlcGF0aHxjdnQ6YmFzZW5hbWV8Y3RzOndvcmRzfGN0czp3b3JkLXF1ZXJ5LXdlaWdodHxjdHM6d29yZC1xdWVyeS10ZXh0fGN0czp3b3JkLXF1ZXJ5LW9wdGlvbnN8Y3RzOndvcmQtcXVlcnl8Y3RzOndvcmQtbWF0Y2h8Y3RzOndhbGt8Y3RzOnVyaXN8Y3RzOnVyaS1tYXRjaHxjdHM6dHJhaW58Y3RzOnRva2VuaXplfGN0czp0aHJlc2hvbGRzfGN0czpzdGVtfGN0czpzaW1pbGFyLXF1ZXJ5LXdlaWdodHxjdHM6c2ltaWxhci1xdWVyeS1ub2Rlc3xjdHM6c2ltaWxhci1xdWVyeXxjdHM6c2hvcnRlc3QtZGlzdGFuY2V8Y3RzOnNlYXJjaHxjdHM6c2NvcmV8Y3RzOnJldmVyc2UtcXVlcnktd2VpZ2h0fGN0czpyZXZlcnNlLXF1ZXJ5LW5vZGVzfGN0czpyZXZlcnNlLXF1ZXJ5fGN0czpyZW1haW5kZXJ8Y3RzOnJlZ2lzdGVyZWQtcXVlcnktd2VpZ2h0fGN0czpyZWdpc3RlcmVkLXF1ZXJ5LW9wdGlvbnN8Y3RzOnJlZ2lzdGVyZWQtcXVlcnktaWRzfGN0czpyZWdpc3RlcmVkLXF1ZXJ5fGN0czpyZWdpc3RlcnxjdHM6cXVlcnl8Y3RzOnF1YWxpdHl8Y3RzOnByb3BlcnRpZXMtcXVlcnktcXVlcnl8Y3RzOnByb3BlcnRpZXMtcXVlcnl8Y3RzOnBvbHlnb24tdmVydGljZXN8Y3RzOnBvbHlnb258Y3RzOnBvaW50LWxvbmdpdHVkZXxjdHM6cG9pbnQtbGF0aXR1ZGV8Y3RzOnBvaW50fGN0czpvci1xdWVyeS1xdWVyaWVzfGN0czpvci1xdWVyeXxjdHM6bm90LXF1ZXJ5LXdlaWdodHxjdHM6bm90LXF1ZXJ5LXF1ZXJ5fGN0czpub3QtcXVlcnl8Y3RzOm5lYXItcXVlcnktd2VpZ2h0fGN0czpuZWFyLXF1ZXJ5LXF1ZXJpZXN8Y3RzOm5lYXItcXVlcnktb3B0aW9uc3xjdHM6bmVhci1xdWVyeS1kaXN0YW5jZXxjdHM6bmVhci1xdWVyeXxjdHM6aGlnaGxpZ2h0fGN0czpnZW9zcGF0aWFsLWNvLW9jY3VycmVuY2VzfGN0czpmcmVxdWVuY3l8Y3RzOmZpdG5lc3N8Y3RzOmZpZWxkLXdvcmRzfGN0czpmaWVsZC13b3JkLXF1ZXJ5LXdlaWdodHxjdHM6ZmllbGQtd29yZC1xdWVyeS10ZXh0fGN0czpmaWVsZC13b3JkLXF1ZXJ5LW9wdGlvbnN8Y3RzOmZpZWxkLXdvcmQtcXVlcnktZmllbGQtbmFtZXxjdHM6ZmllbGQtd29yZC1xdWVyeXxjdHM6ZmllbGQtd29yZC1tYXRjaHxjdHM6ZW50aXR5LWhpZ2hsaWdodHxjdHM6ZWxlbWVudC13b3Jkc3xjdHM6ZWxlbWVudC13b3JkLXF1ZXJ5LXdlaWdodHxjdHM6ZWxlbWVudC13b3JkLXF1ZXJ5LXRleHR8Y3RzOmVsZW1lbnQtd29yZC1xdWVyeS1vcHRpb25zfGN0czplbGVtZW50LXdvcmQtcXVlcnktZWxlbWVudC1uYW1lfGN0czplbGVtZW50LXdvcmQtcXVlcnl8Y3RzOmVsZW1lbnQtd29yZC1tYXRjaHxjdHM6ZWxlbWVudC12YWx1ZXN8Y3RzOmVsZW1lbnQtdmFsdWUtcmFuZ2VzfGN0czplbGVtZW50LXZhbHVlLXF1ZXJ5LXdlaWdodHxjdHM6ZWxlbWVudC12YWx1ZS1xdWVyeS10ZXh0fGN0czplbGVtZW50LXZhbHVlLXF1ZXJ5LW9wdGlvbnN8Y3RzOmVsZW1lbnQtdmFsdWUtcXVlcnktZWxlbWVudC1uYW1lfGN0czplbGVtZW50LXZhbHVlLXF1ZXJ5fGN0czplbGVtZW50LXZhbHVlLW1hdGNofGN0czplbGVtZW50LXZhbHVlLWdlb3NwYXRpYWwtY28tb2NjdXJyZW5jZXN8Y3RzOmVsZW1lbnQtdmFsdWUtY28tb2NjdXJyZW5jZXN8Y3RzOmVsZW1lbnQtcmFuZ2UtcXVlcnktd2VpZ2h0fGN0czplbGVtZW50LXJhbmdlLXF1ZXJ5LXZhbHVlfGN0czplbGVtZW50LXJhbmdlLXF1ZXJ5LW9wdGlvbnN8Y3RzOmVsZW1lbnQtcmFuZ2UtcXVlcnktb3BlcmF0b3J8Y3RzOmVsZW1lbnQtcmFuZ2UtcXVlcnktZWxlbWVudC1uYW1lfGN0czplbGVtZW50LXJhbmdlLXF1ZXJ5fGN0czplbGVtZW50LXF1ZXJ5LXF1ZXJ5fGN0czplbGVtZW50LXF1ZXJ5LWVsZW1lbnQtbmFtZXxjdHM6ZWxlbWVudC1xdWVyeXxjdHM6ZWxlbWVudC1wYWlyLWdlb3NwYXRpYWwtdmFsdWVzfGN0czplbGVtZW50LXBhaXItZ2Vvc3BhdGlhbC12YWx1ZS1tYXRjaHxjdHM6ZWxlbWVudC1wYWlyLWdlb3NwYXRpYWwtcXVlcnktd2VpZ2h0fGN0czplbGVtZW50LXBhaXItZ2Vvc3BhdGlhbC1xdWVyeS1yZWdpb258Y3RzOmVsZW1lbnQtcGFpci1nZW9zcGF0aWFsLXF1ZXJ5LW9wdGlvbnN8Y3RzOmVsZW1lbnQtcGFpci1nZW9zcGF0aWFsLXF1ZXJ5LWxvbmdpdHVkZS1uYW1lfGN0czplbGVtZW50LXBhaXItZ2Vvc3BhdGlhbC1xdWVyeS1sYXRpdHVkZS1uYW1lfGN0czplbGVtZW50LXBhaXItZ2Vvc3BhdGlhbC1xdWVyeS1lbGVtZW50LW5hbWV8Y3RzOmVsZW1lbnQtcGFpci1nZW9zcGF0aWFsLXF1ZXJ5fGN0czplbGVtZW50LXBhaXItZ2Vvc3BhdGlhbC1ib3hlc3xjdHM6ZWxlbWVudC1nZW9zcGF0aWFsLXZhbHVlc3xjdHM6ZWxlbWVudC1nZW9zcGF0aWFsLXZhbHVlLW1hdGNofGN0czplbGVtZW50LWdlb3NwYXRpYWwtcXVlcnktd2VpZ2h0fGN0czplbGVtZW50LWdlb3NwYXRpYWwtcXVlcnktcmVnaW9ufGN0czplbGVtZW50LWdlb3NwYXRpYWwtcXVlcnktb3B0aW9uc3xjdHM6ZWxlbWVudC1nZW9zcGF0aWFsLXF1ZXJ5LWVsZW1lbnQtbmFtZXxjdHM6ZWxlbWVudC1nZW9zcGF0aWFsLXF1ZXJ5fGN0czplbGVtZW50LWdlb3NwYXRpYWwtYm94ZXN8Y3RzOmVsZW1lbnQtY2hpbGQtZ2Vvc3BhdGlhbC12YWx1ZXN8Y3RzOmVsZW1lbnQtY2hpbGQtZ2Vvc3BhdGlhbC12YWx1ZS1tYXRjaHxjdHM6ZWxlbWVudC1jaGlsZC1nZW9zcGF0aWFsLXF1ZXJ5LXdlaWdodHxjdHM6ZWxlbWVudC1jaGlsZC1nZW9zcGF0aWFsLXF1ZXJ5LXJlZ2lvbnxjdHM6ZWxlbWVudC1jaGlsZC1nZW9zcGF0aWFsLXF1ZXJ5LW9wdGlvbnN8Y3RzOmVsZW1lbnQtY2hpbGQtZ2Vvc3BhdGlhbC1xdWVyeS1lbGVtZW50LW5hbWV8Y3RzOmVsZW1lbnQtY2hpbGQtZ2Vvc3BhdGlhbC1xdWVyeS1jaGlsZC1uYW1lfGN0czplbGVtZW50LWNoaWxkLWdlb3NwYXRpYWwtcXVlcnl8Y3RzOmVsZW1lbnQtY2hpbGQtZ2Vvc3BhdGlhbC1ib3hlc3xjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtd29yZHN8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXdvcmQtcXVlcnktd2VpZ2h0fGN0czplbGVtZW50LWF0dHJpYnV0ZS13b3JkLXF1ZXJ5LXRleHR8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXdvcmQtcXVlcnktb3B0aW9uc3xjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtd29yZC1xdWVyeS1lbGVtZW50LW5hbWV8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXdvcmQtcXVlcnktYXR0cmlidXRlLW5hbWV8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXdvcmQtcXVlcnl8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXdvcmQtbWF0Y2h8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXZhbHVlc3xjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtdmFsdWUtcmFuZ2VzfGN0czplbGVtZW50LWF0dHJpYnV0ZS12YWx1ZS1xdWVyeS13ZWlnaHR8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXZhbHVlLXF1ZXJ5LXRleHR8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXZhbHVlLXF1ZXJ5LW9wdGlvbnN8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXZhbHVlLXF1ZXJ5LWVsZW1lbnQtbmFtZXxjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtdmFsdWUtcXVlcnktYXR0cmlidXRlLW5hbWV8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXZhbHVlLXF1ZXJ5fGN0czplbGVtZW50LWF0dHJpYnV0ZS12YWx1ZS1tYXRjaHxjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtdmFsdWUtZ2Vvc3BhdGlhbC1jby1vY2N1cnJlbmNlc3xjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtdmFsdWUtY28tb2NjdXJyZW5jZXN8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXJhbmdlLXF1ZXJ5LXdlaWdodHxjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtcmFuZ2UtcXVlcnktdmFsdWV8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXJhbmdlLXF1ZXJ5LW9wdGlvbnN8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXJhbmdlLXF1ZXJ5LW9wZXJhdG9yfGN0czplbGVtZW50LWF0dHJpYnV0ZS1yYW5nZS1xdWVyeS1lbGVtZW50LW5hbWV8Y3RzOmVsZW1lbnQtYXR0cmlidXRlLXJhbmdlLXF1ZXJ5LWF0dHJpYnV0ZS1uYW1lfGN0czplbGVtZW50LWF0dHJpYnV0ZS1yYW5nZS1xdWVyeXxjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtcGFpci1nZW9zcGF0aWFsLXZhbHVlc3xjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtcGFpci1nZW9zcGF0aWFsLXZhbHVlLW1hdGNofGN0czplbGVtZW50LWF0dHJpYnV0ZS1wYWlyLWdlb3NwYXRpYWwtcXVlcnktd2VpZ2h0fGN0czplbGVtZW50LWF0dHJpYnV0ZS1wYWlyLWdlb3NwYXRpYWwtcXVlcnktcmVnaW9ufGN0czplbGVtZW50LWF0dHJpYnV0ZS1wYWlyLWdlb3NwYXRpYWwtcXVlcnktb3B0aW9uc3xjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtcGFpci1nZW9zcGF0aWFsLXF1ZXJ5LWxvbmdpdHVkZS1uYW1lfGN0czplbGVtZW50LWF0dHJpYnV0ZS1wYWlyLWdlb3NwYXRpYWwtcXVlcnktbGF0aXR1ZGUtbmFtZXxjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtcGFpci1nZW9zcGF0aWFsLXF1ZXJ5LWVsZW1lbnQtbmFtZXxjdHM6ZWxlbWVudC1hdHRyaWJ1dGUtcGFpci1nZW9zcGF0aWFsLXF1ZXJ5fGN0czplbGVtZW50LWF0dHJpYnV0ZS1wYWlyLWdlb3NwYXRpYWwtYm94ZXN8Y3RzOmRvY3VtZW50LXF1ZXJ5LXVyaXN8Y3RzOmRvY3VtZW50LXF1ZXJ5fGN0czpkaXN0YW5jZXxjdHM6ZGlyZWN0b3J5LXF1ZXJ5LXVyaXN8Y3RzOmRpcmVjdG9yeS1xdWVyeS1kZXB0aHxjdHM6ZGlyZWN0b3J5LXF1ZXJ5fGN0czpkZXN0aW5hdGlvbnxjdHM6ZGVyZWdpc3RlcnxjdHM6Y29udGFpbnN8Y3RzOmNvbmZpZGVuY2V8Y3RzOmNvbGxlY3Rpb25zfGN0czpjb2xsZWN0aW9uLXF1ZXJ5LXVyaXN8Y3RzOmNvbGxlY3Rpb24tcXVlcnl8Y3RzOmNvbGxlY3Rpb24tbWF0Y2h8Y3RzOmNsYXNzaWZ5fGN0czpjaXJjbGUtcmFkaXVzfGN0czpjaXJjbGUtY2VudGVyfGN0czpjaXJjbGV8Y3RzOmJveC13ZXN0fGN0czpib3gtc291dGh8Y3RzOmJveC1ub3J0aHxjdHM6Ym94LWVhc3R8Y3RzOmJveHxjdHM6YmVhcmluZ3xjdHM6YXJjLWludGVyc2VjdGlvbnxjdHM6YW5kLXF1ZXJ5LXF1ZXJpZXN8Y3RzOmFuZC1xdWVyeS1vcHRpb25zfGN0czphbmQtcXVlcnl8Y3RzOmFuZC1ub3QtcXVlcnktcG9zaXRpdmUtcXVlcnl8Y3RzOmFuZC1ub3QtcXVlcnktbmVnYXRpdmUtcXVlcnl8Y3RzOmFuZC1ub3QtcXVlcnl8Y3NzOmdldHxjc3M6Y29udmVydHxjcGY6c3VjY2Vzc3xjcGY6ZmFpbHVyZXxjcGY6ZG9jdW1lbnQtc2V0LXN0YXRlfGNwZjpkb2N1bWVudC1zZXQtcHJvY2Vzc2luZy1zdGF0dXN8Y3BmOmRvY3VtZW50LXNldC1sYXN0LXVwZGF0ZWR8Y3BmOmRvY3VtZW50LXNldC1lcnJvcnxjcGY6ZG9jdW1lbnQtZ2V0LXN0YXRlfGNwZjpkb2N1bWVudC1nZXQtcHJvY2Vzc2luZy1zdGF0dXN8Y3BmOmRvY3VtZW50LWdldC1sYXN0LXVwZGF0ZWR8Y3BmOmRvY3VtZW50LWdldC1lcnJvcnxjcGY6Y2hlY2stdHJhbnNpdGlvbnxhbGVydDpzcGF3bi1tYXRjaGluZy1hY3Rpb25zfGFsZXJ0OnJ1bGUtdXNlci1pZC1xdWVyeXxhbGVydDpydWxlLXNldC11c2VyLWlkfGFsZXJ0OnJ1bGUtc2V0LXF1ZXJ5fGFsZXJ0OnJ1bGUtc2V0LW9wdGlvbnN8YWxlcnQ6cnVsZS1zZXQtbmFtZXxhbGVydDpydWxlLXNldC1kZXNjcmlwdGlvbnxhbGVydDpydWxlLXNldC1hY3Rpb258YWxlcnQ6cnVsZS1yZW1vdmV8YWxlcnQ6cnVsZS1uYW1lLXF1ZXJ5fGFsZXJ0OnJ1bGUtaW5zZXJ0fGFsZXJ0OnJ1bGUtaWQtcXVlcnl8YWxlcnQ6cnVsZS1nZXQtdXNlci1pZHxhbGVydDpydWxlLWdldC1xdWVyeXxhbGVydDpydWxlLWdldC1vcHRpb25zfGFsZXJ0OnJ1bGUtZ2V0LW5hbWV8YWxlcnQ6cnVsZS1nZXQtaWR8YWxlcnQ6cnVsZS1nZXQtZGVzY3JpcHRpb258YWxlcnQ6cnVsZS1nZXQtYWN0aW9ufGFsZXJ0OnJ1bGUtYWN0aW9uLXF1ZXJ5fGFsZXJ0OnJlbW92ZS10cmlnZ2Vyc3xhbGVydDptYWtlLXJ1bGV8YWxlcnQ6bWFrZS1sb2ctYWN0aW9ufGFsZXJ0Om1ha2UtY29uZmlnfGFsZXJ0Om1ha2UtYWN0aW9ufGFsZXJ0Omludm9rZS1tYXRjaGluZy1hY3Rpb25zfGFsZXJ0OmdldC1teS1ydWxlc3xhbGVydDpnZXQtYWxsLXJ1bGVzfGFsZXJ0OmdldC1hY3Rpb25zfGFsZXJ0OmZpbmQtbWF0Y2hpbmctcnVsZXN8YWxlcnQ6Y3JlYXRlLXRyaWdnZXJzfGFsZXJ0OmNvbmZpZy1zZXQtdXJpfGFsZXJ0OmNvbmZpZy1zZXQtdHJpZ2dlci1pZHN8YWxlcnQ6Y29uZmlnLXNldC1vcHRpb25zfGFsZXJ0OmNvbmZpZy1zZXQtbmFtZXxhbGVydDpjb25maWctc2V0LWRlc2NyaXB0aW9ufGFsZXJ0OmNvbmZpZy1zZXQtY3BmLWRvbWFpbi1uYW1lc3xhbGVydDpjb25maWctc2V0LWNwZi1kb21haW4taWRzfGFsZXJ0OmNvbmZpZy1pbnNlcnR8YWxlcnQ6Y29uZmlnLWdldC11cml8YWxlcnQ6Y29uZmlnLWdldC10cmlnZ2VyLWlkc3xhbGVydDpjb25maWctZ2V0LW9wdGlvbnN8YWxlcnQ6Y29uZmlnLWdldC1uYW1lfGFsZXJ0OmNvbmZpZy1nZXQtaWR8YWxlcnQ6Y29uZmlnLWdldC1kZXNjcmlwdGlvbnxhbGVydDpjb25maWctZ2V0LWNwZi1kb21haW4tbmFtZXN8YWxlcnQ6Y29uZmlnLWdldC1jcGYtZG9tYWluLWlkc3xhbGVydDpjb25maWctZ2V0fGFsZXJ0OmNvbmZpZy1kZWxldGV8YWxlcnQ6YWN0aW9uLXNldC1vcHRpb25zfGFsZXJ0OmFjdGlvbi1zZXQtbmFtZXxhbGVydDphY3Rpb24tc2V0LW1vZHVsZS1yb290fGFsZXJ0OmFjdGlvbi1zZXQtbW9kdWxlLWRifGFsZXJ0OmFjdGlvbi1zZXQtbW9kdWxlfGFsZXJ0OmFjdGlvbi1zZXQtZGVzY3JpcHRpb258YWxlcnQ6YWN0aW9uLXJlbW92ZXxhbGVydDphY3Rpb24taW5zZXJ0fGFsZXJ0OmFjdGlvbi1nZXQtb3B0aW9uc3xhbGVydDphY3Rpb24tZ2V0LW5hbWV8YWxlcnQ6YWN0aW9uLWdldC1tb2R1bGUtcm9vdHxhbGVydDphY3Rpb24tZ2V0LW1vZHVsZS1kYnxhbGVydDphY3Rpb24tZ2V0LW1vZHVsZXxhbGVydDphY3Rpb24tZ2V0LWRlc2NyaXB0aW9ufHplcm8tb3Itb25lfHllYXJzLWZyb20tZHVyYXRpb258eWVhci1mcm9tLWRhdGVUaW1lfHllYXItZnJvbS1kYXRlfHVwcGVyLWNhc2V8dW5vcmRlcmVkfHRydWV8dHJhbnNsYXRlfHRyYWNlfHRva2VuaXplfHRpbWV6b25lLWZyb20tdGltZXx0aW1lem9uZS1mcm9tLWRhdGVUaW1lfHRpbWV6b25lLWZyb20tZGF0ZXxzdW18c3VidHJhY3QtZGF0ZVRpbWVzLXlpZWxkaW5nLXllYXJNb250aER1cmF0aW9ufHN1YnRyYWN0LWRhdGVUaW1lcy15aWVsZGluZy1kYXlUaW1lRHVyYXRpb258c3Vic3RyaW5nLWJlZm9yZXxzdWJzdHJpbmctYWZ0ZXJ8c3Vic3RyaW5nfHN1YnNlcXVlbmNlfHN0cmluZy10by1jb2RlcG9pbnRzfHN0cmluZy1wYWR8c3RyaW5nLWxlbmd0aHxzdHJpbmctam9pbnxzdHJpbmd8c3RhdGljLWJhc2UtdXJpfHN0YXJ0cy13aXRofHNlY29uZHMtZnJvbS10aW1lfHNlY29uZHMtZnJvbS1kdXJhdGlvbnxzZWNvbmRzLWZyb20tZGF0ZVRpbWV8cm91bmQtaGFsZi10by1ldmVufHJvdW5kfHJvb3R8cmV2ZXJzZXxyZXNvbHZlLXVyaXxyZXNvbHZlLVFOYW1lfHJlcGxhY2V8cmVtb3ZlfFFOYW1lfHByZWZpeC1mcm9tLVFOYW1lfHBvc2l0aW9ufG9uZS1vci1tb3JlfG51bWJlcnxub3R8bm9ybWFsaXplLXVuaWNvZGV8bm9ybWFsaXplLXNwYWNlfG5vZGUtbmFtZXxub2RlLWtpbmR8bmlsbGVkfG5hbWVzcGFjZS11cmktZnJvbS1RTmFtZXxuYW1lc3BhY2UtdXJpLWZvci1wcmVmaXh8bmFtZXNwYWNlLXVyaXxuYW1lfG1vbnRocy1mcm9tLWR1cmF0aW9ufG1vbnRoLWZyb20tZGF0ZVRpbWV8bW9udGgtZnJvbS1kYXRlfG1pbnV0ZXMtZnJvbS10aW1lfG1pbnV0ZXMtZnJvbS1kdXJhdGlvbnxtaW51dGVzLWZyb20tZGF0ZVRpbWV8bWlufG1heHxtYXRjaGVzfGxvd2VyLWNhc2V8bG9jYWwtbmFtZS1mcm9tLVFOYW1lfGxvY2FsLW5hbWV8bGFzdHxsYW5nfGlyaS10by11cml8aW5zZXJ0LWJlZm9yZXxpbmRleC1vZnxpbi1zY29wZS1wcmVmaXhlc3xpbXBsaWNpdC10aW1lem9uZXxpZHJlZnxpZHxob3Vycy1mcm9tLXRpbWV8aG91cnMtZnJvbS1kdXJhdGlvbnxob3Vycy1mcm9tLWRhdGVUaW1lfGZsb29yfGZhbHNlfGV4cGFuZGVkLVFOYW1lfGV4aXN0c3xleGFjdGx5LW9uZXxlc2NhcGUtdXJpfGVzY2FwZS1odG1sLXVyaXxlcnJvcnxlbmRzLXdpdGh8ZW5jb2RlLWZvci11cml8ZW1wdHl8ZG9jdW1lbnQtdXJpfGRvYy1hdmFpbGFibGV8ZG9jfGRpc3RpbmN0LXZhbHVlc3xkaXN0aW5jdC1ub2Rlc3xkZWZhdWx0LWNvbGxhdGlvbnxkZWVwLWVxdWFsfGRheXMtZnJvbS1kdXJhdGlvbnxkYXktZnJvbS1kYXRlVGltZXxkYXktZnJvbS1kYXRlfGRhdGF8Y3VycmVudC10aW1lfGN1cnJlbnQtZGF0ZVRpbWV8Y3VycmVudC1kYXRlfGNvdW50fGNvbnRhaW5zfGNvbmNhdHxjb21wYXJlfGNvbGxlY3Rpb258Y29kZXBvaW50cy10by1zdHJpbmd8Y29kZXBvaW50LWVxdWFsfGNlaWxpbmd8Ym9vbGVhbnxiYXNlLXVyaXxhdmd8YWRqdXN0LXRpbWUtdG8tdGltZXpvbmV8YWRqdXN0LWRhdGVUaW1lLXRvLXRpbWV6b25lfGFkanVzdC1kYXRlLXRvLXRpbWV6b25lfGFicylcYi9dLAorWyJwbG4iLC9eW1x3Oi1dKy9dLFsicGxuIiwvXltcdFxuXHIgXHhhMF0rL11dKSxbInhxIiwieHF1ZXJ5Il0pOwpkaWZmIC0tZ2l0IGEvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L2xhbmcteWFtbC5qcyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLXlhbWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzM4NzI5YgotLS0gL2Rldi9udWxsCisrKyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9sYW5nLXlhbWwuanMKQEAgLTAsMCArMSwyIEBACit2YXIgYT1udWxsOworUFIucmVnaXN0ZXJMYW5nSGFuZGxlcihQUi5jcmVhdGVTaW1wbGVMZXhlcihbWyJwdW4iLC9eWzo+P3xdKy8sYSwiOnw+PyJdLFsiZGVjIiwvXiUoPzpZQU1MfFRBRylbXlxuXHIjXSsvLGEsIiUiXSxbInR5cCIsL14mXFMrLyxhLCImIl0sWyJ0eXAiLC9eIVxTKi8sYSwiISJdLFsic3RyIiwvXiIoPzpbXiJcXF18XFwuKSooPzoifCQpLyxhLCciJ10sWyJzdHIiLC9eJyg/OlteJ118JycpKig/Oid8JCkvLGEsIiciXSxbImNvbSIsL14jW15cblxyXSovLGEsIiMiXSxbInBsbiIsL15ccysvLGEsIiBcdFxyXG4iXV0sW1siZGVjIiwvXig/Oi0tLXxcLlwuXC4pKD86W1xuXHJdfCQpL10sWyJwdW4iLC9eLS9dLFsia3dkIiwvXlx3KzpbXG5cciBdL10sWyJwbG4iLC9eXHcrL11dKSxbInlhbWwiLCJ5bWwiXSk7CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvcHJldHRpZnkuY3NzIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L3ByZXR0aWZ5LmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNDRiM2EyCi0tLSAvZGV2L251bGwKKysrIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvc3RhdGljL3ByZXR0aWZ5L3ByZXR0aWZ5LmNzcwpAQCAtMCwwICsxIEBACisucGxue2NvbG9yOiMwMDB9QG1lZGlhIHNjcmVlbnsuc3Rye2NvbG9yOiMwODB9Lmt3ZHtjb2xvcjojMDA4fS5jb217Y29sb3I6IzgwMH0udHlwe2NvbG9yOiM2MDZ9LmxpdHtjb2xvcjojMDY2fS5wdW4sLm9wbiwuY2xve2NvbG9yOiM2NjB9LnRhZ3tjb2xvcjojMDA4fS5hdG57Y29sb3I6IzYwNn0uYXR2e2NvbG9yOiMwODB9LmRlYywudmFye2NvbG9yOiM2MDZ9LmZ1bntjb2xvcjpyZWR9fUBtZWRpYSBwcmludCxwcm9qZWN0aW9uey5zdHJ7Y29sb3I6IzA2MH0ua3dke2NvbG9yOiMwMDY7Zm9udC13ZWlnaHQ6Ym9sZH0uY29te2NvbG9yOiM2MDA7Zm9udC1zdHlsZTppdGFsaWN9LnR5cHtjb2xvcjojNDA0O2ZvbnQtd2VpZ2h0OmJvbGR9LmxpdHtjb2xvcjojMDQ0fS5wdW4sLm9wbiwuY2xve2NvbG9yOiM0NDB9LnRhZ3tjb2xvcjojMDA2O2ZvbnQtd2VpZ2h0OmJvbGR9LmF0bntjb2xvcjojNDA0fS5hdHZ7Y29sb3I6IzA2MH19cHJlLnByZXR0eXByaW50e3BhZGRpbmc6MnB4O2JvcmRlcjoxcHggc29saWQgIzg4OH1vbC5saW5lbnVtc3ttYXJnaW4tdG9wOjA7bWFyZ2luLWJvdHRvbTowfWxpLkwwLGxpLkwxLGxpLkwyLGxpLkwzLGxpLkw1LGxpLkw2LGxpLkw3LGxpLkw4e2xpc3Qtc3R5bGUtdHlwZTpub25lfWxpLkwxLGxpLkwzLGxpLkw1LGxpLkw3LGxpLkw5e2JhY2tncm91bmQ6I2VlZX0KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvcHJldHRpZnkuanMgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy9zdGF0aWMvcHJldHRpZnkvcHJldHRpZnkuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZWVmNWFkNwotLS0gL2Rldi9udWxsCisrKyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3N0YXRpYy9wcmV0dGlmeS9wcmV0dGlmeS5qcwpAQCAtMCwwICsxLDI4IEBACit2YXIgcT1udWxsO3dpbmRvdy5QUl9TSE9VTERfVVNFX0NPTlRJTlVBVElPTj0hMDsKKyhmdW5jdGlvbigpe2Z1bmN0aW9uIEwoYSl7ZnVuY3Rpb24gbShhKXt2YXIgZj1hLmNoYXJDb2RlQXQoMCk7aWYoZiE9PTkyKXJldHVybiBmO3ZhciBiPWEuY2hhckF0KDEpO3JldHVybihmPXJbYl0pP2Y6IjAiPD1iJiZiPD0iNyI/cGFyc2VJbnQoYS5zdWJzdHJpbmcoMSksOCk6Yj09PSJ1Inx8Yj09PSJ4Ij9wYXJzZUludChhLnN1YnN0cmluZygyKSwxNik6YS5jaGFyQ29kZUF0KDEpfWZ1bmN0aW9uIGUoYSl7aWYoYTwzMilyZXR1cm4oYTwxNj8iXFx4MCI6IlxceCIpK2EudG9TdHJpbmcoMTYpO2E9U3RyaW5nLmZyb21DaGFyQ29kZShhKTtpZihhPT09IlxcInx8YT09PSItInx8YT09PSJbInx8YT09PSJdIilhPSJcXCIrYTtyZXR1cm4gYX1mdW5jdGlvbiBoKGEpe2Zvcih2YXIgZj1hLnN1YnN0cmluZygxLGEubGVuZ3RoLTEpLm1hdGNoKC9cXHVbXGRBLUZhLWZdezR9fFxceFtcZEEtRmEtZl17Mn18XFxbMC0zXVswLTddezAsMn18XFxbMC03XXsxLDJ9fFxcW1xTXHNdfFteXFxdL2cpLGE9CitbXSxiPVtdLG89ZlswXT09PSJeIixjPW8/MTowLGk9Zi5sZW5ndGg7YzxpOysrYyl7dmFyIGo9ZltjXTtpZigvXFxbYmRzd10vaS50ZXN0KGopKWEucHVzaChqKTtlbHNle3ZhciBqPW0oaiksZDtjKzI8aSYmIi0iPT09ZltjKzFdPyhkPW0oZltjKzJdKSxjKz0yKTpkPWo7Yi5wdXNoKFtqLGRdKTtkPDY1fHxqPjEyMnx8KGQ8NjV8fGo+OTB8fGIucHVzaChbTWF0aC5tYXgoNjUsail8MzIsTWF0aC5taW4oZCw5MCl8MzJdKSxkPDk3fHxqPjEyMnx8Yi5wdXNoKFtNYXRoLm1heCg5NyxqKSYtMzMsTWF0aC5taW4oZCwxMjIpJi0zM10pKX19Yi5zb3J0KGZ1bmN0aW9uKGEsZil7cmV0dXJuIGFbMF0tZlswXXx8ZlsxXS1hWzFdfSk7Zj1bXTtqPVtOYU4sTmFOXTtmb3IoYz0wO2M8Yi5sZW5ndGg7KytjKWk9YltjXSxpWzBdPD1qWzFdKzE/alsxXT1NYXRoLm1heChqWzFdLGlbMV0pOmYucHVzaChqPWkpO2I9WyJbIl07byYmYi5wdXNoKCJeIik7Yi5wdXNoLmFwcGx5KGIsYSk7Zm9yKGM9MDtjPAorZi5sZW5ndGg7KytjKWk9ZltjXSxiLnB1c2goZShpWzBdKSksaVsxXT5pWzBdJiYoaVsxXSsxPmlbMF0mJmIucHVzaCgiLSIpLGIucHVzaChlKGlbMV0pKSk7Yi5wdXNoKCJdIik7cmV0dXJuIGIuam9pbigiIil9ZnVuY3Rpb24geShhKXtmb3IodmFyIGY9YS5zb3VyY2UubWF0Y2goL1xbKD86W15cXFxdXXxcXFtcU1xzXSkqXXxcXHVbXGRBLUZhLWZdezR9fFxceFtcZEEtRmEtZl17Mn18XFxcZCt8XFxbXlxkdXhdfFwoXD9bITo9XXxbKCleXXxbXigpW1xcXl0rL2cpLGI9Zi5sZW5ndGgsZD1bXSxjPTAsaT0wO2M8YjsrK2Mpe3ZhciBqPWZbY107aj09PSIoIj8rK2k6IlxcIj09PWouY2hhckF0KDApJiYoaj0rai5zdWJzdHJpbmcoMSkpJiZqPD1pJiYoZFtqXT0tMSl9Zm9yKGM9MTtjPGQubGVuZ3RoOysrYyktMT09PWRbY10mJihkW2NdPSsrdCk7Zm9yKGk9Yz0wO2M8YjsrK2Mpaj1mW2NdLGo9PT0iKCI/KCsraSxkW2ldPT09dm9pZCAwJiYoZltjXT0iKD86IikpOiJcXCI9PT1qLmNoYXJBdCgwKSYmCisoaj0rai5zdWJzdHJpbmcoMSkpJiZqPD1pJiYoZltjXT0iXFwiK2RbaV0pO2ZvcihpPWM9MDtjPGI7KytjKSJeIj09PWZbY10mJiJeIiE9PWZbYysxXSYmKGZbY109IiIpO2lmKGEuaWdub3JlQ2FzZSYmcylmb3IoYz0wO2M8YjsrK2Mpaj1mW2NdLGE9ai5jaGFyQXQoMCksai5sZW5ndGg+PTImJmE9PT0iWyI/ZltjXT1oKGopOmEhPT0iXFwiJiYoZltjXT1qLnJlcGxhY2UoL1tBLVphLXpdL2csZnVuY3Rpb24oYSl7YT1hLmNoYXJDb2RlQXQoMCk7cmV0dXJuIlsiK1N0cmluZy5mcm9tQ2hhckNvZGUoYSYtMzMsYXwzMikrIl0ifSkpO3JldHVybiBmLmpvaW4oIiIpfWZvcih2YXIgdD0wLHM9ITEsbD0hMSxwPTAsZD1hLmxlbmd0aDtwPGQ7KytwKXt2YXIgZz1hW3BdO2lmKGcuaWdub3JlQ2FzZSlsPSEwO2Vsc2UgaWYoL1thLXpdL2kudGVzdChnLnNvdXJjZS5yZXBsYWNlKC9cXHVbXGRhLWZdezR9fFxceFtcZGEtZl17Mn18XFxbXlVYdXhdL2dpLCIiKSkpe3M9ITA7bD0hMTticmVha319Zm9yKHZhciByPQore2I6OCx0OjksbjoxMCx2OjExLGY6MTIscjoxM30sbj1bXSxwPTAsZD1hLmxlbmd0aDtwPGQ7KytwKXtnPWFbcF07aWYoZy5nbG9iYWx8fGcubXVsdGlsaW5lKXRocm93IEVycm9yKCIiK2cpO24ucHVzaCgiKD86Iit5KGcpKyIpIil9cmV0dXJuIFJlZ0V4cChuLmpvaW4oInwiKSxsPyJnaSI6ImciKX1mdW5jdGlvbiBNKGEpe2Z1bmN0aW9uIG0oYSl7c3dpdGNoKGEubm9kZVR5cGUpe2Nhc2UgMTppZihlLnRlc3QoYS5jbGFzc05hbWUpKWJyZWFrO2Zvcih2YXIgZz1hLmZpcnN0Q2hpbGQ7ZztnPWcubmV4dFNpYmxpbmcpbShnKTtnPWEubm9kZU5hbWU7aWYoIkJSIj09PWd8fCJMSSI9PT1nKWhbc109IlxuIix0W3M8PDFdPXkrKyx0W3MrKzw8MXwxXT1hO2JyZWFrO2Nhc2UgMzpjYXNlIDQ6Zz1hLm5vZGVWYWx1ZSxnLmxlbmd0aCYmKGc9cD9nLnJlcGxhY2UoL1xyXG4/L2csIlxuIik6Zy5yZXBsYWNlKC9bXHRcblxyIF0rL2csIiAiKSxoW3NdPWcsdFtzPDwxXT15LHkrPWcubGVuZ3RoLAordFtzKys8PDF8MV09YSl9fXZhciBlPS8oPzpefFxzKW5vY29kZSg/OlxzfCQpLyxoPVtdLHk9MCx0PVtdLHM9MCxsO2EuY3VycmVudFN0eWxlP2w9YS5jdXJyZW50U3R5bGUud2hpdGVTcGFjZTp3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZSYmKGw9ZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShhLHEpLmdldFByb3BlcnR5VmFsdWUoIndoaXRlLXNwYWNlIikpO3ZhciBwPWwmJiJwcmUiPT09bC5zdWJzdHJpbmcoMCwzKTttKGEpO3JldHVybnthOmguam9pbigiIikucmVwbGFjZSgvXG4kLywiIiksYzp0fX1mdW5jdGlvbiBCKGEsbSxlLGgpe20mJihhPXthOm0sZDphfSxlKGEpLGgucHVzaC5hcHBseShoLGEuZSkpfWZ1bmN0aW9uIHgoYSxtKXtmdW5jdGlvbiBlKGEpe2Zvcih2YXIgbD1hLmQscD1bbCwicGxuIl0sZD0wLGc9YS5hLm1hdGNoKHkpfHxbXSxyPXt9LG49MCx6PWcubGVuZ3RoO248ejsrK24pe3ZhciBmPWdbbl0sYj1yW2ZdLG89dm9pZCAwLGM7aWYodHlwZW9mIGI9PT0KKyJzdHJpbmciKWM9ITE7ZWxzZXt2YXIgaT1oW2YuY2hhckF0KDApXTtpZihpKW89Zi5tYXRjaChpWzFdKSxiPWlbMF07ZWxzZXtmb3IoYz0wO2M8dDsrK2MpaWYoaT1tW2NdLG89Zi5tYXRjaChpWzFdKSl7Yj1pWzBdO2JyZWFrfW98fChiPSJwbG4iKX1pZigoYz1iLmxlbmd0aD49NSYmImxhbmctIj09PWIuc3Vic3RyaW5nKDAsNSkpJiYhKG8mJnR5cGVvZiBvWzFdPT09InN0cmluZyIpKWM9ITEsYj0ic3JjIjtjfHwocltmXT1iKX1pPWQ7ZCs9Zi5sZW5ndGg7aWYoYyl7Yz1vWzFdO3ZhciBqPWYuaW5kZXhPZihjKSxrPWorYy5sZW5ndGg7b1syXSYmKGs9Zi5sZW5ndGgtb1syXS5sZW5ndGgsaj1rLWMubGVuZ3RoKTtiPWIuc3Vic3RyaW5nKDUpO0IobCtpLGYuc3Vic3RyaW5nKDAsaiksZSxwKTtCKGwraStqLGMsQyhiLGMpLHApO0IobCtpK2ssZi5zdWJzdHJpbmcoayksZSxwKX1lbHNlIHAucHVzaChsK2ksYil9YS5lPXB9dmFyIGg9e30seTsoZnVuY3Rpb24oKXtmb3IodmFyIGU9YS5jb25jYXQobSksCitsPVtdLHA9e30sZD0wLGc9ZS5sZW5ndGg7ZDxnOysrZCl7dmFyIHI9ZVtkXSxuPXJbM107aWYobilmb3IodmFyIGs9bi5sZW5ndGg7LS1rPj0wOyloW24uY2hhckF0KGspXT1yO3I9clsxXTtuPSIiK3I7cC5oYXNPd25Qcm9wZXJ0eShuKXx8KGwucHVzaChyKSxwW25dPXEpfWwucHVzaCgvW1xTXHNdLyk7eT1MKGwpfSkoKTt2YXIgdD1tLmxlbmd0aDtyZXR1cm4gZX1mdW5jdGlvbiB1KGEpe3ZhciBtPVtdLGU9W107YS50cmlwbGVRdW90ZWRTdHJpbmdzP20ucHVzaChbInN0ciIsL14oPzonJycoPzpbXidcXF18XFxbXFNcc118Jyc/KD89W14nXSkpKig/OicnJ3wkKXwiIiIoPzpbXiJcXF18XFxbXFNcc118IiI/KD89W14iXSkpKig/OiIiInwkKXwnKD86W14nXFxdfFxcW1xTXHNdKSooPzonfCQpfCIoPzpbXiJcXF18XFxbXFNcc10pKig/OiJ8JCkpLyxxLCInXCIiXSk6YS5tdWx0aUxpbmVTdHJpbmdzP20ucHVzaChbInN0ciIsL14oPzonKD86W14nXFxdfFxcW1xTXHNdKSooPzonfCQpfCIoPzpbXiJcXF18XFxbXFNcc10pKig/OiJ8JCl8YCg/OlteXFxgXXxcXFtcU1xzXSkqKD86YHwkKSkvLAorcSwiJ1wiYCJdKTptLnB1c2goWyJzdHIiLC9eKD86Jyg/OlteXG5ccidcXF18XFwuKSooPzonfCQpfCIoPzpbXlxuXHIiXFxdfFxcLikqKD86InwkKSkvLHEsIlwiJyJdKTthLnZlcmJhdGltU3RyaW5ncyYmZS5wdXNoKFsic3RyIiwvXkAiKD86W14iXXwiIikqKD86InwkKS8scV0pO3ZhciBoPWEuaGFzaENvbW1lbnRzO2gmJihhLmNTdHlsZUNvbW1lbnRzPyhoPjE/bS5wdXNoKFsiY29tIiwvXiMoPzojIyg/OlteI118Iyg/ISMjKSkqKD86IyMjfCQpfC4qKS8scSwiIyJdKTptLnB1c2goWyJjb20iLC9eIyg/Oig/OmRlZmluZXxlbGlmfGVsc2V8ZW5kaWZ8ZXJyb3J8aWZkZWZ8aW5jbHVkZXxpZm5kZWZ8bGluZXxwcmFnbWF8dW5kZWZ8d2FybmluZylcYnxbXlxuXHJdKikvLHEsIiMiXSksZS5wdXNoKFsic3RyIiwvXjwoPzooPzooPzpcLlwuXC8pKnxcLz8pKD86W1x3LV0rKD86XC9bXHctXSspKyk/W1x3LV0rXC5ofFthLXpdXHcqKT4vLHFdKSk6bS5wdXNoKFsiY29tIiwvXiNbXlxuXHJdKi8sCitxLCIjIl0pKTthLmNTdHlsZUNvbW1lbnRzJiYoZS5wdXNoKFsiY29tIiwvXlwvXC9bXlxuXHJdKi8scV0pLGUucHVzaChbImNvbSIsL15cL1wqW1xTXHNdKj8oPzpcKlwvfCQpLyxxXSkpO2EucmVnZXhMaXRlcmFscyYmZS5wdXNoKFsibGFuZy1yZWdleCIsL14oPzpeXlwuP3xbISstXXwhPXwhPT18I3wlfCU9fCZ8JiZ8JiY9fCY9fFwofFwqfFwqPXxcKz18LHwtPXwtPnxcL3xcLz18Onw6Onw7fDx8PDx8PDw9fDw9fD18PT18PT09fD58Pj18Pj58Pj49fD4+Pnw+Pj49fFs/QFteXXxcXj18XF5cXnxcXlxePXx7fFx8fFx8PXxcfFx8fFx8XHw9fH58YnJlYWt8Y2FzZXxjb250aW51ZXxkZWxldGV8ZG98ZWxzZXxmaW5hbGx5fGluc3RhbmNlb2Z8cmV0dXJufHRocm93fHRyeXx0eXBlb2YpXHMqKFwvKD89W14qL10pKD86W14vW1xcXXxcXFtcU1xzXXxcWyg/OlteXFxcXV18XFxbXFNcc10pKig/Ol18JCkpK1wvKS9dKTsoaD1hLnR5cGVzKSYmZS5wdXNoKFsidHlwIixoXSk7YT0oIiIrYS5rZXl3b3JkcykucmVwbGFjZSgvXiB8ICQvZywKKyIiKTthLmxlbmd0aCYmZS5wdXNoKFsia3dkIixSZWdFeHAoIl4oPzoiK2EucmVwbGFjZSgvW1xzLF0rL2csInwiKSsiKVxcYiIpLHFdKTttLnB1c2goWyJwbG4iLC9eXHMrLyxxLCIgXHJcblx0XHhhMCJdKTtlLnB1c2goWyJsaXQiLC9eQFskX2Etel1bXHckQF0qL2kscV0sWyJ0eXAiLC9eKD86W0BfXT9bQS1aXStbYS16XVtcdyRAXSp8XHcrX3RcYikvLHFdLFsicGxuIiwvXlskX2Etel1bXHckQF0qL2kscV0sWyJsaXQiLC9eKD86MHhbXGRhLWZdK3woPzpcZCg/Ol9cZCspKlxkKig/OlwuXGQqKT98XC5cZFwrKSg/OmVbKy1dP1xkKyk/KVthLXpdKi9pLHEsIjAxMjM0NTY3ODkiXSxbInBsbiIsL15cXFtcU1xzXT8vLHFdLFsicHVuIiwvXi5bXlxzXHciLSQnLi9AXFxgXSovLHFdKTtyZXR1cm4geChtLGUpfWZ1bmN0aW9uIEQoYSxtKXtmdW5jdGlvbiBlKGEpe3N3aXRjaChhLm5vZGVUeXBlKXtjYXNlIDE6aWYoay50ZXN0KGEuY2xhc3NOYW1lKSlicmVhaztpZigiQlIiPT09YS5ub2RlTmFtZSloKGEpLAorYS5wYXJlbnROb2RlJiZhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSk7ZWxzZSBmb3IoYT1hLmZpcnN0Q2hpbGQ7YTthPWEubmV4dFNpYmxpbmcpZShhKTticmVhaztjYXNlIDM6Y2FzZSA0OmlmKHApe3ZhciBiPWEubm9kZVZhbHVlLGQ9Yi5tYXRjaCh0KTtpZihkKXt2YXIgYz1iLnN1YnN0cmluZygwLGQuaW5kZXgpO2Eubm9kZVZhbHVlPWM7KGI9Yi5zdWJzdHJpbmcoZC5pbmRleCtkWzBdLmxlbmd0aCkpJiZhLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKHMuY3JlYXRlVGV4dE5vZGUoYiksYS5uZXh0U2libGluZyk7aChhKTtjfHxhLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQoYSl9fX19ZnVuY3Rpb24gaChhKXtmdW5jdGlvbiBiKGEsZCl7dmFyIGU9ZD9hLmNsb25lTm9kZSghMSk6YSxmPWEucGFyZW50Tm9kZTtpZihmKXt2YXIgZj1iKGYsMSksZz1hLm5leHRTaWJsaW5nO2YuYXBwZW5kQ2hpbGQoZSk7Zm9yKHZhciBoPWc7aDtoPWcpZz1oLm5leHRTaWJsaW5nLGYuYXBwZW5kQ2hpbGQoaCl9cmV0dXJuIGV9Citmb3IoOyFhLm5leHRTaWJsaW5nOylpZihhPWEucGFyZW50Tm9kZSwhYSlyZXR1cm47Zm9yKHZhciBhPWIoYS5uZXh0U2libGluZywwKSxlOyhlPWEucGFyZW50Tm9kZSkmJmUubm9kZVR5cGU9PT0xOylhPWU7ZC5wdXNoKGEpfXZhciBrPS8oPzpefFxzKW5vY29kZSg/OlxzfCQpLyx0PS9cclxuP3xcbi8scz1hLm93bmVyRG9jdW1lbnQsbDthLmN1cnJlbnRTdHlsZT9sPWEuY3VycmVudFN0eWxlLndoaXRlU3BhY2U6d2luZG93LmdldENvbXB1dGVkU3R5bGUmJihsPXMuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShhLHEpLmdldFByb3BlcnR5VmFsdWUoIndoaXRlLXNwYWNlIikpO3ZhciBwPWwmJiJwcmUiPT09bC5zdWJzdHJpbmcoMCwzKTtmb3IobD1zLmNyZWF0ZUVsZW1lbnQoIkxJIik7YS5maXJzdENoaWxkOylsLmFwcGVuZENoaWxkKGEuZmlyc3RDaGlsZCk7Zm9yKHZhciBkPVtsXSxnPTA7ZzxkLmxlbmd0aDsrK2cpZShkW2ddKTttPT09KG18MCkmJmRbMF0uc2V0QXR0cmlidXRlKCJ2YWx1ZSIsCittKTt2YXIgcj1zLmNyZWF0ZUVsZW1lbnQoIk9MIik7ci5jbGFzc05hbWU9ImxpbmVudW1zIjtmb3IodmFyIG49TWF0aC5tYXgoMCxtLTF8MCl8fDAsZz0wLHo9ZC5sZW5ndGg7Zzx6OysrZylsPWRbZ10sbC5jbGFzc05hbWU9IkwiKyhnK24pJTEwLGwuZmlyc3RDaGlsZHx8bC5hcHBlbmRDaGlsZChzLmNyZWF0ZVRleHROb2RlKCJceGEwIikpLHIuYXBwZW5kQ2hpbGQobCk7YS5hcHBlbmRDaGlsZChyKX1mdW5jdGlvbiBrKGEsbSl7Zm9yKHZhciBlPW0ubGVuZ3RoOy0tZT49MDspe3ZhciBoPW1bZV07QS5oYXNPd25Qcm9wZXJ0eShoKT93aW5kb3cuY29uc29sZSYmY29uc29sZS53YXJuKCJjYW5ub3Qgb3ZlcnJpZGUgbGFuZ3VhZ2UgaGFuZGxlciAlcyIsaCk6QVtoXT1hfX1mdW5jdGlvbiBDKGEsbSl7aWYoIWF8fCFBLmhhc093blByb3BlcnR5KGEpKWE9L15ccyo8Ly50ZXN0KG0pPyJkZWZhdWx0LW1hcmt1cCI6ImRlZmF1bHQtY29kZSI7cmV0dXJuIEFbYV19ZnVuY3Rpb24gRShhKXt2YXIgbT0KK2EuZzt0cnl7dmFyIGU9TShhLmgpLGg9ZS5hO2EuYT1oO2EuYz1lLmM7YS5kPTA7QyhtLGgpKGEpO3ZhciBrPS9cYk1TSUVcYi8udGVzdChuYXZpZ2F0b3IudXNlckFnZW50KSxtPS9cbi9nLHQ9YS5hLHM9dC5sZW5ndGgsZT0wLGw9YS5jLHA9bC5sZW5ndGgsaD0wLGQ9YS5lLGc9ZC5sZW5ndGgsYT0wO2RbZ109czt2YXIgcixuO2ZvcihuPXI9MDtuPGc7KWRbbl0hPT1kW24rMl0/KGRbcisrXT1kW24rK10sZFtyKytdPWRbbisrXSk6bis9MjtnPXI7Zm9yKG49cj0wO248Zzspe2Zvcih2YXIgej1kW25dLGY9ZFtuKzFdLGI9bisyO2IrMjw9ZyYmZFtiKzFdPT09ZjspYis9MjtkW3IrK109ejtkW3IrK109ZjtuPWJ9Zm9yKGQubGVuZ3RoPXI7aDxwOyl7dmFyIG89bFtoKzJdfHxzLGM9ZFthKzJdfHxzLGI9TWF0aC5taW4obyxjKSxpPWxbaCsxXSxqO2lmKGkubm9kZVR5cGUhPT0xJiYoaj10LnN1YnN0cmluZyhlLGIpKSl7ayYmKGo9ai5yZXBsYWNlKG0sIlxyIikpO2kubm9kZVZhbHVlPQorajt2YXIgdT1pLm93bmVyRG9jdW1lbnQsdj11LmNyZWF0ZUVsZW1lbnQoIlNQQU4iKTt2LmNsYXNzTmFtZT1kW2ErMV07dmFyIHg9aS5wYXJlbnROb2RlO3gucmVwbGFjZUNoaWxkKHYsaSk7di5hcHBlbmRDaGlsZChpKTtlPG8mJihsW2grMV09aT11LmNyZWF0ZVRleHROb2RlKHQuc3Vic3RyaW5nKGIsbykpLHguaW5zZXJ0QmVmb3JlKGksdi5uZXh0U2libGluZykpfWU9YjtlPj1vJiYoaCs9Mik7ZT49YyYmKGErPTIpfX1jYXRjaCh3KXsiY29uc29sZSJpbiB3aW5kb3cmJmNvbnNvbGUubG9nKHcmJncuc3RhY2s/dy5zdGFjazp3KX19dmFyIHY9WyJicmVhayxjb250aW51ZSxkbyxlbHNlLGZvcixpZixyZXR1cm4sd2hpbGUiXSx3PVtbdiwiYXV0byxjYXNlLGNoYXIsY29uc3QsZGVmYXVsdCxkb3VibGUsZW51bSxleHRlcm4sZmxvYXQsZ290byxpbnQsbG9uZyxyZWdpc3RlcixzaG9ydCxzaWduZWQsc2l6ZW9mLHN0YXRpYyxzdHJ1Y3Qsc3dpdGNoLHR5cGVkZWYsdW5pb24sdW5zaWduZWQsdm9pZCx2b2xhdGlsZSJdLAorImNhdGNoLGNsYXNzLGRlbGV0ZSxmYWxzZSxpbXBvcnQsbmV3LG9wZXJhdG9yLHByaXZhdGUscHJvdGVjdGVkLHB1YmxpYyx0aGlzLHRocm93LHRydWUsdHJ5LHR5cGVvZiJdLEY9W3csImFsaWdub2YsYWxpZ25fdW5pb24sYXNtLGF4aW9tLGJvb2wsY29uY2VwdCxjb25jZXB0X21hcCxjb25zdF9jYXN0LGNvbnN0ZXhwcixkZWNsdHlwZSxkeW5hbWljX2Nhc3QsZXhwbGljaXQsZXhwb3J0LGZyaWVuZCxpbmxpbmUsbGF0ZV9jaGVjayxtdXRhYmxlLG5hbWVzcGFjZSxudWxscHRyLHJlaW50ZXJwcmV0X2Nhc3Qsc3RhdGljX2Fzc2VydCxzdGF0aWNfY2FzdCx0ZW1wbGF0ZSx0eXBlaWQsdHlwZW5hbWUsdXNpbmcsdmlydHVhbCx3aGVyZSJdLEc9W3csImFic3RyYWN0LGJvb2xlYW4sYnl0ZSxleHRlbmRzLGZpbmFsLGZpbmFsbHksaW1wbGVtZW50cyxpbXBvcnQsaW5zdGFuY2VvZixudWxsLG5hdGl2ZSxwYWNrYWdlLHN0cmljdGZwLHN1cGVyLHN5bmNocm9uaXplZCx0aHJvd3MsdHJhbnNpZW50Il0sCitIPVtHLCJhcyxiYXNlLGJ5LGNoZWNrZWQsZGVjaW1hbCxkZWxlZ2F0ZSxkZXNjZW5kaW5nLGR5bmFtaWMsZXZlbnQsZml4ZWQsZm9yZWFjaCxmcm9tLGdyb3VwLGltcGxpY2l0LGluLGludGVyZmFjZSxpbnRlcm5hbCxpbnRvLGlzLGxvY2ssb2JqZWN0LG91dCxvdmVycmlkZSxvcmRlcmJ5LHBhcmFtcyxwYXJ0aWFsLHJlYWRvbmx5LHJlZixzYnl0ZSxzZWFsZWQsc3RhY2thbGxvYyxzdHJpbmcsc2VsZWN0LHVpbnQsdWxvbmcsdW5jaGVja2VkLHVuc2FmZSx1c2hvcnQsdmFyIl0sdz1bdywiZGVidWdnZXIsZXZhbCxleHBvcnQsZnVuY3Rpb24sZ2V0LG51bGwsc2V0LHVuZGVmaW5lZCx2YXIsd2l0aCxJbmZpbml0eSxOYU4iXSxJPVt2LCJhbmQsYXMsYXNzZXJ0LGNsYXNzLGRlZixkZWwsZWxpZixleGNlcHQsZXhlYyxmaW5hbGx5LGZyb20sZ2xvYmFsLGltcG9ydCxpbixpcyxsYW1iZGEsbm9ubG9jYWwsbm90LG9yLHBhc3MscHJpbnQscmFpc2UsdHJ5LHdpdGgseWllbGQsRmFsc2UsVHJ1ZSxOb25lIl0sCitKPVt2LCJhbGlhcyxhbmQsYmVnaW4sY2FzZSxjbGFzcyxkZWYsZGVmaW5lZCxlbHNpZixlbmQsZW5zdXJlLGZhbHNlLGluLG1vZHVsZSxuZXh0LG5pbCxub3Qsb3IscmVkbyxyZXNjdWUscmV0cnksc2VsZixzdXBlcix0aGVuLHRydWUsdW5kZWYsdW5sZXNzLHVudGlsLHdoZW4seWllbGQsQkVHSU4sRU5EIl0sdj1bdiwiY2FzZSxkb25lLGVsaWYsZXNhYyxldmFsLGZpLGZ1bmN0aW9uLGluLGxvY2FsLHNldCx0aGVuLHVudGlsIl0sSz0vXihESVJ8RklMRXx2ZWN0b3J8KGRlfHByaW9yaXR5Xyk/cXVldWV8bGlzdHxzdGFja3woY29uc3RfKT9pdGVyYXRvcnwobXVsdGkpPyhzZXR8bWFwKXxiaXRzZXR8dT8oaW50fGZsb2F0KVxkKikvLE49L1xTLyxPPXUoe2tleXdvcmRzOltGLEgsdywiY2FsbGVyLGRlbGV0ZSxkaWUsZG8sZHVtcCxlbHNpZixldmFsLGV4aXQsZm9yZWFjaCxmb3IsZ290byxpZixpbXBvcnQsbGFzdCxsb2NhbCxteSxuZXh0LG5vLG91cixwcmludCxwYWNrYWdlLHJlZG8scmVxdWlyZSxzdWIsdW5kZWYsdW5sZXNzLHVudGlsLHVzZSx3YW50YXJyYXksd2hpbGUsQkVHSU4sRU5EIisKK0ksSix2XSxoYXNoQ29tbWVudHM6ITAsY1N0eWxlQ29tbWVudHM6ITAsbXVsdGlMaW5lU3RyaW5nczohMCxyZWdleExpdGVyYWxzOiEwfSksQT17fTtrKE8sWyJkZWZhdWx0LWNvZGUiXSk7ayh4KFtdLFtbInBsbiIsL15bXjw/XSsvXSxbImRlYyIsL148IVx3W14+XSooPzo+fCQpL10sWyJjb20iLC9ePFwhLS1bXFNcc10qPyg/Oi0tXD58JCkvXSxbImxhbmctIiwvXjxcPyhbXFNcc10rPykoPzpcPz58JCkvXSxbImxhbmctIiwvXjwlKFtcU1xzXSs/KSg/OiU+fCQpL10sWyJwdW4iLC9eKD86PFslP118WyU/XT4pL10sWyJsYW5nLSIsL148eG1wXGJbXj5dKj4oW1xTXHNdKz8pPFwveG1wXGJbXj5dKj4vaV0sWyJsYW5nLWpzIiwvXjxzY3JpcHRcYltePl0qPihbXFNcc10qPykoPFwvc2NyaXB0XGJbXj5dKj4pL2ldLFsibGFuZy1jc3MiLC9ePHN0eWxlXGJbXj5dKj4oW1xTXHNdKj8pKDxcL3N0eWxlXGJbXj5dKj4pL2ldLFsibGFuZy1pbi50YWciLC9eKDxcLz9bYS16XVtePD5dKj4pL2ldXSksCitbImRlZmF1bHQtbWFya3VwIiwiaHRtIiwiaHRtbCIsIm14bWwiLCJ4aHRtbCIsInhtbCIsInhzbCJdKTtrKHgoW1sicGxuIiwvXlxzKy8scSwiIFx0XHJcbiJdLFsiYXR2IiwvXig/OiJbXiJdKiI/fCdbXiddKic/KS8scSwiXCInIl1dLFtbInRhZyIsL15ePFwvP1thLXpdKD86W1x3LS46XSpcdyk/fFwvPz4kL2ldLFsiYXRuIiwvXig/IXN0eWxlW1xzPV18b24pW2Etel0oPzpbXHc6LV0qXHcpPy9pXSxbImxhbmctdXEudmFsIiwvXj1ccyooW15ccyInPl0qKD86W15ccyInLz5dfFwvKD89XHMpKSkvXSxbInB1biIsL15bLzwtPl0rL10sWyJsYW5nLWpzIiwvXm9uXHcrXHMqPVxzKiIoW14iXSspIi9pXSxbImxhbmctanMiLC9eb25cdytccyo9XHMqJyhbXiddKyknL2ldLFsibGFuZy1qcyIsL15vblx3K1xzKj1ccyooW15ccyInPl0rKS9pXSxbImxhbmctY3NzIiwvXnN0eWxlXHMqPVxzKiIoW14iXSspIi9pXSxbImxhbmctY3NzIiwvXnN0eWxlXHMqPVxzKicoW14nXSspJy9pXSxbImxhbmctY3NzIiwKKy9ec3R5bGVccyo9XHMqKFteXHMiJz5dKykvaV1dKSxbImluLnRhZyJdKTtrKHgoW10sW1siYXR2IiwvXltcU1xzXSsvXV0pLFsidXEudmFsIl0pO2sodSh7a2V5d29yZHM6RixoYXNoQ29tbWVudHM6ITAsY1N0eWxlQ29tbWVudHM6ITAsdHlwZXM6S30pLFsiYyIsImNjIiwiY3BwIiwiY3h4IiwiY3ljIiwibSJdKTtrKHUoe2tleXdvcmRzOiJudWxsLHRydWUsZmFsc2UifSksWyJqc29uIl0pO2sodSh7a2V5d29yZHM6SCxoYXNoQ29tbWVudHM6ITAsY1N0eWxlQ29tbWVudHM6ITAsdmVyYmF0aW1TdHJpbmdzOiEwLHR5cGVzOkt9KSxbImNzIl0pO2sodSh7a2V5d29yZHM6RyxjU3R5bGVDb21tZW50czohMH0pLFsiamF2YSJdKTtrKHUoe2tleXdvcmRzOnYsaGFzaENvbW1lbnRzOiEwLG11bHRpTGluZVN0cmluZ3M6ITB9KSxbImJzaCIsImNzaCIsInNoIl0pO2sodSh7a2V5d29yZHM6SSxoYXNoQ29tbWVudHM6ITAsbXVsdGlMaW5lU3RyaW5nczohMCx0cmlwbGVRdW90ZWRTdHJpbmdzOiEwfSksCitbImN2IiwicHkiXSk7ayh1KHtrZXl3b3JkczoiY2FsbGVyLGRlbGV0ZSxkaWUsZG8sZHVtcCxlbHNpZixldmFsLGV4aXQsZm9yZWFjaCxmb3IsZ290byxpZixpbXBvcnQsbGFzdCxsb2NhbCxteSxuZXh0LG5vLG91cixwcmludCxwYWNrYWdlLHJlZG8scmVxdWlyZSxzdWIsdW5kZWYsdW5sZXNzLHVudGlsLHVzZSx3YW50YXJyYXksd2hpbGUsQkVHSU4sRU5EIixoYXNoQ29tbWVudHM6ITAsbXVsdGlMaW5lU3RyaW5nczohMCxyZWdleExpdGVyYWxzOiEwfSksWyJwZXJsIiwicGwiLCJwbSJdKTtrKHUoe2tleXdvcmRzOkosaGFzaENvbW1lbnRzOiEwLG11bHRpTGluZVN0cmluZ3M6ITAscmVnZXhMaXRlcmFsczohMH0pLFsicmIiXSk7ayh1KHtrZXl3b3Jkczp3LGNTdHlsZUNvbW1lbnRzOiEwLHJlZ2V4TGl0ZXJhbHM6ITB9KSxbImpzIl0pO2sodSh7a2V5d29yZHM6ImFsbCxhbmQsYnksY2F0Y2gsY2xhc3MsZWxzZSxleHRlbmRzLGZhbHNlLGZpbmFsbHksZm9yLGlmLGluLGlzLGlzbnQsbG9vcCxuZXcsbm8sbm90LG51bGwsb2Ysb2ZmLG9uLG9yLHJldHVybixzdXBlcix0aGVuLHRydWUsdHJ5LHVubGVzcyx1bnRpbCx3aGVuLHdoaWxlLHllcyIsCitoYXNoQ29tbWVudHM6MyxjU3R5bGVDb21tZW50czohMCxtdWx0aWxpbmVTdHJpbmdzOiEwLHRyaXBsZVF1b3RlZFN0cmluZ3M6ITAscmVnZXhMaXRlcmFsczohMH0pLFsiY29mZmVlIl0pO2soeChbXSxbWyJzdHIiLC9eW1xTXHNdKy9dXSksWyJyZWdleCJdKTt3aW5kb3cucHJldHR5UHJpbnRPbmU9ZnVuY3Rpb24oYSxtLGUpe3ZhciBoPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIlBSRSIpO2guaW5uZXJIVE1MPWE7ZSYmRChoLGUpO0Uoe2c6bSxpOmUsaDpofSk7cmV0dXJuIGguaW5uZXJIVE1MfTt3aW5kb3cucHJldHR5UHJpbnQ9ZnVuY3Rpb24oYSl7ZnVuY3Rpb24gbSgpe2Zvcih2YXIgZT13aW5kb3cuUFJfU0hPVUxEX1VTRV9DT05USU5VQVRJT04/bC5ub3coKSsyNTA6SW5maW5pdHk7cDxoLmxlbmd0aCYmbC5ub3coKTxlO3ArKyl7dmFyIG49aFtwXSxrPW4uY2xhc3NOYW1lO2lmKGsuaW5kZXhPZigicHJldHR5cHJpbnQiKT49MCl7dmFyIGs9ay5tYXRjaChnKSxmLGI7aWYoYj0KKyFrKXtiPW47Zm9yKHZhciBvPXZvaWQgMCxjPWIuZmlyc3RDaGlsZDtjO2M9Yy5uZXh0U2libGluZyl2YXIgaT1jLm5vZGVUeXBlLG89aT09PTE/bz9iOmM6aT09PTM/Ti50ZXN0KGMubm9kZVZhbHVlKT9iOm86bztiPShmPW89PT1iP3ZvaWQgMDpvKSYmIkNPREUiPT09Zi50YWdOYW1lfWImJihrPWYuY2xhc3NOYW1lLm1hdGNoKGcpKTtrJiYoaz1rWzFdKTtiPSExO2ZvcihvPW4ucGFyZW50Tm9kZTtvO289by5wYXJlbnROb2RlKWlmKChvLnRhZ05hbWU9PT0icHJlInx8by50YWdOYW1lPT09ImNvZGUifHxvLnRhZ05hbWU9PT0ieG1wIikmJm8uY2xhc3NOYW1lJiZvLmNsYXNzTmFtZS5pbmRleE9mKCJwcmV0dHlwcmludCIpPj0wKXtiPSEwO2JyZWFrfWJ8fCgoYj0oYj1uLmNsYXNzTmFtZS5tYXRjaCgvXGJsaW5lbnVtc1xiKD86OihcZCspKT8vKSk/YlsxXSYmYlsxXS5sZW5ndGg/K2JbMV06ITA6ITEpJiZEKG4sYiksZD17ZzprLGg6bixpOmJ9LEUoZCkpfX1wPGgubGVuZ3RoP3NldFRpbWVvdXQobSwKKzI1MCk6YSYmYSgpfWZvcih2YXIgZT1bZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInByZSIpLGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJjb2RlIiksZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInhtcCIpXSxoPVtdLGs9MDtrPGUubGVuZ3RoOysraylmb3IodmFyIHQ9MCxzPWVba10ubGVuZ3RoO3Q8czsrK3QpaC5wdXNoKGVba11bdF0pO3ZhciBlPXEsbD1EYXRlO2wubm93fHwobD17bm93OmZ1bmN0aW9uKCl7cmV0dXJuK25ldyBEYXRlfX0pO3ZhciBwPTAsZCxnPS9cYmxhbmcoPzp1YWdlKT8tKFtcdy5dKykoPyFcUykvO20oKX07d2luZG93LlBSPXtjcmVhdGVTaW1wbGVMZXhlcjp4LHJlZ2lzdGVyTGFuZ0hhbmRsZXI6ayxzb3VyY2VEZWNvcmF0b3I6dSxQUl9BVFRSSUJfTkFNRToiYXRuIixQUl9BVFRSSUJfVkFMVUU6ImF0diIsUFJfQ09NTUVOVDoiY29tIixQUl9ERUNMQVJBVElPTjoiZGVjIixQUl9LRVlXT1JEOiJrd2QiLFBSX0xJVEVSQUw6ImxpdCIsCitQUl9OT0NPREU6Im5vY29kZSIsUFJfUExBSU46InBsbiIsUFJfUFVOQ1RVQVRJT046InB1biIsUFJfU09VUkNFOiJzcmMiLFBSX1NUUklORzoic3RyIixQUl9UQUc6InRhZyIsUFJfVFlQRToidHlwIn19KSgpOwpkaWZmIC0tZ2l0IGEvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvdGVtcGxhdGVzL0NvbW1vbi5zb3kgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvQ29tbW9uLnNveQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40Mjk3ZDMxCi0tLSAvZGV2L251bGwKKysrIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvdGVtcGxhdGVzL0NvbW1vbi5zb3kKQEAgLTAsMCArMSw5NSBAQAorLy8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KK3tuYW1lc3BhY2UgZ2l0aWxlcyBhdXRvZXNjYXBlPSJjb250ZXh0dWFsIn0KKworLyoqCisgKiBDb21tb24gaGVhZGVyIGZvciBHaXRpbGVzLgorICoKKyAqIEBwYXJhbSB0aXRsZSB0aXRsZSBmb3IgdGhpcyBwYWdlLiBBbHdheXMgc3VmZml4ZWQgd2l0aCByZXBvc2l0b3J5IG5hbWUgYW5kIGEKKyAqICAgICBzaXRld2lkZSB0aXRsZS4KKyAqIEBwYXJhbT8gcmVwb3NpdG9yeU5hbWUgcmVwb3NpdG9yeSBuYW1lIGZvciB0aGlzIHBhZ2UsIGlmIGFwcGxpY2FibGUuCisgKiBAcGFyYW0/IG1lbnVFbnRyaWVzIG9wdGlvbmFsIGxpc3Qgb2YgbWVudSBlbnRyaWVzIHdpdGggInRleHQiIGFuZCBvcHRpb25hbAorICogICAgICJ1cmwiIGtleXMuCisgKiBAcGFyYW0gYnJlYWRjcnVtYnMgbmF2aWdhdGlvbiBicmVhZGNydW1icyBmb3IgdGhpcyBwYWdlLgorICogQHBhcmFtPyBjc3Mgb3B0aW9uYWwgbGlzdCBvZiBDU1MgVVJMcyB0byBpbmNsdWRlLgorICogQHBhcmFtPyBqcyBvcHRpb25hbCBsaXN0IG9mIEphdmFzY3JpcHQgVVJMcyB0byBpbmNsdWRlLgorICogQHBhcmFtPyBvbkxvYWQgb3B0aW9uYWwgSmF2YXNjcmlwdCB0byBleGVjdXRlIGluIHRoZSBib2R5J3Mgb25Mb2FkIGhhbmRsZXIuCisgKiAgICAgV2FybmluZzogbm90IGF1dG9lc2NhcGVkLgorICovCit7dGVtcGxhdGUgLmhlYWRlcn0KKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vVzNDLy9EVEQgSFRNTCA0LjAxLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw0L3N0cmljdC5kdGQiPgorPGh0bWw+Cis8aGVhZD4KKyAgPHRpdGxlPgorICAgIHskdGl0bGV9CisgICAge2lmICRyZXBvc2l0b3J5TmFtZX0KKyAgICAgIHtzcH0tIHskcmVwb3NpdG9yeU5hbWV9CisgICAgey9pZn0KKyAgICB7c3B9LSB7bXNnIGRlc2M9Im5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIn1HaXQgYXQgR29vZ2xley9tc2d9CisgIDwvdGl0bGU+CisgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9Ii8vd3d3Lmdvb2dsZS5jb20vY3NzL2dvLmNzcyIgLz4KKworICB7aWYgJGNzcyBhbmQgbGVuZ3RoKCRjc3MpfQorICAgIHtmb3JlYWNoICR1cmwgaW4gJGNzc30KKyAgICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InskdXJsfSIgLz4KKyAgICB7L2ZvcmVhY2h9CisgIHsvaWZ9CisgIC8vIEluY2x1ZGUgZGVmYXVsdCBDU1MgYWZ0ZXIgY3VzdG9tIENTUyBzbyBpdCBjYW4gb3ZlcnJpZGUgZGVmYXVsdHMgaW4gdGhpcmQtCisgIC8vIHBhcnR5IHN0eWxlc2hlZXRzIChlLmcuIHByZXR0aWZ5KS4KKyAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0ie2dpdGlsZXMuQ1NTX1VSTH0iIC8+CisKKyAge2lmICRqcyBhbmQgbGVuZ3RoKCRqcyl9CisgICAge2ZvcmVhY2ggJHVybCBpbiAkanN9CisgICAgICA8c2NyaXB0IHNyYz0ieyR1cmx9IiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPjwvc2NyaXB0PgorICAgIHsvZm9yZWFjaH0KKyAgey9pZn0KKzwvaGVhZD4KKzxib2R5IHtpZiAkb25Mb2FkfW9ubG9hZD0ieyRvbkxvYWR8aWR9InsvaWZ9PgorICB7Y2FsbCAuY3VzdG9tSGVhZGVyIC99CisKKyAge2lmICRtZW51RW50cmllcyBhbmQgbGVuZ3RoKCRtZW51RW50cmllcyl9CisgICAgPGRpdiBjbGFzcz0ibWVudSI+CisgICAge2ZvcmVhY2ggJGVudHJ5IGluICRtZW51RW50cmllc30KKyAgICAgIHtzcH0KKyAgICAgIHtpZiAkZW50cnkudXJsfQorICAgICAgICA8YSBocmVmPSJ7JGVudHJ5LnVybH0ie2lmIG5vdCBpc0xhc3QoJGVudHJ5KX0gY2xhc3M9ImVudHJ5InsvaWZ9PnskZW50cnkudGV4dH08L2E+CisgICAgICB7ZWxzZX0KKyAgICAgICAgPHNwYW57aWYgbm90IGlzTGFzdCgkZW50cnkpfSBjbGFzcz0iZW50cnkiey9pZn0+eyRlbnRyeS50ZXh0fTwvc3Bhbj4KKyAgICAgIHsvaWZ9CisgICAgey9mb3JlYWNofQorICAgIHtzcH0KKyAgICA8L2Rpdj4KKyAgey9pZn0KKworICB7aWYgJGJyZWFkY3J1bWJzIGFuZCBsZW5ndGgoJGJyZWFkY3J1bWJzKX0KKyAgICA8ZGl2IGNsYXNzPSJicmVhZGNydW1icyI+CisgICAgICB7Zm9yZWFjaCAkZW50cnkgaW4gJGJyZWFkY3J1bWJzfQorICAgICAgICB7aWYgbm90IGlzRmlyc3QoJGVudHJ5KX17c3B9L3tzcH17L2lmfQorICAgICAgICB7aWYgbm90IGlzTGFzdCgkZW50cnkpfQorICAgICAgICAgIDxhIGhyZWY9InskZW50cnkudXJsfSI+eyRlbnRyeS50ZXh0fTwvYT4KKyAgICAgICAge2Vsc2V9CisgICAgICAgICAgeyRlbnRyeS50ZXh0fQorICAgICAgICB7L2lmfQorICAgICAgey9mb3JlYWNofQorICAgIDwvZGl2PgorICB7L2lmfQorey90ZW1wbGF0ZX0KKworLyoqCisgKiBTdGFuZGFyZCBmb290ZXIuCisgKi8KK3t0ZW1wbGF0ZSAuZm9vdGVyfQorPC9ib2R5PgorPC9odG1sPgorey90ZW1wbGF0ZX0KZGlmZiAtLWdpdCBhL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3RlbXBsYXRlcy9EZWZhdWx0Q3VzdG9tVGVtcGxhdGVzLnNveSBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3RlbXBsYXRlcy9EZWZhdWx0Q3VzdG9tVGVtcGxhdGVzLnNveQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMWY1ZDllCi0tLSAvZGV2L251bGwKKysrIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvdGVtcGxhdGVzL0RlZmF1bHRDdXN0b21UZW1wbGF0ZXMuc295CkBAIC0wLDAgKzEsMjEgQEAKKy8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCit7bmFtZXNwYWNlIGdpdGlsZXMgYXV0b2VzY2FwZT0iY29udGV4dHVhbCJ9CisKKy8qKgorICogRGVmYXVsdCBjdXN0b20gaGVhZGVyIGltcGxlbWVudGF0aW9uIGZvciBHaXRpbGVzLgorICovCit7dGVtcGxhdGUgLmN1c3RvbUhlYWRlcn0KKzxoMT57bXNnIGRlc2M9InNob3J0IG5hbWUgb2YgdGhlIGFwcGxpY2F0aW9uIn1HaXRpbGVzey9tc2d9PC9oMT4KK3svdGVtcGxhdGV9CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvRGlmZkRldGFpbC5zb3kgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvRGlmZkRldGFpbC5zb3kKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGZkOGFmMgotLS0gL2Rldi9udWxsCisrKyBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3RlbXBsYXRlcy9EaWZmRGV0YWlsLnNveQpAQCAtMCwwICsxLDQ5IEBACisvLyBDb3B5cmlnaHQgMjAxMiBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgore25hbWVzcGFjZSBnaXRpbGVzIGF1dG9lc2NhcGU9ImNvbnRleHR1YWwifQorCisvKioKKyAqIERldGFpbCBwYWdlIHNob3dpbmcgZGlmZnMgZm9yIGEgc2luZ2xlIGNvbW1pdC4KKyAqCisgKiBAcGFyYW0gdGl0bGUgaHVtYW4tcmVhZGFibGUgcmV2aXNpb24gbmFtZS4KKyAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBuYW1lIG9mIHRoaXMgcmVwb3NpdG9yeS4KKyAqIEBwYXJhbT8gbWVudUVudHJpZXMgbWVudSBlbnRyaWVzLgorICogQHBhcmFtIGJyZWFkY3J1bWJzIGJyZWFkY3J1bWJzIGZvciB0aGlzIHBhZ2UuCisgKiBAcGFyYW0/IGNvbW1pdCBvcHRpb25hbCBjb21taXQgZm9yIHdoaWNoIGRpZmZzIGFyZSBkaXNwbGF5ZWQsIHdpdGgga2V5cworICogICAgIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdGlsZXMuY29tbWl0RGV0YWlsIHRlbXBsYXRlIChtaW51cyAiZGlmZlRyZWUiKS4KKyAqLwore3RlbXBsYXRlIC5kaWZmRGV0YWlsfQore2NhbGwgLmhlYWRlciBkYXRhPSJhbGwiIC99CisKK3tpZiAkY29tbWl0fQorICB7Y2FsbCAuY29tbWl0RGV0YWlsIGRhdGE9IiRjb21taXQiIC99Cit7L2lmfQorPGRpdiBpZD0iRElGRl9PVVRQVVRfQkxPQ0siIC8+CisKK3tjYWxsIC5mb290ZXIgL30KK3svdGVtcGxhdGV9CisKKy8qKgorICogRmlsZSBoZWFkZXIgZm9yIGEgc2luZ2xlIHVuaWZpZWQgZGlmZiBwYXRjaC4KKyAqCisgKiBAcGFyYW0gZmlyc3QgdGhlIGZpcnN0IGxpbmUgb2YgdGhlIGhlYWRlciwgd2l0aCBubyB0cmFpbGluZyBMRi4KKyAqIEBwYXJhbSByZXN0IHJlbWFpbmluZyBsaW5lcyBvZiB0aGUgaGVhZGVyLCBpZiBhbnkuCisgKiBAcGFyYW0gZmlsZUluZGV4IHBvc2l0aW9uIG9mIHRoZSBmaWxlIHdpdGhpbiB0aGUgZGlmZmVyZW5jZS4KKyAqLwore3RlbXBsYXRlIC5kaWZmSGVhZGVyfQorPHByZSBjbGFzcz0iZGlmZi1oZWFkZXIiPgorPGEgbmFtZT0iRnskZmlsZUluZGV4fSIgY2xhc3M9ImRpZmYtZ2l0Ij57JGZpcnN0fTwvYT57XG59Cit7JHJlc3R9Cis8L3ByZT4KK3svdGVtcGxhdGV9CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvSG9zdEluZGV4LnNveSBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3RlbXBsYXRlcy9Ib3N0SW5kZXguc295Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlZTk2MTYKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvSG9zdEluZGV4LnNveQpAQCAtMCwwICsxLDc3IEBACisvLyBDb3B5cmlnaHQgMjAxMiBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgore25hbWVzcGFjZSBnaXRpbGVzIGF1dG9lc2NhcGU9ImNvbnRleHR1YWwifQorCisvKioKKyAqIEhUTUwgcGFnZSBmb3IgLy4KKyAqCisgKiBAcGFyYW0gaG9zdE5hbWUgaG9zdCBuYW1lLgorICogQHBhcmFtPyBtZW51RW50cmllcyBtZW51IGVudHJpZXMuCisgKiBAcGFyYW0gYmFzZVVybCBiYXNlIFVSTCBmb3IgcmVwb3NpdG9yaWVzLgorICogQHBhcmFtIHJlcG9zaXRvcmllcyBsaXN0IG9mIHJlcG9zaXRvcnkgZGVzY3JpcHRpb24gbWFwcyB3aXRoIG5hbWUsIGNsb25lVXJsLAorICogICAgIGFuZCBvcHRpb25hbCBkZXNjcmlwdGlvbiB2YWx1ZXMuCisgKi8KK3t0ZW1wbGF0ZSAuaG9zdEluZGV4fQore2NhbGwgLmhlYWRlcn0KKyAge3BhcmFtIHRpdGxlOiAkaG9zdE5hbWUgPyAkaG9zdE5hbWUgKyAnIEdpdCByZXBvc2l0b3JpZXMnIDogJ0dpdCByZXBvc2l0b3JpZXMnIC99CisgIHtwYXJhbSBtZW51RW50cmllczogJG1lbnVFbnRyaWVzIC99CisgIHtwYXJhbSBicmVhZGNydW1iczogbnVsbCAvfQorey9jYWxsfQorCit7aWYgbGVuZ3RoKCRyZXBvc2l0b3JpZXMpfQorCisgIDxoMj4KKyAgICB7bXNnIGRlc2M9IkdpdCByZXBvc2l0b3JpZXMgYXZhaWxhYmxlIG9uIHRoZSBob3N0In0KKyAgICAgIHskaG9zdE5hbWV9IEdpdCByZXBvc2l0b3JpZXMKKyAgICB7L21zZ30KKyAgPC9oMj4KKworICA8ZGl2IGNsYXNzPSJpbnN0cnVjdGlvbnMiPgorICAgIHttc2cgZGVzYz0iZGVzY3JpcHRpb24gb24gaG93IHRvIHVzZSB0aGlzIHJlcG9zaXRvcnkifQorICAgIFRvIGNsb25lIG9uZSBvZiB0aGVzZSByZXBvc2l0b3JpZXMsIGluc3RhbGx7c3B9CisgICAgPGEgaHJlZj0iaHR0cDovL3d3dy5naXQtc2NtLmNvbS8iPmdpdDwvYT4sIGFuZCBydW46CisgICAgPHByZT5naXQgY2xvbmUgeyRiYXNlVXJsfTxlbT5uYW1lPC9lbT48L3ByZT4KKyAgICB7L21zZ30KKyAgPC9kaXY+CisKKyAgPHRhYmxlIGNsYXNzPSJsaXN0Ij4KKyAgICA8dHIgY2xhc3M9Im5vLWhvdmVyIj4KKyAgICAgIDx0aCB3aWR0aD0iMjUlIj4KKyAgICAgICAge21zZyBkZXNjPSJjb2x1bW4gaGVhZGVyIGZvciByZXBvc2l0b3J5IG5hbWUifQorICAgICAgICAgIE5hbWUKKyAgICAgICAgey9tc2d9CisgICAgICA8L3RoPgorICAgICAgPHRoPgorICAgICAgICB7bXNnIGRlc2M9ImNvbHVtbiBoZWFkZXIgZm9yIHJlcG9zaXRvcnkgZGVzY3JpcHRpb24ifQorICAgICAgICAgIERlc2NyaXB0aW9uCisgICAgICAgIHsvbXNnfQorICAgICAgPC90aD4KKyAgICA8L3RyPgorICAgIHtmb3JlYWNoICRyZXBvIGluICRyZXBvc2l0b3JpZXN9CisgICAgICA8dHI+CisgICAgICAgIDx0ZD4KKyAgICAgICAgICA8YSBocmVmPSJ7JHJlcG8udXJsfSI+eyRyZXBvLm5hbWV9PC9hPgorICAgICAgICA8L3RkPgorICAgICAgICA8dGQ+eyRyZXBvLmRlc2NyaXB0aW9ufTwvdGQ+CisgICAgICA8L3RyPgorICAgIHsvZm9yZWFjaH0KKyAgPC90YWJsZT4KKyAgPGRpdiBjbGFzcz0iZm9vdGVyIj4KKyAgICA8YSBocmVmPSI/Zm9ybWF0PVRFWFQiPnttc2cgZGVzYz0idGV4dCBmb3JtYXQifVRYVHsvbXNnfTwvYT4KKyAgICB7c3B9CisgICAgPGEgaHJlZj0iP2Zvcm1hdD1KU09OIj57bXNnIGRlc2M9IkpTT04gZm9ybWF0In1KU09Oey9tc2d9PC9hPgorICA8L2Rpdj4KK3svaWZ9Cit7Y2FsbCAuZm9vdGVyIC99Cit7L3RlbXBsYXRlfQpkaWZmIC0tZ2l0IGEvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvdGVtcGxhdGVzL0xvZ0RldGFpbC5zb3kgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvTG9nRGV0YWlsLnNveQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5iOWFlOWM3Ci0tLSAvZGV2L251bGwKKysrIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvdGVtcGxhdGVzL0xvZ0RldGFpbC5zb3kKQEAgLTAsMCArMSw5NSBAQAorLy8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KK3tuYW1lc3BhY2UgZ2l0aWxlcyBhdXRvZXNjYXBlPSJjb250ZXh0dWFsIn0KKworLyoqCisgKiBEZXRhaWwgcGFnZSBzaG93aW5nIGEgc2hvcnRsb2cgZm9yIGEgY29tbWl0LgorICoKKyAqIEBwYXJhbSB0aXRsZSBodW1hbi1yZWFkYWJsZSByZXZpc2lvbiBuYW1lLgorICogQHBhcmFtIHJlcG9zaXRvcnlOYW1lIG5hbWUgb2YgdGhpcyByZXBvc2l0b3J5LgorICogQHBhcmFtPyBtZW51RW50cmllcyBtZW51IGVudHJpZXMuCisgKiBAcGFyYW0gYnJlYWRjcnVtYnMgYnJlYWRjcnVtYnMgZm9yIHRoaXMgcGFnZS4KKyAqIEBwYXJhbT8gdGFncyBvcHRpb25hbCBsaXN0IG9mIHRhZ3MgZW5jb3VudGVyZWQgd2hlbiBwZWVsaW5nIHRoaXMgb2JqZWN0LCB3aXRoCisgKiAgICAga2V5cyBjb3JyZXNwb25kaW5nIHRvIGdpdGlsZXMudGFnRGV0YWlsLgorICogQHBhcmFtIGVudHJpZXMgbGlzdCBvZiBsb2cgZW50cmllczsgc2VlIC5sb2dFbnRyeS4KKyAqIEBwYXJhbT8gbmV4dFVybCBVUkwgZm9yIHRoZSBuZXh0IHBhZ2Ugb2YgcmVzdWx0cy4KKyAqIEBwYXJhbT8gcHJldmlvdXNVcmwgVVJMIGZvciB0aGUgcHJldmlvdXMgcGFnZSBvZiByZXN1bHRzLgorICovCit7dGVtcGxhdGUgLmxvZ0RldGFpbH0KK3tjYWxsIC5oZWFkZXIgZGF0YT0iYWxsIiAvfQorCit7aWYgJHRhZ3N9CisgIHtmb3JlYWNoICR0YWcgaW4gJHRhZ3N9CisgICAge2NhbGwgZ2l0aWxlcy50YWdEZXRhaWwgZGF0YT0iJHRhZyIgL30KKyAgey9mb3JlYWNofQorey9pZn0KKwore2lmICRwcmV2aW91c1VybH0KKyAgPGRpdiBjbGFzcz0ibG9nLW5hdiI+CisgICAgPGEgaHJlZj0ieyRwcmV2aW91c1VybH0iPnttc2cgZGVzYz0idGV4dCBmb3IgcHJldmlvdXMgVVJMIn0mbGFxdW87IFByZXZpb3Vzey9tc2d9PC9hPgorICA8L2Rpdj4KK3svaWZ9CisKK3tpZiBsZW5ndGgoJGVudHJpZXMpfQorICA8b2wgY2xhc3M9InNob3J0bG9nIj4KKyAgICB7Zm9yZWFjaCAkZW50cnkgaW4gJGVudHJpZXN9CisgICAgICA8bGl7aWYgJHByZXZpb3VzVXJsIGFuZCBpc0ZpcnN0KCRlbnRyeSl9IGNsYXNzPSJmaXJzdCJ7L2lmfT4KKyAgICAgICAge2NhbGwgLmxvZ0VudHJ5IGRhdGE9IiRlbnRyeSIgL30KKyAgICAgIDwvbGk+CisgICAgey9mb3JlYWNofQorICA8L29sPgore2Vsc2V9CisgIDxwPnttc2cgZGVzYz0iaW5mb3JtYXRpb25hbCB0ZXh0IGZvciB3aGVuIHRoZSBsb2cgaXMgZW1wdHkifU5vIGNvbW1pdHMuey9tc2d9PC9wPgorey9pZn0KKwore2lmICRuZXh0VXJsfQorICA8ZGl2IGNsYXNzPSJsb2ctbmF2Ij4KKyAgICA8YSBocmVmPSJ7JG5leHRVcmx9Ij57bXNnIGRlc2M9InRleHQgZm9yIG5leHQgVVJMIn1OZXh0ICZyYXF1bzt7L21zZ308L2E+CisgIDwvZGl2Pgorey9pZn0KKwore2NhbGwgLmZvb3RlciAvfQorey90ZW1wbGF0ZX0KKworLyoqCisgKiBTaW5nbGUgc2hvcnRsb2cgZW50cnkuCisgKgorICogQHBhcmFtIGFiYnJldlNoYSBhYmJyZXZpYXRlZCBTSEEtMS4KKyAqIEBwYXJhbSB1cmwgVVJMIHRvIGNvbW1pdCBkZXRhaWwgcGFnZS4KKyAqIEBwYXJhbSBzaG9ydE1lc3NhZ2Ugc2hvcnQgY29tbWl0IG1lc3NhZ2UuCisgKiBAcGFyYW0gYXV0aG9yIGF1dGhvciBpbmZvcm1hdGlvbiB3aXRoIGF0IGxlYXN0ICJuYW1lIiBhbmQgInJlbGF0aXZlVGltZSIga2V5cy4KKyAqIEBwYXJhbSBicmFuY2hlcyBsaXN0IG9mIGJyYW5jaGVzIGZvciB0aGlzIGVudHJ5LCB3aXRoICJuYW1lIiBhbmQgInVybCIga2V5cy4KKyAqIEBwYXJhbSB0YWdzIGxpc3Qgb2YgdGFncyBmb3IgdGhpcyBlbnRyeSwgd2l0aCAibmFtZSIgYW5kICJ1cmwiIGtleXMuCisgKi8KK3t0ZW1wbGF0ZSAubG9nRW50cnl9Cis8YSBocmVmPSJ7JHVybH0iPgorICA8c3BhbiBjbGFzcz0ic2hhMSI+eyRhYmJyZXZTaGF9PC9zcGFuPgorICAvLyBuYnNwIGluc3RhZCBvZiBDU1MgcGFkZGluZy9tYXJnaW4gYmVjYXVzZSB0aG9zZSBjYXVzZSBhIGJyZWFrIGluIHRoZQorICAvLyB1bmRlcmxpbmUuCisgICZuYnNwOworICB7c3B9PHNwYW4gY2xhc3M9ImNvbW1pdC1tZXNzYWdlIj57JHNob3J0TWVzc2FnZX08L3NwYW4+Cis8L2E+Cit7c3B9PHNwYW4gY2xhc3M9ImF1dGhvciI+e21zZyBkZXNjPSJjb21taXQgYXV0aG9yIG5hbWUifWJ5IHskYXV0aG9yLm5hbWV9ey9tc2d9PC9zcGFuPgore3NwfTxzcGFuIGNsYXNzPSJ0aW1lIj4tIHskYXV0aG9yLnJlbGF0aXZlVGltZX08L3NwYW4+Cit7aWYgbGVuZ3RoKCRicmFuY2hlcyl9CisgIHtmb3JlYWNoICRicmFuY2ggaW4gJGJyYW5jaGVzfQorICAgIHtzcH08YSBocmVmPSJ7JGJyYW5jaC51cmx9IiBjbGFzcz0iYnJhbmNoLWxhYmVsIj57JGJyYW5jaC5uYW1lfTwvYT4KKyAgey9mb3JlYWNofQorey9pZn0KK3tpZiBsZW5ndGgoJHRhZ3MpfQorICB7Zm9yZWFjaCAkdGFnIGluICR0YWdzfQorICAgIHtzcH08YSBocmVmPSJ7JHRhZy51cmx9IiBjbGFzcz0idGFnLWxhYmVsIj57JHRhZy5uYW1lfTwvYT4KKyAgey9mb3JlYWNofQorey9pZn0KK3svdGVtcGxhdGV9CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvT2JqZWN0RGV0YWlsLnNveSBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3RlbXBsYXRlcy9PYmplY3REZXRhaWwuc295Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmJhZGY0M2MKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvT2JqZWN0RGV0YWlsLnNveQpAQCAtMCwwICsxLDI5NCBAQAorLy8gQ29weXJpZ2h0IDIwMTIgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKy8vCisvLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKKy8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KKy8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAorLy8KKy8vICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKKy8vCisvLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCisvLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAorLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCisvLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCisvLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KK3tuYW1lc3BhY2UgZ2l0aWxlcyBhdXRvZXNjYXBlPSJjb250ZXh0dWFsIn0KKworLyoqCisgKiBEZXRhaWxlZCBsaXN0aW5nIG9mIGEgY29tbWl0LgorICoKKyAqIEBwYXJhbSBhdXRob3IgbWFwIHdpdGggIm5hbWUiLCAiZW1haWwiLCBhbmQgInRpbWUiIGtleXMgZm9yIHRoZSBjb21taXQgYXV0aG9yLgorICogQHBhcmFtIGNvbW1pdHRlciBtYXAgd2l0aCAibmFtZSIsICJlbWFpbCIsIGFuZCAidGltZSIga2V5cyBmb3IgdGhlIGNvbW1pdHRlci4KKyAqIEBwYXJhbSBzaGEgY29tbWl0IFNIQS0xLgorICogQHBhcmFtIHRyZWUgdHJlZSBTSEEtMS4KKyAqIEBwYXJhbSB0cmVlVXJsIHRyZWUgVVJMLgorICogQHBhcmFtIHBhcmVudHMgbGlzdCBvZiBwYXJlbnQgb2JqZWN0cyB3aXRoIHRoZSBmb2xsb3dpbmcga2V5czoKKyAqICAgICBzaGE6IFNIQS0xLgorICogICAgIHVybDogVVJMIHRvIHZpZXcgdGhlIHBhcmVudCBjb21taXQuCisgKiAgICAgZGlmZlVybDogVVJMIHRvIGRpc3BsYXkgZGlmZnMgcmVsYXRpdmUgdG8gdGhpcyBwYXJlbnQuCisgKiBAcGFyYW0gbWVzc2FnZSBsaXN0IG9mIGNvbW1pdCBtZXNzYWdlIHBhcnRzLCB3aGVyZSBlYWNoIHBhcnQgY29udGFpbnM6CisgKiAgICAgdGV4dDogcmF3IHRleHQgb2YgdGhlIHBhcnQuCisgKiAgICAgdXJsOiBvcHRpb25hbCBVUkwgdGhhdCBzaG91bGQgYmUgbGlua2VkIHRvIGZyb20gdGhlIHBhcnQuCisgKiBAcGFyYW0gZGlmZlRyZWUgbGlzdCBvZiBjaGFuZ2VkIHRyZWUgZW50cmllcyB3aXRoIHRoZSBmb2xsb3dpbmcga2V5czoKKyAqICAgICBjaGFuZ2VUeXBlOiBzdHJpbmcgbWF0Y2hpbmcgYW4gb3JnLmVjbGlwc2UuamdpdC5kaWZmLkRpZmZFbnRyeS5DaGFuZ2VUeXBlCisgKiAgICAgICAgIGNvbnN0YW50LgorICogICAgIHBhdGg6IChuZXcpIHBhdGggb2YgdGhlIHRyZWUgZW50cnkuCisgKiAgICAgb2xkUGF0aDogb2xkIHBhdGgsIG9ubHkgZm9yIHJlbmFtZXMgYW5kIGNvcGllcy4KKyAqICAgICB1cmw6IFVSTCB0byBhIGRldGFpbCBwYWdlIGZvciB0aGUgdHJlZSBlbnRyeS4KKyAqICAgICBkaWZmVXJsOiBVUkwgdG8gYSBkaWZmIHBhZ2UgZm9yIHRoZSB0cmVlIGVudHJ5J3MgZGlmZiBpbiB0aGlzIGNvbW1pdC4KKyAqIEBwYXJhbSBsb2dVcmwgVVJMIHRvIGEgbG9nIHBhZ2Ugc3RhcnRpbmcgYXQgdGhpcyBjb21taXQuCisgKi8KK3t0ZW1wbGF0ZSAuY29tbWl0RGV0YWlsfQorPGRpdiBjbGFzcz0iZ2l0LWNvbW1pdCI+CisgIDx0YWJsZT4KKyAgICA8dHI+CisgICAgICA8dGg+e21zZyBkZXNjPSJIZWFkZXIgZm9yIGNvbW1pdCBTSEEgZW50cnkifWNvbW1pdHsvbXNnfTwvdGg+CisgICAgICA8dGQgY2xhc3M9InNoYSI+CisgICAgICAgIHskc2hhfQorICAgICAgICA8c3BhbiBjbGFzcz0ibG9nLWxpbmsiPgorICAgICAgICAgIFs8YSBocmVmPSJ7JGxvZ1VybH0iPnttc2cgZGVzYz0idGV4dCBmb3IgdGhlIGxvZyBsaW5rIn1sb2d7L21zZ308L2E+XQorICAgICAgICA8L3NwYW4+CisgICAgICA8L3RkPgorICAgICAgPHRkPntzcH08L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoPnttc2cgZGVzYz0iSGVhZGVyIGZvciBjb21taXQgYXV0aG9yIn1hdXRob3J7L21zZ308L3RoPgorICAgICAgPHRkPntjYWxsIC5wZXJzb25fIGRhdGE9IiRhdXRob3IiIC99PC90ZD4KKyAgICAgIDx0ZD57JGF1dGhvci50aW1lfTwvdGQ+CisgICAgPC90cj4KKyAgICA8dHI+CisgICAgICA8dGg+e21zZyBkZXNjPSJIZWFkZXIgZm9yIGNvbW1pdHRlciJ9Y29tbWl0dGVyey9tc2d9PC90aD4KKyAgICAgIDx0ZD57Y2FsbCAucGVyc29uXyBkYXRhPSIkY29tbWl0dGVyIiAvfTwvdGQ+CisgICAgICA8dGQ+eyRjb21taXR0ZXIudGltZX08L3RkPgorICAgIDwvdHI+CisgICAgPHRyPgorICAgICAgPHRoPnttc2cgZGVzYz0iSGVhZGVyIGZvciB0cmVlIFNIQSBlbnRyeSJ9dHJlZXsvbXNnfTwvdGg+CisgICAgICA8dGQgY2xhc3M9InNoYSI+PGEgaHJlZj0ieyR0cmVlVXJsfSI+eyR0cmVlfTwvYT48L3RkPgorICAgIDwvdHI+CisgICAge2ZvcmVhY2ggJHBhcmVudCBpbiAkcGFyZW50c30KKyAgICAgIDx0cj4KKyAgICAgICAgPHRoPnttc2cgZGVzYz0iSGVhZGVyIGZvciBwYXJlbnQgU0hBIn1wYXJlbnR7L21zZ308L3RoPgorICAgICAgICA8dGQ+CisgICAgICAgICAgPGEgaHJlZj0ieyRwYXJlbnQudXJsfSI+eyRwYXJlbnQuc2hhfTwvYT4KKyAgICAgICAgICA8c3BhbiBjbGFzcz0iZGlmZi1saW5rIj4KKyAgICAgICAgICAgIFs8YSBocmVmPSJ7JHBhcmVudC5kaWZmVXJsfSI+e21zZyBkZXNjPSJ0ZXh0IGZvciB0aGUgcGFyZW50IGRpZmYgbGluayJ9ZGlmZnsvbXNnfTwvYT5dCisgICAgICAgICAgPC9zcGFuPgorICAgICAgICA8L3RkPgorICAgICAgPC90cj4KKyAgICB7L2ZvcmVhY2h9CisgIDwvdGFibGU+Cis8L2Rpdj4KK3tjYWxsIC5tZXNzYWdlX30KKyAge3BhcmFtIGNsYXNzTmFtZTogJ2NvbW1pdC1tZXNzYWdlJyAvfQorICB7cGFyYW0gbWVzc2FnZTogJG1lc3NhZ2UgL30KK3svY2FsbH0KKwore2lmICRkaWZmVHJlZSBhbmQgbGVuZ3RoKCRkaWZmVHJlZSl9CisgIDx1bCBjbGFzcz0iZGlmZi10cmVlIj4KKyAgICB7Zm9yZWFjaCAkZW50cnkgaW4gJGRpZmZUcmVlfQorICAgICAgPGxpPgorICAgICAgICA8YSBocmVmPSJ7JGVudHJ5LnVybH0iPnskZW50cnkucGF0aH08L2E+CisgICAgICAgIHtzd2l0Y2ggJGVudHJ5LmNoYW5nZVR5cGV9CisgICAgICAgICAge2Nhc2UgJ0FERCd9CisgICAgICAgICAgICA8c3BhbiBjbGFzcz0iYWRkIj4KKyAgICAgICAgICAgICAge21zZyBkZXNjPSJUZXh0IGZvciBhIG5ldyB0cmVlIGVudHJ5In0KKyAgICAgICAgICAgICAgICBbQWRkZWQgLSA8YSBocmVmPSJ7JGVudHJ5LmRpZmZVcmx9Ij5kaWZmPC9hPl0KKyAgICAgICAgICAgICAgey9tc2d9CisgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAge2Nhc2UgJ01PRElGWSd9CisgICAgICAgICAgICA8c3BhbiBjbGFzcz0ibW9kaWZ5Ij4KKyAgICAgICAgICAgICAge21zZyBkZXNjPSJUZXh0IGZvciBhIG1vZGlmaWVkIHRyZWUgZW50cnkifQorICAgICAgICAgICAgICAgIFs8YSBocmVmPSJ7JGVudHJ5LmRpZmZVcmx9Ij5kaWZmPC9hPl0KKyAgICAgICAgICAgICAgey9tc2d9CisgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAge2Nhc2UgJ0RFTEVURSd9CisgICAgICAgICAgICA8c3BhbiBjbGFzcz0iZGVsZXRlIj4KKyAgICAgICAgICAgICAge21zZyBkZXNjPSJUZXh0IGZvciBhIGRlbGV0ZWQgdHJlZSBlbnRyeSJ9CisgICAgICAgICAgICAgICAgW0RlbGV0ZWQgLSA8YSBocmVmPSJ7JGVudHJ5LmRpZmZVcmx9Ij5kaWZmPC9hPl0KKyAgICAgICAgICAgICAgey9tc2d9CisgICAgICAgICAgICA8L3NwYW4+CisgICAgICAgICAge2Nhc2UgJ1JFTkFNRSd9CisgICAgICAgICAgICA8c3BhbiBjbGFzcz0icmVuYW1lIj4KKyAgICAgICAgICAgICAge21zZyBkZXNjPSJUZXh0IGZvciBhIHJlbmFtZWQgdHJlZSBlbnRyeSJ9CisgICAgICAgICAgICAgICAgW1JlbmFtZWQgZnJvbSB7JGVudHJ5Lm9sZFBhdGh9IC0gPGEgaHJlZj0ieyRlbnRyeS5kaWZmVXJsfSI+ZGlmZjwvYT5dCisgICAgICAgICAgICAgIHsvbXNnfQorICAgICAgICAgICAgPC9zcGFuPgorICAgICAgICAgIHtjYXNlICdDT1BZJ30KKyAgICAgICAgICAgIDxzcGFuIGNsYXNzPSJjb3B5Ij4KKyAgICAgICAgICAgICAge21zZyBkZXNjPSJUZXh0IGZvciBhIGNvcGllZCB0cmVlIGVudHJ5In0KKyAgICAgICAgICAgICAgICBbQ29waWVkIGZyb20geyRlbnRyeS5vbGRQYXRofSAtIDxhIGhyZWY9InskZW50cnkuZGlmZlVybH0iPmRpZmY8L2E+XQorICAgICAgICAgICAgICB7L21zZ30KKyAgICAgICAgICAgIDwvc3Bhbj4KKyAgICAgICAgICB7ZGVmYXVsdH0KKyAgICAgICAgey9zd2l0Y2h9CisgICAgICA8L2xpPgorICAgIHsvZm9yZWFjaH0KKyAgPC91bD4KKyAgPGRpdiBjbGFzcz0iZGlmZi1zdW1tYXJ5Ij4KKyAgICB7aWYgbGVuZ3RoKCRkaWZmVHJlZSkgPT0gMX0KKyAgICAgIHttc2cgZGVzYz0iMSBmaWxlIGNoYW5nZWQifTEgZmlsZSBjaGFuZ2Vkey9tc2d9CisgICAge2Vsc2V9CisgICAgICB7bXNnIGRlc2M9Im51bWJlciBvZiBmaWxlcyBjaGFuZ2VkIn17bGVuZ3RoKCRkaWZmVHJlZSl9IGZpbGVzIGNoYW5nZWR7L21zZ30KKyAgICB7L2lmfQorICA8L2Rpdj4KK3svaWZ9CisKK3svdGVtcGxhdGV9CisKKy8qKgorICogRGV0YWlsZWQgbGlzdGluZyBvZiBhIHRyZWUuCisgKgorICogQHBhcmFtIHNoYSBTSEEgb2YgdGhpcyBwYXRoJ3MgdHJlZS4KKyAqIEBwYXJhbT8gbG9nVXJsIG9wdGlvbmFsIFVSTCB0byBhIGxvZyBmb3IgdGhpcyBwYXRoLgorICogQHBhcmFtIGVudHJpZXMgbGlzdCBvZiBlbnRyaWVzIHdpdGggdGhlIGZvbGxvd2luZyBrZXlzOgorICogICAgIHR5cGU6IGVudHJ5IHR5cGUsIG1hdGNoaW5nIG9uZSBvZiB0aGUgY29uc3RhbnQgbmFtZXMgZGVmaW5lZCBpbgorICogICAgICAgICBvcmcuZWNsaXBzZS5qZ2l0LmxpYi5GaWxlTW9kZS4KKyAqICAgICBuYW1lOiB0cmVlIGVudHJ5IG5hbWUuCisgKiAgICAgdXJsOiBVUkwgdG8gbGluayB0by4KKyAqICAgICB0YXJnZXROYW1lOiBuYW1lIG9mIGEgc3ltbGluayB0YXJnZXQsIHJlcXVpcmVkIG9ubHkgaWYgdHlwZSA9PSAnU1lNTElOSycuCisgKiAgICAgdGFyZ2V0VXJsOiBvcHRpb25hbCB1cmwgb2YgYSBzeW1saW5rIHRhcmdldCwgcmVxdWlyZWQgb25seSBpZgorICogICAgICAgICB0eXBlID09ICdTWU1MSU5LJy4KKyAqLwore3RlbXBsYXRlIC50cmVlRGV0YWlsfQorPGRpdiBjbGFzcz0ic2hhMSI+CisgIHttc2cgZGVzYz0iU0hBLTEgZm9yIHRoZSBwYXRoJ3MgdHJlZSJ9dHJlZTogeyRzaGF9ey9tc2d9CisgIHtpZiAkbG9nVXJsfXtzcH1bPGEgaHJlZj0ieyRsb2dVcmx9Ij57bXNnIGRlc2M9Imhpc3RvcnkgZm9yIGEgcGF0aCJ9cGF0aCBoaXN0b3J5ey9tc2d9PC9hPl17L2lmfQorPC9kaXY+CisKK3tpZiBsZW5ndGgoJGVudHJpZXMpfQorICA8b2wgY2xhc3M9Imxpc3QgZmlsZXMiPgorICAgIHtmb3JlYWNoICRlbnRyeSBpbiAkZW50cmllc30KKyAgICAgIDxsaSBjbGFzcz0iCisgICAgICAgICAgICB7c3dpdGNoICRlbnRyeS50eXBlfQorICAgICAgICAgICAgICB7Y2FzZSAnVFJFRSd9Z2l0LXRyZWUKKyAgICAgICAgICAgICAge2Nhc2UgJ1NZTUxJTksnfXN5bWxpbmsKKyAgICAgICAgICAgICAge2Nhc2UgJ1JFR1VMQVJfRklMRSd9cmVndWxhci1maWxlCisgICAgICAgICAgICAgIHtjYXNlICdFWEVDVVRBQkxFX0ZJTEUnfWV4ZWN1dGFibGUtZmlsZQorICAgICAgICAgICAgICB7Y2FzZSAnR0lUTElOSyd9Z2l0bGluaworICAgICAgICAgICAgICB7ZGVmYXVsdH1yZWd1bGFyLWZpbGUKKyAgICAgICAgICAgIHsvc3dpdGNofQorICAgICAgICAgICAgIiB0aXRsZT0iCisgICAgICAgICAgICB7c3dpdGNoICRlbnRyeS50eXBlfQorICAgICAgICAgICAgICB7Y2FzZSAnVFJFRSd9e21zZyBkZXNjPSJBbHQgdGV4dCBmb3IgdHJlZSBpY29uIn1UcmVley9tc2d9CisgICAgICAgICAgICAgIHtjYXNlICdTWU1MSU5LJ317bXNnIGRlc2M9IkFsdCB0ZXh0IGZvciBzeW1saW5rIGljb24ifVN5bWxpbmt7L21zZ30KKyAgICAgICAgICAgICAge2Nhc2UgJ1JFR1VMQVJfRklMRSd9e21zZyBkZXNjPSJBbHQgdGV4dCBmb3IgcmVndWxhciBmaWxlIGljb24ifVJlZ3VsYXIgZmlsZXsvbXNnfQorICAgICAgICAgICAgICB7Y2FzZSAnRVhFQ1VUQUJMRV9GSUxFJ30KKyAgICAgICAgICAgICAgICB7bXNnIGRlc2M9IkFsdCB0ZXh0IGZvciBleGVjdXRhYmxlIGZpbGUgaWNvbiJ9RXhlY3V0YWJsZSBmaWxley9tc2d9CisgICAgICAgICAgICAgIHtjYXNlICdHSVRMSU5LJ30KKyAgICAgICAgICAgICAgICB7bXNnIGRlc2M9IkFsdCB0ZXh0IGZvciBnaXQgc3VibW9kdWxlIGxpbmsgaWNvbiJ9R2l0IHN1Ym1vZHVsZSBsaW5rey9tc2d9CisgICAgICAgICAgICAgIHtkZWZhdWx0fXttc2cgZGVzYz0iQWx0IHRleHQgZm9yIG90aGVyIGZpbGUgaWNvbiJ9T3RoZXJ7L21zZ30KKyAgICAgICAgICAgIHsvc3dpdGNofQorICAgICAgICAgICAgLSB7JGVudHJ5Lm5hbWV9Ij4KKyAgICAgICAgPGEgaHJlZj0ieyRlbnRyeS51cmx9Ij57JGVudHJ5Lm5hbWV9PC9hPgorICAgICAgICB7aWYgJGVudHJ5LnR5cGUgPT0gJ1NZTUxJTksnfQorICAgICAgICAgIHtzcH0mI3gyMWU4O3tzcH0KKyAgICAgICAgICB7aWYgJGVudHJ5LnRhcmdldFVybH0KKyAgICAgICAgICAgIDxhIGhyZWY9InskZW50cnkudGFyZ2V0VXJsfSI+eyRlbnRyeS50YXJnZXROYW1lfTwvYT4KKyAgICAgICAgICB7ZWxzZX0KKyAgICAgICAgICAgIHskZW50cnkudGFyZ2V0TmFtZX0KKyAgICAgICAgICB7L2lmfQorICAgICAgICB7L2lmfQorICAgICAgICAvLyBUT0RPKGRib3Jvd2l0eik6IFNvbWV0aGluZyByZWFzb25hYmxlIGZvciBnaXRsaW5rcy4KKyAgICAgIDwvbGk+CisgICAgey9mb3JlYWNofQorICA8L3RhYmxlPgore2Vsc2V9CisgIDxwPnttc2cgZGVzYz0iSW5mb3JtYXRpb25hbCB0ZXh0IGZvciB3aGVuIGEgdHJlZSBpcyBlbXB0eSJ9VGhpcyB0cmVlIGlzIGVtcHR5LnsvbXNnfTwvcD4KK3svaWZ9Cit7L3RlbXBsYXRlfQorCisvKioKKyAqIERldGFpbGVkIGxpc3Rpbmcgb2YgYSBibG9iLgorICoKKyAqIEBwYXJhbSBzaGEgU0hBIG9mIHRoaXMgZmlsZSdzIGJsb2IuCisgKiBAcGFyYW0/IGxvZ1VybCBvcHRpb25hbCBVUkwgdG8gYSBsb2cgZm9yIHRoaXMgZmlsZS4KKyAqIEBwYXJhbSBkYXRhIGZpbGUgZGF0YSAobWF5IGJlIGVtcHR5KSwgb3IgbnVsbCBmb3IgYSBiaW5hcnkgZmlsZS4KKyAqIEBwYXJhbT8gbGFuZyBwcmV0dHlwcmludCBsYW5ndWFnZSBleHRlbnNpb24gZm9yIHRleHQgZmlsZS4KKyAqIEBwYXJhbT8gc2l6ZSBmb3IgYmluYXJ5IGZpbGVzIG9ubHksIHNpemUgaW4gYnl0ZXMuCisgKi8KK3t0ZW1wbGF0ZSAuYmxvYkRldGFpbH0KKzxkaXYgY2xhc3M9InNoYTEiPgorICB7bXNnIGRlc2M9IlNIQS0xIGZvciB0aGUgZmlsZSdzIGJsb2IifWJsb2I6IHskc2hhfXsvbXNnfQorICB7aWYgJGxvZ1VybH17c3B9WzxhIGhyZWY9InskbG9nVXJsfSI+e21zZyBkZXNjPSJoaXN0b3J5IGZvciBhIGZpbGUifWZpbGUgaGlzdG9yeXsvbXNnfTwvYT5dey9pZn0KKzwvZGl2PgorCit7aWYgJGRhdGEgIT0gbnVsbH0KKyAge2lmICRkYXRhfQorICAgIHtpZiAkbGFuZyAhPSBudWxsfQorICAgICAgPHByZSBjbGFzcz0iZ2l0LWJsb2IgcHJldHR5cHJpbnQgbGluZW51bXMgbGFuZy17JGxhbmd9Ij57JGRhdGF9PC9wcmU+CisgICAge2Vsc2V9CisgICAgICA8cHJlIGNsYXNzPSJnaXQtYmxvYiI+eyRkYXRhfTwvcHJlPgorICAgIHsvaWZ9CisgIHtlbHNlfQorICAgIDxkaXYgY2xhc3M9ImZpbGUtZW1wdHkiPkVtcHR5IGZpbGU8L2Rpdj4KKyAgey9pZn0KK3tlbHNlfQorICA8ZGl2IGNsYXNzPSJmaWxlLWJpbmFyeSI+CisgICAge21zZyBkZXNjPSJzaXplIG9mIGJpbmFyeSBmaWxlIGluIGJ5dGVzIn17JHNpemV9LWJ5dGUgYmluYXJ5IGZpbGV7L21zZ30KKyAgPC9kaXY+Cit7L2lmfQorey90ZW1wbGF0ZX0KKworLyoqCisgKiBEZXRhaWxlZCBsaXN0aW5nIG9mIGFuIGFubm90YXRlZCB0YWcuCisgKgorICogQHBhcmFtIHNoYSBTSEEgb2YgdGhpcyB0YWcuCisgKiBAcGFyYW0/IHRhZ2dlciBvcHRpb25hbCBtYXAgd2l0aCAibmFtZSIsICJlbWFpbCIsIGFuZCAidGltZSIga2V5cyBmb3IgdGhlCisgKiAgICAgdGFnZ2VyLgorICogQHBhcmFtIG9iamVjdCBTSEEgb2YgdGhlIG9iamVjdCB0aGlzIHRhZyBwb2ludHMgdG8uCisgKiBAcGFyYW0gbWVzc2FnZSB0YWcgbWVzc2FnZS4KKyAqLwore3RlbXBsYXRlIC50YWdEZXRhaWx9Cis8ZGl2IGNsYXNzPSJnaXQtdGFnIj4KKyAgPHRhYmxlPgorICAgIDx0cj4KKyAgICAgIDx0aD57bXNnIGRlc2M9IkhlYWRlciBmb3IgdGFnIFNIQSBlbnRyeSJ9dGFney9tc2d9PC90aD4KKyAgICAgIDx0ZCBjbGFzcz0ic2hhIj57JHNoYX08L3RkPgorICAgICAgPHRkPntzcH08L3RkPgorICAgIDwvdHI+CisgICAge2lmICR0YWdnZXJ9CisgICAgICA8dHI+CisgICAgICAgIDx0aD57bXNnIGRlc2M9IkhlYWRlciBmb3IgdGFnZ2VyIn10YWdnZXJ7L21zZ308L3RoPgorICAgICAgICA8dGQ+e2NhbGwgLnBlcnNvbl8gZGF0YT0iJHRhZ2dlciIgL308L3RkPgorICAgICAgICA8dGQ+eyR0YWdnZXIudGltZX08L3RkPgorICAgICAgPC90cj4KKyAgICB7L2lmfQorICAgIDx0cj4KKyAgICAgIDx0aD57bXNnIGRlc2M9IkhlYWRlciBmb3IgdGFnZ2VkIG9iamVjdCBTSEEifW9iamVjdHsvbXNnfTwvdGg+CisgICAgICA8dGQgY2xhc3M9InNoYSI+eyRvYmplY3R9PC90ZD4KKyAgICAgIDx0ZD57c3B9PC90ZD4KKyAgICA8L3RyPgorICA8L3RhYmxlPgorPC9kaXY+Cit7aWYgJG1lc3NhZ2UgYW5kIGxlbmd0aCgkbWVzc2FnZSl9CisgIHtjYWxsIC5tZXNzYWdlX30KKyAgICB7cGFyYW0gY2xhc3NOYW1lOiAndGFnLW1lc3NhZ2UnIC99CisgICAge3BhcmFtIG1lc3NhZ2U6ICRtZXNzYWdlIC99CisgIHsvY2FsbH0KK3svaWZ9Cit7L3RlbXBsYXRlfQorCisvKioKKyAqIExpbmUgYWJvdXQgYSBnaXQgcGVyc29uIGlkZW50aXR5LgorICoKKyAqIEBwYXJhbSBuYW1lIG5hbWUuCisgKiBAcGFyYW0gZW1haWwgZW1haWwuCisgKi8KK3t0ZW1wbGF0ZSAucGVyc29uXyBwcml2YXRlPSJ0cnVlIn0KK3skbmFtZX17aWYgJGVtYWlsfSAmbHQ7eyRlbWFpbH0mZ3Q7ey9pZn0KK3svdGVtcGxhdGV9CisKKy8qKgorICogUHJlZm9ybWF0dGVkIG1lc3NhZ2UsIHBvc3NpYmx5IGNvbnRhaW5pbmcgaHlwZXJsaW5rcy4KKyAqCisgKiBAcGFyYW0gY2xhc3NOYW1lIENTUyBjbGFzcyBuYW1lIGZvciA8cHJlPiBibG9jay4KKyAqIEBwYXJhbSBtZXNzYWdlIGxpc3Qgb2YgbWVzc2FnZSBwYXJ0cywgd2hlcmUgZWFjaCBwYXJ0IGNvbnRhaW5zOgorICogICAgIHRleHQ6IHJhdyB0ZXh0IG9mIHRoZSBwYXJ0LgorICogICAgIHVybDogb3B0aW9uYWwgVVJMIHRoYXQgc2hvdWxkIGJlIGxpbmtlZCB0byBmcm9tIHRoZSBwYXJ0LgorICovCit7dGVtcGxhdGUgLm1lc3NhZ2VfIHByaXZhdGU9InRydWUifQorPHByZSBjbGFzcz0ieyRjbGFzc05hbWV8aWR9Ij4KKyAge2ZvcmVhY2ggJHBhcnQgaW4gJG1lc3NhZ2V9CisgICAge2lmICRwYXJ0LnVybH08YSBocmVmPSJ7JHBhcnQudXJsfSI+eyRwYXJ0LnRleHR9PC9hPntlbHNlfXskcGFydC50ZXh0fXsvaWZ9CisgIHsvZm9yZWFjaH0KKzwvcHJlPgorey90ZW1wbGF0ZX0KZGlmZiAtLWdpdCBhL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3RlbXBsYXRlcy9QYXRoRGV0YWlsLnNveSBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3RlbXBsYXRlcy9QYXRoRGV0YWlsLnNveQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4zM2QzOGEyCi0tLSAvZGV2L251bGwKKysrIGIvZ2l0aWxlcy1zZXJ2bGV0L3NyYy9tYWluL3Jlc291cmNlcy9jb20vZ29vZ2xlL2dpdGlsZXMvdGVtcGxhdGVzL1BhdGhEZXRhaWwuc295CkBAIC0wLDAgKzEsODQgQEAKKy8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCit7bmFtZXNwYWNlIGdpdGlsZXMgYXV0b2VzY2FwZT0iY29udGV4dHVhbCJ9CisKKy8qKgorICogRGV0YWlsIHBhZ2UgZm9yIGEgcGF0aCB3aXRoaW4gYSB0cmVlLgorICoKKyAqIEBwYXJhbSB0aXRsZSBodW1hbi1yZWFkYWJsZSBuYW1lIG9mIHRoaXMgcGF0aC4KKyAqIEBwYXJhbSByZXBvc2l0b3J5TmFtZSBuYW1lIG9mIHRoaXMgcmVwb3NpdG9yeS4KKyAqIEBwYXJhbT8gbWVudUVudHJpZXMgbWVudSBlbnRyaWVzLgorICogQHBhcmFtIGJyZWFkY3J1bWJzIGJyZWFkY3J1bWJzIGZvciB0aGlzIHBhZ2UuCisgKiBAcGFyYW0gdHlwZSBwYXRoIHR5cGUsIG1hdGNoaW5nIG9uZSBvZiB0aGUgY29uc3RhbnQgbmFtZXMgZGVmaW5lZCBpbgorICogICAgICAgICBvcmcuZWNsaXBzZS5qZ2l0LmxpYi5GaWxlTW9kZS4KKyAqIEBwYXJhbSBkYXRhIHBhdGggZGF0YSwgbWF0Y2hpbmcgdGhlIHBhcmFtcyBmb3Igb25lIG9mIC50cmVlRGV0YWlsLAorICogICAgIC5ibG9iRGV0YWlsLCAuc3ltbGlua0RldGFpbCwgb3IgLmdpdGxpbmtEZXRhaWwgYXMgYXBwcm9wcmlhdGUuCisgKi8KK3t0ZW1wbGF0ZSAucGF0aERldGFpbH0KK3tpZiAkdHlwZSA9PSAnUkVHVUxBUl9GSUxFJyBvciAkdHlwZSA9PSAnRVhFQ1VUQUJMRV9GSUxFJ30KKyAge2NhbGwgLmhlYWRlcn0KKyAgICB7cGFyYW0gdGl0bGU6ICR0aXRsZSAvfQorICAgIHtwYXJhbSByZXBvc2l0b3J5TmFtZTogJHJlcG9zaXRvcnlOYW1lIC99CisgICAge3BhcmFtIG1lbnVFbnRyaWVzOiAkbWVudUVudHJpZXMgL30KKyAgICB7cGFyYW0gYnJlYWRjcnVtYnM6ICRicmVhZGNydW1icyAvfQorICAgIHtwYXJhbSBjc3M6IFtnaXRpbGVzLlBSRVRUSUZZX0NTU19VUkxdIC99CisgICAge3BhcmFtIGpzOiBbZ2l0aWxlcy5QUkVUVElGWV9KU19VUkxdIC99CisgICAge3BhcmFtIG9uTG9hZDogJ3ByZXR0eVByaW50KCknIC99CisgIHsvY2FsbH0KK3tlbHNlfQorICB7Y2FsbCAuaGVhZGVyIGRhdGE9ImFsbCIgL30KK3svaWZ9CisKK3tzd2l0Y2ggJHR5cGV9CisgIHtjYXNlICdUUkVFJ317Y2FsbCAudHJlZURldGFpbCBkYXRhPSIkZGF0YSIgL30KKyAge2Nhc2UgJ1NZTUxJTksnfXtjYWxsIC5zeW1saW5rRGV0YWlsIGRhdGE9IiRkYXRhIiAvfQorICB7Y2FzZSAnUkVHVUxBUl9GSUxFJ317Y2FsbCAuYmxvYkRldGFpbCBkYXRhPSIkZGF0YSIgL30KKyAge2Nhc2UgJ0VYRUNVVEFCTEVfRklMRSd9e2NhbGwgLmJsb2JEZXRhaWwgZGF0YT0iJGRhdGEiIC99CisgIHtjYXNlICdHSVRMSU5LJ317Y2FsbCAuZ2l0bGlua0RldGFpbCBkYXRhPSIkZGF0YSIgL30KKyAge2RlZmF1bHR9CisgICAgPGRpdiBjbGFzcz0iZXJyb3IiPgorICAgICAge21zZyBkZXNjPSJFcnJvciBtZXNzYWdlIGZvciBhbiB1bmtub3duIG9iamVjdCB0eXBlIn1PYmplY3QgaGFzIHVua25vd24gdHlwZS57L21zZ30KKyAgICA8L2Rpdj4KK3svc3dpdGNofQorCit7Y2FsbCAuZm9vdGVyIC99Cit7L3RlbXBsYXRlfQorCisvKioKKyAqIERldGFpbCBmb3IgYSBzeW1ib2xpYyBsaW5rLgorICoKKyAqIEBwYXJhbSB0YXJnZXQgdGFyZ2V0IG9mIHRoaXMgc3ltbGluay4KKyAqIEBwYXJhbT8gdGFyZ2V0VXJsIG9wdGlvbmFsIFVSTCBmb3IgdGhlIHRhcmdldCwgaWYgaXQgaXMgd2l0aGluIHRoaXMgcmVwby4KKyAqLwore3RlbXBsYXRlIC5zeW1saW5rRGV0YWlsfQorPGRpdiBjbGFzcz0ic3ltbGluay1kZXRhaWwiPgorICB7bXNnIGRlc2M9IkxlYWQtaW4gdGV4dCBmb3IgdGhlIHN5bWJvbGljIGxpbmsgdGFyZ2V0LiJ9U3ltYm9saWMgbGluayB0b3svbXNnfQorICB7c3B9e2lmICR0YXJnZXRVcmx9PGEgaHJlZj0ieyR0YXJnZXRVcmx9Ij57JHRhcmdldH08L2E+e2Vsc2V9eyR0YXJnZXR9ey9pZn0KKzwvZGl2Pgorey90ZW1wbGF0ZX0KKworLyoqCisgKiBEZXRhaWwgZm9yIGEgZ2l0IHN1Ym1vZHVsZSBsaW5rLgorICoKKyAqIEBwYXJhbSBzaGEgc3VibW9kdWxlIGNvbW1pdCBTSEEuCisgKiBAcGFyYW0gcmVtb3RlVXJsIFVSTCBvZiB0aGUgcmVtb3RlIHJlcG9zaXRvcnkuCisgKiBAcGFyYW0/IGh0dHBVcmwgb3B0aW9uYWwgSFRUUCBVUkwgcG9pbnRpbmcgdG8gYSB3ZWItYnJvd3Nlci1jb21wYXRpYmxlIFVSTCBvZgorICogICAgIHRoZSByZW1vdGUgcmVwb3NpdG9yeS4KKyAqLwore3RlbXBsYXRlIC5naXRsaW5rRGV0YWlsfQorPGRpdiBjbGFzcz0iZ2l0bGluay1kZXRhaWwiPgorICB7bXNnIGRlc2M9IkxlYWQtaW4gdGV4dCBmb3IgdGhlIGdpdCBsaW5rIFVSTCJ9U3VibW9kdWxlIGxpbmsgdG8geyRzaGF9IG9mey9tc2d9CisgIHtzcH17aWYgJGh0dHBVcmx9PGEgaHJlZj0ieyRodHRwVXJsfSI+eyRyZW1vdGVVcmx9PC9hPntlbHNlfXskcmVtb3RlVXJsfXsvaWZ9Cis8L2Rpdj4KK3svdGVtcGxhdGV9CmRpZmYgLS1naXQgYS9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvUmVwb3NpdG9yeUluZGV4LnNveSBiL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3RlbXBsYXRlcy9SZXBvc2l0b3J5SW5kZXguc295Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjAyYmI0ZGEKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvUmVwb3NpdG9yeUluZGV4LnNveQpAQCAtMCwwICsxLDc5IEBACisvLyBDb3B5cmlnaHQgMjAxMiBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorLy8KKy8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOworLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgorLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0CisvLworLy8gICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAorLy8KKy8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKKy8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCisvLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KKy8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKKy8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgore25hbWVzcGFjZSBnaXRpbGVzIGF1dG9lc2NhcGU9ImNvbnRleHR1YWwifQorCisvKioKKyAqIEluZGV4IHBhZ2UgZm9yIGEgcmVwb3NpdG9yeS4KKyAqCisgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgbmFtZSBvZiB0aGlzIHJlcG9zaXRvcnkuCisgKiBAcGFyYW0/IG1lbnVFbnRyaWVzIG1lbnUgZW50cmllcy4KKyAqIEBwYXJhbSBicmVhZGNydW1icyBicmVhZGNydW1icyBmb3IgdGhpcyBwYWdlLgorICogQHBhcmFtIGNsb25lVXJsIGNsb25lIFVSTCBmb3IgdGhpcyByZXBvc2l0b3J5LgorICogQHBhcmFtIGRlc2NyaXB0aW9uIGRlc2NyaXB0aW9uIHRleHQgb2YgdGhlIHJlcG9zaXRvcnkuCisgKiBAcGFyYW0/IGJyYW5jaGVzIGxpc3Qgb2YgYnJhbmNoIG9iamVjdHMgd2l0aCB1cmwgYW5kIG5hbWUga2V5cy4KKyAqIEBwYXJhbT8gdGFncyBsaXN0IG9mIHRhZyBvYmplY3RzIHdpdGggdXJsIGFuZCBuYW1lIGtleXMuCisgKi8KK3t0ZW1wbGF0ZSAucmVwb3NpdG9yeUluZGV4fQore2NhbGwgLmhlYWRlcn0KKyAge3BhcmFtIHRpdGxlOiAkcmVwb3NpdG9yeU5hbWUgL30KKyAge3BhcmFtIHJlcG9zaXRvcnlOYW1lOiBudWxsIC99CisgIHtwYXJhbSBtZW51RW50cmllczogJG1lbnVFbnRyaWVzIC99CisgIHtwYXJhbSBicmVhZGNydW1iczogJGJyZWFkY3J1bWJzIC99Cit7L2NhbGx9CisKK3tpZiAkZGVzY3JpcHRpb259CisgIDxkaXYgY2xhc3M9InJlcG9zaXRvcnktZGVzY3JpcHRpb24iPnskZGVzY3JpcHRpb259PC9kaXY+Cit7L2lmfQorCis8dGV4dGFyZWEgcm93cz0iMSIgY29scz0iMTUwIiBjbGFzcz0iY2xvbmUtbGluZSIKKyAgb25jbGljaz0idGhpcy5mb2N1cygpO3RoaXMuc2VsZWN0KCk7IgorICByZWFkb25seT0icmVhZG9ubHkiPgorICAgIGdpdCBjbG9uZSB7JGNsb25lVXJsfQorPC90ZXh0YXJlYT4KKworPGRpdiBjbGFzcz0icmVwb3NpdG9yeS1yZWZzIj4KKyAge2lmICRicmFuY2hlcyBhbmQgbGVuZ3RoKCRicmFuY2hlcyl9CisgICAgPGRpdiBjbGFzcz0icmVwb3NpdG9yeS1icmFuY2hlcyI+CisgICAgICA8aDM+QnJhbmNoZXM8L2gzPgorICAgICAgPHVsIGNsYXNzPSJicmFuY2gtbGlzdCI+CisgICAgICB7Zm9yZWFjaCAkYnJhbmNoIGluICRicmFuY2hlc30KKyAgICAgICAge2NhbGwgLnJlZl8gZGF0YT0iJGJyYW5jaCIgL30KKyAgICAgIHsvZm9yZWFjaH0KKyAgICAgIDwvdWw+CisgICAgPC9kaXY+CisgIHsvaWZ9CisKKyAge2lmICR0YWdzIGFuZCBsZW5ndGgoJHRhZ3MpfQorICAgIDxkaXYgY2xhc3M9InJlcG9zaXRvcnktdGFncyI+CisgICAgICA8aDM+VGFnczwvaDM+CisgICAgICA8dWwgY2xhc3M9ImJyYW5jaC1saXN0Ij4KKyAgICAgIHtmb3JlYWNoICR0YWcgaW4gJHRhZ3N9CisgICAgICAgIHtjYWxsIC5yZWZfIGRhdGE9IiR0YWciIC99CisgICAgICB7L2ZvcmVhY2h9CisgICAgICA8L3VsPgorICAgIDwvZGl2PgorICB7L2lmfQorPC9kaXY+Cit7Y2FsbCAuZm9vdGVyIC99Cit7L3RlbXBsYXRlfQorCisvKioKKyAqIERldGFpbCBmb3IgYSBzaW5nbGUgcmVmLgorICoKKyAqIEBwYXJhbSB1cmwgVVJMIGZvciByZWYgZGV0YWlsIHBhZ2UuCisgKiBAcGFyYW0gbmFtZSByZWYgbmFtZS4KKyAqLwore3RlbXBsYXRlIC5yZWZffQorPGxpPjxhIGhyZWY9InskdXJsfSI+eyRuYW1lfTwvYT48L2xpPgorey90ZW1wbGF0ZX0KZGlmZiAtLWdpdCBhL2dpdGlsZXMtc2VydmxldC9zcmMvbWFpbi9yZXNvdXJjZXMvY29tL2dvb2dsZS9naXRpbGVzL3RlbXBsYXRlcy9SZXZpc2lvbkRldGFpbC5zb3kgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvUmV2aXNpb25EZXRhaWwuc295Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFhYmVkNmIKLS0tIC9kZXYvbnVsbAorKysgYi9naXRpbGVzLXNlcnZsZXQvc3JjL21haW4vcmVzb3VyY2VzL2NvbS9nb29nbGUvZ2l0aWxlcy90ZW1wbGF0ZXMvUmV2aXNpb25EZXRhaWwuc295CkBAIC0wLDAgKzEsNjMgQEAKKy8vIENvcHlyaWdodCAyMDEyIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisvLworLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CisvLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCisvLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKKy8vCisvLyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCisvLworLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQorLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKKy8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgorLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAorLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCit7bmFtZXNwYWNlIGdpdGlsZXMgYXV0b2VzY2FwZT0iY29udGV4dHVhbCJ9CisKKy8qKgorICogRGV0YWlsIHBhZ2UgYWJvdXQgYSBzaW5nbGUgcmV2aXNpb24uCisgKgorICogQHBhcmFtIHRpdGxlIGh1bWFuLXJlYWRhYmxlIHJldmlzaW9uIG5hbWUuCisgKiBAcGFyYW0gcmVwb3NpdG9yeU5hbWUgbmFtZSBvZiB0aGlzIHJlcG9zaXRvcnkuCisgKiBAcGFyYW0/IG1lbnVFbnRyaWVzIG1lbnUgZW50cmllcy4KKyAqIEBwYXJhbSBicmVhZGNydW1icyBicmVhZGNydW1icyBmb3IgdGhpcyBwYWdlLgorICogQHBhcmFtPyBoYXNCbG9iIHNldCB0byB0cnVlIGlmIHRoZSByZXZpc2lvbiBvciBpdHMgcGVlbGVkIHZhbHVlIGlzIGEgYmxvYi4KKyAqIEBwYXJhbSBvYmplY3RzIGxpc3Qgb2Ygb2JqZWN0cyBlbmNvdW50ZXJlZCB3aGVuIHBlZWxpbmcgdGhpcyBvYmplY3QuIEVhY2gKKyAqICAgICBvYmplY3QgaGFzIGEgInR5cGUiIGtleSB3aXRoIG9uZSBvZiB0aGUKKyAqICAgICBvcmcuZWNsaXBzZS5qZ2l0LmxpYi5Db250YW50cy5UWVBFXyogY29uc3RhbnQgc3RyaW5ncywgYW5kIGEgImRhdGEiIGtleQorICogICAgIHdpdGggYW4gb2JqZWN0IHdob3NlIGtleXMgY29ycmVzcG9uZCB0byB0aGUgYXBwcm9wcmlhdGUgb2JqZWN0IGRldGFpbAorICogICAgIHRlbXBsYXRlIGZyb20gT2JqZWN0RGV0YWlsLnNveS4KKyAqLwore3RlbXBsYXRlIC5yZXZpc2lvbkRldGFpbH0KK3tpZiAkaGFzQmxvYn0KKyAge2NhbGwgLmhlYWRlcn0KKyAgICB7cGFyYW0gdGl0bGU6ICR0aXRsZSAvfQorICAgIHtwYXJhbSByZXBvc2l0b3J5TmFtZTogJHJlcG9zaXRvcnlOYW1lIC99CisgICAge3BhcmFtIG1lbnVFbnRyaWVzOiAkbWVudUVudHJpZXMgL30KKyAgICB7cGFyYW0gYnJlYWRjcnVtYnM6ICRicmVhZGNydW1icyAvfQorICAgIHtwYXJhbSBjc3M6IFtnaXRpbGVzLlBSRVRUSUZZX0NTU19VUkxdIC99CisgICAge3BhcmFtIGpzOiBbZ2l0aWxlcy5QUkVUVElGWV9KU19VUkxdIC99CisgICAge3BhcmFtIG9uTG9hZDogJ3ByZXR0eVByaW50KCknIC99CisgIHsvY2FsbH0KK3tlbHNlfQorICB7Y2FsbCAuaGVhZGVyIGRhdGE9ImFsbCIgL30KK3svaWZ9CisKK3tmb3JlYWNoICRvYmplY3QgaW4gJG9iamVjdHN9CisgIHtzd2l0Y2ggJG9iamVjdC50eXBlfQorICAgIHtjYXNlICdjb21taXQnfQorICAgICAge2NhbGwgLmNvbW1pdERldGFpbCBkYXRhPSIkb2JqZWN0LmRhdGEiIC99CisgICAge2Nhc2UgJ3RyZWUnfQorICAgICAge2NhbGwgLnRyZWVEZXRhaWwgZGF0YT0iJG9iamVjdC5kYXRhIiAvfQorICAgIHtjYXNlICdibG9iJ30KKyAgICAgIHtjYWxsIC5ibG9iRGV0YWlsIGRhdGE9IiRvYmplY3QuZGF0YSIgL30KKyAgICB7Y2FzZSAndGFnJ30KKyAgICAgIHtjYWxsIC50YWdEZXRhaWwgZGF0YT0iJG9iamVjdC5kYXRhIiAvfQorICAgIHtkZWZhdWx0fQorICAgICAgPGRpdiBjbGFzcz0iZXJyb3IiPgorICAgICAgICB7bXNnIGRlc2M9IkVycm9yIG1lc3NhZ2UgZm9yIGFuIHVua25vd24gb2JqZWN0IHR5cGUifU9iamVjdCBoYXMgdW5rbm93biB0eXBlLnsvbXNnfQorICAgICAgPC9kaXY+CisgIHsvc3dpdGNofQorey9mb3JlYWNofQorCit7Y2FsbCAuZm9vdGVyIC99Cit7L3RlbXBsYXRlfQo=