<?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>216318</bug_id>
          
          <creation_ts>2020-09-09 10:34:33 -0700</creation_ts>
          <short_desc>WebKit should support building with clang ThreadSanitizer enabled</short_desc>
          <delta_ts>2021-01-28 15:00:43 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>Other</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>216746</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="David Kilzer (:ddkilzer)">ddkilzer</assigned_to>
          <cc>annulen</cc>
    
    <cc>ap</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jbedard</cc>
    
    <cc>mark.lam</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>saam</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1687038</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-09-09 10:34:33 -0700</bug_when>
    <thetext>WebKit should support building with clang ThreadSanitizer (TSan) enabled.

The biggest challenge here is to instrument WebKit&apos;s custom locking mechanisms so TSan is able to reason correctly about threaded memory accesses.

Also need to make it easy to make it easy to build with TSan enabled like we do with ASan using `set-webkit-configuration --[no-]asan`.

&lt;rdar://problem/31615729&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687041</commentid>
    <comment_count>1</comment_count>
      <attachid>408340</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-09-09 10:38:41 -0700</bug_when>
    <thetext>Created attachment 408340
WIP Patch v1

This is a WIP that implements basic TSan instrumentation for malloc::Mutex and WTF::Lock classes.

It does not provide a way to enable TSan when building yet, though one can enable ASan and change ENABLE_ADDRESS_SANITIZER=YES to ENABLE_THREAD_SANITIZER=YES in Tools/asan/asan.xcconfig for Apple platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687193</commentid>
    <comment_count>2</comment_count>
      <attachid>408381</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-09-09 16:21:14 -0700</bug_when>
    <thetext>Created attachment 408381
WIP Patch v2

This adds build support with `make TSAN=YES` and `set-webkit-configuration --[no-]tsan`.

It also fixes the build errors from &quot;WIP Patch v1&quot;.

Still not complete since we need to instrument more WTF lock classes.  (I wonder if we can get away with just instrumenting the WTF::Locker class, too.)

Also, I&apos;m not sure if we should instrument malloc::Mutex or not.  We may just end up tossing the bmalloc changes in this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1687215</commentid>
    <comment_count>3</comment_count>
      <attachid>408391</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-09-09 18:35:52 -0700</bug_when>
    <thetext>Created attachment 408391
WIP Patch v3

Fix style issues and make builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688119</commentid>
    <comment_count>4</comment_count>
      <attachid>408656</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2020-09-13 11:18:43 -0700</bug_when>
    <thetext>Created attachment 408656
Patch v4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688971</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-15 19:53:41 -0700</bug_when>
    <thetext>Committed r267130: &lt;https://trac.webkit.org/changeset/267130&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408656.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408340</attachid>
            <date>2020-09-09 10:38:41 -0700</date>
            <delta_ts>2020-09-09 10:47:44 -0700</delta_ts>
            <desc>WIP Patch v1</desc>
            <filename>bug-216318-enable-TSan-WIP-v1.diff</filename>
            <type>text/plain</type>
            <size>8892</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9D
b21waWxlci5oCmluZGV4IDU5NjhmNjk3ODNjYi4uZWZjYzc0Mzk1YmE2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV1RGL3d0Zi9Db21waWxlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgK
QEAgLTE1Niw2ICsxNTYsMjAgQEAKICNkZWZpbmUgU1VQUFJFU1NfQVNBTgogI2VuZGlmCiAKKy8q
IFRTQU5fRU5BQkxFRCBhbmQgU1VQUFJFU1NfVFNBTiAqLworCisjaWZkZWYgX19TQU5JVElaRV9U
SFJFQURfXworI2RlZmluZSBUU0FOX0VOQUJMRUQgMQorI2Vsc2UKKyNkZWZpbmUgVFNBTl9FTkFC
TEVEIENPTVBJTEVSX0hBU19DTEFOR19GRUFUVVJFKHRocmVhZF9zYW5pdGl6ZXIpCisjZW5kaWYK
KworI2lmIFRTQU5fRU5BQkxFRAorI2RlZmluZSBTVVBQUkVTU19UU0FOIF9fYXR0cmlidXRlX18o
KG5vX3Nhbml0aXplX3RocmVhZCkpCisjZWxzZQorI2RlZmluZSBTVVBQUkVTU19UU0FOCisjZW5k
aWYKKwogLyogPT09PSBDb21waWxlci1pbmRlcGVuZGVudCBtYWNyb3MgZm9yIHZhcmlvdXMgY29t
cGlsZXIgZmVhdHVyZXMsIGluIGFscGhhYmV0aWNhbCBvcmRlciA9PT09ICovCiAKIC8qIEFMV0FZ
U19JTkxJTkUgKi8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaCBiL1NvdXJjZS9X
VEYvd3RmL0xvY2suaAppbmRleCA2MGZkYWFiZDkwZGEuLmJmNjIzODM2OTg4YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dURi93dGYvTG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaApAQCAt
MSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAg
LTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlIDx3dGYvTG9ja0FsZ29yaXRobS5oPgogI2luY2x1ZGUg
PHd0Zi9Mb2NrZXIuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3
dGYvVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7
CiBzdHJ1Y3QgTG9ja0luc3BlY3RvcjsKQEAgLTU3LDExICs1OCwxNSBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICBpZiAoVU5MSUtFTFkoIURlZmF1bHRMb2NrQWxnb3JpdGhtOjpsb2NrRmFzdEFz
c3VtaW5nWmVybyhtX2J5dGUpKSkKICAgICAgICAgICAgIGxvY2tTbG93KCk7CisgICAgICAgIFRT
QU5fQU5OT1RBVEVfSEFQUEVOU19BRlRFUih0aGlzKTsKICAgICB9CiAKICAgICBib29sIHRyeUxv
Y2soKQogICAgIHsKLSAgICAgICAgcmV0dXJuIERlZmF1bHRMb2NrQWxnb3JpdGhtOjp0cnlMb2Nr
KG1fYnl0ZSk7CisgICAgICAgIGJvb2wgZGlkTG9jayA9IERlZmF1bHRMb2NrQWxnb3JpdGhtOjp0
cnlMb2NrKG1fYnl0ZSk7CisgICAgICAgIGlmIChkaWRMb2NrKQorICAgICAgICAgICAgVFNBTl9B
Tk5PVEFURV9IQVBQRU5TX0FGVEVSKHRoaXMpOworICAgICAgICByZXR1cm4gZGlkTG9jazsKICAg
ICB9CiAKICAgICAvLyBOZWVkIHRoaXMgdmVyc2lvbiBmb3Igc3RkOjp1bmlxdWVfbG9jay4KQEAg
LTgwLDYgKzg1LDcgQEAgcHVibGljOgogICAgIC8vIGd1YXJhbnRlZXMgdGhhdCBsb25nIGNyaXRp
Y2FsIHNlY3Rpb25zIGFsd2F5cyBnZXQgYSBmYWlyIGxvY2suCiAgICAgdm9pZCB1bmxvY2soKQog
ICAgIHsKKyAgICAgICAgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0JFRk9SRSh0aGlzKTsKICAgICAg
ICAgaWYgKFVOTElLRUxZKCFEZWZhdWx0TG9ja0FsZ29yaXRobTo6dW5sb2NrRmFzdEFzc3VtaW5n
WmVybyhtX2J5dGUpKSkKICAgICAgICAgICAgIHVubG9ja1Nsb3coKTsKICAgICB9CkBAIC05MSw2
ICs5Nyw3IEBAIHB1YmxpYzoKICAgICAvLyB3YW50LgogICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkK
ICAgICB7CisgICAgICAgIFRTQU5fQU5OT1RBVEVfSEFQUEVOU19CRUZPUkUodGhpcyk7CiAgICAg
ICAgIGlmIChVTkxJS0VMWSghRGVmYXVsdExvY2tBbGdvcml0aG06OnVubG9ja0Zhc3RBc3N1bWlu
Z1plcm8obV9ieXRlKSkpCiAgICAgICAgICAgICB1bmxvY2tGYWlybHlTbG93KCk7CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oIGIvU291
cmNlL1dURi93dGYvVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMC4uMWJjYjMxODAyYWRiCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dURi93dGYvVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgPHd0Zi9Db21waWxlci5oPgorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaGVh
ZGVyIHdoZW4gPHJkYXI6Ly9wcm9ibGVtLzU2NjU0NzczPiBpcyBmaXhlZC4KKworI2lmIFRTQU5f
RU5BQkxFRAorCitXVEZfRVhURVJOX0NfQkVHSU4KK3ZvaWQgQW5ub3RhdGVIYXBwZW5zQmVmb3Jl
KGNvbnN0IGNoYXIqIGYsIGludCBsLCBjb25zdCB2b2lkKiBhZGRyKTsKK3ZvaWQgQW5ub3RhdGVI
YXBwZW5zQWZ0ZXIoY29uc3QgY2hhciogZiwgaW50IGwsIGNvbnN0IHZvaWQqIGFkZHIpOworV1RG
X0VYVEVSTl9DX0VORAorCisjZGVmaW5lIFRTQU5fQU5OT1RBVEVfSEFQUEVOU19CRUZPUkUoYWRk
cikgXAorICAgIGRvIHsgXAorICAgICAgICBBbm5vdGF0ZUhhcHBlbnNCZWZvcmUoX19GSUxFX18s
IF9fTElORV9fLCBhZGRyKTsgXAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIFRTQU5fQU5OT1RB
VEVfSEFQUEVOU19BRlRFUihhZGRyKSAgXAorICAgIGRvIHsgXAorICAgICAgICBBbm5vdGF0ZUhh
cHBlbnNBZnRlcihfX0ZJTEVfXywgX19MSU5FX18sIGFkZHIpOyBcCisgICAgfSB3aGlsZSAoMCkK
KworI2Vsc2UKKworI2RlZmluZSBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKGFkZHIpICgo
dm9pZCkwKQorI2RlZmluZSBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQUZURVIoYWRkcikgICgodm9p
ZCkwKQorCisjZW5kaWYgLy8gVFNBTl9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0JDb21waWxlci5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CQ29tcGlsZXIu
aAppbmRleCBjZGM0N2FjOWEyZWMuLjlmNTJiMzMzNjI3NyAxMDA2NDQKLS0tIGEvU291cmNlL2Jt
YWxsb2MvYm1hbGxvYy9CQ29tcGlsZXIuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JD
b21waWxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMCBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM3LDYgKzM3LDcgQEAKICNlbmRpZgogCiAjZGVmaW5lIEJBU0FOX0VOQUJMRUQg
QkNPTVBJTEVSX0hBU19DTEFOR19GRUFUVVJFKGFkZHJlc3Nfc2FuaXRpemVyKQorI2RlZmluZSBC
VFNBTl9FTkFCTEVEIEJDT01QSUxFUl9IQVNfQ0xBTkdfRkVBVFVSRSh0aHJlYWRfc2FuaXRpemVy
KQogCiAvKiBCQ09NUElMRVJfSEFTX0NMQU5HX0RFQ0xTUEVDKCkgLSB3aGV0aGVyIHRoZSBjb21w
aWxlciBzdXBwb3J0cyBhIE1pY3Jvc29mdCBzdHlsZSBfX2RlY2xzcGVjIGF0dHJpYnV0ZS4gKi8K
IC8qIGh0dHBzOi8vY2xhbmcubGx2bS5vcmcvZG9jcy9MYW5ndWFnZUV4dGVuc2lvbnMuaHRtbCNo
YXMtZGVjbHNwZWMtYXR0cmlidXRlICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0JUaHJlYWRTYW5pdGl6ZXJTdXBwb3J0LmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0JU
aHJlYWRTYW5pdGl6ZXJTdXBwb3J0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwLi4xZjEzOGYyNmQwYmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL0JUaHJlYWRTYW5pdGl6ZXJTdXBwb3J0LmgKQEAgLTAsMCArMSw1MyBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAor
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSAiQkNvbXBpbGVyLmgiCisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBoZWFkZXIgd2hl
biA8cmRhcjovL3Byb2JsZW0vNTY2NTQ3NzM+IGlzIGZpeGVkLgorCisjaWYgQlRTQU5fRU5BQkxF
RAorCitleHRlcm4gIkMiIHsKK3ZvaWQgQW5ub3RhdGVIYXBwZW5zQmVmb3JlKGNvbnN0IGNoYXIq
IGYsIGludCBsLCBjb25zdCB2b2lkKiBhZGRyKTsKK3ZvaWQgQW5ub3RhdGVIYXBwZW5zQWZ0ZXIo
Y29uc3QgY2hhciogZiwgaW50IGwsIGNvbnN0IHZvaWQqIGFkZHIpOworfQorCisjZGVmaW5lIEJU
U0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKGFkZHIpIFwKKyAgICBkbyB7IFwKKyAgICAgICAg
QW5ub3RhdGVIYXBwZW5zQmVmb3JlKF9fRklMRV9fLCBfX0xJTkVfXywgYWRkcik7IFwKKyAgICB9
IHdoaWxlICgwKQorI2RlZmluZSBCVFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKGFkZHIpICBc
CisgICAgZG8geyBcCisgICAgICAgIEFubm90YXRlSGFwcGVuc0FmdGVyKF9fRklMRV9fLCBfX0xJ
TkVfXywgYWRkcik7IFwKKyAgICB9IHdoaWxlICgwKQorCisjZWxzZQorCisjZGVmaW5lIEJUU0FO
X0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKGFkZHIpICgodm9pZCkwKQorI2RlZmluZSBCVFNBTl9B
Tk5PVEFURV9IQVBQRU5TX0FGVEVSKGFkZHIpICAoKHZvaWQpMCkKKworI2VuZGlmIC8vIEJUU0FO
X0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTXV0ZXguaCBiL1Nv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvTXV0ZXguaAppbmRleCBmNGNjMmFhNDExYzkuLmQ3MzNiYzBl
NzlhNyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9NdXRleC5oCisrKyBiL1Nv
dXJjZS9ibWFsbG9jL2JtYWxsb2MvTXV0ZXguaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29w
eXJpZ2h0IChDKSAyMDE4IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CkBAIC0yNyw2ICsyNyw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1
ZGUgIkJBc3NlcnQuaCIKKyNpbmN1bGRlICJCVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oIgogI2lu
Y2x1ZGUgPGF0b21pYz4KICNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx0aHJlYWQ+CkBAIC03
OCw3ICs3OSwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgd2FpdFVudGlsRmFsc2UoCiAKIGlubGlu
ZSBib29sIE11dGV4Ojp0cnlfbG9jaygpCiB7Ci0gICAgcmV0dXJuICFtX2ZsYWcuZXhjaGFuZ2Uo
dHJ1ZSwgc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSk7CisgICAgYm9vbCBkaWRMb2NrID0gIW1f
ZmxhZy5leGNoYW5nZSh0cnVlLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKKyAgICBpZiAo
ZGlkTG9jaykKKyAgICAgICAgQlRTQU5fQU5OT1RBVEVfSEFQUEVOU19BRlRFUih0aGlzKTsKKyAg
ICByZXR1cm4gZGlkTG9jazsKIH0KIAogaW5saW5lIHZvaWQgTXV0ZXg6OmxvY2soKQpAQCAtODks
NiArOTMsNyBAQCBpbmxpbmUgdm9pZCBNdXRleDo6bG9jaygpCiAKIGlubGluZSB2b2lkIE11dGV4
Ojp1bmxvY2soKQogeworICAgIEJUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKHRoaXMpOwog
ICAgIG1fZmxhZy5zdG9yZShmYWxzZSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CiB9CiAK
</data>
<flag name="review"
          id="423739"
          type_id="1"
          status="-"
          setter="ddkilzer"
    />
    <flag name="commit-queue"
          id="423736"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408381</attachid>
            <date>2020-09-09 16:21:14 -0700</date>
            <delta_ts>2020-09-09 18:35:52 -0700</delta_ts>
            <desc>WIP Patch v2</desc>
            <filename>bug-216318-enable-TSan-WIP-v2.diff</filename>
            <type>text/plain</type>
            <size>29685</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL01ha2VmaWxlLnNoYXJlZCBiL01ha2VmaWxlLnNoYXJlZAppbmRleCA3ZmU0
NzIwOTcwODMuLjIwMzk0Y2M1NTM2OCAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuc2hhcmVkCisrKyBi
L01ha2VmaWxlLnNoYXJlZApAQCAtNzAsNiArNzAsMTQgQEAgQVNBTl9PUFRJT049LS1uby1hc2Fu
CiBlbmRpZgogZW5kaWYKIAoraWZlcSAoJChUU0FOKSxZRVMpCitUU0FOX09QVElPTj0tLXRzYW4K
K2Vsc2UKK2lmZXEgKCQoVFNBTiksTk8pCitUU0FOX09QVElPTj0tLW5vLXRzYW4KK2VuZGlmCitl
bmRpZgorCiBpZmVxICgkKFdLX0xUT19NT0RFKSxmdWxsKQogV0tfTFRPX09QVElPTj0tLWx0by1t
b2RlPWZ1bGwKIGVsc2UgaWZlcSAoJChXS19MVE9fTU9ERSksdGhpbikKQEAgLTg0LDM3ICs5Miw0
MCBAQCBleHBvcnQgRFNZTVVUSUxfTlVNX1RIUkVBRFMgPSAkKHNoZWxsIHN5c2N0bCAtbiBody5h
Y3RpdmVjcHUpCiAjIFNlZSA8cmRhcjovL3Byb2JsZW0vMTY0NjYxOTY+LgogZXhwb3J0IFBBVEgg
PSAkKHNoZWxsIGdldGNvbmYgUEFUSCkKIAotYWxsOiBzZXRfYXNhbl9jb25maWd1cmF0aW9uCith
bGw6IHNldF9zYW5pdGl6ZXJfY29uZmlndXJhdGlvbgogCSggJChTRVRfQ09MT1JfRElBR05PU1RJ
Q1NfQVJHKTsgeGNvZGVidWlsZCAkKE9USEVSX09QVElPTlMpICQoWENPREVfT1BUSU9OUykgR0ND
X1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUz0nJChHQ0NfUFJFUFJPQ0VTU09SX0FERElUSU9OUykg
JCQoaW5oZXJpdGVkKScgfCAkKE9VVFBVVF9GSUxURVIpICYmIGV4aXQgJCR7UElQRVNUQVRVU1sw
XX0gKQogCiBkZWJ1ZyBkIGRldmVsb3BtZW50IGRldiBkZXZlbG9wOiBmb3JjZQotCSQoU0NSSVBU
U19QQVRIKS9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gLS1kZWJ1ZyAkKEFTQU5fT1BUSU9OKSAk
KFdLX0xUT19PUFRJT04pCisJJChTQ1JJUFRTX1BBVEgpL3NldC13ZWJraXQtY29uZmlndXJhdGlv
biAtLWRlYnVnICQoQVNBTl9PUFRJT04pICQoVFNBTl9PUFRJT04pICQoV0tfTFRPX09QVElPTikK
IAkoICQoU0VUX0NPTE9SX0RJQUdOT1NUSUNTX0FSRyk7IHhjb2RlYnVpbGQgJChPVEhFUl9PUFRJ
T05TKSAkKFhDT0RFX09QVElPTlMpIEdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlM9JyQoR0ND
X1BSRVBST0NFU1NPUl9BRERJVElPTlMpICQkKGluaGVyaXRlZCknIHwgJChPVVRQVVRfRklMVEVS
KSAmJiBleGl0ICQke1BJUEVTVEFUVVNbMF19ICkKIAogcmVsZWFzZSByIGRlcGxveW1lbnQgZGVw
IGRlcGxveTogZm9yY2UKLQkkKFNDUklQVFNfUEFUSCkvc2V0LXdlYmtpdC1jb25maWd1cmF0aW9u
IC0tcmVsZWFzZSAkKEFTQU5fT1BUSU9OKSAkKFdLX0xUT19PUFRJT04pCisJJChTQ1JJUFRTX1BB
VEgpL3NldC13ZWJraXQtY29uZmlndXJhdGlvbiAtLXJlbGVhc2UgJChBU0FOX09QVElPTikgJChU
U0FOX09QVElPTikgJChXS19MVE9fT1BUSU9OKQogCSggJChTRVRfQ09MT1JfRElBR05PU1RJQ1Nf
QVJHKTsgeGNvZGVidWlsZCAkKE9USEVSX09QVElPTlMpICQoWENPREVfT1BUSU9OUykgR0NDX1BS
RVBST0NFU1NPUl9ERUZJTklUSU9OUz0nJChHQ0NfUFJFUFJPQ0VTU09SX0FERElUSU9OUykgJCQo
aW5oZXJpdGVkKScgfCAkKE9VVFBVVF9GSUxURVIpICYmIGV4aXQgJCR7UElQRVNUQVRVU1swXX0g
KQogCiByZWxlYXNlK2Fzc2VydCByYTogZm9yY2UKLQkkKFNDUklQVFNfUEFUSCkvc2V0LXdlYmtp
dC1jb25maWd1cmF0aW9uIC0tcmVsZWFzZSAkKEFTQU5fT1BUSU9OKSAkKFdLX0xUT19PUFRJT04p
CisJJChTQ1JJUFRTX1BBVEgpL3NldC13ZWJraXQtY29uZmlndXJhdGlvbiAtLXJlbGVhc2UgJChB
U0FOX09QVElPTikgJChUU0FOX09QVElPTikgJChXS19MVE9fT1BUSU9OKQogCSggJChTRVRfQ09M
T1JfRElBR05PU1RJQ1NfQVJHKTsgeGNvZGVidWlsZCAkKE9USEVSX09QVElPTlMpICQoWENPREVf
T1BUSU9OUykgR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUz0nJChHQ0NfUFJFUFJPQ0VTU09S
X0FERElUSU9OUykgQVNTRVJUX0VOQUJMRUQ9MSAkJChpbmhlcml0ZWQpJyB8ICQoT1VUUFVUX0ZJ
TFRFUikgJiYgZXhpdCAkJHtQSVBFU1RBVFVTWzBdfSApCiAKIHRlc3RpbmcgdDogZm9yY2UKLQkk
KFNDUklQVFNfUEFUSCkvc2V0LXdlYmtpdC1jb25maWd1cmF0aW9uIC0tZGVidWcgJChBU0FOX09Q
VElPTikgJChXS19MVE9fT1BUSU9OKSAtLWZvcmNlLW9wdGltaXphdGlvbi1sZXZlbD1PMworCSQo
U0NSSVBUU19QQVRIKS9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gLS1kZWJ1ZyAkKEFTQU5fT1BU
SU9OKSAkKFRTQU5fT1BUSU9OKSAkKFdLX0xUT19PUFRJT04pIC0tZm9yY2Utb3B0aW1pemF0aW9u
LWxldmVsPU8zCiAJKCAkKFNFVF9DT0xPUl9ESUFHTk9TVElDU19BUkcpOyB4Y29kZWJ1aWxkICQo
T1RIRVJfT1BUSU9OUykgJChYQ09ERV9PUFRJT05TKSBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJ
T05TPSckKEdDQ19QUkVQUk9DRVNTT1JfQURESVRJT05TKSAkJChpbmhlcml0ZWQpJyB8ICQoT1VU
UFVUX0ZJTFRFUikgJiYgZXhpdCAkJHtQSVBFU1RBVFVTWzBdfSApCiAKIGFuYWx5emU6Ci0JJChT
Q1JJUFRTX1BBVEgpL3NldC13ZWJraXQtY29uZmlndXJhdGlvbiAtLWRlYnVnICQoQVNBTl9PUFRJ
T04pICQoV0tfTFRPX09QVElPTikKKwkkKFNDUklQVFNfUEFUSCkvc2V0LXdlYmtpdC1jb25maWd1
cmF0aW9uIC0tZGVidWcgJChBU0FOX09QVElPTikgJChUU0FOX09QVElPTikgJChXS19MVE9fT1BU
SU9OKQogaWZuZGVmIFBBVEhfVE9fU0NBTl9CVUlMRAogCSggJChTRVRfQ09MT1JfRElBR05PU1RJ
Q1NfQVJHKTsgeGNvZGVidWlsZCAkKE9USEVSX09QVElPTlMpICQoWENPREVfT1BUSU9OUykgR0ND
X1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUz0nJChHQ0NfUFJFUFJPQ0VTU09SX0FERElUSU9OUykg
JCQoaW5oZXJpdGVkKScgUlVOX0NMQU5HX1NUQVRJQ19BTkFMWVpFUj1ZRVMgfCAkKE9VVFBVVF9G
SUxURVIpICYmIGV4aXQgJCR7UElQRVNUQVRVU1swXX0gKQogZWxzZQogCSggJChTRVRfQ09MT1Jf
RElBR05PU1RJQ1NfQVJHKTsgJChQQVRIX1RPX1NDQU5fQlVJTEQpIHhjb2RlYnVpbGQgJChPVEhF
Ul9PUFRJT05TKSAkKFhDT0RFX09QVElPTlMpIEdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlM9
JyQoR0NDX1BSRVBST0NFU1NPUl9BRERJVElPTlMpICQkKGluaGVyaXRlZCknIHwgJChPVVRQVVRf
RklMVEVSKSAmJiBleGl0ICQke1BJUEVTVEFUVVNbMF19ICkKIGVuZGlmCiAKLXNldF9hc2FuX2Nv
bmZpZ3VyYXRpb246CitzZXRfc2FuaXRpemVyX2NvbmZpZ3VyYXRpb246CiBpZm5lcSAoLCQoQVNB
Tl9PUFRJT04pKQogCSQoU0NSSVBUU19QQVRIKS9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gJChB
U0FOX09QVElPTikKIGVuZGlmCitpZm5lcSAoLCQoVFNBTl9PUFRJT04pKQorCSQoU0NSSVBUU19Q
QVRIKS9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gJChUU0FOX09QVElPTikKK2VuZGlmCiAKIGNs
ZWFuOgogCSggJChTRVRfQ09MT1JfRElBR05PU1RJQ1NfQVJHKTsgeGNvZGVidWlsZCAkKE9USEVS
X09QVElPTlMpIC1hbGx0YXJnZXRzIGNsZWFuICQoWENPREVfT1BUSU9OUykgfCAkKE9VVFBVVF9G
SUxURVIpICYmIGV4aXQgJCR7UElQRVNUQVRVU1swXX0gKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjViY2Q3NzM0ZjA4Li44MzE0NjE4MTNjYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzczLDYgKzM3Myw3IEBA
CiAJCTQxM0ZFOEY1MUY4RDJFQUIwMEY2RDdENyAvKiBDYWxsYmFja0FnZ3JlZ2F0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbGJhY2tBZ2dyZWdhdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMEI0Nzg3MUFBQUFDMUEwMDEyMjNEQSAvKiBTdHJp
bmdDb21tb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyaW5nQ29tbW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MjdDNUE5MjFGNkQ2QzMwMEE2MTJB
NCAvKiBBU0NJSUNUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFTQ0lJQ1R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDY4NTY3MjI1
MDk0RkU4MDA4Q0NBMDUgLyogVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRTYW5pdGl6ZXJTdXBwb3J0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2QkE5RUFCMUY0Q0Q2MUUwMDlBMkJCQyAvKiBDb21wbGV0aW9u
SGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wbGV0aW9uSGFu
ZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJFQjZFOTIyRkZEREQ1MDAy
Njk4NjcgLyogUmVmQ291bnRlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWZDb3VudGVkLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTBERTM1RjMyMTVCQjAxNTAwQjk3OUM3
IC8qIEV4dGVybmFsU3RyaW5nSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFeHRlcm5hbFN0cmluZ0ltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTI2OSw2ICsxMjcwLDcgQEAKIAkJCQk1MzExQkQ1QjFFQTgyMkY5MDA1MjUyODEgLyog
VGhyZWFkTWVzc2FnZS5jcHAgKi8sCiAJCQkJNTMxMUJENTkxRUE4MUE5NjAwNTI1MjgxIC8qIFRo
cmVhZE1lc3NhZ2UuaCAqLywKIAkJCQlBOEE0NzMzRTE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaCAqLywKKwkJCQk0NDY4NTY3MjI1MDk0RkU4MDA4Q0NBMDUgLyogVGhy
ZWFkU2FuaXRpemVyU3VwcG9ydC5oICovLAogCQkJCUE4QTQ3MzNGMTUxQTgyNUIwMDQxMjNGRiAv
KiBUaHJlYWRTcGVjaWZpYy5oICovLAogCQkJCTBGNjZCMjg2MURDOTdCQUIwMDRBMUQzRiAvKiBU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuY3BwICovLAogCQkJCTBGNjZCMjg3MURDOTdCQUIwMDRB
MUQzRiAvKiBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0NvbXBpbGVyLmggYi9Tb3VyY2UvV1RGL3d0Zi9Db21waWxlci5oCmluZGV4IDU5
NjhmNjk3ODNjYi4uZWZjYzc0Mzk1YmE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9Db21w
aWxlci5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgKQEAgLTE1Niw2ICsxNTYsMjAg
QEAKICNkZWZpbmUgU1VQUFJFU1NfQVNBTgogI2VuZGlmCiAKKy8qIFRTQU5fRU5BQkxFRCBhbmQg
U1VQUFJFU1NfVFNBTiAqLworCisjaWZkZWYgX19TQU5JVElaRV9USFJFQURfXworI2RlZmluZSBU
U0FOX0VOQUJMRUQgMQorI2Vsc2UKKyNkZWZpbmUgVFNBTl9FTkFCTEVEIENPTVBJTEVSX0hBU19D
TEFOR19GRUFUVVJFKHRocmVhZF9zYW5pdGl6ZXIpCisjZW5kaWYKKworI2lmIFRTQU5fRU5BQkxF
RAorI2RlZmluZSBTVVBQUkVTU19UU0FOIF9fYXR0cmlidXRlX18oKG5vX3Nhbml0aXplX3RocmVh
ZCkpCisjZWxzZQorI2RlZmluZSBTVVBQUkVTU19UU0FOCisjZW5kaWYKKwogLyogPT09PSBDb21w
aWxlci1pbmRlcGVuZGVudCBtYWNyb3MgZm9yIHZhcmlvdXMgY29tcGlsZXIgZmVhdHVyZXMsIGlu
IGFscGhhYmV0aWNhbCBvcmRlciA9PT09ICovCiAKIC8qIEFMV0FZU19JTkxJTkUgKi8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL0xvY2suaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaAppbmRl
eCA2MGZkYWFiZDkwZGEuLmJmNjIzODM2OTg4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYv
TG9jay5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL0xvY2suaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKICNp
bmNsdWRlIDx3dGYvTG9ja0FsZ29yaXRobS5oPgogI2luY2x1ZGUgPHd0Zi9Mb2NrZXIuaD4KICNp
bmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKyNpbmNsdWRlIDx3dGYvVGhyZWFkU2FuaXRpemVy
U3VwcG9ydC5oPgogCiBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CiBzdHJ1Y3QgTG9ja0luc3Bl
Y3RvcjsKQEAgLTU3LDExICs1OCwxNSBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAoVU5M
SUtFTFkoIURlZmF1bHRMb2NrQWxnb3JpdGhtOjpsb2NrRmFzdEFzc3VtaW5nWmVybyhtX2J5dGUp
KSkKICAgICAgICAgICAgIGxvY2tTbG93KCk7CisgICAgICAgIFRTQU5fQU5OT1RBVEVfSEFQUEVO
U19BRlRFUih0aGlzKTsKICAgICB9CiAKICAgICBib29sIHRyeUxvY2soKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIERlZmF1bHRMb2NrQWxnb3JpdGhtOjp0cnlMb2NrKG1fYnl0ZSk7CisgICAgICAg
IGJvb2wgZGlkTG9jayA9IERlZmF1bHRMb2NrQWxnb3JpdGhtOjp0cnlMb2NrKG1fYnl0ZSk7Cisg
ICAgICAgIGlmIChkaWRMb2NrKQorICAgICAgICAgICAgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0FG
VEVSKHRoaXMpOworICAgICAgICByZXR1cm4gZGlkTG9jazsKICAgICB9CiAKICAgICAvLyBOZWVk
IHRoaXMgdmVyc2lvbiBmb3Igc3RkOjp1bmlxdWVfbG9jay4KQEAgLTgwLDYgKzg1LDcgQEAgcHVi
bGljOgogICAgIC8vIGd1YXJhbnRlZXMgdGhhdCBsb25nIGNyaXRpY2FsIHNlY3Rpb25zIGFsd2F5
cyBnZXQgYSBmYWlyIGxvY2suCiAgICAgdm9pZCB1bmxvY2soKQogICAgIHsKKyAgICAgICAgVFNB
Tl9BTk5PVEFURV9IQVBQRU5TX0JFRk9SRSh0aGlzKTsKICAgICAgICAgaWYgKFVOTElLRUxZKCFE
ZWZhdWx0TG9ja0FsZ29yaXRobTo6dW5sb2NrRmFzdEFzc3VtaW5nWmVybyhtX2J5dGUpKSkKICAg
ICAgICAgICAgIHVubG9ja1Nsb3coKTsKICAgICB9CkBAIC05MSw2ICs5Nyw3IEBAIHB1YmxpYzoK
ICAgICAvLyB3YW50LgogICAgIHZvaWQgdW5sb2NrRmFpcmx5KCkKICAgICB7CisgICAgICAgIFRT
QU5fQU5OT1RBVEVfSEFQUEVOU19CRUZPUkUodGhpcyk7CiAgICAgICAgIGlmIChVTkxJS0VMWSgh
RGVmYXVsdExvY2tBbGdvcml0aG06OnVubG9ja0Zhc3RBc3N1bWluZ1plcm8obV9ieXRlKSkpCiAg
ICAgICAgICAgICB1bmxvY2tGYWlybHlTbG93KCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oIGIvU291cmNlL1dURi93dGYvVGhyZWFk
U2FuaXRpemVyU3VwcG9ydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MC4uMWJjYjMxODAyYWRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvVGhyZWFk
U2FuaXRpemVyU3VwcG9ydC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9D
b21waWxlci5oPgorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaGVhZGVyIHdoZW4gPHJkYXI6Ly9w
cm9ibGVtLzU2NjU0NzczPiBpcyBmaXhlZC4KKworI2lmIFRTQU5fRU5BQkxFRAorCitXVEZfRVhU
RVJOX0NfQkVHSU4KK3ZvaWQgQW5ub3RhdGVIYXBwZW5zQmVmb3JlKGNvbnN0IGNoYXIqIGYsIGlu
dCBsLCBjb25zdCB2b2lkKiBhZGRyKTsKK3ZvaWQgQW5ub3RhdGVIYXBwZW5zQWZ0ZXIoY29uc3Qg
Y2hhciogZiwgaW50IGwsIGNvbnN0IHZvaWQqIGFkZHIpOworV1RGX0VYVEVSTl9DX0VORAorCisj
ZGVmaW5lIFRTQU5fQU5OT1RBVEVfSEFQUEVOU19CRUZPUkUoYWRkcikgXAorICAgIGRvIHsgXAor
ICAgICAgICBBbm5vdGF0ZUhhcHBlbnNCZWZvcmUoX19GSUxFX18sIF9fTElORV9fLCBhZGRyKTsg
XAorICAgIH0gd2hpbGUgKDApCisjZGVmaW5lIFRTQU5fQU5OT1RBVEVfSEFQUEVOU19BRlRFUihh
ZGRyKSAgXAorICAgIGRvIHsgXAorICAgICAgICBBbm5vdGF0ZUhhcHBlbnNBZnRlcihfX0ZJTEVf
XywgX19MSU5FX18sIGFkZHIpOyBcCisgICAgfSB3aGlsZSAoMCkKKworI2Vsc2UKKworI2RlZmlu
ZSBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKGFkZHIpICgodm9pZCkwKQorI2RlZmluZSBU
U0FOX0FOTk9UQVRFX0hBUFBFTlNfQUZURVIoYWRkcikgICgodm9pZCkwKQorCisjZW5kaWYgLy8g
VFNBTl9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZTk2ZTY1NmY4ZTcyLi4yYWM5NjgyMjJkYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvYm1hbGxvYy9ibWFsbG9jLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNyw2
ICsxMjcsNyBAQAogCQk0NDI2RTI4MDFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NDI2RTI3RTFDODM4
RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5jcHAgKi87IH07CiAJCTQ0MjZFMjgxMUM4MzhFRTAwMDhF
QjA0MiAvKiBMb2dnaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0NDI2RTI3RjFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQ0MjZFMjgzMUM4Mzk1NDcw
MDhFQjA0MiAvKiBCU29mdExpbmtpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ0MjZFMjgyMUM4Mzk1NDcwMDhFQjA0MiAvKiBCU29mdExpbmtpbmcu
aCAqLzsgfTsKKwkJNDQ2ODU2NzEyNTA5NEVCMTAwOENDQTA1IC8qIEJUaHJlYWRTYW5pdGl6ZXJT
dXBwb3J0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
NDY4NTY3MDI1MDk0RUIxMDA4Q0NBMDUgLyogQlRocmVhZFNhbml0aXplclN1cHBvcnQuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MkY0NzI0OTIx
MEJBMzAyMDBCNzMwQkIgLyogTWVtb3J5U3RhdHVzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkY0NzI0ODIxMEJBMkY1MDBCNzMwQkIgLyogTWVt
b3J5U3RhdHVzU1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNjU5OUM1Q0MxRUMzRjE1OTAwQTJGN0JCIC8qIEF2YWlsYWJsZU1lbW9yeS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTk5QzVDQTFF
QzNGMTU5MDBBMkY3QkIgLyogQXZhaWxhYmxlTWVtb3J5LmNwcCAqLzsgfTsKIAkJNjU5OUM1Q0Qx
RUMzRjE1OTAwQTJGN0JCIC8qIEF2YWlsYWJsZU1lbW9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjU5OUM1Q0IxRUMzRjE1OTAwQTJGN0JCIC8qIEF2
YWlsYWJsZU1lbW9yeS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CkBAIC0yODQsNiArMjg1LDcgQEAKIAkJNDQyNkUyN0UxQzgzOEVFMDAwOEVCMDQyIC8q
IExvZ2dpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gTG9nZ2lu
Zy5jcHA7IHBhdGggPSBibWFsbG9jL0xvZ2dpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk0NDI2RTI3RjFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBMb2dnaW5nLmg7IHBhdGggPSBibWFsbG9jL0xvZ2dpbmcu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDQyNkUyODIxQzgzOTU0NzAwOEVCMDQy
IC8qIEJTb2Z0TGlua2luZy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBCU29m
dExpbmtpbmcuaDsgcGF0aCA9IGJtYWxsb2MvZGFyd2luL0JTb2Z0TGlua2luZy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk0NDY4NTY3MDI1MDk0RUIxMDA4Q0NBMDUgLyogQlRocmVh
ZFNhbml0aXplclN1cHBvcnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gQlRo
cmVhZFNhbml0aXplclN1cHBvcnQuaDsgcGF0aCA9IGJtYWxsb2MvQlRocmVhZFNhbml0aXplclN1
cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJGNDcyNDgyMTBCQTJGNTAw
QjczMEJCIC8qIE1lbW9yeVN0YXR1c1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5h
bWUgPSBNZW1vcnlTdGF0dXNTUEkuaDsgcGF0aCA9IGJtYWxsb2MvZGFyd2luL01lbW9yeVN0YXR1
c1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2NTk5QzVDQTFFQzNGMTU5MDBB
MkY3QkIgLyogQXZhaWxhYmxlTWVtb3J5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IEF2YWlsYWJsZU1lbW9yeS5jcHA7IHBhdGggPSBibWFsbG9jL0F2YWlsYWJsZU1l
bW9yeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTY1OTlDNUNCMUVDM0YxNTkw
MEEyRjdCQiAvKiBBdmFpbGFibGVNZW1vcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gQXZhaWxhYmxlTWVtb3J5Lmg7IHBhdGggPSBibWFsbG9jL0F2YWlsYWJsZU1lbW9yeS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTI4LDYgKzUzMCw3IEBACiAJCQkJMEY3
RUI4NEExRjk1NDFDNjAwRjFBQkNCIC8qIEJpdHMuaCAqLywKIAkJCQkwRjdFQjg0QjFGOTU0MUM2
MDBGMUFCQ0IgLyogQk1hbGxvY2VkLmggKi8sCiAJCQkJMTRDOTE5QzgxOEZDQzU5RjAwMjhEQjQz
IC8qIEJQbGF0Zm9ybS5oICovLAorCQkJCTQ0Njg1NjcwMjUwOTRFQjEwMDhDQ0EwNSAvKiBCVGhy
ZWFkU2FuaXRpemVyU3VwcG9ydC5oICovLAogCQkJCURFOEIxM0IyMjFDQzVEOUYwMEE2M0ZDRCAv
KiBCVk1UYWdzLmggKi8sCiAJCQkJMEY3NEI5M0QxRjg5NzEzRTAwQjkzNUQzIC8qIENyeXB0b1Jh
bmRvbS5jcHAgKi8sCiAJCQkJMEY3NEI5M0MxRjg5NzEzRTAwQjkzNUQzIC8qIENyeXB0b1JhbmRv
bS5oICovLApAQCAtNTkyLDYgKzU5NSw3IEBACiAJCQkJMTQ0OEMzMDExOEYzNzU0QzAwNTAyODM5
IC8qIGJtYWxsb2MuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGN0VCODREMUY5NTQxQzcwMEYxQUJD
QiAvKiBCTWFsbG9jZWQuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0QzkxOUM5MThGQ0M1OUYwMDI4
REI0MyAvKiBCUGxhdGZvcm0uaCBpbiBIZWFkZXJzICovLAorCQkJCTQ0Njg1NjcxMjUwOTRFQjEw
MDhDQ0EwNSAvKiBCVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NDQyNkUyODMxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzkzOTg4NUIyMDc2RUVCNjAwNzRBMkU3IC8qIEJ1bGtEZWNvbW1pdC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMTRERDc4OUMxOEY0OEQ0QTAwOTUwNzAyIC8qIEJ1bXBBbGxvY2F0b3IuaCBp
biBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CQ29tcGls
ZXIuaCBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQkNvbXBpbGVyLmgKaW5kZXggY2RjNDdhYzlh
MmVjLi45ZjUyYjMzMzYyNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvQkNv
bXBpbGVyLmgKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CQ29tcGlsZXIuaApAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNyw2ICsz
Nyw3IEBACiAjZW5kaWYKIAogI2RlZmluZSBCQVNBTl9FTkFCTEVEIEJDT01QSUxFUl9IQVNfQ0xB
TkdfRkVBVFVSRShhZGRyZXNzX3Nhbml0aXplcikKKyNkZWZpbmUgQlRTQU5fRU5BQkxFRCBCQ09N
UElMRVJfSEFTX0NMQU5HX0ZFQVRVUkUodGhyZWFkX3Nhbml0aXplcikKIAogLyogQkNPTVBJTEVS
X0hBU19DTEFOR19ERUNMU1BFQygpIC0gd2hldGhlciB0aGUgY29tcGlsZXIgc3VwcG9ydHMgYSBN
aWNyb3NvZnQgc3R5bGUgX19kZWNsc3BlYyBhdHRyaWJ1dGUuICovCiAvKiBodHRwczovL2NsYW5n
Lmxsdm0ub3JnL2RvY3MvTGFuZ3VhZ2VFeHRlbnNpb25zLmh0bWwjaGFzLWRlY2xzcGVjLWF0dHJp
YnV0ZSAqLwpkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CVGhyZWFkU2FuaXRp
emVyU3VwcG9ydC5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CVGhyZWFkU2FuaXRpemVyU3Vw
cG9ydC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uMWYxMzhmMjZk
MGJiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CVGhyZWFkU2Fu
aXRpemVyU3VwcG9ydC5oCkBAIC0wLDAgKzEsNTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICog
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkJDb21waWxl
ci5oIgorCisvLyBGSVhNRTogUmVtb3ZlIHRoaXMgaGVhZGVyIHdoZW4gPHJkYXI6Ly9wcm9ibGVt
LzU2NjU0NzczPiBpcyBmaXhlZC4KKworI2lmIEJUU0FOX0VOQUJMRUQKKworZXh0ZXJuICJDIiB7
Cit2b2lkIEFubm90YXRlSGFwcGVuc0JlZm9yZShjb25zdCBjaGFyKiBmLCBpbnQgbCwgY29uc3Qg
dm9pZCogYWRkcik7Cit2b2lkIEFubm90YXRlSGFwcGVuc0FmdGVyKGNvbnN0IGNoYXIqIGYsIGlu
dCBsLCBjb25zdCB2b2lkKiBhZGRyKTsKK30KKworI2RlZmluZSBCVFNBTl9BTk5PVEFURV9IQVBQ
RU5TX0JFRk9SRShhZGRyKSBcCisgICAgZG8geyBcCisgICAgICAgIEFubm90YXRlSGFwcGVuc0Jl
Zm9yZShfX0ZJTEVfXywgX19MSU5FX18sIGFkZHIpOyBcCisgICAgfSB3aGlsZSAoMCkKKyNkZWZp
bmUgQlRTQU5fQU5OT1RBVEVfSEFQUEVOU19BRlRFUihhZGRyKSAgXAorICAgIGRvIHsgXAorICAg
ICAgICBBbm5vdGF0ZUhhcHBlbnNBZnRlcihfX0ZJTEVfXywgX19MSU5FX18sIGFkZHIpOyBcCisg
ICAgfSB3aGlsZSAoMCkKKworI2Vsc2UKKworI2RlZmluZSBCVFNBTl9BTk5PVEFURV9IQVBQRU5T
X0JFRk9SRShhZGRyKSAoKHZvaWQpMCkKKyNkZWZpbmUgQlRTQU5fQU5OT1RBVEVfSEFQUEVOU19B
RlRFUihhZGRyKSAgKCh2b2lkKTApCisKKyNlbmRpZiAvLyBCVFNBTl9FTkFCTEVECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0Vudmlyb25tZW50LmNwcCBiL1NvdXJjZS9ibWFs
bG9jL2JtYWxsb2MvRW52aXJvbm1lbnQuY3BwCmluZGV4IDZiOWE5YThlNTMyZC4uM2QwNDE3ODUw
NGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0Vudmlyb25tZW50LmNwcAor
KysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL0Vudmlyb25tZW50LmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05Niw3ICs5Niw2IEBA
IHN0YXRpYyBib29sIGlzU2FuaXRpemVyRW5hYmxlZCgpCiAjaWYgQk9TKERBUldJTikKICAgICBz
dGF0aWMgY29uc3QgY2hhciBzYW5pdGl6ZXJQcmVmaXhbXSA9ICIvbGliY2xhbmdfcnQuIjsKICAg
ICBzdGF0aWMgY29uc3QgY2hhciBhc2FuTmFtZVtdID0gImFzYW5fIjsKLSAgICBzdGF0aWMgY29u
c3QgY2hhciB0c2FuTmFtZVtdID0gInRzYW5fIjsKICAgICB1aW50MzJfdCBpbWFnZUNvdW50ID0g
X2R5bGRfaW1hZ2VfY291bnQoKTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgaW1hZ2VD
b3VudDsgKytpKSB7CiAgICAgICAgIGNvbnN0IGNoYXIqIGltYWdlTmFtZSA9IF9keWxkX2dldF9p
bWFnZV9uYW1lKGkpOwpAQCAtMTA2LDggKzEwNSw2IEBAIHN0YXRpYyBib29sIGlzU2FuaXRpemVy
RW5hYmxlZCgpCiAgICAgICAgICAgICBjb25zdCBjaGFyKiBzYW5pdGl6ZXJOYW1lID0gcyArIHNp
emVvZihzYW5pdGl6ZXJQcmVmaXgpIC0gMTsKICAgICAgICAgICAgIGlmICghc3RybmNtcChzYW5p
dGl6ZXJOYW1lLCBhc2FuTmFtZSwgc2l6ZW9mKGFzYW5OYW1lKSAtIDEpKQogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAgaWYgKCFzdHJuY21wKHNhbml0aXplck5hbWUs
IHRzYW5OYW1lLCBzaXplb2YodHNhbk5hbWUpIC0gMSkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTE1LDcgKzEx
Miw3IEBAIHN0YXRpYyBib29sIGlzU2FuaXRpemVyRW5hYmxlZCgpCiAgICAgdm9pZCogaGFuZGxl
ID0gZGxvcGVuKG51bGxwdHIsIFJUTERfTk9XKTsKICAgICBpZiAoIWhhbmRsZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwotICAgIGJvb2wgcmVzdWx0ID0gISFkbHN5bShoYW5kbGUsICJfX2FzYW5f
aW5pdCIpIHx8ICEhZGxzeW0oaGFuZGxlLCAiX190c2FuX2luaXQiKTsKKyAgICBib29sIHJlc3Vs
dCA9ICEhZGxzeW0oaGFuZGxlLCAiX19hc2FuX2luaXQiKTsKICAgICBkbGNsb3NlKGhhbmRsZSk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxvYy9i
bWFsbG9jL011dGV4LmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL011dGV4LmgKaW5kZXggZjRj
YzJhYTQxMWM5Li45YzdlODVhMDgxZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9ibWFsbG9jL2JtYWxs
b2MvTXV0ZXguaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFsbG9jL011dGV4LmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAxOCBZdXN1a2UgU3V6dWtpIDx1dGF0YW5l
LnRlYUBnbWFpbC5jb20+LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMjcsNiArMjcsNyBAQAogI3By
YWdtYSBvbmNlCiAKICNpbmNsdWRlICJCQXNzZXJ0LmgiCisjaW5jbHVkZSAiQlRocmVhZFNhbml0
aXplclN1cHBvcnQuaCIKICNpbmNsdWRlIDxhdG9taWM+CiAjaW5jbHVkZSA8bXV0ZXg+CiAjaW5j
bHVkZSA8dGhyZWFkPgpAQCAtNzgsNyArNzksMTAgQEAgc3RhdGljIGlubGluZSB2b2lkIHdhaXRV
bnRpbEZhbHNlKAogCiBpbmxpbmUgYm9vbCBNdXRleDo6dHJ5X2xvY2soKQogewotICAgIHJldHVy
biAhbV9mbGFnLmV4Y2hhbmdlKHRydWUsIHN0ZDo6bWVtb3J5X29yZGVyX2FjcXVpcmUpOworICAg
IGJvb2wgZGlkTG9jayA9ICFtX2ZsYWcuZXhjaGFuZ2UodHJ1ZSwgc3RkOjptZW1vcnlfb3JkZXJf
YWNxdWlyZSk7CisgICAgaWYgKGRpZExvY2spCisgICAgICAgIEJUU0FOX0FOTk9UQVRFX0hBUFBF
TlNfQUZURVIodGhpcyk7CisgICAgcmV0dXJuIGRpZExvY2s7CiB9CiAKIGlubGluZSB2b2lkIE11
dGV4Ojpsb2NrKCkKQEAgLTg5LDYgKzkzLDcgQEAgaW5saW5lIHZvaWQgTXV0ZXg6OmxvY2soKQog
CiBpbmxpbmUgdm9pZCBNdXRleDo6dW5sb2NrKCkKIHsKKyAgICBCVFNBTl9BTk5PVEFURV9IQVBQ
RU5TX0JFRk9SRSh0aGlzKTsKICAgICBtX2ZsYWcuc3RvcmUoZmFsc2UsIHN0ZDo6bWVtb3J5X29y
ZGVyX3JlbGVhc2UpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3NldC13ZWJraXQt
Y29uZmlndXJhdGlvbiBiL1Rvb2xzL1NjcmlwdHMvc2V0LXdlYmtpdC1jb25maWd1cmF0aW9uCmlu
ZGV4IDcwMmIwMTZmMzViOC4uMGNhMDYzNGUzNjhjIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRz
L3NldC13ZWJraXQtY29uZmlndXJhdGlvbgorKysgYi9Ub29scy9TY3JpcHRzL3NldC13ZWJraXQt
Y29uZmlndXJhdGlvbgpAQCAtMSw2ICsxLDYgQEAKICMhL3Vzci9iaW4vZW52IHBlcmwKIAotIyBD
b3B5cmlnaHQgKEMpIDIwMDUtMjAxOSBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
IyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAyMCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAKIHVzZSBz
dHJpY3Q7CiB1c2Ugd2FybmluZ3M7Cit1c2UgRmlsZTo6U3BlYzsKIHVzZSBGaW5kQmluOwogdXNl
IGxpYiAkRmluZEJpbjo6QmluOwogdXNlIHdlYmtpdGRpcnM7CkBAIC0zOSw2ICs0MCw3IEBAIFVz
YWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdCiAgIC0tNjQtYml0ICAgICAgICAgICAgICAgICAg
ICAgICAgICAgU2V0IHRoZSBkZWZhdWx0IGFyY2hpdGVjdHVyZSB0byA2NC1iaXQKICAgLS1bbm8t
XWFzYW4gICAgICAgICAgICAgICAgICAgICAgICBFbmFibGUgb3IgZGlzYWJsZSBjbGFuZyBhZGRy
ZXNzIHNhbml0aXplcgogICAtLVtuby1dY292ZXJhZ2UgICAgICAgICAgICAgICAgICAgIEVuYWJs
ZSBvciBkaXNhYmxlIExMVk0gU291cmNlLWJhc2VkIENvZGUgQ292ZXJhZ2UKKyAgLS1bbm8tXXRz
YW4gICAgICAgICAgICAgICAgICAgICAgICBFbmFibGUgb3IgZGlzYWJsZSBjbGFuZyB0aHJlYWQg
c2FuaXRpemVyCiAgIC0tZm9yY2Utb3B0aW1pemF0aW9uLWxldmVsPTxsZXZlbD4gT3B0aW1pemF0
aW9uIGxldmVsOiBPMywgTzIsIE8xLCBPMCwgT3MsIE9mYXN0LCBPZywgb3Igbm9uZQogICAtLWx0
by1tb2RlPTxtb2RlPiAgICAgICAgICAgICAgICAgIFNldCBMVE8gbW9kZTogZnVsbCwgdGhpbiwg
b3Igbm9uZQogICAtLWRlYnVnICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNldCB0aGUgZGVm
YXVsdCBjb25maWd1cmF0aW9uIHRvIGRlYnVnCkBAIC01Miw2ICs1NCw4IEBAIG15ICRlbmFibGVB
U0FOID0gY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLWFzYW4iKTsKIG15ICRk
aXNhYmxlQVNBTiA9IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS1uby1hc2Fu
Iik7CiBteSAkZW5hYmxlQ292ZXJhZ2UgPSBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFS
R1YoIi0tY292ZXJhZ2UiKTsKIG15ICRkaXNhYmxlQ292ZXJhZ2UgPSBjaGVja0ZvckFyZ3VtZW50
QW5kUmVtb3ZlRnJvbUFSR1YoIi0tbm8tY292ZXJhZ2UiKTsKK215ICRlbmFibGVUU0FOID0gY2hl
Y2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLXRzYW4iKTsKK215ICRkaXNhYmxlVFNB
TiA9IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS1uby10c2FuIik7CiBteSAk
bHRvTW9kZTsKIGlmICghY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWR2V0dGluZ1Zh
bHVlKCItLWx0by1tb2RlIiwgXCRsdG9Nb2RlKSkgewogICAgICRsdG9Nb2RlPSIiOwpAQCAtODAs
MTUgKzg0LDE4IEBAIGlmIChjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0tcmVz
ZXQiKSkgewogICAgIHVubGluayAiJGJhc2VQcm9kdWN0RGlyL0NvbmZpZ3VyYXRpb24iOwogICAg
IHVubGluayAiJGJhc2VQcm9kdWN0RGlyL0FyY2hpdGVjdHVyZSI7CiAgICAgdW5saW5rICIkYmFz
ZVByb2R1Y3REaXIvQVNhbiI7Ci0gICAgdW5saW5rICIkYmFzZVByb2R1Y3REaXIvRm9yY2VPcHRp
bWl6YXRpb25MZXZlbCI7CiAgICAgdW5saW5rICIkYmFzZVByb2R1Y3REaXIvQ292ZXJhZ2UiOwor
ICAgIHVubGluayBGaWxlOjpTcGVjLT5jYXRmaWxlKCRiYXNlUHJvZHVjdERpciwgIlRTYW4iKTsK
KyAgICB1bmxpbmsgIiRiYXNlUHJvZHVjdERpci9Gb3JjZU9wdGltaXphdGlvbkxldmVsIjsKICAg
ICB1bmxpbmsgIiRiYXNlUHJvZHVjdERpci9MVE8iOwogICAgIGV4aXQgMDsKIH0KIAotaWYgKCgh
JGNvbmZpZ3VyYXRpb24gJiYgISRhcmNoaXRlY3R1cmUgJiYgISRlbmFibGVBU0FOICYmICEkZGlz
YWJsZUFTQU4gJiYgISRlbmFibGVDb3ZlcmFnZSAmJiAhJGRpc2FibGVDb3ZlcmFnZSAmJiAhJGx0
b01vZGUgJiYgISRmb3JjZU9wdGltaXphdGlvbkxldmVsKQoraWYgKCghJGNvbmZpZ3VyYXRpb24g
JiYgISRhcmNoaXRlY3R1cmUgJiYgISRlbmFibGVBU0FOICYmICEkZGlzYWJsZUFTQU4gJiYgISRl
bmFibGVDb3ZlcmFnZSAmJiAhJGRpc2FibGVDb3ZlcmFnZSAmJiAhJGVuYWJsZVRTQU4gJiYgISRk
aXNhYmxlVFNBTiAmJiAhJGx0b01vZGUgJiYgISRmb3JjZU9wdGltaXphdGlvbkxldmVsKQogICAg
IHx8ICgkZW5hYmxlQVNBTiAmJiAkZGlzYWJsZUFTQU4pCi0gICAgfHwgKCRlbmFibGVDb3ZlcmFn
ZSAmJiAkZGlzYWJsZUNvdmVyYWdlKSkgeworICAgIHx8ICgkZW5hYmxlQ292ZXJhZ2UgJiYgJGRp
c2FibGVDb3ZlcmFnZSkKKyAgICB8fCAoJGVuYWJsZVRTQU4gJiYgJGRpc2FibGVUU0FOKQorICAg
ICkgewogICAgIHByaW50IFNUREVSUiAkdXNhZ2U7CiAgICAgZXhpdCAxOwogfQpAQCAtMTQzLDYg
KzE1MCwxNCBAQCBpZiAoJGVuYWJsZUNvdmVyYWdlKSB7CiAgICAgdW5saW5rICIkYmFzZVByb2R1
Y3REaXIvQ292ZXJhZ2UiOwogfQogCitpZiAoJGVuYWJsZVRTQU4pIHsKKyAgICBvcGVuIFRTQU4s
ICI+IiwgRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkYmFzZVByb2R1Y3REaXIsICJUU2FuIikgb3IgZGll
OworICAgIHByaW50IFRTQU4gIllFUyI7CisgICAgY2xvc2UgVFNBTjsKK30gZWxzaWYgKCRkaXNh
YmxlVFNBTikgeworICAgIHVubGluayBGaWxlOjpTcGVjLT5jYXRmaWxlKCRiYXNlUHJvZHVjdERp
ciwgIlRTYW4iKTsKK30KKwogaWYgKCRmb3JjZU9wdGltaXphdGlvbkxldmVsICYmICRmb3JjZU9w
dGltaXphdGlvbkxldmVsIGVxICJub25lIikgewogICAgIHVubGluayAiJGJhc2VQcm9kdWN0RGly
L0ZvcmNlT3B0aW1pemF0aW9uTGV2ZWwiOwogfSBlbHNpZiAoJGZvcmNlT3B0aW1pemF0aW9uTGV2
ZWwpIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5wbSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0ZGlycy5wbQppbmRleCBhZGNkZGUxMjRkNDIuLjRiNmY2MjUzYTExOSAxMDA3
NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0ZGlycy5wbQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAy
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAwOSBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTEgUmVz
ZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdo
dCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcyku
CkBAIC0xMzAsNiArMTMwLDcgQEAgb3VyIEBFWFBPUlRfT0s7CiBteSAkYXJjaGl0ZWN0dXJlOwog
bXkgJW5hdGl2ZUFyY2hpdGVjdHVyZU1hcCA9ICgpOwogbXkgJGFzYW5Jc0VuYWJsZWQ7CitteSAk
dHNhbklzRW5hYmxlZDsKIG15ICRmb3JjZU9wdGltaXphdGlvbkxldmVsOwogbXkgJGNvdmVyYWdl
SXNFbmFibGVkOwogbXkgJGx0b01vZGU7CkBAIC00NDYsNiArNDQ3LDIyIEBAIHN1YiBkZXRlcm1p
bmVBU2FuSXNFbmFibGVkCiAgICAgfQogfQogCitzdWIgZGV0ZXJtaW5lVFNhbklzRW5hYmxlZAor
eworICAgIHJldHVybiBpZiBkZWZpbmVkICR0c2FuSXNFbmFibGVkOworICAgIGRldGVybWluZUJh
c2VQcm9kdWN0RGlyKCk7CisKKyAgICAkdHNhbklzRW5hYmxlZCA9IDA7CisgICAgbXkgJHRzYW5D
b25maWd1cmF0aW9uVmFsdWU7CisKKyAgICBpZiAob3BlbiBUU0FOLCAiJGJhc2VQcm9kdWN0RGly
L1RTYW4iKSB7CisgICAgICAgICR0c2FuQ29uZmlndXJhdGlvblZhbHVlID0gPFRTQU4+OworICAg
ICAgICBjbG9zZSBUU0FOOworICAgICAgICBjaG9tcCAkdHNhbkNvbmZpZ3VyYXRpb25WYWx1ZTsK
KyAgICAgICAgJHRzYW5Jc0VuYWJsZWQgPSAxIGlmICR0c2FuQ29uZmlndXJhdGlvblZhbHVlIGVx
ICJZRVMiOworICAgIH0KK30KKwogc3ViIGRldGVybWluZUZvcmNlT3B0aW1pemF0aW9uTGV2ZWwK
IHsKICAgICByZXR1cm4gaWYgZGVmaW5lZCAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbDsKQEAgLTg4
NSw2ICs5MDIsMTIgQEAgc3ViIGFzYW5Jc0VuYWJsZWQoKQogICAgIHJldHVybiAkYXNhbklzRW5h
YmxlZDsKIH0KIAorc3ViIHRzYW5Jc0VuYWJsZWQoKQoreworICAgIGRldGVybWluZVRTYW5Jc0Vu
YWJsZWQoKTsKKyAgICByZXR1cm4gJHRzYW5Jc0VuYWJsZWQ7Cit9CisKIHN1YiBmb3JjZU9wdGlt
aXphdGlvbkxldmVsKCkKIHsKICAgICBkZXRlcm1pbmVGb3JjZU9wdGltaXphdGlvbkxldmVsKCk7
CkBAIC05MzksNiArOTYyLDcgQEAgc3ViIFhjb2RlT3B0aW9ucwogICAgIGRldGVybWluZUNvbmZp
Z3VyYXRpb24oKTsKICAgICBkZXRlcm1pbmVBcmNoaXRlY3R1cmUoKTsKICAgICBkZXRlcm1pbmVB
U2FuSXNFbmFibGVkKCk7CisgICAgZGV0ZXJtaW5lVFNhbklzRW5hYmxlZCgpOwogICAgIGRldGVy
bWluZUZvcmNlT3B0aW1pemF0aW9uTGV2ZWwoKTsKICAgICBkZXRlcm1pbmVDb3ZlcmFnZUlzRW5h
YmxlZCgpOwogICAgIGRldGVybWluZUxUT01vZGUoKTsKQEAgLTk0OCw3ICs5NzIsMTMgQEAgc3Vi
IFhjb2RlT3B0aW9ucwogICAgIHB1c2ggQG9wdGlvbnMsICItVXNlU2FuaXRpemVkQnVpbGRTeXN0
ZW1FbnZpcm9ubWVudD1ZRVMiOwogICAgIHB1c2ggQG9wdGlvbnMsICItU2hvd0J1aWxkT3BlcmF0
aW9uRHVyYXRpb249WUVTIjsKICAgICBwdXNoIEBvcHRpb25zLCAoIi1jb25maWd1cmF0aW9uIiwg
JGNvbmZpZ3VyYXRpb24pOwotICAgIHB1c2ggQG9wdGlvbnMsICgiLXhjY29uZmlnIiwgc291cmNl
RGlyKCkgLiAiL1Rvb2xzL2FzYW4vYXNhbi54Y2NvbmZpZyIsICJBU0FOX0lHTk9SRT0iIC4gc291
cmNlRGlyKCkgLiAiL1Rvb2xzL2FzYW4vd2Via2l0LWFzYW4taWdub3JlLnR4dCIpIGlmICRhc2Fu
SXNFbmFibGVkOworICAgIGlmICgkYXNhbklzRW5hYmxlZCkgeworICAgICAgICBwdXNoIEBvcHRp
b25zLCAoIi14Y2NvbmZpZyIsIEZpbGU6OlNwZWMtPmNhdGZpbGUoc291cmNlRGlyKCksICJUb29s
cyIsICJzYW5pdGl6ZXIiLCAiYXNhbi54Y2NvbmZpZyIpKTsKKyAgICAgICAgbXkgJGFzYW5JZ25v
cmVQYXRoID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZShzb3VyY2VEaXIoKSwgIlRvb2xzIiwgInNhbml0
aXplciIsICJ3ZWJraXQtYXNhbi1pZ25vcmUudHh0Iik7CisgICAgICAgIHB1c2ggQG9wdGlvbnMs
ICJBU0FOX0lHTk9SRT0kYXNhbklnbm9yZVBhdGgiIGlmIC1lICRhc2FuSWdub3JlUGF0aDsKKyAg
ICB9IGVsc2lmICgkdHNhbklzRW5hYmxlZCkgeworICAgICAgICBwdXNoIEBvcHRpb25zLCAoIi14
Y2NvbmZpZyIsIEZpbGU6OlNwZWMtPmNhdGZpbGUoc291cmNlRGlyKCksICJUb29scyIsICJzYW5p
dGl6ZXIiLCAidHNhbi54Y2NvbmZpZyIpKTsKKyAgICB9CiAgICAgcHVzaCBAb3B0aW9ucywgKCIt
eGNjb25maWciLCBzb3VyY2VEaXIoKSAuICIvVG9vbHMvY292ZXJhZ2UvY292ZXJhZ2UueGNjb25m
aWciKSBpZiAkY292ZXJhZ2VJc0VuYWJsZWQ7CiAgICAgcHVzaCBAb3B0aW9ucywgKCJHQ0NfT1BU
SU1JWkFUSU9OX0xFVkVMPSRmb3JjZU9wdGltaXphdGlvbkxldmVsIikgaWYgJGZvcmNlT3B0aW1p
emF0aW9uTGV2ZWw7CiAgICAgcHVzaCBAb3B0aW9ucywgIldLX0xUT19NT0RFPSRsdG9Nb2RlIiBp
ZiAkbHRvTW9kZTsKQEAgLTk2MCw3ICs5OTAsOCBAQCBzdWIgWGNvZGVPcHRpb25zCiAgICAgIyB0
cmVhdHMgZXJyb3JzIGFzIG5vbi1mYXRhbCB3aGVuIGl0IGVuY291bnRlcnMgbWlzc2luZyBzeW1i
b2xzIHJlbGF0ZWQgdG8gY292ZXJhZ2UuCiAgICAgYXBwZW5kVG9FbnZpcm9ubWVudFZhcmlhYmxl
TGlzdCgiV0VCS0lUX0NPVkVSQUdFX0JVSUxEIiwgIjEiKSBpZiAkY292ZXJhZ2VJc0VuYWJsZWQ7
CiAKLSAgICBkaWUgImNhbm5vdCBlbmFibGUgYm90aCBBU0FOIGFuZCBDb3ZlcmFnZSBhdCB0aGlz
IHRpbWVcbiIgaWYgJGNvdmVyYWdlSXNFbmFibGVkICYmICRhc2FuSXNFbmFibGVkOworICAgIGRp
ZSAiQ2Fubm90IGVuYWJsZSBib3RoIEFTQU4gYW5kIFRTQU4gYXQgdGhlIHNhbWUgdGltZVxuIiBp
ZiAkYXNhbklzRW5hYmxlZCAmJiAkdHNhbklzRW5hYmxlZDsKKyAgICBkaWUgIkNhbm5vdCBlbmFi
bGUgYm90aCAoQVNBTiBvciBUU0FOKSBhbmQgQ292ZXJhZ2UgYXQgdGhpcyB0aW1lXG4iIGlmICRj
b3ZlcmFnZUlzRW5hYmxlZCAmJiAoJGFzYW5Jc0VuYWJsZWQgfHwgJHRzYW5Jc0VuYWJsZWQpOwog
CiAgICAgaWYgKHdpbGxVc2VJT1NEZXZpY2VTREsoKSB8fCB3aWxsVXNlV2F0Y2hEZXZpY2VTREso
KSB8fCB3aWxsVXNlQXBwbGVUVkRldmljZVNESygpKSB7CiAgICAgICAgIHB1c2ggQG9wdGlvbnMs
ICJFTkFCTEVfQklUQ09ERT1OTyI7CkBAIC0yNDMzLDYgKzI0NjQsNyBAQCBzdWIgZ2VuZXJhdGVC
dWlsZFN5c3RlbUZyb21DTWFrZVByb2plY3QKICAgICB9CiAKICAgICBwdXNoIEBhcmdzLCAiLURF
TkFCTEVfU0FOSVRJWkVSUz1hZGRyZXNzIiBpZiBhc2FuSXNFbmFibGVkKCk7CisgICAgcHVzaCBA
YXJncywgIi1ERU5BQkxFX1NBTklUSVpFUlM9dGhyZWFkIiBpZiB0c2FuSXNFbmFibGVkKCk7CiAK
ICAgICBwdXNoIEBhcmdzLCAiLURMVE9fTU9ERT0kbHRvTW9kZSIgaWYgbHRvTW9kZSgpOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9hc2FuL2FzYW4ueGNjb25maWcgYi9Ub29scy9hc2FuL2FzYW4ueGNj
b25maWcKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxNDk5NTY1MzgxOS4uMDAwMDAw
MDAwMDAwCi0tLSBhL1Rvb2xzL2FzYW4vYXNhbi54Y2NvbmZpZworKysgL2Rldi9udWxsCkBAIC0x
LDE2ICswLDAgQEAKLUdDQ19PUFRJTUlaQVRJT05fTEVWRUwgPSAkKEdDQ19PUFRJTUlaQVRJT05f
TEVWRUxfJChDT05GSUdVUkFUSU9OKSk7Ci1HQ0NfT1BUSU1JWkFUSU9OX0xFVkVMX0RlYnVnID0g
MDsKLUdDQ19PUFRJTUlaQVRJT05fTEVWRUxfUHJvZHVjdGlvbiA9IDE7Ci1HQ0NfT1BUSU1JWkFU
SU9OX0xFVkVMX1JlbGVhc2UgPSAxOwotCi1FTkFCTEVfQUREUkVTU19TQU5JVElaRVIgPSAkKEVO
QUJMRV9BRERSRVNTX1NBTklUSVpFUl8kKFdLX0FTQU5fRElTQUxMT1dFRCkpOwotRU5BQkxFX0FE
RFJFU1NfU0FOSVRJWkVSXyA9IFlFUzsKLUVOQUJMRV9BRERSRVNTX1NBTklUSVpFUl9OTyA9IFlF
UzsKLQotT1RIRVJfQ0ZMQUdTID0gJChpbmhlcml0ZWQpICQoV0tfQVNBTl9PVEhFUl9DRkxBR1Nf
JChFTkFCTEVfQUREUkVTU19TQU5JVElaRVIpKTsKLU9USEVSX0NQTFVTUExVU0ZMQUdTID0gJChp
bmhlcml0ZWQpICQoV0tfQVNBTl9PVEhFUl9DRkxBR1NfJChFTkFCTEVfQUREUkVTU19TQU5JVEla
RVIpKTsKLVdLX0FTQU5fT1RIRVJfQ0ZMQUdTX1lFUyA9IC1mbm8tb21pdC1mcmFtZS1wb2ludGVy
IC1nOwotCi0vLyBXb3JrYXJvdW5kIGZvciByZGFyOi8vcHJvYmxlbS80OTQ5ODA5MgotT1RIRVJf
TERGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX0xERkxBR1NfQVNBTl8kKEVOQUJMRV9BRERSRVNT
X1NBTklUSVpFUikpOwotV0tfTERGTEFHU19BU0FOX1lFUyA9IC1XbCwtcnBhdGgsQGV4ZWN1dGFi
bGVfcGF0aC9GcmFtZXdvcmtzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvc2FuaXRpemVyL2FzYW4ueGNj
b25maWcgYi9Ub29scy9zYW5pdGl6ZXIvYXNhbi54Y2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAuLjRiMDcyMDMzNWI5ZAotLS0gL2Rldi9udWxsCisrKyBiL1Rv
b2xzL3Nhbml0aXplci9hc2FuLnhjY29uZmlnCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUgInNh
bml0aXplci54Y2NvbmZpZyIKKworRU5BQkxFX0FERFJFU1NfU0FOSVRJWkVSID0gJChFTkFCTEVf
QUREUkVTU19TQU5JVElaRVJfJChXS19BU0FOX0RJU0FMTE9XRUQpKTsKK0VOQUJMRV9BRERSRVNT
X1NBTklUSVpFUl8gPSBZRVM7CitFTkFCTEVfQUREUkVTU19TQU5JVElaRVJfTk8gPSBZRVM7CisK
K1dLX0VOQUJMRV9TQU5JVElaRVIgPSAkKEVOQUJMRV9BRERSRVNTX1NBTklUSVpFUik7CmRpZmYg
LS1naXQgYS9Ub29scy9zYW5pdGl6ZXIvc2FuaXRpemVyLnhjY29uZmlnIGIvVG9vbHMvc2FuaXRp
emVyL3Nhbml0aXplci54Y2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAuLjk4YzA0NTEyMzZhOQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3Nhbml0aXplci9z
YW5pdGl6ZXIueGNjb25maWcKQEAgLTAsMCArMSwxMyBAQAorR0NDX09QVElNSVpBVElPTl9MRVZF
TCA9ICQoR0NDX09QVElNSVpBVElPTl9MRVZFTF8kKENPTkZJR1VSQVRJT04pKTsKK0dDQ19PUFRJ
TUlaQVRJT05fTEVWRUxfRGVidWcgPSAwOworR0NDX09QVElNSVpBVElPTl9MRVZFTF9Qcm9kdWN0
aW9uID0gMTsKK0dDQ19PUFRJTUlaQVRJT05fTEVWRUxfUmVsZWFzZSA9IDE7CisKK1dLX1NBTklU
SVpFUl9PVEhFUl9DRkxBR1NfWUVTID0gLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLWc7CisKK09U
SEVSX0NGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX1NBTklUSVpFUl9PVEhFUl9DRkxBR1NfJChX
S19FTkFCTEVfU0FOSVRJWkVSKSk7CitPVEhFUl9DUExVU1BMVVNGTEFHUyA9ICQoaW5oZXJpdGVk
KSAkKFdLX1NBTklUSVpFUl9PVEhFUl9DRkxBR1NfJChXS19FTkFCTEVfU0FOSVRJWkVSKSk7CisK
Ky8vIFdvcmthcm91bmQgZm9yIHJkYXI6Ly9wcm9ibGVtLzQ5NDk4MDkyCitPVEhFUl9MREZMQUdT
ID0gJChpbmhlcml0ZWQpICQoV0tfTERGTEFHU19TQU5JVElaRVJfJChXS19FTkFCTEVfU0FOSVRJ
WkVSKSk7CitXS19MREZMQUdTX1NBTklUSVpFUl9ZRVMgPSAtV2wsLXJwYXRoLEBleGVjdXRhYmxl
X3BhdGgvRnJhbWV3b3JrczsKZGlmZiAtLWdpdCBhL1Rvb2xzL3Nhbml0aXplci90c2FuLnhjY29u
ZmlnIGIvVG9vbHMvc2FuaXRpemVyL3RzYW4ueGNjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwLi5iZjBhYWU4MDA4NmEKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9zYW5pdGl6ZXIvdHNhbi54Y2NvbmZpZwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlICJzYW5p
dGl6ZXIueGNjb25maWciCisKK0VOQUJMRV9USFJFQURfU0FOSVRJWkVSID0gJChFTkFCTEVfVEhS
RUFEX1NBTklUSVpFUl8kKFdLX1RTQU5fRElTQUxMT1dFRCkpOworRU5BQkxFX1RIUkVBRF9TQU5J
VElaRVJfID0gWUVTOworRU5BQkxFX1RIUkVBRF9TQU5JVElaRVJfTk8gPSBZRVM7CisKK1dLX0VO
QUJMRV9TQU5JVElaRVIgPSAkKEVOQUJMRV9USFJFQURfU0FOSVRJWkVSKTsK
</data>
<flag name="commit-queue"
          id="423795"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408391</attachid>
            <date>2020-09-09 18:35:52 -0700</date>
            <delta_ts>2020-09-13 11:18:41 -0700</delta_ts>
            <desc>WIP Patch v3</desc>
            <filename>bug-216318-enable-TSan-WIP-v3.diff</filename>
            <type>text/plain</type>
            <size>30518</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL01ha2VmaWxlLnNoYXJlZCBiL01ha2VmaWxlLnNoYXJlZAppbmRleCA3ZmU0
NzIwOTcwODMuLjIwMzk0Y2M1NTM2OCAxMDA2NDQKLS0tIGEvTWFrZWZpbGUuc2hhcmVkCisrKyBi
L01ha2VmaWxlLnNoYXJlZApAQCAtNzAsNiArNzAsMTQgQEAgQVNBTl9PUFRJT049LS1uby1hc2Fu
CiBlbmRpZgogZW5kaWYKIAoraWZlcSAoJChUU0FOKSxZRVMpCitUU0FOX09QVElPTj0tLXRzYW4K
K2Vsc2UKK2lmZXEgKCQoVFNBTiksTk8pCitUU0FOX09QVElPTj0tLW5vLXRzYW4KK2VuZGlmCitl
bmRpZgorCiBpZmVxICgkKFdLX0xUT19NT0RFKSxmdWxsKQogV0tfTFRPX09QVElPTj0tLWx0by1t
b2RlPWZ1bGwKIGVsc2UgaWZlcSAoJChXS19MVE9fTU9ERSksdGhpbikKQEAgLTg0LDM3ICs5Miw0
MCBAQCBleHBvcnQgRFNZTVVUSUxfTlVNX1RIUkVBRFMgPSAkKHNoZWxsIHN5c2N0bCAtbiBody5h
Y3RpdmVjcHUpCiAjIFNlZSA8cmRhcjovL3Byb2JsZW0vMTY0NjYxOTY+LgogZXhwb3J0IFBBVEgg
PSAkKHNoZWxsIGdldGNvbmYgUEFUSCkKIAotYWxsOiBzZXRfYXNhbl9jb25maWd1cmF0aW9uCith
bGw6IHNldF9zYW5pdGl6ZXJfY29uZmlndXJhdGlvbgogCSggJChTRVRfQ09MT1JfRElBR05PU1RJ
Q1NfQVJHKTsgeGNvZGVidWlsZCAkKE9USEVSX09QVElPTlMpICQoWENPREVfT1BUSU9OUykgR0ND
X1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUz0nJChHQ0NfUFJFUFJPQ0VTU09SX0FERElUSU9OUykg
JCQoaW5oZXJpdGVkKScgfCAkKE9VVFBVVF9GSUxURVIpICYmIGV4aXQgJCR7UElQRVNUQVRVU1sw
XX0gKQogCiBkZWJ1ZyBkIGRldmVsb3BtZW50IGRldiBkZXZlbG9wOiBmb3JjZQotCSQoU0NSSVBU
U19QQVRIKS9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gLS1kZWJ1ZyAkKEFTQU5fT1BUSU9OKSAk
KFdLX0xUT19PUFRJT04pCisJJChTQ1JJUFRTX1BBVEgpL3NldC13ZWJraXQtY29uZmlndXJhdGlv
biAtLWRlYnVnICQoQVNBTl9PUFRJT04pICQoVFNBTl9PUFRJT04pICQoV0tfTFRPX09QVElPTikK
IAkoICQoU0VUX0NPTE9SX0RJQUdOT1NUSUNTX0FSRyk7IHhjb2RlYnVpbGQgJChPVEhFUl9PUFRJ
T05TKSAkKFhDT0RFX09QVElPTlMpIEdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlM9JyQoR0ND
X1BSRVBST0NFU1NPUl9BRERJVElPTlMpICQkKGluaGVyaXRlZCknIHwgJChPVVRQVVRfRklMVEVS
KSAmJiBleGl0ICQke1BJUEVTVEFUVVNbMF19ICkKIAogcmVsZWFzZSByIGRlcGxveW1lbnQgZGVw
IGRlcGxveTogZm9yY2UKLQkkKFNDUklQVFNfUEFUSCkvc2V0LXdlYmtpdC1jb25maWd1cmF0aW9u
IC0tcmVsZWFzZSAkKEFTQU5fT1BUSU9OKSAkKFdLX0xUT19PUFRJT04pCisJJChTQ1JJUFRTX1BB
VEgpL3NldC13ZWJraXQtY29uZmlndXJhdGlvbiAtLXJlbGVhc2UgJChBU0FOX09QVElPTikgJChU
U0FOX09QVElPTikgJChXS19MVE9fT1BUSU9OKQogCSggJChTRVRfQ09MT1JfRElBR05PU1RJQ1Nf
QVJHKTsgeGNvZGVidWlsZCAkKE9USEVSX09QVElPTlMpICQoWENPREVfT1BUSU9OUykgR0NDX1BS
RVBST0NFU1NPUl9ERUZJTklUSU9OUz0nJChHQ0NfUFJFUFJPQ0VTU09SX0FERElUSU9OUykgJCQo
aW5oZXJpdGVkKScgfCAkKE9VVFBVVF9GSUxURVIpICYmIGV4aXQgJCR7UElQRVNUQVRVU1swXX0g
KQogCiByZWxlYXNlK2Fzc2VydCByYTogZm9yY2UKLQkkKFNDUklQVFNfUEFUSCkvc2V0LXdlYmtp
dC1jb25maWd1cmF0aW9uIC0tcmVsZWFzZSAkKEFTQU5fT1BUSU9OKSAkKFdLX0xUT19PUFRJT04p
CisJJChTQ1JJUFRTX1BBVEgpL3NldC13ZWJraXQtY29uZmlndXJhdGlvbiAtLXJlbGVhc2UgJChB
U0FOX09QVElPTikgJChUU0FOX09QVElPTikgJChXS19MVE9fT1BUSU9OKQogCSggJChTRVRfQ09M
T1JfRElBR05PU1RJQ1NfQVJHKTsgeGNvZGVidWlsZCAkKE9USEVSX09QVElPTlMpICQoWENPREVf
T1BUSU9OUykgR0NDX1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUz0nJChHQ0NfUFJFUFJPQ0VTU09S
X0FERElUSU9OUykgQVNTRVJUX0VOQUJMRUQ9MSAkJChpbmhlcml0ZWQpJyB8ICQoT1VUUFVUX0ZJ
TFRFUikgJiYgZXhpdCAkJHtQSVBFU1RBVFVTWzBdfSApCiAKIHRlc3RpbmcgdDogZm9yY2UKLQkk
KFNDUklQVFNfUEFUSCkvc2V0LXdlYmtpdC1jb25maWd1cmF0aW9uIC0tZGVidWcgJChBU0FOX09Q
VElPTikgJChXS19MVE9fT1BUSU9OKSAtLWZvcmNlLW9wdGltaXphdGlvbi1sZXZlbD1PMworCSQo
U0NSSVBUU19QQVRIKS9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gLS1kZWJ1ZyAkKEFTQU5fT1BU
SU9OKSAkKFRTQU5fT1BUSU9OKSAkKFdLX0xUT19PUFRJT04pIC0tZm9yY2Utb3B0aW1pemF0aW9u
LWxldmVsPU8zCiAJKCAkKFNFVF9DT0xPUl9ESUFHTk9TVElDU19BUkcpOyB4Y29kZWJ1aWxkICQo
T1RIRVJfT1BUSU9OUykgJChYQ09ERV9PUFRJT05TKSBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJ
T05TPSckKEdDQ19QUkVQUk9DRVNTT1JfQURESVRJT05TKSAkJChpbmhlcml0ZWQpJyB8ICQoT1VU
UFVUX0ZJTFRFUikgJiYgZXhpdCAkJHtQSVBFU1RBVFVTWzBdfSApCiAKIGFuYWx5emU6Ci0JJChT
Q1JJUFRTX1BBVEgpL3NldC13ZWJraXQtY29uZmlndXJhdGlvbiAtLWRlYnVnICQoQVNBTl9PUFRJ
T04pICQoV0tfTFRPX09QVElPTikKKwkkKFNDUklQVFNfUEFUSCkvc2V0LXdlYmtpdC1jb25maWd1
cmF0aW9uIC0tZGVidWcgJChBU0FOX09QVElPTikgJChUU0FOX09QVElPTikgJChXS19MVE9fT1BU
SU9OKQogaWZuZGVmIFBBVEhfVE9fU0NBTl9CVUlMRAogCSggJChTRVRfQ09MT1JfRElBR05PU1RJ
Q1NfQVJHKTsgeGNvZGVidWlsZCAkKE9USEVSX09QVElPTlMpICQoWENPREVfT1BUSU9OUykgR0ND
X1BSRVBST0NFU1NPUl9ERUZJTklUSU9OUz0nJChHQ0NfUFJFUFJPQ0VTU09SX0FERElUSU9OUykg
JCQoaW5oZXJpdGVkKScgUlVOX0NMQU5HX1NUQVRJQ19BTkFMWVpFUj1ZRVMgfCAkKE9VVFBVVF9G
SUxURVIpICYmIGV4aXQgJCR7UElQRVNUQVRVU1swXX0gKQogZWxzZQogCSggJChTRVRfQ09MT1Jf
RElBR05PU1RJQ1NfQVJHKTsgJChQQVRIX1RPX1NDQU5fQlVJTEQpIHhjb2RlYnVpbGQgJChPVEhF
Ul9PUFRJT05TKSAkKFhDT0RFX09QVElPTlMpIEdDQ19QUkVQUk9DRVNTT1JfREVGSU5JVElPTlM9
JyQoR0NDX1BSRVBST0NFU1NPUl9BRERJVElPTlMpICQkKGluaGVyaXRlZCknIHwgJChPVVRQVVRf
RklMVEVSKSAmJiBleGl0ICQke1BJUEVTVEFUVVNbMF19ICkKIGVuZGlmCiAKLXNldF9hc2FuX2Nv
bmZpZ3VyYXRpb246CitzZXRfc2FuaXRpemVyX2NvbmZpZ3VyYXRpb246CiBpZm5lcSAoLCQoQVNB
Tl9PUFRJT04pKQogCSQoU0NSSVBUU19QQVRIKS9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gJChB
U0FOX09QVElPTikKIGVuZGlmCitpZm5lcSAoLCQoVFNBTl9PUFRJT04pKQorCSQoU0NSSVBUU19Q
QVRIKS9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gJChUU0FOX09QVElPTikKK2VuZGlmCiAKIGNs
ZWFuOgogCSggJChTRVRfQ09MT1JfRElBR05PU1RJQ1NfQVJHKTsgeGNvZGVidWlsZCAkKE9USEVS
X09QVElPTlMpIC1hbGx0YXJnZXRzIGNsZWFuICQoWENPREVfT1BUSU9OUykgfCAkKE9VVFBVVF9G
SUxURVIpICYmIGV4aXQgJCR7UElQRVNUQVRVU1swXX0gKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjViY2Q3NzM0ZjA4Li44MzE0NjE4MTNjYWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dURi9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzczLDYgKzM3Myw3IEBA
CiAJCTQxM0ZFOEY1MUY4RDJFQUIwMEY2RDdENyAvKiBDYWxsYmFja0FnZ3JlZ2F0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FsbGJhY2tBZ2dyZWdhdG9yLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzMEI0Nzg3MUFBQUFDMUEwMDEyMjNEQSAvKiBTdHJp
bmdDb21tb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RyaW5nQ29tbW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MjdDNUE5MjFGNkQ2QzMwMEE2MTJB
NCAvKiBBU0NJSUNUeXBlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFTQ0lJQ1R5cGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NDY4NTY3MjI1
MDk0RkU4MDA4Q0NBMDUgLyogVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRTYW5pdGl6ZXJTdXBwb3J0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQ2QkE5RUFCMUY0Q0Q2MUUwMDlBMkJCQyAvKiBDb21wbGV0aW9u
SGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wbGV0aW9uSGFu
ZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0NkJFQjZFOTIyRkZEREQ1MDAy
Njk4NjcgLyogUmVmQ291bnRlZC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWZDb3VudGVkLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTBERTM1RjMyMTVCQjAxNTAwQjk3OUM3
IC8qIEV4dGVybmFsU3RyaW5nSW1wbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBFeHRlcm5hbFN0cmluZ0ltcGwuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTI2OSw2ICsxMjcwLDcgQEAKIAkJCQk1MzExQkQ1QjFFQTgyMkY5MDA1MjUyODEgLyog
VGhyZWFkTWVzc2FnZS5jcHAgKi8sCiAJCQkJNTMxMUJENTkxRUE4MUE5NjAwNTI1MjgxIC8qIFRo
cmVhZE1lc3NhZ2UuaCAqLywKIAkJCQlBOEE0NzMzRTE1MUE4MjVCMDA0MTIzRkYgLyogVGhyZWFk
U2FmZVJlZkNvdW50ZWQuaCAqLywKKwkJCQk0NDY4NTY3MjI1MDk0RkU4MDA4Q0NBMDUgLyogVGhy
ZWFkU2FuaXRpemVyU3VwcG9ydC5oICovLAogCQkJCUE4QTQ3MzNGMTUxQTgyNUIwMDQxMjNGRiAv
KiBUaHJlYWRTcGVjaWZpYy5oICovLAogCQkJCTBGNjZCMjg2MURDOTdCQUIwMDRBMUQzRiAvKiBU
aW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuY3BwICovLAogCQkJCTBGNjZCMjg3MURDOTdCQUIwMDRB
MUQzRiAvKiBUaW1lV2l0aER5bmFtaWNDbG9ja1R5cGUuaCAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQK
aW5kZXggYWFjN2YwMDhlOWFhLi5jOTJlNDczMmJjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XVEYvd3RmL0NNYWtlTGlzdHMudHh0CkBA
IC0yNjAsNiArMjYwLDcgQEAgc2V0KFdURl9QVUJMSUNfSEVBREVSUwogICAgIFRocmVhZEdyb3Vw
LmgKICAgICBUaHJlYWRNZXNzYWdlLmgKICAgICBUaHJlYWRTYWZlUmVmQ291bnRlZC5oCisgICAg
VGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oCiAgICAgVGhyZWFkU3BlY2lmaWMuaAogICAgIFRocmVh
ZGluZy5oCiAgICAgVGhyZWFkaW5nUHJpbWl0aXZlcy5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L3d0Zi9Db21waWxlci5oIGIvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaAppbmRleCA1OTY4ZjY5
NzgzY2IuLmVmY2M3NDM5NWJhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ29tcGlsZXIu
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Db21waWxlci5oCkBAIC0xNTYsNiArMTU2LDIwIEBACiAj
ZGVmaW5lIFNVUFBSRVNTX0FTQU4KICNlbmRpZgogCisvKiBUU0FOX0VOQUJMRUQgYW5kIFNVUFBS
RVNTX1RTQU4gKi8KKworI2lmZGVmIF9fU0FOSVRJWkVfVEhSRUFEX18KKyNkZWZpbmUgVFNBTl9F
TkFCTEVEIDEKKyNlbHNlCisjZGVmaW5lIFRTQU5fRU5BQkxFRCBDT01QSUxFUl9IQVNfQ0xBTkdf
RkVBVFVSRSh0aHJlYWRfc2FuaXRpemVyKQorI2VuZGlmCisKKyNpZiBUU0FOX0VOQUJMRUQKKyNk
ZWZpbmUgU1VQUFJFU1NfVFNBTiBfX2F0dHJpYnV0ZV9fKChub19zYW5pdGl6ZV90aHJlYWQpKQor
I2Vsc2UKKyNkZWZpbmUgU1VQUFJFU1NfVFNBTgorI2VuZGlmCisKIC8qID09PT0gQ29tcGlsZXIt
aW5kZXBlbmRlbnQgbWFjcm9zIGZvciB2YXJpb3VzIGNvbXBpbGVyIGZlYXR1cmVzLCBpbiBhbHBo
YWJldGljYWwgb3JkZXIgPT09PSAqLwogCiAvKiBBTFdBWVNfSU5MSU5FICovCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmggYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKaW5kZXggNjBm
ZGFhYmQ5MGRhLi5iZjYyMzgzNjk4OGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2su
aAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9Mb2NrLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29w
eXJpZ2h0IChDKSAyMDE1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAjaW5jbHVk
ZSA8d3RmL0xvY2tBbGdvcml0aG0uaD4KICNpbmNsdWRlIDx3dGYvTG9ja2VyLmg+CiAjaW5jbHVk
ZSA8d3RmL05vbmNvcHlhYmxlLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhbml0aXplclN1cHBv
cnQuaD4KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogc3RydWN0IExvY2tJbnNwZWN0b3I7
CkBAIC01NywxMSArNTgsMTUgQEAgcHVibGljOgogICAgIHsKICAgICAgICAgaWYgKFVOTElLRUxZ
KCFEZWZhdWx0TG9ja0FsZ29yaXRobTo6bG9ja0Zhc3RBc3N1bWluZ1plcm8obV9ieXRlKSkpCiAg
ICAgICAgICAgICBsb2NrU2xvdygpOworICAgICAgICBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQUZU
RVIodGhpcyk7CiAgICAgfQogCiAgICAgYm9vbCB0cnlMb2NrKCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBEZWZhdWx0TG9ja0FsZ29yaXRobTo6dHJ5TG9jayhtX2J5dGUpOworICAgICAgICBib29s
IGRpZExvY2sgPSBEZWZhdWx0TG9ja0FsZ29yaXRobTo6dHJ5TG9jayhtX2J5dGUpOworICAgICAg
ICBpZiAoZGlkTG9jaykKKyAgICAgICAgICAgIFRTQU5fQU5OT1RBVEVfSEFQUEVOU19BRlRFUih0
aGlzKTsKKyAgICAgICAgcmV0dXJuIGRpZExvY2s7CiAgICAgfQogCiAgICAgLy8gTmVlZCB0aGlz
IHZlcnNpb24gZm9yIHN0ZDo6dW5pcXVlX2xvY2suCkBAIC04MCw2ICs4NSw3IEBAIHB1YmxpYzoK
ICAgICAvLyBndWFyYW50ZWVzIHRoYXQgbG9uZyBjcml0aWNhbCBzZWN0aW9ucyBhbHdheXMgZ2V0
IGEgZmFpciBsb2NrLgogICAgIHZvaWQgdW5sb2NrKCkKICAgICB7CisgICAgICAgIFRTQU5fQU5O
T1RBVEVfSEFQUEVOU19CRUZPUkUodGhpcyk7CiAgICAgICAgIGlmIChVTkxJS0VMWSghRGVmYXVs
dExvY2tBbGdvcml0aG06OnVubG9ja0Zhc3RBc3N1bWluZ1plcm8obV9ieXRlKSkpCiAgICAgICAg
ICAgICB1bmxvY2tTbG93KCk7CiAgICAgfQpAQCAtOTEsNiArOTcsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gd2FudC4KICAgICB2b2lkIHVubG9ja0ZhaXJseSgpCiAgICAgeworICAgICAgICBUU0FOX0FO
Tk9UQVRFX0hBUFBFTlNfQkVGT1JFKHRoaXMpOwogICAgICAgICBpZiAoVU5MSUtFTFkoIURlZmF1
bHRMb2NrQWxnb3JpdGhtOjp1bmxvY2tGYXN0QXNzdW1pbmdaZXJvKG1fYnl0ZSkpKQogICAgICAg
ICAgICAgdW5sb2NrRmFpcmx5U2xvdygpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL1RocmVhZFNhbml0aXplclN1cHBvcnQuaCBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNhbml0
aXplclN1cHBvcnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLjQ2
MTQzODM5MjU2NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3RmL1RocmVhZFNhbml0
aXplclN1cHBvcnQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDx3dGYvQ29tcGls
ZXIuaD4KKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIGhlYWRlciB3aGVuIDxyZGFyOi8vcHJvYmxl
bS81NjY1NDc3Mz4gaXMgZml4ZWQuCisKKyNpZiBUU0FOX0VOQUJMRUQKKworV1RGX0VYVEVSTl9D
X0JFR0lOCit2b2lkIEFubm90YXRlSGFwcGVuc0JlZm9yZShjb25zdCBjaGFyKiBmaWxlLCBpbnQg
bGluZSwgY29uc3Qgdm9pZCogYWRkcik7Cit2b2lkIEFubm90YXRlSGFwcGVuc0FmdGVyKGNvbnN0
IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCB2b2lkKiBhZGRyKTsKK1dURl9FWFRFUk5fQ19F
TkQKKworI2RlZmluZSBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKGFkZHIpIFwKKyAgICBk
byB7IFwKKyAgICAgICAgQW5ub3RhdGVIYXBwZW5zQmVmb3JlKF9fRklMRV9fLCBfX0xJTkVfXywg
YWRkcik7IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBUU0FOX0FOTk9UQVRFX0hBUFBFTlNf
QUZURVIoYWRkcikgIFwKKyAgICBkbyB7IFwKKyAgICAgICAgQW5ub3RhdGVIYXBwZW5zQWZ0ZXIo
X19GSUxFX18sIF9fTElORV9fLCBhZGRyKTsgXAorICAgIH0gd2hpbGUgKDApCisKKyNlbHNlCisK
KyNkZWZpbmUgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0JFRk9SRShhZGRyKSAoKHZvaWQpMCkKKyNk
ZWZpbmUgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKGFkZHIpICAoKHZvaWQpMCkKKworI2Vu
ZGlmIC8vIFRTQU5fRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0
cy50eHQgYi9Tb3VyY2UvYm1hbGxvYy9DTWFrZUxpc3RzLnR4dAppbmRleCA4ODE5ZTU2ZTcwOGUu
LjhlZWIyM2RjNjU1NyAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQK
KysrIGIvU291cmNlL2JtYWxsb2MvQ01ha2VMaXN0cy50eHQKQEAgLTQ3LDYgKzQ3LDcgQEAgc2V0
KGJtYWxsb2NfUFVCTElDX0hFQURFUlMKICAgICBibWFsbG9jL0JJbmxpbmUuaAogICAgIGJtYWxs
b2MvQk1hbGxvY2VkLmgKICAgICBibWFsbG9jL0JQbGF0Zm9ybS5oCisgICAgYm1hbGxvYy9CVGhy
ZWFkU2FuaXRpemVyU3VwcG9ydC5oCiAgICAgYm1hbGxvYy9CVk1UYWdzLmgKICAgICBibWFsbG9j
L0JpdHMuaAogICAgIGJtYWxsb2MvQnVsa0RlY29tbWl0LmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9i
bWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9ibWFsbG9j
L2JtYWxsb2MueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlOTZlNjU2ZjhlNzIuLjJh
Yzk2ODIyMmRiOCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMTI3LDYgKzEyNyw3IEBACiAJCTQ0MjZFMjgwMUM4MzhFRTAwMDhF
QjA0MiAvKiBMb2dnaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQ0MjZFMjdFMUM4MzhFRTAwMDhFQjA0MiAvKiBMb2dnaW5nLmNwcCAqLzsgfTsK
IAkJNDQyNkUyODExQzgzOEVFMDAwOEVCMDQyIC8qIExvZ2dpbmcuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAv
KiBMb2dnaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDQyNkUyODMxQzgzOTU0NzAwOEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDQyNkUyODIxQzgzOTU0NzAw
OEVCMDQyIC8qIEJTb2Z0TGlua2luZy5oICovOyB9OworCQk0NDY4NTY3MTI1MDk0RUIxMDA4Q0NB
MDUgLyogQlRocmVhZFNhbml0aXplclN1cHBvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ0Njg1NjcwMjUwOTRFQjEwMDhDQ0EwNSAvKiBCVGhyZWFk
U2FuaXRpemVyU3VwcG9ydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTUyRjQ3MjQ5MjEwQkEzMDIwMEI3MzBCQiAvKiBNZW1vcnlTdGF0dXNTUEku
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRjQ3MjQ4
MjEwQkEyRjUwMEI3MzBCQiAvKiBNZW1vcnlTdGF0dXNTUEkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2NTk5QzVDQzFFQzNGMTU5MDBBMkY3QkIg
LyogQXZhaWxhYmxlTWVtb3J5LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDY1OTlDNUNBMUVDM0YxNTkwMEEyRjdCQiAvKiBBdmFpbGFibGVNZW1vcnku
Y3BwICovOyB9OwogCQk2NTk5QzVDRDFFQzNGMTU5MDBBMkY3QkIgLyogQXZhaWxhYmxlTWVtb3J5
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NTk5QzVD
QjFFQzNGMTU5MDBBMkY3QkIgLyogQXZhaWxhYmxlTWVtb3J5LmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI4NCw2ICsyODUsNyBAQAogCQk0NDI2
RTI3RTFDODM4RUUwMDA4RUIwNDIgLyogTG9nZ2luZy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBMb2dnaW5nLmNwcDsgcGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ0MjZFMjdGMUM4MzhFRTAwMDhFQjA0MiAv
KiBMb2dnaW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExvZ2dpbmcuaDsg
cGF0aCA9IGJtYWxsb2MvTG9nZ2luZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
NDI2RTI4MjFDODM5NTQ3MDA4RUIwNDIgLyogQlNvZnRMaW5raW5nLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgbmFtZSA9IEJTb2Z0TGlua2luZy5oOyBwYXRoID0gYm1hbGxvYy9kYXJ3aW4v
QlNvZnRMaW5raW5nLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0Njg1NjcwMjUw
OTRFQjEwMDhDQ0EwNSAvKiBCVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBCVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oOyBwYXRoID0gYm1h
bGxvYy9CVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MkY0NzI0ODIxMEJBMkY1MDBCNzMwQkIgLyogTWVtb3J5U3RhdHVzU1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE1lbW9yeVN0YXR1c1NQSS5oOyBwYXRoID0gYm1h
bGxvYy9kYXJ3aW4vTWVtb3J5U3RhdHVzU1BJLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTY1OTlDNUNBMUVDM0YxNTkwMEEyRjdCQiAvKiBBdmFpbGFibGVNZW1vcnkuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQXZhaWxhYmxlTWVtb3J5LmNwcDsgcGF0
aCA9IGJtYWxsb2MvQXZhaWxhYmxlTWVtb3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNjU5OUM1Q0IxRUMzRjE1OTAwQTJGN0JCIC8qIEF2YWlsYWJsZU1lbW9yeS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBBdmFpbGFibGVNZW1vcnkuaDsgcGF0aCA9IGJt
YWxsb2MvQXZhaWxhYmxlTWVtb3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01
MjgsNiArNTMwLDcgQEAKIAkJCQkwRjdFQjg0QTFGOTU0MUM2MDBGMUFCQ0IgLyogQml0cy5oICov
LAogCQkJCTBGN0VCODRCMUY5NTQxQzYwMEYxQUJDQiAvKiBCTWFsbG9jZWQuaCAqLywKIAkJCQkx
NEM5MTlDODE4RkNDNTlGMDAyOERCNDMgLyogQlBsYXRmb3JtLmggKi8sCisJCQkJNDQ2ODU2NzAy
NTA5NEVCMTAwOENDQTA1IC8qIEJUaHJlYWRTYW5pdGl6ZXJTdXBwb3J0LmggKi8sCiAJCQkJREU4
QjEzQjIyMUNDNUQ5RjAwQTYzRkNEIC8qIEJWTVRhZ3MuaCAqLywKIAkJCQkwRjc0QjkzRDFGODk3
MTNFMDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmNwcCAqLywKIAkJCQkwRjc0QjkzQzFGODk3MTNF
MDBCOTM1RDMgLyogQ3J5cHRvUmFuZG9tLmggKi8sCkBAIC01OTIsNiArNTk1LDcgQEAKIAkJCQkx
NDQ4QzMwMTE4RjM3NTRDMDA1MDI4MzkgLyogYm1hbGxvYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
MEY3RUI4NEQxRjk1NDFDNzAwRjFBQkNCIC8qIEJNYWxsb2NlZC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMTRDOTE5QzkxOEZDQzU5RjAwMjhEQjQzIC8qIEJQbGF0Zm9ybS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJNDQ2ODU2NzEyNTA5NEVCMTAwOENDQTA1IC8qIEJUaHJlYWRTYW5pdGl6ZXJTdXBwb3J0
LmggaW4gSGVhZGVycyAqLywKIAkJCQk0NDI2RTI4MzFDODM5NTQ3MDA4RUIwNDIgLyogQlNvZnRM
aW5raW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTM5ODg1QjIwNzZFRUI2MDA3NEEyRTcgLyog
QnVsa0RlY29tbWl0LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNERENzg5QzE4RjQ4RDRBMDA5NTA3
MDIgLyogQnVtcEFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
Ym1hbGxvYy9ibWFsbG9jL0JDb21waWxlci5oIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9CQ29t
cGlsZXIuaAppbmRleCBjZGM0N2FjOWEyZWMuLjlmNTJiMzMzNjI3NyAxMDA2NDQKLS0tIGEvU291
cmNlL2JtYWxsb2MvYm1hbGxvYy9CQ29tcGlsZXIuaAorKysgYi9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0JDb21waWxlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTct
MjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM3LDYgKzM3LDcgQEAKICNlbmRpZgogCiAjZGVmaW5lIEJBU0FOX0VO
QUJMRUQgQkNPTVBJTEVSX0hBU19DTEFOR19GRUFUVVJFKGFkZHJlc3Nfc2FuaXRpemVyKQorI2Rl
ZmluZSBCVFNBTl9FTkFCTEVEIEJDT01QSUxFUl9IQVNfQ0xBTkdfRkVBVFVSRSh0aHJlYWRfc2Fu
aXRpemVyKQogCiAvKiBCQ09NUElMRVJfSEFTX0NMQU5HX0RFQ0xTUEVDKCkgLSB3aGV0aGVyIHRo
ZSBjb21waWxlciBzdXBwb3J0cyBhIE1pY3Jvc29mdCBzdHlsZSBfX2RlY2xzcGVjIGF0dHJpYnV0
ZS4gKi8KIC8qIGh0dHBzOi8vY2xhbmcubGx2bS5vcmcvZG9jcy9MYW5ndWFnZUV4dGVuc2lvbnMu
aHRtbCNoYXMtZGVjbHNwZWMtYXR0cmlidXRlICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvYm1hbGxv
Yy9ibWFsbG9jL0JUaHJlYWRTYW5pdGl6ZXJTdXBwb3J0LmggYi9Tb3VyY2UvYm1hbGxvYy9ibWFs
bG9jL0JUaHJlYWRTYW5pdGl6ZXJTdXBwb3J0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwLi41ODdiMGViYTM5ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvYm1h
bGxvYy9ibWFsbG9jL0JUaHJlYWRTYW5pdGl6ZXJTdXBwb3J0LmgKQEAgLTAsMCArMSw1MyBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaW5jbHVkZSAiQkNvbXBpbGVyLmgiCisKKy8vIEZJWE1FOiBSZW1vdmUgdGhpcyBoZWFk
ZXIgd2hlbiA8cmRhcjovL3Byb2JsZW0vNTY2NTQ3NzM+IGlzIGZpeGVkLgorCisjaWYgQlRTQU5f
RU5BQkxFRAorCitleHRlcm4gIkMiIHsKK3ZvaWQgQW5ub3RhdGVIYXBwZW5zQmVmb3JlKGNvbnN0
IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCB2b2lkKiBhZGRyKTsKK3ZvaWQgQW5ub3RhdGVI
YXBwZW5zQWZ0ZXIoY29uc3QgY2hhciogZmlsZSwgaW50IGxpbmUsIGNvbnN0IHZvaWQqIGFkZHIp
OworfQorCisjZGVmaW5lIEJUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKGFkZHIpIFwKKyAg
ICBkbyB7IFwKKyAgICAgICAgQW5ub3RhdGVIYXBwZW5zQmVmb3JlKF9fRklMRV9fLCBfX0xJTkVf
XywgYWRkcik7IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBCVFNBTl9BTk5PVEFURV9IQVBQ
RU5TX0FGVEVSKGFkZHIpICBcCisgICAgZG8geyBcCisgICAgICAgIEFubm90YXRlSGFwcGVuc0Fm
dGVyKF9fRklMRV9fLCBfX0xJTkVfXywgYWRkcik7IFwKKyAgICB9IHdoaWxlICgwKQorCisjZWxz
ZQorCisjZGVmaW5lIEJUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKGFkZHIpICgodm9pZCkw
KQorI2RlZmluZSBCVFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKGFkZHIpICAoKHZvaWQpMCkK
KworI2VuZGlmIC8vIEJUU0FOX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvRW52aXJvbm1lbnQuY3BwIGIvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9FbnZpcm9ubWVu
dC5jcHAKaW5kZXggNmI5YTlhOGU1MzJkLi4zZDA0MTc4NTA0ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvRW52aXJvbm1lbnQuY3BwCisrKyBiL1NvdXJjZS9ibWFsbG9jL2Jt
YWxsb2MvRW52aXJvbm1lbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMTQtMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKQEAgLTk2LDcgKzk2LDYgQEAgc3RhdGljIGJvb2wgaXNTYW5pdGl6
ZXJFbmFibGVkKCkKICNpZiBCT1MoREFSV0lOKQogICAgIHN0YXRpYyBjb25zdCBjaGFyIHNhbml0
aXplclByZWZpeFtdID0gIi9saWJjbGFuZ19ydC4iOwogICAgIHN0YXRpYyBjb25zdCBjaGFyIGFz
YW5OYW1lW10gPSAiYXNhbl8iOwotICAgIHN0YXRpYyBjb25zdCBjaGFyIHRzYW5OYW1lW10gPSAi
dHNhbl8iOwogICAgIHVpbnQzMl90IGltYWdlQ291bnQgPSBfZHlsZF9pbWFnZV9jb3VudCgpOwog
ICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBpbWFnZUNvdW50OyArK2kpIHsKICAgICAgICAg
Y29uc3QgY2hhciogaW1hZ2VOYW1lID0gX2R5bGRfZ2V0X2ltYWdlX25hbWUoaSk7CkBAIC0xMDYs
OCArMTA1LDYgQEAgc3RhdGljIGJvb2wgaXNTYW5pdGl6ZXJFbmFibGVkKCkKICAgICAgICAgICAg
IGNvbnN0IGNoYXIqIHNhbml0aXplck5hbWUgPSBzICsgc2l6ZW9mKHNhbml0aXplclByZWZpeCkg
LSAxOwogICAgICAgICAgICAgaWYgKCFzdHJuY21wKHNhbml0aXplck5hbWUsIGFzYW5OYW1lLCBz
aXplb2YoYXNhbk5hbWUpIC0gMSkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgICAgICBpZiAoIXN0cm5jbXAoc2FuaXRpemVyTmFtZSwgdHNhbk5hbWUsIHNpemVvZih0c2Fu
TmFtZSkgLSAxKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQogICAg
IH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMTUsNyArMTEyLDcgQEAgc3RhdGljIGJvb2wgaXNT
YW5pdGl6ZXJFbmFibGVkKCkKICAgICB2b2lkKiBoYW5kbGUgPSBkbG9wZW4obnVsbHB0ciwgUlRM
RF9OT1cpOwogICAgIGlmICghaGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgYm9v
bCByZXN1bHQgPSAhIWRsc3ltKGhhbmRsZSwgIl9fYXNhbl9pbml0IikgfHwgISFkbHN5bShoYW5k
bGUsICJfX3RzYW5faW5pdCIpOworICAgIGJvb2wgcmVzdWx0ID0gISFkbHN5bShoYW5kbGUsICJf
X2FzYW5faW5pdCIpOwogICAgIGRsY2xvc2UoaGFuZGxlKTsKICAgICByZXR1cm4gcmVzdWx0Owog
I2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9ibWFsbG9jL2JtYWxsb2MvTXV0ZXguaCBiL1NvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvTXV0ZXguaAppbmRleCBmNGNjMmFhNDExYzkuLjljN2U4NWEwODFm
OCAxMDA2NDQKLS0tIGEvU291cmNlL2JtYWxsb2MvYm1hbGxvYy9NdXRleC5oCisrKyBiL1NvdXJj
ZS9ibWFsbG9jL2JtYWxsb2MvTXV0ZXguaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmln
aHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0
IChDKSAyMDE0LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJp
Z2h0IChDKSAyMDE4IFl1c3VrZSBTdXp1a2kgPHV0YXRhbmUudGVhQGdtYWlsLmNvbT4uCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CkBAIC0yNyw2ICsyNyw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUg
IkJBc3NlcnQuaCIKKyNpbmNsdWRlICJCVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oIgogI2luY2x1
ZGUgPGF0b21pYz4KICNpbmNsdWRlIDxtdXRleD4KICNpbmNsdWRlIDx0aHJlYWQ+CkBAIC03OCw3
ICs3OSwxMCBAQCBzdGF0aWMgaW5saW5lIHZvaWQgd2FpdFVudGlsRmFsc2UoCiAKIGlubGluZSBi
b29sIE11dGV4Ojp0cnlfbG9jaygpCiB7Ci0gICAgcmV0dXJuICFtX2ZsYWcuZXhjaGFuZ2UodHJ1
ZSwgc3RkOjptZW1vcnlfb3JkZXJfYWNxdWlyZSk7CisgICAgYm9vbCBkaWRMb2NrID0gIW1fZmxh
Zy5leGNoYW5nZSh0cnVlLCBzdGQ6Om1lbW9yeV9vcmRlcl9hY3F1aXJlKTsKKyAgICBpZiAoZGlk
TG9jaykKKyAgICAgICAgQlRTQU5fQU5OT1RBVEVfSEFQUEVOU19BRlRFUih0aGlzKTsKKyAgICBy
ZXR1cm4gZGlkTG9jazsKIH0KIAogaW5saW5lIHZvaWQgTXV0ZXg6OmxvY2soKQpAQCAtODksNiAr
OTMsNyBAQCBpbmxpbmUgdm9pZCBNdXRleDo6bG9jaygpCiAKIGlubGluZSB2b2lkIE11dGV4Ojp1
bmxvY2soKQogeworICAgIEJUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKHRoaXMpOwogICAg
IG1fZmxhZy5zdG9yZShmYWxzZSwgc3RkOjptZW1vcnlfb3JkZXJfcmVsZWFzZSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvc2V0LXdlYmtpdC1jb25maWd1cmF0aW9uIGIvVG9vbHMv
U2NyaXB0cy9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24KaW5kZXggNzAyYjAxNmYzNWI4Li4wY2Ew
NjM0ZTM2OGMgMTAwNzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvc2V0LXdlYmtpdC1jb25maWd1cmF0
aW9uCisrKyBiL1Rvb2xzL1NjcmlwdHMvc2V0LXdlYmtpdC1jb25maWd1cmF0aW9uCkBAIC0xLDYg
KzEsNiBAQAogIyEvdXNyL2Jpbi9lbnYgcGVybAogCi0jIENvcHlyaWdodCAoQykgMjAwNS0yMDE5
IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNS0y
MDIwIEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogdXNlIHN0cmljdDsKIHVzZSB3YXJuaW5nczsK
K3VzZSBGaWxlOjpTcGVjOwogdXNlIEZpbmRCaW47CiB1c2UgbGliICRGaW5kQmluOjpCaW47CiB1
c2Ugd2Via2l0ZGlyczsKQEAgLTM5LDYgKzQwLDcgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0
aW9uc10KICAgLS02NC1iaXQgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXQgdGhlIGRlZmF1
bHQgYXJjaGl0ZWN0dXJlIHRvIDY0LWJpdAogICAtLVtuby1dYXNhbiAgICAgICAgICAgICAgICAg
ICAgICAgIEVuYWJsZSBvciBkaXNhYmxlIGNsYW5nIGFkZHJlc3Mgc2FuaXRpemVyCiAgIC0tW25v
LV1jb3ZlcmFnZSAgICAgICAgICAgICAgICAgICAgRW5hYmxlIG9yIGRpc2FibGUgTExWTSBTb3Vy
Y2UtYmFzZWQgQ29kZSBDb3ZlcmFnZQorICAtLVtuby1ddHNhbiAgICAgICAgICAgICAgICAgICAg
ICAgIEVuYWJsZSBvciBkaXNhYmxlIGNsYW5nIHRocmVhZCBzYW5pdGl6ZXIKICAgLS1mb3JjZS1v
cHRpbWl6YXRpb24tbGV2ZWw9PGxldmVsPiBPcHRpbWl6YXRpb24gbGV2ZWw6IE8zLCBPMiwgTzEs
IE8wLCBPcywgT2Zhc3QsIE9nLCBvciBub25lCiAgIC0tbHRvLW1vZGU9PG1vZGU+ICAgICAgICAg
ICAgICAgICAgU2V0IExUTyBtb2RlOiBmdWxsLCB0aGluLCBvciBub25lCiAgIC0tZGVidWcgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgU2V0IHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24gdG8g
ZGVidWcKQEAgLTUyLDYgKzU0LDggQEAgbXkgJGVuYWJsZUFTQU4gPSBjaGVja0ZvckFyZ3VtZW50
QW5kUmVtb3ZlRnJvbUFSR1YoIi0tYXNhbiIpOwogbXkgJGRpc2FibGVBU0FOID0gY2hlY2tGb3JB
cmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLW5vLWFzYW4iKTsKIG15ICRlbmFibGVDb3ZlcmFn
ZSA9IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS1jb3ZlcmFnZSIpOwogbXkg
JGRpc2FibGVDb3ZlcmFnZSA9IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS1u
by1jb3ZlcmFnZSIpOworbXkgJGVuYWJsZVRTQU4gPSBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3Zl
RnJvbUFSR1YoIi0tdHNhbiIpOworbXkgJGRpc2FibGVUU0FOID0gY2hlY2tGb3JBcmd1bWVudEFu
ZFJlbW92ZUZyb21BUkdWKCItLW5vLXRzYW4iKTsKIG15ICRsdG9Nb2RlOwogaWYgKCFjaGVja0Zv
ckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1ZHZXR0aW5nVmFsdWUoIi0tbHRvLW1vZGUiLCBcJGx0
b01vZGUpKSB7CiAgICAgJGx0b01vZGU9IiI7CkBAIC04MCwxNSArODQsMTggQEAgaWYgKGNoZWNr
Rm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS1yZXNldCIpKSB7CiAgICAgdW5saW5rICIk
YmFzZVByb2R1Y3REaXIvQ29uZmlndXJhdGlvbiI7CiAgICAgdW5saW5rICIkYmFzZVByb2R1Y3RE
aXIvQXJjaGl0ZWN0dXJlIjsKICAgICB1bmxpbmsgIiRiYXNlUHJvZHVjdERpci9BU2FuIjsKLSAg
ICB1bmxpbmsgIiRiYXNlUHJvZHVjdERpci9Gb3JjZU9wdGltaXphdGlvbkxldmVsIjsKICAgICB1
bmxpbmsgIiRiYXNlUHJvZHVjdERpci9Db3ZlcmFnZSI7CisgICAgdW5saW5rIEZpbGU6OlNwZWMt
PmNhdGZpbGUoJGJhc2VQcm9kdWN0RGlyLCAiVFNhbiIpOworICAgIHVubGluayAiJGJhc2VQcm9k
dWN0RGlyL0ZvcmNlT3B0aW1pemF0aW9uTGV2ZWwiOwogICAgIHVubGluayAiJGJhc2VQcm9kdWN0
RGlyL0xUTyI7CiAgICAgZXhpdCAwOwogfQogCi1pZiAoKCEkY29uZmlndXJhdGlvbiAmJiAhJGFy
Y2hpdGVjdHVyZSAmJiAhJGVuYWJsZUFTQU4gJiYgISRkaXNhYmxlQVNBTiAmJiAhJGVuYWJsZUNv
dmVyYWdlICYmICEkZGlzYWJsZUNvdmVyYWdlICYmICEkbHRvTW9kZSAmJiAhJGZvcmNlT3B0aW1p
emF0aW9uTGV2ZWwpCitpZiAoKCEkY29uZmlndXJhdGlvbiAmJiAhJGFyY2hpdGVjdHVyZSAmJiAh
JGVuYWJsZUFTQU4gJiYgISRkaXNhYmxlQVNBTiAmJiAhJGVuYWJsZUNvdmVyYWdlICYmICEkZGlz
YWJsZUNvdmVyYWdlICYmICEkZW5hYmxlVFNBTiAmJiAhJGRpc2FibGVUU0FOICYmICEkbHRvTW9k
ZSAmJiAhJGZvcmNlT3B0aW1pemF0aW9uTGV2ZWwpCiAgICAgfHwgKCRlbmFibGVBU0FOICYmICRk
aXNhYmxlQVNBTikKLSAgICB8fCAoJGVuYWJsZUNvdmVyYWdlICYmICRkaXNhYmxlQ292ZXJhZ2Up
KSB7CisgICAgfHwgKCRlbmFibGVDb3ZlcmFnZSAmJiAkZGlzYWJsZUNvdmVyYWdlKQorICAgIHx8
ICgkZW5hYmxlVFNBTiAmJiAkZGlzYWJsZVRTQU4pCisgICAgKSB7CiAgICAgcHJpbnQgU1RERVJS
ICR1c2FnZTsKICAgICBleGl0IDE7CiB9CkBAIC0xNDMsNiArMTUwLDE0IEBAIGlmICgkZW5hYmxl
Q292ZXJhZ2UpIHsKICAgICB1bmxpbmsgIiRiYXNlUHJvZHVjdERpci9Db3ZlcmFnZSI7CiB9CiAK
K2lmICgkZW5hYmxlVFNBTikgeworICAgIG9wZW4gVFNBTiwgIj4iLCBGaWxlOjpTcGVjLT5jYXRm
aWxlKCRiYXNlUHJvZHVjdERpciwgIlRTYW4iKSBvciBkaWU7CisgICAgcHJpbnQgVFNBTiAiWUVT
IjsKKyAgICBjbG9zZSBUU0FOOworfSBlbHNpZiAoJGRpc2FibGVUU0FOKSB7CisgICAgdW5saW5r
IEZpbGU6OlNwZWMtPmNhdGZpbGUoJGJhc2VQcm9kdWN0RGlyLCAiVFNhbiIpOworfQorCiBpZiAo
JGZvcmNlT3B0aW1pemF0aW9uTGV2ZWwgJiYgJGZvcmNlT3B0aW1pemF0aW9uTGV2ZWwgZXEgIm5v
bmUiKSB7CiAgICAgdW5saW5rICIkYmFzZVByb2R1Y3REaXIvRm9yY2VPcHRpbWl6YXRpb25MZXZl
bCI7CiB9IGVsc2lmICgkZm9yY2VPcHRpbWl6YXRpb25MZXZlbCkgewpkaWZmIC0tZ2l0IGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCmlu
ZGV4IGFkY2RkZTEyNGQ0Mi4uNGI2ZjYyNTNhMTE5IDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRz
L3dlYmtpdGRpcnMucG0KKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCkBAIC0xLDQg
KzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAxMSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRl
ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAyMDEzIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKS4KQEAgLTEzMCw2ICsxMzAsNyBAQCBv
dXIgQEVYUE9SVF9PSzsKIG15ICRhcmNoaXRlY3R1cmU7CiBteSAlbmF0aXZlQXJjaGl0ZWN0dXJl
TWFwID0gKCk7CiBteSAkYXNhbklzRW5hYmxlZDsKK215ICR0c2FuSXNFbmFibGVkOwogbXkgJGZv
cmNlT3B0aW1pemF0aW9uTGV2ZWw7CiBteSAkY292ZXJhZ2VJc0VuYWJsZWQ7CiBteSAkbHRvTW9k
ZTsKQEAgLTQ0Niw2ICs0NDcsMjIgQEAgc3ViIGRldGVybWluZUFTYW5Jc0VuYWJsZWQKICAgICB9
CiB9CiAKK3N1YiBkZXRlcm1pbmVUU2FuSXNFbmFibGVkCit7CisgICAgcmV0dXJuIGlmIGRlZmlu
ZWQgJHRzYW5Jc0VuYWJsZWQ7CisgICAgZGV0ZXJtaW5lQmFzZVByb2R1Y3REaXIoKTsKKworICAg
ICR0c2FuSXNFbmFibGVkID0gMDsKKyAgICBteSAkdHNhbkNvbmZpZ3VyYXRpb25WYWx1ZTsKKwor
ICAgIGlmIChvcGVuIFRTQU4sICIkYmFzZVByb2R1Y3REaXIvVFNhbiIpIHsKKyAgICAgICAgJHRz
YW5Db25maWd1cmF0aW9uVmFsdWUgPSA8VFNBTj47CisgICAgICAgIGNsb3NlIFRTQU47CisgICAg
ICAgIGNob21wICR0c2FuQ29uZmlndXJhdGlvblZhbHVlOworICAgICAgICAkdHNhbklzRW5hYmxl
ZCA9IDEgaWYgJHRzYW5Db25maWd1cmF0aW9uVmFsdWUgZXEgIllFUyI7CisgICAgfQorfQorCiBz
dWIgZGV0ZXJtaW5lRm9yY2VPcHRpbWl6YXRpb25MZXZlbAogewogICAgIHJldHVybiBpZiBkZWZp
bmVkICRmb3JjZU9wdGltaXphdGlvbkxldmVsOwpAQCAtODg1LDYgKzkwMiwxMiBAQCBzdWIgYXNh
bklzRW5hYmxlZCgpCiAgICAgcmV0dXJuICRhc2FuSXNFbmFibGVkOwogfQogCitzdWIgdHNhbklz
RW5hYmxlZCgpCit7CisgICAgZGV0ZXJtaW5lVFNhbklzRW5hYmxlZCgpOworICAgIHJldHVybiAk
dHNhbklzRW5hYmxlZDsKK30KKwogc3ViIGZvcmNlT3B0aW1pemF0aW9uTGV2ZWwoKQogewogICAg
IGRldGVybWluZUZvcmNlT3B0aW1pemF0aW9uTGV2ZWwoKTsKQEAgLTkzOSw2ICs5NjIsNyBAQCBz
dWIgWGNvZGVPcHRpb25zCiAgICAgZGV0ZXJtaW5lQ29uZmlndXJhdGlvbigpOwogICAgIGRldGVy
bWluZUFyY2hpdGVjdHVyZSgpOwogICAgIGRldGVybWluZUFTYW5Jc0VuYWJsZWQoKTsKKyAgICBk
ZXRlcm1pbmVUU2FuSXNFbmFibGVkKCk7CiAgICAgZGV0ZXJtaW5lRm9yY2VPcHRpbWl6YXRpb25M
ZXZlbCgpOwogICAgIGRldGVybWluZUNvdmVyYWdlSXNFbmFibGVkKCk7CiAgICAgZGV0ZXJtaW5l
TFRPTW9kZSgpOwpAQCAtOTQ4LDcgKzk3MiwxMyBAQCBzdWIgWGNvZGVPcHRpb25zCiAgICAgcHVz
aCBAb3B0aW9ucywgIi1Vc2VTYW5pdGl6ZWRCdWlsZFN5c3RlbUVudmlyb25tZW50PVlFUyI7CiAg
ICAgcHVzaCBAb3B0aW9ucywgIi1TaG93QnVpbGRPcGVyYXRpb25EdXJhdGlvbj1ZRVMiOwogICAg
IHB1c2ggQG9wdGlvbnMsICgiLWNvbmZpZ3VyYXRpb24iLCAkY29uZmlndXJhdGlvbik7Ci0gICAg
cHVzaCBAb3B0aW9ucywgKCIteGNjb25maWciLCBzb3VyY2VEaXIoKSAuICIvVG9vbHMvYXNhbi9h
c2FuLnhjY29uZmlnIiwgIkFTQU5fSUdOT1JFPSIgLiBzb3VyY2VEaXIoKSAuICIvVG9vbHMvYXNh
bi93ZWJraXQtYXNhbi1pZ25vcmUudHh0IikgaWYgJGFzYW5Jc0VuYWJsZWQ7CisgICAgaWYgKCRh
c2FuSXNFbmFibGVkKSB7CisgICAgICAgIHB1c2ggQG9wdGlvbnMsICgiLXhjY29uZmlnIiwgRmls
ZTo6U3BlYy0+Y2F0ZmlsZShzb3VyY2VEaXIoKSwgIlRvb2xzIiwgInNhbml0aXplciIsICJhc2Fu
LnhjY29uZmlnIikpOworICAgICAgICBteSAkYXNhbklnbm9yZVBhdGggPSBGaWxlOjpTcGVjLT5j
YXRmaWxlKHNvdXJjZURpcigpLCAiVG9vbHMiLCAic2FuaXRpemVyIiwgIndlYmtpdC1hc2FuLWln
bm9yZS50eHQiKTsKKyAgICAgICAgcHVzaCBAb3B0aW9ucywgIkFTQU5fSUdOT1JFPSRhc2FuSWdu
b3JlUGF0aCIgaWYgLWUgJGFzYW5JZ25vcmVQYXRoOworICAgIH0gZWxzaWYgKCR0c2FuSXNFbmFi
bGVkKSB7CisgICAgICAgIHB1c2ggQG9wdGlvbnMsICgiLXhjY29uZmlnIiwgRmlsZTo6U3BlYy0+
Y2F0ZmlsZShzb3VyY2VEaXIoKSwgIlRvb2xzIiwgInNhbml0aXplciIsICJ0c2FuLnhjY29uZmln
IikpOworICAgIH0KICAgICBwdXNoIEBvcHRpb25zLCAoIi14Y2NvbmZpZyIsIHNvdXJjZURpcigp
IC4gIi9Ub29scy9jb3ZlcmFnZS9jb3ZlcmFnZS54Y2NvbmZpZyIpIGlmICRjb3ZlcmFnZUlzRW5h
YmxlZDsKICAgICBwdXNoIEBvcHRpb25zLCAoIkdDQ19PUFRJTUlaQVRJT05fTEVWRUw9JGZvcmNl
T3B0aW1pemF0aW9uTGV2ZWwiKSBpZiAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbDsKICAgICBwdXNo
IEBvcHRpb25zLCAiV0tfTFRPX01PREU9JGx0b01vZGUiIGlmICRsdG9Nb2RlOwpAQCAtOTYwLDcg
Kzk5MCw4IEBAIHN1YiBYY29kZU9wdGlvbnMKICAgICAjIHRyZWF0cyBlcnJvcnMgYXMgbm9uLWZh
dGFsIHdoZW4gaXQgZW5jb3VudGVycyBtaXNzaW5nIHN5bWJvbHMgcmVsYXRlZCB0byBjb3ZlcmFn
ZS4KICAgICBhcHBlbmRUb0Vudmlyb25tZW50VmFyaWFibGVMaXN0KCJXRUJLSVRfQ09WRVJBR0Vf
QlVJTEQiLCAiMSIpIGlmICRjb3ZlcmFnZUlzRW5hYmxlZDsKIAotICAgIGRpZSAiY2Fubm90IGVu
YWJsZSBib3RoIEFTQU4gYW5kIENvdmVyYWdlIGF0IHRoaXMgdGltZVxuIiBpZiAkY292ZXJhZ2VJ
c0VuYWJsZWQgJiYgJGFzYW5Jc0VuYWJsZWQ7CisgICAgZGllICJDYW5ub3QgZW5hYmxlIGJvdGgg
QVNBTiBhbmQgVFNBTiBhdCB0aGUgc2FtZSB0aW1lXG4iIGlmICRhc2FuSXNFbmFibGVkICYmICR0
c2FuSXNFbmFibGVkOworICAgIGRpZSAiQ2Fubm90IGVuYWJsZSBib3RoIChBU0FOIG9yIFRTQU4p
IGFuZCBDb3ZlcmFnZSBhdCB0aGlzIHRpbWVcbiIgaWYgJGNvdmVyYWdlSXNFbmFibGVkICYmICgk
YXNhbklzRW5hYmxlZCB8fCAkdHNhbklzRW5hYmxlZCk7CiAKICAgICBpZiAod2lsbFVzZUlPU0Rl
dmljZVNESygpIHx8IHdpbGxVc2VXYXRjaERldmljZVNESygpIHx8IHdpbGxVc2VBcHBsZVRWRGV2
aWNlU0RLKCkpIHsKICAgICAgICAgcHVzaCBAb3B0aW9ucywgIkVOQUJMRV9CSVRDT0RFPU5PIjsK
QEAgLTI0MzMsNiArMjQ2NCw3IEBAIHN1YiBnZW5lcmF0ZUJ1aWxkU3lzdGVtRnJvbUNNYWtlUHJv
amVjdAogICAgIH0KIAogICAgIHB1c2ggQGFyZ3MsICItREVOQUJMRV9TQU5JVElaRVJTPWFkZHJl
c3MiIGlmIGFzYW5Jc0VuYWJsZWQoKTsKKyAgICBwdXNoIEBhcmdzLCAiLURFTkFCTEVfU0FOSVRJ
WkVSUz10aHJlYWQiIGlmIHRzYW5Jc0VuYWJsZWQoKTsKIAogICAgIHB1c2ggQGFyZ3MsICItRExU
T19NT0RFPSRsdG9Nb2RlIiBpZiBsdG9Nb2RlKCk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL2FzYW4v
YXNhbi54Y2NvbmZpZyBiL1Rvb2xzL2FzYW4vYXNhbi54Y2NvbmZpZwpkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggYzE0OTk1NjUzODE5Li4wMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvYXNh
bi9hc2FuLnhjY29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAsMCBAQAotR0NDX09QVElN
SVpBVElPTl9MRVZFTCA9ICQoR0NDX09QVElNSVpBVElPTl9MRVZFTF8kKENPTkZJR1VSQVRJT04p
KTsKLUdDQ19PUFRJTUlaQVRJT05fTEVWRUxfRGVidWcgPSAwOwotR0NDX09QVElNSVpBVElPTl9M
RVZFTF9Qcm9kdWN0aW9uID0gMTsKLUdDQ19PUFRJTUlaQVRJT05fTEVWRUxfUmVsZWFzZSA9IDE7
Ci0KLUVOQUJMRV9BRERSRVNTX1NBTklUSVpFUiA9ICQoRU5BQkxFX0FERFJFU1NfU0FOSVRJWkVS
XyQoV0tfQVNBTl9ESVNBTExPV0VEKSk7Ci1FTkFCTEVfQUREUkVTU19TQU5JVElaRVJfID0gWUVT
OwotRU5BQkxFX0FERFJFU1NfU0FOSVRJWkVSX05PID0gWUVTOwotCi1PVEhFUl9DRkxBR1MgPSAk
KGluaGVyaXRlZCkgJChXS19BU0FOX09USEVSX0NGTEFHU18kKEVOQUJMRV9BRERSRVNTX1NBTklU
SVpFUikpOwotT1RIRVJfQ1BMVVNQTFVTRkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19BU0FOX09U
SEVSX0NGTEFHU18kKEVOQUJMRV9BRERSRVNTX1NBTklUSVpFUikpOwotV0tfQVNBTl9PVEhFUl9D
RkxBR1NfWUVTID0gLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLWc7Ci0KLS8vIFdvcmthcm91bmQg
Zm9yIHJkYXI6Ly9wcm9ibGVtLzQ5NDk4MDkyCi1PVEhFUl9MREZMQUdTID0gJChpbmhlcml0ZWQp
ICQoV0tfTERGTEFHU19BU0FOXyQoRU5BQkxFX0FERFJFU1NfU0FOSVRJWkVSKSk7Ci1XS19MREZM
QUdTX0FTQU5fWUVTID0gLVdsLC1ycGF0aCxAZXhlY3V0YWJsZV9wYXRoL0ZyYW1ld29ya3M7CmRp
ZmYgLS1naXQgYS9Ub29scy9zYW5pdGl6ZXIvYXNhbi54Y2NvbmZpZyBiL1Rvb2xzL3Nhbml0aXpl
ci9hc2FuLnhjY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4u
NGIwNzIwMzM1YjlkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvc2FuaXRpemVyL2FzYW4ueGNj
b25maWcKQEAgLTAsMCArMSw3IEBACisjaW5jbHVkZSAic2FuaXRpemVyLnhjY29uZmlnIgorCitF
TkFCTEVfQUREUkVTU19TQU5JVElaRVIgPSAkKEVOQUJMRV9BRERSRVNTX1NBTklUSVpFUl8kKFdL
X0FTQU5fRElTQUxMT1dFRCkpOworRU5BQkxFX0FERFJFU1NfU0FOSVRJWkVSXyA9IFlFUzsKK0VO
QUJMRV9BRERSRVNTX1NBTklUSVpFUl9OTyA9IFlFUzsKKworV0tfRU5BQkxFX1NBTklUSVpFUiA9
ICQoRU5BQkxFX0FERFJFU1NfU0FOSVRJWkVSKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL3Nhbml0aXpl
ci9zYW5pdGl6ZXIueGNjb25maWcgYi9Ub29scy9zYW5pdGl6ZXIvc2FuaXRpemVyLnhjY29uZmln
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMC4uOThjMDQ1MTIzNmE5Ci0t
LSAvZGV2L251bGwKKysrIGIvVG9vbHMvc2FuaXRpemVyL3Nhbml0aXplci54Y2NvbmZpZwpAQCAt
MCwwICsxLDEzIEBACitHQ0NfT1BUSU1JWkFUSU9OX0xFVkVMID0gJChHQ0NfT1BUSU1JWkFUSU9O
X0xFVkVMXyQoQ09ORklHVVJBVElPTikpOworR0NDX09QVElNSVpBVElPTl9MRVZFTF9EZWJ1ZyA9
IDA7CitHQ0NfT1BUSU1JWkFUSU9OX0xFVkVMX1Byb2R1Y3Rpb24gPSAxOworR0NDX09QVElNSVpB
VElPTl9MRVZFTF9SZWxlYXNlID0gMTsKKworV0tfU0FOSVRJWkVSX09USEVSX0NGTEFHU19ZRVMg
PSAtZm5vLW9taXQtZnJhbWUtcG9pbnRlciAtZzsKKworT1RIRVJfQ0ZMQUdTID0gJChpbmhlcml0
ZWQpICQoV0tfU0FOSVRJWkVSX09USEVSX0NGTEFHU18kKFdLX0VOQUJMRV9TQU5JVElaRVIpKTsK
K09USEVSX0NQTFVTUExVU0ZMQUdTID0gJChpbmhlcml0ZWQpICQoV0tfU0FOSVRJWkVSX09USEVS
X0NGTEFHU18kKFdLX0VOQUJMRV9TQU5JVElaRVIpKTsKKworLy8gV29ya2Fyb3VuZCBmb3IgcmRh
cjovL3Byb2JsZW0vNDk0OTgwOTIKK09USEVSX0xERkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19M
REZMQUdTX1NBTklUSVpFUl8kKFdLX0VOQUJMRV9TQU5JVElaRVIpKTsKK1dLX0xERkxBR1NfU0FO
SVRJWkVSX1lFUyA9IC1XbCwtcnBhdGgsQGV4ZWN1dGFibGVfcGF0aC9GcmFtZXdvcmtzOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvc2FuaXRpemVyL3RzYW4ueGNjb25maWcgYi9Ub29scy9zYW5pdGl6ZXIv
dHNhbi54Y2NvbmZpZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJm
MGFhZTgwMDg2YQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3Nhbml0aXplci90c2FuLnhjY29u
ZmlnCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUgInNhbml0aXplci54Y2NvbmZpZyIKKworRU5B
QkxFX1RIUkVBRF9TQU5JVElaRVIgPSAkKEVOQUJMRV9USFJFQURfU0FOSVRJWkVSXyQoV0tfVFNB
Tl9ESVNBTExPV0VEKSk7CitFTkFCTEVfVEhSRUFEX1NBTklUSVpFUl8gPSBZRVM7CitFTkFCTEVf
VEhSRUFEX1NBTklUSVpFUl9OTyA9IFlFUzsKKworV0tfRU5BQkxFX1NBTklUSVpFUiA9ICQoRU5B
QkxFX1RIUkVBRF9TQU5JVElaRVIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408656</attachid>
            <date>2020-09-13 11:18:43 -0700</date>
            <delta_ts>2020-09-15 19:53:42 -0700</delta_ts>
            <desc>Patch v4</desc>
            <filename>bug-216318-20200913111847.patch</filename>
            <type>text/plain</type>
            <size>24898</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2OTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFlN2MzMjMyY2QzMjFjNDIxNzc3ZTgy
NTRkZGFlYmM0NzFiMGFhZWMuLmFhMGY5ZTRlMjY5MDg2MDg0N2Y1NmM1NDI4ZjgyZTcwNThmYjBh
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAKKzIwMjAtMDktMTMgIERhdmlkIEtpbHplciAgPGRka2ls
emVyQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJLaXQgc2hvdWxkIHN1cHBvcnQgYnVpbGRpbmcg
d2l0aCBjbGFuZyBUaHJlYWRTYW5pdGl6ZXIgZW5hYmxlZAorICAgICAgICA8aHR0cHM6Ly93ZWJr
aXQub3JnL2IvMjE2MzE4PgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE2MTU3Mjk+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBk
b2Vzbid0IGF0dGVtcHQgdG8gcmVzb2x2ZSBldmVyeSBwb3RlbnRpYWwgZmFsc2UKKyAgICAgICAg
cG9zaXRpdmUsIGJ1dCBtYWtlcyBpdCBlYXN5IHRvIGJ1aWxkIFdlYktpdCB3aXRoIFRTYW4gZW5h
YmxlZC4KKworICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgLSBBZGQgVGhyZWFkU2FuaXRpemVyU3Vw
cG9ydC5oIHRvIHRoZSBwcm9qZWN0LgorCisgICAgICAgICogd3RmL0NvbXBpbGVyLmg6CisgICAg
ICAgIC0gRGVmaW5lIFRTQU5fRU5BQkxFRCBhbmQgU1VQUFJFU1NfVFNBTiBtYWNyb3MuCisKKyAg
ICAgICAgKiB3dGYvTG9ja2VyLmg6CisgICAgICAgIChXVEY6OkxvY2tlcjo6fkxvY2tlcik6Cisg
ICAgICAgIChXVEY6OkxvY2tlcjo6dW5sb2NrRWFybHkpOgorICAgICAgICAoV1RGOjpMb2NrZXI6
Om9wZXJhdG9yPSk6CisgICAgICAgIChXVEY6OkxvY2tlcjo6bG9jayk6CisgICAgICAgIC0gSW5z
dHJ1bWVudCBsb2NrL3VubG9jayBtZXRob2RzIGZvciBUaHJlYWRTYW5pdGl6ZXIuCisKKyAgICAg
ICAgKiB3dGYvVGhyZWFkU2FuaXRpemVyU3VwcG9ydC5oOiBBZGQuCisgICAgICAgIChBbm5vdGF0
ZUhhcHBlbnNCZWZvcmUpOgorICAgICAgICAoQW5ub3RhdGVIYXBwZW5zQWZ0ZXIpOgorICAgICAg
ICAtIERlY2xhcmUgVFNhbiBydW50aW1lIGZ1bmN0aW9ucyBuZWVkZWQgdG8gYW5ub3RhdGUgV1RG
OjpMb2NrZXIuCisgICAgICAgIChUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKToKKyAgICAg
ICAgKFRTQU5fQU5OT1RBVEVfSEFQUEVOU19BRlRFUik6CisgICAgICAgIC0gRGVmaW5lIG1hY3Jv
cyB1c2VkIHRvIGNhbGwgVFNhbiBydW50aW1lIGZ1bmN0aW9ucyBpZiBUU2FuIGlzCisgICAgICAg
ICAgZW5hYmxlZC4KKwogMjAyMC0wOS0xMSAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtKU0NdIENhbm9uaWNhbGl6ZSAidHJ1ZSIgdW5pY29kZSBleHRlbnNp
b24gdHlwZSB2YWx1ZSB0byAiIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggNjViY2Q3NzM0ZjA4Yzg1ZTk4ODg5ZDY5MzMwN2MzNTg1ZjZkOTA0Ni4uODMxNDYx
ODEzY2FlNmE5MWIzOWRhMGU4ZGFmMjVjN2UyZTg0ZTM2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dU
Ri9XVEYueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzMsNiArMzczLDcgQEAKIAkJNDEzRkU4RjUxRjhE
MkVBQjAwRjZEN0Q3IC8qIENhbGxiYWNrQWdncmVnYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDYWxsYmFja0FnZ3JlZ2F0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDMwQjQ3ODcxQUFBQUMxQTAwMTIyM0RBIC8qIFN0cmluZ0NvbW1vbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJpbmdDb21tb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDQyN0M1QTkyMUY2RDZDMzAwQTYxMkE0IC8qIEFTQ0lJQ1R5cGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQVNDSUlDVHlwZS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ0Njg1NjcyMjUwOTRGRTgwMDhDQ0EwNSAv
KiBUaHJlYWRTYW5pdGl6ZXJTdXBwb3J0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRocmVhZFNhbml0aXplclN1cHBvcnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDZCQTlFQUIxRjRDRDYxRTAwOUEyQkJDIC8qIENvbXBsZXRpb25IYW5kbGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbXBsZXRpb25IYW5kbGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ2QkVCNkU5MjJGRkRERDUwMDI2OTg2NyAvKiBSZWZDb3Vu
dGVkLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlZkNvdW50ZWQuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1MERFMzVGMzIxNUJCMDE1MDBCOTc5QzcgLyogRXh0ZXJuYWxTdHJp
bmdJbXBsLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4dGVybmFs
U3RyaW5nSW1wbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMjY5LDYgKzEy
NzAsNyBAQAogCQkJCTUzMTFCRDVCMUVBODIyRjkwMDUyNTI4MSAvKiBUaHJlYWRNZXNzYWdlLmNw
cCAqLywKIAkJCQk1MzExQkQ1OTFFQTgxQTk2MDA1MjUyODEgLyogVGhyZWFkTWVzc2FnZS5oICov
LAogCQkJCUE4QTQ3MzNFMTUxQTgyNUIwMDQxMjNGRiAvKiBUaHJlYWRTYWZlUmVmQ291bnRlZC5o
ICovLAorCQkJCTQ0Njg1NjcyMjUwOTRGRTgwMDhDQ0EwNSAvKiBUaHJlYWRTYW5pdGl6ZXJTdXBw
b3J0LmggKi8sCiAJCQkJQThBNDczM0YxNTFBODI1QjAwNDEyM0ZGIC8qIFRocmVhZFNwZWNpZmlj
LmggKi8sCiAJCQkJMEY2NkIyODYxREM5N0JBQjAwNEExRDNGIC8qIFRpbWVXaXRoRHluYW1pY0Ns
b2NrVHlwZS5jcHAgKi8sCiAJCQkJMEY2NkIyODcxREM5N0JBQjAwNEExRDNGIC8qIFRpbWVXaXRo
RHluYW1pY0Nsb2NrVHlwZS5oICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VM
aXN0cy50eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCBhYWM3ZjAwOGU5
YWFlNTk4ZWM1MTI3MzM3MzQ1NGYxYWYxNzgxZTZjLi5jOTJlNDczMmJjNGZhZDA4Y2ExYzNlNjQ1
OWY2OWFlZDJjYmVhMjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4
dAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjYwLDYgKzI2MCw3IEBA
IHNldChXVEZfUFVCTElDX0hFQURFUlMKICAgICBUaHJlYWRHcm91cC5oCiAgICAgVGhyZWFkTWVz
c2FnZS5oCiAgICAgVGhyZWFkU2FmZVJlZkNvdW50ZWQuaAorICAgIFRocmVhZFNhbml0aXplclN1
cHBvcnQuaAogICAgIFRocmVhZFNwZWNpZmljLmgKICAgICBUaHJlYWRpbmcuaAogICAgIFRocmVh
ZGluZ1ByaW1pdGl2ZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaCBi
L1NvdXJjZS9XVEYvd3RmL0NvbXBpbGVyLmgKaW5kZXggNTk2OGY2OTc4M2NiYmRmNWQzZTU2Y2E5
ZjhiOWI3MWU1OTA4ZjZjNi4uZWZjYzc0Mzk1YmE2MjU5ODdkMjlhOGZmZDlhOWI5NTIwZTYwMTM5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ29tcGlsZXIuaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9Db21waWxlci5oCkBAIC0xNTYsNiArMTU2LDIwIEBACiAjZGVmaW5lIFNVUFBSRVNTX0FT
QU4KICNlbmRpZgogCisvKiBUU0FOX0VOQUJMRUQgYW5kIFNVUFBSRVNTX1RTQU4gKi8KKworI2lm
ZGVmIF9fU0FOSVRJWkVfVEhSRUFEX18KKyNkZWZpbmUgVFNBTl9FTkFCTEVEIDEKKyNlbHNlCisj
ZGVmaW5lIFRTQU5fRU5BQkxFRCBDT01QSUxFUl9IQVNfQ0xBTkdfRkVBVFVSRSh0aHJlYWRfc2Fu
aXRpemVyKQorI2VuZGlmCisKKyNpZiBUU0FOX0VOQUJMRUQKKyNkZWZpbmUgU1VQUFJFU1NfVFNB
TiBfX2F0dHJpYnV0ZV9fKChub19zYW5pdGl6ZV90aHJlYWQpKQorI2Vsc2UKKyNkZWZpbmUgU1VQ
UFJFU1NfVFNBTgorI2VuZGlmCisKIC8qID09PT0gQ29tcGlsZXItaW5kZXBlbmRlbnQgbWFjcm9z
IGZvciB2YXJpb3VzIGNvbXBpbGVyIGZlYXR1cmVzLCBpbiBhbHBoYWJldGljYWwgb3JkZXIgPT09
PSAqLwogCiAvKiBBTFdBWVNfSU5MSU5FICovCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9M
b2NrZXIuaCBiL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCmluZGV4IGE5OTUzNzkyNDFhYmQxNjJk
MTY5N2UxYTRmMTRkNWNmZWZhYTY1MWUuLmE3ODllMDNlMDk1OGVjYmU0ZjMyZjRkOTRmMzE2MTM1
NDRiZDM2ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL0xvY2tlci5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL0xvY2tlci5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAwOC0yMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAwOC0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgPHd0Zi9BdG9t
aWNzLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBpbGVyLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlh
YmxlLmg+CisjaW5jbHVkZSA8d3RmL1RocmVhZFNhbml0aXplclN1cHBvcnQuaD4KIAogbmFtZXNw
YWNlIFdURiB7CiAKQEAgLTY3LDggKzY4LDEwIEBAIHB1YmxpYzoKICAgICB+TG9ja2VyKCkKICAg
ICB7CiAgICAgICAgIGNvbXBpbGVyRmVuY2UoKTsKLSAgICAgICAgaWYgKG1fbG9ja2FibGUpCisg
ICAgICAgIGlmIChtX2xvY2thYmxlKSB7CisgICAgICAgICAgICBUU0FOX0FOTk9UQVRFX0hBUFBF
TlNfQkVGT1JFKG1fbG9ja2FibGUpOwogICAgICAgICAgICAgbV9sb2NrYWJsZS0+dW5sb2NrKCk7
CisgICAgICAgIH0KICAgICB9CiAgICAgCiAgICAgc3RhdGljIExvY2tlciB0cnlMb2NrKFQmIGxv
Y2thYmxlKQpAQCAtODUsOCArODgsOSBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCB1bmxvY2tF
YXJseSgpCiAgICAgeworICAgICAgICBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKG1fbG9j
a2FibGUpOwogICAgICAgICBtX2xvY2thYmxlLT51bmxvY2soKTsKLSAgICAgICAgbV9sb2NrYWJs
ZSA9IDA7CisgICAgICAgIG1fbG9ja2FibGUgPSBudWxscHRyOwogICAgIH0KICAgICAKICAgICAv
LyBJdCdzIGdyZWF0IHRvIGJlIGFibGUgdG8gcGFzcyBsb2NrZXJzIGFyb3VuZC4gSXQgZW5hYmxl
cyBjdXN0b20gbG9ja2luZyBhZGFwdG9ycyBsaWtlCkBAIC05OSw4ICsxMDMsMTAgQEAgcHVibGlj
OgogICAgIAogICAgIExvY2tlciYgb3BlcmF0b3I9KExvY2tlciYmIG90aGVyKQogICAgIHsKLSAg
ICAgICAgaWYgKG1fbG9ja2FibGUpCisgICAgICAgIGlmIChtX2xvY2thYmxlKSB7CisgICAgICAg
ICAgICBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKG1fbG9ja2FibGUpOwogICAgICAgICAg
ICAgbV9sb2NrYWJsZS0+dW5sb2NrKCk7CisgICAgICAgIH0KICAgICAgICAgbV9sb2NrYWJsZSA9
IG90aGVyLm1fbG9ja2FibGU7CiAgICAgICAgIG90aGVyLm1fbG9ja2FibGUgPSBudWxscHRyOwog
ICAgICAgICByZXR1cm4gKnRoaXM7CkBAIC0xMDksOCArMTE1LDEwIEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdm9pZCBsb2NrKCkKICAgICB7Ci0gICAgICAgIGlmIChtX2xvY2thYmxlKQorICAg
ICAgICBpZiAobV9sb2NrYWJsZSkgewogICAgICAgICAgICAgbV9sb2NrYWJsZS0+bG9jaygpOwor
ICAgICAgICAgICAgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKG1fbG9ja2FibGUpOworICAg
ICAgICB9CiAgICAgICAgIGNvbXBpbGVyRmVuY2UoKTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV1RGL3d0Zi9UaHJlYWRTYW5pdGl6ZXJTdXBwb3J0LmggYi9Tb3VyY2UvV1RGL3d0
Zi9UaHJlYWRTYW5pdGl6ZXJTdXBwb3J0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDYxNDM4MzkyNTY0MWVmZGVl
NjU3ZThiMGFkNWI1ZDRkNDYxMTc0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XVEYvd3Rm
L1RocmVhZFNhbml0aXplclN1cHBvcnQuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
IDx3dGYvQ29tcGlsZXIuaD4KKworLy8gRklYTUU6IFJlbW92ZSB0aGlzIGhlYWRlciB3aGVuIDxy
ZGFyOi8vcHJvYmxlbS81NjY1NDc3Mz4gaXMgZml4ZWQuCisKKyNpZiBUU0FOX0VOQUJMRUQKKwor
V1RGX0VYVEVSTl9DX0JFR0lOCit2b2lkIEFubm90YXRlSGFwcGVuc0JlZm9yZShjb25zdCBjaGFy
KiBmaWxlLCBpbnQgbGluZSwgY29uc3Qgdm9pZCogYWRkcik7Cit2b2lkIEFubm90YXRlSGFwcGVu
c0FmdGVyKGNvbnN0IGNoYXIqIGZpbGUsIGludCBsaW5lLCBjb25zdCB2b2lkKiBhZGRyKTsKK1dU
Rl9FWFRFUk5fQ19FTkQKKworI2RlZmluZSBUU0FOX0FOTk9UQVRFX0hBUFBFTlNfQkVGT1JFKGFk
ZHIpIFwKKyAgICBkbyB7IFwKKyAgICAgICAgQW5ub3RhdGVIYXBwZW5zQmVmb3JlKF9fRklMRV9f
LCBfX0xJTkVfXywgYWRkcik7IFwKKyAgICB9IHdoaWxlICgwKQorI2RlZmluZSBUU0FOX0FOTk9U
QVRFX0hBUFBFTlNfQUZURVIoYWRkcikgIFwKKyAgICBkbyB7IFwKKyAgICAgICAgQW5ub3RhdGVI
YXBwZW5zQWZ0ZXIoX19GSUxFX18sIF9fTElORV9fLCBhZGRyKTsgXAorICAgIH0gd2hpbGUgKDAp
CisKKyNlbHNlCisKKyNkZWZpbmUgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0JFRk9SRShhZGRyKSAo
KHZvaWQpMCkKKyNkZWZpbmUgVFNBTl9BTk5PVEFURV9IQVBQRU5TX0FGVEVSKGFkZHIpICAoKHZv
aWQpMCkKKworI2VuZGlmIC8vIFRTQU5fRU5BQkxFRApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDI5NjgxYjJmNjIwMDUyMjkxMjVjNDg2MjRmNjI1
YmNjZmM5YmU4YjUuLjIyM2I5OTdkMGQzN2I2N2NhYjk2NmYxOWIwZTIxNTMzZjE2Njk2Y2IgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwzMSBAQAorMjAyMC0wOS0xMyAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgor
CisgICAgICAgIFdlYktpdCBzaG91bGQgc3VwcG9ydCBidWlsZGluZyB3aXRoIGNsYW5nIFRocmVh
ZFNhbml0aXplciBlbmFibGVkCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8yMTYzMTg+
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTYxNTcyOT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGRvZXNuJ3QgYXR0ZW1wdCB0
byByZXNvbHZlIGV2ZXJ5IHBvdGVudGlhbCBmYWxzZQorICAgICAgICBwb3NpdGl2ZSwgYnV0IG1h
a2VzIGl0IGVhc3kgdG8gYnVpbGQgV2ViS2l0IHdpdGggVFNhbiBlbmFibGVkLgorCisgICAgICAg
ICogU2NyaXB0cy9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb246CisgICAgICAgIC0gQWRkIHN1cHBv
cnQgZm9yIC0tW25vLV10c2FuIHN3aXRjaGVzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0ZGly
cy5wbToKKyAgICAgICAgKGRldGVybWluZVRTYW5Jc0VuYWJsZWQpOgorICAgICAgICAodHNhbklz
RW5hYmxlZCk6CisgICAgICAgIChYY29kZU9wdGlvbnMpOgorICAgICAgICAoZ2VuZXJhdGVCdWls
ZFN5c3RlbUZyb21DTWFrZVByb2plY3QpOgorICAgICAgICAtIEFkZCBzdXBwb3J0IGZvciBidWls
ZGluZyB3aXRoIFRTYW4gZW5hYmxlZC4KKworICAgICAgICAqIGFzYW4vYXNhbi54Y2NvbmZpZzog
UmVuYW1lIHRvIHNhbml0aXplci9hc2FuLnhjY29uZmlnLgorICAgICAgICAqIHNhbml0aXplci9h
c2FuLnhjY29uZmlnOiBSZW5hbWUgZnJvbSBhc2FuL2FzYW4ueGNjb25maWcuCisgICAgICAgIC0g
RXh0cmFjdCBjb21tb24gdmFyaWFibGVzIHRvIHNhbml0aXplci54Y2NvbmZpZy4KKyAgICAgICAg
KiBzYW5pdGl6ZXIvc2FuaXRpemVyLnhjY29uZmlnOiBBZGQuCisgICAgICAgIC0gRXh0cmFjdCBj
b21tb24gdmFyaWFibGVzIGZyb20gYXNhbi54Y2NvbmZpZy4KKyAgICAgICAgKiBzYW5pdGl6ZXIv
dHNhbi54Y2NvbmZpZzogQWRkLgorICAgICAgICAtIEFkZCBzdXBwb3J0IGZvciBUU2FuLgorCiAy
MDIwLTA5LTEyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBSRUdSRVNTSU9OKHIyNjY4MTUpOiBTZXZlcmFsIEdUSyBBUEkgdGVzdHMg
YXJlIHRpbWluZyBvdXQKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvc2V0LXdlYmtpdC1jb25m
aWd1cmF0aW9uIGIvVG9vbHMvU2NyaXB0cy9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24KaW5kZXgg
NzAyYjAxNmYzNWI4OWI4ZWE5NDM2NDllMjdiYWI1ODA2NTlkZjhmYS4uMGNhMDYzNGUzNjhjMWNh
ZTZiYTM1YjUyNzdjMzRiYzhmMTEyNTc4NyAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy9zZXQt
d2Via2l0LWNvbmZpZ3VyYXRpb24KKysrIGIvVG9vbHMvU2NyaXB0cy9zZXQtd2Via2l0LWNvbmZp
Z3VyYXRpb24KQEAgLTEsNiArMSw2IEBACiAjIS91c3IvYmluL2VudiBwZXJsCiAKLSMgQ29weXJp
Z2h0IChDKSAyMDA1LTIwMTkgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29w
eXJpZ2h0IChDKSAyMDA1LTIwMjAgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMK
ICMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBAQAogCiB1c2Ugc3RyaWN0
OwogdXNlIHdhcm5pbmdzOwordXNlIEZpbGU6OlNwZWM7CiB1c2UgRmluZEJpbjsKIHVzZSBsaWIg
JEZpbmRCaW46OkJpbjsKIHVzZSB3ZWJraXRkaXJzOwpAQCAtMzksNiArNDAsNyBAQCBVc2FnZTog
JHByb2dyYW1OYW1lIFtvcHRpb25zXQogICAtLTY0LWJpdCAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFNldCB0aGUgZGVmYXVsdCBhcmNoaXRlY3R1cmUgdG8gNjQtYml0CiAgIC0tW25vLV1hc2Fu
ICAgICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIG9yIGRpc2FibGUgY2xhbmcgYWRkcmVzcyBz
YW5pdGl6ZXIKICAgLS1bbm8tXWNvdmVyYWdlICAgICAgICAgICAgICAgICAgICBFbmFibGUgb3Ig
ZGlzYWJsZSBMTFZNIFNvdXJjZS1iYXNlZCBDb2RlIENvdmVyYWdlCisgIC0tW25vLV10c2FuICAg
ICAgICAgICAgICAgICAgICAgICAgRW5hYmxlIG9yIGRpc2FibGUgY2xhbmcgdGhyZWFkIHNhbml0
aXplcgogICAtLWZvcmNlLW9wdGltaXphdGlvbi1sZXZlbD08bGV2ZWw+IE9wdGltaXphdGlvbiBs
ZXZlbDogTzMsIE8yLCBPMSwgTzAsIE9zLCBPZmFzdCwgT2csIG9yIG5vbmUKICAgLS1sdG8tbW9k
ZT08bW9kZT4gICAgICAgICAgICAgICAgICBTZXQgTFRPIG1vZGU6IGZ1bGwsIHRoaW4sIG9yIG5v
bmUKICAgLS1kZWJ1ZyAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXQgdGhlIGRlZmF1bHQg
Y29uZmlndXJhdGlvbiB0byBkZWJ1ZwpAQCAtNTIsNiArNTQsOCBAQCBteSAkZW5hYmxlQVNBTiA9
IGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS1hc2FuIik7CiBteSAkZGlzYWJs
ZUFTQU4gPSBjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0tbm8tYXNhbiIpOwog
bXkgJGVuYWJsZUNvdmVyYWdlID0gY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCIt
LWNvdmVyYWdlIik7CiBteSAkZGlzYWJsZUNvdmVyYWdlID0gY2hlY2tGb3JBcmd1bWVudEFuZFJl
bW92ZUZyb21BUkdWKCItLW5vLWNvdmVyYWdlIik7CitteSAkZW5hYmxlVFNBTiA9IGNoZWNrRm9y
QXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLS10c2FuIik7CitteSAkZGlzYWJsZVRTQU4gPSBj
aGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0tbm8tdHNhbiIpOwogbXkgJGx0b01v
ZGU7CiBpZiAoIWNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVkdldHRpbmdWYWx1ZSgi
LS1sdG8tbW9kZSIsIFwkbHRvTW9kZSkpIHsKICAgICAkbHRvTW9kZT0iIjsKQEAgLTgwLDE1ICs4
NCwxOCBAQCBpZiAoY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWKCItLXJlc2V0Iikp
IHsKICAgICB1bmxpbmsgIiRiYXNlUHJvZHVjdERpci9Db25maWd1cmF0aW9uIjsKICAgICB1bmxp
bmsgIiRiYXNlUHJvZHVjdERpci9BcmNoaXRlY3R1cmUiOwogICAgIHVubGluayAiJGJhc2VQcm9k
dWN0RGlyL0FTYW4iOwotICAgIHVubGluayAiJGJhc2VQcm9kdWN0RGlyL0ZvcmNlT3B0aW1pemF0
aW9uTGV2ZWwiOwogICAgIHVubGluayAiJGJhc2VQcm9kdWN0RGlyL0NvdmVyYWdlIjsKKyAgICB1
bmxpbmsgRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkYmFzZVByb2R1Y3REaXIsICJUU2FuIik7CisgICAg
dW5saW5rICIkYmFzZVByb2R1Y3REaXIvRm9yY2VPcHRpbWl6YXRpb25MZXZlbCI7CiAgICAgdW5s
aW5rICIkYmFzZVByb2R1Y3REaXIvTFRPIjsKICAgICBleGl0IDA7CiB9CiAKLWlmICgoISRjb25m
aWd1cmF0aW9uICYmICEkYXJjaGl0ZWN0dXJlICYmICEkZW5hYmxlQVNBTiAmJiAhJGRpc2FibGVB
U0FOICYmICEkZW5hYmxlQ292ZXJhZ2UgJiYgISRkaXNhYmxlQ292ZXJhZ2UgJiYgISRsdG9Nb2Rl
ICYmICEkZm9yY2VPcHRpbWl6YXRpb25MZXZlbCkKK2lmICgoISRjb25maWd1cmF0aW9uICYmICEk
YXJjaGl0ZWN0dXJlICYmICEkZW5hYmxlQVNBTiAmJiAhJGRpc2FibGVBU0FOICYmICEkZW5hYmxl
Q292ZXJhZ2UgJiYgISRkaXNhYmxlQ292ZXJhZ2UgJiYgISRlbmFibGVUU0FOICYmICEkZGlzYWJs
ZVRTQU4gJiYgISRsdG9Nb2RlICYmICEkZm9yY2VPcHRpbWl6YXRpb25MZXZlbCkKICAgICB8fCAo
JGVuYWJsZUFTQU4gJiYgJGRpc2FibGVBU0FOKQotICAgIHx8ICgkZW5hYmxlQ292ZXJhZ2UgJiYg
JGRpc2FibGVDb3ZlcmFnZSkpIHsKKyAgICB8fCAoJGVuYWJsZUNvdmVyYWdlICYmICRkaXNhYmxl
Q292ZXJhZ2UpCisgICAgfHwgKCRlbmFibGVUU0FOICYmICRkaXNhYmxlVFNBTikKKyAgICApIHsK
ICAgICBwcmludCBTVERFUlIgJHVzYWdlOwogICAgIGV4aXQgMTsKIH0KQEAgLTE0Myw2ICsxNTAs
MTQgQEAgaWYgKCRlbmFibGVDb3ZlcmFnZSkgewogICAgIHVubGluayAiJGJhc2VQcm9kdWN0RGly
L0NvdmVyYWdlIjsKIH0KIAoraWYgKCRlbmFibGVUU0FOKSB7CisgICAgb3BlbiBUU0FOLCAiPiIs
IEZpbGU6OlNwZWMtPmNhdGZpbGUoJGJhc2VQcm9kdWN0RGlyLCAiVFNhbiIpIG9yIGRpZTsKKyAg
ICBwcmludCBUU0FOICJZRVMiOworICAgIGNsb3NlIFRTQU47Cit9IGVsc2lmICgkZGlzYWJsZVRT
QU4pIHsKKyAgICB1bmxpbmsgRmlsZTo6U3BlYy0+Y2F0ZmlsZSgkYmFzZVByb2R1Y3REaXIsICJU
U2FuIik7Cit9CisKIGlmICgkZm9yY2VPcHRpbWl6YXRpb25MZXZlbCAmJiAkZm9yY2VPcHRpbWl6
YXRpb25MZXZlbCBlcSAibm9uZSIpIHsKICAgICB1bmxpbmsgIiRiYXNlUHJvZHVjdERpci9Gb3Jj
ZU9wdGltaXphdGlvbkxldmVsIjsKIH0gZWxzaWYgKCRmb3JjZU9wdGltaXphdGlvbkxldmVsKSB7
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0gYi9Ub29scy9TY3JpcHRz
L3dlYmtpdGRpcnMucG0KaW5kZXggYWRjZGRlMTI0ZDQyMjAyNDU2MTYzYzk2YTcwZWY0ZDdiNzY3
MzQ1NC4uNGI2ZjYyNTNhMTE5Yzk5MmQyMTk2NDY5M2Q5MDk5MDViMGM4NTZhZiAxMDA3NTUKLS0t
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0
ZGlycy5wbQpAQCAtMSw0ICsxLDQgQEAKLSMgQ29weXJpZ2h0IChDKSAyMDA1LTIwMTkgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAwOSBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTEgUmVzZWFyY2gg
SW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykg
MjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykuCkBAIC0x
MzAsNiArMTMwLDcgQEAgb3VyIEBFWFBPUlRfT0s7CiBteSAkYXJjaGl0ZWN0dXJlOwogbXkgJW5h
dGl2ZUFyY2hpdGVjdHVyZU1hcCA9ICgpOwogbXkgJGFzYW5Jc0VuYWJsZWQ7CitteSAkdHNhbklz
RW5hYmxlZDsKIG15ICRmb3JjZU9wdGltaXphdGlvbkxldmVsOwogbXkgJGNvdmVyYWdlSXNFbmFi
bGVkOwogbXkgJGx0b01vZGU7CkBAIC00NDYsNiArNDQ3LDIyIEBAIHN1YiBkZXRlcm1pbmVBU2Fu
SXNFbmFibGVkCiAgICAgfQogfQogCitzdWIgZGV0ZXJtaW5lVFNhbklzRW5hYmxlZAoreworICAg
IHJldHVybiBpZiBkZWZpbmVkICR0c2FuSXNFbmFibGVkOworICAgIGRldGVybWluZUJhc2VQcm9k
dWN0RGlyKCk7CisKKyAgICAkdHNhbklzRW5hYmxlZCA9IDA7CisgICAgbXkgJHRzYW5Db25maWd1
cmF0aW9uVmFsdWU7CisKKyAgICBpZiAob3BlbiBUU0FOLCAiJGJhc2VQcm9kdWN0RGlyL1RTYW4i
KSB7CisgICAgICAgICR0c2FuQ29uZmlndXJhdGlvblZhbHVlID0gPFRTQU4+OworICAgICAgICBj
bG9zZSBUU0FOOworICAgICAgICBjaG9tcCAkdHNhbkNvbmZpZ3VyYXRpb25WYWx1ZTsKKyAgICAg
ICAgJHRzYW5Jc0VuYWJsZWQgPSAxIGlmICR0c2FuQ29uZmlndXJhdGlvblZhbHVlIGVxICJZRVMi
OworICAgIH0KK30KKwogc3ViIGRldGVybWluZUZvcmNlT3B0aW1pemF0aW9uTGV2ZWwKIHsKICAg
ICByZXR1cm4gaWYgZGVmaW5lZCAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbDsKQEAgLTg4NSw2ICs5
MDIsMTIgQEAgc3ViIGFzYW5Jc0VuYWJsZWQoKQogICAgIHJldHVybiAkYXNhbklzRW5hYmxlZDsK
IH0KIAorc3ViIHRzYW5Jc0VuYWJsZWQoKQoreworICAgIGRldGVybWluZVRTYW5Jc0VuYWJsZWQo
KTsKKyAgICByZXR1cm4gJHRzYW5Jc0VuYWJsZWQ7Cit9CisKIHN1YiBmb3JjZU9wdGltaXphdGlv
bkxldmVsKCkKIHsKICAgICBkZXRlcm1pbmVGb3JjZU9wdGltaXphdGlvbkxldmVsKCk7CkBAIC05
MzksNiArOTYyLDcgQEAgc3ViIFhjb2RlT3B0aW9ucwogICAgIGRldGVybWluZUNvbmZpZ3VyYXRp
b24oKTsKICAgICBkZXRlcm1pbmVBcmNoaXRlY3R1cmUoKTsKICAgICBkZXRlcm1pbmVBU2FuSXNF
bmFibGVkKCk7CisgICAgZGV0ZXJtaW5lVFNhbklzRW5hYmxlZCgpOwogICAgIGRldGVybWluZUZv
cmNlT3B0aW1pemF0aW9uTGV2ZWwoKTsKICAgICBkZXRlcm1pbmVDb3ZlcmFnZUlzRW5hYmxlZCgp
OwogICAgIGRldGVybWluZUxUT01vZGUoKTsKQEAgLTk0OCw3ICs5NzIsMTMgQEAgc3ViIFhjb2Rl
T3B0aW9ucwogICAgIHB1c2ggQG9wdGlvbnMsICItVXNlU2FuaXRpemVkQnVpbGRTeXN0ZW1FbnZp
cm9ubWVudD1ZRVMiOwogICAgIHB1c2ggQG9wdGlvbnMsICItU2hvd0J1aWxkT3BlcmF0aW9uRHVy
YXRpb249WUVTIjsKICAgICBwdXNoIEBvcHRpb25zLCAoIi1jb25maWd1cmF0aW9uIiwgJGNvbmZp
Z3VyYXRpb24pOwotICAgIHB1c2ggQG9wdGlvbnMsICgiLXhjY29uZmlnIiwgc291cmNlRGlyKCkg
LiAiL1Rvb2xzL2FzYW4vYXNhbi54Y2NvbmZpZyIsICJBU0FOX0lHTk9SRT0iIC4gc291cmNlRGly
KCkgLiAiL1Rvb2xzL2FzYW4vd2Via2l0LWFzYW4taWdub3JlLnR4dCIpIGlmICRhc2FuSXNFbmFi
bGVkOworICAgIGlmICgkYXNhbklzRW5hYmxlZCkgeworICAgICAgICBwdXNoIEBvcHRpb25zLCAo
Ii14Y2NvbmZpZyIsIEZpbGU6OlNwZWMtPmNhdGZpbGUoc291cmNlRGlyKCksICJUb29scyIsICJz
YW5pdGl6ZXIiLCAiYXNhbi54Y2NvbmZpZyIpKTsKKyAgICAgICAgbXkgJGFzYW5JZ25vcmVQYXRo
ID0gRmlsZTo6U3BlYy0+Y2F0ZmlsZShzb3VyY2VEaXIoKSwgIlRvb2xzIiwgInNhbml0aXplciIs
ICJ3ZWJraXQtYXNhbi1pZ25vcmUudHh0Iik7CisgICAgICAgIHB1c2ggQG9wdGlvbnMsICJBU0FO
X0lHTk9SRT0kYXNhbklnbm9yZVBhdGgiIGlmIC1lICRhc2FuSWdub3JlUGF0aDsKKyAgICB9IGVs
c2lmICgkdHNhbklzRW5hYmxlZCkgeworICAgICAgICBwdXNoIEBvcHRpb25zLCAoIi14Y2NvbmZp
ZyIsIEZpbGU6OlNwZWMtPmNhdGZpbGUoc291cmNlRGlyKCksICJUb29scyIsICJzYW5pdGl6ZXIi
LCAidHNhbi54Y2NvbmZpZyIpKTsKKyAgICB9CiAgICAgcHVzaCBAb3B0aW9ucywgKCIteGNjb25m
aWciLCBzb3VyY2VEaXIoKSAuICIvVG9vbHMvY292ZXJhZ2UvY292ZXJhZ2UueGNjb25maWciKSBp
ZiAkY292ZXJhZ2VJc0VuYWJsZWQ7CiAgICAgcHVzaCBAb3B0aW9ucywgKCJHQ0NfT1BUSU1JWkFU
SU9OX0xFVkVMPSRmb3JjZU9wdGltaXphdGlvbkxldmVsIikgaWYgJGZvcmNlT3B0aW1pemF0aW9u
TGV2ZWw7CiAgICAgcHVzaCBAb3B0aW9ucywgIldLX0xUT19NT0RFPSRsdG9Nb2RlIiBpZiAkbHRv
TW9kZTsKQEAgLTk2MCw3ICs5OTAsOCBAQCBzdWIgWGNvZGVPcHRpb25zCiAgICAgIyB0cmVhdHMg
ZXJyb3JzIGFzIG5vbi1mYXRhbCB3aGVuIGl0IGVuY291bnRlcnMgbWlzc2luZyBzeW1ib2xzIHJl
bGF0ZWQgdG8gY292ZXJhZ2UuCiAgICAgYXBwZW5kVG9FbnZpcm9ubWVudFZhcmlhYmxlTGlzdCgi
V0VCS0lUX0NPVkVSQUdFX0JVSUxEIiwgIjEiKSBpZiAkY292ZXJhZ2VJc0VuYWJsZWQ7CiAKLSAg
ICBkaWUgImNhbm5vdCBlbmFibGUgYm90aCBBU0FOIGFuZCBDb3ZlcmFnZSBhdCB0aGlzIHRpbWVc
biIgaWYgJGNvdmVyYWdlSXNFbmFibGVkICYmICRhc2FuSXNFbmFibGVkOworICAgIGRpZSAiQ2Fu
bm90IGVuYWJsZSBib3RoIEFTQU4gYW5kIFRTQU4gYXQgdGhlIHNhbWUgdGltZVxuIiBpZiAkYXNh
bklzRW5hYmxlZCAmJiAkdHNhbklzRW5hYmxlZDsKKyAgICBkaWUgIkNhbm5vdCBlbmFibGUgYm90
aCAoQVNBTiBvciBUU0FOKSBhbmQgQ292ZXJhZ2UgYXQgdGhpcyB0aW1lXG4iIGlmICRjb3ZlcmFn
ZUlzRW5hYmxlZCAmJiAoJGFzYW5Jc0VuYWJsZWQgfHwgJHRzYW5Jc0VuYWJsZWQpOwogCiAgICAg
aWYgKHdpbGxVc2VJT1NEZXZpY2VTREsoKSB8fCB3aWxsVXNlV2F0Y2hEZXZpY2VTREsoKSB8fCB3
aWxsVXNlQXBwbGVUVkRldmljZVNESygpKSB7CiAgICAgICAgIHB1c2ggQG9wdGlvbnMsICJFTkFC
TEVfQklUQ09ERT1OTyI7CkBAIC0yNDMzLDYgKzI0NjQsNyBAQCBzdWIgZ2VuZXJhdGVCdWlsZFN5
c3RlbUZyb21DTWFrZVByb2plY3QKICAgICB9CiAKICAgICBwdXNoIEBhcmdzLCAiLURFTkFCTEVf
U0FOSVRJWkVSUz1hZGRyZXNzIiBpZiBhc2FuSXNFbmFibGVkKCk7CisgICAgcHVzaCBAYXJncywg
Ii1ERU5BQkxFX1NBTklUSVpFUlM9dGhyZWFkIiBpZiB0c2FuSXNFbmFibGVkKCk7CiAKICAgICBw
dXNoIEBhcmdzLCAiLURMVE9fTU9ERT0kbHRvTW9kZSIgaWYgbHRvTW9kZSgpOwogCmRpZmYgLS1n
aXQgYS9Ub29scy9hc2FuL2FzYW4ueGNjb25maWcgYi9Ub29scy9hc2FuL2FzYW4ueGNjb25maWcK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGMxNDk5NTY1MzgxOTExYTJjNDQ5MzBhNzlk
NmQ2NjNkNjdjNTA2ODAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvVG9vbHMvYXNhbi9hc2FuLnhjY29uZmlnCisrKyAvZGV2L251bGwKQEAgLTEsMTYgKzAs
MCBAQAotR0NDX09QVElNSVpBVElPTl9MRVZFTCA9ICQoR0NDX09QVElNSVpBVElPTl9MRVZFTF8k
KENPTkZJR1VSQVRJT04pKTsKLUdDQ19PUFRJTUlaQVRJT05fTEVWRUxfRGVidWcgPSAwOwotR0ND
X09QVElNSVpBVElPTl9MRVZFTF9Qcm9kdWN0aW9uID0gMTsKLUdDQ19PUFRJTUlaQVRJT05fTEVW
RUxfUmVsZWFzZSA9IDE7Ci0KLUVOQUJMRV9BRERSRVNTX1NBTklUSVpFUiA9ICQoRU5BQkxFX0FE
RFJFU1NfU0FOSVRJWkVSXyQoV0tfQVNBTl9ESVNBTExPV0VEKSk7Ci1FTkFCTEVfQUREUkVTU19T
QU5JVElaRVJfID0gWUVTOwotRU5BQkxFX0FERFJFU1NfU0FOSVRJWkVSX05PID0gWUVTOwotCi1P
VEhFUl9DRkxBR1MgPSAkKGluaGVyaXRlZCkgJChXS19BU0FOX09USEVSX0NGTEFHU18kKEVOQUJM
RV9BRERSRVNTX1NBTklUSVpFUikpOwotT1RIRVJfQ1BMVVNQTFVTRkxBR1MgPSAkKGluaGVyaXRl
ZCkgJChXS19BU0FOX09USEVSX0NGTEFHU18kKEVOQUJMRV9BRERSRVNTX1NBTklUSVpFUikpOwot
V0tfQVNBTl9PVEhFUl9DRkxBR1NfWUVTID0gLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLWc7Ci0K
LS8vIFdvcmthcm91bmQgZm9yIHJkYXI6Ly9wcm9ibGVtLzQ5NDk4MDkyCi1PVEhFUl9MREZMQUdT
ID0gJChpbmhlcml0ZWQpICQoV0tfTERGTEFHU19BU0FOXyQoRU5BQkxFX0FERFJFU1NfU0FOSVRJ
WkVSKSk7Ci1XS19MREZMQUdTX0FTQU5fWUVTID0gLVdsLC1ycGF0aCxAZXhlY3V0YWJsZV9wYXRo
L0ZyYW1ld29ya3M7CmRpZmYgLS1naXQgYS9Ub29scy9zYW5pdGl6ZXIvYXNhbi54Y2NvbmZpZyBi
L1Rvb2xzL3Nhbml0aXplci9hc2FuLnhjY29uZmlnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRiMDcyMDMzNWI5ZGVi
MTk3NjljODNjM2NmOWM1YmNiOGMwZjI3NGMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9zYW5p
dGl6ZXIvYXNhbi54Y2NvbmZpZwpAQCAtMCwwICsxLDcgQEAKKyNpbmNsdWRlICJzYW5pdGl6ZXIu
eGNjb25maWciCisKK0VOQUJMRV9BRERSRVNTX1NBTklUSVpFUiA9ICQoRU5BQkxFX0FERFJFU1Nf
U0FOSVRJWkVSXyQoV0tfQVNBTl9ESVNBTExPV0VEKSk7CitFTkFCTEVfQUREUkVTU19TQU5JVEla
RVJfID0gWUVTOworRU5BQkxFX0FERFJFU1NfU0FOSVRJWkVSX05PID0gWUVTOworCitXS19FTkFC
TEVfU0FOSVRJWkVSID0gJChFTkFCTEVfQUREUkVTU19TQU5JVElaRVIpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvc2FuaXRpemVyL3Nhbml0aXplci54Y2NvbmZpZyBiL1Rvb2xzL3Nhbml0aXplci9zYW5p
dGl6ZXIueGNjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOThjMDQ1MTIzNmE5YWY3ZDUzYTJlZTI0MTNkZGMz
NGVmOGExYWRhMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3Nhbml0aXplci9zYW5pdGl6ZXIu
eGNjb25maWcKQEAgLTAsMCArMSwxMyBAQAorR0NDX09QVElNSVpBVElPTl9MRVZFTCA9ICQoR0ND
X09QVElNSVpBVElPTl9MRVZFTF8kKENPTkZJR1VSQVRJT04pKTsKK0dDQ19PUFRJTUlaQVRJT05f
TEVWRUxfRGVidWcgPSAwOworR0NDX09QVElNSVpBVElPTl9MRVZFTF9Qcm9kdWN0aW9uID0gMTsK
K0dDQ19PUFRJTUlaQVRJT05fTEVWRUxfUmVsZWFzZSA9IDE7CisKK1dLX1NBTklUSVpFUl9PVEhF
Ul9DRkxBR1NfWUVTID0gLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIgLWc7CisKK09USEVSX0NGTEFH
UyA9ICQoaW5oZXJpdGVkKSAkKFdLX1NBTklUSVpFUl9PVEhFUl9DRkxBR1NfJChXS19FTkFCTEVf
U0FOSVRJWkVSKSk7CitPVEhFUl9DUExVU1BMVVNGTEFHUyA9ICQoaW5oZXJpdGVkKSAkKFdLX1NB
TklUSVpFUl9PVEhFUl9DRkxBR1NfJChXS19FTkFCTEVfU0FOSVRJWkVSKSk7CisKKy8vIFdvcmth
cm91bmQgZm9yIHJkYXI6Ly9wcm9ibGVtLzQ5NDk4MDkyCitPVEhFUl9MREZMQUdTID0gJChpbmhl
cml0ZWQpICQoV0tfTERGTEFHU19TQU5JVElaRVJfJChXS19FTkFCTEVfU0FOSVRJWkVSKSk7CitX
S19MREZMQUdTX1NBTklUSVpFUl9ZRVMgPSAtV2wsLXJwYXRoLEBleGVjdXRhYmxlX3BhdGgvRnJh
bWV3b3JrczsKZGlmZiAtLWdpdCBhL1Rvb2xzL3Nhbml0aXplci90c2FuLnhjY29uZmlnIGIvVG9v
bHMvc2FuaXRpemVyL3RzYW4ueGNjb25maWcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYwYWFlODAwODZhZmNlNzZj
M2E3YTU2M2NiNzJmN2NjMjU4ODI0NwotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL3Nhbml0aXpl
ci90c2FuLnhjY29uZmlnCkBAIC0wLDAgKzEsNyBAQAorI2luY2x1ZGUgInNhbml0aXplci54Y2Nv
bmZpZyIKKworRU5BQkxFX1RIUkVBRF9TQU5JVElaRVIgPSAkKEVOQUJMRV9USFJFQURfU0FOSVRJ
WkVSXyQoV0tfVFNBTl9ESVNBTExPV0VEKSk7CitFTkFCTEVfVEhSRUFEX1NBTklUSVpFUl8gPSBZ
RVM7CitFTkFCTEVfVEhSRUFEX1NBTklUSVpFUl9OTyA9IFlFUzsKKworV0tfRU5BQkxFX1NBTklU
SVpFUiA9ICQoRU5BQkxFX1RIUkVBRF9TQU5JVElaRVIpOwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9n
IGIvQ2hhbmdlTG9nCmluZGV4IGIxMDk5N2YxMmZjYzE1YTkzMWQwOWY3MjUzY2QzZDM5NTk4NDhk
YjcuLjEwNjA5OTM0N2JjNjkyMzkzM2E2ZjZjZDZiYjE0NDhkNTIzMmM5NjIgMTAwNjQ0Ci0tLSBh
L0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wOS0xMyAg
RGF2aWQgS2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdCBzaG91
bGQgc3VwcG9ydCBidWlsZGluZyB3aXRoIGNsYW5nIFRocmVhZFNhbml0aXplciBlbmFibGVkCisg
ICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8yMTYzMTg+CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8zMTYxNTcyOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIHBhdGNoIGRvZXNuJ3QgYXR0ZW1wdCB0byByZXNvbHZlIGV2ZXJ5IHBvdGVu
dGlhbCBmYWxzZQorICAgICAgICBwb3NpdGl2ZSwgYnV0IG1ha2VzIGl0IGVhc3kgdG8gYnVpbGQg
V2ViS2l0IHdpdGggVFNhbiBlbmFibGVkLgorCisgICAgICAgICogTWFrZWZpbGUuc2hhcmVkOgor
ICAgICAgICAtIFVwZGF0ZSB0byB3b3JrIHdpdGggYG1ha2UgW2FyZ3NdIFRTQU49WUVTYC4KKwog
MjAyMC0wOS0xMCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtDTWFrZV0gVXNlIGltcG9ydGVkIHRhcmdldHMgaW4gZmluZCBtb2R1bGUgZm9y
IGxpYnNlY2NvbXAKZGlmZiAtLWdpdCBhL01ha2VmaWxlLnNoYXJlZCBiL01ha2VmaWxlLnNoYXJl
ZAppbmRleCA3ZmU0NzIwOTcwODM2MDkyYjE5Mjg3M2ZlNjUyNmMzOTAzM2YxZjdkLi4yMDM5NGNj
NTUzNjg5MWEzZGI3ZGI5NzJkY2RmOTUyZmFkMmM0M2RiIDEwMDY0NAotLS0gYS9NYWtlZmlsZS5z
aGFyZWQKKysrIGIvTWFrZWZpbGUuc2hhcmVkCkBAIC03MCw2ICs3MCwxNCBAQCBBU0FOX09QVElP
Tj0tLW5vLWFzYW4KIGVuZGlmCiBlbmRpZgogCitpZmVxICgkKFRTQU4pLFlFUykKK1RTQU5fT1BU
SU9OPS0tdHNhbgorZWxzZQoraWZlcSAoJChUU0FOKSxOTykKK1RTQU5fT1BUSU9OPS0tbm8tdHNh
bgorZW5kaWYKK2VuZGlmCisKIGlmZXEgKCQoV0tfTFRPX01PREUpLGZ1bGwpCiBXS19MVE9fT1BU
SU9OPS0tbHRvLW1vZGU9ZnVsbAogZWxzZSBpZmVxICgkKFdLX0xUT19NT0RFKSx0aGluKQpAQCAt
ODQsMzcgKzkyLDQwIEBAIGV4cG9ydCBEU1lNVVRJTF9OVU1fVEhSRUFEUyA9ICQoc2hlbGwgc3lz
Y3RsIC1uIGh3LmFjdGl2ZWNwdSkKICMgU2VlIDxyZGFyOi8vcHJvYmxlbS8xNjQ2NjE5Nj4uCiBl
eHBvcnQgUEFUSCA9ICQoc2hlbGwgZ2V0Y29uZiBQQVRIKQogCi1hbGw6IHNldF9hc2FuX2NvbmZp
Z3VyYXRpb24KK2FsbDogc2V0X3Nhbml0aXplcl9jb25maWd1cmF0aW9uCiAJKCAkKFNFVF9DT0xP
Ul9ESUFHTk9TVElDU19BUkcpOyB4Y29kZWJ1aWxkICQoT1RIRVJfT1BUSU9OUykgJChYQ09ERV9P
UFRJT05TKSBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TPSckKEdDQ19QUkVQUk9DRVNTT1Jf
QURESVRJT05TKSAkJChpbmhlcml0ZWQpJyB8ICQoT1VUUFVUX0ZJTFRFUikgJiYgZXhpdCAkJHtQ
SVBFU1RBVFVTWzBdfSApCiAKIGRlYnVnIGQgZGV2ZWxvcG1lbnQgZGV2IGRldmVsb3A6IGZvcmNl
Ci0JJChTQ1JJUFRTX1BBVEgpL3NldC13ZWJraXQtY29uZmlndXJhdGlvbiAtLWRlYnVnICQoQVNB
Tl9PUFRJT04pICQoV0tfTFRPX09QVElPTikKKwkkKFNDUklQVFNfUEFUSCkvc2V0LXdlYmtpdC1j
b25maWd1cmF0aW9uIC0tZGVidWcgJChBU0FOX09QVElPTikgJChUU0FOX09QVElPTikgJChXS19M
VE9fT1BUSU9OKQogCSggJChTRVRfQ09MT1JfRElBR05PU1RJQ1NfQVJHKTsgeGNvZGVidWlsZCAk
KE9USEVSX09QVElPTlMpICQoWENPREVfT1BUSU9OUykgR0NDX1BSRVBST0NFU1NPUl9ERUZJTklU
SU9OUz0nJChHQ0NfUFJFUFJPQ0VTU09SX0FERElUSU9OUykgJCQoaW5oZXJpdGVkKScgfCAkKE9V
VFBVVF9GSUxURVIpICYmIGV4aXQgJCR7UElQRVNUQVRVU1swXX0gKQogCiByZWxlYXNlIHIgZGVw
bG95bWVudCBkZXAgZGVwbG95OiBmb3JjZQotCSQoU0NSSVBUU19QQVRIKS9zZXQtd2Via2l0LWNv
bmZpZ3VyYXRpb24gLS1yZWxlYXNlICQoQVNBTl9PUFRJT04pICQoV0tfTFRPX09QVElPTikKKwkk
KFNDUklQVFNfUEFUSCkvc2V0LXdlYmtpdC1jb25maWd1cmF0aW9uIC0tcmVsZWFzZSAkKEFTQU5f
T1BUSU9OKSAkKFRTQU5fT1BUSU9OKSAkKFdLX0xUT19PUFRJT04pCiAJKCAkKFNFVF9DT0xPUl9E
SUFHTk9TVElDU19BUkcpOyB4Y29kZWJ1aWxkICQoT1RIRVJfT1BUSU9OUykgJChYQ09ERV9PUFRJ
T05TKSBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TPSckKEdDQ19QUkVQUk9DRVNTT1JfQURE
SVRJT05TKSAkJChpbmhlcml0ZWQpJyB8ICQoT1VUUFVUX0ZJTFRFUikgJiYgZXhpdCAkJHtQSVBF
U1RBVFVTWzBdfSApCiAKIHJlbGVhc2UrYXNzZXJ0IHJhOiBmb3JjZQotCSQoU0NSSVBUU19QQVRI
KS9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gLS1yZWxlYXNlICQoQVNBTl9PUFRJT04pICQoV0tf
TFRPX09QVElPTikKKwkkKFNDUklQVFNfUEFUSCkvc2V0LXdlYmtpdC1jb25maWd1cmF0aW9uIC0t
cmVsZWFzZSAkKEFTQU5fT1BUSU9OKSAkKFRTQU5fT1BUSU9OKSAkKFdLX0xUT19PUFRJT04pCiAJ
KCAkKFNFVF9DT0xPUl9ESUFHTk9TVElDU19BUkcpOyB4Y29kZWJ1aWxkICQoT1RIRVJfT1BUSU9O
UykgJChYQ09ERV9PUFRJT05TKSBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TPSckKEdDQ19Q
UkVQUk9DRVNTT1JfQURESVRJT05TKSBBU1NFUlRfRU5BQkxFRD0xICQkKGluaGVyaXRlZCknIHwg
JChPVVRQVVRfRklMVEVSKSAmJiBleGl0ICQke1BJUEVTVEFUVVNbMF19ICkKIAogdGVzdGluZyB0
OiBmb3JjZQotCSQoU0NSSVBUU19QQVRIKS9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24gLS1kZWJ1
ZyAkKEFTQU5fT1BUSU9OKSAkKFdLX0xUT19PUFRJT04pIC0tZm9yY2Utb3B0aW1pemF0aW9uLWxl
dmVsPU8zCisJJChTQ1JJUFRTX1BBVEgpL3NldC13ZWJraXQtY29uZmlndXJhdGlvbiAtLWRlYnVn
ICQoQVNBTl9PUFRJT04pICQoVFNBTl9PUFRJT04pICQoV0tfTFRPX09QVElPTikgLS1mb3JjZS1v
cHRpbWl6YXRpb24tbGV2ZWw9TzMKIAkoICQoU0VUX0NPTE9SX0RJQUdOT1NUSUNTX0FSRyk7IHhj
b2RlYnVpbGQgJChPVEhFUl9PUFRJT05TKSAkKFhDT0RFX09QVElPTlMpIEdDQ19QUkVQUk9DRVNT
T1JfREVGSU5JVElPTlM9JyQoR0NDX1BSRVBST0NFU1NPUl9BRERJVElPTlMpICQkKGluaGVyaXRl
ZCknIHwgJChPVVRQVVRfRklMVEVSKSAmJiBleGl0ICQke1BJUEVTVEFUVVNbMF19ICkKIAogYW5h
bHl6ZToKLQkkKFNDUklQVFNfUEFUSCkvc2V0LXdlYmtpdC1jb25maWd1cmF0aW9uIC0tZGVidWcg
JChBU0FOX09QVElPTikgJChXS19MVE9fT1BUSU9OKQorCSQoU0NSSVBUU19QQVRIKS9zZXQtd2Vi
a2l0LWNvbmZpZ3VyYXRpb24gLS1kZWJ1ZyAkKEFTQU5fT1BUSU9OKSAkKFRTQU5fT1BUSU9OKSAk
KFdLX0xUT19PUFRJT04pCiBpZm5kZWYgUEFUSF9UT19TQ0FOX0JVSUxECiAJKCAkKFNFVF9DT0xP
Ul9ESUFHTk9TVElDU19BUkcpOyB4Y29kZWJ1aWxkICQoT1RIRVJfT1BUSU9OUykgJChYQ09ERV9P
UFRJT05TKSBHQ0NfUFJFUFJPQ0VTU09SX0RFRklOSVRJT05TPSckKEdDQ19QUkVQUk9DRVNTT1Jf
QURESVRJT05TKSAkJChpbmhlcml0ZWQpJyBSVU5fQ0xBTkdfU1RBVElDX0FOQUxZWkVSPVlFUyB8
ICQoT1VUUFVUX0ZJTFRFUikgJiYgZXhpdCAkJHtQSVBFU1RBVFVTWzBdfSApCiBlbHNlCiAJKCAk
KFNFVF9DT0xPUl9ESUFHTk9TVElDU19BUkcpOyAkKFBBVEhfVE9fU0NBTl9CVUlMRCkgeGNvZGVi
dWlsZCAkKE9USEVSX09QVElPTlMpICQoWENPREVfT1BUSU9OUykgR0NDX1BSRVBST0NFU1NPUl9E
RUZJTklUSU9OUz0nJChHQ0NfUFJFUFJPQ0VTU09SX0FERElUSU9OUykgJCQoaW5oZXJpdGVkKScg
fCAkKE9VVFBVVF9GSUxURVIpICYmIGV4aXQgJCR7UElQRVNUQVRVU1swXX0gKQogZW5kaWYKIAot
c2V0X2FzYW5fY29uZmlndXJhdGlvbjoKK3NldF9zYW5pdGl6ZXJfY29uZmlndXJhdGlvbjoKIGlm
bmVxICgsJChBU0FOX09QVElPTikpCiAJJChTQ1JJUFRTX1BBVEgpL3NldC13ZWJraXQtY29uZmln
dXJhdGlvbiAkKEFTQU5fT1BUSU9OKQogZW5kaWYKK2lmbmVxICgsJChUU0FOX09QVElPTikpCisJ
JChTQ1JJUFRTX1BBVEgpL3NldC13ZWJraXQtY29uZmlndXJhdGlvbiAkKFRTQU5fT1BUSU9OKQor
ZW5kaWYKIAogY2xlYW46CiAJKCAkKFNFVF9DT0xPUl9ESUFHTk9TVElDU19BUkcpOyB4Y29kZWJ1
aWxkICQoT1RIRVJfT1BUSU9OUykgLWFsbHRhcmdldHMgY2xlYW4gJChYQ09ERV9PUFRJT05TKSB8
ICQoT1VUUFVUX0ZJTFRFUikgJiYgZXhpdCAkJHtQSVBFU1RBVFVTWzBdfSApCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>