<?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>214267</bug_id>
          
          <creation_ts>2020-07-13 12:50:25 -0700</creation_ts>
          <short_desc>Updated AudioContext constructor according to spec</short_desc>
          <delta_ts>2020-07-14 08:52: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>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Clark Wang">clark_wang</reporter>
          <assigned_to name="Clark Wang">clark_wang</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1671122</commentid>
    <comment_count>0</comment_count>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-13 12:50:25 -0700</bug_when>
    <thetext>Updated AudioContext constructor according to spec: https://www.w3.org/TR/webaudio/#AudioContext-constructors. Added in new files to support AudioContextOptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671129</commentid>
    <comment_count>1</comment_count>
      <attachid>404168</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-13 13:07:19 -0700</bug_when>
    <thetext>Created attachment 404168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671136</commentid>
    <comment_count>2</comment_count>
      <attachid>404168</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-07-13 13:29:59 -0700</bug_when>
    <thetext>Comment on attachment 404168
Patch

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

&gt; Source/WebCore/Modules/webaudio/AudioContext.cpp:68
&gt; +    Optional&lt;float&gt; sampleRate = contextOptions.sampleRate;

This local variable is not needed.

&gt; Source/WebCore/Modules/webaudio/AudioContext.cpp:78
&gt; +AudioContext::AudioContext(Document&amp; document, Optional&lt;float&gt; sampleRate)

I suggest passing the whole AudioContextOptions struct here.

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.h:287
&gt;      explicit BaseAudioContext(Document&amp;);

I suggest passing the whole AudioContextOptions struct here (with a default value):
explicit BaseAudioContext(Document&amp;, const AudioContextOptions&amp; = { });

&gt; Source/WebCore/Modules/webaudio/BaseAudioContext.h:289
&gt; +    BaseAudioContext(Document&amp;, Optional&lt;float&gt;);

Let&apos;s not add yet another constructor.

&gt; Source/WebCore/Modules/webaudio/DefaultAudioDestinationNode.h:49
&gt;      explicit DefaultAudioDestinationNode(BaseAudioContext&amp;);

explicit DefaultAudioDestinationNode(BaseAudioContext&amp;, Optional&lt;float&gt; = WTF::nullopt);

&gt; Source/WebCore/Modules/webaudio/DefaultAudioDestinationNode.h:50
&gt; +    DefaultAudioDestinationNode(BaseAudioContext&amp;, Optional&lt;float&gt;);

Let&apos;s not add another constructor.

&gt; LayoutTests/imported/w3c/web-platform-tests/webaudio/the-audio-api/the-convolvernode-interface/realtime-conv-expected.txt:3
&gt; +FAIL Executing &quot;test&quot; promise_test: Unhandled rejection with value: object &quot;SyntaxError: sampleRate is not in range&quot;

Why are we failing this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671215</commentid>
    <comment_count>3</comment_count>
      <attachid>404191</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-07-13 16:10:35 -0700</bug_when>
    <thetext>Created attachment 404191
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671379</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-14 08:51:22 -0700</bug_when>
    <thetext>Committed r264342: &lt;https://trac.webkit.org/changeset/264342&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 404191.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1671381</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-14 08:52:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/65545259&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404168</attachid>
            <date>2020-07-13 13:07:19 -0700</date>
            <delta_ts>2020-07-13 16:10:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214267-20200713160718.patch</filename>
            <type>text/plain</type>
            <size>30209</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA5OGQ1NmI5ZjkxNGYz
MzIzZTI4YTI1NjAxYzBmNTk5YmE2ZmYzYy4uZGI0NjRlY2QxYTM3MGVlNDkzYjRmZDBjNDg0ZGY2
MTEzOGRkZDYxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA3LTEzICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlZCBBdWRpb0Nv
bnRleHQgY29uc3RydWN0b3IgYWNjb3JkaW5nIHRvIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDI2NworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgQXVkaW9Db250ZXh0IGNvbnN0cnVj
dG9yIGFjY29yZGluZyB0byBzcGVjOiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI0F1
ZGlvQ29udGV4dC1jb25zdHJ1Y3RvcnMuCisgICAgICAgIEFkZGVkIGluIGZpbGVzIGFjY29yZGlu
Z2x5IHRvIHN1cHBvcnQgQXVkaW9Db250ZXh0T3B0aW9ucy4KKworICAgICAgICBSZS1iYXNlbGlu
ZWQgZXhpc3RpbmcgdGVzdHMuIE9uZSBuZXcgdGVzdCBjYXNlIHBhc3NlcywgYW5kIG9uZSBmYWls
cyBkdWUgdG8gY3VycmVudCBhY2NlcHRlZCByYW5nZSBmb3Igc2FtcGxlUmF0ZS4KKworICAgICAg
ICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmls
ZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dCk6CisgICAgICAg
ICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1
ZGlvQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29u
dGV4dC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRMYXRlbmN5
Q2F0ZWdvcnkuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHRMYXRlbmN5Q2F0ZWdvcnkuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dE9wdGlvbnMuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0NvbnRleHRPcHRpb25zLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0Nv
bnRleHQ6OkJhc2VBdWRpb0NvbnRleHQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmFz
ZUF1ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRBdWRpb0Rlc3Rp
bmF0aW9uTm9kZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJO
b2RlOjpQYW5uZXJOb2RlKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMDctMDkgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbQmluZGluZ3NdIEFkZCBkZWZhdWx0IHZh
bHVlIHN1cHBvcnQgZm9yIHVuaW9uIHR5cGVzIGluIGRpY3Rpb25hcnkgbWVtYmVycwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFr
ZUxpc3RzLnR4dAppbmRleCAyNzkzMTIxODFhNjliMjliNmQ5NzJiYjEzOGFjMmUxNTViZmM2MmZh
Li4wNzQyMzhhNzU5YzgwNGRmOWIyNGNiNDY3ZDkzMTE3YWNiYmUzZmY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dApAQCAtNDUwLDYgKzQ1MCw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVT
CiAgICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlckNhbGxiYWNrLmlkbAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVk
aW8vQXVkaW9Db250ZXh0LmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0TGF0
ZW5jeUNhdGVnb3J5LmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0T3B0aW9u
cy5pZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dFN0YXRlLmlkbAogICAgIE1v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0xpc3RlbmVyLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKaW5kZXggODMwOWIyOWIyYmJhMjE1NDcyMzE0ZTcyZDE1OWZmM2Q4
YTg1YTBmZi4uNWNhYWU3ZDcxNDlkZWRjNjhkM2NhMGFkNmNkZjQwMGE0ZjdlMjNjZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0yOTks
NiArMjk5LDggQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJDYWxsYmFjay5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2Rl
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCisk
KFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29y
eS5pZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0T3B0aW9u
cy5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0U3RhdGUu
aWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2Rl
LmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmlkbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxp
c3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRl
eCAwMzQ2YmNlOTRlMDZmN2QzZGExZTk0MWM5MTgyODk3ZGU4ZTE2MjdkLi41ZDYzYmYyNjA5MzJh
MTlmN2RhNGE5MzhhMWZmMmI5MWYxMTczMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTU1LDYgKzE1NSwxMCBAQCAkKEJVSUxU
X1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvQ29uZmlndXJhdGlv
bi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVk
aW9Db25maWd1cmF0aW9uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQXVkaW9Db250ZXh0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRT
b3VyY2VzL1dlYkNvcmUvSlNBdWRpb0NvbnRleHQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb0NvbnRleHRMYXRlbmN5Q2F0ZWdvcnkuY3BwCisk
KEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvQ29udGV4
dExhdGVuY3lDYXRlZ29yeS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU0F1ZGlvQ29udGV4dE9wdGlvbnMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvQ29udGV4dE9wdGlvbnMuaAogJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb0NvbnRleHRTdGF0ZS5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9D
b250ZXh0U3RhdGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvSlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDdkODI5YWI2NzYxMmM1NWQxYThkYzQwMTZmOWE2Y2QzYjUyZjkwM2EuLmJlM2FmODMy
NGMyMzNiYzQ5MTIwMWUwMWFkZWQ3MDc3ZTAxZjAxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMzgyLDYgKzM4Miw4IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdl
YkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJDYWxsYmFjay5pZGwgXAogICAgICQo
V2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbCBcCisgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29yeS5pZGwg
XAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRPcHRpb25zLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dFN0YXRlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2Rl
LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuaWRs
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNw
cAppbmRleCAyN2UzNGU2Y2FjNTNiNjBkZWIxYjE4OTU3NDRjNDNhYTc1ODI4M2E2Li44ZjRjODE1
Zjc0OTYwMzRiYzc5MDg1MjQ1OWU1ZDEzYTE0ZjA5MDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC01MSwyMyArNTEsMzIgQEAg
Y29uc3RleHByIHVuc2lnbmVkIG1heEhhcmR3YXJlQ29udGV4dHMgPSA0OwogI2VuZGlmCiAKIFdU
Rl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChBdWRpb0NvbnRleHQpOwotICAgIAotRXhjZXB0aW9u
T3I8UmVmPEF1ZGlvQ29udGV4dD4+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1
bWVudCkKKworRXhjZXB0aW9uT3I8UmVmPEF1ZGlvQ29udGV4dD4+IEF1ZGlvQ29udGV4dDo6Y3Jl
YXRlKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucyYgY29udGV4
dE9wdGlvbnMpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICNpZiBPUyhXSU5ET1dT
KQogICAgIGlmIChzX2hhcmR3YXJlQ29udGV4dENvdW50ID49IG1heEhhcmR3YXJlQ29udGV4dHMp
CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBRdW90YUV4Y2VlZGVkRXJyb3IgfTsKICNlbmRp
ZgotCi0gICAgYXV0byBhdWRpb0NvbnRleHQgPSBhZG9wdFJlZigqbmV3IEF1ZGlvQ29udGV4dChk
b2N1bWVudCkpOworICAgIAorICAgIGlmICghZG9jdW1lbnQuaXNGdWxseUFjdGl2ZSgpKQorICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1bWVudCBpcyBu
b3QgZnVsbHkgYWN0aXZlIl9zIH07CisgICAgCisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hl
cmUgbGF0ZW5jeUhpbnQgc2hvdWxkIGdvLgorICAgIAorICAgIE9wdGlvbmFsPGZsb2F0PiBzYW1w
bGVSYXRlID0gY29udGV4dE9wdGlvbnMuc2FtcGxlUmF0ZTsKKyAgICBpZiAoc2FtcGxlUmF0ZS5o
YXNWYWx1ZSgpICYmICFpc1NhbXBsZVJhdGVSYW5nZUdvb2Qoc2FtcGxlUmF0ZS52YWx1ZSgpKSkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAic2FtcGxlUmF0ZSBpcyBu
b3QgaW4gcmFuZ2UiX3MgfTsKKyAgICAKKyAgICBhdXRvIGF1ZGlvQ29udGV4dCA9IGFkb3B0UmVm
KCpuZXcgQXVkaW9Db250ZXh0KGRvY3VtZW50LCBzYW1wbGVSYXRlKSk7CiAgICAgYXVkaW9Db250
ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4gYXVkaW9Db250ZXh0OwogfQogCiAv
LyBDb25zdHJ1Y3RvciBmb3IgcmVuZGVyaW5nIHRvIHRoZSBhdWRpbyBoYXJkd2FyZS4KLUF1ZGlv
Q29udGV4dDo6QXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1bWVudCkKLSAgICA6IEJhc2VBdWRp
b0NvbnRleHQoZG9jdW1lbnQpCitBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dChEb2N1bWVudCYg
ZG9jdW1lbnQsIE9wdGlvbmFsPGZsb2F0PiBzYW1wbGVSYXRlKQorICAgIDogQmFzZUF1ZGlvQ29u
dGV4dChkb2N1bWVudCwgc2FtcGxlUmF0ZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKaW5kZXggYmZhODA0MDA5NDlmYjNjYjUzOThl
Y2IxMjlmOTk1NTk4OGIwY2IzMy4uMzIzNmY2ZWJiMTJmODZmYmQ3ODg1ZTQxNDkyNDgyOTI3NjZj
Mzc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQXVkaW9D
b250ZXh0T3B0aW9ucy5oIgogI2luY2x1ZGUgIkJhc2VBdWRpb0NvbnRleHQuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewpAQCAtMzMsNyArMzQsNyBAQCBjbGFzcyBBdWRpb0NvbnRleHQgOiBwdWJs
aWMgQmFzZUF1ZGlvQ29udGV4dCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChBdWRpb0Nv
bnRleHQpOwogcHVibGljOgogICAgIC8vIENyZWF0ZSBhbiBBdWRpb0NvbnRleHQgZm9yIHJlbmRl
cmluZyB0byB0aGUgYXVkaW8gaGFyZHdhcmUuCi0gICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxB
dWRpb0NvbnRleHQ+PiBjcmVhdGUoRG9jdW1lbnQmKTsKKyAgICBzdGF0aWMgRXhjZXB0aW9uT3I8
UmVmPEF1ZGlvQ29udGV4dD4+IGNyZWF0ZShEb2N1bWVudCYsIGNvbnN0IEF1ZGlvQ29udGV4dE9w
dGlvbnMmID0geyB9KTsKIAogICAgIHZvaWQgY2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOwogCkBAIC00Niw3ICs0Nyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiBwcml2YXRlOgotICAg
IGV4cGxpY2l0IEF1ZGlvQ29udGV4dChEb2N1bWVudCYpOworICAgIEF1ZGlvQ29udGV4dChEb2N1
bWVudCYsIE9wdGlvbmFsPGZsb2F0Pik7CiAgICAgQXVkaW9Db250ZXh0KERvY3VtZW50JiwgQXVk
aW9CdWZmZXIqIHJlbmRlclRhcmdldCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwKaW5kZXggNjk5M2EwYWI3YTliNjQ2YjljNmU5
MTRlYmZlNDQxNzU1NTAxMWE4Ni4uODU4YzU2ZGVmZmZhODI1YzVkY2I1ZDJhZmNlZTUxY2M0Mjhk
YTMxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0Nv
bnRleHQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0LmlkbApAQCAtMjksNyArMjksNyBAQAogICAgIEVuYWJsZWRCeVNldHRpbmc9V2ViQXVkaW8m
TW9kZXJuVW5wcmVmaXhlZFdlYkF1ZGlvLAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JU
LAogXSBpbnRlcmZhY2UgQXVkaW9Db250ZXh0IDogQmFzZUF1ZGlvQ29udGV4dCB7Ci0gICAgW0Nh
bGxXaXRoPURvY3VtZW50LCBNYXlUaHJvd0V4Y2VwdGlvbl0gY29uc3RydWN0b3IoKTsKKyAgICBb
Q2FsbFdpdGg9RG9jdW1lbnQsIE1heVRocm93RXhjZXB0aW9uXSBjb25zdHJ1Y3RvcihvcHRpb25h
bCBBdWRpb0NvbnRleHRPcHRpb25zIGNvbnRleHRPcHRpb25zKTsKIAogICAgIC8vIEZJWE1FOiBB
ZGQgc3VwcG9ydC4KICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGJhc2VMYXRlbmN5
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRl
eHRMYXRlbmN5Q2F0ZWdvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ0NjIwMTMwMmVkNGRiZTIw
ZjU4ZWE0ZWUwOTY0YTUyYTA2N2Y4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5LmgKQEAgLTAsMCAr
MSwzNiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK2VudW0gY2xhc3MgQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5IHsKKyAgICBCYWxhbmNl
ZCwKKyAgICBJbnRlcmFjdGl2ZSwKKyAgICBQbGF5YmFjaywKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYWVkZjlh
OGQ1N2JhZTQ0MjAwNGU1NzAxOTIwNjYwNDM5OWY1MTE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRMYXRlbmN5Q2F0ZWdvcnku
aWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitlbnVtIEF1ZGlvQ29udGV4dExhdGVu
Y3lDYXRlZ29yeSB7CisgICAgImJhbGFuY2VkIiwKKyAgICAiaW50ZXJhY3RpdmUiLAorICAgICJw
bGF5YmFjayIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvQ29udGV4dE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0T3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5MDQ5Yzg1ZjBkMjFjZTE2M2EwZGU2
ODVmOTM3NDhlM2YwYjFlMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dE9wdGlvbnMuaApAQCAtMCwwICsxLDQzIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVk
ZSAiQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFs
Lmg+CisjaW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitz
dHJ1Y3QgQXVkaW9Db250ZXh0T3B0aW9ucyB7CisgICAgVmFyaWFudDxBdWRpb0NvbnRleHRMYXRl
bmN5Q2F0ZWdvcnksIGRvdWJsZT4gbGF0ZW5jeUhpbnQgPSBBdWRpb0NvbnRleHRMYXRlbmN5Q2F0
ZWdvcnk6OkludGVyYWN0aXZlOworICAgIE9wdGlvbmFsPGZsb2F0PiBzYW1wbGVSYXRlOworfTsK
KworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
T3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dE9wdGlvbnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjUwYzM4MTQwMDUzZWZiOGRhZjA0ZTQ4ZThhODZmYzZk
NmE2YzQwMzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvQ29udGV4dE9wdGlvbnMuaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
WworICAgIENvbmRpdGlvbmFsPVdFQl9BVURJTywKK10gZGljdGlvbmFyeSBBdWRpb0NvbnRleHRP
cHRpb25zIHsKKyAgICAoQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5IG9yIGRvdWJsZSkgbGF0
ZW5jeUhpbnQgPSAiaW50ZXJhY3RpdmUiOworICAgIGZsb2F0IHNhbXBsZVJhdGU7Cit9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5j
cHAKaW5kZXggY2JlYzZlMWI4YWI1MzQ3OGNlNzRiNDdhZmQ5NDZmZjFlOWQ2ZjkwYS4uNWE3OGVj
NjIyNjczZWJhYmQ3MTViNjk4NGI2YWNiODczOTkwYzQ3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBAIC0xNTEsNiAr
MTUxLDMwIEBAIEJhc2VBdWRpb0NvbnRleHQ6OkJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRv
Y3VtZW50LCBBdWRpb0J1ZmZlciogcmVuZGVyVGFyZ2V0CiAgICAgbV9kZXN0aW5hdGlvbk5vZGUg
PSBPZmZsaW5lQXVkaW9EZXN0aW5hdGlvbk5vZGU6OmNyZWF0ZSgqdGhpcywgbV9yZW5kZXJUYXJn
ZXQuZ2V0KCkpOwogfQogCitCYXNlQXVkaW9Db250ZXh0OjpCYXNlQXVkaW9Db250ZXh0KERvY3Vt
ZW50JiBkb2N1bWVudCwgT3B0aW9uYWw8ZmxvYXQ+IHNhbXBsZVJhdGUpCisgICAgOiBBY3RpdmVE
T01PYmplY3QoZG9jdW1lbnQpCisjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECisgICAgLCBtX2xv
Z2dlcihkb2N1bWVudC5sb2dnZXIoKSkKKyAgICAsIG1fbG9nSWRlbnRpZmllcih1bmlxdWVMb2dJ
ZGVudGlmaWVyKCkpCisjZW5kaWYKKyAgICAsIG1fbWVkaWFTZXNzaW9uKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uOjpjcmVhdGUoUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzaGFyZWRNYW5hZ2Vy
KCksICp0aGlzKSkKKyAgICAsIG1fZXZlbnRRdWV1ZShNYWluVGhyZWFkR2VuZXJpY0V2ZW50UXVl
dWU6OmNyZWF0ZSgqdGhpcykpCit7CisgICAgLy8gQWNjb3JkaW5nIHRvIHNwZWMgQXVkaW9Db250
ZXh0IG11c3QgZGllIG9ubHkgYWZ0ZXIgcGFnZSBuYXZpZ2F0ZS4KKyAgICAvLyBMZXRzIG1hcmsg
aXQgYXMgQWN0aXZlRE9NT2JqZWN0IHdpdGggcGVuZGluZyBhY3Rpdml0eSBhbmQgdW5tYXJrIGl0
IGluIGNsZWFyIG1ldGhvZC4KKyAgICBtYWtlUGVuZGluZ0FjdGl2aXR5KCk7CisKKyAgICBjb25z
dHJ1Y3RDb21tb24oKTsKKworICAgIG1fZGVzdGluYXRpb25Ob2RlID0gRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlOjpjcmVhdGUoKnRoaXMsIHNhbXBsZVJhdGUpOworCisgICAgLy8gSW5pdGlh
bGl6ZSB0aGUgZGVzdGluYXRpb24gbm9kZSdzIG11dGVkIHN0YXRlIHRvIG1hdGNoIHRoZSBwYWdl
J3MgY3VycmVudCBtdXRlZCBzdGF0ZS4KKyAgICBwYWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpOwor
CisgICAgZG9jdW1lbnQuYWRkQXVkaW9Qcm9kdWNlcigqdGhpcyk7CisgICAgZG9jdW1lbnQucmVn
aXN0ZXJGb3JWaXNpYmlsaXR5U3RhdGVDaGFuZ2VkQ2FsbGJhY2tzKCp0aGlzKTsKK30KKwogdm9p
ZCBCYXNlQXVkaW9Db250ZXh0Ojpjb25zdHJ1Y3RDb21tb24oKQogewogICAgIEZGVEZyYW1lOjpp
bml0aWFsaXplKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0Jhc2VBdWRpb0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFz
ZUF1ZGlvQ29udGV4dC5oCmluZGV4IDUwYWEwNzAzM2YzOTI3ZjhlZDdlYmY1ZjI2MjE5ZWY5OTk3
NDZkNDYuLmM3YzgxZGM1NDI5OTJkMTg4MDU5MzE1YWVlMzU4YTgxMjZmY2Y4OWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5oCkBA
IC0yODYsNiArMjg2LDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEJhc2VB
dWRpb0NvbnRleHQoRG9jdW1lbnQmKTsKICAgICBCYXNlQXVkaW9Db250ZXh0KERvY3VtZW50Jiwg
QXVkaW9CdWZmZXIqIHJlbmRlclRhcmdldCk7CisgICAgQmFzZUF1ZGlvQ29udGV4dChEb2N1bWVu
dCYsIE9wdGlvbmFsPGZsb2F0Pik7CiAgICAgCiAgICAgc3RhdGljIGJvb2wgaXNTYW1wbGVSYXRl
UmFuZ2VHb29kKGZsb2F0IHNhbXBsZVJhdGUpOwogICAgIHZvaWQgY2xlYXJQZW5kaW5nQWN0aXZp
dHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVs
dEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAppbmRleCA3ZTNmZjk1MzM2NjdlNDUw
OWI0OWNkOGFiZDY3ZDQ0MzA2NTU3MjNmLi4zZGMwZWQyYzQ4Y2M5MTU5OTc4MjEzNGQ4N2QxZDJl
NTY5YTc1MWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Rl
ZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCkBAIC01Miw2ICs1Miwx
NSBAQCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU6OkRlZmF1bHRBdWRpb0Rlc3RpbmF0aW9u
Tm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZQogICAgIG1fY2hhbm5lbEludGVycHJldGF0aW9u
ID0gQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VyczsKIH0KIAorRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlOjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4
dCYgY29udGV4dCwgT3B0aW9uYWw8ZmxvYXQ+IHNhbXBsZVJhdGUpCisgICAgOiBBdWRpb0Rlc3Rp
bmF0aW9uTm9kZShjb250ZXh0LCBzYW1wbGVSYXRlLnZhbHVlT3IoQXVkaW9EZXN0aW5hdGlvbjo6
aGFyZHdhcmVTYW1wbGVSYXRlKCkpKQoreworICAgIC8vIE5vZGUtc3BlY2lmaWMgZGVmYXVsdCBt
aXhpbmcgcnVsZXMuCisgICAgbV9jaGFubmVsQ291bnQgPSAyOworICAgIG1fY2hhbm5lbENvdW50
TW9kZSA9IENoYW5uZWxDb3VudE1vZGU6OkV4cGxpY2l0OworICAgIG1fY2hhbm5lbEludGVycHJl
dGF0aW9uID0gQ2hhbm5lbEludGVycHJldGF0aW9uOjpTcGVha2VyczsKK30KKwogRGVmYXVsdEF1
ZGlvRGVzdGluYXRpb25Ob2RlOjp+RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKCkKIHsKICAg
ICB1bmluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCmluZGV4IDMyNTM5NzEz
ZjJmMDE3MzJlZjY2ZjIzMGJjNmUwNzQ5ZmFjOGI5Y2UuLjQ3NTJmNjUxM2M0MzA5ZWE1OTFlZGEy
NjYyYjI4MDEwNmI0MmQ2M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaApAQCAtMzcsMTEg
KzM3LDE3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERl
ZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZShjb250ZXh0KSk7ICAgICAKICAgICB9CisgICAgCisg
ICAgc3RhdGljIFJlZjxEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGU+IGNyZWF0ZShCYXNlQXVk
aW9Db250ZXh0JiBjb250ZXh0LCBPcHRpb25hbDxmbG9hdD4gc2FtcGxlUmF0ZSkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZShj
b250ZXh0LCBzYW1wbGVSYXRlKSk7CisgICAgfQogCiAgICAgdmlydHVhbCB+RGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlKCk7CiAgICAgCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IERlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNlQXVkaW9Db250ZXh0Jik7CisgICAgRGVmYXVsdEF1ZGlv
RGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmLCBPcHRpb25hbDxmbG9hdD4pOwogICAg
IHZvaWQgY3JlYXRlRGVzdGluYXRpb24oKTsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZSgpIGZpbmFs
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2Rl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKaW5k
ZXggMjg5OGQ1MDE2MzdjN2RkZDhiMjk5ZTE3OGU5ZTA4ODY0NjQ1NDc2Mi4uZDFjOTRiNjA4NmY3
ZjQ4OGIwNDAxMDYxNDU3M2M0NmZkZTY3MTc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCkBAIC0xNDcsOCArMTQ3LDYgQEAgUGFubmVyTm9k
ZTo6UGFubmVyTm9kZShCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBjb25zdCBQYW5uZXJPcHRp
b25zJiBvcHRpb25zKQogICAgIGFkZElucHV0KG1ha2VVbmlxdWU8QXVkaW9Ob2RlSW5wdXQ+KHRo
aXMpKTsKICAgICBhZGRPdXRwdXQobWFrZVVuaXF1ZTxBdWRpb05vZGVPdXRwdXQ+KHRoaXMsIDIp
KTsKICAgICAKLSAgICAvLyBGSVhNRTogU2V0IFBhbm5lck5vZGUgc3BlY2lmaWMgY2hhbm5lbENv
dW50LCBjaGFubmVsQ291bnRNb2RlLCBjaGFubmVsSW50ZXJwcmV0YXRpb24gaGVyZS4KLSAgICAK
ICAgICBpbml0aWFsaXplKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggODlhYjk5NmVhMTE0OTBk
YTRjYTg0NDUzMGE4NmFjM2JkNGFjOWVhNi4uMGYzNzNiMzU3Njc1N2E4ODllMGZlNDUzYWE2Njc1
ZGNjZDA0NTQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTI2MjgsNiArMjYyOCw4IEBAIEpTQXVkaW9C
dWZmZXJDYWxsYmFjay5jcHAKIEpTQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmNwcAogSlNBdWRpb0Nv
bmZpZ3VyYXRpb24uY3BwCiBKU0F1ZGlvQ29udGV4dC5jcHAKK0pTQXVkaW9Db250ZXh0TGF0ZW5j
eUNhdGVnb3J5LmNwcAorSlNBdWRpb0NvbnRleHRPcHRpb25zLmNwcAogSlNBdWRpb0NvbnRleHRT
dGF0ZS5jcHAKIEpTQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCiBKU0F1ZGlvTGlzdGVuZXIuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
aW5kZXggZTU4NDUwZGZkODMwY2JmM2IwNTZkZWI3YjRmNjRiM2YyMDFlMzJlOS4uZWU5Y2VmYTE4
MmFiZDRkMWYyNjE2MGY2YmQzZTI4MDc2ZWQ4NjQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTA0Myw2ICs1MDQzLDggQEAK
IAkJRTcxNDY3QjYyNEFCQUYxRDAwRkIyRjUwIC8qIFBhbm5lck9wdGlvbnMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU3MTQ2N0I1MjRBQkFGMUQwMEZC
MkY1MCAvKiBQYW5uZXJPcHRpb25zLmggKi87IH07CiAJCUU3ODVEOTE1MjRCNEQxQ0EwMDE0REIy
MSAvKiBDaGFubmVsQ291bnRNb2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNzg1RDkxMTI0QjREMUIxMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9k
ZS5oICovOyB9OwogCQlFNzg1RDkzNDI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJl
dGF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
Nzg1RDkzMTI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggKi87IH07
CisJCUU3ODVEOTYxMjRCN0Y3MzUwMDE0REIyMSAvKiBBdWRpb0NvbnRleHRPcHRpb25zLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1RDk1RjI0QjdG
NzM0MDAxNERCMjEgLyogQXVkaW9Db250ZXh0T3B0aW9ucy5oICovOyB9OworCQlFNzg1RDk2MjI0
QjdGNzM1MDAxNERCMjEgLyogQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNzg1RDk2MDI0QjdGNzM0MDAx
NERCMjEgLyogQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5LmggKi87IH07CiAJCUVCRTVCMjI2
MjQ1QTI2RUYwMDNBNUE4OCAvKiBTUUxpdGVTdGF0ZW1lbnRBdXRvUmVzZXRTY29wZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRUJFNUIyMjQyNDVBMjZF
RTAwM0E1QTg4IC8qIFNRTGl0ZVN0YXRlbWVudEF1dG9SZXNldFNjb3BlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRUJGNTEyMUMxNjk2NDk2QzAw
NTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCRjUxMjFBMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVD
b252ZXJzaW9ucy5jcHAgKi87IH07CiAJCUVCRjUxMjFEMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5
cGVDb252ZXJzaW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRUJGNTEyMUIxNjk2NDk2QzAwNTZCRDI1IC8qIEpTVHlwZUNvbnZlcnNpb25zLmggKi87
IH07CkBAIC0xNTc4OCw2ICsxNTc5MCwxMCBAQAogCQlFNzg1RDkxMzI0QjREMUIxMDAxNERCMjEg
LyogQ2hhbm5lbENvdW50TW9kZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2hhbm5lbENvdW50TW9kZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3ODVEOTMxMjRCNjM2RkYwMDE0REIyMSAvKiBDaGFu
bmVsSW50ZXJwcmV0YXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2hhbm5lbEludGVycHJldGF0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU3ODVEOTMzMjRCNjM2RkYwMDE0REIy
MSAvKiBDaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENoYW5uZWxJbnRlcnByZXRhdGlv
bi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU3ODVEOTVDMjRCN0Y3MjYwMDE0
REIyMSAvKiBBdWRpb0NvbnRleHRPcHRpb25zLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdWRpb0NvbnRleHRPcHRpb25z
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTc4NUQ5NUUyNEI3RjcyNzAwMTRE
QjIxIC8qIEF1ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29yeS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXVkaW9Db250ZXh0
TGF0ZW5jeUNhdGVnb3J5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTc4NUQ5
NUYyNEI3RjczNDAwMTREQjIxIC8qIEF1ZGlvQ29udGV4dE9wdGlvbnMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9Db250ZXh0T3B0aW9ucy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFNzg1RDk2MDI0QjdGNzM0MDAxNERCMjEgLyogQXVkaW9Db250ZXh0
TGF0ZW5jeUNhdGVnb3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlv
Q29udGV4dExhdGVuY3lDYXRlZ29yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
QjA4MUNEODE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFR5cGVDb252ZXJzaW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQjA4
MUNEOTE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBUeXBlQ29u
dmVyc2lvbnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFQkU1QjIyNDI0NUEy
NkVFMDAzQTVBODggLyogU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0U2NvcGUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1FMaXRlU3RhdGVtZW50QXV0b1Jlc2V0U2NvcGUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI5MzI1LDYgKzI5MzMxLDEwIEBACiAJCQkJ
RkQzMTVGQkExMkIwMjY3NTAwQzFBMzU5IC8qIEF1ZGlvQ29udGV4dC5jcHAgKi8sCiAJCQkJRkQz
MTVGQkIxMkIwMjY3NTAwQzFBMzU5IC8qIEF1ZGlvQ29udGV4dC5oICovLAogCQkJCUZEMzE1RkJD
MTJCMDI2NzUwMEMxQTM1OSAvKiBBdWRpb0NvbnRleHQuaWRsICovLAorCQkJCUU3ODVEOTYwMjRC
N0Y3MzQwMDE0REIyMSAvKiBBdWRpb0NvbnRleHRMYXRlbmN5Q2F0ZWdvcnkuaCAqLywKKwkJCQlF
Nzg1RDk1RTI0QjdGNzI3MDAxNERCMjEgLyogQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5Lmlk
bCAqLywKKwkJCQlFNzg1RDk1RjI0QjdGNzM0MDAxNERCMjEgLyogQXVkaW9Db250ZXh0T3B0aW9u
cy5oICovLAorCQkJCUU3ODVEOTVDMjRCN0Y3MjYwMDE0REIyMSAvKiBBdWRpb0NvbnRleHRPcHRp
b25zLmlkbCAqLywKIAkJCQk4M0JEM0NFRDI0OTk4REY2MDBCQTNFNjcgLyogQXVkaW9Db250ZXh0
U3RhdGUuaCAqLywKIAkJCQk4M0JEM0NFQjI0OTk4Q0M1MDBCQTNFNjcgLyogQXVkaW9Db250ZXh0
U3RhdGUuaWRsICovLAogCQkJCUZEMzE1RkJEMTJCMDI2NzUwMEMxQTM1OSAvKiBBdWRpb0Rlc3Rp
bmF0aW9uTm9kZS5jcHAgKi8sCkBAIC0yOTg0NSw2ICsyOTg1NSw4IEBACiAJCQkJRkQzMTYwN0Mx
MkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQnVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA3
RTEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9DaGFubmVsLmggaW4gSGVhZGVycyAqLywKIAkJCQlG
RDMxNjAwNTEyQjAyNjc2MDBDMUEzNTkgLyogQXVkaW9Db250ZXh0LmggaW4gSGVhZGVycyAqLywK
KwkJCQlFNzg1RDk2MjI0QjdGNzM1MDAxNERCMjEgLyogQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVn
b3J5LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNzg1RDk2MTI0QjdGNzM1MDAxNERCMjEgLyogQXVk
aW9Db250ZXh0T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODNCRDNDRUUyNDk5OEUwMTAw
QkEzRTY3IC8qIEF1ZGlvQ29udGV4dFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRDMxNjA3
RjEyQjAyNkY3MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOUIxMjI5QzQyM0ZFNEJEMjAwOENBNzUxIC8qIEF1ZGlvRGVzdGluYXRpb25Db2NvYS5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBiMWIzM2Q0NTAy
MzE0ZjljMzY1NTM2YWI3NDJjMGVmNzFmMGM2ZjgzLi42MDMyY2QzY2RhZTIyYjExMWQ0YjA2MDYy
M2Y3YTNlYzA4MmRhM2ZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNSBAQAorMjAyMC0wNy0xMyAgQ2xhcmsgV2FuZyAgPGNsYXJrX3dhbmdAYXBwbGUuY29tPgor
CisgICAgICAgIFVwZGF0ZWQgQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9yIGFjY29yZGluZyB0byBz
cGVjCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQy
NjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZS1i
YXNlbGluZWQgZXhpc3RpbmcgdGVzdHMuIE9uZSBuZXcgdGVzdCBjYXNlIHBhc3NlcywgYW5kIG9u
ZSBmYWlscyBkdWUgdG8gY3VycmVudCBhY2NlcHRlZCByYW5nZSBmb3Igc2FtcGxlUmF0ZS4KKwor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb25vZGUtaW50ZXJmYWNlL2F1ZGlvbm9kZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUt
aW50ZXJmYWNlL3JlYWx0aW1lLWNvbnYtZXhwZWN0ZWQudHh0OgorCiAyMDIwLTA3LTA5ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgUmVzeW5jIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMgZnJvbSB1cHN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1h
dWRpb25vZGUtaW50ZXJmYWNlL2F1ZGlvbm9kZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhl
LWF1ZGlvbm9kZS1pbnRlcmZhY2UvYXVkaW9ub2RlLWV4cGVjdGVkLnR4dAppbmRleCAxZWRmNThj
NGE0NmIxMWJmNjkxMDMxZWFiMWEwZWVlYjIxMDRkNDVhLi4wYzFjYWZmYzQzNDVjMzJkYjcyZDE4
N2E3NTI4NTNlNDc3ZjA5NzU3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlvbm9kZS1p
bnRlcmZhY2UvYXVkaW9ub2RlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWF1ZGlv
bm9kZS1pbnRlcmZhY2UvYXVkaW9ub2RlLWV4cGVjdGVkLnR4dApAQCAtMTMsOCArMTMsOCBAQCBQ
QVNTICAgYXVkaW9Ob2RlLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbiwgNSwgMCkgdGhyZXcg
SW5kZXhTaXplRXJyb3I6ICJUaGUgaQogUEFTUyAgIGF1ZGlvTm9kZS5jb25uZWN0KGNvbnRleHQu
ZGVzdGluYXRpb24sIDAsIDUpIHRocmV3IEluZGV4U2l6ZUVycm9yOiAiVGhlIGluZGV4IGlzIG5v
dCBpbiB0aGUgYWxsb3dlZCByYW5nZS4iLiAKIFBBU1MgICBhdWRpb05vZGUuY29ubmVjdChjb250
ZXh0LmRlc3RpbmF0aW9uLCAwLCAwKSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4gCiBQQVNT
ICAgQ29ubmVjdGluZyBhIG5vZGUgdG8gYSBkaWZmZXJlbnQgY29udGV4dCB0aHJldyBTeW50YXhF
cnJvcjogIlRoZSBzdHJpbmcgZGlkIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgcGF0dGVybi4iLiAK
LUZBSUwgWCBjb250ZXh0MyA9IG5ldyBBdWRpb0NvbnRleHQoMSwgNDQxMDAsIDQ0MTAwKSBkaWQg
bm90IHRocm93IGFuIGV4Y2VwdGlvbi4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCitQQVNTICAgY29udGV4dDMgPSBuZXcgQXVkaW9Db250ZXh0KDEsIDQ0MTAwLCA0NDEwMCkg
dGhyZXcgVHlwZUVycm9yOiAiVHlwZSBlcnJvciIuIAogUEFTUyAgIEF1ZGlvTm9kZSBpcyBhbiBF
dmVudFRhcmdldCBpcyB0cnVlLiAKLUZBSUwgPCBbdGVzdF0gMSBvdXQgb2YgMTIgYXNzZXJ0aW9u
cyB3ZXJlIGZhaWxlZC4gYXNzZXJ0X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCi1GQUlM
ICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgb3V0IG9mIDEgdGFza3Mgd2VyZSBmYWls
ZWQuIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyA8IFt0ZXN0XSBB
bGwgYXNzZXJ0aW9ucyBwYXNzZWQuICh0b3RhbCAxMiBhc3NlcnRpb25zKSAKK1BBU1MgIyBBVURJ
VCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNrcyByYW4gc3VjY2Vzc2Z1bGx5LiAKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby90aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9yZWFsdGltZS1j
b252LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY29udm9sdmVybm9kZS1pbnRlcmZhY2Uv
cmVhbHRpbWUtY29udi1leHBlY3RlZC50eHQKaW5kZXggOWYwMzI4NTczOTdkOWFlYzAwY2Q4OWRi
Zjg0M2JjNzBhN2FlMWU5My4uYjVlZWUzODI2YTg3ZjkxMjc2ZjI4Njg5MzYwNzUzM2ExYzk5NWNl
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJhdWRpby90aGUtYXVkaW8tYXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9yZWFs
dGltZS1jb252LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNvbnZvbHZlcm5vZGUt
aW50ZXJmYWNlL3JlYWx0aW1lLWNvbnYtZXhwZWN0ZWQudHh0CkBAIC0xLDcgKzEsNiBAQAogCiBQ
QVNTICMgQVVESVQgVEFTSyBSVU5ORVIgU1RBUlRFRC4gCi1GQUlMIEV4ZWN1dGluZyAidGVzdCIg
cHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlw
ZUVycm9yOiBmdW5jdGlvbiBpcyBub3QgYSBjb25zdHJ1Y3RvciAoZXZhbHVhdGluZyAnbmV3IEF1
ZGlvQnVmZmVyKAotICAgICAgICAgICAgICAgIHtsZW5ndGg6IHB1bHNlTGVuZ3RoLCBzYW1wbGVS
YXRlOiBjb250ZXh0LnNhbXBsZVJhdGV9KScpIgorRkFJTCBFeGVjdXRpbmcgInRlc3QiIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlN5bnRheEVy
cm9yOiBzYW1wbGVSYXRlIGlzIG5vdCBpbiByYW5nZSIKIFBBU1MgQXVkaXQgcmVwb3J0IAogUEFT
UyA+IFt0ZXN0XSBUZXN0IGNvbnZvbHZlciB3aXRoIHJlYWwtdGltZSBjb250ZXh0IAogUEFTUyAj
IEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIHRhc2tzIHJhbiBzdWNjZXNzZnVsbHkuIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>404191</attachid>
            <date>2020-07-13 16:10:35 -0700</date>
            <delta_ts>2020-07-14 08:51:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214267-20200713191034.patch</filename>
            <type>text/plain</type>
            <size>30231</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY0MjAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzA5OGQ1NmI5ZjkxNGYz
MzIzZTI4YTI1NjAxYzBmNTk5YmE2ZmYzYy4uZmVjYWZhMWJmNzU1ZTMyMmZiNjViZjMzZmQ0M2Zh
NWEzMzI2N2ViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIwLTA3LTEzICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgVXBkYXRlZCBBdWRpb0Nv
bnRleHQgY29uc3RydWN0b3IgYWNjb3JkaW5nIHRvIHNwZWMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDI2NworCisgICAgICAgIFJldmlld2VkIGJ5
IENocmlzIER1bWV6LgorCisgICAgICAgIFVwZGF0ZWQgQXVkaW9Db250ZXh0IGNvbnN0cnVjdG9y
IGFjY29yZGluZyB0byBzcGVjOiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI0F1ZGlv
Q29udGV4dC1jb25zdHJ1Y3RvcnMuCisgICAgICAgIEFkZGVkIGluIGZpbGVzIGFjY29yZGluZ2x5
IHRvIHN1cHBvcnQgQXVkaW9Db250ZXh0T3B0aW9ucy4KKworICAgICAgICBSZS1iYXNlbGluZWQg
ZXhpc3RpbmcgdGVzdHMuIE9uZSBuZXcgdGVzdCBjYXNlIHBhc3NlcywgYW5kIG9uZSBmYWlscyBk
dWUgdG8gY3VycmVudCBhY2NlcHRlZCByYW5nZSBmb3Igc2FtcGxlUmF0ZS4KKworICAgICAgICAq
IENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxp
c3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBdWRpb0NvbnRleHQ6OkF1ZGlvQ29udGV4dCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
Q29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4
dC5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRMYXRlbmN5Q2F0
ZWdvcnkuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRM
YXRlbmN5Q2F0ZWdvcnkuaWRsOiBBZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dE9wdGlvbnMuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9B
dWRpb0NvbnRleHRPcHRpb25zLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9CYXNlQXVkaW9Db250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJhc2VBdWRpb0NvbnRl
eHQ6OkJhc2VBdWRpb0NvbnRleHQpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmFzZUF1
ZGlvQ29udGV4dC5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmF1bHRBdWRpb0Rlc3RpbmF0
aW9uTm9kZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2Rl
OjpQYW5uZXJOb2RlKToKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjAtMDctMDkgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbQmluZGluZ3NdIEFkZCBkZWZhdWx0IHZhbHVl
IHN1cHBvcnQgZm9yIHVuaW9uIHR5cGVzIGluIGRpY3Rpb25hcnkgbWVtYmVycwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxp
c3RzLnR4dAppbmRleCAyNzkzMTIxODFhNjliMjliNmQ5NzJiYjEzOGFjMmUxNTViZmM2MmZhLi4w
NzQyMzhhNzU5YzgwNGRmOWIyNGNiNDY3ZDkzMTE3YWNiYmUzZmY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dApAQCAtNDUwLDYgKzQ1MCw4IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAg
ICAgTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlckNhbGxiYWNrLmlkbAogICAgIE1vZHVsZXMv
d2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0LmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0TGF0ZW5j
eUNhdGVnb3J5LmlkbAorICAgIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0T3B0aW9ucy5p
ZGwKICAgICBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dFN0YXRlLmlkbAogICAgIE1vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9EZXN0aW5hdGlvbk5vZGUuaWRsCiAgICAgTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0xpc3RlbmVyLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlu
cHV0LnhjZmlsZWxpc3QKaW5kZXggODMwOWIyOWIyYmJhMjE1NDcyMzE0ZTcyZDE1OWZmM2Q4YTg1
YTBmZi4uNWNhYWU3ZDcxNDlkZWRjNjhkM2NhMGFkNmNkZjQwMGE0ZjdlMjNjZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0yOTksNiAr
Mjk5LDggQEAgJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlci5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJDYWxsYmFjay5pZGwK
ICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJTb3VyY2VOb2RlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaWRsCiskKFBS
T0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29yeS5p
ZGwKKyQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0T3B0aW9ucy5p
ZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0U3RhdGUuaWRs
CiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmlk
bAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmlkbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Qg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCAw
MzQ2YmNlOTRlMDZmN2QzZGExZTk0MWM5MTgyODk3ZGU4ZTE2MjdkLi41ZDYzYmYyNjA5MzJhMTlm
N2RhNGE5MzhhMWZmMmI5MWYxMTczMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTU1LDYgKzE1NSwxMCBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvQ29uZmlndXJhdGlvbi5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9D
b25maWd1cmF0aW9uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTQXVkaW9Db250ZXh0LmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3Vy
Y2VzL1dlYkNvcmUvSlNBdWRpb0NvbnRleHQuaAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb0NvbnRleHRMYXRlbmN5Q2F0ZWdvcnkuY3BwCiskKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvQ29udGV4dExh
dGVuY3lDYXRlZ29yeS5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU0F1ZGlvQ29udGV4dE9wdGlvbnMuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVy
aXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F1ZGlvQ29udGV4dE9wdGlvbnMuaAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb0NvbnRleHRTdGF0ZS5jcHAK
ICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXVkaW9Db250
ZXh0U3RhdGUuaAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUv
SlNBdWRpb0Rlc3RpbmF0aW9uTm9kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmlu
ZGV4IDdkODI5YWI2NzYxMmM1NWQxYThkYzQwMTZmOWE2Y2QzYjUyZjkwM2EuLmJlM2FmODMyNGMy
MzNiYzQ5MTIwMWUwMWFkZWQ3MDc3ZTAxZjAxODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQpAQCAtMzgyLDYgKzM4Miw4IEBAIEpTX0JJTkRJTkdfSURMUyA9IFwKICAgICAkKFdlYkNv
cmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9CdWZmZXJDYWxsYmFjay5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0J1ZmZlclNvdXJjZU5vZGUuaWRsIFwKICAgICAk
KFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmlkbCBcCisgICAgJChXZWJD
b3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29yeS5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRPcHRpb25zLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dFN0YXRlLmlkbCBc
CiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvRGVzdGluYXRpb25Ob2RlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuaWRsIFwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmNwcApp
bmRleCAyN2UzNGU2Y2FjNTNiNjBkZWIxYjE4OTU3NDRjNDNhYTc1ODI4M2E2Li5jMjA2YjFhZGRi
NmU0NzA2MDg1NWVlZjMyYmRkOWRjMmQzMjIxNDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuY3BwCkBAIC01MSwyMyArNTEsMzEgQEAgY29u
c3RleHByIHVuc2lnbmVkIG1heEhhcmR3YXJlQ29udGV4dHMgPSA0OwogI2VuZGlmCiAKIFdURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChBdWRpb0NvbnRleHQpOwotICAgIAotRXhjZXB0aW9uT3I8
UmVmPEF1ZGlvQ29udGV4dD4+IEF1ZGlvQ29udGV4dDo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCkKKworRXhjZXB0aW9uT3I8UmVmPEF1ZGlvQ29udGV4dD4+IEF1ZGlvQ29udGV4dDo6Y3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgQXVkaW9Db250ZXh0T3B0aW9ucyYgY29udGV4dE9w
dGlvbnMpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICNpZiBPUyhXSU5ET1dTKQog
ICAgIGlmIChzX2hhcmR3YXJlQ29udGV4dENvdW50ID49IG1heEhhcmR3YXJlQ29udGV4dHMpCiAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBRdW90YUV4Y2VlZGVkRXJyb3IgfTsKICNlbmRpZgor
ICAgIAorICAgIGlmICghZG9jdW1lbnQuaXNGdWxseUFjdGl2ZSgpKQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEb2N1bWVudCBpcyBub3QgZnVsbHkgYWN0
aXZlIl9zIH07CisgICAgCisgICAgLy8gRklYTUU6IEZpZ3VyZSBvdXQgd2hlcmUgbGF0ZW5jeUhp
bnQgc2hvdWxkIGdvLgogCi0gICAgYXV0byBhdWRpb0NvbnRleHQgPSBhZG9wdFJlZigqbmV3IEF1
ZGlvQ29udGV4dChkb2N1bWVudCkpOworICAgIGlmIChjb250ZXh0T3B0aW9ucy5zYW1wbGVSYXRl
Lmhhc1ZhbHVlKCkgJiYgIWlzU2FtcGxlUmF0ZVJhbmdlR29vZChjb250ZXh0T3B0aW9ucy5zYW1w
bGVSYXRlLnZhbHVlKCkpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3Is
ICJzYW1wbGVSYXRlIGlzIG5vdCBpbiByYW5nZSJfcyB9OworICAgIAorICAgIGF1dG8gYXVkaW9D
b250ZXh0ID0gYWRvcHRSZWYoKm5ldyBBdWRpb0NvbnRleHQoZG9jdW1lbnQsIGNvbnRleHRPcHRp
b25zKSk7CiAgICAgYXVkaW9Db250ZXh0LT5zdXNwZW5kSWZOZWVkZWQoKTsKICAgICByZXR1cm4g
YXVkaW9Db250ZXh0OwogfQogCiAvLyBDb25zdHJ1Y3RvciBmb3IgcmVuZGVyaW5nIHRvIHRoZSBh
dWRpbyBoYXJkd2FyZS4KLUF1ZGlvQ29udGV4dDo6QXVkaW9Db250ZXh0KERvY3VtZW50JiBkb2N1
bWVudCkKLSAgICA6IEJhc2VBdWRpb0NvbnRleHQoZG9jdW1lbnQpCitBdWRpb0NvbnRleHQ6OkF1
ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IEF1ZGlvQ29udGV4dE9wdGlvbnMm
IGNvbnRleHRPcHRpb25zKQorICAgIDogQmFzZUF1ZGlvQ29udGV4dChkb2N1bWVudCwgY29udGV4
dE9wdGlvbnMpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dC5oCmluZGV4IGJmYTgwNDAwOTQ5ZmIzY2I1Mzk4ZWNiMTI5Zjk5NTU5ODhiMGNi
MzMuLjNjYjc2ZDA5N2ZlN2Q5OTRlMDcxNmEzMzIyMTkzOTZhMDVhYjE1M2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQuaApAQCAtMjUsNiArMjUs
NyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkF1ZGlvQ29udGV4dE9wdGlvbnMuaCIK
ICNpbmNsdWRlICJCYXNlQXVkaW9Db250ZXh0LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTMzLDcgKzM0LDcgQEAgY2xhc3MgQXVkaW9Db250ZXh0IDogcHVibGljIEJhc2VBdWRpb0NvbnRl
eHQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQXVkaW9Db250ZXh0KTsKIHB1YmxpYzoK
ICAgICAvLyBDcmVhdGUgYW4gQXVkaW9Db250ZXh0IGZvciByZW5kZXJpbmcgdG8gdGhlIGF1ZGlv
IGhhcmR3YXJlLgotICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8QXVkaW9Db250ZXh0Pj4gY3Jl
YXRlKERvY3VtZW50Jik7CisgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxBdWRpb0NvbnRleHQ+
PiBjcmVhdGUoRG9jdW1lbnQmLCBjb25zdCBBdWRpb0NvbnRleHRPcHRpb25zJiA9IHsgfSk7CiAK
ICAgICB2b2lkIGNsb3NlKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKIApAQCAtNDYsNyAr
NDcsNyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBBdWRpb0Nv
bnRleHQoRG9jdW1lbnQmKTsKKyAgICBBdWRpb0NvbnRleHQoRG9jdW1lbnQmLCBjb25zdCBBdWRp
b0NvbnRleHRPcHRpb25zJik7CiAgICAgQXVkaW9Db250ZXh0KERvY3VtZW50JiwgQXVkaW9CdWZm
ZXIqIHJlbmRlclRhcmdldCk7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dC5pZGwKaW5kZXggNjk5M2EwYWI3YTliNjQ2YjljNmU5MTRlYmZl
NDQxNzU1NTAxMWE4Ni4uODU4YzU2ZGVmZmZhODI1YzVkY2I1ZDJhZmNlZTUxY2M0MjhkYTMxZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHQu
aWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0Lmlk
bApAQCAtMjksNyArMjksNyBAQAogICAgIEVuYWJsZWRCeVNldHRpbmc9V2ViQXVkaW8mTW9kZXJu
VW5wcmVmaXhlZFdlYkF1ZGlvLAogICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfRVhQT1JULAogXSBp
bnRlcmZhY2UgQXVkaW9Db250ZXh0IDogQmFzZUF1ZGlvQ29udGV4dCB7Ci0gICAgW0NhbGxXaXRo
PURvY3VtZW50LCBNYXlUaHJvd0V4Y2VwdGlvbl0gY29uc3RydWN0b3IoKTsKKyAgICBbQ2FsbFdp
dGg9RG9jdW1lbnQsIE1heVRocm93RXhjZXB0aW9uXSBjb25zdHJ1Y3RvcihvcHRpb25hbCBBdWRp
b0NvbnRleHRPcHRpb25zIGNvbnRleHRPcHRpb25zKTsKIAogICAgIC8vIEZJWE1FOiBBZGQgc3Vw
cG9ydC4KICAgICAvLyByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGJhc2VMYXRlbmN5OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRMYXRl
bmN5Q2F0ZWdvcnkuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0TGF0ZW5jeUNhdGVnb3J5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQ0NjIwMTMwMmVkNGRiZTIwZjU4ZWE0
ZWUwOTY0YTUyYTA2N2Y4NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5LmgKQEAgLTAsMCArMSwzNiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Vu
dW0gY2xhc3MgQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5IHsKKyAgICBCYWxhbmNlZCwKKyAg
ICBJbnRlcmFjdGl2ZSwKKyAgICBQbGF5YmFjaywKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250
ZXh0TGF0ZW5jeUNhdGVnb3J5LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYWVkZjlhOGQ1N2Jh
ZTQ0MjAwNGU1NzAxOTIwNjYwNDM5OWY1MTE2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0NvbnRleHRMYXRlbmN5Q2F0ZWdvcnkuaWRsCkBA
IC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitlbnVtIEF1ZGlvQ29udGV4dExhdGVuY3lDYXRl
Z29yeSB7CisgICAgImJhbGFuY2VkIiwKKyAgICAiaW50ZXJhY3RpdmUiLAorICAgICJwbGF5YmFj
ayIKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
Q29udGV4dE9wdGlvbnMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9D
b250ZXh0T3B0aW9ucy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5MDQ5Yzg1ZjBkMjFjZTE2M2EwZGU2ODVmOTM3
NDhlM2YwYjFlMjMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvQ29udGV4dE9wdGlvbnMuaApAQCAtMCwwICsxLDQzIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVRElPKQorCisjaW5jbHVkZSAiQXVk
aW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5LmgiCisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Cisj
aW5jbHVkZSA8d3RmL1ZhcmlhbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
QXVkaW9Db250ZXh0T3B0aW9ucyB7CisgICAgVmFyaWFudDxBdWRpb0NvbnRleHRMYXRlbmN5Q2F0
ZWdvcnksIGRvdWJsZT4gbGF0ZW5jeUhpbnQgPSBBdWRpb0NvbnRleHRMYXRlbmN5Q2F0ZWdvcnk6
OkludGVyYWN0aXZlOworICAgIE9wdGlvbmFsPGZsb2F0PiBzYW1wbGVSYXRlOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVURJTykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Db250ZXh0T3B0aW9u
cy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvQ29udGV4dE9wdGlv
bnMuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjUwYzM4MTQwMDUzZWZiOGRhZjA0ZTQ4ZThhODZmYzZkNmE2YzQw
MzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvQ29udGV4dE9wdGlvbnMuaWRsCkBAIC0wLDAgKzEsMzAgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworWworICAg
IENvbmRpdGlvbmFsPVdFQl9BVURJTywKK10gZGljdGlvbmFyeSBBdWRpb0NvbnRleHRPcHRpb25z
IHsKKyAgICAoQXVkaW9Db250ZXh0TGF0ZW5jeUNhdGVnb3J5IG9yIGRvdWJsZSkgbGF0ZW5jeUhp
bnQgPSAiaW50ZXJhY3RpdmUiOworICAgIGZsb2F0IHNhbXBsZVJhdGU7Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmFzZUF1ZGlvQ29udGV4dC5jcHAKaW5k
ZXggY2JlYzZlMWI4YWI1MzQ3OGNlNzRiNDdhZmQ5NDZmZjFlOWQ2ZjkwYS4uMTdiZDJiYmI0Yjk1
MjUxZTBhYzU1Y2E5YWZiNWNmYTA0NmM0MTRiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuY3BwCkBAIC0xMDksNyArMTA5LDcg
QEAgYm9vbCBCYXNlQXVkaW9Db250ZXh0Ojppc1NhbXBsZVJhdGVSYW5nZUdvb2QoZmxvYXQgc2Ft
cGxlUmF0ZSkKIHVuc2lnbmVkIEJhc2VBdWRpb0NvbnRleHQ6OnNfaGFyZHdhcmVDb250ZXh0Q291
bnQgPSAwOwogCiAvLyBDb25zdHJ1Y3RvciBmb3IgcmVuZGVyaW5nIHRvIHRoZSBhdWRpbyBoYXJk
d2FyZS4KLUJhc2VBdWRpb0NvbnRleHQ6OkJhc2VBdWRpb0NvbnRleHQoRG9jdW1lbnQmIGRvY3Vt
ZW50KQorQmFzZUF1ZGlvQ29udGV4dDo6QmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IEF1ZGlvQ29udGV4dE9wdGlvbnMmIGNvbnRleHRPcHRpb25zKQogICAgIDogQWN0
aXZlRE9NT2JqZWN0KGRvY3VtZW50KQogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgICwg
bV9sb2dnZXIoZG9jdW1lbnQubG9nZ2VyKCkpCkBAIC0xMjQsNyArMTI0LDcgQEAgQmFzZUF1ZGlv
Q29udGV4dDo6QmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYgZG9jdW1lbnQpCiAKICAgICBjb25z
dHJ1Y3RDb21tb24oKTsKIAotICAgIG1fZGVzdGluYXRpb25Ob2RlID0gRGVmYXVsdEF1ZGlvRGVz
dGluYXRpb25Ob2RlOjpjcmVhdGUoKnRoaXMpOworICAgIG1fZGVzdGluYXRpb25Ob2RlID0gRGVm
YXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlOjpjcmVhdGUoKnRoaXMsIGNvbnRleHRPcHRpb25zLnNh
bXBsZVJhdGUpOwogCiAgICAgLy8gSW5pdGlhbGl6ZSB0aGUgZGVzdGluYXRpb24gbm9kZSdzIG11
dGVkIHN0YXRlIHRvIG1hdGNoIHRoZSBwYWdlJ3MgY3VycmVudCBtdXRlZCBzdGF0ZS4KICAgICBw
YWdlTXV0ZWRTdGF0ZURpZENoYW5nZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9CYXNlQXVkaW9Db250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0Jhc2VBdWRpb0NvbnRleHQuaAppbmRleCA1MGFhMDcwMzNmMzkyN2Y4ZWQ3ZWJm
NWYyNjIxOWVmOTk5NzQ2ZDQ2Li40OWU3ZTNhOTNlZGU1NzMyYjQ4ODEyYWUyODRiYmY4ZmRkOWFl
NjAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRp
b0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jhc2VBdWRp
b0NvbnRleHQuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5o
IgogI2luY2x1ZGUgIkFzeW5jQXVkaW9EZWNvZGVyLmgiCiAjaW5jbHVkZSAiQXVkaW9CdXMuaCIK
KyNpbmNsdWRlICJBdWRpb0NvbnRleHRPcHRpb25zLmgiCiAjaW5jbHVkZSAiQXVkaW9Db250ZXh0
U3RhdGUuaCIKICNpbmNsdWRlICJBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oIgogI2luY2x1ZGUgIkV2
ZW50VGFyZ2V0LmgiCkBAIC0yODQsNyArMjg1LDcgQEAgcHVibGljOgogICAgIH07CiAKIHByb3Rl
Y3RlZDoKLSAgICBleHBsaWNpdCBCYXNlQXVkaW9Db250ZXh0KERvY3VtZW50Jik7CisgICAgZXhw
bGljaXQgQmFzZUF1ZGlvQ29udGV4dChEb2N1bWVudCYsIGNvbnN0IEF1ZGlvQ29udGV4dE9wdGlv
bnMmID0geyB9KTsKICAgICBCYXNlQXVkaW9Db250ZXh0KERvY3VtZW50JiwgQXVkaW9CdWZmZXIq
IHJlbmRlclRhcmdldCk7CiAgICAgCiAgICAgc3RhdGljIGJvb2wgaXNTYW1wbGVSYXRlUmFuZ2VH
b29kKGZsb2F0IHNhbXBsZVJhdGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwCmluZGV4
IDdlM2ZmOTUzMzY2N2U0NTA5YjQ5Y2Q4YWJkNjdkNDQzMDY1NTcyM2YuLmRkNjdjZmRlMDM0ZjY3
MjM2MGIyYzIyZTY1ZmQ5ZjEwOTE5NzI2YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5j
cHAKQEAgLTQyLDkgKzQyLDkgQEAgY29uc3QgdW5zaWduZWQgRW5hYmxlZElucHV0Q2hhbm5lbHMg
PSAyOwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwo
RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKTsKLSAgICAKLURlZmF1bHRBdWRpb0Rlc3RpbmF0
aW9uTm9kZTo6RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKEJhc2VBdWRpb0NvbnRleHQmIGNv
bnRleHQpCi0gICAgOiBBdWRpb0Rlc3RpbmF0aW9uTm9kZShjb250ZXh0LCBBdWRpb0Rlc3RpbmF0
aW9uOjpoYXJkd2FyZVNhbXBsZVJhdGUoKSkKKworRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2Rl
OjpEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwg
T3B0aW9uYWw8ZmxvYXQ+IHNhbXBsZVJhdGUpCisgICAgOiBBdWRpb0Rlc3RpbmF0aW9uTm9kZShj
b250ZXh0LCBzYW1wbGVSYXRlLnZhbHVlT3IoQXVkaW9EZXN0aW5hdGlvbjo6aGFyZHdhcmVTYW1w
bGVSYXRlKCkpKQogewogICAgIC8vIE5vZGUtc3BlY2lmaWMgZGVmYXVsdCBtaXhpbmcgcnVsZXMu
CiAgICAgbV9jaGFubmVsQ291bnQgPSAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlLmgKaW5kZXgg
MzI1Mzk3MTNmMmYwMTczMmVmNjZmMjMwYmM2ZTA3NDlmYWM4YjljZS4uMWI4MTFhZDk1NGNhOTgy
NzFlZTljMmJkYWJmNzcwMWY5YmU5ODM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZS5oCkBA
IC0zMywxNSArMzMsMTUgQEAgY2xhc3MgQXVkaW9EZXN0aW5hdGlvbjsKIGNsYXNzIERlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZSBmaW5hbCA6IHB1YmxpYyBBdWRpb0Rlc3RpbmF0aW9uTm9kZSB7
CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUp
OwogcHVibGljOgotICAgIHN0YXRpYyBSZWY8RGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlPiBj
cmVhdGUoQmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCkKKyAgICBzdGF0aWMgUmVmPERlZmF1bHRB
dWRpb0Rlc3RpbmF0aW9uTm9kZT4gY3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIE9w
dGlvbmFsPGZsb2F0PiBzYW1wbGVSYXRlID0gV1RGOjpudWxsb3B0KQogICAgIHsKLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgRGVmYXVsdEF1ZGlvRGVzdGluYXRpb25Ob2RlKGNvbnRleHQp
KTsgICAgIAorICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBEZWZhdWx0QXVkaW9EZXN0aW5h
dGlvbk5vZGUoY29udGV4dCwgc2FtcGxlUmF0ZSkpOwogICAgIH0KLQorICAgIAogICAgIHZpcnR1
YWwgfkRlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZSgpOwogICAgIAogcHJpdmF0ZToKLSAgICBl
eHBsaWNpdCBEZWZhdWx0QXVkaW9EZXN0aW5hdGlvbk5vZGUoQmFzZUF1ZGlvQ29udGV4dCYpOwor
ICAgIGV4cGxpY2l0IERlZmF1bHRBdWRpb0Rlc3RpbmF0aW9uTm9kZShCYXNlQXVkaW9Db250ZXh0
JiwgT3B0aW9uYWw8ZmxvYXQ+KTsKICAgICB2b2lkIGNyZWF0ZURlc3RpbmF0aW9uKCk7CiAKICAg
ICB2b2lkIGluaXRpYWxpemUoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1Bhbm5lck5vZGUuY3BwCmluZGV4IDI4OThkNTAxNjM3YzdkZGQ4YjI5OWUxNzhlOWUw
ODg2NDY0NTQ3NjIuLmQxYzk0YjYwODZmN2Y0ODhiMDQwMTA2MTQ1NzNjNDZmZGU2NzE3NTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcApAQCAt
MTQ3LDggKzE0Nyw2IEBAIFBhbm5lck5vZGU6OlBhbm5lck5vZGUoQmFzZUF1ZGlvQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgUGFubmVyT3B0aW9ucyYgb3B0aW9ucykKICAgICBhZGRJbnB1dChtYWtl
VW5pcXVlPEF1ZGlvTm9kZUlucHV0Pih0aGlzKSk7CiAgICAgYWRkT3V0cHV0KG1ha2VVbmlxdWU8
QXVkaW9Ob2RlT3V0cHV0Pih0aGlzLCAyKSk7CiAgICAgCi0gICAgLy8gRklYTUU6IFNldCBQYW5u
ZXJOb2RlIHNwZWNpZmljIGNoYW5uZWxDb3VudCwgY2hhbm5lbENvdW50TW9kZSwgY2hhbm5lbElu
dGVycHJldGF0aW9uIGhlcmUuCi0gICAgCiAgICAgaW5pdGlhbGl6ZSgpOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0CmluZGV4IDg5YWI5OTZlYTExNDkwZGE0Y2E4NDQ1MzBhODZhYzNiZDRhYzllYTYuLjBmMzcz
YjM1NzY3NTdhODg5ZTBmZTQ1M2FhNjY3NWRjY2QwNDU0NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0y
NjI4LDYgKzI2MjgsOCBAQCBKU0F1ZGlvQnVmZmVyQ2FsbGJhY2suY3BwCiBKU0F1ZGlvQnVmZmVy
U291cmNlTm9kZS5jcHAKIEpTQXVkaW9Db25maWd1cmF0aW9uLmNwcAogSlNBdWRpb0NvbnRleHQu
Y3BwCitKU0F1ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29yeS5jcHAKK0pTQXVkaW9Db250ZXh0T3B0
aW9ucy5jcHAKIEpTQXVkaW9Db250ZXh0U3RhdGUuY3BwCiBKU0F1ZGlvRGVzdGluYXRpb25Ob2Rl
LmNwcAogSlNBdWRpb0xpc3RlbmVyLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGU1ODQ1MGRmZDgzMGNiZjNiMDU2ZGViN2I0
ZjY0YjNmMjAxZTMyZTkuLmVlOWNlZmExODJhYmQ0ZDFmMjYxNjBmNmJkM2UyODA3NmVkODY0MWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTUwNDMsNiArNTA0Myw4IEBACiAJCUU3MTQ2N0I2MjRBQkFGMUQwMEZCMkY1MCAvKiBQ
YW5uZXJPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFNzE0NjdCNTI0QUJBRjFEMDBGQjJGNTAgLyogUGFubmVyT3B0aW9ucy5oICovOyB9Owog
CQlFNzg1RDkxNTI0QjREMUNBMDAxNERCMjEgLyogQ2hhbm5lbENvdW50TW9kZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5MTEyNEI0RDFCMTAw
MTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaCAqLzsgfTsKIAkJRTc4NUQ5MzQyNEI2MzZGRjAw
MTREQjIxIC8qIENoYW5uZWxJbnRlcnByZXRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTc4NUQ5MzEyNEI2MzZGRjAwMTREQjIxIC8qIENoYW5u
ZWxJbnRlcnByZXRhdGlvbi5oICovOyB9OworCQlFNzg1RDk2MTI0QjdGNzM1MDAxNERCMjEgLyog
QXVkaW9Db250ZXh0T3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTc4NUQ5NUYyNEI3RjczNDAwMTREQjIxIC8qIEF1ZGlvQ29udGV4dE9wdGlv
bnMuaCAqLzsgfTsKKwkJRTc4NUQ5NjIyNEI3RjczNTAwMTREQjIxIC8qIEF1ZGlvQ29udGV4dExh
dGVuY3lDYXRlZ29yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRTc4NUQ5NjAyNEI3RjczNDAwMTREQjIxIC8qIEF1ZGlvQ29udGV4dExhdGVuY3lDYXRl
Z29yeS5oICovOyB9OwogCQlFQkU1QjIyNjI0NUEyNkVGMDAzQTVBODggLyogU1FMaXRlU3RhdGVt
ZW50QXV0b1Jlc2V0U2NvcGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEVCRTVCMjI0MjQ1QTI2RUUwMDNBNUE4OCAvKiBTUUxpdGVTdGF0ZW1lbnRBdXRv
UmVzZXRTY29wZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUVCRjUxMjFDMTY5NjQ5NkMwMDU2QkQyNSAvKiBKU1R5cGVDb252ZXJzaW9ucy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFQkY1MTIxQTE2
OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuY3BwICovOyB9OwogCQlFQkY1MTIx
RDE2OTY0OTZDMDA1NkJEMjUgLyogSlNUeXBlQ29udmVyc2lvbnMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVCRjUxMjFCMTY5NjQ5NkMwMDU2QkQyNSAv
KiBKU1R5cGVDb252ZXJzaW9ucy5oICovOyB9OwpAQCAtMTU3ODgsNiArMTU3OTAsMTAgQEAKIAkJ
RTc4NUQ5MTMyNEI0RDFCMTAwMTREQjIxIC8qIENoYW5uZWxDb3VudE1vZGUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENo
YW5uZWxDb3VudE1vZGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFNzg1RDkz
MTI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENoYW5uZWxJbnRlcnByZXRhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFNzg1RDkzMzI0QjYzNkZGMDAxNERCMjEgLyogQ2hhbm5lbEludGVycHJldGF0aW9uLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBDaGFubmVsSW50ZXJwcmV0YXRpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFNzg1RDk1QzI0QjdGNzI2MDAxNERCMjEgLyogQXVkaW9Db250ZXh0T3B0aW9ucy5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQXVkaW9Db250ZXh0T3B0aW9ucy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUU3ODVEOTVFMjRCN0Y3MjcwMDE0REIyMSAvKiBBdWRpb0NvbnRleHRMYXRlbmN5Q2F0ZWdv
cnkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEF1ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29yeS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUU3ODVEOTVGMjRCN0Y3MzQwMDE0REIyMSAvKiBBdWRpb0NvbnRl
eHRPcHRpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvQ29udGV4
dE9wdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTc4NUQ5NjAyNEI3Rjcz
NDAwMTREQjIxIC8qIEF1ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29yeS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb0NvbnRleHRMYXRlbmN5Q2F0ZWdvcnkuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwODFDRDgxNjk2MDg0NDAwNTUzNzMwIC8qIFR5cGVD
b252ZXJzaW9ucy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUeXBlQ29udmVyc2lvbnMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRUIwODFDRDkxNjk2MDg0NDAwNTUzNzMwIC8qIFR5cGVDb252
ZXJzaW9ucy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gVHlwZUNvbnZlcnNpb25zLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRUJFNUIyMjQyNDVBMjZFRTAwM0E1QTg4IC8qIFNRTGl0ZVN0YXRlbWVudEF1
dG9SZXNldFNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNRTGl0ZVN0
YXRlbWVudEF1dG9SZXNldFNjb3BlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0y
OTMyNSw2ICsyOTMzMSwxMCBAQAogCQkJCUZEMzE1RkJBMTJCMDI2NzUwMEMxQTM1OSAvKiBBdWRp
b0NvbnRleHQuY3BwICovLAogCQkJCUZEMzE1RkJCMTJCMDI2NzUwMEMxQTM1OSAvKiBBdWRpb0Nv
bnRleHQuaCAqLywKIAkJCQlGRDMxNUZCQzEyQjAyNjc1MDBDMUEzNTkgLyogQXVkaW9Db250ZXh0
LmlkbCAqLywKKwkJCQlFNzg1RDk2MDI0QjdGNzM0MDAxNERCMjEgLyogQXVkaW9Db250ZXh0TGF0
ZW5jeUNhdGVnb3J5LmggKi8sCisJCQkJRTc4NUQ5NUUyNEI3RjcyNzAwMTREQjIxIC8qIEF1ZGlv
Q29udGV4dExhdGVuY3lDYXRlZ29yeS5pZGwgKi8sCisJCQkJRTc4NUQ5NUYyNEI3RjczNDAwMTRE
QjIxIC8qIEF1ZGlvQ29udGV4dE9wdGlvbnMuaCAqLywKKwkJCQlFNzg1RDk1QzI0QjdGNzI2MDAx
NERCMjEgLyogQXVkaW9Db250ZXh0T3B0aW9ucy5pZGwgKi8sCiAJCQkJODNCRDNDRUQyNDk5OERG
NjAwQkEzRTY3IC8qIEF1ZGlvQ29udGV4dFN0YXRlLmggKi8sCiAJCQkJODNCRDNDRUIyNDk5OEND
NTAwQkEzRTY3IC8qIEF1ZGlvQ29udGV4dFN0YXRlLmlkbCAqLywKIAkJCQlGRDMxNUZCRDEyQjAy
Njc1MDBDMUEzNTkgLyogQXVkaW9EZXN0aW5hdGlvbk5vZGUuY3BwICovLApAQCAtMjk4NDUsNiAr
Mjk4NTUsOCBAQAogCQkJCUZEMzE2MDdDMTJCMDI2RjcwMEMxQTM1OSAvKiBBdWRpb0J1cy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwN0UxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvQ2hhbm5l
bC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwMDUxMkIwMjY3NjAwQzFBMzU5IC8qIEF1ZGlv
Q29udGV4dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTc4NUQ5NjIyNEI3RjczNTAwMTREQjIxIC8q
IEF1ZGlvQ29udGV4dExhdGVuY3lDYXRlZ29yeS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTc4NUQ5
NjEyNEI3RjczNTAwMTREQjIxIC8qIEF1ZGlvQ29udGV4dE9wdGlvbnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCTgzQkQzQ0VFMjQ5OThFMDEwMEJBM0U2NyAvKiBBdWRpb0NvbnRleHRTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJRkQzMTYwN0YxMkIwMjZGNzAwQzFBMzU5IC8qIEF1ZGlvRGVzdGlu
YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTlCMTIyOUM0MjNGRTRCRDIwMDhDQTc1MSAvKiBB
dWRpb0Rlc3RpbmF0aW9uQ29jb2EuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9D
aGFuZ2VMb2cKaW5kZXggYjFiMzNkNDUwMjMxNGY5YzM2NTUzNmFiNzQyYzBlZjcxZjBjNmY4My4u
MDI3NjBjYjFjYTc1MGY0NjEzZjY5NjI5YTFkMzExZjA0MjI4MDYwZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjAtMDctMTMgIENsYXJrIFdhbmcg
IDxjbGFya193YW5nQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGVkIEF1ZGlvQ29udGV4dCBj
b25zdHJ1Y3RvciBhY2NvcmRpbmcgdG8gc3BlYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0MjY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMg
RHVtZXouCisKKyAgICAgICAgUmUtYmFzZWxpbmVkIGV4aXN0aW5nIHRlc3RzLiBPbmUgbmV3IHRl
c3QgY2FzZSBwYXNzZXMsIGFuZCBvbmUgZmFpbHMgZHVlIHRvIGN1cnJlbnQgYWNjZXB0ZWQgcmFu
Z2UgZm9yIHNhbXBsZVJhdGUuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9ub2RlLWludGVyZmFjZS9hdWRpb25vZGUtZXhwZWN0
ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9yZWFsdGltZS1jb252LWV4cGVjdGVkLnR4
dDoKKwogMjAyMC0wNy0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJlc3luYyB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjIGZyb20gdXBzdHJlYW0KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVk
aW8vdGhlLWF1ZGlvLWFwaS90aGUtYXVkaW9ub2RlLWludGVyZmFjZS9hdWRpb25vZGUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJh
dWRpby90aGUtYXVkaW8tYXBpL3RoZS1hdWRpb25vZGUtaW50ZXJmYWNlL2F1ZGlvbm9kZS1leHBl
Y3RlZC50eHQKaW5kZXggMWVkZjU4YzRhNDZiMTFiZjY5MTAzMWVhYjFhMGVlZWIyMTA0ZDQ1YS4u
MGMxY2FmZmM0MzQ1YzMyZGI3MmQxODdhNzUyODUzZTQ3N2YwOTc1NyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVk
aW8tYXBpL3RoZS1hdWRpb25vZGUtaW50ZXJmYWNlL2F1ZGlvbm9kZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90
aGUtYXVkaW8tYXBpL3RoZS1hdWRpb25vZGUtaW50ZXJmYWNlL2F1ZGlvbm9kZS1leHBlY3RlZC50
eHQKQEAgLTEzLDggKzEzLDggQEAgUEFTUyAgIGF1ZGlvTm9kZS5jb25uZWN0KGNvbnRleHQuZGVz
dGluYXRpb24sIDUsIDApIHRocmV3IEluZGV4U2l6ZUVycm9yOiAiVGhlIGkKIFBBU1MgICBhdWRp
b05vZGUuY29ubmVjdChjb250ZXh0LmRlc3RpbmF0aW9uLCAwLCA1KSB0aHJldyBJbmRleFNpemVF
cnJvcjogIlRoZSBpbmRleCBpcyBub3QgaW4gdGhlIGFsbG93ZWQgcmFuZ2UuIi4gCiBQQVNTICAg
YXVkaW9Ob2RlLmNvbm5lY3QoY29udGV4dC5kZXN0aW5hdGlvbiwgMCwgMCkgZGlkIG5vdCB0aHJv
dyBhbiBleGNlcHRpb24uIAogUEFTUyAgIENvbm5lY3RpbmcgYSBub2RlIHRvIGEgZGlmZmVyZW50
IGNvbnRleHQgdGhyZXcgU3ludGF4RXJyb3I6ICJUaGUgc3RyaW5nIGRpZCBub3QgbWF0Y2ggdGhl
IGV4cGVjdGVkIHBhdHRlcm4uIi4gCi1GQUlMIFggY29udGV4dDMgPSBuZXcgQXVkaW9Db250ZXh0
KDEsIDQ0MTAwLCA0NDEwMCkgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uIGFzc2VydF90cnVl
OiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyAgIGNvbnRleHQzID0gbmV3IEF1ZGlvQ29u
dGV4dCgxLCA0NDEwMCwgNDQxMDApIHRocmV3IFR5cGVFcnJvcjogIlR5cGUgZXJyb3IiLiAKIFBB
U1MgICBBdWRpb05vZGUgaXMgYW4gRXZlbnRUYXJnZXQgaXMgdHJ1ZS4gCi1GQUlMIDwgW3Rlc3Rd
IDEgb3V0IG9mIDEyIGFzc2VydGlvbnMgd2VyZSBmYWlsZWQuIGFzc2VydF90cnVlOiBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQotRkFJTCAjIEFVRElUIFRBU0sgUlVOTkVSIEZJTklTSEVEOiAxIG91
dCBvZiAxIHRhc2tzIHdlcmUgZmFpbGVkLiBhc3NlcnRfdHJ1ZTogZXhwZWN0ZWQgdHJ1ZSBnb3Qg
ZmFsc2UKK1BBU1MgPCBbdGVzdF0gQWxsIGFzc2VydGlvbnMgcGFzc2VkLiAodG90YWwgMTIgYXNz
ZXJ0aW9ucykgCitQQVNTICMgQVVESVQgVEFTSyBSVU5ORVIgRklOSVNIRUQ6IDEgdGFza3MgcmFu
IHN1Y2Nlc3NmdWxseS4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY29udm9sdmVybm9k
ZS1pbnRlcmZhY2UvcmVhbHRpbWUtY29udi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYmF1ZGlvL3RoZS1hdWRpby1hcGkvdGhlLWNv
bnZvbHZlcm5vZGUtaW50ZXJmYWNlL3JlYWx0aW1lLWNvbnYtZXhwZWN0ZWQudHh0CmluZGV4IDlm
MDMyODU3Mzk3ZDlhZWMwMGNkODlkYmY4NDNiYzcwYTdhZTFlOTMuLmI1ZWVlMzgyNmE4N2Y5MTI3
NmYyODY4OTM2MDc1MzNhMWM5OTVjZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2ViYXVkaW8vdGhlLWF1ZGlvLWFwaS90aGUtY29udm9s
dmVybm9kZS1pbnRlcmZhY2UvcmVhbHRpbWUtY29udi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJhdWRpby90aGUtYXVkaW8t
YXBpL3RoZS1jb252b2x2ZXJub2RlLWludGVyZmFjZS9yZWFsdGltZS1jb252LWV4cGVjdGVkLnR4
dApAQCAtMSw3ICsxLDYgQEAKIAogUEFTUyAjIEFVRElUIFRBU0sgUlVOTkVSIFNUQVJURUQuIAot
RkFJTCBFeGVjdXRpbmcgInRlc3QiIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3
aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogZnVuY3Rpb24gaXMgbm90IGEgY29uc3RydWN0
b3IgKGV2YWx1YXRpbmcgJ25ldyBBdWRpb0J1ZmZlcigKLSAgICAgICAgICAgICAgICB7bGVuZ3Ro
OiBwdWxzZUxlbmd0aCwgc2FtcGxlUmF0ZTogY29udGV4dC5zYW1wbGVSYXRlfSknKSIKK0ZBSUwg
RXhlY3V0aW5nICJ0ZXN0IiBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2
YWx1ZTogb2JqZWN0ICJTeW50YXhFcnJvcjogc2FtcGxlUmF0ZSBpcyBub3QgaW4gcmFuZ2UiCiBQ
QVNTIEF1ZGl0IHJlcG9ydCAKIFBBU1MgPiBbdGVzdF0gVGVzdCBjb252b2x2ZXIgd2l0aCByZWFs
LXRpbWUgY29udGV4dCAKIFBBU1MgIyBBVURJVCBUQVNLIFJVTk5FUiBGSU5JU0hFRDogMSB0YXNr
cyByYW4gc3VjY2Vzc2Z1bGx5LiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>