<?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>60945</bug_id>
          
          <creation_ts>2011-05-16 23:47:53 -0700</creation_ts>
          <short_desc>WebSocket: Uninline methods in ThreadableWebSocketChannelClientWrapper</short_desc>
          <delta_ts>2011-05-17 05:41:54 -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 Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>35721</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuta Kitamura">yutak</reporter>
          <assigned_to name="Yuta Kitamura">yutak</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mjs</cc>
    
    <cc>tkent</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>404957</commentid>
    <comment_count>0</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-16 23:47:53 -0700</bug_when>
    <thetext>This is the second part of implementing WebSocket closing handshake (see bug 35721).

Add ThreadableWebSocketChannelClietWrapper.cpp. Uninline methods in this class and move these definitions into .cpp in order to allow further modifications in this class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404960</commentid>
    <comment_count>1</comment_count>
      <attachid>93743</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-16 23:58:03 -0700</bug_when>
    <thetext>Created attachment 93743
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404970</commentid>
    <comment_count>2</comment_count>
      <attachid>93743</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-05-17 01:04:13 -0700</bug_when>
    <thetext>Comment on attachment 93743
Patch

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

Looks ok.

&gt; Source/WebCore/websockets/ThreadableWebSocketChannelClientWrapper.cpp:35
&gt; +#include &quot;config.h&quot;
&gt; +
&gt; +#if ENABLE(WEB_SOCKETS)
&gt; +
&gt; +#include &quot;ThreadableWebSocketChannelClientWrapper.h&quot;

nit: Need no blank lines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404980</commentid>
    <comment_count>3</comment_count>
      <attachid>93749</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-17 01:53:12 -0700</bug_when>
    <thetext>Created attachment 93749
Ready to commit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404981</commentid>
    <comment_count>4</comment_count>
      <attachid>93750</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-17 01:56:26 -0700</bug_when>
    <thetext>Created attachment 93750
Ready to commit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>404994</commentid>
    <comment_count>5</comment_count>
      <attachid>93750</attachid>
    <who name="Hajime Morrita">morrita</who>
    <bug_when>2011-05-17 03:27:19 -0700</bug_when>
    <thetext>Comment on attachment 93750
Ready to commit

cq+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405016</commentid>
    <comment_count>6</comment_count>
      <attachid>93750</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-17 04:52:41 -0700</bug_when>
    <thetext>Comment on attachment 93750
Ready to commit

Rejecting attachment 93750 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-4&apos;, &apos;land-a...&quot; exit_code: 1

Last 500 characters of output:
autoinstalled/mechanize/_urllib2_fork.py&quot;, line 332, in _call_chain
    result = func(*args)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_urllib2_fork.py&quot;, line 1170, in https_open
    return self.do_open(conn_factory, req)
  File &quot;/mnt/git/webkit-commit-queue/Tools/Scripts/webkitpy/thirdparty/autoinstalled/mechanize/_urllib2_fork.py&quot;, line 1118, in do_open
    raise URLError(err)
urllib2.URLError: &lt;urlopen error [Errno 60] Operation timed out&gt;

Full output: http://queues.webkit.org/results/8705311</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405018</commentid>
    <comment_count>7</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-05-17 04:59:19 -0700</bug_when>
    <thetext>Hum? CQ failed but the patch has been landed in r86669.

Closing the issue...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>405027</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-17 05:41:54 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 93750:

http/tests/websocket/tests/url-with-query.html bug 60955 (author: abarth@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93743</attachid>
            <date>2011-05-16 23:58:03 -0700</date>
            <delta_ts>2011-05-17 01:53:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-60945-20110517155801.patch</filename>
            <type>text/plain</type>
            <size>19031</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY2NDAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDlmMGFm
NGMyMTYwYzU1Y2Q3NDYyNmE5NDg0MjExODkzNDQ4MGFkNy4uMzJkZWM3ODhiN2IyOGRkNDAyNzJj
NDA0YzUzYTZmNDgzNjU5MjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzNDgsNiArMTM0
OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBzdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNw
cAogCiAgICAgd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKyAgICB3
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAKICAg
ICB3ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKICAgICB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuY3BwCiAgICAgd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggMDc5NTM5NDQ5N2U5MWY5YTU1MzMyZWQyNGRkNDY5ZDk5OWRhMWUyYy4uNjllZjkzZmVhYjll
N2MxZmRiNTI2OGFmYWNlOWNjMzhiYmE5NWUyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBA
CisyMDExLTA1LTE2ICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlNvY2tldDogVW5p
bmxpbmUgbWV0aG9kcyBpbiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwOTQ1CisK
KyAgICAgICAgQWRkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAu
IFVuaW5saW5lIG1ldGhvZHMgaW4gdGhpcyBjbGFzcyBhbmQKKyAgICAgICAgbW92ZSB0aGVzZSBk
ZWZpbml0aW9ucyBpbnRvIC5jcHAgaW4gb3JkZXIgdG8gYWxsb3cgZnVydGhlciBtb2RpZmljYXRp
b25zIGluIHRoaXMgY2xhc3MuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhcyB0aGlzIGlzIGp1
c3QgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcjo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcjo6Y2xlYXJTeW5jTWV0aG9kRG9uZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnNldFN5bmNNZXRob2REb25lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c3lu
Y01ldGhvZERvbmUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyOjpzZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c2V0U2VudCk6CisgICAgICAgIChXZWJDb3JlOjpU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmJ1ZmZlcmVkQW1vdW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6c2V0QnVmZmVyZWRBbW91bnQpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpjbGVhckNsaWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENvbm5lY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c3VzcGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnJlc3Vt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI6OnByb2Nlc3NQZW5kaW5nRXZlbnRzKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oOgorCiAyMDExLTA1LTE2ICBBbmRy
ZXcgV2lsc29uICA8YXR3aWxzb25AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHI4NjYyNS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCmluZGV4IGNl
ODVkZWRmMWMxZWM0OTQwZjY0YjI0MGMyM2EwOGRlMDYzZTNiYTMuLmZiZTU3MDU5ZTg5MzkwN2Q5
YTg1NTM2N2U3ZmFjYmRiMWYyNjZmZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQpA
QCAtMzU1Niw2ICszNTU2LDcgQEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHWm9vbUV2ZW50LmggXAogCVNvdXJjZS9XZWJDb3JlL1dlYkNvcmVQcmVmaXguaCBc
CiAJU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9DbG9zZUV2ZW50LmggXAorCVNvdXJjZS9XZWJD
b3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNw
cCBcCiAJU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXIuaCBcCiAJU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAgXAogCVNvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWwuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNjcwODZiOWQ5NDA3
MTM1OWRiNTA0NjgzOTJlNTBjMTQwNDhkODEzZS4uNTAwNWE0NGQwOTM1YWNlMGMxMmUxYmVmODI0
NGIxZDM2MWQ5YjY4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtNTk3MCw2ICs1OTcwLDcgQEAKICAg
ICAgICAgICAgICd3ZWJzb2NrZXRzL0Nsb3NlRXZlbnQuaCcsCiAgICAgICAgICAgICAnd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAnLAogICAgICAgICAgICAgJ3dlYnNv
Y2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCcsCisgICAgICAgICAgICAnd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwJywKICAgICAg
ICAgICAgICd3ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
ci5oJywKICAgICAgICAgICAgICd3ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAnLAogICAgICAgICAg
ICAgJ3dlYnNvY2tldHMvV2ViU29ja2V0LmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5wcm8gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwppbmRleCA3ZmVjMDkzYmEy
ZWQ1M2VlY2M4Y2Q2M2E4ODlhODRlNGE1NzdhYjA1Li4zNmViY2MyYTU3YzRlOWFmNmU5NjVlN2Qy
YmMyMmQ0ZGYxNzhjM2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybwpAQCAtMzM5NCw2ICszMzk0LDcgQEAgY29u
dGFpbnMoREVGSU5FUywgRU5BQkxFX1dFQl9TT0NLRVRTPTEpIHsKICAgICAgICAgd2Vic29ja2V0
cy9XZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0LmNwcCBcCiAgICAgICAgIHdlYnNvY2tldHMvV2Vi
U29ja2V0SGFuZHNoYWtlUmVzcG9uc2UuY3BwIFwKICAgICAgICAgd2Vic29ja2V0cy9UaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgXAorICAgICAgICB3ZWJzb2NrZXRzL1RocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9uZXR3
b3JrL1NvY2tldFN0cmVhbUVycm9yQmFzZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9uZXR3b3Jr
L1NvY2tldFN0cmVhbUhhbmRsZUJhc2UuY3BwIFwKICAgICAgICAgcGxhdGZvcm0vbmV0d29yay9x
dC9Tb2NrZXRTdHJlYW1IYW5kbGVRdC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggOTBmZDE3MTY0ODljYzY3MzkzZThkYzYyNDAxZjU4ZGI1
ODdhODJjMS4uOGNhZDZjYjQ0MGU0YmVjNGZiMjg1ZjU5MTFiN2IzMTQ5NTZmMzc4ZSAxMDA3NTUK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTY3MTg2LDYg
KzY3MTg2LDEwIEBACiAJCQkJPgogCQkJPC9GaWxlPgogCQkJPEZpbGUKKwkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXHdlYnNvY2tldHNcVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
LmNwcCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5c
d2Vic29ja2V0c1xUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCIKIAkJ
CQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggZjExNmIyYzVmMTA5ZGQzYzM3MTlmYTQ5M2Y1ODZiM2RmMzI0
OTIxYS4uNzdkZjVhODEzNGJiNzJhMDA2MjNiZTFhZTVhMGI1MTRhNzQ4ODhiYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTIy
NCw2ICsxMjI0LDcgQEAKIAkJNTEwRDRBNEUxMDMxNzdBMjAwNDlFQTU0IC8qIFdlYlNvY2tldENo
YW5uZWwuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTEwRDRBNDcxMDMxNzdBMjAwNDlFQTU0IC8qIFdlYlNvY2tldENoYW5uZWwuY3BwICovOyB9Owog
CQk1MTBENEE0RjEwMzE3N0EyMDA0OUVBNTQgLyogV2ViU29ja2V0Q2hhbm5lbC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRDRBNDgxMDMxNzdBMjAw
NDlFQTU0IC8qIFdlYlNvY2tldENoYW5uZWwuaCAqLzsgfTsKIAkJNTEwRDRBNTAxMDMxNzdBMjAw
NDlFQTU0IC8qIFdlYlNvY2tldENoYW5uZWxDbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMEQ0QTQ5MTAzMTc3QTIwMDQ5RUE1NCAvKiBXZWJT
b2NrZXRDaGFubmVsQ2xpZW50LmggKi87IH07CisJCTUxMEYwNzlCMTFGRUU5QzAwMEI4RUU0OSAv
KiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTEwRjA3ODExMUZFQkU3NTAwQjhF
RTQ5IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgKi87IH07
CiAJCTUxMTIyNDcyMTBDRkI4QzYwMDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTEy
MjQ3MTEwQ0ZCOEM2MDA4MDk5RDcgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwICov
OyB9OwogCQk1MTEyMjQ3NDEwQ0ZCOEQ4MDA4MDk5RDcgLyogVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MTIyNDczMTBDRkI4RDgwMDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oICov
OyB9OwogCQk1MTEyMjQ3NjEwQ0ZCOEU4MDA4MDk5RDcgLyogVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1MTEyMjQ3NTEwQ0ZCOEU4MDA4MDk5RDcgLyogVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyLmggKi87IH07CkBAIC03NzQ2LDYgKzc3NDcsNyBAQAogCQk1
MTBENEE0NzEwMzE3N0EyMDA0OUVBNTQgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTb2NrZXRDaGFubmVsLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTEwRDRBNDgxMDMxNzdBMjAwNDlFQTU0IC8qIFdlYlNv
Y2tldENoYW5uZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViU29ja2V0
Q2hhbm5lbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MTBENEE0OTEwMzE3N0Ey
MDA0OUVBNTQgLyogV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXZWJTb2NrZXRDaGFubmVsQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTUxMEYwNzgxMTFGRUJFNzUwMEI4RUU0OSAvKiBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMjI0NzExMENGQjhDNjAwODA5OUQ3IC8qIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTExMjI0NzMxMENGQjhEODAwODA5OUQ3IC8qIFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMTIy
NDc1MTBDRkI4RTgwMDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xMzgwOSw2ICsxMzgxMSw3IEBACiAJCQkJNTExMjI0NzExMENGQjhDNjAwODA5OUQ3IC8qIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCAqLywKIAkJCQk1MTEyMjQ3MzEwQ0ZCOEQ4MDA4
MDk5RDcgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCAqLywKIAkJCQk1MTEyMjQ3NTEw
Q0ZCOEU4MDA4MDk5RDcgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
LmggKi8sCisJCQkJNTEwRjA3ODExMUZFQkU3NTAwQjhFRTQ5IC8qIFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgKi8sCiAJCQkJNTE4QTM0QkUxMDI2QzgzMTAwMUI2
ODk2IC8qIFdlYlNvY2tldC5jcHAgKi8sCiAJCQkJNTE4QTM0QkYxMDI2QzgzMTAwMUI2ODk2IC8q
IFdlYlNvY2tldC5oICovLAogCQkJCTUxOEEzNEMwMTAyNkM4MzEwMDFCNjg5NiAvKiBXZWJTb2Nr
ZXQuaWRsICovLApAQCAtMjUzNDIsNiArMjUzNDUsNyBAQAogCQkJCTk3NkQ2Qzk0MTIyQjhBM0Qw
MDFGRDFGNyAvKiBUaHJlYWRhYmxlQmxvYlJlZ2lzdHJ5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTBCOTA1NjFFMEYyNTdFOTMwMDk1RkY2QSAvKiBUaHJlYWRhYmxlTG9hZGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxMTIyNDcyMTBDRkI4QzYwMDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MTBGMDc5QjExRkVFOUMwMDBCOEVF
NDkgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxREY2RDgwMEI5MkExOEUwMEMyREM4NSAvKiBUaHJlYWRDaGVjay5tbSBp
biBTb3VyY2VzICovLAogCQkJCUUxRkY1N0E2MEYwMTI1NkIwMDg5MUVCQiAvKiBUaHJlYWRHbG9i
YWxEYXRhLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE4NUJDRjI4MEYzMjc5Q0UwMDBFQTI2MiAv
KiBUaHJlYWRUaW1lcnMuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjJkMjk0N2VlN2I0OWY0OTYyYzcxMjE2NGI0
NzI4Y2IxMjIyNDBhNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tl
dHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcApAQCAtMCwwICsx
LDE1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoK
KyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgor
ICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBH
b29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMg
c29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklH
SFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCisK
KyNpbmNsdWRlICJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCIKKwor
I2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxDbGllbnQuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc1Jl
ZlB0ci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1RocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcjo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
KFdlYlNvY2tldENoYW5uZWxDbGllbnQqIGNsaWVudCkKKyAgICA6IG1fY2xpZW50KGNsaWVudCkK
KyAgICAsIG1fc3luY01ldGhvZERvbmUoZmFsc2UpCisgICAgLCBtX3NlbnQoZmFsc2UpCisgICAg
LCBtX2J1ZmZlcmVkQW1vdW50KDApCisgICAgLCBtX3N1c3BlbmRlZChmYWxzZSkKKyAgICAsIG1f
cGVuZGluZ0Nvbm5lY3RlZChmYWxzZSkKKyAgICAsIG1fcGVuZGluZ0Nsb3NlZChmYWxzZSkKK3sK
K30KKworUGFzc1JlZlB0cjxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+
IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6Y3JlYXRlKFdlYlNvY2tl
dENoYW5uZWxDbGllbnQqIGNsaWVudCkKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcihjbGllbnQpKTsKK30KKwordm9pZCBU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmNsZWFyU3luY01ldGhvZERv
bmUoKQoreworICAgIG1fc3luY01ldGhvZERvbmUgPSBmYWxzZTsKK30KKwordm9pZCBUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnNldFN5bmNNZXRob2REb25lKCkKK3sK
KyAgICBtX3N5bmNNZXRob2REb25lID0gdHJ1ZTsKK30KKworYm9vbCBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnN5bmNNZXRob2REb25lKCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gbV9zeW5jTWV0aG9kRG9uZTsKK30KKworYm9vbCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXI6OnNlbnQoKSBjb25zdAoreworICAgIHJldHVybiBtX3NlbnQ7Cit9
CisKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpzZXRTZW50
KGJvb2wgc2VudCkKK3sKKyAgICBtX3NlbnQgPSBzZW50OworICAgIG1fc3luY01ldGhvZERvbmUg
PSB0cnVlOworfQorCit1bnNpZ25lZCBsb25nIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlcjo6YnVmZmVyZWRBbW91bnQoKSBjb25zdAoreworICAgIHJldHVybiBtX2J1ZmZl
cmVkQW1vdW50OworfQorCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcjo6c2V0QnVmZmVyZWRBbW91bnQodW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCkKK3sK
KyAgICBtX2J1ZmZlcmVkQW1vdW50ID0gYnVmZmVyZWRBbW91bnQ7CisgICAgbV9zeW5jTWV0aG9k
RG9uZSA9IHRydWU7Cit9CisKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyOjpjbGVhckNsaWVudCgpCit7CisgICAgbV9jbGllbnQgPSAwOworfQorCit2b2lkIFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkQ29ubmVjdCgpCit7Cisg
ICAgbV9wZW5kaW5nQ29ubmVjdGVkID0gdHJ1ZTsKKyAgICBpZiAoIW1fc3VzcGVuZGVkKQorICAg
ICAgICBwcm9jZXNzUGVuZGluZ0V2ZW50cygpOworfQorCit2b2lkIFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKQoreworICAgIG1fcGVuZGluZ01lc3NhZ2VzLmFwcGVuZChtZXNzYWdlKTsKKyAgICBp
ZiAoIW1fc3VzcGVuZGVkKQorICAgICAgICBwcm9jZXNzUGVuZGluZ0V2ZW50cygpOworfQorCit2
b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkQ2xvc2UodW5z
aWduZWQgbG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCkKK3sKKyAgICBtX3BlbmRpbmdDbG9z
ZWQgPSB0cnVlOworICAgIG1fYnVmZmVyZWRBbW91bnQgPSB1bmhhbmRsZWRCdWZmZXJlZEFtb3Vu
dDsKKyAgICBpZiAoIW1fc3VzcGVuZGVkKQorICAgICAgICBwcm9jZXNzUGVuZGluZ0V2ZW50cygp
OworfQorCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c3Vz
cGVuZCgpCit7CisgICAgbV9zdXNwZW5kZWQgPSB0cnVlOworfQorCit2b2lkIFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6cmVzdW1lKCkKK3sKKyAgICBtX3N1c3BlbmRl
ZCA9IGZhbHNlOworICAgIHByb2Nlc3NQZW5kaW5nRXZlbnRzKCk7Cit9CisKK3ZvaWQgVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpwcm9jZXNzUGVuZGluZ0V2ZW50cygp
Cit7CisgICAgQVNTRVJUKCFtX3N1c3BlbmRlZCk7CisgICAgaWYgKG1fcGVuZGluZ0Nvbm5lY3Rl
ZCkgeworICAgICAgICBtX3BlbmRpbmdDb25uZWN0ZWQgPSBmYWxzZTsKKyAgICAgICAgaWYgKG1f
Y2xpZW50KQorICAgICAgICAgICAgbV9jbGllbnQtPmRpZENvbm5lY3QoKTsKKyAgICB9CisKKyAg
ICBWZWN0b3I8U3RyaW5nPiBtZXNzYWdlczsKKyAgICBtZXNzYWdlcy5zd2FwKG1fcGVuZGluZ01l
c3NhZ2VzKTsKKyAgICBmb3IgKFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBpdGVyID0g
bWVzc2FnZXMuYmVnaW4oKTsgaXRlciAhPSBtZXNzYWdlcy5lbmQoKTsgKytpdGVyKSB7CisgICAg
ICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2Fn
ZSgqaXRlcik7CisgICAgfQorCisgICAgaWYgKG1fcGVuZGluZ0Nsb3NlZCkgeworICAgICAgICBt
X3BlbmRpbmdDbG9zZWQgPSBmYWxzZTsKKyAgICAgICAgaWYgKG1fY2xpZW50KQorICAgICAgICAg
ICAgbV9jbGllbnQtPmRpZENsb3NlKG1fYnVmZmVyZWRBbW91bnQpOworICAgIH0KK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmggYi9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlci5oCmluZGV4IDY4M2VlODQwYzAxZWIwNDYzNjJhMDBjMzZlNmE2MGM0MTM1MGFjMjgu
LjY2OTUyYzExNTI4YjdhN2MyYzNmMTQ4YzYzZDUwZmE2MjgwMzUzMWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCkBAIC0zNCwxMjcgKzM0LDQxIEBACiAjaWYgRU5BQkxF
KFdFQl9TT0NLRVRTKQogCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKLSNpbmNsdWRlICJX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KLSNpbmNs
dWRlIDx3dGYvUGFzc1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KICNpbmNs
dWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgV2ViU29j
a2V0Q2hhbm5lbENsaWVudDsKKwogY2xhc3MgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gY3JlYXRlKFdlYlNvY2tl
dENoYW5uZWxDbGllbnQqIGNsaWVudCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKGNsaWVudCkpOwotICAg
IH0KLQotICAgIHZvaWQgY2xlYXJTeW5jTWV0aG9kRG9uZSgpCi0gICAgewotICAgICAgICBtX3N5
bmNNZXRob2REb25lID0gZmFsc2U7Ci0gICAgfQotICAgIHZvaWQgc2V0U3luY01ldGhvZERvbmUo
KQotICAgIHsKLSAgICAgICAgbV9zeW5jTWV0aG9kRG9uZSA9IHRydWU7Ci0gICAgfQotCi0gICAg
Ym9vbCBzeW5jTWV0aG9kRG9uZSgpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gbV9zeW5j
TWV0aG9kRG9uZTsKLSAgICB9Ci0KLSAgICBib29sIHNlbnQoKSBjb25zdAotICAgIHsKLSAgICAg
ICAgcmV0dXJuIG1fc2VudDsKLSAgICB9Ci0gICAgdm9pZCBzZXRTZW50KGJvb2wgc2VudCkKLSAg
ICB7Ci0gICAgICAgIG1fc2VudCA9IHNlbnQ7Ci0gICAgICAgIG1fc3luY01ldGhvZERvbmUgPSB0
cnVlOwotICAgIH0KLQotICAgIHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQoKSBjb25zdAot
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fYnVmZmVyZWRBbW91bnQ7Ci0gICAgfQotICAgIHZvaWQg
c2V0QnVmZmVyZWRBbW91bnQodW5zaWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCkKLSAgICB7Ci0g
ICAgICAgIG1fYnVmZmVyZWRBbW91bnQgPSBidWZmZXJlZEFtb3VudDsKLSAgICAgICAgbV9zeW5j
TWV0aG9kRG9uZSA9IHRydWU7Ci0gICAgfQotCi0gICAgdm9pZCBjbGVhckNsaWVudCgpCi0gICAg
ewotICAgICAgICBtX2NsaWVudCA9IDA7Ci0gICAgfQotCi0gICAgdm9pZCBkaWRDb25uZWN0KCkK
LSAgICB7Ci0gICAgICAgIG1fcGVuZGluZ0Nvbm5lY3RlZCA9IHRydWU7Ci0gICAgICAgIGlmICgh
bV9zdXNwZW5kZWQpCi0gICAgICAgICAgICBwcm9jZXNzUGVuZGluZ0V2ZW50cygpOwotICAgIH0K
LQotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBtc2cpCi0gICAgewot
ICAgICAgICBtX3BlbmRpbmdNZXNzYWdlcy5hcHBlbmQobXNnKTsKLSAgICAgICAgaWYgKCFtX3N1
c3BlbmRlZCkKLSAgICAgICAgICAgIHByb2Nlc3NQZW5kaW5nRXZlbnRzKCk7Ci0gICAgfQotCi0g
ICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50KQot
ICAgIHsKLSAgICAgICAgbV9wZW5kaW5nQ2xvc2VkID0gdHJ1ZTsKLSAgICAgICAgbV9idWZmZXJl
ZEFtb3VudCA9IHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50OwotICAgICAgICBpZiAoIW1fc3VzcGVu
ZGVkKQotICAgICAgICAgICAgcHJvY2Vzc1BlbmRpbmdFdmVudHMoKTsKLSAgICB9Ci0KLSAgICB2
b2lkIHN1c3BlbmQoKQotICAgIHsKLSAgICAgICAgbV9zdXNwZW5kZWQgPSB0cnVlOwotICAgIH0K
LQotICAgIHZvaWQgcmVzdW1lKCkKLSAgICB7Ci0gICAgICAgIG1fc3VzcGVuZGVkID0gZmFsc2U7
Ci0gICAgICAgIHByb2Nlc3NQZW5kaW5nRXZlbnRzKCk7Ci0gICAgfQorICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcj4gY3JlYXRlKFdl
YlNvY2tldENoYW5uZWxDbGllbnQqKTsKKworICAgIHZvaWQgY2xlYXJTeW5jTWV0aG9kRG9uZSgp
OworICAgIHZvaWQgc2V0U3luY01ldGhvZERvbmUoKTsKKyAgICBib29sIHN5bmNNZXRob2REb25l
KCkgY29uc3Q7CisKKyAgICBib29sIHNlbnQoKSBjb25zdDsKKyAgICB2b2lkIHNldFNlbnQoYm9v
bCk7CisKKyAgICB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3Q7CisgICAgdm9p
ZCBzZXRCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBsb25nKTsKKworICAgIHZvaWQgY2xlYXJDbGll
bnQoKTsKKworICAgIHZvaWQgZGlkQ29ubmVjdCgpOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3Nh
Z2UoY29uc3QgU3RyaW5nJiBtZXNzYWdlKTsKKyAgICB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIGxv
bmcgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQpOworCisgICAgdm9pZCBzdXNwZW5kKCk7CisgICAg
dm9pZCByZXN1bWUoKTsKIAogcHJvdGVjdGVkOgotICAgIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcihXZWJTb2NrZXRDaGFubmVsQ2xpZW50KiBjbGllbnQpCi0gICAgICAg
IDogbV9jbGllbnQoY2xpZW50KQotICAgICAgICAsIG1fc3luY01ldGhvZERvbmUoZmFsc2UpCi0g
ICAgICAgICwgbV9zZW50KGZhbHNlKQotICAgICAgICAsIG1fYnVmZmVyZWRBbW91bnQoMCkKLSAg
ICAgICAgLCBtX3N1c3BlbmRlZChmYWxzZSkKLSAgICAgICAgLCBtX3BlbmRpbmdDb25uZWN0ZWQo
ZmFsc2UpCi0gICAgICAgICwgbV9wZW5kaW5nQ2xvc2VkKGZhbHNlKQotICAgIHsKLSAgICB9Ci0K
LSAgICB2b2lkIHByb2Nlc3NQZW5kaW5nRXZlbnRzKCkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCgh
bV9zdXNwZW5kZWQpOwotICAgICAgICBpZiAobV9wZW5kaW5nQ29ubmVjdGVkKSB7Ci0gICAgICAg
ICAgICBtX3BlbmRpbmdDb25uZWN0ZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGlmIChtX2NsaWVu
dCkKLSAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkQ29ubmVjdCgpOwotICAgICAgICB9Ci0K
LSAgICAgICAgVmVjdG9yPFN0cmluZz4gbWVzc2FnZXM7Ci0gICAgICAgIG1lc3NhZ2VzLnN3YXAo
bV9wZW5kaW5nTWVzc2FnZXMpOwotICAgICAgICBmb3IgKFZlY3RvcjxTdHJpbmc+Ojpjb25zdF9p
dGVyYXRvciBpdGVyID0gbWVzc2FnZXMuYmVnaW4oKTsgaXRlciAhPSBtZXNzYWdlcy5lbmQoKTsg
KytpdGVyKSB7Ci0gICAgICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICAgICAgbV9j
bGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKCppdGVyKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlm
IChtX3BlbmRpbmdDbG9zZWQpIHsKLSAgICAgICAgICAgIG1fcGVuZGluZ0Nsb3NlZCA9IGZhbHNl
OwotICAgICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5k
aWRDbG9zZShtX2J1ZmZlcmVkQW1vdW50KTsKLSAgICAgICAgfQotICAgIH0KKyAgICBUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIoV2ViU29ja2V0Q2hhbm5lbENsaWVudCop
OworCisgICAgdm9pZCBwcm9jZXNzUGVuZGluZ0V2ZW50cygpOwogCiAgICAgV2ViU29ja2V0Q2hh
bm5lbENsaWVudCogbV9jbGllbnQ7CiAgICAgYm9vbCBtX3N5bmNNZXRob2REb25lOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93749</attachid>
            <date>2011-05-17 01:53:12 -0700</date>
            <delta_ts>2011-05-17 01:56:19 -0700</delta_ts>
            <desc>Ready to commit</desc>
            <filename>bug-60945-20110517175310.patch</filename>
            <type>text/plain</type>
            <size>19017</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY2NTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDlmMGFm
NGMyMTYwYzU1Y2Q3NDYyNmE5NDg0MjExODkzNDQ4MGFkNy4uMzJkZWM3ODhiN2IyOGRkNDAyNzJj
NDA0YzUzYTZmNDgzNjU5MjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzNDgsNiArMTM0
OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBzdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNw
cAogCiAgICAgd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKyAgICB3
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAKICAg
ICB3ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKICAgICB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuY3BwCiAgICAgd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZjJlOGE3MWJjODVmMDliNWRkYjk2NGU4OTA2NmI2Mzg0MTZjZDY4OC4uOGRkYWY3OGIxMDE2
MTRmYzg0OWNiOTgwYzhmZmM1YWYxMGE3MTVlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBA
CisyMDExLTA1LTE3ICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlNvY2tldDogVW5p
bmxpbmUgbWV0aG9kcyBpbiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwOTQ1CisK
KyAgICAgICAgQWRkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAu
IFVuaW5saW5lIG1ldGhvZHMgaW4gdGhpcyBjbGFzcyBhbmQKKyAgICAgICAgbW92ZSB0aGVzZSBk
ZWZpbml0aW9ucyBpbnRvIC5jcHAgaW4gb3JkZXIgdG8gYWxsb3cgZnVydGhlciBtb2RpZmljYXRp
b25zIGluIHRoaXMgY2xhc3MuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhcyB0aGlzIGlzIGp1
c3QgcmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBH
TlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBX
ZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAg
ICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcjo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKToKKyAgICAgICAg
KFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6Y3JlYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlcjo6Y2xlYXJTeW5jTWV0aG9kRG9uZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnNldFN5bmNNZXRob2REb25lKToKKyAgICAg
ICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c3lu
Y01ldGhvZERvbmUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyOjpzZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c2V0U2VudCk6CisgICAgICAgIChXZWJDb3JlOjpU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmJ1ZmZlcmVkQW1vdW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6c2V0QnVmZmVyZWRBbW91bnQpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpjbGVhckNsaWVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENvbm5lY3QpOgor
ICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c3VzcGVuZCk6CisgICAgICAg
IChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnJlc3Vt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI6OnByb2Nlc3NQZW5kaW5nRXZlbnRzKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oOgorCiAyMDExLTA1LTE2ICBZdXRh
IEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtl
bnQgVGFtdXJhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggY2U4NWRlZGYxYzFl
YzQ5NDBmNjRiMjQwYzIzYTA4ZGUwNjNlM2JhMy4uZmJlNTcwNTllODkzOTA3ZDlhODU1MzY3ZTdm
YWNiZGIxZjI2NmZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlz
dC5hbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNTU2LDYg
KzM1NTYsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkda
b29tRXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oIFwKIAlTb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwIFwKIAlTb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3Jh
cHBlci5oIFwKIAlTb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0ZjdjMGUyNWNmM2FhNmU1NjU3YTk5
ZjliOGViOWQ1NjhmNmIwYmEzLi4zOTQ5NGMwNDIxNmJlYTNmMGFiMTllOGRiZmY0MGRlNjY2MzYx
ZjVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC01OTcyLDYgKzU5NzIsNyBAQAogICAgICAgICAgICAg
J3dlYnNvY2tldHMvQ2xvc2VFdmVudC5oJywKICAgICAgICAgICAgICd3ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCcsCiAgICAgICAgICAgICAnd2Vic29ja2V0cy9UaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oJywKKyAgICAgICAgICAgICd3ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAnLAogICAgICAgICAgICAgJ3dl
YnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgnLAogICAg
ICAgICAgICAgJ3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCcsCiAgICAgICAgICAgICAnd2Vic29j
a2V0cy9XZWJTb2NrZXQuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBy
byBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDdmZWMwOTNiYTJlZDUzZWVjYzhj
ZDYzYTg4OWE4NGU0YTU3N2FiMDUuLjM2ZWJjYzJhNTdjNGU5YWY2ZTk2NWU3ZDJiYzIyZDRkZjE3
OGMzY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0zMzk0LDYgKzMzOTQsNyBAQCBjb250YWlucyhERUZJ
TkVTLCBFTkFCTEVfV0VCX1NPQ0tFVFM9MSkgewogICAgICAgICB3ZWJzb2NrZXRzL1dlYlNvY2tl
dEhhbmRzaGFrZVJlcXVlc3QuY3BwIFwKICAgICAgICAgd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5k
c2hha2VSZXNwb25zZS5jcHAgXAogICAgICAgICB3ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmNwcCBcCisgICAgICAgIHdlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0
U3RyZWFtRXJyb3JCYXNlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtSGFuZGxlQmFzZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1NvY2tldFN0
cmVhbUhhbmRsZVF0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvagppbmRleCA5MGZkMTcxNjQ4OWNjNjczOTNlOGRjNjI0MDFmNThkYjU4N2E4MmMxLi44
Y2FkNmNiNDQwZTRiZWM0ZmIyODVmNTkxMWI3YjMxNDk1NmYzNzhlIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjcxODYsNiArNjcxODYsMTAg
QEAKIAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd2Vi
c29ja2V0c1xUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwIgorCQkJ
CT4KKwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlx3ZWJzb2NrZXRz
XFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIgogCQkJCT4KIAkJCTwv
RmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCBmMTE2YjJjNWYxMDlkZDNjMzcxOWZhNDkzZjU4NmIzZGYzMjQ5MjFhLi43N2Rm
NWE4MTM0YmI3MmEwMDYyM2JlMWFlNWEwYjUxNGE3NDg4OGJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjI0LDYgKzEyMjQs
NyBAQAogCQk1MTBENEE0RTEwMzE3N0EyMDA0OUVBNTQgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEE0NzEw
MzE3N0EyMDA0OUVBNTQgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07CiAJCTUxMEQ0QTRG
MTAzMTc3QTIwMDQ5RUE1NCAvKiBXZWJTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEE0ODEwMzE3N0EyMDA0OUVBNTQgLyog
V2ViU29ja2V0Q2hhbm5lbC5oICovOyB9OwogCQk1MTBENEE1MDEwMzE3N0EyMDA0OUVBNTQgLyog
V2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTEwRDRBNDkxMDMxNzdBMjAwNDlFQTU0IC8qIFdlYlNvY2tldENoYW5u
ZWxDbGllbnQuaCAqLzsgfTsKKwkJNTEwRjA3OUIxMUZFRTlDMDAwQjhFRTQ5IC8qIFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGMDc4MTExRkVCRTc1MDBCOEVFNDkgLyogVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcCAqLzsgfTsKIAkJNTExMjI0
NzIxMENGQjhDNjAwODA5OUQ3IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTIyNDcxMTBDRkI4
QzYwMDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07CiAJCTUx
MTIyNDc0MTBDRkI4RDgwMDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMjI0NzMxMENG
QjhEODAwODA5OUQ3IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggKi87IH07CiAJCTUx
MTIyNDc2MTBDRkI4RTgwMDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDUxMTIyNDc1MTBDRkI4RTgwMDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENs
aWVudFdyYXBwZXIuaCAqLzsgfTsKQEAgLTc3NDYsNiArNzc0Nyw3IEBACiAJCTUxMEQ0QTQ3MTAz
MTc3QTIwMDQ5RUE1NCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNvY2tldENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTBENEE0ODEwMzE3N0EyMDA0OUVBNTQgLyogV2ViU29ja2V0Q2hhbm5l
bC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTb2NrZXRDaGFubmVsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTQ5MTAzMTc3QTIwMDQ5RUE1NCAv
KiBXZWJTb2NrZXRDaGFubmVsQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdlYlNvY2tldENoYW5uZWxDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNTEwRjA3ODExMUZFQkU3NTAwQjhFRTQ5IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
Q2xpZW50V3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MTEyMjQ3MTEwQ0ZCOEM2MDA4MDk5RDcgLyogVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MTEyMjQ3MzEwQ0ZCOEQ4MDA4MDk5RDcgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMjI0NzUxMENGQjhF
ODAwODA5OUQ3IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzODA5LDYg
KzEzODExLDcgQEAKIAkJCQk1MTEyMjQ3MTEwQ0ZCOEM2MDA4MDk5RDcgLyogVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwICovLAogCQkJCTUxMTIyNDczMTBDRkI4RDgwMDgwOTlENyAvKiBU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oICovLAogCQkJCTUxMTIyNDc1MTBDRkI4RTgwMDgw
OTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCAqLywKKwkJ
CQk1MTBGMDc4MTExRkVCRTc1MDBCOEVFNDkgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyLmNwcCAqLywKIAkJCQk1MThBMzRCRTEwMjZDODMxMDAxQjY4OTYgLyogV2Vi
U29ja2V0LmNwcCAqLywKIAkJCQk1MThBMzRCRjEwMjZDODMxMDAxQjY4OTYgLyogV2ViU29ja2V0
LmggKi8sCiAJCQkJNTE4QTM0QzAxMDI2QzgzMTAwMUI2ODk2IC8qIFdlYlNvY2tldC5pZGwgKi8s
CkBAIC0yNTM0Miw2ICsyNTM0NSw3IEBACiAJCQkJOTc2RDZDOTQxMjJCOEEzRDAwMUZEMUY3IC8q
IFRocmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEI5MDU2MUUw
RjI1N0U5MzAwOTVGRjZBIC8qIFRocmVhZGFibGVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTExMjI0NzIxMENGQjhDNjAwODA5OUQ3IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUxMEYwNzlCMTFGRUU5QzAwMEI4RUU0OSAvKiBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTFERjZEODAwQjkyQTE4RTAwQzJEQzg1IC8qIFRocmVhZENoZWNrLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRTFGRjU3QTYwRjAxMjU2QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMTg1QkNGMjgwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRp
bWVycy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNv
Y2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFw
cGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43ZjY5NjE4ZTRiYmM5MGUyNWJlMGNiMjFiOGE2NGM1MzRiNWU2
NzI2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCkBAIC0wLDAgKzEsMTU2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisg
KiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCisjaW5jbHVkZSAiVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgiCisKKyNpbmNsdWRlICJXZWJT
b2NrZXRDaGFubmVsQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworCitUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXI6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcihXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3N5bmNN
ZXRob2REb25lKGZhbHNlKQorICAgICwgbV9zZW50KGZhbHNlKQorICAgICwgbV9idWZmZXJlZEFt
b3VudCgwKQorICAgICwgbV9zdXNwZW5kZWQoZmFsc2UpCisgICAgLCBtX3BlbmRpbmdDb25uZWN0
ZWQoZmFsc2UpCisgICAgLCBtX3BlbmRpbmdDbG9zZWQoZmFsc2UpCit7Cit9CisKK1Bhc3NSZWZQ
dHI8VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiBUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmNyZWF0ZShXZWJTb2NrZXRDaGFubmVsQ2xpZW50
KiBjbGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXIoY2xpZW50KSk7Cit9CisKK3ZvaWQgVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpjbGVhclN5bmNNZXRob2REb25lKCkKK3sKKyAgICBt
X3N5bmNNZXRob2REb25lID0gZmFsc2U7Cit9CisKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyOjpzZXRTeW5jTWV0aG9kRG9uZSgpCit7CisgICAgbV9zeW5jTWV0
aG9kRG9uZSA9IHRydWU7Cit9CisKK2Jvb2wgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyOjpzeW5jTWV0aG9kRG9uZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3luY01l
dGhvZERvbmU7Cit9CisKK2Jvb2wgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFw
cGVyOjpzZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZW50OworfQorCit2b2lkIFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c2V0U2VudChib29sIHNlbnQpCit7
CisgICAgbV9zZW50ID0gc2VudDsKKyAgICBtX3N5bmNNZXRob2REb25lID0gdHJ1ZTsKK30KKwor
dW5zaWduZWQgbG9uZyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmJ1
ZmZlcmVkQW1vdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9idWZmZXJlZEFtb3VudDsKK30K
Kwordm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnNldEJ1ZmZl
cmVkQW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpCit7CisgICAgbV9idWZmZXJl
ZEFtb3VudCA9IGJ1ZmZlcmVkQW1vdW50OworICAgIG1fc3luY01ldGhvZERvbmUgPSB0cnVlOwor
fQorCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6Y2xlYXJD
bGllbnQoKQoreworICAgIG1fY2xpZW50ID0gMDsKK30KKwordm9pZCBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENvbm5lY3QoKQoreworICAgIG1fcGVuZGluZ0Nv
bm5lY3RlZCA9IHRydWU7CisgICAgaWYgKCFtX3N1c3BlbmRlZCkKKyAgICAgICAgcHJvY2Vzc1Bl
bmRpbmdFdmVudHMoKTsKK30KKwordm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAg
ICBtX3BlbmRpbmdNZXNzYWdlcy5hcHBlbmQobWVzc2FnZSk7CisgICAgaWYgKCFtX3N1c3BlbmRl
ZCkKKyAgICAgICAgcHJvY2Vzc1BlbmRpbmdFdmVudHMoKTsKK30KKwordm9pZCBUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5o
YW5kbGVkQnVmZmVyZWRBbW91bnQpCit7CisgICAgbV9wZW5kaW5nQ2xvc2VkID0gdHJ1ZTsKKyAg
ICBtX2J1ZmZlcmVkQW1vdW50ID0gdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQ7CisgICAgaWYgKCFt
X3N1c3BlbmRlZCkKKyAgICAgICAgcHJvY2Vzc1BlbmRpbmdFdmVudHMoKTsKK30KKwordm9pZCBU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnN1c3BlbmQoKQoreworICAg
IG1fc3VzcGVuZGVkID0gdHJ1ZTsKK30KKwordm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5l
bENsaWVudFdyYXBwZXI6OnJlc3VtZSgpCit7CisgICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKKyAg
ICBwcm9jZXNzUGVuZGluZ0V2ZW50cygpOworfQorCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsQ2xpZW50V3JhcHBlcjo6cHJvY2Vzc1BlbmRpbmdFdmVudHMoKQoreworICAgIEFTU0VS
VCghbV9zdXNwZW5kZWQpOworICAgIGlmIChtX3BlbmRpbmdDb25uZWN0ZWQpIHsKKyAgICAgICAg
bV9wZW5kaW5nQ29ubmVjdGVkID0gZmFsc2U7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAg
ICAgICAgIG1fY2xpZW50LT5kaWRDb25uZWN0KCk7CisgICAgfQorCisgICAgVmVjdG9yPFN0cmlu
Zz4gbWVzc2FnZXM7CisgICAgbWVzc2FnZXMuc3dhcChtX3BlbmRpbmdNZXNzYWdlcyk7CisgICAg
Zm9yIChWZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1lc3NhZ2VzLmJlZ2lu
KCk7IGl0ZXIgIT0gbWVzc2FnZXMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBpZiAobV9jbGll
bnQpCisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoKml0ZXIpOworICAg
IH0KKworICAgIGlmIChtX3BlbmRpbmdDbG9zZWQpIHsKKyAgICAgICAgbV9wZW5kaW5nQ2xvc2Vk
ID0gZmFsc2U7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5k
aWRDbG9zZShtX2J1ZmZlcmVkQW1vdW50KTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1Ro
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAppbmRl
eCA2ODNlZTg0MGMwMWViMDQ2MzYyYTAwYzM2ZTZhNjBjNDEzNTBhYzI4Li42Njk1MmMxMTUyOGI3
YTdjMmMzZjE0OGM2M2Q1MGZhNjI4MDM1MzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdv
b2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQpAQCAtMzQsMTI3ICszNCw0MSBAQAogI2lmIEVOQUJMRShXRUJfU09DS0VUUykK
IAogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5l
bENsaWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NS
ZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFdlYlNvY2tldENoYW5uZWxDbGll
bnQ7CisKIGNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IGNyZWF0ZShXZWJTb2NrZXRDaGFubmVsQ2xpZW50
KiBjbGllbnQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcihjbGllbnQpKTsKLSAgICB9Ci0KLSAgICB2b2lk
IGNsZWFyU3luY01ldGhvZERvbmUoKQotICAgIHsKLSAgICAgICAgbV9zeW5jTWV0aG9kRG9uZSA9
IGZhbHNlOwotICAgIH0KLSAgICB2b2lkIHNldFN5bmNNZXRob2REb25lKCkKLSAgICB7Ci0gICAg
ICAgIG1fc3luY01ldGhvZERvbmUgPSB0cnVlOwotICAgIH0KLQotICAgIGJvb2wgc3luY01ldGhv
ZERvbmUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc3luY01ldGhvZERvbmU7Ci0g
ICAgfQotCi0gICAgYm9vbCBzZW50KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX3Nl
bnQ7Ci0gICAgfQotICAgIHZvaWQgc2V0U2VudChib29sIHNlbnQpCi0gICAgewotICAgICAgICBt
X3NlbnQgPSBzZW50OwotICAgICAgICBtX3N5bmNNZXRob2REb25lID0gdHJ1ZTsKLSAgICB9Ci0K
LSAgICB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3QKLSAgICB7Ci0gICAgICAg
IHJldHVybiBtX2J1ZmZlcmVkQW1vdW50OwotICAgIH0KLSAgICB2b2lkIHNldEJ1ZmZlcmVkQW1v
dW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpCi0gICAgewotICAgICAgICBtX2J1ZmZl
cmVkQW1vdW50ID0gYnVmZmVyZWRBbW91bnQ7Ci0gICAgICAgIG1fc3luY01ldGhvZERvbmUgPSB0
cnVlOwotICAgIH0KLQotICAgIHZvaWQgY2xlYXJDbGllbnQoKQotICAgIHsKLSAgICAgICAgbV9j
bGllbnQgPSAwOwotICAgIH0KLQotICAgIHZvaWQgZGlkQ29ubmVjdCgpCi0gICAgewotICAgICAg
ICBtX3BlbmRpbmdDb25uZWN0ZWQgPSB0cnVlOwotICAgICAgICBpZiAoIW1fc3VzcGVuZGVkKQot
ICAgICAgICAgICAgcHJvY2Vzc1BlbmRpbmdFdmVudHMoKTsKLSAgICB9Ci0KLSAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbXNnKQotICAgIHsKLSAgICAgICAgbV9wZW5k
aW5nTWVzc2FnZXMuYXBwZW5kKG1zZyk7Ci0gICAgICAgIGlmICghbV9zdXNwZW5kZWQpCi0gICAg
ICAgICAgICBwcm9jZXNzUGVuZGluZ0V2ZW50cygpOwotICAgIH0KLQotICAgIHZvaWQgZGlkQ2xv
c2UodW5zaWduZWQgbG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCkKLSAgICB7Ci0gICAgICAg
IG1fcGVuZGluZ0Nsb3NlZCA9IHRydWU7Ci0gICAgICAgIG1fYnVmZmVyZWRBbW91bnQgPSB1bmhh
bmRsZWRCdWZmZXJlZEFtb3VudDsKLSAgICAgICAgaWYgKCFtX3N1c3BlbmRlZCkKLSAgICAgICAg
ICAgIHByb2Nlc3NQZW5kaW5nRXZlbnRzKCk7Ci0gICAgfQotCi0gICAgdm9pZCBzdXNwZW5kKCkK
LSAgICB7Ci0gICAgICAgIG1fc3VzcGVuZGVkID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICB2b2lkIHJl
c3VtZSgpCi0gICAgewotICAgICAgICBtX3N1c3BlbmRlZCA9IGZhbHNlOwotICAgICAgICBwcm9j
ZXNzUGVuZGluZ0V2ZW50cygpOwotICAgIH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IGNyZWF0ZShXZWJTb2NrZXRDaGFubmVs
Q2xpZW50Kik7CisKKyAgICB2b2lkIGNsZWFyU3luY01ldGhvZERvbmUoKTsKKyAgICB2b2lkIHNl
dFN5bmNNZXRob2REb25lKCk7CisgICAgYm9vbCBzeW5jTWV0aG9kRG9uZSgpIGNvbnN0OworCisg
ICAgYm9vbCBzZW50KCkgY29uc3Q7CisgICAgdm9pZCBzZXRTZW50KGJvb2wpOworCisgICAgdW5z
aWduZWQgbG9uZyBidWZmZXJlZEFtb3VudCgpIGNvbnN0OworICAgIHZvaWQgc2V0QnVmZmVyZWRB
bW91bnQodW5zaWduZWQgbG9uZyk7CisKKyAgICB2b2lkIGNsZWFyQ2xpZW50KCk7CisKKyAgICB2
b2lkIGRpZENvbm5lY3QoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmlu
ZyYgbWVzc2FnZSk7CisgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1
ZmZlcmVkQW1vdW50KTsKKworICAgIHZvaWQgc3VzcGVuZCgpOworICAgIHZvaWQgcmVzdW1lKCk7
CiAKIHByb3RlY3RlZDoKLSAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIoV2ViU29ja2V0Q2hhbm5lbENsaWVudCogY2xpZW50KQotICAgICAgICA6IG1fY2xpZW50KGNs
aWVudCkKLSAgICAgICAgLCBtX3N5bmNNZXRob2REb25lKGZhbHNlKQotICAgICAgICAsIG1fc2Vu
dChmYWxzZSkKLSAgICAgICAgLCBtX2J1ZmZlcmVkQW1vdW50KDApCi0gICAgICAgICwgbV9zdXNw
ZW5kZWQoZmFsc2UpCi0gICAgICAgICwgbV9wZW5kaW5nQ29ubmVjdGVkKGZhbHNlKQotICAgICAg
ICAsIG1fcGVuZGluZ0Nsb3NlZChmYWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBwcm9j
ZXNzUGVuZGluZ0V2ZW50cygpCi0gICAgewotICAgICAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsK
LSAgICAgICAgaWYgKG1fcGVuZGluZ0Nvbm5lY3RlZCkgewotICAgICAgICAgICAgbV9wZW5kaW5n
Q29ubmVjdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAg
ICAgICAgbV9jbGllbnQtPmRpZENvbm5lY3QoKTsKLSAgICAgICAgfQotCi0gICAgICAgIFZlY3Rv
cjxTdHJpbmc+IG1lc3NhZ2VzOwotICAgICAgICBtZXNzYWdlcy5zd2FwKG1fcGVuZGluZ01lc3Nh
Z2VzKTsKLSAgICAgICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9
IG1lc3NhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gbWVzc2FnZXMuZW5kKCk7ICsraXRlcikgewotICAg
ICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlTWVzc2FnZSgqaXRlcik7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobV9wZW5kaW5nQ2xv
c2VkKSB7Ci0gICAgICAgICAgICBtX3BlbmRpbmdDbG9zZWQgPSBmYWxzZTsKLSAgICAgICAgICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkQ2xvc2UobV9idWZm
ZXJlZEFtb3VudCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyKFdlYlNvY2tldENoYW5uZWxDbGllbnQqKTsKKworICAgIHZvaWQg
cHJvY2Vzc1BlbmRpbmdFdmVudHMoKTsKIAogICAgIFdlYlNvY2tldENoYW5uZWxDbGllbnQqIG1f
Y2xpZW50OwogICAgIGJvb2wgbV9zeW5jTWV0aG9kRG9uZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>93750</attachid>
            <date>2011-05-17 01:56:26 -0700</date>
            <delta_ts>2011-05-17 04:59:37 -0700</delta_ts>
            <desc>Ready to commit</desc>
            <filename>bug-60945-20110517175624.patch</filename>
            <type>text/plain</type>
            <size>19014</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODY2NTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMDlmMGFm
NGMyMTYwYzU1Y2Q3NDYyNmE5NDg0MjExODkzNDQ4MGFkNy4uMzJkZWM3ODhiN2IyOGRkNDAyNzJj
NDA0YzUzYTZmNDgzNjU5MjNjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEzNDgsNiArMTM0
OCw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBzdG9yYWdlL1N0b3JhZ2VUcmFja2VyLmNw
cAogCiAgICAgd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKKyAgICB3
ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAKICAg
ICB3ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKICAgICB3ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuY3BwCiAgICAgd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5k
ZXggZjJlOGE3MWJjODVmMDliNWRkYjk2NGU4OTA2NmI2Mzg0MTZjZDY4OC4uNjRmMmI4NWRiMjI1
YzA2ZmM4ZGQ5ZWZkYzUyZTIxMmMxYzJmMGE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBA
CisyMDExLTA1LTE3ICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgorCisgICAgICAgIFdlYlNvY2tldDogVW5pbmxp
bmUgbWV0aG9kcyBpbiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYwOTQ1CisKKyAg
ICAgICAgQWRkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAuIFVu
aW5saW5lIG1ldGhvZHMgaW4gdGhpcyBjbGFzcyBhbmQKKyAgICAgICAgbW92ZSB0aGVzZSBkZWZp
bml0aW9ucyBpbnRvIC5jcHAgaW4gb3JkZXIgdG8gYWxsb3cgZnVydGhlciBtb2RpZmljYXRpb25z
IGluIHRoaXMgY2xhc3MuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhcyB0aGlzIGlzIGp1c3Qg
cmVmYWN0b3JpbmcuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBHTlVt
YWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJD
b3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwOiBBZGRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyKToKKyAgICAgICAgKFdl
YkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
cjo6Y2xlYXJTeW5jTWV0aG9kRG9uZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnNldFN5bmNNZXRob2REb25lKToKKyAgICAgICAg
KFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c3luY01l
dGhvZERvbmUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxD
bGllbnRXcmFwcGVyOjpzZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c2V0U2VudCk6CisgICAgICAgIChXZWJDb3JlOjpUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmJ1ZmZlcmVkQW1vdW50KToKKyAg
ICAgICAgKFdlYkNvcmU6OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6
c2V0QnVmZmVyZWRBbW91bnQpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyOjpjbGVhckNsaWVudCk6CisgICAgICAgIChXZWJDb3JlOjpU
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENvbm5lY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpk
aWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c3VzcGVuZCk6CisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnJlc3VtZSk6
CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXI6OnByb2Nlc3NQZW5kaW5nRXZlbnRzKToKKyAgICAgICAgKiB3ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oOgorCiAyMDExLTA1LTE2ICBZdXRhIEtp
dGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQg
VGFtdXJhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBi
L1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggY2U4NWRlZGYxYzFlYzQ5
NDBmNjRiMjQwYzIzYTA4ZGUwNjNlM2JhMy4uZmJlNTcwNTllODkzOTA3ZDlhODU1MzY3ZTdmYWNi
ZGIxZjI2NmZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC0zNTU2LDYgKzM1
NTYsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdab29t
RXZlbnQuaCBcCiAJU291cmNlL1dlYkNvcmUvV2ViQ29yZVByZWZpeC5oIFwKIAlTb3VyY2UvV2Vi
Q29yZS93ZWJzb2NrZXRzL0Nsb3NlRXZlbnQuaCBcCisJU291cmNlL1dlYkNvcmUvd2Vic29ja2V0
cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwIFwKIAlTb3VyY2Uv
V2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
ci5oIFwKIAlTb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsLmNwcCBcCiAJU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5oIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA0ZjdjMGUyNWNmM2FhNmU1NjU3YTk5Zjli
OGViOWQ1NjhmNmIwYmEzLi4zOTQ5NGMwNDIxNmJlYTNmMGFiMTllOGRiZmY0MGRlNjY2MzYxZjVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5neXBpCkBAIC01OTcyLDYgKzU5NzIsNyBAQAogICAgICAgICAgICAgJ3dl
YnNvY2tldHMvQ2xvc2VFdmVudC5oJywKICAgICAgICAgICAgICd3ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcCcsCiAgICAgICAgICAgICAnd2Vic29ja2V0cy9UaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5oJywKKyAgICAgICAgICAgICd3ZWJzb2NrZXRzL1RocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAnLAogICAgICAgICAgICAgJ3dlYnNv
Y2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgnLAogICAgICAg
ICAgICAgJ3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCcsCiAgICAgICAgICAgICAnd2Vic29ja2V0
cy9XZWJTb2NrZXQuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDdmZWMwOTNiYTJlZDUzZWVjYzhjZDYz
YTg4OWE4NGU0YTU3N2FiMDUuLjM2ZWJjYzJhNTdjNGU5YWY2ZTk2NWU3ZDJiYzIyZDRkZjE3OGMz
Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUucHJvCkBAIC0zMzk0LDYgKzMzOTQsNyBAQCBjb250YWlucyhERUZJTkVT
LCBFTkFCTEVfV0VCX1NPQ0tFVFM9MSkgewogICAgICAgICB3ZWJzb2NrZXRzL1dlYlNvY2tldEhh
bmRzaGFrZVJlcXVlc3QuY3BwIFwKICAgICAgICAgd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hh
a2VSZXNwb25zZS5jcHAgXAogICAgICAgICB3ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsLmNwcCBcCisgICAgICAgIHdlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3Ry
ZWFtRXJyb3JCYXNlLmNwcCBcCiAgICAgICAgIHBsYXRmb3JtL25ldHdvcmsvU29ja2V0U3RyZWFt
SGFuZGxlQmFzZS5jcHAgXAogICAgICAgICBwbGF0Zm9ybS9uZXR3b3JrL3F0L1NvY2tldFN0cmVh
bUhhbmRsZVF0LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ov
V2ViQ29yZS52Y3Byb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZj
cHJvagppbmRleCA5MGZkMTcxNjQ4OWNjNjczOTNlOGRjNjI0MDFmNThkYjU4N2E4MmMxLi44Y2Fk
NmNiNDQwZTRiZWM0ZmIyODVmNTkxMWI3YjMxNDk1NmYzNzhlIDEwMDc1NQotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNjcxODYsNiArNjcxODYsMTAgQEAK
IAkJCQk+CiAJCQk8L0ZpbGU+CiAJCQk8RmlsZQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cd2Vic29j
a2V0c1xUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwIgorCQkJCT4K
KwkJCTwvRmlsZT4KKwkJCTxGaWxlCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlx3ZWJzb2NrZXRzXFRo
cmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIgogCQkJCT4KIAkJCTwvRmls
ZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBmMTE2YjJjNWYxMDlkZDNjMzcxOWZhNDkzZjU4NmIzZGYzMjQ5MjFhLi43N2RmNWE4
MTM0YmI3MmEwMDYyM2JlMWFlNWEwYjUxNGE3NDg4OGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjI0LDYgKzEyMjQsNyBA
QAogCQk1MTBENEE0RTEwMzE3N0EyMDA0OUVBNTQgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEE0NzEwMzE3
N0EyMDA0OUVBNTQgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07CiAJCTUxMEQ0QTRGMTAz
MTc3QTIwMDQ5RUE1NCAvKiBXZWJTb2NrZXRDaGFubmVsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBENEE0ODEwMzE3N0EyMDA0OUVBNTQgLyogV2Vi
U29ja2V0Q2hhbm5lbC5oICovOyB9OwogCQk1MTBENEE1MDEwMzE3N0EyMDA0OUVBNTQgLyogV2Vi
U29ja2V0Q2hhbm5lbENsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNTEwRDRBNDkxMDMxNzdBMjAwNDlFQTU0IC8qIFdlYlNvY2tldENoYW5uZWxD
bGllbnQuaCAqLzsgfTsKKwkJNTEwRjA3OUIxMUZFRTlDMDAwQjhFRTQ5IC8qIFRocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTBGMDc4MTExRkVCRTc1MDBCOEVFNDkgLyogVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcCAqLzsgfTsKIAkJNTExMjI0NzIx
MENGQjhDNjAwODA5OUQ3IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxMTIyNDcxMTBDRkI4QzYw
MDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAgKi87IH07CiAJCTUxMTIy
NDc0MTBDRkI4RDgwMDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTExMjI0NzMxMENGQjhE
ODAwODA5OUQ3IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggKi87IH07CiAJCTUxMTIy
NDc2MTBDRkI4RTgwMDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUx
MTIyNDc1MTBDRkI4RTgwMDgwOTlENyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVu
dFdyYXBwZXIuaCAqLzsgfTsKQEAgLTc3NDYsNiArNzc0Nyw3IEBACiAJCTUxMEQ0QTQ3MTAzMTc3
QTIwMDQ5RUE1NCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFdlYlNvY2tldENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MTBENEE0ODEwMzE3N0EyMDA0OUVBNTQgLyogV2ViU29ja2V0Q2hhbm5lbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTb2NrZXRDaGFubmVsLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUxMEQ0QTQ5MTAzMTc3QTIwMDQ5RUE1NCAvKiBX
ZWJTb2NrZXRDaGFubmVsQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYlNvY2tldENoYW5uZWxDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NTEwRjA3ODExMUZFQkU3NTAwQjhFRTQ5IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50V3JhcHBlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk1MTEyMjQ3MTEwQ0ZCOEM2MDA4MDk5RDcgLyogVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1MTEyMjQ3MzEwQ0ZCOEQ4MDA4MDk5RDcgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTExMjI0NzUxMENGQjhFODAw
ODA5OUQ3IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENs
aWVudFdyYXBwZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzODA5LDYgKzEz
ODExLDcgQEAKIAkJCQk1MTEyMjQ3MTEwQ0ZCOEM2MDA4MDk5RDcgLyogVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwICovLAogCQkJCTUxMTIyNDczMTBDRkI4RDgwMDgwOTlENyAvKiBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oICovLAogCQkJCTUxMTIyNDc1MTBDRkI4RTgwMDgwOTlE
NyAvKiBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCAqLywKKwkJCQk1
MTBGMDc4MTExRkVCRTc1MDBCOEVFNDkgLyogVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyLmNwcCAqLywKIAkJCQk1MThBMzRCRTEwMjZDODMxMDAxQjY4OTYgLyogV2ViU29j
a2V0LmNwcCAqLywKIAkJCQk1MThBMzRCRjEwMjZDODMxMDAxQjY4OTYgLyogV2ViU29ja2V0Lmgg
Ki8sCiAJCQkJNTE4QTM0QzAxMDI2QzgzMTAwMUI2ODk2IC8qIFdlYlNvY2tldC5pZGwgKi8sCkBA
IC0yNTM0Miw2ICsyNTM0NSw3IEBACiAJCQkJOTc2RDZDOTQxMjJCOEEzRDAwMUZEMUY3IC8qIFRo
cmVhZGFibGVCbG9iUmVnaXN0cnkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMEI5MDU2MUUwRjI1
N0U5MzAwOTVGRjZBIC8qIFRocmVhZGFibGVMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTExMjI0NzIxMENGQjhDNjAwODA5OUQ3IC8qIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTUxMEYwNzlCMTFGRUU5QzAwMEI4RUU0OSAvKiBUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTFERjZEODAwQjkyQTE4RTAwQzJEQzg1IC8qIFRocmVhZENoZWNrLm1tIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTFGRjU3QTYwRjAxMjU2QjAwODkxRUJCIC8qIFRocmVhZEdsb2JhbERhdGEuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMTg1QkNGMjgwRjMyNzlDRTAwMEVBMjYyIC8qIFRocmVhZFRpbWVy
cy5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tl
dHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43ZjY5NjE4ZTRiYmM5MGUyNWJlMGNiMjFiOGE2NGM1MzRiNWU2NzI2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCkBAIC0wLDAgKzEsMTU2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAq
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBk
aXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5v
ciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3Jz
ZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRo
b3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JT
CisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIg
T1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpZiBFTkFCTEUoV0VCX1NPQ0tFVFMpCisjaW5jbHVkZSAiVGhyZWFk
YWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgiCisKKyNpbmNsdWRlICJXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50LmgiCisjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6
OlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcihXZWJTb2NrZXRDaGFubmVs
Q2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NsaWVudChjbGllbnQpCisgICAgLCBtX3N5bmNNZXRo
b2REb25lKGZhbHNlKQorICAgICwgbV9zZW50KGZhbHNlKQorICAgICwgbV9idWZmZXJlZEFtb3Vu
dCgwKQorICAgICwgbV9zdXNwZW5kZWQoZmFsc2UpCisgICAgLCBtX3BlbmRpbmdDb25uZWN0ZWQo
ZmFsc2UpCisgICAgLCBtX3BlbmRpbmdDbG9zZWQoZmFsc2UpCit7Cit9CisKK1Bhc3NSZWZQdHI8
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyPiBUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmNyZWF0ZShXZWJTb2NrZXRDaGFubmVsQ2xpZW50KiBj
bGllbnQpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hh
bm5lbENsaWVudFdyYXBwZXIoY2xpZW50KSk7Cit9CisKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyOjpjbGVhclN5bmNNZXRob2REb25lKCkKK3sKKyAgICBtX3N5
bmNNZXRob2REb25lID0gZmFsc2U7Cit9CisKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyOjpzZXRTeW5jTWV0aG9kRG9uZSgpCit7CisgICAgbV9zeW5jTWV0aG9k
RG9uZSA9IHRydWU7Cit9CisKK2Jvb2wgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyOjpzeW5jTWV0aG9kRG9uZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc3luY01ldGhv
ZERvbmU7Cit9CisKK2Jvb2wgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVy
OjpzZW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9zZW50OworfQorCit2b2lkIFRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6c2V0U2VudChib29sIHNlbnQpCit7Cisg
ICAgbV9zZW50ID0gc2VudDsKKyAgICBtX3N5bmNNZXRob2REb25lID0gdHJ1ZTsKK30KKwordW5z
aWduZWQgbG9uZyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmJ1ZmZl
cmVkQW1vdW50KCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9idWZmZXJlZEFtb3VudDsKK30KKwor
dm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnNldEJ1ZmZlcmVk
QW1vdW50KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpCit7CisgICAgbV9idWZmZXJlZEFt
b3VudCA9IGJ1ZmZlcmVkQW1vdW50OworICAgIG1fc3luY01ldGhvZERvbmUgPSB0cnVlOworfQor
Cit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6Y2xlYXJDbGll
bnQoKQoreworICAgIG1fY2xpZW50ID0gMDsKK30KKwordm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENvbm5lY3QoKQoreworICAgIG1fcGVuZGluZ0Nvbm5l
Y3RlZCA9IHRydWU7CisgICAgaWYgKCFtX3N1c3BlbmRlZCkKKyAgICAgICAgcHJvY2Vzc1BlbmRp
bmdFdmVudHMoKTsKK30KKwordm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKK3sKKyAgICBt
X3BlbmRpbmdNZXNzYWdlcy5hcHBlbmQobWVzc2FnZSk7CisgICAgaWYgKCFtX3N1c3BlbmRlZCkK
KyAgICAgICAgcHJvY2Vzc1BlbmRpbmdFdmVudHMoKTsKK30KKwordm9pZCBUaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OmRpZENsb3NlKHVuc2lnbmVkIGxvbmcgdW5oYW5k
bGVkQnVmZmVyZWRBbW91bnQpCit7CisgICAgbV9wZW5kaW5nQ2xvc2VkID0gdHJ1ZTsKKyAgICBt
X2J1ZmZlcmVkQW1vdW50ID0gdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQ7CisgICAgaWYgKCFtX3N1
c3BlbmRlZCkKKyAgICAgICAgcHJvY2Vzc1BlbmRpbmdFdmVudHMoKTsKK30KKwordm9pZCBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI6OnN1c3BlbmQoKQoreworICAgIG1f
c3VzcGVuZGVkID0gdHJ1ZTsKK30KKwordm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENs
aWVudFdyYXBwZXI6OnJlc3VtZSgpCit7CisgICAgbV9zdXNwZW5kZWQgPSBmYWxzZTsKKyAgICBw
cm9jZXNzUGVuZGluZ0V2ZW50cygpOworfQorCit2b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlcjo6cHJvY2Vzc1BlbmRpbmdFdmVudHMoKQoreworICAgIEFTU0VSVCgh
bV9zdXNwZW5kZWQpOworICAgIGlmIChtX3BlbmRpbmdDb25uZWN0ZWQpIHsKKyAgICAgICAgbV9w
ZW5kaW5nQ29ubmVjdGVkID0gZmFsc2U7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAg
ICAgIG1fY2xpZW50LT5kaWRDb25uZWN0KCk7CisgICAgfQorCisgICAgVmVjdG9yPFN0cmluZz4g
bWVzc2FnZXM7CisgICAgbWVzc2FnZXMuc3dhcChtX3BlbmRpbmdNZXNzYWdlcyk7CisgICAgZm9y
IChWZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1lc3NhZ2VzLmJlZ2luKCk7
IGl0ZXIgIT0gbWVzc2FnZXMuZW5kKCk7ICsraXRlcikgeworICAgICAgICBpZiAobV9jbGllbnQp
CisgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoKml0ZXIpOworICAgIH0K
KworICAgIGlmIChtX3BlbmRpbmdDbG9zZWQpIHsKKyAgICAgICAgbV9wZW5kaW5nQ2xvc2VkID0g
ZmFsc2U7CisgICAgICAgIGlmIChtX2NsaWVudCkKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRD
bG9zZShtX2J1ZmZlcmVkQW1vdW50KTsKKyAgICB9Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAppbmRleCA2
ODNlZTg0MGMwMWViMDQ2MzYyYTAwYzM2ZTZhNjBjNDEzNTBhYzI4Li42Njk1MmMxMTUyOGI3YTdj
MmMzZjE0OGM2M2Q1MGZhNjI4MDM1MzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93ZWJz
b2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2ds
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQpAQCAtMzQsMTI3ICszNCw0MSBAQAogI2lmIEVOQUJMRShXRUJfU09DS0VUUykKIAog
I2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCi0jaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5lbENs
aWVudC5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFdlYlNvY2tldENoYW5uZWxDbGllbnQ7
CisKIGNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlciA6IHB1Ymxp
YyBUaHJlYWRTYWZlUmVmQ291bnRlZDxUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IGNyZWF0ZShXZWJTb2NrZXRDaGFubmVsQ2xpZW50KiBj
bGllbnQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRocmVhZGFibGVXZWJT
b2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcihjbGllbnQpKTsKLSAgICB9Ci0KLSAgICB2b2lkIGNs
ZWFyU3luY01ldGhvZERvbmUoKQotICAgIHsKLSAgICAgICAgbV9zeW5jTWV0aG9kRG9uZSA9IGZh
bHNlOwotICAgIH0KLSAgICB2b2lkIHNldFN5bmNNZXRob2REb25lKCkKLSAgICB7Ci0gICAgICAg
IG1fc3luY01ldGhvZERvbmUgPSB0cnVlOwotICAgIH0KLQotICAgIGJvb2wgc3luY01ldGhvZERv
bmUoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIG1fc3luY01ldGhvZERvbmU7Ci0gICAg
fQotCi0gICAgYm9vbCBzZW50KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX3NlbnQ7
Ci0gICAgfQotICAgIHZvaWQgc2V0U2VudChib29sIHNlbnQpCi0gICAgewotICAgICAgICBtX3Nl
bnQgPSBzZW50OwotICAgICAgICBtX3N5bmNNZXRob2REb25lID0gdHJ1ZTsKLSAgICB9Ci0KLSAg
ICB1bnNpZ25lZCBsb25nIGJ1ZmZlcmVkQW1vdW50KCkgY29uc3QKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBtX2J1ZmZlcmVkQW1vdW50OwotICAgIH0KLSAgICB2b2lkIHNldEJ1ZmZlcmVkQW1vdW50
KHVuc2lnbmVkIGxvbmcgYnVmZmVyZWRBbW91bnQpCi0gICAgewotICAgICAgICBtX2J1ZmZlcmVk
QW1vdW50ID0gYnVmZmVyZWRBbW91bnQ7Ci0gICAgICAgIG1fc3luY01ldGhvZERvbmUgPSB0cnVl
OwotICAgIH0KLQotICAgIHZvaWQgY2xlYXJDbGllbnQoKQotICAgIHsKLSAgICAgICAgbV9jbGll
bnQgPSAwOwotICAgIH0KLQotICAgIHZvaWQgZGlkQ29ubmVjdCgpCi0gICAgewotICAgICAgICBt
X3BlbmRpbmdDb25uZWN0ZWQgPSB0cnVlOwotICAgICAgICBpZiAoIW1fc3VzcGVuZGVkKQotICAg
ICAgICAgICAgcHJvY2Vzc1BlbmRpbmdFdmVudHMoKTsKLSAgICB9Ci0KLSAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbXNnKQotICAgIHsKLSAgICAgICAgbV9wZW5kaW5n
TWVzc2FnZXMuYXBwZW5kKG1zZyk7Ci0gICAgICAgIGlmICghbV9zdXNwZW5kZWQpCi0gICAgICAg
ICAgICBwcm9jZXNzUGVuZGluZ0V2ZW50cygpOwotICAgIH0KLQotICAgIHZvaWQgZGlkQ2xvc2Uo
dW5zaWduZWQgbG9uZyB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCkKLSAgICB7Ci0gICAgICAgIG1f
cGVuZGluZ0Nsb3NlZCA9IHRydWU7Ci0gICAgICAgIG1fYnVmZmVyZWRBbW91bnQgPSB1bmhhbmRs
ZWRCdWZmZXJlZEFtb3VudDsKLSAgICAgICAgaWYgKCFtX3N1c3BlbmRlZCkKLSAgICAgICAgICAg
IHByb2Nlc3NQZW5kaW5nRXZlbnRzKCk7Ci0gICAgfQotCi0gICAgdm9pZCBzdXNwZW5kKCkKLSAg
ICB7Ci0gICAgICAgIG1fc3VzcGVuZGVkID0gdHJ1ZTsKLSAgICB9Ci0KLSAgICB2b2lkIHJlc3Vt
ZSgpCi0gICAgewotICAgICAgICBtX3N1c3BlbmRlZCA9IGZhbHNlOwotICAgICAgICBwcm9jZXNz
UGVuZGluZ0V2ZW50cygpOwotICAgIH0KKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXI+IGNyZWF0ZShXZWJTb2NrZXRDaGFubmVsQ2xp
ZW50Kik7CisKKyAgICB2b2lkIGNsZWFyU3luY01ldGhvZERvbmUoKTsKKyAgICB2b2lkIHNldFN5
bmNNZXRob2REb25lKCk7CisgICAgYm9vbCBzeW5jTWV0aG9kRG9uZSgpIGNvbnN0OworCisgICAg
Ym9vbCBzZW50KCkgY29uc3Q7CisgICAgdm9pZCBzZXRTZW50KGJvb2wpOworCisgICAgdW5zaWdu
ZWQgbG9uZyBidWZmZXJlZEFtb3VudCgpIGNvbnN0OworICAgIHZvaWQgc2V0QnVmZmVyZWRBbW91
bnQodW5zaWduZWQgbG9uZyk7CisKKyAgICB2b2lkIGNsZWFyQ2xpZW50KCk7CisKKyAgICB2b2lk
IGRpZENvbm5lY3QoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYg
bWVzc2FnZSk7CisgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCBsb25nIHVuaGFuZGxlZEJ1ZmZl
cmVkQW1vdW50KTsKKworICAgIHZvaWQgc3VzcGVuZCgpOworICAgIHZvaWQgcmVzdW1lKCk7CiAK
IHByb3RlY3RlZDoKLSAgICBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIo
V2ViU29ja2V0Q2hhbm5lbENsaWVudCogY2xpZW50KQotICAgICAgICA6IG1fY2xpZW50KGNsaWVu
dCkKLSAgICAgICAgLCBtX3N5bmNNZXRob2REb25lKGZhbHNlKQotICAgICAgICAsIG1fc2VudChm
YWxzZSkKLSAgICAgICAgLCBtX2J1ZmZlcmVkQW1vdW50KDApCi0gICAgICAgICwgbV9zdXNwZW5k
ZWQoZmFsc2UpCi0gICAgICAgICwgbV9wZW5kaW5nQ29ubmVjdGVkKGZhbHNlKQotICAgICAgICAs
IG1fcGVuZGluZ0Nsb3NlZChmYWxzZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBwcm9jZXNz
UGVuZGluZ0V2ZW50cygpCi0gICAgewotICAgICAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKLSAg
ICAgICAgaWYgKG1fcGVuZGluZ0Nvbm5lY3RlZCkgewotICAgICAgICAgICAgbV9wZW5kaW5nQ29u
bmVjdGVkID0gZmFsc2U7Ci0gICAgICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICAg
ICAgbV9jbGllbnQtPmRpZENvbm5lY3QoKTsKLSAgICAgICAgfQotCi0gICAgICAgIFZlY3RvcjxT
dHJpbmc+IG1lc3NhZ2VzOwotICAgICAgICBtZXNzYWdlcy5zd2FwKG1fcGVuZGluZ01lc3NhZ2Vz
KTsKLSAgICAgICAgZm9yIChWZWN0b3I8U3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXRlciA9IG1l
c3NhZ2VzLmJlZ2luKCk7IGl0ZXIgIT0gbWVzc2FnZXMuZW5kKCk7ICsraXRlcikgewotICAgICAg
ICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZl
TWVzc2FnZSgqaXRlcik7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAobV9wZW5kaW5nQ2xvc2Vk
KSB7Ci0gICAgICAgICAgICBtX3BlbmRpbmdDbG9zZWQgPSBmYWxzZTsKLSAgICAgICAgICAgIGlm
IChtX2NsaWVudCkKLSAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkQ2xvc2UobV9idWZmZXJl
ZEFtb3VudCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWxDbGllbnRXcmFwcGVyKFdlYlNvY2tldENoYW5uZWxDbGllbnQqKTsKKworICAgIHZvaWQgcHJv
Y2Vzc1BlbmRpbmdFdmVudHMoKTsKIAogICAgIFdlYlNvY2tldENoYW5uZWxDbGllbnQqIG1fY2xp
ZW50OwogICAgIGJvb2wgbV9zeW5jTWV0aG9kRG9uZTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>