<?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>78478</bug_id>
          
          <creation_ts>2012-02-13 02:44:29 -0800</creation_ts>
          <short_desc>Implement common class for URL decomposition attribute</short_desc>
          <delta_ts>2012-02-15 09:48:47 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</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>76816</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kaustubh Atrawalkar">kaustubh.ra</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>dglazkov</cc>
    
    <cc>kaustubh.ra</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>555135</commentid>
    <comment_count>0</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-13 02:44:29 -0800</bug_when>
    <thetext>Implement a comman base class for URL decomposition attributes setter &amp; getter functions to avoid repetition in page/Location, html/HTMLAnchorElement &amp; html/DOMURL (to be implemented).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555138</commentid>
    <comment_count>1</comment_count>
      <attachid>126741</attachid>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-13 02:46:36 -0800</bug_when>
    <thetext>Created attachment 126741
WIP

First level WIP. This has implementation of common base class and replacement setter/getter function used in page/Location.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555140</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 02:50:08 -0800</bug_when>
    <thetext>Attachment 126741 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/CMakeLists.txt&apos;, u&apos;Source/W...&quot; exit_code: 1

Source/WebCore/html/URLAttributes.cpp:92:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555152</commentid>
    <comment_count>3</comment_count>
      <attachid>126741</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-02-13 03:27:06 -0800</bug_when>
    <thetext>Comment on attachment 126741
WIP

Attachment 126741 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/11507761</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555337</commentid>
    <comment_count>4</comment_count>
      <attachid>126741</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-13 09:41:48 -0800</bug_when>
    <thetext>Comment on attachment 126741
WIP

Attachment 126741 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11509808

New failing tests:
fast/dom/Window/invalid-protocol.html
fast/history/history-back-within-subframe-hash.html
http/tests/xmlhttprequest/workers/referer.html
fast/forms/submit-change-fragment.html
http/tests/loading/location-hash-reload-cycle.html
fast/history/history-back-forward-within-subframe-hash.html
fast/history/same-document-iframes-changing-fragment.html
fast/loader/about-blank-hash-change.html
fast/history/same-document-iframes-changing-pushstate.html
fast/loader/hashchange-event.html
http/tests/inspector/change-iframe-src.html
http/tests/history/popstate-fires-with-pending-requests.html
fast/dom/location-new-window-no-crash.html
http/tests/inspector/inspect-iframe-from-different-domain.html
fast/dom/location-hash.html
fast/loader/stateobjects/pushstate-with-fragment-urls-and-hashchange.html
fast/history/location-replace-hash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555364</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-13 10:36:02 -0800</bug_when>
    <thetext>What does this buy us? From the patch, it doesn&apos;t appear that a lot of code sharing is achieved, nor does the size of code go down.

These attributes are slightly different anyway.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555948</commentid>
    <comment_count>6</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-13 22:07:38 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; What does this buy us? From the patch, it doesn&apos;t appear that a lot of code sharing is achieved, nor does the size of code go down.
&gt; 
&gt; These attributes are slightly different anyway.

Based on the Adam&apos;s suggestion, we should be creating a common base class to accommodate all these 8 attributes&apos;s setter &amp; getter functions. Current patch is just first cut implementation of base class and migrating Location&apos;s class functions to this class. The purpose of uploading this patch was to get comments if I am going on right direction. Will be uploading one more WIP which will have HTMLAnchorElement implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556052</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-14 00:28:13 -0800</bug_when>
    <thetext>We&apos;ll need to see how much this helps. KURL is pretty much the class that implements this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556074</commentid>
    <comment_count>8</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-14 01:04:31 -0800</bug_when>
    <thetext>True, KURL has its own implementation. We might fix the KURL ascii issues and make it complete so that all these Location/HTMLAnchorElement/DOMURL can use it without needing any more modification on url.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556382</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-14 10:16:22 -0800</bug_when>
    <thetext>You are using KURL&apos;s implementation already.

What I&apos;m saying is that even when there is a lot of code to share, adding a common base class is the wrong solution. Inheritance is not a method of code sharing.

In this particular case, it seems that there is no issue to solve in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556912</commentid>
    <comment_count>10</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-14 21:22:20 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; You are using KURL&apos;s implementation already.
&gt; 
&gt; What I&apos;m saying is that even when there is a lot of code to share, adding a common base class is the wrong solution. Inheritance is not a method of code sharing.
&gt; 
&gt; In this particular case, it seems that there is no issue to solve in the first place.

From your comments what I get is I should implement the URL decomposition attributes as it is without using base class as this is not much code saving mechanism to make a base class. If so, I will close this bug and will update the patch in https://bugs.webkit.org/show_bug.cgi?id=76816.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556914</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-02-14 21:26:32 -0800</bug_when>
    <thetext>I think that this would be more like what Adam was referring to, as well.

As you&apos;ve seen, KURL already has code for most of what this API exposes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556915</commentid>
    <comment_count>12</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-14 21:41:48 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; I think that this would be more like what Adam was referring to, as well.
&gt; 
&gt; As you&apos;ve seen, KURL already has code for most of what this API exposes.

Yes, KURL already has almost complete APIs for the same. And all these setter/getter functions have little or No modification over these. So, I will close this bug and will update the blocking issue with updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557085</commentid>
    <comment_count>13</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-15 02:36:54 -0800</bug_when>
    <thetext>Closing the bugs as per discussion. Will reopen if in future there would be</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557086</commentid>
    <comment_count>14</comment_count>
    <who name="Kaustubh Atrawalkar">kaustubh.ra</who>
    <bug_when>2012-02-15 02:37:35 -0800</bug_when>
    <thetext>Closing the bugs as per discussion. Will reopen if in future there would be need to code re-factoring.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>126741</attachid>
            <date>2012-02-13 02:46:36 -0800</date>
            <delta_ts>2012-02-13 09:41:48 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>WIP</filename>
            <type>text/plain</type>
            <size>15746</size>
            <attacher name="Kaustubh Atrawalkar">kaustubh.ra</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAxMDc1MzIpCisrKyBTb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtODI5LDYgKzgyOSw3IEBAIFNF
VChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL1RleHRGaWVsZElucHV0VHlwZS5jcHAKICAgICBo
dG1sL1RleHRJbnB1dFR5cGUuY3BwCiAgICAgaHRtbC9UaW1lSW5wdXRUeXBlLmNwcAorICAgIGh0
bWwvVVJMQXR0cmlidXRlcy5jcHAKICAgICBodG1sL1VSTElucHV0VHlwZS5jcHAKICAgICBodG1s
L1ZhbGlkYXRpb25NZXNzYWdlLmNwcAogICAgIGh0bWwvVmFsaWRpdHlTdGF0ZS5jcHAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkocmV2aXNpb24gMTA3NTMyKQorKysgU291cmNl
L1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQkod29ya2luZyBjb3B5KQpAQCAtMjMwMiw2ICsy
MzAyLDggQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNr
L1dlYlZUVFRva2VuLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5p
emVyLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svV2ViVlRUVG9rZW5pemVyLmNwcCBc
CisgICAgU291cmNlL1dlYkNvcmUvaHRtbC9VUkxBdHRyaWJ1dGVzLmNwcCBcCisgICAgU291cmNl
L1dlYkNvcmUvaHRtbC9VUkxBdHRyaWJ1dGVzLmggXAogCVNvdXJjZS9XZWJDb3JlL2h0bWwvVVJM
SW5wdXRUeXBlLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvaHRtbC9VUkxJbnB1dFR5cGUuaCBcCiAJ
U291cmNlL1dlYkNvcmUvaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAgXApJbmRleDogU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQkocmV2aXNpb24gMTA3NTMyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CSh3b3JraW5nIGNvcHkpCkBAIC01NDE3LDYgKzU0MTcsOCBAQAogICAgICAgICAgICAgJ2h0bWwv
VGltZUlucHV0VHlwZS5oJywKICAgICAgICAgICAgICdodG1sL1RpbWVSYW5nZXMuY3BwJywKICAg
ICAgICAgICAgICdodG1sL1RpbWVSYW5nZXMuaCcsCisgICAgICAgICAgICAnaHRtbC9VUkxBdHRy
aWJ1dGVzLmNwcCcsCisgICAgICAgICAgICAnaHRtbC9VUkxBdHRyaWJ1dGVzLmgnLAogICAgICAg
ICAgICAgJ2h0bWwvVVJMSW5wdXRUeXBlLmNwcCcsCiAgICAgICAgICAgICAnaHRtbC9VUkxJbnB1
dFR5cGUuaCcsCiAgICAgICAgICAgICAnaHRtbC9WYWxpZGF0aW9uTWVzc2FnZS5jcHAnLApJbmRl
eDogU291cmNlL1dlYkNvcmUvaHRtbC9VUkxBdHRyaWJ1dGVzLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL1VSTEF0dHJpYnV0ZXMuY3BwCShyZXZpc2lvbiAwKQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9VUkxBdHRyaWJ1dGVzLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwxMjAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTW90b3JvbGEgTW9iaWxpdHkgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFz
IHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZl
cnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVy
c2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhh
dCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91
dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3Vs
ZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5H
LkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24s
IEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAy
MTEwLTEzMDEsIFVTQS4KKyAqCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlVSTEF0dHJpYnV0ZXMuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitVUkxBdHRyaWJ1dGVz
OjpVUkxBdHRyaWJ1dGVzKGNvbnN0IFN0cmluZyYgdXJsKQorICAgIDogbV91cmwoS1VSTChLVVJM
KCksIHVybCkpCit7Cit9CisKK3ZvaWQgVVJMQXR0cmlidXRlczo6c2V0SHJlZihjb25zdCBTdHJp
bmcmIHZhbHVlKQoreworICAgIG1fdXJsID0gS1VSTChLVVJMKCksIHZhbHVlKTsKK30KKworU3Ry
aW5nIFVSTEF0dHJpYnV0ZXM6OmhyZWYoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5zdHJp
bmcoKTsKK30KKwordm9pZCBVUkxBdHRyaWJ1dGVzOjpzZXRQcm90b2NvbChjb25zdCBTdHJpbmcm
IHZhbHVlKQoreworICAgIG1fdXJsLnNldFByb3RvY29sKHZhbHVlKTsKK30KKworU3RyaW5nIFVS
TEF0dHJpYnV0ZXM6OnByb3RvY29sKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwucHJvdG9j
b2woKSArICI6IjsKK30KKwordm9pZCBVUkxBdHRyaWJ1dGVzOjpzZXRIb3N0KGNvbnN0IFN0cmlu
ZyYgdmFsdWUpCit7CisgICAgbV91cmwuc2V0SG9zdEFuZFBvcnQodmFsdWUpOworfQorCitTdHJp
bmcgVVJMQXR0cmlidXRlczo6aG9zdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdXJsLmhvc3Qo
KTsKK30KKwordm9pZCBVUkxBdHRyaWJ1dGVzOjpzZXRIb3N0bmFtZShjb25zdCBTdHJpbmcmIHZh
bHVlKQoreworICAgIG1fdXJsLnNldEhvc3QodmFsdWUpOworfQorCitTdHJpbmcgVVJMQXR0cmli
dXRlczo6aG9zdG5hbWUoKSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5ob3N0KCk7Cit9CisK
K3ZvaWQgVVJMQXR0cmlidXRlczo6c2V0UGF0aG5hbWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sK
KyAgICBtX3VybC5zZXRQYXRoKHZhbHVlKTsKK30KKworU3RyaW5nIFVSTEF0dHJpYnV0ZXM6OnBh
dGhuYW1lKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV91cmwucGF0aCgpLmlzRW1wdHkoKSA/ICIv
IiA6IG1fdXJsLnBhdGgoKTsKK30KKwordm9pZCBVUkxBdHRyaWJ1dGVzOjpzZXRQb3J0KGNvbnN0
IFN0cmluZyYgdmFsdWUpCit7CisgICAgaW50IHBvcnQgPSB2YWx1ZS50b0ludCgpOworICAgIGlm
IChwb3J0IDwgMCB8fCBwb3J0ID4gMHhGRkZGIHx8IHZhbHVlLmlzRW1wdHkoKSkKKyAgICAgICAg
bV91cmwucmVtb3ZlUG9ydCgpOworICAgIGVsc2UKKyAgICAgICAgbV91cmwuc2V0UG9ydChwb3J0
KTsKK30KKworU3RyaW5nIFVSTEF0dHJpYnV0ZXM6OnBvcnQoKSBjb25zdAoreworICAgcmV0dXJu
IG1fdXJsLmhhc1BvcnQoKSA/IFN0cmluZzo6bnVtYmVyKG1fdXJsLnBvcnQoKSkgOiAiIjsKK30K
Kwordm9pZCBVUkxBdHRyaWJ1dGVzOjpzZXRTZWFyY2goY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sK
KyAgICBtX3VybC5zZXRRdWVyeSh2YWx1ZSk7Cit9CisKK1N0cmluZyBVUkxBdHRyaWJ1dGVzOjpz
ZWFyY2goKSBjb25zdAoreworICAgIHJldHVybiBtX3VybC5xdWVyeSgpLmlzRW1wdHkoKSA/IGVt
cHR5U3RyaW5nKCkgOiAiPyIgKyBtX3VybC5xdWVyeSgpOworfQorCit2b2lkIFVSTEF0dHJpYnV0
ZXM6OnNldEhhc2goY29uc3QgU3RyaW5nJiB2YWx1ZSkKK3sKKyAgICBTdHJpbmcgbmV3RnJhZ21l
bnRJZGVudGlmaWVyID0gdmFsdWU7CisKKyAgICBpZiAodmFsdWVbMF0gPT0gJyMnKQorICAgICAg
ICBuZXdGcmFnbWVudElkZW50aWZpZXIgPSB2YWx1ZS5zdWJzdHJpbmcoMSk7CisgICAgbV91cmwu
c2V0RnJhZ21lbnRJZGVudGlmaWVyKG5ld0ZyYWdtZW50SWRlbnRpZmllcik7Cit9CisKK1N0cmlu
ZyBVUkxBdHRyaWJ1dGVzOjpoYXNoKCkgY29uc3QKK3sKKyAgICBjb25zdCBTdHJpbmcmIGZyYWdt
ZW50SWRlbnRpZmllciA9IG1fdXJsLmZyYWdtZW50SWRlbnRpZmllcigpOworICAgIHJldHVybiBm
cmFnbWVudElkZW50aWZpZXIuaXNFbXB0eSgpID8gZW1wdHlTdHJpbmcoKSA6ICIjIiArIGZyYWdt
ZW50SWRlbnRpZmllcjsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNl
L1dlYkNvcmUvaHRtbC9VUkxBdHRyaWJ1dGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvaHRtbC9VUkxBdHRyaWJ1dGVzLmgJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViQ29yZS9o
dG1sL1VSTEF0dHJpYnV0ZXMuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMiBNb3Rvcm9sYSBNb2JpbGl0eSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCisgKiBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3
cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmts
aW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgor
ICoKKyAqLworCisjaWZuZGVmIFVSTEF0dHJpYnV0ZXNfaAorI2RlZmluZSBVUkxBdHRyaWJ1dGVz
X2gKKworI2luY2x1ZGUgIktVUkwuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Ns
YXNzIEtVUkw7CisKK2NsYXNzIFVSTEF0dHJpYnV0ZXMgOiBwdWJsaWMgUmVmQ291bnRlZDxVUkxB
dHRyaWJ1dGVzPiB7CisKK3B1YmxpYzoKKyAgICBVUkxBdHRyaWJ1dGVzKGNvbnN0IFN0cmluZyYp
OworICAgIEtVUkwgdXJsKCkgY29uc3QgeyByZXR1cm4gbV91cmw7IH0KKworICAgIHZvaWQgc2V0
SHJlZihjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICBTdHJpbmcgaHJlZigpIGNvbnN0OworCisg
ICAgdm9pZCBzZXRQcm90b2NvbChjb25zdCBTdHJpbmcmIHZhbHVlKTsKKyAgICBTdHJpbmcgcHJv
dG9jb2woKSBjb25zdDsKKworICAgIHZvaWQgc2V0SG9zdChjb25zdCBTdHJpbmcmKTsKKyAgICBT
dHJpbmcgaG9zdCgpIGNvbnN0OworCisgICAgdm9pZCBzZXRIb3N0bmFtZShjb25zdCBTdHJpbmcm
KTsKKyAgICBTdHJpbmcgaG9zdG5hbWUoKSBjb25zdDsKKworICAgIHZvaWQgc2V0UGF0aG5hbWUo
Y29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5nIHBhdGhuYW1lKCkgY29uc3Q7CisKKyAgICB2b2lk
IHNldFBvcnQoY29uc3QgU3RyaW5nJik7CisgICAgU3RyaW5nIHBvcnQoKSBjb25zdDsKKworICAg
IHZvaWQgc2V0U2VhcmNoKGNvbnN0IFN0cmluZyYpOworICAgIFN0cmluZyBzZWFyY2goKSBjb25z
dDsKKworICAgIHZvaWQgc2V0SGFzaChjb25zdCBTdHJpbmcmKTsKKyAgICBTdHJpbmcgaGFzaCgp
IGNvbnN0OworCitwcml2YXRlOgorCisgICAgS1VSTCBtX3VybDsKK307CisKK30KKworI2VuZGlm
IC8vIFVSTEF0dHJpYnV0ZXNfaApJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5jcHAJKHJldmlz
aW9uIDEwNzUzMikKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiwyMyArMzYsMTggQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2lu
Y2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorI2luY2x1ZGUgIlVS
TEF0dHJpYnV0ZXMuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBMb2NhdGlvbjo6TG9jYXRp
b24oRnJhbWUqIGZyYW1lKQogICAgIDogRE9NV2luZG93UHJvcGVydHkoZnJhbWUpCiB7Ci19Ci0K
LWlubGluZSBjb25zdCBLVVJMJiBMb2NhdGlvbjo6dXJsKCkgY29uc3QKLXsKLSAgICBBU1NFUlQo
bV9mcmFtZSk7Ci0KLSAgICBjb25zdCBLVVJMJiB1cmwgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT51
cmwoKTsKLSAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBibGFua1VSTCgp
OyAvLyBVc2UgImFib3V0OmJsYW5rIiB3aGlsZSB0aGUgcGFnZSBpcyBzdGlsbCBsb2FkaW5nIChi
ZWZvcmUgd2UgaGF2ZSBhIGZyYW1lKS4KLQotICAgIHJldHVybiB1cmw7CisgICAgY29uc3QgS1VS
TCYgdXJsID0gZnJhbWUtPmRvY3VtZW50KCktPnVybCgpOworICAgIGlmICh1cmwuaXNWYWxpZCgp
KQorICAgICAgICBtX3VybCA9IG5ldyBVUkxBdHRyaWJ1dGVzKHVybC5zdHJpbmcoKSk7CisgICAg
ZWxzZQorICAgICAgICBtX3VybCA9IG5ldyBVUkxBdHRyaWJ1dGVzKGJsYW5rVVJMKCkuc3RyaW5n
KCkpOwogfQogCiBTdHJpbmcgTG9jYXRpb246OmhyZWYoKSBjb25zdApAQCAtNjAsNyArNTUsNyBA
QCBTdHJpbmcgTG9jYXRpb246OmhyZWYoKSBjb25zdAogICAgIGlmICghbV9mcmFtZSkKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIHVybCgpLnN0cmluZygpOworICAgIHJl
dHVybiBtX3VybC0+aHJlZigpOwogfQogCiBTdHJpbmcgTG9jYXRpb246OnByb3RvY29sKCkgY29u
c3QKQEAgLTY4LDcgKzYzLDcgQEAgU3RyaW5nIExvY2F0aW9uOjpwcm90b2NvbCgpIGNvbnN0CiAg
ICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICByZXR1cm4g
dXJsKCkucHJvdG9jb2woKSArICI6IjsKKyAgICByZXR1cm4gbV91cmwtPnByb3RvY29sKCk7CiB9
CiAKIFN0cmluZyBMb2NhdGlvbjo6aG9zdCgpIGNvbnN0CkBAIC03NiwxMCArNzEsNyBAQCBTdHJp
bmcgTG9jYXRpb246Omhvc3QoKSBjb25zdAogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0
dXJuIFN0cmluZygpOwogCi0gICAgLy8gTm90ZTogdGhpcyBpcyB0aGUgSUUgc3BlYy4gVGhlIE5T
IHNwZWMgc3dhcHMgdGhlIHR3bywgaXQgc2F5cwotICAgIC8vICJUaGUgaG9zdG5hbWUgcHJvcGVy
dHkgaXMgdGhlIGNvbmNhdGVuYXRpb24gb2YgdGhlIGhvc3QgYW5kIHBvcnQgcHJvcGVydGllcywg
c2VwYXJhdGVkIGJ5IGEgY29sb24uIgotICAgIGNvbnN0IEtVUkwmIHVybCA9IHRoaXMtPnVybCgp
OwotICAgIHJldHVybiB1cmwuaGFzUG9ydCgpID8gdXJsLmhvc3QoKSArICI6IiArIFN0cmluZzo6
bnVtYmVyKHVybC5wb3J0KCkpIDogdXJsLmhvc3QoKTsKKyAgICByZXR1cm4gbV91cmwtPmhvc3Qo
KTsKIH0KIAogU3RyaW5nIExvY2F0aW9uOjpob3N0bmFtZSgpIGNvbnN0CkBAIC04Nyw3ICs3OSw3
IEBAIFN0cmluZyBMb2NhdGlvbjo6aG9zdG5hbWUoKSBjb25zdAogICAgIGlmICghbV9mcmFtZSkK
ICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0gICAgcmV0dXJuIHVybCgpLmhvc3QoKTsKKyAg
ICByZXR1cm4gbV91cmwtPmhvc3RuYW1lKCk7CiB9CiAKIFN0cmluZyBMb2NhdGlvbjo6cG9ydCgp
IGNvbnN0CkBAIC05NSw4ICs4Nyw3IEBAIFN0cmluZyBMb2NhdGlvbjo6cG9ydCgpIGNvbnN0CiAg
ICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICBjb25zdCBL
VVJMJiB1cmwgPSB0aGlzLT51cmwoKTsKLSAgICByZXR1cm4gdXJsLmhhc1BvcnQoKSA/IFN0cmlu
Zzo6bnVtYmVyKHVybC5wb3J0KCkpIDogIiI7CisgICAgcmV0dXJuIG1fdXJsLT5wb3J0KCk7CiB9
CiAKIFN0cmluZyBMb2NhdGlvbjo6cGF0aG5hbWUoKSBjb25zdApAQCAtMTA0LDggKzk1LDcgQEAg
U3RyaW5nIExvY2F0aW9uOjpwYXRobmFtZSgpIGNvbnN0CiAgICAgaWYgKCFtX2ZyYW1lKQogICAg
ICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICBjb25zdCBLVVJMJiB1cmwgPSB0aGlzLT51cmwo
KTsKLSAgICByZXR1cm4gdXJsLnBhdGgoKS5pc0VtcHR5KCkgPyAiLyIgOiB1cmwucGF0aCgpOwor
ICAgIHJldHVybiBtX3VybC0+cGF0aG5hbWUoKTsKIH0KIAogU3RyaW5nIExvY2F0aW9uOjpzZWFy
Y2goKSBjb25zdApAQCAtMTEzLDE1ICsxMDMsMTQgQEAgU3RyaW5nIExvY2F0aW9uOjpzZWFyY2go
KSBjb25zdAogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogCi0g
ICAgY29uc3QgS1VSTCYgdXJsID0gdGhpcy0+dXJsKCk7Ci0gICAgcmV0dXJuIHVybC5xdWVyeSgp
LmlzRW1wdHkoKSA/IGVtcHR5U3RyaW5nKCkgOiAiPyIgKyB1cmwucXVlcnkoKTsKKyAgICByZXR1
cm4gbV91cmwtPnNlYXJjaCgpOwogfQogCiBTdHJpbmcgTG9jYXRpb246Om9yaWdpbigpIGNvbnN0
CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0
dXJuIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXJsKCkpLT50b1N0cmluZygpOworICAgIHJldHVy
biBTZWN1cml0eU9yaWdpbjo6Y3JlYXRlKG1fdXJsLT51cmwoKSktPnRvU3RyaW5nKCk7CiB9CiAK
IFN0cmluZyBMb2NhdGlvbjo6aGFzaCgpIGNvbnN0CkBAIC0xMjksMTQgKzExOCwxNCBAQCBTdHJp
bmcgTG9jYXRpb246Omhhc2goKSBjb25zdAogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0
dXJuIFN0cmluZygpOwogCi0gICAgY29uc3QgU3RyaW5nJiBmcmFnbWVudElkZW50aWZpZXIgPSB1
cmwoKS5mcmFnbWVudElkZW50aWZpZXIoKTsKLSAgICByZXR1cm4gZnJhZ21lbnRJZGVudGlmaWVy
LmlzRW1wdHkoKSA/IGVtcHR5U3RyaW5nKCkgOiAiIyIgKyBmcmFnbWVudElkZW50aWZpZXI7Cisg
ICAgcmV0dXJuIG1fdXJsLT5oYXNoKCk7CiB9CiAKIHZvaWQgTG9jYXRpb246OnNldEhyZWYoY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcsIERPTVdpbmRvdyogYWN0aXZlV2luZG93LCBET01XaW5kb3cq
IGZpcnN0V2luZG93KQogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuOworICAg
IG1fdXJsLT5zZXRIcmVmKHVybFN0cmluZyk7CiAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPnNl
dExvY2F0aW9uKHVybFN0cmluZywgYWN0aXZlV2luZG93LCBmaXJzdFdpbmRvdyk7CiB9CiAKQEAg
LTE0NCw3OSArMTMzLDU1IEBAIHZvaWQgTG9jYXRpb246OnNldFByb3RvY29sKGNvbnN0IFN0cmlu
ZyYKIHsKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybjsKLSAgICBLVVJMIHVybCA9
IG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpOwotICAgIGlmICghdXJsLnNldFByb3RvY29sKHBy
b3RvY29sKSkgewotICAgICAgICBlYyA9IFNZTlRBWF9FUlI7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0gICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPnNldExvY2F0aW9uKHVybC5zdHJpbmcoKSwg
YWN0aXZlV2luZG93LCBmaXJzdFdpbmRvdyk7CisgICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPnNl
dExvY2F0aW9uKG1fdXJsLT5ocmVmKCksIGFjdGl2ZVdpbmRvdywgZmlyc3RXaW5kb3cpOwogfQog
CiB2b2lkIExvY2F0aW9uOjpzZXRIb3N0KGNvbnN0IFN0cmluZyYgaG9zdCwgRE9NV2luZG93KiBh
Y3RpdmVXaW5kb3csIERPTVdpbmRvdyogZmlyc3RXaW5kb3cpCiB7CiAgICAgaWYgKCFtX2ZyYW1l
KQogICAgICAgICByZXR1cm47Ci0gICAgS1VSTCB1cmwgPSBtX2ZyYW1lLT5kb2N1bWVudCgpLT51
cmwoKTsKLSAgICB1cmwuc2V0SG9zdEFuZFBvcnQoaG9zdCk7Ci0gICAgbV9mcmFtZS0+ZG9tV2lu
ZG93KCktPnNldExvY2F0aW9uKHVybC5zdHJpbmcoKSwgYWN0aXZlV2luZG93LCBmaXJzdFdpbmRv
dyk7CisgICAgbV91cmwtPnNldEhvc3QoaG9zdCk7CisgICAgbV9mcmFtZS0+ZG9tV2luZG93KCkt
PnNldExvY2F0aW9uKG1fdXJsLT5ocmVmKCksIGFjdGl2ZVdpbmRvdywgZmlyc3RXaW5kb3cpOwog
fQogCiB2b2lkIExvY2F0aW9uOjpzZXRIb3N0bmFtZShjb25zdCBTdHJpbmcmIGhvc3RuYW1lLCBE
T01XaW5kb3cqIGFjdGl2ZVdpbmRvdywgRE9NV2luZG93KiBmaXJzdFdpbmRvdykKIHsKICAgICBp
ZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybjsKLSAgICBLVVJMIHVybCA9IG1fZnJhbWUtPmRv
Y3VtZW50KCktPnVybCgpOwotICAgIHVybC5zZXRIb3N0KGhvc3RuYW1lKTsKLSAgICBtX2ZyYW1l
LT5kb21XaW5kb3coKS0+c2V0TG9jYXRpb24odXJsLnN0cmluZygpLCBhY3RpdmVXaW5kb3csIGZp
cnN0V2luZG93KTsKKyAgICBtX3VybC0+c2V0SG9zdG5hbWUoaG9zdG5hbWUpOworICAgIG1fZnJh
bWUtPmRvbVdpbmRvdygpLT5zZXRMb2NhdGlvbihtX3VybC0+aHJlZigpLCBhY3RpdmVXaW5kb3cs
IGZpcnN0V2luZG93KTsKIH0KIAogdm9pZCBMb2NhdGlvbjo6c2V0UG9ydChjb25zdCBTdHJpbmcm
IHBvcnRTdHJpbmcsIERPTVdpbmRvdyogYWN0aXZlV2luZG93LCBET01XaW5kb3cqIGZpcnN0V2lu
ZG93KQogewogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIEtVUkwgdXJs
ID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCk7Ci0gICAgaW50IHBvcnQgPSBwb3J0U3RyaW5n
LnRvSW50KCk7Ci0gICAgaWYgKHBvcnQgPCAwIHx8IHBvcnQgPiAweEZGRkYgfHwgcG9ydFN0cmlu
Zy5pc0VtcHR5KCkpCi0gICAgICAgIHVybC5yZW1vdmVQb3J0KCk7Ci0gICAgZWxzZQotICAgICAg
ICB1cmwuc2V0UG9ydChwb3J0KTsKLSAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+c2V0TG9jYXRp
b24odXJsLnN0cmluZygpLCBhY3RpdmVXaW5kb3csIGZpcnN0V2luZG93KTsKKyAgICBtX3VybC0+
c2V0UG9ydChwb3J0U3RyaW5nKTsKKyAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+c2V0TG9jYXRp
b24obV91cmwtPmhyZWYoKSwgYWN0aXZlV2luZG93LCBmaXJzdFdpbmRvdyk7CiB9CiAKIHZvaWQg
TG9jYXRpb246OnNldFBhdGhuYW1lKGNvbnN0IFN0cmluZyYgcGF0aG5hbWUsIERPTVdpbmRvdyog
YWN0aXZlV2luZG93LCBET01XaW5kb3cqIGZpcnN0V2luZG93KQogewogICAgIGlmICghbV9mcmFt
ZSkKICAgICAgICAgcmV0dXJuOwotICAgIEtVUkwgdXJsID0gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
dXJsKCk7Ci0gICAgdXJsLnNldFBhdGgocGF0aG5hbWUpOwotICAgIG1fZnJhbWUtPmRvbVdpbmRv
dygpLT5zZXRMb2NhdGlvbih1cmwuc3RyaW5nKCksIGFjdGl2ZVdpbmRvdywgZmlyc3RXaW5kb3cp
OworICAgIG1fdXJsLT5zZXRQYXRobmFtZShwYXRobmFtZSk7CisgICAgbV9mcmFtZS0+ZG9tV2lu
ZG93KCktPnNldExvY2F0aW9uKG1fdXJsLT5ocmVmKCksIGFjdGl2ZVdpbmRvdywgZmlyc3RXaW5k
b3cpOwogfQogCiB2b2lkIExvY2F0aW9uOjpzZXRTZWFyY2goY29uc3QgU3RyaW5nJiBzZWFyY2gs
IERPTVdpbmRvdyogYWN0aXZlV2luZG93LCBET01XaW5kb3cqIGZpcnN0V2luZG93KQogewogICAg
IGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIEtVUkwgdXJsID0gbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+dXJsKCk7Ci0gICAgdXJsLnNldFF1ZXJ5KHNlYXJjaCk7Ci0gICAgbV9mcmFt
ZS0+ZG9tV2luZG93KCktPnNldExvY2F0aW9uKHVybC5zdHJpbmcoKSwgYWN0aXZlV2luZG93LCBm
aXJzdFdpbmRvdyk7CisgICAgbV91cmwtPnNldFNlYXJjaChzZWFyY2gpOworICAgIG1fZnJhbWUt
PmRvbVdpbmRvdygpLT5zZXRMb2NhdGlvbihtX3VybC0+aHJlZigpLCBhY3RpdmVXaW5kb3csIGZp
cnN0V2luZG93KTsKIH0KIAogdm9pZCBMb2NhdGlvbjo6c2V0SGFzaChjb25zdCBTdHJpbmcmIGhh
c2gsIERPTVdpbmRvdyogYWN0aXZlV2luZG93LCBET01XaW5kb3cqIGZpcnN0V2luZG93KQogewog
ICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJuOwotICAgIEtVUkwgdXJsID0gbV9mcmFt
ZS0+ZG9jdW1lbnQoKS0+dXJsKCk7Ci0gICAgU3RyaW5nIG9sZEZyYWdtZW50SWRlbnRpZmllciA9
IHVybC5mcmFnbWVudElkZW50aWZpZXIoKTsKLSAgICBTdHJpbmcgbmV3RnJhZ21lbnRJZGVudGlm
aWVyID0gaGFzaDsKLSAgICBpZiAoaGFzaFswXSA9PSAnIycpCi0gICAgICAgIG5ld0ZyYWdtZW50
SWRlbnRpZmllciA9IGhhc2guc3Vic3RyaW5nKDEpOwotICAgIHVybC5zZXRGcmFnbWVudElkZW50
aWZpZXIobmV3RnJhZ21lbnRJZGVudGlmaWVyKTsKLSAgICAvLyBOb3RlIHRoYXQgYnkgcGFyc2lu
ZyB0aGUgVVJMIGFuZCAqdGhlbiogY29tcGFyaW5nIGZyYWdtZW50cywgd2UgYXJlIAotICAgIC8v
IGNvbXBhcmluZyBmcmFnbWVudHMgcG9zdC1jYW5vbmljYWxpemF0aW9uLCBhbmQgc28gdGhpcyBo
YW5kbGVzIHRoZSAKLSAgICAvLyBjYXNlcyB3aGVyZSBmcmFnbWVudCBpZGVudGlmaWVycyBhcmUg
aWdub3JlZCBvciBpbnZhbGlkLiAKLSAgICBpZiAoZXF1YWxJZ25vcmluZ051bGxpdHkob2xkRnJh
Z21lbnRJZGVudGlmaWVyLCB1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpKQotICAgICAgICByZXR1
cm47Ci0gICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPnNldExvY2F0aW9uKHVybC5zdHJpbmcoKSwg
YWN0aXZlV2luZG93LCBmaXJzdFdpbmRvdyk7CisgICAgbV91cmwtPnNldEhhc2goaGFzaCk7Cisg
ICAgbV9mcmFtZS0+ZG9tV2luZG93KCktPnNldExvY2F0aW9uKG1fdXJsLT5ocmVmKCksIGFjdGl2
ZVdpbmRvdywgZmlyc3RXaW5kb3cpOwogfQogCiB2b2lkIExvY2F0aW9uOjphc3NpZ24oY29uc3Qg
U3RyaW5nJiB1cmxTdHJpbmcsIERPTVdpbmRvdyogYWN0aXZlV2luZG93LCBET01XaW5kb3cqIGZp
cnN0V2luZG93KQpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uaAkocmV2aXNpb24gMTA3NTMyKQor
KysgU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2
ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIERPTVdpbmRvdzsKIGNsYXNzIEZy
YW1lOwogY2xhc3MgS1VSTDsKK2NsYXNzIFVSTEF0dHJpYnV0ZXM7CiAKIHR5cGVkZWYgaW50IEV4
Y2VwdGlvbkNvZGU7CiAKQEAgLTU1LDE3ICs1NiwxNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNl
dFByb3RvY29sKGNvbnN0IFN0cmluZyYsIERPTVdpbmRvdyogYWN0aXZlV2luZG93LCBET01XaW5k
b3cqIGZpcnN0V2luZG93LCBFeGNlcHRpb25Db2RlJik7CiAgICAgU3RyaW5nIHByb3RvY29sKCkg
Y29uc3Q7Ci0gICAgdm9pZCBzZXRIb3N0KGNvbnN0IFN0cmluZyYsIERPTVdpbmRvdyogYWN0aXZl
V2luZG93LCBET01XaW5kb3cqIGZpcnN0V2luZG93KTsgCisgICAgdm9pZCBzZXRIb3N0KGNvbnN0
IFN0cmluZyYsIERPTVdpbmRvdyogYWN0aXZlV2luZG93LCBET01XaW5kb3cqIGZpcnN0V2luZG93
KTsKICAgICBTdHJpbmcgaG9zdCgpIGNvbnN0OwotICAgIHZvaWQgc2V0SG9zdG5hbWUoY29uc3Qg
U3RyaW5nJiwgRE9NV2luZG93KiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyogZmlyc3RXaW5kb3cp
OyAKKyAgICB2b2lkIHNldEhvc3RuYW1lKGNvbnN0IFN0cmluZyYsIERPTVdpbmRvdyogYWN0aXZl
V2luZG93LCBET01XaW5kb3cqIGZpcnN0V2luZG93KTsKICAgICBTdHJpbmcgaG9zdG5hbWUoKSBj
b25zdDsKLSAgICB2b2lkIHNldFBvcnQoY29uc3QgU3RyaW5nJiwgRE9NV2luZG93KiBhY3RpdmVX
aW5kb3csIERPTVdpbmRvdyogZmlyc3RXaW5kb3cpOyAKKyAgICB2b2lkIHNldFBvcnQoY29uc3Qg
U3RyaW5nJiwgRE9NV2luZG93KiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyogZmlyc3RXaW5kb3cp
OwogICAgIFN0cmluZyBwb3J0KCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRQYXRobmFtZShjb25zdCBT
dHJpbmcmLCBET01XaW5kb3cqIGFjdGl2ZVdpbmRvdywgRE9NV2luZG93KiBmaXJzdFdpbmRvdyk7
IAorICAgIHZvaWQgc2V0UGF0aG5hbWUoY29uc3QgU3RyaW5nJiwgRE9NV2luZG93KiBhY3RpdmVX
aW5kb3csIERPTVdpbmRvdyogZmlyc3RXaW5kb3cpOwogICAgIFN0cmluZyBwYXRobmFtZSgpIGNv
bnN0OwotICAgIHZvaWQgc2V0U2VhcmNoKGNvbnN0IFN0cmluZyYsIERPTVdpbmRvdyogYWN0aXZl
V2luZG93LCBET01XaW5kb3cqIGZpcnN0V2luZG93KTsgCisgICAgdm9pZCBzZXRTZWFyY2goY29u
c3QgU3RyaW5nJiwgRE9NV2luZG93KiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyogZmlyc3RXaW5k
b3cpOwogICAgIFN0cmluZyBzZWFyY2goKSBjb25zdDsKLSAgICB2b2lkIHNldEhhc2goY29uc3Qg
U3RyaW5nJiwgRE9NV2luZG93KiBhY3RpdmVXaW5kb3csIERPTVdpbmRvdyogZmlyc3RXaW5kb3cp
OyAKKyAgICB2b2lkIHNldEhhc2goY29uc3QgU3RyaW5nJiwgRE9NV2luZG93KiBhY3RpdmVXaW5k
b3csIERPTVdpbmRvdyogZmlyc3RXaW5kb3cpOwogICAgIFN0cmluZyBoYXNoKCkgY29uc3Q7CiAg
ICAgU3RyaW5nIG9yaWdpbigpIGNvbnN0OwogCkBAIC03NCw3ICs3NSw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgZXhwbGljaXQgTG9jYXRpb24oRnJhbWUqKTsKIAotICAgIGNvbnN0IEtVUkwm
IHVybCgpIGNvbnN0OworICAgIFVSTEF0dHJpYnV0ZXMqIG1fdXJsOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQo=
</data>
<flag name="commit-queue"
          id="128650"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
      

    </bug>

</bugzilla>