<?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>200202</bug_id>
          
          <creation_ts>2019-07-28 07:20:37 -0700</creation_ts>
          <short_desc>[LFC] Remove formatting context type container classes.</short_desc>
          <delta_ts>2019-08-03 07:01:28 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>koivisto</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>1556418</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-07-28 07:20:37 -0700</bug_when>
    <thetext>BlockContainer, InlineContainer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556419</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-28 07:21:47 -0700</bug_when>
    <thetext>&lt;rdar://problem/53635480&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556420</commentid>
    <comment_count>2</comment_count>
      <attachid>375041</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-07-28 07:25:01 -0700</bug_when>
    <thetext>Created attachment 375041
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558281</commentid>
    <comment_count>3</comment_count>
      <attachid>375484</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-08-03 06:17:55 -0700</bug_when>
    <thetext>Created attachment 375484
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558282</commentid>
    <comment_count>4</comment_count>
      <attachid>375484</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-03 07:01:26 -0700</bug_when>
    <thetext>Comment on attachment 375484
Patch

Clearing flags on attachment: 375484

Committed r248199: &lt;https://trac.webkit.org/changeset/248199&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1558283</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-08-03 07:01:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375041</attachid>
            <date>2019-07-28 07:25:01 -0700</date>
            <delta_ts>2019-08-03 06:17:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200202-20190728072501.patch</filename>
            <type>text/plain</type>
            <size>35422</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ3ODc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmQ2NTViMjNkZTk0NjRh
YjY4YjlhZDlmYjUyZjc5ZmE3MmRmMTViMy4uZTIyNjU0NThiYjcxZDBmNTI1OGY0NmJmNWVmZWI2
MTVmMDE2MjgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE5LTA3LTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gUmVtb3ZlIGZvcm1h
dHRpbmcgY29udGV4dCB0eXBlIGNvbnRhaW5lciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMjAyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgYXJlIGZvcm1hdHRpbmcgY29udGV4
dCBzcGVjaWZpYyBjbGFzc2VzLiBMZXQncyB0cnkgdG8gaGF2ZSBhIGxheW91dCB0cmVlIHdpdGhv
dXQgc3VjaCB0eXBlcy4gCisKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVNYXJnaW5C
b3JkZXJBbmRQYWRkaW5nRm9ySW5saW5lQ29udGFpbmVyIGNvbnN0KToKKyAgICAgICAgKiBsYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAgICAq
IGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJsb2NrQ29udGFpbmVyLmNwcDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCbG9ja0NvbnRhaW5lci5oOiBSZW1vdmVk
LgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJveDo6ZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6ZXN0YWJsaXNoZXNJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dE9ubHkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpC
b3g6OmZvcm1hdHRpbmdDb250ZXh0Um9vdCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0Qm94Lmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNCbG9j
a0NvbnRhaW5lciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6aXNJbmxp
bmVDb250YWluZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmlzSW5s
aW5lQm94IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qm94Ojplc3RhYmxpc2hl
c0lubGluZUZvcm1hdHRpbmdDb250ZXh0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6Qm94Ojplc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0T25seSBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5saW5l
Q29udGFpbmVyLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlv
dXRJbmxpbmVDb250YWluZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRyZWVC
dWlsZGVyOjpjcmVhdGVMYXlvdXRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VHJl
ZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRy
ZWVCdWlsZGVyOjpjcmVhdGVUYWJsZVN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6Om91dHB1dExheW91dEJveCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
VHJlZUJ1aWxkZXIuaDoKKwogMjAxOS0wNy0yNyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdW1RGQ10gPHRhYmxlPiBpbml0aWF0ZXMgYSBwcmluY2lwYWwg
YmxvY2sgY29udGFpbmVyIGJveCBjYWxsZWQgdGFibGUgd3JhcHBlciBib3guCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CmluZGV4IDk3ZTNhYTdhOTE0MTlkMDUwZjIzZWY1ODc1OTlmNTBmNDE4NmRkZmMuLjNmODhiODMz
MGRiMWVlM2U4M2YxNWVkYmUwY2NiYjdmNGQzOTQyMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0xNDA5
LDExICsxNDA5LDkgQEAgbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHAKIGxh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcAogbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy90
ZXh0L1RleHRVdGlsLmNwcAotbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0QmxvY2tDb250YWluZXIu
Y3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRDb250YWluZXIuY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVCb3guY3Bw
Ci1sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVDb250YWluZXIuY3BwCiBsYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRMaW5lQnJlYWtCb3guY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRS
ZXBsYWNlZC5jcHAKIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4
IDkxYTk2MTRiZTIwZDZhYzYxNWRiMGZiOGVkMjZiNjRhYWEwNzdjMTMuLmY5YmQwMTRiNmJiNWUz
MWUyYmRkODhlMmI5MzViNzBlZjc2Zjg1ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM5Nyw4ICszOTcsNiBAQAogCQkxMTkz
NDA5NzFGRUQ3MTU1MDA5MzVGMUUgLyogUmVuZGVyVHJlZUJ1aWxkZXJGb3JtQ29udHJvbHMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExOTM0MDk1MUZF
RDcxNTUwMDkzNUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlckZvcm1Db250cm9scy5oICovOyB9Owog
CQkxMTkzNDBBMzFGRUUwMjQwMDA5MzVGMUUgLyogUmVuZGVyVHJlZUJ1aWxkZXJCbG9jay5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE5MzQwQTExRkVF
MDI0MDAwOTM1RjFFIC8qIFJlbmRlclRyZWVCdWlsZGVyQmxvY2suaCAqLzsgfTsKIAkJMTE5OUZB
NDYyMDhFMzVBMzAwMjM1OENDIC8qIExheW91dENvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE5OUZBNDQyMDhFMzVBMzAwMjM1OENDIC8q
IExheW91dENvbnRhaW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCTExOTlGQTRCMjA4RTM3QjYwMDIzNThDQyAvKiBMYXlvdXRCbG9ja0NvbnRh
aW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE5
OUZBNDkyMDhFMzdCNjAwMjM1OENDIC8qIExheW91dEJsb2NrQ29udGFpbmVyLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMTE5OUZBNEYyMDhFMzg5
OTAwMjM1OENDIC8qIExheW91dElubGluZUNvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTE5OUZBNEQyMDhFMzg5OTAwMjM1OENDIC8qIExh
eW91dElubGluZUNvbnRhaW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTExOTlGQTUzMjA4RTM4RDMwMDIzNThDQyAvKiBMYXlvdXRJbmxpbmVC
b3guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExOTlG
QTUxMjA4RTM4RDMwMDIzNThDQyAvKiBMYXlvdXRJbmxpbmVCb3guaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTk5RkE1QjIwOEUzQzdGMDAyMzU4
Q0MgLyogRGlzcGxheUJveC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMTE5OUZBNTkyMDhFM0M3RjAwMjM1OENDIC8qIERpc3BsYXlCb3guaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMUNCMjc4OTIwM0JB
NTcwMDA0QTFEQzkgLyogUmVuZGVyVHJlZUJ1aWxkZXJGdWxsU2NyZWVuLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxMUNCMjc4NzIwM0JBNTcwMDA0QTFE
QzkgLyogUmVuZGVyVHJlZUJ1aWxkZXJGdWxsU2NyZWVuLmggKi87IH07CkBAIC01ODQwLDEwICs1
ODM4LDYgQEAKIAkJMTE5MzQwQTExRkVFMDI0MDAwOTM1RjFFIC8qIFJlbmRlclRyZWVCdWlsZGVy
QmxvY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVuZGVyVHJlZUJ1aWxkZXJCbG9jay5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxMTk5RkE0NDIwOEUzNUEzMDAyMzU4Q0MgLyogTGF5b3V0
Q29udGFpbmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dENvbnRhaW5lci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxMTk5RkE0NTIwOEUzNUEzMDAyMzU4Q0MgLyogTGF5b3V0Q29u
dGFpbmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dENvbnRhaW5lci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTExOTlGQTQ5MjA4RTM3QjYwMDIzNThDQyAvKiBMYXlv
dXRCbG9ja0NvbnRhaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRCbG9ja0NvbnRhaW5lci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxMTk5RkE0QTIwOEUzN0I2MDAyMzU4Q0Mg
LyogTGF5b3V0QmxvY2tDb250YWluZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0Qmxv
Y2tDb250YWluZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxMTk5RkE0RDIw
OEUzODk5MDAyMzU4Q0MgLyogTGF5b3V0SW5saW5lQ29udGFpbmVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IExheW91dElubGluZUNvbnRhaW5lci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkx
MTk5RkE0RTIwOEUzODk5MDAyMzU4Q0MgLyogTGF5b3V0SW5saW5lQ29udGFpbmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IExheW91dElubGluZUNvbnRhaW5lci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTExOTlGQTUxMjA4RTM4RDMwMDIzNThDQyAvKiBMYXlvdXRJbmxpbmVC
b3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5b3V0SW5saW5lQm94Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTExOTlGQTUyMjA4RTM4RDMwMDIzNThDQyAvKiBMYXlvdXRJbmxpbmVCb3gu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5b3V0SW5saW5lQm94LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMTE5OUZBNTkyMDhFM0M3RjAwMjM1OENDIC8qIERpc3BsYXlCb3gu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxheUJveC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTYzNzYsOCArMTYzNzAsNiBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKIAkJCQkxMTEwMEZDQTIwOTI4NjhEMDA4MUFBNkMgLyogTGF5b3V0QW5jZXN0b3JJdGVy
YXRvci5oICovLAotCQkJCTExOTlGQTRBMjA4RTM3QjYwMDIzNThDQyAvKiBMYXlvdXRCbG9ja0Nv
bnRhaW5lci5jcHAgKi8sCi0JCQkJMTE5OUZBNDkyMDhFMzdCNjAwMjM1OENDIC8qIExheW91dEJs
b2NrQ29udGFpbmVyLmggKi8sCiAJCQkJMTE1Q0ZBOTYyMDhCOTUyQjAwMUU2OTkxIC8qIExheW91
dEJveC5jcHAgKi8sCiAJCQkJMTE1Q0ZBOTUyMDhCOTUyQjAwMUU2OTkxIC8qIExheW91dEJveC5o
ICovLAogCQkJCTExMTAwRkM5MjA5MjdDQkMwMDgxQUE2QyAvKiBMYXlvdXRDaGlsZEl0ZXJhdG9y
LmggKi8sCkBAIC0xNjM4Niw4ICsxNjM3OCw2IEBACiAJCQkJMTFCMDQyRkIyMEIwRTIxNDAwODI4
QTZCIC8qIExheW91dERlc2NlbmRhbnRJdGVyYXRvci5oICovLAogCQkJCTExOTlGQTUyMjA4RTM4
RDMwMDIzNThDQyAvKiBMYXlvdXRJbmxpbmVCb3guY3BwICovLAogCQkJCTExOTlGQTUxMjA4RTM4
RDMwMDIzNThDQyAvKiBMYXlvdXRJbmxpbmVCb3guaCAqLywKLQkJCQkxMTk5RkE0RTIwOEUzODk5
MDAyMzU4Q0MgLyogTGF5b3V0SW5saW5lQ29udGFpbmVyLmNwcCAqLywKLQkJCQkxMTk5RkE0RDIw
OEUzODk5MDAyMzU4Q0MgLyogTGF5b3V0SW5saW5lQ29udGFpbmVyLmggKi8sCiAJCQkJMTExMDBG
QzcyMDkyNzY0QzAwODFBQTZDIC8qIExheW91dEl0ZXJhdG9yLmggKi8sCiAJCQkJNkZFN0NGQTUy
MTc3RjA2OTAwNUIxNTczIC8qIExheW91dExpbmVCcmVha0JveC5jcHAgKi8sCiAJCQkJNkZFN0NG
QTMyMTc3RUYxMDAwNUIxNTczIC8qIExheW91dExpbmVCcmVha0JveC5oICovLApAQCAtMzA1NTYs
MTMgKzMwNTQ2LDExIEBACiAJCQkJNTgwMzcxNjQxQTY2RjFEMzAwQkFGNTE5IC8qIExheWVyRnJh
Z21lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTdBQTNBNkEwMTk0QjU5QjYwMDFDQkQyNCAvKiBM
YXllclBvb2wuaCBpbiBIZWFkZXJzICovLAogCQkJCTExMzEwQ0Y3MjBCQTRBNjIwMDY1QThEMCAv
KiBMYXlvdXRBbmNlc3Rvckl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKLQkJCQkxMTk5RkE0QjIw
OEUzN0I2MDAyMzU4Q0MgLyogTGF5b3V0QmxvY2tDb250YWluZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCTExNUNGQTk3MjA4Qjk1MkIwMDFFNjk5MSAvKiBMYXlvdXRCb3guaCBpbiBIZWFkZXJzICov
LAogCQkJCTExMzEwQ0Y2MjBCQTRBNTYwMDY1QThEMCAvKiBMYXlvdXRDaGlsZEl0ZXJhdG9yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxMTk5RkE0NjIwOEUzNUEzMDAyMzU4Q0MgLyogTGF5b3V0Q29u
dGFpbmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTMxMENGNTIwQkE0QTRDMDA2NUE4RDAgLyog
TGF5b3V0RGVzY2VuZGFudEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTk5RkE1MzIw
OEUzOEQzMDAyMzU4Q0MgLyogTGF5b3V0SW5saW5lQm94LmggaW4gSGVhZGVycyAqLywKLQkJCQkx
MTk5RkE0RjIwOEUzODk5MDAyMzU4Q0MgLyogTGF5b3V0SW5saW5lQ29udGFpbmVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkxMTMxMENGNDIwQkE0QTNEMDA2NUE4RDAgLyogTGF5b3V0SXRlcmF0b3Iu
aCBpbiBIZWFkZXJzICovLAogCQkJCTZGRTdDRkE0MjE3N0VGMTAwMDVCMTU3MyAvKiBMYXlvdXRM
aW5lQnJlYWtCb3guaCBpbiBIZWFkZXJzICovLAogCQkJCTkzMUQ3MkY2MTVGRTY5NTMwMEM0QzA3
RSAvKiBMYXlvdXRNaWxlc3RvbmUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQuY3BwCmluZGV4IDQ2YzlmYWNmYWVmMDQ2MDgyNWQ3NDU5NTZjNDUwYzA2YzI2
NzZmZDMuLmNhMWYwY2E4NGYzODM1ZTkzZWYxOTE1OGMxNjlkYjBmNmJkNjYyMzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTM0LDcgKzM0LDYgQEAKICNpbmNsdWRl
ICJMYXlvdXRCb3guaCIKICNpbmNsdWRlICJMYXlvdXRDb250YWluZXIuaCIKICNpbmNsdWRlICJM
YXlvdXRJbmxpbmVCb3guaCIKLSNpbmNsdWRlICJMYXlvdXRJbmxpbmVDb250YWluZXIuaCIKICNp
bmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJU
ZXh0dXRpbC5oIgpAQCAtNzksNyArNzgsNyBAQCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0
OjpsYXlvdXQoKSBjb25zdAogICAgICAgICBpZiAobGF5b3V0Qm94LT5lc3RhYmxpc2hlc0Zvcm1h
dHRpbmdDb250ZXh0KCkpCiAgICAgICAgICAgICBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFJvb3Qo
KmxheW91dEJveCwgdXNlZFZhbHVlcyk7CiAgICAgICAgIGVsc2UgaWYgKGlzPENvbnRhaW5lcj4o
KmxheW91dEJveCkpCi0gICAgICAgICAgICBjb21wdXRlTWFyZ2luQm9yZGVyQW5kUGFkZGluZ0Zv
cklubGluZUNvbnRhaW5lcihkb3duY2FzdDxJbmxpbmVDb250YWluZXI+KCpsYXlvdXRCb3gpLCB1
c2VkVmFsdWVzKTsKKyAgICAgICAgICAgIGNvbXB1dGVNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRm9y
SW5saW5lQ29udGFpbmVyKGRvd25jYXN0PENvbnRhaW5lcj4oKmxheW91dEJveCksIHVzZWRWYWx1
ZXMpOwogICAgICAgICBlbHNlIGlmIChsYXlvdXRCb3gtPmlzUmVwbGFjZWQoKSkKICAgICAgICAg
ICAgIGNvbXB1dGVXaWR0aEFuZEhlaWdodEZvclJlcGxhY2VkSW5saW5lQm94KCpsYXlvdXRCb3gs
IHVzZWRWYWx1ZXMpOwogICAgICAgICBlbHNlIGlmIChpczxJbmxpbmVCb3g+KCpsYXlvdXRCb3gp
KQpAQCAtMTU5LDcgKzE1OCw3IEBAIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmluaXRp
YWxpemVNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRm9yR2VuZXJpY0lubGluZUJvCiAgICAgZGlzcGxh
eUJveC5zZXRQYWRkaW5nKHsgfSk7CiB9CiAKLXZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6
OmNvbXB1dGVNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRm9ySW5saW5lQ29udGFpbmVyKGNvbnN0IElu
bGluZUNvbnRhaW5lciYgY29udGFpbmVyLCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkVmFsdWVz
KSBjb25zdAordm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU1hcmdpbkJvcmRl
ckFuZFBhZGRpbmdGb3JJbmxpbmVDb250YWluZXIoY29uc3QgQ29udGFpbmVyJiBjb250YWluZXIs
IFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRWYWx1ZXMpIGNvbnN0CiB7CiAgICAgY29tcHV0ZUhv
cml6b250YWxNYXJnaW4oY29udGFpbmVyLCB1c2VkVmFsdWVzKTsKICAgICBjb21wdXRlQm9yZGVy
QW5kUGFkZGluZyhjb250YWluZXIsIHVzZWRWYWx1ZXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdD
b250ZXh0LmgKaW5kZXggYmU2ZjkxNWZjOTI0YTEwZDQ4N2U1MWQ0ZDdkOGU4ZTNjZjUwN2Q2Yi4u
ZWQzYTkyZjJjNjgxYWY0MTUwZTkzMWJhMmQ2YmRlMzI4OTJiY2MxNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5oCkBAIC0zNyw3ICszNyw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFzcyBGbG9hdGluZ1N0YXRlOwotY2xhc3MgSW5saW5l
Q29udGFpbmVyOwogc3RydWN0IExpbmVDb250ZW50Owogc3RydWN0IExpbmVJbnB1dDsKIApAQCAt
ODMsNyArODIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBsYXlvdXRGb3JtYXR0aW5nQ29udGV4
dFJvb3QoY29uc3QgQm94JiwgVXNlZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0OwogICAgIHZvaWQg
Y29tcHV0ZUludHJpbnNpY1dpZHRoRm9yRmxvYXRCb3goY29uc3QgQm94JikgY29uc3Q7Ci0gICAg
dm9pZCBjb21wdXRlTWFyZ2luQm9yZGVyQW5kUGFkZGluZ0ZvcklubGluZUNvbnRhaW5lcihjb25z
dCBJbmxpbmVDb250YWluZXImLCBVc2VkSG9yaXpvbnRhbFZhbHVlcykgY29uc3Q7CisgICAgdm9p
ZCBjb21wdXRlTWFyZ2luQm9yZGVyQW5kUGFkZGluZ0ZvcklubGluZUNvbnRhaW5lcihjb25zdCBD
b250YWluZXImLCBVc2VkSG9yaXpvbnRhbFZhbHVlcykgY29uc3Q7CiAgICAgdm9pZCBpbml0aWFs
aXplTWFyZ2luQm9yZGVyQW5kUGFkZGluZ0ZvckdlbmVyaWNJbmxpbmVCb3goY29uc3QgSW5saW5l
Qm94JikgY29uc3Q7CiAgICAgdm9pZCBjb21wdXRlSW50cmluc2ljV2lkdGhGb3JJbmxpbmVCbG9j
ayhjb25zdCBCb3gmKSBjb25zdDsKICAgICB2b2lkIGNvbXB1dGVXaWR0aEFuZEhlaWdodEZvclJl
cGxhY2VkSW5saW5lQm94KGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFsdWVzKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJsb2Nr
Q29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJs
b2NrQ29udGFpbmVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOGY4ZWNjYTQ2
MTZkNzJmZjcyOGYwM2FhYTk3N2Q1Zjg3NThlYjhmYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRCbG9ja0NvbnRhaW5lci5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSw2NCArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkxheW91dEJsb2NrQ29u
dGFpbmVyLmgiCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLQotI2lu
Y2x1ZGUgIlJlbmRlclN0eWxlLmgiCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLVdURl9NQUtFX0lT
T19BTExPQ0FURURfSU1QTChCbG9ja0NvbnRhaW5lcik7Ci0KLUJsb2NrQ29udGFpbmVyOjpCbG9j
a0NvbnRhaW5lcihPcHRpb25hbDxFbGVtZW50QXR0cmlidXRlcz4gYXR0cmlidXRlcywgUmVuZGVy
U3R5bGUmJiBzdHlsZSwgQmFzZVR5cGVGbGFncyBiYXNlVHlwZUZsYWdzKQotICAgIDogQ29udGFp
bmVyKGF0dHJpYnV0ZXMsIFdURk1vdmUoc3R5bGUpLCBiYXNlVHlwZUZsYWdzIHwgQmxvY2tDb250
YWluZXJGbGFnKQotewotfQotCi1ib29sIEJsb2NrQ29udGFpbmVyOjplc3RhYmxpc2hlc0lubGlu
ZUZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QKLXsKLSAgICAvLyA5LjQuMiBJbmxpbmUgZm9ybWF0
dGluZyBjb250ZXh0cwotICAgIC8vIEFuIGlubGluZSBmb3JtYXR0aW5nIGNvbnRleHQgaXMgZXN0
YWJsaXNoZWQgYnkgYSBibG9jayBjb250YWluZXIgYm94IHRoYXQgY29udGFpbnMgbm8gYmxvY2st
bGV2ZWwgYm94ZXMuCi0KLSAgICAvLyBJdCdzIGVub3VnaCB0byBjaGVjayB0aGUgZmlyc3QgaW4t
ZmxvdyBjaGlsZCBzaW5jZSB3ZSBjYW4ndCBoYXZlIGJvdGggYmxvY2sgYW5kIGlubGluZSBsZXZl
bCBzaWJsaW5nIGJveGVzLgotICAgIGlmIChhdXRvKiBmaXJzdEluRmxvd0NoaWxkID0gdGhpcy0+
Zmlyc3RJbkZsb3dDaGlsZCgpKQotICAgICAgICByZXR1cm4gZmlyc3RJbkZsb3dDaGlsZC0+aXNJ
bmxpbmVMZXZlbEJveCgpOwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQotCi1ib29sIEJsb2NrQ29u
dGFpbmVyOjplc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0T25seSgpIGNvbnN0Ci17
Ci0gICAgcmV0dXJuIGVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSAmJiAhZXN0
YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCk7Ci19Ci0KLX0KLX0KLQotI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCbG9ja0Nv
bnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0QmxvY2tD
b250YWluZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTc3ZjRmY2Q4ZjI4ZDRj
Y2U4OGIxOTVmMzQ2ODgwYTViM2ZlY2I0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRC
bG9ja0NvbnRhaW5lci5oCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyLmgiCi0jaW5jbHVk
ZSA8d3RmL0lzb01hbGxvYy5oPgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRF
WFQpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVuZGVyU3R5bGU7Ci0KLW5hbWVz
cGFjZSBMYXlvdXQgewotCi1jbGFzcyBCbG9ja0NvbnRhaW5lciA6IHB1YmxpYyBDb250YWluZXIg
ewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQmxvY2tDb250YWluZXIpOwotcHVibGljOgot
ICAgIEJsb2NrQ29udGFpbmVyKE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiwgUmVuZGVyU3R5
bGUmJiwgQmFzZVR5cGVGbGFncyA9IEJsb2NrQ29udGFpbmVyRmxhZyk7Ci0KLSAgICBib29sIGVz
dGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCBmaW5hbDsKLSAgICBib29s
IGVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHRPbmx5KCkgY29uc3QgZmluYWw7Ci19
OwotCi19Ci19Ci0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTEFZT1VUX0JPWChCbG9ja0NvbnRh
aW5lciwgaXNCbG9ja0NvbnRhaW5lcigpKQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCmluZGV4IDg1MzA2MGEzMTJhOTM2NzBlY2Vi
ZmQwNWU4NGQ0OGFlODUxZDczY2UuLjE1YTBlZmEwMDc4NDFiMzk0NzJlZmQ3Y2M1MmIwNTQ0Nzlm
YTY4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91
dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94
LmNwcApAQCAtODIsNiArODIsMjUgQEAgYm9vbCBCb3g6OmVzdGFibGlzaGVzQmxvY2tGb3JtYXR0
aW5nQ29udGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIEJveDo6ZXN0
YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0Cit7CisgICAgLy8gOS40LjIg
SW5saW5lIGZvcm1hdHRpbmcgY29udGV4dHMKKyAgICAvLyBBbiBpbmxpbmUgZm9ybWF0dGluZyBj
b250ZXh0IGlzIGVzdGFibGlzaGVkIGJ5IGEgYmxvY2sgY29udGFpbmVyIGJveCB0aGF0IGNvbnRh
aW5zIG5vIGJsb2NrLWxldmVsIGJveGVzLgorICAgIGlmICghaXNCbG9ja0NvbnRhaW5lckJveCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWlzQ29udGFpbmVyKCkgfHwgIWRv
d25jYXN0PENvbnRhaW5lcj4oKnRoaXMpLmZpcnN0SW5GbG93Q2hpbGQoKSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisKKyAgICAvLyBJdCdzIGVub3VnaCB0byBjaGVjayB0aGUgZmlyc3QgaW4tZmxv
dyBjaGlsZCBzaW5jZSB3ZSBjYW4ndCBoYXZlIGJvdGggYmxvY2sgYW5kIGlubGluZSBsZXZlbCBz
aWJsaW5nIGJveGVzLgorICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXI+KCp0aGlzKS5maXJz
dEluRmxvd0NoaWxkKCktPmlzSW5saW5lTGV2ZWxCb3goKTsKK30KKworYm9vbCBCb3g6OmVzdGFi
bGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHRPbmx5KCkgY29uc3QKK3sKKyAgICByZXR1cm4g
ZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpICYmICFlc3RhYmxpc2hlc0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQoKTsKK30KKwogYm9vbCBCb3g6OmVzdGFibGlzaGVzVGFibGVGb3Jt
YXR0aW5nQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzVGFibGVCb3goKTsKQEAgLTE4
MiwxMCArMjAxLDIxIEBAIGNvbnN0IENvbnRhaW5lciYgQm94Ojpmb3JtYXR0aW5nQ29udGV4dFJv
b3QoKSBjb25zdAogICAgIC8vIFdlIHNob3VsZCBuZXZlciBuZWVkIHRvIGFzayB0aGlzIHF1ZXN0
aW9uIG9uIHRoZSBJQ0IuCiAgICAgQVNTRVJUKCFpc0luaXRpYWxDb250YWluaW5nQmxvY2soKSk7
CiAgICAgLy8gQSBib3ggbGl2ZXMgaW4gdGhlIHNhbWUgZm9ybWF0dGluZyBjb250ZXh0IGFzIGl0
cyBjb250YWluaW5nIGJsb2NrIHVubGVzcyB0aGUgY29udGFpbmluZyBibG9jayBlc3RhYmxpc2hl
cyBhIGZvcm1hdHRpbmcgY29udGV4dC4KLSAgICBhdXRvJiBjb250YWluaW5nQmxvY2sgPSAqdGhp
cy0+Y29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgaWYgKGNvbnRhaW5pbmdCbG9jay5lc3RhYmxpc2hl
c0Zvcm1hdHRpbmdDb250ZXh0KCkpCi0gICAgICAgIHJldHVybiBjb250YWluaW5nQmxvY2s7Ci0g
ICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9jay5mb3JtYXR0aW5nQ29udGV4dFJvb3QoKTsKKyAgICAv
LyBIb3dldmVyIHJlbGF0aXZlbHkgcG9zaXRpb25lZCAoaW5mbG93KSBpbmxpbmUgY29udGFpbmVy
IGxpdmVzIGluIHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgd2hlcmUgaXRzIHBhcmVudCBsaXZlcyB1
bmxlc3MKKyAgICAvLyB0aGUgcGFyZW50IGVzdGFibGlzaGVzIGEgZm9ybWF0dGluZyBjb250ZXh0
LgorICAgIC8vCisgICAgLy8gPGRpdiBpZD1vdXRlciBzdHlsZT0icG9zaXRpb246IGFic29sdXRl
Ij48ZGl2IGlkPWlubmVyPjxzcGFuIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmUiPmNvbnRlbnQ8
L3NwYW4+PC9kaXY+PC9kaXY+CisgICAgLy8gV2hpbGUgdGhlIHJlbGF0aXZlbHkgcG9zaXRpb25l
ZCBpbmxpbmUgY29udGFpbmVyIChzcGFuKSBpcyBwbGFjZWQgcmVsYXRpdmUgdG8gaXRzIGNvbnRh
aW5pbmcgYmxvY2sgIm91dGVyIiwgaXQgbGl2ZXMgaW4gdGhlIGlubGluZQorICAgIC8vIGZvcm1h
dHRpbmcgY29udGV4dCBlc3RhYmxpc2hlZCBieSAiaW5uZXIiLgorICAgIGNvbnN0IENvbnRhaW5l
ciogYW5jZXN0b3IgPSBudWxscHRyOworICAgIGlmIChpc0lubGluZUJveCgpICYmIGlzSW5GbG93
UG9zaXRpb25lZCgpKQorICAgICAgICBhbmNlc3RvciA9IHBhcmVudCgpOworICAgIGVsc2UKKyAg
ICAgICAgYW5jZXN0b3IgPSBjb250YWluaW5nQmxvY2soKTsKKyAgICBBU1NFUlQoYW5jZXN0b3Ip
OworICAgIGlmIChhbmNlc3Rvci0+ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKQorICAg
ICAgICByZXR1cm4gKmFuY2VzdG9yOworICAgIHJldHVybiBhbmNlc3Rvci0+Zm9ybWF0dGluZ0Nv
bnRleHRSb290KCk7CiB9CiAKIGNvbnN0IENvbnRhaW5lciYgQm94Ojppbml0aWFsQ29udGFpbmlu
Z0Jsb2NrKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
Qm94LmgKaW5kZXggMzczZTgxOWI5YTU3MjMxYWE3YTI0OTkxYTE3NThjZmU3MGQyMGZkMS4uNTZl
NWZjOTJlMDdjMWU1YTU2NWQxOGM1ZDFkODY3NGIxMDg3NDI5YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTY1LDkgKzY1LDcgQEAgcHVibGlj
OgogICAgIGVudW0gQmFzZVR5cGVGbGFnIHsKICAgICAgICAgQm94RmxhZyAgICAgICAgICAgICAg
ID0gMSA8PCAwLAogICAgICAgICBDb250YWluZXJGbGFnICAgICAgICAgPSAxIDw8IDEsCi0gICAg
ICAgIEJsb2NrQ29udGFpbmVyRmxhZyAgICA9IDEgPDwgMiwKICAgICAgICAgSW5saW5lQm94Rmxh
ZyAgICAgICAgID0gMSA8PCAzLAotICAgICAgICBJbmxpbmVDb250YWluZXJGbGFnICAgPSAxIDw8
IDQsCiAgICAgICAgIExpbmVCcmVha0JveEZsYWcgICAgICA9IDEgPDwgNQogICAgIH07CiAgICAg
dHlwZWRlZiB1bnNpZ25lZCBCYXNlVHlwZUZsYWdzOwpAQCAtNzksOCArNzcsOCBAQCBwdWJsaWM6
CiAgICAgYm9vbCBlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsKICAg
ICBib29sIGVzdGFibGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OwogICAgIGJv
b2wgZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0T25seSgpIGNvbnN0OwotICAgIHZp
cnR1YWwgYm9vbCBlc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyBy
ZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dE9ubHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJvb2wgZXN0YWJs
aXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OworICAgIGJvb2wgZXN0YWJsaXNo
ZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dE9ubHkoKSBjb25zdDsKIAogICAgIGJvb2wgaXNJbkZs
b3coKSBjb25zdCB7IHJldHVybiAhaXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgpOyB9
CiAgICAgYm9vbCBpc1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBpc0luRmxvd1Bvc2l0aW9u
ZWQoKSB8fCBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKTsgfQpAQCAtMTMzLDkgKzEzMSwxMCBAQCBw
dWJsaWM6CiAgICAgY29uc3QgQm94KiBwcmV2aW91c0luRmxvd09yRmxvYXRpbmdTaWJsaW5nKCkg
Y29uc3Q7CiAKICAgICBib29sIGlzQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4gbV9iYXNlVHlw
ZUZsYWdzICYgQ29udGFpbmVyRmxhZzsgfQotICAgIGJvb2wgaXNCbG9ja0NvbnRhaW5lcigpIGNv
bnN0IHsgcmV0dXJuIG1fYmFzZVR5cGVGbGFncyAmIEJsb2NrQ29udGFpbmVyRmxhZzsgfQorICAg
IGJvb2wgaXNCbG9ja0NvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIGlzQmxvY2tMZXZlbEJveCgp
ICYmIGlzQ29udGFpbmVyKCk7IH0KKyAgICBib29sIGlzSW5saW5lQ29udGFpbmVyKCkgY29uc3Qg
eyByZXR1cm4gaXNJbmxpbmVMZXZlbEJveCgpICYmIGlzQ29udGFpbmVyKCk7IH0KKwogICAgIGJv
b2wgaXNJbmxpbmVCb3goKSBjb25zdCB7IHJldHVybiBtX2Jhc2VUeXBlRmxhZ3MgJiBJbmxpbmVC
b3hGbGFnOyB9Ci0gICAgYm9vbCBpc0lubGluZUNvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIG1f
YmFzZVR5cGVGbGFncyAmIElubGluZUNvbnRhaW5lckZsYWc7IH0KICAgICBib29sIGlzTGluZUJy
ZWFrQm94KCkgY29uc3QgeyByZXR1cm4gbV9iYXNlVHlwZUZsYWdzICYgTGluZUJyZWFrQm94Rmxh
ZzsgfQogCiAgICAgYm9vbCBpc1BhZGRpbmdBcHBsaWNhYmxlKCkgY29uc3Q7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVDb250YWluZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5saW5lQ29udGFp
bmVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDAxODk5MDQ1YjQ0NDNiNzI5
OTFkZmNlNWZmNTYzOGY4Y2IwNDgxMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxp
bmVDb250YWluZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMYXlvdXRJbmxpbmVDb250YWluZXIu
aCIKLQotI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAi
UmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5oPgotCi1uYW1l
c3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKElubGluZUNvbnRhaW5lcik7Ci0KLUlubGluZUNvbnRhaW5lcjo6SW5saW5lQ29u
dGFpbmVyKE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiBhdHRyaWJ1dGVzLCBSZW5kZXJTdHls
ZSYmIHN0eWxlLCBCYXNlVHlwZUZsYWdzIGJhc2VUeXBlRmxhZ3MpCi0gICAgOiBDb250YWluZXIo
YXR0cmlidXRlcywgV1RGTW92ZShzdHlsZSksIGJhc2VUeXBlRmxhZ3MgfCBJbmxpbmVDb250YWlu
ZXJGbGFnKQotewotfQotCi1ib29sIElubGluZUNvbnRhaW5lcjo6ZXN0YWJsaXNoZXNJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFpc0lubGluZUJsb2NrQm94KCkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIDkuNC4yIElubGluZSBmb3JtYXR0aW5n
IGNvbnRleHRzCi0gICAgLy8gQW4gaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dCBpcyBlc3RhYmxp
c2hlZCBieSBhIGJsb2NrIGNvbnRhaW5lciBib3ggdGhhdCBjb250YWlucyBubyBibG9jay1sZXZl
bCBib3hlcy4KLSAgICBpZiAoYXV0byogZmlyc3RJbkZsb3dDaGlsZCA9IHRoaXMtPmZpcnN0SW5G
bG93Q2hpbGQoKSkKLSAgICAgICAgcmV0dXJuIGZpcnN0SW5GbG93Q2hpbGQtPmlzSW5saW5lTGV2
ZWxCb3goKTsKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotY29uc3QgQ29udGFpbmVyJiBJbmxp
bmVDb250YWluZXI6OmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpIGNvbnN0Ci17Ci0gICAgLy8gUmVs
YXRpdmVseSBwb3NpdGlvbmVkIChpbmZsb3cpIGlubGluZSBjb250YWluZXIgbGl2ZXMgaW4gdGhl
IGZvcm1hdHRpbmcgY29udGV4dCB3aGVyZSBpdHMgcGFyZW50IGxpdmVzIHVubGVzcwotICAgIC8v
IHRoZSBwYXJlbnQgZXN0YWJsaXNoZXMgYSBmb3JtYXR0aW5nIGNvbnRleHQuIFRoaXMgaXMgc2xp
Z2h0bHkgZGlmZmVyZW50IGZyb20gdGhlIHVzdWFsIGJlaGF2aW9yIHdoaWNoIGlzIGNvbnRhaW5p
bmcgYmxvY2sgZHJpdmVuLgotICAgIC8vCi0gICAgLy8gPGRpdiBpZD1vdXRlciBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlIj4+PGRpdiBpZD1pbm5lcj48c3BhbiBzdHlsZT0icG9zaXRpb246IHJl
bGF0aXZlIj5jb250ZW50PC9zcGFuPjwvZGl2PjwvZGl2PgotICAgIC8vIFdoaWxlIHRoZSByZWxh
dGl2ZWx5IHBvc2l0aW9uZWQgaW5saW5lIGNvbnRhaW5lciAoc3BhbikgaXMgcGxhY2VkIHJlbGF0
aXZlIHRvIGl0cyBjb250YWluaW5nIGJsb2NrICJvdXRlciIsIGl0IGxpdmVzIGluIHRoZSBpbmxp
bmUKLSAgICAvLyBmb3JtYXR0aW5nIGNvbnRleHQgZXN0YWJsaXNoZWQgYnkgImlubmVyIi4KLSAg
ICBhdXRvJiBhbmNlc3RvciA9IGlzSW5GbG93UG9zaXRpb25lZCgpID8gKnBhcmVudCgpIDogKmNv
bnRhaW5pbmdCbG9jaygpOwotICAgIGlmIChhbmNlc3Rvci5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdD
b250ZXh0KCkpCi0gICAgICAgIHJldHVybiBhbmNlc3RvcjsKLSAgICByZXR1cm4gYW5jZXN0b3Iu
Zm9ybWF0dGluZ0NvbnRleHRSb290KCk7Ci19Ci0KLX0KLX0KLQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVDb250YWluZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZUNvbnRhaW5l
ci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjY5Njk1ZTY0ODlkZmMxZTkzODJj
ZTdhNTdhOTAzNDEzYzk5ZDg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGluZUNv
bnRhaW5lci5oCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyLmgiCi0jaW5jbHVkZSA8d3Rm
L0lzb01hbGxvYy5oPgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVuZGVyU3R5bGU7Ci0KLW5hbWVzcGFjZSBM
YXlvdXQgewotCi1jbGFzcyBJbmxpbmVDb250YWluZXIgOiBwdWJsaWMgQ29udGFpbmVyIHsKLSAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKElubGluZUNvbnRhaW5lcik7Ci1wdWJsaWM6Ci0gICAg
SW5saW5lQ29udGFpbmVyKE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiwgUmVuZGVyU3R5bGUm
JiwgQmFzZVR5cGVGbGFncyA9IElubGluZUNvbnRhaW5lckZsYWcpOwotCi0gICAgYm9vbCBlc3Rh
Ymxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgZmluYWw7Ci0gICAgY29uc3Qg
Q29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QoKSBjb25zdCBmaW5hbDsKLX07Ci0KLX0K
LX0KLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfQk9YKElubGluZUNvbnRhaW5lciwg
aXNJbmxpbmVDb250YWluZXIoKSkKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKaW5kZXggMjg2ODU1MDU5
NTQyOGM0NzFmMmI3YzBmN2JkMWRjOGM5ODMxOGE5Yi4uYmNkZjM4ZWM0ZjIyMjlkZGRlYWIwZjVi
ZjgxZjk2ZWQ5ZjdiNzk5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcApAQCAtMzEsMTIgKzMxLDEwIEBACiAjaW5j
bHVkZSAiRGlzcGxheUJveC5oIgogI2luY2x1ZGUgIkRpc3BsYXlSdW4uaCIKICNpbmNsdWRlICJJ
bmxpbmVGb3JtYXR0aW5nU3RhdGUuaCIKLSNpbmNsdWRlICJMYXlvdXRCbG9ja0NvbnRhaW5lci5o
IgogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dENoaWxkSXRlcmF0b3Iu
aCIKICNpbmNsdWRlICJMYXlvdXRDb250YWluZXIuaCIKICNpbmNsdWRlICJMYXlvdXRJbmxpbmVC
b3guaCIKLSNpbmNsdWRlICJMYXlvdXRJbmxpbmVDb250YWluZXIuaCIKICNpbmNsdWRlICJMYXlv
dXRTdGF0ZS5oIgogI2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ2hp
bGRJdGVyYXRvci5oIgpAQCAtNzUsNyArNzMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Q29udGFpbmVy
PiBUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5b3V0VHJlZShjb25zdCBSZW5kZXJWaWV3JiByZW5kZQog
ICAgIHN0eWxlLnNldExvZ2ljYWxXaWR0aChMZW5ndGgocmVuZGVyVmlldy53aWR0aCgpLCBGaXhl
ZCkpOwogICAgIHN0eWxlLnNldExvZ2ljYWxIZWlnaHQoTGVuZ3RoKHJlbmRlclZpZXcuaGVpZ2h0
KCksIEZpeGVkKSk7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Q29udGFpbmVyPiBpbml0aWFsQ29u
dGFpbmluZ0Jsb2NrKG5ldyBCbG9ja0NvbnRhaW5lcihXVEY6Om51bGxvcHQsIFdURk1vdmUoc3R5
bGUpKSk7CisgICAgc3RkOjp1bmlxdWVfcHRyPENvbnRhaW5lcj4gaW5pdGlhbENvbnRhaW5pbmdC
bG9jayhuZXcgQ29udGFpbmVyKFdURjo6bnVsbG9wdCwgV1RGTW92ZShzdHlsZSkpKTsKICAgICBU
cmVlQnVpbGRlcjo6Y3JlYXRlU3ViVHJlZShyZW5kZXJWaWV3LCAqaW5pdGlhbENvbnRhaW5pbmdC
bG9jayk7CiAgICAgcmV0dXJuIGluaXRpYWxDb250YWluaW5nQmxvY2s7CiB9CkBAIC0xMzgsMTIg
KzEzNiw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxCb3g+IFRyZWVCdWlsZGVyOjpjcmVhdGVMYXlvdXRC
b3goY29uc3QgUmVuZGVyRWxlbWVudCYgcGFyZW50UmVuCiAKICAgICBpZiAoaXM8UmVuZGVyVGFi
bGU+KHJlbmRlcmVyKSkgewogICAgICAgICAvLyBDb25zdHJ1Y3QgdGhlIHByaW5jaXBhbCB0YWJs
ZSB3cmFwcGVyIGJveCAoYW5kIG5vdCB0aGUgdGFibGUgYm94IGl0c2VsZikuCi0gICAgICAgIGlm
IChkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGUpCi0gICAgICAgICAgICBjaGlsZExh
eW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8QmxvY2tDb250YWluZXI+KEJveDo6RWxlbWVudEF0
dHJpYnV0ZXMgeyBCb3g6OkVsZW1lbnRUeXBlOjpUYWJsZVdyYXBwZXJCb3ggfSwgUmVuZGVyU3R5
bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAg
ICBBU1NFUlQoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OklubGluZVRhYmxlKTsKLSAgICAg
ICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gc3RkOjptYWtlX3VuaXF1ZTxJbmxpbmVDb250YWluZXI+
KEJveDo6RWxlbWVudEF0dHJpYnV0ZXMgeyBCb3g6OkVsZW1lbnRUeXBlOjpUYWJsZVdyYXBwZXJC
b3ggfSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKLSAgICAgICAgfQor
ICAgICAgICBjaGlsZExheW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8Q29udGFpbmVyPihCb3g6
OkVsZW1lbnRBdHRyaWJ1dGVzIHsgQm94OjpFbGVtZW50VHlwZTo6VGFibGVXcmFwcGVyQm94IH0s
IFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7CiAgICAgfSBlbHNlIGlmIChp
czxSZW5kZXJSZXBsYWNlZD4ocmVuZGVyZXIpKSB7CiAgICAgICAgIGlmIChkaXNwbGF5VHlwZSA9
PSBEaXNwbGF5VHlwZTo6QmxvY2spCiAgICAgICAgICAgICBjaGlsZExheW91dEJveCA9IHN0ZDo6
bWFrZV91bmlxdWU8Qm94PihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxl
OjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7CkBAIC0xNjMsMTUgKzE1NiwxNSBAQCBzdGQ6OnVu
aXF1ZV9wdHI8Qm94PiBUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5b3V0Qm94KGNvbnN0IFJlbmRlckVs
ZW1lbnQmIHBhcmVudFJlbgogICAgICAgICAgICAgICAgIGF1dG8gc3R5bGUgPSBSZW5kZXJTdHls
ZTo6Y2xvbmVQdHIocmVuZGVyZXIuc3R5bGUoKSk7CiAgICAgICAgICAgICAgICAgc3R5bGUtPnNl
dFRvcCh7IG9mZnNldC0+aGVpZ2h0KCksIEZpeGVkIH0pOwogICAgICAgICAgICAgICAgIHN0eWxl
LT5zZXRMZWZ0KHsgb2Zmc2V0LT53aWR0aCgpLCBGaXhlZCB9KTsKLSAgICAgICAgICAgICAgICBj
aGlsZExheW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8QmxvY2tDb250YWluZXI+KGVsZW1lbnRB
dHRyaWJ1dGVzKHJlbmRlcmVyKSwgV1RGTW92ZSgqc3R5bGUpKTsKKyAgICAgICAgICAgICAgICBj
aGlsZExheW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8Q29udGFpbmVyPihlbGVtZW50QXR0cmli
dXRlcyhyZW5kZXJlciksIFdURk1vdmUoKnN0eWxlKSk7CiAgICAgICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgICAgICBjaGlsZExheW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8QmxvY2tDb250
YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJl
bmRlcmVyLnN0eWxlKCkpKTsKKyAgICAgICAgICAgICAgICBjaGlsZExheW91dEJveCA9IHN0ZDo6
bWFrZV91bmlxdWU8Q29udGFpbmVyPihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRl
clN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoZGlz
cGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OklubGluZSkKLSAgICAgICAgICAgIGNoaWxkTGF5b3V0
Qm94ID0gc3RkOjptYWtlX3VuaXF1ZTxJbmxpbmVDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVz
KHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKKyAgICAg
ICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gc3RkOjptYWtlX3VuaXF1ZTxDb250YWluZXI+KGVsZW1l
bnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxl
KCkpKTsKICAgICAgICAgZWxzZSBpZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OklubGlu
ZUJsb2NrKQotICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPElu
bGluZUNvbnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6
Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOworICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBz
dGQ6Om1ha2VfdW5pcXVlPENvbnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBS
ZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOwogICAgICAgICBlbHNlIGlmIChk
aXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVDYXB0aW9uIHx8IGRpc3BsYXlUeXBlID09
IERpc3BsYXlUeXBlOjpUYWJsZUNlbGwpIHsKLSAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0g
c3RkOjptYWtlX3VuaXF1ZTxCbG9ja0NvbnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVy
ZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOworICAgICAgICAgICAg
Y2hpbGRMYXlvdXRCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPENvbnRhaW5lcj4oZWxlbWVudEF0dHJp
YnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOwog
ICAgICAgICB9IGVsc2UgaWYgKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJsZVJvd0dy
b3VwIHx8IGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJsZUhlYWRlckdyb3VwIHx8IGRp
c3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpUYWJsZUZvb3Rlckdyb3VwCiAgICAgICAgICAgICB8
fCBkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVSb3cgfHwgZGlzcGxheVR5cGUgPT0g
RGlzcGxheVR5cGU6OlRhYmxlQ29sdW1uR3JvdXAgfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5
cGU6OlRhYmxlQ29sdW1uKSB7CiAgICAgICAgICAgICBjaGlsZExheW91dEJveCA9IHN0ZDo6bWFr
ZV91bmlxdWU8Q29udGFpbmVyPihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0
eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7CkBAIC0yMDQsNyArMTk3LDcgQEAgdm9pZCBU
cmVlQnVpbGRlcjo6Y3JlYXRlVGFibGVTdHJ1Y3R1cmUoY29uc3QgUmVuZGVyVGFibGUmIHRhYmxl
UmVuZGVyZXIsIENvbnRhaW4KICAgICAgICAgdGFibGVDaGlsZCA9IHRhYmxlQ2hpbGQtPm5leHRT
aWJsaW5nKCk7IAogICAgIH0KIAotICAgIGF1dG8gdGFibGVCb3ggPSBzdGQ6Om1ha2VfdW5pcXVl
PEJsb2NrQ29udGFpbmVyPihCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzIHsgQm94OjpFbGVtZW50VHlw
ZTo6VGFibGVCb3ggfSwgUmVuZGVyU3R5bGU6OmNsb25lKHRhYmxlUmVuZGVyZXIuc3R5bGUoKSkp
OworICAgIGF1dG8gdGFibGVCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPENvbnRhaW5lcj4oQm94OjpF
bGVtZW50QXR0cmlidXRlcyB7IEJveDo6RWxlbWVudFR5cGU6OlRhYmxlQm94IH0sIFJlbmRlclN0
eWxlOjpjbG9uZSh0YWJsZVJlbmRlcmVyLnN0eWxlKCkpKTsKICAgICBhcHBlbmRDaGlsZCh0YWJs
ZVdyYXBwZXJCb3gsICp0YWJsZUJveCk7CiAgICAgd2hpbGUgKHRhYmxlQ2hpbGQpIHsKICAgICAg
ICAgVHJlZUJ1aWxkZXI6OmNyZWF0ZVN1YlRyZWUoZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4oKnRh
YmxlQ2hpbGQpLCAqdGFibGVCb3gpOwpAQCAtMjY4LDQwICsyNjEsMjggQEAgc3RhdGljIHZvaWQg
b3V0cHV0TGF5b3V0Qm94KFRleHRTdHJlYW0mIHN0cmVhbSwgY29uc3QgQm94JiBsYXlvdXRCb3gs
IGNvbnN0IERpc3AKICAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpCiAg
ICAgICAgIHN0cmVhbSA8PCAiW2Zsb2F0XSAiOwogCi0gICAgaWYgKGlzPENvbnRhaW5lcj4obGF5
b3V0Qm94KSkgewotICAgICAgICBpZiAobGF5b3V0Qm94LmlzVGFibGVXcmFwcGVyQm94KCkpCi0g
ICAgICAgICAgICBzdHJlYW0gPDwgIlRBQkxFIHByaW5jaXBhbCI7Ci0gICAgICAgIGVsc2UgaWYg
KGlzPElubGluZUNvbnRhaW5lcj4obGF5b3V0Qm94KSkgewotICAgICAgICAgICAgLy8gRklYTUU6
IGZpeCBuYW1lcwotICAgICAgICAgICAgaWYgKGxheW91dEJveC5pc0lubGluZUJsb2NrQm94KCkp
Ci0gICAgICAgICAgICAgICAgc3RyZWFtIDw8ICJESVYgaW5saW5lLWJsb2NrIGNvbnRhaW5lciI7
Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc3RyZWFtIDw8ICJTUEFOIGlubGlu
ZSBjb250YWluZXIiOwotICAgICAgICB9IGVsc2UgaWYgKGlzPEJsb2NrQ29udGFpbmVyPihsYXlv
dXRCb3gpKSB7Ci0gICAgICAgICAgICBpZiAobGF5b3V0Qm94LmlzSW5pdGlhbENvbnRhaW5pbmdC
bG9jaygpKQotICAgICAgICAgICAgICAgIHN0cmVhbSA8PCAiSW5pdGlhbCBjb250YWluaW5nIGJs
b2NrIjsKLSAgICAgICAgICAgIGVsc2UgaWYgKGxheW91dEJveC5pc0RvY3VtZW50Qm94KCkpCi0g
ICAgICAgICAgICAgICAgc3RyZWFtIDw8ICJIVE1MIjsKLSAgICAgICAgICAgIGVsc2UgaWYgKGxh
eW91dEJveC5pc0JvZHlCb3goKSkKLSAgICAgICAgICAgICAgICBzdHJlYW0gPDwgIkJPRFkiOwot
ICAgICAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzVGFibGVCb3goKSkKLSAgICAgICAgICAg
ICAgICBzdHJlYW0gPDwgIlRBQkxFIjsKLSAgICAgICAgICAgIGVsc2UgaWYgKGxheW91dEJveC5p
c1RhYmxlQ2FwdGlvbigpKQotICAgICAgICAgICAgICAgIHN0cmVhbSA8PCAiQ0FQVElPTiI7Ci0g
ICAgICAgICAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNUYWJsZUNlbGwoKSkKLSAgICAgICAgICAg
ICAgICBzdHJlYW0gPDwgIlREIjsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgICAg
IC8vIEZJWE1FCi0gICAgICAgICAgICAgICAgc3RyZWFtIDw8ICJESVYiOwotICAgICAgICAgICAg
fQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgaWYgKGxheW91dEJveC5pc1RhYmxlUm93
KCkpCi0gICAgICAgICAgICAgICAgc3RyZWFtIDw8ICJUUiI7Ci0gICAgICAgICAgICBlbHNlCi0g
ICAgICAgICAgICAgICAgc3RyZWFtIDw8ICJ1bmtub3duIGNvbnRhaW5lciI7Ci0gICAgICAgIH0K
LSAgICB9IGVsc2UgaWYgKGxheW91dEJveC5pc0lubGluZUxldmVsQm94KCkpIHsKLSAgICAgICAg
aWYgKGxheW91dEJveC5yZXBsYWNlZCgpKQorICAgIGlmIChsYXlvdXRCb3guaXNJbml0aWFsQ29u
dGFpbmluZ0Jsb2NrKCkpCisgICAgICAgIHN0cmVhbSA8PCAiSW5pdGlhbCBjb250YWluaW5nIGJs
b2NrIjsKKyAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNEb2N1bWVudEJveCgpKQorICAgICAgICBz
dHJlYW0gPDwgIkhUTUwiOworICAgIGVsc2UgaWYgKGxheW91dEJveC5pc0JvZHlCb3goKSkKKyAg
ICAgICAgc3RyZWFtIDw8ICJCT0RZIjsKKyAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNUYWJsZVdy
YXBwZXJCb3goKSkKKyAgICAgICAgc3RyZWFtIDw8ICJUQUJMRSBwcmluY2lwYWwiOworICAgIGVs
c2UgaWYgKGxheW91dEJveC5pc1RhYmxlQm94KCkpCisgICAgICAgIHN0cmVhbSA8PCAiVEFCTEUi
OworICAgIGVsc2UgaWYgKGxheW91dEJveC5pc1RhYmxlQ2FwdGlvbigpKQorICAgICAgICBzdHJl
YW0gPDwgIkNBUFRJT04iOworICAgIGVsc2UgaWYgKGxheW91dEJveC5pc1RhYmxlQ2VsbCgpKQor
ICAgICAgICBzdHJlYW0gPDwgIlREIjsKKyAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNUYWJsZVJv
dygpKQorICAgICAgICBzdHJlYW0gPDwgIlRSIjsKKyAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNJ
bmxpbmVCbG9ja0JveCgpKQorICAgICAgICBzdHJlYW0gPDwgIklubGluZS1ibG9jayBjb250YWlu
ZXIiOworICAgIGVsc2UgaWYgKGxheW91dEJveC5pc0lubGluZUxldmVsQm94KCkpIHsKKyAgICAg
ICAgaWYgKGxheW91dEJveC5pc0lubGluZUNvbnRhaW5lcigpKQorICAgICAgICAgICAgc3RyZWFt
IDw8ICJTUEFOIGlubGluZSBjb250YWluZXIiOworICAgICAgICBlbHNlIGlmIChsYXlvdXRCb3gu
cmVwbGFjZWQoKSkKICAgICAgICAgICAgIHN0cmVhbSA8PCAiSU1HIHJlcGxhY2VkIGlubGluZSBi
b3giOwogICAgICAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNBbm9ueW1vdXMoKSkKICAgICAgICAg
ICAgIHN0cmVhbSA8PCAiYW5vbnltb3VzIGlubGluZSBib3giOwpAQCAtMzEwLDkgKzI5MSw3IEBA
IHN0YXRpYyB2b2lkIG91dHB1dExheW91dEJveChUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0IEJv
eCYgbGF5b3V0Qm94LCBjb25zdCBEaXNwCiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHN0cmVh
bSA8PCAiaW5saW5lIGJveCI7CiAgICAgfSBlbHNlIGlmIChsYXlvdXRCb3guaXNCbG9ja0xldmVs
Qm94KCkpCi0gICAgICAgIHN0cmVhbSA8PCAiYmxvY2sgYm94IjsKLSAgICBlbHNlCi0gICAgICAg
IHN0cmVhbSA8PCAiYm94IjsKKyAgICAgICAgc3RyZWFtIDw8ICJESVYiOwogICAgIAogICAgIC8v
IEZJWE1FOiBJbmxpbmUgdGV4dCBydW5zIGRvbid0IGNyZWF0ZSBkaXNwbGF5IGJveGVzIHlldC4K
ICAgICBpZiAoZGlzcGxheUJveCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5oCmluZGV4IDc5NDg3NGI0YTZiOTU4NDljY2YxZDI3
ZWZjY2FhODg4MmM5MTc2YzguLmNiY2Q3MzBjN2M1MmRhZmZmMmI1NDc1ZjZkMmEyYjg1MTZjYmIy
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dFRy
ZWVCdWlsZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0
VHJlZUJ1aWxkZXIuaApAQCAtMzAsNiArMzAsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBSZW5kZXJFbGVtZW50OworY2xhc3MgUmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyVGFi
bGU7CiBjbGFzcyBSZW5kZXJWaWV3OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375484</attachid>
            <date>2019-08-03 06:17:55 -0700</date>
            <delta_ts>2019-08-03 07:01:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-200202-20190803061752.patch</filename>
            <type>text/plain</type>
            <size>41415</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ4MTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzAwMWFlZDRlMzM1MTRh
NzVmMTUzZjM2ZDNkNTk3MzE0NjZhNDA0OS4uMWRmNGEyMGE1MzQ4NGFjOTk4YTVmOTVlNzRiNmQ1
Y2RmNWIxNmNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE5LTA4LTAzICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gUmVtb3ZlIGZvcm1h
dHRpbmcgY29udGV4dCB0eXBlIGNvbnRhaW5lciBjbGFzc2VzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMjAyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQW50dGkgS29pdmlzdG8uCisKKyAgICAgICAgVGhlc2UgYXJlIGZvcm1hdHRpbmcgY29udGV4
dCBzcGVjaWZpYyBjbGFzc2VzLiBMZXQncyB0cnkgdG8gaGF2ZSBhIGxheW91dCB0cmVlIHdpdGhv
dXQgc3VjaCB0eXBlcy4KKworICAgICAgICAqIFNvdXJjZXMudHh0OgorICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSW50cmluc2ljV2lkdGhDb25zdHJh
aW50cyBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dDo6bGF5b3V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRm9y
SW5saW5lQ29udGFpbmVyIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3Jt
YXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGluZUxheW91dC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6Omxh
eW91dCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmU6OmFwcGVuZFRleHRDb250ZW50
KToKKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCbG9ja0NvbnRhaW5lci5jcHA6
IFJlbW92ZWQuCisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0QmxvY2tDb250YWlu
ZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmVzdGFibGlzaGVzSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCb3g6OmVzdGFi
bGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHRPbmx5IGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OkxheW91dDo6Qm94Ojpmb3JtYXR0aW5nQ29udGV4dFJvb3QgY29uc3QpOgorICAgICAgICAq
IGxheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpCb3g6OmlzQmxvY2tDb250YWluZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0
OjpCb3g6OmlzSW5saW5lQ29udGFpbmVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6Qm94Ojppc0lubGluZUJveCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJv
eDo6ZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJveDo6ZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dE9ubHkgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGxheW91dC9sYXlvdXR0cmVl
L0xheW91dElubGluZUNvbnRhaW5lci5jcHA6IFJlbW92ZWQuCisgICAgICAgICogbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0SW5saW5lQ29udGFpbmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogbGF5
b3V0L2xheW91dHRyZWUvTGF5b3V0SXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6TGF5b3V0Qm94VHJhdmVyc2FsOjpmaXJzdENoaWxkKToKKyAgICAgICAgKiBsYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OlRyZWVCdWlsZGVyOjpjcmVhdGVMYXlvdXRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6VHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OlRyZWVCdWlsZGVyOjpjcmVhdGVUYWJsZVN0cnVjdHVyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6Om91dHB1dExheW91dEJveCk6CisgICAgICAgICogbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0VHJlZUJ1aWxkZXIuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlld0xheW91dENvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bGF5b3V0VXNpbmdGb3JtYXR0aW5nQ29udGV4dCk6
CisKIDIwMTktMDgtMDIgIFJvYmluIE1vcmlzc2V0ICA8cm1vcmlzc2V0QGFwcGxlLmNvbT4KIAog
ICAgICAgICBbV0hMU0xdIEF2b2lkIHZpc2l0aW5nIHRoZSBmdWxsIEFTVCBpbiBjb21wdXRlRGlt
ZW5zaW9ucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA5N2UzYWE3YTkxNDE5ZDA1MGYyM2VmNTg3NTk5ZjUw
ZjQxODZkZGZjLi4zZjg4YjgzMzBkYjFlZTNlODNmMTVlZGJlMGNjYmI3ZjRkMzk0MjI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtMTQwOSwxMSArMTQwOSw5IEBAIGxheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUxpbmUuY3BwCiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtl
ci5jcHAKIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcAogbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5jcHAKLWxheW91dC9sYXlvdXR0cmVlL0xh
eW91dEJsb2NrQ29udGFpbmVyLmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmNwcAog
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Q29udGFpbmVyLmNwcAogbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0SW5saW5lQm94LmNwcAotbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5saW5lQ29udGFp
bmVyLmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0TGluZUJyZWFrQm94LmNwcAogbGF5b3V0
L2xheW91dHRyZWUvTGF5b3V0UmVwbGFjZWQuY3BwCiBsYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRU
cmVlQnVpbGRlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagppbmRleCA5MWE5NjE0YmUyMGQ2YWM2MTVkYjBmYjhlZDI2YjY0YWFhMDc3
YzEzLi5mOWJkMDE0YjZiYjVlMzFlMmJkZDg4ZTJiOTM1YjcwZWY3NmY4NWZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zOTcs
OCArMzk3LDYgQEAKIAkJMTE5MzQwOTcxRkVENzE1NTAwOTM1RjFFIC8qIFJlbmRlclRyZWVCdWls
ZGVyRm9ybUNvbnRyb2xzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAxMTkzNDA5NTFGRUQ3MTU1MDA5MzVGMUUgLyogUmVuZGVyVHJlZUJ1aWxkZXJGb3Jt
Q29udHJvbHMuaCAqLzsgfTsKIAkJMTE5MzQwQTMxRkVFMDI0MDAwOTM1RjFFIC8qIFJlbmRlclRy
ZWVCdWlsZGVyQmxvY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDExOTM0MEExMUZFRTAyNDAwMDkzNUYxRSAvKiBSZW5kZXJUcmVlQnVpbGRlckJsb2Nr
LmggKi87IH07CiAJCTExOTlGQTQ2MjA4RTM1QTMwMDIzNThDQyAvKiBMYXlvdXRDb250YWluZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExOTlGQTQ0
MjA4RTM1QTMwMDIzNThDQyAvKiBMYXlvdXRDb250YWluZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQkxMTk5RkE0QjIwOEUzN0I2MDAyMzU4Q0Mg
LyogTGF5b3V0QmxvY2tDb250YWluZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDExOTlGQTQ5MjA4RTM3QjYwMDIzNThDQyAvKiBMYXlvdXRCbG9ja0Nv
bnRhaW5lci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
Ci0JCTExOTlGQTRGMjA4RTM4OTkwMDIzNThDQyAvKiBMYXlvdXRJbmxpbmVDb250YWluZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExOTlGQTREMjA4
RTM4OTkwMDIzNThDQyAvKiBMYXlvdXRJbmxpbmVDb250YWluZXIuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxMTk5RkE1MzIwOEUzOEQzMDAyMzU4
Q0MgLyogTGF5b3V0SW5saW5lQm94LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAxMTk5RkE1MTIwOEUzOEQzMDAyMzU4Q0MgLyogTGF5b3V0SW5saW5lQm94
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMTE5
OUZBNUIyMDhFM0M3RjAwMjM1OENDIC8qIERpc3BsYXlCb3guaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDExOTlGQTU5MjA4RTNDN0YwMDIzNThDQyAvKiBE
aXNwbGF5Qm94LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJMTFDQjI3ODkyMDNCQTU3MDAwNEExREM5IC8qIFJlbmRlclRyZWVCdWlsZGVyRnVsbFNj
cmVlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTFD
QjI3ODcyMDNCQTU3MDAwNEExREM5IC8qIFJlbmRlclRyZWVCdWlsZGVyRnVsbFNjcmVlbi5oICov
OyB9OwpAQCAtNTg0MCwxMCArNTgzOCw2IEBACiAJCTExOTM0MEExMUZFRTAyNDAwMDkzNUYxRSAv
KiBSZW5kZXJUcmVlQnVpbGRlckJsb2NrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbmRlclRyZWVCdWls
ZGVyQmxvY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE5OUZBNDQyMDhFMzVB
MzAwMjM1OENDIC8qIExheW91dENvbnRhaW5lci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRDb250
YWluZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMTE5OUZBNDUyMDhFMzVBMzAw
MjM1OENDIC8qIExheW91dENvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRD
b250YWluZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkxMTk5RkE0OTIwOEUz
N0I2MDAyMzU4Q0MgLyogTGF5b3V0QmxvY2tDb250YWluZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGF5
b3V0QmxvY2tDb250YWluZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMTE5OUZB
NEEyMDhFMzdCNjAwMjM1OENDIC8qIExheW91dEJsb2NrQ29udGFpbmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExheW91dEJsb2NrQ29udGFpbmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJMTE5OUZBNEQyMDhFMzg5OTAwMjM1OENDIC8qIExheW91dElubGluZUNvbnRhaW5l
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBMYXlvdXRJbmxpbmVDb250YWluZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJMTE5OUZBNEUyMDhFMzg5OTAwMjM1OENDIC8qIExheW91dElubGlu
ZUNvbnRhaW5lci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMYXlvdXRJbmxpbmVDb250YWluZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTk5RkE1MTIwOEUzOEQzMDAyMzU4
Q0MgLyogTGF5b3V0SW5saW5lQm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExheW91dElubGluZUJveC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxMTk5RkE1MjIwOEUzOEQzMDAyMzU4Q0Mg
LyogTGF5b3V0SW5saW5lQm94LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExheW91dElubGluZUJv
eC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTExOTlGQTU5MjA4RTNDN0YwMDIz
NThDQyAvKiBEaXNwbGF5Qm94LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpc3BsYXlCb3guaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE2Mzc2LDggKzE2MzcwLDYgQEAKIAkJCWlzYSA9IFBC
WEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJMTExMDBGQ0EyMDkyODY4RDAwODFBQTZDIC8q
IExheW91dEFuY2VzdG9ySXRlcmF0b3IuaCAqLywKLQkJCQkxMTk5RkE0QTIwOEUzN0I2MDAyMzU4
Q0MgLyogTGF5b3V0QmxvY2tDb250YWluZXIuY3BwICovLAotCQkJCTExOTlGQTQ5MjA4RTM3QjYw
MDIzNThDQyAvKiBMYXlvdXRCbG9ja0NvbnRhaW5lci5oICovLAogCQkJCTExNUNGQTk2MjA4Qjk1
MkIwMDFFNjk5MSAvKiBMYXlvdXRCb3guY3BwICovLAogCQkJCTExNUNGQTk1MjA4Qjk1MkIwMDFF
Njk5MSAvKiBMYXlvdXRCb3guaCAqLywKIAkJCQkxMTEwMEZDOTIwOTI3Q0JDMDA4MUFBNkMgLyog
TGF5b3V0Q2hpbGRJdGVyYXRvci5oICovLApAQCAtMTYzODYsOCArMTYzNzgsNiBAQAogCQkJCTEx
QjA0MkZCMjBCMEUyMTQwMDgyOEE2QiAvKiBMYXlvdXREZXNjZW5kYW50SXRlcmF0b3IuaCAqLywK
IAkJCQkxMTk5RkE1MjIwOEUzOEQzMDAyMzU4Q0MgLyogTGF5b3V0SW5saW5lQm94LmNwcCAqLywK
IAkJCQkxMTk5RkE1MTIwOEUzOEQzMDAyMzU4Q0MgLyogTGF5b3V0SW5saW5lQm94LmggKi8sCi0J
CQkJMTE5OUZBNEUyMDhFMzg5OTAwMjM1OENDIC8qIExheW91dElubGluZUNvbnRhaW5lci5jcHAg
Ki8sCi0JCQkJMTE5OUZBNEQyMDhFMzg5OTAwMjM1OENDIC8qIExheW91dElubGluZUNvbnRhaW5l
ci5oICovLAogCQkJCTExMTAwRkM3MjA5Mjc2NEMwMDgxQUE2QyAvKiBMYXlvdXRJdGVyYXRvci5o
ICovLAogCQkJCTZGRTdDRkE1MjE3N0YwNjkwMDVCMTU3MyAvKiBMYXlvdXRMaW5lQnJlYWtCb3gu
Y3BwICovLAogCQkJCTZGRTdDRkEzMjE3N0VGMTAwMDVCMTU3MyAvKiBMYXlvdXRMaW5lQnJlYWtC
b3guaCAqLywKQEAgLTMwNTU2LDEzICszMDU0NiwxMSBAQAogCQkJCTU4MDM3MTY0MUE2NkYxRDMw
MEJBRjUxOSAvKiBMYXllckZyYWdtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk3QUEzQTZBMDE5
NEI1OUI2MDAxQ0JEMjQgLyogTGF5ZXJQb29sLmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTMxMENG
NzIwQkE0QTYyMDA2NUE4RDAgLyogTGF5b3V0QW5jZXN0b3JJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJMTE5OUZBNEIyMDhFMzdCNjAwMjM1OENDIC8qIExheW91dEJsb2NrQ29udGFpbmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTVDRkE5NzIwOEI5NTJCMDAxRTY5OTEgLyogTGF5b3V0
Qm94LmggaW4gSGVhZGVycyAqLywKIAkJCQkxMTMxMENGNjIwQkE0QTU2MDA2NUE4RDAgLyogTGF5
b3V0Q2hpbGRJdGVyYXRvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTE5OUZBNDYyMDhFMzVBMzAw
MjM1OENDIC8qIExheW91dENvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTEzMTBDRjUy
MEJBNEE0QzAwNjVBOEQwIC8qIExheW91dERlc2NlbmRhbnRJdGVyYXRvci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMTE5OUZBNTMyMDhFMzhEMzAwMjM1OENDIC8qIExheW91dElubGluZUJveC5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJMTE5OUZBNEYyMDhFMzg5OTAwMjM1OENDIC8qIExheW91dElubGlu
ZUNvbnRhaW5lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTEzMTBDRjQyMEJBNEEzRDAwNjVBOEQw
IC8qIExheW91dEl0ZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQk2RkU3Q0ZBNDIxNzdFRjEw
MDA1QjE1NzMgLyogTGF5b3V0TGluZUJyZWFrQm94LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzFE
NzJGNjE1RkU2OTUzMDBDNEMwN0UgLyogTGF5b3V0TWlsZXN0b25lLmggaW4gSGVhZGVycyAqLywK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tG
b3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDQyYzZmZDgzMzg4NTcyZDAxZGRi
NjAwNDAwNzhjYzc3ZGY2YThhMjguLjViNWY5MzE3NzQxOTU2NTYxNzVmZjRhMjg5MzEyMDZhNDIx
Yzg3MzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtNDk2LDYgKzQ5Niw5
IEBAIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUludHJpbnNpY1dpZHRoQ29u
c3RyYWludHMoKSBjb25zdAogICAgICAgICAgICAgICAgIC8vIFNraXAgZGVzY2VuZGFudHMKICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgh
aXM8Q29udGFpbmVyPihjaGlsZEJveCkgfHwgIWRvd25jYXN0PENvbnRhaW5lcj4oY2hpbGRCb3gp
Lmhhc0luRmxvd09yRmxvYXRpbmdDaGlsZCgpKQorICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgcXVldWUuYXBwZW5kKGRvd25jYXN0PENvbnRhaW5lcj4oY2hpbGRCb3gpLmZpcnN0
SW5GbG93T3JGbG9hdGluZ0NoaWxkKCkpOwogICAgICAgICB9CiAKICAgICAgICAgLy8gQ29tcHV0
ZSBtaW4vbWF4IGludHJpbnNpYyB3aWR0aCBib3R0b20gdXAuCkBAIC01MDMsOSArNTA2LDEwIEBA
IHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUludHJpbnNpY1dpZHRoQ29uc3Ry
YWludHMoKSBjb25zdAogICAgICAgICAgICAgYXV0byYgY2hpbGRCb3ggPSAqcXVldWUudGFrZUxh
c3QoKTsKICAgICAgICAgICAgIGZvcm1hdHRpbmdTdGF0ZS5zZXRJbnRyaW5zaWNXaWR0aENvbnN0
cmFpbnRzKGNoaWxkQm94LCBHZW9tZXRyeTo6aW50cmluc2ljV2lkdGhDb25zdHJhaW50cyhsYXlv
dXRTdGF0ZSwgY2hpbGRCb3gpKTsgCiAgICAgICAgICAgICAvLyBNb3ZlIG92ZXIgdG8gdGhlIG5l
eHQgc2libGluZyBvciB0YWtlIHRoZSBuZXh0IGJveCBpbiB0aGUgcXVldWUuCi0gICAgICAgICAg
ICBpZiAoIWlzPENvbnRhaW5lcj4oY2hpbGRCb3gpIHx8ICFkb3duY2FzdDxDb250YWluZXI+KGNo
aWxkQm94KS5uZXh0SW5GbG93T3JGbG9hdGluZ1NpYmxpbmcoKSkKLSAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgIHF1ZXVlLmFwcGVuZChkb3duY2FzdDxDb250YWluZXI+KGNo
aWxkQm94KS5uZXh0SW5GbG93T3JGbG9hdGluZ1NpYmxpbmcoKSk7CisgICAgICAgICAgICBpZiAo
YXV0byogbmV4dFNpYmxpbmcgPSBjaGlsZEJveC5uZXh0SW5GbG93T3JGbG9hdGluZ1NpYmxpbmco
KSkgeworICAgICAgICAgICAgICAgIHF1ZXVlLmFwcGVuZChuZXh0U2libGluZyk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgZm9y
bWF0dGluZ1N0YXRlRm9yUm9vdC5zZXRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRzKGZvcm1hdHRp
bmdSb290LCBHZW9tZXRyeTo6aW50cmluc2ljV2lkdGhDb25zdHJhaW50cyhsYXlvdXRTdGF0ZSwg
Zm9ybWF0dGluZ1Jvb3QpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRl
eCA0NmM5ZmFjZmFlZjA0NjA4MjVkNzQ1OTU2YzQ1MGMwNmMyNjc2ZmQzLi5jYTFmMGNhODRmMzgz
NWU5M2VmMTkxNThjMTY5ZGIwZjZiZDY2MjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQuY3BwCkBAIC0zNCw3ICszNCw2IEBACiAjaW5jbHVkZSAiTGF5b3V0Qm94LmgiCiAjaW5j
bHVkZSAiTGF5b3V0Q29udGFpbmVyLmgiCiAjaW5jbHVkZSAiTGF5b3V0SW5saW5lQm94LmgiCi0j
aW5jbHVkZSAiTGF5b3V0SW5saW5lQ29udGFpbmVyLmgiCiAjaW5jbHVkZSAiTGF5b3V0U3RhdGUu
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiVGV4dHV0aWwuaCIKQEAgLTc5LDcg
Kzc4LDcgQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6bGF5b3V0KCkgY29uc3QKICAg
ICAgICAgaWYgKGxheW91dEJveC0+ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKQogICAg
ICAgICAgICAgbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KCpsYXlvdXRCb3gsIHVzZWRWYWx1
ZXMpOwogICAgICAgICBlbHNlIGlmIChpczxDb250YWluZXI+KCpsYXlvdXRCb3gpKQotICAgICAg
ICAgICAgY29tcHV0ZU1hcmdpbkJvcmRlckFuZFBhZGRpbmdGb3JJbmxpbmVDb250YWluZXIoZG93
bmNhc3Q8SW5saW5lQ29udGFpbmVyPigqbGF5b3V0Qm94KSwgdXNlZFZhbHVlcyk7CisgICAgICAg
ICAgICBjb21wdXRlTWFyZ2luQm9yZGVyQW5kUGFkZGluZ0ZvcklubGluZUNvbnRhaW5lcihkb3du
Y2FzdDxDb250YWluZXI+KCpsYXlvdXRCb3gpLCB1c2VkVmFsdWVzKTsKICAgICAgICAgZWxzZSBp
ZiAobGF5b3V0Qm94LT5pc1JlcGxhY2VkKCkpCiAgICAgICAgICAgICBjb21wdXRlV2lkdGhBbmRI
ZWlnaHRGb3JSZXBsYWNlZElubGluZUJveCgqbGF5b3V0Qm94LCB1c2VkVmFsdWVzKTsKICAgICAg
ICAgZWxzZSBpZiAoaXM8SW5saW5lQm94PigqbGF5b3V0Qm94KSkKQEAgLTE1OSw3ICsxNTgsNyBA
QCB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojppbml0aWFsaXplTWFyZ2luQm9yZGVyQW5k
UGFkZGluZ0ZvckdlbmVyaWNJbmxpbmVCbwogICAgIGRpc3BsYXlCb3guc2V0UGFkZGluZyh7IH0p
OwogfQogCi12b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlTWFyZ2luQm9yZGVy
QW5kUGFkZGluZ0ZvcklubGluZUNvbnRhaW5lcihjb25zdCBJbmxpbmVDb250YWluZXImIGNvbnRh
aW5lciwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZFZhbHVlcykgY29uc3QKK3ZvaWQgSW5saW5l
Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVNYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRm9ySW5saW5l
Q29udGFpbmVyKGNvbnN0IENvbnRhaW5lciYgY29udGFpbmVyLCBVc2VkSG9yaXpvbnRhbFZhbHVl
cyB1c2VkVmFsdWVzKSBjb25zdAogewogICAgIGNvbXB1dGVIb3Jpem9udGFsTWFyZ2luKGNvbnRh
aW5lciwgdXNlZFZhbHVlcyk7CiAgICAgY29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoY29udGFpbmVy
LCB1c2VkVmFsdWVzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IGJlNmY5
MTVmYzkyNGExMGQ0ODdlNTFkNGQ3ZDhlOGUzY2Y1MDdkNmIuLmVkM2E5MmYyYzY4MWFmNDE1MGU5
MzFiYTJkNmJkZTMyODkyYmNjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaApA
QCAtMzcsNyArMzcsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsK
IAogY2xhc3MgRmxvYXRpbmdTdGF0ZTsKLWNsYXNzIElubGluZUNvbnRhaW5lcjsKIHN0cnVjdCBM
aW5lQ29udGVudDsKIHN0cnVjdCBMaW5lSW5wdXQ7CiAKQEAgLTgzLDcgKzgyLDcgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHRSb290KGNvbnN0IEJveCYsIFVz
ZWRIb3Jpem9udGFsVmFsdWVzKSBjb25zdDsKICAgICB2b2lkIGNvbXB1dGVJbnRyaW5zaWNXaWR0
aEZvckZsb2F0Qm94KGNvbnN0IEJveCYpIGNvbnN0OwotICAgIHZvaWQgY29tcHV0ZU1hcmdpbkJv
cmRlckFuZFBhZGRpbmdGb3JJbmxpbmVDb250YWluZXIoY29uc3QgSW5saW5lQ29udGFpbmVyJiwg
VXNlZEhvcml6b250YWxWYWx1ZXMpIGNvbnN0OworICAgIHZvaWQgY29tcHV0ZU1hcmdpbkJvcmRl
ckFuZFBhZGRpbmdGb3JJbmxpbmVDb250YWluZXIoY29uc3QgQ29udGFpbmVyJiwgVXNlZEhvcml6
b250YWxWYWx1ZXMpIGNvbnN0OwogICAgIHZvaWQgaW5pdGlhbGl6ZU1hcmdpbkJvcmRlckFuZFBh
ZGRpbmdGb3JHZW5lcmljSW5saW5lQm94KGNvbnN0IElubGluZUJveCYpIGNvbnN0OwogICAgIHZv
aWQgY29tcHV0ZUludHJpbnNpY1dpZHRoRm9ySW5saW5lQmxvY2soY29uc3QgQm94JikgY29uc3Q7
CiAgICAgdm9pZCBjb21wdXRlV2lkdGhBbmRIZWlnaHRGb3JSZXBsYWNlZElubGluZUJveChjb25z
dCBCb3gmLCBVc2VkSG9yaXpvbnRhbFZhbHVlcykgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExp
bmVMYXlvdXQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHRMaW5lTGF5b3V0LmNwcAppbmRleCA4ZmMwNmYwZTE5YmFkNTJh
ZTRmOTJlYWFiOTJkMDM1YTM4ZjRlZjJjLi4wYzJmYTA0NDdhYjEzZmMwOWIxOTM2NDY1YjI0ZDhm
NmJlODZjNzAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dExpbmVMYXlvdXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0TGlu
ZUxheW91dC5jcHAKQEAgLTI3OSw4ICsyNzksNiBAQCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
SW5saW5lTGF5b3V0OjpJbmxpbmVMYXlvdXQoY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleAog
CiB2b2lkIElubGluZUZvcm1hdHRpbmdDb250ZXh0OjpJbmxpbmVMYXlvdXQ6OmxheW91dChjb25z
dCBJbmxpbmVJdGVtcyYgaW5saW5lSXRlbXMsIExheW91dFVuaXQgd2lkdGhDb25zdHJhaW50KSBj
b25zdAogewotICAgIEFTU0VSVCghaW5saW5lSXRlbXMuaXNFbXB0eSgpKTsKLQogICAgIGF1dG8m
IGZvcm1hdHRpbmdSb290RGlzcGxheUJveCA9IGxheW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxh
eW91dEJveChtX2Zvcm1hdHRpbmdSb290KTsKICAgICBhdXRvJiBmbG9hdGluZ1N0YXRlID0gbGF5
b3V0U3RhdGUoKS5lc3RhYmxpc2hlZEZvcm1hdHRpbmdTdGF0ZShtX2Zvcm1hdHRpbmdSb290KS5m
bG9hdGluZ1N0YXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZS5jcHAKaW5kZXggYzk0NWJjOTIxOWY4MmYwMmJhMmRhZjA4
NTRkYjQyOWU4ZWI3ODE5MS4uMTgwMWE4ZWIzNjZlZmE0YjhjMzliMTgwZmIwYjcwYmJhYWE2NDYz
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZS5jcHAKQEAgLTI3OSw3ICsyNzksNyBAQCB2b2lkIExpbmU6OmFwcGVuZFRleHRD
b250ZW50KGNvbnN0IElubGluZVRleHRJdGVtJiBpbmxpbmVJdGVtLCBMYXlvdXRVbml0IGxvZ2lj
YQogICAgICAgICBhZGp1c3RCYXNlbGluZUFuZExpbmVIZWlnaHQoaW5saW5lSXRlbSwgcnVuSGVp
Z2h0KTsKICAgICB9CiAKLSAgICBhdXRvIHRleHRDb250ZXh0ID0gQ29udGVudDo6UnVuOjpUZXh0
Q29udGV4dCB7IGlubGluZUl0ZW0uc3RhcnQoKSwgaW5saW5lSXRlbS5pc0NvbGxhcHNlZCgpID8g
MSA6IGlubGluZUl0ZW0ubGVuZ3RoKCksIGlzQ29tcGxldGVseUNvbGxhcHNlZCwgY2FuQmVFeHRl
bmRlZCwgaW5saW5lSXRlbS5pc1doaXRlc3BhY2UoKSB9OworICAgIGF1dG8gdGV4dENvbnRleHQg
PSBDb250ZW50OjpSdW46OlRleHRDb250ZXh0IHsgaW5saW5lSXRlbS5zdGFydCgpLCBpbmxpbmVJ
dGVtLmlzQ29sbGFwc2VkKCkgPyAxIDogaW5saW5lSXRlbS5sZW5ndGgoKSwgaXNDb21wbGV0ZWx5
Q29sbGFwc2VkLCBpbmxpbmVJdGVtLmlzV2hpdGVzcGFjZSgpLCBjYW5CZUV4dGVuZGVkIH07CiAg
ICAgYXV0byBsaW5lSXRlbSA9IHN0ZDo6bWFrZV91bmlxdWU8Q29udGVudDo6UnVuPihpbmxpbmVJ
dGVtLCB0ZXh0Q29udGV4dCwgbG9naWNhbFJlY3QpOwogICAgIGlmIChpc1RyaW1tYWJsZSAmJiAh
aXNDb21wbGV0ZWx5Q29sbGFwc2VkKQogICAgICAgICBtX3RyaW1tYWJsZUNvbnRlbnQuYWRkKGxp
bmVJdGVtLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dEJsb2NrQ29udGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlv
dXR0cmVlL0xheW91dEJsb2NrQ29udGFpbmVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggOGY4ZWNjYTQ2MTZkNzJmZjcyOGYwM2FhYTk3N2Q1Zjg3NThlYjhmYy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvbGF5b3V0dHJlZS9MYXlvdXRCbG9ja0NvbnRhaW5lci5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw2NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1l
dDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IkxheW91dEJsb2NrQ29udGFpbmVyLmgiCi0KLSNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdf
Q09OVEVYVCkKLQotI2luY2x1ZGUgIlJlbmRlclN0eWxlLmgiCi0jaW5jbHVkZSA8d3RmL0lzb01h
bGxvY0lubGluZXMuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7
Ci0KLVdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCbG9ja0NvbnRhaW5lcik7Ci0KLUJsb2Nr
Q29udGFpbmVyOjpCbG9ja0NvbnRhaW5lcihPcHRpb25hbDxFbGVtZW50QXR0cmlidXRlcz4gYXR0
cmlidXRlcywgUmVuZGVyU3R5bGUmJiBzdHlsZSwgQmFzZVR5cGVGbGFncyBiYXNlVHlwZUZsYWdz
KQotICAgIDogQ29udGFpbmVyKGF0dHJpYnV0ZXMsIFdURk1vdmUoc3R5bGUpLCBiYXNlVHlwZUZs
YWdzIHwgQmxvY2tDb250YWluZXJGbGFnKQotewotfQotCi1ib29sIEJsb2NrQ29udGFpbmVyOjpl
c3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QKLXsKLSAgICAvLyA5LjQu
MiBJbmxpbmUgZm9ybWF0dGluZyBjb250ZXh0cwotICAgIC8vIEFuIGlubGluZSBmb3JtYXR0aW5n
IGNvbnRleHQgaXMgZXN0YWJsaXNoZWQgYnkgYSBibG9jayBjb250YWluZXIgYm94IHRoYXQgY29u
dGFpbnMgbm8gYmxvY2stbGV2ZWwgYm94ZXMuCi0KLSAgICAvLyBJdCdzIGVub3VnaCB0byBjaGVj
ayB0aGUgZmlyc3QgaW4tZmxvdyBjaGlsZCBzaW5jZSB3ZSBjYW4ndCBoYXZlIGJvdGggYmxvY2sg
YW5kIGlubGluZSBsZXZlbCBzaWJsaW5nIGJveGVzLgotICAgIGlmIChhdXRvKiBmaXJzdEluRmxv
d0NoaWxkID0gdGhpcy0+Zmlyc3RJbkZsb3dDaGlsZCgpKQotICAgICAgICByZXR1cm4gZmlyc3RJ
bkZsb3dDaGlsZC0+aXNJbmxpbmVMZXZlbEJveCgpOwotCi0gICAgcmV0dXJuIGZhbHNlOwotfQot
Ci1ib29sIEJsb2NrQ29udGFpbmVyOjplc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0
T25seSgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIGVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQoKSAmJiAhZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCk7Ci19Ci0KLX0K
LX0KLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRCbG9ja0NvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0QmxvY2tDb250YWluZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
YTc3ZjRmY2Q4ZjI4ZDRjY2U4OGIxOTVmMzQ2ODgwYTViM2ZlY2I0Zi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5
b3V0dHJlZS9MYXlvdXRCbG9ja0NvbnRhaW5lci5oCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGF5b3V0Q29udGFp
bmVyLmgiCi0jaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgotCi0jaWYgRU5BQkxFKExBWU9VVF9G
T1JNQVRUSU5HX0NPTlRFWFQpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVuZGVy
U3R5bGU7Ci0KLW5hbWVzcGFjZSBMYXlvdXQgewotCi1jbGFzcyBCbG9ja0NvbnRhaW5lciA6IHB1
YmxpYyBDb250YWluZXIgewotICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoQmxvY2tDb250YWlu
ZXIpOwotcHVibGljOgotICAgIEJsb2NrQ29udGFpbmVyKE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1
dGVzPiwgUmVuZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyA9IEJsb2NrQ29udGFpbmVyRmxhZyk7
Ci0KLSAgICBib29sIGVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCBm
aW5hbDsKLSAgICBib29sIGVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHRPbmx5KCkg
Y29uc3QgZmluYWw7Ci19OwotCi19Ci19Ci0KLVNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTEFZT1VU
X0JPWChCbG9ja0NvbnRhaW5lciwgaXNCbG9ja0NvbnRhaW5lcigpKQotCi0jZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dEJveC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRCb3guY3BwCmluZGV4IDg1MzA2
MGEzMTJhOTM2NzBlY2ViZmQwNWU4NGQ0OGFlODUxZDczY2UuLjRkNDdmMTQ5YTZmNTFjMTY4NDdi
ZGFmNjQzNmUxNWM3MGNmMWJlNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9s
YXlvdXR0cmVlL0xheW91dEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91
dHRyZWUvTGF5b3V0Qm94LmNwcApAQCAtODIsNiArODIsMjkgQEAgYm9vbCBCb3g6OmVzdGFibGlz
aGVzQmxvY2tGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Citib29sIEJveDo6ZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0Cit7
CisgICAgLy8gOS40LjIgSW5saW5lIGZvcm1hdHRpbmcgY29udGV4dHMKKyAgICAvLyBBbiBpbmxp
bmUgZm9ybWF0dGluZyBjb250ZXh0IGlzIGVzdGFibGlzaGVkIGJ5IGEgYmxvY2sgY29udGFpbmVy
IGJveCB0aGF0IGNvbnRhaW5zIG5vIGJsb2NrLWxldmVsIGJveGVzLgorICAgIGlmICghaXNCbG9j
a0NvbnRhaW5lckJveCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIWlzQ29u
dGFpbmVyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEZJWE1FID8/PworICAg
IGlmICghZG93bmNhc3Q8Q29udGFpbmVyPigqdGhpcykuZmlyc3RJbkZsb3dDaGlsZCgpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAvLyBJdCdzIGVub3VnaCB0byBjaGVjayB0aGUgZmly
c3QgaW4tZmxvdyBjaGlsZCBzaW5jZSB3ZSBjYW4ndCBoYXZlIGJvdGggYmxvY2sgYW5kIGlubGlu
ZSBsZXZlbCBzaWJsaW5nIGJveGVzLgorICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXI+KCp0
aGlzKS5maXJzdEluRmxvd0NoaWxkKCktPmlzSW5saW5lTGV2ZWxCb3goKTsKK30KKworYm9vbCBC
b3g6OmVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHRPbmx5KCkgY29uc3QKK3sKKyAg
ICByZXR1cm4gZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpICYmICFlc3RhYmxp
c2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKTsKK30KKwogYm9vbCBCb3g6OmVzdGFibGlzaGVz
VGFibGVGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGlzVGFibGVCb3go
KTsKQEAgLTE4MiwxMCArMjA1LDIxIEBAIGNvbnN0IENvbnRhaW5lciYgQm94Ojpmb3JtYXR0aW5n
Q29udGV4dFJvb3QoKSBjb25zdAogICAgIC8vIFdlIHNob3VsZCBuZXZlciBuZWVkIHRvIGFzayB0
aGlzIHF1ZXN0aW9uIG9uIHRoZSBJQ0IuCiAgICAgQVNTRVJUKCFpc0luaXRpYWxDb250YWluaW5n
QmxvY2soKSk7CiAgICAgLy8gQSBib3ggbGl2ZXMgaW4gdGhlIHNhbWUgZm9ybWF0dGluZyBjb250
ZXh0IGFzIGl0cyBjb250YWluaW5nIGJsb2NrIHVubGVzcyB0aGUgY29udGFpbmluZyBibG9jayBl
c3RhYmxpc2hlcyBhIGZvcm1hdHRpbmcgY29udGV4dC4KLSAgICBhdXRvJiBjb250YWluaW5nQmxv
Y2sgPSAqdGhpcy0+Y29udGFpbmluZ0Jsb2NrKCk7Ci0gICAgaWYgKGNvbnRhaW5pbmdCbG9jay5l
c3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpCi0gICAgICAgIHJldHVybiBjb250YWluaW5n
QmxvY2s7Ci0gICAgcmV0dXJuIGNvbnRhaW5pbmdCbG9jay5mb3JtYXR0aW5nQ29udGV4dFJvb3Qo
KTsKKyAgICAvLyBIb3dldmVyIHJlbGF0aXZlbHkgcG9zaXRpb25lZCAoaW5mbG93KSBpbmxpbmUg
Y29udGFpbmVyIGxpdmVzIGluIHRoZSBmb3JtYXR0aW5nIGNvbnRleHQgd2hlcmUgaXRzIHBhcmVu
dCBsaXZlcyB1bmxlc3MKKyAgICAvLyB0aGUgcGFyZW50IGVzdGFibGlzaGVzIGEgZm9ybWF0dGlu
ZyBjb250ZXh0LgorICAgIC8vCisgICAgLy8gPGRpdiBpZD1vdXRlciBzdHlsZT0icG9zaXRpb246
IGFic29sdXRlIj48ZGl2IGlkPWlubmVyPjxzcGFuIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmUi
PmNvbnRlbnQ8L3NwYW4+PC9kaXY+PC9kaXY+CisgICAgLy8gV2hpbGUgdGhlIHJlbGF0aXZlbHkg
cG9zaXRpb25lZCBpbmxpbmUgY29udGFpbmVyIChzcGFuKSBpcyBwbGFjZWQgcmVsYXRpdmUgdG8g
aXRzIGNvbnRhaW5pbmcgYmxvY2sgIm91dGVyIiwgaXQgbGl2ZXMgaW4gdGhlIGlubGluZQorICAg
IC8vIGZvcm1hdHRpbmcgY29udGV4dCBlc3RhYmxpc2hlZCBieSAiaW5uZXIiLgorICAgIGNvbnN0
IENvbnRhaW5lciogYW5jZXN0b3IgPSBudWxscHRyOworICAgIGlmIChpc0lubGluZUJveCgpICYm
IGlzSW5GbG93UG9zaXRpb25lZCgpKQorICAgICAgICBhbmNlc3RvciA9IHBhcmVudCgpOworICAg
IGVsc2UKKyAgICAgICAgYW5jZXN0b3IgPSBjb250YWluaW5nQmxvY2soKTsKKyAgICBBU1NFUlQo
YW5jZXN0b3IpOworICAgIGlmIChhbmNlc3Rvci0+ZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4
dCgpKQorICAgICAgICByZXR1cm4gKmFuY2VzdG9yOworICAgIHJldHVybiBhbmNlc3Rvci0+Zm9y
bWF0dGluZ0NvbnRleHRSb290KCk7CiB9CiAKIGNvbnN0IENvbnRhaW5lciYgQm94Ojppbml0aWFs
Q29udGFpbmluZ0Jsb2NrKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dEJveC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRy
ZWUvTGF5b3V0Qm94LmgKaW5kZXggMzczZTgxOWI5YTU3MjMxYWE3YTI0OTkxYTE3NThjZmU3MGQy
MGZkMS4uNTZlNWZjOTJlMDdjMWU1YTU2NWQxOGM1ZDFkODY3NGIxMDg3NDI5YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0Qm94LmgKQEAgLTY1LDkgKzY1LDcg
QEAgcHVibGljOgogICAgIGVudW0gQmFzZVR5cGVGbGFnIHsKICAgICAgICAgQm94RmxhZyAgICAg
ICAgICAgICAgID0gMSA8PCAwLAogICAgICAgICBDb250YWluZXJGbGFnICAgICAgICAgPSAxIDw8
IDEsCi0gICAgICAgIEJsb2NrQ29udGFpbmVyRmxhZyAgICA9IDEgPDwgMiwKICAgICAgICAgSW5s
aW5lQm94RmxhZyAgICAgICAgID0gMSA8PCAzLAotICAgICAgICBJbmxpbmVDb250YWluZXJGbGFn
ICAgPSAxIDw8IDQsCiAgICAgICAgIExpbmVCcmVha0JveEZsYWcgICAgICA9IDEgPDwgNQogICAg
IH07CiAgICAgdHlwZWRlZiB1bnNpZ25lZCBCYXNlVHlwZUZsYWdzOwpAQCAtNzksOCArNzcsOCBA
QCBwdWJsaWM6CiAgICAgYm9vbCBlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSBj
b25zdDsKICAgICBib29sIGVzdGFibGlzaGVzVGFibGVGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0
OwogICAgIGJvb2wgZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0T25seSgpIGNvbnN0
OwotICAgIHZpcnR1YWwgYm9vbCBlc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KLSAgICB2aXJ0dWFsIGJvb2wgZXN0YWJsaXNoZXNJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dE9ubHkoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGJv
b2wgZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0OworICAgIGJvb2wg
ZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dE9ubHkoKSBjb25zdDsKIAogICAgIGJv
b2wgaXNJbkZsb3coKSBjb25zdCB7IHJldHVybiAhaXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRp
b25lZCgpOyB9CiAgICAgYm9vbCBpc1Bvc2l0aW9uZWQoKSBjb25zdCB7IHJldHVybiBpc0luRmxv
d1Bvc2l0aW9uZWQoKSB8fCBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKTsgfQpAQCAtMTMzLDkgKzEz
MSwxMCBAQCBwdWJsaWM6CiAgICAgY29uc3QgQm94KiBwcmV2aW91c0luRmxvd09yRmxvYXRpbmdT
aWJsaW5nKCkgY29uc3Q7CiAKICAgICBib29sIGlzQ29udGFpbmVyKCkgY29uc3QgeyByZXR1cm4g
bV9iYXNlVHlwZUZsYWdzICYgQ29udGFpbmVyRmxhZzsgfQotICAgIGJvb2wgaXNCbG9ja0NvbnRh
aW5lcigpIGNvbnN0IHsgcmV0dXJuIG1fYmFzZVR5cGVGbGFncyAmIEJsb2NrQ29udGFpbmVyRmxh
ZzsgfQorICAgIGJvb2wgaXNCbG9ja0NvbnRhaW5lcigpIGNvbnN0IHsgcmV0dXJuIGlzQmxvY2tM
ZXZlbEJveCgpICYmIGlzQ29udGFpbmVyKCk7IH0KKyAgICBib29sIGlzSW5saW5lQ29udGFpbmVy
KCkgY29uc3QgeyByZXR1cm4gaXNJbmxpbmVMZXZlbEJveCgpICYmIGlzQ29udGFpbmVyKCk7IH0K
KwogICAgIGJvb2wgaXNJbmxpbmVCb3goKSBjb25zdCB7IHJldHVybiBtX2Jhc2VUeXBlRmxhZ3Mg
JiBJbmxpbmVCb3hGbGFnOyB9Ci0gICAgYm9vbCBpc0lubGluZUNvbnRhaW5lcigpIGNvbnN0IHsg
cmV0dXJuIG1fYmFzZVR5cGVGbGFncyAmIElubGluZUNvbnRhaW5lckZsYWc7IH0KICAgICBib29s
IGlzTGluZUJyZWFrQm94KCkgY29uc3QgeyByZXR1cm4gbV9iYXNlVHlwZUZsYWdzICYgTGluZUJy
ZWFrQm94RmxhZzsgfQogCiAgICAgYm9vbCBpc1BhZGRpbmdBcHBsaWNhYmxlKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVD
b250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SW5s
aW5lQ29udGFpbmVyLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDAxODk5MDQ1
YjQ0NDNiNzI5OTFkZmNlNWZmNTYzOGY4Y2IwNDgxMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9M
YXlvdXRJbmxpbmVDb250YWluZXIuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzQgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMYXlvdXRJbmxpbmVD
b250YWluZXIuaCIKLQotI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotCi0j
aW5jbHVkZSAiUmVuZGVyU3R5bGUuaCIKLSNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jSW5saW5lcy5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5b3V0IHsKLQotV1RGX01BS0Vf
SVNPX0FMTE9DQVRFRF9JTVBMKElubGluZUNvbnRhaW5lcik7Ci0KLUlubGluZUNvbnRhaW5lcjo6
SW5saW5lQ29udGFpbmVyKE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiBhdHRyaWJ1dGVzLCBS
ZW5kZXJTdHlsZSYmIHN0eWxlLCBCYXNlVHlwZUZsYWdzIGJhc2VUeXBlRmxhZ3MpCi0gICAgOiBD
b250YWluZXIoYXR0cmlidXRlcywgV1RGTW92ZShzdHlsZSksIGJhc2VUeXBlRmxhZ3MgfCBJbmxp
bmVDb250YWluZXJGbGFnKQotewotfQotCi1ib29sIElubGluZUNvbnRhaW5lcjo6ZXN0YWJsaXNo
ZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0Ci17Ci0gICAgaWYgKCFpc0lubGluZUJs
b2NrQm94KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIC8vIDkuNC4yIElubGluZSBm
b3JtYXR0aW5nIGNvbnRleHRzCi0gICAgLy8gQW4gaW5saW5lIGZvcm1hdHRpbmcgY29udGV4dCBp
cyBlc3RhYmxpc2hlZCBieSBhIGJsb2NrIGNvbnRhaW5lciBib3ggdGhhdCBjb250YWlucyBubyBi
bG9jay1sZXZlbCBib3hlcy4KLSAgICBpZiAoYXV0byogZmlyc3RJbkZsb3dDaGlsZCA9IHRoaXMt
PmZpcnN0SW5GbG93Q2hpbGQoKSkKLSAgICAgICAgcmV0dXJuIGZpcnN0SW5GbG93Q2hpbGQtPmlz
SW5saW5lTGV2ZWxCb3goKTsKLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotY29uc3QgQ29udGFp
bmVyJiBJbmxpbmVDb250YWluZXI6OmZvcm1hdHRpbmdDb250ZXh0Um9vdCgpIGNvbnN0Ci17Ci0g
ICAgLy8gUmVsYXRpdmVseSBwb3NpdGlvbmVkIChpbmZsb3cpIGlubGluZSBjb250YWluZXIgbGl2
ZXMgaW4gdGhlIGZvcm1hdHRpbmcgY29udGV4dCB3aGVyZSBpdHMgcGFyZW50IGxpdmVzIHVubGVz
cwotICAgIC8vIHRoZSBwYXJlbnQgZXN0YWJsaXNoZXMgYSBmb3JtYXR0aW5nIGNvbnRleHQuIFRo
aXMgaXMgc2xpZ2h0bHkgZGlmZmVyZW50IGZyb20gdGhlIHVzdWFsIGJlaGF2aW9yIHdoaWNoIGlz
IGNvbnRhaW5pbmcgYmxvY2sgZHJpdmVuLgotICAgIC8vCi0gICAgLy8gPGRpdiBpZD1vdXRlciBz
dHlsZT0icG9zaXRpb246IGFic29sdXRlIj4+PGRpdiBpZD1pbm5lcj48c3BhbiBzdHlsZT0icG9z
aXRpb246IHJlbGF0aXZlIj5jb250ZW50PC9zcGFuPjwvZGl2PjwvZGl2PgotICAgIC8vIFdoaWxl
IHRoZSByZWxhdGl2ZWx5IHBvc2l0aW9uZWQgaW5saW5lIGNvbnRhaW5lciAoc3BhbikgaXMgcGxh
Y2VkIHJlbGF0aXZlIHRvIGl0cyBjb250YWluaW5nIGJsb2NrICJvdXRlciIsIGl0IGxpdmVzIGlu
IHRoZSBpbmxpbmUKLSAgICAvLyBmb3JtYXR0aW5nIGNvbnRleHQgZXN0YWJsaXNoZWQgYnkgImlu
bmVyIi4KLSAgICBhdXRvJiBhbmNlc3RvciA9IGlzSW5GbG93UG9zaXRpb25lZCgpID8gKnBhcmVu
dCgpIDogKmNvbnRhaW5pbmdCbG9jaygpOwotICAgIGlmIChhbmNlc3Rvci5lc3RhYmxpc2hlc0Zv
cm1hdHRpbmdDb250ZXh0KCkpCi0gICAgICAgIHJldHVybiBhbmNlc3RvcjsKLSAgICByZXR1cm4g
YW5jZXN0b3IuZm9ybWF0dGluZ0NvbnRleHRSb290KCk7Ci19Ci0KLX0KLX0KLQotI2VuZGlmCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJbmxpbmVD
b250YWluZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91dElubGlu
ZUNvbnRhaW5lci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlZjY5Njk1ZTY0ODlk
ZmMxZTkzODJjZTdhNTdhOTAzNDEzYzk5ZDg5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0cmVlL0xheW91
dElubGluZUNvbnRhaW5lci5oCisrKyAvZGV2L251bGwKQEAgLTEsNTMgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiTGF5b3V0Q29udGFpbmVyLmgiCi0jaW5j
bHVkZSA8d3RmL0lzb01hbGxvYy5oPgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NP
TlRFWFQpCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgUmVuZGVyU3R5bGU7Ci0KLW5h
bWVzcGFjZSBMYXlvdXQgewotCi1jbGFzcyBJbmxpbmVDb250YWluZXIgOiBwdWJsaWMgQ29udGFp
bmVyIHsKLSAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKElubGluZUNvbnRhaW5lcik7Ci1wdWJs
aWM6Ci0gICAgSW5saW5lQ29udGFpbmVyKE9wdGlvbmFsPEVsZW1lbnRBdHRyaWJ1dGVzPiwgUmVu
ZGVyU3R5bGUmJiwgQmFzZVR5cGVGbGFncyA9IElubGluZUNvbnRhaW5lckZsYWcpOwotCi0gICAg
Ym9vbCBlc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgZmluYWw7Ci0g
ICAgY29uc3QgQ29udGFpbmVyJiBmb3JtYXR0aW5nQ29udGV4dFJvb3QoKSBjb25zdCBmaW5hbDsK
LX07Ci0KLX0KLX0KLQotU1BFQ0lBTElaRV9UWVBFX1RSQUlUU19MQVlPVVRfQk9YKElubGluZUNv
bnRhaW5lciwgaXNJbmxpbmVDb250YWluZXIoKSkKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRJdGVyYXRvci5oIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0SXRlcmF0b3IuaAppbmRleCBlYmJjYjYzNTk5
YWMzYWQwZWE5MmEwY2JhOTRmOGU3ZDAzODk1NTYwLi4zMzE0OTExMWI0MzA0YmM5YjEwNDJlYzBk
MjI4MDk1ZWZjY2ZjYmE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0
dHJlZS9MYXlvdXRJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9sYXlvdXR0
cmVlL0xheW91dEl0ZXJhdG9yLmgKQEAgLTY0LDggKzY0LDEwIEBAIGlubGluZSBjb25zdCBCb3gq
IGZpcnN0Q2hpbGQoVSYgb2JqZWN0KQogICAgIHJldHVybiBvYmplY3QuZmlyc3RDaGlsZCgpOwog
fQogCi1pbmxpbmUgY29uc3QgQm94KiBmaXJzdENoaWxkKGNvbnN0IEJveCYpCitpbmxpbmUgY29u
c3QgQm94KiBmaXJzdENoaWxkKGNvbnN0IEJveCYgYm94KQogeworICAgIGlmIChpczxDb250YWlu
ZXI+KGJveCkpCisgICAgICAgIHJldHVybiBkb3duY2FzdDxDb250YWluZXI+KGJveCkuZmlyc3RD
aGlsZCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvbGF5b3V0dHJlZS9MYXlvdXRUcmVlQnVpbGRlci5jcHAKaW5kZXggY2QzOTYy
NmQxM2Y4OGFlZTJlMzBjNzFkYjIxNTRmNzU2OGIyZjUzMy4uMzRhMzQwMmI1YTRjOTFjZmYzZjJh
MTFlNTBkNWM0MTYxNGRhNTM1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xh
eW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmNwcApAQCAtMzEsMTIgKzMxLDExIEBACiAj
aW5jbHVkZSAiRGlzcGxheUJveC5oIgogI2luY2x1ZGUgIkRpc3BsYXlSdW4uaCIKICNpbmNsdWRl
ICJJbmxpbmVGb3JtYXR0aW5nU3RhdGUuaCIKLSNpbmNsdWRlICJMYXlvdXRCbG9ja0NvbnRhaW5l
ci5oIgogI2luY2x1ZGUgIkxheW91dEJveC5oIgogI2luY2x1ZGUgIkxheW91dENoaWxkSXRlcmF0
b3IuaCIKICNpbmNsdWRlICJMYXlvdXRDb250YWluZXIuaCIKKyNpbmNsdWRlICJMYXlvdXREZXNj
ZW5kYW50SXRlcmF0b3IuaCIKICNpbmNsdWRlICJMYXlvdXRJbmxpbmVCb3guaCIKLSNpbmNsdWRl
ICJMYXlvdXRJbmxpbmVDb250YWluZXIuaCIKICNpbmNsdWRlICJMYXlvdXRTdGF0ZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVyYXRvci5oIgpA
QCAtNzUsOCArNzQsMTcgQEAgc3RkOjp1bmlxdWVfcHRyPENvbnRhaW5lcj4gVHJlZUJ1aWxkZXI6
OmNyZWF0ZUxheW91dFRyZWUoY29uc3QgUmVuZGVyVmlldyYgcmVuZGUKICAgICBzdHlsZS5zZXRM
b2dpY2FsV2lkdGgoTGVuZ3RoKHJlbmRlclZpZXcud2lkdGgoKSwgRml4ZWQpKTsKICAgICBzdHls
ZS5zZXRMb2dpY2FsSGVpZ2h0KExlbmd0aChyZW5kZXJWaWV3LmhlaWdodCgpLCBGaXhlZCkpOwog
Ci0gICAgc3RkOjp1bmlxdWVfcHRyPENvbnRhaW5lcj4gaW5pdGlhbENvbnRhaW5pbmdCbG9jayhu
ZXcgQmxvY2tDb250YWluZXIoV1RGOjpudWxsb3B0LCBXVEZNb3ZlKHN0eWxlKSkpOworICAgIHN0
ZDo6dW5pcXVlX3B0cjxDb250YWluZXI+IGluaXRpYWxDb250YWluaW5nQmxvY2sobmV3IENvbnRh
aW5lcihXVEY6Om51bGxvcHQsIFdURk1vdmUoc3R5bGUpKSk7CiAgICAgVHJlZUJ1aWxkZXI6OmNy
ZWF0ZVN1YlRyZWUocmVuZGVyVmlldywgKmluaXRpYWxDb250YWluaW5nQmxvY2spOworCisgICAg
Ly8gTm90IGVmZmljaWVudCwgYnV0IHRoaXMgaXMgdGVtcG9yYXJ5IGFueXdheS4KKyAgICAvLyBD
b2xsZWN0IHRoZSBvdXQtb2YtZmxvdyBkZXNjZW5kYW50cyBhdCB0aGUgZm9ybWF0dGluZyByb290
IGxldmVsIChhcyBvcHBvc2VkIHRvIGF0IHRoZSBjb250YWluaW5nIGJsb2NrIGxldmVsLCB0aG91
Z2ggdGhleSBtaWdodCBiZSB0aGUgc2FtZSkuCisgICAgZm9yIChhdXRvJiBkZXNjZW5kYW50IDog
ZGVzY2VuZGFudHNPZlR5cGU8Qm94PigqaW5pdGlhbENvbnRhaW5pbmdCbG9jaykpIHsKKyAgICAg
ICAgaWYgKCFkZXNjZW5kYW50LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAg
Y29udGludWU7CisgICAgICAgIGNvbnN0X2Nhc3Q8Q29udGFpbmVyJj4oZGVzY2VuZGFudC5mb3Jt
YXR0aW5nQ29udGV4dFJvb3QoKSkuYWRkT3V0T2ZGbG93RGVzY2VuZGFudChkZXNjZW5kYW50KTsK
KyAgICB9CisKICAgICByZXR1cm4gaW5pdGlhbENvbnRhaW5pbmdCbG9jazsKIH0KIApAQCAtMTM4
LDEyICsxNDYsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Qm94PiBUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5
b3V0Qm94KGNvbnN0IFJlbmRlckVsZW1lbnQmIHBhcmVudFJlbgogCiAgICAgaWYgKGlzPFJlbmRl
clRhYmxlPihyZW5kZXJlcikpIHsKICAgICAgICAgLy8gQ29uc3RydWN0IHRoZSBwcmluY2lwYWwg
dGFibGUgd3JhcHBlciBib3ggKGFuZCBub3QgdGhlIHRhYmxlIGJveCBpdHNlbGYpLgotICAgICAg
ICBpZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlKQotICAgICAgICAgICAgY2hp
bGRMYXlvdXRCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2NrQ29udGFpbmVyPihCb3g6OkVsZW1l
bnRBdHRyaWJ1dGVzIHsgQm94OjpFbGVtZW50VHlwZTo6VGFibGVXcmFwcGVyQm94IH0sIFJlbmRl
clN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7Ci0gICAgICAgIGVsc2UgewotICAgICAg
ICAgICAgQVNTRVJUKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpJbmxpbmVUYWJsZSk7Ci0g
ICAgICAgICAgICBjaGlsZExheW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5saW5lQ29udGFp
bmVyPihCb3g6OkVsZW1lbnRBdHRyaWJ1dGVzIHsgQm94OjpFbGVtZW50VHlwZTo6VGFibGVXcmFw
cGVyQm94IH0sIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7Ci0gICAgICAg
IH0KKyAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPENvbnRhaW5lcj4o
Qm94OjpFbGVtZW50QXR0cmlidXRlcyB7IEJveDo6RWxlbWVudFR5cGU6OlRhYmxlV3JhcHBlckJv
eCB9LCBSZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOwogICAgIH0gZWxzZSBp
ZiAoaXM8UmVuZGVyUmVwbGFjZWQ+KHJlbmRlcmVyKSkgewogICAgICAgICBpZiAoZGlzcGxheVR5
cGUgPT0gRGlzcGxheVR5cGU6OkJsb2NrKQogICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBz
dGQ6Om1ha2VfdW5pcXVlPEJveD4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5kZXJT
dHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOwpAQCAtMTYzLDE1ICsxNjYsMTUgQEAgc3Rk
Ojp1bmlxdWVfcHRyPEJveD4gVHJlZUJ1aWxkZXI6OmNyZWF0ZUxheW91dEJveChjb25zdCBSZW5k
ZXJFbGVtZW50JiBwYXJlbnRSZW4KICAgICAgICAgICAgICAgICBhdXRvIHN0eWxlID0gUmVuZGVy
U3R5bGU6OmNsb25lUHRyKHJlbmRlcmVyLnN0eWxlKCkpOwogICAgICAgICAgICAgICAgIHN0eWxl
LT5zZXRUb3AoeyBvZmZzZXQtPmhlaWdodCgpLCBGaXhlZCB9KTsKICAgICAgICAgICAgICAgICBz
dHlsZS0+c2V0TGVmdCh7IG9mZnNldC0+d2lkdGgoKSwgRml4ZWQgfSk7Ci0gICAgICAgICAgICAg
ICAgY2hpbGRMYXlvdXRCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2NrQ29udGFpbmVyPihlbGVt
ZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFdURk1vdmUoKnN0eWxlKSk7CisgICAgICAgICAgICAg
ICAgY2hpbGRMYXlvdXRCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPENvbnRhaW5lcj4oZWxlbWVudEF0
dHJpYnV0ZXMocmVuZGVyZXIpLCBXVEZNb3ZlKCpzdHlsZSkpOwogICAgICAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBzdGQ6Om1ha2VfdW5pcXVlPEJsb2Nr
Q29udGFpbmVyPihlbGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9u
ZShyZW5kZXJlci5zdHlsZSgpKSk7CisgICAgICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBz
dGQ6Om1ha2VfdW5pcXVlPENvbnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBS
ZW5kZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOwogICAgICAgICB9IGVsc2UgaWYg
KGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpJbmxpbmUpCi0gICAgICAgICAgICBjaGlsZExh
eW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8SW5saW5lQ29udGFpbmVyPihlbGVtZW50QXR0cmli
dXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5zdHlsZSgpKSk7Cisg
ICAgICAgICAgICBjaGlsZExheW91dEJveCA9IHN0ZDo6bWFrZV91bmlxdWU8Q29udGFpbmVyPihl
bGVtZW50QXR0cmlidXRlcyhyZW5kZXJlciksIFJlbmRlclN0eWxlOjpjbG9uZShyZW5kZXJlci5z
dHlsZSgpKSk7CiAgICAgICAgIGVsc2UgaWYgKGRpc3BsYXlUeXBlID09IERpc3BsYXlUeXBlOjpJ
bmxpbmVCbG9jaykKLSAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94ID0gc3RkOjptYWtlX3VuaXF1
ZTxJbmxpbmVDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVuZGVyU3R5
bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKKyAgICAgICAgICAgIGNoaWxkTGF5b3V0Qm94
ID0gc3RkOjptYWtlX3VuaXF1ZTxDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJlbmRlcmVy
KSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKICAgICAgICAgZWxzZSBp
ZiAoZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlQ2FwdGlvbiB8fCBkaXNwbGF5VHlw
ZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVDZWxsKSB7Ci0gICAgICAgICAgICBjaGlsZExheW91dEJv
eCA9IHN0ZDo6bWFrZV91bmlxdWU8QmxvY2tDb250YWluZXI+KGVsZW1lbnRBdHRyaWJ1dGVzKHJl
bmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkpKTsKKyAgICAgICAg
ICAgIGNoaWxkTGF5b3V0Qm94ID0gc3RkOjptYWtlX3VuaXF1ZTxDb250YWluZXI+KGVsZW1lbnRB
dHRyaWJ1dGVzKHJlbmRlcmVyKSwgUmVuZGVyU3R5bGU6OmNsb25lKHJlbmRlcmVyLnN0eWxlKCkp
KTsKICAgICAgICAgfSBlbHNlIGlmIChkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVS
b3dHcm91cCB8fCBkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVIZWFkZXJHcm91cCB8
fCBkaXNwbGF5VHlwZSA9PSBEaXNwbGF5VHlwZTo6VGFibGVGb290ZXJHcm91cAogICAgICAgICAg
ICAgfHwgZGlzcGxheVR5cGUgPT0gRGlzcGxheVR5cGU6OlRhYmxlUm93IHx8IGRpc3BsYXlUeXBl
ID09IERpc3BsYXlUeXBlOjpUYWJsZUNvbHVtbkdyb3VwIHx8IGRpc3BsYXlUeXBlID09IERpc3Bs
YXlUeXBlOjpUYWJsZUNvbHVtbikgewogICAgICAgICAgICAgY2hpbGRMYXlvdXRCb3ggPSBzdGQ6
Om1ha2VfdW5pcXVlPENvbnRhaW5lcj4oZWxlbWVudEF0dHJpYnV0ZXMocmVuZGVyZXIpLCBSZW5k
ZXJTdHlsZTo6Y2xvbmUocmVuZGVyZXIuc3R5bGUoKSkpOwpAQCAtMTgwLDEyICsxODMsNiBAQCBz
dGQ6OnVuaXF1ZV9wdHI8Qm94PiBUcmVlQnVpbGRlcjo6Y3JlYXRlTGF5b3V0Qm94KGNvbnN0IFJl
bmRlckVsZW1lbnQmIHBhcmVudFJlbgogICAgICAgICAgICAgcmV0dXJuIHsgfTsKICAgICAgICAg
fQogICAgIH0KLQotICAgIGlmIChjaGlsZExheW91dEJveC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCkpIHsKLSAgICAgICAgLy8gTm90IGVmZmljaWVudCwgYnV0IHRoaXMgaXMgdGVtcG9yYXJ5IGFu
eXdheS4KLSAgICAgICAgLy8gQ29sbGVjdCB0aGUgb3V0LW9mLWZsb3cgZGVzY2VuZGFudHMgYXQg
dGhlIGZvcm1hdHRpbmcgcm9vdCBsZXZlbCAoYXMgb3Bwb3NlZCB0byBhdCB0aGUgY29udGFpbmlu
ZyBibG9jayBsZXZlbCwgdGhvdWdoIHRoZXkgbWlnaHQgYmUgdGhlIHNhbWUpLgotICAgICAgICBj
b25zdF9jYXN0PENvbnRhaW5lciY+KGNoaWxkTGF5b3V0Qm94LT5mb3JtYXR0aW5nQ29udGV4dFJv
b3QoKSkuYWRkT3V0T2ZGbG93RGVzY2VuZGFudCgqY2hpbGRMYXlvdXRCb3gpOwotICAgIH0KICAg
ICByZXR1cm4gY2hpbGRMYXlvdXRCb3g7CiB9CiAKQEAgLTIwNCw3ICsyMDEsNyBAQCB2b2lkIFRy
ZWVCdWlsZGVyOjpjcmVhdGVUYWJsZVN0cnVjdHVyZShjb25zdCBSZW5kZXJUYWJsZSYgdGFibGVS
ZW5kZXJlciwgQ29udGFpbgogICAgICAgICB0YWJsZUNoaWxkID0gdGFibGVDaGlsZC0+bmV4dFNp
YmxpbmcoKTsKICAgICB9CiAKLSAgICBhdXRvIHRhYmxlQm94ID0gc3RkOjptYWtlX3VuaXF1ZTxC
bG9ja0NvbnRhaW5lcj4oQm94OjpFbGVtZW50QXR0cmlidXRlcyB7IEJveDo6RWxlbWVudFR5cGU6
OlRhYmxlQm94IH0sIFJlbmRlclN0eWxlOjpjbG9uZSh0YWJsZVJlbmRlcmVyLnN0eWxlKCkpKTsK
KyAgICBhdXRvIHRhYmxlQm94ID0gc3RkOjptYWtlX3VuaXF1ZTxDb250YWluZXI+KEJveDo6RWxl
bWVudEF0dHJpYnV0ZXMgeyBCb3g6OkVsZW1lbnRUeXBlOjpUYWJsZUJveCB9LCBSZW5kZXJTdHls
ZTo6Y2xvbmUodGFibGVSZW5kZXJlci5zdHlsZSgpKSk7CiAgICAgYXBwZW5kQ2hpbGQodGFibGVX
cmFwcGVyQm94LCAqdGFibGVCb3gpOwogICAgIHdoaWxlICh0YWJsZUNoaWxkKSB7CiAgICAgICAg
IFRyZWVCdWlsZGVyOjpjcmVhdGVTdWJUcmVlKGRvd25jYXN0PFJlbmRlckVsZW1lbnQ+KCp0YWJs
ZUNoaWxkKSwgKnRhYmxlQm94KTsKQEAgLTI2OCw0MCArMjY1LDI4IEBAIHN0YXRpYyB2b2lkIG91
dHB1dExheW91dEJveChUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBj
b25zdCBEaXNwCiAgICAgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKQogICAg
ICAgICBzdHJlYW0gPDwgIltmbG9hdF0gIjsKIAotICAgIGlmIChpczxDb250YWluZXI+KGxheW91
dEJveCkpIHsKLSAgICAgICAgaWYgKGxheW91dEJveC5pc1RhYmxlV3JhcHBlckJveCgpKQotICAg
ICAgICAgICAgc3RyZWFtIDw8ICJUQUJMRSBwcmluY2lwYWwiOwotICAgICAgICBlbHNlIGlmIChp
czxJbmxpbmVDb250YWluZXI+KGxheW91dEJveCkpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBm
aXggbmFtZXMKLSAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNJbmxpbmVCbG9ja0JveCgpKQot
ICAgICAgICAgICAgICAgIHN0cmVhbSA8PCAiRElWIGlubGluZS1ibG9jayBjb250YWluZXIiOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIHN0cmVhbSA8PCAiU1BBTiBpbmxpbmUg
Y29udGFpbmVyIjsKLSAgICAgICAgfSBlbHNlIGlmIChpczxCbG9ja0NvbnRhaW5lcj4obGF5b3V0
Qm94KSkgewotICAgICAgICAgICAgaWYgKGxheW91dEJveC5pc0luaXRpYWxDb250YWluaW5nQmxv
Y2soKSkKLSAgICAgICAgICAgICAgICBzdHJlYW0gPDwgIkluaXRpYWwgY29udGFpbmluZyBibG9j
ayI7Ci0gICAgICAgICAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNEb2N1bWVudEJveCgpKQotICAg
ICAgICAgICAgICAgIHN0cmVhbSA8PCAiSFRNTCI7Ci0gICAgICAgICAgICBlbHNlIGlmIChsYXlv
dXRCb3guaXNCb2R5Qm94KCkpCi0gICAgICAgICAgICAgICAgc3RyZWFtIDw8ICJCT0RZIjsKLSAg
ICAgICAgICAgIGVsc2UgaWYgKGxheW91dEJveC5pc1RhYmxlQm94KCkpCi0gICAgICAgICAgICAg
ICAgc3RyZWFtIDw8ICJUQUJMRSI7Ci0gICAgICAgICAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNU
YWJsZUNhcHRpb24oKSkKLSAgICAgICAgICAgICAgICBzdHJlYW0gPDwgIkNBUFRJT04iOwotICAg
ICAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzVGFibGVDZWxsKCkpCi0gICAgICAgICAgICAg
ICAgc3RyZWFtIDw8ICJURCI7Ci0gICAgICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgICAgICAv
LyBGSVhNRQotICAgICAgICAgICAgICAgIHN0cmVhbSA8PCAiRElWIjsKLSAgICAgICAgICAgIH0K
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNUYWJsZVJvdygp
KQotICAgICAgICAgICAgICAgIHN0cmVhbSA8PCAiVFIiOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIHN0cmVhbSA8PCAidW5rbm93biBjb250YWluZXIiOwotICAgICAgICB9Ci0g
ICAgfSBlbHNlIGlmIChsYXlvdXRCb3guaXNJbmxpbmVMZXZlbEJveCgpKSB7Ci0gICAgICAgIGlm
IChsYXlvdXRCb3gucmVwbGFjZWQoKSkKKyAgICBpZiAobGF5b3V0Qm94LmlzSW5pdGlhbENvbnRh
aW5pbmdCbG9jaygpKQorICAgICAgICBzdHJlYW0gPDwgIkluaXRpYWwgY29udGFpbmluZyBibG9j
ayI7CisgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzRG9jdW1lbnRCb3goKSkKKyAgICAgICAgc3Ry
ZWFtIDw8ICJIVE1MIjsKKyAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNCb2R5Qm94KCkpCisgICAg
ICAgIHN0cmVhbSA8PCAiQk9EWSI7CisgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzVGFibGVXcmFw
cGVyQm94KCkpCisgICAgICAgIHN0cmVhbSA8PCAiVEFCTEUgcHJpbmNpcGFsIjsKKyAgICBlbHNl
IGlmIChsYXlvdXRCb3guaXNUYWJsZUJveCgpKQorICAgICAgICBzdHJlYW0gPDwgIlRBQkxFIjsK
KyAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNUYWJsZUNhcHRpb24oKSkKKyAgICAgICAgc3RyZWFt
IDw8ICJDQVBUSU9OIjsKKyAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNUYWJsZUNlbGwoKSkKKyAg
ICAgICAgc3RyZWFtIDw8ICJURCI7CisgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzVGFibGVSb3co
KSkKKyAgICAgICAgc3RyZWFtIDw8ICJUUiI7CisgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzSW5s
aW5lQmxvY2tCb3goKSkKKyAgICAgICAgc3RyZWFtIDw8ICJJbmxpbmUtYmxvY2sgY29udGFpbmVy
IjsKKyAgICBlbHNlIGlmIChsYXlvdXRCb3guaXNJbmxpbmVMZXZlbEJveCgpKSB7CisgICAgICAg
IGlmIChsYXlvdXRCb3guaXNJbmxpbmVDb250YWluZXIoKSkKKyAgICAgICAgICAgIHN0cmVhbSA8
PCAiU1BBTiBpbmxpbmUgY29udGFpbmVyIjsKKyAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94LnJl
cGxhY2VkKCkpCiAgICAgICAgICAgICBzdHJlYW0gPDwgIklNRyByZXBsYWNlZCBpbmxpbmUgYm94
IjsKICAgICAgICAgZWxzZSBpZiAobGF5b3V0Qm94LmlzQW5vbnltb3VzKCkpCiAgICAgICAgICAg
ICBzdHJlYW0gPDwgImFub255bW91cyBpbmxpbmUgYm94IjsKQEAgLTMxMiw3ICsyOTcsNyBAQCBz
dGF0aWMgdm9pZCBvdXRwdXRMYXlvdXRCb3goVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBCb3gm
IGxheW91dEJveCwgY29uc3QgRGlzcAogICAgIH0gZWxzZSBpZiAobGF5b3V0Qm94LmlzQmxvY2tM
ZXZlbEJveCgpKQogICAgICAgICBzdHJlYW0gPDwgImJsb2NrIGJveCI7CiAgICAgZWxzZQotICAg
ICAgICBzdHJlYW0gPDwgImJveCI7CisgICAgICAgIHN0cmVhbSA8PCAidW5rbm93biBib3giOwog
CiAgICAgLy8gRklYTUU6IElubGluZSB0ZXh0IHJ1bnMgZG9uJ3QgY3JlYXRlIGRpc3BsYXkgYm94
ZXMgeWV0LgogICAgIGlmIChkaXNwbGF5Qm94KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9sYXlvdXR0cmVlL0xheW91dFRyZWVCdWlsZGVyLmgKaW5kZXggNzk0ODc0YjRhNmI5NTg0
OWNjZjFkMjdlZmNjYWE4ODgyYzkxNzZjOC4uY2JjZDczMGM3YzUyZGFmZmYyYjU0NzVmNmQyYTJi
ODUxNmNiYjJkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2xheW91dHRyZWUv
TGF5b3V0VHJlZUJ1aWxkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvbGF5b3V0dHJl
ZS9MYXlvdXRUcmVlQnVpbGRlci5oCkBAIC0zMCw2ICszMCw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIFJlbmRlckVsZW1lbnQ7CitjbGFzcyBSZW5kZXJPYmplY3Q7CiBjbGFzcyBS
ZW5kZXJUYWJsZTsKIGNsYXNzIFJlbmRlclZpZXc7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>