ZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJmMzAxeDguaCBiL0luY2x1ZGUvc3RtMzJmMzAxeDguaAppbmRleCAyYjVhNmMyLi5jOWJiNjQ2IDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMyZjMwMXg4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmYzMDF4OC5oCkBAIC0xMiwxMyArMTIsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC01NzEsNiArNTcwLDEwIEBACiAgIF9fSU8gdWludDMyX3QgU1I7ICAgLyohPCBXV0RHIFN0YXR1cyByZWdpc3RlciwgICAgICAgIEFkZHJlc3Mgb2Zmc2V0OiAweDA4ICovCiB9IFdXREdfVHlwZURlZjsKIAorLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfbWVtb3J5X21hcAogICAqIEB7CiAgICovCkBAIC03NDYsNyArNzQ5LDcgQEAKICNkZWZpbmUgQURDNV9WMV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBJUCB2ZXJzaW9uICovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KIC8qIE5vdGU6IE5vIHNwZWNpZmljIG1hY3JvIGZlYXR1cmUgb24gdGhpcyBkZXZpY2UgKi8KIApAQCAtODgzLDcgKzg4Niw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTIyNDEsNyArMjI0NCw3IEBACiAjZGVmaW5lIE9QQU1QMl9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QMl9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUDJfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVAyX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVAyX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTIzMDMsNyArMjMwNiw3IEBACiAjZGVmaW5lIE9QQU1QX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVBfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QX0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUF9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUF9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUF9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUF9DU1JfTE9DS19Qb3MpICAgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUF9DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTIzNTYsNyArMjM1OSw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAvKiBOb3RlOiBObyBzcGVjaWZpYyBtYWNybyBmZWF0dXJlIG9uIHRoaXMgZGV2aWNlICovCiAKQEAgLTUzNDgsNyArNTM1MSw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qCi0qIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAqLwogI2RlZmluZSBSVENfVEFNUEVSMV9TVVBQT1JUICAvKiE8IFRBTVBFUiAxIGZlYXR1cmUgc3VwcG9ydCAqLwogI2RlZmluZSBSVENfVEFNUEVSMl9TVVBQT1JUICAvKiE8IFRBTVBFUiAyIGZlYXR1cmUgc3VwcG9ydCAqLwpAQCAtNjAzMCw3ICs2MDMzLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KICNkZWZpbmUgU1BJX0kyU19TVVBQT1JUICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEkyUyBzdXBwb3J0ICovCiAjZGVmaW5lIFNQSV9JMlNfRlVMTERVUExFWF9TVVBQT1JUICAgICAgICAgICAgLyohPCBJMlMgRnVsbC1EdXBsZXggc3VwcG9ydCAqLwpAQCAtNzEzOCwxMSArNzE0MSwxMSBAQAogI2RlZmluZSBUSU1fRE1BUl9ETUFCICAgICAgICAgICAgIFRJTV9ETUFSX0RNQUJfTXNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxETUEgcmVnaXN0ZXIgZm9yIGJ1cnN0IGFjY2Vzc2VzICovCiAKIC8qKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgVElNMTZfT1IgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF9Qb3MgICAgICAoNlUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF9Nc2sgICAgICAoMHgzVUwgPDwgVElNMTZfT1JfVEkxX1JNUF9Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMEMwICovCisjZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfUG9zICAgICAgKDBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfTXNrICAgICAgKDB4M1VMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDAwMyAqLwogI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QICAgICAgICAgIFRJTTE2X09SX1RJMV9STVBfTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxUSTFfUk1QWzE6MF0gYml0cyAoVElNMTYgSW5wdXQgMSByZW1hcCkgKi8KLSNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF8wICAgICAgICAoMHgxVUwgPDwgVElNMTZfT1JfVEkxX1JNUF9Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMDQwICovCi0jZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfMSAgICAgICAgKDB4MlVMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDA4MCAqLworI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QXzAgICAgICAgICgweDFVTCA8PCBUSU0xNl9PUl9USTFfUk1QX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMDEgKi8KKyNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF8xICAgICAgICAoMHgyVUwgPDwgVElNMTZfT1JfVEkxX1JNUF9Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMDAyICovCiAKIC8qKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgVElNMV9PUiByZWdpc3RlciAgKioqKioqKioqKioqKioqKioqKioqLwogI2RlZmluZSBUSU0xX09SX0VUUl9STVBfUG9zICAgICAgKDBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApAQCAtNzc0MCw3ICs3NzQzLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0qIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogKi8KIAogLyogU3VwcG9ydCBvZiA3IGJpdHMgZGF0YSBsZW5ndGggZmVhdHVyZSAqLwpAQCAtODYxMiw4ICs4NjE1LDYgQEAKICAgKiBAfQogICAqLwogCi0gIC8qKgorLyoqCiAgICogQH0KICAgKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJmMzAyeDguaCBiL0luY2x1ZGUvc3RtMzJmMzAyeDguaAppbmRleCBlY2QyOTQ3Li5jNTkxNzU2IDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMyZjMwMng4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmYzMDJ4OC5oCkBAIC0xMiwxMyArMTIsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NzUsNiArNjc0LDEwIEBACiAgIF9fSU8gdWludDMyX3QgU1I7ICAgLyohPCBXV0RHIFN0YXR1cyByZWdpc3RlciwgICAgICAgIEFkZHJlc3Mgb2Zmc2V0OiAweDA4ICovCiB9IFdXREdfVHlwZURlZjsKIAorLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfbWVtb3J5X21hcAogICAqIEB7CiAgICovCkBAIC04NTUsNyArODU4LDcgQEAKICNkZWZpbmUgQURDNV9WMV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBJUCB2ZXJzaW9uICovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KIC8qIE5vdGU6IE5vIHNwZWNpZmljIG1hY3JvIGZlYXR1cmUgb24gdGhpcyBkZXZpY2UgKi8KIApAQCAtOTkyLDcgKzk5NSw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTIzNTAsNyArMjM1Myw3IEBACiAjZGVmaW5lIE9QQU1QMl9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QMl9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUDJfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVAyX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVAyX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTI0MTIsNyArMjQxNSw3IEBACiAjZGVmaW5lIE9QQU1QX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVBfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QX0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUF9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUF9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUF9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUF9DU1JfTE9DS19Qb3MpICAgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUF9DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTU5NDMsNyArNTk0Niw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAvKiBOb3RlOiBObyBzcGVjaWZpYyBtYWNybyBmZWF0dXJlIG9uIHRoaXMgZGV2aWNlICovCiAKQEAgLTg5NzYsNyArODk3OSw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qCi0qIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAqLwogI2RlZmluZSBSVENfVEFNUEVSMV9TVVBQT1JUICAvKiE8IFRBTVBFUiAxIGZlYXR1cmUgc3VwcG9ydCAqLwogI2RlZmluZSBSVENfVEFNUEVSMl9TVVBQT1JUICAvKiE8IFRBTVBFUiAyIGZlYXR1cmUgc3VwcG9ydCAqLwpAQCAtOTY1OCw3ICs5NjYxLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KICNkZWZpbmUgU1BJX0kyU19TVVBQT1JUICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEkyUyBzdXBwb3J0ICovCiAjZGVmaW5lIFNQSV9JMlNfRlVMTERVUExFWF9TVVBQT1JUICAgICAgICAgICAgLyohPCBJMlMgRnVsbC1EdXBsZXggc3VwcG9ydCAqLwpAQCAtMTEzNzEsNyArMTEzNzQsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAqLwogCiAvKiBTdXBwb3J0IG9mIDcgYml0cyBkYXRhIGxlbmd0aCBmZWF0dXJlICovCkBAIC0xMjM4NSw4ICsxMjM4OCw2IEBACiAgICogQH0KICAgKi8KIAotICAvKioKKy8qKgogICAqIEB9CiAgICovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMyZjMwMnhjLmggYi9JbmNsdWRlL3N0bTMyZjMwMnhjLmgKaW5kZXggYzU4YzE1Yy4uZTY2NmYxYSAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmYzMDJ4Yy5oCisrKyBiL0luY2x1ZGUvc3RtMzJmMzAyeGMuaApAQCAtMTIsMTMgKzEyLDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBCU0QgMy1DbGF1c2UgbGljZW5zZSwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNjc5LDYgKzY3OCwxMCBAQAogICBfX0lPIHVpbnQzMl90IFNSOyAgIC8qITwgV1dERyBTdGF0dXMgcmVnaXN0ZXIsICAgICAgICBBZGRyZXNzIG9mZnNldDogMHgwOCAqLwogfSBXV0RHX1R5cGVEZWY7CiAKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX21lbW9yeV9tYXAKICAgKiBAewogICAqLwpAQCAtODkwLDcgKzg5Myw3IEBACiAjZGVmaW5lIEFEQzVfVjFfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgSVAgdmVyc2lvbiAqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAjZGVmaW5lIEFEQ19NVUxUSU1PREVfU1VQUE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZmVhdHVyZSBhdmFpbGFibGUgb25seSBvbiBzcGVjaWZpYyBkZXZpY2VzOiBtdWx0aW1vZGUgYXZhaWxhYmxlIG9uIGRldmljZXMgd2l0aCBzZXZlcmFsIEFEQyBpbnN0YW5jZXMgKi8KIApAQCAtMTAyNyw3ICsxMDMwLDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMjAgKi8KLSNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWduZW1lbnQgKi8KKyNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWdubWVudCAqLwogCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Qb3MgICAgICAgICAgICAoNlUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Nc2sgICAgICAgICAgICAoMHhGVUwgPDwgQURDX0NGR1JfRVhUU0VMX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDNDMCAqLwpAQCAtMjQ4Myw3ICsyNDg2LDcgQEAKICNkZWZpbmUgT1BBTVAxX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVAxX0NTUl9UU1RSRUZfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVAxX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAxX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QMV9DU1JfT1VUQ0FMX1BvcykgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QMV9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QMV9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUDFfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDFfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QMV9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMV9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUDFfQ1NSX0xPQ0tfUG9zKSAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUDFfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUDFfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtMjU0NSw3ICsyNTQ4LDcgQEAKICNkZWZpbmUgT1BBTVAyX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVAyX0NTUl9UU1RSRUZfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QMl9DU1JfT1VUQ0FMX1BvcykgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMl9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUDJfQ1NSX0xPQ0tfUG9zKSAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUDJfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtMjYwNyw3ICsyNjEwLDcgQEAKICNkZWZpbmUgT1BBTVBfQ1NSX1RTVFJFRiAgICAgICAgICAgICBPUEFNUF9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTF9Qb3MgICAgICAgICAoMzBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTF9Nc2sgICAgICAgICAoMHgxVUwgPDwgT1BBTVBfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVBfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QX0NTUl9MT0NLX1BvcyAgICAgICAgICAgKDMxVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QX0NTUl9MT0NLX01zayAgICAgICAgICAgKDB4MVVMIDw8IE9QQU1QX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUF9DU1JfTE9DSyAgICAgICAgICAgICAgIE9QQU1QX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtNjEzOCw3ICs2MTQxLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KIC8qIE5vdGU6IE5vIHNwZWNpZmljIG1hY3JvIGZlYXR1cmUgb24gdGhpcyBkZXZpY2UgKi8KIApAQCAtOTI1Myw3ICs5MjU2LDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICovCiAjZGVmaW5lIFJUQ19UQU1QRVIxX1NVUFBPUlQgIC8qITwgVEFNUEVSIDEgZmVhdHVyZSBzdXBwb3J0ICovCiAjZGVmaW5lIFJUQ19UQU1QRVIyX1NVUFBPUlQgIC8qITwgVEFNUEVSIDIgZmVhdHVyZSBzdXBwb3J0ICovCkBAIC05OTI1LDcgKzk5MjgsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogI2RlZmluZSBTUElfSTJTX1NVUFBPUlQgICAgICAgICAgICAgICAgICAgICAgIC8qITwgSTJTIHN1cHBvcnQgKi8KICNkZWZpbmUgU1BJX0kyU19GVUxMRFVQTEVYX1NVUFBPUlQgICAgICAgICAgICAvKiE8IEkyUyBGdWxsLUR1cGxleCBzdXBwb3J0ICovCkBAIC0xMDQxOCw3ICsxMDQyMSw3IEBACiAjZGVmaW5lIFNZU0NGR19DRkdSMl9QVkRfTE9DSyAgICAgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX1BWRF9MT0NLX01zayAgICAgLyohPCBFbmFibGVzIGFuZCBsb2NrcyB0aGUgUFZEIGNvbm5lY3Rpb24gd2l0aCBUSU14IEJyZWFrIElucHV0LCBhcyB3ZWxsIGFzIHRoZSBQVkRFIGFuZCBQTFNbMjowXSBpbiB0aGUgUFdSX0NSIHJlZ2lzdGVyICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfUG9zICAgICAgICAgICAgKDRVKSAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfTXNrICAgICAgICAgICAgKDB4MVVMIDw8IFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfUG9zKSAvKiE8IDB4MDAwMDAwMTAgKi8KLSNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUiAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSX01zayAvKiE8IERpc2FibGVzIHRoZSBhZGRkcmVzcyBwYXJpdHkgY2hlY2sgb24gUkFNICovCisjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVIgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Nc2sgLyohPCBEaXNhYmxlcyB0aGUgYWRkcmVzcyBwYXJpdHkgY2hlY2sgb24gUkFNICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFX1BvcyAgICAgICAgICAgICAgICAgKDhVKSAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFX01zayAgICAgICAgICAgICAgICAgKDB4MVVMIDw8IFNZU0NGR19DRkdSMl9TUkFNX1BFX1BvcykgLyohPCAweDAwMDAwMTAwICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFICAgICAgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfTXNrICAgICAgLyohPCBTUkFNIFBhcml0eSBlcnJvciBmbGFnICovCkBAIC0xMTA1MSwxMSArMTEwNTQsMTEgQEAKICNkZWZpbmUgVElNX0RNQVJfRE1BQiAgICAgICAgICAgICBUSU1fRE1BUl9ETUFCX01zayAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8RE1BIHJlZ2lzdGVyIGZvciBidXJzdCBhY2Nlc3NlcyAqLwogCiAvKioqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIFRJTTE2X09SIHJlZ2lzdGVyICAqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfUG9zICAgICAgKDZVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0jZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfTXNrICAgICAgKDB4M1VMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDBDMCAqLworI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QX1BvcyAgICAgICgwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QX01zayAgICAgICgweDNVTCA8PCBUSU0xNl9PUl9USTFfUk1QX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMDMgKi8KICNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUCAgICAgICAgICBUSU0xNl9PUl9USTFfUk1QX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8VEkxX1JNUFsxOjBdIGJpdHMgKFRJTTE2IElucHV0IDEgcmVtYXApICovCi0jZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfMCAgICAgICAgKDB4MVVMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDA0MCAqLwotI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QXzEgICAgICAgICgweDJVTCA8PCBUSU0xNl9PUl9USTFfUk1QX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwODAgKi8KKyNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF8wICAgICAgICAoMHgxVUwgPDwgVElNMTZfT1JfVEkxX1JNUF9Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMDAxICovCisjZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfMSAgICAgICAgKDB4MlVMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDAwMiAqLwogCiAvKioqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIFRJTTFfT1IgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgVElNMV9PUl9FVFJfUk1QX1BvcyAgICAgICgwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQEAgLTEyNzI4LDggKzEyNzMxLDYgQEAKICAgKiBAfQogICAqLwogCi0gIC8qKgorLyoqCiAgICogQH0KICAgKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJmMzAyeGUuaCBiL0luY2x1ZGUvc3RtMzJmMzAyeGUuaAppbmRleCBmOWUyNTViLi42ODViMDI1IDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMyZjMwMnhlLmgKKysrIGIvSW5jbHVkZS9zdG0zMmYzMDJ4ZS5oCkBAIC0xMiwxMyArMTIsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC03MzgsNiArNzM3LDEwIEBACiAgIF9fSU8gdWludDMyX3QgU1I7ICAgLyohPCBXV0RHIFN0YXR1cyByZWdpc3RlciwgICAgICAgIEFkZHJlc3Mgb2Zmc2V0OiAweDA4ICovCiB9IFdXREdfVHlwZURlZjsKIAorLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfbWVtb3J5X21hcAogICAqIEB7CiAgICovCkBAIC05ODEsNyArOTg0LDcgQEAKICNkZWZpbmUgQURDNV9WMV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBJUCB2ZXJzaW9uICovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KICNkZWZpbmUgQURDX01VTFRJTU9ERV9TVVBQT1JUICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBmZWF0dXJlIGF2YWlsYWJsZSBvbmx5IG9uIHNwZWNpZmljIGRldmljZXM6IG11bHRpbW9kZSBhdmFpbGFibGUgb24gZGV2aWNlcyB3aXRoIHNldmVyYWwgQURDIGluc3RhbmNlcyAqLwogCkBAIC0xMTE4LDcgKzExMjEsNyBAQAogCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX1BvcyAgICAgICAgICAgICAoNVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgQURDX0NGR1JfQUxJR05fUG9zKSAgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAgLyohPCAweDAwMDAwM0MwICovCkBAIC0yNTA2LDcgKzI1MDksNyBAQAogI2RlZmluZSBPUEFNUDFfQ1NSX1RTVFJFRiAgICAgICAgICAgICBPUEFNUDFfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgSXQgZW5hYmxlcyB0aGUgc3dpdGNoIHRvIHB1dCBvdXQgdGhlIGludGVybmFsIHJlZmVyZW5jZSAqLwogI2RlZmluZSBPUEFNUDFfQ1NSX09VVENBTF9Qb3MgICAgICAgICAoMzBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDFfQ1NSX09VVENBTF9Nc2sgICAgICAgICAoMHgxVUwgPDwgT1BBTVAxX0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAvKiE8IDB4NDAwMDAwMDAgKi8KLSNkZWZpbmUgT1BBTVAxX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAxX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91cHV0IHN0YXR1cyBmbGFnICovCisjZGVmaW5lIE9QQU1QMV9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QMV9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXRwdXQgc3RhdHVzIGZsYWcgKi8KICNkZWZpbmUgT1BBTVAxX0NTUl9MT0NLX1BvcyAgICAgICAgICAgKDMxVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAxX0NTUl9MT0NLX01zayAgICAgICAgICAgKDB4MVVMIDw8IE9QQU1QMV9DU1JfTE9DS19Qb3MpICAgICAgICAgICAgLyohPCAweDgwMDAwMDAwICovCiAjZGVmaW5lIE9QQU1QMV9DU1JfTE9DSyAgICAgICAgICAgICAgIE9QQU1QMV9DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBsb2NrICovCkBAIC0yNTY4LDcgKzI1NzEsNyBAQAogI2RlZmluZSBPUEFNUDJfQ1NSX1RTVFJFRiAgICAgICAgICAgICBPUEFNUDJfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgSXQgZW5hYmxlcyB0aGUgc3dpdGNoIHRvIHB1dCBvdXQgdGhlIGludGVybmFsIHJlZmVyZW5jZSAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTF9Qb3MgICAgICAgICAoMzBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAoMHgxVUwgPDwgT1BBTVAyX0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAvKiE8IDB4NDAwMDAwMDAgKi8KLSNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91cHV0IHN0YXR1cyBmbGFnICovCisjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXRwdXQgc3RhdHVzIGZsYWcgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9MT0NLX1BvcyAgICAgICAgICAgKDMxVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAyX0NTUl9MT0NLX01zayAgICAgICAgICAgKDB4MVVMIDw8IE9QQU1QMl9DU1JfTE9DS19Qb3MpICAgICAgICAgICAgLyohPCAweDgwMDAwMDAwICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfTE9DSyAgICAgICAgICAgICAgIE9QQU1QMl9DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBsb2NrICovCkBAIC0yNjMwLDcgKzI2MzMsNyBAQAogI2RlZmluZSBPUEFNUF9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QX0NTUl9UU1RSRUZfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgSXQgZW5hYmxlcyB0aGUgc3dpdGNoIHRvIHB1dCBvdXQgdGhlIGludGVybmFsIHJlZmVyZW5jZSAqLwogI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUF9DU1JfT1VUQ0FMX1BvcykgICAgICAgICAgICAvKiE8IDB4NDAwMDAwMDAgKi8KLSNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUF9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91cHV0IHN0YXR1cyBmbGFnICovCisjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVBfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXRwdXQgc3RhdHVzIGZsYWcgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVBfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVBfQ1NSX0xPQ0tfUG9zKSAgICAgICAgICAgICAgLyohPCAweDgwMDAwMDAwICovCiAjZGVmaW5lIE9QQU1QX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVBfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBsb2NrICovCkBAIC02MTYxLDcgKzYxNjQsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogLyogTm90ZTogTm8gc3BlY2lmaWMgbWFjcm8gZmVhdHVyZSBvbiB0aGlzIGRldmljZSAqLwogCkBAIC03ODM5LDcgKzc4NDIsNyBAQAogI2RlZmluZSBGTUNfQkNSMV9DQlVSU1RSVyAgICAgICAgICAgRk1DX0JDUjFfQ0JVUlNUUldfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITxXcml0ZSBidXJzdCBlbmFibGUgICAgICAgICAqLwogI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU5fUG9zICAgICAgICAgKDIwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU5fTXNrICAgICAgICAgKDB4MVVMIDw8IEZNQ19CQ1IxX0NDTEtFTl9Qb3MpICAgICAgICAgICAgICAvKiE8IDB4MDAxMDAwMDAgKi8KLSNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOICAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAvKiE8Q29udGlub3VzIGNsb2NrIGVuYWJsZSAgICAgKi8KKyNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOICAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAvKiE8Q29udGludW91cyBjbG9jayBlbmFibGUgICAgICovCiAKIC8qKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBGTUNfQkNSMiByZWdpc3RlciAgKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgRk1DX0JDUjJfTUJLRU5fUG9zICAgICAgICAgICgwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQEAgLTEwMTMzLDcgKzEwMTM2LDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICovCiAjZGVmaW5lIFJDQ19QTExTUkNfUFJFRElWMV9TVVBQT1JUICAvKiE8IFBSRURJViBzdXBwb3J0IHVzZWQgYXMgUExMIHNvdXJjZSBpbnB1dCAgKi8KIApAQCAtMTA5MzYsNyArMTA5MzksNyBAQAogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKgotKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogKi8KICNkZWZpbmUgUlRDX1RBTVBFUjFfU1VQUE9SVCAgLyohPCBUQU1QRVIgMSBmZWF0dXJlIHN1cHBvcnQgKi8KICNkZWZpbmUgUlRDX1RBTVBFUjJfU1VQUE9SVCAgLyohPCBUQU1QRVIgMiBmZWF0dXJlIHN1cHBvcnQgKi8KQEAgLTExNjA4LDcgKzExNjExLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KICNkZWZpbmUgU1BJX0kyU19TVVBQT1JUICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEkyUyBzdXBwb3J0ICovCiAjZGVmaW5lIFNQSV9JMlNfRlVMTERVUExFWF9TVVBQT1JUICAgICAgICAgICAgLyohPCBJMlMgRnVsbC1EdXBsZXggc3VwcG9ydCAqLwpAQCAtMTIxMjYsNyArMTIxMjksNyBAQAogI2RlZmluZSBTWVNDRkdfQ0ZHUjJfUFZEX0xPQ0sgICAgICAgICAgICAgICAgICAgIFNZU0NGR19DRkdSMl9QVkRfTE9DS19Nc2sgICAgIC8qITwgRW5hYmxlcyBhbmQgbG9ja3MgdGhlIFBWRCBjb25uZWN0aW9uIHdpdGggVElNeCBCcmVhayBJbnB1dCwgYXMgd2VsbCBhcyB0aGUgUFZERSBhbmQgUExTWzI6MF0gaW4gdGhlIFBXUl9DUiByZWdpc3RlciAqLwogI2RlZmluZSBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSX1BvcyAgICAgICAgICAgICg0VSkgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSX01zayAgICAgICAgICAgICgweDFVTCA8PCBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSX1BvcykgLyohPCAweDAwMDAwMDEwICovCi0jZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVIgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Nc2sgLyohPCBEaXNhYmxlcyB0aGUgYWRkZHJlc3MgcGFyaXR5IGNoZWNrIG9uIFJBTSAqLworI2RlZmluZSBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSICAgICAgICAgICAgICAgIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfTXNrIC8qITwgRGlzYWJsZXMgdGhlIGFkZHJlc3MgcGFyaXR5IGNoZWNrIG9uIFJBTSAqLwogI2RlZmluZSBTWVNDRkdfQ0ZHUjJfU1JBTV9QRV9Qb3MgICAgICAgICAgICAgICAgICg4VSkgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBTWVNDRkdfQ0ZHUjJfU1JBTV9QRV9Nc2sgICAgICAgICAgICAgICAgICgweDFVTCA8PCBTWVNDRkdfQ0ZHUjJfU1JBTV9QRV9Qb3MpIC8qITwgMHgwMDAwMDEwMCAqLwogI2RlZmluZSBTWVNDRkdfQ0ZHUjJfU1JBTV9QRSAgICAgICAgICAgICAgICAgICAgIFNZU0NGR19DRkdSMl9TUkFNX1BFX01zayAgICAgIC8qITwgU1JBTSBQYXJpdHkgZXJyb3IgZmxhZyAqLwpAQCAtMTMzNjEsNyArMTMzNjQsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAqLwogCiAvKiBTdXBwb3J0IG9mIDcgYml0cyBkYXRhIGxlbmd0aCBmZWF0dXJlICovCkBAIC0xNDQ3Miw4ICsxNDQ3NSw2IEBACiAgICogQH0KICAgKi8KIAotICAvKioKKy8qKgogICAqIEB9CiAgICovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMyZjMwM3g4LmggYi9JbmNsdWRlL3N0bTMyZjMwM3g4LmgKaW5kZXggNjY4YzFiNC4uNzVjZmJkMyAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmYzMDN4OC5oCisrKyBiL0luY2x1ZGUvc3RtMzJmMzAzeDguaApAQCAtMTIsMTMgKzEyLDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBCU0QgMy1DbGF1c2UgbGljZW5zZSwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNjI5LDYgKzYyOCwxMCBAQAogICBfX0lPIHVpbnQzMl90IFNSOyAgIC8qITwgV1dERyBTdGF0dXMgcmVnaXN0ZXIsICAgICAgICBBZGRyZXNzIG9mZnNldDogMHgwOCAqLwogfSBXV0RHX1R5cGVEZWY7CiAKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX21lbW9yeV9tYXAKICAgKiBAewogICAqLwpAQCAtODA3LDcgKzgxMCw3IEBACiAjZGVmaW5lIEFEQzVfVjFfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgSVAgdmVyc2lvbiAqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAjZGVmaW5lIEFEQ19NVUxUSU1PREVfU1VQUE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZmVhdHVyZSBhdmFpbGFibGUgb25seSBvbiBzcGVjaWZpYyBkZXZpY2VzOiBtdWx0aW1vZGUgYXZhaWxhYmxlIG9uIGRldmljZXMgd2l0aCBzZXZlcmFsIEFEQyBpbnN0YW5jZXMgKi8KIApAQCAtOTQ0LDcgKzk0Nyw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTIyOTUsNyArMjI5OCw3IEBACiAjZGVmaW5lIE9QQU1QMl9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QMl9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUDJfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVAyX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVAyX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTIzNTcsNyArMjM2MCw3IEBACiAjZGVmaW5lIE9QQU1QX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVBfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QX0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUF9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUF9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUF9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUF9DU1JfTE9DS19Qb3MpICAgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUF9DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTU4ODgsNyArNTg5MSw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAjZGVmaW5lIERBQ19DSEFOTkVMMl9TVVBQT1JUICAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBEQUMgZmVhdHVyZSBhdmFpbGFibGUgb25seSBvbiBzcGVjaWZpYyBkZXZpY2VzOiBEQUMgY2hhbm5lbCAyIGF2YWlsYWJsZSAobWF5IG5vdCBiZSBhdmFpbGFibGUgb24gYWxsIERBQyBpbnN0YW5jZXMgREFDeCkgKi8KIApAQCAtODMwMCw3ICs4MzAzLDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICovCiAKIC8qKioqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIFJDQ19DUiByZWdpc3RlciAgKioqKioqKioqKioqKioqKioqKiovCkBAIC04OTEwLDcgKzg5MTMsNyBAQAogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKgotKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogKi8KICNkZWZpbmUgUlRDX1RBTVBFUjFfU1VQUE9SVCAgLyohPCBUQU1QRVIgMSBmZWF0dXJlIHN1cHBvcnQgKi8KICNkZWZpbmUgUlRDX1RBTVBFUjJfU1VQUE9SVCAgLyohPCBUQU1QRVIgMiBmZWF0dXJlIHN1cHBvcnQgKi8KQEAgLTk1MTcsNyArOTUyMCw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAvKiBOb3RlOiBObyBzcGVjaWZpYyBtYWNybyBmZWF0dXJlIG9uIHRoaXMgZGV2aWNlICovCiAKQEAgLTk5NjgsNyArOTk3MSw3IEBACiAjZGVmaW5lIFNZU0NGR19DRkdSMl9QVkRfTE9DSyAgICAgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX1BWRF9MT0NLX01zayAgICAgLyohPCBFbmFibGVzIGFuZCBsb2NrcyB0aGUgUFZEIGNvbm5lY3Rpb24gd2l0aCBUSU14IEJyZWFrIElucHV0LCBhcyB3ZWxsIGFzIHRoZSBQVkRFIGFuZCBQTFNbMjowXSBpbiB0aGUgUFdSX0NSIHJlZ2lzdGVyICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfUG9zICAgICAgICAgICAgKDRVKSAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfTXNrICAgICAgICAgICAgKDB4MVVMIDw8IFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfUG9zKSAvKiE8IDB4MDAwMDAwMTAgKi8KLSNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUiAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSX01zayAvKiE8IERpc2FibGVzIHRoZSBhZGRkcmVzcyBwYXJpdHkgY2hlY2sgb24gUkFNICovCisjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVIgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Nc2sgLyohPCBEaXNhYmxlcyB0aGUgYWRkcmVzcyBwYXJpdHkgY2hlY2sgb24gUkFNICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFX1BvcyAgICAgICAgICAgICAgICAgKDhVKSAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFX01zayAgICAgICAgICAgICAgICAgKDB4MVVMIDw8IFNZU0NGR19DRkdSMl9TUkFNX1BFX1BvcykgLyohPCAweDAwMDAwMTAwICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFICAgICAgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfTXNrICAgICAgLyohPCBTUkFNIFBhcml0eSBlcnJvciBmbGFnICovCkBAIC0xMDYzMSwxMSArMTA2MzQsMTEgQEAKICNkZWZpbmUgVElNX0RNQVJfRE1BQiAgICAgICAgICAgICBUSU1fRE1BUl9ETUFCX01zayAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8RE1BIHJlZ2lzdGVyIGZvciBidXJzdCBhY2Nlc3NlcyAqLwogCiAvKioqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIFRJTTE2X09SIHJlZ2lzdGVyICAqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfUG9zICAgICAgKDZVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0jZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfTXNrICAgICAgKDB4M1VMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDBDMCAqLworI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QX1BvcyAgICAgICgwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QX01zayAgICAgICgweDNVTCA8PCBUSU0xNl9PUl9USTFfUk1QX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMDMgKi8KICNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUCAgICAgICAgICBUSU0xNl9PUl9USTFfUk1QX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8VEkxX1JNUFsxOjBdIGJpdHMgKFRJTTE2IElucHV0IDEgcmVtYXApICovCi0jZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfMCAgICAgICAgKDB4MVVMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDA0MCAqLwotI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QXzEgICAgICAgICgweDJVTCA8PCBUSU0xNl9PUl9USTFfUk1QX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwODAgKi8KKyNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF8wICAgICAgICAoMHgxVUwgPDwgVElNMTZfT1JfVEkxX1JNUF9Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMDAxICovCisjZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfMSAgICAgICAgKDB4MlVMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDAwMiAqLwogCiAvKioqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIFRJTTFfT1IgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgVElNMV9PUl9FVFJfUk1QX1BvcyAgICAgICgwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQEAgLTExMjMzLDcgKzExMjM2LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0qIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogKi8KIAogLyogU3VwcG9ydCBvZiA3IGJpdHMgZGF0YSBsZW5ndGggZmVhdHVyZSAqLwpAQCAtMTIxMzksOCArMTIxNDIsNiBAQAogICAqIEB9CiAgICovCiAKLSAgLyoqCisvKioKICAgKiBAfQogICAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zdG0zMmYzMDN4Yy5oIGIvSW5jbHVkZS9zdG0zMmYzMDN4Yy5oCmluZGV4IGJjMDdjMDYuLjUxYmE1YzEgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvc3RtMzJmMzAzeGMuaAorKysgYi9JbmNsdWRlL3N0bTMyZjMwM3hjLmgKQEAgLTEyLDEzICsxMiwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTY4Nyw2ICs2ODYsMTAgQEAKICAgX19JTyB1aW50MzJfdCBTUjsgICAvKiE8IFdXREcgU3RhdHVzIHJlZ2lzdGVyLCAgICAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MDggKi8KIH0gV1dER19UeXBlRGVmOwogCisvKioKKyAgKiBAfQorICAqLworCiAvKiogQGFkZHRvZ3JvdXAgUGVyaXBoZXJhbF9tZW1vcnlfbWFwCiAgICogQHsKICAgKi8KQEAgLTkyMiw3ICs5MjUsNyBAQAogI2RlZmluZSBBREM1X1YxXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIElQIHZlcnNpb24gKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogI2RlZmluZSBBRENfTVVMVElNT0RFX1NVUFBPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGZlYXR1cmUgYXZhaWxhYmxlIG9ubHkgb24gc3BlY2lmaWMgZGV2aWNlczogbXVsdGltb2RlIGF2YWlsYWJsZSBvbiBkZXZpY2VzIHdpdGggc2V2ZXJhbCBBREMgaW5zdGFuY2VzICovCiAKQEAgLTEwNTksNyArMTA2Miw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTI4MTEsNyArMjgxNCw3IEBACiAjZGVmaW5lIE9QQU1QMV9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QMV9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QMV9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMV9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUDFfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUDFfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDFfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVAxX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAxX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUDFfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDFfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVAxX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVAxX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVAxX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTI4NzMsNyArMjg3Niw3IEBACiAjZGVmaW5lIE9QQU1QMl9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QMl9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUDJfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVAyX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVAyX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTI5MzUsNyArMjkzOCw3IEBACiAjZGVmaW5lIE9QQU1QM19DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QM19DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QM19DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QM19DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUDNfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUDNfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDNfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVAzX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAzX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUDNfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDNfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVAzX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVAzX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVAzX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTI5OTcsNyArMzAwMCw3IEBACiAjZGVmaW5lIE9QQU1QNF9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QNF9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QNF9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QNF9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUDRfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUDRfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDRfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVA0X0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVA0X0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUDRfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDRfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVA0X0NTUl9MT0NLX1BvcykgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVA0X0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVA0X0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTMwNTksNyArMzA2Miw3IEBACiAjZGVmaW5lIE9QQU1QX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVBfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QX0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUF9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUF9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUF9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUF9DU1JfTE9DS19Qb3MpICAgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUF9DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTY1OTAsNyArNjU5Myw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAjZGVmaW5lIERBQ19DSEFOTkVMMl9TVVBQT1JUICAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBEQUMgZmVhdHVyZSBhdmFpbGFibGUgb25seSBvbiBzcGVjaWZpYyBkZXZpY2VzOiBEQUMgY2hhbm5lbCAyIGF2YWlsYWJsZSAobWF5IG5vdCBiZSBhdmFpbGFibGUgb24gYWxsIERBQyBpbnN0YW5jZXMgREFDeCkgKi8KIApAQCAtOTg5MSw3ICs5ODk0LDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICovCiAjZGVmaW5lIFJUQ19UQU1QRVIxX1NVUFBPUlQgIC8qITwgVEFNUEVSIDEgZmVhdHVyZSBzdXBwb3J0ICovCiAjZGVmaW5lIFJUQ19UQU1QRVIyX1NVUFBPUlQgIC8qITwgVEFNUEVSIDIgZmVhdHVyZSBzdXBwb3J0ICovCkBAIC0xMDU2Myw3ICsxMDU2Niw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAjZGVmaW5lIFNQSV9JMlNfU1VQUE9SVCAgICAgICAgICAgICAgICAgICAgICAgLyohPCBJMlMgc3VwcG9ydCAqLwogI2RlZmluZSBTUElfSTJTX0ZVTExEVVBMRVhfU1VQUE9SVCAgICAgICAgICAgIC8qITwgSTJTIEZ1bGwtRHVwbGV4IHN1cHBvcnQgKi8KQEAgLTExMDg1LDcgKzExMDg4LDcgQEAKICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX1BWRF9MT0NLICAgICAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfUFZEX0xPQ0tfTXNrICAgICAvKiE8IEVuYWJsZXMgYW5kIGxvY2tzIHRoZSBQVkQgY29ubmVjdGlvbiB3aXRoIFRJTXggQnJlYWsgSW5wdXQsIGFzIHdlbGwgYXMgdGhlIFBWREUgYW5kIFBMU1syOjBdIGluIHRoZSBQV1JfQ1IgcmVnaXN0ZXIgKi8KICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Qb3MgICAgICAgICAgICAoNFUpICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Nc2sgICAgICAgICAgICAoMHgxVUwgPDwgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Qb3MpIC8qITwgMHgwMDAwMDAxMCAqLwotI2RlZmluZSBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSICAgICAgICAgICAgICAgIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfTXNrIC8qITwgRGlzYWJsZXMgdGhlIGFkZGRyZXNzIHBhcml0eSBjaGVjayBvbiBSQU0gKi8KKyNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUiAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSX01zayAvKiE8IERpc2FibGVzIHRoZSBhZGRyZXNzIHBhcml0eSBjaGVjayBvbiBSQU0gKi8KICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfUG9zICAgICAgICAgICAgICAgICAoOFUpICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfTXNrICAgICAgICAgICAgICAgICAoMHgxVUwgPDwgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfUG9zKSAvKiE8IDB4MDAwMDAxMDAgKi8KICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX1NSQU1fUEUgICAgICAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfU1JBTV9QRV9Nc2sgICAgICAvKiE8IFNSQU0gUGFyaXR5IGVycm9yIGZsYWcgKi8KQEAgLTEzNDc3LDggKzEzNDgwLDYgQEAKICAgKiBAfQogICAqLwogCi0gIC8qKgorLyoqCiAgICogQH0KICAgKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJmMzAzeGUuaCBiL0luY2x1ZGUvc3RtMzJmMzAzeGUuaAppbmRleCBjZmI4YWE4Li4yOWVlMTAzIDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMyZjMwM3hlLmgKKysrIGIvSW5jbHVkZS9zdG0zMmYzMDN4ZS5oCkBAIC0xMiwxMyArMTIsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC03NjQsNiArNzYzLDEwIEBACiAgIF9fSU8gdWludDMyX3QgU1I7ICAgLyohPCBXV0RHIFN0YXR1cyByZWdpc3RlciwgICAgICAgIEFkZHJlc3Mgb2Zmc2V0OiAweDA4ICovCiB9IFdXREdfVHlwZURlZjsKIAorLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfbWVtb3J5X21hcAogICAqIEB7CiAgICovCkBAIC0xMDMzLDcgKzEwMzYsNyBAQAogI2RlZmluZSBBREM1X1YxXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIElQIHZlcnNpb24gKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogI2RlZmluZSBBRENfTVVMVElNT0RFX1NVUFBPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGZlYXR1cmUgYXZhaWxhYmxlIG9ubHkgb24gc3BlY2lmaWMgZGV2aWNlczogbXVsdGltb2RlIGF2YWlsYWJsZSBvbiBkZXZpY2VzIHdpdGggc2V2ZXJhbCBBREMgaW5zdGFuY2VzICovCiAKQEAgLTExNzAsNyArMTE3Myw3IEBACiAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fUG9zICAgICAgICAgICAgICg1VSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICgweDFVTCA8PCBBRENfQ0ZHUl9BTElHTl9Qb3MpICAgICAgICAgICAgLyohPCAweDAwMDAwMDIwICovCi0jZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbmVtZW50ICovCisjZGVmaW5lIEFEQ19DRkdSX0FMSUdOICAgICAgICAgICAgICAgICBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZGF0YSBhbGlnbm1lbnQgKi8KIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfUG9zICAgICAgICAgICAgKDZVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBBRENfQ0ZHUl9FWFRTRUxfTXNrICAgICAgICAgICAgKDB4RlVMIDw8IEFEQ19DRkdSX0VYVFNFTF9Qb3MpICAgICAgICAgICAvKiE8IDB4MDAwMDAzQzAgKi8KQEAgLTI4MDksNyArMjgxMiw3IEBACiAjZGVmaW5lIE9QQU1QMV9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QMV9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QMV9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMV9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUDFfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUDFfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDFfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVAxX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAxX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUDFfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDFfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVAxX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVAxX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVAxX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTI4NzEsNyArMjg3NCw3IEBACiAjZGVmaW5lIE9QQU1QMl9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QMl9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUDJfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVAyX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVAyX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTI5MzMsNyArMjkzNiw3IEBACiAjZGVmaW5lIE9QQU1QM19DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QM19DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QM19DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QM19DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUDNfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUDNfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDNfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVAzX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAzX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUDNfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDNfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVAzX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVAzX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVAzX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTI5OTUsNyArMjk5OCw3IEBACiAjZGVmaW5lIE9QQU1QNF9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QNF9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QNF9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QNF9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUDRfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUDRfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDRfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVA0X0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVA0X0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUDRfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDRfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVA0X0NTUl9MT0NLX1BvcykgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVA0X0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVA0X0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTMwNTcsNyArMzA2MCw3IEBACiAjZGVmaW5lIE9QQU1QX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVBfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBJdCBlbmFibGVzIHRoZSBzd2l0Y2ggdG8gcHV0IG91dCB0aGUgaW50ZXJuYWwgcmVmZXJlbmNlICovCiAjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QX0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAgIC8qITwgMHg0MDAwMDAwMCAqLwotI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3VwdXQgc3RhdHVzIGZsYWcgKi8KKyNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUF9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91dHB1dCBzdGF0dXMgZmxhZyAqLwogI2RlZmluZSBPUEFNUF9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUF9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUF9DU1JfTE9DS19Qb3MpICAgICAgICAgICAgICAvKiE8IDB4ODAwMDAwMDAgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUF9DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIGxvY2sgKi8KQEAgLTY1ODgsNyArNjU5MSw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAjZGVmaW5lIERBQ19DSEFOTkVMMl9TVVBQT1JUICAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBEQUMgZmVhdHVyZSBhdmFpbGFibGUgb25seSBvbiBzcGVjaWZpYyBkZXZpY2VzOiBEQUMgY2hhbm5lbCAyIGF2YWlsYWJsZSAobWF5IG5vdCBiZSBhdmFpbGFibGUgb24gYWxsIERBQyBpbnN0YW5jZXMgREFDeCkgKi8KIApAQCAtODQwMiw3ICs4NDA1LDcgQEAKICNkZWZpbmUgRk1DX0JDUjFfQ0JVUlNUUlcgICAgICAgICAgIEZNQ19CQ1IxX0NCVVJTVFJXX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8V3JpdGUgYnVyc3QgZW5hYmxlICAgICAgICAgKi8KICNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOX1BvcyAgICAgICAgICgyMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOX01zayAgICAgICAgICgweDFVTCA8PCBGTUNfQkNSMV9DQ0xLRU5fUG9zKSAgICAgICAgICAgICAgLyohPCAweDAwMTAwMDAwICovCi0jZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgICBGTUNfQkNSMV9DQ0xLRU5fTXNrICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbm91cyBjbG9jayBlbmFibGUgICAgICovCisjZGVmaW5lIEZNQ19CQ1IxX0NDTEtFTiAgICAgICAgICAgICBGTUNfQkNSMV9DQ0xLRU5fTXNrICAgICAgICAgICAgICAgICAgICAgICAgLyohPENvbnRpbnVvdXMgY2xvY2sgZW5hYmxlICAgICAqLwogCiAvKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgRk1DX0JDUjIgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIEZNQ19CQ1IyX01CS0VOX1BvcyAgICAgICAgICAoMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkBAIC0xMDY5Niw3ICsxMDY5OSw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qCi0qIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAqLwogI2RlZmluZSBSQ0NfUExMU1JDX1BSRURJVjFfU1VQUE9SVCAgLyohPCBQUkVESVYgc3VwcG9ydCB1c2VkIGFzIFBMTCBzb3VyY2UgaW5wdXQgICovCiAKQEAgLTExNTYwLDcgKzExNTYzLDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICovCiAjZGVmaW5lIFJUQ19UQU1QRVIxX1NVUFBPUlQgIC8qITwgVEFNUEVSIDEgZmVhdHVyZSBzdXBwb3J0ICovCiAjZGVmaW5lIFJUQ19UQU1QRVIyX1NVUFBPUlQgIC8qITwgVEFNUEVSIDIgZmVhdHVyZSBzdXBwb3J0ICovCkBAIC0xMjIzMiw3ICsxMjIzNSw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAjZGVmaW5lIFNQSV9JMlNfU1VQUE9SVCAgICAgICAgICAgICAgICAgICAgICAgLyohPCBJMlMgc3VwcG9ydCAqLwogI2RlZmluZSBTUElfSTJTX0ZVTExEVVBMRVhfU1VQUE9SVCAgICAgICAgICAgIC8qITwgSTJTIEZ1bGwtRHVwbGV4IHN1cHBvcnQgKi8KQEAgLTEyODA2LDcgKzEyODA5LDcgQEAKICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX1BWRF9MT0NLICAgICAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfUFZEX0xPQ0tfTXNrICAgICAvKiE8IEVuYWJsZXMgYW5kIGxvY2tzIHRoZSBQVkQgY29ubmVjdGlvbiB3aXRoIFRJTXggQnJlYWsgSW5wdXQsIGFzIHdlbGwgYXMgdGhlIFBWREUgYW5kIFBMU1syOjBdIGluIHRoZSBQV1JfQ1IgcmVnaXN0ZXIgKi8KICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Qb3MgICAgICAgICAgICAoNFUpICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Nc2sgICAgICAgICAgICAoMHgxVUwgPDwgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Qb3MpIC8qITwgMHgwMDAwMDAxMCAqLwotI2RlZmluZSBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSICAgICAgICAgICAgICAgIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfTXNrIC8qITwgRGlzYWJsZXMgdGhlIGFkZGRyZXNzIHBhcml0eSBjaGVjayBvbiBSQU0gKi8KKyNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUiAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSX01zayAvKiE8IERpc2FibGVzIHRoZSBhZGRyZXNzIHBhcml0eSBjaGVjayBvbiBSQU0gKi8KICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfUG9zICAgICAgICAgICAgICAgICAoOFUpICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfTXNrICAgICAgICAgICAgICAgICAoMHgxVUwgPDwgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfUG9zKSAvKiE8IDB4MDAwMDAxMDAgKi8KICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX1NSQU1fUEUgICAgICAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfU1JBTV9QRV9Nc2sgICAgICAvKiE8IFNSQU0gUGFyaXR5IGVycm9yIGZsYWcgKi8KQEAgLTE0MTAyLDcgKzE0MTA1LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0qIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogKi8KIAogLyogU3VwcG9ydCBvZiA3IGJpdHMgZGF0YSBsZW5ndGggZmVhdHVyZSAqLwpAQCAtMTUzMzMsOCArMTUzMzYsNiBAQAogICAqIEB9CiAgICovCiAKLSAgLyoqCisvKioKICAgKiBAfQogICAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zdG0zMmYzMTh4eC5oIGIvSW5jbHVkZS9zdG0zMmYzMTh4eC5oCmluZGV4IGM0NDE5NTUuLmI1YTZlZTAgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvc3RtMzJmMzE4eHguaAorKysgYi9JbmNsdWRlL3N0bTMyZjMxOHh4LmgKQEAgLTEyLDEzICsxMiwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTU3Miw2ICs1NzEsMTAgQEAKICAgX19JTyB1aW50MzJfdCBTUjsgICAvKiE8IFdXREcgU3RhdHVzIHJlZ2lzdGVyLCAgICAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MDggKi8KIH0gV1dER19UeXBlRGVmOwogCisvKioKKyAgKiBAfQorICAqLworCiAvKiogQGFkZHRvZ3JvdXAgUGVyaXBoZXJhbF9tZW1vcnlfbWFwCiAgICogQHsKICAgKi8KQEAgLTc0Nyw3ICs3NTAsNyBAQAogI2RlZmluZSBBREM1X1YxXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIElQIHZlcnNpb24gKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogLyogTm90ZTogTm8gc3BlY2lmaWMgbWFjcm8gZmVhdHVyZSBvbiB0aGlzIGRldmljZSAqLwogCkBAIC04ODQsNyArODg3LDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMjAgKi8KLSNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWduZW1lbnQgKi8KKyNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWdubWVudCAqLwogCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Qb3MgICAgICAgICAgICAoNlUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Nc2sgICAgICAgICAgICAoMHhGVUwgPDwgQURDX0NGR1JfRVhUU0VMX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDNDMCAqLwpAQCAtMjI0Miw3ICsyMjQ1LDcgQEAKICNkZWZpbmUgT1BBTVAyX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVAyX0NTUl9UU1RSRUZfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QMl9DU1JfT1VUQ0FMX1BvcykgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMl9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUDJfQ1NSX0xPQ0tfUG9zKSAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUDJfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtMjMwNCw3ICsyMzA3LDcgQEAKICNkZWZpbmUgT1BBTVBfQ1NSX1RTVFJFRiAgICAgICAgICAgICBPUEFNUF9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTF9Qb3MgICAgICAgICAoMzBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTF9Nc2sgICAgICAgICAoMHgxVUwgPDwgT1BBTVBfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVBfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QX0NTUl9MT0NLX1BvcyAgICAgICAgICAgKDMxVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QX0NTUl9MT0NLX01zayAgICAgICAgICAgKDB4MVVMIDw8IE9QQU1QX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUF9DU1JfTE9DSyAgICAgICAgICAgICAgIE9QQU1QX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtMjM1Nyw3ICsyMzYwLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KIC8qIE5vdGU6IE5vIHNwZWNpZmljIG1hY3JvIGZlYXR1cmUgb24gdGhpcyBkZXZpY2UgKi8KIApAQCAtNTMzOCw3ICs1MzQxLDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICovCiAjZGVmaW5lIFJUQ19UQU1QRVIxX1NVUFBPUlQgIC8qITwgVEFNUEVSIDEgZmVhdHVyZSBzdXBwb3J0ICovCiAjZGVmaW5lIFJUQ19UQU1QRVIyX1NVUFBPUlQgIC8qITwgVEFNUEVSIDIgZmVhdHVyZSBzdXBwb3J0ICovCkBAIC02MDIwLDcgKzYwMjMsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogI2RlZmluZSBTUElfSTJTX1NVUFBPUlQgICAgICAgICAgICAgICAgICAgICAgIC8qITwgSTJTIHN1cHBvcnQgKi8KICNkZWZpbmUgU1BJX0kyU19GVUxMRFVQTEVYX1NVUFBPUlQgICAgICAgICAgICAvKiE8IEkyUyBGdWxsLUR1cGxleCBzdXBwb3J0ICovCkBAIC03MTI1LDExICs3MTI4LDExIEBACiAjZGVmaW5lIFRJTV9ETUFSX0RNQUIgICAgICAgICAgICAgVElNX0RNQVJfRE1BQl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPERNQSByZWdpc3RlciBmb3IgYnVyc3QgYWNjZXNzZXMgKi8KIAogLyoqKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBUSU0xNl9PUiByZWdpc3RlciAgKioqKioqKioqKioqKioqKioqKioqLwotI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QX1BvcyAgICAgICg2VSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAotI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QX01zayAgICAgICgweDNVTCA8PCBUSU0xNl9PUl9USTFfUk1QX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwQzAgKi8KKyNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF9Qb3MgICAgICAoMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKyNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF9Nc2sgICAgICAoMHgzVUwgPDwgVElNMTZfT1JfVEkxX1JNUF9Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMDAzICovCiAjZGVmaW5lIFRJTTE2X09SX1RJMV9STVAgICAgICAgICAgVElNMTZfT1JfVEkxX1JNUF9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAgLyohPFRJMV9STVBbMTowXSBiaXRzIChUSU0xNiBJbnB1dCAxIHJlbWFwKSAqLwotI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QXzAgICAgICAgICgweDFVTCA8PCBUSU0xNl9PUl9USTFfUk1QX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwNDAgKi8KLSNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF8xICAgICAgICAoMHgyVUwgPDwgVElNMTZfT1JfVEkxX1JNUF9Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMDgwICovCisjZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfMCAgICAgICAgKDB4MVVMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDAwMSAqLworI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QXzEgICAgICAgICgweDJVTCA8PCBUSU0xNl9PUl9USTFfUk1QX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMDIgKi8KIAogLyoqKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBUSU0xX09SIHJlZ2lzdGVyICAqKioqKioqKioqKioqKioqKioqKiovCiAjZGVmaW5lIFRJTTFfT1JfRVRSX1JNUF9Qb3MgICAgICAoMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkBAIC03NzI3LDcgKzc3MzAsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAqLwogCiAvKiBTdXBwb3J0IG9mIDcgYml0cyBkYXRhIGxlbmd0aCBmZWF0dXJlICovCkBAIC04NTk5LDggKzg2MDIsNiBAQAogICAqIEB9CiAgICovCiAKLSAgLyoqCisvKioKICAgKiBAfQogICAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zdG0zMmYzMjh4eC5oIGIvSW5jbHVkZS9zdG0zMmYzMjh4eC5oCmluZGV4IGE3OGQ4MjguLmY2Nzc5YjcgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvc3RtMzJmMzI4eHguaAorKysgYi9JbmNsdWRlL3N0bTMyZjMyOHh4LmgKQEAgLTEyLDEzICsxMiwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTYyOCw2ICs2MjcsMTAgQEAKICAgX19JTyB1aW50MzJfdCBTUjsgICAvKiE8IFdXREcgU3RhdHVzIHJlZ2lzdGVyLCAgICAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MDggKi8KIH0gV1dER19UeXBlRGVmOwogCisvKioKKyAgKiBAfQorICAqLworCiAvKiogQGFkZHRvZ3JvdXAgUGVyaXBoZXJhbF9tZW1vcnlfbWFwCiAgICogQHsKICAgKi8KQEAgLTgwNiw3ICs4MDksNyBAQAogI2RlZmluZSBBREM1X1YxXzEgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIElQIHZlcnNpb24gKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogI2RlZmluZSBBRENfTVVMVElNT0RFX1NVUFBPUlQgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGZlYXR1cmUgYXZhaWxhYmxlIG9ubHkgb24gc3BlY2lmaWMgZGV2aWNlczogbXVsdGltb2RlIGF2YWlsYWJsZSBvbiBkZXZpY2VzIHdpdGggc2V2ZXJhbCBBREMgaW5zdGFuY2VzICovCiAKQEAgLTk0Myw3ICs5NDYsNyBAQAogCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX1BvcyAgICAgICAgICAgICAoNVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgQURDX0NGR1JfQUxJR05fUG9zKSAgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAgLyohPCAweDAwMDAwM0MwICovCkBAIC0yMjk0LDcgKzIyOTcsNyBAQAogI2RlZmluZSBPUEFNUDJfQ1NSX1RTVFJFRiAgICAgICAgICAgICBPUEFNUDJfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgSXQgZW5hYmxlcyB0aGUgc3dpdGNoIHRvIHB1dCBvdXQgdGhlIGludGVybmFsIHJlZmVyZW5jZSAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTF9Qb3MgICAgICAgICAoMzBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAoMHgxVUwgPDwgT1BBTVAyX0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAvKiE8IDB4NDAwMDAwMDAgKi8KLSNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91cHV0IHN0YXR1cyBmbGFnICovCisjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXRwdXQgc3RhdHVzIGZsYWcgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9MT0NLX1BvcyAgICAgICAgICAgKDMxVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAyX0NTUl9MT0NLX01zayAgICAgICAgICAgKDB4MVVMIDw8IE9QQU1QMl9DU1JfTE9DS19Qb3MpICAgICAgICAgICAgLyohPCAweDgwMDAwMDAwICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfTE9DSyAgICAgICAgICAgICAgIE9QQU1QMl9DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBsb2NrICovCkBAIC0yMzU2LDcgKzIzNTksNyBAQAogI2RlZmluZSBPUEFNUF9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QX0NTUl9UU1RSRUZfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgSXQgZW5hYmxlcyB0aGUgc3dpdGNoIHRvIHB1dCBvdXQgdGhlIGludGVybmFsIHJlZmVyZW5jZSAqLwogI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUF9DU1JfT1VUQ0FMX1BvcykgICAgICAgICAgICAvKiE8IDB4NDAwMDAwMDAgKi8KLSNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUF9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91cHV0IHN0YXR1cyBmbGFnICovCisjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVBfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXRwdXQgc3RhdHVzIGZsYWcgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVBfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVBfQ1NSX0xPQ0tfUG9zKSAgICAgICAgICAgICAgLyohPCAweDgwMDAwMDAwICovCiAjZGVmaW5lIE9QQU1QX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVBfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBsb2NrICovCkBAIC01ODg3LDcgKzU4OTAsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogI2RlZmluZSBEQUNfQ0hBTk5FTDJfU1VQUE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgREFDIGZlYXR1cmUgYXZhaWxhYmxlIG9ubHkgb24gc3BlY2lmaWMgZGV2aWNlczogREFDIGNoYW5uZWwgMiBhdmFpbGFibGUgKG1heSBub3QgYmUgYXZhaWxhYmxlIG9uIGFsbCBEQUMgaW5zdGFuY2VzIERBQ3gpICovCiAKQEAgLTgyNzYsNyArODI3OSw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qCi0qIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAqLwogCiAvKioqKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBSQ0NfQ1IgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKioqLwpAQCAtODg4Myw3ICs4ODg2LDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICovCiAjZGVmaW5lIFJUQ19UQU1QRVIxX1NVUFBPUlQgIC8qITwgVEFNUEVSIDEgZmVhdHVyZSBzdXBwb3J0ICovCiAjZGVmaW5lIFJUQ19UQU1QRVIyX1NVUFBPUlQgIC8qITwgVEFNUEVSIDIgZmVhdHVyZSBzdXBwb3J0ICovCkBAIC05NDkwLDcgKzk0OTMsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogLyogTm90ZTogTm8gc3BlY2lmaWMgbWFjcm8gZmVhdHVyZSBvbiB0aGlzIGRldmljZSAqLwogCkBAIC05OTM4LDcgKzk5NDEsNyBAQAogI2RlZmluZSBTWVNDRkdfQ0ZHUjJfU1JBTV9QQVJJVFlfTE9DSyAgICAgICAgICAgIFNZU0NGR19DRkdSMl9TUkFNX1BBUklUWV9MT0NLX01zayAvKiE8IEVuYWJsZXMgYW5kIGxvY2tzIHRoZSBTUkFNX1BBUklUWSBlcnJvciBzaWduYWwgd2l0aCBCcmVhayBJbnB1dCBvZiBUSU14ICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfUG9zICAgICAgICAgICAgKDRVKSAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfTXNrICAgICAgICAgICAgKDB4MVVMIDw8IFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfUG9zKSAvKiE8IDB4MDAwMDAwMTAgKi8KLSNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUiAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSX01zayAvKiE8IERpc2FibGVzIHRoZSBhZGRkcmVzcyBwYXJpdHkgY2hlY2sgb24gUkFNICovCisjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVIgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Nc2sgLyohPCBEaXNhYmxlcyB0aGUgYWRkcmVzcyBwYXJpdHkgY2hlY2sgb24gUkFNICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFX1BvcyAgICAgICAgICAgICAgICAgKDhVKSAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFX01zayAgICAgICAgICAgICAgICAgKDB4MVVMIDw8IFNZU0NGR19DRkdSMl9TUkFNX1BFX1BvcykgLyohPCAweDAwMDAwMTAwICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFICAgICAgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfTXNrICAgICAgLyohPCBTUkFNIFBhcml0eSBlcnJvciBmbGFnICovCkBAIC0xMDYwMSwxMSArMTA2MDQsMTEgQEAKICNkZWZpbmUgVElNX0RNQVJfRE1BQiAgICAgICAgICAgICBUSU1fRE1BUl9ETUFCX01zayAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8RE1BIHJlZ2lzdGVyIGZvciBidXJzdCBhY2Nlc3NlcyAqLwogCiAvKioqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIFRJTTE2X09SIHJlZ2lzdGVyICAqKioqKioqKioqKioqKioqKioqKiovCi0jZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfUG9zICAgICAgKDZVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCi0jZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfTXNrICAgICAgKDB4M1VMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDBDMCAqLworI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QX1BvcyAgICAgICgwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAorI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QX01zayAgICAgICgweDNVTCA8PCBUSU0xNl9PUl9USTFfUk1QX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMDMgKi8KICNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUCAgICAgICAgICBUSU0xNl9PUl9USTFfUk1QX01zayAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8VEkxX1JNUFsxOjBdIGJpdHMgKFRJTTE2IElucHV0IDEgcmVtYXApICovCi0jZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfMCAgICAgICAgKDB4MVVMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDA0MCAqLwotI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QXzEgICAgICAgICgweDJVTCA8PCBUSU0xNl9PUl9USTFfUk1QX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwODAgKi8KKyNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF8wICAgICAgICAoMHgxVUwgPDwgVElNMTZfT1JfVEkxX1JNUF9Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMDAxICovCisjZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfMSAgICAgICAgKDB4MlVMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDAwMiAqLwogCiAvKioqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIFRJTTFfT1IgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgVElNMV9PUl9FVFJfUk1QX1BvcyAgICAgICgwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQEAgLTExMjAzLDcgKzExMjA2LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0qIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogKi8KIAogLyogU3VwcG9ydCBvZiA3IGJpdHMgZGF0YSBsZW5ndGggZmVhdHVyZSAqLwpAQCAtMTIxMDksOCArMTIxMTIsNiBAQAogICAqIEB9CiAgICovCiAKLSAgLyoqCisvKioKICAgKiBAfQogICAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zdG0zMmYzMzR4OC5oIGIvSW5jbHVkZS9zdG0zMmYzMzR4OC5oCmluZGV4IDdjYTJhOTAuLjM1Njc5MzAgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvc3RtMzJmMzM0eDguaAorKysgYi9JbmNsdWRlL3N0bTMyZjMzNHg4LmgKQEAgLTEyLDEzICsxMiwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTQyNCw3ICs0MjMsNyBAQAogewogICBfX0lPIHVpbnQzMl90IE1DUjsgICAgICAgICAgICAvKiE8IEhSVElNIE1hc3RlciBUaW1lciBjb250cm9sIHJlZ2lzdGVyLCAgICAgICAgICAgICAgICAgICAgIEFkZHJlc3Mgb2Zmc2V0OiAweDAwICovCiAgIF9fSU8gdWludDMyX3QgTUlTUjsgICAgICAgICAgIC8qITwgSFJUSU0gTWFzdGVyIFRpbWVyIGludGVycnVwdCBzdGF0dXMgcmVnaXN0ZXIsICAgICAgICAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MDQgKi8KLSAgX19JTyB1aW50MzJfdCBNSUNSOyAgICAgICAgICAgLyohPCBIUlRJTSBNYXN0ZXIgVGltZXIgaW50ZXJ1cHQgY2xlYXIgcmVnaXN0ZXIsICAgICAgICAgICAgICBBZGRyZXNzIG9mZnNldDogMHgwOCAqLworICBfX0lPIHVpbnQzMl90IE1JQ1I7ICAgICAgICAgICAvKiE8IEhSVElNIE1hc3RlciBUaW1lciBpbnRlcnJ1cHQgY2xlYXIgcmVnaXN0ZXIsICAgICAgICAgICAgICBBZGRyZXNzIG9mZnNldDogMHgwOCAqLwogICBfX0lPIHVpbnQzMl90IE1ESUVSOyAgICAgICAgICAvKiE8IEhSVElNIE1hc3RlciBUaW1lciBETUEvaW50ZXJydXB0IGVuYWJsZSByZWdpc3RlciAgICAgICAgIEFkZHJlc3Mgb2Zmc2V0OiAweDBDICovCiAgIF9fSU8gdWludDMyX3QgTUNOVFI7ICAgICAgICAgIC8qITwgSFJUSU0gTWFzdGVyIFRpbWVyIGNvdW50ZXIgcmVnaXN0ZXIsICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MTAgKi8KICAgX19JTyB1aW50MzJfdCBNUEVSOyAgICAgICAgICAgLyohPCBIUlRJTSBNYXN0ZXIgVGltZXIgcGVyaW9kIHJlZ2lzdGVyLCAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzIG9mZnNldDogMHgxNCAqLwpAQCAtNzMyLDYgKzczMSwxMCBAQAogICBfX0lPIHVpbnQzMl90IFNSOyAgIC8qITwgV1dERyBTdGF0dXMgcmVnaXN0ZXIsICAgICAgICBBZGRyZXNzIG9mZnNldDogMHgwOCAqLwogfSBXV0RHX1R5cGVEZWY7CiAKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX21lbW9yeV9tYXAKICAgKiBAewogICAqLwpAQCAtOTI0LDcgKzkyNyw3IEBACiAjZGVmaW5lIEFEQzVfVjFfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgSVAgdmVyc2lvbiAqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAjZGVmaW5lIEFEQ19NVUxUSU1PREVfU1VQUE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZmVhdHVyZSBhdmFpbGFibGUgb25seSBvbiBzcGVjaWZpYyBkZXZpY2VzOiBtdWx0aW1vZGUgYXZhaWxhYmxlIG9uIGRldmljZXMgd2l0aCBzZXZlcmFsIEFEQyBpbnN0YW5jZXMgKi8KIApAQCAtMTA2MSw3ICsxMDY0LDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMjAgKi8KLSNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWduZW1lbnQgKi8KKyNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWdubWVudCAqLwogCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Qb3MgICAgICAgICAgICAoNlUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Nc2sgICAgICAgICAgICAoMHhGVUwgPDwgQURDX0NGR1JfRVhUU0VMX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDNDMCAqLwpAQCAtMjQ4MCw3ICsyNDgzLDcgQEAKICNkZWZpbmUgT1BBTVAyX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVAyX0NTUl9UU1RSRUZfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QMl9DU1JfT1VUQ0FMX1BvcykgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMl9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUDJfQ1NSX0xPQ0tfUG9zKSAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUDJfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtMjU0Miw3ICsyNTQ1LDcgQEAKICNkZWZpbmUgT1BBTVBfQ1NSX1RTVFJFRiAgICAgICAgICAgICBPUEFNUF9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTF9Qb3MgICAgICAgICAoMzBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTF9Nc2sgICAgICAgICAoMHgxVUwgPDwgT1BBTVBfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVBfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QX0NTUl9MT0NLX1BvcyAgICAgICAgICAgKDMxVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QX0NTUl9MT0NLX01zayAgICAgICAgICAgKDB4MVVMIDw8IE9QQU1QX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUF9DU1JfTE9DSyAgICAgICAgICAgICAgIE9QQU1QX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtNjA3Myw3ICs2MDc2LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KICNkZWZpbmUgREFDX0NIQU5ORUwyX1NVUFBPUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IERBQyBmZWF0dXJlIGF2YWlsYWJsZSBvbmx5IG9uIHNwZWNpZmljIGRldmljZXM6IERBQyBjaGFubmVsIDIgYXZhaWxhYmxlIChtYXkgbm90IGJlIGF2YWlsYWJsZSBvbiBhbGwgREFDIGluc3RhbmNlcyBEQUN4KSAqLwogCkBAIC04MTYwLDcgKzgxNjMsNyBAQAogCiAjZGVmaW5lIEhSVElNX01DUl9EQUNTWU5DX1BvcyAgICAgICAgICgyNVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIEhSVElNX01DUl9EQUNTWU5DX01zayAgICAgICAgICgweDNVTCA8PCBIUlRJTV9NQ1JfREFDU1lOQ19Qb3MpICAgICAgICAgIC8qITwgMHgwNjAwMDAwMCAqLwotI2RlZmluZSBIUlRJTV9NQ1JfREFDU1lOQyAgICAgICAgICAgICBIUlRJTV9NQ1JfREFDU1lOQ19Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgREFDIHN5Y2hyb25pemF0aW9uIG1hc2sgKi8KKyNkZWZpbmUgSFJUSU1fTUNSX0RBQ1NZTkMgICAgICAgICAgICAgSFJUSU1fTUNSX0RBQ1NZTkNfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IERBQyBzeW5jaHJvbml6YXRpb24gbWFzayAqLwogI2RlZmluZSBIUlRJTV9NQ1JfREFDU1lOQ18wICAgICAgICAgICAoMHgxVUwgPDwgSFJUSU1fTUNSX0RBQ1NZTkNfUG9zKSAgICAgICAgICAvKiE8IDB4MDIwMDAwMDAgKi8KICNkZWZpbmUgSFJUSU1fTUNSX0RBQ1NZTkNfMSAgICAgICAgICAgKDB4MlVMIDw8IEhSVElNX01DUl9EQUNTWU5DX1BvcykgICAgICAgICAgLyohPCAweDA0MDAwMDAwICovCiAKQEAgLTgzNzQsNyArODM3Nyw3IEBACiAKICNkZWZpbmUgSFJUSU1fVElNQ1JfREFDU1lOQ19Qb3MgICAgICAgKDI1VSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgSFJUSU1fVElNQ1JfREFDU1lOQ19Nc2sgICAgICAgKDB4M1VMIDw8IEhSVElNX1RJTUNSX0RBQ1NZTkNfUG9zKSAgICAgICAgLyohPCAweDA2MDAwMDAwICovCi0jZGVmaW5lIEhSVElNX1RJTUNSX0RBQ1NZTkMgICAgICAgICAgIEhSVElNX1RJTUNSX0RBQ1NZTkNfTXNrICAgICAgICAgICAgICAgICAgLyohPCBEQUMgc3ljaHJvbml6YXRpb24gbWFzayAqLworI2RlZmluZSBIUlRJTV9USU1DUl9EQUNTWU5DICAgICAgICAgICBIUlRJTV9USU1DUl9EQUNTWU5DX01zayAgICAgICAgICAgICAgICAgIC8qITwgREFDIHN5bmNocm9uaXphdGlvbiBtYXNrICovCiAjZGVmaW5lIEhSVElNX1RJTUNSX0RBQ1NZTkNfMCAgICAgICAgICgweDFVTCA8PCBIUlRJTV9USU1DUl9EQUNTWU5DX1BvcykgICAgICAgIC8qITwgMHgwMjAwMDAwMCAqLwogI2RlZmluZSBIUlRJTV9USU1DUl9EQUNTWU5DXzEgICAgICAgICAoMHgyVUwgPDwgSFJUSU1fVElNQ1JfREFDU1lOQ19Qb3MpICAgICAgICAvKiE8IDB4MDQwMDAwMDAgKi8KICNkZWZpbmUgSFJUSU1fVElNQ1JfUFJFRU5fUG9zICAgICAgICAgKDI3VSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQEAgLTEwMDM4LDcgKzEwMDQxLDcgQEAKIC8qKioqIEJpdCBkZWZpbml0aW9uIGZvciBDb21tb24gSFJUSU0gVGltZXIgQnVyc3QgbW9kZSBjb250cm9sIHJlZ2lzdGVyICoqKioqKioqLwogI2RlZmluZSBIUlRJTV9CTUNSX0JNRV9Qb3MgICAgICAgICAgICAoMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBIUlRJTV9CTUNSX0JNRV9Nc2sgICAgICAgICAgICAoMHgxVUwgPDwgSFJUSU1fQk1DUl9CTUVfUG9zKSAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMDEgKi8KLSNkZWZpbmUgSFJUSU1fQk1DUl9CTUUgICAgICAgICAgICAgICAgSFJUSU1fQk1DUl9CTUVfTXNrICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEJ1cnN0IG1vZGUgZW5iYWxlICovCisjZGVmaW5lIEhSVElNX0JNQ1JfQk1FICAgICAgICAgICAgICAgIEhSVElNX0JNQ1JfQk1FX01zayAgICAgICAgICAgICAgICAgICAgICAgLyohPCBCdXJzdCBtb2RlIGVuYWJsZSAqLwogI2RlZmluZSBIUlRJTV9CTUNSX0JNT01fUG9zICAgICAgICAgICAoMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBIUlRJTV9CTUNSX0JNT01fTXNrICAgICAgICAgICAoMHgxVUwgPDwgSFJUSU1fQk1DUl9CTU9NX1BvcykgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMDIgKi8KICNkZWZpbmUgSFJUSU1fQk1DUl9CTU9NICAgICAgICAgICAgICAgSFJUSU1fQk1DUl9CTU9NX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEJ1cnN0IG1vZGUgb3BlcmF0aW5nIG1vZGUgKi8KQEAgLTExMzk2LDcgKzExMzk5LDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICovCiAKIC8qKioqKioqKioqKioqKioqKioqKiAgQml0IGRlZmluaXRpb24gZm9yIFJDQ19DUiByZWdpc3RlciAgKioqKioqKioqKioqKioqKioqKiovCkBAIC0xMjAyNSw3ICsxMjAyOCw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qCi0qIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAqLwogI2RlZmluZSBSVENfVEFNUEVSMV9TVVBQT1JUICAvKiE8IFRBTVBFUiAxIGZlYXR1cmUgc3VwcG9ydCAqLwogI2RlZmluZSBSVENfVEFNUEVSMl9TVVBQT1JUICAvKiE8IFRBTVBFUiAyIGZlYXR1cmUgc3VwcG9ydCAqLwpAQCAtMTI2MzIsNyArMTI2MzUsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogLyogTm90ZTogTm8gc3BlY2lmaWMgbWFjcm8gZmVhdHVyZSBvbiB0aGlzIGRldmljZSAqLwogCkBAIC0xMzA4Myw3ICsxMzA4Niw3IEBACiAjZGVmaW5lIFNZU0NGR19DRkdSMl9QVkRfTE9DSyAgICAgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX1BWRF9MT0NLX01zayAgICAgLyohPCBFbmFibGVzIGFuZCBsb2NrcyB0aGUgUFZEIGNvbm5lY3Rpb24gd2l0aCBUSU14IEJyZWFrIElucHV0LCBhcyB3ZWxsIGFzIHRoZSBQVkRFIGFuZCBQTFNbMjowXSBpbiB0aGUgUFdSX0NSIHJlZ2lzdGVyICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfUG9zICAgICAgICAgICAgKDRVKSAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfTXNrICAgICAgICAgICAgKDB4MVVMIDw8IFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfUG9zKSAvKiE8IDB4MDAwMDAwMTAgKi8KLSNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUiAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSX01zayAvKiE8IERpc2FibGVzIHRoZSBhZGRkcmVzcyBwYXJpdHkgY2hlY2sgb24gUkFNICovCisjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVIgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Nc2sgLyohPCBEaXNhYmxlcyB0aGUgYWRkcmVzcyBwYXJpdHkgY2hlY2sgb24gUkFNICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFX1BvcyAgICAgICAgICAgICAgICAgKDhVKSAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFX01zayAgICAgICAgICAgICAgICAgKDB4MVVMIDw8IFNZU0NGR19DRkdSMl9TUkFNX1BFX1BvcykgLyohPCAweDAwMDAwMTAwICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFICAgICAgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfTXNrICAgICAgLyohPCBTUkFNIFBhcml0eSBlcnJvciBmbGFnICovCkBAIC0xNDM1Nyw3ICsxNDM2MCw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICovCiAKIC8qIFN1cHBvcnQgb2YgNyBiaXRzIGRhdGEgbGVuZ3RoIGZlYXR1cmUgKi8KQEAgLTE1MjcwLDggKzE1MjczLDYgQEAKICAgKiBAfQogICAqLwogCi0gIC8qKgorLyoqCiAgICogQH0KICAgKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJmMzU4eHguaCBiL0luY2x1ZGUvc3RtMzJmMzU4eHguaAppbmRleCAxM2Y1MDNlLi5kNWQyMThlIDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMyZjM1OHh4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmYzNTh4eC5oCkBAIC0xMiwxMyArMTIsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NDgsNiArNjQ3LDEwIEBACiAgIF9fSU8gdWludDMyX3QgU1I7ICAgLyohPCBXV0RHIFN0YXR1cyByZWdpc3RlciwgICAgICAgIEFkZHJlc3Mgb2Zmc2V0OiAweDA4ICovCiB9IFdXREdfVHlwZURlZjsKIAorLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfbWVtb3J5X21hcAogICAqIEB7CiAgICovCkBAIC04ODAsNyArODgzLDcgQEAKICNkZWZpbmUgQURDNV9WMV8xICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBJUCB2ZXJzaW9uICovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KICNkZWZpbmUgQURDX01VTFRJTU9ERV9TVVBQT1JUICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBmZWF0dXJlIGF2YWlsYWJsZSBvbmx5IG9uIHNwZWNpZmljIGRldmljZXM6IG11bHRpbW9kZSBhdmFpbGFibGUgb24gZGV2aWNlcyB3aXRoIHNldmVyYWwgQURDIGluc3RhbmNlcyAqLwogCkBAIC0xMDE3LDcgKzEwMjAsNyBAQAogCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX1BvcyAgICAgICAgICAgICAoNVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAoMHgxVUwgPDwgQURDX0NGR1JfQUxJR05fUG9zKSAgICAgICAgICAgIC8qITwgMHgwMDAwMDAyMCAqLwotI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25lbWVudCAqLworI2RlZmluZSBBRENfQ0ZHUl9BTElHTiAgICAgICAgICAgICAgICAgQURDX0NGR1JfQUxJR05fTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIGRhdGEgYWxpZ25tZW50ICovCiAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX1BvcyAgICAgICAgICAgICg2VSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgQURDX0NGR1JfRVhUU0VMX01zayAgICAgICAgICAgICgweEZVTCA8PCBBRENfQ0ZHUl9FWFRTRUxfUG9zKSAgICAgICAgICAgLyohPCAweDAwMDAwM0MwICovCkBAIC0yNzY5LDcgKzI3NzIsNyBAQAogI2RlZmluZSBPUEFNUDFfQ1NSX1RTVFJFRiAgICAgICAgICAgICBPUEFNUDFfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgSXQgZW5hYmxlcyB0aGUgc3dpdGNoIHRvIHB1dCBvdXQgdGhlIGludGVybmFsIHJlZmVyZW5jZSAqLwogI2RlZmluZSBPUEFNUDFfQ1NSX09VVENBTF9Qb3MgICAgICAgICAoMzBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDFfQ1NSX09VVENBTF9Nc2sgICAgICAgICAoMHgxVUwgPDwgT1BBTVAxX0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAvKiE8IDB4NDAwMDAwMDAgKi8KLSNkZWZpbmUgT1BBTVAxX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAxX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91cHV0IHN0YXR1cyBmbGFnICovCisjZGVmaW5lIE9QQU1QMV9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QMV9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXRwdXQgc3RhdHVzIGZsYWcgKi8KICNkZWZpbmUgT1BBTVAxX0NTUl9MT0NLX1BvcyAgICAgICAgICAgKDMxVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAxX0NTUl9MT0NLX01zayAgICAgICAgICAgKDB4MVVMIDw8IE9QQU1QMV9DU1JfTE9DS19Qb3MpICAgICAgICAgICAgLyohPCAweDgwMDAwMDAwICovCiAjZGVmaW5lIE9QQU1QMV9DU1JfTE9DSyAgICAgICAgICAgICAgIE9QQU1QMV9DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBsb2NrICovCkBAIC0yODMxLDcgKzI4MzQsNyBAQAogI2RlZmluZSBPUEFNUDJfQ1NSX1RTVFJFRiAgICAgICAgICAgICBPUEFNUDJfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgSXQgZW5hYmxlcyB0aGUgc3dpdGNoIHRvIHB1dCBvdXQgdGhlIGludGVybmFsIHJlZmVyZW5jZSAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTF9Qb3MgICAgICAgICAoMzBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAoMHgxVUwgPDwgT1BBTVAyX0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAvKiE8IDB4NDAwMDAwMDAgKi8KLSNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91cHV0IHN0YXR1cyBmbGFnICovCisjZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXRwdXQgc3RhdHVzIGZsYWcgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9MT0NLX1BvcyAgICAgICAgICAgKDMxVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAyX0NTUl9MT0NLX01zayAgICAgICAgICAgKDB4MVVMIDw8IE9QQU1QMl9DU1JfTE9DS19Qb3MpICAgICAgICAgICAgLyohPCAweDgwMDAwMDAwICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfTE9DSyAgICAgICAgICAgICAgIE9QQU1QMl9DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBsb2NrICovCkBAIC0yODkzLDcgKzI4OTYsNyBAQAogI2RlZmluZSBPUEFNUDNfQ1NSX1RTVFJFRiAgICAgICAgICAgICBPUEFNUDNfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgSXQgZW5hYmxlcyB0aGUgc3dpdGNoIHRvIHB1dCBvdXQgdGhlIGludGVybmFsIHJlZmVyZW5jZSAqLwogI2RlZmluZSBPUEFNUDNfQ1NSX09VVENBTF9Qb3MgICAgICAgICAoMzBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDNfQ1NSX09VVENBTF9Nc2sgICAgICAgICAoMHgxVUwgPDwgT1BBTVAzX0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAvKiE8IDB4NDAwMDAwMDAgKi8KLSNkZWZpbmUgT1BBTVAzX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVAzX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91cHV0IHN0YXR1cyBmbGFnICovCisjZGVmaW5lIE9QQU1QM19DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QM19DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXRwdXQgc3RhdHVzIGZsYWcgKi8KICNkZWZpbmUgT1BBTVAzX0NTUl9MT0NLX1BvcyAgICAgICAgICAgKDMxVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAzX0NTUl9MT0NLX01zayAgICAgICAgICAgKDB4MVVMIDw8IE9QQU1QM19DU1JfTE9DS19Qb3MpICAgICAgICAgICAgLyohPCAweDgwMDAwMDAwICovCiAjZGVmaW5lIE9QQU1QM19DU1JfTE9DSyAgICAgICAgICAgICAgIE9QQU1QM19DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBsb2NrICovCkBAIC0yOTU1LDcgKzI5NTgsNyBAQAogI2RlZmluZSBPUEFNUDRfQ1NSX1RTVFJFRiAgICAgICAgICAgICBPUEFNUDRfQ1NSX1RTVFJFRl9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgSXQgZW5hYmxlcyB0aGUgc3dpdGNoIHRvIHB1dCBvdXQgdGhlIGludGVybmFsIHJlZmVyZW5jZSAqLwogI2RlZmluZSBPUEFNUDRfQ1NSX09VVENBTF9Qb3MgICAgICAgICAoMzBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUDRfQ1NSX09VVENBTF9Nc2sgICAgICAgICAoMHgxVUwgPDwgT1BBTVA0X0NTUl9PVVRDQUxfUG9zKSAgICAgICAgICAvKiE8IDB4NDAwMDAwMDAgKi8KLSNkZWZpbmUgT1BBTVA0X0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVA0X0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91cHV0IHN0YXR1cyBmbGFnICovCisjZGVmaW5lIE9QQU1QNF9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QNF9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXRwdXQgc3RhdHVzIGZsYWcgKi8KICNkZWZpbmUgT1BBTVA0X0NTUl9MT0NLX1BvcyAgICAgICAgICAgKDMxVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVA0X0NTUl9MT0NLX01zayAgICAgICAgICAgKDB4MVVMIDw8IE9QQU1QNF9DU1JfTE9DS19Qb3MpICAgICAgICAgICAgLyohPCAweDgwMDAwMDAwICovCiAjZGVmaW5lIE9QQU1QNF9DU1JfTE9DSyAgICAgICAgICAgICAgIE9QQU1QNF9DU1JfTE9DS19Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBsb2NrICovCkBAIC0zMDE3LDcgKzMwMjAsNyBAQAogI2RlZmluZSBPUEFNUF9DU1JfVFNUUkVGICAgICAgICAgICAgIE9QQU1QX0NTUl9UU1RSRUZfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgSXQgZW5hYmxlcyB0aGUgc3dpdGNoIHRvIHB1dCBvdXQgdGhlIGludGVybmFsIHJlZmVyZW5jZSAqLwogI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMX1BvcyAgICAgICAgICgzMFUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMX01zayAgICAgICAgICgweDFVTCA8PCBPUEFNUF9DU1JfT1VUQ0FMX1BvcykgICAgICAgICAgICAvKiE8IDB4NDAwMDAwMDAgKi8KLSNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUF9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IE9QQU1QIG91cHV0IHN0YXR1cyBmbGFnICovCisjZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVBfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXRwdXQgc3RhdHVzIGZsYWcgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX0xPQ0tfUG9zICAgICAgICAgICAoMzFVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVBfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAoMHgxVUwgPDwgT1BBTVBfQ1NSX0xPQ0tfUG9zKSAgICAgICAgICAgICAgLyohPCAweDgwMDAwMDAwICovCiAjZGVmaW5lIE9QQU1QX0NTUl9MT0NLICAgICAgICAgICAgICAgT1BBTVBfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBsb2NrICovCkBAIC02NTQ4LDcgKzY1NTEsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogI2RlZmluZSBEQUNfQ0hBTk5FTDJfU1VQUE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgREFDIGZlYXR1cmUgYXZhaWxhYmxlIG9ubHkgb24gc3BlY2lmaWMgZGV2aWNlczogREFDIGNoYW5uZWwgMiBhdmFpbGFibGUgKG1heSBub3QgYmUgYXZhaWxhYmxlIG9uIGFsbCBEQUMgaW5zdGFuY2VzIERBQ3gpICovCiAKQEAgLTk3ODgsNyArOTc5MSw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qCi0qIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAqLwogI2RlZmluZSBSVENfVEFNUEVSMV9TVVBQT1JUICAvKiE8IFRBTVBFUiAxIGZlYXR1cmUgc3VwcG9ydCAqLwogI2RlZmluZSBSVENfVEFNUEVSMl9TVVBQT1JUICAvKiE8IFRBTVBFUiAyIGZlYXR1cmUgc3VwcG9ydCAqLwpAQCAtMTA0NjAsNyArMTA0NjMsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogI2RlZmluZSBTUElfSTJTX1NVUFBPUlQgICAgICAgICAgICAgICAgICAgICAgIC8qITwgSTJTIHN1cHBvcnQgKi8KICNkZWZpbmUgU1BJX0kyU19GVUxMRFVQTEVYX1NVUFBPUlQgICAgICAgICAgICAvKiE8IEkyUyBGdWxsLUR1cGxleCBzdXBwb3J0ICovCkBAIC0xMDk3Niw3ICsxMDk3OSw3IEBACiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BBUklUWV9MT0NLICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX1NSQU1fUEFSSVRZX0xPQ0tfTXNrIC8qITwgRW5hYmxlcyBhbmQgbG9ja3MgdGhlIFNSQU1fUEFSSVRZIGVycm9yIHNpZ25hbCB3aXRoIEJyZWFrIElucHV0IG9mIFRJTXggKi8KICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Qb3MgICAgICAgICAgICAoNFUpICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Nc2sgICAgICAgICAgICAoMHgxVUwgPDwgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Qb3MpIC8qITwgMHgwMDAwMDAxMCAqLwotI2RlZmluZSBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSICAgICAgICAgICAgICAgIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfTXNrIC8qITwgRGlzYWJsZXMgdGhlIGFkZGRyZXNzIHBhcml0eSBjaGVjayBvbiBSQU0gKi8KKyNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUiAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSX01zayAvKiE8IERpc2FibGVzIHRoZSBhZGRyZXNzIHBhcml0eSBjaGVjayBvbiBSQU0gKi8KICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfUG9zICAgICAgICAgICAgICAgICAoOFUpICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfTXNrICAgICAgICAgICAgICAgICAoMHgxVUwgPDwgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfUG9zKSAvKiE8IDB4MDAwMDAxMDAgKi8KICNkZWZpbmUgU1lTQ0ZHX0NGR1IyX1NSQU1fUEUgICAgICAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfU1JBTV9QRV9Nc2sgICAgICAvKiE8IFNSQU0gUGFyaXR5IGVycm9yIGZsYWcgKi8KQEAgLTExNjA5LDExICsxMTYxMiwxMSBAQAogI2RlZmluZSBUSU1fRE1BUl9ETUFCICAgICAgICAgICAgIFRJTV9ETUFSX0RNQUJfTXNrICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxETUEgcmVnaXN0ZXIgZm9yIGJ1cnN0IGFjY2Vzc2VzICovCiAKIC8qKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgVElNMTZfT1IgcmVnaXN0ZXIgICoqKioqKioqKioqKioqKioqKioqKi8KLSNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF9Qb3MgICAgICAoNlUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKLSNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF9Nc2sgICAgICAoMHgzVUwgPDwgVElNMTZfT1JfVEkxX1JNUF9Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMEMwICovCisjZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfUG9zICAgICAgKDBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCisjZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfTXNrICAgICAgKDB4M1VMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDAwMyAqLwogI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QICAgICAgICAgIFRJTTE2X09SX1RJMV9STVBfTXNrICAgICAgICAgICAgICAgICAgICAgICAgIC8qITxUSTFfUk1QWzE6MF0gYml0cyAoVElNMTYgSW5wdXQgMSByZW1hcCkgKi8KLSNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF8wICAgICAgICAoMHgxVUwgPDwgVElNMTZfT1JfVEkxX1JNUF9Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMDQwICovCi0jZGVmaW5lIFRJTTE2X09SX1RJMV9STVBfMSAgICAgICAgKDB4MlVMIDw8IFRJTTE2X09SX1RJMV9STVBfUG9zKSAgICAgICAgICAgICAgIC8qITwgMHgwMDAwMDA4MCAqLworI2RlZmluZSBUSU0xNl9PUl9USTFfUk1QXzAgICAgICAgICgweDFVTCA8PCBUSU0xNl9PUl9USTFfUk1QX1BvcykgICAgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMDEgKi8KKyNkZWZpbmUgVElNMTZfT1JfVEkxX1JNUF8xICAgICAgICAoMHgyVUwgPDwgVElNMTZfT1JfVEkxX1JNUF9Qb3MpICAgICAgICAgICAgICAgLyohPCAweDAwMDAwMDAyICovCiAKIC8qKioqKioqKioqKioqKioqKioqICBCaXQgZGVmaW5pdGlvbiBmb3IgVElNMV9PUiByZWdpc3RlciAgKioqKioqKioqKioqKioqKioqKioqLwogI2RlZmluZSBUSU0xX09SX0VUUl9STVBfUG9zICAgICAgKDBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIApAQCAtMTMyNDQsOCArMTMyNDcsNiBAQAogICAqIEB9CiAgICovCiAKLSAgLyoqCisvKioKICAgKiBAfQogICAqLwotCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zdG0zMmYzNzN4Yy5oIGIvSW5jbHVkZS9zdG0zMmYzNzN4Yy5oCmluZGV4IDRhOTVmYjUuLmI1OTBjZjEgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvc3RtMzJmMzczeGMuaAorKysgYi9JbmNsdWRlL3N0bTMyZjM3M3hjLmgKQEAgLTEyLDEzICsxMiwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTcxMyw2ICs3MTIsMTAgQEAKICAgX19JTyB1aW50MzJfdCBTUjsgICAvKiE8IFdXREcgU3RhdHVzIHJlZ2lzdGVyLCAgICAgICAgQWRkcmVzcyBvZmZzZXQ6IDB4MDggKi8KIH0gV1dER19UeXBlRGVmOwogCisvKioKKyAgKiBAfQorICAqLworCiAvKiogQGFkZHRvZ3JvdXAgUGVyaXBoZXJhbF9tZW1vcnlfbWFwCiAgICogQHsKICAgKi8KQEAgLTkxOCw3ICs5MjEsNyBAQAogI2RlZmluZSBBREMxX1YyXzUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgQURDIElQIHZlcnNpb24gKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogLyogTm90ZTogTm8gc3BlY2lmaWMgbWFjcm8gZmVhdHVyZSBvbiB0aGlzIGRldmljZSAqLwogCkBAIC01MDMwLDcgKzUwMzMsNyBAQAogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogLyoKLSAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisgKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICAqLwogI2RlZmluZSBEQUNfQ0hBTk5FTDJfU1VQUE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgREFDIGZlYXR1cmUgYXZhaWxhYmxlIG9ubHkgb24gc3BlY2lmaWMgZGV2aWNlczogREFDIGNoYW5uZWwgMiBhdmFpbGFibGUgKG1heSBub3QgYmUgYXZhaWxhYmxlIG9uIGFsbCBEQUMgaW5zdGFuY2VzIERBQ3gpICovCiAKQEAgLTgyOTUsNyArODI5OCw3IEBACiAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIC8qCi0qIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAqLwogI2RlZmluZSBSVENfVEFNUEVSMV9TVVBQT1JUICAvKiE8IFRBTVBFUiAxIGZlYXR1cmUgc3VwcG9ydCAqLwogI2RlZmluZSBSVENfVEFNUEVSMl9TVVBQT1JUICAvKiE8IFRBTVBFUiAyIGZlYXR1cmUgc3VwcG9ydCAqLwpAQCAtOTM0OSw3ICs5MzUyLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KICNkZWZpbmUgU1BJX0kyU19TVVBQT1JUICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEkyUyBzdXBwb3J0ICovCiAKQEAgLTEyMDIzLDggKzEyMDI2LDYgQEAKICAgKiBAfQogICAqLwogCi0gIC8qKgorLyoqCiAgICogQH0KICAgKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJmMzc4eHguaCBiL0luY2x1ZGUvc3RtMzJmMzc4eHguaAppbmRleCAwZGJiNDYyLi4zMDBjMTI0IDEwMDY0NAotLS0gYS9JbmNsdWRlL3N0bTMyZjM3OHh4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmYzNzh4eC5oCkBAIC0xMiwxMyArMTIsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02NzUsNiArNjc0LDEwIEBACiAgIF9fSU8gdWludDMyX3QgU1I7ICAgLyohPCBXV0RHIFN0YXR1cyByZWdpc3RlciwgICAgICAgIEFkZHJlc3Mgb2Zmc2V0OiAweDA4ICovCiB9IFdXREdfVHlwZURlZjsKIAorLyoqCisgICogQH0KKyAgKi8KKwogLyoqIEBhZGR0b2dyb3VwIFBlcmlwaGVyYWxfbWVtb3J5X21hcAogICAqIEB7CiAgICovCkBAIC04NzcsNyArODgwLDcgQEAKICNkZWZpbmUgQURDMV9WMl81ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBJUCB2ZXJzaW9uICovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KIC8qIE5vdGU6IE5vIHNwZWNpZmljIG1hY3JvIGZlYXR1cmUgb24gdGhpcyBkZXZpY2UgKi8KIApAQCAtNDk4OSw3ICs0OTkyLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KICNkZWZpbmUgREFDX0NIQU5ORUwyX1NVUFBPUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IERBQyBmZWF0dXJlIGF2YWlsYWJsZSBvbmx5IG9uIHNwZWNpZmljIGRldmljZXM6IERBQyBjaGFubmVsIDIgYXZhaWxhYmxlIChtYXkgbm90IGJlIGF2YWlsYWJsZSBvbiBhbGwgREFDIGluc3RhbmNlcyBEQUN4KSAqLwogCkBAIC04MTk2LDcgKzgxOTksNyBAQAogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKgotKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogKi8KICNkZWZpbmUgUlRDX1RBTVBFUjFfU1VQUE9SVCAgLyohPCBUQU1QRVIgMSBmZWF0dXJlIHN1cHBvcnQgKi8KICNkZWZpbmUgUlRDX1RBTVBFUjJfU1VQUE9SVCAgLyohPCBUQU1QRVIgMiBmZWF0dXJlIHN1cHBvcnQgKi8KQEAgLTkyNTAsNyArOTI1Myw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAjZGVmaW5lIFNQSV9JMlNfU1VQUE9SVCAgICAgICAgICAgICAgICAgICAgICAgLyohPCBJMlMgc3VwcG9ydCAqLwogCkBAIC0xMTc5OSw4ICsxMTgwMiw2IEBACiAgICogQH0KICAgKi8KIAotICAvKioKKy8qKgogICAqIEB9CiAgICovCi0KLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCmRpZmYgLS1naXQgYS9JbmNsdWRlL3N0bTMyZjM5OHh4LmggYi9JbmNsdWRlL3N0bTMyZjM5OHh4LmgKaW5kZXggZGM5MGE4OS4uZGJkZTgzZiAxMDA2NDQKLS0tIGEvSW5jbHVkZS9zdG0zMmYzOTh4eC5oCisrKyBiL0luY2x1ZGUvc3RtMzJmMzk4eHguaApAQCAtMTIsMTMgKzEyLDEyIEBACiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqIEBhdHRlbnRpb24KICAgKgotICAqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgotICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKyAgKiBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgorICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgICoKLSAgKiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBCU0QgMy1DbGF1c2UgbGljZW5zZSwKLSAgKiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi0gICogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotICAqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlCisgICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCisgICogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorICAqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogICAqCiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogICAqLwpAQCAtNzIzLDYgKzcyMiwxMCBAQAogICBfX0lPIHVpbnQzMl90IFNSOyAgIC8qITwgV1dERyBTdGF0dXMgcmVnaXN0ZXIsICAgICAgICBBZGRyZXNzIG9mZnNldDogMHgwOCAqLwogfSBXV0RHX1R5cGVEZWY7CiAKKy8qKgorICAqIEB9CisgICovCisKIC8qKiBAYWRkdG9ncm91cCBQZXJpcGhlcmFsX21lbW9yeV9tYXAKICAgKiBAewogICAqLwpAQCAtOTg5LDcgKzk5Miw3IEBACiAjZGVmaW5lIEFEQzVfVjFfMSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgSVAgdmVyc2lvbiAqLwogCiAvKgotICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyAqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogICovCiAjZGVmaW5lIEFEQ19NVUxUSU1PREVfU1VQUE9SVCAgICAgICAgICAgICAgICAgICAgICAgICAgLyohPCBBREMgZmVhdHVyZSBhdmFpbGFibGUgb25seSBvbiBzcGVjaWZpYyBkZXZpY2VzOiBtdWx0aW1vZGUgYXZhaWxhYmxlIG9uIGRldmljZXMgd2l0aCBzZXZlcmFsIEFEQyBpbnN0YW5jZXMgKi8KIApAQCAtMTEyNiw3ICsxMTI5LDcgQEAKIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Qb3MgICAgICAgICAgICAgKDVVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBBRENfQ0ZHUl9BTElHTl9Nc2sgICAgICAgICAgICAgKDB4MVVMIDw8IEFEQ19DRkdSX0FMSUdOX1BvcykgICAgICAgICAgICAvKiE8IDB4MDAwMDAwMjAgKi8KLSNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWduZW1lbnQgKi8KKyNkZWZpbmUgQURDX0NGR1JfQUxJR04gICAgICAgICAgICAgICAgIEFEQ19DRkdSX0FMSUdOX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEFEQyBkYXRhIGFsaWdubWVudCAqLwogCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Qb3MgICAgICAgICAgICAoNlUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIEFEQ19DRkdSX0VYVFNFTF9Nc2sgICAgICAgICAgICAoMHhGVUwgPDwgQURDX0NGR1JfRVhUU0VMX1BvcykgICAgICAgICAgIC8qITwgMHgwMDAwMDNDMCAqLwpAQCAtMjc2NSw3ICsyNzY4LDcgQEAKICNkZWZpbmUgT1BBTVAxX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVAxX0NTUl9UU1RSRUZfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVAxX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAxX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QMV9DU1JfT1VUQ0FMX1BvcykgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QMV9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QMV9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUDFfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDFfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QMV9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMV9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUDFfQ1NSX0xPQ0tfUG9zKSAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUDFfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUDFfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtMjgyNyw3ICsyODMwLDcgQEAKICNkZWZpbmUgT1BBTVAyX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVAyX0NTUl9UU1RSRUZfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAyX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QMl9DU1JfT1VUQ0FMX1BvcykgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QMl9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QMl9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUDJfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDJfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QMl9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QMl9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUDJfQ1NSX0xPQ0tfUG9zKSAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUDJfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUDJfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtMjg4OSw3ICsyODkyLDcgQEAKICNkZWZpbmUgT1BBTVAzX0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVAzX0NTUl9UU1RSRUZfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVAzX0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVAzX0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QM19DU1JfT1VUQ0FMX1BvcykgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QM19DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QM19DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUDNfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDNfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QM19DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QM19DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUDNfQ1NSX0xPQ0tfUG9zKSAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUDNfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUDNfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtMjk1MSw3ICsyOTU0LDcgQEAKICNkZWZpbmUgT1BBTVA0X0NTUl9UU1RSRUYgICAgICAgICAgICAgT1BBTVA0X0NTUl9UU1RSRUZfTXNrICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVA0X0NTUl9PVVRDQUxfUG9zICAgICAgICAgKDMwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVA0X0NTUl9PVVRDQUxfTXNrICAgICAgICAgKDB4MVVMIDw8IE9QQU1QNF9DU1JfT1VUQ0FMX1BvcykgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QNF9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QNF9DU1JfT1VUQ0FMX01zayAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUDRfQ1NSX09VVENBTCAgICAgICAgICAgICBPUEFNUDRfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QNF9DU1JfTE9DS19Qb3MgICAgICAgICAgICgzMVUpICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QNF9DU1JfTE9DS19Nc2sgICAgICAgICAgICgweDFVTCA8PCBPUEFNUDRfQ1NSX0xPQ0tfUG9zKSAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUDRfQ1NSX0xPQ0sgICAgICAgICAgICAgICBPUEFNUDRfQ1NSX0xPQ0tfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtMzAxMyw3ICszMDE2LDcgQEAKICNkZWZpbmUgT1BBTVBfQ1NSX1RTVFJFRiAgICAgICAgICAgICBPUEFNUF9DU1JfVFNUUkVGX01zayAgICAgICAgICAgICAgICAgICAgICAvKiE8IEl0IGVuYWJsZXMgdGhlIHN3aXRjaCB0byBwdXQgb3V0IHRoZSBpbnRlcm5hbCByZWZlcmVuY2UgKi8KICNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTF9Qb3MgICAgICAgICAoMzBVKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICNkZWZpbmUgT1BBTVBfQ1NSX09VVENBTF9Nc2sgICAgICAgICAoMHgxVUwgPDwgT1BBTVBfQ1NSX09VVENBTF9Qb3MpICAgICAgICAgICAgLyohPCAweDQwMDAwMDAwICovCi0jZGVmaW5lIE9QQU1QX0NTUl9PVVRDQUwgICAgICAgICAgICAgT1BBTVBfQ1NSX09VVENBTF9Nc2sgICAgICAgICAgICAgICAgICAgICAgLyohPCBPUEFNUCBvdXB1dCBzdGF0dXMgZmxhZyAqLworI2RlZmluZSBPUEFNUF9DU1JfT1VUQ0FMICAgICAgICAgICAgIE9QQU1QX0NTUl9PVVRDQUxfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgb3V0cHV0IHN0YXR1cyBmbGFnICovCiAjZGVmaW5lIE9QQU1QX0NTUl9MT0NLX1BvcyAgICAgICAgICAgKDMxVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIE9QQU1QX0NTUl9MT0NLX01zayAgICAgICAgICAgKDB4MVVMIDw8IE9QQU1QX0NTUl9MT0NLX1BvcykgICAgICAgICAgICAgIC8qITwgMHg4MDAwMDAwMCAqLwogI2RlZmluZSBPUEFNUF9DU1JfTE9DSyAgICAgICAgICAgICAgIE9QQU1QX0NTUl9MT0NLX01zayAgICAgICAgICAgICAgICAgICAgICAgIC8qITwgT1BBTVAgbG9jayAqLwpAQCAtNjU0NCw3ICs2NTQ3LDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KICNkZWZpbmUgREFDX0NIQU5ORUwyX1NVUFBPUlQgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiE8IERBQyBmZWF0dXJlIGF2YWlsYWJsZSBvbmx5IG9uIHNwZWNpZmljIGRldmljZXM6IERBQyBjaGFubmVsIDIgYXZhaWxhYmxlIChtYXkgbm90IGJlIGF2YWlsYWJsZSBvbiBhbGwgREFDIGluc3RhbmNlcyBEQUN4KSAqLwogCkBAIC04MzQwLDcgKzgzNDMsNyBAQAogI2RlZmluZSBGTUNfQkNSMV9DQlVSU1RSVyAgICAgICAgICAgRk1DX0JDUjFfQ0JVUlNUUldfTXNrICAgICAgICAgICAgICAgICAgICAgIC8qITxXcml0ZSBidXJzdCBlbmFibGUgICAgICAgICAqLwogI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU5fUG9zICAgICAgICAgKDIwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogI2RlZmluZSBGTUNfQkNSMV9DQ0xLRU5fTXNrICAgICAgICAgKDB4MVVMIDw8IEZNQ19CQ1IxX0NDTEtFTl9Qb3MpICAgICAgICAgICAgICAvKiE8IDB4MDAxMDAwMDAgKi8KLSNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOICAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAvKiE8Q29udGlub3VzIGNsb2NrIGVuYWJsZSAgICAgKi8KKyNkZWZpbmUgRk1DX0JDUjFfQ0NMS0VOICAgICAgICAgICAgIEZNQ19CQ1IxX0NDTEtFTl9Nc2sgICAgICAgICAgICAgICAgICAgICAgICAvKiE8Q29udGludW91cyBjbG9jayBlbmFibGUgICAgICovCiAKIC8qKioqKioqKioqKioqKioqKiogIEJpdCBkZWZpbml0aW9uIGZvciBGTUNfQkNSMiByZWdpc3RlciAgKioqKioqKioqKioqKioqKioqKi8KICNkZWZpbmUgRk1DX0JDUjJfTUJLRU5fUG9zICAgICAgICAgICgwVSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKQEAgLTEwNjExLDcgKzEwNjE0LDcgQEAKIC8qICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogLyoKLSogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWUpCisqIEBicmllZiBTcGVjaWZpYyBkZXZpY2UgZmVhdHVyZSBkZWZpbml0aW9ucyAgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICovCiAjZGVmaW5lIFJDQ19QTExTUkNfUFJFRElWMV9TVVBQT1JUICAvKiE8IFBSRURJViBzdXBwb3J0IHVzZWQgYXMgUExMIHNvdXJjZSBpbnB1dCAgKi8KIApAQCAtMTE0NTUsNyArMTE0NTgsNyBAQAogLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAvKgotKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZSkKKyogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zICAobm90IHByZXNlbnQgb24gYWxsIGRldmljZXMgaW4gdGhlIFNUTTMyRjMgc2VyaWVzKQogKi8KICNkZWZpbmUgUlRDX1RBTVBFUjFfU1VQUE9SVCAgLyohPCBUQU1QRVIgMSBmZWF0dXJlIHN1cHBvcnQgKi8KICNkZWZpbmUgUlRDX1RBTVBFUjJfU1VQUE9SVCAgLyohPCBUQU1QRVIgMiBmZWF0dXJlIHN1cHBvcnQgKi8KQEAgLTEyMTI3LDcgKzEyMTMwLDcgQEAKIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCiAKIC8qCi0gKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorICogQGJyaWVmIFNwZWNpZmljIGRldmljZSBmZWF0dXJlIGRlZmluaXRpb25zIChub3QgcHJlc2VudCBvbiBhbGwgZGV2aWNlcyBpbiB0aGUgU1RNMzJGMyBzZXJpZXMpCiAgKi8KICNkZWZpbmUgU1BJX0kyU19TVVBQT1JUICAgICAgICAgICAgICAgICAgICAgICAvKiE8IEkyUyBzdXBwb3J0ICovCiAjZGVmaW5lIFNQSV9JMlNfRlVMTERVUExFWF9TVVBQT1JUICAgICAgICAgICAgLyohPCBJMlMgRnVsbC1EdXBsZXggc3VwcG9ydCAqLwpAQCAtMTI2OTUsNyArMTI2OTgsNyBAQAogI2RlZmluZSBTWVNDRkdfQ0ZHUjJfU1JBTV9QQVJJVFlfTE9DSyAgICAgICAgICAgIFNZU0NGR19DRkdSMl9TUkFNX1BBUklUWV9MT0NLX01zayAvKiE8IEVuYWJsZXMgYW5kIGxvY2tzIHRoZSBTUkFNX1BBUklUWSBlcnJvciBzaWduYWwgd2l0aCBCcmVhayBJbnB1dCBvZiBUSU14ICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfUG9zICAgICAgICAgICAgKDRVKSAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfTXNrICAgICAgICAgICAgKDB4MVVMIDw8IFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVJfUG9zKSAvKiE8IDB4MDAwMDAwMTAgKi8KLSNkZWZpbmUgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUiAgICAgICAgICAgICAgICBTWVNDRkdfQ0ZHUjJfQllQX0FERFJfUEFSX01zayAvKiE8IERpc2FibGVzIHRoZSBhZGRkcmVzcyBwYXJpdHkgY2hlY2sgb24gUkFNICovCisjZGVmaW5lIFNZU0NGR19DRkdSMl9CWVBfQUREUl9QQVIgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX0JZUF9BRERSX1BBUl9Nc2sgLyohPCBEaXNhYmxlcyB0aGUgYWRkcmVzcyBwYXJpdHkgY2hlY2sgb24gUkFNICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFX1BvcyAgICAgICAgICAgICAgICAgKDhVKSAgICAgICAgICAgICAgICAgICAgICAgICAgCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFX01zayAgICAgICAgICAgICAgICAgKDB4MVVMIDw8IFNZU0NGR19DRkdSMl9TUkFNX1BFX1BvcykgLyohPCAweDAwMDAwMTAwICovCiAjZGVmaW5lIFNZU0NGR19DRkdSMl9TUkFNX1BFICAgICAgICAgICAgICAgICAgICAgU1lTQ0ZHX0NGR1IyX1NSQU1fUEVfTXNrICAgICAgLyohPCBTUkFNIFBhcml0eSBlcnJvciBmbGFnICovCkBAIC0xMzk5MSw3ICsxMzk5NCw3IEBACiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqLwogCiAvKgotKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllKQorKiBAYnJpZWYgU3BlY2lmaWMgZGV2aWNlIGZlYXR1cmUgZGVmaW5pdGlvbnMgKG5vdCBwcmVzZW50IG9uIGFsbCBkZXZpY2VzIGluIHRoZSBTVE0zMkYzIHNlcmllcykKICovCiAKIC8qIFN1cHBvcnQgb2YgNyBiaXRzIGRhdGEgbGVuZ3RoIGZlYXR1cmUgKi8KQEAgLTE1MDg3LDggKzE1MDkwLDYgQEAKICAgKiBAfQogICAqLwogCi0gIC8qKgorLyoqCiAgICogQH0KICAgKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KZGlmZiAtLWdpdCBhL0luY2x1ZGUvc3RtMzJmM3h4LmggYi9JbmNsdWRlL3N0bTMyZjN4eC5oCmluZGV4IGVjNGRjYTUuLjUzNjAxOGEgMTAwNjQ0Ci0tLSBhL0luY2x1ZGUvc3RtMzJmM3h4LmgKKysrIGIvSW5jbHVkZS9zdG0zMmYzeHguaApAQCAtOCwyMSArOCwyMCBAQAogICAqICAgICAgICAgIGlzIHVzaW5nIGluIHRoZSBDIHNvdXJjZSBjb2RlLCB1c3VhbGx5IGluIG1haW4uYy4gVGhpcyBmaWxlIGNvbnRhaW5zOgogICAqICAgICAgICAgICAtIENvbmZpZ3VyYXRpb24gc2VjdGlvbiB0aGF0IGFsbG93cyB0byBzZWxlY3Q6CiAgICogICAgICAgICAgICAgIC0gVGhlIFNUTTMyRjN4eCBkZXZpY2UgdXNlZCBpbiB0aGUgdGFyZ2V0IGFwcGxpY2F0aW9uCi0gICogICAgICAgICAgICAgIC0gVG8gdXNlIG9yIG5vdCB0aGUgcGVyaXBoZXJhbJJzIGRyaXZlcnMgaW4gYXBwbGljYXRpb24gY29kZShpLmUuIAotICAqICAgICAgICAgICAgICAgIGNvZGUgd2lsbCBiZSBiYXNlZCBvbiBkaXJlY3QgYWNjZXNzIHRvIHBlcmlwaGVyYWyScyByZWdpc3RlcnMgCisgICogICAgICAgICAgICAgIC0gVG8gdXNlIG9yIG5vdCB0aGUgcGVyaXBoZXJhbCdzIGRyaXZlcnMgaW4gYXBwbGljYXRpb24gY29kZShpLmUuIAorICAqICAgICAgICAgICAgICAgIGNvZGUgd2lsbCBiZSBiYXNlZCBvbiBkaXJlY3QgYWNjZXNzIHRvIHBlcmlwaGVyYWwncyByZWdpc3RlcnMgCiAgICogICAgICAgICAgICAgICAgcmF0aGVyIHRoYW4gZHJpdmVycyBBUEkpLCB0aGlzIG9wdGlvbiBpcyBjb250cm9sbGVkIGJ5IAogICAqICAgICAgICAgICAgICAgICIjZGVmaW5lIFVTRV9IQUxfRFJJVkVSIgogICAqICAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC0xMDMsMTEgKzEwMiwxMSBAQAogI2VuZGlmIC8qIFVTRV9IQUxfRFJJVkVSICovCiAKIC8qKgotICAqIEBicmllZiBDTVNJUyBEZXZpY2UgdmVyc2lvbiBudW1iZXIgVjIuMy42CisgICogQGJyaWVmIENNU0lTIERldmljZSB2ZXJzaW9uIG51bWJlciBWMi4zLjcKICAgKi8KICNkZWZpbmUgX19TVE0zMkYzX0NNU0lTX1ZFUlNJT05fTUFJTiAgICgweDAyKSAvKiE8IFszMToyNF0gbWFpbiB2ZXJzaW9uICovCiAjZGVmaW5lIF9fU1RNMzJGM19DTVNJU19WRVJTSU9OX1NVQjEgICAoMHgwMykgLyohPCBbMjM6MTZdIHN1YjEgdmVyc2lvbiAqLwotI2RlZmluZSBfX1NUTTMyRjNfQ01TSVNfVkVSU0lPTl9TVUIyICAgKDB4MDYpIC8qITwgWzE1OjhdICBzdWIyIHZlcnNpb24gKi8KKyNkZWZpbmUgX19TVE0zMkYzX0NNU0lTX1ZFUlNJT05fU1VCMiAgICgweDA3KSAvKiE8IFsxNTo4XSAgc3ViMiB2ZXJzaW9uICovCiAjZGVmaW5lIF9fU1RNMzJGM19DTVNJU19WRVJTSU9OX1JDICAgICAoMHgwMCkgLyohPCBbNzowXSAgcmVsZWFzZSBjYW5kaWRhdGUgKi8KICNkZWZpbmUgX19TVE0zMkYzX0NNU0lTX1ZFUlNJT04gICAgICAgICgoX19TVE0zMkYzX0NNU0lTX1ZFUlNJT05fTUFJTiAgICAgPDwgMjQpXAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfChfX1NUTTMyRjNfQ01TSVNfVkVSU0lPTl9TVUIxIDw8IDE2KVwKQEAgLTI3OSw4ICsyNzgsMyBAQAogLyoqCiAgICogQH0KICAgKi8KLSAgCi0KLQotCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLwpkaWZmIC0tZ2l0IGEvSW5jbHVkZS9zeXN0ZW1fc3RtMzJmM3h4LmggYi9JbmNsdWRlL3N5c3RlbV9zdG0zMmYzeHguaAppbmRleCAwZWFlMmI2Li40NTRhMzAyIDEwMDY0NAotLS0gYS9JbmNsdWRlL3N5c3RlbV9zdG0zMmYzeHguaAorKysgYi9JbmNsdWRlL3N5c3RlbV9zdG0zMmYzeHguaApAQCAtMiwxNyArMiwxNiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAZmlsZSAgICBzeXN0ZW1fc3RtMzJmM3h4LmgKICAgKiBAYXV0aG9yICBNQ0QgQXBwbGljYXRpb24gVGVhbQotICAqIEBicmllZiAgIENNU0lTIENvcnRleC1NNCBEZXZpY2UgU3lzdGVtIFNvdXJjZSBGaWxlIGZvciBTVE0zMkYzeHggZGV2aWNlcy4gIAotICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKKyAgKiBAYnJpZWYgICBDTVNJUyBDb3J0ZXgtTTQgRGV2aWNlIFN5c3RlbSBTb3VyY2UgRmlsZSBmb3IgU1RNMzJGM3h4IGRldmljZXMuICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC0xMDIsNSArMTAxLDQgQEAKICAgCiAvKioKICAgKiBAfQotICAqLyAgCi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworICAqLwpkaWZmIC0tZ2l0IGEvTElDRU5TRS5tZCBiL0xJQ0VOU0UubWQKaW5kZXggNzdmYTEzOC4uNDgwNmVkOSAxMDA2NDQKLS0tIGEvTElDRU5TRS5tZAorKysgYi9MSUNFTlNFLm1kCkBAIC0xODYsNyArMTg2LDcgQEAKICAgICAgIHNhbWUgInByaW50ZWQgcGFnZSIgYXMgdGhlIGNvcHlyaWdodCBub3RpY2UgZm9yIGVhc2llcgogICAgICAgaWRlbnRpZmljYXRpb24gd2l0aGluIHRoaXJkLXBhcnR5IGFyY2hpdmVzLgogCi0gICBDb3B5cmlnaHQgWzIwMTldIFtTVE1pY3JvZWxlY3Ryb25pY3NdCisgICBDb3B5cmlnaHQgMjAxNyBTVE1pY3JvZWxlY3Ryb25pY3MKIAogICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7CiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCmRpZmYgLS1naXQgYS9SRUFETUUubWQgYi9SRUFETUUubWQKaW5kZXggMzhiOWQ4Mi4uOWMzMDUyMSAxMDA2NDQKLS0tIGEvUkVBRE1FLm1kCisrKyBiL1JFQURNRS5tZApAQCAtMjcsMTQgKzI3LDcgQEAKIAogIyMgQ29tcGF0aWJpbGl0eSBpbmZvcm1hdGlvbgogCi1JbiB0aGlzIHRhYmxlLCB5b3UgY2FuIGZpbmQgdGhlIHN1Y2Nlc3NpdmUgdmVyc2lvbnMgb2YgdGhpcyBDTVNJUyBEZXZpY2UgY29tcG9uZW50LCBpbi1saW5lIHdpdGggdGhlIGNvcnJlc3BvbmRpbmcgdmVyc2lvbnMgb2YgdGhlIGZ1bGwgTUNVIHBhY2thZ2U6Ci0KLUNNU0lTIERldmljZSBGMyB8IENNU0lTIENvcmUgfCBXYXMgZGVsaXZlcmVkIGluIHRoZSBmdWxsIE1DVSBwYWNrYWdlCi0tLS0tLS0tLS0tLS0tLS0gfCAtLS0tLS0tLS0tIHwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotVGFnIHYyLjMuNCB8IFRhZyB2NS40LjBfY200IHwgVGFnIHYxLjExLjAKLVRhZyB2Mi4zLjQgfCBUYWcgdjUuNC4wX2NtNCB8IFRhZyB2MS4xMS4xCi1UYWcgdjIuMy41IHwgVGFnIHY1LjQuMF9jbTQgfCBUYWcgdjEuMTEuMgotVGFnIHYyLjMuNiB8IFRhZyB2NS40LjBfY200IHwgVGFnIHYxLjExLjMKK0l0IGlzICoqY3J1Y2lhbCoqIHRoYXQgeW91IHVzZSBhIGNvbnNpc3RlbnQgc2V0IG9mIHZlcnNpb25zIGZvciB0aGUgQ01TSVMgQ29yZSAtIENNU0lTIERldmljZSwgYXMgbWVudGlvbmVkIGluIFt0aGlzXShodHRwczovL2h0bWxwcmV2aWV3LmdpdGh1Yi5pby8/aHR0cHM6Ly9naXRodWIuY29tL1NUTWljcm9lbGVjdHJvbmljcy9TVE0zMkN1YmVGMy9ibG9iL21hc3Rlci9SZWxlYXNlX05vdGVzLmh0bWwpIHJlbGVhc2Ugbm90ZS4KIAogVGhlIGZ1bGwgKipTVE0zMkN1YmVGMyoqIE1DVSBwYWNrYWdlIGlzIGF2YWlsYWJsZSBbaGVyZV0oaHR0cHM6Ly9naXRodWIuY29tL1NUTWljcm9lbGVjdHJvbmljcy9TVE0zMkN1YmVGMykuCiAKZGlmZiAtLWdpdCBhL1JlbGVhc2VfTm90ZXMuaHRtbCBiL1JlbGVhc2VfTm90ZXMuaHRtbAppbmRleCA0ZTNmMTAxLi4xNzJhNTUxIDEwMDY0NAotLS0gYS9SZWxlYXNlX05vdGVzLmh0bWwKKysrIGIvUmVsZWFzZV9Ob3Rlcy5odG1sCkBAIC0yOSwyMSArMjksMzcgQEAKIDwvY2VudGVyPgogPC9kaXY+CiA8L2Rpdj4KLTxoMSBpZD0ibGljZW5zZSI+PHN0cm9uZz5MaWNlbnNlPC9zdHJvbmc+PC9oMT4KLVRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLCB0aGUg4oCcTGljZW5zZeKAnTsgWW91IG1heSBub3QgdXNlIHRoaXMgY29tcG9uZW50IGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTxjZW50ZXI+Ci08YSBocmVmPSJodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZSI+aHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2U8L2E+Ci08L2NlbnRlcj4KIDwvZGl2PgogPGRpdiBjbGFzcz0iY29sLXNtLTEyIGNvbC1sZy04Ij4KIDxoMSBpZD0idXBkYXRlLWhpc3RvcnkiPjxzdHJvbmc+VXBkYXRlIEhpc3Rvcnk8L3N0cm9uZz48L2gxPgogPGRpdiBjbGFzcz0iY29sbGFwc2UiPgotPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjJfM182IiBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24yXzNfNiIgYXJpYS1oaWRkZW49InRydWUiPjxzdHJvbmc+VjIuMy42IC8gMjMtSnVseS0yMDIxPC9zdHJvbmc+PC9sYWJlbD4KKzxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNvbGxhcHNlLXNlY3Rpb24yXzNfNyIgY2hlY2tlZCBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24yXzNfNyIgYXJpYS1oaWRkZW49InRydWUiPjxzdHJvbmc+VjIuMy43IC8gMjctSmFudWFyeS0yMDIzPC9zdHJvbmc+PC9sYWJlbD4KIDxkaXY+CiA8aDIgaWQ9Im1haW4tY2hhbmdlcyI+TWFpbiBDaGFuZ2VzPC9oMj4KIDx1bD4KIDxsaT5HZW5lcmFsIHVwZGF0ZQogPHVsPgorPGxpPkdlbmVyYWwgdXBkYXRlcyB0byBmaXgga25vd24gZGVmZWN0cyBhbmQgaW1wbGVtZW50YXRpb24gZW5oYW5jZW1lbnRzPC9saT4KKzxsaT5BbGwgc291cmNlIGZpbGVzOiB1cGRhdGUgZGlzY2xhaW1lciB0byBhZGQgcmVmZXJlbmNlIHRvIHRoZSBuZXcgbGljZW5zZSBhZ3JlZW1lbnQuPC9saT4KKzwvdWw+PC9saT4KKzxsaT5HQ0Mgc3RhcnQtdXAgZmlsZXMgdXBkYXRlcworPHVsPgorPGxpPkFsaWdubWVudCB3aXRoIElBUi9NREstQVJNIHN0YXJ0dXAgZmlsZXM6IFVwZGF0ZSB0byBjYWxsIFN5c3RlbUluaXQgZmlyc3QgaW4gc3RhcnR1cC9SZXNldF9IYW5kbGVyKCk8L2xpPgorPC91bD48L2xpPgorPGxpPlNUTTMyRjMwMXg4L1NUTTMyRjMwMnhDL1NUTTMyRjMwM3g4L1NUTTMyRjMxOHh4L1NUTTMyRjMyOHh4L1NUTTMyRjM1OHh4IHVwZGF0ZXMKKzx1bD4KKzxsaT5USU0xNl9PUl9USTFfUk1QIHdyb25nIGRlZmluZWQgdmFsdWU8L2xpPgorPC91bD48L2xpPgorPC91bD4KKzwvZGl2PgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+Cis8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMl8zXzYiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjJfM182IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN0cm9uZz5WMi4zLjYgLyAyMy1KdWx5LTIwMjE8L3N0cm9uZz48L2xhYmVsPgorPGRpdj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTEiPk1haW4gQ2hhbmdlczwvaDI+Cis8dWw+Cis8bGk+R2VuZXJhbCB1cGRhdGUKKzx1bD4KIDxsaT5BZGRlZCBuZXcgYXRvbWljIHJlZ2lzdGVyIGFjY2VzcyBtYWNyb3MgaW4gc3RtMzJmM3h4LmggZmlsZS48L2xpPgogPGxpPkFkZCBMU0kgbWF4aW11bSBzdGFydHVwIHRpbWUgZGF0YXNoZWV0IHZhbHVlOiBMU0lfU1RBUlRVUF9USU1FLjwvbGk+CiA8L3VsPjwvbGk+CkBAIC02MSw3ICs3Nyw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMl8zXzUiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjJfM181IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN0cm9uZz5WMi4zLjUgLyAxMC1Ob3ZlbWJlci0yMDIwPC9zdHJvbmc+PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy0xIj5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtMiI+TWFpbiBDaGFuZ2VzPC9oMj4KIDx1bD4KIDxsaT5HZW5lcmFsIHVwZGF0ZQogPHVsPgpAQCAtNzksMTEgKzk1LDExIEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMl8zXzQiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjJfM180IiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN0cm9uZz5WMi4zLjQgLyAxMi1TZXB0ZW1iZXItMjAxOTwvc3Ryb25nPjwvbGFiZWw+CiA8ZGl2PgotPGgyIGlkPSJtYWluLWNoYW5nZXMtMiI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTMiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+R2VuZXJhbCB1cGRhdGUKIDx1bD4KLTxsaT5Vc2Ug4oCYVUzigJkgdW5zaWduZWQgbG9uZyBwb3N0Zml4IGZvciBfTXNrIGRlZmluaXRpb25zIGFuZCBtb21vcnkvcGVyaXBoZXJhbCBiYXNlIGFkZHJlc3NlcyBmb3IgTUlTUkEgQyAyMDEyIENvbXBsaWFuY2U8L2xpPgorPGxpPlVzZSDigJhVTOKAmSB1bnNpZ25lZCBsb25nIHBvc3RmaXggZm9yIF9Nc2sgZGVmaW5pdGlvbnMgYW5kIG1lbW9yeS9wZXJpcGhlcmFsIGJhc2UgYWRkcmVzc2VzIGZvciBNSVNSQSBDIDIwMTIgQ29tcGxpYW5jZTwvbGk+CiA8bGk+U3lzdGVtSW5pdCgpOiB1cGRhdGUgdG8gZG9u4oCZdCByZXNldCBSQ0MgcmVnaXN0ZXJzIHRvIGl0cyByZXNldCB2YWx1ZXMuPC9saT4KIDwvdWw+PC9saT4KIDxsaT5TVE0zMkYzMzR4OCB1cGRhdGUKQEAgLTEwNCw3ICsxMjAsNyBAQAogPGRpdiBjbGFzcz0iY29sbGFwc2UiPgogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjIuMy4zIiBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24yLjMuMyIgYXJpYS1oaWRkZW49InRydWUiPjxzdHJvbmc+VjIuMy4zIC8gMTEtSnVuZS0yMDE4PC9zdHJvbmc+PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy0zIj5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtNCI+TWFpbiBDaGFuZ2VzPC9oMj4KIDx1bD4KIDxsaT5HZW5lcmFsIHVwZGF0ZQogPHVsPgpAQCAtMTIxLDcgKzEzNyw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMi4zLjIiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjIuMy4yIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN0cm9uZz5WMi4zLjIgLyAyMy1KdW5lLTIwMTc8L3N0cm9uZz48L2xhYmVsPgogPGRpdj4KLTxoMiBpZD0ibWFpbi1jaGFuZ2VzLTQiPk1haW4gQ2hhbmdlczwvaDI+Cis8aDIgaWQ9Im1haW4tY2hhbmdlcy01Ij5NYWluIENoYW5nZXM8L2gyPgogPHVsPgogPGxpPlJlbW92ZSBzdXBwb3J0IG9mIEF0b2xsaWMgVHJ1ZVNUVURJTyBTVE0zMiAoVHJ1ZVNUVURJTykgdG9vbGNoYWluLjwvbGk+CiA8bGk+RkxBU0ggdXBkYXRlcwpAQCAtMTU0LDcgKzE3MCw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMi4zLjEiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjIuMy4xIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN0cm9uZz5WMi4zLjEgLyAxNi1EZWNlbWJlci0yMDE2PC9zdHJvbmc+PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy01Ij5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtNiI+TWFpbiBDaGFuZ2VzPC9oMj4KIDx1bD4KIDxsaT5DT01QIHVwZGF0ZXMKIDx1bD4KQEAgLTE2Nyw3ICsxODMsNyBAQAogPGxpPlRJTSB1cGRhdGVzCiA8dWw+CiA8bGk+QWRkZWQgbWFjcm8gSVNfVElNX0FEVkFOQ0VEX0lOU1RBTkNFKCkgdG8gaWRlbnRpZnkgYWR2YW5jZWQgdGltZXIgaW5zdGFuY2VzPC9saT4KLTxsaT5SZW1vdmUgVElNX0NSMl9PSVMyTiwgVElNX0NSMl9PSVMzLCBUSU1fQ1IyX09JUzNOIGFuZCBUSU1fQ1IyX09JUzQgZGVmaW5pdGlvbnMgZm9yIFNUTTMyRjM3M3hDIGFuZCBTVE0zMkYzNzh4eCBkZXZpY2VzIChhbGlnbmVtZW50IHdpdGggU1RNMzJGM3h4IFJlZmVyZW5jZSBNYW51YWwpPC9saT4KKzxsaT5SZW1vdmUgVElNX0NSMl9PSVMyTiwgVElNX0NSMl9PSVMzLCBUSU1fQ1IyX09JUzNOIGFuZCBUSU1fQ1IyX09JUzQgZGVmaW5pdGlvbnMgZm9yIFNUTTMyRjM3M3hDIGFuZCBTVE0zMkYzNzh4eCBkZXZpY2VzIChhbGlnbm1lbnQgd2l0aCBTVE0zMkYzeHggUmVmZXJlbmNlIE1hbnVhbCk8L2xpPgogPC91bD48L2xpPgogPGxpPlJDQyB1cGRhdGVzCiA8dWw+CkBAIC0xNzksNyArMTk1LDcgQEAKIDwvdWw+PC9saT4KIDxsaT5VU0IgdXBkYXRlcwogPHVsPgotPGxpPmNvbXBsaWFuY3kgd2l0aCBNSVNSQSBDIDIwMDQgcnVsZXM6Cis8bGk+Y29tcGxpYW5jZSB3aXRoIE1JU1JBIEMgMjAwNCBydWxlczoKIDx1bD4KIDxsaT5NSVNSQSBDIDIwMDQgcnVsZSAxMC42ICjigJhV4oCZIHN1ZmZpeCBhcHBsaWVkIHRvIGFsbCBjb25zdGFudHMgb2Yg4oCYdW5zaWduZWTigJkgdHlwZSkuPC9saT4KIDxsaT5NSVNSQSBDIDIwMDQgcnVsZSAxMi43IChiaXR3aXNlIG9wZXJhdGlvbnMgbm90IHBlcmZvcm1lZCBvbiBzaWduZWQgaW50ZWdlciB0eXBlcykuPC9saT4KQEAgLTE5NSwxMSArMjExLDExIEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMi4zLjAiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjIuMy4wIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN0cm9uZz5WMi4zLjAgLyAyOS1BcHJpbC0yMDE2PC9zdHJvbmc+PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy02Ij5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtNyI+TWFpbiBDaGFuZ2VzPC9oMj4KIDx1bD4KIDxsaT5HZW5lcmFsIHVwZGF0ZXMKIDx1bD4KLTxsaT5VcGRhdGVkIENNU0lTIERldmljZSBjb21wbGlhbmN5IHdpdGggTUlTUkEgQyAyMDA0IHJ1bGVzOgorPGxpPlVwZGF0ZWQgQ01TSVMgRGV2aWNlIGNvbXBsaWFuY2Ugd2l0aCBNSVNSQSBDIDIwMDQgcnVsZXM6CiA8dWw+CiA8bGk+TUlTUkEgQyAyMDA0IHJ1bGUgNS4xIChiaXR3aXNlIG9wZXJhdG9ycyB+IGFuZCAmbHQ7Jmx0OykuPC9saT4KIDxsaT5NSVNSQSBDIDIwMDQgcnVsZSAxMC42ICjigJhV4oCZIHN1ZmZpeCBhcHBsaWVkIHRvIGFsbCBjb25zdGFudHMgb2Yg4oCYdW5zaWduZWTigJkgdHlwZSkuPC9saT4KQEAgLTI3NCw3ICsyOTAsNyBAQAogPGRpdiBjbGFzcz0iY29sbGFwc2UiPgogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjIuMi4wIiBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24yLjIuMCIgYXJpYS1oaWRkZW49InRydWUiPjxzdHJvbmc+VjIuMi4wIC8gMTMtTm92ZW1iZXItMjAxNTwvc3Ryb25nPjwvbGFiZWw+CiA8ZGl2PgotPGgyIGlkPSJtYWluLWNoYW5nZXMtNyI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTgiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+R2VuZXJhbCB1cGRhdGVzCiA8dWw+CkBAIC0zNDgsNyArMzY0LDcgQEAKIDxkaXYgY2xhc3M9ImNvbGxhcHNlIj4KIDxpbnB1dCB0eXBlPSJjaGVja2JveCIgaWQ9ImNvbGxhcHNlLXNlY3Rpb24yLjEuMCIgYXJpYS1oaWRkZW49InRydWUiPiA8bGFiZWwgZm9yPSJjb2xsYXBzZS1zZWN0aW9uMi4xLjAiIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3Ryb25nPlYyLjEuMCAvIDEyLVNlcHQtMjAxNDwvc3Ryb25nPjwvbGFiZWw+CiA8ZGl2PgotPGgyIGlkPSJtYWluLWNoYW5nZXMtOCI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTkiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+QWRkIHRoZSBzdXBwb3J0IG9mIHRoZSA8c3Ryb25nPlNUTTMyRjMwMnhFPC9zdHJvbmc+IGFuZCB0aGUgPHN0cm9uZz5TVE0zMkYzOTh4eDwvc3Ryb25nPiBkZXZpY2VzLjwvbGk+CiA8bGk+U1RNMzJGMzAzeEUgdXBkYXRlCkBAIC0zNTgsNyArMzc0LDcgQEAKIDxsaT5TVE0zMkYzMDJ4QyB1cGRhdGUKIDx1bD4KIDxsaT5SZW1vdmVkIERIUjEyUjIsIERIUjEyTDIsIERIUjhSMiBhbmQgRE9SMiBmcm9tIERBQyByZWdpc3RlcnMgZGVmaW5pdGlvbjwvbGk+Ci08bGk+UmVtb3ZlZCBhbGwgREFDIGNoYW5uZWwgMiByZWxhdGVkIGNvbnN0YW50IGRlZmludGlvbnM8L2xpPgorPGxpPlJlbW92ZWQgYWxsIERBQyBjaGFubmVsIDIgcmVsYXRlZCBjb25zdGFudCBkZWZpbml0aW9uczwvbGk+CiA8bGk+UmVtb3ZlZCBUSU04IHJlbGF0ZWQgY29uc3RhbnQgZGVmaW5pdGlvbnM8L2xpPgogPGxpPlJlbW92ZWQgREFDX0NIQU5ORUxfMiBmcm9tIElTX0RBQ19DSEFOTkVMX0lOU1RBTkNFKCkgbWFjcm88L2xpPgogPC91bD48L2xpPgpAQCAtMzY4LDcgKzM4NCw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMi4xLjAuUkMyIiBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24yLjEuMC5SQzIiIGFyaWEtaGlkZGVuPSJ0cnVlIj48c3Ryb25nPlYyLjEuMC5SQzIgLyAyNS1BdWctMjAxNDwvc3Ryb25nPjwvbGFiZWw+CiA8ZGl2PgotPGgyIGlkPSJtYWluLWNoYW5nZXMtOSI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTEwIj5NYWluIENoYW5nZXM8L2gyPgogPHVsPgogPGxpPkFkZCBDTVNJUyBmaWxlcyBmb3IgU1RNMzJGMzAzeEUgcHJvZHVjdHM8L2xpPgogPC91bD4KQEAgLTM3Nyw3ICszOTMsNyBAQAogPGRpdiBjbGFzcz0iY29sbGFwc2UiPgogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjIuMC4xIiBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24yLjAuMSIgYXJpYS1oaWRkZW49InRydWUiPjxzdHJvbmc+VjIuMC4xIC8gMTgtSnVuZS0yMDE0PC9zdHJvbmc+PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy0xMCI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTExIj5NYWluIENoYW5nZXM8L2gyPgogPHVsPgogPGxpPkdlbmVyYWwKIDx1bD4KQEAgLTQzNCw3ICs0NTAsNyBAQAogPGRpdiBjbGFzcz0iY29sbGFwc2UiPgogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjIuMC4wIiBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24yLjAuMCIgYXJpYS1oaWRkZW49InRydWUiPjxzdHJvbmc+VjIuMC4wIC8gMjgtTWF5LTIwMTQ8L3N0cm9uZz48L2xhYmVsPgogPGRpdj4KLTxoMiBpZD0ibWFpbi1jaGFuZ2VzLTExIj5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtMTIiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+TWFqb3IgdXBkYXRlIGJhc2VkIG9uIFNUTTMyQ3ViZSBzcGVjaWZpY2F0aW9uOiBuZXcgQ01TSVMgZGV2aWNlIGZpbGVzIHJlbGVhc2UgZGVkaWNhdGVkIHRvIDxzdHJvbmc+U1RNMzJGMzAxeDYveDgsIFNUTTMyRjMwMng2L3g4LCBTVE0zMkYzMDJ4Qi94QywgU1RNMzJGMzAzeDYveDgsIFNUTTMyRjM3M3hCL3hDLCBTVE0zMkYzMzR4NC94Ni94OCwgU1RNMzJGMzE4eHgsIFNUTTMyRjMyOHh4LCBTVE0zMkYzNTh4eCBhbmQgU1RNMzJGMzc4eHggZGV2aWNlcyAuPC9zdHJvbmc+PC9saT4KIDxsaT48c3Ryb25nPlRoaXMgdmVyc2lvbiBoYXMgdG8gYmUgdXNlZCBmb3IgU1RNMzJDdWJlRjMgYmFzZWQgZGV2ZWxvcG1lbnQgYWx0aG91Z2ggZmlsZXMgY2FuIGJlIHVzZWQgaW5kZXBlbmRlbnRseSB0b28uPC9zdHJvbmc+PC9saT4KQEAgLTQ0NCw3ICs0NjAsNyBAQAogPGRpdiBjbGFzcz0iY29sbGFwc2UiPgogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjEuMS4xIiBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24xLjEuMSIgYXJpYS1oaWRkZW49InRydWUiPjxzdHJvbmc+VjEuMS4xIC8gMjgtTWFyY2gtMjAxNDwvc3Ryb25nPjwvbGFiZWw+CiA8ZGl2PgotPGgyIGlkPSJtYWluLWNoYW5nZXMtMTIiPk1haW4gQ2hhbmdlczwvaDI+Cis8aDIgaWQ9Im1haW4tY2hhbmdlcy0xMyI+TWFpbiBDaGFuZ2VzPC9oMj4KIDx1bD4KIDxsaT5BZGQgbmV3IHN0YXJ0dXAgZmlsZXMgZm9yIHRoZSBTVE0zMkYzMDJ4OCBhbmQgU1RNMzJGMzM0eDggZGV2aWNlcyBmb3IgVHJ1ZVNUVURJTyB0b29sY2hhaW4uPC9saT4KIDxsaT5VcGRhdGUgc3RhcnR1cCBmaWxlcyBmb3IgRVdBUk0gdG9vbGNoYWluIHRvIGNvcGUgd2l0aCBjb21waWxlciBlbmhhbmNlbWVudCBvZiB0aGUgVjcuMTAgdmVyc2lvbi48L2xpPgpAQCAtNDU0LDcgKzQ3MCw3IEBACiA8ZGl2IGNsYXNzPSJjb2xsYXBzZSI+CiA8aW5wdXQgdHlwZT0iY2hlY2tib3giIGlkPSJjb2xsYXBzZS1zZWN0aW9uMS4xLjAiIGFyaWEtaGlkZGVuPSJ0cnVlIj4gPGxhYmVsIGZvcj0iY29sbGFwc2Utc2VjdGlvbjEuMS4wIiBhcmlhLWhpZGRlbj0idHJ1ZSI+PHN0cm9uZz5WMS4xLjAgLyAyNy1GZWJydWFyeS0yMDE0PC9zdHJvbmc+PC9sYWJlbD4KIDxkaXY+Ci08aDIgaWQ9Im1haW4tY2hhbmdlcy0xMyI+TWFpbiBDaGFuZ2VzPC9oMj4KKzxoMiBpZD0ibWFpbi1jaGFuZ2VzLTE0Ij5NYWluIENoYW5nZXM8L2gyPgogPHVsPgogPGxpPkFkZCB0aGUgc3VwcG9ydCBvZiB0aGUgPHN0cm9uZz5TVE0zMkYzMDJ4ODwvc3Ryb25nPiBhbmQgdGhlIDxzdHJvbmc+U1RNMzJGMzM0eDg8L3N0cm9uZz4gZGV2aWNlcy48L2xpPgogPGxpPlVwZGF0ZSBkZXZpY2VzIG5hbWVzIGRlZmluaXRpb24gdG8gYmUgaW4gbGluZSB3aXRoIHRoZSBuZXcgbmV3IFNUTTMyRjMweCBmYW1pbHkgZGV2aWNlcyBuYW1lcy4KQEAgLTQ3MCw3ICs0ODYsNyBAQAogPGxpPlVwZGF0ZSBJUlFuIGVudW0gdG8gc3VwcG9ydCB0aGUgU1RNMzJGMzAyeDggYW5kIFNUTTMyRjMzNHg4IGRldmljZXMuPC9saT4KIDxsaT5VcGRhdGUgSFNFX1NUQVJUVVBfVElNRU9VVCB2YWx1ZS48L2xpPgogPGxpPlVwZGF0ZSBIU0lfU1RBUlRVUF9USU1FT1VUIHZhbHVlLjwvbGk+Ci08bGk+QWRkIEhSVElNIHBlcmlwaGVyYWwgcmVnaXN0ZXJzIGFuZCBiaXRzIGRlZmluaXRvbnMuPC9saT4KKzxsaT5BZGQgSFJUSU0gcGVyaXBoZXJhbCByZWdpc3RlcnMgYW5kIGJpdHMgZGVmaW5pdGlvbnMuPC9saT4KIDxsaT5BZGQgQ0ZHUjMgcmVnaXN0ZXJzIGluIHRoZSBTWVNDRkdfVHlwZURlZiBzdHJ1Y3R1cmUuPC9saT4KIDxsaT5VcGRhdGUgcGVyaXBoZXJhbCBiYXNlIGFkZHJlc3NlcyB0byBzdXBwb3J0IHRoZSBhZGRlZCBwZXJpcGhlcmFsczogREFDMiwgSTJDMywgSFJUSU0uPC9saT4KIDxsaT5VcGRhdGUgQURDX1NRUjQgcmVnaXN0ZXIgYml0IGRlZmluaXRpb24uPC9saT4KQEAgLTQ4Nyw3ICs1MDMsNyBAQAogPGRpdiBjbGFzcz0iY29sbGFwc2UiPgogPGlucHV0IHR5cGU9ImNoZWNrYm94IiBpZD0iY29sbGFwc2Utc2VjdGlvbjEuMC4wIiBhcmlhLWhpZGRlbj0idHJ1ZSI+IDxsYWJlbCBmb3I9ImNvbGxhcHNlLXNlY3Rpb24xLjAuMCIgYXJpYS1oaWRkZW49InRydWUiPjxzdHJvbmc+VjEuMC4wIC8gMDQtU2VwdGVtYmVyLTIwMTI8L3N0cm9uZz48L2xhYmVsPgogPGRpdj4KLTxoMiBpZD0ibWFpbi1jaGFuZ2VzLTE0Ij5NYWluIENoYW5nZXM8L2gyPgorPGgyIGlkPSJtYWluLWNoYW5nZXMtMTUiPk1haW4gQ2hhbmdlczwvaDI+CiA8dWw+CiA8bGk+Rmlyc3Qgb2ZmaWNpYWwgcmVsZWFzZSBmb3IgPHN0cm9uZz5TVE0zMkYzMHggZGV2aWNlczwvc3Ryb25nPiAoU3RhbmRhcmQgTGlicmFyeSk8L2xpPgogPC91bD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAxeDgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAxeDgucwppbmRleCA5NzQyMDY5Li45YmUwMWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjMwMXg4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzMDF4OC5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zNDIsNSArMzQxLDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAyeDgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAyeDgucwppbmRleCAyMTc5MjhiLi4wMTU5ZDNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjMwMng4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzMDJ4OC5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zNTgsNSArMzU3LDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAyeGMucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAyeGMucwppbmRleCAyNjdiYmMyLi44OWY0ODQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjMwMnhjLnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzMDJ4Yy5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zNzQsNSArMzczLDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAyeGUucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAyeGUucwppbmRleCA3OGNjNzQ0Li5lMDQ5NzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjMwMnhlLnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzMDJ4ZS5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zOTMsNSArMzkyLDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAzeDgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAzeDgucwppbmRleCAzNjBiOGZhLi5kZjE4OTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjMwM3g4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzMDN4OC5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zNDQsNSArMzQzLDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAzeGMucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAzeGMucwppbmRleCA0ZjlmZjNmLi43ZDFhZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjMwM3hjLnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzMDN4Yy5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zOTAsNSArMzg5LDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAzeGUucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzAzeGUucwppbmRleCA2ZjE4ZTJmLi4zYmVlOWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjMwM3hlLnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzMDN4ZS5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC00MDksNSArNDA4LDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzE4eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzE4eHgucwppbmRleCA1YjYwN2ExLi43ZWIzZWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjMxOHh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzMTh4eC5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zNDAsNSArMzM5LDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzI4eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzI4eHgucwppbmRleCA3NGNhMzY0Li4zNzU4Y2IwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjMyOHh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzMjh4eC5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zNDIsNSArMzQxLDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzM0eDgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzM0eDgucwppbmRleCBmYzUyZTZiLi40ZTQwYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjMzNHg4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzMzR4OC5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zNTgsNSArMzU3LDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzU4eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzU4eHgucwppbmRleCBhYzk4MmQ0Li43NGY2YzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjM1OHh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzNTh4eC5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zODEsNSArMzgwLDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzczeGMucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzczeGMucwppbmRleCAxOGNkY2ExLi5hZDlmYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjM3M3hjLnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzNzN4Yy5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zODYsNSArMzg1LDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzc4eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzc4eHgucwppbmRleCBkZDJhYjM0Li4zYzgyMWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjM3OHh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzNzh4eC5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC0zNzgsNSArMzc3LDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzk4eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvYXJtL3N0YXJ0dXBfc3RtMzJmMzk4eHgucwppbmRleCA5MTYwY2UyLi42OTZkZjRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2FybS9zdGFydHVwX3N0bTMyZjM5OHh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9hcm0vc3RhcnR1cF9zdG0zMmYzOTh4eC5zCkBAIC0xNywxMiArMTcsMTEgQEAKIDsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCiA7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgotOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgorOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIAogOyBBbW91bnQgb2YgbWVtb3J5IChpbiBieXRlcykgYWxsb2NhdGVkIGZvciBTdGFjawogOyBUYWlsb3IgdGhpcyB2YWx1ZSB0byB5b3VyIGFwcGxpY2F0aW9uIG5lZWRzCkBAIC00MDAsNSArMzk5LDMgQEAKICAgICAgICAgICAgICAgICAgRU5ESUYKIAogICAgICAgICAgICAgICAgICBFTkQKLQotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzAxeDgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzAxeDgucwppbmRleCBlYTQ3OTMyLi5iNmJlODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjMwMXg4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMDF4OC5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02MSw2ICs2MCw5IEBACiAJLnR5cGUJUmVzZXRfSGFuZGxlciwgJWZ1bmN0aW9uCiBSZXNldF9IYW5kbGVyOgogICBsZHIgICBzcCwgPV9lc3RhY2sgICAgLyogQXRvbGxpYyB1cGRhdGU6IHNldCBzdGFjayBwb2ludGVyICovCisgIAorLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiovCisgICAgYmwgIFN5c3RlbUluaXQKIAogLyogQ29weSB0aGUgZGF0YSBzZWdtZW50IGluaXRpYWxpemVycyBmcm9tIGZsYXNoIHRvIFNSQU0gKi8KICAgbGRyIHIwLCA9X3NkYXRhCkBAIC05Myw4ICs5NSw2IEBACiAgIGNtcCByMiwgcjQKICAgYmNjIEZpbGxaZXJvYnNzCiAKLS8qIENhbGwgdGhlIGNsb2NrIHN5c3RlbSBpbnRpdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KLSAgICBibCAgU3lzdGVtSW5pdAogLyogQ2FsbCBzdGF0aWMgY29uc3RydWN0b3JzICovCiAgICAgYmwgX19saWJjX2luaXRfYXJyYXkKIC8qIENhbGwgdGhlIGFwcGxpY2F0aW9uJ3MgZW50cnkgcG9pbnQuKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzAyeDgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzAyeDgucwppbmRleCAwNmNlMDE0Li4zMjdkNDZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjMwMng4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMDJ4OC5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02MSw2ICs2MCw5IEBACiAJLnR5cGUJUmVzZXRfSGFuZGxlciwgJWZ1bmN0aW9uCiBSZXNldF9IYW5kbGVyOgogICBsZHIgICBzcCwgPV9lc3RhY2sgICAgLyogQXRvbGxpYyB1cGRhdGU6IHNldCBzdGFjayBwb2ludGVyICovCisgIAorLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiovCisgICAgYmwgIFN5c3RlbUluaXQKIAogLyogQ29weSB0aGUgZGF0YSBzZWdtZW50IGluaXRpYWxpemVycyBmcm9tIGZsYXNoIHRvIFNSQU0gKi8KICAgbGRyIHIwLCA9X3NkYXRhCkBAIC05Myw4ICs5NSw2IEBACiAgIGNtcCByMiwgcjQKICAgYmNjIEZpbGxaZXJvYnNzCiAKLS8qIENhbGwgdGhlIGNsb2NrIHN5c3RlbSBpbnRpdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KLSAgICBibCAgU3lzdGVtSW5pdAogLyogQ2FsbCBzdGF0aWMgY29uc3RydWN0b3JzICovCiAgICAgYmwgX19saWJjX2luaXRfYXJyYXkKIC8qIENhbGwgdGhlIGFwcGxpY2F0aW9uJ3MgZW50cnkgcG9pbnQuKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzAyeGMucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzAyeGMucwppbmRleCBhMTI1ODg3Li5iNTdiNTExIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjMwMnhjLnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMDJ4Yy5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02MSw2ICs2MCw5IEBACiAJLnR5cGUJUmVzZXRfSGFuZGxlciwgJWZ1bmN0aW9uCiBSZXNldF9IYW5kbGVyOgogICBsZHIgICBzcCwgPV9lc3RhY2sgICAgLyogQXRvbGxpYyB1cGRhdGU6IHNldCBzdGFjayBwb2ludGVyICovCisgIAorLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiovCisgICAgYmwgIFN5c3RlbUluaXQKIAogLyogQ29weSB0aGUgZGF0YSBzZWdtZW50IGluaXRpYWxpemVycyBmcm9tIGZsYXNoIHRvIFNSQU0gKi8KICAgbGRyIHIwLCA9X3NkYXRhCkBAIC05Myw4ICs5NSw2IEBACiAgIGNtcCByMiwgcjQKICAgYmNjIEZpbGxaZXJvYnNzCiAKLS8qIENhbGwgdGhlIGNsb2NrIHN5c3RlbSBpbnRpdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KLSAgICBibCAgU3lzdGVtSW5pdAogLyogQ2FsbCBzdGF0aWMgY29uc3RydWN0b3JzICovCiAgICAgYmwgX19saWJjX2luaXRfYXJyYXkKIC8qIENhbGwgdGhlIGFwcGxpY2F0aW9uJ3MgZW50cnkgcG9pbnQuKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzAyeGUucyBiL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzAyeGUucwppbmRleCBmM2VjODgyLi45OTY0ODlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjMwMnhlLnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMDJ4ZS5zCkBAIC0xNSwxMyArMTUsMTIgQEAKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICogQGF0dGVudGlvbgogICAqCi0gICogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi0gICogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorICAqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCisgICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAgKgotICAqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotICAqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLSAgKiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci0gICogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKyAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKyAgKiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCisgICogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiAgICoKICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgICovCkBAIC02Miw2ICs2MSw5IEBACiBSZXNldF9IYW5kbGVyOgogICBsZHIgICBzcCwgPV9lc3RhY2sgICAgLyogQXRvbGxpYyB1cGRhdGU6IHNldCBzdGFjayBwb2ludGVyICovCiAKKy8qIENhbGwgdGhlIGNsb2NrIHN5c3RlbSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbi4qLworICAgIGJsICBTeXN0ZW1Jbml0CisKIC8qIENvcHkgdGhlIGRhdGEgc2VnbWVudCBpbml0aWFsaXplcnMgZnJvbSBmbGFzaCB0byBTUkFNICovCiAgIGxkciByMCwgPV9zZGF0YQogICBsZHIgcjEsID1fZWRhdGEKQEAgLTkzLDggKzk1LDYgQEAKICAgY21wIHIyLCByNAogICBiY2MgRmlsbFplcm9ic3MKIAotLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGludGl0aWFsaXphdGlvbiBmdW5jdGlvbi4qLwotICAgIGJsICBTeXN0ZW1Jbml0CiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQogLyogQ2FsbCB0aGUgYXBwbGljYXRpb24ncyBlbnRyeSBwb2ludC4qLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMDN4OC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMDN4OC5zCmluZGV4IGRlMDBhM2QuLmE2NjQwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzAzeDgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjMwM3g4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTYxLDYgKzYwLDkgQEAKIAkudHlwZQlSZXNldF9IYW5kbGVyLCAlZnVuY3Rpb24KIFJlc2V0X0hhbmRsZXI6CiAgIGxkciAgIHNwLCA9X2VzdGFjayAgICAvKiBBdG9sbGljIHVwZGF0ZTogc2V0IHN0YWNrIHBvaW50ZXIgKi8KKyAgCisvKiBDYWxsIHRoZSBjbG9jayBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KKyAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwogICBsZHIgcjAsID1fc2RhdGEKQEAgLTkzLDggKzk1LDYgQEAKICAgY21wIHIyLCByNAogICBiY2MgRmlsbFplcm9ic3MKIAotLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGludGl0aWFsaXphdGlvbiBmdW5jdGlvbi4qLwotICAgIGJsICBTeXN0ZW1Jbml0CiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQogLyogQ2FsbCB0aGUgYXBwbGljYXRpb24ncyBlbnRyeSBwb2ludC4qLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMDN4Yy5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMDN4Yy5zCmluZGV4IDdhNmZmNmUuLmEwMDkzNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzAzeGMucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjMwM3hjLnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTYxLDYgKzYwLDkgQEAKIAkudHlwZQlSZXNldF9IYW5kbGVyLCAlZnVuY3Rpb24KIFJlc2V0X0hhbmRsZXI6CiAgIGxkciAgIHNwLCA9X2VzdGFjayAgICAvKiBBdG9sbGljIHVwZGF0ZTogc2V0IHN0YWNrIHBvaW50ZXIgKi8KKyAgCisvKiBDYWxsIHRoZSBjbG9jayBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KKyAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwogICBsZHIgcjAsID1fc2RhdGEKQEAgLTkzLDggKzk1LDYgQEAKICAgY21wIHIyLCByNAogICBiY2MgRmlsbFplcm9ic3MKIAotLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGludGl0aWFsaXphdGlvbiBmdW5jdGlvbi4qLwotICAgIGJsICBTeXN0ZW1Jbml0CiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQogLyogQ2FsbCB0aGUgYXBwbGljYXRpb24ncyBlbnRyeSBwb2ludC4qLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMDN4ZS5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMDN4ZS5zCmluZGV4IDI2ZDQxY2IuLjU1NGQzYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzAzeGUucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjMwM3hlLnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTYxLDYgKzYwLDkgQEAKIAkudHlwZQlSZXNldF9IYW5kbGVyLCAlZnVuY3Rpb24KIFJlc2V0X0hhbmRsZXI6CiAgIGxkciAgIHNwLCA9X2VzdGFjayAgICAvKiBBdG9sbGljIHVwZGF0ZTogc2V0IHN0YWNrIHBvaW50ZXIgKi8KKyAgCisvKiBDYWxsIHRoZSBjbG9jayBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KKyAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwogICBsZHIgcjAsID1fc2RhdGEKQEAgLTkzLDggKzk1LDYgQEAKICAgY21wIHIyLCByNAogICBiY2MgRmlsbFplcm9ic3MKIAotLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGludGl0aWFsaXphdGlvbiBmdW5jdGlvbi4qLwotICAgIGJsICBTeXN0ZW1Jbml0CiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQogLyogQ2FsbCB0aGUgYXBwbGljYXRpb24ncyBlbnRyeSBwb2ludC4qLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMTh4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMTh4eC5zCmluZGV4IDg3MTMyMGMuLmQ0YWMzMzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzE4eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjMxOHh4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTYxLDYgKzYwLDkgQEAKIAkudHlwZQlSZXNldF9IYW5kbGVyLCAlZnVuY3Rpb24KIFJlc2V0X0hhbmRsZXI6CiAgIGxkciAgIHNwLCA9X2VzdGFjayAgICAvKiBBdG9sbGljIHVwZGF0ZTogc2V0IHN0YWNrIHBvaW50ZXIgKi8KKyAgCisvKiBDYWxsIHRoZSBjbG9jayBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KKyAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwogICBsZHIgcjAsID1fc2RhdGEKQEAgLTkzLDggKzk1LDYgQEAKICAgY21wIHIyLCByNAogICBiY2MgRmlsbFplcm9ic3MKIAotLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGludGl0aWFsaXphdGlvbiBmdW5jdGlvbi4qLwotICAgIGJsICBTeXN0ZW1Jbml0CiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQogLyogQ2FsbCB0aGUgYXBwbGljYXRpb24ncyBlbnRyeSBwb2ludC4qLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMjh4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMjh4eC5zCmluZGV4IGFkNjBjYTMuLmQxMmUwNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzI4eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjMyOHh4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTYxLDYgKzYwLDkgQEAKIAkudHlwZQlSZXNldF9IYW5kbGVyLCAlZnVuY3Rpb24KIFJlc2V0X0hhbmRsZXI6CiAgIGxkciAgIHNwLCA9X2VzdGFjayAgICAvKiBBdG9sbGljIHVwZGF0ZTogc2V0IHN0YWNrIHBvaW50ZXIgKi8KKyAgCisvKiBDYWxsIHRoZSBjbG9jayBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KKyAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwogICBsZHIgcjAsID1fc2RhdGEKQEAgLTkzLDggKzk1LDYgQEAKICAgY21wIHIyLCByNAogICBiY2MgRmlsbFplcm9ic3MKIAotLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGludGl0aWFsaXphdGlvbiBmdW5jdGlvbi4qLwotICAgIGJsICBTeXN0ZW1Jbml0CiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQogLyogQ2FsbCB0aGUgYXBwbGljYXRpb24ncyBlbnRyeSBwb2ludC4qLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMzR4OC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzMzR4OC5zCmluZGV4IDU2YmM1NmMuLjA4NDZmMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzM0eDgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjMzNHg4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTYxLDYgKzYwLDkgQEAKIAkudHlwZQlSZXNldF9IYW5kbGVyLCAlZnVuY3Rpb24KIFJlc2V0X0hhbmRsZXI6CiAgIGxkciAgIHNwLCA9X2VzdGFjayAgICAvKiBBdG9sbGljIHVwZGF0ZTogc2V0IHN0YWNrIHBvaW50ZXIgKi8KKyAgCisvKiBDYWxsIHRoZSBjbG9jayBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KKyAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwogICBsZHIgcjAsID1fc2RhdGEKQEAgLTkzLDggKzk1LDYgQEAKICAgY21wIHIyLCByNAogICBiY2MgRmlsbFplcm9ic3MKIAotLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGludGl0aWFsaXphdGlvbiBmdW5jdGlvbi4qLwotICAgIGJsICBTeXN0ZW1Jbml0CiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQogLyogQ2FsbCB0aGUgYXBwbGljYXRpb24ncyBlbnRyeSBwb2ludC4qLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzNTh4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzNTh4eC5zCmluZGV4IGY0ZDY4ZjkuLmI4ODE3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzU4eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjM1OHh4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTYyLDYgKzYxLDkgQEAKIFJlc2V0X0hhbmRsZXI6CiAgIGxkciAgIHNwLCA9X2VzdGFjayAgICAvKiBBdG9sbGljIHVwZGF0ZTogc2V0IHN0YWNrIHBvaW50ZXIgKi8KIAorLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGluaXRpYWxpemF0aW9uIGZ1bmN0aW9uLiovCisgICAgYmwgIFN5c3RlbUluaXQKKwkKIC8qIENvcHkgdGhlIGRhdGEgc2VnbWVudCBpbml0aWFsaXplcnMgZnJvbSBmbGFzaCB0byBTUkFNICovCiAgIGxkciByMCwgPV9zZGF0YQogICBsZHIgcjEsID1fZWRhdGEKQEAgLTkzLDggKzk1LDYgQEAKICAgY21wIHIyLCByNAogICBiY2MgRmlsbFplcm9ic3MKIAotLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGludGl0aWFsaXphdGlvbiBmdW5jdGlvbi4qLwotICAgIGJsICBTeXN0ZW1Jbml0CiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQogLyogQ2FsbCB0aGUgYXBwbGljYXRpb24ncyBlbnRyeSBwb2ludC4qLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzNzN4Yy5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzNzN4Yy5zCmluZGV4IGMyZjIxMmUuLjQ2ZGVjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzczeGMucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjM3M3hjLnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTYxLDYgKzYwLDkgQEAKIAkudHlwZQlSZXNldF9IYW5kbGVyLCAlZnVuY3Rpb24KIFJlc2V0X0hhbmRsZXI6CiAgIGxkciAgIHNwLCA9X2VzdGFjayAgICAvKiBBdG9sbGljIHVwZGF0ZTogc2V0IHN0YWNrIHBvaW50ZXIgKi8KKyAgCisvKiBDYWxsIHRoZSBjbG9jayBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KKyAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwogICBsZHIgcjAsID1fc2RhdGEKQEAgLTkzLDggKzk1LDYgQEAKICAgY21wIHIyLCByNAogICBiY2MgRmlsbFplcm9ic3MKIAotLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGludGl0aWFsaXphdGlvbiBmdW5jdGlvbi4qLwotICAgIGJsICBTeXN0ZW1Jbml0CiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQogLyogQ2FsbCB0aGUgYXBwbGljYXRpb24ncyBlbnRyeSBwb2ludC4qLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzNzh4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzNzh4eC5zCmluZGV4IDBhOWNiMDYuLjAwNjA4NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzc4eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjM3OHh4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTYxLDYgKzYwLDkgQEAKIAkudHlwZQlSZXNldF9IYW5kbGVyLCAlZnVuY3Rpb24KIFJlc2V0X0hhbmRsZXI6CiAgIGxkciAgIHNwLCA9X2VzdGFjayAgICAvKiBBdG9sbGljIHVwZGF0ZTogc2V0IHN0YWNrIHBvaW50ZXIgKi8KKyAgCisvKiBDYWxsIHRoZSBjbG9jayBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KKyAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwogICBsZHIgcjAsID1fc2RhdGEKQEAgLTkzLDggKzk1LDYgQEAKICAgY21wIHIyLCByNAogICBiY2MgRmlsbFplcm9ic3MKIAotLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGludGl0aWFsaXphdGlvbiBmdW5jdGlvbi4qLwotICAgIGJsICBTeXN0ZW1Jbml0CiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQogLyogQ2FsbCB0aGUgYXBwbGljYXRpb24ncyBlbnRyeSBwb2ludC4qLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzOTh4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9nY2Mvc3RhcnR1cF9zdG0zMmYzOTh4eC5zCmluZGV4IDY4ZWMzZTEuLmNkMzdmMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvZ2NjL3N0YXJ0dXBfc3RtMzJmMzk4eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2djYy9zdGFydHVwX3N0bTMyZjM5OHh4LnMKQEAgLTE1LDEzICsxNSwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTYxLDYgKzYwLDkgQEAKIAkudHlwZQlSZXNldF9IYW5kbGVyLCAlZnVuY3Rpb24KIFJlc2V0X0hhbmRsZXI6CiAgIGxkciAgIHNwLCA9X2VzdGFjayAgICAvKiBBdG9sbGljIHVwZGF0ZTogc2V0IHN0YWNrIHBvaW50ZXIgKi8KKyAgCisvKiBDYWxsIHRoZSBjbG9jayBzeXN0ZW0gaW5pdGlhbGl6YXRpb24gZnVuY3Rpb24uKi8KKyAgICBibCAgU3lzdGVtSW5pdAogCiAvKiBDb3B5IHRoZSBkYXRhIHNlZ21lbnQgaW5pdGlhbGl6ZXJzIGZyb20gZmxhc2ggdG8gU1JBTSAqLwogICBsZHIgcjAsID1fc2RhdGEKQEAgLTkzLDggKzk1LDYgQEAKICAgY21wIHIyLCByNAogICBiY2MgRmlsbFplcm9ic3MKIAotLyogQ2FsbCB0aGUgY2xvY2sgc3lzdGVtIGludGl0aWFsaXphdGlvbiBmdW5jdGlvbi4qLwotICAgIGJsICBTeXN0ZW1Jbml0CiAvKiBDYWxsIHN0YXRpYyBjb25zdHJ1Y3RvcnMgKi8KICAgICBibCBfX2xpYmNfaW5pdF9hcnJheQogLyogQ2FsbCB0aGUgYXBwbGljYXRpb24ncyBlbnRyeSBwb2ludC4qLwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMDF4OC5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMDF4OC5zCmluZGV4IGVhZjQxMzQuLjIyNWUyOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzAxeDgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMwMXg4LnMKQEAgLTE0LDEzICsxNCwxMiBAQAogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKQEAgLTQyNCw0ICs0MjMsNCBAQAogICAgICAgICBCIEZQVV9JUlFIYW5kbGVyCiAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMwMng4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMwMng4LnMKaW5kZXggZDViNDllMi4uOGRhMGNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMDJ4OC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzAyeDgucwpAQCAtMTQsMTMgKzE0LDEyIEBACiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KIDsqCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwpAQCAtNDY0LDQgKzQ2Myw0IEBACiAgICAgICAgIEIgRlBVX0lSUUhhbmRsZXIKIAogICAgICAgICBFTkQKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzAyeGMucyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzAyeGMucwppbmRleCA0NDVkMzEwLi4zMjA1MmIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMwMnhjLnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMDJ4Yy5zCkBAIC0xNCwxMyArMTQsMTIgQEAKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBCU0QgMy1DbGF1c2UgbGljZW5zZSwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogOyoKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7CkBAIC01MDQsNCArNTAzLDQgQEAKICAgICAgICAgQiBGUFVfSVJRSGFuZGxlcgogCiAgICAgICAgIEVORAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMDJ4ZS5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMDJ4ZS5zCmluZGV4IGJiZDQ1ZTAuLjY1ZTI3NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzAyeGUucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMwMnhlLnMKQEAgLTE1LDEzICsxNSwxMiBAQAogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKQEAgLTU0OCw0ICs1NDcsNCBAQAogICAgICAgICBCIFNQSTRfSVJRSGFuZGxlcgogICAgICAgICAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMwM3g4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMwM3g4LnMKaW5kZXggNzZlMTVmNi4uYjBjNTFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMDN4OC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzAzeDgucwpAQCAtMTQsMTMgKzE0LDEyIEBACiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KIDsqCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwpAQCAtNDI5LDQgKzQyOCw0IEBACiAgICAgICAgIEIgRlBVX0lSUUhhbmRsZXIKIAogICAgICAgICBFTkQKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzAzeGMucyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzAzeGMucwppbmRleCA5NTc5ODk2Li5jYzlhZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMwM3hjLnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMDN4Yy5zCkBAIC0xNCwxMyArMTQsMTIgQEAKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBCU0QgMy1DbGF1c2UgbGljZW5zZSwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogOyoKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7CkBAIC01NDUsNCArNTQ0LDQgQEAKICAgICAgICAgQiBGUFVfSVJRSGFuZGxlcgogCiAgICAgICAgIEVORAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMDN4ZS5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMDN4ZS5zCmluZGV4IGQ4NjYxMTIuLmZjN2U5YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzAzeGUucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMwM3hlLnMKQEAgLTE1LDEzICsxNSwxMiBAQAogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKQEAgLTU4OSw0ICs1ODgsNCBAQAogICAgICAgICBCIFNQSTRfSVJRSGFuZGxlcgogICAgICAgICAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMxOHh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMxOHh4LnMKaW5kZXggYWJhMzdkMC4uMjlhM2NkMyAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMTh4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzE4eHgucwpAQCAtMTQsMTMgKzE0LDEyIEBACiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KIDsqCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwpAQCAtNDE5LDQgKzQxOCw0IEBACiAgICAgICAgIEIgRlBVX0lSUUhhbmRsZXIKIAogICAgICAgICBFTkQKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzI4eHgucyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzI4eHgucwppbmRleCBiYTgxNTFlLi4zOWYzZTYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMyOHh4LnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMjh4eC5zCkBAIC0xNCwxMyArMTQsMTIgQEAKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBCU0QgMy1DbGF1c2UgbGljZW5zZSwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogOyoKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7CkBAIC00MjQsNCArNDIzLDQgQEAKICAgICAgICAgQiBGUFVfSVJRSGFuZGxlcgogCiAgICAgICAgIEVORAotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMzR4OC5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzMzR4OC5zCmluZGV4IDU4YjcwYTguLjgzNTE4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzM0eDgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjMzNHg4LnMKQEAgLTE0LDEzICsxNCwxMiBAQAogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKQEAgLTQ2NCw0ICs0NjMsNCBAQAogICAgICAgICBCIEZQVV9JUlFIYW5kbGVyCiAKICAgICAgICAgRU5ECi0vKioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqLworCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjM1OHh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjM1OHh4LnMKaW5kZXggYjY3NjgzYS4uOTBmYTU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzNTh4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzU4eHgucwpAQCAtMTQsMTMgKzE0LDEyIEBACiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KIDsqCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwpAQCAtNTIwLDQgKzUxOSw0IEBACiAgICAgICAgIEIgRlBVX0lSUUhhbmRsZXIKIAogICAgICAgICBFTkQKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzczeGMucyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzczeGMucwppbmRleCAzMjk2Yjk1Li4yZWJmNjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjM3M3hjLnMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzNzN4Yy5zCkBAIC0xNCwxMyArMTQsMTIgQEAKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7KiBAYXR0ZW50aW9uCiA7KgotOyogPGgyPjxjZW50ZXI+JmNvcHk7IENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCi07KiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+Cis7KiBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgorOyogQWxsIHJpZ2h0cyByZXNlcnZlZC4KIDsqCi07KiBUaGlzIHNvZnR3YXJlIGNvbXBvbmVudCBpcyBsaWNlbnNlZCBieSBTVCB1bmRlciBCU0QgMy1DbGF1c2UgbGljZW5zZSwKLTsqIHRoZSAiTGljZW5zZSI7IFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUKLTsqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLTsqICAgICAgICAgICAgICAgICAgICAgICAgb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvQlNELTMtQ2xhdXNlCis7KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIHVuZGVyIHRlcm1zIHRoYXQgY2FuIGJlIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUKKzsqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKzsqIElmIG5vIExJQ0VOU0UgZmlsZSBjb21lcyB3aXRoIHRoaXMgc29mdHdhcmUsIGl0IGlzIHByb3ZpZGVkIEFTLUlTLgogOyoKIDsqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCiA7CkBAIC01MzQsNCArNTMzLDQgQEAKICAgICAgICAgQiBGUFVfSVJRSGFuZGxlcgogCiAgICAgICAgIEVORAotOyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKioKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzNzh4eC5zIGIvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzNzh4eC5zCmluZGV4IGU0ODQ2NTEuLmZkZTBkYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzc4eHgucworKysgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjM3OHh4LnMKQEAgLTE0LDEzICsxNCwxMiBAQAogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsqIEBhdHRlbnRpb24KIDsqCi07KiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLTsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9jZW50ZXI+PC9oMj4KKzsqIENvcHlyaWdodCAoYykgMjAxNiBTVE1pY3JvZWxlY3Ryb25pY3MuCis7KiBBbGwgcmlnaHRzIHJlc2VydmVkLgogOyoKLTsqIFRoaXMgc29mdHdhcmUgY29tcG9uZW50IGlzIGxpY2Vuc2VkIGJ5IFNUIHVuZGVyIEJTRCAzLUNsYXVzZSBsaWNlbnNlLAotOyogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotOyogTGljZW5zZS4gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0OgotOyogICAgICAgICAgICAgICAgICAgICAgICBvcGVuc291cmNlLm9yZy9saWNlbnNlcy9CU0QtMy1DbGF1c2UKKzsqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorOyogaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc29mdHdhcmUgY29tcG9uZW50LgorOyogSWYgbm8gTElDRU5TRSBmaWxlIGNvbWVzIHdpdGggdGhpcyBzb2Z0d2FyZSwgaXQgaXMgcHJvdmlkZWQgQVMtSVMuCiA7KgogOyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKIDsKQEAgLTUxNCw0ICs1MTMsNCBAQAogICAgICAgICBCIEZQVV9JUlFIYW5kbGVyCiAKICAgICAgICAgRU5ECi07KioqKioqKioqKioqKioqKioqKioqKioqIChDKSBDT1BZUklHSFQgU1RNaWNyb2VsZWN0cm9uaWNzICoqKioqRU5EIE9GIEZJTEUqKioqKgorCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjM5OHh4LnMgYi9Tb3VyY2UvVGVtcGxhdGVzL2lhci9zdGFydHVwX3N0bTMyZjM5OHh4LnMKaW5kZXggMWRkMTY3MS4uZDllNjMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9pYXIvc3RhcnR1cF9zdG0zMmYzOTh4eC5zCisrKyBiL1NvdXJjZS9UZW1wbGF0ZXMvaWFyL3N0YXJ0dXBfc3RtMzJmMzk4eHgucwpAQCAtMTUsMTMgKzE1LDEyIEBACiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOyogQGF0dGVudGlvbgogOyoKLTsqIDxoMj48Y2VudGVyPiZjb3B5OyBDb3B5cmlnaHQgKGMpIDIwMTYgU1RNaWNyb2VsZWN0cm9uaWNzLgotOyogQWxsIHJpZ2h0cyByZXNlcnZlZC48L2NlbnRlcj48L2gyPgorOyogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKzsqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiA7KgotOyogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi07KiB0aGUgIkxpY2Vuc2UiOyBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlCi07KiBMaWNlbnNlLiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQ6Ci07KiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorOyogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCB1bmRlciB0ZXJtcyB0aGF0IGNhbiBiZSBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlCis7KiBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb2Z0d2FyZSBjb21wb25lbnQuCis7KiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KIDsqCiA7KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKgogOwpAQCAtNTY0LDQgKzU2Myw0IEBACiAgICAgICAgIEIgU1BJNF9JUlFIYW5kbGVyCiAgICAgICAgIAogICAgICAgICBFTkQKLS8qKioqKioqKioqKioqKioqKioqKioqKiogKEMpIENPUFlSSUdIVCBTVE1pY3JvZWxlY3Ryb25pY3MgKioqKipFTkQgT0YgRklMRSoqKiovCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9UZW1wbGF0ZXMvc3lzdGVtX3N0bTMyZjN4eC5jIGIvU291cmNlL1RlbXBsYXRlcy9zeXN0ZW1fc3RtMzJmM3h4LmMKaW5kZXggMTJjN2Q3MS4uMjdkOTM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1RlbXBsYXRlcy9zeXN0ZW1fc3RtMzJmM3h4LmMKKysrIGIvU291cmNlL1RlbXBsYXRlcy9zeXN0ZW1fc3RtMzJmM3h4LmMKQEAgLTQ0LDEzICs0NCwxMiBAQAogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKiBAYXR0ZW50aW9uCiAgICoKLSAgKiA8aDI+PGNlbnRlcj4mY29weTsgQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KLSAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvY2VudGVyPjwvaDI+CisgICogQ29weXJpZ2h0IChjKSAyMDE2IFNUTWljcm9lbGVjdHJvbmljcy4KKyAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICAqCi0gICogVGhpcyBzb2Z0d2FyZSBjb21wb25lbnQgaXMgbGljZW5zZWQgYnkgU1QgdW5kZXIgQlNEIDMtQ2xhdXNlIGxpY2Vuc2UsCi0gICogdGhlICJMaWNlbnNlIjsgWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZQotICAqIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdDoKLSAgKiAgICAgICAgICAgICAgICAgICAgICAgIG9wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL0JTRC0zLUNsYXVzZQorICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGVybXMgdGhhdCBjYW4gYmUgZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZQorICAqIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvZnR3YXJlIGNvbXBvbmVudC4KKyAgKiBJZiBubyBMSUNFTlNFIGZpbGUgY29tZXMgd2l0aCB0aGlzIHNvZnR3YXJlLCBpdCBpcyBwcm92aWRlZCBBUy1JUy4KICAgKgogICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKICAgKi8KQEAgLTI4Niw2ICsyODUsMyBAQAogLyoqCiAgICogQH0KICAgKi8KLQotLyoqKioqKioqKioqKioqKioqKioqKioqKiAoQykgQ09QWVJJR0hUIFNUTWljcm9lbGVjdHJvbmljcyAqKioqKkVORCBPRiBGSUxFKioqKi8KLQpkaWZmIC0tZ2l0IGEvX2h0bXJlc2MvZmF2aWNvbi5wbmcgYi9faHRtcmVzYy9mYXZpY29uLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wNjcxM2VlCi0tLSAvZGV2L251bGwKKysrIGIvX2h0bXJlc2MvZmF2aWNvbi5wbmcKQmluYXJ5IGZpbGVzIGRpZmZlcgpkaWZmIC0tZ2l0IGEvX2h0bXJlc2MvbWluaS1zdC5jc3MgYi9faHRtcmVzYy9taW5pLXN0LmNzcwppbmRleCA3MWZiYzE0Li5lYjQxZDU2IDEwMDY0NAotLS0gYS9faHRtcmVzYy9taW5pLXN0LmNzcworKysgYi9faHRtcmVzYy9taW5pLXN0LmNzcwpAQCAtMTQ2Myw3ICsxNDYzLDcgQEAKIC8qCiAgIERlZmluaXRpb25zIGZvciBwcm9ncmVzcyBlbGVtZW50cyBhbmQgc3Bpbm5lcnMuCiAqLwotLyogUHJvZ2VzcyBtb2R1bGUgQ1NTIHZhcmlhYmxlIGRlZmluaXRpb25zICovCisvKiBQcm9ncmVzcyBtb2R1bGUgQ1NTIHZhcmlhYmxlIGRlZmluaXRpb25zICovCiA6cm9vdCB7CiAgIC0tcHJvZ3Jlc3MtYmFjay1jb2xvcjogI2RkZDsKICAgLS1wcm9ncmVzcy1mb3JlLWNvbG9yOiAjNTU1OyB9CmRpZmYgLS1naXQgYS9faHRtcmVzYy9taW5pLXN0XzIwMjAuY3NzIGIvX2h0bXJlc2MvbWluaS1zdF8yMDIwLmNzcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45ODZmNGQ0Ci0tLSAvZGV2L251bGwKKysrIGIvX2h0bXJlc2MvbWluaS1zdF8yMDIwLmNzcwpAQCAtMCwwICsxLDE3MTEgQEAKK0BjaGFyc2V0ICJVVEYtOCI7CisvKgorICBGbGF2b3IgbmFtZTogQ3VzdG9tIChtaW5pLWN1c3RvbSkKKyAgR2VuZXJhdGVkIG9ubGluZSAtIGh0dHBzOi8vbWluaWNzcy5vcmcvZmxhdm9ycworICBtaW5pLmNzcyB2ZXJzaW9uOiB2My4wLjEKKyovCisvKgorICBCcm93c2VycyByZXNldHMgYW5kIGJhc2UgdHlwb2dyYXBoeS4KKyovCisvKiBDb3JlIG1vZHVsZSBDU1MgdmFyaWFibGUgZGVmaW5pdGlvbnMgKi8KKzpyb290IHsKKyAgLS1mb3JlLWNvbG9yOiAjMDMyMzRiOworICAtLXNlY29uZGFyeS1mb3JlLWNvbG9yOiAjMDMyMzRiOworICAtLWJhY2stY29sb3I6ICNmZmZmZmY7CisgIC0tc2Vjb25kYXJ5LWJhY2stY29sb3I6ICNmZmZmZmY7CisgIC0tYmxvY2txdW90ZS1jb2xvcjogI2U2MDA3ZTsKKyAgLS1wcmUtY29sb3I6ICNlNjAwN2U7CisgIC0tYm9yZGVyLWNvbG9yOiAjM2NiNGU2OworICAtLXNlY29uZGFyeS1ib3JkZXItY29sb3I6ICMzY2I0ZTY7CisgIC0taGVhZGluZy1yYXRpbzogMS4yOworICAtLXVuaXZlcnNhbC1tYXJnaW46IDAuNXJlbTsKKyAgLS11bml2ZXJzYWwtcGFkZGluZzogMC4yNXJlbTsKKyAgLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1czogMC4wNzVyZW07CisgIC0tYmFja2dyb3VuZC1tYXJnaW46IDEuNSU7CisgIC0tYS1saW5rLWNvbG9yOiAjM2NiNGU2OworICAtLWEtdmlzaXRlZC1jb2xvcjogIzhjMDA3ODsgfQorCitodG1sIHsKKyAgZm9udC1zaXplOiAxMy41cHg7IH0KKworYSwgYiwgZGVsLCBlbSwgaSwgaW5zLCBxLCBzcGFuLCBzdHJvbmcsIHUgeworICBmb250LXNpemU6IDFlbTsgfQorCitodG1sLCAqIHsKKyAgZm9udC1mYW1pbHk6IC1hcHBsZS1zeXN0ZW0sIEJsaW5rTWFjU3lzdGVtRm9udCwgSGVsdmV0aWNhLCBhcmlhbCwgc2Fucy1zZXJpZjsKKyAgbGluZS1oZWlnaHQ6IDEuMjU7CisgIC13ZWJraXQtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgfQorCisqIHsKKyAgZm9udC1zaXplOiAxcmVtOyB9CisKK2JvZHkgeworICBtYXJnaW46IDA7CisgIGNvbG9yOiB2YXIoLS1mb3JlLWNvbG9yKTsKKyAgQGJhY2tncm91bmQ6IHZhcigtLWJhY2stY29sb3IpOworICBiYWNrZ3JvdW5kOiB2YXIoLS1iYWNrLWNvbG9yKSBsaW5lYXItZ3JhZGllbnQoI2ZmZDIwMCwgI2ZmZDIwMCkgcmVwZWF0LXkgbGVmdCB0b3A7CisgIGJhY2tncm91bmQtc2l6ZTogdmFyKC0tYmFja2dyb3VuZC1tYXJnaW4pOworICB9CisKK2RldGFpbHMgeworICBkaXNwbGF5OiBibG9jazsgfQorCitzdW1tYXJ5IHsKKyAgZGlzcGxheTogbGlzdC1pdGVtOyB9CisKK2FiYnJbdGl0bGVdIHsKKyAgYm9yZGVyLWJvdHRvbTogbm9uZTsKKyAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmUgZG90dGVkOyB9CisKK2lucHV0IHsKKyAgb3ZlcmZsb3c6IHZpc2libGU7IH0KKworaW1nIHsKKyAgbWF4LXdpZHRoOiAxMDAlOworICBoZWlnaHQ6IGF1dG87IH0KKworaDEsIGgyLCBoMywgaDQsIGg1LCBoNiB7CisgIGxpbmUtaGVpZ2h0OiAxLjI1OworICBtYXJnaW46IGNhbGMoMS41ICogdmFyKC0tdW5pdmVyc2FsLW1hcmdpbikpIHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pOworICBmb250LXdlaWdodDogNDAwOyB9CisgIGgxIHNtYWxsLCBoMiBzbWFsbCwgaDMgc21hbGwsIGg0IHNtYWxsLCBoNSBzbWFsbCwgaDYgc21hbGwgeworICAgIGNvbG9yOiB2YXIoLS1zZWNvbmRhcnktZm9yZS1jb2xvcik7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgbWFyZ2luLXRvcDogLTAuMjVyZW07IH0KKworaDEgeworICBmb250LXNpemU6IGNhbGMoMXJlbSAqIHZhcigtLWhlYWRpbmctcmF0aW8pICogdmFyKC0taGVhZGluZy1yYXRpbykgKiB2YXIoLS1oZWFkaW5nLXJhdGlvKSk7IH0KKworaDIgeworICBmb250LXNpemU6IGNhbGMoMXJlbSAqIHZhcigtLWhlYWRpbmctcmF0aW8pICogdmFyKC0taGVhZGluZy1yYXRpbykgKTsKKyAgYm9yZGVyLXN0eWxlOiBub25lIG5vbmUgc29saWQgbm9uZSA7IAorICBib3JkZXItd2lkdGg6IHRoaW47CisgIGJvcmRlci1jb2xvcjogdmFyKC0tYm9yZGVyLWNvbG9yKTsgfQoraDMgeworICBmb250LXNpemU6IGNhbGMoMXJlbSAqIHZhcigtLWhlYWRpbmctcmF0aW8pICk7IH0KKworaDQgeworICBmb250LXNpemU6IGNhbGMoMXJlbSAqIHZhcigtLWhlYWRpbmctcmF0aW8pKTsgfQorCitoNSB7CisgIGZvbnQtc2l6ZTogMXJlbTsgfQorCitoNiB7CisgIGZvbnQtc2l6ZTogY2FsYygxcmVtIC8gdmFyKC0taGVhZGluZy1yYXRpbykpOyB9CisKK3AgeworICBtYXJnaW46IHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pOyB9CisKK29sLCB1bCB7CisgIG1hcmdpbjogdmFyKC0tdW5pdmVyc2FsLW1hcmdpbik7CisgIHBhZGRpbmctbGVmdDogY2FsYygzICogdmFyKC0tdW5pdmVyc2FsLW1hcmdpbikpOyB9CisKK2IsIHN0cm9uZyB7CisgIGZvbnQtd2VpZ2h0OiA3MDA7IH0KKworaHIgeworICBib3gtc2l6aW5nOiBjb250ZW50LWJveDsKKyAgYm9yZGVyOiAwOworICBsaW5lLWhlaWdodDogMS4yNWVtOworICBtYXJnaW46IHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pOworICBoZWlnaHQ6IDAuMDcxNDI4NTcxNHJlbTsKKyAgYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB0cmFuc3BhcmVudCwgdmFyKC0tYm9yZGVyLWNvbG9yKSAyMCUsIHZhcigtLWJvcmRlci1jb2xvcikgODAlLCB0cmFuc3BhcmVudCk7IH0KKworYmxvY2txdW90ZSB7CisgIGRpc3BsYXk6IGJsb2NrOworICBwb3NpdGlvbjogcmVsYXRpdmU7CisgIGZvbnQtc3R5bGU6IGl0YWxpYzsKKyAgY29sb3I6IHZhcigtLXNlY29uZGFyeS1mb3JlLWNvbG9yKTsKKyAgbWFyZ2luOiB2YXIoLS11bml2ZXJzYWwtbWFyZ2luKTsKKyAgcGFkZGluZzogY2FsYygzICogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpKTsKKyAgYm9yZGVyOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tc2Vjb25kYXJ5LWJvcmRlci1jb2xvcik7CisgIGJvcmRlci1sZWZ0OiAwLjNyZW0gc29saWQgdmFyKC0tYmxvY2txdW90ZS1jb2xvcik7CisgIGJvcmRlci1yYWRpdXM6IDAgdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpIHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKSAwOyB9CisgIGJsb2NrcXVvdGU6YmVmb3JlIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgdG9wOiBjYWxjKDByZW0gLSB2YXIoLS11bml2ZXJzYWwtcGFkZGluZykpOworICAgIGxlZnQ6IDA7CisgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CisgICAgZm9udC1zaXplOiAycmVtOworICAgIGZvbnQtd2VpZ2h0OiA4MDA7CisgICAgY29udGVudDogIlwyMDFjIjsKKyAgICBjb2xvcjogdmFyKC0tYmxvY2txdW90ZS1jb2xvcik7IH0KKyAgYmxvY2txdW90ZVtjaXRlXTphZnRlciB7CisgICAgZm9udC1zdHlsZTogbm9ybWFsOworICAgIGZvbnQtc2l6ZTogMC43NWVtOworICAgIGZvbnQtd2VpZ2h0OiA3MDA7CisgICAgY29udGVudDogIlxh4oCUICAiIGF0dHIoY2l0ZSk7CisgICAgd2hpdGUtc3BhY2U6IHByZTsgfQorCitjb2RlLCBrYmQsIHByZSwgc2FtcCB7CisgIGZvbnQtZmFtaWx5OiBNZW5sbywgQ29uc29sYXMsIG1vbm9zcGFjZTsKKyAgZm9udC1zaXplOiAwLjg1ZW07IH0KKworY29kZSB7CisgIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1iYWNrLWNvbG9yKTsKKyAgYm9yZGVyLXJhZGl1czogdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpOworICBwYWRkaW5nOiBjYWxjKHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSAvIDQpIGNhbGModmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIC8gMik7IH0KKwora2JkIHsKKyAgYmFja2dyb3VuZDogdmFyKC0tZm9yZS1jb2xvcik7CisgIGNvbG9yOiB2YXIoLS1iYWNrLWNvbG9yKTsKKyAgYm9yZGVyLXJhZGl1czogdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpOworICBwYWRkaW5nOiBjYWxjKHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSAvIDQpIGNhbGModmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIC8gMik7IH0KKworcHJlIHsKKyAgb3ZlcmZsb3c6IGF1dG87CisgIGJhY2tncm91bmQ6IHZhcigtLXNlY29uZGFyeS1iYWNrLWNvbG9yKTsKKyAgcGFkZGluZzogY2FsYygxLjUgKiB2YXIoLS11bml2ZXJzYWwtcGFkZGluZykpOworICBtYXJnaW46IHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pOworICBib3JkZXI6IDAuMDcxNDI4NTcxNHJlbSBzb2xpZCB2YXIoLS1zZWNvbmRhcnktYm9yZGVyLWNvbG9yKTsKKyAgYm9yZGVyLWxlZnQ6IDAuMjg1NzE0Mjg1N3JlbSBzb2xpZCB2YXIoLS1wcmUtY29sb3IpOworICBib3JkZXItcmFkaXVzOiAwIHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKSB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cykgMDsgfQorCitzdXAsIHN1YiwgY29kZSwga2JkIHsKKyAgbGluZS1oZWlnaHQ6IDA7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOyB9CisKK3NtYWxsLCBzdXAsIHN1YiwgZmlnY2FwdGlvbiB7CisgIGZvbnQtc2l6ZTogMC43NWVtOyB9CisKK3N1cCB7CisgIHRvcDogLTAuNWVtOyB9CisKK3N1YiB7CisgIGJvdHRvbTogLTAuMjVlbTsgfQorCitmaWd1cmUgeworICBtYXJnaW46IHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pOyB9CisKK2ZpZ2NhcHRpb24geworICBjb2xvcjogdmFyKC0tc2Vjb25kYXJ5LWZvcmUtY29sb3IpOyB9CisKK2EgeworICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KKyAgYTpsaW5rIHsKKyAgICBjb2xvcjogdmFyKC0tYS1saW5rLWNvbG9yKTsgfQorICBhOnZpc2l0ZWQgeworICAgIGNvbG9yOiB2YXIoLS1hLXZpc2l0ZWQtY29sb3IpOyB9CisgIGE6aG92ZXIsIGE6Zm9jdXMgeworICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lOyB9CisKKy8qCisgIERlZmluaXRpb25zIGZvciB0aGUgZ3JpZCBzeXN0ZW0sIGNhcmRzIGFuZCBjb250YWluZXJzLgorKi8KKy5jb250YWluZXIgeworICBtYXJnaW46IDAgYXV0bzsKKyAgcGFkZGluZzogMCBjYWxjKDEuNSAqIHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSk7IH0KKworLnJvdyB7CisgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgIGRpc3BsYXk6IGZsZXg7CisgIGZsZXg6IDAgMSBhdXRvOworICBmbGV4LWZsb3c6IHJvdyB3cmFwOworICBtYXJnaW46IDAgMCAwIHZhcigtLWJhY2tncm91bmQtbWFyZ2luKTsgfQorCisuY29sLXNtLAorW2NsYXNzXj0nY29sLXNtLSddLAorW2NsYXNzXj0nY29sLXNtLW9mZnNldC0nXSwKKy5yb3dbY2xhc3MqPSdjb2xzLXNtLSddID4gKiB7CisgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgIGZsZXg6IDAgMCBhdXRvOworICBwYWRkaW5nOiAwIGNhbGModmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIC8gMik7IH0KKworLmNvbC1zbSwKKy5yb3cuY29scy1zbSA+ICogeworICBtYXgtd2lkdGg6IDEwMCU7CisgIGZsZXgtZ3JvdzogMTsKKyAgZmxleC1iYXNpczogMDsgfQorCisuY29sLXNtLTEsCisucm93LmNvbHMtc20tMSA+ICogeworICBtYXgtd2lkdGg6IDguMzMzMzMzMzMzMyU7CisgIGZsZXgtYmFzaXM6IDguMzMzMzMzMzMzMyU7IH0KKworLmNvbC1zbS1vZmZzZXQtMCB7CisgIG1hcmdpbi1sZWZ0OiAwOyB9CisKKy5jb2wtc20tMiwKKy5yb3cuY29scy1zbS0yID4gKiB7CisgIG1heC13aWR0aDogMTYuNjY2NjY2NjY2NyU7CisgIGZsZXgtYmFzaXM6IDE2LjY2NjY2NjY2NjclOyB9CisKKy5jb2wtc20tb2Zmc2V0LTEgeworICBtYXJnaW4tbGVmdDogOC4zMzMzMzMzMzMzJTsgfQorCisuY29sLXNtLTMsCisucm93LmNvbHMtc20tMyA+ICogeworICBtYXgtd2lkdGg6IDI1JTsKKyAgZmxleC1iYXNpczogMjUlOyB9CisKKy5jb2wtc20tb2Zmc2V0LTIgeworICBtYXJnaW4tbGVmdDogMTYuNjY2NjY2NjY2NyU7IH0KKworLmNvbC1zbS00LAorLnJvdy5jb2xzLXNtLTQgPiAqIHsKKyAgbWF4LXdpZHRoOiAzMy4zMzMzMzMzMzMzJTsKKyAgZmxleC1iYXNpczogMzMuMzMzMzMzMzMzMyU7IH0KKworLmNvbC1zbS1vZmZzZXQtMyB7CisgIG1hcmdpbi1sZWZ0OiAyNSU7IH0KKworLmNvbC1zbS01LAorLnJvdy5jb2xzLXNtLTUgPiAqIHsKKyAgbWF4LXdpZHRoOiA0MS42NjY2NjY2NjY3JTsKKyAgZmxleC1iYXNpczogNDEuNjY2NjY2NjY2NyU7IH0KKworLmNvbC1zbS1vZmZzZXQtNCB7CisgIG1hcmdpbi1sZWZ0OiAzMy4zMzMzMzMzMzMzJTsgfQorCisuY29sLXNtLTYsCisucm93LmNvbHMtc20tNiA+ICogeworICBtYXgtd2lkdGg6IDUwJTsKKyAgZmxleC1iYXNpczogNTAlOyB9CisKKy5jb2wtc20tb2Zmc2V0LTUgeworICBtYXJnaW4tbGVmdDogNDEuNjY2NjY2NjY2NyU7IH0KKworLmNvbC1zbS03LAorLnJvdy5jb2xzLXNtLTcgPiAqIHsKKyAgbWF4LXdpZHRoOiA1OC4zMzMzMzMzMzMzJTsKKyAgZmxleC1iYXNpczogNTguMzMzMzMzMzMzMyU7IH0KKworLmNvbC1zbS1vZmZzZXQtNiB7CisgIG1hcmdpbi1sZWZ0OiA1MCU7IH0KKworLmNvbC1zbS04LAorLnJvdy5jb2xzLXNtLTggPiAqIHsKKyAgbWF4LXdpZHRoOiA2Ni42NjY2NjY2NjY3JTsKKyAgZmxleC1iYXNpczogNjYuNjY2NjY2NjY2NyU7IH0KKworLmNvbC1zbS1vZmZzZXQtNyB7CisgIG1hcmdpbi1sZWZ0OiA1OC4zMzMzMzMzMzMzJTsgfQorCisuY29sLXNtLTksCisucm93LmNvbHMtc20tOSA+ICogeworICBtYXgtd2lkdGg6IDc1JTsKKyAgZmxleC1iYXNpczogNzUlOyB9CisKKy5jb2wtc20tb2Zmc2V0LTggeworICBtYXJnaW4tbGVmdDogNjYuNjY2NjY2NjY2NyU7IH0KKworLmNvbC1zbS0xMCwKKy5yb3cuY29scy1zbS0xMCA+ICogeworICBtYXgtd2lkdGg6IDgzLjMzMzMzMzMzMzMlOworICBmbGV4LWJhc2lzOiA4My4zMzMzMzMzMzMzJTsgfQorCisuY29sLXNtLW9mZnNldC05IHsKKyAgbWFyZ2luLWxlZnQ6IDc1JTsgfQorCisuY29sLXNtLTExLAorLnJvdy5jb2xzLXNtLTExID4gKiB7CisgIG1heC13aWR0aDogOTEuNjY2NjY2NjY2NyU7CisgIGZsZXgtYmFzaXM6IDkxLjY2NjY2NjY2NjclOyB9CisKKy5jb2wtc20tb2Zmc2V0LTEwIHsKKyAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzMzMzMzMlOyB9CisKKy5jb2wtc20tMTIsCisucm93LmNvbHMtc20tMTIgPiAqIHsKKyAgbWF4LXdpZHRoOiAxMDAlOworICBmbGV4LWJhc2lzOiAxMDAlOyB9CisKKy5jb2wtc20tb2Zmc2V0LTExIHsKKyAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY2NjY2NjclOyB9CisKKy5jb2wtc20tbm9ybWFsIHsKKyAgb3JkZXI6IGluaXRpYWw7IH0KKworLmNvbC1zbS1maXJzdCB7CisgIG9yZGVyOiAtOTk5OyB9CisKKy5jb2wtc20tbGFzdCB7CisgIG9yZGVyOiA5OTk7IH0KKworQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTAwcHgpIHsKKyAgLmNvbC1tZCwKKyAgW2NsYXNzXj0nY29sLW1kLSddLAorICBbY2xhc3NePSdjb2wtbWQtb2Zmc2V0LSddLAorICAucm93W2NsYXNzKj0nY29scy1tZC0nXSA+ICogeworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgZmxleDogMCAwIGF1dG87CisgICAgcGFkZGluZzogMCBjYWxjKHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSAvIDIpOyB9CisKKyAgLmNvbC1tZCwKKyAgLnJvdy5jb2xzLW1kID4gKiB7CisgICAgbWF4LXdpZHRoOiAxMDAlOworICAgIGZsZXgtZ3JvdzogMTsKKyAgICBmbGV4LWJhc2lzOiAwOyB9CisKKyAgLmNvbC1tZC0xLAorICAucm93LmNvbHMtbWQtMSA+ICogeworICAgIG1heC13aWR0aDogOC4zMzMzMzMzMzMzJTsKKyAgICBmbGV4LWJhc2lzOiA4LjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1tZC1vZmZzZXQtMCB7CisgICAgbWFyZ2luLWxlZnQ6IDA7IH0KKworICAuY29sLW1kLTIsCisgIC5yb3cuY29scy1tZC0yID4gKiB7CisgICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NjY3JTsKKyAgICBmbGV4LWJhc2lzOiAxNi42NjY2NjY2NjY3JTsgfQorCisgIC5jb2wtbWQtb2Zmc2V0LTEgeworICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1tZC0zLAorICAucm93LmNvbHMtbWQtMyA+ICogeworICAgIG1heC13aWR0aDogMjUlOworICAgIGZsZXgtYmFzaXM6IDI1JTsgfQorCisgIC5jb2wtbWQtb2Zmc2V0LTIgeworICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY3JTsgfQorCisgIC5jb2wtbWQtNCwKKyAgLnJvdy5jb2xzLW1kLTQgPiAqIHsKKyAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzMzMlOworICAgIGZsZXgtYmFzaXM6IDMzLjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1tZC1vZmZzZXQtMyB7CisgICAgbWFyZ2luLWxlZnQ6IDI1JTsgfQorCisgIC5jb2wtbWQtNSwKKyAgLnJvdy5jb2xzLW1kLTUgPiAqIHsKKyAgICBtYXgtd2lkdGg6IDQxLjY2NjY2NjY2NjclOworICAgIGZsZXgtYmFzaXM6IDQxLjY2NjY2NjY2NjclOyB9CisKKyAgLmNvbC1tZC1vZmZzZXQtNCB7CisgICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1tZC02LAorICAucm93LmNvbHMtbWQtNiA+ICogeworICAgIG1heC13aWR0aDogNTAlOworICAgIGZsZXgtYmFzaXM6IDUwJTsgfQorCisgIC5jb2wtbWQtb2Zmc2V0LTUgeworICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTsgfQorCisgIC5jb2wtbWQtNywKKyAgLnJvdy5jb2xzLW1kLTcgPiAqIHsKKyAgICBtYXgtd2lkdGg6IDU4LjMzMzMzMzMzMzMlOworICAgIGZsZXgtYmFzaXM6IDU4LjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1tZC1vZmZzZXQtNiB7CisgICAgbWFyZ2luLWxlZnQ6IDUwJTsgfQorCisgIC5jb2wtbWQtOCwKKyAgLnJvdy5jb2xzLW1kLTggPiAqIHsKKyAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY2NjclOworICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY2NjY2NjclOyB9CisKKyAgLmNvbC1tZC1vZmZzZXQtNyB7CisgICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1tZC05LAorICAucm93LmNvbHMtbWQtOSA+ICogeworICAgIG1heC13aWR0aDogNzUlOworICAgIGZsZXgtYmFzaXM6IDc1JTsgfQorCisgIC5jb2wtbWQtb2Zmc2V0LTggeworICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTsgfQorCisgIC5jb2wtbWQtMTAsCisgIC5yb3cuY29scy1tZC0xMCA+ICogeworICAgIG1heC13aWR0aDogODMuMzMzMzMzMzMzMyU7CisgICAgZmxleC1iYXNpczogODMuMzMzMzMzMzMzMyU7IH0KKworICAuY29sLW1kLW9mZnNldC05IHsKKyAgICBtYXJnaW4tbGVmdDogNzUlOyB9CisKKyAgLmNvbC1tZC0xMSwKKyAgLnJvdy5jb2xzLW1kLTExID4gKiB7CisgICAgbWF4LXdpZHRoOiA5MS42NjY2NjY2NjY3JTsKKyAgICBmbGV4LWJhc2lzOiA5MS42NjY2NjY2NjY3JTsgfQorCisgIC5jb2wtbWQtb2Zmc2V0LTEwIHsKKyAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7IH0KKworICAuY29sLW1kLTEyLAorICAucm93LmNvbHMtbWQtMTIgPiAqIHsKKyAgICBtYXgtd2lkdGg6IDEwMCU7CisgICAgZmxleC1iYXNpczogMTAwJTsgfQorCisgIC5jb2wtbWQtb2Zmc2V0LTExIHsKKyAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7IH0KKworICAuY29sLW1kLW5vcm1hbCB7CisgICAgb3JkZXI6IGluaXRpYWw7IH0KKworICAuY29sLW1kLWZpcnN0IHsKKyAgICBvcmRlcjogLTk5OTsgfQorCisgIC5jb2wtbWQtbGFzdCB7CisgICAgb3JkZXI6IDk5OTsgfSB9CitAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIHsKKyAgLmNvbC1sZywKKyAgW2NsYXNzXj0nY29sLWxnLSddLAorICBbY2xhc3NePSdjb2wtbGctb2Zmc2V0LSddLAorICAucm93W2NsYXNzKj0nY29scy1sZy0nXSA+ICogeworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgZmxleDogMCAwIGF1dG87CisgICAgcGFkZGluZzogMCBjYWxjKHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSAvIDIpOyB9CisKKyAgLmNvbC1sZywKKyAgLnJvdy5jb2xzLWxnID4gKiB7CisgICAgbWF4LXdpZHRoOiAxMDAlOworICAgIGZsZXgtZ3JvdzogMTsKKyAgICBmbGV4LWJhc2lzOiAwOyB9CisKKyAgLmNvbC1sZy0xLAorICAucm93LmNvbHMtbGctMSA+ICogeworICAgIG1heC13aWR0aDogOC4zMzMzMzMzMzMzJTsKKyAgICBmbGV4LWJhc2lzOiA4LjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1sZy1vZmZzZXQtMCB7CisgICAgbWFyZ2luLWxlZnQ6IDA7IH0KKworICAuY29sLWxnLTIsCisgIC5yb3cuY29scy1sZy0yID4gKiB7CisgICAgbWF4LXdpZHRoOiAxNi42NjY2NjY2NjY3JTsKKyAgICBmbGV4LWJhc2lzOiAxNi42NjY2NjY2NjY3JTsgfQorCisgIC5jb2wtbGctb2Zmc2V0LTEgeworICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1sZy0zLAorICAucm93LmNvbHMtbGctMyA+ICogeworICAgIG1heC13aWR0aDogMjUlOworICAgIGZsZXgtYmFzaXM6IDI1JTsgfQorCisgIC5jb2wtbGctb2Zmc2V0LTIgeworICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NjY2NjY3JTsgfQorCisgIC5jb2wtbGctNCwKKyAgLnJvdy5jb2xzLWxnLTQgPiAqIHsKKyAgICBtYXgtd2lkdGg6IDMzLjMzMzMzMzMzMzMlOworICAgIGZsZXgtYmFzaXM6IDMzLjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1sZy1vZmZzZXQtMyB7CisgICAgbWFyZ2luLWxlZnQ6IDI1JTsgfQorCisgIC5jb2wtbGctNSwKKyAgLnJvdy5jb2xzLWxnLTUgPiAqIHsKKyAgICBtYXgtd2lkdGg6IDQxLjY2NjY2NjY2NjclOworICAgIGZsZXgtYmFzaXM6IDQxLjY2NjY2NjY2NjclOyB9CisKKyAgLmNvbC1sZy1vZmZzZXQtNCB7CisgICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1sZy02LAorICAucm93LmNvbHMtbGctNiA+ICogeworICAgIG1heC13aWR0aDogNTAlOworICAgIGZsZXgtYmFzaXM6IDUwJTsgfQorCisgIC5jb2wtbGctb2Zmc2V0LTUgeworICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NjY2NjY3JTsgfQorCisgIC5jb2wtbGctNywKKyAgLnJvdy5jb2xzLWxnLTcgPiAqIHsKKyAgICBtYXgtd2lkdGg6IDU4LjMzMzMzMzMzMzMlOworICAgIGZsZXgtYmFzaXM6IDU4LjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1sZy1vZmZzZXQtNiB7CisgICAgbWFyZ2luLWxlZnQ6IDUwJTsgfQorCisgIC5jb2wtbGctOCwKKyAgLnJvdy5jb2xzLWxnLTggPiAqIHsKKyAgICBtYXgtd2lkdGg6IDY2LjY2NjY2NjY2NjclOworICAgIGZsZXgtYmFzaXM6IDY2LjY2NjY2NjY2NjclOyB9CisKKyAgLmNvbC1sZy1vZmZzZXQtNyB7CisgICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzMzMzMzMlOyB9CisKKyAgLmNvbC1sZy05LAorICAucm93LmNvbHMtbGctOSA+ICogeworICAgIG1heC13aWR0aDogNzUlOworICAgIGZsZXgtYmFzaXM6IDc1JTsgfQorCisgIC5jb2wtbGctb2Zmc2V0LTggeworICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NjY2NjY3JTsgfQorCisgIC5jb2wtbGctMTAsCisgIC5yb3cuY29scy1sZy0xMCA+ICogeworICAgIG1heC13aWR0aDogODMuMzMzMzMzMzMzMyU7CisgICAgZmxleC1iYXNpczogODMuMzMzMzMzMzMzMyU7IH0KKworICAuY29sLWxnLW9mZnNldC05IHsKKyAgICBtYXJnaW4tbGVmdDogNzUlOyB9CisKKyAgLmNvbC1sZy0xMSwKKyAgLnJvdy5jb2xzLWxnLTExID4gKiB7CisgICAgbWF4LXdpZHRoOiA5MS42NjY2NjY2NjY3JTsKKyAgICBmbGV4LWJhc2lzOiA5MS42NjY2NjY2NjY3JTsgfQorCisgIC5jb2wtbGctb2Zmc2V0LTEwIHsKKyAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMzMzMzMyU7IH0KKworICAuY29sLWxnLTEyLAorICAucm93LmNvbHMtbGctMTIgPiAqIHsKKyAgICBtYXgtd2lkdGg6IDEwMCU7CisgICAgZmxleC1iYXNpczogMTAwJTsgfQorCisgIC5jb2wtbGctb2Zmc2V0LTExIHsKKyAgICBtYXJnaW4tbGVmdDogOTEuNjY2NjY2NjY2NyU7IH0KKworICAuY29sLWxnLW5vcm1hbCB7CisgICAgb3JkZXI6IGluaXRpYWw7IH0KKworICAuY29sLWxnLWZpcnN0IHsKKyAgICBvcmRlcjogLTk5OTsgfQorCisgIC5jb2wtbGctbGFzdCB7CisgICAgb3JkZXI6IDk5OTsgfSB9CisvKiBDYXJkIGNvbXBvbmVudCBDU1MgdmFyaWFibGUgZGVmaW5pdGlvbnMgKi8KKzpyb290IHsKKyAgLS1jYXJkLWJhY2stY29sb3I6ICMzY2I0ZTY7CisgIC0tY2FyZC1mb3JlLWNvbG9yOiAjMDMyMzRiOworICAtLWNhcmQtYm9yZGVyLWNvbG9yOiAjMDMyMzRiOyB9CisKKy5jYXJkIHsKKyAgZGlzcGxheTogZmxleDsKKyAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuOworICBhbGlnbi1zZWxmOiBjZW50ZXI7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgd2lkdGg6IDEwMCU7CisgIGJhY2tncm91bmQ6IHZhcigtLWNhcmQtYmFjay1jb2xvcik7CisgIGNvbG9yOiB2YXIoLS1jYXJkLWZvcmUtY29sb3IpOworICBib3JkZXI6IDAuMDcxNDI4NTcxNHJlbSBzb2xpZCB2YXIoLS1jYXJkLWJvcmRlci1jb2xvcik7CisgIGJvcmRlci1yYWRpdXM6IHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKTsKKyAgbWFyZ2luOiB2YXIoLS11bml2ZXJzYWwtbWFyZ2luKTsKKyAgb3ZlcmZsb3c6IGhpZGRlbjsgfQorICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAzMjBweCkgeworICAgIC5jYXJkIHsKKyAgICAgIG1heC13aWR0aDogMzIwcHg7IH0gfQorICAuY2FyZCA+IC5zZWN0aW9uZSB7CisgICAgYmFja2dyb3VuZDogdmFyKC0tY2FyZC1iYWNrLWNvbG9yKTsKKyAgICBjb2xvcjogdmFyKC0tY2FyZC1mb3JlLWNvbG9yKTsKKyAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OworICAgIG1hcmdpbjogMDsKKyAgICBib3JkZXI6IDA7CisgICAgYm9yZGVyLXJhZGl1czogMDsKKyAgICBib3JkZXItYm90dG9tOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tY2FyZC1ib3JkZXItY29sb3IpOworICAgIHBhZGRpbmc6IHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKTsKKyAgICB3aWR0aDogMTAwJTsgfQorICAgIC5jYXJkID4gLnNlY3Rpb25lLm1lZGlhIHsKKyAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICBwYWRkaW5nOiAwOworICAgICAgLW8tb2JqZWN0LWZpdDogY292ZXI7CisgICAgICBvYmplY3QtZml0OiBjb3ZlcjsgfQorICAuY2FyZCA+IC5zZWN0aW9uZTpsYXN0LWNoaWxkIHsKKyAgICBib3JkZXItYm90dG9tOiAwOyB9CisKKy8qCisgIEN1c3RvbSBlbGVtZW50cyBmb3IgY2FyZCBlbGVtZW50cy4KKyovCitAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAyNDBweCkgeworICAuY2FyZC5zbWFsbCB7CisgICAgbWF4LXdpZHRoOiAyNDBweDsgfSB9CitAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA0ODBweCkgeworICAuY2FyZC5sYXJnZSB7CisgICAgbWF4LXdpZHRoOiA0ODBweDsgfSB9CisuY2FyZC5mbHVpZCB7CisgIG1heC13aWR0aDogMTAwJTsKKyAgd2lkdGg6IGF1dG87IH0KKworLmNhcmQud2FybmluZyB7CisgIC0tY2FyZC1iYWNrLWNvbG9yOiAjZTViOGI3OworICAtLWNhcmQtZm9yZS1jb2xvcjogIzNiMjM0YjsKKyAgLS1jYXJkLWJvcmRlci1jb2xvcjogIzhjMDA3ODsgfQorCisuY2FyZC5lcnJvciB7CisgIC0tY2FyZC1iYWNrLWNvbG9yOiAjNDY0NjUwOworICAtLWNhcmQtZm9yZS1jb2xvcjogI2ZmZmZmZjsKKyAgLS1jYXJkLWJvcmRlci1jb2xvcjogIzhjMDA3ODsgfQorCisuY2FyZCA+IC5zZWN0aW9uZS5kYXJrIHsKKyAgLS1jYXJkLWJhY2stY29sb3I6ICMzYjIzNGI7CisgIC0tY2FyZC1mb3JlLWNvbG9yOiAjZmZmZmZmOyB9CisKKy5jYXJkID4gLnNlY3Rpb25lLmRvdWJsZS1wYWRkZWQgeworICBwYWRkaW5nOiBjYWxjKDEuNSAqIHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSk7IH0KKworLyoKKyAgRGVmaW5pdGlvbnMgZm9yIGZvcm1zIGFuZCBpbnB1dCBlbGVtZW50cy4KKyovCisvKiBJbnB1dF9jb250cm9sIG1vZHVsZSBDU1MgdmFyaWFibGUgZGVmaW5pdGlvbnMgKi8KKzpyb290IHsKKyAgLS1mb3JtLWJhY2stY29sb3I6ICNmZmU5N2Y7CisgIC0tZm9ybS1mb3JlLWNvbG9yOiAjMDMyMzRiOworICAtLWZvcm0tYm9yZGVyLWNvbG9yOiAjM2NiNGU2OworICAtLWlucHV0LWJhY2stY29sb3I6ICNmZmZmZmY7CisgIC0taW5wdXQtZm9yZS1jb2xvcjogIzAzMjM0YjsKKyAgLS1pbnB1dC1ib3JkZXItY29sb3I6ICMzY2I0ZTY7CisgIC0taW5wdXQtZm9jdXMtY29sb3I6ICMwMjg4ZDE7CisgIC0taW5wdXQtaW52YWxpZC1jb2xvcjogI2QzMmYyZjsKKyAgLS1idXR0b24tYmFjay1jb2xvcjogI2UyZTJlMjsKKyAgLS1idXR0b24taG92ZXItYmFjay1jb2xvcjogI2RjZGNkYzsKKyAgLS1idXR0b24tZm9yZS1jb2xvcjogIzIxMjEyMTsKKyAgLS1idXR0b24tYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgLS1idXR0b24taG92ZXItYm9yZGVyLWNvbG9yOiB0cmFuc3BhcmVudDsKKyAgLS1idXR0b24tZ3JvdXAtYm9yZGVyLWNvbG9yOiByZ2JhKDEyNCwgMTI0LCAxMjQsIDAuNTQpOyB9CisKK2Zvcm0geworICBiYWNrZ3JvdW5kOiB2YXIoLS1mb3JtLWJhY2stY29sb3IpOworICBjb2xvcjogdmFyKC0tZm9ybS1mb3JlLWNvbG9yKTsKKyAgYm9yZGVyOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tZm9ybS1ib3JkZXItY29sb3IpOworICBib3JkZXItcmFkaXVzOiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cyk7CisgIG1hcmdpbjogdmFyKC0tdW5pdmVyc2FsLW1hcmdpbik7CisgIHBhZGRpbmc6IGNhbGMoMiAqIHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSkgdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpOyB9CisKK2ZpZWxkc2V0IHsKKyAgYm9yZGVyOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tZm9ybS1ib3JkZXItY29sb3IpOworICBib3JkZXItcmFkaXVzOiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cyk7CisgIG1hcmdpbjogY2FsYyh2YXIoLS11bml2ZXJzYWwtbWFyZ2luKSAvIDQpOworICBwYWRkaW5nOiB2YXIoLS11bml2ZXJzYWwtcGFkZGluZyk7IH0KKworbGVnZW5kIHsKKyAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgZGlzcGxheTogdGFibGU7CisgIG1heC13aWR0aDogMTAwJTsKKyAgd2hpdGUtc3BhY2U6IG5vcm1hbDsKKyAgZm9udC13ZWlnaHQ6IDUwMDsKKyAgcGFkZGluZzogY2FsYyh2YXIoLS11bml2ZXJzYWwtcGFkZGluZykgLyAyKTsgfQorCitsYWJlbCB7CisgIHBhZGRpbmc6IGNhbGModmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIC8gMikgdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpOyB9CisKKy5pbnB1dC1ncm91cCB7CisgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQorICAuaW5wdXQtZ3JvdXAuZmx1aWQgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjsgfQorICAgIC5pbnB1dC1ncm91cC5mbHVpZCA+IGlucHV0IHsKKyAgICAgIG1heC13aWR0aDogMTAwJTsKKyAgICAgIGZsZXgtZ3JvdzogMTsKKyAgICAgIGZsZXgtYmFzaXM6IDBweDsgfQorICAgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5OXB4KSB7CisgICAgICAuaW5wdXQtZ3JvdXAuZmx1aWQgeworICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKKyAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgfSB9CisgIC5pbnB1dC1ncm91cC52ZXJ0aWNhbCB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKKyAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9CisgICAgLmlucHV0LWdyb3VwLnZlcnRpY2FsID4gaW5wdXQgeworICAgICAgbWF4LXdpZHRoOiAxMDAlOworICAgICAgZmxleC1ncm93OiAxOworICAgICAgZmxleC1iYXNpczogMHB4OyB9CisKK1t0eXBlPSJudW1iZXIiXTo6LXdlYmtpdC1pbm5lci1zcGluLWJ1dHRvbiwgW3R5cGU9Im51bWJlciJdOjotd2Via2l0LW91dGVyLXNwaW4tYnV0dG9uIHsKKyAgaGVpZ2h0OiBhdXRvOyB9CisKK1t0eXBlPSJzZWFyY2giXSB7CisgIC13ZWJraXQtYXBwZWFyYW5jZTogdGV4dGZpZWxkOworICBvdXRsaW5lLW9mZnNldDogLTJweDsgfQorCitbdHlwZT0ic2VhcmNoIl06Oi13ZWJraXQtc2VhcmNoLWNhbmNlbC1idXR0b24sCitbdHlwZT0ic2VhcmNoIl06Oi13ZWJraXQtc2VhcmNoLWRlY29yYXRpb24geworICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7IH0KKworaW5wdXQ6bm90KFt0eXBlXSksIFt0eXBlPSJ0ZXh0Il0sIFt0eXBlPSJlbWFpbCJdLCBbdHlwZT0ibnVtYmVyIl0sIFt0eXBlPSJzZWFyY2giXSwKK1t0eXBlPSJwYXNzd29yZCJdLCBbdHlwZT0idXJsIl0sIFt0eXBlPSJ0ZWwiXSwgW3R5cGU9ImNoZWNrYm94Il0sIFt0eXBlPSJyYWRpbyJdLCB0ZXh0YXJlYSwgc2VsZWN0IHsKKyAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgYmFja2dyb3VuZDogdmFyKC0taW5wdXQtYmFjay1jb2xvcik7CisgIGNvbG9yOiB2YXIoLS1pbnB1dC1mb3JlLWNvbG9yKTsKKyAgYm9yZGVyOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0taW5wdXQtYm9yZGVyLWNvbG9yKTsKKyAgYm9yZGVyLXJhZGl1czogdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpOworICBtYXJnaW46IGNhbGModmFyKC0tdW5pdmVyc2FsLW1hcmdpbikgLyAyKTsKKyAgcGFkZGluZzogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIGNhbGMoMS41ICogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpKTsgfQorCitpbnB1dDpub3QoW3R5cGU9ImJ1dHRvbiJdKTpub3QoW3R5cGU9InN1Ym1pdCJdKTpub3QoW3R5cGU9InJlc2V0Il0pOmhvdmVyLCBpbnB1dDpub3QoW3R5cGU9ImJ1dHRvbiJdKTpub3QoW3R5cGU9InN1Ym1pdCJdKTpub3QoW3R5cGU9InJlc2V0Il0pOmZvY3VzLCB0ZXh0YXJlYTpob3ZlciwgdGV4dGFyZWE6Zm9jdXMsIHNlbGVjdDpob3Zlciwgc2VsZWN0OmZvY3VzIHsKKyAgYm9yZGVyLWNvbG9yOiB2YXIoLS1pbnB1dC1mb2N1cy1jb2xvcik7CisgIGJveC1zaGFkb3c6IG5vbmU7IH0KK2lucHV0Om5vdChbdHlwZT0iYnV0dG9uIl0pOm5vdChbdHlwZT0ic3VibWl0Il0pOm5vdChbdHlwZT0icmVzZXQiXSk6aW52YWxpZCwgaW5wdXQ6bm90KFt0eXBlPSJidXR0b24iXSk6bm90KFt0eXBlPSJzdWJtaXQiXSk6bm90KFt0eXBlPSJyZXNldCJdKTpmb2N1czppbnZhbGlkLCB0ZXh0YXJlYTppbnZhbGlkLCB0ZXh0YXJlYTpmb2N1czppbnZhbGlkLCBzZWxlY3Q6aW52YWxpZCwgc2VsZWN0OmZvY3VzOmludmFsaWQgeworICBib3JkZXItY29sb3I6IHZhcigtLWlucHV0LWludmFsaWQtY29sb3IpOworICBib3gtc2hhZG93OiBub25lOyB9CitpbnB1dDpub3QoW3R5cGU9ImJ1dHRvbiJdKTpub3QoW3R5cGU9InN1Ym1pdCJdKTpub3QoW3R5cGU9InJlc2V0Il0pW3JlYWRvbmx5XSwgdGV4dGFyZWFbcmVhZG9ubHldLCBzZWxlY3RbcmVhZG9ubHldIHsKKyAgYmFja2dyb3VuZDogdmFyKC0tc2Vjb25kYXJ5LWJhY2stY29sb3IpOyB9CisKK3NlbGVjdCB7CisgIG1heC13aWR0aDogMTAwJTsgfQorCitvcHRpb24geworICBvdmVyZmxvdzogaGlkZGVuOworICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgfQorCitbdHlwZT0iY2hlY2tib3giXSwgW3R5cGU9InJhZGlvIl0geworICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CisgIC1tb3otYXBwZWFyYW5jZTogbm9uZTsKKyAgYXBwZWFyYW5jZTogbm9uZTsKKyAgcG9zaXRpb246IHJlbGF0aXZlOworICBoZWlnaHQ6IGNhbGMoMXJlbSArIHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSAvIDIpOworICB3aWR0aDogY2FsYygxcmVtICsgdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIC8gMik7CisgIHZlcnRpY2FsLWFsaWduOiB0ZXh0LWJvdHRvbTsKKyAgcGFkZGluZzogMDsKKyAgZmxleC1iYXNpczogY2FsYygxcmVtICsgdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIC8gMikgIWltcG9ydGFudDsKKyAgZmxleC1ncm93OiAwICFpbXBvcnRhbnQ7IH0KKyAgW3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZDpiZWZvcmUsIFt0eXBlPSJyYWRpbyJdOmNoZWNrZWQ6YmVmb3JlIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7IH0KKworW3R5cGU9ImNoZWNrYm94Il06Y2hlY2tlZDpiZWZvcmUgeworICBjb250ZW50OiAnXDI3MTMnOworICBmb250LWZhbWlseTogc2Fucy1zZXJpZjsKKyAgZm9udC1zaXplOiBjYWxjKDFyZW0gKyB2YXIoLS11bml2ZXJzYWwtcGFkZGluZykgLyAyKTsKKyAgdG9wOiBjYWxjKDByZW0gLSB2YXIoLS11bml2ZXJzYWwtcGFkZGluZykpOworICBsZWZ0OiBjYWxjKHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSAvIDQpOyB9CisKK1t0eXBlPSJyYWRpbyJdIHsKKyAgYm9yZGVyLXJhZGl1czogMTAwJTsgfQorICBbdHlwZT0icmFkaW8iXTpjaGVja2VkOmJlZm9yZSB7CisgICAgYm9yZGVyLXJhZGl1czogMTAwJTsKKyAgICBjb250ZW50OiAnJzsKKyAgICB0b3A6IGNhbGMoMC4wNzE0Mjg1NzE0cmVtICsgdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIC8gMik7CisgICAgbGVmdDogY2FsYygwLjA3MTQyODU3MTRyZW0gKyB2YXIoLS11bml2ZXJzYWwtcGFkZGluZykgLyAyKTsKKyAgICBiYWNrZ3JvdW5kOiB2YXIoLS1pbnB1dC1mb3JlLWNvbG9yKTsKKyAgICB3aWR0aDogMC41cmVtOworICAgIGhlaWdodDogMC41cmVtOyB9CisKKzpwbGFjZWhvbGRlci1zaG93biB7CisgIGNvbG9yOiB2YXIoLS1pbnB1dC1mb3JlLWNvbG9yKTsgfQorCis6Oi1tcy1wbGFjZWhvbGRlciB7CisgIGNvbG9yOiB2YXIoLS1pbnB1dC1mb3JlLWNvbG9yKTsKKyAgb3BhY2l0eTogMC41NDsgfQorCitidXR0b246Oi1tb3otZm9jdXMtaW5uZXIsIFt0eXBlPSJidXR0b24iXTo6LW1vei1mb2N1cy1pbm5lciwgW3R5cGU9InJlc2V0Il06Oi1tb3otZm9jdXMtaW5uZXIsIFt0eXBlPSJzdWJtaXQiXTo6LW1vei1mb2N1cy1pbm5lciB7CisgIGJvcmRlci1zdHlsZTogbm9uZTsKKyAgcGFkZGluZzogMDsgfQorCitidXR0b24sIGh0bWwgW3R5cGU9ImJ1dHRvbiJdLCBbdHlwZT0icmVzZXQiXSwgW3R5cGU9InN1Ym1pdCJdIHsKKyAgLXdlYmtpdC1hcHBlYXJhbmNlOiBidXR0b247IH0KKworYnV0dG9uIHsKKyAgb3ZlcmZsb3c6IHZpc2libGU7CisgIHRleHQtdHJhbnNmb3JtOiBub25lOyB9CisKK2J1dHRvbiwgW3R5cGU9ImJ1dHRvbiJdLCBbdHlwZT0ic3VibWl0Il0sIFt0eXBlPSJyZXNldCJdLAorYS5idXR0b24sIGxhYmVsLmJ1dHRvbiwgLmJ1dHRvbiwKK2Fbcm9sZT0iYnV0dG9uIl0sIGxhYmVsW3JvbGU9ImJ1dHRvbiJdLCBbcm9sZT0iYnV0dG9uIl0geworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1iYWNrLWNvbG9yKTsKKyAgY29sb3I6IHZhcigtLWJ1dHRvbi1mb3JlLWNvbG9yKTsKKyAgYm9yZGVyOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tYnV0dG9uLWJvcmRlci1jb2xvcik7CisgIGJvcmRlci1yYWRpdXM6IHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKTsKKyAgcGFkZGluZzogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIGNhbGMoMS41ICogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpKTsKKyAgbWFyZ2luOiB2YXIoLS11bml2ZXJzYWwtbWFyZ2luKTsKKyAgdGV4dC1kZWNvcmF0aW9uOiBub25lOworICBjdXJzb3I6IHBvaW50ZXI7CisgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zczsgfQorICBidXR0b246aG92ZXIsIGJ1dHRvbjpmb2N1cywgW3R5cGU9ImJ1dHRvbiJdOmhvdmVyLCBbdHlwZT0iYnV0dG9uIl06Zm9jdXMsIFt0eXBlPSJzdWJtaXQiXTpob3ZlciwgW3R5cGU9InN1Ym1pdCJdOmZvY3VzLCBbdHlwZT0icmVzZXQiXTpob3ZlciwgW3R5cGU9InJlc2V0Il06Zm9jdXMsCisgIGEuYnV0dG9uOmhvdmVyLAorICBhLmJ1dHRvbjpmb2N1cywgbGFiZWwuYnV0dG9uOmhvdmVyLCBsYWJlbC5idXR0b246Zm9jdXMsIC5idXR0b246aG92ZXIsIC5idXR0b246Zm9jdXMsCisgIGFbcm9sZT0iYnV0dG9uIl06aG92ZXIsCisgIGFbcm9sZT0iYnV0dG9uIl06Zm9jdXMsIGxhYmVsW3JvbGU9ImJ1dHRvbiJdOmhvdmVyLCBsYWJlbFtyb2xlPSJidXR0b24iXTpmb2N1cywgW3JvbGU9ImJ1dHRvbiJdOmhvdmVyLCBbcm9sZT0iYnV0dG9uIl06Zm9jdXMgeworICAgIGJhY2tncm91bmQ6IHZhcigtLWJ1dHRvbi1ob3Zlci1iYWNrLWNvbG9yKTsKKyAgICBib3JkZXItY29sb3I6IHZhcigtLWJ1dHRvbi1ob3Zlci1ib3JkZXItY29sb3IpOyB9CisKK2lucHV0OmRpc2FibGVkLCBpbnB1dFtkaXNhYmxlZF0sIHRleHRhcmVhOmRpc2FibGVkLCB0ZXh0YXJlYVtkaXNhYmxlZF0sIHNlbGVjdDpkaXNhYmxlZCwgc2VsZWN0W2Rpc2FibGVkXSwgYnV0dG9uOmRpc2FibGVkLCBidXR0b25bZGlzYWJsZWRdLCAuYnV0dG9uOmRpc2FibGVkLCAuYnV0dG9uW2Rpc2FibGVkXSwgW3JvbGU9ImJ1dHRvbiJdOmRpc2FibGVkLCBbcm9sZT0iYnV0dG9uIl1bZGlzYWJsZWRdIHsKKyAgY3Vyc29yOiBub3QtYWxsb3dlZDsKKyAgb3BhY2l0eTogMC43NTsgfQorCisuYnV0dG9uLWdyb3VwIHsKKyAgZGlzcGxheTogZmxleDsKKyAgYm9yZGVyOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tYnV0dG9uLWdyb3VwLWJvcmRlci1jb2xvcik7CisgIGJvcmRlci1yYWRpdXM6IHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKTsKKyAgbWFyZ2luOiB2YXIoLS11bml2ZXJzYWwtbWFyZ2luKTsgfQorICAuYnV0dG9uLWdyb3VwID4gYnV0dG9uLCAuYnV0dG9uLWdyb3VwIFt0eXBlPSJidXR0b24iXSwgLmJ1dHRvbi1ncm91cCA+IFt0eXBlPSJzdWJtaXQiXSwgLmJ1dHRvbi1ncm91cCA+IFt0eXBlPSJyZXNldCJdLCAuYnV0dG9uLWdyb3VwID4gLmJ1dHRvbiwgLmJ1dHRvbi1ncm91cCA+IFtyb2xlPSJidXR0b24iXSB7CisgICAgbWFyZ2luOiAwOworICAgIG1heC13aWR0aDogMTAwJTsKKyAgICBmbGV4OiAxIDEgYXV0bzsKKyAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CisgICAgYm9yZGVyOiAwOworICAgIGJvcmRlci1yYWRpdXM6IDA7CisgICAgYm94LXNoYWRvdzogbm9uZTsgfQorICAuYnV0dG9uLWdyb3VwID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHsKKyAgICBib3JkZXItbGVmdDogMC4wNzE0Mjg1NzE0cmVtIHNvbGlkIHZhcigtLWJ1dHRvbi1ncm91cC1ib3JkZXItY29sb3IpOyB9CisgIEBtZWRpYSBzY3JlZW4gYW5kIChtYXgtd2lkdGg6IDQ5OXB4KSB7CisgICAgLmJ1dHRvbi1ncm91cCB7CisgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOyB9CisgICAgICAuYnV0dG9uLWdyb3VwID4gOm5vdCg6Zmlyc3QtY2hpbGQpIHsKKyAgICAgICAgYm9yZGVyOiAwOworICAgICAgICBib3JkZXItdG9wOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tYnV0dG9uLWdyb3VwLWJvcmRlci1jb2xvcik7IH0gfQorCisvKgorICBDdXN0b20gZWxlbWVudHMgZm9yIGZvcm1zIGFuZCBpbnB1dCBlbGVtZW50cy4KKyovCitidXR0b24ucHJpbWFyeSwgW3R5cGU9ImJ1dHRvbiJdLnByaW1hcnksIFt0eXBlPSJzdWJtaXQiXS5wcmltYXJ5LCBbdHlwZT0icmVzZXQiXS5wcmltYXJ5LCAuYnV0dG9uLnByaW1hcnksIFtyb2xlPSJidXR0b24iXS5wcmltYXJ5IHsKKyAgLS1idXR0b24tYmFjay1jb2xvcjogIzE5NzZkMjsKKyAgLS1idXR0b24tZm9yZS1jb2xvcjogI2Y4ZjhmODsgfQorICBidXR0b24ucHJpbWFyeTpob3ZlciwgYnV0dG9uLnByaW1hcnk6Zm9jdXMsIFt0eXBlPSJidXR0b24iXS5wcmltYXJ5OmhvdmVyLCBbdHlwZT0iYnV0dG9uIl0ucHJpbWFyeTpmb2N1cywgW3R5cGU9InN1Ym1pdCJdLnByaW1hcnk6aG92ZXIsIFt0eXBlPSJzdWJtaXQiXS5wcmltYXJ5OmZvY3VzLCBbdHlwZT0icmVzZXQiXS5wcmltYXJ5OmhvdmVyLCBbdHlwZT0icmVzZXQiXS5wcmltYXJ5OmZvY3VzLCAuYnV0dG9uLnByaW1hcnk6aG92ZXIsIC5idXR0b24ucHJpbWFyeTpmb2N1cywgW3JvbGU9ImJ1dHRvbiJdLnByaW1hcnk6aG92ZXIsIFtyb2xlPSJidXR0b24iXS5wcmltYXJ5OmZvY3VzIHsKKyAgICAtLWJ1dHRvbi1ob3Zlci1iYWNrLWNvbG9yOiAjMTU2NWMwOyB9CisKK2J1dHRvbi5zZWNvbmRhcnksIFt0eXBlPSJidXR0b24iXS5zZWNvbmRhcnksIFt0eXBlPSJzdWJtaXQiXS5zZWNvbmRhcnksIFt0eXBlPSJyZXNldCJdLnNlY29uZGFyeSwgLmJ1dHRvbi5zZWNvbmRhcnksIFtyb2xlPSJidXR0b24iXS5zZWNvbmRhcnkgeworICAtLWJ1dHRvbi1iYWNrLWNvbG9yOiAjZDMyZjJmOworICAtLWJ1dHRvbi1mb3JlLWNvbG9yOiAjZjhmOGY4OyB9CisgIGJ1dHRvbi5zZWNvbmRhcnk6aG92ZXIsIGJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMsIFt0eXBlPSJidXR0b24iXS5zZWNvbmRhcnk6aG92ZXIsIFt0eXBlPSJidXR0b24iXS5zZWNvbmRhcnk6Zm9jdXMsIFt0eXBlPSJzdWJtaXQiXS5zZWNvbmRhcnk6aG92ZXIsIFt0eXBlPSJzdWJtaXQiXS5zZWNvbmRhcnk6Zm9jdXMsIFt0eXBlPSJyZXNldCJdLnNlY29uZGFyeTpob3ZlciwgW3R5cGU9InJlc2V0Il0uc2Vjb25kYXJ5OmZvY3VzLCAuYnV0dG9uLnNlY29uZGFyeTpob3ZlciwgLmJ1dHRvbi5zZWNvbmRhcnk6Zm9jdXMsIFtyb2xlPSJidXR0b24iXS5zZWNvbmRhcnk6aG92ZXIsIFtyb2xlPSJidXR0b24iXS5zZWNvbmRhcnk6Zm9jdXMgeworICAgIC0tYnV0dG9uLWhvdmVyLWJhY2stY29sb3I6ICNjNjI4Mjg7IH0KKworYnV0dG9uLnRlcnRpYXJ5LCBbdHlwZT0iYnV0dG9uIl0udGVydGlhcnksIFt0eXBlPSJzdWJtaXQiXS50ZXJ0aWFyeSwgW3R5cGU9InJlc2V0Il0udGVydGlhcnksIC5idXR0b24udGVydGlhcnksIFtyb2xlPSJidXR0b24iXS50ZXJ0aWFyeSB7CisgIC0tYnV0dG9uLWJhY2stY29sb3I6ICMzMDg3MzI7CisgIC0tYnV0dG9uLWZvcmUtY29sb3I6ICNmOGY4Zjg7IH0KKyAgYnV0dG9uLnRlcnRpYXJ5OmhvdmVyLCBidXR0b24udGVydGlhcnk6Zm9jdXMsIFt0eXBlPSJidXR0b24iXS50ZXJ0aWFyeTpob3ZlciwgW3R5cGU9ImJ1dHRvbiJdLnRlcnRpYXJ5OmZvY3VzLCBbdHlwZT0ic3VibWl0Il0udGVydGlhcnk6aG92ZXIsIFt0eXBlPSJzdWJtaXQiXS50ZXJ0aWFyeTpmb2N1cywgW3R5cGU9InJlc2V0Il0udGVydGlhcnk6aG92ZXIsIFt0eXBlPSJyZXNldCJdLnRlcnRpYXJ5OmZvY3VzLCAuYnV0dG9uLnRlcnRpYXJ5OmhvdmVyLCAuYnV0dG9uLnRlcnRpYXJ5OmZvY3VzLCBbcm9sZT0iYnV0dG9uIl0udGVydGlhcnk6aG92ZXIsIFtyb2xlPSJidXR0b24iXS50ZXJ0aWFyeTpmb2N1cyB7CisgICAgLS1idXR0b24taG92ZXItYmFjay1jb2xvcjogIzI3NzUyOTsgfQorCitidXR0b24uaW52ZXJzZSwgW3R5cGU9ImJ1dHRvbiJdLmludmVyc2UsIFt0eXBlPSJzdWJtaXQiXS5pbnZlcnNlLCBbdHlwZT0icmVzZXQiXS5pbnZlcnNlLCAuYnV0dG9uLmludmVyc2UsIFtyb2xlPSJidXR0b24iXS5pbnZlcnNlIHsKKyAgLS1idXR0b24tYmFjay1jb2xvcjogIzIxMjEyMTsKKyAgLS1idXR0b24tZm9yZS1jb2xvcjogI2Y4ZjhmODsgfQorICBidXR0b24uaW52ZXJzZTpob3ZlciwgYnV0dG9uLmludmVyc2U6Zm9jdXMsIFt0eXBlPSJidXR0b24iXS5pbnZlcnNlOmhvdmVyLCBbdHlwZT0iYnV0dG9uIl0uaW52ZXJzZTpmb2N1cywgW3R5cGU9InN1Ym1pdCJdLmludmVyc2U6aG92ZXIsIFt0eXBlPSJzdWJtaXQiXS5pbnZlcnNlOmZvY3VzLCBbdHlwZT0icmVzZXQiXS5pbnZlcnNlOmhvdmVyLCBbdHlwZT0icmVzZXQiXS5pbnZlcnNlOmZvY3VzLCAuYnV0dG9uLmludmVyc2U6aG92ZXIsIC5idXR0b24uaW52ZXJzZTpmb2N1cywgW3JvbGU9ImJ1dHRvbiJdLmludmVyc2U6aG92ZXIsIFtyb2xlPSJidXR0b24iXS5pbnZlcnNlOmZvY3VzIHsKKyAgICAtLWJ1dHRvbi1ob3Zlci1iYWNrLWNvbG9yOiAjMTExOyB9CisKK2J1dHRvbi5zbWFsbCwgW3R5cGU9ImJ1dHRvbiJdLnNtYWxsLCBbdHlwZT0ic3VibWl0Il0uc21hbGwsIFt0eXBlPSJyZXNldCJdLnNtYWxsLCAuYnV0dG9uLnNtYWxsLCBbcm9sZT0iYnV0dG9uIl0uc21hbGwgeworICBwYWRkaW5nOiBjYWxjKDAuNSAqIHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSkgY2FsYygwLjc1ICogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpKTsKKyAgbWFyZ2luOiB2YXIoLS11bml2ZXJzYWwtbWFyZ2luKTsgfQorCitidXR0b24ubGFyZ2UsIFt0eXBlPSJidXR0b24iXS5sYXJnZSwgW3R5cGU9InN1Ym1pdCJdLmxhcmdlLCBbdHlwZT0icmVzZXQiXS5sYXJnZSwgLmJ1dHRvbi5sYXJnZSwgW3JvbGU9ImJ1dHRvbiJdLmxhcmdlIHsKKyAgcGFkZGluZzogY2FsYygxLjUgKiB2YXIoLS11bml2ZXJzYWwtcGFkZGluZykpIGNhbGMoMiAqIHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSk7CisgIG1hcmdpbjogdmFyKC0tdW5pdmVyc2FsLW1hcmdpbik7IH0KKworLyoKKyAgRGVmaW5pdGlvbnMgZm9yIG5hdmlnYXRpb24gZWxlbWVudHMuCisqLworLyogTmF2aWdhdGlvbiBtb2R1bGUgQ1NTIHZhcmlhYmxlIGRlZmluaXRpb25zICovCis6cm9vdCB7CisgIC0taGVhZGVyLWJhY2stY29sb3I6ICMwMzIzNGI7CisgIC0taGVhZGVyLWhvdmVyLWJhY2stY29sb3I6ICNmZmQyMDA7CisgIC0taGVhZGVyLWZvcmUtY29sb3I6ICNmZmZmZmY7CisgIC0taGVhZGVyLWJvcmRlci1jb2xvcjogIzNjYjRlNjsKKyAgLS1uYXYtYmFjay1jb2xvcjogI2ZmZmZmZjsKKyAgLS1uYXYtaG92ZXItYmFjay1jb2xvcjogI2ZmZTk3ZjsKKyAgLS1uYXYtZm9yZS1jb2xvcjogI2U2MDA3ZTsKKyAgLS1uYXYtYm9yZGVyLWNvbG9yOiAjM2NiNGU2OworICAtLW5hdi1saW5rLWNvbG9yOiAjM2NiNGU2OworICAtLWZvb3Rlci1mb3JlLWNvbG9yOiAjZmZmZmZmOworICAtLWZvb3Rlci1iYWNrLWNvbG9yOiAjMDMyMzRiOworICAtLWZvb3Rlci1ib3JkZXItY29sb3I6ICMzY2I0ZTY7CisgIC0tZm9vdGVyLWxpbmstY29sb3I6ICMzY2I0ZTY7CisgIC0tZHJhd2VyLWJhY2stY29sb3I6ICNmZmZmZmY7CisgIC0tZHJhd2VyLWhvdmVyLWJhY2stY29sb3I6ICNmZmU5N2Y7CisgIC0tZHJhd2VyLWJvcmRlci1jb2xvcjogIzNjYjRlNjsKKyAgLS1kcmF3ZXItY2xvc2UtY29sb3I6ICNlNjAwN2U7IH0KKworaGVhZGVyIHsKKyAgaGVpZ2h0OiAyLjc1cmVtOworICBiYWNrZ3JvdW5kOiB2YXIoLS1oZWFkZXItYmFjay1jb2xvcik7CisgIGNvbG9yOiB2YXIoLS1oZWFkZXItZm9yZS1jb2xvcik7CisgIGJvcmRlci1ib3R0b206IDAuMDcxNDI4NTcxNHJlbSBzb2xpZCB2YXIoLS1oZWFkZXItYm9yZGVyLWNvbG9yKTsKKyAgcGFkZGluZzogY2FsYyh2YXIoLS11bml2ZXJzYWwtcGFkZGluZykgLyA0KSAwOworICB3aGl0ZS1zcGFjZTogbm93cmFwOworICBvdmVyZmxvdy14OiBhdXRvOworICBvdmVyZmxvdy15OiBoaWRkZW47IH0KKyAgaGVhZGVyLnJvdyB7CisgICAgYm94LXNpemluZzogY29udGVudC1ib3g7IH0KKyAgaGVhZGVyIC5sb2dvIHsKKyAgICBjb2xvcjogdmFyKC0taGVhZGVyLWZvcmUtY29sb3IpOworICAgIGZvbnQtc2l6ZTogMS43NXJlbTsKKyAgICBwYWRkaW5nOiB2YXIoLS11bml2ZXJzYWwtcGFkZGluZykgY2FsYygyICogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpKTsKKyAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7IH0KKyAgaGVhZGVyIGJ1dHRvbiwgaGVhZGVyIFt0eXBlPSJidXR0b24iXSwgaGVhZGVyIC5idXR0b24sIGhlYWRlciBbcm9sZT0iYnV0dG9uIl0geworICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgIHRvcDogY2FsYygwcmVtIC0gdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIC8gNCk7CisgICAgaGVpZ2h0OiBjYWxjKDMuMTg3NXJlbSArIHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSAvIDIpOworICAgIGJhY2tncm91bmQ6IHZhcigtLWhlYWRlci1iYWNrLWNvbG9yKTsKKyAgICBsaW5lLWhlaWdodDogY2FsYygzLjE4NzVyZW0gLSB2YXIoLS11bml2ZXJzYWwtcGFkZGluZykgKiAxLjUpOworICAgIHRleHQtYWxpZ246IGNlbnRlcjsKKyAgICBjb2xvcjogdmFyKC0taGVhZGVyLWZvcmUtY29sb3IpOworICAgIGJvcmRlcjogMDsKKyAgICBib3JkZXItcmFkaXVzOiAwOworICAgIG1hcmdpbjogMDsKKyAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlOyB9CisgICAgaGVhZGVyIGJ1dHRvbjpob3ZlciwgaGVhZGVyIGJ1dHRvbjpmb2N1cywgaGVhZGVyIFt0eXBlPSJidXR0b24iXTpob3ZlciwgaGVhZGVyIFt0eXBlPSJidXR0b24iXTpmb2N1cywgaGVhZGVyIC5idXR0b246aG92ZXIsIGhlYWRlciAuYnV0dG9uOmZvY3VzLCBoZWFkZXIgW3JvbGU9ImJ1dHRvbiJdOmhvdmVyLCBoZWFkZXIgW3JvbGU9ImJ1dHRvbiJdOmZvY3VzIHsKKyAgICAgIGJhY2tncm91bmQ6IHZhcigtLWhlYWRlci1ob3Zlci1iYWNrLWNvbG9yKTsgfQorCituYXYgeworICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtYmFjay1jb2xvcik7CisgIGNvbG9yOiB2YXIoLS1uYXYtZm9yZS1jb2xvcik7CisgIGJvcmRlcjogMC4wNzE0Mjg1NzE0cmVtIHNvbGlkIHZhcigtLW5hdi1ib3JkZXItY29sb3IpOworICBib3JkZXItcmFkaXVzOiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cyk7CisgIG1hcmdpbjogdmFyKC0tdW5pdmVyc2FsLW1hcmdpbik7IH0KKyAgbmF2ICogeworICAgIHBhZGRpbmc6IHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSBjYWxjKDEuNSAqIHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSk7IH0KKyAgbmF2IGEsIG5hdiBhOnZpc2l0ZWQgeworICAgIGRpc3BsYXk6IGJsb2NrOworICAgIGNvbG9yOiB2YXIoLS1uYXYtbGluay1jb2xvcik7CisgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpOworICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4zczsgfQorICAgIG5hdiBhOmhvdmVyLCBuYXYgYTpmb2N1cywgbmF2IGE6dmlzaXRlZDpob3ZlciwgbmF2IGE6dmlzaXRlZDpmb2N1cyB7CisgICAgICB0ZXh0LWRlY29yYXRpb246IG5vbmU7CisgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1uYXYtaG92ZXItYmFjay1jb2xvcik7IH0KKyAgbmF2IC5zdWJsaW5rLTEgeworICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICBtYXJnaW4tbGVmdDogY2FsYygyICogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpKTsgfQorICAgIG5hdiAuc3VibGluay0xOmJlZm9yZSB7CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBsZWZ0OiBjYWxjKHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSAtIDEgKiB2YXIoLS11bml2ZXJzYWwtcGFkZGluZykpOworICAgICAgdG9wOiAtMC4wNzE0Mjg1NzE0cmVtOworICAgICAgY29udGVudDogJyc7CisgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICBib3JkZXI6IDAuMDcxNDI4NTcxNHJlbSBzb2xpZCB2YXIoLS1uYXYtYm9yZGVyLWNvbG9yKTsKKyAgICAgIGJvcmRlci1sZWZ0OiAwOyB9CisgIG5hdiAuc3VibGluay0yIHsKKyAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgbWFyZ2luLWxlZnQ6IGNhbGMoNCAqIHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSk7IH0KKyAgICBuYXYgLnN1YmxpbmstMjpiZWZvcmUgeworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgbGVmdDogY2FsYyh2YXIoLS11bml2ZXJzYWwtcGFkZGluZykgLSAzICogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpKTsKKyAgICAgIHRvcDogLTAuMDcxNDI4NTcxNHJlbTsKKyAgICAgIGNvbnRlbnQ6ICcnOworICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgYm9yZGVyOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tbmF2LWJvcmRlci1jb2xvcik7CisgICAgICBib3JkZXItbGVmdDogMDsgfQorCitmb290ZXIgeworICBiYWNrZ3JvdW5kOiB2YXIoLS1mb290ZXItYmFjay1jb2xvcik7CisgIGNvbG9yOiB2YXIoLS1mb290ZXItZm9yZS1jb2xvcik7CisgIGJvcmRlci10b3A6IDAuMDcxNDI4NTcxNHJlbSBzb2xpZCB2YXIoLS1mb290ZXItYm9yZGVyLWNvbG9yKTsKKyAgcGFkZGluZzogY2FsYygyICogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpKSB2YXIoLS11bml2ZXJzYWwtcGFkZGluZyk7CisgIGZvbnQtc2l6ZTogMC44NzVyZW07IH0KKyAgZm9vdGVyIGEsIGZvb3RlciBhOnZpc2l0ZWQgeworICAgIGNvbG9yOiB2YXIoLS1mb290ZXItbGluay1jb2xvcik7IH0KKworaGVhZGVyLnN0aWNreSB7CisgIHBvc2l0aW9uOiAtd2Via2l0LXN0aWNreTsKKyAgcG9zaXRpb246IHN0aWNreTsKKyAgei1pbmRleDogMTEwMTsKKyAgdG9wOiAwOyB9CisKK2Zvb3Rlci5zdGlja3kgeworICBwb3NpdGlvbjogLXdlYmtpdC1zdGlja3k7CisgIHBvc2l0aW9uOiBzdGlja3k7CisgIHotaW5kZXg6IDExMDE7CisgIGJvdHRvbTogMDsgfQorCisuZHJhd2VyLXRvZ2dsZTpiZWZvcmUgeworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgdmVydGljYWwtYWxpZ246IGJvdHRvbTsKKyAgY29udGVudDogJ1wwMGEwXDIyNjFcMDBhMCc7CisgIGZvbnQtZmFtaWx5OiBzYW5zLXNlcmlmOworICBmb250LXNpemU6IDEuNWVtOyB9CitAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MDBweCkgeworICAuZHJhd2VyLXRvZ2dsZTpub3QoLnBlcnNpc3RlbnQpIHsKKyAgICBkaXNwbGF5OiBub25lOyB9IH0KKworW3R5cGU9ImNoZWNrYm94Il0uZHJhd2VyIHsKKyAgaGVpZ2h0OiAxcHg7CisgIHdpZHRoOiAxcHg7CisgIG1hcmdpbjogLTFweDsKKyAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgcG9zaXRpb246IGFic29sdXRlOworICBjbGlwOiByZWN0KDAgMCAwIDApOworICAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoMTAwJSk7CisgIGNsaXAtcGF0aDogaW5zZXQoMTAwJSk7IH0KKyAgW3R5cGU9ImNoZWNrYm94Il0uZHJhd2VyICsgKiB7CisgICAgZGlzcGxheTogYmxvY2s7CisgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKKyAgICBwb3NpdGlvbjogZml4ZWQ7CisgICAgdG9wOiAwOworICAgIHdpZHRoOiAzMjBweDsKKyAgICBoZWlnaHQ6IDEwMHZoOworICAgIG92ZXJmbG93LXk6IGF1dG87CisgICAgYmFja2dyb3VuZDogdmFyKC0tZHJhd2VyLWJhY2stY29sb3IpOworICAgIGJvcmRlcjogMC4wNzE0Mjg1NzE0cmVtIHNvbGlkIHZhcigtLWRyYXdlci1ib3JkZXItY29sb3IpOworICAgIGJvcmRlci1yYWRpdXM6IDA7CisgICAgbWFyZ2luOiAwOworICAgIHotaW5kZXg6IDExMTA7CisgICAgcmlnaHQ6IC0zMjBweDsKKyAgICB0cmFuc2l0aW9uOiByaWdodCAwLjNzOyB9CisgICAgW3R5cGU9ImNoZWNrYm94Il0uZHJhd2VyICsgKiAuZHJhd2VyLWNsb3NlIHsKKyAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgIHRvcDogdmFyKC0tdW5pdmVyc2FsLW1hcmdpbik7CisgICAgICByaWdodDogdmFyKC0tdW5pdmVyc2FsLW1hcmdpbik7CisgICAgICB6LWluZGV4OiAxMTExOworICAgICAgd2lkdGg6IDJyZW07CisgICAgICBoZWlnaHQ6IDJyZW07CisgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cyk7CisgICAgICBwYWRkaW5nOiB2YXIoLS11bml2ZXJzYWwtcGFkZGluZyk7CisgICAgICBtYXJnaW46IDA7CisgICAgICBjdXJzb3I6IHBvaW50ZXI7CisgICAgICB0cmFuc2l0aW9uOiBiYWNrZ3JvdW5kIDAuM3M7IH0KKyAgICAgIFt0eXBlPSJjaGVja2JveCJdLmRyYXdlciArICogLmRyYXdlci1jbG9zZTpiZWZvcmUgeworICAgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgICAgY29udGVudDogJ1wwMEQ3JzsKKyAgICAgICAgY29sb3I6IHZhcigtLWRyYXdlci1jbG9zZS1jb2xvcik7CisgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CisgICAgICAgIGZvbnQtc2l6ZTogMnJlbTsKKyAgICAgICAgbGluZS1oZWlnaHQ6IDE7CisgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfQorICAgICAgW3R5cGU9ImNoZWNrYm94Il0uZHJhd2VyICsgKiAuZHJhd2VyLWNsb3NlOmhvdmVyLCBbdHlwZT0iY2hlY2tib3giXS5kcmF3ZXIgKyAqIC5kcmF3ZXItY2xvc2U6Zm9jdXMgeworICAgICAgICBiYWNrZ3JvdW5kOiB2YXIoLS1kcmF3ZXItaG92ZXItYmFjay1jb2xvcik7IH0KKyAgICBAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAzMjBweCkgeworICAgICAgW3R5cGU9ImNoZWNrYm94Il0uZHJhd2VyICsgKiB7CisgICAgICAgIHdpZHRoOiAxMDAlOyB9IH0KKyAgW3R5cGU9ImNoZWNrYm94Il0uZHJhd2VyOmNoZWNrZWQgKyAqIHsKKyAgICByaWdodDogMDsgfQorICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MDBweCkgeworICAgIFt0eXBlPSJjaGVja2JveCJdLmRyYXdlcjpub3QoLnBlcnNpc3RlbnQpICsgKiB7CisgICAgICBwb3NpdGlvbjogc3RhdGljOworICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgei1pbmRleDogMTEwMDsgfQorICAgICAgW3R5cGU9ImNoZWNrYm94Il0uZHJhd2VyOm5vdCgucGVyc2lzdGVudCkgKyAqIC5kcmF3ZXItY2xvc2UgeworICAgICAgICBkaXNwbGF5OiBub25lOyB9IH0KKworLyoKKyAgRGVmaW5pdGlvbnMgZm9yIHRoZSByZXNwb25zaXZlIHRhYmxlIGNvbXBvbmVudC4KKyovCisvKiBUYWJsZSBtb2R1bGUgQ1NTIHZhcmlhYmxlIGRlZmluaXRpb25zLiAqLworOnJvb3QgeworICAtLXRhYmxlLWJvcmRlci1jb2xvcjogIzAzMjM0YjsKKyAgLS10YWJsZS1ib3JkZXItc2VwYXJhdG9yLWNvbG9yOiAjMDMyMzRiOworICAtLXRhYmxlLWhlYWQtYmFjay1jb2xvcjogIzAzMjM0YjsKKyAgLS10YWJsZS1oZWFkLWZvcmUtY29sb3I6ICNmZmZmZmY7CisgIC0tdGFibGUtYm9keS1iYWNrLWNvbG9yOiAjZmZmZmZmOworICAtLXRhYmxlLWJvZHktZm9yZS1jb2xvcjogIzAzMjM0YjsKKyAgLS10YWJsZS1ib2R5LWFsdC1iYWNrLWNvbG9yOiAjZjRmNGY0OyB9CisKK3RhYmxlIHsKKyAgYm9yZGVyLWNvbGxhcHNlOiBzZXBhcmF0ZTsKKyAgYm9yZGVyLXNwYWNpbmc6IDA7CisgIG1hcmdpbjogMDsKKyAgZGlzcGxheTogZmxleDsKKyAgZmxleDogMCAxIGF1dG87CisgIGZsZXgtZmxvdzogcm93IHdyYXA7CisgIHBhZGRpbmc6IHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKTsKKyAgcGFkZGluZy10b3A6IDA7IH0KKyAgdGFibGUgY2FwdGlvbiB7CisgICAgZm9udC1zaXplOiAxcmVtOworICAgIG1hcmdpbjogY2FsYygyICogdmFyKC0tdW5pdmVyc2FsLW1hcmdpbikpIDA7CisgICAgbWF4LXdpZHRoOiAxMDAlOworICAgIGZsZXg6IDAgMCAxMDAlOyB9CisgIHRhYmxlIHRoZWFkLCB0YWJsZSB0Ym9keSB7CisgICAgZGlzcGxheTogZmxleDsKKyAgICBmbGV4LWZsb3c6IHJvdyB3cmFwOworICAgIGJvcmRlcjogMC4wNzE0Mjg1NzE0cmVtIHNvbGlkIHZhcigtLXRhYmxlLWJvcmRlci1jb2xvcik7IH0KKyAgdGFibGUgdGhlYWQgeworICAgIHotaW5kZXg6IDk5OTsKKyAgICBib3JkZXItcmFkaXVzOiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cykgdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpIDAgMDsKKyAgICBib3JkZXItYm90dG9tOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tdGFibGUtYm9yZGVyLXNlcGFyYXRvci1jb2xvcik7IH0KKyAgdGFibGUgdGJvZHkgeworICAgIGJvcmRlci10b3A6IDA7CisgICAgbWFyZ2luLXRvcDogY2FsYygwIC0gdmFyKC0tdW5pdmVyc2FsLW1hcmdpbikpOworICAgIGJvcmRlci1yYWRpdXM6IDAgMCB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cykgdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpOyB9CisgIHRhYmxlIHRyIHsKKyAgICBkaXNwbGF5OiBmbGV4OworICAgIHBhZGRpbmc6IDA7IH0KKyAgdGFibGUgdGgsIHRhYmxlIHRkIHsKKyAgICBwYWRkaW5nOiBjYWxjKDAuNSAqIHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSk7CisJCWZvbnQtc2l6ZTogMC45cmVtOyB9CisgIHRhYmxlIHRoIHsKKyAgICB0ZXh0LWFsaWduOiBsZWZ0OworICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYmxlLWhlYWQtYmFjay1jb2xvcik7CisgICAgY29sb3I6IHZhcigtLXRhYmxlLWhlYWQtZm9yZS1jb2xvcik7IH0KKyAgdGFibGUgdGQgeworICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYmxlLWJvZHktYmFjay1jb2xvcik7CisgICAgY29sb3I6IHZhcigtLXRhYmxlLWJvZHktZm9yZS1jb2xvcik7CisgICAgYm9yZGVyLXRvcDogMC4wNzE0Mjg1NzE0cmVtIHNvbGlkIHZhcigtLXRhYmxlLWJvcmRlci1jb2xvcik7IH0KKwordGFibGU6bm90KC5ob3Jpem9udGFsKSB7CisgIG92ZXJmbG93OiBhdXRvOworICBtYXgtaGVpZ2h0OiAxMDAlOyB9CisgIHRhYmxlOm5vdCguaG9yaXpvbnRhbCkgdGhlYWQsIHRhYmxlOm5vdCguaG9yaXpvbnRhbCkgdGJvZHkgeworICAgIG1heC13aWR0aDogMTAwJTsKKyAgICBmbGV4OiAwIDAgMTAwJTsgfQorICB0YWJsZTpub3QoLmhvcml6b250YWwpIHRyIHsKKyAgICBmbGV4LWZsb3c6IHJvdyB3cmFwOworICAgIGZsZXg6IDAgMCAxMDAlOyB9CisgIHRhYmxlOm5vdCguaG9yaXpvbnRhbCkgdGgsIHRhYmxlOm5vdCguaG9yaXpvbnRhbCkgdGQgeworICAgIGZsZXg6IDEgMCAwJTsKKyAgICBvdmVyZmxvdzogaGlkZGVuOworICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB9CisgIHRhYmxlOm5vdCguaG9yaXpvbnRhbCkgdGhlYWQgeworICAgIHBvc2l0aW9uOiBzdGlja3k7CisgICAgdG9wOiAwOyB9CisgIHRhYmxlOm5vdCguaG9yaXpvbnRhbCkgdGJvZHkgdHI6Zmlyc3QtY2hpbGQgdGQgeworICAgIGJvcmRlci10b3A6IDA7IH0KKwordGFibGUuaG9yaXpvbnRhbCB7CisgIGJvcmRlcjogMDsgfQorICB0YWJsZS5ob3Jpem9udGFsIHRoZWFkLCB0YWJsZS5ob3Jpem9udGFsIHRib2R5IHsKKyAgICBib3JkZXI6IDA7CisgICAgZmxleDogLjIgMCAwOworICAgIGZsZXgtZmxvdzogcm93IG5vd3JhcDsgfQorICB0YWJsZS5ob3Jpem9udGFsIHRib2R5IHsKKyAgICBvdmVyZmxvdzogYXV0bzsKKyAgICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47CisgICAgZmxleDogLjggMCAwOworICAgIG1hcmdpbi1sZWZ0OiAwOworICAgIHBhZGRpbmctYm90dG9tOiBjYWxjKHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSAvIDQpOyB9CisgIHRhYmxlLmhvcml6b250YWwgdHIgeworICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgICAgZmxleDogMSAwIGF1dG87IH0KKyAgdGFibGUuaG9yaXpvbnRhbCB0aCwgdGFibGUuaG9yaXpvbnRhbCB0ZCB7CisgICAgd2lkdGg6IGF1dG87CisgICAgYm9yZGVyOiAwOworICAgIGJvcmRlci1ib3R0b206IDAuMDcxNDI4NTcxNHJlbSBzb2xpZCB2YXIoLS10YWJsZS1ib3JkZXItY29sb3IpOyB9CisgICAgdGFibGUuaG9yaXpvbnRhbCB0aDpub3QoOmZpcnN0LWNoaWxkKSwgdGFibGUuaG9yaXpvbnRhbCB0ZDpub3QoOmZpcnN0LWNoaWxkKSB7CisgICAgICBib3JkZXItdG9wOiAwOyB9CisgIHRhYmxlLmhvcml6b250YWwgdGggeworICAgIHRleHQtYWxpZ246IHJpZ2h0OworICAgIGJvcmRlci1sZWZ0OiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tdGFibGUtYm9yZGVyLWNvbG9yKTsKKyAgICBib3JkZXItcmlnaHQ6IDAuMDcxNDI4NTcxNHJlbSBzb2xpZCB2YXIoLS10YWJsZS1ib3JkZXItc2VwYXJhdG9yLWNvbG9yKTsgfQorICB0YWJsZS5ob3Jpem9udGFsIHRoZWFkIHRyOmZpcnN0LWNoaWxkIHsKKyAgICBwYWRkaW5nLWxlZnQ6IDA7IH0KKyAgdGFibGUuaG9yaXpvbnRhbCB0aDpmaXJzdC1jaGlsZCwgdGFibGUuaG9yaXpvbnRhbCB0ZDpmaXJzdC1jaGlsZCB7CisgICAgYm9yZGVyLXRvcDogMC4wNzE0Mjg1NzE0cmVtIHNvbGlkIHZhcigtLXRhYmxlLWJvcmRlci1jb2xvcik7IH0KKyAgdGFibGUuaG9yaXpvbnRhbCB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkIHsKKyAgICBib3JkZXItcmlnaHQ6IDAuMDcxNDI4NTcxNHJlbSBzb2xpZCB2YXIoLS10YWJsZS1ib3JkZXItY29sb3IpOyB9CisgICAgdGFibGUuaG9yaXpvbnRhbCB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkOmZpcnN0LWNoaWxkIHsKKyAgICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAwLjI1cmVtOyB9CisgICAgdGFibGUuaG9yaXpvbnRhbCB0Ym9keSB0cjpsYXN0LWNoaWxkIHRkOmxhc3QtY2hpbGQgeworICAgICAgYm9yZGVyLWJvdHRvbS1yaWdodC1yYWRpdXM6IDAuMjVyZW07IH0KKyAgdGFibGUuaG9yaXpvbnRhbCB0aGVhZCB0cjpmaXJzdC1jaGlsZCB0aDpmaXJzdC1jaGlsZCB7CisgICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMC4yNXJlbTsgfQorICB0YWJsZS5ob3Jpem9udGFsIHRoZWFkIHRyOmZpcnN0LWNoaWxkIHRoOmxhc3QtY2hpbGQgeworICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IDAuMjVyZW07IH0KKworQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDk5cHgpIHsKKyAgdGFibGUsIHRhYmxlLmhvcml6b250YWwgeworICAgIGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7CisgICAgYm9yZGVyOiAwOworICAgIHdpZHRoOiAxMDAlOworICAgIGRpc3BsYXk6IHRhYmxlOyB9CisgICAgdGFibGUgdGhlYWQsIHRhYmxlIHRoLCB0YWJsZS5ob3Jpem9udGFsIHRoZWFkLCB0YWJsZS5ob3Jpem9udGFsIHRoIHsKKyAgICAgIGJvcmRlcjogMDsKKyAgICAgIGhlaWdodDogMXB4OworICAgICAgd2lkdGg6IDFweDsKKyAgICAgIG1hcmdpbjogLTFweDsKKyAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgICBwYWRkaW5nOiAwOworICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgY2xpcDogcmVjdCgwIDAgMCAwKTsKKyAgICAgIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCgxMDAlKTsKKyAgICAgIGNsaXAtcGF0aDogaW5zZXQoMTAwJSk7IH0KKyAgICB0YWJsZSB0Ym9keSwgdGFibGUuaG9yaXpvbnRhbCB0Ym9keSB7CisgICAgICBib3JkZXI6IDA7CisgICAgICBkaXNwbGF5OiB0YWJsZS1yb3ctZ3JvdXA7IH0KKyAgICB0YWJsZSB0ciwgdGFibGUuaG9yaXpvbnRhbCB0ciB7CisgICAgICBkaXNwbGF5OiBibG9jazsKKyAgICAgIGJvcmRlcjogMC4wNzE0Mjg1NzE0cmVtIHNvbGlkIHZhcigtLXRhYmxlLWJvcmRlci1jb2xvcik7CisgICAgICBib3JkZXItcmFkaXVzOiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cyk7CisgICAgICBiYWNrZ3JvdW5kOiAjZmZmZmZmOworICAgICAgcGFkZGluZzogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpOworICAgICAgbWFyZ2luOiB2YXIoLS11bml2ZXJzYWwtbWFyZ2luKTsKKyAgICAgIG1hcmdpbi1ib3R0b206IGNhbGMoMSAqIHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pKTsgfQorICAgIHRhYmxlIHRoLCB0YWJsZSB0ZCwgdGFibGUuaG9yaXpvbnRhbCB0aCwgdGFibGUuaG9yaXpvbnRhbCB0ZCB7CisgICAgICB3aWR0aDogYXV0bzsgfQorICAgIHRhYmxlIHRkLCB0YWJsZS5ob3Jpem9udGFsIHRkIHsKKyAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgYm9yZGVyOiAwOworICAgICAgdGV4dC1hbGlnbjogcmlnaHQ7IH0KKyAgICB0YWJsZSB0ZDpiZWZvcmUsIHRhYmxlLmhvcml6b250YWwgdGQ6YmVmb3JlIHsKKyAgICAgIGNvbnRlbnQ6IGF0dHIoZGF0YS1sYWJlbCk7CisgICAgICBmbG9hdDogbGVmdDsKKyAgICAgIGZvbnQtd2VpZ2h0OiA2MDA7IH0KKyAgICB0YWJsZSB0aDpmaXJzdC1jaGlsZCwgdGFibGUgdGQ6Zmlyc3QtY2hpbGQsIHRhYmxlLmhvcml6b250YWwgdGg6Zmlyc3QtY2hpbGQsIHRhYmxlLmhvcml6b250YWwgdGQ6Zmlyc3QtY2hpbGQgeworICAgICAgYm9yZGVyLXRvcDogMDsgfQorICAgIHRhYmxlIHRib2R5IHRyOmxhc3QtY2hpbGQgdGQsIHRhYmxlLmhvcml6b250YWwgdGJvZHkgdHI6bGFzdC1jaGlsZCB0ZCB7CisgICAgICBib3JkZXItcmlnaHQ6IDA7IH0gfQordGFibGUgdHI6bnRoLW9mLXR5cGUoMm4pID4gdGQgeworICBiYWNrZ3JvdW5kOiB2YXIoLS10YWJsZS1ib2R5LWFsdC1iYWNrLWNvbG9yKTsgfQorCitAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA1MDBweCkgeworICB0YWJsZSB0cjpudGgtb2YtdHlwZSgybikgeworICAgIGJhY2tncm91bmQ6IHZhcigtLXRhYmxlLWJvZHktYWx0LWJhY2stY29sb3IpOyB9IH0KKzpyb290IHsKKyAgLS10YWJsZS1ib2R5LWhvdmVyLWJhY2stY29sb3I6ICM5MGNhZjk7IH0KKwordGFibGUuaG92ZXJhYmxlIHRyOmhvdmVyLCB0YWJsZS5ob3ZlcmFibGUgdHI6aG92ZXIgPiB0ZCwgdGFibGUuaG92ZXJhYmxlIHRyOmZvY3VzLCB0YWJsZS5ob3ZlcmFibGUgdHI6Zm9jdXMgPiB0ZCB7CisgIGJhY2tncm91bmQ6IHZhcigtLXRhYmxlLWJvZHktaG92ZXItYmFjay1jb2xvcik7IH0KKworQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTAwcHgpIHsKKyAgdGFibGUuaG92ZXJhYmxlIHRyOmhvdmVyLCB0YWJsZS5ob3ZlcmFibGUgdHI6aG92ZXIgPiB0ZCwgdGFibGUuaG92ZXJhYmxlIHRyOmZvY3VzLCB0YWJsZS5ob3ZlcmFibGUgdHI6Zm9jdXMgPiB0ZCB7CisgICAgYmFja2dyb3VuZDogdmFyKC0tdGFibGUtYm9keS1ob3Zlci1iYWNrLWNvbG9yKTsgfSB9CisvKgorICBEZWZpbml0aW9ucyBmb3IgY29udGV4dHVhbCBiYWNrZ3JvdW5kIGVsZW1lbnRzLCB0b2FzdHMgYW5kIHRvb2x0aXBzLgorKi8KKy8qIENvbnRleHR1YWwgbW9kdWxlIENTUyB2YXJpYWJsZSBkZWZpbml0aW9ucyAqLworOnJvb3QgeworICAtLW1hcmstYmFjay1jb2xvcjogIzNjYjRlNjsKKyAgLS1tYXJrLWZvcmUtY29sb3I6ICNmZmZmZmY7IH0KKworbWFyayB7CisgIGJhY2tncm91bmQ6IHZhcigtLW1hcmstYmFjay1jb2xvcik7CisgIGNvbG9yOiB2YXIoLS1tYXJrLWZvcmUtY29sb3IpOworICBmb250LXNpemU6IDAuOTVlbTsKKyAgbGluZS1oZWlnaHQ6IDFlbTsKKyAgYm9yZGVyLXJhZGl1czogdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpOworICBwYWRkaW5nOiBjYWxjKHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSAvIDQpIHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKTsgfQorICBtYXJrLmlubGluZS1ibG9jayB7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIGZvbnQtc2l6ZTogMWVtOworICAgIGxpbmUtaGVpZ2h0OiAxLjQ7CisgICAgcGFkZGluZzogY2FsYyh2YXIoLS11bml2ZXJzYWwtcGFkZGluZykgLyAyKSB2YXIoLS11bml2ZXJzYWwtcGFkZGluZyk7IH0KKworOnJvb3QgeworICAtLXRvYXN0LWJhY2stY29sb3I6ICM0MjQyNDI7CisgIC0tdG9hc3QtZm9yZS1jb2xvcjogI2ZhZmFmYTsgfQorCisudG9hc3QgeworICBwb3NpdGlvbjogZml4ZWQ7CisgIGJvdHRvbTogY2FsYyh2YXIoLS11bml2ZXJzYWwtbWFyZ2luKSAqIDMpOworICBsZWZ0OiA1MCU7CisgIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpOworICB6LWluZGV4OiAxMTExOworICBjb2xvcjogdmFyKC0tdG9hc3QtZm9yZS1jb2xvcik7CisgIGJhY2tncm91bmQ6IHZhcigtLXRvYXN0LWJhY2stY29sb3IpOworICBib3JkZXItcmFkaXVzOiBjYWxjKHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKSAqIDE2KTsKKyAgcGFkZGluZzogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIGNhbGModmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpICogMyk7IH0KKworOnJvb3QgeworICAtLXRvb2x0aXAtYmFjay1jb2xvcjogIzIxMjEyMTsKKyAgLS10b29sdGlwLWZvcmUtY29sb3I6ICNmYWZhZmE7IH0KKworLnRvb2x0aXAgeworICBwb3NpdGlvbjogcmVsYXRpdmU7CisgIGRpc3BsYXk6IGlubGluZS1ibG9jazsgfQorICAudG9vbHRpcDpiZWZvcmUsIC50b29sdGlwOmFmdGVyIHsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgb3BhY2l0eTogMDsKKyAgICBjbGlwOiByZWN0KDAgMCAwIDApOworICAgIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCgxMDAlKTsKKyAgICBjbGlwLXBhdGg6IGluc2V0KDEwMCUpOworICAgIHRyYW5zaXRpb246IGFsbCAwLjNzOworICAgIHotaW5kZXg6IDEwMTA7CisgICAgbGVmdDogNTAlOyB9CisgIC50b29sdGlwOm5vdCguYm90dG9tKTpiZWZvcmUsIC50b29sdGlwOm5vdCguYm90dG9tKTphZnRlciB7CisgICAgYm90dG9tOiA3NSU7IH0KKyAgLnRvb2x0aXAuYm90dG9tOmJlZm9yZSwgLnRvb2x0aXAuYm90dG9tOmFmdGVyIHsKKyAgICB0b3A6IDc1JTsgfQorICAudG9vbHRpcDpob3ZlcjpiZWZvcmUsIC50b29sdGlwOmhvdmVyOmFmdGVyLCAudG9vbHRpcDpmb2N1czpiZWZvcmUsIC50b29sdGlwOmZvY3VzOmFmdGVyIHsKKyAgICBvcGFjaXR5OiAxOworICAgIGNsaXA6IGF1dG87CisgICAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDAlKTsKKyAgICBjbGlwLXBhdGg6IGluc2V0KDAlKTsgfQorICAudG9vbHRpcDpiZWZvcmUgeworICAgIGNvbnRlbnQ6ICcnOworICAgIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50OworICAgIGJvcmRlcjogdmFyKC0tdW5pdmVyc2FsLW1hcmdpbikgc29saWQgdHJhbnNwYXJlbnQ7CisgICAgbGVmdDogY2FsYyg1MCUgLSB2YXIoLS11bml2ZXJzYWwtbWFyZ2luKSk7IH0KKyAgLnRvb2x0aXA6bm90KC5ib3R0b20pOmJlZm9yZSB7CisgICAgYm9yZGVyLXRvcC1jb2xvcjogIzIxMjEyMTsgfQorICAudG9vbHRpcC5ib3R0b206YmVmb3JlIHsKKyAgICBib3JkZXItYm90dG9tLWNvbG9yOiAjMjEyMTIxOyB9CisgIC50b29sdGlwOmFmdGVyIHsKKyAgICBjb250ZW50OiBhdHRyKGFyaWEtbGFiZWwpOworICAgIGNvbG9yOiB2YXIoLS10b29sdGlwLWZvcmUtY29sb3IpOworICAgIGJhY2tncm91bmQ6IHZhcigtLXRvb2x0aXAtYmFjay1jb2xvcik7CisgICAgYm9yZGVyLXJhZGl1czogdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpOworICAgIHBhZGRpbmc6IHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKTsKKyAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWCgtNTAlKTsgfQorICAudG9vbHRpcDpub3QoLmJvdHRvbSk6YWZ0ZXIgeworICAgIG1hcmdpbi1ib3R0b206IGNhbGMoMiAqIHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pKTsgfQorICAudG9vbHRpcC5ib3R0b206YWZ0ZXIgeworICAgIG1hcmdpbi10b3A6IGNhbGMoMiAqIHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pKTsgfQorCis6cm9vdCB7CisgIC0tbW9kYWwtb3ZlcmxheS1jb2xvcjogcmdiYSgwLCAwLCAwLCAwLjQ1KTsKKyAgLS1tb2RhbC1jbG9zZS1jb2xvcjogI2U2MDA3ZTsKKyAgLS1tb2RhbC1jbG9zZS1ob3Zlci1jb2xvcjogI2ZmZTk3ZjsgfQorCitbdHlwZT0iY2hlY2tib3giXS5tb2RhbCB7CisgIGhlaWdodDogMXB4OworICB3aWR0aDogMXB4OworICBtYXJnaW46IC0xcHg7CisgIG92ZXJmbG93OiBoaWRkZW47CisgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgY2xpcDogcmVjdCgwIDAgMCAwKTsKKyAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDEwMCUpOworICBjbGlwLXBhdGg6IGluc2V0KDEwMCUpOyB9CisgIFt0eXBlPSJjaGVja2JveCJdLm1vZGFsICsgZGl2IHsKKyAgICBwb3NpdGlvbjogZml4ZWQ7CisgICAgdG9wOiAwOworICAgIGxlZnQ6IDA7CisgICAgZGlzcGxheTogbm9uZTsKKyAgICB3aWR0aDogMTAwdnc7CisgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICBiYWNrZ3JvdW5kOiB2YXIoLS1tb2RhbC1vdmVybGF5LWNvbG9yKTsgfQorICAgIFt0eXBlPSJjaGVja2JveCJdLm1vZGFsICsgZGl2IC5jYXJkIHsKKyAgICAgIG1hcmdpbjogMCBhdXRvOworICAgICAgbWF4LWhlaWdodDogNTB2aDsKKyAgICAgIG92ZXJmbG93OiBhdXRvOyB9CisgICAgICBbdHlwZT0iY2hlY2tib3giXS5tb2RhbCArIGRpdiAuY2FyZCAubW9kYWwtY2xvc2UgeworICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIHRvcDogMDsKKyAgICAgICAgcmlnaHQ6IDA7CisgICAgICAgIHdpZHRoOiAxLjc1cmVtOworICAgICAgICBoZWlnaHQ6IDEuNzVyZW07CisgICAgICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKTsKKyAgICAgICAgcGFkZGluZzogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpOworICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIGN1cnNvcjogcG9pbnRlcjsKKyAgICAgICAgdHJhbnNpdGlvbjogYmFja2dyb3VuZCAwLjNzOyB9CisgICAgICAgIFt0eXBlPSJjaGVja2JveCJdLm1vZGFsICsgZGl2IC5jYXJkIC5tb2RhbC1jbG9zZTpiZWZvcmUgeworICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICAgIGNvbnRlbnQ6ICdcMDBENyc7CisgICAgICAgICAgY29sb3I6IHZhcigtLW1vZGFsLWNsb3NlLWNvbG9yKTsKKyAgICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgICAgZm9udC1mYW1pbHk6IHNhbnMtc2VyaWY7CisgICAgICAgICAgZm9udC1zaXplOiAxLjc1cmVtOworICAgICAgICAgIGxpbmUtaGVpZ2h0OiAxOworICAgICAgICAgIHRleHQtYWxpZ246IGNlbnRlcjsgfQorICAgICAgICBbdHlwZT0iY2hlY2tib3giXS5tb2RhbCArIGRpdiAuY2FyZCAubW9kYWwtY2xvc2U6aG92ZXIsIFt0eXBlPSJjaGVja2JveCJdLm1vZGFsICsgZGl2IC5jYXJkIC5tb2RhbC1jbG9zZTpmb2N1cyB7CisgICAgICAgICAgYmFja2dyb3VuZDogdmFyKC0tbW9kYWwtY2xvc2UtaG92ZXItY29sb3IpOyB9CisgIFt0eXBlPSJjaGVja2JveCJdLm1vZGFsOmNoZWNrZWQgKyBkaXYgeworICAgIGRpc3BsYXk6IGZsZXg7CisgICAgZmxleDogMCAxIGF1dG87CisgICAgei1pbmRleDogMTIwMDsgfQorICAgIFt0eXBlPSJjaGVja2JveCJdLm1vZGFsOmNoZWNrZWQgKyBkaXYgLmNhcmQgLm1vZGFsLWNsb3NlIHsKKyAgICAgIHotaW5kZXg6IDEyMTE7IH0KKworOnJvb3QgeworICAtLWNvbGxhcHNlLWxhYmVsLWJhY2stY29sb3I6ICMwMzIzNGI7CisgIC0tY29sbGFwc2UtbGFiZWwtZm9yZS1jb2xvcjogI2ZmZmZmZjsKKyAgLS1jb2xsYXBzZS1sYWJlbC1ob3Zlci1iYWNrLWNvbG9yOiAjM2NiNGU2OworICAtLWNvbGxhcHNlLXNlbGVjdGVkLWxhYmVsLWJhY2stY29sb3I6ICMzY2I0ZTY7CisgIC0tY29sbGFwc2UtYm9yZGVyLWNvbG9yOiB2YXIoLS1jb2xsYXBzZS1sYWJlbC1iYWNrLWNvbG9yKTsKKyAgLS1jb2xsYXBzZS1zZWxlY3RlZC1ib3JkZXItY29sb3I6ICNjZWVjZjg7CisgIC0tY29sbGFwc2UtY29udGVudC1iYWNrLWNvbG9yOiAjZmZmZmZmOworICAtLWNvbGxhcHNlLXNlbGVjdGVkLWxhYmVsLWJvcmRlci1jb2xvcjogIzNjYjRlNjsgfQorCisuY29sbGFwc2UgeworICB3aWR0aDogY2FsYygxMDAlIC0gMiAqIHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pKTsKKyAgb3BhY2l0eTogMTsKKyAgZGlzcGxheTogZmxleDsKKyAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKKyAgbWFyZ2luOiB2YXIoLS11bml2ZXJzYWwtbWFyZ2luKTsKKyAgYm9yZGVyLXJhZGl1czogdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpOyB9CisgIC5jb2xsYXBzZSA+IFt0eXBlPSJyYWRpbyJdLCAuY29sbGFwc2UgPiBbdHlwZT0iY2hlY2tib3giXSB7CisgICAgaGVpZ2h0OiAxcHg7CisgICAgd2lkdGg6IDFweDsKKyAgICBtYXJnaW46IC0xcHg7CisgICAgb3ZlcmZsb3c6IGhpZGRlbjsKKyAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgY2xpcDogcmVjdCgwIDAgMCAwKTsKKyAgICAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoMTAwJSk7CisgICAgY2xpcC1wYXRoOiBpbnNldCgxMDAlKTsgfQorICAuY29sbGFwc2UgPiBsYWJlbCB7CisgICAgZmxleC1ncm93OiAxOworICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICBoZWlnaHQ6IDEuMjVyZW07CisgICAgY3Vyc29yOiBwb2ludGVyOworICAgIHRyYW5zaXRpb246IGJhY2tncm91bmQgMC4yczsKKyAgICBjb2xvcjogdmFyKC0tY29sbGFwc2UtbGFiZWwtZm9yZS1jb2xvcik7CisgICAgYmFja2dyb3VuZDogdmFyKC0tY29sbGFwc2UtbGFiZWwtYmFjay1jb2xvcik7CisgICAgYm9yZGVyOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tY29sbGFwc2Utc2VsZWN0ZWQtYm9yZGVyLWNvbG9yKTsKKyAgICBwYWRkaW5nOiBjYWxjKDEuMjUgKiB2YXIoLS11bml2ZXJzYWwtcGFkZGluZykpOyB9CisgICAgLmNvbGxhcHNlID4gbGFiZWw6aG92ZXIsIC5jb2xsYXBzZSA+IGxhYmVsOmZvY3VzIHsKKyAgICAgIGJhY2tncm91bmQ6IHZhcigtLWNvbGxhcHNlLWxhYmVsLWhvdmVyLWJhY2stY29sb3IpOyB9CisgICAgLmNvbGxhcHNlID4gbGFiZWwgKyBkaXYgeworICAgICAgZmxleC1iYXNpczogYXV0bzsKKyAgICAgIGhlaWdodDogMXB4OworICAgICAgd2lkdGg6IDFweDsKKyAgICAgIG1hcmdpbjogLTFweDsKKyAgICAgIG92ZXJmbG93OiBoaWRkZW47CisgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICBjbGlwOiByZWN0KDAgMCAwIDApOworICAgICAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDEwMCUpOworICAgICAgY2xpcC1wYXRoOiBpbnNldCgxMDAlKTsKKyAgICAgIHRyYW5zaXRpb246IG1heC1oZWlnaHQgMC4zczsKKyAgICAgIG1heC1oZWlnaHQ6IDFweDsgfQorICAuY29sbGFwc2UgPiA6Y2hlY2tlZCArIGxhYmVsIHsKKyAgICBiYWNrZ3JvdW5kOiB2YXIoLS1jb2xsYXBzZS1zZWxlY3RlZC1sYWJlbC1iYWNrLWNvbG9yKTsKKyAgICBib3JkZXItY29sb3I6IHZhcigtLWNvbGxhcHNlLXNlbGVjdGVkLWxhYmVsLWJvcmRlci1jb2xvcik7IH0KKyAgICAuY29sbGFwc2UgPiA6Y2hlY2tlZCArIGxhYmVsICsgZGl2IHsKKyAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CisgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICB3aWR0aDogMTAwJTsKKyAgICAgIGhlaWdodDogYXV0bzsKKyAgICAgIG92ZXJmbG93OiBhdXRvOworICAgICAgbWFyZ2luOiAwOworICAgICAgYmFja2dyb3VuZDogdmFyKC0tY29sbGFwc2UtY29udGVudC1iYWNrLWNvbG9yKTsKKyAgICAgIGJvcmRlcjogMC4wNzE0Mjg1NzE0cmVtIHNvbGlkIHZhcigtLWNvbGxhcHNlLXNlbGVjdGVkLWJvcmRlci1jb2xvcik7CisgICAgICBib3JkZXItdG9wOiAwOworICAgICAgcGFkZGluZzogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpOworICAgICAgY2xpcDogYXV0bzsKKyAgICAgIC13ZWJraXQtY2xpcC1wYXRoOiBpbnNldCgwJSk7CisgICAgICBjbGlwLXBhdGg6IGluc2V0KDAlKTsKKyAgICAgIG1heC1oZWlnaHQ6IDEwMCU7IH0KKyAgLmNvbGxhcHNlID4gbGFiZWw6bm90KDpmaXJzdC1vZi10eXBlKSB7CisgICAgYm9yZGVyLXRvcDogMDsgfQorICAuY29sbGFwc2UgPiBsYWJlbDpmaXJzdC1vZi10eXBlIHsKKyAgICBib3JkZXItcmFkaXVzOiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cykgdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpIDAgMDsgfQorICAuY29sbGFwc2UgPiBsYWJlbDpsYXN0LW9mLXR5cGU6bm90KDpmaXJzdC1vZi10eXBlKSB7CisgICAgYm9yZGVyLXJhZGl1czogMCAwIHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKSB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cyk7IH0KKyAgLmNvbGxhcHNlID4gbGFiZWw6bGFzdC1vZi10eXBlOmZpcnN0LW9mLXR5cGUgeworICAgIGJvcmRlci1yYWRpdXM6IHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKTsgfQorICAuY29sbGFwc2UgPiA6Y2hlY2tlZDpsYXN0LW9mLXR5cGU6bm90KDpmaXJzdC1vZi10eXBlKSArIGxhYmVsIHsKKyAgICBib3JkZXItcmFkaXVzOiAwOyB9CisgIC5jb2xsYXBzZSA+IDpjaGVja2VkOmxhc3Qtb2YtdHlwZSArIGxhYmVsICsgZGl2IHsKKyAgICBib3JkZXItcmFkaXVzOiAwIDAgdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpIHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKTsgfQorCisvKgorICBDdXN0b20gZWxlbWVudHMgZm9yIGNvbnRleHR1YWwgYmFja2dyb3VuZCBlbGVtZW50cywgdG9hc3RzIGFuZCB0b29sdGlwcy4KKyovCittYXJrLnRlcnRpYXJ5IHsKKyAgLS1tYXJrLWJhY2stY29sb3I6ICMzY2I0ZTY7IH0KKworbWFyay50YWcgeworICBwYWRkaW5nOiBjYWxjKHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKS8yKSB2YXIoLS11bml2ZXJzYWwtcGFkZGluZyk7CisgIGJvcmRlci1yYWRpdXM6IDFlbTsgfQorCisvKgorICBEZWZpbml0aW9ucyBmb3IgcHJvZ3Jlc3MgZWxlbWVudHMgYW5kIHNwaW5uZXJzLgorKi8KKy8qIFByb2dyZXNzIG1vZHVsZSBDU1MgdmFyaWFibGUgZGVmaW5pdGlvbnMgKi8KKzpyb290IHsKKyAgLS1wcm9ncmVzcy1iYWNrLWNvbG9yOiAjM2NiNGU2OworICAtLXByb2dyZXNzLWZvcmUtY29sb3I6ICM1NTU7IH0KKworcHJvZ3Jlc3MgeworICBkaXNwbGF5OiBibG9jazsKKyAgdmVydGljYWwtYWxpZ246IGJhc2VsaW5lOworICAtd2Via2l0LWFwcGVhcmFuY2U6IG5vbmU7CisgIC1tb3otYXBwZWFyYW5jZTogbm9uZTsKKyAgYXBwZWFyYW5jZTogbm9uZTsKKyAgaGVpZ2h0OiAwLjc1cmVtOworICB3aWR0aDogY2FsYygxMDAlIC0gMiAqIHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pKTsKKyAgbWFyZ2luOiB2YXIoLS11bml2ZXJzYWwtbWFyZ2luKTsKKyAgYm9yZGVyOiAwOworICBib3JkZXItcmFkaXVzOiBjYWxjKDIgKiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cykpOworICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzcy1iYWNrLWNvbG9yKTsKKyAgY29sb3I6IHZhcigtLXByb2dyZXNzLWZvcmUtY29sb3IpOyB9CisgIHByb2dyZXNzOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHsKKyAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzcy1mb3JlLWNvbG9yKTsKKyAgICBib3JkZXItdG9wLWxlZnQtcmFkaXVzOiBjYWxjKDIgKiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cykpOworICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6IGNhbGMoMiAqIHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKSk7IH0KKyAgcHJvZ3Jlc3M6Oi13ZWJraXQtcHJvZ3Jlc3MtYmFyIHsKKyAgICBiYWNrZ3JvdW5kOiB2YXIoLS1wcm9ncmVzcy1iYWNrLWNvbG9yKTsgfQorICBwcm9ncmVzczo6LW1vei1wcm9ncmVzcy1iYXIgeworICAgIGJhY2tncm91bmQ6IHZhcigtLXByb2dyZXNzLWZvcmUtY29sb3IpOworICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IGNhbGMoMiAqIHZhcigtLXVuaXZlcnNhbC1ib3JkZXItcmFkaXVzKSk7CisgICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogY2FsYygyICogdmFyKC0tdW5pdmVyc2FsLWJvcmRlci1yYWRpdXMpKTsgfQorICBwcm9ncmVzc1t2YWx1ZT0iMTAwMCJdOjotd2Via2l0LXByb2dyZXNzLXZhbHVlIHsKKyAgICBib3JkZXItcmFkaXVzOiBjYWxjKDIgKiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cykpOyB9CisgIHByb2dyZXNzW3ZhbHVlPSIxMDAwIl06Oi1tb3otcHJvZ3Jlc3MtYmFyIHsKKyAgICBib3JkZXItcmFkaXVzOiBjYWxjKDIgKiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cykpOyB9CisgIHByb2dyZXNzLmlubGluZSB7CisgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7CisgICAgd2lkdGg6IDYwJTsgfQorCis6cm9vdCB7CisgIC0tc3Bpbm5lci1iYWNrLWNvbG9yOiAjZGRkOworICAtLXNwaW5uZXItZm9yZS1jb2xvcjogIzU1NTsgfQorCitAa2V5ZnJhbWVzIHNwaW5uZXItZG9udXQtYW5pbSB7CisgIDAlIHsKKyAgICB0cmFuc2Zvcm06IHJvdGF0ZSgwZGVnKTsgfQorICAxMDAlIHsKKyAgICB0cmFuc2Zvcm06IHJvdGF0ZSgzNjBkZWcpOyB9IH0KKy5zcGlubmVyIHsKKyAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICBtYXJnaW46IHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pOworICBib3JkZXI6IDAuMjVyZW0gc29saWQgdmFyKC0tc3Bpbm5lci1iYWNrLWNvbG9yKTsKKyAgYm9yZGVyLWxlZnQ6IDAuMjVyZW0gc29saWQgdmFyKC0tc3Bpbm5lci1mb3JlLWNvbG9yKTsKKyAgYm9yZGVyLXJhZGl1czogNTAlOworICB3aWR0aDogMS4yNXJlbTsKKyAgaGVpZ2h0OiAxLjI1cmVtOworICBhbmltYXRpb246IHNwaW5uZXItZG9udXQtYW5pbSAxLjJzIGxpbmVhciBpbmZpbml0ZTsgfQorCisvKgorICBDdXN0b20gZWxlbWVudHMgZm9yIHByb2dyZXNzIGJhcnMgYW5kIHNwaW5uZXJzLgorKi8KK3Byb2dyZXNzLnByaW1hcnkgeworICAtLXByb2dyZXNzLWZvcmUtY29sb3I6ICMxOTc2ZDI7IH0KKworcHJvZ3Jlc3Muc2Vjb25kYXJ5IHsKKyAgLS1wcm9ncmVzcy1mb3JlLWNvbG9yOiAjZDMyZjJmOyB9CisKK3Byb2dyZXNzLnRlcnRpYXJ5IHsKKyAgLS1wcm9ncmVzcy1mb3JlLWNvbG9yOiAjMzA4NzMyOyB9CisKKy5zcGlubmVyLnByaW1hcnkgeworICAtLXNwaW5uZXItZm9yZS1jb2xvcjogIzE5NzZkMjsgfQorCisuc3Bpbm5lci5zZWNvbmRhcnkgeworICAtLXNwaW5uZXItZm9yZS1jb2xvcjogI2QzMmYyZjsgfQorCisuc3Bpbm5lci50ZXJ0aWFyeSB7CisgIC0tc3Bpbm5lci1mb3JlLWNvbG9yOiAjMzA4NzMyOyB9CisKKy8qCisgIERlZmluaXRpb25zIGZvciBpY29ucyAtIHBvd2VyZWQgYnkgRmVhdGhlciAoaHR0cHM6Ly9mZWF0aGVyaWNvbnMuY29tLykuCisqLworc3BhbltjbGFzc149J2ljb24tJ10geworICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgIGhlaWdodDogMWVtOworICB3aWR0aDogMWVtOworICB2ZXJ0aWNhbC1hbGlnbjogLTAuMTI1ZW07CisgIGJhY2tncm91bmQtc2l6ZTogY29udGFpbjsKKyAgbWFyZ2luOiAwIGNhbGModmFyKC0tdW5pdmVyc2FsLW1hcmdpbikgLyA0KTsgfQorICBzcGFuW2NsYXNzXj0naWNvbi0nXS5zZWNvbmRhcnkgeworICAgIC13ZWJraXQtZmlsdGVyOiBpbnZlcnQoMjUlKTsKKyAgICBmaWx0ZXI6IGludmVydCgyNSUpOyB9CisgIHNwYW5bY2xhc3NePSdpY29uLSddLmludmVyc2UgeworICAgIC13ZWJraXQtZmlsdGVyOiBpbnZlcnQoMTAwJSk7CisgICAgZmlsdGVyOiBpbnZlcnQoMTAwJSk7IH0KKworc3Bhbi5pY29uLWFsZXJ0IHsKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMDMyMzRiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0NjaXJjbGUgY3g9JzEyJyBjeT0nMTInIHI9JzEwJyUzRSUzQy9jaXJjbGUlM0UlM0NsaW5lIHgxPScxMicgeTE9JzgnIHgyPScxMicgeTI9JzEyJyUzRSUzQy9saW5lJTNFJTNDbGluZSB4MT0nMTInIHkxPScxNicgeDI9JzEyJyB5Mj0nMTYnJTNFJTNDL2xpbmUlM0UlM0Mvc3ZnJTNFIik7IH0KK3NwYW4uaWNvbi1ib29rbWFyayB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAzMjM0Yicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDcGF0aCBkPSdNMTkgMjFsLTctNS03IDVWNWEyIDIgMCAwIDEgMi0yaDEwYTIgMiAwIDAgMSAyIDJ6JyUzRSUzQy9wYXRoJTNFJTNDL3N2ZyUzRSIpOyB9CitzcGFuLmljb24tY2FsZW5kYXIgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMzIzNGInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3JlY3QgeD0nMycgeT0nNCcgd2lkdGg9JzE4JyBoZWlnaHQ9JzE4JyByeD0nMicgcnk9JzInJTNFJTNDL3JlY3QlM0UlM0NsaW5lIHgxPScxNicgeTE9JzInIHgyPScxNicgeTI9JzYnJTNFJTNDL2xpbmUlM0UlM0NsaW5lIHgxPSc4JyB5MT0nMicgeDI9JzgnIHkyPSc2JyUzRSUzQy9saW5lJTNFJTNDbGluZSB4MT0nMycgeTE9JzEwJyB4Mj0nMjEnIHkyPScxMCclM0UlM0MvbGluZSUzRSUzQy9zdmclM0UiKTsgfQorc3Bhbi5pY29uLWNyZWRpdCB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAzMjM0Yicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDcmVjdCB4PScxJyB5PSc0JyB3aWR0aD0nMjInIGhlaWdodD0nMTYnIHJ4PScyJyByeT0nMiclM0UlM0MvcmVjdCUzRSUzQ2xpbmUgeDE9JzEnIHkxPScxMCcgeDI9JzIzJyB5Mj0nMTAnJTNFJTNDL2xpbmUlM0UlM0Mvc3ZnJTNFIik7IH0KK3NwYW4uaWNvbi1lZGl0IHsKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMDMyMzRiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0NwYXRoIGQ9J00yMCAxNC42NlYyMGEyIDIgMCAwIDEtMiAySDRhMiAyIDAgMCAxLTItMlY2YTIgMiAwIDAgMSAyLTJoNS4zNCclM0UlM0MvcGF0aCUzRSUzQ3BvbHlnb24gcG9pbnRzPScxOCAyIDIyIDYgMTIgMTYgOCAxNiA4IDEyIDE4IDInJTNFJTNDL3BvbHlnb24lM0UlM0Mvc3ZnJTNFIik7IH0KK3NwYW4uaWNvbi1saW5rIHsKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJkYXRhOmltYWdlL3N2Zyt4bWwsJTNDc3ZnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zycgd2lkdGg9JzI0JyBoZWlnaHQ9JzI0JyB2aWV3Qm94PScwIDAgMjQgMjQnIGZpbGw9J25vbmUnIHN0cm9rZT0nJTIzMDMyMzRiJyBzdHJva2Utd2lkdGg9JzInIHN0cm9rZS1saW5lY2FwPSdyb3VuZCcgc3Ryb2tlLWxpbmVqb2luPSdyb3VuZCclM0UlM0NwYXRoIGQ9J00xOCAxM3Y2YTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yVjhhMiAyIDAgMCAxIDItMmg2JyUzRSUzQy9wYXRoJTNFJTNDcG9seWxpbmUgcG9pbnRzPScxNSAzIDIxIDMgMjEgOSclM0UlM0MvcG9seWxpbmUlM0UlM0NsaW5lIHgxPScxMCcgeTE9JzE0JyB4Mj0nMjEnIHkyPSczJyUzRSUzQy9saW5lJTNFJTNDL3N2ZyUzRSIpOyB9CitzcGFuLmljb24taGVscCB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAzMjM0Yicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDcGF0aCBkPSdNOS4wOSA5YTMgMyAwIDAgMSA1LjgzIDFjMCAyLTMgMy0zIDMnJTNFJTNDL3BhdGglM0UlM0NjaXJjbGUgY3g9JzEyJyBjeT0nMTInIHI9JzEwJyUzRSUzQy9jaXJjbGUlM0UlM0NsaW5lIHgxPScxMicgeTE9JzE3JyB4Mj0nMTInIHkyPScxNyclM0UlM0MvbGluZSUzRSUzQy9zdmclM0UiKTsgfQorc3Bhbi5pY29uLWhvbWUgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMzIzNGInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3BhdGggZD0nTTMgOWw5LTcgOSA3djExYTIgMiAwIDAgMS0yIDJINWEyIDIgMCAwIDEtMi0yeiclM0UlM0MvcGF0aCUzRSUzQ3BvbHlsaW5lIHBvaW50cz0nOSAyMiA5IDEyIDE1IDEyIDE1IDIyJyUzRSUzQy9wb2x5bGluZSUzRSUzQy9zdmclM0UiKTsgfQorc3Bhbi5pY29uLWluZm8geworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMzIzNGInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ2NpcmNsZSBjeD0nMTInIGN5PScxMicgcj0nMTAnJTNFJTNDL2NpcmNsZSUzRSUzQ2xpbmUgeDE9JzEyJyB5MT0nMTYnIHgyPScxMicgeTI9JzEyJyUzRSUzQy9saW5lJTNFJTNDbGluZSB4MT0nMTInIHkxPSc4JyB4Mj0nMTInIHkyPSc4JyUzRSUzQy9saW5lJTNFJTNDL3N2ZyUzRSIpOyB9CitzcGFuLmljb24tbG9jayB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAzMjM0Yicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDcmVjdCB4PSczJyB5PScxMScgd2lkdGg9JzE4JyBoZWlnaHQ9JzExJyByeD0nMicgcnk9JzInJTNFJTNDL3JlY3QlM0UlM0NwYXRoIGQ9J003IDExVjdhNSA1IDAgMCAxIDEwIDB2NCclM0UlM0MvcGF0aCUzRSUzQy9zdmclM0UiKTsgfQorc3Bhbi5pY29uLW1haWwgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMzIzNGInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3BhdGggZD0nTTQgNGgxNmMxLjEgMCAyIC45IDIgMnYxMmMwIDEuMS0uOSAyLTIgMkg0Yy0xLjEgMC0yLS45LTItMlY2YzAtMS4xLjktMiAyLTJ6JyUzRSUzQy9wYXRoJTNFJTNDcG9seWxpbmUgcG9pbnRzPScyMiw2IDEyLDEzIDIsNiclM0UlM0MvcG9seWxpbmUlM0UlM0Mvc3ZnJTNFIik7IH0KK3NwYW4uaWNvbi1sb2NhdGlvbiB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAzMjM0Yicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDcGF0aCBkPSdNMjEgMTBjMCA3LTkgMTMtOSAxM3MtOS02LTktMTNhOSA5IDAgMCAxIDE4IDB6JyUzRSUzQy9wYXRoJTNFJTNDY2lyY2xlIGN4PScxMicgY3k9JzEwJyByPSczJyUzRSUzQy9jaXJjbGUlM0UlM0Mvc3ZnJTNFIik7IH0KK3NwYW4uaWNvbi1waG9uZSB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAzMjM0Yicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDcGF0aCBkPSdNMjIgMTYuOTJ2M2EyIDIgMCAwIDEtMi4xOCAyIDE5Ljc5IDE5Ljc5IDAgMCAxLTguNjMtMy4wNyAxOS41IDE5LjUgMCAwIDEtNi02IDE5Ljc5IDE5Ljc5IDAgMCAxLTMuMDctOC42N0EyIDIgMCAwIDEgNC4xMSAyaDNhMiAyIDAgMCAxIDIgMS43MiAxMi44NCAxMi44NCAwIDAgMCAuNyAyLjgxIDIgMiAwIDAgMS0uNDUgMi4xMUw4LjA5IDkuOTFhMTYgMTYgMCAwIDAgNiA2bDEuMjctMS4yN2EyIDIgMCAwIDEgMi4xMS0uNDUgMTIuODQgMTIuODQgMCAwIDAgMi44MS43QTIgMiAwIDAgMSAyMiAxNi45MnonJTNFJTNDL3BhdGglM0UlM0Mvc3ZnJTNFIik7IH0KK3NwYW4uaWNvbi1yc3MgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMzIzNGInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3BhdGggZD0nTTQgMTFhOSA5IDAgMCAxIDkgOSclM0UlM0MvcGF0aCUzRSUzQ3BhdGggZD0nTTQgNGExNiAxNiAwIDAgMSAxNiAxNiclM0UlM0MvcGF0aCUzRSUzQ2NpcmNsZSBjeD0nNScgY3k9JzE5JyByPScxJyUzRSUzQy9jaXJjbGUlM0UlM0Mvc3ZnJTNFIik7IH0KK3NwYW4uaWNvbi1zZWFyY2ggeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMzIzNGInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ2NpcmNsZSBjeD0nMTEnIGN5PScxMScgcj0nOCclM0UlM0MvY2lyY2xlJTNFJTNDbGluZSB4MT0nMjEnIHkxPScyMScgeDI9JzE2LjY1JyB5Mj0nMTYuNjUnJTNFJTNDL2xpbmUlM0UlM0Mvc3ZnJTNFIik7IH0KK3NwYW4uaWNvbi1zZXR0aW5ncyB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAzMjM0Yicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDY2lyY2xlIGN4PScxMicgY3k9JzEyJyByPSczJyUzRSUzQy9jaXJjbGUlM0UlM0NwYXRoIGQ9J00xOS40IDE1YTEuNjUgMS42NSAwIDAgMCAuMzMgMS44MmwuMDYuMDZhMiAyIDAgMCAxIDAgMi44MyAyIDIgMCAwIDEtMi44MyAwbC0uMDYtLjA2YTEuNjUgMS42NSAwIDAgMC0xLjgyLS4zMyAxLjY1IDEuNjUgMCAwIDAtMSAxLjUxVjIxYTIgMiAwIDAgMS0yIDIgMiAyIDAgMCAxLTItMnYtLjA5QTEuNjUgMS42NSAwIDAgMCA5IDE5LjRhMS42NSAxLjY1IDAgMCAwLTEuODIuMzNsLS4wNi4wNmEyIDIgMCAwIDEtMi44MyAwIDIgMiAwIDAgMSAwLTIuODNsLjA2LS4wNmExLjY1IDEuNjUgMCAwIDAgLjMzLTEuODIgMS42NSAxLjY1IDAgMCAwLTEuNTEtMUgzYTIgMiAwIDAgMS0yLTIgMiAyIDAgMCAxIDItMmguMDlBMS42NSAxLjY1IDAgMCAwIDQuNiA5YTEuNjUgMS42NSAwIDAgMC0uMzMtMS44MmwtLjA2LS4wNmEyIDIgMCAwIDEgMC0yLjgzIDIgMiAwIDAgMSAyLjgzIDBsLjA2LjA2YTEuNjUgMS42NSAwIDAgMCAxLjgyLjMzSDlhMS42NSAxLjY1IDAgMCAwIDEtMS41MVYzYTIgMiAwIDAgMSAyLTIgMiAyIDAgMCAxIDIgMnYuMDlhMS42NSAxLjY1IDAgMCAwIDEgMS41MSAxLjY1IDEuNjUgMCAwIDAgMS44Mi0uMzNsLjA2LS4wNmEyIDIgMCAwIDEgMi44MyAwIDIgMiAwIDAgMSAwIDIuODNsLS4wNi4wNmExLjY1IDEuNjUgMCAwIDAtLjMzIDEuODJWOWExLjY1IDEuNjUgMCAwIDAgMS41MSAxSDIxYTIgMiAwIDAgMSAyIDIgMiAyIDAgMCAxLTIgMmgtLjA5YTEuNjUgMS42NSAwIDAgMC0xLjUxIDF6JyUzRSUzQy9wYXRoJTNFJTNDL3N2ZyUzRSIpOyB9CitzcGFuLmljb24tc2hhcmUgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMzIzNGInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ2NpcmNsZSBjeD0nMTgnIGN5PSc1JyByPSczJyUzRSUzQy9jaXJjbGUlM0UlM0NjaXJjbGUgY3g9JzYnIGN5PScxMicgcj0nMyclM0UlM0MvY2lyY2xlJTNFJTNDY2lyY2xlIGN4PScxOCcgY3k9JzE5JyByPSczJyUzRSUzQy9jaXJjbGUlM0UlM0NsaW5lIHgxPSc4LjU5JyB5MT0nMTMuNTEnIHgyPScxNS40MicgeTI9JzE3LjQ5JyUzRSUzQy9saW5lJTNFJTNDbGluZSB4MT0nMTUuNDEnIHkxPSc2LjUxJyB4Mj0nOC41OScgeTI9JzEwLjQ5JyUzRSUzQy9saW5lJTNFJTNDL3N2ZyUzRSIpOyB9CitzcGFuLmljb24tY2FydCB7CisgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sLCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPScyNCcgaGVpZ2h0PScyNCcgdmlld0JveD0nMCAwIDI0IDI0JyBmaWxsPSdub25lJyBzdHJva2U9JyUyMzAzMjM0Yicgc3Ryb2tlLXdpZHRoPScyJyBzdHJva2UtbGluZWNhcD0ncm91bmQnIHN0cm9rZS1saW5lam9pbj0ncm91bmQnJTNFJTNDY2lyY2xlIGN4PSc5JyBjeT0nMjEnIHI9JzEnJTNFJTNDL2NpcmNsZSUzRSUzQ2NpcmNsZSBjeD0nMjAnIGN5PScyMScgcj0nMSclM0UlM0MvY2lyY2xlJTNFJTNDcGF0aCBkPSdNMSAxaDRsMi42OCAxMy4zOWEyIDIgMCAwIDAgMiAxLjYxaDkuNzJhMiAyIDAgMCAwIDItMS42MUwyMyA2SDYnJTNFJTNDL3BhdGglM0UlM0Mvc3ZnJTNFIik7IH0KK3NwYW4uaWNvbi11cGxvYWQgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMzIzNGInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3BhdGggZD0nTTIxIDE1djRhMiAyIDAgMCAxLTIgMkg1YTIgMiAwIDAgMS0yLTJ2LTQnJTNFJTNDL3BhdGglM0UlM0Nwb2x5bGluZSBwb2ludHM9JzE3IDggMTIgMyA3IDgnJTNFJTNDL3BvbHlsaW5lJTNFJTNDbGluZSB4MT0nMTInIHkxPSczJyB4Mj0nMTInIHkyPScxNSclM0UlM0MvbGluZSUzRSUzQy9zdmclM0UiKTsgfQorc3Bhbi5pY29uLXVzZXIgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoImRhdGE6aW1hZ2Uvc3ZnK3htbCwlM0NzdmcgeG1sbnM9J2h0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnJyB3aWR0aD0nMjQnIGhlaWdodD0nMjQnIHZpZXdCb3g9JzAgMCAyNCAyNCcgZmlsbD0nbm9uZScgc3Ryb2tlPSclMjMwMzIzNGInIHN0cm9rZS13aWR0aD0nMicgc3Ryb2tlLWxpbmVjYXA9J3JvdW5kJyBzdHJva2UtbGluZWpvaW49J3JvdW5kJyUzRSUzQ3BhdGggZD0nTTIwIDIxdi0yYTQgNCAwIDAgMC00LTRIOGE0IDQgMCAwIDAtNCA0djInJTNFJTNDL3BhdGglM0UlM0NjaXJjbGUgY3g9JzEyJyBjeT0nNycgcj0nNCclM0UlM0MvY2lyY2xlJTNFJTNDL3N2ZyUzRSIpOyB9CisKKy8qCisgIERlZmluaXRpb25zIGZvciBTVE1pY3JvZWxlY3Ryb25pY3MgaWNvbnMgKGh0dHBzOi8vYnJhbmRwb3J0YWwuc3QuY29tL2RvY3VtZW50LzI2KS4KKyovCitzcGFuLmljb24tc3QtdXBkYXRlIHsKKyAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCJVcGRhdGUuc3ZnIik7IH0KK3NwYW4uaWNvbi1zdC1hZGQgeworICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoIkFkZCBidXR0b24uc3ZnIik7IH0KKworLyoKKyAgRGVmaW5pdGlvbnMgZm9yIHV0aWxpdGllcyBhbmQgaGVscGVyIGNsYXNzZXMuCisqLworLyogVXRpbGl0eSBtb2R1bGUgQ1NTIHZhcmlhYmxlIGRlZmluaXRpb25zICovCis6cm9vdCB7CisgIC0tZ2VuZXJpYy1ib3JkZXItY29sb3I6IHJnYmEoMCwgMCwgMCwgMC4zKTsKKyAgLS1nZW5lcmljLWJveC1zaGFkb3c6IDAgMC4yODU3MTQyODU3cmVtIDAuMjg1NzE0Mjg1N3JlbSAwIHJnYmEoMCwgMCwgMCwgMC4xMjUpLCAwIDAuMTQyODU3MTQyOXJlbSAwLjE0Mjg1NzE0MjlyZW0gLTAuMTQyODU3MTQyOXJlbSByZ2JhKDAsIDAsIDAsIDAuMTI1KTsgfQorCisuaGlkZGVuIHsKKyAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9CisKKy52aXN1YWxseS1oaWRkZW4geworICBwb3NpdGlvbjogYWJzb2x1dGUgIWltcG9ydGFudDsKKyAgd2lkdGg6IDFweCAhaW1wb3J0YW50OworICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50OworICBtYXJnaW46IC0xcHggIWltcG9ydGFudDsKKyAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7CisgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKKyAgY2xpcDogcmVjdCgwIDAgMCAwKSAhaW1wb3J0YW50OworICAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoMTAwJSkgIWltcG9ydGFudDsKKyAgY2xpcC1wYXRoOiBpbnNldCgxMDAlKSAhaW1wb3J0YW50OworICBvdmVyZmxvdzogaGlkZGVuICFpbXBvcnRhbnQ7IH0KKworLmJvcmRlcmVkIHsKKyAgYm9yZGVyOiAwLjA3MTQyODU3MTRyZW0gc29saWQgdmFyKC0tZ2VuZXJpYy1ib3JkZXItY29sb3IpICFpbXBvcnRhbnQ7IH0KKworLnJvdW5kZWQgeworICBib3JkZXItcmFkaXVzOiB2YXIoLS11bml2ZXJzYWwtYm9yZGVyLXJhZGl1cykgIWltcG9ydGFudDsgfQorCisuY2lyY3VsYXIgeworICBib3JkZXItcmFkaXVzOiA1MCUgIWltcG9ydGFudDsgfQorCisuc2hhZG93ZWQgeworICBib3gtc2hhZG93OiB2YXIoLS1nZW5lcmljLWJveC1zaGFkb3cpICFpbXBvcnRhbnQ7IH0KKworLnJlc3BvbnNpdmUtbWFyZ2luIHsKKyAgbWFyZ2luOiBjYWxjKHZhcigtLXVuaXZlcnNhbC1tYXJnaW4pIC8gNCkgIWltcG9ydGFudDsgfQorICBAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiA1MDBweCkgeworICAgIC5yZXNwb25zaXZlLW1hcmdpbiB7CisgICAgICBtYXJnaW46IGNhbGModmFyKC0tdW5pdmVyc2FsLW1hcmdpbikgLyAyKSAhaW1wb3J0YW50OyB9IH0KKyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogMTI4MHB4KSB7CisgICAgLnJlc3BvbnNpdmUtbWFyZ2luIHsKKyAgICAgIG1hcmdpbjogdmFyKC0tdW5pdmVyc2FsLW1hcmdpbikgIWltcG9ydGFudDsgfSB9CisKKy5yZXNwb25zaXZlLXBhZGRpbmcgeworICBwYWRkaW5nOiBjYWxjKHZhcigtLXVuaXZlcnNhbC1wYWRkaW5nKSAvIDQpICFpbXBvcnRhbnQ7IH0KKyAgQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTAwcHgpIHsKKyAgICAucmVzcG9uc2l2ZS1wYWRkaW5nIHsKKyAgICAgIHBhZGRpbmc6IGNhbGModmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpIC8gMikgIWltcG9ydGFudDsgfSB9CisgIEBtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyODBweCkgeworICAgIC5yZXNwb25zaXZlLXBhZGRpbmcgeworICAgICAgcGFkZGluZzogdmFyKC0tdW5pdmVyc2FsLXBhZGRpbmcpICFpbXBvcnRhbnQ7IH0gfQorCitAbWVkaWEgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiA0OTlweCkgeworICAuaGlkZGVuLXNtIHsKKyAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfQorQG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDogNTAwcHgpIGFuZCAobWF4LXdpZHRoOiAxMjc5cHgpIHsKKyAgLmhpZGRlbi1tZCB7CisgICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50OyB9IH0KK0BtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDEyODBweCkgeworICAuaGlkZGVuLWxnIHsKKyAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IH0gfQorQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogNDk5cHgpIHsKKyAgLnZpc3VhbGx5LWhpZGRlbi1zbSB7CisgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7CisgICAgd2lkdGg6IDFweCAhaW1wb3J0YW50OworICAgIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7CisgICAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7CisgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7CisgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OworICAgIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDsKKyAgICAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoMTAwJSkgIWltcG9ydGFudDsKKyAgICBjbGlwLXBhdGg6IGluc2V0KDEwMCUpICFpbXBvcnRhbnQ7CisgICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OyB9IH0KK0BtZWRpYSBzY3JlZW4gYW5kIChtaW4td2lkdGg6IDUwMHB4KSBhbmQgKG1heC13aWR0aDogMTI3OXB4KSB7CisgIC52aXN1YWxseS1oaWRkZW4tbWQgeworICAgIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50OworICAgIHdpZHRoOiAxcHggIWltcG9ydGFudDsKKyAgICBoZWlnaHQ6IDFweCAhaW1wb3J0YW50OworICAgIG1hcmdpbjogLTFweCAhaW1wb3J0YW50OworICAgIGJvcmRlcjogMCAhaW1wb3J0YW50OworICAgIHBhZGRpbmc6IDAgIWltcG9ydGFudDsKKyAgICBjbGlwOiByZWN0KDAgMCAwIDApICFpbXBvcnRhbnQ7CisgICAgLXdlYmtpdC1jbGlwLXBhdGg6IGluc2V0KDEwMCUpICFpbXBvcnRhbnQ7CisgICAgY2xpcC1wYXRoOiBpbnNldCgxMDAlKSAhaW1wb3J0YW50OworICAgIG92ZXJmbG93OiBoaWRkZW4gIWltcG9ydGFudDsgfSB9CitAbWVkaWEgc2NyZWVuIGFuZCAobWluLXdpZHRoOiAxMjgwcHgpIHsKKyAgLnZpc3VhbGx5LWhpZGRlbi1sZyB7CisgICAgcG9zaXRpb246IGFic29sdXRlICFpbXBvcnRhbnQ7CisgICAgd2lkdGg6IDFweCAhaW1wb3J0YW50OworICAgIGhlaWdodDogMXB4ICFpbXBvcnRhbnQ7CisgICAgbWFyZ2luOiAtMXB4ICFpbXBvcnRhbnQ7CisgICAgYm9yZGVyOiAwICFpbXBvcnRhbnQ7CisgICAgcGFkZGluZzogMCAhaW1wb3J0YW50OworICAgIGNsaXA6IHJlY3QoMCAwIDAgMCkgIWltcG9ydGFudDsKKyAgICAtd2Via2l0LWNsaXAtcGF0aDogaW5zZXQoMTAwJSkgIWltcG9ydGFudDsKKyAgICBjbGlwLXBhdGg6IGluc2V0KDEwMCUpICFpbXBvcnRhbnQ7CisgICAgb3ZlcmZsb3c6IGhpZGRlbiAhaW1wb3J0YW50OyB9IH0KKworLyojIHNvdXJjZU1hcHBpbmdVUkw9bWluaS1jdXN0b20uY3NzLm1hcCAqLworCitpbWdbYWx0PSJTVCBsb2dvIl0geyBkaXNwbGF5OiBibG9jazsgbWFyZ2luOiBhdXRvOyB3aWR0aDogNzUlOyBtYXgtd2lkdGg6IDI1MHB4OyBtaW4td2lkdGg6IDcxcHg7IH0KK2ltZ1thbHQ9IkN1YmUgbG9nbyJdIHsgZmxvYXQ6IHJpZ2h0OyB3aWR0aDogMzAlOyBtYXgtd2lkdGg6IDEwcmVtOyBtaW4td2lkdGg6IDhyZW07IHBhZGRpbmctcmlnaHQ6IDFyZW07fQorCisuZmlndXJlIHsKKyAgZGlzcGxheTogYmxvY2s7CisgIG1hcmdpbi1sZWZ0OiBhdXRvOworICBtYXJnaW4tcmlnaHQ6IGF1dG87CisgIHRleHQtYWxpZ246IGNlbnRlcjsKK30KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9faHRtcmVzYy9zdF9sb2dvXzIwMjAucG5nIGIvX2h0bXJlc2Mvc3RfbG9nb18yMDIwLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kNmNlYmI1Ci0tLSAvZGV2L251bGwKKysrIGIvX2h0bXJlc2Mvc3RfbG9nb18yMDIwLnBuZwpCaW5hcnkgZmlsZXMgZGlmZmVyCg==