<?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>225757</bug_id>
          
          <creation_ts>2021-05-13 04:50:26 -0700</creation_ts>
          <short_desc>[LFC] Move base formatting quirks to its own class</short_desc>
          <delta_ts>2021-05-15 14:12:32 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>225731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759636</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 04:50:26 -0700</bug_when>
    <thetext>This is part of bug 225731 activity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759666</commentid>
    <comment_count>1</comment_count>
      <attachid>428505</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 05:52:55 -0700</bug_when>
    <thetext>Created attachment 428505
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760460</commentid>
    <comment_count>2</comment_count>
      <attachid>428739</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-15 13:44:56 -0700</bug_when>
    <thetext>Created attachment 428739
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760469</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-15 14:11:47 -0700</bug_when>
    <thetext>Committed r277548 (237776@main): &lt;https://commits.webkit.org/237776@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428739.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760470</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-15 14:12:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/78063598&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428505</attachid>
            <date>2021-05-13 05:52:55 -0700</date>
            <delta_ts>2021-05-15 13:44:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225757-20210513055254.patch</filename>
            <type>text/plain</type>
            <size>29403</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE5ZDEyNDY2NTYyNDFh
MTM2ZGYzNzJjYjQxZjMyZGViNWY0MzYwNy4uMGVkYmJjZDc1OWYzZGRjODFjNzMyODBlNGIwMDJk
NTA4MGI2N2IyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA1LTEzICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBNb3ZlIGJhc2UgZm9y
bWF0dGluZyBxdWlya3MgdG8gaXRzIG93biBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZvcm1hdHRpbmdDb250ZXh0OjpxdWlya3MgY29uc3QpOgorICAgICAgICAqIGxheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmxheW91dFN0YXRlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6
OlF1aXJrczo6bGF5b3V0U3RhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpmb3JtYXR0aW5nQ29udGV4dCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpxdWly
a3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5n
Q29udGV4dDo6UXVpcmtzOjpRdWlya3MpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVp
cmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nUXVpcmtz
OjpCbG9ja0Zvcm1hdHRpbmdRdWlya3MpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmg6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ1F1aXJrczo6Zm9ybWF0dGluZ0NvbnRleHQgY29uc3QpOgor
ICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdRdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5n
UXVpcmtzOjpJbmxpbmVGb3JtYXR0aW5nUXVpcmtzKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdRdWlya3M6OmZvcm1hdHRpbmdDb250ZXh0
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxl
Rm9ybWF0dGluZ1F1aXJrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlRm9y
bWF0dGluZ1F1aXJrczo6VGFibGVGb3JtYXR0aW5nUXVpcmtzKToKKyAgICAgICAgKiBsYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlRm9ybWF0dGluZ1F1aXJrcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdRdWlya3M6OmZvcm1hdHRpbmdDb250
ZXh0IGNvbnN0KToKKwogMjAyMS0wNS0wNSAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGln
YWxpYS5jb20+CiAKICAgICAgICAgW01TRV1bR1N0cmVhbWVyXSBXZWJLaXRNZWRpYVNyYyByZXdv
cmsgdjIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dl
YkNvcmUvU291cmNlcy50eHQKaW5kZXggOGViYTNkZjYzN2QyOTkwZGMyYzNjOGExMDcwYWJjNzIw
M2Y5N2Q5NC4uZDIwMmRkMGNmYzc0MzAxYjZjNjdiNDFhNTdmYjYzOTZkMmYyNjU4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291
cmNlcy50eHQKQEAgLTE1MTIsNyArMTUxMiw3IEBAIGluc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dv
cmtlck5ldHdvcmtBZ2VudC5jcHAKIGluc3BlY3Rvci9hZ2VudHMvd29ya2VyL1dvcmtlclJ1bnRp
bWVBZ2VudC5jcHAKIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQu
Y3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwCi1sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNw
cAorbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nUXVpcmtzLmNwcAogbGF5b3V0
L0Zvcm1hdHRpbmdTdGF0ZS5jcHAKIGxheW91dC9MYXlvdXRDb250ZXh0LmNwcAogbGF5b3V0L0xh
eW91dFBoYXNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDQwZDJhM2RiYzhmYmRmZDgzZmUxYzM3MzE2OTI4MTdkYWVjZmU2
ZWIuLjJkNTVmMjg5MTZlMTViMTRhMDkzNTg0MDIxNzU4NWM3NjU1ZWNhMTAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIxMzQs
NiArMjEzNCw3IEBACiAJCTZGM0ZCQTk4MjU1NkUzMTMwMDM1MzBGRCAvKiBMYXlvdXRJbnRlZ3Jh
dGlvbklubGluZUNvbnRlbnRCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2RjNGQkE5NzI1NTZFMzEyMDAzNTMwRkQgLyogTGF5b3V0SW50ZWdy
YXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTZGNDBEQTgyMjUxMzAzM0EwMEVDMDRCNyAvKiBJbmxpbmVS
ZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2RjQw
REE4MTI1MTMwMzNBMDBFQzA0QjcgLyogSW5saW5lUmVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGNDlDM0U3MjY0NzlCM0MwMDUxOTUzRCAv
KiBUYWJsZUZvcm1hdHRpbmdRdWlya3MuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZGNDlDM0U2MjY0NzlCM0IwMDUxOTUzRCAvKiBUYWJsZUZvcm1hdHRp
bmdRdWlya3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OworCQk2RjU2QjQ0NzI2NDc5RTYyMDBBQUUyNTcgLyogRm9ybWF0dGluZ1F1aXJrcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY1NkI0NDYyNjQ3OUU2
MTAwQUFFMjU3IC8qIEZvcm1hdHRpbmdRdWlya3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjYzODNGNjI0MjdBRjRBMDBEQUJBNTMgLyogTGF5
b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkY2MzgzRjQyNDI3QUY0OTAwREFCQTUzIC8qIExheW91dEluaXRp
YWxDb250YWluaW5nQmxvY2suaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk2RjZERjM2RjI2NDcyMkVBMDA5M0U4MzQgLyogQmxvY2tNYXJnaW5Db2xs
YXBzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY2
REYzNkUyNjQ3MjJFQTAwOTNFODM0IC8qIEJsb2NrTWFyZ2luQ29sbGFwc2UuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTNDNjIwOEMyOTU3
MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC05OTY1
LDYgKzk5NjYsNyBAQAogCQk2RjQwREE4MTI1MTMwMzNBMDBFQzA0QjcgLyogSW5saW5lUmVjdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVSZWN0Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNDlDM0U2MjY0NzlCM0IwMDUxOTUzRCAvKiBUYWJsZUZv
cm1hdHRpbmdRdWlya3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFibGVG
b3JtYXR0aW5nUXVpcmtzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNEE1QkQ1
MjJGOUYxNkIwMEE4MEYyNSAvKiBMYXlvdXRQaGFzZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBM
YXlvdXRQaGFzZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZGNTZCNDQ2MjY0
NzlFNjEwMEFBRTI1NyAvKiBGb3JtYXR0aW5nUXVpcmtzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZvcm1hdHRpbmdRdWlya3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNkY1QjdFQUEyMzAwQTc5RTAwNjdEOUMzIC8qIFRhYmxlR3JpZC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBUYWJsZUdyaWQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RjYzODNGNDI0MjdBRjQ5MDBEQUJBNTMgLyogTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9jay5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbml0aWFsQ29udGFpbmlu
Z0Jsb2NrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGNjYzOEQ0MjQ5RTI2OEIw
MDE5MjVGQyAvKiBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdRdWlya3MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk5NzcsNyArOTk3OSw3IEBACiAJCTZGN0NBM0M1MjA4
QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlv
dXRTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGN0NBM0M4MjA4QzJC
MkUwMDJGMjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RjdDQTNDOTIwOEMyQjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQk2RjhGNDYwMTIxQjAzQkI0MDA0MUFDM0EgLyogRm9ybWF0dGlu
Z0NvbnRleHRRdWlya3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybWF0dGluZ0NvbnRleHRR
dWlya3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RjhGNDYwMTIxQjAzQkI0
MDA0MUFDM0EgLyogRm9ybWF0dGluZ1F1aXJrcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3Jt
YXR0aW5nUXVpcmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY4RjQ2MDMy
MUIwM0JDNjAwNDFBQzNBIC8qIEJsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBCbG9ja0Zvcm1hdHRpbmdRdWlya3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk2RjkxNDIwRjI1MTUyMTM3MDA0RTRGRUEgLyogSW5saW5lTGluZUdlb21ldHJ5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElubGluZUxpbmVHZW9tZXRyeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2Rjk1REU0QjIzN0I4ODlCMDBFNTE3RTEgLyog
SW52YWxpZGF0aW9uQ29udGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJ
bnZhbGlkYXRpb25Db250ZXh0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjYy
MCw3ICsyMjYyMiw4IEBACiAJCQkJMTE1Q0ZBNjkyMDhBRjdEMDAwMUU2OTkxIC8qIEZvcm1hdHRp
bmdDb250ZXh0LmNwcCAqLywKIAkJCQkxMTVDRkE2ODIwOEFGN0QwMDAxRTY5OTEgLyogRm9ybWF0
dGluZ0NvbnRleHQuaCAqLywKIAkJCQk2RkJCODYwNTIwQjQ2NEI2MDBEQUQ5MzggLyogRm9ybWF0
dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgKi8sCi0JCQkJNkY4RjQ2MDEyMUIwM0JCNDAwNDFBQzNB
IC8qIEZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCAqLywKKwkJCQk2RjU2QjQ0NjI2NDc5RTYx
MDBBQUUyNTcgLyogRm9ybWF0dGluZ1F1aXJrcy5oICovLAorCQkJCTZGOEY0NjAxMjFCMDNCQjQw
MDQxQUMzQSAvKiBGb3JtYXR0aW5nUXVpcmtzLmNwcCAqLywKIAkJCSk7CiAJCQlwYXRoID0gZm9y
bWF0dGluZ0NvbnRleHRzOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTM0MTg2LDYg
KzM0MTg5LDcgQEAKIAkJCQkwN0I5M0ZGQzIzQjk0RUM3MDAzNkY4RUEgLyogTUlNRVR5cGVDYWNo
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3NzJDNEYwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVU
eXBlUmVnaXN0cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTUyRjEwODY2MTYyQjZEQTgwMDlBQzgx
RSAvKiBNaXhlZENvbnRlbnRDaGVja2VyLmggaW4gSGVhZGVycyAqLywKKwkJCQk2RjU2QjQ0NzI2
NDc5RTYyMDBBQUUyNTcgLyogRm9ybWF0dGluZ1F1aXJrcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTFFMDg2NjQyNDg5RDM1MzAwRTQ5NkQ5IC8qIE1vY2tBcHBsZVBheVNldHVwRmVhdHVyZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDEyREVGMUQyM0E5MTg2NjAwRDg0MEY2IC8qIE1vY2tBdWRpb1No
YXJlZFVuaXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjJCMDExMTgyMDU0MDYwMEYyQjQyNCAv
KiBNb2NrQm94LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5k
ZXggOTg1N2RiYTJjN2Q2NTI5NjBjNDExZmFiY2EzNTc1ODY5NWJhMTEyOC4uNTg0YWQxZTZjYjU2
YjhlYmRjMTI3YWMxNmNkMTI0NGJjZjRkZGM2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05U
RVhUKQogCisjaW5jbHVkZSAiRm9ybWF0dGluZ1F1aXJrcy5oIgogI2luY2x1ZGUgIkZvcm1hdHRp
bmdTdGF0ZS5oIgogI2luY2x1ZGUgIkludmFsaWRhdGlvblN0YXRlLmgiCiAjaW5jbHVkZSAiTGF5
b3V0Qm94LmgiCkBAIC0yNzAsNiArMjcxLDExIEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNv
bGxlY3RPdXRPZkZsb3dEZXNjZW5kYW50c0lmTmVlZGVkKCkKICAgICB9CiB9CiAKK0Zvcm1hdHRp
bmdRdWlya3MgRm9ybWF0dGluZ0NvbnRleHQ6OnF1aXJrcygpIGNvbnN0Cit7CisgICAgcmV0dXJu
IEZvcm1hdHRpbmdRdWlya3MoKnRoaXMpOworfQorCiAjaWZuZGVmIE5ERUJVRwogdm9pZCBGb3Jt
YXR0aW5nQ29udGV4dDo6dmFsaWRhdGVHZW9tZXRyeUNvbnN0cmFpbnRzQWZ0ZXJMYXlvdXQoKSBj
b25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDRmNWIxZjdiNTU0MjRkY2Q2MjZk
NmY3ZDgzYzc1NmE2OTY5MDQ2ZjcuLmEyNTNhMTFlZTU1ZTJmYmU5NzBhOGE1YjE3YTI3MmE0ZDNi
ZTk2NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTQ5LDYgKzQ5LDcgQEAgc3RydWN0
IENvbnRlbnRIZWlnaHRBbmRNYXJnaW47CiBzdHJ1Y3QgQ29udGVudFdpZHRoQW5kTWFyZ2luOwog
c3RydWN0IEVkZ2VzOwogY2xhc3MgRm9ybWF0dGluZ1N0YXRlOworY2xhc3MgRm9ybWF0dGluZ1F1
aXJrczsKIHN0cnVjdCBIb3Jpem9udGFsR2VvbWV0cnk7CiBjbGFzcyBJbnZhbGlkYXRpb25TdGF0
ZTsKIGNsYXNzIExheW91dFN0YXRlOwpAQCAtMTEwLDMxICsxMTEsNyBAQCBwdWJsaWM6CiAgICAg
TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3Q7CiAgICAgY29uc3QgRm9ybWF0dGluZ1N0
YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdHRpbmdTdGF0ZTsg
fQogCi0gICAgY2xhc3MgUXVpcmtzIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIFF1aXJrcyhjb25z
dCBGb3JtYXR0aW5nQ29udGV4dCYpOwotCi0gICAgICAgIExheW91dFVuaXQgaGVpZ2h0VmFsdWVP
Zk5lYXJlc3RDb250YWluaW5nQmxvY2tXaXRoRml4ZWRIZWlnaHQoY29uc3QgQm94Jik7Ci0KLSAg
ICBwcm90ZWN0ZWQ6Ci0gICAgICAgIGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNv
bnN0IHsgcmV0dXJuIG1fZm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKTsgfQotICAgICAg
ICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSB7IHJldHVybiBtX2Zvcm1hdHRpbmdDb250ZXh0
LmxheW91dFN0YXRlKCk7IH0KLSAgICAgICAgY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1h
dHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9mb3JtYXR0aW5nQ29udGV4dDsgfQotCi0g
ICAgICAgIGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0JiBtX2Zvcm1hdHRpbmdDb250ZXh0OwotICAg
IH07Ci0gICAgRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyBxdWlya3MoKSBjb25zdCB7IHJldHVy
biBRdWlya3MoKnRoaXMpOyB9Ci0KLXByb3RlY3RlZDoKLSAgICB1c2luZyBMYXlvdXRRdWV1ZSA9
IFZlY3Rvcjxjb25zdCBCb3gqPjsKLQotICAgIEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0
YXRlKCkgeyByZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGU7IH0KLQotICAgIHZvaWQgY29tcHV0ZUJv
cmRlckFuZFBhZGRpbmcoY29uc3QgQm94JiwgY29uc3QgSG9yaXpvbnRhbENvbnN0cmFpbnRzJik7
Ci0KLSNpZm5kZWYgTkRFQlVHCi0gICAgdmlydHVhbCB2b2lkIHZhbGlkYXRlR2VvbWV0cnlDb25z
dHJhaW50c0FmdGVyTGF5b3V0KCkgY29uc3Q7Ci0jZW5kaWYKKyAgICBGb3JtYXR0aW5nUXVpcmtz
IHF1aXJrcygpIGNvbnN0OwogCiAgICAgLy8gVGhpcyBjbGFzcyBpbXBsZW1lbnRzIGdlbmVyaWMg
cG9zaXRpb25pbmcgYW5kIHNpemluZy4KICAgICBjbGFzcyBHZW9tZXRyeSB7CkBAIC0yMTEsNiAr
MTg4LDE3IEBAIHByb3RlY3RlZDoKICAgICB9OwogICAgIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9t
ZXRyeSBnZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIEdlb21ldHJ5KCp0aGlzKTsgfQogCitwcm90
ZWN0ZWQ6CisgICAgdXNpbmcgTGF5b3V0UXVldWUgPSBWZWN0b3I8Y29uc3QgQm94Kj47CisKKyAg
ICBGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSgpIHsgcmV0dXJuIG1fZm9ybWF0dGlu
Z1N0YXRlOyB9CisKKyAgICB2b2lkIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGNvbnN0IEJveCYs
IGNvbnN0IEhvcml6b250YWxDb25zdHJhaW50cyYpOworCisjaWZuZGVmIE5ERUJVRworICAgIHZp
cnR1YWwgdm9pZCB2YWxpZGF0ZUdlb21ldHJ5Q29uc3RyYWludHNBZnRlckxheW91dCgpIGNvbnN0
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgdm9pZCBjb2xsZWN0T3V0T2ZGbG93RGVzY2VuZGFu
dHNJZk5lZWRlZCgpOwogICAgIHZvaWQgY29tcHV0ZU91dE9mRmxvd1ZlcnRpY2FsR2VvbWV0cnko
Y29uc3QgQm94JiwgY29uc3QgQ29uc3RyYWludHNGb3JPdXRPZkZsb3dDb250ZW50Jik7CkBAIC0y
MjUsMTEgKzIxMyw2IEBAIGlubGluZSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Okdlb21l
dHJ5KGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nCiB7CiB9CiAKLWlubGluZSBG
b3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpRdWlya3MoY29uc3QgRm9ybWF0dGluZ0NvbnRleHQm
IGZvcm1hdHRpbmdDb250ZXh0KQotICAgIDogbV9mb3JtYXR0aW5nQ29udGV4dChmb3JtYXR0aW5n
Q29udGV4dCkKLXsKLX0KLQogaW5saW5lIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OkludHJpbnNp
Y1dpZHRoQ29uc3RyYWludHM6OmV4cGFuZChMYXlvdXRVbml0IGhvcml6b250YWxWYWx1ZSkKIHsK
ICAgICBtaW5pbXVtICs9IGhvcml6b250YWxWYWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29u
dGV4dFF1aXJrcy5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDgyMTFiMGRjNjMw
Y2EyMzk3YmFiMzg0Zjk4MDgzMDMxOTFmMmJkMGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw3NSAr
MCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQot
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgot
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkZvcm1h
dHRpbmdDb250ZXh0LmgiCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
LQotI2luY2x1ZGUgIkxheW91dEJveC5oIgotI2luY2x1ZGUgIkxheW91dEJveEdlb21ldHJ5Lmgi
Ci0jaW5jbHVkZSAiTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oIgotCi1uYW1lc3BhY2Ug
V2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotTGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29u
dGV4dDo6UXVpcmtzOjpoZWlnaHRWYWx1ZU9mTmVhcmVzdENvbnRhaW5pbmdCbG9ja1dpdGhGaXhl
ZEhlaWdodChjb25zdCBCb3gmIGxheW91dEJveCkKLXsKLSAgICAvLyBJbiBxdWlya3MgbW9kZSwg
d2UgZ28gYW5kIHRyYXZlcnMgdGhlIGNvbnRhaW5pbmcgYmxvY2sgY2hhaW4gdG8gZmluZCBhIGJs
b2NrIGxldmVsIGJveCB3aXRoIGZpeGVkIGhlaWdodCB2YWx1ZSwgZXZlbiBpZiBpdCBtZWFucyBs
ZWF2aW5nCi0gICAgLy8gdGhlIGN1cnJlbnQgZm9ybWF0dGluZyBjb250ZXh0LiBGSVhNRTogc3Vy
ZWx5IHdlIG5lZWQgdG8gZG8gc29tZSB0cmlja3MgaGVyZSB3aGVuIGJsb2NrIGRpcmVjdGlvbiBz
dXBwb3J0IGlzIGFkZGVkLgotICAgIGF1dG8mIGZvcm1hdHRpbmdDb250ZXh0ID0gdGhpcy0+Zm9y
bWF0dGluZ0NvbnRleHQoKTsKLSAgICBhdXRvKiBjb250YWluaW5nQmxvY2sgPSAmbGF5b3V0Qm94
LmNvbnRhaW5pbmdCbG9jaygpOwotICAgIExheW91dFVuaXQgYm9keUFuZERvY3VtZW50VmVydGlj
YWxNYXJnaW5QYWRkaW5nQW5kQm9yZGVyOwotICAgIHdoaWxlIChjb250YWluaW5nQmxvY2spIHsK
LSAgICAgICAgYXV0byBjb250YWluaW5nQmxvY2tIZWlnaHQgPSBjb250YWluaW5nQmxvY2stPnN0
eWxlKCkubG9naWNhbEhlaWdodCgpOwotICAgICAgICBpZiAoY29udGFpbmluZ0Jsb2NrSGVpZ2h0
LmlzRml4ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBMYXlvdXRVbml0KGNvbnRhaW5pbmdCbG9j
a0hlaWdodC52YWx1ZSgpIC0gYm9keUFuZERvY3VtZW50VmVydGljYWxNYXJnaW5QYWRkaW5nQW5k
Qm9yZGVyKTsKLQotICAgICAgICAvLyBJZiB0aGUgb25seSBmaXhlZCB2YWx1ZSBib3ggd2UgZmlu
ZCBpcyB0aGUgSUNCLCB0aGVuIGlnbm9yZSB0aGUgYm9keSBhbmQgdGhlIGRvY3VtZW50ICh2ZXJ0
aWNhbCkgbWFyZ2luLCBwYWRkaW5nIGFuZCBib3JkZXIuIFNvIG11Y2ggcXVpcmtpbmVzcy4KLSAg
ICAgICAgLy8gLWFuZCBpdCdzIHRvdGFsbHkgaW5zYW5lIGJlY2F1c2Ugbm93IHdlIGZyZWVseSB0
cmF2ZWwgYWNyb3NzIGZvcm1hdHRpbmcgY29udGV4dCBib3VuZGFyaWVzIGFuZCBjb21wdXRlZCBt
YXJnaW5zIGFyZSBub25leGlzdGVudC4KLSAgICAgICAgaWYgKGNvbnRhaW5pbmdCbG9jay0+aXNC
b2R5Qm94KCkgfHwgY29udGFpbmluZ0Jsb2NrLT5pc0RvY3VtZW50Qm94KCkpIHsKLQotICAgICAg
ICAgICAgYXV0byBnZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5KCk7Ci0gICAg
ICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9IGdlb21ldHJ5LmNvbnN0cmFpbnRz
Rm9ySW5GbG93Q29udGVudChjb250YWluaW5nQmxvY2stPmNvbnRhaW5pbmdCbG9jaygpLCBGb3Jt
YXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpGaW5kRml4ZWRIZWlnaHRBbmNlc3RvclF1aXJr
KS5ob3Jpem9udGFsOwotICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbE1hcmdpbiA9IGdlb21ldHJ5
LmNvbXB1dGVkVmVydGljYWxNYXJnaW4oKmNvbnRhaW5pbmdCbG9jaywgaG9yaXpvbnRhbENvbnN0
cmFpbnRzKTsKLQotICAgICAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29u
dGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2NrLCBGb3JtYXR0aW5nQ29udGV4dDo6
RXNjYXBlUmVhc29uOjpGaW5kRml4ZWRIZWlnaHRBbmNlc3RvclF1aXJrKTsKLSAgICAgICAgICAg
IGF1dG8gdmVydGljYWxQYWRkaW5nID0gYm94R2VvbWV0cnkucGFkZGluZ1RvcCgpLnZhbHVlT3Io
MCkgKyBib3hHZW9tZXRyeS5wYWRkaW5nQm90dG9tKCkudmFsdWVPcigwKTsKLSAgICAgICAgICAg
IGF1dG8gdmVydGljYWxCb3JkZXIgPSBib3hHZW9tZXRyeS5ib3JkZXJUb3AoKSArIGJveEdlb21l
dHJ5LmJvcmRlckJvdHRvbSgpOwotICAgICAgICAgICAgYm9keUFuZERvY3VtZW50VmVydGljYWxN
YXJnaW5QYWRkaW5nQW5kQm9yZGVyICs9IHZlcnRpY2FsTWFyZ2luLmJlZm9yZS52YWx1ZU9yKDAp
ICsgdmVydGljYWxNYXJnaW4uYWZ0ZXIudmFsdWVPcigwKSArIHZlcnRpY2FsUGFkZGluZyArIHZl
cnRpY2FsQm9yZGVyOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKGlzPEluaXRpYWxDb250YWlu
aW5nQmxvY2s+KCpjb250YWluaW5nQmxvY2spKQotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
IGNvbnRhaW5pbmdCbG9jayA9ICZjb250YWluaW5nQmxvY2stPmNvbnRhaW5pbmdCbG9jaygpOwot
ICAgIH0KLSAgICAvLyBJbml0aWFsIGNvbnRhaW5pbmcgYmxvY2sgaGFzIHRvIGhhdmUgYSBoZWln
aHQuCi0gICAgcmV0dXJuIGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KGxheW91dEJv
eC5pbml0aWFsQ29udGFpbmluZ0Jsb2NrKCksIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFz
b246OkZpbmRGaXhlZEhlaWdodEFuY2VzdG9yUXVpcmspLmNvbnRlbnRCb3goKS5oZWlnaHQoKSAt
IGJvZHlBbmREb2N1bWVudFZlcnRpY2FsTWFyZ2luUGFkZGluZ0FuZEJvcmRlcjsKLX0KLQotfQot
fQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvRm9ybWF0dGluZ1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdRdWlya3MuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU2NTVhMTE5
OTg5NDA1ZTA0M2U4NGE0MDFlNmUzZWY3ZjQ0NWE5OTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdRdWlya3MuY3Bw
CkBAIC0wLDAgKzEsODAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5j
bHVkZSAiRm9ybWF0dGluZ1F1aXJrcy5oIgorCisjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5H
X0NPTlRFWFQpCisKKyNpbmNsdWRlICJMYXlvdXRCb3guaCIKKyNpbmNsdWRlICJMYXlvdXRCb3hH
ZW9tZXRyeS5oIgorI2luY2x1ZGUgIkxheW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCIKKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKK0Zvcm1hdHRpbmdRdWly
a3M6OkZvcm1hdHRpbmdRdWlya3MoY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdD
b250ZXh0KQorICAgIDogbV9mb3JtYXR0aW5nQ29udGV4dChmb3JtYXR0aW5nQ29udGV4dCkKK3sK
K30KKworTGF5b3V0VW5pdCBGb3JtYXR0aW5nUXVpcmtzOjpoZWlnaHRWYWx1ZU9mTmVhcmVzdENv
bnRhaW5pbmdCbG9ja1dpdGhGaXhlZEhlaWdodChjb25zdCBCb3gmIGxheW91dEJveCkKK3sKKyAg
ICAvLyBJbiBxdWlya3MgbW9kZSwgd2UgZ28gYW5kIHRyYXZlcnMgdGhlIGNvbnRhaW5pbmcgYmxv
Y2sgY2hhaW4gdG8gZmluZCBhIGJsb2NrIGxldmVsIGJveCB3aXRoIGZpeGVkIGhlaWdodCB2YWx1
ZSwgZXZlbiBpZiBpdCBtZWFucyBsZWF2aW5nCisgICAgLy8gdGhlIGN1cnJlbnQgZm9ybWF0dGlu
ZyBjb250ZXh0LiBGSVhNRTogc3VyZWx5IHdlIG5lZWQgdG8gZG8gc29tZSB0cmlja3MgaGVyZSB3
aGVuIGJsb2NrIGRpcmVjdGlvbiBzdXBwb3J0IGlzIGFkZGVkLgorICAgIGF1dG8mIGZvcm1hdHRp
bmdDb250ZXh0ID0gdGhpcy0+Zm9ybWF0dGluZ0NvbnRleHQoKTsKKyAgICBhdXRvKiBjb250YWlu
aW5nQmxvY2sgPSAmbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOworICAgIExheW91dFVuaXQg
Ym9keUFuZERvY3VtZW50VmVydGljYWxNYXJnaW5QYWRkaW5nQW5kQm9yZGVyOworICAgIHdoaWxl
IChjb250YWluaW5nQmxvY2spIHsKKyAgICAgICAgYXV0byBjb250YWluaW5nQmxvY2tIZWlnaHQg
PSBjb250YWluaW5nQmxvY2stPnN0eWxlKCkubG9naWNhbEhlaWdodCgpOworICAgICAgICBpZiAo
Y29udGFpbmluZ0Jsb2NrSGVpZ2h0LmlzRml4ZWQoKSkKKyAgICAgICAgICAgIHJldHVybiBMYXlv
dXRVbml0KGNvbnRhaW5pbmdCbG9ja0hlaWdodC52YWx1ZSgpIC0gYm9keUFuZERvY3VtZW50VmVy
dGljYWxNYXJnaW5QYWRkaW5nQW5kQm9yZGVyKTsKKworICAgICAgICAvLyBJZiB0aGUgb25seSBm
aXhlZCB2YWx1ZSBib3ggd2UgZmluZCBpcyB0aGUgSUNCLCB0aGVuIGlnbm9yZSB0aGUgYm9keSBh
bmQgdGhlIGRvY3VtZW50ICh2ZXJ0aWNhbCkgbWFyZ2luLCBwYWRkaW5nIGFuZCBib3JkZXIuIFNv
IG11Y2ggcXVpcmtpbmVzcy4KKyAgICAgICAgLy8gLWFuZCBpdCdzIHRvdGFsbHkgaW5zYW5lIGJl
Y2F1c2Ugbm93IHdlIGZyZWVseSB0cmF2ZWwgYWNyb3NzIGZvcm1hdHRpbmcgY29udGV4dCBib3Vu
ZGFyaWVzIGFuZCBjb21wdXRlZCBtYXJnaW5zIGFyZSBub25leGlzdGVudC4KKyAgICAgICAgaWYg
KGNvbnRhaW5pbmdCbG9jay0+aXNCb2R5Qm94KCkgfHwgY29udGFpbmluZ0Jsb2NrLT5pc0RvY3Vt
ZW50Qm94KCkpIHsKKworICAgICAgICAgICAgYXV0byBnZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250
ZXh0Lmdlb21ldHJ5KCk7CisgICAgICAgICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9
IGdlb21ldHJ5LmNvbnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChjb250YWluaW5nQmxvY2stPmNv
bnRhaW5pbmdCbG9jaygpLCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpGaW5kRml4
ZWRIZWlnaHRBbmNlc3RvclF1aXJrKS5ob3Jpem9udGFsOworICAgICAgICAgICAgYXV0byB2ZXJ0
aWNhbE1hcmdpbiA9IGdlb21ldHJ5LmNvbXB1dGVkVmVydGljYWxNYXJnaW4oKmNvbnRhaW5pbmdC
bG9jaywgaG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKworICAgICAgICAgICAgYXV0byYgYm94R2Vv
bWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveCgqY29udGFpbmluZ0Jsb2Nr
LCBGb3JtYXR0aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpGaW5kRml4ZWRIZWlnaHRBbmNlc3Rv
clF1aXJrKTsKKyAgICAgICAgICAgIGF1dG8gdmVydGljYWxQYWRkaW5nID0gYm94R2VvbWV0cnku
cGFkZGluZ1RvcCgpLnZhbHVlT3IoMCkgKyBib3hHZW9tZXRyeS5wYWRkaW5nQm90dG9tKCkudmFs
dWVPcigwKTsKKyAgICAgICAgICAgIGF1dG8gdmVydGljYWxCb3JkZXIgPSBib3hHZW9tZXRyeS5i
b3JkZXJUb3AoKSArIGJveEdlb21ldHJ5LmJvcmRlckJvdHRvbSgpOworICAgICAgICAgICAgYm9k
eUFuZERvY3VtZW50VmVydGljYWxNYXJnaW5QYWRkaW5nQW5kQm9yZGVyICs9IHZlcnRpY2FsTWFy
Z2luLmJlZm9yZS52YWx1ZU9yKDApICsgdmVydGljYWxNYXJnaW4uYWZ0ZXIudmFsdWVPcigwKSAr
IHZlcnRpY2FsUGFkZGluZyArIHZlcnRpY2FsQm9yZGVyOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKGlzPEluaXRpYWxDb250YWluaW5nQmxvY2s+KCpjb250YWluaW5nQmxvY2spKQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIGNvbnRhaW5pbmdCbG9jayA9ICZjb250YWluaW5nQmxvY2st
PmNvbnRhaW5pbmdCbG9jaygpOworICAgIH0KKyAgICAvLyBJbml0aWFsIGNvbnRhaW5pbmcgYmxv
Y2sgaGFzIHRvIGhhdmUgYSBoZWlnaHQuCisgICAgcmV0dXJuIGZvcm1hdHRpbmdDb250ZXh0Lmdl
b21ldHJ5Rm9yQm94KGxheW91dEJveC5pbml0aWFsQ29udGFpbmluZ0Jsb2NrKCksIEZvcm1hdHRp
bmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZpbmRGaXhlZEhlaWdodEFuY2VzdG9yUXVpcmspLmNv
bnRlbnRCb3goKS5oZWlnaHQoKSAtIGJvZHlBbmREb2N1bWVudFZlcnRpY2FsTWFyZ2luUGFkZGlu
Z0FuZEJvcmRlcjsKK30KKworfQorfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ1F1aXJrcy5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nUXVpcmtzLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNWExZGM3ZDU4YjNiZDMwZjBmYTAyNGEwNzFlNzg3NmFiNTJhMTRmYQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9y
bWF0dGluZ1F1aXJrcy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQorCisjaW5jbHVkZSAi
Rm9ybWF0dGluZ0NvbnRleHQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExh
eW91dCB7CisKK2NsYXNzIEZvcm1hdHRpbmdRdWlya3MgeworcHVibGljOgorICAgIEZvcm1hdHRp
bmdRdWlya3MoY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmKTsKKworICAgIExheW91dFVuaXQgaGVp
Z2h0VmFsdWVPZk5lYXJlc3RDb250YWluaW5nQmxvY2tXaXRoRml4ZWRIZWlnaHQoY29uc3QgQm94
Jik7CisKK3Byb3RlY3RlZDoKKyAgICBjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX2Zvcm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRlKCk7IH0KKyAgICBM
YXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSB7IHJldHVybiBtX2Zvcm1hdHRpbmdDb250ZXh0Lmxh
eW91dFN0YXRlKCk7IH0KKyAgICBjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0Nv
bnRleHQoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdHRpbmdDb250ZXh0OyB9CisKKyAgICBjb25z
dCBGb3JtYXR0aW5nQ29udGV4dCYgbV9mb3JtYXR0aW5nQ29udGV4dDsKK307CisKK30KK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAKaW5k
ZXggMmFiMzUzMjllNTAzYjZhMDhiNDkzN2QzYWFkYzYzYjM1NzY2NGU3Zi4uYjkwOTY5Y2ViMjYw
OTgyOTRmNzBhMGYyMGE5ZDNkYmMxYWU3MDY4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdRdWlya3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxv
Y2tGb3JtYXR0aW5nUXVpcmtzLmNwcApAQCAtNDQsNyArNDQsNyBAQCBzdGF0aWMgYm9vbCBpc1F1
aXJrQ29udGFpbmVyKGNvbnN0IEJveCYgbGF5b3V0Qm94KQogfQogCiBCbG9ja0Zvcm1hdHRpbmdR
dWlya3M6OkJsb2NrRm9ybWF0dGluZ1F1aXJrcyhjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
JiBibG9ja0Zvcm1hdHRpbmdDb250ZXh0KQotICAgIDogRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJr
cyhibG9ja0Zvcm1hdHRpbmdDb250ZXh0KQorICAgIDogRm9ybWF0dGluZ1F1aXJrcyhibG9ja0Zv
cm1hdHRpbmdDb250ZXh0KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1F1aXJrcy5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRp
bmdRdWlya3MuaAppbmRleCA5YmQ1MTdmOTgyNDRhZTgyY2M1OTAwNTQ4ZmU2ZTQ3NDEyZmU4NTE0
Li44MDdkZjMzMjI4MWJiNzU4OTYxNWNjNWFjMjAxOGE1NjcxZmQ1NGM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0
dGluZ1F1aXJrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmgKQEAgLTI3LDEyICsyNywxMiBAQAogCiAj
aWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKLSNpbmNsdWRlICJCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiRm9ybWF0dGluZ1F1aXJrcy5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAotY2xhc3MgQmxvY2tGb3JtYXR0
aW5nUXVpcmtzIDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3MgeworY2xhc3MgQmxv
Y2tGb3JtYXR0aW5nUXVpcmtzIDogcHVibGljIEZvcm1hdHRpbmdRdWlya3MgewogcHVibGljOgog
ICAgIEJsb2NrRm9ybWF0dGluZ1F1aXJrcyhjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Jik7
CiAKQEAgLTQ0LDcgKzQ0LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkQ29sbGFwc2VNYXJn
aW5BZnRlcldpdGhQYXJlbnRNYXJnaW5BZnRlcihjb25zdCBCb3gmKSBjb25zdDsKIAogcHJvdGVj
dGVkOgotICAgIGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0
KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8QmxvY2tGb3JtYXR0aW5nQ29udGV4dD4oRm9ybWF0
dGluZ0NvbnRleHQ6OlF1aXJrczo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KKyAgICBjb25zdCBC
bG9ja0Zvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJu
IGRvd25jYXN0PEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ+KEZvcm1hdHRpbmdRdWlya3M6OmZvcm1h
dHRpbmdDb250ZXh0KCkpOyB9CiAgICAgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnkg
Z2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5KCk7
IH0KIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5j
cHAKaW5kZXggMzRlOTBjNDAxZjNjNTAxY2UzNjM3NTcxODA0YjFkZjUzOTc2NmRhYy4uZmFiZjJl
YWUwZTZlY2FiZTNiYmExOThhN2RhNjhlOGFiZjEzMjI5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1
aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKIElubGluZUZvcm1hdHRpbmdRdWly
a3M6OklubGluZUZvcm1hdHRpbmdRdWlya3MoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQm
IGlubGluZUZvcm1hdHRpbmdDb250ZXh0KQotICAgIDogRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJr
cyhpbmxpbmVGb3JtYXR0aW5nQ29udGV4dCkKKyAgICA6IEZvcm1hdHRpbmdRdWlya3MoaW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZv
cm1hdHRpbmdRdWlya3MuaAppbmRleCBlYmVmMTg2YWE4ZDU4NDQyODg2MTMzNWIwZTQyMDJjNTUz
NmViZGY3Li5mNTFiYzQ3M2EzNTMyNWUwZTgzYzU3NmNlMzVhYzc0NTYwNzU0ZWMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVGb3JtYXR0aW5nUXVpcmtzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oCkBAIC0yNywxMiArMjcs
MTIgQEAKIAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCi0jaW5jbHVk
ZSAiRm9ybWF0dGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJGb3JtYXR0aW5nUXVpcmtzLmgiCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCi1jbGFzcyBJbmxpbmVG
b3JtYXR0aW5nUXVpcmtzIDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3MgeworY2xh
c3MgSW5saW5lRm9ybWF0dGluZ1F1aXJrcyA6IHB1YmxpYyBGb3JtYXR0aW5nUXVpcmtzIHsKIHB1
YmxpYzoKICAgICBJbmxpbmVMYXlvdXRVbml0IGluaXRpYWxMaW5lSGVpZ2h0KCkgY29uc3Q7CiAg
ICAgYm9vbCBoYXNTb2Z0V3JhcE9wcG9ydHVuaXR5QXRJbWFnZSgpIGNvbnN0OwpAQCAtNDIsNyAr
NDIsNyBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4
dDsKICAgICBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzKGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250
ZXh0Jik7CiAKLSAgICBjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0Nv
bnRleHQoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5nQ29udGV4dD4o
Rm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KKyAgICBj
b25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7
IHJldHVybiBkb3duY2FzdDxJbmxpbmVGb3JtYXR0aW5nQ29udGV4dD4oRm9ybWF0dGluZ1F1aXJr
czo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KIAogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZvcm1hdHRpbmdRdWly
a3MuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9U
YWJsZUZvcm1hdHRpbmdRdWlya3MuY3BwCmluZGV4IGZhZmEyNjg3ZTkzYWFhOWQ4ZjMzNWEwNWRi
ZGY4YTg1OGY1ZmRlZjcuLjc3MzljNDFkZDU1MGVkOTk0MDMzZTgzYTM4N2U2ZThmOWY4ZTU1Njkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFi
bGUvVGFibGVGb3JtYXR0aW5nUXVpcmtzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlRm9ybWF0dGluZ1F1aXJrcy5jcHAKQEAgLTM2
LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKIFRh
YmxlRm9ybWF0dGluZ1F1aXJrczo6VGFibGVGb3JtYXR0aW5nUXVpcmtzKGNvbnN0IFRhYmxlRm9y
bWF0dGluZ0NvbnRleHQmIHRhYmxlRm9ybWF0dGluZ0NvbnRleHQpCi0gICAgOiBGb3JtYXR0aW5n
Q29udGV4dDo6UXVpcmtzKHRhYmxlRm9ybWF0dGluZ0NvbnRleHQpCisgICAgOiBGb3JtYXR0aW5n
UXVpcmtzKHRhYmxlRm9ybWF0dGluZ0NvbnRleHQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVGb3JtYXR0aW5n
UXVpcmtzLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxl
L1RhYmxlRm9ybWF0dGluZ1F1aXJrcy5oCmluZGV4IDA1Nzc2ZGM4MTNlOTA5M2ZkMzEyM2JiODJm
NDI3ZDRjMzYwZWMyYzIuLmQzMjUxNWJkZGYyOWVmOGMwMTU3ZjViNTJkNjZjMzU4YjAxODgzZmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFi
bGUvVGFibGVGb3JtYXR0aW5nUXVpcmtzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZvcm1hdHRpbmdRdWlya3MuaApAQCAtMjcsMTkg
KzI3LDE5IEBACiAKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAotI2lu
Y2x1ZGUgIkZvcm1hdHRpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiRm9ybWF0dGluZ1F1aXJrcy5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAotY2xhc3MgVGFi
bGVGb3JtYXR0aW5nUXVpcmtzIDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3Mgewor
Y2xhc3MgVGFibGVGb3JtYXR0aW5nUXVpcmtzIDogcHVibGljIEZvcm1hdHRpbmdRdWlya3Mgewog
cHVibGljOgogICAgIFRhYmxlRm9ybWF0dGluZ1F1aXJrcyhjb25zdCBUYWJsZUZvcm1hdHRpbmdD
b250ZXh0Jik7CiAKICAgICBib29sIHNob3VsZElnbm9yZUNoaWxkQ29udGVudFZlcnRpY2FsTWFy
Z2luKGNvbnN0IENvbnRhaW5lckJveCYpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGNvbnN0IFRh
YmxlRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4g
ZG93bmNhc3Q8VGFibGVGb3JtYXR0aW5nQ29udGV4dD4oRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJr
czo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KKyAgICBjb25zdCBUYWJsZUZvcm1hdHRpbmdDb250
ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PFRhYmxlRm9y
bWF0dGluZ0NvbnRleHQ+KEZvcm1hdHRpbmdRdWlya3M6OmZvcm1hdHRpbmdDb250ZXh0KCkpOyB9
CiAgICAgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnkgZ2VvbWV0cnkoKSBjb25zdCB7
IHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5KCk7IH0KIH07CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428739</attachid>
            <date>2021-05-15 13:44:56 -0700</date>
            <delta_ts>2021-05-15 14:11:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225757-20210515134456.patch</filename>
            <type>text/plain</type>
            <size>29393</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjcyZjk1MGFiMmExNWFj
YWM4YTI4MGViZTNkYjVhZWYzNjEzZTA3Yi4uNTU2NjEwZGYyMjFhMzJkM2M0MTE4ZDYyYjY5ZDM2
NWM5ZDczYzMyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTA1LTE1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBNb3ZlIGJhc2UgZm9y
bWF0dGluZyBxdWlya3MgdG8gaXRzIG93biBjbGFzcworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1NzU3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50
dGkgS29pdmlzdG8uCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZvcm1hdHRpbmdDb250ZXh0OjpxdWlya3MgY29uc3QpOgorICAgICAgICAqIGxheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OmxheW91dFN0YXRlIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6
OlF1aXJrczo6bGF5b3V0U3RhdGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpmb3JtYXR0aW5nQ29udGV4dCBjb25zdCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpxdWly
a3MgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5n
Q29udGV4dDo6UXVpcmtzOjpRdWlya3MpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOiBSZW1vdmVkLgorICAg
ICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVp
cmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nUXVpcmtz
OjpCbG9ja0Zvcm1hdHRpbmdRdWlya3MpOgorICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmg6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ1F1aXJrczo6Zm9ybWF0dGluZ0NvbnRleHQgY29uc3QpOgor
ICAgICAgICAqIGxheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdRdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5n
UXVpcmtzOjpJbmxpbmVGb3JtYXR0aW5nUXVpcmtzKToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmg6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdRdWlya3M6OmZvcm1hdHRpbmdDb250ZXh0
IGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxl
Rm9ybWF0dGluZ1F1aXJrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlRm9y
bWF0dGluZ1F1aXJrczo6VGFibGVGb3JtYXR0aW5nUXVpcmtzKToKKyAgICAgICAgKiBsYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlRm9ybWF0dGluZ1F1aXJrcy5oOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5b3V0OjpUYWJsZUZvcm1hdHRpbmdRdWlya3M6OmZvcm1hdHRpbmdDb250
ZXh0IGNvbnN0KToKKwogMjAyMS0wNS0xNSAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ10gTW92ZSB0YWJsZSBmb3JtYXR0aW5nIHF1aXJrcyB0byBpdHMgb3du
IGNsYXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDQzZGVlNDM5OTc3NGJjMzBiOTg1M2QxZmFmNDI3YWU1
MWNlMWQyYzUuLjFmYjVkZmIwMjM3MTYyZWM2MTRlMzBhYTIyYWZkYWVlYWI4ZTkyNzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1Nv
dXJjZXMudHh0CkBAIC0xNTExLDcgKzE1MTEsNyBAQCBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9X
b3JrZXJOZXR3b3JrQWdlbnQuY3BwCiBpbnNwZWN0b3IvYWdlbnRzL3dvcmtlci9Xb3JrZXJSdW50
aW1lQWdlbnQuY3BwCiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0
LmNwcAogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5
LmNwcAotbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5j
cHAKK2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ1F1aXJrcy5jcHAKIGxheW91
dC9Gb3JtYXR0aW5nU3RhdGUuY3BwCiBsYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKIGxheW91dC9M
YXlvdXRQaGFzZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCBlYWEyZjE2NWMwY2UzOGI5ZDBjZGFlMjgxMjEyN2E5MzY0MmU1
NTU3Li43MDk3MzRhODAyNDhhY2E2MTAxMWY5Nzk5MzZmNjNlMzNmNjczYmY0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTM2
LDYgKzIxMzYsNyBAQAogCQk2RjNGQkE5ODI1NTZFMzEzMDAzNTMwRkQgLyogTGF5b3V0SW50ZWdy
YXRpb25JbmxpbmVDb250ZW50QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNkYzRkJBOTcyNTU2RTMxMjAwMzUzMEZEIC8qIExheW91dEludGVn
cmF0aW9uSW5saW5lQ29udGVudEJ1aWxkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjQwREE4MjI1MTMwMzNBMDBFQzA0QjcgLyogSW5saW5l
UmVjdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY0
MERBODEyNTEzMDMzQTAwRUMwNEI3IC8qIElubGluZVJlY3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjQ5QzNFNzI2NDc5QjNDMDA1MTk1M0Qg
LyogVGFibGVGb3JtYXR0aW5nUXVpcmtzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2RjQ5QzNFNjI2NDc5QjNCMDA1MTk1M0QgLyogVGFibGVGb3JtYXR0
aW5nUXVpcmtzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJNkY1NkI0NDcyNjQ3OUU2MjAwQUFFMjU3IC8qIEZvcm1hdHRpbmdRdWlya3MuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGNTZCNDQ2MjY0NzlF
NjEwMEFBRTI1NyAvKiBGb3JtYXR0aW5nUXVpcmtzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY2MzgzRjYyNDI3QUY0QTAwREFCQTUzIC8qIExh
eW91dEluaXRpYWxDb250YWluaW5nQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDZGNjM4M0Y0MjQyN0FGNDkwMERBQkE1MyAvKiBMYXlvdXRJbml0
aWFsQ29udGFpbmluZ0Jsb2NrLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNkY2REYzNkYyNjQ3MjJFQTAwOTNFODM0IC8qIEJsb2NrTWFyZ2luQ29s
bGFwc2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZG
NkRGMzZFMjY0NzIyRUEwMDkzRTgzNCAvKiBCbG9ja01hcmdpbkNvbGxhcHNlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY3Q0EzQzYyMDhDMjk1
NzAwMkYyOUFCIC8qIExheW91dFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2RjdDQTNDNDIwOEMyOTU2MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTk2
Nyw2ICs5OTY4LDcgQEAKIAkJNkY0MERBODEyNTEzMDMzQTAwRUMwNEI3IC8qIElubGluZVJlY3Qu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lUmVjdC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RjQ5QzNFNjI2NDc5QjNCMDA1MTk1M0QgLyogVGFibGVG
b3JtYXR0aW5nUXVpcmtzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRhYmxl
Rm9ybWF0dGluZ1F1aXJrcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjRBNUJE
NTIyRjlGMTZCMDBBODBGMjUgLyogTGF5b3V0UGhhc2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
TGF5b3V0UGhhc2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RjU2QjQ0NjI2
NDc5RTYxMDBBQUUyNTcgLyogRm9ybWF0dGluZ1F1aXJrcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGb3JtYXR0aW5nUXVpcmtzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTZGNUI3RUFBMjMwMEE3OUUwMDY3RDlDMyAvKiBUYWJsZUdyaWQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gVGFibGVHcmlkLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkY2MzgzRjQyNDI3QUY0OTAwREFCQTUzIC8qIExheW91dEluaXRpYWxDb250YWluaW5nQmxvY2su
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0SW5pdGlhbENvbnRhaW5p
bmdCbG9jay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjY2MzhENDI0OUUyNjhC
MDAxOTI1RkMgLyogVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05OTc5LDcgKzk5ODEsNyBAQAogCQk2RjdDQTNDNTIw
OEMyOTU2MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5
b3V0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjdDQTNDODIwOEMy
QjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNkY4RjQ2MDEyMUIwM0JCNDAwNDFBQzNBIC8qIEZvcm1hdHRp
bmdDb250ZXh0UXVpcmtzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1hdHRpbmdDb250ZXh0
UXVpcmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY4RjQ2MDEyMUIwM0JC
NDAwNDFBQzNBIC8qIEZvcm1hdHRpbmdRdWlya3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9y
bWF0dGluZ1F1aXJrcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGOEY0NjAz
MjFCMDNCQzYwMDQxQUMzQSAvKiBCbG9ja0Zvcm1hdHRpbmdRdWlya3MuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNkY5MTQyMEYyNTE1MjEzNzAwNEU0RkVBIC8qIElubGluZUxpbmVHZW9tZXRyeS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmxpbmVMaW5lR2VvbWV0cnkuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY5NURFNEIyMzdCODg5QjAwRTUxN0UxIC8q
IEludmFsaWRhdGlvbkNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW52YWxpZGF0aW9uQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjI2
MzQsNyArMjI2MzYsOCBAQAogCQkJCTExNUNGQTY5MjA4QUY3RDAwMDFFNjk5MSAvKiBGb3JtYXR0
aW5nQ29udGV4dC5jcHAgKi8sCiAJCQkJMTE1Q0ZBNjgyMDhBRjdEMDAwMUU2OTkxIC8qIEZvcm1h
dHRpbmdDb250ZXh0LmggKi8sCiAJCQkJNkZCQjg2MDUyMEI0NjRCNjAwREFEOTM4IC8qIEZvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwICovLAotCQkJCTZGOEY0NjAxMjFCMDNCQjQwMDQxQUMz
QSAvKiBGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgKi8sCisJCQkJNkY4RjQ2MDEyMUIwM0JC
NDAwNDFBQzNBIC8qIEZvcm1hdHRpbmdRdWlya3MuY3BwICovLAorCQkJCTZGNTZCNDQ2MjY0NzlF
NjEwMEFBRTI1NyAvKiBGb3JtYXR0aW5nUXVpcmtzLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IGZv
cm1hdHRpbmdDb250ZXh0czsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0zMjUzNyw2
ICszMjU0MCw3IEBACiAJCQkJRDA1Q0VEMkEwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2Nr
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0NFNkNCRkIxODdGMzcwNzAwRDQ2QkY1IC8q
IEZvcm1hdENvbnZlcnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTE1Q0ZBNkEyMDhBRjdEMDAw
MUU2OTkxIC8qIEZvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKKwkJCQk2RjU2QjQ0
NzI2NDc5RTYyMDBBQUUyNTcgLyogRm9ybWF0dGluZ1F1aXJrcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTE1Q0ZBNzYyMDhBRkUzMDAwMUU2OTkxIC8qIEZvcm1hdHRpbmdTdGF0ZS5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRjUwNjY0RjgxNTdGNTJEQzAwQUMyMjZGIC8qIEZvcm1Db250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk1MTRDNzY3MDBDRTkyM0ExMDA3RUYzQ0QgLyogRm9ybURhdGEu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA5ODU3ZGJh
MmM3ZDY1Mjk2MGM0MTFmYWJjYTM1NzU4Njk1YmExMTI4Li41ODRhZDFlNmNiNTZiOGViZGMxMjdh
YzE2Y2QxMjQ0YmNmNGRkYzYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjgs
NiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKKyNp
bmNsdWRlICJGb3JtYXR0aW5nUXVpcmtzLmgiCiAjaW5jbHVkZSAiRm9ybWF0dGluZ1N0YXRlLmgi
CiAjaW5jbHVkZSAiSW52YWxpZGF0aW9uU3RhdGUuaCIKICNpbmNsdWRlICJMYXlvdXRCb3guaCIK
QEAgLTI3MCw2ICsyNzEsMTEgQEAgdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29sbGVjdE91dE9m
Rmxvd0Rlc2NlbmRhbnRzSWZOZWVkZWQoKQogICAgIH0KIH0KIAorRm9ybWF0dGluZ1F1aXJrcyBG
b3JtYXR0aW5nQ29udGV4dDo6cXVpcmtzKCkgY29uc3QKK3sKKyAgICByZXR1cm4gRm9ybWF0dGlu
Z1F1aXJrcygqdGhpcyk7Cit9CisKICNpZm5kZWYgTkRFQlVHCiB2b2lkIEZvcm1hdHRpbmdDb250
ZXh0Ojp2YWxpZGF0ZUdlb21ldHJ5Q29uc3RyYWludHNBZnRlckxheW91dCgpIGNvbnN0CiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1h
dHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggNGY1YjFmN2I1NTQyNGRjZDYyNmQ2ZjdkODNjNzU2
YTY5NjkwNDZmNy4uYTI1M2ExMWVlNTVlMmZiZTk3MGE4YTViMTdhMjcyYTRkM2JlOTY0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0
aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtNDksNiArNDksNyBAQCBzdHJ1Y3QgQ29udGVudEhl
aWdodEFuZE1hcmdpbjsKIHN0cnVjdCBDb250ZW50V2lkdGhBbmRNYXJnaW47CiBzdHJ1Y3QgRWRn
ZXM7CiBjbGFzcyBGb3JtYXR0aW5nU3RhdGU7CitjbGFzcyBGb3JtYXR0aW5nUXVpcmtzOwogc3Ry
dWN0IEhvcml6b250YWxHZW9tZXRyeTsKIGNsYXNzIEludmFsaWRhdGlvblN0YXRlOwogY2xhc3Mg
TGF5b3V0U3RhdGU7CkBAIC0xMTAsMzEgKzExMSw3IEBAIHB1YmxpYzoKICAgICBMYXlvdXRTdGF0
ZSYgbGF5b3V0U3RhdGUoKSBjb25zdDsKICAgICBjb25zdCBGb3JtYXR0aW5nU3RhdGUmIGZvcm1h
dHRpbmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZm9ybWF0dGluZ1N0YXRlOyB9CiAKLSAgICBj
bGFzcyBRdWlya3MgewotICAgIHB1YmxpYzoKLSAgICAgICAgUXVpcmtzKGNvbnN0IEZvcm1hdHRp
bmdDb250ZXh0Jik7Ci0KLSAgICAgICAgTGF5b3V0VW5pdCBoZWlnaHRWYWx1ZU9mTmVhcmVzdENv
bnRhaW5pbmdCbG9ja1dpdGhGaXhlZEhlaWdodChjb25zdCBCb3gmKTsKLQotICAgIHByb3RlY3Rl
ZDoKLSAgICAgICAgY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3QgeyByZXR1
cm4gbV9mb3JtYXR0aW5nQ29udGV4dC5sYXlvdXRTdGF0ZSgpOyB9Ci0gICAgICAgIExheW91dFN0
YXRlJiBsYXlvdXRTdGF0ZSgpIHsgcmV0dXJuIG1fZm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3Rh
dGUoKTsgfQotICAgICAgICBjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRl
eHQoKSBjb25zdCB7IHJldHVybiBtX2Zvcm1hdHRpbmdDb250ZXh0OyB9Ci0KLSAgICAgICAgY29u
c3QgRm9ybWF0dGluZ0NvbnRleHQmIG1fZm9ybWF0dGluZ0NvbnRleHQ7Ci0gICAgfTsKLSAgICBG
b3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzIHF1aXJrcygpIGNvbnN0IHsgcmV0dXJuIFF1aXJrcygq
dGhpcyk7IH0KLQotcHJvdGVjdGVkOgotICAgIHVzaW5nIExheW91dFF1ZXVlID0gVmVjdG9yPGNv
bnN0IEJveCo+OwotCi0gICAgRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3RhdGUoKSB7IHJl
dHVybiBtX2Zvcm1hdHRpbmdTdGF0ZTsgfQotCi0gICAgdm9pZCBjb21wdXRlQm9yZGVyQW5kUGFk
ZGluZyhjb25zdCBCb3gmLCBjb25zdCBIb3Jpem9udGFsQ29uc3RyYWludHMmKTsKLQotI2lmbmRl
ZiBOREVCVUcKLSAgICB2aXJ0dWFsIHZvaWQgdmFsaWRhdGVHZW9tZXRyeUNvbnN0cmFpbnRzQWZ0
ZXJMYXlvdXQoKSBjb25zdDsKLSNlbmRpZgorICAgIEZvcm1hdHRpbmdRdWlya3MgcXVpcmtzKCkg
Y29uc3Q7CiAKICAgICAvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgZ2VuZXJpYyBwb3NpdGlvbmlu
ZyBhbmQgc2l6aW5nLgogICAgIGNsYXNzIEdlb21ldHJ5IHsKQEAgLTIxMSw2ICsxODgsMTcgQEAg
cHJvdGVjdGVkOgogICAgIH07CiAgICAgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5IGdlb21l
dHJ5KCkgY29uc3QgeyByZXR1cm4gR2VvbWV0cnkoKnRoaXMpOyB9CiAKK3Byb3RlY3RlZDoKKyAg
ICB1c2luZyBMYXlvdXRRdWV1ZSA9IFZlY3Rvcjxjb25zdCBCb3gqPjsKKworICAgIEZvcm1hdHRp
bmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCkgeyByZXR1cm4gbV9mb3JtYXR0aW5nU3RhdGU7IH0K
KworICAgIHZvaWQgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoY29uc3QgQm94JiwgY29uc3QgSG9y
aXpvbnRhbENvbnN0cmFpbnRzJik7CisKKyNpZm5kZWYgTkRFQlVHCisgICAgdmlydHVhbCB2b2lk
IHZhbGlkYXRlR2VvbWV0cnlDb25zdHJhaW50c0FmdGVyTGF5b3V0KCkgY29uc3Q7CisjZW5kaWYK
KwogcHJpdmF0ZToKICAgICB2b2lkIGNvbGxlY3RPdXRPZkZsb3dEZXNjZW5kYW50c0lmTmVlZGVk
KCk7CiAgICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShjb25zdCBCb3gm
LCBjb25zdCBDb25zdHJhaW50c0Zvck91dE9mRmxvd0NvbnRlbnQmKTsKQEAgLTIyNSwxMSArMjEz
LDYgQEAgaW5saW5lIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6R2VvbWV0cnkoY29uc3Qg
Rm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmcKIHsKIH0KIAotaW5saW5lIEZvcm1hdHRpbmdD
b250ZXh0OjpRdWlya3M6OlF1aXJrcyhjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGlu
Z0NvbnRleHQpCi0gICAgOiBtX2Zvcm1hdHRpbmdDb250ZXh0KGZvcm1hdHRpbmdDb250ZXh0KQot
ewotfQotCiBpbmxpbmUgdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6SW50cmluc2ljV2lkdGhDb25z
dHJhaW50czo6ZXhwYW5kKExheW91dFVuaXQgaG9yaXpvbnRhbFZhbHVlKQogewogICAgIG1pbmlt
dW0gKz0gaG9yaXpvbnRhbFZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtz
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODIxMWIwZGM2MzBjYTIzOTdiYWIz
ODRmOTgwODMwMzE5MWYyYmQwYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1h
dHRpbmdDb250ZXh0UXVpcmtzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRm9ybWF0dGluZ0NvbnRl
eHQuaCIKLQotI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVk
ZSAiTGF5b3V0Qm94LmgiCi0jaW5jbHVkZSAiTGF5b3V0Qm94R2VvbWV0cnkuaCIKLSNpbmNsdWRl
ICJMYXlvdXRJbml0aWFsQ29udGFpbmluZ0Jsb2NrLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LW5hbWVzcGFjZSBMYXlvdXQgewotCi1MYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjpRdWly
a3M6OmhlaWdodFZhbHVlT2ZOZWFyZXN0Q29udGFpbmluZ0Jsb2NrV2l0aEZpeGVkSGVpZ2h0KGNv
bnN0IEJveCYgbGF5b3V0Qm94KQotewotICAgIC8vIEluIHF1aXJrcyBtb2RlLCB3ZSBnbyBhbmQg
dHJhdmVycyB0aGUgY29udGFpbmluZyBibG9jayBjaGFpbiB0byBmaW5kIGEgYmxvY2sgbGV2ZWwg
Ym94IHdpdGggZml4ZWQgaGVpZ2h0IHZhbHVlLCBldmVuIGlmIGl0IG1lYW5zIGxlYXZpbmcKLSAg
ICAvLyB0aGUgY3VycmVudCBmb3JtYXR0aW5nIGNvbnRleHQuIEZJWE1FOiBzdXJlbHkgd2UgbmVl
ZCB0byBkbyBzb21lIHRyaWNrcyBoZXJlIHdoZW4gYmxvY2sgZGlyZWN0aW9uIHN1cHBvcnQgaXMg
YWRkZWQuCi0gICAgYXV0byYgZm9ybWF0dGluZ0NvbnRleHQgPSB0aGlzLT5mb3JtYXR0aW5nQ29u
dGV4dCgpOwotICAgIGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9ICZsYXlvdXRCb3guY29udGFpbmlu
Z0Jsb2NrKCk7Ci0gICAgTGF5b3V0VW5pdCBib2R5QW5kRG9jdW1lbnRWZXJ0aWNhbE1hcmdpblBh
ZGRpbmdBbmRCb3JkZXI7Ci0gICAgd2hpbGUgKGNvbnRhaW5pbmdCbG9jaykgewotICAgICAgICBh
dXRvIGNvbnRhaW5pbmdCbG9ja0hlaWdodCA9IGNvbnRhaW5pbmdCbG9jay0+c3R5bGUoKS5sb2dp
Y2FsSGVpZ2h0KCk7Ci0gICAgICAgIGlmIChjb250YWluaW5nQmxvY2tIZWlnaHQuaXNGaXhlZCgp
KQotICAgICAgICAgICAgcmV0dXJuIExheW91dFVuaXQoY29udGFpbmluZ0Jsb2NrSGVpZ2h0LnZh
bHVlKCkgLSBib2R5QW5kRG9jdW1lbnRWZXJ0aWNhbE1hcmdpblBhZGRpbmdBbmRCb3JkZXIpOwot
Ci0gICAgICAgIC8vIElmIHRoZSBvbmx5IGZpeGVkIHZhbHVlIGJveCB3ZSBmaW5kIGlzIHRoZSBJ
Q0IsIHRoZW4gaWdub3JlIHRoZSBib2R5IGFuZCB0aGUgZG9jdW1lbnQgKHZlcnRpY2FsKSBtYXJn
aW4sIHBhZGRpbmcgYW5kIGJvcmRlci4gU28gbXVjaCBxdWlya2luZXNzLgotICAgICAgICAvLyAt
YW5kIGl0J3MgdG90YWxseSBpbnNhbmUgYmVjYXVzZSBub3cgd2UgZnJlZWx5IHRyYXZlbCBhY3Jv
c3MgZm9ybWF0dGluZyBjb250ZXh0IGJvdW5kYXJpZXMgYW5kIGNvbXB1dGVkIG1hcmdpbnMgYXJl
IG5vbmV4aXN0ZW50LgotICAgICAgICBpZiAoY29udGFpbmluZ0Jsb2NrLT5pc0JvZHlCb3goKSB8
fCBjb250YWluaW5nQmxvY2stPmlzRG9jdW1lbnRCb3goKSkgewotCi0gICAgICAgICAgICBhdXRv
IGdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnkoKTsKLSAgICAgICAgICAgIGF1
dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0gZ2VvbWV0cnkuY29uc3RyYWludHNGb3JJbkZsb3dD
b250ZW50KGNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCksIEZvcm1hdHRpbmdDb250
ZXh0OjpFc2NhcGVSZWFzb246OkZpbmRGaXhlZEhlaWdodEFuY2VzdG9yUXVpcmspLmhvcml6b250
YWw7Ci0gICAgICAgICAgICBhdXRvIHZlcnRpY2FsTWFyZ2luID0gZ2VvbWV0cnkuY29tcHV0ZWRW
ZXJ0aWNhbE1hcmdpbigqY29udGFpbmluZ0Jsb2NrLCBob3Jpem9udGFsQ29uc3RyYWludHMpOwot
Ci0gICAgICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21l
dHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2ssIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFz
b246OkZpbmRGaXhlZEhlaWdodEFuY2VzdG9yUXVpcmspOwotICAgICAgICAgICAgYXV0byB2ZXJ0
aWNhbFBhZGRpbmcgPSBib3hHZW9tZXRyeS5wYWRkaW5nVG9wKCkudmFsdWVPcigwKSArIGJveEdl
b21ldHJ5LnBhZGRpbmdCb3R0b20oKS52YWx1ZU9yKDApOwotICAgICAgICAgICAgYXV0byB2ZXJ0
aWNhbEJvcmRlciA9IGJveEdlb21ldHJ5LmJvcmRlclRvcCgpICsgYm94R2VvbWV0cnkuYm9yZGVy
Qm90dG9tKCk7Ci0gICAgICAgICAgICBib2R5QW5kRG9jdW1lbnRWZXJ0aWNhbE1hcmdpblBhZGRp
bmdBbmRCb3JkZXIgKz0gdmVydGljYWxNYXJnaW4uYmVmb3JlLnZhbHVlT3IoMCkgKyB2ZXJ0aWNh
bE1hcmdpbi5hZnRlci52YWx1ZU9yKDApICsgdmVydGljYWxQYWRkaW5nICsgdmVydGljYWxCb3Jk
ZXI7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoaXM8SW5pdGlhbENvbnRhaW5pbmdCbG9jaz4o
KmNvbnRhaW5pbmdCbG9jaykpCi0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY29udGFpbmlu
Z0Jsb2NrID0gJmNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgfQotICAg
IC8vIEluaXRpYWwgY29udGFpbmluZyBibG9jayBoYXMgdG8gaGF2ZSBhIGhlaWdodC4KLSAgICBy
ZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3gobGF5b3V0Qm94LmluaXRpYWxD
b250YWluaW5nQmxvY2soKSwgRm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVJlYXNvbjo6RmluZEZp
eGVkSGVpZ2h0QW5jZXN0b3JRdWlyaykuY29udGVudEJveCgpLmhlaWdodCgpIC0gYm9keUFuZERv
Y3VtZW50VmVydGljYWxNYXJnaW5QYWRkaW5nQW5kQm9yZGVyOwotfQotCi19Ci19Ci0KLSNlbmRp
ZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9G
b3JtYXR0aW5nUXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvRm9ybWF0dGluZ1F1aXJrcy5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY1NWExMTk5ODk0MDVlMDQz
ZTg0YTQwMWU2ZTNlZjdmNDQ1YTk5NwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvRm9ybWF0dGluZ1F1aXJrcy5jcHAKQEAgLTAsMCAr
MSw4MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGb3Jt
YXR0aW5nUXVpcmtzLmgiCisKKyNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkK
KworI2luY2x1ZGUgIkxheW91dEJveC5oIgorI2luY2x1ZGUgIkxheW91dEJveEdlb21ldHJ5Lmgi
CisjaW5jbHVkZSAiTGF5b3V0SW5pdGlhbENvbnRhaW5pbmdCbG9jay5oIgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworRm9ybWF0dGluZ1F1aXJrczo6Rm9ybWF0
dGluZ1F1aXJrcyhjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQpCisg
ICAgOiBtX2Zvcm1hdHRpbmdDb250ZXh0KGZvcm1hdHRpbmdDb250ZXh0KQoreworfQorCitMYXlv
dXRVbml0IEZvcm1hdHRpbmdRdWlya3M6OmhlaWdodFZhbHVlT2ZOZWFyZXN0Q29udGFpbmluZ0Js
b2NrV2l0aEZpeGVkSGVpZ2h0KGNvbnN0IEJveCYgbGF5b3V0Qm94KQoreworICAgIC8vIEluIHF1
aXJrcyBtb2RlLCB3ZSBnbyBhbmQgdHJhdmVycyB0aGUgY29udGFpbmluZyBibG9jayBjaGFpbiB0
byBmaW5kIGEgYmxvY2sgbGV2ZWwgYm94IHdpdGggZml4ZWQgaGVpZ2h0IHZhbHVlLCBldmVuIGlm
IGl0IG1lYW5zIGxlYXZpbmcKKyAgICAvLyB0aGUgY3VycmVudCBmb3JtYXR0aW5nIGNvbnRleHQu
IEZJWE1FOiBzdXJlbHkgd2UgbmVlZCB0byBkbyBzb21lIHRyaWNrcyBoZXJlIHdoZW4gYmxvY2sg
ZGlyZWN0aW9uIHN1cHBvcnQgaXMgYWRkZWQuCisgICAgYXV0byYgZm9ybWF0dGluZ0NvbnRleHQg
PSB0aGlzLT5mb3JtYXR0aW5nQ29udGV4dCgpOworICAgIGF1dG8qIGNvbnRhaW5pbmdCbG9jayA9
ICZsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7CisgICAgTGF5b3V0VW5pdCBib2R5QW5kRG9j
dW1lbnRWZXJ0aWNhbE1hcmdpblBhZGRpbmdBbmRCb3JkZXI7CisgICAgd2hpbGUgKGNvbnRhaW5p
bmdCbG9jaykgeworICAgICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja0hlaWdodCA9IGNvbnRhaW5p
bmdCbG9jay0+c3R5bGUoKS5sb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIGlmIChjb250YWluaW5n
QmxvY2tIZWlnaHQuaXNGaXhlZCgpKQorICAgICAgICAgICAgcmV0dXJuIExheW91dFVuaXQoY29u
dGFpbmluZ0Jsb2NrSGVpZ2h0LnZhbHVlKCkgLSBib2R5QW5kRG9jdW1lbnRWZXJ0aWNhbE1hcmdp
blBhZGRpbmdBbmRCb3JkZXIpOworCisgICAgICAgIC8vIElmIHRoZSBvbmx5IGZpeGVkIHZhbHVl
IGJveCB3ZSBmaW5kIGlzIHRoZSBJQ0IsIHRoZW4gaWdub3JlIHRoZSBib2R5IGFuZCB0aGUgZG9j
dW1lbnQgKHZlcnRpY2FsKSBtYXJnaW4sIHBhZGRpbmcgYW5kIGJvcmRlci4gU28gbXVjaCBxdWly
a2luZXNzLgorICAgICAgICAvLyAtYW5kIGl0J3MgdG90YWxseSBpbnNhbmUgYmVjYXVzZSBub3cg
d2UgZnJlZWx5IHRyYXZlbCBhY3Jvc3MgZm9ybWF0dGluZyBjb250ZXh0IGJvdW5kYXJpZXMgYW5k
IGNvbXB1dGVkIG1hcmdpbnMgYXJlIG5vbmV4aXN0ZW50LgorICAgICAgICBpZiAoY29udGFpbmlu
Z0Jsb2NrLT5pc0JvZHlCb3goKSB8fCBjb250YWluaW5nQmxvY2stPmlzRG9jdW1lbnRCb3goKSkg
eworCisgICAgICAgICAgICBhdXRvIGdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0
cnkoKTsKKyAgICAgICAgICAgIGF1dG8gaG9yaXpvbnRhbENvbnN0cmFpbnRzID0gZ2VvbWV0cnku
Y29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50KGNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmluZ0Js
b2NrKCksIEZvcm1hdHRpbmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZpbmRGaXhlZEhlaWdodEFu
Y2VzdG9yUXVpcmspLmhvcml6b250YWw7CisgICAgICAgICAgICBhdXRvIHZlcnRpY2FsTWFyZ2lu
ID0gZ2VvbWV0cnkuY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbigqY29udGFpbmluZ0Jsb2NrLCBob3Jp
em9udGFsQ29uc3RyYWludHMpOworCisgICAgICAgICAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZv
cm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94KCpjb250YWluaW5nQmxvY2ssIEZvcm1hdHRp
bmdDb250ZXh0OjpFc2NhcGVSZWFzb246OkZpbmRGaXhlZEhlaWdodEFuY2VzdG9yUXVpcmspOwor
ICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbFBhZGRpbmcgPSBib3hHZW9tZXRyeS5wYWRkaW5nVG9w
KCkudmFsdWVPcigwKSArIGJveEdlb21ldHJ5LnBhZGRpbmdCb3R0b20oKS52YWx1ZU9yKDApOwor
ICAgICAgICAgICAgYXV0byB2ZXJ0aWNhbEJvcmRlciA9IGJveEdlb21ldHJ5LmJvcmRlclRvcCgp
ICsgYm94R2VvbWV0cnkuYm9yZGVyQm90dG9tKCk7CisgICAgICAgICAgICBib2R5QW5kRG9jdW1l
bnRWZXJ0aWNhbE1hcmdpblBhZGRpbmdBbmRCb3JkZXIgKz0gdmVydGljYWxNYXJnaW4uYmVmb3Jl
LnZhbHVlT3IoMCkgKyB2ZXJ0aWNhbE1hcmdpbi5hZnRlci52YWx1ZU9yKDApICsgdmVydGljYWxQ
YWRkaW5nICsgdmVydGljYWxCb3JkZXI7CisgICAgICAgIH0KKworICAgICAgICBpZiAoaXM8SW5p
dGlhbENvbnRhaW5pbmdCbG9jaz4oKmNvbnRhaW5pbmdCbG9jaykpCisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgY29udGFpbmluZ0Jsb2NrID0gJmNvbnRhaW5pbmdCbG9jay0+Y29udGFpbmlu
Z0Jsb2NrKCk7CisgICAgfQorICAgIC8vIEluaXRpYWwgY29udGFpbmluZyBibG9jayBoYXMgdG8g
aGF2ZSBhIGhlaWdodC4KKyAgICByZXR1cm4gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JC
b3gobGF5b3V0Qm94LmluaXRpYWxDb250YWluaW5nQmxvY2soKSwgRm9ybWF0dGluZ0NvbnRleHQ6
OkVzY2FwZVJlYXNvbjo6RmluZEZpeGVkSGVpZ2h0QW5jZXN0b3JRdWlyaykuY29udGVudEJveCgp
LmhlaWdodCgpIC0gYm9keUFuZERvY3VtZW50VmVydGljYWxNYXJnaW5QYWRkaW5nQW5kQm9yZGVy
OworfQorCit9Cit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nUXVpcmtzLmggYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL0Zvcm1hdHRpbmdRdWlya3MuaApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YTFkYzdkNThiM2JkMzBmMGZhMDI0YTA3MWU3ODc2YWI1MmExNGZhCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9Gb3JtYXR0aW5nUXVp
cmtzLmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJGb3JtYXR0aW5n
Q29udGV4dC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKwor
Y2xhc3MgRm9ybWF0dGluZ1F1aXJrcyB7CitwdWJsaWM6CisgICAgRm9ybWF0dGluZ1F1aXJrcyhj
b25zdCBGb3JtYXR0aW5nQ29udGV4dCYpOworCisgICAgTGF5b3V0VW5pdCBoZWlnaHRWYWx1ZU9m
TmVhcmVzdENvbnRhaW5pbmdCbG9ja1dpdGhGaXhlZEhlaWdodChjb25zdCBCb3gmKTsKKworcHJv
dGVjdGVkOgorICAgIGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKTsgfQorICAgIExheW91dFN0YXRl
JiBsYXlvdXRTdGF0ZSgpIHsgcmV0dXJuIG1fZm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUo
KTsgfQorICAgIGNvbnN0IEZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1fZm9ybWF0dGluZ0NvbnRleHQ7IH0KKworICAgIGNvbnN0IEZvcm1hdHRp
bmdDb250ZXh0JiBtX2Zvcm1hdHRpbmdDb250ZXh0OworfTsKKworfQorfQorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2sv
QmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcAppbmRleCAyYWIzNTMy
OWU1MDNiNmEwOGI0OTM3ZDNhYWRjNjNiMzU3NjY0ZTdmLi5iOTA5NjljZWIyNjA5ODI5NGY3MGEw
ZjIwYTlkM2RiYzFhZTcwNjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRp
bmdRdWlya3MuY3BwCkBAIC00NCw3ICs0NCw3IEBAIHN0YXRpYyBib29sIGlzUXVpcmtDb250YWlu
ZXIoY29uc3QgQm94JiBsYXlvdXRCb3gpCiB9CiAKIEJsb2NrRm9ybWF0dGluZ1F1aXJrczo6Qmxv
Y2tGb3JtYXR0aW5nUXVpcmtzKGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmIGJsb2NrRm9y
bWF0dGluZ0NvbnRleHQpCi0gICAgOiBGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzKGJsb2NrRm9y
bWF0dGluZ0NvbnRleHQpCisgICAgOiBGb3JtYXR0aW5nUXVpcmtzKGJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1F1aXJrcy5o
CmluZGV4IDliZDUxN2Y5ODI0NGFlODJjYzU5MDA1NDhmZTZlNDc0MTJmZTg1MTQuLjgwN2RmMzMy
MjgxYmI3NTg5NjE1Y2M1YWMyMDE4YTU2NzFmZDU0YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9C
bG9ja0Zvcm1hdHRpbmdRdWlya3MuaApAQCAtMjcsMTIgKzI3LDEyIEBACiAKICNpZiBFTkFCTEUo
TEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKIAotI2luY2x1ZGUgIkJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuaCIKKyNpbmNsdWRlICJGb3JtYXR0aW5nUXVpcmtzLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCi1jbGFzcyBCbG9ja0Zvcm1hdHRpbmdRdWlya3Mg
OiBwdWJsaWMgRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyB7CitjbGFzcyBCbG9ja0Zvcm1hdHRp
bmdRdWlya3MgOiBwdWJsaWMgRm9ybWF0dGluZ1F1aXJrcyB7CiBwdWJsaWM6CiAgICAgQmxvY2tG
b3JtYXR0aW5nUXVpcmtzKGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmKTsKIApAQCAtNDQs
NyArNDQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRDb2xsYXBzZU1hcmdpbkFmdGVyV2l0
aFBhcmVudE1hcmdpbkFmdGVyKGNvbnN0IEJveCYpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6Ci0gICAg
Y29uc3QgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7
IHJldHVybiBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdDb250ZXh0PihGb3JtYXR0aW5nQ29udGV4
dDo6UXVpcmtzOjpmb3JtYXR0aW5nQ29udGV4dCgpKTsgfQorICAgIGNvbnN0IEJsb2NrRm9ybWF0
dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8
QmxvY2tGb3JtYXR0aW5nQ29udGV4dD4oRm9ybWF0dGluZ1F1aXJrczo6Zm9ybWF0dGluZ0NvbnRl
eHQoKSk7IH0KICAgICBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeSBnZW9tZXRyeSgp
IGNvbnN0IHsgcmV0dXJuIGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnkoKTsgfQogCiB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcAppbmRleCA4
N2NiYTZjMzYxYWE0ZTU3MjBhMTFiZDY5ZmU5NjhlYTNkYzcyNzYwLi5iMzg2YzFlZjA2MjMyMWMy
NjljOTFiMWU0NDcxYTQ0MDE1OWNhYzFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVGb3JtYXR0aW5nUXVpcmtzLmNwcApAQCAtMzQsNyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAogSW5saW5lRm9ybWF0dGluZ1F1aXJrczo6SW5saW5l
Rm9ybWF0dGluZ1F1aXJrcyhjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgaW5saW5lRm9y
bWF0dGluZ0NvbnRleHQpCi0gICAgOiBGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzKGlubGluZUZv
cm1hdHRpbmdDb250ZXh0KQorICAgIDogRm9ybWF0dGluZ1F1aXJrcyhpbmxpbmVGb3JtYXR0aW5n
Q29udGV4dCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1
aXJrcy5oCmluZGV4IGViZWYxODZhYThkNTg0NDI4ODYxMzM1YjBlNDIwMmM1NTM2ZWJkZjcuLmY1
MWJjNDczYTM1MzI1ZTBlODNjNTc2Y2UzNWFjNzQ1NjA3NTRlYzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRp
bmdRdWlya3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmgKQEAgLTI3LDEyICsyNywxMiBAQAogCiAj
aWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAKLSNpbmNsdWRlICJGb3JtYXR0
aW5nQ29udGV4dC5oIgorI2luY2x1ZGUgIkZvcm1hdHRpbmdRdWlya3MuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogbmFtZXNwYWNlIExheW91dCB7CiAKLWNsYXNzIElubGluZUZvcm1hdHRpbmdR
dWlya3MgOiBwdWJsaWMgRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyB7CitjbGFzcyBJbmxpbmVG
b3JtYXR0aW5nUXVpcmtzIDogcHVibGljIEZvcm1hdHRpbmdRdWlya3MgewogcHVibGljOgogICAg
IElubGluZUxheW91dFVuaXQgaW5pdGlhbExpbmVIZWlnaHQoKSBjb25zdDsKICAgICBib29sIGhh
c1NvZnRXcmFwT3Bwb3J0dW5pdHlBdEltYWdlKCkgY29uc3Q7CkBAIC00Miw3ICs0Miw3IEBAIHBy
aXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIElubGluZUZvcm1hdHRpbmdDb250ZXh0OwogICAgIElu
bGluZUZvcm1hdHRpbmdRdWlya3MoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmKTsKIAot
ICAgIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNv
bnN0IHsgcmV0dXJuIGRvd25jYXN0PElubGluZUZvcm1hdHRpbmdDb250ZXh0PihGb3JtYXR0aW5n
Q29udGV4dDo6UXVpcmtzOjpmb3JtYXR0aW5nQ29udGV4dCgpKTsgfQorICAgIGNvbnN0IElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0JiBmb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGRv
d25jYXN0PElubGluZUZvcm1hdHRpbmdDb250ZXh0PihGb3JtYXR0aW5nUXVpcmtzOjpmb3JtYXR0
aW5nQ29udGV4dCgpKTsgfQogCiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlRm9ybWF0dGluZ1F1aXJrcy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL3RhYmxlL1RhYmxlRm9ybWF0
dGluZ1F1aXJrcy5jcHAKaW5kZXggZmFmYTI2ODdlOTNhYWE5ZDhmMzM1YTA1ZGJkZjhhODU4ZjVm
ZGVmNy4uNzczOWM0MWRkNTUwZWQ5OTQwMzNlODNhMzg3ZTZlOGY5ZjhlNTU2OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZv
cm1hdHRpbmdRdWlya3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvdGFibGUvVGFibGVGb3JtYXR0aW5nUXVpcmtzLmNwcApAQCAtMzYsNyArMzYsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAogVGFibGVGb3JtYXR0
aW5nUXVpcmtzOjpUYWJsZUZvcm1hdHRpbmdRdWlya3MoY29uc3QgVGFibGVGb3JtYXR0aW5nQ29u
dGV4dCYgdGFibGVGb3JtYXR0aW5nQ29udGV4dCkKLSAgICA6IEZvcm1hdHRpbmdDb250ZXh0OjpR
dWlya3ModGFibGVGb3JtYXR0aW5nQ29udGV4dCkKKyAgICA6IEZvcm1hdHRpbmdRdWlya3ModGFi
bGVGb3JtYXR0aW5nQ29udGV4dCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZvcm1hdHRpbmdRdWlya3MuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvdGFibGUvVGFibGVGb3Jt
YXR0aW5nUXVpcmtzLmgKaW5kZXggMDU3NzZkYzgxM2U5MDkzZmQzMTIzYmI4MmY0MjdkNGMzNjBl
YzJjMi4uZDMyNTE1YmRkZjI5ZWY4YzAxNTdmNWI1MmQ2NmMzNThiMDE4ODNmYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy90YWJsZS9UYWJsZUZv
cm1hdHRpbmdRdWlya3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL3RhYmxlL1RhYmxlRm9ybWF0dGluZ1F1aXJrcy5oCkBAIC0yNywxOSArMjcsMTkgQEAK
IAogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQogCi0jaW5jbHVkZSAiRm9y
bWF0dGluZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJGb3JtYXR0aW5nUXVpcmtzLmgiCiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIG5hbWVzcGFjZSBMYXlvdXQgewogCi1jbGFzcyBUYWJsZUZvcm1hdHRp
bmdRdWlya3MgOiBwdWJsaWMgRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyB7CitjbGFzcyBUYWJs
ZUZvcm1hdHRpbmdRdWlya3MgOiBwdWJsaWMgRm9ybWF0dGluZ1F1aXJrcyB7CiBwdWJsaWM6CiAg
ICAgVGFibGVGb3JtYXR0aW5nUXVpcmtzKGNvbnN0IFRhYmxlRm9ybWF0dGluZ0NvbnRleHQmKTsK
IAogICAgIGJvb2wgc2hvdWxkSWdub3JlQ2hpbGRDb250ZW50VmVydGljYWxNYXJnaW4oY29uc3Qg
Q29udGFpbmVyQm94JikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgY29uc3QgVGFibGVGb3JtYXR0
aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxU
YWJsZUZvcm1hdHRpbmdDb250ZXh0PihGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpmb3JtYXR0
aW5nQ29udGV4dCgpKTsgfQorICAgIGNvbnN0IFRhYmxlRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1h
dHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8VGFibGVGb3JtYXR0aW5nQ29u
dGV4dD4oRm9ybWF0dGluZ1F1aXJrczo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KICAgICBUYWJs
ZUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeSBnZW9tZXRyeSgpIGNvbnN0IHsgcmV0dXJuIGZv
cm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnkoKTsgfQogfTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>