<?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>234024</bug_id>
          
          <creation_ts>2021-12-08 11:59:24 -0800</creation_ts>
          <short_desc>[GPU Process] [Filters] Add the encoding and decoding for SVGFilter</short_desc>
          <delta_ts>2021-12-08 16:38:25 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231253</blocked>
    
    <blocked>233989</blocked>
    
    <blocked>234027</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>annulen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821689</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-08 11:59:24 -0800</bug_when>
    <thetext>This will allow SVGFilter and referenced SVGFilter to be applied in GPUProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821706</commentid>
    <comment_count>1</comment_count>
      <attachid>446409</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-08 12:17:55 -0800</bug_when>
    <thetext>Created attachment 446409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821712</commentid>
    <comment_count>2</comment_count>
      <attachid>446409</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2021-12-08 12:28:15 -0800</bug_when>
    <thetext>Comment on attachment 446409
Patch

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

&gt; Source/WebKit/Platform/IPC/FilterReference.h:334
&gt; +    auto expressionReference = WTF::map(filter.expression(), [&amp;indecies] (auto&amp;&amp; term) -&gt; ExpressionReferenceTerm {

Nit - sp. indecies =&gt; indicies

&gt; Source/WebKit/Platform/IPC/FilterReference.h:383
&gt; +    WebCore::SVGFilterExpression expression;

Nit - maybe reserveInitialCapacity here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821722</commentid>
    <comment_count>3</comment_count>
      <attachid>446410</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-08 12:39:31 -0800</bug_when>
    <thetext>Created attachment 446410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821781</commentid>
    <comment_count>4</comment_count>
      <attachid>446422</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-12-08 14:37:46 -0800</bug_when>
    <thetext>Created attachment 446422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821858</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-08 16:37:40 -0800</bug_when>
    <thetext>Committed r286753 (244996@main): &lt;https://commits.webkit.org/244996@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446422.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821859</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-08 16:38:25 -0800</bug_when>
    <thetext>&lt;rdar://problem/86240715&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446409</attachid>
            <date>2021-12-08 12:17:55 -0800</date>
            <delta_ts>2021-12-08 15:13:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234024-20211208121754.patch</filename>
            <type>text/plain</type>
            <size>18556</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYxOThhNDk3MzRmYjFk
YmZlYzk4YmE0MDhhMTBkNDYwODQyYjVkMC4uZjdiNjczZWQyYTU3NjhmYzE1YWI5NDYyMjZjMjdm
ZjhhNDE4MThlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTEyLTA4ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
W0ZpbHRlcnNdIEFkZCB0aGUgZW5jb2RpbmcgYW5kIGRlY29kaW5nIGZvciBTVkdGaWx0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDAyNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgbWV0
aG9kcyB0byBoZWxwIGVuY29kaW5nIGFuZCBkZWNvZGluZyBTVkdGaWx0ZXIgbWVtYmVycy4gQWxz
bworICAgICAgICBhZGQgYSBuZXcgY29uc3RydWN0b3IgZm9yIFNWR0ZpbHRlciB3aGljaCBpcyBn
b2luZyB0byBiZSBjYWxsZWQgZnJvbQorICAgICAgICBGaWx0ZXJSZWZlcmVuY2UuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3RHZW9tZXRyeS5oOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0R2VvbWV0cnk6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6ZGVjb2RlKToKKworICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U291
cmNlQWxwaGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VBbHBoYTo6U291cmNl
QWxwaGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEu
aDoKKyAgICAgICAgVGhlIHBsYW4gaXMgdG8gcmVtb3ZlIHRoZSBpbnB1dCBlZmZlY3RzIGZyb20g
RmlsdGVyRWZmZWN0LiBDdXJyZW50bHkgaXQKKyAgICAgICAgaXMgc3RpbGwgdXNlZCBidXQgbm90
IHRocm91Z2ggRmlsdGVyRWZmZWN0OjphcHBseSgpLiBTbyBpdCBpcyBva2F5IGZvciAKKyAgICAg
ICAgbm93IGZvciBHUFVQcm9jZXNzIHRvIGNyZWF0ZSBTb3VyY2VBbHBoYSB3aXRob3V0IGlucHV0
IHNpbmNlIHRoZSBpbnB1dAorICAgICAgICB3aWxsIG5vdCB1c2VkIGluc2lkZSBHUFVQcm9jZXNz
LgorCisgICAgICAgICogc3ZnL1NWR1VuaXRUeXBlcy5oOgorICAgICAgICAqIHN2Zy9ncmFwaGlj
cy9maWx0ZXJzL1NWR0ZpbHRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXI6OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0ZXI6OlNWR0ZpbHRlcik6CisgICAgICAg
ICogc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmg6CisKIDIwMjEtMTItMDggIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjQ2F0YWx5
c3RdIFZhcmlvdXMgYnVpbGQgZml4ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggOGFkYTdjYTY3Nzg2NDAyMDFhNDIz
YTQ3MGZkM2M3M2ZmZWVmYzA1Ny4uYjhhYzY2OWJhNzRhNmZkOTQ2YjAwYmVjMTMzOWVjMzE5Yzdi
NTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAyMS0xMi0wOCAgU2FpZCBBYm91LUhh
bGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KKworICAgICAgICBbR1BVIFByb2Nlc3NdIFtGaWx0ZXJz
XSBBZGQgdGhlIGVuY29kaW5nIGFuZCBkZWNvZGluZyBmb3IgU1ZHRmlsdGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMjQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGVuY29kaW5nIHRoZSBT
VkdGaWx0ZXIgd2UgbmVlZCB0byBlbmNvZGUgdGhlIGluZGl2aWR1YWwgRmlsdGVyRWZmZWN0cwor
ICAgICAgICBpbiBmaWx0ZXIuZXhwcmVzc2lvbigpLiBBbmQgZm9yIGV2ZXJ5IFNWR0ZpbHRlckV4
cHJlc3Npb25UZXJtIHdlIG5lZWQgdG8KKyAgICAgICAgZW5jb2RlIHRoZSBpbmRleCBvZiBpdHMg
UmVmPEZpbHRlckVmZmVjdD4gaW4gdGhlIGluZGl2aWR1YWwgRmlsdGVyRWZmZWN0cy4KKworICAg
ICAgICBXaGVuIGRlY29kaW5nIHRoZSBTVkdGaWx0ZXIgd2UgZG8gdGhlIG9wcG9zaXRlLiBXZSBn
ZXQgdGhlIFJlZjxGaWx0ZXJFZmZlY3Q+CisgICAgICAgIHdoaWNoIGNvcnJlc3BvbmRzIHRvIGlu
ZGV4IG9mIEV4cHJlc3Npb25SZWZlcmVuY2VUZXJtLiBXZSBzZW5kIHRoZSBkZWNvZGVkCisgICAg
ICAgIGV4cHJlc3Npb24gdG8gdGhlIGNvbnN0cnVjdG9yIG9mIFNWR0ZpbHRlci4KKworICAgICAg
ICAqIFBsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaDoKKyAgICAgICAgKElQQzo6RmlsdGVy
UmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXJFZmZlY3QpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZl
cmVuY2U6OkV4cHJlc3Npb25SZWZlcmVuY2VUZXJtOjplbmNvZGUgY29uc3QpOgorICAgICAgICAo
SVBDOjpGaWx0ZXJSZWZlcmVuY2U6OkV4cHJlc3Npb25SZWZlcmVuY2VUZXJtOjpkZWNvZGUpOgor
ICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZVNWR0ZpbHRlcik6CisgICAgICAg
IChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlU1ZHRmlsdGVyKToKKwogMjAyMS0xMi0wOCAg
TXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtNYWND
YXRhbHlzdF0gVmFyaW91cyBidWlsZCBmaXhlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNmZGYyMWYzZjYyMmJlOTJmM2I1MDMx
N2ZlYzhmMzEwMjk0YzM2NTMuLjY0NzU4NmEzNGFhMTllY2E0YmE3ZDc3NGM0ZmM2MjE5OTlmOTA4
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTI3NTUsNyArMjc1NSw3IEBACiAJCTg0ODUyMjdDMTE5MDE2MkMwMDZFREM3RiAv
KiBKU1NWR0hLZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODQ4NTIyNzgxMTkwMTYyQzAwNkVEQzdGIC8qIEpTU1ZHSEtlcm5FbGVtZW50
LmggKi87IH07CiAJCTg0ODUyMjdFMTE5MDE2MkMwMDZFREM3RiAvKiBKU1NWR1ZLZXJuRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4NTIy
N0ExMTkwMTYyQzAwNkVEQzdGIC8qIEpTU1ZHVktlcm5FbGVtZW50LmggKi87IH07CiAJCTg0ODUy
MjhCMTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODUyMjg4MTE5MDE3M0MwMDZFREM3RiAv
KiBTVkdWS2VybkVsZW1lbnQuaCAqLzsgfTsKLQkJODRBODFGM0UwRkM3REZGMDAwOTU1MzAwIC8q
IFNvdXJjZUFscGhhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NEE4MUYzQzBGQzdERkYwMDA5NTUzMDAgLyogU291cmNlQWxwaGEuaCAqLzsgfTsKKwkJ
ODRBODFGM0UwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEE4MUYzQzBGQzdERkYwMDA5NTUzMDAg
LyogU291cmNlQWxwaGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCAp
OyB9OyB9OwogCQk4NEE4MUY0MjBGQzdFMDI3MDA5NTUzMDAgLyogU291cmNlR3JhcGhpYy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRBODFGNDAwRkM3
RTAyNzAwOTU1MzAwIC8qIFNvdXJjZUdyYXBoaWMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NEIzNDlBMjIyRjg2RTc1MDBENDdCQ0YgLyogRXZl
bnRUYXJnZXRDb25jcmV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODRCMzQ5QTAyMkY4NkU3NDAwRDQ3QkNGIC8qIEV2ZW50VGFyZ2V0Q29uY3JldGUu
aCAqLzsgfTsKIAkJODRCNkI5NzgxMjBGMTNFNTAwQjhFRkFGIC8qIFNWR1BhdGhTZWdMaXN0U291
cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEI2
Qjk3NjEyMEYxM0U1MDBCOEVGQUYgLyogU1ZHUGF0aFNlZ0xpc3RTb3VyY2UuaCAqLzsgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RWZmZWN0R2VvbWV0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRl
cnMvRmlsdGVyRWZmZWN0R2VvbWV0cnkuaAppbmRleCAyZjdkNmFhN2JmYjA4MmE4MTNmNTZlYjdm
ZDRlZTIwMzcxMjlmNWIzLi41MWM4ZWJjYTM2ODg0OTViYjY3ZmNiMjk1MDBmYWY2NDNhNTRlMzlm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Zp
bHRlckVmZmVjdEdlb21ldHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9GaWx0ZXJFZmZlY3RHZW9tZXRyeS5oCkBAIC03OCw2ICs3OCw5IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8RmlsdGVyRWZmZWN0R2VvbWV0cnk+
IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAgRmxvYXRSZWN0IG1fYm91bmRhcmll
czsKICAgICBPcHRpb25TZXQ8RmxhZ3M+IG1fZmxhZ3M7CkBAIC04NSw0ICs4OCw0MiBAQCBwcml2
YXRlOgogCiB1c2luZyBGaWx0ZXJFZmZlY3RHZW9tZXRyeU1hcCA9IEhhc2hNYXA8UmVmPEZpbHRl
ckVmZmVjdD4sIEZpbHRlckVmZmVjdEdlb21ldHJ5PjsKIAordGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4KK3ZvaWQgRmlsdGVyRWZmZWN0R2VvbWV0cnk6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAoreworICAgIGVuY29kZXIgPDwgbV9ib3VuZGFyaWVzOworICAgIGVuY29kZXIgPDwgbV9m
bGFnczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8RmlsdGVy
RWZmZWN0R2VvbWV0cnk+IEZpbHRlckVmZmVjdEdlb21ldHJ5OjpkZWNvZGUoRGVjb2RlciYgZGVj
b2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVjdD4gYm91bmRhcmllczsKKyAgICBk
ZWNvZGVyID4+IGJvdW5kYXJpZXM7CisgICAgaWYgKCFib3VuZGFyaWVzKQorICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxPcHRpb25TZXQ8RmxhZ3M+PiBm
bGFnczsKKyAgICBkZWNvZGVyID4+IGZsYWdzOworICAgIGlmICghZmxhZ3MpCisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRmlsdGVyRWZmZWN0R2VvbWV0cnkoKmJv
dW5kYXJpZXMsICpmbGFncyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworbmFtZXNw
YWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6RmlsdGVy
RWZmZWN0R2VvbWV0cnk6OkZsYWdzPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwK
KyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRWZmZWN0R2VvbWV0cnk6OkZsYWdzLAorCisgICAgICAg
IFdlYkNvcmU6OkZpbHRlckVmZmVjdEdlb21ldHJ5OjpGbGFnczo6SGFzWCwKKyAgICAgICAgV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0R2VvbWV0cnk6OkZsYWdzOjpIYXNZLAorICAgICAgICBXZWJDb3Jl
OjpGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6RmxhZ3M6Okhhc1dpZHRoLAorICAgICAgICBXZWJDb3Jl
OjpGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6RmxhZ3M6Okhhc0hlaWdodAorICAgID47Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKaW5kZXggMTQ3YWZlMDQzZGNlMWQ4MWJl
OGMyMWYyOTZkM2IyNWEzMjllNjhiNC4uOGEzZjFhNTZhOGRkMzRlMmUwYzhhYjVjMGFhZDYzNDk0
YjhiMjQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmls
dGVycy9Tb3VyY2VBbHBoYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKQEAgLTIxLDE3ICsyMSwyNiBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIlNvdXJjZUFscGhhLmgiCiAKLSNpbmNsdWRlICJGaWx0ZXIu
aCIKICNpbmNsdWRlICJTb3VyY2VBbHBoYVNvZnR3YXJlQXBwbGllci5oIgogI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitSZWY8U291cmNl
QWxwaGE+IFNvdXJjZUFscGhhOjpjcmVhdGUoKQoreworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IFNvdXJjZUFscGhhKCkpOworfQorCiBSZWY8U291cmNlQWxwaGE+IFNvdXJjZUFscGhhOjpjcmVh
dGUoRmlsdGVyRWZmZWN0JiBzb3VyY2VFZmZlY3QpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpu
ZXcgU291cmNlQWxwaGEoc291cmNlRWZmZWN0KSk7CiB9CiAKK1NvdXJjZUFscGhhOjpTb3VyY2VB
bHBoYSgpCisgICAgOiBGaWx0ZXJFZmZlY3QoRmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VBbHBo
YSkKK3sKK30KKwogU291cmNlQWxwaGE6OlNvdXJjZUFscGhhKEZpbHRlckVmZmVjdCYgc291cmNl
RWZmZWN0KQogICAgIDogRmlsdGVyRWZmZWN0KEZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlQWxw
aGEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUFscGhhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL1NvdXJjZUFscGhhLmgKaW5kZXggZTIxMWUxYWZlZDkzOWM5YzFlMzM1N2VjNTAyNWI4ODZk
YjlmMjhhZS4uOGQyMTQwY2RiMTgwNDYzNTRlODliYTA2MjEyZTgzODY1ODg0YzBjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBo
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNl
QWxwaGEuaApAQCAtMjUsMTIgKzI1LDE0IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IFNvdXJjZUFscGhhIDogcHVibGljIEZpbHRlckVmZmVjdCB7Ci1wdWJsaWM6ICAgICAgICAKK3B1
YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPFNvdXJjZUFscGhhPiBjcmVhdGUo
KTsKICAgICBzdGF0aWMgUmVmPFNvdXJjZUFscGhhPiBjcmVhdGUoRmlsdGVyRWZmZWN0Jik7CiAK
ICAgICBzdGF0aWMgQXRvbVN0cmluZyBlZmZlY3ROYW1lKCkgeyByZXR1cm4gRmlsdGVyRWZmZWN0
Ojpzb3VyY2VBbHBoYU5hbWUoKTsgfQogCiBwcml2YXRlOgorICAgIFNvdXJjZUFscGhhKCk7CiAg
ICAgZXhwbGljaXQgU291cmNlQWxwaGEoRmlsdGVyRWZmZWN0Jik7CiAKICAgICBGbG9hdFJlY3Qg
Y2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYsIGNvbnN0IEZpbHRlckltYWdlVmVjdG9y
JiBpbnB1dHMsIGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZlU3VicmVnaW9uKSBjb25zdCBvdmVy
cmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVbml0VHlwZXMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdVbml0VHlwZXMuaAppbmRleCBmNDQ0ODVmN2UwNWRmMjQ1M2Zh
YWJlNjliMGMyODgyZmVjNTAwNGJlLi5mZmE3Y2EzZTFmN2MwNDRmZDExZjM0OTI0ZGMwZTIyMTRk
MjU3ZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVW5pdFR5cGVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VuaXRUeXBlcy5oCkBAIC02NiwzICs2NiwxNyBAQCBz
dHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZT4gewogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2UgV1RGIHsKKwordGVtcGxhdGU8
PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlPiB7
CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6U1ZHVW5p
dFR5cGVzOjpTVkdVbml0VHlwZSwKKworICAgICAgICBXZWJDb3JlOjpTVkdVbml0VHlwZXM6OlNW
R19VTklUX1RZUEVfVU5LTk9XTiwKKyAgICAgICAgV2ViQ29yZTo6U1ZHVW5pdFR5cGVzOjpTVkdf
VU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFLAorICAgICAgICBXZWJDb3JlOjpTVkdVbml0VHlwZXM6
OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gKKyAgICA+OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZH
RmlsdGVyLmNwcAppbmRleCAwZGU3ZDg5Y2U2OTM1NDE0ODAwODRhMmE0MjA0MjM5ODRlOGZiMzIx
Li5hYmY3MWNmZTE5MGQ3NGQ0NGJlMTVlZGU4OGYxMDYwNDEwZTNlODBiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAKQEAgLTY5LDYg
KzY5LDExIEBAIFJlZlB0cjxTVkdGaWx0ZXI+IFNWR0ZpbHRlcjo6Y3JlYXRlKFNWR0ZpbHRlckVs
ZW1lbnQmIGZpbHRlckVsZW1lbnQsIFNWR0ZpbHRlckJ1CiAgICAgcmV0dXJuIGZpbHRlcjsKIH0K
IAorUmVmUHRyPFNWR0ZpbHRlcj4gU1ZHRmlsdGVyOjpjcmVhdGUoY29uc3QgRmxvYXRSZWN0JiB0
YXJnZXRCb3VuZGluZ0JveCwgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSBwcmltaXRpdmVVbml0
cywgU1ZHRmlsdGVyRXhwcmVzc2lvbiYmIGV4cHJlc3Npb24pCit7CisgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgU1ZHRmlsdGVyKHRhcmdldEJvdW5kaW5nQm94LCBwcmltaXRpdmVVbml0cywgV1RG
TW92ZShleHByZXNzaW9uKSkpOworfQorCiBTVkdGaWx0ZXI6OlNWR0ZpbHRlcihSZW5kZXJpbmdN
b2RlIHJlbmRlcmluZ01vZGUsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyU2NhbGUsIENsaXBPcGVy
YXRpb24gY2xpcE9wZXJhdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBmaWx0ZXJSZWdpb24sIGNvbnN0
IEZsb2F0UmVjdCYgdGFyZ2V0Qm91bmRpbmdCb3gsIFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGUg
cHJpbWl0aXZlVW5pdHMpCiAgICAgOiBGaWx0ZXIoRmlsdGVyOjpUeXBlOjpTVkdGaWx0ZXIsIHJl
bmRlcmluZ01vZGUsIGZpbHRlclNjYWxlLCBjbGlwT3BlcmF0aW9uLCBmaWx0ZXJSZWdpb24pCiAg
ICAgLCBtX3RhcmdldEJvdW5kaW5nQm94KHRhcmdldEJvdW5kaW5nQm94KQpAQCAtNzYsNiArODEs
MTQgQEAgU1ZHRmlsdGVyOjpTVkdGaWx0ZXIoUmVuZGVyaW5nTW9kZSByZW5kZXJpbmdNb2RlLCBj
b25zdCBGbG9hdFNpemUmIGZpbHRlclNjYWxlLAogewogfQogCitTVkdGaWx0ZXI6OlNWR0ZpbHRl
cihjb25zdCBGbG9hdFJlY3QmIHRhcmdldEJvdW5kaW5nQm94LCBTVkdVbml0VHlwZXM6OlNWR1Vu
aXRUeXBlIHByaW1pdGl2ZVVuaXRzLCBTVkdGaWx0ZXJFeHByZXNzaW9uJiYgZXhwcmVzc2lvbikK
KyAgICA6IEZpbHRlcihGaWx0ZXI6OlR5cGU6OlNWR0ZpbHRlcikKKyAgICAsIG1fdGFyZ2V0Qm91
bmRpbmdCb3godGFyZ2V0Qm91bmRpbmdCb3gpCisgICAgLCBtX3ByaW1pdGl2ZVVuaXRzKHByaW1p
dGl2ZVVuaXRzKQorICAgICwgbV9leHByZXNzaW9uKFdURk1vdmUoZXhwcmVzc2lvbikpCit7Cit9
CisKIEZsb2F0U2l6ZSBTVkdGaWx0ZXI6OnJlc29sdmVkU2l6ZShjb25zdCBGbG9hdFNpemUmIHNp
emUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpbWl0aXZlVW5pdHMgPT0gU1ZHVW5pdFR5cGVz
OjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YID8gc2l6ZSAqIG1fdGFyZ2V0Qm91bmRp
bmdCb3guc2l6ZSgpIDogc2l6ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFw
aGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRmlsdGVyLmgKaW5kZXggMzBjNGVhMGY2OTc4YjU1OTIwNDI4MDM3ZGRjNzUxYTVj
NDBhNDRjOC4uY2RiMDk4OGU0YWM4MTZhYjFlMTU0NWEzM2ZhNzQ5MzA1MTZjMzQxNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKQEAgLTM5
LDkgKzM5LDEzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmUHRyPFNWR0ZpbHRlcj4gY3JlYXRl
KFNWR0ZpbHRlckVsZW1lbnQmLCBTVkdGaWx0ZXJCdWlsZGVyJiwgUmVuZGVyaW5nTW9kZSwgY29u
c3QgRmxvYXRTaXplJiBmaWx0ZXJTY2FsZSwgQ2xpcE9wZXJhdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiB0YXJnZXRCb3VuZGluZ0JveCwgRmlsdGVyRWZmZWN0JiBwcmV2aW91c0VmZmVjdCk7CiAgICAg
c3RhdGljIFJlZlB0cjxTVkdGaWx0ZXI+IGNyZWF0ZShTVkdGaWx0ZXJFbGVtZW50JiwgU1ZHRmls
dGVyQnVpbGRlciYsIFJlbmRlcmluZ01vZGUsIGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyU2NhbGUs
IGNvbnN0IEZsb2F0UmVjdCYgZmlsdGVyUmVnaW9uLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEJv
dW5kaW5nQm94KTsKICAgICBzdGF0aWMgUmVmUHRyPFNWR0ZpbHRlcj4gY3JlYXRlKFNWR0ZpbHRl
ckVsZW1lbnQmLCBTVkdGaWx0ZXJCdWlsZGVyJiwgUmVuZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRT
aXplJiBmaWx0ZXJTY2FsZSwgQ2xpcE9wZXJhdGlvbiwgY29uc3QgRmxvYXRSZWN0JiBmaWx0ZXJS
ZWdpb24sIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0Qm91bmRpbmdCb3gsIEZpbHRlckVmZmVjdCog
cHJldmlvdXNFZmZlY3QpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWZQdHI8U1ZHRmls
dGVyPiBjcmVhdGUoY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRCb3VuZGluZ0JveCwgU1ZHVW5pdFR5
cGVzOjpTVkdVbml0VHlwZSBwcmltaXRpdmVVbml0cywgU1ZHRmlsdGVyRXhwcmVzc2lvbiYmKTsK
IAogICAgIEZsb2F0UmVjdCB0YXJnZXRCb3VuZGluZ0JveCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFy
Z2V0Qm91bmRpbmdCb3g7IH0KKyAgICBTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlIHByaW1pdGl2
ZVVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVVbml0czsgfQogCisgICAgY29uc3Qg
U1ZHRmlsdGVyRXhwcmVzc2lvbiYgZXhwcmVzc2lvbigpIGNvbnN0IHsgcmV0dXJuIG1fZXhwcmVz
c2lvbjsgfQorICAgIAogICAgIFJlZlB0cjxGaWx0ZXJFZmZlY3Q+IGxhc3RFZmZlY3QoKSBjb25z
dCBmaW5hbDsKIAogICAgIFJlZlB0cjxGaWx0ZXJJbWFnZT4gYXBwbHkoKSBmaW5hbDsKQEAgLTUw
LDYgKzU0LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIFNWR0ZpbHRlcihSZW5kZXJpbmdN
b2RlLCBjb25zdCBGbG9hdFNpemUmIGZpbHRlclNjYWxlLCBDbGlwT3BlcmF0aW9uLCBjb25zdCBG
bG9hdFJlY3QmIGZpbHRlclJlZ2lvbiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRCb3VuZGluZ0Jv
eCwgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSBwcmltaXRpdmVVbml0cyk7CisgICAgU1ZHRmls
dGVyKGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0Qm91bmRpbmdCb3gsIFNWR1VuaXRUeXBlczo6U1ZH
VW5pdFR5cGUgcHJpbWl0aXZlVW5pdHMsIFNWR0ZpbHRlckV4cHJlc3Npb24mJik7CiAKICAgICB2
b2lkIHNldEV4cHJlc3Npb24oU1ZHRmlsdGVyRXhwcmVzc2lvbiYmIGV4cHJlc3Npb24pIHsgbV9l
eHByZXNzaW9uID0gV1RGTW92ZShleHByZXNzaW9uKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2UuaCBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oCmluZGV4IDgxODQwYmQ3MGM1Y2I2NDBjZGJlNmQ4
NTA5NTM1YjJlMjg4NjZmMDYuLjExN2VlNzcyNmZiZTQ4NjUxNjZhYjM0ZDRkNjAxOTc0OGI1MjFi
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5j
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oCkBA
IC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9GaWx0ZXIuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0ZpbHRlckVmZmVjdFZlY3Rvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU1ZHRmlsdGVy
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Tb3VyY2VBbHBoYS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
U291cmNlR3JhcGhpYy5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTYyLDggKzYzLDIwIEBAIHB1
YmxpYzoKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxG
aWx0ZXJSZWZlcmVuY2U+IGRlY29kZShEZWNvZGVyJik7CiAKIHByaXZhdGU6CisgICAgc3RydWN0
IEV4cHJlc3Npb25SZWZlcmVuY2VUZXJtIHsKKyAgICAgICAgdW5zaWduZWQgaW5kZXg7CisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsdGVyRWZmZWN0R2VvbWV0cnk+IGdlb21ldHJ5
OworICAgICAgICB1bnNpZ25lZCBsZXZlbDsKKyAgICAKKyAgICAgICAgdGVtcGxhdGU8Y2xhc3Mg
RW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OworICAgICAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHByZXNzaW9uUmVmZXJlbmNlVGVy
bT4gZGVjb2RlKERlY29kZXImKTsKKyAgICB9OworICAgIAorICAgIHVzaW5nIEV4cHJlc3Npb25S
ZWZlcmVuY2UgPSBWZWN0b3I8RXhwcmVzc2lvblJlZmVyZW5jZVRlcm0+OworCiAgICAgdGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2RlRmlsdGVyRWZmZWN0KGNvbnN0IFdl
YkNvcmU6OkZpbHRlckVmZmVjdCYsIEVuY29kZXImKTsKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNv
ZGVyPiBzdGF0aWMgUmVmUHRyPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4gZGVjb2RlRmlsdGVyRWZm
ZWN0KERlY29kZXImLCBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZSk7CisgICAgdGVtcGxh
dGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q+IGRl
Y29kZUZpbHRlckVmZmVjdChEZWNvZGVyJik7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVy
PiBzdGF0aWMgdm9pZCBlbmNvZGVTVkdGaWx0ZXIoY29uc3QgV2ViQ29yZTo6U1ZHRmlsdGVyJiwg
RW5jb2RlciYpOwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBSZWZQdHI8V2Vi
Q29yZTo6U1ZHRmlsdGVyPiBkZWNvZGVTVkdGaWx0ZXIoRGVjb2RlciYpOwpAQCAtMjQzLDExICsy
NTYsMTQgQEAgUmVmUHRyPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4gRmlsdGVyUmVmZXJlbmNlOjpk
ZWNvZGVGaWx0ZXJFZmZlY3QoRGVjb2RlciYgZGVjb2QKICAgICAgICAgZWZmZWN0ID0gV2ViQ29y
ZTo6RkVUdXJidWxlbmNlOjpkZWNvZGUoZGVjb2Rlcik7CiAgICAgICAgIGJyZWFrOwogCisgICAg
Y2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUFscGhhOgorICAgICAgICBl
ZmZlY3QgPSBXZWJDb3JlOjpTb3VyY2VBbHBoYTo6Y3JlYXRlKCk7CisgICAgICAgIGJyZWFrOwor
CiAgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUdyYXBoaWM6CiAg
ICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OlNvdXJjZUdyYXBoaWM6OmNyZWF0ZSgpOwogICAgICAg
ICBicmVhazsKIAotICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VB
bHBoYToKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9
CkBAIC0yNjAsMTcgKzI3NiwxMjAgQEAgUmVmUHRyPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4gRmls
dGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXJFZmZlY3QoRGVjb2RlciYgZGVjb2QKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIAordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK1JlZlB0cjxXZWJDb3Jl
OjpGaWx0ZXJFZmZlY3Q+IEZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlRmlsdGVyRWZmZWN0KERlY29k
ZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGaWx0ZXJGdW5jdGlv
bjo6VHlwZT4gZmlsdGVyVHlwZTsKKyAgICBkZWNvZGVyID4+IGZpbHRlclR5cGU7CisgICAgaWYg
KCFmaWx0ZXJUeXBlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiBkZWNv
ZGVGaWx0ZXJFZmZlY3QoZGVjb2RlciwgKmZpbHRlclR5cGUpOworfQorCit0ZW1wbGF0ZTxjbGFz
cyBFbmNvZGVyPgordm9pZCBGaWx0ZXJSZWZlcmVuY2U6OkV4cHJlc3Npb25SZWZlcmVuY2VUZXJt
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8IGluZGV4
OworICAgIGVuY29kZXIgPDwgZ2VvbWV0cnk7CisgICAgZW5jb2RlciA8PCBsZXZlbDsKK30KKwor
dGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9uYWw8RmlsdGVyUmVmZXJlbmNlOjpF
eHByZXNzaW9uUmVmZXJlbmNlVGVybT4gRmlsdGVyUmVmZXJlbmNlOjpFeHByZXNzaW9uUmVmZXJl
bmNlVGVybTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDx1
bnNpZ25lZD4gaW5kZXg7CisgICAgZGVjb2RlciA+PiBpbmRleDsKKyAgICBpZiAoIWluZGV4KQor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkZpbHRlckVmZmVjdEdlb21ldHJ5Pj4gZ2VvbWV0cnk7CisgICAgZGVj
b2RlciA+PiBnZW9tZXRyeTsKKyAgICBpZiAoIWdlb21ldHJ5KQorICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gbGV2ZWw7CisgICAgZGVj
b2RlciA+PiBsZXZlbDsKKyAgICBpZiAoIWxldmVsKQorICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworCisgICAgcmV0dXJuIHsgeyAqaW5kZXgsICpnZW9tZXRyeSwgKmxldmVsIH0gfTsKK30K
KwogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgRmlsdGVyUmVmZXJlbmNlOjplbmNvZGVT
VkdGaWx0ZXIoY29uc3QgV2ViQ29yZTo6U1ZHRmlsdGVyJiBmaWx0ZXIsIEVuY29kZXImIGVuY29k
ZXIpCiB7Ci0gICAgLy8gRklYTUU6IEVuY29kZSB0aGUgU1ZHRmlsdGVyLgorICAgIEhhc2hNYXA8
UmVmPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4sIHVuc2lnbmVkPiBpbmRlY2llczsKKyAgICBWZWN0
b3I8UmVmPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4+IGVmZmVjdHM7CisKKyAgICAvLyBHZXQgdGhl
IGluZGl2aWR1YWwgRmlsdGVyRWZmZWN0cyBpbiBmaWx0ZXIuZXhwcmVzc2lvbigpLgorICAgIGZv
ciAoYXV0byYgdGVybSA6IGZpbHRlci5leHByZXNzaW9uKCkpIHsKKyAgICAgICAgaWYgKGluZGVj
aWVzLmNvbnRhaW5zKHRlcm0uZWZmZWN0KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBpbmRlY2llcy5hZGQodGVybS5lZmZlY3QsIGVmZmVjdHMuc2l6ZSgpKTsKKyAgICAgICAgZWZm
ZWN0cy5hcHBlbmQodGVybS5lZmZlY3QpOworICAgIH0KKworICAgIC8vIFJlcGxhY2UgdGhlIFJl
ZjxGaWx0ZXJFZmZlY3Q+IGluIFNWR0V4cHJlc3Npb25UZXJtIHdpdGggaXRzIGluZGV4IGluIGlu
ZGVjaWVzLgorICAgIGF1dG8gZXhwcmVzc2lvblJlZmVyZW5jZSA9IFdURjo6bWFwKGZpbHRlci5l
eHByZXNzaW9uKCksIFsmaW5kZWNpZXNdIChhdXRvJiYgdGVybSkgLT4gRXhwcmVzc2lvblJlZmVy
ZW5jZVRlcm0geworICAgICAgICBBU1NFUlQoaW5kZWNpZXMuY29udGFpbnModGVybS5lZmZlY3Qp
KTsKKyAgICAgICAgdW5zaWduZWQgaW5kZXggPSBpbmRlY2llcy5nZXQodGVybS5lZmZlY3QpOwor
ICAgICAgICByZXR1cm4geyBpbmRleCwgdGVybS5nZW9tZXRyeSwgdGVybS5sZXZlbCB9OworICAg
IH0pOworCisgICAgZW5jb2RlciA8PCBmaWx0ZXIudGFyZ2V0Qm91bmRpbmdCb3goKTsKKyAgICBl
bmNvZGVyIDw8IGZpbHRlci5wcmltaXRpdmVVbml0cygpOworICAgIAorICAgIGVuY29kZXIgPDwg
ZWZmZWN0cy5zaXplKCk7CisgICAgZm9yIChhdXRvJiBlZmZlY3QgOiBlZmZlY3RzKQorICAgICAg
ICBlbmNvZGVGaWx0ZXJFZmZlY3QoZWZmZWN0LCBlbmNvZGVyKTsKKworICAgIGVuY29kZXIgPDwg
ZXhwcmVzc2lvblJlZmVyZW5jZTsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIFJlZlB0
cjxXZWJDb3JlOjpTVkdGaWx0ZXI+IEZpbHRlclJlZmVyZW5jZTo6ZGVjb2RlU1ZHRmlsdGVyKERl
Y29kZXImIGRlY29kZXIpCiB7Ci0gICAgLy8gRklYTUU6IERlY29kZSB0aGUgU1ZHRmlsdGVyLgot
ICAgIHJldHVybiBudWxscHRyOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0
PiB0YXJnZXRCb3VuZGluZ0JveDsKKyAgICBkZWNvZGVyID4+IHRhcmdldEJvdW5kaW5nQm94Owor
ICAgIGlmICghdGFyZ2V0Qm91bmRpbmdCb3gpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisg
ICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlPiBwcmlt
aXRpdmVVbml0czsKKyAgICBkZWNvZGVyID4+IHByaW1pdGl2ZVVuaXRzOworICAgIGlmICghcHJp
bWl0aXZlVW5pdHMpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgc3RkOjpvcHRpb25h
bDxzaXplX3Q+IGVmZmVjdHNTaXplOworICAgIGRlY29kZXIgPj4gZWZmZWN0c1NpemU7CisgICAg
aWYgKCFlZmZlY3RzU2l6ZSB8fCAhKmVmZmVjdHNTaXplKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIFZlY3RvcjxSZWY8V2ViQ29yZTo6RmlsdGVyRWZmZWN0Pj4gZWZmZWN0czsKKwor
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgKmVmZmVjdHNTaXplOyArK2kpIHsKKyAgICAgICAg
YXV0byBlZmZlY3QgPSBkZWNvZGVGaWx0ZXJFZmZlY3QoZGVjb2Rlcik7CisgICAgICAgIGlmICgh
ZWZmZWN0KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICAgICAgZWZmZWN0cy5h
cHBlbmQoZWZmZWN0LnJlbGVhc2VOb25OdWxsKCkpOworICAgIH0KKworICAgIHN0ZDo6b3B0aW9u
YWw8RXhwcmVzc2lvblJlZmVyZW5jZT4gZXhwcmVzc2lvblJlZmVyZW5jZTsKKyAgICBkZWNvZGVy
ID4+IGV4cHJlc3Npb25SZWZlcmVuY2U7CisgICAgaWYgKCFleHByZXNzaW9uUmVmZXJlbmNlIHx8
IGV4cHJlc3Npb25SZWZlcmVuY2UtPmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBXZWJDb3JlOjpTVkdGaWx0ZXJFeHByZXNzaW9uIGV4cHJlc3Npb247CisgICAgCisg
ICAgLy8gUmVwbGFjZSB0aGUgaW5kZXggaW4gRXhwcmVzc2lvblJlZmVyZW5jZVRlcm0gd2l0aCBp
dHMgUmVmPEZpbHRlckVmZmVjdD4gaW4gZWZmZWN0cy4KKyAgICBmb3IgKGF1dG8mIHRlcm0gOiAq
ZXhwcmVzc2lvblJlZmVyZW5jZSkgeworICAgICAgICBpZiAodGVybS5pbmRleCA+PSBlZmZlY3Rz
LnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBleHByZXNzaW9u
LmFwcGVuZCh7IGVmZmVjdHNbdGVybS5pbmRleF0sIHRlcm0uZ2VvbWV0cnksIHRlcm0ubGV2ZWwg
fSk7CisgICAgfQorICAgIAorICAgIHJldHVybiBXZWJDb3JlOjpTVkdGaWx0ZXI6OmNyZWF0ZSgq
dGFyZ2V0Qm91bmRpbmdCb3gsICpwcmltaXRpdmVVbml0cywgV1RGTW92ZShleHByZXNzaW9uKSk7
CiB9CiAKIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cg==
</data>
<flag name="review"
          id="471810"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
    <flag name="commit-queue"
          id="471835"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446410</attachid>
            <date>2021-12-08 12:39:31 -0800</date>
            <delta_ts>2021-12-08 15:10:49 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234024-20211208123930.patch</filename>
            <type>text/plain</type>
            <size>18626</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NjQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmYxOThhNDk3MzRmYjFk
YmZlYzk4YmE0MDhhMTBkNDYwODQyYjVkMC4uNjUxNTM2NzdmZDFkODRkMGE0NTcwOTNmZGY0MmY0
NDVkZTgxNjkyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTEyLTA4ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
W0ZpbHRlcnNdIEFkZCB0aGUgZW5jb2RpbmcgYW5kIGRlY29kaW5nIGZvciBTVkdGaWx0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDAyNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBBZGQgbmV3IG1ldGhv
ZHMgdG8gaGVscCBlbmNvZGluZyBhbmQgZGVjb2RpbmcgU1ZHRmlsdGVyIG1lbWJlcnMuIEFsc28K
KyAgICAgICAgYWRkIGEgbmV3IGNvbnN0cnVjdG9yIGZvciBTVkdGaWx0ZXIgd2hpY2ggaXMgZ29p
bmcgdG8gYmUgY2FsbGVkIGZyb20KKyAgICAgICAgRmlsdGVyUmVmZXJlbmNlLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0R2VvbWV0cnkuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkZpbHRlckVmZmVjdEdlb21ldHJ5OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsdGVyRWZmZWN0R2VvbWV0cnk6OmRlY29kZSk6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJj
ZUFscGhhOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQWxwaGE6OlNvdXJjZUFs
cGhhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmg6
CisgICAgICAgIFRoZSBwbGFuIGlzIHRvIHJlbW92ZSB0aGUgaW5wdXQgZWZmZWN0cyBmcm9tIEZp
bHRlckVmZmVjdC4gQ3VycmVudGx5IGl0CisgICAgICAgIGlzIHN0aWxsIHVzZWQgYnV0IG5vdCB0
aHJvdWdoIEZpbHRlckVmZmVjdDo6YXBwbHkoKS4gU28gaXQgaXMgb2theSBmb3IgCisgICAgICAg
IG5vdyBmb3IgR1BVUHJvY2VzcyB0byBjcmVhdGUgU291cmNlQWxwaGEgd2l0aG91dCBpbnB1dCBz
aW5jZSB0aGUgaW5wdXQKKyAgICAgICAgd2lsbCBub3QgdXNlZCBpbnNpZGUgR1BVUHJvY2Vzcy4K
KworICAgICAgICAqIHN2Zy9TVkdVbml0VHlwZXMuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3Mv
ZmlsdGVycy9TVkdGaWx0ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHRmlsdGVyOjpTVkdGaWx0ZXIpOgorICAgICAgICAq
IHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oOgorCiAyMDIxLTEyLTA4ICBNeWxlcyBD
LiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY0NhdGFseXN0
XSBWYXJpb3VzIGJ1aWxkIGZpeGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhhZGE3Y2E2Nzc4NjQwMjAxYTQyM2E0
NzBmZDNjNzNmZmVlZmMwNTcuLjQ5MmQ1ZGEwNmUwNjcxNGZkOTNiOGJkZjgyYmViODZkNjQ0MDYw
MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMTItMDggIFNhaWQgQWJvdS1IYWxs
YXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBbRmlsdGVyc10g
QWRkIHRoZSBlbmNvZGluZyBhbmQgZGVjb2RpbmcgZm9yIFNWR0ZpbHRlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0MDI0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAgICAgIFdoZW4gZW5jb2RpbmcgdGhlIFNWR0Zp
bHRlciB3ZSBuZWVkIHRvIGVuY29kZSB0aGUgaW5kaXZpZHVhbCBGaWx0ZXJFZmZlY3RzCisgICAg
ICAgIGluIGZpbHRlci5leHByZXNzaW9uKCkuIEFuZCBmb3IgZXZlcnkgU1ZHRmlsdGVyRXhwcmVz
c2lvblRlcm0gd2UgbmVlZCB0bworICAgICAgICBlbmNvZGUgdGhlIGluZGV4IG9mIGl0cyBSZWY8
RmlsdGVyRWZmZWN0PiBpbiB0aGUgaW5kaXZpZHVhbCBGaWx0ZXJFZmZlY3RzLgorCisgICAgICAg
IFdoZW4gZGVjb2RpbmcgdGhlIFNWR0ZpbHRlciB3ZSBkbyB0aGUgb3Bwb3NpdGUuIFdlIGdldCB0
aGUgUmVmPEZpbHRlckVmZmVjdD4KKyAgICAgICAgd2hpY2ggY29ycmVzcG9uZHMgdG8gaW5kZXgg
b2YgRXhwcmVzc2lvblJlZmVyZW5jZVRlcm0uIFdlIHNlbmQgdGhlIGRlY29kZWQKKyAgICAgICAg
ZXhwcmVzc2lvbiB0byB0aGUgY29uc3RydWN0b3Igb2YgU1ZHRmlsdGVyLgorCisgICAgICAgICog
UGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZl
cmVuY2U6OmRlY29kZUZpbHRlckVmZmVjdCk6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5j
ZTo6RXhwcmVzc2lvblJlZmVyZW5jZVRlcm06OmVuY29kZSBjb25zdCk6CisgICAgICAgIChJUEM6
OkZpbHRlclJlZmVyZW5jZTo6RXhwcmVzc2lvblJlZmVyZW5jZVRlcm06OmRlY29kZSk6CisgICAg
ICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZW5jb2RlU1ZHRmlsdGVyKToKKyAgICAgICAgKElQ
Qzo6RmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVTVkdGaWx0ZXIpOgorCiAyMDIxLTEyLTA4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW01hY0NhdGFs
eXN0XSBWYXJpb3VzIGJ1aWxkIGZpeGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggM2ZkZjIxZjNmNjIyYmU5MmYzYjUwMzE3ZmVj
OGYzMTAyOTRjMzY1My4uNjQ3NTg2YTM0YWExOWVjYTRiYTdkNzc0YzRmYzYyMTk5OWY5MDg3MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMjc1NSw3ICsyNzU1LDcgQEAKIAkJODQ4NTIyN0MxMTkwMTYyQzAwNkVEQzdGIC8qIEpT
U1ZHSEtlcm5FbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA4NDg1MjI3ODExOTAxNjJDMDA2RURDN0YgLyogSlNTVkdIS2VybkVsZW1lbnQuaCAq
LzsgfTsKIAkJODQ4NTIyN0UxMTkwMTYyQzAwNkVEQzdGIC8qIEpTU1ZHVktlcm5FbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDg1MjI3QTEx
OTAxNjJDMDA2RURDN0YgLyogSlNTVkdWS2VybkVsZW1lbnQuaCAqLzsgfTsKIAkJODQ4NTIyOEIx
MTkwMTczQzAwNkVEQzdGIC8qIFNWR1ZLZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4NTIyODgxMTkwMTczQzAwNkVEQzdGIC8qIFNW
R1ZLZXJuRWxlbWVudC5oICovOyB9OwotCQk4NEE4MUYzRTBGQzdERkYwMDA5NTUzMDAgLyogU291
cmNlQWxwaGEuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDg0QTgxRjNDMEZDN0RGRjAwMDk1NTMwMCAvKiBTb3VyY2VBbHBoYS5oICovOyB9OworCQk4NEE4
MUYzRTBGQzdERkYwMDA5NTUzMDAgLyogU291cmNlQWxwaGEuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0QTgxRjNDMEZDN0RGRjAwMDk1NTMwMCAvKiBT
b3VyY2VBbHBoYS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTg0QTgxRjQyMEZDN0UwMjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEE4MUY0MDBGQzdFMDI3
MDA5NTUzMDAgLyogU291cmNlR3JhcGhpYy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTg0QjM0OUEyMjJGODZFNzUwMEQ0N0JDRiAvKiBFdmVudFRh
cmdldENvbmNyZXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA4NEIzNDlBMDIyRjg2RTc0MDBENDdCQ0YgLyogRXZlbnRUYXJnZXRDb25jcmV0ZS5oICov
OyB9OwogCQk4NEI2Qjk3ODEyMEYxM0U1MDBCOEVGQUYgLyogU1ZHUGF0aFNlZ0xpc3RTb3VyY2Uu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0QjZCOTc2
MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5oICovOyB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZl
Y3RHZW9tZXRyeS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9G
aWx0ZXJFZmZlY3RHZW9tZXRyeS5oCmluZGV4IDJmN2Q2YWE3YmZiMDgyYTgxM2Y1NmViN2ZkNGVl
MjAzNzEyOWY1YjMuLjUxYzhlYmNhMzY4ODQ5NWJiNjdmY2IyOTUwMGZhZjY0M2E1NGUzOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVy
RWZmZWN0R2VvbWV0cnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL0ZpbHRlckVmZmVjdEdlb21ldHJ5LmgKQEAgLTc4LDYgKzc4LDkgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgIH0KIAorICAgIHRlbXBsYXRlPGNsYXNz
IEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKKyAgICB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxGaWx0ZXJFZmZlY3RHZW9tZXRyeT4gZGVj
b2RlKERlY29kZXImKTsKKwogcHJpdmF0ZToKICAgICBGbG9hdFJlY3QgbV9ib3VuZGFyaWVzOwog
ICAgIE9wdGlvblNldDxGbGFncz4gbV9mbGFnczsKQEAgLTg1LDQgKzg4LDQyIEBAIHByaXZhdGU6
CiAKIHVzaW5nIEZpbHRlckVmZmVjdEdlb21ldHJ5TWFwID0gSGFzaE1hcDxSZWY8RmlsdGVyRWZm
ZWN0PiwgRmlsdGVyRWZmZWN0R2VvbWV0cnk+OwogCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgor
dm9pZCBGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlciA8PCBtX2JvdW5kYXJpZXM7CisgICAgZW5jb2RlciA8PCBtX2ZsYWdz
OworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxGaWx0ZXJFZmZl
Y3RHZW9tZXRyeT4gRmlsdGVyRWZmZWN0R2VvbWV0cnk6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVy
KQoreworICAgIHN0ZDo6b3B0aW9uYWw8RmxvYXRSZWN0PiBib3VuZGFyaWVzOworICAgIGRlY29k
ZXIgPj4gYm91bmRhcmllczsKKyAgICBpZiAoIWJvdW5kYXJpZXMpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPE9wdGlvblNldDxGbGFncz4+IGZsYWdz
OworICAgIGRlY29kZXIgPj4gZmxhZ3M7CisgICAgaWYgKCFmbGFncykKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIHJldHVybiBGaWx0ZXJFZmZlY3RHZW9tZXRyeSgqYm91bmRh
cmllcywgKmZsYWdzKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3BhY2Ug
V1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpGaWx0ZXJFZmZl
Y3RHZW9tZXRyeTo6RmxhZ3M+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAg
ICAgICBXZWJDb3JlOjpGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6RmxhZ3MsCisKKyAgICAgICAgV2Vi
Q29yZTo6RmlsdGVyRWZmZWN0R2VvbWV0cnk6OkZsYWdzOjpIYXNYLAorICAgICAgICBXZWJDb3Jl
OjpGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6RmxhZ3M6Okhhc1ksCisgICAgICAgIFdlYkNvcmU6OkZp
bHRlckVmZmVjdEdlb21ldHJ5OjpGbGFnczo6SGFzV2lkdGgsCisgICAgICAgIFdlYkNvcmU6OkZp
bHRlckVmZmVjdEdlb21ldHJ5OjpGbGFnczo6SGFzSGVpZ2h0CisgICAgPjsKK307CisKK30gLy8g
bmFtZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmNwcAppbmRleCAxNDdhZmUwNDNkY2UxZDgxYmU4YzIx
ZjI5NmQzYjI1YTMyOWU2OGI0Li44YTNmMWE1NmE4ZGQzNGUyZTBjOGFiNWMwYWFkNjM0OTRiOGIy
NDZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJz
L1NvdXJjZUFscGhhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
aWx0ZXJzL1NvdXJjZUFscGhhLmNwcApAQCAtMjEsMTcgKzIxLDI2IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiU291cmNlQWxwaGEuaCIKIAotI2luY2x1ZGUgIkZpbHRlci5oIgog
I2luY2x1ZGUgIlNvdXJjZUFscGhhU29mdHdhcmVBcHBsaWVyLmgiCiAjaW5jbHVkZSA8d3RmL3Rl
eHQvVGV4dFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK1JlZjxTb3VyY2VBbHBo
YT4gU291cmNlQWxwaGE6OmNyZWF0ZSgpCit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU291
cmNlQWxwaGEoKSk7Cit9CisKIFJlZjxTb3VyY2VBbHBoYT4gU291cmNlQWxwaGE6OmNyZWF0ZShG
aWx0ZXJFZmZlY3QmIHNvdXJjZUVmZmVjdCkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBT
b3VyY2VBbHBoYShzb3VyY2VFZmZlY3QpKTsKIH0KIAorU291cmNlQWxwaGE6OlNvdXJjZUFscGhh
KCkKKyAgICA6IEZpbHRlckVmZmVjdChGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUFscGhhKQor
eworfQorCiBTb3VyY2VBbHBoYTo6U291cmNlQWxwaGEoRmlsdGVyRWZmZWN0JiBzb3VyY2VFZmZl
Y3QpCiAgICAgOiBGaWx0ZXJFZmZlY3QoRmlsdGVyRWZmZWN0OjpUeXBlOjpTb3VyY2VBbHBoYSkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlQWxwaGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMv
U291cmNlQWxwaGEuaAppbmRleCBlMjExZTFhZmVkOTM5YzljMWUzMzU3ZWM1MDI1Yjg4NmRiOWYy
OGFlLi44ZDIxNDBjZGIxODA0NjM1NGU4OWJhMDYyMTJlODM4NjU4ODRjMGMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBo
YS5oCkBAIC0yNSwxMiArMjUsMTQgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgU291
cmNlQWxwaGEgOiBwdWJsaWMgRmlsdGVyRWZmZWN0IHsKLXB1YmxpYzogICAgICAgIAorcHVibGlj
OgorICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8U291cmNlQWxwaGE+IGNyZWF0ZSgpOwog
ICAgIHN0YXRpYyBSZWY8U291cmNlQWxwaGE+IGNyZWF0ZShGaWx0ZXJFZmZlY3QmKTsKIAogICAg
IHN0YXRpYyBBdG9tU3RyaW5nIGVmZmVjdE5hbWUoKSB7IHJldHVybiBGaWx0ZXJFZmZlY3Q6OnNv
dXJjZUFscGhhTmFtZSgpOyB9CiAKIHByaXZhdGU6CisgICAgU291cmNlQWxwaGEoKTsKICAgICBl
eHBsaWNpdCBTb3VyY2VBbHBoYShGaWx0ZXJFZmZlY3QmKTsKIAogICAgIEZsb2F0UmVjdCBjYWxj
dWxhdGVJbWFnZVJlY3QoY29uc3QgRmlsdGVyJiwgY29uc3QgRmlsdGVySW1hZ2VWZWN0b3ImIGlu
cHV0cywgY29uc3QgRmxvYXRSZWN0JiBwcmltaXRpdmVTdWJyZWdpb24pIGNvbnN0IG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VuaXRUeXBlcy5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1VuaXRUeXBlcy5oCmluZGV4IGY0NDQ4NWY3ZTA1ZGYyNDUzZmFhYmU2
OWIwYzI4ODJmZWM1MDA0YmUuLmZmYTdjYTNlMWY3YzA0NGZkMTFmMzQ5MjRkYzBlMjIxNGQyNTdl
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVbml0VHlwZXMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVW5pdFR5cGVzLmgKQEAgLTY2LDMgKzY2LDE3IEBAIHN0cnVj
dCBTVkdQcm9wZXJ0eVRyYWl0czxTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlPiB7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25hbWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0
cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGU+IHsKKyAg
ICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpTVkdVbml0VHlw
ZXM6OlNWR1VuaXRUeXBlLAorCisgICAgICAgIFdlYkNvcmU6OlNWR1VuaXRUeXBlczo6U1ZHX1VO
SVRfVFlQRV9VTktOT1dOLAorICAgICAgICBXZWJDb3JlOjpTVkdVbml0VHlwZXM6OlNWR19VTklU
X1RZUEVfVVNFUlNQQUNFT05VU0UsCisgICAgICAgIFdlYkNvcmU6OlNWR1VuaXRUeXBlczo6U1ZH
X1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZpbHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0
ZXIuY3BwCmluZGV4IDBkZTdkODljZTY5MzU0MTQ4MDA4NGEyYTQyMDQyMzk4NGU4ZmIzMjEuLmFi
ZjcxY2ZlMTkwZDc0ZDQ0YmUxNWVkZTg4ZjEwNjA0MTBlM2U4MGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcApAQCAtNjksNiArNjks
MTEgQEAgUmVmUHRyPFNWR0ZpbHRlcj4gU1ZHRmlsdGVyOjpjcmVhdGUoU1ZHRmlsdGVyRWxlbWVu
dCYgZmlsdGVyRWxlbWVudCwgU1ZHRmlsdGVyQnUKICAgICByZXR1cm4gZmlsdGVyOwogfQogCitS
ZWZQdHI8U1ZHRmlsdGVyPiBTVkdGaWx0ZXI6OmNyZWF0ZShjb25zdCBGbG9hdFJlY3QmIHRhcmdl
dEJvdW5kaW5nQm94LCBTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlIHByaW1pdGl2ZVVuaXRzLCBT
VkdGaWx0ZXJFeHByZXNzaW9uJiYgZXhwcmVzc2lvbikKK3sKKyAgICByZXR1cm4gYWRvcHRSZWYo
Km5ldyBTVkdGaWx0ZXIodGFyZ2V0Qm91bmRpbmdCb3gsIHByaW1pdGl2ZVVuaXRzLCBXVEZNb3Zl
KGV4cHJlc3Npb24pKSk7Cit9CisKIFNWR0ZpbHRlcjo6U1ZHRmlsdGVyKFJlbmRlcmluZ01vZGUg
cmVuZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJTY2FsZSwgQ2xpcE9wZXJhdGlv
biBjbGlwT3BlcmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIGZpbHRlclJlZ2lvbiwgY29uc3QgRmxv
YXRSZWN0JiB0YXJnZXRCb3VuZGluZ0JveCwgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSBwcmlt
aXRpdmVVbml0cykKICAgICA6IEZpbHRlcihGaWx0ZXI6OlR5cGU6OlNWR0ZpbHRlciwgcmVuZGVy
aW5nTW9kZSwgZmlsdGVyU2NhbGUsIGNsaXBPcGVyYXRpb24sIGZpbHRlclJlZ2lvbikKICAgICAs
IG1fdGFyZ2V0Qm91bmRpbmdCb3godGFyZ2V0Qm91bmRpbmdCb3gpCkBAIC03Niw2ICs4MSwxNCBA
QCBTVkdGaWx0ZXI6OlNWR0ZpbHRlcihSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGNvbnN0
IEZsb2F0U2l6ZSYgZmlsdGVyU2NhbGUsCiB7CiB9CiAKK1NWR0ZpbHRlcjo6U1ZHRmlsdGVyKGNv
bnN0IEZsb2F0UmVjdCYgdGFyZ2V0Qm91bmRpbmdCb3gsIFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5
cGUgcHJpbWl0aXZlVW5pdHMsIFNWR0ZpbHRlckV4cHJlc3Npb24mJiBleHByZXNzaW9uKQorICAg
IDogRmlsdGVyKEZpbHRlcjo6VHlwZTo6U1ZHRmlsdGVyKQorICAgICwgbV90YXJnZXRCb3VuZGlu
Z0JveCh0YXJnZXRCb3VuZGluZ0JveCkKKyAgICAsIG1fcHJpbWl0aXZlVW5pdHMocHJpbWl0aXZl
VW5pdHMpCisgICAgLCBtX2V4cHJlc3Npb24oV1RGTW92ZShleHByZXNzaW9uKSkKK3sKK30KKwog
RmxvYXRTaXplIFNWR0ZpbHRlcjo6cmVzb2x2ZWRTaXplKGNvbnN0IEZsb2F0U2l6ZSYgc2l6ZSkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9wcmltaXRpdmVVbml0cyA9PSBTVkdVbml0VHlwZXM6OlNW
R19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1ggPyBzaXplICogbV90YXJnZXRCb3VuZGluZ0Jv
eC5zaXplKCkgOiBzaXplOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNz
L2ZpbHRlcnMvU1ZHRmlsdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVy
cy9TVkdGaWx0ZXIuaAppbmRleCAzMGM0ZWEwZjY5NzhiNTU5MjA0MjgwMzdkZGM3NTFhNWM0MGE0
NGM4Li5jZGIwOTg4ZTRhYzgxNmFiMWUxNTQ1YTMzZmE3NDkzMDUxNmMzNDE2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuaApAQCAtMzksOSAr
MzksMTMgQEAgcHVibGljOgogICAgIHN0YXRpYyBSZWZQdHI8U1ZHRmlsdGVyPiBjcmVhdGUoU1ZH
RmlsdGVyRWxlbWVudCYsIFNWR0ZpbHRlckJ1aWxkZXImLCBSZW5kZXJpbmdNb2RlLCBjb25zdCBG
bG9hdFNpemUmIGZpbHRlclNjYWxlLCBDbGlwT3BlcmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIHRh
cmdldEJvdW5kaW5nQm94LCBGaWx0ZXJFZmZlY3QmIHByZXZpb3VzRWZmZWN0KTsKICAgICBzdGF0
aWMgUmVmUHRyPFNWR0ZpbHRlcj4gY3JlYXRlKFNWR0ZpbHRlckVsZW1lbnQmLCBTVkdGaWx0ZXJC
dWlsZGVyJiwgUmVuZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJTY2FsZSwgY29u
c3QgRmxvYXRSZWN0JiBmaWx0ZXJSZWdpb24sIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0Qm91bmRp
bmdCb3gpOwogICAgIHN0YXRpYyBSZWZQdHI8U1ZHRmlsdGVyPiBjcmVhdGUoU1ZHRmlsdGVyRWxl
bWVudCYsIFNWR0ZpbHRlckJ1aWxkZXImLCBSZW5kZXJpbmdNb2RlLCBjb25zdCBGbG9hdFNpemUm
IGZpbHRlclNjYWxlLCBDbGlwT3BlcmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIGZpbHRlclJlZ2lv
biwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRCb3VuZGluZ0JveCwgRmlsdGVyRWZmZWN0KiBwcmV2
aW91c0VmZmVjdCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZlB0cjxTVkdGaWx0ZXI+
IGNyZWF0ZShjb25zdCBGbG9hdFJlY3QmIHRhcmdldEJvdW5kaW5nQm94LCBTVkdVbml0VHlwZXM6
OlNWR1VuaXRUeXBlIHByaW1pdGl2ZVVuaXRzLCBTVkdGaWx0ZXJFeHByZXNzaW9uJiYpOwogCiAg
ICAgRmxvYXRSZWN0IHRhcmdldEJvdW5kaW5nQm94KCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRC
b3VuZGluZ0JveDsgfQorICAgIFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGUgcHJpbWl0aXZlVW5p
dHMoKSBjb25zdCB7IHJldHVybiBtX3ByaW1pdGl2ZVVuaXRzOyB9CiAKKyAgICBjb25zdCBTVkdG
aWx0ZXJFeHByZXNzaW9uJiBleHByZXNzaW9uKCkgY29uc3QgeyByZXR1cm4gbV9leHByZXNzaW9u
OyB9CisgICAgCiAgICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gbGFzdEVmZmVjdCgpIGNvbnN0IGZp
bmFsOwogCiAgICAgUmVmUHRyPEZpbHRlckltYWdlPiBhcHBseSgpIGZpbmFsOwpAQCAtNTAsNiAr
NTQsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgU1ZHRmlsdGVyKFJlbmRlcmluZ01vZGUs
IGNvbnN0IEZsb2F0U2l6ZSYgZmlsdGVyU2NhbGUsIENsaXBPcGVyYXRpb24sIGNvbnN0IEZsb2F0
UmVjdCYgZmlsdGVyUmVnaW9uLCBjb25zdCBGbG9hdFJlY3QmIHRhcmdldEJvdW5kaW5nQm94LCBT
VkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlIHByaW1pdGl2ZVVuaXRzKTsKKyAgICBTVkdGaWx0ZXIo
Y29uc3QgRmxvYXRSZWN0JiB0YXJnZXRCb3VuZGluZ0JveCwgU1ZHVW5pdFR5cGVzOjpTVkdVbml0
VHlwZSBwcmltaXRpdmVVbml0cywgU1ZHRmlsdGVyRXhwcmVzc2lvbiYmKTsKIAogICAgIHZvaWQg
c2V0RXhwcmVzc2lvbihTVkdGaWx0ZXJFeHByZXNzaW9uJiYgZXhwcmVzc2lvbikgeyBtX2V4cHJl
c3Npb24gPSBXVEZNb3ZlKGV4cHJlc3Npb24pOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvRmlsdGVyUmVmZXJlbmNlLmgKaW5kZXggODE4NDBiZDcwYzVjYjY0MGNkYmU2ZDg1MDk1
MzViMmUyODg2NmYwNi4uNzBiZTQ5MGQyNWY1MDhjMmY1Yjg2ZTRjY2MxNGRmNGFiMDc2MDRlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRmlsdGVyUmVmZXJlbmNlLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRmlsdGVyUmVmZXJlbmNlLmgKQEAgLTQ1
LDYgKzQ1LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlci5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRmlsdGVyRWZmZWN0VmVjdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TVkdGaWx0ZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NvdXJjZUFscGhhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Tb3Vy
Y2VHcmFwaGljLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNjIsOCArNjMsMjAgQEAgcHVibGlj
OgogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEZpbHRl
clJlZmVyZW5jZT4gZGVjb2RlKERlY29kZXImKTsKIAogcHJpdmF0ZToKKyAgICBzdHJ1Y3QgRXhw
cmVzc2lvblJlZmVyZW5jZVRlcm0geworICAgICAgICB1bnNpZ25lZCBpbmRleDsKKyAgICAgICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGaWx0ZXJFZmZlY3RHZW9tZXRyeT4gZ2VvbWV0cnk7Cisg
ICAgICAgIHVuc2lnbmVkIGxldmVsOworICAgIAorICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNv
ZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CisgICAgICAgIHRlbXBsYXRlPGNsYXNz
IERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cHJlc3Npb25SZWZlcmVuY2VUZXJtPiBk
ZWNvZGUoRGVjb2RlciYpOworICAgIH07CisgICAgCisgICAgdXNpbmcgRXhwcmVzc2lvblJlZmVy
ZW5jZSA9IFZlY3RvcjxFeHByZXNzaW9uUmVmZXJlbmNlVGVybT47CisKICAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGVGaWx0ZXJFZmZlY3QoY29uc3QgV2ViQ29y
ZTo6RmlsdGVyRWZmZWN0JiwgRW5jb2RlciYpOwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+
IHN0YXRpYyBSZWZQdHI8V2ViQ29yZTo6RmlsdGVyRWZmZWN0PiBkZWNvZGVGaWx0ZXJFZmZlY3Qo
RGVjb2RlciYsIFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpUeXBlKTsKKyAgICB0ZW1wbGF0ZTxj
bGFzcyBEZWNvZGVyPiBzdGF0aWMgUmVmUHRyPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4gZGVjb2Rl
RmlsdGVyRWZmZWN0KERlY29kZXImKTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHN0
YXRpYyB2b2lkIGVuY29kZVNWR0ZpbHRlcihjb25zdCBXZWJDb3JlOjpTVkdGaWx0ZXImLCBFbmNv
ZGVyJik7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxXZWJDb3Jl
OjpTVkdGaWx0ZXI+IGRlY29kZVNWR0ZpbHRlcihEZWNvZGVyJik7CkBAIC0yNDMsMTEgKzI1Niwx
NCBAQCBSZWZQdHI8V2ViQ29yZTo6RmlsdGVyRWZmZWN0PiBGaWx0ZXJSZWZlcmVuY2U6OmRlY29k
ZUZpbHRlckVmZmVjdChEZWNvZGVyJiBkZWNvZAogICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpG
RVR1cmJ1bGVuY2U6OmRlY29kZShkZWNvZGVyKTsKICAgICAgICAgYnJlYWs7CiAKKyAgICBjYXNl
IFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlQWxwaGE6CisgICAgICAgIGVmZmVj
dCA9IFdlYkNvcmU6OlNvdXJjZUFscGhhOjpjcmVhdGUoKTsKKyAgICAgICAgYnJlYWs7CisKICAg
ICBjYXNlIFdlYkNvcmU6OkZpbHRlckVmZmVjdDo6VHlwZTo6U291cmNlR3JhcGhpYzoKICAgICAg
ICAgZWZmZWN0ID0gV2ViQ29yZTo6U291cmNlR3JhcGhpYzo6Y3JlYXRlKCk7CiAgICAgICAgIGJy
ZWFrOwogCi0gICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNvdXJjZUFscGhh
OgogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KQEAg
LTI2MCwxNyArMjc2LDEyMSBAQCBSZWZQdHI8V2ViQ29yZTo6RmlsdGVyRWZmZWN0PiBGaWx0ZXJS
ZWZlcmVuY2U6OmRlY29kZUZpbHRlckVmZmVjdChEZWNvZGVyJiBkZWNvZAogICAgIHJldHVybiBu
dWxscHRyOwogfQogCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorUmVmUHRyPFdlYkNvcmU6OkZp
bHRlckVmZmVjdD4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXJFZmZlY3QoRGVjb2RlciYg
ZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbHRlckZ1bmN0aW9uOjpU
eXBlPiBmaWx0ZXJUeXBlOworICAgIGRlY29kZXIgPj4gZmlsdGVyVHlwZTsKKyAgICBpZiAoIWZp
bHRlclR5cGUpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGRlY29kZUZp
bHRlckVmZmVjdChkZWNvZGVyLCAqZmlsdGVyVHlwZSk7Cit9CisKK3RlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+Cit2b2lkIEZpbHRlclJlZmVyZW5jZTo6RXhwcmVzc2lvblJlZmVyZW5jZVRlcm06OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgaW5kZXg7Cisg
ICAgZW5jb2RlciA8PCBnZW9tZXRyeTsKKyAgICBlbmNvZGVyIDw8IGxldmVsOworfQorCit0ZW1w
bGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxGaWx0ZXJSZWZlcmVuY2U6OkV4cHJl
c3Npb25SZWZlcmVuY2VUZXJtPiBGaWx0ZXJSZWZlcmVuY2U6OkV4cHJlc3Npb25SZWZlcmVuY2VU
ZXJtOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2ln
bmVkPiBpbmRleDsKKyAgICBkZWNvZGVyID4+IGluZGV4OworICAgIGlmICghaW5kZXgpCisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RmlsdGVyRWZmZWN0R2VvbWV0cnk+PiBnZW9tZXRyeTsKKyAgICBkZWNvZGVy
ID4+IGdlb21ldHJ5OworICAgIGlmICghZ2VvbWV0cnkpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBsZXZlbDsKKyAgICBkZWNvZGVy
ID4+IGxldmVsOworICAgIGlmICghbGV2ZWwpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICByZXR1cm4geyB7ICppbmRleCwgKmdlb21ldHJ5LCAqbGV2ZWwgfSB9OworfQorCiB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBGaWx0ZXJSZWZlcmVuY2U6OmVuY29kZVNWR0Zp
bHRlcihjb25zdCBXZWJDb3JlOjpTVkdGaWx0ZXImIGZpbHRlciwgRW5jb2RlciYgZW5jb2RlcikK
IHsKLSAgICAvLyBGSVhNRTogRW5jb2RlIHRoZSBTVkdGaWx0ZXIuCisgICAgSGFzaE1hcDxSZWY8
V2ViQ29yZTo6RmlsdGVyRWZmZWN0PiwgdW5zaWduZWQ+IGluZGljaWVzOworICAgIFZlY3RvcjxS
ZWY8V2ViQ29yZTo6RmlsdGVyRWZmZWN0Pj4gZWZmZWN0czsKKworICAgIC8vIEdldCB0aGUgaW5k
aXZpZHVhbCBGaWx0ZXJFZmZlY3RzIGluIGZpbHRlci5leHByZXNzaW9uKCkuCisgICAgZm9yIChh
dXRvJiB0ZXJtIDogZmlsdGVyLmV4cHJlc3Npb24oKSkgeworICAgICAgICBpZiAoaW5kaWNpZXMu
Y29udGFpbnModGVybS5lZmZlY3QpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGlu
ZGljaWVzLmFkZCh0ZXJtLmVmZmVjdCwgZWZmZWN0cy5zaXplKCkpOworICAgICAgICBlZmZlY3Rz
LmFwcGVuZCh0ZXJtLmVmZmVjdCk7CisgICAgfQorCisgICAgLy8gUmVwbGFjZSB0aGUgUmVmPEZp
bHRlckVmZmVjdD4gaW4gU1ZHRXhwcmVzc2lvblRlcm0gd2l0aCBpdHMgaW5kZXggaW4gaW5kaWNp
ZXMuCisgICAgYXV0byBleHByZXNzaW9uUmVmZXJlbmNlID0gV1RGOjptYXAoZmlsdGVyLmV4cHJl
c3Npb24oKSwgWyZpbmRpY2llc10gKGF1dG8mJiB0ZXJtKSAtPiBFeHByZXNzaW9uUmVmZXJlbmNl
VGVybSB7CisgICAgICAgIEFTU0VSVChpbmRpY2llcy5jb250YWlucyh0ZXJtLmVmZmVjdCkpOwor
ICAgICAgICB1bnNpZ25lZCBpbmRleCA9IGluZGljaWVzLmdldCh0ZXJtLmVmZmVjdCk7CisgICAg
ICAgIHJldHVybiB7IGluZGV4LCB0ZXJtLmdlb21ldHJ5LCB0ZXJtLmxldmVsIH07CisgICAgfSk7
CisKKyAgICBlbmNvZGVyIDw8IGZpbHRlci50YXJnZXRCb3VuZGluZ0JveCgpOworICAgIGVuY29k
ZXIgPDwgZmlsdGVyLnByaW1pdGl2ZVVuaXRzKCk7CisgICAgCisgICAgZW5jb2RlciA8PCBlZmZl
Y3RzLnNpemUoKTsKKyAgICBmb3IgKGF1dG8mIGVmZmVjdCA6IGVmZmVjdHMpCisgICAgICAgIGVu
Y29kZUZpbHRlckVmZmVjdChlZmZlY3QsIGVuY29kZXIpOworCisgICAgZW5jb2RlciA8PCBleHBy
ZXNzaW9uUmVmZXJlbmNlOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgogUmVmUHRyPFdl
YkNvcmU6OlNWR0ZpbHRlcj4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVTVkdGaWx0ZXIoRGVjb2Rl
ciYgZGVjb2RlcikKIHsKLSAgICAvLyBGSVhNRTogRGVjb2RlIHRoZSBTVkdGaWx0ZXIuCi0gICAg
cmV0dXJuIG51bGxwdHI7CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+IHRh
cmdldEJvdW5kaW5nQm94OworICAgIGRlY29kZXIgPj4gdGFyZ2V0Qm91bmRpbmdCb3g7CisgICAg
aWYgKCF0YXJnZXRCb3VuZGluZ0JveCkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGU+IHByaW1pdGl2
ZVVuaXRzOworICAgIGRlY29kZXIgPj4gcHJpbWl0aXZlVW5pdHM7CisgICAgaWYgKCFwcmltaXRp
dmVVbml0cykKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBzdGQ6Om9wdGlvbmFsPHNp
emVfdD4gZWZmZWN0c1NpemU7CisgICAgZGVjb2RlciA+PiBlZmZlY3RzU2l6ZTsKKyAgICBpZiAo
IWVmZmVjdHNTaXplIHx8ICEqZWZmZWN0c1NpemUpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgVmVjdG9yPFJlZjxXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q+PiBlZmZlY3RzOworCisgICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCAqZWZmZWN0c1NpemU7ICsraSkgeworICAgICAgICBhdXRv
IGVmZmVjdCA9IGRlY29kZUZpbHRlckVmZmVjdChkZWNvZGVyKTsKKyAgICAgICAgaWYgKCFlZmZl
Y3QpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBlZmZlY3RzLmFwcGVu
ZChlZmZlY3QucmVsZWFzZU5vbk51bGwoKSk7CisgICAgfQorCisgICAgc3RkOjpvcHRpb25hbDxF
eHByZXNzaW9uUmVmZXJlbmNlPiBleHByZXNzaW9uUmVmZXJlbmNlOworICAgIGRlY29kZXIgPj4g
ZXhwcmVzc2lvblJlZmVyZW5jZTsKKyAgICBpZiAoIWV4cHJlc3Npb25SZWZlcmVuY2UgfHwgZXhw
cmVzc2lvblJlZmVyZW5jZS0+aXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIFdlYkNvcmU6OlNWR0ZpbHRlckV4cHJlc3Npb24gZXhwcmVzc2lvbjsKKyAgICBleHByZXNz
aW9uLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoZXhwcmVzc2lvblJlZmVyZW5jZS0+c2l6ZSgpKTsK
KworICAgIC8vIFJlcGxhY2UgdGhlIGluZGV4IGluIEV4cHJlc3Npb25SZWZlcmVuY2VUZXJtIHdp
dGggaXRzIFJlZjxGaWx0ZXJFZmZlY3Q+IGluIGVmZmVjdHMuCisgICAgZm9yIChhdXRvJiB0ZXJt
IDogKmV4cHJlc3Npb25SZWZlcmVuY2UpIHsKKyAgICAgICAgaWYgKHRlcm0uaW5kZXggPj0gZWZm
ZWN0cy5zaXplKCkpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgZXhwcmVz
c2lvbi51bmNoZWNrZWRBcHBlbmQoeyBlZmZlY3RzW3Rlcm0uaW5kZXhdLCB0ZXJtLmdlb21ldHJ5
LCB0ZXJtLmxldmVsIH0pOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gV2ViQ29yZTo6U1ZHRmls
dGVyOjpjcmVhdGUoKnRhcmdldEJvdW5kaW5nQm94LCAqcHJpbWl0aXZlVW5pdHMsIFdURk1vdmUo
ZXhwcmVzc2lvbikpOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgo=
</data>
<flag name="commit-queue"
          id="471834"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446422</attachid>
            <date>2021-12-08 14:37:46 -0800</date>
            <delta_ts>2021-12-08 16:37:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234024-20211208143745.patch</filename>
            <type>text/plain</type>
            <size>19221</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzVkODQ3ZGVkNGEzYTc1
OTkxYmZkMDQ3YWUzNjRlYWMxODIyOWE5Yi4uNGFmMjgyMTZlNWFiNzRhYWMzNWM3MWQ4ZjQ5NGZi
MThhYjllOWI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTEyLTA4ICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisgICAgICAgIFtHUFUgUHJvY2Vzc10g
W0ZpbHRlcnNdIEFkZCB0aGUgZW5jb2RpbmcgYW5kIGRlY29kaW5nIGZvciBTVkdGaWx0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDAyNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBBZGQgbmV3IG1ldGhv
ZHMgdG8gaGVscCBlbmNvZGluZyBhbmQgZGVjb2RpbmcgU1ZHRmlsdGVyIG1lbWJlcnMuIEFsc28K
KyAgICAgICAgYWRkIGEgbmV3IGNvbnN0cnVjdG9yIGZvciBTVkdGaWx0ZXIgd2hpY2ggaXMgZ29p
bmcgdG8gYmUgY2FsbGVkIGZyb20KKyAgICAgICAgRmlsdGVyUmVmZXJlbmNlLgorCisgICAgICAg
ICogSGVhZGVycy5jbWFrZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3RH
ZW9tZXRyeS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0R2VvbWV0cnk6OmVuY29k
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6ZGVjb2Rl
KToKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U291cmNlQWxwaGE6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTb3VyY2VBbHBoYTo6U291cmNlQWxwaGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaDoKKyAgICAgICAgVGhlIHBsYW4gaXMgdG8gcmVtb3Zl
IHRoZSBpbnB1dCBlZmZlY3RzIGZyb20gRmlsdGVyRWZmZWN0LiBDdXJyZW50bHkgaXQKKyAgICAg
ICAgaXMgc3RpbGwgdXNlZCBidXQgbm90IHRocm91Z2ggRmlsdGVyRWZmZWN0OjphcHBseSgpLiBT
byBpdCBpcyBva2F5IGZvciAKKyAgICAgICAgbm93IGZvciBHUFVQcm9jZXNzIHRvIGNyZWF0ZSBT
b3VyY2VBbHBoYSB3aXRob3V0IGlucHV0IHNpbmNlIHRoZSBpbnB1dAorICAgICAgICB3aWxsIG5v
dCB1c2VkIGluc2lkZSBHUFVQcm9jZXNzLgorCisgICAgICAgICogc3ZnL1NWR1VuaXRUeXBlcy5o
OgorICAgICAgICAqIHN2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTVkdGaWx0ZXI6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaWx0
ZXI6OlNWR0ZpbHRlcik6CisgICAgICAgICogc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVy
Lmg6CisKIDIwMjEtMTItMDggIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW01TRV0gQWRkIGEgTW9kdWxlcy9tZWRpYXNvdXJjZS9SRUFETUUubWQgZmlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCBiNGQ3ZTNkMGNkMmNjNzk3YzY2OTg4OGViMmIwZTc3NGIxZDE5ZWU1Li4yNGM5MGNi
MWRlYzM4ZmU0ZjFhNTE2MDFlMTQ3MWU3ZDM1ZjI2YmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDIxLTEyLTA4ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhaWRAYXBwbGUuY29tPgorCisg
ICAgICAgIFtHUFUgUHJvY2Vzc10gW0ZpbHRlcnNdIEFkZCB0aGUgZW5jb2RpbmcgYW5kIGRlY29k
aW5nIGZvciBTVkdGaWx0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzNDAyNAorCisgICAgICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKwor
ICAgICAgICBXaGVuIGVuY29kaW5nIHRoZSBTVkdGaWx0ZXIgd2UgbmVlZCB0byBlbmNvZGUgdGhl
IGluZGl2aWR1YWwgRmlsdGVyRWZmZWN0cworICAgICAgICBpbiBmaWx0ZXIuZXhwcmVzc2lvbigp
LiBBbmQgZm9yIGV2ZXJ5IFNWR0ZpbHRlckV4cHJlc3Npb25UZXJtIHdlIG5lZWQgdG8KKyAgICAg
ICAgZW5jb2RlIHRoZSBpbmRleCBvZiBpdHMgUmVmPEZpbHRlckVmZmVjdD4gaW4gdGhlIGluZGl2
aWR1YWwgRmlsdGVyRWZmZWN0cy4KKworICAgICAgICBXaGVuIGRlY29kaW5nIHRoZSBTVkdGaWx0
ZXIgd2UgZG8gdGhlIG9wcG9zaXRlLiBXZSBnZXQgdGhlIFJlZjxGaWx0ZXJFZmZlY3Q+CisgICAg
ICAgIHdoaWNoIGNvcnJlc3BvbmRzIHRvIGluZGV4IG9mIEV4cHJlc3Npb25SZWZlcmVuY2VUZXJt
LiBXZSBzZW5kIHRoZSBkZWNvZGVkCisgICAgICAgIGV4cHJlc3Npb24gdG8gdGhlIGNvbnN0cnVj
dG9yIG9mIFNWR0ZpbHRlci4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVu
Y2UuaDoKKyAgICAgICAgKElQQzo6RmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXJFZmZlY3Qp
OgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OkV4cHJlc3Npb25SZWZlcmVuY2VUZXJt
OjplbmNvZGUgY29uc3QpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6OkV4cHJlc3Np
b25SZWZlcmVuY2VUZXJtOjpkZWNvZGUpOgorICAgICAgICAoSVBDOjpGaWx0ZXJSZWZlcmVuY2U6
OmVuY29kZVNWR0ZpbHRlcik6CisgICAgICAgIChJUEM6OkZpbHRlclJlZmVyZW5jZTo6ZGVjb2Rl
U1ZHRmlsdGVyKToKKwogMjAyMS0xMi0wOCAgVHJ1aXR0IFNhdmVsbCAgPHRzYXZlbGxAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjg2NTk2LgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMu
Y21ha2UKaW5kZXggMmM5YWRiYmQ0NDk0OGVkNGVhZDlkMDg0N2VmNTM1M2NiNTFmZTEwZi4uODBj
NzM3ZjI5Njg5MTYzYzc4NDk0YjBiYWRlZDY0MmZiZTUzZjA5OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtl
CkBAIC0xNTk3LDYgKzE1OTcsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFE
RVJTCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJPcGVyYXRpb24uaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyT3BlcmF0aW9ucy5oCiAgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9MaWdodFNvdXJjZS5oCisgICAgcGxhdGZvcm0vZ3JhcGhpY3Mv
ZmlsdGVycy9Tb3VyY2VBbHBoYS5oCiAgICAgcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3Vy
Y2VHcmFwaGljLmgKIAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL2lzby9JU09Cb3guaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDMy
Nzk5NzljNDUwNjUyOWQzZjViNzMzNzE5OWZhODFjZWI0ZWMzN2QuLmU3NGRhNzQ5ZDZlZDRmNGM5
MjIyNjg3MmQ1Yjc3MTA3NTA1ZjMxMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI3NTYsNyArMjc1Niw3IEBACiAJCTg0ODUy
MjdDMTE5MDE2MkMwMDZFREM3RiAvKiBKU1NWR0hLZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ4NTIyNzgxMTkwMTYyQzAwNkVEQzdG
IC8qIEpTU1ZHSEtlcm5FbGVtZW50LmggKi87IH07CiAJCTg0ODUyMjdFMTE5MDE2MkMwMDZFREM3
RiAvKiBKU1NWR1ZLZXJuRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gODQ4NTIyN0ExMTkwMTYyQzAwNkVEQzdGIC8qIEpTU1ZHVktlcm5FbGVt
ZW50LmggKi87IH07CiAJCTg0ODUyMjhCMTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1l
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0ODUy
Mjg4MTE5MDE3M0MwMDZFREM3RiAvKiBTVkdWS2VybkVsZW1lbnQuaCAqLzsgfTsKLQkJODRBODFG
M0UwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFscGhhLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEE4MUYzQzBGQzdERkYwMDA5NTUzMDAgLyogU291
cmNlQWxwaGEuaCAqLzsgfTsKKwkJODRBODFGM0UwRkM3REZGMDAwOTU1MzAwIC8qIFNvdXJjZUFs
cGhhLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NEE4
MUYzQzBGQzdERkYwMDA5NTUzMDAgLyogU291cmNlQWxwaGEuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NEE4MUY0MjBGQzdFMDI3MDA5NTUzMDAg
LyogU291cmNlR3JhcGhpYy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gODRBODFGNDAwRkM3RTAyNzAwOTU1MzAwIC8qIFNvdXJjZUdyYXBoaWMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk4NEIzNDlBMjIy
Rjg2RTc1MDBENDdCQ0YgLyogRXZlbnRUYXJnZXRDb25jcmV0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRCMzQ5QTAyMkY4NkU3NDAwRDQ3QkNGIC8q
IEV2ZW50VGFyZ2V0Q29uY3JldGUuaCAqLzsgfTsKIAkJODRCNkI5NzgxMjBGMTNFNTAwQjhFRkFG
IC8qIFNWR1BhdGhTZWdMaXN0U291cmNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4NEI2Qjk3NjEyMEYxM0U1MDBCOEVGQUYgLyogU1ZHUGF0aFNlZ0xp
c3RTb3VyY2UuaCAqLzsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0R2VvbWV0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvRmlsdGVyRWZmZWN0R2VvbWV0cnkuaAppbmRleCAyZjdk
NmFhN2JmYjA4MmE4MTNmNTZlYjdmZDRlZTIwMzcxMjlmNWIzLi41MWM4ZWJjYTM2ODg0OTViYjY3
ZmNiMjk1MDBmYWY2NDNhNTRlMzlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9maWx0ZXJzL0ZpbHRlckVmZmVjdEdlb21ldHJ5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9GaWx0ZXJFZmZlY3RHZW9tZXRyeS5oCkBA
IC03OCw2ICs3OCw5IEBAIHB1YmxpYzoKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAg
ICB9CiAKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikg
Y29uc3Q7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
RmlsdGVyRWZmZWN0R2VvbWV0cnk+IGRlY29kZShEZWNvZGVyJik7CisKIHByaXZhdGU6CiAgICAg
RmxvYXRSZWN0IG1fYm91bmRhcmllczsKICAgICBPcHRpb25TZXQ8RmxhZ3M+IG1fZmxhZ3M7CkBA
IC04NSw0ICs4OCw0MiBAQCBwcml2YXRlOgogCiB1c2luZyBGaWx0ZXJFZmZlY3RHZW9tZXRyeU1h
cCA9IEhhc2hNYXA8UmVmPEZpbHRlckVmZmVjdD4sIEZpbHRlckVmZmVjdEdlb21ldHJ5PjsKIAor
dGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRmlsdGVyRWZmZWN0R2VvbWV0cnk6OmVuY29k
ZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgbV9ib3VuZGFyaWVz
OworICAgIGVuY29kZXIgPDwgbV9mbGFnczsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K3N0ZDo6b3B0aW9uYWw8RmlsdGVyRWZmZWN0R2VvbWV0cnk+IEZpbHRlckVmZmVjdEdlb21ldHJ5
OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UmVj
dD4gYm91bmRhcmllczsKKyAgICBkZWNvZGVyID4+IGJvdW5kYXJpZXM7CisgICAgaWYgKCFib3Vu
ZGFyaWVzKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25h
bDxPcHRpb25TZXQ8RmxhZ3M+PiBmbGFnczsKKyAgICBkZWNvZGVyID4+IGZsYWdzOworICAgIGlm
ICghZmxhZ3MpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICByZXR1cm4gRmls
dGVyRWZmZWN0R2VvbWV0cnkoKmJvdW5kYXJpZXMsICpmbGFncyk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworbmFtZXNwYWNlIFdURiB7CisKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8V2ViQ29yZTo6RmlsdGVyRWZmZWN0R2VvbWV0cnk6OkZsYWdzPiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRWZmZWN0R2VvbWV0
cnk6OkZsYWdzLAorCisgICAgICAgIFdlYkNvcmU6OkZpbHRlckVmZmVjdEdlb21ldHJ5OjpGbGFn
czo6SGFzWCwKKyAgICAgICAgV2ViQ29yZTo6RmlsdGVyRWZmZWN0R2VvbWV0cnk6OkZsYWdzOjpI
YXNZLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6RmxhZ3M6Okhhc1dp
ZHRoLAorICAgICAgICBXZWJDb3JlOjpGaWx0ZXJFZmZlY3RHZW9tZXRyeTo6RmxhZ3M6Okhhc0hl
aWdodAorICAgID47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKaW5k
ZXggMTQ3YWZlMDQzZGNlMWQ4MWJlOGMyMWYyOTZkM2IyNWEzMjllNjhiNC4uOGEzZjFhNTZhOGRk
MzRlMmUwYzhhYjVjMGFhZDYzNDk0YjhiMjQ2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5jcHAKQEAgLTIxLDE3
ICsyMSwyNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNvdXJjZUFscGhhLmgi
CiAKLSNpbmNsdWRlICJGaWx0ZXIuaCIKICNpbmNsdWRlICJTb3VyY2VBbHBoYVNvZnR3YXJlQXBw
bGllci5oIgogI2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitSZWY8U291cmNlQWxwaGE+IFNvdXJjZUFscGhhOjpjcmVhdGUoKQoreworICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IFNvdXJjZUFscGhhKCkpOworfQorCiBSZWY8U291cmNlQWxw
aGE+IFNvdXJjZUFscGhhOjpjcmVhdGUoRmlsdGVyRWZmZWN0JiBzb3VyY2VFZmZlY3QpCiB7CiAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU291cmNlQWxwaGEoc291cmNlRWZmZWN0KSk7CiB9CiAK
K1NvdXJjZUFscGhhOjpTb3VyY2VBbHBoYSgpCisgICAgOiBGaWx0ZXJFZmZlY3QoRmlsdGVyRWZm
ZWN0OjpUeXBlOjpTb3VyY2VBbHBoYSkKK3sKK30KKwogU291cmNlQWxwaGE6OlNvdXJjZUFscGhh
KEZpbHRlckVmZmVjdCYgc291cmNlRWZmZWN0KQogICAgIDogRmlsdGVyRWZmZWN0KEZpbHRlckVm
ZmVjdDo6VHlwZTo6U291cmNlQWxwaGEpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL1NvdXJjZUFscGhhLmgKaW5kZXggZTIxMWUxYWZlZDkz
OWM5YzFlMzM1N2VjNTAyNWI4ODZkYjlmMjhhZS4uOGQyMTQwY2RiMTgwNDYzNTRlODliYTA2MjEy
ZTgzODY1ODg0YzBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvZmlsdGVycy9Tb3VyY2VBbHBoYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvU291cmNlQWxwaGEuaApAQCAtMjUsMTIgKzI1LDE0IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIFNvdXJjZUFscGhhIDogcHVibGljIEZpbHRlckVmZmVjdCB7
Ci1wdWJsaWM6ICAgICAgICAKK3B1YmxpYzoKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVm
PFNvdXJjZUFscGhhPiBjcmVhdGUoKTsKICAgICBzdGF0aWMgUmVmPFNvdXJjZUFscGhhPiBjcmVh
dGUoRmlsdGVyRWZmZWN0Jik7CiAKICAgICBzdGF0aWMgQXRvbVN0cmluZyBlZmZlY3ROYW1lKCkg
eyByZXR1cm4gRmlsdGVyRWZmZWN0Ojpzb3VyY2VBbHBoYU5hbWUoKTsgfQogCiBwcml2YXRlOgor
ICAgIFNvdXJjZUFscGhhKCk7CiAgICAgZXhwbGljaXQgU291cmNlQWxwaGEoRmlsdGVyRWZmZWN0
Jik7CiAKICAgICBGbG9hdFJlY3QgY2FsY3VsYXRlSW1hZ2VSZWN0KGNvbnN0IEZpbHRlciYsIGNv
bnN0IEZpbHRlckltYWdlVmVjdG9yJiBpbnB1dHMsIGNvbnN0IEZsb2F0UmVjdCYgcHJpbWl0aXZl
U3VicmVnaW9uKSBjb25zdCBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdVbml0VHlwZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdVbml0VHlwZXMuaAppbmRl
eCBmNDQ0ODVmN2UwNWRmMjQ1M2ZhYWJlNjliMGMyODgyZmVjNTAwNGJlLi5mZmE3Y2EzZTFmN2Mw
NDRmZDExZjM0OTI0ZGMwZTIyMTRkMjU3ZWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVW5pdFR5cGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1VuaXRUeXBlcy5o
CkBAIC02NiwzICs2NiwxNyBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8U1ZHVW5pdFR5cGVz
OjpTVkdVbml0VHlwZT4gewogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCituYW1lc3Bh
Y2UgV1RGIHsKKwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpTVkdVbml0
VHlwZXM6OlNWR1VuaXRUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAg
ICAgICAgV2ViQ29yZTo6U1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSwKKworICAgICAgICBXZWJD
b3JlOjpTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfVU5LTk9XTiwKKyAgICAgICAgV2ViQ29y
ZTo6U1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFLAorICAgICAgICBX
ZWJDb3JlOjpTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gKKyAg
ICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9TVkdGaWx0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmNwcAppbmRleCAwZGU3ZDg5Y2U2OTM1NDE0ODAw
ODRhMmE0MjA0MjM5ODRlOGZiMzIxLi5hYmY3MWNmZTE5MGQ3NGQ0NGJlMTVlZGU4OGYxMDYwNDEw
ZTNlODBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvZmlsdGVycy9T
VkdGaWx0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NW
R0ZpbHRlci5jcHAKQEAgLTY5LDYgKzY5LDExIEBAIFJlZlB0cjxTVkdGaWx0ZXI+IFNWR0ZpbHRl
cjo6Y3JlYXRlKFNWR0ZpbHRlckVsZW1lbnQmIGZpbHRlckVsZW1lbnQsIFNWR0ZpbHRlckJ1CiAg
ICAgcmV0dXJuIGZpbHRlcjsKIH0KIAorUmVmUHRyPFNWR0ZpbHRlcj4gU1ZHRmlsdGVyOjpjcmVh
dGUoY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRCb3VuZGluZ0JveCwgU1ZHVW5pdFR5cGVzOjpTVkdV
bml0VHlwZSBwcmltaXRpdmVVbml0cywgU1ZHRmlsdGVyRXhwcmVzc2lvbiYmIGV4cHJlc3Npb24p
Cit7CisgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHRmlsdGVyKHRhcmdldEJvdW5kaW5nQm94
LCBwcmltaXRpdmVVbml0cywgV1RGTW92ZShleHByZXNzaW9uKSkpOworfQorCiBTVkdGaWx0ZXI6
OlNWR0ZpbHRlcihSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUsIGNvbnN0IEZsb2F0U2l6ZSYg
ZmlsdGVyU2NhbGUsIENsaXBPcGVyYXRpb24gY2xpcE9wZXJhdGlvbiwgY29uc3QgRmxvYXRSZWN0
JiBmaWx0ZXJSZWdpb24sIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0Qm91bmRpbmdCb3gsIFNWR1Vu
aXRUeXBlczo6U1ZHVW5pdFR5cGUgcHJpbWl0aXZlVW5pdHMpCiAgICAgOiBGaWx0ZXIoRmlsdGVy
OjpUeXBlOjpTVkdGaWx0ZXIsIHJlbmRlcmluZ01vZGUsIGZpbHRlclNjYWxlLCBjbGlwT3BlcmF0
aW9uLCBmaWx0ZXJSZWdpb24pCiAgICAgLCBtX3RhcmdldEJvdW5kaW5nQm94KHRhcmdldEJvdW5k
aW5nQm94KQpAQCAtNzYsNiArODEsMTQgQEAgU1ZHRmlsdGVyOjpTVkdGaWx0ZXIoUmVuZGVyaW5n
TW9kZSByZW5kZXJpbmdNb2RlLCBjb25zdCBGbG9hdFNpemUmIGZpbHRlclNjYWxlLAogewogfQog
CitTVkdGaWx0ZXI6OlNWR0ZpbHRlcihjb25zdCBGbG9hdFJlY3QmIHRhcmdldEJvdW5kaW5nQm94
LCBTVkdVbml0VHlwZXM6OlNWR1VuaXRUeXBlIHByaW1pdGl2ZVVuaXRzLCBTVkdGaWx0ZXJFeHBy
ZXNzaW9uJiYgZXhwcmVzc2lvbikKKyAgICA6IEZpbHRlcihGaWx0ZXI6OlR5cGU6OlNWR0ZpbHRl
cikKKyAgICAsIG1fdGFyZ2V0Qm91bmRpbmdCb3godGFyZ2V0Qm91bmRpbmdCb3gpCisgICAgLCBt
X3ByaW1pdGl2ZVVuaXRzKHByaW1pdGl2ZVVuaXRzKQorICAgICwgbV9leHByZXNzaW9uKFdURk1v
dmUoZXhwcmVzc2lvbikpCit7Cit9CisKIEZsb2F0U2l6ZSBTVkdGaWx0ZXI6OnJlc29sdmVkU2l6
ZShjb25zdCBGbG9hdFNpemUmIHNpemUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcHJpbWl0aXZl
VW5pdHMgPT0gU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YID8g
c2l6ZSAqIG1fdGFyZ2V0Qm91bmRpbmdCb3guc2l6ZSgpIDogc2l6ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9maWx0ZXJzL1NWR0ZpbHRlci5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRlcnMvU1ZHRmlsdGVyLmgKaW5kZXggMzBjNGVhMGY2OTc4
YjU1OTIwNDI4MDM3ZGRjNzUxYTVjNDBhNDRjOC4uY2RiMDk4OGU0YWM4MTZhYjFlMTU0NWEzM2Zh
NzQ5MzA1MTZjMzQxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2Zp
bHRlcnMvU1ZHRmlsdGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL2ZpbHRl
cnMvU1ZHRmlsdGVyLmgKQEAgLTM5LDkgKzM5LDEzIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUmVm
UHRyPFNWR0ZpbHRlcj4gY3JlYXRlKFNWR0ZpbHRlckVsZW1lbnQmLCBTVkdGaWx0ZXJCdWlsZGVy
JiwgUmVuZGVyaW5nTW9kZSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJTY2FsZSwgQ2xpcE9wZXJh
dGlvbiwgY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRCb3VuZGluZ0JveCwgRmlsdGVyRWZmZWN0JiBw
cmV2aW91c0VmZmVjdCk7CiAgICAgc3RhdGljIFJlZlB0cjxTVkdGaWx0ZXI+IGNyZWF0ZShTVkdG
aWx0ZXJFbGVtZW50JiwgU1ZHRmlsdGVyQnVpbGRlciYsIFJlbmRlcmluZ01vZGUsIGNvbnN0IEZs
b2F0U2l6ZSYgZmlsdGVyU2NhbGUsIGNvbnN0IEZsb2F0UmVjdCYgZmlsdGVyUmVnaW9uLCBjb25z
dCBGbG9hdFJlY3QmIHRhcmdldEJvdW5kaW5nQm94KTsKICAgICBzdGF0aWMgUmVmUHRyPFNWR0Zp
bHRlcj4gY3JlYXRlKFNWR0ZpbHRlckVsZW1lbnQmLCBTVkdGaWx0ZXJCdWlsZGVyJiwgUmVuZGVy
aW5nTW9kZSwgY29uc3QgRmxvYXRTaXplJiBmaWx0ZXJTY2FsZSwgQ2xpcE9wZXJhdGlvbiwgY29u
c3QgRmxvYXRSZWN0JiBmaWx0ZXJSZWdpb24sIGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0Qm91bmRp
bmdCb3gsIEZpbHRlckVmZmVjdCogcHJldmlvdXNFZmZlY3QpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBSZWZQdHI8U1ZHRmlsdGVyPiBjcmVhdGUoY29uc3QgRmxvYXRSZWN0JiB0YXJnZXRC
b3VuZGluZ0JveCwgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSBwcmltaXRpdmVVbml0cywgU1ZH
RmlsdGVyRXhwcmVzc2lvbiYmKTsKIAogICAgIEZsb2F0UmVjdCB0YXJnZXRCb3VuZGluZ0JveCgp
IGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0Qm91bmRpbmdCb3g7IH0KKyAgICBTVkdVbml0VHlwZXM6
OlNWR1VuaXRUeXBlIHByaW1pdGl2ZVVuaXRzKCkgY29uc3QgeyByZXR1cm4gbV9wcmltaXRpdmVV
bml0czsgfQogCisgICAgY29uc3QgU1ZHRmlsdGVyRXhwcmVzc2lvbiYgZXhwcmVzc2lvbigpIGNv
bnN0IHsgcmV0dXJuIG1fZXhwcmVzc2lvbjsgfQorICAgIAogICAgIFJlZlB0cjxGaWx0ZXJFZmZl
Y3Q+IGxhc3RFZmZlY3QoKSBjb25zdCBmaW5hbDsKIAogICAgIFJlZlB0cjxGaWx0ZXJJbWFnZT4g
YXBwbHkoKSBmaW5hbDsKQEAgLTUwLDYgKzU0LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IFNWR0ZpbHRlcihSZW5kZXJpbmdNb2RlLCBjb25zdCBGbG9hdFNpemUmIGZpbHRlclNjYWxlLCBD
bGlwT3BlcmF0aW9uLCBjb25zdCBGbG9hdFJlY3QmIGZpbHRlclJlZ2lvbiwgY29uc3QgRmxvYXRS
ZWN0JiB0YXJnZXRCb3VuZGluZ0JveCwgU1ZHVW5pdFR5cGVzOjpTVkdVbml0VHlwZSBwcmltaXRp
dmVVbml0cyk7CisgICAgU1ZHRmlsdGVyKGNvbnN0IEZsb2F0UmVjdCYgdGFyZ2V0Qm91bmRpbmdC
b3gsIFNWR1VuaXRUeXBlczo6U1ZHVW5pdFR5cGUgcHJpbWl0aXZlVW5pdHMsIFNWR0ZpbHRlckV4
cHJlc3Npb24mJik7CiAKICAgICB2b2lkIHNldEV4cHJlc3Npb24oU1ZHRmlsdGVyRXhwcmVzc2lv
biYmIGV4cHJlc3Npb24pIHsgbV9leHByZXNzaW9uID0gV1RGTW92ZShleHByZXNzaW9uKTsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9GaWx0ZXJSZWZlcmVuY2Uu
aCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oCmluZGV4IDgx
ODQwYmQ3MGM1Y2I2NDBjZGJlNmQ4NTA5NTM1YjJlMjg4NjZmMDYuLjcwYmU0OTBkMjVmNTA4YzJm
NWI4NmU0Y2NjMTRkZjRhYjA3NjA0ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0ZpbHRlclJlZmVyZW5jZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBD
L0ZpbHRlclJlZmVyZW5jZS5oCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9G
aWx0ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbHRlckVmZmVjdFZlY3Rvci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvU1ZHRmlsdGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9Tb3VyY2VBbHBoYS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvU291cmNlR3JhcGhpYy5oPgogCiBuYW1lc3BhY2UgSVBDIHsK
QEAgLTYyLDggKzYzLDIwIEBAIHB1YmxpYzoKICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxGaWx0ZXJSZWZlcmVuY2U+IGRlY29kZShEZWNvZGVyJik7CiAK
IHByaXZhdGU6CisgICAgc3RydWN0IEV4cHJlc3Npb25SZWZlcmVuY2VUZXJtIHsKKyAgICAgICAg
dW5zaWduZWQgaW5kZXg7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsdGVyRWZm
ZWN0R2VvbWV0cnk+IGdlb21ldHJ5OworICAgICAgICB1bnNpZ25lZCBsZXZlbDsKKyAgICAKKyAg
ICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxF
eHByZXNzaW9uUmVmZXJlbmNlVGVybT4gZGVjb2RlKERlY29kZXImKTsKKyAgICB9OworICAgIAor
ICAgIHVzaW5nIEV4cHJlc3Npb25SZWZlcmVuY2UgPSBWZWN0b3I8RXhwcmVzc2lvblJlZmVyZW5j
ZVRlcm0+OworCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gc3RhdGljIHZvaWQgZW5jb2Rl
RmlsdGVyRWZmZWN0KGNvbnN0IFdlYkNvcmU6OkZpbHRlckVmZmVjdCYsIEVuY29kZXImKTsKICAg
ICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgUmVmUHRyPFdlYkNvcmU6OkZpbHRlckVm
ZmVjdD4gZGVjb2RlRmlsdGVyRWZmZWN0KERlY29kZXImLCBXZWJDb3JlOjpGaWx0ZXJGdW5jdGlv
bjo6VHlwZSk7CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIFJlZlB0cjxXZWJD
b3JlOjpGaWx0ZXJFZmZlY3Q+IGRlY29kZUZpbHRlckVmZmVjdChEZWNvZGVyJik7CiAKICAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiBzdGF0aWMgdm9pZCBlbmNvZGVTVkdGaWx0ZXIoY29uc3Qg
V2ViQ29yZTo6U1ZHRmlsdGVyJiwgRW5jb2RlciYpOwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29k
ZXI+IHN0YXRpYyBSZWZQdHI8V2ViQ29yZTo6U1ZHRmlsdGVyPiBkZWNvZGVTVkdGaWx0ZXIoRGVj
b2RlciYpOwpAQCAtMjQzLDExICsyNTYsMTQgQEAgUmVmUHRyPFdlYkNvcmU6OkZpbHRlckVmZmVj
dD4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXJFZmZlY3QoRGVjb2RlciYgZGVjb2QKICAg
ICAgICAgZWZmZWN0ID0gV2ViQ29yZTo6RkVUdXJidWxlbmNlOjpkZWNvZGUoZGVjb2Rlcik7CiAg
ICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5cGU6OlNv
dXJjZUFscGhhOgorICAgICAgICBlZmZlY3QgPSBXZWJDb3JlOjpTb3VyY2VBbHBoYTo6Y3JlYXRl
KCk7CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q6OlR5
cGU6OlNvdXJjZUdyYXBoaWM6CiAgICAgICAgIGVmZmVjdCA9IFdlYkNvcmU6OlNvdXJjZUdyYXBo
aWM6OmNyZWF0ZSgpOwogICAgICAgICBicmVhazsKIAotICAgIGNhc2UgV2ViQ29yZTo6RmlsdGVy
RWZmZWN0OjpUeXBlOjpTb3VyY2VBbHBoYToKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICB9CkBAIC0yNjAsMTcgKzI3NiwxMjEgQEAgUmVmUHRyPFdlYkNv
cmU6OkZpbHRlckVmZmVjdD4gRmlsdGVyUmVmZXJlbmNlOjpkZWNvZGVGaWx0ZXJFZmZlY3QoRGVj
b2RlciYgZGVjb2QKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAordGVtcGxhdGU8Y2xhc3MgRGVj
b2Rlcj4KK1JlZlB0cjxXZWJDb3JlOjpGaWx0ZXJFZmZlY3Q+IEZpbHRlclJlZmVyZW5jZTo6ZGVj
b2RlRmlsdGVyRWZmZWN0KERlY29kZXImIGRlY29kZXIpCit7CisgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpGaWx0ZXJGdW5jdGlvbjo6VHlwZT4gZmlsdGVyVHlwZTsKKyAgICBkZWNvZGVyID4+
IGZpbHRlclR5cGU7CisgICAgaWYgKCFmaWx0ZXJUeXBlKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIHJldHVybiBkZWNvZGVGaWx0ZXJFZmZlY3QoZGVjb2RlciwgKmZpbHRlclR5cGUp
OworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGaWx0ZXJSZWZlcmVuY2U6OkV4
cHJlc3Npb25SZWZlcmVuY2VUZXJtOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sK
KyAgICBlbmNvZGVyIDw8IGluZGV4OworICAgIGVuY29kZXIgPDwgZ2VvbWV0cnk7CisgICAgZW5j
b2RlciA8PCBsZXZlbDsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KK3N0ZDo6b3B0aW9u
YWw8RmlsdGVyUmVmZXJlbmNlOjpFeHByZXNzaW9uUmVmZXJlbmNlVGVybT4gRmlsdGVyUmVmZXJl
bmNlOjpFeHByZXNzaW9uUmVmZXJlbmNlVGVybTo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCit7
CisgICAgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gaW5kZXg7CisgICAgZGVjb2RlciA+PiBpbmRl
eDsKKyAgICBpZiAoIWluZGV4KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
c3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZpbHRlckVmZmVjdEdlb21ldHJ5
Pj4gZ2VvbWV0cnk7CisgICAgZGVjb2RlciA+PiBnZW9tZXRyeTsKKyAgICBpZiAoIWdlb21ldHJ5
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgc3RkOjpvcHRpb25hbDx1bnNp
Z25lZD4gbGV2ZWw7CisgICAgZGVjb2RlciA+PiBsZXZlbDsKKyAgICBpZiAoIWxldmVsKQorICAg
ICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgcmV0dXJuIHsgeyAqaW5kZXgsICpnZW9t
ZXRyeSwgKmxldmVsIH0gfTsKK30KKwogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4KIHZvaWQgRmls
dGVyUmVmZXJlbmNlOjplbmNvZGVTVkdGaWx0ZXIoY29uc3QgV2ViQ29yZTo6U1ZHRmlsdGVyJiBm
aWx0ZXIsIEVuY29kZXImIGVuY29kZXIpCiB7Ci0gICAgLy8gRklYTUU6IEVuY29kZSB0aGUgU1ZH
RmlsdGVyLgorICAgIEhhc2hNYXA8UmVmPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4sIHVuc2lnbmVk
PiBpbmRpY2llczsKKyAgICBWZWN0b3I8UmVmPFdlYkNvcmU6OkZpbHRlckVmZmVjdD4+IGVmZmVj
dHM7CisKKyAgICAvLyBHZXQgdGhlIGluZGl2aWR1YWwgRmlsdGVyRWZmZWN0cyBpbiBmaWx0ZXIu
ZXhwcmVzc2lvbigpLgorICAgIGZvciAoYXV0byYgdGVybSA6IGZpbHRlci5leHByZXNzaW9uKCkp
IHsKKyAgICAgICAgaWYgKGluZGljaWVzLmNvbnRhaW5zKHRlcm0uZWZmZWN0KSkKKyAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICBpbmRpY2llcy5hZGQodGVybS5lZmZlY3QsIGVmZmVjdHMu
c2l6ZSgpKTsKKyAgICAgICAgZWZmZWN0cy5hcHBlbmQodGVybS5lZmZlY3QpOworICAgIH0KKwor
ICAgIC8vIFJlcGxhY2UgdGhlIFJlZjxGaWx0ZXJFZmZlY3Q+IGluIFNWR0V4cHJlc3Npb25UZXJt
IHdpdGggaXRzIGluZGV4IGluIGluZGljaWVzLgorICAgIGF1dG8gZXhwcmVzc2lvblJlZmVyZW5j
ZSA9IFdURjo6bWFwKGZpbHRlci5leHByZXNzaW9uKCksIFsmaW5kaWNpZXNdIChhdXRvJiYgdGVy
bSkgLT4gRXhwcmVzc2lvblJlZmVyZW5jZVRlcm0geworICAgICAgICBBU1NFUlQoaW5kaWNpZXMu
Y29udGFpbnModGVybS5lZmZlY3QpKTsKKyAgICAgICAgdW5zaWduZWQgaW5kZXggPSBpbmRpY2ll
cy5nZXQodGVybS5lZmZlY3QpOworICAgICAgICByZXR1cm4geyBpbmRleCwgdGVybS5nZW9tZXRy
eSwgdGVybS5sZXZlbCB9OworICAgIH0pOworCisgICAgZW5jb2RlciA8PCBmaWx0ZXIudGFyZ2V0
Qm91bmRpbmdCb3goKTsKKyAgICBlbmNvZGVyIDw8IGZpbHRlci5wcmltaXRpdmVVbml0cygpOwor
ICAgIAorICAgIGVuY29kZXIgPDwgZWZmZWN0cy5zaXplKCk7CisgICAgZm9yIChhdXRvJiBlZmZl
Y3QgOiBlZmZlY3RzKQorICAgICAgICBlbmNvZGVGaWx0ZXJFZmZlY3QoZWZmZWN0LCBlbmNvZGVy
KTsKKworICAgIGVuY29kZXIgPDwgZXhwcmVzc2lvblJlZmVyZW5jZTsKIH0KIAogdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4KIFJlZlB0cjxXZWJDb3JlOjpTVkdGaWx0ZXI+IEZpbHRlclJlZmVyZW5j
ZTo6ZGVjb2RlU1ZHRmlsdGVyKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgLy8gRklYTUU6IERl
Y29kZSB0aGUgU1ZHRmlsdGVyLgotICAgIHJldHVybiBudWxscHRyOworICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6RmxvYXRSZWN0PiB0YXJnZXRCb3VuZGluZ0JveDsKKyAgICBkZWNvZGVyID4+
IHRhcmdldEJvdW5kaW5nQm94OworICAgIGlmICghdGFyZ2V0Qm91bmRpbmdCb3gpCisgICAgICAg
IHJldHVybiBudWxscHRyOworCisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTVkdVbml0VHlw
ZXM6OlNWR1VuaXRUeXBlPiBwcmltaXRpdmVVbml0czsKKyAgICBkZWNvZGVyID4+IHByaW1pdGl2
ZVVuaXRzOworICAgIGlmICghcHJpbWl0aXZlVW5pdHMpCisgICAgICAgIHJldHVybiBudWxscHRy
OworCisgICAgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGVmZmVjdHNTaXplOworICAgIGRlY29kZXIg
Pj4gZWZmZWN0c1NpemU7CisgICAgaWYgKCFlZmZlY3RzU2l6ZSB8fCAhKmVmZmVjdHNTaXplKQor
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFZlY3RvcjxSZWY8V2ViQ29yZTo6RmlsdGVy
RWZmZWN0Pj4gZWZmZWN0czsKKworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgKmVmZmVjdHNT
aXplOyArK2kpIHsKKyAgICAgICAgYXV0byBlZmZlY3QgPSBkZWNvZGVGaWx0ZXJFZmZlY3QoZGVj
b2Rlcik7CisgICAgICAgIGlmICghZWZmZWN0KQorICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICAgICAgZWZmZWN0cy5hcHBlbmQoZWZmZWN0LnJlbGVhc2VOb25OdWxsKCkpOworICAg
IH0KKworICAgIHN0ZDo6b3B0aW9uYWw8RXhwcmVzc2lvblJlZmVyZW5jZT4gZXhwcmVzc2lvblJl
ZmVyZW5jZTsKKyAgICBkZWNvZGVyID4+IGV4cHJlc3Npb25SZWZlcmVuY2U7CisgICAgaWYgKCFl
eHByZXNzaW9uUmVmZXJlbmNlIHx8IGV4cHJlc3Npb25SZWZlcmVuY2UtPmlzRW1wdHkoKSkKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBXZWJDb3JlOjpTVkdGaWx0ZXJFeHByZXNzaW9u
IGV4cHJlc3Npb247CisgICAgZXhwcmVzc2lvbi5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGV4cHJl
c3Npb25SZWZlcmVuY2UtPnNpemUoKSk7CisKKyAgICAvLyBSZXBsYWNlIHRoZSBpbmRleCBpbiBF
eHByZXNzaW9uUmVmZXJlbmNlVGVybSB3aXRoIGl0cyBSZWY8RmlsdGVyRWZmZWN0PiBpbiBlZmZl
Y3RzLgorICAgIGZvciAoYXV0byYgdGVybSA6ICpleHByZXNzaW9uUmVmZXJlbmNlKSB7CisgICAg
ICAgIGlmICh0ZXJtLmluZGV4ID49IGVmZmVjdHMuc2l6ZSgpKQorICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIGV4cHJlc3Npb24udW5jaGVja2VkQXBwZW5kKHsgZWZmZWN0c1t0
ZXJtLmluZGV4XSwgdGVybS5nZW9tZXRyeSwgdGVybS5sZXZlbCB9KTsKKyAgICB9CisgICAgCisg
ICAgcmV0dXJuIFdlYkNvcmU6OlNWR0ZpbHRlcjo6Y3JlYXRlKCp0YXJnZXRCb3VuZGluZ0JveCwg
KnByaW1pdGl2ZVVuaXRzLCBXVEZNb3ZlKGV4cHJlc3Npb24pKTsKIH0KIAogdGVtcGxhdGU8Y2xh
c3MgRW5jb2Rlcj4K
</data>

          </attachment>
      

    </bug>

</bugzilla>