<?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>65578</bug_id>
          
          <creation_ts>2011-08-02 15:44:52 -0700</creation_ts>
          <short_desc>Add namespace prefix support in XML tokenizer</short_desc>
          <delta_ts>2011-08-02 17:04:25 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>
          
          <blocked>64396</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Vicki Pfau">jeffrey+webkit</reporter>
          <assigned_to name="Vicki Pfau">jeffrey+webkit</assigned_to>
          <cc>abarth</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>445573</commentid>
    <comment_count>0</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2011-08-02 15:44:52 -0700</bug_when>
    <thetext>Add namespace prefix support in XML tokenizer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445579</commentid>
    <comment_count>1</comment_count>
      <attachid>102707</attachid>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2011-08-02 15:48:31 -0700</bug_when>
    <thetext>Created attachment 102707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445585</commentid>
    <comment_count>2</comment_count>
      <attachid>102707</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-02 16:11:13 -0700</bug_when>
    <thetext>Comment on attachment 102707
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=102707&amp;action=review

&gt; Source/WebCore/xml/parser/XMLToken.h:66
&gt; +        : m_hasStandalone(false)
&gt; +        , m_hasEncoding(false)
&gt; +        , m_standalone(false)

Bad indent.  :)

&gt; Source/WebCore/xml/parser/XMLToken.h:206
&gt; +        m_target.swap(m_data);

Is this a copy?  m_data is stored using inline capacity.  It might be better to write directly into m_target.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445594</commentid>
    <comment_count>3</comment_count>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2011-08-02 16:21:15 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 102707 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102707&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/xml/parser/XMLToken.h:66
&gt; &gt; +        : m_hasStandalone(false)
&gt; &gt; +        , m_hasEncoding(false)
&gt; &gt; +        , m_standalone(false)
&gt; 
&gt; Bad indent.  :)

I keep doing this; you&apos;d have thought I&apos;d remember this by now :(

&gt; &gt; Source/WebCore/xml/parser/XMLToken.h:206
&gt; &gt; +        m_target.swap(m_data);
&gt; 
&gt; Is this a copy?  m_data is stored using inline capacity.  It might be better to write directly into m_target.

m_data needs to be cleared in the process, to make way for the local name of the tag. Would an assign and a clear make more sense than a swap? It might make sense to leave this in the back of our minds, but for now, it&apos;s functional.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445597</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-02 16:24:15 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; (From update of attachment 102707 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102707&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/xml/parser/XMLToken.h:206
&gt; &gt; &gt; +        m_target.swap(m_data);
&gt; &gt; 
&gt; &gt; Is this a copy?  m_data is stored using inline capacity.  It might be better to write directly into m_target.
&gt; 
&gt; m_data needs to be cleared in the process, to make way for the local name of the tag. Would an assign and a clear make more sense than a swap? It might make sense to leave this in the back of our minds, but for now, it&apos;s functional.

Ah, the problem is you don&apos;t know ahead of time that this is a prefix, so you need to copy out.  I&apos;d add a FIXME to try to remove the copy.  It could get expensive if every element and attribute has a prefix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445615</commentid>
    <comment_count>5</comment_count>
      <attachid>102715</attachid>
    <who name="Vicki Pfau">jeffrey+webkit</who>
    <bug_when>2011-08-02 16:48:50 -0700</bug_when>
    <thetext>Created attachment 102715
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445621</commentid>
    <comment_count>6</comment_count>
      <attachid>102715</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-02 17:04:20 -0700</bug_when>
    <thetext>Comment on attachment 102715
Patch for landing

Clearing flags on attachment: 102715

Committed r92249: &lt;http://trac.webkit.org/changeset/92249&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445622</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-02 17:04:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102707</attachid>
            <date>2011-08-02 15:48:31 -0700</date>
            <delta_ts>2011-08-02 16:48:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65578-20110802154841.patch</filename>
            <type>text/plain</type>
            <size>17105</size>
            <attacher name="Vicki Pfau">jeffrey+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE4NTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4YjA0YzczZmIwNmIzYTFi
NzIwOTI1N2UxZGNmNGVmYzIxMDM1NzM5Li5mNGJlNWRlZWQzMDhmODQwZGNiM2I5YTEzMTVhZjcy
ZDg5M2Q5NjI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMDgtMDIgIEplZmZy
ZXkgUGZhdSAgPGpwZmF1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbmFtZXNwYWNlIHByZWZp
eCBzdXBwb3J0IGluIFhNTCB0b2tlbml6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY1NTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBhbHNvIGNoYW5nZXMgbWFya3VwIGRlYnVnIHByaW50aW5n
IHRvIHByaW50IHRvIHN0ZGVyciBpbnN0ZWFkIG9mIHN0ZG91dAorCisgICAgICAgICogeG1sL3Bh
cnNlci9NYXJrdXBUb2tlbkJhc2UuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1hcmt1cFRva2VuQmFz
ZTo6cHJpbnRTdHJpbmcpOgorICAgICAgICAqIHhtbC9wYXJzZXIvWE1MVG9rZW4uaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhNTFRva2VuOjpYTUxEZWNsYXJhdGlvbkRhdGE6OlhNTERlY2xhcmF0aW9u
RGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxUb2tlbjo6Y2xlYXIpOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MVG9rZW46OmFwcGVuZFRvTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxUb2tl
bjo6bmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpYTUxUb2tlbjo6dGFyZ2V0KToKKyAgICAgICAg
KFdlYkNvcmU6OlhNTFRva2VuOjpkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRva2VuOjpw
cmVmaXgpOgorICAgICAgICAoV2ViQ29yZTo6WE1MVG9rZW46OnhtbERlY2xhcmF0aW9uRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpYTUxUb2tlbjo6ZW5kUHJlZml4KToKKyAgICAgICAgKFdlYkNv
cmU6OlhNTFRva2VuOjpoYXNQcmVmaXgpOgorICAgICAgICAoV2ViQ29yZTo6WE1MVG9rZW46OmVu
ZEF0dHJpYnV0ZVByZWZpeCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxUb2tlbjo6YXR0cmlidXRl
SGFzUHJlZml4KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRva2VuOjpwcmludEF0dHJzKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTFRva2VuOjpwcmludCk6CisgICAgICAgICogeG1sL3BhcnNlci9Y
TUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MVG9rZW5pemVyOjpuZXh0VG9r
ZW4pOgorCiAyMDExLTA3LTI3ICBSb2IgQnVpcyAgPHJidWlzQHJpbS5jb20+CiAKICAgICAgICAg
SW1wbGVtZW50IGdldEludGVyc2VjdGlvbkxpc3QoKSwgZ2V0RW5jbG9zdXJlTGlzdCgpLCBjaGVj
a0ludGVyc2VjdGlvbigpIGFuZCBjaGVja0VuY2xvc3VyZSgpIGluIFNWR1NWR0VsZW1lbnQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvTWFya3VwVG9rZW5CYXNlLmggYi9T
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRva2VuQmFzZS5oCmluZGV4IDU0YmYyNmVi
N2ZiYWRjMzE5ZTA5YzczNmJhMGE0NTJlODY5N2JiYzMuLmIzOTA4OTYyYTNlZjFmZDc4NjU4ZDNj
OWVkMjE3NzdkYjQzZGJlMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIv
TWFya3VwVG9rZW5CYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9NYXJrdXBU
b2tlbkJhc2UuaApAQCAtNTEsMjcgKzUxLDI4IEBAIHB1YmxpYzoKICAgICBXVEY6OlZlY3RvcjxV
Q2hhcj4gbV9wdWJsaWNJZGVudGlmaWVyOwogICAgIFdURjo6VmVjdG9yPFVDaGFyPiBtX3N5c3Rl
bUlkZW50aWZpZXI7CiB9OwotICAgIAotdGVtcGxhdGU8dHlwZW5hbWUgVHlwZVNldCwgdHlwZW5h
bWUgRG9jdHlwZURhdGEgPSBEb2N0eXBlRGF0YUJhc2U+Ci1jbGFzcyBNYXJrdXBUb2tlbkJhc2Ug
ewotICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKE1hcmt1cFRva2VuQmFzZSk7Ci0gICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7Ci1wdWJsaWM6Ci0gICAgdHlwZWRlZiBUeXBlU2V0IFR5cGU7CiAK
K2NsYXNzIEF0dHJpYnV0ZUJhc2UgeworcHVibGljOgogICAgIGNsYXNzIFJhbmdlIHsKICAgICBw
dWJsaWM6CiAgICAgICAgIGludCBtX3N0YXJ0OwogICAgICAgICBpbnQgbV9lbmQ7CiAgICAgfTsK
IAotICAgIGNsYXNzIEF0dHJpYnV0ZSB7Ci0gICAgcHVibGljOgotICAgICAgICBSYW5nZSBtX25h
bWVSYW5nZTsKLSAgICAgICAgUmFuZ2UgbV92YWx1ZVJhbmdlOwotICAgICAgICBXVEY6OlZlY3Rv
cjxVQ2hhciwgMzI+IG1fbmFtZTsKLSAgICAgICAgV1RGOjpWZWN0b3I8VUNoYXIsIDMyPiBtX3Zh
bHVlOwotICAgIH07CisgICAgUmFuZ2UgbV9uYW1lUmFuZ2U7CisgICAgUmFuZ2UgbV92YWx1ZVJh
bmdlOworICAgIFdURjo6VmVjdG9yPFVDaGFyLCAzMj4gbV9uYW1lOworICAgIFdURjo6VmVjdG9y
PFVDaGFyLCAzMj4gbV92YWx1ZTsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lIFR5cGVTZXQsIHR5
cGVuYW1lIERvY3R5cGVEYXRhID0gRG9jdHlwZURhdGFCYXNlLCB0eXBlbmFtZSBBdHRyaWJ1dGVU
eXBlID0gQXR0cmlidXRlQmFzZT4KK2NsYXNzIE1hcmt1cFRva2VuQmFzZSB7CisgICAgV1RGX01B
S0VfTk9OQ09QWUFCTEUoTWFya3VwVG9rZW5CYXNlKTsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9D
QVRFRDsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIFR5cGVTZXQgVHlwZTsKKyAgICB0eXBlZGVmIEF0
dHJpYnV0ZVR5cGUgQXR0cmlidXRlOwogCiAgICAgdHlwZWRlZiBXVEY6OlZlY3RvcjxBdHRyaWJ1
dGUsIDEwPiBBdHRyaWJ1dGVMaXN0OwogICAgIHR5cGVkZWYgV1RGOjpWZWN0b3I8VUNoYXIsIDEw
MjQ+IERhdGFWZWN0b3I7CkBAIC0zMzQsMTkgKzMzNSw3IEBAIHByb3RlY3RlZDoKICAgICB7CiAg
ICAgICAgIERhdGFWZWN0b3I6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBzdHJpbmcuYmVnaW4oKTsK
ICAgICAgICAgZm9yICg7IGl0ZXIgIT0gc3RyaW5nLmVuZCgpOyArK2l0ZXIpCi0gICAgICAgICAg
ICBwcmludGYoIiVsYyIsIHdjaGFyX3QoKml0ZXIpKTsKLSAgICB9Ci0gICAgCi0gICAgdm9pZCBw
cmludEF0dHJzKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHR5cGVuYW1lIEF0dHJpYnV0ZUxpc3Q6
OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtX2F0dHJpYnV0ZXMuYmVnaW4oKTsKLSAgICAgICAgZm9y
ICg7IGl0ZXIgIT0gbV9hdHRyaWJ1dGVzLmVuZCgpOyArK2l0ZXIpIHsKLSAgICAgICAgICAgIHBy
aW50ZigiICIpOwotICAgICAgICAgICAgcHJpbnRTdHJpbmcoaXRlci0+bV9uYW1lKTsKLSAgICAg
ICAgICAgIHByaW50ZigiPVwiIik7Ci0gICAgICAgICAgICBwcmludFN0cmluZyhpdGVyLT5tX3Zh
bHVlKTsKLSAgICAgICAgICAgIHByaW50ZigiXCIiKTsKLSAgICAgICAgfQorICAgICAgICAgICAg
ZnByaW50ZihzdGRlcnIsICIlbGMiLCB3Y2hhcl90KCppdGVyKSk7CiAgICAgfQogI2VuZGlmIC8v
IE5ERUJVRwogCkBAIC0zNjcsNyArMzU2LDcgQEAgcHJvdGVjdGVkOgogICAgIGZyaWVuZCBjbGFz
cyBBdG9taWNIVE1MVG9rZW47CiAKICAgICB0eXBlbmFtZSBUeXBlOjpUeXBlIG1fdHlwZTsKLSAg
ICBSYW5nZSBtX3JhbmdlOyAvLyBBbHdheXMgc3RhcnRzIGF0IHplcm8uCisgICAgdHlwZW5hbWUg
QXR0cmlidXRlOjpSYW5nZSBtX3JhbmdlOyAvLyBBbHdheXMgc3RhcnRzIGF0IHplcm8uCiAgICAg
aW50IG1fYmFzZU9mZnNldDsKICAgICBEYXRhVmVjdG9yIG1fZGF0YTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxUb2tlbi5oIGIvU291cmNlL1dlYkNvcmUveG1s
L3BhcnNlci9YTUxUb2tlbi5oCmluZGV4IGFiMTY1YjcyNTcwZjUyODgzN2YwYzFhNjNhMGRmZTMz
ZjMxM2VjZGMuLjI0ZWM4NDBiZDUzYTY1MGZhZTNlMGU4NWM4YmY3YTFjODFkNTA4NmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MVG9rZW4uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS94bWwvcGFyc2VyL1hNTFRva2VuLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpZm5kZWYg
WE1MVG9rZW5faAogI2RlZmluZSBYTUxUb2tlbl9oCiAKKyNpbmNsdWRlICJFbGVtZW50LmgiCiAj
aW5jbHVkZSAiTWFya3VwVG9rZW5CYXNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTM4
LDkgKzM5LDYgQEAgcHVibGljOgogICAgICAgICBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24sCiAgICAg
ICAgIFhNTERlY2xhcmF0aW9uLAogICAgICAgICBET0NUWVBFLAotICAgICAgICBBdHRyaWJ1dGVM
aXN0RGVjbGFyYXRpb24sCi0gICAgICAgIEVsZW1lbnREZWNsYXJhdGlvbiwKLSAgICAgICAgRW50
aXR5RGVjbGFyYXRpb24sCiAgICAgICAgIENEQVRBLAogICAgICAgICBTdGFydFRhZywKICAgICAg
ICAgRW5kVGFnLApAQCAtNTEsMjQgKzQ5LDcyIEBAIHB1YmxpYzoKICAgICB9OwogfTsKIAotY2xh
c3MgWE1MVG9rZW4gOiBwdWJsaWMgTWFya3VwVG9rZW5CYXNlPFhNTFRva2VuVHlwZXM+IHsKK2Ns
YXNzIFByZWZpeGVkQXR0cmlidXRlIDogcHVibGljIEF0dHJpYnV0ZUJhc2UgewogcHVibGljOgor
ICAgIFJhbmdlIG1fcHJlZml4UmFuZ2U7CisgICAgV1RGOjpWZWN0b3I8VUNoYXIsIDMyPiBtX3By
ZWZpeDsKK307CisKK2NsYXNzIFhNTFRva2VuIDogcHVibGljIE1hcmt1cFRva2VuQmFzZTxYTUxU
b2tlblR5cGVzLCBEb2N0eXBlRGF0YUJhc2UsIFByZWZpeGVkQXR0cmlidXRlPiB7CitwdWJsaWM6
CisgICAgY2xhc3MgWE1MRGVjbGFyYXRpb25EYXRhIHsKKyAgICAgICAgV1RGX01BS0VfTk9OQ09Q
WUFCTEUoWE1MRGVjbGFyYXRpb25EYXRhKTsKKyAgICBwdWJsaWM6CisgICAgICAgIFhNTERlY2xh
cmF0aW9uRGF0YSgpCisgICAgICAgIDogbV9oYXNTdGFuZGFsb25lKGZhbHNlKQorICAgICAgICAs
IG1faGFzRW5jb2RpbmcoZmFsc2UpCisgICAgICAgICwgbV9zdGFuZGFsb25lKGZhbHNlKQorICAg
ICAgICB7CisgICAgICAgIH0KKworICAgICAgICBib29sIG1faGFzU3RhbmRhbG9uZTsKKyAgICAg
ICAgYm9vbCBtX2hhc0VuY29kaW5nOworICAgICAgICBib29sIG1fc3RhbmRhbG9uZTsKKyAgICAg
ICAgV1RGOjpWZWN0b3I8VUNoYXI+IG1fZW5jb2Rpbmc7CisgICAgICAgIFdURjo6VmVjdG9yPFVD
aGFyPiBtX3ZlcnNpb247CisgICAgfTsKKwogICAgIHZpcnR1YWwgdm9pZCBjbGVhcigpCiAgICAg
ewotICAgICAgICBNYXJrdXBUb2tlbkJhc2U8WE1MVG9rZW5UeXBlcz46OmNsZWFyKCk7CisgICAg
ICAgIE1hcmt1cFRva2VuQmFzZTxYTUxUb2tlblR5cGVzLCBEb2N0eXBlRGF0YUJhc2UsIFByZWZp
eGVkQXR0cmlidXRlPjo6Y2xlYXIoKTsKICAgICAgICAgbV90YXJnZXQuY2xlYXIoKTsKICAgICB9
Ci0gICAgCisKICAgICB2b2lkIGFwcGVuZFRvTmFtZShVQ2hhciBjaGFyYWN0ZXIpCiAgICAgewog
ICAgICAgICBBU1NFUlQobV90eXBlID09IFhNTFRva2VuVHlwZXM6OlN0YXJ0VGFnIHx8IG1fdHlw
ZSA9PSBYTUxUb2tlblR5cGVzOjpFbmRUYWcgfHwgbV90eXBlID09IFhNTFRva2VuVHlwZXM6OkRP
Q1RZUEUgfHwgbV90eXBlID09IFhNTFRva2VuVHlwZXM6OkVudGl0eSk7Ci0gICAgICAgIE1hcmt1
cFRva2VuQmFzZTxYTUxUb2tlblR5cGVzPjo6YXBwZW5kVG9OYW1lKGNoYXJhY3Rlcik7CisgICAg
ICAgIE1hcmt1cFRva2VuQmFzZTxYTUxUb2tlblR5cGVzLCBEb2N0eXBlRGF0YUJhc2UsIFByZWZp
eGVkQXR0cmlidXRlPjo6YXBwZW5kVG9OYW1lKGNoYXJhY3Rlcik7CiAgICAgfQotICAgIAorCiAg
ICAgY29uc3QgRGF0YVZlY3RvciYgbmFtZSgpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQo
bV90eXBlID09IFhNTFRva2VuVHlwZXM6OlN0YXJ0VGFnIHx8IG1fdHlwZSA9PSBYTUxUb2tlblR5
cGVzOjpFbmRUYWcgfHwgbV90eXBlID09IFhNTFRva2VuVHlwZXM6OkRPQ1RZUEUgfHwgbV90eXBl
ID09IFhNTFRva2VuVHlwZXM6OkVudGl0eSk7Ci0gICAgICAgIHJldHVybiBNYXJrdXBUb2tlbkJh
c2U8WE1MVG9rZW5UeXBlcz46Om5hbWUoKTsKKyAgICAgICAgcmV0dXJuIE1hcmt1cFRva2VuQmFz
ZTxYTUxUb2tlblR5cGVzLCBEb2N0eXBlRGF0YUJhc2UsIFByZWZpeGVkQXR0cmlidXRlPjo6bmFt
ZSgpOworICAgIH0KKworICAgIGNvbnN0IERhdGFWZWN0b3ImIHRhcmdldCgpIGNvbnN0CisgICAg
eworICAgICAgICBBU1NFUlQobV90eXBlID09IFhNTFRva2VuVHlwZXM6OlByb2Nlc3NpbmdJbnN0
cnVjdGlvbik7CisgICAgICAgIHJldHVybiBtX3RhcmdldDsKKyAgICB9CisKKyAgICBjb25zdCBE
YXRhVmVjdG9yJiBkYXRhKCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0g
WE1MVG9rZW5UeXBlczo6Q0RBVEEgfHwgbV90eXBlID09IFhNTFRva2VuVHlwZXM6OlByb2Nlc3Np
bmdJbnN0cnVjdGlvbik7CisgICAgICAgIHJldHVybiBtX2RhdGE7CisgICAgfQorCisgICAgY29u
c3QgRGF0YVZlY3RvciYgcHJlZml4KCkgY29uc3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5
cGUgPT0gWE1MVG9rZW5UeXBlczo6U3RhcnRUYWcgfHwgbV90eXBlID09IFhNTFRva2VuVHlwZXM6
OkVuZFRhZyk7CisgICAgICAgIHJldHVybiBtX3RhcmdldDsKKyAgICB9CisKKyAgICBjb25zdCBY
TUxEZWNsYXJhdGlvbkRhdGEmIHhtbERlY2xhcmF0aW9uRGF0YSgpIGNvbnN0CisgICAgeworICAg
ICAgICBBU1NFUlQobV90eXBlID09IFhNTFRva2VuVHlwZXM6OlhNTERlY2xhcmF0aW9uKTsKKyAg
ICAgICAgQVNTRVJUKG1feG1sRGVjbGFyYXRpb25EYXRhKTsKKyAgICAgICAgcmV0dXJuICptX3ht
bERlY2xhcmF0aW9uRGF0YS5nZXQoKTsKICAgICB9CiAKICAgICB2b2lkIGJlZ2luRE9DVFlQRSgp
CkBAIC0xNTMsNiArMTk5LDE5IEBAIHB1YmxpYzoKICAgICAgICAgbV9kYXRhLmFwcGVuZChjaGFy
YWN0ZXIpOwogICAgIH0KIAorICAgIHZvaWQgZW5kUHJlZml4KCkKKyAgICB7CisgICAgICAgIEFT
U0VSVChtX3R5cGUgPT0gWE1MVG9rZW5UeXBlczo6U3RhcnRUYWcgfHwgbV90eXBlID09IFhNTFRv
a2VuVHlwZXM6OkVuZFRhZyk7CisgICAgICAgIEFTU0VSVChtX3RhcmdldC5pc0VtcHR5KCkpOwor
ICAgICAgICBtX3RhcmdldC5zd2FwKG1fZGF0YSk7CisgICAgfQorCisgICAgYm9vbCBoYXNQcmVm
aXgoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBYTUxUb2tlblR5cGVz
OjpTdGFydFRhZyB8fCBtX3R5cGUgPT0gWE1MVG9rZW5UeXBlczo6RW5kVGFnKTsKKyAgICAgICAg
cmV0dXJuIG1fdGFyZ2V0LnNpemUoKTsKKyAgICB9CisKICAgICB2b2lkIGJlZ2luQ0RBVEEoKQog
ICAgIHsKICAgICAgICAgQVNTRVJUKG1fdHlwZSA9PSBYTUxUb2tlblR5cGVzOjpVbmluaXRpYWxp
emVkKTsKQEAgLTE3OSwxNTEgKzIzOCwxNjEgQEAgcHVibGljOgogICAgICAgICBtX2RhdGEuYXBw
ZW5kKGNoYXJhY3Rlcik7CiAgICAgfQogCisgICAgdm9pZCBlbmRBdHRyaWJ1dGVQcmVmaXgoaW50
IG9mZnNldCkKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gWE1MVG9rZW5UeXBlczo6
U3RhcnRUYWcpOworICAgICAgICBpbnQgaW5kZXggPSBvZmZzZXQgLSBtX2Jhc2VPZmZzZXQ7Cisg
ICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bV9wcmVmaXguc3dhcChtX2N1cnJlbnRBdHRyaWJ1
dGUtPm1fbmFtZSk7CisgICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bV9wcmVmaXhSYW5nZS5t
X3N0YXJ0ID0gbV9jdXJyZW50QXR0cmlidXRlLT5tX3ZhbHVlUmFuZ2UubV9zdGFydDsKKyAgICAg
ICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX3ByZWZpeFJhbmdlLm1fZW5kID0gaW5kZXg7CisgICAg
ICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bV9uYW1lUmFuZ2UubV9zdGFydCA9IGluZGV4OworICAg
ICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fbmFtZVJhbmdlLm1fZW5kID0gaW5kZXg7CisgICAg
fQorCisgICAgYm9vbCBhdHRyaWJ1dGVIYXNQcmVmaXgoKQorICAgIHsKKyAgICAgICAgQVNTRVJU
KG1fdHlwZSA9PSBYTUxUb2tlblR5cGVzOjpTdGFydFRhZyk7CisgICAgICAgIHJldHVybiAhbV9j
dXJyZW50QXR0cmlidXRlLT5tX3ByZWZpeC5pc0VtcHR5KCk7CisgICAgfQorCiAjaWZuZGVmIE5E
RUJVRworICAgIHZvaWQgcHJpbnRBdHRycygpIGNvbnN0CisgICAgeworICAgICAgICBBdHRyaWJ1
dGVMaXN0Ojpjb25zdF9pdGVyYXRvciBpdGVyID0gbV9hdHRyaWJ1dGVzLmJlZ2luKCk7CisgICAg
ICAgIGZvciAoOyBpdGVyICE9IG1fYXR0cmlidXRlcy5lbmQoKTsgKytpdGVyKSB7CisgICAgICAg
ICAgICBmcHJpbnRmKHN0ZGVyciwgIiAiKTsKKyAgICAgICAgICAgIGlmICghaXRlci0+bV9wcmVm
aXguaXNFbXB0eSgpKSB7CisgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcoaXRlci0+bV9wcmVm
aXgpOworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiOiIpOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgcHJpbnRTdHJpbmcoaXRlci0+bV9uYW1lKTsKKyAgICAgICAgICAgIGZw
cmludGYoc3RkZXJyLCAiPVwiIik7CisgICAgICAgICAgICBwcmludFN0cmluZyhpdGVyLT5tX3Zh
bHVlKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiXCIiKTsKKyAgICAgICAgfQorICAg
IH0KKwogICAgIHZvaWQgcHJpbnQoKSBjb25zdAogICAgIHsKICAgICAgICAgc3dpdGNoIChtX3R5
cGUpIHsKICAgICAgICAgY2FzZSBYTUxUb2tlblR5cGVzOjpVbmluaXRpYWxpemVkOgotICAgICAg
ICAgICAgcHJpbnRmKCJVTklUSUFMSVpFRCIpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIs
ICJVTklUSUFMSVpFRCIpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBYTUxU
b2tlblR5cGVzOjpQcm9jZXNzaW5nSW5zdHJ1Y3Rpb246Ci0gICAgICAgICAgICBwcmludGYoIlBy
b2Nlc3NpbmdJbnN0cnVjdGlvbjogIik7Ci0gICAgICAgICAgICBwcmludGYoIjw/Iik7CisgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlByb2Nlc3NpbmdJbnN0cnVjdGlvbjogIik7CisgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIjw/Iik7CiAgICAgICAgICAgICBwcmludFN0cmluZyht
X3RhcmdldCk7Ci0gICAgICAgICAgICBwcmludGYoIiAiKTsKKyAgICAgICAgICAgIGZwcmludGYo
c3RkZXJyLCAiICIpOwogICAgICAgICAgICAgcHJpbnRTdHJpbmcobV9kYXRhKTsKLSAgICAgICAg
ICAgIHByaW50ZigiPz4iKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiPz4iKTsKICAg
ICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgWE1MVG9rZW5UeXBlczo6WE1MRGVjbGFy
YXRpb246Ci0gICAgICAgICAgICBwcmludGYoIlhNTCBEZWNsYXJhdGlvbjogIik7Ci0gICAgICAg
ICAgICBwcmludGYoIjw/eG1sIHZlcnNpb249XCIiKTsKKyAgICAgICAgICAgIGZwcmludGYoc3Rk
ZXJyLCAiWE1MIERlY2xhcmF0aW9uOiAiKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAi
PD94bWwgdmVyc2lvbj1cIiIpOwogICAgICAgICAgICAgQVNTRVJUKG1feG1sRGVjbGFyYXRpb25E
YXRhKTsKICAgICAgICAgICAgIHByaW50U3RyaW5nKG1feG1sRGVjbGFyYXRpb25EYXRhLT5tX3Zl
cnNpb24pOwotICAgICAgICAgICAgcHJpbnRmKCJcIiIpOworICAgICAgICAgICAgZnByaW50Zihz
dGRlcnIsICJcIiIpOwogICAgICAgICAgICAgaWYgKG1feG1sRGVjbGFyYXRpb25EYXRhLT5tX2hh
c0VuY29kaW5nKSB7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIgZW5jb2Rpbmc9XCIiKTsKKyAg
ICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiBlbmNvZGluZz1cIiIpOwogICAgICAgICAg
ICAgICAgIHByaW50U3RyaW5nKG1feG1sRGVjbGFyYXRpb25EYXRhLT5tX2VuY29kaW5nKTsKLSAg
ICAgICAgICAgICAgICBwcmludGYoIlwiIik7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRl
cnIsICJcIiIpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgaWYgKG1feG1sRGVjbGFyYXRp
b25EYXRhLT5tX2hhc1N0YW5kYWxvbmUpCi0gICAgICAgICAgICAgICAgcHJpbnRmKCIgc3RhbmRh
bG9uZT1cIiVzXCIiLCBtX3htbERlY2xhcmF0aW9uRGF0YS0+bV9zdGFuZGFsb25lID8gInllcyIg
OiAibm8iKTsKLSAgICAgICAgICAgIHByaW50ZigiPz4iKTsKKyAgICAgICAgICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIiBzdGFuZGFsb25lPVwiJXNcIiIsIG1feG1sRGVjbGFyYXRpb25EYXRhLT5t
X3N0YW5kYWxvbmUgPyAieWVzIiA6ICJubyIpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIs
ICI/PiIpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBYTUxUb2tlblR5cGVz
OjpET0NUWVBFOgotICAgICAgICAgICAgcHJpbnRmKCJET0NUWVBFOiAiKTsKKyAgICAgICAgICAg
IGZwcmludGYoc3RkZXJyLCAiRE9DVFlQRTogIik7CiAgICAgICAgICAgICBBU1NFUlQobV9kb2N0
eXBlRGF0YSk7Ci0gICAgICAgICAgICBwcmludGYoIjwhRE9DVFlQRSAiKTsKKyAgICAgICAgICAg
IGZwcmludGYoc3RkZXJyLCAiPCFET0NUWVBFICIpOwogICAgICAgICAgICAgcHJpbnRTdHJpbmco
bV9kYXRhKTsKICAgICAgICAgICAgIGlmIChtX2RvY3R5cGVEYXRhLT5tX2hhc1B1YmxpY0lkZW50
aWZpZXIpIHsKLSAgICAgICAgICAgICAgICBwcmludGYoIiBQVUJMSUMgXCIiKTsKKyAgICAgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiBQVUJMSUMgXCIiKTsKICAgICAgICAgICAgICAgICBw
cmludFN0cmluZyhtX2RvY3R5cGVEYXRhLT5tX3B1YmxpY0lkZW50aWZpZXIpOwotICAgICAgICAg
ICAgICAgIHByaW50ZigiXCIiKTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlwi
Iik7CiAgICAgICAgICAgICAgICAgaWYgKG1fZG9jdHlwZURhdGEtPm1faGFzU3lzdGVtSWRlbnRp
ZmllcikgewotICAgICAgICAgICAgICAgICAgICBwcmludGYoIiBcIiIpOworICAgICAgICAgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIiBcIiIpOwogICAgICAgICAgICAgICAgICAgICBwcmlu
dFN0cmluZyhtX2RvY3R5cGVEYXRhLT5tX3N5c3RlbUlkZW50aWZpZXIpOwotICAgICAgICAgICAg
ICAgICAgICBwcmludGYoIlwiIik7CisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiXCIiKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG1fZG9j
dHlwZURhdGEtPm1faGFzU3lzdGVtSWRlbnRpZmllcikgewotICAgICAgICAgICAgICAgIHByaW50
ZigiIFNZU1RFTSBcIiIpOworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiIFNZU1RF
TSBcIiIpOwogICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKG1fZG9jdHlwZURhdGEtPm1fc3lz
dGVtSWRlbnRpZmllcik7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJcIiIpOworICAgICAgICAg
ICAgICAgIGZwcmludGYoc3RkZXJyLCAiXCIiKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAg
IHByaW50ZigiPiIpOwotICAgICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSBYTUxUb2tl
blR5cGVzOjpBdHRyaWJ1dGVMaXN0RGVjbGFyYXRpb246Ci0gICAgICAgICAgICBwcmludGYoIkF0
dHJpYnV0ZSBMaXN0OiAiKTsKLSAgICAgICAgICAgIHByaW50ZigiPCFBVFRMSVNUPiIpOwotICAg
ICAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAgY2FzZSBYTUxUb2tlblR5cGVzOjpFbGVtZW50RGVj
bGFyYXRpb246Ci0gICAgICAgICAgICBwcmludGYoIkVsZW1lbnQgRGVjbGFyYXRpb246ICIpOwot
ICAgICAgICAgICAgcHJpbnRmKCI8IUVMRU1FTlQ+Iik7Ci0gICAgICAgICAgICBicmVhazsKLQot
ICAgICAgICBjYXNlIFhNTFRva2VuVHlwZXM6OkVudGl0eURlY2xhcmF0aW9uOgotICAgICAgICAg
ICAgcHJpbnRmKCJFbnRpdHkgRGVjbGFyYXRpb246ICIpOwotICAgICAgICAgICAgcHJpbnRmKCI8
IUVOVElUWT4iKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiPiIpOwogICAgICAgICAg
ICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBYTUxUb2tlblR5cGVzOjpDREFUQToKLSAgICAgICAg
ICAgIHByaW50ZigiQ0RBVEE6ICIpOwotICAgICAgICAgICAgcHJpbnRmKCI8IVtDREFUQVsiKTsK
KyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ0RBVEE6ICIpOworICAgICAgICAgICAgZnBy
aW50ZihzdGRlcnIsICI8IVtDREFUQVsiKTsKICAgICAgICAgICAgIHByaW50U3RyaW5nKG1fZGF0
YSk7Ci0gICAgICAgICAgICBwcmludGYoIl1dPiIpOworICAgICAgICAgICAgZnByaW50ZihzdGRl
cnIsICJdXT4iKTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgWE1MVG9rZW5U
eXBlczo6U3RhcnRUYWc6Ci0gICAgICAgICAgICBwcmludGYoIlN0YXJ0IFRhZzogIik7Ci0gICAg
ICAgICAgICBwcmludGYoIjwiKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiU3RhcnQg
VGFnOiAiKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiPCIpOworICAgICAgICAgICAg
aWYgKGhhc1ByZWZpeCgpKSB7CisgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcobV90YXJnZXQp
OworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiOiIpOworICAgICAgICAgICAgfQog
ICAgICAgICAgICAgcHJpbnRTdHJpbmcobV9kYXRhKTsKICAgICAgICAgICAgIHByaW50QXR0cnMo
KTsKICAgICAgICAgICAgIGlmIChzZWxmQ2xvc2luZygpKQotICAgICAgICAgICAgICAgIHByaW50
ZigiLyIpOwotICAgICAgICAgICAgcHJpbnRmKCI+Iik7CisgICAgICAgICAgICAgICAgZnByaW50
ZihzdGRlcnIsICIvIik7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIj4iKTsKICAgICAg
ICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgWE1MVG9rZW5UeXBlczo6RW5kVGFnOgotICAg
ICAgICAgICAgcHJpbnRmKCJFbmQgVGFnOiAiKTsKLSAgICAgICAgICAgIHByaW50ZigiPC8iKTsK
KyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiRW5kIFRhZzogIik7CisgICAgICAgICAgICBm
cHJpbnRmKHN0ZGVyciwgIjwvIik7CisgICAgICAgICAgICBpZiAoaGFzUHJlZml4KCkpIHsKKyAg
ICAgICAgICAgICAgICBwcmludFN0cmluZyhtX3RhcmdldCk7CisgICAgICAgICAgICAgICAgZnBy
aW50ZihzdGRlcnIsICI6Iik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBwcmludFN0cmlu
ZyhtX2RhdGEpOwotICAgICAgICAgICAgcHJpbnRmKCI+Iik7CisgICAgICAgICAgICBmcHJpbnRm
KHN0ZGVyciwgIj4iKTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgWE1MVG9r
ZW5UeXBlczo6Q29tbWVudDoKLSAgICAgICAgICAgIHByaW50ZigiQ29tbWVudDogIik7Ci0gICAg
ICAgICAgICBwcmludGYoIjwhLS0iKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ29t
bWVudDogIik7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIjwhLS0iKTsKICAgICAgICAg
ICAgIHByaW50U3RyaW5nKG1fZGF0YSk7Ci0gICAgICAgICAgICBwcmludGYoIi0tPiIpOworICAg
ICAgICAgICAgZnByaW50ZihzdGRlcnIsICItLT4iKTsKICAgICAgICAgICAgIGJyZWFrOwogCiAg
ICAgICAgIGNhc2UgWE1MVG9rZW5UeXBlczo6Q2hhcmFjdGVyOgotICAgICAgICAgICAgcHJpbnRm
KCJDaGFyYWN0ZXJzOiAiKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiQ2hhcmFjdGVy
czogIik7CiAgICAgICAgICAgICBwcmludFN0cmluZyhtX2RhdGEpOwogICAgICAgICAgICAgYnJl
YWs7CiAKICAgICAgICAgY2FzZSBYTUxUb2tlblR5cGVzOjpFbnRpdHk6Ci0gICAgICAgICAgICBw
cmludGYoIkVudGl0eTogIik7Ci0gICAgICAgICAgICBwcmludGYoIiYiKTsKKyAgICAgICAgICAg
IGZwcmludGYoc3RkZXJyLCAiRW50aXR5OiAiKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJy
LCAiJiIpOwogICAgICAgICAgICAgcHJpbnRTdHJpbmcobV9kYXRhKTsKLSAgICAgICAgICAgIHBy
aW50ZigiOyIpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICI7Iik7CiAgICAgICAgICAg
ICBicmVhazsKIAogICAgICAgICBjYXNlIFhNTFRva2VuVHlwZXM6OkVuZE9mRmlsZToKLSAgICAg
ICAgICAgIHByaW50ZigiRU9GIik7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIkVPRiIp
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIAotICAgICAgICBwcmludGYoIlxuIik7
CisgICAgICAgIGZwcmludGYoc3RkZXJyLCAiXG4iKTsKICAgICB9CiAjZW5kaWYgLy8gTkRFQlVH
CiAKIHByaXZhdGU6Ci0gICAgdHlwZWRlZiBEb2N0eXBlRGF0YUJhc2UgRG9jdHlwZURhdGE7CiAK
LSAgICBjbGFzcyBYTUxEZWNsYXJhdGlvbkRhdGEgewotICAgICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShYTUxEZWNsYXJhdGlvbkRhdGEpOwotICAgIHB1YmxpYzoKLSAgICAgICAgWE1MRGVjbGFy
YXRpb25EYXRhKCkKLSAgICAgICAgICAgIDogbV9oYXNTdGFuZGFsb25lKGZhbHNlKQotICAgICAg
ICAgICAgLCBtX2hhc0VuY29kaW5nKGZhbHNlKQotICAgICAgICAgICAgLCBtX3N0YW5kYWxvbmUo
ZmFsc2UpCi0gICAgICAgIHsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAgICAgYm9vbCBtX2hh
c1N0YW5kYWxvbmU7Ci0gICAgICAgIGJvb2wgbV9oYXNFbmNvZGluZzsKLSAgICAgICAgYm9vbCBt
X3N0YW5kYWxvbmU7Ci0gICAgICAgIFdURjo6VmVjdG9yPFVDaGFyPiBtX2VuY29kaW5nOwotICAg
ICAgICBXVEY6OlZlY3RvcjxVQ2hhcj4gbV92ZXJzaW9uOwotICAgIH07CisgICAgdHlwZWRlZiBE
b2N0eXBlRGF0YUJhc2UgRG9jdHlwZURhdGE7CiAKLSAgICAvLyAidGFyZ2V0IiBmb3IgUHJvY2Vz
c2luZ0luc3RydWN0aW9uCisgICAgLy8gInRhcmdldCIgZm9yIFByb2Nlc3NpbmdJbnN0cnVjdGlv
biwgInByZWZpeCIgZm9yIFN0YXJ0VGFnIGFuZCBFbmRUYWcKICAgICBEYXRhVmVjdG9yIG1fdGFy
Z2V0OwotICAgIAorCiAgICAgLy8gRm9yIFhNTCBEZWNsYXJhdGlvbgogICAgIE93blB0cjxYTUxE
ZWNsYXJhdGlvbkRhdGE+IG1feG1sRGVjbGFyYXRpb25EYXRhOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MVG9rZW5pemVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9wYXJzZXIvWE1MVG9rZW5pemVyLmNwcAppbmRleCAxZTk4NTdiMGE1Y2ViMmM2MWNiNjk5
YjUxMzVmY2NkZjc0NjM0NzQ3Li45Nzk4MDYyNGM2Yzg0YmQyY2I4OWM5NWEzNmI0YWU3MmUxMWU0
YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTFRva2VuaXplci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxUb2tlbml6ZXIuY3BwCkBAIC0x
MTQsNyArMTE0LDcgQEAgaW5saW5lIGJvb2wgaXNWYWxpZE5hbWVDaGFyKFVDaGFyIGNjKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoY2MgPCAweDMwKQogICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgaWYgKGNjIDwgMHgzQikKKyAgICBpZiAoY2MgPCAweDNBKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICBpZiAoY2MgPCAweDAzMDApCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAg
LTMwMSw2ICszMDEsOSBAQCBib29sIFhNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21lbnRlZFN0
cmluZyYgc291cmNlLCBYTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGVsc2UgaWYgKGlzVmFsaWRO
YW1lQ2hhcihjYykpIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvTmFtZShjYyk7CiAg
ICAgICAgICAgICBYTUxfQURWQU5DRV9UTyhUYWdOYW1lU3RhdGUpOworICAgICAgICB9IGVsc2Ug
aWYgKGNjID09ICc6JyAmJiAhbV90b2tlbi0+aGFzUHJlZml4KCkpIHsKKyAgICAgICAgICAgIG1f
dG9rZW4tPmVuZFByZWZpeCgpOworICAgICAgICAgICAgWE1MX0FEVkFOQ0VfVE8oVGFnTmFtZVN0
YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAg
ICAgICAgIHJldHVybiBlbWl0RW5kT2ZGaWxlKHNvdXJjZSk7CkBAIC0zMTYsNiArMzE5LDkgQEAg
Ym9vbCBYTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcmIHNvdXJjZSwgWE1M
VG9rZW4mIHRva2VuKQogICAgICAgICBlbHNlIGlmIChpc1ZhbGlkTmFtZUNoYXIoY2MpKSB7CiAg
ICAgICAgICAgICBtX3Rva2VuLT5hcHBlbmRUb05hbWUoY2MpOwogICAgICAgICAgICAgWE1MX0FE
VkFOQ0VfVE8oRW5kVGFnTmFtZVN0YXRlKTsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAnOicg
JiYgIW1fdG9rZW4tPmhhc1ByZWZpeCgpKSB7CisgICAgICAgICAgICBtX3Rva2VuLT5lbmRQcmVm
aXgoKTsKKyAgICAgICAgICAgIFhNTF9BRFZBTkNFX1RPKEVuZFRhZ05hbWVTdGF0ZSk7CiAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBwYXJzZUVycm9yKCk7CiAgICAgICAgICAgICByZXR1
cm4gZW1pdEVuZE9mRmlsZShzb3VyY2UpOwpAQCAtMzY0LDYgKzM3MCw5IEBAIGJvb2wgWE1MVG9r
ZW5pemVyOjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFhNTFRva2VuJiB0b2tl
bikKICAgICAgICAgfSBlbHNlIGlmIChpc1ZhbGlkTmFtZUNoYXIoY2MpKSB7CiAgICAgICAgICAg
ICBtX3Rva2VuLT5hcHBlbmRUb0F0dHJpYnV0ZU5hbWUoY2MpOwogICAgICAgICAgICAgWE1MX0FE
VkFOQ0VfVE8oQXR0cmlidXRlTmFtZVN0YXRlKTsKKyAgICAgICAgfSBlbHNlIGlmIChjYyA9PSAn
OicgJiYgIW1fdG9rZW4tPmF0dHJpYnV0ZUhhc1ByZWZpeCgpKSB7CisgICAgICAgICAgICBtX3Rv
a2VuLT5lbmRBdHRyaWJ1dGVQcmVmaXgoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVk
KCkpOworICAgICAgICAgICAgWE1MX0FEVkFOQ0VfVE8oQXR0cmlidXRlTmFtZVN0YXRlKTsKICAg
ICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHBhcnNlRXJyb3IoKTsKICAgICAgICAgICAgIG1f
dG9rZW4tPmVuZEF0dHJpYnV0ZU5hbWUoc291cmNlLm51bWJlck9mQ2hhcmFjdGVyc0NvbnN1bWVk
KCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102715</attachid>
            <date>2011-08-02 16:48:50 -0700</date>
            <delta_ts>2011-08-02 17:04:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-65578-20110802164848.patch</filename>
            <type>text/plain</type>
            <size>17185</size>
            <attacher name="Vicki Pfau">jeffrey+webkit</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE4NTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4YjA0YzczZmIwNmIzYTFi
NzIwOTI1N2UxZGNmNGVmYzIxMDM1NzM5Li43ZmE0ZmZjZmE2NzY5YjAwOWU3Y2QwY2ViNTU0NmIx
NTgxOTAyYjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTEtMDgtMDIgIEplZmZy
ZXkgUGZhdSAgPGpwZmF1QGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgbmFtZXNwYWNlIHByZWZp
eCBzdXBwb3J0IGluIFhNTCB0b2tlbml6ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTY1NTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0
aC4KKworICAgICAgICBUaGlzIGFsc28gY2hhbmdlcyBtYXJrdXAgZGVidWcgcHJpbnRpbmcgdG8g
cHJpbnQgdG8gc3RkZXJyIGluc3RlYWQgb2Ygc3Rkb3V0CisKKyAgICAgICAgKiB4bWwvcGFyc2Vy
L01hcmt1cFRva2VuQmFzZS5oOgorICAgICAgICAoV2ViQ29yZTo6TWFya3VwVG9rZW5CYXNlOjpw
cmludFN0cmluZyk6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxUb2tlbi5oOgorICAgICAgICAo
V2ViQ29yZTo6WE1MVG9rZW46OlhNTERlY2xhcmF0aW9uRGF0YTo6WE1MRGVjbGFyYXRpb25EYXRh
KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRva2VuOjpjbGVhcik6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxUb2tlbjo6YXBwZW5kVG9OYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRva2VuOjpu
YW1lKToKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRva2VuOjp0YXJnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6WE1MVG9rZW46OmRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6WE1MVG9rZW46OnByZWZp
eCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxUb2tlbjo6eG1sRGVjbGFyYXRpb25EYXRhKToKKyAg
ICAgICAgKFdlYkNvcmU6OlhNTFRva2VuOjplbmRQcmVmaXgpOgorICAgICAgICAoV2ViQ29yZTo6
WE1MVG9rZW46Omhhc1ByZWZpeCk6CisgICAgICAgIChXZWJDb3JlOjpYTUxUb2tlbjo6ZW5kQXR0
cmlidXRlUHJlZml4KToKKyAgICAgICAgKFdlYkNvcmU6OlhNTFRva2VuOjphdHRyaWJ1dGVIYXNQ
cmVmaXgpOgorICAgICAgICAoV2ViQ29yZTo6WE1MVG9rZW46OnByaW50QXR0cnMpOgorICAgICAg
ICAoV2ViQ29yZTo6WE1MVG9rZW46OnByaW50KToKKyAgICAgICAgKiB4bWwvcGFyc2VyL1hNTFRv
a2VuaXplci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYTUxUb2tlbml6ZXI6Om5leHRUb2tlbik6
CisKIDIwMTEtMDctMjcgIFJvYiBCdWlzICA8cmJ1aXNAcmltLmNvbT4KIAogICAgICAgICBJbXBs
ZW1lbnQgZ2V0SW50ZXJzZWN0aW9uTGlzdCgpLCBnZXRFbmNsb3N1cmVMaXN0KCksIGNoZWNrSW50
ZXJzZWN0aW9uKCkgYW5kIGNoZWNrRW5jbG9zdXJlKCkgaW4gU1ZHU1ZHRWxlbWVudApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9NYXJrdXBUb2tlbkJhc2UuaCBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9wYXJzZXIvTWFya3VwVG9rZW5CYXNlLmgKaW5kZXggNTRiZjI2ZWI3ZmJh
ZGMzMTllMDljNzM2YmEwYTQ1MmU4Njk3YmJjMy4uYjM5MDg5NjJhM2VmMWZkNzg2NThkM2M5ZWQy
MTc3N2RiNDNkYmUyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9NYXJr
dXBUb2tlbkJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL01hcmt1cFRva2Vu
QmFzZS5oCkBAIC01MSwyNyArNTEsMjggQEAgcHVibGljOgogICAgIFdURjo6VmVjdG9yPFVDaGFy
PiBtX3B1YmxpY0lkZW50aWZpZXI7CiAgICAgV1RGOjpWZWN0b3I8VUNoYXI+IG1fc3lzdGVtSWRl
bnRpZmllcjsKIH07Ci0gICAgCi10ZW1wbGF0ZTx0eXBlbmFtZSBUeXBlU2V0LCB0eXBlbmFtZSBE
b2N0eXBlRGF0YSA9IERvY3R5cGVEYXRhQmFzZT4KLWNsYXNzIE1hcmt1cFRva2VuQmFzZSB7Ci0g
ICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoTWFya3VwVG9rZW5CYXNlKTsKLSAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKLXB1YmxpYzoKLSAgICB0eXBlZGVmIFR5cGVTZXQgVHlwZTsKIAorY2xh
c3MgQXR0cmlidXRlQmFzZSB7CitwdWJsaWM6CiAgICAgY2xhc3MgUmFuZ2UgewogICAgIHB1Ymxp
YzoKICAgICAgICAgaW50IG1fc3RhcnQ7CiAgICAgICAgIGludCBtX2VuZDsKICAgICB9OwogCi0g
ICAgY2xhc3MgQXR0cmlidXRlIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFJhbmdlIG1fbmFtZVJh
bmdlOwotICAgICAgICBSYW5nZSBtX3ZhbHVlUmFuZ2U7Ci0gICAgICAgIFdURjo6VmVjdG9yPFVD
aGFyLCAzMj4gbV9uYW1lOwotICAgICAgICBXVEY6OlZlY3RvcjxVQ2hhciwgMzI+IG1fdmFsdWU7
Ci0gICAgfTsKKyAgICBSYW5nZSBtX25hbWVSYW5nZTsKKyAgICBSYW5nZSBtX3ZhbHVlUmFuZ2U7
CisgICAgV1RGOjpWZWN0b3I8VUNoYXIsIDMyPiBtX25hbWU7CisgICAgV1RGOjpWZWN0b3I8VUNo
YXIsIDMyPiBtX3ZhbHVlOworfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgVHlwZVNldCwgdHlwZW5h
bWUgRG9jdHlwZURhdGEgPSBEb2N0eXBlRGF0YUJhc2UsIHR5cGVuYW1lIEF0dHJpYnV0ZVR5cGUg
PSBBdHRyaWJ1dGVCYXNlPgorY2xhc3MgTWFya3VwVG9rZW5CYXNlIHsKKyAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShNYXJrdXBUb2tlbkJhc2UpOworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OworcHVibGljOgorICAgIHR5cGVkZWYgVHlwZVNldCBUeXBlOworICAgIHR5cGVkZWYgQXR0cmli
dXRlVHlwZSBBdHRyaWJ1dGU7CiAKICAgICB0eXBlZGVmIFdURjo6VmVjdG9yPEF0dHJpYnV0ZSwg
MTA+IEF0dHJpYnV0ZUxpc3Q7CiAgICAgdHlwZWRlZiBXVEY6OlZlY3RvcjxVQ2hhciwgMTAyND4g
RGF0YVZlY3RvcjsKQEAgLTMzNCwxOSArMzM1LDcgQEAgcHJvdGVjdGVkOgogICAgIHsKICAgICAg
ICAgRGF0YVZlY3Rvcjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IHN0cmluZy5iZWdpbigpOwogICAg
ICAgICBmb3IgKDsgaXRlciAhPSBzdHJpbmcuZW5kKCk7ICsraXRlcikKLSAgICAgICAgICAgIHBy
aW50ZigiJWxjIiwgd2NoYXJfdCgqaXRlcikpOwotICAgIH0KLSAgICAKLSAgICB2b2lkIHByaW50
QXR0cnMoKSBjb25zdAotICAgIHsKLSAgICAgICAgdHlwZW5hbWUgQXR0cmlidXRlTGlzdDo6Y29u
c3RfaXRlcmF0b3IgaXRlciA9IG1fYXR0cmlidXRlcy5iZWdpbigpOwotICAgICAgICBmb3IgKDsg
aXRlciAhPSBtX2F0dHJpYnV0ZXMuZW5kKCk7ICsraXRlcikgewotICAgICAgICAgICAgcHJpbnRm
KCIgIik7Ci0gICAgICAgICAgICBwcmludFN0cmluZyhpdGVyLT5tX25hbWUpOwotICAgICAgICAg
ICAgcHJpbnRmKCI9XCIiKTsKLSAgICAgICAgICAgIHByaW50U3RyaW5nKGl0ZXItPm1fdmFsdWUp
OwotICAgICAgICAgICAgcHJpbnRmKCJcIiIpOwotICAgICAgICB9CisgICAgICAgICAgICBmcHJp
bnRmKHN0ZGVyciwgIiVsYyIsIHdjaGFyX3QoKml0ZXIpKTsKICAgICB9CiAjZW5kaWYgLy8gTkRF
QlVHCiAKQEAgLTM2Nyw3ICszNTYsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgZnJpZW5kIGNsYXNzIEF0
b21pY0hUTUxUb2tlbjsKIAogICAgIHR5cGVuYW1lIFR5cGU6OlR5cGUgbV90eXBlOwotICAgIFJh
bmdlIG1fcmFuZ2U7IC8vIEFsd2F5cyBzdGFydHMgYXQgemVyby4KKyAgICB0eXBlbmFtZSBBdHRy
aWJ1dGU6OlJhbmdlIG1fcmFuZ2U7IC8vIEFsd2F5cyBzdGFydHMgYXQgemVyby4KICAgICBpbnQg
bV9iYXNlT2Zmc2V0OwogICAgIERhdGFWZWN0b3IgbV9kYXRhOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTFRva2VuLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFy
c2VyL1hNTFRva2VuLmgKaW5kZXggYWIxNjViNzI1NzBmNTI4ODM3ZjBjMWE2M2EwZGZlMzNmMzEz
ZWNkYy4uNGMxMmUyMThjMGRiZTEwZGE2YWEyZDI0ZjRhMWM0YzQwMzlmNzUwOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxUb2tlbi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3htbC9wYXJzZXIvWE1MVG9rZW4uaApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBYTUxU
b2tlbl9oCiAjZGVmaW5lIFhNTFRva2VuX2gKIAorI2luY2x1ZGUgIkVsZW1lbnQuaCIKICNpbmNs
dWRlICJNYXJrdXBUb2tlbkJhc2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsOSAr
MzksNiBAQCBwdWJsaWM6CiAgICAgICAgIFByb2Nlc3NpbmdJbnN0cnVjdGlvbiwKICAgICAgICAg
WE1MRGVjbGFyYXRpb24sCiAgICAgICAgIERPQ1RZUEUsCi0gICAgICAgIEF0dHJpYnV0ZUxpc3RE
ZWNsYXJhdGlvbiwKLSAgICAgICAgRWxlbWVudERlY2xhcmF0aW9uLAotICAgICAgICBFbnRpdHlE
ZWNsYXJhdGlvbiwKICAgICAgICAgQ0RBVEEsCiAgICAgICAgIFN0YXJ0VGFnLAogICAgICAgICBF
bmRUYWcsCkBAIC01MSwyNCArNDksNzIgQEAgcHVibGljOgogICAgIH07CiB9OwogCi1jbGFzcyBY
TUxUb2tlbiA6IHB1YmxpYyBNYXJrdXBUb2tlbkJhc2U8WE1MVG9rZW5UeXBlcz4geworY2xhc3Mg
UHJlZml4ZWRBdHRyaWJ1dGUgOiBwdWJsaWMgQXR0cmlidXRlQmFzZSB7CiBwdWJsaWM6CisgICAg
UmFuZ2UgbV9wcmVmaXhSYW5nZTsKKyAgICBXVEY6OlZlY3RvcjxVQ2hhciwgMzI+IG1fcHJlZml4
OworfTsKKworY2xhc3MgWE1MVG9rZW4gOiBwdWJsaWMgTWFya3VwVG9rZW5CYXNlPFhNTFRva2Vu
VHlwZXMsIERvY3R5cGVEYXRhQmFzZSwgUHJlZml4ZWRBdHRyaWJ1dGU+IHsKK3B1YmxpYzoKKyAg
ICBjbGFzcyBYTUxEZWNsYXJhdGlvbkRhdGEgeworICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJM
RShYTUxEZWNsYXJhdGlvbkRhdGEpOworICAgIHB1YmxpYzoKKyAgICAgICAgWE1MRGVjbGFyYXRp
b25EYXRhKCkKKyAgICAgICAgICAgIDogbV9oYXNTdGFuZGFsb25lKGZhbHNlKQorICAgICAgICAg
ICAgLCBtX2hhc0VuY29kaW5nKGZhbHNlKQorICAgICAgICAgICAgLCBtX3N0YW5kYWxvbmUoZmFs
c2UpCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgICAgIGJvb2wgbV9oYXNTdGFuZGFsb25l
OworICAgICAgICBib29sIG1faGFzRW5jb2Rpbmc7CisgICAgICAgIGJvb2wgbV9zdGFuZGFsb25l
OworICAgICAgICBXVEY6OlZlY3RvcjxVQ2hhcj4gbV9lbmNvZGluZzsKKyAgICAgICAgV1RGOjpW
ZWN0b3I8VUNoYXI+IG1fdmVyc2lvbjsKKyAgICB9OworCiAgICAgdmlydHVhbCB2b2lkIGNsZWFy
KCkKICAgICB7Ci0gICAgICAgIE1hcmt1cFRva2VuQmFzZTxYTUxUb2tlblR5cGVzPjo6Y2xlYXIo
KTsKKyAgICAgICAgTWFya3VwVG9rZW5CYXNlPFhNTFRva2VuVHlwZXMsIERvY3R5cGVEYXRhQmFz
ZSwgUHJlZml4ZWRBdHRyaWJ1dGU+OjpjbGVhcigpOwogICAgICAgICBtX3RhcmdldC5jbGVhcigp
OwogICAgIH0KLSAgICAKKwogICAgIHZvaWQgYXBwZW5kVG9OYW1lKFVDaGFyIGNoYXJhY3RlcikK
ICAgICB7CiAgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gWE1MVG9rZW5UeXBlczo6U3RhcnRUYWcg
fHwgbV90eXBlID09IFhNTFRva2VuVHlwZXM6OkVuZFRhZyB8fCBtX3R5cGUgPT0gWE1MVG9rZW5U
eXBlczo6RE9DVFlQRSB8fCBtX3R5cGUgPT0gWE1MVG9rZW5UeXBlczo6RW50aXR5KTsKLSAgICAg
ICAgTWFya3VwVG9rZW5CYXNlPFhNTFRva2VuVHlwZXM+OjphcHBlbmRUb05hbWUoY2hhcmFjdGVy
KTsKKyAgICAgICAgTWFya3VwVG9rZW5CYXNlPFhNTFRva2VuVHlwZXMsIERvY3R5cGVEYXRhQmFz
ZSwgUHJlZml4ZWRBdHRyaWJ1dGU+OjphcHBlbmRUb05hbWUoY2hhcmFjdGVyKTsKICAgICB9Ci0g
ICAgCisKICAgICBjb25zdCBEYXRhVmVjdG9yJiBuYW1lKCkgY29uc3QKICAgICB7CiAgICAgICAg
IEFTU0VSVChtX3R5cGUgPT0gWE1MVG9rZW5UeXBlczo6U3RhcnRUYWcgfHwgbV90eXBlID09IFhN
TFRva2VuVHlwZXM6OkVuZFRhZyB8fCBtX3R5cGUgPT0gWE1MVG9rZW5UeXBlczo6RE9DVFlQRSB8
fCBtX3R5cGUgPT0gWE1MVG9rZW5UeXBlczo6RW50aXR5KTsKLSAgICAgICAgcmV0dXJuIE1hcmt1
cFRva2VuQmFzZTxYTUxUb2tlblR5cGVzPjo6bmFtZSgpOworICAgICAgICByZXR1cm4gTWFya3Vw
VG9rZW5CYXNlPFhNTFRva2VuVHlwZXMsIERvY3R5cGVEYXRhQmFzZSwgUHJlZml4ZWRBdHRyaWJ1
dGU+OjpuYW1lKCk7CisgICAgfQorCisgICAgY29uc3QgRGF0YVZlY3RvciYgdGFyZ2V0KCkgY29u
c3QKKyAgICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gWE1MVG9rZW5UeXBlczo6UHJvY2Vz
c2luZ0luc3RydWN0aW9uKTsKKyAgICAgICAgcmV0dXJuIG1fdGFyZ2V0OworICAgIH0KKworICAg
IGNvbnN0IERhdGFWZWN0b3ImIGRhdGEoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBYTUxUb2tlblR5cGVzOjpDREFUQSB8fCBtX3R5cGUgPT0gWE1MVG9rZW5UeXBlczo6
UHJvY2Vzc2luZ0luc3RydWN0aW9uKTsKKyAgICAgICAgcmV0dXJuIG1fZGF0YTsKKyAgICB9CisK
KyAgICBjb25zdCBEYXRhVmVjdG9yJiBwcmVmaXgoKSBjb25zdAorICAgIHsKKyAgICAgICAgQVNT
RVJUKG1fdHlwZSA9PSBYTUxUb2tlblR5cGVzOjpTdGFydFRhZyB8fCBtX3R5cGUgPT0gWE1MVG9r
ZW5UeXBlczo6RW5kVGFnKTsKKyAgICAgICAgcmV0dXJuIG1fdGFyZ2V0OworICAgIH0KKworICAg
IGNvbnN0IFhNTERlY2xhcmF0aW9uRGF0YSYgeG1sRGVjbGFyYXRpb25EYXRhKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIEFTU0VSVChtX3R5cGUgPT0gWE1MVG9rZW5UeXBlczo6WE1MRGVjbGFyYXRp
b24pOworICAgICAgICBBU1NFUlQobV94bWxEZWNsYXJhdGlvbkRhdGEpOworICAgICAgICByZXR1
cm4gKm1feG1sRGVjbGFyYXRpb25EYXRhLmdldCgpOwogICAgIH0KIAogICAgIHZvaWQgYmVnaW5E
T0NUWVBFKCkKQEAgLTE1Myw2ICsxOTksMjAgQEAgcHVibGljOgogICAgICAgICBtX2RhdGEuYXBw
ZW5kKGNoYXJhY3Rlcik7CiAgICAgfQogCisgICAgdm9pZCBlbmRQcmVmaXgoKQorICAgIHsKKyAg
ICAgICAgQVNTRVJUKG1fdHlwZSA9PSBYTUxUb2tlblR5cGVzOjpTdGFydFRhZyB8fCBtX3R5cGUg
PT0gWE1MVG9rZW5UeXBlczo6RW5kVGFnKTsKKyAgICAgICAgQVNTRVJUKG1fdGFyZ2V0LmlzRW1w
dHkoKSk7CisgICAgICAgIC8vIEZJWE1FOiBzZWUgaWYgd2UgY2FuIGF2b2lkIHRoZSBjb3B5IGlu
aGVyZW50IHdpdGggdGhpcyBzd2FwCisgICAgICAgIG1fdGFyZ2V0LnN3YXAobV9kYXRhKTsKKyAg
ICB9CisKKyAgICBib29sIGhhc1ByZWZpeCgpIGNvbnN0CisgICAgeworICAgICAgICBBU1NFUlQo
bV90eXBlID09IFhNTFRva2VuVHlwZXM6OlN0YXJ0VGFnIHx8IG1fdHlwZSA9PSBYTUxUb2tlblR5
cGVzOjpFbmRUYWcpOworICAgICAgICByZXR1cm4gbV90YXJnZXQuc2l6ZSgpOworICAgIH0KKwog
ICAgIHZvaWQgYmVnaW5DREFUQSgpCiAgICAgewogICAgICAgICBBU1NFUlQobV90eXBlID09IFhN
TFRva2VuVHlwZXM6OlVuaW5pdGlhbGl6ZWQpOwpAQCAtMTc5LDE1MSArMjM5LDE2MSBAQCBwdWJs
aWM6CiAgICAgICAgIG1fZGF0YS5hcHBlbmQoY2hhcmFjdGVyKTsKICAgICB9CiAKKyAgICB2b2lk
IGVuZEF0dHJpYnV0ZVByZWZpeChpbnQgb2Zmc2V0KQorICAgIHsKKyAgICAgICAgQVNTRVJUKG1f
dHlwZSA9PSBYTUxUb2tlblR5cGVzOjpTdGFydFRhZyk7CisgICAgICAgIGludCBpbmRleCA9IG9m
ZnNldCAtIG1fYmFzZU9mZnNldDsKKyAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX3ByZWZp
eC5zd2FwKG1fY3VycmVudEF0dHJpYnV0ZS0+bV9uYW1lKTsKKyAgICAgICAgbV9jdXJyZW50QXR0
cmlidXRlLT5tX3ByZWZpeFJhbmdlLm1fc3RhcnQgPSBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fdmFs
dWVSYW5nZS5tX3N0YXJ0OworICAgICAgICBtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fcHJlZml4UmFu
Z2UubV9lbmQgPSBpbmRleDsKKyAgICAgICAgbV9jdXJyZW50QXR0cmlidXRlLT5tX25hbWVSYW5n
ZS5tX3N0YXJ0ID0gaW5kZXg7CisgICAgICAgIG1fY3VycmVudEF0dHJpYnV0ZS0+bV9uYW1lUmFu
Z2UubV9lbmQgPSBpbmRleDsKKyAgICB9CisKKyAgICBib29sIGF0dHJpYnV0ZUhhc1ByZWZpeCgp
CisgICAgeworICAgICAgICBBU1NFUlQobV90eXBlID09IFhNTFRva2VuVHlwZXM6OlN0YXJ0VGFn
KTsKKyAgICAgICAgcmV0dXJuICFtX2N1cnJlbnRBdHRyaWJ1dGUtPm1fcHJlZml4LmlzRW1wdHko
KTsKKyAgICB9CisKICNpZm5kZWYgTkRFQlVHCisgICAgdm9pZCBwcmludEF0dHJzKCkgY29uc3QK
KyAgICB7CisgICAgICAgIEF0dHJpYnV0ZUxpc3Q6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBtX2F0
dHJpYnV0ZXMuYmVnaW4oKTsKKyAgICAgICAgZm9yICg7IGl0ZXIgIT0gbV9hdHRyaWJ1dGVzLmVu
ZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiICIpOworICAgICAg
ICAgICAgaWYgKCFpdGVyLT5tX3ByZWZpeC5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgICAgICBw
cmludFN0cmluZyhpdGVyLT5tX3ByZWZpeCk7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRl
cnIsICI6Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBwcmludFN0cmluZyhpdGVyLT5t
X25hbWUpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICI9XCIiKTsKKyAgICAgICAgICAg
IHByaW50U3RyaW5nKGl0ZXItPm1fdmFsdWUpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIs
ICJcIiIpOworICAgICAgICB9CisgICAgfQorCiAgICAgdm9pZCBwcmludCgpIGNvbnN0CiAgICAg
ewogICAgICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgICAgICBjYXNlIFhNTFRva2VuVHlwZXM6
OlVuaW5pdGlhbGl6ZWQ6Ci0gICAgICAgICAgICBwcmludGYoIlVOSVRJQUxJWkVEIik7CisgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlVOSVRJQUxJWkVEIik7CiAgICAgICAgICAgICBicmVh
azsKIAogICAgICAgICBjYXNlIFhNTFRva2VuVHlwZXM6OlByb2Nlc3NpbmdJbnN0cnVjdGlvbjoK
LSAgICAgICAgICAgIHByaW50ZigiUHJvY2Vzc2luZ0luc3RydWN0aW9uOiAiKTsKLSAgICAgICAg
ICAgIHByaW50ZigiPD8iKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiUHJvY2Vzc2lu
Z0luc3RydWN0aW9uOiAiKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiPD8iKTsKICAg
ICAgICAgICAgIHByaW50U3RyaW5nKG1fdGFyZ2V0KTsKLSAgICAgICAgICAgIHByaW50ZigiICIp
OworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICIgIik7CiAgICAgICAgICAgICBwcmludFN0
cmluZyhtX2RhdGEpOwotICAgICAgICAgICAgcHJpbnRmKCI/PiIpOworICAgICAgICAgICAgZnBy
aW50ZihzdGRlcnIsICI/PiIpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBY
TUxUb2tlblR5cGVzOjpYTUxEZWNsYXJhdGlvbjoKLSAgICAgICAgICAgIHByaW50ZigiWE1MIERl
Y2xhcmF0aW9uOiAiKTsKLSAgICAgICAgICAgIHByaW50ZigiPD94bWwgdmVyc2lvbj1cIiIpOwor
ICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJYTUwgRGVjbGFyYXRpb246ICIpOworICAgICAg
ICAgICAgZnByaW50ZihzdGRlcnIsICI8P3htbCB2ZXJzaW9uPVwiIik7CiAgICAgICAgICAgICBB
U1NFUlQobV94bWxEZWNsYXJhdGlvbkRhdGEpOwogICAgICAgICAgICAgcHJpbnRTdHJpbmcobV94
bWxEZWNsYXJhdGlvbkRhdGEtPm1fdmVyc2lvbik7Ci0gICAgICAgICAgICBwcmludGYoIlwiIik7
CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlwiIik7CiAgICAgICAgICAgICBpZiAobV94
bWxEZWNsYXJhdGlvbkRhdGEtPm1faGFzRW5jb2RpbmcpIHsKLSAgICAgICAgICAgICAgICBwcmlu
dGYoIiBlbmNvZGluZz1cIiIpOworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiIGVu
Y29kaW5nPVwiIik7CiAgICAgICAgICAgICAgICAgcHJpbnRTdHJpbmcobV94bWxEZWNsYXJhdGlv
bkRhdGEtPm1fZW5jb2RpbmcpOwotICAgICAgICAgICAgICAgIHByaW50ZigiXCIiKTsKKyAgICAg
ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIlwiIik7CiAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICBpZiAobV94bWxEZWNsYXJhdGlvbkRhdGEtPm1faGFzU3RhbmRhbG9uZSkKLSAgICAgICAg
ICAgICAgICBwcmludGYoIiBzdGFuZGFsb25lPVwiJXNcIiIsIG1feG1sRGVjbGFyYXRpb25EYXRh
LT5tX3N0YW5kYWxvbmUgPyAieWVzIiA6ICJubyIpOwotICAgICAgICAgICAgcHJpbnRmKCI/PiIp
OworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiIHN0YW5kYWxvbmU9XCIlc1wiIiwg
bV94bWxEZWNsYXJhdGlvbkRhdGEtPm1fc3RhbmRhbG9uZSA/ICJ5ZXMiIDogIm5vIik7CisgICAg
ICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIj8+Iik7CiAgICAgICAgICAgICBicmVhazsKIAogICAg
ICAgICBjYXNlIFhNTFRva2VuVHlwZXM6OkRPQ1RZUEU6Ci0gICAgICAgICAgICBwcmludGYoIkRP
Q1RZUEU6ICIpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJET0NUWVBFOiAiKTsKICAg
ICAgICAgICAgIEFTU0VSVChtX2RvY3R5cGVEYXRhKTsKLSAgICAgICAgICAgIHByaW50ZigiPCFE
T0NUWVBFICIpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICI8IURPQ1RZUEUgIik7CiAg
ICAgICAgICAgICBwcmludFN0cmluZyhtX2RhdGEpOwogICAgICAgICAgICAgaWYgKG1fZG9jdHlw
ZURhdGEtPm1faGFzUHVibGljSWRlbnRpZmllcikgewotICAgICAgICAgICAgICAgIHByaW50Zigi
IFBVQkxJQyBcIiIpOworICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiIFBVQkxJQyBc
IiIpOwogICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKG1fZG9jdHlwZURhdGEtPm1fcHVibGlj
SWRlbnRpZmllcik7Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCJcIiIpOworICAgICAgICAgICAg
ICAgIGZwcmludGYoc3RkZXJyLCAiXCIiKTsKICAgICAgICAgICAgICAgICBpZiAobV9kb2N0eXBl
RGF0YS0+bV9oYXNTeXN0ZW1JZGVudGlmaWVyKSB7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50
ZigiIFwiIik7CisgICAgICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiIFwiIik7CiAg
ICAgICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKG1fZG9jdHlwZURhdGEtPm1fc3lzdGVtSWRl
bnRpZmllcik7Ci0gICAgICAgICAgICAgICAgICAgIHByaW50ZigiXCIiKTsKKyAgICAgICAgICAg
ICAgICAgICAgZnByaW50ZihzdGRlcnIsICJcIiIpOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0gZWxzZSBpZiAobV9kb2N0eXBlRGF0YS0+bV9oYXNTeXN0ZW1JZGVudGlmaWVyKSB7
Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIgU1lTVEVNIFwiIik7CisgICAgICAgICAgICAgICAg
ZnByaW50ZihzdGRlcnIsICIgU1lTVEVNIFwiIik7CiAgICAgICAgICAgICAgICAgcHJpbnRTdHJp
bmcobV9kb2N0eXBlRGF0YS0+bV9zeXN0ZW1JZGVudGlmaWVyKTsKLSAgICAgICAgICAgICAgICBw
cmludGYoIlwiIik7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJcIiIpOwogICAg
ICAgICAgICAgfQotICAgICAgICAgICAgcHJpbnRmKCI+Iik7Ci0gICAgICAgICAgICBicmVhazsK
LQotICAgICAgICBjYXNlIFhNTFRva2VuVHlwZXM6OkF0dHJpYnV0ZUxpc3REZWNsYXJhdGlvbjoK
LSAgICAgICAgICAgIHByaW50ZigiQXR0cmlidXRlIExpc3Q6ICIpOwotICAgICAgICAgICAgcHJp
bnRmKCI8IUFUVExJU1Q+Iik7Ci0gICAgICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIFhN
TFRva2VuVHlwZXM6OkVsZW1lbnREZWNsYXJhdGlvbjoKLSAgICAgICAgICAgIHByaW50ZigiRWxl
bWVudCBEZWNsYXJhdGlvbjogIik7Ci0gICAgICAgICAgICBwcmludGYoIjwhRUxFTUVOVD4iKTsK
LSAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgIGNhc2UgWE1MVG9rZW5UeXBlczo6RW50aXR5
RGVjbGFyYXRpb246Ci0gICAgICAgICAgICBwcmludGYoIkVudGl0eSBEZWNsYXJhdGlvbjogIik7
Ci0gICAgICAgICAgICBwcmludGYoIjwhRU5USVRZPiIpOworICAgICAgICAgICAgZnByaW50Zihz
dGRlcnIsICI+Iik7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFhNTFRva2Vu
VHlwZXM6OkNEQVRBOgotICAgICAgICAgICAgcHJpbnRmKCJDREFUQTogIik7Ci0gICAgICAgICAg
ICBwcmludGYoIjwhW0NEQVRBWyIpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJDREFU
QTogIik7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIjwhW0NEQVRBWyIpOwogICAgICAg
ICAgICAgcHJpbnRTdHJpbmcobV9kYXRhKTsKLSAgICAgICAgICAgIHByaW50ZigiXV0+Iik7Cisg
ICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIl1dPiIpOwogICAgICAgICAgICAgYnJlYWs7CiAK
ICAgICAgICAgY2FzZSBYTUxUb2tlblR5cGVzOjpTdGFydFRhZzoKLSAgICAgICAgICAgIHByaW50
ZigiU3RhcnQgVGFnOiAiKTsKLSAgICAgICAgICAgIHByaW50ZigiPCIpOworICAgICAgICAgICAg
ZnByaW50ZihzdGRlcnIsICJTdGFydCBUYWc6ICIpOworICAgICAgICAgICAgZnByaW50ZihzdGRl
cnIsICI8Iik7CisgICAgICAgICAgICBpZiAoaGFzUHJlZml4KCkpIHsKKyAgICAgICAgICAgICAg
ICBwcmludFN0cmluZyhtX3RhcmdldCk7CisgICAgICAgICAgICAgICAgZnByaW50ZihzdGRlcnIs
ICI6Iik7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBwcmludFN0cmluZyhtX2RhdGEpOwog
ICAgICAgICAgICAgcHJpbnRBdHRycygpOwogICAgICAgICAgICAgaWYgKHNlbGZDbG9zaW5nKCkp
Ci0gICAgICAgICAgICAgICAgcHJpbnRmKCIvIik7Ci0gICAgICAgICAgICBwcmludGYoIj4iKTsK
KyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIi8iKTsKKyAgICAgICAgICAgIGZwcmlu
dGYoc3RkZXJyLCAiPiIpOwogICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBYTUxU
b2tlblR5cGVzOjpFbmRUYWc6Ci0gICAgICAgICAgICBwcmludGYoIkVuZCBUYWc6ICIpOwotICAg
ICAgICAgICAgcHJpbnRmKCI8LyIpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFbmQg
VGFnOiAiKTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiPC8iKTsKKyAgICAgICAgICAg
IGlmIChoYXNQcmVmaXgoKSkgeworICAgICAgICAgICAgICAgIHByaW50U3RyaW5nKG1fdGFyZ2V0
KTsKKyAgICAgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIjoiKTsKKyAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIHByaW50U3RyaW5nKG1fZGF0YSk7Ci0gICAgICAgICAgICBwcmludGYoIj4i
KTsKKyAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiPiIpOwogICAgICAgICAgICAgYnJlYWs7
CiAKICAgICAgICAgY2FzZSBYTUxUb2tlblR5cGVzOjpDb21tZW50OgotICAgICAgICAgICAgcHJp
bnRmKCJDb21tZW50OiAiKTsKLSAgICAgICAgICAgIHByaW50ZigiPCEtLSIpOworICAgICAgICAg
ICAgZnByaW50ZihzdGRlcnIsICJDb21tZW50OiAiKTsKKyAgICAgICAgICAgIGZwcmludGYoc3Rk
ZXJyLCAiPCEtLSIpOwogICAgICAgICAgICAgcHJpbnRTdHJpbmcobV9kYXRhKTsKLSAgICAgICAg
ICAgIHByaW50ZigiLS0+Iik7CisgICAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIi0tPiIpOwog
ICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2FzZSBYTUxUb2tlblR5cGVzOjpDaGFyYWN0
ZXI6Ci0gICAgICAgICAgICBwcmludGYoIkNoYXJhY3RlcnM6ICIpOworICAgICAgICAgICAgZnBy
aW50ZihzdGRlcnIsICJDaGFyYWN0ZXJzOiAiKTsKICAgICAgICAgICAgIHByaW50U3RyaW5nKG1f
ZGF0YSk7CiAgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIFhNTFRva2VuVHlwZXM6
OkVudGl0eToKLSAgICAgICAgICAgIHByaW50ZigiRW50aXR5OiAiKTsKLSAgICAgICAgICAgIHBy
aW50ZigiJiIpOworICAgICAgICAgICAgZnByaW50ZihzdGRlcnIsICJFbnRpdHk6ICIpOworICAg
ICAgICAgICAgZnByaW50ZihzdGRlcnIsICImIik7CiAgICAgICAgICAgICBwcmludFN0cmluZyht
X2RhdGEpOwotICAgICAgICAgICAgcHJpbnRmKCI7Iik7CisgICAgICAgICAgICBmcHJpbnRmKHN0
ZGVyciwgIjsiKTsKICAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgWE1MVG9rZW5U
eXBlczo6RW5kT2ZGaWxlOgotICAgICAgICAgICAgcHJpbnRmKCJFT0YiKTsKKyAgICAgICAgICAg
IGZwcmludGYoc3RkZXJyLCAiRU9GIik7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQog
Ci0gICAgICAgIHByaW50ZigiXG4iKTsKKyAgICAgICAgZnByaW50ZihzdGRlcnIsICJcbiIpOwog
ICAgIH0KICNlbmRpZiAvLyBOREVCVUcKIAogcHJpdmF0ZToKLSAgICB0eXBlZGVmIERvY3R5cGVE
YXRhQmFzZSBEb2N0eXBlRGF0YTsKIAotICAgIGNsYXNzIFhNTERlY2xhcmF0aW9uRGF0YSB7Ci0g
ICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFhNTERlY2xhcmF0aW9uRGF0YSk7Ci0gICAgcHVi
bGljOgotICAgICAgICBYTUxEZWNsYXJhdGlvbkRhdGEoKQotICAgICAgICAgICAgOiBtX2hhc1N0
YW5kYWxvbmUoZmFsc2UpCi0gICAgICAgICAgICAsIG1faGFzRW5jb2RpbmcoZmFsc2UpCi0gICAg
ICAgICAgICAsIG1fc3RhbmRhbG9uZShmYWxzZSkKLSAgICAgICAgewotICAgICAgICB9Ci0gICAg
ICAgIAotICAgICAgICBib29sIG1faGFzU3RhbmRhbG9uZTsKLSAgICAgICAgYm9vbCBtX2hhc0Vu
Y29kaW5nOwotICAgICAgICBib29sIG1fc3RhbmRhbG9uZTsKLSAgICAgICAgV1RGOjpWZWN0b3I8
VUNoYXI+IG1fZW5jb2Rpbmc7Ci0gICAgICAgIFdURjo6VmVjdG9yPFVDaGFyPiBtX3ZlcnNpb247
Ci0gICAgfTsKKyAgICB0eXBlZGVmIERvY3R5cGVEYXRhQmFzZSBEb2N0eXBlRGF0YTsKIAotICAg
IC8vICJ0YXJnZXQiIGZvciBQcm9jZXNzaW5nSW5zdHJ1Y3Rpb24KKyAgICAvLyAidGFyZ2V0IiBm
b3IgUHJvY2Vzc2luZ0luc3RydWN0aW9uLCAicHJlZml4IiBmb3IgU3RhcnRUYWcgYW5kIEVuZFRh
ZwogICAgIERhdGFWZWN0b3IgbV90YXJnZXQ7Ci0gICAgCisKICAgICAvLyBGb3IgWE1MIERlY2xh
cmF0aW9uCiAgICAgT3duUHRyPFhNTERlY2xhcmF0aW9uRGF0YT4gbV94bWxEZWNsYXJhdGlvbkRh
dGE7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxUb2tlbml6
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxUb2tlbml6ZXIuY3BwCmluZGV4
IDFlOTg1N2IwYTVjZWIyYzYxY2I2OTliNTEzNWZjY2RmNzQ2MzQ3NDcuLjk3OTgwNjI0YzZjODRi
ZDJjYjg5Yzk1YTM2YjRhZTcyZTExZTRjNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3ht
bC9wYXJzZXIvWE1MVG9rZW5pemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvcGFyc2Vy
L1hNTFRva2VuaXplci5jcHAKQEAgLTExNCw3ICsxMTQsNyBAQCBpbmxpbmUgYm9vbCBpc1ZhbGlk
TmFtZUNoYXIoVUNoYXIgY2MpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChjYyA8IDB4
MzApCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoY2MgPCAweDNCKQorICAgIGlmIChj
YyA8IDB4M0EpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChjYyA8IDB4MDMwMCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMzAxLDYgKzMwMSw5IEBAIGJvb2wgWE1MVG9rZW5pemVy
OjpuZXh0VG9rZW4oU2VnbWVudGVkU3RyaW5nJiBzb3VyY2UsIFhNTFRva2VuJiB0b2tlbikKICAg
ICAgICAgZWxzZSBpZiAoaXNWYWxpZE5hbWVDaGFyKGNjKSkgewogICAgICAgICAgICAgbV90b2tl
bi0+YXBwZW5kVG9OYW1lKGNjKTsKICAgICAgICAgICAgIFhNTF9BRFZBTkNFX1RPKFRhZ05hbWVT
dGF0ZSk7CisgICAgICAgIH0gZWxzZSBpZiAoY2MgPT0gJzonICYmICFtX3Rva2VuLT5oYXNQcmVm
aXgoKSkgeworICAgICAgICAgICAgbV90b2tlbi0+ZW5kUHJlZml4KCk7CisgICAgICAgICAgICBY
TUxfQURWQU5DRV9UTyhUYWdOYW1lU3RhdGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAg
ICAgcGFyc2VFcnJvcigpOwogICAgICAgICAgICAgcmV0dXJuIGVtaXRFbmRPZkZpbGUoc291cmNl
KTsKQEAgLTMxNiw2ICszMTksOSBAQCBib29sIFhNTFRva2VuaXplcjo6bmV4dFRva2VuKFNlZ21l
bnRlZFN0cmluZyYgc291cmNlLCBYTUxUb2tlbiYgdG9rZW4pCiAgICAgICAgIGVsc2UgaWYgKGlz
VmFsaWROYW1lQ2hhcihjYykpIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvTmFtZShj
Yyk7CiAgICAgICAgICAgICBYTUxfQURWQU5DRV9UTyhFbmRUYWdOYW1lU3RhdGUpOworICAgICAg
ICB9IGVsc2UgaWYgKGNjID09ICc6JyAmJiAhbV90b2tlbi0+aGFzUHJlZml4KCkpIHsKKyAgICAg
ICAgICAgIG1fdG9rZW4tPmVuZFByZWZpeCgpOworICAgICAgICAgICAgWE1MX0FEVkFOQ0VfVE8o
RW5kVGFnTmFtZVN0YXRlKTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHBhcnNlRXJy
b3IoKTsKICAgICAgICAgICAgIHJldHVybiBlbWl0RW5kT2ZGaWxlKHNvdXJjZSk7CkBAIC0zNjQs
NiArMzcwLDkgQEAgYm9vbCBYTUxUb2tlbml6ZXI6Om5leHRUb2tlbihTZWdtZW50ZWRTdHJpbmcm
IHNvdXJjZSwgWE1MVG9rZW4mIHRva2VuKQogICAgICAgICB9IGVsc2UgaWYgKGlzVmFsaWROYW1l
Q2hhcihjYykpIHsKICAgICAgICAgICAgIG1fdG9rZW4tPmFwcGVuZFRvQXR0cmlidXRlTmFtZShj
Yyk7CiAgICAgICAgICAgICBYTUxfQURWQU5DRV9UTyhBdHRyaWJ1dGVOYW1lU3RhdGUpOworICAg
ICAgICB9IGVsc2UgaWYgKGNjID09ICc6JyAmJiAhbV90b2tlbi0+YXR0cmlidXRlSGFzUHJlZml4
KCkpIHsKKyAgICAgICAgICAgIG1fdG9rZW4tPmVuZEF0dHJpYnV0ZVByZWZpeChzb3VyY2UubnVt
YmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSk7CisgICAgICAgICAgICBYTUxfQURWQU5DRV9UTyhB
dHRyaWJ1dGVOYW1lU3RhdGUpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcGFyc2VF
cnJvcigpOwogICAgICAgICAgICAgbV90b2tlbi0+ZW5kQXR0cmlidXRlTmFtZShzb3VyY2UubnVt
YmVyT2ZDaGFyYWN0ZXJzQ29uc3VtZWQoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>