<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>21998</bug_id>
          
          <creation_ts>2008-10-31 06:33:53 -0700</creation_ts>
          <short_desc>Use JSDOMGlobalObject in EventListener-related bindings</short_desc>
          <delta_ts>2008-11-01 00:11:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>97238</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-31 06:33:53 -0700</bug_when>
    <thetext>MessagePort has been changed to use JSDOMGlobalObject as a custom implementation, now it&apos;s time to standardize on this implementation, and to auto-generate it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97239</commentid>
    <comment_count>1</comment_count>
      <attachid>24796</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-31 06:39:00 -0700</bug_when>
    <thetext>Created attachment 24796
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97250</commentid>
    <comment_count>2</comment_count>
      <attachid>24796</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2008-10-31 09:54:51 -0700</bug_when>
    <thetext>Comment on attachment 24796
proposed patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97361</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-11-01 00:11:40 -0700</bug_when>
    <thetext>Committed revision 38063.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24796</attachid>
            <date>2008-10-31 06:39:00 -0700</date>
            <delta_ts>2008-10-31 09:54:51 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>AutoGenerate.txt</filename>
            <type>text/plain</type>
            <size>25250</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODAzNCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTYgQEAKKzIwMDgtMTAtMzEgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTk5OAorICAgICAgICBV
c2UgSlNET01HbG9iYWxPYmplY3QgaW4gRXZlbnRMaXN0ZW5lci1yZWxhdGVkIGJpbmRpbmdzCisK
KyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuaWRsOiBBdXRvLWdlbmVyYXRlIGJpbmRpbmdzIGZv
ciBvbmNsb3NlIGFuZCBvbm1lc3NhZ2UuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbTogVXNlIEpTRE9NR2xvYmFsT2JqZWN0IGluc3RlYWQgb2YgSlNET01X
aW5kb3cgaW4gSlMKKyAgICAgICAgYmluZGluZ3MgZm9yIGlubGluZSBldmVudCBoYW5kbGVycy4K
KworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQXBwbGljYXRpb25DYWNoZUN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUFwcGxpY2F0aW9uQ2FjaGU6OmFkZEV2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01BcHBsaWNhdGlvbkNhY2hlOjpyZW1vdmVFdmVu
dExpc3RlbmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Tm9kZUN1c3Rv
bS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50VGFyZ2V0Tm9kZTo6YWRkRXZlbnRMaXN0
ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpKU0V2ZW50VGFyZ2V0Tm9kZTo6cmVtb3ZlRXZlbnRM
aXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VQb3J0OjpyZW1vdmVFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU1NWR0VsZW1lbnRJbnN0YW5jZTo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpKU1NWR0VsZW1lbnRJbnN0YW5jZTo6cmVtb3ZlRXZlbnRMaXN0
ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1ZXN0OjphZGRFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTWE1MSHR0cFJlcXVlc3Q6OnJlbW92ZUV2ZW50TGlzdGVuZXIp
OgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdFVwbG9hZDo6YWRkRXZlbnRMaXN0
ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkOjpyZW1vdmVF
dmVudExpc3RlbmVyKToKKyAgICAgICAgVXNlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgYW5kIEpT
RE9NR2xvYmFsT2JqZWN0IGluIGJpbmRpbmdzLgorCisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0
Lmg6CisgICAgICAgICogZG9tL0V2ZW50VGFyZ2V0Tm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudFRhcmdldE5vZGU6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAqIGRv
bS9FdmVudFRhcmdldE5vZGUuaDoKKyAgICAgICAgKiBkb20vTWVzc2FnZVBvcnQuY3BwOgorICAg
ICAgICAqIGRvbS9NZXNzYWdlUG9ydC5oOgorICAgICAgICAoV2ViQ29yZTo6TWVzc2FnZVBvcnQ6
OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9ET01B
cHBsaWNhdGlvbkNhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUFwcGxpY2F0aW9uQ2Fj
aGU6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAqIGxvYWRlci9hcHBjYWNoZS9E
T01BcHBsaWNhdGlvbkNhY2hlLmg6CisgICAgICAgICogc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdFbGVtZW50SW5zdGFuY2U6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQpOgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50SW5zdGFuY2UuaDoKKyAgICAgICAg
KiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJlcXVl
c3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVz
dC5oOgorICAgICAgICAqIHhtbC9YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpYTUxIdHRwUmVxdWVzdFVwbG9hZDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCk6Cisg
ICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmg6CisgICAgICAgIFJlbW92ZSBhc3Nv
Y2lhdGVkRnJhbWUoKSBtZXRob2QsIGFuZCBwcm92aWRlIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSB3aGVyZSBpdCB3YXNuJ3QKKyAgICAgICAgYXZhaWxhYmxlIHlldC4KKwogMjAwOC0xMC0zMCAg
QWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQXBwbGljYXRp
b25DYWNoZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUFwcGxpY2F0aW9uQ2FjaGVDdXN0b20uY3BwCShyZXZpc2lvbiAzODAzMikKKysrIFdlYkNvcmUv
YmluZGluZ3MvanMvSlNET01BcHBsaWNhdGlvbkNhY2hlQ3VzdG9tLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTA2LDEwICsxMDYsMTAgQEAgSlNWYWx1ZSogSlNET01BcHBsaWNhdGlvbkNhY2hlOjpy
ZW1vdmUoRQogCiBKU1ZhbHVlKiBKU0RPTUFwcGxpY2F0aW9uQ2FjaGU6OmFkZEV2ZW50TGlzdGVu
ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEZyYW1lKiBm
cmFtZSA9IGltcGwoKS0+YXNzb2NpYXRlZEZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKKyAgICBK
U0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXBs
KCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CisgICAgaWYgKCFnbG9iYWxPYmplY3QpCiAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIFJlZlB0cjxKU1VucHJvdGVjdGVkRXZl
bnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSB0b0pTRE9NV2luZG93KGZyYW1lKS0+ZmluZE9yQ3JlYXRl
SlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXIoZXhlYywgYXJncy5hdChleGVjLCAxKSk7CisgICAg
UmVmUHRyPEpTVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IGdsb2JhbE9iamVj
dC0+ZmluZE9yQ3JlYXRlSlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXIoZXhlYywgYXJncy5hdChl
eGVjLCAxKSk7CiAgICAgaWYgKCFsaXN0ZW5lcikKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CiAgICAgaW1wbCgpLT5hZGRFdmVudExpc3RlbmVyKGFyZ3MuYXQoZXhlYywgMCktPnRvU3Ry
aW5nKGV4ZWMpLCBsaXN0ZW5lci5yZWxlYXNlKCksIGFyZ3MuYXQoZXhlYywgMiktPnRvQm9vbGVh
bihleGVjKSk7CkBAIC0xMTgsMTAgKzExOCwxMCBAQCBKU1ZhbHVlKiBKU0RPTUFwcGxpY2F0aW9u
Q2FjaGU6OmFkZEV2ZW50CiAKIEpTVmFsdWUqIEpTRE9NQXBwbGljYXRpb25DYWNoZTo6cmVtb3Zl
RXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0g
ICAgRnJhbWUqIGZyYW1lID0gaW1wbCgpLT5hc3NvY2lhdGVkRnJhbWUoKTsKLSAgICBpZiAoIWZy
YW1lKQorICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFs
T2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBpZiAoIWdsb2Jh
bE9iamVjdCkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgSlNVbnByb3RlY3Rl
ZEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyID0gdG9KU0RPTVdpbmRvdyhmcmFtZSktPmZpbmRKU1Vu
cHJvdGVjdGVkRXZlbnRMaXN0ZW5lcihleGVjLCBhcmdzLmF0KGV4ZWMsIDEpKTsKKyAgICBKU1Vu
cHJvdGVjdGVkRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIgPSBnbG9iYWxPYmplY3QtPmZpbmRKU1Vu
cHJvdGVjdGVkRXZlbnRMaXN0ZW5lcihleGVjLCBhcmdzLmF0KGV4ZWMsIDEpKTsKICAgICBpZiAo
IWxpc3RlbmVyKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICBpbXBsKCktPnJl
bW92ZUV2ZW50TGlzdGVuZXIoYXJncy5hdChleGVjLCAwKS0+dG9TdHJpbmcoZXhlYyksIGxpc3Rl
bmVyLCBhcmdzLmF0KGV4ZWMsIDIpLT50b0Jvb2xlYW4oZXhlYykpOwpJbmRleDogV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Tm9kZUN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Tm9kZUN1c3RvbS5jcHAJKHJldmlzaW9uIDM4
MDMyKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50VGFyZ2V0Tm9kZUN1c3RvbS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQyLDExICs0MiwxMSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IEpTVmFsdWUqIEpTRXZlbnRUYXJnZXROb2RlOjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBpbXBsKCkt
PmFzc29jaWF0ZWRGcmFtZSgpOwotICAgIGlmICghZnJhbWUpCisgICAgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoaW1wbCgpLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOworICAgIGlmICghZ2xvYmFsT2JqZWN0KQogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKIAotICAgIGlmIChSZWZQdHI8SlNFdmVudExpc3RlbmVyPiBsaXN0ZW5l
ciA9IHRvSlNET01XaW5kb3coZnJhbWUpLT5maW5kT3JDcmVhdGVKU0V2ZW50TGlzdGVuZXIoZXhl
YywgYXJncy5hdChleGVjLCAxKSkpCisgICAgaWYgKFJlZlB0cjxKU0V2ZW50TGlzdGVuZXI+IGxp
c3RlbmVyID0gZ2xvYmFsT2JqZWN0LT5maW5kT3JDcmVhdGVKU0V2ZW50TGlzdGVuZXIoZXhlYywg
YXJncy5hdChleGVjLCAxKSkpCiAgICAgICAgIGltcGwoKS0+YWRkRXZlbnRMaXN0ZW5lcihhcmdz
LmF0KGV4ZWMsIDApLT50b1N0cmluZyhleGVjKSwgbGlzdGVuZXIucmVsZWFzZSgpLCBhcmdzLmF0
KGV4ZWMsIDIpLT50b0Jvb2xlYW4oZXhlYykpOwogCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CkBAIC01NCwxMSArNTQsMTEgQEAgSlNWYWx1ZSogSlNFdmVudFRhcmdldE5vZGU6OmFkZEV2ZW50
TGlzdAogCiBKU1ZhbHVlKiBKU0V2ZW50VGFyZ2V0Tm9kZTo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgRnJhbWUqIGZyYW1l
ID0gaW1wbCgpLT5hc3NvY2lhdGVkRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQorICAgIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBpZiAoSlNFdmVudExpc3RlbmVyKiBsaXN0
ZW5lciA9IHRvSlNET01XaW5kb3coZnJhbWUpLT5maW5kSlNFdmVudExpc3RlbmVyKGFyZ3MuYXQo
ZXhlYywgMSkpKQorICAgIGlmIChKU0V2ZW50TGlzdGVuZXIqIGxpc3RlbmVyID0gZ2xvYmFsT2Jq
ZWN0LT5maW5kSlNFdmVudExpc3RlbmVyKGFyZ3MuYXQoZXhlYywgMSkpKQogICAgICAgICBpbXBs
KCktPnJlbW92ZUV2ZW50TGlzdGVuZXIoYXJncy5hdChleGVjLCAwKS0+dG9TdHJpbmcoZXhlYyks
IGxpc3RlbmVyLCBhcmdzLmF0KGV4ZWMsIDIpLT50b0Jvb2xlYW4oZXhlYykpOwogCiAgICAgcmV0
dXJuIGpzVW5kZWZpbmVkKCk7CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBv
cnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdl
UG9ydEN1c3RvbS5jcHAJKHJldmlzaW9uIDM4MDMzKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U01lc3NhZ2VQb3J0Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTUsMzkgKzk1LDYgQEAg
SlNWYWx1ZSogSlNNZXNzYWdlUG9ydDo6cmVtb3ZlRXZlbnRMaXN0ZQogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKICAgICBpbXBsKCktPnJlbW92ZUV2ZW50TGlzdGVuZXIoYXJncy5hdChl
eGVjLCAwKS0+dG9TdHJpbmcoZXhlYyksIGxpc3RlbmVyLCBhcmdzLmF0KGV4ZWMsIDIpLT50b0Jv
b2xlYW4oZXhlYykpOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotICAgIAotfQotCi12b2lk
IEpTTWVzc2FnZVBvcnQ6OnNldE9ubWVzc2FnZShFeGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUqIHZh
bHVlKQotewotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xv
YmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBpZiAoIWds
b2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuOwotICAgIGltcGwoKS0+c2V0T25tZXNzYWdlKGds
b2JhbE9iamVjdC0+ZmluZE9yQ3JlYXRlSlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXIoZXhlYywg
dmFsdWUsIHRydWUpKTsKLX0KLQotSlNWYWx1ZSogSlNNZXNzYWdlUG9ydDo6b25tZXNzYWdlKEV4
ZWNTdGF0ZSopIGNvbnN0Ci17Ci0gICAgaWYgKEpTVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyKiBs
aXN0ZW5lciA9IHN0YXRpY19jYXN0PEpTVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyKj4oaW1wbCgp
LT5vbm1lc3NhZ2UoKSkpCi0gICAgICAgIGlmIChKU09iamVjdCogbGlzdGVuZXJPYmogPSBsaXN0
ZW5lci0+bGlzdGVuZXJPYmooKSkKLSAgICAgICAgICAgIHJldHVybiBsaXN0ZW5lck9iajsKLSAg
ICByZXR1cm4ganNOdWxsKCk7Ci19Ci0KLXZvaWQgSlNNZXNzYWdlUG9ydDo6c2V0T25jbG9zZShF
eGVjU3RhdGUqIGV4ZWMsIEpTVmFsdWUqIHZhbHVlKQotewotICAgIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGltcGwoKS0+c2V0T25jbG9zZShnbG9iYWxPYmplY3QtPmZpbmRPckNyZWF0ZUpTVW5wcm90
ZWN0ZWRFdmVudExpc3RlbmVyKGV4ZWMsIHZhbHVlLCB0cnVlKSk7Ci19Ci0KLUpTVmFsdWUqIEpT
TWVzc2FnZVBvcnQ6Om9uY2xvc2UoRXhlY1N0YXRlKikgY29uc3QKLXsKLSAgICBpZiAoSlNVbnBy
b3RlY3RlZEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyID0gc3RhdGljX2Nhc3Q8SlNVbnByb3RlY3Rl
ZEV2ZW50TGlzdGVuZXIqPihpbXBsKCktPm9uY2xvc2UoKSkpCi0gICAgICAgIGlmIChKU09iamVj
dCogbGlzdGVuZXJPYmogPSBsaXN0ZW5lci0+bGlzdGVuZXJPYmooKSkKLSAgICAgICAgICAgIHJl
dHVybiBsaXN0ZW5lck9iajsKLSAgICByZXR1cm4ganNOdWxsKCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50SW5zdGFu
Y2VDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdFbGVt
ZW50SW5zdGFuY2VDdXN0b20uY3BwCShyZXZpc2lvbiAzODAzMikKKysrIFdlYkNvcmUvYmluZGlu
Z3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
OCwxMSArMzgsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBKU1ZhbHVlKiBKU1NWR0VsZW1l
bnRJbnN0YW5jZTo6YWRkRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xp
c3QmIGFyZ3MpCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gaW1wbCgpLT5hc3NvY2lhdGVkRnJhbWUo
KTsKLSAgICBpZiAoIWZyYW1lKQorICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAK
LSAgICBpZiAoUmVmUHRyPEpTRXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSB0b0pTRE9NV2luZG93
KGZyYW1lKS0+ZmluZE9yQ3JlYXRlSlNFdmVudExpc3RlbmVyKGV4ZWMsIGFyZ3MuYXQoZXhlYywg
MSkpKQorICAgIGlmIChSZWZQdHI8SlNFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IGdsb2JhbE9i
amVjdC0+ZmluZE9yQ3JlYXRlSlNFdmVudExpc3RlbmVyKGV4ZWMsIGFyZ3MuYXQoZXhlYywgMSkp
KQogICAgICAgICBpbXBsKCktPmFkZEV2ZW50TGlzdGVuZXIoYXJncy5hdChleGVjLCAwKS0+dG9T
dHJpbmcoZXhlYyksIGxpc3RlbmVyLnJlbGVhc2UoKSwgYXJncy5hdChleGVjLCAyKS0+dG9Cb29s
ZWFuKGV4ZWMpKTsKIAogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtNTAsMTEgKzUwLDEx
IEBAIEpTVmFsdWUqIEpTU1ZHRWxlbWVudEluc3RhbmNlOjphZGRFdmVudEwKIAogSlNWYWx1ZSog
SlNTVkdFbGVtZW50SW5zdGFuY2U6OnJlbW92ZUV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEZyYW1lKiBmcmFtZSA9IGltcGwoKS0+YXNz
b2NpYXRlZEZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKKyAgICBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7CisgICAgaWYgKCFnbG9iYWxPYmplY3QpCiAgICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwogCi0gICAgaWYgKEpTRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIgPSB0b0pTRE9N
V2luZG93KGZyYW1lKS0+ZmluZEpTRXZlbnRMaXN0ZW5lcihhcmdzLmF0KGV4ZWMsIDEpKSkKKyAg
ICBpZiAoSlNFdmVudExpc3RlbmVyKiBsaXN0ZW5lciA9IGdsb2JhbE9iamVjdC0+ZmluZEpTRXZl
bnRMaXN0ZW5lcihhcmdzLmF0KGV4ZWMsIDEpKSkKICAgICAgICAgaW1wbCgpLT5yZW1vdmVFdmVu
dExpc3RlbmVyKGFyZ3MuYXQoZXhlYywgMCktPnRvU3RyaW5nKGV4ZWMpLCBsaXN0ZW5lciwgYXJn
cy5hdChleGVjLCAyKS0+dG9Cb29sZWFuKGV4ZWMpKTsKIAogICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0
b20uY3BwCShyZXZpc2lvbiAzODAzMikKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRw
UmVxdWVzdEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4MywxMCArMTgzLDEwIEBAIEpT
VmFsdWUqIEpTWE1MSHR0cFJlcXVlc3Q6Om92ZXJyaWRlTWltZVQKIAogSlNWYWx1ZSogSlNYTUxI
dHRwUmVxdWVzdDo6YWRkRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xp
c3QmIGFyZ3MpCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gaW1wbCgpLT5hc3NvY2lhdGVkRnJhbWUo
KTsKLSAgICBpZiAoIWZyYW1lKQorICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qg
PSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsK
KyAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0g
ICAgUmVmUHRyPEpTVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyPiBsaXN0ZW5lciA9IHRvSlNET01X
aW5kb3coZnJhbWUpLT5maW5kT3JDcmVhdGVKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lcihleGVj
LCBhcmdzLmF0KGV4ZWMsIDEpKTsKKyAgICBSZWZQdHI8SlNVbnByb3RlY3RlZEV2ZW50TGlzdGVu
ZXI+IGxpc3RlbmVyID0gZ2xvYmFsT2JqZWN0LT5maW5kT3JDcmVhdGVKU1VucHJvdGVjdGVkRXZl
bnRMaXN0ZW5lcihleGVjLCBhcmdzLmF0KGV4ZWMsIDEpKTsKICAgICBpZiAoIWxpc3RlbmVyKQog
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICBpbXBsKCktPmFkZEV2ZW50TGlzdGVu
ZXIoYXJncy5hdChleGVjLCAwKS0+dG9TdHJpbmcoZXhlYyksIGxpc3RlbmVyLnJlbGVhc2UoKSwg
YXJncy5hdChleGVjLCAyKS0+dG9Cb29sZWFuKGV4ZWMpKTsKQEAgLTE5NSwxMCArMTk1LDEwIEBA
IEpTVmFsdWUqIEpTWE1MSHR0cFJlcXVlc3Q6OmFkZEV2ZW50TGlzdGUKIAogSlNWYWx1ZSogSlNY
TUxIdHRwUmVxdWVzdDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0
IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gaW1wbCgpLT5hc3NvY2lhdGVk
RnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQorICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKKyAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Ci0gICAgSlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXIqIGxpc3RlbmVyID0gdG9KU0RPTVdp
bmRvdyhmcmFtZSktPmZpbmRKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lcihleGVjLCBhcmdzLmF0
KGV4ZWMsIDEpKTsKKyAgICBKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lciogbGlzdGVuZXIgPSBn
bG9iYWxPYmplY3QtPmZpbmRKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5lcihleGVjLCBhcmdzLmF0
KGV4ZWMsIDEpKTsKICAgICBpZiAoIWxpc3RlbmVyKQogICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKICAgICBpbXBsKCktPnJlbW92ZUV2ZW50TGlzdGVuZXIoYXJncy5hdChleGVjLCAwKS0+
dG9TdHJpbmcoZXhlYyksIGxpc3RlbmVyLCBhcmdzLmF0KGV4ZWMsIDIpLT50b0Jvb2xlYW4oZXhl
YykpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVl
c3RVcGxvYWRDdXN0b20uY3BwCShyZXZpc2lvbiAzODAzMikKKysrIFdlYkNvcmUvYmluZGluZ3Mv
anMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc5
LDEwICs3OSwxMCBAQCB2b2lkIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQ6Om1hcmsoKQogCiBKU1Zh
bHVlKiBKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkOjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBpbXBsKCkt
PmFzc29jaWF0ZWRGcmFtZSgpOwotICAgIGlmICghZnJhbWUpCisgICAgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoaW1wbCgpLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCkpOworICAgIGlmICghZ2xvYmFsT2JqZWN0KQogICAgICAgICByZXR1cm4g
anNVbmRlZmluZWQoKTsKLSAgICBSZWZQdHI8SlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXI+IGxp
c3RlbmVyID0gdG9KU0RPTVdpbmRvdyhmcmFtZSktPmZpbmRPckNyZWF0ZUpTVW5wcm90ZWN0ZWRF
dmVudExpc3RlbmVyKGV4ZWMsIGFyZ3MuYXQoZXhlYywgMSkpOworICAgIFJlZlB0cjxKU1VucHJv
dGVjdGVkRXZlbnRMaXN0ZW5lcj4gbGlzdGVuZXIgPSBnbG9iYWxPYmplY3QtPmZpbmRPckNyZWF0
ZUpTVW5wcm90ZWN0ZWRFdmVudExpc3RlbmVyKGV4ZWMsIGFyZ3MuYXQoZXhlYywgMSkpOwogICAg
IGlmICghbGlzdGVuZXIpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogICAgIGltcGwo
KS0+YWRkRXZlbnRMaXN0ZW5lcihhcmdzLmF0KGV4ZWMsIDApLT50b1N0cmluZyhleGVjKSwgbGlz
dGVuZXIucmVsZWFzZSgpLCBhcmdzLmF0KGV4ZWMsIDIpLT50b0Jvb2xlYW4oZXhlYykpOwpAQCAt
OTEsMTAgKzkxLDEwIEBAIEpTVmFsdWUqIEpTWE1MSHR0cFJlcXVlc3RVcGxvYWQ6OmFkZEV2ZW4K
IAogSlNWYWx1ZSogSlNYTUxIdHRwUmVxdWVzdFVwbG9hZDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihF
eGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgRnJhbWUqIGZyYW1l
ID0gaW1wbCgpLT5hc3NvY2lhdGVkRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQorICAgIEpTRE9N
R2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKyAgICBpZiAoIWdsb2JhbE9iamVjdCkKICAgICAg
ICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgSlNVbnByb3RlY3RlZEV2ZW50TGlzdGVuZXIq
IGxpc3RlbmVyID0gdG9KU0RPTVdpbmRvdyhmcmFtZSktPmZpbmRKU1VucHJvdGVjdGVkRXZlbnRM
aXN0ZW5lcihleGVjLCBhcmdzLmF0KGV4ZWMsIDEpKTsKKyAgICBKU1VucHJvdGVjdGVkRXZlbnRM
aXN0ZW5lciogbGlzdGVuZXIgPSBnbG9iYWxPYmplY3QtPmZpbmRKU1VucHJvdGVjdGVkRXZlbnRM
aXN0ZW5lcihleGVjLCBhcmdzLmF0KGV4ZWMsIDEpKTsKICAgICBpZiAoIWxpc3RlbmVyKQogICAg
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKICAgICBpbXBsKCktPnJlbW92ZUV2ZW50TGlzdGVu
ZXIoYXJncy5hdChleGVjLCAwKS0+dG9TdHJpbmcoZXhlYyksIGxpc3RlbmVyLCBhcmdzLmF0KGV4
ZWMsIDIpLT50b0Jvb2xlYW4oZXhlYykpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAzODAzMikKKysrIFdlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtpbmcgY29weSkKQEAgLTEyMTEsMTYg
KzEyMTEsMTUgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJGxpc3RlbmVyVHlwZSA9ICJKU1VucHJvdGVjdGVkRXZlbnRMaXN0ZW5l
ciI7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IikgewotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0RPTVdpbmRvdyog
d2luZG93ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3cqPih0aGlzT2JqZWN0KTtcbiIpOworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNET01XaW5kb3cqPih0
aGlzT2JqZWN0KTtcbiIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkZyYW1lLmgifSA9
IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsSW5jbHVkZXN7IkpTRE9N
V2luZG93LmgifSA9IDE7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHB1c2goQGlt
cGxDb250ZW50LCAiICAgIEZyYW1lKiBmcmFtZSA9IGltcC0+YXNzb2NpYXRlZEZyYW1lKCk7XG4i
KTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgaWYgKCFmcmFtZSlcbiIpOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkaW1w
bEluY2x1ZGVzeyJKU0RPTUdsb2JhbE9iamVjdC5oIn0gPSAxOworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXAtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgaWYgKCFnbG9iYWxPYmplY3QpXG4iKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIHJldHVybjtcbiIpOwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBK
U0RPTVdpbmRvdyogd2luZG93ID0gdG9KU0RPTVdpbmRvdyhmcmFtZSk7XG4iKTsKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaW1wLT5zZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZSh3aW5kb3ct
PmZpbmRPckNyZWF0ZSR7bGlzdGVuZXJUeXBlfShleGVjLCB2YWx1ZSwgdHJ1ZSkpO1xuIik7Cisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaW1wLT5z
ZXQkaW1wbFNldHRlckZ1bmN0aW9uTmFtZShnbG9iYWxPYmplY3QtPmZpbmRPckNyZWF0ZSR7bGlz
dGVuZXJUeXBlfShleGVjLCB2YWx1ZSwgdHJ1ZSkpO1xuIik7CiAgICAgICAgICAgICAgICAgICAg
ICAgICB9IGVsc2lmICgkYXR0cmlidXRlLT5zaWduYXR1cmUtPnR5cGUgPX4gL0NvbnN0cnVjdG9y
JC8pIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JUeXBlID0g
JGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICRjb25zdHJ1Y3RvclR5cGUgPX4gcy9Db25zdHJ1Y3RvciQvLzsKSW5kZXg6IFdlYkNvcmUvZG9t
L0V2ZW50VGFyZ2V0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRXZlbnRUYXJnZXQuaAko
cmV2aXNpb24gMzgwMzIpCisrKyBXZWJDb3JlL2RvbS9FdmVudFRhcmdldC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MSw5ICs0MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBFdmVu
dDsKICAgICBjbGFzcyBFdmVudExpc3RlbmVyOwogICAgIGNsYXNzIEV2ZW50VGFyZ2V0Tm9kZTsK
LSAgICBjbGFzcyBGcmFtZTsKICAgICBjbGFzcyBNZXNzYWdlUG9ydDsKICAgICBjbGFzcyBSZWdp
c3RlcmVkRXZlbnRMaXN0ZW5lcjsKKyAgICBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owog
ICAgIGNsYXNzIFNWR0VsZW1lbnRJbnN0YW5jZTsKICAgICBjbGFzcyBYTUxIdHRwUmVxdWVzdDsK
ICAgICBjbGFzcyBYTUxIdHRwUmVxdWVzdFVwbG9hZDsKQEAgLTY2LDcgKzY2LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnRJbnN0YW5jZSogdG9TVkdF
bGVtZW50SW5zdGFuY2UoKTsKICNlbmRpZgogCi0gICAgICAgIHZpcnR1YWwgRnJhbWUqIGFzc29j
aWF0ZWRGcmFtZSgpIGNvbnN0ID0gMDsKKyAgICAgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgPSAwOwogCiAgICAgICAgIHZp
cnR1YWwgdm9pZCBhZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21pY1N0cmluZyYgZXZlbnRUeXBl
LCBQYXNzUmVmUHRyPEV2ZW50TGlzdGVuZXI+LCBib29sIHVzZUNhcHR1cmUpID0gMDsKICAgICAg
ICAgdmlydHVhbCB2b2lkIHJlbW92ZUV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBl
dmVudFR5cGUsIEV2ZW50TGlzdGVuZXIqLCBib29sIHVzZUNhcHR1cmUpID0gMDsKSW5kZXg6IFdl
YkNvcmUvZG9tL0V2ZW50VGFyZ2V0Tm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20v
RXZlbnRUYXJnZXROb2RlLmNwcAkocmV2aXNpb24gMzgwMzIpCisrKyBXZWJDb3JlL2RvbS9FdmVu
dFRhcmdldE5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw5ICs3Nyw5IEBAIEV2ZW50VGFy
Z2V0Tm9kZTo6fkV2ZW50VGFyZ2V0Tm9kZSgpCiAgICAgbV9yZWdkTGlzdGVuZXJzID0gMDsKIH0K
IAotRnJhbWUqIEV2ZW50VGFyZ2V0Tm9kZTo6YXNzb2NpYXRlZEZyYW1lKCkgY29uc3QKK1Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIEV2ZW50VGFyZ2V0Tm9kZTo6c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGRvY3VtZW50KCktPmZyYW1lKCk7CisgICAgcmV0dXJu
IGRvY3VtZW50KCk7CiB9CiAKIHZvaWQgRXZlbnRUYXJnZXROb2RlOjppbnNlcnRlZEludG9Eb2N1
bWVudCgpCkluZGV4OiBXZWJDb3JlL2RvbS9FdmVudFRhcmdldE5vZGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2RvbS9FdmVudFRhcmdldE5vZGUuaAkocmV2aXNpb24gMzgwMzIpCisrKyBXZWJD
b3JlL2RvbS9FdmVudFRhcmdldE5vZGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzRXZlbnRUYXJnZXROb2RlKCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXROb2RlKiB0b05vZGUoKSB7IHJl
dHVybiB0aGlzOyB9CiAKLSAgICBGcmFtZSogYXNzb2NpYXRlZEZyYW1lKCkgY29uc3Q7CisgICAg
dmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
Y29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgUGFzc1JlZlB0cjxFdmVudExpc3RlbmVyPiwgYm9vbCB1c2VDYXB0
dXJlKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9taWNT
dHJpbmcmIGV2ZW50VHlwZSwgRXZlbnRMaXN0ZW5lciosIGJvb2wgdXNlQ2FwdHVyZSk7CkluZGV4
OiBXZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20v
TWVzc2FnZVBvcnQuY3BwCShyZXZpc2lvbiAzODAzMikKKysrIFdlYkNvcmUvZG9tL01lc3NhZ2VQ
b3J0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODEsMTMgKzgxLDYgQEAgTWVzc2FnZVBvcnQ6On5N
ZXNzYWdlUG9ydCgpCiAgICAgICAgIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dC0+ZGVzdHJveWVk
TWVzc2FnZVBvcnQodGhpcyk7CiB9CiAKLUZyYW1lKiBNZXNzYWdlUG9ydDo6YXNzb2NpYXRlZEZy
YW1lKCkgY29uc3QKLXsKLSAgICBpZiAoIW1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCB8fCAhbV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0LT5pc0RvY3VtZW50KCkpCi0gICAgICAgIHJldHVybiAwOwot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4
dCktPmZyYW1lKCk7Ci19Ci0KIFBhc3NSZWZQdHI8TWVzc2FnZVBvcnQ+IE1lc3NhZ2VQb3J0Ojpj
bG9uZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBuZXdPd25lciwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7CiAgICAgaWYgKCFtX2VudGFuZ2xlZFBvcnQpIHsKSW5kZXg6IFdlYkNvcmUvZG9tL01lc3Nh
Z2VQb3J0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaAkocmV2aXNp
b24gMzgwMzIpCisrKyBXZWJDb3JlL2RvbS9NZXNzYWdlUG9ydC5oCSh3b3JraW5nIGNvcHkpCkBA
IC02NywxMiArNjcsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lkIHVuZW50
YW5nbGUoKTsKIAogICAgICAgICB2b2lkIGNvbnRleHREZXN0cm95ZWQoKTsKLSAgICAgICAgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIHsgcmV0dXJuIG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dDsgfQorICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQ7IH0KIAogICAgICAgICB2aXJ0dWFsIE1lc3NhZ2VQb3J0KiB0b01l
c3NhZ2VQb3J0KCkgeyByZXR1cm4gdGhpczsgfQogCi0gICAgICAgIHZpcnR1YWwgRnJhbWUqIGFz
c29jaWF0ZWRGcmFtZSgpIGNvbnN0OwotCiAgICAgICAgIHZvaWQgcXVldWVDbG9zZUV2ZW50KCk7
CiAgICAgICAgIHZvaWQgZGlzcGF0Y2hNZXNzYWdlcygpOwogCkluZGV4OiBXZWJDb3JlL2RvbS9N
ZXNzYWdlUG9ydC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTWVzc2FnZVBvcnQuaWRs
CShyZXZpc2lvbiAzODAzMikKKysrIFdlYkNvcmUvZG9tL01lc3NhZ2VQb3J0LmlkbAkod29ya2lu
ZyBjb3B5KQpAQCAtNDIsOCArNDIsOCBAQCBtb2R1bGUgZXZlbnRzIHsKICAgICAgICAgdm9pZCBj
bG9zZSgpOwogCiAgICAgICAgIC8vIGV2ZW50IGhhbmRsZXIgYXR0cmlidXRlcwotICAgICAgICBh
dHRyaWJ1dGUgW0N1c3RvbV0gRXZlbnRMaXN0ZW5lciBvbm1lc3NhZ2U7Ci0gICAgICAgIGF0dHJp
YnV0ZSBbQ3VzdG9tXSBFdmVudExpc3RlbmVyIG9uY2xvc2U7CisgICAgICAgIGF0dHJpYnV0ZSBF
dmVudExpc3RlbmVyIG9ubWVzc2FnZTsKKyAgICAgICAgYXR0cmlidXRlIEV2ZW50TGlzdGVuZXIg
b25jbG9zZTsKIAogICAgICAgICAvLyBFdmVudFRhcmdldCBpbnRlcmZhY2UKICAgICAgICAgW0N1
c3RvbV0gdm9pZCBhZGRFdmVudExpc3RlbmVyKGluIERPTVN0cmluZyB0eXBlLCAKSW5kZXg6IFdl
YkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUuY3BwCShyZXZp
c2lvbiAzODAzMikKKysrIFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2Fj
aGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzUsNyArMTc1LDEyIEBAIHZvaWQgRE9NQXBwbGlj
YXRpb25DYWNoZTo6cmVtb3ZlKGNvbnN0IEsKICAgICAKICAgICBjYWNoZS0+cmVtb3ZlRHluYW1p
Y0VudHJ5KHVybCk7CiB9Ci0gICAgCisKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIERPTUFwcGxp
Y2F0aW9uQ2FjaGU6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVy
biBtX2ZyYW1lLT5kb2N1bWVudCgpOworfQorCiB2b2lkIERPTUFwcGxpY2F0aW9uQ2FjaGU6OmFk
ZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8
RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0ZW5lciwgYm9vbCkKIHsKICAgICBFdmVudExpc3RlbmVy
c01hcDo6aXRlcmF0b3IgaXRlciA9IG1fZXZlbnRMaXN0ZW5lcnMuZmluZChldmVudFR5cGUuaW1w
bCgpKTsKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2FwcGNhY2hlL0RPTUFwcGxpY2F0aW9uQ2FjaGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9hcHBjYWNoZS9ET01BcHBsaWNhdGlvbkNh
Y2hlLmgJKHJldmlzaW9uIDM4MDMyKQorKysgV2ViQ29yZS9sb2FkZXIvYXBwY2FjaGUvRE9NQXBw
bGljYXRpb25DYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldE9uY2FjaGVkKFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0
ZW5lcikgeyBtX29uQ2FjaGVkTGlzdGVuZXIgPSBldmVudExpc3RlbmVyOyB9CiAgICAgRXZlbnRM
aXN0ZW5lciogb25jYWNoZWQoKSBjb25zdCB7IHJldHVybiBtX29uQ2FjaGVkTGlzdGVuZXIuZ2V0
KCk7IH0KIAotICAgIEZyYW1lKiBhc3NvY2lhdGVkRnJhbWUoKSBjb25zdCB7IHJldHVybiBtX2Zy
YW1lOyB9CisgICAgdmlydHVhbCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3Q7CiAgICAgRE9NQXBwbGljYXRpb25DYWNoZSogdG9ET01BcHBsaWNh
dGlvbkNhY2hlKCkgeyByZXR1cm4gdGhpczsgfQogCiAgICAgdm9pZCBjYWxsQ2hlY2tpbmdMaXN0
ZW5lcigpOwpJbmRleDogV2ViQ29yZS9zdmcvU1ZHRWxlbWVudEluc3RhbmNlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdFbGVtZW50SW5zdGFuY2UuY3BwCShyZXZpc2lvbiAzODAz
MikKKysrIFdlYkNvcmUvc3ZnL1NWR0VsZW1lbnRJbnN0YW5jZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzMCwxMCArMTMwLDEwIEBAIHZvaWQgU1ZHRWxlbWVudEluc3RhbmNlOjpzZXROZWVkc1Vw
ZGF0ZSgKICAgICAgICAgY29ycmVzcG9uZGluZ1VzZUVsZW1lbnQoKS0+c2V0Q2hhbmdlZCgpOwog
fQogCi1GcmFtZSogU1ZHRWxlbWVudEluc3RhbmNlOjphc3NvY2lhdGVkRnJhbWUoKSBjb25zdAor
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCogU1ZHRWxlbWVudEluc3RhbmNlOjpzY3JpcHRFeGVjdXRp
b25Db250ZXh0KCkgY29uc3QKIHsKICAgICBpZiAoU1ZHRWxlbWVudCogZWxlbWVudCA9IGNvcnJl
c3BvbmRpbmdFbGVtZW50KCkpCi0gICAgICAgIHJldHVybiBlbGVtZW50LT5hc3NvY2lhdGVkRnJh
bWUoKTsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsK
ICAgICByZXR1cm4gMDsKIH0KIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRWxlbWVudEluc3RhbmNl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRWxlbWVudEluc3RhbmNlLmgJKHJldmlz
aW9uIDM4MDMyKQorKysgV2ViQ29yZS9zdmcvU1ZHRWxlbWVudEluc3RhbmNlLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTUzLDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29s
IG5lZWRzVXBkYXRlKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc1VwZGF0ZTsgfQogICAgICAgICB2
b2lkIHNldE5lZWRzVXBkYXRlKGJvb2wpOwogCi0gICAgICAgIHZpcnR1YWwgRnJhbWUqIGFzc29j
aWF0ZWRGcmFtZSgpIGNvbnN0OworICAgICAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIEV2
ZW50VGFyZ2V0Tm9kZSogdG9Ob2RlKCkgeyByZXR1cm4gc2hhZG93VHJlZUVsZW1lbnQoKTsgfQog
ICAgICAgICB2aXJ0dWFsIFNWR0VsZW1lbnRJbnN0YW5jZSogdG9TVkdFbGVtZW50SW5zdGFuY2Uo
KSB7IHJldHVybiB0aGlzOyB9CkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCShyZXZpc2lvbiAz
ODAzMikKKysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTk1LDEzICsxOTUsNiBAQCBEb2N1bWVudCogWE1MSHR0cFJlcXVlc3Q6OmRvY3VtZW50KCkg
Y29uCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PERvY3VtZW50Kj4oc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpKTsKIH0KIAotRnJhbWUqIFhNTEh0dHBSZXF1ZXN0Ojphc3NvY2lhdGVkRnJhbWUoKSBj
b25zdAotewotICAgIGlmICghZG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIGRvY3VtZW50KCktPmZyYW1lKCk7Ci19Ci0KIFhNTEh0dHBSZXF1ZXN0OjpTdGF0ZSBYTUxI
dHRwUmVxdWVzdDo6cmVhZHlTdGF0ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc3RhdGU7CkBA
IC0xMzE4LDQgKzEzMTEsOSBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0Ojpjb250ZXh0RGVzdHJveWVk
KCkKICAgICBpbnRlcm5hbEFib3J0KCk7CiB9CiAKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIFhN
TEh0dHBSZXF1ZXN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUgCkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmgJKHJldmlzaW9uIDM4MDMy
KQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuaAkod29ya2luZyBjb3B5KQpAQCAtNTAs
MTEgKzUwLDExIEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgWE1MSHR0cFJlcXVlc3QqIHRvWE1M
SHR0cFJlcXVlc3QoKSB7IHJldHVybiB0aGlzOyB9CiAKLSAgICBGcmFtZSogYXNzb2NpYXRlZEZy
YW1lKCkgY29uc3Q7Ci0KICAgICB2aXJ0dWFsIHZvaWQgY29udGV4dERlc3Ryb3llZCgpOwogICAg
IHZpcnR1YWwgdm9pZCBzdG9wKCk7CiAKKyAgICB2aXJ0dWFsIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKKwogICAgIFN0cmluZyBzdGF0dXNU
ZXh0KEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKICAgICBpbnQgc3RhdHVzKEV4Y2VwdGlvbkNvZGUm
KSBjb25zdDsKICAgICBTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CkluZGV4OiBXZWJDb3JlL3ht
bC9YTUxIdHRwUmVxdWVzdFVwbG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1M
SHR0cFJlcXVlc3RVcGxvYWQuY3BwCShyZXZpc2lvbiAzODAzMikKKysrIFdlYkNvcmUveG1sL1hN
TEh0dHBSZXF1ZXN0VXBsb2FkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTIgKzQ0LDEyIEBA
IFhNTEh0dHBSZXF1ZXN0VXBsb2FkOjpYTUxIdHRwUmVxdWVzdFVwbG8KIHsKIH0KIAotRnJhbWUq
IFhNTEh0dHBSZXF1ZXN0VXBsb2FkOjphc3NvY2lhdGVkRnJhbWUoKSBjb25zdAorU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCogWE1MSHR0cFJlcXVlc3RVcGxvYWQ6OnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSBjb25zdAogewogICAgIFhNTEh0dHBSZXF1ZXN0KiB4bWxIdHRwUmVxdWVzdCA9IGFzc29j
aWF0ZWRYTUxIdHRwUmVxdWVzdCgpOwogICAgIGlmICgheG1sSHR0cFJlcXVlc3QpCiAgICAgICAg
IHJldHVybiAwOwotICAgIHJldHVybiB4bWxIdHRwUmVxdWVzdC0+YXNzb2NpYXRlZEZyYW1lKCk7
CisgICAgcmV0dXJuIHhtbEh0dHBSZXF1ZXN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiB9
CiAKIHZvaWQgWE1MSHR0cFJlcXVlc3RVcGxvYWQ6OmFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBldmVudFR5cGUsIFBhc3NSZWZQdHI8RXZlbnRMaXN0ZW5lcj4gZXZlbnRMaXN0
ZW5lciwgYm9vbCkKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0VXBsb2FkLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3RVcGxvYWQuaAkocmV2aXNpb24g
MzgwMzIpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdFVwbG9hZC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw3ICszNyw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFzcyBB
dG9taWNTdHJpbmdJbXBsOwotICAgIGNsYXNzIEZyYW1lOworICAgIGNsYXNzIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQ7CiAgICAgY2xhc3MgWE1MSHR0cFJlcXVlc3Q7CiAKICAgICBjbGFzcyBYTUxI
dHRwUmVxdWVzdFVwbG9hZCA6IHB1YmxpYyBSZWZDb3VudGVkPFhNTEh0dHBSZXF1ZXN0VXBsb2Fk
PiwgcHVibGljIEV2ZW50VGFyZ2V0IHsKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBYTUxIdHRwUmVxdWVzdCogYXNzb2NpYXRlZFhNTEh0dHBSZXF1ZXN0KCkg
Y29uc3QgeyByZXR1cm4gbV94bWxIdHRwUmVxdWVzdDsgfQogICAgICAgICB2b2lkIGRpc2Nvbm5l
Y3RYTUxIdHRwUmVxdWVzdCgpIHsgbV94bWxIdHRwUmVxdWVzdCA9IDA7IH0KIAotICAgICAgICBG
cmFtZSogYXNzb2NpYXRlZEZyYW1lKCkgY29uc3Q7CisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdDsKIAogICAgICAgICB2b2lkIGRp
c3BhdGNoQWJvcnRFdmVudCgpOwogICAgICAgICB2b2lkIGRpc3BhdGNoRXJyb3JFdmVudCgpOwo=
</data>
<flag name="review"
          id="11349"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>