<?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>229278</bug_id>
          
          <creation_ts>2021-08-18 20:43:53 -0700</creation_ts>
          <short_desc>Replace the uint64_t used to identify taps with an ObjectIdentifier&lt;&gt; type</short_desc>
          <delta_ts>2021-08-19 15:49:17 -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>UI Events</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>229302</blocked>
    
    <blocked>229308</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1785358</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-08-18 20:43:53 -0700</bug_when>
    <thetext>Replace the uint64_t used to identify taps with an ObjectIdentifier&lt;&gt; type</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785359</commentid>
    <comment_count>1</comment_count>
      <attachid>435837</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-08-18 20:46:08 -0700</bug_when>
    <thetext>Created attachment 435837
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785362</commentid>
    <comment_count>2</comment_count>
      <attachid>435837</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-08-18 20:55:46 -0700</bug_when>
    <thetext>Comment on attachment 435837
Patch

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

r=me once this is rebased on trunk

&gt; Source/WebKit/Shared/IdentifierTypes.h:34
&gt; +

Nice. This seems like a good place to put the various other identifier types used in WebKit2 that are currently just in their own headers, but we can do that later.

&gt; Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm:3113
&gt; +

Nit - stray newline here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785521</commentid>
    <comment_count>3</comment_count>
      <attachid>435884</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-08-19 11:01:53 -0700</bug_when>
    <thetext>Created attachment 435884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785603</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-08-19 15:48:33 -0700</bug_when>
    <thetext>Committed r281276 (240701@main): &lt;https://commits.webkit.org/240701@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 435884.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1785604</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-19 15:49:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/82145392&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435837</attachid>
            <date>2021-08-18 20:46:08 -0700</date>
            <delta_ts>2021-08-18 20:55:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229278-20210818204607.patch</filename>
            <type>text/plain</type>
            <size>43579</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMTY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg4YzJkZWUwMWViMTUzNDhm
ZGNkZjQ3OTE3OTdmY2JiODFmOWQ4MGEuLmM3NzFhNTFjYmFhOGM3YTdjYTA3NTVlMDEzZWRmN2Jl
NzczNzc4MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjEtMDgtMTggIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSB0aGUgdWlu
dDY0X3QgdXNlZCB0byBpZGVudGlmeSB0YXBzIHdpdGggYW4gT2JqZWN0SWRlbnRpZmllcjw+IHR5
cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTI3
OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludGVy
YWN0aW9uIGNvZGUgdXNlZCAidWludDY0X3QgcmVxdWVzdElEIiB0byBpZGVudGlmeSB0YXBzLCBi
dXQgdGhlcmUgYXJlIG90aGVyCisgICAgICAgIHRoaW5ncyB0aGF0IHVzZWQgInVpbnQ2NF90IHJl
cXVlc3RJRCIsIHdoaWNoIG1heSByZXN1bHQgaW4gYnVncy4KKworICAgICAgICBGaXggYnkgdXNp
bmcgYSBzdHJvbmdseSB0eXBlZCBPYmplY3RJZGVudGlmaWVyPFRhcElkZW50aWZpZXJUeXBlPiB0
byBpZGVudGlmeSB0YXBzLgorICAgICAgICBUaGlzIGlzIGRlZmluZWQgaW4gSWRlbnRpZmllclR5
cGVzLmggc2luY2UgSSBleHBlY3QgdG8gYWRkIG1vcmUgb2YgdGhlbS4KKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAodHlwZXNfdGhhdF9jYW5ub3RfYmVf
Zm9yd2FyZF9kZWNsYXJlZCk6CisgICAgICAgIChoZWFkZXJzX2Zvcl90eXBlKToKKyAgICAgICAg
KiBTaGFyZWQvSWRlbnRpZmllclR5cGVzLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Q
YWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFn
ZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaXNh
YmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpoYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZv
clBvdGVudGlhbFRhcCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRHZXRU
YXBIaWdobGlnaHRHZW9tZXRyaWVzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaWRHZXRUYXBIaWdo
bGlnaHRGb3JSZXF1ZXN0OmNvbG9yOnF1YWRzOnRvcExlZnRSYWRpdXM6dG9wUmlnaHRSYWRpdXM6
Ym90dG9tTGVmdFJhZGl1czpib3R0b21SaWdodFJhZGl1czpub2RlSGFzQnVpbHRJbkNsaWNrSGFu
ZGxpbmc6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2Rpc2FibGVEb3VibGVUYXBHZXN0
dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5Ol0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9o
YW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcDpyZW5kZXJS
ZWN0OmZpdEVudGlyZVJlY3Q6dmlld3BvcnRNaW5pbXVtU2NhbGU6dmlld3BvcnRNYXhpbXVtU2Nh
bGU6bm9kZUlzUm9vdExldmVsOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IG5leHRUYXBJ
ZGVudGlmaWVyXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX2hpZ2hsaWdodExvbmdQcmVz
c1JlY29nbml6ZWQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgX3R3b0ZpbmdlclNpbmds
ZVRhcEdlc3R1cmVSZWNvZ25pemVkOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9zaW5n
bGVUYXBJZGVudGlmaWVkOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5
SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVR3b0ZpbmdlclRh
cEF0UG9pbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnBvdGVudGlhbFRhcEF0
UG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnRhcEhpZ2hsaWdodEF0
UG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpZEdldFRhcEhpZ2hs
aWdodEdlb21ldHJpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRpc2FibGVE
b3VibGVUYXBHZXN0dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpoYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVu
dGlhbFRhcCk6CisgICAgICAgICogV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNlbmRU
YXBIaWdobGlnaHRGb3JOb2RlSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
OjpoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
cG90ZW50aWFsVGFwQXRQb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnRhcEhp
Z2hsaWdodEF0UG9zaXRpb24pOgorCiAyMDIxLTA4LTE3ICBGdWppaSBIaXJvbm9yaSAgPEhpcm9u
b3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtjdXJsXSBLZXB0IGFsaXZlIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcnMgc2hvdWxkIGJlIGNhbmNlbGxlZCBieSBOZXR3b3JrTG9hZDo6ZGlkQ29t
cGxldGVXaXRoRXJyb3Igb24gUG9saWN5QWN0aW9uOjpJZ25vcmUgb2YgZGlkUmVjZWl2ZVJlc3Bv
bnNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5
IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQppbmRleCAxOTBkYTZh
ZjIwYzZiYjFhOTlmZmJlZjJjYTg2ZWU3NmM0MDczODAxLi5jNzczMTQ0ZTY2OTUxNDJlMmFjMDVl
ZWM2ZjMzNDg1N2MwNzNmMzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Vi
a2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2Fn
ZXMucHkKQEAgLTM0Miw2ICszNDIsNyBAQCBkZWYgdHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2Fy
ZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUlkZW50aWZpZXInLAog
ICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUltcGxJZGVudGlmaWVyJywKICAgICAgICAgJ1dl
YktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZpZXInLAorICAgICAgICAnV2ViS2l0OjpUYXBJ
ZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmll
cicsCiAgICAgICAgICdXZWJLaXQ6OlRyYW5zYWN0aW9uSUQnLAogICAgICAgICAnV2ViS2l0OjpV
c2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVyJywKQEAgLTc3OCw2ICs3NzksNyBAQCBkZWYg
aGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYktpdDo6UmVzcGVjdFNlbGVjdGlv
bkFuY2hvcic6IFsnIkdlc3R1cmVUeXBlcy5oIiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rp
b25GbGFncyc6IFsnIkdlc3R1cmVUeXBlcy5oIiddLAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rp
b25Ub3VjaCc6IFsnIkdlc3R1cmVUeXBlcy5oIiddLAorICAgICAgICAnV2ViS2l0OjpUYXBJZGVu
dGlmaWVyJzogWyciSWRlbnRpZmllclR5cGVzLmgiJ10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRp
YUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJzogWyc8V2ViQ29yZS9NZWRpYVBsYXllci5oPiddLAog
ICAgICAgICAnV2ViQ29yZTo6SVNPV2ViVlRUQ3VlJzogWyc8V2ViQ29yZS9JU09WVFRDdWUuaD4n
XSwKICAgICAgICAgJ3N0cnVjdCBXZWJDb3JlOjpDb29raWUnOiBbJzxXZWJDb3JlL0Nvb2tpZS5o
PiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvSWRlbnRpZmllclR5cGVzLmgg
Yi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JZGVudGlmaWVyVHlwZXMuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzA4
NjU4NWNmNzMxMjIxNzMyY2MzYmJhODQyYWU5YmE3ZWNmZDY4Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9TaGFyZWQvSWRlbnRpZmllclR5cGVzLmgKQEAgLTAsMCArMSwzNSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZp
ZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2VudW0gVGFwSWRlbnRpZmllclR5cGUgeyB9
OwordXNpbmcgVGFwSWRlbnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8VGFwSWRlbnRpZmllclR5
cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGll
bnQuaAppbmRleCA4ZDUxODllYzhjMjllOGExNjg0MzEyZGYzMTEyNWExZGY4NDAyYTExLi5jNjQ5
NzcxZWY1OGExZWY2ODg4NWJhNDYxODNiNDJkNDk5M2E2NjdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUGFnZUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRlICJJZGVudGlmaWVyVHlwZXMuaCIKICNpbmNs
dWRlICJMYXllclRyZWVDb250ZXh0LmgiCiAjaW5jbHVkZSAiUERGUGx1Z2luSWRlbnRpZmllci5o
IgogI2luY2x1ZGUgIlBhc3RlYm9hcmRBY2Nlc3NJbnRlbnQuaCIKQEAgLTQ0OSw3ICs0NTAsNyBA
QCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZpcnR1YWwgdm9pZCBj
b21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGRpZEdldFRh
cEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpD
b2xvciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+JiBoaWdobGlnaHRlZFF1YWRz
LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BMZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiB0b3BSaWdodFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tTGVm
dFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tUmlnaHRSYWRpdXMsIGJvb2wg
bm9kZUhhc0J1aWx0SW5DbGlja0hhbmRsaW5nKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEdl
dFRhcEhpZ2hsaWdodEdlb21ldHJpZXMoV2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYg
aGlnaGxpZ2h0ZWRRdWFkcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJp
Z2h0UmFkaXVzLCBib29sIG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZykgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIGRpZENvbW1pdExheWVyVHJlZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgbGF5ZXJUcmVlQ29tbWl0Q29tcGxldGUo
KSA9IDA7CkBAIC00NjksOCArNDcwLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzYXZl
SW1hZ2VUb0xpYnJhcnkoUmVmPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4mJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3QsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGlj
eSwgY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzaG93RGF0YURldGVjdG9y
c1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVz
RHVyaW5nVGFwSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElEKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFw
KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZW5kZXJSZWN0
LCBib29sIGZpdEVudGlyZVJlY3QsIGRvdWJsZSB2aWV3cG9ydE1pbmltdW1TY2FsZSwgZG91Ymxl
IHZpZXdwb3J0TWF4aW11bVNjYWxlLCBib29sIG5vZGVJc1Jvb3RMZXZlbCkgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBkaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeShX
ZWJLaXQ6OlRhcElkZW50aWZpZXIpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlU21hcnRN
YWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRpYWxUYXAoV2ViS2l0OjpUYXBJZGVudGlm
aWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlbmRlclJlY3QsIGJvb2wgZml0RW50aXJl
UmVjdCwgZG91YmxlIHZpZXdwb3J0TWluaW11bVNjYWxlLCBkb3VibGUgdmlld3BvcnRNYXhpbXVt
U2NhbGUsIGJvb2wgbm9kZUlzUm9vdExldmVsKSA9IDA7CiAgICAgdmlydHVhbCBkb3VibGUgbWlu
aW11bVpvb21TY2FsZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVj
dCBkb2N1bWVudFJlY3QoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ05v
ZGVTY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVyZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggM2JkY2RmZGUxNTcyYTA1ZTI0NDI2OTc2NjI0MzNmZjJl
OTY4MDRhNS4uZmNkMTE1MmUwNjQ5YzYzNjVhNzU4MzViODJmYjQ3MTY1ZmM3MjA5OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNs
dWRlICJHZW9sb2NhdGlvbklkZW50aWZpZXIuaCIKICNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1p
c3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiSGlkZGVuUGFnZVRocm90dGxp
bmdBdXRvSW5jcmVhc2VzQ291bnRlci5oIgorI2luY2x1ZGUgIklkZW50aWZpZXJUeXBlcy5oIgog
I2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1N0
YXRlLmgiCkBAIC04NTEsMTEgKzg1MiwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWROb3RIYW5k
bGVUYXBBc0NsaWNrKGNvbnN0IFdlYkNvcmU6OkludFBvaW50Jik7CiAgICAgdm9pZCBkaWRUYXBB
dFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgVGFwSGFuZGxpbmdSZXN1bHQpOwogICAg
IHZvaWQgZGlkQ29tcGxldGVTeW50aGV0aWNDbGljaygpOwotICAgIHZvaWQgZGlzYWJsZURvdWJs
ZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElEKTsKLSAg
ICB2b2lkIGhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFw
KHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZW5kZXJSZWN0
LCBib29sIGZpdEVudGlyZVJlY3QsIGRvdWJsZSB2aWV3cG9ydE1pbmltdW1TY2FsZSwgZG91Ymxl
IHZpZXdwb3J0TWF4aW11bVNjYWxlLCBib29sIG5vZGVJc1Jvb3RMZXZlbCk7CisgICAgdm9pZCBk
aXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeShXZWJLaXQ6OlRhcElk
ZW50aWZpZXIpOworICAgIHZvaWQgaGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25G
b3JQb3RlbnRpYWxUYXAoV2ViS2l0OjpUYXBJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIHJlbmRlclJlY3QsIGJvb2wgZml0RW50aXJlUmVjdCwgZG91YmxlIHZpZXdwb3J0TWlu
aW11bVNjYWxlLCBkb3VibGUgdmlld3BvcnRNYXhpbXVtU2NhbGUsIGJvb2wgbm9kZUlzUm9vdExl
dmVsKTsKICAgICB2b2lkIGNvbnRlbnRTaXplQ2F0ZWdvcnlEaWRDaGFuZ2UoY29uc3QgU3RyaW5n
JiBjb250ZW50U2l6ZUNhdGVnb3J5KTsKICAgICB2b2lkIGdldFNlbGVjdGlvbkNvbnRleHQoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBT
dHJpbmcmKT4mJik7Ci0gICAgdm9pZCBoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KGNvbnN0IFdl
YkNvcmU6OkludFBvaW50JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwg
dWludDY0X3QgcmVxdWVzdElEKTsKKyAgICB2b2lkIGhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQo
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9k
aWZpZXI+LCBXZWJLaXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElEKTsKICAgICB2b2lkIHNldEZv
cmNlQWx3YXlzVXNlclNjYWxhYmxlKGJvb2wpOwogICAgIGJvb2wgZm9yY2VBbHdheXNVc2VyU2Nh
bGFibGUoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNlQWx3YXlzVXNlclNjYWxhYmxlOyB9CiAgICAg
ZG91YmxlIGxheW91dFNpemVTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRD
b25maWd1cmF0aW9uTGF5b3V0U2l6ZVNjYWxlRmFjdG9yOyB9CkBAIC0xNDEzLDEwICsxNDE0LDEw
IEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIHZvaWQgd2lsbFN0YXJ0
VXNlclRyaWdnZXJlZFpvb21pbmcoKTsKIAotICAgIHZvaWQgcG90ZW50aWFsVGFwQXRQb3NpdGlv
bihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgYm9vbCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNh
dGlvbkluZm9ybWF0aW9uLCB1aW50NjRfdCYgcmVxdWVzdElEKTsKKyAgICB2b2lkIHBvdGVudGlh
bFRhcEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGJvb2wgc2hvdWxkUmVx
dWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbiwgV2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVl
c3RJRCk7CiAgICAgdm9pZCBjb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdlYktpdDo6V2Vi
RXZlbnQ6Ok1vZGlmaWVyPiwgVHJhbnNhY3Rpb25JRCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRM
YXN0VG91Y2hTdGFydCwgV2ViQ29yZTo6UG9pbnRlcklEKTsKICAgICB2b2lkIGNhbmNlbFBvdGVu
dGlhbFRhcCgpOwotICAgIHZvaWQgdGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiwgdWludDY0X3QmIHJlcXVlc3RJRCk7CisgICAgdm9pZCB0YXBIaWdobGln
aHRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmLCBXZWJLaXQ6OlRhcElkZW50
aWZpZXIgcmVxdWVzdElEKTsKICAgICB2b2lkIGF0dGVtcHRTeW50aGV0aWNDbGljayhjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVy
PiwgVHJhbnNhY3Rpb25JRCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCk7
CiAgICAgdm9pZCBkaWRSZWNvZ25pemVMb25nUHJlc3MoKTsKICAgICB2b2lkIGhhbmRsZURvdWJs
ZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIE9wdGlv
blNldDxXZWJFdmVudDo6TW9kaWZpZXI+LCBUcmFuc2FjdGlvbklEIGxheWVyVHJlZVRyYW5zYWN0
aW9uSWRBdExhc3RUb3VjaFN0YXJ0KTsKQEAgLTIzNDMsNyArMjM0NCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCByZXN0b3JlUGFnZVN0YXRlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2lu
dD4gc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9yaWdp
biwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRlbnQmIG9ic2N1cmVkSW5zZXRzT25TYXZlLCBk
b3VibGUgc2NhbGUpOwogICAgIHZvaWQgcmVzdG9yZVBhZ2VDZW50ZXJBbmRTY2FsZShzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+LCBkb3VibGUgc2NhbGUpOwogCi0gICAgdm9pZCBk
aWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgZ2Vv
bWV0cmllcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2Vi
Q29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJv
dHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVz
LCBib29sIG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZyk7CisgICAgdm9pZCBkaWRHZXRUYXBI
aWdobGlnaHRHZW9tZXRyaWVzKFdlYktpdDo6VGFwSWRlbnRpZmllciByZXF1ZXN0SUQsIGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4mIGdlb21l
dHJpZXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcExlZnRSYWRpdXMsIGNvbnN0IFdlYkNv
cmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0
b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21SaWdodFJhZGl1cywg
Ym9vbCBub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxpbmcpOwogCiAgICAgdm9pZCBlbGVtZW50RGlk
Rm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJh
Y3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwgT3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5
U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFuZ2VzLCBjb25zdCBVc2VyRGF0YSYpOwogICAg
IHZvaWQgZWxlbWVudERpZEJsdXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBhMGI3Mzk1MzZiNjAzZjQ4YjY5OTliMjc0YjE0
ZTYyNjJkMzEyODEzLi5hNzA1MmNiZDFhNzdkNDdiMjBiZWJmZWIwMjE0OTcyMDE2ODk3ZjE4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0xNzIsOCArMTcyLDggQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRO
b3RIYW5kbGVUYXBBc0NsaWNrKFdlYkNvcmU6OkludFBvaW50IHBvaW50KQogICAgIERpZFRhcEF0
UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIGVudW06dWludDhfdCBXZWJLaXQ6OlRhcEhh
bmRsaW5nUmVzdWx0IHJlc3VsdCkKICAgICBEaWRDb21wbGV0ZVN5bnRoZXRpY0NsaWNrKCkKLSAg
ICBEaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeSh1aW50NjRfdCBy
ZXF1ZXN0SUQpCi0gICAgSGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3Rl
bnRpYWxUYXAodWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpGbG9hdFJlY3QgcmVuZGVyUmVj
dCwgYm9vbCBmaXRFbnRpcmVSZWN0LCBkb3VibGUgdmlld3BvcnRNaW5pbXVtU2NhbGUsIGRvdWJs
ZSB2aWV3cG9ydE1heGltdW1TY2FsZSwgYm9vbCBub2RlSXNSb290TGV2ZWwpCisgICAgRGlzYWJs
ZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3NhcnkoV2ViS2l0OjpUYXBJZGVudGlm
aWVyIHJlcXVlc3RJRCkKKyAgICBIYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZv
clBvdGVudGlhbFRhcChXZWJLaXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElELCBXZWJDb3JlOjpG
bG9hdFJlY3QgcmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0LCBkb3VibGUgdmlld3BvcnRN
aW5pbXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1heGltdW1TY2FsZSwgYm9vbCBub2RlSXNSb290
TGV2ZWwpCiAjZW5kaWYKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgU2V0RGF0YURl
dGVjdGlvblJlc3VsdChzdHJ1Y3QgV2ViS2l0OjpEYXRhRGV0ZWN0aW9uUmVzdWx0IGRhdGFEZXRl
Y3Rpb25SZXN1bHQpCkBAIC0zOTIsNyArMzkyLDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5
IHsKICAgICBDb3VsZE5vdFJlc3RvcmVQYWdlU3RhdGUoKQogICAgIFJlc3RvcmVQYWdlU3RhdGUo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBvaW50PiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29y
ZTo6RmxvYXRQb2ludCBzY3JvbGxPcmlnaW4sIFdlYkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gb2Jz
Y3VyZWRJbnNldHNPblNhdmUsIGRvdWJsZSBzY2FsZSkKICAgICBSZXN0b3JlUGFnZUNlbnRlckFu
ZFNjYWxlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gdW5vYnNjdXJlZENlbnRl
ciwgZG91YmxlIHNjYWxlKQotICAgIERpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0
X3QgcmVxdWVzdElELCBXZWJDb3JlOjpDb2xvciBjb2xvciwgVmVjdG9yPFdlYkNvcmU6OkZsb2F0
UXVhZD4gZ2VvbWV0cmllcywgV2ViQ29yZTo6SW50U2l6ZSB0b3BMZWZ0UmFkaXVzLCBXZWJDb3Jl
OjpJbnRTaXplIHRvcFJpZ2h0UmFkaXVzLCBXZWJDb3JlOjpJbnRTaXplIGJvdHRvbUxlZnRSYWRp
dXMsIFdlYkNvcmU6OkludFNpemUgYm90dG9tUmlnaHRSYWRpdXMsIGJvb2wgbm9kZUhhc0J1aWx0
SW5DbGlja0hhbmRsaW5nKQorICAgIERpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXMoV2ViS2l0
OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCwgV2ViQ29yZTo6Q29sb3IgY29sb3IsIFZlY3RvcjxX
ZWJDb3JlOjpGbG9hdFF1YWQ+IGdlb21ldHJpZXMsIFdlYkNvcmU6OkludFNpemUgdG9wTGVmdFJh
ZGl1cywgV2ViQ29yZTo6SW50U2l6ZSB0b3BSaWdodFJhZGl1cywgV2ViQ29yZTo6SW50U2l6ZSBi
b3R0b21MZWZ0UmFkaXVzLCBXZWJDb3JlOjpJbnRTaXplIGJvdHRvbVJpZ2h0UmFkaXVzLCBib29s
IG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZykKIAogICAgIEVsZW1lbnREaWRGb2N1cyhzdHJ1
Y3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9ybWF0aW9uIGluZm9ybWF0aW9uLCBib29sIHVz
ZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2aW91c05vZGUsIE9wdGlvblNldDxXZWJDb3Jl
OjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0eVN0YXRlQ2hhbmdlcywgV2ViS2l0OjpVc2Vy
RGF0YSB1c2VyRGF0YSkKICAgICBFbGVtZW50RGlkQmx1cigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IGIyMjFhZjc5MzY3MTVhODQ1
N2E4YThlODlkZTEwMmNkMzFkYjc5MjAuLjVkMzgyMGVlNGQwZjRkZTFlMDAyODYyMjA5M2NjMzU3
OWZjZDk1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xp
ZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50
SW1wbElPUy5oCkBAIC0xNjQsNyArMTY0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdoZWVsRXZl
bnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBvdmVy
cmlkZTsKIAogICAgIHZvaWQgY29tbWl0UG90ZW50aWFsVGFwRmFpbGVkKCkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYg
aGlnaGxpZ2h0ZWRRdWFkcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJp
Z2h0UmFkaXVzLCBib29sIG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZykgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKFdlYktpdDo6VGFwSWRlbnRpZmll
ciByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6
OkZsb2F0UXVhZD4mIGhpZ2hsaWdodGVkUXVhZHMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRv
cExlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25z
dCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRT
aXplJiBib3R0b21SaWdodFJhZGl1cywgYm9vbCBub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxpbmcp
IG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRDb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24mKSBvdmVycmlkZTsKICAgICB2b2lkIGxheWVyVHJlZUNvbW1pdENv
bXBsZXRlKCkgb3ZlcnJpZGU7CkBAIC0xOTUsOCArMTk1LDggQEAgcHJpdmF0ZToKICAgICBib29s
IHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBX
VEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQg
c2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYsIFdU
Rjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpD
b250YWN0SW5mbz4+JiYpPiYmKSBvdmVycmlkZTsKICAgICAKLSAgICB2b2lkIGRpc2FibGVEb3Vi
bGVUYXBHZXN0dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCkgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBoYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBv
dGVudGlhbFRhcCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
cmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0LCBkb3VibGUgdmlld3BvcnRNaW5pbXVtU2Nh
bGUsIGRvdWJsZSB2aWV3cG9ydE1heGltdW1TY2FsZSwgYm9vbCBub2RlSXNSb290TGV2ZWwpIG92
ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNl
c3NhcnkoV2ViS2l0OjpUYXBJZGVudGlmaWVyKSBvdmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZVNt
YXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFwKFdlYktpdDo6VGFwSWRl
bnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiByZW5kZXJSZWN0LCBib29sIGZpdEVu
dGlyZVJlY3QsIGRvdWJsZSB2aWV3cG9ydE1pbmltdW1TY2FsZSwgZG91YmxlIHZpZXdwb3J0TWF4
aW11bVNjYWxlLCBib29sIG5vZGVJc1Jvb3RMZXZlbCkgb3ZlcnJpZGU7CiAKICAgICBkb3VibGUg
bWluaW11bVpvb21TY2FsZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OkZsb2F0UmVj
dCBkb2N1bWVudFJlY3QoKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCAxYmQzMzA2NWYxMGMxNzBkMDY2
Y2NiN2E2ZjZhNWM1ZTg2MzE4OGRmLi5lMTE2MTQwOGFiYjkwNGE4ZjJjZmZjZWIwOWExYmE0MGRj
NjM3YWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJ
bXBsSU9TLm1tCkBAIC0yNzcsMTIgKzI3NywxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRD
aGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJikKICAgICBub3RJbXBsZW1l
bnRlZCgpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaXNhYmxlRG91YmxlVGFwR2VzdHVy
ZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeSh1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeShXZWJL
aXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElEKQogewogICAgIFttX2NvbnRlbnRWaWV3IF9kaXNh
YmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeTpyZXF1ZXN0SURdOwogfQog
Ci12b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlv
bkZvclBvdGVudGlhbFRhcCh1aW50NjRfdCByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgcmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0LCBkb3VibGUgdmlld3BvcnRNaW5p
bXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1heGltdW1TY2FsZSwgYm9vbCBub2RlSXNSb290TGV2
ZWwpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1h
dGlvbkZvclBvdGVudGlhbFRhcChXZWJLaXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElELCBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlbmRlclJlY3QsIGJvb2wgZml0RW50aXJlUmVjdCwgZG91
YmxlIHZpZXdwb3J0TWluaW11bVNjYWxlLCBkb3VibGUgdmlld3BvcnRNYXhpbXVtU2NhbGUsIGJv
b2wgbm9kZUlzUm9vdExldmVsKQogewogICAgIFttX2NvbnRlbnRWaWV3IF9oYW5kbGVTbWFydE1h
Z25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcDpyZXF1ZXN0SUQgcmVuZGVyUmVj
dDpyZW5kZXJSZWN0IGZpdEVudGlyZVJlY3Q6Zml0RW50aXJlUmVjdCB2aWV3cG9ydE1pbmltdW1T
Y2FsZTp2aWV3cG9ydE1pbmltdW1TY2FsZSB2aWV3cG9ydE1heGltdW1TY2FsZTp2aWV3cG9ydE1h
eGltdW1TY2FsZSBub2RlSXNSb290TGV2ZWw6bm9kZUlzUm9vdExldmVsXTsKIH0KQEAgLTU4NSw3
ICs1ODUsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQo
KQogICAgIFttX2NvbnRlbnRWaWV3IF9jb21taXRQb3RlbnRpYWxUYXBGYWlsZWRdOwogfQogCi12
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90
IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRRdWFkcywgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzLCBib29sIG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5k
bGluZykKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXMo
V2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNv
bG9yLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRRdWFkcywg
Y29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbUxlZnRS
YWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzLCBib29sIG5v
ZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZykKIHsKICAgICBbbV9jb250ZW50VmlldyBfZGlkR2V0
VGFwSGlnaGxpZ2h0Rm9yUmVxdWVzdDpyZXF1ZXN0SUQgY29sb3I6Y29sb3IgcXVhZHM6aGlnaGxp
Z2h0ZWRRdWFkcyB0b3BMZWZ0UmFkaXVzOnRvcExlZnRSYWRpdXMgdG9wUmlnaHRSYWRpdXM6dG9w
UmlnaHRSYWRpdXMgYm90dG9tTGVmdFJhZGl1czpib3R0b21MZWZ0UmFkaXVzIGJvdHRvbVJpZ2h0
UmFkaXVzOmJvdHRvbVJpZ2h0UmFkaXVzIG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZzpub2Rl
SGFzQnVpbHRJbkNsaWNrSGFuZGxpbmddOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IGZjYTM4ZGQwYTRl
YWM3NWE3YjgyZjExNWE5MDVlNjMyYjYzOGNkZWIuLjM1NTZkZjdkMjdlODZjNmU4ODM2ZmRkOWY4
ZWNjYTA0NThhOTU3ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQg
IkZyYW1lSW5mb0RhdGEuaCIKICNpbXBvcnQgIkdlc3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lF
bmZvcmNlci5oIgogI2ltcG9ydCAiR2VzdHVyZVR5cGVzLmgiCisjaW1wb3J0ICJJZGVudGlmaWVy
VHlwZXMuaCIKICNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCiAj
aW1wb3J0ICJQYXN0ZWJvYXJkQWNjZXNzSW50ZW50LmgiCiAjaW1wb3J0ICJTeW50aGV0aWNFZGl0
aW5nQ29tbWFuZFR5cGUuaCIKQEAgLTM2NSw3ICszNjYsNyBAQCB1c2luZyBJbWFnZUFuYWx5c2lz
UmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPEltYWdlQW5hbHlzaXNSZXF1ZXN0
SWRlbgogCiAgICAgV2Vha09iakNQdHI8aWQgPFVJVGV4dElucHV0RGVsZWdhdGU+PiBfaW5wdXRE
ZWxlZ2F0ZTsKIAotICAgIHVpbnQ2NF90IF9sYXRlc3RUYXBJRDsKKyAgICBXZWJLaXQ6OlRhcElk
ZW50aWZpZXIgX2xhdGVzdFRhcElEOwogICAgIHN0cnVjdCBUYXBIaWdobGlnaHRJbmZvcm1hdGlv
biB7CiAgICAgICAgIEJPT0wgbm9kZUhhc0J1aWx0SW5DbGlja0hhbmRsaW5nIHsgZmFsc2UgfTsK
ICAgICAgICAgV2ViQ29yZTo6Q29sb3IgY29sb3I7CkBAIC02MDYsMTEgKzYwNywxMiBAQCBGT1Jf
RUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19B
Q1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9pZClfY29tbWl0UG90ZW50aWFsVGFwRmFpbGVkOwog
LSAodm9pZClfZGlkTm90SGFuZGxlVGFwQXNDbGljazooY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
KXBvaW50OwogLSAodm9pZClfZGlkQ29tcGxldGVTeW50aGV0aWNDbGljazsKLS0gKHZvaWQpX2Rp
ZEdldFRhcEhpZ2hsaWdodEZvclJlcXVlc3Q6KHVpbnQ2NF90KXJlcXVlc3RJRCBjb2xvcjooY29u
c3QgV2ViQ29yZTo6Q29sb3ImKWNvbG9yIHF1YWRzOihjb25zdCBWZWN0b3I8V2ViQ29yZTo6Rmxv
YXRRdWFkPiYpaGlnaGxpZ2h0ZWRRdWFkcyB0b3BMZWZ0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJil0b3BMZWZ0UmFkaXVzIHRvcFJpZ2h0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJbnRT
aXplJil0b3BSaWdodFJhZGl1cyBib3R0b21MZWZ0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJbnRT
aXplJilib3R0b21MZWZ0UmFkaXVzIGJvdHRvbVJpZ2h0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJilib3R0b21SaWdodFJhZGl1cyBub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxpbmc6KEJP
T0wpbm9kZUhhc0J1aWx0SW5DbGlja0hhbmRsaW5nOworCistICh2b2lkKV9kaWRHZXRUYXBIaWdo
bGlnaHRGb3JSZXF1ZXN0OihXZWJLaXQ6OlRhcElkZW50aWZpZXIpcmVxdWVzdElEIGNvbG9yOihj
b25zdCBXZWJDb3JlOjpDb2xvciYpY29sb3IgcXVhZHM6KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpG
bG9hdFF1YWQ+JiloaWdobGlnaHRlZFF1YWRzIHRvcExlZnRSYWRpdXM6KGNvbnN0IFdlYkNvcmU6
OkludFNpemUmKXRvcExlZnRSYWRpdXMgdG9wUmlnaHRSYWRpdXM6KGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKXRvcFJpZ2h0UmFkaXVzIGJvdHRvbUxlZnRSYWRpdXM6KGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKWJvdHRvbUxlZnRSYWRpdXMgYm90dG9tUmlnaHRSYWRpdXM6KGNvbnN0IFdlYkNvcmU6
OkludFNpemUmKWJvdHRvbVJpZ2h0UmFkaXVzIG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZzoo
Qk9PTClub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxpbmc7CiAKIC0gKEJPT0wpX21heURpc2FibGVE
b3VibGVUYXBHZXN0dXJlc0R1cmluZ1NpbmdsZVRhcDsKLS0gKHZvaWQpX2Rpc2FibGVEb3VibGVU
YXBHZXN0dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5Oih1aW50NjRfdClyZXF1ZXN0SUQ7Ci0tICh2
b2lkKV9oYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcDoo
dWludDY0X3QpcmVxdWVzdElEIHJlbmRlclJlY3Q6KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYp
cmVuZGVyUmVjdCBmaXRFbnRpcmVSZWN0OihCT09MKWZpdEVudGlyZVJlY3Qgdmlld3BvcnRNaW5p
bXVtU2NhbGU6KGRvdWJsZSl2aWV3cG9ydE1pbmltdW1TY2FsZSB2aWV3cG9ydE1heGltdW1TY2Fs
ZTooZG91YmxlKXZpZXdwb3J0TWF4aW11bVNjYWxlIG5vZGVJc1Jvb3RMZXZlbDooQk9PTClub2Rl
SXNSb290TGV2ZWw7CistICh2b2lkKV9kaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJ
Zk5lY2Vzc2FyeTooV2ViS2l0OjpUYXBJZGVudGlmaWVyKXJlcXVlc3RJRDsKKy0gKHZvaWQpX2hh
bmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFwOihXZWJLaXQ6
OlRhcElkZW50aWZpZXIpcmVxdWVzdElEIHJlbmRlclJlY3Q6KGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYpcmVuZGVyUmVjdCBmaXRFbnRpcmVSZWN0OihCT09MKWZpdEVudGlyZVJlY3Qgdmlld3Bv
cnRNaW5pbXVtU2NhbGU6KGRvdWJsZSl2aWV3cG9ydE1pbmltdW1TY2FsZSB2aWV3cG9ydE1heGlt
dW1TY2FsZTooZG91YmxlKXZpZXdwb3J0TWF4aW11bVNjYWxlIG5vZGVJc1Jvb3RMZXZlbDooQk9P
TClub2RlSXNSb290TGV2ZWw7CiAtICh2b2lkKV9lbGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktp
dDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYpaW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rp
bmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcgYmx1clByZXZpb3VzTm9kZTooQk9PTClibHVyUHJl
dmlvdXNOb2RlIGFjdGl2aXR5U3RhdGVDaGFuZ2VzOihPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZp
dHlTdGF0ZTo6RmxhZz4pYWN0aXZpdHlTdGF0ZUNoYW5nZXMgdXNlck9iamVjdDooTlNPYmplY3Qg
PE5TU2VjdXJlQ29kaW5nPiAqKXVzZXJPYmplY3Q7CiAtICh2b2lkKV91cGRhdGVJbnB1dENvbnRl
eHRBZnRlckJsdXJyaW5nQW5kUmVmb2N1c2luZ0VsZW1lbnQ7CiAtICh2b2lkKV9lbGVtZW50RGlk
Qmx1cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDg1YWU5MDgzNTVhZWIzOWUxZjlmMmZkMmMzNzI4NTM3
MjFhNDFlNzcuLjcwOWY5ZTJhNzllN2RkNjg0ODBkNGQ4MjkyZTAzOGEwNWM1NzEyOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQpAQCAtMjExOSw3ICsyMTE5LDcgQEAgLSAodm9pZClfc2hvd1RhcEhpZ2hsaWdo
dAogICAgIFtzZWxmIF91cGRhdGVUYXBIaWdobGlnaHRdOwogfQogCi0tICh2b2lkKV9kaWRHZXRU
YXBIaWdobGlnaHRGb3JSZXF1ZXN0Oih1aW50NjRfdClyZXF1ZXN0SUQgY29sb3I6KGNvbnN0IFdl
YkNvcmU6OkNvbG9yJiljb2xvciBxdWFkczooY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVh
ZD4mKWhpZ2hsaWdodGVkUXVhZHMgdG9wTGVmdFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpdG9wTGVmdFJhZGl1cyB0b3BSaWdodFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
dG9wUmlnaHRSYWRpdXMgYm90dG9tTGVmdFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYp
Ym90dG9tTGVmdFJhZGl1cyBib3R0b21SaWdodFJhZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYpYm90dG9tUmlnaHRSYWRpdXMgbm9kZUhhc0J1aWx0SW5DbGlja0hhbmRsaW5nOihCT09MKW5v
ZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZworLSAodm9pZClfZGlkR2V0VGFwSGlnaGxpZ2h0Rm9y
UmVxdWVzdDooV2ViS2l0OjpUYXBJZGVudGlmaWVyKXJlcXVlc3RJRCBjb2xvcjooY29uc3QgV2Vi
Q29yZTo6Q29sb3ImKWNvbG9yIHF1YWRzOihjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFk
PiYpaGlnaGxpZ2h0ZWRRdWFkcyB0b3BMZWZ0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jil0b3BMZWZ0UmFkaXVzIHRvcFJpZ2h0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJbnRTaXplJil0
b3BSaWdodFJhZGl1cyBib3R0b21MZWZ0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJbnRTaXplJili
b3R0b21MZWZ0UmFkaXVzIGJvdHRvbVJpZ2h0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJbnRTaXpl
Jilib3R0b21SaWdodFJhZGl1cyBub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxpbmc6KEJPT0wpbm9k
ZUhhc0J1aWx0SW5DbGlja0hhbmRsaW5nCiB7CiAgICAgaWYgKCFfaXNUYXBIaWdobGlnaHRJRFZh
bGlkIHx8IF9sYXRlc3RUYXBJRCAhPSByZXF1ZXN0SUQpCiAgICAgICAgIHJldHVybjsKQEAgLTIx
NTgsNyArMjE1OCw3IEBAIC0gKEJPT0wpX21heURpc2FibGVEb3VibGVUYXBHZXN0dXJlc0R1cmlu
Z1NpbmdsZVRhcAogICAgIHJldHVybiBfcG90ZW50aWFsVGFwSW5Qcm9ncmVzczsKIH0KIAotLSAo
dm9pZClfZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3Nhcnk6KHVpbnQ2
NF90KXJlcXVlc3RJRAorLSAodm9pZClfZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFw
SWZOZWNlc3Nhcnk6KFdlYktpdDo6VGFwSWRlbnRpZmllcilyZXF1ZXN0SUQKIHsKICAgICBpZiAo
X2xhdGVzdFRhcElEICE9IHJlcXVlc3RJRCkKICAgICAgICAgcmV0dXJuOwpAQCAtMjE2Niw3ICsy
MTY2LDcgQEAgLSAodm9pZClfZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNl
c3Nhcnk6KHVpbnQ2NF90KXJlcXVlc3RJRAogICAgIFtzZWxmIF9zZXREb3VibGVUYXBHZXN0dXJl
c0VuYWJsZWQ6Tk9dOwogfQogCi0tICh2b2lkKV9oYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZv
cm1hdGlvbkZvclBvdGVudGlhbFRhcDoodWludDY0X3QpcmVxdWVzdElEIHJlbmRlclJlY3Q6KGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpcmVuZGVyUmVjdCBmaXRFbnRpcmVSZWN0OihCT09MKWZp
dEVudGlyZVJlY3Qgdmlld3BvcnRNaW5pbXVtU2NhbGU6KGRvdWJsZSl2aWV3cG9ydE1pbmltdW1T
Y2FsZSB2aWV3cG9ydE1heGltdW1TY2FsZTooZG91YmxlKXZpZXdwb3J0TWF4aW11bVNjYWxlIG5v
ZGVJc1Jvb3RMZXZlbDooQk9PTClub2RlSXNSb290TGV2ZWwKKy0gKHZvaWQpX2hhbmRsZVNtYXJ0
TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFwOihXZWJLaXQ6OlRhcElkZW50
aWZpZXIpcmVxdWVzdElEIHJlbmRlclJlY3Q6KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpcmVu
ZGVyUmVjdCBmaXRFbnRpcmVSZWN0OihCT09MKWZpdEVudGlyZVJlY3Qgdmlld3BvcnRNaW5pbXVt
U2NhbGU6KGRvdWJsZSl2aWV3cG9ydE1pbmltdW1TY2FsZSB2aWV3cG9ydE1heGltdW1TY2FsZToo
ZG91YmxlKXZpZXdwb3J0TWF4aW11bVNjYWxlIG5vZGVJc1Jvb3RMZXZlbDooQk9PTClub2RlSXNS
b290TGV2ZWwKIHsKICAgICBjb25zdCBhdXRvJiBwcmVmZXJlbmNlcyA9IF9wYWdlLT5wcmVmZXJl
bmNlcygpOwogCkBAIC0zMDMwLDYgKzMwMzAsMTIgQEAgLSAoTlNBcnJheSAqKXdlYlNlbGVjdGlv
blJlY3RzCiAgICAgcmV0dXJuIFtzZWxmIHdlYlNlbGVjdGlvblJlY3RzRm9yU2VsZWN0aW9uR2Vv
bWV0cmllczpzZWxlY3Rpb25HZW9tZXRyaWVzXTsKIH0KIAorLSAoV2ViS2l0OjpUYXBJZGVudGlm
aWVyKW5leHRUYXBJZGVudGlmaWVyCit7CisgICAgX2xhdGVzdFRhcElEID0gV2ViS2l0OjpUYXBJ
ZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIHJldHVybiBfbGF0ZXN0VGFwSUQ7Cit9CisKIC0g
KHZvaWQpX2hpZ2hsaWdodExvbmdQcmVzc1JlY29nbml6ZWQ6KFVJTG9uZ1ByZXNzR2VzdHVyZVJl
Y29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgogewogICAgIEFTU0VSVChnZXN0dXJlUmVjb2du
aXplciA9PSBfaGlnaGxpZ2h0TG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIpOwpAQCAtMzA0MSw3
ICszMDQ3LDcgQEAgLSAodm9pZClfaGlnaGxpZ2h0TG9uZ1ByZXNzUmVjb2duaXplZDooVUlMb25n
UHJlc3NHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWMKICAgICBjYXNlIFVJR2VzdHVyZVJl
Y29nbml6ZXJTdGF0ZUJlZ2FuOgogICAgICAgICBfbG9uZ1ByZXNzQ2FuQ2xpY2sgPSBZRVM7CiAg
ICAgICAgIGNhbmNlbFBvdGVudGlhbFRhcElmTmVjZXNzYXJ5KHNlbGYpOwotICAgICAgICBfcGFn
ZS0+dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihbZ2VzdHVyZVJlY29nbml6ZXIgc3RhcnRQb2ludF0s
ICsrX2xhdGVzdFRhcElEKTsKKyAgICAgICAgX3BhZ2UtPnRhcEhpZ2hsaWdodEF0UG9zaXRpb24o
W2dlc3R1cmVSZWNvZ25pemVyIHN0YXJ0UG9pbnRdLCBbc2VsZiBuZXh0VGFwSWRlbnRpZmllcl0p
OwogICAgICAgICBfaXNUYXBIaWdobGlnaHRJRFZhbGlkID0gWUVTOwogICAgICAgICBicmVhazsK
ICAgICBjYXNlIFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUVuZGVkOgpAQCAtMzA3MCw3ICszMDc2
LDcgQEAgLSAodm9pZClfdHdvRmluZ2VyU2luZ2xlVGFwR2VzdHVyZVJlY29nbml6ZWQ6KFVJVGFw
R2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUKIHsKICAgICBfaXNUYXBIaWdobGlnaHRJRFZh
bGlkID0gWUVTOwogICAgIF9pc0V4cGVjdGluZ0Zhc3RTaW5nbGVUYXBDb21taXQgPSBZRVM7Ci0g
ICAgX3BhZ2UtPmhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoV2ViQ29yZTo6cm91bmRlZEludFBv
aW50KGdlc3R1cmVSZWNvZ25pemVyLmNlbnRyb2lkKSwgV2ViS2l0Ojp3ZWJFdmVudE1vZGlmaWVy
RmxhZ3MoZ2VzdHVyZVJlY29nbml6ZXJNb2RpZmllckZsYWdzKGdlc3R1cmVSZWNvZ25pemVyKSB8
IFVJS2V5TW9kaWZpZXJDb21tYW5kKSwgKytfbGF0ZXN0VGFwSUQpOworICAgIF9wYWdlLT5oYW5k
bGVUd29GaW5nZXJUYXBBdFBvaW50KFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChnZXN0dXJlUmVj
b2duaXplci5jZW50cm9pZCksIFdlYktpdDo6d2ViRXZlbnRNb2RpZmllckZsYWdzKGdlc3R1cmVS
ZWNvZ25pemVyTW9kaWZpZXJGbGFncyhnZXN0dXJlUmVjb2duaXplcikgfCBVSUtleU1vZGlmaWVy
Q29tbWFuZCksIFtzZWxmIG5leHRUYXBJZGVudGlmaWVyXSk7CiB9CiAKIC0gKHZvaWQpX2xvbmdQ
cmVzc1JlY29nbml6ZWQ6KFVJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVj
b2duaXplcgpAQCAtMzEwNCw2ICszMTEwLDcgQEAgLSAodm9pZClfZW5kUG90ZW50aWFsVGFwQW5k
RW5hYmxlRG91YmxlVGFwR2VzdHVyZXNJZk5lY2Vzc2FyeQogICAgIF9wb3RlbnRpYWxUYXBJblBy
b2dyZXNzID0gTk87CiB9CiAKKwogLSAodm9pZClfc2luZ2xlVGFwSWRlbnRpZmllZDooVUlUYXBH
ZXN0dXJlUmVjb2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiB7CiAgICAgQVNTRVJUKGdlc3R1
cmVSZWNvZ25pemVyID09IF9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplcik7CkBAIC0zMTE2LDcg
KzMxMjMsNyBAQCAtICh2b2lkKV9zaW5nbGVUYXBJZGVudGlmaWVkOihVSVRhcEdlc3R1cmVSZWNv
Z25pemVyICopZ2VzdHVyZVJlY29nbml6ZXIKICAgICBpZiAoc2hvdWxkUmVxdWVzdE1hZ25pZmlj
YXRpb25JbmZvcm1hdGlvbikKICAgICAgICAgUkVMRUFTRV9MT0coVmlld0dlc3R1cmVzLCAiU2lu
Z2xlIHRhcCBpZGVudGlmaWVkLiBSZXF1ZXN0IGRldGFpbHMgb24gcG90ZW50aWFsIHpvb20uICgl
cCkiLCBzZWxmKTsKIAotICAgIF9wYWdlLT5wb3RlbnRpYWxUYXBBdFBvc2l0aW9uKGdlc3R1cmVS
ZWNvZ25pemVyLmxvY2F0aW9uLCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9u
LCArK19sYXRlc3RUYXBJRCk7CisgICAgX3BhZ2UtPnBvdGVudGlhbFRhcEF0UG9zaXRpb24oZ2Vz
dHVyZVJlY29nbml6ZXIubG9jYXRpb24sIHNob3VsZFJlcXVlc3RNYWduaWZpY2F0aW9uSW5mb3Jt
YXRpb24sIFtzZWxmIG5leHRUYXBJZGVudGlmaWVyXSk7CiAgICAgX3BvdGVudGlhbFRhcEluUHJv
Z3Jlc3MgPSBZRVM7CiAgICAgX2lzVGFwSGlnaGxpZ2h0SURWYWxpZCA9IFlFUzsKICAgICBfaXNF
eHBlY3RpbmdGYXN0U2luZ2xlVGFwQ29tbWl0ID0gIV9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXpl
ci5nZXQoKS5lbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdl
UHJveHlJT1MubW0KaW5kZXggNTU1MzE3ZjczMGVmNDBhMDZmOTA2ZDQyYjY5ZjQwMzZkN2YwM2Q5
YS4uOTdjN2E5MzgzM2ZmZWQ5ODY2ZjE4NGVkOGU1NWQ4ZDM1MTExZDZkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC01MzQsNyArNTM0
LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmdldFNlbGVjdGlvbkNvbnRleHQoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChjb25zdCBTdHJpbmcmLCBjb24KICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlBhZ2U6OkdldFNlbGVjdGlvbkNvbnRleHQoKSwgV1RGTW92ZShjYWxsYmFja0Z1
bmN0aW9uKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUd29GaW5nZXJUYXBBdFBv
aW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpN
b2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lkIFdlYlBhZ2VQcm94
eTo6aGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9p
bnQsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgV2ViS2l0OjpUYXBJ
ZGVudGlmaWVyIHJlcXVlc3RJRCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYW5k
bGVUd29GaW5nZXJUYXBBdFBvaW50KHBvaW50LCBtb2RpZmllcnMsIHJlcXVlc3RJRCkpOwogfQpA
QCAtNzc5LDcgKzc3OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3RhcnRVc2VyVHJpZ2dl
cmVkWm9vbWluZygpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6V2lsbFN0YXJ0VXNlclRy
aWdnZXJlZFpvb21pbmcoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpwb3RlbnRpYWxUYXBB
dFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCBib29sIHNob3Vs
ZFJlcXVlc3RNYWduaWZpY2F0aW9uSW5mb3JtYXRpb24sIHVpbnQ2NF90JiByZXF1ZXN0SUQpCit2
b2lkIFdlYlBhZ2VQcm94eTo6cG90ZW50aWFsVGFwQXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBwb3NpdGlvbiwgYm9vbCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9y
bWF0aW9uLCBXZWJLaXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElEKQogewogICAgIGhpZGVWYWxp
ZGF0aW9uTWVzc2FnZSgpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlBvdGVudGlhbFRh
cEF0UG9zaXRpb24ocmVxdWVzdElELCBwb3NpdGlvbiwgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRp
b25JbmZvcm1hdGlvbikpOwpAQCAtNzk1LDcgKzc5NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpj
YW5jZWxQb3RlbnRpYWxUYXAoKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNhbmNlbFBv
dGVudGlhbFRhcCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnRhcEhpZ2hsaWdodEF0UG9z
aXRpb24oY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRpb24sIHVpbnQ2NF90JiByZXF1
ZXN0SUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihjb25zdCBX
ZWJDb3JlOjpGbG9hdFBvaW50JiBwb3NpdGlvbiwgV2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVl
c3RJRCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpUYXBIaWdobGlnaHRBdFBvc2l0
aW9uKHJlcXVlc3RJRCwgcG9zaXRpb24pKTsKIH0KQEAgLTg2NSw3ICs4NjUsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6cmVzdG9yZVBhZ2VDZW50ZXJBbmRTY2FsZShzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZsb2F0UG9pbnQ+CiAgICAgcGFnZUNsaWVudCgpLnJlc3RvcmVQYWdlQ2VudGVyQW5kU2Nh
bGUoY2VudGVyLCBzY2FsZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRHZXRUYXBIaWdo
bGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29sb3Im
IGNvbG9yLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRRdWFk
cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6
SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbUxl
ZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzLCBib29s
IG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRHZXRU
YXBIaWdobGlnaHRHZW9tZXRyaWVzKFdlYktpdDo6VGFwSWRlbnRpZmllciByZXF1ZXN0SUQsIGNv
bnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVh
ZD4mIGhpZ2hsaWdodGVkUXVhZHMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcExlZnRSYWRp
dXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0
b21SaWdodFJhZGl1cywgYm9vbCBub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxpbmcpCiB7CiAgICAg
cGFnZUNsaWVudCgpLmRpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXMocmVxdWVzdElELCBjb2xv
ciwgaGlnaGxpZ2h0ZWRRdWFkcywgdG9wTGVmdFJhZGl1cywgdG9wUmlnaHRSYWRpdXMsIGJvdHRv
bUxlZnRSYWRpdXMsIGJvdHRvbVJpZ2h0UmFkaXVzLCBub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxp
bmcpOwogfQpAQCAtMTAxNSwxMiArMTAxNSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29t
cGxldGVTeW50aGV0aWNDbGljaygpCiAgICAgcGFnZUNsaWVudCgpLmRpZENvbXBsZXRlU3ludGhl
dGljQ2xpY2soKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpc2FibGVEb3VibGVUYXBHZXN0
dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCkKK3ZvaWQgV2ViUGFn
ZVByb3h5OjpkaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeShXZWJL
aXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElEKQogewogICAgIHBhZ2VDbGllbnQoKS5kaXNhYmxl
RG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeShyZXF1ZXN0SUQpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQ
b3RlbnRpYWxUYXAodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHJlbmRlclJlY3QsIGJvb2wgZml0RW50aXJlUmVjdCwgZG91YmxlIHZpZXdwb3J0TWluaW11bVNj
YWxlLCBkb3VibGUgdmlld3BvcnRNYXhpbXVtU2NhbGUsIGJvb2wgbm9kZUlzUm9vdExldmVsKQor
dm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9y
UG90ZW50aWFsVGFwKFdlYktpdDo6VGFwSWRlbnRpZmllciByZXF1ZXN0SUQsIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UmVjdCYgcmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0LCBkb3VibGUgdmll
d3BvcnRNaW5pbXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1heGltdW1TY2FsZSwgYm9vbCBub2Rl
SXNSb290TGV2ZWwpCiB7CiAgICAgcGFnZUNsaWVudCgpLmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlv
bkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFwKHJlcXVlc3RJRCwgcmVuZGVyUmVjdCwgZml0RW50
aXJlUmVjdCwgdmlld3BvcnRNaW5pbXVtU2NhbGUsIHZpZXdwb3J0TWF4aW11bVNjYWxlLCBub2Rl
SXNSb290TGV2ZWwpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggNmJhZjk0MWE4ODBjZmRiNmI3YTYyNThiYTBlYWZmYjQ2ZjZiZDk2
Mi4uMmEzYTBkNGU0NmNjNGU2NTc5NTcyODdkMjZjODhiYzNhMDY0ZDEwNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTYxLDYgKzI1
NjEsNyBAQAogCQkwRkNCNEU2QjE4QkJGMjZBMDAwRkNGQzkgLyogV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tOyBwYXRoID0gaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRDA5NEUyNEM3OUY1QjAwMEM2
RDM5IC8qIFJlbW90ZVNjcm9sbGluZ1VJU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVt
b3RlU2Nyb2xsaW5nVUlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBG
Q0QwOTRGMjRDNzlGNUIwMDBDNkQzOSAvKiBSZW1vdGVTY3JvbGxpbmdVSVN0YXRlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFJlbW90ZVNjcm9sbGluZ1VJU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJMEZEMkNCMjUyNkNERDdBMzAwMDhCMTFDIC8qIElkZW50aWZpZXJUeXBlcy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBJZGVudGlmaWVyVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJMEZEQ0Q3RjYxRDQ3RTkyQTAwOUYwOEJDIC8qIExvZ0luaXRpYWxpemF0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ0luaXRpYWxpemF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRjI0QTJCMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJv
eHlNZXNzYWdlUmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJl
ZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMEZGMjRBMkIxODc5RTRCQzAwM0FCRjBEIC8q
IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVz
c2FnZVJlY2VpdmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwpAQCAtNjgwNiw2ICs2ODA3LDcgQEAKIAkJCQk0NkFDNTMyNDI1REVE
ODFFMDAzQjU3RUMgLyogR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmggKi8sCiAJCQkJ
RjQwQkJCNDAyNTdGRjQ2RTAwNjc0NjNBIC8qIEdQVVByb2Nlc3NXYWtldXBNZXNzYWdlQXJndW1l
bnRzLmggKi8sCiAJCQkJMUFDNzVBMUExQjMzNjgyNzAwNTY3NDVCIC8qIEhhbmdEZXRlY3Rpb25E
aXNhYmxlci5oICovLAorCQkJCTBGRDJDQjI1MjZDREQ3QTMwMDA4QjExQyAvKiBJZGVudGlmaWVy
VHlwZXMuaCAqLywKIAkJCQlCQ0NGNkIyMzEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25z
LmggKi8sCiAJCQkJOTk5QjdFRDgyNTUwRTRBODAwRjQ1MEE0IC8qIEluc3BlY3RvckV4dGVuc2lv
blR5cGVzLmNwcCAqLywKIAkJCQk5OUJFM0IxNjI1NDMzQjk0MDBDNjU1MUMgLyogSW5zcGVjdG9y
RXh0ZW5zaW9uVHlwZXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaAppbmRleCA3OGQ4MzBkYTQyZDk1NjdjZGY5NWNmYTFmZTMyNzMzMDJmZjNiMjFjLi5m
MWIyNzNjZjZhMDdhMzhjMTc4ZDE0YmNhYjMxOTc1Nzk2YTkwNmNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk
ZSAiRWRpdGluZ1JhbmdlLmgiCiAjaW5jbHVkZSAiRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5o
IgogI2luY2x1ZGUgIkdlb2xvY2F0aW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklkZW50aWZp
ZXJUeXBlcy5oIgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50
LmgiCiAjaW5jbHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oIgogI2lu
Y2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oIgpAQCAtNzQ3LDEyICs3NDgs
MTIgQEAgcHVibGljOgogICAgIGJvb2wgaGFzU3RhYmxlUGFnZVNjYWxlRmFjdG9yKCkgY29uc3Qg
eyByZXR1cm4gbV9oYXNTdGFibGVQYWdlU2NhbGVGYWN0b3I7IH0KIAogICAgIHZvaWQgYXR0ZW1w
dFN5bnRoZXRpY0NsaWNrKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgT3B0aW9uU2V0PFdlYktp
dDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgVHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNh
Y3Rpb25JZCk7Ci0gICAgdm9pZCBwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVl
c3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25p
ZmljYXRpb25JbmZvcm1hdGlvbik7CisgICAgdm9pZCBwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKFdl
YktpdDo6VGFwSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGJvb2wgc2hv
dWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbik7CiAgICAgdm9pZCBjb21taXRQb3Rl
bnRpYWxUYXAoT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgVHJhbnNhY3Rp
b25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCwgV2ViQ29yZTo6UG9pbnRlcklEKTsKICAg
ICB2b2lkIGNvbW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpOwogICAgIHZvaWQgY2FuY2VsUG90ZW50
aWFsVGFwKCk7CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXBJbkZyYW1lKFdlYkZyYW1lJik7
Ci0gICAgdm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYpOworICAgIHZvaWQgdGFwSGlnaGxpZ2h0QXRQb3NpdGlv
bihXZWJLaXQ6OlRhcElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAg
ICB2b2lkIGRpZFJlY29nbml6ZUxvbmdQcmVzcygpOwogICAgIHZvaWQgaGFuZGxlRG91YmxlVGFw
Rm9yRG91YmxlQ2xpY2tBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgT3B0aW9uU2V0
PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgVHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVl
VHJhbnNhY3Rpb25JZCk7CiAKQEAgLTc5Niw3ICs3OTcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c1Nob3dpbmdJbnB1dFZpZXdGb3JGb2N1c2VkRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faXNT
aG93aW5nSW5wdXRWaWV3Rm9yRm9jdXNlZEVsZW1lbnQ7IH0KICAgICB2b2lkIHVwZGF0ZVNlbGVj
dGlvbkFwcGVhcmFuY2UoKTsKICAgICB2b2lkIGdldFNlbGVjdGlvbkNvbnRleHQoQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcm
KT4mJik7Ci0gICAgdm9pZCBoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgdWludDY0
X3QgcmVxdWVzdElEKTsKKyAgICB2b2lkIGhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoY29uc3Qg
V2ViQ29yZTo6SW50UG9pbnQmLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+
LCBXZWJLaXQ6OlRhcElkZW50aWZpZXIpOwogICAgIHZvaWQgZ2V0UmVjdHNGb3JHcmFudWxhcml0
eVdpdGhTZWxlY3Rpb25PZmZzZXQoV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBpbnQzMl90LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWxlY3Rpb25HZW9t
ZXRyeT4mKT4mJik7CiAgICAgdm9pZCBnZXRSZWN0c0F0U2VsZWN0aW9uT2Zmc2V0V2l0aFRleHQo
aW50MzJfdCwgY29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0
b3I8V2ViQ29yZTo6U2VsZWN0aW9uR2VvbWV0cnk+Jik+JiYpOwogICAgIHZvaWQgc3RvcmVTZWxl
Y3Rpb25Gb3JBY2Nlc3NpYmlsaXR5KGJvb2wpOwpAQCAtMTUxNiw3ICsxNTE3LDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoU3ludGhldGljRWRp
dGluZ0NvbW1hbmRUeXBlKTsKICAgICB2b2lkIGhhbmRsZVN5bnRoZXRpY0NsaWNrKFdlYkNvcmU6
Ok5vZGUmIG5vZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYg
bG9jYXRpb24sIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIFdlYkNvcmU6
OlBvaW50ZXJJRCA9IFdlYkNvcmU6Om1vdXNlUG9pbnRlcklEKTsKICAgICB2b2lkIGNvbXBsZXRl
U3ludGhldGljQ2xpY2soV2ViQ29yZTo6Tm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25z
dCBXZWJDb3JlOjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZl
bnQ6Ok1vZGlmaWVyPiwgV2ViQ29yZTo6U3ludGhldGljQ2xpY2tUeXBlLCBXZWJDb3JlOjpQb2lu
dGVySUQgPSBXZWJDb3JlOjptb3VzZVBvaW50ZXJJRCk7Ci0gICAgdm9pZCBzZW5kVGFwSGlnaGxp
Z2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6Tm9kZSop
OworICAgIHZvaWQgc2VuZFRhcEhpZ2hsaWdodEZvck5vZGVJZk5lY2Vzc2FyeShXZWJLaXQ6OlRh
cElkZW50aWZpZXIsIFdlYkNvcmU6Ok5vZGUqKTsKICAgICBXZWJDb3JlOjpWaXNpYmxlUG9zaXRp
b24gdmlzaWJsZVBvc2l0aW9uSW5Gb2N1c2VkTm9kZUZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9j
dXNlZEVsZW1lbnQpOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2ltcGxlUmFuZ2U+IHJh
bmdlRm9yR3JhbnVsYXJpdHlBdFBvaW50KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmLCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dp
dGhGb2N1c2VkRWxlbWVudCk7CiAgICAgdm9pZCBzZXRGb2N1c2VkRnJhbWVCZWZvcmVTZWxlY3Rp
bmdUZXh0QXRMb2NhdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXgg
Zjg3YjQ1OWY4NmY3MGU2MDU5MjQ2M2JkOWU1OTE3NzdmOWYwMjIwMC4uOGYxYmU1YWU3MTU3ZjA2
MjJlMDBkYzc0NDYwMDE4NDZkNWI0ODkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01NywxMCArNTcsMTAgQEAg
bWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0U2NyZWVuSXNCZWlu
Z0NhcHR1cmVkKGJvb2wgY2FwdHVyZWQpCiAKICAgICBBdHRlbXB0U3ludGhldGljQ2xpY2soV2Vi
Q29yZTo6SW50UG9pbnQgcG9pbnQsIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmll
cj4gbW9kaWZpZXJzLCBXZWJLaXQ6OlRyYW5zYWN0aW9uSUQgbGFzdExheWVyVHJlZVRyYW5zYWN0
aW9uSWQpCi0gICAgUG90ZW50aWFsVGFwQXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIFdl
YkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQsIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25J
bmZvcm1hdGlvbikKKyAgICBQb3RlbnRpYWxUYXBBdFBvc2l0aW9uKFdlYktpdDo6VGFwSWRlbnRp
ZmllciByZXF1ZXN0SUQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQsIGJvb2wgc2hvdWxkUmVx
dWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbikKICAgICBDb21taXRQb3RlbnRpYWxUYXAoT3B0
aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFdlYktpdDo6VHJh
bnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCwgV2ViQ29yZTo6UG9pbnRlcklE
IHBvaW50ZXJJZCkKICAgICBDYW5jZWxQb3RlbnRpYWxUYXAoKQotICAgIFRhcEhpZ2hsaWdodEF0
UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50KQor
ICAgIFRhcEhpZ2hsaWdodEF0UG9zaXRpb24oV2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJ
RCwgV2ViQ29yZTo6RmxvYXRQb2ludCBwb2ludCkKICAgICBEaWRSZWNvZ25pemVMb25nUHJlc3Mo
KQogICAgIEhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChXZWJDb3JlOjpJbnRQ
b2ludCBwb2ludCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmll
cnMsIFdlYktpdDo6VHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKICAg
ICBJbnNwZWN0b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQg
cG9pbnQpCkBAIC0xMDcsNyArMTA3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNl
aXZlciB7CiAgICAgQ29udGVudFNpemVDYXRlZ29yeURpZENoYW5nZShTdHJpbmcgY29udGVudFNp
emVDYXRlZ29yeSkKICAgICBHZXRTZWxlY3Rpb25Db250ZXh0KCkgLT4gKFN0cmluZyBzZWxlY3Rl
ZFRleHQsIFN0cmluZyB0ZXh0QmVmb3JlLCBTdHJpbmcgdGV4dEFmdGVyKSBBc3luYwogICAgIFNl
dEFsbG93c01lZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhib29sIGFsbG93cykKLSAgICBIYW5k
bGVUd29GaW5nZXJUYXBBdFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBPcHRpb25TZXQ8
V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgcmVxdWVzdElE
KQorICAgIEhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQs
IE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBXZWJLaXQ6
OlRhcElkZW50aWZpZXIgcmVxdWVzdElEKQogICAgIFNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxl
KGJvb2wgdXNlclNjYWxhYmxlKQogICAgIEdldFJlY3RzRm9yR3JhbnVsYXJpdHlXaXRoU2VsZWN0
aW9uT2Zmc2V0KGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJp
dHksIGludDMyX3Qgb2Zmc2V0KSAtPiAoVmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5
PiByZWN0KSBBc3luYwogICAgIEdldFJlY3RzQXRTZWxlY3Rpb25PZmZzZXRXaXRoVGV4dChpbnQz
Ml90IG9mZnNldCwgU3RyaW5nIHRleHQpIC0+IChWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uR2Vv
bWV0cnk+IHJlY3QpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDM0M2JjNzgzMGMzYTBkMmJkNDc3YWE0NmRiZmYz
ZmQzNmM0YTExYzMuLjE0NTJkMTg4NjMxNDYyOTNmY2UzNzY2N2NhYzJjNmYwOWQxNGExOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9T
Lm1tCkBAIC0xMDg2LDcgKzEwODYsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVBbmRTZW5kRWRp
dERyYWdTbmFwc2hvdCgpCiAKICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OnNlbmRUYXBIaWdobGln
aHRGb3JOb2RlSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElELCBOb2RlKiBub2RlKQordm9p
ZCBXZWJQYWdlOjpzZW5kVGFwSGlnaGxpZ2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KFdlYktpdDo6VGFw
SWRlbnRpZmllciByZXF1ZXN0SUQsIE5vZGUqIG5vZGUpCiB7CiAjaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKICAgICBpZiAoIW5vZGUpCkBAIC0xMTI5LDcgKzExMjksNyBAQCB2b2lkIFdlYlBhZ2U6
OnNlbmRUYXBIaWdobGlnaHRGb3JOb2RlSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElELCBO
b2RlKiBub2RlKQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZTo6aGFuZGxlVHdvRmluZ2VyVGFw
QXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIE9wdGlvblNldDxXZWJLaXQ6
OldlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lk
IFdlYlBhZ2U6OmhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHBvaW50LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVy
cywgV2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCkKIHsKICAgICBGbG9hdFBvaW50IGFk
anVzdGVkUG9pbnQ7CiAgICAgTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrID0gbV9wYWdlLT5t
YWluRnJhbWUoKS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMocG9pbnQsIGFkanVzdGVkUG9p
bnQpOwpAQCAtMTE0Myw3ICsxMTQzLDcgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVUd29GaW5nZXJU
YXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgT3B0aW9uU2UKICAgICBj
b21wbGV0ZVN5bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9p
bnQsIG1vZGlmaWVycywgV2ViQ29yZTo6VHdvRmluZ2VyVGFwKTsKIH0KIAotdm9pZCBXZWJQYWdl
Ojpwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYgcG9zaXRpb24sIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25J
bmZvcm1hdGlvbikKK3ZvaWQgV2ViUGFnZTo6cG90ZW50aWFsVGFwQXRQb3NpdGlvbihXZWJLaXQ6
OlRhcElkZW50aWZpZXIgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb3Np
dGlvbiwgYm9vbCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uKQogewogICAg
IG1fcG90ZW50aWFsVGFwTm9kZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdU
b0NsaWNrRXZlbnRzKHBvc2l0aW9uLCBtX3BvdGVudGlhbFRhcExvY2F0aW9uLCBtX3BvdGVudGlh
bFRhcFNlY3VyaXR5T3JpZ2luLmdldCgpKTsKIApAQCAtMTI0NCw3ICsxMjQ0LDcgQEAgdm9pZCBX
ZWJQYWdlOjpkaWRSZWNvZ25pemVMb25nUHJlc3MoKQogICAgIENvbnRlbnRDaGFuZ2VPYnNlcnZl
cjo6ZGlkUmVjb2duaXplTG9uZ1ByZXNzKG1fcGFnZS0+bWFpbkZyYW1lKCkpOwogfQogCi12b2lk
IFdlYlBhZ2U6OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25z
dCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3ZvaWQgV2ViUGFnZTo6dGFwSGlnaGxpZ2h0QXRQb3Np
dGlvbihXZWJLaXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElELCBjb25zdCBGbG9hdFBvaW50JiBw
b3NpdGlvbikKIHsKICAgICBGcmFtZSYgbWFpbmZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsK
ICAgICBGbG9hdFBvaW50IGFkanVzdGVkUG9pbnQ7Cg==
</data>
<flag name="review"
          id="458736"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
    <flag name="commit-queue"
          id="458738"
          type_id="3"
          status="-"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>435884</attachid>
            <date>2021-08-19 11:01:53 -0700</date>
            <delta_ts>2021-08-19 15:48:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229278-20210819110152.patch</filename>
            <type>text/plain</type>
            <size>43456</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA0YjVlYTcyMDI0ODYzMzI2
NWRhMzc2ZGQwYjdkNjBhN2Y2YzBhY2YuLjkyNDY5M2U3MTM1YjVjNzc1MDQ2MTFlYzg4ZjExNDlk
MWFjNzA2ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTMgQEAKKzIwMjEtMDgtMTggIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUmVwbGFjZSB0aGUgdWlu
dDY0X3QgdXNlZCB0byBpZGVudGlmeSB0YXBzIHdpdGggYW4gT2JqZWN0SWRlbnRpZmllcjw+IHR5
cGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyOTI3
OAorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBJbnRlcmFj
dGlvbiBjb2RlIHVzZWQgInVpbnQ2NF90IHJlcXVlc3RJRCIgdG8gaWRlbnRpZnkgdGFwcywgYnV0
IHRoZXJlIGFyZSBvdGhlcgorICAgICAgICB0aGluZ3MgdGhhdCB1c2VkICJ1aW50NjRfdCByZXF1
ZXN0SUQiLCB3aGljaCBtYXkgcmVzdWx0IGluIGJ1Z3MuCisKKyAgICAgICAgRml4IGJ5IHVzaW5n
IGEgc3Ryb25nbHkgdHlwZWQgT2JqZWN0SWRlbnRpZmllcjxUYXBJZGVudGlmaWVyVHlwZT4gdG8g
aWRlbnRpZnkgdGFwcy4KKyAgICAgICAgVGhpcyBpcyBkZWZpbmVkIGluIElkZW50aWZpZXJUeXBl
cy5oIHNpbmNlIEkgZXhwZWN0IHRvIGFkZCBtb3JlIG9mIHRoZW0uCisKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKHR5cGVzX3RoYXRfY2Fubm90X2JlX2Zv
cndhcmRfZGVjbGFyZWQpOgorICAgICAgICAoaGVhZGVyc19mb3JfdHlwZSk6CisgICAgICAgICog
U2hhcmVkL0lkZW50aWZpZXJUeXBlcy5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGFn
ZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VD
bGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlzYWJs
ZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6aGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQ
b3RlbnRpYWxUYXApOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkR2V0VGFw
SGlnaGxpZ2h0R2VvbWV0cmllcyk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfZGlkR2V0VGFwSGlnaGxp
Z2h0Rm9yUmVxdWVzdDpjb2xvcjpxdWFkczp0b3BMZWZ0UmFkaXVzOnRvcFJpZ2h0UmFkaXVzOmJv
dHRvbUxlZnRSYWRpdXM6Ym90dG9tUmlnaHRSYWRpdXM6bm9kZUhhc0J1aWx0SW5DbGlja0hhbmRs
aW5nOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9kaXNhYmxlRG91YmxlVGFwR2VzdHVy
ZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfaGFu
ZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRpYWxUYXA6cmVuZGVyUmVj
dDpmaXRFbnRpcmVSZWN0OnZpZXdwb3J0TWluaW11bVNjYWxlOnZpZXdwb3J0TWF4aW11bVNjYWxl
Om5vZGVJc1Jvb3RMZXZlbDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBuZXh0VGFwSWRl
bnRpZmllcl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9oaWdobGlnaHRMb25nUHJlc3NS
ZWNvZ25pemVkOl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF90d29GaW5nZXJTaW5nbGVU
YXBHZXN0dXJlUmVjb2duaXplZDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfc2luZ2xl
VGFwSWRlbnRpZmllZDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlP
Uy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpoYW5kbGVUd29GaW5nZXJUYXBB
dFBvaW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpwb3RlbnRpYWxUYXBBdFBv
c2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp0YXBIaWdobGlnaHRBdFBv
c2l0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRHZXRUYXBIaWdobGln
aHRHZW9tZXRyaWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaXNhYmxlRG91
YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRp
YWxUYXApOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL2lvcy9XZWJQYWdlSU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZW5kVGFw
SGlnaGxpZ2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
aGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnBv
dGVudGlhbFRhcEF0UG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjp0YXBIaWdo
bGlnaHRBdFBvc2l0aW9uKToKKwogMjAyMS0wOC0xOSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBGaXggdGhlIHR5cG8gaW4gaG9yaW9udGFsUnViYmVy
YmFuZEFtb3VudEluQ29udGVudENvb3JkaW5hdGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtp
dC9tZXNzYWdlcy5weQppbmRleCAxOTBkYTZhZjIwYzZiYjFhOTlmZmJlZjJjYTg2ZWU3NmM0MDcz
ODAxLi5jNzczMTQ0ZTY2OTUxNDJlMmFjMDVlZWM2ZjMzNDg1N2MwNzNmMzdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTM0Miw2ICszNDIsNyBAQCBkZWYg
dHlwZXNfdGhhdF9jYW5ub3RfYmVfZm9yd2FyZF9kZWNsYXJlZCgpOgogICAgICAgICAnV2ViS2l0
OjpTdG9yYWdlQXJlYUlkZW50aWZpZXInLAogICAgICAgICAnV2ViS2l0OjpTdG9yYWdlQXJlYUlt
cGxJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6U3RvcmFnZU5hbWVzcGFjZUlkZW50aWZp
ZXInLAorICAgICAgICAnV2ViS2l0OjpUYXBJZGVudGlmaWVyJywKICAgICAgICAgJ1dlYktpdDo6
VHJhY2tQcml2YXRlUmVtb3RlSWRlbnRpZmllcicsCiAgICAgICAgICdXZWJLaXQ6OlRyYW5zYWN0
aW9uSUQnLAogICAgICAgICAnV2ViS2l0OjpVc2VyQ29udGVudENvbnRyb2xsZXJJZGVudGlmaWVy
JywKQEAgLTc3OCw2ICs3NzksNyBAQCBkZWYgaGVhZGVyc19mb3JfdHlwZSh0eXBlKToKICAgICAg
ICAgJ1dlYktpdDo6UmVzcGVjdFNlbGVjdGlvbkFuY2hvcic6IFsnIkdlc3R1cmVUeXBlcy5oIidd
LAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25GbGFncyc6IFsnIkdlc3R1cmVUeXBlcy5oIidd
LAogICAgICAgICAnV2ViS2l0OjpTZWxlY3Rpb25Ub3VjaCc6IFsnIkdlc3R1cmVUeXBlcy5oIidd
LAorICAgICAgICAnV2ViS2l0OjpUYXBJZGVudGlmaWVyJzogWyciSWRlbnRpZmllclR5cGVzLmgi
J10sCiAgICAgICAgICdXZWJDb3JlOjpNZWRpYUVuZ2luZVN1cHBvcnRQYXJhbWV0ZXJzJzogWyc8
V2ViQ29yZS9NZWRpYVBsYXllci5oPiddLAogICAgICAgICAnV2ViQ29yZTo6SVNPV2ViVlRUQ3Vl
JzogWyc8V2ViQ29yZS9JU09WVFRDdWUuaD4nXSwKICAgICAgICAgJ3N0cnVjdCBXZWJDb3JlOjpD
b29raWUnOiBbJzxXZWJDb3JlL0Nvb2tpZS5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9TaGFyZWQvSWRlbnRpZmllclR5cGVzLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9JZGVudGlm
aWVyVHlwZXMuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNzA4NjU4NWNmNzMxMjIxNzMyY2MzYmJhODQyYWU5YmE3
ZWNmZDY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvSWRlbnRpZmll
clR5cGVzLmgKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisK
K2VudW0gVGFwSWRlbnRpZmllclR5cGUgeyB9OwordXNpbmcgVGFwSWRlbnRpZmllciA9IE9iamVj
dElkZW50aWZpZXI8VGFwSWRlbnRpZmllclR5cGU+OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCA4ZDUxODllYzhjMjllOGExNjg0
MzEyZGYzMTEyNWExZGY4NDAyYTExLi5jNjQ5NzcxZWY1OGExZWY2ODg4NWJhNDYxODNiNDJkNDk5
M2E2NjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKKyNpbmNsdWRl
ICJJZGVudGlmaWVyVHlwZXMuaCIKICNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0LmgiCiAjaW5j
bHVkZSAiUERGUGx1Z2luSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRBY2Nlc3NJ
bnRlbnQuaCIKQEAgLTQ0OSw3ICs0NTAsNyBAQCBwdWJsaWM6CiAKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIHZpcnR1YWwgdm9pZCBjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKSA9IDA7
Ci0gICAgdmlydHVhbCB2b2lkIGRpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0X3Qg
cmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpG
bG9hdFF1YWQ+JiBoaWdobGlnaHRlZFF1YWRzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BM
ZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiB0b3BSaWdodFJhZGl1cywgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgYm90dG9tTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgYm90dG9tUmlnaHRSYWRpdXMsIGJvb2wgbm9kZUhhc0J1aWx0SW5DbGlja0hhbmRsaW5nKSA9
IDA7CisgICAgdmlydHVhbCB2b2lkIGRpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXMoV2ViS2l0
OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRRdWFkcywgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmln
aHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzLCBib29sIG5vZGVIYXNCdWlsdElu
Q2xpY2tIYW5kbGluZykgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRpZENvbW1pdExheWVyVHJl
ZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgbGF5ZXJUcmVlQ29tbWl0Q29tcGxldGUoKSA9IDA7CkBAIC00NjksOCArNDcwLDggQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBzYXZlSW1hZ2VUb0xpYnJhcnkoUmVmPFdlYkNvcmU6OlNo
YXJlZEJ1ZmZlcj4mJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzaG93UGxheWJhY2tUYXJnZXRQ
aWNrZXIoYm9vbCBoYXNWaWRlbywgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgZWxlbWVudFJlY3Qs
IFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSwgY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzaG93RGF0YURldGVjdG9yc1VJRm9yUG9zaXRpb25JbmZvcm1hdGlvbihjb25z
dCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpID0gMDsKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3NhcnkodWludDY0X3Qg
cmVxdWVzdElEKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlv
bkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFwKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiByZW5kZXJSZWN0LCBib29sIGZpdEVudGlyZVJlY3QsIGRvdWJsZSB2
aWV3cG9ydE1pbmltdW1TY2FsZSwgZG91YmxlIHZpZXdwb3J0TWF4aW11bVNjYWxlLCBib29sIG5v
ZGVJc1Jvb3RMZXZlbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlRG91YmxlVGFwR2Vz
dHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeShXZWJLaXQ6OlRhcElkZW50aWZpZXIpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3Rl
bnRpYWxUYXAoV2ViS2l0OjpUYXBJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHJlbmRlclJlY3QsIGJvb2wgZml0RW50aXJlUmVjdCwgZG91YmxlIHZpZXdwb3J0TWluaW11bVNj
YWxlLCBkb3VibGUgdmlld3BvcnRNYXhpbXVtU2NhbGUsIGJvb2wgbm9kZUlzUm9vdExldmVsKSA9
IDA7CiAgICAgdmlydHVhbCBkb3VibGUgbWluaW11bVpvb21TY2FsZSgpIGNvbnN0ID0gMDsKICAg
ICB2aXJ0dWFsIFdlYkNvcmU6OkZsb2F0UmVjdCBkb2N1bWVudFJlY3QoKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ05vZGVTY3JvbGxWaWV3V2lsbFN0YXJ0UGFuR2VzdHVy
ZSgpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggM2I0Njhl
YzY0ODZjNDZmZDdmNTU3MGVmZmFkNjIwOGVmMmE1YTRkNC4uYWZlN2ViNTg4ZDJkNjEzOGM4N2Qx
ZDA3ODQ4NTViNmI2N2NhOGJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJHZW9sb2NhdGlvbklkZW50aWZpZXIuaCIK
ICNpbmNsdWRlICJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAj
aW5jbHVkZSAiSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzQ291bnRlci5oIgorI2lu
Y2x1ZGUgIklkZW50aWZpZXJUeXBlcy5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIK
ICNpbmNsdWRlICJNZWRpYUtleVN5c3RlbVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmgi
CiAjaW5jbHVkZSAiTWVkaWFQbGF5YmFja1N0YXRlLmgiCkBAIC04NTEsMTEgKzg1MiwxMSBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkaWROb3RIYW5kbGVUYXBBc0NsaWNrKGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50Jik7CiAgICAgdm9pZCBkaWRUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiwgVGFwSGFuZGxpbmdSZXN1bHQpOwogICAgIHZvaWQgZGlkQ29tcGxldGVTeW50aGV0aWNDbGlj
aygpOwotICAgIHZvaWQgZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3Nh
cnkodWludDY0X3QgcmVxdWVzdElEKTsKLSAgICB2b2lkIGhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlv
bkluZm9ybWF0aW9uRm9yUG90ZW50aWFsVGFwKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2Vi
Q29yZTo6RmxvYXRSZWN0JiByZW5kZXJSZWN0LCBib29sIGZpdEVudGlyZVJlY3QsIGRvdWJsZSB2
aWV3cG9ydE1pbmltdW1TY2FsZSwgZG91YmxlIHZpZXdwb3J0TWF4aW11bVNjYWxlLCBib29sIG5v
ZGVJc1Jvb3RMZXZlbCk7CisgICAgdm9pZCBkaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdU
YXBJZk5lY2Vzc2FyeShXZWJLaXQ6OlRhcElkZW50aWZpZXIpOworICAgIHZvaWQgaGFuZGxlU21h
cnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRpYWxUYXAoV2ViS2l0OjpUYXBJZGVu
dGlmaWVyLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlbmRlclJlY3QsIGJvb2wgZml0RW50
aXJlUmVjdCwgZG91YmxlIHZpZXdwb3J0TWluaW11bVNjYWxlLCBkb3VibGUgdmlld3BvcnRNYXhp
bXVtU2NhbGUsIGJvb2wgbm9kZUlzUm9vdExldmVsKTsKICAgICB2b2lkIGNvbnRlbnRTaXplQ2F0
ZWdvcnlEaWRDaGFuZ2UoY29uc3QgU3RyaW5nJiBjb250ZW50U2l6ZUNhdGVnb3J5KTsKICAgICB2
b2lkIGdldFNlbGVjdGlvbkNvbnRleHQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBTdHJp
bmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKT4mJik7Ci0gICAgdm9pZCBoYW5kbGVU
d29GaW5nZXJUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgT3B0aW9uU2V0PFdl
YktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgdWludDY0X3QgcmVxdWVzdElEKTsKKyAgICB2b2lk
IGhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBPcHRp
b25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCBXZWJLaXQ6OlRhcElkZW50aWZpZXIg
cmVxdWVzdElEKTsKICAgICB2b2lkIHNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKGJvb2wpOwog
ICAgIGJvb2wgZm9yY2VBbHdheXNVc2VyU2NhbGFibGUoKSBjb25zdCB7IHJldHVybiBtX2ZvcmNl
QWx3YXlzVXNlclNjYWxhYmxlOyB9CiAgICAgZG91YmxlIGxheW91dFNpemVTY2FsZUZhY3Rvcigp
IGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRDb25maWd1cmF0aW9uTGF5b3V0U2l6ZVNjYWxlRmFj
dG9yOyB9CkBAIC0xNDEzLDEwICsxNDE0LDEwIEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIHZvaWQgd2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpvb21pbmcoKTsKIAotICAg
IHZvaWQgcG90ZW50aWFsVGFwQXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50Jiwg
Ym9vbCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uLCB1aW50NjRfdCYgcmVx
dWVzdElEKTsKKyAgICB2b2lkIHBvdGVudGlhbFRhcEF0UG9zaXRpb24oY29uc3QgV2ViQ29yZTo6
RmxvYXRQb2ludCYsIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbiwg
V2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCk7CiAgICAgdm9pZCBjb21taXRQb3RlbnRp
YWxUYXAoT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgVHJhbnNhY3Rpb25J
RCBsYXllclRyZWVUcmFuc2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCwgV2ViQ29yZTo6UG9pbnRl
cklEKTsKICAgICB2b2lkIGNhbmNlbFBvdGVudGlhbFRhcCgpOwotICAgIHZvaWQgdGFwSGlnaGxp
Z2h0QXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgdWludDY0X3QmIHJlcXVl
c3RJRCk7CisgICAgdm9pZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKGNvbnN0IFdlYkNvcmU6OkZs
b2F0UG9pbnQmLCBXZWJLaXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElEKTsKICAgICB2b2lkIGF0
dGVtcHRTeW50aGV0aWNDbGljayhjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiwgT3B0aW9uU2V0
PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgVHJhbnNhY3Rpb25JRCBsYXllclRyZWVUcmFu
c2FjdGlvbklkQXRMYXN0VG91Y2hTdGFydCk7CiAgICAgdm9pZCBkaWRSZWNvZ25pemVMb25nUHJl
c3MoKTsKICAgICB2b2lkIGhhbmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChjb25z
dCBXZWJDb3JlOjpJbnRQb2ludCYsIE9wdGlvblNldDxXZWJFdmVudDo6TW9kaWZpZXI+LCBUcmFu
c2FjdGlvbklEIGxheWVyVHJlZVRyYW5zYWN0aW9uSWRBdExhc3RUb3VjaFN0YXJ0KTsKQEAgLTIz
NDMsNyArMjM0NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCByZXN0b3JlUGFnZVN0YXRlKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRQb2ludD4gc2Nyb2xsUG9zaXRpb24sIGNvbnN0IFdlYkNv
cmU6OkZsb2F0UG9pbnQmIHNjcm9sbE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6RmxvYXRCb3hFeHRl
bnQmIG9ic2N1cmVkSW5zZXRzT25TYXZlLCBkb3VibGUgc2NhbGUpOwogICAgIHZvaWQgcmVzdG9y
ZVBhZ2VDZW50ZXJBbmRTY2FsZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0UG9pbnQ+LCBk
b3VibGUgc2NhbGUpOwogCi0gICAgdm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKHVp
bnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBWZWN0
b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgZ2VvbWV0cmllcywgY29uc3QgV2ViQ29yZTo6SW50U2l6
ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzLCBib29sIG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5k
bGluZyk7CisgICAgdm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9tZXRyaWVzKFdlYktpdDo6VGFw
SWRlbnRpZmllciByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgVmVjdG9y
PFdlYkNvcmU6OkZsb2F0UXVhZD4mIGdlb21ldHJpZXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IHRvcExlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBj
b25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJ
bnRTaXplJiBib3R0b21SaWdodFJhZGl1cywgYm9vbCBub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxp
bmcpOwogCiAgICAgdm9pZCBlbGVtZW50RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZv
cm1hdGlvbiYsIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwg
T3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFu
Z2VzLCBjb25zdCBVc2VyRGF0YSYpOwogICAgIHZvaWQgZWxlbWVudERpZEJsdXIoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCBh
MGI3Mzk1MzZiNjAzZjQ4YjY5OTliMjc0YjE0ZTYyNjJkMzEyODEzLi5hNzA1MmNiZDFhNzdkNDdi
MjBiZWJmZWIwMjE0OTcyMDE2ODk3ZjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xNzIsOCArMTcyLDggQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWROb3RIYW5kbGVUYXBBc0NsaWNrKFdlYkNvcmU6Oklu
dFBvaW50IHBvaW50KQogICAgIERpZFRhcEF0UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQs
IGVudW06dWludDhfdCBXZWJLaXQ6OlRhcEhhbmRsaW5nUmVzdWx0IHJlc3VsdCkKICAgICBEaWRD
b21wbGV0ZVN5bnRoZXRpY0NsaWNrKCkKLSAgICBEaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJp
bmdUYXBJZk5lY2Vzc2FyeSh1aW50NjRfdCByZXF1ZXN0SUQpCi0gICAgSGFuZGxlU21hcnRNYWdu
aWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRpYWxUYXAodWludDY0X3QgcmVxdWVzdElELCBX
ZWJDb3JlOjpGbG9hdFJlY3QgcmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0LCBkb3VibGUg
dmlld3BvcnRNaW5pbXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1heGltdW1TY2FsZSwgYm9vbCBu
b2RlSXNSb290TGV2ZWwpCisgICAgRGlzYWJsZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZO
ZWNlc3NhcnkoV2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCkKKyAgICBIYW5kbGVTbWFy
dE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcChXZWJLaXQ6OlRhcElkZW50
aWZpZXIgcmVxdWVzdElELCBXZWJDb3JlOjpGbG9hdFJlY3QgcmVuZGVyUmVjdCwgYm9vbCBmaXRF
bnRpcmVSZWN0LCBkb3VibGUgdmlld3BvcnRNaW5pbXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1h
eGltdW1TY2FsZSwgYm9vbCBub2RlSXNSb290TGV2ZWwpCiAjZW5kaWYKICNpZiBFTkFCTEUoREFU
QV9ERVRFQ1RJT04pCiAgICAgU2V0RGF0YURldGVjdGlvblJlc3VsdChzdHJ1Y3QgV2ViS2l0OjpE
YXRhRGV0ZWN0aW9uUmVzdWx0IGRhdGFEZXRlY3Rpb25SZXN1bHQpCkBAIC0zOTIsNyArMzkyLDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBDb3VsZE5vdFJlc3RvcmVQYWdlU3Rh
dGUoKQogICAgIFJlc3RvcmVQYWdlU3RhdGUoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFBv
aW50PiBzY3JvbGxQb3NpdGlvbiwgV2ViQ29yZTo6RmxvYXRQb2ludCBzY3JvbGxPcmlnaW4sIFdl
YkNvcmU6OlJlY3RFZGdlczxmbG9hdD4gb2JzY3VyZWRJbnNldHNPblNhdmUsIGRvdWJsZSBzY2Fs
ZSkKICAgICBSZXN0b3JlUGFnZUNlbnRlckFuZFNjYWxlKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RmxvYXRQb2ludD4gdW5vYnNjdXJlZENlbnRlciwgZG91YmxlIHNjYWxlKQotICAgIERpZEdldFRh
cEhpZ2hsaWdodEdlb21ldHJpZXModWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpDb2xvciBj
b2xvciwgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4gZ2VvbWV0cmllcywgV2ViQ29yZTo6SW50
U2l6ZSB0b3BMZWZ0UmFkaXVzLCBXZWJDb3JlOjpJbnRTaXplIHRvcFJpZ2h0UmFkaXVzLCBXZWJD
b3JlOjpJbnRTaXplIGJvdHRvbUxlZnRSYWRpdXMsIFdlYkNvcmU6OkludFNpemUgYm90dG9tUmln
aHRSYWRpdXMsIGJvb2wgbm9kZUhhc0J1aWx0SW5DbGlja0hhbmRsaW5nKQorICAgIERpZEdldFRh
cEhpZ2hsaWdodEdlb21ldHJpZXMoV2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCwgV2Vi
Q29yZTo6Q29sb3IgY29sb3IsIFZlY3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+IGdlb21ldHJpZXMs
IFdlYkNvcmU6OkludFNpemUgdG9wTGVmdFJhZGl1cywgV2ViQ29yZTo6SW50U2l6ZSB0b3BSaWdo
dFJhZGl1cywgV2ViQ29yZTo6SW50U2l6ZSBib3R0b21MZWZ0UmFkaXVzLCBXZWJDb3JlOjpJbnRT
aXplIGJvdHRvbVJpZ2h0UmFkaXVzLCBib29sIG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZykK
IAogICAgIEVsZW1lbnREaWRGb2N1cyhzdHJ1Y3QgV2ViS2l0OjpGb2N1c2VkRWxlbWVudEluZm9y
bWF0aW9uIGluZm9ybWF0aW9uLCBib29sIHVzZXJJc0ludGVyYWN0aW5nLCBib29sIGJsdXJQcmV2
aW91c05vZGUsIE9wdGlvblNldDxXZWJDb3JlOjpBY3Rpdml0eVN0YXRlOjpGbGFnPiBhY3Rpdml0
eVN0YXRlQ2hhbmdlcywgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkKICAgICBFbGVtZW50RGlk
Qmx1cigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElP
Uy5oCmluZGV4IGIyMjFhZjc5MzY3MTVhODQ1N2E4YThlODlkZTEwMmNkMzFkYjc5MjAuLjVkMzgy
MGVlNGQwZjRkZTFlMDAyODYyMjA5M2NjMzU3OWZjZDk1OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCkBAIC0xNjQsNyArMTY0LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIHdoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0
IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSBvdmVycmlkZTsKIAogICAgIHZvaWQgY29tbWl0UG90ZW50
aWFsVGFwRmFpbGVkKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9t
ZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBW
ZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRRdWFkcywgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmln
aHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzLCBib29sIG5vZGVIYXNCdWlsdElu
Q2xpY2tIYW5kbGluZykgb3ZlcnJpZGU7CisgICAgdm9pZCBkaWRHZXRUYXBIaWdobGlnaHRHZW9t
ZXRyaWVzKFdlYktpdDo6VGFwSWRlbnRpZmllciByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkNv
bG9yJiwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4mIGhpZ2hsaWdodGVkUXVhZHMs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcExlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21MZWZ0
UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21SaWdodFJhZGl1cywgYm9vbCBu
b2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxpbmcpIG92ZXJyaWRlOwogCiAgICAgdm9pZCBkaWRDb21t
aXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKSBvdmVycmlkZTsK
ICAgICB2b2lkIGxheWVyVHJlZUNvbW1pdENvbXBsZXRlKCkgb3ZlcnJpZGU7CkBAIC0xOTUsOCAr
MTk1LDggQEAgcHJpdmF0ZToKICAgICBib29sIHNob3dTaGFyZVNoZWV0KGNvbnN0IFdlYkNvcmU6
OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmLCBXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2hvd0NvbnRhY3RQaWNrZXIoY29uc3QgV2ViQ29y
ZTo6Q29udGFjdHNSZXF1ZXN0RGF0YSYsIFdURjo6Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6
Om9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmKSBvdmVycmlkZTsK
ICAgICAKLSAgICB2b2lkIGRpc2FibGVEb3VibGVUYXBHZXN0dXJlc0R1cmluZ1RhcElmTmVjZXNz
YXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBoYW5kbGVTbWFydE1h
Z25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcCh1aW50NjRfdCByZXF1ZXN0SUQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0
LCBkb3VibGUgdmlld3BvcnRNaW5pbXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1heGltdW1TY2Fs
ZSwgYm9vbCBub2RlSXNSb290TGV2ZWwpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzYWJsZURvdWJs
ZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3NhcnkoV2ViS2l0OjpUYXBJZGVudGlmaWVyKSBv
dmVycmlkZTsKKyAgICB2b2lkIGhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9y
UG90ZW50aWFsVGFwKFdlYktpdDo6VGFwSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiByZW5kZXJSZWN0LCBib29sIGZpdEVudGlyZVJlY3QsIGRvdWJsZSB2aWV3cG9ydE1pbmlt
dW1TY2FsZSwgZG91YmxlIHZpZXdwb3J0TWF4aW11bVNjYWxlLCBib29sIG5vZGVJc1Jvb3RMZXZl
bCkgb3ZlcnJpZGU7CiAKICAgICBkb3VibGUgbWluaW11bVpvb21TY2FsZSgpIGNvbnN0IG92ZXJy
aWRlOwogICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBkb2N1bWVudFJlY3QoKSBjb25zdCBvdmVycmlk
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5t
bQppbmRleCAxYmQzMzA2NWYxMGMxNzBkMDY2Y2NiN2E2ZjZhNWM1ZTg2MzE4OGRmLi5lMTE2MTQw
OGFiYjkwNGE4ZjJjZmZjZWIwOWExYmE0MGRjNjM3YWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCkBAIC0yNzcsMTIgKzI3NywxMiBA
QCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3Jl
OjpJbnRTaXplJikKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeSh1aW50NjRf
dCByZXF1ZXN0SUQpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaXNhYmxlRG91YmxlVGFwR2VzdHVy
ZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeShXZWJLaXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElEKQog
ewogICAgIFttX2NvbnRlbnRWaWV3IF9kaXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJ
Zk5lY2Vzc2FyeTpyZXF1ZXN0SURdOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5kbGVT
bWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcCh1aW50NjRfdCByZXF1
ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgcmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRp
cmVSZWN0LCBkb3VibGUgdmlld3BvcnRNaW5pbXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1heGlt
dW1TY2FsZSwgYm9vbCBub2RlSXNSb290TGV2ZWwpCit2b2lkIFBhZ2VDbGllbnRJbXBsOjpoYW5k
bGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcChXZWJLaXQ6OlRh
cElkZW50aWZpZXIgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlbmRlclJl
Y3QsIGJvb2wgZml0RW50aXJlUmVjdCwgZG91YmxlIHZpZXdwb3J0TWluaW11bVNjYWxlLCBkb3Vi
bGUgdmlld3BvcnRNYXhpbXVtU2NhbGUsIGJvb2wgbm9kZUlzUm9vdExldmVsKQogewogICAgIFtt
X2NvbnRlbnRWaWV3IF9oYW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVu
dGlhbFRhcDpyZXF1ZXN0SUQgcmVuZGVyUmVjdDpyZW5kZXJSZWN0IGZpdEVudGlyZVJlY3Q6Zml0
RW50aXJlUmVjdCB2aWV3cG9ydE1pbmltdW1TY2FsZTp2aWV3cG9ydE1pbmltdW1TY2FsZSB2aWV3
cG9ydE1heGltdW1TY2FsZTp2aWV3cG9ydE1heGltdW1TY2FsZSBub2RlSXNSb290TGV2ZWw6bm9k
ZUlzUm9vdExldmVsXTsKIH0KQEAgLTU4NSw3ICs1ODUsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
Ojpjb21taXRQb3RlbnRpYWxUYXBGYWlsZWQoKQogICAgIFttX2NvbnRlbnRWaWV3IF9jb21taXRQ
b3RlbnRpYWxUYXBGYWlsZWRdOwogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRHZXRUYXBI
aWdobGlnaHRHZW9tZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29s
b3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRR
dWFkcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRv
bUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzLCBi
b29sIG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZykKK3ZvaWQgUGFnZUNsaWVudEltcGw6OmRp
ZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXMoV2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJ
RCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6Rmxv
YXRRdWFkPiYgaGlnaGxpZ2h0ZWRRdWFkcywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVm
dFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgdG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGJvdHRvbUxlZnRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUm
IGJvdHRvbVJpZ2h0UmFkaXVzLCBib29sIG5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZykKIHsK
ICAgICBbbV9jb250ZW50VmlldyBfZGlkR2V0VGFwSGlnaGxpZ2h0Rm9yUmVxdWVzdDpyZXF1ZXN0
SUQgY29sb3I6Y29sb3IgcXVhZHM6aGlnaGxpZ2h0ZWRRdWFkcyB0b3BMZWZ0UmFkaXVzOnRvcExl
ZnRSYWRpdXMgdG9wUmlnaHRSYWRpdXM6dG9wUmlnaHRSYWRpdXMgYm90dG9tTGVmdFJhZGl1czpi
b3R0b21MZWZ0UmFkaXVzIGJvdHRvbVJpZ2h0UmFkaXVzOmJvdHRvbVJpZ2h0UmFkaXVzIG5vZGVI
YXNCdWlsdEluQ2xpY2tIYW5kbGluZzpub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxpbmddOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5oCmluZGV4IGZjYTM4ZGQwYTRlYWM3NWE3YjgyZjExNWE5MDVlNjMyYjYzOGNkZWIu
LjM1NTZkZjdkMjdlODZjNmU4ODM2ZmRkOWY4ZWNjYTA0NThhOTU3ZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbXBvcnQgIkZyYW1lSW5mb0RhdGEuaCIKICNpbXBvcnQgIkdl
c3R1cmVSZWNvZ25pemVyQ29uc2lzdGVuY3lFbmZvcmNlci5oIgogI2ltcG9ydCAiR2VzdHVyZVR5
cGVzLmgiCisjaW1wb3J0ICJJZGVudGlmaWVyVHlwZXMuaCIKICNpbXBvcnQgIkludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCiAjaW1wb3J0ICJQYXN0ZWJvYXJkQWNjZXNzSW50ZW50
LmgiCiAjaW1wb3J0ICJTeW50aGV0aWNFZGl0aW5nQ29tbWFuZFR5cGUuaCIKQEAgLTM2NSw3ICsz
NjYsNyBAQCB1c2luZyBJbWFnZUFuYWx5c2lzUmVxdWVzdElkZW50aWZpZXIgPSBPYmplY3RJZGVu
dGlmaWVyPEltYWdlQW5hbHlzaXNSZXF1ZXN0SWRlbgogCiAgICAgV2Vha09iakNQdHI8aWQgPFVJ
VGV4dElucHV0RGVsZWdhdGU+PiBfaW5wdXREZWxlZ2F0ZTsKIAotICAgIHVpbnQ2NF90IF9sYXRl
c3RUYXBJRDsKKyAgICBXZWJLaXQ6OlRhcElkZW50aWZpZXIgX2xhdGVzdFRhcElEOwogICAgIHN0
cnVjdCBUYXBIaWdobGlnaHRJbmZvcm1hdGlvbiB7CiAgICAgICAgIEJPT0wgbm9kZUhhc0J1aWx0
SW5DbGlja0hhbmRsaW5nIHsgZmFsc2UgfTsKICAgICAgICAgV2ViQ29yZTo6Q29sb3IgY29sb3I7
CkBAIC02MDYsMTEgKzYwNywxMiBAQCBGT1JfRUFDSF9QUklWQVRFX1dLQ09OVEVOVFZJRVdfQUNU
SU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9SX1dFQl9WSUVXKQogLSAodm9pZClf
Y29tbWl0UG90ZW50aWFsVGFwRmFpbGVkOwogLSAodm9pZClfZGlkTm90SGFuZGxlVGFwQXNDbGlj
azooY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKXBvaW50OwogLSAodm9pZClfZGlkQ29tcGxldGVT
eW50aGV0aWNDbGljazsKLS0gKHZvaWQpX2RpZEdldFRhcEhpZ2hsaWdodEZvclJlcXVlc3Q6KHVp
bnQ2NF90KXJlcXVlc3RJRCBjb2xvcjooY29uc3QgV2ViQ29yZTo6Q29sb3ImKWNvbG9yIHF1YWRz
Oihjb25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYpaGlnaGxpZ2h0ZWRRdWFkcyB0b3BM
ZWZ0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJbnRTaXplJil0b3BMZWZ0UmFkaXVzIHRvcFJpZ2h0
UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJbnRTaXplJil0b3BSaWdodFJhZGl1cyBib3R0b21MZWZ0
UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJbnRTaXplJilib3R0b21MZWZ0UmFkaXVzIGJvdHRvbVJp
Z2h0UmFkaXVzOihjb25zdCBXZWJDb3JlOjpJbnRTaXplJilib3R0b21SaWdodFJhZGl1cyBub2Rl
SGFzQnVpbHRJbkNsaWNrSGFuZGxpbmc6KEJPT0wpbm9kZUhhc0J1aWx0SW5DbGlja0hhbmRsaW5n
OworCistICh2b2lkKV9kaWRHZXRUYXBIaWdobGlnaHRGb3JSZXF1ZXN0OihXZWJLaXQ6OlRhcElk
ZW50aWZpZXIpcmVxdWVzdElEIGNvbG9yOihjb25zdCBXZWJDb3JlOjpDb2xvciYpY29sb3IgcXVh
ZHM6KGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpGbG9hdFF1YWQ+JiloaWdobGlnaHRlZFF1YWRzIHRv
cExlZnRSYWRpdXM6KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKXRvcExlZnRSYWRpdXMgdG9wUmln
aHRSYWRpdXM6KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKXRvcFJpZ2h0UmFkaXVzIGJvdHRvbUxl
ZnRSYWRpdXM6KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKWJvdHRvbUxlZnRSYWRpdXMgYm90dG9t
UmlnaHRSYWRpdXM6KGNvbnN0IFdlYkNvcmU6OkludFNpemUmKWJvdHRvbVJpZ2h0UmFkaXVzIG5v
ZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZzooQk9PTClub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxp
bmc7CiAKIC0gKEJPT0wpX21heURpc2FibGVEb3VibGVUYXBHZXN0dXJlc0R1cmluZ1NpbmdsZVRh
cDsKLS0gKHZvaWQpX2Rpc2FibGVEb3VibGVUYXBHZXN0dXJlc0R1cmluZ1RhcElmTmVjZXNzYXJ5
Oih1aW50NjRfdClyZXF1ZXN0SUQ7Ci0tICh2b2lkKV9oYW5kbGVTbWFydE1hZ25pZmljYXRpb25J
bmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcDoodWludDY0X3QpcmVxdWVzdElEIHJlbmRlclJlY3Q6
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpcmVuZGVyUmVjdCBmaXRFbnRpcmVSZWN0OihCT09M
KWZpdEVudGlyZVJlY3Qgdmlld3BvcnRNaW5pbXVtU2NhbGU6KGRvdWJsZSl2aWV3cG9ydE1pbmlt
dW1TY2FsZSB2aWV3cG9ydE1heGltdW1TY2FsZTooZG91YmxlKXZpZXdwb3J0TWF4aW11bVNjYWxl
IG5vZGVJc1Jvb3RMZXZlbDooQk9PTClub2RlSXNSb290TGV2ZWw7CistICh2b2lkKV9kaXNhYmxl
RG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeTooV2ViS2l0OjpUYXBJZGVudGlm
aWVyKXJlcXVlc3RJRDsKKy0gKHZvaWQpX2hhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0
aW9uRm9yUG90ZW50aWFsVGFwOihXZWJLaXQ6OlRhcElkZW50aWZpZXIpcmVxdWVzdElEIHJlbmRl
clJlY3Q6KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpcmVuZGVyUmVjdCBmaXRFbnRpcmVSZWN0
OihCT09MKWZpdEVudGlyZVJlY3Qgdmlld3BvcnRNaW5pbXVtU2NhbGU6KGRvdWJsZSl2aWV3cG9y
dE1pbmltdW1TY2FsZSB2aWV3cG9ydE1heGltdW1TY2FsZTooZG91YmxlKXZpZXdwb3J0TWF4aW11
bVNjYWxlIG5vZGVJc1Jvb3RMZXZlbDooQk9PTClub2RlSXNSb290TGV2ZWw7CiAtICh2b2lkKV9l
bGVtZW50RGlkRm9jdXM6KGNvbnN0IFdlYktpdDo6Rm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYp
aW5mb3JtYXRpb24gdXNlcklzSW50ZXJhY3Rpbmc6KEJPT0wpdXNlcklzSW50ZXJhY3RpbmcgYmx1
clByZXZpb3VzTm9kZTooQk9PTClibHVyUHJldmlvdXNOb2RlIGFjdGl2aXR5U3RhdGVDaGFuZ2Vz
OihPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4pYWN0aXZpdHlTdGF0ZUNo
YW5nZXMgdXNlck9iamVjdDooTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPiAqKXVzZXJPYmplY3Q7
CiAtICh2b2lkKV91cGRhdGVJbnB1dENvbnRleHRBZnRlckJsdXJyaW5nQW5kUmVmb2N1c2luZ0Vs
ZW1lbnQ7CiAtICh2b2lkKV9lbGVtZW50RGlkQmx1cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGQ2NzQ4
ZTEzMGRjNDgwOGQ3NWMxYTgxMzc5ZTA5NTY0NWIwY2E1YmIuLmQ1MDY4NjU2MDQzYTU4ZTNiM2Fl
MWYzNzA5NTFkMDMyOTUyZjkzYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMjExMCw3ICsyMTEwLDcg
QEAgLSAodm9pZClfc2hvd1RhcEhpZ2hsaWdodAogICAgIFtzZWxmIF91cGRhdGVUYXBIaWdobGln
aHRdOwogfQogCi0tICh2b2lkKV9kaWRHZXRUYXBIaWdobGlnaHRGb3JSZXF1ZXN0Oih1aW50NjRf
dClyZXF1ZXN0SUQgY29sb3I6KGNvbnN0IFdlYkNvcmU6OkNvbG9yJiljb2xvciBxdWFkczooY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4mKWhpZ2hsaWdodGVkUXVhZHMgdG9wTGVmdFJh
ZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpdG9wTGVmdFJhZGl1cyB0b3BSaWdodFJhZGl1
czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpdG9wUmlnaHRSYWRpdXMgYm90dG9tTGVmdFJhZGl1
czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpYm90dG9tTGVmdFJhZGl1cyBib3R0b21SaWdodFJh
ZGl1czooY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYpYm90dG9tUmlnaHRSYWRpdXMgbm9kZUhhc0J1
aWx0SW5DbGlja0hhbmRsaW5nOihCT09MKW5vZGVIYXNCdWlsdEluQ2xpY2tIYW5kbGluZworLSAo
dm9pZClfZGlkR2V0VGFwSGlnaGxpZ2h0Rm9yUmVxdWVzdDooV2ViS2l0OjpUYXBJZGVudGlmaWVy
KXJlcXVlc3RJRCBjb2xvcjooY29uc3QgV2ViQ29yZTo6Q29sb3ImKWNvbG9yIHF1YWRzOihjb25z
dCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYpaGlnaGxpZ2h0ZWRRdWFkcyB0b3BMZWZ0UmFk
aXVzOihjb25zdCBXZWJDb3JlOjpJbnRTaXplJil0b3BMZWZ0UmFkaXVzIHRvcFJpZ2h0UmFkaXVz
Oihjb25zdCBXZWJDb3JlOjpJbnRTaXplJil0b3BSaWdodFJhZGl1cyBib3R0b21MZWZ0UmFkaXVz
Oihjb25zdCBXZWJDb3JlOjpJbnRTaXplJilib3R0b21MZWZ0UmFkaXVzIGJvdHRvbVJpZ2h0UmFk
aXVzOihjb25zdCBXZWJDb3JlOjpJbnRTaXplJilib3R0b21SaWdodFJhZGl1cyBub2RlSGFzQnVp
bHRJbkNsaWNrSGFuZGxpbmc6KEJPT0wpbm9kZUhhc0J1aWx0SW5DbGlja0hhbmRsaW5nCiB7CiAg
ICAgaWYgKCFfaXNUYXBIaWdobGlnaHRJRFZhbGlkIHx8IF9sYXRlc3RUYXBJRCAhPSByZXF1ZXN0
SUQpCiAgICAgICAgIHJldHVybjsKQEAgLTIxNDksNyArMjE0OSw3IEBAIC0gKEJPT0wpX21heURp
c2FibGVEb3VibGVUYXBHZXN0dXJlc0R1cmluZ1NpbmdsZVRhcAogICAgIHJldHVybiBfcG90ZW50
aWFsVGFwSW5Qcm9ncmVzczsKIH0KIAotLSAodm9pZClfZGlzYWJsZURvdWJsZVRhcEdlc3R1cmVz
RHVyaW5nVGFwSWZOZWNlc3Nhcnk6KHVpbnQ2NF90KXJlcXVlc3RJRAorLSAodm9pZClfZGlzYWJs
ZURvdWJsZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3Nhcnk6KFdlYktpdDo6VGFwSWRlbnRp
ZmllcilyZXF1ZXN0SUQKIHsKICAgICBpZiAoX2xhdGVzdFRhcElEICE9IHJlcXVlc3RJRCkKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjE1Nyw3ICsyMTU3LDcgQEAgLSAodm9pZClfZGlzYWJsZURvdWJs
ZVRhcEdlc3R1cmVzRHVyaW5nVGFwSWZOZWNlc3Nhcnk6KHVpbnQ2NF90KXJlcXVlc3RJRAogICAg
IFtzZWxmIF9zZXREb3VibGVUYXBHZXN0dXJlc0VuYWJsZWQ6Tk9dOwogfQogCi0tICh2b2lkKV9o
YW5kbGVTbWFydE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbkZvclBvdGVudGlhbFRhcDoodWludDY0
X3QpcmVxdWVzdElEIHJlbmRlclJlY3Q6KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpcmVuZGVy
UmVjdCBmaXRFbnRpcmVSZWN0OihCT09MKWZpdEVudGlyZVJlY3Qgdmlld3BvcnRNaW5pbXVtU2Nh
bGU6KGRvdWJsZSl2aWV3cG9ydE1pbmltdW1TY2FsZSB2aWV3cG9ydE1heGltdW1TY2FsZTooZG91
YmxlKXZpZXdwb3J0TWF4aW11bVNjYWxlIG5vZGVJc1Jvb3RMZXZlbDooQk9PTClub2RlSXNSb290
TGV2ZWwKKy0gKHZvaWQpX2hhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90
ZW50aWFsVGFwOihXZWJLaXQ6OlRhcElkZW50aWZpZXIpcmVxdWVzdElEIHJlbmRlclJlY3Q6KGNv
bnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYpcmVuZGVyUmVjdCBmaXRFbnRpcmVSZWN0OihCT09MKWZp
dEVudGlyZVJlY3Qgdmlld3BvcnRNaW5pbXVtU2NhbGU6KGRvdWJsZSl2aWV3cG9ydE1pbmltdW1T
Y2FsZSB2aWV3cG9ydE1heGltdW1TY2FsZTooZG91YmxlKXZpZXdwb3J0TWF4aW11bVNjYWxlIG5v
ZGVJc1Jvb3RMZXZlbDooQk9PTClub2RlSXNSb290TGV2ZWwKIHsKICAgICBjb25zdCBhdXRvJiBw
cmVmZXJlbmNlcyA9IF9wYWdlLT5wcmVmZXJlbmNlcygpOwogCkBAIC0zMDIxLDYgKzMwMjEsMTIg
QEAgLSAoTlNBcnJheSAqKXdlYlNlbGVjdGlvblJlY3RzCiAgICAgcmV0dXJuIFtzZWxmIHdlYlNl
bGVjdGlvblJlY3RzRm9yU2VsZWN0aW9uR2VvbWV0cmllczpzZWxlY3Rpb25HZW9tZXRyaWVzXTsK
IH0KIAorLSAoV2ViS2l0OjpUYXBJZGVudGlmaWVyKW5leHRUYXBJZGVudGlmaWVyCit7CisgICAg
X2xhdGVzdFRhcElEID0gV2ViS2l0OjpUYXBJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOworICAgIHJl
dHVybiBfbGF0ZXN0VGFwSUQ7Cit9CisKIC0gKHZvaWQpX2hpZ2hsaWdodExvbmdQcmVzc1JlY29n
bml6ZWQ6KFVJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgog
ewogICAgIEFTU0VSVChnZXN0dXJlUmVjb2duaXplciA9PSBfaGlnaGxpZ2h0TG9uZ1ByZXNzR2Vz
dHVyZVJlY29nbml6ZXIpOwpAQCAtMzAzMiw3ICszMDM4LDcgQEAgLSAodm9pZClfaGlnaGxpZ2h0
TG9uZ1ByZXNzUmVjb2duaXplZDooVUlMb25nUHJlc3NHZXN0dXJlUmVjb2duaXplciAqKWdlc3R1
cmVSZWMKICAgICBjYXNlIFVJR2VzdHVyZVJlY29nbml6ZXJTdGF0ZUJlZ2FuOgogICAgICAgICBf
bG9uZ1ByZXNzQ2FuQ2xpY2sgPSBZRVM7CiAgICAgICAgIGNhbmNlbFBvdGVudGlhbFRhcElmTmVj
ZXNzYXJ5KHNlbGYpOwotICAgICAgICBfcGFnZS0+dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihbZ2Vz
dHVyZVJlY29nbml6ZXIgc3RhcnRQb2ludF0sICsrX2xhdGVzdFRhcElEKTsKKyAgICAgICAgX3Bh
Z2UtPnRhcEhpZ2hsaWdodEF0UG9zaXRpb24oW2dlc3R1cmVSZWNvZ25pemVyIHN0YXJ0UG9pbnRd
LCBbc2VsZiBuZXh0VGFwSWRlbnRpZmllcl0pOwogICAgICAgICBfaXNUYXBIaWdobGlnaHRJRFZh
bGlkID0gWUVTOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVJR2VzdHVyZVJlY29nbml6ZXJT
dGF0ZUVuZGVkOgpAQCAtMzA2MSw3ICszMDY3LDcgQEAgLSAodm9pZClfdHdvRmluZ2VyU2luZ2xl
VGFwR2VzdHVyZVJlY29nbml6ZWQ6KFVJVGFwR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmUK
IHsKICAgICBfaXNUYXBIaWdobGlnaHRJRFZhbGlkID0gWUVTOwogICAgIF9pc0V4cGVjdGluZ0Zh
c3RTaW5nbGVUYXBDb21taXQgPSBZRVM7Ci0gICAgX3BhZ2UtPmhhbmRsZVR3b0ZpbmdlclRhcEF0
UG9pbnQoV2ViQ29yZTo6cm91bmRlZEludFBvaW50KGdlc3R1cmVSZWNvZ25pemVyLmNlbnRyb2lk
KSwgV2ViS2l0Ojp3ZWJFdmVudE1vZGlmaWVyRmxhZ3MoZ2VzdHVyZVJlY29nbml6ZXIubW9kaWZp
ZXJGbGFncyB8IFVJS2V5TW9kaWZpZXJDb21tYW5kKSwgKytfbGF0ZXN0VGFwSUQpOworICAgIF9w
YWdlLT5oYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChn
ZXN0dXJlUmVjb2duaXplci5jZW50cm9pZCksIFdlYktpdDo6d2ViRXZlbnRNb2RpZmllckZsYWdz
KGdlc3R1cmVSZWNvZ25pemVyLm1vZGlmaWVyRmxhZ3MgfCBVSUtleU1vZGlmaWVyQ29tbWFuZCks
IFtzZWxmIG5leHRUYXBJZGVudGlmaWVyXSk7CiB9CiAKIC0gKHZvaWQpX2xvbmdQcmVzc1JlY29n
bml6ZWQ6KFVJTG9uZ1ByZXNzR2VzdHVyZVJlY29nbml6ZXIgKilnZXN0dXJlUmVjb2duaXplcgpA
QCAtMzA5NSw2ICszMTAxLDcgQEAgLSAodm9pZClfZW5kUG90ZW50aWFsVGFwQW5kRW5hYmxlRG91
YmxlVGFwR2VzdHVyZXNJZk5lY2Vzc2FyeQogICAgIF9wb3RlbnRpYWxUYXBJblByb2dyZXNzID0g
Tk87CiB9CiAKKwogLSAodm9pZClfc2luZ2xlVGFwSWRlbnRpZmllZDooVUlUYXBHZXN0dXJlUmVj
b2duaXplciAqKWdlc3R1cmVSZWNvZ25pemVyCiB7CiAgICAgQVNTRVJUKGdlc3R1cmVSZWNvZ25p
emVyID09IF9zaW5nbGVUYXBHZXN0dXJlUmVjb2duaXplcik7CkBAIC0zMTA3LDcgKzMxMTQsNyBA
QCAtICh2b2lkKV9zaW5nbGVUYXBJZGVudGlmaWVkOihVSVRhcEdlc3R1cmVSZWNvZ25pemVyICop
Z2VzdHVyZVJlY29nbml6ZXIKICAgICBpZiAoc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZv
cm1hdGlvbikKICAgICAgICAgUkVMRUFTRV9MT0coVmlld0dlc3R1cmVzLCAiU2luZ2xlIHRhcCBp
ZGVudGlmaWVkLiBSZXF1ZXN0IGRldGFpbHMgb24gcG90ZW50aWFsIHpvb20uICglcCkiLCBzZWxm
KTsKIAotICAgIF9wYWdlLT5wb3RlbnRpYWxUYXBBdFBvc2l0aW9uKGdlc3R1cmVSZWNvZ25pemVy
LmxvY2F0aW9uLCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uLCArK19sYXRl
c3RUYXBJRCk7CisgICAgX3BhZ2UtPnBvdGVudGlhbFRhcEF0UG9zaXRpb24oZ2VzdHVyZVJlY29n
bml6ZXIubG9jYXRpb24sIHNob3VsZFJlcXVlc3RNYWduaWZpY2F0aW9uSW5mb3JtYXRpb24sIFtz
ZWxmIG5leHRUYXBJZGVudGlmaWVyXSk7CiAgICAgX3BvdGVudGlhbFRhcEluUHJvZ3Jlc3MgPSBZ
RVM7CiAgICAgX2lzVGFwSGlnaGxpZ2h0SURWYWxpZCA9IFlFUzsKICAgICBfaXNFeHBlY3RpbmdG
YXN0U2luZ2xlVGFwQ29tbWl0ID0gIV9kb3VibGVUYXBHZXN0dXJlUmVjb2duaXplci5nZXQoKS5l
bmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJveHlJT1Mu
bW0KaW5kZXggNTU1MzE3ZjczMGVmNDBhMDZmOTA2ZDQyYjY5ZjQwMzZkN2YwM2Q5YS4uOTdjN2E5
MzgzM2ZmZWQ5ODY2ZjE4NGVkOGU1NWQ4ZDM1MTExZDZkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCkBAIC01MzQsNyArNTM0LDcgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OmdldFNlbGVjdGlvbkNvbnRleHQoQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBTdHJpbmcmLCBjb24KICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YlBhZ2U6OkdldFNlbGVjdGlvbkNvbnRleHQoKSwgV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSk7
CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpNb2RpZmllcj4g
bW9kaWZpZXJzLCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxl
VHdvRmluZ2VyVGFwQXRQb2ludChjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIE9wdGlv
blNldDxXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgV2ViS2l0OjpUYXBJZGVudGlmaWVy
IHJlcXVlc3RJRCkKIHsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpIYW5kbGVUd29GaW5n
ZXJUYXBBdFBvaW50KHBvaW50LCBtb2RpZmllcnMsIHJlcXVlc3RJRCkpOwogfQpAQCAtNzc5LDcg
Kzc3OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp3aWxsU3RhcnRVc2VyVHJpZ2dlcmVkWm9vbWlu
ZygpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6V2lsbFN0YXJ0VXNlclRyaWdnZXJlZFpv
b21pbmcoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5Ojpwb3RlbnRpYWxUYXBBdFBvc2l0aW9u
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHBvc2l0aW9uLCBib29sIHNob3VsZFJlcXVlc3RN
YWduaWZpY2F0aW9uSW5mb3JtYXRpb24sIHVpbnQ2NF90JiByZXF1ZXN0SUQpCit2b2lkIFdlYlBh
Z2VQcm94eTo6cG90ZW50aWFsVGFwQXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50
JiBwb3NpdGlvbiwgYm9vbCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uLCBX
ZWJLaXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElEKQogewogICAgIGhpZGVWYWxpZGF0aW9uTWVz
c2FnZSgpOwogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlBvdGVudGlhbFRhcEF0UG9zaXRp
b24ocmVxdWVzdElELCBwb3NpdGlvbiwgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1h
dGlvbikpOwpAQCAtNzk1LDcgKzc5NSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjYW5jZWxQb3Rl
bnRpYWxUYXAoKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNhbmNlbFBvdGVudGlhbFRh
cCgpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24oY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgcG9zaXRpb24sIHVpbnQ2NF90JiByZXF1ZXN0SUQpCit2
b2lkIFdlYlBhZ2VQcm94eTo6dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihjb25zdCBXZWJDb3JlOjpG
bG9hdFBvaW50JiBwb3NpdGlvbiwgV2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCkKIHsK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpUYXBIaWdobGlnaHRBdFBvc2l0aW9uKHJlcXVl
c3RJRCwgcG9zaXRpb24pKTsKIH0KQEAgLTg2NSw3ICs4NjUsNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6cmVzdG9yZVBhZ2VDZW50ZXJBbmRTY2FsZShzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZsb2F0
UG9pbnQ+CiAgICAgcGFnZUNsaWVudCgpLnJlc3RvcmVQYWdlQ2VudGVyQW5kU2NhbGUoY2VudGVy
LCBzY2FsZSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkaWRHZXRUYXBIaWdobGlnaHRHZW9t
ZXRyaWVzKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yLCBj
b25zdCBWZWN0b3I8V2ViQ29yZTo6RmxvYXRRdWFkPiYgaGlnaGxpZ2h0ZWRRdWFkcywgY29uc3Qg
V2ViQ29yZTo6SW50U2l6ZSYgdG9wTGVmdFJhZGl1cywgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
dG9wUmlnaHRSYWRpdXMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbUxlZnRSYWRpdXMs
IGNvbnN0IFdlYkNvcmU6OkludFNpemUmIGJvdHRvbVJpZ2h0UmFkaXVzLCBib29sIG5vZGVIYXNC
dWlsdEluQ2xpY2tIYW5kbGluZykKK3ZvaWQgV2ViUGFnZVByb3h5OjpkaWRHZXRUYXBIaWdobGln
aHRHZW9tZXRyaWVzKFdlYktpdDo6VGFwSWRlbnRpZmllciByZXF1ZXN0SUQsIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiBjb2xvciwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OkZsb2F0UXVhZD4mIGhpZ2hs
aWdodGVkUXVhZHMsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHRvcExlZnRSYWRpdXMsIGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIHRvcFJpZ2h0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXpl
JiBib3R0b21MZWZ0UmFkaXVzLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBib3R0b21SaWdodFJh
ZGl1cywgYm9vbCBub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxpbmcpCiB7CiAgICAgcGFnZUNsaWVu
dCgpLmRpZEdldFRhcEhpZ2hsaWdodEdlb21ldHJpZXMocmVxdWVzdElELCBjb2xvciwgaGlnaGxp
Z2h0ZWRRdWFkcywgdG9wTGVmdFJhZGl1cywgdG9wUmlnaHRSYWRpdXMsIGJvdHRvbUxlZnRSYWRp
dXMsIGJvdHRvbVJpZ2h0UmFkaXVzLCBub2RlSGFzQnVpbHRJbkNsaWNrSGFuZGxpbmcpOwogfQpA
QCAtMTAxNSwxMiArMTAxNSwxMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkQ29tcGxldGVTeW50
aGV0aWNDbGljaygpCiAgICAgcGFnZUNsaWVudCgpLmRpZENvbXBsZXRlU3ludGhldGljQ2xpY2so
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmRpc2FibGVEb3VibGVUYXBHZXN0dXJlc0R1cmlu
Z1RhcElmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCkKK3ZvaWQgV2ViUGFnZVByb3h5Ojpk
aXNhYmxlRG91YmxlVGFwR2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeShXZWJLaXQ6OlRhcElk
ZW50aWZpZXIgcmVxdWVzdElEKQogewogICAgIHBhZ2VDbGllbnQoKS5kaXNhYmxlRG91YmxlVGFw
R2VzdHVyZXNEdXJpbmdUYXBJZk5lY2Vzc2FyeShyZXF1ZXN0SUQpOwogfQogCi12b2lkIFdlYlBh
Z2VQcm94eTo6aGFuZGxlU21hcnRNYWduaWZpY2F0aW9uSW5mb3JtYXRpb25Gb3JQb3RlbnRpYWxU
YXAodWludDY0X3QgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHJlbmRlclJl
Y3QsIGJvb2wgZml0RW50aXJlUmVjdCwgZG91YmxlIHZpZXdwb3J0TWluaW11bVNjYWxlLCBkb3Vi
bGUgdmlld3BvcnRNYXhpbXVtU2NhbGUsIGJvb2wgbm9kZUlzUm9vdExldmVsKQordm9pZCBXZWJQ
YWdlUHJveHk6OmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uRm9yUG90ZW50aWFs
VGFwKFdlYktpdDo6VGFwSWRlbnRpZmllciByZXF1ZXN0SUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0
UmVjdCYgcmVuZGVyUmVjdCwgYm9vbCBmaXRFbnRpcmVSZWN0LCBkb3VibGUgdmlld3BvcnRNaW5p
bXVtU2NhbGUsIGRvdWJsZSB2aWV3cG9ydE1heGltdW1TY2FsZSwgYm9vbCBub2RlSXNSb290TGV2
ZWwpCiB7CiAgICAgcGFnZUNsaWVudCgpLmhhbmRsZVNtYXJ0TWFnbmlmaWNhdGlvbkluZm9ybWF0
aW9uRm9yUG90ZW50aWFsVGFwKHJlcXVlc3RJRCwgcmVuZGVyUmVjdCwgZml0RW50aXJlUmVjdCwg
dmlld3BvcnRNaW5pbXVtU2NhbGUsIHZpZXdwb3J0TWF4aW11bVNjYWxlLCBub2RlSXNSb290TGV2
ZWwpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNmJhZjk0MWE4ODBjZmRiNmI3YTYyNThiYTBlYWZmYjQ2ZjZiZDk2Mi4uMmEzYTBk
NGU0NmNjNGU2NTc5NTcyODdkMjZjODhiYzNhMDY0ZDEwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNTYxLDYgKzI1NjEsNyBAQAog
CQkwRkNCNEU2QjE4QkJGMjZBMDAwRkNGQzkgLyogV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOyBwYXRoID0gaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZDRDA5NEUyNEM3OUY1QjAwMEM2RDM5IC8qIFJl
bW90ZVNjcm9sbGluZ1VJU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3RlU2Nyb2xs
aW5nVUlTdGF0ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQ0QwOTRGMjRD
NzlGNUIwMDBDNkQzOSAvKiBSZW1vdGVTY3JvbGxpbmdVSVN0YXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFJlbW90ZVNjcm9sbGluZ1VJU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MEZEMkNCMjUyNkNERDdBMzAwMDhCMTFDIC8qIElkZW50aWZpZXJUeXBlcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJZGVudGlmaWVyVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZE
Q0Q3RjYxRDQ3RTkyQTAwOUYwOEJDIC8qIExvZ0luaXRpYWxpemF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvZ0luaXRpYWxpemF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGRjI0QTJCMTg3OUU0QkMwMDNBQkYwQyAvKiBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViS2l0Mi9SZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9IEJVSUxU
X1BST0RVQ1RTX0RJUjsgfTsKIAkJMEZGMjRBMkIxODc5RTRCQzAwM0FCRjBEIC8qIFJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgbmFtZSA9IFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyTWVzc2FnZVJlY2Vp
dmVyLmNwcDsgcGF0aCA9IERlcml2ZWRTb3VyY2VzL1dlYktpdDIvUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNf
RElSOyB9OwpAQCAtNjgwNiw2ICs2ODA3LDcgQEAKIAkJCQk0NkFDNTMyNDI1REVEODFFMDAzQjU3
RUMgLyogR1BVUHJvY2Vzc0Nvbm5lY3Rpb25QYXJhbWV0ZXJzLmggKi8sCiAJCQkJRjQwQkJCNDAy
NTdGRjQ2RTAwNjc0NjNBIC8qIEdQVVByb2Nlc3NXYWtldXBNZXNzYWdlQXJndW1lbnRzLmggKi8s
CiAJCQkJMUFDNzVBMUExQjMzNjgyNzAwNTY3NDVCIC8qIEhhbmdEZXRlY3Rpb25EaXNhYmxlci5o
ICovLAorCQkJCTBGRDJDQjI1MjZDREQ3QTMwMDA4QjExQyAvKiBJZGVudGlmaWVyVHlwZXMuaCAq
LywKIAkJCQlCQ0NGNkIyMzEyQzkzRTdBMDA4RjlDMzUgLyogSW1hZ2VPcHRpb25zLmggKi8sCiAJ
CQkJOTk5QjdFRDgyNTUwRTRBODAwRjQ1MEE0IC8qIEluc3BlY3RvckV4dGVuc2lvblR5cGVzLmNw
cCAqLywKIAkJCQk5OUJFM0IxNjI1NDMzQjk0MDBDNjU1MUMgLyogSW5zcGVjdG9yRXh0ZW5zaW9u
VHlwZXMuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApp
bmRleCA3OGQ4MzBkYTQyZDk1NjdjZGY5NWNmYTFmZTMyNzMzMDJmZjNiMjFjLi5mMWIyNzNjZjZh
MDdhMzhjMTc4ZDE0YmNhYjMxOTc1Nzk2YTkwNmNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiRWRpdGlu
Z1JhbmdlLmgiCiAjaW5jbHVkZSAiRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbi5oIgogI2luY2x1
ZGUgIkdlb2xvY2F0aW9uSWRlbnRpZmllci5oIgorI2luY2x1ZGUgIklkZW50aWZpZXJUeXBlcy5o
IgogI2luY2x1ZGUgIkluamVjdGVkQnVuZGxlUGFnZUNvbnRleHRNZW51Q2xpZW50LmgiCiAjaW5j
bHVkZSAiSW5qZWN0ZWRCdW5kbGVQYWdlRnVsbFNjcmVlbkNsaWVudC5oIgogI2luY2x1ZGUgIklu
amVjdGVkQnVuZGxlUGFnZVBvbGljeUNsaWVudC5oIgpAQCAtNzQ3LDEyICs3NDgsMTIgQEAgcHVi
bGljOgogICAgIGJvb2wgaGFzU3RhYmxlUGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNTdGFibGVQYWdlU2NhbGVGYWN0b3I7IH0KIAogICAgIHZvaWQgYXR0ZW1wdFN5bnRoZXRp
Y0NsaWNrKGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZl
bnQ6Ok1vZGlmaWVyPiwgVHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCk7
Ci0gICAgdm9pZCBwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29u
c3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25J
bmZvcm1hdGlvbik7CisgICAgdm9pZCBwb3RlbnRpYWxUYXBBdFBvc2l0aW9uKFdlYktpdDo6VGFw
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYsIGJvb2wgc2hvdWxkUmVxdWVz
dE1hZ25pZmljYXRpb25JbmZvcm1hdGlvbik7CiAgICAgdm9pZCBjb21taXRQb3RlbnRpYWxUYXAo
T3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgVHJhbnNhY3Rpb25JRCBsYXN0
TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCwgV2ViQ29yZTo6UG9pbnRlcklEKTsKICAgICB2b2lkIGNv
bW1pdFBvdGVudGlhbFRhcEZhaWxlZCgpOwogICAgIHZvaWQgY2FuY2VsUG90ZW50aWFsVGFwKCk7
CiAgICAgdm9pZCBjYW5jZWxQb3RlbnRpYWxUYXBJbkZyYW1lKFdlYkZyYW1lJik7Ci0gICAgdm9p
ZCB0YXBIaWdobGlnaHRBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRQb2ludCYpOworICAgIHZvaWQgdGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihXZWJLaXQ6
OlRhcElkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKICAgICB2b2lkIGRp
ZFJlY29nbml6ZUxvbmdQcmVzcygpOwogICAgIHZvaWQgaGFuZGxlRG91YmxlVGFwRm9yRG91Ymxl
Q2xpY2tBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiwgT3B0aW9uU2V0PFdlYktpdDo6
V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgVHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rp
b25JZCk7CiAKQEAgLTc5Niw3ICs3OTcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1Nob3dpbmdJ
bnB1dFZpZXdGb3JGb2N1c2VkRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1faXNTaG93aW5nSW5w
dXRWaWV3Rm9yRm9jdXNlZEVsZW1lbnQ7IH0KICAgICB2b2lkIHVwZGF0ZVNlbGVjdGlvbkFwcGVh
cmFuY2UoKTsKICAgICB2b2lkIGdldFNlbGVjdGlvbkNvbnRleHQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKT4mJik7Ci0g
ICAgdm9pZCBoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50KGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiwgdWludDY0X3QgcmVxdWVz
dElEKTsKKyAgICB2b2lkIGhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6
SW50UG9pbnQmLCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+LCBXZWJLaXQ6
OlRhcElkZW50aWZpZXIpOwogICAgIHZvaWQgZ2V0UmVjdHNGb3JHcmFudWxhcml0eVdpdGhTZWxl
Y3Rpb25PZmZzZXQoV2ViQ29yZTo6VGV4dEdyYW51bGFyaXR5LCBpbnQzMl90LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpTZWxlY3Rpb25HZW9tZXRyeT4mKT4m
Jik7CiAgICAgdm9pZCBnZXRSZWN0c0F0U2VsZWN0aW9uT2Zmc2V0V2l0aFRleHQoaW50MzJfdCwg
Y29uc3QgU3RyaW5nJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29y
ZTo6U2VsZWN0aW9uR2VvbWV0cnk+Jik+JiYpOwogICAgIHZvaWQgc3RvcmVTZWxlY3Rpb25Gb3JB
Y2Nlc3NpYmlsaXR5KGJvb2wpOwpAQCAtMTUxNiw3ICsxNTE3LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGdlbmVyYXRlU3ludGhldGljRWRpdGluZ0NvbW1hbmQoU3ludGhldGljRWRpdGluZ0NvbW1h
bmRUeXBlKTsKICAgICB2b2lkIGhhbmRsZVN5bnRoZXRpY0NsaWNrKFdlYkNvcmU6Ok5vZGUmIG5v
ZGVSZXNwb25kaW5nVG9DbGljaywgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgbG9jYXRpb24s
IE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4sIFdlYkNvcmU6OlBvaW50ZXJJ
RCA9IFdlYkNvcmU6Om1vdXNlUG9pbnRlcklEKTsKICAgICB2b2lkIGNvbXBsZXRlU3ludGhldGlj
Q2xpY2soV2ViQ29yZTo6Tm9kZSYgbm9kZVJlc3BvbmRpbmdUb0NsaWNrLCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFBvaW50JiBsb2NhdGlvbiwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlm
aWVyPiwgV2ViQ29yZTo6U3ludGhldGljQ2xpY2tUeXBlLCBXZWJDb3JlOjpQb2ludGVySUQgPSBX
ZWJDb3JlOjptb3VzZVBvaW50ZXJJRCk7Ci0gICAgdm9pZCBzZW5kVGFwSGlnaGxpZ2h0Rm9yTm9k
ZUlmTmVjZXNzYXJ5KHVpbnQ2NF90IHJlcXVlc3RJRCwgV2ViQ29yZTo6Tm9kZSopOworICAgIHZv
aWQgc2VuZFRhcEhpZ2hsaWdodEZvck5vZGVJZk5lY2Vzc2FyeShXZWJLaXQ6OlRhcElkZW50aWZp
ZXIsIFdlYkNvcmU6Ok5vZGUqKTsKICAgICBXZWJDb3JlOjpWaXNpYmxlUG9zaXRpb24gdmlzaWJs
ZVBvc2l0aW9uSW5Gb2N1c2VkTm9kZUZvclBvaW50KGNvbnN0IFdlYkNvcmU6OkZyYW1lJiwgY29u
c3QgV2ViQ29yZTo6SW50UG9pbnQmLCBib29sIGlzSW50ZXJhY3RpbmdXaXRoRm9jdXNlZEVsZW1l
bnQpOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2ltcGxlUmFuZ2U+IHJhbmdlRm9yR3Jh
bnVsYXJpdHlBdFBvaW50KFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQm
LCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHksIGJvb2wgaXNJbnRlcmFjdGluZ1dpdGhGb2N1c2Vk
RWxlbWVudCk7CiAgICAgdm9pZCBzZXRGb2N1c2VkRnJhbWVCZWZvcmVTZWxlY3RpbmdUZXh0QXRM
b2NhdGlvbihjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KaW5kZXggZjg3YjQ1OWY4
NmY3MGU2MDU5MjQ2M2JkOWU1OTE3NzdmOWYwMjIwMC4uOGYxYmU1YWU3MTU3ZjA2MjJlMDBkYzc0
NDYwMDE4NDZkNWI0ODkyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCkBAIC01NywxMCArNTcsMTAgQEAgbWVzc2FnZXMg
LT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAgICAgU2V0U2NyZWVuSXNCZWluZ0NhcHR1cmVk
KGJvb2wgY2FwdHVyZWQpCiAKICAgICBBdHRlbXB0U3ludGhldGljQ2xpY2soV2ViQ29yZTo6SW50
UG9pbnQgcG9pbnQsIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZp
ZXJzLCBXZWJLaXQ6OlRyYW5zYWN0aW9uSUQgbGFzdExheWVyVHJlZVRyYW5zYWN0aW9uSWQpCi0g
ICAgUG90ZW50aWFsVGFwQXRQb3NpdGlvbih1aW50NjRfdCByZXF1ZXN0SUQsIFdlYkNvcmU6OkZs
b2F0UG9pbnQgcG9pbnQsIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlv
bikKKyAgICBQb3RlbnRpYWxUYXBBdFBvc2l0aW9uKFdlYktpdDo6VGFwSWRlbnRpZmllciByZXF1
ZXN0SUQsIFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQsIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25p
ZmljYXRpb25JbmZvcm1hdGlvbikKICAgICBDb21taXRQb3RlbnRpYWxUYXAoT3B0aW9uU2V0PFdl
YktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFdlYktpdDo6VHJhbnNhY3Rpb25J
RCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCwgV2ViQ29yZTo6UG9pbnRlcklEIHBvaW50ZXJJ
ZCkKICAgICBDYW5jZWxQb3RlbnRpYWxUYXAoKQotICAgIFRhcEhpZ2hsaWdodEF0UG9zaXRpb24o
dWludDY0X3QgcmVxdWVzdElELCBXZWJDb3JlOjpGbG9hdFBvaW50IHBvaW50KQorICAgIFRhcEhp
Z2hsaWdodEF0UG9zaXRpb24oV2ViS2l0OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCwgV2ViQ29y
ZTo6RmxvYXRQb2ludCBwb2ludCkKICAgICBEaWRSZWNvZ25pemVMb25nUHJlc3MoKQogICAgIEhh
bmRsZURvdWJsZVRhcEZvckRvdWJsZUNsaWNrQXRQb2ludChXZWJDb3JlOjpJbnRQb2ludCBwb2lu
dCwgT3B0aW9uU2V0PFdlYktpdDo6V2ViRXZlbnQ6Ok1vZGlmaWVyPiBtb2RpZmllcnMsIFdlYktp
dDo6VHJhbnNhY3Rpb25JRCBsYXN0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JZCkKICAgICBJbnNwZWN0
b3JOb2RlU2VhcmNoTW92ZWRUb1Bvc2l0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQgcG9pbnQpCkBA
IC0xMDcsNyArMTA3LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZSBMZWdhY3lSZWNlaXZlciB7CiAg
ICAgQ29udGVudFNpemVDYXRlZ29yeURpZENoYW5nZShTdHJpbmcgY29udGVudFNpemVDYXRlZ29y
eSkKICAgICBHZXRTZWxlY3Rpb25Db250ZXh0KCkgLT4gKFN0cmluZyBzZWxlY3RlZFRleHQsIFN0
cmluZyB0ZXh0QmVmb3JlLCBTdHJpbmcgdGV4dEFmdGVyKSBBc3luYwogICAgIFNldEFsbG93c01l
ZGlhRG9jdW1lbnRJbmxpbmVQbGF5YmFjayhib29sIGFsbG93cykKLSAgICBIYW5kbGVUd29GaW5n
ZXJUYXBBdFBvaW50KFdlYkNvcmU6OkludFBvaW50IHBvaW50LCBPcHRpb25TZXQ8V2ViS2l0OjpX
ZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgdWludDY0X3QgcmVxdWVzdElEKQorICAgIEhh
bmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoV2ViQ29yZTo6SW50UG9pbnQgcG9pbnQsIE9wdGlvblNl
dDxXZWJLaXQ6OldlYkV2ZW50OjpNb2RpZmllcj4gbW9kaWZpZXJzLCBXZWJLaXQ6OlRhcElkZW50
aWZpZXIgcmVxdWVzdElEKQogICAgIFNldEZvcmNlQWx3YXlzVXNlclNjYWxhYmxlKGJvb2wgdXNl
clNjYWxhYmxlKQogICAgIEdldFJlY3RzRm9yR3JhbnVsYXJpdHlXaXRoU2VsZWN0aW9uT2Zmc2V0
KGVudW06dWludDhfdCBXZWJDb3JlOjpUZXh0R3JhbnVsYXJpdHkgZ3JhbnVsYXJpdHksIGludDMy
X3Qgb2Zmc2V0KSAtPiAoVmVjdG9yPFdlYkNvcmU6OlNlbGVjdGlvbkdlb21ldHJ5PiByZWN0KSBB
c3luYwogICAgIEdldFJlY3RzQXRTZWxlY3Rpb25PZmZzZXRXaXRoVGV4dChpbnQzMl90IG9mZnNl
dCwgU3RyaW5nIHRleHQpIC0+IChWZWN0b3I8V2ViQ29yZTo6U2VsZWN0aW9uR2VvbWV0cnk+IHJl
Y3QpIEFzeW5jCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9p
b3MvV2ViUGFnZUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9X
ZWJQYWdlSU9TLm1tCmluZGV4IDM0M2JjNzgzMGMzYTBkMmJkNDc3YWE0NmRiZmYzZmQzNmM0YTEx
YzMuLjE0NTJkMTg4NjMxNDYyOTNmY2UzNzY2N2NhYzJjNmYwOWQxNGExOGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCkBAIC0x
MDg2LDcgKzEwODYsNyBAQCB2b2lkIFdlYlBhZ2U6OmNvbXB1dGVBbmRTZW5kRWRpdERyYWdTbmFw
c2hvdCgpCiAKICNlbmRpZgogCi12b2lkIFdlYlBhZ2U6OnNlbmRUYXBIaWdobGlnaHRGb3JOb2Rl
SWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElELCBOb2RlKiBub2RlKQordm9pZCBXZWJQYWdl
OjpzZW5kVGFwSGlnaGxpZ2h0Rm9yTm9kZUlmTmVjZXNzYXJ5KFdlYktpdDo6VGFwSWRlbnRpZmll
ciByZXF1ZXN0SUQsIE5vZGUqIG5vZGUpCiB7CiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAg
ICBpZiAoIW5vZGUpCkBAIC0xMTI5LDcgKzExMjksNyBAQCB2b2lkIFdlYlBhZ2U6OnNlbmRUYXBI
aWdobGlnaHRGb3JOb2RlSWZOZWNlc3NhcnkodWludDY0X3QgcmVxdWVzdElELCBOb2RlKiBub2Rl
KQogI2VuZGlmCiB9CiAKLXZvaWQgV2ViUGFnZTo6aGFuZGxlVHdvRmluZ2VyVGFwQXRQb2ludChj
b25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcG9pbnQsIE9wdGlvblNldDxXZWJLaXQ6OldlYkV2ZW50
OjpNb2RpZmllcj4gbW9kaWZpZXJzLCB1aW50NjRfdCByZXF1ZXN0SUQpCit2b2lkIFdlYlBhZ2U6
OmhhbmRsZVR3b0ZpbmdlclRhcEF0UG9pbnQoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBvaW50
LCBPcHRpb25TZXQ8V2ViS2l0OjpXZWJFdmVudDo6TW9kaWZpZXI+IG1vZGlmaWVycywgV2ViS2l0
OjpUYXBJZGVudGlmaWVyIHJlcXVlc3RJRCkKIHsKICAgICBGbG9hdFBvaW50IGFkanVzdGVkUG9p
bnQ7CiAgICAgTm9kZSogbm9kZVJlc3BvbmRpbmdUb0NsaWNrID0gbV9wYWdlLT5tYWluRnJhbWUo
KS5ub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMocG9pbnQsIGFkanVzdGVkUG9pbnQpOwpAQCAt
MTE0Myw3ICsxMTQzLDcgQEAgdm9pZCBXZWJQYWdlOjpoYW5kbGVUd29GaW5nZXJUYXBBdFBvaW50
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwb2ludCwgT3B0aW9uU2UKICAgICBjb21wbGV0ZVN5
bnRoZXRpY0NsaWNrKCpub2RlUmVzcG9uZGluZ1RvQ2xpY2ssIGFkanVzdGVkUG9pbnQsIG1vZGlm
aWVycywgV2ViQ29yZTo6VHdvRmluZ2VyVGFwKTsKIH0KIAotdm9pZCBXZWJQYWdlOjpwb3RlbnRp
YWxUYXBBdFBvc2l0aW9uKHVpbnQ2NF90IHJlcXVlc3RJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQ
b2ludCYgcG9zaXRpb24sIGJvb2wgc2hvdWxkUmVxdWVzdE1hZ25pZmljYXRpb25JbmZvcm1hdGlv
bikKK3ZvaWQgV2ViUGFnZTo6cG90ZW50aWFsVGFwQXRQb3NpdGlvbihXZWJLaXQ6OlRhcElkZW50
aWZpZXIgcmVxdWVzdElELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBwb3NpdGlvbiwgYm9v
bCBzaG91bGRSZXF1ZXN0TWFnbmlmaWNhdGlvbkluZm9ybWF0aW9uKQogewogICAgIG1fcG90ZW50
aWFsVGFwTm9kZSA9IG1fcGFnZS0+bWFpbkZyYW1lKCkubm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZl
bnRzKHBvc2l0aW9uLCBtX3BvdGVudGlhbFRhcExvY2F0aW9uLCBtX3BvdGVudGlhbFRhcFNlY3Vy
aXR5T3JpZ2luLmdldCgpKTsKIApAQCAtMTI0NCw3ICsxMjQ0LDcgQEAgdm9pZCBXZWJQYWdlOjpk
aWRSZWNvZ25pemVMb25nUHJlc3MoKQogICAgIENvbnRlbnRDaGFuZ2VPYnNlcnZlcjo6ZGlkUmVj
b2duaXplTG9uZ1ByZXNzKG1fcGFnZS0+bWFpbkZyYW1lKCkpOwogfQogCi12b2lkIFdlYlBhZ2U6
OnRhcEhpZ2hsaWdodEF0UG9zaXRpb24odWludDY0X3QgcmVxdWVzdElELCBjb25zdCBGbG9hdFBv
aW50JiBwb3NpdGlvbikKK3ZvaWQgV2ViUGFnZTo6dGFwSGlnaGxpZ2h0QXRQb3NpdGlvbihXZWJL
aXQ6OlRhcElkZW50aWZpZXIgcmVxdWVzdElELCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikK
IHsKICAgICBGcmFtZSYgbWFpbmZyYW1lID0gbV9wYWdlLT5tYWluRnJhbWUoKTsKICAgICBGbG9h
dFBvaW50IGFkanVzdGVkUG9pbnQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>