ZGlmZiAtLWdpdCBhL2NyeXB0by9kZXMuYyBiL2NyeXB0by9kZXMuYwppbmRleCBmYzVkMWI2Li5hM2M4NjNkIDEwMDY0NAotLS0gYS9jcnlwdG8vZGVzLmMKKysrIGIvY3J5cHRvL2Rlcy5jCkBAIC0xLDE4ICsxLDkgQEAKLS8qIAorLyoKICAqIENyeXB0b2dyYXBoaWMgQVBJLgogICoKICAqIERFUyAmIFRyaXBsZSBERVMgRURFIENpcGhlciBBbGdvcml0aG1zLgogICoKLSAqIE9yaWdpbmFsbHkgcmVsZWFzZWQgYXMgZGVzY29yZSBieSBEYW5hIEwuIEhvdyA8aG93QGlzbC5zdGFuZm9yZC5lZHU+LgotICogTW9kaWZpZWQgYnkgUmFpbWFyIEZhbGtlIDxyZjEzQGluZi50dS1kcmVzZGVuLmRlPiBmb3IgdGhlIExpbnV4LUtlcm5lbC4KLSAqIERlcml2ZWQgZnJvbSBDcnlwdG9hcGkgYW5kIE5ldHRsZSBpbXBsZW1lbnRhdGlvbnMsIGFkYXB0ZWQgZm9yIGluLXBsYWNlCi0gKiBzY2F0dGVybGlzdCBpbnRlcmZhY2UuICBDaGFuZ2VkIExHUEwgdG8gR1BMIHBlciBzZWN0aW9uIDMgb2YgdGhlIExHUEwuCi0gKgotICogQ29weXJpZ2h0IChjKSAxOTkyIERhbmEgTC4gSG93LgotICogQ29weXJpZ2h0IChjKSBSYWltYXIgRmFsa2UgPHJmMTNAaW5mLnR1LWRyZXNkZW4uZGU+IAotICogQ29weXJpZ2h0IChjKSBHaXNsZSBT5mxlbnNtaW5kZSA8Z2lzbGVAaWkudWliLm5vPgotICogQ29weXJpZ2h0IChDKSAyMDAxIE5pZWxzIE32bGxlci4KLSAqIENvcHlyaWdodCAoYykgMjAwMiBKYW1lcyBNb3JyaXMgPGptb3JyaXNAaW50ZXJjb2RlLmNvbS5hdT4KKyAqIENvcHlyaWdodCAoYykgMjAwNSBEYWcgQXJuZSBPc3ZpayA8ZGFAb3N2aWsubm8+CiAgKgogICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICAqIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5CkBAIC0yMCwxMSArMTEsMTEgQEAKICAqIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCiAgKgogICovCisKKyNpbmNsdWRlIDxsaW51eC9iaXRvcHMuaD4KICNpbmNsdWRlIDxsaW51eC9pbml0Lmg+CiAjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Ci0jaW5jbHVkZSA8bGludXgvbW0uaD4KICNpbmNsdWRlIDxsaW51eC9lcnJuby5oPgotI2luY2x1ZGUgPGFzbS9zY2F0dGVybGlzdC5oPgogI2luY2x1ZGUgPGxpbnV4L2NyeXB0by5oPgogCiAjZGVmaW5lIERFU19LRVlfU0laRQkJOApAQCAtMzUsNyArMjYsOCBAQAogI2RlZmluZSBERVMzX0VERV9FWFBLRVlfV09SRFMJKDMgKiBERVNfRVhQS0VZX1dPUkRTKQogI2RlZmluZSBERVMzX0VERV9CTE9DS19TSVpFCURFU19CTE9DS19TSVpFCiAKLSNkZWZpbmUgUk9SKGQsYyxvKQkoKGQpID0gKGQpID4+IChjKSB8IChkKSA8PCAobykpCisjZGVmaW5lIFJPTCh4LCByKSAoKHgpID0gcm9sMzIoKHgpLCAocikpKQorI2RlZmluZSBST1IoeCwgcikgKCh4KSA9IHJvcjMyKCh4KSwgKHIpKSkKIAogc3RydWN0IGRlc19jdHggewogCXUzMiBleHBrZXlbREVTX0VYUEtFWV9XT1JEU107CkBAIC00NSwxMTQ1ICszNyw4MTUgQEAKIAl1MzIgZXhwa2V5W0RFUzNfRURFX0VYUEtFWV9XT1JEU107CiB9OwogCi1zdGF0aWMgY29uc3QgdTMyIGRlc19rZXltYXBbXSA9IHsKLQkweDAyMDgwMDA4LCAweDAyMDgyMDAwLCAweDAwMDAyMDA4LCAweDAwMDAwMDAwLAotCTB4MDIwMDIwMDAsIDB4MDAwODAwMDgsIDB4MDIwODAwMDAsIDB4MDIwODIwMDgsCi0JMHgwMDAwMDAwOCwgMHgwMjAwMDAwMCwgMHgwMDA4MjAwMCwgMHgwMDAwMjAwOCwKLQkweDAwMDgyMDA4LCAweDAyMDAyMDA4LCAweDAyMDAwMDA4LCAweDAyMDgwMDAwLAotCTB4MDAwMDIwMDAsIDB4MDAwODIwMDgsIDB4MDAwODAwMDgsIDB4MDIwMDIwMDAsCi0JMHgwMjA4MjAwOCwgMHgwMjAwMDAwOCwgMHgwMDAwMDAwMCwgMHgwMDA4MjAwMCwKLQkweDAyMDAwMDAwLCAweDAwMDgwMDAwLCAweDAyMDAyMDA4LCAweDAyMDgwMDA4LAotCTB4MDAwODAwMDAsIDB4MDAwMDIwMDAsIDB4MDIwODIwMDAsIDB4MDAwMDAwMDgsCi0JMHgwMDA4MDAwMCwgMHgwMDAwMjAwMCwgMHgwMjAwMDAwOCwgMHgwMjA4MjAwOCwKLQkweDAwMDAyMDA4LCAweDAyMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMDgyMDAwLAotCTB4MDIwODAwMDgsIDB4MDIwMDIwMDgsIDB4MDIwMDIwMDAsIDB4MDAwODAwMDgsCi0JMHgwMjA4MjAwMCwgMHgwMDAwMDAwOCwgMHgwMDA4MDAwOCwgMHgwMjAwMjAwMCwKLQkweDAyMDgyMDA4LCAweDAwMDgwMDAwLCAweDAyMDgwMDAwLCAweDAyMDAwMDA4LAotCTB4MDAwODIwMDAsIDB4MDAwMDIwMDgsIDB4MDIwMDIwMDgsIDB4MDIwODAwMDAsCi0JMHgwMDAwMDAwOCwgMHgwMjA4MjAwMCwgMHgwMDA4MjAwOCwgMHgwMDAwMDAwMCwKLQkweDAyMDAwMDAwLCAweDAyMDgwMDA4LCAweDAwMDAyMDAwLCAweDAwMDgyMDA4LAorLyogTG9va3VwIHRhYmxlcyBmb3Iga2V5IGV4cGFuc2lvbiAqLwogCi0JMHgwODAwMDAwNCwgMHgwMDAyMDAwNCwgMHgwMDAwMDAwMCwgMHgwODAyMDIwMCwKLQkweDAwMDIwMDA0LCAweDAwMDAwMjAwLCAweDA4MDAwMjA0LCAweDAwMDIwMDAwLAotCTB4MDAwMDAyMDQsIDB4MDgwMjAyMDQsIDB4MDAwMjAyMDAsIDB4MDgwMDAwMDAsCi0JMHgwODAwMDIwMCwgMHgwODAwMDAwNCwgMHgwODAyMDAwMCwgMHgwMDAyMDIwNCwKLQkweDAwMDIwMDAwLCAweDA4MDAwMjA0LCAweDA4MDIwMDA0LCAweDAwMDAwMDAwLAotCTB4MDAwMDAyMDAsIDB4MDAwMDAwMDQsIDB4MDgwMjAyMDAsIDB4MDgwMjAwMDQsCi0JMHgwODAyMDIwNCwgMHgwODAyMDAwMCwgMHgwODAwMDAwMCwgMHgwMDAwMDIwNCwKLQkweDAwMDAwMDA0LCAweDAwMDIwMjAwLCAweDAwMDIwMjA0LCAweDA4MDAwMjAwLAotCTB4MDAwMDAyMDQsIDB4MDgwMDAwMDAsIDB4MDgwMDAyMDAsIDB4MDAwMjAyMDQsCi0JMHgwODAyMDIwMCwgMHgwMDAyMDAwNCwgMHgwMDAwMDAwMCwgMHgwODAwMDIwMCwKLQkweDA4MDAwMDAwLCAweDAwMDAwMjAwLCAweDA4MDIwMDA0LCAweDAwMDIwMDAwLAotCTB4MDAwMjAwMDQsIDB4MDgwMjAyMDQsIDB4MDAwMjAyMDAsIDB4MDAwMDAwMDQsCi0JMHgwODAyMDIwNCwgMHgwMDAyMDIwMCwgMHgwMDAyMDAwMCwgMHgwODAwMDIwNCwKLQkweDA4MDAwMDA0LCAweDA4MDIwMDAwLCAweDAwMDIwMjA0LCAweDAwMDAwMDAwLAotCTB4MDAwMDAyMDAsIDB4MDgwMDAwMDQsIDB4MDgwMDAyMDQsIDB4MDgwMjAyMDAsCi0JMHgwODAyMDAwMCwgMHgwMDAwMDIwNCwgMHgwMDAwMDAwNCwgMHgwODAyMDAwNCwKLQotCTB4ODAwNDAxMDAsIDB4MDEwMDAxMDAsIDB4ODAwMDAwMDAsIDB4ODEwNDAxMDAsCi0JMHgwMDAwMDAwMCwgMHgwMTA0MDAwMCwgMHg4MTAwMDEwMCwgMHg4MDA0MDAwMCwKLQkweDAxMDQwMTAwLCAweDgxMDAwMDAwLCAweDAxMDAwMDAwLCAweDgwMDAwMTAwLAotCTB4ODEwMDAwMDAsIDB4ODAwNDAxMDAsIDB4MDAwNDAwMDAsIDB4MDEwMDAwMDAsCi0JMHg4MTA0MDAwMCwgMHgwMDA0MDEwMCwgMHgwMDAwMDEwMCwgMHg4MDAwMDAwMCwKLQkweDAwMDQwMTAwLCAweDgxMDAwMTAwLCAweDAxMDQwMDAwLCAweDAwMDAwMTAwLAotCTB4ODAwMDAxMDAsIDB4MDAwMDAwMDAsIDB4ODAwNDAwMDAsIDB4MDEwNDAxMDAsCi0JMHgwMTAwMDEwMCwgMHg4MTA0MDAwMCwgMHg4MTA0MDEwMCwgMHgwMDA0MDAwMCwKLQkweDgxMDQwMDAwLCAweDgwMDAwMTAwLCAweDAwMDQwMDAwLCAweDgxMDAwMDAwLAotCTB4MDAwNDAxMDAsIDB4MDEwMDAxMDAsIDB4ODAwMDAwMDAsIDB4MDEwNDAwMDAsCi0JMHg4MTAwMDEwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDEwMCwgMHg4MDA0MDAwMCwKLQkweDAwMDAwMDAwLCAweDgxMDQwMDAwLCAweDAxMDQwMTAwLCAweDAwMDAwMTAwLAotCTB4MDEwMDAwMDAsIDB4ODEwNDAxMDAsIDB4ODAwNDAxMDAsIDB4MDAwNDAwMDAsCi0JMHg4MTA0MDEwMCwgMHg4MDAwMDAwMCwgMHgwMTAwMDEwMCwgMHg4MDA0MDEwMCwKLQkweDgwMDQwMDAwLCAweDAwMDQwMTAwLCAweDAxMDQwMDAwLCAweDgxMDAwMTAwLAotCTB4ODAwMDAxMDAsIDB4MDEwMDAwMDAsIDB4ODEwMDAwMDAsIDB4MDEwNDAxMDAsCi0KLQkweDA0MDEwODAxLCAweDAwMDAwMDAwLCAweDAwMDEwODAwLCAweDA0MDEwMDAwLAotCTB4MDQwMDAwMDEsIDB4MDAwMDA4MDEsIDB4MDQwMDA4MDAsIDB4MDAwMTA4MDAsCi0JMHgwMDAwMDgwMCwgMHgwNDAxMDAwMSwgMHgwMDAwMDAwMSwgMHgwNDAwMDgwMCwKLQkweDAwMDEwMDAxLCAweDA0MDEwODAwLCAweDA0MDEwMDAwLCAweDAwMDAwMDAxLAotCTB4MDAwMTAwMDAsIDB4MDQwMDA4MDEsIDB4MDQwMTAwMDEsIDB4MDAwMDA4MDAsCi0JMHgwMDAxMDgwMSwgMHgwNDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAxMDAwMSwKLQkweDA0MDAwODAxLCAweDAwMDEwODAxLCAweDA0MDEwODAwLCAweDA0MDAwMDAxLAotCTB4MDQwMDAwMDAsIDB4MDAwMTAwMDAsIDB4MDAwMDA4MDEsIDB4MDQwMTA4MDEsCi0JMHgwMDAxMDAwMSwgMHgwNDAxMDgwMCwgMHgwNDAwMDgwMCwgMHgwMDAxMDgwMSwKLQkweDA0MDEwODAxLCAweDAwMDEwMDAxLCAweDA0MDAwMDAxLCAweDAwMDAwMDAwLAotCTB4MDQwMDAwMDAsIDB4MDAwMDA4MDEsIDB4MDAwMTAwMDAsIDB4MDQwMTAwMDEsCi0JMHgwMDAwMDgwMCwgMHgwNDAwMDAwMCwgMHgwMDAxMDgwMSwgMHgwNDAwMDgwMSwKLQkweDA0MDEwODAwLCAweDAwMDAwODAwLCAweDAwMDAwMDAwLCAweDA0MDAwMDAxLAotCTB4MDAwMDAwMDEsIDB4MDQwMTA4MDEsIDB4MDAwMTA4MDAsIDB4MDQwMTAwMDAsCi0JMHgwNDAxMDAwMSwgMHgwMDAxMDAwMCwgMHgwMDAwMDgwMSwgMHgwNDAwMDgwMCwKLQkweDA0MDAwODAxLCAweDAwMDAwMDAxLCAweDA0MDEwMDAwLCAweDAwMDEwODAwLAotCi0JMHgwMDAwMDQwMCwgMHgwMDAwMDAyMCwgMHgwMDEwMDAyMCwgMHg0MDEwMDAwMCwKLQkweDQwMTAwNDIwLCAweDQwMDAwNDAwLCAweDAwMDAwNDIwLCAweDAwMDAwMDAwLAotCTB4MDAxMDAwMDAsIDB4NDAxMDAwMjAsIDB4NDAwMDAwMjAsIDB4MDAxMDA0MDAsCi0JMHg0MDAwMDAwMCwgMHgwMDEwMDQyMCwgMHgwMDEwMDQwMCwgMHg0MDAwMDAyMCwKLQkweDQwMTAwMDIwLCAweDAwMDAwNDAwLCAweDQwMDAwNDAwLCAweDQwMTAwNDIwLAotCTB4MDAwMDAwMDAsIDB4MDAxMDAwMjAsIDB4NDAxMDAwMDAsIDB4MDAwMDA0MjAsCi0JMHg0MDEwMDQwMCwgMHg0MDAwMDQyMCwgMHgwMDEwMDQyMCwgMHg0MDAwMDAwMCwKLQkweDQwMDAwNDIwLCAweDQwMTAwNDAwLCAweDAwMDAwMDIwLCAweDAwMTAwMDAwLAotCTB4NDAwMDA0MjAsIDB4MDAxMDA0MDAsIDB4NDAxMDA0MDAsIDB4NDAwMDAwMjAsCi0JMHgwMDAwMDQwMCwgMHgwMDAwMDAyMCwgMHgwMDEwMDAwMCwgMHg0MDEwMDQwMCwKLQkweDQwMTAwMDIwLCAweDQwMDAwNDIwLCAweDAwMDAwNDIwLCAweDAwMDAwMDAwLAotCTB4MDAwMDAwMjAsIDB4NDAxMDAwMDAsIDB4NDAwMDAwMDAsIDB4MDAxMDAwMjAsCi0JMHgwMDAwMDAwMCwgMHg0MDEwMDAyMCwgMHgwMDEwMDAyMCwgMHgwMDAwMDQyMCwKLQkweDQwMDAwMDIwLCAweDAwMDAwNDAwLCAweDQwMTAwNDIwLCAweDAwMTAwMDAwLAotCTB4MDAxMDA0MjAsIDB4NDAwMDAwMDAsIDB4NDAwMDA0MDAsIDB4NDAxMDA0MjAsCi0JMHg0MDEwMDAwMCwgMHgwMDEwMDQyMCwgMHgwMDEwMDQwMCwgMHg0MDAwMDQwMCwKLQotCTB4MDA4MDAwMDAsIDB4MDAwMDEwMDAsIDB4MDAwMDAwNDAsIDB4MDA4MDEwNDIsCi0JMHgwMDgwMTAwMiwgMHgwMDgwMDA0MCwgMHgwMDAwMTA0MiwgMHgwMDgwMTAwMCwKLQkweDAwMDAxMDAwLCAweDAwMDAwMDAyLCAweDAwODAwMDAyLCAweDAwMDAxMDQwLAotCTB4MDA4MDAwNDIsIDB4MDA4MDEwMDIsIDB4MDA4MDEwNDAsIDB4MDAwMDAwMDAsCi0JMHgwMDAwMTA0MCwgMHgwMDgwMDAwMCwgMHgwMDAwMTAwMiwgMHgwMDAwMDA0MiwKLQkweDAwODAwMDQwLCAweDAwMDAxMDQyLCAweDAwMDAwMDAwLCAweDAwODAwMDAyLAotCTB4MDAwMDAwMDIsIDB4MDA4MDAwNDIsIDB4MDA4MDEwNDIsIDB4MDAwMDEwMDIsCi0JMHgwMDgwMTAwMCwgMHgwMDAwMDA0MCwgMHgwMDAwMDA0MiwgMHgwMDgwMTA0MCwKLQkweDAwODAxMDQwLCAweDAwODAwMDQyLCAweDAwMDAxMDAyLCAweDAwODAxMDAwLAotCTB4MDAwMDEwMDAsIDB4MDAwMDAwMDIsIDB4MDA4MDAwMDIsIDB4MDA4MDAwNDAsCi0JMHgwMDgwMDAwMCwgMHgwMDAwMTA0MCwgMHgwMDgwMTA0MiwgMHgwMDAwMDAwMCwKLQkweDAwMDAxMDQyLCAweDAwODAwMDAwLCAweDAwMDAwMDQwLCAweDAwMDAxMDAyLAotCTB4MDA4MDAwNDIsIDB4MDAwMDAwNDAsIDB4MDAwMDAwMDAsIDB4MDA4MDEwNDIsCi0JMHgwMDgwMTAwMiwgMHgwMDgwMTA0MCwgMHgwMDAwMDA0MiwgMHgwMDAwMTAwMCwKLQkweDAwMDAxMDQwLCAweDAwODAxMDAyLCAweDAwODAwMDQwLCAweDAwMDAwMDQyLAotCTB4MDAwMDAwMDIsIDB4MDAwMDEwNDIsIDB4MDA4MDEwMDAsIDB4MDA4MDAwMDIsCi0KLQkweDEwNDAwMDAwLCAweDAwNDA0MDEwLCAweDAwMDAwMDEwLCAweDEwNDAwMDEwLAotCTB4MTAwMDQwMDAsIDB4MDA0MDAwMDAsIDB4MTA0MDAwMTAsIDB4MDAwMDQwMTAsCi0JMHgwMDQwMDAxMCwgMHgwMDAwNDAwMCwgMHgwMDQwNDAwMCwgMHgxMDAwMDAwMCwKLQkweDEwNDA0MDEwLCAweDEwMDAwMDEwLCAweDEwMDAwMDAwLCAweDEwNDA0MDAwLAotCTB4MDAwMDAwMDAsIDB4MTAwMDQwMDAsIDB4MDA0MDQwMTAsIDB4MDAwMDAwMTAsCi0JMHgxMDAwMDAxMCwgMHgxMDQwNDAxMCwgMHgwMDAwNDAwMCwgMHgxMDQwMDAwMCwKLQkweDEwNDA0MDAwLCAweDAwNDAwMDEwLCAweDEwMDA0MDEwLCAweDAwNDA0MDAwLAotCTB4MDAwMDQwMTAsIDB4MDAwMDAwMDAsIDB4MDA0MDAwMDAsIDB4MTAwMDQwMTAsCi0JMHgwMDQwNDAxMCwgMHgwMDAwMDAxMCwgMHgxMDAwMDAwMCwgMHgwMDAwNDAwMCwKLQkweDEwMDAwMDEwLCAweDEwMDA0MDAwLCAweDAwNDA0MDAwLCAweDEwNDAwMDEwLAotCTB4MDAwMDAwMDAsIDB4MDA0MDQwMTAsIDB4MDAwMDQwMTAsIDB4MTA0MDQwMDAsCi0JMHgxMDAwNDAwMCwgMHgwMDQwMDAwMCwgMHgxMDQwNDAxMCwgMHgxMDAwMDAwMCwKLQkweDEwMDA0MDEwLCAweDEwNDAwMDAwLCAweDAwNDAwMDAwLCAweDEwNDA0MDEwLAotCTB4MDAwMDQwMDAsIDB4MDA0MDAwMTAsIDB4MTA0MDAwMTAsIDB4MDAwMDQwMTAsCi0JMHgwMDQwMDAxMCwgMHgwMDAwMDAwMCwgMHgxMDQwNDAwMCwgMHgxMDAwMDAxMCwKLQkweDEwNDAwMDAwLCAweDEwMDA0MDEwLCAweDAwMDAwMDEwLCAweDAwNDA0MDAwLAotCi0JMHgwMDIwODA4MCwgMHgwMDAwODAwMCwgMHgyMDIwMDAwMCwgMHgyMDIwODA4MCwKLQkweDAwMjAwMDAwLCAweDIwMDA4MDgwLCAweDIwMDA4MDAwLCAweDIwMjAwMDAwLAotCTB4MjAwMDgwODAsIDB4MDAyMDgwODAsIDB4MDAyMDgwMDAsIDB4MjAwMDAwODAsCi0JMHgyMDIwMDA4MCwgMHgwMDIwMDAwMCwgMHgwMDAwMDAwMCwgMHgyMDAwODAwMCwKLQkweDAwMDA4MDAwLCAweDIwMDAwMDAwLCAweDAwMjAwMDgwLCAweDAwMDA4MDgwLAotCTB4MjAyMDgwODAsIDB4MDAyMDgwMDAsIDB4MjAwMDAwODAsIDB4MDAyMDAwODAsCi0JMHgyMDAwMDAwMCwgMHgwMDAwMDA4MCwgMHgwMDAwODA4MCwgMHgyMDIwODAwMCwKLQkweDAwMDAwMDgwLCAweDIwMjAwMDgwLCAweDIwMjA4MDAwLCAweDAwMDAwMDAwLAotCTB4MDAwMDAwMDAsIDB4MjAyMDgwODAsIDB4MDAyMDAwODAsIDB4MjAwMDgwMDAsCi0JMHgwMDIwODA4MCwgMHgwMDAwODAwMCwgMHgyMDAwMDA4MCwgMHgwMDIwMDA4MCwKLQkweDIwMjA4MDAwLCAweDAwMDAwMDgwLCAweDAwMDA4MDgwLCAweDIwMjAwMDAwLAotCTB4MjAwMDgwODAsIDB4MjAwMDAwMDAsIDB4MjAyMDAwMDAsIDB4MDAyMDgwMDAsCi0JMHgyMDIwODA4MCwgMHgwMDAwODA4MCwgMHgwMDIwODAwMCwgMHgyMDIwMDA4MCwKLQkweDAwMjAwMDAwLCAweDIwMDAwMDgwLCAweDIwMDA4MDAwLCAweDAwMDAwMDAwLAotCTB4MDAwMDgwMDAsIDB4MDAyMDAwMDAsIDB4MjAyMDAwODAsIDB4MDAyMDgwODAsCi0JMHgyMDAwMDAwMCwgMHgyMDIwODAwMCwgMHgwMDAwMDA4MCwgMHgyMDAwODA4MCwKK3N0YXRpYyBjb25zdCB1OCBwYzFbMjU2XSA9IHsKKwkweDAwLCAweDAwLCAweDQwLCAweDA0LCAweDEwLCAweDEwLCAweDUwLCAweDE0LAorCTB4MDQsIDB4NDAsIDB4NDQsIDB4NDQsIDB4MTQsIDB4NTAsIDB4NTQsIDB4NTQsCisJMHgwMiwgMHgwMiwgMHg0MiwgMHgwNiwgMHgxMiwgMHgxMiwgMHg1MiwgMHgxNiwKKwkweDA2LCAweDQyLCAweDQ2LCAweDQ2LCAweDE2LCAweDUyLCAweDU2LCAweDU2LAorCTB4ODAsIDB4MDgsIDB4YzAsIDB4MGMsIDB4OTAsIDB4MTgsIDB4ZDAsIDB4MWMsCisJMHg4NCwgMHg0OCwgMHhjNCwgMHg0YywgMHg5NCwgMHg1OCwgMHhkNCwgMHg1YywKKwkweDgyLCAweDBhLCAweGMyLCAweDBlLCAweDkyLCAweDFhLCAweGQyLCAweDFlLAorCTB4ODYsIDB4NGEsIDB4YzYsIDB4NGUsIDB4OTYsIDB4NWEsIDB4ZDYsIDB4NWUsCisJMHgyMCwgMHgyMCwgMHg2MCwgMHgyNCwgMHgzMCwgMHgzMCwgMHg3MCwgMHgzNCwKKwkweDI0LCAweDYwLCAweDY0LCAweDY0LCAweDM0LCAweDcwLCAweDc0LCAweDc0LAorCTB4MjIsIDB4MjIsIDB4NjIsIDB4MjYsIDB4MzIsIDB4MzIsIDB4NzIsIDB4MzYsCisJMHgyNiwgMHg2MiwgMHg2NiwgMHg2NiwgMHgzNiwgMHg3MiwgMHg3NiwgMHg3NiwKKwkweGEwLCAweDI4LCAweGUwLCAweDJjLCAweGIwLCAweDM4LCAweGYwLCAweDNjLAorCTB4YTQsIDB4NjgsIDB4ZTQsIDB4NmMsIDB4YjQsIDB4NzgsIDB4ZjQsIDB4N2MsCisJMHhhMiwgMHgyYSwgMHhlMiwgMHgyZSwgMHhiMiwgMHgzYSwgMHhmMiwgMHgzZSwKKwkweGE2LCAweDZhLCAweGU2LCAweDZlLCAweGI2LCAweDdhLCAweGY2LCAweDdlLAorCTB4MDgsIDB4ODAsIDB4NDgsIDB4ODQsIDB4MTgsIDB4OTAsIDB4NTgsIDB4OTQsCisJMHgwYywgMHhjMCwgMHg0YywgMHhjNCwgMHgxYywgMHhkMCwgMHg1YywgMHhkNCwKKwkweDBhLCAweDgyLCAweDRhLCAweDg2LCAweDFhLCAweDkyLCAweDVhLCAweDk2LAorCTB4MGUsIDB4YzIsIDB4NGUsIDB4YzYsIDB4MWUsIDB4ZDIsIDB4NWUsIDB4ZDYsCisJMHg4OCwgMHg4OCwgMHhjOCwgMHg4YywgMHg5OCwgMHg5OCwgMHhkOCwgMHg5YywKKwkweDhjLCAweGM4LCAweGNjLCAweGNjLCAweDljLCAweGQ4LCAweGRjLCAweGRjLAorCTB4OGEsIDB4OGEsIDB4Y2EsIDB4OGUsIDB4OWEsIDB4OWEsIDB4ZGEsIDB4OWUsCisJMHg4ZSwgMHhjYSwgMHhjZSwgMHhjZSwgMHg5ZSwgMHhkYSwgMHhkZSwgMHhkZSwKKwkweDI4LCAweGEwLCAweDY4LCAweGE0LCAweDM4LCAweGIwLCAweDc4LCAweGI0LAorCTB4MmMsIDB4ZTAsIDB4NmMsIDB4ZTQsIDB4M2MsIDB4ZjAsIDB4N2MsIDB4ZjQsCisJMHgyYSwgMHhhMiwgMHg2YSwgMHhhNiwgMHgzYSwgMHhiMiwgMHg3YSwgMHhiNiwKKwkweDJlLCAweGUyLCAweDZlLCAweGU2LCAweDNlLCAweGYyLCAweDdlLCAweGY2LAorCTB4YTgsIDB4YTgsIDB4ZTgsIDB4YWMsIDB4YjgsIDB4YjgsIDB4ZjgsIDB4YmMsCisJMHhhYywgMHhlOCwgMHhlYywgMHhlYywgMHhiYywgMHhmOCwgMHhmYywgMHhmYywKKwkweGFhLCAweGFhLCAweGVhLCAweGFlLCAweGJhLCAweGJhLCAweGZhLCAweGJlLAorCTB4YWUsIDB4ZWEsIDB4ZWUsIDB4ZWUsIDB4YmUsIDB4ZmEsIDB4ZmUsIDB4ZmUKIH07CiAKLXN0YXRpYyBjb25zdCB1OCByb3RvcnNbXSA9IHsKLQkzNCwgMTMsICA1LCA0NiwgNDcsIDE4LCAzMiwgNDEsIDExLCA1MywgMzMsIDIwLAotCTE0LCAzNiwgMzAsIDI0LCA0OSwgIDIsIDE1LCAzNywgNDIsIDUwLCAgMCwgMjEsCi0JMzgsIDQ4LCAgNiwgMjYsIDM5LCAgNCwgNTIsIDI1LCAxMiwgMjcsIDMxLCA0MCwKLQkxLCAxNywgMjgsIDI5LCAyMywgNTEsIDM1LCAgNywgIDMsIDIyLCAgOSwgNDMsCi0KLQk0MSwgMjAsIDEyLCA1MywgNTQsIDI1LCAzOSwgNDgsIDE4LCAzMSwgNDAsIDI3LAotCTIxLCA0MywgMzcsICAwLCAgMSwgIDksIDIyLCA0NCwgNDksICAyLCAgNywgMjgsCi0JNDUsIDU1LCAxMywgMzMsIDQ2LCAxMSwgIDYsIDMyLCAxOSwgMzQsIDM4LCA0NywKLQk4LCAyNCwgMzUsIDM2LCAzMCwgIDMsIDQyLCAxNCwgMTAsIDI5LCAxNiwgNTAsCi0KLQk1NSwgMzQsIDI2LCAzOCwgMTEsIDM5LCA1MywgIDUsIDMyLCA0NSwgNTQsIDQxLAotCTM1LCAgMiwgNTEsIDE0LCAxNSwgMjMsIDM2LCAgMywgIDgsIDE2LCAyMSwgNDIsCi0JNiwgMTIsIDI3LCA0NywgMzEsIDI1LCAyMCwgNDYsIDMzLCA0OCwgNTIsICA0LAotCTIyLCAgNywgNDksIDUwLCA0NCwgMTcsICAxLCAyOCwgMjQsIDQzLCAzMCwgIDksCi0KLQkxMiwgNDgsIDQwLCA1MiwgMjUsIDUzLCAzOCwgMTksIDQ2LCAgNiwgMTEsIDU1LAotCTQ5LCAxNiwgMTAsIDI4LCAyOSwgMzcsIDUwLCAxNywgMjIsIDMwLCAzNSwgIDEsCi0JMjAsIDI2LCA0MSwgIDQsIDQ1LCAzOSwgMzQsIDMxLCA0NywgIDUsIDEzLCAxOCwKLQkzNiwgMjEsICA4LCAgOSwgIDMsICAwLCAxNSwgNDIsICA3LCAgMiwgNDQsIDIzLAotCi0JMjYsICA1LCA1NCwgMTMsIDM5LCAzOCwgNTIsIDMzLCAzMSwgMjAsIDI1LCAxMiwKLQk4LCAzMCwgMjQsIDQyLCA0MywgNTEsICA5LCAgMCwgMzYsIDQ0LCA0OSwgMTUsCi0JMzQsIDQwLCA1NSwgMTgsICA2LCA1MywgNDgsIDQ1LCAgNCwgMTksIDI3LCAzMiwKLQk1MCwgMzUsIDIyLCAyMywgMTcsIDE0LCAyOSwgIDEsIDIxLCAxNiwgIDMsIDM3LAotCi0JNDAsIDE5LCAxMSwgMjcsIDUzLCA1MiwgMTMsIDQ3LCA0NSwgMzQsIDM5LCAyNiwKLQkyMiwgNDQsICA3LCAgMSwgIDIsIDEwLCAyMywgMTQsIDUwLCAgMywgIDgsIDI5LAotCTQ4LCA1NCwgMTIsIDMyLCAyMCwgMzgsICA1LCAgNiwgMTgsIDMzLCA0MSwgNDYsCi0JOSwgNDksIDM2LCAzNywgIDAsIDI4LCA0MywgMTUsIDM1LCAzMCwgMTcsIDUxLAotCi0JNTQsIDMzLCAyNSwgNDEsIDM4LCAxMywgMjcsICA0LCAgNiwgNDgsIDUzLCA0MCwKLQkzNiwgIDMsIDIxLCAxNSwgMTYsIDI0LCAzNywgMjgsICA5LCAxNywgMjIsIDQzLAotCTUsIDExLCAyNiwgNDYsIDM0LCA1MiwgMTksIDIwLCAzMiwgNDcsIDU1LCAzMSwKLQkyMywgIDgsIDUwLCA1MSwgMTQsIDQyLCAgMiwgMjksIDQ5LCA0NCwgIDAsIDEwLAotCi0JMTEsIDQ3LCAzOSwgNTUsIDUyLCAyNywgNDEsIDE4LCAyMCwgIDUsIDM4LCA1NCwKLQk1MCwgMTcsIDM1LCAyOSwgMzAsICA3LCA1MSwgNDIsIDIzLCAgMCwgMzYsICAyLAotCTE5LCAyNSwgNDAsIDMxLCA0OCwgMTMsIDMzLCAzNCwgNDYsICA0LCAxMiwgNDUsCi0JMzcsIDIyLCAgOSwgMTAsIDI4LCAgMSwgMTYsIDQzLCAgOCwgIDMsIDE0LCAyNCwKLQotCTE4LCA1NCwgNDYsICA1LCAgNiwgMzQsIDQ4LCAyNSwgMjcsIDEyLCA0NSwgIDQsCi0JMiwgMjQsIDQyLCAzNiwgMzcsIDE0LCAgMywgNDksIDMwLCAgNywgNDMsICA5LAotCTI2LCAzMiwgNDcsIDM4LCA1NSwgMjAsIDQwLCA0MSwgNTMsIDExLCAxOSwgNTIsCi0JNDQsIDI5LCAxNiwgMTcsIDM1LCAgOCwgMjMsIDUwLCAxNSwgMTAsIDIxLCAgMCwKLQotCTMyLCAxMSwgMzEsIDE5LCAyMCwgNDgsICA1LCAzOSwgNDEsIDI2LCAgNiwgMTgsCi0JMTYsICA3LCAgMSwgNTAsIDUxLCAyOCwgMTcsICA4LCA0NCwgMjEsICAyLCAyMywKLQk0MCwgNDYsICA0LCA1MiwgMTIsIDM0LCA1NCwgNTUsIDM4LCAyNSwgMzMsIDEzLAotCTMsIDQzLCAzMCwgIDAsIDQ5LCAyMiwgMzcsICA5LCAyOSwgMjQsIDM1LCAxNCwKLQotCTQ2LCAyNSwgNDUsIDMzLCAzNCwgIDUsIDE5LCA1MywgNTUsIDQwLCAyMCwgMzIsCi0JMzAsIDIxLCAxNSwgIDksIDEwLCA0MiwgIDAsIDIyLCAgMywgMzUsIDE2LCAzNywKLQk1NCwgMzEsIDE4LCAxMywgMjYsIDQ4LCAxMSwgMTIsIDUyLCAzOSwgNDcsIDI3LAotCTE3LCAgMiwgNDQsIDE0LCAgOCwgMzYsIDUxLCAyMywgNDMsICA3LCA0OSwgMjgsCi0KLQkzMSwgMzksICA2LCA0NywgNDgsIDE5LCAzMywgMzgsIDEyLCA1NCwgMzQsIDQ2LAotCTQ0LCAzNSwgMjksIDIzLCAyNCwgIDEsIDE0LCAzNiwgMTcsIDQ5LCAzMCwgNTEsCi0JMTEsIDQ1LCAzMiwgMjcsIDQwLCAgNSwgMjUsIDI2LCAxMywgNTMsICA0LCA0MSwKLQkwLCAxNiwgIDMsIDI4LCAyMiwgNTAsIDEwLCAzNywgIDIsIDIxLCAgOCwgNDIsCi0KLQk0NSwgNTMsIDIwLCAgNCwgIDUsIDMzLCA0NywgNTIsIDI2LCAxMSwgNDgsIDMxLAotCTMsIDQ5LCA0MywgMzcsICA3LCAxNSwgMjgsIDUwLCAgMCwgIDgsIDQ0LCAxMCwKLQkyNSwgIDYsIDQ2LCA0MSwgNTQsIDE5LCAzOSwgNDAsIDI3LCAzOCwgMTgsIDU1LAotCTE0LCAzMCwgMTcsIDQyLCAzNiwgIDksIDI0LCA1MSwgMTYsIDM1LCAyMiwgIDEsCi0KLQk2LCAzOCwgMzQsIDE4LCAxOSwgNDcsICA0LCAxMywgNDAsIDI1LCAgNSwgNDUsCi0JMTcsICA4LCAgMiwgNTEsIDIxLCAyOSwgNDIsICA5LCAxNCwgMjIsICAzLCAyNCwKLQkzOSwgMjAsIDMxLCA1NSwgMTEsIDMzLCA1MywgNTQsIDQxLCA1MiwgMzIsIDEyLAotCTI4LCA0NCwgIDAsICAxLCA1MCwgMjMsICA3LCAxMCwgMzAsIDQ5LCAzNiwgMTUsCi0KLQkyMCwgNTIsIDQ4LCAzMiwgMzMsICA0LCAxOCwgMjcsIDU0LCAzOSwgMTksICA2LAotCTAsIDIyLCAxNiwgMTAsIDM1LCA0MywgIDEsIDIzLCAyOCwgMzYsIDE3LCAgNywKLQk1MywgMzQsIDQ1LCAxMiwgMjUsIDQ3LCAzOCwgMTEsIDU1LCAxMywgNDYsIDI2LAotCTQyLCAgMywgMTQsIDE1LCAgOSwgMzcsIDIxLCAyNCwgNDQsICA4LCA1MCwgMjksCi0KLQkyNywgIDYsIDU1LCAzOSwgNDAsIDExLCAyNSwgMzQsICA0LCA0NiwgMjYsIDEzLAotCTcsIDI5LCAyMywgMTcsIDQyLCA1MCwgIDgsIDMwLCAzNSwgNDMsIDI0LCAxNCwKLQkzMSwgNDEsIDUyLCAxOSwgMzIsIDU0LCA0NSwgMTgsICA1LCAyMCwgNTMsIDMzLAotCTQ5LCAxMCwgMjEsIDIyLCAxNiwgNDQsIDI4LCAgMCwgNTEsIDE1LCAgMiwgMzYsCitzdGF0aWMgY29uc3QgdTggcnNbMjU2XSA9IHsKKwkweDAwLCAweDAwLCAweDgwLCAweDgwLCAweDAyLCAweDAyLCAweDgyLCAweDgyLAorCTB4MDQsIDB4MDQsIDB4ODQsIDB4ODQsIDB4MDYsIDB4MDYsIDB4ODYsIDB4ODYsCisJMHgwOCwgMHgwOCwgMHg4OCwgMHg4OCwgMHgwYSwgMHgwYSwgMHg4YSwgMHg4YSwKKwkweDBjLCAweDBjLCAweDhjLCAweDhjLCAweDBlLCAweDBlLCAweDhlLCAweDhlLAorCTB4MTAsIDB4MTAsIDB4OTAsIDB4OTAsIDB4MTIsIDB4MTIsIDB4OTIsIDB4OTIsCisJMHgxNCwgMHgxNCwgMHg5NCwgMHg5NCwgMHgxNiwgMHgxNiwgMHg5NiwgMHg5NiwKKwkweDE4LCAweDE4LCAweDk4LCAweDk4LCAweDFhLCAweDFhLCAweDlhLCAweDlhLAorCTB4MWMsIDB4MWMsIDB4OWMsIDB4OWMsIDB4MWUsIDB4MWUsIDB4OWUsIDB4OWUsCisJMHgyMCwgMHgyMCwgMHhhMCwgMHhhMCwgMHgyMiwgMHgyMiwgMHhhMiwgMHhhMiwKKwkweDI0LCAweDI0LCAweGE0LCAweGE0LCAweDI2LCAweDI2LCAweGE2LCAweGE2LAorCTB4MjgsIDB4MjgsIDB4YTgsIDB4YTgsIDB4MmEsIDB4MmEsIDB4YWEsIDB4YWEsCisJMHgyYywgMHgyYywgMHhhYywgMHhhYywgMHgyZSwgMHgyZSwgMHhhZSwgMHhhZSwKKwkweDMwLCAweDMwLCAweGIwLCAweGIwLCAweDMyLCAweDMyLCAweGIyLCAweGIyLAorCTB4MzQsIDB4MzQsIDB4YjQsIDB4YjQsIDB4MzYsIDB4MzYsIDB4YjYsIDB4YjYsCisJMHgzOCwgMHgzOCwgMHhiOCwgMHhiOCwgMHgzYSwgMHgzYSwgMHhiYSwgMHhiYSwKKwkweDNjLCAweDNjLCAweGJjLCAweGJjLCAweDNlLCAweDNlLCAweGJlLCAweGJlLAorCTB4NDAsIDB4NDAsIDB4YzAsIDB4YzAsIDB4NDIsIDB4NDIsIDB4YzIsIDB4YzIsCisJMHg0NCwgMHg0NCwgMHhjNCwgMHhjNCwgMHg0NiwgMHg0NiwgMHhjNiwgMHhjNiwKKwkweDQ4LCAweDQ4LCAweGM4LCAweGM4LCAweDRhLCAweDRhLCAweGNhLCAweGNhLAorCTB4NGMsIDB4NGMsIDB4Y2MsIDB4Y2MsIDB4NGUsIDB4NGUsIDB4Y2UsIDB4Y2UsCisJMHg1MCwgMHg1MCwgMHhkMCwgMHhkMCwgMHg1MiwgMHg1MiwgMHhkMiwgMHhkMiwKKwkweDU0LCAweDU0LCAweGQ0LCAweGQ0LCAweDU2LCAweDU2LCAweGQ2LCAweGQ2LAorCTB4NTgsIDB4NTgsIDB4ZDgsIDB4ZDgsIDB4NWEsIDB4NWEsIDB4ZGEsIDB4ZGEsCisJMHg1YywgMHg1YywgMHhkYywgMHhkYywgMHg1ZSwgMHg1ZSwgMHhkZSwgMHhkZSwKKwkweDYwLCAweDYwLCAweGUwLCAweGUwLCAweDYyLCAweDYyLCAweGUyLCAweGUyLAorCTB4NjQsIDB4NjQsIDB4ZTQsIDB4ZTQsIDB4NjYsIDB4NjYsIDB4ZTYsIDB4ZTYsCisJMHg2OCwgMHg2OCwgMHhlOCwgMHhlOCwgMHg2YSwgMHg2YSwgMHhlYSwgMHhlYSwKKwkweDZjLCAweDZjLCAweGVjLCAweGVjLCAweDZlLCAweDZlLCAweGVlLCAweGVlLAorCTB4NzAsIDB4NzAsIDB4ZjAsIDB4ZjAsIDB4NzIsIDB4NzIsIDB4ZjIsIDB4ZjIsCisJMHg3NCwgMHg3NCwgMHhmNCwgMHhmNCwgMHg3NiwgMHg3NiwgMHhmNiwgMHhmNiwKKwkweDc4LCAweDc4LCAweGY4LCAweGY4LCAweDdhLCAweDdhLCAweGZhLCAweGZhLAorCTB4N2MsIDB4N2MsIDB4ZmMsIDB4ZmMsIDB4N2UsIDB4N2UsIDB4ZmUsIDB4ZmUKIH07CiAKLXN0YXRpYyBjb25zdCB1OCBwYXJpdHlbXSA9IHsKLQk4LDEsMCw4LDAsOCw4LDAsMCw4LDgsMCw4LDAsMiw4LDAsOCw4LDAsOCwwLDAsOCw4LDAsMCw4LDAsOCw4LDMsCi0JMCw4LDgsMCw4LDAsMCw4LDgsMCwwLDgsMCw4LDgsMCw4LDAsMCw4LDAsOCw4LDAsMCw4LDgsMCw4LDAsMCw4LAotCTAsOCw4LDAsOCwwLDAsOCw4LDAsMCw4LDAsOCw4LDAsOCwwLDAsOCwwLDgsOCwwLDAsOCw4LDAsOCwwLDAsOCwKLQk4LDAsMCw4LDAsOCw4LDAsMCw4LDgsMCw4LDAsMCw4LDAsOCw4LDAsOCwwLDAsOCw4LDAsMCw4LDAsOCw4LDAsCi0JMCw4LDgsMCw4LDAsMCw4LDgsMCwwLDgsMCw4LDgsMCw4LDAsMCw4LDAsOCw4LDAsMCw4LDgsMCw4LDAsMCw4LAotCTgsMCwwLDgsMCw4LDgsMCwwLDgsOCwwLDgsMCwwLDgsMCw4LDgsMCw4LDAsMCw4LDgsMCwwLDgsMCw4LDgsMCwKLQk4LDAsMCw4LDAsOCw4LDAsMCw4LDgsMCw4LDAsMCw4LDAsOCw4LDAsOCwwLDAsOCw4LDAsMCw4LDAsOCw4LDAsCi0JNCw4LDgsMCw4LDAsMCw4LDgsMCwwLDgsMCw4LDgsMCw4LDUsMCw4LDAsOCw4LDAsMCw4LDgsMCw4LDAsNiw4LAorc3RhdGljIGNvbnN0IHUzMiBwYzJbMTAyNF0gPSB7CisJMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwKKwkweDAwMDQwMDAwLCAweDAwMDAwMDAwLCAweDA0MDAwMDAwLCAweDAwMTAwMDAwLAorCTB4MDA0MDAwMDAsIDB4MDAwMDAwMDgsIDB4MDAwMDA4MDAsIDB4NDAwMDAwMDAsCisJMHgwMDQ0MDAwMCwgMHgwMDAwMDAwOCwgMHgwNDAwMDgwMCwgMHg0MDEwMDAwMCwKKwkweDAwMDAwNDAwLCAweDAwMDAwMDIwLCAweDA4MDAwMDAwLCAweDAwMDAwMTAwLAorCTB4MDAwNDA0MDAsIDB4MDAwMDAwMjAsIDB4MGMwMDAwMDAsIDB4MDAxMDAxMDAsCisJMHgwMDQwMDQwMCwgMHgwMDAwMDAyOCwgMHgwODAwMDgwMCwgMHg0MDAwMDEwMCwKKwkweDAwNDQwNDAwLCAweDAwMDAwMDI4LCAweDBjMDAwODAwLCAweDQwMTAwMTAwLAorCTB4ODAwMDAwMDAsIDB4MDAwMDAwMTAsIDB4MDAwMDAwMDAsIDB4MDA4MDAwMDAsCisJMHg4MDA0MDAwMCwgMHgwMDAwMDAxMCwgMHgwNDAwMDAwMCwgMHgwMDkwMDAwMCwKKwkweDgwNDAwMDAwLCAweDAwMDAwMDE4LCAweDAwMDAwODAwLCAweDQwODAwMDAwLAorCTB4ODA0NDAwMDAsIDB4MDAwMDAwMTgsIDB4MDQwMDA4MDAsIDB4NDA5MDAwMDAsCisJMHg4MDAwMDQwMCwgMHgwMDAwMDAzMCwgMHgwODAwMDAwMCwgMHgwMDgwMDEwMCwKKwkweDgwMDQwNDAwLCAweDAwMDAwMDMwLCAweDBjMDAwMDAwLCAweDAwOTAwMTAwLAorCTB4ODA0MDA0MDAsIDB4MDAwMDAwMzgsIDB4MDgwMDA4MDAsIDB4NDA4MDAxMDAsCisJMHg4MDQ0MDQwMCwgMHgwMDAwMDAzOCwgMHgwYzAwMDgwMCwgMHg0MDkwMDEwMCwKKwkweDEwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwMjAwMDAwLCAweDAwMDAxMDAwLAorCTB4MTAwNDAwMDAsIDB4MDAwMDAwMDAsIDB4MDQyMDAwMDAsIDB4MDAxMDEwMDAsCisJMHgxMDQwMDAwMCwgMHgwMDAwMDAwOCwgMHgwMDIwMDgwMCwgMHg0MDAwMTAwMCwKKwkweDEwNDQwMDAwLCAweDAwMDAwMDA4LCAweDA0MjAwODAwLCAweDQwMTAxMDAwLAorCTB4MTAwMDA0MDAsIDB4MDAwMDAwMjAsIDB4MDgyMDAwMDAsIDB4MDAwMDExMDAsCisJMHgxMDA0MDQwMCwgMHgwMDAwMDAyMCwgMHgwYzIwMDAwMCwgMHgwMDEwMTEwMCwKKwkweDEwNDAwNDAwLCAweDAwMDAwMDI4LCAweDA4MjAwODAwLCAweDQwMDAxMTAwLAorCTB4MTA0NDA0MDAsIDB4MDAwMDAwMjgsIDB4MGMyMDA4MDAsIDB4NDAxMDExMDAsCisJMHg5MDAwMDAwMCwgMHgwMDAwMDAxMCwgMHgwMDIwMDAwMCwgMHgwMDgwMTAwMCwKKwkweDkwMDQwMDAwLCAweDAwMDAwMDEwLCAweDA0MjAwMDAwLCAweDAwOTAxMDAwLAorCTB4OTA0MDAwMDAsIDB4MDAwMDAwMTgsIDB4MDAyMDA4MDAsIDB4NDA4MDEwMDAsCisJMHg5MDQ0MDAwMCwgMHgwMDAwMDAxOCwgMHgwNDIwMDgwMCwgMHg0MDkwMTAwMCwKKwkweDkwMDAwNDAwLCAweDAwMDAwMDMwLCAweDA4MjAwMDAwLCAweDAwODAxMTAwLAorCTB4OTAwNDA0MDAsIDB4MDAwMDAwMzAsIDB4MGMyMDAwMDAsIDB4MDA5MDExMDAsCisJMHg5MDQwMDQwMCwgMHgwMDAwMDAzOCwgMHgwODIwMDgwMCwgMHg0MDgwMTEwMCwKKwkweDkwNDQwNDAwLCAweDAwMDAwMDM4LCAweDBjMjAwODAwLCAweDQwOTAxMTAwLAorCTB4MDAwMDAyMDAsIDB4MDAwODAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDQsCisJMHgwMDA0MDIwMCwgMHgwMDA4MDAwMCwgMHgwNDAwMDAwMCwgMHgwMDEwMDAwNCwKKwkweDAwNDAwMjAwLCAweDAwMDgwMDA4LCAweDAwMDAwODAwLCAweDQwMDAwMDA0LAorCTB4MDA0NDAyMDAsIDB4MDAwODAwMDgsIDB4MDQwMDA4MDAsIDB4NDAxMDAwMDQsCisJMHgwMDAwMDYwMCwgMHgwMDA4MDAyMCwgMHgwODAwMDAwMCwgMHgwMDAwMDEwNCwKKwkweDAwMDQwNjAwLCAweDAwMDgwMDIwLCAweDBjMDAwMDAwLCAweDAwMTAwMTA0LAorCTB4MDA0MDA2MDAsIDB4MDAwODAwMjgsIDB4MDgwMDA4MDAsIDB4NDAwMDAxMDQsCisJMHgwMDQ0MDYwMCwgMHgwMDA4MDAyOCwgMHgwYzAwMDgwMCwgMHg0MDEwMDEwNCwKKwkweDgwMDAwMjAwLCAweDAwMDgwMDEwLCAweDAwMDAwMDAwLCAweDAwODAwMDA0LAorCTB4ODAwNDAyMDAsIDB4MDAwODAwMTAsIDB4MDQwMDAwMDAsIDB4MDA5MDAwMDQsCisJMHg4MDQwMDIwMCwgMHgwMDA4MDAxOCwgMHgwMDAwMDgwMCwgMHg0MDgwMDAwNCwKKwkweDgwNDQwMjAwLCAweDAwMDgwMDE4LCAweDA0MDAwODAwLCAweDQwOTAwMDA0LAorCTB4ODAwMDA2MDAsIDB4MDAwODAwMzAsIDB4MDgwMDAwMDAsIDB4MDA4MDAxMDQsCisJMHg4MDA0MDYwMCwgMHgwMDA4MDAzMCwgMHgwYzAwMDAwMCwgMHgwMDkwMDEwNCwKKwkweDgwNDAwNjAwLCAweDAwMDgwMDM4LCAweDA4MDAwODAwLCAweDQwODAwMTA0LAorCTB4ODA0NDA2MDAsIDB4MDAwODAwMzgsIDB4MGMwMDA4MDAsIDB4NDA5MDAxMDQsCisJMHgxMDAwMDIwMCwgMHgwMDA4MDAwMCwgMHgwMDIwMDAwMCwgMHgwMDAwMTAwNCwKKwkweDEwMDQwMjAwLCAweDAwMDgwMDAwLCAweDA0MjAwMDAwLCAweDAwMTAxMDA0LAorCTB4MTA0MDAyMDAsIDB4MDAwODAwMDgsIDB4MDAyMDA4MDAsIDB4NDAwMDEwMDQsCisJMHgxMDQ0MDIwMCwgMHgwMDA4MDAwOCwgMHgwNDIwMDgwMCwgMHg0MDEwMTAwNCwKKwkweDEwMDAwNjAwLCAweDAwMDgwMDIwLCAweDA4MjAwMDAwLCAweDAwMDAxMTA0LAorCTB4MTAwNDA2MDAsIDB4MDAwODAwMjAsIDB4MGMyMDAwMDAsIDB4MDAxMDExMDQsCisJMHgxMDQwMDYwMCwgMHgwMDA4MDAyOCwgMHgwODIwMDgwMCwgMHg0MDAwMTEwNCwKKwkweDEwNDQwNjAwLCAweDAwMDgwMDI4LCAweDBjMjAwODAwLCAweDQwMTAxMTA0LAorCTB4OTAwMDAyMDAsIDB4MDAwODAwMTAsIDB4MDAyMDAwMDAsIDB4MDA4MDEwMDQsCisJMHg5MDA0MDIwMCwgMHgwMDA4MDAxMCwgMHgwNDIwMDAwMCwgMHgwMDkwMTAwNCwKKwkweDkwNDAwMjAwLCAweDAwMDgwMDE4LCAweDAwMjAwODAwLCAweDQwODAxMDA0LAorCTB4OTA0NDAyMDAsIDB4MDAwODAwMTgsIDB4MDQyMDA4MDAsIDB4NDA5MDEwMDQsCisJMHg5MDAwMDYwMCwgMHgwMDA4MDAzMCwgMHgwODIwMDAwMCwgMHgwMDgwMTEwNCwKKwkweDkwMDQwNjAwLCAweDAwMDgwMDMwLCAweDBjMjAwMDAwLCAweDAwOTAxMTA0LAorCTB4OTA0MDA2MDAsIDB4MDAwODAwMzgsIDB4MDgyMDA4MDAsIDB4NDA4MDExMDQsCisJMHg5MDQ0MDYwMCwgMHgwMDA4MDAzOCwgMHgwYzIwMDgwMCwgMHg0MDkwMTEwNCwKKwkweDAwMDAwMDAyLCAweDAwMDAyMDAwLCAweDIwMDAwMDAwLCAweDAwMDAwMDAxLAorCTB4MDAwNDAwMDIsIDB4MDAwMDIwMDAsIDB4MjQwMDAwMDAsIDB4MDAxMDAwMDEsCisJMHgwMDQwMDAwMiwgMHgwMDAwMjAwOCwgMHgyMDAwMDgwMCwgMHg0MDAwMDAwMSwKKwkweDAwNDQwMDAyLCAweDAwMDAyMDA4LCAweDI0MDAwODAwLCAweDQwMTAwMDAxLAorCTB4MDAwMDA0MDIsIDB4MDAwMDIwMjAsIDB4MjgwMDAwMDAsIDB4MDAwMDAxMDEsCisJMHgwMDA0MDQwMiwgMHgwMDAwMjAyMCwgMHgyYzAwMDAwMCwgMHgwMDEwMDEwMSwKKwkweDAwNDAwNDAyLCAweDAwMDAyMDI4LCAweDI4MDAwODAwLCAweDQwMDAwMTAxLAorCTB4MDA0NDA0MDIsIDB4MDAwMDIwMjgsIDB4MmMwMDA4MDAsIDB4NDAxMDAxMDEsCisJMHg4MDAwMDAwMiwgMHgwMDAwMjAxMCwgMHgyMDAwMDAwMCwgMHgwMDgwMDAwMSwKKwkweDgwMDQwMDAyLCAweDAwMDAyMDEwLCAweDI0MDAwMDAwLCAweDAwOTAwMDAxLAorCTB4ODA0MDAwMDIsIDB4MDAwMDIwMTgsIDB4MjAwMDA4MDAsIDB4NDA4MDAwMDEsCisJMHg4MDQ0MDAwMiwgMHgwMDAwMjAxOCwgMHgyNDAwMDgwMCwgMHg0MDkwMDAwMSwKKwkweDgwMDAwNDAyLCAweDAwMDAyMDMwLCAweDI4MDAwMDAwLCAweDAwODAwMTAxLAorCTB4ODAwNDA0MDIsIDB4MDAwMDIwMzAsIDB4MmMwMDAwMDAsIDB4MDA5MDAxMDEsCisJMHg4MDQwMDQwMiwgMHgwMDAwMjAzOCwgMHgyODAwMDgwMCwgMHg0MDgwMDEwMSwKKwkweDgwNDQwNDAyLCAweDAwMDAyMDM4LCAweDJjMDAwODAwLCAweDQwOTAwMTAxLAorCTB4MTAwMDAwMDIsIDB4MDAwMDIwMDAsIDB4MjAyMDAwMDAsIDB4MDAwMDEwMDEsCisJMHgxMDA0MDAwMiwgMHgwMDAwMjAwMCwgMHgyNDIwMDAwMCwgMHgwMDEwMTAwMSwKKwkweDEwNDAwMDAyLCAweDAwMDAyMDA4LCAweDIwMjAwODAwLCAweDQwMDAxMDAxLAorCTB4MTA0NDAwMDIsIDB4MDAwMDIwMDgsIDB4MjQyMDA4MDAsIDB4NDAxMDEwMDEsCisJMHgxMDAwMDQwMiwgMHgwMDAwMjAyMCwgMHgyODIwMDAwMCwgMHgwMDAwMTEwMSwKKwkweDEwMDQwNDAyLCAweDAwMDAyMDIwLCAweDJjMjAwMDAwLCAweDAwMTAxMTAxLAorCTB4MTA0MDA0MDIsIDB4MDAwMDIwMjgsIDB4MjgyMDA4MDAsIDB4NDAwMDExMDEsCisJMHgxMDQ0MDQwMiwgMHgwMDAwMjAyOCwgMHgyYzIwMDgwMCwgMHg0MDEwMTEwMSwKKwkweDkwMDAwMDAyLCAweDAwMDAyMDEwLCAweDIwMjAwMDAwLCAweDAwODAxMDAxLAorCTB4OTAwNDAwMDIsIDB4MDAwMDIwMTAsIDB4MjQyMDAwMDAsIDB4MDA5MDEwMDEsCisJMHg5MDQwMDAwMiwgMHgwMDAwMjAxOCwgMHgyMDIwMDgwMCwgMHg0MDgwMTAwMSwKKwkweDkwNDQwMDAyLCAweDAwMDAyMDE4LCAweDI0MjAwODAwLCAweDQwOTAxMDAxLAorCTB4OTAwMDA0MDIsIDB4MDAwMDIwMzAsIDB4MjgyMDAwMDAsIDB4MDA4MDExMDEsCisJMHg5MDA0MDQwMiwgMHgwMDAwMjAzMCwgMHgyYzIwMDAwMCwgMHgwMDkwMTEwMSwKKwkweDkwNDAwNDAyLCAweDAwMDAyMDM4LCAweDI4MjAwODAwLCAweDQwODAxMTAxLAorCTB4OTA0NDA0MDIsIDB4MDAwMDIwMzgsIDB4MmMyMDA4MDAsIDB4NDA5MDExMDEsCisJMHgwMDAwMDIwMiwgMHgwMDA4MjAwMCwgMHgyMDAwMDAwMCwgMHgwMDAwMDAwNSwKKwkweDAwMDQwMjAyLCAweDAwMDgyMDAwLCAweDI0MDAwMDAwLCAweDAwMTAwMDA1LAorCTB4MDA0MDAyMDIsIDB4MDAwODIwMDgsIDB4MjAwMDA4MDAsIDB4NDAwMDAwMDUsCisJMHgwMDQ0MDIwMiwgMHgwMDA4MjAwOCwgMHgyNDAwMDgwMCwgMHg0MDEwMDAwNSwKKwkweDAwMDAwNjAyLCAweDAwMDgyMDIwLCAweDI4MDAwMDAwLCAweDAwMDAwMTA1LAorCTB4MDAwNDA2MDIsIDB4MDAwODIwMjAsIDB4MmMwMDAwMDAsIDB4MDAxMDAxMDUsCisJMHgwMDQwMDYwMiwgMHgwMDA4MjAyOCwgMHgyODAwMDgwMCwgMHg0MDAwMDEwNSwKKwkweDAwNDQwNjAyLCAweDAwMDgyMDI4LCAweDJjMDAwODAwLCAweDQwMTAwMTA1LAorCTB4ODAwMDAyMDIsIDB4MDAwODIwMTAsIDB4MjAwMDAwMDAsIDB4MDA4MDAwMDUsCisJMHg4MDA0MDIwMiwgMHgwMDA4MjAxMCwgMHgyNDAwMDAwMCwgMHgwMDkwMDAwNSwKKwkweDgwNDAwMjAyLCAweDAwMDgyMDE4LCAweDIwMDAwODAwLCAweDQwODAwMDA1LAorCTB4ODA0NDAyMDIsIDB4MDAwODIwMTgsIDB4MjQwMDA4MDAsIDB4NDA5MDAwMDUsCisJMHg4MDAwMDYwMiwgMHgwMDA4MjAzMCwgMHgyODAwMDAwMCwgMHgwMDgwMDEwNSwKKwkweDgwMDQwNjAyLCAweDAwMDgyMDMwLCAweDJjMDAwMDAwLCAweDAwOTAwMTA1LAorCTB4ODA0MDA2MDIsIDB4MDAwODIwMzgsIDB4MjgwMDA4MDAsIDB4NDA4MDAxMDUsCisJMHg4MDQ0MDYwMiwgMHgwMDA4MjAzOCwgMHgyYzAwMDgwMCwgMHg0MDkwMDEwNSwKKwkweDEwMDAwMjAyLCAweDAwMDgyMDAwLCAweDIwMjAwMDAwLCAweDAwMDAxMDA1LAorCTB4MTAwNDAyMDIsIDB4MDAwODIwMDAsIDB4MjQyMDAwMDAsIDB4MDAxMDEwMDUsCisJMHgxMDQwMDIwMiwgMHgwMDA4MjAwOCwgMHgyMDIwMDgwMCwgMHg0MDAwMTAwNSwKKwkweDEwNDQwMjAyLCAweDAwMDgyMDA4LCAweDI0MjAwODAwLCAweDQwMTAxMDA1LAorCTB4MTAwMDA2MDIsIDB4MDAwODIwMjAsIDB4MjgyMDAwMDAsIDB4MDAwMDExMDUsCisJMHgxMDA0MDYwMiwgMHgwMDA4MjAyMCwgMHgyYzIwMDAwMCwgMHgwMDEwMTEwNSwKKwkweDEwNDAwNjAyLCAweDAwMDgyMDI4LCAweDI4MjAwODAwLCAweDQwMDAxMTA1LAorCTB4MTA0NDA2MDIsIDB4MDAwODIwMjgsIDB4MmMyMDA4MDAsIDB4NDAxMDExMDUsCisJMHg5MDAwMDIwMiwgMHgwMDA4MjAxMCwgMHgyMDIwMDAwMCwgMHgwMDgwMTAwNSwKKwkweDkwMDQwMjAyLCAweDAwMDgyMDEwLCAweDI0MjAwMDAwLCAweDAwOTAxMDA1LAorCTB4OTA0MDAyMDIsIDB4MDAwODIwMTgsIDB4MjAyMDA4MDAsIDB4NDA4MDEwMDUsCisJMHg5MDQ0MDIwMiwgMHgwMDA4MjAxOCwgMHgyNDIwMDgwMCwgMHg0MDkwMTAwNSwKKwkweDkwMDAwNjAyLCAweDAwMDgyMDMwLCAweDI4MjAwMDAwLCAweDAwODAxMTA1LAorCTB4OTAwNDA2MDIsIDB4MDAwODIwMzAsIDB4MmMyMDAwMDAsIDB4MDA5MDExMDUsCisJMHg5MDQwMDYwMiwgMHgwMDA4MjAzOCwgMHgyODIwMDgwMCwgMHg0MDgwMTEwNSwKKwkweDkwNDQwNjAyLCAweDAwMDgyMDM4LCAweDJjMjAwODAwLCAweDQwOTAxMTA1LAorCisJMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDAwMCwKKwkweDAwMDAwMDAwLCAweDAwMDAwMDA4LCAweDAwMDgwMDAwLCAweDEwMDAwMDAwLAorCTB4MDIwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwODAsIDB4MDAwMDEwMDAsCisJMHgwMjAwMDAwMCwgMHgwMDAwMDAwOCwgMHgwMDA4MDA4MCwgMHgxMDAwMTAwMCwKKwkweDAwMDA0MDAwLCAweDAwMDAwMDAwLCAweDAwMDAwMDQwLCAweDAwMDQwMDAwLAorCTB4MDAwMDQwMDAsIDB4MDAwMDAwMDgsIDB4MDAwODAwNDAsIDB4MTAwNDAwMDAsCisJMHgwMjAwNDAwMCwgMHgwMDAwMDAwMCwgMHgwMDAwMDBjMCwgMHgwMDA0MTAwMCwKKwkweDAyMDA0MDAwLCAweDAwMDAwMDA4LCAweDAwMDgwMGMwLCAweDEwMDQxMDAwLAorCTB4MDAwMjAwMDAsIDB4MDAwMDgwMDAsIDB4MDgwMDAwMDAsIDB4MDAyMDAwMDAsCisJMHgwMDAyMDAwMCwgMHgwMDAwODAwOCwgMHgwODA4MDAwMCwgMHgxMDIwMDAwMCwKKwkweDAyMDIwMDAwLCAweDAwMDA4MDAwLCAweDA4MDAwMDgwLCAweDAwMjAxMDAwLAorCTB4MDIwMjAwMDAsIDB4MDAwMDgwMDgsIDB4MDgwODAwODAsIDB4MTAyMDEwMDAsCisJMHgwMDAyNDAwMCwgMHgwMDAwODAwMCwgMHgwODAwMDA0MCwgMHgwMDI0MDAwMCwKKwkweDAwMDI0MDAwLCAweDAwMDA4MDA4LCAweDA4MDgwMDQwLCAweDEwMjQwMDAwLAorCTB4MDIwMjQwMDAsIDB4MDAwMDgwMDAsIDB4MDgwMDAwYzAsIDB4MDAyNDEwMDAsCisJMHgwMjAyNDAwMCwgMHgwMDAwODAwOCwgMHgwODA4MDBjMCwgMHgxMDI0MTAwMCwKKwkweDAwMDAwMDAwLCAweDAxMDAwMDAwLCAweDAwMDAyMDAwLCAweDAwMDAwMDIwLAorCTB4MDAwMDAwMDAsIDB4MDEwMDAwMDgsIDB4MDAwODIwMDAsIDB4MTAwMDAwMjAsCisJMHgwMjAwMDAwMCwgMHgwMTAwMDAwMCwgMHgwMDAwMjA4MCwgMHgwMDAwMTAyMCwKKwkweDAyMDAwMDAwLCAweDAxMDAwMDA4LCAweDAwMDgyMDgwLCAweDEwMDAxMDIwLAorCTB4MDAwMDQwMDAsIDB4MDEwMDAwMDAsIDB4MDAwMDIwNDAsIDB4MDAwNDAwMjAsCisJMHgwMDAwNDAwMCwgMHgwMTAwMDAwOCwgMHgwMDA4MjA0MCwgMHgxMDA0MDAyMCwKKwkweDAyMDA0MDAwLCAweDAxMDAwMDAwLCAweDAwMDAyMGMwLCAweDAwMDQxMDIwLAorCTB4MDIwMDQwMDAsIDB4MDEwMDAwMDgsIDB4MDAwODIwYzAsIDB4MTAwNDEwMjAsCisJMHgwMDAyMDAwMCwgMHgwMTAwODAwMCwgMHgwODAwMjAwMCwgMHgwMDIwMDAyMCwKKwkweDAwMDIwMDAwLCAweDAxMDA4MDA4LCAweDA4MDgyMDAwLCAweDEwMjAwMDIwLAorCTB4MDIwMjAwMDAsIDB4MDEwMDgwMDAsIDB4MDgwMDIwODAsIDB4MDAyMDEwMjAsCisJMHgwMjAyMDAwMCwgMHgwMTAwODAwOCwgMHgwODA4MjA4MCwgMHgxMDIwMTAyMCwKKwkweDAwMDI0MDAwLCAweDAxMDA4MDAwLCAweDA4MDAyMDQwLCAweDAwMjQwMDIwLAorCTB4MDAwMjQwMDAsIDB4MDEwMDgwMDgsIDB4MDgwODIwNDAsIDB4MTAyNDAwMjAsCisJMHgwMjAyNDAwMCwgMHgwMTAwODAwMCwgMHgwODAwMjBjMCwgMHgwMDI0MTAyMCwKKwkweDAyMDI0MDAwLCAweDAxMDA4MDA4LCAweDA4MDgyMGMwLCAweDEwMjQxMDIwLAorCTB4MDAwMDA0MDAsIDB4MDQwMDAwMDAsIDB4MDAxMDAwMDAsIDB4MDAwMDAwMDQsCisJMHgwMDAwMDQwMCwgMHgwNDAwMDAwOCwgMHgwMDE4MDAwMCwgMHgxMDAwMDAwNCwKKwkweDAyMDAwNDAwLCAweDA0MDAwMDAwLCAweDAwMTAwMDgwLCAweDAwMDAxMDA0LAorCTB4MDIwMDA0MDAsIDB4MDQwMDAwMDgsIDB4MDAxODAwODAsIDB4MTAwMDEwMDQsCisJMHgwMDAwNDQwMCwgMHgwNDAwMDAwMCwgMHgwMDEwMDA0MCwgMHgwMDA0MDAwNCwKKwkweDAwMDA0NDAwLCAweDA0MDAwMDA4LCAweDAwMTgwMDQwLCAweDEwMDQwMDA0LAorCTB4MDIwMDQ0MDAsIDB4MDQwMDAwMDAsIDB4MDAxMDAwYzAsIDB4MDAwNDEwMDQsCisJMHgwMjAwNDQwMCwgMHgwNDAwMDAwOCwgMHgwMDE4MDBjMCwgMHgxMDA0MTAwNCwKKwkweDAwMDIwNDAwLCAweDA0MDA4MDAwLCAweDA4MTAwMDAwLCAweDAwMjAwMDA0LAorCTB4MDAwMjA0MDAsIDB4MDQwMDgwMDgsIDB4MDgxODAwMDAsIDB4MTAyMDAwMDQsCisJMHgwMjAyMDQwMCwgMHgwNDAwODAwMCwgMHgwODEwMDA4MCwgMHgwMDIwMTAwNCwKKwkweDAyMDIwNDAwLCAweDA0MDA4MDA4LCAweDA4MTgwMDgwLCAweDEwMjAxMDA0LAorCTB4MDAwMjQ0MDAsIDB4MDQwMDgwMDAsIDB4MDgxMDAwNDAsIDB4MDAyNDAwMDQsCisJMHgwMDAyNDQwMCwgMHgwNDAwODAwOCwgMHgwODE4MDA0MCwgMHgxMDI0MDAwNCwKKwkweDAyMDI0NDAwLCAweDA0MDA4MDAwLCAweDA4MTAwMGMwLCAweDAwMjQxMDA0LAorCTB4MDIwMjQ0MDAsIDB4MDQwMDgwMDgsIDB4MDgxODAwYzAsIDB4MTAyNDEwMDQsCisJMHgwMDAwMDQwMCwgMHgwNTAwMDAwMCwgMHgwMDEwMjAwMCwgMHgwMDAwMDAyNCwKKwkweDAwMDAwNDAwLCAweDA1MDAwMDA4LCAweDAwMTgyMDAwLCAweDEwMDAwMDI0LAorCTB4MDIwMDA0MDAsIDB4MDUwMDAwMDAsIDB4MDAxMDIwODAsIDB4MDAwMDEwMjQsCisJMHgwMjAwMDQwMCwgMHgwNTAwMDAwOCwgMHgwMDE4MjA4MCwgMHgxMDAwMTAyNCwKKwkweDAwMDA0NDAwLCAweDA1MDAwMDAwLCAweDAwMTAyMDQwLCAweDAwMDQwMDI0LAorCTB4MDAwMDQ0MDAsIDB4MDUwMDAwMDgsIDB4MDAxODIwNDAsIDB4MTAwNDAwMjQsCisJMHgwMjAwNDQwMCwgMHgwNTAwMDAwMCwgMHgwMDEwMjBjMCwgMHgwMDA0MTAyNCwKKwkweDAyMDA0NDAwLCAweDA1MDAwMDA4LCAweDAwMTgyMGMwLCAweDEwMDQxMDI0LAorCTB4MDAwMjA0MDAsIDB4MDUwMDgwMDAsIDB4MDgxMDIwMDAsIDB4MDAyMDAwMjQsCisJMHgwMDAyMDQwMCwgMHgwNTAwODAwOCwgMHgwODE4MjAwMCwgMHgxMDIwMDAyNCwKKwkweDAyMDIwNDAwLCAweDA1MDA4MDAwLCAweDA4MTAyMDgwLCAweDAwMjAxMDI0LAorCTB4MDIwMjA0MDAsIDB4MDUwMDgwMDgsIDB4MDgxODIwODAsIDB4MTAyMDEwMjQsCisJMHgwMDAyNDQwMCwgMHgwNTAwODAwMCwgMHgwODEwMjA0MCwgMHgwMDI0MDAyNCwKKwkweDAwMDI0NDAwLCAweDA1MDA4MDA4LCAweDA4MTgyMDQwLCAweDEwMjQwMDI0LAorCTB4MDIwMjQ0MDAsIDB4MDUwMDgwMDAsIDB4MDgxMDIwYzAsIDB4MDAyNDEwMjQsCisJMHgwMjAyNDQwMCwgMHgwNTAwODAwOCwgMHgwODE4MjBjMCwgMHgxMDI0MTAyNCwKKwkweDAwMDAwODAwLCAweDAwMDEwMDAwLCAweDIwMDAwMDAwLCAweDAwMDAwMDEwLAorCTB4MDAwMDA4MDAsIDB4MDAwMTAwMDgsIDB4MjAwODAwMDAsIDB4MTAwMDAwMTAsCisJMHgwMjAwMDgwMCwgMHgwMDAxMDAwMCwgMHgyMDAwMDA4MCwgMHgwMDAwMTAxMCwKKwkweDAyMDAwODAwLCAweDAwMDEwMDA4LCAweDIwMDgwMDgwLCAweDEwMDAxMDEwLAorCTB4MDAwMDQ4MDAsIDB4MDAwMTAwMDAsIDB4MjAwMDAwNDAsIDB4MDAwNDAwMTAsCisJMHgwMDAwNDgwMCwgMHgwMDAxMDAwOCwgMHgyMDA4MDA0MCwgMHgxMDA0MDAxMCwKKwkweDAyMDA0ODAwLCAweDAwMDEwMDAwLCAweDIwMDAwMGMwLCAweDAwMDQxMDEwLAorCTB4MDIwMDQ4MDAsIDB4MDAwMTAwMDgsIDB4MjAwODAwYzAsIDB4MTAwNDEwMTAsCisJMHgwMDAyMDgwMCwgMHgwMDAxODAwMCwgMHgyODAwMDAwMCwgMHgwMDIwMDAxMCwKKwkweDAwMDIwODAwLCAweDAwMDE4MDA4LCAweDI4MDgwMDAwLCAweDEwMjAwMDEwLAorCTB4MDIwMjA4MDAsIDB4MDAwMTgwMDAsIDB4MjgwMDAwODAsIDB4MDAyMDEwMTAsCisJMHgwMjAyMDgwMCwgMHgwMDAxODAwOCwgMHgyODA4MDA4MCwgMHgxMDIwMTAxMCwKKwkweDAwMDI0ODAwLCAweDAwMDE4MDAwLCAweDI4MDAwMDQwLCAweDAwMjQwMDEwLAorCTB4MDAwMjQ4MDAsIDB4MDAwMTgwMDgsIDB4MjgwODAwNDAsIDB4MTAyNDAwMTAsCisJMHgwMjAyNDgwMCwgMHgwMDAxODAwMCwgMHgyODAwMDBjMCwgMHgwMDI0MTAxMCwKKwkweDAyMDI0ODAwLCAweDAwMDE4MDA4LCAweDI4MDgwMGMwLCAweDEwMjQxMDEwLAorCTB4MDAwMDA4MDAsIDB4MDEwMTAwMDAsIDB4MjAwMDIwMDAsIDB4MDAwMDAwMzAsCisJMHgwMDAwMDgwMCwgMHgwMTAxMDAwOCwgMHgyMDA4MjAwMCwgMHgxMDAwMDAzMCwKKwkweDAyMDAwODAwLCAweDAxMDEwMDAwLCAweDIwMDAyMDgwLCAweDAwMDAxMDMwLAorCTB4MDIwMDA4MDAsIDB4MDEwMTAwMDgsIDB4MjAwODIwODAsIDB4MTAwMDEwMzAsCisJMHgwMDAwNDgwMCwgMHgwMTAxMDAwMCwgMHgyMDAwMjA0MCwgMHgwMDA0MDAzMCwKKwkweDAwMDA0ODAwLCAweDAxMDEwMDA4LCAweDIwMDgyMDQwLCAweDEwMDQwMDMwLAorCTB4MDIwMDQ4MDAsIDB4MDEwMTAwMDAsIDB4MjAwMDIwYzAsIDB4MDAwNDEwMzAsCisJMHgwMjAwNDgwMCwgMHgwMTAxMDAwOCwgMHgyMDA4MjBjMCwgMHgxMDA0MTAzMCwKKwkweDAwMDIwODAwLCAweDAxMDE4MDAwLCAweDI4MDAyMDAwLCAweDAwMjAwMDMwLAorCTB4MDAwMjA4MDAsIDB4MDEwMTgwMDgsIDB4MjgwODIwMDAsIDB4MTAyMDAwMzAsCisJMHgwMjAyMDgwMCwgMHgwMTAxODAwMCwgMHgyODAwMjA4MCwgMHgwMDIwMTAzMCwKKwkweDAyMDIwODAwLCAweDAxMDE4MDA4LCAweDI4MDgyMDgwLCAweDEwMjAxMDMwLAorCTB4MDAwMjQ4MDAsIDB4MDEwMTgwMDAsIDB4MjgwMDIwNDAsIDB4MDAyNDAwMzAsCisJMHgwMDAyNDgwMCwgMHgwMTAxODAwOCwgMHgyODA4MjA0MCwgMHgxMDI0MDAzMCwKKwkweDAyMDI0ODAwLCAweDAxMDE4MDAwLCAweDI4MDAyMGMwLCAweDAwMjQxMDMwLAorCTB4MDIwMjQ4MDAsIDB4MDEwMTgwMDgsIDB4MjgwODIwYzAsIDB4MTAyNDEwMzAsCisJMHgwMDAwMGMwMCwgMHgwNDAxMDAwMCwgMHgyMDEwMDAwMCwgMHgwMDAwMDAxNCwKKwkweDAwMDAwYzAwLCAweDA0MDEwMDA4LCAweDIwMTgwMDAwLCAweDEwMDAwMDE0LAorCTB4MDIwMDBjMDAsIDB4MDQwMTAwMDAsIDB4MjAxMDAwODAsIDB4MDAwMDEwMTQsCisJMHgwMjAwMGMwMCwgMHgwNDAxMDAwOCwgMHgyMDE4MDA4MCwgMHgxMDAwMTAxNCwKKwkweDAwMDA0YzAwLCAweDA0MDEwMDAwLCAweDIwMTAwMDQwLCAweDAwMDQwMDE0LAorCTB4MDAwMDRjMDAsIDB4MDQwMTAwMDgsIDB4MjAxODAwNDAsIDB4MTAwNDAwMTQsCisJMHgwMjAwNGMwMCwgMHgwNDAxMDAwMCwgMHgyMDEwMDBjMCwgMHgwMDA0MTAxNCwKKwkweDAyMDA0YzAwLCAweDA0MDEwMDA4LCAweDIwMTgwMGMwLCAweDEwMDQxMDE0LAorCTB4MDAwMjBjMDAsIDB4MDQwMTgwMDAsIDB4MjgxMDAwMDAsIDB4MDAyMDAwMTQsCisJMHgwMDAyMGMwMCwgMHgwNDAxODAwOCwgMHgyODE4MDAwMCwgMHgxMDIwMDAxNCwKKwkweDAyMDIwYzAwLCAweDA0MDE4MDAwLCAweDI4MTAwMDgwLCAweDAwMjAxMDE0LAorCTB4MDIwMjBjMDAsIDB4MDQwMTgwMDgsIDB4MjgxODAwODAsIDB4MTAyMDEwMTQsCisJMHgwMDAyNGMwMCwgMHgwNDAxODAwMCwgMHgyODEwMDA0MCwgMHgwMDI0MDAxNCwKKwkweDAwMDI0YzAwLCAweDA0MDE4MDA4LCAweDI4MTgwMDQwLCAweDEwMjQwMDE0LAorCTB4MDIwMjRjMDAsIDB4MDQwMTgwMDAsIDB4MjgxMDAwYzAsIDB4MDAyNDEwMTQsCisJMHgwMjAyNGMwMCwgMHgwNDAxODAwOCwgMHgyODE4MDBjMCwgMHgxMDI0MTAxNCwKKwkweDAwMDAwYzAwLCAweDA1MDEwMDAwLCAweDIwMTAyMDAwLCAweDAwMDAwMDM0LAorCTB4MDAwMDBjMDAsIDB4MDUwMTAwMDgsIDB4MjAxODIwMDAsIDB4MTAwMDAwMzQsCisJMHgwMjAwMGMwMCwgMHgwNTAxMDAwMCwgMHgyMDEwMjA4MCwgMHgwMDAwMTAzNCwKKwkweDAyMDAwYzAwLCAweDA1MDEwMDA4LCAweDIwMTgyMDgwLCAweDEwMDAxMDM0LAorCTB4MDAwMDRjMDAsIDB4MDUwMTAwMDAsIDB4MjAxMDIwNDAsIDB4MDAwNDAwMzQsCisJMHgwMDAwNGMwMCwgMHgwNTAxMDAwOCwgMHgyMDE4MjA0MCwgMHgxMDA0MDAzNCwKKwkweDAyMDA0YzAwLCAweDA1MDEwMDAwLCAweDIwMTAyMGMwLCAweDAwMDQxMDM0LAorCTB4MDIwMDRjMDAsIDB4MDUwMTAwMDgsIDB4MjAxODIwYzAsIDB4MTAwNDEwMzQsCisJMHgwMDAyMGMwMCwgMHgwNTAxODAwMCwgMHgyODEwMjAwMCwgMHgwMDIwMDAzNCwKKwkweDAwMDIwYzAwLCAweDA1MDE4MDA4LCAweDI4MTgyMDAwLCAweDEwMjAwMDM0LAorCTB4MDIwMjBjMDAsIDB4MDUwMTgwMDAsIDB4MjgxMDIwODAsIDB4MDAyMDEwMzQsCisJMHgwMjAyMGMwMCwgMHgwNTAxODAwOCwgMHgyODE4MjA4MCwgMHgxMDIwMTAzNCwKKwkweDAwMDI0YzAwLCAweDA1MDE4MDAwLCAweDI4MTAyMDQwLCAweDAwMjQwMDM0LAorCTB4MDAwMjRjMDAsIDB4MDUwMTgwMDgsIDB4MjgxODIwNDAsIDB4MTAyNDAwMzQsCisJMHgwMjAyNGMwMCwgMHgwNTAxODAwMCwgMHgyODEwMjBjMCwgMHgwMDI0MTAzNCwKKwkweDAyMDI0YzAwLCAweDA1MDE4MDA4LCAweDI4MTgyMGMwLCAweDEwMjQxMDM0CiB9OwogCisvKiBTLWJveCBsb29rdXAgdGFibGVzICovCiAKLXN0YXRpYyB2b2lkIGRlc19zbWFsbF9maXBzX2VuY3J5cHQodTMyICpleHBrZXksIHU4ICpkc3QsIGNvbnN0IHU4ICpzcmMpCitzdGF0aWMgY29uc3QgdTMyIFMxWzY0XSA9IHsKKwkweDAxMDEwNDAwLCAweDAwMDAwMDAwLCAweDAwMDEwMDAwLCAweDAxMDEwNDA0LAorCTB4MDEwMTAwMDQsIDB4MDAwMTA0MDQsIDB4MDAwMDAwMDQsIDB4MDAwMTAwMDAsCisJMHgwMDAwMDQwMCwgMHgwMTAxMDQwMCwgMHgwMTAxMDQwNCwgMHgwMDAwMDQwMCwKKwkweDAxMDAwNDA0LCAweDAxMDEwMDA0LCAweDAxMDAwMDAwLCAweDAwMDAwMDA0LAorCTB4MDAwMDA0MDQsIDB4MDEwMDA0MDAsIDB4MDEwMDA0MDAsIDB4MDAwMTA0MDAsCisJMHgwMDAxMDQwMCwgMHgwMTAxMDAwMCwgMHgwMTAxMDAwMCwgMHgwMTAwMDQwNCwKKwkweDAwMDEwMDA0LCAweDAxMDAwMDA0LCAweDAxMDAwMDA0LCAweDAwMDEwMDA0LAorCTB4MDAwMDAwMDAsIDB4MDAwMDA0MDQsIDB4MDAwMTA0MDQsIDB4MDEwMDAwMDAsCisJMHgwMDAxMDAwMCwgMHgwMTAxMDQwNCwgMHgwMDAwMDAwNCwgMHgwMTAxMDAwMCwKKwkweDAxMDEwNDAwLCAweDAxMDAwMDAwLCAweDAxMDAwMDAwLCAweDAwMDAwNDAwLAorCTB4MDEwMTAwMDQsIDB4MDAwMTAwMDAsIDB4MDAwMTA0MDAsIDB4MDEwMDAwMDQsCisJMHgwMDAwMDQwMCwgMHgwMDAwMDAwNCwgMHgwMTAwMDQwNCwgMHgwMDAxMDQwNCwKKwkweDAxMDEwNDA0LCAweDAwMDEwMDA0LCAweDAxMDEwMDAwLCAweDAxMDAwNDA0LAorCTB4MDEwMDAwMDQsIDB4MDAwMDA0MDQsIDB4MDAwMTA0MDQsIDB4MDEwMTA0MDAsCisJMHgwMDAwMDQwNCwgMHgwMTAwMDQwMCwgMHgwMTAwMDQwMCwgMHgwMDAwMDAwMCwKKwkweDAwMDEwMDA0LCAweDAwMDEwNDAwLCAweDAwMDAwMDAwLCAweDAxMDEwMDA0Cit9OworCitzdGF0aWMgY29uc3QgdTMyIFMyWzY0XSA9IHsKKwkweDgwMTA4MDIwLCAweDgwMDA4MDAwLCAweDAwMDA4MDAwLCAweDAwMTA4MDIwLAorCTB4MDAxMDAwMDAsIDB4MDAwMDAwMjAsIDB4ODAxMDAwMjAsIDB4ODAwMDgwMjAsCisJMHg4MDAwMDAyMCwgMHg4MDEwODAyMCwgMHg4MDEwODAwMCwgMHg4MDAwMDAwMCwKKwkweDgwMDA4MDAwLCAweDAwMTAwMDAwLCAweDAwMDAwMDIwLCAweDgwMTAwMDIwLAorCTB4MDAxMDgwMDAsIDB4MDAxMDAwMjAsIDB4ODAwMDgwMjAsIDB4MDAwMDAwMDAsCisJMHg4MDAwMDAwMCwgMHgwMDAwODAwMCwgMHgwMDEwODAyMCwgMHg4MDEwMDAwMCwKKwkweDAwMTAwMDIwLCAweDgwMDAwMDIwLCAweDAwMDAwMDAwLCAweDAwMTA4MDAwLAorCTB4MDAwMDgwMjAsIDB4ODAxMDgwMDAsIDB4ODAxMDAwMDAsIDB4MDAwMDgwMjAsCisJMHgwMDAwMDAwMCwgMHgwMDEwODAyMCwgMHg4MDEwMDAyMCwgMHgwMDEwMDAwMCwKKwkweDgwMDA4MDIwLCAweDgwMTAwMDAwLCAweDgwMTA4MDAwLCAweDAwMDA4MDAwLAorCTB4ODAxMDAwMDAsIDB4ODAwMDgwMDAsIDB4MDAwMDAwMjAsIDB4ODAxMDgwMjAsCisJMHgwMDEwODAyMCwgMHgwMDAwMDAyMCwgMHgwMDAwODAwMCwgMHg4MDAwMDAwMCwKKwkweDAwMDA4MDIwLCAweDgwMTA4MDAwLCAweDAwMTAwMDAwLCAweDgwMDAwMDIwLAorCTB4MDAxMDAwMjAsIDB4ODAwMDgwMjAsIDB4ODAwMDAwMjAsIDB4MDAxMDAwMjAsCisJMHgwMDEwODAwMCwgMHgwMDAwMDAwMCwgMHg4MDAwODAwMCwgMHgwMDAwODAyMCwKKwkweDgwMDAwMDAwLCAweDgwMTAwMDIwLCAweDgwMTA4MDIwLCAweDAwMTA4MDAwCit9OworCitzdGF0aWMgY29uc3QgdTMyIFMzWzY0XSA9IHsKKwkweDAwMDAwMjA4LCAweDA4MDIwMjAwLCAweDAwMDAwMDAwLCAweDA4MDIwMDA4LAorCTB4MDgwMDAyMDAsIDB4MDAwMDAwMDAsIDB4MDAwMjAyMDgsIDB4MDgwMDAyMDAsCisJMHgwMDAyMDAwOCwgMHgwODAwMDAwOCwgMHgwODAwMDAwOCwgMHgwMDAyMDAwMCwKKwkweDA4MDIwMjA4LCAweDAwMDIwMDA4LCAweDA4MDIwMDAwLCAweDAwMDAwMjA4LAorCTB4MDgwMDAwMDAsIDB4MDAwMDAwMDgsIDB4MDgwMjAyMDAsIDB4MDAwMDAyMDAsCisJMHgwMDAyMDIwMCwgMHgwODAyMDAwMCwgMHgwODAyMDAwOCwgMHgwMDAyMDIwOCwKKwkweDA4MDAwMjA4LCAweDAwMDIwMjAwLCAweDAwMDIwMDAwLCAweDA4MDAwMjA4LAorCTB4MDAwMDAwMDgsIDB4MDgwMjAyMDgsIDB4MDAwMDAyMDAsIDB4MDgwMDAwMDAsCisJMHgwODAyMDIwMCwgMHgwODAwMDAwMCwgMHgwMDAyMDAwOCwgMHgwMDAwMDIwOCwKKwkweDAwMDIwMDAwLCAweDA4MDIwMjAwLCAweDA4MDAwMjAwLCAweDAwMDAwMDAwLAorCTB4MDAwMDAyMDAsIDB4MDAwMjAwMDgsIDB4MDgwMjAyMDgsIDB4MDgwMDAyMDAsCisJMHgwODAwMDAwOCwgMHgwMDAwMDIwMCwgMHgwMDAwMDAwMCwgMHgwODAyMDAwOCwKKwkweDA4MDAwMjA4LCAweDAwMDIwMDAwLCAweDA4MDAwMDAwLCAweDA4MDIwMjA4LAorCTB4MDAwMDAwMDgsIDB4MDAwMjAyMDgsIDB4MDAwMjAyMDAsIDB4MDgwMDAwMDgsCisJMHgwODAyMDAwMCwgMHgwODAwMDIwOCwgMHgwMDAwMDIwOCwgMHgwODAyMDAwMCwKKwkweDAwMDIwMjA4LCAweDAwMDAwMDA4LCAweDA4MDIwMDA4LCAweDAwMDIwMjAwCit9OworCitzdGF0aWMgY29uc3QgdTMyIFM0WzY0XSA9IHsKKwkweDAwODAyMDAxLCAweDAwMDAyMDgxLCAweDAwMDAyMDgxLCAweDAwMDAwMDgwLAorCTB4MDA4MDIwODAsIDB4MDA4MDAwODEsIDB4MDA4MDAwMDEsIDB4MDAwMDIwMDEsCisJMHgwMDAwMDAwMCwgMHgwMDgwMjAwMCwgMHgwMDgwMjAwMCwgMHgwMDgwMjA4MSwKKwkweDAwMDAwMDgxLCAweDAwMDAwMDAwLCAweDAwODAwMDgwLCAweDAwODAwMDAxLAorCTB4MDAwMDAwMDEsIDB4MDAwMDIwMDAsIDB4MDA4MDAwMDAsIDB4MDA4MDIwMDEsCisJMHgwMDAwMDA4MCwgMHgwMDgwMDAwMCwgMHgwMDAwMjAwMSwgMHgwMDAwMjA4MCwKKwkweDAwODAwMDgxLCAweDAwMDAwMDAxLCAweDAwMDAyMDgwLCAweDAwODAwMDgwLAorCTB4MDAwMDIwMDAsIDB4MDA4MDIwODAsIDB4MDA4MDIwODEsIDB4MDAwMDAwODEsCisJMHgwMDgwMDA4MCwgMHgwMDgwMDAwMSwgMHgwMDgwMjAwMCwgMHgwMDgwMjA4MSwKKwkweDAwMDAwMDgxLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDAwODAyMDAwLAorCTB4MDAwMDIwODAsIDB4MDA4MDAwODAsIDB4MDA4MDAwODEsIDB4MDAwMDAwMDEsCisJMHgwMDgwMjAwMSwgMHgwMDAwMjA4MSwgMHgwMDAwMjA4MSwgMHgwMDAwMDA4MCwKKwkweDAwODAyMDgxLCAweDAwMDAwMDgxLCAweDAwMDAwMDAxLCAweDAwMDAyMDAwLAorCTB4MDA4MDAwMDEsIDB4MDAwMDIwMDEsIDB4MDA4MDIwODAsIDB4MDA4MDAwODEsCisJMHgwMDAwMjAwMSwgMHgwMDAwMjA4MCwgMHgwMDgwMDAwMCwgMHgwMDgwMjAwMSwKKwkweDAwMDAwMDgwLCAweDAwODAwMDAwLCAweDAwMDAyMDAwLCAweDAwODAyMDgwCit9OworCitzdGF0aWMgY29uc3QgdTMyIFM1WzY0XSA9IHsKKwkweDAwMDAwMTAwLCAweDAyMDgwMTAwLCAweDAyMDgwMDAwLCAweDQyMDAwMTAwLAorCTB4MDAwODAwMDAsIDB4MDAwMDAxMDAsIDB4NDAwMDAwMDAsIDB4MDIwODAwMDAsCisJMHg0MDA4MDEwMCwgMHgwMDA4MDAwMCwgMHgwMjAwMDEwMCwgMHg0MDA4MDEwMCwKKwkweDQyMDAwMTAwLCAweDQyMDgwMDAwLCAweDAwMDgwMTAwLCAweDQwMDAwMDAwLAorCTB4MDIwMDAwMDAsIDB4NDAwODAwMDAsIDB4NDAwODAwMDAsIDB4MDAwMDAwMDAsCisJMHg0MDAwMDEwMCwgMHg0MjA4MDEwMCwgMHg0MjA4MDEwMCwgMHgwMjAwMDEwMCwKKwkweDQyMDgwMDAwLCAweDQwMDAwMTAwLCAweDAwMDAwMDAwLCAweDQyMDAwMDAwLAorCTB4MDIwODAxMDAsIDB4MDIwMDAwMDAsIDB4NDIwMDAwMDAsIDB4MDAwODAxMDAsCisJMHgwMDA4MDAwMCwgMHg0MjAwMDEwMCwgMHgwMDAwMDEwMCwgMHgwMjAwMDAwMCwKKwkweDQwMDAwMDAwLCAweDAyMDgwMDAwLCAweDQyMDAwMTAwLCAweDQwMDgwMTAwLAorCTB4MDIwMDAxMDAsIDB4NDAwMDAwMDAsIDB4NDIwODAwMDAsIDB4MDIwODAxMDAsCisJMHg0MDA4MDEwMCwgMHgwMDAwMDEwMCwgMHgwMjAwMDAwMCwgMHg0MjA4MDAwMCwKKwkweDQyMDgwMTAwLCAweDAwMDgwMTAwLCAweDQyMDAwMDAwLCAweDQyMDgwMTAwLAorCTB4MDIwODAwMDAsIDB4MDAwMDAwMDAsIDB4NDAwODAwMDAsIDB4NDIwMDAwMDAsCisJMHgwMDA4MDEwMCwgMHgwMjAwMDEwMCwgMHg0MDAwMDEwMCwgMHgwMDA4MDAwMCwKKwkweDAwMDAwMDAwLCAweDQwMDgwMDAwLCAweDAyMDgwMTAwLCAweDQwMDAwMTAwCit9OworCitzdGF0aWMgY29uc3QgdTMyIFM2WzY0XSA9IHsKKwkweDIwMDAwMDEwLCAweDIwNDAwMDAwLCAweDAwMDA0MDAwLCAweDIwNDA0MDEwLAorCTB4MjA0MDAwMDAsIDB4MDAwMDAwMTAsIDB4MjA0MDQwMTAsIDB4MDA0MDAwMDAsCisJMHgyMDAwNDAwMCwgMHgwMDQwNDAxMCwgMHgwMDQwMDAwMCwgMHgyMDAwMDAxMCwKKwkweDAwNDAwMDEwLCAweDIwMDA0MDAwLCAweDIwMDAwMDAwLCAweDAwMDA0MDEwLAorCTB4MDAwMDAwMDAsIDB4MDA0MDAwMTAsIDB4MjAwMDQwMTAsIDB4MDAwMDQwMDAsCisJMHgwMDQwNDAwMCwgMHgyMDAwNDAxMCwgMHgwMDAwMDAxMCwgMHgyMDQwMDAxMCwKKwkweDIwNDAwMDEwLCAweDAwMDAwMDAwLCAweDAwNDA0MDEwLCAweDIwNDA0MDAwLAorCTB4MDAwMDQwMTAsIDB4MDA0MDQwMDAsIDB4MjA0MDQwMDAsIDB4MjAwMDAwMDAsCisJMHgyMDAwNDAwMCwgMHgwMDAwMDAxMCwgMHgyMDQwMDAxMCwgMHgwMDQwNDAwMCwKKwkweDIwNDA0MDEwLCAweDAwNDAwMDAwLCAweDAwMDA0MDEwLCAweDIwMDAwMDEwLAorCTB4MDA0MDAwMDAsIDB4MjAwMDQwMDAsIDB4MjAwMDAwMDAsIDB4MDAwMDQwMTAsCisJMHgyMDAwMDAxMCwgMHgyMDQwNDAxMCwgMHgwMDQwNDAwMCwgMHgyMDQwMDAwMCwKKwkweDAwNDA0MDEwLCAweDIwNDA0MDAwLCAweDAwMDAwMDAwLCAweDIwNDAwMDEwLAorCTB4MDAwMDAwMTAsIDB4MDAwMDQwMDAsIDB4MjA0MDAwMDAsIDB4MDA0MDQwMTAsCisJMHgwMDAwNDAwMCwgMHgwMDQwMDAxMCwgMHgyMDAwNDAxMCwgMHgwMDAwMDAwMCwKKwkweDIwNDA0MDAwLCAweDIwMDAwMDAwLCAweDAwNDAwMDEwLCAweDIwMDA0MDEwCit9OworCitzdGF0aWMgY29uc3QgdTMyIFM3WzY0XSA9IHsKKwkweDAwMjAwMDAwLCAweDA0MjAwMDAyLCAweDA0MDAwODAyLCAweDAwMDAwMDAwLAorCTB4MDAwMDA4MDAsIDB4MDQwMDA4MDIsIDB4MDAyMDA4MDIsIDB4MDQyMDA4MDAsCisJMHgwNDIwMDgwMiwgMHgwMDIwMDAwMCwgMHgwMDAwMDAwMCwgMHgwNDAwMDAwMiwKKwkweDAwMDAwMDAyLCAweDA0MDAwMDAwLCAweDA0MjAwMDAyLCAweDAwMDAwODAyLAorCTB4MDQwMDA4MDAsIDB4MDAyMDA4MDIsIDB4MDAyMDAwMDIsIDB4MDQwMDA4MDAsCisJMHgwNDAwMDAwMiwgMHgwNDIwMDAwMCwgMHgwNDIwMDgwMCwgMHgwMDIwMDAwMiwKKwkweDA0MjAwMDAwLCAweDAwMDAwODAwLCAweDAwMDAwODAyLCAweDA0MjAwODAyLAorCTB4MDAyMDA4MDAsIDB4MDAwMDAwMDIsIDB4MDQwMDAwMDAsIDB4MDAyMDA4MDAsCisJMHgwNDAwMDAwMCwgMHgwMDIwMDgwMCwgMHgwMDIwMDAwMCwgMHgwNDAwMDgwMiwKKwkweDA0MDAwODAyLCAweDA0MjAwMDAyLCAweDA0MjAwMDAyLCAweDAwMDAwMDAyLAorCTB4MDAyMDAwMDIsIDB4MDQwMDAwMDAsIDB4MDQwMDA4MDAsIDB4MDAyMDAwMDAsCisJMHgwNDIwMDgwMCwgMHgwMDAwMDgwMiwgMHgwMDIwMDgwMiwgMHgwNDIwMDgwMCwKKwkweDAwMDAwODAyLCAweDA0MDAwMDAyLCAweDA0MjAwODAyLCAweDA0MjAwMDAwLAorCTB4MDAyMDA4MDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDIsIDB4MDQyMDA4MDIsCisJMHgwMDAwMDAwMCwgMHgwMDIwMDgwMiwgMHgwNDIwMDAwMCwgMHgwMDAwMDgwMCwKKwkweDA0MDAwMDAyLCAweDA0MDAwODAwLCAweDAwMDAwODAwLCAweDAwMjAwMDAyCit9OworCitzdGF0aWMgY29uc3QgdTMyIFM4WzY0XSA9IHsKKwkweDEwMDAxMDQwLCAweDAwMDAxMDAwLCAweDAwMDQwMDAwLCAweDEwMDQxMDQwLAorCTB4MTAwMDAwMDAsIDB4MTAwMDEwNDAsIDB4MDAwMDAwNDAsIDB4MTAwMDAwMDAsCisJMHgwMDA0MDA0MCwgMHgxMDA0MDAwMCwgMHgxMDA0MTA0MCwgMHgwMDA0MTAwMCwKKwkweDEwMDQxMDAwLCAweDAwMDQxMDQwLCAweDAwMDAxMDAwLCAweDAwMDAwMDQwLAorCTB4MTAwNDAwMDAsIDB4MTAwMDAwNDAsIDB4MTAwMDEwMDAsIDB4MDAwMDEwNDAsCisJMHgwMDA0MTAwMCwgMHgwMDA0MDA0MCwgMHgxMDA0MDA0MCwgMHgxMDA0MTAwMCwKKwkweDAwMDAxMDQwLCAweDAwMDAwMDAwLCAweDAwMDAwMDAwLCAweDEwMDQwMDQwLAorCTB4MTAwMDAwNDAsIDB4MTAwMDEwMDAsIDB4MDAwNDEwNDAsIDB4MDAwNDAwMDAsCisJMHgwMDA0MTA0MCwgMHgwMDA0MDAwMCwgMHgxMDA0MTAwMCwgMHgwMDAwMTAwMCwKKwkweDAwMDAwMDQwLCAweDEwMDQwMDQwLCAweDAwMDAxMDAwLCAweDAwMDQxMDQwLAorCTB4MTAwMDEwMDAsIDB4MDAwMDAwNDAsIDB4MTAwMDAwNDAsIDB4MTAwNDAwMDAsCisJMHgxMDA0MDA0MCwgMHgxMDAwMDAwMCwgMHgwMDA0MDAwMCwgMHgxMDAwMTA0MCwKKwkweDAwMDAwMDAwLCAweDEwMDQxMDQwLCAweDAwMDQwMDQwLCAweDEwMDAwMDQwLAorCTB4MTAwNDAwMDAsIDB4MTAwMDEwMDAsIDB4MTAwMDEwNDAsIDB4MDAwMDAwMDAsCisJMHgxMDA0MTA0MCwgMHgwMDA0MTAwMCwgMHgwMDA0MTAwMCwgMHgwMDAwMTA0MCwKKwkweDAwMDAxMDQwLCAweDAwMDQwMDQwLCAweDEwMDAwMDAwLCAweDEwMDQxMDAwCit9OworCisvKiBFbmNyeXB0aW9uIGNvbXBvbmVudHM6IElQLCBGUCwgYW5kIHJvdW5kIGZ1bmN0aW9uICovCisKKyNkZWZpbmUgSVAoTCwgUiwgVCkJCVwKKwlST0woUiwgNCk7CQlcCisJVCAgPSBMOwkJCVwKKwlMIF49IFI7CQkJXAorCUwgJj0gMHhmMGYwZjBmMDsJXAorCVIgXj0gTDsJCQlcCisJTCBePSBUOwkJCVwKKwlST0woUiwgMTIpOwkJXAorCVQgID0gTDsJCQlcCisJTCBePSBSOwkJCVwKKwlMICY9IDB4ZmZmZjAwMDA7CVwKKwlSIF49IEw7CQkJXAorCUwgXj0gVDsJCQlcCisJUk9SKFIsIDE0KTsJCVwKKwlUICA9IEw7CQkJXAorCUwgXj0gUjsJCQlcCisJTCAmPSAweGNjY2NjY2NjOwlcCisJUiBePSBMOwkJCVwKKwlMIF49IFQ7CQkJXAorCVJPTChSLCA2KTsJCVwKKwlUICA9IEw7CQkJXAorCUwgXj0gUjsJCQlcCisJTCAmPSAweGZmMDBmZjAwOwlcCisJUiBePSBMOwkJCVwKKwlMIF49IFQ7CQkJXAorCVJPUihSLCA3KTsJCVwKKwlUICA9IEw7CQkJXAorCUwgXj0gUjsJCQlcCisJTCAmPSAweGFhYWFhYWFhOwlcCisJUiBePSBMOwkJCVwKKwlMIF49IFQ7CQkJXAorCVJPTChMLCAxKTsKKworI2RlZmluZSBGUChMLCBSLCBUKQkJXAorCVJPUihMLCAxKTsJCVwKKwlUICA9IEw7CQkJXAorCUwgXj0gUjsJCQlcCisJTCAmPSAweGFhYWFhYWFhOwlcCisJUiBePSBMOwkJCVwKKwlMIF49IFQ7CQkJXAorCVJPTChSLCA3KTsJCVwKKwlUICA9IEw7CQkJXAorCUwgXj0gUjsJCQlcCisJTCAmPSAweGZmMDBmZjAwOwlcCisJUiBePSBMOwkJCVwKKwlMIF49IFQ7CQkJXAorCVJPUihSLCA2KTsJCVwKKwlUICA9IEw7CQkJXAorCUwgXj0gUjsJCQlcCisJTCAmPSAweGNjY2NjY2NjOwlcCisJUiBePSBMOwkJCVwKKwlMIF49IFQ7CQkJXAorCVJPTChSLCAxNCk7CQlcCisJVCAgPSBMOwkJCVwKKwlMIF49IFI7CQkJXAorCUwgJj0gMHhmZmZmMDAwMDsJXAorCVIgXj0gTDsJCQlcCisJTCBePSBUOwkJCVwKKwlST1IoUiwgMTIpOwkJXAorCVQgID0gTDsJCQlcCisJTCBePSBSOwkJCVwKKwlMICY9IDB4ZjBmMGYwZjA7CVwKKwlSIF49IEw7CQkJXAorCUwgXj0gVDsJCQlcCisJUk9SKFIsIDQpOworCisjZGVmaW5lIFJPVU5EKEwsIFIsIEEsIEIsIEssIGQpCQkJCQlcCisJQiA9IEtbMF07CQkJQSA9IEtbMV07CUsgKz0gZDsJXAorCUIgXj0gUjsJCQkJQSBePSBSOwkJCVwKKwlCICY9IDB4M2YzZjNmM2Y7CQlST1IoQSwgNCk7CQlcCisJTCBePSBTOFsweGZmICYgQl07CQlBICY9IDB4M2YzZjNmM2Y7CVwKKwlMIF49IFM2WzB4ZmYgJiAoQiA+PiA4KV07CUIgPj49IDE2OwkJXAorCUwgXj0gUzdbMHhmZiAmIEFdOwkJCQkJXAorCUwgXj0gUzVbMHhmZiAmIChBID4+IDgpXTsJQSA+Pj0gMTY7CQlcCisJTCBePSBTNFsweGZmICYgQl07CQkJCQlcCisJTCBePSBTMlsweGZmICYgKEIgPj4gOCldOwkJCQlcCisJTCBePSBTM1sweGZmICYgQV07CQkJCQlcCisJTCBePSBTMVsweGZmICYgKEEgPj4gOCldOworCisvKgorICogUEMyIGxvb2t1cCB0YWJsZXMgYXJlIG9yZ2FuaXplZCBhcyAyIGNvbnNlY3V0aXZlIHNldHMgb2YgNCBpbnRlcmxlYXZlZAorICogdGFibGVzIG9mIDEyOCBlbGVtZW50cy4gIE9uZSBzZXQgaXMgZm9yIENfaSBhbmQgdGhlIG90aGVyIGZvciBEX2ksIHdoaWxlCisgKiB0aGUgNCBpbnRlcmxlYXZlZCB0YWJsZXMgY29ycmVzcG9uZCB0byBmb3VyIDctYml0IHN1YnNldHMgb2YgQ19pIG9yIERfaS4KKyAqCisgKiBBZnRlciBQQzEgZWFjaCBvZiB0aGUgdmFyaWFibGVzIGEsYixjLGQgY29udGFpbnMgYSA3IGJpdCBzdWJzZXQgb2YgQ19pCisgKiBvciBEX2kgaW4gYml0cyA3LTEgKGJpdCAwIGJlaW5nIHRoZSBsZWFzdCBzaWduaWZpY2FudCkuCisgKi8KKworI2RlZmluZSBUMSh4KSBwdFsyICogKHgpICsgMF0KKyNkZWZpbmUgVDIoeCkgcHRbMiAqICh4KSArIDFdCisjZGVmaW5lIFQzKHgpIHB0WzIgKiAoeCkgKyAyXQorI2RlZmluZSBUNCh4KSBwdFsyICogKHgpICsgM10KKworI2RlZmluZSBQQzIoYSwgYiwgYywgZCkgKFQ0KGQpIHwgVDMoYykgfCBUMihiKSB8IFQxKGEpKQorCisvKgorICogRW5jcnlwdGlvbiBrZXkgZXhwYW5zaW9uCisgKgorICogUkZDMjQ1MTogV2VhayBrZXkgY2hlY2tzIFNIT1VMRCBiZSBwZXJmb3JtZWQuCisgKgorICogRklQUyA3NDoKKyAqCisgKiAgIEtleXMgaGF2aW5nIGR1YWxzIGFyZSBrZXlzIHdoaWNoIHByb2R1Y2UgYWxsIHplcm9zLCBhbGwgb25lcywgb3IKKyAqICAgYWx0ZXJuYXRpbmcgemVyby1vbmUgcGF0dGVybnMgaW4gdGhlIEMgYW5kIEQgcmVnaXN0ZXJzIGFmdGVyIFBlcm11dGVkCisgKiAgIENob2ljZSAxIGhhcyBvcGVyYXRlZCBvbiB0aGUga2V5LgorICoKKyAqLworc3RhdGljIHVuc2lnbmVkIGxvbmcgZWtleSh1MzIgKnBlLCBjb25zdCB1OCAqaykKIHsKLQl1MzIgeCwgeSwgejsKLQkKLQl4ICA9IHNyY1s3XTsKLQl4IDw8PSA4OwotCXggfD0gc3JjWzZdOwotCXggPDw9IDg7Ci0JeCB8PSBzcmNbNV07Ci0JeCA8PD0gODsKLQl4IHw9IHNyY1s0XTsKLQl5ICA9IHNyY1szXTsKLQl5IDw8PSA4OwotCXkgfD0gc3JjWzJdOwotCXkgPDw9IDg7Ci0JeSB8PSBzcmNbMV07Ci0JeSA8PD0gODsKLQl5IHw9IHNyY1swXTsKLQl6ICA9ICgoeCA+PiAwMDQpIF4geSkgJiAweDBGMEYwRjBGTDsKLQl4IF49IHogPDwgMDA0OwotCXkgXj0gejsKLQl6ICA9ICgoeSA+PiAwMjApIF4geCkgJiAweDAwMDBGRkZGTDsKLQl5IF49IHogPDwgMDIwOwotCXggXj0gejsKLQl6ICA9ICgoeCA+PiAwMDIpIF4geSkgJiAweDMzMzMzMzMzTDsKLQl4IF49IHogPDwgMDAyOwotCXkgXj0gejsKLQl6ICA9ICgoeSA+PiAwMTApIF4geCkgJiAweDAwRkYwMEZGTDsKLQl5IF49IHogPDwgMDEwOwotCXggXj0gejsKLQl4ICA9IHggPj4gMSB8IHggPDwgMzE7Ci0JeiAgPSAoeCBeIHkpICYgMHg1NTU1NTU1NUw7Ci0JeSBePSB6OwotCXggXj0gejsKLQl5ICA9IHkgPj4gMSB8IHkgPDwgMzE7Ci0JeiAgPSBleHBrZXlbMF07Ci0JeiBePSB5OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMV07Ci0JeiBePSB5OwotCXogID0geiA8PCA0IHwgeiA+PiAyODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgNDQ4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDM4NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzMjApICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMjU2KSArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzJdOwotCXogXj0geDsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzNdOwotCXogXj0geDsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVs0XTsKLQl6IF49IHk7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDE5MikgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxMjgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgNjQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIGRlc19rZXltYXAgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVs1XTsKLQl6IF49IHk7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbNl07Ci0JeiBePSB4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbN107Ci0JeiBePSB4OwotCXogID0geiA8PCA0IHwgeiA+PiAyODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgNDQ4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDM4NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzMjApICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMjU2KSArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzhdOwotCXogXj0geTsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzldOwotCXogXj0geTsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsxMF07Ci0JeiBePSB4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMTFdOwotCXogXj0geDsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsxMl07Ci0JeiBePSB5OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMTNdOwotCXogXj0geTsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsxNF07Ci0JeiBePSB4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMTVdOwotCXogXj0geDsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsxNl07Ci0JeiBePSB5OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMTddOwotCXogXj0geTsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsxOF07Ci0JeiBePSB4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMTldOwotCXogXj0geDsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsyMF07Ci0JeiBePSB5OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMjFdOwotCXogXj0geTsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsyMl07Ci0JeiBePSB4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMjNdOwotCXogXj0geDsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsyNF07Ci0JeiBePSB5OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMjVdOwotCXogXj0geTsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsyNl07Ci0JeiBePSB4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMjddOwotCXogXj0geDsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsyOF07Ci0JeiBePSB5OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMjldOwotCXogXj0geTsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVszMF07Ci0JeiBePSB4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMzFdOwotCXogXj0geDsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl4ICA9IHggPDwgMSB8IHggPj4gMzE7Ci0JeiAgPSAoeCBeIHkpICYgMHg1NTU1NTU1NUw7Ci0JeSBePSB6OwotCXggXj0gejsKLQl5ICA9IHkgPDwgMSB8IHkgPj4gMzE7Ci0JeiAgPSAoKHggPj4gMDEwKSBeIHkpICYgMHgwMEZGMDBGRkw7Ci0JeCBePSB6IDw8IDAxMDsKLQl5IF49IHo7Ci0JeiAgPSAoKHkgPj4gMDAyKSBeIHgpICYgMHgzMzMzMzMzM0w7Ci0JeSBePSB6IDw8IDAwMjsKLQl4IF49IHo7Ci0JeiAgPSAoKHggPj4gMDIwKSBeIHkpICYgMHgwMDAwRkZGRkw7Ci0JeCBePSB6IDw8IDAyMDsKLQl5IF49IHo7Ci0JeiAgPSAoKHkgPj4gMDA0KSBeIHgpICYgMHgwRjBGMEYwRkw7Ci0JeSBePSB6IDw8IDAwNDsKLQl4IF49IHo7Ci0JZHN0WzBdID0geDsKLQl4ID4+PSA4OwotCWRzdFsxXSA9IHg7Ci0JeCA+Pj0gODsKLQlkc3RbMl0gPSB4OwotCXggPj49IDg7Ci0JZHN0WzNdID0geDsKLQlkc3RbNF0gPSB5OwotCXkgPj49IDg7Ci0JZHN0WzVdID0geTsKLQl5ID4+PSA4OwotCWRzdFs2XSA9IHk7Ci0JeSA+Pj0gODsKLQlkc3RbN10gPSB5OwotfQorCS8qIEsmUjogbG9uZyBpcyBhdCBsZWFzdCAzMiBiaXRzICovCisJdW5zaWduZWQgbG9uZyBhLCBiLCBjLCBkLCB3OworCWNvbnN0IHUzMiAqcHQgPSBwYzI7CiAKLXN0YXRpYyB2b2lkIGRlc19zbWFsbF9maXBzX2RlY3J5cHQodTMyICpleHBrZXksIHU4ICpkc3QsIGNvbnN0IHU4ICpzcmMpCi17Ci0JdTMyIHgsIHksIHo7Ci0JCi0JeCAgPSBzcmNbN107Ci0JeCA8PD0gODsKLQl4IHw9IHNyY1s2XTsKLQl4IDw8PSA4OwotCXggfD0gc3JjWzVdOwotCXggPDw9IDg7Ci0JeCB8PSBzcmNbNF07Ci0JeSAgPSBzcmNbM107Ci0JeSA8PD0gODsKLQl5IHw9IHNyY1syXTsKLQl5IDw8PSA4OwotCXkgfD0gc3JjWzFdOwotCXkgPDw9IDg7Ci0JeSB8PSBzcmNbMF07Ci0JeiAgPSAoKHggPj4gMDA0KSBeIHkpICYgMHgwRjBGMEYwRkw7Ci0JeCBePSB6IDw8IDAwNDsKLQl5IF49IHo7Ci0JeiAgPSAoKHkgPj4gMDIwKSBeIHgpICYgMHgwMDAwRkZGRkw7Ci0JeSBePSB6IDw8IDAyMDsKLQl4IF49IHo7Ci0JeiAgPSAoKHggPj4gMDAyKSBeIHkpICYgMHgzMzMzMzMzM0w7Ci0JeCBePSB6IDw8IDAwMjsKLQl5IF49IHo7Ci0JeiAgPSAoKHkgPj4gMDEwKSBeIHgpICYgMHgwMEZGMDBGRkw7Ci0JeSBePSB6IDw8IDAxMDsKLQl4IF49IHo7Ci0JeCAgPSB4ID4+IDEgfCB4IDw8IDMxOwotCXogID0gKHggXiB5KSAmIDB4NTU1NTU1NTVMOwotCXkgXj0gejsKLQl4IF49IHo7Ci0JeSAgPSB5ID4+IDEgfCB5IDw8IDMxOwotCXogID0gZXhwa2V5WzMxXTsKLQl6IF49IHk7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMzBdOwotCXogXj0geTsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzI5XTsKLQl6IF49IHg7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMjhdOwotCXogXj0geDsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzI3XTsKLQl6IF49IHk7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMjZdOwotCXogXj0geTsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzI1XTsKLQl6IF49IHg7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMjRdOwotCXogXj0geDsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzIzXTsKLQl6IF49IHk7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMjJdOwotCXogXj0geTsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzIxXTsKLQl6IF49IHg7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMjBdOwotCXogXj0geDsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzE5XTsKLQl6IF49IHk7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMThdOwotCXogXj0geTsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzE3XTsKLQl6IF49IHg7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMTZdOwotCXogXj0geDsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzE1XTsKLQl6IF49IHk7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMTRdOwotCXogXj0geTsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzEzXTsKLQl6IF49IHg7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMTJdOwotCXogXj0geDsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzExXTsKLQl6IF49IHk7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMTBdOwotCXogXj0geTsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzldOwotCXogXj0geDsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVs4XTsKLQl6IF49IHg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDE5MikgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxMjgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgNjQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIGRlc19rZXltYXAgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVs3XTsKLQl6IF49IHk7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbNl07Ci0JeiBePSB5OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbNV07Ci0JeiBePSB4OwotCXogID0geiA8PCA0IHwgeiA+PiAyODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgNDQ4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDM4NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzMjApICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMjU2KSArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzRdOwotCXogXj0geDsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTkyKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDEyOCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA2NCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgZGVzX2tleW1hcCArICgweEZDICYgeikpOwotCXogID0gZXhwa2V5WzNdOwotCXogXj0geTsKLQl6ICA9IHogPDwgNCB8IHogPj4gMjg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDQ0OCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAzODQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzIwKSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDI1NikgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsyXTsKLQl6IF49IHk7Ci0JeCBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDE5MikgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXggXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxMjgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgNjQpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl4IF49ICogKHUzMiAqKSAoKHU4ICopIGRlc19rZXltYXAgKyAoMHhGQyAmIHopKTsKLQl6ICA9IGV4cGtleVsxXTsKLQl6IF49IHg7Ci0JeiAgPSB6IDw8IDQgfCB6ID4+IDI4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyA0NDgpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMzg0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDMyMCkgKyAoMHhGQyAmIHopKTsKLQl6ID4+PSA4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAyNTYpICsgKDB4RkMgJiB6KSk7Ci0JeiAgPSBleHBrZXlbMF07Ci0JeiBePSB4OwotCXkgXj0gKiAodTMyICopICgodTggKikgKGRlc19rZXltYXAgKyAxOTIpICsgKDB4RkMgJiB6KSk7Ci0JeiA+Pj0gODsKLQl5IF49ICogKHUzMiAqKSAoKHU4ICopIChkZXNfa2V5bWFwICsgMTI4KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSAoZGVzX2tleW1hcCArIDY0KSArICgweEZDICYgeikpOwotCXogPj49IDg7Ci0JeSBePSAqICh1MzIgKikgKCh1OCAqKSBkZXNfa2V5bWFwICsgKDB4RkMgJiB6KSk7Ci0JeCAgPSB4IDw8IDEgfCB4ID4+IDMxOwotCXogID0gKHggXiB5KSAmIDB4NTU1NTU1NTVMOwotCXkgXj0gejsKLQl4IF49IHo7Ci0JeSAgPSB5IDw8IDEgfCB5ID4+IDMxOwotCXogID0gKCh4ID4+IDAxMCkgXiB5KSAmIDB4MDBGRjAwRkZMOwotCXggXj0geiA8PCAwMTA7Ci0JeSBePSB6OwotCXogID0gKCh5ID4+IDAwMikgXiB4KSAmIDB4MzMzMzMzMzNMOwotCXkgXj0geiA8PCAwMDI7Ci0JeCBePSB6OwotCXogID0gKCh4ID4+IDAyMCkgXiB5KSAmIDB4MDAwMEZGRkZMOwotCXggXj0geiA8PCAwMjA7Ci0JeSBePSB6OwotCXogID0gKCh5ID4+IDAwNCkgXiB4KSAmIDB4MEYwRjBGMEZMOwotCXkgXj0geiA8PCAwMDQ7Ci0JeCBePSB6OwotCWRzdFswXSA9IHg7Ci0JeCA+Pj0gODsKLQlkc3RbMV0gPSB4OwotCXggPj49IDg7Ci0JZHN0WzJdID0geDsKLQl4ID4+PSA4OwotCWRzdFszXSA9IHg7Ci0JZHN0WzRdID0geTsKLQl5ID4+PSA4OwotCWRzdFs1XSA9IHk7Ci0JeSA+Pj0gODsKLQlkc3RbNl0gPSB5OwotCXkgPj49IDg7Ci0JZHN0WzddID0geTsKKwlkID0ga1s0XTsgZCAmPSAweDBlOyBkIDw8PSA0OyBkIHw9IGtbMF0gJiAweDFlOyBkID0gcGMxW2RdOworCWMgPSBrWzVdOyBjICY9IDB4MGU7IGMgPDw9IDQ7IGMgfD0ga1sxXSAmIDB4MWU7IGMgPSBwYzFbY107CisJYiA9IGtbNl07IGIgJj0gMHgwZTsgYiA8PD0gNDsgYiB8PSBrWzJdICYgMHgxZTsgYiA9IHBjMVtiXTsKKwlhID0ga1s3XTsgYSAmPSAweDBlOyBhIDw8PSA0OyBhIHw9IGtbM10gJiAweDFlOyBhID0gcGMxW2FdOworCisJcGVbMTUgKiAyICsgMF0gPSBQQzIoYSwgYiwgYywgZCk7IGQgPSByc1tkXTsKKwlwZVsxNCAqIDIgKyAwXSA9IFBDMihkLCBhLCBiLCBjKTsgYyA9IHJzW2NdOyBiID0gcnNbYl07CisJcGVbMTMgKiAyICsgMF0gPSBQQzIoYiwgYywgZCwgYSk7IGEgPSByc1thXTsgZCA9IHJzW2RdOworCXBlWzEyICogMiArIDBdID0gUEMyKGQsIGEsIGIsIGMpOyBjID0gcnNbY107IGIgPSByc1tiXTsKKwlwZVsxMSAqIDIgKyAwXSA9IFBDMihiLCBjLCBkLCBhKTsgYSA9IHJzW2FdOyBkID0gcnNbZF07CisJcGVbMTAgKiAyICsgMF0gPSBQQzIoZCwgYSwgYiwgYyk7IGMgPSByc1tjXTsgYiA9IHJzW2JdOworCXBlWyA5ICogMiArIDBdID0gUEMyKGIsIGMsIGQsIGEpOyBhID0gcnNbYV07IGQgPSByc1tkXTsKKwlwZVsgOCAqIDIgKyAwXSA9IFBDMihkLCBhLCBiLCBjKTsgYyA9IHJzW2NdOworCXBlWyA3ICogMiArIDBdID0gUEMyKGMsIGQsIGEsIGIpOyBiID0gcnNbYl07IGEgPSByc1thXTsKKwlwZVsgNiAqIDIgKyAwXSA9IFBDMihhLCBiLCBjLCBkKTsgZCA9IHJzW2RdOyBjID0gcnNbY107CisJcGVbIDUgKiAyICsgMF0gPSBQQzIoYywgZCwgYSwgYik7IGIgPSByc1tiXTsgYSA9IHJzW2FdOworCXBlWyA0ICogMiArIDBdID0gUEMyKGEsIGIsIGMsIGQpOyBkID0gcnNbZF07IGMgPSByc1tjXTsKKwlwZVsgMyAqIDIgKyAwXSA9IFBDMihjLCBkLCBhLCBiKTsgYiA9IHJzW2JdOyBhID0gcnNbYV07CisJcGVbIDIgKiAyICsgMF0gPSBQQzIoYSwgYiwgYywgZCk7IGQgPSByc1tkXTsgYyA9IHJzW2NdOworCXBlWyAxICogMiArIDBdID0gUEMyKGMsIGQsIGEsIGIpOyBiID0gcnNbYl07CisJcGVbIDAgKiAyICsgMF0gPSBQQzIoYiwgYywgZCwgYSk7CisKKwkvKiBDaGVjayBpZiBmaXJzdCBoYWxmIGlzIHdlYWsgKi8KKwl3ICA9IChhIF4gYykgfCAoYiBeIGQpIHwgKHJzW2FdIF4gYykgfCAoYiBeIHJzW2RdKTsKKworCS8qIFNraXAgdG8gbmV4dCB0YWJsZSBzZXQgKi8KKwlwdCArPSA1MTI7CisKKwlkID0ga1swXTsgZCAmPSAweGUwOyBkID4+PSA0OyBkIHw9IGtbNF0gJiAweGYwOyBkID0gcGMxW2QgKyAxXTsKKwljID0ga1sxXTsgYyAmPSAweGUwOyBjID4+PSA0OyBjIHw9IGtbNV0gJiAweGYwOyBjID0gcGMxW2MgKyAxXTsKKwliID0ga1syXTsgYiAmPSAweGUwOyBiID4+PSA0OyBiIHw9IGtbNl0gJiAweGYwOyBiID0gcGMxW2IgKyAxXTsKKwlhID0ga1szXTsgYSAmPSAweGUwOyBhID4+PSA0OyBhIHw9IGtbN10gJiAweGYwOyBhID0gcGMxW2EgKyAxXTsKKworCS8qIENoZWNrIGlmIHNlY29uZCBoYWxmIGlzIHdlYWsgKi8KKwl3IHw9IChhIF4gYykgfCAoYiBeIGQpIHwgKHJzW2FdIF4gYykgfCAoYiBeIHJzW2RdKTsKKworCXBlWzE1ICogMiArIDFdID0gUEMyKGEsIGIsIGMsIGQpOyBkID0gcnNbZF07CisJcGVbMTQgKiAyICsgMV0gPSBQQzIoZCwgYSwgYiwgYyk7IGMgPSByc1tjXTsgYiA9IHJzW2JdOworCXBlWzEzICogMiArIDFdID0gUEMyKGIsIGMsIGQsIGEpOyBhID0gcnNbYV07IGQgPSByc1tkXTsKKwlwZVsxMiAqIDIgKyAxXSA9IFBDMihkLCBhLCBiLCBjKTsgYyA9IHJzW2NdOyBiID0gcnNbYl07CisJcGVbMTEgKiAyICsgMV0gPSBQQzIoYiwgYywgZCwgYSk7IGEgPSByc1thXTsgZCA9IHJzW2RdOworCXBlWzEwICogMiArIDFdID0gUEMyKGQsIGEsIGIsIGMpOyBjID0gcnNbY107IGIgPSByc1tiXTsKKwlwZVsgOSAqIDIgKyAxXSA9IFBDMihiLCBjLCBkLCBhKTsgYSA9IHJzW2FdOyBkID0gcnNbZF07CisJcGVbIDggKiAyICsgMV0gPSBQQzIoZCwgYSwgYiwgYyk7IGMgPSByc1tjXTsKKwlwZVsgNyAqIDIgKyAxXSA9IFBDMihjLCBkLCBhLCBiKTsgYiA9IHJzW2JdOyBhID0gcnNbYV07CisJcGVbIDYgKiAyICsgMV0gPSBQQzIoYSwgYiwgYywgZCk7IGQgPSByc1tkXTsgYyA9IHJzW2NdOworCXBlWyA1ICogMiArIDFdID0gUEMyKGMsIGQsIGEsIGIpOyBiID0gcnNbYl07IGEgPSByc1thXTsKKwlwZVsgNCAqIDIgKyAxXSA9IFBDMihhLCBiLCBjLCBkKTsgZCA9IHJzW2RdOyBjID0gcnNbY107CisJcGVbIDMgKiAyICsgMV0gPSBQQzIoYywgZCwgYSwgYik7IGIgPSByc1tiXTsgYSA9IHJzW2FdOworCXBlWyAyICogMiArIDFdID0gUEMyKGEsIGIsIGMsIGQpOyBkID0gcnNbZF07IGMgPSByc1tjXTsKKwlwZVsgMSAqIDIgKyAxXSA9IFBDMihjLCBkLCBhLCBiKTsgYiA9IHJzW2JdOworCXBlWyAwICogMiArIDFdID0gUEMyKGIsIGMsIGQsIGEpOworCisJLyogRml4dXA6IDI0MTMgNTc2OCAtPiAxMzU3IDI0NjggKi8KKwlmb3IgKGQgPSAwOyBkIDwgMTY7ICsrZCkgeworCQlhID0gcGVbMiAqIGRdOworCQliID0gcGVbMiAqIGQgKyAxXTsKKwkJYyA9IGEgXiBiOworCQljICY9IDB4ZmZmZjAwMDA7CisJCWEgXj0gYzsKKwkJYiBePSBjOworCQlST0woYiwgMTgpOworCQlwZVsyICogZF0gPSBhOworCQlwZVsyICogZCArIDFdID0gYjsKKwl9CisKKwkvKiBaZXJvIGlmIHdlYWsga2V5ICovCisJcmV0dXJuIHc7CiB9CiAKIC8qCi0gKiBSRkMyNDUxOiBXZWFrIGtleSBjaGVja3MgU0hPVUxEIGJlIHBlcmZvcm1lZC4KKyAqIERlY3J5cHRpb24ga2V5IGV4cGFuc2lvbgorICoKKyAqIE5vIHdlYWsga2V5IGNoZWNraW5nIGlzIHBlcmZvcm1lZCwgYXMgdGhpcyBpcyBvbmx5IHVzZWQgYnkgdHJpcGxlIERFUworICoKICAqLwotc3RhdGljIGludCBzZXRrZXkodTMyICpleHBrZXksIGNvbnN0IHU4ICprZXksIHVuc2lnbmVkIGludCBrZXlsZW4sIHUzMiAqZmxhZ3MpCitzdGF0aWMgdm9pZCBka2V5KHUzMiAqcGUsIGNvbnN0IHU4ICprKQogewotCWNvbnN0IHU4ICprOwotCXU4ICpiMCwgKmIxOwotCXUzMiBuLCB3OwotCXU4IGJpdHMwWzU2XSwgYml0czFbNTZdOworCS8qIEsmUjogbG9uZyBpcyBhdCBsZWFzdCAzMiBiaXRzICovCisJdW5zaWduZWQgbG9uZyBhLCBiLCBjLCBkOworCWNvbnN0IHUzMiAqcHQgPSBwYzI7CiAKLQluICA9IHBhcml0eVtrZXlbMF1dOyBuIDw8PSA0OwotCW4gfD0gcGFyaXR5W2tleVsxXV07IG4gPDw9IDQ7Ci0JbiB8PSBwYXJpdHlba2V5WzJdXTsgbiA8PD0gNDsKLQluIHw9IHBhcml0eVtrZXlbM11dOyBuIDw8PSA0OwotCW4gfD0gcGFyaXR5W2tleVs0XV07IG4gPDw9IDQ7Ci0JbiB8PSBwYXJpdHlba2V5WzVdXTsgbiA8PD0gNDsKLQluIHw9IHBhcml0eVtrZXlbNl1dOyBuIDw8PSA0OwotCW4gfD0gcGFyaXR5W2tleVs3XV07Ci0JdyA9IDB4ODg4ODg4ODhMOwotCQotCWlmICgoKmZsYWdzICYgQ1JZUFRPX1RGTV9SRVFfV0VBS19LRVkpCi0JICAgICYmICEoKG4gLSAodyA+PiAzKSkgJiB3KSkgeyAgLyogMSBpbiAxMF4xMCBrZXlzIHBhc3NlcyB0aGlzIHRlc3QgKi8KLQkJaWYgKG4gPCAweDQxNDE1MTUxKSB7Ci0JCQlpZiAobiA8IDB4MzEzMTIxMjEpIHsKLQkJCQlpZiAobiA8IDB4MTQxNDE1MTUpIHsKLQkJCQkJLyogMDEgMDEgMDEgMDEgMDEgMDEgMDEgMDEgKi8KLQkJCQkJaWYgKG4gPT0gMHgxMTExMTExMSkgZ290byB3ZWFrOwotCQkJCQkvKiAwMSAxRiAwMSAxRiAwMSAwRSAwMSAwRSAqLwotCQkJCQlpZiAobiA9PSAweDEzMTMxMjEyKSBnb3RvIHdlYWs7Ci0JCQkJfSBlbHNlIHsKLQkJCQkJLyogMDEgRTAgMDEgRTAgMDEgRjEgMDEgRjEgKi8KLQkJCQkJaWYgKG4gPT0gMHgxNDE0MTUxNSkgZ290byB3ZWFrOwotCQkJCQkvKiAwMSBGRSAwMSBGRSAwMSBGRSAwMSBGRSAqLwotCQkJCQlpZiAobiA9PSAweDE2MTYxNjE2KSBnb3RvIHdlYWs7Ci0JCQkJfQotCQkJfSBlbHNlIHsKLQkJCQlpZiAobiA8IDB4MzQzNDI1MjUpIHsKLQkJCQkJLyogMUYgMDEgMUYgMDEgMEUgMDEgMEUgMDEgKi8KLQkJCQkJaWYgKG4gPT0gMHgzMTMxMjEyMSkgZ290byB3ZWFrOwotCQkJCQkvKiAxRiAxRiAxRiAxRiAwRSAwRSAwRSAwRSAoPykgKi8KLQkJCQkJaWYgKG4gPT0gMHgzMzMzMjIyMikgZ290byB3ZWFrOwotCQkJCX0gZWxzZSB7Ci0JCQkJCS8qIDFGIEUwIDFGIEUwIDBFIEYxIDBFIEYxICovCi0JCQkJCWlmIChuID09IDB4MzQzNDI1MjUpIGdvdG8gd2VhazsKLQkJCQkJLyogMUYgRkUgMUYgRkUgMEUgRkUgMEUgRkUgKi8KLQkJCQkJaWYgKG4gPT0gMHgzNjM2MjYyNikgZ290byB3ZWFrOwotCQkJCX0KLQkJCX0KLQkJfSBlbHNlIHsKLQkJCWlmIChuIDwgMHg2MTYxNjE2MSkgewotCQkJCWlmIChuIDwgMHg0NDQ0NTU1NSkgewotCQkJCQkvKiBFMCAwMSBFMCAwMSBGMSAwMSBGMSAwMSAqLwotCQkJCQlpZiAobiA9PSAweDQxNDE1MTUxKSBnb3RvIHdlYWs7Ci0JCQkJCS8qIEUwIDFGIEUwIDFGIEYxIDBFIEYxIDBFICovCi0JCQkJCWlmIChuID09IDB4NDM0MzUyNTIpIGdvdG8gd2VhazsKLQkJCQl9IGVsc2UgewotCQkJCQkvKiBFMCBFMCBFMCBFMCBGMSBGMSBGMSBGMSAoPykgKi8KLQkJCQkJaWYgKG4gPT0gMHg0NDQ0NTU1NSkgZ290byB3ZWFrOwotCQkJCQkvKiBFMCBGRSBFMCBGRSBGMSBGRSBGMSBGRSAqLwotCQkJCQlpZiAobiA9PSAweDQ2NDY1NjU2KSBnb3RvIHdlYWs7Ci0JCQkJfQotCQkJfSBlbHNlIHsKLQkJCQlpZiAobiA8IDB4NjQ2NDY1NjUpIHsKLQkJCQkJLyogRkUgMDEgRkUgMDEgRkUgMDEgRkUgMDEgKi8KLQkJCQkJaWYgKG4gPT0gMHg2MTYxNjE2MSkgZ290byB3ZWFrOwotCQkJCQkvKiBGRSAxRiBGRSAxRiBGRSAwRSBGRSAwRSAqLwotCQkJCQlpZiAobiA9PSAweDYzNjM2MjYyKSBnb3RvIHdlYWs7Ci0JCQkJfSBlbHNlIHsKLQkJCQkJLyogRkUgRTAgRkUgRTAgRkUgRjEgRkUgRjEgKi8KLQkJCQkJaWYgKG4gPT0gMHg2NDY0NjU2NSkgZ290byB3ZWFrOwotCQkJCQkvKiBGRSBGRSBGRSBGRSBGRSBGRSBGRSBGRSAqLwotCQkJCQlpZiAobiA9PSAweDY2NjY2NjY2KSBnb3RvIHdlYWs7Ci0JCQkJfQotCQkJfQotCQl9Ci0JCi0JCWdvdG8gbm90X3dlYWs7Ci13ZWFrOgotCQkqZmxhZ3MgfD0gQ1JZUFRPX1RGTV9SRVNfV0VBS19LRVk7Ci0JCXJldHVybiAtRUlOVkFMOworCWQgPSBrWzRdOyBkICY9IDB4MGU7IGQgPDw9IDQ7IGQgfD0ga1swXSAmIDB4MWU7IGQgPSBwYzFbZF07CisJYyA9IGtbNV07IGMgJj0gMHgwZTsgYyA8PD0gNDsgYyB8PSBrWzFdICYgMHgxZTsgYyA9IHBjMVtjXTsKKwliID0ga1s2XTsgYiAmPSAweDBlOyBiIDw8PSA0OyBiIHw9IGtbMl0gJiAweDFlOyBiID0gcGMxW2JdOworCWEgPSBrWzddOyBhICY9IDB4MGU7IGEgPDw9IDQ7IGEgfD0ga1szXSAmIDB4MWU7IGEgPSBwYzFbYV07CisKKwlwZVsgMCAqIDJdID0gUEMyKGEsIGIsIGMsIGQpOyBkID0gcnNbZF07CisJcGVbIDEgKiAyXSA9IFBDMihkLCBhLCBiLCBjKTsgYyA9IHJzW2NdOyBiID0gcnNbYl07CisJcGVbIDIgKiAyXSA9IFBDMihiLCBjLCBkLCBhKTsgYSA9IHJzW2FdOyBkID0gcnNbZF07CisJcGVbIDMgKiAyXSA9IFBDMihkLCBhLCBiLCBjKTsgYyA9IHJzW2NdOyBiID0gcnNbYl07CisJcGVbIDQgKiAyXSA9IFBDMihiLCBjLCBkLCBhKTsgYSA9IHJzW2FdOyBkID0gcnNbZF07CisJcGVbIDUgKiAyXSA9IFBDMihkLCBhLCBiLCBjKTsgYyA9IHJzW2NdOyBiID0gcnNbYl07CisJcGVbIDYgKiAyXSA9IFBDMihiLCBjLCBkLCBhKTsgYSA9IHJzW2FdOyBkID0gcnNbZF07CisJcGVbIDcgKiAyXSA9IFBDMihkLCBhLCBiLCBjKTsgYyA9IHJzW2NdOworCXBlWyA4ICogMl0gPSBQQzIoYywgZCwgYSwgYik7IGIgPSByc1tiXTsgYSA9IHJzW2FdOworCXBlWyA5ICogMl0gPSBQQzIoYSwgYiwgYywgZCk7IGQgPSByc1tkXTsgYyA9IHJzW2NdOworCXBlWzEwICogMl0gPSBQQzIoYywgZCwgYSwgYik7IGIgPSByc1tiXTsgYSA9IHJzW2FdOworCXBlWzExICogMl0gPSBQQzIoYSwgYiwgYywgZCk7IGQgPSByc1tkXTsgYyA9IHJzW2NdOworCXBlWzEyICogMl0gPSBQQzIoYywgZCwgYSwgYik7IGIgPSByc1tiXTsgYSA9IHJzW2FdOworCXBlWzEzICogMl0gPSBQQzIoYSwgYiwgYywgZCk7IGQgPSByc1tkXTsgYyA9IHJzW2NdOworCXBlWzE0ICogMl0gPSBQQzIoYywgZCwgYSwgYik7IGIgPSByc1tiXTsKKwlwZVsxNSAqIDJdID0gUEMyKGIsIGMsIGQsIGEpOworCisJLyogU2tpcCB0byBuZXh0IHRhYmxlIHNldCAqLworCXB0ICs9IDUxMjsKKworCWQgPSBrWzBdOyBkICY9IDB4ZTA7IGQgPj49IDQ7IGQgfD0ga1s0XSAmIDB4ZjA7IGQgPSBwYzFbZCArIDFdOworCWMgPSBrWzFdOyBjICY9IDB4ZTA7IGMgPj49IDQ7IGMgfD0ga1s1XSAmIDB4ZjA7IGMgPSBwYzFbYyArIDFdOworCWIgPSBrWzJdOyBiICY9IDB4ZTA7IGIgPj49IDQ7IGIgfD0ga1s2XSAmIDB4ZjA7IGIgPSBwYzFbYiArIDFdOworCWEgPSBrWzNdOyBhICY9IDB4ZTA7IGEgPj49IDQ7IGEgfD0ga1s3XSAmIDB4ZjA7IGEgPSBwYzFbYSArIDFdOworCisJcGVbIDAgKiAyICsgMV0gPSBQQzIoYSwgYiwgYywgZCk7IGQgPSByc1tkXTsKKwlwZVsgMSAqIDIgKyAxXSA9IFBDMihkLCBhLCBiLCBjKTsgYyA9IHJzW2NdOyBiID0gcnNbYl07CisJcGVbIDIgKiAyICsgMV0gPSBQQzIoYiwgYywgZCwgYSk7IGEgPSByc1thXTsgZCA9IHJzW2RdOworCXBlWyAzICogMiArIDFdID0gUEMyKGQsIGEsIGIsIGMpOyBjID0gcnNbY107IGIgPSByc1tiXTsKKwlwZVsgNCAqIDIgKyAxXSA9IFBDMihiLCBjLCBkLCBhKTsgYSA9IHJzW2FdOyBkID0gcnNbZF07CisJcGVbIDUgKiAyICsgMV0gPSBQQzIoZCwgYSwgYiwgYyk7IGMgPSByc1tjXTsgYiA9IHJzW2JdOworCXBlWyA2ICogMiArIDFdID0gUEMyKGIsIGMsIGQsIGEpOyBhID0gcnNbYV07IGQgPSByc1tkXTsKKwlwZVsgNyAqIDIgKyAxXSA9IFBDMihkLCBhLCBiLCBjKTsgYyA9IHJzW2NdOworCXBlWyA4ICogMiArIDFdID0gUEMyKGMsIGQsIGEsIGIpOyBiID0gcnNbYl07IGEgPSByc1thXTsKKwlwZVsgOSAqIDIgKyAxXSA9IFBDMihhLCBiLCBjLCBkKTsgZCA9IHJzW2RdOyBjID0gcnNbY107CisJcGVbMTAgKiAyICsgMV0gPSBQQzIoYywgZCwgYSwgYik7IGIgPSByc1tiXTsgYSA9IHJzW2FdOworCXBlWzExICogMiArIDFdID0gUEMyKGEsIGIsIGMsIGQpOyBkID0gcnNbZF07IGMgPSByc1tjXTsKKwlwZVsxMiAqIDIgKyAxXSA9IFBDMihjLCBkLCBhLCBiKTsgYiA9IHJzW2JdOyBhID0gcnNbYV07CisJcGVbMTMgKiAyICsgMV0gPSBQQzIoYSwgYiwgYywgZCk7IGQgPSByc1tkXTsgYyA9IHJzW2NdOworCXBlWzE0ICogMiArIDFdID0gUEMyKGMsIGQsIGEsIGIpOyBiID0gcnNbYl07CisJcGVbMTUgKiAyICsgMV0gPSBQQzIoYiwgYywgZCwgYSk7CisKKwkvKiBGaXh1cDogMjQxMyA1NzY4IC0+IDEzNTcgMjQ2OCAqLworCWZvciAoZCA9IDA7IGQgPCAxNjsgKytkKSB7CisJCWEgPSBwZVsyICogZF07CisJCWIgPSBwZVsyICogZCArIDFdOworCQljID0gYSBeIGI7CisJCWMgJj0gMHhmZmZmMDAwMDsKKwkJYSBePSBjOworCQliIF49IGM7CisJCVJPTChiLCAxOCk7CisJCXBlWzIgKiBkXSA9IGE7CisJCXBlWzIgKiBkICsgMV0gPSBiOwogCX0KLQotbm90X3dlYWs6Ci0KLQkvKiBleHBsb2RlIHRoZSBiaXRzICovCi0JbiA9IDU2OwotCWIwID0gYml0czA7Ci0JYjEgPSBiaXRzMTsKLQkKLQlkbyB7Ci0JCXcgPSAoMjU2IHwgKmtleSsrKSA8PCAyOwotCQlkbyB7Ci0JCQktLW47Ci0JCQliMVtuXSA9IDggJiB3OwotCQkJdyA+Pj0gMTsKLQkJCWIwW25dID0gNCAmIHc7Ci0JCX0gd2hpbGUgKCB3ID49IDE2ICk7Ci0JfSB3aGlsZSAoIG4gKTsKLQkKLQkvKiBwdXQgdGhlIGJpdHMgaW4gdGhlIGNvcnJlY3QgcGxhY2VzICovCi0JbiA9IDE2OwotCWsgPSByb3RvcnM7Ci0JCi0JZG8gewotCQl3ICAgPSAoYjFba1sgMCAgIF1dIHwgYjBba1sgMSAgIF1dKSA8PCA0OwotCQl3ICB8PSAoYjFba1sgMiAgIF1dIHwgYjBba1sgMyAgIF1dKSA8PCAyOwotCQl3ICB8PSAgYjFba1sgNCAgIF1dIHwgYjBba1sgNSAgIF1dOwotCQl3IDw8PSA4OwotCQl3ICB8PSAoYjFba1sgNiAgIF1dIHwgYjBba1sgNyAgIF1dKSA8PCA0OwotCQl3ICB8PSAoYjFba1sgOCAgIF1dIHwgYjBba1sgOSAgIF1dKSA8PCAyOwotCQl3ICB8PSAgYjFba1sxMCAgIF1dIHwgYjBba1sxMSAgIF1dOwotCQl3IDw8PSA4OwotCQl3ICB8PSAoYjFba1sxMiAgIF1dIHwgYjBba1sxMyAgIF1dKSA8PCA0OwotCQl3ICB8PSAoYjFba1sxNCAgIF1dIHwgYjBba1sxNSAgIF1dKSA8PCAyOwotCQl3ICB8PSAgYjFba1sxNiAgIF1dIHwgYjBba1sxNyAgIF1dOwotCQl3IDw8PSA4OwotCQl3ICB8PSAoYjFba1sxOCAgIF1dIHwgYjBba1sxOSAgIF1dKSA8PCA0OwotCQl3ICB8PSAoYjFba1syMCAgIF1dIHwgYjBba1syMSAgIF1dKSA8PCAyOwotCQl3ICB8PSAgYjFba1syMiAgIF1dIHwgYjBba1syMyAgIF1dOwotCQlleHBrZXlbMF0gPSB3OwotCQkKLQkJdyAgID0gKGIxW2tbIDArMjRdXSB8IGIwW2tbIDErMjRdXSkgPDwgNDsKLQkJdyAgfD0gKGIxW2tbIDIrMjRdXSB8IGIwW2tbIDMrMjRdXSkgPDwgMjsKLQkJdyAgfD0gIGIxW2tbIDQrMjRdXSB8IGIwW2tbIDUrMjRdXTsKLQkJdyA8PD0gODsKLQkJdyAgfD0gKGIxW2tbIDYrMjRdXSB8IGIwW2tbIDcrMjRdXSkgPDwgNDsKLQkJdyAgfD0gKGIxW2tbIDgrMjRdXSB8IGIwW2tbIDkrMjRdXSkgPDwgMjsKLQkJdyAgfD0gIGIxW2tbMTArMjRdXSB8IGIwW2tbMTErMjRdXTsKLQkJdyA8PD0gODsKLQkJdyAgfD0gKGIxW2tbMTIrMjRdXSB8IGIwW2tbMTMrMjRdXSkgPDwgNDsKLQkJdyAgfD0gKGIxW2tbMTQrMjRdXSB8IGIwW2tbMTUrMjRdXSkgPDwgMjsKLQkJdyAgfD0gIGIxW2tbMTYrMjRdXSB8IGIwW2tbMTcrMjRdXTsKLQkJdyA8PD0gODsKLQkJdyAgfD0gKGIxW2tbMTgrMjRdXSB8IGIwW2tbMTkrMjRdXSkgPDwgNDsKLQkJdyAgfD0gKGIxW2tbMjArMjRdXSB8IGIwW2tbMjErMjRdXSkgPDwgMjsKLQkJdyAgfD0gIGIxW2tbMjIrMjRdXSB8IGIwW2tbMjMrMjRdXTsKLQkJCi0JCVJPUih3LCA0LCAyOCk7ICAgICAgLyogY291bGQgYmUgZWxpbWluYXRlZCAqLwotCQlleHBrZXlbMV0gPSB3OwotCi0JCWsgKz0gNDg7Ci0JCWV4cGtleSArPSAyOwotCX0gd2hpbGUgKC0tbik7Ci0KLQlyZXR1cm4gMDsKIH0KIAogc3RhdGljIGludCBkZXNfc2V0a2V5KHZvaWQgKmN0eCwgY29uc3QgdTggKmtleSwgdW5zaWduZWQgaW50IGtleWxlbiwgdTMyICpmbGFncykKIHsKLQlyZXR1cm4gc2V0a2V5KCgoc3RydWN0IGRlc19jdHggKiljdHgpLT5leHBrZXksIGtleSwga2V5bGVuLCBmbGFncyk7CisJc3RydWN0IGRlc19jdHggKmRjdHggPSBjdHg7CisJdTMyIHRtcFtERVNfRVhQS0VZX1dPUkRTXTsKKwlpbnQgcmV0OworCisJLyogRXhwYW5kIHRvIHRtcCAqLworCXJldCA9IGVrZXkodG1wLCBrZXkpOworCisJaWYgKHVubGlrZWx5KHJldCA9PSAwKSAmJiAoKmZsYWdzICYgQ1JZUFRPX1RGTV9SRVFfV0VBS19LRVkpKSB7CisJCSpmbGFncyB8PSBDUllQVE9fVEZNX1JFU19XRUFLX0tFWTsKKwkJcmV0dXJuIC1FSU5WQUw7CisJfQorCisJLyogQ29weSB0byBvdXRwdXQgKi8KKwltZW1jcHkoZGN0eC0+ZXhwa2V5LCB0bXAsIHNpemVvZihkY3R4LT5leHBrZXkpKTsKKworCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBkZXNfZW5jcnlwdCh2b2lkICpjdHgsIHU4ICpkc3QsIGNvbnN0IHU4ICpzcmMpCiB7Ci0JZGVzX3NtYWxsX2ZpcHNfZW5jcnlwdCgoKHN0cnVjdCBkZXNfY3R4ICopY3R4KS0+ZXhwa2V5LCBkc3QsIHNyYyk7CisJY29uc3QgdTMyICpLID0gKChzdHJ1Y3QgZGVzX2N0eCAqKWN0eCktPmV4cGtleTsKKwljb25zdCBfX2xlMzIgKnMgPSAoY29uc3QgX19sZTMyICopc3JjOworCV9fbGUzMiAqZCA9IChfX2xlMzIgKilkc3Q7CisJdTMyIEwsIFIsIEEsIEI7CisJaW50IGk7CisKKwlMID0gbGUzMl90b19jcHUoc1swXSk7CisJUiA9IGxlMzJfdG9fY3B1KHNbMV0pOworCisJSVAoTCwgUiwgQSk7CisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCQlST1VORChMLCBSLCBBLCBCLCBLLCAyKTsKKwkJUk9VTkQoUiwgTCwgQSwgQiwgSywgMik7CisJfQorCUZQKFIsIEwsIEEpOworCisJZFswXSA9IGNwdV90b19sZTMyKFIpOworCWRbMV0gPSBjcHVfdG9fbGUzMihMKTsKIH0KIAogc3RhdGljIHZvaWQgZGVzX2RlY3J5cHQodm9pZCAqY3R4LCB1OCAqZHN0LCBjb25zdCB1OCAqc3JjKQogewotCWRlc19zbWFsbF9maXBzX2RlY3J5cHQoKChzdHJ1Y3QgZGVzX2N0eCAqKWN0eCktPmV4cGtleSwgZHN0LCBzcmMpOworCWNvbnN0IHUzMiAqSyA9ICgoc3RydWN0IGRlc19jdHggKiljdHgpLT5leHBrZXkgKyBERVNfRVhQS0VZX1dPUkRTIC0gMjsKKwljb25zdCBfX2xlMzIgKnMgPSAoY29uc3QgX19sZTMyICopc3JjOworCV9fbGUzMiAqZCA9IChfX2xlMzIgKilkc3Q7CisJdTMyIEwsIFIsIEEsIEI7CisJaW50IGk7CisKKwlMID0gbGUzMl90b19jcHUoc1swXSk7CisJUiA9IGxlMzJfdG9fY3B1KHNbMV0pOworCisJSVAoTCwgUiwgQSk7CisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCQlST1VORChMLCBSLCBBLCBCLCBLLCAtMik7CisJCVJPVU5EKFIsIEwsIEEsIEIsIEssIC0yKTsKKwl9CisJRlAoUiwgTCwgQSk7CisKKwlkWzBdID0gY3B1X3RvX2xlMzIoUik7CisJZFsxXSA9IGNwdV90b19sZTMyKEwpOwogfQogCi0vKiAKKy8qCiAgKiBSRkMyNDUxOgogICoKICAqICAgRm9yIERFUy1FREUzLCB0aGVyZSBpcyBubyBrbm93biBuZWVkIHRvIHJlamVjdCB3ZWFrIG9yCkBAIC0xMTk3LDQ0ICs4NTksODYgQEAKICAqCiAgKi8KIHN0YXRpYyBpbnQgZGVzM19lZGVfc2V0a2V5KHZvaWQgKmN0eCwgY29uc3QgdTggKmtleSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuc2lnbmVkIGludCBrZXlsZW4sIHUzMiAqZmxhZ3MpCisJCQkgICB1bnNpZ25lZCBpbnQga2V5bGVuLCB1MzIgKmZsYWdzKQogewotCXVuc2lnbmVkIGludCBpLCBvZmY7CisJY29uc3QgdTMyICpLID0gKGNvbnN0IHUzMiAqKWtleTsKIAlzdHJ1Y3QgZGVzM19lZGVfY3R4ICpkY3R4ID0gY3R4OworCXUzMiAqZXhwa2V5ID0gZGN0eC0+ZXhwa2V5OwogCi0JaWYgKCEobWVtY21wKGtleSwgJmtleVtERVNfS0VZX1NJWkVdLCBERVNfS0VZX1NJWkUpICYmIAotCSAgICBtZW1jbXAoJmtleVtERVNfS0VZX1NJWkVdLCAma2V5W0RFU19LRVlfU0laRSAqIDJdLAotCSAgICAJCQkJCURFU19LRVlfU0laRSkpKSB7Ci0KKwlpZiAodW5saWtlbHkoISgoS1swXSBeIEtbMl0pIHwgKEtbMV0gXiBLWzNdKSkgfHwKKwkJICAgICAhKChLWzJdIF4gS1s0XSkgfCAoS1szXSBeIEtbNV0pKSkpCisJewogCQkqZmxhZ3MgfD0gQ1JZUFRPX1RGTV9SRVNfQkFEX0tFWV9TQ0hFRDsKIAkJcmV0dXJuIC1FSU5WQUw7CiAJfQotCQotCWZvciAoaSA9IDAsIG9mZiA9IDA7IGkgPCAzOyBpKyssIG9mZiArPSBERVNfRVhQS0VZX1dPUkRTLAotCQkJCQkJCWtleSArPSBERVNfS0VZX1NJWkUpIHsKLQkJaW50IHJldCA9IHNldGtleSgmZGN0eC0+ZXhwa2V5W29mZl0sIGtleSwgREVTX0tFWV9TSVpFLCBmbGFncyk7Ci0JCWlmIChyZXQgPCAwKQotCQkJcmV0dXJuIHJldDsKLQl9CQorCisJZWtleShleHBrZXksIGtleSk7IGV4cGtleSArPSBERVNfRVhQS0VZX1dPUkRTOyBrZXkgKz0gREVTX0tFWV9TSVpFOworCWRrZXkoZXhwa2V5LCBrZXkpOyBleHBrZXkgKz0gREVTX0VYUEtFWV9XT1JEUzsga2V5ICs9IERFU19LRVlfU0laRTsKKwlla2V5KGV4cGtleSwga2V5KTsKKwogCXJldHVybiAwOwogfQogCiBzdGF0aWMgdm9pZCBkZXMzX2VkZV9lbmNyeXB0KHZvaWQgKmN0eCwgdTggKmRzdCwgY29uc3QgdTggKnNyYykKIHsKIAlzdHJ1Y3QgZGVzM19lZGVfY3R4ICpkY3R4ID0gY3R4OwotCQotCWRlc19zbWFsbF9maXBzX2VuY3J5cHQoZGN0eC0+ZXhwa2V5LCBkc3QsIHNyYyk7Ci0JZGVzX3NtYWxsX2ZpcHNfZGVjcnlwdCgmZGN0eC0+ZXhwa2V5W0RFU19FWFBLRVlfV09SRFNdLCBkc3QsIGRzdCk7Ci0JZGVzX3NtYWxsX2ZpcHNfZW5jcnlwdCgmZGN0eC0+ZXhwa2V5W0RFU19FWFBLRVlfV09SRFMgKiAyXSwgZHN0LCBkc3QpOworCWNvbnN0IHUzMiAqSyA9IGRjdHgtPmV4cGtleTsKKwljb25zdCBfX2xlMzIgKnMgPSAoY29uc3QgX19sZTMyICopc3JjOworCV9fbGUzMiAqZCA9IChfX2xlMzIgKilkc3Q7CisJdTMyIEwsIFIsIEEsIEI7CisJaW50IGk7CisKKwlMID0gbGUzMl90b19jcHUoc1swXSk7CisJUiA9IGxlMzJfdG9fY3B1KHNbMV0pOworCisJSVAoTCwgUiwgQSk7CisJZm9yIChpID0gMDsgaSA8IDg7IGkrKykgeworCQlST1VORChMLCBSLCBBLCBCLCBLLCAyKTsKKwkJUk9VTkQoUiwgTCwgQSwgQiwgSywgMik7CisJfQorCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJUk9VTkQoUiwgTCwgQSwgQiwgSywgMik7CisJCVJPVU5EKEwsIFIsIEEsIEIsIEssIDIpOworCX0KKwlmb3IgKGkgPSAwOyBpIDwgODsgaSsrKSB7CisJCVJPVU5EKEwsIFIsIEEsIEIsIEssIDIpOworCQlST1VORChSLCBMLCBBLCBCLCBLLCAyKTsKKwl9CisJRlAoUiwgTCwgQSk7CisKKwlkWzBdID0gY3B1X3RvX2xlMzIoUik7CisJZFsxXSA9IGNwdV90b19sZTMyKEwpOwogfQogCiBzdGF0aWMgdm9pZCBkZXMzX2VkZV9kZWNyeXB0KHZvaWQgKmN0eCwgdTggKmRzdCwgY29uc3QgdTggKnNyYykKIHsKIAlzdHJ1Y3QgZGVzM19lZGVfY3R4ICpkY3R4ID0gY3R4OworCWNvbnN0IHUzMiAqSyA9IGRjdHgtPmV4cGtleSArIERFUzNfRURFX0VYUEtFWV9XT1JEUyAtIDI7CisJY29uc3QgX19sZTMyICpzID0gKGNvbnN0IF9fbGUzMiAqKXNyYzsKKwlfX2xlMzIgKmQgPSAoX19sZTMyICopZHN0OworCXUzMiBMLCBSLCBBLCBCOworCWludCBpOwogCi0JZGVzX3NtYWxsX2ZpcHNfZGVjcnlwdCgmZGN0eC0+ZXhwa2V5W0RFU19FWFBLRVlfV09SRFMgKiAyXSwgZHN0LCBzcmMpOwotCWRlc19zbWFsbF9maXBzX2VuY3J5cHQoJmRjdHgtPmV4cGtleVtERVNfRVhQS0VZX1dPUkRTXSwgZHN0LCBkc3QpOwotCWRlc19zbWFsbF9maXBzX2RlY3J5cHQoZGN0eC0+ZXhwa2V5LCBkc3QsIGRzdCk7CisJTCA9IGxlMzJfdG9fY3B1KHNbMF0pOworCVIgPSBsZTMyX3RvX2NwdShzWzFdKTsKKworCUlQKEwsIFIsIEEpOworCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJUk9VTkQoTCwgUiwgQSwgQiwgSywgLTIpOworCQlST1VORChSLCBMLCBBLCBCLCBLLCAtMik7CisJfQorCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJUk9VTkQoUiwgTCwgQSwgQiwgSywgLTIpOworCQlST1VORChMLCBSLCBBLCBCLCBLLCAtMik7CisJfQorCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJUk9VTkQoTCwgUiwgQSwgQiwgSywgLTIpOworCQlST1VORChSLCBMLCBBLCBCLCBLLCAtMik7CisJfQorCUZQKFIsIEwsIEEpOworCisJZFswXSA9IGNwdV90b19sZTMyKFIpOworCWRbMV0gPSBjcHVfdG9fbGUzMihMKTsKIH0KIAogc3RhdGljIHN0cnVjdCBjcnlwdG9fYWxnIGRlc19hbGcgPSB7CkBAIC0xMjQ3LDcgKzk1MSw3IEBACiAJLmNyYV91CQkJPQl7IC5jaXBoZXIgPSB7CiAJLmNpYV9taW5fa2V5c2l6ZQk9CURFU19LRVlfU0laRSwKIAkuY2lhX21heF9rZXlzaXplCT0JREVTX0tFWV9TSVpFLAotCS5jaWFfc2V0a2V5CQk9IAlkZXNfc2V0a2V5LAorCS5jaWFfc2V0a2V5CQk9CWRlc19zZXRrZXksCiAJLmNpYV9lbmNyeXB0CQk9CWRlc19lbmNyeXB0LAogCS5jaWFfZGVjcnlwdAkJPQlkZXNfZGVjcnlwdCB9IH0KIH07CkBAIC0xMjYyLDkgKzk2Niw5IEBACiAJLmNyYV91CQkJPQl7IC5jaXBoZXIgPSB7CiAJLmNpYV9taW5fa2V5c2l6ZQk9CURFUzNfRURFX0tFWV9TSVpFLAogCS5jaWFfbWF4X2tleXNpemUJPQlERVMzX0VERV9LRVlfU0laRSwKLQkuY2lhX3NldGtleQkgICAJPSAJZGVzM19lZGVfc2V0a2V5LAotCS5jaWFfZW5jcnlwdAkgCT0JZGVzM19lZGVfZW5jcnlwdCwKLQkuY2lhX2RlY3J5cHQJICAJPQlkZXMzX2VkZV9kZWNyeXB0IH0gfQorCS5jaWFfc2V0a2V5CQk9CWRlczNfZWRlX3NldGtleSwKKwkuY2lhX2VuY3J5cHQJCT0JZGVzM19lZGVfZW5jcnlwdCwKKwkuY2lhX2RlY3J5cHQJCT0JZGVzM19lZGVfZGVjcnlwdCB9IH0KIH07CiAKIE1PRFVMRV9BTElBUygiZGVzM19lZGUiKTsKQEAgLTEyNzIsNyArOTc2LDcgQEAKIHN0YXRpYyBpbnQgX19pbml0IGluaXQodm9pZCkKIHsKIAlpbnQgcmV0ID0gMDsKLQkKKwogCXJldCA9IGNyeXB0b19yZWdpc3Rlcl9hbGcoJmRlc19hbGcpOwogCWlmIChyZXQgPCAwKQogCQlnb3RvIG91dDsKQEAgLTEyODAsNyArOTg0LDcgQEAKIAlyZXQgPSBjcnlwdG9fcmVnaXN0ZXJfYWxnKCZkZXMzX2VkZV9hbGcpOwogCWlmIChyZXQgPCAwKQogCQljcnlwdG9fdW5yZWdpc3Rlcl9hbGcoJmRlc19hbGcpOwotb3V0OgkKK291dDoKIAlyZXR1cm4gcmV0OwogfQogCkBAIC0xMjk1LDMgKzk5OSw0IEBACiAKIE1PRFVMRV9MSUNFTlNFKCJHUEwiKTsKIE1PRFVMRV9ERVNDUklQVElPTigiREVTICYgVHJpcGxlIERFUyBFREUgQ2lwaGVyIEFsZ29yaXRobXMiKTsKK01PRFVMRV9BVVRIT1IoIkRhZyBBcm5lIE9zdmlrIDxkYUBvc3Zpay5ubz4iKTsK