<?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>220943</bug_id>
          
          <creation_ts>2021-01-25 13:32:35 -0800</creation_ts>
          <short_desc>[GPU Process] Introduce RenderingResource and make it the base of ImageBuffer and NativeImage</short_desc>
          <delta_ts>2023-03-23 14:11:42 -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>232845</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1722242</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-01-25 13:32:35 -0800</bug_when>
    <thetext>This class will be responsible for smart pointer support and RenderingResourceIdentifier and observers&apos; management.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722288</commentid>
    <comment_count>1</comment_count>
      <attachid>418338</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-01-25 14:36:59 -0800</bug_when>
    <thetext>Created attachment 418338
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722345</commentid>
    <comment_count>2</comment_count>
      <attachid>418356</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-01-25 16:24:50 -0800</bug_when>
    <thetext>Created attachment 418356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1722348</commentid>
    <comment_count>3</comment_count>
      <attachid>418357</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-01-25 16:50:18 -0800</bug_when>
    <thetext>Created attachment 418357
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1724390</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-01 13:33:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/73843739&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1876898</commentid>
    <comment_count>5</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2022-06-20 19:56:41 -0700</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/1644</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1943402</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-03-23 10:15:28 -0700</bug_when>
    <thetext>Committed 262021@main (11e07c42d4bf): &lt;https://commits.webkit.org/262021@main&gt;

Reviewed commits have been landed. Closing PR #1644 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418338</attachid>
            <date>2021-01-25 14:36:59 -0800</date>
            <delta_ts>2021-01-25 16:24:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220943-20210125143658.patch</filename>
            <type>text/plain</type>
            <size>40236</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxNzk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2NiNzJjMDQzMzZkZjJj
ZTU5NjhjNzY0Y2E4ZGY4ZWYyY2YxNjMyOC4uN2NhZTI5ZWI1MTkxNTZhOTgwMmRhMDdiNjljN2U4
YjgzYWJiNmU3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAxLTI1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW50cm9kdWNlIFJlbmRlcmluZ1Jlc291cmNlIGFuZCBtYWtlIGl0IHRoZSBiYXNlIG9mIEltYWdl
QnVmZmVyIGFuZCBOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwOTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTW92ZSBzbWFydCBwb2ludGVyIHN1cHBvcnQgYW5kIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBhbmQgb2JzZXJ2ZXJzJworICAgICAgICBtYW5hZ2VtZW50IHRvIHRo
aXMgY2xhc3MuIEltYWdlQnVmZmZlciBhbmQgTmF0aXZlSW1hZ2Ugd2lsbCBzaGFyZSB0aGlzIGNv
ZGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAo
V2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjo6Q29uY3JldGVJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlQnVmZmVyOjpyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5hdGl2ZUltYWdlOjpOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpO
YXRpdmVJbWFnZTo6fk5hdGl2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9OYXRpdmVJbWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2U6OnBs
YXRmb3JtSW1hZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2U6OnJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpOYXRpdmVJbWFnZTo6YWRkT2JzZXJ2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TmF0aXZlSW1hZ2U6OnJlbW92ZU9ic2VydmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9SZW5kZXJpbmdSZXNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlOjp+UmVuZGVyaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2U6OnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZTo6YWRkT2JzZXJ2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2U6OnJlbW92ZU9ic2VydmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlOjpSZW5kZXJpbmdSZXNvdXJjZSk6CisKIDIw
MjEtMDEtMjUgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBlLmNvbT4KIAogICAgICAgICBOdWxs
cHRyIGRlcmVmZXJlbmNlIGluIFNwZWVjaFJlY29nbml0aW9uOjpzdG9wKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXgg
ZGIwNTI0M2EyZGRkMTIyMWVmYzIxNGMyMDA5YzgxZDJkMWNmN2YyNC4uNThiM2E4MWUyMGE3NDlj
MDA2OGNmMDRhZDViMDg2M2M5M2NkNWUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOCBAQAorMjAy
MS0wMS0yNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKyAgICAgICAgW0dQ
VSBQcm9jZXNzXSBJbnRyb2R1Y2UgUmVuZGVyaW5nUmVzb3VyY2UgYW5kIG1ha2UgaXQgdGhlIGJh
c2Ugb2YgSW1hZ2VCdWZmZXIgYW5kIE5hdGl2ZUltYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA5NDMKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWUgcmVsZWFzZVJlbW90ZVJlc291cmNlKCkg
dG8gcmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKCkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOiBE
ZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlQ2FjaGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpy
ZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlSW1hZ2VCdWZmZXJQcm94eTo6flJlbW90ZUltYWdlQnVmZmVyUHJveHkpOgorICAg
ICAgICBSZWxlYXNpbmcgdGhlIFJlbW90ZUltYWdlQnVmZmVyIGZyb20gV2ViUHJvY2VzcyBhbmQg
R1BVUHJvY2VzcyB3aWxsIGJlCisgICAgICAgIGhhbmRsZWQgYnkgdGhlIGRlc3RydWN0b3Igb2Yg
UmVuZGVyaW5nUmVzb3VyY2Ugd2hlbiBpdCBjYWxscyB0aGUgb2JzZXJ2ZXIsCisgICAgICAgIHdo
aWNoIGlzIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSwgdG8gcmVsZWFzZVJlbmRlcmluZ1Jlc291
cmNlKCkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHk6OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZSk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRh
dGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VO
YXRpdmVJbWFnZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Lmg6CisKIDIwMjEtMDEtMjQgIFNpbW9uIEZyYXNlciAg
PHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPUyBXSzJdIHRoZXZlcmdlLmNv
bSAtIHJ1YmJlciBiYW5kIHNjcm9sbGluZyBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlIGNhdXNlcyBh
biBhYnJ1cHQganVtcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDcxZjdjODM4MTE5YTIzNTE3M2Q0MGNiODg5MWJjNWFiZjljMzZl
ZmUuLjI0OTRiNzFjZDk4ODQwNjIzNDIwYWYzZjcxMmY4YTRhN2YzMmM1ZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTMwMiw2
ICszMDIsNyBAQAogCQkwRjQ5NjZBQjFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2ludC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0OTY2QTUxREI0
MEM0MzAwQTI3NEJCIC8qIEpTRE9NUG9pbnQuaCAqLzsgfTsKIAkJMEY0OTY2QUQxREI0MEM0MzAw
QTI3NEJCIC8qIEpTRE9NUG9pbnRJbml0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjQ5NjZBNzFEQjQwQzQzMDBBMjc0QkIgLyogSlNET01Qb2ludElu
aXQuaCAqLzsgfTsKIAkJMEY0OTY2QUYxREI0MEM0MzAwQTI3NEJCIC8qIEpTRE9NUG9pbnRSZWFk
T25seS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY0
OTY2QTkxREI0MEM0MzAwQTI3NEJCIC8qIEpTRE9NUG9pbnRSZWFkT25seS5oICovOyB9OworCQkw
RjUzRkI4NDIxM0I3QTY0MDBDNDBEMzQgLyogUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY1M0ZCODQyMTNC
Nzg2NDAwQzQwRDM0IC8qIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjU0RENFNjE4ODEwNTFEMDAz
RUVEQkIgLyogVGV4dEF1dG9TaXppbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGNTREQ0U0MTg4MTA1MUQwMDNFRURCQiAvKiBUZXh0QXV0b1Npemlu
Zy5oICovOyB9OwogCQkwRjU0REQwODE4ODFENUY1MDAzRUVEQkIgLyogVG91Y2guaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTRERDA1MTg4MUQ1RjUw
MDNFRURCQiAvKiBUb3VjaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGNTRERDA5MTg4MUQ1RjUwMDNFRURCQiAvKiBUb3VjaEV2ZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjU0REQwNjE4ODFE
NUY1MDAzRUVEQkIgLyogVG91Y2hFdmVudC5oICovOyB9OwpAQCAtMjE5NSw2ICsyMTk2LDcgQEAK
IAkJNzI2RDU2RTIyNTNBRTI4RDAwMDJFRjkwIC8qIFBsYXRmb3JtSW1hZ2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyNkQ1NkUxMjUzQUUwNDMwMDAy
RUY5MCAvKiBQbGF0Zm9ybUltYWdlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJNzI2RDU2RTMyNTNBRTM2NjAwMDJFRjkwIC8qIE5hdGl2ZUltYWdl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1NUEzMzZG
NjFEODIwOUY0MDAyMkM0QzcgLyogTmF0aXZlSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjdBN0YzQTI0MDc4Qjg0MDA0RDI5MzEgLyog
SW1hZ2VCdWZmZXJJT1N1cmZhY2VCYWNrZW5kLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MkJBQzNBQjIzRTFFNTQ0MDA4RDc0MUMgLyogSW1hZ2VCdWZm
ZXJJT1N1cmZhY2VCYWNrZW5kLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNzI5MzAzOUMyNUJGNkVBRTAwODg2MEExIC8qIFJlbmRlcmluZ1Jlc291
cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjkz
MDM5QTI1QkY2RUFEMDA4ODYwQTEgLyogUmVuZGVyaW5nUmVzb3VyY2UuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3Mjk5QkM2NzIzRDZBNTMyMDBD
QzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgzIC8qIEFscGhh
UHJlbXVsdGlwbGljYXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk3Mjk5QkM2ODIzRDZBNTNFMDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI5OUJDNjYy
M0Q2ODZDNjAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjlEMDUzMDI1MzE0MjQzMDA0MjIwOTggLyog
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA3MjlEMDUyRTI1MzEzRTI2MDA0MjIwOTggLyogUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTQwODcsNyArNDA4OSw2IEBACiAJCUJDRUE0ODc2MDk3RDkzMDIwMDk0
QzlFNCAvKiBSZW5kZXJJbWFnZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQkNFQTQ4MzcwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlckltYWdlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNFQTQ4Nzgw
OTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlcklubGluZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFQTQ4MzkwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRl
cklubGluZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUJDRUE0ODdBMDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJMYXllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFQTQ4M0IwOTdEOTMwMjAwOTRD
OUU0IC8qIFJlbmRlckxheWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKLQkJMEY1M0ZCODQyMTNCN0E2NDAwQzQwRDM0IC8qIFJlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGNTNGQjg0MjEzQjc4NjQwMEM0MEQzNCAvKiBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVh
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNF
QTQ4ODAwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlck9iamVjdC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFQTQ4NDEwOTdEOTMwMjAwOTRDOUU0IC8q
IFJlbmRlck9iamVjdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCUJDRUE0ODg3MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJUaGVtZU1hYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNFQTQ4NDgwOTdE
OTMwMjAwOTRDOUU0IC8qIFJlbmRlclRoZW1lTWFjLmggKi87IH07CiAJCUJDRUE0ODhBMDk3RDkz
MDIwMDk0QzlFNCAvKiBSZW5kZXJUaGVtZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNFQTQ4NEIwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclRoZW1l
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTUw
ODksNiArNTA5MCw3IEBACiAJCUU0MjVBNDlBMTgyOTJCODQwMDIwQ0ZDRiAvKiBDb2xsZWN0aW9u
SW5kZXhDYWNoZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRTQyNUE0OTkxODI5MkI4NDAwMjBDRkNGIC8qIENvbGxlY3Rpb25JbmRleENhY2hlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRTQyOTVGQTQx
MkIwNjE0RTAwRDFBQ0UwIC8qIFJlc291cmNlTG9hZFByaW9yaXR5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDI5NUZBMzEyQjA2MTRFMDBEMUFDRTAg
LyogUmVzb3VyY2VMb2FkUHJpb3JpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQlFNDJFNzZEQzFDN0FGNzc2MDBFMzYxNEQgLyogU3R5bGVVcGRh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0MkU3
NkRCMUM3QUY3NzYwMEUzNjE0RCAvKiBTdHlsZVVwZGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUU0MkVFM0E3MTc1NzZFNTUwMEVFRThDRiAv
KiBGb250R2VuZXJpY0ZhbWlsaWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFNDRFRTNBNzE3NTc2RTU1MDBFRUU4Q0YgLyogRm9udEdlbmVyaWNGYW1p
bGllcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUU0MzEwNUJCMTY3NTBGMTYwMERCMkZCOCAvKiBOb2RlVHJhdmVyc2FsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDMxMDVCQTE2NzUwRjE2MDBEQjJG
QjggLyogTm9kZVRyYXZlcnNhbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUU0M0EwMjNCMTdFQjM3MEEwMDRDREQyNSAvKiBSZW5kZXJFbGVtZW50
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFNDNBMDIz
QTE3RUIzNzBBMDA0Q0REMjUgLyogUmVuZGVyRWxlbWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUU0M0FGOEU3MUFDNUI3RUMwMENBNzE3RSAv
KiBDYWNoZVZhbGlkYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEU0M0FGOEU1MUFDNUI3REQwMENBNzE3RSAvKiBDYWNoZVZhbGlkYXRpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTExMiw3
ICs1MTE0LDYgQEAKIAkJRTQ0NjE0M0MwQ0Q2ODlDQzAwRkFEQTc1IC8qIEpTSFRNTFNvdXJjZUVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU0
QjQyMzcyMENCRkI2RTAwMEFGMkVDRSAvKiBKU0hUTUxTb3VyY2VFbGVtZW50LmggKi87IH07CiAJ
CUU0NDYxNDUyMENENjhBMzUwMEZBREE3NSAvKiBSZW5kZXJWaWRlby5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTRCNDFFMzQwQ0JGQjYwOTAwQUYyRUNF
IC8qIFJlbmRlclZpZGVvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRTQ0QjRCQjQxNDE2NTBENzAwMkIxRDhCIC8qIFNlbGVjdG9yQ2hlY2tlci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0QjRCQjIx
NDE2NTBENzAwMkIxRDhCIC8qIFNlbGVjdG9yQ2hlY2tlci5oICovOyB9OwotCQlFNDJFRTNBNzE3
NTc2RTU1MDBFRUU4Q0YgLyogRm9udEdlbmVyaWNGYW1pbGllcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTQ0RUUzQTcxNzU3NkU1NTAwRUVFOENGIC8q
IEZvbnRHZW5lcmljRmFtaWxpZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlFNDRGQTE4NTFCQ0E2QjVBMDA5MUI2RUYgLyogQ29tcG9zZWRUcmVl
SXRlcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEU0NEZBMTg0MUJDQTZCNUEwMDkxQjZFRiAvKiBDb21wb3NlZFRyZWVJdGVyYXRvci5oICovOyB9
OwogCQlFNDUxQzYzMTIzOTQwMjc5MDA5OTMxOTAgLyogTGF5b3V0VW5pdHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGNzM5MThDMjEwNkNFREQwMDZB
RjI2MiAvKiBMYXlvdXRVbml0cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUU0NTFDNjMyMjM5NDAzMUEwMDk5MzE5MCAvKiBNYXJnaW5UeXBlcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkZFN0FBMjYy
MUMzN0I2MzAwMjk2RENEIC8qIE1hcmdpblR5cGVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk3NTgsOCArOTc1OSw4IEBACiAJCTZFNTM4OEUx
MjQ1OEFFMUQwMDc2QUUwMyAvKiBXZWJHTENvbG9yQnVmZmVyRmxvYXQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkdM
Q29sb3JCdWZmZXJGbG9hdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZFNTc2
QkMzMjRFQjUwOUMwMDk0RDRBQSAvKiBKU0hUTUxDYW52YXNFbGVtZW50Q3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTENhbnZhc0VsZW1lbnRDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RTY3RDJBODEyODBFOEJEMDA4
NzU4RjcgLyogRXh0ZW5zaW9uc0dMLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEV4dGVuc2lvbnNHTC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk2RTdDQTMwQTI1
QjREMjhBMDA0QTkxM0UgLyogSlNXZWJHTE11bHRpRHJhdy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBKU1dl
YkdMTXVsdGlEcmF3Lmg7IHBhdGggPSBKU1dlYkdMTXVsdGlEcmF3Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07Ci0JCTZFN0NBMzBCMjVCNEQzMjgwMDRBOTEzRSAvKiBKU1dlYkdMTXVsdGlE
cmF3LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTV2ViR0xNdWx0aURyYXcuY3BwOyBwYXRoID0g
SlNXZWJHTE11bHRpRHJhdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTZFN0NB
MzBBMjVCNEQyOEEwMDRBOTEzRSAvKiBKU1dlYkdMTXVsdGlEcmF3LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEpTV2ViR0xNdWx0aURyYXcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkU3Q0Ez
MEIyNUI0RDMyODAwNEE5MTNFIC8qIEpTV2ViR0xNdWx0aURyYXcuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNXZWJHTE11bHRpRHJhdy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTZFODRFOURFMTc2NjhCQUQwMDgxNUI2OCAvKiBSYXN0ZXJTaGFwZS5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSYXN0ZXJTaGFwZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTZFODRFOURGMTc2NjhCQUQwMDgxNUI2OCAvKiBSYXN0ZXJTaGFwZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSYXN0ZXJTaGFwZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk2RThBQ0RFOTIzMzQ1Q0FGMDAyNEFBRjUgLyogV2ViR0xD
b21wcmVzc2VkVGV4dHVyZUVUQy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJHTENvbXByZXNz
ZWRUZXh0dXJlRVRDLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMTQyLDYg
KzEwMTQzLDcgQEAKIAkJNzI3QUZFRDExQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRVhUc1JHQi5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyN0FGRUQyMUEyRUE2QTAwMDA0NDJFOCAvKiBFWFRzUkdC
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEVYVHNSR0IuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QUZFRDMxQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0Iu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEVYVHNSR0IuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk3MjkzMDM5QTI1QkY2RUFEMDA4ODYwQTEgLyogUmVuZGVyaW5nUmVzb3Vy
Y2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyaW5nUmVzb3VyY2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI5OUJDNjQyM0Q2ODZBNjAwQ0M2ODgz
IC8qIEFscGhhUHJlbXVsdGlwbGljYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQWxwaGFQcmVtdWx0
aXBsaWNhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3Mjk5QkM2NjIzRDY4
NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdN
b2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTcyOUQwNTJFMjUzMTNFMjYwMDQy
MjA5OCAvKiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0yNjc0MSw2ICsyNjc0Myw3IEBACiAJCQkJMDczQTE1NTEyMTc3QTM5ODAwRUEwOEYyIC8qIFJl
bW90ZVZpZGVvU2FtcGxlLmNwcCAqLywKIAkJCQkwNzNBMTU1MzIxNzdBMzlBMDBFQTA4RjIgLyog
UmVtb3RlVmlkZW9TYW1wbGUuaCAqLywKIAkJCQk3Mjk5QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyog
UmVuZGVyaW5nTW9kZS5oICovLAorCQkJCTcyOTMwMzlBMjVCRjZFQUQwMDg4NjBBMSAvKiBSZW5k
ZXJpbmdSZXNvdXJjZS5oICovLAogCQkJCTcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCAqLywKIAkJCQlBNzNGOTVGQzEyQzk3QkZFMDAzMUFB
RjkgLyogUm91bmRlZFJlY3QuY3BwICovLAogCQkJCUE3M0Y5NUZEMTJDOTdCRkUwMDMxQUFGOSAv
KiBSb3VuZGVkUmVjdC5oICovLApAQCAtMzQyMzMsNiArMzQyMzYsNyBAQAogCQkJCTA4RjJGMDBB
MTIxM0U2MTcwMERDRUM0OCAvKiBSZW5kZXJJbWFnZVJlc291cmNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQkwODY0MUQ0ODEyMTQyRjdEMDA4REU5RjYgLyogUmVuZGVySW1hZ2VSZXNvdXJjZVN0eWxl
SW1hZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTcyOTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBS
ZW5kZXJpbmdNb2RlLmggaW4gSGVhZGVycyAqLywKKwkJCQk3MjkzMDM5QzI1QkY2RUFFMDA4ODYw
QTEgLyogUmVuZGVyaW5nUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTcyOUQwNTMwMjUz
MTQyNDMwMDQyMjA5OCAvKiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTU1NkM3QzRCMjIxMjM5OTcwMDlCMDZDQSAvKiBSZW5kZXJpbmdVcGRhdGVTY2hl
ZHVsZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0ODc4MDk3RDkzMDIwMDk0QzlFNCAvKiBS
ZW5kZXJJbmxpbmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCmluZGV4IDFmMjQ1YmNlYmE3
MmNlMTM3ZTkwYzYxZTU1ZjUxYTMzODFiODA2ODUuLmU2ODRmODRhODc5MmVhYWFkMzZjZDQ0MjBm
MDk0ZWVlOGJlNTA1MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Db25jcmV0ZUltYWdlQnVmZmVyLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoK
ICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01OCw5ICs1OCw5IEBAIHB1YmxpYzoKIAog
cHJvdGVjdGVkOgogICAgIENvbmNyZXRlSW1hZ2VCdWZmZXIoY29uc3QgSW1hZ2VCdWZmZXJCYWNr
ZW5kOjpQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzLCBzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+
JiYgYmFja2VuZCA9IG51bGxwdHIsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI6OmdlbmVy
YXRlKCkpCi0gICAgICAgIDogbV9wYXJhbWV0ZXJzKHBhcmFtZXRlcnMpCisgICAgICAgIDogSW1h
Z2VCdWZmZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICAsIG1fcGFyYW1l
dGVycyhwYXJhbWV0ZXJzKQogICAgICAgICAsIG1fYmFja2VuZChXVEZNb3ZlKGJhY2tlbmQpKQot
ICAgICAgICAsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcikKICAgICB7CiAgICAgfQogCkBAIC03Myw4ICs3Myw2IEBAIHByb3RlY3RlZDoK
ICAgICB2b2lkIGNsZWFyQmFja2VuZCgpIG92ZXJyaWRlIHsgbV9iYWNrZW5kID0gbnVsbHB0cjsg
fQogICAgIEltYWdlQnVmZmVyQmFja2VuZCogZW5zdXJlQmFja2VuZENyZWF0ZWQoKSBjb25zdCBv
dmVycmlkZSB7IHJldHVybiBtX2JhY2tlbmQuZ2V0KCk7IH0KIAotICAgIFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSBjb25zdCBvdmVycmlk
ZSB7IHJldHVybiBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsgfQotCiAgICAgR3JhcGhp
Y3NDb250ZXh0JiBjb250ZXh0KCkgY29uc3Qgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIEFTU0VS
VChtX2JhY2tlbmQpOwpAQCAtMjk2LDcgKzI5NCw2IEBAIHByb3RlY3RlZDoKIAogICAgIEltYWdl
QnVmZmVyQmFja2VuZDo6UGFyYW1ldGVycyBtX3BhcmFtZXRlcnM7CiAgICAgc3RkOjp1bmlxdWVf
cHRyPEJhY2tlbmRUeXBlPiBtX2JhY2tlbmQ7Ci0gICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VCdWZmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmgKaW5kZXggMzZkNzRjYTM5ZGUxN2NkMDNjMTNiYjc1ZTRkNWUzODQ4YzMzZWNmZS4uZWFhYjdm
MWY4MTExN2EzNzg1MGY3M2NkZWJlODIyN2ExMmZkNTc3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oCkBAIC0xLDYgKzEsNiBAQAogLyoKICAq
IENvcHlyaWdodCAoQykgMjAwNiBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9y
Zz4KLSAqIENvcHlyaWdodCAoQykgMjAwNy0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBUb3JjaCBNb2JpbGUgKEJlaWppbmcpIENv
LiBMdGQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CkBAIC0zMCw5ICsz
MCw3IEBACiAjaW5jbHVkZSAiRGlzcGxheUxpc3RGbHVzaElkZW50aWZpZXIuaCIKICNpbmNsdWRl
ICJJbWFnZUJ1ZmZlckJhY2tlbmQuaCIKICNpbmNsdWRlICJSZW5kZXJpbmdNb2RlLmgiCi0jaW5j
bHVkZSAiUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmgiCi0jaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgIlJlbmRlcmluZ1Jl
c291cmNlLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDIsNyArNDAsNyBAQCBjbGFz
cyBEcmF3aW5nQ29udGV4dDsKIHN0cnVjdCBJdGVtQnVmZmVySGFuZGxlOwogfQogCi1jbGFzcyBJ
bWFnZUJ1ZmZlciA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxJbWFnZUJ1ZmZlcj4sIHB1
YmxpYyBDYW5NYWtlV2Vha1B0cjxJbWFnZUJ1ZmZlcj4geworY2xhc3MgSW1hZ2VCdWZmZXIgOiBw
dWJsaWMgUmVuZGVyaW5nUmVzb3VyY2UgewogcHVibGljOgogICAgIC8vIFdpbGwgcmV0dXJuIGEg
bnVsbCBwb2ludGVyIG9uIGFsbG9jYXRpb24gZmFpbHVyZS4KICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgUmVmUHRyPEltYWdlQnVmZmVyPiBjcmVhdGUoY29uc3QgRmxvYXRTaXplJiwgUmVuZGVy
aW5nTW9kZSwgU2hvdWxkVXNlRGlzcGxheUxpc3QsIFJlbmRlcmluZ1B1cnBvc2UsIGZsb2F0IHJl
c29sdXRpb25TY2FsZSA9IDEsIENvbG9yU3BhY2UgPSBDb2xvclNwYWNlOjpTUkdCLCBQaXhlbEZv
cm1hdCA9IFBpeGVsRm9ybWF0OjpCR1JBOCwgY29uc3QgSG9zdFdpbmRvdyogPSBudWxscHRyKTsK
QEAgLTcxLDcgKzY5LDYgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBSZW5kZXJpbmdNb2RlIHJl
bmRlcmluZ01vZGUoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGNhbk1hcEJhY2tpbmdT
dG9yZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiB7IH07IH0KIAog
ICAgIHZpcnR1YWwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KCkgY29uc3QgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBmbHVzaENvbnRleHQoKSA9IDA7CkBAIC0xMzQsOSArMTMxLDkgQEAgcHVibGlj
OgogICAgIC8vIHdpdGggdGV4dHVyZXMgdGhhdCBhcmUgUkdCIG9yIFJHQkEgZm9ybWF0LCBhbmQg
VU5TSUdORURfQllURSB0eXBlLgogICAgIHZpcnR1YWwgYm9vbCBjb3B5VG9QbGF0Zm9ybVRleHR1
cmUoR3JhcGhpY3NDb250ZXh0R0wmLCBHQ0dMZW51bSwgUGxhdGZvcm1HTE9iamVjdCwgR0NHTGVu
dW0sIGJvb2wsIGJvb2wpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFBsYXRmb3JtTGF5ZXIqIHBs
YXRmb3JtTGF5ZXIoKSBjb25zdCA9IDA7Ci0gICAgCisKIHByb3RlY3RlZDoKLSAgICBJbWFnZUJ1
ZmZlcigpID0gZGVmYXVsdDsKKyAgICB1c2luZyBSZW5kZXJpbmdSZXNvdXJjZTo6UmVuZGVyaW5n
UmVzb3VyY2U7CiAKICAgICB2aXJ0dWFsIFJlZlB0cjxOYXRpdmVJbWFnZT4gc2lua0ludG9OYXRp
dmVJbWFnZSgpID0gMDsKICAgICB2aXJ0dWFsIFJlZlB0cjxJbWFnZT4gc2lua0ludG9JbWFnZShQ
cmVzZXJ2ZVJlc29sdXRpb24gPSBQcmVzZXJ2ZVJlc29sdXRpb246Ok5vKSA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5jcHAKaW5kZXggMGEz
MTU1ODUwMzQ5NWUyZGU5MzdlNzI2OTMxZWM3ODgwY2Y2OWEyNy4uMmUxZmI4OWQ4ZDZmMTZmNGMy
NzQ3YTAxODcxYTY4ZWZkZTBmYTQ3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL05hdGl2ZUltYWdlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDggKzI2LDYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJOYXRpdmVJbWFnZS5oIgogCi0jaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogUmVmUHRyPE5hdGl2ZUltYWdlPiBO
YXRpdmVJbWFnZTo6Y3JlYXRlKFBsYXRmb3JtSW1hZ2VQdHImJiBwbGF0Zm9ybUltYWdlLCBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQpAQCAt
MzgsMTUgKzM2LDkgQEAgUmVmUHRyPE5hdGl2ZUltYWdlPiBOYXRpdmVJbWFnZTo6Y3JlYXRlKFBs
YXRmb3JtSW1hZ2VQdHImJiBwbGF0Zm9ybUltYWdlLCBSZW5kZXIKIH0KIAogTmF0aXZlSW1hZ2U6
Ok5hdGl2ZUltYWdlKFBsYXRmb3JtSW1hZ2VQdHImJiBwbGF0Zm9ybUltYWdlLCBSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQotICAgIDogbV9w
bGF0Zm9ybUltYWdlKFdURk1vdmUocGxhdGZvcm1JbWFnZSkpCi0gICAgLCBtX3JlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCi17Ci19Ci0KLU5h
dGl2ZUltYWdlOjp+TmF0aXZlSW1hZ2UoKQorICAgIDogUmVuZGVyaW5nUmVzb3VyY2UocmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICwgbV9wbGF0Zm9ybUltYWdlKFdURk1vdmUocGxh
dGZvcm1JbWFnZSkpCiB7Ci0gICAgZm9yIChhdXRvIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCi0g
ICAgICAgIG9ic2VydmVyLT5yZWxlYXNlTmF0aXZlSW1hZ2UobV9yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaAppbmRleCA5NDViOGRlOThkNGI5ODhj
ZWQ5YTI2NWQxNmU1OTQwMTMxZDEzODBjLi5kYTY2NDRkMDQ5ZjJmNzUyZGJjNDMyNjM4MTY5OWE2
YTBmNmI2YjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9O
YXRpdmVJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2
ZUltYWdlLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMjAg
QXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNC0y
MDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MDctMjAwOCBUb3JjaCBNb2JpbGUsIEluYy4KICAqIENvcHlyaWdodCAoQykgMjAxMiBDb21wYW55
IDEwMCBJbmMuCiAgKgpAQCAtMzAsMzkgKzMwLDIyIEBACiAjaW5jbHVkZSAiQ29sb3IuaCIKICNp
bmNsdWRlICJJbnRTaXplLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1JbWFnZS5oIgotI2luY2x1ZGUg
IlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIlJlbmRlcmluZ1Jlc291
cmNlLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5o
PgotI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBOYXRpdmVJbWFnZSA6IHB1YmxpYyBSZWZD
b3VudGVkPE5hdGl2ZUltYWdlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPE5hdGl2ZUltYWdlPiB7
CitjbGFzcyBOYXRpdmVJbWFnZSA6IHB1YmxpYyBSZW5kZXJpbmdSZXNvdXJjZSB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgY2xhc3MgT2JzZXJ2ZXIgewotICAg
IHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7Ci0gICAgICAg
IHZpcnR1YWwgdm9pZCByZWxlYXNlTmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKSA9IDA7Ci0gICAgcHJvdGVjdGVkOgotICAgICAgICBPYnNlcnZlcigpID0gZGVmYXVsdDsK
LSAgICB9OwotCiAgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxOYXRpdmVJbWFnZT4g
Y3JlYXRlKFBsYXRmb3JtSW1hZ2VQdHImJiwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyID0g
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIH5OYXRpdmVJbWFnZSgpOwotCiAgICAgY29uc3QgUGxhdGZvcm1JbWFnZVB0ciYgcGxh
dGZvcm1JbWFnZSgpIGNvbnN0IHsgcmV0dXJuIG1fcGxhdGZvcm1JbWFnZTsgfQotICAgIFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSBjb25z
dCB7IHJldHVybiBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsgfQogCiAgICAgV0VCQ09S
RV9FWFBPUlQgSW50U2l6ZSBzaXplKCkgY29uc3Q7CiAgICAgYm9vbCBoYXNBbHBoYSgpIGNvbnN0
OwogICAgIENvbG9yIHNpbmdsZVBpeGVsU29saWRDb2xvcigpIGNvbnN0OwogCi0gICAgdm9pZCBh
ZGRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpIHsgbV9vYnNlcnZlcnMuYWRkKCZvYnNlcnZl
cik7IH0KLSAgICB2b2lkIHJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikgeyBtX29i
c2VydmVycy5yZW1vdmUoJm9ic2VydmVyKTsgfQotICAgIAogICAgIHZvaWQgY2xlYXJTdWJpbWFn
ZXMoKTsKIAogcHJpdmF0ZToKQEAgLTcwLDggKzUzLDYgQEAgcHJpdmF0ZToKICAgICBOYXRpdmVJ
bWFnZShQbGF0Zm9ybUltYWdlUHRyJiYsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAK
ICAgICBQbGF0Zm9ybUltYWdlUHRyIG1fcGxhdGZvcm1JbWFnZTsKLSAgICBIYXNoU2V0PE9ic2Vy
dmVyKj4gbV9vYnNlcnZlcnM7Ci0gICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIG1fcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyOwogfTsKIAogdXNpbmcgTmF0aXZlSW1hZ2VIYXNoTWFw
ID0gSGFzaE1hcDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFJlZjxOYXRpdmVJbWFnZT4+
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5n
UmVzb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ1Jl
c291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjYwNTVmODg5MjZmZmQ3NWFhNTYwZmJhZTdmOTcwOWRjYjk1
NjlhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1JlbmRlcmluZ1Jlc291cmNlLmgKQEAgLTAsMCArMSw2NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaW5jbHVkZSAiUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hTZXQuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9XZWFrUHRyLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgUmVuZGVy
aW5nUmVzb3VyY2UgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8UmVuZGVyaW5nUmVzb3Vy
Y2U+LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8UmVuZGVyaW5nUmVzb3VyY2U+IHsKK3B1YmxpYzoK
KyAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5PYnNl
cnZlcigpID0gZGVmYXVsdDsKKyAgICAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VSZW5kZXJpbmdS
ZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpID0gMDsKKyAgICBwcm90ZWN0ZWQ6
CisgICAgICAgIE9ic2VydmVyKCkgPSBkZWZhdWx0OworICAgIH07CisKKyAgICB2aXJ0dWFsIH5S
ZW5kZXJpbmdSZXNvdXJjZSgpCisgICAgeworICAgICAgICBmb3IgKGF1dG8gb2JzZXJ2ZXIgOiBt
X29ic2VydmVycykKKyAgICAgICAgICAgIG9ic2VydmVyLT5yZWxlYXNlUmVuZGVyaW5nUmVzb3Vy
Y2UobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIH0KKworICAgIFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSBjb25zdCB7
IHJldHVybiBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsgfQorCisgICAgdm9pZCBhZGRP
YnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpIHsgbV9vYnNlcnZlcnMuYWRkKCZvYnNlcnZlcik7
IH0KKyAgICB2b2lkIHJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikgeyBtX29ic2Vy
dmVycy5yZW1vdmUoJm9ic2VydmVyKTsgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVuZGVyaW5nUmVz
b3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikKKyAgICAgICAgOiBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcihyZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCisgICAgeworICAgIH0KKworICAgIEhhc2hTZXQ8T2JzZXJ2ZXIq
PiBtX29ic2VydmVyczsKKyAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZC5jcHAKaW5kZXggMzcyMDdkN2ZjNzgwYmZiM2E0YmQ3YzFiNGRjYzBlNjQ4
NTVkNTVlNi4uMmU2NmZkNGVkMDgwMDEzMTIzY2NjMDQ3YzMwMzQ5MTlhOTE1MWU3MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0zNzIsMTAgKzM3MiwxMCBAQCB2b2lkIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQ6OmRlbGV0ZUFsbEZvbnRzKCkKICAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUuZGVs
ZXRlQWxsRm9udHMoKTsKIH0KIAotdm9pZCBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNl
UmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6cmVsZWFzZVJlbmRl
cmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgbV9y
ZW1vdGVSZXNvdXJjZUNhY2hlLnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpOworICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5yZWxlYXNlUmVuZGVyaW5n
UmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpkaWRDcmVhdGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShEaXNwbGF5
TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU2hhcmVkTWVtb3J5
OjpJUENIYW5kbGUmIGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0
aW9uQnVmZmVySWRlbnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVBy
b2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oCmluZGV4IGU2Mzg5OTAzYjY1
MGJhOGQ5NzNkYWY5YjNkY2NhNjQ1MzU2ZjQ1ZjguLjgzNDRmMjIzZDdjZjdmMDQzYzZhN2NmOGQ0
ZjJlODhmOWNlNDA3OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9j
ZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0xMjMsNyArMTIzLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpI
YW5kbGUmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQg
Y2FjaGVGb250KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRz
KCk7Ci0gICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShXZWJD
b3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogICAgIHZvaWQgZGlkQ3JlYXRlU2hh
cmVkRGlzcGxheUxpc3RIYW5kbGUoV2ViQ29yZTo6RGlzcGxheUxpc3Q6Okl0ZW1CdWZmZXJJZGVu
dGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpOwogCiAgICAg
c3RydWN0IFBlbmRpbmdXYWtldXBJbmZvcm1hdGlvbiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLm1lc3NhZ2VzLmluCmluZGV4IDdkNjVjZTkwOWM1ODIwZjQ2YjAxZTZiZGVlY2RlYWE3MzM2
YWFmMjguLjQ4NDhjNGU3NGQxNjczYWM4ZjFiYjdmOGNkMjc5YjlmNDJiZTNmMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9S
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5
cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmln
aHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDcgKzMzLDcgQEAgbWVzc2FnZXMgLT4gUmVtb3Rl
UmVuZGVyaW5nQmFja2VuZCB7CiAgICAgQ2FjaGVGb250KElQQzo6Rm9udFJlZmVyZW5jZSBmb250
KQogICAgIERlbGV0ZUFsbEZvbnRzKCkKICAgICBEaWRDcmVhdGVTaGFyZWREaXNwbGF5TGlzdEhh
bmRsZShXZWJDb3JlOjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBoYW5kbGUsIFdlYkNvcmU6OlJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBkZXN0aW5hdGlvbkJ1ZmZlcklkZW50aWZpZXIpCi0gICAg
UmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgUmVsZWFzZVJlbmRlcmluZ1Jlc291
cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoR1BVX1BST0NFU1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VD
YWNoZS5jcHAKaW5kZXggODFkZGUwYmZmY2YwYmQ2Y2MxYzI4ZTVkZDI0NjM3NGIzNDY0NjI3OC4u
OTFkYWViNDIyMjY4NWFjZTUzOWYwNzA1Y2U1YTFmNDVhNjYzMTU5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6ZGVsZXRlQWxsRm9u
dHMoKQogICAgIG1fZm9udHMuY2xlYXIoKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hl
OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZTo6cmVsZWFz
ZVJlbmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgaWYgKG1faW1hZ2VCdWZmZXJzLnJlbW92ZShyZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oIGIv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuaApp
bmRleCAyY2VkOTA5ZjQ4MTEwYzY2NjU2ZGUxYmZlMzgxMWRiYWJhYWE5ZjRmLi40NGYwNzAwMjI1
MzcxOWI1Njg2NDYyZTUzMWVjY2FjODNiYjdjNzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Niw3ICs0
Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoUmVmPFdlYkNvcmU6Ok5h
dGl2ZUltYWdlPiYmKTsKICAgICB2b2lkIGNhY2hlRm9udChSZWY8V2ViQ29yZTo6Rm9udD4mJik7
CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygpOwotICAgIHZvaWQgcmVsZWFzZVJlbW90ZVJlc291
cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCByZWxl
YXNlUmVuZGVyaW5nUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KTsKIAogICAgIGNvbnN0IFdlYkNvcmU6OkltYWdlQnVmZmVySGFzaE1hcCYgaW1hZ2VCdWZmZXJz
KCkgY29uc3QgeyByZXR1cm4gbV9pbWFnZUJ1ZmZlcnM7IH0KICAgICBjb25zdCBXZWJDb3JlOjpO
YXRpdmVJbWFnZUhhc2hNYXAmIG5hdGl2ZUltYWdlcygpIGNvbnN0IHsgcmV0dXJuIG1fbmF0aXZl
SW1hZ2VzOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBo
aWNzL1JlbW90ZUltYWdlQnVmZmVyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCmluZGV4IGQ3YjkwYjU3MmRhNWZj
MTNjZDNiZDA4NmI0NzcxNGIxMGNkMzVjYTkuLmIyMDg1MzgyNzUwM2U1MmZiZjQxZWYwNTRkNGM2
ODc2ZTkyMjAwMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNjQsMTEgKzY0LDcg
QEAgcHVibGljOgogCiAgICAgflJlbW90ZUltYWdlQnVmZmVyUHJveHkoKQogICAgIHsKLSAgICAg
ICAgaWYgKCFtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSkKLSAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgZmx1c2hEcmF3aW5nQ29udGV4dCgpOwotICAgICAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS0+cmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KCkucmVsZWFzZUltYWdl
QnVmZmVyKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKLSAgICAgICAgbV9yZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHktPnJlbGVhc2VSZW1vdGVSZXNvdXJjZShtX3JlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcik7CiAgICAgfQogCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
IGNyZWF0ZUltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5jcHAKaW5kZXggNjFiNGM4MjQ5NTc2ZGUxMjhhOWFiZWQwOTI3ZjQxZWU0
MTYyYmU2ZS4uYjA4NDY5NGZhZGY3NmMzNTQyNGY5YzBlYjE2MGQzODdmYWZkYTYwMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMDAsMTIgKzIwMCwxMiBAQCB2
b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGVsZXRlQWxsRm9udHMoKQogICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OkRlbGV0ZUFsbEZvbnRzKCksIG1f
cmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCi12b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmRQcm94eTo6cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7CiAgICAgaWYgKHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciA9PSBtX2N1cnJlbnREZXN0aW5hdGlvbkltYWdlQnVmZmVySWRl
bnRpZmllcikKICAgICAgICAgbV9jdXJyZW50RGVzdGluYXRpb25JbWFnZUJ1ZmZlcklkZW50aWZp
ZXIgPSBXVEY6Om51bGxvcHQ7CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdC
YWNrZW5kOjpSZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
KSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CisgICAgc2VuZChNZXNzYWdlczo6UmVt
b3RlUmVuZGVyaW5nQmFja2VuZDo6UmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciksIG1fcmVuZGVyaW5nQmFja2VuZElkZW50aWZpZXIpOwogfQogCiB2
b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTo6ZGlkQ3JlYXRlSW1hZ2VCdWZmZXJCYWNr
ZW5kKEltYWdlQnVmZmVyQmFja2VuZEhhbmRsZSBoYW5kbGUsIFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kUHJveHkuaAppbmRleCA0OGZhMDY5ZGFhOGQzY2Q2ZDEyNDQyZGIzMzA2MDNjOTM2
Yjk3YjQ3Li5mN2RiMWYzMTQ0M2EwMjY2YzQ1OGQ0ODcxZWRlYWZmYzNmOGI0YmM0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTIsNyArOTIsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBjYWNoZU5hdGl2ZUltYWdlKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiwg
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGNhY2hlRm9u
dChSZWY8V2ViQ29yZTo6Rm9udD4mJik7CiAgICAgdm9pZCBkZWxldGVBbGxGb250cygpOwotICAg
IHZvaWQgcmVsZWFzZVJlbW90ZVJlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcik7CisgICAgdm9pZCByZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoV2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIGVudW0gY2xhc3MgRGlkUmVjZWl2ZUJh
Y2tlbmRDcmVhdGlvblJlc3VsdCA6IGJvb2wgewogICAgICAgICBSZWNlaXZlZEFueVJlc3BvbnNl
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCmluZGV4IDBjZTk0NWU3MDVkOTgy
NzBmZmIwYzkxMGY4YTVhYWMxZTAxN2FmNmYuLjY0ZjdiZDgyY2I0ZWRlNzdlNmVmYmJjYmVmYzhm
ZWFkZWIyNzg4NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3Jh
cGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDQsMTAg
KzQ0LDE0IEBAIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6flJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eSgpCiAgICAgICAgIGltYWdlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiB9CiAKLXZvaWQg
UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUltYWdlQnVmZmVyKFdlYkNvcmU6OkltYWdl
QnVmZmVyJiBpbWFnZUJ1ZmZlcikKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNo
ZUltYWdlQnVmZmVyKEltYWdlQnVmZmVyJiBpbWFnZUJ1ZmZlcikKIHsKICAgICBhdXRvIGFkZFJl
c3VsdCA9IG1faW1hZ2VCdWZmZXJzLmFkZChpbWFnZUJ1ZmZlci5yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIoKSwgbWFrZVdlYWtQdHIoaW1hZ2VCdWZmZXIpKTsKICAgICBBU1NFUlRfVU5VU0VE
KGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOworCisgICAgLy8gU2V0IGl0c2VsZiBh
cyBhbiBvYnNlcnZlciB0byBJbWFnZUJ1ZmZlciwgc28gcmVsZWFzZVJlbmRlcmluZ1Jlc291cmNl
KCkKKyAgICAvLyBnZXRzIGNhbGxlZCB3aGVuIEltYWdlQnVmZmVyIGlzIGJlaW5nIGRlbGVsZXRl
ZC4KKyAgICBpbWFnZUJ1ZmZlci5hZGRPYnNlcnZlcigqdGhpcyk7CiB9CiAKIEltYWdlQnVmZmVy
KiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlZEltYWdlQnVmZmVyKFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCkBAIC05Myw3ICs5
Nyw3IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZU5hdGl2ZUltYWdlKE5h
dGl2ZUltYWdlJiBpbWFnZSkKIAogICAgIG1fbmF0aXZlSW1hZ2VzLmFkZChpbWFnZS5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgbWFrZVdlYWtQdHIoaW1hZ2UpKTsKIAotICAgIC8vIFNl
dCBpdHNlbGYgYXMgYW4gb2JzZXJ2ZXIgdG8gTmF0aXZlSW1hZ2UsIHNvIHJlbGVhc2VOYXRpdmVJ
bWFnZSgpCisgICAgLy8gU2V0IGl0c2VsZiBhcyBhbiBvYnNlcnZlciB0byBOYXRpdmVJbWFnZSwg
c28gcmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKCkKICAgICAvLyBnZXRzIGNhbGxlZCB3aGVuIE5h
dGl2ZUltYWdlIGlzIGJlaW5nIGRlbGVsZXRlZC4KICAgICBpbWFnZS5hZGRPYnNlcnZlcigqdGhp
cyk7CiAKQEAgLTExNSwxMyArMTE5LDEzIEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
OjpjYWNoZUZvbnQoRm9udCYgZm9udCkKICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY2FjaGVGb250KG1ha2VSZWYoZm9udCkpOwogfQogCi12b2lkIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6cmVsZWFzZU5hdGl2ZUltYWdlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCit2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
ciByZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKCFtX25hdGl2ZUltYWdl
cy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSkKKyAgICBpZiAobV9pbWFnZUJ1
ZmZlcnMucmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikgJiYgIW1fbmF0aXZlSW1h
Z2VzLnJlbW92ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpKQogICAgICAgICByZXR1cm47
CiAKICAgICAvLyBUZWxsIHRoZSBHUFUgcHJvY2VzcyB0byByZW1vdmUgdGhpcyByZXNvdXJjZS4K
LSAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2Uo
cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5yZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlm
aWVyKTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVu
ZGVyaW5nVXBkYXRlKCkKQEAgLTEzOCw3ICsxNDIsNyBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQogCiAgICAgZm9yIChhdXRvJiBp
dGVtIDogbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXApIHsK
ICAgICAgICAgaWYgKG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24gLSBpdGVtLnZhbHVl
ID49IG1pbmltdW1SZW5kZXJpbmdVcGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSkKLSAgICAgICAg
ICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShp
dGVtLmtleSk7CisgICAgICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxl
YXNlUmVuZGVyaW5nUmVzb3VyY2UoaXRlbS5rZXkpOwogICAgIH0KIAogICAgICsrbV9jdXJyZW50
UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCmlu
ZGV4IDYxMDU4YzM1NzUxNzIwOWY0MDNlMzdmNDEyZDgxNjAxZGU4OGM0MzcuLmJiNjBmOTE3YzA5
NDJhZjkxZDc2MjQxZGQyODVlZDc2Mzc5YTQ3ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmRQcm94eTsKIAotY2xhc3MgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
IDogcHVibGljIFdlYkNvcmU6Ok5hdGl2ZUltYWdlOjpPYnNlcnZlciB7CitjbGFzcyBSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHkgOiBwdWJsaWMgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2U6Ok9i
c2VydmVyIHsKIHB1YmxpYzoKICAgICBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVu
ZGVyaW5nQmFja2VuZFByb3h5Jik7CiAgICAgflJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSgpOwpA
QCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIE5hdGl2ZUltYWdl
SGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBX
ZWFrUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPj47CiAgICAgCi0gICAgdm9pZCByZWxlYXNlTmF0
aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSBvdmVycmlkZTsK
KyAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpIG92ZXJyaWRlOwogCiAgICAgSW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1h
Z2VCdWZmZXJzOwogICAgIE5hdGl2ZUltYWdlSGFzaE1hcCBtX25hdGl2ZUltYWdlczsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418356</attachid>
            <date>2021-01-25 16:24:50 -0800</date>
            <delta_ts>2021-01-25 16:55:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220943-20210125162449.patch</filename>
            <type>text/plain</type>
            <size>34506</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxODY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI2ZDRmODdkNTVhNTc3
OGQ1Njg3Y2Y4OTVmNTMyYWRmOTk2ZjE1MS4uMWNhMDRmY2FmMTY3YTljNGZiNjFiMDRjMDVjZDQ2
NTM4NzFkMDkzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIxLTAxLTI1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW50cm9kdWNlIFJlbmRlcmluZ1Jlc291cmNlIGFuZCBtYWtlIGl0IHRoZSBiYXNlIG9mIEltYWdl
QnVmZmVyIGFuZCBOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwOTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTW92ZSBzbWFydCBwb2ludGVyIHN1cHBvcnQgYW5kIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBhbmQgb2JzZXJ2ZXJzJworICAgICAgICBtYW5hZ2VtZW50IHRvIHRo
aXMgY2xhc3MuIEltYWdlQnVmZmZlciBhbmQgTmF0aXZlSW1hZ2Ugd2lsbCBzaGFyZSB0aGlzIGNv
ZGUuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oOgorICAgICAgICAo
V2ViQ29yZTo6Q29uY3JldGVJbWFnZUJ1ZmZlcjo6Q29uY3JldGVJbWFnZUJ1ZmZlcik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkltYWdlQnVmZmVyOjpyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Ok5hdGl2ZUltYWdlOjpOYXRpdmVJbWFnZSk6CisgICAgICAgIChXZWJDb3JlOjpO
YXRpdmVJbWFnZTo6fk5hdGl2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9OYXRpdmVJbWFnZS5oOgorICAgICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2U6OnBs
YXRmb3JtSW1hZ2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2U6OnJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3Jl
OjpOYXRpdmVJbWFnZTo6YWRkT2JzZXJ2ZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
TmF0aXZlSW1hZ2U6OnJlbW92ZU9ic2VydmVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9SZW5kZXJpbmdSZXNvdXJjZS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlOjp+UmVuZGVyaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2U6OnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZTo6YWRkT2JzZXJ2ZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2U6OnJlbW92ZU9ic2VydmVyKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlOjpSZW5kZXJpbmdSZXNvdXJjZSk6CisKIDIw
MjEtMDEtMjUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBv
cnQgcGVyY2VudGFnZXMgd2hlbiBwYXJzaW5nIGNvbG9yKHNyZ2IgLi4uKSBhbmQgY29sb3IoZGlz
cGxheS1wMyAuLi4pIHBlci1zcGVjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg4ODIwMGVmMTU4ZTNkNTJlMjgwMWU0
NjBjZDIxZDgzN2Y1ZTU2NmUuLjU2M2I3NjVhMmFhYzdjZTM5ZTJhZWMxZmY4YjE3YTlmMjcwNGQ3
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDEtMjUgIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBJbnRyb2R1Y2Ug
UmVuZGVyaW5nUmVzb3VyY2UgYW5kIG1ha2UgaXQgdGhlIGJhc2Ugb2YgSW1hZ2VCdWZmZXIgYW5k
IE5hdGl2ZUltYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjA5NDMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW5hbWUgcmVsZWFzZVJlbW90ZVJlc291cmNlKCkgdG8gcmVsZWFzZVJlbmRlcmluZ1Jl
c291cmNlKCkuCisKKyAgICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmQuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpy
ZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJp
bmdCYWNrZW5kOjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5oOgorICAgICAgICAqIEdQ
VVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBHUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVuZGVyaW5nUmVzb3Vy
Y2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVtb3Rl
UmVzb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZUltYWdlQnVmZmVyUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlSW1hZ2VCdWZmZXJQ
cm94eTo6flJlbW90ZUltYWdlQnVmZmVyUHJveHkpOgorICAgICAgICBSZWxlYXNpbmcgdGhlIFJl
bW90ZUltYWdlQnVmZmVyIGZyb20gV2ViUHJvY2VzcyBhbmQgR1BVUHJvY2VzcyB3aWxsIGJlCisg
ICAgICAgIGhhbmRsZWQgYnkgdGhlIGRlc3RydWN0b3Igb2YgUmVuZGVyaW5nUmVzb3VyY2Ugd2hl
biBpdCBjYWxscyB0aGUgb2JzZXJ2ZXIsCisgICAgICAgIHdoaWNoIGlzIFJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eSwgdG8gcmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKCkuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk6OnJlbGVhc2VSZW5k
ZXJpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQ
cm94eTo6cmVsZWFzZVJlbW90ZVJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuaDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6On5SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OmNhY2hlSW1hZ2VCdWZmZXIpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHk6OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VJbWFnZUJ1
ZmZlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eTo6cmVsZWFzZU5hdGl2ZUltYWdlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDoKKwogMjAyMS0wMS0yNSAgQWRp
dHlhIEtlZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gT2JzY3Vy
ZWQgZWxlbWVudHMgc2hvdWxkIG5vdCBiZSBmb2N1c2FibGUgdXNpbmcgdGhlIGFjY2Vzc29yeSBi
YXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCAwNTNiZDg3ZGE3Y2RhODQ1MWFmMTNlZGIzMWMxMzhhZjY2NDU5NWUyLi4wOTVhMmZk
ZDNlZTM4NjNjZmY0MmVhMmM4YjY5ZTIyNGFlYzE3OGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTk4LDYgKzIxOTgsNyBA
QAogCQk3MjZENTZFMjI1M0FFMjhEMDAwMkVGOTAgLyogUGxhdGZvcm1JbWFnZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI2RDU2RTEyNTNBRTA0MzAw
MDJFRjkwIC8qIFBsYXRmb3JtSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk3MjZENTZFMzI1M0FFMzY2MDAwMkVGOTAgLyogTmF0aXZlSW1h
Z2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1QTMz
NkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyN0E3RjNBMjQwNzhCODQwMDREMjkzMSAv
KiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQkFDM0FCMjNFMUU1NDQwMDhENzQxQyAvKiBJbWFnZUJ1
ZmZlcklPU3VyZmFjZUJhY2tlbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OworCQk3MjkzMDM5QzI1QkY2RUFFMDA4ODYwQTEgLyogUmVuZGVyaW5nUmVz
b3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcy
OTMwMzlBMjVCRjZFQUQwMDg4NjBBMSAvKiBSZW5kZXJpbmdSZXNvdXJjZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlCQzY3MjNENkE1MzIw
MENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxw
aGFQcmVtdWx0aXBsaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTcyOTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2Rl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2
NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOUQwNTMwMjUzMTQyNDMwMDQyMjA5OCAv
KiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwpAQCAtMTAxNDgsNiArMTAxNDksNyBAQAogCQk3MjdBRkVEMTFBMkVBNkEw
MDAwNDQyRTggLyogRVhUc1JHQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBFWFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QUZFRDIx
QTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVEMzFB
MkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRVhU
c1JHQi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyOTMwMzlBMjVCRjZFQUQw
MDg4NjBBMSAvKiBSZW5kZXJpbmdSZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBSZW5kZXJpbmdSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NzQ3LDYgKzI2NzQ5LDcgQEAKIAkJCQkwNzNB
MTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovLAogCQkJCTA3
M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovLAogCQkJCTcy
OTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8sCisJCQkJNzI5MzAz
OUEyNUJGNkVBRDAwODg2MEExIC8qIFJlbmRlcmluZ1Jlc291cmNlLmggKi8sCiAJCQkJNzI5RDA1
MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oICovLAog
CQkJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi8sCiAJCQkJ
QTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi8sCkBAIC0zNDI0NSw2
ICszNDI0OCw3IEBACiAJCQkJMDhGMkYwMEExMjEzRTYxNzAwRENFQzQ4IC8qIFJlbmRlckltYWdl
UmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NjQxRDQ4MTIxNDJGN0QwMDhERTlGNiAv
KiBSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNzI5
OUJDNjgyM0Q2QTUzRTAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICovLAor
CQkJCTcyOTMwMzlDMjVCRjZFQUUwMDg4NjBBMSAvKiBSZW5kZXJpbmdSZXNvdXJjZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzI5RDA1MzAyNTMxNDI0MzAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU2QzdDNEIyMjEyMzk5NzAwOUIw
NkNBIC8qIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNF
QTQ4NzgwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlcklubGluZS5oIGluIEhlYWRlcnMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdl
QnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUltYWdl
QnVmZmVyLmgKaW5kZXggMWYyNDViY2ViYTcyY2UxMzdlOTBjNjFlNTVmNTFhMzM4MWI4MDY4NS4u
ZTY4NGY4NGE4NzkyZWFhYWQzNmNkNDQyMGYwOTRlZWU4YmU1MDUyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIuaApA
QCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTU4LDkgKzU4LDkgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgQ29uY3JldGVJbWFnZUJ1
ZmZlcihjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMsIHN0
ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kID0gbnVsbHB0ciwgUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciA9IFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKLSAgICAgICAgOiBtX3BhcmFtZXRlcnMo
cGFyYW1ldGVycykKKyAgICAgICAgOiBJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpCisgICAgICAgICwgbV9wYXJhbWV0ZXJzKHBhcmFtZXRlcnMpCiAgICAgICAgICwgbV9i
YWNrZW5kKFdURk1vdmUoYmFja2VuZCkpCi0gICAgICAgICwgbV9yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIHsKICAgICB9CiAKQEAg
LTczLDggKzczLDYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY2xlYXJCYWNrZW5kKCkgb3ZlcnJp
ZGUgeyBtX2JhY2tlbmQgPSBudWxscHRyOyB9CiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kKiBlbnN1
cmVCYWNrZW5kQ3JlYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFja2VuZC5nZXQo
KTsgfQogCi0gICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyOyB9Ci0KICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQoKSBjb25zdCBvdmVy
cmlkZQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fYmFja2VuZCk7CkBAIC0yOTYsNyArMjk0LDYg
QEAgcHJvdGVjdGVkOgogCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzIG1fcGFy
YW1ldGVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+IG1fYmFja2VuZDsKLSAg
ICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCAzNmQ3NGNhMzlkZTE3Y2QwM2MxM2Ji
NzVlNGQ1ZTM4NDhjMzNlY2ZlLi5lYWFiN2YxZjgxMTE3YTM3ODUwZjczY2RlYmU4MjI3YTEyZmQ1
NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVmZmVy
LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IE5pa29sYXMgWmlt
bWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEw
IFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28uIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKQEAgLTMwLDkgKzMwLDcgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlzdEZs
dXNoSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZC5oIgogI2luY2x1
ZGUgIlJlbmRlcmluZ01vZGUuaCIKLSNpbmNsdWRlICJSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9XZWFrUHRy
Lmg+CisjaW5jbHVkZSAiUmVuZGVyaW5nUmVzb3VyY2UuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCkBAIC00Miw3ICs0MCw3IEBAIGNsYXNzIERyYXdpbmdDb250ZXh0Owogc3RydWN0IEl0ZW1C
dWZmZXJIYW5kbGU7CiB9CiAKLWNsYXNzIEltYWdlQnVmZmVyIDogcHVibGljIFRocmVhZFNhZmVS
ZWZDb3VudGVkPEltYWdlQnVmZmVyPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEltYWdlQnVmZmVy
PiB7CitjbGFzcyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBSZW5kZXJpbmdSZXNvdXJjZSB7CiBwdWJs
aWM6CiAgICAgLy8gV2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBmYWls
dXJlLgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNyZWF0
ZShjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlzdCwg
UmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFjZSA9
IENvbG9yU3BhY2U6OlNSR0IsIFBpeGVsRm9ybWF0ID0gUGl4ZWxGb3JtYXQ6OkJHUkE4LCBjb25z
dCBIb3N0V2luZG93KiA9IG51bGxwdHIpOwpAQCAtNzEsNyArNjksNiBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0ID0gMDsKICAgICB2
aXJ0dWFsIGJvb2wgY2FuTWFwQmFja2luZ1N0b3JlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwg
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogCiAgICAgdmlydHVhbCBHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29udGV4dCgpID0gMDsK
QEAgLTEzNCw5ICsxMzEsOSBAQCBwdWJsaWM6CiAgICAgLy8gd2l0aCB0ZXh0dXJlcyB0aGF0IGFy
ZSBSR0Igb3IgUkdCQSBmb3JtYXQsIGFuZCBVTlNJR05FRF9CWVRFIHR5cGUuCiAgICAgdmlydHVh
bCBib29sIGNvcHlUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCYsIEdDR0xlbnVt
LCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0ID0gMDsKLSAgICAK
KwogcHJvdGVjdGVkOgotICAgIEltYWdlQnVmZmVyKCkgPSBkZWZhdWx0OworICAgIHVzaW5nIFJl
bmRlcmluZ1Jlc291cmNlOjpSZW5kZXJpbmdSZXNvdXJjZTsKIAogICAgIHZpcnR1YWwgUmVmUHRy
PE5hdGl2ZUltYWdlPiBzaW5rSW50b05hdGl2ZUltYWdlKCkgPSAwOwogICAgIHZpcnR1YWwgUmVm
UHRyPEltYWdlPiBzaW5rSW50b0ltYWdlKFByZXNlcnZlUmVzb2x1dGlvbiA9IFByZXNlcnZlUmVz
b2x1dGlvbjo6Tm8pID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL05hdGl2ZUltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L05hdGl2ZUltYWdlLmNwcAppbmRleCAwYTMxNTU4NTAzNDk1ZTJkZTkzN2U3MjY5MzFlYzc4ODBj
ZjY5YTI3Li4yZTFmYjg5ZDhkNmYxNmY0YzI3NDdhMDE4NzFhNjhlZmRlMGZhNDdmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuY3BwCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjYs
OCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdlLmgi
CiAKLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLQogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE5hdGl2ZUltYWdlOjpjcmVhdGUoUGxhdGZvcm1JbWFn
ZVB0ciYmIHBsYXRmb3JtSW1hZ2UsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpCkBAIC0zOCwxNSArMzYsOSBAQCBSZWZQdHI8TmF0aXZlSW1h
Z2U+IE5hdGl2ZUltYWdlOjpjcmVhdGUoUGxhdGZvcm1JbWFnZVB0ciYmIHBsYXRmb3JtSW1hZ2Us
IFJlbmRlcgogfQogCiBOYXRpdmVJbWFnZTo6TmF0aXZlSW1hZ2UoUGxhdGZvcm1JbWFnZVB0ciYm
IHBsYXRmb3JtSW1hZ2UsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpCi0gICAgOiBtX3BsYXRmb3JtSW1hZ2UoV1RGTW92ZShwbGF0Zm9ybUlt
YWdlKSkKLSAgICAsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcikKLXsKLX0KLQotTmF0aXZlSW1hZ2U6On5OYXRpdmVJbWFnZSgpCisgICAg
OiBSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAgLCBt
X3BsYXRmb3JtSW1hZ2UoV1RGTW92ZShwbGF0Zm9ybUltYWdlKSkKIHsKLSAgICBmb3IgKGF1dG8g
b2JzZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAgb2JzZXJ2ZXItPnJlbGVhc2VOYXRpdmVJ
bWFnZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05h
dGl2ZUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFn
ZS5oCmluZGV4IDk0NWI4ZGU5OGQ0Yjk4OGNlZDlhMjY1ZDE2ZTU5NDAxMzFkMTM4MGMuLmRhNjY0
NGQwNDlmMmY3NTJkYmM0MzI2MzgxNjk5YTZhMGY2YjZiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgogICog
Q29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwIEluYy4KICAqCkBAIC0zMCwzOSArMzAsMjIg
QEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybUltYWdlLmgiCi0jaW5jbHVkZSAiUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLmgi
CisjaW5jbHVkZSAiUmVuZGVyaW5nUmVzb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1hcC5o
PgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
LSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IE5hdGl2ZUltYWdlIDogcHVibGljIFJlZkNvdW50ZWQ8TmF0aXZlSW1hZ2U+LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8TmF0aXZlSW1hZ2U+IHsKK2NsYXNzIE5hdGl2ZUltYWdlIDogcHVibGljIFJl
bmRlcmluZ1Jlc291cmNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoK
LSAgICBjbGFzcyBPYnNlcnZlciB7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5PYnNl
cnZlcigpID0gZGVmYXVsdDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VOYXRpdmVJbWFn
ZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpID0gMDsKLSAgICBwcm90ZWN0ZWQ6Ci0gICAg
ICAgIE9ic2VydmVyKCkgPSBkZWZhdWx0OwotICAgIH07Ci0KICAgICBzdGF0aWMgV0VCQ09SRV9F
WFBPUlQgUmVmUHRyPE5hdGl2ZUltYWdlPiBjcmVhdGUoUGxhdGZvcm1JbWFnZVB0ciYmLCBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI6Omdl
bmVyYXRlKCkpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgfk5hdGl2ZUltYWdlKCk7Ci0KICAgICBj
b25zdCBQbGF0Zm9ybUltYWdlUHRyJiBwbGF0Zm9ybUltYWdlKCkgY29uc3QgeyByZXR1cm4gbV9w
bGF0Zm9ybUltYWdlOyB9Ci0gICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBJbnRTaXplIHNpemUoKSBjb25zdDsK
ICAgICBib29sIGhhc0FscGhhKCkgY29uc3Q7CiAgICAgQ29sb3Igc2luZ2xlUGl4ZWxTb2xpZENv
bG9yKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikg
eyBtX29ic2VydmVycy5hZGQoJm9ic2VydmVyKTsgfQotICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIo
T2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOyB9Ci0g
ICAgCiAgICAgdm9pZCBjbGVhclN1YmltYWdlcygpOwogCiBwcml2YXRlOgpAQCAtNzAsOCArNTMs
NiBAQCBwcml2YXRlOgogICAgIE5hdGl2ZUltYWdlKFBsYXRmb3JtSW1hZ2VQdHImJiwgUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIFBsYXRmb3JtSW1hZ2VQdHIgbV9wbGF0Zm9y
bUltYWdlOwotICAgIEhhc2hTZXQ8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKLSAgICBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7CiB9Owog
CiB1c2luZyBOYXRpdmVJbWFnZUhhc2hNYXAgPSBIYXNoTWFwPFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllciwgUmVmPE5hdGl2ZUltYWdlPj47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nUmVzb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjA1NWY4ODky
NmZmZDc1YWE1NjBmYmFlN2Y5NzA5ZGNiOTU2OWFlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nUmVzb3VyY2UuaApAQCAtMCwwICsx
LDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJpbmdSZXNvdXJjZSA6IHB1YmxpYyBUaHJlYWRTYWZl
UmVmQ291bnRlZDxSZW5kZXJpbmdSZXNvdXJjZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxSZW5k
ZXJpbmdSZXNvdXJjZT4geworcHVibGljOgorICAgIGNsYXNzIE9ic2VydmVyIHsKKyAgICBwdWJs
aWM6CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0OworICAgICAgICB2aXJ0
dWFsIHZvaWQgcmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikgPSAwOworICAgIHByb3RlY3RlZDoKKyAgICAgICAgT2JzZXJ2ZXIoKSA9IGRlZmF1bHQ7
CisgICAgfTsKKworICAgIHZpcnR1YWwgflJlbmRlcmluZ1Jlc291cmNlKCkKKyAgICB7CisgICAg
ICAgIGZvciAoYXV0byBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAgb2JzZXJ2
ZXItPnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cik7CisgICAgfQorCisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyOyB9CisKKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikgeyBt
X29ic2VydmVycy5hZGQoJm9ic2VydmVyKTsgfQorICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2Jz
ZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOyB9CisKK3By
b3RlY3RlZDoKKyAgICBSZW5kZXJpbmdSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZp
ZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICA6IG1fcmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICB7CisgICAg
fQorCisgICAgSGFzaFNldDxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOworICAgIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsKK307CisKK30g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BV
UHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCAzMmFmZDMx
MGJlNWMzMDMwNjQ3ZDcyNThjMjNmZGEwMTAyYjJkNzc1Li5mNDY5NDNjOTA4NTBkYzkzYzNkNDcw
MDIwZWI5ZjkzZmU5ODVlZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3Mv
Z3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9H
UFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3NSwxMCArMzc1
LDEwIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVsZXRlQWxsRm9udHMoKQogICAg
IG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5kZWxldGVBbGxGb250cygpOwogfQogCi12b2lkIFJlbW90
ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKLSAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUucmVsZWFzZVJlbW90
ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgbV9yZW1vdGVSZXNv
dXJjZUNhY2hlLnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRpZENyZWF0ZVNoYXJl
ZERpc3BsYXlMaXN0SGFuZGxlKERpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaGFuZGxlLCBSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tl
bmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdC
YWNrZW5kLmgKaW5kZXggZTYzODk5MDNiNjUwYmE4ZDk3M2RhZjliM2RjY2E2NDUzNTZmNDVmOC4u
ODM0NGYyMjNkN2NmN2YwNDNjNmE3Y2Y4ZDRmMmU4OGY5Y2U0MDc4ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFj
a2VuZC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTEyMyw3ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FjaGVOYXRpdmVJbWFn
ZShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+JiYp
OwogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKLSAgICB2b2lkIHJlbGVhc2VSZW1vdGVSZXNv
dXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgcmVs
ZWFzZVJlbmRlcmluZ1Jlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cik7CiAgICAgdm9pZCBkaWRDcmVhdGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShXZWJDb3JlOjpE
aXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6SVBD
SGFuZGxlJiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0aW9u
QnVmZmVySWRlbnRpZmllcik7CiAKICAgICBzdHJ1Y3QgUGVuZGluZ1dha2V1cEluZm9ybWF0aW9u
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KaW5kZXggN2Q2NWNlOTA5
YzU4MjBmNDZiMDFlNmJkZWVjZGVhYTczMzZhYWYyOC4uNDg0OGM0ZTc0ZDE2NzNhYzhmMWJiN2Y4
Y2QyNzliOWY0MmJlM2YwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMu
aW4KQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMsNyAr
MzMsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHsKICAgICBDYWNoZUZv
bnQoSVBDOjpGb250UmVmZXJlbmNlIGZvbnQpCiAgICAgRGVsZXRlQWxsRm9udHMoKQogICAgIERp
ZENyZWF0ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJdGVt
QnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBDSGFu
ZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0
aW9uQnVmZmVySWRlbnRpZmllcikKLSAgICBSZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikK
KyAgICBSZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9n
cmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAppbmRleCA4MWRkZTBiZmZjZjBiZDZj
YzFjMjhlNWRkMjQ2Mzc0YjM0NjQ2Mjc4Li45MWRhZWI0MjIyNjg1YWNlNTM5ZjA3MDVjZTVhMWY0
NWE2NjMxNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3Mv
UmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dy
YXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBSZW1vdGVS
ZXNvdXJjZUNhY2hlOjpkZWxldGVBbGxGb250cygpCiAgICAgbV9mb250cy5jbGVhcigpOwogfQog
Ci12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBS
ZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoUmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBpZiAo
bV9pbWFnZUJ1ZmZlcnMucmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCiAgICAg
ICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGlj
cy9SZW1vdGVSZXNvdXJjZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCmluZGV4IDJjZWQ5MDlmNDgxMTBjNjY2NTZkZTFiZmUz
ODExZGJhYmFhYTlmNGYuLjQ0ZjA3MDAyMjUzNzE5YjU2ODY0NjJlNTMxZWNjYWM4M2JiN2M3NDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNv
dXJjZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAy
MC0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FjaGVO
YXRpdmVJbWFnZShSZWY8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+JiYpOwogICAgIHZvaWQgY2FjaGVG
b250KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7Ci0g
ICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShXZWJDb3JlOjpS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgY29uc3QgV2ViQ29yZTo6SW1hZ2VC
dWZmZXJIYXNoTWFwJiBpbWFnZUJ1ZmZlcnMoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVmZmVy
czsgfQogICAgIGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlSGFzaE1hcCYgbmF0aXZlSW1hZ2Vz
KCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVJbWFnZXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclBy
b3h5LmgKaW5kZXggZDdiOTBiNTcyZGE1ZmMxM2NkM2JkMDg2YjQ3NzE0YjEwY2QzNWNhOS4uYjIw
ODUzODI3NTAzZTUyZmJmNDFlZjA1NGQ0YzY4NzZlOTIyMDAxMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1
ZmZlclByb3h5LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAy
MSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC02NCwxMSArNjQsNyBAQCBwdWJsaWM6CiAKICAgICB+UmVtb3RlSW1hZ2VC
dWZmZXJQcm94eSgpCiAgICAgewotICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFja2Vu
ZFByb3h5KQotICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBmbHVzaERyYXdpbmdDb250ZXh0
KCk7Ci0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkoKS5yZWxlYXNlSW1hZ2VCdWZmZXIobV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVsZWFzZVJl
bW90ZVJlc291cmNlKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAKICAg
ICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCA2MWI0Yzgy
NDk1NzZkZTEyOGE5YWJlZDA5MjdmNDFlZTQxNjJiZTZlLi5iMDg0Njk0ZmFkZjc2YzM1NDI0Zjlj
MGViMTYwZDM4N2ZhZmRhNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKQEAgLTIwMCwxMiArMjAwLDEyIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpkZWxldGVBbGxGb250cygpCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5nQmFj
a2VuZDo6RGVsZXRlQWxsRm9udHMoKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7CiB9
CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3Vy
Y2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVuZGVyaW5nUmVz
b3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikKIHsKICAgICBpZiAocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyID09IG1fY3VycmVu
dERlc3RpbmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVyKQogICAgICAgICBtX2N1cnJlbnREZXN0
aW5hdGlvbkltYWdlQnVmZmVySWRlbnRpZmllciA9IFdURjo6bnVsbG9wdDsKIAotICAgIHNlbmQo
TWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbGVhc2VSZW1vdGVSZXNvdXJjZShy
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlmaWVy
KTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZWxlYXNlUmVu
ZGVyaW5nUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJpbmdC
YWNrZW5kSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
OjpkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxlIGhh
bmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IDQ4ZmEwNjlk
YWE4ZDNjZDZkMTI0NDJkYjMzMDYwM2M5MzZiOTdiNDcuLmY3ZGIxZjMxNDQzYTAyNjZjNDU4ZDQ4
NzFlZGVhZmZjM2Y4YjRiYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29uc3Qg
U2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIpOwogICAgIHZvaWQgY2FjaGVGb250KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKICAgICB2
b2lkIGRlbGV0ZUFsbEZvbnRzKCk7Ci0gICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2Vi
Q29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VSZW5k
ZXJpbmdSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAg
ICAgZW51bSBjbGFzcyBEaWRSZWNlaXZlQmFja2VuZENyZWF0aW9uUmVzdWx0IDogYm9vbCB7CiAg
ICAgICAgIFJlY2VpdmVkQW55UmVzcG9uc2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5jcHAKaW5kZXggMGNlOTQ1ZTcwNWQ5ODI3MGZmYjBjOTEwZjhhNWFhYzFlMDE3YWY2Zi4uYTM4
NjdlMTgyZmIwMGVhMjMwNjAxZTNiMDM4YmQ5YTMyZDc4NjcxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC00MCwxNCArNDAsMjEgQEAgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
JgogCiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6On5SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHko
KQogeworICAgIGZvciAoYXV0byYgaW1hZ2VCdWZmZXIgOiBtX2ltYWdlQnVmZmVycy52YWx1ZXMo
KSkKKyAgICAgICAgaW1hZ2VCdWZmZXItPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKwogICAgIGZv
ciAoYXV0byYgaW1hZ2UgOiBtX25hdGl2ZUltYWdlcy52YWx1ZXMoKSkKICAgICAgICAgaW1hZ2Ut
PnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OmNhY2hlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVyKQor
dm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIoSW1hZ2VCdWZm
ZXImIGltYWdlQnVmZmVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZlcnMu
YWRkKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBtYWtlV2Vha1B0
cihpbWFnZUJ1ZmZlcikpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1bHQu
aXNOZXdFbnRyeSk7CisKKyAgICAvLyBTZXQgaXRzZWxmIGFzIGFuIG9ic2VydmVyIHRvIEltYWdl
QnVmZmVyLCBzbyByZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoKQorICAgIC8vIGdldHMgY2FsbGVk
IHdoZW4gSW1hZ2VCdWZmZXIgaXMgYmVpbmcgZGVsZWxldGVkLgorICAgIGltYWdlQnVmZmVyLmFk
ZE9ic2VydmVyKCp0aGlzKTsKIH0KIAogSW1hZ2VCdWZmZXIqIFJlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eTo6Y2FjaGVkSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTU1LDEyICs2Miw2IEBAIEltYWdlQnVmZmVyKiBS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlZEltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpCiAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXJzLmdldChyZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIpLmdldCgpOwogfQogCi12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6
cmVsZWFzZUltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCi17Ci0gICAgYm9vbCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJzLnJl
bW92ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIEFTU0VSVF9VTlVTRUQoZm91
bmQsIGZvdW5kKTsKLX0KLQogaW5saW5lIHN0YXRpYyBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBj
cmVhdGVTaGFyZWFibGVCaXRtYXBGcm9tTmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmIGltYWdlKQog
ewogICAgIGF1dG8gaW1hZ2VTaXplID0gaW1hZ2Uuc2l6ZSgpOwpAQCAtOTMsNyArOTQsNyBAQCB2
b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVOYXRpdmVJbWFnZShOYXRpdmVJbWFn
ZSYgaW1hZ2UpCiAKICAgICBtX25hdGl2ZUltYWdlcy5hZGQoaW1hZ2UucmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKGltYWdlKSk7CiAKLSAgICAvLyBTZXQgaXRzZWxm
IGFzIGFuIG9ic2VydmVyIHRvIE5hdGl2ZUltYWdlLCBzbyByZWxlYXNlTmF0aXZlSW1hZ2UoKQor
ICAgIC8vIFNldCBpdHNlbGYgYXMgYW4gb2JzZXJ2ZXIgdG8gTmF0aXZlSW1hZ2UsIHNvIHJlbGVh
c2VSZW5kZXJpbmdSZXNvdXJjZSgpCiAgICAgLy8gZ2V0cyBjYWxsZWQgd2hlbiBOYXRpdmVJbWFn
ZSBpcyBiZWluZyBkZWxlbGV0ZWQuCiAgICAgaW1hZ2UuYWRkT2JzZXJ2ZXIoKnRoaXMpOwogCkBA
IC0xMTUsMTMgKzExNiwxMyBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVG
b250KEZvbnQmIGZvbnQpCiAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNh
Y2hlRm9udChtYWtlUmVmKGZvbnQpKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OnJlbGVhc2VOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJl
bGVhc2VSZW5kZXJpbmdSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmICghbV9uYXRpdmVJbWFnZXMucmVtb3Zl
KHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCisgICAgaWYgKCFtX2ltYWdlQnVmZmVycy5y
ZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAmJiAhbV9uYXRpdmVJbWFnZXMucmVt
b3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybjsKIAogICAg
IC8vIFRlbGwgdGhlIEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0aGlzIHJlc291cmNlLgotICAgIG1f
cmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwog
fQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdV
cGRhdGUoKQpAQCAtMTM4LDcgKzEzOSw3IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCiAKICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBt
X2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkgewogICAgICAg
ICBpZiAobV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0gbWlu
aW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlKQotICAgICAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKGl0ZW0ua2V5
KTsKKyAgICAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW5k
ZXJpbmdSZXNvdXJjZShpdGVtLmtleSk7CiAgICAgfQogCiAgICAgKyttX2N1cnJlbnRSZW5kZXJp
bmdVcGRhdGVWZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKaW5kZXggNjEw
NThjMzU3NTE3MjA5ZjQwM2UzN2Y0MTJkODE2MDFkZTg4YzQzNy4uY2UxMGNjZGQ5ODNhNDBlMGQ2
ZGZjOTQ5ODExMzA0MjRmZTNkZmRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5o
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDAsMTQgKzQwLDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk7CiAKLWNsYXNzIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSA6IHB1
YmxpYyBXZWJDb3JlOjpOYXRpdmVJbWFnZTo6T2JzZXJ2ZXIgeworY2xhc3MgUmVtb3RlUmVzb3Vy
Y2VDYWNoZVByb3h5IDogcHVibGljIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlOjpPYnNlcnZl
ciB7CiBwdWJsaWM6CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eSYpOwogICAgIH5SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKTsKIAogICAg
IHZvaWQgY2FjaGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpOwogICAgIFdlYkNv
cmU6OkltYWdlQnVmZmVyKiBjYWNoZWRJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgcmVsZWFzZUltYWdlQnVmZmVyKFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2Uo
V2ViQ29yZTo6TmF0aXZlSW1hZ2UmKTsKIApAQCAtNjEsNyArNjAsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIHVzaW5nIE5hdGl2ZUltYWdlSGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdlPj47
CiAgICAgCi0gICAgdm9pZCByZWxlYXNlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdSZXNv
dXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIG92ZXJyaWRlOwogCiAg
ICAgSW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwogICAgIE5hdGl2ZUltYWdlSGFz
aE1hcCBtX25hdGl2ZUltYWdlczsK
</data>
<flag name="commit-queue"
          id="436309"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>418357</attachid>
            <date>2021-01-25 16:50:18 -0800</date>
            <delta_ts>2023-03-23 14:11:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220943-20210125165017.patch</filename>
            <type>text/plain</type>
            <size>35136</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcxODY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI2ZDRmODdkNTVhNTc3
OGQ1Njg3Y2Y4OTVmNTMyYWRmOTk2ZjE1MS4uNWU4YmEyNDVlM2I0NzQ0ZTY0ZmY5YjhkNGQ2Yzc5
MTNjNjI0MzlmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTAxLTI1ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
SW50cm9kdWNlIFJlbmRlcmluZ1Jlc291cmNlIGFuZCBtYWtlIGl0IHRoZSBiYXNlIG9mIEltYWdl
QnVmZmVyIGFuZCBOYXRpdmVJbWFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjIwOTQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTW92ZSBzbWFydCBwb2ludGVyIHN1cHBvcnQgYW5kIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllciBhbmQgb2JzZXJ2ZXJzJworICAgICAgICBtYW5hZ2VtZW50IHRvIHRo
aXMgY2xhc3MuIEltYWdlQnVmZmZlciBhbmQgTmF0aXZlSW1hZ2Ugd2lsbCBzaGFyZSB0aGlzIGNv
ZGUuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0
ZUltYWdlQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpDb25jcmV0ZUltYWdlQnVmZmVyOjpD
b25jcmV0ZUltYWdlQnVmZmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1
ZmZlci5oOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VCdWZmZXI6OnJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
TmF0aXZlSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TmF0aXZlSW1hZ2U6Ok5hdGl2ZUlt
YWdlKToKKyAgICAgICAgKFdlYkNvcmU6Ok5hdGl2ZUltYWdlOjp+TmF0aXZlSW1hZ2UpOiBEZWxl
dGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpOYXRpdmVJbWFnZTo6cGxhdGZvcm1JbWFnZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpOYXRpdmVJbWFnZTo6cmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Ok5hdGl2ZUltYWdlOjphZGRPYnNlcnZlcik6IERl
bGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpOYXRpdmVJbWFnZTo6cmVtb3ZlT2JzZXJ2ZXIpOiBE
ZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ1Jlc291cmNlLmg6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2U6On5SZW5kZXJpbmdS
ZXNvdXJjZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZTo6cmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlOjphZGRPYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJj
ZTo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2U6
OlJlbmRlcmluZ1Jlc291cmNlKToKKwogMjAyMS0wMS0yNSAgU2FtIFdlaW5pZyAgPHdlaW5pZ0Bh
cHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBwZXJjZW50YWdlcyB3aGVuIHBhcnNpbmcgY29s
b3Ioc3JnYiAuLi4pIGFuZCBjb2xvcihkaXNwbGF5LXAzIC4uLikgcGVyLXNwZWMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggODg4MjAwZWYxNThlM2Q1MmUyODAxZTQ2MGNkMjFkODM3ZjVlNTY2ZS4uNTYzYjc2NWEyYWFj
N2NlMzllMmFlYzFmZjhiMTdhOWYyNzA0ZDc2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAor
MjAyMS0wMS0yNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAg
ICBbR1BVIFByb2Nlc3NdIEludHJvZHVjZSBSZW5kZXJpbmdSZXNvdXJjZSBhbmQgbWFrZSBpdCB0
aGUgYmFzZSBvZiBJbWFnZUJ1ZmZlciBhbmQgTmF0aXZlSW1hZ2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDk0MworCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbmFtZSByZWxlYXNlUmVtb3RlUmVzb3Vy
Y2UoKSB0byByZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoKS4KKworICAgICAgICAqIEdQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNvdXJj
ZSk6IERlbGV0ZWQuCisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmg6CisgICAgICAgICogR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLm1lc3NhZ2VzLmluOgorICAgICAgICAqIEdQVVByb2Nlc3MvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2Fj
aGU6OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
c291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgICog
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5oOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVJbWFnZUJ1ZmZlclByb3h5Ojp+UmVtb3RlSW1hZ2VCdWZmZXJQcm94eSk6
CisgICAgICAgIFJlbGVhc2luZyB0aGUgUmVtb3RlSW1hZ2VCdWZmZXIgZnJvbSBXZWJQcm9jZXNz
IGFuZCBHUFVQcm9jZXNzIHdpbGwgYmUKKyAgICAgICAgaGFuZGxlZCBieSB0aGUgZGVzdHJ1Y3Rv
ciBvZiBSZW5kZXJpbmdSZXNvdXJjZSB3aGVuIGl0IGNhbGxzIHRoZSBvYnNlcnZlciwKKyAgICAg
ICAgd2hpY2ggaXMgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LCB0byByZWxlYXNlUmVuZGVyaW5n
UmVzb3VyY2UoKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
bmRlcmluZ0JhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eTo6cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVzb3VyY2UpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6flJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVJbWFnZUJ1ZmZlcik6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVOYXRpdmVJbWFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZVJlbmRlcmluZ1Jl
c291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpkaWRG
aW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNl
Q2FjaGVQcm94eTo6cmVsZWFzZUltYWdlQnVmZmVyKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlTmF0aXZlSW1hZ2UpOiBEZWxldGVk
LgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5oOgorCiAyMDIxLTAxLTI1ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhpQGFwcGxlLmNv
bT4KIAogICAgICAgICBbaU9TXSBPYnNjdXJlZCBlbGVtZW50cyBzaG91bGQgbm90IGJlIGZvY3Vz
YWJsZSB1c2luZyB0aGUgYWNjZXNzb3J5IGJhcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5kZXggZWQwNjZj
MTFjYWMyMThhM2Q4ZmRlYmZmMTY5MjY2MTZmYzI4NDNmNy4uMGY3MTRiYmQ2MDc5YWE5ZDNlMGMw
NWY1YjJlZWQwMDRhYjY5MmExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjY0LDYgKzEyNjQs
NyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgcGxhdGZvcm0v
Z3JhcGhpY3MvUmVnaW9uLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9SZW1vdGVHcmFwaGljc0Nv
bnRleHRHTFByb3h5QmFzZS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvUmVtb3RlVmlkZW9TYW1w
bGUuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JlbmRlcmluZ1Jlc291cmNlLmgKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaAogICAgIHBsYXRmb3Jt
L2dyYXBoaWNzL1JlbmRlcmluZ01vZGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL1JvdW5kZWRS
ZWN0LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAwNTNiZDg3ZGE3Y2RhODQ1MWFmMTNlZGIzMWMxMzhhZjY2NDU5NWUyLi4wOTVh
MmZkZDNlZTM4NjNjZmY0MmVhMmM4YjY5ZTIyNGFlYzE3OGE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yMTk4LDYgKzIxOTgs
NyBAQAogCQk3MjZENTZFMjI1M0FFMjhEMDAwMkVGOTAgLyogUGxhdGZvcm1JbWFnZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNzI2RDU2RTEyNTNBRTA0
MzAwMDJFRjkwIC8qIFBsYXRmb3JtSW1hZ2UuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk3MjZENTZFMzI1M0FFMzY2MDAwMkVGOTAgLyogTmF0aXZl
SW1hZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU1
QTMzNkY2MUQ4MjA5RjQwMDIyQzRDNyAvKiBOYXRpdmVJbWFnZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyN0E3RjNBMjQwNzhCODQwMDREMjkz
MSAvKiBJbWFnZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyQkFDM0FCMjNFMUU1NDQwMDhENzQxQyAvKiBJbWFn
ZUJ1ZmZlcklPU3VyZmFjZUJhY2tlbmQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk3MjkzMDM5QzI1QkY2RUFFMDA4ODYwQTEgLyogUmVuZGVyaW5n
UmVzb3VyY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDcyOTMwMzlBMjVCRjZFQUQwMDg4NjBBMSAvKiBSZW5kZXJpbmdSZXNvdXJjZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOTlCQzY3MjNENkE1
MzIwMENDNjg4MyAvKiBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyog
QWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTcyOTlCQzY4MjNENkE1M0UwMENDNjg4MyAvKiBSZW5kZXJpbmdN
b2RlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Mjk5
QkM2NjIzRDY4NkM2MDBDQzY4ODMgLyogUmVuZGVyaW5nTW9kZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTcyOUQwNTMwMjUzMTQyNDMwMDQyMjA5
OCAvKiBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDcyOUQwNTJFMjUzMTNFMjYwMDQyMjA5OCAvKiBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMTAxNDgsNiArMTAxNDksNyBAQAogCQk3MjdBRkVEMTFBMkVB
NkEwMDAwNDQyRTggLyogRVhUc1JHQi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFWFRzUkdCLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNzI3QUZF
RDIxQTJFQTZBMDAwMDQ0MkU4IC8qIEVYVHNSR0IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gRVhUc1JHQi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk3MjdBRkVE
MzFBMkVBNkEwMDAwNDQyRTggLyogRVhUc1JHQi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0g
RVhUc1JHQi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTcyOTMwMzlBMjVCRjZF
QUQwMDg4NjBBMSAvKiBSZW5kZXJpbmdSZXNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBSZW5kZXJpbmdSZXNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk3Mjk5QkM2NDIzRDY4NkE2MDBDQzY4ODMgLyogQWxwaGFQcmVtdWx0aXBsaWNhdGlvbi5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBbHBoYVByZW11bHRpcGxpY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2Rl
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlcmluZ01vZGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNzI5RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI2NzQ3LDYgKzI2NzQ5LDcgQEAKIAkJCQkw
NzNBMTU1MTIxNzdBMzk4MDBFQTA4RjIgLyogUmVtb3RlVmlkZW9TYW1wbGUuY3BwICovLAogCQkJ
CTA3M0ExNTUzMjE3N0EzOUEwMEVBMDhGMiAvKiBSZW1vdGVWaWRlb1NhbXBsZS5oICovLAogCQkJ
CTcyOTlCQzY2MjNENjg2QzYwMENDNjg4MyAvKiBSZW5kZXJpbmdNb2RlLmggKi8sCisJCQkJNzI5
MzAzOUEyNUJGNkVBRDAwODg2MEExIC8qIFJlbmRlcmluZ1Jlc291cmNlLmggKi8sCiAJCQkJNzI5
RDA1MkUyNTMxM0UyNjAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllci5oICov
LAogCQkJCUE3M0Y5NUZDMTJDOTdCRkUwMDMxQUFGOSAvKiBSb3VuZGVkUmVjdC5jcHAgKi8sCiAJ
CQkJQTczRjk1RkQxMkM5N0JGRTAwMzFBQUY5IC8qIFJvdW5kZWRSZWN0LmggKi8sCkBAIC0zNDI0
NSw2ICszNDI0OCw3IEBACiAJCQkJMDhGMkYwMEExMjEzRTYxNzAwRENFQzQ4IC8qIFJlbmRlcklt
YWdlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4NjQxRDQ4MTIxNDJGN0QwMDhERTlG
NiAvKiBSZW5kZXJJbWFnZVJlc291cmNlU3R5bGVJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NzI5OUJDNjgyM0Q2QTUzRTAwQ0M2ODgzIC8qIFJlbmRlcmluZ01vZGUuaCBpbiBIZWFkZXJzICov
LAorCQkJCTcyOTMwMzlDMjVCRjZFQUUwMDg4NjBBMSAvKiBSZW5kZXJpbmdSZXNvdXJjZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNzI5RDA1MzAyNTMxNDI0MzAwNDIyMDk4IC8qIFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTU2QzdDNEIyMjEyMzk5NzAw
OUIwNkNBIC8qIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4NzgwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlcklubGluZS5oIGluIEhlYWRlcnMgKi8s
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUlt
YWdlQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Db25jcmV0ZUlt
YWdlQnVmZmVyLmgKaW5kZXggMWYyNDViY2ViYTcyY2UxMzdlOTBjNjFlNTVmNTFhMzM4MWI4MDY4
NS4uZTY4NGY4NGE4NzkyZWFhYWQzNmNkNDQyMGYwOTRlZWU4YmU1MDUyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29uY3JldGVJbWFnZUJ1ZmZlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbmNyZXRlSW1hZ2VCdWZmZXIu
aApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTU4LDkgKzU4LDkgQEAgcHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgQ29uY3JldGVJbWFn
ZUJ1ZmZlcihjb25zdCBJbWFnZUJ1ZmZlckJhY2tlbmQ6OlBhcmFtZXRlcnMmIHBhcmFtZXRlcnMs
IHN0ZDo6dW5pcXVlX3B0cjxCYWNrZW5kVHlwZT4mJiBiYWNrZW5kID0gbnVsbHB0ciwgUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciA9IFJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcjo6Z2VuZXJhdGUoKSkKLSAgICAgICAgOiBtX3BhcmFtZXRl
cnMocGFyYW1ldGVycykKKyAgICAgICAgOiBJbWFnZUJ1ZmZlcihyZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpCisgICAgICAgICwgbV9wYXJhbWV0ZXJzKHBhcmFtZXRlcnMpCiAgICAgICAgICwg
bV9iYWNrZW5kKFdURk1vdmUoYmFja2VuZCkpCi0gICAgICAgICwgbV9yZW5kZXJpbmdSZXNvdXJj
ZUlkZW50aWZpZXIocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogICAgIHsKICAgICB9CiAK
QEAgLTczLDggKzczLDYgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY2xlYXJCYWNrZW5kKCkgb3Zl
cnJpZGUgeyBtX2JhY2tlbmQgPSBudWxscHRyOyB9CiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kKiBl
bnN1cmVCYWNrZW5kQ3JlYXRlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fYmFja2VuZC5n
ZXQoKTsgfQogCi0gICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyOyB9Ci0KICAgICBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQoKSBjb25zdCBv
dmVycmlkZQogICAgIHsKICAgICAgICAgQVNTRVJUKG1fYmFja2VuZCk7CkBAIC0yOTYsNyArMjk0
LDYgQEAgcHJvdGVjdGVkOgogCiAgICAgSW1hZ2VCdWZmZXJCYWNrZW5kOjpQYXJhbWV0ZXJzIG1f
cGFyYW1ldGVyczsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8QmFja2VuZFR5cGU+IG1fYmFja2VuZDsK
LSAgICBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXI7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZUJ1ZmZlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VCdWZmZXIuaAppbmRleCAzNmQ3NGNhMzlkZTE3Y2QwM2Mx
M2JiNzVlNGQ1ZTM4NDhjMzNlY2ZlLi5lYWFiN2YxZjgxMTE3YTM3ODUwZjczY2RlYmU4MjI3YTEy
ZmQ1NzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFn
ZUJ1ZmZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlQnVm
ZmVyLmgKQEAgLTEsNiArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDA2IE5pa29sYXMg
WmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICogQ29weXJpZ2h0IChDKSAyMDA3LTIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3
LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAy
MDEwIFRvcmNoIE1vYmlsZSAoQmVpamluZykgQ28uIEx0ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKQEAgLTMwLDkgKzMwLDcgQEAKICNpbmNsdWRlICJEaXNwbGF5TGlz
dEZsdXNoSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyQmFja2VuZC5oIgogI2lu
Y2x1ZGUgIlJlbmRlcmluZ01vZGUuaCIKLSNpbmNsdWRlICJSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIuaCIKLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9XZWFr
UHRyLmg+CisjaW5jbHVkZSAiUmVuZGVyaW5nUmVzb3VyY2UuaCIKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCkBAIC00Miw3ICs0MCw3IEBAIGNsYXNzIERyYXdpbmdDb250ZXh0Owogc3RydWN0IEl0
ZW1CdWZmZXJIYW5kbGU7CiB9CiAKLWNsYXNzIEltYWdlQnVmZmVyIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPEltYWdlQnVmZmVyPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEltYWdlQnVm
ZmVyPiB7CitjbGFzcyBJbWFnZUJ1ZmZlciA6IHB1YmxpYyBSZW5kZXJpbmdSZXNvdXJjZSB7CiBw
dWJsaWM6CiAgICAgLy8gV2lsbCByZXR1cm4gYSBudWxsIHBvaW50ZXIgb24gYWxsb2NhdGlvbiBm
YWlsdXJlLgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8SW1hZ2VCdWZmZXI+IGNy
ZWF0ZShjb25zdCBGbG9hdFNpemUmLCBSZW5kZXJpbmdNb2RlLCBTaG91bGRVc2VEaXNwbGF5TGlz
dCwgUmVuZGVyaW5nUHVycG9zZSwgZmxvYXQgcmVzb2x1dGlvblNjYWxlID0gMSwgQ29sb3JTcGFj
ZSA9IENvbG9yU3BhY2U6OlNSR0IsIFBpeGVsRm9ybWF0ID0gUGl4ZWxGb3JtYXQ6OkJHUkE4LCBj
b25zdCBIb3N0V2luZG93KiA9IG51bGxwdHIpOwpAQCAtNzEsNyArNjksNiBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIFJlbmRlcmluZ01vZGUgcmVuZGVyaW5nTW9kZSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIGJvb2wgY2FuTWFwQmFja2luZ1N0b3JlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1
YWwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIHsgfTsgfQogCiAgICAgdmlydHVhbCBHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGZsdXNoQ29udGV4dCgpID0g
MDsKQEAgLTEzNCw5ICsxMzEsOSBAQCBwdWJsaWM6CiAgICAgLy8gd2l0aCB0ZXh0dXJlcyB0aGF0
IGFyZSBSR0Igb3IgUkdCQSBmb3JtYXQsIGFuZCBVTlNJR05FRF9CWVRFIHR5cGUuCiAgICAgdmly
dHVhbCBib29sIGNvcHlUb1BsYXRmb3JtVGV4dHVyZShHcmFwaGljc0NvbnRleHRHTCYsIEdDR0xl
bnVtLCBQbGF0Zm9ybUdMT2JqZWN0LCBHQ0dMZW51bSwgYm9vbCwgYm9vbCkgY29uc3QgPSAwOwog
ICAgIHZpcnR1YWwgUGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcigpIGNvbnN0ID0gMDsKLSAg
ICAKKwogcHJvdGVjdGVkOgotICAgIEltYWdlQnVmZmVyKCkgPSBkZWZhdWx0OworICAgIHVzaW5n
IFJlbmRlcmluZ1Jlc291cmNlOjpSZW5kZXJpbmdSZXNvdXJjZTsKIAogICAgIHZpcnR1YWwgUmVm
UHRyPE5hdGl2ZUltYWdlPiBzaW5rSW50b05hdGl2ZUltYWdlKCkgPSAwOwogICAgIHZpcnR1YWwg
UmVmUHRyPEltYWdlPiBzaW5rSW50b0ltYWdlKFByZXNlcnZlUmVzb2x1dGlvbiA9IFByZXNlcnZl
UmVzb2x1dGlvbjo6Tm8pID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL05hdGl2ZUltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL05hdGl2ZUltYWdlLmNwcAppbmRleCAwYTMxNTU4NTAzNDk1ZTJkZTkzN2U3MjY5MzFlYzc4
ODBjZjY5YTI3Li4yZTFmYjg5ZDhkNmYxNmY0YzI3NDdhMDE4NzFhNjhlZmRlMGZhNDdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJbWFnZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuY3BwCkBA
IC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUgSW5jLiAg
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjYsOCArMjYsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk5hdGl2ZUltYWdl
LmgiCiAKLSNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KLQogbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBSZWZQdHI8TmF0aXZlSW1hZ2U+IE5hdGl2ZUltYWdlOjpjcmVhdGUoUGxhdGZvcm1J
bWFnZVB0ciYmIHBsYXRmb3JtSW1hZ2UsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCkBAIC0zOCwxNSArMzYsOSBAQCBSZWZQdHI8TmF0aXZl
SW1hZ2U+IE5hdGl2ZUltYWdlOjpjcmVhdGUoUGxhdGZvcm1JbWFnZVB0ciYmIHBsYXRmb3JtSW1h
Z2UsIFJlbmRlcgogfQogCiBOYXRpdmVJbWFnZTo6TmF0aXZlSW1hZ2UoUGxhdGZvcm1JbWFnZVB0
ciYmIHBsYXRmb3JtSW1hZ2UsIFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpCi0gICAgOiBtX3BsYXRmb3JtSW1hZ2UoV1RGTW92ZShwbGF0Zm9y
bUltYWdlKSkKLSAgICAsIG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKHJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcikKLXsKLX0KLQotTmF0aXZlSW1hZ2U6On5OYXRpdmVJbWFnZSgpCisg
ICAgOiBSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpCisgICAg
LCBtX3BsYXRmb3JtSW1hZ2UoV1RGTW92ZShwbGF0Zm9ybUltYWdlKSkKIHsKLSAgICBmb3IgKGF1
dG8gb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKLSAgICAgICAgb2JzZXJ2ZXItPnJlbGVhc2VOYXRp
dmVJbWFnZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L05hdGl2ZUltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYXRpdmVJ
bWFnZS5oCmluZGV4IDk0NWI4ZGU5OGQ0Yjk4OGNlZDlhMjY1ZDE2ZTU5NDAxMzFkMTM4MGMuLmRh
NjY0NGQwNDlmMmY3NTJkYmM0MzI2MzgxNjk5YTZhMGY2YjZiOGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hdGl2ZUltYWdlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmF0aXZlSW1hZ2UuaApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQtMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA0LTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwNy0yMDA4IFRvcmNoIE1vYmlsZSwgSW5jLgog
ICogQ29weXJpZ2h0IChDKSAyMDEyIENvbXBhbnkgMTAwIEluYy4KICAqCkBAIC0zMCwzOSArMzAs
MjIgQEAKICNpbmNsdWRlICJDb2xvci5oIgogI2luY2x1ZGUgIkludFNpemUuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUltYWdlLmgiCi0jaW5jbHVkZSAiUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVy
LmgiCisjaW5jbHVkZSAiUmVuZGVyaW5nUmVzb3VyY2UuaCIKICNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIE5hdGl2ZUltYWdlIDogcHVibGljIFJlZkNvdW50ZWQ8TmF0aXZlSW1hZ2U+LCBwdWJsaWMg
Q2FuTWFrZVdlYWtQdHI8TmF0aXZlSW1hZ2U+IHsKK2NsYXNzIE5hdGl2ZUltYWdlIDogcHVibGlj
IFJlbmRlcmluZ1Jlc291cmNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKLSAgICBjbGFzcyBPYnNlcnZlciB7Ci0gICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5P
YnNlcnZlcigpID0gZGVmYXVsdDsKLSAgICAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VOYXRpdmVJ
bWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpID0gMDsKLSAgICBwcm90ZWN0ZWQ6Ci0g
ICAgICAgIE9ic2VydmVyKCkgPSBkZWZhdWx0OwotICAgIH07Ci0KICAgICBzdGF0aWMgV0VCQ09S
RV9FWFBPUlQgUmVmUHRyPE5hdGl2ZUltYWdlPiBjcmVhdGUoUGxhdGZvcm1JbWFnZVB0ciYmLCBS
ZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgPSBSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI6
OmdlbmVyYXRlKCkpOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgfk5hdGl2ZUltYWdlKCk7Ci0KICAg
ICBjb25zdCBQbGF0Zm9ybUltYWdlUHRyJiBwbGF0Zm9ybUltYWdlKCkgY29uc3QgeyByZXR1cm4g
bV9wbGF0Zm9ybUltYWdlOyB9Ci0gICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyOyB9CiAKICAgICBXRUJDT1JFX0VYUE9SVCBJbnRTaXplIHNpemUoKSBjb25z
dDsKICAgICBib29sIGhhc0FscGhhKCkgY29uc3Q7CiAgICAgQ29sb3Igc2luZ2xlUGl4ZWxTb2xp
ZENvbG9yKCkgY29uc3Q7CiAKLSAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZl
cikgeyBtX29ic2VydmVycy5hZGQoJm9ic2VydmVyKTsgfQotICAgIHZvaWQgcmVtb3ZlT2JzZXJ2
ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOyB9
Ci0gICAgCiAgICAgdm9pZCBjbGVhclN1YmltYWdlcygpOwogCiBwcml2YXRlOgpAQCAtNzAsOCAr
NTMsNiBAQCBwcml2YXRlOgogICAgIE5hdGl2ZUltYWdlKFBsYXRmb3JtSW1hZ2VQdHImJiwgUmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIFBsYXRmb3JtSW1hZ2VQdHIgbV9wbGF0
Zm9ybUltYWdlOwotICAgIEhhc2hTZXQ8T2JzZXJ2ZXIqPiBtX29ic2VydmVyczsKLSAgICBSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgbV9yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI7CiB9
OwogCiB1c2luZyBOYXRpdmVJbWFnZUhhc2hNYXAgPSBIYXNoTWFwPFJlbmRlcmluZ1Jlc291cmNl
SWRlbnRpZmllciwgUmVmPE5hdGl2ZUltYWdlPj47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9SZW5kZXJpbmdSZXNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nUmVzb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjA1NWY4
ODkyNmZmZDc1YWE1NjBmYmFlN2Y5NzA5ZGNiOTU2OWFlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUmVuZGVyaW5nUmVzb3VyY2UuaApAQCAtMCww
ICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlICJSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KKworbmFtZXNw
YWNlIFdlYkNvcmUgeworCitjbGFzcyBSZW5kZXJpbmdSZXNvdXJjZSA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxSZW5kZXJpbmdSZXNvdXJjZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxS
ZW5kZXJpbmdSZXNvdXJjZT4geworcHVibGljOgorICAgIGNsYXNzIE9ic2VydmVyIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCkgPSBkZWZhdWx0OworICAgICAgICB2
aXJ0dWFsIHZvaWQgcmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcikgPSAwOworICAgIHByb3RlY3RlZDoKKyAgICAgICAgT2JzZXJ2ZXIoKSA9IGRlZmF1
bHQ7CisgICAgfTsKKworICAgIHZpcnR1YWwgflJlbmRlcmluZ1Jlc291cmNlKCkKKyAgICB7Cisg
ICAgICAgIGZvciAoYXV0byBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICAgICAgb2Jz
ZXJ2ZXItPnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CisgICAgfQorCisgICAgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyOyB9CisKKyAgICB2b2lkIGFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikg
eyBtX29ic2VydmVycy5hZGQoJm9ic2VydmVyKTsgfQorICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIo
T2JzZXJ2ZXImIG9ic2VydmVyKSB7IG1fb2JzZXJ2ZXJzLnJlbW92ZSgmb2JzZXJ2ZXIpOyB9CisK
K3Byb3RlY3RlZDoKKyAgICBSZW5kZXJpbmdSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50
aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQorICAgICAgICA6IG1fcmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKKyAgICB7Cisg
ICAgfQorCisgICAgSGFzaFNldDxPYnNlcnZlcio+IG1fb2JzZXJ2ZXJzOworICAgIFJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciBtX3JlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcjsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJLaXQv
R1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kLmNwcAppbmRleCAzMmFm
ZDMxMGJlNWMzMDMwNjQ3ZDcyNThjMjNmZGEwMTAyYjJkNzc1Li5mNDY5NDNjOTA4NTBkYzkzYzNk
NDcwMDIwZWI5ZjkzZmU5ODVlZjcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nl
c3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQuY3BwCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM3NSwxMCAr
Mzc1LDEwIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZDo6ZGVsZXRlQWxsRm9udHMoKQog
ICAgIG1fcmVtb3RlUmVzb3VyY2VDYWNoZS5kZWxldGVBbGxGb250cygpOwogfQogCi12b2lkIFJl
bW90ZVJlbmRlcmluZ0JhY2tlbmQ6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kOjpyZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoUmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBBU1NFUlQo
IVJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBtX3JlbW90ZVJlc291cmNlQ2FjaGUucmVsZWFzZVJl
bW90ZVJlc291cmNlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CisgICAgbV9yZW1vdGVS
ZXNvdXJjZUNhY2hlLnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpOwogfQogCiB2b2lkIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OmRpZENyZWF0ZVNo
YXJlZERpc3BsYXlMaXN0SGFuZGxlKERpc3BsYXlMaXN0OjpJdGVtQnVmZmVySWRlbnRpZmllciBp
ZGVudGlmaWVyLCBjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaGFuZGxlLCBSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgZGVzdGluYXRpb25CdWZmZXJJZGVudGlmaWVyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0Jh
Y2tlbmQuaCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVSZW5kZXJp
bmdCYWNrZW5kLmgKaW5kZXggZTYzODk5MDNiNjUwYmE4ZDk3M2RhZjliM2RjY2E2NDUzNTZmNDVm
OC4uODM0NGYyMjNkN2NmN2YwNDNjNmE3Y2Y4ZDRmMmU4OGY5Y2U0MDc4ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5n
QmFja2VuZC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTEyMyw3ICsxMjMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY2FjaGVOYXRpdmVJ
bWFnZShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYsIFdlYkNvcmU6OlJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjYWNoZUZvbnQoUmVmPFdlYkNvcmU6OkZvbnQ+
JiYpOwogICAgIHZvaWQgZGVsZXRlQWxsRm9udHMoKTsKLSAgICB2b2lkIHJlbGVhc2VSZW1vdGVS
ZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQg
cmVsZWFzZVJlbmRlcmluZ1Jlc291cmNlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcik7CiAgICAgdm9pZCBkaWRDcmVhdGVTaGFyZWREaXNwbGF5TGlzdEhhbmRsZShXZWJDb3Jl
OjpEaXNwbGF5TGlzdDo6SXRlbUJ1ZmZlcklkZW50aWZpZXIsIGNvbnN0IFNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlJiwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3RpbmF0
aW9uQnVmZmVySWRlbnRpZmllcik7CiAKICAgICBzdHJ1Y3QgUGVuZGluZ1dha2V1cEluZm9ybWF0
aW9uIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1v
dGVSZW5kZXJpbmdCYWNrZW5kLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KaW5kZXggN2Q2NWNl
OTA5YzU4MjBmNDZiMDFlNmJkZWVjZGVhYTczMzZhYWYyOC4uNDg0OGM0ZTc0ZDE2NzNhYzhmMWJi
N2Y4Y2QyNzliOWY0MmJlM2YwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmQubWVzc2Fn
ZXMuaW4KQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAyMC0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICMKICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzMs
NyArMzMsNyBAQCBtZXNzYWdlcyAtPiBSZW1vdGVSZW5kZXJpbmdCYWNrZW5kIHsKICAgICBDYWNo
ZUZvbnQoSVBDOjpGb250UmVmZXJlbmNlIGZvbnQpCiAgICAgRGVsZXRlQWxsRm9udHMoKQogICAg
IERpZENyZWF0ZVNoYXJlZERpc3BsYXlMaXN0SGFuZGxlKFdlYkNvcmU6OkRpc3BsYXlMaXN0OjpJ
dGVtQnVmZmVySWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJLaXQ6OlNoYXJlZE1lbW9yeTo6SVBD
SGFuZGxlIGhhbmRsZSwgV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIGRlc3Rp
bmF0aW9uQnVmZmVySWRlbnRpZmllcikKLSAgICBSZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29y
ZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmll
cikKKyAgICBSZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIH0KIAogI2VuZGlmIC8v
IEVOQUJMRShHUFVfUFJPQ0VTUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vz
cy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcCBiL1NvdXJjZS9XZWJLaXQvR1BVUHJv
Y2Vzcy9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmNwcAppbmRleCA4MWRkZTBiZmZjZjBi
ZDZjYzFjMjhlNWRkMjQ2Mzc0YjM0NjQ2Mjc4Li45MWRhZWI0MjIyNjg1YWNlNTM5ZjA3MDVjZTVh
MWY0NWE2NjMxNTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3JhcGhp
Y3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNz
L2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGUuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU5LDcgKzU5LDcgQEAgdm9pZCBSZW1v
dGVSZXNvdXJjZUNhY2hlOjpkZWxldGVBbGxGb250cygpCiAgICAgbV9mb250cy5jbGVhcigpOwog
fQogCi12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGU6OnJlbGVhc2VSZW1vdGVSZXNvdXJjZShSZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9p
ZCBSZW1vdGVSZXNvdXJjZUNhY2hlOjpyZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoUmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKIHsKICAgICBp
ZiAobV9pbWFnZUJ1ZmZlcnMucmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlLmggYi9Tb3VyY2UvV2ViS2l0L0dQVVByb2Nlc3MvZ3Jh
cGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZS5oCmluZGV4IDJjZWQ5MDlmNDgxMTBjNjY2NTZkZTFi
ZmUzODExZGJhYmFhYTlmNGYuLjQ0ZjA3MDAyMjUzNzE5YjU2ODY0NjJlNTMxZWNjYWM4M2JiN2M3
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvR1BVUHJvY2Vzcy9ncmFwaGljcy9SZW1vdGVS
ZXNvdXJjZUNhY2hlLmgKKysrIGIvU291cmNlL1dlYktpdC9HUFVQcm9jZXNzL2dyYXBoaWNzL1Jl
bW90ZVJlc291cmNlQ2FjaGUuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAyMC0yMDIxIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ2LDcgKzQ2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2Fj
aGVOYXRpdmVJbWFnZShSZWY8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+JiYpOwogICAgIHZvaWQgY2Fj
aGVGb250KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKICAgICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7
Ci0gICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShXZWJDb3Jl
OjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgY29uc3QgV2ViQ29yZTo6SW1h
Z2VCdWZmZXJIYXNoTWFwJiBpbWFnZUJ1ZmZlcnMoKSBjb25zdCB7IHJldHVybiBtX2ltYWdlQnVm
ZmVyczsgfQogICAgIGNvbnN0IFdlYkNvcmU6Ok5hdGl2ZUltYWdlSGFzaE1hcCYgbmF0aXZlSW1h
Z2VzKCkgY29uc3QgeyByZXR1cm4gbV9uYXRpdmVJbWFnZXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlSW1hZ2VCdWZmZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZl
clByb3h5LmgKaW5kZXggZDdiOTBiNTcyZGE1ZmMxM2NkM2JkMDg2YjQ3NzE0YjEwY2QzNWNhOS4u
YjIwODUzODI3NTAzZTUyZmJmNDFlZjA1NGQ0YzY4NzZlOTIyMDAxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFnZUJ1ZmZlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVJbWFn
ZUJ1ZmZlclByb3h5LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAt
MjAyMSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAog
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCkBAIC02NCwxMSArNjQsNyBAQCBwdWJsaWM6CiAKICAgICB+UmVtb3RlSW1h
Z2VCdWZmZXJQcm94eSgpCiAgICAgewotICAgICAgICBpZiAoIW1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5KQotICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBmbHVzaERyYXdpbmdDb250
ZXh0KCk7Ci0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHkoKS5yZWxlYXNlSW1hZ2VCdWZmZXIobV9yZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpOwotICAgICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS0+cmVsZWFz
ZVJlbW90ZVJlc291cmNlKG1fcmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKICAgICB9CiAK
ICAgICBJbWFnZUJ1ZmZlckJhY2tlbmRIYW5kbGUgY3JlYXRlSW1hZ2VCdWZmZXJCYWNrZW5kSGFu
ZGxlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3Mv
UmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNwcAppbmRleCA2MWI0
YzgyNDk1NzZkZTEyOGE5YWJlZDA5MjdmNDFlZTQxNjJiZTZlLi5iMDg0Njk0ZmFkZjc2YzM1NDI0
ZjljMGViMTYwZDM4N2ZhZmRhNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5k
UHJveHkuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAtMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTIwMCwxMiArMjAwLDEyIEBAIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpkZWxldGVBbGxGb250cygpCiAgICAgc2VuZChNZXNzYWdlczo6UmVtb3RlUmVuZGVyaW5n
QmFja2VuZDo6RGVsZXRlQWxsRm9udHMoKSwgbV9yZW5kZXJpbmdCYWNrZW5kSWRlbnRpZmllcik7
CiB9CiAKLXZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVtb3RlUmVz
b3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
ZmllcikKK3ZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5OjpyZWxlYXNlUmVuZGVyaW5n
UmVzb3VyY2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcikKIHsKICAgICBpZiAocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyID09IG1fY3Vy
cmVudERlc3RpbmF0aW9uSW1hZ2VCdWZmZXJJZGVudGlmaWVyKQogICAgICAgICBtX2N1cnJlbnRE
ZXN0aW5hdGlvbkltYWdlQnVmZmVySWRlbnRpZmllciA9IFdURjo6bnVsbG9wdDsKIAotICAgIHNl
bmQoTWVzc2FnZXM6OlJlbW90ZVJlbmRlcmluZ0JhY2tlbmQ6OlJlbGVhc2VSZW1vdGVSZXNvdXJj
ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpLCBtX3JlbmRlcmluZ0JhY2tlbmRJZGVudGlm
aWVyKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpSZW1vdGVSZW5kZXJpbmdCYWNrZW5kOjpSZWxlYXNl
UmVuZGVyaW5nUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSwgbV9yZW5kZXJp
bmdCYWNrZW5kSWRlbnRpZmllcik7CiB9CiAKIHZvaWQgUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5OjpkaWRDcmVhdGVJbWFnZUJ1ZmZlckJhY2tlbmQoSW1hZ2VCdWZmZXJCYWNrZW5kSGFuZGxl
IGhhbmRsZSwgUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRl
bnRpZmllcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhp
Y3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5oCmluZGV4IDQ4ZmEw
NjlkYWE4ZDNjZDZkMTI0NDJkYjMzMDYwM2M5MzZiOTdiNDcuLmY3ZGIxZjMxNDQzYTAyNjZjNDU4
ZDQ4NzFlZGVhZmZjM2Y4YjRiYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC05Miw3ICs5Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoY29u
c3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmLCBXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgY2FjaGVGb250KFJlZjxXZWJDb3JlOjpGb250PiYmKTsKICAg
ICB2b2lkIGRlbGV0ZUFsbEZvbnRzKCk7Ci0gICAgdm9pZCByZWxlYXNlUmVtb3RlUmVzb3VyY2Uo
V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbGVhc2VS
ZW5kZXJpbmdSZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwog
CiAgICAgZW51bSBjbGFzcyBEaWRSZWNlaXZlQmFja2VuZENyZWF0aW9uUmVzdWx0IDogYm9vbCB7
CiAgICAgICAgIFJlY2VpdmVkQW55UmVzcG9uc2UsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5jcHAKaW5kZXggMGNlOTQ1ZTcwNWQ5ODI3MGZmYjBjOTEwZjhhNWFhYzFlMDE3YWY2Zi4u
YTM4NjdlMTgyZmIwMGVhMjMwNjAxZTNiMDM4YmQ5YTMyZDc4NjcxZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDIwLTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCkBAIC00MCwxNCArNDAsMjEgQEAgUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoUmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5JgogCiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6On5SZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHkoKQogeworICAgIGZvciAoYXV0byYgaW1hZ2VCdWZmZXIgOiBtX2ltYWdlQnVmZmVycy52YWx1
ZXMoKSkKKyAgICAgICAgaW1hZ2VCdWZmZXItPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKKwogICAg
IGZvciAoYXV0byYgaW1hZ2UgOiBtX25hdGl2ZUltYWdlcy52YWx1ZXMoKSkKICAgICAgICAgaW1h
Z2UtPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIoV2ViQ29yZTo6SW1hZ2VCdWZmZXImIGltYWdlQnVmZmVy
KQordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlSW1hZ2VCdWZmZXIoSW1hZ2VC
dWZmZXImIGltYWdlQnVmZmVyKQogewogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9pbWFnZUJ1ZmZl
cnMuYWRkKGltYWdlQnVmZmVyLnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBtYWtlV2Vh
a1B0cihpbWFnZUJ1ZmZlcikpOwogICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1
bHQuaXNOZXdFbnRyeSk7CisKKyAgICAvLyBTZXQgaXRzZWxmIGFzIGFuIG9ic2VydmVyIHRvIElt
YWdlQnVmZmVyLCBzbyByZWxlYXNlUmVuZGVyaW5nUmVzb3VyY2UoKQorICAgIC8vIGdldHMgY2Fs
bGVkIHdoZW4gSW1hZ2VCdWZmZXIgaXMgYmVpbmcgZGVsZWxldGVkLgorICAgIGltYWdlQnVmZmVy
LmFkZE9ic2VydmVyKCp0aGlzKTsKIH0KIAogSW1hZ2VCdWZmZXIqIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eTo6Y2FjaGVkSW1hZ2VCdWZmZXIoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTU1LDEyICs2Miw2IEBAIEltYWdlQnVmZmVy
KiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlZEltYWdlQnVmZmVyKFJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpCiAgICAgcmV0dXJuIG1faW1hZ2VCdWZmZXJzLmdldChyZW5kZXJpbmdSZXNv
dXJjZUlkZW50aWZpZXIpLmdldCgpOwogfQogCi12b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eTo6cmVsZWFzZUltYWdlQnVmZmVyKFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllciByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIpCi17Ci0gICAgYm9vbCBmb3VuZCA9IG1faW1hZ2VCdWZmZXJz
LnJlbW92ZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIEFTU0VSVF9VTlVTRUQo
Zm91bmQsIGZvdW5kKTsKLX0KLQogaW5saW5lIHN0YXRpYyBSZWZQdHI8U2hhcmVhYmxlQml0bWFw
PiBjcmVhdGVTaGFyZWFibGVCaXRtYXBGcm9tTmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmIGltYWdl
KQogewogICAgIGF1dG8gaW1hZ2VTaXplID0gaW1hZ2Uuc2l6ZSgpOwpAQCAtOTMsNyArOTQsNyBA
QCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVOYXRpdmVJbWFnZShOYXRpdmVJ
bWFnZSYgaW1hZ2UpCiAKICAgICBtX25hdGl2ZUltYWdlcy5hZGQoaW1hZ2UucmVuZGVyaW5nUmVz
b3VyY2VJZGVudGlmaWVyKCksIG1ha2VXZWFrUHRyKGltYWdlKSk7CiAKLSAgICAvLyBTZXQgaXRz
ZWxmIGFzIGFuIG9ic2VydmVyIHRvIE5hdGl2ZUltYWdlLCBzbyByZWxlYXNlTmF0aXZlSW1hZ2Uo
KQorICAgIC8vIFNldCBpdHNlbGYgYXMgYW4gb2JzZXJ2ZXIgdG8gTmF0aXZlSW1hZ2UsIHNvIHJl
bGVhc2VSZW5kZXJpbmdSZXNvdXJjZSgpCiAgICAgLy8gZ2V0cyBjYWxsZWQgd2hlbiBOYXRpdmVJ
bWFnZSBpcyBiZWluZyBkZWxlbGV0ZWQuCiAgICAgaW1hZ2UuYWRkT2JzZXJ2ZXIoKnRoaXMpOwog
CkBAIC0xMTUsMTMgKzExNiwxMyBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2Fj
aGVGb250KEZvbnQmIGZvbnQpCiAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5
LmNhY2hlRm9udChtYWtlUmVmKGZvbnQpKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OnJlbGVhc2VOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKQogewotICAgIGlmICghbV9uYXRpdmVJbWFnZXMucmVt
b3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCisgICAgaWYgKCFtX2ltYWdlQnVmZmVy
cy5yZW1vdmUocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSAmJiAhbV9uYXRpdmVJbWFnZXMu
cmVtb3ZlKHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIC8vIFRlbGwgdGhlIEdQVSBwcm9jZXNzIHRvIHJlbW92ZSB0aGlzIHJlc291cmNlLgotICAg
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShyZW5k
ZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpOworICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFBy
b3h5LnJlbGVhc2VSZW5kZXJpbmdSZXNvdXJjZShyZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIp
OwogfQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJp
bmdVcGRhdGUoKQpAQCAtMTM4LDcgKzEzOSw3IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCiAKICAgICBmb3IgKGF1dG8mIGl0ZW0g
OiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkgewogICAg
ICAgICBpZiAobV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0g
bWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlKQotICAgICAgICAgICAg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKGl0ZW0u
a2V5KTsKKyAgICAgICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VS
ZW5kZXJpbmdSZXNvdXJjZShpdGVtLmtleSk7CiAgICAgfQogCiAgICAgKyttX2N1cnJlbnRSZW5k
ZXJpbmdVcGRhdGVWZXJzaW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKaW5kZXgg
NjEwNThjMzU3NTE3MjA5ZjQwM2UzN2Y0MTJkODE2MDFkZTg4YzQzNy4uY2UxMGNjZGQ5ODNhNDBl
MGQ2ZGZjOTQ5ODExMzA0MjRmZTNkZmRmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMu
ICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDIwLTIwMjEgQXBwbGUg
SW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtNDAsMTQgKzQwLDEzIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVS
ZW5kZXJpbmdCYWNrZW5kUHJveHk7CiAKLWNsYXNzIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eSA6
IHB1YmxpYyBXZWJDb3JlOjpOYXRpdmVJbWFnZTo6T2JzZXJ2ZXIgeworY2xhc3MgUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5IDogcHVibGljIFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlOjpPYnNl
cnZlciB7CiBwdWJsaWM6CiAgICAgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5KFJlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eSYpOwogICAgIH5SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKTsKIAog
ICAgIHZvaWQgY2FjaGVJbWFnZUJ1ZmZlcihXZWJDb3JlOjpJbWFnZUJ1ZmZlciYpOwogICAgIFdl
YkNvcmU6OkltYWdlQnVmZmVyKiBjYWNoZWRJbWFnZUJ1ZmZlcihXZWJDb3JlOjpSZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIpOwotICAgIHZvaWQgcmVsZWFzZUltYWdlQnVmZmVyKFdlYkNvcmU6
OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1h
Z2UoV2ViQ29yZTo6TmF0aXZlSW1hZ2UmKTsKIApAQCAtNjEsNyArNjAsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIHVzaW5nIE5hdGl2ZUltYWdlSGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6
UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6Ok5hdGl2ZUltYWdl
Pj47CiAgICAgCi0gICAgdm9pZCByZWxlYXNlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6UmVuZGVyaW5n
UmVzb3VyY2VJZGVudGlmaWVyKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlbGVhc2VSZW5kZXJpbmdS
ZXNvdXJjZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIG92ZXJyaWRlOwog
CiAgICAgSW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwogICAgIE5hdGl2ZUltYWdl
SGFzaE1hcCBtX25hdGl2ZUltYWdlczsK
</data>

          </attachment>
      

    </bug>

</bugzilla>