<?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>24924</bug_id>
          
          <creation_ts>2009-03-29 11:25:46 -0700</creation_ts>
          <short_desc>remove Document.h include of Attr.h and HTMLCollection.h, and NamedMappedAttrMap.h include of MappedAttribute.h</short_desc>
          <delta_ts>2009-05-04 11:01:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>115750</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-29 11:25:46 -0700</bug_when>
    <thetext>These would probably be a win for compile time and symbol sizes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>116045</commentid>
    <comment_count>1</comment_count>
      <attachid>29127</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-03-31 11:18:55 -0700</bug_when>
    <thetext>Created attachment 29127
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119804</commentid>
    <comment_count>2</comment_count>
      <attachid>29127</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-05-04 01:37:42 -0700</bug_when>
    <thetext>Comment on attachment 29127
patch

Difficult to review the copy + change of CollectionCache, so this is more of a Rubber Stamp than a review.  The concept looks sane, and I trust you.  rs=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>119858</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-05-04 11:01:13 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/43187</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>29127</attachid>
            <date>2009-03-31 11:18:55 -0700</date>
            <delta_ts>2009-05-04 01:37:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>FewerIncludesPatch.txt</filename>
            <type>text/plain</type>
            <size>149522</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkzIEBACisyMDA5LTAzLTMxICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBCdWcg
MjQ5MjQ6IHJlbW92ZSBEb2N1bWVudC5oIGluY2x1ZGUgb2YgQXR0ci5oIGFuZCBIVE1MQ29sbGVj
dGlvbi5oLAorICAgICAgICBhbmQgTmFtZWRNYXBwZWRBdHRyTWFwLmggaW5jbHVkZSBvZiBNYXBw
ZWRBdHRyaWJ1dGUuaAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjQ5MjQKKworICAgICAgICBNYWtlIGNvbXBpbGVzIGZhc3RlciwgYW5kIGRlYnVnZ2lu
ZyBpbmZvIHNtYWxsZXIuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbTogQWRkZWQgbmV3IHNv
dXJjZSBmaWxlcy4KKyAgICAgICAgKiBXZWJDb3JlLnBybzogRGl0dG8uCisgICAgICAgICogV2Vi
Q29yZS5zY29uczogRGl0dG8uCisgICAgICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3By
b2o6IERpdHRvLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
RGl0dG8uCisgICAgICAgICogV2ViQ29yZVNvdXJjZXMuYmtsOiBEaXR0by4KKworICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6dG9KUyk6IFVwZGF0ZWQgZm9yIG5ldyBjb2xsZWN0aW9uIHR5cGUgbmFtZXMuCisKKyAgICAg
ICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNyZWF0
ZUF0dHJpYnV0ZSk6IEFkZGVkLiBObyBsb25nZXIgaW5saW5lLgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OmltYWdlcyk6IFVwZGF0ZWQgZm9yIG5ldyBjb2xsZWN0aW9uIHR5cGUgbmFtZXMu
CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YXBwbGV0cyk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6RG9jdW1lbnQ6OmVtYmVkcyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9j
dW1lbnQ6OnBsdWdpbnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50OjpvYmpl
Y3RzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6c2NyaXB0cyk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmxpbmtzKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpEb2N1bWVudDo6Zm9ybXMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkRvY3Vt
ZW50OjphbmNob3JzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6YWxsKTog
RGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2luZG93TmFtZWRJdGVtcyk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmRvY3VtZW50TmFtZWRJdGVtcyk6IERp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5hbWVDb2xsZWN0aW9uSW5mbyk6IERp
dHRvLgorCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6IENoYW5nZWQgYXJvdW5kIGluY2x1ZGVz
IGFuZCBmb3J3YXJkIGRlY2xhcmF0aW9ucy4KKyAgICAgICAgVXBkYXRlZCBmb3IgY2hhbmdlcyB0
byBjb2xsZWN0aW9uIHR5cGVzLgorCisgICAgICAgICogZG9tL05hbWVkTWFwcGVkQXR0ck1hcC5o
OiBSZW1vdmVkIGluY2x1ZGUgb2YgTWFwcGVkQXR0cmlidXRlLmguCisKKyAgICAgICAgKiBodG1s
L0NvbGxlY3Rpb25DYWNoZS5jcHA6IENvcGllZCBmcm9tIFdlYkNvcmUvaHRtbC9IVE1MQ29sbGVj
dGlvbi5jcHAuCisgICAgICAgIENvbnRhaW5zIHRoZSBjbGFzcyB0aGF0IHVzZWQgdG8gYmUgSFRN
TENvbGxlY3Rpb246OkNvbGxlY3Rpb25JbmZvLgorICAgICAgICAqIGh0bWwvQ29sbGVjdGlvbkNh
Y2hlLmg6IENvcGllZCBmcm9tIFdlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5oLgorICAgICAg
ICBEaXR0by4KKworICAgICAgICAqIGh0bWwvQ29sbGVjdGlvblR5cGUuaDogQ29waWVkIGZyb20g
V2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmguCisgICAgICAgIEhhcyB0aGUgZW51bSB0aGF0
IHVzZWQgdG8gYmUgSFRNTENvbGxlY3Rpb246OlR5cGUuCisKKyAgICAgICAgKiBodG1sL0hUTUxD
b2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxDb2xsZWN0aW9uOjpIVE1MQ29s
bGVjdGlvbik6IFVwZGF0ZSBmb3IgY29sbGVjdGlvbiB0eXBlIGNoYW5nZS4KKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxDb2xsZWN0aW9uOjpjcmVhdGUpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxDb2xsZWN0aW9uOjpyZXNldENvbGxlY3Rpb25JbmZvKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MQ29sbGVjdGlvbjo6aXRlbUFmdGVyKTogRGl0dG8uCisgICAgICAgICogaHRt
bC9IVE1MQ29sbGVjdGlvbi5oOiBEaXR0by4KKworICAgICAgICAqIGh0bWwvSFRNTEVsZW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEVsZW1lbnQ6OmNoaWxkcmVuKTogVXBkYXRlZCBm
b3IgbmV3IGNvbGxlY3Rpb24gdHlwZSBuYW1lcy4KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtQ29s
bGVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbGxlY3Rpb246OmZvcm1D
b2xsZWN0aW9uSW5mbyk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db2xsZWN0
aW9uOjpIVE1MRm9ybUNvbGxlY3Rpb24pOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxGb3Jt
Q29sbGVjdGlvbi5oOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVudC5oOiBE
aXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxNYXBFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNYXBFbGVtZW50OjphcmVhcyk6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTE5h
bWVDb2xsZWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxOYW1lQ29sbGVjdGlvbjo6
SFRNTE5hbWVDb2xsZWN0aW9uKTogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MTmFtZUNvbGxl
Y3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxOYW1lQ29sbGVjdGlvbjo6Y3JlYXRlKTog
RGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OmNvbGxlY3Rpb25JbmZvKTogRGl0dG8uCisgICAgICAg
ICogaHRtbC9IVE1MVGFibGVFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJs
ZUVsZW1lbnQ6OnRCb2RpZXMpOkRpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFRhYmxlUm93RWxl
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVGFibGVSb3dFbGVtZW50OjpjZWxscyk6
RGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpIVE1MVGFibGVSb3dzQ29sbGVjdGlvbjo6SFRNTFRhYmxlUm93c0NvbGxl
Y3Rpb24pOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Ojpyb3dzKTogRGl0
dG8uCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwOiBBZGRlZCBu
ZXdseS1uZWVkZWQgaW5jbHVkZXMuCisgICAgICAgICogYmluZGluZ3MvanMvSlNIVE1MRnJhbWVT
ZXRFbGVtZW50Q3VzdG9tLmNwcDogRGl0dG8uCisgICAgICAgICogY3NzL0NTU1N0eWxlU2VsZWN0
b3IuY3BwOiBEaXR0by4KKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6IERpdHRvLgorICAgICAg
ICAqIGRvbS9JbnB1dEVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBkb20vTmFtZWRBdHRy
TWFwLmNwcDogRGl0dG8uCisgICAgICAgICogZG9tL05hbWVkTWFwcGVkQXR0ck1hcC5jcHA6IERp
dHRvLgorICAgICAgICAqIGRvbS9Ob2RlLmNwcDogRGl0dG8uCisgICAgICAgICogZG9tL1N0eWxl
ZEVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBkb20vU3R5bGVkRWxlbWVudC5oOiBEaXR0
by4KKyAgICAgICAgKiBlZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5kLmNwcDogRGl0dG8uCisgICAg
ICAgICogZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcDogRGl0dG8uCisgICAgICAg
ICogZWRpdGluZy9FZGl0b3IuY3BwOiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNv
bW1hbmQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFy
YXRvckNvbW1hbmQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBlZGl0aW5nL1JlcGxhY2VTZWxlY3Rp
b25Db21tYW5kLmNwcDogRGl0dG8uCisgICAgICAgICogZWRpdGluZy9tYXJrdXAuY3BwOiBEaXR0
by4KKyAgICAgICAgKiBodG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHA6IERpdHRvLgor
ICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBo
dG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MQXJl
YUVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxCUkVsZW1lbnQuY3BwOiBE
aXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxCYXNlRWxlbWVudC5jcHA6IERpdHRvLgorICAgICAg
ICAqIGh0bWwvSFRNTEJvZHlFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1M
QnV0dG9uRWxlbWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTENhbnZhc0VsZW1l
bnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxEaXZFbGVtZW50LmNwcDogRGl0dG8u
CisgICAgICAgICogaHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICog
aHRtbC9IVE1MRm9udEVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxGb3Jt
Q29udHJvbEVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxGb3JtRWxlbWVu
dC5jcHA6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHA6IERpdHRv
LgorICAgICAgICAqIGh0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwOiBEaXR0by4KKyAgICAg
ICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1s
L0hUTUxIUkVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVt
ZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDogRGl0
dG8uCisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAg
ICogaHRtbC9IVE1MSXNJbmRleEVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hU
TUxLZXlnZW5FbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MTElFbGVtZW50
LmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwOiBEaXR0by4K
KyAgICAgICAgKiBodG1sL0hUTUxNYXJxdWVlRWxlbWVudC5jcHA6IERpdHRvLgorICAgICAgICAq
IGh0bWwvSFRNTE1ldGFFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MT0xp
c3RFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5j
cHA6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTE9wdGlvbkVsZW1lbnQuY3BwOiBEaXR0by4K
KyAgICAgICAgKiBodG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAg
ICogaHRtbC9IVE1MUGFyYW1FbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1M
UGx1Z0luRWxlbWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFByZUVsZW1lbnQu
Y3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcDogRGl0dG8u
CisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHA6IERpdHRvLgorICAgICAgICAq
IGh0bWwvSFRNTFN0eWxlRWxlbWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFRh
YmxlQ2FwdGlvbkVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxUYWJsZUNl
bGxFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MVGFibGVDb2xFbGVtZW50
LmNwcDogRGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVudC5jcHA6IERp
dHRvLgorICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6IERpdHRvLgorICAg
ICAgICAqIGh0bWwvSFRNTFRva2VuaXplci5jcHA6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRN
TFVMaXN0RWxlbWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFZpZGVvRWxlbWVu
dC5jcHA6IERpdHRvLgorICAgICAgICAqIGh0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHA6
IERpdHRvLgorICAgICAgICAqIGxvYWRlci9JbWFnZURvY3VtZW50LmNwcDogRGl0dG8uCisgICAg
ICAgICogcGFnZS9GcmFtZS5jcHA6IERpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJU
cmVlQXNUZXh0LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0FFbGVtZW50LmNwcDogRGl0
dG8uCisgICAgICAgICogc3ZnL1NWR0FuaW1hdGVNb3Rpb25FbGVtZW50LmNwcDogRGl0dG8uCisg
ICAgICAgICogc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcDogRGl0dG8uCisgICAg
ICAgICogc3ZnL1NWR0FuaW1hdGlvbkVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcv
U1ZHQ2lyY2xlRWxlbWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdDbGlwUGF0aEVs
ZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHQ3Vyc29yRWxlbWVudC5jcHA6IERp
dHRvLgorICAgICAgICAqIHN2Zy9TVkdFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3Zn
L1NWR0VsbGlwc2VFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHRml0VG9WaWV3
Qm94LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHA6IERp
dHRvLgorICAgICAgICAqIHN2Zy9TVkdGb250RmFjZVVyaUVsZW1lbnQuY3BwOiBEaXR0by4KKyAg
ICAgICAgKiBzdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAg
KiBzdmcvU1ZHR2x5cGhFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0dyYWRp
ZW50RWxlbWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdJbWFnZUVsZW1lbnQuY3Bw
OiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHTGFuZ1NwYWNlLmNwcDogRGl0dG8uCisgICAgICAg
ICogc3ZnL1NWR0xpbmVFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR0xpbmVh
ckdyYWRpZW50RWxlbWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJFbGVt
ZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50LmNwcDogRGl0dG8u
CisgICAgICAgICogc3ZnL1NWR1BhdGhFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3Zn
L1NWR1BhdHRlcm5FbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR1BvbHlFbGVt
ZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5j
cHA6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdSZWN0RWxlbWVudC5jcHA6IERpdHRvLgorICAg
ICAgICAqIHN2Zy9TVkdTVkdFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR1Nj
cmlwdEVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHU3RvcEVsZW1lbnQuY3Bw
OiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHU3R5bGVFbGVtZW50LmNwcDogRGl0dG8uCisgICAg
ICAgICogc3ZnL1NWR1N0eWxlZEVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZH
U3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZH
VGVzdHMuY3BwOiBEaXR0by4KKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR1RleHRFbGVtZW50LmNwcDogRGl0dG8uCisgICAg
ICAgICogc3ZnL1NWR1RleHRQYXRoRWxlbWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIHN2Zy9T
VkdUZXh0UG9zaXRpb25pbmdFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAgICogc3ZnL1NWR1VS
SVJlZmVyZW5jZS5jcHA6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdVc2VFbGVtZW50LmNwcDog
RGl0dG8uCisgICAgICAgICogc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcDogRGl0dG8uCisgICAgICAg
ICogc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHA6IERpdHRvLgorICAgICAgICAqIHht
bC9YUGF0aFN0ZXAuY3BwOiBEaXR0by4KKwogMjAwOS0wMy0zMSAgUmFmYWVsIFdlaW5zdGVpbiAg
PHJhZmFlbHdAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVs
LgpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0J
KHdvcmtpbmcgY29weSkKQEAgLTgzOCw2ICs4MzgsOSBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAog
CVdlYkNvcmUvaHRtbC9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaCBcCiAJV2ViQ29yZS9odG1s
L0NhbnZhc1N0eWxlLmNwcCBcCiAJV2ViQ29yZS9odG1sL0NhbnZhc1N0eWxlLmggXAorCVdlYkNv
cmUvaHRtbC9Db2xsZWN0aW9uQ2FjaGUuY3BwIFwKKwlXZWJDb3JlL2h0bWwvQ29sbGVjdGlvbkNh
Y2hlLmggXAorCVdlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oIFwKIAlXZWJDb3JlL2h0bWwv
RmlsZS5jcHAgXAogCVdlYkNvcmUvaHRtbC9GaWxlLmggXAogCVdlYkNvcmUvaHRtbC9GaWxlTGlz
dC5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBybwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L1dlYkNvcmUucHJvCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdv
cmtpbmcgY29weSkKQEAgLTcwNiw2ICs3MDYsNyBAQCBTT1VSQ0VTICs9IFwKICAgICBodG1sL0Nh
bnZhc1BpeGVsQXJyYXkuY3BwIFwKICAgICBodG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5j
cHAgXAogICAgIGh0bWwvQ2FudmFzU3R5bGUuY3BwIFwKKyAgICBodG1sL0NvbGxlY3Rpb25DYWNo
ZS5jcHAgXAogICAgIGh0bWwvRmlsZS5jcHAgXAogICAgIGh0bWwvRmlsZUxpc3QuY3BwIFwKICAg
ICBodG1sL0Zvcm1EYXRhTGlzdC5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLnNjb25zCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5zY29ucwkocmV2aXNpb24gNDIxMzIpCisrKyBX
ZWJDb3JlL1dlYkNvcmUuc2NvbnMJKHdvcmtpbmcgY29weSkKQEAgLTIwNSw2ICsyMDUsNyBAQCBz
b3VyY2VzWydodG1sJ10gPSBbCiAgICAgJ2h0bWwvQ2FudmFzUGF0dGVybi5jcHAnLAogICAgICdo
dG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAnLAogICAgICdodG1sL0NhbnZhc1N0eWxl
LmNwcCcsCisgICAgJ2h0bWwvQ29sbGVjdGlvbkNhY2hlLmNwcCcsCiAgICAgJ2h0bWwvRmlsZS5j
cHAnLAogICAgICdodG1sL0ZpbGVMaXN0LmNwcCcsCiAgICAgJ2h0bWwvRm9ybURhdGFMaXN0LmNw
cCcsCkluZGV4OiBXZWJDb3JlL1dlYkNvcmVTb3VyY2VzLmJrbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL1dlYkNvcmVTb3VyY2VzLmJrbAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL1dlYkNv
cmVTb3VyY2VzLmJrbAkod29ya2luZyBjb3B5KQpAQCAtNTM5LDYgKzUzOSw3IEBAIFRoaXMgZmls
ZSBjb250YWlucyB0aGUgbGlzdCBvZiBmaWxlcyBuZWUKICAgICAgICAgaHRtbC9DYW52YXNQaXhl
bEFycmF5LmNwcAogICAgICAgICBodG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKICAg
ICAgICAgaHRtbC9DYW52YXNTdHlsZS5jcHAKKyAgICAgICAgaHRtbC9Db2xsZWN0aW9uQ2FjaGUu
Y3BwCiAgICAgICAgIGh0bWwvRmlsZS5jcHAKICAgICAgICAgaHRtbC9GaWxlTGlzdC5jcHAKICAg
ICAgICAgaHRtbC9Gb3JtRGF0YUxpc3QuY3BwCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvagkod29ya2luZyBjb3B5KQpAQCAtMTI1OTAsNiArMTI1OTAsMjYgQEAKIAkJ
CQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxD
b2xsZWN0aW9uQ2FjaGUuY3BwIg0KKwkJCQk+DQorCQkJCTxGaWxlQ29uZmlndXJhdGlvbg0KKwkJ
CQkJTmFtZT0iUmVsZWFzZV9QR098V2luMzIiDQorCQkJCQk+DQorCQkJCQk8VG9vbA0KKwkJCQkJ
CU5hbWU9IlZDQ0xDb21waWxlclRvb2wiDQorCQkJCQkJV2hvbGVQcm9ncmFtT3B0aW1pemF0aW9u
PSJ0cnVlIg0KKwkJCQkJLz4NCisJCQkJPC9GaWxlQ29uZmlndXJhdGlvbj4NCisJCQk8L0ZpbGU+
DQorCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXENvbGxlY3Rpb25DYWNoZS5o
Ig0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5c
aHRtbFxDb2xsZWN0aW9uVHlwZS5oIg0KKwkJCQk+DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQog
CQkJCVJlbGF0aXZlUGF0aD0iLi5caHRtbFxGaWxlLmNwcCINCiAJCQkJPg0KIAkJCQk8RmlsZUNv
bmZpZ3VyYXRpb24NCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMjAxMCw2ICsyMDEwLDkgQEAKIAkJOTNDMDlB
N0YwQjA2NEVFRjAwNUFCRDREIC8qIEV2ZW50SGFuZGxlck1hYy5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQzA5QTdFMEIwNjRFRUYwMDVBQkQ0RCAv
KiBFdmVudEhhbmRsZXJNYWMubW0gKi87IH07CiAJCTkzQzA5QTgxMEIwNjRGMDAwMDVBQkQ0RCAv
KiBFdmVudEhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTNDMDlBODAwQjA2NEYwMDAwNUFCRDREIC8qIEV2ZW50SGFuZGxlci5jcHAgKi87
IH07CiAJCTkzQzA5Qzg2MEIwNjU3QUEwMDVBQkQ0RCAvKiBTY3JvbGxUeXBlcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDMDlDODUwQjA2NTdBQTAw
NUFCRDREIC8qIFNjcm9sbFR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJOTNDNDQxRUYwRjgxM0ExQTAwQzFBNjM0IC8qIENvbGxlY3Rpb25D
YWNoZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0M0NDFFRDBGODEzQTFBMDBDMUE2MzQgLyogQ29sbGVjdGlvbkNhY2hlLmNwcCAqLzsgfTsKKwkJ
OTNDNDQxRjAwRjgxM0ExQTAwQzFBNjM0IC8qIENvbGxlY3Rpb25DYWNoZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTNDNDQxRUUwRjgxM0ExQTAwQzFB
NjM0IC8qIENvbGxlY3Rpb25DYWNoZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTkzQzQ0MjAwMEY4MTNBRTEwMEMxQTYzNCAvKiBDb2xsZWN0aW9u
VHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTND
NDQxRkYwRjgxM0FFMTAwQzFBNjM0IC8qIENvbGxlY3Rpb25UeXBlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNDODQxRjgwOUNFODU1QzAwREZG
NUU1IC8qIERPTUltcGxlbWVudGF0aW9uRnJvbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQzg0MUY3MDlDRTg1NUMwMERGRjVFNSAvKiBET01JbXBs
ZW1lbnRhdGlvbkZyb250LmggKi87IH07CiAJCTkzQzg0MUZGMDlDRTg1ODMwMERGRjVFNSAvKiBE
T01JbXBsZW1lbnRhdGlvbkZyb250LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQzg0MUZFMDlDRTg1ODMwMERGRjVFNSAvKiBET01JbXBsZW1lbnRh
dGlvbkZyb250LmNwcCAqLzsgfTsKIAkJOTNDQ0YwMjcwQUY2QzUyOTAwMDE4RTg5IC8qIE5hdmln
YXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkzQ0NGMDI2MEFGNkM1MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTY5MTIsNiArNjkx
NSw5IEBACiAJCTkzQzA5QTdFMEIwNjRFRUYwMDVBQkQ0RCAvKiBFdmVudEhhbmRsZXJNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBFdmVudEhhbmRsZXJNYWMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQzA5QTgwMEIwNjRGMDAwMDVBQkQ0
RCAvKiBFdmVudEhhbmRsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRXZlbnRIYW5kbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNDMDlD
ODUwQjA2NTdBQTAwNUFCRDREIC8qIFNjcm9sbFR5cGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFNjcm9sbFR5cGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzQzQ0MUVEMEY4MTNBMUEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2FjaGUuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29sbGVjdGlvbkNhY2hlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNDNDQxRUUwRjgxM0ExQTAwQzFBNjM0IC8qIENvbGxl
Y3Rpb25DYWNoZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0aW9u
Q2FjaGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNDNDQxRkYwRjgxM0FFMTAw
QzFBNjM0IC8qIENvbGxlY3Rpb25UeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IENvbGxlY3Rpb25UeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQzg0
MUY3MDlDRTg1NUMwMERGRjVFNSAvKiBET01JbXBsZW1lbnRhdGlvbkZyb250LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERPTUltcGxlbWVudGF0aW9uRnJvbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNDODQxRkUwOUNFODU4MzAwREZGNUU1IC8qIERPTUlt
cGxlbWVudGF0aW9uRnJvbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gRE9NSW1wbGVtZW50YXRpb25Gcm9udC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTkzQ0E0Qzk5MDlERjkzRkEwMERGODY3NyAvKiBodG1sNC5jc3MgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0
OyBwYXRoID0gaHRtbDQuY3NzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTE1MDks
NiArMTE1MTUsOSBAQAogCQkJCTkzMENBQUQ2MDlDNDk1QjYwMDIyOUMwNCAvKiBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkQuaWRsICovLAogCQkJCTkzRUVDMjcwMDlDMzIxODgwMEM1MTVEMSAvKiBD
YW52YXNTdHlsZS5jcHAgKi8sCiAJCQkJOTNFRUMxRUYwOUMyODc3NzAwQzUxNUQxIC8qIENhbnZh
c1N0eWxlLmggKi8sCisJCQkJOTNDNDQxRUQwRjgxM0ExQTAwQzFBNjM0IC8qIENvbGxlY3Rpb25D
YWNoZS5jcHAgKi8sCisJCQkJOTNDNDQxRUUwRjgxM0ExQTAwQzFBNjM0IC8qIENvbGxlY3Rpb25D
YWNoZS5oICovLAorCQkJCTkzQzQ0MUZGMEY4MTNBRTEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uVHlw
ZS5oICovLAogCQkJCUJDREJCOENDMEUwODk1ODQwMEM2MEZGNiAvKiBGaWxlLmNwcCAqLywKIAkJ
CQlCQ0RCQjhDQjBFMDg5NTg0MDBDNjBGRjYgLyogRmlsZS5oICovLAogCQkJCUJDMTg4MUQ5MEUw
OEM0RUQwMDA0OEMxMyAvKiBGaWxlLmlkbCAqLywKQEAgLTE2Nzk4LDYgKzE2ODA3LDggQEAKIAkJ
CQkxQzYzQTI0ODBGNzE2NDY2MDBDMDlENUEgLyogUnVuTG9vcFRpbWVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MzVGNDU0MzBGN0MzQjVGMDBEN0MxRkIgLyogSlNMYXp5RXZlbnRMaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGOTI1NDMwRjdFRjVCODAwN0UzN0M5IC8qIENoZWNrZWRS
YWRpb0J1dHRvbnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQzQ0MUYwMEY4MTNBMUEwMEMxQTYz
NCAvKiBDb2xsZWN0aW9uQ2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCTkzQzQ0MjAwMEY4MTNB
RTEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uVHlwZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJ
cnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC0xODgwNSw2
ICsxODgxNiw3IEBACiAJCQkJMUM2M0EyNDkwRjcxNjQ2NjAwQzA5RDVBIC8qIFJ1bkxvb3BUaW1l
ckNGLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzNUY0NTQyMEY3QzNCNUYwMEQ3QzFGQiAvKiBK
U0xhenlFdmVudExpc3RlbmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjkyNTQ0MEY3RUY1
QjgwMDdFMzdDOSAvKiBDaGVja2VkUmFkaW9CdXR0b25zLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTkzQzQ0MUVGMEY4MTNBMUEwMEMxQTYzNCAvKiBDb2xsZWN0aW9uQ2FjaGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7
CiAJCX07CkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCShyZXZp
c2lvbiA0MjEzMikKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkZsb2F0UmVjdC5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgorI2luY2x1
ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50LmgiCiAjaW5jbHVk
ZSAiSW5zcGVjdG9yQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkpTQXVkaW9Db25zdHJ1Y3Rvci5o
IgpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20u
Y3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVj
dGlvbkN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzMywxMCArMTMzLDEwIEBAIEpTVmFs
dWVQdHIgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEhUTUxDb2wKICAgICAgICAgcmV0dXJuIHdyYXBw
ZXI7CiAKICAgICBzd2l0Y2ggKGNvbGxlY3Rpb24tPnR5cGUoKSkgewotICAgICAgICBjYXNlIEhU
TUxDb2xsZWN0aW9uOjpTZWxlY3RPcHRpb25zOgorICAgICAgICBjYXNlIFNlbGVjdE9wdGlvbnM6
CiAgICAgICAgICAgICB3cmFwcGVyID0gQ1JFQVRFX0RPTV9PQkpFQ1RfV1JBUFBFUihleGVjLCBI
VE1MT3B0aW9uc0NvbGxlY3Rpb24sIGNvbGxlY3Rpb24pOwogICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgSFRNTENvbGxlY3Rpb246OkRvY0FsbDoKKyAgICAgICAgY2FzZSBEb2NBbGw6
CiAgICAgICAgICAgICB0eXBlZGVmIEhUTUxDb2xsZWN0aW9uIEhUTUxBbGxDb2xsZWN0aW9uOwog
ICAgICAgICAgICAgd3JhcHBlciA9IENSRUFURV9ET01fT0JKRUNUX1dSQVBQRVIoZXhlYywgSFRN
TEFsbENvbGxlY3Rpb24sIGNvbGxlY3Rpb24pOwogICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBX
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20u
Y3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRnJhbWVT
ZXRFbGVtZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2lu
Y2x1ZGUgIkpTSFRNTEZyYW1lU2V0RWxlbWVudC5oIgogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
KyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MRnJhbWVTZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVz
LmgiCkluZGV4OiBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBX
ZWJDb3JlL2Nzcy9DU1NTdHlsZVNlbGVjdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjIsNiAr
NjIsNyBAQAogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUZXh0QXJlYUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJMaW5rSGFzaC5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0
ZS5oIgogI2luY2x1ZGUgIk1hdHJpeFRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIk1h
dHJpeDNEVHJhbnNmb3JtT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAiTWVkaWFMaXN0LmgiCkluZGV4
OiBXZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIkRvY3VtZW50LmgiCiAKKyNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQW5pbWF0
aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJD
REFUQVNlY3Rpb24uaCIKQEAgLTYwLDYgKzYxLDcgQEAKICNpbmNsdWRlICJIVE1MQW5jaG9yRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDYW52
YXNFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRlICJIVE1M
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3RvcnkuaCIKICNpbmNsdWRlICJI
VE1MRnJhbWVPd25lckVsZW1lbnQuaCIKQEAgLTc5LDYgKzgxLDcgQEAKICNpbmNsdWRlICJJbnNw
ZWN0b3JDb250cm9sbGVyLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJNZXNz
YWdlRXZlbnQuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTW91c2VFdmVu
dFdpdGhIaXRUZXN0UmVzdWx0cy5oIgpAQCAtMzc0Nyw2ICszNzUwLDExIEBAIERvY3VtZW50ICpE
b2N1bWVudDo6dG9wRG9jdW1lbnQoKSBjb25zdAogICAgIHJldHVybiBkb2M7CiB9CiAKK1Bhc3NS
ZWZQdHI8QXR0cj4gRG9jdW1lbnQ6OmNyZWF0ZUF0dHJpYnV0ZShjb25zdCBTdHJpbmcmIG5hbWUs
IEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIHJldHVybiBjcmVhdGVBdHRyaWJ1dGVOUyhTdHJp
bmcoKSwgbmFtZSwgZWMsIHRydWUpOworfQorCiBQYXNzUmVmUHRyPEF0dHI+IERvY3VtZW50Ojpj
cmVhdGVBdHRyaWJ1dGVOUyhjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgU3RyaW5n
JiBxdWFsaWZpZWROYW1lLCBFeGNlcHRpb25Db2RlJiBlYywgYm9vbCBzaG91bGRJZ25vcmVOYW1l
c3BhY2VDaGVja3MpCiB7CiAgICAgU3RyaW5nIHByZWZpeCwgbG9jYWxOYW1lOwpAQCAtMzc4Niw3
NSArMzc5NCw3NSBAQCBTVkdEb2N1bWVudEV4dGVuc2lvbnMqIERvY3VtZW50OjphY2Nlc3NTCiAK
IFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjppbWFnZXMoKQogewotICAgIHJl
dHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIEhUTUxDb2xsZWN0aW9uOjpEb2NJbWFn
ZXMpOworICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIERvY0ltYWdlcyk7
CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjphcHBsZXRzKCkKIHsK
LSAgICByZXR1cm4gSFRNTENvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBIVE1MQ29sbGVjdGlvbjo6
RG9jQXBwbGV0cyk7CisgICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgRG9j
QXBwbGV0cyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50OjplbWJl
ZHMoKQogewotICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIEhUTUxDb2xs
ZWN0aW9uOjpEb2NFbWJlZHMpOworICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRo
aXMsIERvY0VtYmVkcyk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERvY3VtZW50
OjpwbHVnaW5zKCkKIHsKICAgICAvLyBUaGlzIGlzIGFuIGFsaWFzIGZvciBlbWJlZHMoKSByZXF1
aXJlZCBmb3IgdGhlIEpTIERPTSBiaW5kaW5ncy4KLSAgICByZXR1cm4gSFRNTENvbGxlY3Rpb246
OmNyZWF0ZSh0aGlzLCBIVE1MQ29sbGVjdGlvbjo6RG9jRW1iZWRzKTsKKyAgICByZXR1cm4gSFRN
TENvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBEb2NFbWJlZHMpOwogfQogCiBQYXNzUmVmUHRyPEhU
TUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6b2JqZWN0cygpCiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xs
ZWN0aW9uOjpjcmVhdGUodGhpcywgSFRNTENvbGxlY3Rpb246OkRvY09iamVjdHMpOworICAgIHJl
dHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIERvY09iamVjdHMpOwogfQogCiBQYXNz
UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6c2NyaXB0cygpCiB7Ci0gICAgcmV0dXJu
IEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgSFRNTENvbGxlY3Rpb246OkRvY1NjcmlwdHMp
OworICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIERvY1NjcmlwdHMpOwog
fQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6bGlua3MoKQogewotICAg
IHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIEhUTUxDb2xsZWN0aW9uOjpEb2NM
aW5rcyk7CisgICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jTGlua3Mp
OwogfQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6Zm9ybXMoKQogewot
ICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIEhUTUxDb2xsZWN0aW9uOjpE
b2NGb3Jtcyk7CisgICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgRG9jRm9y
bXMpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6YW5jaG9ycygp
CiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgSFRNTENvbGxlY3Rp
b246OkRvY0FuY2hvcnMpOworICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMs
IERvY0FuY2hvcnMpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6
YWxsKCkKIHsKLSAgICByZXR1cm4gSFRNTENvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBIVE1MQ29s
bGVjdGlvbjo6RG9jQWxsKTsKKyAgICByZXR1cm4gSFRNTENvbGxlY3Rpb246OmNyZWF0ZSh0aGlz
LCBEb2NBbGwpOwogfQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBEb2N1bWVudDo6d2lu
ZG93TmFtZWRJdGVtcyhjb25zdCBTdHJpbmcgJm5hbWUpCiB7Ci0gICAgcmV0dXJuIEhUTUxOYW1l
Q29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIEhUTUxDb2xsZWN0aW9uOjpXaW5kb3dOYW1lZEl0ZW1z
LCBuYW1lKTsKKyAgICByZXR1cm4gSFRNTE5hbWVDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgV2lu
ZG93TmFtZWRJdGVtcywgbmFtZSk7CiB9CiAKIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IERv
Y3VtZW50Ojpkb2N1bWVudE5hbWVkSXRlbXMoY29uc3QgU3RyaW5nICZuYW1lKQogewotICAgIHJl
dHVybiBIVE1MTmFtZUNvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBIVE1MQ29sbGVjdGlvbjo6RG9j
dW1lbnROYW1lZEl0ZW1zLCBuYW1lKTsKKyAgICByZXR1cm4gSFRNTE5hbWVDb2xsZWN0aW9uOjpj
cmVhdGUodGhpcywgRG9jdW1lbnROYW1lZEl0ZW1zLCBuYW1lKTsKIH0KIAotSFRNTENvbGxlY3Rp
b246OkNvbGxlY3Rpb25JbmZvKiBEb2N1bWVudDo6bmFtZUNvbGxlY3Rpb25JbmZvKEhUTUxDb2xs
ZWN0aW9uOjpUeXBlIHR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKK0NvbGxlY3Rpb25D
YWNoZSogRG9jdW1lbnQ6Om5hbWVDb2xsZWN0aW9uSW5mbyhDb2xsZWN0aW9uVHlwZSB0eXBlLCBj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCiB7Ci0gICAgQVNTRVJUKHR5cGUgPj0gSFRNTENvbGxl
Y3Rpb246OkZpcnN0TmFtZWREb2N1bWVudENhY2hlZFR5cGUpOwotICAgIHVuc2lnbmVkIGluZGV4
ID0gdHlwZSAtIEhUTUxDb2xsZWN0aW9uOjpGaXJzdE5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlOwot
ICAgIEFTU0VSVChpbmRleCA8IEhUTUxDb2xsZWN0aW9uOjpOdW1OYW1lZERvY3VtZW50Q2FjaGVk
VHlwZXMpOworICAgIEFTU0VSVCh0eXBlID49IEZpcnN0TmFtZWREb2N1bWVudENhY2hlZFR5cGUp
OworICAgIHVuc2lnbmVkIGluZGV4ID0gdHlwZSAtIEZpcnN0TmFtZWREb2N1bWVudENhY2hlZFR5
cGU7CisgICAgQVNTRVJUKGluZGV4IDwgTnVtTmFtZWREb2N1bWVudENhY2hlZFR5cGVzKTsKIAog
ICAgIE5hbWVkQ29sbGVjdGlvbk1hcCYgbWFwID0gbV9uYW1lQ29sbGVjdGlvbkluZm9baW5kZXhd
OwogICAgIE5hbWVkQ29sbGVjdGlvbk1hcDo6aXRlcmF0b3IgaXRlciA9IG1hcC5maW5kKG5hbWUu
aW1wbCgpKTsKICAgICBpZiAoaXRlciA9PSBtYXAuZW5kKCkpCi0gICAgICAgIGl0ZXIgPSBtYXAu
YWRkKG5hbWUuaW1wbCgpLCBuZXcgSFRNTENvbGxlY3Rpb246OkNvbGxlY3Rpb25JbmZvKS5maXJz
dDsKKyAgICAgICAgaXRlciA9IG1hcC5hZGQobmFtZS5pbXBsKCksIG5ldyBDb2xsZWN0aW9uQ2Fj
aGUpLmZpcnN0OwogICAgIHJldHVybiBpdGVyLT5zZWNvbmQ7CiB9CiAKSW5kZXg6IFdlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vRG9jdW1lbnQuaAkocmV2
aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2RvbS9Eb2N1bWVudC5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yNiwxMSArMjYsMTIgQEAKICNpZm5kZWYgRG9jdW1lbnRfaAogI2RlZmluZSBEb2N1bWVudF9o
CiAKLSNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiQ2hlY2tlZFJhZGlvQnV0dG9ucy5oIgor
I2luY2x1ZGUgIkNvbnRhaW5lck5vZGUuaCIKKyNpbmNsdWRlICJDb2xsZWN0aW9uQ2FjaGUuaCIK
KyNpbmNsdWRlICJDb2xsZWN0aW9uVHlwZS5oIgogI2luY2x1ZGUgIkNvbG9yLmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnRNYXJrZXIuaCIKLSNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1
ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1
ZGUgPHd0Zi9IYXNoQ291bnRlZFNldC5oPgpAQCAtNDYsNiArNDcsNyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKKyAgICBjbGFzcyBBdHRyOwogICAgIGNsYXNzIEFYT2JqZWN0Q2FjaGU7CiAg
ICAgY2xhc3MgQ0RBVEFTZWN0aW9uOwogICAgIGNsYXNzIENhY2hlZENTU1N0eWxlU2hlZXQ7CkBA
IC03Myw2ICs3NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBjbGFzcyBGcmFtZVZpZXc7
CiAgICAgY2xhc3MgSGl0VGVzdFJlcXVlc3Q7CiAgICAgY2xhc3MgSFRNTENhbnZhc0VsZW1lbnQ7
CisgICAgY2xhc3MgSFRNTENvbGxlY3Rpb247CiAgICAgY2xhc3MgSFRNTERvY3VtZW50OwogICAg
IGNsYXNzIEhUTUxFbGVtZW50OwogICAgIGNsYXNzIEhUTUxGb3JtRWxlbWVudDsKQEAgLTIyNCw3
ICsyMjcsNyBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxDb21tZW50PiBjcmVhdGVDb21tZW50
KGNvbnN0IFN0cmluZyYgZGF0YSk7CiAgICAgUGFzc1JlZlB0cjxDREFUQVNlY3Rpb24+IGNyZWF0
ZUNEQVRBU2VjdGlvbihjb25zdCBTdHJpbmcmIGRhdGEsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBQ
YXNzUmVmUHRyPFByb2Nlc3NpbmdJbnN0cnVjdGlvbj4gY3JlYXRlUHJvY2Vzc2luZ0luc3RydWN0
aW9uKGNvbnN0IFN0cmluZyYgdGFyZ2V0LCBjb25zdCBTdHJpbmcmIGRhdGEsIEV4Y2VwdGlvbkNv
ZGUmKTsKLSAgICBQYXNzUmVmUHRyPEF0dHI+IGNyZWF0ZUF0dHJpYnV0ZShjb25zdCBTdHJpbmcm
IG5hbWUsIEV4Y2VwdGlvbkNvZGUmIGVjKSB7IHJldHVybiBjcmVhdGVBdHRyaWJ1dGVOUyhTdHJp
bmcoKSwgbmFtZSwgZWMsIHRydWUpOyB9CisgICAgUGFzc1JlZlB0cjxBdHRyPiBjcmVhdGVBdHRy
aWJ1dGUoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAgICAgUGFzc1JlZlB0
cjxBdHRyPiBjcmVhdGVBdHRyaWJ1dGVOUyhjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29u
c3QgU3RyaW5nJiBxdWFsaWZpZWROYW1lLCBFeGNlcHRpb25Db2RlJiwgYm9vbCBzaG91bGRJZ25v
cmVOYW1lc3BhY2VDaGVja3MgPSBmYWxzZSk7CiAgICAgUGFzc1JlZlB0cjxFbnRpdHlSZWZlcmVu
Y2U+IGNyZWF0ZUVudGl0eVJlZmVyZW5jZShjb25zdCBTdHJpbmcmIG5hbWUsIEV4Y2VwdGlvbkNv
ZGUmKTsKICAgICBQYXNzUmVmUHRyPE5vZGU+IGltcG9ydE5vZGUoTm9kZSogaW1wb3J0ZWROb2Rl
LCBib29sIGRlZXAsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTI4NCwxNSArMjg3LDE1IEBAIHB1Ymxp
YzoKICAgICAvLyBxdWlya3MgbW9kZSBmb3IgaGlzdG9yaWNhbCBjb21wYXRpYmlsaXR5IHJlYXNv
bnMuCiAgICAgRWxlbWVudCogZmluZEFuY2hvcihjb25zdCBTdHJpbmcmIG5hbWUpOwogCi0gICAg
SFRNTENvbGxlY3Rpb246OkNvbGxlY3Rpb25JbmZvKiBjb2xsZWN0aW9uSW5mbyhIVE1MQ29sbGVj
dGlvbjo6VHlwZSB0eXBlKQorICAgIENvbGxlY3Rpb25DYWNoZSogY29sbGVjdGlvbkluZm8oQ29s
bGVjdGlvblR5cGUgdHlwZSkKICAgICB7Ci0gICAgICAgIEFTU0VSVCh0eXBlID49IEhUTUxDb2xs
ZWN0aW9uOjpGaXJzdFVubmFtZWREb2N1bWVudENhY2hlZFR5cGUpOwotICAgICAgICB1bnNpZ25l
ZCBpbmRleCA9IHR5cGUgLSBIVE1MQ29sbGVjdGlvbjo6Rmlyc3RVbm5hbWVkRG9jdW1lbnRDYWNo
ZWRUeXBlOwotICAgICAgICBBU1NFUlQoaW5kZXggPCBIVE1MQ29sbGVjdGlvbjo6TnVtVW5uYW1l
ZERvY3VtZW50Q2FjaGVkVHlwZXMpOworICAgICAgICBBU1NFUlQodHlwZSA+PSBGaXJzdFVubmFt
ZWREb2N1bWVudENhY2hlZFR5cGUpOworICAgICAgICB1bnNpZ25lZCBpbmRleCA9IHR5cGUgLSBG
aXJzdFVubmFtZWREb2N1bWVudENhY2hlZFR5cGU7CisgICAgICAgIEFTU0VSVChpbmRleCA8IE51
bVVubmFtZWREb2N1bWVudENhY2hlZFR5cGVzKTsKICAgICAgICAgcmV0dXJuICZtX2NvbGxlY3Rp
b25JbmZvW2luZGV4XTsgCiAgICAgfQogCi0gICAgSFRNTENvbGxlY3Rpb246OkNvbGxlY3Rpb25J
bmZvKiBuYW1lQ29sbGVjdGlvbkluZm8oSFRNTENvbGxlY3Rpb246OlR5cGUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSk7CisgICAgQ29sbGVjdGlvbkNhY2hlKiBuYW1lQ29sbGVjdGlvbkluZm8o
Q29sbGVjdGlvblR5cGUsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSk7CiAKICAgICAvLyBET00g
bWV0aG9kcyBvdmVycmlkZGVuIGZyb20gIHBhcmVudCBjbGFzc2VzCiAKQEAgLTEwNDYsOSArMTA0
OSw5IEBAIHByaXZhdGU6CiAKICAgICBDaGVja2VkUmFkaW9CdXR0b25zIG1fY2hlY2tlZFJhZGlv
QnV0dG9uczsKIAotICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgSFRNTENv
bGxlY3Rpb246OkNvbGxlY3Rpb25JbmZvKj4gTmFtZWRDb2xsZWN0aW9uTWFwOwotICAgIEhUTUxD
b2xsZWN0aW9uOjpDb2xsZWN0aW9uSW5mbyBtX2NvbGxlY3Rpb25JbmZvW0hUTUxDb2xsZWN0aW9u
OjpOdW1Vbm5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlc107Ci0gICAgTmFtZWRDb2xsZWN0aW9uTWFw
IG1fbmFtZUNvbGxlY3Rpb25JbmZvW0hUTUxDb2xsZWN0aW9uOjpOdW1OYW1lZERvY3VtZW50Q2Fj
aGVkVHlwZXNdOworICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgQ29sbGVj
dGlvbkNhY2hlKj4gTmFtZWRDb2xsZWN0aW9uTWFwOworICAgIENvbGxlY3Rpb25DYWNoZSBtX2Nv
bGxlY3Rpb25JbmZvW051bVVubmFtZWREb2N1bWVudENhY2hlZFR5cGVzXTsKKyAgICBOYW1lZENv
bGxlY3Rpb25NYXAgbV9uYW1lQ29sbGVjdGlvbkluZm9bTnVtTmFtZWREb2N1bWVudENhY2hlZFR5
cGVzXTsKIAogI2lmIEVOQUJMRShYUEFUSCkKICAgICBSZWZQdHI8WFBhdGhFdmFsdWF0b3I+IG1f
eHBhdGhFdmFsdWF0b3I7CkluZGV4OiBXZWJDb3JlL2RvbS9FbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2RvbS9FbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1
ZGUgIkVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKKyNpbmNsdWRlICJB
dHRyLmgiCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkNTdHJpbmcu
aCIKICNpbmNsdWRlICJDbGllbnRSZWN0LmgiCkBAIC00NiwxMyArNDcsMTQgQEAKICNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJSZW5kZXJC
bG9jay5oIgotI2lmIEVOQUJMRShTVkcpCi0jaW5jbHVkZSAiU1ZHTmFtZXMuaCIKLSNlbmRpZgog
I2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3Iu
aCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgogCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJT
VkdOYW1lcy5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKSW5kZXg6IFdlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisr
KyBXZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICsz
MCw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5o
IgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKSW5kZXg6IFdlYkNvcmUvZG9tL05h
bWVkQXR0ck1hcC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vTmFtZWRBdHRyTWFwLmNw
cAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2RvbS9OYW1lZEF0dHJNYXAuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiTmFtZWROb2RlTWFwLmgiCiAKKyNpbmNsdWRlICJBdHRyLmgiCiAjaW5jbHVkZSAiRG9jdW1l
bnQuaCIKICNpbmNsdWRlICJFbGVtZW50LmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgpJ
bmRleDogV2ViQ29yZS9kb20vTmFtZWRNYXBwZWRBdHRyTWFwLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2RvbS9OYW1lZE1hcHBlZEF0dHJNYXAuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdl
YkNvcmUvZG9tL05hbWVkTWFwcGVkQXR0ck1hcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYg
KzI3LDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgor
I2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5k
ZXg6IFdlYkNvcmUvZG9tL05hbWVkTWFwcGVkQXR0ck1hcC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL05hbWVkTWFwcGVkQXR0ck1hcC5oCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUv
ZG9tL05hbWVkTWFwcGVkQXR0ck1hcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw2IEBA
CiAjZGVmaW5lIE5hbWVkTWFwcGVkQXR0ck1hcF9oCiAKICNpbmNsdWRlICJDbGFzc05hbWVzLmgi
Ci0jaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiIC8vIFRoaXMgaGVhZGVyIGlzIG5vdCByZXF1
aXJlZCBmb3IgdGhlIE5hbWVkTWFwcGVkQXR0ck1hcCBkZWZpbml0aW9uLiBTaG91bGQgcmVtb3Zl
IGl0LgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cklu
ZGV4OiBXZWJDb3JlL2RvbS9Ob2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Ob2Rl
LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2RvbS9Ob2RlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjQsNiArMjQsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5v
ZGUuaCIKIAorI2luY2x1ZGUgIkF0dHIuaCIKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNs
dWRlICJDU1NSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTUnVsZUxpc3QuaCIKSW5kZXg6IFdlYkNvcmUv
ZG9tL1N0eWxlZEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1N0eWxlZEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVL
ZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgi
CisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hGdW5jdGlv
bnMuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKSW5kZXg6IFdlYkNvcmUvZG9tL1N0eWxlZEVs
ZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9TdHlsZWRFbGVtZW50LmgJKHJldmlz
aW9uIDQyMTMyKQorKysgV2ViQ29yZS9kb20vU3R5bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkp
CkBAIC0yNSwxMiArMjUsMTUgQEAKICNpZm5kZWYgU3R5bGVkRWxlbWVudF9oCiAjZGVmaW5lIFN0
eWxlZEVsZW1lbnRfaAogCisjaW5jbHVkZSAiQ1NTUHJpbWl0aXZlVmFsdWUuaCIKICNpbmNsdWRl
ICJFbGVtZW50LmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlRW50cnkuaCIKICNpbmNsdWRl
ICJOYW1lZE1hcHBlZEF0dHJNYXAuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
U1NNYXBwZWRBdHRyaWJ1dGVEZWNsYXJhdGlvbjsKK2NsYXNzIENTU011dGFibGVTdHlsZURlY2xh
cmF0aW9uOwogY2xhc3MgTWFwcGVkQXR0cmlidXRlOwogCiBjbGFzcyBTdHlsZWRFbGVtZW50IDog
cHVibGljIEVsZW1lbnQgewpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0FwcGx5U3R5bGVDb21tYW5k
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvQXBwbHlTdHlsZUNvbW1hbmQuY3Bw
CShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvZWRpdGluZy9BcHBseVN0eWxlQ29tbWFuZC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJBcHBseVN0eWxl
Q29tbWFuZC5oIgogCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCisj
aW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQYXJz
ZXIuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFt
ZXMuaCIKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9EZWxldGVTZWxlY3Rpb25Db21tYW5kLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5jcHAJ
KHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9lZGl0aW5nL0RlbGV0ZVNlbGVjdGlvbkNvbW1h
bmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmln
LmgiCiAjaW5jbHVkZSAiRGVsZXRlU2VsZWN0aW9uQ29tbWFuZC5oIgogCisjaW5jbHVkZSAiQ1NT
TXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkRvY3VtZW50RnJhZ21lbnQuaCIKICNpbmNsdWRlICJFZGl0b3IuaCIKSW5kZXg6IFdlYkNv
cmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5o
IgogI2luY2x1ZGUgIkFwcGx5U3R5bGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24u
aCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMu
aCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCkluZGV4OiBXZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNv
bW1hbmQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21t
YW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogCiAjaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCisjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0
eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVk
ZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkNyZWF0ZUxpbmtDb21tYW5kLmgiCklu
ZGV4OiBXZWJDb3JlL2VkaXRpbmcvSW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9lZGl0aW5nL0luc2VydFBhcmFncmFwaFNlcGFyYXRvckNv
bW1hbmQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvZWRpdGluZy9JbnNlcnRQYXJh
Z3JhcGhTZXBhcmF0b3JDb21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTYgKzI2LDE3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSW5zZXJ0UGFyYWdyYXBoU2VwYXJh
dG9yQ29tbWFuZC5oIgogCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNpbmNsdWRlICJMb2dnaW5n
LmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAi
Q1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVz
LmgiCi0jaW5jbHVkZSAiVGV4dC5oIgotI2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCisjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIkluc2VydExpbmVCcmVha0NvbW1hbmQuaCIKKyNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCisjaW5jbHVkZSAiVGV4dC5oIgor
I2luY2x1ZGUgImh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAidmlzaWJsZV91bml0cy5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3JlL2VkaXRpbmcvUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9SZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9lZGl0aW5nL1JlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsMjAgKzI4LDIxIEBA
CiAKICNpbmNsdWRlICJBcHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJlZm9yZVRleHRJ
bnNlcnRlZEV2ZW50LmgiCi0jaW5jbHVkZSAiQnJlYWtCbG9ja3F1b3RlQ29tbWFuZC5oIiAKKyNp
bmNsdWRlICJCcmVha0Jsb2NrcXVvdGVDb21tYW5kLmgiCiAjaW5jbHVkZSAiQ1NTQ29tcHV0ZWRT
dHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24u
aCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eS5oIgogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMu
aCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIK
ICNpbmNsdWRlICJEb2N1bWVudEZyYWdtZW50LmgiCiAjaW5jbHVkZSAiRWRpdGluZ1RleHQuaCIK
LSNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUg
IkV2ZW50TmFtZXMuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50
LmgiCi0jaW5jbHVkZSAiSFRNTEludGVyY2hhbmdlLmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxl
bWVudC5oIgorI2luY2x1ZGUgIkhUTUxJbnRlcmNoYW5nZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTbWFydFJl
cGxhY2UuaCIKSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvZWRpdGluZy9tYXJrdXAuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUv
ZWRpdGluZy9tYXJrdXAuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw2ICszMCw3IEBACiAjaW5j
bHVkZSAiQ2hhcmFjdGVyTmFtZXMuaCIKICNpbmNsdWRlICJDb21tZW50LmgiCiAjaW5jbHVkZSAi
Q1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTTXV0YWJsZVN0eWxl
RGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcmltaXRpdmVWYWx1ZS5oIgogI2luY2x1ZGUg
IkNTU1Byb3BlcnR5LmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgpJbmRleDogV2Vi
Q29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHJldmlzaW9uIDQyMTMyKQor
KysgV2ViQ29yZS9odG1sL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDYW52YXNHcmFkaWVudC5oIgogI2luY2x1
ZGUgIkNhbnZhc1BhdHRlcm4uaCIKICNpbmNsdWRlICJDYW52YXNTdHlsZS5oIgorI2luY2x1ZGUg
IkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgiCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1l
cy5oIgogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJEb2N1bWVudC5o
IgpJbmRleDogV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAJKHJldmlzaW9uIDQyMTA2KQkoZnJvbSBX
ZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uY3BwOjQyMTA2KQorKysgV2ViQ29yZS9odG1sL0Nv
bGxlY3Rpb25DYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0NTggQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAgICAg
ICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqIENvcHly
aWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgorICoKKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiSFRN
TENvbGxlY3Rpb24uaCIKKworI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUgIkhU
TUxFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiSFRNTE9iamVj
dEVsZW1lbnQuaCIKKyNpbmNsdWRlICJOb2RlTGlzdC5oIgorCisjaW5jbHVkZSA8dXRpbGl0eT4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCit1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOworCitI
VE1MQ29sbGVjdGlvbjo6SFRNTENvbGxlY3Rpb24oUGFzc1JlZlB0cjxOb2RlPiBiYXNlLCBUeXBl
IHR5cGUpCisgICAgOiBtX2lkc0RvbmUoZmFsc2UpCisgICAgLCBtX2Jhc2UoYmFzZSkKKyAgICAs
IG1fdHlwZSh0eXBlKQorICAgICwgbV9pbmZvKG1fYmFzZS0+aXNEb2N1bWVudE5vZGUoKSA/IHN0
YXRpY19jYXN0PERvY3VtZW50Kj4obV9iYXNlLmdldCgpKS0+Y29sbGVjdGlvbkluZm8odHlwZSkg
OiAwKQorICAgICwgbV9vd25zSW5mbyhmYWxzZSkKK3sKK30KKworSFRNTENvbGxlY3Rpb246OkhU
TUxDb2xsZWN0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYmFzZSwgVHlwZSB0eXBlLCBDb2xsZWN0aW9u
SW5mbyogaW5mbykKKyAgICA6IG1faWRzRG9uZShmYWxzZSkKKyAgICAsIG1fYmFzZShiYXNlKQor
ICAgICwgbV90eXBlKHR5cGUpCisgICAgLCBtX2luZm8oaW5mbykKKyAgICAsIG1fb3duc0luZm8o
ZmFsc2UpCit7Cit9CisKK1Bhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IEhUTUxDb2xsZWN0aW9u
OjpjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBiYXNlLCBUeXBlIHR5cGUpCit7CisgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBIVE1MQ29sbGVjdGlvbihiYXNlLCB0eXBlKSk7Cit9CisKK0hUTUxDb2xs
ZWN0aW9uOjp+SFRNTENvbGxlY3Rpb24oKQoreworICAgIGlmIChtX293bnNJbmZvKQorICAgICAg
ICBkZWxldGUgbV9pbmZvOworfQorCitIVE1MQ29sbGVjdGlvbjo6Q29sbGVjdGlvbkluZm86OkNv
bGxlY3Rpb25JbmZvKCkKKyAgICA6IHZlcnNpb24oMCkKK3sKKyAgICByZXNldCgpOworfQorCitp
bmxpbmUgdm9pZCBIVE1MQ29sbGVjdGlvbjo6Q29sbGVjdGlvbkluZm86OmNvcHlDYWNoZU1hcChO
b2RlQ2FjaGVNYXAmIGRlc3QsIGNvbnN0IE5vZGVDYWNoZU1hcCYgc3JjKQoreworICAgIEFTU0VS
VChkZXN0LmlzRW1wdHkoKSk7CisgICAgTm9kZUNhY2hlTWFwOjpjb25zdF9pdGVyYXRvciBlbmQg
PSBzcmMuZW5kKCk7CisgICAgZm9yIChOb2RlQ2FjaGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
c3JjLmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkKKyAgICAgICAgZGVzdC5hZGQoaXQtPmZpcnN0
LCBuZXcgVmVjdG9yPEVsZW1lbnQqPigqaXQtPnNlY29uZCkpOworfQorCitIVE1MQ29sbGVjdGlv
bjo6Q29sbGVjdGlvbkluZm86OkNvbGxlY3Rpb25JbmZvKGNvbnN0IENvbGxlY3Rpb25JbmZvJiBv
dGhlcikKKyAgICA6IHZlcnNpb24ob3RoZXIudmVyc2lvbikKKyAgICAsIGN1cnJlbnQob3RoZXIu
Y3VycmVudCkKKyAgICAsIHBvc2l0aW9uKG90aGVyLnBvc2l0aW9uKQorICAgICwgbGVuZ3RoKG90
aGVyLmxlbmd0aCkKKyAgICAsIGVsZW1lbnRzQXJyYXlQb3NpdGlvbihvdGhlci5lbGVtZW50c0Fy
cmF5UG9zaXRpb24pCisgICAgLCBoYXNMZW5ndGgob3RoZXIuaGFzTGVuZ3RoKQorICAgICwgaGFz
TmFtZUNhY2hlKG90aGVyLmhhc05hbWVDYWNoZSkKK3sKKyAgICBjb3B5Q2FjaGVNYXAoaWRDYWNo
ZSwgb3RoZXIuaWRDYWNoZSk7CisgICAgY29weUNhY2hlTWFwKG5hbWVDYWNoZSwgb3RoZXIubmFt
ZUNhY2hlKTsKK30KKwordm9pZCBIVE1MQ29sbGVjdGlvbjo6Q29sbGVjdGlvbkluZm86OnN3YXAo
Q29sbGVjdGlvbkluZm8mIG90aGVyKQoreworICAgIHN0ZDo6c3dhcCh2ZXJzaW9uLCBvdGhlci52
ZXJzaW9uKTsKKyAgICBzdGQ6OnN3YXAoY3VycmVudCwgb3RoZXIuY3VycmVudCk7CisgICAgc3Rk
Ojpzd2FwKHBvc2l0aW9uLCBvdGhlci5wb3NpdGlvbik7CisgICAgc3RkOjpzd2FwKGxlbmd0aCwg
b3RoZXIubGVuZ3RoKTsKKyAgICBzdGQ6OnN3YXAoZWxlbWVudHNBcnJheVBvc2l0aW9uLCBvdGhl
ci5lbGVtZW50c0FycmF5UG9zaXRpb24pOworCisgICAgaWRDYWNoZS5zd2FwKG90aGVyLmlkQ2Fj
aGUpOworICAgIG5hbWVDYWNoZS5zd2FwKG90aGVyLm5hbWVDYWNoZSk7CisgICAgCisgICAgc3Rk
Ojpzd2FwKGhhc0xlbmd0aCwgb3RoZXIuaGFzTGVuZ3RoKTsKKyAgICBzdGQ6OnN3YXAoaGFzTmFt
ZUNhY2hlLCBvdGhlci5oYXNOYW1lQ2FjaGUpOworfQorCitIVE1MQ29sbGVjdGlvbjo6Q29sbGVj
dGlvbkluZm86On5Db2xsZWN0aW9uSW5mbygpCit7CisgICAgZGVsZXRlQWxsVmFsdWVzKGlkQ2Fj
aGUpOworICAgIGRlbGV0ZUFsbFZhbHVlcyhuYW1lQ2FjaGUpOworfQorCit2b2lkIEhUTUxDb2xs
ZWN0aW9uOjpDb2xsZWN0aW9uSW5mbzo6cmVzZXQoKQoreworICAgIGN1cnJlbnQgPSAwOworICAg
IHBvc2l0aW9uID0gMDsKKyAgICBsZW5ndGggPSAwOworICAgIGhhc0xlbmd0aCA9IGZhbHNlOwor
ICAgIGVsZW1lbnRzQXJyYXlQb3NpdGlvbiA9IDA7CisgICAgZGVsZXRlQWxsVmFsdWVzKGlkQ2Fj
aGUpOworICAgIGlkQ2FjaGUuY2xlYXIoKTsKKyAgICBkZWxldGVBbGxWYWx1ZXMobmFtZUNhY2hl
KTsKKyAgICBuYW1lQ2FjaGUuY2xlYXIoKTsKKyAgICBoYXNOYW1lQ2FjaGUgPSBmYWxzZTsKK30K
Kwordm9pZCBIVE1MQ29sbGVjdGlvbjo6cmVzZXRDb2xsZWN0aW9uSW5mbygpIGNvbnN0Cit7Cisg
ICAgdW5zaWduZWQgZG9jdmVyc2lvbiA9IHN0YXRpY19jYXN0PEhUTUxEb2N1bWVudCo+KG1fYmFz
ZS0+ZG9jdW1lbnQoKSktPmRvbVRyZWVWZXJzaW9uKCk7CisKKyAgICBpZiAoIW1faW5mbykgewor
ICAgICAgICBtX2luZm8gPSBuZXcgQ29sbGVjdGlvbkluZm87CisgICAgICAgIG1fb3duc0luZm8g
PSB0cnVlOworICAgICAgICBtX2luZm8tPnZlcnNpb24gPSBkb2N2ZXJzaW9uOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaWYgKG1faW5mby0+dmVyc2lvbiAhPSBkb2N2ZXJzaW9uKSB7
CisgICAgICAgIG1faW5mby0+cmVzZXQoKTsKKyAgICAgICAgbV9pbmZvLT52ZXJzaW9uID0gZG9j
dmVyc2lvbjsKKyAgICB9Cit9CisKK3N0YXRpYyBOb2RlKiBuZXh0Tm9kZU9yU2libGluZyhOb2Rl
KiBiYXNlLCBOb2RlKiBub2RlLCBib29sIGluY2x1ZGVDaGlsZHJlbikKK3sKKyAgICByZXR1cm4g
aW5jbHVkZUNoaWxkcmVuID8gbm9kZS0+dHJhdmVyc2VOZXh0Tm9kZShiYXNlKSA6IG5vZGUtPnRy
YXZlcnNlTmV4dFNpYmxpbmcoYmFzZSk7Cit9CisKK0VsZW1lbnQqIEhUTUxDb2xsZWN0aW9uOjpp
dGVtQWZ0ZXIoRWxlbWVudCogcHJldmlvdXMpIGNvbnN0Cit7CisgICAgYm9vbCBkZWVwID0gdHJ1
ZTsKKworICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgICAgIGNhc2UgRG9jQWxsOgorICAgICAg
ICBjYXNlIERvY0FuY2hvcnM6CisgICAgICAgIGNhc2UgRG9jQXBwbGV0czoKKyAgICAgICAgY2Fz
ZSBEb2NFbWJlZHM6CisgICAgICAgIGNhc2UgRG9jRm9ybXM6CisgICAgICAgIGNhc2UgRG9jSW1h
Z2VzOgorICAgICAgICBjYXNlIERvY0xpbmtzOgorICAgICAgICBjYXNlIERvY09iamVjdHM6Cisg
ICAgICAgIGNhc2UgRG9jU2NyaXB0czoKKyAgICAgICAgY2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6
CisgICAgICAgIGNhc2UgTWFwQXJlYXM6CisgICAgICAgIGNhc2UgT3RoZXI6CisgICAgICAgIGNh
c2UgU2VsZWN0T3B0aW9uczoKKyAgICAgICAgY2FzZSBXaW5kb3dOYW1lZEl0ZW1zOgorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgTm9kZUNoaWxkcmVuOgorICAgICAgICBjYXNlIFRS
Q2VsbHM6CisgICAgICAgIGNhc2UgVFNlY3Rpb25Sb3dzOgorICAgICAgICBjYXNlIFRhYmxlVEJv
ZGllczoKKyAgICAgICAgICAgIGRlZXAgPSBmYWxzZTsKKyAgICAgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIE5vZGUqIGN1cnJlbnQ7CisgICAgaWYgKCFwcmV2aW91cykKKyAgICAgICAgY3Vy
cmVudCA9IG1fYmFzZS0+Zmlyc3RDaGlsZCgpOworICAgIGVsc2UKKyAgICAgICAgY3VycmVudCA9
IG5leHROb2RlT3JTaWJsaW5nKG1fYmFzZS5nZXQoKSwgcHJldmlvdXMsIGRlZXApOworCisgICAg
Zm9yICg7IGN1cnJlbnQ7IGN1cnJlbnQgPSBuZXh0Tm9kZU9yU2libGluZyhtX2Jhc2UuZ2V0KCks
IGN1cnJlbnQsIGRlZXApKSB7CisgICAgICAgIGlmICghY3VycmVudC0+aXNFbGVtZW50Tm9kZSgp
KQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIEVsZW1lbnQqIGUgPSBzdGF0aWNfY2Fz
dDxFbGVtZW50Kj4oY3VycmVudCk7CisgICAgICAgIHN3aXRjaCAobV90eXBlKSB7CisgICAgICAg
ICAgICBjYXNlIERvY0ltYWdlczoKKyAgICAgICAgICAgICAgICBpZiAoZS0+aGFzTG9jYWxOYW1l
KGltZ1RhZykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBEb2NTY3JpcHRzOgorICAgICAgICAgICAgICAgIGlm
IChlLT5oYXNMb2NhbE5hbWUoc2NyaXB0VGFnKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERvY0Zvcm1zOgor
ICAgICAgICAgICAgICAgIGlmIChlLT5oYXNMb2NhbE5hbWUoZm9ybVRhZykpCisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBUYWJsZVRCb2RpZXM6CisgICAgICAgICAgICAgICAgaWYgKGUtPmhhc0xvY2FsTmFtZSh0
Ym9keVRhZykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBUUkNlbGxzOgorICAgICAgICAgICAgICAgIGlmIChl
LT5oYXNMb2NhbE5hbWUodGRUYWcpIHx8IGUtPmhhc0xvY2FsTmFtZSh0aFRhZykpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBUU2VjdGlvblJvd3M6CisgICAgICAgICAgICAgICAgaWYgKGUtPmhhc0xvY2FsTmFt
ZSh0clRhZykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBTZWxlY3RPcHRpb25zOgorICAgICAgICAgICAgICAg
IGlmIChlLT5oYXNMb2NhbE5hbWUob3B0aW9uVGFnKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIE1hcEFyZWFz
OgorICAgICAgICAgICAgICAgIGlmIChlLT5oYXNMb2NhbE5hbWUoYXJlYVRhZykpCisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBEb2NBcHBsZXRzOiAvLyBhbGwgPGFwcGxldD4gZWxlbWVudHMgYW5kIDxvYmplY3Q+
IGVsZW1lbnRzIHRoYXQgY29udGFpbiBKYXZhIEFwcGxldHMKKyAgICAgICAgICAgICAgICBpZiAo
ZS0+aGFzTG9jYWxOYW1lKGFwcGxldFRhZykpCisgICAgICAgICAgICAgICAgICAgIHJldHVybiBl
OworICAgICAgICAgICAgICAgIGlmIChlLT5oYXNMb2NhbE5hbWUob2JqZWN0VGFnKSAmJiBzdGF0
aWNfY2FzdDxIVE1MT2JqZWN0RWxlbWVudCo+KGUpLT5jb250YWluc0phdmFBcHBsZXQoKSkKKyAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIERvY0VtYmVkczoKKyAgICAgICAgICAgICAgICBpZiAoZS0+aGFzTG9jYWxO
YW1lKGVtYmVkVGFnKSkKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIERvY09iamVjdHM6CisgICAgICAgICAgICAg
ICAgaWYgKGUtPmhhc0xvY2FsTmFtZShvYmplY3RUYWcpKQorICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgRG9jTGlu
a3M6IC8vIGFsbCA8YT4gYW5kIDxhcmVhPiBlbGVtZW50cyB3aXRoIGEgdmFsdWUgZm9yIGhyZWYK
KyAgICAgICAgICAgICAgICBpZiAoKGUtPmhhc0xvY2FsTmFtZShhVGFnKSB8fCBlLT5oYXNMb2Nh
bE5hbWUoYXJlYVRhZykpICYmICghZS0+Z2V0QXR0cmlidXRlKGhyZWZBdHRyKS5pc051bGwoKSkp
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBlOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBEb2NBbmNob3JzOiAvLyBhbGwgPGE+IGVsZW1lbnRzIHdpdGggYSB2
YWx1ZSBmb3IgbmFtZQorICAgICAgICAgICAgICAgIGlmIChlLT5oYXNMb2NhbE5hbWUoYVRhZykg
JiYgIWUtPmdldEF0dHJpYnV0ZShuYW1lQXR0cikuaXNOdWxsKCkpCisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBE
b2NBbGw6CisgICAgICAgICAgICBjYXNlIE5vZGVDaGlsZHJlbjoKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZTsKKyAgICAgICAgICAgIGNhc2UgRG9jdW1lbnROYW1lZEl0ZW1zOgorICAgICAgICAg
ICAgY2FzZSBPdGhlcjoKKyAgICAgICAgICAgIGNhc2UgV2luZG93TmFtZWRJdGVtczoKKyAgICAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKworICAgIHJldHVybiAwOworfQorCit1bnNpZ25lZCBIVE1MQ29s
bGVjdGlvbjo6Y2FsY0xlbmd0aCgpIGNvbnN0Cit7CisgICAgdW5zaWduZWQgbGVuID0gMDsKKyAg
ICBmb3IgKEVsZW1lbnQqIGN1cnJlbnQgPSBpdGVtQWZ0ZXIoMCk7IGN1cnJlbnQ7IGN1cnJlbnQg
PSBpdGVtQWZ0ZXIoY3VycmVudCkpCisgICAgICAgICsrbGVuOworICAgIHJldHVybiBsZW47Cit9
CisKKy8vIHNpbmNlIHRoZSBjb2xsZWN0aW9ucyBhcmUgdG8gYmUgImxpdmUiLCB3ZSBoYXZlIHRv
IGRvIHRoZQorLy8gY2FsY3VsYXRpb24gZXZlcnkgdGltZSBpZiBhbnl0aGluZyBoYXMgY2hhbmdl
ZAordW5zaWduZWQgSFRNTENvbGxlY3Rpb246Omxlbmd0aCgpIGNvbnN0Cit7CisgICAgcmVzZXRD
b2xsZWN0aW9uSW5mbygpOworICAgIGlmICghbV9pbmZvLT5oYXNMZW5ndGgpIHsKKyAgICAgICAg
bV9pbmZvLT5sZW5ndGggPSBjYWxjTGVuZ3RoKCk7CisgICAgICAgIG1faW5mby0+aGFzTGVuZ3Ro
ID0gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIG1faW5mby0+bGVuZ3RoOworfQorCitOb2RlKiBI
VE1MQ29sbGVjdGlvbjo6aXRlbSh1bnNpZ25lZCBpbmRleCkgY29uc3QKK3sKKyAgICAgcmVzZXRD
b2xsZWN0aW9uSW5mbygpOworICAgICBpZiAobV9pbmZvLT5jdXJyZW50ICYmIG1faW5mby0+cG9z
aXRpb24gPT0gaW5kZXgpCisgICAgICAgICByZXR1cm4gbV9pbmZvLT5jdXJyZW50OworICAgICBp
ZiAobV9pbmZvLT5oYXNMZW5ndGggJiYgbV9pbmZvLT5sZW5ndGggPD0gaW5kZXgpCisgICAgICAg
ICByZXR1cm4gMDsKKyAgICAgaWYgKCFtX2luZm8tPmN1cnJlbnQgfHwgbV9pbmZvLT5wb3NpdGlv
biA+IGluZGV4KSB7CisgICAgICAgICBtX2luZm8tPmN1cnJlbnQgPSBpdGVtQWZ0ZXIoMCk7Cisg
ICAgICAgICBtX2luZm8tPnBvc2l0aW9uID0gMDsKKyAgICAgICAgIGlmICghbV9pbmZvLT5jdXJy
ZW50KQorICAgICAgICAgICAgIHJldHVybiAwOworICAgICB9CisgICAgIEVsZW1lbnQqIGUgPSBt
X2luZm8tPmN1cnJlbnQ7CisgICAgIGZvciAodW5zaWduZWQgcG9zID0gbV9pbmZvLT5wb3NpdGlv
bjsgZSAmJiBwb3MgPCBpbmRleDsgcG9zKyspCisgICAgICAgICBlID0gaXRlbUFmdGVyKGUpOwor
ICAgICBtX2luZm8tPmN1cnJlbnQgPSBlOworICAgICBtX2luZm8tPnBvc2l0aW9uID0gaW5kZXg7
CisgICAgIHJldHVybiBtX2luZm8tPmN1cnJlbnQ7Cit9CisKK05vZGUqIEhUTUxDb2xsZWN0aW9u
OjpmaXJzdEl0ZW0oKSBjb25zdAoreworICAgICByZXR1cm4gaXRlbSgwKTsKK30KKworTm9kZSog
SFRNTENvbGxlY3Rpb246Om5leHRJdGVtKCkgY29uc3QKK3sKKyAgICAgcmVzZXRDb2xsZWN0aW9u
SW5mbygpOworIAorICAgICAvLyBMb29rIGZvciB0aGUgJ3NlY29uZCcgaXRlbS4gVGhlIGZpcnN0
IG9uZSBpcyBjdXJyZW50SXRlbSwgYWxyZWFkeSBnaXZlbiBiYWNrLgorICAgICBFbGVtZW50KiBy
ZXR2YWwgPSBpdGVtQWZ0ZXIobV9pbmZvLT5jdXJyZW50KTsKKyAgICAgbV9pbmZvLT5jdXJyZW50
ID0gcmV0dmFsOworICAgICBtX2luZm8tPnBvc2l0aW9uKys7CisgICAgIHJldHVybiByZXR2YWw7
Cit9CisKK2Jvb2wgSFRNTENvbGxlY3Rpb246OmNoZWNrRm9yTmFtZU1hdGNoKEVsZW1lbnQqIGVs
ZW1lbnQsIGJvb2wgY2hlY2tOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0Cit7
CisgICAgaWYgKCFlbGVtZW50LT5pc0hUTUxFbGVtZW50KCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICAKKyAgICBIVE1MRWxlbWVudCogZSA9IHN0YXRpY19jYXN0PEhUTUxFbGVtZW50Kj4o
ZWxlbWVudCk7CisgICAgaWYgKCFjaGVja05hbWUpCisgICAgICAgIHJldHVybiBlLT5nZXRBdHRy
aWJ1dGUoaWRBdHRyKSA9PSBuYW1lOworCisgICAgLy8gZG9jdW1lbnQuYWxsIHJldHVybnMgb25s
eSBpbWFnZXMsIGZvcm1zLCBhcHBsZXRzLCBvYmplY3RzIGFuZCBlbWJlZHMKKyAgICAvLyBieSBu
YW1lICh0aG91Z2ggZXZlcnl0aGluZyBieSBpZCkKKyAgICBpZiAobV90eXBlID09IERvY0FsbCAm
JiAKKyAgICAgICAgIShlLT5oYXNMb2NhbE5hbWUoaW1nVGFnKSB8fCBlLT5oYXNMb2NhbE5hbWUo
Zm9ybVRhZykgfHwKKyAgICAgICAgICBlLT5oYXNMb2NhbE5hbWUoYXBwbGV0VGFnKSB8fCBlLT5o
YXNMb2NhbE5hbWUob2JqZWN0VGFnKSB8fAorICAgICAgICAgIGUtPmhhc0xvY2FsTmFtZShlbWJl
ZFRhZykgfHwgZS0+aGFzTG9jYWxOYW1lKGlucHV0VGFnKSB8fAorICAgICAgICAgIGUtPmhhc0xv
Y2FsTmFtZShzZWxlY3RUYWcpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJu
IGUtPmdldEF0dHJpYnV0ZShuYW1lQXR0cikgPT0gbmFtZSAmJiBlLT5nZXRBdHRyaWJ1dGUoaWRB
dHRyKSAhPSBuYW1lOworfQorCitOb2RlKiBIVE1MQ29sbGVjdGlvbjo6bmFtZWRJdGVtKGNvbnN0
IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3QKK3sKKyAgICAvLyBodHRwOi8vbXNkbi5taWNyb3Nv
ZnQuY29tL3dvcmtzaG9wL2F1dGhvci9kaHRtbC9yZWZlcmVuY2UvbWV0aG9kcy9uYW1lZGl0ZW0u
YXNwCisgICAgLy8gVGhpcyBtZXRob2QgZmlyc3Qgc2VhcmNoZXMgZm9yIGFuIG9iamVjdCB3aXRo
IGEgbWF0Y2hpbmcgaWQKKyAgICAvLyBhdHRyaWJ1dGUuIElmIGEgbWF0Y2ggaXMgbm90IGZvdW5k
LCB0aGUgbWV0aG9kIHRoZW4gc2VhcmNoZXMgZm9yIGFuCisgICAgLy8gb2JqZWN0IHdpdGggYSBt
YXRjaGluZyBuYW1lIGF0dHJpYnV0ZSwgYnV0IG9ubHkgb24gdGhvc2UgZWxlbWVudHMKKyAgICAv
LyB0aGF0IGFyZSBhbGxvd2VkIGEgbmFtZSBhdHRyaWJ1dGUuCisgICAgcmVzZXRDb2xsZWN0aW9u
SW5mbygpOworICAgIG1faWRzRG9uZSA9IGZhbHNlOworCisgICAgZm9yIChFbGVtZW50KiBlID0g
aXRlbUFmdGVyKDApOyBlOyBlID0gaXRlbUFmdGVyKGUpKSB7CisgICAgICAgIGlmIChjaGVja0Zv
ck5hbWVNYXRjaChlLCBtX2lkc0RvbmUsIG5hbWUpKSB7CisgICAgICAgICAgICBtX2luZm8tPmN1
cnJlbnQgPSBlOworICAgICAgICAgICAgcmV0dXJuIGU7CisgICAgICAgIH0KKyAgICB9CisgICAg
ICAgIAorICAgIG1faWRzRG9uZSA9IHRydWU7CisKKyAgICBmb3IgKEVsZW1lbnQqIGUgPSBpdGVt
QWZ0ZXIoMCk7IGU7IGUgPSBpdGVtQWZ0ZXIoZSkpIHsKKyAgICAgICAgaWYgKGNoZWNrRm9yTmFt
ZU1hdGNoKGUsIG1faWRzRG9uZSwgbmFtZSkpIHsKKyAgICAgICAgICAgIG1faW5mby0+Y3VycmVu
dCA9IGU7CisgICAgICAgICAgICByZXR1cm4gZTsKKyAgICAgICAgfQorICAgIH0KKworICAgIG1f
aW5mby0+Y3VycmVudCA9IDA7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgSFRNTENvbGxlY3Rp
b246OnVwZGF0ZU5hbWVDYWNoZSgpIGNvbnN0Cit7CisgICAgaWYgKG1faW5mby0+aGFzTmFtZUNh
Y2hlKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgZm9yIChFbGVtZW50KiBlbGVtZW50ID0g
aXRlbUFmdGVyKDApOyBlbGVtZW50OyBlbGVtZW50ID0gaXRlbUFmdGVyKGVsZW1lbnQpKSB7Cisg
ICAgICAgIGlmICghZWxlbWVudC0+aXNIVE1MRWxlbWVudCgpKQorICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgIEhUTUxFbGVtZW50KiBlID0gc3RhdGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihl
bGVtZW50KTsKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBpZEF0dHJWYWwgPSBlLT5nZXRB
dHRyaWJ1dGUoaWRBdHRyKTsKKyAgICAgICAgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lQXR0clZh
bCA9IGUtPmdldEF0dHJpYnV0ZShuYW1lQXR0cik7CisgICAgICAgIGlmICghaWRBdHRyVmFsLmlz
RW1wdHkoKSkgeworICAgICAgICAgICAgLy8gYWRkIHRvIGlkIGNhY2hlCisgICAgICAgICAgICBW
ZWN0b3I8RWxlbWVudCo+KiBpZFZlY3RvciA9IG1faW5mby0+aWRDYWNoZS5nZXQoaWRBdHRyVmFs
LmltcGwoKSk7CisgICAgICAgICAgICBpZiAoIWlkVmVjdG9yKSB7CisgICAgICAgICAgICAgICAg
aWRWZWN0b3IgPSBuZXcgVmVjdG9yPEVsZW1lbnQqPjsKKyAgICAgICAgICAgICAgICBtX2luZm8t
PmlkQ2FjaGUuYWRkKGlkQXR0clZhbC5pbXBsKCksIGlkVmVjdG9yKTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgICAgIGlkVmVjdG9yLT5hcHBlbmQoZSk7CisgICAgICAgIH0KKyAgICAgICAgaWYg
KCFuYW1lQXR0clZhbC5pc0VtcHR5KCkgJiYgaWRBdHRyVmFsICE9IG5hbWVBdHRyVmFsCisgICAg
ICAgICAgICAmJiAobV90eXBlICE9IERvY0FsbCB8fCAKKyAgICAgICAgICAgICAgICAoZS0+aGFz
TG9jYWxOYW1lKGltZ1RhZykgfHwgZS0+aGFzTG9jYWxOYW1lKGZvcm1UYWcpIHx8CisgICAgICAg
ICAgICAgICAgIGUtPmhhc0xvY2FsTmFtZShhcHBsZXRUYWcpIHx8IGUtPmhhc0xvY2FsTmFtZShv
YmplY3RUYWcpIHx8CisgICAgICAgICAgICAgICAgIGUtPmhhc0xvY2FsTmFtZShlbWJlZFRhZykg
fHwgZS0+aGFzTG9jYWxOYW1lKGlucHV0VGFnKSB8fAorICAgICAgICAgICAgICAgICBlLT5oYXNM
b2NhbE5hbWUoc2VsZWN0VGFnKSkpKSB7CisgICAgICAgICAgICAvLyBhZGQgdG8gbmFtZSBjYWNo
ZQorICAgICAgICAgICAgVmVjdG9yPEVsZW1lbnQqPiogbmFtZVZlY3RvciA9IG1faW5mby0+bmFt
ZUNhY2hlLmdldChuYW1lQXR0clZhbC5pbXBsKCkpOworICAgICAgICAgICAgaWYgKCFuYW1lVmVj
dG9yKSB7CisgICAgICAgICAgICAgICAgbmFtZVZlY3RvciA9IG5ldyBWZWN0b3I8RWxlbWVudCo+
OworICAgICAgICAgICAgICAgIG1faW5mby0+bmFtZUNhY2hlLmFkZChuYW1lQXR0clZhbC5pbXBs
KCksIG5hbWVWZWN0b3IpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgbmFtZVZlY3Rvci0+
YXBwZW5kKGUpOworICAgICAgICB9CisgICAgfQorCisgICAgbV9pbmZvLT5oYXNOYW1lQ2FjaGUg
PSB0cnVlOworfQorCit2b2lkIEhUTUxDb2xsZWN0aW9uOjpuYW1lZEl0ZW1zKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSwgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiByZXN1bHQpIGNvbnN0Cit7Cisg
ICAgQVNTRVJUKHJlc3VsdC5pc0VtcHR5KCkpOworICAgIAorICAgIGlmIChuYW1lLmlzRW1wdHko
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVzZXRDb2xsZWN0aW9uSW5mbygpOworICAgIHVw
ZGF0ZU5hbWVDYWNoZSgpOworICAgIAorICAgIFZlY3RvcjxFbGVtZW50Kj4qIGlkUmVzdWx0cyA9
IG1faW5mby0+aWRDYWNoZS5nZXQobmFtZS5pbXBsKCkpOworICAgIFZlY3RvcjxFbGVtZW50Kj4q
IG5hbWVSZXN1bHRzID0gbV9pbmZvLT5uYW1lQ2FjaGUuZ2V0KG5hbWUuaW1wbCgpKTsKKyAgICAK
KyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpZFJlc3VsdHMgJiYgaSA8IGlkUmVzdWx0cy0+c2l6
ZSgpOyArK2kpCisgICAgICAgIHJlc3VsdC5hcHBlbmQoaWRSZXN1bHRzLT5hdChpKSk7CisKKyAg
ICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBuYW1lUmVzdWx0cyAmJiBpIDwgbmFtZVJlc3VsdHMtPnNp
emUoKTsgKytpKQorICAgICAgICByZXN1bHQuYXBwZW5kKG5hbWVSZXN1bHRzLT5hdChpKSk7Cit9
CisKKworTm9kZSogSFRNTENvbGxlY3Rpb246Om5leHROYW1lZEl0ZW0oY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lKSBjb25zdAoreworICAgIHJlc2V0Q29sbGVjdGlvbkluZm8oKTsKKworICAgIGZv
ciAoRWxlbWVudCogZSA9IGl0ZW1BZnRlcihtX2luZm8tPmN1cnJlbnQpOyBlOyBlID0gaXRlbUFm
dGVyKGUpKSB7CisgICAgICAgIGlmIChjaGVja0Zvck5hbWVNYXRjaChlLCBtX2lkc0RvbmUsIG5h
bWUpKSB7CisgICAgICAgICAgICBtX2luZm8tPmN1cnJlbnQgPSBlOworICAgICAgICAgICAgcmV0
dXJuIGU7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgaWYgKG1faWRzRG9uZSkgeworICAg
ICAgICBtX2luZm8tPmN1cnJlbnQgPSAwOyAKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorICAg
IG1faWRzRG9uZSA9IHRydWU7CisKKyAgICBmb3IgKEVsZW1lbnQqIGUgPSBpdGVtQWZ0ZXIobV9p
bmZvLT5jdXJyZW50KTsgZTsgZSA9IGl0ZW1BZnRlcihlKSkgeworICAgICAgICBpZiAoY2hlY2tG
b3JOYW1lTWF0Y2goZSwgbV9pZHNEb25lLCBuYW1lKSkgeworICAgICAgICAgICAgbV9pbmZvLT5j
dXJyZW50ID0gZTsKKyAgICAgICAgICAgIHJldHVybiBlOworICAgICAgICB9CisgICAgfQorCisg
ICAgcmV0dXJuIDA7Cit9CisKK1Bhc3NSZWZQdHI8Tm9kZUxpc3Q+IEhUTUxDb2xsZWN0aW9uOjp0
YWdzKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1cm4gbV9iYXNlLT5nZXRFbGVtZW50
c0J5VGFnTmFtZShuYW1lKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogV2Vi
Q29yZS9odG1sL0NvbGxlY3Rpb25DYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1s
L0NvbGxlY3Rpb25DYWNoZS5jcHAJKHJldmlzaW9uIDQyMTA2KQorKysgV2ViQ29yZS9odG1sL0Nv
bGxlY3Rpb25DYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAxOTk5IExhcnMgS25vbGwgKGtub2xsQGtkZS5vcmcpCi0gKiAgICAgICAg
ICAgKEMpIDE5OTkgQW50dGkgS29pdmlzdG8gKGtvaXZpc3RvQGtkZS5vcmcpCi0gKiBDb3B5cmln
aHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMjEsNTYgKzE5LDE3IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCi0KLSNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKLSNpbmNs
dWRlICJIVE1MRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIkhU
TUxPYmplY3RFbGVtZW50LmgiCi0jaW5jbHVkZSAiTm9kZUxpc3QuaCIKLQotI2luY2x1ZGUgPHV0
aWxpdHk+CisjaW5jbHVkZSAiQ29sbGVjdGlvbkNhY2hlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKLQotSFRNTENvbGxlY3Rpb246OkhUTUxD
b2xsZWN0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYmFzZSwgVHlwZSB0eXBlKQotICAgIDogbV9pZHNE
b25lKGZhbHNlKQotICAgICwgbV9iYXNlKGJhc2UpCi0gICAgLCBtX3R5cGUodHlwZSkKLSAgICAs
IG1faW5mbyhtX2Jhc2UtPmlzRG9jdW1lbnROb2RlKCkgPyBzdGF0aWNfY2FzdDxEb2N1bWVudCo+
KG1fYmFzZS5nZXQoKSktPmNvbGxlY3Rpb25JbmZvKHR5cGUpIDogMCkKLSAgICAsIG1fb3duc0lu
Zm8oZmFsc2UpCi17Ci19Ci0KLUhUTUxDb2xsZWN0aW9uOjpIVE1MQ29sbGVjdGlvbihQYXNzUmVm
UHRyPE5vZGU+IGJhc2UsIFR5cGUgdHlwZSwgQ29sbGVjdGlvbkluZm8qIGluZm8pCi0gICAgOiBt
X2lkc0RvbmUoZmFsc2UpCi0gICAgLCBtX2Jhc2UoYmFzZSkKLSAgICAsIG1fdHlwZSh0eXBlKQot
ICAgICwgbV9pbmZvKGluZm8pCi0gICAgLCBtX293bnNJbmZvKGZhbHNlKQotewotfQotCi1QYXNz
UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKFBhc3NSZWZQdHI8
Tm9kZT4gYmFzZSwgVHlwZSB0eXBlKQotewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgSFRNTENv
bGxlY3Rpb24oYmFzZSwgdHlwZSkpOwotfQotCi1IVE1MQ29sbGVjdGlvbjo6fkhUTUxDb2xsZWN0
aW9uKCkKLXsKLSAgICBpZiAobV9vd25zSW5mbykKLSAgICAgICAgZGVsZXRlIG1faW5mbzsKLX0K
LQotSFRNTENvbGxlY3Rpb246OkNvbGxlY3Rpb25JbmZvOjpDb2xsZWN0aW9uSW5mbygpCitDb2xs
ZWN0aW9uQ2FjaGU6OkNvbGxlY3Rpb25DYWNoZSgpCiAgICAgOiB2ZXJzaW9uKDApCiB7CiAgICAg
cmVzZXQoKTsKIH0KIAotaW5saW5lIHZvaWQgSFRNTENvbGxlY3Rpb246OkNvbGxlY3Rpb25JbmZv
Ojpjb3B5Q2FjaGVNYXAoTm9kZUNhY2hlTWFwJiBkZXN0LCBjb25zdCBOb2RlQ2FjaGVNYXAmIHNy
YykKK2lubGluZSB2b2lkIENvbGxlY3Rpb25DYWNoZTo6Y29weUNhY2hlTWFwKE5vZGVDYWNoZU1h
cCYgZGVzdCwgY29uc3QgTm9kZUNhY2hlTWFwJiBzcmMpCiB7CiAgICAgQVNTRVJUKGRlc3QuaXNF
bXB0eSgpKTsKICAgICBOb2RlQ2FjaGVNYXA6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHNyYy5lbmQo
KTsKQEAgLTc4LDcgKzM3LDcgQEAgaW5saW5lIHZvaWQgSFRNTENvbGxlY3Rpb246OkNvbGxlY3Rp
b25JbgogICAgICAgICBkZXN0LmFkZChpdC0+Zmlyc3QsIG5ldyBWZWN0b3I8RWxlbWVudCo+KCpp
dC0+c2Vjb25kKSk7CiB9CiAKLUhUTUxDb2xsZWN0aW9uOjpDb2xsZWN0aW9uSW5mbzo6Q29sbGVj
dGlvbkluZm8oY29uc3QgQ29sbGVjdGlvbkluZm8mIG90aGVyKQorQ29sbGVjdGlvbkNhY2hlOjpD
b2xsZWN0aW9uQ2FjaGUoY29uc3QgQ29sbGVjdGlvbkNhY2hlJiBvdGhlcikKICAgICA6IHZlcnNp
b24ob3RoZXIudmVyc2lvbikKICAgICAsIGN1cnJlbnQob3RoZXIuY3VycmVudCkKICAgICAsIHBv
c2l0aW9uKG90aGVyLnBvc2l0aW9uKQpAQCAtOTEsNyArNTAsNyBAQCBIVE1MQ29sbGVjdGlvbjo6
Q29sbGVjdGlvbkluZm86OkNvbGxlY3RpCiAgICAgY29weUNhY2hlTWFwKG5hbWVDYWNoZSwgb3Ro
ZXIubmFtZUNhY2hlKTsKIH0KIAotdm9pZCBIVE1MQ29sbGVjdGlvbjo6Q29sbGVjdGlvbkluZm86
OnN3YXAoQ29sbGVjdGlvbkluZm8mIG90aGVyKQordm9pZCBDb2xsZWN0aW9uQ2FjaGU6OnN3YXAo
Q29sbGVjdGlvbkNhY2hlJiBvdGhlcikKIHsKICAgICBzdGQ6OnN3YXAodmVyc2lvbiwgb3RoZXIu
dmVyc2lvbik7CiAgICAgc3RkOjpzd2FwKGN1cnJlbnQsIG90aGVyLmN1cnJlbnQpOwpAQCAtMTA2
LDEzICs2NSwxMyBAQCB2b2lkIEhUTUxDb2xsZWN0aW9uOjpDb2xsZWN0aW9uSW5mbzo6c3dhCiAg
ICAgc3RkOjpzd2FwKGhhc05hbWVDYWNoZSwgb3RoZXIuaGFzTmFtZUNhY2hlKTsKIH0KIAotSFRN
TENvbGxlY3Rpb246OkNvbGxlY3Rpb25JbmZvOjp+Q29sbGVjdGlvbkluZm8oKQorQ29sbGVjdGlv
bkNhY2hlOjp+Q29sbGVjdGlvbkNhY2hlKCkKIHsKICAgICBkZWxldGVBbGxWYWx1ZXMoaWRDYWNo
ZSk7CiAgICAgZGVsZXRlQWxsVmFsdWVzKG5hbWVDYWNoZSk7CiB9CiAKLXZvaWQgSFRNTENvbGxl
Y3Rpb246OkNvbGxlY3Rpb25JbmZvOjpyZXNldCgpCit2b2lkIENvbGxlY3Rpb25DYWNoZTo6cmVz
ZXQoKQogewogICAgIGN1cnJlbnQgPSAwOwogICAgIHBvc2l0aW9uID0gMDsKQEAgLTEyNiwzMzMg
Kzg1LDQgQEAgdm9pZCBIVE1MQ29sbGVjdGlvbjo6Q29sbGVjdGlvbkluZm86OnJlcwogICAgIGhh
c05hbWVDYWNoZSA9IGZhbHNlOwogfQogCi12b2lkIEhUTUxDb2xsZWN0aW9uOjpyZXNldENvbGxl
Y3Rpb25JbmZvKCkgY29uc3QKLXsKLSAgICB1bnNpZ25lZCBkb2N2ZXJzaW9uID0gc3RhdGljX2Nh
c3Q8SFRNTERvY3VtZW50Kj4obV9iYXNlLT5kb2N1bWVudCgpKS0+ZG9tVHJlZVZlcnNpb24oKTsK
LQotICAgIGlmICghbV9pbmZvKSB7Ci0gICAgICAgIG1faW5mbyA9IG5ldyBDb2xsZWN0aW9uSW5m
bzsKLSAgICAgICAgbV9vd25zSW5mbyA9IHRydWU7Ci0gICAgICAgIG1faW5mby0+dmVyc2lvbiA9
IGRvY3ZlcnNpb247Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAobV9pbmZvLT52
ZXJzaW9uICE9IGRvY3ZlcnNpb24pIHsKLSAgICAgICAgbV9pbmZvLT5yZXNldCgpOwotICAgICAg
ICBtX2luZm8tPnZlcnNpb24gPSBkb2N2ZXJzaW9uOwotICAgIH0KLX0KLQotc3RhdGljIE5vZGUq
IG5leHROb2RlT3JTaWJsaW5nKE5vZGUqIGJhc2UsIE5vZGUqIG5vZGUsIGJvb2wgaW5jbHVkZUNo
aWxkcmVuKQotewotICAgIHJldHVybiBpbmNsdWRlQ2hpbGRyZW4gPyBub2RlLT50cmF2ZXJzZU5l
eHROb2RlKGJhc2UpIDogbm9kZS0+dHJhdmVyc2VOZXh0U2libGluZyhiYXNlKTsKLX0KLQotRWxl
bWVudCogSFRNTENvbGxlY3Rpb246Oml0ZW1BZnRlcihFbGVtZW50KiBwcmV2aW91cykgY29uc3QK
LXsKLSAgICBib29sIGRlZXAgPSB0cnVlOwotCi0gICAgc3dpdGNoIChtX3R5cGUpIHsKLSAgICAg
ICAgY2FzZSBEb2NBbGw6Ci0gICAgICAgIGNhc2UgRG9jQW5jaG9yczoKLSAgICAgICAgY2FzZSBE
b2NBcHBsZXRzOgotICAgICAgICBjYXNlIERvY0VtYmVkczoKLSAgICAgICAgY2FzZSBEb2NGb3Jt
czoKLSAgICAgICAgY2FzZSBEb2NJbWFnZXM6Ci0gICAgICAgIGNhc2UgRG9jTGlua3M6Ci0gICAg
ICAgIGNhc2UgRG9jT2JqZWN0czoKLSAgICAgICAgY2FzZSBEb2NTY3JpcHRzOgotICAgICAgICBj
YXNlIERvY3VtZW50TmFtZWRJdGVtczoKLSAgICAgICAgY2FzZSBNYXBBcmVhczoKLSAgICAgICAg
Y2FzZSBPdGhlcjoKLSAgICAgICAgY2FzZSBTZWxlY3RPcHRpb25zOgotICAgICAgICBjYXNlIFdp
bmRvd05hbWVkSXRlbXM6Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSBOb2RlQ2hp
bGRyZW46Ci0gICAgICAgIGNhc2UgVFJDZWxsczoKLSAgICAgICAgY2FzZSBUU2VjdGlvblJvd3M6
Ci0gICAgICAgIGNhc2UgVGFibGVUQm9kaWVzOgotICAgICAgICAgICAgZGVlcCA9IGZhbHNlOwot
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgTm9kZSogY3VycmVudDsKLSAgICBpZiAo
IXByZXZpb3VzKQotICAgICAgICBjdXJyZW50ID0gbV9iYXNlLT5maXJzdENoaWxkKCk7Ci0gICAg
ZWxzZQotICAgICAgICBjdXJyZW50ID0gbmV4dE5vZGVPclNpYmxpbmcobV9iYXNlLmdldCgpLCBw
cmV2aW91cywgZGVlcCk7Ci0KLSAgICBmb3IgKDsgY3VycmVudDsgY3VycmVudCA9IG5leHROb2Rl
T3JTaWJsaW5nKG1fYmFzZS5nZXQoKSwgY3VycmVudCwgZGVlcCkpIHsKLSAgICAgICAgaWYgKCFj
dXJyZW50LT5pc0VsZW1lbnROb2RlKCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAg
RWxlbWVudCogZSA9IHN0YXRpY19jYXN0PEVsZW1lbnQqPihjdXJyZW50KTsKLSAgICAgICAgc3dp
dGNoIChtX3R5cGUpIHsKLSAgICAgICAgICAgIGNhc2UgRG9jSW1hZ2VzOgotICAgICAgICAgICAg
ICAgIGlmIChlLT5oYXNMb2NhbE5hbWUoaW1nVGFnKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIERvY1Njcmlw
dHM6Ci0gICAgICAgICAgICAgICAgaWYgKGUtPmhhc0xvY2FsTmFtZShzY3JpcHRUYWcpKQotICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgICAgIGNhc2UgRG9jRm9ybXM6Ci0gICAgICAgICAgICAgICAgaWYgKGUtPmhhc0xvY2FsTmFt
ZShmb3JtVGFnKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7Ci0gICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFRhYmxlVEJvZGllczoKLSAgICAgICAgICAgICAg
ICBpZiAoZS0+aGFzTG9jYWxOYW1lKHRib2R5VGFnKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFRSQ2VsbHM6
Ci0gICAgICAgICAgICAgICAgaWYgKGUtPmhhc0xvY2FsTmFtZSh0ZFRhZykgfHwgZS0+aGFzTG9j
YWxOYW1lKHRoVGFnKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFRTZWN0aW9uUm93czoKLSAgICAgICAgICAg
ICAgICBpZiAoZS0+aGFzTG9jYWxOYW1lKHRyVGFnKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIGU7Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFNlbGVjdE9w
dGlvbnM6Ci0gICAgICAgICAgICAgICAgaWYgKGUtPmhhc0xvY2FsTmFtZShvcHRpb25UYWcpKQot
ICAgICAgICAgICAgICAgICAgICByZXR1cm4gZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGNhc2UgTWFwQXJlYXM6Ci0gICAgICAgICAgICAgICAgaWYgKGUtPmhhc0xvY2Fs
TmFtZShhcmVhVGFnKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7Ci0gICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIERvY0FwcGxldHM6IC8vIGFsbCA8YXBwbGV0
PiBlbGVtZW50cyBhbmQgPG9iamVjdD4gZWxlbWVudHMgdGhhdCBjb250YWluIEphdmEgQXBwbGV0
cwotICAgICAgICAgICAgICAgIGlmIChlLT5oYXNMb2NhbE5hbWUoYXBwbGV0VGFnKSkKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGU7Ci0gICAgICAgICAgICAgICAgaWYgKGUtPmhhc0xvY2Fs
TmFtZShvYmplY3RUYWcpICYmIHN0YXRpY19jYXN0PEhUTUxPYmplY3RFbGVtZW50Kj4oZSktPmNv
bnRhaW5zSmF2YUFwcGxldCgpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gZTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgRG9jRW1iZWRzOgotICAgICAgICAg
ICAgICAgIGlmIChlLT5oYXNMb2NhbE5hbWUoZW1iZWRUYWcpKQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gZTsKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgRG9j
T2JqZWN0czoKLSAgICAgICAgICAgICAgICBpZiAoZS0+aGFzTG9jYWxOYW1lKG9iamVjdFRhZykp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBlOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSBEb2NMaW5rczogLy8gYWxsIDxhPiBhbmQgPGFyZWE+IGVsZW1lbnRz
IHdpdGggYSB2YWx1ZSBmb3IgaHJlZgotICAgICAgICAgICAgICAgIGlmICgoZS0+aGFzTG9jYWxO
YW1lKGFUYWcpIHx8IGUtPmhhc0xvY2FsTmFtZShhcmVhVGFnKSkgJiYgKCFlLT5nZXRBdHRyaWJ1
dGUoaHJlZkF0dHIpLmlzTnVsbCgpKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7Ci0g
ICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIERvY0FuY2hvcnM6IC8vIGFs
bCA8YT4gZWxlbWVudHMgd2l0aCBhIHZhbHVlIGZvciBuYW1lCi0gICAgICAgICAgICAgICAgaWYg
KGUtPmhhc0xvY2FsTmFtZShhVGFnKSAmJiAhZS0+Z2V0QXR0cmlidXRlKG5hbWVBdHRyKS5pc051
bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGU7Ci0gICAgICAgICAgICAgICAgYnJl
YWs7Ci0gICAgICAgICAgICBjYXNlIERvY0FsbDoKLSAgICAgICAgICAgIGNhc2UgTm9kZUNoaWxk
cmVuOgotICAgICAgICAgICAgICAgIHJldHVybiBlOwotICAgICAgICAgICAgY2FzZSBEb2N1bWVu
dE5hbWVkSXRlbXM6Ci0gICAgICAgICAgICBjYXNlIE90aGVyOgotICAgICAgICAgICAgY2FzZSBX
aW5kb3dOYW1lZEl0ZW1zOgotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgcmV0dXJuIDA7
Ci19Ci0KLXVuc2lnbmVkIEhUTUxDb2xsZWN0aW9uOjpjYWxjTGVuZ3RoKCkgY29uc3QKLXsKLSAg
ICB1bnNpZ25lZCBsZW4gPSAwOwotICAgIGZvciAoRWxlbWVudCogY3VycmVudCA9IGl0ZW1BZnRl
cigwKTsgY3VycmVudDsgY3VycmVudCA9IGl0ZW1BZnRlcihjdXJyZW50KSkKLSAgICAgICAgKyts
ZW47Ci0gICAgcmV0dXJuIGxlbjsKLX0KLQotLy8gc2luY2UgdGhlIGNvbGxlY3Rpb25zIGFyZSB0
byBiZSAibGl2ZSIsIHdlIGhhdmUgdG8gZG8gdGhlCi0vLyBjYWxjdWxhdGlvbiBldmVyeSB0aW1l
IGlmIGFueXRoaW5nIGhhcyBjaGFuZ2VkCi11bnNpZ25lZCBIVE1MQ29sbGVjdGlvbjo6bGVuZ3Ro
KCkgY29uc3QKLXsKLSAgICByZXNldENvbGxlY3Rpb25JbmZvKCk7Ci0gICAgaWYgKCFtX2luZm8t
Pmhhc0xlbmd0aCkgewotICAgICAgICBtX2luZm8tPmxlbmd0aCA9IGNhbGNMZW5ndGgoKTsKLSAg
ICAgICAgbV9pbmZvLT5oYXNMZW5ndGggPSB0cnVlOwotICAgIH0KLSAgICByZXR1cm4gbV9pbmZv
LT5sZW5ndGg7Ci19Ci0KLU5vZGUqIEhUTUxDb2xsZWN0aW9uOjppdGVtKHVuc2lnbmVkIGluZGV4
KSBjb25zdAotewotICAgICByZXNldENvbGxlY3Rpb25JbmZvKCk7Ci0gICAgIGlmIChtX2luZm8t
PmN1cnJlbnQgJiYgbV9pbmZvLT5wb3NpdGlvbiA9PSBpbmRleCkKLSAgICAgICAgIHJldHVybiBt
X2luZm8tPmN1cnJlbnQ7Ci0gICAgIGlmIChtX2luZm8tPmhhc0xlbmd0aCAmJiBtX2luZm8tPmxl
bmd0aCA8PSBpbmRleCkKLSAgICAgICAgIHJldHVybiAwOwotICAgICBpZiAoIW1faW5mby0+Y3Vy
cmVudCB8fCBtX2luZm8tPnBvc2l0aW9uID4gaW5kZXgpIHsKLSAgICAgICAgIG1faW5mby0+Y3Vy
cmVudCA9IGl0ZW1BZnRlcigwKTsKLSAgICAgICAgIG1faW5mby0+cG9zaXRpb24gPSAwOwotICAg
ICAgICAgaWYgKCFtX2luZm8tPmN1cnJlbnQpCi0gICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAg
IH0KLSAgICAgRWxlbWVudCogZSA9IG1faW5mby0+Y3VycmVudDsKLSAgICAgZm9yICh1bnNpZ25l
ZCBwb3MgPSBtX2luZm8tPnBvc2l0aW9uOyBlICYmIHBvcyA8IGluZGV4OyBwb3MrKykKLSAgICAg
ICAgIGUgPSBpdGVtQWZ0ZXIoZSk7Ci0gICAgIG1faW5mby0+Y3VycmVudCA9IGU7Ci0gICAgIG1f
aW5mby0+cG9zaXRpb24gPSBpbmRleDsKLSAgICAgcmV0dXJuIG1faW5mby0+Y3VycmVudDsKLX0K
LQotTm9kZSogSFRNTENvbGxlY3Rpb246OmZpcnN0SXRlbSgpIGNvbnN0Ci17Ci0gICAgIHJldHVy
biBpdGVtKDApOwotfQotCi1Ob2RlKiBIVE1MQ29sbGVjdGlvbjo6bmV4dEl0ZW0oKSBjb25zdAot
ewotICAgICByZXNldENvbGxlY3Rpb25JbmZvKCk7Ci0gCi0gICAgIC8vIExvb2sgZm9yIHRoZSAn
c2Vjb25kJyBpdGVtLiBUaGUgZmlyc3Qgb25lIGlzIGN1cnJlbnRJdGVtLCBhbHJlYWR5IGdpdmVu
IGJhY2suCi0gICAgIEVsZW1lbnQqIHJldHZhbCA9IGl0ZW1BZnRlcihtX2luZm8tPmN1cnJlbnQp
OwotICAgICBtX2luZm8tPmN1cnJlbnQgPSByZXR2YWw7Ci0gICAgIG1faW5mby0+cG9zaXRpb24r
KzsKLSAgICAgcmV0dXJuIHJldHZhbDsKLX0KLQotYm9vbCBIVE1MQ29sbGVjdGlvbjo6Y2hlY2tG
b3JOYW1lTWF0Y2goRWxlbWVudCogZWxlbWVudCwgYm9vbCBjaGVja05hbWUsIGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSkgY29uc3QKLXsKLSAgICBpZiAoIWVsZW1lbnQtPmlzSFRNTEVsZW1lbnQo
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIAotICAgIEhUTUxFbGVtZW50KiBlID0gc3Rh
dGljX2Nhc3Q8SFRNTEVsZW1lbnQqPihlbGVtZW50KTsKLSAgICBpZiAoIWNoZWNrTmFtZSkKLSAg
ICAgICAgcmV0dXJuIGUtPmdldEF0dHJpYnV0ZShpZEF0dHIpID09IG5hbWU7Ci0KLSAgICAvLyBk
b2N1bWVudC5hbGwgcmV0dXJucyBvbmx5IGltYWdlcywgZm9ybXMsIGFwcGxldHMsIG9iamVjdHMg
YW5kIGVtYmVkcwotICAgIC8vIGJ5IG5hbWUgKHRob3VnaCBldmVyeXRoaW5nIGJ5IGlkKQotICAg
IGlmIChtX3R5cGUgPT0gRG9jQWxsICYmIAotICAgICAgICAhKGUtPmhhc0xvY2FsTmFtZShpbWdU
YWcpIHx8IGUtPmhhc0xvY2FsTmFtZShmb3JtVGFnKSB8fAotICAgICAgICAgIGUtPmhhc0xvY2Fs
TmFtZShhcHBsZXRUYWcpIHx8IGUtPmhhc0xvY2FsTmFtZShvYmplY3RUYWcpIHx8Ci0gICAgICAg
ICAgZS0+aGFzTG9jYWxOYW1lKGVtYmVkVGFnKSB8fCBlLT5oYXNMb2NhbE5hbWUoaW5wdXRUYWcp
IHx8Ci0gICAgICAgICAgZS0+aGFzTG9jYWxOYW1lKHNlbGVjdFRhZykpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICByZXR1cm4gZS0+Z2V0QXR0cmlidXRlKG5hbWVBdHRyKSA9PSBuYW1l
ICYmIGUtPmdldEF0dHJpYnV0ZShpZEF0dHIpICE9IG5hbWU7Ci19Ci0KLU5vZGUqIEhUTUxDb2xs
ZWN0aW9uOjpuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdAotewotICAg
IC8vIGh0dHA6Ly9tc2RuLm1pY3Jvc29mdC5jb20vd29ya3Nob3AvYXV0aG9yL2RodG1sL3JlZmVy
ZW5jZS9tZXRob2RzL25hbWVkaXRlbS5hc3AKLSAgICAvLyBUaGlzIG1ldGhvZCBmaXJzdCBzZWFy
Y2hlcyBmb3IgYW4gb2JqZWN0IHdpdGggYSBtYXRjaGluZyBpZAotICAgIC8vIGF0dHJpYnV0ZS4g
SWYgYSBtYXRjaCBpcyBub3QgZm91bmQsIHRoZSBtZXRob2QgdGhlbiBzZWFyY2hlcyBmb3IgYW4K
LSAgICAvLyBvYmplY3Qgd2l0aCBhIG1hdGNoaW5nIG5hbWUgYXR0cmlidXRlLCBidXQgb25seSBv
biB0aG9zZSBlbGVtZW50cwotICAgIC8vIHRoYXQgYXJlIGFsbG93ZWQgYSBuYW1lIGF0dHJpYnV0
ZS4KLSAgICByZXNldENvbGxlY3Rpb25JbmZvKCk7Ci0gICAgbV9pZHNEb25lID0gZmFsc2U7Ci0K
LSAgICBmb3IgKEVsZW1lbnQqIGUgPSBpdGVtQWZ0ZXIoMCk7IGU7IGUgPSBpdGVtQWZ0ZXIoZSkp
IHsKLSAgICAgICAgaWYgKGNoZWNrRm9yTmFtZU1hdGNoKGUsIG1faWRzRG9uZSwgbmFtZSkpIHsK
LSAgICAgICAgICAgIG1faW5mby0+Y3VycmVudCA9IGU7Ci0gICAgICAgICAgICByZXR1cm4gZTsK
LSAgICAgICAgfQotICAgIH0KLSAgICAgICAgCi0gICAgbV9pZHNEb25lID0gdHJ1ZTsKLQotICAg
IGZvciAoRWxlbWVudCogZSA9IGl0ZW1BZnRlcigwKTsgZTsgZSA9IGl0ZW1BZnRlcihlKSkgewot
ICAgICAgICBpZiAoY2hlY2tGb3JOYW1lTWF0Y2goZSwgbV9pZHNEb25lLCBuYW1lKSkgewotICAg
ICAgICAgICAgbV9pbmZvLT5jdXJyZW50ID0gZTsKLSAgICAgICAgICAgIHJldHVybiBlOwotICAg
ICAgICB9Ci0gICAgfQotCi0gICAgbV9pbmZvLT5jdXJyZW50ID0gMDsKLSAgICByZXR1cm4gMDsK
LX0KLQotdm9pZCBIVE1MQ29sbGVjdGlvbjo6dXBkYXRlTmFtZUNhY2hlKCkgY29uc3QKLXsKLSAg
ICBpZiAobV9pbmZvLT5oYXNOYW1lQ2FjaGUpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBm
b3IgKEVsZW1lbnQqIGVsZW1lbnQgPSBpdGVtQWZ0ZXIoMCk7IGVsZW1lbnQ7IGVsZW1lbnQgPSBp
dGVtQWZ0ZXIoZWxlbWVudCkpIHsKLSAgICAgICAgaWYgKCFlbGVtZW50LT5pc0hUTUxFbGVtZW50
KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgSFRNTEVsZW1lbnQqIGUgPSBzdGF0
aWNfY2FzdDxIVE1MRWxlbWVudCo+KGVsZW1lbnQpOwotICAgICAgICBjb25zdCBBdG9taWNTdHJp
bmcmIGlkQXR0clZhbCA9IGUtPmdldEF0dHJpYnV0ZShpZEF0dHIpOwotICAgICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWVBdHRyVmFsID0gZS0+Z2V0QXR0cmlidXRlKG5hbWVBdHRyKTsKLSAg
ICAgICAgaWYgKCFpZEF0dHJWYWwuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAvLyBhZGQgdG8g
aWQgY2FjaGUKLSAgICAgICAgICAgIFZlY3RvcjxFbGVtZW50Kj4qIGlkVmVjdG9yID0gbV9pbmZv
LT5pZENhY2hlLmdldChpZEF0dHJWYWwuaW1wbCgpKTsKLSAgICAgICAgICAgIGlmICghaWRWZWN0
b3IpIHsKLSAgICAgICAgICAgICAgICBpZFZlY3RvciA9IG5ldyBWZWN0b3I8RWxlbWVudCo+Owot
ICAgICAgICAgICAgICAgIG1faW5mby0+aWRDYWNoZS5hZGQoaWRBdHRyVmFsLmltcGwoKSwgaWRW
ZWN0b3IpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWRWZWN0b3ItPmFwcGVuZChlKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoIW5hbWVBdHRyVmFsLmlzRW1wdHkoKSAmJiBpZEF0dHJW
YWwgIT0gbmFtZUF0dHJWYWwKLSAgICAgICAgICAgICYmIChtX3R5cGUgIT0gRG9jQWxsIHx8IAot
ICAgICAgICAgICAgICAgIChlLT5oYXNMb2NhbE5hbWUoaW1nVGFnKSB8fCBlLT5oYXNMb2NhbE5h
bWUoZm9ybVRhZykgfHwKLSAgICAgICAgICAgICAgICAgZS0+aGFzTG9jYWxOYW1lKGFwcGxldFRh
ZykgfHwgZS0+aGFzTG9jYWxOYW1lKG9iamVjdFRhZykgfHwKLSAgICAgICAgICAgICAgICAgZS0+
aGFzTG9jYWxOYW1lKGVtYmVkVGFnKSB8fCBlLT5oYXNMb2NhbE5hbWUoaW5wdXRUYWcpIHx8Ci0g
ICAgICAgICAgICAgICAgIGUtPmhhc0xvY2FsTmFtZShzZWxlY3RUYWcpKSkpIHsKLSAgICAgICAg
ICAgIC8vIGFkZCB0byBuYW1lIGNhY2hlCi0gICAgICAgICAgICBWZWN0b3I8RWxlbWVudCo+KiBu
YW1lVmVjdG9yID0gbV9pbmZvLT5uYW1lQ2FjaGUuZ2V0KG5hbWVBdHRyVmFsLmltcGwoKSk7Ci0g
ICAgICAgICAgICBpZiAoIW5hbWVWZWN0b3IpIHsKLSAgICAgICAgICAgICAgICBuYW1lVmVjdG9y
ID0gbmV3IFZlY3RvcjxFbGVtZW50Kj47Ci0gICAgICAgICAgICAgICAgbV9pbmZvLT5uYW1lQ2Fj
aGUuYWRkKG5hbWVBdHRyVmFsLmltcGwoKSwgbmFtZVZlY3Rvcik7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBuYW1lVmVjdG9yLT5hcHBlbmQoZSk7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAg
ICBtX2luZm8tPmhhc05hbWVDYWNoZSA9IHRydWU7Ci19Ci0KLXZvaWQgSFRNTENvbGxlY3Rpb246
Om5hbWVkSXRlbXMoY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lLCBWZWN0b3I8UmVmUHRyPE5vZGU+
ID4mIHJlc3VsdCkgY29uc3QKLXsKLSAgICBBU1NFUlQocmVzdWx0LmlzRW1wdHkoKSk7Ci0gICAg
Ci0gICAgaWYgKG5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICByZXNldENv
bGxlY3Rpb25JbmZvKCk7Ci0gICAgdXBkYXRlTmFtZUNhY2hlKCk7Ci0gICAgCi0gICAgVmVjdG9y
PEVsZW1lbnQqPiogaWRSZXN1bHRzID0gbV9pbmZvLT5pZENhY2hlLmdldChuYW1lLmltcGwoKSk7
Ci0gICAgVmVjdG9yPEVsZW1lbnQqPiogbmFtZVJlc3VsdHMgPSBtX2luZm8tPm5hbWVDYWNoZS5n
ZXQobmFtZS5pbXBsKCkpOwotICAgIAotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGlkUmVzdWx0
cyAmJiBpIDwgaWRSZXN1bHRzLT5zaXplKCk7ICsraSkKLSAgICAgICAgcmVzdWx0LmFwcGVuZChp
ZFJlc3VsdHMtPmF0KGkpKTsKLQotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IG5hbWVSZXN1bHRz
ICYmIGkgPCBuYW1lUmVzdWx0cy0+c2l6ZSgpOyArK2kpCi0gICAgICAgIHJlc3VsdC5hcHBlbmQo
bmFtZVJlc3VsdHMtPmF0KGkpKTsKLX0KLQotCi1Ob2RlKiBIVE1MQ29sbGVjdGlvbjo6bmV4dE5h
bWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0Ci17Ci0gICAgcmVzZXRDb2xs
ZWN0aW9uSW5mbygpOwotCi0gICAgZm9yIChFbGVtZW50KiBlID0gaXRlbUFmdGVyKG1faW5mby0+
Y3VycmVudCk7IGU7IGUgPSBpdGVtQWZ0ZXIoZSkpIHsKLSAgICAgICAgaWYgKGNoZWNrRm9yTmFt
ZU1hdGNoKGUsIG1faWRzRG9uZSwgbmFtZSkpIHsKLSAgICAgICAgICAgIG1faW5mby0+Y3VycmVu
dCA9IGU7Ci0gICAgICAgICAgICByZXR1cm4gZTsKLSAgICAgICAgfQotICAgIH0KLSAgICAKLSAg
ICBpZiAobV9pZHNEb25lKSB7Ci0gICAgICAgIG1faW5mby0+Y3VycmVudCA9IDA7IAotICAgICAg
ICByZXR1cm4gMDsKLSAgICB9Ci0gICAgbV9pZHNEb25lID0gdHJ1ZTsKLQotICAgIGZvciAoRWxl
bWVudCogZSA9IGl0ZW1BZnRlcihtX2luZm8tPmN1cnJlbnQpOyBlOyBlID0gaXRlbUFmdGVyKGUp
KSB7Ci0gICAgICAgIGlmIChjaGVja0Zvck5hbWVNYXRjaChlLCBtX2lkc0RvbmUsIG5hbWUpKSB7
Ci0gICAgICAgICAgICBtX2luZm8tPmN1cnJlbnQgPSBlOwotICAgICAgICAgICAgcmV0dXJuIGU7
Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotUGFzc1JlZlB0cjxOb2Rl
TGlzdD4gSFRNTENvbGxlY3Rpb246OnRhZ3MoY29uc3QgU3RyaW5nJiBuYW1lKQotewotICAgIHJl
dHVybiBtX2Jhc2UtPmdldEVsZW1lbnRzQnlUYWdOYW1lKG5hbWUpOwotfQotCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL2h0bWwvQ29sbGVjdGlvbkNhY2hlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25DYWNoZS5oCShyZXZpc2lvbiA0MjEwNikJ
KGZyb20gV2ViQ29yZS9odG1sL0hUTUxDb2xsZWN0aW9uLmg6NDIxMDYpCisrKyBXZWJDb3JlL2h0
bWwvQ29sbGVjdGlvbkNhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDE5OTkgTGFycyBLbm9sbCAoa25vbGxAa2RlLm9yZykKKyAqICAg
ICAgICAgICAoQykgMTk5OSBBbnR0aSBLb2l2aXN0byAoa29pdmlzdG9Aa2RlLm9yZykKKyAqIENv
cHlyaWdodCAoQykgMjAwMywgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdh
cmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgorICogbW9kaWZ5IGl0IHVuZGVyIHRo
ZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKKyAqIExpY2Vuc2UgYXMg
cHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgorICogdmVy
c2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJz
aW9uLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0
IGl0IHdpbGwgYmUgdXNlZnVsLAorICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0
IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCisgKiBMaWJyYXJ5IEdl
bmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KKyAqCisgKiBZb3Ugc2hvdWxk
IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlCisgKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcu
TElCLiAgSWYgbm90LCB3cml0ZSB0bworICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKKyAqIEJvc3RvbiwgTUEgMDIx
MTAtMTMwMSwgVVNBLgorICoKKyAqLworCisjaWZuZGVmIEhUTUxDb2xsZWN0aW9uX2gKKyNkZWZp
bmUgSFRNTENvbGxlY3Rpb25faAorCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CisjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEF0b21pY1N0cmlu
ZzsKK2NsYXNzIEF0b21pY1N0cmluZ0ltcGw7CitjbGFzcyBFbGVtZW50OworY2xhc3MgTm9kZTsK
K2NsYXNzIE5vZGVMaXN0OworY2xhc3MgU3RyaW5nOworCitjbGFzcyBIVE1MQ29sbGVjdGlvbiA6
IHB1YmxpYyBSZWZDb3VudGVkPEhUTUxDb2xsZWN0aW9uPiB7CitwdWJsaWM6CisgICAgZW51bSBU
eXBlIHsKKyAgICAgICAgLy8gdW5uYW1lZCBjb2xsZWN0aW9uIHR5cGVzIGNhY2hlZCBpbiB0aGUg
ZG9jdW1lbnQKKworICAgICAgICBEb2NJbWFnZXMsICAgIC8vIGFsbCA8aW1nPiBlbGVtZW50cyBp
biB0aGUgZG9jdW1lbnQKKyAgICAgICAgRG9jQXBwbGV0cywgICAvLyBhbGwgPG9iamVjdD4gYW5k
IDxhcHBsZXQ+IGVsZW1lbnRzCisgICAgICAgIERvY0VtYmVkcywgICAgLy8gYWxsIDxlbWJlZD4g
ZWxlbWVudHMKKyAgICAgICAgRG9jT2JqZWN0cywgICAvLyBhbGwgPG9iamVjdD4gZWxlbWVudHMK
KyAgICAgICAgRG9jRm9ybXMsICAgICAvLyBhbGwgPGZvcm0+IGVsZW1lbnRzCisgICAgICAgIERv
Y0xpbmtzLCAgICAgLy8gYWxsIDxhPiBfYW5kXyA8YXJlYT4gZWxlbWVudHMgd2l0aCBhIHZhbHVl
IGZvciBocmVmCisgICAgICAgIERvY0FuY2hvcnMsICAgLy8gYWxsIDxhPiBlbGVtZW50cyB3aXRo
IGEgdmFsdWUgZm9yIG5hbWUKKyAgICAgICAgRG9jU2NyaXB0cywgICAvLyBhbGwgPHNjcmlwdD4g
ZWxlbWVudHMKKworICAgICAgICBEb2NBbGwsICAgICAgIC8vICJhbGwiIGVsZW1lbnRzIChJRSkK
KyAgICAgICAgTm9kZUNoaWxkcmVuLCAvLyBmaXJzdC1sZXZlbCBjaGlsZHJlbiAoSUUpCisKKyAg
ICAgICAgLy8gbmFtZWQgY29sbGVjdGlvbiB0eXBlcyBjYWNoZWQgaW4gdGhlIGRvY3VtZW50CisK
KyAgICAgICAgV2luZG93TmFtZWRJdGVtcywKKyAgICAgICAgRG9jdW1lbnROYW1lZEl0ZW1zLAor
CisgICAgICAgIC8vIHR5cGVzIG5vdCBjYWNoZWQgaW4gdGhlIGRvY3VtZW50OyB0aGVzZSBhcmUg
dHlwZXMgdGhhdCBjYW4ndCBiZSB1c2VkIG9uIGEgZG9jdW1lbnQKKworICAgICAgICBUYWJsZVRC
b2RpZXMsIC8vIGFsbCA8dGJvZHk+IGVsZW1lbnRzIGluIHRoaXMgdGFibGUKKyAgICAgICAgVFNl
Y3Rpb25Sb3dzLCAvLyBhbGwgcm93IGVsZW1lbnRzIGluIHRoaXMgdGFibGUgc2VjdGlvbgorICAg
ICAgICBUUkNlbGxzLCAgICAgIC8vIGFsbCBjZWxscyBpbiB0aGlzIHJvdworICAgICAgICBTZWxl
Y3RPcHRpb25zLAorICAgICAgICBNYXBBcmVhcywKKworICAgICAgICBPdGhlcgorICAgIH07CisK
KyAgICBzdGF0aWMgY29uc3QgVHlwZSBGaXJzdFVubmFtZWREb2N1bWVudENhY2hlZFR5cGUgPSBE
b2NJbWFnZXM7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE51bVVubmFtZWREb2N1bWVudENh
Y2hlZFR5cGVzID0gTm9kZUNoaWxkcmVuIC0gRG9jSW1hZ2VzICsgMTsKKworICAgIHN0YXRpYyBj
b25zdCBUeXBlIEZpcnN0TmFtZWREb2N1bWVudENhY2hlZFR5cGUgPSBXaW5kb3dOYW1lZEl0ZW1z
OworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBOdW1OYW1lZERvY3VtZW50Q2FjaGVkVHlwZXMg
PSBEb2N1bWVudE5hbWVkSXRlbXMgLSBXaW5kb3dOYW1lZEl0ZW1zICsgMTsKKworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjcmVhdGUoUGFzc1JlZlB0cjxOb2RlPiBiYXNl
LCBUeXBlKTsKKyAgICB2aXJ0dWFsIH5IVE1MQ29sbGVjdGlvbigpOworICAgIAorICAgIHVuc2ln
bmVkIGxlbmd0aCgpIGNvbnN0OworICAgIAorICAgIHZpcnR1YWwgTm9kZSogaXRlbSh1bnNpZ25l
ZCBpbmRleCkgY29uc3Q7CisgICAgdmlydHVhbCBOb2RlKiBuZXh0SXRlbSgpIGNvbnN0OworCisg
ICAgdmlydHVhbCBOb2RlKiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25z
dDsKKyAgICB2aXJ0dWFsIE5vZGUqIG5leHROYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKSBjb25zdDsgLy8gSW4gY2FzZSBvZiBtdWx0aXBsZSBpdGVtcyBuYW1lZCB0aGUgc2FtZSB3
YXkKKworICAgIE5vZGUqIGZpcnN0SXRlbSgpIGNvbnN0OworCisgICAgdm9pZCBuYW1lZEl0ZW1z
KGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSwgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JikgY29uc3Q7
CisKKyAgICBQYXNzUmVmUHRyPE5vZGVMaXN0PiB0YWdzKGNvbnN0IFN0cmluZyYpOworCisgICAg
Tm9kZSogYmFzZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZS5nZXQoKTsgfQorICAgIFR5cGUgdHlw
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQorCisgICAgLy8gRklYTUU6IFRoaXMgY2xhc3Mg
bmFtZSBpcyBhIGJhZCBpbiB0d28gd2F5cy4gRmlyc3QsICJpbmZvIiBpcyBtdWNoIHRvbyB2YWd1
ZSwKKyAgICAvLyBhbmQgZG9lc24ndCBjb252ZXkgdGhlIGpvYiBvZiB0aGlzIGNsYXNzIChjYWNo
aW5nIGNvbGxlY3Rpb24gc3RhdGUpLgorICAgIC8vIFNlY29uZCwgc2luY2UgdGhpcyBpcyBhIG1l
bWJlciBvZiBIVE1MQ29sbGVjdGlvbiwgaXQgZG9lc24ndCBuZWVkICJjb2xsZWN0aW9uIgorICAg
IC8vIGluIGl0cyBuYW1lLgorICAgIHN0cnVjdCBDb2xsZWN0aW9uSW5mbyB7CisgICAgICAgIENv
bGxlY3Rpb25JbmZvKCk7CisgICAgICAgIENvbGxlY3Rpb25JbmZvKGNvbnN0IENvbGxlY3Rpb25J
bmZvJik7CisgICAgICAgIENvbGxlY3Rpb25JbmZvJiBvcGVyYXRvcj0oY29uc3QgQ29sbGVjdGlv
bkluZm8mIG90aGVyKQorICAgICAgICB7CisgICAgICAgICAgICBDb2xsZWN0aW9uSW5mbyB0bXAo
b3RoZXIpOyAgICAKKyAgICAgICAgICAgIHN3YXAodG1wKTsKKyAgICAgICAgICAgIHJldHVybiAq
dGhpczsKKyAgICAgICAgfQorICAgICAgICB+Q29sbGVjdGlvbkluZm8oKTsKKworICAgICAgICB2
b2lkIHJlc2V0KCk7CisgICAgICAgIHZvaWQgc3dhcChDb2xsZWN0aW9uSW5mbyYpOworCisgICAg
ICAgIHR5cGVkZWYgSGFzaE1hcDxBdG9taWNTdHJpbmdJbXBsKiwgVmVjdG9yPEVsZW1lbnQqPio+
IE5vZGVDYWNoZU1hcDsKKworICAgICAgICB1bnNpZ25lZCB2ZXJzaW9uOworICAgICAgICBFbGVt
ZW50KiBjdXJyZW50OworICAgICAgICB1bnNpZ25lZCBwb3NpdGlvbjsKKyAgICAgICAgdW5zaWdu
ZWQgbGVuZ3RoOworICAgICAgICBpbnQgZWxlbWVudHNBcnJheVBvc2l0aW9uOworICAgICAgICBO
b2RlQ2FjaGVNYXAgaWRDYWNoZTsKKyAgICAgICAgTm9kZUNhY2hlTWFwIG5hbWVDYWNoZTsKKyAg
ICAgICAgYm9vbCBoYXNMZW5ndGg7CisgICAgICAgIGJvb2wgaGFzTmFtZUNhY2hlOworCisgICAg
cHJpdmF0ZToKKyAgICAgICAgc3RhdGljIHZvaWQgY29weUNhY2hlTWFwKE5vZGVDYWNoZU1hcCYs
IGNvbnN0IE5vZGVDYWNoZU1hcCYpOworICAgIH07CisKK3Byb3RlY3RlZDoKKyAgICBIVE1MQ29s
bGVjdGlvbihQYXNzUmVmUHRyPE5vZGU+IGJhc2UsIFR5cGUsIENvbGxlY3Rpb25JbmZvKik7CisK
KyAgICBDb2xsZWN0aW9uSW5mbyogaW5mbygpIGNvbnN0IHsgcmV0dXJuIG1faW5mbzsgfQorICAg
IHZpcnR1YWwgdm9pZCByZXNldENvbGxlY3Rpb25JbmZvKCkgY29uc3Q7CisKKyAgICBtdXRhYmxl
IGJvb2wgbV9pZHNEb25lOyAvLyBmb3IgbmV4dE5hbWVkSXRlbSgpCisKK3ByaXZhdGU6CisgICAg
SFRNTENvbGxlY3Rpb24oUGFzc1JlZlB0cjxOb2RlPiBiYXNlLCBUeXBlKTsKKworICAgIHZpcnR1
YWwgRWxlbWVudCogaXRlbUFmdGVyKEVsZW1lbnQqKSBjb25zdDsKKyAgICB2aXJ0dWFsIHVuc2ln
bmVkIGNhbGNMZW5ndGgoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTmFtZUNhY2hl
KCkgY29uc3Q7CisKKyAgICBib29sIGNoZWNrRm9yTmFtZU1hdGNoKEVsZW1lbnQqLCBib29sIGNo
ZWNrTmFtZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdDsKKworICAgIFJlZlB0cjxO
b2RlPiBtX2Jhc2U7CisgICAgVHlwZSBtX3R5cGU7CisKKyAgICBtdXRhYmxlIENvbGxlY3Rpb25J
bmZvKiBtX2luZm87CisgICAgbXV0YWJsZSBib29sIG1fb3duc0luZm87Cit9OworCit9IC8vIG5h
bWVzcGFjZQorCisjZW5kaWYKSW5kZXg6IFdlYkNvcmUvaHRtbC9Db2xsZWN0aW9uQ2FjaGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvQ29sbGVjdGlvbkNhY2hlLmgJKHJldmlzaW9uIDQy
MTA2KQorKysgV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25DYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDcgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMTk5OSBMYXJzIEtub2xsIChrbm9s
bEBrZGUub3JnKQotICogICAgICAgICAgIChDKSAxOTk5IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0
b0BrZGUub3JnKQotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3
LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05V
IExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTIwLDEzOCArMTgsNDUgQEAKICAqCiAgKi8KIAot
I2lmbmRlZiBIVE1MQ29sbGVjdGlvbl9oCi0jZGVmaW5lIEhUTUxDb2xsZWN0aW9uX2gKKyNpZm5k
ZWYgQ29sbGVjdGlvbkNhY2hlX2gKKyNkZWZpbmUgQ29sbGVjdGlvbkNhY2hlX2gKIAotI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBBdG9taWNTdHJpbmc7CiBjbGFzcyBBdG9taWNTdHJpbmdJbXBsOwog
Y2xhc3MgRWxlbWVudDsKLWNsYXNzIE5vZGU7Ci1jbGFzcyBOb2RlTGlzdDsKLWNsYXNzIFN0cmlu
ZzsKLQotY2xhc3MgSFRNTENvbGxlY3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxIVE1MQ29sbGVj
dGlvbj4gewotcHVibGljOgotICAgIGVudW0gVHlwZSB7Ci0gICAgICAgIC8vIHVubmFtZWQgY29s
bGVjdGlvbiB0eXBlcyBjYWNoZWQgaW4gdGhlIGRvY3VtZW50Ci0KLSAgICAgICAgRG9jSW1hZ2Vz
LCAgICAvLyBhbGwgPGltZz4gZWxlbWVudHMgaW4gdGhlIGRvY3VtZW50Ci0gICAgICAgIERvY0Fw
cGxldHMsICAgLy8gYWxsIDxvYmplY3Q+IGFuZCA8YXBwbGV0PiBlbGVtZW50cwotICAgICAgICBE
b2NFbWJlZHMsICAgIC8vIGFsbCA8ZW1iZWQ+IGVsZW1lbnRzCi0gICAgICAgIERvY09iamVjdHMs
ICAgLy8gYWxsIDxvYmplY3Q+IGVsZW1lbnRzCi0gICAgICAgIERvY0Zvcm1zLCAgICAgLy8gYWxs
IDxmb3JtPiBlbGVtZW50cwotICAgICAgICBEb2NMaW5rcywgICAgIC8vIGFsbCA8YT4gX2FuZF8g
PGFyZWE+IGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBmb3IgaHJlZgotICAgICAgICBEb2NBbmNob3Jz
LCAgIC8vIGFsbCA8YT4gZWxlbWVudHMgd2l0aCBhIHZhbHVlIGZvciBuYW1lCi0gICAgICAgIERv
Y1NjcmlwdHMsICAgLy8gYWxsIDxzY3JpcHQ+IGVsZW1lbnRzCi0KLSAgICAgICAgRG9jQWxsLCAg
ICAgICAvLyAiYWxsIiBlbGVtZW50cyAoSUUpCi0gICAgICAgIE5vZGVDaGlsZHJlbiwgLy8gZmly
c3QtbGV2ZWwgY2hpbGRyZW4gKElFKQotCi0gICAgICAgIC8vIG5hbWVkIGNvbGxlY3Rpb24gdHlw
ZXMgY2FjaGVkIGluIHRoZSBkb2N1bWVudAotCi0gICAgICAgIFdpbmRvd05hbWVkSXRlbXMsCi0g
ICAgICAgIERvY3VtZW50TmFtZWRJdGVtcywKLQotICAgICAgICAvLyB0eXBlcyBub3QgY2FjaGVk
IGluIHRoZSBkb2N1bWVudDsgdGhlc2UgYXJlIHR5cGVzIHRoYXQgY2FuJ3QgYmUgdXNlZCBvbiBh
IGRvY3VtZW50Ci0KLSAgICAgICAgVGFibGVUQm9kaWVzLCAvLyBhbGwgPHRib2R5PiBlbGVtZW50
cyBpbiB0aGlzIHRhYmxlCi0gICAgICAgIFRTZWN0aW9uUm93cywgLy8gYWxsIHJvdyBlbGVtZW50
cyBpbiB0aGlzIHRhYmxlIHNlY3Rpb24KLSAgICAgICAgVFJDZWxscywgICAgICAvLyBhbGwgY2Vs
bHMgaW4gdGhpcyByb3cKLSAgICAgICAgU2VsZWN0T3B0aW9ucywKLSAgICAgICAgTWFwQXJlYXMs
Ci0KLSAgICAgICAgT3RoZXIKLSAgICB9OwotCi0gICAgc3RhdGljIGNvbnN0IFR5cGUgRmlyc3RV
bm5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlID0gRG9jSW1hZ2VzOwotICAgIHN0YXRpYyBjb25zdCB1
bnNpZ25lZCBOdW1Vbm5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlcyA9IE5vZGVDaGlsZHJlbiAtIERv
Y0ltYWdlcyArIDE7Ci0KLSAgICBzdGF0aWMgY29uc3QgVHlwZSBGaXJzdE5hbWVkRG9jdW1lbnRD
YWNoZWRUeXBlID0gV2luZG93TmFtZWRJdGVtczsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
TnVtTmFtZWREb2N1bWVudENhY2hlZFR5cGVzID0gRG9jdW1lbnROYW1lZEl0ZW1zIC0gV2luZG93
TmFtZWRJdGVtcyArIDE7Ci0KLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4g
Y3JlYXRlKFBhc3NSZWZQdHI8Tm9kZT4gYmFzZSwgVHlwZSk7Ci0gICAgdmlydHVhbCB+SFRNTENv
bGxlY3Rpb24oKTsKLSAgICAKLSAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKLSAgICAKLSAg
ICB2aXJ0dWFsIE5vZGUqIGl0ZW0odW5zaWduZWQgaW5kZXgpIGNvbnN0OwotICAgIHZpcnR1YWwg
Tm9kZSogbmV4dEl0ZW0oKSBjb25zdDsKLQotICAgIHZpcnR1YWwgTm9kZSogbmFtZWRJdGVtKGNv
bnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3Q7Ci0gICAgdmlydHVhbCBOb2RlKiBuZXh0TmFt
ZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkgY29uc3Q7IC8vIEluIGNhc2Ugb2YgbXVs
dGlwbGUgaXRlbXMgbmFtZWQgdGhlIHNhbWUgd2F5Ci0KLSAgICBOb2RlKiBmaXJzdEl0ZW0oKSBj
b25zdDsKLQotICAgIHZvaWQgbmFtZWRJdGVtcyhjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUsIFZl
Y3RvcjxSZWZQdHI8Tm9kZT4gPiYpIGNvbnN0OwotCi0gICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4g
dGFncyhjb25zdCBTdHJpbmcmKTsKLQotICAgIE5vZGUqIGJhc2UoKSBjb25zdCB7IHJldHVybiBt
X2Jhc2UuZ2V0KCk7IH0KLSAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0K
LQotICAgIC8vIEZJWE1FOiBUaGlzIGNsYXNzIG5hbWUgaXMgYSBiYWQgaW4gdHdvIHdheXMuIEZp
cnN0LCAiaW5mbyIgaXMgbXVjaCB0b28gdmFndWUsCi0gICAgLy8gYW5kIGRvZXNuJ3QgY29udmV5
IHRoZSBqb2Igb2YgdGhpcyBjbGFzcyAoY2FjaGluZyBjb2xsZWN0aW9uIHN0YXRlKS4KLSAgICAv
LyBTZWNvbmQsIHNpbmNlIHRoaXMgaXMgYSBtZW1iZXIgb2YgSFRNTENvbGxlY3Rpb24sIGl0IGRv
ZXNuJ3QgbmVlZCAiY29sbGVjdGlvbiIKLSAgICAvLyBpbiBpdHMgbmFtZS4KLSAgICBzdHJ1Y3Qg
Q29sbGVjdGlvbkluZm8gewotICAgICAgICBDb2xsZWN0aW9uSW5mbygpOwotICAgICAgICBDb2xs
ZWN0aW9uSW5mbyhjb25zdCBDb2xsZWN0aW9uSW5mbyYpOwotICAgICAgICBDb2xsZWN0aW9uSW5m
byYgb3BlcmF0b3I9KGNvbnN0IENvbGxlY3Rpb25JbmZvJiBvdGhlcikKLSAgICAgICAgewotICAg
ICAgICAgICAgQ29sbGVjdGlvbkluZm8gdG1wKG90aGVyKTsgICAgCi0gICAgICAgICAgICBzd2Fw
KHRtcCk7Ci0gICAgICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLSAgICAgICAgfkNv
bGxlY3Rpb25JbmZvKCk7Ci0KLSAgICAgICAgdm9pZCByZXNldCgpOwotICAgICAgICB2b2lkIHN3
YXAoQ29sbGVjdGlvbkluZm8mKTsKLQotICAgICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3Ry
aW5nSW1wbCosIFZlY3RvcjxFbGVtZW50Kj4qPiBOb2RlQ2FjaGVNYXA7Ci0KLSAgICAgICAgdW5z
aWduZWQgdmVyc2lvbjsKLSAgICAgICAgRWxlbWVudCogY3VycmVudDsKLSAgICAgICAgdW5zaWdu
ZWQgcG9zaXRpb247Ci0gICAgICAgIHVuc2lnbmVkIGxlbmd0aDsKLSAgICAgICAgaW50IGVsZW1l
bnRzQXJyYXlQb3NpdGlvbjsKLSAgICAgICAgTm9kZUNhY2hlTWFwIGlkQ2FjaGU7Ci0gICAgICAg
IE5vZGVDYWNoZU1hcCBuYW1lQ2FjaGU7Ci0gICAgICAgIGJvb2wgaGFzTGVuZ3RoOwotICAgICAg
ICBib29sIGhhc05hbWVDYWNoZTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyB2b2lk
IGNvcHlDYWNoZU1hcChOb2RlQ2FjaGVNYXAmLCBjb25zdCBOb2RlQ2FjaGVNYXAmKTsKLSAgICB9
OwogCi1wcm90ZWN0ZWQ6Ci0gICAgSFRNTENvbGxlY3Rpb24oUGFzc1JlZlB0cjxOb2RlPiBiYXNl
LCBUeXBlLCBDb2xsZWN0aW9uSW5mbyopOwotCi0gICAgQ29sbGVjdGlvbkluZm8qIGluZm8oKSBj
b25zdCB7IHJldHVybiBtX2luZm87IH0KLSAgICB2aXJ0dWFsIHZvaWQgcmVzZXRDb2xsZWN0aW9u
SW5mbygpIGNvbnN0OwotCi0gICAgbXV0YWJsZSBib29sIG1faWRzRG9uZTsgLy8gZm9yIG5leHRO
YW1lZEl0ZW0oKQorc3RydWN0IENvbGxlY3Rpb25DYWNoZSB7CisgICAgQ29sbGVjdGlvbkNhY2hl
KCk7CisgICAgQ29sbGVjdGlvbkNhY2hlKGNvbnN0IENvbGxlY3Rpb25DYWNoZSYpOworICAgIENv
bGxlY3Rpb25DYWNoZSYgb3BlcmF0b3I9KGNvbnN0IENvbGxlY3Rpb25DYWNoZSYgb3RoZXIpCisg
ICAgeworICAgICAgICBDb2xsZWN0aW9uQ2FjaGUgdG1wKG90aGVyKTsgICAgCisgICAgICAgIHN3
YXAodG1wKTsKKyAgICAgICAgcmV0dXJuICp0aGlzOworICAgIH0KKyAgICB+Q29sbGVjdGlvbkNh
Y2hlKCk7CisKKyAgICB2b2lkIHJlc2V0KCk7CisgICAgdm9pZCBzd2FwKENvbGxlY3Rpb25DYWNo
ZSYpOworCisgICAgdHlwZWRlZiBIYXNoTWFwPEF0b21pY1N0cmluZ0ltcGwqLCBWZWN0b3I8RWxl
bWVudCo+Kj4gTm9kZUNhY2hlTWFwOworCisgICAgdW5zaWduZWQgdmVyc2lvbjsKKyAgICBFbGVt
ZW50KiBjdXJyZW50OworICAgIHVuc2lnbmVkIHBvc2l0aW9uOworICAgIHVuc2lnbmVkIGxlbmd0
aDsKKyAgICBpbnQgZWxlbWVudHNBcnJheVBvc2l0aW9uOworICAgIE5vZGVDYWNoZU1hcCBpZENh
Y2hlOworICAgIE5vZGVDYWNoZU1hcCBuYW1lQ2FjaGU7CisgICAgYm9vbCBoYXNMZW5ndGg7Cisg
ICAgYm9vbCBoYXNOYW1lQ2FjaGU7CiAKIHByaXZhdGU6Ci0gICAgSFRNTENvbGxlY3Rpb24oUGFz
c1JlZlB0cjxOb2RlPiBiYXNlLCBUeXBlKTsKLQotICAgIHZpcnR1YWwgRWxlbWVudCogaXRlbUFm
dGVyKEVsZW1lbnQqKSBjb25zdDsKLSAgICB2aXJ0dWFsIHVuc2lnbmVkIGNhbGNMZW5ndGgoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTmFtZUNhY2hlKCkgY29uc3Q7Ci0KLSAgICBi
b29sIGNoZWNrRm9yTmFtZU1hdGNoKEVsZW1lbnQqLCBib29sIGNoZWNrTmFtZSwgY29uc3QgQXRv
bWljU3RyaW5nJiBuYW1lKSBjb25zdDsKLQotICAgIFJlZlB0cjxOb2RlPiBtX2Jhc2U7Ci0gICAg
VHlwZSBtX3R5cGU7Ci0KLSAgICBtdXRhYmxlIENvbGxlY3Rpb25JbmZvKiBtX2luZm87Ci0gICAg
bXV0YWJsZSBib29sIG1fb3duc0luZm87CisgICAgc3RhdGljIHZvaWQgY29weUNhY2hlTWFwKE5v
ZGVDYWNoZU1hcCYsIGNvbnN0IE5vZGVDYWNoZU1hcCYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UK
SW5kZXg6IFdlYkNvcmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvaHRtbC9Db2xsZWN0aW9uVHlwZS5oCShyZXZpc2lvbiA0MjEwNikJKGZyb20gV2ViQ29yZS9o
dG1sL0hUTUxDb2xsZWN0aW9uLmg6NDIxMDYpCisrKyBXZWJDb3JlL2h0bWwvQ29sbGVjdGlvblR5
cGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMTk5OSBMYXJzIEtub2xsIChrbm9sbEBrZGUub3JnKQorICogICAgICAgICAgIChDKSAxOTk5
IEFudHRpIEtvaXZpc3RvIChrb2l2aXN0b0BrZGUub3JnKQorICogQ29weXJpZ2h0IChDKSAyMDAz
LCAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBH
TlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhl
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExp
Y2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhp
cyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm
dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll
ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGlj
ZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25n
IHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdy
aXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xp
biBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisg
KgorICovCisKKyNpZm5kZWYgSFRNTENvbGxlY3Rpb25faAorI2RlZmluZSBIVE1MQ29sbGVjdGlv
bl9oCisKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgQXRvbWljU3RyaW5nOworY2xhc3MgQXRvbWlj
U3RyaW5nSW1wbDsKK2NsYXNzIEVsZW1lbnQ7CitjbGFzcyBOb2RlOworY2xhc3MgTm9kZUxpc3Q7
CitjbGFzcyBTdHJpbmc7CisKK2NsYXNzIEhUTUxDb2xsZWN0aW9uIDogcHVibGljIFJlZkNvdW50
ZWQ8SFRNTENvbGxlY3Rpb24+IHsKK3B1YmxpYzoKKyAgICBlbnVtIFR5cGUgeworICAgICAgICAv
LyB1bm5hbWVkIGNvbGxlY3Rpb24gdHlwZXMgY2FjaGVkIGluIHRoZSBkb2N1bWVudAorCisgICAg
ICAgIERvY0ltYWdlcywgICAgLy8gYWxsIDxpbWc+IGVsZW1lbnRzIGluIHRoZSBkb2N1bWVudAor
ICAgICAgICBEb2NBcHBsZXRzLCAgIC8vIGFsbCA8b2JqZWN0PiBhbmQgPGFwcGxldD4gZWxlbWVu
dHMKKyAgICAgICAgRG9jRW1iZWRzLCAgICAvLyBhbGwgPGVtYmVkPiBlbGVtZW50cworICAgICAg
ICBEb2NPYmplY3RzLCAgIC8vIGFsbCA8b2JqZWN0PiBlbGVtZW50cworICAgICAgICBEb2NGb3Jt
cywgICAgIC8vIGFsbCA8Zm9ybT4gZWxlbWVudHMKKyAgICAgICAgRG9jTGlua3MsICAgICAvLyBh
bGwgPGE+IF9hbmRfIDxhcmVhPiBlbGVtZW50cyB3aXRoIGEgdmFsdWUgZm9yIGhyZWYKKyAgICAg
ICAgRG9jQW5jaG9ycywgICAvLyBhbGwgPGE+IGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBmb3IgbmFt
ZQorICAgICAgICBEb2NTY3JpcHRzLCAgIC8vIGFsbCA8c2NyaXB0PiBlbGVtZW50cworCisgICAg
ICAgIERvY0FsbCwgICAgICAgLy8gImFsbCIgZWxlbWVudHMgKElFKQorICAgICAgICBOb2RlQ2hp
bGRyZW4sIC8vIGZpcnN0LWxldmVsIGNoaWxkcmVuIChJRSkKKworICAgICAgICAvLyBuYW1lZCBj
b2xsZWN0aW9uIHR5cGVzIGNhY2hlZCBpbiB0aGUgZG9jdW1lbnQKKworICAgICAgICBXaW5kb3dO
YW1lZEl0ZW1zLAorICAgICAgICBEb2N1bWVudE5hbWVkSXRlbXMsCisKKyAgICAgICAgLy8gdHlw
ZXMgbm90IGNhY2hlZCBpbiB0aGUgZG9jdW1lbnQ7IHRoZXNlIGFyZSB0eXBlcyB0aGF0IGNhbid0
IGJlIHVzZWQgb24gYSBkb2N1bWVudAorCisgICAgICAgIFRhYmxlVEJvZGllcywgLy8gYWxsIDx0
Ym9keT4gZWxlbWVudHMgaW4gdGhpcyB0YWJsZQorICAgICAgICBUU2VjdGlvblJvd3MsIC8vIGFs
bCByb3cgZWxlbWVudHMgaW4gdGhpcyB0YWJsZSBzZWN0aW9uCisgICAgICAgIFRSQ2VsbHMsICAg
ICAgLy8gYWxsIGNlbGxzIGluIHRoaXMgcm93CisgICAgICAgIFNlbGVjdE9wdGlvbnMsCisgICAg
ICAgIE1hcEFyZWFzLAorCisgICAgICAgIE90aGVyCisgICAgfTsKKworICAgIHN0YXRpYyBjb25z
dCBUeXBlIEZpcnN0VW5uYW1lZERvY3VtZW50Q2FjaGVkVHlwZSA9IERvY0ltYWdlczsKKyAgICBz
dGF0aWMgY29uc3QgdW5zaWduZWQgTnVtVW5uYW1lZERvY3VtZW50Q2FjaGVkVHlwZXMgPSBOb2Rl
Q2hpbGRyZW4gLSBEb2NJbWFnZXMgKyAxOworCisgICAgc3RhdGljIGNvbnN0IFR5cGUgRmlyc3RO
YW1lZERvY3VtZW50Q2FjaGVkVHlwZSA9IFdpbmRvd05hbWVkSXRlbXM7CisgICAgc3RhdGljIGNv
bnN0IHVuc2lnbmVkIE51bU5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlcyA9IERvY3VtZW50TmFtZWRJ
dGVtcyAtIFdpbmRvd05hbWVkSXRlbXMgKyAxOworCisgICAgc3RhdGljIFBhc3NSZWZQdHI8SFRN
TENvbGxlY3Rpb24+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGJhc2UsIFR5cGUpOworICAgIHZp
cnR1YWwgfkhUTUxDb2xsZWN0aW9uKCk7CisgICAgCisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29u
c3Q7CisgICAgCisgICAgdmlydHVhbCBOb2RlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsK
KyAgICB2aXJ0dWFsIE5vZGUqIG5leHRJdGVtKCkgY29uc3Q7CisKKyAgICB2aXJ0dWFsIE5vZGUq
IG5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0OworICAgIHZpcnR1YWwg
Tm9kZSogbmV4dE5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0OyAvLyBJ
biBjYXNlIG9mIG11bHRpcGxlIGl0ZW1zIG5hbWVkIHRoZSBzYW1lIHdheQorCisgICAgTm9kZSog
Zmlyc3RJdGVtKCkgY29uc3Q7CisKKyAgICB2b2lkIG5hbWVkSXRlbXMoY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lLCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mKSBjb25zdDsKKworICAgIFBhc3NSZWZQ
dHI8Tm9kZUxpc3Q+IHRhZ3MoY29uc3QgU3RyaW5nJik7CisKKyAgICBOb2RlKiBiYXNlKCkgY29u
c3QgeyByZXR1cm4gbV9iYXNlLmdldCgpOyB9CisgICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1
cm4gbV90eXBlOyB9CisKKyAgICAvLyBGSVhNRTogVGhpcyBjbGFzcyBuYW1lIGlzIGEgYmFkIGlu
IHR3byB3YXlzLiBGaXJzdCwgImluZm8iIGlzIG11Y2ggdG9vIHZhZ3VlLAorICAgIC8vIGFuZCBk
b2Vzbid0IGNvbnZleSB0aGUgam9iIG9mIHRoaXMgY2xhc3MgKGNhY2hpbmcgY29sbGVjdGlvbiBz
dGF0ZSkuCisgICAgLy8gU2Vjb25kLCBzaW5jZSB0aGlzIGlzIGEgbWVtYmVyIG9mIEhUTUxDb2xs
ZWN0aW9uLCBpdCBkb2Vzbid0IG5lZWQgImNvbGxlY3Rpb24iCisgICAgLy8gaW4gaXRzIG5hbWUu
CisgICAgc3RydWN0IENvbGxlY3Rpb25JbmZvIHsKKyAgICAgICAgQ29sbGVjdGlvbkluZm8oKTsK
KyAgICAgICAgQ29sbGVjdGlvbkluZm8oY29uc3QgQ29sbGVjdGlvbkluZm8mKTsKKyAgICAgICAg
Q29sbGVjdGlvbkluZm8mIG9wZXJhdG9yPShjb25zdCBDb2xsZWN0aW9uSW5mbyYgb3RoZXIpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIENvbGxlY3Rpb25JbmZvIHRtcChvdGhlcik7ICAgIAorICAg
ICAgICAgICAgc3dhcCh0bXApOworICAgICAgICAgICAgcmV0dXJuICp0aGlzOworICAgICAgICB9
CisgICAgICAgIH5Db2xsZWN0aW9uSW5mbygpOworCisgICAgICAgIHZvaWQgcmVzZXQoKTsKKyAg
ICAgICAgdm9pZCBzd2FwKENvbGxlY3Rpb25JbmZvJik7CisKKyAgICAgICAgdHlwZWRlZiBIYXNo
TWFwPEF0b21pY1N0cmluZ0ltcGwqLCBWZWN0b3I8RWxlbWVudCo+Kj4gTm9kZUNhY2hlTWFwOwor
CisgICAgICAgIHVuc2lnbmVkIHZlcnNpb247CisgICAgICAgIEVsZW1lbnQqIGN1cnJlbnQ7Cisg
ICAgICAgIHVuc2lnbmVkIHBvc2l0aW9uOworICAgICAgICB1bnNpZ25lZCBsZW5ndGg7CisgICAg
ICAgIGludCBlbGVtZW50c0FycmF5UG9zaXRpb247CisgICAgICAgIE5vZGVDYWNoZU1hcCBpZENh
Y2hlOworICAgICAgICBOb2RlQ2FjaGVNYXAgbmFtZUNhY2hlOworICAgICAgICBib29sIGhhc0xl
bmd0aDsKKyAgICAgICAgYm9vbCBoYXNOYW1lQ2FjaGU7CisKKyAgICBwcml2YXRlOgorICAgICAg
ICBzdGF0aWMgdm9pZCBjb3B5Q2FjaGVNYXAoTm9kZUNhY2hlTWFwJiwgY29uc3QgTm9kZUNhY2hl
TWFwJik7CisgICAgfTsKKworcHJvdGVjdGVkOgorICAgIEhUTUxDb2xsZWN0aW9uKFBhc3NSZWZQ
dHI8Tm9kZT4gYmFzZSwgVHlwZSwgQ29sbGVjdGlvbkluZm8qKTsKKworICAgIENvbGxlY3Rpb25J
bmZvKiBpbmZvKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvOyB9CisgICAgdmlydHVhbCB2b2lkIHJl
c2V0Q29sbGVjdGlvbkluZm8oKSBjb25zdDsKKworICAgIG11dGFibGUgYm9vbCBtX2lkc0RvbmU7
IC8vIGZvciBuZXh0TmFtZWRJdGVtKCkKKworcHJpdmF0ZToKKyAgICBIVE1MQ29sbGVjdGlvbihQ
YXNzUmVmUHRyPE5vZGU+IGJhc2UsIFR5cGUpOworCisgICAgdmlydHVhbCBFbGVtZW50KiBpdGVt
QWZ0ZXIoRWxlbWVudCopIGNvbnN0OworICAgIHZpcnR1YWwgdW5zaWduZWQgY2FsY0xlbmd0aCgp
IGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVOYW1lQ2FjaGUoKSBjb25zdDsKKworICAg
IGJvb2wgY2hlY2tGb3JOYW1lTWF0Y2goRWxlbWVudCosIGJvb2wgY2hlY2tOYW1lLCBjb25zdCBB
dG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0OworCisgICAgUmVmUHRyPE5vZGU+IG1fYmFzZTsKKyAg
ICBUeXBlIG1fdHlwZTsKKworICAgIG11dGFibGUgQ29sbGVjdGlvbkluZm8qIG1faW5mbzsKKyAg
ICBtdXRhYmxlIGJvb2wgbV9vd25zSW5mbzsKK307CisKK30gLy8gbmFtZXNwYWNlCisKKyNlbmRp
ZgpJbmRleDogV2ViQ29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL0NvbGxlY3Rpb25UeXBlLmgJKHJldmlzaW9uIDQyMTA2KQorKysgV2ViQ29yZS9o
dG1sL0NvbGxlY3Rpb25UeXBlLmgJKHdvcmtpbmcgY29weSkKQEAgLTIwLDE0MCArMjAsNDggQEAK
ICAqCiAgKi8KIAotI2lmbmRlZiBIVE1MQ29sbGVjdGlvbl9oCi0jZGVmaW5lIEhUTUxDb2xsZWN0
aW9uX2gKLQotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL0Zvcndh
cmQuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4K
KyNpZm5kZWYgQ29sbGVjdGlvblR5cGVfaAorI2RlZmluZSBDb2xsZWN0aW9uVHlwZV9oCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXRvbWljU3RyaW5nOwotY2xhc3MgQXRvbWljU3Ry
aW5nSW1wbDsKLWNsYXNzIEVsZW1lbnQ7Ci1jbGFzcyBOb2RlOwotY2xhc3MgTm9kZUxpc3Q7Ci1j
bGFzcyBTdHJpbmc7Ci0KLWNsYXNzIEhUTUxDb2xsZWN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8
SFRNTENvbGxlY3Rpb24+IHsKLXB1YmxpYzoKLSAgICBlbnVtIFR5cGUgewotICAgICAgICAvLyB1
bm5hbWVkIGNvbGxlY3Rpb24gdHlwZXMgY2FjaGVkIGluIHRoZSBkb2N1bWVudAotCi0gICAgICAg
IERvY0ltYWdlcywgICAgLy8gYWxsIDxpbWc+IGVsZW1lbnRzIGluIHRoZSBkb2N1bWVudAotICAg
ICAgICBEb2NBcHBsZXRzLCAgIC8vIGFsbCA8b2JqZWN0PiBhbmQgPGFwcGxldD4gZWxlbWVudHMK
LSAgICAgICAgRG9jRW1iZWRzLCAgICAvLyBhbGwgPGVtYmVkPiBlbGVtZW50cwotICAgICAgICBE
b2NPYmplY3RzLCAgIC8vIGFsbCA8b2JqZWN0PiBlbGVtZW50cwotICAgICAgICBEb2NGb3Jtcywg
ICAgIC8vIGFsbCA8Zm9ybT4gZWxlbWVudHMKLSAgICAgICAgRG9jTGlua3MsICAgICAvLyBhbGwg
PGE+IF9hbmRfIDxhcmVhPiBlbGVtZW50cyB3aXRoIGEgdmFsdWUgZm9yIGhyZWYKLSAgICAgICAg
RG9jQW5jaG9ycywgICAvLyBhbGwgPGE+IGVsZW1lbnRzIHdpdGggYSB2YWx1ZSBmb3IgbmFtZQot
ICAgICAgICBEb2NTY3JpcHRzLCAgIC8vIGFsbCA8c2NyaXB0PiBlbGVtZW50cwotCi0gICAgICAg
IERvY0FsbCwgICAgICAgLy8gImFsbCIgZWxlbWVudHMgKElFKQotICAgICAgICBOb2RlQ2hpbGRy
ZW4sIC8vIGZpcnN0LWxldmVsIGNoaWxkcmVuIChJRSkKLQotICAgICAgICAvLyBuYW1lZCBjb2xs
ZWN0aW9uIHR5cGVzIGNhY2hlZCBpbiB0aGUgZG9jdW1lbnQKLQotICAgICAgICBXaW5kb3dOYW1l
ZEl0ZW1zLAotICAgICAgICBEb2N1bWVudE5hbWVkSXRlbXMsCi0KLSAgICAgICAgLy8gdHlwZXMg
bm90IGNhY2hlZCBpbiB0aGUgZG9jdW1lbnQ7IHRoZXNlIGFyZSB0eXBlcyB0aGF0IGNhbid0IGJl
IHVzZWQgb24gYSBkb2N1bWVudAotCi0gICAgICAgIFRhYmxlVEJvZGllcywgLy8gYWxsIDx0Ym9k
eT4gZWxlbWVudHMgaW4gdGhpcyB0YWJsZQotICAgICAgICBUU2VjdGlvblJvd3MsIC8vIGFsbCBy
b3cgZWxlbWVudHMgaW4gdGhpcyB0YWJsZSBzZWN0aW9uCi0gICAgICAgIFRSQ2VsbHMsICAgICAg
Ly8gYWxsIGNlbGxzIGluIHRoaXMgcm93Ci0gICAgICAgIFNlbGVjdE9wdGlvbnMsCi0gICAgICAg
IE1hcEFyZWFzLAotCi0gICAgICAgIE90aGVyCi0gICAgfTsKLQotICAgIHN0YXRpYyBjb25zdCBU
eXBlIEZpcnN0VW5uYW1lZERvY3VtZW50Q2FjaGVkVHlwZSA9IERvY0ltYWdlczsKLSAgICBzdGF0
aWMgY29uc3QgdW5zaWduZWQgTnVtVW5uYW1lZERvY3VtZW50Q2FjaGVkVHlwZXMgPSBOb2RlQ2hp
bGRyZW4gLSBEb2NJbWFnZXMgKyAxOwotCi0gICAgc3RhdGljIGNvbnN0IFR5cGUgRmlyc3ROYW1l
ZERvY3VtZW50Q2FjaGVkVHlwZSA9IFdpbmRvd05hbWVkSXRlbXM7Ci0gICAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIE51bU5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlcyA9IERvY3VtZW50TmFtZWRJdGVt
cyAtIFdpbmRvd05hbWVkSXRlbXMgKyAxOwotCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGJhc2UsIFR5cGUpOwotICAgIHZpcnR1
YWwgfkhUTUxDb2xsZWN0aW9uKCk7Ci0gICAgCi0gICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7
Ci0gICAgCi0gICAgdmlydHVhbCBOb2RlKiBpdGVtKHVuc2lnbmVkIGluZGV4KSBjb25zdDsKLSAg
ICB2aXJ0dWFsIE5vZGUqIG5leHRJdGVtKCkgY29uc3Q7Ci0KLSAgICB2aXJ0dWFsIE5vZGUqIG5h
bWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0OwotICAgIHZpcnR1YWwgTm9k
ZSogbmV4dE5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0OyAvLyBJbiBj
YXNlIG9mIG11bHRpcGxlIGl0ZW1zIG5hbWVkIHRoZSBzYW1lIHdheQotCi0gICAgTm9kZSogZmly
c3RJdGVtKCkgY29uc3Q7Ci0KLSAgICB2b2lkIG5hbWVkSXRlbXMoY29uc3QgQXRvbWljU3RyaW5n
JiBuYW1lLCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mKSBjb25zdDsKLQotICAgIFBhc3NSZWZQdHI8
Tm9kZUxpc3Q+IHRhZ3MoY29uc3QgU3RyaW5nJik7Ci0KLSAgICBOb2RlKiBiYXNlKCkgY29uc3Qg
eyByZXR1cm4gbV9iYXNlLmdldCgpOyB9Ci0gICAgVHlwZSB0eXBlKCkgY29uc3QgeyByZXR1cm4g
bV90eXBlOyB9Ci0KLSAgICAvLyBGSVhNRTogVGhpcyBjbGFzcyBuYW1lIGlzIGEgYmFkIGluIHR3
byB3YXlzLiBGaXJzdCwgImluZm8iIGlzIG11Y2ggdG9vIHZhZ3VlLAotICAgIC8vIGFuZCBkb2Vz
bid0IGNvbnZleSB0aGUgam9iIG9mIHRoaXMgY2xhc3MgKGNhY2hpbmcgY29sbGVjdGlvbiBzdGF0
ZSkuCi0gICAgLy8gU2Vjb25kLCBzaW5jZSB0aGlzIGlzIGEgbWVtYmVyIG9mIEhUTUxDb2xsZWN0
aW9uLCBpdCBkb2Vzbid0IG5lZWQgImNvbGxlY3Rpb24iCi0gICAgLy8gaW4gaXRzIG5hbWUuCi0g
ICAgc3RydWN0IENvbGxlY3Rpb25JbmZvIHsKLSAgICAgICAgQ29sbGVjdGlvbkluZm8oKTsKLSAg
ICAgICAgQ29sbGVjdGlvbkluZm8oY29uc3QgQ29sbGVjdGlvbkluZm8mKTsKLSAgICAgICAgQ29s
bGVjdGlvbkluZm8mIG9wZXJhdG9yPShjb25zdCBDb2xsZWN0aW9uSW5mbyYgb3RoZXIpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIENvbGxlY3Rpb25JbmZvIHRtcChvdGhlcik7ICAgIAotICAgICAg
ICAgICAgc3dhcCh0bXApOwotICAgICAgICAgICAgcmV0dXJuICp0aGlzOwotICAgICAgICB9Ci0g
ICAgICAgIH5Db2xsZWN0aW9uSW5mbygpOwotCi0gICAgICAgIHZvaWQgcmVzZXQoKTsKLSAgICAg
ICAgdm9pZCBzd2FwKENvbGxlY3Rpb25JbmZvJik7Ci0KLSAgICAgICAgdHlwZWRlZiBIYXNoTWFw
PEF0b21pY1N0cmluZ0ltcGwqLCBWZWN0b3I8RWxlbWVudCo+Kj4gTm9kZUNhY2hlTWFwOwotCi0g
ICAgICAgIHVuc2lnbmVkIHZlcnNpb247Ci0gICAgICAgIEVsZW1lbnQqIGN1cnJlbnQ7Ci0gICAg
ICAgIHVuc2lnbmVkIHBvc2l0aW9uOwotICAgICAgICB1bnNpZ25lZCBsZW5ndGg7Ci0gICAgICAg
IGludCBlbGVtZW50c0FycmF5UG9zaXRpb247Ci0gICAgICAgIE5vZGVDYWNoZU1hcCBpZENhY2hl
OwotICAgICAgICBOb2RlQ2FjaGVNYXAgbmFtZUNhY2hlOwotICAgICAgICBib29sIGhhc0xlbmd0
aDsKLSAgICAgICAgYm9vbCBoYXNOYW1lQ2FjaGU7Ci0KLSAgICBwcml2YXRlOgotICAgICAgICBz
dGF0aWMgdm9pZCBjb3B5Q2FjaGVNYXAoTm9kZUNhY2hlTWFwJiwgY29uc3QgTm9kZUNhY2hlTWFw
Jik7Ci0gICAgfTsKLQotcHJvdGVjdGVkOgotICAgIEhUTUxDb2xsZWN0aW9uKFBhc3NSZWZQdHI8
Tm9kZT4gYmFzZSwgVHlwZSwgQ29sbGVjdGlvbkluZm8qKTsKLQotICAgIENvbGxlY3Rpb25JbmZv
KiBpbmZvKCkgY29uc3QgeyByZXR1cm4gbV9pbmZvOyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0
Q29sbGVjdGlvbkluZm8oKSBjb25zdDsKLQotICAgIG11dGFibGUgYm9vbCBtX2lkc0RvbmU7IC8v
IGZvciBuZXh0TmFtZWRJdGVtKCkKLQotcHJpdmF0ZToKLSAgICBIVE1MQ29sbGVjdGlvbihQYXNz
UmVmUHRyPE5vZGU+IGJhc2UsIFR5cGUpOwotCi0gICAgdmlydHVhbCBFbGVtZW50KiBpdGVtQWZ0
ZXIoRWxlbWVudCopIGNvbnN0OwotICAgIHZpcnR1YWwgdW5zaWduZWQgY2FsY0xlbmd0aCgpIGNv
bnN0OwotICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVOYW1lQ2FjaGUoKSBjb25zdDsKLQotICAgIGJv
b2wgY2hlY2tGb3JOYW1lTWF0Y2goRWxlbWVudCosIGJvb2wgY2hlY2tOYW1lLCBjb25zdCBBdG9t
aWNTdHJpbmcmIG5hbWUpIGNvbnN0OworZW51bSBDb2xsZWN0aW9uVHlwZSB7CisgICAgLy8gdW5u
YW1lZCBjb2xsZWN0aW9uIHR5cGVzIGNhY2hlZCBpbiB0aGUgZG9jdW1lbnQKIAotICAgIFJlZlB0
cjxOb2RlPiBtX2Jhc2U7Ci0gICAgVHlwZSBtX3R5cGU7CisgICAgRG9jSW1hZ2VzLCAgICAvLyBh
bGwgPGltZz4gZWxlbWVudHMgaW4gdGhlIGRvY3VtZW50CisgICAgRG9jQXBwbGV0cywgICAvLyBh
bGwgPG9iamVjdD4gYW5kIDxhcHBsZXQ+IGVsZW1lbnRzCisgICAgRG9jRW1iZWRzLCAgICAvLyBh
bGwgPGVtYmVkPiBlbGVtZW50cworICAgIERvY09iamVjdHMsICAgLy8gYWxsIDxvYmplY3Q+IGVs
ZW1lbnRzCisgICAgRG9jRm9ybXMsICAgICAvLyBhbGwgPGZvcm0+IGVsZW1lbnRzCisgICAgRG9j
TGlua3MsICAgICAvLyBhbGwgPGE+IF9hbmRfIDxhcmVhPiBlbGVtZW50cyB3aXRoIGEgdmFsdWUg
Zm9yIGhyZWYKKyAgICBEb2NBbmNob3JzLCAgIC8vIGFsbCA8YT4gZWxlbWVudHMgd2l0aCBhIHZh
bHVlIGZvciBuYW1lCisgICAgRG9jU2NyaXB0cywgICAvLyBhbGwgPHNjcmlwdD4gZWxlbWVudHMK
KworICAgIERvY0FsbCwgICAgICAgLy8gImFsbCIgZWxlbWVudHMgKElFKQorICAgIE5vZGVDaGls
ZHJlbiwgLy8gZmlyc3QtbGV2ZWwgY2hpbGRyZW4gKElFKQorCisgICAgLy8gbmFtZWQgY29sbGVj
dGlvbiB0eXBlcyBjYWNoZWQgaW4gdGhlIGRvY3VtZW50CisKKyAgICBXaW5kb3dOYW1lZEl0ZW1z
LAorICAgIERvY3VtZW50TmFtZWRJdGVtcywKKworICAgIC8vIHR5cGVzIG5vdCBjYWNoZWQgaW4g
dGhlIGRvY3VtZW50OyB0aGVzZSBhcmUgdHlwZXMgdGhhdCBjYW4ndCBiZSB1c2VkIG9uIGEgZG9j
dW1lbnQKKworICAgIFRhYmxlVEJvZGllcywgLy8gYWxsIDx0Ym9keT4gZWxlbWVudHMgaW4gdGhp
cyB0YWJsZQorICAgIFRTZWN0aW9uUm93cywgLy8gYWxsIHJvdyBlbGVtZW50cyBpbiB0aGlzIHRh
YmxlIHNlY3Rpb24KKyAgICBUUkNlbGxzLCAgICAgIC8vIGFsbCBjZWxscyBpbiB0aGlzIHJvdwor
ICAgIFNlbGVjdE9wdGlvbnMsCisgICAgTWFwQXJlYXMsCiAKLSAgICBtdXRhYmxlIENvbGxlY3Rp
b25JbmZvKiBtX2luZm87Ci0gICAgbXV0YWJsZSBib29sIG1fb3duc0luZm87CisgICAgT3RoZXJD
b2xsZWN0aW9uCiB9OwogCitzdGF0aWMgY29uc3QgQ29sbGVjdGlvblR5cGUgRmlyc3RVbm5hbWVk
RG9jdW1lbnRDYWNoZWRUeXBlID0gRG9jSW1hZ2VzOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIE51
bVVubmFtZWREb2N1bWVudENhY2hlZFR5cGVzID0gTm9kZUNoaWxkcmVuIC0gRG9jSW1hZ2VzICsg
MTsKKworc3RhdGljIGNvbnN0IENvbGxlY3Rpb25UeXBlIEZpcnN0TmFtZWREb2N1bWVudENhY2hl
ZFR5cGUgPSBXaW5kb3dOYW1lZEl0ZW1zOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIE51bU5hbWVk
RG9jdW1lbnRDYWNoZWRUeXBlcyA9IERvY3VtZW50TmFtZWRJdGVtcyAtIFdpbmRvd05hbWVkSXRl
bXMgKyAxOworCiB9IC8vIG5hbWVzcGFjZQogCiAjZW5kaWYKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MQW5jaG9yRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNo
b3JFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hv
ckVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAi
SFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIktl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJN
b3VzZUV2ZW50LmgiCiAjaW5jbHVkZSAiTXV0YXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQXBwbGV0RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxBcHBsZXRFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisr
KyBXZWJDb3JlL2h0bWwvSFRNTEFwcGxldEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIK
ICNpbmNsdWRlICJSZW5kZXJBcHBsZXQuaCIKICNpbmNsdWRlICJSZW5kZXJJbmxpbmUuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5jcHAJKHJldmlz
aW9uIDQyMTMyKQorKysgV2ViQ29yZS9odG1sL0hUTUxBcmVhRWxlbWVudC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJIaXRUZXN0UmVzdWx0LmgiCiAjaW5jbHVkZSAiTGVuZ3RoLmgiCisjaW5jbHVkZSAiTWFwcGVk
QXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiUGF0aC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5o
IgogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEJSRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxCUkVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNv
cmUvaHRtbC9IVE1MQlJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTksMTEgKzE5LDEz
IEBACiAgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBT
dHJlZXQsIEZpZnRoIEZsb29yLAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8K
KwogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxCUkVsZW1lbnQuaCIKIAogI2lu
Y2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNs
dWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJSZW5kZXJCUi5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAkocmV2aXNpb24gNDIx
MzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEJhc2VFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQm9keUVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MQm9keUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAj
aW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudEJhc2UuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIK
KyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEJ1dHRvbkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MQnV0dG9uRWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2Vi
Q29yZS9odG1sL0hUTUxCdXR0b25FbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiAr
MzEsNyBAQAogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1l
cy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1
dGUuaCIKICNpbmNsdWRlICJSZW5kZXJCdXR0b24uaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0
cmFzLmg+CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQ2FudmFzRWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxDYW52YXNFbGVtZW50LmNwcAkocmV2aXNpb24gNDIx
MzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTENhbnZhc0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSW1h
Z2VCdWZmZXIuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTWFw
cGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlJlbmRlckhUTUxD
YW52YXMuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxD
b2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24u
Y3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MQ29sbGVjdGlvbi5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1
c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1IVE1MQ29sbGVjdGlvbjo6SFRNTENvbGxlY3Rp
b24oUGFzc1JlZlB0cjxOb2RlPiBiYXNlLCBUeXBlIHR5cGUpCitIVE1MQ29sbGVjdGlvbjo6SFRN
TENvbGxlY3Rpb24oUGFzc1JlZlB0cjxOb2RlPiBiYXNlLCBDb2xsZWN0aW9uVHlwZSB0eXBlKQog
ICAgIDogbV9pZHNEb25lKGZhbHNlKQogICAgICwgbV9iYXNlKGJhc2UpCiAgICAgLCBtX3R5cGUo
dHlwZSkKQEAgLTQ0LDcgKzQ0LDcgQEAgSFRNTENvbGxlY3Rpb246OkhUTUxDb2xsZWN0aW9uKFBh
c3NSZWZQdAogewogfQogCi1IVE1MQ29sbGVjdGlvbjo6SFRNTENvbGxlY3Rpb24oUGFzc1JlZlB0
cjxOb2RlPiBiYXNlLCBUeXBlIHR5cGUsIENvbGxlY3Rpb25JbmZvKiBpbmZvKQorSFRNTENvbGxl
Y3Rpb246OkhUTUxDb2xsZWN0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYmFzZSwgQ29sbGVjdGlvblR5
cGUgdHlwZSwgQ29sbGVjdGlvbkNhY2hlKiBpbmZvKQogICAgIDogbV9pZHNEb25lKGZhbHNlKQog
ICAgICwgbV9iYXNlKGJhc2UpCiAgICAgLCBtX3R5cGUodHlwZSkKQEAgLTUzLDcgKzUzLDcgQEAg
SFRNTENvbGxlY3Rpb246OkhUTUxDb2xsZWN0aW9uKFBhc3NSZWZQdAogewogfQogCi1QYXNzUmVm
UHRyPEhUTUxDb2xsZWN0aW9uPiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKFBhc3NSZWZQdHI8Tm9k
ZT4gYmFzZSwgVHlwZSB0eXBlKQorUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gSFRNTENvbGxl
Y3Rpb246OmNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGJhc2UsIENvbGxlY3Rpb25UeXBlIHR5cGUp
CiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MQ29sbGVjdGlvbihiYXNlLCB0eXBlKSk7
CiB9CkBAIC02NCw3NCArNjQsMTIgQEAgSFRNTENvbGxlY3Rpb246On5IVE1MQ29sbGVjdGlvbigp
CiAgICAgICAgIGRlbGV0ZSBtX2luZm87CiB9CiAKLUhUTUxDb2xsZWN0aW9uOjpDb2xsZWN0aW9u
SW5mbzo6Q29sbGVjdGlvbkluZm8oKQotICAgIDogdmVyc2lvbigwKQotewotICAgIHJlc2V0KCk7
Ci19Ci0KLWlubGluZSB2b2lkIEhUTUxDb2xsZWN0aW9uOjpDb2xsZWN0aW9uSW5mbzo6Y29weUNh
Y2hlTWFwKE5vZGVDYWNoZU1hcCYgZGVzdCwgY29uc3QgTm9kZUNhY2hlTWFwJiBzcmMpCi17Ci0g
ICAgQVNTRVJUKGRlc3QuaXNFbXB0eSgpKTsKLSAgICBOb2RlQ2FjaGVNYXA6OmNvbnN0X2l0ZXJh
dG9yIGVuZCA9IHNyYy5lbmQoKTsKLSAgICBmb3IgKE5vZGVDYWNoZU1hcDo6Y29uc3RfaXRlcmF0
b3IgaXQgPSBzcmMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KQotICAgICAgICBkZXN0LmFkZChp
dC0+Zmlyc3QsIG5ldyBWZWN0b3I8RWxlbWVudCo+KCppdC0+c2Vjb25kKSk7Ci19Ci0KLUhUTUxD
b2xsZWN0aW9uOjpDb2xsZWN0aW9uSW5mbzo6Q29sbGVjdGlvbkluZm8oY29uc3QgQ29sbGVjdGlv
bkluZm8mIG90aGVyKQotICAgIDogdmVyc2lvbihvdGhlci52ZXJzaW9uKQotICAgICwgY3VycmVu
dChvdGhlci5jdXJyZW50KQotICAgICwgcG9zaXRpb24ob3RoZXIucG9zaXRpb24pCi0gICAgLCBs
ZW5ndGgob3RoZXIubGVuZ3RoKQotICAgICwgZWxlbWVudHNBcnJheVBvc2l0aW9uKG90aGVyLmVs
ZW1lbnRzQXJyYXlQb3NpdGlvbikKLSAgICAsIGhhc0xlbmd0aChvdGhlci5oYXNMZW5ndGgpCi0g
ICAgLCBoYXNOYW1lQ2FjaGUob3RoZXIuaGFzTmFtZUNhY2hlKQotewotICAgIGNvcHlDYWNoZU1h
cChpZENhY2hlLCBvdGhlci5pZENhY2hlKTsKLSAgICBjb3B5Q2FjaGVNYXAobmFtZUNhY2hlLCBv
dGhlci5uYW1lQ2FjaGUpOwotfQotCi12b2lkIEhUTUxDb2xsZWN0aW9uOjpDb2xsZWN0aW9uSW5m
bzo6c3dhcChDb2xsZWN0aW9uSW5mbyYgb3RoZXIpCi17Ci0gICAgc3RkOjpzd2FwKHZlcnNpb24s
IG90aGVyLnZlcnNpb24pOwotICAgIHN0ZDo6c3dhcChjdXJyZW50LCBvdGhlci5jdXJyZW50KTsK
LSAgICBzdGQ6OnN3YXAocG9zaXRpb24sIG90aGVyLnBvc2l0aW9uKTsKLSAgICBzdGQ6OnN3YXAo
bGVuZ3RoLCBvdGhlci5sZW5ndGgpOwotICAgIHN0ZDo6c3dhcChlbGVtZW50c0FycmF5UG9zaXRp
b24sIG90aGVyLmVsZW1lbnRzQXJyYXlQb3NpdGlvbik7Ci0KLSAgICBpZENhY2hlLnN3YXAob3Ro
ZXIuaWRDYWNoZSk7Ci0gICAgbmFtZUNhY2hlLnN3YXAob3RoZXIubmFtZUNhY2hlKTsKLSAgICAK
LSAgICBzdGQ6OnN3YXAoaGFzTGVuZ3RoLCBvdGhlci5oYXNMZW5ndGgpOwotICAgIHN0ZDo6c3dh
cChoYXNOYW1lQ2FjaGUsIG90aGVyLmhhc05hbWVDYWNoZSk7Ci19Ci0KLUhUTUxDb2xsZWN0aW9u
OjpDb2xsZWN0aW9uSW5mbzo6fkNvbGxlY3Rpb25JbmZvKCkKLXsKLSAgICBkZWxldGVBbGxWYWx1
ZXMoaWRDYWNoZSk7Ci0gICAgZGVsZXRlQWxsVmFsdWVzKG5hbWVDYWNoZSk7Ci19Ci0KLXZvaWQg
SFRNTENvbGxlY3Rpb246OkNvbGxlY3Rpb25JbmZvOjpyZXNldCgpCi17Ci0gICAgY3VycmVudCA9
IDA7Ci0gICAgcG9zaXRpb24gPSAwOwotICAgIGxlbmd0aCA9IDA7Ci0gICAgaGFzTGVuZ3RoID0g
ZmFsc2U7Ci0gICAgZWxlbWVudHNBcnJheVBvc2l0aW9uID0gMDsKLSAgICBkZWxldGVBbGxWYWx1
ZXMoaWRDYWNoZSk7Ci0gICAgaWRDYWNoZS5jbGVhcigpOwotICAgIGRlbGV0ZUFsbFZhbHVlcyhu
YW1lQ2FjaGUpOwotICAgIG5hbWVDYWNoZS5jbGVhcigpOwotICAgIGhhc05hbWVDYWNoZSA9IGZh
bHNlOwotfQotCiB2b2lkIEhUTUxDb2xsZWN0aW9uOjpyZXNldENvbGxlY3Rpb25JbmZvKCkgY29u
c3QKIHsKICAgICB1bnNpZ25lZCBkb2N2ZXJzaW9uID0gc3RhdGljX2Nhc3Q8SFRNTERvY3VtZW50
Kj4obV9iYXNlLT5kb2N1bWVudCgpKS0+ZG9tVHJlZVZlcnNpb24oKTsKIAogICAgIGlmICghbV9p
bmZvKSB7Ci0gICAgICAgIG1faW5mbyA9IG5ldyBDb2xsZWN0aW9uSW5mbzsKKyAgICAgICAgbV9p
bmZvID0gbmV3IENvbGxlY3Rpb25DYWNoZTsKICAgICAgICAgbV9vd25zSW5mbyA9IHRydWU7CiAg
ICAgICAgIG1faW5mby0+dmVyc2lvbiA9IGRvY3ZlcnNpb247CiAgICAgICAgIHJldHVybjsKQEAg
LTE2NCw3ICsxMDIsNyBAQCBFbGVtZW50KiBIVE1MQ29sbGVjdGlvbjo6aXRlbUFmdGVyKEVsZW1l
CiAgICAgICAgIGNhc2UgRG9jU2NyaXB0czoKICAgICAgICAgY2FzZSBEb2N1bWVudE5hbWVkSXRl
bXM6CiAgICAgICAgIGNhc2UgTWFwQXJlYXM6Ci0gICAgICAgIGNhc2UgT3RoZXI6CisgICAgICAg
IGNhc2UgT3RoZXJDb2xsZWN0aW9uOgogICAgICAgICBjYXNlIFNlbGVjdE9wdGlvbnM6CiAgICAg
ICAgIGNhc2UgV2luZG93TmFtZWRJdGVtczoKICAgICAgICAgICAgIGJyZWFrOwpAQCAtMjQ1LDcg
KzE4Myw3IEBAIEVsZW1lbnQqIEhUTUxDb2xsZWN0aW9uOjppdGVtQWZ0ZXIoRWxlbWUKICAgICAg
ICAgICAgIGNhc2UgTm9kZUNoaWxkcmVuOgogICAgICAgICAgICAgICAgIHJldHVybiBlOwogICAg
ICAgICAgICAgY2FzZSBEb2N1bWVudE5hbWVkSXRlbXM6Ci0gICAgICAgICAgICBjYXNlIE90aGVy
OgorICAgICAgICAgICAgY2FzZSBPdGhlckNvbGxlY3Rpb246CiAgICAgICAgICAgICBjYXNlIFdp
bmRvd05hbWVkSXRlbXM6CiAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAkocmV2aXNpb24g
NDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTENvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpA
QCAtMjMsNiArMjMsNyBAQAogI2lmbmRlZiBIVE1MQ29sbGVjdGlvbl9oCiAjZGVmaW5lIEhUTUxD
b2xsZWN0aW9uX2gKIAorI2luY2x1ZGUgIkNvbGxlY3Rpb25UeXBlLmgiCiAjaW5jbHVkZSA8d3Rm
L1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CkBAIC0zMiw2ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
QXRvbWljU3RyaW5nOwogY2xhc3MgQXRvbWljU3RyaW5nSW1wbDsKK2NsYXNzIENvbGxlY3Rpb25D
YWNoZTsKIGNsYXNzIEVsZW1lbnQ7CiBjbGFzcyBOb2RlOwogY2xhc3MgTm9kZUxpc3Q7CkBAIC0z
OSw0NCArNDEsNyBAQCBjbGFzcyBTdHJpbmc7CiAKIGNsYXNzIEhUTUxDb2xsZWN0aW9uIDogcHVi
bGljIFJlZkNvdW50ZWQ8SFRNTENvbGxlY3Rpb24+IHsKIHB1YmxpYzoKLSAgICBlbnVtIFR5cGUg
ewotICAgICAgICAvLyB1bm5hbWVkIGNvbGxlY3Rpb24gdHlwZXMgY2FjaGVkIGluIHRoZSBkb2N1
bWVudAotCi0gICAgICAgIERvY0ltYWdlcywgICAgLy8gYWxsIDxpbWc+IGVsZW1lbnRzIGluIHRo
ZSBkb2N1bWVudAotICAgICAgICBEb2NBcHBsZXRzLCAgIC8vIGFsbCA8b2JqZWN0PiBhbmQgPGFw
cGxldD4gZWxlbWVudHMKLSAgICAgICAgRG9jRW1iZWRzLCAgICAvLyBhbGwgPGVtYmVkPiBlbGVt
ZW50cwotICAgICAgICBEb2NPYmplY3RzLCAgIC8vIGFsbCA8b2JqZWN0PiBlbGVtZW50cwotICAg
ICAgICBEb2NGb3JtcywgICAgIC8vIGFsbCA8Zm9ybT4gZWxlbWVudHMKLSAgICAgICAgRG9jTGlu
a3MsICAgICAvLyBhbGwgPGE+IF9hbmRfIDxhcmVhPiBlbGVtZW50cyB3aXRoIGEgdmFsdWUgZm9y
IGhyZWYKLSAgICAgICAgRG9jQW5jaG9ycywgICAvLyBhbGwgPGE+IGVsZW1lbnRzIHdpdGggYSB2
YWx1ZSBmb3IgbmFtZQotICAgICAgICBEb2NTY3JpcHRzLCAgIC8vIGFsbCA8c2NyaXB0PiBlbGVt
ZW50cwotCi0gICAgICAgIERvY0FsbCwgICAgICAgLy8gImFsbCIgZWxlbWVudHMgKElFKQotICAg
ICAgICBOb2RlQ2hpbGRyZW4sIC8vIGZpcnN0LWxldmVsIGNoaWxkcmVuIChJRSkKLQotICAgICAg
ICAvLyBuYW1lZCBjb2xsZWN0aW9uIHR5cGVzIGNhY2hlZCBpbiB0aGUgZG9jdW1lbnQKLQotICAg
ICAgICBXaW5kb3dOYW1lZEl0ZW1zLAotICAgICAgICBEb2N1bWVudE5hbWVkSXRlbXMsCi0KLSAg
ICAgICAgLy8gdHlwZXMgbm90IGNhY2hlZCBpbiB0aGUgZG9jdW1lbnQ7IHRoZXNlIGFyZSB0eXBl
cyB0aGF0IGNhbid0IGJlIHVzZWQgb24gYSBkb2N1bWVudAotCi0gICAgICAgIFRhYmxlVEJvZGll
cywgLy8gYWxsIDx0Ym9keT4gZWxlbWVudHMgaW4gdGhpcyB0YWJsZQotICAgICAgICBUU2VjdGlv
blJvd3MsIC8vIGFsbCByb3cgZWxlbWVudHMgaW4gdGhpcyB0YWJsZSBzZWN0aW9uCi0gICAgICAg
IFRSQ2VsbHMsICAgICAgLy8gYWxsIGNlbGxzIGluIHRoaXMgcm93Ci0gICAgICAgIFNlbGVjdE9w
dGlvbnMsCi0gICAgICAgIE1hcEFyZWFzLAotCi0gICAgICAgIE90aGVyCi0gICAgfTsKLQotICAg
IHN0YXRpYyBjb25zdCBUeXBlIEZpcnN0VW5uYW1lZERvY3VtZW50Q2FjaGVkVHlwZSA9IERvY0lt
YWdlczsKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgTnVtVW5uYW1lZERvY3VtZW50Q2FjaGVk
VHlwZXMgPSBOb2RlQ2hpbGRyZW4gLSBEb2NJbWFnZXMgKyAxOwotCi0gICAgc3RhdGljIGNvbnN0
IFR5cGUgRmlyc3ROYW1lZERvY3VtZW50Q2FjaGVkVHlwZSA9IFdpbmRvd05hbWVkSXRlbXM7Ci0g
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIE51bU5hbWVkRG9jdW1lbnRDYWNoZWRUeXBlcyA9IERv
Y3VtZW50TmFtZWRJdGVtcyAtIFdpbmRvd05hbWVkSXRlbXMgKyAxOwotCi0gICAgc3RhdGljIFBh
c3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNyZWF0ZShQYXNzUmVmUHRyPE5vZGU+IGJhc2UsIFR5
cGUpOworICAgIHN0YXRpYyBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjcmVhdGUoUGFzc1Jl
ZlB0cjxOb2RlPiBiYXNlLCBDb2xsZWN0aW9uVHlwZSk7CiAgICAgdmlydHVhbCB+SFRNTENvbGxl
Y3Rpb24oKTsKICAgICAKICAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdDsKQEAgLTk0LDUyICs1
OSwxOCBAQCBwdWJsaWM6CiAgICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gdGFncyhjb25zdCBTdHJp
bmcmKTsKIAogICAgIE5vZGUqIGJhc2UoKSBjb25zdCB7IHJldHVybiBtX2Jhc2UuZ2V0KCk7IH0K
LSAgICBUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KLQotICAgIC8vIEZJWE1F
OiBUaGlzIGNsYXNzIG5hbWUgaXMgYSBiYWQgaW4gdHdvIHdheXMuIEZpcnN0LCAiaW5mbyIgaXMg
bXVjaCB0b28gdmFndWUsCi0gICAgLy8gYW5kIGRvZXNuJ3QgY29udmV5IHRoZSBqb2Igb2YgdGhp
cyBjbGFzcyAoY2FjaGluZyBjb2xsZWN0aW9uIHN0YXRlKS4KLSAgICAvLyBTZWNvbmQsIHNpbmNl
IHRoaXMgaXMgYSBtZW1iZXIgb2YgSFRNTENvbGxlY3Rpb24sIGl0IGRvZXNuJ3QgbmVlZCAiY29s
bGVjdGlvbiIKLSAgICAvLyBpbiBpdHMgbmFtZS4KLSAgICBzdHJ1Y3QgQ29sbGVjdGlvbkluZm8g
ewotICAgICAgICBDb2xsZWN0aW9uSW5mbygpOwotICAgICAgICBDb2xsZWN0aW9uSW5mbyhjb25z
dCBDb2xsZWN0aW9uSW5mbyYpOwotICAgICAgICBDb2xsZWN0aW9uSW5mbyYgb3BlcmF0b3I9KGNv
bnN0IENvbGxlY3Rpb25JbmZvJiBvdGhlcikKLSAgICAgICAgewotICAgICAgICAgICAgQ29sbGVj
dGlvbkluZm8gdG1wKG90aGVyKTsgICAgCi0gICAgICAgICAgICBzd2FwKHRtcCk7Ci0gICAgICAg
ICAgICByZXR1cm4gKnRoaXM7Ci0gICAgICAgIH0KLSAgICAgICAgfkNvbGxlY3Rpb25JbmZvKCk7
Ci0KLSAgICAgICAgdm9pZCByZXNldCgpOwotICAgICAgICB2b2lkIHN3YXAoQ29sbGVjdGlvbklu
Zm8mKTsKLQotICAgICAgICB0eXBlZGVmIEhhc2hNYXA8QXRvbWljU3RyaW5nSW1wbCosIFZlY3Rv
cjxFbGVtZW50Kj4qPiBOb2RlQ2FjaGVNYXA7Ci0KLSAgICAgICAgdW5zaWduZWQgdmVyc2lvbjsK
LSAgICAgICAgRWxlbWVudCogY3VycmVudDsKLSAgICAgICAgdW5zaWduZWQgcG9zaXRpb247Ci0g
ICAgICAgIHVuc2lnbmVkIGxlbmd0aDsKLSAgICAgICAgaW50IGVsZW1lbnRzQXJyYXlQb3NpdGlv
bjsKLSAgICAgICAgTm9kZUNhY2hlTWFwIGlkQ2FjaGU7Ci0gICAgICAgIE5vZGVDYWNoZU1hcCBu
YW1lQ2FjaGU7Ci0gICAgICAgIGJvb2wgaGFzTGVuZ3RoOwotICAgICAgICBib29sIGhhc05hbWVD
YWNoZTsKLQotICAgIHByaXZhdGU6Ci0gICAgICAgIHN0YXRpYyB2b2lkIGNvcHlDYWNoZU1hcChO
b2RlQ2FjaGVNYXAmLCBjb25zdCBOb2RlQ2FjaGVNYXAmKTsKLSAgICB9OworICAgIENvbGxlY3Rp
b25UeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KIAogcHJvdGVjdGVkOgotICAg
IEhUTUxDb2xsZWN0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYmFzZSwgVHlwZSwgQ29sbGVjdGlvbklu
Zm8qKTsKKyAgICBIVE1MQ29sbGVjdGlvbihQYXNzUmVmUHRyPE5vZGU+IGJhc2UsIENvbGxlY3Rp
b25UeXBlLCBDb2xsZWN0aW9uQ2FjaGUqKTsKIAotICAgIENvbGxlY3Rpb25JbmZvKiBpbmZvKCkg
Y29uc3QgeyByZXR1cm4gbV9pbmZvOyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlc2V0Q29sbGVjdGlv
bkluZm8oKSBjb25zdDsKKyAgICBDb2xsZWN0aW9uQ2FjaGUqIGluZm8oKSBjb25zdCB7IHJldHVy
biBtX2luZm87IH0KKyAgICB2b2lkIHJlc2V0Q29sbGVjdGlvbkluZm8oKSBjb25zdDsKIAogICAg
IG11dGFibGUgYm9vbCBtX2lkc0RvbmU7IC8vIGZvciBuZXh0TmFtZWRJdGVtKCkKIAogcHJpdmF0
ZToKLSAgICBIVE1MQ29sbGVjdGlvbihQYXNzUmVmUHRyPE5vZGU+IGJhc2UsIFR5cGUpOworICAg
IEhUTUxDb2xsZWN0aW9uKFBhc3NSZWZQdHI8Tm9kZT4gYmFzZSwgQ29sbGVjdGlvblR5cGUpOwog
CiAgICAgdmlydHVhbCBFbGVtZW50KiBpdGVtQWZ0ZXIoRWxlbWVudCopIGNvbnN0OwogICAgIHZp
cnR1YWwgdW5zaWduZWQgY2FsY0xlbmd0aCgpIGNvbnN0OwpAQCAtMTQ4LDkgKzc5LDkgQEAgcHJp
dmF0ZToKICAgICBib29sIGNoZWNrRm9yTmFtZU1hdGNoKEVsZW1lbnQqLCBib29sIGNoZWNrTmFt
ZSwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKSBjb25zdDsKIAogICAgIFJlZlB0cjxOb2RlPiBt
X2Jhc2U7Ci0gICAgVHlwZSBtX3R5cGU7CisgICAgQ29sbGVjdGlvblR5cGUgbV90eXBlOwogCi0g
ICAgbXV0YWJsZSBDb2xsZWN0aW9uSW5mbyogbV9pbmZvOworICAgIG11dGFibGUgQ29sbGVjdGlv
bkNhY2hlKiBtX2luZm87CiAgICAgbXV0YWJsZSBib29sIG1fb3duc0luZm87CiB9OwogCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTERpdkVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
aHRtbC9IVE1MRGl2RWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9odG1s
L0hUTUxEaXZFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTksMTIgKzE5LDE0IEBACiAg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqCiAgKi8KKwogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkhUTUxEaXZFbGVtZW50LmgiCiAKICNpbmNsdWRlICJDU1NQcm9wZXJ0
eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3Jl
L2h0bWwvSFRNTEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSArMzIsMTMgQEAK
ICNpbmNsdWRlICJFeGNlcHRpb25Db2RlLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJIVE1MQlJFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNpbmNsdWRl
ICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3RvcnkuaCIKICNpbmNs
dWRlICJIVE1MRm9ybUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRl
ICJIVE1MVG9rZW5pemVyLmgiIC8vIHBhcnNlSFRNTERvY3VtZW50RnJhZ21lbnQKKyNpbmNsdWRl
ICJIVE1MVG9rZW5pemVyLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyV29yZEJyZWFrLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJU
ZXh0LmgiCkBAIC03NjcsNyArNzY5LDcgQEAgdm9pZCBIVE1MRWxlbWVudDo6c2V0VGFiSW5kZXgo
aW50IHZhbHVlKQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBIVE1MRWxlbWVudDo6Y2hp
bGRyZW4oKQogewotICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3JlYXRlKHRoaXMsIEhUTUxD
b2xsZWN0aW9uOjpOb2RlQ2hpbGRyZW4pOworICAgIHJldHVybiBIVE1MQ29sbGVjdGlvbjo6Y3Jl
YXRlKHRoaXMsIE5vZGVDaGlsZHJlbik7CiB9CiAKIC8vIERPTSBTZWN0aW9uIDEuMS4xCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTEVtYmVkRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9odG1sL0hUTUxFbWJlZEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUv
aHRtbC9IVE1MRW1iZWRFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzEsNiArMzEsNyBA
QAogI2luY2x1ZGUgIkhUTUxJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgog
I2luY2x1ZGUgIkhUTUxPYmplY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRl
LmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJQYXJ0T2JqZWN0
LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZv
bnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50
LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEZvbnRFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5
TmFtZXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiSFRNTE5h
bWVzLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBX
VEY7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiA0MjEz
MikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw2ICsyMyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTEZv
cm1Db2xsZWN0aW9uLmgiCiAKKyNpbmNsdWRlICJDb2xsZWN0aW9uQ2FjaGUuaCIKICNpbmNsdWRl
ICJIVE1MRm9ybUNvbnRyb2xFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CiAjaW5jbHVkZSAiSFRNTEltYWdlRWxlbWVudC5oIgpAQCAtMzUsMTUgKzM2LDE1IEBAIHVzaW5n
IG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAvLyBTaW5jZSB0aGUgY29sbGVjdGlvbnMgYXJlIHRvIGJl
ICJsaXZlIiwgd2UgaGF2ZSB0byBkbyB0aGUKIC8vIGNhbGN1bGF0aW9uIGV2ZXJ5IHRpbWUgaWYg
YW55dGhpbmcgaGFzIGNoYW5nZWQuCiAKLWlubGluZSBIVE1MQ29sbGVjdGlvbjo6Q29sbGVjdGlv
bkluZm8qIEhUTUxGb3JtQ29sbGVjdGlvbjo6Zm9ybUNvbGxlY3Rpb25JbmZvKEhUTUxGb3JtRWxl
bWVudCogZm9ybSkKK2lubGluZSBDb2xsZWN0aW9uQ2FjaGUqIEhUTUxGb3JtQ29sbGVjdGlvbjo6
Zm9ybUNvbGxlY3Rpb25JbmZvKEhUTUxGb3JtRWxlbWVudCogZm9ybSkKIHsKICAgICBpZiAoIWZv
cm0tPmNvbGxlY3Rpb25JbmZvKQotICAgICAgICBmb3JtLT5jb2xsZWN0aW9uSW5mbyA9IG5ldyBD
b2xsZWN0aW9uSW5mbzsKKyAgICAgICAgZm9ybS0+Y29sbGVjdGlvbkluZm8gPSBuZXcgQ29sbGVj
dGlvbkNhY2hlOwogICAgIHJldHVybiBmb3JtLT5jb2xsZWN0aW9uSW5mbzsKIH0KIAogSFRNTEZv
cm1Db2xsZWN0aW9uOjpIVE1MRm9ybUNvbGxlY3Rpb24oUGFzc1JlZlB0cjxIVE1MRm9ybUVsZW1l
bnQ+IGZvcm0pCi0gICAgOiBIVE1MQ29sbGVjdGlvbihmb3JtLmdldCgpLCBPdGhlciwgZm9ybUNv
bGxlY3Rpb25JbmZvKGZvcm0uZ2V0KCkpKQorICAgIDogSFRNTENvbGxlY3Rpb24oZm9ybS5nZXQo
KSwgT3RoZXJDb2xsZWN0aW9uLCBmb3JtQ29sbGVjdGlvbkluZm8oZm9ybS5nZXQoKSkpCiB7CiB9
CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbGxlY3Rpb24uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db2xsZWN0aW9uLmgJKHJldmlzaW9uIDQyMTMyKQorKysg
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29sbGVjdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC01MSw3
ICs1MSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZU5hbWVDYWNoZSgpIGNv
bnN0OwogICAgIHZpcnR1YWwgdW5zaWduZWQgY2FsY0xlbmd0aCgpIGNvbnN0OwogCi0gICAgc3Rh
dGljIENvbGxlY3Rpb25JbmZvKiBmb3JtQ29sbGVjdGlvbkluZm8oSFRNTEZvcm1FbGVtZW50Kik7
CisgICAgc3RhdGljIENvbGxlY3Rpb25DYWNoZSogZm9ybUNvbGxlY3Rpb25JbmZvKEhUTUxGb3Jt
RWxlbWVudCopOwogCiAgICAgRWxlbWVudCogZ2V0TmFtZWRJdGVtKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpIGNvbnN0OwogICAgIEVsZW1l
bnQqIG5leHROYW1lZEl0ZW1JbnRlcm5hbChjb25zdCBTdHJpbmcmIG5hbWUpIGNvbnN0OwpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIp
CisrKyBXZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJI
VE1MUGFyc2VyLmgiCiAjaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgorI2luY2x1ZGUgIk1hcHBl
ZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlJlbmRlckJveC5oIgogI2luY2x1ZGUgIlJlbmRlclRo
ZW1lLmgiCiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikK
KysrIFdlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MiwyMiArNDIsMjIgQEAKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTUlNRVR5cGVSZWdpc3RyeS5oIgorI2luY2x1ZGUgIk1h
cHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJUZXh0
Q29udHJvbC5oIgorI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUu
aD4KICNpbmNsdWRlIDx3dGYvUmFuZG9tTnVtYmVyLmg+CiAKLSNpbmNsdWRlIDxsaW1pdHM+Cisj
aWYgUExBVEZPUk0oV0lOX09TKQorI2luY2x1ZGUgPHNobHdhcGkuaD4KKyNlbmRpZgogCiAjaWYg
UExBVEZPUk0oV1gpCiAjaW5jbHVkZSA8d3gvZGVmcy5oPgogI2luY2x1ZGUgPHd4L2ZpbGVuYW1l
Lmg+CiAjZW5kaWYKIAotI2lmIFBMQVRGT1JNKFdJTl9PUykKLSNpbmNsdWRlIDxzaGx3YXBpLmg+
Ci0jZW5kaWYKLQogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5h
bWVzOwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxGb3JtRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9IVE1MRm9ybUVsZW1lbnQuaAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJD
b3JlL2h0bWwvSFRNTEZvcm1FbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2LDEzICsyNiwx
MiBAQAogCiAjaW5jbHVkZSAiQ2hlY2tlZFJhZGlvQnV0dG9ucy5oIgogI2luY2x1ZGUgIkZvcm1E
YXRhQnVpbGRlci5oIgotI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiIAogI2luY2x1ZGUgIkhU
TUxFbGVtZW50LmgiCi0KICNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgQ29sbGVjdGlvbkNhY2hlOwogY2xhc3MgRXZlbnQ7CiBjbGFzcyBGb3Jt
RGF0YTsKIGNsYXNzIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ7CkBAIC0xMzAsNyArMTI5LDcgQEAg
cHJpdmF0ZToKIAogICAgIEZvcm1EYXRhQnVpbGRlciBtX2Zvcm1EYXRhQnVpbGRlcjsKICAgICBB
bGlhc01hcCogbV9lbGVtZW50QWxpYXNlczsKLSAgICBIVE1MQ29sbGVjdGlvbjo6Q29sbGVjdGlv
bkluZm8qIGNvbGxlY3Rpb25JbmZvOworICAgIENvbGxlY3Rpb25DYWNoZSogY29sbGVjdGlvbklu
Zm87CiAKICAgICBDaGVja2VkUmFkaW9CdXR0b25zIG1fY2hlY2tlZFJhZGlvQnV0dG9uczsKICAg
ICAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysg
V2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2
ICsyNyw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVTZXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyRnJhbWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRl
eDogV2ViQ29yZS9odG1sL0hUTUxGcmFtZUVsZW1lbnRCYXNlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lRWxlbWVudEJhc2UuY3BwCShyZXZpc2lvbiA0MjEzMikKKysr
IFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVFbGVtZW50QmFzZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJIVE1MRnJhbWVTZXRFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiS1VSTC5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJp
YnV0ZS5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJGcmFtZS5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMu
aCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRlICJMZW5ndGguaCIKLSNpbmNsdWRl
ICJMZW5ndGguaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJNb3Vz
ZUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyRnJhbWVTZXQuaCIKICNpbmNsdWRlICJUZXh0Lmgi
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTEhSRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9odG1sL0hUTUxIUkVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUv
aHRtbC9IVE1MSFJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTksMTIgKzE5LDE0IEBA
CiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqCiAgKi8KKwogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkhUTUxIUkVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkNTU1Byb3Bl
cnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEz
MikKKysrIFdlYkNvcmUvaHRtbC9IVE1MSUZyYW1lRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0
ZS5oIgogI2luY2x1ZGUgIlJlbmRlclBhcnRPYmplY3QuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDYg
KzMwLDcgQEAKICNpbmNsdWRlICJIVE1MRG9jdW1lbnQuaCIKICNpbmNsdWRlICJIVE1MRm9ybUVs
ZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1
dGUuaCIKICNpbmNsdWRlICJSZW5kZXJJbWFnZS5oIgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpJ
bmRleDogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2
LDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVtZW50Lmgi
CiAKLSNpbmNsdWRlICJDaHJvbWVDbGllbnQuaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVz
LmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xpZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFZGl0b3IuaCIKICNpbmNsdWRlICJFdmVudC5oIgpAQCAtNDMsNiArNDMsNyBAQAog
I2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNs
dWRlICJMb2NhbGl6ZWRTdHJpbmdzLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAj
aW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJSZW5k
ZXJCdXR0b24uaCIKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MSXNJbmRleEVsZW1lbnQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSXNJbmRleEVsZW1lbnQuY3BwCShyZXZpc2lv
biA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MSXNJbmRleEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNCw3ICsyNCw5IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJIVE1MSXNJbmRleEVsZW1lbnQuaCIKKwogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1
ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdl
YkNvcmUvaHRtbC9IVE1MS2V5Z2VuRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
dG1sL0hUTUxLZXlnZW5FbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2h0
bWwvSFRNTEtleWdlbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiRm9ybURhdGFMaXN0LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5j
bHVkZSAiSFRNTE9wdGlvbkVsZW1lbnQuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIK
ICNpbmNsdWRlICJTU0xLZXlHZW5lcmF0b3IuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAjaW5jbHVk
ZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxMSUVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTElFbGVtZW50LmNwcAkocmV2aXNp
b24gNDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTExJRWxlbWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5j
bHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1
ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlJlbmRlckxpc3RJdGVtLmgiCiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCShyZXZpc2lv
biA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNp
bmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJN
YXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJNZWRpYUxpc3QuaCIKICNpbmNsdWRlICJNZWRp
YVF1ZXJ5RXZhbHVhdG9yLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxNYXBFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE1hcEVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MTWFwRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4LDYgKzE4LDcgQEAKICAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCiAg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLworCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSFRNTE1hcEVsZW1lbnQuaCIKIApAQCAtMjUsOCArMjYsOSBAQAogI2luY2x1
ZGUgIkhUTUxBcmVhRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSW50U2l6ZS5oIgogI2luY2x1ZGUgIkhpdFRl
c3RSZXN1bHQuaCIKKyNpbmNsdWRlICJJbnRTaXplLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmli
dXRlLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKQEAgLTk2LDcgKzk4LDcgQEAgdm9pZCBI
VE1MTWFwRWxlbWVudDo6cGFyc2VNYXBwZWRBdHRyaWJ1dAogCiBQYXNzUmVmUHRyPEhUTUxDb2xs
ZWN0aW9uPiBIVE1MTWFwRWxlbWVudDo6YXJlYXMoKQogewotICAgIHJldHVybiBIVE1MQ29sbGVj
dGlvbjo6Y3JlYXRlKHRoaXMsIEhUTUxDb2xsZWN0aW9uOjpNYXBBcmVhcyk7CisgICAgcmV0dXJu
IEhUTUxDb2xsZWN0aW9uOjpjcmVhdGUodGhpcywgTWFwQXJlYXMpOwogfQogCiBTdHJpbmcgSFRN
TE1hcEVsZW1lbnQ6Om5hbWUoKSBjb25zdApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVl
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9odG1sL0hUTUxNYXJxdWVlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5LDEyICsxOSwxNCBAQAogICogQm9zdG9uLCBNQSAw
MjExMC0xMzAxLCBVU0EuCiAgKgogICovCisKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJIVE1MTWFycXVlZUVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIK
ICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRzLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisj
aW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5ZXIuaCIKICNp
bmNsdWRlICJSZW5kZXJNYXJxdWVlLmgiCiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTWV0YUVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MTWV0YUVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xOSwxMSArMTksMTMgQEAKICAqIHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCiAgKiBCb3N0
b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLworCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiSFRNTE1ldGFFbGVtZW50LmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTmFtZUNvbGxlY3Rpb24uY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MTmFtZUNvbGxlY3Rpb24uY3BwCShyZXZp
c2lvbiA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MTmFtZUNvbGxlY3Rpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdXNpbmcg
bmFtZXNwYWNlIEhUTUxOYW1lczsKIAotSFRNTE5hbWVDb2xsZWN0aW9uOjpIVE1MTmFtZUNvbGxl
Y3Rpb24oUGFzc1JlZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQsIFR5cGUgdHlwZSwgY29uc3QgU3Ry
aW5nJiBuYW1lKQorSFRNTE5hbWVDb2xsZWN0aW9uOjpIVE1MTmFtZUNvbGxlY3Rpb24oUGFzc1Jl
ZlB0cjxEb2N1bWVudD4gZG9jdW1lbnQsIENvbGxlY3Rpb25UeXBlIHR5cGUsIGNvbnN0IFN0cmlu
ZyYgbmFtZSkKICAgICA6IEhUTUxDb2xsZWN0aW9uKGRvY3VtZW50LmdldCgpLCB0eXBlLCBkb2N1
bWVudC0+bmFtZUNvbGxlY3Rpb25JbmZvKHR5cGUsIG5hbWUpKQogICAgICwgbV9uYW1lKG5hbWUp
CiB7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE5hbWVDb2xsZWN0aW9uLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9odG1sL0hUTUxOYW1lQ29sbGVjdGlvbi5oCShyZXZpc2lvbiA0MjEzMikKKysr
IFdlYkNvcmUvaHRtbC9IVE1MTmFtZUNvbGxlY3Rpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzIs
MTMgKzMyLDEzIEBAIGNsYXNzIERvY3VtZW50OwogCiBjbGFzcyBIVE1MTmFtZUNvbGxlY3Rpb24g
OiBwdWJsaWMgSFRNTENvbGxlY3Rpb24gewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRy
PEhUTUxOYW1lQ29sbGVjdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8RG9jdW1lbnQ+IGRvY3VtZW50
LCBUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgbmFtZSkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxI
VE1MTmFtZUNvbGxlY3Rpb24+IGNyZWF0ZShQYXNzUmVmUHRyPERvY3VtZW50PiBkb2N1bWVudCwg
Q29sbGVjdGlvblR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKQogICAgIHsKICAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBIVE1MTmFtZUNvbGxlY3Rpb24oZG9jdW1lbnQsIHR5cGUsIG5h
bWUpKTsKICAgICB9CiAgICAgCiBwcml2YXRlOgotICAgIEhUTUxOYW1lQ29sbGVjdGlvbihQYXNz
UmVmUHRyPERvY3VtZW50PiwgVHlwZSwgY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICBIVE1MTmFt
ZUNvbGxlY3Rpb24oUGFzc1JlZlB0cjxEb2N1bWVudD4sIENvbGxlY3Rpb25UeXBlLCBjb25zdCBT
dHJpbmcmIG5hbWUpOwogCiAgICAgdmlydHVhbCBFbGVtZW50KiBpdGVtQWZ0ZXIoRWxlbWVudCop
IGNvbnN0OwogCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE9MaXN0RWxlbWVudC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxPTGlzdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEz
MikKKysrIFdlYkNvcmUvaHRtbC9IVE1MT0xpc3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTgsMTIgKzE4LDE0IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqCiAg
Ki8KKwogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxPTGlzdEVsZW1lbnQuaCIK
IAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdv
cmRzLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlzdEl0ZW0uaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJ
bmRleDogV2ViQ29yZS9odG1sL0hUTUxPYmplY3RFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTE9iamVjdEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdl
YkNvcmUvaHRtbC9IVE1MT2JqZWN0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYg
KzMzLDcgQEAKICNpbmNsdWRlICJIVE1MSW1hZ2VMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MTmFt
ZXMuaCIKICNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0
cmlidXRlLmgiCiAjaW5jbHVkZSAiUmVuZGVySW1hZ2UuaCIKICNpbmNsdWRlICJSZW5kZXJQYXJ0
T2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyV2lkZ2V0LmgiCkBAIC00MCw3ICs0MSw2IEBACiAj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJUZXh0LmgiCiAKLQogbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxPcHRpb25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE9w
dGlvbkVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MT3B0
aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwLDkgKzMwLDEwIEBACiAjaW5jbHVk
ZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhU
TUxTZWxlY3RFbGVtZW50LmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCisjaW5jbHVk
ZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKICNpbmNs
dWRlICJUZXh0LmgiCi0jaW5jbHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApJbmRleDogV2ViQ29y
ZS9odG1sL0hUTUxQYXJhZ3JhcGhFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0
bWwvSFRNTFBhcmFncmFwaEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUv
aHRtbC9IVE1MUGFyYWdyYXBoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5LDYgKzE5
LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICoKICAqLworCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTFBhcmFncmFwaEVsZW1lbnQuaCIKIApAQCAtMjYs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJEb2N1
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0
ZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MUGFy
YW1FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFBhcmFtRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9odG1sL0hUTUxQYXJhbUVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MUGx1Z0lu
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxQbHVnSW5FbGVtZW50
LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFBsdWdJbkVsZW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAgKiB0aGUgRnJlZSBTb2Z0d2Fy
ZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAogICog
Qm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KKwogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkhUTUxQbHVnSW5FbGVtZW50LmgiCiAKQEAgLTMwLDYgKzMxLDcgQEAKICNpbmNs
dWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUgIkhU
TUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlBhZ2Uu
aCIKICNpbmNsdWRlICJSZW5kZXJXaWRnZXQuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVy
LmgiCkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFByZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvaHRtbC9IVE1MUHJlRWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2Vi
Q29yZS9odG1sL0hUTUxQcmVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsMTIgKzIx
LDE0IEBACiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqCiAgKi8KKwogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkhUTUxQcmVFbGVtZW50LmgiCiAKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5oIgogI2luY2x1
ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MU2NyaXB0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxTY3JpcHRFbGVtZW50LmNwcAkocmV2aXNp
b24gNDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFNjcmlwdEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTWFwcGVk
QXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cklu
ZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiAr
MjIsNyBAQAogICoKICAqLwogIAorCiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRN
TFNlbGVjdEVsZW1lbnQuaCIKIApAQCAtNDMsNiArNDQsNyBAQAogI2luY2x1ZGUgIkhUTUxPcHRp
b25FbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE9wdGlvbnNDb2xsZWN0aW9uLmgiCiAjaW5jbHVk
ZSAiS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1
ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyTGlz
dEJveC5oIgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgJKHJldmlzaW9uIDQyMTMyKQor
KysgV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI0
LDggKzI0LDggQEAKICNpZm5kZWYgSFRNTFNlbGVjdEVsZW1lbnRfaAogI2RlZmluZSBIVE1MU2Vs
ZWN0RWxlbWVudF9oCiAKKyNpbmNsdWRlICJDb2xsZWN0aW9uQ2FjaGUuaCIKICNpbmNsdWRlICJF
dmVudC5oIgotI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1D
b250cm9sRWxlbWVudC5oIgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApAQCAtMTE5LDcgKzEx
OSw3IEBAIHB1YmxpYzoKICAgICBOb2RlKiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKTsKICAgICBOb2RlKiBpdGVtKHVuc2lnbmVkIGluZGV4KTsKIAotICAgIEhUTUxDb2xsZWN0
aW9uOjpDb2xsZWN0aW9uSW5mbyogY29sbGVjdGlvbkluZm8oKSB7IHJldHVybiAmbV9jb2xsZWN0
aW9uSW5mbzsgfQorICAgIENvbGxlY3Rpb25DYWNoZSogY29sbGVjdGlvbkluZm8oKSB7IHJldHVy
biAmbV9jb2xsZWN0aW9uSW5mbzsgfQogICAgIAogICAgIHZvaWQgc2V0QWN0aXZlU2VsZWN0aW9u
QW5jaG9ySW5kZXgoaW50IGluZGV4KTsKICAgICB2b2lkIHNldEFjdGl2ZVNlbGVjdGlvbkVuZElu
ZGV4KGludCBpbmRleCkgeyBtX2FjdGl2ZVNlbGVjdGlvbkVuZEluZGV4ID0gaW5kZXg7IH0KQEAg
LTE2Myw3ICsxNjMsNyBAQCBwcml2YXRlOgogICAgIERPTVRpbWVTdGFtcCBtX2xhc3RDaGFyVGlt
ZTsKICAgICBTdHJpbmcgbV90eXBlZFN0cmluZzsKIAotICAgIEhUTUxDb2xsZWN0aW9uOjpDb2xs
ZWN0aW9uSW5mbyBtX2NvbGxlY3Rpb25JbmZvOworICAgIENvbGxlY3Rpb25DYWNoZSBtX2NvbGxl
Y3Rpb25JbmZvOwogfTsKIAogI2lmZGVmIE5ERUJVRwpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxT
dHlsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MU3R5bGVFbGVt
ZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFN0eWxlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwLDExICsyMCwxMyBAQAogICogdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwK
ICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICovCisKICNpbmNsdWRlICJjb25maWcu
aCIKICNpbmNsdWRlICJIVE1MU3R5bGVFbGVtZW50LmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MVGFibGVDYXB0
aW9uRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNhcHRp
b25FbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRhYmxl
Q2FwdGlvbkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxMSArMjEsMTMgQEAKICAq
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwg
RmlmdGggRmxvb3IsCiAgKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLworCiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlQ2FwdGlvbkVsZW1lbnQuaCIKIAog
I2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNp
bmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkluZGV4
OiBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ2VsbEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvaHRtbC9IVE1MVGFibGVDZWxsRWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysg
V2ViQ29yZS9odG1sL0hUTUxUYWJsZUNlbGxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjMsNiArMjMsNyBAQAogICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwg
VVNBLgogICovCisKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJIVE1MVGFibGVDZWxs
RWxlbWVudC5oIgogCkBAIC0zMCw2ICszMSw3IEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jk
cy5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQu
aCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJSZW5kZXJUYWJsZUNl
bGwuaCIKIAogdXNpbmcgc3RkOjptYXg7CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlQ29s
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxUYWJsZUNvbEVsZW1l
bnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVDb2xFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsMTMgKzIzLDE1IEBACiAgKiB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29y
LAogICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKi8KKwogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZUNvbEVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkNTU1By
b3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJSZW5kZXJU
YWJsZUNvbC5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJNYXBw
ZWRBdHRyaWJ1dGUuaCIKKyNpbmNsdWRlICJSZW5kZXJUYWJsZUNvbC5oIgogI2luY2x1ZGUgIlRl
eHQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUYWJs
ZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVFbGVtZW50
LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlRWxlbWVudC5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDkgKzMxLDEwIEBACiAjaW5jbHVkZSAiRXhjZXB0aW9u
Q29kZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhUTUxUYWJsZUNhcHRp
b25FbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uaCIKICNpbmNs
dWRlICJIVE1MVGFibGVSb3dFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRhYmxlUm93c0NvbGxl
Y3Rpb24uaCIKICNpbmNsdWRlICJIVE1MVGFibGVTZWN0aW9uRWxlbWVudC5oIgorI2luY2x1ZGUg
Ik1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlJlbmRlclRhYmxlLmgiCiAjaW5jbHVkZSAi
VGV4dC5oIgogCkBAIC02NTUsNyArNjU2LDcgQEAgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4g
SFRNTFRhYmxlRWxlbQogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBIVE1MVGFibGVFbGVt
ZW50Ojp0Qm9kaWVzKCkKIHsKLSAgICByZXR1cm4gSFRNTENvbGxlY3Rpb246OmNyZWF0ZSh0aGlz
LCBIVE1MQ29sbGVjdGlvbjo6VGFibGVUQm9kaWVzKTsKKyAgICByZXR1cm4gSFRNTENvbGxlY3Rp
b246OmNyZWF0ZSh0aGlzLCBUYWJsZVRCb2RpZXMpOwogfQogCiBTdHJpbmcgSFRNTFRhYmxlRWxl
bWVudDo6YWxpZ24oKSBjb25zdApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUYWJsZVBhcnRFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlUGFydEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVQYXJ0RWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICAqIHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCiAg
KiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICAqLworCiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSFRNTFRhYmxlUGFydEVsZW1lbnQuaCIKIApAQCAtMzEsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd0VsZW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNjgsNyArMTY4LDcgQEAgdm9pZCBIVE1MVGFibGVSb3dFbGVt
ZW50OjpkZWxldGVDZWxsKGludAogCiBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBIVE1MVGFi
bGVSb3dFbGVtZW50OjpjZWxscygpCiB7Ci0gICAgcmV0dXJuIEhUTUxDb2xsZWN0aW9uOjpjcmVh
dGUodGhpcywgSFRNTENvbGxlY3Rpb246OlRSQ2VsbHMpOworICAgIHJldHVybiBIVE1MQ29sbGVj
dGlvbjo6Y3JlYXRlKHRoaXMsIFRSQ2VsbHMpOwogfQogCiB2b2lkIEhUTUxUYWJsZVJvd0VsZW1l
bnQ6OnNldENlbGxzKEhUTUxDb2xsZWN0aW9uICosIEV4Y2VwdGlvbkNvZGUmIGVjKQpJbmRleDog
V2ViQ29yZS9odG1sL0hUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL2h0bWwvSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwCShyZXZpc2lvbiA0MjEzMikK
KysrIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVSb3dzQ29sbGVjdGlvbi5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE0OSw3ICsxNDksNyBAQCBIVE1MVGFibGVSb3dFbGVtZW50KiBIVE1MVGFibGVSb3dz
Q29sbGVjCiB9CiAKIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uOjpIVE1MVGFibGVSb3dzQ29sbGVj
dGlvbihQYXNzUmVmUHRyPEhUTUxUYWJsZUVsZW1lbnQ+IHRhYmxlKQotICAgIDogSFRNTENvbGxl
Y3Rpb24odGFibGUsIE90aGVyLCAwKQorICAgIDogSFRNTENvbGxlY3Rpb24odGFibGUsIE90aGVy
Q29sbGVjdGlvbiwgMCkKIHsKIH0KIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUYWJsZVNlY3Rp
b25FbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRhYmxlU2VjdGlv
bkVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MVGFibGVT
ZWN0aW9uRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Nyw3ICsxNjcsNyBAQCB2b2lk
IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50OjpzZXRWQWxpZ24oCiAKIFBhc3NSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IEhUTUxUYWJsZVNlY3Rpb25FbGVtZW50Ojpyb3dzKCkKIHsKLSAgICByZXR1cm4g
SFRNTENvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBIVE1MQ29sbGVjdGlvbjo6VFNlY3Rpb25Sb3dz
KTsKKyAgICByZXR1cm4gSFRNTENvbGxlY3Rpb246OmNyZWF0ZSh0aGlzLCBUU2VjdGlvblJvd3Mp
OwogfQogCiB9CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuY3BwCShyZXZpc2lv
biA0MjEzMikKKysrIFdlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsMTEgKzM0LDEyIEBACiAjaW5jbHVkZSAiRm9ybURhdGFMaXN0LmgiCiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJNYXBw
ZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU3R5bGUu
aCIKICNpbmNsdWRlICJSZW5kZXJUZXh0Q29udHJvbE11bHRpTGluZS5oIgotI2luY2x1ZGUgIlZp
c2libGVTZWxlY3Rpb24uaCIKICNpbmNsdWRlICJUZXh0LmgiCisjaW5jbHVkZSAiVmlzaWJsZVNl
bGVjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDYgKzQx
LDcgQEAKICNpbmNsdWRlICJIVE1MUGFyc2VyLmgiCiAjaW5jbHVkZSAiSFRNTFNjcmlwdEVsZW1l
bnQuaCIKICNpbmNsdWRlICJIVE1MVmlld1NvdXJjZURvY3VtZW50LmgiCisjaW5jbHVkZSAiTWFw
cGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlByZWxvYWRTY2Fu
bmVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgpJbmRleDogV2ViQ29yZS9odG1s
L0hUTUxVTGlzdEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVUxp
c3RFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFVMaXN0
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4LDExICsxOCwxMyBAQAogICogQm9zdG9u
LCBNQSAwMjExMC0xMzAxLCBVU0EuCiAgKgogICovCisKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJIVE1MVUxpc3RFbGVtZW50LmgiCiAKICNpbmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVz
LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxWaWRlb0Vs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVmlkZW9FbGVtZW50LmNw
cAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFZpZGVvRWxlbWVudC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkhUTUxJbWFnZUxvYWRlci5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2lu
Y2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5j
bHVkZSAiUmVuZGVyVmlkZW8uaCIKIApJbmRleDogV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNl
RG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURv
Y3VtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDE4ICsyNiwxOSBAQAogI2luY2x1
ZGUgIkhUTUxWaWV3U291cmNlRG9jdW1lbnQuaCIKIAogI2luY2x1ZGUgIkRPTUltcGxlbWVudGF0
aW9uLmgiCi0jaW5jbHVkZSAiSFRNTFRva2VuaXplci5oIgotI2luY2x1ZGUgIkhUTUxIdG1sRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxBbmNob3JFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEJv
ZHlFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTERpdkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1M
VGFibGVFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVkZSAi
SFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlQ2VsbEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MVGFibGVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFRhYmxlUm93RWxlbWVudC5oIgog
I2luY2x1ZGUgIkhUTUxUYWJsZVNlY3Rpb25FbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTFRva2Vu
aXplci5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlRleHQuaCIK
ICNpbmNsdWRlICJUZXh0RG9jdW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9JbWFnZURvY3VtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9JbWFnZURvY3VtZW50LmNwcAkocmV2aXNp
b24gNDIxMzIpCisrKyBXZWJDb3JlL2xvYWRlci9JbWFnZURvY3VtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIklt
YWdlRG9jdW1lbnQuaCIKIAorI2luY2x1ZGUgIkNTU1N0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNs
dWRlICJDYWNoZWRJbWFnZS5oIgogI2luY2x1ZGUgIkRvY3VtZW50TG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRWxlbWVudC5oIgpJbmRleDogV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJB
cHBseVN0eWxlQ29tbWFuZC5oIgogI2luY2x1ZGUgIkJlZm9yZVVubG9hZEV2ZW50LmgiCiAjaW5j
bHVkZSAiQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmgiCisjaW5jbHVkZSAiQ1NTTXV0YWJs
ZVN0eWxlRGVjbGFyYXRpb24uaCIKICNpbmNsdWRlICJDU1NQcm9wZXJ0eS5oIgogI2luY2x1ZGUg
IkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDYWNoZWRDU1NTdHlsZVNoZWV0LmgiCklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAkocmV2aXNpb24gNDIxMzIp
CisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUcmVlQXNUZXh0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbmRl
clRyZWVBc1RleHQuaCIKIAorI2luY2x1ZGUgIkNTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLmgi
CiAjaW5jbHVkZSAiQ2hhcmFjdGVyTmFtZXMuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkZyYW1lLmgiCkBAIC00NCw5ICs0NSw5IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5o
PgogCiAjaWYgRU5BQkxFKFNWRykKLSNpbmNsdWRlICJSZW5kZXJTVkdSb290LmgiCiAjaW5jbHVk
ZSAiUmVuZGVyU1ZHQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHSW5saW5lVGV4dC5o
IgorI2luY2x1ZGUgIlJlbmRlclNWR1Jvb3QuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdUZXh0Lmgi
CiAjaW5jbHVkZSAiU1ZHUmVuZGVyVHJlZUFzVGV4dC5oIgogI2VuZGlmCkluZGV4OiBXZWJDb3Jl
L3N2Zy9TVkdBRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQUVsZW1l
bnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvc3ZnL1NWR0FFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzQsMTMgKzM0LDE0IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKKyNpbmNs
dWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJNb3VzZUV2ZW50LmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCi0jaW5jbHVkZSAiUmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lci5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0lubGluZS5oIgorI2luY2x1ZGUgIlJl
bmRlclNWR1RyYW5zZm9ybWFibGVDb250YWluZXIuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVl
c3QuaCIKLSNpbmNsdWRlICJTVkdTTUlMRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgi
CisjaW5jbHVkZSAiU1ZHU01JTEVsZW1lbnQuaCIKICNpbmNsdWRlICJYTGlua05hbWVzLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVNb3Rpb25F
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlTW90aW9uRWxl
bWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZU1vdGlv
bkVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMiw5ICsyMiwxMSBAQAogKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCiAjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJ
T04pCiAjaW5jbHVkZSAiU1ZHQW5pbWF0ZU1vdGlvbkVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIk1h
cHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlNW
R0VsZW1lbnRJbnN0YW5jZS5oIgogI2luY2x1ZGUgIlNWR01QYXRoRWxlbWVudC5oIgpJbmRleDog
V2ViQ29yZS9zdmcvU1ZHQW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvc3ZnL1NWR0FuaW1hdGVUcmFuc2Zvcm1FbGVtZW50LmNwcAkocmV2aXNpb24gNDIx
MzIpCisrKyBXZWJDb3JlL3N2Zy9TVkdBbmltYXRlVHJhbnNmb3JtRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIzLDEwICsyMywxMSBAQAogKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgor
CiAjaWYgRU5BQkxFKFNWRykgJiYgRU5BQkxFKFNWR19BTklNQVRJT04pCiAjaW5jbHVkZSAiU1ZH
QW5pbWF0ZVRyYW5zZm9ybUVsZW1lbnQuaCIKIAotI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0
cml4LmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2Jq
ZWN0LmgiCiAjaW5jbHVkZSAiU1ZHQW5nbGUuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50SW5zdGFu
Y2UuaCIKQEAgLTM3LDcgKzM4LDcgQEAKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm0uaCIKICNpbmNs
dWRlICJTVkdUcmFuc2Zvcm1MaXN0LmgiCiAjaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgotCisj
aW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlIDxtYXRoLmg+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9u
RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcvU1ZHQW5pbWF0aW9uRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKICovCiAKICNpbmNsdWRlICJj
b25maWcuaCIKKwogI2lmIEVOQUJMRShTVkdfQU5JTUFUSU9OKQogI2luY2x1ZGUgIlNWR0FuaW1h
dGlvbkVsZW1lbnQuaCIKIApAQCAtMzQsNiArMzUsNyBAQAogI2luY2x1ZGUgIkV2ZW50TGlzdGVu
ZXIuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNpbmNsdWRlICJIVE1MTmFtZXMu
aCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJTVkdFbGVtZW50SW5z
dGFuY2UuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNWR1VSSVJlZmVyZW5j
ZS5oIgpJbmRleDogV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysg
V2ViQ29yZS9zdmcvU1ZHQ2lyY2xlRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbmNsdWRlICJTVkdDaXJjbGVFbGVtZW50LmgiCiAKICNpbmNsdWRlICJGbG9h
dFBvaW50LmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiUmVuZGVy
UGF0aC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdDbGlwUGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3ZnL1NWR0NsaXBQYXRoRWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2Vi
Q29yZS9zdmcvU1ZHQ2xpcFBhdGhFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiAr
MjcsNyBAQAogCiAjaW5jbHVkZSAiQ1NTU3R5bGVTZWxlY3Rvci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMu
aCIKICNpbmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0LmgiCiAjaW5jbHVkZSAiU1ZHVW5pdFR5cGVz
LmgiCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdDdXJzb3JFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOCAr
MjcsOSBAQAogCiAjaW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5j
bHVkZSAiU1ZHTmFtZXMuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRl
ICJTVkdMZW5ndGguaCIKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvc3ZnL1NWR0VsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvc3Zn
L1NWR0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVk
ZSAiRXZlbnROYW1lcy5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
U3RyaW5nLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJlZEV2ZW50TGlzdGVuZXIuaCIKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0VsbGlwc2VFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdFbGxpcHNlRWxlbWVudC5jcHAJKHJldmlz
aW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcvU1ZHRWxsaXBzZUVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiU1ZHRWxsaXBzZUVsZW1lbnQuaCIK
IAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIK
ICNpbmNsdWRlICJSZW5kZXJQYXRoLmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgiCiAjaW5jbHVk
ZSAiU1ZHTmFtZXMuaCIKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2VzUmVx
dWlyZWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0V4dGVybmFsUmVzb3VyY2Vz
UmVxdWlyZWQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvc3ZnL1NWR0V4dGVybmFs
UmVzb3VyY2VzUmVxdWlyZWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw5IEBACiAj
aW5jbHVkZSAiU1ZHRXh0ZXJuYWxSZXNvdXJjZXNSZXF1aXJlZC5oIgogCiAjaW5jbHVkZSAiQXR0
ci5oIgotI2luY2x1ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgi
CiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgorI2luY2x1ZGUgIlNWR05hbWVzLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCShyZXZpc2lvbiA0
MjEzMikKKysrIFdlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI1LDEzICsyNSwxNCBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHRml0VG9W
aWV3Qm94LmgiCiAKLSNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0
cmlidXRlLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQYXJzZXJVdGls
aXRpZXMuaCIKICNpbmNsdWRlICJTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvLmgiCiAjaW5jbHVkZSAi
U3RyaW5nSW1wbC5oIgorI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApJbmRleDogV2ViQ29yZS9zdmcvU1ZHRm9udEZhY2VFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdGb250RmFjZUVsZW1lbnQuY3BwCShyZXZp
c2lvbiA0MjEzMikKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvbnRGYWNlRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIAogI2lmIEVOQUJMRShTVkdfRk9OVFMpCiAjaW5j
bHVkZSAiU1ZHRm9udEZhY2VFbGVtZW50LmgiCisKICNpbmNsdWRlICJDU3RyaW5nLmgiCiAjaW5j
bHVkZSAiQ1NTRm9udEZhY2VSdWxlLmgiCiAjaW5jbHVkZSAiQ1NTRm9udEZhY2VTcmNWYWx1ZS5o
IgpAQCAtMzUsMTIgKzM2LDEyIEBACiAjaW5jbHVkZSAiQ1NTVmFsdWVMaXN0LmgiCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGb250LmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmli
dXRlLmgiCiAjaW5jbHVkZSAiU1ZHRGVmaW5pdGlvblNyY0VsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdGb250RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0ZvbnRGYWNlU3JjRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlNWR0dseXBoRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCi0KICNpbmNs
dWRlIDxtYXRoLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R0ZvbnRGYWNlVXJpRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9u
dEZhY2VVcmlFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL3N2Zy9TVkdG
b250RmFjZVVyaUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAj
aW5jbHVkZSAiQ2FjaGVkRm9udC5oIgogI2luY2x1ZGUgIkRvY0xvYWRlci5oIgogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiU1ZH
Rm9udEZhY2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJYTGlu
a05hbWVzLmgiCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdGb3JlaWduT2JqZWN0RWxlbWVudC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHRm9yZWlnbk9iamVjdEVsZW1lbnQuY3BwCShy
ZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvc3ZnL1NWR0ZvcmVpZ25PYmplY3RFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjYsMTAgKzI2LDEwIEBACiAjaW5jbHVkZSAiU1ZHRm9yZWln
bk9iamVjdEVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKKyNpbmNs
dWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJSZW5kZXJGb3JlaWduT2JqZWN0Lmgi
Ci0jaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdMZW5ndGguaCIKLQorI2luY2x1
ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpJbmRleDogV2ViQ29yZS9zdmcvU1ZHR2x5cGhFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdHbHlwaEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikK
KysrIFdlYkNvcmUvc3ZnL1NWR0dseXBoRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0
LDkgKzI0LDEwIEBACiAjaWYgRU5BQkxFKFNWR19GT05UUykKICNpbmNsdWRlICJTVkdHbHlwaEVs
ZW1lbnQuaCIKIAorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgorI2luY2x1ZGUgIlNWR0Zv
bnREYXRhLmgiCiAjaW5jbHVkZSAiU1ZHRm9udEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdGb250
RmFjZUVsZW1lbnQuaCIKLSNpbmNsdWRlICJTVkdGb250RGF0YS5oIgogI2luY2x1ZGUgIlNWR05h
bWVzLmgiCiAjaW5jbHVkZSAiU1ZHUGFyc2VyVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAiU2ltcGxl
Rm9udERhdGEuaCIKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0dyYWRpZW50RWxlbWVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHR3JhZGllbnRFbGVtZW50LmNwcAkocmV2aXNpb24g
NDIxMzIpCisrKyBXZWJDb3JlL3N2Zy9TVkdHcmFkaWVudEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiU1ZHR3JhZGllbnRFbGVtZW50LmgiCiAK
ICNpbmNsdWRlICJDU1NTdHlsZVNlbGVjdG9yLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRl
LmgiCiAjaW5jbHVkZSAiUmVuZGVyUGF0aC5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0hpZGRlbkNv
bnRhaW5lci5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdJ
bWFnZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR0ltYWdlRWxlbWVu
dC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcvU1ZHSW1hZ2VFbGVtZW50LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIlNWR0ltYWdlRWxl
bWVudC5oIgogCiAjaW5jbHVkZSAiQ1NTUHJvcGVydHlOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBl
ZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0ltYWdlLmgiCiAjaW5jbHVkZSAiU1ZH
RG9jdW1lbnQuaCIKICNpbmNsdWRlICJTVkdMZW5ndGguaCIKSW5kZXg6IFdlYkNvcmUvc3ZnL1NW
R0xhbmdTcGFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHTGFuZ1NwYWNlLmNw
cAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL3N2Zy9TVkdMYW5nU3BhY2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJT
VkdMYW5nU3BhY2UuaCIKIAorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUg
IlNWR0VsZW1lbnQuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgogI2luY2x1ZGUgPHd0Zi9TdGRM
aWJFeHRyYXMuaD4KSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR0xpbmVFbGVtZW50LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdMaW5lRWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQor
KysgV2ViQ29yZS9zdmcvU1ZHTGluZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2
ICsyNiw3IEBACiAjaW5jbHVkZSAiU1ZHTGluZUVsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkZsb2F0
UG9pbnQuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJSZW5kZXJQ
YXRoLmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKSW5k
ZXg6IFdlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmNwcAkocmV2aXNpb24gNDIx
MzIpCisrKyBXZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJGbG9hdFBvaW50LmgiCiAjaW5jbHVkZSAiTGluZWFyR3JhZGllbnRBdHRyaWJ1dGVzLmgiCisj
aW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgiCiAjaW5j
bHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQYWludFNlcnZlckxpbmVhckdyYWRpZW50
LmgiCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBX
ZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiAr
MjMsNyBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHTWFya2VyRWxlbWVudC5oIgog
CisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKICNpbmNsdWRlICJSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIgogI2luY2x1ZGUgIlNW
R0FuZ2xlLmgiCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysr
IFdlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksNiAr
MjksNyBAQAogI2luY2x1ZGUgIkNTU1N0eWxlU2VsZWN0b3IuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2luY2x1ZGUgIk1hcHBlZEF0
dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0NvbnRhaW5lci5oIgogI2luY2x1ZGUgIlNW
R0xlbmd0aC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQ
YXRoRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHUGF0aEVsZW1lbnQu
Y3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvc3ZnL1NWR1BhdGhFbGVtZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVk
ZSAiU1ZHUGF0aEVsZW1lbnQuaCIKIAorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlclBhdGguaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgogI2luY2x1ZGUgIlNW
R1BhcnNlclV0aWxpdGllcy5oIgpJbmRleDogV2ViQ29yZS9zdmcvU1ZHUGF0dGVybkVsZW1lbnQu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1BhdHRlcm5FbGVtZW50LmNwcAkocmV2
aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL3N2Zy9TVkdQYXR0ZXJuRWxlbWVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI1LDI2ICsyNSwyNiBAQAogI2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAi
U1ZHUGF0dGVybkVsZW1lbnQuaCIKIAotI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4Lmgi
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIKICNp
bmNsdWRlICJHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJJbWFnZUJ1ZmZlci5oIgorI2lu
Y2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlBhdHRlcm5BdHRyaWJ1dGVzLmgi
CiAjaW5jbHVkZSAiUmVuZGVyU1ZHQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiU1ZHTGVuZ3RoLmgi
CiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdQYWludFNlcnZlclBhdHRlcm4u
aCIKICNpbmNsdWRlICJTVkdSZW5kZXJTdXBwb3J0LmgiCi0jaW5jbHVkZSAiU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCisjaW5jbHVk
ZSAiU1ZHU3R5bGVkVHJhbnNmb3JtYWJsZUVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdUcmFuc2Zv
cm1MaXN0LmgiCiAjaW5jbHVkZSAiU1ZHVHJhbnNmb3JtYWJsZS5oIgogI2luY2x1ZGUgIlNWR1Vu
aXRUeXBlcy5oIgotCisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRl
IDxtYXRoLmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9NYXRoRXh0
cmFzLmg+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwog
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdQb2x5RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9zdmcvU1ZHUG9seUVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUv
c3ZnL1NWR1BvbHlFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAog
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGbG9hdFBvaW50LmgiCisjaW5jbHVk
ZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiUmVuZGVyUGF0aC5oIgogI2luY2x1ZGUg
IlNWR0FuaW1hdGVkUHJvcGVydHkuaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysr
IFdlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDYgKzI3LDcgQEAKIAogI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1
ZGUgIkZsb2F0UG9pbnQuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRl
ICJSYWRpYWxHcmFkaWVudEF0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIK
ICNpbmNsdWRlICJTVkdMZW5ndGguaCIKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1JlY3RFbGVtZW50
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdSZWN0RWxlbWVudC5jcHAJKHJldmlz
aW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcvU1ZHUmVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yNSw2ICsyNSw3IEBACiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdSZWN0
RWxlbWVudC5oIgogCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyUGF0aC5oIgogI2luY2x1ZGUgIlNWR0xlbmd0aC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgi
CkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3N2Zy9TVkdTVkdFbGVtZW50LmNwcAkocmV2aXNpb24gNDIxMzIpCisrKyBXZWJDb3JlL3N2
Zy9TVkdTVkdFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNiBAQAogI2lm
IEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHU1ZHRWxlbWVudC5oIgogCi0jaW5jbHVkZSAiVHJh
bnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJDU1NIZWxwZXIuaCIKICNpbmNsdWRlICJD
U1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTM0LDggKzMzLDEw
IEBACiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIgor
I2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR1Jvb3QuaCIK
KyNpbmNsdWRlICJSZW5kZXJTVkdWaWV3cG9ydENvbnRhaW5lci5oIgorI2luY2x1ZGUgIlNNSUxU
aW1lQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiU1ZHQW5nbGUuaCIKICNpbmNsdWRlICJTVkdMZW5n
dGguaCIKICNpbmNsdWRlICJTVkdOYW1lcy5oIgpAQCAtNDYsNyArNDcsNyBAQAogI2luY2x1ZGUg
IlNWR1ZpZXdTcGVjLmgiCiAjaW5jbHVkZSAiU1ZHWm9vbUV2ZW50LmgiCiAjaW5jbHVkZSAiU2Vs
ZWN0aW9uQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIlNNSUxUaW1lQ29udGFpbmVyLmgiCisjaW5j
bHVkZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1NjcmlwdEVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvc3ZnL1NWR1NjcmlwdEVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNp
bmNsdWRlICJTVkdOYW1lcy5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBXZWJDb3Jl
L3N2Zy9TVkdTdG9wRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHU3Rv
cEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvc3ZnL1NWR1N0b3BFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIlNWR1N0
b3BFbGVtZW50LmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIk1hcHBlZEF0
dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlJlbmRlclNWR0dyYWRpZW50U3RvcC5oIgogI2luY2x1ZGUg
IlNWR0dyYWRpZW50RWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkluZGV4OiBXZWJD
b3JlL3N2Zy9TVkdTdHlsZUVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NW
R1N0eWxlRWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcvU1ZHU3R5
bGVFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjIsNiArMjIsNyBAQAogKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgorCiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdTdHlsZUVs
ZW1lbnQuaCIKIApAQCAtMjksNiArMzAsNyBAQAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUg
Ik1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlhNTE5hbWVzLmgiCiAjaW5jbHVkZSA8d3Rm
L1N0ZExpYkV4dHJhcy5oPgogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAkocmV2aXNp
b24gNDIxMzIpCisrKyBXZWJDb3JlL3N2Zy9TVkdTdHlsZWRFbGVtZW50LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTksNiArMTksNyBAQAogKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorCiAjaWYg
RU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdTdHlsZWRFbGVtZW50LmgiCiAKQEAgLTI4LDExICsy
OSwxMiBAQAogI2luY2x1ZGUgIkNTdHJpbmcuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtU3RyaW5nLmgiCisjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVk
ZSAiU1ZHRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR0VsZW1lbnRJbnN0YW5jZS5oIgogI2luY2x1
ZGUgIlNWR05hbWVzLmgiCi0jaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU1ZH
UmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdSZXNvdXJjZS5oIgogI2luY2x1ZGUgIlNWR1NW
R0VsZW1lbnQuaCIKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1N0eWxlZFRyYW5zZm9ybWFibGVFbGVt
ZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdTdHlsZWRUcmFuc2Zvcm1hYmxl
RWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcvU1ZHU3R5bGVkVHJh
bnNmb3JtYWJsZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMSArMjYsMTIgQEAK
ICNpbmNsdWRlICJTVkdTdHlsZWRUcmFuc2Zvcm1hYmxlRWxlbWVudC5oIgogCiAjaW5jbHVkZSAi
QXR0ci5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIlJlbmRlclBh
dGguaCIKICNpbmNsdWRlICJTVkdEb2N1bWVudC5oIgotI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9u
TWF0cml4LmgiCiAjaW5jbHVkZSAiU1ZHU3R5bGVkRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1Ry
YW5zZm9ybUxpc3QuaCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1Rlc3RzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUZXN0cy5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2Vi
Q29yZS9zdmcvU1ZHVGVzdHMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAK
ICNpbmNsdWRlICJET01JbXBsZW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCisj
aW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiU1ZHRWxlbWVudC5oIgogI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHU3RyaW5nTGlzdC5oIgpJbmRleDogV2Vi
Q29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNv
cmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5LDE0
ICsyOSwxNSBAQAogI2luY2x1ZGUgIkZsb2F0UG9pbnQuaCIKICNpbmNsdWRlICJGbG9hdFJlY3Qu
aCIKICNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2lu
Y2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVGV4dC5oIgotI2luY2x1ZGUg
IlNlbGVjdGlvbkNvbnRyb2xsZXIuaCIKICNpbmNsdWRlICJTVkdDaGFyYWN0ZXJMYXlvdXRJbmZv
LmgiCi0jaW5jbHVkZSAiU1ZHUm9vdElubGluZUJveC5oIgotI2luY2x1ZGUgIlNWR0xlbmd0aC5o
IgogI2luY2x1ZGUgIlNWR0lubGluZVRleHRCb3guaCIKKyNpbmNsdWRlICJTVkdMZW5ndGguaCIK
ICNpbmNsdWRlICJTVkdOYW1lcy5oIgorI2luY2x1ZGUgIlNWR1Jvb3RJbmxpbmVCb3guaCIKKyNp
bmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKICNp
bmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1RleHRF
bGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdUZXh0RWxlbWVudC5jcHAJ
KHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcvU1ZHVGV4dEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSwxMyArMjUsMTQgQEAKICNpZiBFTkFCTEUoU1ZHKQogI2luY2x1ZGUg
IlNWR1RleHRFbGVtZW50LmgiCiAKLSNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgog
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlclNWR1RleHQuaCIKICNpbmNsdWRlICJTVkdMZW5ndGhMaXN0LmgiCiAjaW5j
bHVkZSAiU1ZHUmVuZGVyU3R5bGUuaCIKICNpbmNsdWRlICJTVkdUU3BhbkVsZW1lbnQuaCIKICNp
bmNsdWRlICJTVkdUcmFuc2Zvcm1MaXN0LmgiCisjaW5jbHVkZSAiVHJhbnNmb3JtYXRpb25NYXRy
aXguaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkluZGV4OiBXZWJDb3JlL3N2Zy9TVkdUZXh0
UGF0aEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1RleHRQYXRoRWxl
bWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcvU1ZHVGV4dFBhdGhFbGVt
ZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsMTQgKzI0LDE0IEBACiAjaWYgRU5BQkxFKFNW
RykKICNpbmNsdWRlICJTVkdUZXh0UGF0aEVsZW1lbnQuaCIKIAotI2luY2x1ZGUgIlRyYW5zZm9y
bWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSAiRmxvYXRSZWN0LmgiCisjaW5jbHVkZSAiTWFwcGVk
QXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiUmVuZGVyU1ZHVGV4dFBhdGguaCIKICNpbmNsdWRlICJT
VkdMZW5ndGhMaXN0LmgiCiAjaW5jbHVkZSAiU1ZHUGF0aEVsZW1lbnQuaCIKICNpbmNsdWRlICJT
VkdSZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlNWR1RleHRQYXRoRWxlbWVudC5oIgogI2luY2x1
ZGUgIlNWR1RyYW5zZm9ybUxpc3QuaCIKKyNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvc3ZnL1NWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL1NWR1RleHRQb3Np
dGlvbmluZ0VsZW1lbnQuY3BwCShyZXZpc2lvbiA0MjEzMikKKysrIFdlYkNvcmUvc3ZnL1NWR1Rl
eHRQb3NpdGlvbmluZ0VsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBA
CiAjaWYgRU5BQkxFKFNWRykKICNpbmNsdWRlICJTVkdUZXh0UG9zaXRpb25pbmdFbGVtZW50Lmgi
CiAKKyNpbmNsdWRlICJNYXBwZWRBdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJTVkdMZW5ndGhMaXN0
LmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdOdW1iZXJMaXN0LmgiCklu
ZGV4OiBXZWJDb3JlL3N2Zy9TVkdVUklSZWZlcmVuY2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL1NWR1VSSVJlZmVyZW5jZS5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9z
dmcvU1ZHVVJJUmVmZXJlbmNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsOCBAQAog
I2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHVVJJUmVmZXJlbmNlLmgiCiAKKyNpbmNsdWRl
ICJNYXBwZWRBdHRyaWJ1dGUuaCIKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjaGFyIFNWR1VS
SVJlZmVyZW5jZUlkZW50aWZpZXJbXSA9ICJTVkdVUklSZWZlcmVuY2UiOwpJbmRleDogV2ViQ29y
ZS9zdmcvU1ZHVXNlRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9zdmcvU1ZHVXNl
RWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcvU1ZHVXNlRWxlbWVu
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIyLDEyICsyMiw2IEBACiAKICNpbmNsdWRlICJjb25m
aWcuaCIKIAotLy8gRHVtcCBTVkdFbGVtZW50SW5zdGFuY2Ugb2JqZWN0IHRyZWUgLSB1c2VmdWwg
dG8gZGVidWcgaW5zdGFuY2VSb290IHByb2JsZW1zCi0vLyAjZGVmaW5lIERVTVBfSU5TVEFOQ0Vf
VFJFRQotCi0vLyBEdW1wIHRoZSBkZWVwLWV4cGFuZGVkIHNoYWRvdyB0cmVlICh3aGVyZSB0aGUg
cmVuZGVyZXMgYXJlIGJ1aWx0IGZyb20pCi0vLyAjZGVmaW5lIERVTVBfU0hBRE9XX1RSRUUKLQog
I2lmIEVOQUJMRShTVkcpCiAjaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgogCkBAIC0zNyw2ICsz
MSw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNpbmNsdWRlICJFdmVudExpc3RlbmVyLmgiCiAj
aW5jbHVkZSAiSFRNTE5hbWVzLmgiCisjaW5jbHVkZSAiTWFwcGVkQXR0cmlidXRlLmgiCiAjaW5j
bHVkZSAiTm9kZVJlbmRlclN0eWxlLmgiCiAjaW5jbHVkZSAiUmVnaXN0ZXJlZEV2ZW50TGlzdGVu
ZXIuaCIKICNpbmNsdWRlICJSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmgiCkBAIC01
MSw2ICs0NiwxMiBAQAogI2luY2x1ZGUgIlhMaW5rTmFtZXMuaCIKICNpbmNsdWRlICJYTUxTZXJp
YWxpemVyLmgiCiAKKy8vIER1bXAgU1ZHRWxlbWVudEluc3RhbmNlIG9iamVjdCB0cmVlIC0gdXNl
ZnVsIHRvIGRlYnVnIGluc3RhbmNlUm9vdCBwcm9ibGVtcworLy8gI2RlZmluZSBEVU1QX0lOU1RB
TkNFX1RSRUUKKworLy8gRHVtcCB0aGUgZGVlcC1leHBhbmRlZCBzaGFkb3cgdHJlZSAod2hlcmUg
dGhlIHJlbmRlcmVycyBhcmUgYnVpbHQgZnJvbSkKKy8vICNkZWZpbmUgRFVNUF9TSEFET1dfVFJF
RQorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNWR1VzZUVsZW1lbnQ6OlNWR1VzZUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW1lbnQqIGRvYykKSW5kZXg6IFdlYkNv
cmUvc3ZnL1NWR1ZpZXdFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9TVkdW
aWV3RWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcvU1ZHVmlld0Vs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiU1ZH
Vmlld0VsZW1lbnQuaCIKIAogI2luY2x1ZGUgIkF0dHIuaCIKKyNpbmNsdWRlICJNYXBwZWRBdHRy
aWJ1dGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIlNWR0ZpdFRv
Vmlld0JveC5oIgogI2luY2x1ZGUgIlNWR05hbWVzLmgiCkluZGV4OiBXZWJDb3JlL3N2Zy9hbmlt
YXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvc3ZnL2FuaW1h
dGlvbi9TVkdTTUlMRWxlbWVudC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViQ29yZS9zdmcv
YW5pbWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQsNiArMjQs
NyBAQAogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKKwogI2lmIEVOQUJMRShTVkdfQU5JTUFU
SU9OKQogI2luY2x1ZGUgIlNWR1NNSUxFbGVtZW50LmgiCiAKQEAgLTM0LDExICszNSwxMiBAQAog
I2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2lu
Y2x1ZGUgIkhUTUxOYW1lcy5oIgorI2luY2x1ZGUgIk1hcHBlZEF0dHJpYnV0ZS5oIgorI2luY2x1
ZGUgIlNNSUxUaW1lQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRl
ICJTVkdQYXJzZXJVdGlsaXRpZXMuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCiAjaW5j
bHVkZSAiU1ZHVVJJUmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiU01JTFRpbWVDb250YWluZXIuaCIK
ICNpbmNsdWRlICJYTGlua05hbWVzLmgiCiAjaW5jbHVkZSA8bWF0aC5oPgogI2luY2x1ZGUgPHd0
Zi9NYXRoRXh0cmFzLmg+CkluZGV4OiBXZWJDb3JlL3htbC9YUGF0aFN0ZXAuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUveG1sL1hQYXRoU3RlcC5jcHAJKHJldmlzaW9uIDQyMTMyKQorKysgV2Vi
Q29yZS94bWwvWFBhdGhTdGVwLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsNiArMzAsNyBAQAog
CiAjaWYgRU5BQkxFKFhQQVRIKQogCisjaW5jbHVkZSAiQXR0ci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRWxlbWVudC5oIgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgpJ
bmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFu
Z2VMb2cJKHJldmlzaW9uIDQyMTMyKQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAwOS0wMy0zMSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBh
cHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQnVnIDI0OTI0OiByZW1vdmUgRG9jdW1lbnQuaCBpbmNsdWRlIG9mIEF0dHIuaCBhbmQgSFRN
TENvbGxlY3Rpb24uaCwKKyAgICAgICAgYW5kIE5hbWVkTWFwcGVkQXR0ck1hcC5oIGluY2x1ZGUg
b2YgTWFwcGVkQXR0cmlidXRlLmgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI0OTI0CisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOiBBZGRl
ZCBpbmNsdWRlIG9mIENTU011dGFibGVTdHlsZURlY2xhcmF0aW9uLgorCiAyMDA5LTAzLTMwICBH
cmVnIEJvbHNpbmdhICA8Ym9sc2luZ2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0JKHJldmlzaW9uIDQyMTMy
KQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01
MCw5ICs1MCwxMCBAQAogI2ltcG9ydCAiV2ViU2NyaXB0RGVidWdnZXIuaCIKICNpbXBvcnQgIldl
YlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgorI2lt
cG9ydCA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FjY2Vzc2li
aWxpdHlPYmplY3QuaD4KICNpbXBvcnQgPFdlYkNvcmUvQW5pbWF0aW9uQ29udHJvbGxlci5oPgot
I2ltcG9ydCA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0NTU011
dGFibGVTdHlsZURlY2xhcmF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yTWFjLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0RPTUltcGxlbWVudGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Rv
Y0xvYWRlci5oPgpAQCAtNjgsMjEgKzY5LDIxIEBACiAjaW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdl
YkFyY2hpdmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Q
bHVnaW5EYXRhLmg+CisjaW1wb3J0IDxXZWJDb3JlL1JlbmRlckxheWVyLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1JlbmRlclBhcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVuZGVyVmlldy5oPgotI2lt
cG9ydCA8V2ViQ29yZS9SZW5kZXJMYXllci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXBsYWNlU2Vs
ZWN0aW9uQ29tbWFuZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL1NjcmlwdFZhbHVlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NtYXJ0UmVw
bGFjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KICNpbXBvcnQgPFdlYkNv
cmUvVHlwaW5nQ29tbWFuZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9odG1sZWRpdGluZy5oPgotI2lt
cG9ydCA8V2ViQ29yZS9TY3JpcHRDb250cm9sbGVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1Njcmlw
dFZhbHVlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL21hcmt1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS92
aXNpYmxlX3VuaXRzLmg+CiAjaW1wb3J0IDxydW50aW1lL0pTTG9jay5oPgogI2ltcG9ydCA8cnVu
dGltZS9KU1ZhbHVlLmg+Ci0jaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CisjaW1wb3J0IDx3
dGYvQ3VycmVudFRpbWUuaD4KIAogdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwo=
</data>
<flag name="review"
          id="14434"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>