ZGlmZiAtLWdpdCBhL3J1bnRpbWUvZG9jL2V2YWwudHh0IGIvcnVudGltZS9kb2MvZXZhbC50eHQKaW5kZXggNGE2MTQyYy4uYWJhOGM1ZiAxMDA2NDQKLS0tIGEvcnVudGltZS9kb2MvZXZhbC50eHQKKysrIGIvcnVudGltZS9kb2MvZXZhbC50eHQKQEAgLTEsNCArMSw0IEBACi0qZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgSnVsIDA2CisqZXZhbC50eHQqICAgICAgRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgSnVsIDA3CiAKIAogCQkgIFZJTSBSRUZFUkVOQ0UgTUFOVUFMICAgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC02NDcwLDcgKzY0NzAsNyBAQAogVGhpcyBpcyBub3QgZ3VhcmFudGVlZCAxMDAlIHNlY3VyZSwgYnV0IGl0IHNob3VsZCBibG9jayBtb3N0IGF0dGFja3MuCiAKIAkJCQkJCQkqOnNhbiogKjpzYW5kYm94KgotOnNhbltkYm94XSB7Y21kCQlFeGVjdXRlIHtjbWR9IGluIHRoZSBzYW5kYm94LiAgVXNlZnVsIHRvIGV2YWx1YXRlIGFuCis6c2FuW2Rib3hdIHtjbWR9CUV4ZWN1dGUge2NtZH0gaW4gdGhlIHNhbmRib3guICBVc2VmdWwgdG8gZXZhbHVhdGUgYW4KIAkJCW9wdGlvbiB0aGF0IG1heSBoYXZlIGJlZW4gc2V0IGZyb20gYSBtb2RlbGluZSwgZS5nLgogCQkJJ2ZvbGRleHByJy4KIApkaWZmIC0tZ2l0IGEvcnVudGltZS9kb2Mvb3B0aW9ucy50eHQgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAppbmRleCA2YzZhOGRjLi44MDA5ODM0IDEwMDY0NAotLS0gYS9ydW50aW1lL2RvYy9vcHRpb25zLnR4dAorKysgYi9ydW50aW1lL2RvYy9vcHRpb25zLnR4dApAQCAtMSw0ICsxLDQgQEAKLSpvcHRpb25zLnR4dCoJRm9yIFZpbSB2ZXJzaW9uIDcuMGFhLiAgTGFzdCBjaGFuZ2U6IDIwMDUgSnVsIDA0Cisqb3B0aW9ucy50eHQqCUZvciBWaW0gdmVyc2lvbiA3LjBhYS4gIExhc3QgY2hhbmdlOiAyMDA1IEp1bCAwOAogCiAKIAkJICBWSU0gUkVGRVJFTkNFIE1BTlVBTAkgIGJ5IEJyYW0gTW9vbGVuYWFyCkBAIC01NjYyLDcgKzU2NjIsOCBAQAogCQkJe25vdCBhdmFpbGFibGUgd2hlbiBjb21waWxlZCB3aXRob3V0IHRoZSB8K3N5bnRheHwKIAkJCWZlYXR1cmV9CiAJTmFtZSBvZiB0aGUgd29yZCBsaXN0IGZpbGUgd2hlcmUgd29yZHMgYXJlIGFkZGVkIGZvciB0aGUgfHpnfCBhbmQgfHp3fAotCWNvbW1hbmRzLiAgSXQgbXVzdCBlbmQgaW4gIi57ZW5jb2Rpbmd9LmFkZCIuCisJY29tbWFuZHMuICBJdCBtdXN0IGVuZCBpbiAiLntlbmNvZGluZ30uYWRkIi4gIFlvdSBuZWVkIHRvIGluY2x1ZGUgdGhlCisJcGF0aCwgb3RoZXJ3aXNlIHRoZSBmaWxlIGlzIHBsYWNlZCBpbiB0aGUgY3VycmVudCBkaXJlY3RvcnkuCiAJCQkJCQkJCSpFNzY1KgogCUl0IG1heSBhbHNvIGJlIGEgY29tbWEgc2VwYXJhdGVkIGxpc3Qgb2YgbmFtZXMuICBBIGNvdW50IGJlZm9yZSB0aGUKIAl8emd8IGFuZCB8end8IGNvbW1hbmRzIGNhbiBiZSB1c2VkIHRvIGFjY2VzcyBlYWNoLiAgVGhpcyBhbGxvd3MgdXNpbmcKZGlmZiAtLWdpdCBhL3J1bnRpbWUvbWVudS52aW0gYi9ydW50aW1lL21lbnUudmltCmluZGV4IDU4NGFmNTQuLjcyMzlmNTggMTAwNjQ0Ci0tLSBhL3J1bnRpbWUvbWVudS52aW0KKysrIGIvcnVudGltZS9tZW51LnZpbQpAQCAtMiw3ICsyLDcgQEAKICIgWW91IGNhbiBhbHNvIHVzZSB0aGlzIGFzIGEgc3RhcnQgZm9yIHlvdXIgb3duIHNldCBvZiBtZW51cy4KICIKICIgTWFpbnRhaW5lcjoJQnJhbSBNb29sZW5hYXIgPEJyYW1AdmltLm9yZz4KLSIgTGFzdCBDaGFuZ2U6CTIwMDUgSnVsIDA2CisiIExhc3QgQ2hhbmdlOgkyMDA1IEp1bCAwOAogCiAiIE5vdGUgdGhhdCAiOmFuIiAoc2hvcnQgZm9yICI6YW5vcmVtZW51IikgaXMgb2Z0ZW4gdXNlZCB0byBtYWtlIGEgbWVudSB3b3JrCiAiIGluIGFsbCBtb2RlcyBhbmQgYXZvaWQgc2lkZSBlZmZlY3RzIGZyb20gbWFwcGluZ3MgZGVmaW5lZCBieSB0aGUgdXNlci4KQEAgLTU3MSw3ICs1NzEsNyBAQAogICBlbmRpZgogICAiIElnbm9yZSBjYXNlIGZvciBWTVMgYW5kIHdpbmRvd3MKICAgbGV0IHM6bmFtZSA9IHN1YnN0aXR1dGUoczpuYW1lLCAnXGMuKlsvXFw6XF1dXChbXi9cXDpdKlwpXC52aW0nLCAnXDEnLCAnJykKLSAgZXhlICJhbiAzMC40NDAuIiAuIHM6aWR4IC4gJyAmVG9vbHMuc2UmVFwgQ29tcGlsZXIuJyAuIHM6bmFtZSAuICIgOmNvbXBpbGVyICIgLiBzOm5hbWUgLiAiPENSPiIKKyAgZXhlICJhbiAzMC40NDAuIiAuIHM6aWR4IC4gJyAmVG9vbHMuU2UmVFwgQ29tcGlsZXIuJyAuIHM6bmFtZSAuICIgOmNvbXBpbGVyICIgLiBzOm5hbWUgLiAiPENSPiIKICAgdW5sZXQgczpuYW1lCiAgIHVubGV0IHM6aQogICBsZXQgczppZHggPSBzOmlkeCArIDEwCmRpZmYgLS1naXQgYS9ydW50aW1lL3NwZWxsL3BsL3BsX1BMLmRpZmYgYi9ydW50aW1lL3NwZWxsL3BsL3BsX1BMLmRpZmYKaW5kZXggNTYyZDU5YS4uYTUzZWFkMyAxMDA2NDQKLS0tIGEvcnVudGltZS9zcGVsbC9wbC9wbF9QTC5kaWZmCisrKyBiL3J1bnRpbWUvc3BlbGwvcGwvcGxfUEwuZGlmZgpAQCAtMSw1ICsxLDUgQEAKLSoqKiBwbF9QTC5vcmlnLmFmZglXZWQgTWFyIDMwIDA2OjUwOjAyIDIwMDUKLS0tLSBwbF9QTC5hZmYJU2F0IEp1biAxOCAxOTo0NTo0NSAyMDA1CisqKiogcGxfUEwub3JpZy5hZmYJRnJpIEp1bCAgOCAwNjo1MDowNiAyMDA1CistLS0gcGxfUEwuYWZmCUZyaSBKdWwgIDggMjM6MDM6NDggMjAwNQogKioqKioqKioqKioqKioqCiAqKiogMyw0ICoqKioKIC0tLSAzLDcgLS0tLQpAQCAtOCwyNCArOCwzIEBACiArIExPVyCxorO1tqi5uru8vr+xsrO0tba3uLm6u7y9vr/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vj5+vv8/f7f/wogKyBVUFAgoaKjpaaoqaqrrK6vsbKztLW2t7i5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbY2drb3N3e3/8KICAgCi0qKioqKioqKioqKioqKioKLSoqKiA2NjE0ICoqKioKLS0tLSA2NjE3LDY2MzQgLS0tLQotICBTRlggeSAgIHkgICAgICAgICBpZSAgICAgICAgam15Ci0rIAotKyAjIFJFUCBlbnRyaWVzIHByb3Bvc2VkIGJ5IE1pa29sYWogTWFjaG93c2tpOgotKyBSRVAgMTQKLSsgUkVQIGIgICBwCi0rIFJFUCBwICAgYgotKyBSRVAgvyAgIHJ6Ci0rIFJFUCByeiAgvwotKyBSRVAgdyAgIGYKLSsgUkVQIGYgICB3Ci0rIFJFUCDzICAgdQotKyBSRVAgdSAgIPMKLSsgUkVQIGNpICDmCi0rIFJFUCDmICAgY2kKLSsgUkVQIHNpICC2Ci0rIFJFUCC2ICAgc2kKLSsgUkVQIG5pICDxCi0rIFJFUCDxICAgbmkKZGlmZiAtLWdpdCBhL3NyYy9ndWlfZ3RrLmMgYi9zcmMvZ3VpX2d0ay5jCmluZGV4IGNkN2Q2YmIuLjViZGU3OTEgMTAwNjQ0Ci0tLSBhL3NyYy9ndWlfZ3RrLmMKKysrIGIvc3JjL2d1aV9ndGsuYwpAQCAtMjQxMSw2ICsyNDExLDEwIEBACiAJCSAgIDNVLCAoZ3VpbnQzMilHREtfQ1VSUkVOVF9USU1FKTsKIH0KIAorLyogVWdseSBnbG9iYWwgdmFyaWFibGUgdG8gcGFzcyAibW91c2VfcG9zIiBmbGFnIGZyb20gZ3VpX21ha2VfcG9wdXAoKSB0bworICogcG9wdXBfbWVudV9wb3NpdGlvbl9mdW5jKCkuICovCitzdGF0aWMgaW50IHBvcHVwX21vdXNlX3BvczsKKwogLyoKICAqIE1lbnUgcG9zaXRpb24gY2FsbGJhY2s7IHVzZWQgYnkgZ3VpX21ha2VfcG9wdXAoKSB0byBwbGFjZSB0aGUgbWVudQogICogYXQgdGhlIGN1cnJlbnQgdGV4dCBjdXJzb3IgcG9zaXRpb24uCkBAIC0yNDI3LDEwICsyNDMxLDE4IEBACiAjIGVuZGlmCiAJCQkgZ3BvaW50ZXIgdXNlcl9kYXRhKQogewotICAgIGlmIChjdXJ3aW4gIT0gTlVMTCAmJiBndWkuZHJhd2FyZWEgIT0gTlVMTCAmJiBndWkuZHJhd2FyZWEtPndpbmRvdyAhPSBOVUxMKQotICAgIHsKLQlnZGtfd2luZG93X2dldF9vcmlnaW4oZ3VpLmRyYXdhcmVhLT53aW5kb3csIHgsIHkpOworICAgIGdka193aW5kb3dfZ2V0X29yaWdpbihndWkuZHJhd2FyZWEtPndpbmRvdywgeCwgeSk7CiAKKyAgICBpZiAocG9wdXBfbW91c2VfcG9zKQorICAgIHsKKwlpbnQJbXgsIG15OworCisJZ3VpX21jaF9nZXRtb3VzZSgmbXgsICZteSk7CisJKnggKz0gbXg7CisJKnkgKz0gbXk7CisgICAgfQorICAgIGVsc2UgaWYgKGN1cndpbiAhPSBOVUxMICYmIGd1aS5kcmF3YXJlYSAhPSBOVUxMICYmIGd1aS5kcmF3YXJlYS0+d2luZG93ICE9IE5VTEwpCisgICAgewogCS8qIEZpbmQgdGhlIGN1cnNvciBwb3NpdGlvbiBpbiB0aGUgY3VycmVudCB3aW5kb3cgKi8KIAkqeCArPSBGSUxMX1goV19XSU5DT0woY3Vyd2luKSArIGN1cndpbi0+d193Y29sICsgMSkgKyAxOwogCSp5ICs9IEZJTExfWShXX1dJTlJPVyhjdXJ3aW4pICsgY3Vyd2luLT53X3dyb3cgKyAxKSArIDE7CkBAIC0yNDM4LDEwICsyNDUwLDEyIEBACiB9CiAKICAgICB2b2lkCi1ndWlfbWFrZV9wb3B1cChjaGFyX3UgKnBhdGhfbmFtZSkKK2d1aV9tYWtlX3BvcHVwKGNoYXJfdSAqcGF0aF9uYW1lLCBpbnQgbW91c2VfcG9zKQogewogICAgIHZpbW1lbnVfVCAqbWVudTsKIAorICAgIHBvcHVwX21vdXNlX3BvcyA9IG1vdXNlX3BvczsKKwogICAgIG1lbnUgPSBndWlfZmluZF9tZW51KHBhdGhfbmFtZSk7CiAKICAgICBpZiAobWVudSAhPSBOVUxMICYmIG1lbnUtPnN1Ym1lbnVfaWQgIT0gTlVMTCkKZGlmZiAtLWdpdCBhL3NyYy9ndWlfdzMyLmMgYi9zcmMvZ3VpX3czMi5jCmluZGV4IGM0ZDhlNDguLjExZDAyODEgMTAwNjQ0Ci0tLSBhL3NyYy9ndWlfdzMyLmMKKysrIGIvc3JjL2d1aV93MzIuYwpAQCAtMjIwNiw3ICsyMjA2LDcgQEAKIH0KIAogICAgIHZvaWQKLWd1aV9tYWtlX3BvcHVwKGNoYXJfdSAqcGF0aF9uYW1lKQorZ3VpX21ha2VfcG9wdXAoY2hhcl91ICpwYXRoX25hbWUsIGludCBtb3VzZV9wb3MpCiB7CiAgICAgdmltbWVudV9UCSptZW51ID0gZ3VpX2ZpbmRfbWVudShwYXRoX25hbWUpOwogCkBAIC0yMjE2LDcgKzIyMTYsMTUgQEAKIAogCS8qIEZpbmQgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IGN1cnNvciAqLwogCUdldERDT3JnRXgoc19oZGMsICZwKTsKLQlpZiAoY3Vyd2luICE9IE5VTEwpCisJaWYgKG1vdXNlX3BvcykKKwl7CisJICAgIGludAlteCwgbXk7CisKKwkgICAgZ3VpX21jaF9nZXRtb3VzZSgmbXgsICZteSk7CisJICAgIHAueCArPSBteDsKKwkgICAgcC55ICs9IG15OworCX0KKwllbHNlIGlmIChjdXJ3aW4gIT0gTlVMTCkKIAl7CiAJICAgIHAueCArPSBURVhUX1goV19XSU5DT0woY3Vyd2luKSArIGN1cndpbi0+d193Y29sICsgMSk7CiAJICAgIHAueSArPSBURVhUX1koV19XSU5ST1coY3Vyd2luKSArIGN1cndpbi0+d193cm93ICsgMSk7CmRpZmYgLS1naXQgYS9zcmMvcHJvdG8vZ3VpX2d0ay5wcm8gYi9zcmMvcHJvdG8vZ3VpX2d0ay5wcm8KaW5kZXggODE4ZDEyYy4uOTYwZDYzMSAxMDA2NDQKLS0tIGEvc3JjL3Byb3RvL2d1aV9ndGsucHJvCisrKyBiL3NyYy9wcm90by9ndWlfZ3RrLnBybwpAQCAtMTUsNyArMTUsNyBAQAogY2hhcl91ICpndWlfbWNoX2Jyb3dzZWRpciBfX0FSR1MoKGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqaW5pdGRpcikpOwogaW50IGd1aV9tY2hfZGlhbG9nIF9fQVJHUygoaW50IHR5cGUsIGNoYXJfdSAqdGl0bGUsIGNoYXJfdSAqbWVzc2FnZSwgY2hhcl91ICpidXR0b25zLCBpbnQgZGVmX2J1dCwgY2hhcl91ICp0ZXh0ZmllbGQpKTsKIHZvaWQgZ3VpX21jaF9zaG93X3BvcHVwbWVudSBfX0FSR1MoKHZpbW1lbnVfVCAqbWVudSkpOwotdm9pZCBndWlfbWFrZV9wb3B1cCBfX0FSR1MoKGNoYXJfdSAqcGF0aF9uYW1lKSk7Cit2b2lkIGd1aV9tYWtlX3BvcHVwIF9fQVJHUygoY2hhcl91ICpwYXRoX25hbWUsIGludCBtb3VzZV9wb3MpKTsKIHZvaWQgZ3VpX21jaF9maW5kX2RpYWxvZyBfX0FSR1MoKGV4YXJnX1QgKmVhcCkpOwogdm9pZCBndWlfbWNoX3JlcGxhY2VfZGlhbG9nIF9fQVJHUygoZXhhcmdfVCAqZWFwKSk7CiB2b2lkIGd1aV9ndGtfc3luY2hfZm9udHMgX19BUkdTKCh2b2lkKSk7CmRpZmYgLS1naXQgYS9zcmMvdmVyc2lvbi5oIGIvc3JjL3ZlcnNpb24uaAppbmRleCA3MDgyMjA0Li44MzMxODIyIDEwMDY0NAotLS0gYS9zcmMvdmVyc2lvbi5oCisrKyBiL3NyYy92ZXJzaW9uLmgKQEAgLTM2LDUgKzM2LDUgQEAKICNkZWZpbmUgVklNX1ZFUlNJT05fTk9ET1QJInZpbTcwYWEiCiAjZGVmaW5lIFZJTV9WRVJTSU9OX1NIT1JUCSI3LjBhYSIKICNkZWZpbmUgVklNX1ZFUlNJT05fTUVESVVNCSI3LjBhYSBBTFBIQSIKLSNkZWZpbmUgVklNX1ZFUlNJT05fTE9ORwkiVklNIC0gVmkgSU1wcm92ZWQgNy4wYWEgQUxQSEEgKDIwMDUgSnVsIDYpIgotI2RlZmluZSBWSU1fVkVSU0lPTl9MT05HX0RBVEUJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGFhIEFMUEhBICgyMDA1IEp1bCA2LCBjb21waWxlZCAiCisjZGVmaW5lIFZJTV9WRVJTSU9OX0xPTkcJIlZJTSAtIFZpIElNcHJvdmVkIDcuMGFhIEFMUEhBICgyMDA1IEp1bCA4KSIKKyNkZWZpbmUgVklNX1ZFUlNJT05fTE9OR19EQVRFCSJWSU0gLSBWaSBJTXByb3ZlZCA3LjBhYSBBTFBIQSAoMjAwNSBKdWwgOCwgY29tcGlsZWQgIgo=