<?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>61793</bug_id>
          
          <creation_ts>2011-05-31 11:18:19 -0700</creation_ts>
          <short_desc>Update the behavior of multiple reads for FileReader</short_desc>
          <delta_ts>2011-06-02 15:27:16 -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>WebCore JavaScript</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jian Li">jianli</reporter>
          <assigned_to name="Jian Li">jianli</assigned_to>
          <cc>dimich</cc>
    
    <cc>ericu</cc>
    
    <cc>kinuko</cc>
    
    <cc>levin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>412756</commentid>
    <comment_count>0</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2011-05-31 11:18:19 -0700</bug_when>
    <thetext>We need to update the behavior of multiple reads for FileReader per the latest File API spec: http://dev.w3.org/2006/webapi/FileAPI/#MultipleReads

  The FileReader interface makes available four asynchronous read methods -- readAsArrayBuffer, readAsBinaryString, readAsText, and readAsDataURL, which read files into memory. If multiple concurrent read methods are called on the same FileReader object, user agents MUST throw an OperationNotAllowedException with the NOT_ALLOWED_ERR status code on any of the read methods that occur when readyState = LOADING.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413047</commentid>
    <comment_count>1</comment_count>
      <attachid>95523</attachid>
    <who name="Jian Li">jianli</who>
    <bug_when>2011-05-31 18:12:49 -0700</bug_when>
    <thetext>Created attachment 95523
Proposed Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413918</commentid>
    <comment_count>2</comment_count>
      <attachid>95523</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-06-01 22:33:01 -0700</bug_when>
    <thetext>Comment on attachment 95523
Proposed Patch

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

Looks good. Just a few things to consider before checking in.

The one that concerns me the most is the wording for the error message operationNotAllowedExceptionDescriptions.

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:-23070
&gt; -			developmentRegion = English;

Please fix this (and consider upgrading xcode).

&gt; Source/WebCore/bindings/js/JSDOMBinding.cpp:36
&gt;  #if ENABLE(BLOB) || ENABLE(FILE_SYSTEM)

fwiw, these ifdef sections should come after all other includes (but I know you are just adding to an existing section).

&gt; Source/WebCore/dom/ExceptionCode.cpp:218
&gt; +    &quot;It was not allowed to call multiple concurrent read methods on the same object when the ready state is LOADING.&quot;

How about:
   &quot;A read method was called while another read was in progress.&quot;
or
   &quot;A read method was called while the object was in the LOADING state due to a previous read call.&quot;

&gt; Source/WebCore/fileapi/FileReader.cpp:140
&gt; +    m_loader = adoptPtr(new FileReaderLoader(m_readType, this));

The constructor for FileReaderLoader should be private and have a static create method but of course this is just a move of code.

&gt; Source/WebCore/fileapi/FileReader.h:37
&gt; +#include &quot;ExceptionCode.h&quot;

Out of order. (Should be after EventTarget)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>414503</commentid>
    <comment_count>3</comment_count>
    <who name="Jian Li">jianli</who>
    <bug_when>2011-06-02 15:27:16 -0700</bug_when>
    <thetext>Committed as https://trac.webkit.org/changeset/87961.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95523</attachid>
            <date>2011-05-31 18:12:49 -0700</date>
            <delta_ts>2011-06-01 22:33:01 -0700</delta_ts>
            <desc>Proposed Patch</desc>
            <filename>61793</filename>
            <type>text/plain</type>
            <size>41018</size>
            <attacher name="Jian Li">jianli</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzNDBmYzdjLi4wYjkyMjg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDUt
MzEgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZSB0aGUgYmVoYXZpb3Igb2YgbXVsdGlw
bGUgcmVhZHMgZm9yIEZpbGVSZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTYxNzkzCisKKyAgICAgICAgQWRkZWQgdGVzdCBjYXNlcyB0byBjb3Zl
ciBjYWxsaW5nIHJlYWQgbWV0aG9kcyBtdWx0aXBsZSB0aW1lcy4KKworICAgICAgICAqIGZhc3Qv
ZmlsZXMvcmVhZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2ZpbGVz
L3Jlc291cmNlcy9yZWFkLWZpbGUtdGVzdC1jYXNlcy5qczoKKyAgICAgICAgKGVuc3VyZUluaXRp
YWxpemVkKToKKyAgICAgICAgKHJ1bk5leHRUZXN0KToKKyAgICAgICAgKHRlc3RNdWx0aXBsZVJl
YWRzKToKKyAgICAgICAgKHRlc3RSZXVzZVJlYWRlclN0ZXAxKToKKyAgICAgICAgKHRlc3RSZXVz
ZVJlYWRlclN0ZXAyKToKKyAgICAgICAgKiBmYXN0L2ZpbGVzL3dvcmtlcnMvd29ya2VyLXJlYWQt
ZmlsZS1hc3luYy1leHBlY3RlZC50eHQ6CisKIDIwMTEtMDUtMzEgIEFuZHJlYXMgS2xpbmcgIDxr
bGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQuIFJlYmFzZWxpbmUgTWFjIGFm
dGVyIEpTQy9DYW52YXMgYmluZGluZ3MgY2hhbmdlcy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXMvcmVhZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZmlsZXMvcmVhZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4dAppbmRleCAyODQ2NmQ1Li42YzFh
ZmZhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3JlYWQtZmlsZS1hc3luYy1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy9yZWFkLWZpbGUtYXN5bmMt
ZXhwZWN0ZWQudHh0CkBAIC0xNjcsOCArMTY3LDQ3IEBAIHJlYWR5U3RhdGU6IDIKIHJlc3VsdCBz
aXplOiAzMQogcmVzdWx0OiBkYXRhOnRleHQvcGxhaW47YmFzZTY0LFNHVnNiRzg9CiBSZWNlaXZl
ZCBsb2FkZW5kIGV2ZW50Ci1UZXN0IGNhbGxpbmcgbXVsdGlwbGUgcmVhZCBtZXRob2RzIGFuZCBv
bmx5IGxhc3Qgb25lIGlzIHByb2Nlc3NlZAorVGVzdCBjYWxsaW5nIG11bHRpcGxlIGNvbmN1cnJl
bnQgcmVhZCBtZXRob2RzCiByZWFkeVN0YXRlOiAwCitSZWNlaXZlZCBleGNlcHRpb24gMTogTk9U
X0FMTE9XRURfRVJSCitSZWNlaXZlZCBleGNlcHRpb24gMTogTk9UX0FMTE9XRURfRVJSCitSZWNl
aXZlZCBleGNlcHRpb24gMTogTk9UX0FMTE9XRURfRVJSCitSZWNlaXZlZCBleGNlcHRpb24gMTog
Tk9UX0FMTE9XRURfRVJSCitSZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQKK3JlYWR5U3RhdGU6IDEK
K1JlY2VpdmVkIGxvYWQgZXZlbnQKK3JlYWR5U3RhdGU6IDIKK3Jlc3VsdCBzaXplOiAzMQorcmVz
dWx0OiBkYXRhOnRleHQvcGxhaW47YmFzZTY0LFNHVnNiRzg9CitSZWNlaXZlZCBsb2FkZW5kIGV2
ZW50CitUZXN0IHJlYWRpbmcgYWdhaW4gYWZ0ZXIgc3VjY2Vzc2Z1bCByZWFkCityZWFkeVN0YXRl
OiAwCitSZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQKK3JlYWR5U3RhdGU6IDEKK1JlY2VpdmVkIGxv
YWQgZXZlbnQKK3JlYWR5U3RhdGU6IDIKK3Jlc3VsdCBzaXplOiA1CityZXN1bHQ6IEhlbGxvCitS
ZWNlaXZlZCBsb2FkZW5kIGV2ZW50CityZWFkeVN0YXRlIGFmdGVyIHJlY2FsbGluZyByZWFkIG1l
dGhvZDogMQorcmVzdWx0IGFmdGVyIHJlY2FsbGluZyByZWFkIG1ldGhvZDogCitlcnJvciBhZnRl
ciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IG51bGwKK1JlY2VpdmVkIGxvYWRzdGFydCBldmVudAor
cmVhZHlTdGF0ZTogMQorUmVjZWl2ZWQgbG9hZCBldmVudAorcmVhZHlTdGF0ZTogMgorcmVzdWx0
IHNpemU6IDMxCityZXN1bHQ6IGRhdGE6dGV4dC9wbGFpbjtiYXNlNjQsU0dWc2JHOD0KK1JlY2Vp
dmVkIGxvYWRlbmQgZXZlbnQKK1Rlc3QgcmVhZGluZyBhZ2FpbiBhZnRlciBmYWlsZWQgcmVhZAor
cmVhZHlTdGF0ZTogMAorUmVjZWl2ZWQgZXJyb3IgZXZlbnQKK3JlYWR5U3RhdGU6IDIKK2Vycm9y
IGNvZGU6IDEKK1JlY2VpdmVkIGxvYWRlbmQgZXZlbnQKK3JlYWR5U3RhdGUgYWZ0ZXIgcmVjYWxs
aW5nIHJlYWQgbWV0aG9kOiAxCityZXN1bHQgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAK
K2Vycm9yIGFmdGVyIHJlY2FsbGluZyByZWFkIG1ldGhvZDogbnVsbAogUmVjZWl2ZWQgbG9hZHN0
YXJ0IGV2ZW50CiByZWFkeVN0YXRlOiAxCiBSZWNlaXZlZCBsb2FkIGV2ZW50CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2ZpbGVzL3Jlc291cmNlcy9yZWFkLWZpbGUtdGVzdC1jYXNlcy5q
cyBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvcmVzb3VyY2VzL3JlYWQtZmlsZS10ZXN0LWNhc2Vz
LmpzCmluZGV4IDM4ZWUxMjAuLjBhYmE5MjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZmlsZXMvcmVzb3VyY2VzL3JlYWQtZmlsZS10ZXN0LWNhc2VzLmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZmlsZXMvcmVzb3VyY2VzL3JlYWQtZmlsZS10ZXN0LWNhc2VzLmpzCkBAIC0xOSwxMiAr
MTksMjkgQEAgdmFyIHRlc3RDYXNlcyA9IFsKICAgICAidGVzdFJlYWRpbmdVVEYxNkJFQk9NRW5j
b2RlZEZpbGVBc1RleHRXaXRoVVRGOEVuY29kaW5nIiwKICAgICAidGVzdFJlYWRpbmdVVEYxNkJF
Qk9NRW5jb2RlZEZpbGVBc1RleHRXaXRoSW52YWxpZEVuY29kaW5nIiwKICAgICAidGVzdFJlYWRp
bmdVVEY4RW5jb2RlZEZpbGVBc0RhdGFVUkwiLAorXTsKK3ZhciBhc3luY1Rlc3RDYXNlcyA9IFsK
ICAgICAidGVzdE11bHRpcGxlUmVhZHMiLAorICAgICJ0ZXN0UmVhZEFnYWluQWZ0ZXJTdWNjZXNz
ZnVsUmVhZFN0ZXAxIiwKKyAgICAidGVzdFJlYWRBZ2FpbkFmdGVyU3VjY2Vzc2Z1bFJlYWRTdGVw
MiIsCisgICAgInRlc3RSZWFkQWdhaW5BZnRlckZhaWxlZFJlYWRTdGVwMSIsCisgICAgInRlc3RS
ZWFkQWdhaW5BZnRlckZhaWxlZFJlYWRTdGVwMiIKIF07CiB2YXIgdGVzdEluZGV4ID0gMDsKK3Zh
ciBpbml0aWFsaXplZCA9IGZhbHNlOworCitmdW5jdGlvbiBlbnN1cmVJbml0aWFsaXplZCgpCit7
CisgICAgaWYgKGluaXRpYWxpemVkKQorICAgICAgICByZXR1cm47CisgICAgaW5pdGlhbGl6ZWQg
PSB0cnVlOworICAgIGlmIChpc1JlYWRBc0FzeW5jKCkpCisgICAgICAgIHRlc3RDYXNlcyA9IHRl
c3RDYXNlcy5jb25jYXQoYXN5bmNUZXN0Q2FzZXMpOworfQogCiBmdW5jdGlvbiBydW5OZXh0VGVz
dCh0ZXN0RmlsZXMpCiB7CisgICAgZW5zdXJlSW5pdGlhbGl6ZWQoKTsKICAgICBpZiAodGVzdElu
ZGV4IDwgdGVzdENhc2VzLmxlbmd0aCkgewogICAgICAgICB0ZXN0SW5kZXgrKzsKICAgICAgICAg
c2VsZlt0ZXN0Q2FzZXNbdGVzdEluZGV4IC0gMV1dKHRlc3RGaWxlcyk7CkBAIC0xNTUsMTYgKzE3
Miw2MSBAQCBmdW5jdGlvbiB0ZXN0UmVhZGluZ1VURjhFbmNvZGVkRmlsZUFzRGF0YVVSTCh0ZXN0
RmlsZXMpCiAKIGZ1bmN0aW9uIHRlc3RNdWx0aXBsZVJlYWRzKHRlc3RGaWxlcykKIHsKLSAgICAv
LyBUaGlzIHRlc3QgY2FzZSBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgYXN5bmMgcmVhZGluZy4KLSAg
ICBpZiAoIWlzUmVhZEFzQXN5bmMoKSkgewotICAgICAgICBydW5OZXh0VGVzdCh0ZXN0RmlsZXMp
OwotICAgICAgICByZXR1cm47CisgICAgbG9nKCJUZXN0IGNhbGxpbmcgbXVsdGlwbGUgY29uY3Vy
cmVudCByZWFkIG1ldGhvZHMiKTsKKyAgICB2YXIgcmVhZGVyID0gY3JlYXRlUmVhZGVyQXN5bmMo
dGVzdEZpbGVzKTsKKyAgICByZWFkZXIucmVhZEFzRGF0YVVSTCh0ZXN0RmlsZXNbJ1VURjgtZmls
ZSddKTsKKyAgICB0cnkgeworICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIodGVzdEZp
bGVzWydVVEY4LWZpbGUnXSk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgbG9nKCJS
ZWNlaXZlZCBleGNlcHRpb24gIiArIGVycm9yLmNvZGUgKyAiOiAiICsgZXJyb3IubmFtZSk7CiAg
ICAgfQorICAgIHRyeSB7CisgICAgICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGVzdEZp
bGVzWydVVEY4LWZpbGUnXSk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgbG9nKCJS
ZWNlaXZlZCBleGNlcHRpb24gIiArIGVycm9yLmNvZGUgKyAiOiAiICsgZXJyb3IubmFtZSk7Cisg
ICAgfQorICAgIHRyeSB7CisgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KHRlc3RGaWxlc1snVVRG
OC1maWxlJ10pOworICAgIH0gY2F0Y2ggKGVycm9yKSB7CisgICAgICAgIGxvZygiUmVjZWl2ZWQg
ZXhjZXB0aW9uICIgKyBlcnJvci5jb2RlICsgIjogIiArIGVycm9yLm5hbWUpOworICAgIH0KKyAg
ICB0cnkgeworICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTCh0ZXN0RmlsZXNbJ1VURjgtZmls
ZSddKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBsb2coIlJlY2VpdmVkIGV4Y2Vw
dGlvbiAiICsgZXJyb3IuY29kZSArICI6ICIgKyBlcnJvci5uYW1lKTsKKyAgICB9Cit9CiAKLSAg
ICBsb2coIlRlc3QgY2FsbGluZyBtdWx0aXBsZSByZWFkIG1ldGhvZHMgYW5kIG9ubHkgbGFzdCBv
bmUgaXMgcHJvY2Vzc2VkIik7Ci0gICAgdmFyIHJlYWRlciA9IGNyZWF0ZVJlYWRlckFzeW5jKCk7
Ci0gICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKHRlc3RGaWxlc1snVVRGOC1maWxlJ10pOwot
ICAgIHJlYWRlci5yZWFkQXNCaW5hcnlTdHJpbmcodGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7Ci0g
ICAgcmVhZGVyLnJlYWRBc1RleHQodGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7Ci0gICAgcmVhZGVy
LnJlYWRBc0RhdGFVUkwodGVzdEZpbGVzWydVVEY4LWZpbGUnXSk7Cit2YXIgcmVhZGVyVG9UZXN0
UmVyZWFkOworCitmdW5jdGlvbiB0ZXN0UmVhZEFnYWluQWZ0ZXJTdWNjZXNzZnVsUmVhZFN0ZXAx
KHRlc3RGaWxlcykKK3sKKyAgICBsb2coIlRlc3QgcmVhZGluZyBhZ2FpbiBhZnRlciBzdWNjZXNz
ZnVsIHJlYWQiKTsKKyAgICByZWFkZXJUb1Rlc3RSZXJlYWQgPSBjcmVhdGVSZWFkZXJBc3luYyh0
ZXN0RmlsZXMpOworICAgIHJlYWRlclRvVGVzdFJlcmVhZC5yZWFkQXNCaW5hcnlTdHJpbmcodGVz
dEZpbGVzWydVVEY4LWZpbGUnXSk7Cit9CisKK2Z1bmN0aW9uIHRlc3RSZWFkQWdhaW5BZnRlclN1
Y2Nlc3NmdWxSZWFkU3RlcDIodGVzdEZpbGVzKQoreworICAgIHJlYWRlclRvVGVzdFJlcmVhZC5y
ZWFkQXNEYXRhVVJMKHRlc3RGaWxlc1snVVRGOC1maWxlJ10pOworICAgIGxvZygicmVhZHlTdGF0
ZSBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6ICIgKyByZWFkZXJUb1Rlc3RSZXJlYWQucmVh
ZHlTdGF0ZSk7CisgICAgbG9nKCJyZXN1bHQgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAi
ICsgcmVhZGVyVG9UZXN0UmVyZWFkLnJlc3VsdCk7CisgICAgbG9nKCJlcnJvciBhZnRlciByZWNh
bGxpbmcgcmVhZCBtZXRob2Q6ICIgKyByZWFkZXJUb1Rlc3RSZXJlYWQuZXJyb3IpOworfQorCitm
dW5jdGlvbiB0ZXN0UmVhZEFnYWluQWZ0ZXJGYWlsZWRSZWFkU3RlcDEodGVzdEZpbGVzKQorewor
ICAgIGxvZygiVGVzdCByZWFkaW5nIGFnYWluIGFmdGVyIGZhaWxlZCByZWFkIik7CisgICAgcmVh
ZGVyVG9UZXN0UmVyZWFkID0gY3JlYXRlUmVhZGVyQXN5bmModGVzdEZpbGVzKTsKKyAgICByZWFk
ZXJUb1Rlc3RSZXJlYWQucmVhZEFzQmluYXJ5U3RyaW5nKHRlc3RGaWxlc1snbm9uLWV4aXN0ZW50
J10pOworfQorCitmdW5jdGlvbiB0ZXN0UmVhZEFnYWluQWZ0ZXJGYWlsZWRSZWFkU3RlcDIodGVz
dEZpbGVzKQoreworICAgIHJlYWRlclRvVGVzdFJlcmVhZC5yZWFkQXNEYXRhVVJMKHRlc3RGaWxl
c1snVVRGOC1maWxlJ10pOworICAgIGxvZygicmVhZHlTdGF0ZSBhZnRlciByZWNhbGxpbmcgcmVh
ZCBtZXRob2Q6ICIgKyByZWFkZXJUb1Rlc3RSZXJlYWQucmVhZHlTdGF0ZSk7CisgICAgbG9nKCJy
ZXN1bHQgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAiICsgcmVhZGVyVG9UZXN0UmVyZWFk
LnJlc3VsdCk7CisgICAgbG9nKCJlcnJvciBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6ICIg
KyByZWFkZXJUb1Rlc3RSZXJlYWQuZXJyb3IpOwogfQorCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1maWxlLWFzeW5jLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2Zhc3QvZmlsZXMvd29ya2Vycy93b3JrZXItcmVhZC1maWxlLWFzeW5j
LWV4cGVjdGVkLnR4dAppbmRleCA5ZGVlMGYyLi5kOGVlMzFiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZpbGVzL3dvcmtlcnMvd29ya2VyLXJlYWQtZmlsZS1hc3luYy1leHBlY3RlZC50
eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9maWxlcy93b3JrZXJzL3dvcmtlci1yZWFkLWZpbGUt
YXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0xNjgsOCArMTY4LDQ3IEBAIHJlYWR5U3RhdGU6IDIKIHJl
c3VsdCBzaXplOiAzMQogcmVzdWx0OiBkYXRhOnRleHQvcGxhaW47YmFzZTY0LFNHVnNiRzg9CiBS
ZWNlaXZlZCBsb2FkZW5kIGV2ZW50Ci1UZXN0IGNhbGxpbmcgbXVsdGlwbGUgcmVhZCBtZXRob2Rz
IGFuZCBvbmx5IGxhc3Qgb25lIGlzIHByb2Nlc3NlZAorVGVzdCBjYWxsaW5nIG11bHRpcGxlIGNv
bmN1cnJlbnQgcmVhZCBtZXRob2RzCiByZWFkeVN0YXRlOiAwCitSZWNlaXZlZCBleGNlcHRpb24g
MTogTk9UX0FMTE9XRURfRVJSCitSZWNlaXZlZCBleGNlcHRpb24gMTogTk9UX0FMTE9XRURfRVJS
CitSZWNlaXZlZCBleGNlcHRpb24gMTogTk9UX0FMTE9XRURfRVJSCitSZWNlaXZlZCBleGNlcHRp
b24gMTogTk9UX0FMTE9XRURfRVJSCitSZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQKK3JlYWR5U3Rh
dGU6IDEKK1JlY2VpdmVkIGxvYWQgZXZlbnQKK3JlYWR5U3RhdGU6IDIKK3Jlc3VsdCBzaXplOiAz
MQorcmVzdWx0OiBkYXRhOnRleHQvcGxhaW47YmFzZTY0LFNHVnNiRzg9CitSZWNlaXZlZCBsb2Fk
ZW5kIGV2ZW50CitUZXN0IHJlYWRpbmcgYWdhaW4gYWZ0ZXIgc3VjY2Vzc2Z1bCByZWFkCityZWFk
eVN0YXRlOiAwCitSZWNlaXZlZCBsb2Fkc3RhcnQgZXZlbnQKK3JlYWR5U3RhdGU6IDEKK1JlY2Vp
dmVkIGxvYWQgZXZlbnQKK3JlYWR5U3RhdGU6IDIKK3Jlc3VsdCBzaXplOiA1CityZXN1bHQ6IEhl
bGxvCitSZWNlaXZlZCBsb2FkZW5kIGV2ZW50CityZWFkeVN0YXRlIGFmdGVyIHJlY2FsbGluZyBy
ZWFkIG1ldGhvZDogMQorcmVzdWx0IGFmdGVyIHJlY2FsbGluZyByZWFkIG1ldGhvZDogCitlcnJv
ciBhZnRlciByZWNhbGxpbmcgcmVhZCBtZXRob2Q6IG51bGwKK1JlY2VpdmVkIGxvYWRzdGFydCBl
dmVudAorcmVhZHlTdGF0ZTogMQorUmVjZWl2ZWQgbG9hZCBldmVudAorcmVhZHlTdGF0ZTogMgor
cmVzdWx0IHNpemU6IDMxCityZXN1bHQ6IGRhdGE6dGV4dC9wbGFpbjtiYXNlNjQsU0dWc2JHOD0K
K1JlY2VpdmVkIGxvYWRlbmQgZXZlbnQKK1Rlc3QgcmVhZGluZyBhZ2FpbiBhZnRlciBmYWlsZWQg
cmVhZAorcmVhZHlTdGF0ZTogMAorUmVjZWl2ZWQgZXJyb3IgZXZlbnQKK3JlYWR5U3RhdGU6IDIK
K2Vycm9yIGNvZGU6IDEKK1JlY2VpdmVkIGxvYWRlbmQgZXZlbnQKK3JlYWR5U3RhdGUgYWZ0ZXIg
cmVjYWxsaW5nIHJlYWQgbWV0aG9kOiAxCityZXN1bHQgYWZ0ZXIgcmVjYWxsaW5nIHJlYWQgbWV0
aG9kOiAKK2Vycm9yIGFmdGVyIHJlY2FsbGluZyByZWFkIG1ldGhvZDogbnVsbAogUmVjZWl2ZWQg
bG9hZHN0YXJ0IGV2ZW50CiByZWFkeVN0YXRlOiAxCiBSZWNlaXZlZCBsb2FkIGV2ZW50CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggZjBiMDliNy4uMzVjMGIxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisy
MDExLTA1LTMxICBKaWFuIExpICA8amlhbmxpQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGhlIGJlaGF2aW9yIG9m
IG11bHRpcGxlIHJlYWRzIGZvciBGaWxlUmVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTc5MworCisgICAgICAgIENoYW5nZWQgdG8gdGhyb3cg
YW4gT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbiB3aXRoIHRoZSBOT1RfQUxMT1dFRF9FUlIK
KyAgICAgICAgc3RhdHVzIGNvZGUgb24gYW55IG9mIHRoZSByZWFkIG1ldGhvZHMgdGhhdCBvY2N1
ciB3aGVuIHJlYWR5U3RhdGUgPSBMT0FESU5HLgorICAgICAgICBPdGhlcndpc2UsIGNhbGxpbmcg
YW55IG9mIHRoZSByZWFkIG1ldGhvZHMgc2hvdWxkIHdvcmsuIAorCisgICAgICAgIFRlc3Q6IGZh
c3QvZmlsZXMvcmVhZC1maWxlLWFzeW5jLmh0bWwKKworICAgICAgICAqIENvZGVHZW5lcmF0b3Jz
LnByaToKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5jcHA6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMubWFrZToKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICAqIFdl
YkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OnNldERPTUV4Y2VwdGlvbik6CisgICAgICAgICogYmluZGluZ3MvdjgvVjhQ
cm94eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOFByb3h5OjpzZXRET01FeGNlcHRpb24pOgor
ICAgICAgICAqIGRvbS9FeGNlcHRpb25Db2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmdldEV4
Y2VwdGlvbkNvZGVEZXNjcmlwdGlvbik6CisgICAgICAgICogZG9tL0V4Y2VwdGlvbkNvZGUuaDoK
KyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVJlYWRlcjo6RmlsZVJlYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyOjpoYXNQ
ZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlcjo6cmVhZEFzQXJy
YXlCdWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlcjo6cmVhZEFzQmluYXJ5U3Ry
aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXI6OnJlYWRBc1RleHQpOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVJlYWRlcjo6cmVhZEFzRGF0YVVSTCk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlUmVhZGVyOjpyZWFkSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRl
cjo6YWJvcnQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlcjo6ZG9BYm9ydCk6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyOjp0ZXJtaW5hdGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVJlYWRlcjo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlcjo6ZGlkU3Rh
cnRMb2FkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVSZWFkZXI6OmRpZEZpbmlzaExvYWRp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVJlYWRlcjo6ZGlkRmFpbCk6CisgICAgICAgICog
ZmlsZWFwaS9GaWxlUmVhZGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWxlUmVhZGVyOjpyZWFk
eVN0YXRlKToKKyAgICAgICAgKiBmaWxlYXBpL0ZpbGVSZWFkZXIuaWRsOgorICAgICAgICAqIGZp
bGVhcGkvT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6Ok9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb246OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uOjpPcGVyYXRpb25Ob3RBbGxvd2Vk
RXhjZXB0aW9uKToKKyAgICAgICAgKiBmaWxlYXBpL09wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRp
b24uaWRsOiBBZGRlZC4KKwogMjAxMS0wNS0zMSAgWGFuIExvcGV6ICA8eGxvcGV6QGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGluIFJvYmluc29uLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ29kZUdlbmVyYXRvcnMucHJpIGIvU291cmNlL1dlYkNvcmUvQ29kZUdl
bmVyYXRvcnMucHJpCmluZGV4IGFlNTJlZDIuLmNlYjUyMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0NvZGVHZW5lcmF0b3JzLnByaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Db2RlR2VuZXJh
dG9ycy5wcmkKQEAgLTE5NCw2ICsxOTQsNyBAQCBJRExfQklORElOR1MgKz0gXAogICAgIGZpbGVh
cGkvRmlsZVN5c3RlbUNhbGxiYWNrLmlkbCBcCiAgICAgZmlsZWFwaS9GaWxlV3JpdGVyLmlkbCBc
CiAgICAgZmlsZWFwaS9GaWxlV3JpdGVyQ2FsbGJhY2suaWRsIFwKKyAgICBmaWxlYXBpL09wZXJh
dGlvbk5vdEFsbG93ZWRFeGNlcHRpb24uaWRsIFwKICAgICBmaWxlYXBpL1dlYktpdEZsYWdzLmlk
bCBcCiAgICAgZmlsZWFwaS9NZXRhZGF0YS5pZGwgXAogICAgIGZpbGVhcGkvTWV0YWRhdGFDYWxs
YmFjay5pZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMuY3BwCmluZGV4IDRjOGIxMjMuLmY0OGFi
MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5jcHAKQEAgLTI1Myw2ICsyNTMsNyBAQAogI2lu
Y2x1ZGUgIkpTTm90YXRpb24uY3BwIgogI2luY2x1ZGUgIkpTTm90aWZpY2F0aW9uQ2VudGVyLmNw
cCIKICNpbmNsdWRlICJKU05vdGlmaWNhdGlvbi5jcHAiCisjaW5jbHVkZSAiSlNPcGVyYXRpb25O
b3RBbGxvd2VkRXhjZXB0aW9uLmNwcCIKICNpbmNsdWRlICJKU092ZXJmbG93RXZlbnQuY3BwIgog
I2luY2x1ZGUgIkpTUGFnZVRyYW5zaXRpb25FdmVudC5jcHAiCiAjaW5jbHVkZSAiSlNQZXJmb3Jt
YW5jZS5jcHAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
IGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA4NjRlZGU2Li44MGY1
MThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTMyMiw2ICszMjIsNyBAQCBE
T01fQ0xBU1NFUyA9IFwKICAgICBPRVNUZXh0dXJlRmxvYXQgXAogICAgICBPRVNWZXJ0ZXhBcnJh
eU9iamVjdCBcCiAgICAgIFdlYkdMVmVydGV4QXJyYXlPYmplY3RPRVMgXAorICAgIE9wZXJhdGlv
bk5vdEFsbG93ZWRFeGNlcHRpb24gXAogICAgIE92ZXJmbG93RXZlbnQgXAogICAgIFBhZ2VUcmFu
c2l0aW9uRXZlbnQgXAogICAgIFBlcmZvcm1hbmNlIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0gYi9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCmluZGV4IGFmNWE5YTcuLmZhMjU5MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0dO
VW1ha2VmaWxlLmxpc3QuYW0KKysrIGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5h
bQpAQCAtNDAxLDYgKzQwMSw4IEBAIHdlYmNvcmVfYnVpbHRfc291cmNlcyArPSBcCiAJRGVyaXZl
ZFNvdXJjZXMvV2ViQ29yZS9KU09FU1RleHR1cmVGbG9hdC5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTT0VTVmVydGV4QXJyYXlPYmplY3QuaCBcCisJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9K
U09wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24uY3BwIFwKKwlEZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbi5oIFwKIAlEZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTT3ZlcmZsb3dFdmVudC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNP
dmVyZmxvd0V2ZW50LmggXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQYWdlVHJhbnNpdGlv
bkV2ZW50LmNwcCBcCkBAIC0xNTAzLDYgKzE1MDUsNyBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvTG9jYWxGaWxlU3lzdGVtLmggXAogCVNvdXJjZS9XZWJD
b3JlL2ZpbGVhcGkvTWV0YWRhdGFDYWxsYmFjay5oIFwKIAlTb3VyY2UvV2ViQ29yZS9maWxlYXBp
L01ldGFkYXRhLmggXAorCVNvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvT3BlcmF0aW9uTm90QWxsb3dl
ZEV4Y2VwdGlvbi5oIFwKIAlTb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVn
aXN0cnkuY3BwIFwKIAlTb3VyY2UvV2ViQ29yZS9maWxlYXBpL1RocmVhZGFibGVCbG9iUmVnaXN0
cnkuaCBcCiAJU291cmNlL1dlYkNvcmUvZmlsZWFwaS9XZWJLaXRCbG9iQnVpbGRlci5jcHAgXApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5neXBpCmluZGV4IDkxYTM0M2MuLjhmMDFjZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTEyMTIsNiArMTIxMiw3IEBACiAgICAgICAgICAgICAnZmlsZWFwaS9GaWxlV3JpdGVyLmlkbCcs
CiAgICAgICAgICAgICAnZmlsZWFwaS9GaWxlV3JpdGVyQ2FsbGJhY2suaWRsJywKICAgICAgICAg
ICAgICdmaWxlYXBpL0ZpbGVXcml0ZXJTeW5jLmlkbCcsCisgICAgICAgICAgICAnZmlsZWFwaS9P
cGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmlkbCcsCiAgICAgICAgICAgICAnZmlsZWFwaS9X
ZWJLaXRGbGFncy5pZGwnLAogICAgICAgICAgICAgJ2ZpbGVhcGkvTWV0YWRhdGEuaWRsJywKICAg
ICAgICAgICAgICdmaWxlYXBpL01ldGFkYXRhQ2FsbGJhY2suaWRsJywKQEAgLTI4MDEsNiArMjgw
Miw3IEBACiAgICAgICAgICAgICAnZmlsZWFwaS9Mb2NhbEZpbGVTeXN0ZW0uaCcsCiAgICAgICAg
ICAgICAnZmlsZWFwaS9NZXRhZGF0YS5oJywKICAgICAgICAgICAgICdmaWxlYXBpL01ldGFkYXRh
Q2FsbGJhY2suaCcsCisgICAgICAgICAgICAnZmlsZWFwaS9PcGVyYXRpb25Ob3RBbGxvd2VkRXhj
ZXB0aW9uLmgnLAogICAgICAgICAgICAgJ2ZpbGVhcGkvU3luY0NhbGxiYWNrSGVscGVyLmgnLAog
ICAgICAgICAgICAgJ2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5jcHAnLAogICAgICAg
ICAgICAgJ2ZpbGVhcGkvVGhyZWFkYWJsZUJsb2JSZWdpc3RyeS5oJywKQEAgLTc0MjMsNiArNzQy
NSw4IEBACiAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29y
ZS9KU09FU1RleHR1cmVGbG9hdC5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVmVydGV4QXJyYXlPYmplY3QuY3BwJywKICAgICAgICAg
ICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT0VTVmVydGV4QXJy
YXlPYmplY3QuaCcsCisgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU09wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24uY3BwJywKKyAgICAgICAgICAg
ICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTT3BlcmF0aW9uTm90QWxs
b3dlZEV4Y2VwdGlvbi5oJywKICAgICAgICAgICAgICc8KFBST0RVQ1RfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTT3ZlcmZsb3dFdmVudC5jcHAnLAogICAgICAgICAgICAgJzwoUFJPRFVD
VF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNPdmVyZmxvd0V2ZW50LmgnLAogICAgICAg
ICAgICAgJzwoUFJPRFVDVF9ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNQYWdlVHJhbnNp
dGlvbkV2ZW50LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnBybyBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDk0YzkxMjEuLjAxODQwYzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUucHJvCkBAIC0xNjA0LDYgKzE2MDQsNyBAQCBIRUFERVJTICs9IFwKICAgICBmaWxlYXBp
L0ZpbGVTdHJlYW1Qcm94eS5oIFwKICAgICBmaWxlYXBpL0ZpbGVUaHJlYWQuaCBcCiAgICAgZmls
ZWFwaS9GaWxlVGhyZWFkVGFzay5oIFwKKyAgICBmaWxlYXBpL09wZXJhdGlvbk5vdEFsbG93ZWRF
eGNlcHRpb24uaCBcCiAgICAgZmlsZWFwaS9XZWJLaXRCbG9iQnVpbGRlci5oIFwKICAgICBoaXN0
b3J5L0JhY2tGb3J3YXJkQ29udHJvbGxlci5oIFwKICAgICBoaXN0b3J5L0JhY2tGb3J3YXJkTGlz
dEltcGwuaCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJD
b3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9q
CmluZGV4IGQ0ZmZiMTguLjdjMzcyNjAgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNw
cm9qL1dlYkNvcmUudmNwcm9qCkBAIC0xMjE1OCw2ICsxMjE1OCwxNCBAQAogCQkJCT4KIAkJCTwv
RmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIkKENvbmZpZ3VyYXRpb25CdWlsZERp
cilcb2JqXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEpTT3BlcmF0aW9uTm90QWxsb3dl
ZEV4Y2VwdGlvbi5jcHAiCisJCQkJPgorCQkJPC9GaWxlPgorCQkJPEZpbGUKKwkJCQlSZWxhdGl2
ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZl
ZFNvdXJjZXNcSlNPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmgiCisJCQkJPgorCQkJPC9G
aWxlPgorCQkJPEZpbGUKIAkJCQlSZWxhdGl2ZVBhdGg9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGly
KVxvYmpcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcSlNPdmVyZmxvd0V2ZW50LmNwcCIK
IAkJCQk+CiAJCQkJPEZpbGVDb25maWd1cmF0aW9uCkBAIC01MjQ1NCw2ICs1MjQ2MiwxMCBAQAog
CQkJCT4KIAkJCTwvRmlsZT4KIAkJCTxGaWxlCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxmaWxlYXBp
XE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24uaCIKKwkJCQk+CisJCQk8L0ZpbGU+CisJCQk8
RmlsZQogCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxjYW52YXNcRmxvYXQzMkFycmF5LmNwcCIK
IAkJCQk+CiAJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzQxMTk5NS4uNDA4N2QzNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjIyLDYgKzYy
Miw5IEBACiAJCTJFMDg4OEQ0MTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMDg4OEQyMTE0
ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhLmNwcCAqLzsgfTsKIAkJMkUwODg4RDUxMTQ4
ODQ4QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURhdGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJFMDg4OEQzMTE0ODg0OEEwMEFGNDI2NSAvKiBKU0RPTUZv
cm1EYXRhLmggKi87IH07CiAJCTJFMDg4OEU2MTE0ODg0RTIwMEFGNDI2NSAvKiBKU0RPTUZvcm1E
YXRhQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFMDg4OEU1MTE0ODg0RTIwMEFGNDI2NSAvKiBKU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcCAq
LzsgfTsKKwkJMkUyNDQ1RjcxMzk1ODkzQTAwNEI2QzE5IC8qIE9wZXJhdGlvbk5vdEFsbG93ZWRF
eGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDJFMjQ0NUY1MTM5NTg5M0EwMDRCNkMxOSAvKiBPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9u
LmggKi87IH07CisJCTJFMjQ0NzY4MTM5NTkxNzMwMDRCNkMxOSAvKiBKU09wZXJhdGlvbk5vdEFs
bG93ZWRFeGNlcHRpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMkUyNDQ3NjYxMzk1OTE3MzAwNEI2QzE5IC8qIEpTT3BlcmF0aW9uTm90QWxsb3dl
ZEV4Y2VwdGlvbi5jcHAgKi87IH07CisJCTJFMjQ0NzY5MTM5NTkxNzMwMDRCNkMxOSAvKiBKU09w
ZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDJFMjQ0NzY3MTM5NTkxNzMwMDRCNkMxOSAvKiBKU09wZXJhdGlv
bk5vdEFsbG93ZWRFeGNlcHRpb24uaCAqLzsgfTsKIAkJMkUyRDk5Q0QxMEUyQkJEQTAwNDk2MzM3
IC8qIEpTQmxvYi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAyRTJEOTlDQjEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmNwcCAqLzsgfTsKIAkJMkUy
RDk5Q0UxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUyRDk5Q0MxMEUyQkJEQTAwNDk2MzM3IC8qIEpTQmxv
Yi5oICovOyB9OwogCQkyRTJEOTlFNzEwRTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkUyRDk5RTUxMEUyQkMx
QzAwNDk2MzM3IC8qIERPTUJsb2IuaCAqLzsgfTsKQEAgLTcxMTksNiArNzEyMiwxMCBAQAogCQky
RTA4ODhEMjExNDg4NDhBMDBBRjQyNjUgLyogSlNET01Gb3JtRGF0YS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTUZvcm1EYXRhLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkUwODg4RDMxMTQ4ODQ4QTAwQUY0MjY1IC8qIEpTRE9NRm9ybURh
dGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNET01Gb3JtRGF0YS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTA4ODhFNTExNDg4NEUyMDBBRjQyNjUgLyog
SlNET01Gb3JtRGF0YUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0RPTUZvcm1EYXRhQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMkUyNDQ1RjUxMzk1ODkzQTAwNEI2QzE5IC8qIE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT3BlcmF0aW9uTm90QWxsb3dl
ZEV4Y2VwdGlvbi5oOyBwYXRoID0gZmlsZWFwaS9PcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJFMjQ0NUY2MTM5NTg5M0EwMDRCNkMx
OSAvKiBPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5h
bWUgPSBPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmlkbDsgcGF0aCA9IGZpbGVhcGkvT3Bl
cmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJFMjQ0NzY2MTM5NTkxNzMwMDRCNkMxOSAvKiBKU09wZXJhdGlvbk5vdEFsbG93ZWRFeGNl
cHRpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNPcGVyYXRp
b25Ob3RBbGxvd2VkRXhjZXB0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkUyNDQ3NjcxMzk1OTE3MzAwNEI2QzE5IC8qIEpTT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlv
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU09wZXJhdGlvbk5vdEFsbG93
ZWRFeGNlcHRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUyRDk5Q0IxMEUy
QkJEQTAwNDk2MzM3IC8qIEpTQmxvYi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0Jsb2IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTJEOTlD
QzEwRTJCQkRBMDA0OTYzMzcgLyogSlNCbG9iLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEpTQmxvYi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRTJEOTlFNTEw
RTJCQzFDMDA0OTYzMzcgLyogRE9NQmxvYi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBET01CbG9iLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTU5Niw2ICsx
NTYwMyw4IEBACiAJCQkJODk4Nzg1QTExMjJDQTJBNzAwM0FBQkRBIC8qIEpTTWV0YWRhdGEuaCAq
LywKIAkJCQk4OTg3ODVBMjEyMkNBMkE3MDAzQUFCREEgLyogSlNNZXRhZGF0YUNhbGxiYWNrLmNw
cCAqLywKIAkJCQk4OTg3ODVBMzEyMkNBMkE3MDAzQUFCREEgLyogSlNNZXRhZGF0YUNhbGxiYWNr
LmggKi8sCisJCQkJMkUyNDQ3NjYxMzk1OTE3MzAwNEI2QzE5IC8qIEpTT3BlcmF0aW9uTm90QWxs
b3dlZEV4Y2VwdGlvbi5jcHAgKi8sCisJCQkJMkUyNDQ3NjcxMzk1OTE3MzAwNEI2QzE5IC8qIEpT
T3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbi5oICovLAogCQkJCTg5Q0QwMjkxMTFDODVCODcw
MDcwQjc5MSAvKiBKU1dlYktpdEJsb2JCdWlsZGVyLmNwcCAqLywKIAkJCQk4OUNEMDI5MjExQzg1
Qjg3MDA3MEI3OTEgLyogSlNXZWJLaXRCbG9iQnVpbGRlci5oICovLAogCQkJCTg5ODc4NTlFMTIy
Q0EyQTcwMDNBQUJEQSAvKiBKU1dlYktpdEZsYWdzLmNwcCAqLywKQEAgLTE2MjMxLDYgKzE2MjQw
LDggQEAKIAkJCQk4OTg3ODU0RjEyMkNBMDY0MDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmgg
Ki8sCiAJCQkJODk4Nzg1NTAxMjJDQTA2NDAwM0FBQkRBIC8qIE1ldGFkYXRhLmggKi8sCiAJCQkJ
ODk4Nzg1NTExMjJDQTA2NDAwM0FBQkRBIC8qIE1ldGFkYXRhQ2FsbGJhY2suaCAqLywKKwkJCQky
RTI0NDVGNTEzOTU4OTNBMDA0QjZDMTkgLyogT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbi5o
ICovLAorCQkJCTJFMjQ0NUY2MTM5NTg5M0EwMDRCNkMxOSAvKiBPcGVyYXRpb25Ob3RBbGxvd2Vk
RXhjZXB0aW9uLmlkbCAqLywKIAkJCQk5NzZENkM3NTEyMkI4QTNEMDAxRkQxRjcgLyogVGhyZWFk
YWJsZUJsb2JSZWdpc3RyeS5jcHAgKi8sCiAJCQkJOTc2RDZDNzYxMjJCOEEzRDAwMUZEMUY3IC8q
IFRocmVhZGFibGVCbG9iUmVnaXN0cnkuaCAqLywKIAkJCQk5NzZENkM1QzEyMkI4QTNEMDAxRkQx
RjcgLyogV2ViS2l0QmxvYkJ1aWxkZXIuY3BwICovLApAQCAtMjMwMDgsNiArMjMwMTksOCBAQAog
CQkJCUIxMkQyMzZFMTM1NjAzNEQwMDJBMjhENCAvKiBKU011bHRpcGxlVHJhY2tMaXN0LmggaW4g
SGVhZGVycyAqLywKIAkJCQk4QzBFMzM0RDEzOEE5MkM3MDA4REE5NEYgLyogTGV2ZWxEQlRyYW5z
YWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk4QzBFMzM0RjEzOEE5MkM3MDA4REE5NEYgLyog
TGV2ZWxEQldyaXRlQmF0Y2guaCBpbiBIZWFkZXJzICovLAorCQkJCTJFMjQ0NUY3MTM5NTg5M0Ew
MDRCNkMxOSAvKiBPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQkyRTI0NDc2OTEzOTU5MTczMDA0QjZDMTkgLyogSlNPcGVyYXRpb25Ob3RBbGxvd2VkRXhj
ZXB0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBv
c3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTIzMDY3LDcgKzIzMDgwLDYgQEAKIAkJCWlzYSA9
IFBCWFByb2plY3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gMTQ5QzI4NDMwODkwMkIx
MTAwOEE5RUZDIC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiV2Vi
Q29yZSIgKi87CiAJCQljb21wYXRpYmlsaXR5VmVyc2lvbiA9ICJYY29kZSAyLjQiOwotCQkJZGV2
ZWxvcG1lbnRSZWdpb24gPSBFbmdsaXNoOwogCQkJaGFzU2Nhbm5lZEZvckVuY29kaW5ncyA9IDE7
CiAJCQlrbm93blJlZ2lvbnMgPSAoCiAJCQkJRW5nbGlzaCwKQEAgLTI1NzA0LDYgKzI1NzE2LDcg
QEAKIAkJCQlCMTJEMjM2RDEzNTYwMzREMDAyQTI4RDQgLyogSlNNdWx0aXBsZVRyYWNrTGlzdC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk4QzBFMzM0QzEzOEE5MkM3MDA4REE5NEYgLyogTGV2ZWxE
QlRyYW5zYWN0aW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCThDMEUzMzRFMTM4QTkyQzcwMDhE
QTk0RiAvKiBMZXZlbERCV3JpdGVCYXRjaC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkyRTI0NDc2
ODEzOTU5MTczMDA0QjZDMTkgLyogSlNPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmNwcCBp
biBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01CaW5kaW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5j
cHAKaW5kZXggY2E2NDZkYS4uMDQ3NGY4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01CaW5kaW5nLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiSlNFeGNlcHRp
b25CYXNlLmgiCiAjaWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1NZU1RFTSkKICNpbmNs
dWRlICJKU0ZpbGVFeGNlcHRpb24uaCIKKyNpbmNsdWRlICJKU09wZXJhdGlvbk5vdEFsbG93ZWRF
eGNlcHRpb24uaCIKICNlbmRpZgogI2luY2x1ZGUgIkpTUmFuZ2VFeGNlcHRpb24uaCIKICNpbmNs
dWRlICJKU1NRTEV4Y2VwdGlvbi5oIgpAQCAtNDUsNiArNDYsNyBAQAogI2lmIEVOQUJMRShYUEFU
SCkKICNpbmNsdWRlICJKU1hQYXRoRXhjZXB0aW9uLmgiCiAjZW5kaWYKKyNpbmNsdWRlICJPcGVy
YXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2VFeGNlcHRpb24uaCIK
ICNpbmNsdWRlICJTUUxFeGNlcHRpb24uaCIKICNpbmNsdWRlICJTVkdFeGNlcHRpb24uaCIKQEAg
LTI0Miw2ICsyNDQsOSBAQCB2b2lkIHNldERPTUV4Y2VwdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEV4
Y2VwdGlvbkNvZGUgZWMpCiAgICAgICAgIGNhc2UgRmlsZUV4Y2VwdGlvblR5cGU6CiAgICAgICAg
ICAgICBlcnJvck9iamVjdCA9IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCBGaWxlRXhjZXB0aW9u
OjpjcmVhdGUoZGVzY3JpcHRpb24pKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNl
IE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb25UeXBlOgorICAgICAgICAgICAgZXJyb3JPYmpl
Y3QgPSB0b0pTKGV4ZWMsIGdsb2JhbE9iamVjdCwgT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlv
bjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7CisgICAgICAgICAgICBicmVhazsKICNlbmRpZgogI2lm
IEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogICAgICAgICBjYXNlIElEQkRhdGFiYXNlRXhjZXB0
aW9uVHlwZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4UHJveHku
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKaW5kZXggMzllMDI1
NC4uZmU3NjZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhQcm94eS5jcHAKQEAgLTYw
LDYgKzYwLDcgQEAKICNpbmNsdWRlICJWOEZpbGVFeGNlcHRpb24uaCIKICNpbmNsdWRlICJWOEhp
ZGRlblByb3BlcnR5TmFtZS5oIgogI2luY2x1ZGUgIlY4SXNvbGF0ZWRDb250ZXh0LmgiCisjaW5j
bHVkZSAiVjhPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiVjhSYW5n
ZUV4Y2VwdGlvbi5oIgogI2luY2x1ZGUgIlY4U1FMRXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiVjhY
TUxIdHRwUmVxdWVzdEV4Y2VwdGlvbi5oIgpAQCAtNjkyLDYgKzY5Myw5IEBAIHZvaWQgVjhQcm94
eTo6c2V0RE9NRXhjZXB0aW9uKGludCBleGNlcHRpb25Db2RlKQogICAgIGNhc2UgRmlsZUV4Y2Vw
dGlvblR5cGU6CiAgICAgICAgIGV4Y2VwdGlvbiA9IHRvVjgoRmlsZUV4Y2VwdGlvbjo6Y3JlYXRl
KGRlc2NyaXB0aW9uKSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2UgT3BlcmF0aW9uTm90QWxs
b3dlZEV4Y2VwdGlvblR5cGU6CisgICAgICAgIGV4Y2VwdGlvbiA9IHRvVjgoT3BlcmF0aW9uTm90
QWxsb3dlZEV4Y2VwdGlvbjo6Y3JlYXRlKGRlc2NyaXB0aW9uKSk7CisgICAgICAgIGJyZWFrOwog
I2VuZGlmCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAgICAgY2FzZSBJREJEYXRhYmFz
ZUV4Y2VwdGlvblR5cGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9u
Q29kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uQ29kZS5jcHAKaW5kZXggOTI1
OWJlOC4uNDg4M2VmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbkNv
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmNwcApAQCAtNDUs
NiArNDUsNyBAQAogCiAjaWYgRU5BQkxFKEJMT0IpIHx8IEVOQUJMRShGSUxFX1NZU1RFTSkKICNp
bmNsdWRlICJGaWxlRXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9uTm90QWxsb3dlZEV4
Y2VwdGlvbi5oIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTIwOCw2ICsyMDks
MTQgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGZpbGVFeGNlcHRpb25EZXNjcmlwdGlvbnNb
XSA9IHsKICAgICAiVGhlIHBhdGggc3VwcGxpZWQgZXhpc3RzLCBidXQgd2FzIG5vdCBhbiBlbnRy
eSBvZiByZXF1ZXN0ZWQgdHlwZS4iLAogICAgICJBbiBhdHRlbXB0IHdhcyBtYWRlIHRvIGNyZWF0
ZSBhIGZpbGUgb3IgZGlyZWN0b3J5IHdoZXJlIGFuIGVsZW1lbnQgYWxyZWFkeSBleGlzdHMuIgog
fTsKKworc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IG9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRp
b25OYW1lc1tdID0geworICAgICJOT1RfQUxMT1dFRF9FUlIiCit9OworCitzdGF0aWMgY29uc3Qg
Y2hhciogY29uc3Qgb3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbkRlc2NyaXB0aW9uc1tdID0g
eworICAgICJJdCB3YXMgbm90IGFsbG93ZWQgdG8gY2FsbCBtdWx0aXBsZSBjb25jdXJyZW50IHJl
YWQgbWV0aG9kcyBvbiB0aGUgc2FtZSBvYmplY3Qgd2hlbiB0aGUgcmVhZHkgc3RhdGUgaXMgTE9B
RElORy4iCit9OwogI2VuZGlmCiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKQEAgLTMy
MSw2ICszMzAsMTQgQEAgdm9pZCBnZXRFeGNlcHRpb25Db2RlRGVzY3JpcHRpb24oRXhjZXB0aW9u
Q29kZSBlYywgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uJiBkZXMKICAgICAgICAgZGVzY3JpcHRp
b25UYWJsZSA9IGZpbGVFeGNlcHRpb25EZXNjcmlwdGlvbnM7CiAgICAgICAgIG5hbWVUYWJsZVNp
emUgPSBXVEZfQVJSQVlfTEVOR1RIKGZpbGVFeGNlcHRpb25OYW1lcyk7CiAgICAgICAgIG5hbWVU
YWJsZU9mZnNldCA9IEZpbGVFeGNlcHRpb246Ok5PVF9GT1VORF9FUlI7CisgICAgfSBlbHNlIGlm
IChjb2RlID49IE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb246Ok9wZXJhdGlvbk5vdEFsbG93
ZWRFeGNlcHRpb25PZmZzZXQgJiYgY29kZSA8PSBPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9u
OjpPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uTWF4KSB7CisgICAgICAgIHR5cGUgPSBPcGVy
YXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uVHlwZTsKKyAgICAgICAgdHlwZU5hbWUgPSAiRE9NIE9w
ZXJhdGlvbk5vdEFsbG93ZWQiOworICAgICAgICBjb2RlIC09IE9wZXJhdGlvbk5vdEFsbG93ZWRF
eGNlcHRpb246Ok9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb25PZmZzZXQ7CisgICAgICAgIG5h
bWVUYWJsZSA9IG9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb25OYW1lczsKKyAgICAgICAgZGVz
Y3JpcHRpb25UYWJsZSA9IG9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb25EZXNjcmlwdGlvbnM7
CisgICAgICAgIG5hbWVUYWJsZVNpemUgPSBXVEZfQVJSQVlfTEVOR1RIKG9wZXJhdGlvbk5vdEFs
bG93ZWRFeGNlcHRpb25OYW1lcyk7CisgICAgICAgIG5hbWVUYWJsZU9mZnNldCA9IE9wZXJhdGlv
bk5vdEFsbG93ZWRFeGNlcHRpb246Ok5PVF9BTExPV0VEX0VSUjsKICNlbmRpZgogI2lmIEVOQUJM
RShJTkRFWEVEX0RBVEFCQVNFKQogICAgIH0gZWxzZSBpZiAoY29kZSA+PSBJREJEYXRhYmFzZUV4
Y2VwdGlvbjo6SURCRGF0YWJhc2VFeGNlcHRpb25PZmZzZXQgJiYgY29kZSA8PSBJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6SURCRGF0YWJhc2VFeGNlcHRpb25NYXgpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Db2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0
aW9uQ29kZS5oCmluZGV4IDg4MWMzYTMuLjljZWU2NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9FeGNlcHRpb25Db2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlv
bkNvZGUuaApAQCAtODcsNiArODcsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjaWYgRU5BQkxF
KElOREVYRURfREFUQUJBU0UpCiAgICAgICAgICwgSURCRGF0YWJhc2VFeGNlcHRpb25UeXBlCiAj
ZW5kaWYKKyNpZiBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQorICAgICAgICAs
IE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb25UeXBlCisjZW5kaWYKICAgICB9OwogCiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuY3BwCmluZGV4IGYyNTFmYzEuLmRmOWRiMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgIkNyb3NzVGhyZWFkVGFzay5oIgogI2luY2x1ZGUgIkZpbGUuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCisjaW5jbHVkZSAiT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbi5oIgogI2lu
Y2x1ZGUgIlByb2dyZXNzRXZlbnQuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0
LmgiCiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CkBAIC00OSw3ICs1MCw4IEBAIHN0YXRp
YyBjb25zdCBkb3VibGUgcHJvZ3Jlc3NOb3RpZmljYXRpb25JbnRlcnZhbE1TID0gNTA7CiAKIEZp
bGVSZWFkZXI6OkZpbGVSZWFkZXIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCkKICAg
ICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0LCB0aGlzKQotICAgICwgbV9zdGF0ZShOb25lKQor
ICAgICwgbV9zdGF0ZShFTVBUWSkKKyAgICAsIG1fYWJvcnRpbmcoZmFsc2UpCiAgICAgLCBtX3Jl
YWRUeXBlKEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRBc0JpbmFyeVN0cmluZykKICAgICAsIG1fbGFz
dFByb2dyZXNzTm90aWZpY2F0aW9uVGltZU1TKDApCiB7CkBAIC02Miw3ICs2NCw3IEBAIEZpbGVS
ZWFkZXI6On5GaWxlUmVhZGVyKCkKIAogYm9vbCBGaWxlUmVhZGVyOjpoYXNQZW5kaW5nQWN0aXZp
dHkoKSBjb25zdAogewotICAgIHJldHVybiAobV9zdGF0ZSAhPSBOb25lICYmIG1fc3RhdGUgIT0g
Q29tcGxldGVkKSB8fCBBY3RpdmVET01PYmplY3Q6Omhhc1BlbmRpbmdBY3Rpdml0eSgpOworICAg
IHJldHVybiBtX3N0YXRlID09IExPQURJTkcgfHwgQWN0aXZlRE9NT2JqZWN0OjpoYXNQZW5kaW5n
QWN0aXZpdHkoKTsKIH0KIAogYm9vbCBGaWxlUmVhZGVyOjpjYW5TdXNwZW5kKCkgY29uc3QKQEAg
LTc2LDI3ICs3OCwyNyBAQCB2b2lkIEZpbGVSZWFkZXI6OnN0b3AoKQogICAgIHRlcm1pbmF0ZSgp
OwogfQogCi12b2lkIEZpbGVSZWFkZXI6OnJlYWRBc0FycmF5QnVmZmVyKEJsb2IqIGJsb2IpCit2
b2lkIEZpbGVSZWFkZXI6OnJlYWRBc0FycmF5QnVmZmVyKEJsb2IqIGJsb2IsIEV4Y2VwdGlvbkNv
ZGUmIGVjKQogewogICAgIGlmICghYmxvYikKICAgICAgICAgcmV0dXJuOwogCiAgICAgTE9HKEZp
bGVBUEksICJGaWxlUmVhZGVyOiByZWFkaW5nIGFzIGFycmF5IGJ1ZmZlcjogJXMgJXNcbiIsIGJs
b2ItPnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIGJsb2ItPmlzRmlsZSgpID8gc3RhdGlj
X2Nhc3Q8RmlsZSo+KGJsb2IpLT5wYXRoKCkudXRmOCgpLmRhdGEoKSA6ICIiKTsKIAotICAgIHJl
YWRJbnRlcm5hbChibG9iLCBGaWxlUmVhZGVyTG9hZGVyOjpSZWFkQXNBcnJheUJ1ZmZlcik7Cisg
ICAgcmVhZEludGVybmFsKGJsb2IsIEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRBc0FycmF5QnVmZmVy
LCBlYyk7CiB9CiAKLXZvaWQgRmlsZVJlYWRlcjo6cmVhZEFzQmluYXJ5U3RyaW5nKEJsb2IqIGJs
b2IpCit2b2lkIEZpbGVSZWFkZXI6OnJlYWRBc0JpbmFyeVN0cmluZyhCbG9iKiBibG9iLCBFeGNl
cHRpb25Db2RlJiBlYykKIHsKICAgICBpZiAoIWJsb2IpCiAgICAgICAgIHJldHVybjsKIAogICAg
IExPRyhGaWxlQVBJLCAiRmlsZVJlYWRlcjogcmVhZGluZyBhcyBiaW5hcnk6ICVzICVzXG4iLCBi
bG9iLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBibG9iLT5pc0ZpbGUoKSA/IHN0YXRp
Y19jYXN0PEZpbGUqPihibG9iKS0+cGF0aCgpLnV0ZjgoKS5kYXRhKCkgOiAiIik7CiAKLSAgICBy
ZWFkSW50ZXJuYWwoYmxvYiwgRmlsZVJlYWRlckxvYWRlcjo6UmVhZEFzQmluYXJ5U3RyaW5nKTsK
KyAgICByZWFkSW50ZXJuYWwoYmxvYiwgRmlsZVJlYWRlckxvYWRlcjo6UmVhZEFzQmluYXJ5U3Ry
aW5nLCBlYyk7CiB9CiAKLXZvaWQgRmlsZVJlYWRlcjo6cmVhZEFzVGV4dChCbG9iKiBibG9iLCBj
b25zdCBTdHJpbmcmIGVuY29kaW5nKQordm9pZCBGaWxlUmVhZGVyOjpyZWFkQXNUZXh0KEJsb2Iq
IGJsb2IsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAg
IGlmICghYmxvYikKICAgICAgICAgcmV0dXJuOwpAQCAtMTA0LDM2ICsxMDYsNDEgQEAgdm9pZCBG
aWxlUmVhZGVyOjpyZWFkQXNUZXh0KEJsb2IqIGJsb2IsIGNvbnN0IFN0cmluZyYgZW5jb2Rpbmcp
CiAgICAgTE9HKEZpbGVBUEksICJGaWxlUmVhZGVyOiByZWFkaW5nIGFzIHRleHQ6ICVzICVzXG4i
LCBibG9iLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBibG9iLT5pc0ZpbGUoKSA/IHN0
YXRpY19jYXN0PEZpbGUqPihibG9iKS0+cGF0aCgpLnV0ZjgoKS5kYXRhKCkgOiAiIik7CiAKICAg
ICBtX2VuY29kaW5nID0gZW5jb2Rpbmc7Ci0gICAgcmVhZEludGVybmFsKGJsb2IsIEZpbGVSZWFk
ZXJMb2FkZXI6OlJlYWRBc1RleHQpOworICAgIHJlYWRJbnRlcm5hbChibG9iLCBGaWxlUmVhZGVy
TG9hZGVyOjpSZWFkQXNUZXh0LCBlYyk7CiB9CiAKLXZvaWQgRmlsZVJlYWRlcjo6cmVhZEFzRGF0
YVVSTChCbG9iKiBibG9iKQordm9pZCBGaWxlUmVhZGVyOjpyZWFkQXNUZXh0KEJsb2IqIGJsb2Is
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJlYWRBc1RleHQoYmxvYiwgU3RyaW5nKCksIGVj
KTsKK30KKwordm9pZCBGaWxlUmVhZGVyOjpyZWFkQXNEYXRhVVJMKEJsb2IqIGJsb2IsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIGlmICghYmxvYikKICAgICAgICAgcmV0dXJuOwogCiAgICAg
TE9HKEZpbGVBUEksICJGaWxlUmVhZGVyOiByZWFkaW5nIGFzIGRhdGEgVVJMOiAlcyAlc1xuIiwg
YmxvYi0+dXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSwgYmxvYi0+aXNGaWxlKCkgPyBzdGF0
aWNfY2FzdDxGaWxlKj4oYmxvYiktPnBhdGgoKS51dGY4KCkuZGF0YSgpIDogIiIpOwogCi0gICAg
cmVhZEludGVybmFsKGJsb2IsIEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRBc0RhdGFVUkwpOworICAg
IHJlYWRJbnRlcm5hbChibG9iLCBGaWxlUmVhZGVyTG9hZGVyOjpSZWFkQXNEYXRhVVJMLCBlYyk7
CiB9CiAKLXN0YXRpYyB2b2lkIGRlbGF5ZWRTdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
RmlsZVJlYWRlciogcmVhZGVyKQordm9pZCBGaWxlUmVhZGVyOjpyZWFkSW50ZXJuYWwoQmxvYiog
YmxvYiwgRmlsZVJlYWRlckxvYWRlcjo6UmVhZFR5cGUgdHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMp
CiB7Ci0gICAgcmVhZGVyLT5zdGFydCgpOwotfQotCi12b2lkIEZpbGVSZWFkZXI6OnJlYWRJbnRl
cm5hbChCbG9iKiBibG9iLCBGaWxlUmVhZGVyTG9hZGVyOjpSZWFkVHlwZSB0eXBlKQotewotICAg
IC8vIHJlYWRBcyoqKiBtZXRob2RzKCkgY2FuIGJlIGNhbGxlZCBtdWx0aXBsZSB0aW1lcy4gT25s
eSB0aGUgbGFzdCBjYWxsIGJlZm9yZSB0aGUgYWN0dWFsIHJlYWRpbmcgaGFwcGVucyBpcyBwcm9j
ZXNzZWQuCi0gICAgaWYgKG1fc3RhdGUgIT0gTm9uZSAmJiBtX3N0YXRlICE9IFN0YXJ0aW5nKQor
ICAgIC8vIElmIG11bHRpcGxlIGNvbmN1cnJlbnQgcmVhZCBtZXRob2RzIGFyZSBjYWxsZWQgb24g
dGhlIHNhbWUgRmlsZVJlYWRlciwgT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbiBzaG91bGQg
YmUgdGhyb3duIHdoZW4gdGhlIHN0YXRlIGlzIExPQURJTkcuCisgICAgaWYgKG1fc3RhdGUgPT0g
TE9BRElORykgeworICAgICAgICBlYyA9IE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb246Ok5P
VF9BTExPV0VEX0VSUjsKICAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKG1fc3RhdGUgPT0gTm9u
ZSkKLSAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5wb3N0VGFzayhjcmVhdGVDYWxs
YmFja1Rhc2soJmRlbGF5ZWRTdGFydCwgQWxsb3dBY2Nlc3NMYXRlcih0aGlzKSkpOworICAgIH0K
IAogICAgIG1fYmxvYiA9IGJsb2I7CiAgICAgbV9yZWFkVHlwZSA9IHR5cGU7Ci0gICAgbV9zdGF0
ZSA9IFN0YXJ0aW5nOworICAgIG1fc3RhdGUgPSBMT0FESU5HOworICAgIG1fZXJyb3IgPSAwOwor
CisgICAgbV9sb2FkZXIgPSBhZG9wdFB0cihuZXcgRmlsZVJlYWRlckxvYWRlcihtX3JlYWRUeXBl
LCB0aGlzKSk7CisgICAgbV9sb2FkZXItPnNldEVuY29kaW5nKG1fZW5jb2RpbmcpOworICAgIG1f
bG9hZGVyLT5zZXREYXRhVHlwZShtX2Jsb2ItPnR5cGUoKSk7CisgICAgbV9sb2FkZXItPnN0YXJ0
KHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgbV9ibG9iLmdldCgpKTsKIH0KIAogc3RhdGljIHZv
aWQgZGVsYXllZEFib3J0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBGaWxlUmVhZGVyKiByZWFk
ZXIpCkBAIC0xNDUsOSArMTUyLDkgQEAgdm9pZCBGaWxlUmVhZGVyOjphYm9ydCgpCiB7CiAgICAg
TE9HKEZpbGVBUEksICJGaWxlUmVhZGVyOiBhYm9ydGluZ1xuIik7CiAKLSAgICBpZiAobV9zdGF0
ZSA9PSBBYm9ydGluZykKKyAgICBpZiAobV9hYm9ydGluZykKICAgICAgICAgcmV0dXJuOwotICAg
IG1fc3RhdGUgPSBBYm9ydGluZzsKKyAgICBtX2Fib3J0aW5nID0gdHJ1ZTsKIAogICAgIC8vIFNj
aGVkdWxlIHRvIGhhdmUgdGhlIGFib3J0IGRvbmUgbGF0ZXIgc2luY2UgYWJvcnQoKSBtaWdodCBi
ZSBjYWxsZWQgZnJvbSB0aGUgZXZlbnQgaGFuZGxlciBhbmQgd2UgZG8gbm90IHdhbnQgdGhlIHJl
c291cmNlIGxvYWRpbmcgY29kZSB0byBiZSBpbiB0aGUgc3RhY2suCiAgICAgc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5wb3N0VGFzaygKQEAgLTE1Nyw2ICsxNjQsNyBAQCB2b2lkIEZpbGVSZWFk
ZXI6OmFib3J0KCkKIHZvaWQgRmlsZVJlYWRlcjo6ZG9BYm9ydCgpCiB7CiAgICAgdGVybWluYXRl
KCk7CisgICAgbV9hYm9ydGluZyA9IGZhbHNlOwogCiAgICAgbV9lcnJvciA9IEZpbGVFcnJvcjo6
Y3JlYXRlKEZpbGVFcnJvcjo6QUJPUlRfRVJSKTsKIApAQCAtMTcxLDIyICsxNzksMTEgQEAgdm9p
ZCBGaWxlUmVhZGVyOjp0ZXJtaW5hdGUoKQogICAgICAgICBtX2xvYWRlci0+Y2FuY2VsKCk7CiAg
ICAgICAgIG1fbG9hZGVyID0gbnVsbHB0cjsKICAgICB9Ci0gICAgbV9zdGF0ZSA9IENvbXBsZXRl
ZDsKLX0KLQotdm9pZCBGaWxlUmVhZGVyOjpzdGFydCgpCi17Ci0gICAgbV9zdGF0ZSA9IE9wZW5p
bmc7Ci0KLSAgICBtX2xvYWRlciA9IGFkb3B0UHRyKG5ldyBGaWxlUmVhZGVyTG9hZGVyKG1fcmVh
ZFR5cGUsIHRoaXMpKTsKLSAgICBtX2xvYWRlci0+c2V0RW5jb2RpbmcobV9lbmNvZGluZyk7Ci0g
ICAgbV9sb2FkZXItPnNldERhdGFUeXBlKG1fYmxvYi0+dHlwZSgpKTsKLSAgICBtX2xvYWRlci0+
c3RhcnQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLCBtX2Jsb2IuZ2V0KCkpOworICAgIG1fc3Rh
dGUgPSBET05FOwogfQogCiB2b2lkIEZpbGVSZWFkZXI6OmRpZFN0YXJ0TG9hZGluZygpCiB7Ci0g
ICAgbV9zdGF0ZSA9IFJlYWRpbmc7CiAgICAgZmlyZUV2ZW50KGV2ZW50TmFtZXMoKS5sb2Fkc3Rh
cnRFdmVudCk7CiB9CiAKQEAgLTIwNCw3ICsyMDEsNyBAQCB2b2lkIEZpbGVSZWFkZXI6OmRpZFJl
Y2VpdmVEYXRhKCkKIAogdm9pZCBGaWxlUmVhZGVyOjpkaWRGaW5pc2hMb2FkaW5nKCkKIHsKLSAg
ICBtX3N0YXRlID0gQ29tcGxldGVkOworICAgIG1fc3RhdGUgPSBET05FOwogCiAgICAgZmlyZUV2
ZW50KGV2ZW50TmFtZXMoKS5sb2FkRXZlbnQpOwogICAgIGZpcmVFdmVudChldmVudE5hbWVzKCku
bG9hZGVuZEV2ZW50KTsKQEAgLTIxMywxMCArMjEwLDEwIEBAIHZvaWQgRmlsZVJlYWRlcjo6ZGlk
RmluaXNoTG9hZGluZygpCiB2b2lkIEZpbGVSZWFkZXI6OmRpZEZhaWwoaW50IGVycm9yQ29kZSkK
IHsKICAgICAvLyBJZiB3ZSdyZSBhYm9ydGluZywgZG8gbm90IHByb2NlZWQgd2l0aCBub3JtYWwg
ZXJyb3IgaGFuZGxpbmcgc2luY2UgaXQgaXMgY292ZXJlZCBpbiBhYm9ydGluZyBjb2RlLgotICAg
IGlmIChtX3N0YXRlID09IEFib3J0aW5nKQorICAgIGlmIChtX2Fib3J0aW5nKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX3N0YXRlID0gQ29tcGxldGVkOworICAgIG1fc3RhdGUgPSBET05FOwog
CiAgICAgbV9lcnJvciA9IEZpbGVFcnJvcjo6Y3JlYXRlKHN0YXRpY19jYXN0PEZpbGVFcnJvcjo6
RXJyb3JDb2RlPihlcnJvckNvZGUpKTsKICAgICBmaXJlRXZlbnQoZXZlbnROYW1lcygpLmVycm9y
RXZlbnQpOwpAQCAtMjI4LDIzICsyMjUsNiBAQCB2b2lkIEZpbGVSZWFkZXI6OmZpcmVFdmVudChj
b25zdCBBdG9taWNTdHJpbmcmIHR5cGUpCiAgICAgZGlzcGF0Y2hFdmVudChQcm9ncmVzc0V2ZW50
OjpjcmVhdGUodHlwZSwgdHJ1ZSwgbV9sb2FkZXIgPyBtX2xvYWRlci0+Ynl0ZXNMb2FkZWQoKSA6
IDAsIG1fbG9hZGVyID8gbV9sb2FkZXItPnRvdGFsQnl0ZXMoKSA6IDApKTsKIH0KIAotRmlsZVJl
YWRlcjo6UmVhZHlTdGF0ZSBGaWxlUmVhZGVyOjpyZWFkeVN0YXRlKCkgY29uc3QKLXsKLSAgICBz
d2l0Y2ggKG1fc3RhdGUpIHsKLSAgICBjYXNlIE5vbmU6Ci0gICAgY2FzZSBTdGFydGluZzoKLSAg
ICAgICAgcmV0dXJuIEVNUFRZOwotICAgIGNhc2UgT3BlbmluZzoKLSAgICBjYXNlIFJlYWRpbmc6
Ci0gICAgY2FzZSBBYm9ydGluZzoKLSAgICAgICAgcmV0dXJuIExPQURJTkc7Ci0gICAgY2FzZSBD
b21wbGV0ZWQ6Ci0gICAgICAgIHJldHVybiBET05FOwotICAgIH0KLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gRU1QVFk7Ci19Ci0KIFBhc3NSZWZQdHI8QXJyYXlCdWZmZXI+
IEZpbGVSZWFkZXI6OmFycmF5QnVmZmVyUmVzdWx0KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9s
b2FkZXIgPyBtX2xvYWRlci0+YXJyYXlCdWZmZXJSZXN1bHQoKSA6IDA7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZVJlYWRlci5oCmluZGV4IDA0NTEzZjMuLjQ5MjllYjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZpbGVh
cGkvRmlsZVJlYWRlci5oCkBAIC0zNCw2ICszNCw3IEBACiAjaWYgRU5BQkxFKEJMT0IpCiAKICNp
bmNsdWRlICJBY3RpdmVET01PYmplY3QuaCIKKyNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAj
aW5jbHVkZSAiRXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJGaWxlRXJyb3IuaCIKICNpbmNsdWRl
ICJGaWxlUmVhZGVyTG9hZGVyLmgiCkBAIC02MywxNiArNjQsMTYgQEAgcHVibGljOgogICAgICAg
ICBET05FID0gMgogICAgIH07CiAKLSAgICB2b2lkIHJlYWRBc0FycmF5QnVmZmVyKEJsb2IqKTsK
LSAgICB2b2lkIHJlYWRBc0JpbmFyeVN0cmluZyhCbG9iKik7Ci0gICAgdm9pZCByZWFkQXNUZXh0
KEJsb2IqLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nID0gIiIpOwotICAgIHZvaWQgcmVhZEFzRGF0
YVVSTChCbG9iKik7CisgICAgdm9pZCByZWFkQXNBcnJheUJ1ZmZlcihCbG9iKiwgRXhjZXB0aW9u
Q29kZSYpOworICAgIHZvaWQgcmVhZEFzQmluYXJ5U3RyaW5nKEJsb2IqLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdm9pZCByZWFkQXNUZXh0KEJsb2IqLCBjb25zdCBTdHJpbmcmIGVuY29kaW5nLCBF
eGNlcHRpb25Db2RlJik7CisgICAgdm9pZCByZWFkQXNUZXh0KEJsb2IqLCBFeGNlcHRpb25Db2Rl
Jik7CisgICAgdm9pZCByZWFkQXNEYXRhVVJMKEJsb2IqLCBFeGNlcHRpb25Db2RlJik7CiAgICAg
dm9pZCBhYm9ydCgpOwogCi0gICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgZG9BYm9ydCgpOwog
Ci0gICAgUmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CisgICAgUmVhZHlTdGF0ZSByZWFk
eVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9zdGF0ZTsgfQogICAgIFBhc3NSZWZQdHI8RmlsZUVy
cm9yPiBlcnJvcigpIHsgcmV0dXJuIG1fZXJyb3I7IH0KICAgICBGaWxlUmVhZGVyTG9hZGVyOjpS
ZWFkVHlwZSByZWFkVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZFR5cGU7IH0KICAgICBQYXNz
UmVmUHRyPEFycmF5QnVmZmVyPiBhcnJheUJ1ZmZlclJlc3VsdCgpIGNvbnN0OwpAQCAtMTA0LDE1
ICsxMDUsNiBAQCBwdWJsaWM6CiAgICAgREVGSU5FX0FUVFJJQlVURV9FVkVOVF9MSVNURU5FUihs
b2FkZW5kKTsKIAogcHJpdmF0ZToKLSAgICBlbnVtIEludGVybmFsU3RhdGUgewotICAgICAgICBO
b25lLAotICAgICAgICBTdGFydGluZywKLSAgICAgICAgT3BlbmluZywKLSAgICAgICAgUmVhZGlu
ZywKLSAgICAgICAgQWJvcnRpbmcsCi0gICAgICAgIENvbXBsZXRlZAotICAgIH07Ci0KICAgICBG
aWxlUmVhZGVyKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqKTsKIAogICAgIC8vIEV2ZW50VGFyZ2V0
CkBAIC0xMjIsMTEgKzExNCwxMiBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgRXZlbnRUYXJnZXRE
YXRhKiBlbnN1cmVFdmVudFRhcmdldERhdGEoKSB7IHJldHVybiAmbV9ldmVudFRhcmdldERhdGE7
IH0KIAogICAgIHZvaWQgdGVybWluYXRlKCk7Ci0gICAgdm9pZCByZWFkSW50ZXJuYWwoQmxvYios
IEZpbGVSZWFkZXJMb2FkZXI6OlJlYWRUeXBlKTsKKyAgICB2b2lkIHJlYWRJbnRlcm5hbChCbG9i
KiwgRmlsZVJlYWRlckxvYWRlcjo6UmVhZFR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IGZpcmVFcnJvckV2ZW50KGludCBodHRwU3RhdHVzQ29kZSk7CiAgICAgdm9pZCBmaXJlRXZlbnQo
Y29uc3QgQXRvbWljU3RyaW5nJiB0eXBlKTsKIAotICAgIEludGVybmFsU3RhdGUgbV9zdGF0ZTsK
KyAgICBSZWFkeVN0YXRlIG1fc3RhdGU7CisgICAgYm9vbCBtX2Fib3J0aW5nOwogICAgIEV2ZW50
VGFyZ2V0RGF0YSBtX2V2ZW50VGFyZ2V0RGF0YTsKIAogICAgIFJlZlB0cjxCbG9iPiBtX2Jsb2I7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaWRsIGIvU291
cmNlL1dlYkNvcmUvZmlsZWFwaS9GaWxlUmVhZGVyLmlkbAppbmRleCBhZWMxY2IwLi42MWQ1YWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL0ZpbGVSZWFkZXIuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2ZpbGVhcGkvRmlsZVJlYWRlci5pZGwKQEAgLTQ2LDEwICs0NiwxNCBA
QCBtb2R1bGUgaHRtbCB7CiAgICAgICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSB1bnNpZ25lZCBzaG9y
dCByZWFkeVN0YXRlOwogCiAgICAgICAgIC8vIGFzeW5jIHJlYWQgbWV0aG9kcwotICAgICAgICB2
b2lkIHJlYWRBc0FycmF5QnVmZmVyKGluIEJsb2IgYmxvYik7Ci0gICAgICAgIHZvaWQgcmVhZEFz
QmluYXJ5U3RyaW5nKGluIEJsb2IgYmxvYik7Ci0gICAgICAgIHZvaWQgcmVhZEFzVGV4dChpbiBC
bG9iIGJsb2IsIGluIFtPcHRpb25hbF0gRE9NU3RyaW5nIGVuY29kaW5nKTsKLSAgICAgICAgdm9p
ZCByZWFkQXNEYXRhVVJMKGluIEJsb2IgYmxvYik7CisgICAgICAgIHZvaWQgcmVhZEFzQXJyYXlC
dWZmZXIoaW4gQmxvYiBibG9iKQorICAgICAgICAgICAgcmFpc2VzKE9wZXJhdGlvbk5vdEFsbG93
ZWRFeGNlcHRpb24pOworICAgICAgICB2b2lkIHJlYWRBc0JpbmFyeVN0cmluZyhpbiBCbG9iIGJs
b2IpCisgICAgICAgICAgICByYWlzZXMoT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbik7Cisg
ICAgICAgIHZvaWQgcmVhZEFzVGV4dChpbiBCbG9iIGJsb2IsIGluIFtPcHRpb25hbF0gRE9NU3Ry
aW5nIGVuY29kaW5nKQorICAgICAgICAgICAgcmFpc2VzKE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNl
cHRpb24pOworICAgICAgICB2b2lkIHJlYWRBc0RhdGFVUkwoaW4gQmxvYiBibG9iKQorICAgICAg
ICAgICAgcmFpc2VzKE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24pOwogCiAgICAgICAgIHZv
aWQgYWJvcnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9PcGVyYXRp
b25Ob3RBbGxvd2VkRXhjZXB0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9maWxlYXBpL09wZXJhdGlv
bk5vdEFsbG93ZWRFeGNlcHRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li44MTZhZjFkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvZmlsZWFwaS9PcGVy
YXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmgKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE9wZXJh
dGlvbk5vdEFsbG93ZWRFeGNlcHRpb25faAorI2RlZmluZSBPcGVyYXRpb25Ob3RBbGxvd2VkRXhj
ZXB0aW9uX2gKKworI2lmIEVOQUJMRShCTE9CKSB8fCBFTkFCTEUoRklMRV9TWVNURU0pCisKKyNp
bmNsdWRlICJFeGNlcHRpb25CYXNlLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
T3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbiA6IHB1YmxpYyBFeGNlcHRpb25CYXNlIHsKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9u
PiBjcmVhdGUoY29uc3QgRXhjZXB0aW9uQ29kZURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKKyAg
ICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgT3BlcmF0aW9uTm90QWxsb3dlZEV4Y2Vw
dGlvbihkZXNjcmlwdGlvbikpOworICAgIH0KKworICAgIHN0YXRpYyBjb25zdCBpbnQgT3BlcmF0
aW9uTm90QWxsb3dlZEV4Y2VwdGlvbk9mZnNldCA9IDEzMDA7CisgICAgc3RhdGljIGNvbnN0IGlu
dCBPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uTWF4ID0gMTM5OTsKKworICAgIGVudW0gT3Bl
cmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbkNvZGUgeworICAgICAgICBOT1RfQUxMT1dFRF9FUlIg
PSBPcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uT2Zmc2V0ICsgMSwKKyAgICB9OworCitwcml2
YXRlOgorICAgIE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24oY29uc3QgRXhjZXB0aW9uQ29k
ZURlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKKyAgICAgICAgOiBFeGNlcHRpb25CYXNlKGRlc2Ny
aXB0aW9uKQorICAgIHsKKyAgICB9Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoQkxPQikgfHwgRU5BQkxFKEZJTEVfU1lTVEVNKQorCisjZW5kaWYgLy8g
T3BlcmF0aW9uTm90QWxsb3dlZEV4Y2VwdGlvbl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9maWxlYXBpL09wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24uaWRsIGIvU291cmNlL1dlYkNv
cmUvZmlsZWFwaS9PcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmlkbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4yMTVjYmM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvZmlsZWFwaS9PcGVyYXRpb25Ob3RBbGxvd2VkRXhjZXB0aW9uLmlkbApAQCAtMCww
ICsxLDQ4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0
OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
CisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9m
IEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJl
IHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJ
Q1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKK21vZHVsZSBodG1sIHsKKyAgICBpbnRlcmZhY2UgWworICAgICAgICBDb25kaXRp
b25hbD1CTE9CfEZJTEVfU1lTVEVNLAorICAgICAgICBEb250Q2hlY2tFbnVtcywKKyAgICAgICAg
Tm9TdGF0aWNUYWJsZXMKKyAgICBdIE9wZXJhdGlvbk5vdEFsbG93ZWRFeGNlcHRpb24geworICAg
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgdW5zaWduZWQgc2hvcnQgICBjb2RlOworICAgICAgICBy
ZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBuYW1lOworICAgICAgICByZWFkb25s
eSBhdHRyaWJ1dGUgRE9NU3RyaW5nICAgICAgICBtZXNzYWdlOworCisjaWYgZGVmaW5lZChMQU5H
VUFHRV9KQVZBU0NSSVBUKSAmJiBMQU5HVUFHRV9KQVZBU0NSSVBUCisgICAgICAgIC8vIE92ZXJy
aWRlIGluIGEgTW96aWxsYSBjb21wYXRpYmxlIGZvcm1hdAorICAgICAgICBbRG9udEVudW1dIERP
TVN0cmluZyB0b1N0cmluZygpOworI2VuZGlmCisKKyAgICAgICAgY29uc3QgdW5zaWduZWQgc2hv
cnQgTk9UX0FMTE9XRURfRVJSID0gMTsKKyAgICB9OworfQo=
</data>
<flag name="review"
          id="89035"
          type_id="1"
          status="+"
          setter="levin"
    />
    <flag name="commit-queue"
          id="89036"
          type_id="3"
          status="-"
          setter="jianli"
    />
          </attachment>
      

    </bug>

</bugzilla>