<?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>22588</bug_id>
          
          <creation_ts>2008-12-01 22:11:02 -0800</creation_ts>
          <short_desc>securityOrigin() should move from Document and WorkerContext into ScriptExecutionContext</short_desc>
          <delta_ts>2008-12-02 00:49:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>100967</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2008-12-01 22:11:02 -0800</bug_when>
    <thetext>Code like XMLHttpRequest should work on either the Document or WorkerContext.

Moving SecurityOrigin into ScriptExecutionContext helps this goal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100980</commentid>
    <comment_count>1</comment_count>
      <attachid>25668</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2008-12-01 22:54:25 -0800</bug_when>
    <thetext>Created attachment 25668
patch for bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100985</commentid>
    <comment_count>2</comment_count>
      <attachid>25668</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-02 00:20:16 -0800</bug_when>
    <thetext>Comment on attachment 25668
patch for bug.

r=me

It is quite sad that you have to hack around the difference between ScriptExecutionContext::setSecurityOrigin and Document::setSecurityOrigin. I think that the initDNSPrefetch() call in setSecurityOrigin() is misplaced - there are lots of things that depend on protocol in loader, but we don&apos;t eagerly initialize them all in setSecurityOrigin(), or track in Document at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>100986</commentid>
    <comment_count>3</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-12-02 00:49:31 -0800</bug_when>
    <thetext>Committed revision 38900.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>25668</attachid>
            <date>2008-12-01 22:54:25 -0800</date>
            <delta_ts>2008-12-02 00:20:16 -0800</delta_ts>
            <desc>patch for bug.</desc>
            <filename>patch-for-bug22588.txt</filename>
            <type>text/plain</type>
            <size>15831</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzODg5NikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDIgQEAKKzIwMDgtMTItMDEgIERhdmlkIExldmluICA8bGV2aW5AY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4OAorICAgICAgICBNb3Zl
IHNlY3VyaXR5T3JpZ2luKCkgZnJvbSBEb2N1bWVudCBhbmQgV29ya2VyQ29udGV4dCBpbnRvIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuCisKKyAgICAgICAgTm8gb2JzZXJ2YWJsZSBjaGFuZ2UgaW4g
YmVoYXZpb3IsIHNvIG5vIHRlc3QuCisgICAgICAgIAorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6b3Blbik6CisgICAgICAgIChXZWJDb3Jl
OjpEb2N1bWVudDo6ZG9tYWluKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpzZXREb21h
aW4pOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldFNlY3VyaXR5T3JpZ2luKToKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBkb20vU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRTZWN1cml0
eU9yaWdpbik6CisgICAgICAgICogZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNlY3VyaXR5T3JpZ2luKToKKyAg
ICAgICAgKiBkb20vV29ya2VyQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJD
b250ZXh0OjpXb3JrZXJDb250ZXh0KToKKyAgICAgICAgKiBkb20vV29ya2VyQ29udGV4dC5oOgor
ICAgICAgICBUaGVzZSBjaGFuZ2VzIGFyZSBmb3IgdGhlIG1vdmUgb2Ygc2VjdXJpdHlPcmlnaW4o
KS4KKyAgICAgICAgCisgICAgICAgICogeG1sL1hNTEh0dHBSZXF1ZXN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpjcmVhdGVSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlhNTEh0dHBSZXF1ZXN0OjptYWtlU2ltcGxlQ3Jvc3NTaXRlQWNjZXNzUmVxdWVzdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVxdWVzdDo6bWFrZUNyb3NzU2l0ZUFjY2Vzc1JlcXVl
c3RXaXRoUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1ZXN0OjpoYW5k
bGVBc3luY2hyb25vdXNQcmVmbGlnaHRSZXN1bHQpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3Q6OnNldFJlcXVlc3RIZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJl
cXVlc3Q6OmdldEFsbFJlc3BvbnNlSGVhZGVycyk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRw
UmVxdWVzdDo6Z2V0UmVzcG9uc2VIZWFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0cFJl
cXVlc3Q6OnByb2Nlc3NTeW5jTG9hZFJlc3VsdHMpOgorICAgICAgICAoV2ViQ29yZTo6WE1MSHR0
cFJlcXVlc3Q6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxIdHRwUmVx
dWVzdDo6YWNjZXNzQ29udHJvbENoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTEh0dHBSZXF1
ZXN0OjpkaWRSZWNlaXZlUmVzcG9uc2VQcmVmbGlnaHQpOgorICAgICAgICBDaGFuZ2UgWE1MSHR0
cFJlcXVlc3QgdG8gdXNlIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQgaW5zdGVhZCBvZiBEb2N1bWVu
dCB0byBhY2Nlc3Mgc2VjdXJpdHlPcmlnaW4oKS4KKwogMjAwOC0xMi0wMSAgU3RldmUgRmFsa2Vu
YnVyZyAgPHNmYWxrZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlzZSBub2RlL3NlbGVjdGlv
biBpbWFnZSBmaXguCkluZGV4OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAzODg4NykKKysrIFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDcgQEAKICAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDggVG9yY2ggTW9iaWxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAgICAgICAgICAgICAgIGh0dHA6Ly93d3cudG9yY2htb2Jp
bGUuY29tLworICogQ29weXJpZ2h0IChDKSAyMDA4IERhdmlkIExldmluIChsZXZpbkBjaHJvbWl1
bS5vcmcpCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTE0MDgsNyArMTQwOSw3IEBAIHZvaWQgRG9j
dW1lbnQ6Om9wZW4oRG9jdW1lbnQqIG93bmVyRG9jdW0KICAgICBpZiAob3duZXJEb2N1bWVudCkg
ewogICAgICAgICBzZXRVUkwob3duZXJEb2N1bWVudC0+dXJsKCkpOwogICAgICAgICBtX2Nvb2tp
ZVVSTCA9IG93bmVyRG9jdW1lbnQtPmNvb2tpZVVSTCgpOwotICAgICAgICBtX3NlY3VyaXR5T3Jp
Z2luID0gb3duZXJEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKKyAgICAgICAgU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6c2V0U2VjdXJpdHlPcmlnaW4ob3duZXJEb2N1bWVudC0+c2VjdXJpdHlP
cmlnaW4oKSk7CiAgICAgfQogCiAgICAgaWYgKG1fZnJhbWUpIHsKQEAgLTI4OTMsNyArMjg5NCw3
IEBAIFN0cmluZyBEb2N1bWVudDo6cmVmZXJyZXIoKSBjb25zdAogCiBTdHJpbmcgRG9jdW1lbnQ6
OmRvbWFpbigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4tPmRvbWFpbigp
OworICAgIHJldHVybiBzZWN1cml0eU9yaWdpbigpLT5kb21haW4oKTsKIH0KIAogdm9pZCBEb2N1
bWVudDo6c2V0RG9tYWluKGNvbnN0IFN0cmluZyYgbmV3RG9tYWluKQpAQCAtMjkwNCwxMyArMjkw
NSwxMyBAQCB2b2lkIERvY3VtZW50OjpzZXREb21haW4oY29uc3QgU3RyaW5nJiBuCiAgICAgLy8g
RklYTUU6IFdlIHNob3VsZCBhZGQgbG9nZ2luZyBpbmRpY2F0aW5nIHdoeSBhIGRvbWFpbiB3YXMg
bm90IGFsbG93ZWQuCiAKICAgICAvLyBJZiB0aGUgbmV3IGRvbWFpbiBpcyB0aGUgc2FtZSBhcyB0
aGUgb2xkIGRvbWFpbiwgc3RpbGwgY2FsbAotICAgIC8vIG1fc2VjdXJpdHlPcmlnaW4uc2V0RG9t
YWluRm9yRE9NLiBUaGlzIHdpbGwgY2hhbmdlIHRoZQorICAgIC8vIHNlY3VyaXR5T3JpZ2luKCkt
PnNldERvbWFpbkZvckRPTS4gVGhpcyB3aWxsIGNoYW5nZSB0aGUKICAgICAvLyBzZWN1cml0eSBj
aGVjayBiZWhhdmlvci4gRm9yIGV4YW1wbGUsIGlmIGEgcGFnZSBsb2FkZWQgb24gcG9ydCA4MDAw
CiAgICAgLy8gYXNzaWducyBpdHMgY3VycmVudCBkb21haW4gdXNpbmcgZG9jdW1lbnQuZG9tYWlu
LCB0aGUgcGFnZSB3aWxsCiAgICAgLy8gYWxsb3cgb3RoZXIgcGFnZXMgbG9hZGVkIG9uIGRpZmZl
cmVudCBwb3J0cyBpbiB0aGUgc2FtZSBkb21haW4gdGhhdAogICAgIC8vIGhhdmUgYWxzbyBhc3Np
Z25lZCB0byBhY2Nlc3MgdGhpcyBwYWdlLgogICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShkb21h
aW4oKSwgbmV3RG9tYWluKSkgewotICAgICAgICBtX3NlY3VyaXR5T3JpZ2luLT5zZXREb21haW5G
cm9tRE9NKG5ld0RvbWFpbik7CisgICAgICAgIHNlY3VyaXR5T3JpZ2luKCktPnNldERvbWFpbkZy
b21ET00obmV3RG9tYWluKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjkzMSw3ICsy
OTMyLDcgQEAgdm9pZCBEb2N1bWVudDo6c2V0RG9tYWluKGNvbnN0IFN0cmluZyYgbgogICAgIGlm
ICh0ZXN0ICE9IG5ld0RvbWFpbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9zZWN1cml0eU9y
aWdpbi0+c2V0RG9tYWluRnJvbURPTShuZXdEb21haW4pOworICAgIHNlY3VyaXR5T3JpZ2luKCkt
PnNldERvbWFpbkZyb21ET00obmV3RG9tYWluKTsKIH0KIAogU3RyaW5nIERvY3VtZW50OjpsYXN0
TW9kaWZpZWQoKSBjb25zdApAQCAtNDAzOSwxNCArNDA0MCwxNCBAQCBib29sIERvY3VtZW50Ojp1
c2VTZWN1cmVLZXlib2FyZEVudHJ5V2hlCiAKIHZvaWQgRG9jdW1lbnQ6OmluaXRTZWN1cml0eUNv
bnRleHQoKQogewotICAgIGlmIChtX3NlY3VyaXR5T3JpZ2luICYmICFtX3NlY3VyaXR5T3JpZ2lu
LT5pc0VtcHR5KCkpCisgICAgaWYgKHNlY3VyaXR5T3JpZ2luKCkgJiYgIXNlY3VyaXR5T3JpZ2lu
KCktPmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOyAgLy8gbV9zZWN1cml0eU9yaWdpbiBoYXMg
YWxyZWFkeSBiZWVuIGluaXRpYWxpemVkLgogCiAgICAgaWYgKCFtX2ZyYW1lKSB7CiAgICAgICAg
IC8vIE5vIHNvdXJjZSBmb3IgYSBzZWN1cml0eSBjb250ZXh0LgogICAgICAgICAvLyBUaGlzIGNh
biBvY2N1ciB2aWEgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQoKS4KICAg
ICAgICAgbV9jb29raWVVUkwgPSBLVVJMKCIiKTsKLSAgICAgICAgbV9zZWN1cml0eU9yaWdpbiA9
IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGVFbXB0eSgpOworICAgICAgICBTY3JpcHRFeGVjdXRpb25D
b250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRW1wdHkoKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTQwNTQsNyArNDA1NSw3IEBAIHZvaWQgRG9j
dW1lbnQ6OmluaXRTZWN1cml0eUNvbnRleHQoKQogICAgIC8vIGxvYWRpbmcgVVJMLgogICAgIGNv
bnN0IEtVUkwmIHVybCA9IG1fZnJhbWUtPmxvYWRlcigpLT51cmwoKTsKICAgICBtX2Nvb2tpZVVS
TCA9IHVybDsKLSAgICBtX3NlY3VyaXR5T3JpZ2luID0gU2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1
cmwpOworICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldFNlY3VyaXR5T3JpZ2luKFNlY3Vy
aXR5T3JpZ2luOjpjcmVhdGUodXJsKSk7CiAKICAgICBpZiAoRnJhbWVMb2FkZXI6OmFsbG93U3Vi
c3RpdHV0ZURhdGFBY2Nlc3NUb0xvY2FsKCkpIHsKICAgICAgICAgLy8gSWYgdGhpcyBkb2N1bWVu
dCB3YXMgbG9hZGVkIHdpdGggc3Vic3RpdHV0ZURhdGEsIHRoZW4gdGhlIGRvY3VtZW50IGNhbgpA
QCAtNDA2MywxMCArNDA2NCwxMCBAQCB2b2lkIERvY3VtZW50Ojppbml0U2VjdXJpdHlDb250ZXh0
KCkKICAgICAgICAgLy8gZGlzY3Vzc2lvbi4KICAgICAgICAgRG9jdW1lbnRMb2FkZXIqIGRvY3Vt
ZW50TG9hZGVyID0gbV9mcmFtZS0+bG9hZGVyKCktPmRvY3VtZW50TG9hZGVyKCk7CiAgICAgICAg
IGlmIChkb2N1bWVudExvYWRlciAmJiBkb2N1bWVudExvYWRlci0+c3Vic3RpdHV0ZURhdGEoKS5p
c1ZhbGlkKCkpCi0gICAgICAgICAgICBtX3NlY3VyaXR5T3JpZ2luLT5ncmFudExvYWRMb2NhbFJl
c291cmNlcygpOworICAgICAgICAgICAgc2VjdXJpdHlPcmlnaW4oKS0+Z3JhbnRMb2FkTG9jYWxS
ZXNvdXJjZXMoKTsKICAgICB9CiAKLSAgICBpZiAoIW1fc2VjdXJpdHlPcmlnaW4tPmlzRW1wdHko
KSkKKyAgICBpZiAoIXNlY3VyaXR5T3JpZ2luKCktPmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgLy8gSWYgd2UgZG8gbm90IG9idGFpbiBhIG1lYW5pbmdmdWwgb3JpZ2luIGZyb20g
dGhlIFVSTCwgdGhlbiB3ZSB0cnkgdG8KQEAgLTQwODAsMTMgKzQwODEsMTMgQEAgdm9pZCBEb2N1
bWVudDo6aW5pdFNlY3VyaXR5Q29udGV4dCgpCiAgICAgICAgIG1fY29va2llVVJMID0gb3duZXJG
cmFtZS0+ZG9jdW1lbnQoKS0+Y29va2llVVJMKCk7CiAgICAgICAgIC8vIFdlIGFsaWFzIHRoZSBT
ZWN1cml0eU9yaWdpbnMgdG8gbWF0Y2ggRmlyZWZveCwgc2VlIEJ1ZyAxNTMxMwogICAgICAgICAv
LyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUzMTMKLSAgICAgICAg
bV9zZWN1cml0eU9yaWdpbiA9IG93bmVyRnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2lu
KCk7CisgICAgICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OnNldFNlY3VyaXR5T3JpZ2luKG93
bmVyRnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpOwogICAgIH0KIH0KIAogdm9p
ZCBEb2N1bWVudDo6c2V0U2VjdXJpdHlPcmlnaW4oU2VjdXJpdHlPcmlnaW4qIHNlY3VyaXR5T3Jp
Z2luKQogewotICAgIG1fc2VjdXJpdHlPcmlnaW4gPSBzZWN1cml0eU9yaWdpbjsKKyAgICBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpzZXRTZWN1cml0eU9yaWdpbihzZWN1cml0eU9yaWdpbik7CiAg
ICAgaW5pdEROU1ByZWZldGNoKCk7CiB9CiAKSW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2aXNpb24gMzg4ODcpCisr
KyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC05ODAsNyArOTgwLDYg
QEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIGluaXRTZWN1cml0eUNvbnRleHQoKTsKLSAg
ICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3NlY3Vy
aXR5T3JpZ2luLmdldCgpOyB9CiAKICAgICAvLyBFeHBsaWNpdGx5IG92ZXJyaWRlIHRoZSBzZWN1
cml0eSBvcmlnaW4gZm9yIHRoaXMgZG9jdW1lbnQuCiAgICAgLy8gTm90ZTogSXQgaXMgZGFuZ2Vy
b3VzIHRvIGNoYW5nZSB0aGUgc2VjdXJpdHkgb3JpZ2luIG9mIGEgZG9jdW1lbnQKQEAgLTEwMTEs
OCArMTAxMCw2IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVGb2N1c0FwcGVhcmFuY2VUaW1l
ckZpcmVkKFRpbWVyPERvY3VtZW50PiopOwogICAgIHZvaWQgdXBkYXRlQmFzZVVSTCgpOwogCi0g
ICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3NlY3VyaXR5T3JpZ2luOwotCiAgICAgUmVuZGVy
T2JqZWN0KiBtX3NhdmVkUmVuZGVyZXI7CiAgICAgaW50IG1fc2VjdXJlRm9ybXM7CiAgICAgCklu
ZGV4OiBXZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAkocmV2aXNpb24gMzg4ODcp
CisrKyBXZWJDb3JlL2RvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiTWVzc2FnZVBvcnQuaCIKKyNpbmNsdWRlICJTZWN1
cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSAiV29ya2VyQ29udGV4
dC5oIgogI2luY2x1ZGUgIldvcmtlclRhc2suaCIKQEAgLTEzOCw2ICsxMzksMTEgQEAgdm9pZCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0OjpkZXN0cm95ZWRBYwogICAgIG1fYWN0aXZlRE9NT2JqZWN0
cy5yZW1vdmUob2JqZWN0KTsKIH0KIAordm9pZCBTY3JpcHRFeGVjdXRpb25Db250ZXh0OjpzZXRT
ZWN1cml0eU9yaWdpbihQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBzZWN1cml0eU9yaWdpbikK
K3sKKyAgICBtX3NlY3VyaXR5T3JpZ2luID0gc2VjdXJpdHlPcmlnaW47Cit9CisKIFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQ6OlRhc2s6On5UYXNrKCkKIHsKIH0KSW5kZXg6IFdlYkNvcmUvZG9tL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9TY3JpcHRF
eGVjdXRpb25Db250ZXh0LmgJKHJldmlzaW9uIDM4ODg3KQorKysgV2ViQ29yZS9kb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw4IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBjb25zdCBLVVJMJiB1cmwoKSBjb25zdCB7IHJldHVy
biB2aXJ0dWFsVVJMKCk7IH0KIAorICAgICAgICBTZWN1cml0eU9yaWdpbiogc2VjdXJpdHlPcmln
aW4oKSBjb25zdCB7IHJldHVybiBtX3NlY3VyaXR5T3JpZ2luLmdldCgpOyB9CisKICAgICAgICAg
dmlydHVhbCB2b2lkIHJlcG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwg
aW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7CiAKICAgICAgICAg
Ly8gQWN0aXZlIG9iamVjdHMgYXJlIG5vdCBnYXJiYWdlIGNvbGxlY3RlZCBldmVuIGlmIGluYWNj
ZXNzaWJsZSwgZS5nLiBiZWNhdXNlIHRoZWlyIGFjdGl2aXR5IG1heSByZXN1bHQgaW4gY2FsbGJh
Y2tzIGJlaW5nIGludm9rZWQuCkBAIC03Nyw5ICs3OSwxNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKICAgICAgICAgdm9pZCBwb3N0VGFzayhQYXNzUmVmUHRyPFRhc2s+KTsgLy8gRXhlY3V0ZXMg
dGhlIHRhc2sgb24gY29udGV4dCdzIHRocmVhZCBhc3luY2hyb25vdXNseS4KIAorICAgIHByb3Rl
Y3RlZDoKKyAgICAgICAgLy8gRXhwbGljaXRseSBvdmVycmlkZSB0aGUgc2VjdXJpdHkgb3JpZ2lu
IGZvciB0aGlzIHNjcmlwdCBjb250ZXh0LgorICAgICAgICAvLyBOb3RlOiBJdCBpcyBkYW5nZXJv
dXMgdG8gY2hhbmdlIHRoZSBzZWN1cml0eSBvcmlnaW4gb2YgYSBzY3JpcHQgY29udGV4dAorICAg
ICAgICAvLyAgICAgICB0aGF0IGFscmVhZHkgY29udGFpbnMgY29udGVudC4KKyAgICAgICAgdm9p
ZCBzZXRTZWN1cml0eU9yaWdpbihQYXNzUmVmUHRyPFNlY3VyaXR5T3JpZ2luPik7CisKICAgICBw
cml2YXRlOgogICAgICAgICB2aXJ0dWFsIGNvbnN0IEtVUkwmIHZpcnR1YWxVUkwoKSBjb25zdCA9
IDA7CiAKKyAgICAgICAgUmVmUHRyPFNlY3VyaXR5T3JpZ2luPiBtX3NlY3VyaXR5T3JpZ2luOwor
CiAgICAgICAgIEhhc2hTZXQ8TWVzc2FnZVBvcnQqPiBtX21lc3NhZ2VQb3J0czsKIAogICAgICAg
ICBIYXNoTWFwPEFjdGl2ZURPTU9iamVjdCosIHZvaWQqPiBtX2FjdGl2ZURPTU9iamVjdHM7Cklu
ZGV4OiBXZWJDb3JlL2RvbS9Xb3JrZXJDb250ZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2RvbS9Xb3JrZXJDb250ZXh0LmNwcAkocmV2aXNpb24gMzg4ODcpCisrKyBXZWJDb3JlL2RvbS9X
b3JrZXJDb250ZXh0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDQsMTAgKzQ0LDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIFdvcmtlckNvbnRleHQ6OldvcmtlckNvbnRleHQoY29uc3QgS1VSTCYg
dXJsLCBXb3JrZXJUaHJlYWQqIHRocmVhZCkKICAgICA6IG1fdXJsKHVybCkKICAgICAsIG1fbG9j
YXRpb24oV29ya2VyTG9jYXRpb246OmNyZWF0ZSh1cmwpKQotICAgICwgbV9zZWN1cml0eU9yaWdp
bihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCkpCiAgICAgLCBtX3NjcmlwdChuZXcgV29ya2Vy
U2NyaXB0Q29udHJvbGxlcih0aGlzKSkKICAgICAsIG1fdGhyZWFkKHRocmVhZCkKIHsKKyAgICBz
ZXRTZWN1cml0eU9yaWdpbihTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKHVybCkpOwogfQogCiBXb3Jr
ZXJDb250ZXh0Ojp+V29ya2VyQ29udGV4dCgpCkluZGV4OiBXZWJDb3JlL2RvbS9Xb3JrZXJDb250
ZXh0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vV29ya2VyQ29udGV4dC5oCShyZXZpc2lv
biAzODg4NykKKysrIFdlYkNvcmUvZG9tL1dvcmtlckNvbnRleHQuaAkod29ya2luZyBjb3B5KQpA
QCAtNjEsNyArNjEsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgY29uc3QgS1VS
TCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KICAgICAgICAgdmlydHVhbCBLVVJMIGNv
bXBsZXRlVVJMKGNvbnN0IFN0cmluZyYpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIFNlY3VyaXR5
T3JpZ2luKiBzZWN1cml0eU9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc2VjdXJpdHlPcmlnaW4u
Z2V0KCk7IH0KIAogICAgICAgICBXb3JrZXJMb2NhdGlvbiogbG9jYXRpb24oKSBjb25zdCB7IHJl
dHVybiBtX2xvY2F0aW9uLmdldCgpOyB9CiAKQEAgLTEwMyw3ICsxMDIsNiBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgS1VSTCBtX3VybDsKICAgICAgICAgUmVmUHRyPFdvcmtlckxv
Y2F0aW9uPiBtX2xvY2F0aW9uOwotICAgICAgICBSZWZQdHI8U2VjdXJpdHlPcmlnaW4+IG1fc2Vj
dXJpdHlPcmlnaW47CiAKICAgICAgICAgT3duUHRyPFdvcmtlclNjcmlwdENvbnRyb2xsZXI+IG1f
c2NyaXB0OwogICAgICAgICBXb3JrZXJUaHJlYWQqIG1fdGhyZWFkOwpJbmRleDogV2ViQ29yZS94
bWwvWE1MSHR0cFJlcXVlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveG1sL1hNTEh0dHBS
ZXF1ZXN0LmNwcAkocmV2aXNpb24gMzg4ODcpCisrKyBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVz
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzMCw3ICs2MzAsNyBAQCB2b2lkIFhNTEh0dHBSZXF1
ZXN0OjpjcmVhdGVSZXF1ZXN0KEV4Y2VwCiAgICAgICAgICAgICBtX3VwbG9hZC0+ZGlzcGF0Y2hM
b2FkU3RhcnRFdmVudCgpOwogICAgIH0KIAotICAgIG1fc2FtZU9yaWdpblJlcXVlc3QgPSBkb2N1
bWVudCgpLT5zZWN1cml0eU9yaWdpbigpLT5jYW5SZXF1ZXN0KG1fdXJsKTsKKyAgICBtX3NhbWVP
cmlnaW5SZXF1ZXN0ID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigp
LT5jYW5SZXF1ZXN0KG1fdXJsKTsKIAogICAgIGlmICghbV9zYW1lT3JpZ2luUmVxdWVzdCkgewog
ICAgICAgICBtYWtlQ3Jvc3NTaXRlQWNjZXNzUmVxdWVzdChlYyk7CkBAIC02OTYsNyArNjk2LDcg
QEAgdm9pZCBYTUxIdHRwUmVxdWVzdDo6bWFrZVNpbXBsZUNyb3NzU2l0ZQogICAgIFJlc291cmNl
UmVxdWVzdCByZXF1ZXN0KHVybCk7CiAgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKG1fbWV0aG9k
KTsKICAgICByZXF1ZXN0LnNldEFsbG93SFRUUENvb2tpZXMobV9pbmNsdWRlQ3JlZGVudGlhbHMp
OwotICAgIHJlcXVlc3Quc2V0SFRUUE9yaWdpbihkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigp
LT50b1N0cmluZygpKTsKKyAgICByZXF1ZXN0LnNldEhUVFBPcmlnaW4oc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50b1N0cmluZygpKTsKIAogICAgIGlmIChtX3Jl
cXVlc3RIZWFkZXJzLnNpemUoKSA+IDApCiAgICAgICAgIHJlcXVlc3QuYWRkSFRUUEhlYWRlckZp
ZWxkcyhtX3JlcXVlc3RIZWFkZXJzKTsKQEAgLTcwOSw3ICs3MDksNyBAQCB2b2lkIFhNTEh0dHBS
ZXF1ZXN0OjptYWtlU2ltcGxlQ3Jvc3NTaXRlCiAKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6Om1ha2VD
cm9zc1NpdGVBY2Nlc3NSZXF1ZXN0V2l0aFByZWZsaWdodChFeGNlcHRpb25Db2RlJiBlYykKIHsK
LSAgICBTdHJpbmcgb3JpZ2luID0gZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+dG9TdHJp
bmcoKTsKKyAgICBTdHJpbmcgb3JpZ2luID0gc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1
cml0eU9yaWdpbigpLT50b1N0cmluZygpOwogICAgIEtVUkwgdXJsID0gbV91cmw7CiAgICAgdXJs
LnNldFVzZXIoU3RyaW5nKCkpOwogICAgIHVybC5zZXRQYXNzKFN0cmluZygpKTsKQEAgLTc4Niw3
ICs3ODYsNyBAQCB2b2lkIFhNTEh0dHBSZXF1ZXN0OjpoYW5kbGVBc3luY2hyb25vdXNQCiAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QodXJsKTsKICAgICByZXF1ZXN0LnNldEhUVFBNZXRob2Qo
bV9tZXRob2QpOwogICAgIHJlcXVlc3Quc2V0QWxsb3dIVFRQQ29va2llcyhtX2luY2x1ZGVDcmVk
ZW50aWFscyk7Ci0gICAgcmVxdWVzdC5zZXRIVFRQT3JpZ2luKGRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCktPnRvU3RyaW5nKCkpOworICAgIHJlcXVlc3Quc2V0SFRUUE9yaWdpbihzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCkpOwogCiAgICAg
aWYgKG1fcmVxdWVzdEhlYWRlcnMuc2l6ZSgpID4gMCkKICAgICAgICAgcmVxdWVzdC5hZGRIVFRQ
SGVhZGVyRmllbGRzKG1fcmVxdWVzdEhlYWRlcnMpOwpAQCAtOTk1LDcgKzk5NSw3IEBAIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OnNldFJlcXVlc3RIZWFkZXIoY28KICAgICB9CiAKICAgICAvLyBBIHBy
aXZpbGVnZWQgc2NyaXB0IChlLmcuIGEgRGFzaGJvYXJkIHdpZGdldCkgY2FuIHNldCBhbnkgaGVh
ZGVycy4KLSAgICBpZiAoIWRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkxvYWRMb2Nh
bFJlc291cmNlcygpICYmICFpc1NhZmVSZXF1ZXN0SGVhZGVyKG5hbWUpKSB7CisgICAgaWYgKCFz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhbkxvYWRMb2NhbFJl
c291cmNlcygpICYmICFpc1NhZmVSZXF1ZXN0SGVhZGVyKG5hbWUpKSB7CiAgICAgICAgIHJlcG9y
dFVuc2FmZVVzYWdlKGRvY3VtZW50KCksICJSZWZ1c2VkIHRvIHNldCB1bnNhZmUgaGVhZGVyIFwi
IiArIG5hbWUgKyAiXCIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEwMzgsNyArMTAz
OCw3IEBAIFN0cmluZyBYTUxIdHRwUmVxdWVzdDo6Z2V0QWxsUmVzcG9uc2VIZWEKICAgICAgICAg
Ly8gICAgIDIpIFRoZXJlJ3Mgbm8ga25vd24gaGFybSBpbiBoaWRpbmcgU2V0LUNvb2tpZSBoZWFk
ZXIgZmllbGRzIGVudGlyZWx5OyB3ZSBkb24ndAogICAgICAgICAvLyAgICAgICAga25vdyBhbnkg
d2lkZWx5IHVzZWQgdGVjaG5pcXVlIHRoYXQgcmVxdWlyZXMgYWNjZXNzIHRvIHRoZW0uCiAgICAg
ICAgIC8vICAgICAzKSBGaXJlZm94IGhhcyBpbXBsZW1lbnRlZCB0aGlzIHBvbGljeS4KLSAgICAg
ICAgaWYgKGlzU2V0Q29va2llSGVhZGVyKGl0LT5maXJzdCkgJiYgIWRvY3VtZW50KCktPnNlY3Vy
aXR5T3JpZ2luKCktPmNhbkxvYWRMb2NhbFJlc291cmNlcygpKQorICAgICAgICBpZiAoaXNTZXRD
b29raWVIZWFkZXIoaXQtPmZpcnN0KSAmJiAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1
cml0eU9yaWdpbigpLT5jYW5Mb2FkTG9jYWxSZXNvdXJjZXMoKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgIGlmICghbV9zYW1lT3JpZ2luUmVxdWVzdCAmJiAhaXNPbkFjY2Vzc0Nv
bnRyb2xSZXNwb25zZUhlYWRlcldoaXRlbGlzdChpdC0+Zmlyc3QpKQpAQCAtMTA2Niw3ICsxMDY2
LDcgQEAgU3RyaW5nIFhNTEh0dHBSZXF1ZXN0OjpnZXRSZXNwb25zZUhlYWRlcgogICAgICAgICBy
ZXR1cm4gIiI7CiAKICAgICAvLyBTZWUgY29tbWVudCBpbiBnZXRBbGxSZXNwb25zZUhlYWRlcnMg
YWJvdmUuCi0gICAgaWYgKGlzU2V0Q29va2llSGVhZGVyKG5hbWUpICYmICFkb2N1bWVudCgpLT5z
ZWN1cml0eU9yaWdpbigpLT5jYW5Mb2FkTG9jYWxSZXNvdXJjZXMoKSkgeworICAgIGlmIChpc1Nl
dENvb2tpZUhlYWRlcihuYW1lKSAmJiAhc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0
eU9yaWdpbigpLT5jYW5Mb2FkTG9jYWxSZXNvdXJjZXMoKSkgewogICAgICAgICByZXBvcnRVbnNh
ZmVVc2FnZShkb2N1bWVudCgpLCAiUmVmdXNlZCB0byBnZXQgdW5zYWZlIGhlYWRlciBcIiIgKyBu
YW1lICsgIlwiIik7CiAgICAgICAgIHJldHVybiAiIjsKICAgICB9CkBAIC0xMTM0LDcgKzExMzQs
NyBAQCBTdHJpbmcgWE1MSHR0cFJlcXVlc3Q6OnN0YXR1c1RleHQoRXhjZXB0CiAKIHZvaWQgWE1M
SHR0cFJlcXVlc3Q6OnByb2Nlc3NTeW5jTG9hZFJlc3VsdHMoY29uc3QgVmVjdG9yPGNoYXI+JiBk
YXRhLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgaWYgKG1fc2FtZU9yaWdpblJlcXVlc3QgJiYgIWRvY3VtZW50KCktPnNlY3VyaXR5
T3JpZ2luKCktPmNhblJlcXVlc3QocmVzcG9uc2UudXJsKCkpKSB7CisgICAgaWYgKG1fc2FtZU9y
aWdpblJlcXVlc3QgJiYgIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4o
KS0+Y2FuUmVxdWVzdChyZXNwb25zZS51cmwoKSkpIHsKICAgICAgICAgYWJvcnQoKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KQEAgLTEyMTcsNyArMTIxNyw3IEBAIHZvaWQgWE1MSHR0cFJlcXVl
c3Q6OmRpZEZpbmlzaExvYWRpbmdQcmUKIHZvaWQgWE1MSHR0cFJlcXVlc3Q6OndpbGxTZW5kUmVx
dWVzdChTdWJyZXNvdXJjZUxvYWRlciosIFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3Qg
UmVzb3VyY2VSZXNwb25zZSYgcmVkaXJlY3RSZXNwb25zZSkKIHsKICAgICAvLyBGSVhNRTogVGhp
cyBuZWVkcyB0byBiZSBmaXhlZCB0byBmb2xsb3cgdGhlIHJlZGlyZWN0IGNvcnJlY3RseSBldmVu
IGZvciBjcm9zcy1kb21haW4gcmVxdWVzdHMuCi0gICAgaWYgKCFkb2N1bWVudCgpLT5zZWN1cml0
eU9yaWdpbigpLT5jYW5SZXF1ZXN0KHJlcXVlc3QudXJsKCkpKSB7CisgICAgaWYgKCFzY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPnNlY3VyaXR5T3JpZ2luKCktPmNhblJlcXVlc3QocmVxdWVzdC51
cmwoKSkpIHsKICAgICAgICAgaW50ZXJuYWxBYm9ydCgpOwogICAgICAgICBuZXR3b3JrRXJyb3Io
KTsKICAgICB9CkBAIC0xMjQ3LDcgKzEyNDcsNyBAQCBib29sIFhNTEh0dHBSZXF1ZXN0OjphY2Nl
c3NDb250cm9sQ2hlY2soCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxTZWN1
cml0eU9yaWdpbj4gYWNjZXNzQ29udHJvbE9yaWdpbiA9IFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUo
YWNjZXNzQ29udHJvbE9yaWdpblVSTCk7Ci0gICAgaWYgKCFhY2Nlc3NDb250cm9sT3JpZ2luLT5p
c1NhbWVTY2hlbWVIb3N0UG9ydChkb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKSkKKyAgICBp
ZiAoIWFjY2Vzc0NvbnRyb2xPcmlnaW4tPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+c2VjdXJpdHlPcmlnaW4oKSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIGlmIChtX2luY2x1ZGVDcmVkZW50aWFscykgewpAQCAtMTMwNSw3ICsxMzA1LDcgQEAg
dm9pZCBYTUxIdHRwUmVxdWVzdDo6ZGlkUmVjZWl2ZVJlc3BvbnNlUAogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNoYXJlZCgpLmFwcGVuZEVudHJ5
KGRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPnRvU3RyaW5nKCksIG1fdXJsLCBwcmVmbGln
aHRSZXN1bHQucmVsZWFzZSgpKTsKKyAgICBQcmVmbGlnaHRSZXN1bHRDYWNoZTo6c2hhcmVkKCku
YXBwZW5kRW50cnkoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZWN1cml0eU9yaWdpbigpLT50
b1N0cmluZygpLCBtX3VybCwgcHJlZmxpZ2h0UmVzdWx0LnJlbGVhc2UoKSk7CiB9CiAKIHZvaWQg
WE1MSHR0cFJlcXVlc3Q6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKFN1YnJlc291cmNlTG9hZGVyKiwg
Y29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSkK
</data>
<flag name="review"
          id="11975"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>