<?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>30318</bug_id>
          
          <creation_ts>2009-10-12 17:56:16 -0700</creation_ts>
          <short_desc>ScriptExecutionContext is not anymore needed to create an EventListener - remove old code.</short_desc>
          <delta_ts>2009-10-13 18:17:06 -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 JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</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="Dmitry Titov">dimich</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>154219</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-10-12 17:56:16 -0700</bug_when>
    <thetext>Change http://trac.webkit.org/changeset/48884 removed the need to have ScriptExecutionContext to create an EventListener - rather it is pulled from EventTarget at the moment of event handling.
It seems we can remove the code in custom add/removeEventListener methods that retrieves the context which is no longer used. The potential change in behavior here is that in case the EventTarget has null context it wasn&apos;t adding a listener and now it would, which could later be invoked if the EventTarget will gain context, so it could change the behavior of some page, theoretically. But I don&apos;t think this scenario ever realizes. For example, it&apos;s impossible to create a Node w/o a pointer to Document and while a Node may change documents during its life, there is no code that can set the Node::m_document to null.

I see the original change did not remove this code, is there a reason to keep it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154222</commentid>
    <comment_count>1</comment_count>
      <attachid>41076</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-10-12 18:00:11 -0700</bug_when>
    <thetext>Created attachment 41076
Proposed fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154238</commentid>
    <comment_count>2</comment_count>
      <attachid>41076</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-12 19:15:16 -0700</bug_when>
    <thetext>Comment on attachment 41076
Proposed fix.

&gt; I see the original change did not remove this code, is there a reason to keep
&gt; it?

I just wanted to keep this potential behavior change separate form other changes in that patch. Thanks for following up on this!

&gt; it&apos;s impossible to create a Node w/o a pointer to Document

That&apos;s not entirely accurate; see DOMImplementation::createDocumentType() for the one and only case when this happens. Maybe you could test for that before landing (and compare to Firefox), but it&apos;s unlikely that there is any harm in such a change.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154500</commentid>
    <comment_count>3</comment_count>
      <attachid>41141</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-10-13 17:29:09 -0700</bug_when>
    <thetext>Created attachment 41141
Updated, with test

Verified that FF also allows to set an event listener on documentType - and will fire events on it once it is inserted into a live document tree.
Added test that verifies that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154503</commentid>
    <comment_count>4</comment_count>
      <attachid>41141</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-10-13 17:31:23 -0700</bug_when>
    <thetext>Comment on attachment 41141
Updated, with test

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>154508</commentid>
    <comment_count>5</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-10-13 18:17:06 -0700</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/49539</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41076</attachid>
            <date>2009-10-12 18:00:11 -0700</date>
            <delta_ts>2009-10-13 17:29:46 -0700</delta_ts>
            <desc>Proposed fix.</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>12805</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MmRmMmExZC4uNWEyMDgxMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MiBAQAorMjAwOS0xMC0xMiAgRG1pdHJ5IFRpdG92
ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MzAzMTgKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBpcyBub3QgYW55bW9yZSBuZWVk
ZWQgdG8gY3JlYXRlIGFuIEV2ZW50TGlzdGVuZXIgLSByZW1vdmUgb2xkIGNvZGUuCisgICAgICAg
IEl0J3MgYSBmb2xsb3d1cCB0byByNDg4ODQuIEl0IHJlbW92ZWQgdGhlIG5lZWQgdG8gcGFzcyB0
aGUgU2NyaXRwRXhlY3V0aW9uQ29udGV4dAorICAgICAgICBpbnRvIEV2ZW50TGlzdGVuZXIgY29u
c3RydWN0b3IgYnV0IGRpZCBub3QgcmVtb3ZlIHRoZSBjb2RlIHB1bGxpbmcgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dC4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoZXJlIGlzIG5vIHNjZW5hcmlv
IHRyaWdnZXJpbmcgdGhlIGNvbmRpdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQWJz
dHJhY3RXb3JrZXJDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNBYnN0cmFjdFdvcmtl
cjo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpKU0Fic3RyYWN0V29ya2Vy
OjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUFwcGxp
Y2F0aW9uQ2FjaGVDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01BcHBsaWNhdGlv
bkNhY2hlOjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NQXBwbGlj
YXRpb25DYWNoZTo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU05v
dGlmaWNhdGlvbjo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjopOgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTRXZlbnRTb3VyY2VDdXN0b20uY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SlNFdmVudFNvdXJjZTo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3Jl
OjpKU0V2ZW50U291cmNlOjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTWVzc2Fn
ZVBvcnQ6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlUG9y
dDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNOb2RlQ3Vz
dG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTTm9kZTo6YWRkRXZlbnRMaXN0ZW5lcik6Cisg
ICAgICAgIChXZWJDb3JlOjpKU05vZGU6OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTU1ZHRWxlbWVudEluc3RhbmNlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTU1ZHRWxlbWVudEluc3RhbmNlOjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OkpTU1ZHRWxlbWVudEluc3RhbmNlOjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkpTWE1MSHR0cFJlcXVlc3Q6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAo
V2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkOjphZGRFdmVudExpc3RlbmVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTWE1MSHR0cFJlcXVlc3RVcGxvYWQ6OnJlbW92ZUV2ZW50TGlzdGVu
ZXIpOgorCiAyMDA5LTEwLTEyICBDaHJpcyBNYXJyaW4gIDxjbWFycmluQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBYnN0cmFjdFdvcmtlckN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQWJzdHJhY3RXb3JrZXJDdXN0b20uY3BwCmluZGV4IDk0MTFhZDguLmE2Y2JkOTEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBYnN0cmFjdFdvcmtlckN1c3RvbS5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fic3RyYWN0V29ya2VyQ3VzdG9tLmNwcApAQCAtNDYs
MTAgKzQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBKU1ZhbHVlIEpTQWJzdHJhY3RXb3Jr
ZXI6OmFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdz
KQogewotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFs
T2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBpZiAoIWdsb2Jh
bE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KICAgICBKU1ZhbHVlIGxp
c3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCiAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtNjAsMTAgKzU2LDYgQEAgSlNWYWx1ZSBKU0Fi
c3RyYWN0V29ya2VyOjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJn
TGlzdCYgYXJncykKIAogSlNWYWx1ZSBKU0Fic3RyYWN0V29ya2VyOjpyZW1vdmVFdmVudExpc3Rl
bmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXBsKCktPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotCiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGFyZ3MuYXQo
MSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BcHBsaWNhdGlv
bkNhY2hlQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BcHBsaWNhdGlvbkNh
Y2hlQ3VzdG9tLmNwcAppbmRleCA0OWVmNWUzLi44NjM0NTg5IDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQXBwbGljYXRpb25DYWNoZUN1c3RvbS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGVDdXN0b20uY3BwCkBAIC04NywxMCAr
ODcsNiBAQCBKU1ZhbHVlIEpTRE9NQXBwbGljYXRpb25DYWNoZTo6cmVtb3ZlKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIAogSlNWYWx1ZSBKU0RPTUFwcGxpY2F0aW9uQ2Fj
aGU6OmFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdz
KQogewotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFs
T2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBpZiAoIWdsb2Jh
bE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KICAgICBKU1ZhbHVlIGxp
c3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCiAgICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMTAxLDEwICs5Nyw2IEBAIEpTVmFsdWUgSlNE
T01BcHBsaWNhdGlvbkNhY2hlOjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgQXJnTGlzdCYKIAogSlNWYWx1ZSBKU0RPTUFwcGxpY2F0aW9uQ2FjaGU6OnJlbW92ZUV2ZW50
TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwo
KS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAg
ICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gYXJn
cy5hdCgxKTsKICAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rlc2t0b3BO
b3RpZmljYXRpb25zQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEZXNrdG9wTm90
aWZpY2F0aW9uc0N1c3RvbS5jcHAKaW5kZXggNDkzZDdiZC4uOWJmZjYzNyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rlc2t0b3BOb3RpZmljYXRpb25zQ3VzdG9tLmNwcAorKysg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVza3RvcE5vdGlmaWNhdGlvbnNDdXN0b20uY3BwCkBA
IC02MywyOSArNjMsMjEgQEAgSlNWYWx1ZSBKU05vdGlmaWNhdGlvbkNlbnRlcjo6cmVxdWVzdFBl
cm1pc3Npb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JgogCiBKU1ZhbHVlIEpTTm90
aWZpY2F0aW9uOjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlz
dCYgYXJncykKIHsKLSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RP
TUdsb2JhbE9iamVjdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgaWYg
KCFnbG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCiAgICAgSlNW
YWx1ZSBsaXN0ZW5lciA9IGFyZ3MuYXQoMSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgp
KQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAotICAgIGltcGwoKS0+YWRkRXZlbnRM
aXN0ZW5lcihhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpLCBKU0V2ZW50TGlzdGVuZXI6OmNyZWF0
ZShhc09iamVjdChsaXN0ZW5lcikpLCBnbG9iYWxPYmplY3QsIGZhbHNlKSwgYXJncy5hdCgyKS50
b0Jvb2xlYW4oZXhlYykpOworICAgIGltcGwoKS0+YWRkRXZlbnRMaXN0ZW5lcihhcmdzLmF0KDAp
LnRvU3RyaW5nKGV4ZWMpLCBKU0V2ZW50TGlzdGVuZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5l
cikpLCBmYWxzZSksIGFyZ3MuYXQoMikudG9Cb29sZWFuKGV4ZWMpKTsKICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKIH0KIAogSlNWYWx1ZSBKU05vdGlmaWNhdGlvbjo6cmVtb3ZlRXZlbnRMaXN0
ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoaW1wbCgpLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQogICAgIEpTVmFsdWUgbGlzdGVuZXIgPSBhcmdzLmF0
KDEpOwogICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CiAKLSAgICBpbXBsKCktPnJlbW92ZUV2ZW50TGlzdGVuZXIoYXJncy5hdCgwKS50
b1N0cmluZyhleGVjKSwgSlNFdmVudExpc3RlbmVyOjpjcmVhdGUoYXNPYmplY3QobGlzdGVuZXIp
LCBnbG9iYWxPYmplY3QsIGZhbHNlKS5nZXQoKSwgYXJncy5hdCgyKS50b0Jvb2xlYW4oZXhlYykp
OworICAgIGltcGwoKS0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihhcmdzLmF0KDApLnRvU3RyaW5nKGV4
ZWMpLCBKU0V2ZW50TGlzdGVuZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lciksIGZhbHNlKS5n
ZXQoKSwgYXJncy5hdCgyKS50b0Jvb2xlYW4oZXhlYykpOwogICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRTb3VyY2VD
dXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2ZW50U291cmNlQ3VzdG9tLmNwcApp
bmRleCA0MDRiZjExLi4wMGRmZTEyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RXZlbnRTb3VyY2VDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFdmVudFNv
dXJjZUN1c3RvbS5jcHAKQEAgLTQ1LDEwICs0NSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
SlNWYWx1ZSBKU0V2ZW50U291cmNlOjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwotCiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGFyZ3MuYXQoMSk7CiAgICAgaWYgKCFsaXN0ZW5l
ci5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTU5LDEwICs1
NSw2IEBAIEpTVmFsdWUgSlNFdmVudFNvdXJjZTo6YWRkRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAKIEpTVmFsdWUgSlNFdmVudFNvdXJjZTo6cmVt
b3ZlRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7
Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmpl
Y3QoaW1wbCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGlmICghZ2xvYmFsT2Jq
ZWN0KQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQogICAgIEpTVmFsdWUgbGlzdGVu
ZXIgPSBhcmdzLmF0KDEpOwogICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKICAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVzc2FnZVBvcnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VQb3J0
Q3VzdG9tLmNwcAppbmRleCAyMTBjOTNlLi5hMGE5MmJlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKQEAgLTU3LDEwICs1Nyw2IEBAIHZvaWQgSlNNZXNz
YWdlUG9ydDo6bWFya0NoaWxkcmVuKE1hcmtTdGFjayYgbWFya1N0YWNrKQogCiBKU1ZhbHVlIEpT
TWVzc2FnZVBvcnQ6OmFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdM
aXN0JiBhcmdzKQogewotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pT
RE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBp
ZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KICAgICBK
U1ZhbHVlIGxpc3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0
KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtNzEsMTAgKzY3LDYgQEAgSlNW
YWx1ZSBKU01lc3NhZ2VQb3J0OjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29u
c3QgQXJnTGlzdCYgYXJncykKIAogSlNWYWx1ZSBKU01lc3NhZ2VQb3J0OjpyZW1vdmVFdmVudExp
c3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXBsKCkt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGFyZ3Mu
YXQoMSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9t
LmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcAppbmRleCA1MmYyMWU3
Li40ZTdkNjIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVDdXN0b20uY3BwCkBAIC0xMTAsMTQg
KzExMCw2IEBAIEpTVmFsdWUgSlNOb2RlOjphcHBlbmRDaGlsZChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IEFyZ0xpc3QmIGFyZ3MpCiAKIEpTVmFsdWUgSlNOb2RlOjphZGRFdmVudExpc3RlbmVyKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBEb2N1bWVudCogZG9j
dW1lbnQgPSBpbXBsKCktPmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAg
cmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIAotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGRvY3VtZW50KTsKLSAgICBpZiAoIWds
b2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KICAgICBKU1ZhbHVl
IGxpc3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMTI4LDE0ICsxMjAsNiBAQCBKU1ZhbHVl
IEpTTm9kZTo6YWRkRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3Qm
IGFyZ3MpCiAKIEpTVmFsdWUgSlNOb2RlOjpyZW1vdmVFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBp
bXBsKCktPmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0KLSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9K
U0RPTUdsb2JhbE9iamVjdChkb2N1bWVudCk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAg
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGFyZ3Mu
YXQoMSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4ganNV
bmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTVkdFbGVtZW50
SW5zdGFuY2VDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0
YW5jZUN1c3RvbS5jcHAKaW5kZXggNTcxZTMwMi4uZmQzNzQyZCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAKKysrIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAKQEAgLTUwLDEwICs1
MCw2IEBAIHZvaWQgSlNTVkdFbGVtZW50SW5zdGFuY2U6Om1hcmtDaGlsZHJlbihNYXJrU3RhY2sm
IG1hcmtTdGFjaykKIAogSlNWYWx1ZSBKU1NWR0VsZW1lbnRJbnN0YW5jZTo6YWRkRXZlbnRMaXN0
ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01HbG9iYWxPYmplY3QoaW1wbCgpLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAg
ICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQogICAgIEpTVmFsdWUgbGlzdGVuZXIgPSBhcmdzLmF0
KDEpOwogICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7CkBAIC02NCwxMCArNjAsNiBAQCBKU1ZhbHVlIEpTU1ZHRWxlbWVudEluc3RhbmNl
OjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYQogCiBK
U1ZhbHVlIEpTU1ZHRWxlbWVudEluc3RhbmNlOjpyZW1vdmVFdmVudExpc3RlbmVyKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotCiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGFyZ3MuYXQoMSk7CiAgICAgaWYg
KCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCmluZGV4IDRi
NDRkYjIuLjdkM2Y4YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRw
UmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0Q3VzdG9tLmNwcApAQCAtMTUyLDEwICsxNTIsNiBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVl
c3Q6Om92ZXJyaWRlTWltZVR5cGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdz
KQogCiBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OmFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5k
ZWZpbmVkKCk7Ci0KICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBpZiAo
IWxpc3RlbmVyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAt
MTY2LDEwICsxNjIsNiBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OmFkZEV2ZW50TGlzdGVu
ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogCiBKU1ZhbHVlIEpTWE1M
SHR0cFJlcXVlc3Q6OnJlbW92ZUV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBB
cmdMaXN0JiBhcmdzKQogewotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0
b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAg
ICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KICAg
ICBKU1ZhbHVlIGxpc3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBpZiAoIWxpc3RlbmVyLmlzT2Jq
ZWN0KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAKaW5kZXggZGFiMGEz
ZS4uMjc1ZDFmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1
ZXN0VXBsb2FkQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJl
cXVlc3RVcGxvYWRDdXN0b20uY3BwCkBAIC01NiwxMCArNTYsNiBAQCB2b2lkIEpTWE1MSHR0cFJl
cXVlc3RVcGxvYWQ6Om1hcmtDaGlsZHJlbihNYXJrU3RhY2smIG1hcmtTdGFjaykKIAogSlNWYWx1
ZSBKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkOjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFs
T2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwotCiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGFyZ3MuYXQoMSk7CiAgICAgaWYgKCFsaXN0
ZW5lci5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTcwLDEw
ICs2Niw2IEBAIEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVzdFVwbG9hZDo6YWRkRXZlbnRMaXN0ZW5l
cihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmCiAKIEpTVmFsdWUgSlNYTUxIdHRwUmVx
dWVzdFVwbG9hZDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFy
Z0xpc3QmIGFyZ3MpCiB7Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRv
SlNET01HbG9iYWxPYmplY3QoaW1wbCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAg
IGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQogICAg
IEpTVmFsdWUgbGlzdGVuZXIgPSBhcmdzLmF0KDEpOwogICAgIGlmICghbGlzdGVuZXIuaXNPYmpl
Y3QoKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cg==
</data>
<flag name="review"
          id="22396"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>41141</attachid>
            <date>2009-10-13 17:29:09 -0700</date>
            <delta_ts>2009-10-13 17:31:23 -0700</delta_ts>
            <desc>Updated, with test</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>18397</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhZTM3ZWM5Li5lYmM0NzdmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMDktMTAt
MTMgIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMwMzE4CisgICAgICAgIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQgaXMgbm90IGFueW1vcmUgbmVlZGVkIHRvIGNyZWF0ZSBhbiBFdmVudExp
c3RlbmVyIC0gcmVtb3ZlIG9sZCBjb2RlLgorICAgICAgICBJdCdzIGEgZm9sbG93dXAgdG8gcjQ4
ODg0LiBJdCByZW1vdmVkIHRoZSBuZWVkIHRvIHBhc3MgdGhlIFNjcml0cEV4ZWN1dGlvbkNvbnRl
eHQKKyAgICAgICAgaW50byBFdmVudExpc3RlbmVyIGNvbnN0cnVjdG9yIGJ1dCBkaWQgbm90IHJl
bW92ZSB0aGUgY29kZSBwdWxsaW5nIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuCisKKyAgICAgICAg
VGVzdCBhZGRzIGV2ZW50IGxpc3RlbmVyIHRvIGEgRG9jdW1lbnRUeXBlIE5vZGUgd2hpY2ggaXMg
Y3JlYXRlZCB3aXRob3V0IGEgZG9jdW1lbnQKKyAgICAgICAgYW5kIHRoZW4gZGlzcGF0Y2hlcyB0
aGUgZXZlbnQgd2l0aCBhbmQgd2l0aG91dCBhdHRhY2hpbmcgYSBub2RlIHRvIHRoZSB0cmVlLiBF
dmVudAorICAgICAgICBzaG91bGQgZmlyZSB3aGVuIG5vZGUgaXMgYXR0YWNoZWQgdG8gdGhlIHRy
ZWUuCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9hZGQtZXZlbnQtd2l0aG91dC1kb2N1bWVudC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2FkZC1ldmVudC13aXRo
b3V0LWRvY3VtZW50Lmh0bWw6IEFkZGVkLgorCiAyMDA5LTEwLTEzICBNaWNoZWxhbmdlbG8gRGUg
U2ltb25lICA8bWljZGVzaW1AZ21haWwuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0g
QmFydGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hZGQtZXZlbnQtd2l0
aG91dC1kb2N1bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hZGQt
ZXZlbnQtd2l0aG91dC1kb2N1bWVudC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uOTY3MDQwNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2FkZC1ldmVudC13aXRob3V0LWRvY3VtZW50LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDkgQEAKK1RoZSB0ZXN0IHZlcmlmaWVzIHRoYXQgYWRkRXZlbnRMaXN0ZW5lciB3b3JrcyBv
biBFdmVudFRhcmdldHMgdGhhdCBkbyBub3QgaGF2ZSBTY3JpcHRFeGVjdXRpb25Db250ZXh0IGF0
IHRoZSBtb21lbnQgb2YgY2FsbC4gVGhlIGV2ZW50IGxpc3RlbmVyIHNob3VsZCBiZSBhZGRlZCwg
YW5kIGxhdGVyIGludm9rZWQgd2hlbiB0aGUgQ29udGV4dCBpcyBlc3RhYmxpc2hlZC4gVGhpcyBt
YXRjaGVzIGJlaGF2aW9yIG9mIEZGIDMuNQorCitUaGUgb25seSB3YXkgdG8gc2ltdWxhdGUgdGhp
cyBpcyB0byB1c2UgY3JlYXRlRG9jdW1lbnRUeXBlKCkgd2hpY2ggY3JlYXRlcyBhIE5vZGUgd2l0
aCBOVUxMIERvY3VtZW50LiBUaGVuIHdlIGluc2VydCBpdCBpbnRvIHRoZSB0cmVlIHNvIGl0IGdh
aW5zIGEgcG9pbnRlciB0byBEb2N1bWVudCBhbmQgZGlzcGF0Y2ggdGhlIGV2ZW50IHdoaWNoIHNo
b3VsZCBmaXJlLgorCitXZSB1c2UgbWFudWFsbHktY29uc3RydWN0ZWQgZXZlbnQgaW5zdGVhZCBq
dXN0IHdhdGNoaW5nIGZvciBET00gbXV0YXRpb24gZXZlbnQgb24gaW5zZXJ0IHNpbmNlIERPTSBt
dXRhdGlvbiBldmVudHMgYXJlIG5vdCBkaXNwYXRjaGVkIG9uIGRvY3R5cGUgZWxlbWVudC4KKwor
VGVzdCBwYXNzZXMgaWYgdGhlcmUgaXMgJ1BBU1MnIHRleHQgYmVsb3cuCisKK1BBU1MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2FkZC1ldmVudC13aXRob3V0LWRvY3VtZW50
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hZGQtZXZlbnQtd2l0aG91dC1kb2N1bWVu
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjkwNjdlNjYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9hZGQtZXZlbnQtd2l0aG91dC1k
b2N1bWVudC5odG1sCkBAIC0wLDAgKzEsMzYgQEAKKzxzY3JpcHQ+CitmdW5jdGlvbiBvbkNsaWNr
KCkgeworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2ciKS5pbm5lckhUTUwgPSAiUEFT
UyI7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCitmdW5jdGlvbiB0ZXN0
KCkgeworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgfQorCisgICAgdmFyIGRvY3R5cGUgPSBkb2N1bWVu
dC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudFR5cGUoCisgICAgICAgICdodG1sJywKKyAg
ICAgICAgJy0vL1czQy8vRFREIFhIVE1MIDEuMCBTdHJpY3QvL0VOJywKKyAgICAgICAgJ2h0dHA6
Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXN0cmljdC5kdGQnCisgICAgKTsKKwor
ICAgIHZhciBldnQgPSBkb2N1bWVudC5jcmVhdGVFdmVudCgiSFRNTEV2ZW50cyIpOworICAgIGV2
dC5pbml0RXZlbnQoImNsaWNrIiwgZmFsc2UsIGZhbHNlKTsKKworICAgIGRvY3R5cGUuYWRkRXZl
bnRMaXN0ZW5lcignY2xpY2snLCBvbkNsaWNrLCBmYWxzZSk7CisKKyAgICAvLyBEb2N0eXBlIG5v
ZGUgY2FuIG9ubHkgYmUgaW5zZXJ0ZWQgYmVmb3JlIDxodG1sPi4gCisgICAgZG9jdW1lbnQuaW5z
ZXJ0QmVmb3JlKGRvY3R5cGUsIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJodG1sIilb
MF0pOworICAgIGRvY3R5cGUuZGlzcGF0Y2hFdmVudChldnQpOworfQorPC9zY3JpcHQ+Cis8Ym9k
eSBvbmxvYWQ9InRlc3QoKSI+Cis8cD5UaGUgdGVzdCB2ZXJpZmllcyB0aGF0IGFkZEV2ZW50TGlz
dGVuZXIgd29ya3Mgb24gRXZlbnRUYXJnZXRzIHRoYXQgZG8gbm90IGhhdmUgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCBhdCB0aGUgbW9tZW50IG9mIGNhbGwuIFRoZSBldmVudCBsaXN0ZW5lciBzaG91
bGQgYmUgYWRkZWQsIGFuZCBsYXRlciBpbnZva2VkIHdoZW4gdGhlIENvbnRleHQgaXMgZXN0YWJs
aXNoZWQuIFRoaXMgbWF0Y2hlcyBiZWhhdmlvciBvZiBGRiAzLjU8L3A+Cis8cD5UaGUgb25seSB3
YXkgdG8gc2ltdWxhdGUgdGhpcyBpcyB0byB1c2UgY3JlYXRlRG9jdW1lbnRUeXBlKCkgd2hpY2gg
Y3JlYXRlcyBhIE5vZGUgd2l0aCBOVUxMIERvY3VtZW50LiBUaGVuIHdlIGluc2VydCBpdCBpbnRv
IHRoZSB0cmVlIHNvIGl0IGdhaW5zIGEgcG9pbnRlciB0byBEb2N1bWVudCBhbmQgZGlzcGF0Y2gg
dGhlIGV2ZW50IHdoaWNoIHNob3VsZCBmaXJlLjwvcD4KKzxwPldlIHVzZSBtYW51YWxseS1jb25z
dHJ1Y3RlZCBldmVudCBpbnN0ZWFkIGp1c3Qgd2F0Y2hpbmcgZm9yIERPTSBtdXRhdGlvbiBldmVu
dCBvbiBpbnNlcnQgc2luY2UgRE9NIG11dGF0aW9uIGV2ZW50cyBhcmUgbm90IGRpc3BhdGNoZWQg
b24gZG9jdHlwZSBlbGVtZW50LjwvcD4KKzxwPlRlc3QgcGFzc2VzIGlmIHRoZXJlIGlzICdQQVNT
JyB0ZXh0IGJlbG93LjwvcD4KKzxkaXYgaWQ9ImxvZyI+RkFJTDwvZGl2PgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNzgzOTYzMC4uMTRlYjY1YiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAwOS0xMC0x
MyAgRG1pdHJ5IFRpdG92ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzAzMTgKKyAgICAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCBpcyBu
b3QgYW55bW9yZSBuZWVkZWQgdG8gY3JlYXRlIGFuIEV2ZW50TGlzdGVuZXIgLSByZW1vdmUgb2xk
IGNvZGUuCisgICAgICAgIEl0J3MgYSBmb2xsb3d1cCB0byByNDg4ODQuIEl0IHJlbW92ZWQgdGhl
IG5lZWQgdG8gcGFzcyB0aGUgU2NyaXRwRXhlY3V0aW9uQ29udGV4dAorICAgICAgICBpbnRvIEV2
ZW50TGlzdGVuZXIgY29uc3RydWN0b3IgYnV0IGRpZCBub3QgcmVtb3ZlIHRoZSBjb2RlIHB1bGxp
bmcgU2NyaXB0RXhlY3V0aW9uQ29udGV4dC4KKworICAgICAgICBUZXN0czoKKyAgICAgICAgVGVz
dCBhZGRzIGV2ZW50IGxpc3RlbmVyIHRvIGEgRG9jdW1lbnRUeXBlIE5vZGUgd2hpY2ggaXMgY3Jl
YXRlZCB3aXRob3V0IGEgZG9jdW1lbnQKKyAgICAgICAgYW5kIHRoZW4gZGlzcGF0Y2hlcyB0aGUg
ZXZlbnQgd2l0aCBhbmQgd2l0aG91dCBhdHRhY2hpbmcgYSBub2RlIHRvIHRoZSB0cmVlLiBFdmVu
dAorICAgICAgICBzaG91bGQgZmlyZSB3aGVuIG5vZGUgaXMgYXR0YWNoZWQgdG8gdGhlIHRyZWUu
CisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9hZGQtZXZlbnQtd2l0aG91dC1kb2N1bWVudC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2FkZC1ldmVudC13aXRob3V0
LWRvY3VtZW50Lmh0bWw6IEFkZGVkLgorCisgICAgICAgIEFsbCBjYWhuZ2VzIGluIGZpbGVzIGJl
bG93IGFyZSB0aGUgc2FtZSAtIHJlbW92ZSB0aGUgY29kZSB0aGF0IGNhbGxzCisgICAgICAgIEV2
ZW50VGFyZ2V0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0IGFuZCBjaGVja3MgaXQgZm9yIE5VTEwu
CisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0Fic3RyYWN0V29ya2VyQ3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTQWJzdHJhY3RXb3JrZXI6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNBYnN0cmFjdFdvcmtlcjo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01BcHBsaWNhdGlvbkNhY2hlQ3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NQXBwbGljYXRpb25DYWNoZTo6YWRkRXZlbnRMaXN0ZW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTUFwcGxpY2F0aW9uQ2FjaGU6OnJlbW92ZUV2ZW50TGlz
dGVuZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRGVza3RvcE5vdGlmaWNhdGlvbnNDdXN0
b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNOb3RpZmljYXRpb246OmFkZEV2ZW50TGlzdGVu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V2ZW50
U291cmNlQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXZlbnRTb3VyY2U6OmFkZEV2
ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNFdmVudFNvdXJjZTo6cmVtb3ZlRXZl
bnRMaXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VQb3J0OjphZGRFdmVudExpc3RlbmVyKToK
KyAgICAgICAgKFdlYkNvcmU6OkpTTWVzc2FnZVBvcnQ6OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTm9kZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU05vZGU6OmFkZEV2ZW50TGlzdGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6SlNOb2RlOjpy
ZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJ
bnN0YW5jZUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR0VsZW1lbnRJbnN0YW5j
ZTo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpKU1NWR0VsZW1lbnRJbnN0
YW5jZTo6cmVtb3ZlRXZlbnRMaXN0ZW5lcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNYTUxI
dHRwUmVxdWVzdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1ZXN0
OjphZGRFdmVudExpc3RlbmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkpTWE1MSHR0cFJlcXVlc3Q6
OnJlbW92ZUV2ZW50TGlzdGVuZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJl
cXVlc3RVcGxvYWRDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVz
dFVwbG9hZDo6YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBS
ZXF1ZXN0VXBsb2FkOjpyZW1vdmVFdmVudExpc3RlbmVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9q
cy9KU1dlYlNvY2tldEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYlNvY2tldDo6
YWRkRXZlbnRMaXN0ZW5lcik6CisgICAgICAgIChXZWJDb3JlOjpKU1dlYlNvY2tldDo6cmVtb3Zl
RXZlbnRMaXN0ZW5lcik6CisKIDIwMDktMTAtMTMgIE1pY2hlbGFuZ2VsbyBEZSBTaW1vbmUgIDxt
aWNkZXNpbUBnbWFpbC5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBYnN0cmFjdFdvcmtlckN1c3RvbS5jcHAg
Yi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQWJzdHJhY3RXb3JrZXJDdXN0b20uY3BwCmluZGV4IDk0
MTFhZDguLmE2Y2JkOTEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBYnN0cmFj
dFdvcmtlckN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Fic3RyYWN0V29y
a2VyQ3VzdG9tLmNwcApAQCAtNDYsMTAgKzQ2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBK
U1ZhbHVlIEpTQWJzdHJhY3RXb3JrZXI6OmFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Ci0KICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBpZiAoIWxpc3Rl
bmVyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtNjAsMTAg
KzU2LDYgQEAgSlNWYWx1ZSBKU0Fic3RyYWN0V29ya2VyOjphZGRFdmVudExpc3RlbmVyKEV4ZWNT
dGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIAogSlNWYWx1ZSBKU0Fic3RyYWN0V29y
a2VyOjpyZW1vdmVFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYg
YXJncykKIHsKLSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUds
b2JhbE9iamVjdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgaWYgKCFn
bG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCiAgICAgSlNWYWx1
ZSBsaXN0ZW5lciA9IGFyZ3MuYXQoMSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQog
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01BcHBsaWNhdGlvbkNhY2hlQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01BcHBsaWNhdGlvbkNhY2hlQ3VzdG9tLmNwcAppbmRleCA0OWVmNWUzLi44NjM0NTg5
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQXBwbGljYXRpb25DYWNoZUN1
c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUFwcGxpY2F0aW9uQ2FjaGVD
dXN0b20uY3BwCkBAIC04NywxMCArODcsNiBAQCBKU1ZhbHVlIEpTRE9NQXBwbGljYXRpb25DYWNo
ZTo6cmVtb3ZlKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIAogSlNWYWx1
ZSBKU0RPTUFwcGxpY2F0aW9uQ2FjaGU6OmFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVj
LCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7Ci0KICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBpZiAoIWxpc3Rl
bmVyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMTAxLDEw
ICs5Nyw2IEBAIEpTVmFsdWUgSlNET01BcHBsaWNhdGlvbkNhY2hlOjphZGRFdmVudExpc3RlbmVy
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYKIAogSlNWYWx1ZSBKU0RPTUFwcGxpY2F0
aW9uQ2FjaGU6OnJlbW92ZUV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdM
aXN0JiBhcmdzKQogewotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pT
RE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKLSAgICBp
ZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KICAgICBK
U1ZhbHVlIGxpc3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0
KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0Rlc2t0b3BOb3RpZmljYXRpb25zQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNEZXNrdG9wTm90aWZpY2F0aW9uc0N1c3RvbS5jcHAKaW5kZXggNDkzZDdiZC4u
OWJmZjYzNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0Rlc2t0b3BOb3RpZmlj
YXRpb25zQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRGVza3RvcE5vdGlm
aWNhdGlvbnNDdXN0b20uY3BwCkBAIC02MywyOSArNjMsMjEgQEAgSlNWYWx1ZSBKU05vdGlmaWNh
dGlvbkNlbnRlcjo6cmVxdWVzdFBlcm1pc3Npb24oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdM
aXN0JgogCiBKU1ZhbHVlIEpTTm90aWZpY2F0aW9uOjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotCiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGFyZ3MuYXQoMSk7CiAgICAgaWYg
KCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIAot
ICAgIGltcGwoKS0+YWRkRXZlbnRMaXN0ZW5lcihhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpLCBK
U0V2ZW50TGlzdGVuZXI6OmNyZWF0ZShhc09iamVjdChsaXN0ZW5lcikpLCBnbG9iYWxPYmplY3Qs
IGZhbHNlKSwgYXJncy5hdCgyKS50b0Jvb2xlYW4oZXhlYykpOworICAgIGltcGwoKS0+YWRkRXZl
bnRMaXN0ZW5lcihhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpLCBKU0V2ZW50TGlzdGVuZXI6OmNy
ZWF0ZShhc09iamVjdChsaXN0ZW5lcikpLCBmYWxzZSksIGFyZ3MuYXQoMikudG9Cb29sZWFuKGV4
ZWMpKTsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIAogSlNWYWx1ZSBKU05vdGlmaWNh
dGlvbjo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3Qm
IGFyZ3MpCiB7Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01H
bG9iYWxPYmplY3QoaW1wbCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGlmICgh
Z2xvYmFsT2JqZWN0KQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQogICAgIEpTVmFs
dWUgbGlzdGVuZXIgPSBhcmdzLmF0KDEpOwogICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkK
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiAKLSAgICBpbXBsKCktPnJlbW92ZUV2ZW50
TGlzdGVuZXIoYXJncy5hdCgwKS50b1N0cmluZyhleGVjKSwgSlNFdmVudExpc3RlbmVyOjpjcmVh
dGUoYXNPYmplY3QobGlzdGVuZXIpLCBnbG9iYWxPYmplY3QsIGZhbHNlKS5nZXQoKSwgYXJncy5h
dCgyKS50b0Jvb2xlYW4oZXhlYykpOworICAgIGltcGwoKS0+cmVtb3ZlRXZlbnRMaXN0ZW5lcihh
cmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpLCBKU0V2ZW50TGlzdGVuZXI6OmNyZWF0ZShhc09iamVj
dChsaXN0ZW5lciksIGZhbHNlKS5nZXQoKSwgYXJncy5hdCgyKS50b0Jvb2xlYW4oZXhlYykpOwog
ICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRXZlbnRTb3VyY2VDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V2
ZW50U291cmNlQ3VzdG9tLmNwcAppbmRleCA0MDRiZjExLi4wMGRmZTEyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXZlbnRTb3VyY2VDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNFdmVudFNvdXJjZUN1c3RvbS5jcHAKQEAgLTQ1LDEwICs0NSw2IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogSlNWYWx1ZSBKU0V2ZW50U291cmNlOjphZGRFdmVudExpc3Rl
bmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXBsKCktPnNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAgICAg
IHJldHVybiBqc1VuZGVmaW5lZCgpOwotCiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGFyZ3MuYXQo
MSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4ganNVbmRl
ZmluZWQoKTsKQEAgLTU5LDEwICs1NSw2IEBAIEpTVmFsdWUgSlNFdmVudFNvdXJjZTo6YWRkRXZl
bnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAKIEpTVmFs
dWUgSlNFdmVudFNvdXJjZTo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IHRvSlNET01HbG9iYWxPYmplY3QoaW1wbCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LQogICAgIEpTVmFsdWUgbGlzdGVuZXIgPSBhcmdzLmF0KDEpOwogICAgIGlmICghbGlzdGVuZXIu
aXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU01lc3NhZ2VQb3J0Q3VzdG9tLmNwcAppbmRleCAyMTBjOTNlLi5hMGE5MmJlIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZVBvcnRDdXN0b20uY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlUG9ydEN1c3RvbS5jcHAKQEAgLTU3LDEw
ICs1Nyw2IEBAIHZvaWQgSlNNZXNzYWdlUG9ydDo6bWFya0NoaWxkcmVuKE1hcmtTdGFjayYgbWFy
a1N0YWNrKQogCiBKU1ZhbHVlIEpTTWVzc2FnZVBvcnQ6OmFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpz
VW5kZWZpbmVkKCk7Ci0KICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBp
ZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpA
QCAtNzEsMTAgKzY3LDYgQEAgSlNWYWx1ZSBKU01lc3NhZ2VQb3J0OjphZGRFdmVudExpc3RlbmVy
KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIAogSlNWYWx1ZSBKU01lc3Nh
Z2VQb3J0OjpyZW1vdmVFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlz
dCYgYXJncykKIHsKLSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RP
TUdsb2JhbE9iamVjdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgaWYg
KCFnbG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCiAgICAgSlNW
YWx1ZSBsaXN0ZW5lciA9IGFyZ3MuYXQoMSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgp
KQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNOb2RlQ3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNOb2RlQ3Vz
dG9tLmNwcAppbmRleCA1MmYyMWU3Li40ZTdkNjIyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTTm9kZUN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05vZGVD
dXN0b20uY3BwCkBAIC0xMTAsMTQgKzExMCw2IEBAIEpTVmFsdWUgSlNOb2RlOjphcHBlbmRDaGls
ZChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAKIEpTVmFsdWUgSlNOb2Rl
OjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykK
IHsKLSAgICBEb2N1bWVudCogZG9jdW1lbnQgPSBpbXBsKCktPmRvY3VtZW50KCk7Ci0gICAgaWYg
KCFkb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgICAgIAotICAg
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGRv
Y3VtZW50KTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Ci0KICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBpZiAoIWxp
c3RlbmVyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtMTI4
LDE0ICsxMjAsNiBAQCBKU1ZhbHVlIEpTTm9kZTo6YWRkRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiAKIEpTVmFsdWUgSlNOb2RlOjpyZW1vdmVFdmVu
dExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBE
b2N1bWVudCogZG9jdW1lbnQgPSBpbXBsKCktPmRvY3VtZW50KCk7Ci0gICAgaWYgKCFkb2N1bWVu
dCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0KLSAgICBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChkb2N1bWVudCk7Ci0gICAgaWYg
KCFnbG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCiAgICAgSlNW
YWx1ZSBsaXN0ZW5lciA9IGFyZ3MuYXQoMSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgp
KQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNTVkdFbGVtZW50SW5zdGFuY2VDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1c3RvbS5jcHAKaW5kZXggNTcxZTMwMi4uZmQzNzQy
ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1
c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NWR0VsZW1lbnRJbnN0YW5jZUN1
c3RvbS5jcHAKQEAgLTUwLDEwICs1MCw2IEBAIHZvaWQgSlNTVkdFbGVtZW50SW5zdGFuY2U6Om1h
cmtDaGlsZHJlbihNYXJrU3RhY2smIG1hcmtTdGFjaykKIAogSlNWYWx1ZSBKU1NWR0VsZW1lbnRJ
bnN0YW5jZTo6YWRkRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3Qm
IGFyZ3MpCiB7Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCA9IHRvSlNET01H
bG9iYWxPYmplY3QoaW1wbCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwotICAgIGlmICgh
Z2xvYmFsT2JqZWN0KQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKLQogICAgIEpTVmFs
dWUgbGlzdGVuZXIgPSBhcmdzLmF0KDEpOwogICAgIGlmICghbGlzdGVuZXIuaXNPYmplY3QoKSkK
ICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CkBAIC02NCwxMCArNjAsNiBAQCBKU1ZhbHVl
IEpTU1ZHRWxlbWVudEluc3RhbmNlOjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywg
Y29uc3QgQXJnTGlzdCYgYQogCiBKU1ZhbHVlIEpTU1ZHRWxlbWVudEluc3RhbmNlOjpyZW1vdmVF
dmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAg
ICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChp
bXBsKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3Qp
Ci0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9
IGFyZ3MuYXQoMSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAgICAgICByZXR1
cm4ganNVbmRlZmluZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJT
b2NrZXRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlNvY2tldEN1c3RvbS5j
cHAKaW5kZXggZTQzNGNiMC4uYmVhMzU2MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU1dlYlNvY2tldEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYlNv
Y2tldEN1c3RvbS5jcHAKQEAgLTYyLDEwICs2Miw2IEBAIEpTVmFsdWUgSlNXZWJTb2NrZXQ6OnNl
bmQoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogCiBKU1ZhbHVlIEpTV2Vi
U29ja2V0OjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYg
YXJncykKIHsKLSAgICBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUds
b2JhbE9iamVjdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgaWYgKCFn
bG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwotCiAgICAgSlNWYWx1
ZSBsaXN0ZW5lciA9IGFyZ3MuYXQoMSk7CiAgICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQog
ICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTc2LDEwICs3Miw2IEBAIEpTVmFsdWUg
SlNXZWJTb2NrZXQ6OmFkZEV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdM
aXN0JiBhcmdzKQogCiBKU1ZhbHVlIEpTV2ViU29ja2V0OjpyZW1vdmVFdmVudExpc3RlbmVyKEV4
ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXBsKCktPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVy
biBqc1VuZGVmaW5lZCgpOwotCiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGFyZ3MuYXQoMSk7CiAg
ICAgaWYgKCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdEN1c3Rv
bS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDdXN0b20uY3BwCmlu
ZGV4IDRiNDRkYjIuLjdkM2Y4YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNY
TUxIdHRwUmVxdWVzdEN1c3RvbS5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0Q3VzdG9tLmNwcApAQCAtMTUyLDEwICsxNTIsNiBAQCBKU1ZhbHVlIEpTWE1MSHR0
cFJlcXVlc3Q6Om92ZXJyaWRlTWltZVR5cGUoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0
JiBhcmdzKQogCiBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OmFkZEV2ZW50TGlzdGVuZXIoRXhl
Y1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpKTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJu
IGpzVW5kZWZpbmVkKCk7Ci0KICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gYXJncy5hdCgxKTsKICAg
ICBpZiAoIWxpc3RlbmVyLmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgp
OwpAQCAtMTY2LDEwICsxNjIsNiBAQCBKU1ZhbHVlIEpTWE1MSHR0cFJlcXVlc3Q6OmFkZEV2ZW50
TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogCiBKU1ZhbHVl
IEpTWE1MSHR0cFJlcXVlc3Q6OnJlbW92ZUV2ZW50TGlzdGVuZXIoRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBBcmdMaXN0JiBhcmdzKQogewotICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QgPSB0b0pTRE9NR2xvYmFsT2JqZWN0KGltcGwoKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
KTsKLSAgICBpZiAoIWdsb2JhbE9iamVjdCkKLSAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
Ci0KICAgICBKU1ZhbHVlIGxpc3RlbmVyID0gYXJncy5hdCgxKTsKICAgICBpZiAoIWxpc3RlbmVy
LmlzT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdFVwbG9hZEN1c3RvbS5jcHAKaW5kZXgg
ZGFiMGEzZS4uMjc1ZDFmYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0
dHBSZXF1ZXN0VXBsb2FkQ3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RVcGxvYWRDdXN0b20uY3BwCkBAIC01NiwxMCArNTYsNiBAQCB2b2lkIEpTWE1M
SHR0cFJlcXVlc3RVcGxvYWQ6Om1hcmtDaGlsZHJlbihNYXJrU3RhY2smIG1hcmtTdGFjaykKIAog
SlNWYWx1ZSBKU1hNTEh0dHBSZXF1ZXN0VXBsb2FkOjphZGRFdmVudExpc3RlbmVyKEV4ZWNTdGF0
ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0ID0gdG9KU0RPTUdsb2JhbE9iamVjdChpbXBsKCktPnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSk7Ci0gICAgaWYgKCFnbG9iYWxPYmplY3QpCi0gICAgICAgIHJldHVybiBqc1Vu
ZGVmaW5lZCgpOwotCiAgICAgSlNWYWx1ZSBsaXN0ZW5lciA9IGFyZ3MuYXQoMSk7CiAgICAgaWYg
KCFsaXN0ZW5lci5pc09iamVjdCgpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAg
LTcwLDEwICs2Niw2IEBAIEpTVmFsdWUgSlNYTUxIdHRwUmVxdWVzdFVwbG9hZDo6YWRkRXZlbnRM
aXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmCiAKIEpTVmFsdWUgSlNYTUxI
dHRwUmVxdWVzdFVwbG9hZDo6cmVtb3ZlRXZlbnRMaXN0ZW5lcihFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCA9IHRvSlNET01HbG9iYWxPYmplY3QoaW1wbCgpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwotICAgIGlmICghZ2xvYmFsT2JqZWN0KQotICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
LQogICAgIEpTVmFsdWUgbGlzdGVuZXIgPSBhcmdzLmF0KDEpOwogICAgIGlmICghbGlzdGVuZXIu
aXNPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cg==
</data>
<flag name="review"
          id="22475"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>