<?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>70231</bug_id>
          
          <creation_ts>2011-10-17 05:40:26 -0700</creation_ts>
          <short_desc>[EFL][WK2] Add WKURLRequestEfl and WKURLResponseEfl</short_desc>
          <delta_ts>2012-05-31 05:30:29 -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>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</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>61838</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Keunsoon Lee">keunsoon.lee</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cshu</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ibchang</cc>
    
    <cc>leandro</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>t.morawski</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>485080</commentid>
    <comment_count>0</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-10-17 05:40:26 -0700</bug_when>
    <thetext>Add new files to extract content-type and cookie information from WKURLRequestRef/WKURLResponseRef.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485088</commentid>
    <comment_count>1</comment_count>
      <attachid>111253</attachid>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-10-17 05:50:43 -0700</bug_when>
    <thetext>Created attachment 111253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485089</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 05:51:37 -0700</bug_when>
    <thetext>Attachment 111253 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;]&quot; exit_code: 2

Updating OpenSource
Current branch master is up to date.
Updating chromium port dependencies using gclient...
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Error: &apos;depot_tools/gclient sync&apos; failed 3 tries and returned 256 at Tools/Scripts/update-webkit-chromium line 107.
Re-trying &apos;depot_tools/gclient sync&apos;
No such file or directory at Tools/Scripts/update-webkit line 104.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485100</commentid>
    <comment_count>3</comment_count>
      <attachid>111255</attachid>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-10-17 06:33:18 -0700</bug_when>
    <thetext>Created attachment 111255
try again to resolve style error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485117</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-17 07:08:23 -0700</bug_when>
    <thetext>Attachment 111255 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/update-webkit&apos;, &apos;--chromium&apos;]&quot; exit_code: 2

Updating OpenSource
From git://git.webkit.org/WebKit
   f208d85..3d928fb  master     -&gt; origin/master
	A	LayoutTests/platform/qt/fast/events/reveal-link-when-focused-expected.png
	A	LayoutTests/platform/qt/fast/events/reveal-link-when-focused-expected.txt
	M	LayoutTests/platform/qt/Skipped
	M	LayoutTests/ChangeLog
r97616 = 5014b6ef7e1669f4e7dfbfdb361c2ddba22542ae (refs/remotes/trunk)
	M	LayoutTests/platform/qt/fast/selectors/061-expected.txt
	M	LayoutTests/platform/qt/fast/selectors/017-expected.txt
	M	LayoutTests/platform/qt/fast/selectors/061-expected.png
	M	LayoutTests/platform/qt/fast/selectors/017-expected.png
	M	LayoutTests/platform/qt/css3/selectors3/xml/css3-modsel-61-expected.png
	M	LayoutTests/platform/qt/css3/selectors3/xml/css3-modsel-17-expected.png
	M	LayoutTests/platform/qt/css3/selectors3/xml/css3-modsel-61-expected.txt
	M	LayoutTests/platform/qt/css3/selectors3/xml/css3-modsel-17-expected.txt
	M	LayoutTests/platform/qt/css3/selectors3/html/css3-modsel-61-expected.png
	M	LayoutTests/platform/qt/css3/selectors3/html/css3-modsel-61-expected.txt
	M	LayoutTests/platform/qt/css3/selectors3/html/css3-modsel-17-expected.png
	M	LayoutTests/platform/qt/css3/selectors3/html/css3-modsel-17-expected.txt
	M	LayoutTests/platform/qt/css3/selectors3/xhtml/css3-modsel-61-expected.png
	M	LayoutTests/platform/qt/css3/selectors3/xhtml/css3-modsel-17-expected.png
	M	LayoutTests/platform/qt/css3/selectors3/xhtml/css3-modsel-61-expected.txt
	M	LayoutTests/platform/qt/css3/selectors3/xhtml/css3-modsel-17-expected.txt
	M	LayoutTests/ChangeLog
r97617 = 53da0d4c5265e8aa510edeab6fe3cb057e5d047b (refs/remotes/trunk)
	M	Source/JavaScriptCore/runtime/Executable.cpp
	M	Source/JavaScriptCore/ChangeLog
r97618 = 3d928fb1a74828744568746427e2acc309df63ea (refs/remotes/trunk)
First, rewinding head to replay your work on top of it...
Fast-forwarded master to refs/remotes/trunk.
Updating chromium port dependencies using gclient...
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Re-trying &apos;depot_tools/gclient sync&apos;
Error: Can&apos;t switch the checkout to http://v8.googlecode.com/svn/branches/3.6@9637; UUID don&apos;t match and there is local changes in /mnt/git/webkit-style-queue/Source/WebKit/chromium/v8. Delete the directory and try again.
Error: &apos;depot_tools/gclient sync&apos; failed 3 tries and returned 256 at Tools/Scripts/update-webkit-chromium line 107.
Re-trying &apos;depot_tools/gclient sync&apos;
No such file or directory at Tools/Scripts/update-webkit line 104.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485157</commentid>
    <comment_count>5</comment_count>
      <attachid>111255</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-10-17 08:17:40 -0700</bug_when>
    <thetext>Comment on attachment 111255
try again to resolve style error

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

From the ChangeLog, it is not clear to me what these files are supposed to do, and it looks like they have not been integrated into the buildsystem, nor are they called by other code.

&gt; Source/WebKit2/Shared/efl/WebCoreArgumentCodersEfl.cpp:64
&gt; +

Extra empty line.

&gt; Source/WebKit2/Shared/efl/WebCoreArgumentCodersEfl.cpp:83
&gt; +

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485810</commentid>
    <comment_count>6</comment_count>
      <attachid>111384</attachid>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-10-17 22:32:39 -0700</bug_when>
    <thetext>Created attachment 111384
modify ChangeLog, and fix style error</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486614</commentid>
    <comment_count>7</comment_count>
      <attachid>111575</attachid>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-10-19 01:29:09 -0700</bug_when>
    <thetext>Created attachment 111575
not to return NULL on WKURLRequestEflCopyCookies() to following after Core Foundation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486827</commentid>
    <comment_count>8</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2011-10-19 08:46:53 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 111255 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111255&amp;action=review
&gt; 
&gt; From the ChangeLog, it is not clear to me what these files are supposed to do, and it looks like they have not been integrated into the buildsystem, nor are they called by other code.

This has not been answered yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487336</commentid>
    <comment_count>9</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-10-19 22:25:19 -0700</bug_when>
    <thetext>Hi, thank you for the review.

I mentioned about it on ChangeLog.
Sorry for the confusion.
If you think it is not sufficient, please let me know.

Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487341</commentid>
    <comment_count>10</comment_count>
      <attachid>111575</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-10-19 22:58:08 -0700</bug_when>
    <thetext>Comment on attachment 111575
not to return NULL on WKURLRequestEflCopyCookies() to following after Core Foundation

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

&gt; Source/WebKit2/ChangeLog:6
&gt; +        These codes are only for EFL port, and will be imported to buildsystem when metabug for EFL port(61838) is complete.

I don&apos;t understand what above meaning. what is buildsyatem ? Do you mean EFL-WebKit2 build system? If it is so, I think this description is unneeded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487386</commentid>
    <comment_count>11</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-10-20 00:43:52 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 111575 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111575&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:6
&gt; &gt; +        These codes are only for EFL port, and will be imported to buildsystem when metabug for EFL port(61838) is complete.
&gt; 
&gt; I don&apos;t understand what above meaning. what is buildsyatem ? Do you mean EFL-WebKit2 build system? If it is so, I think this description is unneeded.

O.K. I&apos;ll delete the statement from ChangeLog.
Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487387</commentid>
    <comment_count>12</comment_count>
      <attachid>111736</attachid>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-10-20 00:44:43 -0700</bug_when>
    <thetext>Created attachment 111736
delete unused line from ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489292</commentid>
    <comment_count>13</comment_count>
    <who name="Tomasz Morawski">t.morawski</who>
    <bug_when>2011-10-24 06:05:17 -0700</bug_when>
    <thetext>Please check licence in files. Why there is APPLE INC?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489294</commentid>
    <comment_count>14</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-10-24 06:14:55 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Please check licence in files. Why there is APPLE INC?

Do you mean
&quot;Copyright (C) 2010 Apple Inc. All rights reserved.&quot;
on WebCoreArgumentCodersEfl.cpp?

That is because the file format is from WebCoreArgumentCoders.cpp.
The file has Apple license.
So, I thought the original license should be added.

By the way, another files has only Samsung license because they has no original file to refer.

If you think it is not necessary, please let me know.

Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489298</commentid>
    <comment_count>15</comment_count>
    <who name="Tomasz Morawski">t.morawski</who>
    <bug_when>2011-10-24 06:31:12 -0700</bug_when>
    <thetext>The licence that you have used in files has two small issues:
- THIS SOFTWARE IS PROVIDED BY APPLE INC
- IN NO EVENT SHALL APPLE INC.

Correct should be:
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS&apos;&apos;
 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
 * THE POSSIBILITY OF SUCH DAMAGE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489867</commentid>
    <comment_count>16</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2011-10-24 21:10:50 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; The licence that you have used in files has two small issues:
&gt; - THIS SOFTWARE IS PROVIDED BY APPLE INC
&gt; - IN NO EVENT SHALL APPLE INC.
&gt; 
&gt; Correct should be:
&gt;  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS IS&apos;&apos;
&gt;  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
&gt;  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
&gt;  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
&gt;  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
&gt;  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
&gt;  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
&gt;  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
&gt;  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
&gt;  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
&gt;  * THE POSSIBILITY OF SUCH DAMAGE.

Hi,
It is BSD license, which is posted on &quot;http://trac.webkit.org/browser/trunk/Source/WebKit/LICENSE&quot;.
I don&apos;t think I can modify that.

Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517128</commentid>
    <comment_count>17</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2011-12-07 19:55:24 -0800</bug_when>
    <thetext>CC&apos;ing Martin and Xan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608565</commentid>
    <comment_count>18</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2012-04-24 05:17:39 -0700</bug_when>
    <thetext>*** Bug 75242 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608644</commentid>
    <comment_count>19</comment_count>
      <attachid>138557</attachid>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2012-04-24 07:33:51 -0700</bug_when>
    <thetext>Created attachment 138557
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>608653</commentid>
    <comment_count>20</comment_count>
    <who name="Keunsoon Lee">keunsoon.lee</who>
    <bug_when>2012-04-24 07:44:16 -0700</bug_when>
    <thetext>Sorry for this late patch uploading.
I&apos;m starting this bug again.

I changed license and did &apos;git rebase&apos;.

Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635591</commentid>
    <comment_count>21</comment_count>
    <who name="Ryuan Choi">ryuan.choi</who>
    <bug_when>2012-05-28 22:53:54 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 111255 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=111255&amp;action=review
&gt; &gt; 
&gt; &gt; From the ChangeLog, it is not clear to me what these files are supposed to do, and it looks like they have not been integrated into the buildsystem, nor are they called by other code.
&gt; 
&gt; This has not been answered yet.

After updated, is it mentioned enough?

Patch itself looks fine to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>635593</commentid>
    <comment_count>22</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-28 23:00:43 -0700</bug_when>
    <thetext>AFAIK, EFL WK2 doesn&apos;t support layout test yet. So, it is a little difficult to check whether this patch doesn&apos;t make any problems during the layout test. So, informal rs+ on my side for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638262</commentid>
    <comment_count>23</comment_count>
      <attachid>138557</attachid>
    <who name="Chang Shu">cshu</who>
    <bug_when>2012-05-31 05:19:46 -0700</bug_when>
    <thetext>Comment on attachment 138557
Patch

The patch looks good but I hope EFL port would have WK2 layout test support asap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638268</commentid>
    <comment_count>24</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-05-31 05:23:49 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 138557 [details])
&gt; The patch looks good but I hope EFL port would have WK2 layout test support asap.

Thank you for your review. I think EFL WK2 will run WK2 layout test within 2 months.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638273</commentid>
    <comment_count>25</comment_count>
      <attachid>138557</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-31 05:30:19 -0700</bug_when>
    <thetext>Comment on attachment 138557
Patch

Clearing flags on attachment: 138557

Committed r119092: &lt;http://trac.webkit.org/changeset/119092&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>638274</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-05-31 05:30:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111253</attachid>
            <date>2011-10-17 05:50:43 -0700</date>
            <delta_ts>2011-10-17 06:33:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70231-20111017215041.patch</filename>
            <type>text/plain</type>
            <size>22345</size>
            <attacher name="Keunsoon Lee">keunsoon.lee</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDk3NTk5KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTEtMTAtMTcgIEtldW5zb29u
IExlZSAgPGtldW5zb29uLmxlZUBzYW1zdW5nLmNvbT4KKworICAgICAgICBbRUZMXVtXSzJdIEFk
ZCBXS1VSTFJlcXVlc3RFZmwgYW5kIFdLVVJMUmVzcG9uc2VFZmwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMjMxCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvZWZsOiBBZGRlZC4K
KyAgICAgICAgKiBTaGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVxdWVzdEVmbC5jcHA6IEFkZGVkLgor
ICAgICAgICAoV0tVUkxSZXF1ZXN0RWZsQ29weUNvb2tpZXMpOiBleHRyYWN0aW5nIGNvb2tpZSBp
bmZvcm1hdGlvbiBmcm9tIFdLVVJMUmVxdWVzdFJlZgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9l
ZmwvV0tVUkxSZXF1ZXN0RWZsLmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9BUEkvYy9lZmwv
V0tVUkxSZXNwb25zZUVmbC5jcHA6IEFkZGVkLgorICAgICAgICAoV0tVUkxSZXNwb25zZUVmbENv
cHlDb250ZW50VHlwZSk6IGV4dHJhY3RpbmcgY29udGVudCB0eXBlIChpLmUuIE1JTUUgdHlwZSkg
ZnJvbSBXS1VSTFJlc3BvbnNlUmVmCisgICAgICAgICogU2hhcmVkL0FQSS9jL2VmbC9XS1VSTFJl
c3BvbnNlRWZsLmg6IEFkZGVkLgorICAgICAgICAqIFNoYXJlZC9lZmwvV2ViQ29yZUFyZ3VtZW50
Q29kZXJzRWZsLmNwcDogZW5jb2RlaW5nIGFuZCBkZWNvZGluZyBmb3IgUmVzb3VyY2VSZXF1ZXN0
L1Jlc3BvbnNlCisgICAgICAgIChDb3JlSVBDOjo6OmVuY29kZSk6CisgICAgICAgIChDb3JlSVBD
Ojo6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL2VmbC9XZWJVUkxSZXF1ZXN0RWZsLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlcXVlc3RFZmw6OldlYlVSTFJlcXVlc3RF
ZmwpOgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXF1ZXN0RWZsOjpjb29raWVzKTogb2J0YWlu
aW5nIGNvb2tpZSBpbmZvcm1hdGlvbiBmcm9tIFJlc291cmNlUmVxdWVzdAorICAgICAgICAqIFNo
YXJlZC9lZmwvV2ViVVJMUmVxdWVzdEVmbC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMUmVxdWVzdEVmbDo6Y3JlYXRlKToKKyAgICAgICAgKiBTaGFyZWQvZWZsL1dlYlVSTFJlc3Bv
bnNlRWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlc3BvbnNlRWZsOjpX
ZWJVUkxSZXNwb25zZUVmbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVSTFJlc3BvbnNlRWZsOjpj
b250ZW50VHlwZSk6IG9idGFpbmluZyBjb250ZW50IHR5cGUgKGkuZS4gTUlNRSB0eXBlKSBmcm9t
IFJlc291cmNlUmVzcG9uc2UKKyAgICAgICAgKiBTaGFyZWQvZWZsL1dlYlVSTFJlc3BvbnNlRWZs
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZUVmbDo6Y3JlYXRlKToK
KwogMjAxMS0xMC0xNyAgTmF5YW4gS3VtYXIgSyAgPG5heWFua2tAbW90b3JvbGEuY29tPgogCiAg
ICAgICAgIFtXZWJLaXQyXVtndGtdIFJlbmFtZSBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9T
SE9XX1VSTCB0byBXRUJLSVRfUE9MSUNZX0VSUk9SX0NBTk5PVF9TSE9XX1VSSQpJbmRleDogU291
cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2VmbC9XS1VSTFJlcXVlc3RFZmwuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9lZmwvV0tVUkxSZXF1ZXN0RWZsLmNw
cAkocmV2aXNpb24gMCkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9lZmwvV0tVUkxS
ZXF1ZXN0RWZsLmNwcAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXS1VSTFJlcXVlc3RFZmwuaCIKKworI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldlYlVSTFJlcXVlc3RFZmwuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKKworV0tTdHJpbmdSZWYgV0tVUkxSZXF1ZXN0RWZsQ29weUNvb2tpZXMoV0tVUkxS
ZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCit7CisgICAgUmVmUHRyPFdlYlVSTFJlcXVlc3RFZmw+IHJl
cXVlc3RFZmwgPSBXZWJVUkxSZXF1ZXN0RWZsOjpjcmVhdGUodG9JbXBsKHJlcXVlc3RSZWYpKTsK
KworICAgIGlmIChyZXF1ZXN0RWZsLT5jb29raWVzKCkuaXNFbXB0eSgpKQorICAgICAgICByZXR1
cm4gMDsKKworICAgIHJldHVybiB0b0NvcGllZEFQSShyZXF1ZXN0RWZsLT5jb29raWVzKCkpOwor
fQpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2VmbC9XS1VSTFJlcXVlc3RFZmwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVx
dWVzdEVmbC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2Vm
bC9XS1VSTFJlcXVlc3RFZmwuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV0tVUkxSZXF1ZXN0RWZsX2gKKyNkZWZpbmUgV0tVUkxSZXF1ZXN0RWZsX2gKKworI2luY2x1
ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJDIiB7
CisjZW5kaWYKKworV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLVVJMUmVxdWVzdEVmbENvcHlDb29r
aWVzKFdLVVJMUmVxdWVzdFJlZik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQorI2VuZGlmCisK
KyNlbmRpZiAvKiBXS1VSTFJlcXVlc3RFZmxfaCAqLwpJbmRleDogU291cmNlL1dlYktpdDIvU2hh
cmVkL0FQSS9jL2VmbC9XS1VSTFJlc3BvbnNlRWZsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVzcG9uc2VFZmwuY3BwCShyZXZpc2lvbiAw
KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2VmbC9XS1VSTFJlc3BvbnNlRWZsLmNw
cAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXS1VSTFJlc3BvbnNlRWZsLmgiCisKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKKyNp
bmNsdWRlICJXZWJVUkxSZXNwb25zZUVmbC5oIgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owor
CitXS1N0cmluZ1JlZiBXS1VSTFJlc3BvbnNlRWZsQ29weUNvbnRlbnRUeXBlKFdLVVJMUmVzcG9u
c2VSZWYgcmVzcG9uc2VSZWYpCit7CisgICAgUmVmUHRyPFdlYlVSTFJlc3BvbnNlRWZsPiByZXNw
b25zZUVmbCA9IFdlYlVSTFJlc3BvbnNlRWZsOjpjcmVhdGUodG9JbXBsKHJlc3BvbnNlUmVmKSk7
CisgICAgcmV0dXJuIHRvQ29waWVkQVBJKHJlc3BvbnNlRWZsLT5jb250ZW50VHlwZSgpKTsKK30K
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9lZmwvV0tVUkxSZXNwb25zZUVmbC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9lZmwvV0tVUkxSZXNw
b25zZUVmbC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2Vm
bC9XS1VSTFJlc3BvbnNlRWZsLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdLVVJMUmVzcG9uc2VFZmxfaAorI2RlZmluZSBXS1VSTFJlc3BvbnNlRWZsX2gKKworI2lu
Y2x1ZGUgPFdlYktpdDIvV0tCYXNlLmg+CisKKyNpZmRlZiBfX2NwbHVzcGx1cworZXh0ZXJuICJD
IiB7CisjZW5kaWYKKworV0tfRVhQT1JUIFdLU3RyaW5nUmVmIFdLVVJMUmVzcG9uc2VFZmxDb3B5
Q29udGVudFR5cGUoV0tVUkxSZXNwb25zZVJlZik7CisKKyNpZmRlZiBfX2NwbHVzcGx1cworfQor
I2VuZGlmCisKKyNlbmRpZiAvKiBXS1VSTFJlc3BvbnNlRWZsX2ggKi8KSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9lZmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzRWZsLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dlYkNvcmVBcmd1bWVudENvZGVyc0VmbC5j
cHAJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dlYkNvcmVBcmd1
bWVudENvZGVyc0VmbC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTE0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKworI2luY2x1
ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
RXJyb3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVxdWVzdC5oPgorI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBDb3JlSVBDIHsKKwor
dm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVxdWVzdD46OmVuY29kZShBcmd1bWVudEVuY29k
ZXIqIGVuY29kZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVzb3VyY2VSZXF1ZXN0KQorewor
ICAgIGVuY29kZXItPmVuY29kZShyZXNvdXJjZVJlcXVlc3QudXJsKCkuc3RyaW5nKCkpOworICAg
IGVuY29kZXItPmVuY29kZShyZXNvdXJjZVJlcXVlc3QuaHR0cEhlYWRlckZpZWxkKCJDb29raWUi
KSk7Cit9CisKK2Jvb2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjpkZWNvZGUoQXJn
dW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXNvdXJjZVJlcXVlc3QmIHJlc291cmNlUmVxdWVzdCkK
K3sKKyAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKKworICAgIFN0cmluZyB1cmw7CisgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGUodXJsKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJl
cXVlc3Quc2V0VVJMKEtVUkwoS1VSTCgpLCB1cmwpKTsKKworICAgIFN0cmluZyBjb29raWU7Cisg
ICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUoY29va2llKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKCJDb29raWUiLCBjb29raWUpOworCisgICAg
cmVzb3VyY2VSZXF1ZXN0ID0gcmVxdWVzdDsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCit2b2lk
IEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmVuY29kZShBcmd1bWVudEVuY29kZXIq
IGVuY29kZXIsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc291cmNlUmVzcG9uc2UpCit7Cisg
ICAgZW5jb2Rlci0+ZW5jb2RlKHJlc291cmNlUmVzcG9uc2UubWltZVR5cGUoKSk7Cit9CisKK2Jv
b2wgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlc3BvbnNlPjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2Rl
ciogZGVjb2RlciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzb3VyY2VSZXNwb25zZSkKK3sKKyAgICBS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOworCisgICAgU3RyaW5nIG1pbWVUeXBlOworICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlKG1pbWVUeXBlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJlc3BvbnNlLnNldE1pbWVUeXBlKG1pbWVUeXBlKTsKKworICAgIHJlc291cmNlUmVzcG9uc2Ug
PSByZXNwb25zZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworCit2b2lkIEFyZ3VtZW50Q29kZXI8
UmVzb3VyY2VFcnJvcj46OmVuY29kZShBcmd1bWVudEVuY29kZXIqIGVuY29kZXIsIGNvbnN0IFJl
c291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCit7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHJlc291
cmNlRXJyb3IuZG9tYWluKCkpOworICAgIGVuY29kZXItPmVuY29kZShyZXNvdXJjZUVycm9yLmVy
cm9yQ29kZSgpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUocmVzb3VyY2VFcnJvci5mYWlsaW5nVVJM
KCkpOworICAgIGVuY29kZXItPmVuY29kZShyZXNvdXJjZUVycm9yLmxvY2FsaXplZERlc2NyaXB0
aW9uKCkpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VFcnJvcj46OmRlY29kZShB
cmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJlc291cmNlRXJyb3ImIHJlc291cmNlRXJyb3IpCit7
CisgICAgU3RyaW5nIGRvbWFpbjsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShkb21haW4pKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpbnQgZXJyb3JDb2RlOworICAgIGlmICghZGVj
b2Rlci0+ZGVjb2RlKGVycm9yQ29kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFN0
cmluZyBmYWlsaW5nVVJMOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGZhaWxpbmdVUkwpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBTdHJpbmcgbG9jYWxpemVkRGVzY3JpcHRpb247
CisgICAgaWYgKCFkZWNvZGVyLT5kZWNvZGUobG9jYWxpemVkRGVzY3JpcHRpb24pKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisKKyAgICByZXNvdXJjZUVycm9yID0gUmVzb3VyY2VFcnJvcihkb21h
aW4sIGVycm9yQ29kZSwgZmFpbGluZ1VSTCwgbG9jYWxpemVkRGVzY3JpcHRpb24pOworICAgIHJl
dHVybiB0cnVlOworfQorCit9IC8vIG5hbWVzcGFjZSBDb3JlSVBDCkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvZWZsL1dlYlVSTFJlcXVlc3RFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9lZmwvV2ViVVJMUmVxdWVzdEVmbC5jcHAJKHJldmlzaW9uIDApCisr
KyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dlYlVSTFJlcXVlc3RFZmwuY3BwCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIFNhbXN1bmcg
RWxlY3Ryb25pY3MKKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldl
YlVSTFJlcXVlc3RFZmwuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFj
ZSBXZWJLaXQgeworCitXZWJVUkxSZXF1ZXN0RWZsOjpXZWJVUkxSZXF1ZXN0RWZsKGNvbnN0IFdl
YlVSTFJlcXVlc3QqIHJlcXVlc3QpCisgICAgOiBtX3JlcXVlc3QocmVxdWVzdCkKK3sKK30KKwor
Y29uc3QgU3RyaW5nIFdlYlVSTFJlcXVlc3RFZmw6OmNvb2tpZXMoKSBjb25zdAoreworICAgIGlm
ICghbV9yZXF1ZXN0KQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICByZXR1cm4gbV9y
ZXF1ZXN0LT5yZXNvdXJjZVJlcXVlc3QoKS5odHRwSGVhZGVyRmllbGQoIkNvb2tpZSIpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwv
V2ViVVJMUmVxdWVzdEVmbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9l
ZmwvV2ViVVJMUmVxdWVzdEVmbC5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIvU2hh
cmVkL2VmbC9XZWJVUkxSZXF1ZXN0RWZsLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNTIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFdlYlVSTFJlcXVlc3RFZmxfaAorI2RlZmluZSBXZWJVUkxSZXF1ZXN0RWZsX2gK
KworI2luY2x1ZGUgIldlYlVSTFJlcXVlc3QuaCIKKyNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFz
cyBXZWJVUkxSZXF1ZXN0RWZsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViVVJMUmVxdWVzdEVmbD4g
eworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYlVSTFJlcXVlc3RFZmw+IGNyZWF0
ZShjb25zdCBXZWJVUkxSZXF1ZXN0KiByZXF1ZXN0KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFk
b3B0UmVmKG5ldyBXZWJVUkxSZXF1ZXN0RWZsKHJlcXVlc3QpKTsKKyAgICB9CisKKyAgICBjb25z
dCBTdHJpbmcgY29va2llcygpIGNvbnN0OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFdlYlVS
TFJlcXVlc3RFZmwoY29uc3QgV2ViVVJMUmVxdWVzdCopOworCisgICAgY29uc3QgV2ViVVJMUmVx
dWVzdCogbV9yZXF1ZXN0OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAv
LyBXZWJVUkxSZXF1ZXN0RWZsX2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvV2Vi
VVJMUmVzcG9uc2VFZmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9l
ZmwvV2ViVVJMUmVzcG9uc2VFZmwuY3BwCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYktpdDIv
U2hhcmVkL2VmbC9XZWJVUkxSZXNwb25zZUVmbC5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
NDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgU2Ftc3VuZyBFbGVjdHJvbmljcworICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVVJMUmVzcG9uc2VFZmwu
aCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1dlYlVSTFJlc3BvbnNlRWZsOjpXZWJVUkxSZXNw
b25zZUVmbChjb25zdCBXZWJVUkxSZXNwb25zZSogcmVzcG9uc2UpCisgICAgOiBtX3Jlc3BvbnNl
KHJlc3BvbnNlKQoreworfQorCitjb25zdCBTdHJpbmcmIFdlYlVSTFJlc3BvbnNlRWZsOjpjb250
ZW50VHlwZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX3Jlc3BvbnNlKQorICAgICAgICByZXR1cm4g
U3RyaW5nKCk7CisKKyAgICByZXR1cm4gbV9yZXNwb25zZS0+cmVzb3VyY2VSZXNwb25zZSgpLm1p
bWVUeXBlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL2VmbC9XZWJVUkxSZXNwb25zZUVmbC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9lZmwvV2ViVVJMUmVzcG9uc2VFZmwuaAkocmV2aXNpb24gMCkKKysrIFNv
dXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvV2ViVVJMUmVzcG9uc2VFZmwuaAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBTYW1zdW5nIEVsZWN0
cm9uaWNzCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViVVJMUmVzcG9uc2VFZmxfaAorI2RlZmluZSBX
ZWJVUkxSZXNwb25zZUVmbF9oCisKKyNpbmNsdWRlICJXZWJVUkxSZXNwb25zZS5oIgorI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlVSTFJlc3BvbnNlRWZsIDogcHVibGljIFJlZkNvdW50
ZWQ8V2ViVVJMUmVzcG9uc2VFZmw+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxX
ZWJVUkxSZXNwb25zZUVmbD4gY3JlYXRlKGNvbnN0IFdlYlVSTFJlc3BvbnNlKiByZXNwb25zZSkK
KyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViVVJMUmVzcG9uc2VFZmwocmVz
cG9uc2UpKTsKKyAgICB9CisKKyAgICBjb25zdCBTdHJpbmcmIGNvbnRlbnRUeXBlKCkgY29uc3Q7
CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgV2ViVVJMUmVzcG9uc2VFZmwoY29uc3QgV2ViVVJM
UmVzcG9uc2UqKTsKKworICAgIGNvbnN0IFdlYlVSTFJlc3BvbnNlKiBtX3Jlc3BvbnNlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXZWJVUkxSZXNwb25zZUVmbF9o
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111255</attachid>
            <date>2011-10-17 06:33:18 -0700</date>
            <delta_ts>2011-10-17 22:32:39 -0700</delta_ts>
            <desc>try again to resolve style error</desc>
            <filename>ch-[20111017]-[keunsoon.lee@samsung.com]-[[EFL][WK2] Add WKURLRequestEfl and WKURLResponseEfl].patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Keunsoon Lee">keunsoon.lee</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111384</attachid>
            <date>2011-10-17 22:32:39 -0700</date>
            <delta_ts>2011-10-19 01:29:09 -0700</delta_ts>
            <desc>modify ChangeLog, and fix style error</desc>
            <filename>ch-[20111018]-[keunsoon.lee@samsung.com]-[[EFL][WK2] Add WKURLRequestEfl and WKURLResponseEfl].patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Keunsoon Lee">keunsoon.lee</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111575</attachid>
            <date>2011-10-19 01:29:09 -0700</date>
            <delta_ts>2011-10-20 00:44:43 -0700</delta_ts>
            <desc>not to return NULL on WKURLRequestEflCopyCookies() to following after Core Foundation</desc>
            <filename>ch-[20111019]-[keunsoon.lee@samsung.com]-[[EFL][WK2] Add WKURLRequestEfl and WKURLResponseEfl].patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Keunsoon Lee">keunsoon.lee</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111736</attachid>
            <date>2011-10-20 00:44:43 -0700</date>
            <delta_ts>2012-04-24 07:33:44 -0700</delta_ts>
            <desc>delete unused line from ChangeLog</desc>
            <filename>ch-[20111020]-[keunsoon.lee@samsung.com]-[[EFL][WK2] Add WKURLRequestEfl and WKURLResponseEfl].patch</filename>
            <type>text/plain</type>
            <size>0</size>
            <attacher name="Keunsoon Lee">keunsoon.lee</attacher>
            
              <data encoding="base64"></data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138557</attachid>
            <date>2012-04-24 07:33:51 -0700</date>
            <delta_ts>2012-05-31 05:30:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70231-20120424233350.patch</filename>
            <type>text/plain</type>
            <size>18233</size>
            <attacher name="Keunsoon Lee">keunsoon.lee</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjdjZGRiNTRjNTBmY2Qz
YzE4YWM2ZGEyNWVhNTY4YWU3NmRiNDYzMC4uN2ViNWI0MjZkZmY5YzhlNTA5MWQ0NzBiZmM5NWRi
MzRhNTE0MzIxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA0LTI0ICBLZXVu
c29vbiBMZWUgIDxrZXVuc29vbi5sZWVAc2Ftc3VuZy5jb20+CisKKyAgICAgICAgW0VGTF1bV0sy
XSBBZGQgV0tVUkxSZXF1ZXN0RWZsIGFuZCBXS1VSTFJlc3BvbnNlRWZsCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDIzMQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIGNvZGVzIGNhbiBiZSB1c2Vk
IGZvciBXS1BhZ2VEZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrIG9uIHBhZ2UgcG9saWN5
IGNhbGxiYWNrcy4KKyAgICAgICAgVGhlIGNhbGxiYWNrIGNvbnZleXMgV0tVUkxSZXNwb25zZVJl
ZiBhbmQgV0tVUkxSZXF1ZXN0UmVmIGFzIHBhcmFtZXRlci4KKworICAgICAgICBCeSB0aGUgd2F5
LCBFRkwgYnJvd3NlciBuZWVkcyBjb250ZW50IHR5cGUgZnJvbSByZXNwb25zZSB0byBkZWNpZGUg
Y29ycmVjdCBwb2xpY3kuCisgICAgICAgIEFub3RoZXIgaW5mb3JtYXRpb24sIGNvb2tpZSwgaXMg
bmVjZXNzYXJ5IHdpdGggc2ltaWxhciByZWFzb24uCisgICAgICAgIEJ1dCwgdGhlcmUgaXMgbm8g
d2F5IHRvIG9idGFpbiBzdWNoIGluZm9ybWF0aW9uIG9uIFdlYktpdDIgbWFpbiBzdHJlYW0sIGV4
Y2VwdCBmb3IgV0tVUkxSZXF1ZXN0Q29weVVSTCgpLgorCisgICAgICAgIFNvLCBFRkwgcG9ydCBj
cmVhdGVkIHRob3NlIGZpbGVzIHRvIGV4dHJhY3QgbmVjZXNzYXJ5IGluZm9ybWF0aW9uIGZyb20g
V0tVUkxSZXNwb25zZVJlZiBhbmQgV0tVUkxSZXF1ZXN0UmVmLAorICAgICAgICBhbmQgbm90IHRv
IGRlc3R1cmIgV2ViS2l0MiBtYWluIHN0cmVhbS4gCisKKyAgICAgICAgKiBTaGFyZWQvQVBJL2Mv
ZWZsL1dLVVJMUmVxdWVzdEVmbC5jcHA6IEFkZGVkLgorICAgICAgICAoV0tVUkxSZXF1ZXN0RWZs
Q29weUNvb2tpZXMpOiBleHRyYWN0aW5nIGNvb2tpZSBpbmZvcm1hdGlvbiBmcm9tIFdLVVJMUmVx
dWVzdFJlZi4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVxdWVzdEVmbC5oOiBB
ZGRlZC4KKyAgICAgICAgKiBTaGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVzcG9uc2VFZmwuY3BwOiBB
ZGRlZC4KKyAgICAgICAgKFdLVVJMUmVzcG9uc2VFZmxDb3B5Q29udGVudFR5cGUpOiBleHRyYWN0
aW5nIGNvbnRlbnQgdHlwZSAoaS5lLiBNSU1FIHR5cGUpIGZyb20gV0tVUkxSZXNwb25zZVJlZi4K
KyAgICAgICAgKiBTaGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVzcG9uc2VFZmwuaDogQWRkZWQuCisg
ICAgICAgICogU2hhcmVkL2VmbC9XZWJDb3JlQXJndW1lbnRDb2RlcnNFZmwuY3BwOiBBZGRlZC4K
KyAgICAgICAgKENvcmVJUEMpOgorICAgICAgICAoQ29yZUlQQzo6OjplbmNvZGUpOgorICAgICAg
ICAoQ29yZUlQQzo6OjpkZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9lZmwvV2ViVVJMUmVxdWVz
dEVmbC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
VVJMUmVxdWVzdEVmbDo6V2ViVVJMUmVxdWVzdEVmbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlVS
TFJlcXVlc3RFZmw6OmNvb2tpZXMpOiBvYnRhaW5pbmcgY29va2llIGluZm9ybWF0aW9uIGZyb20g
UmVzb3VyY2VSZXF1ZXN0LgorICAgICAgICAqIFNoYXJlZC9lZmwvV2ViVVJMUmVxdWVzdEVmbC5o
OiBBZGRlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJVUkxSZXF1ZXN0RWZsKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVVJMUmVxdWVzdEVmbDo6Y3JlYXRlKToKKyAgICAgICAgKiBT
aGFyZWQvZWZsL1dlYlVSTFJlc3BvbnNlRWZsLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJLaXQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZUVmbDo6V2ViVVJMUmVzcG9uc2VFZmwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJVUkxSZXNwb25zZUVmbDo6Y29udGVudFR5cGUpOiBvYnRh
aW5pbmcgY29udGVudCB0eXBlIChpLmUuIE1JTUUgdHlwZSkgZnJvbSBSZXNvdXJjZVJlc3BvbnNl
LgorICAgICAgICAqIFNoYXJlZC9lZmwvV2ViVVJMUmVzcG9uc2VFZmwuaDogQWRkZWQuCisgICAg
ICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViVVJMUmVzcG9uc2VFZmwpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJVUkxSZXNwb25zZUVmbDo6Y3JlYXRlKToKKwogMjAxMi0wNC0yNCAgQWxsYW4gU2Fu
ZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFJl
c3RvcmUgeC1wb3NpdGlvbiB3aGVuIHJlc3RvcmluZyBwcmV2aW91cyB6b29tLWxldmVsLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2VmbC9XS1VSTFJlcXVlc3RFZmwu
Y3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0FQSS9jL2VmbC9XS1VSTFJlcXVlc3RFZmwuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjlhM2U5ZmNjNTZiNTA1YjQzOWEyNDkxOTUzNTNkM2FlYmI0ZTcwMjEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVx
dWVzdEVmbC5jcHAKQEAgLTAsMCArMSwzMiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBT
YW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICog
TGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUKKyAq
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZs
b29yLAorICogQm9zdG9uLCBNQSAgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXS1VSTFJlcXVlc3RFZmwuaCIKKworI2luY2x1ZGUgIldLQVBJ
Q2FzdC5oIgorI2luY2x1ZGUgIldlYlVSTFJlcXVlc3RFZmwuaCIKKwordXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKKworV0tTdHJpbmdSZWYgV0tVUkxSZXF1ZXN0RWZsQ29weUNvb2tpZXMoV0tVUkxS
ZXF1ZXN0UmVmIHJlcXVlc3RSZWYpCit7CisgICAgUmVmUHRyPFdlYlVSTFJlcXVlc3RFZmw+IHJl
cXVlc3RFZmwgPSBXZWJVUkxSZXF1ZXN0RWZsOjpjcmVhdGUodG9JbXBsKHJlcXVlc3RSZWYpKTsK
KyAgICByZXR1cm4gdG9Db3BpZWRBUEkocmVxdWVzdEVmbC0+Y29va2llcygpKTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkvYy9lZmwvV0tVUkxSZXF1ZXN0RWZsLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVxdWVzdEVmbC5oCm5ldyBm
aWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjYyNjg4ZGQ1NGU3OGU4NGEyYmZlNTFkOWY2Yzk4NWJiYWJlNGQ5ZDYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVxdWVzdEVm
bC5oCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBF
bGVjdHJvbmljcworICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2Fu
IHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJl
IHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2Ug
YWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhlCisgKiBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwKKyAq
IEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisjaWZuZGVmIFdLVVJMUmVxdWVz
dEVmbF9oCisjZGVmaW5lIFdLVVJMUmVxdWVzdEVmbF9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dL
QmFzZS5oPgorCisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dL
X0VYUE9SVCBXS1N0cmluZ1JlZiBXS1VSTFJlcXVlc3RFZmxDb3B5Q29va2llcyhXS1VSTFJlcXVl
c3RSZWYpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tV
UkxSZXF1ZXN0RWZsX2ggKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9BUEkv
Yy9lZmwvV0tVUkxSZXNwb25zZUVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2Mv
ZWZsL1dLVVJMUmVzcG9uc2VFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmFiZTAxZDc3YmExYzlmMTYxODBj
MWFlZTc5ZGIzMGQ1MGUxNjFlM2IKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVzcG9uc2VFZmwuY3BwCkBAIC0wLDAgKzEsMzIgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
KyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIg
b3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJp
YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VU
IEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IGlmIG5vdCwgd3JpdGUgdG8gdGhlCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEs
IFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV0tVUkxSZXNwb25z
ZUVmbC5oIgorCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCisjaW5jbHVkZSAiV2ViVVJMUmVzcG9u
c2VFZmwuaCIKKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworV0tTdHJpbmdSZWYgV0tVUkxS
ZXNwb25zZUVmbENvcHlDb250ZW50VHlwZShXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlUmVmKQor
eworICAgIFJlZlB0cjxXZWJVUkxSZXNwb25zZUVmbD4gcmVzcG9uc2VFZmwgPSBXZWJVUkxSZXNw
b25zZUVmbDo6Y3JlYXRlKHRvSW1wbChyZXNwb25zZVJlZikpOworICAgIHJldHVybiB0b0NvcGll
ZEFQSShyZXNwb25zZUVmbC0+Y29udGVudFR5cGUoKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVzcG9uc2VFZmwuaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9BUEkvYy9lZmwvV0tVUkxSZXNwb25zZUVmbC5oCm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZTY1
NWM2NDNlOTVlNTk4YjRjZWVlNTU0MWZmNWNlYmE4YzJkZjYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvQVBJL2MvZWZsL1dLVVJMUmVzcG9uc2VFZmwuaApAQCAtMCww
ICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MK
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBpZiBub3QsIHdyaXRlIHRvIHRoZQorICogRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1B
ICAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2lmbmRlZiBXS1VSTFJlc3BvbnNlRWZsX2gKKyNk
ZWZpbmUgV0tVUkxSZXNwb25zZUVmbF9oCisKKyNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgor
CisjaWZkZWYgX19jcGx1c3BsdXMKK2V4dGVybiAiQyIgeworI2VuZGlmCisKK1dLX0VYUE9SVCBX
S1N0cmluZ1JlZiBXS1VSTFJlc3BvbnNlRWZsQ29weUNvbnRlbnRUeXBlKFdLVVJMUmVzcG9uc2VS
ZWYpOworCisjaWZkZWYgX19jcGx1c3BsdXMKK30KKyNlbmRpZgorCisjZW5kaWYgLyogV0tVUkxS
ZXNwb25zZUVmbF9oICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dl
YkNvcmVBcmd1bWVudENvZGVyc0VmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZWZsL1dl
YkNvcmVBcmd1bWVudENvZGVyc0VmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk2NDg4M2JiNmY3MzBkZGQ3
MGM1ZDgyN2I2ZDJmZDYzYTU4ZWU1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9lZmwvV2ViQ29yZUFyZ3VtZW50Q29kZXJzRWZsLmNwcApAQCAtMCwwICsxLDEwNSBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0cm9uaWNzCisgKgorICog
VGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu
ZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJl
IEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
KyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4g
IFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUKKyAqIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAgMDIxMTAt
MTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJDb3Jl
QXJndW1lbnRDb2RlcnMuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VFcnJvci5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9S
ZXNvdXJjZVJlc3BvbnNlLmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3Bh
Y2UgQ29yZUlQQyB7CisKK3ZvaWQgQXJndW1lbnRDb2RlcjxSZXNvdXJjZVJlcXVlc3Q+OjplbmNv
ZGUoQXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlc291
cmNlUmVxdWVzdCkKK3sKKyAgICBlbmNvZGVyLT5lbmNvZGUocmVzb3VyY2VSZXF1ZXN0LnVybCgp
LnN0cmluZygpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUocmVzb3VyY2VSZXF1ZXN0Lmh0dHBIZWFk
ZXJGaWVsZCgiQ29va2llIikpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXF1
ZXN0Pjo6ZGVjb2RlKEFyZ3VtZW50RGVjb2RlciogZGVjb2RlciwgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXNvdXJjZVJlcXVlc3QpCit7CisgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Q7CisKKyAgICBT
dHJpbmcgdXJsOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKHVybCkpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXF1ZXN0LnNldFVSTChLVVJMKEtVUkwoKSwgdXJsKSk7CisKKyAgICBT
dHJpbmcgY29va2llOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGNvb2tpZSkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZCgiQ29va2llIiwg
Y29va2llKTsKKworICAgIHJlc291cmNlUmVxdWVzdCA9IHJlcXVlc3Q7CisgICAgcmV0dXJuIHRy
dWU7Cit9CisKKwordm9pZCBBcmd1bWVudENvZGVyPFJlc291cmNlUmVzcG9uc2U+OjplbmNvZGUo
QXJndW1lbnRFbmNvZGVyKiBlbmNvZGVyLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNvdXJj
ZVJlc3BvbnNlKQoreworICAgIGVuY29kZXItPmVuY29kZShyZXNvdXJjZVJlc3BvbnNlLm1pbWVU
eXBlKCkpOworfQorCitib29sIEFyZ3VtZW50Q29kZXI8UmVzb3VyY2VSZXNwb25zZT46OmRlY29k
ZShBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIFJlc291cmNlUmVzcG9uc2UmIHJlc291cmNlUmVz
cG9uc2UpCit7CisgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZTsKKworICAgIFN0cmluZyBt
aW1lVHlwZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShtaW1lVHlwZSkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICByZXNwb25zZS5zZXRNaW1lVHlwZShtaW1lVHlwZSk7CisKKyAgICBy
ZXNvdXJjZVJlc3BvbnNlID0gcmVzcG9uc2U7CisgICAgcmV0dXJuIHRydWU7Cit9CisKKwordm9p
ZCBBcmd1bWVudENvZGVyPFJlc291cmNlRXJyb3I+OjplbmNvZGUoQXJndW1lbnRFbmNvZGVyKiBl
bmNvZGVyLCBjb25zdCBSZXNvdXJjZUVycm9yJiByZXNvdXJjZUVycm9yKQoreworICAgIGVuY29k
ZXItPmVuY29kZShyZXNvdXJjZUVycm9yLmRvbWFpbigpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUo
cmVzb3VyY2VFcnJvci5lcnJvckNvZGUoKSk7CisgICAgZW5jb2Rlci0+ZW5jb2RlKHJlc291cmNl
RXJyb3IuZmFpbGluZ1VSTCgpKTsKKyAgICBlbmNvZGVyLT5lbmNvZGUocmVzb3VyY2VFcnJvci5s
b2NhbGl6ZWREZXNjcmlwdGlvbigpKTsKK30KKworYm9vbCBBcmd1bWVudENvZGVyPFJlc291cmNl
RXJyb3I+OjpkZWNvZGUoQXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBSZXNvdXJjZUVycm9yJiBy
ZXNvdXJjZUVycm9yKQoreworICAgIFN0cmluZyBkb21haW47CisgICAgaWYgKCFkZWNvZGVyLT5k
ZWNvZGUoZG9tYWluKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaW50IGVycm9yQ29k
ZTsKKyAgICBpZiAoIWRlY29kZXItPmRlY29kZShlcnJvckNvZGUpKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBTdHJpbmcgZmFpbGluZ1VSTDsKKyAgICBpZiAoIWRlY29kZXItPmRlY29k
ZShmYWlsaW5nVVJMKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgU3RyaW5nIGxvY2Fs
aXplZERlc2NyaXB0aW9uOworICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlKGxvY2FsaXplZERlc2Ny
aXB0aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmVzb3VyY2VFcnJvciA9IFJl
c291cmNlRXJyb3IoZG9tYWluLCBlcnJvckNvZGUsIGZhaWxpbmdVUkwsIGxvY2FsaXplZERlc2Ny
aXB0aW9uKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworfSAvLyBuYW1lc3BhY2UgQ29yZUlQQwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2VmbC9XZWJVUkxSZXF1ZXN0RWZsLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvV2ViVVJMUmVxdWVzdEVmbC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMmE0OThjNDQxNzE5YmU3MTA4OTVmZjg5ZjBmODIxNmIwMDkxMzA0MgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwvV2ViVVJMUmVxdWVzdEVmbC5jcHAK
QEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBTYW1zdW5nIEVsZWN0
cm9uaWNzCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lvbiAyIG9mIHRoZSBM
aWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorICoKKyAqIFRo
aXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNl
ZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxp
ZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg
YSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUKKyAqIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3QsIEZpZnRoIEZsb29yLAorICogQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJXZWJVUkxSZXF1ZXN0RWZsLmgiCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVVJMUmVxdWVzdEVmbDo6V2ViVVJMUmVxdWVzdEVm
bChjb25zdCBXZWJVUkxSZXF1ZXN0KiByZXF1ZXN0KQorICAgIDogbV9yZXF1ZXN0KHJlcXVlc3Qp
Cit7Cit9CisKK2NvbnN0IFN0cmluZyBXZWJVUkxSZXF1ZXN0RWZsOjpjb29raWVzKCkgY29uc3QK
K3sKKyAgICBpZiAoIW1fcmVxdWVzdCkKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworCisgICAg
cmV0dXJuIG1fcmVxdWVzdC0+cmVzb3VyY2VSZXF1ZXN0KCkuaHR0cEhlYWRlckZpZWxkKCJDb29r
aWUiKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvZWZsL1dlYlVSTFJlcXVlc3RFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9lZmwvV2ViVVJMUmVxdWVzdEVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwNTdkYjI4ZmQwNTUyOTVjMThj
ZDg0ZDc0OTg5MmMwYmVkMjM2OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZWZsL1dlYlVSTFJlcXVlc3RFZmwuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZQorICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BICAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2lmbmRlZiBXZWJVUkxSZXF1ZXN0RWZsX2gKKyNkZWZpbmUgV2ViVVJMUmVxdWVzdEVm
bF9oCisKKyNpbmNsdWRlICJXZWJVUkxSZXF1ZXN0LmgiCisjaW5jbHVkZSA8d3RmL0ZvcndhcmQu
aD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
Y2xhc3MgV2ViVVJMUmVxdWVzdEVmbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlVSTFJlcXVlc3RF
Zmw+IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJVUkxSZXF1ZXN0RWZsPiBj
cmVhdGUoY29uc3QgV2ViVVJMUmVxdWVzdCogcmVxdWVzdCkKKyAgICB7CisgICAgICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViVVJMUmVxdWVzdEVmbChyZXF1ZXN0KSk7CisgICAgfQorCisgICAg
Y29uc3QgU3RyaW5nIGNvb2tpZXMoKSBjb25zdDsKKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBX
ZWJVUkxSZXF1ZXN0RWZsKGNvbnN0IFdlYlVSTFJlcXVlc3QqKTsKKworICAgIGNvbnN0IFdlYlVS
TFJlcXVlc3QqIG1fcmVxdWVzdDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gV2ViVVJMUmVxdWVzdEVmbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvZWZsL1dlYlVSTFJlc3BvbnNlRWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9lZmwv
V2ViVVJMUmVzcG9uc2VFZmwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1MTI4YTQyMGYxNTI0Njg2OTdlY2Jm
YmUxOTI4MGZjMDA5NTRiNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvZWZsL1dlYlVSTFJlc3BvbnNlRWZsLmNwcApAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIFNhbXN1bmcgRWxlY3Ryb25pY3MKKyAqCisgKiBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2Rp
ZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwor
ICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsg
ZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikg
YW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FS
UkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRB
QklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUK
KyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoK
KyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBpZiBub3Qs
IHdyaXRlIHRvIHRoZQorICogRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFu
a2xpbiBTdCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BICAwMjExMC0xMzAxLCBVU0EuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlVSTFJlc3BvbnNlRWZsLmgi
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitXZWJVUkxSZXNwb25zZUVmbDo6V2ViVVJMUmVzcG9u
c2VFZmwoY29uc3QgV2ViVVJMUmVzcG9uc2UqIHJlc3BvbnNlKQorICAgIDogbV9yZXNwb25zZShy
ZXNwb25zZSkKK3sKK30KKworY29uc3QgU3RyaW5nJiBXZWJVUkxSZXNwb25zZUVmbDo6Y29udGVu
dFR5cGUoKSBjb25zdAoreworICAgIGlmICghbV9yZXNwb25zZSkKKyAgICAgICAgcmV0dXJuIFN0
cmluZygpOworCisgICAgcmV0dXJuIG1fcmVzcG9uc2UtPnJlc291cmNlUmVzcG9uc2UoKS5taW1l
VHlwZSgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9lZmwvV2ViVVJMUmVzcG9uc2VFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9lZmwvV2ViVVJMUmVzcG9uc2VFZmwuaApuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMTkzYTgwMjMyMGRjOGQ4
NzVkYTI3NGU2MTkxNzBlYmEzYzRlODJlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL2VmbC9XZWJVUkxSZXNwb25zZUVmbC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTIgU2Ftc3VuZyBFbGVjdHJvbmljcworICoKKyAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCisgKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQorICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
CisgKgorICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlm
IG5vdCwgd3JpdGUgdG8gdGhlCisgKiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEsIFVT
QS4KKyAqLworCisjaWZuZGVmIFdlYlVSTFJlc3BvbnNlRWZsX2gKKyNkZWZpbmUgV2ViVVJMUmVz
cG9uc2VFZmxfaAorCisjaW5jbHVkZSAiV2ViVVJMUmVzcG9uc2UuaCIKKyNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJL
aXQgeworCitjbGFzcyBXZWJVUkxSZXNwb25zZUVmbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlVS
TFJlc3BvbnNlRWZsPiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViVVJMUmVz
cG9uc2VFZmw+IGNyZWF0ZShjb25zdCBXZWJVUkxSZXNwb25zZSogcmVzcG9uc2UpCisgICAgewor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlVSTFJlc3BvbnNlRWZsKHJlc3BvbnNlKSk7
CisgICAgfQorCisgICAgY29uc3QgU3RyaW5nJiBjb250ZW50VHlwZSgpIGNvbnN0OworCitwcml2
YXRlOgorICAgIGV4cGxpY2l0IFdlYlVSTFJlc3BvbnNlRWZsKGNvbnN0IFdlYlVSTFJlc3BvbnNl
Kik7CisKKyAgICBjb25zdCBXZWJVUkxSZXNwb25zZSogbV9yZXNwb25zZTsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV2ViVVJMUmVzcG9uc2VFZmxfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>