<?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>40184</bug_id>
          
          <creation_ts>2010-06-04 13:15:55 -0700</creation_ts>
          <short_desc>Remove side effects of form submission and prepare FormDataBuilder for splitting up.</short_desc>
          <delta_ts>2010-06-22 08:56:39 -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>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>40137</dependson>
          <blocked>40893</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dimitri Glazkov (Google)">dglazkov</reporter>
          <assigned_to name="Dimitri Glazkov (Google)">dglazkov</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>234356</commentid>
    <comment_count>0</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-04 13:15:55 -0700</bug_when>
    <thetext>Remove side-effects of form submission and prepare FormDataBuilder for splitting up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>234359</commentid>
    <comment_count>1</comment_count>
      <attachid>57909</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-04 13:28:01 -0700</bug_when>
    <thetext>Created attachment 57909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240957</commentid>
    <comment_count>2</comment_count>
      <attachid>59309</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-21 16:32:56 -0700</bug_when>
    <thetext>Created attachment 59309
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241104</commentid>
    <comment_count>3</comment_count>
      <attachid>59309</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-06-21 22:16:31 -0700</bug_when>
    <thetext>Comment on attachment 59309
Patch

&gt; +            m_formDataBuilder.parseEncodingType(&quot;application/x-www-form-urlencoded&quot;);

Why is it important to call the parse function instead of the set function here?

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241277</commentid>
    <comment_count>4</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-22 08:54:45 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 59309 [details])
&gt; &gt; +            m_formDataBuilder.parseEncodingType(&quot;application/x-www-form-urlencoded&quot;);
&gt; 
&gt; Why is it important to call the parse function instead of the set function here?

That&apos;s actually a good question and points to a problem that I&apos;ll figure out how to solve. parseEncodingType sets isMultiPart to false, which is still kind of side-effecty. See assert right next to this statement.

&gt; 
&gt; r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241278</commentid>
    <comment_count>5</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2010-06-22 08:56:39 -0700</bug_when>
    <thetext>Committed r61618: &lt;http://trac.webkit.org/changeset/61618&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57909</attachid>
            <date>2010-06-04 13:28:01 -0700</date>
            <delta_ts>2010-06-21 16:32:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40184-20100604132759.patch</filename>
            <type>text/plain</type>
            <size>13393</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YmVkYTYwZmZlMDI1ZTNjODljZTFmYTNjYjIyMjU5NDVmNGJiMGQ3YS4uZjNmMWZmZTM0YWU0YjBj
MDU4N2MxN2FlOTk5NWU4OWI3OWEzNGU2MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wNi0wNCAgRGlt
aXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzaWRlLWVmZmVjdHMgb2YgZm9y
bSBzdWJtaXNzaW9uIGFuZCBwcmVwYXJlIEZvcm1EYXRhQnVpbGRlciBmb3Igc3BsaXR0aW5nIHVw
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAxODQK
KworICAgICAgICBSZWZhY3RvcmluZywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAg
ICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxG
b3JtRWxlbWVudDo6cHJlcGFyZUZvcm1TdWJtaXNzaW9uKTogCisgICAgICAgICAgICAqIENoYW5n
ZWQgdG8gdXNlIG5ldyBhY2Nlc3NvcnMgb24gRm9ybURhdGFCdWlsZGVyOworICAgICAgICAgICAg
KiBTaW1wbGlmaWVkIHRoZSBsb2dpYyBhcm91bmQgYWN0aW9uIFVSTDsKKyAgICAgICAgICAgICog
UmVtb3ZlZCBmb3JtIHN1Ym1pc3Npb24gc2lkZSBlZmZlY3Qgb2YgZWxlbWVudCdzIGVuY3R5cGUg
cHJvcGVydHkgYmVpbmcgdXBkYXRlZCB3aGVuCisgICAgICAgICAgICAgICAgc3VibWl0dGluZyBh
IG1haWx0byBmb3JtOworICAgICAgICAgICAgKiBSZW1vdmVkIHVubmVjZXNzYXJ5IHVwZGF0aW5n
IG9mIGFjdGlvbiBVUkwgZm9yIG1haWx0byBmb3Jtcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxG
b3JtRWxlbWVudDo6c3VibWl0KTogTW92ZWQgYWN0aW9uIFVSTCBjaGVjayBpbnRvIHByZXBhcmVG
b3JtU3VibWlzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUpOiBVcGRhdGVkIHRvIHVzZSBuZXcgbWV0aG9kcyBvbiBGb3JtRGF0YUJ1
aWxkZXIuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuaDogUmVtb3ZlZCBkZWNscyBm
b3IgaXNNYWlsdG9Gb3JtIGFuZCBkYXRhRW5jb2RpbmcgbWV0aG9kczsKKyAgICAgICAgICAgIG1v
dmVkIG1fdGFyZ2V0IGFuZCBtX3VybCB0byBGb3JtRGF0YUJ1aWxkZXIuCisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtRGF0YTo6
YXBwZW5kRE9NRm9ybURhdGEpOiBSZW1vdmVkIHVubmVjZXNzYXJ5IGluc3RhbnRpYXRpb24gb2Yg
Rm9ybURhdGFCdWlsZGVyLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGFCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhQnVpbGRlcjo6cGFyc2VBY3Rpb24p
OiBNb3ZlZCBmcm9tIEhUTUxGb3JtQ29udHJvbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L0Zvcm1EYXRhQnVpbGRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFCdWlsZGVyOjph
Y3Rpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhQnVpbGRlcjo6dGFyZ2V0
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb3JtRGF0YUJ1aWxkZXI6OnNldFRhcmdldCk6
IERpdHRvLgorCiAyMDEwLTA2LTAzICBEaW1pdHJpIEdsYXprb3YgIDxkZ2xhemtvdkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MRm9y
bUVsZW1lbnQuY3BwCmluZGV4IDA4MGRkMmExZjg5ZDQ4M2Q0M2E2ZDk3MTBmMTk5Zjg0YjQ1MjA5
MDEuLmRiYWQyOTI3ZTdkZTY3OGI5Zjc5YTAxZjM3M2YwY2ZhYjIzMTExYTMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1M
Rm9ybUVsZW1lbnQuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVt
ZW50LmgiCiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKLSNpbmNsdWRlICJDU1NIZWxwZXIuaCIK
ICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgogI2luY2x1
ZGUgIkRvY3VtZW50LmgiCkBAIC0xOTMsMTQgKzE5Miw2IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50
OjpzdWJtaXRJbXBsaWNpdGx5KEV2ZW50KiBldmVudCwgYm9vbCBmcm9tSW1wbGljaXRTdWJtaXNz
aW9uCiAgICAgICAgIHByZXBhcmVTdWJtaXQoZXZlbnQpOwogfQogCi1UZXh0RW5jb2RpbmcgSFRN
TEZvcm1FbGVtZW50OjpkYXRhRW5jb2RpbmcoKSBjb25zdAotewotICAgIGlmIChpc01haWx0b0Zv
cm0oKSkKLSAgICAgICAgcmV0dXJuIFVURjhFbmNvZGluZygpOwotCi0gICAgcmV0dXJuIG1fZm9y
bURhdGFCdWlsZGVyLmRhdGFFbmNvZGluZyhkb2N1bWVudCgpKTsKLX0KLQogc3RhdGljIHZvaWQg
YXBwZW5kTWFpbHRvUG9zdEZvcm1EYXRhVG9VUkwoS1VSTCYgdXJsLCBjb25zdCBGb3JtRGF0YSYg
ZGF0YSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZ1R5cGUpCiB7CiAgICAgU3RyaW5nIGJvZHkgPSBk
YXRhLmZsYXR0ZW5Ub1N0cmluZygpOwpAQCAtMjI0LDE2ICsyMTUsMTkgQEAgc3RhdGljIHZvaWQg
YXBwZW5kTWFpbHRvUG9zdEZvcm1EYXRhVG9VUkwoS1VSTCYgdXJsLCBjb25zdCBGb3JtRGF0YSYg
ZGF0YSwgY29uc3QKIAogUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gSFRNTEZvcm1FbGVtZW50
OjpwcmVwYXJlRm9ybVN1Ym1pc3Npb24oRXZlbnQqIGV2ZW50LCBib29sIGxvY2tIaXN0b3J5LCBG
b3JtU3VibWlzc2lvblRyaWdnZXIgdHJpZ2dlcikKIHsKKyAgICBLVVJMIGFjdGlvblVSTCA9IGRv
Y3VtZW50KCktPmNvbXBsZXRlVVJMKG1fZm9ybURhdGFCdWlsZGVyLmFjdGlvbigpLmlzRW1wdHko
KSA/IGRvY3VtZW50KCktPnVybCgpLnN0cmluZygpIDogbV9mb3JtRGF0YUJ1aWxkZXIuYWN0aW9u
KCkpOworICAgIGJvb2wgaXNNYWlsdG9Gb3JtID0gYWN0aW9uVVJMLnByb3RvY29sSXMoIm1haWx0
byIpOworCiAgICAgaWYgKG1fZm9ybURhdGFCdWlsZGVyLmlzUG9zdE1ldGhvZCgpKSB7Ci0gICAg
ICAgIGlmIChtX2Zvcm1EYXRhQnVpbGRlci5pc011bHRpUGFydEZvcm0oKSAmJiBpc01haWx0b0Zv
cm0oKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgbWF5IGZpcmUgYSBET00gTXV0YXRp
b24gRXZlbnQuIERvIHdlIHJlYWxseSB3YW50IHRoaXMgaGVyZT8KLSAgICAgICAgICAgIHNldEVu
Y3R5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpOworICAgICAgICBpZiAo
bV9mb3JtRGF0YUJ1aWxkZXIuaXNNdWx0aVBhcnRGb3JtKCkgJiYgaXNNYWlsdG9Gb3JtKSB7Cisg
ICAgICAgICAgICBtX2Zvcm1EYXRhQnVpbGRlci5wYXJzZUVuY29kaW5nVHlwZSgiYXBwbGljYXRp
b24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7CiAgICAgICAgICAgICBBU1NFUlQoIW1fZm9ybURh
dGFCdWlsZGVyLmlzTXVsdGlQYXJ0Rm9ybSgpKTsKICAgICAgICAgfQogICAgIH0gZWxzZQogICAg
ICAgICBtX2Zvcm1EYXRhQnVpbGRlci5zZXRJc011bHRpUGFydEZvcm0oZmFsc2UpOwogCi0gICAg
UmVmUHRyPERPTUZvcm1EYXRhPiBkb21Gb3JtRGF0YSA9IERPTUZvcm1EYXRhOjpjcmVhdGUoZGF0
YUVuY29kaW5nKCkuZW5jb2RpbmdGb3JGb3JtU3VibWlzc2lvbigpKTsKKyAgICBUZXh0RW5jb2Rp
bmcgZGF0YUVuY29kaW5nID0gaXNNYWlsdG9Gb3JtID8gVVRGOEVuY29kaW5nKCkgOiBtX2Zvcm1E
YXRhQnVpbGRlci5kYXRhRW5jb2RpbmcoZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPERPTUZvcm1E
YXRhPiBkb21Gb3JtRGF0YSA9IERPTUZvcm1EYXRhOjpjcmVhdGUoZGF0YUVuY29kaW5nLmVuY29k
aW5nRm9yRm9ybVN1Ym1pc3Npb24oKSk7CiAgICAgVmVjdG9yPHBhaXI8U3RyaW5nLCBTdHJpbmc+
ID4gZm9ybVZhbHVlczsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2Fzc29jaWF0
ZWRFbGVtZW50cy5zaXplKCk7ICsraSkgewpAQCAtMjUyLDM1ICsyNDYsMjUgQEAgUGFzc1JlZlB0
cjxGb3JtU3VibWlzc2lvbj4gSFRNTEZvcm1FbGVtZW50OjpwcmVwYXJlRm9ybVN1Ym1pc3Npb24o
RXZlbnQqIGV2ZW50LAogCiAgICAgUmVmUHRyPEZvcm1EYXRhPiBmb3JtRGF0YTsKICAgICBTdHJp
bmcgYm91bmRhcnk7Ci0gICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hldGhlciBtX3VybC5pc051
bGwgY2hlY2sgaXMgbmVjZXNzYXJ5LgotICAgIEtVUkwgYWN0aW9uVVJMID0gZG9jdW1lbnQoKS0+
Y29tcGxldGVVUkwobV91cmwuaXNOdWxsKCkgPyAiIiA6IG1fdXJsKTsKIAogICAgIGlmIChtX2Zv
cm1EYXRhQnVpbGRlci5pc011bHRpUGFydEZvcm0oKSkgewogICAgICAgICBmb3JtRGF0YSA9IEZv
cm1EYXRhOjpjcmVhdGVNdWx0aVBhcnQoKmRvbUZvcm1EYXRhLCBkb2N1bWVudCgpKTsKICAgICAg
ICAgYm91bmRhcnkgPSBmb3JtRGF0YS0+Ym91bmRhcnkoKS5kYXRhKCk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgZm9ybURhdGEgPSBGb3JtRGF0YTo6Y3JlYXRlKCpkb21Gb3JtRGF0YSk7Ci0gICAg
ICAgIGlmIChtX2Zvcm1EYXRhQnVpbGRlci5pc1Bvc3RNZXRob2QoKSAmJiBpc01haWx0b0Zvcm0o
KSkgeworICAgICAgICBpZiAobV9mb3JtRGF0YUJ1aWxkZXIuaXNQb3N0TWV0aG9kKCkgJiYgaXNN
YWlsdG9Gb3JtKSB7CiAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBmb3JtIGRhdGEgaW50byBh
IHN0cmluZyB0aGF0IHdlIHB1dCBpbnRvIHRoZSBVUkwuCiAgICAgICAgICAgICBhcHBlbmRNYWls
dG9Qb3N0Rm9ybURhdGFUb1VSTChhY3Rpb25VUkwsICpmb3JtRGF0YSwgbV9mb3JtRGF0YUJ1aWxk
ZXIuZW5jb2RpbmdUeXBlKCkpOwotICAgICAgICAgICAgLy8gRklYTUU6IFdoeSBpcyBzZXR0aW5n
IG1fdXJsIG5lY2Vzc2FyeSBoZXJlPyBUaGlzIHNlZW1zIHdyb25nIGlmIG1haWwgZm9ybSBpcyBz
dWJtaXR0ZWQgbXVsdGlwbGUgdGltZXM/Ci0gICAgICAgICAgICBtX3VybCA9IGFjdGlvblVSTC5z
dHJpbmcoKTsKLQogICAgICAgICAgICAgZm9ybURhdGEgPSBGb3JtRGF0YTo6Y3JlYXRlKCk7CiAg
ICAgICAgIH0KICAgICB9CiAKICAgICBmb3JtRGF0YS0+c2V0SWRlbnRpZmllcihnZW5lcmF0ZUZv
cm1EYXRhSWRlbnRpZmllcigpKTsKICAgICBGb3JtU3VibWlzc2lvbjo6TWV0aG9kIG1ldGhvZCA9
IG1fZm9ybURhdGFCdWlsZGVyLmlzUG9zdE1ldGhvZCgpID8gRm9ybVN1Ym1pc3Npb246OlBvc3RN
ZXRob2QgOiBGb3JtU3VibWlzc2lvbjo6R2V0TWV0aG9kOwotICAgIFN0cmluZyB0YXJnZXRPckJh
c2VUYXJnZXQgPSBtX3RhcmdldC5pc0VtcHR5KCkgPyBkb2N1bWVudCgpLT5iYXNlVGFyZ2V0KCkg
OiBtX3RhcmdldDsKKyAgICBTdHJpbmcgdGFyZ2V0T3JCYXNlVGFyZ2V0ID0gbV9mb3JtRGF0YUJ1
aWxkZXIudGFyZ2V0KCkuaXNFbXB0eSgpID8gZG9jdW1lbnQoKS0+YmFzZVRhcmdldCgpIDogbV9m
b3JtRGF0YUJ1aWxkZXIudGFyZ2V0KCk7CiAgICAgcmV0dXJuIEZvcm1TdWJtaXNzaW9uOjpjcmVh
dGUobWV0aG9kLCBhY3Rpb25VUkwsIHRhcmdldE9yQmFzZVRhcmdldCwgbV9mb3JtRGF0YUJ1aWxk
ZXIuZW5jb2RpbmdUeXBlKCksIEZvcm1TdGF0ZTo6Y3JlYXRlKHRoaXMsIGZvcm1WYWx1ZXMsIGRv
Y3VtZW50KCktPmZyYW1lKCksIHRyaWdnZXIpLCBmb3JtRGF0YS5yZWxlYXNlKCksIGJvdW5kYXJ5
LCBsb2NrSGlzdG9yeSwgZXZlbnQpOwogfQogCi1ib29sIEhUTUxGb3JtRWxlbWVudDo6aXNNYWls
dG9Gb3JtKCkgY29uc3QKLXsKLSAgICByZXR1cm4gcHJvdG9jb2xJcyhtX3VybCwgIm1haWx0byIp
OwotfQotCiBzdGF0aWMgaW5saW5lIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqIHN1Ym1pdEVsZW1l
bnRGcm9tRXZlbnQoY29uc3QgRXZlbnQqIGV2ZW50KQogewogICAgIE5vZGUqIHRhcmdldE5vZGUg
PSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpOwpAQCAtNDAyLDkgKzM4Niw2IEBAIHZvaWQgSFRN
TEZvcm1FbGVtZW50OjpzdWJtaXQoRXZlbnQqIGV2ZW50LCBib29sIGFjdGl2YXRlU3VibWl0QnV0
dG9uLCBib29sIGxvY2tICiAKICAgICBpZiAobmVlZEJ1dHRvbkFjdGl2YXRpb24gJiYgZmlyc3RT
dWNjZXNzZnVsU3VibWl0QnV0dG9uKQogICAgICAgICBmaXJzdFN1Y2Nlc3NmdWxTdWJtaXRCdXR0
b24tPnNldEFjdGl2YXRlZFN1Ym1pdCh0cnVlKTsKLSAgICAKLSAgICBpZiAobV91cmwuaXNFbXB0
eSgpKQotICAgICAgICBtX3VybCA9IGRvY3VtZW50KCktPnVybCgpLnN0cmluZygpOwogCiAgICAg
ZnJhbWUtPmxvYWRlcigpLT5zdWJtaXRGb3JtKHByZXBhcmVGb3JtU3VibWlzc2lvbihldmVudCwg
bG9ja0hpc3RvcnksIGZvcm1TdWJtaXNzaW9uVHJpZ2dlcikpOwogCkBAIC00MzgsOSArNDE5LDkg
QEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlc2V0KCkKIHZvaWQgSFRNTEZvcm1FbGVtZW50Ojpw
YXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgaWYgKGF0dHItPm5h
bWUoKSA9PSBhY3Rpb25BdHRyKQotICAgICAgICBtX3VybCA9IGRlcHJlY2F0ZWRQYXJzZVVSTChh
dHRyLT52YWx1ZSgpKTsKKyAgICAgICAgbV9mb3JtRGF0YUJ1aWxkZXIucGFyc2VBY3Rpb24oYXR0
ci0+dmFsdWUoKSk7CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IHRhcmdldEF0dHIpCi0g
ICAgICAgIG1fdGFyZ2V0ID0gYXR0ci0+dmFsdWUoKTsKKyAgICAgICAgbV9mb3JtRGF0YUJ1aWxk
ZXIuc2V0VGFyZ2V0KGF0dHItPnZhbHVlKCkpOwogICAgIGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBtZXRob2RBdHRyKQogICAgICAgICBtX2Zvcm1EYXRhQnVpbGRlci5wYXJzZU1ldGhvZFR5cGUo
YXR0ci0+dmFsdWUoKSk7CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IGVuY3R5cGVBdHRy
KQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oIGIvV2ViQ29yZS9o
dG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4IDdlM2JkMzNjOWRkMWM4MzcxNWNjZjVkNjU3N2M3
YmI1ZDVjNzQxMzguLmIxOWZmMDczMjlmNTAyYjRkOWRjYzAwMDFiYWUxYTk1NjE2YzBjZGEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAorKysgYi9XZWJDb3JlL2h0
bWwvSFRNTEZvcm1FbGVtZW50LmgKQEAgLTEzNiw4ICsxMzYsNiBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBzdWJtaXQoRXZlbnQqLCBib29sIGFjdGl2YXRlU3VibWl0QnV0dG9uLCBib29sIGxvY2tI
aXN0b3J5LCBGb3JtU3VibWlzc2lvblRyaWdnZXIpOwogCi0gICAgYm9vbCBpc01haWx0b0Zvcm0o
KSBjb25zdDsKLSAgICBUZXh0RW5jb2RpbmcgZGF0YUVuY29kaW5nKCkgY29uc3Q7CiAgICAgUGFz
c1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gcHJlcGFyZUZvcm1TdWJtaXNzaW9uKEV2ZW50KiwgYm9v
bCBsb2NrSGlzdG9yeSwgRm9ybVN1Ym1pc3Npb25UcmlnZ2VyKTsKICAgICB1bnNpZ25lZCBmb3Jt
RWxlbWVudEluZGV4KEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqKTsKICAgICAvLyBSZXR1cm5zIHRy
dWUgaWYgdGhlIHN1Ym1pc3Npb24gc2hvdWxkIGJlIHByb2NlZWRlZC4KQEAgLTE1OSw4ICsxNTcs
NiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxIVE1MRm9ybUNvbnRyb2xFbGVtZW50Kj4gbV9hc3Nv
Y2lhdGVkRWxlbWVudHM7CiAgICAgVmVjdG9yPEhUTUxJbWFnZUVsZW1lbnQqPiBtX2ltYWdlRWxl
bWVudHM7CiAKLSAgICBTdHJpbmcgbV91cmw7Ci0gICAgU3RyaW5nIG1fdGFyZ2V0OwogICAgIGJv
b2wgbV9hdXRvY29tcGxldGUgOiAxOwogICAgIGJvb2wgbV9pbnN1Ym1pdCA6IDE7CiAgICAgYm9v
bCBtX2RvaW5nc3VibWl0IDogMTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Gb3JtRGF0YS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGEuY3BwCmlu
ZGV4IDkxODAwMmFlZmQ4MWE2ODkxZjlmMTliYWY0NGQ3NTU5MWZkZmE0ODQuLjVmNGY1NDZlMWRm
ODM0ODY5MjViMzQ0ZTI3NTcwZDUzNGQ5MDU3YTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9Gb3JtRGF0YS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zv
cm1EYXRhLmNwcApAQCAtMTY5LDkgKzE2OSw4IEBAIHZvaWQgRm9ybURhdGE6OmFwcGVuZEZpbGVS
YW5nZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBsb25nIGxvbmcgc3RhcnQsIGxvbmcgbG9uCiAK
IHZvaWQgRm9ybURhdGE6OmFwcGVuZERPTUZvcm1EYXRhKGNvbnN0IERPTUZvcm1EYXRhJiBkb21G
b3JtRGF0YSwgYm9vbCBpc011bHRpUGFydEZvcm0sIERvY3VtZW50KiBkb2N1bWVudCkKIHsKLSAg
ICBGb3JtRGF0YUJ1aWxkZXIgZm9ybURhdGFCdWlsZGVyOwogICAgIGlmIChpc011bHRpUGFydEZv
cm0pCi0gICAgICAgIG1fYm91bmRhcnkgPSBmb3JtRGF0YUJ1aWxkZXIuZ2VuZXJhdGVVbmlxdWVC
b3VuZGFyeVN0cmluZygpOworICAgICAgICBtX2JvdW5kYXJ5ID0gRm9ybURhdGFCdWlsZGVyOjpn
ZW5lcmF0ZVVuaXF1ZUJvdW5kYXJ5U3RyaW5nKCk7CiAKICAgICBWZWN0b3I8Y2hhcj4gZW5jb2Rl
ZERhdGE7CiAgICAgVGV4dEVuY29kaW5nIGVuY29kaW5nID0gZG9tRm9ybURhdGEuZW5jb2Rpbmco
KTsKQEAgLTE4NCw3ICsxODMsNyBAQCB2b2lkIEZvcm1EYXRhOjphcHBlbmRET01Gb3JtRGF0YShj
b25zdCBET01Gb3JtRGF0YSYgZG9tRm9ybURhdGEsIGJvb2wgaXNNdWx0aVBhcgogICAgICAgICBj
b25zdCBGb3JtRGF0YUxpc3Q6Okl0ZW0mIHZhbHVlID0gbGlzdFtpICsgMV07CiAgICAgICAgIGlm
IChpc011bHRpUGFydEZvcm0pIHsKICAgICAgICAgICAgIFZlY3RvcjxjaGFyPiBoZWFkZXI7Ci0g
ICAgICAgICAgICBmb3JtRGF0YUJ1aWxkZXIuYmVnaW5NdWx0aVBhcnRIZWFkZXIoaGVhZGVyLCBt
X2JvdW5kYXJ5LmRhdGEoKSwga2V5LmRhdGEoKSk7CisgICAgICAgICAgICBGb3JtRGF0YUJ1aWxk
ZXI6OmJlZ2luTXVsdGlQYXJ0SGVhZGVyKGhlYWRlciwgbV9ib3VuZGFyeS5kYXRhKCksIGtleS5k
YXRhKCkpOwogCiAgICAgICAgICAgICBib29sIHNob3VsZEdlbmVyYXRlRmlsZSA9IGZhbHNlOwog
ICAgICAgICAgICAgLy8gSWYgdGhlIGN1cnJlbnQgdHlwZSBpcyBGSUxFLCB0aGVuIHdlIGFsc28g
bmVlZCB0byBpbmNsdWRlIHRoZSBmaWxlbmFtZQpAQCAtMjE1LDcgKzIxNCw3IEBAIHZvaWQgRm9y
bURhdGE6OmFwcGVuZERPTUZvcm1EYXRhKGNvbnN0IERPTUZvcm1EYXRhJiBkb21Gb3JtRGF0YSwg
Ym9vbCBpc011bHRpUGFyCiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgLy8g
V2UgaGF2ZSB0byBpbmNsdWRlIHRoZSBmaWxlbmFtZT0iLi4iIHBhcnQgaW4gdGhlIGhlYWRlciwg
ZXZlbiBpZiB0aGUgZmlsZW5hbWUgaXMgZW1wdHkKLSAgICAgICAgICAgICAgICBmb3JtRGF0YUJ1
aWxkZXIuYWRkRmlsZW5hbWVUb011bHRpUGFydEhlYWRlcihoZWFkZXIsIGVuY29kaW5nLCBmaWxl
TmFtZSk7CisgICAgICAgICAgICAgICAgRm9ybURhdGFCdWlsZGVyOjphZGRGaWxlbmFtZVRvTXVs
dGlQYXJ0SGVhZGVyKGhlYWRlciwgZW5jb2RpbmcsIGZpbGVOYW1lKTsKIAogICAgICAgICAgICAg
ICAgIC8vIElmIGEgYmxvYiBpcyBzbGljZWQgZnJvbSBhIGZpbGUsIGRvIG5vdCBhZGQgdGhlIGNv
bnRlbnQgdHlwZS4gCiAjaWYgRU5BQkxFKEJMT0JfU0xJQ0UpCkBAIC0yMjksMTEgKzIyOCwxMSBA
QCB2b2lkIEZvcm1EYXRhOjphcHBlbmRET01Gb3JtRGF0YShjb25zdCBET01Gb3JtRGF0YSYgZG9t
Rm9ybURhdGEsIGJvb2wgaXNNdWx0aVBhcgogICAgICAgICAgICAgICAgICAgICAvLyBNSU1FIHR5
cGUgb2YgdGhlIGdlbmVyYXRlZCBmaWxlLgogICAgICAgICAgICAgICAgICAgICBTdHJpbmcgbWlt
ZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlwZUZvclBhdGgoZmlsZU5hbWUpOwog
ICAgICAgICAgICAgICAgICAgICBpZiAoIW1pbWVUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIGZvcm1EYXRhQnVpbGRlci5hZGRDb250ZW50VHlwZVRvTXVsdGlQYXJ0SGVh
ZGVyKGhlYWRlciwgbWltZVR5cGUubGF0aW4xKCkpOworICAgICAgICAgICAgICAgICAgICAgICAg
Rm9ybURhdGFCdWlsZGVyOjphZGRDb250ZW50VHlwZVRvTXVsdGlQYXJ0SGVhZGVyKGhlYWRlciwg
bWltZVR5cGUubGF0aW4xKCkpOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgZm9ybURhdGFCdWlsZGVyLmZpbmlzaE11bHRpUGFydEhlYWRlcihoZWFkZXIp
OworICAgICAgICAgICAgRm9ybURhdGFCdWlsZGVyOjpmaW5pc2hNdWx0aVBhcnRIZWFkZXIoaGVh
ZGVyKTsKIAogICAgICAgICAgICAgLy8gQXBwZW5kIGJvZHkKICAgICAgICAgICAgIGFwcGVuZERh
dGEoaGVhZGVyLmRhdGEoKSwgaGVhZGVyLnNpemUoKSk7CkBAIC0yNTMsMTIgKzI1MiwxMiBAQCB2
b2lkIEZvcm1EYXRhOjphcHBlbmRET01Gb3JtRGF0YShjb25zdCBET01Gb3JtRGF0YSYgZG9tRm9y
bURhdGEsIGJvb2wgaXNNdWx0aVBhcgogICAgICAgICAgICAgaWYgKGVuY29kZWREYXRhLmlzRW1w
dHkoKSAmJiBrZXkuZGF0YSgpID09ICJpc2luZGV4IikKICAgICAgICAgICAgICAgICBGb3JtRGF0
YUJ1aWxkZXI6OmVuY29kZVN0cmluZ0FzRm9ybURhdGEoZW5jb2RlZERhdGEsIHZhbHVlLmRhdGEo
KSk7CiAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgZm9ybURhdGFCdWlsZGVyLmFk
ZEtleVZhbHVlUGFpckFzRm9ybURhdGEoZW5jb2RlZERhdGEsIGtleS5kYXRhKCksIHZhbHVlLmRh
dGEoKSk7CisgICAgICAgICAgICAgICAgRm9ybURhdGFCdWlsZGVyOjphZGRLZXlWYWx1ZVBhaXJB
c0Zvcm1EYXRhKGVuY29kZWREYXRhLCBrZXkuZGF0YSgpLCB2YWx1ZS5kYXRhKCkpOwogICAgICAg
ICB9CiAgICAgfSAKIAogICAgIGlmIChpc011bHRpUGFydEZvcm0pCi0gICAgICAgIGZvcm1EYXRh
QnVpbGRlci5hZGRCb3VuZGFyeVRvTXVsdGlQYXJ0SGVhZGVyKGVuY29kZWREYXRhLCBtX2JvdW5k
YXJ5LmRhdGEoKSwgdHJ1ZSk7CisgICAgICAgIEZvcm1EYXRhQnVpbGRlcjo6YWRkQm91bmRhcnlU
b011bHRpUGFydEhlYWRlcihlbmNvZGVkRGF0YSwgbV9ib3VuZGFyeS5kYXRhKCksIHRydWUpOwog
CiAgICAgYXBwZW5kRGF0YShlbmNvZGVkRGF0YS5kYXRhKCksIGVuY29kZWREYXRhLnNpemUoKSk7
CiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGFCdWlsZGVy
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuY3BwCmluZGV4
IDEzYTQ1N2IwZDE0YzUxYjEwMzhmZGU1Y2EzMTA0ZjQxYjFjNGVjNjYuLmZiNzhiMDhjYzZjYjE0
OTJhMThmNzBhOTE3OGFiYzQ5MjEyNGY5YTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Gb3JtRGF0YUJ1aWxkZXIuY3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiRm9ybURhdGFCdWlsZGVyLmgiCiAKKyNpbmNsdWRlICJDU1NIZWxwZXIu
aCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKQEAgLTQ4LDYgKzQ5LDEyIEBAIEZvcm1EYXRhQnVpbGRlcjo6fkZvcm1E
YXRhQnVpbGRlcigpCiB7CiB9CiAKK3ZvaWQgRm9ybURhdGFCdWlsZGVyOjpwYXJzZUFjdGlvbihj
b25zdCBTdHJpbmcmIGFjdGlvbikKK3sKKyAgICAvLyBGSVhNRTogQ2FuIHdlIHBhcnNlIGludG8g
YSBLVVJMPworICAgIG1fYWN0aW9uID0gZGVwcmVjYXRlZFBhcnNlVVJMKGFjdGlvbik7Cit9CisK
IHZvaWQgRm9ybURhdGFCdWlsZGVyOjpwYXJzZUVuY29kaW5nVHlwZShjb25zdCBTdHJpbmcmIHR5
cGUpCiB7CiAgICAgaWYgKHR5cGUuY29udGFpbnMoIm11bHRpcGFydCIsIGZhbHNlKSB8fCB0eXBl
LmNvbnRhaW5zKCJmb3JtLWRhdGEiLCBmYWxzZSkpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9Gb3JtRGF0YUJ1aWxkZXIuaAppbmRleCAzOTBhODdiNDZiNzQ4Mzk3NTc2Y2Y1MDI1ODc1ZDJi
Y2M3NTRkZjlkLi5mOGJlN2MyODk1YmY5N2IwZDBkZDU0ODA1YTlhZGE5NzMxZTU3NjdhIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvRm9ybURhdGFCdWlsZGVyLmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhQnVpbGRlci5oCkBAIC00NSwxMiArNDUs
MTggQEAgcHVibGljOgogICAgIGJvb2wgaXNNdWx0aVBhcnRGb3JtKCkgY29uc3QgeyByZXR1cm4g
bV9pc011bHRpUGFydEZvcm07IH0KICAgICB2b2lkIHNldElzTXVsdGlQYXJ0Rm9ybShib29sIHZh
bHVlKSB7IG1faXNNdWx0aVBhcnRGb3JtID0gdmFsdWU7IH0KIAorICAgIFN0cmluZyBhY3Rpb24o
KSBjb25zdCB7IHJldHVybiBtX2FjdGlvbjsgfQorCisgICAgU3RyaW5nIHRhcmdldCgpIGNvbnN0
IHsgcmV0dXJuIG1fdGFyZ2V0OyB9CisgICAgdm9pZCBzZXRUYXJnZXQoY29uc3QgU3RyaW5nJiB0
YXJnZXQpIHsgbV90YXJnZXQgPSB0YXJnZXQ7IH0KKwogICAgIFN0cmluZyBlbmNvZGluZ1R5cGUo
KSBjb25zdCB7IHJldHVybiBtX2VuY29kaW5nVHlwZTsgfQogICAgIHZvaWQgc2V0RW5jb2RpbmdU
eXBlKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsgbV9lbmNvZGluZ1R5cGUgPSB2YWx1ZTsgfQogCiAg
ICAgU3RyaW5nIGFjY2VwdENoYXJzZXQoKSBjb25zdCB7IHJldHVybiBtX2FjY2VwdENoYXJzZXQ7
IH0KICAgICB2b2lkIHNldEFjY2VwdENoYXJzZXQoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeyBtX2Fj
Y2VwdENoYXJzZXQgPSB2YWx1ZTsgfQogCisgICAgdm9pZCBwYXJzZUFjdGlvbihjb25zdCBTdHJp
bmcmKTsKICAgICB2b2lkIHBhcnNlRW5jb2RpbmdUeXBlKGNvbnN0IFN0cmluZyYpOwogICAgIHZv
aWQgcGFyc2VNZXRob2RUeXBlKGNvbnN0IFN0cmluZyYpOwogCkBAIC03Miw2ICs3OCw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2lzUG9zdE1ldGhvZDsKICAgICBib29sIG1faXNNdWx0aVBhcnRG
b3JtOwogCisgICAgU3RyaW5nIG1fYWN0aW9uOworICAgIFN0cmluZyBtX3RhcmdldDsKICAgICBT
dHJpbmcgbV9lbmNvZGluZ1R5cGU7CiAgICAgU3RyaW5nIG1fYWNjZXB0Q2hhcnNldDsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59309</attachid>
            <date>2010-06-21 16:32:56 -0700</date>
            <delta_ts>2010-06-21 22:16:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-40184-20100621163255.patch</filename>
            <type>text/plain</type>
            <size>13451</size>
            <attacher name="Dimitri Glazkov (Google)">dglazkov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjliMTY3OTZiZGI4ZDIwYTgxNjI0MTk0OGU3MGYwMTk5ODYzOTRiOC4uZjhiNTA5YTU1NjRjMjM3
YTljNTBkYWI4MGZjNjA0MDEzMDNjMDhmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAxMC0wNi0wNCAgRGlt
aXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBzaWRlIGVmZmVjdHMgb2YgZm9y
bSBzdWJtaXNzaW9uIGFuZCBwcmVwYXJlIEZvcm1EYXRhQnVpbGRlciBmb3Igc3BsaXR0aW5nIHVw
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDAxODQK
KworICAgICAgICBSZWZhY3RvcmluZywgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAg
ICAgICAqIGh0bWwvSFRNTEZvcm1FbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxG
b3JtRWxlbWVudDo6cHJlcGFyZUZvcm1TdWJtaXNzaW9uKTogCisgICAgICAgICAgICAqIENoYW5n
ZWQgdG8gdXNlIG5ldyBhY2Nlc3NvcnMgb24gRm9ybURhdGFCdWlsZGVyOworICAgICAgICAgICAg
KiBTaW1wbGlmaWVkIHRoZSBsb2dpYyBhcm91bmQgYWN0aW9uIFVSTDsKKyAgICAgICAgICAgICog
UmVtb3ZlZCBmb3JtIHN1Ym1pc3Npb24gc2lkZSBlZmZlY3Qgb2YgZWxlbWVudCdzIGVuY3R5cGUg
cHJvcGVydHkgYmVpbmcgdXBkYXRlZCB3aGVuCisgICAgICAgICAgICAgICAgc3VibWl0dGluZyBh
IG1haWx0byBmb3JtOworICAgICAgICAgICAgKiBSZW1vdmVkIHVubmVjZXNzYXJ5IHVwZGF0aW5n
IG9mIGFjdGlvbiBVUkwgZm9yIG1haWx0byBmb3Jtcy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxG
b3JtRWxlbWVudDo6c3VibWl0KTogTW92ZWQgYWN0aW9uIFVSTCBjaGVjayBpbnRvIHByZXBhcmVG
b3JtU3VibWlzc2lvbi4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGb3JtRWxlbWVudDo6cGFyc2VN
YXBwZWRBdHRyaWJ1dGUpOiBVcGRhdGVkIHRvIHVzZSBuZXcgbWV0aG9kcyBvbiBGb3JtRGF0YUJ1
aWxkZXIuCisgICAgICAgICogaHRtbC9IVE1MRm9ybUVsZW1lbnQuaDogUmVtb3ZlZCBkZWNscyBm
b3IgaXNNYWlsdG9Gb3JtIGFuZCBkYXRhRW5jb2RpbmcgbWV0aG9kczsKKyAgICAgICAgICAgIG1v
dmVkIG1fdGFyZ2V0IGFuZCBtX3VybCB0byBGb3JtRGF0YUJ1aWxkZXIuCisgICAgICAgICogcGxh
dGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3JtRGF0YTo6
YXBwZW5kRE9NRm9ybURhdGEpOiBSZW1vdmVkIHVubmVjZXNzYXJ5IGluc3RhbnRpYXRpb24gb2Yg
Rm9ybURhdGFCdWlsZGVyLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvRm9ybURhdGFCdWls
ZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhQnVpbGRlcjo6cGFyc2VBY3Rpb24p
OiBNb3ZlZCBmcm9tIEhUTUxGb3JtQ29udHJvbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L0Zvcm1EYXRhQnVpbGRlci5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9ybURhdGFCdWlsZGVyOjph
Y3Rpb24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvcm1EYXRhQnVpbGRlcjo6dGFyZ2V0
KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb3JtRGF0YUJ1aWxkZXI6OnNldFRhcmdldCk6
IERpdHRvLgorCiAyMDEwLTA2LTIxICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdt
YWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByNjE1ODUuCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9I
VE1MRm9ybUVsZW1lbnQuY3BwCmluZGV4IDU4ZTdkYzQwZTg2Y2FkNzVhMDZiODhmYTk2NTQ5ZDdi
ZGE1YWU1OTkuLjlkNTg5MzQyYTMyNjM0M2ZmZWYyNzhiMDQxMjhjMWU1MzBmNjYwZjkgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MRm9ybUVsZW1lbnQuY3BwCkBAIC0yNiw3ICsyNiw2IEBACiAjaW5jbHVkZSAiSFRNTEZv
cm1FbGVtZW50LmgiCiAKICNpbmNsdWRlICJBdHRyaWJ1dGUuaCIKLSNpbmNsdWRlICJDU1NIZWxw
ZXIuaCIKICNpbmNsdWRlICJET01Gb3JtRGF0YS5oIgogI2luY2x1ZGUgIkRPTVdpbmRvdy5oIgog
I2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xOTMsMTQgKzE5Miw2IEBAIHZvaWQgSFRNTEZvcm1F
bGVtZW50OjpzdWJtaXRJbXBsaWNpdGx5KEV2ZW50KiBldmVudCwgYm9vbCBmcm9tSW1wbGljaXRT
dWJtaXNzaW9uCiAgICAgICAgIHByZXBhcmVTdWJtaXQoZXZlbnQpOwogfQogCi1UZXh0RW5jb2Rp
bmcgSFRNTEZvcm1FbGVtZW50OjpkYXRhRW5jb2RpbmcoKSBjb25zdAotewotICAgIGlmIChpc01h
aWx0b0Zvcm0oKSkKLSAgICAgICAgcmV0dXJuIFVURjhFbmNvZGluZygpOwotCi0gICAgcmV0dXJu
IG1fZm9ybURhdGFCdWlsZGVyLmRhdGFFbmNvZGluZyhkb2N1bWVudCgpKTsKLX0KLQogc3RhdGlj
IHZvaWQgYXBwZW5kTWFpbHRvUG9zdEZvcm1EYXRhVG9VUkwoS1VSTCYgdXJsLCBjb25zdCBGb3Jt
RGF0YSYgZGF0YSwgY29uc3QgU3RyaW5nJiBlbmNvZGluZ1R5cGUpCiB7CiAgICAgU3RyaW5nIGJv
ZHkgPSBkYXRhLmZsYXR0ZW5Ub1N0cmluZygpOwpAQCAtMjI0LDE2ICsyMTUsMTkgQEAgc3RhdGlj
IHZvaWQgYXBwZW5kTWFpbHRvUG9zdEZvcm1EYXRhVG9VUkwoS1VSTCYgdXJsLCBjb25zdCBGb3Jt
RGF0YSYgZGF0YSwgY29uc3QKIAogUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gSFRNTEZvcm1F
bGVtZW50OjpwcmVwYXJlRm9ybVN1Ym1pc3Npb24oRXZlbnQqIGV2ZW50LCBib29sIGxvY2tIaXN0
b3J5LCBGb3JtU3VibWlzc2lvblRyaWdnZXIgdHJpZ2dlcikKIHsKKyAgICBLVVJMIGFjdGlvblVS
TCA9IGRvY3VtZW50KCktPmNvbXBsZXRlVVJMKG1fZm9ybURhdGFCdWlsZGVyLmFjdGlvbigpLmlz
RW1wdHkoKSA/IGRvY3VtZW50KCktPnVybCgpLnN0cmluZygpIDogbV9mb3JtRGF0YUJ1aWxkZXIu
YWN0aW9uKCkpOworICAgIGJvb2wgaXNNYWlsdG9Gb3JtID0gYWN0aW9uVVJMLnByb3RvY29sSXMo
Im1haWx0byIpOworCiAgICAgaWYgKG1fZm9ybURhdGFCdWlsZGVyLmlzUG9zdE1ldGhvZCgpKSB7
Ci0gICAgICAgIGlmIChtX2Zvcm1EYXRhQnVpbGRlci5pc011bHRpUGFydEZvcm0oKSAmJiBpc01h
aWx0b0Zvcm0oKSkgewotICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgbWF5IGZpcmUgYSBET00g
TXV0YXRpb24gRXZlbnQuIERvIHdlIHJlYWxseSB3YW50IHRoaXMgaGVyZT8KLSAgICAgICAgICAg
IHNldEVuY3R5cGUoImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZCIpOworICAgICAg
ICBpZiAobV9mb3JtRGF0YUJ1aWxkZXIuaXNNdWx0aVBhcnRGb3JtKCkgJiYgaXNNYWlsdG9Gb3Jt
KSB7CisgICAgICAgICAgICBtX2Zvcm1EYXRhQnVpbGRlci5wYXJzZUVuY29kaW5nVHlwZSgiYXBw
bGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkIik7CiAgICAgICAgICAgICBBU1NFUlQoIW1f
Zm9ybURhdGFCdWlsZGVyLmlzTXVsdGlQYXJ0Rm9ybSgpKTsKICAgICAgICAgfQogICAgIH0gZWxz
ZQogICAgICAgICBtX2Zvcm1EYXRhQnVpbGRlci5zZXRJc011bHRpUGFydEZvcm0oZmFsc2UpOwog
Ci0gICAgUmVmUHRyPERPTUZvcm1EYXRhPiBkb21Gb3JtRGF0YSA9IERPTUZvcm1EYXRhOjpjcmVh
dGUoZGF0YUVuY29kaW5nKCkuZW5jb2RpbmdGb3JGb3JtU3VibWlzc2lvbigpKTsKKyAgICBUZXh0
RW5jb2RpbmcgZGF0YUVuY29kaW5nID0gaXNNYWlsdG9Gb3JtID8gVVRGOEVuY29kaW5nKCkgOiBt
X2Zvcm1EYXRhQnVpbGRlci5kYXRhRW5jb2RpbmcoZG9jdW1lbnQoKSk7CisgICAgUmVmUHRyPERP
TUZvcm1EYXRhPiBkb21Gb3JtRGF0YSA9IERPTUZvcm1EYXRhOjpjcmVhdGUoZGF0YUVuY29kaW5n
LmVuY29kaW5nRm9yRm9ybVN1Ym1pc3Npb24oKSk7CiAgICAgVmVjdG9yPHBhaXI8U3RyaW5nLCBT
dHJpbmc+ID4gZm9ybVZhbHVlczsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX2Fz
c29jaWF0ZWRFbGVtZW50cy5zaXplKCk7ICsraSkgewpAQCAtMjUyLDM1ICsyNDYsMjUgQEAgUGFz
c1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gSFRNTEZvcm1FbGVtZW50OjpwcmVwYXJlRm9ybVN1Ym1p
c3Npb24oRXZlbnQqIGV2ZW50LAogCiAgICAgUmVmUHRyPEZvcm1EYXRhPiBmb3JtRGF0YTsKICAg
ICBTdHJpbmcgYm91bmRhcnk7Ci0gICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hldGhlciBtX3Vy
bC5pc051bGwgY2hlY2sgaXMgbmVjZXNzYXJ5LgotICAgIEtVUkwgYWN0aW9uVVJMID0gZG9jdW1l
bnQoKS0+Y29tcGxldGVVUkwobV91cmwuaXNOdWxsKCkgPyAiIiA6IG1fdXJsKTsKIAogICAgIGlm
IChtX2Zvcm1EYXRhQnVpbGRlci5pc011bHRpUGFydEZvcm0oKSkgewogICAgICAgICBmb3JtRGF0
YSA9IEZvcm1EYXRhOjpjcmVhdGVNdWx0aVBhcnQoZG9tRm9ybURhdGEtPml0ZW1zKCksIGRvbUZv
cm1EYXRhLT5lbmNvZGluZygpLCBkb2N1bWVudCgpKTsKICAgICAgICAgYm91bmRhcnkgPSBmb3Jt
RGF0YS0+Ym91bmRhcnkoKS5kYXRhKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgZm9ybURhdGEg
PSBGb3JtRGF0YTo6Y3JlYXRlKGRvbUZvcm1EYXRhLT5pdGVtcygpLCBkb21Gb3JtRGF0YS0+ZW5j
b2RpbmcoKSk7Ci0gICAgICAgIGlmIChtX2Zvcm1EYXRhQnVpbGRlci5pc1Bvc3RNZXRob2QoKSAm
JiBpc01haWx0b0Zvcm0oKSkgeworICAgICAgICBpZiAobV9mb3JtRGF0YUJ1aWxkZXIuaXNQb3N0
TWV0aG9kKCkgJiYgaXNNYWlsdG9Gb3JtKSB7CiAgICAgICAgICAgICAvLyBDb252ZXJ0IHRoZSBm
b3JtIGRhdGEgaW50byBhIHN0cmluZyB0aGF0IHdlIHB1dCBpbnRvIHRoZSBVUkwuCiAgICAgICAg
ICAgICBhcHBlbmRNYWlsdG9Qb3N0Rm9ybURhdGFUb1VSTChhY3Rpb25VUkwsICpmb3JtRGF0YSwg
bV9mb3JtRGF0YUJ1aWxkZXIuZW5jb2RpbmdUeXBlKCkpOwotICAgICAgICAgICAgLy8gRklYTUU6
IFdoeSBpcyBzZXR0aW5nIG1fdXJsIG5lY2Vzc2FyeSBoZXJlPyBUaGlzIHNlZW1zIHdyb25nIGlm
IG1haWwgZm9ybSBpcyBzdWJtaXR0ZWQgbXVsdGlwbGUgdGltZXM/Ci0gICAgICAgICAgICBtX3Vy
bCA9IGFjdGlvblVSTC5zdHJpbmcoKTsKLQogICAgICAgICAgICAgZm9ybURhdGEgPSBGb3JtRGF0
YTo6Y3JlYXRlKCk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBmb3JtRGF0YS0+c2V0SWRlbnRp
ZmllcihnZW5lcmF0ZUZvcm1EYXRhSWRlbnRpZmllcigpKTsKICAgICBGb3JtU3VibWlzc2lvbjo6
TWV0aG9kIG1ldGhvZCA9IG1fZm9ybURhdGFCdWlsZGVyLmlzUG9zdE1ldGhvZCgpID8gRm9ybVN1
Ym1pc3Npb246OlBvc3RNZXRob2QgOiBGb3JtU3VibWlzc2lvbjo6R2V0TWV0aG9kOwotICAgIFN0
cmluZyB0YXJnZXRPckJhc2VUYXJnZXQgPSBtX3RhcmdldC5pc0VtcHR5KCkgPyBkb2N1bWVudCgp
LT5iYXNlVGFyZ2V0KCkgOiBtX3RhcmdldDsKKyAgICBTdHJpbmcgdGFyZ2V0T3JCYXNlVGFyZ2V0
ID0gbV9mb3JtRGF0YUJ1aWxkZXIudGFyZ2V0KCkuaXNFbXB0eSgpID8gZG9jdW1lbnQoKS0+YmFz
ZVRhcmdldCgpIDogbV9mb3JtRGF0YUJ1aWxkZXIudGFyZ2V0KCk7CiAgICAgcmV0dXJuIEZvcm1T
dWJtaXNzaW9uOjpjcmVhdGUobWV0aG9kLCBhY3Rpb25VUkwsIHRhcmdldE9yQmFzZVRhcmdldCwg
bV9mb3JtRGF0YUJ1aWxkZXIuZW5jb2RpbmdUeXBlKCksIEZvcm1TdGF0ZTo6Y3JlYXRlKHRoaXMs
IGZvcm1WYWx1ZXMsIGRvY3VtZW50KCktPmZyYW1lKCksIHRyaWdnZXIpLCBmb3JtRGF0YS5yZWxl
YXNlKCksIGJvdW5kYXJ5LCBsb2NrSGlzdG9yeSwgZXZlbnQpOwogfQogCi1ib29sIEhUTUxGb3Jt
RWxlbWVudDo6aXNNYWlsdG9Gb3JtKCkgY29uc3QKLXsKLSAgICByZXR1cm4gcHJvdG9jb2xJcyht
X3VybCwgIm1haWx0byIpOwotfQotCiBzdGF0aWMgaW5saW5lIEhUTUxGb3JtQ29udHJvbEVsZW1l
bnQqIHN1Ym1pdEVsZW1lbnRGcm9tRXZlbnQoY29uc3QgRXZlbnQqIGV2ZW50KQogewogICAgIE5v
ZGUqIHRhcmdldE5vZGUgPSBldmVudC0+dGFyZ2V0KCktPnRvTm9kZSgpOwpAQCAtNDAyLDkgKzM4
Niw2IEBAIHZvaWQgSFRNTEZvcm1FbGVtZW50OjpzdWJtaXQoRXZlbnQqIGV2ZW50LCBib29sIGFj
dGl2YXRlU3VibWl0QnV0dG9uLCBib29sIGxvY2tICiAKICAgICBpZiAobmVlZEJ1dHRvbkFjdGl2
YXRpb24gJiYgZmlyc3RTdWNjZXNzZnVsU3VibWl0QnV0dG9uKQogICAgICAgICBmaXJzdFN1Y2Nl
c3NmdWxTdWJtaXRCdXR0b24tPnNldEFjdGl2YXRlZFN1Ym1pdCh0cnVlKTsKLSAgICAKLSAgICBp
ZiAobV91cmwuaXNFbXB0eSgpKQotICAgICAgICBtX3VybCA9IGRvY3VtZW50KCktPnVybCgpLnN0
cmluZygpOwogCiAgICAgZnJhbWUtPmxvYWRlcigpLT5zdWJtaXRGb3JtKHByZXBhcmVGb3JtU3Vi
bWlzc2lvbihldmVudCwgbG9ja0hpc3RvcnksIGZvcm1TdWJtaXNzaW9uVHJpZ2dlcikpOwogCkBA
IC00MzgsOSArNDE5LDkgQEAgdm9pZCBIVE1MRm9ybUVsZW1lbnQ6OnJlc2V0KCkKIHZvaWQgSFRN
TEZvcm1FbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAg
ICAgaWYgKGF0dHItPm5hbWUoKSA9PSBhY3Rpb25BdHRyKQotICAgICAgICBtX3VybCA9IGRlcHJl
Y2F0ZWRQYXJzZVVSTChhdHRyLT52YWx1ZSgpKTsKKyAgICAgICAgbV9mb3JtRGF0YUJ1aWxkZXIu
cGFyc2VBY3Rpb24oYXR0ci0+dmFsdWUoKSk7CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09
IHRhcmdldEF0dHIpCi0gICAgICAgIG1fdGFyZ2V0ID0gYXR0ci0+dmFsdWUoKTsKKyAgICAgICAg
bV9mb3JtRGF0YUJ1aWxkZXIuc2V0VGFyZ2V0KGF0dHItPnZhbHVlKCkpOwogICAgIGVsc2UgaWYg
KGF0dHItPm5hbWUoKSA9PSBtZXRob2RBdHRyKQogICAgICAgICBtX2Zvcm1EYXRhQnVpbGRlci5w
YXJzZU1ldGhvZFR5cGUoYXR0ci0+dmFsdWUoKSk7CiAgICAgZWxzZSBpZiAoYXR0ci0+bmFtZSgp
ID09IGVuY3R5cGVBdHRyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVu
dC5oIGIvV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCmluZGV4IDdlM2JkMzNjOWRkMWM4
MzcxNWNjZjVkNjU3N2M3YmI1ZDVjNzQxMzguLmIxOWZmMDczMjlmNTAyYjRkOWRjYzAwMDFiYWUx
YTk1NjE2YzBjZGEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgKQEAgLTEzNiw4ICsxMzYsNiBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBzdWJtaXQoRXZlbnQqLCBib29sIGFjdGl2YXRlU3VibWl0QnV0
dG9uLCBib29sIGxvY2tIaXN0b3J5LCBGb3JtU3VibWlzc2lvblRyaWdnZXIpOwogCi0gICAgYm9v
bCBpc01haWx0b0Zvcm0oKSBjb25zdDsKLSAgICBUZXh0RW5jb2RpbmcgZGF0YUVuY29kaW5nKCkg
Y29uc3Q7CiAgICAgUGFzc1JlZlB0cjxGb3JtU3VibWlzc2lvbj4gcHJlcGFyZUZvcm1TdWJtaXNz
aW9uKEV2ZW50KiwgYm9vbCBsb2NrSGlzdG9yeSwgRm9ybVN1Ym1pc3Npb25UcmlnZ2VyKTsKICAg
ICB1bnNpZ25lZCBmb3JtRWxlbWVudEluZGV4KEhUTUxGb3JtQ29udHJvbEVsZW1lbnQqKTsKICAg
ICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHN1Ym1pc3Npb24gc2hvdWxkIGJlIHByb2NlZWRlZC4K
QEAgLTE1OSw4ICsxNTcsNiBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxIVE1MRm9ybUNvbnRyb2xF
bGVtZW50Kj4gbV9hc3NvY2lhdGVkRWxlbWVudHM7CiAgICAgVmVjdG9yPEhUTUxJbWFnZUVsZW1l
bnQqPiBtX2ltYWdlRWxlbWVudHM7CiAKLSAgICBTdHJpbmcgbV91cmw7Ci0gICAgU3RyaW5nIG1f
dGFyZ2V0OwogICAgIGJvb2wgbV9hdXRvY29tcGxldGUgOiAxOwogICAgIGJvb2wgbV9pbnN1Ym1p
dCA6IDE7CiAgICAgYm9vbCBtX2RvaW5nc3VibWl0IDogMTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Rm9ybURhdGEuY3BwCmluZGV4IDQzMWRiZTRmZDllNWIyNjNiYWQzMjdlZTkxODE4NjQ3ZjI1MzEy
NmQuLjllNGEyMjdlYmM3YzI3NWNiNDhiMjdiNzc1MmEzMjRjOTA2MjEwNTAgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhLmNwcApAQCAtMjA0LDkgKzIwNCw4IEBAIHZvaWQgRm9ybURh
dGE6OmFwcGVuZEZpbGVSYW5nZShjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBsb25nIGxvbmcgc3Rh
cnQsIGxvbmcgbG9uCiAKIHZvaWQgRm9ybURhdGE6OmFwcGVuZEtleVZhbHVlUGFpckl0ZW1zKGNv
bnN0IEJsb2JJdGVtTGlzdCYgaXRlbXMsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcsIGJv
b2wgaXNNdWx0aVBhcnRGb3JtLCBEb2N1bWVudCogZG9jdW1lbnQpCiB7Ci0gICAgRm9ybURhdGFC
dWlsZGVyIGZvcm1EYXRhQnVpbGRlcjsKICAgICBpZiAoaXNNdWx0aVBhcnRGb3JtKQotICAgICAg
ICBtX2JvdW5kYXJ5ID0gZm9ybURhdGFCdWlsZGVyLmdlbmVyYXRlVW5pcXVlQm91bmRhcnlTdHJp
bmcoKTsKKyAgICAgICAgbV9ib3VuZGFyeSA9IEZvcm1EYXRhQnVpbGRlcjo6Z2VuZXJhdGVVbmlx
dWVCb3VuZGFyeVN0cmluZygpOwogCiAgICAgVmVjdG9yPGNoYXI+IGVuY29kZWREYXRhOwogCkBA
IC0yMTgsNyArMjE3LDcgQEAgdm9pZCBGb3JtRGF0YTo6YXBwZW5kS2V5VmFsdWVQYWlySXRlbXMo
Y29uc3QgQmxvYkl0ZW1MaXN0JiBpdGVtcywgY29uc3QgVGV4dEVuY28KICAgICAgICAgQVNTRVJU
KGtleSk7CiAgICAgICAgIGlmIChpc011bHRpUGFydEZvcm0pIHsKICAgICAgICAgICAgIFZlY3Rv
cjxjaGFyPiBoZWFkZXI7Ci0gICAgICAgICAgICBmb3JtRGF0YUJ1aWxkZXIuYmVnaW5NdWx0aVBh
cnRIZWFkZXIoaGVhZGVyLCBtX2JvdW5kYXJ5LmRhdGEoKSwga2V5LT5jc3RyKCkpOworICAgICAg
ICAgICAgRm9ybURhdGFCdWlsZGVyOjpiZWdpbk11bHRpUGFydEhlYWRlcihoZWFkZXIsIG1fYm91
bmRhcnkuZGF0YSgpLCBrZXktPmNzdHIoKSk7CiAKICAgICAgICAgICAgIGJvb2wgc2hvdWxkR2Vu
ZXJhdGVGaWxlID0gZmFsc2U7CiAgICAgICAgICAgICAvLyBJZiB0aGUgY3VycmVudCB0eXBlIGlz
IEZJTEUsIHRoZW4gd2UgYWxzbyBuZWVkIHRvIGluY2x1ZGUgdGhlIGZpbGVuYW1lCkBAIC0yMzgs
NyArMjM3LDcgQEAgdm9pZCBGb3JtRGF0YTo6YXBwZW5kS2V5VmFsdWVQYWlySXRlbXMoY29uc3Qg
QmxvYkl0ZW1MaXN0JiBpdGVtcywgY29uc3QgVGV4dEVuY28KICAgICAgICAgICAgICAgICB9CiAK
ICAgICAgICAgICAgICAgICAvLyBXZSBoYXZlIHRvIGluY2x1ZGUgdGhlIGZpbGVuYW1lPSIuLiIg
cGFydCBpbiB0aGUgaGVhZGVyLCBldmVuIGlmIHRoZSBmaWxlbmFtZSBpcyBlbXB0eQotICAgICAg
ICAgICAgICAgIGZvcm1EYXRhQnVpbGRlci5hZGRGaWxlbmFtZVRvTXVsdGlQYXJ0SGVhZGVyKGhl
YWRlciwgZW5jb2RpbmcsIGZpbGVOYW1lKTsKKyAgICAgICAgICAgICAgICBGb3JtRGF0YUJ1aWxk
ZXI6OmFkZEZpbGVuYW1lVG9NdWx0aVBhcnRIZWFkZXIoaGVhZGVyLCBlbmNvZGluZywgZmlsZU5h
bWUpOwogCiAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGl0ZW0gaXMgc2xpY2VkIGZyb20gYSBm
aWxlLCBkbyBub3QgYWRkIHRoZSBjb250ZW50IHR5cGUuCiAjaWYgRU5BQkxFKEJMT0JfU0xJQ0Up
CkBAIC0yNTIsMTEgKzI1MSwxMSBAQCB2b2lkIEZvcm1EYXRhOjphcHBlbmRLZXlWYWx1ZVBhaXJJ
dGVtcyhjb25zdCBCbG9iSXRlbUxpc3QmIGl0ZW1zLCBjb25zdCBUZXh0RW5jbwogICAgICAgICAg
ICAgICAgICAgICAvLyBNSU1FIHR5cGUgb2YgdGhlIGdlbmVyYXRlZCBmaWxlLgogICAgICAgICAg
ICAgICAgICAgICBTdHJpbmcgbWltZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjpnZXRNSU1FVHlw
ZUZvclBhdGgoZmlsZU5hbWUpOwogICAgICAgICAgICAgICAgICAgICBpZiAoIW1pbWVUeXBlLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1EYXRhQnVpbGRlci5hZGRDb250
ZW50VHlwZVRvTXVsdGlQYXJ0SGVhZGVyKGhlYWRlciwgbWltZVR5cGUubGF0aW4xKCkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgRm9ybURhdGFCdWlsZGVyOjphZGRDb250ZW50VHlwZVRvTXVs
dGlQYXJ0SGVhZGVyKGhlYWRlciwgbWltZVR5cGUubGF0aW4xKCkpOwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgZm9ybURhdGFCdWlsZGVyLmZpbmlzaE11
bHRpUGFydEhlYWRlcihoZWFkZXIpOworICAgICAgICAgICAgRm9ybURhdGFCdWlsZGVyOjpmaW5p
c2hNdWx0aVBhcnRIZWFkZXIoaGVhZGVyKTsKIAogICAgICAgICAgICAgLy8gQXBwZW5kIGJvZHkK
ICAgICAgICAgICAgIGFwcGVuZERhdGEoaGVhZGVyLmRhdGEoKSwgaGVhZGVyLnNpemUoKSk7CkBA
IC0yNzEsMTIgKzI3MCwxMiBAQCB2b2lkIEZvcm1EYXRhOjphcHBlbmRLZXlWYWx1ZVBhaXJJdGVt
cyhjb25zdCBCbG9iSXRlbUxpc3QmIGl0ZW1zLCBjb25zdCBUZXh0RW5jbwogICAgICAgICAgICAg
aWYgKGVuY29kZWREYXRhLmlzRW1wdHkoKSAmJiBrZXktPmNzdHIoKSA9PSAiaXNpbmRleCIpCiAg
ICAgICAgICAgICAgICAgRm9ybURhdGFCdWlsZGVyOjplbmNvZGVTdHJpbmdBc0Zvcm1EYXRhKGVu
Y29kZWREYXRhLCBzdHJpbmdWYWx1ZS0+Y3N0cigpKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBmb3JtRGF0YUJ1aWxkZXIuYWRkS2V5VmFsdWVQYWlyQXNGb3JtRGF0YShlbmNv
ZGVkRGF0YSwga2V5LT5jc3RyKCksIHN0cmluZ1ZhbHVlLT5jc3RyKCkpOworICAgICAgICAgICAg
ICAgIEZvcm1EYXRhQnVpbGRlcjo6YWRkS2V5VmFsdWVQYWlyQXNGb3JtRGF0YShlbmNvZGVkRGF0
YSwga2V5LT5jc3RyKCksIHN0cmluZ1ZhbHVlLT5jc3RyKCkpOwogICAgICAgICB9CiAgICAgfQog
CiAgICAgaWYgKGlzTXVsdGlQYXJ0Rm9ybSkKLSAgICAgICAgZm9ybURhdGFCdWlsZGVyLmFkZEJv
dW5kYXJ5VG9NdWx0aVBhcnRIZWFkZXIoZW5jb2RlZERhdGEsIG1fYm91bmRhcnkuZGF0YSgpLCB0
cnVlKTsKKyAgICAgICAgRm9ybURhdGFCdWlsZGVyOjphZGRCb3VuZGFyeVRvTXVsdGlQYXJ0SGVh
ZGVyKGVuY29kZWREYXRhLCBtX2JvdW5kYXJ5LmRhdGEoKSwgdHJ1ZSk7CiAKICAgICBhcHBlbmRE
YXRhKGVuY29kZWREYXRhLmRhdGEoKSwgZW5jb2RlZERhdGEuc2l6ZSgpKTsKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuY3BwIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhQnVpbGRlci5jcHAKaW5kZXggMTNhNDU3YjBkMTRj
NTFiMTAzOGZkZTVjYTMxMDRmNDFiMWM0ZWM2Ni4uZmI3OGIwOGNjNmNiMTQ5MmExOGY3MGE5MTc4
YWJjNDkyMTI0ZjlhNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1E
YXRhQnVpbGRlci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhQnVp
bGRlci5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJGb3JtRGF0YUJ1aWxkZXIuaCIKIAorI2luY2x1ZGUgIkNTU0hlbHBlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgpAQCAtNDgsNiArNDksMTIgQEAgRm9ybURhdGFCdWlsZGVyOjp+Rm9ybURhdGFCdWlsZGVyKCkK
IHsKIH0KIAordm9pZCBGb3JtRGF0YUJ1aWxkZXI6OnBhcnNlQWN0aW9uKGNvbnN0IFN0cmluZyYg
YWN0aW9uKQoreworICAgIC8vIEZJWE1FOiBDYW4gd2UgcGFyc2UgaW50byBhIEtVUkw/CisgICAg
bV9hY3Rpb24gPSBkZXByZWNhdGVkUGFyc2VVUkwoYWN0aW9uKTsKK30KKwogdm9pZCBGb3JtRGF0
YUJ1aWxkZXI6OnBhcnNlRW5jb2RpbmdUeXBlKGNvbnN0IFN0cmluZyYgdHlwZSkKIHsKICAgICBp
ZiAodHlwZS5jb250YWlucygibXVsdGlwYXJ0IiwgZmFsc2UpIHx8IHR5cGUuY29udGFpbnMoImZv
cm0tZGF0YSIsIGZhbHNlKSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Zvcm1EYXRhQnVpbGRlci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Zvcm1EYXRhQnVp
bGRlci5oCmluZGV4IDM5MGE4N2I0NmI3NDgzOTc1NzZjZjUwMjU4NzVkMmJjYzc1NGRmOWQuLjU1
OTkwNmUwMDkzMGY1YmE1YmZkMDVmZjAyNzg2YTNjNGY0OTcwMGQgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvRm9ybURhdGFCdWlsZGVyLmgKQEAgLTQ1LDEyICs0NSwxOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBpc011bHRpUGFydEZvcm0oKSBjb25zdCB7IHJldHVybiBtX2lzTXVsdGlQYXJ0
Rm9ybTsgfQogICAgIHZvaWQgc2V0SXNNdWx0aVBhcnRGb3JtKGJvb2wgdmFsdWUpIHsgbV9pc011
bHRpUGFydEZvcm0gPSB2YWx1ZTsgfQogCisgICAgY29uc3QgU3RyaW5nJiBhY3Rpb24oKSBjb25z
dCB7IHJldHVybiBtX2FjdGlvbjsgfQorCisgICAgY29uc3QgU3RyaW5nJiB0YXJnZXQoKSBjb25z
dCB7IHJldHVybiBtX3RhcmdldDsgfQorICAgIHZvaWQgc2V0VGFyZ2V0KGNvbnN0IFN0cmluZyYg
dGFyZ2V0KSB7IG1fdGFyZ2V0ID0gdGFyZ2V0OyB9CisKICAgICBTdHJpbmcgZW5jb2RpbmdUeXBl
KCkgY29uc3QgeyByZXR1cm4gbV9lbmNvZGluZ1R5cGU7IH0KICAgICB2b2lkIHNldEVuY29kaW5n
VHlwZShjb25zdCBTdHJpbmcmIHZhbHVlKSB7IG1fZW5jb2RpbmdUeXBlID0gdmFsdWU7IH0KIAog
ICAgIFN0cmluZyBhY2NlcHRDaGFyc2V0KCkgY29uc3QgeyByZXR1cm4gbV9hY2NlcHRDaGFyc2V0
OyB9CiAgICAgdm9pZCBzZXRBY2NlcHRDaGFyc2V0KGNvbnN0IFN0cmluZyYgdmFsdWUpIHsgbV9h
Y2NlcHRDaGFyc2V0ID0gdmFsdWU7IH0KIAorICAgIHZvaWQgcGFyc2VBY3Rpb24oY29uc3QgU3Ry
aW5nJik7CiAgICAgdm9pZCBwYXJzZUVuY29kaW5nVHlwZShjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIHBhcnNlTWV0aG9kVHlwZShjb25zdCBTdHJpbmcmKTsKIApAQCAtNzIsNiArNzgsOCBAQCBw
cml2YXRlOgogICAgIGJvb2wgbV9pc1Bvc3RNZXRob2Q7CiAgICAgYm9vbCBtX2lzTXVsdGlQYXJ0
Rm9ybTsKIAorICAgIFN0cmluZyBtX2FjdGlvbjsKKyAgICBTdHJpbmcgbV90YXJnZXQ7CiAgICAg
U3RyaW5nIG1fZW5jb2RpbmdUeXBlOwogICAgIFN0cmluZyBtX2FjY2VwdENoYXJzZXQ7CiB9Owo=
</data>
<flag name="review"
          id="46087"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>