<?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>111969</bug_id>
          
          <creation_ts>2013-03-11 03:34:34 -0700</creation_ts>
          <short_desc>[CSS Regions] Nested auto-height regions don&apos;t layout correctly</short_desc>
          <delta_ts>2013-04-02 06:47:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (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>AdobeTracked</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>57312</blocked>
    
    <blocked>105366</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrei Bucur">abucur</reporter>
          <assigned_to name="Andrei Bucur">abucur</assigned_to>
          <cc>eric</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>WebkitBugTracker</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>852160</commentid>
    <comment_count>0</comment_count>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-03-11 03:34:34 -0700</bug_when>
    <thetext>The regions auto-height implementation doesn&apos;t compute the correct height values for nested auto-height regions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>860348</commentid>
    <comment_count>1</comment_count>
      <attachid>194262</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-03-21 08:09:14 -0700</bug_when>
    <thetext>Created attachment 194262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867313</commentid>
    <comment_count>2</comment_count>
      <attachid>194262</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2013-04-01 13:17:12 -0700</bug_when>
    <thetext>Comment on attachment 194262
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867760</commentid>
    <comment_count>3</comment_count>
      <attachid>196125</attachid>
    <who name="Andrei Bucur">abucur</who>
    <bug_when>2013-04-02 05:51:01 -0700</bug_when>
    <thetext>Created attachment 196125
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867781</commentid>
    <comment_count>4</comment_count>
      <attachid>196125</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-02 06:47:18 -0700</bug_when>
    <thetext>Comment on attachment 196125
Patch for landing

Clearing flags on attachment: 196125

Committed r147426: &lt;http://trac.webkit.org/changeset/147426&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>867782</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-02 06:47:21 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>194262</attachid>
            <date>2013-03-21 08:09:14 -0700</date>
            <delta_ts>2013-04-02 05:50:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-111969-20130321170500.patch</filename>
            <type>text/plain</type>
            <size>65810</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ2MzMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDZjMmY0MzQ5MGVhMjAx
OTMxZDNkYmM5NDQxM2ZiNTIxZjhmZTRmZS4uNjc5Mzg4ZTBiYmQ3NDE2MWNiMjlkZDM0ODEzYzJh
ZWIyZWI0MDFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxMy0wMy0yMSAgQW5k
cmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFJlZ2lvbnNdIE5l
c3RlZCBhdXRvLWhlaWdodCByZWdpb25zIGRvbid0IGxheW91dCBjb3JyZWN0bHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTk2OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwYXRjaCBmaXhlcyB0
aGUgYXV0by1oZWlnaHQgcmVnaW9ucyBwcm9jZXNzaW5nIG1vZGVsIHRvIHdvcmsgd2l0aCBuZXN0
ZWQgbmFtZWQgZmxvd3MuIEN1cnJlbnRseQorICAgICAgICB0aGlzIHVzZSBjYXNlIGRvZXNuJ3Qg
d29yayBjb3JyZWN0bHkgYmVjYXVzZSB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIGNvbXB1dGVkIGhl
aWdodCB2YWx1ZSBpcyBwcm9wYWdhdGVkCisgICAgICAgIHRvIHRoZSByZWdpb25zIGlzIGluY29y
cmVjdC4gRm9yIGV4YW1wbGUsIGluIHRoZSBjYXNlIG9mIHR3byBmbG93cyAoZjEgYW5kIGYyKSBh
bmQgdHdvIGF1dG8taGVpZ2h0CisgICAgICAgIHJlZ2lvbnMgKHIxIGFuZCByMikgd2l0aCByMiBh
IG1lbWJlciBvZiBmMToKKyAgICAgICAgMS4gdGhlIG5vcm1hbCBsYXlvdXQgcGhhc2Ugc3RhcnRz
CisgICAgICAgIDIuIHIxIGlzIGxhaWQgb3V0IHdpdGggaGVpZ2h0ID0gMAorICAgICAgICAzLiBm
MSBpcyBsYWlkIG91dCBpbmNsdWRpbmcgcjIgd2l0aCBoZWlnaHQgPSAwOyBvdmVycmlkZUxvZ2lj
YWxIZWlnaHQgZm9yIHIxIGlzIGNvbXB1dGVkCisgICAgICAgIDQuIGYyIGlzIGxhaWQgb3V0OyBv
dmVycmlkZUxvZ2ljYWxIZWlnaHQgZm9yIHIyIGlzIGNvbXB1dGVkCisgICAgICAgIDUuIHRoZSBj
b25zdHJhaW5lZCBsYXlvdXQgcGhhc2Ugc3RhcnRzCisgICAgICAgIDYuIHIxIGlzIGxhaWQgb3V0
IHVzaW5nIHRoZSBvdmVycmlkZUxvZ2ljYWxIZWlnaHQgY29tcHV0ZWQgaW4gdGhlIG5vcm1hbCBw
aGFzZQorICAgICAgICA3LiBmMSBpcyBsYWlkIG91dCBpbmNsdWRpbmcgcjIgd2l0aCBpdHMgb3Zl
cnJpZGVMb2dpY2FsSGVpZ2h0CisgICAgICAgIDguIGYyIGlzIGxhaWQgb3V0CisKKyAgICAgICAg
VGhlIHByb2JsZW0gYXBwZWFycyBhdCBzdGVwIDYgYmVjYXVzZSB0aGUgb3ZlcnJpZGVMb2dpY2Fs
aGVpZ2h0IGNvbXB1dGVkIGR1cmluZyBzdGVwIDMgYXNzdW1lcyByMgorICAgICAgICBoYXMgYSBo
ZWlnaHQgb2YgMC4gVGhlIHBhdGNoIGNoYW5nZXMgdGhlIGFsZ29yaXRobSB0byB1cGRhdGUgdGhl
IGF1dG8taGVpZ2h0IHJlZ2lvbnMgaW4gdGhlIHJldmVyc2UKKyAgICAgICAgb3JkZXIgb2YgdGhl
aXIgZmxvdyB0aHJlYWRzIGRlcGVuZGVjaWVzLiBIZXJlIGlzIGEgaGlnaCBsZXZlbCBvdmVydmll
dyBvZiB0aGUgbmV3IGFsZ29yaXRobSwKKyAgICAgICAgY29uc2lkZXJpbmcgdGhlIG5hbWVkIGZs
b3dzIGFyZSBzb3J0ZWQgaW4gdGhlIG9yZGVyIG9mIHRoZWlyIGRlcGVuZGVuY2llczoKKyAgICAg
ICAgMS4gVGhlIGZsb3dzIGFyZSBsYWlkIG91dCBmcm9tIHRoZSBvdXRlciBmbG93IHRvIHRoZSBp
bm5lciBmbG93LiBUaGlzIHN1Y2Nlc3NmdWxseSBjb21wdXRlcyB0aGUgb3V0ZXIKKyAgICAgICAg
bm9uLWF1dG8taGVpZ2h0IHJlZ2lvbnMgc2l6ZSBzbyB0aGUgaW5uZXIgZmxvd3MgaGF2ZSB0aGUg
bmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIGNvcnJlY3RseSBmcmFnbWVudAorICAgICAgICB0aGUg
Y29udGVudC4KKyAgICAgICAgMi4gVGhlIGZsb3dzIGFyZSBsYWlkIG91dCBmcm9tIHRoZSBpbm5l
ciBmbG93IHRvIHRoZSBvdXRlciBmbG93LiBBZnRlciBhbiBpbm5lciBmbG93IGlzIGxhaWQgb3V0
IGl0CisgICAgICAgIGdvZXMgaW50byB0aGUgY29uc3RyYWluZWQgbGF5b3V0IHBoYXNlIGFuZCBt
YXJrcyB0aGUgYXV0by1oZWlnaHQgcmVnaW9ucyB0aGV5IG5lZWQgbGF5b3V0LiBUaGlzCisgICAg
ICAgIG1lYW5zIHRoZSBvdXRlciBmbG93cyB3aWxsIHJlbGF5b3V0IGlmIHRoZXkgZGVwZW5kIG9u
IHJlZ2lvbnMgd2l0aCBhdXRvLWhlaWdodCByZWdpb25zIGJlbG9uZ2luZyB0bworICAgICAgICBp
bm5lciBmbG93cy4gVGhpcyBzdGVwIHdpbGwgY29ycmVjdGx5IGNvbXB1dGUgdGhlIG92ZXJyaWRl
TG9naWNhbEhlaWdodHMgZm9yIHRoZSBhdXRvLWhlaWdodCByZWdpb25zLgorICAgICAgICBJdCdz
IHBvc3NpYmxlIGZvciBub24tYXV0by1oZWlnaHQgcmVnaW9ucyB0byByZWxheW91dCBpZiB0aGV5
IGRlcGVuZCBvbiBhdXRvLWhlaWdodCByZWdpb25zLiBUaGlzCisgICAgICAgIHdpbGwgaW52YWxp
ZGF0ZSB0aGUgaW5uZXIgZmxvdyB0aHJlYWRzIGFuZCBtYXJrIHRoZW0gYXMgbmVlZGluZyBsYXlv
dXQuCisgICAgICAgIDMuIFRoZSBsYXN0IHN0ZXAgaXMgdG8gZG8gb25lIGxhc3QgbGF5b3V0IGlm
IHRoZXJlIGFyZSBwYWh0b2xvZ2ljYWwgZGVwZW5kZW5jaWVzIGJldHdlZW4gbm9uLWF1dG8taGVp
Z2h0CisgICAgICAgIHJlZ2lvbnMgYW5kIGF1dG8taGVpZ2h0IHJlZ2lvbnMgYXMgZGV0ZWN0ZWQg
aW4gdGhlIHByZXZpb3VzIHN0ZXAuCisKKyAgICAgICAgVGhlIHBhdGNoIGFsc28gcmVtb3ZlcyB0
aGUgbGF5b3V0IHBoYXNlIGZsYWcgZnJvbSBSZW5kZXJWaWV3IGFuZCBtb3ZlcyBpdCB0byB0aGUg
ZmxvdyB0aHJlYWRzLiBUaGlzCisgICAgICAgIGhhcHBlbnMgYmVjYXVzZSBhIGZsb3cgbmVlZHMg
dG8gdXBkYXRlIGl0cyBhdXRvLWhlaWdodCByZWdpb25zIG92ZXJyaWRlTG9naWNhbEhlaWdodCB3
aGlsZSB1cGRhdGluZworICAgICAgICB0aGUgbG9naWNhbCBoZWlnaHQgb2YgdGhlIHJlZ2lvbnMg
YmVsb25naW5nIHRvIHRoZSBpbm5lciBmbG93cyB0aGF0IGFyZSBsYWlkIG91dCBieSB0aGUgZmxv
dyAoaS5lLiB0aGUKKyAgICAgICAgb3V0ZXIgZmxvdyBpcyBpbiB0aGUgbm9ybWFsIHBoYXNlIHdo
aWxlIHRoZSBpbm5lciBmbG93cyBhcmUgaW4gdGhlIGNvbnN0cmFpbmVkIGxheW91dCBwaGFzZSku
CisKKyAgICAgICAgVGhlcmUncyBhbHNvIGEgbmV3IGZsYWcgb24gdGhlIFJlbmRlckZsb3dUaHJl
YWQgdGhhdCBpcyBzZXQgd2hlbiB0aGUgZmxvdyBuZWVkcyB0aGUgY29uc3RyYWluZWQgbGF5b3V0
CisgICAgICAgIHBoYXNlLiBUaGlzIGNvdWxkIGhhdmUgYmVlbiBwbGFjZWQgb24gdGhlIGZsb3cg
dGhyZWFkIGNvbnRyb2xsZXIgYnV0IEkgdGhpbmsgaXQgd2lsbCBiZSB1c2VmdWwgd2hlbiBkb2lu
ZworICAgICAgICBjb250ZW50IGJhbGFuY2luZyBmb3IgdGhlIG5ldyBtdWx0aS1jb2x1bW4gaW1w
bGVtZW50YXRpb24uCisKKyAgICAgICAgVGhlIG1vbWVudCB3ZSBjbGVhciB0aGUgb3ZlcnJpZGVM
b2dpY2FsSGVpZ2h0IHZhbHVlIG9uIGVtcHR5IGF1dG8taGVpZ2h0IHJlZ2lvbnMgaXMgYWxzbyBj
aGFuZ2VkIGJlY2F1c2UKKyAgICAgICAgd2UgZG9uJ3QgaGF2ZSB0byByZWxheW91dCBhIGZsb3cg
dGhyZWFkIG9uY2UgaXQncyBpbiB0aGUgY29uc3RyYWluZWQgcGhhc2UuIFdlIG5lZWQgdG8gaGF2
ZSB0aGUgY29ycmVjdAorICAgICAgICBmbG93IHRocmVhZCBwb3J0aW9ucyBjb3JyZWN0bHkgY29t
cHV0ZWQgYWZ0ZXIgdGhlIGFydGlmaWNpYWwgZm9yY2VkIGJyZWFrIGlzIGFwcGxpZWQgYXQgdGhl
IGVuZCBvZiB0aGUgY29udGVudC4KKworICAgICAgICBUZXN0czogZmFzdC9yZWdpb25zL2F1dG9o
ZWlnaHQtbWl4ZWQtbmVzdGVkLWNvbXBsZXgtcmVnaW9ucy5odG1sCisgICAgICAgICAgICAgICBm
YXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taXhlZC1uZXN0ZWQtcmVnaW9ucy5odG1sCisgICAgICAg
ICAgICAgICBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taXhlZC1wYXJhbGxlbC1yZWdpb25zLmh0
bWwKKyAgICAgICAgICAgICAgIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW5lc3RlZC1yZWdpb25z
Lmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6Rmxvd1RocmVhZENvbnRyb2xs
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OmxheW91dFJlbmRl
ck5hbWVkRmxvd1RocmVhZHMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGbG93VGhyZWFkQ29udHJvbGxlcjo6cmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6dW5yZWdpc3Rlck5hbWVkRmxv
d0NvbnRlbnROb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjp1
cGRhdGVGbG93VGhyZWFkc0NoYWluSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6Rmxv
d1RocmVhZENvbnRyb2xsZXI6OnVwZGF0ZUZsb3dUaHJlYWRzTmVlZGluZ0xheW91dCk6CisgICAg
ICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlRmxvd1RocmVhZHNOZWVk
aW5nVHdvU3RlcExheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxl
cjo6cmVzZXRGbG93VGhyZWFkc1dpdGhBdXRvSGVpZ2h0UmVnaW9ucyk6CisgICAgICAgIChXZWJD
b3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlRmxvd1RocmVhZHNJbnRvQ29uc3RyYWlu
ZWRQaGFzZSk6CisgICAgICAgICogcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmg6Cisg
ICAgICAgIChGbG93VGhyZWFkQ29udHJvbGxlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmxvd1RocmVhZDo6UmVuZGVyRmxvd1RocmVhZCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJGbG93VGhyZWFkOjp2YWxpZGF0ZVJlZ2lvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZs
b3dUaHJlYWQ6OnJlZ2lvbkF0QmxvY2tPZmZzZXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Rmxvd1RocmVhZDo6YXBwbHlCcmVha0FmdGVyQ29udGVudCk6IEFwcGx5IGFuIGFydGlmaWNpYWwg
YnJlYWsgYXQgdGhlIGVuZCBvZiB0aGUgY29udGVudC4KKyAgICAgICAgVGhpcyB3YXkgd2UgY2Fu
IGRldGVjdCB3aGVuIHRoZSBjb250ZW50IGVuZHMgYW5kIGNsZWFyIHRoZSBvdmVycmlkZUxvZ2lj
YWxIZWlnaHQgb24gdGhlIGVtcHR5IGF1dG8taGVpZ2h0IHJlZ2lvbnMuCisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJGbG93VGhyZWFkOjpjb21wdXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpp
bml0aWFsaXplUmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRmxvd1RocmVhZDo6bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0Zv
ckxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVSZWdp
b25zRmxvd1RocmVhZFBvcnRpb25SZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dU
aHJlYWQ6OmFkZEZvcmNlZFJlZ2lvbkJyZWFrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Rmxvd1RocmVhZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpwYWdlTG9naWNhbFdpZHRoKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6cGFnZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyUmVnaW9uOjptYXhQYWdlTG9naWNhbEhlaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJSZWdpb246OmxvZ2ljYWxIZWlnaHRPZkFsbEZsb3dUaHJlYWRDb250ZW50KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlZ2lvbjo6bGF5b3V0QmxvY2spOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUmVnaW9uOjp1cGRhdGVMb2dpY2FsSGVpZ2h0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpS
ZW5kZXJWaWV3KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Vmlldzo6bGF5b3V0Q29udGVudEluQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclZpZXc6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clZpZXcuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUmVuZGVyVmlldyk6CisKIDIw
MTMtMDMtMjAgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+
CiAKICAgICAgICAgW1F0XSBOZXcgZmFzdC90ZXh0L3dvcmQtc3BhY2Utd2l0aC1rZXJuaW5nLTMu
aHRtbCBmYWlscyBvbiBRdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zs
b3dUaHJlYWRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhy
ZWFkQ29udHJvbGxlci5jcHAKaW5kZXggZjBiMjMyMWQxZTRiNGQ2MDIzYTMwMGRkYTU3YThmZDZh
NGYzMDMxYy4uNDczNDJiNjUyM2JlZTM5MmZiM2MzMTgwMmViYzk0ODVkYTFlMGJlNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwCkBA
IC00OSw3ICs0OSw2IEBAIEZsb3dUaHJlYWRDb250cm9sbGVyOjpGbG93VGhyZWFkQ29udHJvbGxl
cihSZW5kZXJWaWV3KiB2aWV3KQogICAgIDogbV92aWV3KHZpZXcpCiAgICAgLCBtX2N1cnJlbnRS
ZW5kZXJGbG93VGhyZWFkKDApCiAgICAgLCBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJE
aXJ0eShmYWxzZSkKLSAgICAsIG1fbmVlZHNUd29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJlZ2lv
bnMoZmFsc2UpCiAgICAgLCBtX2Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9u
cygwKQogewogfQpAQCAtOTgsNiArOTcsMzcgQEAgdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6
c3R5bGVEaWRDaGFuZ2UoKQogCiB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjpsYXlvdXRSZW5k
ZXJOYW1lZEZsb3dUaHJlYWRzKCkKIHsKKyAgICB1cGRhdGVGbG93VGhyZWFkc0NoYWluSWZOZWNl
c3NhcnkoKTsKKworICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6aXRlcmF0b3Ig
aXRlciA9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YmVnaW4oKTsgaXRlciAhPSBtX3Jl
bmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgUmVuZGVy
TmFtZWRGbG93VGhyZWFkKiBmbG93UmVuZGVyZXIgPSAqaXRlcjsKKyAgICAgICAgZmxvd1JlbmRl
cmVyLT5sYXlvdXRJZk5lZWRlZCgpOworICAgIH0KK30KKwordm9pZCBGbG93VGhyZWFkQ29udHJv
bGxlcjo6cmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9kZShOb2RlKiBjb250ZW50Tm9kZSwgUmVu
ZGVyTmFtZWRGbG93VGhyZWFkKiBuYW1lZEZsb3cpCit7CisgICAgQVNTRVJUKGNvbnRlbnROb2Rl
ICYmIGNvbnRlbnROb2RlLT5pc0VsZW1lbnROb2RlKCkpOworICAgIEFTU0VSVChuYW1lZEZsb3cp
OworICAgIEFTU0VSVCghbV9tYXBOYW1lZEZsb3dDb250ZW50Tm9kZXMuY29udGFpbnMoY29udGVu
dE5vZGUpKTsKKyAgICBBU1NFUlQoIW5hbWVkRmxvdy0+aGFzQ29udGVudE5vZGUoY29udGVudE5v
ZGUpKTsKKyAgICBtX21hcE5hbWVkRmxvd0NvbnRlbnROb2Rlcy5hZGQoY29udGVudE5vZGUsIG5h
bWVkRmxvdyk7CisgICAgbmFtZWRGbG93LT5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKGNv
bnRlbnROb2RlKTsKK30KKwordm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dW5yZWdpc3Rlck5h
bWVkRmxvd0NvbnRlbnROb2RlKE5vZGUqIGNvbnRlbnROb2RlKQoreworICAgIEFTU0VSVChjb250
ZW50Tm9kZSAmJiBjb250ZW50Tm9kZS0+aXNFbGVtZW50Tm9kZSgpKTsKKyAgICBIYXNoTWFwPE5v
ZGUqLCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqPjo6aXRlcmF0b3IgaXQgPSBtX21hcE5hbWVkRmxv
d0NvbnRlbnROb2Rlcy5maW5kKGNvbnRlbnROb2RlKTsKKyAgICBBU1NFUlQoaXQgIT0gbV9tYXBO
YW1lZEZsb3dDb250ZW50Tm9kZXMuZW5kKCkpOworICAgIEFTU0VSVChpdC0+dmFsdWUpOworICAg
IEFTU0VSVChpdC0+dmFsdWUtPmhhc0NvbnRlbnROb2RlKGNvbnRlbnROb2RlKSk7CisgICAgaXQt
PnZhbHVlLT51bnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5vZGUoY29udGVudE5vZGUpOworICAg
IG1fbWFwTmFtZWRGbG93Q29udGVudE5vZGVzLnJlbW92ZShjb250ZW50Tm9kZSk7Cit9CisKK3Zv
aWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OnVwZGF0ZUZsb3dUaHJlYWRzQ2hhaW5JZk5lY2Vzc2Fy
eSgpCit7CiAgICAgQVNTRVJUKG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdCk7CiAgICAgQVNT
RVJUKGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnRDb25zaXN0ZW50KCkpOwogCkBAIC0x
MzEsMzIgKzE2MSw3MCBAQCB2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjpsYXlvdXRSZW5kZXJO
YW1lZEZsb3dUaHJlYWRzKCkKICAgICAgICAgbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5z
d2FwKHNvcnRlZExpc3QpOwogICAgICAgICBzZXRJc1JlbmRlck5hbWVkRmxvd1RocmVhZE9yZGVy
RGlydHkoZmFsc2UpOwogICAgIH0KK30KKworYm9vbCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBk
YXRlRmxvd1RocmVhZHNOZWVkaW5nTGF5b3V0KCkKK3sKKyAgICBib29sIG5lZWRzVHdvUGFzc0xh
eW91dCA9IGZhbHNlOwogCiAgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVy
YXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9
IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikgewogICAgICAgICBS
ZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOwotICAgICAgICBmbG93
UmVuZGVyZXItPmxheW91dElmTmVlZGVkKCk7CisgICAgICAgIEFTU0VSVCghZmxvd1JlbmRlcmVy
LT5uZWVkc1R3b1BoYXNlc0xheW91dCgpKTsKKyAgICAgICAgZmxvd1JlbmRlcmVyLT5zZXRJbkNv
bnN0cmFpbmVkTGF5b3V0UGhhc2UoZmFsc2UpOworICAgICAgICBpZiAoZmxvd1JlbmRlcmVyLT5u
ZWVkc0xheW91dCgpICYmIGZsb3dSZW5kZXJlci0+aGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25z
KCkpCisgICAgICAgICAgICBuZWVkc1R3b1Bhc3NMYXlvdXQgPSB0cnVlOwogICAgIH0KKworICAg
IGlmIChuZWVkc1R3b1Bhc3NMYXlvdXQpCisgICAgICAgIHJlc2V0Rmxvd1RocmVhZHNXaXRoQXV0
b0hlaWdodFJlZ2lvbnMoKTsKKworICAgIHJldHVybiBuZWVkc1R3b1Bhc3NMYXlvdXQ7CiB9CiAK
LXZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5vZGUo
Tm9kZSogY29udGVudE5vZGUsIFJlbmRlck5hbWVkRmxvd1RocmVhZCogbmFtZWRGbG93KQorYm9v
bCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlRmxvd1RocmVhZHNOZWVkaW5nVHdvU3RlcExh
eW91dCgpCiB7Ci0gICAgQVNTRVJUKGNvbnRlbnROb2RlICYmIGNvbnRlbnROb2RlLT5pc0VsZW1l
bnROb2RlKCkpOwotICAgIEFTU0VSVChuYW1lZEZsb3cpOwotICAgIEFTU0VSVCghbV9tYXBOYW1l
ZEZsb3dDb250ZW50Tm9kZXMuY29udGFpbnMoY29udGVudE5vZGUpKTsKLSAgICBBU1NFUlQoIW5h
bWVkRmxvdy0+aGFzQ29udGVudE5vZGUoY29udGVudE5vZGUpKTsKLSAgICBtX21hcE5hbWVkRmxv
d0NvbnRlbnROb2Rlcy5hZGQoY29udGVudE5vZGUsIG5hbWVkRmxvdyk7Ci0gICAgbmFtZWRGbG93
LT5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKGNvbnRlbnROb2RlKTsKKyAgICBib29sIG5l
ZWRzVHdvUGFzc0xheW91dCA9IGZhbHNlOworCisgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJl
YWRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdp
bigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikg
eworICAgICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOwor
ICAgICAgICBpZiAoZmxvd1JlbmRlcmVyLT5uZWVkc1R3b1BoYXNlc0xheW91dCgpKSB7CisgICAg
ICAgICAgICBuZWVkc1R3b1Bhc3NMYXlvdXQgPSB0cnVlOworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAobmVlZHNUd29QYXNzTGF5b3V0KQorICAgICAgICBy
ZXNldEZsb3dUaHJlYWRzV2l0aEF1dG9IZWlnaHRSZWdpb25zKCk7CisKKyAgICByZXR1cm4gbmVl
ZHNUd29QYXNzTGF5b3V0OwogfQogCi12b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjp1bnJlZ2lz
dGVyTmFtZWRGbG93Q29udGVudE5vZGUoTm9kZSogY29udGVudE5vZGUpCit2b2lkIEZsb3dUaHJl
YWRDb250cm9sbGVyOjpyZXNldEZsb3dUaHJlYWRzV2l0aEF1dG9IZWlnaHRSZWdpb25zKCkKIHsK
LSAgICBBU1NFUlQoY29udGVudE5vZGUgJiYgY29udGVudE5vZGUtPmlzRWxlbWVudE5vZGUoKSk7
Ci0gICAgSGFzaE1hcDxOb2RlKiwgUmVuZGVyTmFtZWRGbG93VGhyZWFkKj46Oml0ZXJhdG9yIGl0
ID0gbV9tYXBOYW1lZEZsb3dDb250ZW50Tm9kZXMuZmluZChjb250ZW50Tm9kZSk7Ci0gICAgQVNT
RVJUKGl0ICE9IG1fbWFwTmFtZWRGbG93Q29udGVudE5vZGVzLmVuZCgpKTsKLSAgICBBU1NFUlQo
aXQtPnZhbHVlKTsKLSAgICBBU1NFUlQoaXQtPnZhbHVlLT5oYXNDb250ZW50Tm9kZShjb250ZW50
Tm9kZSkpOwotICAgIGl0LT52YWx1ZS0+dW5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKGNv
bnRlbnROb2RlKTsKLSAgICBtX21hcE5hbWVkRmxvd0NvbnRlbnROb2Rlcy5yZW1vdmUoY29udGVu
dE5vZGUpOworICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6aXRlcmF0b3IgaXRl
ciA9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YmVnaW4oKTsgaXRlciAhPSBtX3JlbmRl
ck5hbWVkRmxvd1RocmVhZExpc3QtPmVuZCgpOyArK2l0ZXIpIHsKKyAgICAgICAgUmVuZGVyTmFt
ZWRGbG93VGhyZWFkKiBmbG93UmVuZGVyZXIgPSAqaXRlcjsKKyAgICAgICAgaWYgKGZsb3dSZW5k
ZXJlci0+aGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpIHsKKyAgICAgICAgICAgIGZsb3dS
ZW5kZXJlci0+bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpOworICAgICAg
ICAgICAgZmxvd1JlbmRlcmVyLT5pbnZhbGlkYXRlUmVnaW9ucygpOworICAgICAgICB9CisgICAg
fQorfQorCit2b2lkIEZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRhdGVGbG93VGhyZWFkc0ludG9D
b25zdHJhaW5lZFBoYXNlKCkKK3sKKyAgICAvLyBXYWxrIHRoZSBmbG93IGNoYWluIGluIHJldmVy
c2Ugb3JkZXIgdG8gdXBkYXRlIHRoZSBhdXRvLWhlaWdodCByZWdpb25zIGFuZCBjb21wdXRlIGNv
cnJlY3Qgc2l6ZXMgZm9yIHRoZSBjb250YWluaW5nIHJlZ2lvbnMuIE9ubHkgYWZ0ZXIgdGhpcyB3
ZSBjYW4KKyAgICAvLyBzZXQgdGhlIGZsb3cgaW4gdGhlIGNvbnN0cmFpbmVkIGxheW91dCBwaGFz
ZS4KKyAgICBmb3IgKFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q6OnJldmVyc2VfaXRlcmF0b3Ig
aXRlciA9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+cmJlZ2luKCk7IGl0ZXIgIT0gbV9y
ZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5yZW5kKCk7ICsraXRlcikgeworICAgICAgICBSZW5k
ZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOworICAgICAgICBBU1NFUlQo
IWZsb3dSZW5kZXJlci0+aGFzUmVnaW9ucygpIHx8IGZsb3dSZW5kZXJlci0+aGFzVmFsaWRSZWdp
b25JbmZvKCkpOworICAgICAgICBmbG93UmVuZGVyZXItPmxheW91dElmTmVlZGVkKCk7CisgICAg
ICAgIGlmIChmbG93UmVuZGVyZXItPmhhc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpKSB7Cisg
ICAgICAgICAgICBBU1NFUlQoZmxvd1JlbmRlcmVyLT5uZWVkc1R3b1BoYXNlc0xheW91dCgpKTsK
KyAgICAgICAgICAgIGZsb3dSZW5kZXJlci0+bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0Zv
ckxheW91dCgpOworICAgICAgICB9CisgICAgICAgIGZsb3dSZW5kZXJlci0+c2V0SW5Db25zdHJh
aW5lZExheW91dFBoYXNlKHRydWUpOworICAgICAgICBmbG93UmVuZGVyZXItPmNsZWFyTmVlZHNU
d29QaGFzZXNMYXlvdXQoKTsKKyAgICB9CiB9CiAKICNpZm5kZWYgTkRFQlVHCkBAIC0xNzQsMzEg
KzI0Miw0IEBAIGJvb2wgRmxvd1RocmVhZENvbnRyb2xsZXI6OmlzQXV0b0xvZ2ljYWxIZWlnaHRS
ZWdpb25zQ291bnRDb25zaXN0ZW50KCkgY29uc3QKIH0KICNlbmRpZgogCi1ib29sIEZsb3dUaHJl
YWRDb250cm9sbGVyOjpoYXNSZW5kZXJOYW1lZEZsb3dUaHJlYWRzTmVlZGluZ0xheW91dCgpIGNv
bnN0Ci17Ci0gICAgQVNTRVJUKG1fdmlldy0+bm9ybWFsTGF5b3V0UGhhc2UoKSk7Ci0gICAgZm9y
IChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1l
ZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFk
TGlzdC0+ZW5kKCk7ICsraXRlcikKLSAgICAgICAgaWYgKCgqaXRlciktPm5lZWRzTGF5b3V0KCkp
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQg
Rmxvd1RocmVhZENvbnRyb2xsZXI6OnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRI
ZWlnaHQoKQotewotICAgIEFTU0VSVChtX3ZpZXctPm5vcm1hbExheW91dFBoYXNlKCkpOwotICAg
IEFTU0VSVChoYXNGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSk7Ci0K
LSAgICBmb3IgKFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3Jl
bmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmJlZ2luKCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZs
b3dUaHJlYWRMaXN0LT5lbmQoKTsgKytpdGVyKQotICAgICAgICAoKml0ZXIpLT5yZXNldFJlZ2lv
bnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7Ci19Ci0KLXZvaWQgRmxvd1RocmVhZENv
bnRyb2xsZXI6Om1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKQotewotICAg
IEFTU0VSVChtX3ZpZXctPmNvbnN0cmFpbmVkRmxvd1RocmVhZHNMYXlvdXRQaGFzZSgpKTsKLSAg
ICBBU1NFUlQoaGFzRmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpOwot
Ci0gICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9y
ZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRG
bG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikKLSAgICAgICAgKCppdGVyKS0+bWFya0F1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpOwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRy
b2xsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5o
CmluZGV4IDI0MjgxMGYwNjRlZGIyZDMwYjU5ZTNlNDA2ZmFkNjkyODkzMWEwYTcuLmNmNTUxMDQ2
YmNkZjg4ZjFlNWU2MmNlZDg4NDFhYWY3MmZiODM2ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9GbG93VGhyZWFkQ29udHJvbGxlci5oCkBAIC03MSwyNiArNzEsMjMgQEAgcHVi
bGljOgogICAgIHZvaWQgaW5jcmVtZW50Rmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRS
ZWdpb25zKCkgeyArK21fZmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zOyB9
CiAgICAgdm9pZCBkZWNyZW1lbnRGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lv
bnMoKSB7IEFTU0VSVChtX2Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyA+
IDApOyAtLW1fZmxvd1RocmVhZHNXaXRoQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zOyB9CiAKLSAg
ICBib29sIGhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHNOZWVkaW5nTGF5b3V0KCkgY29uc3Q7Cisg
ICAgYm9vbCB1cGRhdGVGbG93VGhyZWFkc05lZWRpbmdMYXlvdXQoKTsKKyAgICBib29sIHVwZGF0
ZUZsb3dUaHJlYWRzTmVlZGluZ1R3b1N0ZXBMYXlvdXQoKTsKKyAgICB2b2lkIHVwZGF0ZUZsb3dU
aHJlYWRzSW50b0NvbnN0cmFpbmVkUGhhc2UoKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICBib29s
IGlzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zQ291bnRDb25zaXN0ZW50KCkgY29uc3Q7CiAjZW5k
aWYKIAotICAgIHZvaWQgcmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCgp
OwotICAgIHZvaWQgbWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpOwotCi0g
ICAgYm9vbCBuZWVkc1R3b1Bhc3NMYXlvdXRGb3JBdXRvSGVpZ2h0UmVnaW9ucygpIGNvbnN0IHsg
cmV0dXJuIG1fbmVlZHNUd29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJlZ2lvbnM7IH0KLSAgICB2
b2lkIHNldE5lZWRzVHdvUGFzc0xheW91dEZvckF1dG9IZWlnaHRSZWdpb25zKGJvb2wgbmVlZHNU
d29QYXNzTGF5b3V0KSB7IG1fbmVlZHNUd29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJlZ2lvbnMg
PSBuZWVkc1R3b1Bhc3NMYXlvdXQ7IH0KLQogcHJvdGVjdGVkOgogICAgIEZsb3dUaHJlYWRDb250
cm9sbGVyKFJlbmRlclZpZXcqKTsKKyAgICB2b2lkIHVwZGF0ZUZsb3dUaHJlYWRzQ2hhaW5JZk5l
Y2Vzc2FyeSgpOworICAgIHZvaWQgcmVzZXRGbG93VGhyZWFkc1dpdGhBdXRvSGVpZ2h0UmVnaW9u
cygpOwogCiBwcml2YXRlOgogICAgIFJlbmRlclZpZXcqIG1fdmlldzsKICAgICBSZW5kZXJGbG93
VGhyZWFkKiBtX2N1cnJlbnRSZW5kZXJGbG93VGhyZWFkOwogICAgIGJvb2wgbV9pc1JlbmRlck5h
bWVkRmxvd1RocmVhZE9yZGVyRGlydHk7Ci0gICAgYm9vbCBtX25lZWRzVHdvUGFzc0xheW91dEZv
ckF1dG9IZWlnaHRSZWdpb25zOwogICAgIHVuc2lnbmVkIG1fZmxvd1RocmVhZHNXaXRoQXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zOwogICAgIE93blB0cjxSZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0
PiBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q7CiAgICAgLy8gbWFwcyBhIGNvbnRlbnQgbm9k
ZSB0byBpdHMgcmVuZGVyIGZsb3cgdGhyZWFkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKaW5kZXggOTA3NWUxMGE1MWVjZmI0OTAzNWI4ODk2Y2ZmOTY3ODNmY2Q0ZTNl
Yy4uZWJiMDY2Y2EyYjBkZTFjM2FkZDYwZDc0ZThhODVlOTVmMWI0NmMyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xNTg2LDEwICsxNTg2LDE2IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0
VW5pdCBwYWdlTG9naWNhbEhlaWdoCiAgICAgCiAgICAgaWYgKHJlbGF5b3V0Rm9yUGFnaW5hdGlv
bihoYXNTcGVjaWZpZWRQYWdlTG9naWNhbEhlaWdodCwgcGFnZUxvZ2ljYWxIZWlnaHQsIHN0YXRl
UHVzaGVyKSkKICAgICAgICAgcmV0dXJuOwotIAorCiAgICAgLy8gQ2FsY3VsYXRlIG91ciBuZXcg
aGVpZ2h0LgogICAgIExheW91dFVuaXQgb2xkSGVpZ2h0ID0gbG9naWNhbEhlaWdodCgpOwogICAg
IExheW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlID0gY2xpZW50TG9naWNhbEJvdHRvbSgpOwor
CisgICAgLy8gQmVmb3JlIHVwZGF0aW5nIHRoZSBmaW5hbCBzaXplIG9mIHRoZSBmbG93IHRocmVh
ZCBtYWtlIHN1cmUgYSBmb3JjZWQgYnJlYWsgaXMgYXBwbGllZCBhZnRlciB0aGUgY29udGVudC4K
KyAgICAvLyBUaGlzIGVuc3VyZXMgdGhlIHNpemUgaW5mb3JtYXRpb24gaXMgY29ycmVjdGx5IGNv
bXB1dGVkIGZvciB0aGUgbGFzdCBhdXRvLWhlaWdodCByZWdpb24gcmVjZWl2aW5nIGNvbnRlbnQu
CisgICAgaWYgKGlzUmVuZGVyRmxvd1RocmVhZCgpKQorICAgICAgICB0b1JlbmRlckZsb3dUaHJl
YWQodGhpcyktPmFwcGx5QnJlYWtBZnRlckNvbnRlbnQob2xkQ2xpZW50QWZ0ZXJFZGdlKTsKKwog
ICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICBMYXlvdXRVbml0IG5ld0hlaWdodCA9IGxv
Z2ljYWxIZWlnaHQoKTsKICAgICBpZiAob2xkSGVpZ2h0ICE9IG5ld0hlaWdodCkgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCmluZGV4IGJiN2RhZTVj
ODMxMDAxNWE0ZmU5ZTQ2Mjg4ODA5ZTc0NjdlNDQ3NDYuLmVlMzliODJjYjQ3NjdiOWEwZTRlNGNh
MTllYTgwNzc4MjgxMWI2ZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Rmxvd1RocmVhZC5jcHAKQEAgLTU3LDYgKzU3LDggQEAgUmVuZGVyRmxvd1RocmVhZDo6UmVuZGVy
Rmxvd1RocmVhZChEb2N1bWVudCogZG9jdW1lbnQpCiAgICAgLCBtX2hhc1JlZ2lvbnNXaXRoU3R5
bGluZyhmYWxzZSkKICAgICAsIG1fZGlzcGF0Y2hSZWdpb25MYXlvdXRVcGRhdGVFdmVudChmYWxz
ZSkKICAgICAsIG1fcGFnZUxvZ2ljYWxTaXplQ2hhbmdlZChmYWxzZSkKKyAgICAsIG1faW5Db25z
dHJhaW5lZExheW91dFBoYXNlKGZhbHNlKQorICAgICwgbV9uZWVkc1R3b1BoYXNlc0xheW91dChm
YWxzZSkKIHsKICAgICBBU1NFUlQoZG9jdW1lbnQtPmNzc1JlZ2lvbnNFbmFibGVkKCkpOwogICAg
IHNldEZsb3dUaHJlYWRTdGF0ZShJbnNpZGVPdXRPZkZsb3dUaHJlYWQpOwpAQCAtMTY0LDcgKzE2
Niw3IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6dmFsaWRhdGVSZWdpb25zKCkKICAgICAgICAg
ICAgICAgICAvLyBTZWUgaW5pdGlhbGl6ZVJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVp
Z2h0IGZvciB0aGUgZXhwbGFuYXRpb24uCiAgICAgICAgICAgICAgICAgLy8gQWxzbywgaWYgd2Ug
aGF2ZSBhdXRvLWhlaWdodCByZWdpb25zIHdlIGNhbid0IGFzc3VtZSBtX3JlZ2lvbnNIYXZlVW5p
Zm9ybUxvZ2ljYWxIZWlnaHQgdG8gYmUgdHJ1ZSBpbiB0aGUgZmlyc3QgcGhhc2UKICAgICAgICAg
ICAgICAgICAvLyBiZWNhdXNlIHRoZSBhdXRvLWhlaWdodCByZWdpb25zIGRvbid0IGhhdmUgdGhl
aXIgaGVpZ2h0IGNvbXB1dGVkIHlldC4KLSAgICAgICAgICAgICAgICBpZiAodmlldygpLT5ub3Jt
YWxMYXlvdXRQaGFzZSgpICYmIHJlZ2lvbi0+aGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSkgeworICAg
ICAgICAgICAgICAgIGlmICghaW5Db25zdHJhaW5lZExheW91dFBoYXNlKCkgJiYgcmVnaW9uLT5o
YXNBdXRvTG9naWNhbEhlaWdodCgpKSB7CiAgICAgICAgICAgICAgICAgICAgIHJlZ2lvbi0+c2V0
T3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodChyZWdpb24tPm1heFBhZ2VMb2dpY2FsSGVpZ2h0
KCkpOwogICAgICAgICAgICAgICAgICAgICBtX3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxIZWln
aHQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9CkBAIC0xOTUsOCArMTk3LDE4IEBAIHZvaWQg
UmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KCkKICAgICBTdGFja1N0YXRzOjpMYXlvdXRDaGVja1Bv
aW50IGxheW91dENoZWNrUG9pbnQ7CiAKICAgICBtX3BhZ2VMb2dpY2FsU2l6ZUNoYW5nZWQgPSBt
X3JlZ2lvbnNJbnZhbGlkYXRlZCAmJiBldmVySGFkTGF5b3V0KCk7CisKKyAgICAvLyBJbiBjYXNl
IHRoaXMgaXMgdGhlIHNlY29uZCBwYXNzIG9mIHRoZSBub3JtYWwgcGhhc2Ugd2UgbmVlZCB0byB1
cGRhdGUgdGhlIGF1dG8taGVpZ2h0IHJlZ2lvbnMgdG8gdGhlaXIgaW5pdGlhbCB2YWx1ZS4KKyAg
ICAvLyBJZiB0aGUgcmVnaW9uIGNoYWluIHdhcyBpbnZhbGlkYXRlZCB0aGlzIHdpbGwgaGFwcGVu
IGFueXdheS4KKyAgICBpZiAoIW1fcmVnaW9uc0ludmFsaWRhdGVkICYmICFpbkNvbnN0cmFpbmVk
TGF5b3V0UGhhc2UoKSkKKyAgICAgICAgaW5pdGlhbGl6ZVJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxD
b250ZW50SGVpZ2h0KCk7CisKICAgICB2YWxpZGF0ZVJlZ2lvbnMoKTsKIAorICAgIC8vIFRoaXMg
aXMgdGhlIGZpcnN0IHBoYXNlIG9mIHRoZSBsYXlvdXQgYW5kIGJlY2F1c2Ugd2UgaGF2ZSBhdXRv
LWhlaWdodCByZWdpb25zIHdlJ2xsIG5lZWQgYSBzZWNvbmQKKyAgICAvLyBwYXNzIHRvIHVwZGF0
ZSB0aGUgZmxvdyB3aXRoIHRoZSBjb21wdXRlZCBhdXRvLWhlaWdodCByZWdpb25zLgorICAgIG1f
bmVlZHNUd29QaGFzZXNMYXlvdXQgPSAhaW5Db25zdHJhaW5lZExheW91dFBoYXNlKCkgJiYgaGFz
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7CisKICAgICBDdXJyZW50UmVuZGVyRmxvd1RocmVh
ZE1haW50YWluZXIgY3VycmVudEZsb3dUaHJlYWRTZXR0ZXIodGhpcyk7CiAgICAgUmVuZGVyQmxv
Y2s6OmxheW91dCgpOwogCkBAIC0zODIsNyArMzk0LDcgQEAgUmVuZGVyUmVnaW9uKiBSZW5kZXJG
bG93VGhyZWFkOjpyZWdpb25BdEJsb2NrT2Zmc2V0KExheW91dFVuaXQgb2Zmc2V0LCBib29sIGV4
dGUKICAgICAgICAgaWYgKGV4dGVuZExhc3RSZWdpb24gfHwgcmVnaW9uLT5pc1JlbmRlclJlZ2lv
blNldCgpKQogICAgICAgICAgICAgbGFzdFZhbGlkUmVnaW9uID0gcmVnaW9uOwogCi0gICAgICAg
IGlmIChyZWdpb24tPmhhc092ZXJyaWRlSGVpZ2h0KCkgJiYgdmlldygpLT5ub3JtYWxMYXlvdXRQ
aGFzZSgpKSB7CisgICAgICAgIGlmIChyZWdpb24tPmhhc092ZXJyaWRlSGVpZ2h0KCkgJiYgIWlu
Q29uc3RyYWluZWRMYXlvdXRQaGFzZSgpKSB7CiAgICAgICAgICAgICBhY2N1bXVsYXRlZExvZ2lj
YWxIZWlnaHQgKz0gcmVnaW9uLT5vdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CiAgICAg
ICAgICAgICBpZiAob2Zmc2V0IDwgYWNjdW11bGF0ZWRMb2dpY2FsSGVpZ2h0KQogICAgICAgICAg
ICAgICAgIHJldHVybiByZWdpb247CkBAIC02NDgsMjAgKzY2MCwxNiBAQCB2b2lkIFJlbmRlckZs
b3dUaHJlYWQ6OmdldFJlZ2lvblJhbmdlRm9yQm94KGNvbnN0IFJlbmRlckJveCogYm94LCBSZW5k
ZXJSZWdpb24qJgogICAgIEFTU0VSVChtX3JlZ2lvbkxpc3QuY29udGFpbnMoc3RhcnRSZWdpb24p
ICYmIG1fcmVnaW9uTGlzdC5jb250YWlucyhlbmRSZWdpb24pKTsKIH0KIAotdm9pZCBSZW5kZXJG
bG93VGhyZWFkOjpjb21wdXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRD
bGllbnRBZnRlckVkZ2UpCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmFwcGx5QnJlYWtBZnRlckNv
bnRlbnQoTGF5b3V0VW5pdCBjbGllbnRIZWlnaHQpCiB7Ci0gICAgTGF5b3V0VW5pdCBoZWlnaHQg
PSBvbGRDbGllbnRBZnRlckVkZ2U7Ci0KLSAgICBMYXlvdXRVbml0IG9mZnNldEJyZWFrQWRqdXN0
bWVudCA9IDA7CiAgICAgLy8gU2ltdWxhdGUgYSByZWdpb24gYnJlYWsgYXQgaGVpZ2h0LiBJZiBp
dCBwb2ludHMgaW5zaWRlIGFuIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9uLAogICAgIC8vIHRo
ZW4gaXQgbWF5IGRldGVybWluZSB0aGUgcmVnaW9uIG92ZXJyaWRlIGxvZ2ljYWwgY29udGVudCBo
ZWlnaHQuCi0gICAgYWRkRm9yY2VkUmVnaW9uQnJlYWsoaGVpZ2h0LCB0aGlzLCBmYWxzZSwgJm9m
ZnNldEJyZWFrQWRqdXN0bWVudCk7CisgICAgYWRkRm9yY2VkUmVnaW9uQnJlYWsoY2xpZW50SGVp
Z2h0LCB0aGlzLCBmYWxzZSk7Cit9CiAKLSAgICAvLyBEdXJpbmcgdGhlIG5vcm1hbCBsYXlvdXQg
cGhhc2Ugb2YgdGhlIGZsb3cgdGhyZWFkIGFsbCB0aGUgYXV0by1oZWlnaHQgcmVnaW9ucyBoYXZl
IHRoZSBvdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0IHNldCB0byBtYXggaGVpZ2h0LgotICAg
IC8vIFdlIG5lZWQgdG8gY2xlYXIgdGhlIG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQgZm9y
IGFsbCB0aGUgcmVnaW9ucyB0aGF0IGRpZG4ndCByZWNlaXZlIGFueSBjb250ZW50LCBzdGFydGlu
ZyB3aXRoIGZpcnN0RW1wdHlSZWdpb24uCi0gICAgUmVuZGVyUmVnaW9uKiBmaXJzdEVtcHR5UmVn
aW9uID0gMDsKLSAgICBpZiAodmlldygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpKQotICAgICAgICBm
aXJzdEVtcHR5UmVnaW9uID0gcmVnaW9uQXRCbG9ja09mZnNldChoZWlnaHQgKyBvZmZzZXRCcmVh
a0FkanVzdG1lbnQpOwordm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21wdXRlT3ZlcmZsb3dTdGF0
ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UpCit7CisgICAgTGF5b3V0
VW5pdCBoZWlnaHQgPSBvbGRDbGllbnRBZnRlckVkZ2U7CiAKICAgICAvLyBGSVhNRTogdGhlIHZp
c3VhbCBvdmVyZmxvdyBvZiBtaWRkbGUgcmVnaW9uIChpZiBpdCBpcyB0aGUgbGFzdCBvbmUgdG8g
Y29udGFpbiBhbnkgY29udGVudCBpbiBhIHJlbmRlciBmbG93IHRocmVhZCkKICAgICAvLyBtaWdo
dCBub3QgYmUgdGFrZW4gaW50byBhY2NvdW50IGJlY2F1c2UgdGhlIHJlbmRlciBmbG93IHRocmVh
ZCBoZWlnaHQgaXMgZ3JlYXRlciB0aGF0IHRoYXQgcmVnaW9ucyBoZWlnaHQgKyBpdHMgdmlzdWFs
IG92ZXJmbG93CkBAIC02NzIsNyArNjgwLDYgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21w
dXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckUKICAg
ICAgICAgICAgIHx8ICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAmJiB2aXN1YWxPdmVyZmxv
d1JlY3QoKS5tYXhYKCkgPiBjbGllbnRCb3hSZWN0KCkubWF4WCgpKSkpCiAgICAgICAgIGhlaWdo
dCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyB2aXN1YWxPdmVyZmxvd1JlY3QoKS5tYXhZ
KCkgOiB2aXN1YWxPdmVyZmxvd1JlY3QoKS5tYXhYKCk7CiAKLSAgICBib29sIGluRW1wdHlSZWdp
b25zU2VjdGlvbiA9IGZhbHNlOwogICAgIFJlbmRlclJlZ2lvbiogbGFzdFJlZyA9IGxhc3RSZWdp
b24oKTsKICAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lv
bkxpc3QuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgewogICAg
ICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOwpAQCAtNjkyLDEzICs2OTksNiBAQCB2
b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyhMYXlv
dXRVbml0IG9sZENsaWVudEFmdGVyRQogICAgICAgICAgICAgfHwgc3RhdGUgPT0gUmVuZGVyUmVn
aW9uOjpSZWdpb25GaXQKICAgICAgICAgICAgIHx8IHN0YXRlID09IFJlbmRlclJlZ2lvbjo6UmVn
aW9uT3ZlcnNldCkKICAgICAgICAgICAgIHNldERpc3BhdGNoUmVnaW9uTGF5b3V0VXBkYXRlRXZl
bnQodHJ1ZSk7Ci0KLSAgICAgICAgaWYgKHJlZ2lvbiA9PSBmaXJzdEVtcHR5UmVnaW9uKQotICAg
ICAgICAgICAgaW5FbXB0eVJlZ2lvbnNTZWN0aW9uID0gdHJ1ZTsKLQotICAgICAgICAvLyBDbGVh
ciB0aGUgb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCB2YWx1ZSBmb3IgYXV0b2hlaWdodCBy
ZWdpb25zIHRoYXQgZGlkbid0IHJlY2VpdmUgYW55IGNvbnRlbnQuCi0gICAgICAgIGlmIChpbkVt
cHR5UmVnaW9uc1NlY3Rpb24gJiYgcmVnaW9uLT5oYXNBdXRvTG9naWNhbEhlaWdodCgpKQotICAg
ICAgICAgICAgcmVnaW9uLT5jbGVhck92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKICAg
ICB9CiAKICAgICAvLyBXaXRoIHRoZSByZWdpb25zIG92ZXJmbG93IHN0YXRlIGNvbXB1dGVkIHdl
IGNhbiBhbHNvIHNldCB0aGUgb3ZlcnNldCBmbGFnIGZvciB0aGUgbmFtZWQgZmxvdy4KQEAgLTc5
NCwzNSArNzk0LDEyIEBAIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6aXNBdXRvTG9naWNhbEhlaWdo
dFJlZ2lvbnNDb3VudENvbnNpc3RlbnQoKSBjb25zdAogfQogI2VuZGlmCiAKLXZvaWQgUmVuZGVy
Rmxvd1RocmVhZDo6cmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCgpCi17
Ci0gICAgQVNTRVJUKHZpZXcoKS0+bGF5b3V0U3RhdGUoKSk7Ci0gICAgQVNTRVJUKHZpZXcoKS0+
bm9ybWFsTGF5b3V0UGhhc2UoKSk7Ci0KLSAgICBpZiAoIWhhc0F1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9ucygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0
ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3Qu
ZW5kKCk7ICsraXRlcikgewotICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOwot
ICAgICAgICBpZiAoIXJlZ2lvbi0+aGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSkKLSAgICAgICAgICAg
IGNvbnRpbnVlOwotCi0gICAgICAgIHJlZ2lvbi0+Y2xlYXJPdmVycmlkZUxvZ2ljYWxDb250ZW50
SGVpZ2h0KCk7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGZpbmQgYSB3YXkgdG8gYXZv
aWQgbWFya2luZyBhbGwgdGhlIHJlZ2lvbnMgYW5jZXN0b3JzIGZvciBsYXlvdXQKLSAgICAgICAg
Ly8gYXMgd2UgYXJlIGFscmVhZHkgaW5zaWRlIGxheW91dC4KLSAgICAgICAgcmVnaW9uLT5zZXRO
ZWVkc0xheW91dCh0cnVlKTsKLSAgICB9Ci0gICAgLy8gTWFrZSBzdXJlIHdlIGRvbid0IHNraXAg
YW55IHJlZ2lvbiBicmVha3Mgd2hlbiB3ZSBkbyB0aGUgbGF5b3V0IGFnYWluLgotICAgIC8vIFVz
aW5nIG1fcmVnaW9uc0ludmFsaWRhdGVkIHRvIGZvcmNlIGFsbCB0aGUgUmVuZGVyRmxvd1RocmVh
ZCBjaGlsZHJlbiBkbyB0aGUgbGF5b3V0IGFnYWluLgotICAgIGludmFsaWRhdGVSZWdpb25zKCk7
Ci19Ci0KIC8vIER1cmluZyB0aGUgbm9ybWFsIGxheW91dCBwaGFzZSBvZiB0aGUgbmFtZWQgZmxv
dyB0aGUgcmVnaW9ucyBhcmUgaW5pdGlhbGl6ZWQgd2l0aCBhIGhlaWdodCBlcXVhbCB0byB0aGVp
ciBtYXgtaGVpZ2h0LgogLy8gVGhpcyB3YXkgdW5mb3JjZWQgYnJlYWtzIGFyZSBhdXRvbWF0aWNh
bGx5IHBsYWNlZCB3aGVuIGEgcmVnaW9uIGlzIGZ1bGwgYW5kIHRoZSBjb250ZW50IGhlaWdodC9w
b3NpdGlvbiBjb3JyZWN0bHkgZXN0aW1hdGVkLgogLy8gQWxzbywgdGhlIHJlZ2lvbiB3aGVyZSBh
IGZvcmNlZCBicmVhayBmYWxscyBpcyBleGFjdGx5IHRoZSByZWdpb24gZm91bmQgYXQgdGhlIGZv
cmNlZCBicmVhayBvZmZzZXQgaW5zaWRlIHRoZSBmbG93IGNvbnRlbnQuCiB2b2lkIFJlbmRlckZs
b3dUaHJlYWQ6OmluaXRpYWxpemVSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodChS
ZW5kZXJSZWdpb24qIHN0YXJ0UmVnaW9uKQogewotICAgIEFTU0VSVCh2aWV3KCktPm5vcm1hbExh
eW91dFBoYXNlKCkpOworICAgIEFTU0VSVCghaW5Db25zdHJhaW5lZExheW91dFBoYXNlKCkpOwog
ICAgIGlmICghaGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpCiAgICAgICAgIHJldHVybjsK
IApAQCAtODM2LDExICs4MTMsNyBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmluaXRpYWxpemVS
ZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodChSZW5kZXJSZWdpbwogCiB2b2lkIFJl
bmRlckZsb3dUaHJlYWQ6Om1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKQog
ewotICAgIEFTU0VSVCh2aWV3KCktPmxheW91dFN0YXRlKCkpOwotICAgIEFTU0VSVCh2aWV3KCkt
PmNvbnN0cmFpbmVkRmxvd1RocmVhZHNMYXlvdXRQaGFzZSgpKTsKLQotICAgIGlmICghaGFzQXV0
b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpCi0gICAgICAgIHJldHVybjsKKyAgICBBU1NFUlQoaGFz
QXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpOwogCiAgICAgZm9yIChSZW5kZXJSZWdpb25MaXN0
OjppdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0ZXIgIT0gbV9yZWdpb25M
aXN0LmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgUmVuZGVyUmVnaW9uKiByZWdpb24gPSAqaXRl
cjsKQEAgLTg1MSwxNiArODI0LDIwIEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6bWFya0F1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpCiAgICAgICAgIC8vIGFzIHdlIGFyZSBhbHJl
YWR5IGluc2lkZSBsYXlvdXQuCiAgICAgICAgIHJlZ2lvbi0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7
CiAgICAgfQotCi0gICAgaW52YWxpZGF0ZVJlZ2lvbnMoKTsKIH0KIAotdm9pZCBSZW5kZXJGbG93
VGhyZWFkOjp1cGRhdGVSZWdpb25zRmxvd1RocmVhZFBvcnRpb25SZWN0KCkKK3ZvaWQgUmVuZGVy
Rmxvd1RocmVhZDo6dXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9uUmVjdChjb25zdCBSZW5k
ZXJSZWdpb24qIGxhc3RSZWdpb25XaXRoQ29udGVudCkKIHsKKyAgICBBU1NFUlQoIWxhc3RSZWdp
b25XaXRoQ29udGVudCB8fCAoIWluQ29uc3RyYWluZWRMYXlvdXRQaGFzZSgpICYmIGhhc0F1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9ucygpKSk7CiAgICAgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0g
MDsKKyAgICBib29sIGVtcHR5UmVnaW9uc1NlZ21lbnQgPSBmYWxzZTsKICAgICBmb3IgKFJlbmRl
clJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAh
PSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgewogICAgICAgICBSZW5kZXJSZWdpb24qIHJl
Z2lvbiA9ICppdGVyOwogCisgICAgICAgIC8vIElmIHdlIGZpbmQgYW4gZW1wdHkgYXV0by1oZWln
aHQgcmVnaW9uLCBjbGVhciB0aGUgb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCB2YWx1ZS4K
KyAgICAgICAgaWYgKGVtcHR5UmVnaW9uc1NlZ21lbnQgJiYgcmVnaW9uLT5oYXNBdXRvTG9naWNh
bEhlaWdodCgpKQorICAgICAgICAgICAgcmVnaW9uLT5jbGVhck92ZXJyaWRlTG9naWNhbENvbnRl
bnRIZWlnaHQoKTsKKwogICAgICAgICBMYXlvdXRVbml0IHJlZ2lvbkxvZ2ljYWxXaWR0aCA9IHJl
Z2lvbi0+cGFnZUxvZ2ljYWxXaWR0aCgpOwogICAgICAgICBMYXlvdXRVbml0IHJlZ2lvbkxvZ2lj
YWxIZWlnaHQgPSByZWdpb24tPmxvZ2ljYWxIZWlnaHRPZkFsbEZsb3dUaHJlYWRDb250ZW50KCk7
CiAKQEAgLTg3Miw3ICs4NDksNyBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZVJlZ2lv
bnNGbG93VGhyZWFkUG9ydGlvblJlY3QoKQogICAgICAgICAvLyBmb3IgdGhlIHJlZ2lvbiByZWN0
LiBUaGlzIHdheSwgdGhlIHJlZ2lvbnMgaW4gdGhlIGNoYWluIGZvbGxvd2luZyB0aGUgYXV0bwog
ICAgICAgICAvLyBsb2dpY2FsIGhlaWdodCByZWdpb24sIHdpbGwgYmUgYWJsZSB0byBmcmFnbWVu
dCB0aGUgcmlnaHQgcGFydCBvZiB0aGVpcgogICAgICAgICAvLyBhc3NvY2lhdGVkIGZsb3cgdGhy
ZWFkIGNvbnRlbnQgKGFuZCBjb21wdXRlIHRoZWlyIG92ZXJyaWRlQ29tcHV0ZWRMb2dpY2FsSGVp
Z2h0IHByb3Blcmx5KS4KLSAgICAgICAgaWYgKHZpZXcoKS0+bm9ybWFsTGF5b3V0UGhhc2UoKSkg
eworICAgICAgICBpZiAoIWluQ29uc3RyYWluZWRMYXlvdXRQaGFzZSgpICYmICFlbXB0eVJlZ2lv
bnNTZWdtZW50KSB7CiAgICAgICAgICAgICBBU1NFUlQocmVnaW9uLT5oYXNPdmVycmlkZUhlaWdo
dCgpIHx8ICFyZWdpb24tPmhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkpOwogICAgICAgICAgICAgaWYg
KHJlZ2lvbi0+aGFzT3ZlcnJpZGVIZWlnaHQoKSkKICAgICAgICAgICAgICAgICByZWdpb25Mb2dp
Y2FsSGVpZ2h0ID0gcmVnaW9uLT5vdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CkBAIC04
ODIsNyArODU5LDEzIEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlUmVnaW9uc0Zsb3dU
aHJlYWRQb3J0aW9uUmVjdCgpCiAKICAgICAgICAgcmVnaW9uLT5zZXRGbG93VGhyZWFkUG9ydGlv
blJlY3QoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IHJlZ2lvblJlY3QgOiByZWdpb25SZWN0
LnRyYW5zcG9zZWRSZWN0KCkpOwogICAgICAgICBsb2dpY2FsSGVpZ2h0ICs9IHJlZ2lvbkxvZ2lj
YWxIZWlnaHQ7CisKKyAgICAgICAgLy8gT25jZSB3ZSBmaW5kIHRoZSBsYXN0IHJlZ2lvbiB3aXRo
IGNvbnRlbnQgdGhlIG5leHQgcmVnaW9ucyBhcmUgY29uc2lkZXJlZCBlbXB0eS4KKyAgICAgICAg
aWYgKGxhc3RSZWdpb25XaXRoQ29udGVudCA9PSByZWdpb24pCisgICAgICAgICAgICBlbXB0eVJl
Z2lvbnNTZWdtZW50ID0gdHJ1ZTsKICAgICB9CisKKyAgICBBU1NFUlQoIWxhc3RSZWdpb25XaXRo
Q29udGVudCB8fCBlbXB0eVJlZ2lvbnNTZWdtZW50KTsKIH0KIAogLy8gRXZlbiBpZiB3ZSByZXF1
aXJlIHRoZSBicmVhayB0byBvY2N1ciBhdCBvZmZzZXRCcmVha0luRmxvd1RocmVhZCwgYmVjYXVz
ZSByZWdpb25zIG1heSBoYXZlIG1pbi9tYXgtaGVpZ2h0IHZhbHVlcywKQEAgLTg5NCw3ICs4Nzcs
NyBAQCBib29sIFJlbmRlckZsb3dUaHJlYWQ6OmFkZEZvcmNlZFJlZ2lvbkJyZWFrKExheW91dFVu
aXQgb2Zmc2V0QnJlYWtJbkZsb3dUaHJlYWQsCiAgICAgLy8gb25seSBpbiB0aGUgbGF5b3V0IHBo
YXNlIGluIHdoaWNoIHdlIGxheSBvdXQgdGhlIGZsb3dzIHRocmVhZHMgdW5jb25zdHJhaW5lZAog
ICAgIC8vIGFuZCB3ZSB1c2UgdGhlIGNvbnRlbnQgYnJlYWtzIHRvIGRldGVybWluZSB0aGUgb3Zl
cnJpZGVDb250ZW50TG9naWNhbEhlaWdodCBmb3IKICAgICAvLyBhdXRvIGxvZ2ljYWwgaGVpZ2h0
IHJlZ2lvbnMuCi0gICAgaWYgKHZpZXcoKS0+Y29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dFBo
YXNlKCkpCisgICAgaWYgKGluQ29uc3RyYWluZWRMYXlvdXRQaGFzZSgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICAvLyBCcmVha3MgY2FuIGNvbWUgYmVmb3JlIG9yIGFmdGVyIHNvbWUg
b2JqZWN0cy4gV2UgbmVlZCB0byB0cmFjayB0aGVzZSBvYmplY3RzLCBzbyB0aGF0IGlmIHdlIGdl
dApAQCAtOTE5LDYgKzkwMiw3IEBAIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6YWRkRm9yY2VkUmVn
aW9uQnJlYWsoTGF5b3V0VW5pdCBvZmZzZXRCcmVha0luRmxvd1RocmVhZCwKICAgICBpZiAoIXJl
Z2lvbikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgYm9vbCBsYXN0QnJlYWtBZnRlckNv
bnRlbnQgPSBicmVha0NoaWxkID09IHRoaXM7CiAgICAgYm9vbCBvdmVycmlkZUxvZ2ljYWxDb250
ZW50SGVpZ2h0Q29tcHV0ZWQgPSBmYWxzZTsKIAogICAgIExheW91dFVuaXQgY3VycmVudFJlZ2lv
bk9mZnNldEluRmxvd1RocmVhZCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyByZWdpb24t
PmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLnkoKSA6IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25S
ZWN0KCkueCgpOwpAQCAtOTQ3LDcgKzkzMSwxMCBAQCBib29sIFJlbmRlckZsb3dUaHJlYWQ6OmFk
ZEZvcmNlZFJlZ2lvbkJyZWFrKExheW91dFVuaXQgb2Zmc2V0QnJlYWtJbkZsb3dUaHJlYWQsCiAg
ICAgICAgIGN1cnJlbnRSZWdpb25PZmZzZXRJbkZsb3dUaHJlYWQgKz0gaXNIb3Jpem9udGFsV3Jp
dGluZ01vZGUoKSA/IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkuaGVpZ2h0KCkgOiBy
ZWdpb24tPmZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLndpZHRoKCk7CiAKICAgICAvLyBJZiB0aGUg
YnJlYWsgd2FzIGZvdW5kIGluc2lkZSBhbiBhdXRvLWhlaWdodCByZWdpb24gaXRzIHNpemUgY2hh
bmdlZCBzbyB3ZSBuZWVkIHRvIHJlY29tcHV0ZSB0aGUgZmxvdyB0aHJlYWQgcG9ydGlvbiByZWN0
YW5nbGVzLgotICAgIGlmIChvdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0Q29tcHV0ZWQpCisg
ICAgLy8gQWxzbywgaWYgdGhpcyBpcyB0aGUgbGFzdCBicmVhayBhZnRlciB0aGUgY29udGVudCB3
ZSBuZWVkIHRvIGNsZWFyIHRoZSBvdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0IHZhbHVlIG9u
IHRoZSBsYXN0IGVtcHR5IHJlZ2lvbnMuCisgICAgaWYgKGhhc0F1dG9Mb2dpY2FsSGVpZ2h0UmVn
aW9ucygpICYmIGxhc3RCcmVha0FmdGVyQ29udGVudCkKKyAgICAgICAgdXBkYXRlUmVnaW9uc0Zs
b3dUaHJlYWRQb3J0aW9uUmVjdChyZWdpb24pOworICAgIGVsc2UgaWYgKG92ZXJyaWRlTG9naWNh
bENvbnRlbnRIZWlnaHRDb21wdXRlZCkKICAgICAgICAgdXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQ
b3J0aW9uUmVjdCgpOwogCiAgICAgaWYgKG9mZnNldEJyZWFrQWRqdXN0bWVudCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IGI2NTIyOTRjNjJhZTIw
NTBlM2ZjMzE0YjYxODcyNDA5NjhjMTFjZjguLmNkNjJjZTQxMGIzNThhMGVlYzlmMjA4ZTViMjA0
ZWFhNGZhZGQxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJl
YWQuaApAQCAtMTM2LDEwICsxMzYsMTAgQEAgcHVibGljOgogICAgIC8vIENoZWNrIGlmIHRoZSBv
YmplY3QgaXMgaW4gcmVnaW9uIGFuZCB0aGUgcmVnaW9uIGlzIHBhcnQgb2YgdGhpcyBmbG93IHRo
cmVhZC4KICAgICBib29sIG9iamVjdEluRmxvd1JlZ2lvbihjb25zdCBSZW5kZXJPYmplY3QqLCBj
b25zdCBSZW5kZXJSZWdpb24qKSBjb25zdDsKIAotICAgIHZvaWQgcmVzZXRSZWdpb25zT3ZlcnJp
ZGVMb2dpY2FsQ29udGVudEhlaWdodCgpOwogICAgIHZvaWQgbWFya0F1dG9Mb2dpY2FsSGVpZ2h0
UmVnaW9uc0ZvckxheW91dCgpOwogCiAgICAgYm9vbCBhZGRGb3JjZWRSZWdpb25CcmVhayhMYXlv
dXRVbml0LCBSZW5kZXJPYmplY3QqIGJyZWFrQ2hpbGQsIGJvb2wgaXNCZWZvcmUsIExheW91dFVu
aXQqIG9mZnNldEJyZWFrQWRqdXN0bWVudCA9IDApOworICAgIHZvaWQgYXBwbHlCcmVha0FmdGVy
Q29udGVudChMYXlvdXRVbml0KTsKIAogICAgIGJvb2wgcGFnZUxvZ2ljYWxTaXplQ2hhbmdlZCgp
IGNvbnN0IHsgcmV0dXJuIG1fcGFnZUxvZ2ljYWxTaXplQ2hhbmdlZDsgfQogCkBAIC0xNTQsNiAr
MTU0LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbGxlY3RMYXllckZyYWdtZW50cyhMYXllckZy
YWdtZW50cyYsIGNvbnN0IExheW91dFJlY3QmIGxheWVyQm91bmRpbmdCb3gsIGNvbnN0IExheW91
dFJlY3QmIGRpcnR5UmVjdCk7CiAgICAgTGF5b3V0UmVjdCBmcmFnbWVudHNCb3VuZGluZ0JveChj
b25zdCBMYXlvdXRSZWN0JiBsYXllckJvdW5kaW5nQm94KTsKIAorICAgIHZvaWQgc2V0SW5Db25z
dHJhaW5lZExheW91dFBoYXNlKGJvb2wgdmFsdWUpIHsgbV9pbkNvbnN0cmFpbmVkTGF5b3V0UGhh
c2UgPSB2YWx1ZTsgfQorICAgIGJvb2wgaW5Db25zdHJhaW5lZExheW91dFBoYXNlKCkgY29uc3Qg
eyByZXR1cm4gbV9pbkNvbnN0cmFpbmVkTGF5b3V0UGhhc2U7IH0KKworICAgIGJvb2wgbmVlZHNU
d29QaGFzZXNMYXlvdXQoKSBjb25zdCB7IHJldHVybiBtX25lZWRzVHdvUGhhc2VzTGF5b3V0OyB9
CisgICAgdm9pZCBjbGVhck5lZWRzVHdvUGhhc2VzTGF5b3V0KCkgeyBtX25lZWRzVHdvUGhhc2Vz
TGF5b3V0ID0gZmFsc2U7IH0KKwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgY29uc3QgY2hhciog
cmVuZGVyTmFtZSgpIGNvbnN0ID0gMDsKIApAQCAtMTYxLDcgKzE2Nyw3IEBAIHByb3RlY3RlZDoK
ICAgICAvLyBubyByZWdpb25zIGhhdmUgYmVlbiBnZW5lcmF0ZWQgeWV0LgogICAgIHZpcnR1YWwg
TGF5b3V0VW5pdCBpbml0aWFsTG9naWNhbFdpZHRoKCkgY29uc3QgeyByZXR1cm4gMDsgfTsKIAot
ICAgIHZvaWQgdXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9uUmVjdCgpOworICAgIHZvaWQg
dXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9uUmVjdChjb25zdCBSZW5kZXJSZWdpb24qID0g
MCk7CiAgICAgYm9vbCBzaG91bGRSZXBhaW50KGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKICAg
ICBib29sIHJlZ2lvbkluUmFuZ2UoY29uc3QgUmVuZGVyUmVnaW9uKiB0YXJnZXRSZWdpb24sIGNv
bnN0IFJlbmRlclJlZ2lvbiogc3RhcnRSZWdpb24sIGNvbnN0IFJlbmRlclJlZ2lvbiogZW5kUmVn
aW9uKSBjb25zdDsKIApAQCAtMjIyLDYgKzIyOCw4IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1f
aGFzUmVnaW9uc1dpdGhTdHlsaW5nIDogMTsKICAgICBib29sIG1fZGlzcGF0Y2hSZWdpb25MYXlv
dXRVcGRhdGVFdmVudCA6IDE7CiAgICAgYm9vbCBtX3BhZ2VMb2dpY2FsU2l6ZUNoYW5nZWQgOiAx
OworICAgIGJvb2wgbV9pbkNvbnN0cmFpbmVkTGF5b3V0UGhhc2UgOiAxOworICAgIGJvb2wgbV9u
ZWVkc1R3b1BoYXNlc0xheW91dCA6IDE7CiB9OwogCiBpbmxpbmUgUmVuZGVyRmxvd1RocmVhZCog
dG9SZW5kZXJGbG93VGhyZWFkKFJlbmRlck9iamVjdCogb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAppbmRleCBlYjQ2NWRjODhhZDUzOTg1MzVjZWVjMTk2
ZjVhYTkzOTIzNTM1OGFiLi5iYjY1YjM0Zjc3MDU1MTM1OTI0NDlmMjJlMjU4YWYxNmZlZGM5ZDY4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcApAQCAtNTksMTIg
KzU5LDE0IEBAIFJlbmRlclJlZ2lvbjo6UmVuZGVyUmVnaW9uKEVsZW1lbnQqIGVsZW1lbnQsIFJl
bmRlckZsb3dUaHJlYWQqIGZsb3dUaHJlYWQpCiAKIExheW91dFVuaXQgUmVuZGVyUmVnaW9uOjpw
YWdlTG9naWNhbFdpZHRoKCkgY29uc3QKIHsKKyAgICBBU1NFUlQobV9mbG93VGhyZWFkKTsKICAg
ICByZXR1cm4gbV9mbG93VGhyZWFkLT5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gY29udGVu
dFdpZHRoKCkgOiBjb250ZW50SGVpZ2h0KCk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyUmVnaW9u
OjpwYWdlTG9naWNhbEhlaWdodCgpIGNvbnN0CiB7Ci0gICAgaWYgKGhhc092ZXJyaWRlSGVpZ2h0
KCkgJiYgdmlldygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpKQorICAgIEFTU0VSVChtX2Zsb3dUaHJl
YWQpOworICAgIGlmIChoYXNPdmVycmlkZUhlaWdodCgpICYmICFtX2Zsb3dUaHJlYWQtPmluQ29u
c3RyYWluZWRMYXlvdXRQaGFzZSgpKQogICAgICAgICByZXR1cm4gb3ZlcnJpZGVMb2dpY2FsQ29u
dGVudEhlaWdodCgpOwogICAgIHJldHVybiBtX2Zsb3dUaHJlYWQtPmlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCkgPyBjb250ZW50SGVpZ2h0KCkgOiBjb250ZW50V2lkdGgoKTsKIH0KQEAgLTczLDEz
ICs3NSwxNSBAQCBMYXlvdXRVbml0IFJlbmRlclJlZ2lvbjo6cGFnZUxvZ2ljYWxIZWlnaHQoKSBj
b25zdAogLy8gaGVpZ2h0IHZhbHVlIGZvciBhdXRvLWhlaWdodCByZWdpb25zIGluIHRoZSBmaXJz
dCBsYXlvdXQgcGhhc2Ugb2YgdGhlIHBhcmVudCBuYW1lZCBmbG93LgogTGF5b3V0VW5pdCBSZW5k
ZXJSZWdpb246Om1heFBhZ2VMb2dpY2FsSGVpZ2h0KCkgY29uc3QKIHsKLSAgICBBU1NFUlQoaGFz
QXV0b0xvZ2ljYWxIZWlnaHQoKSAmJiB2aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkpOworICAg
IEFTU0VSVChtX2Zsb3dUaHJlYWQpOworICAgIEFTU0VSVChoYXNBdXRvTG9naWNhbEhlaWdodCgp
ICYmICFtX2Zsb3dUaHJlYWQtPmluQ29uc3RyYWluZWRMYXlvdXRQaGFzZSgpKTsKICAgICByZXR1
cm4gc3R5bGUoKS0+bG9naWNhbE1heEhlaWdodCgpLmlzVW5kZWZpbmVkKCkgPyBMYXlvdXRVbml0
OjptYXgoKSAvIDIgOiBjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNpbmcoTWF4U2l6ZSwg
c3R5bGUoKS0+bG9naWNhbE1heEhlaWdodCgpKTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJSZWdp
b246OmxvZ2ljYWxIZWlnaHRPZkFsbEZsb3dUaHJlYWRDb250ZW50KCkgY29uc3QKIHsKLSAgICBp
ZiAoaGFzT3ZlcnJpZGVIZWlnaHQoKSAmJiB2aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkpCisg
ICAgQVNTRVJUKG1fZmxvd1RocmVhZCk7CisgICAgaWYgKGhhc092ZXJyaWRlSGVpZ2h0KCkgJiYg
IW1fZmxvd1RocmVhZC0+aW5Db25zdHJhaW5lZExheW91dFBoYXNlKCkpCiAgICAgICAgIHJldHVy
biBvdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CiAgICAgcmV0dXJuIG1fZmxvd1RocmVh
ZC0+aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA/IGNvbnRlbnRIZWlnaHQoKSA6IGNvbnRlbnRX
aWR0aCgpOwogfQpAQCAtMjY1LDE0ICsyNjksMTUgQEAgdm9pZCBSZW5kZXJSZWdpb246OmxheW91
dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICAgICAgaWYgKCFp
c0hvcml6b250YWxXcml0aW5nTW9kZSgpKQogICAgICAgICAgICAgb2xkUmVnaW9uUmVjdCA9IG9s
ZFJlZ2lvblJlY3QudHJhbnNwb3NlZFJlY3QoKTsKIAotICAgICAgICBpZiAodmlldygpLT5jaGVj
a1R3b1Bhc3NMYXlvdXRGb3JBdXRvSGVpZ2h0UmVnaW9ucygpICYmIGhhc0F1dG9Mb2dpY2FsSGVp
Z2h0KCkpCi0gICAgICAgICAgICB2aWV3KCktPmZsb3dUaHJlYWRDb250cm9sbGVyKCktPnNldE5l
ZWRzVHdvUGFzc0xheW91dEZvckF1dG9IZWlnaHRSZWdpb25zKHRydWUpOwotCi0gICAgICAgIGlm
ICghaXNSZW5kZXJSZWdpb25TZXQoKSAmJiAob2xkUmVnaW9uUmVjdC53aWR0aCgpICE9IHBhZ2VM
b2dpY2FsV2lkdGgoKSB8fCBvbGRSZWdpb25SZWN0LmhlaWdodCgpICE9IHBhZ2VMb2dpY2FsSGVp
Z2h0KCkpKSB7CisgICAgICAgIGlmIChoYXNBdXRvTG9naWNhbEhlaWdodCgpICYmICFtX2Zsb3dU
aHJlYWQtPmluQ29uc3RyYWluZWRMYXlvdXRQaGFzZSgpKSB7CiAgICAgICAgICAgICBtX2Zsb3dU
aHJlYWQtPmludmFsaWRhdGVSZWdpb25zKCk7Ci0gICAgICAgICAgICBpZiAodmlldygpLT5jaGVj
a1R3b1Bhc3NMYXlvdXRGb3JBdXRvSGVpZ2h0UmVnaW9ucygpKQotICAgICAgICAgICAgICAgIHZp
ZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+c2V0TmVlZHNUd29QYXNzTGF5b3V0Rm9yQXV0
b0hlaWdodFJlZ2lvbnModHJ1ZSk7CisgICAgICAgICAgICBjbGVhck92ZXJyaWRlTG9naWNhbENv
bnRlbnRIZWlnaHQoKTsKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorCisgICAgICAg
IGlmICghaXNSZW5kZXJSZWdpb25TZXQoKSAmJiAob2xkUmVnaW9uUmVjdC53aWR0aCgpICE9IHBh
Z2VMb2dpY2FsV2lkdGgoKSB8fCBvbGRSZWdpb25SZWN0LmhlaWdodCgpICE9IHBhZ2VMb2dpY2Fs
SGVpZ2h0KCkpKQorICAgICAgICAgICAgLy8gVGhpcyBjYW4gaGFwcGVuIGV2ZW4gaWYgd2UgYXJl
IGluIHRoZSBpbkNvbnN0cmFpbmVkTGF5b3V0UGhhc2UgYW5kIGl0IHdpbGwgdHJpZ2dlciBhIHBh
dGhvbG9naWNhbCBsYXlvdXQgb2YgdGhlIGZsb3cgdGhyZWFkLgorICAgICAgICAgICAgbV9mbG93
VGhyZWFkLT5pbnZhbGlkYXRlUmVnaW9ucygpOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBXZSBu
ZWVkIHRvIGZpbmQgYSB3YXkgdG8gc2V0IHVwIG92ZXJmbG93IHByb3Blcmx5LiBPdXIgZmxvdyB0
aHJlYWQgaGFzbid0IGdvdHRlbiBhIGxheW91dApAQCAtNjI4LDcgKzYzMyw3IEBAIHZvaWQgUmVu
ZGVyUmVnaW9uOjp1cGRhdGVMb2dpY2FsSGVpZ2h0KCkKICAgICAvLyBXZSB3YW50IHRvIHVwZGF0
ZSB0aGUgbG9naWNhbCBoZWlnaHQgYmFzZWQgb24gdGhlIGNvbXB1dGVkIG92ZXJyaWRlIGxvZ2lj
YWwKICAgICAvLyBjb250ZW50IGhlaWdodCBvbmx5IGlmIHRoZSB2aWV3IGlzIGluIHRoZSBsYXlv
dXQgcGhhc2UKICAgICAvLyBpbiB3aGljaCBhbGwgdGhlIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVn
aW9ucyBoYXZlIHRoZWlyIG92ZXJyaWRlIGxvZ2ljYWwgaGVpZ2h0IHNldC4KLSAgICBpZiAodmll
dygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpKQorICAgIGlmICghbV9mbG93VGhyZWFkLT5pbkNvbnN0
cmFpbmVkTGF5b3V0UGhhc2UoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gVGhlcmUgbWF5
IGJlIHJlZ2lvbnMgd2l0aCBhdXRvIGxvZ2ljYWwgaGVpZ2h0IHRoYXQgZHVyaW5nIHRoZSBwcmVy
ZXF1aXNpdGUgbGF5b3V0IHBoYXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKaW5kZXggMzIxNzM5NjcyN2Q1YzhjZTdlZmY1MDgxOGMyZjU3NDRkNWU4OWYxNy4uM2E1YWNl
NGNiOTQwNzY5NGIzNDk0ZjVjNDM1ZDRhOGY5N2IyZjQ0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmNwcApAQCAtNjgsNyArNjgsNiBAQCBSZW5kZXJWaWV3OjpSZW5kZXJW
aWV3KERvY3VtZW50KiBkb2N1bWVudCkKICAgICAsIG1fbGF5b3V0U3RhdGVEaXNhYmxlQ291bnQo
MCkKICAgICAsIG1fcmVuZGVyUXVvdGVIZWFkKDApCiAgICAgLCBtX3JlbmRlckNvdW50ZXJDb3Vu
dCgwKQotICAgICwgbV9sYXlvdXRQaGFzZShSZW5kZXJWaWV3Tm9ybWFsTGF5b3V0KQogewogICAg
IC8vIGluaXQgUmVuZGVyT2JqZWN0IGF0dHJpYnV0ZXMKICAgICBzZXRJbmxpbmUoZmFsc2UpOwpA
QCAtMjA2LDMyICsyMDUsNDMgQEAgYm9vbCBSZW5kZXJWaWV3Ojppbml0aWFsaXplTGF5b3V0U3Rh
dGUoTGF5b3V0U3RhdGUmIHN0YXRlKQogICAgIHJldHVybiBpc1NlYW1sZXNzQW5jZXN0b3JJbkZs
b3dUaHJlYWQ7CiB9CiAKLS8vIFRoZSBhbGdvcml0aG0gdG8gbGF5b3V0IHRoZSBmbG93IHRocmVh
ZCBjb250ZW50IGluIGF1dG8gaGVpZ2h0IHJlZ2lvbnMgaGFzIHRvIG1ha2Ugc3VyZQotLy8gdGhh
dCB3aGVuIGEgdHdvLXBhc3MgbGF5b3V0IGlzIG5lZWRlZCwgdGhlIGF1dG8gaGVpZ2h0IHJlZ2lv
bnMgYWx3YXlzIHN0YXJ0IHRoZSBmaXJzdAotLy8gcGFzcyB3aXRob3V0IGEgY29tcHV0ZWQgb3Zl
cnJpZGUgbG9naWNhbCBjb250ZW50IGhlaWdodCAoZnJvbSBwcmV2aW91cyBsYXlvdXRzKS4KLS8v
IFRoaXMgd2F5LCB0aGUgbGF5b3V0IGFsZ29yaXRobSBnaXZlcyB0aGUgc2FtZSByZXN1bHQgaW4g
YWxsIHNpdHVhdGlvbnMuCi0vLyBJZiB0aGUgZmxvdyB0aHJlYWQgY29udGVudCBkb2VzIG5vdCBu
ZWVkIGxheW91dCwgdGhlIGRlY2lzaW9uIG9mIHdoZXRoZXIgd2UgbmVlZCBhIGZ1bGwKLS8vIHR3
byBwYXNzIGxheW91dCBjYW5ub3QgYmUgbWFkZSB1cC1mcm9udC4gVGhlcmVmb3JlLCB3ZSBkbyBh
IGZpcnN0IGxheW91dCwgYW5kIGlmIGFuIGF1dG8KLS8vIGhlaWdodCByZWdpb24gbmVlZHMgbGF5
b3V0IG9yIGEgbm9uLWF1dG8gaGVpZ2h0IHJlZ2lvbiBjaGFuZ2VzIGl0cyBib3ggZGltZW5zaW9u
cywKLS8vIHdlIG5lZWQgdG8gcGVyZm9ybSBhIGZ1bGwgdHdvIHBhc3MgbGF5b3V0LgorLy8gVGhl
IGFsZ29yaXRobSBiZWxvdyBhc3N1bWVzIHRoaXMgaXMgYSBmdWxsIGxheW91dC4gSW4gY2FzZSB0
aGVyZSBhcmUgcHJldmlvdXNseSBjb21wdXRlZCB2YWx1ZXMgZm9yIHJlZ2lvbnMsIHN1cHBsZW1l
bnRhbCBzdGVwcyBhcmUgdGFrZW4KKy8vIHRvIGVuc3VyZSB0aGUgcmVzdWx0cyBhcmUgdGhlIHNh
bWUgYXMgdGhvc2Ugb2J0YWluZWQgZnJvbSBhIGZ1bGwgbGF5b3V0IChpLmUuIHRoZSBhdXRvLWhl
aWdodCByZWdpb25zIGZyb20gYWxsIHRoZSBmbG93cyBhcmUgbWFya2VkIGFzIG5lZWRpbmcKKy8v
IGxheW91dCkuCisvLyAxLiBUaGUgZmxvd3MgYXJlIGxhaWQgb3V0IGZyb20gdGhlIG91dGVyIGZs
b3cgdG8gdGhlIGlubmVyIGZsb3cuIFRoaXMgc3VjY2Vzc2Z1bGx5IGNvbXB1dGVzIHRoZSBvdXRl
ciBub24tYXV0by1oZWlnaHQgcmVnaW9ucyBzaXplIHNvIHRoZSAKKy8vIGlubmVyIGZsb3dzIGhh
dmUgdGhlIG5lY2Vzc2FyeSBpbmZvcm1hdGlvbiB0byBjb3JyZWN0bHkgZnJhZ21lbnQgdGhlIGNv
bnRlbnQuCisvLyAyLiBUaGUgZmxvd3MgYXJlIGxhaWQgb3V0IGZyb20gdGhlIGlubmVyIGZsb3cg
dG8gdGhlIG91dGVyIGZsb3cuIEFmdGVyIGFuIGlubmVyIGZsb3cgaXMgbGFpZCBvdXQgaXQgZ29l
cyBpbnRvIHRoZSBjb25zdHJhaW5lZCBsYXlvdXQgcGhhc2UKKy8vIGFuZCBtYXJrcyB0aGUgYXV0
by1oZWlnaHQgcmVnaW9ucyB0aGV5IG5lZWQgbGF5b3V0LiBUaGlzIG1lYW5zIHRoZSBvdXRlciBm
bG93cyB3aWxsIHJlbGF5b3V0IGlmIHRoZXkgZGVwZW5kIG9uIHJlZ2lvbnMgd2l0aCBhdXRvLWhl
aWdodCByZWdpb25zCisvLyBiZWxvbmdpbmcgdG8gaW5uZXIgZmxvd3MuIFRoaXMgc3RlcCB3aWxs
IGNvcnJlY3RseSBjb21wdXRlIHRoZSBvdmVycmlkZUxvZ2ljYWxIZWlnaHRzIGZvciB0aGUgYXV0
by1oZWlnaHQgcmVnaW9ucy4gSXQncyBwb3NzaWJsZSBmb3Igbm9uLWF1dG8taGVpZ2h0CisvLyBy
ZWdpb25zIHRvIHJlbGF5b3V0IGlmIHRoZXkgZGVwZW5kIG9uIGF1dG8taGVpZ2h0IHJlZ2lvbnMu
IFRoaXMgd2lsbCBpbnZhbGlkYXRlIHRoZSBpbm5lciBmbG93IHRocmVhZHMgYW5kIG1hcmsgdGhl
bSBhcyBuZWVkaW5nIGxheW91dC4KKy8vIDMuIFRoZSBsYXN0IHN0ZXAgaXMgdG8gZG8gb25lIGxh
c3QgbGF5b3V0IGlmIHRoZXJlIGFyZSBwYWh0b2xvZ2ljYWwgZGVwZW5kZW5jaWVzIGJldHdlZW4g
bm9uLWF1dG8taGVpZ2h0IHJlZ2lvbnMgYW5kIGF1dG8taGVpZ2h0IHJlZ2lvbnMKKy8vIGFzIGRl
dGVjdGVkIGluIHRoZSBwcmV2aW91cyBzdGVwLgogdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXRDb250
ZW50SW5BdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoY29uc3QgTGF5b3V0U3RhdGUmIHN0YXRlKQog
ewotICAgIEFTU0VSVCghZmxvd1RocmVhZENvbnRyb2xsZXIoKS0+bmVlZHNUd29QYXNzTGF5b3V0
Rm9yQXV0b0hlaWdodFJlZ2lvbnMoKSk7Ci0KLSAgICBpZiAoIWZsb3dUaHJlYWRDb250cm9sbGVy
KCktPmhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHNOZWVkaW5nTGF5b3V0KCkpIHsKKyAgICAvLyBX
ZSBuZWVkIHRvIGludmFsaWRhdGUgYWxsIHRoZSBmbG93cyB3aXRoIGF1dG8taGVpZ2h0IHJlZ2lv
bnMgaWYgb25lIHN1Y2ggZmxvdyBuZWVkcyBsYXlvdXQuCisgICAgLy8gSWYgbm9uZSBpcyBmb3Vu
ZCB3ZSBkbyBhIGxheW91dCBhIGNoZWNrIGJhY2sgYWdhaW4gYWZ0ZXJ3YXJkcy4KKyAgICBpZiAo
IWZsb3dUaHJlYWRDb250cm9sbGVyKCktPnVwZGF0ZUZsb3dUaHJlYWRzTmVlZGluZ0xheW91dCgp
KSB7CisgICAgICAgIC8vIERvIGEgZmlyc3QgbGF5b3V0IG9mIHRoZSBjb250ZW50LiBJbiBzb21l
IGNhc2VzIG1vcmUgbGF5b3V0cyBhcmUgbm90IG5lZWRlZCAoZS5nLiBvbmx5IGZsb3dzIHdpdGgg
bm9uLWF1dG8taGVpZ2h0IHJlZ2lvbnMgaGF2ZSBjaGFuZ2VkKS4KICAgICAgICAgbGF5b3V0Q29u
dGVudChzdGF0ZSk7Ci0gICAgICAgIGlmICghZmxvd1RocmVhZENvbnRyb2xsZXIoKS0+bmVlZHNU
d29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJlZ2lvbnMoKSkKKworICAgICAgICAvLyBJZiB3ZSBm
aW5kIG5vIG5hbWVkIGZsb3cgbmVlZGluZyBhIHR3byBzdGVwIGxheW91dCBhZnRlciB0aGUgZmly
c3QgbGF5b3V0LCBleGl0IGVhcmx5LgorICAgICAgICAvLyBPdGhlcndpc2UsIGluaXRpYXRlIHRo
ZSB0d28gc3RlcCBsYXlvdXQgYWxnb3JpdGhtIGFuZCByZWNvbXB1dGUgYWxsIHRoZSBmbG93cy4K
KyAgICAgICAgaWYgKCFmbG93VGhyZWFkQ29udHJvbGxlcigpLT51cGRhdGVGbG93VGhyZWFkc05l
ZWRpbmdUd29TdGVwTGF5b3V0KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAg
Ly8gU3RhcnQgYSBmdWxsIHR3byBwaGFzZSBsYXlvdXQgZm9yIHJlZ2lvbnMgd2l0aCBhdXRvIGxv
Z2ljYWwgaGVpZ2h0LgotICAgIGZsb3dUaHJlYWRDb250cm9sbGVyKCktPnJlc2V0UmVnaW9uc092
ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKKyAgICAvLyBMYXlvdXQgdG8gcmVjb21wdXRl
IGFsbCB0aGUgbmFtZWQgZmxvd3Mgd2l0aCBhdXRvLWhlaWdodCByZWdpb25zLgogICAgIGxheW91
dENvbnRlbnQoc3RhdGUpOwogCi0gICAgbV9sYXlvdXRQaGFzZSA9IENvbnN0cmFpbmVkRmxvd1Ro
cmVhZHNMYXlvdXRJbkF1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uczsKLSAgICBmbG93VGhyZWFkQ29u
dHJvbGxlcigpLT5tYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KCk7Ci0gICAg
bGF5b3V0Q29udGVudChzdGF0ZSk7Ci0gICAgZmxvd1RocmVhZENvbnRyb2xsZXIoKS0+c2V0TmVl
ZHNUd29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJlZ2lvbnMoZmFsc2UpOworICAgIC8vIFByb3Bh
Z2F0ZSB0aGUgY29tcHV0ZWQgYXV0by1oZWlnaHQgdmFsdWVzIHVwd2FyZHMuCisgICAgLy8gTm9u
LWF1dG8taGVpZ2h0IHJlZ2lvbnMgbWF5IGludmFsaWRhdGUgdGhlIGZsb3cgdGhyZWFkIGJlY2F1
c2UgdGhleSBkZXBlbmRlZCBvbiBhdXRvLWhlaWdodCByZWdpb25zLCBidXQgdGhhdCdzIG9rLgor
ICAgIGZsb3dUaHJlYWRDb250cm9sbGVyKCktPnVwZGF0ZUZsb3dUaHJlYWRzSW50b0NvbnN0cmFp
bmVkUGhhc2UoKTsKKworICAgIC8vIERvIG9uZSBsYXN0IGxheW91dCB0aGF0IHNob3VsZCB1cGRh
dGUgdGhlIGF1dG8taGVpZ2h0IHJlZ2lvbnMgZm91bmQgaW4gdGhlIG1haW4gZmxvdworICAgIC8v
IGFuZCBzb2x2ZSBwYXRob2xvZ2ljYWwgZGVwZW5kZW5jaWVzIGJldHdlZW4gcmVnaW9ucyAoZS5n
LiBhIG5vbi1hdXRvLWhlaWdodCByZWdpb24gZGVwZW5kaW5nCisgICAgLy8gb24gYW4gYXV0by1o
ZWlnaHQgb25lKS4KKyAgICBpZiAobmVlZHNMYXlvdXQoKSkKKyAgICAgICAgbGF5b3V0Q29udGVu
dChzdGF0ZSk7CiB9CiAKIHZvaWQgUmVuZGVyVmlldzo6bGF5b3V0KCkKQEAgLTI2OSw3ICsyNzks
NiBAQCB2b2lkIFJlbmRlclZpZXc6OmxheW91dCgpCiAgICAgbV9wYWdlTG9naWNhbEhlaWdodENo
YW5nZWQgPSBmYWxzZTsKICAgICBtX2xheW91dFN0YXRlID0gJnN0YXRlOwogCi0gICAgbV9sYXlv
dXRQaGFzZSA9IFJlbmRlclZpZXdOb3JtYWxMYXlvdXQ7CiAgICAgaWYgKGNoZWNrVHdvUGFzc0xh
eW91dEZvckF1dG9IZWlnaHRSZWdpb25zKCkpCiAgICAgICAgIGxheW91dENvbnRlbnRJbkF1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9ucyhzdGF0ZSk7CiAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmgKaW5kZXggYzE0OTRhZmI0YjE3YWFhMjJlYWY3MjVjNTRkMzU0YWM4YjUx
ZmI5Ny4uMjE1ODNkYWI0MzllMDljYjZjMmIzZTRkYThmZmMwMTFlODg0N2VhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC0zMSw4ICszMSw4IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIEZsb3dUaHJlYWRDb250cm9sbGVyOwotY2xhc3MgUmVuZGVyV2lk
Z2V0OwogY2xhc3MgUmVuZGVyUXVvdGU7CitjbGFzcyBSZW5kZXJXaWRnZXQ7CiAKICNpZiBVU0Uo
QUNDRUxFUkFURURfQ09NUE9TSVRJTkcpCiBjbGFzcyBSZW5kZXJMYXllckNvbXBvc2l0b3I7CkBA
IC0yMDcsMTAgKzIwNyw2IEBAIHB1YmxpYzoKICAgICBib29sIGNoZWNrVHdvUGFzc0xheW91dEZv
ckF1dG9IZWlnaHRSZWdpb25zKCkgY29uc3Q7CiAgICAgRmxvd1RocmVhZENvbnRyb2xsZXIqIGZs
b3dUaHJlYWRDb250cm9sbGVyKCk7CiAKLSAgICBlbnVtIFJlbmRlclZpZXdMYXlvdXRQaGFzZSB7
IFJlbmRlclZpZXdOb3JtYWxMYXlvdXQsIENvbnN0cmFpbmVkRmxvd1RocmVhZHNMYXlvdXRJbkF1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyB9OwotICAgIGJvb2wgbm9ybWFsTGF5b3V0UGhhc2UoKSBj
b25zdCB7IHJldHVybiBtX2xheW91dFBoYXNlID09IFJlbmRlclZpZXdOb3JtYWxMYXlvdXQ7IH0K
LSAgICBib29sIGNvbnN0cmFpbmVkRmxvd1RocmVhZHNMYXlvdXRQaGFzZSgpIGNvbnN0IHsgcmV0
dXJuIG1fbGF5b3V0UGhhc2UgPT0gQ29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dEluQXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zOyB9Ci0KICAgICB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlm
ZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKIAogICAgIEludGVydmFsQXJl
bmEqIGludGVydmFsQXJlbmEoKTsKQEAgLTM0MCw3ICszMzYsNiBAQCBwcml2YXRlOgogCiAgICAg
UmVuZGVyUXVvdGUqIG1fcmVuZGVyUXVvdGVIZWFkOwogICAgIHVuc2lnbmVkIG1fcmVuZGVyQ291
bnRlckNvdW50OwotICAgIFJlbmRlclZpZXdMYXlvdXRQaGFzZSBtX2xheW91dFBoYXNlOwogfTsK
IAogaW5saW5lIFJlbmRlclZpZXcqIHRvUmVuZGVyVmlldyhSZW5kZXJPYmplY3QqIG9iamVjdCkK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NjFmMGMyNGM2Yjk0MDg3YzdiZGJkNTY2ODBjYTA4ZjY2ZDc0N2IxLi42MTRmODZh
MzZlMjllMzI1NzZlM2NkZjg5NGI3ZDJlZjZhMThlOTMyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTMtMDMtMjEgIEFuZHJlaSBCdWN1ciAgPGFidWN1ckBhZG9iZS5jb20+CisKKyAgICAgICAg
W0NTUyBSZWdpb25zXSBOZXN0ZWQgYXV0by1oZWlnaHQgcmVnaW9ucyBkb24ndCBsYXlvdXQgY29y
cmVjdGx5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MTE5NjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBU
aGVzZSB0ZXN0cyBjb3ZlciB2YXJpb3VzIGNvbWJpbmF0aW9ucyBvZiBkZXBlbmRlbmNpZXMgYmV0
d2VlbiBmbG93cyBhbmQgcmVnaW9ucyB3aXRoCisgICAgICAgIG9yIHdpdGhvdXQgYXV0by1oZWln
aHQuCisKKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taXhlZC1uZXN0ZWQtY29t
cGxleC1yZWdpb25zLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25z
L2F1dG9oZWlnaHQtbWl4ZWQtbmVzdGVkLWNvbXBsZXgtcmVnaW9ucy5odG1sOiBBZGRlZC4KKyAg
ICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taXhlZC1uZXN0ZWQtcmVnaW9ucy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVk
LW5lc3RlZC1yZWdpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRv
aGVpZ2h0LW1peGVkLXBhcmFsbGVsLXJlZ2lvbnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taXhlZC1wYXJhbGxlbC1yZWdpb25zLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW5lc3RlZC1yZWdpb25z
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQt
bmVzdGVkLXJlZ2lvbnMuaHRtbDogQWRkZWQuCisKIDIwMTMtMDMtMjAgIEFsbGFuIFNhbmRmZWxk
IEplbnNlbiAgPGFsbGFuLmplbnNlbkBkaWdpYS5jb20+CiAKICAgICAgICAgW1F0XSBOZXcgZmFz
dC90ZXh0L3dvcmQtc3BhY2Utd2l0aC1rZXJuaW5nLTMuaHRtbCBmYWlscyBvbiBRdApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtbmVzdGVkLWNv
bXBsZXgtcmVnaW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0
b2hlaWdodC1taXhlZC1uZXN0ZWQtY29tcGxleC1yZWdpb25zLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNzlkZGE1MDk1ZjFmMGJiNTdlM2Y1ODM5NDJjZTA5NjM0YTljNTMxCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtbmVzdGVk
LWNvbXBsZXgtcmVnaW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0IGZvciBb
Q1NTIFJlZ2lvbnNdIE5lc3RlZCBhdXRvLWhlaWdodCByZWdpb25zIGRvbid0IGxheW91dCBjb3Jy
ZWN0bHkuCisKK0xvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNj
aW5nIGVsaXQuIEFlbmVhbiB1cm5hIG9yY2ksIGNvbnNlcXVhdCBzZWQgbG9ib3J0aXMgaW4sIGNv
bnZhbGxpcyBldCB2ZWxpdC4gVXQgZWxlbWVudHVtIGxhY3VzIGFjIGR1aSB2ZXN0aWJ1bHVtIGV1
IGNvbmRpbWVudHVtIG1pIGx1Y3R1cy4gRnVzY2UgcGhhcmV0cmEgdHVycGlzIGlkIGVyYXQgY29u
Z3VlIG5lYyBhbGlxdWFtIGxlbyB2ZW5lbmF0aXMuIEN1bSBzb2NpaXMgbmF0b3F1ZSBwZW5hdGli
dXMgZXQgbWFnbmlzIGRpcyBwYXJ0dXJpZW50IG1vbnRlcywgbmFzY2V0dXIgcmlkaWN1bHVzIG11
cy4gQ2xhc3MgYXB0ZW50IHRhY2l0aSBzb2Npb3NxdSBhZCBsaXRvcmEgdG9ycXVlbnQgcGVyIGNv
bnViaWEgbm9zdHJhLCBwZXIgaW5jZXB0b3MgaGltZW5hZW9zLiBTZWQgZWdlc3RhcyB1bHRyaWNl
cyBtYXVyaXMgc2VkIHRlbXBvci4gTWFlY2VuYXMgdml0YWUgbGliZXJvIHV0IG5pc2wgZ3Jhdmlk
YSBlbGVpZmVuZCBibGFuZGl0IG5vbiByaXN1cy4gRnVzY2UgZ3JhdmlkYSB2ZW5lbmF0aXMgZG9s
b3IgZXUgaW1wZXJkaWV0LgorVXQgYXQgdG9ydG9yIGxpZ3VsYS4gQ3JhcyB0ZW1wb3Igc2VtIHNl
ZCB0ZWxsdXMgY29udmFsbGlzIHRpbmNpZHVudCBlZ2V0IGVnZXQgZG9sb3IuIEluIGZhY2lsaXNp
cyBhbnRlIGF0IHR1cnBpcyBzZW1wZXIgc2VtcGVyLiBGdXNjZSBkdWkgZG9sb3IsIHJob25jdXMg
ZXQgY3Vyc3VzIGluLCBtYWxlc3VhZGEgaW4ganVzdG8uIEN1cmFiaXR1ciB2dWxwdXRhdGUgYWxp
cXVldCB0aW5jaWR1bnQuIFF1aXNxdWUgc2l0IGFtZXQgbWFzc2EganVzdG8sIGluIGJpYmVuZHVt
IGxlby4gQWxpcXVhbSBsYWNpbmlhIHBoYXJldHJhIGp1c3RvLiBTdXNwZW5kaXNzZSByaG9uY3Vz
IGp1c3RvIG5lYyBkaWFtIGN1cnN1cyB1bGxhbWNvcnBlci4gTmFtIHBvcnR0aXRvciBwb3J0dGl0
b3IgbGliZXJvLCBjb252YWxsaXMgc29sbGljaXR1ZGluIG51bmMgZXVpc21vZCBhdC4gUHJvaW4g
dGVtcHVzIGF1Y3RvciB0dXJwaXMgdXQgY29uZ3VlLiBOdWxsYW0gb3JuYXJlIGludGVyZHVtIGVy
b3Mgc2VkIHN1c2NpcGl0LiBVdCBhdCB0b3J0b3IgbGlndWxhLiBDcmFzIHRlbXBvciBzZW0gc2Vk
IHRlbGx1cyBjb252YWxsaXMgdGluY2lkdW50IGVnZXQgZWdldCBkb2xvci4KK0luIGZhY2lsaXNp
cyBhbnRlIGF0IHR1cnBpcyBzZW1wZXIgc2VtcGVyLiBGdXNjZSBkdWkgZG9sb3IsIHJob25jdXMg
ZXQgY3Vyc3VzIGluLCBtYWxlc3VhZGEgaW4ganVzdG8uIEN1cmFiaXR1ciB2dWxwdXRhdGUgYWxp
cXVldCB0aW5jaWR1bnQuIFF1aXNxdWUgc2l0IGFtZXQgbWFzc2EganVzdG8sIGluIGJpYmVuZHVt
IGxlby4gQWxpcXVhbSBsYWNpbmlhIHBoYXJldHJhIGp1c3RvLiBTdXNwZW5kaXNzZSByaG9uY3Vz
IGp1c3RvIG5lYyBkaWFtIGN1cnN1cyB1bGxhbWNvcnBlci4gTmFtIHBvcnR0aXRvciBwb3J0dGl0
b3IgbGliZXJvLCBjb252YWxsaXMgc29sbGljaXR1ZGluIG51bmMgZXVpc21vZCBhdC4gUHJvaW4g
dGVtcHVzIGF1Y3RvciB0dXJwaXMgdXQgY29uZ3VlLiBOdWxsYW0gb3JuYXJlIGludGVyZHVtIGVy
b3Mgc2VkIHN1c2NpcGl0LgorV2hlbiByZXNpemluZyB0aGUgd2luZG93IHRoZSByZWdpb25zIHNo
b3VsZCBub3QgY2hhbmdlLgorUEFTUworUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtbmVzdGVkLWNvbXBsZXgtcmVnaW9ucy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtbmVzdGVkLWNvbXBsZXgt
cmVnaW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNDA1MTA4Y2U2ZDNiZDI1NGIyMjZkZDkzN2RmMmRl
ZDk5ZTI5ZDgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0
b2hlaWdodC1taXhlZC1uZXN0ZWQtY29tcGxleC1yZWdpb25zLmh0bWwKQEAgLTAsMCArMSwxMDUg
QEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuY29udGVudCB7CisgICAg
ICAgICAgICBmb250LWZhbWlseTogQWhlbTsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDsK
KyAgICAgICAgfQorCisgICAgICAgICNjb250ZW50MSB7CisgICAgICAgICAgICAtd2Via2l0LWZs
b3ctaW50bzogZmxvdzE7CisgICAgICAgIH0KKworICAgICAgICAjY29udGVudDIgeworICAgICAg
ICAgICAgLXdlYmtpdC1mbG93LWludG86IGZsb3cyOworICAgICAgICB9CisKKyAgICAgICAgI2Mx
LCAjYzIgeworICAgICAgICAgICAgYm9yZGVyOiB0aGluIHNvbGlkIGJsYWNrOworICAgICAgICAg
ICAgcG9zaXRpb246IHJlbGF0aXZlOworICAgICAgICB9CisKKyAgICAgICAgLnJlZ2lvbjEgewor
ICAgICAgICAgICAgYm9yZGVyOiB0aGljayBzb2xpZCBibHVlOworICAgICAgICAgICAgLXdlYmtp
dC1mbG93LWZyb206IGZsb3cxOworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICB9
CisKKyAgICAgICAgLnJlZ2lvbjIgeworICAgICAgICAgICAgYm9yZGVyOiB0aGljayBzb2xpZCBy
ZWQ7CisgICAgICAgICAgICAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7CisgICAgICAgICAgICB3
aWR0aDogMjAwcHg7CisgICAgICAgIH0KKworICAgICAgICAjcmVnaW9uMSB7CisgICAgICAgICAg
ICBwb3NpdGlvbjogZml4ZWQ7CisgICAgICAgICAgICBib3R0b206IDIwMHB4OworICAgICAgICAg
ICAgcmlnaHQ6IDEwMHB4OworICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7CisgICAgICAg
IH0KKworICAgICAgICAjcmVnaW9uMiB7CisgICAgICAgIH0KKworICAgICAgICAjcmVnaW9uMyB7
CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICB0b3A6IDBweDsKKyAgICAg
ICAgICAgIGxlZnQ6IDIyMHB4OworICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAg
ICAgICB9CisKKyAgICAgICAgI3JlZ2lvbjQgeworICAgICAgICAgICAgbWF4LWhlaWdodDogMjAw
cHg7CisgICAgICAgIH0KKworICAgICAgICAjcmVnaW9uNSB7CisgICAgICAgICAgICB0b3A6IDBw
eDsKKyAgICAgICAgICAgIGxlZnQ6IDIyMHB4OworICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwor
ICAgICAgICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB9CisKKyAgICAgICAgI3Jl
Z2lvbjYgeworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbjcgeworICAgICAgICAgICAgLXdl
YmtpdC1yZWdpb24tYnJlYWstYmVmb3JlOiBhbHdheXM7CisgICAgICAgICAgICBtYXgtaGVpZ2h0
OiAxMDBweDsKKyAgICAgICAgICAgIHdpZHRoOiAxNTBweDsKKyAgICAgICAgfQorICAgIDwvc3R5
bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTk2OSI+W0NTUyBSZWdpb25zXSBO
ZXN0ZWQgYXV0by1oZWlnaHQgcmVnaW9ucyBkb24ndCBsYXlvdXQgY29ycmVjdGx5PC9hPi48L3A+
CisgICAgPGRpdiBjbGFzcz0iY29udGVudCIgaWQ9ImNvbnRlbnQxIj5Mb3JlbSBpcHN1bSBkb2xv
ciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBBZW5lYW4gdXJuYSBvcmNp
LCBjb25zZXF1YXQgc2VkIGxvYm9ydGlzIGluLCBjb252YWxsaXMgZXQgdmVsaXQuIFV0IGVsZW1l
bnR1bSBsYWN1cyBhYyBkdWkgdmVzdGlidWx1bSBldSBjb25kaW1lbnR1bSBtaSBsdWN0dXMuIEZ1
c2NlIHBoYXJldHJhIHR1cnBpcyBpZCBlcmF0IGNvbmd1ZSBuZWMgYWxpcXVhbSBsZW8gdmVuZW5h
dGlzLiBDdW0gc29jaWlzIG5hdG9xdWUgcGVuYXRpYnVzIGV0IG1hZ25pcyBkaXMgcGFydHVyaWVu
dCBtb250ZXMsIG5hc2NldHVyIHJpZGljdWx1cyBtdXMuIENsYXNzIGFwdGVudCB0YWNpdGkgc29j
aW9zcXUgYWQgbGl0b3JhIHRvcnF1ZW50IHBlciBjb251YmlhIG5vc3RyYSwgcGVyIGluY2VwdG9z
IGhpbWVuYWVvcy4gU2VkIGVnZXN0YXMgdWx0cmljZXMgbWF1cmlzIHNlZCB0ZW1wb3IuIE1hZWNl
bmFzIHZpdGFlIGxpYmVybyB1dCBuaXNsIGdyYXZpZGEgZWxlaWZlbmQgYmxhbmRpdCBub24gcmlz
dXMuIEZ1c2NlIGdyYXZpZGEgdmVuZW5hdGlzIGRvbG9yIGV1IGltcGVyZGlldC4KKyAgICA8L2Rp
dj4KKyAgICA8ZGl2IGNsYXNzPSJjb250ZW50IiBpZD0iY29udGVudDIiPlV0IGF0IHRvcnRvciBs
aWd1bGEuIENyYXMgdGVtcG9yIHNlbSBzZWQgdGVsbHVzIGNvbnZhbGxpcyB0aW5jaWR1bnQgZWdl
dCBlZ2V0IGRvbG9yLiBJbiBmYWNpbGlzaXMgYW50ZSBhdCB0dXJwaXMgc2VtcGVyIHNlbXBlci4g
RnVzY2UgZHVpIGRvbG9yLCByaG9uY3VzIGV0IGN1cnN1cyBpbiwgbWFsZXN1YWRhIGluIGp1c3Rv
LiBDdXJhYml0dXIgdnVscHV0YXRlIGFsaXF1ZXQgdGluY2lkdW50LiBRdWlzcXVlIHNpdCBhbWV0
IG1hc3NhIGp1c3RvLCBpbiBiaWJlbmR1bSBsZW8uIEFsaXF1YW0gbGFjaW5pYSBwaGFyZXRyYSBq
dXN0by4gU3VzcGVuZGlzc2UgcmhvbmN1cyBqdXN0byBuZWMgZGlhbSBjdXJzdXMgdWxsYW1jb3Jw
ZXIuIE5hbSBwb3J0dGl0b3IgcG9ydHRpdG9yIGxpYmVybywgY29udmFsbGlzIHNvbGxpY2l0dWRp
biBudW5jIGV1aXNtb2QgYXQuIFByb2luIHRlbXB1cyBhdWN0b3IgdHVycGlzIHV0IGNvbmd1ZS4g
TnVsbGFtIG9ybmFyZSBpbnRlcmR1bSBlcm9zIHNlZCBzdXNjaXBpdC4gVXQgYXQgdG9ydG9yIGxp
Z3VsYS4gQ3JhcyB0ZW1wb3Igc2VtIHNlZCB0ZWxsdXMgY29udmFsbGlzIHRpbmNpZHVudCBlZ2V0
IGVnZXQgZG9sb3IuCisgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lvbjEiIGlkPSJyZWdpb243Ij48
L2Rpdj4KKyAgICBJbiBmYWNpbGlzaXMgYW50ZSBhdCB0dXJwaXMgc2VtcGVyIHNlbXBlci4gRnVz
Y2UgZHVpIGRvbG9yLCByaG9uY3VzIGV0IGN1cnN1cyBpbiwgbWFsZXN1YWRhIGluIGp1c3RvLiBD
dXJhYml0dXIgdnVscHV0YXRlIGFsaXF1ZXQgdGluY2lkdW50LiBRdWlzcXVlIHNpdCBhbWV0IG1h
c3NhIGp1c3RvLCBpbiBiaWJlbmR1bSBsZW8uIEFsaXF1YW0gbGFjaW5pYSBwaGFyZXRyYSBqdXN0
by4gU3VzcGVuZGlzc2UgcmhvbmN1cyBqdXN0byBuZWMgZGlhbSBjdXJzdXMgdWxsYW1jb3JwZXIu
IE5hbSBwb3J0dGl0b3IgcG9ydHRpdG9yIGxpYmVybywgY29udmFsbGlzIHNvbGxpY2l0dWRpbiBu
dW5jIGV1aXNtb2QgYXQuIFByb2luIHRlbXB1cyBhdWN0b3IgdHVycGlzIHV0IGNvbmd1ZS4gTnVs
bGFtIG9ybmFyZSBpbnRlcmR1bSBlcm9zIHNlZCBzdXNjaXBpdC4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJyZWdpb24xIiBpZD0icmVnaW9uMSI+PC9kaXY+CisgICAgPGRpdiBpZD0iYzEi
PgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpb24xIiBpZD0icmVnaW9uMiI+PC9kaXY+CisgICAg
ICAgIDxkaXYgY2xhc3M9InJlZ2lvbjIiIGlkPSJyZWdpb24zIj48L2Rpdj4KKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGlkPSJjMiIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9NjgyPgorICAgICAgICA8ZGl2
IGNsYXNzPSJyZWdpb24yIiBpZD0icmVnaW9uNCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9
InJlZ2lvbjIiIGlkPSJyZWdpb241Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVnaW9u
MiIgaWQ9InJlZ2lvbjYiPjwvZGl2PgorICAgIDwvZGl2PgorICAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0Ij4KKyAgICBjaGVja0xheW91dCgiI2MyIik7CisKKyAgICB2YXIgbmV3RGl2
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgbmV3RGl2LmNsYXNzTmFtZSA9
ICJjb250ZW50IjsKKyAgICB2YXIgbmV3Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KCJXaGVuIHJlc2l6aW5nIHRoZSB3aW5kb3cgdGhlIHJlZ2lvbnMgc2hvdWxkIG5vdCBjaGFuZ2Uu
Iik7CisgICAgbmV3RGl2LmFwcGVuZENoaWxkKG5ld0NvbnRlbnQpOworICAgIGNvbnRhaW5lckRp
diA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjMiIpOworICAgIGNvbnRhaW5lckRpdi5hcHBl
bmRDaGlsZChuZXdEaXYpOworICAgIGNvbnRhaW5lckRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtZXhw
ZWN0ZWQtaGVpZ2h0IiwgNjgyKTsKKworICAgIGNoZWNrTGF5b3V0KCIjYzIiKTsKKyAgICA8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9hdXRvaGVpZ2h0LW1peGVkLW5lc3RlZC1yZWdpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVkLW5lc3RlZC1yZWdpb25zLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44NjE0NzM4OWU2NDMzM2Y1MzFjMmZiYjg0YjgxNjk2NGQyN2Fl
ZWE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWln
aHQtbWl4ZWQtbmVzdGVkLXJlZ2lvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rl
c3QgZm9yIFtDU1MgUmVnaW9uc10gTmVzdGVkIGF1dG8taGVpZ2h0IHJlZ2lvbnMgZG9uJ3QgbGF5
b3V0IGNvcnJlY3RseS4KKworTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVy
IGFkaXBpc2NpbmcgZWxpdC4gQWVuZWFuIHVybmEgb3JjaSwgY29uc2VxdWF0IHNlZCBsb2JvcnRp
cyBpbiwgY29udmFsbGlzIGV0IHZlbGl0LgorVXQgZWxlbWVudHVtIGxhY3VzIGFjIGR1aSB2ZXN0
aWJ1bHVtIGV1IGNvbmRpbWVudHVtIG1pIGx1Y3R1cy4gRnVzY2UgcGhhcmV0cmEgdHVycGlzIGlk
IGVyYXQgY29uZ3VlIG5lYyBhbGlxdWFtIGxlbyB2ZW5lbmF0aXMuIEN1bSBzb2NpaXMgbmF0b3F1
ZSBwZW5hdGlidXMgZXQgbWFnbmlzIGRpcyBwYXJ0dXJpZW50IG1vbnRlcywgbmFzY2V0dXIgcmlk
aWN1bHVzIG11cy4KK0NsYXNzIGFwdGVudCB0YWNpdGkgc29jaW9zcXUgYWQgbGl0b3JhIHRvcnF1
ZW50IHBlciBjb251YmlhIG5vc3RyYSwgcGVyIGluY2VwdG9zIGhpbWVuYWVvcy4gU2VkIGVnZXN0
YXMgdWx0cmljZXMgbWF1cmlzIHNlZCB0ZW1wb3IuIE1hZWNlbmFzIHZpdGFlIGxpYmVybyB1dCBu
aXNsIGdyYXZpZGEgZWxlaWZlbmQgYmxhbmRpdCBub24gcmlzdXMuCitGdXNjZSBncmF2aWRhIHZl
bmVuYXRpcyBkb2xvciBldSBpbXBlcmRpZXQuCitQQVNTCitQQVNTCitQQVNTCitQQVNTCitVdCBh
dCB0b3J0b3IgbGlndWxhLiBDcmFzIHRlbXBvciBzZW0gc2VkIHRlbGx1cyBjb252YWxsaXMgdGlu
Y2lkdW50IGVnZXQgZWdldCBkb2xvci4gSW4gZmFjaWxpc2lzIGFudGUgYXQgdHVycGlzIHNlbXBl
ciBzZW1wZXIuIEZ1c2NlIGR1aSBkb2xvciwgcmhvbmN1cyBldCBjdXJzdXMgaW4sIG1hbGVzdWFk
YSBpbiBqdXN0by4KK0N1cmFiaXR1ciB2dWxwdXRhdGUgYWxpcXVldCB0aW5jaWR1bnQuIFF1aXNx
dWUgc2l0IGFtZXQgbWFzc2EganVzdG8sIGluIGJpYmVuZHVtIGxlby4gQWxpcXVhbSBsYWNpbmlh
IHBoYXJldHJhIGp1c3RvLiBTdXNwZW5kaXNzZSByaG9uY3VzIGp1c3RvIG5lYyBkaWFtIGN1cnN1
cyB1bGxhbWNvcnBlci4gTmFtIHBvcnR0aXRvciBwb3J0dGl0b3IgbGliZXJvLCBjb252YWxsaXMg
c29sbGljaXR1ZGluIG51bmMgZXVpc21vZCBhdC4gUHJvaW4gdGVtcHVzIGF1Y3RvciB0dXJwaXMg
dXQgY29uZ3VlLiBOdWxsYW0gb3JuYXJlIGludGVyZHVtIGVyb3Mgc2VkIHN1c2NpcGl0LgorUEFT
UworUEFTUworU2VkIG5lYyBqdXN0byBtYWduYS4gTnVsbGFtIGFjY3Vtc2FuIGFyY3UgZXQgZW5p
bSBibGFuZGl0IHNhZ2l0dGlzLiBJbiBzY2VsZXJpc3F1ZSwgZmVsaXMgYWMgZmVybWVudHVtIHNj
ZWxlcmlzcXVlLCBwdXJ1cyB2ZWxpdCBhbGlxdWV0IGR1aSwgbm9uIHZpdmVycmEgZXJvcyBlcm9z
IHZlbCBzZW0uIEFlbmVhbiB0dXJwaXMgbGVjdHVzLCBtb2xlc3RpZSBzb2RhbGVzIGFkaXBpc2Np
bmcgbm9uLCByaG9uY3VzIGV1IGp1c3RvLiBOdWxsYW0gbW9sZXN0aWUgZW5pbSBhYyBudWxsYSBj
dXJzdXMgZnJpbmdpbGxhLiBFdGlhbSBzZWQgbWV0dXMgbGVjdHVzLiBBbGlxdWFtIGVyYXQgdm9s
dXRwYXQuIFF1aXNxdWUgcHVsdmluYXIgaGVuZHJlcml0IHVybmEgbm9uIHZhcml1cy4gRG9uZWMg
aW1wZXJkaWV0LCBtYXNzYSBpbiBzZW1wZXIgaGVuZHJlcml0LCB1cm5hIG51bGxhIGRhcGlidXMg
dGVsbHVzLCBhYyBkaWduaXNzaW0gZW5pbSBuZXF1ZSB1dCBvZGlvLiBJbiBzYWdpdHRpcywgZXN0
IGluIGZyaW5naWxsYSBhY2N1bXNhbiwgb2RpbyBqdXN0byBsYWNpbmlhIGR1aSwgc2VkIHB1bHZp
bmFyIHVybmEgbG9yZW0gbm9uIGR1aS4KK1BBU1MKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVkLW5lc3RlZC1yZWdpb25zLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taXhlZC1uZXN0ZWQtcmVnaW9ucy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjBjNDExMmIwNWJkNjM1NTVlNGZlNzNjZGZkNTBmNzJiZmY1MDdmOWEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1t
aXhlZC1uZXN0ZWQtcmVnaW9ucy5odG1sCkBAIC0wLDAgKzEsNjggQEAKKzxodG1sPgorPGhlYWQ+
CisgICAgPHN0eWxlPgorICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgIGZvbnQtZmFt
aWx5OiBBaGVtOworICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4OworICAgICAgICB9CisKKyAg
ICAgICAgI2NvbnRlbnQxIHsKKyAgICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBmbG93MTsK
KyAgICAgICAgfQorCisgICAgICAgICNjb250ZW50MiB7CisgICAgICAgICAgICAtd2Via2l0LWZs
b3ctaW50bzogZmxvdzI7CisgICAgICAgIH0KKworICAgICAgICAjY29udGVudDMgeworICAgICAg
ICAgICAgLXdlYmtpdC1mbG93LWludG86IGZsb3czOworICAgICAgICB9CisKKyAgICAgICAgLnJl
Z2lvbjEgeworICAgICAgICAgICAgYm9yZGVyOiB0aGljayBzb2xpZCBibHVlOworICAgICAgICAg
ICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3cxOworICAgICAgICB9CisKKyAgICAgICAgLnJlZ2lv
bjIgeworICAgICAgICAgICAgYm9yZGVyOiB0aGljayBzb2xpZCByZWQ7CisgICAgICAgICAgICAt
d2Via2l0LWZsb3ctZnJvbTogZmxvdzI7CisgICAgICAgIH0KKworICAgICAgICAucmVnaW9uMyB7
CisgICAgICAgICAgICBib3JkZXI6IHRoaWNrIHNvbGlkIGdyZWVuOworICAgICAgICAgICAgLXdl
YmtpdC1mbG93LWZyb206IGZsb3czOworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbjEgewor
ICAgICAgICAgICAgd2lkdGg6IDUwMHB4OworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbjIg
eworICAgICAgICAgICAgbWF4LWhlaWdodDogMTAxcHgKKyAgICAgICAgfQorCisgICAgICAgICNy
ZWdpb24zIHsKKyAgICAgICAgICAgIG1heC1oZWlnaHQ6IDUwcHg7CisgICAgICAgIH0KKworICAg
ICAgICAjcmVnaW9uNCB7CisgICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMHB4OworICAgICAgICB9
CisKKyAgICAgICAgI3JlZ2lvbjUgeworICAgICAgICAgICAgbWF4LWhlaWdodDogMTExcHg7Cisg
ICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMv
Y2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iY2hlY2tM
YXlvdXQoJ2JvZHkgZGl2JykiPgorICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTE5NjkiPltDU1MgUmVnaW9uc10gTmVzdGVk
IGF1dG8taGVpZ2h0IHJlZ2lvbnMgZG9uJ3QgbGF5b3V0IGNvcnJlY3RseTwvYT4uPC9wPgorICAg
IDxkaXYgY2xhc3M9ImNvbnRhaW5lciIgaWQ9ImNvbnRlbnQxIiBkYXRhLWV4cGVjdGVkLWhlaWdo
dD00MTI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2Npbmcg
ZWxpdC4gQWVuZWFuIHVybmEgb3JjaSwgY29uc2VxdWF0IHNlZCBsb2JvcnRpcyBpbiwgY29udmFs
bGlzIGV0IHZlbGl0LiA8ZGl2IGNsYXNzPSJyZWdpb24zIiBpZD0icmVnaW9uNSIgZGF0YS1leHBl
Y3RlZC1oZWlnaHQ9MTIxPjwvZGl2PiBVdCBlbGVtZW50dW0gbGFjdXMgYWMgZHVpIHZlc3RpYnVs
dW0gZXUgY29uZGltZW50dW0gbWkgbHVjdHVzLiBGdXNjZSBwaGFyZXRyYSB0dXJwaXMgaWQgZXJh
dCBjb25ndWUgbmVjIGFsaXF1YW0gbGVvIHZlbmVuYXRpcy4gQ3VtIHNvY2lpcyBuYXRvcXVlIHBl
bmF0aWJ1cyBldCBtYWduaXMgZGlzIHBhcnR1cmllbnQgbW9udGVzLCBuYXNjZXR1ciByaWRpY3Vs
dXMgbXVzLjxkaXYgY2xhc3M9InJlZ2lvbjIiIGlkPSJyZWdpb24yIiBkYXRhLWV4cGVjdGVkLWhl
aWdodD0xMTE+PC9kaXY+Q2xhc3MgYXB0ZW50IHRhY2l0aSBzb2Npb3NxdSBhZCBsaXRvcmEgdG9y
cXVlbnQgcGVyIGNvbnViaWEgbm9zdHJhLCBwZXIgaW5jZXB0b3MgaGltZW5hZW9zLiBTZWQgZWdl
c3RhcyB1bHRyaWNlcyBtYXVyaXMgc2VkIHRlbXBvci4gTWFlY2VuYXMgdml0YWUgbGliZXJvIHV0
IG5pc2wgZ3JhdmlkYSBlbGVpZmVuZCBibGFuZGl0IG5vbiByaXN1cy48ZGl2IGNsYXNzPSJyZWdp
b24yIiBpZD0icmVnaW9uMyIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9NTA+PC9kaXY+RnVzY2UgZ3Jh
dmlkYSB2ZW5lbmF0aXMgZG9sb3IgZXUgaW1wZXJkaWV0LgorICAgIDwvZGl2PgorICAgIDxkaXYg
Y2xhc3M9ImNvbnRhaW5lciIgaWQ9ImNvbnRlbnQyIiBkYXRhLWV4cGVjdGVkLWhlaWdodD0xNDE+
VXQgYXQgdG9ydG9yIGxpZ3VsYS4gQ3JhcyB0ZW1wb3Igc2VtIHNlZCB0ZWxsdXMgY29udmFsbGlz
IHRpbmNpZHVudCBlZ2V0IGVnZXQgZG9sb3IuIEluIGZhY2lsaXNpcyBhbnRlIGF0IHR1cnBpcyBz
ZW1wZXIgc2VtcGVyLiBGdXNjZSBkdWkgZG9sb3IsIHJob25jdXMgZXQgY3Vyc3VzIGluLCBtYWxl
c3VhZGEgaW4ganVzdG8uIDxkaXYgY2xhc3M9InJlZ2lvbjMiIGlkPSJyZWdpb240IiBkYXRhLWV4
cGVjdGVkLWhlaWdodD0zMD48L2Rpdj5DdXJhYml0dXIgdnVscHV0YXRlIGFsaXF1ZXQgdGluY2lk
dW50LiBRdWlzcXVlIHNpdCBhbWV0IG1hc3NhIGp1c3RvLCBpbiBiaWJlbmR1bSBsZW8uIEFsaXF1
YW0gbGFjaW5pYSBwaGFyZXRyYSBqdXN0by4gU3VzcGVuZGlzc2UgcmhvbmN1cyBqdXN0byBuZWMg
ZGlhbSBjdXJzdXMgdWxsYW1jb3JwZXIuIE5hbSBwb3J0dGl0b3IgcG9ydHRpdG9yIGxpYmVybywg
Y29udmFsbGlzIHNvbGxpY2l0dWRpbiBudW5jIGV1aXNtb2QgYXQuIFByb2luIHRlbXB1cyBhdWN0
b3IgdHVycGlzIHV0IGNvbmd1ZS4gTnVsbGFtIG9ybmFyZSBpbnRlcmR1bSBlcm9zIHNlZCBzdXNj
aXBpdC4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiIGlkPSJjb250ZW50
MyIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9MTMxPlNlZCBuZWMganVzdG8gbWFnbmEuIE51bGxhbSBh
Y2N1bXNhbiBhcmN1IGV0IGVuaW0gYmxhbmRpdCBzYWdpdHRpcy4gSW4gc2NlbGVyaXNxdWUsIGZl
bGlzIGFjIGZlcm1lbnR1bSBzY2VsZXJpc3F1ZSwgcHVydXMgdmVsaXQgYWxpcXVldCBkdWksIG5v
biB2aXZlcnJhIGVyb3MgZXJvcyB2ZWwgc2VtLiBBZW5lYW4gdHVycGlzIGxlY3R1cywgbW9sZXN0
aWUgc29kYWxlcyBhZGlwaXNjaW5nIG5vbiwgcmhvbmN1cyBldSBqdXN0by4gTnVsbGFtIG1vbGVz
dGllIGVuaW0gYWMgbnVsbGEgY3Vyc3VzIGZyaW5naWxsYS4gRXRpYW0gc2VkIG1ldHVzIGxlY3R1
cy4gQWxpcXVhbSBlcmF0IHZvbHV0cGF0LiBRdWlzcXVlIHB1bHZpbmFyIGhlbmRyZXJpdCB1cm5h
IG5vbiB2YXJpdXMuIERvbmVjIGltcGVyZGlldCwgbWFzc2EgaW4gc2VtcGVyIGhlbmRyZXJpdCwg
dXJuYSBudWxsYSBkYXBpYnVzIHRlbGx1cywgYWMgZGlnbmlzc2ltIGVuaW0gbmVxdWUgdXQgb2Rp
by4gSW4gc2FnaXR0aXMsIGVzdCBpbiBmcmluZ2lsbGEgYWNjdW1zYW4sIG9kaW8ganVzdG8gbGFj
aW5pYSBkdWksIHNlZCBwdWx2aW5hciB1cm5hIGxvcmVtIG5vbiBkdWkuPC9kaXY+CisgICAgPGRp
diBjbGFzcz0icmVnaW9uMSIgaWQ9InJlZ2lvbjEiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PTQyMj4K
KyAgICA8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVkLXBhcmFsbGVsLXJlZ2lvbnMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtcGFyYWxsZWwtcmVn
aW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODcwNzVkOGMzOTA5Mzk3ZTkxMDE5MTkwZWRj
NDM1MGVjM2RiNjk5NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9hdXRvaGVpZ2h0LW1peGVkLXBhcmFsbGVsLXJlZ2lvbnMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNyBAQAorVGVzdCBmb3IgW0NTUyBSZWdpb25zXSBOZXN0ZWQgYXV0by1oZWlnaHQgcmVnaW9u
cyBkb24ndCBsYXlvdXQgY29ycmVjdGx5LgorCitMb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwg
Y29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBBZW5lYW4gdXJuYSBvcmNpLCBjb25zZXF1YXQg
c2VkIGxvYm9ydGlzIGluLCBjb252YWxsaXMgZXQgdmVsaXQuIFV0IGVsZW1lbnR1bSBsYWN1cyBh
YyBkdWkgdmVzdGlidWx1bSBldSBjb25kaW1lbnR1bSBtaSBsdWN0dXMuIEZ1c2NlIHBoYXJldHJh
IHR1cnBpcyBpZCBlcmF0IGNvbmd1ZSBuZWMgYWxpcXVhbSBsZW8gdmVuZW5hdGlzLiBDdW0gc29j
aWlzIG5hdG9xdWUgcGVuYXRpYnVzIGV0IG1hZ25pcyBkaXMgcGFydHVyaWVudCBtb250ZXMsIG5h
c2NldHVyIHJpZGljdWx1cyBtdXMuIENsYXNzIGFwdGVudCB0YWNpdGkgc29jaW9zcXUgYWQgbGl0
b3JhIHRvcnF1ZW50IHBlciBjb251YmlhIG5vc3RyYSwgcGVyIGluY2VwdG9zIGhpbWVuYWVvcy4g
U2VkIGVnZXN0YXMgdWx0cmljZXMgbWF1cmlzIHNlZCB0ZW1wb3IuIE1hZWNlbmFzIHZpdGFlIGxp
YmVybyB1dCBuaXNsIGdyYXZpZGEgZWxlaWZlbmQgYmxhbmRpdCBub24gcmlzdXMuIEZ1c2NlIGdy
YXZpZGEgdmVuZW5hdGlzIGRvbG9yIGV1IGltcGVyZGlldC4KK1V0IGF0IHRvcnRvciBsaWd1bGEu
IENyYXMgdGVtcG9yIHNlbSBzZWQgdGVsbHVzIGNvbnZhbGxpcyB0aW5jaWR1bnQgZWdldCBlZ2V0
IGRvbG9yLiBJbiBmYWNpbGlzaXMgYW50ZSBhdCB0dXJwaXMgc2VtcGVyIHNlbXBlci4gRnVzY2Ug
ZHVpIGRvbG9yLCByaG9uY3VzIGV0IGN1cnN1cyBpbiwgbWFsZXN1YWRhIGluIGp1c3RvLiBDdXJh
Yml0dXIgdnVscHV0YXRlIGFsaXF1ZXQgdGluY2lkdW50LiBRdWlzcXVlIHNpdCBhbWV0IG1hc3Nh
IGp1c3RvLCBpbiBiaWJlbmR1bSBsZW8uIEFsaXF1YW0gbGFjaW5pYSBwaGFyZXRyYSBqdXN0by4g
U3VzcGVuZGlzc2UgcmhvbmN1cyBqdXN0byBuZWMgZGlhbSBjdXJzdXMgdWxsYW1jb3JwZXIuIE5h
bSBwb3J0dGl0b3IgcG9ydHRpdG9yIGxpYmVybywgY29udmFsbGlzIHNvbGxpY2l0dWRpbiBudW5j
IGV1aXNtb2QgYXQuIFByb2luIHRlbXB1cyBhdWN0b3IgdHVycGlzIHV0IGNvbmd1ZS4gTnVsbGFt
IG9ybmFyZSBpbnRlcmR1bSBlcm9zIHNlZCBzdXNjaXBpdC4gVXQgYXQgdG9ydG9yIGxpZ3VsYS4g
Q3JhcyB0ZW1wb3Igc2VtIHNlZCB0ZWxsdXMgY29udmFsbGlzIHRpbmNpZHVudCBlZ2V0IGVnZXQg
ZG9sb3IuIEluIGZhY2lsaXNpcyBhbnRlIGF0IHR1cnBpcyBzZW1wZXIgc2VtcGVyLiBGdXNjZSBk
dWkgZG9sb3IsIHJob25jdXMgZXQgY3Vyc3VzIGluLCBtYWxlc3VhZGEgaW4ganVzdG8uIEN1cmFi
aXR1ciB2dWxwdXRhdGUgYWxpcXVldCB0aW5jaWR1bnQuIFF1aXNxdWUgc2l0IGFtZXQgbWFzc2Eg
anVzdG8sIGluIGJpYmVuZHVtIGxlby4gQWxpcXVhbSBsYWNpbmlhIHBoYXJldHJhIGp1c3RvLiBT
dXNwZW5kaXNzZSByaG9uY3VzIGp1c3RvIG5lYyBkaWFtIGN1cnN1cyB1bGxhbWNvcnBlci4gTmFt
IHBvcnR0aXRvciBwb3J0dGl0b3IgbGliZXJvLCBjb252YWxsaXMgc29sbGljaXR1ZGluIG51bmMg
ZXVpc21vZCBhdC4gUHJvaW4gdGVtcHVzIGF1Y3RvciB0dXJwaXMgdXQgY29uZ3VlLiBOdWxsYW0g
b3JuYXJlIGludGVyZHVtIGVyb3Mgc2VkIHN1c2NpcGl0LgorV2hlbiByZXNpemluZyB0aGUgd2lu
ZG93IHRoZSByZWdpb25zIHNob3VsZCBub3QgY2hhbmdlLgorUEFTUworUEFTUwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtcGFyYWxsZWwtcmVn
aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtcGFy
YWxsZWwtcmVnaW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4NDAyMDE5NDg1YjgwMzVhZjA2Yzg3ODcz
Mjg3MWNlMTk5YTUzNGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lv
bnMvYXV0b2hlaWdodC1taXhlZC1wYXJhbGxlbC1yZWdpb25zLmh0bWwKQEAgLTAsMCArMSw5OCBA
QAorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIC5jb250ZW50IHsKKyAgICAg
ICAgICAgIGZvbnQtZmFtaWx5OiBBaGVtOworICAgICAgICAgICAgZm9udC1zaXplOiAxMHB4Owor
ICAgICAgICB9CisKKyAgICAgICAgI2NvbnRlbnQxIHsKKyAgICAgICAgICAgIC13ZWJraXQtZmxv
dy1pbnRvOiBmbG93MTsKKyAgICAgICAgfQorCisgICAgICAgICNjb250ZW50MiB7CisgICAgICAg
ICAgICAtd2Via2l0LWZsb3ctaW50bzogZmxvdzI7CisgICAgICAgIH0KKworICAgICAgICAjYzEs
ICNjMiB7CisgICAgICAgICAgICBib3JkZXI6IHRoaW4gc29saWQgYmxhY2s7CisgICAgICAgICAg
ICBwb3NpdGlvbjogcmVsYXRpdmU7CisgICAgICAgIH0KKworICAgICAgICAucmVnaW9uMSB7Cisg
ICAgICAgICAgICBib3JkZXI6IHRoaWNrIHNvbGlkIGJsdWU7CisgICAgICAgICAgICAtd2Via2l0
LWZsb3ctZnJvbTogZmxvdzE7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIH0K
KworICAgICAgICAucmVnaW9uMiB7CisgICAgICAgICAgICBib3JkZXI6IHRoaWNrIHNvbGlkIHJl
ZDsKKyAgICAgICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93MjsKKyAgICAgICAgICAgIHdp
ZHRoOiAyMDBweDsKKyAgICAgICAgfQorCisgICAgICAgICNyZWdpb24xIHsKKyAgICAgICAgICAg
IHBvc2l0aW9uOiBmaXhlZDsKKyAgICAgICAgICAgIGJvdHRvbTogMjAwcHg7CisgICAgICAgICAg
ICByaWdodDogMTAwcHg7CisgICAgICAgICAgICBtYXgtaGVpZ2h0OiAxMDBweDsKKyAgICAgICAg
fQorCisgICAgICAgICNyZWdpb24yIHsKKyAgICAgICAgfQorCisgICAgICAgICNyZWdpb24zIHsK
KyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIHRvcDogMHB4OworICAgICAg
ICAgICAgbGVmdDogMjIwcHg7CisgICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAg
ICAgIH0KKworICAgICAgICAjcmVnaW9uNCB7CisgICAgICAgICAgICBtYXgtaGVpZ2h0OiAyMDBw
eDsKKyAgICAgICAgfQorCisgICAgICAgICNyZWdpb241IHsKKyAgICAgICAgICAgIHRvcDogMHB4
OworICAgICAgICAgICAgbGVmdDogMjIwcHg7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7Cisg
ICAgICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7CisgICAgICAgIH0KKworICAgICAgICAjcmVn
aW9uNiB7CisgICAgICAgICAgICBtYXgtaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgfQorICAgIDwv
c3R5bGU+CisgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9jaGVjay1sYXlvdXQuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPHA+VGVzdCBmb3IgPGEgaHJlZj0iaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTk2OSI+W0NTUyBSZWdpb25z
XSBOZXN0ZWQgYXV0by1oZWlnaHQgcmVnaW9ucyBkb24ndCBsYXlvdXQgY29ycmVjdGx5PC9hPi48
L3A+CisgICAgPGRpdiBjbGFzcz0iY29udGVudCIgaWQ9ImNvbnRlbnQxIj5Mb3JlbSBpcHN1bSBk
b2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBBZW5lYW4gdXJuYSBv
cmNpLCBjb25zZXF1YXQgc2VkIGxvYm9ydGlzIGluLCBjb252YWxsaXMgZXQgdmVsaXQuIFV0IGVs
ZW1lbnR1bSBsYWN1cyBhYyBkdWkgdmVzdGlidWx1bSBldSBjb25kaW1lbnR1bSBtaSBsdWN0dXMu
IEZ1c2NlIHBoYXJldHJhIHR1cnBpcyBpZCBlcmF0IGNvbmd1ZSBuZWMgYWxpcXVhbSBsZW8gdmVu
ZW5hdGlzLiBDdW0gc29jaWlzIG5hdG9xdWUgcGVuYXRpYnVzIGV0IG1hZ25pcyBkaXMgcGFydHVy
aWVudCBtb250ZXMsIG5hc2NldHVyIHJpZGljdWx1cyBtdXMuIENsYXNzIGFwdGVudCB0YWNpdGkg
c29jaW9zcXUgYWQgbGl0b3JhIHRvcnF1ZW50IHBlciBjb251YmlhIG5vc3RyYSwgcGVyIGluY2Vw
dG9zIGhpbWVuYWVvcy4gU2VkIGVnZXN0YXMgdWx0cmljZXMgbWF1cmlzIHNlZCB0ZW1wb3IuIE1h
ZWNlbmFzIHZpdGFlIGxpYmVybyB1dCBuaXNsIGdyYXZpZGEgZWxlaWZlbmQgYmxhbmRpdCBub24g
cmlzdXMuIEZ1c2NlIGdyYXZpZGEgdmVuZW5hdGlzIGRvbG9yIGV1IGltcGVyZGlldC4KKyAgICA8
L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250ZW50IiBpZD0iY29udGVudDIiPlV0IGF0IHRvcnRv
ciBsaWd1bGEuIENyYXMgdGVtcG9yIHNlbSBzZWQgdGVsbHVzIGNvbnZhbGxpcyB0aW5jaWR1bnQg
ZWdldCBlZ2V0IGRvbG9yLiBJbiBmYWNpbGlzaXMgYW50ZSBhdCB0dXJwaXMgc2VtcGVyIHNlbXBl
ci4gRnVzY2UgZHVpIGRvbG9yLCByaG9uY3VzIGV0IGN1cnN1cyBpbiwgbWFsZXN1YWRhIGluIGp1
c3RvLiBDdXJhYml0dXIgdnVscHV0YXRlIGFsaXF1ZXQgdGluY2lkdW50LiBRdWlzcXVlIHNpdCBh
bWV0IG1hc3NhIGp1c3RvLCBpbiBiaWJlbmR1bSBsZW8uIEFsaXF1YW0gbGFjaW5pYSBwaGFyZXRy
YSBqdXN0by4gU3VzcGVuZGlzc2UgcmhvbmN1cyBqdXN0byBuZWMgZGlhbSBjdXJzdXMgdWxsYW1j
b3JwZXIuIE5hbSBwb3J0dGl0b3IgcG9ydHRpdG9yIGxpYmVybywgY29udmFsbGlzIHNvbGxpY2l0
dWRpbiBudW5jIGV1aXNtb2QgYXQuIFByb2luIHRlbXB1cyBhdWN0b3IgdHVycGlzIHV0IGNvbmd1
ZS4gTnVsbGFtIG9ybmFyZSBpbnRlcmR1bSBlcm9zIHNlZCBzdXNjaXBpdC4gVXQgYXQgdG9ydG9y
IGxpZ3VsYS4gQ3JhcyB0ZW1wb3Igc2VtIHNlZCB0ZWxsdXMgY29udmFsbGlzIHRpbmNpZHVudCBl
Z2V0IGVnZXQgZG9sb3IuIEluIGZhY2lsaXNpcyBhbnRlIGF0IHR1cnBpcyBzZW1wZXIgc2VtcGVy
LiBGdXNjZSBkdWkgZG9sb3IsIHJob25jdXMgZXQgY3Vyc3VzIGluLCBtYWxlc3VhZGEgaW4ganVz
dG8uIEN1cmFiaXR1ciB2dWxwdXRhdGUgYWxpcXVldCB0aW5jaWR1bnQuIFF1aXNxdWUgc2l0IGFt
ZXQgbWFzc2EganVzdG8sIGluIGJpYmVuZHVtIGxlby4gQWxpcXVhbSBsYWNpbmlhIHBoYXJldHJh
IGp1c3RvLiBTdXNwZW5kaXNzZSByaG9uY3VzIGp1c3RvIG5lYyBkaWFtIGN1cnN1cyB1bGxhbWNv
cnBlci4gTmFtIHBvcnR0aXRvciBwb3J0dGl0b3IgbGliZXJvLCBjb252YWxsaXMgc29sbGljaXR1
ZGluIG51bmMgZXVpc21vZCBhdC4gUHJvaW4gdGVtcHVzIGF1Y3RvciB0dXJwaXMgdXQgY29uZ3Vl
LiBOdWxsYW0gb3JuYXJlIGludGVyZHVtIGVyb3Mgc2VkIHN1c2NpcGl0LgorICAgIDwvZGl2Pgor
ICAgIDxkaXYgY2xhc3M9InJlZ2lvbjEiIGlkPSJyZWdpb24xIj48L2Rpdj4KKyAgICA8ZGl2IGlk
PSJjMSI+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lvbjEiIGlkPSJyZWdpb24yIj48L2Rpdj4K
KyAgICAgICAgPGRpdiBjbGFzcz0icmVnaW9uMiIgaWQ9InJlZ2lvbjMiPjwvZGl2PgorICAgIDwv
ZGl2PgorICAgIDxkaXYgaWQ9ImMyIiBkYXRhLWV4cGVjdGVkLWhlaWdodD01MjI+CisgICAgICAg
IDxkaXYgY2xhc3M9InJlZ2lvbjIiIGlkPSJyZWdpb240Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBj
bGFzcz0icmVnaW9uMiIgaWQ9InJlZ2lvbjUiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJy
ZWdpb24yIiBpZD0icmVnaW9uNiI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiPgorICAgIGNoZWNrTGF5b3V0KCIjYzIiKTsKKworICAgIHZhciBu
ZXdEaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBuZXdEaXYuY2xhc3NO
YW1lID0gImNvbnRlbnQiOworICAgIHZhciBuZXdDb250ZW50ID0gZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUoIldoZW4gcmVzaXppbmcgdGhlIHdpbmRvdyB0aGUgcmVnaW9ucyBzaG91bGQgbm90IGNo
YW5nZS4iKTsKKyAgICBuZXdEaXYuYXBwZW5kQ2hpbGQobmV3Q29udGVudCk7CisgICAgY29udGFp
bmVyRGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImMyIik7CisgICAgY29udGFpbmVyRGl2
LmFwcGVuZENoaWxkKG5ld0Rpdik7CisgICAgY29udGFpbmVyRGl2LnNldEF0dHJpYnV0ZSgiZGF0
YS1leHBlY3RlZC1oZWlnaHQiLCA1MzIpOworCisgICAgY2hlY2tMYXlvdXQoIiNjMiIpOworICAg
IDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9yZWdpb25zL2F1dG9oZWlnaHQtbmVzdGVkLXJlZ2lvbnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbmVzdGVkLXJlZ2lvbnMtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmJkMzNiYTc3ZDFkNGI5YTI1ODdiNmI3MzA0MDI4ZTI2ZmY0YzUyYTkKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1uZXN0
ZWQtcmVnaW9ucy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitUZXN0IGZvciBbQ1NTIFJl
Z2lvbnNdIE5lc3RlZCBhdXRvLWhlaWdodCByZWdpb25zIGRvbid0IGxheW91dCBjb3JyZWN0bHku
CisKK0xvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVs
aXQuIEFlbmVhbiB1cm5hIG9yY2ksIGNvbnNlcXVhdCBzZWQgbG9ib3J0aXMgaW4sIGNvbnZhbGxp
cyBldCB2ZWxpdC4gVXQgZWxlbWVudHVtIGxhY3VzIGFjIGR1aSB2ZXN0aWJ1bHVtIGV1IGNvbmRp
bWVudHVtIG1pIGx1Y3R1cy4gRnVzY2UgcGhhcmV0cmEgdHVycGlzIGlkIGVyYXQgY29uZ3VlIG5l
YyBhbGlxdWFtIGxlbyB2ZW5lbmF0aXMuIEN1bSBzb2NpaXMgbmF0b3F1ZSBwZW5hdGlidXMgZXQg
bWFnbmlzIGRpcyBwYXJ0dXJpZW50IG1vbnRlcywgbmFzY2V0dXIgcmlkaWN1bHVzIG11cy4KK1BB
U1MKK0NsYXNzIGFwdGVudCB0YWNpdGkgc29jaW9zcXUgYWQgbGl0b3JhIHRvcnF1ZW50IHBlciBj
b251YmlhIG5vc3RyYSwgcGVyIGluY2VwdG9zIGhpbWVuYWVvcy4gU2VkIGVnZXN0YXMgdWx0cmlj
ZXMgbWF1cmlzIHNlZCB0ZW1wb3IuIE1hZWNlbmFzIHZpdGFlIGxpYmVybyB1dCBuaXNsIGdyYXZp
ZGEgZWxlaWZlbmQgYmxhbmRpdCBub24gcmlzdXMuIEZ1c2NlIGdyYXZpZGEgdmVuZW5hdGlzIGRv
bG9yIGV1IGltcGVyZGlldC4KK1V0IGF0IHRvcnRvciBsaWd1bGEuIENyYXMgdGVtcG9yIHNlbSBz
ZWQgdGVsbHVzIGNvbnZhbGxpcyB0aW5jaWR1bnQgZWdldCBlZ2V0IGRvbG9yLiBJbiBmYWNpbGlz
aXMgYW50ZSBhdCB0dXJwaXMgc2VtcGVyIHNlbXBlci4gRnVzY2UgZHVpIGRvbG9yLCByaG9uY3Vz
IGV0IGN1cnN1cyBpbiwgbWFsZXN1YWRhIGluIGp1c3RvLiBDdXJhYml0dXIgdnVscHV0YXRlIGFs
aXF1ZXQgdGluY2lkdW50LiBRdWlzcXVlIHNpdCBhbWV0IG1hc3NhIGp1c3RvLCBpbiBiaWJlbmR1
bSBsZW8uIEFsaXF1YW0gbGFjaW5pYSBwaGFyZXRyYSBqdXN0by4gU3VzcGVuZGlzc2UgcmhvbmN1
cyBqdXN0byBuZWMgZGlhbSBjdXJzdXMgdWxsYW1jb3JwZXIuIE5hbSBwb3J0dGl0b3IgcG9ydHRp
dG9yIGxpYmVybywgY29udmFsbGlzIHNvbGxpY2l0dWRpbiBudW5jIGV1aXNtb2QgYXQuIFByb2lu
IHRlbXB1cyBhdWN0b3IgdHVycGlzIHV0IGNvbmd1ZS4gTnVsbGFtIG9ybmFyZSBpbnRlcmR1bSBl
cm9zIHNlZCBzdXNjaXBpdC4KK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9hdXRvaGVpZ2h0LW5lc3RlZC1yZWdpb25zLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Jl
Z2lvbnMvYXV0b2hlaWdodC1uZXN0ZWQtcmVnaW9ucy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgwYTQ1NTE5
ZDNjMDg3Mzc1ZDI3ZWU1M2VhMTRlZjAzMTY4YWQyZTAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1uZXN0ZWQtcmVnaW9ucy5odG1sCkBAIC0w
LDAgKzEsNDYgQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICAuY29udGVu
dCB7CisgICAgICAgICAgICBmb250LWZhbWlseTogQWhlbTsKKyAgICAgICAgICAgIGZvbnQtc2l6
ZTogMTBweDsKKyAgICAgICAgfQorCisgICAgICAgICNjb250ZW50MSB7CisgICAgICAgICAgICAt
d2Via2l0LWZsb3ctaW50bzogZmxvdzE7CisgICAgICAgIH0KKworICAgICAgICAjY29udGVudDIg
eworICAgICAgICAgICAgLXdlYmtpdC1mbG93LWludG86IGZsb3cyOworICAgICAgICB9CisKKyAg
ICAgICAgLnJlZ2lvbjEgeworICAgICAgICAgICAgYm9yZGVyOiB0aGljayBzb2xpZCBibHVlOwor
ICAgICAgICAgICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3cxOworICAgICAgICB9CisKKyAgICAg
ICAgLnJlZ2lvbjIgeworICAgICAgICAgICAgYm9yZGVyOiB0aGljayBzb2xpZCByZWQ7CisgICAg
ICAgICAgICAtd2Via2l0LWZsb3ctZnJvbTogZmxvdzI7CisgICAgICAgIH0KKworICAgICAgICAj
cmVnaW9uMSB7CisgICAgICAgICAgICB3aWR0aDogNDAwcHg7CisgICAgICAgIH0KKworICAgICAg
ICAjcmVnaW9uMiB7CisgICAgICAgICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgIH0KKyAgICA8
L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0Lmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0iY2hlY2tMYXlvdXQoJyNyZWdpb24y
LCAjcmVnaW9uMScpIj4KKyAgICA8cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTExOTY5Ij5bQ1NTIFJlZ2lvbnNdIE5lc3RlZCBhdXRv
LWhlaWdodCByZWdpb25zIGRvbid0IGxheW91dCBjb3JyZWN0bHk8L2E+LjwvcD4KKyAgICA8ZGl2
IGNsYXNzPSJjb250ZW50IiBpZD0iY29udGVudDEiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0
LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIEFlbmVhbiB1cm5hIG9yY2ksIGNvbnNlcXVh
dCBzZWQgbG9ib3J0aXMgaW4sIGNvbnZhbGxpcyBldCB2ZWxpdC4gVXQgZWxlbWVudHVtIGxhY3Vz
IGFjIGR1aSB2ZXN0aWJ1bHVtIGV1IGNvbmRpbWVudHVtIG1pIGx1Y3R1cy4gRnVzY2UgcGhhcmV0
cmEgdHVycGlzIGlkIGVyYXQgY29uZ3VlIG5lYyBhbGlxdWFtIGxlbyB2ZW5lbmF0aXMuIEN1bSBz
b2NpaXMgbmF0b3F1ZSBwZW5hdGlidXMgZXQgbWFnbmlzIGRpcyBwYXJ0dXJpZW50IG1vbnRlcywg
bmFzY2V0dXIgcmlkaWN1bHVzIG11cy48ZGl2IGNsYXNzPSJyZWdpb24yIiBpZD0icmVnaW9uMiIg
ZGF0YS1leHBlY3RlZC1oZWlnaHQ9MjAwPjwvZGl2PkNsYXNzIGFwdGVudCB0YWNpdGkgc29jaW9z
cXUgYWQgbGl0b3JhIHRvcnF1ZW50IHBlciBjb251YmlhIG5vc3RyYSwgcGVyIGluY2VwdG9zIGhp
bWVuYWVvcy4gU2VkIGVnZXN0YXMgdWx0cmljZXMgbWF1cmlzIHNlZCB0ZW1wb3IuIE1hZWNlbmFz
IHZpdGFlIGxpYmVybyB1dCBuaXNsIGdyYXZpZGEgZWxlaWZlbmQgYmxhbmRpdCBub24gcmlzdXMu
IEZ1c2NlIGdyYXZpZGEgdmVuZW5hdGlzIGRvbG9yIGV1IGltcGVyZGlldC4KKyAgICA8L2Rpdj4K
KyAgICA8ZGl2IGNsYXNzPSJjb250ZW50IiBpZD0iY29udGVudDIiPlV0IGF0IHRvcnRvciBsaWd1
bGEuIENyYXMgdGVtcG9yIHNlbSBzZWQgdGVsbHVzIGNvbnZhbGxpcyB0aW5jaWR1bnQgZWdldCBl
Z2V0IGRvbG9yLiBJbiBmYWNpbGlzaXMgYW50ZSBhdCB0dXJwaXMgc2VtcGVyIHNlbXBlci4gRnVz
Y2UgZHVpIGRvbG9yLCByaG9uY3VzIGV0IGN1cnN1cyBpbiwgbWFsZXN1YWRhIGluIGp1c3RvLiBD
dXJhYml0dXIgdnVscHV0YXRlIGFsaXF1ZXQgdGluY2lkdW50LiBRdWlzcXVlIHNpdCBhbWV0IG1h
c3NhIGp1c3RvLCBpbiBiaWJlbmR1bSBsZW8uIEFsaXF1YW0gbGFjaW5pYSBwaGFyZXRyYSBqdXN0
by4gU3VzcGVuZGlzc2UgcmhvbmN1cyBqdXN0byBuZWMgZGlhbSBjdXJzdXMgdWxsYW1jb3JwZXIu
IE5hbSBwb3J0dGl0b3IgcG9ydHRpdG9yIGxpYmVybywgY29udmFsbGlzIHNvbGxpY2l0dWRpbiBu
dW5jIGV1aXNtb2QgYXQuIFByb2luIHRlbXB1cyBhdWN0b3IgdHVycGlzIHV0IGNvbmd1ZS4gTnVs
bGFtIG9ybmFyZSBpbnRlcmR1bSBlcm9zIHNlZCBzdXNjaXBpdC4KKyAgICA8L2Rpdj4KKyAgICA8
ZGl2IGNsYXNzPSJyZWdpb24xIiBpZD0icmVnaW9uMSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9Mzgw
PgorICAgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196125</attachid>
            <date>2013-04-02 05:51:01 -0700</date>
            <delta_ts>2013-04-02 06:47:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-111969-20130402155051.patch</filename>
            <type>text/plain</type>
            <size>64986</size>
            <attacher name="Andrei Bucur">abucur</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3NDE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI2NTY4ZjQ4NDJiODJi
ZTk5ZDVlZDMxMzYyNTA4ZDY3NzZiNGQ0OC4uMDNhYzdkM2NmMzNkNmRkMDVjZTJhYjcwMzMyMDM0
YzI1NDhjYjRjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEwMiBAQAorMjAxMy0wNC0wMiAgQW5k
cmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFJlZ2lvbnNdIE5l
c3RlZCBhdXRvLWhlaWdodCByZWdpb25zIGRvbid0IGxheW91dCBjb3JyZWN0bHkKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTk2OQorCisgICAgICAg
IFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgorCisgICAgICAgIFRoZSBwYXRjaCBmaXhlcyB0aGUg
YXV0by1oZWlnaHQgcmVnaW9ucyBwcm9jZXNzaW5nIG1vZGVsIHRvIHdvcmsgd2l0aCBuZXN0ZWQg
bmFtZWQgZmxvd3MuIEN1cnJlbnRseQorICAgICAgICB0aGlzIHVzZSBjYXNlIGRvZXNuJ3Qgd29y
ayBjb3JyZWN0bHkgYmVjYXVzZSB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIGNvbXB1dGVkIGhlaWdo
dCB2YWx1ZSBpcyBwcm9wYWdhdGVkCisgICAgICAgIHRvIHRoZSByZWdpb25zIGlzIGluY29ycmVj
dC4gRm9yIGV4YW1wbGUsIGluIHRoZSBjYXNlIG9mIHR3byBmbG93cyAoZjEgYW5kIGYyKSBhbmQg
dHdvIGF1dG8taGVpZ2h0CisgICAgICAgIHJlZ2lvbnMgKHIxIGFuZCByMikgd2l0aCByMiBhIG1l
bWJlciBvZiBmMToKKyAgICAgICAgMS4gdGhlIG5vcm1hbCBsYXlvdXQgcGhhc2Ugc3RhcnRzCisg
ICAgICAgIDIuIHIxIGlzIGxhaWQgb3V0IHdpdGggaGVpZ2h0ID0gMAorICAgICAgICAzLiBmMSBp
cyBsYWlkIG91dCBpbmNsdWRpbmcgcjIgd2l0aCBoZWlnaHQgPSAwOyBvdmVycmlkZUxvZ2ljYWxI
ZWlnaHQgZm9yIHIxIGlzIGNvbXB1dGVkCisgICAgICAgIDQuIGYyIGlzIGxhaWQgb3V0OyBvdmVy
cmlkZUxvZ2ljYWxIZWlnaHQgZm9yIHIyIGlzIGNvbXB1dGVkCisgICAgICAgIDUuIHRoZSBjb25z
dHJhaW5lZCBsYXlvdXQgcGhhc2Ugc3RhcnRzCisgICAgICAgIDYuIHIxIGlzIGxhaWQgb3V0IHVz
aW5nIHRoZSBvdmVycmlkZUxvZ2ljYWxIZWlnaHQgY29tcHV0ZWQgaW4gdGhlIG5vcm1hbCBwaGFz
ZQorICAgICAgICA3LiBmMSBpcyBsYWlkIG91dCBpbmNsdWRpbmcgcjIgd2l0aCBpdHMgb3ZlcnJp
ZGVMb2dpY2FsSGVpZ2h0CisgICAgICAgIDguIGYyIGlzIGxhaWQgb3V0CisKKyAgICAgICAgVGhl
IHByb2JsZW0gYXBwZWFycyBhdCBzdGVwIDYgYmVjYXVzZSB0aGUgb3ZlcnJpZGVMb2dpY2FsaGVp
Z2h0IGNvbXB1dGVkIGR1cmluZyBzdGVwIDMgYXNzdW1lcyByMgorICAgICAgICBoYXMgYSBoZWln
aHQgb2YgMC4gVGhlIHBhdGNoIGNoYW5nZXMgdGhlIGFsZ29yaXRobSB0byB1cGRhdGUgdGhlIGF1
dG8taGVpZ2h0IHJlZ2lvbnMgaW4gdGhlIHJldmVyc2UKKyAgICAgICAgb3JkZXIgb2YgdGhlaXIg
ZmxvdyB0aHJlYWRzIGRlcGVuZGVjaWVzLiBIZXJlIGlzIGEgaGlnaCBsZXZlbCBvdmVydmlldyBv
ZiB0aGUgbmV3IGFsZ29yaXRobSwKKyAgICAgICAgY29uc2lkZXJpbmcgdGhlIG5hbWVkIGZsb3dz
IGFyZSBzb3J0ZWQgaW4gdGhlIG9yZGVyIG9mIHRoZWlyIGRlcGVuZGVuY2llczoKKyAgICAgICAg
MS4gVGhlIGZsb3dzIGFyZSBsYWlkIG91dCBmcm9tIHRoZSBvdXRlciBmbG93IHRvIHRoZSBpbm5l
ciBmbG93LiBUaGlzIHN1Y2Nlc3NmdWxseSBjb21wdXRlcyB0aGUgb3V0ZXIKKyAgICAgICAgbm9u
LWF1dG8taGVpZ2h0IHJlZ2lvbnMgc2l6ZSBzbyB0aGUgaW5uZXIgZmxvd3MgaGF2ZSB0aGUgbmVj
ZXNzYXJ5IGluZm9ybWF0aW9uIHRvIGNvcnJlY3RseSBmcmFnbWVudAorICAgICAgICB0aGUgY29u
dGVudC4KKyAgICAgICAgMi4gVGhlIGZsb3dzIGFyZSBsYWlkIG91dCBmcm9tIHRoZSBpbm5lciBm
bG93IHRvIHRoZSBvdXRlciBmbG93LiBBZnRlciBhbiBpbm5lciBmbG93IGlzIGxhaWQgb3V0IGl0
CisgICAgICAgIGdvZXMgaW50byB0aGUgY29uc3RyYWluZWQgbGF5b3V0IHBoYXNlIGFuZCBtYXJr
cyB0aGUgYXV0by1oZWlnaHQgcmVnaW9ucyB0aGV5IG5lZWQgbGF5b3V0LiBUaGlzCisgICAgICAg
IG1lYW5zIHRoZSBvdXRlciBmbG93cyB3aWxsIHJlbGF5b3V0IGlmIHRoZXkgZGVwZW5kIG9uIHJl
Z2lvbnMgd2l0aCBhdXRvLWhlaWdodCByZWdpb25zIGJlbG9uZ2luZyB0bworICAgICAgICBpbm5l
ciBmbG93cy4gVGhpcyBzdGVwIHdpbGwgY29ycmVjdGx5IGNvbXB1dGUgdGhlIG92ZXJyaWRlTG9n
aWNhbEhlaWdodHMgZm9yIHRoZSBhdXRvLWhlaWdodCByZWdpb25zLgorICAgICAgICBJdCdzIHBv
c3NpYmxlIGZvciBub24tYXV0by1oZWlnaHQgcmVnaW9ucyB0byByZWxheW91dCBpZiB0aGV5IGRl
cGVuZCBvbiBhdXRvLWhlaWdodCByZWdpb25zLiBUaGlzCisgICAgICAgIHdpbGwgaW52YWxpZGF0
ZSB0aGUgaW5uZXIgZmxvdyB0aHJlYWRzIGFuZCBtYXJrIHRoZW0gYXMgbmVlZGluZyBsYXlvdXQu
CisgICAgICAgIDMuIFRoZSBsYXN0IHN0ZXAgaXMgdG8gZG8gb25lIGxhc3QgbGF5b3V0IGlmIHRo
ZXJlIGFyZSBwYWh0b2xvZ2ljYWwgZGVwZW5kZW5jaWVzIGJldHdlZW4gbm9uLWF1dG8taGVpZ2h0
CisgICAgICAgIHJlZ2lvbnMgYW5kIGF1dG8taGVpZ2h0IHJlZ2lvbnMgYXMgZGV0ZWN0ZWQgaW4g
dGhlIHByZXZpb3VzIHN0ZXAuCisKKyAgICAgICAgVGhlIHBhdGNoIGFsc28gcmVtb3ZlcyB0aGUg
bGF5b3V0IHBoYXNlIGZsYWcgZnJvbSBSZW5kZXJWaWV3IGFuZCBtb3ZlcyBpdCB0byB0aGUgZmxv
dyB0aHJlYWRzLiBUaGlzCisgICAgICAgIGhhcHBlbnMgYmVjYXVzZSBhIGZsb3cgbmVlZHMgdG8g
dXBkYXRlIGl0cyBhdXRvLWhlaWdodCByZWdpb25zIG92ZXJyaWRlTG9naWNhbEhlaWdodCB3aGls
ZSB1cGRhdGluZworICAgICAgICB0aGUgbG9naWNhbCBoZWlnaHQgb2YgdGhlIHJlZ2lvbnMgYmVs
b25naW5nIHRvIHRoZSBpbm5lciBmbG93cyB0aGF0IGFyZSBsYWlkIG91dCBieSB0aGUgZmxvdyAo
aS5lLiB0aGUKKyAgICAgICAgb3V0ZXIgZmxvdyBpcyBpbiB0aGUgbm9ybWFsIHBoYXNlIHdoaWxl
IHRoZSBpbm5lciBmbG93cyBhcmUgaW4gdGhlIGNvbnN0cmFpbmVkIGxheW91dCBwaGFzZSkuCisK
KyAgICAgICAgVGhlcmUncyBhbHNvIGEgbmV3IGZsYWcgb24gdGhlIFJlbmRlckZsb3dUaHJlYWQg
dGhhdCBpcyBzZXQgd2hlbiB0aGUgZmxvdyBuZWVkcyB0aGUgY29uc3RyYWluZWQgbGF5b3V0Cisg
ICAgICAgIHBoYXNlLiBUaGlzIGNvdWxkIGhhdmUgYmVlbiBwbGFjZWQgb24gdGhlIGZsb3cgdGhy
ZWFkIGNvbnRyb2xsZXIgYnV0IEkgdGhpbmsgaXQgd2lsbCBiZSB1c2VmdWwgd2hlbiBkb2luZwor
ICAgICAgICBjb250ZW50IGJhbGFuY2luZyBmb3IgdGhlIG5ldyBtdWx0aS1jb2x1bW4gaW1wbGVt
ZW50YXRpb24uCisKKyAgICAgICAgQW5vdGhlciBjaGFuZ2UgaXMgdGhlIG1vbWVudCB3ZSBjbGVh
ciB0aGUgb3ZlcnJpZGVMb2dpY2FsSGVpZ2h0IHZhbHVlIG9uIGVtcHR5IGF1dG8taGVpZ2h0IHJl
Z2lvbnMgYmVjYXVzZQorICAgICAgICB3ZSBkb24ndCBoYXZlIHRvIHJlbGF5b3V0IGEgZmxvdyB0
aHJlYWQgb25jZSBpdCdzIGluIHRoZSBjb25zdHJhaW5lZCBwaGFzZS4gV2UgbmVlZCB0byBoYXZl
IHRoZSBjb3JyZWN0CisgICAgICAgIGZsb3cgdGhyZWFkIHBvcnRpb25zIGNvcnJlY3RseSBjb21w
dXRlZCBhZnRlciB0aGUgYXJ0aWZpY2lhbCBmb3JjZWQgYnJlYWsgaXMgYXBwbGllZCBhdCB0aGUg
ZW5kIG9mIHRoZSBjb250ZW50LgorCisgICAgICAgIFRlc3RzOiBmYXN0L3JlZ2lvbnMvYXV0b2hl
aWdodC1taXhlZC1uZXN0ZWQtY29tcGxleC1yZWdpb25zLmh0bWwKKyAgICAgICAgICAgICAgIGZh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVkLW5lc3RlZC1yZWdpb25zLmh0bWwKKyAgICAgICAg
ICAgICAgIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVkLXBhcmFsbGVsLXJlZ2lvbnMuaHRt
bAorICAgICAgICAgICAgICAgZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbmVzdGVkLXJlZ2lvbnMu
aHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjpGbG93VGhyZWFkQ29udHJvbGxl
cik6CisgICAgICAgIChXZWJDb3JlOjpGbG93VGhyZWFkQ29udHJvbGxlcjo6bGF5b3V0UmVuZGVy
TmFtZWRGbG93VGhyZWFkcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZsb3dUaHJlYWRDb250cm9sbGVyOjpyZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjp1bnJlZ2lzdGVyTmFtZWRGbG93
Q29udGVudE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmxvd1RocmVhZENvbnRyb2xsZXI6OnVw
ZGF0ZUZsb3dUaHJlYWRzQ2hhaW5JZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJDb3JlOjpGbG93
VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlRmxvd1RocmVhZHNOZWVkaW5nTGF5b3V0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRhdGVGbG93VGhyZWFkc05lZWRp
bmdUd29TdGVwTGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OkZsb3dUaHJlYWRDb250cm9sbGVy
OjpyZXNldEZsb3dUaHJlYWRzV2l0aEF1dG9IZWlnaHRSZWdpb25zKToKKyAgICAgICAgKFdlYkNv
cmU6OkZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRhdGVGbG93VGhyZWFkc0ludG9Db25zdHJhaW5l
ZFBoYXNlKToKKyAgICAgICAgKiByZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKEZsb3dUaHJlYWRDb250cm9sbGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJGbG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckZsb3dUaHJlYWQ6OnZhbGlkYXRlUmVnaW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGbG93VGhyZWFkOjpsYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxv
d1RocmVhZDo6cmVnaW9uQXRCbG9ja09mZnNldCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
bG93VGhyZWFkOjphcHBseUJyZWFrQWZ0ZXJDb250ZW50KTogQXBwbHkgYW4gYXJ0aWZpY2lhbCBi
cmVhayBhdCB0aGUgZW5kIG9mIHRoZSBjb250ZW50LgorICAgICAgICBUaGlzIHdheSB3ZSBjYW4g
ZGV0ZWN0IHdoZW4gdGhlIGNvbnRlbnQgZW5kcyBhbmQgY2xlYXIgdGhlIG92ZXJyaWRlTG9naWNh
bEhlaWdodCBvbiB0aGUgZW1wdHkgYXV0by1oZWlnaHQgcmVnaW9ucy4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRlRm9yUmVnaW9ucyk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6Omlu
aXRpYWxpemVSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjptYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9y
TGF5b3V0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZVJlZ2lv
bnNGbG93VGhyZWFkUG9ydGlvblJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxvd1Ro
cmVhZDo6YWRkRm9yY2VkUmVnaW9uQnJlYWspOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJG
bG93VGhyZWFkLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OnBhZ2VMb2dpY2FsV2lkdGgpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpwYWdlTG9naWNhbEhlaWdodCk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJSZWdpb246Om1heFBhZ2VMb2dpY2FsSGVpZ2h0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclJlZ2lvbjo6bG9naWNhbEhlaWdodE9mQWxsRmxvd1RocmVhZENvbnRlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpsYXlvdXRCbG9jayk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJSZWdpb246OnVwZGF0ZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclZpZXc6OlJl
bmRlclZpZXcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJW
aWV3OjpsYXlvdXRDb250ZW50SW5BdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyVmlldzo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Vmlldy5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZW5kZXJWaWV3KToKKwogMjAx
My0wNC0wMiAgQW5kcmV5IEx1c2huaWtvdiAgPGx1c2huaWtvdkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogU2VwYXJhdGUgSmF2YVNjcmlwdFNvdXJjZUZyYW1lIHBvcG92
ZXIgZnJvbSBrbm93bGVkZ2Ugb2YgZWRpdG9yJ3MgRE9NCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvRmxvd1RocmVhZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmNwcAppbmRleCAzZTgzM2Y0ZDg3NDY5MTAx
MTczMzljMzBlM2JjMDk3NzMzMGE2N2FhLi42MmJiMzVlODE2NmUzOTg4YzQ0MzAzNmI3MjNiZWQ2
ZmYzZjQxNDk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRmxvd1RocmVh
ZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GbG93VGhyZWFk
Q29udHJvbGxlci5jcHAKQEAgLTQ5LDcgKzQ5LDYgQEAgRmxvd1RocmVhZENvbnRyb2xsZXI6OkZs
b3dUaHJlYWRDb250cm9sbGVyKFJlbmRlclZpZXcqIHZpZXcpCiAgICAgOiBtX3ZpZXcodmlldykK
ICAgICAsIG1fY3VycmVudFJlbmRlckZsb3dUaHJlYWQoMCkKICAgICAsIG1faXNSZW5kZXJOYW1l
ZEZsb3dUaHJlYWRPcmRlckRpcnR5KGZhbHNlKQotICAgICwgbV9uZWVkc1R3b1Bhc3NMYXlvdXRG
b3JBdXRvSGVpZ2h0UmVnaW9ucyhmYWxzZSkKICAgICAsIG1fZmxvd1RocmVhZHNXaXRoQXV0b0xv
Z2ljYWxIZWlnaHRSZWdpb25zKDApCiB7CiB9CkBAIC05OCw2ICs5NywzNyBAQCB2b2lkIEZsb3dU
aHJlYWRDb250cm9sbGVyOjpzdHlsZURpZENoYW5nZSgpCiAKIHZvaWQgRmxvd1RocmVhZENvbnRy
b2xsZXI6OmxheW91dFJlbmRlck5hbWVkRmxvd1RocmVhZHMoKQogeworICAgIHVwZGF0ZUZsb3dU
aHJlYWRzQ2hhaW5JZk5lY2Vzc2FyeSgpOworCisgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJl
YWRMaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdp
bigpOyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikg
eworICAgICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOwor
ICAgICAgICBmbG93UmVuZGVyZXItPmxheW91dElmTmVlZGVkKCk7CisgICAgfQorfQorCit2b2lk
IEZsb3dUaHJlYWRDb250cm9sbGVyOjpyZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnROb2RlKE5vZGUq
IGNvbnRlbnROb2RlLCBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIG5hbWVkRmxvdykKK3sKKyAgICBB
U1NFUlQoY29udGVudE5vZGUgJiYgY29udGVudE5vZGUtPmlzRWxlbWVudE5vZGUoKSk7CisgICAg
QVNTRVJUKG5hbWVkRmxvdyk7CisgICAgQVNTRVJUKCFtX21hcE5hbWVkRmxvd0NvbnRlbnROb2Rl
cy5jb250YWlucyhjb250ZW50Tm9kZSkpOworICAgIEFTU0VSVCghbmFtZWRGbG93LT5oYXNDb250
ZW50Tm9kZShjb250ZW50Tm9kZSkpOworICAgIG1fbWFwTmFtZWRGbG93Q29udGVudE5vZGVzLmFk
ZChjb250ZW50Tm9kZSwgbmFtZWRGbG93KTsKKyAgICBuYW1lZEZsb3ctPnJlZ2lzdGVyTmFtZWRG
bG93Q29udGVudE5vZGUoY29udGVudE5vZGUpOworfQorCit2b2lkIEZsb3dUaHJlYWRDb250cm9s
bGVyOjp1bnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5vZGUoTm9kZSogY29udGVudE5vZGUpCit7
CisgICAgQVNTRVJUKGNvbnRlbnROb2RlICYmIGNvbnRlbnROb2RlLT5pc0VsZW1lbnROb2RlKCkp
OworICAgIEhhc2hNYXA8Tm9kZSosIFJlbmRlck5hbWVkRmxvd1RocmVhZCo+OjppdGVyYXRvciBp
dCA9IG1fbWFwTmFtZWRGbG93Q29udGVudE5vZGVzLmZpbmQoY29udGVudE5vZGUpOworICAgIEFT
U0VSVChpdCAhPSBtX21hcE5hbWVkRmxvd0NvbnRlbnROb2Rlcy5lbmQoKSk7CisgICAgQVNTRVJU
KGl0LT52YWx1ZSk7CisgICAgQVNTRVJUKGl0LT52YWx1ZS0+aGFzQ29udGVudE5vZGUoY29udGVu
dE5vZGUpKTsKKyAgICBpdC0+dmFsdWUtPnVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9kZShj
b250ZW50Tm9kZSk7CisgICAgbV9tYXBOYW1lZEZsb3dDb250ZW50Tm9kZXMucmVtb3ZlKGNvbnRl
bnROb2RlKTsKK30KKwordm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6dXBkYXRlRmxvd1RocmVh
ZHNDaGFpbklmTmVjZXNzYXJ5KCkKK3sKICAgICBBU1NFUlQobV9yZW5kZXJOYW1lZEZsb3dUaHJl
YWRMaXN0KTsKICAgICBBU1NFUlQoaXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudENvbnNp
c3RlbnQoKSk7CiAKQEAgLTEzMSwzMiArMTYxLDcwIEBAIHZvaWQgRmxvd1RocmVhZENvbnRyb2xs
ZXI6OmxheW91dFJlbmRlck5hbWVkRmxvd1RocmVhZHMoKQogICAgICAgICBtX3JlbmRlck5hbWVk
Rmxvd1RocmVhZExpc3QtPnN3YXAoc29ydGVkTGlzdCk7CiAgICAgICAgIHNldElzUmVuZGVyTmFt
ZWRGbG93VGhyZWFkT3JkZXJEaXJ0eShmYWxzZSk7CiAgICAgfQorfQorCitib29sIEZsb3dUaHJl
YWRDb250cm9sbGVyOjp1cGRhdGVGbG93VGhyZWFkc05lZWRpbmdMYXlvdXQoKQoreworICAgIGJv
b2wgbmVlZHNUd29QYXNzTGF5b3V0ID0gZmFsc2U7CiAKICAgICBmb3IgKFJlbmRlck5hbWVkRmxv
d1RocmVhZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3Qt
PmJlZ2luKCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQoKTsgKytp
dGVyKSB7CiAgICAgICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogZmxvd1JlbmRlcmVyID0gKml0
ZXI7Ci0gICAgICAgIGZsb3dSZW5kZXJlci0+bGF5b3V0SWZOZWVkZWQoKTsKKyAgICAgICAgQVNT
RVJUKCFmbG93UmVuZGVyZXItPm5lZWRzVHdvUGhhc2VzTGF5b3V0KCkpOworICAgICAgICBmbG93
UmVuZGVyZXItPnNldEluQ29uc3RyYWluZWRMYXlvdXRQaGFzZShmYWxzZSk7CisgICAgICAgIGlm
IChmbG93UmVuZGVyZXItPm5lZWRzTGF5b3V0KCkgJiYgZmxvd1JlbmRlcmVyLT5oYXNBdXRvTG9n
aWNhbEhlaWdodFJlZ2lvbnMoKSkKKyAgICAgICAgICAgIG5lZWRzVHdvUGFzc0xheW91dCA9IHRy
dWU7CiAgICAgfQorCisgICAgaWYgKG5lZWRzVHdvUGFzc0xheW91dCkKKyAgICAgICAgcmVzZXRG
bG93VGhyZWFkc1dpdGhBdXRvSGVpZ2h0UmVnaW9ucygpOworCisgICAgcmV0dXJuIG5lZWRzVHdv
UGFzc0xheW91dDsKIH0KIAotdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6cmVnaXN0ZXJOYW1l
ZEZsb3dDb250ZW50Tm9kZShOb2RlKiBjb250ZW50Tm9kZSwgUmVuZGVyTmFtZWRGbG93VGhyZWFk
KiBuYW1lZEZsb3cpCitib29sIEZsb3dUaHJlYWRDb250cm9sbGVyOjp1cGRhdGVGbG93VGhyZWFk
c05lZWRpbmdUd29TdGVwTGF5b3V0KCkKIHsKLSAgICBBU1NFUlQoY29udGVudE5vZGUgJiYgY29u
dGVudE5vZGUtPmlzRWxlbWVudE5vZGUoKSk7Ci0gICAgQVNTRVJUKG5hbWVkRmxvdyk7Ci0gICAg
QVNTRVJUKCFtX21hcE5hbWVkRmxvd0NvbnRlbnROb2Rlcy5jb250YWlucyhjb250ZW50Tm9kZSkp
OwotICAgIEFTU0VSVCghbmFtZWRGbG93LT5oYXNDb250ZW50Tm9kZShjb250ZW50Tm9kZSkpOwot
ICAgIG1fbWFwTmFtZWRGbG93Q29udGVudE5vZGVzLmFkZChjb250ZW50Tm9kZSwgbmFtZWRGbG93
KTsKLSAgICBuYW1lZEZsb3ctPnJlZ2lzdGVyTmFtZWRGbG93Q29udGVudE5vZGUoY29udGVudE5v
ZGUpOworICAgIGJvb2wgbmVlZHNUd29QYXNzTGF5b3V0ID0gZmFsc2U7CisKKyAgICBmb3IgKFJl
bmRlck5hbWVkRmxvd1RocmVhZExpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxv
d1RocmVhZExpc3QtPmJlZ2luKCk7IGl0ZXIgIT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0
LT5lbmQoKTsgKytpdGVyKSB7CisgICAgICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogZmxvd1Jl
bmRlcmVyID0gKml0ZXI7CisgICAgICAgIGlmIChmbG93UmVuZGVyZXItPm5lZWRzVHdvUGhhc2Vz
TGF5b3V0KCkpIHsKKyAgICAgICAgICAgIG5lZWRzVHdvUGFzc0xheW91dCA9IHRydWU7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChuZWVkc1R3b1Bhc3NM
YXlvdXQpCisgICAgICAgIHJlc2V0Rmxvd1RocmVhZHNXaXRoQXV0b0hlaWdodFJlZ2lvbnMoKTsK
KworICAgIHJldHVybiBuZWVkc1R3b1Bhc3NMYXlvdXQ7CiB9CiAKLXZvaWQgRmxvd1RocmVhZENv
bnRyb2xsZXI6OnVucmVnaXN0ZXJOYW1lZEZsb3dDb250ZW50Tm9kZShOb2RlKiBjb250ZW50Tm9k
ZSkKK3ZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OnJlc2V0Rmxvd1RocmVhZHNXaXRoQXV0b0hl
aWdodFJlZ2lvbnMoKQogewotICAgIEFTU0VSVChjb250ZW50Tm9kZSAmJiBjb250ZW50Tm9kZS0+
aXNFbGVtZW50Tm9kZSgpKTsKLSAgICBIYXNoTWFwPE5vZGUqLCBSZW5kZXJOYW1lZEZsb3dUaHJl
YWQqPjo6aXRlcmF0b3IgaXQgPSBtX21hcE5hbWVkRmxvd0NvbnRlbnROb2Rlcy5maW5kKGNvbnRl
bnROb2RlKTsKLSAgICBBU1NFUlQoaXQgIT0gbV9tYXBOYW1lZEZsb3dDb250ZW50Tm9kZXMuZW5k
KCkpOwotICAgIEFTU0VSVChpdC0+dmFsdWUpOwotICAgIEFTU0VSVChpdC0+dmFsdWUtPmhhc0Nv
bnRlbnROb2RlKGNvbnRlbnROb2RlKSk7Ci0gICAgaXQtPnZhbHVlLT51bnJlZ2lzdGVyTmFtZWRG
bG93Q29udGVudE5vZGUoY29udGVudE5vZGUpOwotICAgIG1fbWFwTmFtZWRGbG93Q29udGVudE5v
ZGVzLnJlbW92ZShjb250ZW50Tm9kZSk7CisgICAgZm9yIChSZW5kZXJOYW1lZEZsb3dUaHJlYWRM
aXN0OjppdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5iZWdpbigp
OyBpdGVyICE9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+ZW5kKCk7ICsraXRlcikgewor
ICAgICAgICBSZW5kZXJOYW1lZEZsb3dUaHJlYWQqIGZsb3dSZW5kZXJlciA9ICppdGVyOworICAg
ICAgICBpZiAoZmxvd1JlbmRlcmVyLT5oYXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSkgewor
ICAgICAgICAgICAgZmxvd1JlbmRlcmVyLT5tYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9y
TGF5b3V0KCk7CisgICAgICAgICAgICBmbG93UmVuZGVyZXItPmludmFsaWRhdGVSZWdpb25zKCk7
CisgICAgICAgIH0KKyAgICB9Cit9CisKK3ZvaWQgRmxvd1RocmVhZENvbnRyb2xsZXI6OnVwZGF0
ZUZsb3dUaHJlYWRzSW50b0NvbnN0cmFpbmVkUGhhc2UoKQoreworICAgIC8vIFdhbGsgdGhlIGZs
b3cgY2hhaW4gaW4gcmV2ZXJzZSBvcmRlciB0byB1cGRhdGUgdGhlIGF1dG8taGVpZ2h0IHJlZ2lv
bnMgYW5kIGNvbXB1dGUgY29ycmVjdCBzaXplcyBmb3IgdGhlIGNvbnRhaW5pbmcgcmVnaW9ucy4g
T25seSBhZnRlciB0aGlzIHdlIGNhbgorICAgIC8vIHNldCB0aGUgZmxvdyBpbiB0aGUgY29uc3Ry
YWluZWQgbGF5b3V0IHBoYXNlLgorICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6
cmV2ZXJzZV9pdGVyYXRvciBpdGVyID0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5yYmVn
aW4oKTsgaXRlciAhPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPnJlbmQoKTsgKytpdGVy
KSB7CisgICAgICAgIFJlbmRlck5hbWVkRmxvd1RocmVhZCogZmxvd1JlbmRlcmVyID0gKml0ZXI7
CisgICAgICAgIEFTU0VSVCghZmxvd1JlbmRlcmVyLT5oYXNSZWdpb25zKCkgfHwgZmxvd1JlbmRl
cmVyLT5oYXNWYWxpZFJlZ2lvbkluZm8oKSk7CisgICAgICAgIGZsb3dSZW5kZXJlci0+bGF5b3V0
SWZOZWVkZWQoKTsKKyAgICAgICAgaWYgKGZsb3dSZW5kZXJlci0+aGFzQXV0b0xvZ2ljYWxIZWln
aHRSZWdpb25zKCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChmbG93UmVuZGVyZXItPm5lZWRzVHdv
UGhhc2VzTGF5b3V0KCkpOworICAgICAgICAgICAgZmxvd1JlbmRlcmVyLT5tYXJrQXV0b0xvZ2lj
YWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KCk7CisgICAgICAgIH0KKyAgICAgICAgZmxvd1JlbmRl
cmVyLT5zZXRJbkNvbnN0cmFpbmVkTGF5b3V0UGhhc2UodHJ1ZSk7CisgICAgICAgIGZsb3dSZW5k
ZXJlci0+Y2xlYXJOZWVkc1R3b1BoYXNlc0xheW91dCgpOworICAgIH0KIH0KIAogI2lmbmRlZiBO
REVCVUcKQEAgLTE3NCwzMSArMjQyLDQgQEAgYm9vbCBGbG93VGhyZWFkQ29udHJvbGxlcjo6aXNB
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudENvbnNpc3RlbnQoKSBjb25zdAogfQogI2VuZGlm
CiAKLWJvb2wgRmxvd1RocmVhZENvbnRyb2xsZXI6Omhhc1JlbmRlck5hbWVkRmxvd1RocmVhZHNO
ZWVkaW5nTGF5b3V0KCkgY29uc3QKLXsKLSAgICBBU1NFUlQobV92aWV3LT5ub3JtYWxMYXlvdXRQ
aGFzZSgpKTsKLSAgICBmb3IgKFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q6Oml0ZXJhdG9yIGl0
ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmJlZ2luKCk7IGl0ZXIgIT0gbV9yZW5k
ZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQoKTsgKytpdGVyKQotICAgICAgICBpZiAoKCppdGVy
KS0+bmVlZHNMYXlvdXQoKSkKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBm
YWxzZTsKLX0KLQotdm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6cmVzZXRSZWdpb25zT3ZlcnJp
ZGVMb2dpY2FsQ29udGVudEhlaWdodCgpCi17Ci0gICAgQVNTRVJUKG1fdmlldy0+bm9ybWFsTGF5
b3V0UGhhc2UoKSk7Ci0gICAgQVNTRVJUKGhhc0Zsb3dUaHJlYWRzV2l0aEF1dG9Mb2dpY2FsSGVp
Z2h0UmVnaW9ucygpKTsKLQotICAgIGZvciAoUmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDo6aXRl
cmF0b3IgaXRlciA9IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdC0+YmVnaW4oKTsgaXRlciAh
PSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmVuZCgpOyArK2l0ZXIpCi0gICAgICAgICgq
aXRlciktPnJlc2V0UmVnaW9uc092ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKLX0KLQot
dm9pZCBGbG93VGhyZWFkQ29udHJvbGxlcjo6bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0Zv
ckxheW91dCgpCi17Ci0gICAgQVNTRVJUKG1fdmlldy0+Y29uc3RyYWluZWRGbG93VGhyZWFkc0xh
eW91dFBoYXNlKCkpOwotICAgIEFTU0VSVChoYXNGbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhl
aWdodFJlZ2lvbnMoKSk7Ci0KLSAgICBmb3IgKFJlbmRlck5hbWVkRmxvd1RocmVhZExpc3Q6Oml0
ZXJhdG9yIGl0ZXIgPSBtX3JlbmRlck5hbWVkRmxvd1RocmVhZExpc3QtPmJlZ2luKCk7IGl0ZXIg
IT0gbV9yZW5kZXJOYW1lZEZsb3dUaHJlYWRMaXN0LT5lbmQoKTsgKytpdGVyKQotICAgICAgICAo
Kml0ZXIpLT5tYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KCk7Ci19Ci0KIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9GbG93VGhyZWFkQ29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dU
aHJlYWRDb250cm9sbGVyLmgKaW5kZXggMjQyODEwZjA2NGVkYjJkMzBiNTllM2U0MDZmYWQ2OTI4
OTMxYTBhNy4uY2Y1NTEwNDZiY2RmODhmMWU1ZTYyY2VkODg0MWFhZjcyZmI4MzZmMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0Zsb3dUaHJlYWRDb250cm9sbGVyLmgKQEAgLTcx
LDI2ICs3MSwyMyBAQCBwdWJsaWM6CiAgICAgdm9pZCBpbmNyZW1lbnRGbG93VGhyZWFkc1dpdGhB
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnMoKSB7ICsrbV9mbG93VGhyZWFkc1dpdGhBdXRvTG9naWNh
bEhlaWdodFJlZ2lvbnM7IH0KICAgICB2b2lkIGRlY3JlbWVudEZsb3dUaHJlYWRzV2l0aEF1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9ucygpIHsgQVNTRVJUKG1fZmxvd1RocmVhZHNXaXRoQXV0b0xvZ2lj
YWxIZWlnaHRSZWdpb25zID4gMCk7IC0tbV9mbG93VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdo
dFJlZ2lvbnM7IH0KIAotICAgIGJvb2wgaGFzUmVuZGVyTmFtZWRGbG93VGhyZWFkc05lZWRpbmdM
YXlvdXQoKSBjb25zdDsKKyAgICBib29sIHVwZGF0ZUZsb3dUaHJlYWRzTmVlZGluZ0xheW91dCgp
OworICAgIGJvb2wgdXBkYXRlRmxvd1RocmVhZHNOZWVkaW5nVHdvU3RlcExheW91dCgpOworICAg
IHZvaWQgdXBkYXRlRmxvd1RocmVhZHNJbnRvQ29uc3RyYWluZWRQaGFzZSgpOwogCiAjaWZuZGVm
IE5ERUJVRwogICAgIGJvb2wgaXNBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudENvbnNpc3Rl
bnQoKSBjb25zdDsKICNlbmRpZgogCi0gICAgdm9pZCByZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2lj
YWxDb250ZW50SGVpZ2h0KCk7Ci0gICAgdm9pZCBtYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25z
Rm9yTGF5b3V0KCk7Ci0KLSAgICBib29sIG5lZWRzVHdvUGFzc0xheW91dEZvckF1dG9IZWlnaHRS
ZWdpb25zKCkgY29uc3QgeyByZXR1cm4gbV9uZWVkc1R3b1Bhc3NMYXlvdXRGb3JBdXRvSGVpZ2h0
UmVnaW9uczsgfQotICAgIHZvaWQgc2V0TmVlZHNUd29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJl
Z2lvbnMoYm9vbCBuZWVkc1R3b1Bhc3NMYXlvdXQpIHsgbV9uZWVkc1R3b1Bhc3NMYXlvdXRGb3JB
dXRvSGVpZ2h0UmVnaW9ucyA9IG5lZWRzVHdvUGFzc0xheW91dDsgfQotCiBwcm90ZWN0ZWQ6CiAg
ICAgRmxvd1RocmVhZENvbnRyb2xsZXIoUmVuZGVyVmlldyopOworICAgIHZvaWQgdXBkYXRlRmxv
d1RocmVhZHNDaGFpbklmTmVjZXNzYXJ5KCk7CisgICAgdm9pZCByZXNldEZsb3dUaHJlYWRzV2l0
aEF1dG9IZWlnaHRSZWdpb25zKCk7CiAKIHByaXZhdGU6CiAgICAgUmVuZGVyVmlldyogbV92aWV3
OwogICAgIFJlbmRlckZsb3dUaHJlYWQqIG1fY3VycmVudFJlbmRlckZsb3dUaHJlYWQ7CiAgICAg
Ym9vbCBtX2lzUmVuZGVyTmFtZWRGbG93VGhyZWFkT3JkZXJEaXJ0eTsKLSAgICBib29sIG1fbmVl
ZHNUd29QYXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJlZ2lvbnM7CiAgICAgdW5zaWduZWQgbV9mbG93
VGhyZWFkc1dpdGhBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnM7CiAgICAgT3duUHRyPFJlbmRlck5h
bWVkRmxvd1RocmVhZExpc3Q+IG1fcmVuZGVyTmFtZWRGbG93VGhyZWFkTGlzdDsKICAgICAvLyBt
YXBzIGEgY29udGVudCBub2RlIHRvIGl0cyByZW5kZXIgZmxvdyB0aHJlYWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAxMzJjN2E1MDA3MmJiNjA1N2E5ZDIx
NDg5ZTUwNmNiY2EwNDcwZTEwLi40YmVkNmUwZjc4YWVmZjAxNjA4ODEyZWFhYjdkMmVjZGEwOGE5
MmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAgLTE1ODks
MTAgKzE1ODksMTYgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91
dENoaWxkcmVuLCBMYXlvdXRVbml0IHBhZ2VMb2dpY2FsSGVpZ2gKICAgICAKICAgICBpZiAocmVs
YXlvdXRGb3JQYWdpbmF0aW9uKGhhc1NwZWNpZmllZFBhZ2VMb2dpY2FsSGVpZ2h0LCBwYWdlTG9n
aWNhbEhlaWdodCwgc3RhdGVQdXNoZXIpKQogICAgICAgICByZXR1cm47Ci0gCisKICAgICAvLyBD
YWxjdWxhdGUgb3VyIG5ldyBoZWlnaHQuCiAgICAgTGF5b3V0VW5pdCBvbGRIZWlnaHQgPSBsb2dp
Y2FsSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UgPSBjbGllbnRM
b2dpY2FsQm90dG9tKCk7CisKKyAgICAvLyBCZWZvcmUgdXBkYXRpbmcgdGhlIGZpbmFsIHNpemUg
b2YgdGhlIGZsb3cgdGhyZWFkIG1ha2Ugc3VyZSBhIGZvcmNlZCBicmVhayBpcyBhcHBsaWVkIGFm
dGVyIHRoZSBjb250ZW50LgorICAgIC8vIFRoaXMgZW5zdXJlcyB0aGUgc2l6ZSBpbmZvcm1hdGlv
biBpcyBjb3JyZWN0bHkgY29tcHV0ZWQgZm9yIHRoZSBsYXN0IGF1dG8taGVpZ2h0IHJlZ2lvbiBy
ZWNlaXZpbmcgY29udGVudC4KKyAgICBpZiAoaXNSZW5kZXJGbG93VGhyZWFkKCkpCisgICAgICAg
IHRvUmVuZGVyRmxvd1RocmVhZCh0aGlzKS0+YXBwbHlCcmVha0FmdGVyQ29udGVudChvbGRDbGll
bnRBZnRlckVkZ2UpOworCiAgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgIExheW91dFVu
aXQgbmV3SGVpZ2h0ID0gbG9naWNhbEhlaWdodCgpOwogICAgIGlmIChvbGRIZWlnaHQgIT0gbmV3
SGVpZ2h0KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5j
cHAKaW5kZXggMjY4NDEzY2IyYTA4NjFmMTY1NjVmMzA0ZmVkODVkOGU0MzBjOTQwMC4uYmU2ZDg3
YzgzNDE2ZjhiZjQ0Y2U1MTU3NzRlZWU2MWRmMmI1MWM4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtNTUsNiArNTUsOCBAQCBSZW5kZXJG
bG93VGhyZWFkOjpSZW5kZXJGbG93VGhyZWFkKCkKICAgICAsIG1faGFzUmVnaW9uc1dpdGhTdHls
aW5nKGZhbHNlKQogICAgICwgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KGZhbHNl
KQogICAgICwgbV9wYWdlTG9naWNhbFNpemVDaGFuZ2VkKGZhbHNlKQorICAgICwgbV9pbkNvbnN0
cmFpbmVkTGF5b3V0UGhhc2UoZmFsc2UpCisgICAgLCBtX25lZWRzVHdvUGhhc2VzTGF5b3V0KGZh
bHNlKQogewogICAgIHNldEZsb3dUaHJlYWRTdGF0ZShJbnNpZGVPdXRPZkZsb3dUaHJlYWQpOwog
fQpAQCAtMTYxLDcgKzE2Myw3IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6dmFsaWRhdGVSZWdp
b25zKCkKICAgICAgICAgICAgICAgICAvLyBTZWUgaW5pdGlhbGl6ZVJlZ2lvbnNPdmVycmlkZUxv
Z2ljYWxDb250ZW50SGVpZ2h0IGZvciB0aGUgZXhwbGFuYXRpb24uCiAgICAgICAgICAgICAgICAg
Ly8gQWxzbywgaWYgd2UgaGF2ZSBhdXRvLWhlaWdodCByZWdpb25zIHdlIGNhbid0IGFzc3VtZSBt
X3JlZ2lvbnNIYXZlVW5pZm9ybUxvZ2ljYWxIZWlnaHQgdG8gYmUgdHJ1ZSBpbiB0aGUgZmlyc3Qg
cGhhc2UKICAgICAgICAgICAgICAgICAvLyBiZWNhdXNlIHRoZSBhdXRvLWhlaWdodCByZWdpb25z
IGRvbid0IGhhdmUgdGhlaXIgaGVpZ2h0IGNvbXB1dGVkIHlldC4KLSAgICAgICAgICAgICAgICBp
ZiAodmlldygpLT5ub3JtYWxMYXlvdXRQaGFzZSgpICYmIHJlZ2lvbi0+aGFzQXV0b0xvZ2ljYWxI
ZWlnaHQoKSkgeworICAgICAgICAgICAgICAgIGlmICghaW5Db25zdHJhaW5lZExheW91dFBoYXNl
KCkgJiYgcmVnaW9uLT5oYXNBdXRvTG9naWNhbEhlaWdodCgpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIHJlZ2lvbi0+c2V0T3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodChyZWdpb24tPm1heFBh
Z2VMb2dpY2FsSGVpZ2h0KCkpOwogICAgICAgICAgICAgICAgICAgICBtX3JlZ2lvbnNIYXZlVW5p
Zm9ybUxvZ2ljYWxIZWlnaHQgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9CkBAIC0xOTIsOCAr
MTk0LDE4IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6bGF5b3V0KCkKICAgICBTdGFja1N0YXRz
OjpMYXlvdXRDaGVja1BvaW50IGxheW91dENoZWNrUG9pbnQ7CiAKICAgICBtX3BhZ2VMb2dpY2Fs
U2l6ZUNoYW5nZWQgPSBtX3JlZ2lvbnNJbnZhbGlkYXRlZCAmJiBldmVySGFkTGF5b3V0KCk7CisK
KyAgICAvLyBJbiBjYXNlIHRoaXMgaXMgdGhlIHNlY29uZCBwYXNzIG9mIHRoZSBub3JtYWwgcGhh
c2Ugd2UgbmVlZCB0byB1cGRhdGUgdGhlIGF1dG8taGVpZ2h0IHJlZ2lvbnMgdG8gdGhlaXIgaW5p
dGlhbCB2YWx1ZS4KKyAgICAvLyBJZiB0aGUgcmVnaW9uIGNoYWluIHdhcyBpbnZhbGlkYXRlZCB0
aGlzIHdpbGwgaGFwcGVuIGFueXdheS4KKyAgICBpZiAoIW1fcmVnaW9uc0ludmFsaWRhdGVkICYm
ICFpbkNvbnN0cmFpbmVkTGF5b3V0UGhhc2UoKSkKKyAgICAgICAgaW5pdGlhbGl6ZVJlZ2lvbnNP
dmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CisKICAgICB2YWxpZGF0ZVJlZ2lvbnMoKTsK
IAorICAgIC8vIFRoaXMgaXMgdGhlIGZpcnN0IHBoYXNlIG9mIHRoZSBsYXlvdXQgYW5kIGJlY2F1
c2Ugd2UgaGF2ZSBhdXRvLWhlaWdodCByZWdpb25zIHdlJ2xsIG5lZWQgYSBzZWNvbmQKKyAgICAv
LyBwYXNzIHRvIHVwZGF0ZSB0aGUgZmxvdyB3aXRoIHRoZSBjb21wdXRlZCBhdXRvLWhlaWdodCBy
ZWdpb25zLgorICAgIG1fbmVlZHNUd29QaGFzZXNMYXlvdXQgPSAhaW5Db25zdHJhaW5lZExheW91
dFBoYXNlKCkgJiYgaGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCk7CisKICAgICBDdXJyZW50
UmVuZGVyRmxvd1RocmVhZE1haW50YWluZXIgY3VycmVudEZsb3dUaHJlYWRTZXR0ZXIodGhpcyk7
CiAgICAgUmVuZGVyQmxvY2s6OmxheW91dCgpOwogCkBAIC0zNzksNyArMzkxLDcgQEAgUmVuZGVy
UmVnaW9uKiBSZW5kZXJGbG93VGhyZWFkOjpyZWdpb25BdEJsb2NrT2Zmc2V0KExheW91dFVuaXQg
b2Zmc2V0LCBib29sIGV4dGUKICAgICAgICAgaWYgKGV4dGVuZExhc3RSZWdpb24gfHwgcmVnaW9u
LT5pc1JlbmRlclJlZ2lvblNldCgpKQogICAgICAgICAgICAgbGFzdFZhbGlkUmVnaW9uID0gcmVn
aW9uOwogCi0gICAgICAgIGlmIChyZWdpb24tPmhhc092ZXJyaWRlSGVpZ2h0KCkgJiYgdmlldygp
LT5ub3JtYWxMYXlvdXRQaGFzZSgpKSB7CisgICAgICAgIGlmIChyZWdpb24tPmhhc092ZXJyaWRl
SGVpZ2h0KCkgJiYgIWluQ29uc3RyYWluZWRMYXlvdXRQaGFzZSgpKSB7CiAgICAgICAgICAgICBh
Y2N1bXVsYXRlZExvZ2ljYWxIZWlnaHQgKz0gcmVnaW9uLT5vdmVycmlkZUxvZ2ljYWxDb250ZW50
SGVpZ2h0KCk7CiAgICAgICAgICAgICBpZiAob2Zmc2V0IDwgYWNjdW11bGF0ZWRMb2dpY2FsSGVp
Z2h0KQogICAgICAgICAgICAgICAgIHJldHVybiByZWdpb247CkBAIC02NDUsMjAgKzY1NywxNiBA
QCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmdldFJlZ2lvblJhbmdlRm9yQm94KGNvbnN0IFJlbmRl
ckJveCogYm94LCBSZW5kZXJSZWdpb24qJgogICAgIEFTU0VSVChtX3JlZ2lvbkxpc3QuY29udGFp
bnMoc3RhcnRSZWdpb24pICYmIG1fcmVnaW9uTGlzdC5jb250YWlucyhlbmRSZWdpb24pKTsKIH0K
IAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21wdXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMo
TGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UpCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmFw
cGx5QnJlYWtBZnRlckNvbnRlbnQoTGF5b3V0VW5pdCBjbGllbnRIZWlnaHQpCiB7Ci0gICAgTGF5
b3V0VW5pdCBoZWlnaHQgPSBvbGRDbGllbnRBZnRlckVkZ2U7Ci0KLSAgICBMYXlvdXRVbml0IG9m
ZnNldEJyZWFrQWRqdXN0bWVudCA9IDA7CiAgICAgLy8gU2ltdWxhdGUgYSByZWdpb24gYnJlYWsg
YXQgaGVpZ2h0LiBJZiBpdCBwb2ludHMgaW5zaWRlIGFuIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVn
aW9uLAogICAgIC8vIHRoZW4gaXQgbWF5IGRldGVybWluZSB0aGUgcmVnaW9uIG92ZXJyaWRlIGxv
Z2ljYWwgY29udGVudCBoZWlnaHQuCi0gICAgYWRkRm9yY2VkUmVnaW9uQnJlYWsoaGVpZ2h0LCB0
aGlzLCBmYWxzZSwgJm9mZnNldEJyZWFrQWRqdXN0bWVudCk7CisgICAgYWRkRm9yY2VkUmVnaW9u
QnJlYWsoY2xpZW50SGVpZ2h0LCB0aGlzLCBmYWxzZSk7Cit9CiAKLSAgICAvLyBEdXJpbmcgdGhl
IG5vcm1hbCBsYXlvdXQgcGhhc2Ugb2YgdGhlIGZsb3cgdGhyZWFkIGFsbCB0aGUgYXV0by1oZWln
aHQgcmVnaW9ucyBoYXZlIHRoZSBvdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0IHNldCB0byBt
YXggaGVpZ2h0LgotICAgIC8vIFdlIG5lZWQgdG8gY2xlYXIgdGhlIG92ZXJyaWRlTG9naWNhbENv
bnRlbnRIZWlnaHQgZm9yIGFsbCB0aGUgcmVnaW9ucyB0aGF0IGRpZG4ndCByZWNlaXZlIGFueSBj
b250ZW50LCBzdGFydGluZyB3aXRoIGZpcnN0RW1wdHlSZWdpb24uCi0gICAgUmVuZGVyUmVnaW9u
KiBmaXJzdEVtcHR5UmVnaW9uID0gMDsKLSAgICBpZiAodmlldygpLT5ub3JtYWxMYXlvdXRQaGFz
ZSgpKQotICAgICAgICBmaXJzdEVtcHR5UmVnaW9uID0gcmVnaW9uQXRCbG9ja09mZnNldChoZWln
aHQgKyBvZmZzZXRCcmVha0FkanVzdG1lbnQpOwordm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21w
dXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2Up
Cit7CisgICAgTGF5b3V0VW5pdCBoZWlnaHQgPSBvbGRDbGllbnRBZnRlckVkZ2U7CiAKICAgICAv
LyBGSVhNRTogdGhlIHZpc3VhbCBvdmVyZmxvdyBvZiBtaWRkbGUgcmVnaW9uIChpZiBpdCBpcyB0
aGUgbGFzdCBvbmUgdG8gY29udGFpbiBhbnkgY29udGVudCBpbiBhIHJlbmRlciBmbG93IHRocmVh
ZCkKICAgICAvLyBtaWdodCBub3QgYmUgdGFrZW4gaW50byBhY2NvdW50IGJlY2F1c2UgdGhlIHJl
bmRlciBmbG93IHRocmVhZCBoZWlnaHQgaXMgZ3JlYXRlciB0aGF0IHRoYXQgcmVnaW9ucyBoZWln
aHQgKyBpdHMgdmlzdWFsIG92ZXJmbG93CkBAIC02NjksNyArNjc3LDYgQEAgdm9pZCBSZW5kZXJG
bG93VGhyZWFkOjpjb21wdXRlT3ZlcmZsb3dTdGF0ZUZvclJlZ2lvbnMoTGF5b3V0VW5pdCBvbGRD
bGllbnRBZnRlckUKICAgICAgICAgICAgIHx8ICghaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSAm
JiB2aXN1YWxPdmVyZmxvd1JlY3QoKS5tYXhYKCkgPiBjbGllbnRCb3hSZWN0KCkubWF4WCgpKSkp
CiAgICAgICAgIGhlaWdodCA9IGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPyB2aXN1YWxPdmVy
Zmxvd1JlY3QoKS5tYXhZKCkgOiB2aXN1YWxPdmVyZmxvd1JlY3QoKS5tYXhYKCk7CiAKLSAgICBi
b29sIGluRW1wdHlSZWdpb25zU2VjdGlvbiA9IGZhbHNlOwogICAgIFJlbmRlclJlZ2lvbiogbGFz
dFJlZyA9IGxhc3RSZWdpb24oKTsKICAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9y
IGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7
ICsraXRlcikgewogICAgICAgICBSZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOwpAQCAtNjg5
LDEzICs2OTYsNiBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVPdmVyZmxvd1N0YXRl
Rm9yUmVnaW9ucyhMYXlvdXRVbml0IG9sZENsaWVudEFmdGVyRQogICAgICAgICAgICAgfHwgc3Rh
dGUgPT0gUmVuZGVyUmVnaW9uOjpSZWdpb25GaXQKICAgICAgICAgICAgIHx8IHN0YXRlID09IFJl
bmRlclJlZ2lvbjo6UmVnaW9uT3ZlcnNldCkKICAgICAgICAgICAgIHNldERpc3BhdGNoUmVnaW9u
TGF5b3V0VXBkYXRlRXZlbnQodHJ1ZSk7Ci0KLSAgICAgICAgaWYgKHJlZ2lvbiA9PSBmaXJzdEVt
cHR5UmVnaW9uKQotICAgICAgICAgICAgaW5FbXB0eVJlZ2lvbnNTZWN0aW9uID0gdHJ1ZTsKLQot
ICAgICAgICAvLyBDbGVhciB0aGUgb3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodCB2YWx1ZSBm
b3IgYXV0b2hlaWdodCByZWdpb25zIHRoYXQgZGlkbid0IHJlY2VpdmUgYW55IGNvbnRlbnQuCi0g
ICAgICAgIGlmIChpbkVtcHR5UmVnaW9uc1NlY3Rpb24gJiYgcmVnaW9uLT5oYXNBdXRvTG9naWNh
bEhlaWdodCgpKQotICAgICAgICAgICAgcmVnaW9uLT5jbGVhck92ZXJyaWRlTG9naWNhbENvbnRl
bnRIZWlnaHQoKTsKICAgICB9CiAKICAgICAvLyBXaXRoIHRoZSByZWdpb25zIG92ZXJmbG93IHN0
YXRlIGNvbXB1dGVkIHdlIGNhbiBhbHNvIHNldCB0aGUgb3ZlcnNldCBmbGFnIGZvciB0aGUgbmFt
ZWQgZmxvdy4KQEAgLTc5MSwzNSArNzkxLDEyIEBAIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6aXNB
dXRvTG9naWNhbEhlaWdodFJlZ2lvbnNDb3VudENvbnNpc3RlbnQoKSBjb25zdAogfQogI2VuZGlm
CiAKLXZvaWQgUmVuZGVyRmxvd1RocmVhZDo6cmVzZXRSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29u
dGVudEhlaWdodCgpCi17Ci0gICAgQVNTRVJUKHZpZXcoKS0+bGF5b3V0U3RhdGUoKSk7Ci0gICAg
QVNTRVJUKHZpZXcoKS0+bm9ybWFsTGF5b3V0UGhhc2UoKSk7Ci0KLSAgICBpZiAoIWhhc0F1dG9M
b2dpY2FsSGVpZ2h0UmVnaW9ucygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKFJlbmRl
clJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3QuYmVnaW4oKTsgaXRlciAh
PSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgewotICAgICAgICBSZW5kZXJSZWdpb24qIHJl
Z2lvbiA9ICppdGVyOwotICAgICAgICBpZiAoIXJlZ2lvbi0+aGFzQXV0b0xvZ2ljYWxIZWlnaHQo
KSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgIHJlZ2lvbi0+Y2xlYXJPdmVycmlk
ZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBuZWVkIHRvIGZp
bmQgYSB3YXkgdG8gYXZvaWQgbWFya2luZyBhbGwgdGhlIHJlZ2lvbnMgYW5jZXN0b3JzIGZvciBs
YXlvdXQKLSAgICAgICAgLy8gYXMgd2UgYXJlIGFscmVhZHkgaW5zaWRlIGxheW91dC4KLSAgICAg
ICAgcmVnaW9uLT5zZXROZWVkc0xheW91dCh0cnVlKTsKLSAgICB9Ci0gICAgLy8gTWFrZSBzdXJl
IHdlIGRvbid0IHNraXAgYW55IHJlZ2lvbiBicmVha3Mgd2hlbiB3ZSBkbyB0aGUgbGF5b3V0IGFn
YWluLgotICAgIC8vIFVzaW5nIG1fcmVnaW9uc0ludmFsaWRhdGVkIHRvIGZvcmNlIGFsbCB0aGUg
UmVuZGVyRmxvd1RocmVhZCBjaGlsZHJlbiBkbyB0aGUgbGF5b3V0IGFnYWluLgotICAgIGludmFs
aWRhdGVSZWdpb25zKCk7Ci19Ci0KIC8vIER1cmluZyB0aGUgbm9ybWFsIGxheW91dCBwaGFzZSBv
ZiB0aGUgbmFtZWQgZmxvdyB0aGUgcmVnaW9ucyBhcmUgaW5pdGlhbGl6ZWQgd2l0aCBhIGhlaWdo
dCBlcXVhbCB0byB0aGVpciBtYXgtaGVpZ2h0LgogLy8gVGhpcyB3YXkgdW5mb3JjZWQgYnJlYWtz
IGFyZSBhdXRvbWF0aWNhbGx5IHBsYWNlZCB3aGVuIGEgcmVnaW9uIGlzIGZ1bGwgYW5kIHRoZSBj
b250ZW50IGhlaWdodC9wb3NpdGlvbiBjb3JyZWN0bHkgZXN0aW1hdGVkLgogLy8gQWxzbywgdGhl
IHJlZ2lvbiB3aGVyZSBhIGZvcmNlZCBicmVhayBmYWxscyBpcyBleGFjdGx5IHRoZSByZWdpb24g
Zm91bmQgYXQgdGhlIGZvcmNlZCBicmVhayBvZmZzZXQgaW5zaWRlIHRoZSBmbG93IGNvbnRlbnQu
CiB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmluaXRpYWxpemVSZWdpb25zT3ZlcnJpZGVMb2dpY2Fs
Q29udGVudEhlaWdodChSZW5kZXJSZWdpb24qIHN0YXJ0UmVnaW9uKQogewotICAgIEFTU0VSVCh2
aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkpOworICAgIEFTU0VSVCghaW5Db25zdHJhaW5lZExh
eW91dFBoYXNlKCkpOwogICAgIGlmICghaGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpCiAg
ICAgICAgIHJldHVybjsKIApAQCAtODMzLDExICs4MTAsNyBAQCB2b2lkIFJlbmRlckZsb3dUaHJl
YWQ6OmluaXRpYWxpemVSZWdpb25zT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodChSZW5kZXJS
ZWdpbwogCiB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6Om1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lv
bnNGb3JMYXlvdXQoKQogewotICAgIEFTU0VSVCh2aWV3KCktPmxheW91dFN0YXRlKCkpOwotICAg
IEFTU0VSVCh2aWV3KCktPmNvbnN0cmFpbmVkRmxvd1RocmVhZHNMYXlvdXRQaGFzZSgpKTsKLQot
ICAgIGlmICghaGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpCi0gICAgICAgIHJldHVybjsK
KyAgICBBU1NFUlQoaGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkpOwogCiAgICAgZm9yIChS
ZW5kZXJSZWdpb25MaXN0OjppdGVyYXRvciBpdGVyID0gbV9yZWdpb25MaXN0LmJlZ2luKCk7IGl0
ZXIgIT0gbV9yZWdpb25MaXN0LmVuZCgpOyArK2l0ZXIpIHsKICAgICAgICAgUmVuZGVyUmVnaW9u
KiByZWdpb24gPSAqaXRlcjsKQEAgLTg0OCwxNiArODIxLDIwIEBAIHZvaWQgUmVuZGVyRmxvd1Ro
cmVhZDo6bWFya0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9uc0ZvckxheW91dCgpCiAgICAgICAgIC8v
IGFzIHdlIGFyZSBhbHJlYWR5IGluc2lkZSBsYXlvdXQuCiAgICAgICAgIHJlZ2lvbi0+c2V0TmVl
ZHNMYXlvdXQodHJ1ZSk7CiAgICAgfQotCi0gICAgaW52YWxpZGF0ZVJlZ2lvbnMoKTsKIH0KIAot
dm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVSZWdpb25zRmxvd1RocmVhZFBvcnRpb25SZWN0
KCkKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlUmVnaW9uc0Zsb3dUaHJlYWRQb3J0aW9u
UmVjdChjb25zdCBSZW5kZXJSZWdpb24qIGxhc3RSZWdpb25XaXRoQ29udGVudCkKIHsKKyAgICBB
U1NFUlQoIWxhc3RSZWdpb25XaXRoQ29udGVudCB8fCAoIWluQ29uc3RyYWluZWRMYXlvdXRQaGFz
ZSgpICYmIGhhc0F1dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucygpKSk7CiAgICAgTGF5b3V0VW5pdCBs
b2dpY2FsSGVpZ2h0ID0gMDsKKyAgICBib29sIGVtcHR5UmVnaW9uc1NlZ21lbnQgPSBmYWxzZTsK
ICAgICBmb3IgKFJlbmRlclJlZ2lvbkxpc3Q6Oml0ZXJhdG9yIGl0ZXIgPSBtX3JlZ2lvbkxpc3Qu
YmVnaW4oKTsgaXRlciAhPSBtX3JlZ2lvbkxpc3QuZW5kKCk7ICsraXRlcikgewogICAgICAgICBS
ZW5kZXJSZWdpb24qIHJlZ2lvbiA9ICppdGVyOwogCisgICAgICAgIC8vIElmIHdlIGZpbmQgYW4g
ZW1wdHkgYXV0by1oZWlnaHQgcmVnaW9uLCBjbGVhciB0aGUgb3ZlcnJpZGVMb2dpY2FsQ29udGVu
dEhlaWdodCB2YWx1ZS4KKyAgICAgICAgaWYgKGVtcHR5UmVnaW9uc1NlZ21lbnQgJiYgcmVnaW9u
LT5oYXNBdXRvTG9naWNhbEhlaWdodCgpKQorICAgICAgICAgICAgcmVnaW9uLT5jbGVhck92ZXJy
aWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKKwogICAgICAgICBMYXlvdXRVbml0IHJlZ2lvbkxv
Z2ljYWxXaWR0aCA9IHJlZ2lvbi0+cGFnZUxvZ2ljYWxXaWR0aCgpOwogICAgICAgICBMYXlvdXRV
bml0IHJlZ2lvbkxvZ2ljYWxIZWlnaHQgPSByZWdpb24tPmxvZ2ljYWxIZWlnaHRPZkFsbEZsb3dU
aHJlYWRDb250ZW50KCk7CiAKQEAgLTg2NSw3ICs4NDIsMTMgQEAgdm9pZCBSZW5kZXJGbG93VGhy
ZWFkOjp1cGRhdGVSZWdpb25zRmxvd1RocmVhZFBvcnRpb25SZWN0KCkKIAogICAgICAgICByZWdp
b24tPnNldEZsb3dUaHJlYWRQb3J0aW9uUmVjdChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8g
cmVnaW9uUmVjdCA6IHJlZ2lvblJlY3QudHJhbnNwb3NlZFJlY3QoKSk7CiAgICAgICAgIGxvZ2lj
YWxIZWlnaHQgKz0gcmVnaW9uTG9naWNhbEhlaWdodDsKKworICAgICAgICAvLyBPbmNlIHdlIGZp
bmQgdGhlIGxhc3QgcmVnaW9uIHdpdGggY29udGVudCB0aGUgbmV4dCByZWdpb25zIGFyZSBjb25z
aWRlcmVkIGVtcHR5LgorICAgICAgICBpZiAobGFzdFJlZ2lvbldpdGhDb250ZW50ID09IHJlZ2lv
bikKKyAgICAgICAgICAgIGVtcHR5UmVnaW9uc1NlZ21lbnQgPSB0cnVlOwogICAgIH0KKworICAg
IEFTU0VSVCghbGFzdFJlZ2lvbldpdGhDb250ZW50IHx8IGVtcHR5UmVnaW9uc1NlZ21lbnQpOwog
fQogCiAvLyBFdmVuIGlmIHdlIHJlcXVpcmUgdGhlIGJyZWFrIHRvIG9jY3VyIGF0IG9mZnNldEJy
ZWFrSW5GbG93VGhyZWFkLCBiZWNhdXNlIHJlZ2lvbnMgbWF5IGhhdmUgbWluL21heC1oZWlnaHQg
dmFsdWVzLApAQCAtODc3LDcgKzg2MCw3IEBAIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6YWRkRm9y
Y2VkUmVnaW9uQnJlYWsoTGF5b3V0VW5pdCBvZmZzZXRCcmVha0luRmxvd1RocmVhZCwKICAgICAv
LyBvbmx5IGluIHRoZSBsYXlvdXQgcGhhc2UgaW4gd2hpY2ggd2UgbGF5IG91dCB0aGUgZmxvd3Mg
dGhyZWFkcyB1bmNvbnN0cmFpbmVkCiAgICAgLy8gYW5kIHdlIHVzZSB0aGUgY29udGVudCBicmVh
a3MgdG8gZGV0ZXJtaW5lIHRoZSBvdmVycmlkZUNvbnRlbnRMb2dpY2FsSGVpZ2h0IGZvcgogICAg
IC8vIGF1dG8gbG9naWNhbCBoZWlnaHQgcmVnaW9ucy4KLSAgICBpZiAodmlldygpLT5jb25zdHJh
aW5lZEZsb3dUaHJlYWRzTGF5b3V0UGhhc2UoKSkKKyAgICBpZiAoaW5Db25zdHJhaW5lZExheW91
dFBoYXNlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEJyZWFrcyBjYW4gY29t
ZSBiZWZvcmUgb3IgYWZ0ZXIgc29tZSBvYmplY3RzLiBXZSBuZWVkIHRvIHRyYWNrIHRoZXNlIG9i
amVjdHMsIHNvIHRoYXQgaWYgd2UgZ2V0CkBAIC05MDIsNiArODg1LDcgQEAgYm9vbCBSZW5kZXJG
bG93VGhyZWFkOjphZGRGb3JjZWRSZWdpb25CcmVhayhMYXlvdXRVbml0IG9mZnNldEJyZWFrSW5G
bG93VGhyZWFkLAogICAgIGlmICghcmVnaW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAg
ICBib29sIGxhc3RCcmVha0FmdGVyQ29udGVudCA9IGJyZWFrQ2hpbGQgPT0gdGhpczsKICAgICBi
b29sIG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHRDb21wdXRlZCA9IGZhbHNlOwogCiAgICAg
TGF5b3V0VW5pdCBjdXJyZW50UmVnaW9uT2Zmc2V0SW5GbG93VGhyZWFkID0gaXNIb3Jpem9udGFs
V3JpdGluZ01vZGUoKSA/IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkueSgpIDogcmVn
aW9uLT5mbG93VGhyZWFkUG9ydGlvblJlY3QoKS54KCk7CkBAIC05MzAsNyArOTE0LDEwIEBAIGJv
b2wgUmVuZGVyRmxvd1RocmVhZDo6YWRkRm9yY2VkUmVnaW9uQnJlYWsoTGF5b3V0VW5pdCBvZmZz
ZXRCcmVha0luRmxvd1RocmVhZCwKICAgICAgICAgY3VycmVudFJlZ2lvbk9mZnNldEluRmxvd1Ro
cmVhZCArPSBpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID8gcmVnaW9uLT5mbG93VGhyZWFkUG9y
dGlvblJlY3QoKS5oZWlnaHQoKSA6IHJlZ2lvbi0+Zmxvd1RocmVhZFBvcnRpb25SZWN0KCkud2lk
dGgoKTsKIAogICAgIC8vIElmIHRoZSBicmVhayB3YXMgZm91bmQgaW5zaWRlIGFuIGF1dG8taGVp
Z2h0IHJlZ2lvbiBpdHMgc2l6ZSBjaGFuZ2VkIHNvIHdlIG5lZWQgdG8gcmVjb21wdXRlIHRoZSBm
bG93IHRocmVhZCBwb3J0aW9uIHJlY3RhbmdsZXMuCi0gICAgaWYgKG92ZXJyaWRlTG9naWNhbENv
bnRlbnRIZWlnaHRDb21wdXRlZCkKKyAgICAvLyBBbHNvLCBpZiB0aGlzIGlzIHRoZSBsYXN0IGJy
ZWFrIGFmdGVyIHRoZSBjb250ZW50IHdlIG5lZWQgdG8gY2xlYXIgdGhlIG92ZXJyaWRlTG9naWNh
bENvbnRlbnRIZWlnaHQgdmFsdWUgb24gdGhlIGxhc3QgZW1wdHkgcmVnaW9ucy4KKyAgICBpZiAo
aGFzQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zKCkgJiYgbGFzdEJyZWFrQWZ0ZXJDb250ZW50KQor
ICAgICAgICB1cGRhdGVSZWdpb25zRmxvd1RocmVhZFBvcnRpb25SZWN0KHJlZ2lvbik7CisgICAg
ZWxzZSBpZiAob3ZlcnJpZGVMb2dpY2FsQ29udGVudEhlaWdodENvbXB1dGVkKQogICAgICAgICB1
cGRhdGVSZWdpb25zRmxvd1RocmVhZFBvcnRpb25SZWN0KCk7CiAKICAgICBpZiAob2Zmc2V0QnJl
YWtBZGp1c3RtZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmgKaW5kZXggOWMzMmE4MmRmNTJkOTY4NWMwYTQzYzUzODcyMTYyZjc4NDA3ZGY2ZS4uMDAwZjg0
YmVjMmY1NTRlYWZiZTExMmY3ZDUwNDhkZjI5OWU0NjBiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCkBAIC0xMzYsMTAgKzEzNiwxMCBAQCBwdWJsaWM6
CiAgICAgLy8gQ2hlY2sgaWYgdGhlIG9iamVjdCBpcyBpbiByZWdpb24gYW5kIHRoZSByZWdpb24g
aXMgcGFydCBvZiB0aGlzIGZsb3cgdGhyZWFkLgogICAgIGJvb2wgb2JqZWN0SW5GbG93UmVnaW9u
KGNvbnN0IFJlbmRlck9iamVjdCosIGNvbnN0IFJlbmRlclJlZ2lvbiopIGNvbnN0OwogCi0gICAg
dm9pZCByZXNldFJlZ2lvbnNPdmVycmlkZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CiAgICAgdm9p
ZCBtYXJrQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zRm9yTGF5b3V0KCk7CiAKICAgICBib29sIGFk
ZEZvcmNlZFJlZ2lvbkJyZWFrKExheW91dFVuaXQsIFJlbmRlck9iamVjdCogYnJlYWtDaGlsZCwg
Ym9vbCBpc0JlZm9yZSwgTGF5b3V0VW5pdCogb2Zmc2V0QnJlYWtBZGp1c3RtZW50ID0gMCk7Cisg
ICAgdm9pZCBhcHBseUJyZWFrQWZ0ZXJDb250ZW50KExheW91dFVuaXQpOwogCiAgICAgYm9vbCBw
YWdlTG9naWNhbFNpemVDaGFuZ2VkKCkgY29uc3QgeyByZXR1cm4gbV9wYWdlTG9naWNhbFNpemVD
aGFuZ2VkOyB9CiAKQEAgLTE1NCw2ICsxNTQsMTIgQEAgcHVibGljOgogICAgIHZvaWQgY29sbGVj
dExheWVyRnJhZ21lbnRzKExheWVyRnJhZ21lbnRzJiwgY29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJC
b3VuZGluZ0JveCwgY29uc3QgTGF5b3V0UmVjdCYgZGlydHlSZWN0KTsKICAgICBMYXlvdXRSZWN0
IGZyYWdtZW50c0JvdW5kaW5nQm94KGNvbnN0IExheW91dFJlY3QmIGxheWVyQm91bmRpbmdCb3gp
OwogCisgICAgdm9pZCBzZXRJbkNvbnN0cmFpbmVkTGF5b3V0UGhhc2UoYm9vbCB2YWx1ZSkgeyBt
X2luQ29uc3RyYWluZWRMYXlvdXRQaGFzZSA9IHZhbHVlOyB9CisgICAgYm9vbCBpbkNvbnN0cmFp
bmVkTGF5b3V0UGhhc2UoKSBjb25zdCB7IHJldHVybiBtX2luQ29uc3RyYWluZWRMYXlvdXRQaGFz
ZTsgfQorCisgICAgYm9vbCBuZWVkc1R3b1BoYXNlc0xheW91dCgpIGNvbnN0IHsgcmV0dXJuIG1f
bmVlZHNUd29QaGFzZXNMYXlvdXQ7IH0KKyAgICB2b2lkIGNsZWFyTmVlZHNUd29QaGFzZXNMYXlv
dXQoKSB7IG1fbmVlZHNUd29QaGFzZXNMYXlvdXQgPSBmYWxzZTsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgPSAwOwogCkBAIC0xNjEs
NyArMTY3LDcgQEAgcHJvdGVjdGVkOgogICAgIC8vIG5vIHJlZ2lvbnMgaGF2ZSBiZWVuIGdlbmVy
YXRlZCB5ZXQuCiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGluaXRpYWxMb2dpY2FsV2lkdGgoKSBj
b25zdCB7IHJldHVybiAwOyB9OwogCi0gICAgdm9pZCB1cGRhdGVSZWdpb25zRmxvd1RocmVhZFBv
cnRpb25SZWN0KCk7CisgICAgdm9pZCB1cGRhdGVSZWdpb25zRmxvd1RocmVhZFBvcnRpb25SZWN0
KGNvbnN0IFJlbmRlclJlZ2lvbiogPSAwKTsKICAgICBib29sIHNob3VsZFJlcGFpbnQoY29uc3Qg
TGF5b3V0UmVjdCYpIGNvbnN0OwogICAgIGJvb2wgcmVnaW9uSW5SYW5nZShjb25zdCBSZW5kZXJS
ZWdpb24qIHRhcmdldFJlZ2lvbiwgY29uc3QgUmVuZGVyUmVnaW9uKiBzdGFydFJlZ2lvbiwgY29u
c3QgUmVuZGVyUmVnaW9uKiBlbmRSZWdpb24pIGNvbnN0OwogCkBAIC0yMjIsNiArMjI4LDggQEAg
cHJvdGVjdGVkOgogICAgIGJvb2wgbV9oYXNSZWdpb25zV2l0aFN0eWxpbmcgOiAxOwogICAgIGJv
b2wgbV9kaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50IDogMTsKICAgICBib29sIG1fcGFn
ZUxvZ2ljYWxTaXplQ2hhbmdlZCA6IDE7CisgICAgYm9vbCBtX2luQ29uc3RyYWluZWRMYXlvdXRQ
aGFzZSA6IDE7CisgICAgYm9vbCBtX25lZWRzVHdvUGhhc2VzTGF5b3V0IDogMTsKIH07CiAKIGlu
bGluZSBSZW5kZXJGbG93VGhyZWFkKiB0b1JlbmRlckZsb3dUaHJlYWQoUmVuZGVyT2JqZWN0KiBv
YmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwCmluZGV4IGY5
NzdlMWI5ODVkMmM0NGQ4NGVlMmYwZTQwMTdkNGJlMTI2MmQwZjQuLjZhMDhiNWM3NDVmY2ExZjcw
MGViMWMyZmRkNTYyNzgwMDhmMGI4NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZWdpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJSZWdpb24uY3BwCkBAIC01OSwxMiArNTksMTQgQEAgUmVuZGVyUmVnaW9uOjpSZW5kZXJSZWdp
b24oRWxlbWVudCogZWxlbWVudCwgUmVuZGVyRmxvd1RocmVhZCogZmxvd1RocmVhZCkKIAogTGF5
b3V0VW5pdCBSZW5kZXJSZWdpb246OnBhZ2VMb2dpY2FsV2lkdGgoKSBjb25zdAogeworICAgIEFT
U0VSVChtX2Zsb3dUaHJlYWQpOwogICAgIHJldHVybiBtX2Zsb3dUaHJlYWQtPmlzSG9yaXpvbnRh
bFdyaXRpbmdNb2RlKCkgPyBjb250ZW50V2lkdGgoKSA6IGNvbnRlbnRIZWlnaHQoKTsKIH0KIAog
TGF5b3V0VW5pdCBSZW5kZXJSZWdpb246OnBhZ2VMb2dpY2FsSGVpZ2h0KCkgY29uc3QKIHsKLSAg
ICBpZiAoaGFzT3ZlcnJpZGVIZWlnaHQoKSAmJiB2aWV3KCktPm5vcm1hbExheW91dFBoYXNlKCkp
IHsKKyAgICBBU1NFUlQobV9mbG93VGhyZWFkKTsKKyAgICBpZiAoaGFzT3ZlcnJpZGVIZWlnaHQo
KSAmJiAhbV9mbG93VGhyZWFkLT5pbkNvbnN0cmFpbmVkTGF5b3V0UGhhc2UoKSkgewogICAgICAg
ICBBU1NFUlQoaGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSk7CiAgICAgICAgIHJldHVybiBvdmVycmlk
ZUxvZ2ljYWxDb250ZW50SGVpZ2h0KCk7CiAgICAgfQpAQCAtNzUsMTMgKzc3LDE1IEBAIExheW91
dFVuaXQgUmVuZGVyUmVnaW9uOjpwYWdlTG9naWNhbEhlaWdodCgpIGNvbnN0CiAvLyBoZWlnaHQg
dmFsdWUgZm9yIGF1dG8taGVpZ2h0IHJlZ2lvbnMgaW4gdGhlIGZpcnN0IGxheW91dCBwaGFzZSBv
ZiB0aGUgcGFyZW50IG5hbWVkIGZsb3cuCiBMYXlvdXRVbml0IFJlbmRlclJlZ2lvbjo6bWF4UGFn
ZUxvZ2ljYWxIZWlnaHQoKSBjb25zdAogewotICAgIEFTU0VSVChoYXNBdXRvTG9naWNhbEhlaWdo
dCgpICYmIHZpZXcoKS0+bm9ybWFsTGF5b3V0UGhhc2UoKSk7CisgICAgQVNTRVJUKG1fZmxvd1Ro
cmVhZCk7CisgICAgQVNTRVJUKGhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkgJiYgIW1fZmxvd1RocmVh
ZC0+aW5Db25zdHJhaW5lZExheW91dFBoYXNlKCkpOwogICAgIHJldHVybiBzdHlsZSgpLT5sb2dp
Y2FsTWF4SGVpZ2h0KCkuaXNVbmRlZmluZWQoKSA/IExheW91dFVuaXQ6Om1heCgpIC8gMiA6IGNv
bXB1dGVSZXBsYWNlZExvZ2ljYWxIZWlnaHRVc2luZyhzdHlsZSgpLT5sb2dpY2FsTWF4SGVpZ2h0
KCkpOwogfQogCiBMYXlvdXRVbml0IFJlbmRlclJlZ2lvbjo6bG9naWNhbEhlaWdodE9mQWxsRmxv
d1RocmVhZENvbnRlbnQoKSBjb25zdAogewotICAgIGlmIChoYXNPdmVycmlkZUhlaWdodCgpICYm
IHZpZXcoKS0+bm9ybWFsTGF5b3V0UGhhc2UoKSkgeworICAgIEFTU0VSVChtX2Zsb3dUaHJlYWQp
OworICAgIGlmIChoYXNPdmVycmlkZUhlaWdodCgpICYmICFtX2Zsb3dUaHJlYWQtPmluQ29uc3Ry
YWluZWRMYXlvdXRQaGFzZSgpKSB7CiAgICAgICAgIEFTU0VSVChoYXNBdXRvTG9naWNhbEhlaWdo
dCgpKTsKICAgICAgICAgcmV0dXJuIG92ZXJyaWRlTG9naWNhbENvbnRlbnRIZWlnaHQoKTsKICAg
ICB9CkBAIC0yNzEsMTQgKzI3NSwxNSBAQCB2b2lkIFJlbmRlclJlZ2lvbjo6bGF5b3V0QmxvY2so
Ym9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgICAgICBpZiAoIWlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlKCkpCiAgICAgICAgICAgICBvbGRSZWdpb25SZWN0ID0gb2xkUmVnaW9u
UmVjdC50cmFuc3Bvc2VkUmVjdCgpOwogCi0gICAgICAgIGlmICh2aWV3KCktPmNoZWNrVHdvUGFz
c0xheW91dEZvckF1dG9IZWlnaHRSZWdpb25zKCkgJiYgaGFzQXV0b0xvZ2ljYWxIZWlnaHQoKSkK
LSAgICAgICAgICAgIHZpZXcoKS0+Zmxvd1RocmVhZENvbnRyb2xsZXIoKS0+c2V0TmVlZHNUd29Q
YXNzTGF5b3V0Rm9yQXV0b0hlaWdodFJlZ2lvbnModHJ1ZSk7Ci0KLSAgICAgICAgaWYgKCFpc1Jl
bmRlclJlZ2lvblNldCgpICYmIChvbGRSZWdpb25SZWN0LndpZHRoKCkgIT0gcGFnZUxvZ2ljYWxX
aWR0aCgpIHx8IG9sZFJlZ2lvblJlY3QuaGVpZ2h0KCkgIT0gcGFnZUxvZ2ljYWxIZWlnaHQoKSkp
IHsKKyAgICAgICAgaWYgKGhhc0F1dG9Mb2dpY2FsSGVpZ2h0KCkgJiYgIW1fZmxvd1RocmVhZC0+
aW5Db25zdHJhaW5lZExheW91dFBoYXNlKCkpIHsKICAgICAgICAgICAgIG1fZmxvd1RocmVhZC0+
aW52YWxpZGF0ZVJlZ2lvbnMoKTsKLSAgICAgICAgICAgIGlmICh2aWV3KCktPmNoZWNrVHdvUGFz
c0xheW91dEZvckF1dG9IZWlnaHRSZWdpb25zKCkpCi0gICAgICAgICAgICAgICAgdmlldygpLT5m
bG93VGhyZWFkQ29udHJvbGxlcigpLT5zZXROZWVkc1R3b1Bhc3NMYXlvdXRGb3JBdXRvSGVpZ2h0
UmVnaW9ucyh0cnVlKTsKKyAgICAgICAgICAgIGNsZWFyT3ZlcnJpZGVMb2dpY2FsQ29udGVudEhl
aWdodCgpOworICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CisKKyAgICAgICAgaWYgKCFp
c1JlbmRlclJlZ2lvblNldCgpICYmIChvbGRSZWdpb25SZWN0LndpZHRoKCkgIT0gcGFnZUxvZ2lj
YWxXaWR0aCgpIHx8IG9sZFJlZ2lvblJlY3QuaGVpZ2h0KCkgIT0gcGFnZUxvZ2ljYWxIZWlnaHQo
KSkpCisgICAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gZXZlbiBpZiB3ZSBhcmUgaW4gdGhl
IGluQ29uc3RyYWluZWRMYXlvdXRQaGFzZSBhbmQgaXQgd2lsbCB0cmlnZ2VyIGEgcGF0aG9sb2dp
Y2FsIGxheW91dCBvZiB0aGUgZmxvdyB0aHJlYWQuCisgICAgICAgICAgICBtX2Zsb3dUaHJlYWQt
PmludmFsaWRhdGVSZWdpb25zKCk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFdlIG5lZWQgdG8g
ZmluZCBhIHdheSB0byBzZXQgdXAgb3ZlcmZsb3cgcHJvcGVybHkuIE91ciBmbG93IHRocmVhZCBo
YXNuJ3QgZ290dGVuIGEgbGF5b3V0CkBAIC02MzMsNyArNjM4LDcgQEAgdm9pZCBSZW5kZXJSZWdp
b246OnVwZGF0ZUxvZ2ljYWxIZWlnaHQoKQogICAgIC8vIFdlIHdhbnQgdG8gdXBkYXRlIHRoZSBs
b2dpY2FsIGhlaWdodCBiYXNlZCBvbiB0aGUgY29tcHV0ZWQgb3ZlcnJpZGUgbG9naWNhbAogICAg
IC8vIGNvbnRlbnQgaGVpZ2h0IG9ubHkgaWYgdGhlIHZpZXcgaXMgaW4gdGhlIGxheW91dCBwaGFz
ZQogICAgIC8vIGluIHdoaWNoIGFsbCB0aGUgYXV0byBsb2dpY2FsIGhlaWdodCByZWdpb25zIGhh
dmUgdGhlaXIgb3ZlcnJpZGUgbG9naWNhbCBoZWlnaHQgc2V0LgotICAgIGlmICh2aWV3KCktPm5v
cm1hbExheW91dFBoYXNlKCkpCisgICAgaWYgKCFtX2Zsb3dUaHJlYWQtPmluQ29uc3RyYWluZWRM
YXlvdXRQaGFzZSgpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBUaGVyZSBtYXkgYmUgcmVn
aW9ucyB3aXRoIGF1dG8gbG9naWNhbCBoZWlnaHQgdGhhdCBkdXJpbmcgdGhlIHByZXJlcXVpc2l0
ZSBsYXlvdXQgcGhhc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRl
eCAzMjE3Mzk2NzI3ZDVjOGNlN2VmZjUwODE4YzJmNTc0NGQ1ZTg5ZjE3Li41ZWM2NTk5NWU2ODk0
Y2U1MzUxYmM0ZmNkOTk5ZGNhYjQ3NGY0YzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwCkBAIC02OCw3ICs2OCw2IEBAIFJlbmRlclZpZXc6OlJlbmRlclZpZXcoRG9j
dW1lbnQqIGRvY3VtZW50KQogICAgICwgbV9sYXlvdXRTdGF0ZURpc2FibGVDb3VudCgwKQogICAg
ICwgbV9yZW5kZXJRdW90ZUhlYWQoMCkKICAgICAsIG1fcmVuZGVyQ291bnRlckNvdW50KDApCi0g
ICAgLCBtX2xheW91dFBoYXNlKFJlbmRlclZpZXdOb3JtYWxMYXlvdXQpCiB7CiAgICAgLy8gaW5p
dCBSZW5kZXJPYmplY3QgYXR0cmlidXRlcwogICAgIHNldElubGluZShmYWxzZSk7CkBAIC0yMDYs
MzIgKzIwNSw0MyBAQCBib29sIFJlbmRlclZpZXc6OmluaXRpYWxpemVMYXlvdXRTdGF0ZShMYXlv
dXRTdGF0ZSYgc3RhdGUpCiAgICAgcmV0dXJuIGlzU2VhbWxlc3NBbmNlc3RvckluRmxvd1RocmVh
ZDsKIH0KIAotLy8gVGhlIGFsZ29yaXRobSB0byBsYXlvdXQgdGhlIGZsb3cgdGhyZWFkIGNvbnRl
bnQgaW4gYXV0byBoZWlnaHQgcmVnaW9ucyBoYXMgdG8gbWFrZSBzdXJlCi0vLyB0aGF0IHdoZW4g
YSB0d28tcGFzcyBsYXlvdXQgaXMgbmVlZGVkLCB0aGUgYXV0byBoZWlnaHQgcmVnaW9ucyBhbHdh
eXMgc3RhcnQgdGhlIGZpcnN0Ci0vLyBwYXNzIHdpdGhvdXQgYSBjb21wdXRlZCBvdmVycmlkZSBs
b2dpY2FsIGNvbnRlbnQgaGVpZ2h0IChmcm9tIHByZXZpb3VzIGxheW91dHMpLgotLy8gVGhpcyB3
YXksIHRoZSBsYXlvdXQgYWxnb3JpdGhtIGdpdmVzIHRoZSBzYW1lIHJlc3VsdCBpbiBhbGwgc2l0
dWF0aW9ucy4KLS8vIElmIHRoZSBmbG93IHRocmVhZCBjb250ZW50IGRvZXMgbm90IG5lZWQgbGF5
b3V0LCB0aGUgZGVjaXNpb24gb2Ygd2hldGhlciB3ZSBuZWVkIGEgZnVsbAotLy8gdHdvIHBhc3Mg
bGF5b3V0IGNhbm5vdCBiZSBtYWRlIHVwLWZyb250LiBUaGVyZWZvcmUsIHdlIGRvIGEgZmlyc3Qg
bGF5b3V0LCBhbmQgaWYgYW4gYXV0bwotLy8gaGVpZ2h0IHJlZ2lvbiBuZWVkcyBsYXlvdXQgb3Ig
YSBub24tYXV0byBoZWlnaHQgcmVnaW9uIGNoYW5nZXMgaXRzIGJveCBkaW1lbnNpb25zLAotLy8g
d2UgbmVlZCB0byBwZXJmb3JtIGEgZnVsbCB0d28gcGFzcyBsYXlvdXQuCisvLyBUaGUgYWxnb3Jp
dGhtIGJlbG93IGFzc3VtZXMgdGhpcyBpcyBhIGZ1bGwgbGF5b3V0LiBJbiBjYXNlIHRoZXJlIGFy
ZSBwcmV2aW91c2x5IGNvbXB1dGVkIHZhbHVlcyBmb3IgcmVnaW9ucywgc3VwcGxlbWVudGFsIHN0
ZXBzIGFyZSB0YWtlbgorLy8gdG8gZW5zdXJlIHRoZSByZXN1bHRzIGFyZSB0aGUgc2FtZSBhcyB0
aG9zZSBvYnRhaW5lZCBmcm9tIGEgZnVsbCBsYXlvdXQgKGkuZS4gdGhlIGF1dG8taGVpZ2h0IHJl
Z2lvbnMgZnJvbSBhbGwgdGhlIGZsb3dzIGFyZSBtYXJrZWQgYXMgbmVlZGluZworLy8gbGF5b3V0
KS4KKy8vIDEuIFRoZSBmbG93cyBhcmUgbGFpZCBvdXQgZnJvbSB0aGUgb3V0ZXIgZmxvdyB0byB0
aGUgaW5uZXIgZmxvdy4gVGhpcyBzdWNjZXNzZnVsbHkgY29tcHV0ZXMgdGhlIG91dGVyIG5vbi1h
dXRvLWhlaWdodCByZWdpb25zIHNpemUgc28gdGhlIAorLy8gaW5uZXIgZmxvd3MgaGF2ZSB0aGUg
bmVjZXNzYXJ5IGluZm9ybWF0aW9uIHRvIGNvcnJlY3RseSBmcmFnbWVudCB0aGUgY29udGVudC4K
Ky8vIDIuIFRoZSBmbG93cyBhcmUgbGFpZCBvdXQgZnJvbSB0aGUgaW5uZXIgZmxvdyB0byB0aGUg
b3V0ZXIgZmxvdy4gQWZ0ZXIgYW4gaW5uZXIgZmxvdyBpcyBsYWlkIG91dCBpdCBnb2VzIGludG8g
dGhlIGNvbnN0cmFpbmVkIGxheW91dCBwaGFzZQorLy8gYW5kIG1hcmtzIHRoZSBhdXRvLWhlaWdo
dCByZWdpb25zIHRoZXkgbmVlZCBsYXlvdXQuIFRoaXMgbWVhbnMgdGhlIG91dGVyIGZsb3dzIHdp
bGwgcmVsYXlvdXQgaWYgdGhleSBkZXBlbmQgb24gcmVnaW9ucyB3aXRoIGF1dG8taGVpZ2h0IHJl
Z2lvbnMKKy8vIGJlbG9uZ2luZyB0byBpbm5lciBmbG93cy4gVGhpcyBzdGVwIHdpbGwgY29ycmVj
dGx5IGNvbXB1dGUgdGhlIG92ZXJyaWRlTG9naWNhbEhlaWdodHMgZm9yIHRoZSBhdXRvLWhlaWdo
dCByZWdpb25zLiBJdCdzIHBvc3NpYmxlIGZvciBub24tYXV0by1oZWlnaHQKKy8vIHJlZ2lvbnMg
dG8gcmVsYXlvdXQgaWYgdGhleSBkZXBlbmQgb24gYXV0by1oZWlnaHQgcmVnaW9ucy4gVGhpcyB3
aWxsIGludmFsaWRhdGUgdGhlIGlubmVyIGZsb3cgdGhyZWFkcyBhbmQgbWFyayB0aGVtIGFzIG5l
ZWRpbmcgbGF5b3V0LgorLy8gMy4gVGhlIGxhc3Qgc3RlcCBpcyB0byBkbyBvbmUgbGFzdCBsYXlv
dXQgaWYgdGhlcmUgYXJlIHBhdGhvbG9naWNhbCBkZXBlbmRlbmNpZXMgYmV0d2VlbiBub24tYXV0
by1oZWlnaHQgcmVnaW9ucyBhbmQgYXV0by1oZWlnaHQgcmVnaW9ucworLy8gYXMgZGV0ZWN0ZWQg
aW4gdGhlIHByZXZpb3VzIHN0ZXAuCiB2b2lkIFJlbmRlclZpZXc6OmxheW91dENvbnRlbnRJbkF1
dG9Mb2dpY2FsSGVpZ2h0UmVnaW9ucyhjb25zdCBMYXlvdXRTdGF0ZSYgc3RhdGUpCiB7Ci0gICAg
QVNTRVJUKCFmbG93VGhyZWFkQ29udHJvbGxlcigpLT5uZWVkc1R3b1Bhc3NMYXlvdXRGb3JBdXRv
SGVpZ2h0UmVnaW9ucygpKTsKLQotICAgIGlmICghZmxvd1RocmVhZENvbnRyb2xsZXIoKS0+aGFz
UmVuZGVyTmFtZWRGbG93VGhyZWFkc05lZWRpbmdMYXlvdXQoKSkgeworICAgIC8vIFdlIG5lZWQg
dG8gaW52YWxpZGF0ZSBhbGwgdGhlIGZsb3dzIHdpdGggYXV0by1oZWlnaHQgcmVnaW9ucyBpZiBv
bmUgc3VjaCBmbG93IG5lZWRzIGxheW91dC4KKyAgICAvLyBJZiBub25lIGlzIGZvdW5kIHdlIGRv
IGEgbGF5b3V0IGEgY2hlY2sgYmFjayBhZ2FpbiBhZnRlcndhcmRzLgorICAgIGlmICghZmxvd1Ro
cmVhZENvbnRyb2xsZXIoKS0+dXBkYXRlRmxvd1RocmVhZHNOZWVkaW5nTGF5b3V0KCkpIHsKKyAg
ICAgICAgLy8gRG8gYSBmaXJzdCBsYXlvdXQgb2YgdGhlIGNvbnRlbnQuIEluIHNvbWUgY2FzZXMg
bW9yZSBsYXlvdXRzIGFyZSBub3QgbmVlZGVkIChlLmcuIG9ubHkgZmxvd3Mgd2l0aCBub24tYXV0
by1oZWlnaHQgcmVnaW9ucyBoYXZlIGNoYW5nZWQpLgogICAgICAgICBsYXlvdXRDb250ZW50KHN0
YXRlKTsKLSAgICAgICAgaWYgKCFmbG93VGhyZWFkQ29udHJvbGxlcigpLT5uZWVkc1R3b1Bhc3NM
YXlvdXRGb3JBdXRvSGVpZ2h0UmVnaW9ucygpKQorCisgICAgICAgIC8vIElmIHdlIGZpbmQgbm8g
bmFtZWQgZmxvdyBuZWVkaW5nIGEgdHdvIHN0ZXAgbGF5b3V0IGFmdGVyIHRoZSBmaXJzdCBsYXlv
dXQsIGV4aXQgZWFybHkuCisgICAgICAgIC8vIE90aGVyd2lzZSwgaW5pdGlhdGUgdGhlIHR3byBz
dGVwIGxheW91dCBhbGdvcml0aG0gYW5kIHJlY29tcHV0ZSBhbGwgdGhlIGZsb3dzLgorICAgICAg
ICBpZiAoIWZsb3dUaHJlYWRDb250cm9sbGVyKCktPnVwZGF0ZUZsb3dUaHJlYWRzTmVlZGluZ1R3
b1N0ZXBMYXlvdXQoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICAvLyBTdGFy
dCBhIGZ1bGwgdHdvIHBoYXNlIGxheW91dCBmb3IgcmVnaW9ucyB3aXRoIGF1dG8gbG9naWNhbCBo
ZWlnaHQuCi0gICAgZmxvd1RocmVhZENvbnRyb2xsZXIoKS0+cmVzZXRSZWdpb25zT3ZlcnJpZGVM
b2dpY2FsQ29udGVudEhlaWdodCgpOworICAgIC8vIExheW91dCB0byByZWNvbXB1dGUgYWxsIHRo
ZSBuYW1lZCBmbG93cyB3aXRoIGF1dG8taGVpZ2h0IHJlZ2lvbnMuCiAgICAgbGF5b3V0Q29udGVu
dChzdGF0ZSk7CiAKLSAgICBtX2xheW91dFBoYXNlID0gQ29uc3RyYWluZWRGbG93VGhyZWFkc0xh
eW91dEluQXV0b0xvZ2ljYWxIZWlnaHRSZWdpb25zOwotICAgIGZsb3dUaHJlYWRDb250cm9sbGVy
KCktPm1hcmtBdXRvTG9naWNhbEhlaWdodFJlZ2lvbnNGb3JMYXlvdXQoKTsKLSAgICBsYXlvdXRD
b250ZW50KHN0YXRlKTsKLSAgICBmbG93VGhyZWFkQ29udHJvbGxlcigpLT5zZXROZWVkc1R3b1Bh
c3NMYXlvdXRGb3JBdXRvSGVpZ2h0UmVnaW9ucyhmYWxzZSk7CisgICAgLy8gUHJvcGFnYXRlIHRo
ZSBjb21wdXRlZCBhdXRvLWhlaWdodCB2YWx1ZXMgdXB3YXJkcy4KKyAgICAvLyBOb24tYXV0by1o
ZWlnaHQgcmVnaW9ucyBtYXkgaW52YWxpZGF0ZSB0aGUgZmxvdyB0aHJlYWQgYmVjYXVzZSB0aGV5
IGRlcGVuZGVkIG9uIGF1dG8taGVpZ2h0IHJlZ2lvbnMsIGJ1dCB0aGF0J3Mgb2suCisgICAgZmxv
d1RocmVhZENvbnRyb2xsZXIoKS0+dXBkYXRlRmxvd1RocmVhZHNJbnRvQ29uc3RyYWluZWRQaGFz
ZSgpOworCisgICAgLy8gRG8gb25lIGxhc3QgbGF5b3V0IHRoYXQgc2hvdWxkIHVwZGF0ZSB0aGUg
YXV0by1oZWlnaHQgcmVnaW9ucyBmb3VuZCBpbiB0aGUgbWFpbiBmbG93CisgICAgLy8gYW5kIHNv
bHZlIHBhdGhvbG9naWNhbCBkZXBlbmRlbmNpZXMgYmV0d2VlbiByZWdpb25zIChlLmcuIGEgbm9u
LWF1dG8taGVpZ2h0IHJlZ2lvbiBkZXBlbmRpbmcKKyAgICAvLyBvbiBhbiBhdXRvLWhlaWdodCBv
bmUpLgorICAgIGlmIChuZWVkc0xheW91dCgpKQorICAgICAgICBsYXlvdXRDb250ZW50KHN0YXRl
KTsKIH0KIAogdm9pZCBSZW5kZXJWaWV3OjpsYXlvdXQoKQpAQCAtMjY5LDcgKzI3OSw2IEBAIHZv
aWQgUmVuZGVyVmlldzo6bGF5b3V0KCkKICAgICBtX3BhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCA9
IGZhbHNlOwogICAgIG1fbGF5b3V0U3RhdGUgPSAmc3RhdGU7CiAKLSAgICBtX2xheW91dFBoYXNl
ID0gUmVuZGVyVmlld05vcm1hbExheW91dDsKICAgICBpZiAoY2hlY2tUd29QYXNzTGF5b3V0Rm9y
QXV0b0hlaWdodFJlZ2lvbnMoKSkKICAgICAgICAgbGF5b3V0Q29udGVudEluQXV0b0xvZ2ljYWxI
ZWlnaHRSZWdpb25zKHN0YXRlKTsKICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuaAppbmRleCAzYzg0YWFjMGNiZTlkMTFhM2M4NTJhNWM0N2U4ZGQ0YWY1NTM0OGM4Li5m
MGZiMTJjMDUzNzlkYTdjZjZkYjQ0MWI3OTZkNGY1YWUwY2U1ODQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTMxLDggKzMxLDggQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogY2xhc3MgRmxvd1RocmVhZENvbnRyb2xsZXI7Ci1jbGFzcyBSZW5kZXJXaWRnZXQ7CiBj
bGFzcyBSZW5kZXJRdW90ZTsKK2NsYXNzIFJlbmRlcldpZGdldDsKIAogI2lmIFVTRShBQ0NFTEVS
QVRFRF9DT01QT1NJVElORykKIGNsYXNzIFJlbmRlckxheWVyQ29tcG9zaXRvcjsKQEAgLTIwNywx
MCArMjA3LDYgQEAgcHVibGljOgogICAgIGJvb2wgY2hlY2tUd29QYXNzTGF5b3V0Rm9yQXV0b0hl
aWdodFJlZ2lvbnMoKSBjb25zdDsKICAgICBGbG93VGhyZWFkQ29udHJvbGxlciogZmxvd1RocmVh
ZENvbnRyb2xsZXIoKTsKIAotICAgIGVudW0gUmVuZGVyVmlld0xheW91dFBoYXNlIHsgUmVuZGVy
Vmlld05vcm1hbExheW91dCwgQ29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dEluQXV0b0xvZ2lj
YWxIZWlnaHRSZWdpb25zIH07Ci0gICAgYm9vbCBub3JtYWxMYXlvdXRQaGFzZSgpIGNvbnN0IHsg
cmV0dXJuIG1fbGF5b3V0UGhhc2UgPT0gUmVuZGVyVmlld05vcm1hbExheW91dDsgfQotICAgIGJv
b2wgY29uc3RyYWluZWRGbG93VGhyZWFkc0xheW91dFBoYXNlKCkgY29uc3QgeyByZXR1cm4gbV9s
YXlvdXRQaGFzZSA9PSBDb25zdHJhaW5lZEZsb3dUaHJlYWRzTGF5b3V0SW5BdXRvTG9naWNhbEhl
aWdodFJlZ2lvbnM7IH0KLQogICAgIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNl
LCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpOwogCiAgICAgSW50ZXJ2YWxBcmVuYSogaW50
ZXJ2YWxBcmVuYSgpOwpAQCAtMzM5LDcgKzMzNSw2IEBAIHByaXZhdGU6CiAKICAgICBSZW5kZXJR
dW90ZSogbV9yZW5kZXJRdW90ZUhlYWQ7CiAgICAgdW5zaWduZWQgbV9yZW5kZXJDb3VudGVyQ291
bnQ7Ci0gICAgUmVuZGVyVmlld0xheW91dFBoYXNlIG1fbGF5b3V0UGhhc2U7CiB9OwogCiBpbmxp
bmUgUmVuZGVyVmlldyogdG9SZW5kZXJWaWV3KFJlbmRlck9iamVjdCogb2JqZWN0KQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDhmZWQ2MGY0YjcyMjg4NjRhOTc0OWIzNTEwMzg3MDFhOGQ4NjVlNWEuLjZjMzU0Mjk1YjQzNWRi
ZjliOTdiNmYxNzk1MTJlZjFlZTFmY2NjM2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMy0w
NC0wMiAgQW5kcmVpIEJ1Y3VyICA8YWJ1Y3VyQGFkb2JlLmNvbT4KKworICAgICAgICBbQ1NTIFJl
Z2lvbnNdIE5lc3RlZCBhdXRvLWhlaWdodCByZWdpb25zIGRvbid0IGxheW91dCBjb3JyZWN0bHkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExMTk2OQor
CisgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIEh5YXR0LgorCisgICAgICAgIFRoZXNlIHRlc3Rz
IGNvdmVyIHZhcmlvdXMgY29tYmluYXRpb25zIG9mIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGZsb3dz
IGFuZCByZWdpb25zIHdpdGgKKyAgICAgICAgb3Igd2l0aG91dCBhdXRvLWhlaWdodC4KKworICAg
ICAgICAqIGZhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVkLW5lc3RlZC1jb21wbGV4LXJlZ2lv
bnMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdo
dC1taXhlZC1uZXN0ZWQtY29tcGxleC1yZWdpb25zLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVkLW5lc3RlZC1yZWdpb25zLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtbmVzdGVkLXJl
Z2lvbnMuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4
ZWQtcGFyYWxsZWwtcmVnaW9ucy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
cmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVkLXBhcmFsbGVsLXJlZ2lvbnMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbmVzdGVkLXJlZ2lvbnMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1uZXN0ZWQtcmVn
aW9ucy5odG1sOiBBZGRlZC4KKwogMjAxMy0wNC0wMiAgWm9sdGFuIEFydmFpICA8emFydmFpQGlu
Zi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBSZWJh
c2VsaW5pbmcgYWZ0ZXIgcjE0NzQwMi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVn
aW9ucy9hdXRvaGVpZ2h0LW1peGVkLW5lc3RlZC1jb21wbGV4LXJlZ2lvbnMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtbmVzdGVkLWNvbXBs
ZXgtcmVnaW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc5ZGRhNTA5NWYxZjBiYjU3ZTNm
NTgzOTQyY2UwOTYzNGE5YzUzMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
cmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVkLW5lc3RlZC1jb21wbGV4LXJlZ2lvbnMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsOCBAQAorVGVzdCBmb3IgW0NTUyBSZWdpb25zXSBOZXN0ZWQgYXV0by1o
ZWlnaHQgcmVnaW9ucyBkb24ndCBsYXlvdXQgY29ycmVjdGx5LgorCitMb3JlbSBpcHN1bSBkb2xv
ciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBBZW5lYW4gdXJuYSBvcmNp
LCBjb25zZXF1YXQgc2VkIGxvYm9ydGlzIGluLCBjb252YWxsaXMgZXQgdmVsaXQuIFV0IGVsZW1l
bnR1bSBsYWN1cyBhYyBkdWkgdmVzdGlidWx1bSBldSBjb25kaW1lbnR1bSBtaSBsdWN0dXMuIEZ1
c2NlIHBoYXJldHJhIHR1cnBpcyBpZCBlcmF0IGNvbmd1ZSBuZWMgYWxpcXVhbSBsZW8gdmVuZW5h
dGlzLiBDdW0gc29jaWlzIG5hdG9xdWUgcGVuYXRpYnVzIGV0IG1hZ25pcyBkaXMgcGFydHVyaWVu
dCBtb250ZXMsIG5hc2NldHVyIHJpZGljdWx1cyBtdXMuIENsYXNzIGFwdGVudCB0YWNpdGkgc29j
aW9zcXUgYWQgbGl0b3JhIHRvcnF1ZW50IHBlciBjb251YmlhIG5vc3RyYSwgcGVyIGluY2VwdG9z
IGhpbWVuYWVvcy4gU2VkIGVnZXN0YXMgdWx0cmljZXMgbWF1cmlzIHNlZCB0ZW1wb3IuIE1hZWNl
bmFzIHZpdGFlIGxpYmVybyB1dCBuaXNsIGdyYXZpZGEgZWxlaWZlbmQgYmxhbmRpdCBub24gcmlz
dXMuIEZ1c2NlIGdyYXZpZGEgdmVuZW5hdGlzIGRvbG9yIGV1IGltcGVyZGlldC4KK1V0IGF0IHRv
cnRvciBsaWd1bGEuIENyYXMgdGVtcG9yIHNlbSBzZWQgdGVsbHVzIGNvbnZhbGxpcyB0aW5jaWR1
bnQgZWdldCBlZ2V0IGRvbG9yLiBJbiBmYWNpbGlzaXMgYW50ZSBhdCB0dXJwaXMgc2VtcGVyIHNl
bXBlci4gRnVzY2UgZHVpIGRvbG9yLCByaG9uY3VzIGV0IGN1cnN1cyBpbiwgbWFsZXN1YWRhIGlu
IGp1c3RvLiBDdXJhYml0dXIgdnVscHV0YXRlIGFsaXF1ZXQgdGluY2lkdW50LiBRdWlzcXVlIHNp
dCBhbWV0IG1hc3NhIGp1c3RvLCBpbiBiaWJlbmR1bSBsZW8uIEFsaXF1YW0gbGFjaW5pYSBwaGFy
ZXRyYSBqdXN0by4gU3VzcGVuZGlzc2UgcmhvbmN1cyBqdXN0byBuZWMgZGlhbSBjdXJzdXMgdWxs
YW1jb3JwZXIuIE5hbSBwb3J0dGl0b3IgcG9ydHRpdG9yIGxpYmVybywgY29udmFsbGlzIHNvbGxp
Y2l0dWRpbiBudW5jIGV1aXNtb2QgYXQuIFByb2luIHRlbXB1cyBhdWN0b3IgdHVycGlzIHV0IGNv
bmd1ZS4gTnVsbGFtIG9ybmFyZSBpbnRlcmR1bSBlcm9zIHNlZCBzdXNjaXBpdC4gVXQgYXQgdG9y
dG9yIGxpZ3VsYS4gQ3JhcyB0ZW1wb3Igc2VtIHNlZCB0ZWxsdXMgY29udmFsbGlzIHRpbmNpZHVu
dCBlZ2V0IGVnZXQgZG9sb3IuCitJbiBmYWNpbGlzaXMgYW50ZSBhdCB0dXJwaXMgc2VtcGVyIHNl
bXBlci4gRnVzY2UgZHVpIGRvbG9yLCByaG9uY3VzIGV0IGN1cnN1cyBpbiwgbWFsZXN1YWRhIGlu
IGp1c3RvLiBDdXJhYml0dXIgdnVscHV0YXRlIGFsaXF1ZXQgdGluY2lkdW50LiBRdWlzcXVlIHNp
dCBhbWV0IG1hc3NhIGp1c3RvLCBpbiBiaWJlbmR1bSBsZW8uIEFsaXF1YW0gbGFjaW5pYSBwaGFy
ZXRyYSBqdXN0by4gU3VzcGVuZGlzc2UgcmhvbmN1cyBqdXN0byBuZWMgZGlhbSBjdXJzdXMgdWxs
YW1jb3JwZXIuIE5hbSBwb3J0dGl0b3IgcG9ydHRpdG9yIGxpYmVybywgY29udmFsbGlzIHNvbGxp
Y2l0dWRpbiBudW5jIGV1aXNtb2QgYXQuIFByb2luIHRlbXB1cyBhdWN0b3IgdHVycGlzIHV0IGNv
bmd1ZS4gTnVsbGFtIG9ybmFyZSBpbnRlcmR1bSBlcm9zIHNlZCBzdXNjaXBpdC4KK1doZW4gcmVz
aXppbmcgdGhlIHdpbmRvdyB0aGUgcmVnaW9ucyBzaG91bGQgbm90IGNoYW5nZS4KK1BBU1MKK1BB
U1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVk
LW5lc3RlZC1jb21wbGV4LXJlZ2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9h
dXRvaGVpZ2h0LW1peGVkLW5lc3RlZC1jb21wbGV4LXJlZ2lvbnMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ZTQwNTEwOGNlNmQzYmQyNTRiMjI2ZGQ5MzdkZjJkZWQ5OWUyOWQ4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtbmVzdGVkLWNvbXBs
ZXgtcmVnaW9ucy5odG1sCkBAIC0wLDAgKzEsMTA1IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxz
dHlsZT4KKyAgICAgICAgLmNvbnRlbnQgeworICAgICAgICAgICAgZm9udC1mYW1pbHk6IEFoZW07
CisgICAgICAgICAgICBmb250LXNpemU6IDEwcHg7CisgICAgICAgIH0KKworICAgICAgICAjY29u
dGVudDEgeworICAgICAgICAgICAgLXdlYmtpdC1mbG93LWludG86IGZsb3cxOworICAgICAgICB9
CisKKyAgICAgICAgI2NvbnRlbnQyIHsKKyAgICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBm
bG93MjsKKyAgICAgICAgfQorCisgICAgICAgICNjMSwgI2MyIHsKKyAgICAgICAgICAgIGJvcmRl
cjogdGhpbiBzb2xpZCBibGFjazsKKyAgICAgICAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAg
ICAgICAgfQorCisgICAgICAgIC5yZWdpb24xIHsKKyAgICAgICAgICAgIGJvcmRlcjogdGhpY2sg
c29saWQgYmx1ZTsKKyAgICAgICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93MTsKKyAgICAg
ICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgfQorCisgICAgICAgIC5yZWdpb24yIHsKKyAg
ICAgICAgICAgIGJvcmRlcjogdGhpY2sgc29saWQgcmVkOworICAgICAgICAgICAgLXdlYmtpdC1m
bG93LWZyb206IGZsb3cyOworICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICB9CisK
KyAgICAgICAgI3JlZ2lvbjEgeworICAgICAgICAgICAgcG9zaXRpb246IGZpeGVkOworICAgICAg
ICAgICAgYm90dG9tOiAyMDBweDsKKyAgICAgICAgICAgIHJpZ2h0OiAxMDBweDsKKyAgICAgICAg
ICAgIG1heC1oZWlnaHQ6IDEwMHB4OworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbjIgewor
ICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbjMgeworICAgICAgICAgICAgaGVpZ2h0OiAxMDAl
OworICAgICAgICAgICAgdG9wOiAwcHg7CisgICAgICAgICAgICBsZWZ0OiAyMjBweDsKKyAgICAg
ICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKKyAgICAgICAgfQorCisgICAgICAgICNyZWdpb240
IHsKKyAgICAgICAgICAgIG1heC1oZWlnaHQ6IDIwMHB4OworICAgICAgICB9CisKKyAgICAgICAg
I3JlZ2lvbjUgeworICAgICAgICAgICAgdG9wOiAwcHg7CisgICAgICAgICAgICBsZWZ0OiAyMjBw
eDsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNv
bHV0ZTsKKyAgICAgICAgfQorCisgICAgICAgICNyZWdpb242IHsKKyAgICAgICAgfQorCisgICAg
ICAgICNyZWdpb243IHsKKyAgICAgICAgICAgIC13ZWJraXQtcmVnaW9uLWJyZWFrLWJlZm9yZTog
YWx3YXlzOworICAgICAgICAgICAgbWF4LWhlaWdodDogMTAwcHg7CisgICAgICAgICAgICB3aWR0
aDogMTUwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIuLi8u
Li9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMTE5NjkiPltDU1MgUmVnaW9uc10gTmVzdGVkIGF1dG8taGVpZ2h0IHJlZ2lvbnMg
ZG9uJ3QgbGF5b3V0IGNvcnJlY3RseTwvYT4uPC9wPgorICAgIDxkaXYgY2xhc3M9ImNvbnRlbnQi
IGlkPSJjb250ZW50MSI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFk
aXBpc2NpbmcgZWxpdC4gQWVuZWFuIHVybmEgb3JjaSwgY29uc2VxdWF0IHNlZCBsb2JvcnRpcyBp
biwgY29udmFsbGlzIGV0IHZlbGl0LiBVdCBlbGVtZW50dW0gbGFjdXMgYWMgZHVpIHZlc3RpYnVs
dW0gZXUgY29uZGltZW50dW0gbWkgbHVjdHVzLiBGdXNjZSBwaGFyZXRyYSB0dXJwaXMgaWQgZXJh
dCBjb25ndWUgbmVjIGFsaXF1YW0gbGVvIHZlbmVuYXRpcy4gQ3VtIHNvY2lpcyBuYXRvcXVlIHBl
bmF0aWJ1cyBldCBtYWduaXMgZGlzIHBhcnR1cmllbnQgbW9udGVzLCBuYXNjZXR1ciByaWRpY3Vs
dXMgbXVzLiBDbGFzcyBhcHRlbnQgdGFjaXRpIHNvY2lvc3F1IGFkIGxpdG9yYSB0b3JxdWVudCBw
ZXIgY29udWJpYSBub3N0cmEsIHBlciBpbmNlcHRvcyBoaW1lbmFlb3MuIFNlZCBlZ2VzdGFzIHVs
dHJpY2VzIG1hdXJpcyBzZWQgdGVtcG9yLiBNYWVjZW5hcyB2aXRhZSBsaWJlcm8gdXQgbmlzbCBn
cmF2aWRhIGVsZWlmZW5kIGJsYW5kaXQgbm9uIHJpc3VzLiBGdXNjZSBncmF2aWRhIHZlbmVuYXRp
cyBkb2xvciBldSBpbXBlcmRpZXQuCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGVu
dCIgaWQ9ImNvbnRlbnQyIj5VdCBhdCB0b3J0b3IgbGlndWxhLiBDcmFzIHRlbXBvciBzZW0gc2Vk
IHRlbGx1cyBjb252YWxsaXMgdGluY2lkdW50IGVnZXQgZWdldCBkb2xvci4gSW4gZmFjaWxpc2lz
IGFudGUgYXQgdHVycGlzIHNlbXBlciBzZW1wZXIuIEZ1c2NlIGR1aSBkb2xvciwgcmhvbmN1cyBl
dCBjdXJzdXMgaW4sIG1hbGVzdWFkYSBpbiBqdXN0by4gQ3VyYWJpdHVyIHZ1bHB1dGF0ZSBhbGlx
dWV0IHRpbmNpZHVudC4gUXVpc3F1ZSBzaXQgYW1ldCBtYXNzYSBqdXN0bywgaW4gYmliZW5kdW0g
bGVvLiBBbGlxdWFtIGxhY2luaWEgcGhhcmV0cmEganVzdG8uIFN1c3BlbmRpc3NlIHJob25jdXMg
anVzdG8gbmVjIGRpYW0gY3Vyc3VzIHVsbGFtY29ycGVyLiBOYW0gcG9ydHRpdG9yIHBvcnR0aXRv
ciBsaWJlcm8sIGNvbnZhbGxpcyBzb2xsaWNpdHVkaW4gbnVuYyBldWlzbW9kIGF0LiBQcm9pbiB0
ZW1wdXMgYXVjdG9yIHR1cnBpcyB1dCBjb25ndWUuIE51bGxhbSBvcm5hcmUgaW50ZXJkdW0gZXJv
cyBzZWQgc3VzY2lwaXQuIFV0IGF0IHRvcnRvciBsaWd1bGEuIENyYXMgdGVtcG9yIHNlbSBzZWQg
dGVsbHVzIGNvbnZhbGxpcyB0aW5jaWR1bnQgZWdldCBlZ2V0IGRvbG9yLgorICAgICAgICA8ZGl2
IGNsYXNzPSJyZWdpb24xIiBpZD0icmVnaW9uNyI+PC9kaXY+CisgICAgSW4gZmFjaWxpc2lzIGFu
dGUgYXQgdHVycGlzIHNlbXBlciBzZW1wZXIuIEZ1c2NlIGR1aSBkb2xvciwgcmhvbmN1cyBldCBj
dXJzdXMgaW4sIG1hbGVzdWFkYSBpbiBqdXN0by4gQ3VyYWJpdHVyIHZ1bHB1dGF0ZSBhbGlxdWV0
IHRpbmNpZHVudC4gUXVpc3F1ZSBzaXQgYW1ldCBtYXNzYSBqdXN0bywgaW4gYmliZW5kdW0gbGVv
LiBBbGlxdWFtIGxhY2luaWEgcGhhcmV0cmEganVzdG8uIFN1c3BlbmRpc3NlIHJob25jdXMganVz
dG8gbmVjIGRpYW0gY3Vyc3VzIHVsbGFtY29ycGVyLiBOYW0gcG9ydHRpdG9yIHBvcnR0aXRvciBs
aWJlcm8sIGNvbnZhbGxpcyBzb2xsaWNpdHVkaW4gbnVuYyBldWlzbW9kIGF0LiBQcm9pbiB0ZW1w
dXMgYXVjdG9yIHR1cnBpcyB1dCBjb25ndWUuIE51bGxhbSBvcm5hcmUgaW50ZXJkdW0gZXJvcyBz
ZWQgc3VzY2lwaXQuCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVnaW9uMSIgaWQ9InJl
Z2lvbjEiPjwvZGl2PgorICAgIDxkaXYgaWQ9ImMxIj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVn
aW9uMSIgaWQ9InJlZ2lvbjIiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpb24yIiBp
ZD0icmVnaW9uMyI+PC9kaXY+CisgICAgPC9kaXY+CisgICAgPGRpdiBpZD0iYzIiIGRhdGEtZXhw
ZWN0ZWQtaGVpZ2h0PTY4Mj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVnaW9uMiIgaWQ9InJlZ2lv
bjQiPjwvZGl2PgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpb24yIiBpZD0icmVnaW9uNSI+PC9k
aXY+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lvbjIiIGlkPSJyZWdpb242Ij48L2Rpdj4KKyAg
ICA8L2Rpdj4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgY2hlY2tM
YXlvdXQoIiNjMiIpOworCisgICAgdmFyIG5ld0RpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOworICAgIG5ld0Rpdi5jbGFzc05hbWUgPSAiY29udGVudCI7CisgICAgdmFyIG5ld0Nv
bnRlbnQgPSBkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSgiV2hlbiByZXNpemluZyB0aGUgd2luZG93
IHRoZSByZWdpb25zIHNob3VsZCBub3QgY2hhbmdlLiIpOworICAgIG5ld0Rpdi5hcHBlbmRDaGls
ZChuZXdDb250ZW50KTsKKyAgICBjb250YWluZXJEaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiYzIiKTsKKyAgICBjb250YWluZXJEaXYuYXBwZW5kQ2hpbGQobmV3RGl2KTsKKyAgICBjb250
YWluZXJEaXYuc2V0QXR0cmlidXRlKCJkYXRhLWV4cGVjdGVkLWhlaWdodCIsIDY4Mik7CisKKyAg
ICBjaGVja0xheW91dCgiI2MyIik7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taXhlZC1uZXN0
ZWQtcmVnaW9ucy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hl
aWdodC1taXhlZC1uZXN0ZWQtcmVnaW9ucy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODYxNDcz
ODllNjQzMzNmNTMxYzJmYmI4NGI4MTY5NjRkMjdhZWVhOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVkLW5lc3RlZC1yZWdpb25zLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDE3IEBACitUZXN0IGZvciBbQ1NTIFJlZ2lvbnNdIE5lc3Rl
ZCBhdXRvLWhlaWdodCByZWdpb25zIGRvbid0IGxheW91dCBjb3JyZWN0bHkuCisKK0xvcmVtIGlw
c3VtIGRvbG9yIHNpdCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIEFlbmVhbiB1
cm5hIG9yY2ksIGNvbnNlcXVhdCBzZWQgbG9ib3J0aXMgaW4sIGNvbnZhbGxpcyBldCB2ZWxpdC4K
K1V0IGVsZW1lbnR1bSBsYWN1cyBhYyBkdWkgdmVzdGlidWx1bSBldSBjb25kaW1lbnR1bSBtaSBs
dWN0dXMuIEZ1c2NlIHBoYXJldHJhIHR1cnBpcyBpZCBlcmF0IGNvbmd1ZSBuZWMgYWxpcXVhbSBs
ZW8gdmVuZW5hdGlzLiBDdW0gc29jaWlzIG5hdG9xdWUgcGVuYXRpYnVzIGV0IG1hZ25pcyBkaXMg
cGFydHVyaWVudCBtb250ZXMsIG5hc2NldHVyIHJpZGljdWx1cyBtdXMuCitDbGFzcyBhcHRlbnQg
dGFjaXRpIHNvY2lvc3F1IGFkIGxpdG9yYSB0b3JxdWVudCBwZXIgY29udWJpYSBub3N0cmEsIHBl
ciBpbmNlcHRvcyBoaW1lbmFlb3MuIFNlZCBlZ2VzdGFzIHVsdHJpY2VzIG1hdXJpcyBzZWQgdGVt
cG9yLiBNYWVjZW5hcyB2aXRhZSBsaWJlcm8gdXQgbmlzbCBncmF2aWRhIGVsZWlmZW5kIGJsYW5k
aXQgbm9uIHJpc3VzLgorRnVzY2UgZ3JhdmlkYSB2ZW5lbmF0aXMgZG9sb3IgZXUgaW1wZXJkaWV0
LgorUEFTUworUEFTUworUEFTUworUEFTUworVXQgYXQgdG9ydG9yIGxpZ3VsYS4gQ3JhcyB0ZW1w
b3Igc2VtIHNlZCB0ZWxsdXMgY29udmFsbGlzIHRpbmNpZHVudCBlZ2V0IGVnZXQgZG9sb3IuIElu
IGZhY2lsaXNpcyBhbnRlIGF0IHR1cnBpcyBzZW1wZXIgc2VtcGVyLiBGdXNjZSBkdWkgZG9sb3Is
IHJob25jdXMgZXQgY3Vyc3VzIGluLCBtYWxlc3VhZGEgaW4ganVzdG8uCitDdXJhYml0dXIgdnVs
cHV0YXRlIGFsaXF1ZXQgdGluY2lkdW50LiBRdWlzcXVlIHNpdCBhbWV0IG1hc3NhIGp1c3RvLCBp
biBiaWJlbmR1bSBsZW8uIEFsaXF1YW0gbGFjaW5pYSBwaGFyZXRyYSBqdXN0by4gU3VzcGVuZGlz
c2UgcmhvbmN1cyBqdXN0byBuZWMgZGlhbSBjdXJzdXMgdWxsYW1jb3JwZXIuIE5hbSBwb3J0dGl0
b3IgcG9ydHRpdG9yIGxpYmVybywgY29udmFsbGlzIHNvbGxpY2l0dWRpbiBudW5jIGV1aXNtb2Qg
YXQuIFByb2luIHRlbXB1cyBhdWN0b3IgdHVycGlzIHV0IGNvbmd1ZS4gTnVsbGFtIG9ybmFyZSBp
bnRlcmR1bSBlcm9zIHNlZCBzdXNjaXBpdC4KK1BBU1MKK1BBU1MKK1NlZCBuZWMganVzdG8gbWFn
bmEuIE51bGxhbSBhY2N1bXNhbiBhcmN1IGV0IGVuaW0gYmxhbmRpdCBzYWdpdHRpcy4gSW4gc2Nl
bGVyaXNxdWUsIGZlbGlzIGFjIGZlcm1lbnR1bSBzY2VsZXJpc3F1ZSwgcHVydXMgdmVsaXQgYWxp
cXVldCBkdWksIG5vbiB2aXZlcnJhIGVyb3MgZXJvcyB2ZWwgc2VtLiBBZW5lYW4gdHVycGlzIGxl
Y3R1cywgbW9sZXN0aWUgc29kYWxlcyBhZGlwaXNjaW5nIG5vbiwgcmhvbmN1cyBldSBqdXN0by4g
TnVsbGFtIG1vbGVzdGllIGVuaW0gYWMgbnVsbGEgY3Vyc3VzIGZyaW5naWxsYS4gRXRpYW0gc2Vk
IG1ldHVzIGxlY3R1cy4gQWxpcXVhbSBlcmF0IHZvbHV0cGF0LiBRdWlzcXVlIHB1bHZpbmFyIGhl
bmRyZXJpdCB1cm5hIG5vbiB2YXJpdXMuIERvbmVjIGltcGVyZGlldCwgbWFzc2EgaW4gc2VtcGVy
IGhlbmRyZXJpdCwgdXJuYSBudWxsYSBkYXBpYnVzIHRlbGx1cywgYWMgZGlnbmlzc2ltIGVuaW0g
bmVxdWUgdXQgb2Rpby4gSW4gc2FnaXR0aXMsIGVzdCBpbiBmcmluZ2lsbGEgYWNjdW1zYW4sIG9k
aW8ganVzdG8gbGFjaW5pYSBkdWksIHNlZCBwdWx2aW5hciB1cm5hIGxvcmVtIG5vbiBkdWkuCitQ
QVNTCitQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdo
dC1taXhlZC1uZXN0ZWQtcmVnaW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1
dG9oZWlnaHQtbWl4ZWQtbmVzdGVkLXJlZ2lvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wYzQxMTJiMDVi
ZDYzNTU1ZTRmZTczY2RmZDUwZjcyYmZmNTA3ZjlhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtbmVzdGVkLXJlZ2lvbnMuaHRtbApA
QCAtMCwwICsxLDY4IEBACis8aHRtbD4KKzxoZWFkPgorICAgIDxzdHlsZT4KKyAgICAgICAgLmNv
bnRhaW5lciB7CisgICAgICAgICAgICBmb250LWZhbWlseTogQWhlbTsKKyAgICAgICAgICAgIGZv
bnQtc2l6ZTogMTBweDsKKyAgICAgICAgfQorCisgICAgICAgICNjb250ZW50MSB7CisgICAgICAg
ICAgICAtd2Via2l0LWZsb3ctaW50bzogZmxvdzE7CisgICAgICAgIH0KKworICAgICAgICAjY29u
dGVudDIgeworICAgICAgICAgICAgLXdlYmtpdC1mbG93LWludG86IGZsb3cyOworICAgICAgICB9
CisKKyAgICAgICAgI2NvbnRlbnQzIHsKKyAgICAgICAgICAgIC13ZWJraXQtZmxvdy1pbnRvOiBm
bG93MzsKKyAgICAgICAgfQorCisgICAgICAgIC5yZWdpb24xIHsKKyAgICAgICAgICAgIGJvcmRl
cjogdGhpY2sgc29saWQgYmx1ZTsKKyAgICAgICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93
MTsKKyAgICAgICAgfQorCisgICAgICAgIC5yZWdpb24yIHsKKyAgICAgICAgICAgIGJvcmRlcjog
dGhpY2sgc29saWQgcmVkOworICAgICAgICAgICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3cyOwor
ICAgICAgICB9CisKKyAgICAgICAgLnJlZ2lvbjMgeworICAgICAgICAgICAgYm9yZGVyOiB0aGlj
ayBzb2xpZCBncmVlbjsKKyAgICAgICAgICAgIC13ZWJraXQtZmxvdy1mcm9tOiBmbG93MzsKKyAg
ICAgICAgfQorCisgICAgICAgICNyZWdpb24xIHsKKyAgICAgICAgICAgIHdpZHRoOiA1MDBweDsK
KyAgICAgICAgfQorCisgICAgICAgICNyZWdpb24yIHsKKyAgICAgICAgICAgIG1heC1oZWlnaHQ6
IDEwMXB4CisgICAgICAgIH0KKworICAgICAgICAjcmVnaW9uMyB7CisgICAgICAgICAgICBtYXgt
aGVpZ2h0OiA1MHB4OworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbjQgeworICAgICAgICAg
ICAgbWF4LWhlaWdodDogMjBweDsKKyAgICAgICAgfQorCisgICAgICAgICNyZWdpb241IHsKKyAg
ICAgICAgICAgIG1heC1oZWlnaHQ6IDExMXB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2NoZWNrLWxheW91dC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9ImNoZWNrTGF5b3V0KCdib2R5IGRpdicpIj4KKyAgICA8
cD5UZXN0IGZvciA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTExOTY5Ij5bQ1NTIFJlZ2lvbnNdIE5lc3RlZCBhdXRvLWhlaWdodCByZWdpb25zIGRvbid0
IGxheW91dCBjb3JyZWN0bHk8L2E+LjwvcD4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiIGlk
PSJjb250ZW50MSIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9NDEyPkxvcmVtIGlwc3VtIGRvbG9yIHNp
dCBhbWV0LCBjb25zZWN0ZXR1ciBhZGlwaXNjaW5nIGVsaXQuIEFlbmVhbiB1cm5hIG9yY2ksIGNv
bnNlcXVhdCBzZWQgbG9ib3J0aXMgaW4sIGNvbnZhbGxpcyBldCB2ZWxpdC4gPGRpdiBjbGFzcz0i
cmVnaW9uMyIgaWQ9InJlZ2lvbjUiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PTEyMT48L2Rpdj4gVXQg
ZWxlbWVudHVtIGxhY3VzIGFjIGR1aSB2ZXN0aWJ1bHVtIGV1IGNvbmRpbWVudHVtIG1pIGx1Y3R1
cy4gRnVzY2UgcGhhcmV0cmEgdHVycGlzIGlkIGVyYXQgY29uZ3VlIG5lYyBhbGlxdWFtIGxlbyB2
ZW5lbmF0aXMuIEN1bSBzb2NpaXMgbmF0b3F1ZSBwZW5hdGlidXMgZXQgbWFnbmlzIGRpcyBwYXJ0
dXJpZW50IG1vbnRlcywgbmFzY2V0dXIgcmlkaWN1bHVzIG11cy48ZGl2IGNsYXNzPSJyZWdpb24y
IiBpZD0icmVnaW9uMiIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9MTExPjwvZGl2PkNsYXNzIGFwdGVu
dCB0YWNpdGkgc29jaW9zcXUgYWQgbGl0b3JhIHRvcnF1ZW50IHBlciBjb251YmlhIG5vc3RyYSwg
cGVyIGluY2VwdG9zIGhpbWVuYWVvcy4gU2VkIGVnZXN0YXMgdWx0cmljZXMgbWF1cmlzIHNlZCB0
ZW1wb3IuIE1hZWNlbmFzIHZpdGFlIGxpYmVybyB1dCBuaXNsIGdyYXZpZGEgZWxlaWZlbmQgYmxh
bmRpdCBub24gcmlzdXMuPGRpdiBjbGFzcz0icmVnaW9uMiIgaWQ9InJlZ2lvbjMiIGRhdGEtZXhw
ZWN0ZWQtaGVpZ2h0PTUwPjwvZGl2PkZ1c2NlIGdyYXZpZGEgdmVuZW5hdGlzIGRvbG9yIGV1IGlt
cGVyZGlldC4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJjb250YWluZXIiIGlkPSJjb250
ZW50MiIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9MTQxPlV0IGF0IHRvcnRvciBsaWd1bGEuIENyYXMg
dGVtcG9yIHNlbSBzZWQgdGVsbHVzIGNvbnZhbGxpcyB0aW5jaWR1bnQgZWdldCBlZ2V0IGRvbG9y
LiBJbiBmYWNpbGlzaXMgYW50ZSBhdCB0dXJwaXMgc2VtcGVyIHNlbXBlci4gRnVzY2UgZHVpIGRv
bG9yLCByaG9uY3VzIGV0IGN1cnN1cyBpbiwgbWFsZXN1YWRhIGluIGp1c3RvLiA8ZGl2IGNsYXNz
PSJyZWdpb24zIiBpZD0icmVnaW9uNCIgZGF0YS1leHBlY3RlZC1oZWlnaHQ9MzA+PC9kaXY+Q3Vy
YWJpdHVyIHZ1bHB1dGF0ZSBhbGlxdWV0IHRpbmNpZHVudC4gUXVpc3F1ZSBzaXQgYW1ldCBtYXNz
YSBqdXN0bywgaW4gYmliZW5kdW0gbGVvLiBBbGlxdWFtIGxhY2luaWEgcGhhcmV0cmEganVzdG8u
IFN1c3BlbmRpc3NlIHJob25jdXMganVzdG8gbmVjIGRpYW0gY3Vyc3VzIHVsbGFtY29ycGVyLiBO
YW0gcG9ydHRpdG9yIHBvcnR0aXRvciBsaWJlcm8sIGNvbnZhbGxpcyBzb2xsaWNpdHVkaW4gbnVu
YyBldWlzbW9kIGF0LiBQcm9pbiB0ZW1wdXMgYXVjdG9yIHR1cnBpcyB1dCBjb25ndWUuIE51bGxh
bSBvcm5hcmUgaW50ZXJkdW0gZXJvcyBzZWQgc3VzY2lwaXQuCisgICAgPC9kaXY+CisgICAgPGRp
diBjbGFzcz0iY29udGFpbmVyIiBpZD0iY29udGVudDMiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PTEz
MT5TZWQgbmVjIGp1c3RvIG1hZ25hLiBOdWxsYW0gYWNjdW1zYW4gYXJjdSBldCBlbmltIGJsYW5k
aXQgc2FnaXR0aXMuIEluIHNjZWxlcmlzcXVlLCBmZWxpcyBhYyBmZXJtZW50dW0gc2NlbGVyaXNx
dWUsIHB1cnVzIHZlbGl0IGFsaXF1ZXQgZHVpLCBub24gdml2ZXJyYSBlcm9zIGVyb3MgdmVsIHNl
bS4gQWVuZWFuIHR1cnBpcyBsZWN0dXMsIG1vbGVzdGllIHNvZGFsZXMgYWRpcGlzY2luZyBub24s
IHJob25jdXMgZXUganVzdG8uIE51bGxhbSBtb2xlc3RpZSBlbmltIGFjIG51bGxhIGN1cnN1cyBm
cmluZ2lsbGEuIEV0aWFtIHNlZCBtZXR1cyBsZWN0dXMuIEFsaXF1YW0gZXJhdCB2b2x1dHBhdC4g
UXVpc3F1ZSBwdWx2aW5hciBoZW5kcmVyaXQgdXJuYSBub24gdmFyaXVzLiBEb25lYyBpbXBlcmRp
ZXQsIG1hc3NhIGluIHNlbXBlciBoZW5kcmVyaXQsIHVybmEgbnVsbGEgZGFwaWJ1cyB0ZWxsdXMs
IGFjIGRpZ25pc3NpbSBlbmltIG5lcXVlIHV0IG9kaW8uIEluIHNhZ2l0dGlzLCBlc3QgaW4gZnJp
bmdpbGxhIGFjY3Vtc2FuLCBvZGlvIGp1c3RvIGxhY2luaWEgZHVpLCBzZWQgcHVsdmluYXIgdXJu
YSBsb3JlbSBub24gZHVpLjwvZGl2PgorICAgIDxkaXYgY2xhc3M9InJlZ2lvbjEiIGlkPSJyZWdp
b24xIiBkYXRhLWV4cGVjdGVkLWhlaWdodD00MjI+CisgICAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taXhl
ZC1wYXJhbGxlbC1yZWdpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9hdXRvaGVpZ2h0LW1peGVkLXBhcmFsbGVsLXJlZ2lvbnMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjg3MDc1ZDhjMzkwOTM5N2U5MTAxOTE5MGVkYzQzNTBlYzNkYjY5OTYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1taXhlZC1wYXJhbGxl
bC1yZWdpb25zLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK1Rlc3QgZm9yIFtDU1MgUmVn
aW9uc10gTmVzdGVkIGF1dG8taGVpZ2h0IHJlZ2lvbnMgZG9uJ3QgbGF5b3V0IGNvcnJlY3RseS4K
KworTG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxp
dC4gQWVuZWFuIHVybmEgb3JjaSwgY29uc2VxdWF0IHNlZCBsb2JvcnRpcyBpbiwgY29udmFsbGlz
IGV0IHZlbGl0LiBVdCBlbGVtZW50dW0gbGFjdXMgYWMgZHVpIHZlc3RpYnVsdW0gZXUgY29uZGlt
ZW50dW0gbWkgbHVjdHVzLiBGdXNjZSBwaGFyZXRyYSB0dXJwaXMgaWQgZXJhdCBjb25ndWUgbmVj
IGFsaXF1YW0gbGVvIHZlbmVuYXRpcy4gQ3VtIHNvY2lpcyBuYXRvcXVlIHBlbmF0aWJ1cyBldCBt
YWduaXMgZGlzIHBhcnR1cmllbnQgbW9udGVzLCBuYXNjZXR1ciByaWRpY3VsdXMgbXVzLiBDbGFz
cyBhcHRlbnQgdGFjaXRpIHNvY2lvc3F1IGFkIGxpdG9yYSB0b3JxdWVudCBwZXIgY29udWJpYSBu
b3N0cmEsIHBlciBpbmNlcHRvcyBoaW1lbmFlb3MuIFNlZCBlZ2VzdGFzIHVsdHJpY2VzIG1hdXJp
cyBzZWQgdGVtcG9yLiBNYWVjZW5hcyB2aXRhZSBsaWJlcm8gdXQgbmlzbCBncmF2aWRhIGVsZWlm
ZW5kIGJsYW5kaXQgbm9uIHJpc3VzLiBGdXNjZSBncmF2aWRhIHZlbmVuYXRpcyBkb2xvciBldSBp
bXBlcmRpZXQuCitVdCBhdCB0b3J0b3IgbGlndWxhLiBDcmFzIHRlbXBvciBzZW0gc2VkIHRlbGx1
cyBjb252YWxsaXMgdGluY2lkdW50IGVnZXQgZWdldCBkb2xvci4gSW4gZmFjaWxpc2lzIGFudGUg
YXQgdHVycGlzIHNlbXBlciBzZW1wZXIuIEZ1c2NlIGR1aSBkb2xvciwgcmhvbmN1cyBldCBjdXJz
dXMgaW4sIG1hbGVzdWFkYSBpbiBqdXN0by4gQ3VyYWJpdHVyIHZ1bHB1dGF0ZSBhbGlxdWV0IHRp
bmNpZHVudC4gUXVpc3F1ZSBzaXQgYW1ldCBtYXNzYSBqdXN0bywgaW4gYmliZW5kdW0gbGVvLiBB
bGlxdWFtIGxhY2luaWEgcGhhcmV0cmEganVzdG8uIFN1c3BlbmRpc3NlIHJob25jdXMganVzdG8g
bmVjIGRpYW0gY3Vyc3VzIHVsbGFtY29ycGVyLiBOYW0gcG9ydHRpdG9yIHBvcnR0aXRvciBsaWJl
cm8sIGNvbnZhbGxpcyBzb2xsaWNpdHVkaW4gbnVuYyBldWlzbW9kIGF0LiBQcm9pbiB0ZW1wdXMg
YXVjdG9yIHR1cnBpcyB1dCBjb25ndWUuIE51bGxhbSBvcm5hcmUgaW50ZXJkdW0gZXJvcyBzZWQg
c3VzY2lwaXQuIFV0IGF0IHRvcnRvciBsaWd1bGEuIENyYXMgdGVtcG9yIHNlbSBzZWQgdGVsbHVz
IGNvbnZhbGxpcyB0aW5jaWR1bnQgZWdldCBlZ2V0IGRvbG9yLiBJbiBmYWNpbGlzaXMgYW50ZSBh
dCB0dXJwaXMgc2VtcGVyIHNlbXBlci4gRnVzY2UgZHVpIGRvbG9yLCByaG9uY3VzIGV0IGN1cnN1
cyBpbiwgbWFsZXN1YWRhIGluIGp1c3RvLiBDdXJhYml0dXIgdnVscHV0YXRlIGFsaXF1ZXQgdGlu
Y2lkdW50LiBRdWlzcXVlIHNpdCBhbWV0IG1hc3NhIGp1c3RvLCBpbiBiaWJlbmR1bSBsZW8uIEFs
aXF1YW0gbGFjaW5pYSBwaGFyZXRyYSBqdXN0by4gU3VzcGVuZGlzc2UgcmhvbmN1cyBqdXN0byBu
ZWMgZGlhbSBjdXJzdXMgdWxsYW1jb3JwZXIuIE5hbSBwb3J0dGl0b3IgcG9ydHRpdG9yIGxpYmVy
bywgY29udmFsbGlzIHNvbGxpY2l0dWRpbiBudW5jIGV1aXNtb2QgYXQuIFByb2luIHRlbXB1cyBh
dWN0b3IgdHVycGlzIHV0IGNvbmd1ZS4gTnVsbGFtIG9ybmFyZSBpbnRlcmR1bSBlcm9zIHNlZCBz
dXNjaXBpdC4KK1doZW4gcmVzaXppbmcgdGhlIHdpbmRvdyB0aGUgcmVnaW9ucyBzaG91bGQgbm90
IGNoYW5nZS4KK1BBU1MKK1BBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9u
cy9hdXRvaGVpZ2h0LW1peGVkLXBhcmFsbGVsLXJlZ2lvbnMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW1peGVkLXBhcmFsbGVsLXJlZ2lvbnMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4wODQwMjAxOTQ4NWI4MDM1YWYwNmM4Nzg3MzI4NzFjZTE5OWE1MzRhCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbWl4ZWQtcGFyYWxs
ZWwtcmVnaW9ucy5odG1sCkBAIC0wLDAgKzEsOTggQEAKKzxodG1sPgorPGhlYWQ+CisgICAgPHN0
eWxlPgorICAgICAgICAuY29udGVudCB7CisgICAgICAgICAgICBmb250LWZhbWlseTogQWhlbTsK
KyAgICAgICAgICAgIGZvbnQtc2l6ZTogMTBweDsKKyAgICAgICAgfQorCisgICAgICAgICNjb250
ZW50MSB7CisgICAgICAgICAgICAtd2Via2l0LWZsb3ctaW50bzogZmxvdzE7CisgICAgICAgIH0K
KworICAgICAgICAjY29udGVudDIgeworICAgICAgICAgICAgLXdlYmtpdC1mbG93LWludG86IGZs
b3cyOworICAgICAgICB9CisKKyAgICAgICAgI2MxLCAjYzIgeworICAgICAgICAgICAgYm9yZGVy
OiB0aGluIHNvbGlkIGJsYWNrOworICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOworICAg
ICAgICB9CisKKyAgICAgICAgLnJlZ2lvbjEgeworICAgICAgICAgICAgYm9yZGVyOiB0aGljayBz
b2xpZCBibHVlOworICAgICAgICAgICAgLXdlYmtpdC1mbG93LWZyb206IGZsb3cxOworICAgICAg
ICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICB9CisKKyAgICAgICAgLnJlZ2lvbjIgeworICAg
ICAgICAgICAgYm9yZGVyOiB0aGljayBzb2xpZCByZWQ7CisgICAgICAgICAgICAtd2Via2l0LWZs
b3ctZnJvbTogZmxvdzI7CisgICAgICAgICAgICB3aWR0aDogMjAwcHg7CisgICAgICAgIH0KKwor
ICAgICAgICAjcmVnaW9uMSB7CisgICAgICAgICAgICBwb3NpdGlvbjogZml4ZWQ7CisgICAgICAg
ICAgICBib3R0b206IDIwMHB4OworICAgICAgICAgICAgcmlnaHQ6IDEwMHB4OworICAgICAgICAg
ICAgbWF4LWhlaWdodDogMTAwcHg7CisgICAgICAgIH0KKworICAgICAgICAjcmVnaW9uMiB7Cisg
ICAgICAgIH0KKworICAgICAgICAjcmVnaW9uMyB7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7
CisgICAgICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgICAgIGxlZnQ6IDIyMHB4OworICAgICAg
ICAgICAgcG9zaXRpb246IGFic29sdXRlOworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbjQg
eworICAgICAgICAgICAgbWF4LWhlaWdodDogMjAwcHg7CisgICAgICAgIH0KKworICAgICAgICAj
cmVnaW9uNSB7CisgICAgICAgICAgICB0b3A6IDBweDsKKyAgICAgICAgICAgIGxlZnQ6IDIyMHB4
OworICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICAgICAgcG9zaXRpb246IGFic29s
dXRlOworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbjYgeworICAgICAgICAgICAgbWF4LWhl
aWdodDogMzAwcHg7CisgICAgICAgIH0KKyAgICA8L3N0eWxlPgorICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvY2hlY2stbGF5b3V0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDxwPlRlc3QgZm9yIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTE5NjkiPltDU1MgUmVnaW9uc10gTmVzdGVkIGF1dG8taGVpZ2h0IHJlZ2lv
bnMgZG9uJ3QgbGF5b3V0IGNvcnJlY3RseTwvYT4uPC9wPgorICAgIDxkaXYgY2xhc3M9ImNvbnRl
bnQiIGlkPSJjb250ZW50MSI+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVy
IGFkaXBpc2NpbmcgZWxpdC4gQWVuZWFuIHVybmEgb3JjaSwgY29uc2VxdWF0IHNlZCBsb2JvcnRp
cyBpbiwgY29udmFsbGlzIGV0IHZlbGl0LiBVdCBlbGVtZW50dW0gbGFjdXMgYWMgZHVpIHZlc3Rp
YnVsdW0gZXUgY29uZGltZW50dW0gbWkgbHVjdHVzLiBGdXNjZSBwaGFyZXRyYSB0dXJwaXMgaWQg
ZXJhdCBjb25ndWUgbmVjIGFsaXF1YW0gbGVvIHZlbmVuYXRpcy4gQ3VtIHNvY2lpcyBuYXRvcXVl
IHBlbmF0aWJ1cyBldCBtYWduaXMgZGlzIHBhcnR1cmllbnQgbW9udGVzLCBuYXNjZXR1ciByaWRp
Y3VsdXMgbXVzLiBDbGFzcyBhcHRlbnQgdGFjaXRpIHNvY2lvc3F1IGFkIGxpdG9yYSB0b3JxdWVu
dCBwZXIgY29udWJpYSBub3N0cmEsIHBlciBpbmNlcHRvcyBoaW1lbmFlb3MuIFNlZCBlZ2VzdGFz
IHVsdHJpY2VzIG1hdXJpcyBzZWQgdGVtcG9yLiBNYWVjZW5hcyB2aXRhZSBsaWJlcm8gdXQgbmlz
bCBncmF2aWRhIGVsZWlmZW5kIGJsYW5kaXQgbm9uIHJpc3VzLiBGdXNjZSBncmF2aWRhIHZlbmVu
YXRpcyBkb2xvciBldSBpbXBlcmRpZXQuCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29u
dGVudCIgaWQ9ImNvbnRlbnQyIj5VdCBhdCB0b3J0b3IgbGlndWxhLiBDcmFzIHRlbXBvciBzZW0g
c2VkIHRlbGx1cyBjb252YWxsaXMgdGluY2lkdW50IGVnZXQgZWdldCBkb2xvci4gSW4gZmFjaWxp
c2lzIGFudGUgYXQgdHVycGlzIHNlbXBlciBzZW1wZXIuIEZ1c2NlIGR1aSBkb2xvciwgcmhvbmN1
cyBldCBjdXJzdXMgaW4sIG1hbGVzdWFkYSBpbiBqdXN0by4gQ3VyYWJpdHVyIHZ1bHB1dGF0ZSBh
bGlxdWV0IHRpbmNpZHVudC4gUXVpc3F1ZSBzaXQgYW1ldCBtYXNzYSBqdXN0bywgaW4gYmliZW5k
dW0gbGVvLiBBbGlxdWFtIGxhY2luaWEgcGhhcmV0cmEganVzdG8uIFN1c3BlbmRpc3NlIHJob25j
dXMganVzdG8gbmVjIGRpYW0gY3Vyc3VzIHVsbGFtY29ycGVyLiBOYW0gcG9ydHRpdG9yIHBvcnR0
aXRvciBsaWJlcm8sIGNvbnZhbGxpcyBzb2xsaWNpdHVkaW4gbnVuYyBldWlzbW9kIGF0LiBQcm9p
biB0ZW1wdXMgYXVjdG9yIHR1cnBpcyB1dCBjb25ndWUuIE51bGxhbSBvcm5hcmUgaW50ZXJkdW0g
ZXJvcyBzZWQgc3VzY2lwaXQuIFV0IGF0IHRvcnRvciBsaWd1bGEuIENyYXMgdGVtcG9yIHNlbSBz
ZWQgdGVsbHVzIGNvbnZhbGxpcyB0aW5jaWR1bnQgZWdldCBlZ2V0IGRvbG9yLiBJbiBmYWNpbGlz
aXMgYW50ZSBhdCB0dXJwaXMgc2VtcGVyIHNlbXBlci4gRnVzY2UgZHVpIGRvbG9yLCByaG9uY3Vz
IGV0IGN1cnN1cyBpbiwgbWFsZXN1YWRhIGluIGp1c3RvLiBDdXJhYml0dXIgdnVscHV0YXRlIGFs
aXF1ZXQgdGluY2lkdW50LiBRdWlzcXVlIHNpdCBhbWV0IG1hc3NhIGp1c3RvLCBpbiBiaWJlbmR1
bSBsZW8uIEFsaXF1YW0gbGFjaW5pYSBwaGFyZXRyYSBqdXN0by4gU3VzcGVuZGlzc2UgcmhvbmN1
cyBqdXN0byBuZWMgZGlhbSBjdXJzdXMgdWxsYW1jb3JwZXIuIE5hbSBwb3J0dGl0b3IgcG9ydHRp
dG9yIGxpYmVybywgY29udmFsbGlzIHNvbGxpY2l0dWRpbiBudW5jIGV1aXNtb2QgYXQuIFByb2lu
IHRlbXB1cyBhdWN0b3IgdHVycGlzIHV0IGNvbmd1ZS4gTnVsbGFtIG9ybmFyZSBpbnRlcmR1bSBl
cm9zIHNlZCBzdXNjaXBpdC4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGNsYXNzPSJyZWdpb24xIiBp
ZD0icmVnaW9uMSI+PC9kaXY+CisgICAgPGRpdiBpZD0iYzEiPgorICAgICAgICA8ZGl2IGNsYXNz
PSJyZWdpb24xIiBpZD0icmVnaW9uMiI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lv
bjIiIGlkPSJyZWdpb24zIj48L2Rpdj4KKyAgICA8L2Rpdj4KKyAgICA8ZGl2IGlkPSJjMiIgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9NTIyPgorICAgICAgICA8ZGl2IGNsYXNzPSJyZWdpb24yIiBpZD0i
cmVnaW9uNCI+PC9kaXY+CisgICAgICAgIDxkaXYgY2xhc3M9InJlZ2lvbjIiIGlkPSJyZWdpb241
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBjbGFzcz0icmVnaW9uMiIgaWQ9InJlZ2lvbjYiPjwvZGl2
PgorICAgIDwvZGl2PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBj
aGVja0xheW91dCgiI2MyIik7CisKKyAgICB2YXIgbmV3RGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiZGl2Iik7CisgICAgbmV3RGl2LmNsYXNzTmFtZSA9ICJjb250ZW50IjsKKyAgICB2YXIg
bmV3Q29udGVudCA9IGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJXaGVuIHJlc2l6aW5nIHRoZSB3
aW5kb3cgdGhlIHJlZ2lvbnMgc2hvdWxkIG5vdCBjaGFuZ2UuIik7CisgICAgbmV3RGl2LmFwcGVu
ZENoaWxkKG5ld0NvbnRlbnQpOworICAgIGNvbnRhaW5lckRpdiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJjMiIpOworICAgIGNvbnRhaW5lckRpdi5hcHBlbmRDaGlsZChuZXdEaXYpOworICAg
IGNvbnRhaW5lckRpdi5zZXRBdHRyaWJ1dGUoImRhdGEtZXhwZWN0ZWQtaGVpZ2h0IiwgNTMyKTsK
KworICAgIGNoZWNrTGF5b3V0KCIjYzIiKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVpZ2h0LW5lc3Rl
ZC1yZWdpb25zLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9hdXRvaGVp
Z2h0LW5lc3RlZC1yZWdpb25zLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZDMzYmE3N2QxZDRi
OWEyNTg3YjZiNzMwNDAyOGUyNmZmNGM1MmE5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbmVzdGVkLXJlZ2lvbnMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNyBAQAorVGVzdCBmb3IgW0NTUyBSZWdpb25zXSBOZXN0ZWQgYXV0by1oZWlnaHQg
cmVnaW9ucyBkb24ndCBsYXlvdXQgY29ycmVjdGx5LgorCitMb3JlbSBpcHN1bSBkb2xvciBzaXQg
YW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBlbGl0LiBBZW5lYW4gdXJuYSBvcmNpLCBjb25z
ZXF1YXQgc2VkIGxvYm9ydGlzIGluLCBjb252YWxsaXMgZXQgdmVsaXQuIFV0IGVsZW1lbnR1bSBs
YWN1cyBhYyBkdWkgdmVzdGlidWx1bSBldSBjb25kaW1lbnR1bSBtaSBsdWN0dXMuIEZ1c2NlIHBo
YXJldHJhIHR1cnBpcyBpZCBlcmF0IGNvbmd1ZSBuZWMgYWxpcXVhbSBsZW8gdmVuZW5hdGlzLiBD
dW0gc29jaWlzIG5hdG9xdWUgcGVuYXRpYnVzIGV0IG1hZ25pcyBkaXMgcGFydHVyaWVudCBtb250
ZXMsIG5hc2NldHVyIHJpZGljdWx1cyBtdXMuCitQQVNTCitDbGFzcyBhcHRlbnQgdGFjaXRpIHNv
Y2lvc3F1IGFkIGxpdG9yYSB0b3JxdWVudCBwZXIgY29udWJpYSBub3N0cmEsIHBlciBpbmNlcHRv
cyBoaW1lbmFlb3MuIFNlZCBlZ2VzdGFzIHVsdHJpY2VzIG1hdXJpcyBzZWQgdGVtcG9yLiBNYWVj
ZW5hcyB2aXRhZSBsaWJlcm8gdXQgbmlzbCBncmF2aWRhIGVsZWlmZW5kIGJsYW5kaXQgbm9uIHJp
c3VzLiBGdXNjZSBncmF2aWRhIHZlbmVuYXRpcyBkb2xvciBldSBpbXBlcmRpZXQuCitVdCBhdCB0
b3J0b3IgbGlndWxhLiBDcmFzIHRlbXBvciBzZW0gc2VkIHRlbGx1cyBjb252YWxsaXMgdGluY2lk
dW50IGVnZXQgZWdldCBkb2xvci4gSW4gZmFjaWxpc2lzIGFudGUgYXQgdHVycGlzIHNlbXBlciBz
ZW1wZXIuIEZ1c2NlIGR1aSBkb2xvciwgcmhvbmN1cyBldCBjdXJzdXMgaW4sIG1hbGVzdWFkYSBp
biBqdXN0by4gQ3VyYWJpdHVyIHZ1bHB1dGF0ZSBhbGlxdWV0IHRpbmNpZHVudC4gUXVpc3F1ZSBz
aXQgYW1ldCBtYXNzYSBqdXN0bywgaW4gYmliZW5kdW0gbGVvLiBBbGlxdWFtIGxhY2luaWEgcGhh
cmV0cmEganVzdG8uIFN1c3BlbmRpc3NlIHJob25jdXMganVzdG8gbmVjIGRpYW0gY3Vyc3VzIHVs
bGFtY29ycGVyLiBOYW0gcG9ydHRpdG9yIHBvcnR0aXRvciBsaWJlcm8sIGNvbnZhbGxpcyBzb2xs
aWNpdHVkaW4gbnVuYyBldWlzbW9kIGF0LiBQcm9pbiB0ZW1wdXMgYXVjdG9yIHR1cnBpcyB1dCBj
b25ndWUuIE51bGxhbSBvcm5hcmUgaW50ZXJkdW0gZXJvcyBzZWQgc3VzY2lwaXQuCitQQVNTCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvYXV0b2hlaWdodC1uZXN0ZWQtcmVn
aW9ucy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9oZWlnaHQtbmVzdGVkLXJl
Z2lvbnMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MGE0NTUxOWQzYzA4NzM3NWQyN2VlNTNlYTE0ZWYwMzE2
OGFkMmUwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2F1dG9o
ZWlnaHQtbmVzdGVkLXJlZ2lvbnMuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8aHRtbD4KKzxoZWFk
PgorICAgIDxzdHlsZT4KKyAgICAgICAgLmNvbnRlbnQgeworICAgICAgICAgICAgZm9udC1mYW1p
bHk6IEFoZW07CisgICAgICAgICAgICBmb250LXNpemU6IDEwcHg7CisgICAgICAgIH0KKworICAg
ICAgICAjY29udGVudDEgeworICAgICAgICAgICAgLXdlYmtpdC1mbG93LWludG86IGZsb3cxOwor
ICAgICAgICB9CisKKyAgICAgICAgI2NvbnRlbnQyIHsKKyAgICAgICAgICAgIC13ZWJraXQtZmxv
dy1pbnRvOiBmbG93MjsKKyAgICAgICAgfQorCisgICAgICAgIC5yZWdpb24xIHsKKyAgICAgICAg
ICAgIGJvcmRlcjogdGhpY2sgc29saWQgYmx1ZTsKKyAgICAgICAgICAgIC13ZWJraXQtZmxvdy1m
cm9tOiBmbG93MTsKKyAgICAgICAgfQorCisgICAgICAgIC5yZWdpb24yIHsKKyAgICAgICAgICAg
IGJvcmRlcjogdGhpY2sgc29saWQgcmVkOworICAgICAgICAgICAgLXdlYmtpdC1mbG93LWZyb206
IGZsb3cyOworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbjEgeworICAgICAgICAgICAgd2lk
dGg6IDQwMHB4OworICAgICAgICB9CisKKyAgICAgICAgI3JlZ2lvbjIgeworICAgICAgICAgICAg
d2lkdGg6IDMwMHB4OworICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0i
Li4vLi4vcmVzb3VyY2VzL2NoZWNrLWxheW91dC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eSBvbmxvYWQ9ImNoZWNrTGF5b3V0KCcjcmVnaW9uMiwgI3JlZ2lvbjEnKSI+CisgICAgPHA+VGVz
dCBmb3IgPGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
MTk2OSI+W0NTUyBSZWdpb25zXSBOZXN0ZWQgYXV0by1oZWlnaHQgcmVnaW9ucyBkb24ndCBsYXlv
dXQgY29ycmVjdGx5PC9hPi48L3A+CisgICAgPGRpdiBjbGFzcz0iY29udGVudCIgaWQ9ImNvbnRl
bnQxIj5Mb3JlbSBpcHN1bSBkb2xvciBzaXQgYW1ldCwgY29uc2VjdGV0dXIgYWRpcGlzY2luZyBl
bGl0LiBBZW5lYW4gdXJuYSBvcmNpLCBjb25zZXF1YXQgc2VkIGxvYm9ydGlzIGluLCBjb252YWxs
aXMgZXQgdmVsaXQuIFV0IGVsZW1lbnR1bSBsYWN1cyBhYyBkdWkgdmVzdGlidWx1bSBldSBjb25k
aW1lbnR1bSBtaSBsdWN0dXMuIEZ1c2NlIHBoYXJldHJhIHR1cnBpcyBpZCBlcmF0IGNvbmd1ZSBu
ZWMgYWxpcXVhbSBsZW8gdmVuZW5hdGlzLiBDdW0gc29jaWlzIG5hdG9xdWUgcGVuYXRpYnVzIGV0
IG1hZ25pcyBkaXMgcGFydHVyaWVudCBtb250ZXMsIG5hc2NldHVyIHJpZGljdWx1cyBtdXMuPGRp
diBjbGFzcz0icmVnaW9uMiIgaWQ9InJlZ2lvbjIiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PTIwMD48
L2Rpdj5DbGFzcyBhcHRlbnQgdGFjaXRpIHNvY2lvc3F1IGFkIGxpdG9yYSB0b3JxdWVudCBwZXIg
Y29udWJpYSBub3N0cmEsIHBlciBpbmNlcHRvcyBoaW1lbmFlb3MuIFNlZCBlZ2VzdGFzIHVsdHJp
Y2VzIG1hdXJpcyBzZWQgdGVtcG9yLiBNYWVjZW5hcyB2aXRhZSBsaWJlcm8gdXQgbmlzbCBncmF2
aWRhIGVsZWlmZW5kIGJsYW5kaXQgbm9uIHJpc3VzLiBGdXNjZSBncmF2aWRhIHZlbmVuYXRpcyBk
b2xvciBldSBpbXBlcmRpZXQuCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0iY29udGVudCIg
aWQ9ImNvbnRlbnQyIj5VdCBhdCB0b3J0b3IgbGlndWxhLiBDcmFzIHRlbXBvciBzZW0gc2VkIHRl
bGx1cyBjb252YWxsaXMgdGluY2lkdW50IGVnZXQgZWdldCBkb2xvci4gSW4gZmFjaWxpc2lzIGFu
dGUgYXQgdHVycGlzIHNlbXBlciBzZW1wZXIuIEZ1c2NlIGR1aSBkb2xvciwgcmhvbmN1cyBldCBj
dXJzdXMgaW4sIG1hbGVzdWFkYSBpbiBqdXN0by4gQ3VyYWJpdHVyIHZ1bHB1dGF0ZSBhbGlxdWV0
IHRpbmNpZHVudC4gUXVpc3F1ZSBzaXQgYW1ldCBtYXNzYSBqdXN0bywgaW4gYmliZW5kdW0gbGVv
LiBBbGlxdWFtIGxhY2luaWEgcGhhcmV0cmEganVzdG8uIFN1c3BlbmRpc3NlIHJob25jdXMganVz
dG8gbmVjIGRpYW0gY3Vyc3VzIHVsbGFtY29ycGVyLiBOYW0gcG9ydHRpdG9yIHBvcnR0aXRvciBs
aWJlcm8sIGNvbnZhbGxpcyBzb2xsaWNpdHVkaW4gbnVuYyBldWlzbW9kIGF0LiBQcm9pbiB0ZW1w
dXMgYXVjdG9yIHR1cnBpcyB1dCBjb25ndWUuIE51bGxhbSBvcm5hcmUgaW50ZXJkdW0gZXJvcyBz
ZWQgc3VzY2lwaXQuCisgICAgPC9kaXY+CisgICAgPGRpdiBjbGFzcz0icmVnaW9uMSIgaWQ9InJl
Z2lvbjEiIGRhdGEtZXhwZWN0ZWQtaGVpZ2h0PTM4MD4KKyAgICA8L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>