<?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>21752</bug_id>
          
          <creation_ts>2008-10-20 07:47:51 -0700</creation_ts>
          <short_desc>REGRESSION: referencing XHR constructor for a not yet loaded frame permanently breaks it</short_desc>
          <delta_ts>2009-03-16 00:40:55 -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>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>HasReduction, InRadar, Regression</keywords>
          <priority>P1</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>
          <cc>abarth</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>95990</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-20 07:47:51 -0700</bug_when>
    <thetext>To reproduce, see attached test case.

This is a regression caused by r36954, which enabled certain constructors to be cached on the Window, as they should be. Unfortunately, this conflicts with a pre-existing issue in WebCore - the Window object is not properly replaced/cleared when transitioning from a temporary document created before loading to an actual one.

The attached test case checks both the pre-existing issue, and its new manifestation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95991</commentid>
    <comment_count>1</comment_count>
      <attachid>24523</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-20 07:48:35 -0700</bug_when>
    <thetext>Created attachment 24523
test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>95992</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-10-20 07:50:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/6303355&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111812</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-02 06:06:33 -0800</bug_when>
    <thetext>In fact, this &quot;pre-existing issue&quot; is expected behavior, see &lt;http://trac.webkit.org/changeset/25783/trunk/WebCore/loader/FrameLoader.cpp&gt;. The attached test is faulty, as the way logging is done affects its results.

The problem with XMLHttpRequest being broken remains.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111824</commentid>
    <comment_count>4</comment_count>
      <attachid>28175</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-02 07:40:13 -0800</bug_when>
    <thetext>Created attachment 28175
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111838</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-03-02 09:30:47 -0800</bug_when>
    <thetext>Have you tested whether this creates memory leaks?  It seems like the JSGlobalObject holds on to the JSImageConstructor, which now mark()s the JSGlobalObject...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>111839</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-03-02 09:43:51 -0800</bug_when>
    <thetext>Ignore my previous comment.  I forgot that we use mark-and-sweep.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113654</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2009-03-13 12:27:12 -0700</bug_when>
    <thetext>In what cases are we replacing the document but not the window object.  Ideally, these should be one-to-one now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113658</commentid>
    <comment_count>8</comment_count>
      <attachid>28175</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-13 12:32:44 -0700</bug_when>
    <thetext>Comment on attachment 28175
proposed fix

r=me

I&apos;m slightly worried since it would be insecure to re-use these JavaScript objects with a new document with a different security origin. But I guess we have tests to cover that possibility and they are not re-used in that bad way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113664</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-13 12:38:44 -0700</bug_when>
    <thetext>Sam, one case where we must replace only the document is in r25783.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113856</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-03-16 00:40:55 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/41732&gt;.

&gt; I&apos;m slightly worried since it would be insecure to re-use these JavaScript
&gt; objects with a new document with a different security origin.

My understanding is that this patch doesn&apos;t make security weaker, because the only transition that ever happens is from about:blank.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>24523</attachid>
            <date>2008-10-20 07:48:35 -0700</date>
            <delta_ts>2008-10-20 07:48:35 -0700</delta_ts>
            <desc>test case</desc>
            <filename>cached-ctors.zip</filename>
            <type>application/zip</type>
            <size>1583</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">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
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28175</attachid>
            <date>2009-03-02 07:40:13 -0800</date>
            <delta_ts>2009-03-13 12:32:44 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>EarlyWindowXHR.txt</filename>
            <type>text/plain</type>
            <size>17621</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MTM1NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDMgQEAKKzIwMDktMDMtMDIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEB3ZWJr
aXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MgorICAgICAgICBS
RUdSRVNTSU9OOiByZWZlcmVuY2luZyBYSFIgY29uc3RydWN0b3IgZm9yIGEgbm90IHlldCBsb2Fk
ZWQgZnJhbWUgcGVybWFuZW50bHkgYnJlYWtzIGl0CisKKyAgICAgICAgVGVzdDogZmFzdC9kb20v
V2luZG93L3dpbmRvdy1lYXJseS1wcm9wZXJ0aWVzLXhoci5odG1sCisKKyAgICAgICAgRm9yIHNv
bWUgdHJhbnNpdGlvbnMsIHRoZSBXaW5kb3cgb2JqZWN0IGlzIG5vdCByZXBsYWNlZCwgYnV0IERv
Y3VtZW50IGlzLiBXaGVuIHRoaXMgaGFwcGVuZWQsCisgICAgICAgIHdpbmRvdy5kb2N1bWVudCBw
cm9wZXJ0eSB3YXMgdXBkYXRlZCwgYnV0IHJlZmVyZW5jZXMgdG8gRG9jdW1lbnQga2VwdCBpbiBj
YWNoZWQgY29uc3RydWN0b3JzCisgICAgICAgIHdlcmUgbm90LgorCisgICAgICAgICogYmluZGlu
Z3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQXVkaW9D
b25zdHJ1Y3Rvcjo6SlNBdWRpb0NvbnN0cnVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkpTQXVk
aW9Db25zdHJ1Y3Rvcjo6ZG9jdW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6SlNBdWRpb0NvbnN0
cnVjdG9yOjptYXJrKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3Iu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpKU0ltYWdlQ29uc3RydWN0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SlNJbWFnZUNvbnN0cnVjdG9yOjpkb2N1bWVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpKU0ltYWdlQ29uc3RydWN0b3I6Om1hcmspOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0pTSW1hZ2VDb25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTWVzc2FnZUNo
YW5uZWxDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU01lc3NhZ2VDaGFubmVs
Q29uc3RydWN0b3I6OkpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yOjptYXJrKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTT3B0aW9uQ29uc3RydWN0b3I6OkpTT3B0aW9uQ29uc3RydWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6ZG9jdW1lbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNPcHRpb25Db25zdHJ1Y3Rvcjo6bWFyayk6CisgICAgICAgICogYmluZGluZ3MvanMv
SlNPcHRpb25Db25zdHJ1Y3Rvci5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTWE1MSHR0cFJl
cXVlc3RDb25zdHJ1Y3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3I6OkpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcik6CisgICAgICAgIChXZWJD
b3JlOjpKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQp
OgorICAgICAgICAoV2ViQ29yZTo6SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjptYXJrKToK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaDoKKyAg
ICAgICAgQ2hhbmdlZCBjYWNoZWQgY29uc3RydWN0b3JzIHRvIGtlZXAgYSByZWZlcmVuY2UgdG8g
V2luZG93LCBub3QgRG9jdW1lbnQuCisKIDIwMDktMDMtMDIgIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBidWlsZCBmaXg7IGFkZGlu
ZyBtaXNzaW5nIGZpbGVzIHRvIEVYVFJBX0RJU1QsIHNvIHRoYXQKSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5jcHAJKHJldmlzaW9uIDQxMzUxKQorKysgV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00MywxMyArNDMsMTggQEAgY29uc3QgQ2xhc3NJbmZvIEpTQXVkaW9Db25zdHJ1Y3Rvcjo6c19p
bgogCiBKU0F1ZGlvQ29uc3RydWN0b3I6OkpTQXVkaW9Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4
ZWMsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQpCiAgICAgOiBET01PYmplY3QoSlNB
dWRpb0NvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVj
dCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCisgICAgLCBtX2dsb2JhbE9iamVjdCh0b0pTRE9NR2xv
YmFsT2JqZWN0KGNvbnRleHQpKQogewogICAgIEFTU0VSVChjb250ZXh0LT5pc0RvY3VtZW50KCkp
OwotICAgIG1fZG9jdW1lbnQgPSBzdGF0aWNfY2FzdDxKU0RvY3VtZW50Kj4oYXNPYmplY3QodG9K
UyhleGVjLCBzdGF0aWNfY2FzdDxEb2N1bWVudCo+KGNvbnRleHQpKSkpOwogCiAgICAgcHV0RGly
ZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgsIGpzTnVtYmVyKGV4ZWMsIDEpLCBSZWFk
T25seXxEb250RGVsZXRlfERvbnRFbnVtKTsKIH0KIAorRG9jdW1lbnQqIEpTQXVkaW9Db25zdHJ1
Y3Rvcjo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxEb2N1bWVu
dCo+KG1fZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOworfQorCiBzdGF0
aWMgSlNPYmplY3QqIGNvbnN0cnVjdEF1ZGlvKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGNv
bnN0cnVjdG9yLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogewogICAgIC8vIEZJWE1FOiBXaHkgZG9l
c24ndCB0aGlzIG5lZWQgdGhlIGNhbGwgdG9KUyBvbiB0aGUgZG9jdW1lbnQgbGlrZSBKU0ltYWdl
Q29uc3RydWN0b3I/CkBAIC03MSw4ICs3Niw4IEBAIENvbnN0cnVjdFR5cGUgSlNBdWRpb0NvbnN0
cnVjdG9yOjpnZXRDb24KIHZvaWQgSlNBdWRpb0NvbnN0cnVjdG9yOjptYXJrKCkKIHsKICAgICBE
T01PYmplY3Q6Om1hcmsoKTsKLSAgICBpZiAoIW1fZG9jdW1lbnQtPm1hcmtlZCgpKQotICAgICAg
ICBtX2RvY3VtZW50LT5tYXJrKCk7CisgICAgaWYgKCFtX2dsb2JhbE9iamVjdC0+bWFya2VkKCkp
CisgICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5tYXJrKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuaAkocmV2
aXNpb24gNDEzNTEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1Y3Rvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIEpTQXVkaW9Db25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAotICAgICAgICBEb2N1bWVudCogZG9jdW1lbnQoKSBj
b25zdCB7IHJldHVybiBtX2RvY3VtZW50LT5pbXBsKCk7IH0KKyAgICAgICAgRG9jdW1lbnQqIGRv
Y3VtZW50KCkgY29uc3Q7CiAKICAgICAgICAgc3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNf
aW5mbzsKIApAQCAtNDgsNyArNDgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAg
dmlydHVhbCBjb25zdCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4g
JnNfaW5mbzsgfQogCi0gICAgICAgIEpTRG9jdW1lbnQqIG1fZG9jdW1lbnQ7CisgICAgICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiBtX2dsb2JhbE9iamVjdDsKICAgICB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3Iu
Y3BwCShyZXZpc2lvbiA0MTM1MSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0
cnVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsOSArMzUsMTQgQEAgY29uc3QgQ2xhc3NJ
bmZvIEpTSW1hZ2VDb25zdHJ1Y3Rvcjo6c19pbgogCiBKU0ltYWdlQ29uc3RydWN0b3I6OkpTSW1h
Z2VDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNv
bnRleHQpCiAgICAgOiBET01PYmplY3QoSlNJbWFnZUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1
cmUoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCisgICAg
LCBtX2dsb2JhbE9iamVjdCh0b0pTRE9NR2xvYmFsT2JqZWN0KGNvbnRleHQpKQogewogICAgIEFT
U0VSVChjb250ZXh0LT5pc0RvY3VtZW50KCkpOwotICAgIG1fZG9jdW1lbnQgPSBzdGF0aWNfY2Fz
dDxKU0RvY3VtZW50Kj4oYXNPYmplY3QodG9KUyhleGVjLCBzdGF0aWNfY2FzdDxEb2N1bWVudCo+
KGNvbnRleHQpKSkpOworfQorCitEb2N1bWVudCogSlNJbWFnZUNvbnN0cnVjdG9yOjpkb2N1bWVu
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PERvY3VtZW50Kj4obV9nbG9iYWxP
YmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiB9CiAKIHN0YXRpYyBKU09iamVjdCog
Y29uc3RydWN0SW1hZ2UoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY29uc3RydWN0b3IsIGNv
bnN0IEFyZ0xpc3QmIGFyZ3MpCkBAIC03OSw4ICs4NCw4IEBAIENvbnN0cnVjdFR5cGUgSlNJbWFn
ZUNvbnN0cnVjdG9yOjpnZXRDb24KIHZvaWQgSlNJbWFnZUNvbnN0cnVjdG9yOjptYXJrKCkKIHsK
ICAgICBET01PYmplY3Q6Om1hcmsoKTsKLSAgICBpZiAoIW1fZG9jdW1lbnQtPm1hcmtlZCgpKQot
ICAgICAgICBtX2RvY3VtZW50LT5tYXJrKCk7CisgICAgaWYgKCFtX2dsb2JhbE9iamVjdC0+bWFy
a2VkKCkpCisgICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5tYXJrKCk7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3Iu
aAkocmV2aXNpb24gNDEzNTEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1
Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw3ICsyOCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBKU0ltYWdlQ29uc3RydWN0b3IgOiBwdWJsaWMgRE9NT2JqZWN0IHsKICAg
ICBwdWJsaWM6CiAgICAgICAgIEpTSW1hZ2VDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKLSAgICAgICAgRG9jdW1lbnQqIGRvY3VtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9kb2N1bWVudC0+aW1wbCgpOyB9CisgICAgICAgIERvY3VtZW50KiBkb2N1
bWVudCgpIGNvbnN0OwogCiAgICAgICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBzX2lu
Zm87CiAgICAgICAgIApAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgSlNDOjpDb25zdHJ1Y3RUeXBlIGdldENvbnN0cnVjdERhdGEoSlNDOjpDb25z
dHJ1Y3REYXRhJik7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgSlNDOjpDbGFzc0luZm8qIGNsYXNz
SW5mbygpIGNvbnN0IHsgcmV0dXJuICZzX2luZm87IH0KIAotICAgICAgICBKU0RvY3VtZW50KiBt
X2RvY3VtZW50OworICAgICAgICBKU0RPTUdsb2JhbE9iamVjdCogbV9nbG9iYWxPYmplY3Q7CiAg
ICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
YmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gNDEz
NTEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE3ICs0MCw4IEBAIGNvbnN0IENsYXNzSW5mbyBKU01l
c3NhZ2VDaGFubmVsQ29uc3RydWMKIAogSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yOjpKU01l
c3NhZ2VDaGFubmVsQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0KQogICAgIDogRE9NT2JqZWN0KEpTTWVzc2Fn
ZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQotICAgICwgbV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgLCBtX2dsb2JhbE9iamVjdCh0b0pTRE9N
R2xvYmFsT2JqZWN0KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQpKQogewotICAgIGlmIChtX3Njcmlw
dEV4ZWN1dGlvbkNvbnRleHQtPmlzRG9jdW1lbnQoKSkKLSAgICAgICAgbV9jb250ZXh0V3JhcHBl
ciA9IHRvSlMoZXhlYywgc3RhdGljX2Nhc3Q8RG9jdW1lbnQqPihzY3JpcHRFeGVjdXRpb25Db250
ZXh0KSk7Ci0jaWYgRU5BQkxFKFdPUktFUlMpCi0gICAgZWxzZSBpZiAobV9zY3JpcHRFeGVjdXRp
b25Db250ZXh0LT5pc1dvcmtlckNvbnRleHQoKSkKLSAgICAgICAgbV9jb250ZXh0V3JhcHBlciA9
IHRvSlNET01HbG9iYWxPYmplY3Qoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7Ci0jZW5kaWYKLSAg
ICBlbHNlCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotCiAgICAgcHV0RGlyZWN0KGV4
ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTTWVzc2FnZUNoYW5uZWxQcm90b3R5cGU6
OnNlbGYoZXhlYyksIE5vbmUpOwogfQogCkBAIC01OCw2ICs0OSwxMSBAQCBKU01lc3NhZ2VDaGFu
bmVsQ29uc3RydWN0b3I6On5KU01lc3NhZ2VDCiB7CiB9CiAKK1NjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqIEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7Cit9CisKIENvbnN0cnVjdFR5cGUgSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9yOjpn
ZXRDb25zdHJ1Y3REYXRhKENvbnN0cnVjdERhdGEmIGNvbnN0cnVjdERhdGEpCiB7CiAgICAgY29u
c3RydWN0RGF0YS5uYXRpdmUuZnVuY3Rpb24gPSBjb25zdHJ1Y3Q7CkBAIC03Miw4ICs2OCw4IEBA
IEpTT2JqZWN0KiBKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3I6OmMKIHZvaWQgSlNNZXNzYWdl
Q2hhbm5lbENvbnN0cnVjdG9yOjptYXJrKCkKIHsKICAgICBET01PYmplY3Q6Om1hcmsoKTsKLSAg
ICBpZiAoIW1fY29udGV4dFdyYXBwZXIubWFya2VkKCkpCi0gICAgICAgIG1fY29udGV4dFdyYXBw
ZXIubWFyaygpOworICAgIGlmICghbV9nbG9iYWxPYmplY3QtPm1hcmtlZCgpKQorICAgICAgICBt
X2dsb2JhbE9iamVjdC0+bWFyaygpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9y
LmgJKHJldmlzaW9uIDQxMzUxKQorKysgV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFu
bmVsQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgY29uc3QgSlNDOjpDbGFzc0luZm8qIGNsYXNz
SW5mbygpIGNvbnN0IHsgcmV0dXJuICZzX2luZm87IH0KICAgICAgICAgc3RhdGljIGNvbnN0IEpT
Qzo6Q2xhc3NJbmZvIHNfaW5mbzsKIAotICAgICAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25D
b250ZXh0OyB9CisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSBjb25zdDsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaW1wbGVtZW50c0hhc0lu
c3RhbmNlKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogICAgICAgICBzdGF0aWMgSlNDOjpKU09i
amVjdCogY29uc3RydWN0KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpKU09iamVjdCosIGNvbnN0IEpT
Qzo6QXJnTGlzdCYpOwpAQCAtNDYsOCArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIHZpcnR1YWwgdm9pZCBtYXJrKCk7CiAKICAgICBwcml2YXRlOgotICAgICAgICBTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7Ci0gICAgICAgIEpTQzo6
SlNWYWx1ZVB0ciBtX2NvbnRleHRXcmFwcGVyOworICAgICAgICBKU0RPTUdsb2JhbE9iamVjdCog
bV9nbG9iYWxPYmplY3Q7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDog
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU09wdGlvbkNvbnN0cnVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuY3BwCShyZXZpc2lvbiA0
MTM1MSkKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDEzICszNiwxNyBAQCBjb25zdCBDbGFzc0luZm8gSlNPcHRpb25D
b25zdHJ1Y3Rvcjo6c19pCiAKIEpTT3B0aW9uQ29uc3RydWN0b3I6OkpTT3B0aW9uQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0KQogICAg
IDogRE9NT2JqZWN0KEpTT3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5s
ZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKKyAgICAsIG1fZ2xvYmFs
T2JqZWN0KHRvSlNET01HbG9iYWxPYmplY3QoY29udGV4dCkpCiB7CiAgICAgQVNTRVJUKGNvbnRl
eHQtPmlzRG9jdW1lbnQoKSk7Ci0gICAgbV9kb2N1bWVudCA9IHN0YXRpY19jYXN0PEpTRG9jdW1l
bnQqPihhc09iamVjdCh0b0pTKGV4ZWMsIHN0YXRpY19jYXN0PERvY3VtZW50Kj4oY29udGV4dCkp
KSk7Ci0KICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCwganNOdW1i
ZXIoZXhlYywgNCksIFJlYWRPbmx5fERvbnREZWxldGV8RG9udEVudW0pOwogfQogCitEb2N1bWVu
dCogSlNPcHRpb25Db25zdHJ1Y3Rvcjo6ZG9jdW1lbnQoKSBjb25zdAoreworICAgIHJldHVybiBz
dGF0aWNfY2FzdDxEb2N1bWVudCo+KG1fZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCkpOworfQorCiBzdGF0aWMgSlNPYmplY3QqIGNvbnN0cnVjdEhUTUxPcHRpb25FbGVtZW50
KEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGNvbnN0cnVjdG9yLCBjb25zdCBBcmdMaXN0JiBh
cmdzKQogewogICAgIERvY3VtZW50KiBkb2N1bWVudCA9IHN0YXRpY19jYXN0PEpTT3B0aW9uQ29u
c3RydWN0b3IqPihjb25zdHJ1Y3RvciktPmRvY3VtZW50KCk7CkBAIC03OSw4ICs4Myw4IEBAIENv
bnN0cnVjdFR5cGUgSlNPcHRpb25Db25zdHJ1Y3Rvcjo6Z2V0Q28KIHZvaWQgSlNPcHRpb25Db25z
dHJ1Y3Rvcjo6bWFyaygpCiB7CiAgICAgRE9NT2JqZWN0OjptYXJrKCk7Ci0gICAgaWYgKCFtX2Rv
Y3VtZW50LT5tYXJrZWQoKSkKLSAgICAgICAgbV9kb2N1bWVudC0+bWFyaygpOworICAgIGlmICgh
bV9nbG9iYWxPYmplY3QtPm1hcmtlZCgpKQorICAgICAgICBtX2dsb2JhbE9iamVjdC0+bWFyaygp
OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTT3B0aW9uQ29uc3RydWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pz
L0pTT3B0aW9uQ29uc3RydWN0b3IuaAkocmV2aXNpb24gNDEzNTEpCisrKyBXZWJDb3JlL2JpbmRp
bmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMjksNyArMjks
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xhc3MgSlNPcHRpb25Db25zdHJ1Y3RvciA6
IHB1YmxpYyBET01PYmplY3QgewogICAgIHB1YmxpYzoKICAgICAgICAgSlNPcHRpb25Db25zdHJ1
Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKLSAgICAgICAg
RG9jdW1lbnQqIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudC0+aW1wbCgpOyB9
CisgICAgICAgIERvY3VtZW50KiBkb2N1bWVudCgpIGNvbnN0OwogCiAgICAgICAgIHN0YXRpYyBj
b25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAgICAgICAgIApAQCAtMzgsNyArMzgsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZpcnR1YWwgSlNDOjpDb25zdHJ1Y3RUeXBlIGdl
dENvbnN0cnVjdERhdGEoSlNDOjpDb25zdHJ1Y3REYXRhJik7CiAgICAgICAgIHZpcnR1YWwgY29u
c3QgSlNDOjpDbGFzc0luZm8qIGNsYXNzSW5mbygpIGNvbnN0IHsgcmV0dXJuICZzX2luZm87IH0K
IAotICAgICAgICBKU0RvY3VtZW50KiBtX2RvY3VtZW50OworICAgICAgICBKU0RPTUdsb2JhbE9i
amVjdCogbV9nbG9iYWxPYmplY3Q7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0
cnVjdG9yLmNwcAkocmV2aXNpb24gNDEzNTEpCisrKyBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTWE1M
SHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEyICszNCwx
NiBAQCBjb25zdCBDbGFzc0luZm8gSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjCiAKIEpTWE1MSHR0
cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6SlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogZXhlYywgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkK
ICAgICA6IERPTU9iamVjdChKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKLSAg
ICAsIG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dChzY3JpcHRFeGVjdXRpb25Db250ZXh0KQotICAg
ICwgbV9jb250ZXh0V3JhcHBlcih0b0pTRE9NR2xvYmFsT2JqZWN0KHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQpKQorICAgICwgbV9nbG9iYWxPYmplY3QodG9KU0RPTUdsb2JhbE9iamVjdChzY3JpcHRF
eGVjdXRpb25Db250ZXh0KSkKIHsKICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygp
LnByb3RvdHlwZSwgSlNYTUxIdHRwUmVxdWVzdFByb3RvdHlwZTo6c2VsZihleGVjKSwgTm9uZSk7
CiB9CiAKK1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rv
cjo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZ2xvYmFs
T2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7Cit9CisKIHN0YXRpYyBKU09iamVjdCog
Y29uc3RydWN0WE1MSHR0cFJlcXVlc3QoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCogY29uc3Ry
dWN0b3IsIGNvbnN0IEFyZ0xpc3QmKQogewogICAgIFJlZlB0cjxYTUxIdHRwUmVxdWVzdD4geG1s
SHR0cFJlcXVlc3QgPSBYTUxIdHRwUmVxdWVzdDo6Y3JlYXRlKHN0YXRpY19jYXN0PEpTWE1MSHR0
cFJlcXVlc3RDb25zdHJ1Y3Rvcio+KGNvbnN0cnVjdG9yKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpKTsKQEAgLTU1LDggKzU5LDggQEAgQ29uc3RydWN0VHlwZSBKU1hNTEh0dHBSZXF1ZXN0Q29u
c3RydWN0bwogdm9pZCBKU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0b3I6Om1hcmsoKQogewogICAg
IERPTU9iamVjdDo6bWFyaygpOwotICAgIGlmICghbV9jb250ZXh0V3JhcHBlci5tYXJrZWQoKSkK
LSAgICAgICAgbV9jb250ZXh0V3JhcHBlci5tYXJrKCk7CisgICAgaWYgKCFtX2dsb2JhbE9iamVj
dC0+bWFya2VkKCkpCisgICAgICAgIG1fZ2xvYmFsT2JqZWN0LT5tYXJrKCk7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFdlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVx
dWVzdENvbnN0cnVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hN
TEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IuaAkocmV2aXNpb24gNDEzNTEpCisrKyBXZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw3ICsyNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEpTWE1MSHR0cFJlcXVl
c3RDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01PYmplY3QgewogcHVibGljOgogICAgIEpTWE1MSHR0
cFJlcXVlc3RDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQqKTsKLSAgICBTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgeyByZXR1cm4gbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0OyB9CisgICAgU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCogc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0OwogICAgIHN0YXRpYyBj
b25zdCBKU0M6OkNsYXNzSW5mbyBzX2luZm87CiAKICAgICB2aXJ0dWFsIHZvaWQgbWFyaygpOwpA
QCAtMzUsOCArMzUsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgSlNDOjpDb25zdHJ1Y3RUeXBl
IGdldENvbnN0cnVjdERhdGEoSlNDOjpDb25zdHJ1Y3REYXRhJik7CiAgICAgdmlydHVhbCBjb25z
dCBKU0M6OkNsYXNzSW5mbyogY2xhc3NJbmZvKCkgY29uc3QgeyByZXR1cm4gJnNfaW5mbzsgfQog
Ci0gICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogbV9zY3JpcHRFeGVjdXRpb25Db250ZXh0Owot
ICAgIEpTQzo6SlNWYWx1ZVB0ciBtX2NvbnRleHRXcmFwcGVyOworICAgIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBtX2dsb2JhbE9iamVjdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDQxMzU3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDMtMDIgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxh
cEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc1MgorICAg
ICAgICBSRUdSRVNTSU9OOiByZWZlcmVuY2luZyBYSFIgY29uc3RydWN0b3IgZm9yIGEgbm90IHll
dCBsb2FkZWQgZnJhbWUgcGVybWFuZW50bHkgYnJlYWtzIGl0CisKKyAgICAgICAgKiBmYXN0L2Rv
bS9XaW5kb3cvcmVzb3VyY2VzL3dpbmRvdy1lYXJseS1wcm9wZXJ0aWVzLXhoci1mcmFtZS5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LWVhcmx5LXByb3BlcnRp
ZXMteGhyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dp
bmRvdy1lYXJseS1wcm9wZXJ0aWVzLXhoci5odG1sOiBBZGRlZC4KKwogMjAwOS0wMy0wMSAgRGF2
aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWxl
eGV5IFByb3NrdXJ5YWtvdi4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5k
b3ctZWFybHktcHJvcGVydGllcy14aHItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctZWFybHktcHJvcGVydGllcy14aHItZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRv
dy1lYXJseS1wcm9wZXJ0aWVzLXhoci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsNiBAQAorVGVzdCBmb3IgYnVnIDIxNzUyOiBSZWZlcmVuY2luZyBYSFIgY29uc3RydWN0b3Ig
Zm9yIGEgbm90IHlldCBsb2FkZWQgZnJhbWUgcGVybWFuZW50bHkgYnJlYWtzIGl0LgorCitTaG91
bGQgc2F5IFNVQ0NFU1M6CisKK1NVQ0NFU1MKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1lYXJseS1wcm9wZXJ0aWVzLXhoci1leHBlY3Rl
ZC50eHQKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4dC9wbGFpbgpOYW1l
OiBzdm46ZW9sLXN0eWxlCiAgICsgbmF0aXZlCgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1lYXJseS1wcm9wZXJ0aWVzLXhoci5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctZWFybHktcHJvcGVydGllcy14aHIuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctZWFy
bHktcHJvcGVydGllcy14aHIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNCBAQAorPGJv
ZHk+Cis8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE3NTIiPmJ1ZyAyMTc1MjwvYT46CitSZWZlcmVuY2luZyBYSFIgY29uc3RydWN0
b3IgZm9yIGEgbm90IHlldCBsb2FkZWQgZnJhbWUgcGVybWFuZW50bHkgYnJlYWtzIGl0LjwvcD4K
KzxwPlNob3VsZCBzYXkgU1VDQ0VTUzo8L3A+Cis8ZGl2IGlkPXJlc3VsdD48L2Rpdj4KKzxpZnJh
bWUgc3JjPSJyZXNvdXJjZXMvd2luZG93LWVhcmx5LXByb3BlcnRpZXMteGhyLWZyYW1lLmh0bWwi
PjwvaWZyYW1lPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworfQord2luZG93LmZyYW1lc1swXS5YTUxIdHRwUmVx
dWVzdDsKKzwvc2NyaXB0PgorPC9ib2R5PgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVz
dHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1lYXJseS1wcm9wZXJ0aWVzLXhoci5odG1sCl9fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX18KTmFtZTogc3ZuOm1pbWUtdHlwZQogICArIHRleHQvaHRtbAoKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvd2luZG93LWVhcmx5LXByb3BlcnRpZXMteGhy
LWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3Jl
c291cmNlcy93aW5kb3ctZWFybHktcHJvcGVydGllcy14aHItZnJhbWUuaHRtbAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvd2luZG93LWVhcmx5
LXByb3BlcnRpZXMteGhyLWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CitmdW5jdGlv
biBsb2FkKCkgeworICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgIHhoci5vbmxv
YWQgPSBmdW5jdGlvbigpIHsKKyAgICB0b3AuZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3Vs
dCIpLmlubmVySFRNTD0iU1VDQ0VTUyI7CisgICAgaWYgKHRvcC5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgICAgdG9wLmxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgfQor
ICB4aHIub3BlbigiR0VUIiwgIndpbmRvdy1lYXJseS1wcm9wZXJ0aWVzLXhoci1mcmFtZS5odG1s
Iik7CisgIHhoci5zZW5kKGZhbHNlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJsb2FkKCk7Ij4KKzwvYm9keT4KKzwvaHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9yZXNvdXJjZXMvd2luZG93LWVhcmx5LXByb3BlcnRp
ZXMteGhyLWZyYW1lLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46bWltZS10eXBlCiAgICsgdGV4
dC9odG1sCgo=
</data>
<flag name="review"
          id="13765"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>