<?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>234109</bug_id>
          
          <creation_ts>2021-12-09 15:45:37 -0800</creation_ts>
          <short_desc>[GPU Process] [Filters] Move FEImage to the &apos;platform&apos; directory</short_desc>
          <delta_ts>2022-01-24 01:00:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>231253</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1822393</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-09 15:45:37 -0800</bug_when>
    <thetext>But we need to replace SVGPreserveAspectRatioValue by non-SVG specific object first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824947</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-16 18:41:51 -0800</bug_when>
    <thetext>&lt;rdar://problem/86608573&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833074</commentid>
    <comment_count>2</comment_count>
      <attachid>449745</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-22 23:40:29 -0800</bug_when>
    <thetext>Created attachment 449745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833112</commentid>
    <comment_count>3</comment_count>
      <attachid>449745</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-23 10:59:48 -0800</bug_when>
    <thetext>Comment on attachment 449745
Patch

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

&gt; Source/WebCore/platform/graphics/filters/software/FEImageSoftwareApplier.h:34
&gt; +class FEImageSoftwareApplier : public FilterEffectConcreteApplier&lt;FEImage&gt; {

final?

&gt; Source/WebCore/platform/graphics/filters/software/FEImageSoftwareApplier.h:41
&gt; +    bool apply(const Filter&amp;, const FilterImageVector&amp; inputs, FilterImage&amp; result) const override;

private? final?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833203</commentid>
    <comment_count>4</comment_count>
      <attachid>449783</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-23 23:05:06 -0800</bug_when>
    <thetext>Created attachment 449783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833204</commentid>
    <comment_count>5</comment_count>
      <attachid>449745</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-01-23 23:06:51 -0800</bug_when>
    <thetext>Comment on attachment 449745
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/filters/software/FEImageSoftwareApplier.h:34
&gt;&gt; +class FEImageSoftwareApplier : public FilterEffectConcreteApplier&lt;FEImage&gt; {
&gt; 
&gt; final?

Yes it can be. Fixed for all the filter applier concrete classes.

&gt;&gt; Source/WebCore/platform/graphics/filters/software/FEImageSoftwareApplier.h:41
&gt;&gt; +    bool apply(const Filter&amp;, const FilterImageVector&amp; inputs, FilterImage&amp; result) const override;
&gt; 
&gt; private? final?

Yes it can be. Fixed for all the filter applier concrete classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833211</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-24 00:59:55 -0800</bug_when>
    <thetext>Committed r288432 (246321@main): &lt;https://commits.webkit.org/246321@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449783.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449745</attachid>
            <date>2022-01-22 23:40:29 -0800</date>
            <delta_ts>2022-01-23 10:59:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234109-20220122234028.patch</filename>
            <type>text/plain</type>
            <size>38264</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODQ2Zjc1MDk1OTU3YTVi
NTFlNDJmYTEzMmU4MjNhYWQ4NzQwYzY3Ny4uY2FkN2U0N2RmNGJjYzM5NDdjMmExZDdmM2Y4Mjg3
M2NhYzA3ZjAzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIyLTAxLTIyICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
W0ZpbHRlcnNdIE1vdmUgRkVJbWFnZSB0byB0aGUgJ3BsYXRmb3JtJyBkaXJlY3RvcnkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDEwOQorICAgICAg
ICByZGFyOi8vODY2MDg1NzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBNb3ZlIGFsc28gRkVJbWFnZVNvZnR3YXJlQXBwbGllciB0byBzZXBhcmF0ZSBz
b3VyY2UgYW5kIGhlYWRlciBmaWxlcy4KKworICAgICAgICAqIEhlYWRlcnMuY21ha2U6CisgICAg
ICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5
TGlzdFJlY29yZGVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
SW1hZ2UuY3BwOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRl
cnMvU1ZHRkVJbWFnZS5jcHAuCisgICAgICAgIChXZWJDb3JlOjpGRUltYWdlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RkVJbWFnZTo6RkVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpG
RUltYWdlOjpjYWxjdWxhdGVJbWFnZVJlY3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RkVJ
bWFnZTo6Y3JlYXRlU29mdHdhcmVBcHBsaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZF
SW1hZ2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24gY29uc3QpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVJbWFnZS5oOiBSZW5hbWVkIGZyb20gU291cmNlL1dlYkNvcmUv
c3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oLgorICAgICAgICAoV2ViQ29yZTo6RkVJ
bWFnZTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OmRlY29kZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUltYWdlU29m
dHdhcmVBcHBsaWVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGRUltYWdlU29mdHdh
cmVBcHBsaWVyOjphcHBseSBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9zb2Z0d2FyZS9GRUltYWdlU29mdHdhcmVBcHBsaWVyLmg6IEFkZGVkLgorICAgICAgICAq
IHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwOgorICAg
ICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHA6CisgICAgICAgICogc3ZnL1NWR0ZFSW1h
Z2VFbGVtZW50Lmg6CisKIDIwMjItMDEtMjIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBs
ZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXSBBZGQgdGhlIGNsYXNzICdTb3VyY2VJbWFn
ZScgdG8gcmVwcmVzZW50IHZhcmlhbnRzIG9mIGltYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGIxMDczNDI2ZGRm
YTZiYjM2MTZkOWVmZmVmYmFlZDU4MThjNDgyNGQuLjBhZjc3OGRkNjQ0YjZhOGU2OWJmN2E3ZjNm
YTQ1MjRlOWFkN2I2MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjItMDEtMjIgIFNh
aWQgQWJvdS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNz
XSBbRmlsdGVyc10gTW92ZSBGRUltYWdlIHRvIHRoZSAncGxhdGZvcm0nIGRpcmVjdG9yeQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MTA5CisgICAg
ICAgIHJkYXI6Ly84NjYwODU3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oOgorCiAyMDIyLTAx
LTIyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUg
UHJvY2Vzc10gQWRkIHRoZSBjbGFzcyAnU291cmNlSW1hZ2UnIHRvIHJlcHJlc2VudCB2YXJpYW50
cyBvZiBpbWFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggOTJkNWQ5NjFmYzNhNjNlNjU2MWYwZTUz
NTYzNWQ0ZDY1N2ZlMjAxYi4uNjNiYzE2NWY4NDRlMjk4YzEyZWIyN2UwODA5NmQxOWE0YjBmNzhk
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xNTk5LDYgKzE1OTksNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RURyb3BTaGFkb3cuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVGbG9vZC5oCiAg
ICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUdhdXNzaWFuQmx1ci5oCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GRUltYWdlLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0ZFTGlnaHRpbmcuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNZXJnZS5o
CiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRU1vcnBob2xvZ3kuaApAQCAtMTkzMyw3
ICsxOTM0LDYgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogCiAgICAg
c3ZnL2dyYXBoaWNzL1NWR0ltYWdlQ2FjaGUuaAogCi0gICAgc3ZnL2dyYXBoaWNzL2ZpbHRlcnMv
U1ZHRkVJbWFnZS5oCiAgICAgc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKICAgICBz
dmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXJFeHByZXNzaW9uLmgKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApp
bmRleCA5YTljZWM0ZWU0YWFkOGY0NmUwOGU0NDkwNDcyOTRjMjc2NjU1MzQwLi4yNzMzNzVhYmJi
M2Q1OTlmNWNjNGIyN2JjMDNiZmE0OTY5M2FiODA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjEwNyw2
ICsyMTA3LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRURpc3BsYWNlbWVudE1hcC5j
cHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmNwcAogcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9GRUZsb29kLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUdhdXNzaWFuQmx1ci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVJbWFnZS5jcHAK
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVMaWdodGluZy5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvRkVNZXJnZS5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3Jw
aG9sb2d5LmNwcApAQCAtMjEzMyw2ICsyMTM0LDcgQEAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9zb2Z0d2FyZS9GRURpc3BsYWNlbWVudE1hcFNvZnR3YXJlQXBwbGllci5jcHAKIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVEcm9wU2hhZG93U29mdHdhcmVBcHBsaWVyLmNw
cAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUZsb29kU29mdHdhcmVBcHBs
aWVyLmNwcAogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUdhdXNzaWFuQmx1
clNvZnR3YXJlQXBwbGllci5jcHAKK3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUv
RkVJbWFnZVNvZnR3YXJlQXBwbGllci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29m
dHdhcmUvRkVMaWdodGluZ1NvZnR3YXJlQXBwbGllci5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvc29mdHdhcmUvRkVNZXJnZVNvZnR3YXJlQXBwbGllci5jcHAKIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVNb3JwaG9sb2d5U29mdHdhcmVBcHBsaWVyLmNwcApAQCAt
MjcxNyw3ICsyNzE5LDYgQEAgc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKIHN2Zy9n
cmFwaGljcy9TVkdJbWFnZS5jcHAKIHN2Zy9ncmFwaGljcy9TVkdJbWFnZUNhY2hlLmNwcAogc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmNwcAotc3ZnL2dyYXBoaWNzL2ZpbHRlcnMv
U1ZHRkVJbWFnZS5jcHAKIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAKIHN2Zy9n
cmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlckJ1aWxkZXIuY3BwCiBzdmcvcHJvcGVydGllcy9TVkdB
bmltYXRlZFByb3BlcnR5LmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDg5MWYwOTdlY2MwZGViMjMzOWY1ZjFmMTIzYjkwZGI4
YTEwZGRmNDguLmM1MDAxOGMwMjU3ZDk4NjJlYWZlOGIzNjM3MDYwNzEyMzQyN2YxMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTIzMjMsNiArMjMyMyw3IEBACiAJCTcyNEVEMzMyMUEzQThCMjMwMEY1RjEzQyAvKiBKU0VYVEJs
ZW5kTWluTWF4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3MjRFRDMzMDFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oICovOyB9Owog
CQk3MjRFRTU1MDFEQzgwRDdGMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1NEUxREM3RjI1QjAwQTkx
RkZCIC8qIEFjdGl2aXR5U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk3MjRFRTU1MTFEQzgwRDg0MDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0
ZUNoYW5nZU9ic2VydmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA3MjRFRTU0RjFEQzdGMjVCMDBBOTFGRkIgLyogQWN0aXZpdHlTdGF0ZUNoYW5nZU9i
c2VydmVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNzI1NjA3OEUyNzlEMzRCNjAwN0QyREQzIC8qIEZFSW1hZ2UuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyRjdFNzRGMjc5Q0VERTgwMEQ4MkQyRCAv
KiBGRUltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNzI2Q0RFMjAyNzU5NzM1MDAwQTQ0NUIyIC8qIEZpbHRlckVmZmVjdEdlb21ldHJ5Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk2NjFBMjI3
NTk2MEE1MDBFN0RGOUIgLyogRmlsdGVyRWZmZWN0R2VvbWV0cnkuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjZENTZFMjI1M0FFMjhEMDAwMkVG
OTAgLyogUGxhdGZvcm1JbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNzI2RDU2RTEyNTNBRTA0MzAwMDJFRjkwIC8qIFBsYXRmb3JtSW1hZ2UuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjZENTZF
MzI1M0FFMzY2MDAwMkVGOTAgLyogTmF0aXZlSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRp
dmVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC0zODk1LDcgKzM4OTYsNiBAQAogCQlCMjIyRjY5RDBBQjc3MUI4MDAyMkVGQUQgLyogSlNT
VkdFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBCMjIyRjY5QjBBQjc3MUI4MDAyMkVGQUQgLyogSlNTVkdFbGVtZW50LmggKi87IH07CiAJCUIy
MjM2MjI5MEMzQUYwNEEwMDA4Q0E5QiAvKiBKU1NWR1RleHRQYXRoRWxlbWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMzYyMjcwQzNBRjA0QTAw
MDhDQTlCIC8qIEpTU1ZHVGV4dFBhdGhFbGVtZW50LmggKi87IH07CiAJCUIyMzU0MEYzMEQwMDc4
MkUwMDIzODJGQSAvKiBTdHJpbmdUcnVuY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMzU0MEYxMEQwMDc4MkUwMDIzODJGQSAvKiBTdHJpbmdU
cnVuY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwotCQlCMjU1OTk4NTBEMDBEOEJBMDBCQjgyNUMgLyogU1ZHRkVJbWFnZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjI1NTk4RUIwRDAwRDhCOTAwQkI4
MjVDIC8qIFNWR0ZFSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQlCMjU1OTlBNDBEMDBEOEJBMDBCQjgyNUMgLyogU1ZHSW1hZ2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5OTBDMEQwMEQ4
QjkwMEJCODI1QyAvKiBTVkdJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCUIyNTU5OUE1MEQwMEQ4QkEwMEJCODI1QyAvKiBFbXB0eUNsaWVu
dHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5
OTBEMEQwMEQ4QjkwMEJCODI1QyAvKiBFbXB0eUNsaWVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCMjc1MzU2NTBCMDUzODE0MDAyQ0U2NEYg
LyogUERGRG9jdW1lbnRJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQjI3NTM1MzcwQjA1MzgxNDAwMkNFNjRGIC8qIFBERkRvY3VtZW50SW1hZ2Uu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTEz
NTMsNiArMTEzNTMsMTAgQEAKIAkJNzJGNjY3REYyNjBDMjY0NDAwRUUzNkFEIC8qIERpYWdub3N0
aWNMb2dnaW5nRG9tYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpYWdub3N0aWNMb2dnaW5nRG9tYWlu
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRjdFNzQyMjc5QjhGNzQwMEQ4MkQy
RCAvKiBTb3VyY2VJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTb3VyY2VJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRjdFNzQ0
Mjc5QjhGNzQwMEQ4MkQyRCAvKiBTb3VyY2VJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTb3VyY2VJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3
MkY3RTc0RTI3OUNFREU4MDBEODJEMkQgLyogRkVJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGRUltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzJGN0U3NEYyNzlD
RURFODAwRDgyRDJEIC8qIEZFSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRkVJbWFnZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk3MkY3RTc1MTI3OUNFRTVDMDBEODJEMkQgLyogRkVJ
bWFnZVNvZnR3YXJlQXBwbGllci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGRUltYWdlU29mdHdh
cmVBcHBsaWVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzJGN0U3NTIyNzlD
RUU1QzAwRDgyRDJEIC8qIEZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RkVJbWFnZVNvZnR3YXJlQXBwbGllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3
MkZCMjM4NDIyNDk3QUQ0MDA3RTVBQzcgLyogU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdWYWx1ZVByb3BlcnR5QW5pbWF0
b3JJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyRkIyMzg2MjI0OTdBRDUw
MDdFNUFDNyAvKiBTVkdWYWx1ZVByb3BlcnR5QW5pbWF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcyRkIyMzg3MjI0OTdCMTUwMDdFNUFDNyAvKiBTVkdWYWx1ZVByb3Bl
cnR5TGlzdEFuaW1hdG9ySW1wbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdWYWx1ZVByb3BlcnR5TGlzdEFuaW1hdG9ySW1wbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTQ3NjUsOCArMTQ3NjksNiBAQAogCQlCMjIzNjIyNzBDM0FGMDRBMDAwOENBOUIg
LyogSlNTVkdUZXh0UGF0aEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEpTU1ZHVGV4dFBhdGhFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUIyMzU0MEYwMEQwMDc4MkUwMDIzODJGQSAvKiBTdHJpbmdUcnVuY2F0b3IuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFN0cmluZ1RydW5jYXRvci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUIyMzU0MEYxMEQwMDc4MkUwMDIzODJGQSAvKiBTdHJp
bmdUcnVuY2F0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFN0cmluZ1Ry
dW5jYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMjU1OThFQTBEMDBEOEI5
MDBCQjgyNUMgLyogU1ZHRkVJbWFnZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gU1ZHRkVJbWFnZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUIy
NTU5OEVCMEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdGRUltYWdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdGRUltYWdlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUIyNTU5OTBCMEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdJbWFnZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHSW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCMjU1OTkwQzBEMDBEOEI5MDBCQjgyNUMgLyogU1ZHSW1hZ2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0ltYWdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUIyNTU5OTBEMEQwMEQ4QjkwMEJCODI1QyAvKiBFbXB0eUNsaWVudHMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVtcHR5Q2xpZW50cy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjQ3MTEsNiArMjQ3MTMsOCBAQAogCQkJCTcyQTEz
QUM1Mjc0REUzOUUwMEUyQTg4RSAvKiBGRUZsb29kU29mdHdhcmVBcHBsaWVyLmggKi8sCiAJCQkJ
NzJBMTNBQzYyNzRERTNCNzAwRTJBODhFIC8qIEZFR2F1c3NpYW5CbHVyU29mdHdhcmVBcHBsaWVy
LmNwcCAqLywKIAkJCQk3MkExM0FDNzI3NERFM0I3MDBFMkE4OEUgLyogRkVHYXVzc2lhbkJsdXJT
b2Z0d2FyZUFwcGxpZXIuaCAqLywKKwkJCQk3MkY3RTc1MTI3OUNFRTVDMDBEODJEMkQgLyogRkVJ
bWFnZVNvZnR3YXJlQXBwbGllci5jcHAgKi8sCisJCQkJNzJGN0U3NTIyNzlDRUU1QzAwRDgyRDJE
IC8qIEZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXIuaCAqLywKIAkJCQk3MkExM0FDODI3NERFM0QxMDBF
MkE4OEUgLyogRkVMaWdodGluZ1NvZnR3YXJlQXBwbGllci5jcHAgKi8sCiAJCQkJNzJBMTNBQzky
NzRERTNEMTAwRTJBODhFIC8qIEZFTGlnaHRpbmdTb2Z0d2FyZUFwcGxpZXIuaCAqLywKIAkJCQk3
MkExM0FDQTI3NERFM0U1MDBFMkE4OEUgLyogRkVNZXJnZVNvZnR3YXJlQXBwbGllci5jcHAgKi8s
CkBAIC0yNjgyMSw2ICsyNjgyNSw4IEBACiAJCQkJODQ3MzBENjIxMjQ4RjBCMzAwRDNBOUM5IC8q
IEZFRmxvb2QuaCAqLywKIAkJCQk4NDgwMTk1MjEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lh
bkJsdXIuY3BwICovLAogCQkJCTg0ODAxOTUzMTA4QkFGQjMwMENCMkIxRiAvKiBGRUdhdXNzaWFu
Qmx1ci5oICovLAorCQkJCTcyRjdFNzRFMjc5Q0VERTgwMEQ4MkQyRCAvKiBGRUltYWdlLmNwcCAq
LywKKwkJCQk3MkY3RTc0RjI3OUNFREU4MDBEODJEMkQgLyogRkVJbWFnZS5oICovLAogCQkJCTg0
NzMwRDYzMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUxpZ2h0aW5nLmNwcCAqLywKIAkJCQk4NDczMEQ2
NDEyNDhGMEIzMDBEM0E5QzkgLyogRkVMaWdodGluZy5oICovLAogCQkJCTg0NzMwRDY1MTI0OEYw
QjMwMEQzQTlDOSAvKiBGRU1lcmdlLmNwcCAqLywKQEAgLTI4NjIwLDggKzI4NjI2LDYgQEAKIAkJ
QjI1NTk4OUMwRDAwRDhCODAwQkI4MjVDIC8qIGZpbHRlcnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCUIyNTU5OEVBMEQwMEQ4QjkwMEJCODI1QyAvKiBT
VkdGRUltYWdlLmNwcCAqLywKLQkJCQlCMjU1OThFQjBEMDBEOEI5MDBCQjgyNUMgLyogU1ZHRkVJ
bWFnZS5oICovLAogCQkJCTg0NUU3MkY5MEZEMjYyMzkwMEE4N0Q3OSAvKiBTVkdGaWx0ZXIuY3Bw
ICovLAogCQkJCTg0NUU3MkZBMEZEMjYyMzkwMEE4N0Q3OSAvKiBTVkdGaWx0ZXIuaCAqLywKIAkJ
CQkwODFFQkYzODBGRDM0RjQxMDBEQTc1NTkgLyogU1ZHRmlsdGVyQnVpbGRlci5jcHAgKi8sCkBA
IC0zNDM3NCw2ICszNDM3OCw3IEBACiAJCQkJNDM1OEU4ODExMzYwQTMxNzAwRTQ3NDhDIC8qIEZF
RHJvcFNoYWRvdy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEN0YxMjQ4RjBCMzAwRDNBOUM5
IC8qIEZFRmxvb2QuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0ODAxOTU1MTA4QkFGQjMwMENCMkIx
RiAvKiBGRUdhdXNzaWFuQmx1ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNzI1NjA3OEUyNzlEMzRC
NjAwN0QyREQzIC8qIEZFSW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzMwRDgxMTI0OEYw
QjMwMEQzQTlDOSAvKiBGRUxpZ2h0aW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDczMEQ4MzEy
NDhGMEIzMDBEM0E5QzkgLyogRkVNZXJnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEODUx
MjQ4RjBCMzAwRDNBOUM5IC8qIEZFTW9ycGhvbG9neS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNzM4
OSw3ICszNzM5NCw2IEBACiAJCQkJQjIyMjc5RTYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZFRnVu
Y0dFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzlFOTBEMDBCRjIyMDA3MUI3ODIg
LyogU1ZHRkVGdW5jUkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyMjI3OUVDMEQwMEJG
MjIwMDcxQjc4MiAvKiBTVkdGRUdhdXNzaWFuQmx1ckVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAot
CQkJCUIyNTU5OTg1MEQwMEQ4QkEwMEJCODI1QyAvKiBTVkdGRUltYWdlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCMjIyNzlFRjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVJbWFnZUVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCUIyMjI3OUYyMEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRUxpZ2h0
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5RjQwRDAwQkYyMjAwNzFCNzgyIC8q
IFNWR0ZFTWVyZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29yZGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNw
bGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBmNTA4OGQ2OTczMGUyOWY3MGRiODc0YzBjYjZhODhl
MmEyODMyZDgxLi44OWYzZDM1M2RhN2JiNDE3MTE4ZmY3MTg4Y2VkYzA3YzA4YmNjODQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMvRGlz
cGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0yOSwxMyArMjksMTMg
QEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgogI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJhd2lu
Z0NvbnRleHQuaCIKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCisjaW5jbHVkZSAiRkVJ
bWFnZS5oIgogI2luY2x1ZGUgIkZpbHRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1
ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRl
ICJTVkdGRUltYWdlLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZFSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NDQ2NzM4MzEwYWZj
Nzk4YTM5ODNmM2FiOTA4NDlkM2NhMmEwMDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFSW1hZ2UuY3BwCkBAIC0wLDAgKzEsNzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNl
aWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEwIERpcmsgU2NodWx6
ZSA8a3JpdEB3ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZF
SW1hZ2UuaCIKKworI2luY2x1ZGUgIkZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXIuaCIKKyNpbmNsdWRl
ICJGaWx0ZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworUmVmPEZFSW1hZ2U+IEZFSW1hZ2U6OmNyZWF0ZShTb3VyY2VJbWFnZSYm
IHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgY29uc3QgU1ZH
UHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQoreworICAgIHJl
dHVybiBhZG9wdFJlZigqbmV3IEZFSW1hZ2UoV1RGTW92ZShzb3VyY2VJbWFnZSksIHNvdXJjZUlt
YWdlUmVjdCwgcHJlc2VydmVBc3BlY3RSYXRpbykpOworfQorCitGRUltYWdlOjpGRUltYWdlKFNv
dXJjZUltYWdlJiYgc291cmNlSW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0
LCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8p
CisgICAgOiBGaWx0ZXJFZmZlY3QoVHlwZTo6RkVJbWFnZSkKKyAgICAsIG1fc291cmNlSW1hZ2Uo
V1RGTW92ZShzb3VyY2VJbWFnZSkpCisgICAgLCBtX3NvdXJjZUltYWdlUmVjdChzb3VyY2VJbWFn
ZVJlY3QpCisgICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8ocHJlc2VydmVBc3BlY3RSYXRpbykK
K3sKK30KKworRmxvYXRSZWN0IEZFSW1hZ2U6OmNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0
ZXImIGZpbHRlciwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImLCBjb25zdCBGbG9hdFJlY3QmIHBy
aW1pdGl2ZVN1YnJlZ2lvbikgY29uc3QKK3sKKyAgICBpZiAobV9zb3VyY2VJbWFnZS5uYXRpdmVJ
bWFnZUlmRXhpc3RzKCkpIHsKKyAgICAgICAgYXV0byBpbWFnZVJlY3QgPSBwcmltaXRpdmVTdWJy
ZWdpb247CisgICAgICAgIGF1dG8gc3JjUmVjdCA9IG1fc291cmNlSW1hZ2VSZWN0OworICAgICAg
ICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8udHJhbnNmb3JtUmVjdChpbWFnZVJlY3QsIHNyY1JlY3Qp
OworICAgICAgICByZXR1cm4gZmlsdGVyLmNsaXBUb01heEVmZmVjdFJlY3QoaW1hZ2VSZWN0LCBw
cmltaXRpdmVTdWJyZWdpb24pOworICAgIH0KKworICAgIGlmIChtX3NvdXJjZUltYWdlLmltYWdl
QnVmZmVySWZFeGlzdHMoKSkKKyAgICAgICAgcmV0dXJuIGZpbHRlci5tYXhFZmZlY3RSZWN0KHBy
aW1pdGl2ZVN1YnJlZ2lvbik7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1
cm4gRmxvYXRSZWN0KCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVy
PiBGRUltYWdlOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAoreworICAgIHJldHVybiBG
aWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVJbWFnZVNvZnR3YXJlQXBwbGllcj4oKnRoaXMp
OworfQorCitUZXh0U3RyZWFtJiBGRUltYWdlOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRleHRT
dHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QKK3sK
KyAgICB0cyA8PCBpbmRlbnQgPDwgIltmZUltYWdlIjsKKyAgICBGaWx0ZXJFZmZlY3Q6OmV4dGVy
bmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKKworICAgIHRzIDw8ICIgaW1h
Z2Utc2l6ZT1cIiIgPDwgbV9zb3VyY2VJbWFnZVJlY3Qud2lkdGgoKSA8PCAieCIgPDwgbV9zb3Vy
Y2VJbWFnZVJlY3QuaGVpZ2h0KCkgPDwgIlwiIjsKKyAgICAvLyBGSVhNRTogc2hvdWxkIHRoaXMg
ZHVtcCBhbHNvIG9iamVjdCByZXR1cm5lZCBieSBGRUltYWdlOjppbWFnZSgpID8KKworICAgIHRz
IDw8ICJdXG4iOworICAgIHJldHVybiB0czsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUlt
YWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFSW1hZ2Uu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NjU2YmI5ZDUyYzhlZTk0YzA2ODQ5NDE2ODVmNTJhODNjNjU5NzMwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9GRUltYWdlLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAq
IENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgorICogQ29weXJp
Z2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg
YW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBH
ZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdh
cmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChh
dCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlz
IGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQg
V0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBv
ZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0
aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZp
ZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpbmNsdWRlICJGaWx0ZXJFZmZlY3QuaCIKKyNpbmNsdWRlICJJbWFnZS5oIgor
I2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRp
b1ZhbHVlLmgiCisjaW5jbHVkZSAiU291cmNlSW1hZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBJbWFnZTsKK2NsYXNzIEltYWdlQnVmZmVyOworCitjbGFzcyBGRUltYWdlIGZp
bmFsIDogcHVibGljIEZpbHRlckVmZmVjdCB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIFJlZjxGRUltYWdlPiBjcmVhdGUoU291cmNlSW1hZ2UmJiwgY29uc3QgRmxvYXRSZWN0
JiBzb3VyY2VJbWFnZVJlY3QsIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYpOwor
CisgICAgY29uc3QgU291cmNlSW1hZ2UmIHNvdXJjZUltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9z
b3VyY2VJbWFnZTsgfQorICAgIHZvaWQgc2V0SW1hZ2VTb3VyY2UoU291cmNlSW1hZ2UmJiBzb3Vy
Y2VJbWFnZSkgeyBtX3NvdXJjZUltYWdlID0gV1RGTW92ZShzb3VyY2VJbWFnZSk7IH0KKworICAg
IEZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUltYWdl
UmVjdDsgfQorICAgIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVB
c3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsgfQorCisg
ICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0Owor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUlt
YWdlPj4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBGRUltYWdlKFNvdXJjZUlt
YWdlJiYsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBjb25zdCBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWUmKTsKKworICAgIHVuc2lnbmVkIG51bWJlck9mRWZmZWN0SW5wdXRz
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorCisgICAgLy8gRkVJbWFnZSByZXN1bHRz
IGFyZSBhbHdheXMgaW4gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkKKyAgICB2b2lkIHNl
dE9wZXJhdGluZ0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJikgb3ZlcnJp
ZGUgeyB9CisKKyAgICBGbG9hdFJlY3QgY2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYs
IGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0
aXZlU3VicmVnaW9uKSBjb25zdCBvdmVycmlkZTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0
ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBmaW5hbDsKKwor
ICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJl
YW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3QgZmluYWw7CisKKyAgICBTb3VyY2VJbWFn
ZSBtX3NvdXJjZUltYWdlOworICAgIEZsb2F0UmVjdCBtX3NvdXJjZUltYWdlUmVjdDsKKyAgICBT
VkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOworfTsKKwor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVJbWFnZTo6ZW5jb2RlKEVuY29kZXImIGVu
Y29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3NvdXJjZUltYWdlOworICAgIGVuY29k
ZXIgPDwgbV9zb3VyY2VJbWFnZVJlY3Q7CisgICAgZW5jb2RlciA8PCBtX3ByZXNlcnZlQXNwZWN0
UmF0aW87Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJlZjxG
RUltYWdlPj4gRkVJbWFnZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpv
cHRpb25hbDxTb3VyY2VJbWFnZT4gc291cmNlSW1hZ2U7CisgICAgZGVjb2RlciA+PiBzb3VyY2VJ
bWFnZTsKKyAgICBpZiAoIXNvdXJjZUltYWdlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IHNvdXJjZUltYWdlUmVjdDsKKyAgICBk
ZWNvZGVyID4+IHNvdXJjZUltYWdlUmVjdDsKKyAgICBpZiAoIXNvdXJjZUltYWdlUmVjdCkKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8U1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpb1ZhbHVlPiBwcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgIGRlY29kZXIgPj4g
cHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICBpZiAoIXByZXNlcnZlQXNwZWN0UmF0aW8pCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVJbWFnZTo6Y3JlYXRlKFdU
Rk1vdmUoKnNvdXJjZUltYWdlKSwgKnNvdXJjZUltYWdlUmVjdCwgKnByZXNlcnZlQXNwZWN0UmF0
aW8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJ
VFNfRklMVEVSX0VGRkVDVChGRUltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUltYWdlU29mdHdhcmVBcHBsaWVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVJ
bWFnZVNvZnR3YXJlQXBwbGllci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzM0MmE1Y2E0NDBjMDcxOWIzOWEw
NWNlYjNjODNmYmEwNzE4ZGUyOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVJbWFnZVNvZnR3YXJlQXBwbGllci5j
cHAKQEAgLTAsMCArMSw2OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXIuaCIKKworI2luY2x1ZGUgIkZFSW1hZ2UuaCIKKyNpbmNs
dWRlICJGaWx0ZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitib29sIEZFSW1hZ2VTb2Z0
d2FyZUFwcGxpZXI6OmFwcGx5KGNvbnN0IEZpbHRlciYgZmlsdGVyLCBjb25zdCBGaWx0ZXJJbWFn
ZVZlY3RvciYsIEZpbHRlckltYWdlJiByZXN1bHQpIGNvbnN0Cit7CisgICAgYXV0byByZXN1bHRJ
bWFnZSA9IHJlc3VsdC5pbWFnZUJ1ZmZlcigpOworICAgIGlmICghcmVzdWx0SW1hZ2UpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGF1dG8mIHNvdXJjZUltYWdlID0gbV9lZmZlY3Quc291
cmNlSW1hZ2UoKTsKKyAgICBhdXRvIHByaW1pdGl2ZVN1YnJlZ2lvbiA9IHJlc3VsdC5wcmltaXRp
dmVTdWJyZWdpb24oKTsKKyAgICBhdXRvJiBjb250ZXh0ID0gcmVzdWx0SW1hZ2UtPmNvbnRleHQo
KTsKKworICAgIGlmIChhdXRvIG5hdGl2ZUltYWdlID0gc291cmNlSW1hZ2UubmF0aXZlSW1hZ2VJ
ZkV4aXN0cygpKSB7CisgICAgICAgIGF1dG8gaW1hZ2VSZWN0ID0gcHJpbWl0aXZlU3VicmVnaW9u
OworICAgICAgICBhdXRvIHNyY1JlY3QgPSBtX2VmZmVjdC5zb3VyY2VJbWFnZVJlY3QoKTsKKyAg
ICAgICAgbV9lZmZlY3QucHJlc2VydmVBc3BlY3RSYXRpbygpLnRyYW5zZm9ybVJlY3QoaW1hZ2VS
ZWN0LCBzcmNSZWN0KTsKKyAgICAgICAgaW1hZ2VSZWN0LnNjYWxlKGZpbHRlci5maWx0ZXJTY2Fs
ZSgpKTsKKyAgICAgICAgaW1hZ2VSZWN0ID0gSW50UmVjdChpbWFnZVJlY3QpIC0gcmVzdWx0LmFi
c29sdXRlSW1hZ2VSZWN0KCkubG9jYXRpb24oKTsKKyAgICAgICAgY29udGV4dC5kcmF3TmF0aXZl
SW1hZ2UoKm5hdGl2ZUltYWdlLCBzcmNSZWN0LnNpemUoKSwgaW1hZ2VSZWN0LCBzcmNSZWN0KTsK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgaWYgKGF1dG8gaW1hZ2VCdWZmZXIg
PSBzb3VyY2VJbWFnZS5pbWFnZUJ1ZmZlcklmRXhpc3RzKCkpIHsKKyAgICAgICAgYXV0byBpbWFn
ZVJlY3QgPSBwcmltaXRpdmVTdWJyZWdpb247CisgICAgICAgIGltYWdlUmVjdC5tb3ZlQnkobV9l
ZmZlY3Quc291cmNlSW1hZ2VSZWN0KCkubG9jYXRpb24oKSk7CisgICAgICAgIGltYWdlUmVjdC5z
Y2FsZShmaWx0ZXIuZmlsdGVyU2NhbGUoKSk7CisgICAgICAgIGltYWdlUmVjdCA9IEludFJlY3Qo
aW1hZ2VSZWN0KSAtIHJlc3VsdC5hYnNvbHV0ZUltYWdlUmVjdCgpLmxvY2F0aW9uKCk7CisgICAg
ICAgIGNvbnRleHQuZHJhd0ltYWdlQnVmZmVyKCppbWFnZUJ1ZmZlciwgaW1hZ2VSZWN0LmxvY2F0
aW9uKCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgCisgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L3NvZnR3YXJlL0ZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVJbWFnZVNvZnR3YXJlQXBwbGllci5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmNhNmE4ZTllMWViOTFkZmY1Yzc0ZGQxYzJjMjM1MWJkM2FjNzMzNGIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3Nv
ZnR3YXJlL0ZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXIuaApAQCAtMCwwICsxLDQ0IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIyIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiRmlsdGVyRWZmZWN0QXBwbGllci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K2NsYXNzIEZFSW1hZ2U7CisKK2NsYXNzIEZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXIgOiBwdWJsaWMg
RmlsdGVyRWZmZWN0Q29uY3JldGVBcHBsaWVyPEZFSW1hZ2U+IHsKKyAgICBXVEZfTUFLRV9GQVNU
X0FMTE9DQVRFRDsKKyAgICB1c2luZyBCYXNlID0gRmlsdGVyRWZmZWN0Q29uY3JldGVBcHBsaWVy
PEZFSW1hZ2U+OworCitwdWJsaWM6CisgICAgdXNpbmcgQmFzZTo6QmFzZTsKKworICAgIGJvb2wg
YXBwbHkoY29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cywgRmls
dGVySW1hZ2UmIHJlc3VsdCkgY29uc3Qgb3ZlcnJpZGU7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwCmluZGV4IGFkZDcxYTY2Mzdh
YjI0NWE5Y2M0NDJhZTBiZjNjOTg3MGU0YzkxYmMuLjJiZjc3YTkwZWMwMTk2NmRmZjdjNjliODJj
NTkzMzZkNGVjN2ExY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcv
UmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXJQcmltaXRpdmUuY3BwCkBAIC0z
MSw3ICszMSw2IEBACiAjaW5jbHVkZSAiU1ZHRWxlbWVudFR5cGVIZWxwZXJzLmgiCiAjaW5jbHVk
ZSAiU1ZHRkVEaWZmdXNlTGlnaHRpbmdFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHRkVGbG9vZEVs
ZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdGRUltYWdlLmgiCiAjaW5jbHVkZSAiU1ZHRkVTcGVjdWxh
ckxpZ2h0aW5nRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFSW1hZ2VFbGVtZW50LmNwcAppbmRleCA2ZDg4OWFkMWRhNTVhNTUzMmRjY2ZjYWE3NDkwNmU4
ZjMxNTQyN2Y3Li44N2QyZWE2NjhmODA1MDI1NjMyMjllNTBjNGY2MTRkNjczOWMwNGEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5jcHAKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZUxvYWRlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJlc291
cmNlUmVxdWVzdC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRkVJbWFnZS5o
IgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU1ZHUmVzb3VyY2UuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGRUltYWdlRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50
LmgKaW5kZXggZmNmZDFlZTJjZDQ4YTU2N2RiZGNmMjFmMThjODYyNDFjMDRjYzFlOC4uMDQyZDA2
YmVmZTNhY2QyMWI4OGMwNjEwMWM0YzY5MGFmYzdjOGM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZFSW1hZ2VFbGVtZW50LmgKQEAgLTIzLDcgKzIzLDYgQEAKIAogI2luY2x1ZGUgIkNhY2hlZElt
YWdlQ2xpZW50LmgiCiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2VIYW5kbGUuaCIKLSNpbmNsdWRl
ICJTVkdGRUltYWdlLmgiCiAjaW5jbHVkZSAiU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRy
aWJ1dGVzLmgiCiAjaW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlLmgiCiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDc1ZGQ2ODA2MjIyN2RiYTFhYTlkNmYzNGFlODczN2FlNDczZTM3
OWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5jcHAKKysrIC9kZXYvbnVs
bApAQCAtMSwxMjQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAw
NiwgMjAwNyBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KLSAqIENvcHly
aWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgotICogQ29weXJpZ2h0
IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMp
IDIwMTAgRGlyayBTY2h1bHplIDxrcml0QHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIw
MjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFRoaXMgbGli
cmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAq
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0
aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAqIGJ1dCBXSVRIT1VUIEFO
WSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gKiBNRVJD
SEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhl
IEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMu
Ci0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNl
ZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAqIHRoZSBGcmVlIFNv
ZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3Is
Ci0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmln
LmgiCi0jaW5jbHVkZSAiU1ZHRkVJbWFnZS5oIgotCi0jaW5jbHVkZSAiRmlsdGVyLmgiCi0jaW5j
bHVkZSAiRmlsdGVyRWZmZWN0QXBwbGllci5oIgotI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5o
IgotI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1SZWY8RkVJbWFnZT4gRkVJbWFnZTo6Y3JlYXRlKFNvdXJjZUltYWdlJiYgc291cmNlSW1h
Z2UsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBjb25zdCBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8pCi17Ci0gICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRkVJbWFnZShXVEZNb3ZlKHNvdXJjZUltYWdlKSwgc291cmNlSW1hZ2VSZWN0LCBw
cmVzZXJ2ZUFzcGVjdFJhdGlvKSk7Ci19Ci0KLUZFSW1hZ2U6OkZFSW1hZ2UoU291cmNlSW1hZ2Um
JiBzb3VyY2VJbWFnZSwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3QsIGNvbnN0IFNW
R1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbykKLSAgICA6IEZp
bHRlckVmZmVjdChUeXBlOjpGRUltYWdlKQotICAgICwgbV9zb3VyY2VJbWFnZShXVEZNb3ZlKHNv
dXJjZUltYWdlKSkKLSAgICAsIG1fc291cmNlSW1hZ2VSZWN0KHNvdXJjZUltYWdlUmVjdCkKLSAg
ICAsIG1fcHJlc2VydmVBc3BlY3RSYXRpbyhwcmVzZXJ2ZUFzcGVjdFJhdGlvKQotewotfQotCi1G
bG9hdFJlY3QgRkVJbWFnZTo6Y2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYgZmlsdGVy
LCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYsIGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZlU3Vi
cmVnaW9uKSBjb25zdAotewotICAgIGlmIChtX3NvdXJjZUltYWdlLm5hdGl2ZUltYWdlSWZFeGlz
dHMoKSkgewotICAgICAgICBhdXRvIGltYWdlUmVjdCA9IHByaW1pdGl2ZVN1YnJlZ2lvbjsKLSAg
ICAgICAgYXV0byBzcmNSZWN0ID0gbV9zb3VyY2VJbWFnZVJlY3Q7Ci0gICAgICAgIG1fcHJlc2Vy
dmVBc3BlY3RSYXRpby50cmFuc2Zvcm1SZWN0KGltYWdlUmVjdCwgc3JjUmVjdCk7Ci0gICAgICAg
IHJldHVybiBmaWx0ZXIuY2xpcFRvTWF4RWZmZWN0UmVjdChpbWFnZVJlY3QsIHByaW1pdGl2ZVN1
YnJlZ2lvbik7Ci0gICAgfQotCi0gICAgaWYgKG1fc291cmNlSW1hZ2UuaW1hZ2VCdWZmZXJJZkV4
aXN0cygpKQotICAgICAgICByZXR1cm4gZmlsdGVyLm1heEVmZmVjdFJlY3QocHJpbWl0aXZlU3Vi
cmVnaW9uKTsKLQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBGbG9hdFJl
Y3QoKTsKLX0KLQotLy8gRklYTUU6IE1vdmUgdGhlIGNsYXNzIEZFSW1hZ2VTb2Z0d2FyZUFwcGxp
ZXIgdG8gc2VwYXJhdGUgc291cmNlIGFuZCBoZWFkZXIgZmlsZXMuCi1jbGFzcyBGRUltYWdlU29m
dHdhcmVBcHBsaWVyIDogcHVibGljIEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRUltYWdl
PiB7Ci0gICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Ci0gICAgdXNpbmcgQmFzZSA9IEZpbHRl
ckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRUltYWdlPjsKLQotcHVibGljOgotICAgIHVzaW5nIEJh
c2U6OkJhc2U7Ci0KLSAgICBib29sIGFwcGx5KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlcklt
YWdlVmVjdG9yJiBpbnB1dHMsIEZpbHRlckltYWdlJiByZXN1bHQpIGNvbnN0IG92ZXJyaWRlOwot
fTsKLQotYm9vbCBGRUltYWdlU29mdHdhcmVBcHBsaWVyOjphcHBseShjb25zdCBGaWx0ZXImIGZp
bHRlciwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25z
dAotewotICAgIGF1dG8gcmVzdWx0SW1hZ2UgPSByZXN1bHQuaW1hZ2VCdWZmZXIoKTsKLSAgICBp
ZiAoIXJlc3VsdEltYWdlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBhdXRvJiBzb3Vy
Y2VJbWFnZSA9IG1fZWZmZWN0LnNvdXJjZUltYWdlKCk7Ci0gICAgYXV0byBwcmltaXRpdmVTdWJy
ZWdpb24gPSByZXN1bHQucHJpbWl0aXZlU3VicmVnaW9uKCk7Ci0gICAgYXV0byYgY29udGV4dCA9
IHJlc3VsdEltYWdlLT5jb250ZXh0KCk7Ci0KLSAgICBpZiAoYXV0byBuYXRpdmVJbWFnZSA9IHNv
dXJjZUltYWdlLm5hdGl2ZUltYWdlSWZFeGlzdHMoKSkgewotICAgICAgICBhdXRvIGltYWdlUmVj
dCA9IHByaW1pdGl2ZVN1YnJlZ2lvbjsKLSAgICAgICAgYXV0byBzcmNSZWN0ID0gbV9lZmZlY3Qu
c291cmNlSW1hZ2VSZWN0KCk7Ci0gICAgICAgIG1fZWZmZWN0LnByZXNlcnZlQXNwZWN0UmF0aW8o
KS50cmFuc2Zvcm1SZWN0KGltYWdlUmVjdCwgc3JjUmVjdCk7Ci0gICAgICAgIGltYWdlUmVjdC5z
Y2FsZShmaWx0ZXIuZmlsdGVyU2NhbGUoKSk7Ci0gICAgICAgIGltYWdlUmVjdCA9IEludFJlY3Qo
aW1hZ2VSZWN0KSAtIHJlc3VsdC5hYnNvbHV0ZUltYWdlUmVjdCgpLmxvY2F0aW9uKCk7Ci0gICAg
ICAgIGNvbnRleHQuZHJhd05hdGl2ZUltYWdlKCpuYXRpdmVJbWFnZSwgc3JjUmVjdC5zaXplKCks
IGltYWdlUmVjdCwgc3JjUmVjdCk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAg
IGlmIChhdXRvIGltYWdlQnVmZmVyID0gc291cmNlSW1hZ2UuaW1hZ2VCdWZmZXJJZkV4aXN0cygp
KSB7Ci0gICAgICAgIGF1dG8gaW1hZ2VSZWN0ID0gcHJpbWl0aXZlU3VicmVnaW9uOwotICAgICAg
ICBpbWFnZVJlY3QubW92ZUJ5KG1fZWZmZWN0LnNvdXJjZUltYWdlUmVjdCgpLmxvY2F0aW9uKCkp
OwotICAgICAgICBpbWFnZVJlY3Quc2NhbGUoZmlsdGVyLmZpbHRlclNjYWxlKCkpOwotICAgICAg
ICBpbWFnZVJlY3QgPSBJbnRSZWN0KGltYWdlUmVjdCkgLSByZXN1bHQuYWJzb2x1dGVJbWFnZVJl
Y3QoKS5sb2NhdGlvbigpOwotICAgICAgICBjb250ZXh0LmRyYXdJbWFnZUJ1ZmZlcigqaW1hZ2VC
dWZmZXIsIGltYWdlUmVjdC5sb2NhdGlvbigpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotICAgIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBmYWxzZTsKLX0K
LQotc3RkOjp1bmlxdWVfcHRyPEZpbHRlckVmZmVjdEFwcGxpZXI+IEZFSW1hZ2U6OmNyZWF0ZVNv
ZnR3YXJlQXBwbGllcigpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIEZpbHRlckVmZmVjdEFwcGxpZXI6
OmNyZWF0ZTxGRUltYWdlU29mdHdhcmVBcHBsaWVyPigqdGhpcyk7Ci19Ci0KLVRleHRTdHJlYW0m
IEZFSW1hZ2U6OmV4dGVybmFsUmVwcmVzZW50YXRpb24oVGV4dFN0cmVhbSYgdHMsIEZpbHRlclJl
cHJlc2VudGF0aW9uIHJlcHJlc2VudGF0aW9uKSBjb25zdAotewotICAgIHRzIDw8IGluZGVudCA8
PCAiW2ZlSW1hZ2UiOwotICAgIEZpbHRlckVmZmVjdDo6ZXh0ZXJuYWxSZXByZXNlbnRhdGlvbih0
cywgcmVwcmVzZW50YXRpb24pOwotCi0gICAgdHMgPDwgIiBpbWFnZS1zaXplPVwiIiA8PCBtX3Nv
dXJjZUltYWdlUmVjdC53aWR0aCgpIDw8ICJ4IiA8PCBtX3NvdXJjZUltYWdlUmVjdC5oZWlnaHQo
KSA8PCAiXCIiOwotICAgIC8vIEZJWE1FOiBzaG91bGQgdGhpcyBkdW1wIGFsc28gb2JqZWN0IHJl
dHVybmVkIGJ5IFNWR0ZFSW1hZ2U6OmltYWdlKCkgPwotCi0gICAgdHMgPDwgIl1cbiI7Ci0gICAg
cmV0dXJuIHRzOwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmgKZGVsZXRlZCBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDQ2NTZiYjlkNTJjOGVlOTRjMDY4NDk0MTY4NWY1MmE4M2M2NTk3MzAuLjAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCisrKyAvZGV2L251bGwKQEAgLTEs
MTAwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMp
IDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAw
NSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDEwIERp
cmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMg
ZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkg
aXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICog
TGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55
IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRo
ZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFO
VFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklM
SVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAq
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAq
IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZp
bGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9z
dG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRl
ICJGaWx0ZXJFZmZlY3QuaCIKLSNpbmNsdWRlICJJbWFnZS5oIgotI2luY2x1ZGUgIkltYWdlQnVm
ZmVyLmgiCi0jaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlLmgiCi0jaW5jbHVk
ZSAiU291cmNlSW1hZ2UuaCIKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbWFnZTsK
LWNsYXNzIEltYWdlQnVmZmVyOwotCi1jbGFzcyBGRUltYWdlIGZpbmFsIDogcHVibGljIEZpbHRl
ckVmZmVjdCB7Ci1wdWJsaWM6Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGRUltYWdl
PiBjcmVhdGUoU291cmNlSW1hZ2UmJiwgY29uc3QgRmxvYXRSZWN0JiBzb3VyY2VJbWFnZVJlY3Qs
IGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYpOwotCi0gICAgY29uc3QgU291cmNl
SW1hZ2UmIHNvdXJjZUltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VJbWFnZTsgfQotICAg
IHZvaWQgc2V0SW1hZ2VTb3VyY2UoU291cmNlSW1hZ2UmJiBzb3VyY2VJbWFnZSkgeyBtX3NvdXJj
ZUltYWdlID0gV1RGTW92ZShzb3VyY2VJbWFnZSk7IH0KLQotICAgIEZsb2F0UmVjdCBzb3VyY2VJ
bWFnZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUltYWdlUmVjdDsgfQotICAgIGNvbnN0
IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2VydmVBc3BlY3RSYXRpbygpIGNvbnN0
IHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsgfQotCi0gICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwotICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxGRUltYWdlPj4gZGVjb2RlKERlY29k
ZXImKTsKLQotcHJpdmF0ZToKLSAgICBGRUltYWdlKFNvdXJjZUltYWdlJiYsIGNvbnN0IEZsb2F0
UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUm
KTsKLQotICAgIHVuc2lnbmVkIG51bWJlck9mRWZmZWN0SW5wdXRzKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gMDsgfQotCi0gICAgLy8gRkVJbWFnZSByZXN1bHRzIGFyZSBhbHdheXMgaW4gRGVz
dGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkKLSAgICB2b2lkIHNldE9wZXJhdGluZ0NvbG9yU3Bh
Y2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJikgb3ZlcnJpZGUgeyB9Ci0KLSAgICBGbG9h
dFJlY3QgY2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdl
VmVjdG9yJiBpbnB1dHMsIGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZlU3VicmVnaW9uKSBjb25z
dCBvdmVycmlkZTsKLQotICAgIHN0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBj
cmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBmaW5hbDsKLQotICAgIFdURjo6VGV4dFN0cmVh
bSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRTdHJlYW0mLCBGaWx0ZXJSZXByZXNl
bnRhdGlvbikgY29uc3QgZmluYWw7Ci0KLSAgICBTb3VyY2VJbWFnZSBtX3NvdXJjZUltYWdlOwot
ICAgIEZsb2F0UmVjdCBtX3NvdXJjZUltYWdlUmVjdDsKLSAgICBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOwotfTsKLQotdGVtcGxhdGU8Y2xhc3MgRW5j
b2Rlcj4KLXZvaWQgRkVJbWFnZTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0Ci17Ci0g
ICAgZW5jb2RlciA8PCBtX3NvdXJjZUltYWdlOwotICAgIGVuY29kZXIgPDwgbV9zb3VyY2VJbWFn
ZVJlY3Q7Ci0gICAgZW5jb2RlciA8PCBtX3ByZXNlcnZlQXNwZWN0UmF0aW87Ci19Ci0KLXRlbXBs
YXRlPGNsYXNzIERlY29kZXI+Ci1zdGQ6Om9wdGlvbmFsPFJlZjxGRUltYWdlPj4gRkVJbWFnZTo6
ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCi17Ci0gICAgc3RkOjpvcHRpb25hbDxTb3VyY2VJbWFn
ZT4gc291cmNlSW1hZ2U7Ci0gICAgZGVjb2RlciA+PiBzb3VyY2VJbWFnZTsKLSAgICBpZiAoIXNv
dXJjZUltYWdlKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgc3RkOjpvcHRp
b25hbDxGbG9hdFJlY3Q+IHNvdXJjZUltYWdlUmVjdDsKLSAgICBkZWNvZGVyID4+IHNvdXJjZUlt
YWdlUmVjdDsKLSAgICBpZiAoIXNvdXJjZUltYWdlUmVjdCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKLQotICAgIHN0ZDo6b3B0aW9uYWw8U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVl
PiBwcmVzZXJ2ZUFzcGVjdFJhdGlvOwotICAgIGRlY29kZXIgPj4gcHJlc2VydmVBc3BlY3RSYXRp
bzsKLSAgICBpZiAoIXByZXNlcnZlQXNwZWN0UmF0aW8pCi0gICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Ci0KLSAgICByZXR1cm4gRkVJbWFnZTo6Y3JlYXRlKFdURk1vdmUoKnNvdXJjZUltYWdl
KSwgKnNvdXJjZUltYWdlUmVjdCwgKnByZXNlcnZlQXNwZWN0UmF0aW8pOwotfQotCi19IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCi0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfRklMVEVSX0VGRkVDVChG
RUltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRmlsdGVyUmVm
ZXJlbmNlLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaApp
bmRleCBjZjZjMDNjNjQ4MGU2OGM2ZTRmYmVmY2JhYzdjNzA3NDcxZmQzYzI3Li4yMzEzYWY5Y2Nl
ZDk4MWQyYjU3ZjczYzY5YWQ5YTk2ODc3MTEyNzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaApAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvRkVEcm9wU2hhZG93Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GRUZsb29kLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GRUdhdXNzaWFuQmx1ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRkVJbWFn
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRkVNZXJnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRkVN
b3JwaG9sb2d5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GRU9mZnNldC5oPgpAQCAtNDQsNyArNDUs
NiBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRkVUdXJidWxlbmNlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GaWx0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlckVmZmVjdFZlY3Rvci5oPgotI2lu
Y2x1ZGUgPFdlYkNvcmUvU1ZHRkVJbWFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU1ZHRmlsdGVy
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3VyY2VBbHBoYS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U291cmNlR3JhcGhpYy5oPgo=
</data>
<flag name="review"
          id="475940"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="475943"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449783</attachid>
            <date>2022-01-23 23:05:06 -0800</date>
            <delta_ts>2022-01-24 00:59:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234109-20220123230505.patch</filename>
            <type>text/plain</type>
            <size>72333</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdmZDk3MzFiZTZmYjVl
ZWJiYWZhNDY5ZDAyNjE1YWU0NGNmZTRkOC4uMmY2OTA3MzA0OGE1M2VkMmNmYWNkOWU1ZGMwY2Zk
YTMxNmFjNTMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc2IEBACisyMDIyLTAxLTIzICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
W0ZpbHRlcnNdIE1vdmUgRkVJbWFnZSB0byB0aGUgJ3BsYXRmb3JtJyBkaXJlY3RvcnkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDEwOQorICAgICAg
ICByZGFyOi8vODY2MDg1NzMKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKwor
ICAgICAgICBNb3ZlIEZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXIgdG8gc2VwYXJhdGUgc291cmNlIGFu
ZCBoZWFkZXIgZmlsZXMuIE1ha2UgYWxsCisgICAgICAgIHRoZSBmaWx0ZXIgYXBwbGllciBjb25j
cmV0ZSBjbGFzc2VzIGJlIGZpbmFsIGFuZCBtYWtlIHRoZWlyIG92ZXJyaWRkZW4gCisgICAgICAg
ICdhcHBseSgpJyBtZXRob2QgYmUgcHJpdmF0ZSBhbmQgZmluYWwuCisKKyAgICAgICAgKiBIZWFk
ZXJzLmNtYWtlOgorICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb3Jl
aW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJbWFnZUFwcGxpZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb21wb25lbnRUcmFuc2ZlckNvcmVJbWFnZUFwcGxpZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvU291cmNlR3JhcGhpY0Nv
cmVJbWFnZUFwcGxpZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlz
dHMvRGlzcGxheUxpc3RSZWNvcmRlci5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9GRUltYWdlLmNwcDogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwLgorICAgICAgICAoV2ViQ29yZTo6RkVJbWFnZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZFSW1hZ2U6OkZFSW1hZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6RkVJbWFnZTo6Y2FsY3VsYXRlSW1hZ2VSZWN0IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZFSW1hZ2U6OmNyZWF0ZVNvZnR3YXJlQXBwbGllciBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpGRUltYWdlOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uIGNvbnN0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFSW1hZ2UuaDogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaC4KKyAgICAgICAgKFdl
YkNvcmU6OkZFSW1hZ2U6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGRUltYWdl
OjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUv
RkVCbGVuZFNvZnR3YXJlQXBwbGllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvc29mdHdhcmUvRkVDb2xvck1hdHJpeFNvZnR3YXJlQXBwbGllci5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVDb21wb25lbnRUcmFuc2ZlclNv
ZnR3YXJlQXBwbGllci5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29m
dHdhcmUvRkVDb21wb3NpdGVTb2Z0d2FyZUFwcGxpZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZFQ29udm9sdmVNYXRyaXhTb2Z0d2FyZUFwcGxpZXIu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZFRGlzcGxh
Y2VtZW50TWFwU29mdHdhcmVBcHBsaWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGRURpc3BsYWNl
bWVudE1hcFNvZnR3YXJlQXBwbGllcjo6Ynl0ZU9mZnNldE9mUGl4ZWwpOiBEZWxldGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVEcm9wU2hhZG93U29m
dHdhcmVBcHBsaWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0
d2FyZS9GRUZsb29kU29mdHdhcmVBcHBsaWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9zb2Z0d2FyZS9GRUdhdXNzaWFuQmx1clNvZnR3YXJlQXBwbGllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVJbWFnZVNvZnR3YXJl
QXBwbGllci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6RkVJbWFnZVNvZnR3YXJlQXBw
bGllcjo6YXBwbHkgY29uc3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
c29mdHdhcmUvRkVJbWFnZVNvZnR3YXJlQXBwbGllci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvU291cmNlR3JhcGhpY0NvcmVJbWFnZUFw
cGxpZXIuaC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZF
TGlnaHRpbmdTb2Z0d2FyZUFwcGxpZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmdT
b2Z0d2FyZUFwcGxpZXI6OkFscGhhV2luZG93Ojp0b3BMZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmdTb2Z0d2FyZUFwcGxpZXI6OkFscGhhV2luZG93Ojps
ZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmdTb2Z0d2Fy
ZUFwcGxpZXI6OkFscGhhV2luZG93Ojpib3R0b21MZWZ0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkZFTGlnaHRpbmdTb2Z0d2FyZUFwcGxpZXI6OkFscGhhV2luZG93Ojp0b3Ag
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZ1NvZnR3YXJlQXBw
bGllcjo6QWxwaGFXaW5kb3c6OmNlbnRlciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpGRUxpZ2h0aW5nU29mdHdhcmVBcHBsaWVyOjpBbHBoYVdpbmRvdzo6Ym90dG9tIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmdTb2Z0d2FyZUFwcGxpZXI6
OkFscGhhV2luZG93OjpzZXRUb3ApOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdo
dGluZ1NvZnR3YXJlQXBwbGllcjo6QWxwaGFXaW5kb3c6OnNldENlbnRlcik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nU29mdHdhcmVBcHBsaWVyOjpBbHBoYVdpbmRvdzo6
c2V0Qm90dG9tKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkZFTGlnaHRpbmdTb2Z0d2Fy
ZUFwcGxpZXI6OkFscGhhV2luZG93OjpzZXRUb3BSaWdodCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpGRUxpZ2h0aW5nU29mdHdhcmVBcHBsaWVyOjpBbHBoYVdpbmRvdzo6c2V0UmlnaHQp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RkVMaWdodGluZ1NvZnR3YXJlQXBwbGllcjo6
QWxwaGFXaW5kb3c6OnNldEJvdHRvbVJpZ2h0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkZFTGlnaHRpbmdTb2Z0d2FyZUFwcGxpZXI6OkFscGhhV2luZG93OjpzaGlmdFJvdyk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJDb3JlOjpGRUxpZ2h0aW5nU29mdHdhcmVBcHBsaWVyOjpBbHBoYVdp
bmRvdzo6c2hpZnQpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvc29mdHdhcmUvRkVNZXJnZVNvZnR3YXJlQXBwbGllci5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVNb3JwaG9sb2d5U29mdHdhcmVBcHBsaWVyLmg6
CisgICAgICAgIChXZWJDb3JlOjpGRU1vcnBob2xvZ3lTb2Z0d2FyZUFwcGxpZXI6OnBpeGVsQXJy
YXlJbmRleCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGRU1vcnBob2xvZ3lTb2Z0d2Fy
ZUFwcGxpZXI6Om1ha2VQaXhlbFZhbHVlRnJvbUNvbG9yQ29tcG9uZW50cyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpGRU1vcnBob2xvZ3lTb2Z0d2FyZUFwcGxpZXI6Om1ha2VDb2xvckNv
bXBvbmVudHNmcm9tUGl4ZWxWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRU9mZnNldFNvZnR3YXJlQXBwbGllci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVUaWxlU29mdHdhcmVBcHBs
aWVyLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRVR1
cmJ1bGVuY2VTb2Z0d2FyZUFwcGxpZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZFVHVyYnVsZW5j
ZVNvZnR3YXJlQXBwbGllcjo6UGFpbnRpbmdEYXRhOjpyYW5kb20pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6RkVUdXJidWxlbmNlU29mdHdhcmVBcHBsaWVyOjpzbW9vdGhDdXJ2ZSk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpGRVR1cmJ1bGVuY2VTb2Z0d2FyZUFwcGxpZXI6Omxp
bmVhckludGVycG9sYXRpb24pOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvc29mdHdhcmUvU291cmNlQWxwaGFTb2Z0d2FyZUFwcGxpZXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL1NvdXJjZUdyYXBoaWNTb2Z0d2Fy
ZUFwcGxpZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNlRmls
dGVyUHJpbWl0aXZlLmNwcDoKKyAgICAgICAgKiBzdmcvU1ZHRkVJbWFnZUVsZW1lbnQuY3BwOgor
ICAgICAgICAqIHN2Zy9TVkdGRUltYWdlRWxlbWVudC5oOgorCiAyMDIyLTAxLTIzICBNYXR0IFdv
b2Ryb3cgIDxtYXR0d29vZHJvd0BhcHBsZS5jb20+CiAKICAgICAgICAgUG9zaXRpb246Zml4ZWQg
bGF5ZXJzIHNob3VsZG4ndCBhbGxvY2F0ZSBhIGJhY2tpbmcgYnVmZmVyIGlmIGFsbCBjaGlsZHJl
biBhcmUgb2Zmc2NyZWVuLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA1MGE1MmQ0NmQ4NzRiNmMzMjg4YWY0ZjNiMjQ0
ZWRmYmU5YjExNGJiLi41NzVjZDRhNzM4YmIyODA0MjM4ZjE2NTM2NDM2NGJlM2YwZTU3OTI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTAxLTIzICBTYWlkIEFib3UtSGFsbGF3YSAg
PHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10gW0ZpbHRlcnNdIE1vdmUg
RkVJbWFnZSB0byB0aGUgJ3BsYXRmb3JtJyBkaXJlY3RvcnkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDEwOQorICAgICAgICByZGFyOi8vODY2MDg1
NzMKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIFBsYXRm
b3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaDoKKwogMjAyMi0wMS0yMiAgQmVuIE5oYW0gIDxuaGFt
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgUHVzaFN1YnNjcmlwdGlvbklkZW50aWZpZXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCmluZGV4IGZlNWJiM2Y3ZTJmNTM1NWE4ZTAzOGRiZjM4NjkzNTE1Nzk0MzMx
ZTEuLjY1MTI2M2MyYTFiMDk4NDczNzM4ZDQwYTRmMGY3NzYwM2RiNmZmYjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVy
cy5jbWFrZQpAQCAtMTYwMCw2ICsxNjAwLDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBREVSUwogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEcm9wU2hhZG93LmgK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFRmxvb2QuaAogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvRkVJbWFnZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GRUxpZ2h0aW5n
LmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTWVyZ2UuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRkVNb3JwaG9sb2d5LmgKQEAgLTE5MzQsNyArMTkzNSw2IEBAIHNl
dChXZWJDb3JlX1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKIAogICAgIHN2Zy9ncmFwaGljcy9T
VkdJbWFnZUNhY2hlLmgKIAotICAgIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuaAog
ICAgIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oCiAgICAgc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRmlsdGVyRXhwcmVzc2lvbi5oCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggOWE5Y2VjNGVl
NGFhZDhmNDZlMDhlNDQ5MDQ3Mjk0YzI3NjY1NTM0MC4uMjczMzc1YWJiYjNkNTk5ZjVjYzRiMjdi
YzAzYmZhNDk2OTNhYjgwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQK
KysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTIxMDcsNiArMjEwNyw3IEBAIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVEaXNwbGFjZW1lbnRNYXAuY3BwCiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL0ZFRHJvcFNoYWRvdy5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRkVGbG9vZC5jcHAKIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVHYXVzc2lhbkJsdXIu
Y3BwCitwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFSW1hZ2UuY3BwCiBwbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL0ZFTGlnaHRpbmcuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZF
TWVyZ2UuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFTW9ycGhvbG9neS5jcHAKQEAg
LTIxMzMsNiArMjEzNCw3IEBAIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVE
aXNwbGFjZW1lbnRNYXBTb2Z0d2FyZUFwcGxpZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL3NvZnR3YXJlL0ZFRHJvcFNoYWRvd1NvZnR3YXJlQXBwbGllci5jcHAKIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVGbG9vZFNvZnR3YXJlQXBwbGllci5jcHAKIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVHYXVzc2lhbkJsdXJTb2Z0d2FyZUFwcGxp
ZXIuY3BwCitwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZFSW1hZ2VTb2Z0d2Fy
ZUFwcGxpZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZFTGlnaHRp
bmdTb2Z0d2FyZUFwcGxpZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJl
L0ZFTWVyZ2VTb2Z0d2FyZUFwcGxpZXIuY3BwCiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3Nv
ZnR3YXJlL0ZFTW9ycGhvbG9neVNvZnR3YXJlQXBwbGllci5jcHAKQEAgLTI3MTcsNyArMjcxOSw2
IEBAIHN2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCiBzdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2UuY3BwCiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VDYWNoZS5jcHAKIHN2Zy9ncmFwaGljcy9TVkdJ
bWFnZUZvckNvbnRhaW5lci5jcHAKLXN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3Bw
CiBzdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwCiBzdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGaWx0ZXJCdWlsZGVyLmNwcAogc3ZnL3Byb3BlcnRpZXMvU1ZHQW5pbWF0ZWRQcm9wZXJ0
eS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA5Y2E5NDMyZmU5OWYxNjQ2ZmQ2NDA3Y2Q0ZWVlZDgxNGEwZmQyNzk3Li4yYWEx
ODk3ZmQyMWE2NTM0NWYzZTdhMDFjNTQ1NDhhN2UyN2JlZWRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMzIzLDYgKzIzMjMs
NyBAQAogCQk3MjRFRDMzMjFBM0E4QjIzMDBGNUYxM0MgLyogSlNFWFRCbGVuZE1pbk1heC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUQzMzAxQTNB
OEIyMzAwRjVGMTNDIC8qIEpTRVhUQmxlbmRNaW5NYXguaCAqLzsgfTsKIAkJNzI0RUU1NTAxREM4
MEQ3RjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNEVFNTRFMURDN0YyNUIwMEE5MUZGQiAvKiBBY3Rpdml0
eVN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJNzI0RUU1NTExREM4MEQ4NDAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI0RUU1
NEYxREM3RjI1QjAwQTkxRkZCIC8qIEFjdGl2aXR5U3RhdGVDaGFuZ2VPYnNlcnZlci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTcyNTYwNzhFMjc5
RDM0QjYwMDdEMkREMyAvKiBGRUltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA3MkY3RTc0RjI3OUNFREU4MDBEODJEMkQgLyogRkVJbWFnZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyNkNERTIw
Mjc1OTczNTAwMEE0NDVCMiAvKiBGaWx0ZXJFZmZlY3RHZW9tZXRyeS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5NjYxQTIyNzU5NjBBNTAwRTdERjlC
IC8qIEZpbHRlckVmZmVjdEdlb21ldHJ5LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI2RDU2RTIyNTNBRTI4RDAwMDJFRjkwIC8qIFBsYXRmb3Jt
SW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcy
NkQ1NkUxMjUzQUUwNDMwMDAyRUY5MCAvKiBQbGF0Zm9ybUltYWdlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNzI2RDU2RTMyNTNBRTM2NjAwMDJF
RjkwIC8qIE5hdGl2ZUltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1NUEzMzZGNjFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMzg5NSw3ICsz
ODk2LDYgQEAKIAkJQjIyMkY2OUQwQUI3NzFCODAwMjJFRkFEIC8qIEpTU1ZHRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQjIyMkY2OUIwQUI3
NzFCODAwMjJFRkFEIC8qIEpTU1ZHRWxlbWVudC5oICovOyB9OwogCQlCMjIzNjIyOTBDM0FGMDRB
MDAwOENBOUIgLyogSlNTVkdUZXh0UGF0aEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyMjM2MjI3MEMzQUYwNEEwMDA4Q0E5QiAvKiBKU1NW
R1RleHRQYXRoRWxlbWVudC5oICovOyB9OwogCQlCMjM1NDBGMzBEMDA3ODJFMDAyMzgyRkEgLyog
U3RyaW5nVHJ1bmNhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCMjM1NDBGMTBEMDA3ODJFMDAyMzgyRkEgLyogU3RyaW5nVHJ1bmNhdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQjI1NTk5ODUw
RDAwRDhCQTAwQkI4MjVDIC8qIFNWR0ZFSW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIyNTU5OEVCMEQwMEQ4QjkwMEJCODI1QyAvKiBTVkdGRUlt
YWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QjI1NTk5QTQwRDAwRDhCQTAwQkI4MjVDIC8qIFNWR0ltYWdlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OTkwQzBEMDBEOEI5MDBCQjgyNUMgLyog
U1ZHSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCMjU1OTlBNTBEMDBEOEJBMDBCQjgyNUMgLyogRW1wdHlDbGllbnRzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCMjU1OTkwRDBEMDBEOEI5MDBC
QjgyNUMgLyogRW1wdHlDbGllbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQjI3NTM1NjUwQjA1MzgxNDAwMkNFNjRGIC8qIFBERkRvY3VtZW50
SW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEIy
NzUzNTM3MEIwNTM4MTQwMDJDRTY0RiAvKiBQREZEb2N1bWVudEltYWdlLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTExMzU0LDYgKzExMzU0LDEw
IEBACiAJCTcyRjY2N0RGMjYwQzI2NDQwMEVFMzZBRCAvKiBEaWFnbm9zdGljTG9nZ2luZ0RvbWFp
bi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBEaWFnbm9zdGljTG9nZ2luZ0RvbWFpbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk3MkY3RTc0MjI3OUI4Rjc0MDBEODJEMkQgLyogU291cmNlSW1h
Z2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU291cmNlSW1hZ2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkY3RTc0NDI3OUI4Rjc0MDBEODJE
MkQgLyogU291cmNlSW1hZ2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291
cmNlSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNzJGN0U3NEUyNzlDRURF
ODAwRDgyRDJEIC8qIEZFSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRkVJbWFnZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyRjdFNzRGMjc5Q0VERTgwMEQ4MkQyRCAv
KiBGRUltYWdlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZFSW1hZ2UuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNzJGN0U3NTEyNzlDRUU1QzAwRDgyRDJEIC8qIEZFSW1hZ2VTb2Z0d2FyZUFw
cGxpZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRkVJbWFnZVNvZnR3YXJlQXBwbGllci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyRjdFNzUyMjc5Q0VFNUMwMEQ4MkQyRCAv
KiBGRUltYWdlU29mdHdhcmVBcHBsaWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZFSW1hZ2VTb2Z0d2Fy
ZUFwcGxpZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzJGQjIzODQyMjQ5N0FE
NDAwN0U1QUM3IC8qIFNWR1ZhbHVlUHJvcGVydHlBbmltYXRvckltcGwuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHVmFsdWVQcm9wZXJ0eUFuaW1hdG9ySW1wbC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MkZCMjM4NjIyNDk3QUQ1MDA3RTVBQzcgLyogU1ZH
VmFsdWVQcm9wZXJ0eUFuaW1hdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFNWR1ZhbHVlUHJvcGVydHlBbmltYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3MkZCMjM4NzIyNDk3QjE1MDA3RTVBQzcgLyogU1ZHVmFsdWVQcm9wZXJ0eUxpc3RBbmltYXRv
ckltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHVmFsdWVQcm9wZXJ0
eUxpc3RBbmltYXRvckltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE0NzY3
LDggKzE0NzcxLDYgQEAKIAkJQjIyMzYyMjcwQzNBRjA0QTAwMDhDQTlCIC8qIEpTU1ZHVGV4dFBh
dGhFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1NWR1RleHRQ
YXRoRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjM1NDBGMDBEMDA3
ODJFMDAyMzgyRkEgLyogU3RyaW5nVHJ1bmNhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBTdHJpbmdUcnVuY2F0b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCMjM1NDBGMTBEMDA3ODJFMDAyMzgyRkEgLyogU3RyaW5nVHJ1bmNhdG9yLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdUcnVuY2F0b3IuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQjI1NTk4RUEwRDAwRDhCOTAwQkI4MjVDIC8qIFNW
R0ZFSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0ZF
SW1hZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCMjU1OThFQjBEMDBEOEI5
MDBCQjgyNUMgLyogU1ZHRkVJbWFnZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gU1ZHRkVJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCMjU1OTkwQjBE
MDBEOEI5MDBCQjgyNUMgLyogU1ZHSW1hZ2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNWR0ltYWdlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QjI1NTk5MEMwRDAwRDhCOTAwQkI4MjVDIC8qIFNWR0ltYWdlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdJbWFnZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCMjU1OTkwRDBEMDBEOEI5MDBCQjgyNUMgLyogRW1wdHlDbGllbnRzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBFbXB0eUNsaWVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTI0NzE1LDYgKzI0NzE3LDggQEAKIAkJCQk3MkExM0FDNTI3NERFMzlFMDBF
MkE4OEUgLyogRkVGbG9vZFNvZnR3YXJlQXBwbGllci5oICovLAogCQkJCTcyQTEzQUM2Mjc0REUz
QjcwMEUyQTg4RSAvKiBGRUdhdXNzaWFuQmx1clNvZnR3YXJlQXBwbGllci5jcHAgKi8sCiAJCQkJ
NzJBMTNBQzcyNzRERTNCNzAwRTJBODhFIC8qIEZFR2F1c3NpYW5CbHVyU29mdHdhcmVBcHBsaWVy
LmggKi8sCisJCQkJNzJGN0U3NTEyNzlDRUU1QzAwRDgyRDJEIC8qIEZFSW1hZ2VTb2Z0d2FyZUFw
cGxpZXIuY3BwICovLAorCQkJCTcyRjdFNzUyMjc5Q0VFNUMwMEQ4MkQyRCAvKiBGRUltYWdlU29m
dHdhcmVBcHBsaWVyLmggKi8sCiAJCQkJNzJBMTNBQzgyNzRERTNEMTAwRTJBODhFIC8qIEZFTGln
aHRpbmdTb2Z0d2FyZUFwcGxpZXIuY3BwICovLAogCQkJCTcyQTEzQUM5Mjc0REUzRDEwMEUyQTg4
RSAvKiBGRUxpZ2h0aW5nU29mdHdhcmVBcHBsaWVyLmggKi8sCiAJCQkJNzJBMTNBQ0EyNzRERTNF
NTAwRTJBODhFIC8qIEZFTWVyZ2VTb2Z0d2FyZUFwcGxpZXIuY3BwICovLApAQCAtMjY4MjUsNiAr
MjY4MjksOCBAQAogCQkJCTg0NzMwRDYyMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZsb29kLmggKi8s
CiAJCQkJODQ4MDE5NTIxMDhCQUZCMzAwQ0IyQjFGIC8qIEZFR2F1c3NpYW5CbHVyLmNwcCAqLywK
IAkJCQk4NDgwMTk1MzEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lhbkJsdXIuaCAqLywKKwkJ
CQk3MkY3RTc0RTI3OUNFREU4MDBEODJEMkQgLyogRkVJbWFnZS5jcHAgKi8sCisJCQkJNzJGN0U3
NEYyNzlDRURFODAwRDgyRDJEIC8qIEZFSW1hZ2UuaCAqLywKIAkJCQk4NDczMEQ2MzEyNDhGMEIz
MDBEM0E5QzkgLyogRkVMaWdodGluZy5jcHAgKi8sCiAJCQkJODQ3MzBENjQxMjQ4RjBCMzAwRDNB
OUM5IC8qIEZFTGlnaHRpbmcuaCAqLywKIAkJCQk4NDczMEQ2NTEyNDhGMEIzMDBEM0E5QzkgLyog
RkVNZXJnZS5jcHAgKi8sCkBAIC0yODYyNCw4ICsyODYzMCw2IEBACiAJCUIyNTU5ODlDMEQwMEQ4
QjgwMEJCODI1QyAvKiBmaWx0ZXJzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGls
ZHJlbiA9ICgKLQkJCQlCMjU1OThFQTBEMDBEOEI5MDBCQjgyNUMgLyogU1ZHRkVJbWFnZS5jcHAg
Ki8sCi0JCQkJQjI1NTk4RUIwRDAwRDhCOTAwQkI4MjVDIC8qIFNWR0ZFSW1hZ2UuaCAqLywKIAkJ
CQk4NDVFNzJGOTBGRDI2MjM5MDBBODdENzkgLyogU1ZHRmlsdGVyLmNwcCAqLywKIAkJCQk4NDVF
NzJGQTBGRDI2MjM5MDBBODdENzkgLyogU1ZHRmlsdGVyLmggKi8sCiAJCQkJMDgxRUJGMzgwRkQz
NEY0MTAwREE3NTU5IC8qIFNWR0ZpbHRlckJ1aWxkZXIuY3BwICovLApAQCAtMzQzNzksNiArMzQz
ODMsNyBAQAogCQkJCTQzNThFODgxMTM2MEEzMTcwMEU0NzQ4QyAvKiBGRURyb3BTaGFkb3cuaCBp
biBIZWFkZXJzICovLAogCQkJCTg0NzMwRDdGMTI0OEYwQjMwMEQzQTlDOSAvKiBGRUZsb29kLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4NDgwMTk1NTEwOEJBRkIzMDBDQjJCMUYgLyogRkVHYXVzc2lh
bkJsdXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTcyNTYwNzhFMjc5RDM0QjYwMDdEMkREMyAvKiBG
RUltYWdlLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NDczMEQ4MTEyNDhGMEIzMDBEM0E5QzkgLyog
RkVMaWdodGluZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODQ3MzBEODMxMjQ4RjBCMzAwRDNBOUM5
IC8qIEZFTWVyZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0NzMwRDg1MTI0OEYwQjMwMEQzQTlD
OSAvKiBGRU1vcnBob2xvZ3kuaCBpbiBIZWFkZXJzICovLApAQCAtMzczOTUsNyArMzc0MDAsNiBA
QAogCQkJCUIyMjI3OUU2MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRUZ1bmNHRWxlbWVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5RTkwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZFRnVuY1JF
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMjIyNzlFQzBEMDBCRjIyMDA3MUI3ODIgLyog
U1ZHRkVHYXVzc2lhbkJsdXJFbGVtZW50LmggaW4gSGVhZGVycyAqLywKLQkJCQlCMjU1OTk4NTBE
MDBEOEJBMDBCQjgyNUMgLyogU1ZHRkVJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjIyMjc5
RUYwRDAwQkYyMjAwNzFCNzgyIC8qIFNWR0ZFSW1hZ2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMjIyNzlGMjBEMDBCRjIyMDA3MUI3ODIgLyogU1ZHRkVMaWdodEVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyMjI3OUY0MEQwMEJGMjIwMDcxQjc4MiAvKiBTVkdGRU1lcmdlRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb3JlaW1hZ2UvRkVDb2xvck1hdHJpeENvcmVJbWFnZUFwcGxpZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbG9yTWF0cml4Q29y
ZUltYWdlQXBwbGllci5oCmluZGV4IGFlNDU1N2RmMDgzMzg4ODQwZTliMWZkOTZkNDljMzA1MmZh
OTFiZTAuLjhjNGI2MzdkYzQ1YmVmMTg4YjgzYmIzMWE5ZDBjYjlkNmFhNGFkZWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbG9yTWF0
cml4Q29yZUltYWdlQXBwbGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvcmVpbWFnZS9GRUNvbG9yTWF0cml4Q29yZUltYWdlQXBwbGllci5oCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIyIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyAr
MzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZFQ29sb3JNYXRyaXg7CiAKLWNs
YXNzIEZFQ29sb3JNYXRyaXhDb3JlSW1hZ2VBcHBsaWVyIDogcHVibGljIEZpbHRlckVmZmVjdENv
bmNyZXRlQXBwbGllcjxGRUNvbG9yTWF0cml4PiB7CitjbGFzcyBGRUNvbG9yTWF0cml4Q29yZUlt
YWdlQXBwbGllciBmaW5hbCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8RkVD
b2xvck1hdHJpeD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHVzaW5nIEJh
c2UgPSBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8RkVDb2xvck1hdHJpeD47CiAKQEAgLTQy
LDcgKzQyLDggQEAgcHVibGljOgogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNDb3JlSW1hZ2VS
ZW5kZXJpbmcoY29uc3QgRkVDb2xvck1hdHJpeCYpOwogCi0gICAgYm9vbCBhcHBseShjb25zdCBG
aWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVz
dWx0KSBjb25zdCBvdmVycmlkZTsKK3ByaXZhdGU6CisgICAgYm9vbCBhcHBseShjb25zdCBGaWx0
ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0
KSBjb25zdCBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmVpbWFnZS9GRUNvbXBvbmVudFRy
YW5zZmVyQ29yZUltYWdlQXBwbGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29yZWltYWdlL0ZFQ29tcG9uZW50VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyLmgKaW5kZXgg
MDIyYmZkNGUxZGRjZmM5OGVlMjRkNjA5NDRkZTU3OTAzZWY0OWJjNS4uZWFiODU3ZTFjOWU4MWY4
MDRhMDc4N2QwNzdjMzcwN2M1ZGMxMjQ5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZFQ29tcG9uZW50VHJhbnNmZXJDb3JlSW1hZ2VBcHBs
aWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZWltYWdlL0ZF
Q29tcG9uZW50VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVDb21wb25lbnRUcmFuc2ZlcjsKIAotY2xhc3Mg
RkVDb21wb25lbnRUcmFuc2ZlckNvcmVJbWFnZUFwcGxpZXIgOiBwdWJsaWMgRmlsdGVyRWZmZWN0
Q29uY3JldGVBcHBsaWVyPEZFQ29tcG9uZW50VHJhbnNmZXI+IHsKK2NsYXNzIEZFQ29tcG9uZW50
VHJhbnNmZXJDb3JlSW1hZ2VBcHBsaWVyIGZpbmFsIDogcHVibGljIEZpbHRlckVmZmVjdENvbmNy
ZXRlQXBwbGllcjxGRUNvbXBvbmVudFRyYW5zZmVyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAgICAgdXNpbmcgQmFzZSA9IEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRUNv
bXBvbmVudFRyYW5zZmVyPjsKIApAQCAtNDIsNyArNDIsOCBAQCBwdWJsaWM6CiAKICAgICBzdGF0
aWMgYm9vbCBzdXBwb3J0c0NvcmVJbWFnZVJlbmRlcmluZyhjb25zdCBGRUNvbXBvbmVudFRyYW5z
ZmVyJik7CiAKLSAgICBib29sIGFwcGx5KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdl
VmVjdG9yJiBpbnB1dHMsIEZpbHRlckltYWdlJiByZXN1bHQpIGNvbnN0IG92ZXJyaWRlOworcHJp
dmF0ZToKKyAgICBib29sIGFwcGx5KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVj
dG9yJiBpbnB1dHMsIEZpbHRlckltYWdlJiByZXN1bHQpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29yZWltYWdlL1NvdXJjZUdyYXBoaWNDb3JlSW1hZ2VBcHBsaWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvU291cmNlR3JhcGhpY0NvcmVJ
bWFnZUFwcGxpZXIuaAppbmRleCA2YzJkYjI1YjU0ZjU1OGFlN2IzNjczMmQ2NzE3MmFlMjhjOGRi
ZjNiLi5hNTA0ZWE1M2I5NTYxZmE3Njc1MDUyNjliODlmNjM3YWZhZDk5YWQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb3JlaW1hZ2UvU291cmNlR3JhcGhp
Y0NvcmVJbWFnZUFwcGxpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb3JlaW1hZ2UvU291cmNlR3JhcGhpY0NvcmVJbWFnZUFwcGxpZXIuaApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDE0ICsz
MywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNvdXJjZUdyYXBoaWM7CiAKLWNs
YXNzIFNvdXJjZUdyYXBoaWNDb3JlSW1hZ2VBcHBsaWVyIDogcHVibGljIEZpbHRlckVmZmVjdENv
bmNyZXRlQXBwbGllcjxTb3VyY2VHcmFwaGljPiB7CitjbGFzcyBTb3VyY2VHcmFwaGljQ29yZUlt
YWdlQXBwbGllciBmaW5hbCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8U291
cmNlR3JhcGhpYz4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHVzaW5nIEJh
c2UgPSBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8U291cmNlR3JhcGhpYz47CiAKIHB1Ymxp
YzoKICAgICB1c2luZyBCYXNlOjpCYXNlOwogCi0gICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXIm
LCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBj
b25zdCBvdmVycmlkZTsKK3ByaXZhdGU6CisgICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBj
b25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25z
dCBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9EaXNwbGF5TGlzdFJlY29y
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Rpc3BsYXlsaXN0cy9E
aXNwbGF5TGlzdFJlY29yZGVyLmNwcAppbmRleCBmNTA4OGQ2OTczMGUyOWY3MGRiODc0YzBjYjZh
ODhlMmEyODMyZDgxLi44OWYzZDM1M2RhN2JiNDE3MTE4ZmY3MTg4Y2VkYzA3YzA4YmNjODQ3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9kaXNwbGF5bGlzdHMv
RGlzcGxheUxpc3RSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZGlzcGxheWxpc3RzL0Rpc3BsYXlMaXN0UmVjb3JkZXIuY3BwCkBAIC0yOSwxMyArMjks
MTMgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdC5oIgogI2luY2x1ZGUgIkRpc3BsYXlMaXN0RHJh
d2luZ0NvbnRleHQuaCIKICNpbmNsdWRlICJEaXNwbGF5TGlzdEl0ZW1zLmgiCisjaW5jbHVkZSAi
RkVJbWFnZS5oIgogI2luY2x1ZGUgIkZpbHRlci5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4
dC5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNs
dWRlICJTVkdGRUltYWdlLmgiCiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRkVJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFSW1hZ2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2NDQ2NzM4MzEw
YWZjNzk4YTM5ODNmM2FiOTA4NDlkM2NhMmEwMDQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFSW1hZ2UuY3BwCkBAIC0wLDAgKzEs
NzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xh
cyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQs
IDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAqIENvcHlyaWdodCAoQykgMjAwNSBFcmlj
IFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEwIERpcmsgU2No
dWx6ZSA8a3JpdEB3ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkZFSW1hZ2UuaCIKKworI2luY2x1ZGUgIkZFSW1hZ2VTb2Z0d2FyZUFwcGxpZXIuaCIKKyNpbmNs
dWRlICJGaWx0ZXIuaCIKKyNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworUmVmPEZFSW1hZ2U+IEZFSW1hZ2U6OmNyZWF0ZShTb3VyY2VJbWFn
ZSYmIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdlUmVjdCwgY29uc3Qg
U1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBwcmVzZXJ2ZUFzcGVjdFJhdGlvKQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEZFSW1hZ2UoV1RGTW92ZShzb3VyY2VJbWFnZSksIHNvdXJj
ZUltYWdlUmVjdCwgcHJlc2VydmVBc3BlY3RSYXRpbykpOworfQorCitGRUltYWdlOjpGRUltYWdl
KFNvdXJjZUltYWdlJiYgc291cmNlSW1hZ2UsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VS
ZWN0LCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0
aW8pCisgICAgOiBGaWx0ZXJFZmZlY3QoVHlwZTo6RkVJbWFnZSkKKyAgICAsIG1fc291cmNlSW1h
Z2UoV1RGTW92ZShzb3VyY2VJbWFnZSkpCisgICAgLCBtX3NvdXJjZUltYWdlUmVjdChzb3VyY2VJ
bWFnZVJlY3QpCisgICAgLCBtX3ByZXNlcnZlQXNwZWN0UmF0aW8ocHJlc2VydmVBc3BlY3RSYXRp
bykKK3sKK30KKworRmxvYXRSZWN0IEZFSW1hZ2U6OmNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBG
aWx0ZXImIGZpbHRlciwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImLCBjb25zdCBGbG9hdFJlY3Qm
IHByaW1pdGl2ZVN1YnJlZ2lvbikgY29uc3QKK3sKKyAgICBpZiAobV9zb3VyY2VJbWFnZS5uYXRp
dmVJbWFnZUlmRXhpc3RzKCkpIHsKKyAgICAgICAgYXV0byBpbWFnZVJlY3QgPSBwcmltaXRpdmVT
dWJyZWdpb247CisgICAgICAgIGF1dG8gc3JjUmVjdCA9IG1fc291cmNlSW1hZ2VSZWN0OworICAg
ICAgICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8udHJhbnNmb3JtUmVjdChpbWFnZVJlY3QsIHNyY1Jl
Y3QpOworICAgICAgICByZXR1cm4gZmlsdGVyLmNsaXBUb01heEVmZmVjdFJlY3QoaW1hZ2VSZWN0
LCBwcmltaXRpdmVTdWJyZWdpb24pOworICAgIH0KKworICAgIGlmIChtX3NvdXJjZUltYWdlLmlt
YWdlQnVmZmVySWZFeGlzdHMoKSkKKyAgICAgICAgcmV0dXJuIGZpbHRlci5tYXhFZmZlY3RSZWN0
KHByaW1pdGl2ZVN1YnJlZ2lvbik7CisKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBy
ZXR1cm4gRmxvYXRSZWN0KCk7Cit9CisKK3N0ZDo6dW5pcXVlX3B0cjxGaWx0ZXJFZmZlY3RBcHBs
aWVyPiBGRUltYWdlOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdAoreworICAgIHJldHVy
biBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVJbWFnZVNvZnR3YXJlQXBwbGllcj4oKnRo
aXMpOworfQorCitUZXh0U3RyZWFtJiBGRUltYWdlOjpleHRlcm5hbFJlcHJlc2VudGF0aW9uKFRl
eHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiByZXByZXNlbnRhdGlvbikgY29uc3QK
K3sKKyAgICB0cyA8PCBpbmRlbnQgPDwgIltmZUltYWdlIjsKKyAgICBGaWx0ZXJFZmZlY3Q6OmV4
dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9uKTsKKworICAgIHRzIDw8ICIg
aW1hZ2Utc2l6ZT1cIiIgPDwgbV9zb3VyY2VJbWFnZVJlY3Qud2lkdGgoKSA8PCAieCIgPDwgbV9z
b3VyY2VJbWFnZVJlY3QuaGVpZ2h0KCkgPDwgIlwiIjsKKyAgICAvLyBGSVhNRTogc2hvdWxkIHRo
aXMgZHVtcCBhbHNvIG9iamVjdCByZXR1cm5lZCBieSBGRUltYWdlOjppbWFnZSgpID8KKworICAg
IHRzIDw8ICJdXG4iOworICAgIHJldHVybiB0czsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
RUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFSW1h
Z2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40NjU2YmI5ZDUyYzhlZTk0YzA2ODQ5NDE2ODVmNTJhODNjNjU5NzMw
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9GRUltYWdlLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5v
cmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4K
KyAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgorICog
Q29weXJpZ2h0IChDKSAyMDEwIERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgorICogQ29w
eXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJGaWx0ZXJFZmZlY3QuaCIKKyNpbmNsdWRlICJJbWFnZS5o
IgorI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAiU1ZHUHJlc2VydmVBc3BlY3RS
YXRpb1ZhbHVlLmgiCisjaW5jbHVkZSAiU291cmNlSW1hZ2UuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBJbWFnZTsKK2NsYXNzIEltYWdlQnVmZmVyOworCitjbGFzcyBGRUltYWdl
IGZpbmFsIDogcHVibGljIEZpbHRlckVmZmVjdCB7CitwdWJsaWM6CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIFJlZjxGRUltYWdlPiBjcmVhdGUoU291cmNlSW1hZ2UmJiwgY29uc3QgRmxvYXRS
ZWN0JiBzb3VyY2VJbWFnZVJlY3QsIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYp
OworCisgICAgY29uc3QgU291cmNlSW1hZ2UmIHNvdXJjZUltYWdlKCkgY29uc3QgeyByZXR1cm4g
bV9zb3VyY2VJbWFnZTsgfQorICAgIHZvaWQgc2V0SW1hZ2VTb3VyY2UoU291cmNlSW1hZ2UmJiBz
b3VyY2VJbWFnZSkgeyBtX3NvdXJjZUltYWdlID0gV1RGTW92ZShzb3VyY2VJbWFnZSk7IH0KKwor
ICAgIEZsb2F0UmVjdCBzb3VyY2VJbWFnZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZUlt
YWdlUmVjdDsgfQorICAgIGNvbnN0IFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZSYgcHJlc2Vy
dmVBc3BlY3RSYXRpbygpIGNvbnN0IHsgcmV0dXJuIG1fcHJlc2VydmVBc3BlY3RSYXRpbzsgfQor
CisgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OworICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFJlZjxG
RUltYWdlPj4gZGVjb2RlKERlY29kZXImKTsKKworcHJpdmF0ZToKKyAgICBGRUltYWdlKFNvdXJj
ZUltYWdlJiYsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBjb25zdCBTVkdQcmVz
ZXJ2ZUFzcGVjdFJhdGlvVmFsdWUmKTsKKworICAgIHVuc2lnbmVkIG51bWJlck9mRWZmZWN0SW5w
dXRzKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gMDsgfQorCisgICAgLy8gRkVJbWFnZSByZXN1
bHRzIGFyZSBhbHdheXMgaW4gRGVzdGluYXRpb25Db2xvclNwYWNlOjpTUkdCKCkKKyAgICB2b2lk
IHNldE9wZXJhdGluZ0NvbG9yU3BhY2UoY29uc3QgRGVzdGluYXRpb25Db2xvclNwYWNlJikgb3Zl
cnJpZGUgeyB9CisKKyAgICBGbG9hdFJlY3QgY2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRl
ciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIGNvbnN0IEZsb2F0UmVjdCYgcHJp
bWl0aXZlU3VicmVnaW9uKSBjb25zdCBvdmVycmlkZTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxG
aWx0ZXJFZmZlY3RBcHBsaWVyPiBjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBjb25zdCBmaW5hbDsK
KworICAgIFdURjo6VGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRhdGlvbihXVEY6OlRleHRT
dHJlYW0mLCBGaWx0ZXJSZXByZXNlbnRhdGlvbikgY29uc3QgZmluYWw7CisKKyAgICBTb3VyY2VJ
bWFnZSBtX3NvdXJjZUltYWdlOworICAgIEZsb2F0UmVjdCBtX3NvdXJjZUltYWdlUmVjdDsKKyAg
ICBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvVmFsdWUgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOworfTsK
KwordGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRkVJbWFnZTo6ZW5jb2RlKEVuY29kZXIm
IGVuY29kZXIpIGNvbnN0Cit7CisgICAgZW5jb2RlciA8PCBtX3NvdXJjZUltYWdlOworICAgIGVu
Y29kZXIgPDwgbV9zb3VyY2VJbWFnZVJlY3Q7CisgICAgZW5jb2RlciA8PCBtX3ByZXNlcnZlQXNw
ZWN0UmF0aW87Cit9CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPFJl
ZjxGRUltYWdlPj4gRkVJbWFnZTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3Rk
OjpvcHRpb25hbDxTb3VyY2VJbWFnZT4gc291cmNlSW1hZ2U7CisgICAgZGVjb2RlciA+PiBzb3Vy
Y2VJbWFnZTsKKyAgICBpZiAoIXNvdXJjZUltYWdlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+IHNvdXJjZUltYWdlUmVjdDsKKyAg
ICBkZWNvZGVyID4+IHNvdXJjZUltYWdlUmVjdDsKKyAgICBpZiAoIXNvdXJjZUltYWdlUmVjdCkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIHN0ZDo6b3B0aW9uYWw8U1ZHUHJl
c2VydmVBc3BlY3RSYXRpb1ZhbHVlPiBwcmVzZXJ2ZUFzcGVjdFJhdGlvOworICAgIGRlY29kZXIg
Pj4gcHJlc2VydmVBc3BlY3RSYXRpbzsKKyAgICBpZiAoIXByZXNlcnZlQXNwZWN0UmF0aW8pCisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRkVJbWFnZTo6Y3JlYXRl
KFdURk1vdmUoKnNvdXJjZUltYWdlKSwgKnNvdXJjZUltYWdlUmVjdCwgKnByZXNlcnZlQXNwZWN0
UmF0aW8pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK1NQRUNJQUxJWkVfVFlQRV9U
UkFJVFNfRklMVEVSX0VGRkVDVChGRUltYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUJsZW5kU29mdHdhcmVBcHBsaWVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZF
QmxlbmRTb2Z0d2FyZUFwcGxpZXIuaAppbmRleCBmNDQwZDgxZTRjZjVkZjY3MmE1YTM3NDBjNTRm
ZWE5NWIyOTc0MDcyLi40ZGJlYmI1N2YzMjkyZGI2YWU4MTNlYmFhNzU2YjRiYjk5ZmNmYWYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3
YXJlL0ZFQmxlbmRTb2Z0d2FyZUFwcGxpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZFQmxlbmRTb2Z0d2FyZUFwcGxpZXIuaApAQCAt
Myw3ICszLDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSBSb2IgQnVpcyA8YnVpc0Br
ZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2VpZGVsIDxlcmljQHdlYmtpdC5v
cmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI5LDE0ICsyOSwx
NSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZFQmxlbmQ7CiAKLWNsYXNzIEZFQmxl
bmRTb2Z0d2FyZUFwcGxpZXIgOiBwdWJsaWMgRmlsdGVyRWZmZWN0Q29uY3JldGVBcHBsaWVyPEZF
QmxlbmQ+IHsKK2NsYXNzIEZFQmxlbmRTb2Z0d2FyZUFwcGxpZXIgZmluYWwgOiBwdWJsaWMgRmls
dGVyRWZmZWN0Q29uY3JldGVBcHBsaWVyPEZFQmxlbmQ+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKICAgICB1c2luZyBCYXNlID0gRmlsdGVyRWZmZWN0Q29uY3JldGVBcHBsaWVyPEZF
QmxlbmQ+OwogCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZTo6QmFzZTsKIAotICAgIGJvb2wgYXBw
bHkoY29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cywgRmlsdGVy
SW1hZ2UmIHJlc3VsdCkgY29uc3Qgb3ZlcnJpZGU7Citwcml2YXRlOgorICAgIGJvb2wgYXBwbHko
Y29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cywgRmlsdGVySW1h
Z2UmIHJlc3VsdCkgY29uc3QgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3
YXJlL0ZFQ29sb3JNYXRyaXhTb2Z0d2FyZUFwcGxpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVDb2xvck1hdHJpeFNvZnR3YXJlQXBwbGll
ci5oCmluZGV4IGQzMjEzNWM3OTg2MDgyYzlhYzI5Yjk3YTU4MjM2NGViY2U2YjIyM2IuLmU5ZWE3
MjQ0MDk1NTNiOWQzZWMwZTYyMWNjMTk1OTllMmYyOWVkOTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVDb2xvck1hdHJpeFNv
ZnR3YXJlQXBwbGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvc29mdHdhcmUvRkVDb2xvck1hdHJpeFNvZnR3YXJlQXBwbGllci5oCkBAIC0yLDcgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlk
ZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjksMTYgKzI5
LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZFQ29sb3JNYXRyaXg7CiBjbGFzcyBQ
aXhlbEJ1ZmZlcjsKIAotY2xhc3MgRkVDb2xvck1hdHJpeFNvZnR3YXJlQXBwbGllciA6IHB1Ymxp
YyBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8RkVDb2xvck1hdHJpeD4geworY2xhc3MgRkVD
b2xvck1hdHJpeFNvZnR3YXJlQXBwbGllciBmaW5hbCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3RDb25j
cmV0ZUFwcGxpZXI8RkVDb2xvck1hdHJpeD4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIHVzaW5nIEJhc2UgPSBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8RkVDb2xvck1h
dHJpeD47CiAKIHB1YmxpYzoKICAgICBGRUNvbG9yTWF0cml4U29mdHdhcmVBcHBsaWVyKGNvbnN0
IEZFQ29sb3JNYXRyaXgmKTsKIAotICAgIGJvb2wgYXBwbHkoY29uc3QgRmlsdGVyJiwgY29uc3Qg
RmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cywgRmlsdGVySW1hZ2UmIHJlc3VsdCkgY29uc3Qgb3Zl
cnJpZGU7Ci0KIHByaXZhdGU6CisgICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBG
aWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBmaW5h
bDsKKwogICAgIGlubGluZSB2b2lkIG1hdHJpeChmbG9hdCYgcmVkLCBmbG9hdCYgZ3JlZW4sIGZs
b2F0JiBibHVlLCBmbG9hdCYgYWxwaGEpIGNvbnN0OwogICAgIGlubGluZSB2b2lkIHNhdHVyYXRl
QW5kSHVlUm90YXRlKGZsb2F0JiByZWQsIGZsb2F0JiBncmVlbiwgZmxvYXQmIGJsdWUpIGNvbnN0
OwogICAgIGlubGluZSB2b2lkIGx1bWluYW5jZShmbG9hdCYgcmVkLCBmbG9hdCYgZ3JlZW4sIGZs
b2F0JiBibHVlLCBmbG9hdCYgYWxwaGEpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUNvbXBvbmVudFRyYW5zZmVy
U29mdHdhcmVBcHBsaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL3NvZnR3YXJlL0ZFQ29tcG9uZW50VHJhbnNmZXJTb2Z0d2FyZUFwcGxpZXIuaAppbmRleCA3
MGEwODRiZDllYjYzNzViY2VjNGFjODliOTUwOTJhYWQ4YzE0NmI0Li5iNjBmOWE2NGJhY2M4Mjgy
ODYwZGE2ZGUyOTliNzVhZWIyOTViOWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZFQ29tcG9uZW50VHJhbnNmZXJTb2Z0d2Fy
ZUFwcGxpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L3NvZnR3YXJlL0ZFQ29tcG9uZW50VHJhbnNmZXJTb2Z0d2FyZUFwcGxpZXIuaApAQCAtMiw3ICsy
LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBOaWtvbGFzIFpp
bW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA1IEVyaWMgU2Vp
ZGVsIDxlcmljQHdlYmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29m
dHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVy
IHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTMwLDE2ICsz
MCwxNiBAQCBjbGFzcyBGRUNvbXBvbmVudFRyYW5zZmVyOwogY2xhc3MgUGl4ZWxCdWZmZXI7CiBz
dHJ1Y3QgQ29tcG9uZW50VHJhbnNmZXJGdW5jdGlvbjsKIAotY2xhc3MgRkVDb21wb25lbnRUcmFu
c2ZlclNvZnR3YXJlQXBwbGllciA6IHB1YmxpYyBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8
RkVDb21wb25lbnRUcmFuc2Zlcj4geworY2xhc3MgRkVDb21wb25lbnRUcmFuc2ZlclNvZnR3YXJl
QXBwbGllciBmaW5hbCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8RkVDb21w
b25lbnRUcmFuc2Zlcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHVzaW5n
IEJhc2UgPSBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8RkVDb21wb25lbnRUcmFuc2Zlcj47
CiAKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlOjpCYXNlOwogCi0gICAgYm9vbCBhcHBseShjb25z
dCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFnZSYg
cmVzdWx0KSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKKyAgICBib29sIGFwcGx5KGNvbnN0
IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIEZpbHRlckltYWdlJiBy
ZXN1bHQpIGNvbnN0IGZpbmFsOworCiAgICAgdXNpbmcgTG9va3VwVGFibGUgPSBzdGQ6OmFycmF5
PHVpbnQ4X3QsIDI1Nj47CiAKICAgICBzdGF0aWMgdm9pZCBjb21wdXRlSWRlbnRpdHlUYWJsZShM
b29rdXBUYWJsZSYsIGNvbnN0IENvbXBvbmVudFRyYW5zZmVyRnVuY3Rpb24mKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVD
b21wb3NpdGVTb2Z0d2FyZUFwcGxpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVDb21wb3NpdGVTb2Z0d2FyZUFwcGxpZXIuaAppbmRleCBk
NmU2MTdhMjFmNDk1MmE5Zjg0MjM3MWJkMjJkN2ZmNWMwZGQzYmUxLi5kMDAxYjgzNDdkMmQyYjI5
MzVhYTg4ZWM1ZDEyNzJkNWI1ZjgzNTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZFQ29tcG9zaXRlU29mdHdhcmVBcHBsaWVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2Fy
ZS9GRUNvbXBvc2l0ZVNvZnR3YXJlQXBwbGllci5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJp
Z2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVy
bWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlz
QGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0
Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiBy
ZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjgsMTYgKzI4LDE2IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVDb21wb3NpdGU7CiAKLWNsYXNzIEZFQ29tcG9zaXRlU29m
dHdhcmVBcHBsaWVyIDogcHVibGljIEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRUNvbXBv
c2l0ZT4geworY2xhc3MgRkVDb21wb3NpdGVTb2Z0d2FyZUFwcGxpZXIgZmluYWwgOiBwdWJsaWMg
RmlsdGVyRWZmZWN0Q29uY3JldGVBcHBsaWVyPEZFQ29tcG9zaXRlPiB7CiAgICAgV1RGX01BS0Vf
RkFTVF9BTExPQ0FURUQ7CiAgICAgdXNpbmcgQmFzZSA9IEZpbHRlckVmZmVjdENvbmNyZXRlQXBw
bGllcjxGRUNvbXBvc2l0ZT47CiAKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlOjpCYXNlOwogCi0g
ICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5w
dXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKKyAg
ICBib29sIGFwcGx5KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1
dHMsIEZpbHRlckltYWdlJiByZXN1bHQpIGNvbnN0IGZpbmFsOworCiAgICAgc3RhdGljIHVpbnQ4
X3QgY2xhbXBCeXRlKGludCk7CiAKICAgICB0ZW1wbGF0ZSA8aW50IGIxLCBpbnQgYjQ+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJl
L0ZFQ29udm9sdmVNYXRyaXhTb2Z0d2FyZUFwcGxpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVDb252b2x2ZU1hdHJpeFNvZnR3YXJlQXBw
bGllci5oCmluZGV4IGUwNzdkZjI2NGM3MzE3NjU5Y2U4NzFkM2I3NGE0ZDViOTMxNTY3NjQuLjUz
YTE4YTYyOTQ5NjUyNzQzODkxZTFlZDVhNjIyMjM0ZjJhZmViYmMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVDb252b2x2ZU1h
dHJpeFNvZnR3YXJlQXBwbGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVDb252b2x2ZU1hdHJpeFNvZnR3YXJlQXBwbGllci5oCkBA
IC0zLDcgKzMsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlz
QGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0
Lm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAxMCBab2x0YW4gSGVyY3plZyA8emhlcmN6ZWdAd2Vi
a2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzQsMTYgKzM0LDE2IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZFQ29udm9sdmVNYXRyaXg7CiBlbnVtIGNsYXNzIEVkZ2VN
b2RlVHlwZTsKIAotY2xhc3MgRkVDb252b2x2ZU1hdHJpeFNvZnR3YXJlQXBwbGllciA6IHB1Ymxp
YyBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8RkVDb252b2x2ZU1hdHJpeD4geworY2xhc3Mg
RkVDb252b2x2ZU1hdHJpeFNvZnR3YXJlQXBwbGllciBmaW5hbCA6IHB1YmxpYyBGaWx0ZXJFZmZl
Y3RDb25jcmV0ZUFwcGxpZXI8RkVDb252b2x2ZU1hdHJpeD4gewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIHVzaW5nIEJhc2UgPSBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8
RkVDb252b2x2ZU1hdHJpeD47CiAKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlOjpCYXNlOwogCi0g
ICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5w
dXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKKyAg
ICBib29sIGFwcGx5KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1
dHMsIEZpbHRlckltYWdlJiByZXN1bHQpIGNvbnN0IGZpbmFsOworCiAgICAgc3RydWN0IFBhaW50
aW5nRGF0YSB7CiAgICAgICAgIGNvbnN0IFVpbnQ4Q2xhbXBlZEFycmF5JiBzcmNQaXhlbEFycmF5
OwogICAgICAgICBVaW50OENsYW1wZWRBcnJheSYgZHN0UGl4ZWxBcnJheTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVEaXNw
bGFjZW1lbnRNYXBTb2Z0d2FyZUFwcGxpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVEaXNwbGFjZW1lbnRNYXBTb2Z0d2FyZUFwcGxpZXIu
aAppbmRleCA3NzgyYTM2MWJmZThmODFmMDU2MDQzNTViNzMyMDk4MWY1ODYwNmVkLi5hYjc5ZThm
NWNiNTU5MTViNjY2Y2M4YjM2ZTY2NzQ0NzJjOWZjMTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZFRGlzcGxhY2VtZW50TWFw
U29mdHdhcmVBcHBsaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9zb2Z0d2FyZS9GRURpc3BsYWNlbWVudE1hcFNvZnR3YXJlQXBwbGllci5oCkBAIC0y
LDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29s
YXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0
LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJp
YyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjgs
MTYgKzI4LDE2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVEaXNwbGFjZW1lbnRN
YXA7CiAKLWNsYXNzIEZFRGlzcGxhY2VtZW50TWFwU29mdHdhcmVBcHBsaWVyIDogcHVibGljIEZp
bHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRURpc3BsYWNlbWVudE1hcD4geworY2xhc3MgRkVE
aXNwbGFjZW1lbnRNYXBTb2Z0d2FyZUFwcGxpZXIgZmluYWwgOiBwdWJsaWMgRmlsdGVyRWZmZWN0
Q29uY3JldGVBcHBsaWVyPEZFRGlzcGxhY2VtZW50TWFwPiB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgdXNpbmcgQmFzZSA9IEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxG
RURpc3BsYWNlbWVudE1hcD47CiAKIHB1YmxpYzoKICAgICBGRURpc3BsYWNlbWVudE1hcFNvZnR3
YXJlQXBwbGllcihjb25zdCBGRURpc3BsYWNlbWVudE1hcCYpOwogCi0gICAgYm9vbCBhcHBseShj
b25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFn
ZSYgcmVzdWx0KSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKKyAgICBib29sIGFwcGx5KGNv
bnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIEZpbHRlckltYWdl
JiByZXN1bHQpIGNvbnN0IGZpbmFsOworCiAgICAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBieXRl
T2Zmc2V0T2ZQaXhlbCh1bnNpZ25lZCB4LCB1bnNpZ25lZCB5LCB1bnNpZ25lZCByb3dCeXRlcykK
ICAgICB7CiAgICAgICAgIGNvbnN0IHVuc2lnbmVkIGJ5dGVzUGVyUGl4ZWwgPSA0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9G
RURyb3BTaGFkb3dTb2Z0d2FyZUFwcGxpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVEcm9wU2hhZG93U29mdHdhcmVBcHBsaWVyLmgKaW5k
ZXggMTY1ZTNhZWUzNGU0ZTIwOThmYTI4MDcxMTQ4MTc4NDJkMDA5ZTE0Yy4uNjFlMGMwNmRjM2M0
MDQ5YzI2ZTkwMzZmMzNlOTlkZTlkMTk0NzdkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRURyb3BTaGFkb3dTb2Z0d2FyZUFw
cGxpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3Nv
ZnR3YXJlL0ZFRHJvcFNoYWRvd1NvZnR3YXJlQXBwbGllci5oCkBAIC0xLDYgKzEsNiBAQAogLyoK
ICAqIENvcHlyaWdodCAoQykgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQgMjAxMS4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjYsMTQgKzI2LDE1IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRkVEcm9wU2hhZG93OwogCi1jbGFzcyBGRURy
b3BTaGFkb3dTb2Z0d2FyZUFwcGxpZXIgOiBwdWJsaWMgRmlsdGVyRWZmZWN0Q29uY3JldGVBcHBs
aWVyPEZFRHJvcFNoYWRvdz4geworY2xhc3MgRkVEcm9wU2hhZG93U29mdHdhcmVBcHBsaWVyIGZp
bmFsIDogcHVibGljIEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRURyb3BTaGFkb3c+IHsK
ICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICB1c2luZyBCYXNlID0gRmlsdGVyRWZm
ZWN0Q29uY3JldGVBcHBsaWVyPEZFRHJvcFNoYWRvdz47CiAKIHB1YmxpYzoKICAgICB1c2luZyBC
YXNlOjpCYXNlOwogCi0gICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJ
bWFnZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBvdmVycmlkZTsK
K3ByaXZhdGU6CisgICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFn
ZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBmaW5hbDsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVGbG9vZFNvZnR3YXJlQXBwbGllci5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUZsb29k
U29mdHdhcmVBcHBsaWVyLmgKaW5kZXggMmE4OWQ3ZTI4NzExYzdkZDE4YTIzMTEzNjYyZDcxNWRk
OWIyNzk2MS4uMGIwMDMxODMzMjAyMDAyODUxOTI4M2Y5OGRlNDEzNTAxMTYyNDUzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9G
RUZsb29kU29mdHdhcmVBcHBsaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUZsb29kU29mdHdhcmVBcHBsaWVyLmgKQEAgLTIsNyAr
Miw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNl
aWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRl
ciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOCwxNCAr
MjgsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGRUZsb29kOwogCi1jbGFzcyBG
RUZsb29kU29mdHdhcmVBcHBsaWVyIDogcHVibGljIEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGll
cjxGRUZsb29kPiB7CitjbGFzcyBGRUZsb29kU29mdHdhcmVBcHBsaWVyIGZpbmFsIDogcHVibGlj
IEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRUZsb29kPiB7CiAgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CiAgICAgdXNpbmcgQmFzZSA9IEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGll
cjxGRUZsb29kPjsKIAogcHVibGljOgogICAgIHVzaW5nIEJhc2U6OkJhc2U7CiAKLSAgICBib29s
IGFwcGx5KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIEZp
bHRlckltYWdlJiByZXN1bHQpIGNvbnN0IG92ZXJyaWRlOworcHJpdmF0ZToKKyAgICBib29sIGFw
cGx5KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIEZpbHRl
ckltYWdlJiByZXN1bHQpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9z
b2Z0d2FyZS9GRUdhdXNzaWFuQmx1clNvZnR3YXJlQXBwbGllci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUdhdXNzaWFuQmx1clNvZnR3YXJl
QXBwbGllci5oCmluZGV4IDEyMTgwYWQ5ZTMxOWQ3MDgzOTIzOTM1OTA5NDY5ZmQ1MzhmYzAxMzMu
LjE4YzA1ZGU2ZWZlZTQ5ODM3NmVjY2UyZWM5YzgwMjg5ODdlN2UwNDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVHYXVzc2lh
bkJsdXJTb2Z0d2FyZUFwcGxpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZFR2F1c3NpYW5CbHVyU29mdHdhcmVBcHBsaWVyLmgKQEAg
LTIsNyArMiw3IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlr
b2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBF
cmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjEg
QXBwbGUsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0y
MDIyIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5
IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTMxLDE2ICszMSwxNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBGRUdhdXNzaWFu
Qmx1cjsKIGVudW0gY2xhc3MgRWRnZU1vZGVUeXBlOwogCi1jbGFzcyBGRUdhdXNzaWFuQmx1clNv
ZnR3YXJlQXBwbGllciA6IHB1YmxpYyBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8RkVHYXVz
c2lhbkJsdXI+IHsKK2NsYXNzIEZFR2F1c3NpYW5CbHVyU29mdHdhcmVBcHBsaWVyIGZpbmFsIDog
cHVibGljIEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRUdhdXNzaWFuQmx1cj4gewogICAg
IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHVzaW5nIEJhc2UgPSBGaWx0ZXJFZmZlY3RD
b25jcmV0ZUFwcGxpZXI8RkVHYXVzc2lhbkJsdXI+OwogCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFz
ZTo6QmFzZTsKIAotICAgIGJvb2wgYXBwbHkoY29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1h
Z2VWZWN0b3ImIGlucHV0cywgRmlsdGVySW1hZ2UmIHJlc3VsdCkgY29uc3Qgb3ZlcnJpZGU7Ci0K
IHByaXZhdGU6CisgICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFn
ZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBmaW5hbDsKKwogICAg
IHN0cnVjdCBBcHBseVBhcmFtZXRlcnMgewogICAgICAgICBSZWZQdHI8VWludDhDbGFtcGVkQXJy
YXk+IGlvUGl4ZWxBcnJheTsKICAgICAgICAgUmVmUHRyPFVpbnQ4Q2xhbXBlZEFycmF5PiB0bXBQ
aXhlbEFycmF5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9zb2Z0d2FyZS9GRUltYWdlU29mdHdhcmVBcHBsaWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVJbWFnZVNvZnR3YXJlQXBw
bGllci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMWUwMTM4Mzk3MmQwYmM3NGFiMzRhNWY0ODY0ODY4ZTgyZmI4
OTA4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZpbHRlcnMvc29mdHdhcmUvRkVJbWFnZVNvZnR3YXJlQXBwbGllci5jcHAKQEAgLTAsMCArMSw2
OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiRkVJbWFnZVNv
ZnR3YXJlQXBwbGllci5oIgorCisjaW5jbHVkZSAiRkVJbWFnZS5oIgorI2luY2x1ZGUgIkZpbHRl
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2Jvb2wgRkVJbWFnZVNvZnR3YXJlQXBwbGll
cjo6YXBwbHkoY29uc3QgRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiwg
RmlsdGVySW1hZ2UmIHJlc3VsdCkgY29uc3QKK3sKKyAgICBhdXRvIHJlc3VsdEltYWdlID0gcmVz
dWx0LmltYWdlQnVmZmVyKCk7CisgICAgaWYgKCFyZXN1bHRJbWFnZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworCisgICAgYXV0byYgc291cmNlSW1hZ2UgPSBtX2VmZmVjdC5zb3VyY2VJbWFnZSgp
OworICAgIGF1dG8gcHJpbWl0aXZlU3VicmVnaW9uID0gcmVzdWx0LnByaW1pdGl2ZVN1YnJlZ2lv
bigpOworICAgIGF1dG8mIGNvbnRleHQgPSByZXN1bHRJbWFnZS0+Y29udGV4dCgpOworCisgICAg
aWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSBzb3VyY2VJbWFnZS5uYXRpdmVJbWFnZUlmRXhpc3RzKCkp
IHsKKyAgICAgICAgYXV0byBpbWFnZVJlY3QgPSBwcmltaXRpdmVTdWJyZWdpb247CisgICAgICAg
IGF1dG8gc3JjUmVjdCA9IG1fZWZmZWN0LnNvdXJjZUltYWdlUmVjdCgpOworICAgICAgICBtX2Vm
ZmVjdC5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCkudHJhbnNmb3JtUmVjdChpbWFnZVJlY3QsIHNyY1Jl
Y3QpOworICAgICAgICBpbWFnZVJlY3Quc2NhbGUoZmlsdGVyLmZpbHRlclNjYWxlKCkpOworICAg
ICAgICBpbWFnZVJlY3QgPSBJbnRSZWN0KGltYWdlUmVjdCkgLSByZXN1bHQuYWJzb2x1dGVJbWFn
ZVJlY3QoKS5sb2NhdGlvbigpOworICAgICAgICBjb250ZXh0LmRyYXdOYXRpdmVJbWFnZSgqbmF0
aXZlSW1hZ2UsIHNyY1JlY3Quc2l6ZSgpLCBpbWFnZVJlY3QsIHNyY1JlY3QpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBpZiAoYXV0byBpbWFnZUJ1ZmZlciA9IHNvdXJjZUlt
YWdlLmltYWdlQnVmZmVySWZFeGlzdHMoKSkgeworICAgICAgICBhdXRvIGltYWdlUmVjdCA9IHBy
aW1pdGl2ZVN1YnJlZ2lvbjsKKyAgICAgICAgaW1hZ2VSZWN0Lm1vdmVCeShtX2VmZmVjdC5zb3Vy
Y2VJbWFnZVJlY3QoKS5sb2NhdGlvbigpKTsKKyAgICAgICAgaW1hZ2VSZWN0LnNjYWxlKGZpbHRl
ci5maWx0ZXJTY2FsZSgpKTsKKyAgICAgICAgaW1hZ2VSZWN0ID0gSW50UmVjdChpbWFnZVJlY3Qp
IC0gcmVzdWx0LmFic29sdXRlSW1hZ2VSZWN0KCkubG9jYXRpb24oKTsKKyAgICAgICAgY29udGV4
dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBpbWFnZVJlY3QubG9jYXRpb24oKSk7Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICAKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUv
RkVJbWFnZVNvZnR3YXJlQXBwbGllci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9zb2Z0d2FyZS9GRUltYWdlU29mdHdhcmVBcHBsaWVyLmgKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDBlMTM3YTRmNzI2MjMzYmUwNDNiYTdlNGUxNjgyMzM0MjhhNTkwNAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVJ
bWFnZVNvZnR3YXJlQXBwbGllci5oCkBAIC0wLDAgKzEsNDUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1
ZGUgIkZpbHRlckVmZmVjdEFwcGxpZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBGRUltYWdlOworCitjbGFzcyBGRUltYWdlU29mdHdhcmVBcHBsaWVyIGZpbmFsIDogcHVibGlj
IEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRUltYWdlPiB7CisgICAgV1RGX01BS0VfRkFT
VF9BTExPQ0FURUQ7CisgICAgdXNpbmcgQmFzZSA9IEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGll
cjxGRUltYWdlPjsKKworcHVibGljOgorICAgIHVzaW5nIEJhc2U6OkJhc2U7CisKK3ByaXZhdGU6
CisgICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYg
aW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBmaW5hbDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVMaWdodGluZ1NvZnR3YXJlQXBwbGllci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUxpZ2h0aW5nU29m
dHdhcmVBcHBsaWVyLmgKaW5kZXggZjQ0OWQzZTc5ZjM4ZmFjOGU0MjQ0OWZhOGQ0MmNiNzQ4N2Ew
YzgxMC4uMzg3NWIwYTRiNWRlZjQzNGEzZmI5MDZhMjdkODQ5YjMxMDVkNmU1MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUxp
Z2h0aW5nU29mdHdhcmVBcHBsaWVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRUxpZ2h0aW5nU29mdHdhcmVBcHBsaWVyLmgKQEAgLTEs
NyArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2Vk
CiAgKiBDb3B5cmlnaHQgKEMpIDIwMTAgWm9sdGFuIEhlcmN6ZWcKLSAqIENvcHlyaWdodCAoQykg
MjAxOC0yMDIxIEFwcGxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTgtMjAyMiBBcHBsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNywxNiArMzcsMTYgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBGRUxpZ2h0aW5nOwogCi1jbGFzcyBGRUxpZ2h0aW5nU29mdHdhcmVBcHBs
aWVyIDogcHVibGljIEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRUxpZ2h0aW5nPiB7Citj
bGFzcyBGRUxpZ2h0aW5nU29mdHdhcmVBcHBsaWVyIGZpbmFsIDogcHVibGljIEZpbHRlckVmZmVj
dENvbmNyZXRlQXBwbGllcjxGRUxpZ2h0aW5nPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiAgICAgdXNpbmcgQmFzZSA9IEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRUxpZ2h0
aW5nPjsKIAogcHVibGljOgogICAgIHVzaW5nIEJhc2U6OkJhc2U7CiAKLSAgICBib29sIGFwcGx5
KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIEZpbHRlcklt
YWdlJiByZXN1bHQpIGNvbnN0IG92ZXJyaWRlOwotCiBwcml2YXRlOgorICAgIGJvb2wgYXBwbHko
Y29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlucHV0cywgRmlsdGVySW1h
Z2UmIHJlc3VsdCkgY29uc3QgZmluYWw7CisKICAgICBzdGF0aWMgY29uc3RleHByIGludCBjUGl4
ZWxTaXplID0gNDsKICAgICBzdGF0aWMgY29uc3RleHByIGludCBjQWxwaGFDaGFubmVsT2Zmc2V0
ID0gMzsKICAgICBzdGF0aWMgY29uc3RleHByIHVpbnQ4X3QgY09wYXF1ZUFscGhhID0gc3RhdGlj
X2Nhc3Q8dWludDhfdD4oMHhGRik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL0ZFTWVyZ2VTb2Z0d2FyZUFwcGxpZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVNZXJnZVNv
ZnR3YXJlQXBwbGllci5oCmluZGV4IDU5ZDZhZjk1NGU5OGQ3NjZiNjViNTQ5MTMyMmJmZGRjOWVl
OGMyNzAuLjRjMWFhYTEzNzU3ZmRlMmQ2Y2FiMDdkZjBkNDFhYTM5ZjNkNjUwNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVN
ZXJnZVNvZnR3YXJlQXBwbGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVNZXJnZVNvZnR3YXJlQXBwbGllci5oCkBAIC0yLDcgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1
IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlk
ZWwgPGVyaWNAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgQXBwbGUgSW5jLiAyMDIxIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSwgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOCwxNCArMjgs
MTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGRU1lcmdlOwogCi1jbGFzcyBGRU1l
cmdlU29mdHdhcmVBcHBsaWVyIDogcHVibGljIEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxG
RU1lcmdlPiB7CitjbGFzcyBGRU1lcmdlU29mdHdhcmVBcHBsaWVyIGZpbmFsIDogcHVibGljIEZp
bHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRU1lcmdlPiB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiAgICAgdXNpbmcgQmFzZSA9IEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxG
RU1lcmdlPjsKIAogcHVibGljOgogICAgIHVzaW5nIEJhc2U6OkJhc2U7CiAKLSAgICBib29sIGFw
cGx5KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIEZpbHRl
ckltYWdlJiByZXN1bHQpIGNvbnN0IG92ZXJyaWRlOworcHJpdmF0ZToKKyAgICBib29sIGFwcGx5
KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIEZpbHRlcklt
YWdlJiByZXN1bHQpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0
d2FyZS9GRU1vcnBob2xvZ3lTb2Z0d2FyZUFwcGxpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVNb3JwaG9sb2d5U29mdHdhcmVBcHBsaWVy
LmgKaW5kZXggNTdmODhmZjkwNjIwODUzOGQ4ZTdlNGQwMTA3Yzg3ZmY0YTk1OTM3Zi4uNjhhZDRh
NDMzOGI1Mjc4MGJjOGVlMDEwMGMzNmZiNGNkY2UzYzc2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRU1vcnBob2xvZ3lTb2Z0
d2FyZUFwcGxpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL3NvZnR3YXJlL0ZFTW9ycGhvbG9neVNvZnR3YXJlQXBwbGllci5oCkBAIC0yLDcgKzIsNyBA
QAogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVy
bWFubiA8emltbWVybWFubkBrZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJv
YiBCdWlzIDxidWlzQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwg
PGVyaWNAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgQXBwbGUgSW5jLiAyMDIxIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSwgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMiwxNiArMzIsMTYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRkVNb3JwaG9sb2d5OwogZW51bSBjbGFzcyBN
b3JwaG9sb2d5T3BlcmF0b3JUeXBlOwogCi1jbGFzcyBGRU1vcnBob2xvZ3lTb2Z0d2FyZUFwcGxp
ZXIgOiBwdWJsaWMgRmlsdGVyRWZmZWN0Q29uY3JldGVBcHBsaWVyPEZFTW9ycGhvbG9neT4gewor
Y2xhc3MgRkVNb3JwaG9sb2d5U29mdHdhcmVBcHBsaWVyIGZpbmFsIDogcHVibGljIEZpbHRlckVm
ZmVjdENvbmNyZXRlQXBwbGllcjxGRU1vcnBob2xvZ3k+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKICAgICB1c2luZyBCYXNlID0gRmlsdGVyRWZmZWN0Q29uY3JldGVBcHBsaWVyPEZF
TW9ycGhvbG9neT47CiAKIHB1YmxpYzoKICAgICB1c2luZyBCYXNlOjpCYXNlOwogCi0gICAgYm9v
bCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBG
aWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBvdmVycmlkZTsKLQogcHJpdmF0ZToKKyAgICBib29s
IGFwcGx5KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIEZp
bHRlckltYWdlJiByZXN1bHQpIGNvbnN0IGZpbmFsOworCiAgICAgdXNpbmcgQ29sdW1uRXh0cmVt
YSA9IFZlY3RvcjxDb2xvckNvbXBvbmVudHM8dWludDhfdCwgND4sIDE2PjsKIAogICAgIHN0cnVj
dCBQYWludGluZ0RhdGEgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRU9mZnNldFNvZnR3YXJlQXBwbGllci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRU9mZnNldFNvZnR3
YXJlQXBwbGllci5oCmluZGV4IDY1YWVlYzljMmU1ZTJjZWU3ZTcwM2NjMzJhM2NkZjM5MTRjYjE0
NzAuLjk0ZTY4YTQ4MmY0NDE4Y2FjZDNkODM2NDc1MDJhOTI4YmQxOTg5OTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVPZmZz
ZXRTb2Z0d2FyZUFwcGxpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL3NvZnR3YXJlL0ZFT2Zmc2V0U29mdHdhcmVBcHBsaWVyLmgKQEAgLTIsNyArMiw3
IEBACiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBaaW1t
ZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KICAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNlaWRl
bCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAyMiBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0yOCwxNCArMjgs
MTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGRU9mZnNldDsKIAotY2xhc3MgRkVP
ZmZzZXRTb2Z0d2FyZUFwcGxpZXIgOiBwdWJsaWMgRmlsdGVyRWZmZWN0Q29uY3JldGVBcHBsaWVy
PEZFT2Zmc2V0PiB7CitjbGFzcyBGRU9mZnNldFNvZnR3YXJlQXBwbGllciBmaW5hbCA6IHB1Ymxp
YyBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8RkVPZmZzZXQ+IHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKICAgICB1c2luZyBCYXNlID0gRmlsdGVyRWZmZWN0Q29uY3JldGVBcHBs
aWVyPEZFT2Zmc2V0PjsKIAogcHVibGljOgogICAgIHVzaW5nIEJhc2U6OkJhc2U7CiAKLSAgICBi
b29sIGFwcGx5KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMs
IEZpbHRlckltYWdlJiByZXN1bHQpIGNvbnN0IG92ZXJyaWRlOworcHJpdmF0ZToKKyAgICBib29s
IGFwcGx5KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIEZp
bHRlckltYWdlJiByZXN1bHQpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVy
cy9zb2Z0d2FyZS9GRVRpbGVTb2Z0d2FyZUFwcGxpZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVUaWxlU29mdHdhcmVBcHBsaWVyLmgKaW5k
ZXggNjc1YTI5ZmIzYjJjY2IwYmVjMjFlYWRiOTRjMmYwNjk0M2U5OWQzZS4uMDk4ZDdmZmE1OTUw
YWI2YmIyYThmNzAwYzkzZWRlNjQ1ZTRjOGRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRVRpbGVTb2Z0d2FyZUFwcGxpZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJl
L0ZFVGlsZVNvZnR3YXJlQXBwbGllci5oCkBAIC0yLDcgKzIsNyBAQAogICogQ29weXJpZ2h0IChD
KSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBr
ZGUub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBCdWlzIDxidWlzQGtkZS5v
cmc+CiAgKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVyaWNAd2Via2l0Lm9yZz4K
LSAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry
aWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjgsMTQgKzI4LDE1IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogY2xhc3MgRkVUaWxlOwogCi1jbGFzcyBGRVRpbGVTb2Z0d2FyZUFwcGxpZXIgOiBw
dWJsaWMgRmlsdGVyRWZmZWN0Q29uY3JldGVBcHBsaWVyPEZFVGlsZT4geworY2xhc3MgRkVUaWxl
U29mdHdhcmVBcHBsaWVyIGZpbmFsIDogcHVibGljIEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGll
cjxGRVRpbGU+IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICB1c2luZyBCYXNl
ID0gRmlsdGVyRWZmZWN0Q29uY3JldGVBcHBsaWVyPEZFVGlsZT47CiAKIHB1YmxpYzoKICAgICB1
c2luZyBCYXNlOjpCYXNlOwogCi0gICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBG
aWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBvdmVy
cmlkZTsKK3ByaXZhdGU6CisgICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0
ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBmaW5hbDsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvRkVUdXJidWxlbmNlU29mdHdhcmVB
cHBsaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3
YXJlL0ZFVHVyYnVsZW5jZVNvZnR3YXJlQXBwbGllci5oCmluZGV4IDIzY2JjYzkyOGMxOGVkZjA2
YzRkNzE4YTkzODRjOWY3ZjFhYzhjNDQuLmNmNGQ4OTU5ZWJhNDQxOGQ0NzY0Y2IxOGNlNWE2ZjA2
Njk4NGI0N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Zp
bHRlcnMvc29mdHdhcmUvRkVUdXJidWxlbmNlU29mdHdhcmVBcHBsaWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9GRVR1cmJ1bGVuY2VT
b2Z0d2FyZUFwcGxpZXIuaApAQCAtNCw3ICs0LDcgQEAKICAqIENvcHlyaWdodCAoQykgMjAwNSBF
cmljIFNlaWRlbCA8ZXJpY0B3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDA5IERpcmsg
U2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgogICogQ29weXJpZ2h0IChDKSAyMDEwIFJlbmF0YSBI
b2RvdmFuIDxyZW5pQGluZi51LXN6ZWdlZC5odT4KLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIx
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTct
MjAyMiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFy
eSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1v
ZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
CkBAIC0zNSwxNiArMzUsMTYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRkVUdXJidWxl
bmNlOwogZW51bSBjbGFzcyBUdXJidWxlbmNlVHlwZTsKIAotY2xhc3MgRkVUdXJidWxlbmNlU29m
dHdhcmVBcHBsaWVyIDogcHVibGljIEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxGRVR1cmJ1
bGVuY2U+IHsKK2NsYXNzIEZFVHVyYnVsZW5jZVNvZnR3YXJlQXBwbGllciBmaW5hbCA6IHB1Ymxp
YyBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8RkVUdXJidWxlbmNlPiB7CiAgICAgV1RGX01B
S0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgdXNpbmcgQmFzZSA9IEZpbHRlckVmZmVjdENvbmNyZXRl
QXBwbGllcjxGRVR1cmJ1bGVuY2U+OwogCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZTo6QmFzZTsK
IAotICAgIGJvb2wgYXBwbHkoY29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3Im
IGlucHV0cywgRmlsdGVySW1hZ2UmIHJlc3VsdCkgY29uc3Qgb3ZlcnJpZGU7Ci0KIHByaXZhdGU6
CisgICAgYm9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYg
aW5wdXRzLCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBmaW5hbDsKKwogICAgIC8vIFByb2R1
Y2VzIHJlc3VsdHMgaW4gdGhlIHJhbmdlIFsxLCAyKiozMSAtIDJdLiBBbGdvcml0aG0gaXM6CiAg
ICAgLy8gciA9IChhICogcikgbW9kIG0gd2hlcmUgYSA9IHNfcmFuZEFtcGxpdHVkZSA9IDE2ODA3
IGFuZAogICAgIC8vIG0gPSBzX3JhbmRNYXhpbXVtID0gMioqMzEgLSAxID0gMjE0NzQ4MzY0Nywg
ciA9IHNlZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL3NvZnR3YXJlL1NvdXJjZUFscGhhU29mdHdhcmVBcHBsaWVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL3NvZnR3YXJlL1NvdXJjZUFscGhhU29mdHdh
cmVBcHBsaWVyLmgKaW5kZXggNDY0ZTc4ZmY5YzZjYzY2YjAzYTA2NmU2MjE1YWMyN2IwYWYzZGZk
Yi4uOWY5NDNlZmE1NzExMWVkNDRlOWFkNjU0YjhmMDQwNDU4ZjkyZDE2NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9zb2Z0d2FyZS9Tb3VyY2VB
bHBoYVNvZnR3YXJlQXBwbGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvc29mdHdhcmUvU291cmNlQWxwaGFTb2Z0d2FyZUFwcGxpZXIuaApAQCAtMSw2
ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgRGlyayBTY2h1bHplIDxrcml0QHdl
YmtpdC5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTI2LDE0ICsyNiwxNSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNvdXJjZUFscGhhOwogCi1jbGFzcyBTb3VyY2VBbHBo
YVNvZnR3YXJlQXBwbGllciA6IHB1YmxpYyBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8U291
cmNlQWxwaGE+IHsKK2NsYXNzIFNvdXJjZUFscGhhU29mdHdhcmVBcHBsaWVyIGZpbmFsIDogcHVi
bGljIEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxTb3VyY2VBbHBoYT4gewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHVzaW5nIEJhc2UgPSBGaWx0ZXJFZmZlY3RDb25jcmV0
ZUFwcGxpZXI8U291cmNlQWxwaGE+OwogCiBwdWJsaWM6CiAgICAgdXNpbmcgQmFzZTo6QmFzZTsK
IAotICAgIGJvb2wgYXBwbHkoY29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3Im
IGlucHV0cywgRmlsdGVySW1hZ2UmIHJlc3VsdCkgY29uc3Qgb3ZlcnJpZGU7Citwcml2YXRlOgor
ICAgIGJvb2wgYXBwbHkoY29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlu
cHV0cywgRmlsdGVySW1hZ2UmIHJlc3VsdCkgY29uc3QgZmluYWw7CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9maWx0ZXJzL3NvZnR3YXJlL1NvdXJjZUdyYXBoaWNTb2Z0d2FyZUFwcGxpZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvU291cmNlR3JhcGhp
Y1NvZnR3YXJlQXBwbGllci5oCmluZGV4IGI3MDZmY2MwYzA2MjJiZDI2MDBjZjg3OWQ2NDcwNGE3
Y2IwNmVmMWYuLmZlMzZlM2MxZDQyZDIwNTZlOGRhZjQ0NTM5ZGFjNjEwMTBjMmUyMjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUv
U291cmNlR3JhcGhpY1NvZnR3YXJlQXBwbGllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvc29mdHdhcmUvU291cmNlR3JhcGhpY1NvZnR3YXJlQXBwbGll
ci5oCkBAIC0xLDcgKzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAwOCBBbGV4IE1hdGhl
d3MgPHBvc3Nlc3NlZHBlbmd1aW5ib2JAZ21haWwuY29tPgogICogQ29weXJpZ2h0IChDKSAyMDA5
IERpcmsgU2NodWx6ZSA8a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEtMjAy
MiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBp
cyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlm
eSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBA
IC0yNywxNCArMjcsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBTb3VyY2VHcmFw
aGljOwogCi1jbGFzcyBTb3VyY2VHcmFwaGljU29mdHdhcmVBcHBsaWVyIDogcHVibGljIEZpbHRl
ckVmZmVjdENvbmNyZXRlQXBwbGllcjxTb3VyY2VHcmFwaGljPiB7CitjbGFzcyBTb3VyY2VHcmFw
aGljU29mdHdhcmVBcHBsaWVyIGZpbmFsIDogcHVibGljIEZpbHRlckVmZmVjdENvbmNyZXRlQXBw
bGllcjxTb3VyY2VHcmFwaGljPiB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAg
dXNpbmcgQmFzZSA9IEZpbHRlckVmZmVjdENvbmNyZXRlQXBwbGllcjxTb3VyY2VHcmFwaGljPjsK
IAogcHVibGljOgogICAgIHVzaW5nIEJhc2U6OkJhc2U7CiAKLSAgICBib29sIGFwcGx5KGNvbnN0
IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIEZpbHRlckltYWdlJiBy
ZXN1bHQpIGNvbnN0IG92ZXJyaWRlOworcHJpdmF0ZToKKyAgICBib29sIGFwcGx5KGNvbnN0IEZp
bHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIEZpbHRlckltYWdlJiByZXN1
bHQpIGNvbnN0IGZpbmFsOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSZXNvdXJjZUZpbHRlclBy
aW1pdGl2ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291
cmNlRmlsdGVyUHJpbWl0aXZlLmNwcAppbmRleCBhZGQ3MWE2NjM3YWIyNDVhOWNjNDQyYWUwYmYz
Yzk4NzBlNGM5MWJjLi4yYmY3N2E5MGVjMDE5NjZkZmY3YzY5YjgyYzU5MzM2ZDRlYzdhMWNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jlc291cmNl
RmlsdGVyUHJpbWl0aXZlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jlc291cmNlRmlsdGVyUHJpbWl0aXZlLmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2lu
Y2x1ZGUgIlNWR0VsZW1lbnRUeXBlSGVscGVycy5oIgogI2luY2x1ZGUgIlNWR0ZFRGlmZnVzZUxp
Z2h0aW5nRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZFRmxvb2RFbGVtZW50LmgiCi0jaW5jbHVk
ZSAiU1ZHRkVJbWFnZS5oIgogI2luY2x1ZGUgIlNWR0ZFU3BlY3VsYXJMaWdodGluZ0VsZW1lbnQu
aCIKICNpbmNsdWRlICJTVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCIKICNp
bmNsdWRlICJTVkdOYW1lcy5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZF
SW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5j
cHAKaW5kZXggNmQ4ODlhZDFkYTU1YTU1MzJkY2NmY2FhNzQ5MDZlOGYzMTU0MjdmNy4uODdkMmVh
NjY4ZjgwNTAyNTYzMjI5ZTUwYzRmNjE0ZDY3MzljMDRhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZFSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRkVJbWFnZUVsZW1lbnQuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiQ2FjaGVk
UmVzb3VyY2VMb2FkZXIuaCIKICNpbmNsdWRlICJDYWNoZWRSZXNvdXJjZVJlcXVlc3QuaCIKICNp
bmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZFSW1hZ2UuaCIKICNpbmNsdWRlICJJbWFn
ZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jlc291
cmNlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRkVJbWFnZUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5oCmluZGV4IGZjZmQxZWUy
Y2Q0OGE1NjdkYmRjZjIxZjE4Yzg2MjQxYzA0Y2MxZTguLjA0MmQwNmJlZmUzYWNkMjFiODhjMDYx
MDFjNGM2OTBhZmM3YzhjNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUlt
YWdlRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGRUltYWdlRWxlbWVudC5o
CkBAIC0yMyw3ICsyMyw2IEBACiAKICNpbmNsdWRlICJDYWNoZWRJbWFnZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIkNhY2hlZFJlc291cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiU1ZHRkVJbWFnZS5oIgog
I2luY2x1ZGUgIlNWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oIgogI2luY2x1
ZGUgIlNWR1VSSVJlZmVyZW5jZS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
Z3JhcGhpY3MvZmlsdGVycy9TVkdGRUltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCA3NWRkNjgwNjIyMjdkYmExYWE5ZDZmMzRhZTg3MzdhZTQ3M2UzNzljLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZFSW1hZ2UuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTI0ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgTmlrb2xhcyBa
aW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAwNSBFcmljIFNl
aWRlbCA8ZXJpY0B3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDEwIERpcmsgU2NodWx6
ZSA8a3JpdEB3ZWJraXQub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDIxLTIwMjIgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0
d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBh
cyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2
ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZl
cnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhv
dXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkg
R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91
bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGlj
IExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlO
Ry5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u
LCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNW
R0ZFSW1hZ2UuaCIKLQotI2luY2x1ZGUgIkZpbHRlci5oIgotI2luY2x1ZGUgIkZpbHRlckVmZmVj
dEFwcGxpZXIuaCIKLSNpbmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKLSNpbmNsdWRlIDx3dGYv
dGV4dC9UZXh0U3RyZWFtLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotUmVmPEZFSW1hZ2U+
IEZFSW1hZ2U6OmNyZWF0ZShTb3VyY2VJbWFnZSYmIHNvdXJjZUltYWdlLCBjb25zdCBGbG9hdFJl
Y3QmIHNvdXJjZUltYWdlUmVjdCwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJiBw
cmVzZXJ2ZUFzcGVjdFJhdGlvKQotewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZFSW1hZ2Uo
V1RGTW92ZShzb3VyY2VJbWFnZSksIHNvdXJjZUltYWdlUmVjdCwgcHJlc2VydmVBc3BlY3RSYXRp
bykpOwotfQotCi1GRUltYWdlOjpGRUltYWdlKFNvdXJjZUltYWdlJiYgc291cmNlSW1hZ2UsIGNv
bnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJh
dGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8pCi0gICAgOiBGaWx0ZXJFZmZlY3QoVHlwZTo6
RkVJbWFnZSkKLSAgICAsIG1fc291cmNlSW1hZ2UoV1RGTW92ZShzb3VyY2VJbWFnZSkpCi0gICAg
LCBtX3NvdXJjZUltYWdlUmVjdChzb3VyY2VJbWFnZVJlY3QpCi0gICAgLCBtX3ByZXNlcnZlQXNw
ZWN0UmF0aW8ocHJlc2VydmVBc3BlY3RSYXRpbykKLXsKLX0KLQotRmxvYXRSZWN0IEZFSW1hZ2U6
OmNhbGN1bGF0ZUltYWdlUmVjdChjb25zdCBGaWx0ZXImIGZpbHRlciwgY29uc3QgRmlsdGVySW1h
Z2VWZWN0b3ImLCBjb25zdCBGbG9hdFJlY3QmIHByaW1pdGl2ZVN1YnJlZ2lvbikgY29uc3QKLXsK
LSAgICBpZiAobV9zb3VyY2VJbWFnZS5uYXRpdmVJbWFnZUlmRXhpc3RzKCkpIHsKLSAgICAgICAg
YXV0byBpbWFnZVJlY3QgPSBwcmltaXRpdmVTdWJyZWdpb247Ci0gICAgICAgIGF1dG8gc3JjUmVj
dCA9IG1fc291cmNlSW1hZ2VSZWN0OwotICAgICAgICBtX3ByZXNlcnZlQXNwZWN0UmF0aW8udHJh
bnNmb3JtUmVjdChpbWFnZVJlY3QsIHNyY1JlY3QpOwotICAgICAgICByZXR1cm4gZmlsdGVyLmNs
aXBUb01heEVmZmVjdFJlY3QoaW1hZ2VSZWN0LCBwcmltaXRpdmVTdWJyZWdpb24pOwotICAgIH0K
LQotICAgIGlmIChtX3NvdXJjZUltYWdlLmltYWdlQnVmZmVySWZFeGlzdHMoKSkKLSAgICAgICAg
cmV0dXJuIGZpbHRlci5tYXhFZmZlY3RSZWN0KHByaW1pdGl2ZVN1YnJlZ2lvbik7Ci0KLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gRmxvYXRSZWN0KCk7Ci19Ci0KLS8vIEZJ
WE1FOiBNb3ZlIHRoZSBjbGFzcyBGRUltYWdlU29mdHdhcmVBcHBsaWVyIHRvIHNlcGFyYXRlIHNv
dXJjZSBhbmQgaGVhZGVyIGZpbGVzLgotY2xhc3MgRkVJbWFnZVNvZnR3YXJlQXBwbGllciA6IHB1
YmxpYyBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFwcGxpZXI8RkVJbWFnZT4gewotICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwotICAgIHVzaW5nIEJhc2UgPSBGaWx0ZXJFZmZlY3RDb25jcmV0ZUFw
cGxpZXI8RkVJbWFnZT47Ci0KLXB1YmxpYzoKLSAgICB1c2luZyBCYXNlOjpCYXNlOwotCi0gICAg
Ym9vbCBhcHBseShjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRz
LCBGaWx0ZXJJbWFnZSYgcmVzdWx0KSBjb25zdCBvdmVycmlkZTsKLX07Ci0KLWJvb2wgRkVJbWFn
ZVNvZnR3YXJlQXBwbGllcjo6YXBwbHkoY29uc3QgRmlsdGVyJiBmaWx0ZXIsIGNvbnN0IEZpbHRl
ckltYWdlVmVjdG9yJiwgRmlsdGVySW1hZ2UmIHJlc3VsdCkgY29uc3QKLXsKLSAgICBhdXRvIHJl
c3VsdEltYWdlID0gcmVzdWx0LmltYWdlQnVmZmVyKCk7Ci0gICAgaWYgKCFyZXN1bHRJbWFnZSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgYXV0byYgc291cmNlSW1hZ2UgPSBtX2VmZmVj
dC5zb3VyY2VJbWFnZSgpOwotICAgIGF1dG8gcHJpbWl0aXZlU3VicmVnaW9uID0gcmVzdWx0LnBy
aW1pdGl2ZVN1YnJlZ2lvbigpOwotICAgIGF1dG8mIGNvbnRleHQgPSByZXN1bHRJbWFnZS0+Y29u
dGV4dCgpOwotCi0gICAgaWYgKGF1dG8gbmF0aXZlSW1hZ2UgPSBzb3VyY2VJbWFnZS5uYXRpdmVJ
bWFnZUlmRXhpc3RzKCkpIHsKLSAgICAgICAgYXV0byBpbWFnZVJlY3QgPSBwcmltaXRpdmVTdWJy
ZWdpb247Ci0gICAgICAgIGF1dG8gc3JjUmVjdCA9IG1fZWZmZWN0LnNvdXJjZUltYWdlUmVjdCgp
OwotICAgICAgICBtX2VmZmVjdC5wcmVzZXJ2ZUFzcGVjdFJhdGlvKCkudHJhbnNmb3JtUmVjdChp
bWFnZVJlY3QsIHNyY1JlY3QpOwotICAgICAgICBpbWFnZVJlY3Quc2NhbGUoZmlsdGVyLmZpbHRl
clNjYWxlKCkpOwotICAgICAgICBpbWFnZVJlY3QgPSBJbnRSZWN0KGltYWdlUmVjdCkgLSByZXN1
bHQuYWJzb2x1dGVJbWFnZVJlY3QoKS5sb2NhdGlvbigpOwotICAgICAgICBjb250ZXh0LmRyYXdO
YXRpdmVJbWFnZSgqbmF0aXZlSW1hZ2UsIHNyY1JlY3Quc2l6ZSgpLCBpbWFnZVJlY3QsIHNyY1Jl
Y3QpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBpZiAoYXV0byBpbWFnZUJ1
ZmZlciA9IHNvdXJjZUltYWdlLmltYWdlQnVmZmVySWZFeGlzdHMoKSkgewotICAgICAgICBhdXRv
IGltYWdlUmVjdCA9IHByaW1pdGl2ZVN1YnJlZ2lvbjsKLSAgICAgICAgaW1hZ2VSZWN0Lm1vdmVC
eShtX2VmZmVjdC5zb3VyY2VJbWFnZVJlY3QoKS5sb2NhdGlvbigpKTsKLSAgICAgICAgaW1hZ2VS
ZWN0LnNjYWxlKGZpbHRlci5maWx0ZXJTY2FsZSgpKTsKLSAgICAgICAgaW1hZ2VSZWN0ID0gSW50
UmVjdChpbWFnZVJlY3QpIC0gcmVzdWx0LmFic29sdXRlSW1hZ2VSZWN0KCkubG9jYXRpb24oKTsK
LSAgICAgICAgY29udGV4dC5kcmF3SW1hZ2VCdWZmZXIoKmltYWdlQnVmZmVyLCBpbWFnZVJlY3Qu
bG9jYXRpb24oKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICAKLSAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXN0ZDo6dW5pcXVlX3B0
cjxGaWx0ZXJFZmZlY3RBcHBsaWVyPiBGRUltYWdlOjpjcmVhdGVTb2Z0d2FyZUFwcGxpZXIoKSBj
b25zdAotewotICAgIHJldHVybiBGaWx0ZXJFZmZlY3RBcHBsaWVyOjpjcmVhdGU8RkVJbWFnZVNv
ZnR3YXJlQXBwbGllcj4oKnRoaXMpOwotfQotCi1UZXh0U3RyZWFtJiBGRUltYWdlOjpleHRlcm5h
bFJlcHJlc2VudGF0aW9uKFRleHRTdHJlYW0mIHRzLCBGaWx0ZXJSZXByZXNlbnRhdGlvbiByZXBy
ZXNlbnRhdGlvbikgY29uc3QKLXsKLSAgICB0cyA8PCBpbmRlbnQgPDwgIltmZUltYWdlIjsKLSAg
ICBGaWx0ZXJFZmZlY3Q6OmV4dGVybmFsUmVwcmVzZW50YXRpb24odHMsIHJlcHJlc2VudGF0aW9u
KTsKLQotICAgIHRzIDw8ICIgaW1hZ2Utc2l6ZT1cIiIgPDwgbV9zb3VyY2VJbWFnZVJlY3Qud2lk
dGgoKSA8PCAieCIgPDwgbV9zb3VyY2VJbWFnZVJlY3QuaGVpZ2h0KCkgPDwgIlwiIjsKLSAgICAv
LyBGSVhNRTogc2hvdWxkIHRoaXMgZHVtcCBhbHNvIG9iamVjdCByZXR1cm5lZCBieSBTVkdGRUlt
YWdlOjppbWFnZSgpID8KLQotICAgIHRzIDw8ICJdXG4iOwotICAgIHJldHVybiB0czsKLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dy
YXBoaWNzL2ZpbHRlcnMvU1ZHRkVJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L2ZpbHRlcnMvU1ZHRkVJbWFnZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0NjU2
YmI5ZDUyYzhlZTk0YzA2ODQ5NDE2ODVmNTJhODNjNjU5NzMwLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9m
aWx0ZXJzL1NWR0ZFSW1hZ2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDEwMCArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IE5pa29sYXMgWmltbWVybWFu
biA8emltbWVybWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1IFJvYiBC
dWlzIDxidWlzQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDUgRXJpYyBTZWlkZWwgPGVy
aWNAd2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAxMCBEaXJrIFNjaHVsemUgPGtyaXRA
d2Via2l0Lm9yZz4KLSAqIENvcHlyaWdodCAoQykgMjAyMS0yMDIyIEFwcGxlIEluYy4gIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiRmlsdGVyRWZmZWN0Lmgi
Ci0jaW5jbHVkZSAiSW1hZ2UuaCIKLSNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgotI2luY2x1ZGUg
IlNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZS5oIgotI2luY2x1ZGUgIlNvdXJjZUltYWdlLmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSW1hZ2U7Ci1jbGFzcyBJbWFnZUJ1ZmZl
cjsKLQotY2xhc3MgRkVJbWFnZSBmaW5hbCA6IHB1YmxpYyBGaWx0ZXJFZmZlY3QgewotcHVibGlj
OgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8RkVJbWFnZT4gY3JlYXRlKFNvdXJjZUlt
YWdlJiYsIGNvbnN0IEZsb2F0UmVjdCYgc291cmNlSW1hZ2VSZWN0LCBjb25zdCBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvVmFsdWUmKTsKLQotICAgIGNvbnN0IFNvdXJjZUltYWdlJiBzb3VyY2VJbWFn
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlSW1hZ2U7IH0KLSAgICB2b2lkIHNldEltYWdlU291
cmNlKFNvdXJjZUltYWdlJiYgc291cmNlSW1hZ2UpIHsgbV9zb3VyY2VJbWFnZSA9IFdURk1vdmUo
c291cmNlSW1hZ2UpOyB9Ci0KLSAgICBGbG9hdFJlY3Qgc291cmNlSW1hZ2VSZWN0KCkgY29uc3Qg
eyByZXR1cm4gbV9zb3VyY2VJbWFnZVJlY3Q7IH0KLSAgICBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVj
dFJhdGlvVmFsdWUmIHByZXNlcnZlQXNwZWN0UmF0aW8oKSBjb25zdCB7IHJldHVybiBtX3ByZXNl
cnZlQXNwZWN0UmF0aW87IH0KLQotICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5j
b2RlKEVuY29kZXImKSBjb25zdDsKLSAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxSZWY8RkVJbWFnZT4+IGRlY29kZShEZWNvZGVyJik7Ci0KLXByaXZhdGU6
Ci0gICAgRkVJbWFnZShTb3VyY2VJbWFnZSYmLCBjb25zdCBGbG9hdFJlY3QmIHNvdXJjZUltYWdl
UmVjdCwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlJik7Ci0KLSAgICB1bnNpZ25l
ZCBudW1iZXJPZkVmZmVjdElucHV0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIDA7IH0KLQot
ICAgIC8vIEZFSW1hZ2UgcmVzdWx0cyBhcmUgYWx3YXlzIGluIERlc3RpbmF0aW9uQ29sb3JTcGFj
ZTo6U1JHQigpCi0gICAgdm9pZCBzZXRPcGVyYXRpbmdDb2xvclNwYWNlKGNvbnN0IERlc3RpbmF0
aW9uQ29sb3JTcGFjZSYpIG92ZXJyaWRlIHsgfQotCi0gICAgRmxvYXRSZWN0IGNhbGN1bGF0ZUlt
YWdlUmVjdChjb25zdCBGaWx0ZXImLCBjb25zdCBGaWx0ZXJJbWFnZVZlY3RvciYgaW5wdXRzLCBj
b25zdCBGbG9hdFJlY3QmIHByaW1pdGl2ZVN1YnJlZ2lvbikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAg
ICBzdGQ6OnVuaXF1ZV9wdHI8RmlsdGVyRWZmZWN0QXBwbGllcj4gY3JlYXRlU29mdHdhcmVBcHBs
aWVyKCkgY29uc3QgZmluYWw7Ci0KLSAgICBXVEY6OlRleHRTdHJlYW0mIGV4dGVybmFsUmVwcmVz
ZW50YXRpb24oV1RGOjpUZXh0U3RyZWFtJiwgRmlsdGVyUmVwcmVzZW50YXRpb24pIGNvbnN0IGZp
bmFsOwotCi0gICAgU291cmNlSW1hZ2UgbV9zb3VyY2VJbWFnZTsKLSAgICBGbG9hdFJlY3QgbV9z
b3VyY2VJbWFnZVJlY3Q7Ci0gICAgU1ZHUHJlc2VydmVBc3BlY3RSYXRpb1ZhbHVlIG1fcHJlc2Vy
dmVBc3BlY3RSYXRpbzsKLX07Ci0KLXRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Ci12b2lkIEZFSW1h
Z2U6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAotewotICAgIGVuY29kZXIgPDwgbV9z
b3VyY2VJbWFnZTsKLSAgICBlbmNvZGVyIDw8IG1fc291cmNlSW1hZ2VSZWN0OwotICAgIGVuY29k
ZXIgPDwgbV9wcmVzZXJ2ZUFzcGVjdFJhdGlvOwotfQotCi10ZW1wbGF0ZTxjbGFzcyBEZWNvZGVy
Pgotc3RkOjpvcHRpb25hbDxSZWY8RkVJbWFnZT4+IEZFSW1hZ2U6OmRlY29kZShEZWNvZGVyJiBk
ZWNvZGVyKQotewotICAgIHN0ZDo6b3B0aW9uYWw8U291cmNlSW1hZ2U+IHNvdXJjZUltYWdlOwot
ICAgIGRlY29kZXIgPj4gc291cmNlSW1hZ2U7Ci0gICAgaWYgKCFzb3VyY2VJbWFnZSkKLSAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBz
b3VyY2VJbWFnZVJlY3Q7Ci0gICAgZGVjb2RlciA+PiBzb3VyY2VJbWFnZVJlY3Q7Ci0gICAgaWYg
KCFzb3VyY2VJbWFnZVJlY3QpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBz
dGQ6Om9wdGlvbmFsPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW9WYWx1ZT4gcHJlc2VydmVBc3BlY3RS
YXRpbzsKLSAgICBkZWNvZGVyID4+IHByZXNlcnZlQXNwZWN0UmF0aW87Ci0gICAgaWYgKCFwcmVz
ZXJ2ZUFzcGVjdFJhdGlvKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAgcmV0
dXJuIEZFSW1hZ2U6OmNyZWF0ZShXVEZNb3ZlKCpzb3VyY2VJbWFnZSksICpzb3VyY2VJbWFnZVJl
Y3QsICpwcmVzZXJ2ZUFzcGVjdFJhdGlvKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQot
Ci1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0ZJTFRFUl9FRkZFQ1QoRkVJbWFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvRmlsdGVyUmVmZXJlbmNlLmgKaW5kZXggY2Y2YzAzYzY0ODBl
NjhjNmU0ZmJlZmNiYWM3YzcwNzQ3MWZkM2MyNy4uMjMxM2FmOWNjZWQ5ODFkMmI1N2Y3M2M2OWFk
OWE5Njg3NzExMjc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRmls
dGVyUmVmZXJlbmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRmlsdGVyUmVm
ZXJlbmNlLmgKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZFRHJvcFNoYWRv
dy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRkVGbG9vZC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRkVH
YXVzc2lhbkJsdXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ZFSW1hZ2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZFTWVyZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZFTW9ycGhvbG9neS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRkVPZmZzZXQuaD4KQEAgLTQ0LDcgKzQ1LDYgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0ZFVHVyYnVsZW5jZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsdGVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9GaWx0ZXJFZmZlY3RWZWN0b3IuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1NW
R0ZFSW1hZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NWR0ZpbHRlci5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvU291cmNlQWxwaGEuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NvdXJjZUdyYXBoaWMuaD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>