<?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>128032</bug_id>
          
          <creation_ts>2014-01-31 17:42:41 -0800</creation_ts>
          <short_desc>Pass the viewport rect and scroll origin independently into the scrolling tree, and make things floats</short_desc>
          <delta_ts>2014-02-03 10:34:55 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>974546</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-31 17:42:41 -0800</bug_when>
    <thetext>Pass the viewport rect and scroll origin independently into the scrolling tree, and make things floats</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>974548</commentid>
    <comment_count>1</comment_count>
      <attachid>222868</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-01-31 17:55:34 -0800</bug_when>
    <thetext>Created attachment 222868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>975922</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-03 10:34:55 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/163231</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>222868</attachid>
            <date>2014-01-31 17:55:34 -0800</date>
            <delta_ts>2014-01-31 17:58:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-128032-20140131175525.patch</filename>
            <type>text/plain</type>
            <size>57778</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYzMjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTcyMzJjMDZiNGRkYWY0
ZTQ1ZGViMjQwMjI1MDRiNTM5MWZlMjgxMC4uZDhlMGY4OTI2NDhhNmYxODg5MDQ4MTA0MjQyZGFl
ZTI3OWY3NzMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDgyIEBACiAyMDE0LTAxLTMxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFBhc3MgdGhlIHZp
ZXdwb3J0IHJlY3QgYW5kIHNjcm9sbCBvcmlnaW4gaW5kZXBlbmRlbnRseSBpbnRvIHRoZSBzY3Jv
bGxpbmcgdHJlZSwgYW5kIG1ha2UgdGhpbmdzIGZsb2F0cworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI4MDMyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUGFzcyB0aGUgdmlld3BvcnQgcmVjdCBhbmQgc2Ny
b2xsIG9mZnNldCBpbmRlcGVuZGVudGx5IGludG8gdGhlIFNjcm9sbGluZ1RyZWUKKyAgICAgICAg
dmlhIHRoZSBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUsIHNpbmNlIG9uIGlPUyB0aGUgc2Ny
b2xsIG9mZnNldCBkb2Vzbid0CisgICAgICAgIGFsd2F5cyBjb3JyZXNwb25kIHRvIHRoZSB2aWV3
cG9ydCByZWN0LgorICAgICAgICAKKyAgICAgICAgTWFrZSB0aGUgdmlld3BvcnQgcmVjdCBhbmQg
dGhlIHNjcm9sbCBvcmlnaW4gYmUgZmxvYXQtYmFzZWQsIHNpbmNlIG9uCisgICAgICAgIFJldGlu
YSBzY3JlZW5zIGFuZCB3aXRoIHpvb21pbmcgdGhlc2UgY2FuIGJvdGggYmUgbm9uLWludGVncmFs
LgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4KKyAgICAgICAgCisgICAgICAgICogV2Vi
Q29yZS5leHAuaW46CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
OjpmcmFtZVZpZXdMYXlvdXRVcGRhdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Ny
b2xsKToKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbCk6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6QXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvcjo6U2NoZWR1bGVkU2Nyb2xsVXBkYXRlOjpTY2hlZHVsZWRTY3Jv
bGxVcGRhdGUpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xs
aW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Ny
b2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdO
b2RlOjpkdW1wUHJvcGVydGllcyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpzaG91bGRIYW5kbGVX
aGVlbEV2ZW50U3luY2hyb25vdXNseSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
Ojpjb21taXROZXdUcmVlU3RhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6
bWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJl
ZTo6c2V0TWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
Tm9kZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjp1
cGRhdGVCZWZvcmVDaGlsZHJlbik6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlOjpzY3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6dmlld3BvcnRDb25zdHJhaW5lZE9iamVjdFJlY3QpOgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xs
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaDoKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlSU9TOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaDoKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MuaDoK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJ
T1MubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6
c2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVJT1M6OnNldFNjcm9sbFBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxQb3NpdGlvbldpdGhvdXRDb250ZW50RWRn
ZUNvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlSU9TOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TOjptaW5pbXVtU2Nyb2xsUG9zaXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1M6Om1heGltdW1TY3JvbGxQ
b3NpdGlvbik6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGaXhl
ZE5vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZpeGVk
Tm9kZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVGaXhlZE5vZGU6OnBhcmVu
dFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6dXBkYXRlQWZ0ZXJDaGlsZHJlbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6YWJzb2x1dGVT
Y3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZU1hYzo6YWRqdXN0U2Nyb2xsUG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpzY3JvbGxQb3NpdGlv
bik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6c2V0
U2Nyb2xsUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWM6OnNldFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OnNldFNj
cm9sbExheWVyUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVNYWM6Om1pbmltdW1TY3JvbGxQb3NpdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVNYWlu
RnJhbWVQaW5TdGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZU1hYzo6bG9nRXhwb3NlZFVuZmlsbGVkQXJlYSk6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZVN0aWNreU5vZGU6OnBhcmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpGbG9hdFBvaW50OjpzaHJ1bmtUbyk6CisKKzIwMTQtMDEtMzEgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CisKICAgICAgICAgRXZlbiB3aGVuIGluIGZpeGVkIGxheW91
dCBtb2RlLCBzb21lIHBsYXRmb3JtcyBuZWVkIHRvIGRvIGxheW91dCBhZnRlciBhIHZpZXdwb3J0
IGNoYW5nZQogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTI4MDAzCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA0OGIyNTgwZTJmN2E3MTY3YjEzNjYxMjgzODBiZDUzZDkw
ODQ0NDA1Li4xNjFlZTIzYTczNDkyYjYxYmE2NDlhZjQ4YTEyMDA1NWE5ZjNhOTNjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTQtMDEtMzEgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFzcyB0aGUgdmlld3BvcnQgcmVjdCBhbmQgc2Ny
b2xsIG9yaWdpbiBpbmRlcGVuZGVudGx5IGludG8gdGhlIHNjcm9sbGluZyB0cmVlLCBhbmQgbWFr
ZSB0aGluZ3MgZmxvYXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjgwMzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBQYXNzIHRoZSB2aWV3cG9ydCByZWN0IGFuZCBzY3JvbGwgb2Zmc2V0IGluZGVwZW5k
ZW50bHkgaW50byB0aGUgU2Nyb2xsaW5nVHJlZQorICAgICAgICB2aWEgdGhlIFNjcm9sbGluZ1N0
YXRlU2Nyb2xsaW5nTm9kZSwgc2luY2Ugb24gaU9TIHRoZSBzY3JvbGwgb2Zmc2V0IGRvZXNuJ3QK
KyAgICAgICAgYWx3YXlzIGNvcnJlc3BvbmQgdG8gdGhlIHZpZXdwb3J0IHJlY3QuCisgICAgICAg
IAorICAgICAgICBNYWtlIHRoZSB2aWV3cG9ydCByZWN0IGFuZCB0aGUgc2Nyb2xsIG9yaWdpbiBi
ZSBmbG9hdC1iYXNlZCwgc2luY2Ugb24KKyAgICAgICAgUmV0aW5hIHNjcmVlbnMgYW5kIHdpdGgg
em9vbWluZyB0aGVzZSBjYW4gYm90aCBiZSBub24taW50ZWdyYWwuCisKKyAgICAgICAgKiBTaGFy
ZWQvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwOgor
ICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+OjplbmNv
ZGUpOgorICAgICAgICAoQXJndW1lbnRDb2RlcjxTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU+
OjpkZWNvZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ1RyZWUuaDoKKwogMjAxNC0wMS0zMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFw
QGFwcGxlLmNvbT4KIAogICAgICAgICBFeHBvc2UgY3JlYXRpb24gYW5kIG1vZGlmaWNhdGlvbiB0
aW1lcyBmb3IgTG9jYWxTdG9yYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
LmV4cC5pbiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCmluZGV4IDE4MDNiMjg4ZWUz
MTRkMzMyYjcxOTk1ZjJlNTIxYTJhNGVjNTViMDIuLmFhMjQ0YWY4ODcyYmQ2Mjc5ZmI1YTdiZTA2
YzdjODRhMDM0OWQ1MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmlu
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCkBAIC0zMDE3LDcgKzMwMTcsNyBA
QCBfX1pON1dlYkNvcmUyNUFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IyOXVwZGF0ZVZpZXdwb3J0
Q29uc3RyYWluZWROb2RlRXlSS05TXzE5VgogX19aTjdXZWJDb3JlMjVBc3luY1Njcm9sbGluZ0Nv
b3JkaW5hdG9yMzBzZXRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNFagogX19aTjdXZWJDb3Jl
MjVBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yMzdzY3JvbGxhYmxlQXJlYVNjcm9sbGJhckxheWVy
RGlkQ2hhbmdlRVBOU18xNFNjcm9sbGFibGVBcmVhRU5TXzIwU2Nyb2xsYmFyT3JpZW50YXRpb25F
CiBfX1pON1dlYkNvcmUyNUFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I0M3JlY29tcHV0ZVdoZWVs
RXZlbnRIYW5kbGVyQ291bnRGb3JGcmFtZVZpZXdFUE5TXzlGcmFtZVZpZXdFCi1fX1pON1dlYkNv
cmUyNUFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I0NHNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRp
b25BZnRlckFzeW5jU2Nyb2xsRXlSS05TXzhJbnRQb2ludEViTlNfMzFTZXRPclN5bmNTY3JvbGxp
bmdMYXllclBvc2l0aW9uRQorX19aTjdXZWJDb3JlMjVBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
NDRzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbEV5UktOU18xMEZs
b2F0UG9pbnRFYk5TXzMxU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkUKIF9fWk43V2Vi
Q29yZTI1QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvckMyRVBOU180UGFnZUUKIF9fWk43V2ViQ29y
ZTI1QXN5bmNTY3JvbGxpbmdDb29yZGluYXRvckQyRXYKIF9fWk43V2ViQ29yZTI3U2Nyb2xsaW5n
U3RhdGVTY3JvbGxpbmdOb2RlMTRzZXRGb290ZXJMYXllckVSS05TXzE5TGF5ZXJSZXByZXNlbnRh
dGlvbkUKQEAgLTMwMjUsNyArMzAyNSw4IEBAIF9fWk43V2ViQ29yZTI3U2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlMTRzZXRIZWFkZXJMYXllckVSS05TXzE5TGF5ZXJSZXByZXNlbnRhCiBfX1pO
N1dlYkNvcmUyN1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTE1c2V0Rm9vdGVySGVpZ2h0RWkK
IF9fWk43V2ViQ29yZTI3U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlMTVzZXRIZWFkZXJIZWln
aHRFaQogX19aTjdXZWJDb3JlMjdTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUxNXNldFNjcm9s
bE9yaWdpbkVSS05TXzhJbnRQb2ludEUKLV9fWk43V2ViQ29yZTI3U2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlMTVzZXRWaWV3cG9ydFJlY3RFUktOU183SW50UmVjdEUKK19fWk43V2ViQ29yZTI3
U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlMTdzZXRTY3JvbGxQb3NpdGlvbkVSS05TXzEwRmxv
YXRQb2ludEUKK19fWk43V2ViQ29yZTI3U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlMzJzZXRW
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0UmVjdEVSS05TXzlGbG9hdFJlY3RFCiBfX1pON1dlYkNv
cmUyN1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTE5c2V0RnJhbWVTY2FsZUZhY3RvckVmCiBf
X1pON1dlYkNvcmUyN1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTIwc2V0VG90YWxDb250ZW50
c1NpemVFUktOU183SW50U2l6ZUUKIF9fWk43V2ViQ29yZTI3U2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlMjRzZXRDb3VudGVyU2Nyb2xsaW5nTGF5ZXJFUktOU18xOUxheWVyUmVwcmVzZW50YXRp
b25FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9s
bGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCmluZGV4IDI3Mzg2MWMxMzU0MmI5NDM1M2RjMTU3YjM5
ODk0ODBkODkzMTc2ZTguLjY3ZDcxMDkwNDI3NmVhM2ZhNWJkMTAyY2M4MDlkM2VkZjk1NzZjNTAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5j
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgQXN5bmNTY3Jv
bGxpbmdDb29yZGluYXRvcjo6ZnJhbWVWaWV3TGF5b3V0VXBkYXRlZChGcmFtZVZpZXcqIGZyYW1l
VmlldykKICAgICBub2RlLT5zZXRGb290ZXJIZWlnaHQoZnJhbWVWaWV3LT5mb290ZXJIZWlnaHQo
KSk7CiAKICAgICBub2RlLT5zZXRTY3JvbGxPcmlnaW4oZnJhbWVWaWV3LT5zY3JvbGxPcmlnaW4o
KSk7Ci0gICAgbm9kZS0+c2V0Vmlld3BvcnRSZWN0KEludFJlY3QoSW50UG9pbnQoKSwgZnJhbWVW
aWV3LT52aXNpYmxlQ29udGVudFJlY3QoKS5zaXplKCkpKTsKKyAgICBub2RlLT5zZXRWaWV3cG9y
dENvbnN0cmFpbmVkT2JqZWN0UmVjdChGbG9hdFJlY3QoRmxvYXRQb2ludCgpLCBmcmFtZVZpZXct
PnZpc2libGVDb250ZW50UmVjdCgpLnNpemUoKSkpOwogICAgIG5vZGUtPnNldFRvdGFsQ29udGVu
dHNTaXplKGZyYW1lVmlldy0+dG90YWxDb250ZW50c1NpemUoKSk7CiAKICAgICBTY3JvbGxhYmxl
QXJlYVBhcmFtZXRlcnMgc2Nyb2xsUGFyYW1ldGVyczsKQEAgLTE1MSw3ICsxNTEsNyBAQCBib29s
IEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnJlcXVlc3RTY3JvbGxQb3NpdGlvblVwZGF0ZShG
cmFtZVZpZXcqIGZyYW1lVmlldwogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5j
U2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3Np
dGlvbiwgYm9vbCBwcm9ncmFtbWF0aWNTY3JvbGwsIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9z
aXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKK3ZvaWQgQXN5bmNTY3JvbGxpbmdD
b29yZGluYXRvcjo6c2NoZWR1bGVVcGRhdGVTY3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwo
U2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24s
IGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xsLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
IHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pCiB7CiAgICAgU2NoZWR1bGVkU2Nyb2xsVXBk
YXRlIHNjcm9sbFVwZGF0ZShub2RlSUQsIHNjcm9sbFBvc2l0aW9uLCBwcm9ncmFtbWF0aWNTY3Jv
bGwsIHNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pOwogICAgIApAQCAtMTc3LDcgKzE3Nyw3
IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25B
ZnRlckFzeW5jU2Nyb2xsVGltZXJGaXJlZChUCiAgICAgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRl
ckFzeW5jU2Nyb2xsKG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLm5vZGVJRCwgbV9zY2hlZHVsZWRT
Y3JvbGxVcGRhdGUuc2Nyb2xsUG9zaXRpb24sIG1fc2NoZWR1bGVkU2Nyb2xsVXBkYXRlLmlzUHJv
Z3JhbW1hdGljU2Nyb2xsLCBtX3NjaGVkdWxlZFNjcm9sbFVwZGF0ZS51cGRhdGVMYXllclBvc2l0
aW9uQWN0aW9uKTsKIH0KIAotdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVT
Y3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBib29sIHByb2dyYW1tYXRpY1Nj
cm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0
aW9uQWN0aW9uKQordm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQ
b3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIHNjcm9sbGluZ05vZGVJRCwg
Y29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIGJvb2wgcHJvZ3JhbW1hdGljU2Nyb2xs
LCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uIHNjcm9sbGluZ0xheWVyUG9zaXRpb25B
Y3Rpb24pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtMTkyLDcgKzE5Miw3
IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25B
ZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05vCiAgICAgZnJhbWVWaWV3LT5zZXRJblByb2dyYW1t
YXRpY1Njcm9sbChwcm9ncmFtbWF0aWNTY3JvbGwpOwogCiAgICAgZnJhbWVWaWV3LT5zZXRDb25z
dHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZShmYWxzZSk7Ci0gICAgZnJhbWVWaWV3LT5ub3Rp
ZnlTY3JvbGxQb3NpdGlvbkNoYW5nZWQoc2Nyb2xsUG9zaXRpb24pOworICAgIGZyYW1lVmlldy0+
bm90aWZ5U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHJvdW5kZWRJbnRQb2ludChzY3JvbGxQb3NpdGlv
bikpOwogICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2Uo
dHJ1ZSk7CiAKICAgICBmcmFtZVZpZXctPnNldEluUHJvZ3JhbW1hdGljU2Nyb2xsKG9sZFByb2dy
YW1tYXRpY1Njcm9sbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggNGI3MjNkNGVmMThiYTE5ODI1
NzU5NjYzMmY4NzA5NThiNzM3ZWM4YS4uNDk1MTdhZjMyNTg4MTFhNTc5MzkzY2RkNWFjODE2ODFj
ZWIxMjNmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNT
Y3JvbGxpbmdDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaApAQCAtNTcsNyArNTcsNyBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHNjcm9sbGluZ1N0YXRlVHJlZVByb3BlcnRpZXNDaGFuZ2VkKCk7CiAKLSAgICB2
b2lkIHNjaGVkdWxlVXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGlu
Z05vZGVJRCwgY29uc3QgSW50UG9pbnQmLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JT
eW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CisgICAgdm9pZCBzY2hlZHVsZVVwZGF0ZVNjcm9s
bFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZsb2F0UG9p
bnQmLCBib29sIHByb2dyYW1tYXRpY1Njcm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3Np
dGlvbik7CiAKIHByb3RlY3RlZDoKICAgICBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yKFBhZ2Uq
KTsKQEAgLTY4LDcgKzY4LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgUGFzc1JlZlB0cjxTY3JvbGxp
bmdUcmVlPiByZWxlYXNlU2Nyb2xsaW5nVHJlZSgpIHsgcmV0dXJuIG1fc2Nyb2xsaW5nVHJlZS5y
ZWxlYXNlKCk7IH0KIAotICAgIHZvaWQgdXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Ny
b2xsKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgSW50UG9pbnQmLCBib29sIHByb2dyYW1tYXRpY1Nj
cm9sbCwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CisgICAgdm9pZCB1cGRhdGVT
Y3JvbGxQb3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9h
dFBvaW50JiwgYm9vbCBwcm9ncmFtbWF0aWNTY3JvbGwsIFNldE9yU3luY1Njcm9sbGluZ0xheWVy
UG9zaXRpb24pOwogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc0FzeW5jU2Nyb2xsaW5n
Q29vcmRpbmF0b3IoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiB0cnVlOyB9CkBAIC0xMjMsNyAr
MTIzLDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgICwgdXBkYXRlTGF5ZXJQb3NpdGlvbkFjdGlv
bihTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbikKICAgICAgICAgeyB9CiAKLSAgICAgICAgU2No
ZWR1bGVkU2Nyb2xsVXBkYXRlKFNjcm9sbGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQsIEludFBv
aW50IHBvaW50LCBib29sIGlzUHJvZ3JhbW1hdGljLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBv
c2l0aW9uIHVkcGF0ZUFjdGlvbikKKyAgICAgICAgU2NoZWR1bGVkU2Nyb2xsVXBkYXRlKFNjcm9s
bGluZ05vZGVJRCBzY3JvbGxpbmdOb2RlSUQsIEZsb2F0UG9pbnQgcG9pbnQsIGJvb2wgaXNQcm9n
cmFtbWF0aWMsIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gdWRwYXRlQWN0aW9uKQog
ICAgICAgICAgICAgOiBub2RlSUQoc2Nyb2xsaW5nTm9kZUlEKQogICAgICAgICAgICAgLCBzY3Jv
bGxQb3NpdGlvbihwb2ludCkKICAgICAgICAgICAgICwgaXNQcm9ncmFtbWF0aWNTY3JvbGwoaXNQ
cm9ncmFtbWF0aWMpCkBAIC0xMzEsNyArMTMxLDcgQEAgcHJpdmF0ZToKICAgICAgICAgeyB9CiAK
ICAgICAgICAgU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRDsKLSAgICAgICAgSW50UG9pbnQgc2Nyb2xs
UG9zaXRpb247CisgICAgICAgIEZsb2F0UG9pbnQgc2Nyb2xsUG9zaXRpb247CiAgICAgICAgIGJv
b2wgaXNQcm9ncmFtbWF0aWNTY3JvbGw7CiAgICAgICAgIFNldE9yU3luY1Njcm9sbGluZ0xheWVy
UG9zaXRpb24gdXBkYXRlTGF5ZXJQb3NpdGlvbkFjdGlvbjsKICAgICAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nU3RhdGVTY3Jv
bGxpbmdOb2RlLmNwcAppbmRleCA4ZWY4ZmY2YTU3YTAwY2M0ZjUxNGRlNTBkNDZmZTgyNWIzNzdh
ZWU2Li43YjJmNzk5NGRmZTkwZTA0MjY4NjQ5YmVlNmQxZWI2MTY2MGU2MDQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRl
U2Nyb2xsaW5nTm9kZS5jcHAKQEAgLTYxLDggKzYxLDkgQEAgU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUoY29uc3QgU2Nyb2xsaW5nU3RhdGVT
Y3IKICAgICAsIG1fdmVydGljYWxTY3JvbGxiYXJQYWludGVyKHN0YXRlTm9kZS52ZXJ0aWNhbFNj
cm9sbGJhclBhaW50ZXIoKSkKICAgICAsIG1faG9yaXpvbnRhbFNjcm9sbGJhclBhaW50ZXIoc3Rh
dGVOb2RlLmhvcml6b250YWxTY3JvbGxiYXJQYWludGVyKCkpCiAjZW5kaWYKLSAgICAsIG1fdmll
d3BvcnRSZWN0KHN0YXRlTm9kZS52aWV3cG9ydFJlY3QoKSkKKyAgICAsIG1fdmlld3BvcnRDb25z
dHJhaW5lZE9iamVjdFJlY3Qoc3RhdGVOb2RlLnZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RSZWN0
KCkpCiAgICAgLCBtX3RvdGFsQ29udGVudHNTaXplKHN0YXRlTm9kZS50b3RhbENvbnRlbnRzU2l6
ZSgpKQorICAgICwgbV9zY3JvbGxQb3NpdGlvbihzdGF0ZU5vZGUuc2Nyb2xsUG9zaXRpb24oKSkK
ICAgICAsIG1fc2Nyb2xsT3JpZ2luKHN0YXRlTm9kZS5zY3JvbGxPcmlnaW4oKSkKICAgICAsIG1f
c2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzKHN0YXRlTm9kZS5zY3JvbGxhYmxlQXJlYVBhcmFtZXRl
cnMoKSkKICAgICAsIG1fbm9uRmFzdFNjcm9sbGFibGVSZWdpb24oc3RhdGVOb2RlLm5vbkZhc3RT
Y3JvbGxhYmxlUmVnaW9uKCkpCkBAIC05NCwxMyArOTUsMTMgQEAgUGFzc093blB0cjxTY3JvbGxp
bmdTdGF0ZU5vZGU+IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6Y2xvbmUoU2Nyb2xsaW5n
U3RhdGUKICAgICByZXR1cm4gYWRvcHRQdHIobmV3IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZSgqdGhpcywgYWRvcHRpdmVUcmVlKSk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxp
bmdOb2RlOjpzZXRWaWV3cG9ydFJlY3QoY29uc3QgSW50UmVjdCYgdmlld3BvcnRSZWN0KQordm9p
ZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFZpZXdwb3J0Q29uc3RyYWluZWRPYmpl
Y3RSZWN0KGNvbnN0IEZsb2F0UmVjdCYgdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdFJlY3QpCiB7
Ci0gICAgaWYgKG1fdmlld3BvcnRSZWN0ID09IHZpZXdwb3J0UmVjdCkKKyAgICBpZiAobV92aWV3
cG9ydENvbnN0cmFpbmVkT2JqZWN0UmVjdCA9PSB2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0UmVj
dCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV92aWV3cG9ydFJlY3QgPSB2aWV3cG9ydFJlY3Q7
Ci0gICAgc2V0UHJvcGVydHlDaGFuZ2VkKFZpZXdwb3J0UmVjdCk7CisgICAgbV92aWV3cG9ydENv
bnN0cmFpbmVkT2JqZWN0UmVjdCA9IHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RSZWN0OworICAg
IHNldFByb3BlcnR5Q2hhbmdlZChWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0UmVjdCk7CiB9CiAK
IHZvaWQgU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpzZXRUb3RhbENvbnRlbnRzU2l6ZShj
b25zdCBJbnRTaXplJiB0b3RhbENvbnRlbnRzU2l6ZSkKQEAgLTExMiw2ICsxMTMsMTUgQEAgdm9p
ZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OnNldFRvdGFsQ29udGVudHNTaXplKGNvbnN0
IEludFNpemUmIHRvdGFsQ29udGUKICAgICBzZXRQcm9wZXJ0eUNoYW5nZWQoVG90YWxDb250ZW50
c1NpemUpOwogfQogCit2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6c2V0U2Nyb2xs
UG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCit7CisgICAgaWYgKG1f
c2Nyb2xsUG9zaXRpb24gPT0gc2Nyb2xsUG9zaXRpb24pCisgICAgICAgIHJldHVybjsKKworICAg
IG1fc2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKKyAgICBzZXRQcm9wZXJ0eUNoYW5n
ZWQoU2Nyb2xsUG9zaXRpb24pOworfQorCiB2b2lkIFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZTo6c2V0U2Nyb2xsT3JpZ2luKGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4pCiB7CiAgICAg
aWYgKG1fc2Nyb2xsT3JpZ2luID09IHNjcm9sbE9yaWdpbikKQEAgLTI0Miw5ICsyNTIsMjAgQEAg
dm9pZCBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OmR1bXBQcm9wZXJ0aWVzKFRleHRTdHJl
YW0mIHRzLCBpbnQgaW5kZW50KSBjb24KIHsKICAgICB0cyA8PCAiKCIgPDwgIlNjcm9sbGluZyBu
b2RlIiA8PCAiXG4iOwogCi0gICAgaWYgKCFtX3ZpZXdwb3J0UmVjdC5pc0VtcHR5KCkpIHsKKyAg
ICBpZiAoIW1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdFJlY3QuaXNFbXB0eSgpKSB7CisgICAg
ICAgIHdyaXRlSW5kZW50KHRzLCBpbmRlbnQgKyAxKTsKKyAgICAgICAgdHMgPDwgIih2aWV3cG9y
dCByZWN0ICIKKyAgICAgICAgICAgIDw8IFRleHRTdHJlYW06OkZvcm1hdE51bWJlclJlc3BlY3Rp
bmdJbnRlZ2VycyhtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RSZWN0LngoKSkgPDwgIiAiCisg
ICAgICAgICAgICA8PCBUZXh0U3RyZWFtOjpGb3JtYXROdW1iZXJSZXNwZWN0aW5nSW50ZWdlcnMo
bV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0UmVjdC55KCkpIDw8ICIgIgorICAgICAgICAgICAg
PDwgVGV4dFN0cmVhbTo6Rm9ybWF0TnVtYmVyUmVzcGVjdGluZ0ludGVnZXJzKG1fdmlld3BvcnRD
b25zdHJhaW5lZE9iamVjdFJlY3Qud2lkdGgoKSkgPDwgIiAiCisgICAgICAgICAgICA8PCBUZXh0
U3RyZWFtOjpGb3JtYXROdW1iZXJSZXNwZWN0aW5nSW50ZWdlcnMobV92aWV3cG9ydENvbnN0cmFp
bmVkT2JqZWN0UmVjdC5oZWlnaHQoKSkgPDwgIilcbiI7CisgICAgfQorCisgICAgaWYgKG1fc2Ny
b2xsUG9zaXRpb24gIT0gRmxvYXRQb2ludCgpKSB7CiAgICAgICAgIHdyaXRlSW5kZW50KHRzLCBp
bmRlbnQgKyAxKTsKLSAgICAgICAgdHMgPDwgIih2aWV3cG9ydCByZWN0ICIgPDwgbV92aWV3cG9y
dFJlY3QueCgpIDw8ICIgIiA8PCBtX3ZpZXdwb3J0UmVjdC55KCkgPDwgIiAiIDw8IG1fdmlld3Bv
cnRSZWN0LndpZHRoKCkgPDwgIiAiIDw8IG1fdmlld3BvcnRSZWN0LmhlaWdodCgpIDw8ICIpXG4i
OworICAgICAgICB0cyA8PCAiKHNjcm9sbCBwb3NpdGlvbiAiCisgICAgICAgICAgICA8PCBUZXh0
U3RyZWFtOjpGb3JtYXROdW1iZXJSZXNwZWN0aW5nSW50ZWdlcnMobV9zY3JvbGxQb3NpdGlvbi54
KCkpIDw8ICIgIgorICAgICAgICAgICAgPDwgVGV4dFN0cmVhbTo6Rm9ybWF0TnVtYmVyUmVzcGVj
dGluZ0ludGVnZXJzKG1fc2Nyb2xsUG9zaXRpb24ueSgpKSA8PCAiKVxuIjsKICAgICB9CiAKICAg
ICBpZiAoIW1fdG90YWxDb250ZW50c1NpemUuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZS5oCmluZGV4IDE0YmUwNGI5NzcxMGRmYmFkZmY4M2MzNGY1MjQ4MWZjNzIxYTNjMTEuLjhlZmVh
ZWJlYWExZDc2MDAzMmRlODA4NzEyNGM5ZDEwYjQ4ZjExMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZS5oCkBAIC01MCw4ICs1MCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5TY3JvbGxpbmdTdGF0
ZVNjcm9sbGluZ05vZGUoKTsKIAogICAgIGVudW0gQ2hhbmdlZFByb3BlcnR5IHsKLSAgICAgICAg
Vmlld3BvcnRSZWN0ID0gTnVtU3RhdGVOb2RlQml0cywKKyAgICAgICAgVmlld3BvcnRDb25zdHJh
aW5lZE9iamVjdFJlY3QgPSBOdW1TdGF0ZU5vZGVCaXRzLAogICAgICAgICBUb3RhbENvbnRlbnRz
U2l6ZSwKKyAgICAgICAgU2Nyb2xsUG9zaXRpb24sCiAgICAgICAgIFNjcm9sbE9yaWdpbiwKICAg
ICAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbXMsCiAgICAgICAgIEZyYW1lU2NhbGVGYWN0b3IsCkBA
IC02OCwxMiArNjksMTUgQEAgcHVibGljOgogICAgICAgICBCZWhhdmlvckZvckZpeGVkRWxlbWVu
dHMKICAgICB9OwogCi0gICAgY29uc3QgSW50UmVjdCYgdmlld3BvcnRSZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV92aWV3cG9ydFJlY3Q7IH0KLSAgICB2b2lkIHNldFZpZXdwb3J0UmVjdChjb25zdCBJ
bnRSZWN0Jik7CisgICAgY29uc3QgRmxvYXRSZWN0JiB2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0
UmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdFJlY3Q7IH0K
KyAgICB2b2lkIHNldFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RSZWN0KGNvbnN0IEZsb2F0UmVj
dCYpOwogCiAgICAgY29uc3QgSW50U2l6ZSYgdG90YWxDb250ZW50c1NpemUoKSBjb25zdCB7IHJl
dHVybiBtX3RvdGFsQ29udGVudHNTaXplOyB9CiAgICAgdm9pZCBzZXRUb3RhbENvbnRlbnRzU2l6
ZShjb25zdCBJbnRTaXplJik7CiAKKyAgICBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
bigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsUG9zaXRpb247IH0KKyAgICB2b2lkIHNldFNjcm9s
bFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKKwogICAgIGNvbnN0IEludFBvaW50JiBzY3Jv
bGxPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbE9yaWdpbjsgfQogICAgIHZvaWQgc2V0
U2Nyb2xsT3JpZ2luKGNvbnN0IEludFBvaW50Jik7CiAKQEAgLTEzOSw4ICsxNDMsOSBAQCBwcml2
YXRlOgogICAgIFJldGFpblB0cjxTY3JvbGxiYXJQYWludGVyPiBtX2hvcml6b250YWxTY3JvbGxi
YXJQYWludGVyOwogI2VuZGlmCiAKLSAgICBJbnRSZWN0IG1fdmlld3BvcnRSZWN0OworICAgIEZs
b2F0UmVjdCBtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RSZWN0OwogICAgIEludFNpemUgbV90
b3RhbENvbnRlbnRzU2l6ZTsKKyAgICBGbG9hdFBvaW50IG1fc2Nyb2xsUG9zaXRpb247CiAgICAg
SW50UG9pbnQgbV9zY3JvbGxPcmlnaW47CiAgICAgCiAgICAgU2Nyb2xsYWJsZUFyZWFQYXJhbWV0
ZXJzIG1fc2Nyb2xsYWJsZUFyZWFQYXJhbWV0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCA5ZGE1YThlYzFiNDIwNjNkNjM2ODA2
NTU3ZDZiZWUzOWNlN2Y1MTRjLi42YzQ1MmJjNTFlYjk1MDFlMTdkODIyMTc4YjczYWM2MjQ0YzRi
MjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdU
cmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
LmNwcApAQCAtOTMsOSArOTMsOSBAQCBib29sIFNjcm9sbGluZ1RyZWU6OnNob3VsZEhhbmRsZVdo
ZWVsRXZlbnRTeW5jaHJvbm91c2x5KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudAogICAgIAogICAg
IGlmICghbV9ub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8g
RklYTUU6IFRoaXMgaXMgbm90IGNvcnJlY3QgZm9yIG5vbi1kZWZhdWx0IHNjcm9sbCBvcmlnaW5z
LgotICAgICAgICBJbnRQb2ludCBwb3NpdGlvbiA9IHdoZWVsRXZlbnQucG9zaXRpb24oKTsKKyAg
ICAgICAgRmxvYXRQb2ludCBwb3NpdGlvbiA9IHdoZWVsRXZlbnQucG9zaXRpb24oKTsKICAgICAg
ICAgcG9zaXRpb24ubW92ZUJ5KG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24pOwotICAgICAgICBp
ZiAobV9ub25GYXN0U2Nyb2xsYWJsZVJlZ2lvbi5jb250YWlucyhwb3NpdGlvbikpCisgICAgICAg
IGlmIChtX25vbkZhc3RTY3JvbGxhYmxlUmVnaW9uLmNvbnRhaW5zKHJvdW5kZWRJbnRQb2ludChw
b3NpdGlvbikpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBm
YWxzZTsKQEAgLTE0MCw3ICsxNDAsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWU6OmNvbW1pdE5ld1Ry
ZWVTdGF0ZShQYXNzT3duUHRyPFNjcm9sbGluZ1N0YXRlVHJlZT4gc2Nyb2xsaW5nUwogICAgICAg
ICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOwogCiAgICAgICAgIGlmIChyb290U3RhdGVOb2Rl
Q2hhbmdlZCB8fCByb290Tm9kZS0+aGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9k
ZTo6U2Nyb2xsTGF5ZXIpKQotICAgICAgICAgICAgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9
IEludFBvaW50KCk7CisgICAgICAgICAgICBtX21haW5GcmFtZVNjcm9sbFBvc2l0aW9uID0gRmxv
YXRQb2ludCgpOwogICAgICAgICBpZiAocm9vdFN0YXRlTm9kZUNoYW5nZWQgfHwgcm9vdE5vZGUt
Pmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OldoZWVsRXZl
bnRIYW5kbGVyQ291bnQpKQogICAgICAgICAgICAgbV9oYXNXaGVlbEV2ZW50SGFuZGxlcnMgPSBz
Y3JvbGxpbmdTdGF0ZVRyZWUtPnJvb3RTdGF0ZU5vZGUoKS0+d2hlZWxFdmVudEhhbmRsZXJDb3Vu
dCgpOwogICAgICAgICBpZiAocm9vdFN0YXRlTm9kZUNoYW5nZWQgfHwgcm9vdE5vZGUtPmhhc0No
YW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6Ok5vbkZhc3RTY3JvbGxh
YmxlUmVnaW9uKSkKQEAgLTI0MiwxMyArMjQyLDEzIEBAIHZvaWQgU2Nyb2xsaW5nVHJlZTo6c2V0
TWFpbkZyYW1lUGluU3RhdGUoYm9vbCBwaW5uZWRUb1RoZUxlZnQsIGJvb2wgcGlubmVkVG9UaGVS
CiAgICAgbV9tYWluRnJhbWVQaW5uZWRUb1RoZUJvdHRvbSA9IHBpbm5lZFRvVGhlQm90dG9tOwog
fQogCi1JbnRQb2ludCBTY3JvbGxpbmdUcmVlOjptYWluRnJhbWVTY3JvbGxQb3NpdGlvbigpCitG
bG9hdFBvaW50IFNjcm9sbGluZ1RyZWU6Om1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKCkKIHsKICAg
ICBNdXRleExvY2tlciBsb2NrKG1fbXV0ZXgpOwogICAgIHJldHVybiBtX21haW5GcmFtZVNjcm9s
bFBvc2l0aW9uOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWU6OnNldE1haW5GcmFtZVNjcm9sbFBv
c2l0aW9uKEludFBvaW50IHBvc2l0aW9uKQordm9pZCBTY3JvbGxpbmdUcmVlOjpzZXRNYWluRnJh
bWVTY3JvbGxQb3NpdGlvbihGbG9hdFBvaW50IHBvc2l0aW9uKQogewogICAgIE11dGV4TG9ja2Vy
IGxvY2sobV9tdXRleCk7CiAgICAgbV9tYWluRnJhbWVTY3JvbGxQb3NpdGlvbiA9IHBvc2l0aW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJl
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4
IDhjMTRhNDU3NTQ3ZmJlMzRjMTliMTc1NmY4NTFhMjhjMGU0MzRlZTUuLmU4OGY2NGFhMzlkMjY5
NTViNTA1ZmZmODg4ODExYjMwY2Q1YTg1N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTczLDggKzczLDggQEAgcHVibGljOgogCiAgICAg
dm9pZCBzZXRNYWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5u
ZWRUb1RoZVJpZ2h0LCBib29sIHBpbm5lZFRvVGhlVG9wLCBib29sIHBpbm5lZFRvVGhlQm90dG9t
KTsKIAotICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxp
bmdOb2RlSUQsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2V0T3JTeW5jU2Nyb2xs
aW5nTGF5ZXJQb3NpdGlvbiA9IFN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKSA9IDA7Ci0gICAg
SW50UG9pbnQgbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb24oKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBGbG9hdFBvaW50
JiBzY3JvbGxQb3NpdGlvbiwgU2V0T3JTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiA9IFN5bmNT
Y3JvbGxpbmdMYXllclBvc2l0aW9uKSA9IDA7CisgICAgRmxvYXRQb2ludCBtYWluRnJhbWVTY3Jv
bGxQb3NpdGlvbigpOwogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQogICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhh
c2UpID0gMDsKQEAgLTEwNyw3ICsxMDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRPckNsZWFy
TGF0Y2hlZE5vZGUoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlEKTsK
ICAgICAKIHByb3RlY3RlZDoKLSAgICB2b2lkIHNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKElu
dFBvaW50KTsKKyAgICB2b2lkIHNldE1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKEZsb2F0UG9pbnQp
OwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpOwogCiBwcml2YXRlOgpAQCAtMTI1LDcgKzEyNSw3IEBAIHByaXZhdGU6CiAKICAgICBN
dXRleCBtX211dGV4OwogICAgIFJlZ2lvbiBtX25vbkZhc3RTY3JvbGxhYmxlUmVnaW9uOwotICAg
IEludFBvaW50IG1fbWFpbkZyYW1lU2Nyb2xsUG9zaXRpb247CisgICAgRmxvYXRQb2ludCBtX21h
aW5GcmFtZVNjcm9sbFBvc2l0aW9uOwogICAgIGJvb2wgbV9oYXNXaGVlbEV2ZW50SGFuZGxlcnM7
CiAKICAgICBNdXRleCBtX3N3aXBlU3RhdGVNdXRleDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlTm9kZS5oCmluZGV4IDI3NDc1YjhjODk5N2ZlYjYy
MmZiNmQ5OTBmZDI0OTMyOTgzZmY0MDIuLjM4NGQzYjk4NGQ0NzUwYjRhZjc5ODc0ZmNmMjI4NmYz
MmNiODM0OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nVHJlZU5vZGUuaApAQCAtNDksNyArNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHVwZGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgdXBkYXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5v
ZGUmKSB7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBwYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5n
ZShjb25zdCBJbnRSZWN0JiB2aWV3cG9ydFJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgY3VtdWxhdGl2
ZURlbHRhKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHBhcmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hh
bmdlKGNvbnN0IEZsb2F0UmVjdCYgdmlld3BvcnRSZWN0LCBjb25zdCBGbG9hdFNpemUmIGN1bXVs
YXRpdmVEZWx0YSkgPSAwOwogCiAgICAgU2Nyb2xsaW5nVHJlZU5vZGUqIHBhcmVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcGFyZW50OyB9CiAgICAgdm9pZCBzZXRQYXJlbnQoU2Nyb2xsaW5nVHJlZU5v
ZGUqIHBhcmVudCkgeyBtX3BhcmVudCA9IHBhcmVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3Bw
CmluZGV4IDZhMjFmZmZhMjg0MjkzMWVhNWNhMjVlNmEyZjQ0ZmQ4OTZjZmFiMTMuLjM4NzJhZWNj
NjBhY2QyYzU1MDI0OWQ1MDAwZjY3MTEyNzhlNjNjMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5j
cHAKQEAgLTUxLDggKzUxLDggQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6dXBk
YXRlQmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJgogewogICAgIGNvbnN0
IFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZSYgc3RhdGUgPSB0b1Njcm9sbGluZ1N0YXRlU2Ny
b2xsaW5nTm9kZShzdGF0ZU5vZGUpOwogCi0gICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlZpZXdwb3J0UmVjdCkpCi0gICAgICAgIG1f
dmlld3BvcnRSZWN0ID0gc3RhdGUudmlld3BvcnRSZWN0KCk7CisgICAgaWYgKHN0YXRlLmhhc0No
YW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlZpZXdwb3J0Q29uc3Ry
YWluZWRPYmplY3RSZWN0KSkKKyAgICAgICAgbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0UmVj
dCA9IHN0YXRlLnZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RSZWN0KCk7CiAKICAgICBpZiAoc3Rh
dGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6VG90YWxD
b250ZW50c1NpemUpKSB7CiAgICAgICAgIGlmIChzY3JvbGxpbmdUcmVlKCkuaXNSdWJiZXJCYW5k
SW5Qcm9ncmVzcygpKQpAQCAtNjIsNiArNjIsOSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlOjp1cGRhdGVCZWZvcmVDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUmCiAg
ICAgICAgIG1fdG90YWxDb250ZW50c1NpemUgPSBzdGF0ZS50b3RhbENvbnRlbnRzU2l6ZSgpOwog
ICAgIH0KIAorICAgIGlmIChzdGF0ZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpTY3JvbGxQb3NpdGlvbikpCisgICAgICAgIG1fc2Nyb2xsUG9zaXRpb24g
PSBzdGF0ZS5zY3JvbGxQb3NpdGlvbigpOworCiAgICAgaWYgKHN0YXRlLmhhc0NoYW5nZWRQcm9w
ZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OlNjcm9sbE9yaWdpbikpCiAgICAgICAg
IG1fc2Nyb2xsT3JpZ2luID0gc3RhdGUuc2Nyb2xsT3JpZ2luKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5oCmluZGV4IGFjOTE1MWU2M2U0ODhhMjA0OGU0ZTVkMzhiZmQyOGFkYWZiZDA4MzIuLmU5MjJj
N2U4MDk3ZjA2YjcxZGQ4YjM2YWY4YzM3MDNjOTUxZmZmODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
aApAQCAtNDcsMTAgKzQ3LDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmVm
b3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CiAKICAgICAv
LyBGSVhNRTogV2Ugc2hvdWxkIGltcGxlbWVudCB0aGlzIHdoZW4gd2Ugc3VwcG9ydCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZXMgYXMgY2hpbGRyZW4uCi0gICAgdmlydHVhbCB2b2lkIHBhcmVu
dFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKGNvbnN0IEludFJlY3QmIC8qdmlld3BvcnRSZWN0Ki8s
IGNvbnN0IEZsb2F0U2l6ZSYgLypjdW11bGF0aXZlRGVsdGEqLykgb3ZlcnJpZGUgeyB9CisgICAg
dmlydHVhbCB2b2lkIHBhcmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKGNvbnN0IEZsb2F0UmVj
dCYgLyp2aWV3cG9ydFJlY3QqLywgY29uc3QgRmxvYXRTaXplJiAvKmN1bXVsYXRpdmVEZWx0YSov
KSBvdmVycmlkZSB7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgSW50UG9pbnQmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFBv
c2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSA9IDA7CiAKICAgICBTeW5jaHJvbm91c1Njcm9sbGlu
Z1JlYXNvbnMgc3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb25zKCkgY29uc3QgeyByZXR1cm4gbV9z
eW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnM7IH0KICAgICBib29sIHNob3VsZFVwZGF0ZVNjcm9s
bExheWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KCkgY29uc3QgeyByZXR1cm4gbV9zeW5jaHJvbm91
c1Njcm9sbGluZ1JlYXNvbnM7IH0KQEAgLTU4LDcgKzU4LDggQEAgcHVibGljOgogcHJvdGVjdGVk
OgogICAgIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlKFNjcm9sbGluZ1RyZWUmLCBTY3JvbGxp
bmdOb2RlSUQpOwogCi0gICAgY29uc3QgSW50UmVjdCYgdmlld3BvcnRSZWN0KCkgY29uc3QgeyBy
ZXR1cm4gbV92aWV3cG9ydFJlY3Q7IH0KKyAgICBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3Np
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsUG9zaXRpb247IH0KKyAgICBjb25zdCBGbG9h
dFJlY3QmIHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RSZWN0KCkgY29uc3QgeyByZXR1cm4gbV92
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0UmVjdDsgfQogICAgIGNvbnN0IEludFNpemUmIHRvdGFs
Q29udGVudHNTaXplKCkgY29uc3QgeyByZXR1cm4gbV90b3RhbENvbnRlbnRzU2l6ZTsgfQogICAg
IGNvbnN0IEludFBvaW50JiBzY3JvbGxPcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbE9y
aWdpbjsgfQogCkBAIC04NCw5ICs4NSwxMCBAQCBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsQmVoYXZp
b3JGb3JGaXhlZEVsZW1lbnRzIHNjcm9sbEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cygpIGNvbnN0
IHsgcmV0dXJuIG1fYmVoYXZpb3JGb3JGaXhlZDsgfQogCiBwcml2YXRlOgotICAgIEludFJlY3Qg
bV92aWV3cG9ydFJlY3Q7CisgICAgRmxvYXRSZWN0IG1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVj
dFJlY3Q7CiAgICAgSW50U2l6ZSBtX3RvdGFsQ29udGVudHNTaXplOwogICAgIEludFNpemUgbV90
b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQ7CisgICAgRmxvYXRQb2ludCBtX3Njcm9sbFBv
c2l0aW9uOwogICAgIEludFBvaW50IG1fc2Nyb2xsT3JpZ2luOwogICAgIAogICAgIFNjcm9sbGFi
bGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVyczsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3Bw
CmluZGV4IDgzMTRkZTMwMDU2NjU1YWU4NWU3MTU0ODhkMzc3Mjc2OWRmNWRjZDIuLmE1YTRmYjlm
ZjNmOWQ1ZGFlOWExNzNjNTA3YTlhZmE5ZWNmZjQxMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcApAQCAtMTAw
LDcgKzEwMCw3IEBAIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3Rh
dGUoUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNjCiAgICAgU2Nyb2xsaW5nVHJlZTo6
Y29tbWl0TmV3VHJlZVN0YXRlKHNjcm9sbGluZ1N0YXRlVHJlZSk7CiB9CiAKLXZvaWQgVGhyZWFk
ZWRTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2Rl
SUQgbm9kZUlELCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9s
bGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKK3ZvaWQgVGhy
ZWFkZWRTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdO
b2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2V0T3JTeW5j
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbiBzY3JvbGxpbmdMYXllclBvc2l0aW9uQWN0aW9uKQogewog
ICAgIGlmICghbV9zY3JvbGxpbmdDb29yZGluYXRvcikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUu
aAppbmRleCBkMGM4YjE3ZTUyNDliZDAyNGNmMThiNTNiMjAzNzMxOGVkZmI0NzAwLi42YjYzYjk5
MDhkZjUxOTI1YjI3NDhiMmFiODUwOTE4ZjljZTUyOGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaApAQCAtNjQsNyAr
NjQsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFNjcm9sbGluZ1RyZWVO
b2RlPiBjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJy
aWRlOwogCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9s
bGluZ05vZGVJRCwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3Jv
bGxpbmdMYXllclBvc2l0aW9uID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdO
b2RlSUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxp
bmdMYXllclBvc2l0aW9uID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pIG92ZXJyaWRlOwog
I2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKICAgICB2aXJ0dWFsIHZvaWQgaGFu
ZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRmb3JtV2hlZWxFdmVudFBoYXNlKSBvdmVycmlkZTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9s
bGluZ1RyZWVJT1MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9s
bGluZ1RyZWVJT1MuY3BwCmluZGV4IDE0NzkxNmFmYzYxMGEyMjNhNmM4ZGQ4NGQ1YmJhNGI3MTg3
ZGFjZmQuLjQ5YzAzMjdhMzgwN2M4MDViODVmOWRmOGQwYzA1MTZjYmI3ZDk2ZDUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlP
Uy5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlSU9TOjpjb21taXROZXdU
cmVlU3RhdGUoUGFzc093blB0cjxTY3JvbGxpbmdTdGF0ZVRyZWU+IHNjcm9sbGkKICAgICBTY3Jv
bGxpbmdUcmVlOjpjb21taXROZXdUcmVlU3RhdGUoc2Nyb2xsaW5nU3RhdGVUcmVlKTsKIH0KIAot
dm9pZCBTY3JvbGxpbmdUcmVlSU9TOjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxp
bmdOb2RlSUQgbm9kZUlELCBjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3lu
Y1Njcm9sbGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKK3Zv
aWQgU2Nyb2xsaW5nVHJlZUlPUzo6c2Nyb2xsaW5nVHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5n
Tm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3lu
Y1Njcm9sbGluZ0xheWVyUG9zaXRpb24gc2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbikKIHsK
ICAgICBpZiAoIW1fc2Nyb2xsaW5nQ29vcmRpbmF0b3IpCiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9T
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZUlPUy5o
CmluZGV4IDU3NjAxYjg4ZjBkYjU3YmZkZGMzOTQ1ZTE4ZDA5ODJhZDFmZWM5YWMuLjYzOWM1NTQz
NzE3MjY4ZDI2OWJhZTZhMjE3NzQ1NGMxZGVmOTFjMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlSU9TLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVJT1MuaApAQCAtNTYsNyArNTYs
NyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCBQYXNzT3duUHRyPFNjcm9sbGluZ1RyZWVOb2Rl
PiBjcmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIG92ZXJyaWRl
OwogCi0gICAgdmlydHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGlu
Z05vZGVJRCwgY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxp
bmdMYXllclBvc2l0aW9uID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2Rl
SUQsIGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdM
YXllclBvc2l0aW9uID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pIG92ZXJyaWRlOwogCiAg
ICAgUmVmUHRyPEFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I+IG1fc2Nyb2xsaW5nQ29vcmRpbmF0
b3I7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MuaAppbmRleCA4NTlmYTZmMGFh
YThmNGY5Mzk4NTE0M2I3NTVkMzE0ZTUyMjQwOWUxLi5mODU3ZmJhYTVmMjZmNjhiODU4YTI5NzI1
ZWQxZjhmYmU3MWMwNzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MuaApAQCAt
NDgsMTQgKzQ4LDE0IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUFmdGVyQ2hp
bGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jikgb3ZlcnJpZGUg
eyB9CiAKLSAgICBJbnRQb2ludCBzY3JvbGxQb3NpdGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0
U2Nyb2xsUG9zaXRpb24oY29uc3QgSW50UG9pbnQmKTsKLSAgICB2b2lkIHNldFNjcm9sbFBvc2l0
aW9uV2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgSW50UG9pbnQmKTsKKyAgICBG
bG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFNj
cm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNj
cm9sbFBvc2l0aW9uV2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRQb2lu
dCYpOwogCi0gICAgdm9pZCBzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEludFBvaW50Jik7
CisgICAgdm9pZCBzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKIAot
ICAgIEludFBvaW50IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0OwotICAgIEludFBvaW50
IG1heGltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0OworICAgIEZsb2F0UG9pbnQgbWluaW11bVNj
cm9sbFBvc2l0aW9uKCkgY29uc3Q7CisgICAgRmxvYXRQb2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRp
b24oKSBjb25zdDsKIAogICAgIHZvaWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYpOwogICAgIHZv
aWQgc2Nyb2xsQnlXaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW50cyhjb25zdCBJbnRTaXplJik7
CkBAIC02NCw3ICs2NCw3IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fY291
bnRlclNjcm9sbGluZ0xheWVyOwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX2hlYWRlckxheWVy
OwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX2Zvb3RlckxheWVyOwotICAgIEludFBvaW50IG1f
cHJvYmFibGVNYWluVGhyZWFkU2Nyb2xsUG9zaXRpb247CisgICAgRmxvYXRQb2ludCBtX3Byb2Jh
YmxlTWFpblRocmVhZFNjcm9sbFBvc2l0aW9uOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
aW9zL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TLm1tCmluZGV4IDgyNmVjZDYwNGY5Yjdk
N2ZlNDBiMDQyODJkYjA5Y2JmYTNkZWM1NTQuLmFlNTViNjVhNjRkNTU4NTU3MjI3ZjRiZTdlYjE2
ZmE2YWI3MDExNzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lv
cy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MubW0KQEAgLTk2
LDcgKzk2LDcgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQWZ0
ZXJDaGlsZHJlbihjb25zdCBTY3JvbGxpbmdTdGF0ZU5vZGUKICAgICAgICAgc2V0U2Nyb2xsUG9z
aXRpb24oc2Nyb2xsaW5nU3RhdGVOb2RlLnJlcXVlc3RlZFNjcm9sbFBvc2l0aW9uKCkpOwogfQog
Ci1JbnRQb2ludCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6c2Nyb2xsUG9zaXRpb24o
KSBjb25zdAorRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6c2Nyb2xs
UG9zaXRpb24oKSBjb25zdAogewogICAgIGlmIChzaG91bGRVcGRhdGVTY3JvbGxMYXllclBvc2l0
aW9uU3luY2hyb25vdXNseSgpKQogICAgICAgICByZXR1cm4gbV9wcm9iYWJsZU1haW5UaHJlYWRT
Y3JvbGxQb3NpdGlvbjsKQEAgLTEwNSwxNiArMTA1LDE2IEBAIEludFBvaW50IFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlSU9TOjpzY3JvbGxQb3NpdGlvbigpIGNvbnN0CiAgICAgcmV0dXJuIElu
dFBvaW50KC1zY3JvbGxMYXllclBvc2l0aW9uLnggKyBzY3JvbGxPcmlnaW4oKS54KCksIC1zY3Jv
bGxMYXllclBvc2l0aW9uLnkgKyBzY3JvbGxPcmlnaW4oKS55KCkpOwogfQogCi12b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TOjpzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2lu
dCYgc2Nyb2xsUG9zaXRpb24pCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TOjpz
ZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsKLSAg
ICBJbnRQb2ludCBuZXdTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9uOworICAgIEZsb2F0
UG9pbnQgbmV3U2Nyb2xsUG9zaXRpb24gPSBzY3JvbGxQb3NpdGlvbjsKICAgICBuZXdTY3JvbGxQ
b3NpdGlvbiA9IG5ld1Njcm9sbFBvc2l0aW9uLnNocnVua1RvKG1heGltdW1TY3JvbGxQb3NpdGlv
bigpKTsKICAgICBuZXdTY3JvbGxQb3NpdGlvbiA9IG5ld1Njcm9sbFBvc2l0aW9uLmV4cGFuZGVk
VG8obWluaW11bVNjcm9sbFBvc2l0aW9uKCkpOwogCiAgICAgc2V0U2Nyb2xsUG9zaXRpb25XaXRo
b3V0Q29udGVudEVkZ2VDb25zdHJhaW50cyhuZXdTY3JvbGxQb3NpdGlvbik7CiB9CiAKLXZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbFBvc2l0aW9uV2l0aG91dENv
bnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQordm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0
Q29udGVudEVkZ2VDb25zdHJhaW50cyhjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikK
IHsKICAgICBpZiAoc2hvdWxkVXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvblN5bmNocm9ub3VzbHko
KSkgewogICAgICAgICBtX3Byb2JhYmxlTWFpblRocmVhZFNjcm9sbFBvc2l0aW9uID0gc2Nyb2xs
UG9zaXRpb247CkBAIC0xMjYsMTQgKzEyNiwxNSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlSU9TOjpzZXRTY3JvbGxQb3NpdGlvbldpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbgog
ICAgIHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChzY3JvbGxpbmdO
b2RlSUQoKSwgc2Nyb2xsUG9zaXRpb24pOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlSU9TOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdGlv
bikKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbExheWVyUG9z
aXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKCFzaG91bGRV
cGRhdGVTY3JvbGxMYXllclBvc2l0aW9uU3luY2hyb25vdXNseSgpKTsKICAgICBtX3Njcm9sbExh
eWVyLmdldCgpLnBvc2l0aW9uID0gQ0dQb2ludE1ha2UoLXBvc2l0aW9uLngoKSArIHNjcm9sbE9y
aWdpbigpLngoKSwgLXBvc2l0aW9uLnkoKSArIHNjcm9sbE9yaWdpbigpLnkoKSk7CiAKICAgICBT
Y3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMgYmVoYXZpb3JGb3JGaXhlZCA9IHNjcm9sbEJl
aGF2aW9yRm9yRml4ZWRFbGVtZW50cygpOwotICAgIEludFBvaW50IHNjcm9sbE9mZnNldCA9IHBv
c2l0aW9uIC0gdG9JbnRTaXplKHNjcm9sbE9yaWdpbigpKTsKLSAgICBJbnRTaXplIHNjcm9sbE9m
ZnNldEZvckZpeGVkQ2hpbGRyZW4gPSBGcmFtZVZpZXc6OnNjcm9sbE9mZnNldEZvckZpeGVkUG9z
aXRpb24odmlld3BvcnRSZWN0KCksIHRvdGFsQ29udGVudHNTaXplKCksIHNjcm9sbE9mZnNldCwg
c2Nyb2xsT3JpZ2luKCksIGZyYW1lU2NhbGVGYWN0b3IoKSwgZmFsc2UsIGJlaGF2aW9yRm9yRml4
ZWQsIGhlYWRlckhlaWdodCgpLCBmb290ZXJIZWlnaHQoKSk7CisgICAgRmxvYXRQb2ludCBzY3Jv
bGxPZmZzZXQgPSBwb3NpdGlvbiAtIHRvSW50U2l6ZShzY3JvbGxPcmlnaW4oKSk7CisgICAgLy8g
RklYTUU6IHNjcm9sbE9mZnNldEZvckZpeGVkUG9zaXRpb24oKSBuZWVkcyB0byBkbyBmbG9hdCBt
YXRoLgorICAgIEZsb2F0U2l6ZSBzY3JvbGxPZmZzZXRGb3JGaXhlZENoaWxkcmVuID0gRnJhbWVW
aWV3OjpzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKGVuY2xvc2luZ0ludFJlY3Qodmlld3Bv
cnRDb25zdHJhaW5lZE9iamVjdFJlY3QoKSksIHRvdGFsQ29udGVudHNTaXplKCksIGZsb29yZWRJ
bnRQb2ludChzY3JvbGxPZmZzZXQpLCBzY3JvbGxPcmlnaW4oKSwgZnJhbWVTY2FsZUZhY3Rvcigp
LCBmYWxzZSwgYmVoYXZpb3JGb3JGaXhlZCwgaGVhZGVySGVpZ2h0KCksIGZvb3RlckhlaWdodCgp
KTsKICAgICBpZiAobV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXIpCiAgICAgICAgIG1fY291bnRlclNj
cm9sbGluZ0xheWVyLmdldCgpLnBvc2l0aW9uID0gRmxvYXRQb2ludChzY3JvbGxPZmZzZXRGb3JG
aXhlZENoaWxkcmVuKTsKIApAQCAtMTQyLDcgKzE0Myw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgSW50UG9pbnQmIHBv
c2l0CiAgICAgLy8gdGhlbiB3ZSBzaG91bGQgcmVjb21wdXRlIHNjcm9sbE9mZnNldEZvckZpeGVk
Q2hpbGRyZW4gZm9yIHRoZSBiYW5uZXIgd2l0aCBhIHNjYWxlIGZhY3RvciBvZiAxLgogICAgIGZs
b2F0IGhvcml6b250YWxTY3JvbGxPZmZzZXRGb3JCYW5uZXIgPSBzY3JvbGxPZmZzZXRGb3JGaXhl
ZENoaWxkcmVuLndpZHRoKCk7CiAgICAgaWYgKGZyYW1lU2NhbGVGYWN0b3IoKSAhPSAxKQotICAg
ICAgICBob3Jpem9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyID0gRnJhbWVWaWV3OjpzY3JvbGxP
ZmZzZXRGb3JGaXhlZFBvc2l0aW9uKHZpZXdwb3J0UmVjdCgpLCB0b3RhbENvbnRlbnRzU2l6ZSgp
LCBzY3JvbGxPZmZzZXQsIHNjcm9sbE9yaWdpbigpLCAxLCBmYWxzZSwgYmVoYXZpb3JGb3JGaXhl
ZCwgaGVhZGVySGVpZ2h0KCksIGZvb3RlckhlaWdodCgpKS53aWR0aCgpOworICAgICAgICBob3Jp
em9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyID0gRnJhbWVWaWV3OjpzY3JvbGxPZmZzZXRGb3JG
aXhlZFBvc2l0aW9uKGVuY2xvc2luZ0ludFJlY3Qodmlld3BvcnRDb25zdHJhaW5lZE9iamVjdFJl
Y3QoKSksIHRvdGFsQ29udGVudHNTaXplKCksIGZsb29yZWRJbnRQb2ludChzY3JvbGxPZmZzZXQp
LCBzY3JvbGxPcmlnaW4oKSwgMSwgZmFsc2UsIGJlaGF2aW9yRm9yRml4ZWQsIGhlYWRlckhlaWdo
dCgpLCBmb290ZXJIZWlnaHQoKSkud2lkdGgoKTsKIAogICAgIGlmIChtX2hlYWRlckxheWVyKQog
ICAgICAgICBtX2hlYWRlckxheWVyLmdldCgpLnBvc2l0aW9uID0gRmxvYXRQb2ludChob3Jpem9u
dGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyLCAwKTsKQEAgLTE1MywxNyArMTU0LDE3IEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24oY29u
c3QgSW50UG9pbnQmIHBvc2l0CiAgICAgaWYgKCFtX2NoaWxkcmVuKQogICAgICAgICByZXR1cm47
CiAKLSAgICBJbnRSZWN0IHZpZXdwb3J0UmVjdCA9IHRoaXMtPnZpZXdwb3J0UmVjdCgpOwotICAg
IHZpZXdwb3J0UmVjdC5zZXRMb2NhdGlvbihJbnRQb2ludChzY3JvbGxPZmZzZXRGb3JGaXhlZENo
aWxkcmVuKSk7CisgICAgRmxvYXRSZWN0IHZpZXdwb3J0UmVjdCA9IHZpZXdwb3J0Q29uc3RyYWlu
ZWRPYmplY3RSZWN0KCk7CisgICAgdmlld3BvcnRSZWN0LnNldExvY2F0aW9uKEZsb2F0UG9pbnQo
KSArIHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRyZW4pOwogCiAgICAgc2l6ZV90IHNpemUgPSBt
X2NoaWxkcmVuLT5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kp
CiAgICAgICAgIG1fY2hpbGRyZW4tPmF0KGkpLT5wYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5n
ZSh2aWV3cG9ydFJlY3QsIEZsb2F0U2l6ZSgpKTsKIH0KIAotSW50UG9pbnQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVJT1M6Om1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CitGbG9hdFBv
aW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TOjptaW5pbXVtU2Nyb2xsUG9zaXRpb24o
KSBjb25zdAogewotICAgIEludFBvaW50IHBvc2l0aW9uOworICAgIEZsb2F0UG9pbnQgcG9zaXRp
b247CiAgICAgCiAgICAgaWYgKHNjcm9sbGluZ1RyZWUoKS5yb290Tm9kZSgpID09IHRoaXMgJiYg
c2Nyb2xsaW5nVHJlZSgpLnNjcm9sbFBpbm5pbmdCZWhhdmlvcigpID09IFBpblRvQm90dG9tKQog
ICAgICAgICBwb3NpdGlvbi5zZXRZKG1heGltdW1TY3JvbGxQb3NpdGlvbigpLnkoKSk7CkBAIC0x
NzEsMTIgKzE3MiwxMiBAQCBJbnRQb2ludCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6
bWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKICAgICByZXR1cm4gcG9zaXRpb247CiB9CiAK
LUludFBvaW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TOjptYXhpbXVtU2Nyb2xsUG9z
aXRpb24oKSBjb25zdAorRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6
bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKIHsKLSAgICBJbnRQb2ludCBwb3NpdGlvbih0
b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQoKS53aWR0aCgpIC0gdmlld3BvcnRSZWN0KCku
d2lkdGgoKSwKLSAgICAgICAgICAgICAgICAgICAgICB0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJl
ckJhbmQoKS5oZWlnaHQoKSAtIHZpZXdwb3J0UmVjdCgpLmhlaWdodCgpKTsKKyAgICBGbG9hdFBv
aW50IHBvc2l0aW9uKHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZCgpLndpZHRoKCkgLSB2
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0UmVjdCgpLndpZHRoKCksCisgICAgICAgIHRvdGFsQ29u
dGVudHNTaXplRm9yUnViYmVyQmFuZCgpLmhlaWdodCgpIC0gdmlld3BvcnRDb25zdHJhaW5lZE9i
amVjdFJlY3QoKS5oZWlnaHQoKSk7CiAKLSAgICBwb3NpdGlvbi5jbGFtcE5lZ2F0aXZlVG9aZXJv
KCk7CisgICAgcG9zaXRpb24gPSBwb3NpdGlvbi5leHBhbmRlZFRvKEZsb2F0UG9pbnQoKSk7CiAK
ICAgICBpZiAoc2Nyb2xsaW5nVHJlZSgpLnJvb3ROb2RlKCkgPT0gdGhpcyAmJiBzY3JvbGxpbmdU
cmVlKCkuc2Nyb2xsUGlubmluZ0JlaGF2aW9yKCkgPT0gUGluVG9Ub3ApCiAgICAgICAgIHBvc2l0
aW9uLnNldFkobWluaW11bVNjcm9sbFBvc2l0aW9uKCkueSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRml4ZWROb2RlLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZpeGVkTm9kZS5o
CmluZGV4IDVmZjkyZjJmODU5YWM5M2VlMjUwNGU2MmZiMTdkOTdmNjY4YTJlYmUuLjg5NzJmZGYw
YjBmZDVjMTgwZWJhZDIwN2ZhYTRjZWU1ODJlNTEyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRml4ZWROb2RlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGaXhlZE5vZGUuaApA
QCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgogICAgIFNjcm9sbGluZ1RyZWVGaXhlZE5vZGUoU2Ny
b2xsaW5nVHJlZSYsIFNjcm9sbGluZ05vZGVJRCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
QmVmb3JlQ2hpbGRyZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7Ci0gICAg
dmlydHVhbCB2b2lkIHBhcmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKGNvbnN0IEludFJlY3Qm
IHZpZXdwb3J0UmVjdCwgY29uc3QgRmxvYXRTaXplJiBjdW11bGF0aXZlRGVsdGEpIG92ZXJyaWRl
OworICAgIHZpcnR1YWwgdm9pZCBwYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5nZShjb25zdCBG
bG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwgY29uc3QgRmxvYXRTaXplJiBjdW11bGF0aXZlRGVsdGEp
IG92ZXJyaWRlOwogCiAgICAgRml4ZWRQb3NpdGlvblZpZXdwb3J0Q29uc3RyYWludHMgbV9jb25z
dHJhaW50czsKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9sYXllcjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRml4ZWROb2RlLm1t
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGaXhlZE5v
ZGUubW0KaW5kZXggYWY5MzJhNGY4YzdlZjExNmY0YjRiODViM2U5NzhhMWM4Y2RlMDUyZi4uZTI1
YWYwODUwZGMwNDU2NjVjNjQ4MDZhMTUzODUwZjVhMTY5MjAxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGaXhlZE5vZGUubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGaXhlZE5v
ZGUubW0KQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIGlubGluZSBDR1BvaW50IG9wZXJhdG9yKihD
R1BvaW50JiBhLCBjb25zdCBDR1NpemUmIGIpCiAgICAgcmV0dXJuIENHUG9pbnRNYWtlKGEueCAq
IGIud2lkdGgsIGEueSAqIGIuaGVpZ2h0KTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlRml4ZWRO
b2RlOjpwYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5nZShjb25zdCBJbnRSZWN0JiB2aWV3cG9y
dFJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgY3VtdWxhdGl2ZURlbHRhKQordm9pZCBTY3JvbGxpbmdU
cmVlRml4ZWROb2RlOjpwYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5nZShjb25zdCBGbG9hdFJl
Y3QmIHZpZXdwb3J0UmVjdCwgY29uc3QgRmxvYXRTaXplJiBjdW11bGF0aXZlRGVsdGEpCiB7CiAg
ICAgRmxvYXRQb2ludCBsYXllclBvc2l0aW9uID0gbV9jb25zdHJhaW50cy5sYXllclBvc2l0aW9u
Rm9yVmlld3BvcnRSZWN0KHZpZXdwb3J0UmVjdCk7CiAgICAgbGF5ZXJQb3NpdGlvbiAtPSBjdW11
bGF0aXZlRGVsdGE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9t
YWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5oCmluZGV4IDNjMTAx
MzM3NTBlYTU2MzM4NzEwODhhMjNlNWY1MGE3MzIwZDFlZTAuLjlhZWQ0OGMyM2ZlYzA3ZGIzOGJm
ZWJhZTRjMGQ5YTdjNDU4OTc3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Ny
b2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYy5o
CkBAIC02NSwxOSArNjUsMTkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc3RvcFNuYXBS
dWJiZXJiYW5kVGltZXIoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0U2Nyb2xs
UG9zaXRpb25Ub0JvdW5kc0lmTmVjZXNzYXJ5KCkgb3ZlcnJpZGU7CiAKLSAgICBJbnRQb2ludCBz
Y3JvbGxQb3NpdGlvbigpIGNvbnN0OwotICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24oY29uc3Qg
SW50UG9pbnQmKTsKLSAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRlbnRFZGdl
Q29uc3RyYWludHMoY29uc3QgSW50UG9pbnQmKTsKKyAgICBGbG9hdFBvaW50IHNjcm9sbFBvc2l0
aW9uKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZs
b2F0UG9pbnQmKSBvdmVycmlkZTsKKyAgICB2b2lkIHNldFNjcm9sbFBvc2l0aW9uV2l0aG91dENv
bnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRQb2ludCYpOwogCi0gICAgdm9pZCBzZXRT
Y3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEludFBvaW50Jik7CisgICAgdm9pZCBzZXRTY3JvbGxM
YXllclBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKIAotICAgIEludFBvaW50IG1pbmltdW1T
Y3JvbGxQb3NpdGlvbigpIGNvbnN0OwotICAgIEludFBvaW50IG1heGltdW1TY3JvbGxQb3NpdGlv
bigpIGNvbnN0OworICAgIEZsb2F0UG9pbnQgbWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3Q7
CisgICAgRmxvYXRQb2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdDsKIAogICAgIHZv
aWQgc2Nyb2xsQnkoY29uc3QgSW50U2l6ZSYpOwogICAgIHZvaWQgc2Nyb2xsQnlXaXRob3V0Q29u
dGVudEVkZ2VDb25zdHJhaW50cyhjb25zdCBJbnRTaXplJik7CiAKLSAgICB2b2lkIHVwZGF0ZU1h
aW5GcmFtZVBpblN0YXRlKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbik7CisgICAgdm9p
ZCB1cGRhdGVNYWluRnJhbWVQaW5TdGF0ZShjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlv
bik7CiAKICAgICB2b2lkIGxvZ0V4cG9zZWRVbmZpbGxlZEFyZWEoKTsKIApAQCAtOTAsNyArOTAs
NyBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX2Zvb3RlckxheWVyOwogICAg
IFJldGFpblB0cjxTY3JvbGxiYXJQYWludGVyPiBtX3ZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRlcjsK
ICAgICBSZXRhaW5QdHI8U2Nyb2xsYmFyUGFpbnRlcj4gbV9ob3Jpem9udGFsU2Nyb2xsYmFyUGFp
bnRlcjsKLSAgICBJbnRQb2ludCBtX3Byb2JhYmxlTWFpblRocmVhZFNjcm9sbFBvc2l0aW9uOwor
ICAgIEZsb2F0UG9pbnQgbV9wcm9iYWJsZU1haW5UaHJlYWRTY3JvbGxQb3NpdGlvbjsKICAgICBi
b29sIG1fbGFzdFNjcm9sbEhhZFVuZmlsbGVkUGl4ZWxzOwogfTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlTWFjLm1tCmluZGV4IDA3MzM1ZTdhYmE4YjQ2YzVkZDNiNDZiNWU2MTQ1YmIz
MzgzMjNmOGIuLjUxNGJkOGM2MTVlMTg4NDZlMDFlOTVhMThjYzlhZjA2N2Q4MWUwN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWMubW0KQEAgLTEyNCw3ICsxMjQsNyBAQCB2b2lk
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjp1cGRhdGVBZnRlckNoaWxkcmVuKGNvbnN0
IFNjcm9sbGluZ1N0YXRlTm9kZQogICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6UmVxdWVzdGVkU2Nyb2xsUG9z
aXRpb24pKQogICAgICAgICBzZXRTY3JvbGxQb3NpdGlvbihzY3JvbGxpbmdTdGF0ZU5vZGUucmVx
dWVzdGVkU2Nyb2xsUG9zaXRpb24oKSk7CiAKLSAgICBpZiAoc2Nyb2xsaW5nU3RhdGVOb2RlLmhh
c0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZU5vZGU6OlNjcm9sbExheWVyKSB8fCBzY3Jv
bGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5n
Tm9kZTo6VG90YWxDb250ZW50c1NpemUpIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2Vk
UHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpWaWV3cG9ydFJlY3QpKQorICAg
IGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUuaGFzQ2hhbmdlZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRl
Tm9kZTo6U2Nyb2xsTGF5ZXIpIHx8IHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVy
dHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpUb3RhbENvbnRlbnRzU2l6ZSkgfHwgc2Ny
b2xsaW5nU3RhdGVOb2RlLmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGlu
Z05vZGU6OlZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RSZWN0KSkKICAgICAgICAgdXBkYXRlTWFp
bkZyYW1lUGluU3RhdGUoc2Nyb2xsUG9zaXRpb24oKSk7CiB9CiAKQEAgLTIzNyw3ICsyMzcsNyBA
QCBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpzaG91bGRSdWJiZXJCYW5kSW5E
aXJlY3Rpb24oU2Nyb2xsRGlyZWN0aW9uKQogCiBJbnRQb2ludCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZU1hYzo6YWJzb2x1dGVTY3JvbGxQb3NpdGlvbigpCiB7Ci0gICAgcmV0dXJuIHNjcm9s
bFBvc2l0aW9uKCk7CisgICAgcmV0dXJuIHJvdW5kZWRJbnRQb2ludChzY3JvbGxQb3NpdGlvbigp
KTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6aW1tZWRpYXRlU2Ny
b2xsQnkoY29uc3QgRmxvYXRTaXplJiBvZmZzZXQpCkBAIC0yNzgsMTggKzI3OCwxOCBAQCB2b2lk
IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpzdG9wU25hcFJ1YmJlcmJhbmRUaW1lcigp
CiAKIHZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OmFkanVzdFNjcm9sbFBvc2l0
aW9uVG9Cb3VuZHNJZk5lY2Vzc2FyeSgpCiB7Ci0gICAgSW50UG9pbnQgY3VycmVudFNjcm9sbFBv
c2l0aW9uID0gYWJzb2x1dGVTY3JvbGxQb3NpdGlvbigpOwotICAgIEludFBvaW50IG1pblBvc2l0
aW9uID0gbWluaW11bVNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgSW50UG9pbnQgbWF4UG9zaXRpb24g
PSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKTsKKyAgICBGbG9hdFBvaW50IGN1cnJlbnRTY3JvbGxQ
b3NpdGlvbiA9IGFic29sdXRlU2Nyb2xsUG9zaXRpb24oKTsKKyAgICBGbG9hdFBvaW50IG1pblBv
c2l0aW9uID0gbWluaW11bVNjcm9sbFBvc2l0aW9uKCk7CisgICAgRmxvYXRQb2ludCBtYXhQb3Np
dGlvbiA9IG1heGltdW1TY3JvbGxQb3NpdGlvbigpOwogCi0gICAgaW50IG5lYXJlc3RYV2l0aGlu
Qm91bmRzID0gc3RkOjptYXg8aW50PihzdGQ6Om1pbjxpbnQ+KGN1cnJlbnRTY3JvbGxQb3NpdGlv
bi54KCksIG1heFBvc2l0aW9uLngoKSksIG1pblBvc2l0aW9uLngoKSk7Ci0gICAgaW50IG5lYXJl
c3RZV2l0aGluQm91bmRzID0gc3RkOjptYXg8aW50PihzdGQ6Om1pbjxpbnQ+KGN1cnJlbnRTY3Jv
bGxQb3NpdGlvbi55KCksIG1heFBvc2l0aW9uLnkoKSksIG1pblBvc2l0aW9uLnkoKSk7CisgICAg
ZmxvYXQgbmVhcmVzdFhXaXRoaW5Cb3VuZHMgPSBzdGQ6Om1heChzdGQ6Om1pbihjdXJyZW50U2Ny
b2xsUG9zaXRpb24ueCgpLCBtYXhQb3NpdGlvbi54KCkpLCBtaW5Qb3NpdGlvbi54KCkpOworICAg
IGZsb2F0IG5lYXJlc3RZV2l0aGluQm91bmRzID0gc3RkOjptYXgoc3RkOjptaW4oY3VycmVudFNj
cm9sbFBvc2l0aW9uLnkoKSwgbWF4UG9zaXRpb24ueSgpKSwgbWluUG9zaXRpb24ueSgpKTsKIAot
ICAgIEludFBvaW50IG5lYXJlc3RQb2ludFdpdGhpbkJvdW5kcyhuZWFyZXN0WFdpdGhpbkJvdW5k
cywgbmVhcmVzdFlXaXRoaW5Cb3VuZHMpOworICAgIEZsb2F0UG9pbnQgbmVhcmVzdFBvaW50V2l0
aGluQm91bmRzKG5lYXJlc3RYV2l0aGluQm91bmRzLCBuZWFyZXN0WVdpdGhpbkJvdW5kcyk7CiAg
ICAgaW1tZWRpYXRlU2Nyb2xsQnkobmVhcmVzdFBvaW50V2l0aGluQm91bmRzIC0gY3VycmVudFNj
cm9sbFBvc2l0aW9uKTsKIH0KIAotSW50UG9pbnQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVN
YWM6OnNjcm9sbFBvc2l0aW9uKCkgY29uc3QKK0Zsb2F0UG9pbnQgU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVNYWM6OnNjcm9sbFBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBpZiAoc2hvdWxkVXBk
YXRlU2Nyb2xsTGF5ZXJQb3NpdGlvblN5bmNocm9ub3VzbHkoKSkKICAgICAgICAgcmV0dXJuIG1f
cHJvYmFibGVNYWluVGhyZWFkU2Nyb2xsUG9zaXRpb247CkBAIC0yOTgsOSArMjk4LDkgQEAgSW50
UG9pbnQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OnNjcm9sbFBvc2l0aW9uKCkgY29u
c3QKICAgICByZXR1cm4gSW50UG9pbnQoLXNjcm9sbExheWVyUG9zaXRpb24ueCArIHNjcm9sbE9y
aWdpbigpLngoKSwgLXNjcm9sbExheWVyUG9zaXRpb24ueSArIHNjcm9sbE9yaWdpbigpLnkoKSk7
CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OnNldFNjcm9sbFBvc2l0
aW9uKGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbikKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVNYWM6OnNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9s
bFBvc2l0aW9uKQogewotICAgIEludFBvaW50IG5ld1Njcm9sbFBvc2l0aW9uID0gc2Nyb2xsUG9z
aXRpb247CisgICAgRmxvYXRQb2ludCBuZXdTY3JvbGxQb3NpdGlvbiA9IHNjcm9sbFBvc2l0aW9u
OwogICAgIG5ld1Njcm9sbFBvc2l0aW9uID0gbmV3U2Nyb2xsUG9zaXRpb24uc2hydW5rVG8obWF4
aW11bVNjcm9sbFBvc2l0aW9uKCkpOwogICAgIG5ld1Njcm9sbFBvc2l0aW9uID0gbmV3U2Nyb2xs
UG9zaXRpb24uZXhwYW5kZWRUbyhtaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSk7CiAKQEAgLTMxMCw3
ICszMTAsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpzZXRTY3JvbGxQ
b3NpdGlvbihjb25zdCBJbnRQb2ludCYgc2Nyb2xsUG9zaQogICAgICAgICBsb2dFeHBvc2VkVW5m
aWxsZWRBcmVhKCk7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVNYWM6OnNl
dFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3QgSW50UG9p
bnQmIHNjcm9sbFBvc2l0aW9uKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6
c2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW50cyhjb25zdCBGbG9h
dFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsKICAgICB1cGRhdGVNYWluRnJhbWVQaW5TdGF0ZShz
Y3JvbGxQb3NpdGlvbik7CiAKQEAgLTMyNCwxNCArMzI0LDE1IEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVNYWM6OnNldFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRlbnRFZGdlQ29u
c3RyYWluCiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKHNj
cm9sbGluZ05vZGVJRCgpLCBzY3JvbGxQb3NpdGlvbik7CiB9CiAKLXZvaWQgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGVNYWM6OnNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgSW50UG9pbnQm
IHBvc2l0aW9uKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6c2V0U2Nyb2xs
TGF5ZXJQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKIHsKICAgICBBU1NFUlQo
IXNob3VsZFVwZGF0ZVNjcm9sbExheWVyUG9zaXRpb25TeW5jaHJvbm91c2x5KCkpOwogICAgIG1f
c2Nyb2xsTGF5ZXIuZ2V0KCkucG9zaXRpb24gPSBDR1BvaW50TWFrZSgtcG9zaXRpb24ueCgpICsg
c2Nyb2xsT3JpZ2luKCkueCgpLCAtcG9zaXRpb24ueSgpICsgc2Nyb2xsT3JpZ2luKCkueSgpKTsK
IAogICAgIFNjcm9sbEJlaGF2aW9yRm9yRml4ZWRFbGVtZW50cyBiZWhhdmlvckZvckZpeGVkID0g
c2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzKCk7Ci0gICAgSW50UG9pbnQgc2Nyb2xsT2Zm
c2V0ID0gcG9zaXRpb24gLSB0b0ludFNpemUoc2Nyb2xsT3JpZ2luKCkpOwotICAgIEludFNpemUg
c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbiA9IEZyYW1lVmlldzo6c2Nyb2xsT2Zmc2V0Rm9y
Rml4ZWRQb3NpdGlvbih2aWV3cG9ydFJlY3QoKSwgdG90YWxDb250ZW50c1NpemUoKSwgc2Nyb2xs
T2Zmc2V0LCBzY3JvbGxPcmlnaW4oKSwgZnJhbWVTY2FsZUZhY3RvcigpLCBmYWxzZSwgYmVoYXZp
b3JGb3JGaXhlZCwgaGVhZGVySGVpZ2h0KCksIGZvb3RlckhlaWdodCgpKTsKKyAgICBGbG9hdFBv
aW50IHNjcm9sbE9mZnNldCA9IHBvc2l0aW9uIC0gdG9GbG9hdFNpemUoc2Nyb2xsT3JpZ2luKCkp
OworICAgIC8vIEZJWE1FOiBzY3JvbGxPZmZzZXRGb3JGaXhlZFBvc2l0aW9uKCkgbmVlZHMgdG8g
ZG8gZmxvYXQgbWF0aC4KKyAgICBGbG9hdFNpemUgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJl
biA9IEZyYW1lVmlldzo6c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbihlbmNsb3NpbmdJbnRS
ZWN0KHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RSZWN0KCkpLCB0b3RhbENvbnRlbnRzU2l6ZSgp
LCBmbG9vcmVkSW50UG9pbnQoc2Nyb2xsT2Zmc2V0KSwgc2Nyb2xsT3JpZ2luKCksIGZyYW1lU2Nh
bGVGYWN0b3IoKSwgZmFsc2UsIGJlaGF2aW9yRm9yRml4ZWQsIGhlYWRlckhlaWdodCgpLCBmb290
ZXJIZWlnaHQoKSk7CiAgICAgaWYgKG1fY291bnRlclNjcm9sbGluZ0xheWVyKQogICAgICAgICBt
X2NvdW50ZXJTY3JvbGxpbmdMYXllci5nZXQoKS5wb3NpdGlvbiA9IEZsb2F0UG9pbnQoc2Nyb2xs
T2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbik7CiAKQEAgLTM0MCw3ICszNDEsNyBAQCB2b2lkIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFjOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IElu
dFBvaW50JiBwb3NpdAogICAgIC8vIHRoZW4gd2Ugc2hvdWxkIHJlY29tcHV0ZSBzY3JvbGxPZmZz
ZXRGb3JGaXhlZENoaWxkcmVuIGZvciB0aGUgYmFubmVyIHdpdGggYSBzY2FsZSBmYWN0b3Igb2Yg
MS4KICAgICBmbG9hdCBob3Jpem9udGFsU2Nyb2xsT2Zmc2V0Rm9yQmFubmVyID0gc2Nyb2xsT2Zm
c2V0Rm9yRml4ZWRDaGlsZHJlbi53aWR0aCgpOwogICAgIGlmIChmcmFtZVNjYWxlRmFjdG9yKCkg
IT0gMSkKLSAgICAgICAgaG9yaXpvbnRhbFNjcm9sbE9mZnNldEZvckJhbm5lciA9IEZyYW1lVmll
dzo6c2Nyb2xsT2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbih2aWV3cG9ydFJlY3QoKSwgdG90YWxDb250
ZW50c1NpemUoKSwgc2Nyb2xsT2Zmc2V0LCBzY3JvbGxPcmlnaW4oKSwgMSwgZmFsc2UsIGJlaGF2
aW9yRm9yRml4ZWQsIGhlYWRlckhlaWdodCgpLCBmb290ZXJIZWlnaHQoKSkud2lkdGgoKTsKKyAg
ICAgICAgaG9yaXpvbnRhbFNjcm9sbE9mZnNldEZvckJhbm5lciA9IEZyYW1lVmlldzo6c2Nyb2xs
T2Zmc2V0Rm9yRml4ZWRQb3NpdGlvbihlbmNsb3NpbmdJbnRSZWN0KHZpZXdwb3J0Q29uc3RyYWlu
ZWRPYmplY3RSZWN0KCkpLCB0b3RhbENvbnRlbnRzU2l6ZSgpLCBmbG9vcmVkSW50UG9pbnQoc2Ny
b2xsT2Zmc2V0KSwgc2Nyb2xsT3JpZ2luKCksIDEsIGZhbHNlLCBiZWhhdmlvckZvckZpeGVkLCBo
ZWFkZXJIZWlnaHQoKSwgZm9vdGVySGVpZ2h0KCkpLndpZHRoKCk7CiAKICAgICBpZiAobV9oZWFk
ZXJMYXllcikKICAgICAgICAgbV9oZWFkZXJMYXllci5nZXQoKS5wb3NpdGlvbiA9IEZsb2F0UG9p
bnQoaG9yaXpvbnRhbFNjcm9sbE9mZnNldEZvckJhbm5lciwgMCk7CkBAIC0zNDgsNyArMzQ5LDcg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6c2V0U2Nyb2xsTGF5ZXJQb3Np
dGlvbihjb25zdCBJbnRQb2ludCYgcG9zaXQKICAgICBpZiAobV9mb290ZXJMYXllcikKICAgICAg
ICAgbV9mb290ZXJMYXllci5nZXQoKS5wb3NpdGlvbiA9IEZsb2F0UG9pbnQoaG9yaXpvbnRhbFNj
cm9sbE9mZnNldEZvckJhbm5lciwgdG90YWxDb250ZW50c1NpemUoKS5oZWlnaHQoKSAtIGZvb3Rl
ckhlaWdodCgpKTsKIAotICAgIEludFJlY3Qgdmlld3BvcnRSZWN0ID0gdGhpcy0+dmlld3BvcnRS
ZWN0KCk7CisgICAgRmxvYXRSZWN0IHZpZXdwb3J0UmVjdCA9IHZpZXdwb3J0Q29uc3RyYWluZWRP
YmplY3RSZWN0KCk7CiAKICAgICBpZiAobV92ZXJ0aWNhbFNjcm9sbGJhclBhaW50ZXIgfHwgbV9o
b3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlcikgewogICAgICAgICBbQ0FUcmFuc2FjdGlvbiBiZWdp
bl07CkBAIC0zNzYsMTQgKzM3NywxNCBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
TWFjOjpzZXRTY3JvbGxMYXllclBvc2l0aW9uKGNvbnN0IEludFBvaW50JiBwb3NpdAogICAgIGlm
ICghbV9jaGlsZHJlbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgdmlld3BvcnRSZWN0LnNldExv
Y2F0aW9uKEludFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRyZW4pKTsKKyAgICB2aWV3
cG9ydFJlY3Quc2V0TG9jYXRpb24oRmxvYXRQb2ludCgpICsgc2Nyb2xsT2Zmc2V0Rm9yRml4ZWRD
aGlsZHJlbik7CiAKICAgICBzaXplX3Qgc2l6ZSA9IG1fY2hpbGRyZW4tPnNpemUoKTsKICAgICBm
b3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgbV9jaGlsZHJlbi0+YXQo
aSktPnBhcmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKHZpZXdwb3J0UmVjdCwgRmxvYXRTaXpl
KCkpOwogfQogCi1JbnRQb2ludCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6bWluaW11
bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKK0Zsb2F0UG9pbnQgU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVNYWM6Om1pbmltdW1TY3JvbGxQb3NpdGlvbigpIGNvbnN0CiB7CiAgICAgSW50UG9pbnQg
cG9zaXRpb247CiAgICAgCkBAIC0zOTMsMTIgKzM5NCwxMiBAQCBJbnRQb2ludCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZU1hYzo6bWluaW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKICAgICBy
ZXR1cm4gcG9zaXRpb247CiB9CiAKLUludFBvaW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
TWFjOjptYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdAorRmxvYXRQb2ludCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZU1hYzo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkgY29uc3QKIHsKLSAg
ICBJbnRQb2ludCBwb3NpdGlvbih0b3RhbENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQoKS53aWR0
aCgpIC0gdmlld3BvcnRSZWN0KCkud2lkdGgoKSwKLSAgICAgICAgICAgICAgICAgICAgICB0b3Rh
bENvbnRlbnRzU2l6ZUZvclJ1YmJlckJhbmQoKS5oZWlnaHQoKSAtIHZpZXdwb3J0UmVjdCgpLmhl
aWdodCgpKTsKKyAgICBGbG9hdFBvaW50IHBvc2l0aW9uKHRvdGFsQ29udGVudHNTaXplRm9yUnVi
YmVyQmFuZCgpLndpZHRoKCkgLSB2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0UmVjdCgpLndpZHRo
KCksCisgICAgICAgIHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZCgpLmhlaWdodCgpIC0g
dmlld3BvcnRDb25zdHJhaW5lZE9iamVjdFJlY3QoKS5oZWlnaHQoKSk7CiAKLSAgICBwb3NpdGlv
bi5jbGFtcE5lZ2F0aXZlVG9aZXJvKCk7CisgICAgcG9zaXRpb24gPSBwb3NpdGlvbi5leHBhbmRl
ZFRvKEZsb2F0UG9pbnQoKSk7CiAKICAgICBpZiAoc2Nyb2xsaW5nVHJlZSgpLnJvb3ROb2RlKCkg
PT0gdGhpcyAmJiBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsUGlubmluZ0JlaGF2aW9yKCkgPT0gUGlu
VG9Ub3ApCiAgICAgICAgIHBvc2l0aW9uLnNldFkobWluaW11bVNjcm9sbFBvc2l0aW9uKCkueSgp
KTsKQEAgLTQxNiw3ICs0MTcsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlTWFj
OjpzY3JvbGxCeVdpdGhvdXRDb250ZW50RWRnZUNvbnN0cmFpbnRzKGNvbnN0CiAgICAgc2V0U2Ny
b2xsUG9zaXRpb25XaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW50cyhzY3JvbGxQb3NpdGlvbigp
ICsgb2Zmc2V0KTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6dXBk
YXRlTWFpbkZyYW1lUGluU3RhdGUoY29uc3QgSW50UG9pbnQmIHNjcm9sbFBvc2l0aW9uKQordm9p
ZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6dXBkYXRlTWFpbkZyYW1lUGluU3RhdGUo
Y29uc3QgRmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pCiB7CiAgICAgYm9vbCBwaW5uZWRUb1Ro
ZUxlZnQgPSBzY3JvbGxQb3NpdGlvbi54KCkgPD0gbWluaW11bVNjcm9sbFBvc2l0aW9uKCkueCgp
OwogICAgIGJvb2wgcGlubmVkVG9UaGVSaWdodCA9IHNjcm9sbFBvc2l0aW9uLngoKSA+PSBtYXhp
bXVtU2Nyb2xsUG9zaXRpb24oKS54KCk7CkBAIC00NTAsOCArNDUxLDggQEAgdm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZU1hYzo6bG9nRXhwb3NlZFVuZmlsbGVkQXJlYSgpCiAgICAgICAg
IFtzdWJsYXllcnMgcmVsZWFzZV07CiAgICAgfQogCi0gICAgSW50UG9pbnQgc2Nyb2xsUG9zaXRp
b24gPSB0aGlzLT5zY3JvbGxQb3NpdGlvbigpOwotICAgIHVuc2lnbmVkIHVuZmlsbGVkQXJlYSA9
IFRpbGVDb250cm9sbGVyOjpibGFua1BpeGVsQ291bnRGb3JUaWxlcyh0aWxlcywgdmlld3BvcnRS
ZWN0KCksIEludFBvaW50KC1zY3JvbGxQb3NpdGlvbi54KCksIC1zY3JvbGxQb3NpdGlvbi55KCkp
KTsKKyAgICBGbG9hdFBvaW50IHNjcm9sbFBvc2l0aW9uID0gdGhpcy0+c2Nyb2xsUG9zaXRpb24o
KTsKKyAgICB1bnNpZ25lZCB1bmZpbGxlZEFyZWEgPSBUaWxlQ29udHJvbGxlcjo6YmxhbmtQaXhl
bENvdW50Rm9yVGlsZXModGlsZXMsIHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RSZWN0KCksIElu
dFBvaW50KC1zY3JvbGxQb3NpdGlvbi54KCksIC1zY3JvbGxQb3NpdGlvbi55KCkpKTsKIAogICAg
IGlmICh1bmZpbGxlZEFyZWEgfHwgbV9sYXN0U2Nyb2xsSGFkVW5maWxsZWRQaXhlbHMpCiAgICAg
ICAgIFdURkxvZ0Fsd2F5cygiU0NST0xMSU5HOiBFeHBvc2VkIHRpbGVsZXNzIGFyZWEuIFRpbWU6
ICVmIFVuZmlsbGVkIFBpeGVsczogJXVcbiIsIFdURjo6bW9ub3RvbmljYWxseUluY3JlYXNpbmdU
aW1lKCksIHVuZmlsbGVkQXJlYSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oCmluZGV4IDIwNGU2Y2Yz
MmU5M2UzMDJiN2RlOTU0MDdiNjQ4MmRlZWE3MDdjMTEuLjgwZTFkZmFmNTNiODhkNTk5ZWZhMDRh
MTcxMTgwZmIzMDk4MTlmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL21hYy9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5oCkBAIC00OCw3ICs0OCw3
IEBAIHByaXZhdGU6CiAgICAgU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUoU2Nyb2xsaW5nVHJlZSYs
IFNjcm9sbGluZ05vZGVJRCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlQmVmb3JlQ2hpbGRy
ZW4oY29uc3QgU2Nyb2xsaW5nU3RhdGVOb2RlJikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IHBhcmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKGNvbnN0IEludFJlY3QmIHZpZXdwb3J0UmVj
dCwgY29uc3QgRmxvYXRTaXplJiBjdW11bGF0aXZlRGVsdGEpIG92ZXJyaWRlOworICAgIHZpcnR1
YWwgdm9pZCBwYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5nZShjb25zdCBGbG9hdFJlY3QmIHZp
ZXdwb3J0UmVjdCwgY29uc3QgRmxvYXRTaXplJiBjdW11bGF0aXZlRGVsdGEpIG92ZXJyaWRlOwog
CiAgICAgU3RpY2t5UG9zaXRpb25WaWV3cG9ydENvbnN0cmFpbnRzIG1fY29uc3RyYWludHM7CiAg
ICAgUmV0YWluUHRyPENBTGF5ZXI+IG1fbGF5ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVN0aWNreU5vZGUubW0KaW5k
ZXggNmVhNDA2MzUzNzE3YTU3YjdhNTlmODQ3NjJlYmMyOTYxOGM4NTA3YS4uNzgzMDUxZmM0Nzk5
YjcyZGEwYjQzODNhZjRkNjQyYWNhZTVjNDUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVTdGlja3lOb2RlLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU3RpY2t5Tm9kZS5tbQpA
QCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgaW5saW5lIENHUG9pbnQgb3BlcmF0b3IqKENHUG9pbnQm
IGEsIGNvbnN0IENHU2l6ZSYgYikKICAgICByZXR1cm4gQ0dQb2ludE1ha2UoYS54ICogYi53aWR0
aCwgYS55ICogYi5oZWlnaHQpOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTdGlja3lOb2RlOjpw
YXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5nZShjb25zdCBJbnRSZWN0JiB2aWV3cG9ydFJlY3Qs
IGNvbnN0IEZsb2F0U2l6ZSYgY3VtdWxhdGl2ZURlbHRhKQordm9pZCBTY3JvbGxpbmdUcmVlU3Rp
Y2t5Tm9kZTo6cGFyZW50U2Nyb2xsUG9zaXRpb25EaWRDaGFuZ2UoY29uc3QgRmxvYXRSZWN0JiB2
aWV3cG9ydFJlY3QsIGNvbnN0IEZsb2F0U2l6ZSYgY3VtdWxhdGl2ZURlbHRhKQogewogICAgIEZs
b2F0UG9pbnQgbGF5ZXJQb3NpdGlvbiA9IG1fY29uc3RyYWludHMubGF5ZXJQb3NpdGlvbkZvckNv
bnN0cmFpbmluZ1JlY3Qodmlld3BvcnRSZWN0KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRQb2ludC5oCmluZGV4IDYyYzM3YmQzNmIxMWI4OTYyNDZhYmNiMGNh
ZGZhNzI4NDQxNGVmYzUuLjEwM2NmZWNlYzk1NDRmYjA3YjQyZmM3Yzk3NjYyZTcyNjg5Y2E3ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UG9pbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFBvaW50LmgKQEAg
LTExNiw2ICsxMTYsMTEgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV94ICogbV94ICsgbV95
ICogbV95OwogICAgIH0KIAorICAgIEZsb2F0UG9pbnQgc2hydW5rVG8oY29uc3QgRmxvYXRQb2lu
dCYgb3RoZXIpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gRmxvYXRQb2ludChzdGQ6Om1p
bihtX3gsIG90aGVyLm1feCksIHN0ZDo6bWluKG1feSwgb3RoZXIubV95KSk7CisgICAgfQorCiAg
ICAgRmxvYXRQb2ludCBleHBhbmRlZFRvKGNvbnN0IEZsb2F0UG9pbnQmIG90aGVyKSBjb25zdAog
ICAgIHsKICAgICAgICAgcmV0dXJuIEZsb2F0UG9pbnQoc3RkOjptYXgobV94LCBvdGhlci5tX3gp
LCBzdGQ6Om1heChtX3ksIG90aGVyLm1feSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclRyYW5zYWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JUcmFuc2FjdGlvbi5jcHAKaW5kZXggMmE4ZGQ1MmJmMzViZTcwZThjYTRhMmM0YzIxZTA5
ZTEwMjYwNmY2Yi4uN2UxNTc3Mzg1YTgwZTNjYjYyY2MzMTZmZWY3N2JmZTU4OTY0ZTNiZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2Ny
b2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yVHJhbnNhY3Rpb24uY3BwCkBAIC0xMDgs
OCArMTA4LDkgQEAgdm9pZCBBcmd1bWVudENvZGVyPFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9k
ZT46OmVuY29kZShBcmd1bWVudEVuY29kZXImIGVuY29kZXIKIHsKICAgICBlbmNvZGVyIDw8IHN0
YXRpY19jYXN0PGNvbnN0IFNjcm9sbGluZ1N0YXRlTm9kZSY+KG5vZGUpOwogICAgIAotICAgIFND
Uk9MTElOR19OT0RFX0VOQ09ERShWaWV3cG9ydFJlY3QsIHZpZXdwb3J0UmVjdCkKKyAgICBTQ1JP
TExJTkdfTk9ERV9FTkNPREUoVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdFJlY3QsIHZpZXdwb3J0
Q29uc3RyYWluZWRPYmplY3RSZWN0KQogICAgIFNDUk9MTElOR19OT0RFX0VOQ09ERShUb3RhbENv
bnRlbnRzU2l6ZSwgdG90YWxDb250ZW50c1NpemUpCisgICAgU0NST0xMSU5HX05PREVfRU5DT0RF
KFNjcm9sbFBvc2l0aW9uLCBzY3JvbGxQb3NpdGlvbikKICAgICBTQ1JPTExJTkdfTk9ERV9FTkNP
REUoU2Nyb2xsT3JpZ2luLCBzY3JvbGxPcmlnaW4pCiAgICAgU0NST0xMSU5HX05PREVfRU5DT0RF
KEZyYW1lU2NhbGVGYWN0b3IsIGZyYW1lU2NhbGVGYWN0b3IpCiAvLyAgICBTQ1JPTExJTkdfTk9E
RV9FTkNPREUoTm9uRmFzdFNjcm9sbGFibGVSZWdpb24sIG5vbkZhc3RTY3JvbGxhYmxlUmVnaW9u
KSAvLyBGSVhNRTogbm8gZW5jb2RlciBzdXBwb3J0IGZvciBSZWdpb24KQEAgLTE0Myw4ICsxNDQs
OSBAQCBib29sIEFyZ3VtZW50Q29kZXI8U2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlPjo6ZGVj
b2RlKEFyZ3VtZW50RGVjb2RlciYgZGVjb2RlcgogICAgIGlmICghZGVjb2Rlci5kZWNvZGUoc3Rh
dGljX2Nhc3Q8U2Nyb2xsaW5nU3RhdGVOb2RlJj4obm9kZSkpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKLSAgICBTQ1JPTExJTkdfTk9ERV9ERUNPREUoVmlld3BvcnRSZWN0LCBJbnRSZWN0LCBz
ZXRWaWV3cG9ydFJlY3QpOworICAgIFNDUk9MTElOR19OT0RFX0RFQ09ERShWaWV3cG9ydENvbnN0
cmFpbmVkT2JqZWN0UmVjdCwgRmxvYXRSZWN0LCBzZXRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0
UmVjdCk7CiAgICAgU0NST0xMSU5HX05PREVfREVDT0RFKFRvdGFsQ29udGVudHNTaXplLCBJbnRT
aXplLCBzZXRUb3RhbENvbnRlbnRzU2l6ZSk7CisgICAgU0NST0xMSU5HX05PREVfREVDT0RFKFNj
cm9sbFBvc2l0aW9uLCBGbG9hdFBvaW50LCBzZXRTY3JvbGxQb3NpdGlvbik7CiAgICAgU0NST0xM
SU5HX05PREVfREVDT0RFKFNjcm9sbE9yaWdpbiwgSW50UG9pbnQsIHNldFNjcm9sbE9yaWdpbik7
CiAgICAgU0NST0xMSU5HX05PREVfREVDT0RFKEZyYW1lU2NhbGVGYWN0b3IsIGZsb2F0LCBzZXRG
cmFtZVNjYWxlRmFjdG9yKTsKIC8vICAgIFNDUk9MTElOR19OT0RFX0RFQ09ERShOb25GYXN0U2Ny
b2xsYWJsZVJlZ2lvbiwgUmVnaW9uLCBzZXROb25GYXN0U2Nyb2xsYWJsZVJlZ2lvbik7IC8vIEZJ
WE1FOiBubyBkZWNvZGVyIHN1cHBvcnQgZm9yIFJlZ2lvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCmlu
ZGV4IDIzMTdkMTU4MjJhZmRmNzVlOTVlM2M4NDE5MjAyYWQ1ZDhkNDU5NzYuLjdkMDVjZDhlN2Yx
ZjhkOTMxN2M1NDhmNzY0OGMzNzI4MTk5MzY2NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcApAQCAt
NzYsNyArNzYsNyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnRQ
aGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBwaGFzZSkKIH0KICNlbmRpZgogCi12b2lkIFJl
bW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05v
ZGVJRCBub2RlSUQsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgU2V0T3JTeW5jU2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbikKK3ZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6c2Nyb2xsaW5n
VHJlZU5vZGVEaWRTY3JvbGwoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwgY29uc3QgRmxvYXRQb2lu
dCYgc2Nyb2xsUG9zaXRpb24sIFNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pCiB7CiAg
ICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclByb3h5LnNjcm9sbFBvc2l0aW9uQ2hhbmdlZChub2Rl
SUQsIHNjcm9sbFBvc2l0aW9uKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKaW5kZXggMjY4ZTVhMmM2YTE3
ZmQzOTdkYjBjNmNkODlmYzlhYmI3OTY2NDI1MC4uZGNjN2QzMTI3M2MwYjYxYTQ5Mjg2MDkzZTEx
NTJlZDcwMTIwMjdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9s
bGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0
ZToKICNpZiBQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCiAgICAgdmlydHVhbCB2b2lk
IGhhbmRsZVdoZWVsRXZlbnRQaGFzZShXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSkg
b3ZlcnJpZGU7CiAjZW5kaWYKLSAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsaW5nVHJlZU5vZGVEaWRT
Y3JvbGwoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYg
c2Nyb2xsUG9zaXRpb24sIFdlYkNvcmU6OlNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24g
PSBXZWJDb3JlOjpTeW5jU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFdlYkNvcmU6
OlNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gPSBXZWJDb3JlOjpTeW5jU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5
cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CiAgICAgCg==
</data>
<flag name="review"
          id="246895"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>