<?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>121819</bug_id>
          
          <creation_ts>2013-09-23 18:17:08 -0700</creation_ts>
          <short_desc>Remove WTF_USE_SCROLLBAR_PAINTER #define</short_desc>
          <delta_ts>2013-09-23 19:08:11 -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>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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>932398</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-23 18:17:08 -0700</bug_when>
    <thetext>Remove WTF_USE_SCROLLBAR_PAINTER #define</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932399</commentid>
    <comment_count>1</comment_count>
      <attachid>212418</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-09-23 18:26:53 -0700</bug_when>
    <thetext>Created attachment 212418
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932406</commentid>
    <comment_count>2</comment_count>
      <attachid>212418</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-23 19:08:09 -0700</bug_when>
    <thetext>Comment on attachment 212418
Patch

Clearing flags on attachment: 212418

Committed r156316: &lt;http://trac.webkit.org/changeset/156316&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>932407</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-09-23 19:08:11 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>212418</attachid>
            <date>2013-09-23 18:26:53 -0700</date>
            <delta_ts>2013-09-23 19:08:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-121819-20130923182653.patch</filename>
            <type>text/plain</type>
            <size>41250</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTU2MzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDBjZjk3Mzg0OWI3MTRhMGI5NzZiMzRl
NDk3M2UxYmI5ZmM4OWFkNTEuLjJlNTQ3YzQyYmVlMDA5MjdmZGZlNmUwODU2OTk4MTUwMTY5YzRi
NjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTYgQEAKIDIwMTMtMDktMjMgIEFuZGVycyBDYXJsc3NvbiAgPGFu
ZGVyc2NhQGFwcGxlLmNvbT4KIAorICAgICAgICBSZW1vdmUgV1RGX1VTRV9TQ1JPTExCQVJfUEFJ
TlRFUiAjZGVmaW5lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMjE4MTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBbGwgb3VyIHN1cHBvcnRlZCBzeXN0ZW1zIHVzZSB0aGUgc2Nyb2xsYmFyIHBhaW50ZXIg
bm93LCBzbyBnZXQgcmlkIG9mIHRoZSAjaWZkZWYuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm0u
aDoKKworMjAxMy0wOS0yMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgor
CiAgICAgICAgIFRlc3QgdGhlIHdhdGVycyBhbmQgYmVnaW4gdXNpbmcgbGFtYmRhcwogICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTIxODA5CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAwMDA0NmFkMDgyOWU3YTU4NjIwZjM3YjgwMDExMzkxYjMxNDBmZjhiLi40MzRhMDU3
OGNmNjE2NjdkZWZmYzliYTcyMWU3Y2M2ZjgwMDZhZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTUgQEAKKzIwMTMtMDktMjMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4K
KworICAgICAgICBSZW1vdmUgV1RGX1VTRV9TQ1JPTExCQVJfUEFJTlRFUiAjZGVmaW5lCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjE4MTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgdW5uZWNl
c3NhcnkgaWYgY2hlY2tzIGFuZCBkZWFkIGNvZGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
TlNTY3JvbGxlckltcERldGFpbHMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6U2Nyb2xs
QW5pbWF0b3JNYWMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6On5TY3Jv
bGxBbmltYXRvck1hYyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y29u
dGVudEFyZWFXaWxsUGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6
Om1vdXNlRW50ZXJlZENvbnRlbnRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yTWFjOjptb3VzZUV4aXRlZENvbnRlbnRBcmVhKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bEFuaW1hdG9yTWFjOjptb3VzZU1vdmVkSW5Db250ZW50QXJlYSk6CisgICAgICAgIChXZWJDb3Jl
OjpTY3JvbGxBbmltYXRvck1hYzo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyKToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZUV4aXRlZFNjcm9sbGJhcik6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6d2lsbFN0YXJ0TGl2ZVJlc2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudHNSZXNpemVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjp3aWxsRW5kTGl2ZVJlc2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudEFyZWFEaWRTaG93KToKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpjb250ZW50QXJlYURpZEhpZGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEJlZ2luU2Nyb2xsR2VzdHVy
ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkRW5kU2Nyb2xsR2Vz
dHVyZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6bWF5QmVnaW5TY3Jv
bGxHZXN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yTWFjOjpmaW5pc2hD
dXJyZW50U2Nyb2xsQW5pbWF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6ZGlkQWRkVmVydGljYWxTY3JvbGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
QW5pbWF0b3JNYWM6OndpbGxSZW1vdmVWZXJ0aWNhbFNjcm9sbGJhcik6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxBbmltYXRvck1hYzo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcik6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6d2lsbFJlbW92ZUhvcml6b250YWxTY3Jv
bGxiYXIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZFNjcm9s
bGJhclBhcnRpY2lwYXRlSW5IaXRUZXN0aW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFu
aW1hdG9yTWFjOjpub3RpZnlDb250ZW50QXJlYVNjcm9sbGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjpjYW5jZWxBbmltYXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbEFuaW1hdG9yTWFjOjpzZXRJc0FjdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvck1hYzo6dXBkYXRlU2Nyb2xsZXJTdHlsZSk6CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxBbmltYXRvck1hYzo6aW5pdGlhbFNjcm9sbGJhclBhaW50VGltZXJGaXJlZCk6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdNYWMubW06CisgICAgICAgIChXZWJDb3JlOjp0
b05TU2Nyb2xsZXJLbm9iU3R5bGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxh
dGZvcm1TZXRTY3JvbGxiYXJPdmVybGF5U3R5bGUpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9T
Y3JvbGxiYXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZUFycm93UGxhY2Vt
ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpyZWdpc3RlclNjcm9s
bGJhcik6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6U2Nyb2xsYmFyVGhl
bWVNYWMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6OnNjcm9sbGJhclRo
aWNrbmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6dXNlc092ZXJs
YXlTY3JvbGxiYXJzQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1h
Yzo6aGFzVGh1bWIpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6Om1pbmlt
dW1UaHVtYkxlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXJUaGVtZU1hYzo6dXBk
YXRlRW5hYmxlZFN0YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhclRoZW1lTWFjOjpw
YWludCk6CisKIDIwMTMtMDktMjMgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgog
CiAgICAgICAgIENUVEU6IFJlbmRlck9iamVjdDo6Y29udGFpbmVyKCkgc2hvdWxkIHJldHVybiBh
IFJlbmRlckVsZW1lbnQqLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaCBi
L1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtLmgKaW5kZXggNTVjY2Y5OGE5YjgwNGI2YmQ3MGMzNmQx
NjIwYmFmNzA1NmViMjlmYy4uMmFlNTNjYjI1NDY4NzRjZGE4YzUxODZiNTcyMTY2NWU5Nzk5NjZj
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvUGxhdGZvcm0uaAorKysgYi9Tb3VyY2UvV1RG
L3d0Zi9QbGF0Zm9ybS5oCkBAIC01MTcsNyArNTE3LDYgQEAKICNkZWZpbmUgV1RGX1VTRV9QTFVH
SU5fSE9TVF9QUk9DRVNTIDEKICNlbmRpZgogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTA3MAotI2RlZmluZSBXVEZfVVNFX1NDUk9MTEJBUl9QQUlOVEVSIDEKICNkZWZp
bmUgSEFWRV9YUEMgMQogI2VuZGlmCiAjZGVmaW5lIFdURl9VU0VfQ0YgMQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL05TU2Nyb2xsZXJJbXBEZXRhaWxzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaAppbmRleCBmNmM4
MmE5YmZlYWI0YWQwN2I0MzRhODVmYTJhM2Q4NjFjNDQ5YWY4Li4wMWNiOWExNmNhNmQ1ZjUxNzVi
M2Q0MDg4YjBlNjlhMTU4ZjcyYzQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvTlNTY3JvbGxlckltcERldGFpbHMuaApAQCAtOTAsMTUgKzkwLDYgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1zdGF0aWMgaW5saW5lIGJvb2wgaXNTY3JvbGxiYXJPdmVybGF5QVBJ
QXZhaWxhYmxlKCkKLXsKLSNpZiBVU0UoU0NST0xMQkFSX1BBSU5URVIpCi0gICAgcmV0dXJuIHRy
dWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBOU1Njcm9sbGVyU3R5
bGUgcmVjb21tZW5kZWRTY3JvbGxlclN0eWxlKCk7CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQppbmRleCBjZjVkZDI2NjE2MzNlNzRk
MTUwNDg5MTE4ZWY2MjZlNTBjNzAzMjVjLi43MGJjNzkxYTkzMDBkY2VhYjcwZTY2NjNiZDQyOWMx
NTAwNTIzODA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xs
QW5pbWF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFu
aW1hdG9yTWFjLm1tCkBAIC0zNTQsMTYgKzM1NCwxNiBAQCBlbnVtIEZlYXR1cmVUb0FuaW1hdGUg
ewogCiAgICAgc3dpdGNoIChfZmVhdHVyZVRvQW5pbWF0ZSkgewogICAgIGNhc2UgVGh1bWJBbHBo
YToKLSAgICAgICAgW19zY3JvbGxiYXJQYWludGVyLmdldCgpIHNldEtub2JBbHBoYTpjdXJyZW50
VmFsdWVdOworICAgICAgICBbX3Njcm9sbGJhclBhaW50ZXIgc2V0S25vYkFscGhhOmN1cnJlbnRW
YWx1ZV07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVHJhY2tBbHBoYToKLSAgICAgICAgW19z
Y3JvbGxiYXJQYWludGVyLmdldCgpIHNldFRyYWNrQWxwaGE6Y3VycmVudFZhbHVlXTsKKyAgICAg
ICAgW19zY3JvbGxiYXJQYWludGVyIHNldFRyYWNrQWxwaGE6Y3VycmVudFZhbHVlXTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBVSVN0YXRlVHJhbnNpdGlvbjoKLSAgICAgICAgW19zY3JvbGxi
YXJQYWludGVyLmdldCgpIHNldFVpU3RhdGVUcmFuc2l0aW9uUHJvZ3Jlc3M6Y3VycmVudFZhbHVl
XTsKKyAgICAgICAgW19zY3JvbGxiYXJQYWludGVyIHNldFVpU3RhdGVUcmFuc2l0aW9uUHJvZ3Jl
c3M6Y3VycmVudFZhbHVlXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBFeHBhbnNpb25UcmFu
c2l0aW9uOgotICAgICAgICBbX3Njcm9sbGJhclBhaW50ZXIuZ2V0KCkgc2V0RXhwYW5zaW9uVHJh
bnNpdGlvblByb2dyZXNzOmN1cnJlbnRWYWx1ZV07CisgICAgICAgIFtfc2Nyb2xsYmFyUGFpbnRl
ciBzZXRFeHBhbnNpb25UcmFuc2l0aW9uUHJvZ3Jlc3M6Y3VycmVudFZhbHVlXTsKICAgICAgICAg
YnJlYWs7CiAgICAgfQogCkBAIC00MDgsMTAgKzQwOCwxMCBAQCBlbnVtIEZlYXR1cmVUb0FuaW1h
dGUgewogLSAodm9pZCljYW5jZWxBbmltYXRpb25zCiB7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19F
WENFUFRJT05TOwotICAgIFtfa25vYkFscGhhQW5pbWF0aW9uLmdldCgpIHN0b3BBbmltYXRpb25d
OwotICAgIFtfdHJhY2tBbHBoYUFuaW1hdGlvbi5nZXQoKSBzdG9wQW5pbWF0aW9uXTsKLSAgICBb
X3VpU3RhdGVUcmFuc2l0aW9uQW5pbWF0aW9uLmdldCgpIHN0b3BBbmltYXRpb25dOwotICAgIFtf
ZXhwYW5zaW9uVHJhbnNpdGlvbkFuaW1hdGlvbi5nZXQoKSBzdG9wQW5pbWF0aW9uXTsKKyAgICBb
X2tub2JBbHBoYUFuaW1hdGlvbiBzdG9wQW5pbWF0aW9uXTsKKyAgICBbX3RyYWNrQWxwaGFBbmlt
YXRpb24gc3RvcEFuaW1hdGlvbl07CisgICAgW191aVN0YXRlVHJhbnNpdGlvbkFuaW1hdGlvbiBz
dG9wQW5pbWF0aW9uXTsKKyAgICBbX2V4cGFuc2lvblRyYW5zaXRpb25BbmltYXRpb24gc3RvcEFu
aW1hdGlvbl07CiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIH0KIApAQCAtNDcyLDcg
KzQ3Miw3IEBAIGVudW0gRmVhdHVyZVRvQW5pbWF0ZSB7CiAKICAgICAvLyBJZiB3ZSBhcmUgY3Vy
cmVudGx5IGFuaW1hdGluZywgc3RvcAogICAgIGlmIChzY3JvbGxiYXJQYXJ0QW5pbWF0aW9uKSB7
Ci0gICAgICAgIFtzY3JvbGxiYXJQYXJ0QW5pbWF0aW9uLmdldCgpIHN0b3BBbmltYXRpb25dOwor
ICAgICAgICBbc2Nyb2xsYmFyUGFydEFuaW1hdGlvbiBzdG9wQW5pbWF0aW9uXTsKICAgICAgICAg
c2Nyb2xsYmFyUGFydEFuaW1hdGlvbiA9IG5pbDsKICAgICB9CiAKQEAgLTQ4OSw3ICs0ODksNyBA
QCBlbnVtIEZlYXR1cmVUb0FuaW1hdGUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGVGcm9t
OnBhcnQgPT0gVGh1bWJQYXJ0ID8gW3Njcm9sbGVyUGFpbnRlciBrbm9iQWxwaGFdIDogW3Njcm9s
bGVyUGFpbnRlciB0cmFja0FscGhhXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0ZVRvOm5l
d0FscGhhIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGR1cmF0aW9uOmR1cmF0aW9uXSk7Ci0gICAg
W3Njcm9sbGJhclBhcnRBbmltYXRpb24uZ2V0KCkgc3RhcnRBbmltYXRpb25dOworICAgIFtzY3Jv
bGxiYXJQYXJ0QW5pbWF0aW9uIHN0YXJ0QW5pbWF0aW9uXTsKIH0KIAogLSAodm9pZClzY3JvbGxl
ckltcDooaWQpc2Nyb2xsZXJJbXAgYW5pbWF0ZUtub2JBbHBoYVRvOihDR0Zsb2F0KW5ld0tub2JB
bHBoYSBkdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb24KQEAgLTU0MywxMSArNTQzLDEx
IEBAIGVudW0gRmVhdHVyZVRvQW5pbWF0ZSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgZHVyYXRpb246ZHVyYXRpb25dKTsKICAgICBlbHNlIHsKICAgICAgICAgLy8gSWYgd2UgZG9u
J3QgbmVlZCB0byBpbml0aWFsaXplIHRoZSBhbmltYXRpb24sIGp1c3QgcmVzZXQgdGhlIHZhbHVl
cyBpbiBjYXNlIHRoZXkgaGF2ZSBjaGFuZ2VkLgotICAgICAgICBbX3VpU3RhdGVUcmFuc2l0aW9u
QW5pbWF0aW9uLmdldCgpIHNldFN0YXJ0VmFsdWU6W3Njcm9sbGJhclBhaW50ZXIgdWlTdGF0ZVRy
YW5zaXRpb25Qcm9ncmVzc11dOwotICAgICAgICBbX3VpU3RhdGVUcmFuc2l0aW9uQW5pbWF0aW9u
LmdldCgpIHNldEVuZFZhbHVlOjEuMF07Ci0gICAgICAgIFtfdWlTdGF0ZVRyYW5zaXRpb25Bbmlt
YXRpb24uZ2V0KCkgc2V0RHVyYXRpb246ZHVyYXRpb25dOworICAgICAgICBbX3VpU3RhdGVUcmFu
c2l0aW9uQW5pbWF0aW9uIHNldFN0YXJ0VmFsdWU6W3Njcm9sbGJhclBhaW50ZXIgdWlTdGF0ZVRy
YW5zaXRpb25Qcm9ncmVzc11dOworICAgICAgICBbX3VpU3RhdGVUcmFuc2l0aW9uQW5pbWF0aW9u
IHNldEVuZFZhbHVlOjEuMF07CisgICAgICAgIFtfdWlTdGF0ZVRyYW5zaXRpb25BbmltYXRpb24g
c2V0RHVyYXRpb246ZHVyYXRpb25dOwogICAgIH0KLSAgICBbX3VpU3RhdGVUcmFuc2l0aW9uQW5p
bWF0aW9uLmdldCgpIHN0YXJ0QW5pbWF0aW9uXTsKKyAgICBbX3VpU3RhdGVUcmFuc2l0aW9uQW5p
bWF0aW9uIHN0YXJ0QW5pbWF0aW9uXTsKIH0KIAogLSAodm9pZClzY3JvbGxlckltcDooaWQpc2Ny
b2xsZXJJbXAgYW5pbWF0ZUV4cGFuc2lvblRyYW5zaXRpb25XaXRoRHVyYXRpb246KE5TVGltZUlu
dGVydmFsKWR1cmF0aW9uCkBAIC01NzMsMTEgKzU3MywxMSBAQCBlbnVtIEZlYXR1cmVUb0FuaW1h
dGUgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHVyYXRpb246ZHVyYXRpb25d
KTsKICAgICB9IGVsc2UgewogICAgICAgICAvLyBJZiB3ZSBkb24ndCBuZWVkIHRvIGluaXRpYWxp
emUgdGhlIGFuaW1hdGlvbiwganVzdCByZXNldCB0aGUgdmFsdWVzIGluIGNhc2UgdGhleSBoYXZl
IGNoYW5nZWQuCi0gICAgICAgIFtfZXhwYW5zaW9uVHJhbnNpdGlvbkFuaW1hdGlvbi5nZXQoKSBz
ZXRTdGFydFZhbHVlOltzY3JvbGxiYXJQYWludGVyIHVpU3RhdGVUcmFuc2l0aW9uUHJvZ3Jlc3Nd
XTsKLSAgICAgICAgW19leHBhbnNpb25UcmFuc2l0aW9uQW5pbWF0aW9uLmdldCgpIHNldEVuZFZh
bHVlOjEuMF07Ci0gICAgICAgIFtfZXhwYW5zaW9uVHJhbnNpdGlvbkFuaW1hdGlvbi5nZXQoKSBz
ZXREdXJhdGlvbjpkdXJhdGlvbl07CisgICAgICAgIFtfZXhwYW5zaW9uVHJhbnNpdGlvbkFuaW1h
dGlvbiBzZXRTdGFydFZhbHVlOltzY3JvbGxiYXJQYWludGVyIHVpU3RhdGVUcmFuc2l0aW9uUHJv
Z3Jlc3NdXTsKKyAgICAgICAgW19leHBhbnNpb25UcmFuc2l0aW9uQW5pbWF0aW9uIHNldEVuZFZh
bHVlOjEuMF07CisgICAgICAgIFtfZXhwYW5zaW9uVHJhbnNpdGlvbkFuaW1hdGlvbiBzZXREdXJh
dGlvbjpkdXJhdGlvbl07CiAgICAgfQotICAgIFtfZXhwYW5zaW9uVHJhbnNpdGlvbkFuaW1hdGlv
bi5nZXQoKSBzdGFydEFuaW1hdGlvbl07CisgICAgW19leHBhbnNpb25UcmFuc2l0aW9uQW5pbWF0
aW9uIHN0YXJ0QW5pbWF0aW9uXTsKIH0KIAogLSAodm9pZClzY3JvbGxlckltcDooaWQpc2Nyb2xs
ZXJJbXAgb3ZlcmxheVNjcm9sbGVyU3RhdGVDaGFuZ2VkVG86KE5TVUludGVnZXIpbmV3T3Zlcmxh
eVNjcm9sbGVyU3RhdGUKQEAgLTU5MCwxMCArNTkwLDEwIEBAIGVudW0gRmVhdHVyZVRvQW5pbWF0
ZSB7CiB7CiAgICAgX3Njcm9sbGJhciA9IDA7CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOwotICAgIFtfa25vYkFscGhhQW5pbWF0aW9uLmdldCgpIGludmFsaWRhdGVdOwotICAgIFtf
dHJhY2tBbHBoYUFuaW1hdGlvbi5nZXQoKSBpbnZhbGlkYXRlXTsKLSAgICBbX3VpU3RhdGVUcmFu
c2l0aW9uQW5pbWF0aW9uLmdldCgpIGludmFsaWRhdGVdOwotICAgIFtfZXhwYW5zaW9uVHJhbnNp
dGlvbkFuaW1hdGlvbi5nZXQoKSBpbnZhbGlkYXRlXTsKKyAgICBbX2tub2JBbHBoYUFuaW1hdGlv
biBpbnZhbGlkYXRlXTsKKyAgICBbX3RyYWNrQWxwaGFBbmltYXRpb24gaW52YWxpZGF0ZV07Cisg
ICAgW191aVN0YXRlVHJhbnNpdGlvbkFuaW1hdGlvbiBpbnZhbGlkYXRlXTsKKyAgICBbX2V4cGFu
c2lvblRyYW5zaXRpb25BbmltYXRpb24gaW52YWxpZGF0ZV07CiAgICAgRU5EX0JMT0NLX09CSkNf
RVhDRVBUSU9OUzsKIH0KIApAQCAtNjIwLDI1ICs2MjAsMjEgQEAgU2Nyb2xsQW5pbWF0b3JNYWM6
OlNjcm9sbEFuaW1hdG9yTWFjKFNjcm9sbGFibGVBcmVhKiBzY3JvbGxhYmxlQXJlYSkKICAgICBt
X3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlID0gYWRvcHROUyhbW1dlYlNjcm9sbEFuaW1h
dGlvbkhlbHBlckRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFNjcm9sbEFuaW1hdG9yOnRoaXNdKTsK
ICAgICBtX3Njcm9sbEFuaW1hdGlvbkhlbHBlciA9IGFkb3B0TlMoW1tOU0NsYXNzRnJvbVN0cmlu
ZyhAIk5TU2Nyb2xsQW5pbWF0aW9uSGVscGVyIikgYWxsb2NdIGluaXRXaXRoRGVsZWdhdGU6bV9z
Y3JvbGxBbmltYXRpb25IZWxwZXJEZWxlZ2F0ZS5nZXQoKV0pOwogCi0gICAgaWYgKGlzU2Nyb2xs
YmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpKSB7Ci0gICAgICAgIG1fc2Nyb2xsYmFyUGFpbnRlckNv
bnRyb2xsZXJEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJTY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
ckRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFNjcm9sbGFibGVBcmVhOnNjcm9sbGFibGVBcmVhXSk7
Ci0gICAgICAgIG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgPSBbW1tOU0NsYXNzRnJvbVN0
cmluZyhAIk5TU2Nyb2xsZXJJbXBQYWlyIikgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKLSAg
ICAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0RGVsZWdhdGU6bV9z
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlckRlbGVnYXRlLmdldCgpXTsKLSAgICAgICAgW21fc2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0U2Nyb2xsZXJTdHlsZTpyZWNvbW1lbmRl
ZFNjcm9sbGVyU3R5bGUoKV07Ci0gICAgfQorICAgIG1fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXJEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJTY3JvbGxiYXJQYWludGVyQ29udHJvbGxlckRlbGVn
YXRlIGFsbG9jXSBpbml0V2l0aFNjcm9sbGFibGVBcmVhOnNjcm9sbGFibGVBcmVhXSk7CisgICAg
bV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciA9IFtbW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNT
Y3JvbGxlckltcFBhaXIiKSBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgIFttX3Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyIHNldERlbGVnYXRlOm1fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXJEZWxlZ2F0ZS5nZXQoKV07CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIg
c2V0U2Nyb2xsZXJTdHlsZTpyZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKV07CiB9CiAKIFNjcm9s
bEFuaW1hdG9yTWFjOjp+U2Nyb2xsQW5pbWF0b3JNYWMoKQogewotICAgIGlmIChpc1Njcm9sbGJh
ck92ZXJsYXlBUElBdmFpbGFibGUoKSkgewotICAgICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7Ci0gICAgICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUuZ2V0
KCkgaW52YWxpZGF0ZV07Ci0gICAgICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdl
dCgpIHNldERlbGVnYXRlOm5pbF07Ci0gICAgICAgIFttX2hvcml6b250YWxTY3JvbGxiYXJQYWlu
dGVyRGVsZWdhdGUuZ2V0KCkgaW52YWxpZGF0ZV07Ci0gICAgICAgIFttX3ZlcnRpY2FsU2Nyb2xs
YmFyUGFpbnRlckRlbGVnYXRlLmdldCgpIGludmFsaWRhdGVdOwotICAgICAgICBbbV9zY3JvbGxB
bmltYXRpb25IZWxwZXJEZWxlZ2F0ZS5nZXQoKSBpbnZhbGlkYXRlXTsKLSAgICAgICAgRU5EX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKLSAgICB9CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJ
T05TOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyRGVsZWdhdGUgaW52YWxpZGF0
ZV07CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgc2V0RGVsZWdhdGU6bmlsXTsK
KyAgICBbbV9ob3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlIGludmFsaWRhdGVdOwor
ICAgIFttX3ZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlIGludmFsaWRhdGVdOworICAg
IFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlckRlbGVnYXRlIGludmFsaWRhdGVdOworICAgIEVORF9C
TE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKIHN0YXRpYyBib29sIHNjcm9sbEFuaW1hdGlvbkVu
YWJsZWRGb3JTeXN0ZW0oKQpAQCAtNjg3LDE5ICs2ODMsMTkgQEAgYm9vbCBTY3JvbGxBbmltYXRv
ck1hYzo6c2Nyb2xsKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBTY3JvbGxHcmFu
dWxhcmkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTlNQb2ludCBuZXdQb2ludDsKLSAg
ICBpZiAoW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyLmdldCgpIF9pc0FuaW1hdGluZ10pIHsKLSAg
ICAgICAgTlNQb2ludCB0YXJnZXRPcmlnaW4gPSBbbV9zY3JvbGxBbmltYXRpb25IZWxwZXIuZ2V0
KCkgdGFyZ2V0T3JpZ2luXTsKKyAgICBpZiAoW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIF9pc0Fu
aW1hdGluZ10pIHsKKyAgICAgICAgTlNQb2ludCB0YXJnZXRPcmlnaW4gPSBbbV9zY3JvbGxBbmlt
YXRpb25IZWxwZXIgdGFyZ2V0T3JpZ2luXTsKICAgICAgICAgbmV3UG9pbnQgPSBvcmllbnRhdGlv
biA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyID8gTlNNYWtlUG9pbnQobmV3UG9zLCB0YXJnZXRPcmln
aW4ueSkgOiBOU01ha2VQb2ludCh0YXJnZXRPcmlnaW4ueCwgbmV3UG9zKTsKICAgICB9IGVsc2UK
ICAgICAgICAgbmV3UG9pbnQgPSBvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyID8g
TlNNYWtlUG9pbnQobmV3UG9zLCBtX2N1cnJlbnRQb3NZKSA6IE5TTWFrZVBvaW50KG1fY3VycmVu
dFBvc1gsIG5ld1Bvcyk7CiAKLSAgICBbbV9zY3JvbGxBbmltYXRpb25IZWxwZXIuZ2V0KCkgc2Ny
b2xsVG9Qb2ludDpuZXdQb2ludF07CisgICAgW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIHNjcm9s
bFRvUG9pbnQ6bmV3UG9pbnRdOwogICAgIHJldHVybiB0cnVlOwogfQogCiB2b2lkIFNjcm9sbEFu
aW1hdG9yTWFjOjpzY3JvbGxUb09mZnNldFdpdGhvdXRBbmltYXRpb24oY29uc3QgRmxvYXRQb2lu
dCYgb2Zmc2V0KQogewotICAgIFttX3Njcm9sbEFuaW1hdGlvbkhlbHBlci5nZXQoKSBfc3RvcFJ1
bl07CisgICAgW21fc2Nyb2xsQW5pbWF0aW9uSGVscGVyIF9zdG9wUnVuXTsKICAgICBpbW1lZGlh
dGVTY3JvbGxUbyhvZmZzZXQpOwogfQogCkBAIC03NTQsMzIgKzc1MCwzMiBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpjb250ZW50QXJlYVdpbGxQYWludCgpIGNvbnN0CiB7CiAgICAgaWYgKCFz
Y3JvbGxhYmxlQXJlYSgpLT5zY3JvbGxiYXJzQ2FuQmVBY3RpdmUoKSkKICAgICAgICAgcmV0dXJu
OwotICAgIGlmIChpc1Njcm9sbGJhck92ZXJsYXlBUElBdmFpbGFibGUoKSkKLSAgICAgICAgW21f
c2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgY29udGVudEFyZWFXaWxsRHJhd107CisK
KyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBjb250ZW50QXJlYVdpbGxEcmF3XTsK
IH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bW91c2VFbnRlcmVkQ29udGVudEFyZWEoKSBj
b25zdAogewogICAgIGlmICghc2Nyb2xsYWJsZUFyZWEoKS0+c2Nyb2xsYmFyc0NhbkJlQWN0aXZl
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoaXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxh
YmxlKCkpCi0gICAgICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIG1vdXNl
RW50ZXJlZENvbnRlbnRBcmVhXTsKKworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVy
IG1vdXNlRW50ZXJlZENvbnRlbnRBcmVhXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6
bW91c2VFeGl0ZWRDb250ZW50QXJlYSgpIGNvbnN0CiB7CiAgICAgaWYgKCFzY3JvbGxhYmxlQXJl
YSgpLT5zY3JvbGxiYXJzQ2FuQmVBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChp
c1Njcm9sbGJhck92ZXJsYXlBUElBdmFpbGFibGUoKSkKLSAgICAgICAgW21fc2Nyb2xsYmFyUGFp
bnRlckNvbnRyb2xsZXIuZ2V0KCkgbW91c2VFeGl0ZWRDb250ZW50QXJlYV07CisKKyAgICBbbV9z
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBtb3VzZUV4aXRlZENvbnRlbnRBcmVhXTsKIH0KIAog
dm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bW91c2VNb3ZlZEluQ29udGVudEFyZWEoKSBjb25zdAog
ewogICAgIGlmICghc2Nyb2xsYWJsZUFyZWEoKS0+c2Nyb2xsYmFyc0NhbkJlQWN0aXZlKCkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBpZiAoaXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkp
Ci0gICAgICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIG1vdXNlTW92ZWRJ
bkNvbnRlbnRBcmVhXTsKKworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIG1vdXNl
TW92ZWRJbkNvbnRlbnRBcmVhXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bW91c2VF
bnRlcmVkU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKSBjb25zdApAQCAtNzkxLDEyICs3
ODcsMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6bW91c2VFbnRlcmVkU2Nyb2xsYmFyKFNj
cm9sbGJhciogc2Nyb2xsYmFyKSBjb25zdAogICAgIGlmICghc2Nyb2xsYWJsZUFyZWEoKS0+c2Ny
b2xsYmFyc0NhbkJlQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChpc1Njcm9s
bGJhck92ZXJsYXlBUElBdmFpbGFibGUoKSkgewotICAgICAgICBpZiAoIXN1cHBvcnRzVUlTdGF0
ZVRyYW5zaXRpb25Qcm9ncmVzcygpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAo
U2Nyb2xsYmFyUGFpbnRlciBwYWludGVyID0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcihz
Y3JvbGxiYXIpKQotICAgICAgICAgICAgW3BhaW50ZXIgbW91c2VFbnRlcmVkU2Nyb2xsZXJdOwot
ICAgIH0KKyAgICBpZiAoIXN1cHBvcnRzVUlTdGF0ZVRyYW5zaXRpb25Qcm9ncmVzcygpKQorICAg
ICAgICByZXR1cm47CisgICAgaWYgKFNjcm9sbGJhclBhaW50ZXIgcGFpbnRlciA9IHNjcm9sbGJh
clBhaW50ZXJGb3JTY3JvbGxiYXIoc2Nyb2xsYmFyKSkKKyAgICAgICAgW3BhaW50ZXIgbW91c2VF
bnRlcmVkU2Nyb2xsZXJdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjptb3VzZUV4aXRl
ZFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikgY29uc3QKQEAgLTgwOCw5NCArODAyLDg2
IEBAIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om1vdXNlRXhpdGVkU2Nyb2xsYmFyKFNjcm9sbGJh
ciogc2Nyb2xsYmFyKSBjb25zdAogICAgIGlmICghc2Nyb2xsYWJsZUFyZWEoKS0+c2Nyb2xsYmFy
c0NhbkJlQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChpc1Njcm9sbGJhck92
ZXJsYXlBUElBdmFpbGFibGUoKSkgewotICAgICAgICBpZiAoIXN1cHBvcnRzVUlTdGF0ZVRyYW5z
aXRpb25Qcm9ncmVzcygpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICBpZiAoU2Nyb2xs
YmFyUGFpbnRlciBwYWludGVyID0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcihzY3JvbGxi
YXIpKQotICAgICAgICAgICAgW3BhaW50ZXIgbW91c2VFeGl0ZWRTY3JvbGxlcl07Ci0gICAgfQor
ICAgIGlmICghc3VwcG9ydHNVSVN0YXRlVHJhbnNpdGlvblByb2dyZXNzKCkpCisgICAgICAgIHJl
dHVybjsKKyAgICBpZiAoU2Nyb2xsYmFyUGFpbnRlciBwYWludGVyID0gc2Nyb2xsYmFyUGFpbnRl
ckZvclNjcm9sbGJhcihzY3JvbGxiYXIpKQorICAgICAgICBbcGFpbnRlciBtb3VzZUV4aXRlZFNj
cm9sbGVyXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6d2lsbFN0YXJ0TGl2ZVJlc2l6
ZSgpCiB7CiAgICAgaWYgKCFzY3JvbGxhYmxlQXJlYSgpLT5zY3JvbGxiYXJzQ2FuQmVBY3RpdmUo
KSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChpc1Njcm9sbGJhck92ZXJsYXlBUElBdmFpbGFi
bGUoKSkKLSAgICAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc3RhcnRM
aXZlUmVzaXplXTsKKworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIHN0YXJ0TGl2
ZVJlc2l6ZV07CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmNvbnRlbnRzUmVzaXplZCgp
IGNvbnN0CiB7CiAgICAgaWYgKCFzY3JvbGxhYmxlQXJlYSgpLT5zY3JvbGxiYXJzQ2FuQmVBY3Rp
dmUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChpc1Njcm9sbGJhck92ZXJsYXlBUElBdmFp
bGFibGUoKSkKLSAgICAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgY29u
dGVudEFyZWFEaWRSZXNpemVdOworCisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIg
Y29udGVudEFyZWFEaWRSZXNpemVdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp3aWxs
RW5kTGl2ZVJlc2l6ZSgpCiB7CiAgICAgaWYgKCFzY3JvbGxhYmxlQXJlYSgpLT5zY3JvbGxiYXJz
Q2FuQmVBY3RpdmUoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmIChpc1Njcm9sbGJhck92ZXJs
YXlBUElBdmFpbGFibGUoKSkKLSAgICAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIu
Z2V0KCkgZW5kTGl2ZVJlc2l6ZV07CisKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
ciBlbmRMaXZlUmVzaXplXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y29udGVudEFy
ZWFEaWRTaG93KCkgY29uc3QKIHsKICAgICBpZiAoIXNjcm9sbGFibGVBcmVhKCktPnNjcm9sbGJh
cnNDYW5CZUFjdGl2ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKGlzU2Nyb2xsYmFyT3Zl
cmxheUFQSUF2YWlsYWJsZSgpKQotICAgICAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
ci5nZXQoKSB3aW5kb3dPcmRlcmVkSW5dOworCisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXIgd2luZG93T3JkZXJlZEluXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y29u
dGVudEFyZWFEaWRIaWRlKCkgY29uc3QKIHsKICAgICBpZiAoIXNjcm9sbGFibGVBcmVhKCktPnNj
cm9sbGJhcnNDYW5CZUFjdGl2ZSgpKQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKGlzU2Nyb2xs
YmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpKQotICAgICAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29u
dHJvbGxlci5nZXQoKSB3aW5kb3dPcmRlcmVkT3V0XTsKKworICAgIFttX3Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyIHdpbmRvd09yZGVyZWRPdXRdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9y
TWFjOjpkaWRCZWdpblNjcm9sbEdlc3R1cmUoKSBjb25zdAogewogICAgIGlmICghc2Nyb2xsYWJs
ZUFyZWEoKS0+c2Nyb2xsYmFyc0NhbkJlQWN0aXZlKCkpCiAgICAgICAgIHJldHVybjsKLSAgICBp
ZiAoaXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkpCi0gICAgICAgIFttX3Njcm9sbGJh
clBhaW50ZXJDb250cm9sbGVyLmdldCgpIGJlZ2luU2Nyb2xsR2VzdHVyZV07CisKKyAgICBbbV9z
Y3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBiZWdpblNjcm9sbEdlc3R1cmVdOwogfQogCiB2b2lk
IFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRFbmRTY3JvbGxHZXN0dXJlKCkgY29uc3QKIHsKICAgICBp
ZiAoIXNjcm9sbGFibGVBcmVhKCktPnNjcm9sbGJhcnNDYW5CZUFjdGl2ZSgpKQogICAgICAgICBy
ZXR1cm47Ci0gICAgaWYgKGlzU2Nyb2xsYmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpKQotICAgICAg
ICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBlbmRTY3JvbGxHZXN0dXJlXTsK
KworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIGVuZFNjcm9sbEdlc3R1cmVdOwog
fQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjptYXlCZWdpblNjcm9sbEdlc3R1cmUoKSBjb25z
dAogewogICAgIGlmICghc2Nyb2xsYWJsZUFyZWEoKS0+c2Nyb2xsYmFyc0NhbkJlQWN0aXZlKCkp
CiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIWlzU2Nyb2xsYmFyT3ZlcmxheUFQSUF2YWlsYWJs
ZSgpKQotICAgICAgICByZXR1cm47CiAKLSAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxl
ci5nZXQoKSBiZWdpblNjcm9sbEdlc3R1cmVdOwotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250
cm9sbGVyLmdldCgpIGNvbnRlbnRBcmVhU2Nyb2xsZWRdOworICAgIFttX3Njcm9sbGJhclBhaW50
ZXJDb250cm9sbGVyIGJlZ2luU2Nyb2xsR2VzdHVyZV07CisgICAgW21fc2Nyb2xsYmFyUGFpbnRl
ckNvbnRyb2xsZXIgY29udGVudEFyZWFTY3JvbGxlZF07CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNYWM6OmZpbmlzaEN1cnJlbnRTY3JvbGxBbmltYXRpb25zKCkKIHsKICAgICBjYW5jZWxBbmlt
YXRpb25zKCk7CiAKLSAgICBpZiAoaXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkpCi0g
ICAgICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIGhpZGVPdmVybGF5U2Ny
b2xsZXJzXTsKKyAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBoaWRlT3ZlcmxheVNj
cm9sbGVyc107CiB9CiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEFkZFZlcnRpY2FsU2Ny
b2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewotICAgIGlmICghaXNTY3JvbGxiYXJPdmVy
bGF5QVBJQXZhaWxhYmxlKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIFNjcm9sbGJhclBhaW50
ZXIgcGFpbnRlciA9IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIoc2Nyb2xsYmFyKTsKICAg
ICBpZiAoIXBhaW50ZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTkwNCwzMyArODkwLDI3IEBAIHZv
aWQgU2Nyb2xsQW5pbWF0b3JNYWM6OmRpZEFkZFZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciog
c2Nyb2xsYmFyKQogICAgIG1fdmVydGljYWxTY3JvbGxiYXJQYWludGVyRGVsZWdhdGUgPSBhZG9w
dE5TKFtbV2ViU2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aFNjcm9sbGJh
cjpzY3JvbGxiYXJdKTsKIAogICAgIFtwYWludGVyIHNldERlbGVnYXRlOm1fdmVydGljYWxTY3Jv
bGxiYXJQYWludGVyRGVsZWdhdGUuZ2V0KCldOwotICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250
cm9sbGVyLmdldCgpIHNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6cGFpbnRlcl07CisgICAgW21fc2Ny
b2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgc2V0VmVydGljYWxTY3JvbGxlckltcDpwYWludGVyXTsK
ICAgICBpZiAoc2Nyb2xsYWJsZUFyZWEoKS0+aW5MaXZlUmVzaXplKCkpCiAgICAgICAgIFtwYWlu
dGVyIHNldEtub2JBbHBoYToxXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6d2lsbFJl
bW92ZVZlcnRpY2FsU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogewotICAgIGlmICgh
aXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkpCi0gICAgICAgIHJldHVybjsKLQogICAg
IFNjcm9sbGJhclBhaW50ZXIgcGFpbnRlciA9IHNjcm9sbGJhclBhaW50ZXJGb3JTY3JvbGxiYXIo
c2Nyb2xsYmFyKTsKICAgICBpZiAoIXBhaW50ZXIpCiAgICAgICAgIHJldHVybjsKIAogICAgIEFT
U0VSVChtX3ZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlKTsKLSAgICBbbV92ZXJ0aWNh
bFNjcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZS5nZXQoKSBpbnZhbGlkYXRlXTsKKyAgICBbbV92ZXJ0
aWNhbFNjcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZSBpbnZhbGlkYXRlXTsKICAgICBtX3ZlcnRpY2Fs
U2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlID0gbnVsbHB0cjsKIAogICAgIFtwYWludGVyIHNldERl
bGVnYXRlOm5pbF07Ci0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0
VmVydGljYWxTY3JvbGxlckltcDpuaWxdOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyIHNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6bmlsXTsKIH0KIAogdm9pZCBTY3JvbGxBbmltYXRv
ck1hYzo6ZGlkQWRkSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqIHNjcm9sbGJhcikKIHsK
LSAgICBpZiAoIWlzU2Nyb2xsYmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpKQotICAgICAgICByZXR1
cm47Ci0KICAgICBTY3JvbGxiYXJQYWludGVyIHBhaW50ZXIgPSBzY3JvbGxiYXJQYWludGVyRm9y
U2Nyb2xsYmFyKHNjcm9sbGJhcik7CiAgICAgaWYgKCFwYWludGVyKQogICAgICAgICByZXR1cm47
CkBAIC05MzksMjYgKzkxOSwyMyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpkaWRBZGRIb3Jp
em9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciogc2Nyb2xsYmFyKQogICAgIG1faG9yaXpvbnRhbFNj
cm9sbGJhclBhaW50ZXJEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tXZWJTY3JvbGxiYXJQYWludGVyRGVs
ZWdhdGUgYWxsb2NdIGluaXRXaXRoU2Nyb2xsYmFyOnNjcm9sbGJhcl0pOwogCiAgICAgW3BhaW50
ZXIgc2V0RGVsZWdhdGU6bV9ob3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlLmdldCgp
XTsKLSAgICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzZXRIb3Jpem9udGFs
U2Nyb2xsZXJJbXA6cGFpbnRlcl07CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIg
c2V0SG9yaXpvbnRhbFNjcm9sbGVySW1wOnBhaW50ZXJdOwogICAgIGlmIChzY3JvbGxhYmxlQXJl
YSgpLT5pbkxpdmVSZXNpemUoKSkKICAgICAgICAgW3BhaW50ZXIgc2V0S25vYkFscGhhOjFdOwog
fQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJh
cihTY3JvbGxiYXIqIHNjcm9sbGJhcikKIHsKLSAgICBpZiAoIWlzU2Nyb2xsYmFyT3ZlcmxheUFQ
SUF2YWlsYWJsZSgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBTY3JvbGxiYXJQYWludGVyIHBh
aW50ZXIgPSBzY3JvbGxiYXJQYWludGVyRm9yU2Nyb2xsYmFyKHNjcm9sbGJhcik7CiAgICAgaWYg
KCFwYWludGVyKQogICAgICAgICByZXR1cm47CiAKICAgICBBU1NFUlQobV9ob3Jpem9udGFsU2Ny
b2xsYmFyUGFpbnRlckRlbGVnYXRlKTsKLSAgICBbbV9ob3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRl
ckRlbGVnYXRlLmdldCgpIGludmFsaWRhdGVdOworICAgIFttX2hvcml6b250YWxTY3JvbGxiYXJQ
YWludGVyRGVsZWdhdGUgaW52YWxpZGF0ZV07CiAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyUGFp
bnRlckRlbGVnYXRlID0gbnVsbHB0cjsKIAogICAgIFtwYWludGVyIHNldERlbGVnYXRlOm5pbF07
Ci0gICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2V0SG9yaXpvbnRhbFNj
cm9sbGVySW1wOm5pbF07CisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgc2V0SG9y
aXpvbnRhbFNjcm9sbGVySW1wOm5pbF07CiB9CiAKIGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNo
b3VsZFNjcm9sbGJhclBhcnRpY2lwYXRlSW5IaXRUZXN0aW5nKFNjcm9sbGJhciogc2Nyb2xsYmFy
KQpAQCAtOTY3LDkgKzk0NCw2IEBAIGJvb2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZFNjcm9s
bGJhclBhcnRpY2lwYXRlSW5IaXRUZXN0aW5nKFNjcm9sbGJhciogc2Nyb2xsCiAgICAgaWYgKHJl
Y29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpICE9IE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXkpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKCFpc1Njcm9sbGJhck92ZXJsYXlBUElBdmFpbGFi
bGUoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KICAgICBpZiAoc2Nyb2xsYmFyLT5pc0FscGhh
TG9ja2VkKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCkBAIC05ODIsMTAgKzk1Niw3IEBAIGJv
b2wgU2Nyb2xsQW5pbWF0b3JNYWM6OnNob3VsZFNjcm9sbGJhclBhcnRpY2lwYXRlSW5IaXRUZXN0
aW5nKFNjcm9sbGJhciogc2Nyb2xsCiAKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeUNv
bnRlbnRBcmVhU2Nyb2xsZWQoY29uc3QgRmxvYXRTaXplJiBkZWx0YSkKIHsKLSAgICBpZiAoIWlz
U2Nyb2xsYmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICAv
LyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCB3aGVuIGEgcGFnZSBpcyBnb2luZyBpbnRvIHRoZSBw
YWdlIGNhY2hlLCBidXQgdGhlIHBhZ2UgCisgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQg
d2hlbiBhIHBhZ2UgaXMgZ29pbmcgaW50byB0aGUgcGFnZSBjYWNoZSwgYnV0IHRoZSBwYWdlCiAg
ICAgLy8gaXNuJ3QgcmVhbGx5IHNjcm9sbGluZyBpbiB0aGF0IGNhc2UuIFdlIHNob3VsZCBvbmx5
IHBhc3MgdGhlIG1lc3NhZ2Ugb24gdG8gdGhlCiAgICAgLy8gU2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXIgd2hlbiB3ZSdyZSByZWFsbHkgc2Nyb2xsaW5nIG9uIGFuIGFjdGl2ZSBwYWdlLgogICAg
IGlmICghc2Nyb2xsYWJsZUFyZWEoKS0+c2Nyb2xsYmFyc0NhbkJlQWN0aXZlKCkpCkBAIC0xMDAx
LDEyICs5NzIsMTAgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2VsQW5pbWF0aW9ucygp
CiB7CiAgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gZmFsc2U7CiAKLSAgICBpZiAo
aXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkpIHsKLSAgICAgICAgaWYgKHNjcm9sbGJh
clBhaW50VGltZXJJc0FjdGl2ZSgpKQotICAgICAgICAgICAgc3RvcFNjcm9sbGJhclBhaW50VGlt
ZXIoKTsKLSAgICAgICAgW21faG9yaXpvbnRhbFNjcm9sbGJhclBhaW50ZXJEZWxlZ2F0ZS5nZXQo
KSBjYW5jZWxBbmltYXRpb25zXTsKLSAgICAgICAgW21fdmVydGljYWxTY3JvbGxiYXJQYWludGVy
RGVsZWdhdGUuZ2V0KCkgY2FuY2VsQW5pbWF0aW9uc107Ci0gICAgfQorICAgIGlmIChzY3JvbGxi
YXJQYWludFRpbWVySXNBY3RpdmUoKSkKKyAgICAgICAgc3RvcFNjcm9sbGJhclBhaW50VGltZXIo
KTsKKyAgICBbbV9ob3Jpem9udGFsU2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlIGNhbmNlbEFuaW1h
dGlvbnNdOworICAgIFttX3ZlcnRpY2FsU2Nyb2xsYmFyUGFpbnRlckRlbGVnYXRlIGNhbmNlbEFu
aW1hdGlvbnNdOwogfQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpoYW5kbGVXaGVlbEV2ZW50
UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UgcGhhc2UpCkBAIC0xMTg3LDkgKzExNTYsNiBA
QCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjpzbmFwUnViYmVyQmFuZFRpbWVyRmlyZWQoVGltZXI8
U2Nyb2xsQW5pbWF0b3JNYWM+KikKIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c2V0SXNBY3Rp
dmUoKQogewotICAgIGlmICghaXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkpCi0gICAg
ICAgIHJldHVybjsKLQogICAgIGlmICghbV9uZWVkc1Njcm9sbGVyU3R5bGVVcGRhdGUpCiAgICAg
ICAgIHJldHVybjsKIApAQCAtMTE5OCw5ICsxMTY0LDYgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1h
Yzo6c2V0SXNBY3RpdmUoKQogCiB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxl
clN0eWxlKCkKIHsKLSAgICBpZiAoIWlzU2Nyb2xsYmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpKQot
ICAgICAgICByZXR1cm47Ci0KICAgICBpZiAoIXNjcm9sbGFibGVBcmVhKCktPnNjcm9sbGJhcnND
YW5CZUFjdGl2ZSgpKSB7CiAgICAgICAgIG1fbmVlZHNTY3JvbGxlclN0eWxlVXBkYXRlID0gdHJ1
ZTsKICAgICAgICAgcmV0dXJuOwpAQCAtMTIxNCwxNyArMTE3NywxNyBAQCB2b2lkIFNjcm9sbEFu
aW1hdG9yTWFjOjp1cGRhdGVTY3JvbGxlclN0eWxlKCkKICAgICAKICAgICBtYWNUaGVtZS0+dXNl
c092ZXJsYXlTY3JvbGxiYXJzQ2hhbmdlZCgpOwogCi0gICAgTlNTY3JvbGxlclN0eWxlIG5ld1N0
eWxlID0gW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIuZ2V0KCkgc2Nyb2xsZXJTdHlsZV07
CisgICAgTlNTY3JvbGxlclN0eWxlIG5ld1N0eWxlID0gW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRy
b2xsZXIgc2Nyb2xsZXJTdHlsZV07CiAKICAgICBpZiAoU2Nyb2xsYmFyKiB2ZXJ0aWNhbFNjcm9s
bGJhciA9IHNjcm9sbGFibGVBcmVhKCktPnZlcnRpY2FsU2Nyb2xsYmFyKCkpIHsKICAgICAgICAg
dmVydGljYWxTY3JvbGxiYXItPmludmFsaWRhdGUoKTsKIAotICAgICAgICBTY3JvbGxiYXJQYWlu
dGVyIG9sZFZlcnRpY2FsUGFpbnRlciA9IFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdl
dCgpIHZlcnRpY2FsU2Nyb2xsZXJJbXBdOworICAgICAgICBTY3JvbGxiYXJQYWludGVyIG9sZFZl
cnRpY2FsUGFpbnRlciA9IFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIHZlcnRpY2FsU2Ny
b2xsZXJJbXBdOwogICAgICAgICBTY3JvbGxiYXJQYWludGVyIG5ld1ZlcnRpY2FsUGFpbnRlciA9
IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAiKSBzY3JvbGxlckltcFdpdGhTdHls
ZTpuZXdTdHlsZSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xTaXplOihOU0Nv
bnRyb2xTaXplKXZlcnRpY2FsU2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgpIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgaG9yaXpvbnRhbDpOTyAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHJlcGxhY2luZ1Njcm9sbGVySW1wOm9sZFZlcnRpY2FsUGFpbnRlcl07Ci0gICAgICAgIFttX3Nj
cm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIHNldFZlcnRpY2FsU2Nyb2xsZXJJbXA6bmV3
VmVydGljYWxQYWludGVyXTsKKyAgICAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIg
c2V0VmVydGljYWxTY3JvbGxlckltcDpuZXdWZXJ0aWNhbFBhaW50ZXJdOwogICAgICAgICBtYWNU
aGVtZS0+c2V0TmV3UGFpbnRlckZvclNjcm9sbGJhcih2ZXJ0aWNhbFNjcm9sbGJhciwgbmV3VmVy
dGljYWxQYWludGVyKTsKIAogICAgICAgICAvLyBUaGUgZGlmZmVyZW50IHNjcm9sbGJhciBzdHls
ZXMgaGF2ZSBkaWZmZXJlbnQgdGhpY2tuZXNzZXMsIHNvIHdlIG11c3QgcmUtc2V0IHRoZSAKQEAg
LTEyMzcsMTIgKzEyMDAsMTIgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6dXBkYXRlU2Nyb2xs
ZXJTdHlsZSgpCiAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRhbFNjcm9sbGJhciA9IHNjcm9s
bGFibGVBcmVhKCktPmhvcml6b250YWxTY3JvbGxiYXIoKSkgewogICAgICAgICBob3Jpem9udGFs
U2Nyb2xsYmFyLT5pbnZhbGlkYXRlKCk7CiAKLSAgICAgICAgU2Nyb2xsYmFyUGFpbnRlciBvbGRI
b3Jpem9udGFsUGFpbnRlciA9IFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIGhv
cml6b250YWxTY3JvbGxlckltcF07CisgICAgICAgIFNjcm9sbGJhclBhaW50ZXIgb2xkSG9yaXpv
bnRhbFBhaW50ZXIgPSBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBob3Jpem9udGFsU2Ny
b2xsZXJJbXBdOwogICAgICAgICBTY3JvbGxiYXJQYWludGVyIG5ld0hvcml6b250YWxQYWludGVy
ID0gW05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIHNjcm9sbGVySW1wV2l0aFN0
eWxlOm5ld1N0eWxlIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFNpemU6KE5T
Q29udHJvbFNpemUpaG9yaXpvbnRhbFNjcm9sbGJhci0+Y29udHJvbFNpemUoKSAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGhvcml6b250YWw6WUVTIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmVwbGFjaW5nU2Nyb2xsZXJJbXA6b2xkSG9yaXpvbnRhbFBhaW50ZXJdOwotICAgICAg
ICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlci5nZXQoKSBzZXRIb3Jpem9udGFsU2Nyb2xs
ZXJJbXA6bmV3SG9yaXpvbnRhbFBhaW50ZXJdOworICAgICAgICBbbV9zY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlciBzZXRIb3Jpem9udGFsU2Nyb2xsZXJJbXA6bmV3SG9yaXpvbnRhbFBhaW50ZXJd
OwogICAgICAgICBtYWNUaGVtZS0+c2V0TmV3UGFpbnRlckZvclNjcm9sbGJhcihob3Jpem9udGFs
U2Nyb2xsYmFyLCBuZXdIb3Jpem9udGFsUGFpbnRlcik7CiAKICAgICAgICAgLy8gVGhlIGRpZmZl
cmVudCBzY3JvbGxiYXIgc3R5bGVzIGhhdmUgZGlmZmVyZW50IHRoaWNrbmVzc2VzLCBzbyB3ZSBt
dXN0IHJlLXNldCB0aGUgCkBAIC0xMjc2LDEyICsxMjM5LDEwIEBAIHZvaWQgU2Nyb2xsQW5pbWF0
b3JNYWM6OnN0b3BTY3JvbGxiYXJQYWludFRpbWVyKCkKIAogdm9pZCBTY3JvbGxBbmltYXRvck1h
Yzo6aW5pdGlhbFNjcm9sbGJhclBhaW50VGltZXJGaXJlZChUaW1lcjxTY3JvbGxBbmltYXRvck1h
Yz4qKQogewotICAgIGlmIChpc1Njcm9sbGJhck92ZXJsYXlBUElBdmFpbGFibGUoKSkgewotICAg
ICAgICAvLyBUbyBmb3JjZSB0aGUgc2Nyb2xsYmFycyB0byBmbGFzaCwgd2UgaGF2ZSB0byBjYWxs
IGhpZGUgZmlyc3QuIE90aGVyd2lzZSwgdGhlIFNjcm9sbGJhclBhaW50ZXJDb250cm9sbGVyCi0g
ICAgICAgIC8vIG1pZ2h0IHRoaW5rIHRoYXQgdGhlIHNjcm9sbGJhcnMgYXJlIGFscmVhZHkgc2hv
d2luZyBhbmQgYmFpbCBlYXJseS4KLSAgICAgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xs
ZXIuZ2V0KCkgaGlkZU92ZXJsYXlTY3JvbGxlcnNdOwotICAgICAgICBbbV9zY3JvbGxiYXJQYWlu
dGVyQ29udHJvbGxlci5nZXQoKSBmbGFzaFNjcm9sbGVyc107Ci0gICAgfQorICAgIC8vIFRvIGZv
cmNlIHRoZSBzY3JvbGxiYXJzIHRvIGZsYXNoLCB3ZSBoYXZlIHRvIGNhbGwgaGlkZSBmaXJzdC4g
T3RoZXJ3aXNlLCB0aGUgU2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIKKyAgICAvLyBtaWdodCB0
aGluayB0aGF0IHRoZSBzY3JvbGxiYXJzIGFyZSBhbHJlYWR5IHNob3dpbmcgYW5kIGJhaWwgZWFy
bHkuCisgICAgW21fc2Nyb2xsYmFyUGFpbnRlckNvbnRyb2xsZXIgaGlkZU92ZXJsYXlTY3JvbGxl
cnNdOworICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9sbGVyIGZsYXNoU2Nyb2xsZXJzXTsK
IH0KIAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRTb29u
KGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCkBAIC0xMjk1LDkgKzEyNTYsOSBAQCB2b2lkIFNjcm9s
bEFuaW1hdG9yTWFjOjpzZW5kQ29udGVudEFyZWFTY3JvbGxlZFNvb24oY29uc3QgRmxvYXRTaXpl
JiBkZWx0YSkKIHZvaWQgU2Nyb2xsQW5pbWF0b3JNYWM6OnNlbmRDb250ZW50QXJlYVNjcm9sbGVk
KGNvbnN0IEZsb2F0U2l6ZSYgZGVsdGEpCiB7CiAgICAgaWYgKHN1cHBvcnRzQ29udGVudEFyZWFT
Y3JvbGxlZEluRGlyZWN0aW9uKCkpCi0gICAgICAgIFttX3Njcm9sbGJhclBhaW50ZXJDb250cm9s
bGVyLmdldCgpIGNvbnRlbnRBcmVhU2Nyb2xsZWRJbkRpcmVjdGlvbjpOU01ha2VQb2ludChkZWx0
YS53aWR0aCgpLCBkZWx0YS5oZWlnaHQoKSldOworICAgICAgICBbbV9zY3JvbGxiYXJQYWludGVy
Q29udHJvbGxlciBjb250ZW50QXJlYVNjcm9sbGVkSW5EaXJlY3Rpb246TlNNYWtlUG9pbnQoZGVs
dGEud2lkdGgoKSwgZGVsdGEuaGVpZ2h0KCkpXTsKICAgICBlbHNlCi0gICAgICAgIFttX3Njcm9s
bGJhclBhaW50ZXJDb250cm9sbGVyLmdldCgpIGNvbnRlbnRBcmVhU2Nyb2xsZWRdOworICAgICAg
ICBbbV9zY3JvbGxiYXJQYWludGVyQ29udHJvbGxlciBjb250ZW50QXJlYVNjcm9sbGVkXTsKIH0K
IAogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6c2VuZENvbnRlbnRBcmVhU2Nyb2xsZWRUaW1lckZp
cmVkKFRpbWVyPFNjcm9sbEFuaW1hdG9yTWFjPiopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxWaWV3TWFjLm1tCmluZGV4IGFhZmZjZjhhOWRhYjRkODRkMzkxZTkwNjA4MDBl
ODU1MWJhZWVmM2UuLmQwMTdkZjVkN2JlZDBjYmRjMWY2YjEyZGQ5NDc4YzdmM2ZlN2UxYWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCkBAIC0yMDUs
NyArMjA1LDYgQEAgYm9vbCBTY3JvbGxWaWV3OjpwbGF0Zm9ybUlzT2Zmc2NyZWVuKCkgY29uc3QK
ICAgICByZXR1cm4gIVtwbGF0Zm9ybVdpZGdldCgpIHdpbmRvd10gfHwgIVtbcGxhdGZvcm1XaWRn
ZXQoKSB3aW5kb3ddIGlzVmlzaWJsZV07CiB9CiAKLSNpZiBVU0UoU0NST0xMQkFSX1BBSU5URVIp
CiBzdGF0aWMgaW5saW5lIE5TU2Nyb2xsZXJLbm9iU3R5bGUgdG9OU1Njcm9sbGVyS25vYlN0eWxl
KFNjcm9sbGJhck92ZXJsYXlTdHlsZSBzdHlsZSkKIHsKICAgICBzd2l0Y2ggKHN0eWxlKSB7CkBA
IC0yMTcsMTUgKzIxNiwxMCBAQCBzdGF0aWMgaW5saW5lIE5TU2Nyb2xsZXJLbm9iU3R5bGUgdG9O
U1Njcm9sbGVyS25vYlN0eWxlKFNjcm9sbGJhck92ZXJsYXlTdHlsZSBzdAogICAgICAgICByZXR1
cm4gTlNTY3JvbGxlcktub2JTdHlsZURlZmF1bHQ7CiAgICAgfQogfQotI2VuZGlmCiAKIHZvaWQg
U2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxiYXJPdmVybGF5U3R5bGUoU2Nyb2xsYmFyT3Zl
cmxheVN0eWxlIG92ZXJsYXlTdHlsZSkKIHsKLSNpZiBVU0UoU0NST0xMQkFSX1BBSU5URVIpCiAg
ICAgW3Njcm9sbFZpZXcoKSBzZXRTY3JvbGxlcktub2JTdHlsZTp0b05TU2Nyb2xsZXJLbm9iU3R5
bGUob3ZlcmxheVN0eWxlKV07Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShvdmVybGF5U3R5bGUp
OwotI2VuZGlmCiB9CiAKIHZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1TZXRTY3JvbGxPcmlnaW4o
Y29uc3QgSW50UG9pbnQmIG9yaWdpbiwgYm9vbCB1cGRhdGVQb3NpdGlvbkF0QWxsLCBib29sIHVw
ZGF0ZVBvc2l0aW9uU3luY2hyb25vdXNseSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TY3JvbGxiYXJUaGVtZU1hYy5tbQppbmRleCAzYjVmMWU1ODgwMTkwZjIxZTI3NzE5MTY4
NzY4ZWU0NjUzNDViMjY1Li42N2QzMmU0ODJmZmNjMTNjZjkwMmY1ZWE4M2NlOGI4ZmQyYmIwYmZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFj
Lm1tCkBAIC01MSw3ICs1MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXR5cGVkZWYgSGFzaE1hcDxTY3JvbGxiYXJUaGVtZUNsaWVudCosIFJl
dGFpblB0cjxTY3JvbGxiYXJQYWludGVyPiA+IFNjcm9sbGJhclBhaW50ZXJNYXA7Cit0eXBlZGVm
IEhhc2hNYXA8U2Nyb2xsYmFyVGhlbWVDbGllbnQqLCBSZXRhaW5QdHI8U2Nyb2xsYmFyUGFpbnRl
cj4+IFNjcm9sbGJhclBhaW50ZXJNYXA7CiAKIHN0YXRpYyBTY3JvbGxiYXJQYWludGVyTWFwKiBz
Y3JvbGxiYXJNYXAoKQogewpAQCAtMTIzLDkgKzEyMyw2IEBAIHN0YXRpYyBpbnQgY1JlYWxCdXR0
b25MZW5ndGhbXSA9IHsgMjgsIDIxIH07CiBzdGF0aWMgaW50IGNCdXR0b25IaXRJbnNldFtdID0g
eyAzLCAyIH07CiAvLyBjUmVhbEJ1dHRvbkxlbmd0aCAtIGNCdXR0b25JbnNldAogc3RhdGljIGlu
dCBjQnV0dG9uTGVuZ3RoW10gPSB7IDE0LCAxMCB9Owotc3RhdGljIGludCBjU2Nyb2xsYmFyVGhp
Y2tuZXNzW10gPSB7IDE1LCAxMSB9Owotc3RhdGljIGludCBjQnV0dG9uSW5zZXRbXSA9IHsgMTQs
IDExIH07Ci1zdGF0aWMgaW50IGNUaHVtYk1pbkxlbmd0aFtdID0geyAyNiwgMjAgfTsKIAogc3Rh
dGljIGludCBjT3V0ZXJCdXR0b25MZW5ndGhbXSA9IHsgMTYsIDE0IH07IC8vIFRoZSBvdXRlciBi
dXR0b24gaW4gYSBkb3VibGUgYnV0dG9uIHBhaXIgaXMgYSBiaXQgYmlnZ2VyLgogc3RhdGljIGlu
dCBjT3V0ZXJCdXR0b25PdmVybGFwID0gMjsKQEAgLTE0Niw5ICsxNDMsNiBAQCBzdGF0aWMgYm9v
bCBzdXBwb3J0c0V4cGFuZGVkU2Nyb2xsYmFycygpCiAKIHN0YXRpYyB2b2lkIHVwZGF0ZUFycm93
UGxhY2VtZW50KCkKIHsKLSAgICBpZiAoaXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkp
Ci0gICAgICAgIHJldHVybjsKLQogICAgIE5TU3RyaW5nICpidXR0b25QbGFjZW1lbnQgPSBbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6QCJBcHBsZVNj
cm9sbEJhclZhcmlhbnQiXTsKICAgICBpZiAoW2J1dHRvblBsYWNlbWVudCBpc0VxdWFsVG9TdHJp
bmc6QCJTaW5nbGUiXSkKICAgICAgICAgZ0J1dHRvblBsYWNlbWVudCA9IFNjcm9sbGJhckJ1dHRv
bnNTaW5nbGU7CkBAIC0xNjQsMTUgKzE1OCwxMSBAQCBzdGF0aWMgdm9pZCB1cGRhdGVBcnJvd1Bs
YWNlbWVudCgpCiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnJlZ2lzdGVyU2Nyb2xsYmFyKFNj
cm9sbGJhclRoZW1lQ2xpZW50KiBzY3JvbGxiYXIpCiB7Ci0gICAgaWYgKGlzU2Nyb2xsYmFyT3Zl
cmxheUFQSUF2YWlsYWJsZSgpKSB7Ci0gICAgICAgIGJvb2wgaXNIb3Jpem9udGFsID0gc2Nyb2xs
YmFyLT5vcmllbnRhdGlvbigpID09IEhvcml6b250YWxTY3JvbGxiYXI7Ci0gICAgICAgIFNjcm9s
bGJhclBhaW50ZXIgc2Nyb2xsYmFyUGFpbnRlciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Ny
b2xsZXJJbXAiKSBzY3JvbGxlckltcFdpdGhTdHlsZTpyZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUo
KSBjb250cm9sU2l6ZTooTlNDb250cm9sU2l6ZSlzY3JvbGxiYXItPmNvbnRyb2xTaXplKCkgaG9y
aXpvbnRhbDppc0hvcml6b250YWwgcmVwbGFjaW5nU2Nyb2xsZXJJbXA6bmlsXTsKLSAgICAgICAg
c2Nyb2xsYmFyTWFwKCktPmFkZChzY3JvbGxiYXIsIHNjcm9sbGJhclBhaW50ZXIpOwotICAgICAg
ICB1cGRhdGVFbmFibGVkU3RhdGUoc2Nyb2xsYmFyKTsKLSAgICAgICAgdXBkYXRlU2Nyb2xsYmFy
T3ZlcmxheVN0eWxlKHNjcm9sbGJhcik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc2Nyb2xsYmFy
TWFwKCktPmFkZChzY3JvbGxiYXIsIG51bGxwdHIpOwotICAgIH0KKyAgICBib29sIGlzSG9yaXpv
bnRhbCA9IHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyOwor
ICAgIFNjcm9sbGJhclBhaW50ZXIgc2Nyb2xsYmFyUGFpbnRlciA9IFtOU0NsYXNzRnJvbVN0cmlu
ZyhAIk5TU2Nyb2xsZXJJbXAiKSBzY3JvbGxlckltcFdpdGhTdHlsZTpyZWNvbW1lbmRlZFNjcm9s
bGVyU3R5bGUoKSBjb250cm9sU2l6ZTooTlNDb250cm9sU2l6ZSlzY3JvbGxiYXItPmNvbnRyb2xT
aXplKCkgaG9yaXpvbnRhbDppc0hvcml6b250YWwgcmVwbGFjaW5nU2Nyb2xsZXJJbXA6bmlsXTsK
KyAgICBzY3JvbGxiYXJNYXAoKS0+YWRkKHNjcm9sbGJhciwgc2Nyb2xsYmFyUGFpbnRlcik7Cisg
ICAgdXBkYXRlRW5hYmxlZFN0YXRlKHNjcm9sbGJhcik7CisgICAgdXBkYXRlU2Nyb2xsYmFyT3Zl
cmxheVN0eWxlKHNjcm9sbGJhcik7CiB9CiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnVucmVn
aXN0ZXJTY3JvbGxiYXIoU2Nyb2xsYmFyVGhlbWVDbGllbnQqIHNjcm9sbGJhcikKQEAgLTIwOSw3
ICsxOTksNyBAQCBTY3JvbGxiYXJUaGVtZU1hYzo6U2Nyb2xsYmFyVGhlbWVNYWMoKQogICAgIHN0
YXRpYyBib29sIGluaXRpYWxpemVkOwogICAgIGlmICghaW5pdGlhbGl6ZWQpIHsKICAgICAgICAg
aW5pdGlhbGl6ZWQgPSB0cnVlOwotICAgICAgICBnQnV0dG9uUGxhY2VtZW50ID0gaXNTY3JvbGxi
YXJPdmVybGF5QVBJQXZhaWxhYmxlKCkgPyBTY3JvbGxiYXJCdXR0b25zTm9uZSA6IFNjcm9sbGJh
ckJ1dHRvbnNEb3VibGVFbmQ7CisgICAgICAgIGdCdXR0b25QbGFjZW1lbnQgPSBTY3JvbGxiYXJC
dXR0b25zTm9uZTsKICAgICAgICAgW1dlYlNjcm9sbGJhclByZWZzT2JzZXJ2ZXIgcmVnaXN0ZXJB
c09ic2VydmVyXTsKICAgICAgICAgcHJlZmVyZW5jZXNDaGFuZ2VkKCk7CiAgICAgfQpAQCAtMjMy
LDEzICsyMjIsMTAgQEAgdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6cHJlZmVyZW5jZXNDaGFuZ2Vk
KCkKIAogaW50IFNjcm9sbGJhclRoZW1lTWFjOjpzY3JvbGxiYXJUaGlja25lc3MoU2Nyb2xsYmFy
Q29udHJvbFNpemUgY29udHJvbFNpemUpCiB7Ci0gICAgaWYgKGlzU2Nyb2xsYmFyT3ZlcmxheUFQ
SUF2YWlsYWJsZSgpKSB7Ci0gICAgICAgIFNjcm9sbGJhclBhaW50ZXIgc2Nyb2xsYmFyUGFpbnRl
ciA9IFtOU0NsYXNzRnJvbVN0cmluZyhAIk5TU2Nyb2xsZXJJbXAiKSBzY3JvbGxlckltcFdpdGhT
dHlsZTpyZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSBjb250cm9sU2l6ZTpjb250cm9sU2l6ZSBo
b3Jpem9udGFsOk5PIHJlcGxhY2luZ1Njcm9sbGVySW1wOm5pbF07Ci0gICAgICAgIGlmIChzdXBw
b3J0c0V4cGFuZGVkU2Nyb2xsYmFycygpKQotICAgICAgICAgICAgW3Njcm9sbGJhclBhaW50ZXIg
c2V0RXhwYW5kZWQ6WUVTXTsKLSAgICAgICAgcmV0dXJuIFtzY3JvbGxiYXJQYWludGVyIHRyYWNr
Qm94V2lkdGhdOwotICAgIH0gZWxzZQotICAgICAgICByZXR1cm4gY1Njcm9sbGJhclRoaWNrbmVz
c1tjb250cm9sU2l6ZV07CisgICAgU2Nyb2xsYmFyUGFpbnRlciBzY3JvbGxiYXJQYWludGVyID0g
W05TQ2xhc3NGcm9tU3RyaW5nKEAiTlNTY3JvbGxlckltcCIpIHNjcm9sbGVySW1wV2l0aFN0eWxl
OnJlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpIGNvbnRyb2xTaXplOmNvbnRyb2xTaXplIGhvcml6
b250YWw6Tk8gcmVwbGFjaW5nU2Nyb2xsZXJJbXA6bmlsXTsKKyAgICBpZiAoc3VwcG9ydHNFeHBh
bmRlZFNjcm9sbGJhcnMoKSkKKyAgICAgICAgW3Njcm9sbGJhclBhaW50ZXIgc2V0RXhwYW5kZWQ6
WUVTXTsKKyAgICByZXR1cm4gW3Njcm9sbGJhclBhaW50ZXIgdHJhY2tCb3hXaWR0aF07CiB9CiAK
IGJvb2wgU2Nyb2xsYmFyVGhlbWVNYWM6OnVzZXNPdmVybGF5U2Nyb2xsYmFycygpIGNvbnN0CkBA
IC0yNDgsMTAgKzIzNSw3IEBAIGJvb2wgU2Nyb2xsYmFyVGhlbWVNYWM6OnVzZXNPdmVybGF5U2Ny
b2xsYmFycygpIGNvbnN0CiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnVzZXNPdmVybGF5U2Ny
b2xsYmFyc0NoYW5nZWQoKQogewotICAgIGlmIChpc1Njcm9sbGJhck92ZXJsYXlBUElBdmFpbGFi
bGUoKSkKLSAgICAgICAgZ1VzZXNPdmVybGF5U2Nyb2xsYmFycyA9IHJlY29tbWVuZGVkU2Nyb2xs
ZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXk7Ci0gICAgZWxzZQotICAgICAgICBn
VXNlc092ZXJsYXlTY3JvbGxiYXJzID0gZmFsc2U7CisgICAgZ1VzZXNPdmVybGF5U2Nyb2xsYmFy
cyA9IHJlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZU92ZXJsYXk7
CiB9CiAKIHZvaWQgU2Nyb2xsYmFyVGhlbWVNYWM6OnVwZGF0ZVNjcm9sbGJhck92ZXJsYXlTdHls
ZShTY3JvbGxiYXJUaGVtZUNsaWVudCogc2Nyb2xsYmFyKQpAQCAtMjk2LDEyICsyODAsMTEgQEAg
Ym9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6aGFzQnV0dG9ucyhTY3JvbGxiYXJUaGVtZUNsaWVudCog
c2Nyb2xsYmFyKQogYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6aGFzVGh1bWIoU2Nyb2xsYmFyVGhl
bWVDbGllbnQqIHNjcm9sbGJhcikKIHsKICAgICBpbnQgbWluTGVuZ3RoRm9yVGh1bWI7Ci0gICAg
aWYgKGlzU2Nyb2xsYmFyT3ZlcmxheUFQSUF2YWlsYWJsZSgpKSB7Ci0gICAgICAgIFNjcm9sbGJh
clBhaW50ZXIgcGFpbnRlciA9IHNjcm9sbGJhck1hcCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQoKTsK
LSAgICAgICAgbWluTGVuZ3RoRm9yVGh1bWIgPSBbcGFpbnRlciBrbm9iTWluTGVuZ3RoXSArIFtw
YWludGVyIHRyYWNrT3ZlcmxhcEVuZEluc2V0XSArIFtwYWludGVyIGtub2JPdmVybGFwRW5kSW5z
ZXRdCi0gICAgICAgICAgICArIDIgKiAoW3BhaW50ZXIgdHJhY2tFbmRJbnNldF0gKyBbcGFpbnRl
ciBrbm9iRW5kSW5zZXRdKTsKLSAgICB9IGVsc2UKLSAgICAgICAgbWluTGVuZ3RoRm9yVGh1bWIg
PSAyICogY0J1dHRvbkluc2V0W3Njcm9sbGJhci0+Y29udHJvbFNpemUoKV0gKyBjVGh1bWJNaW5M
ZW5ndGhbc2Nyb2xsYmFyLT5jb250cm9sU2l6ZSgpXSArIDE7CisKKyAgICBTY3JvbGxiYXJQYWlu
dGVyIHBhaW50ZXIgPSBzY3JvbGxiYXJNYXAoKS0+Z2V0KHNjcm9sbGJhcikuZ2V0KCk7CisgICAg
bWluTGVuZ3RoRm9yVGh1bWIgPSBbcGFpbnRlciBrbm9iTWluTGVuZ3RoXSArIFtwYWludGVyIHRy
YWNrT3ZlcmxhcEVuZEluc2V0XSArIFtwYWludGVyIGtub2JPdmVybGFwRW5kSW5zZXRdCisgICAg
ICAgICsgMiAqIChbcGFpbnRlciB0cmFja0VuZEluc2V0XSArIFtwYWludGVyIGtub2JFbmRJbnNl
dF0pOworCiAgICAgcmV0dXJuIHNjcm9sbGJhci0+ZW5hYmxlZCgpICYmIChzY3JvbGxiYXItPm9y
aWVudGF0aW9uKCkgPT0gSG9yaXpvbnRhbFNjcm9sbGJhciA/IAogICAgICAgICAgICAgIHNjcm9s
bGJhci0+d2lkdGgoKSA6IAogICAgICAgICAgICAgIHNjcm9sbGJhci0+aGVpZ2h0KCkpID49IG1p
bkxlbmd0aEZvclRodW1iOwpAQCAtNDM4LDEwICs0MjEsNyBAQCBJbnRSZWN0IFNjcm9sbGJhclRo
ZW1lTWFjOjp0cmFja1JlY3QoU2Nyb2xsYmFyVGhlbWVDbGllbnQqIHNjcm9sbGJhciwgYm9vbCBw
YWludAogCiBpbnQgU2Nyb2xsYmFyVGhlbWVNYWM6Om1pbmltdW1UaHVtYkxlbmd0aChTY3JvbGxi
YXJUaGVtZUNsaWVudCogc2Nyb2xsYmFyKQogewotICAgIGlmIChpc1Njcm9sbGJhck92ZXJsYXlB
UElBdmFpbGFibGUoKSkKLSAgICAgICAgcmV0dXJuIFtzY3JvbGxiYXJNYXAoKS0+Z2V0KHNjcm9s
bGJhcikuZ2V0KCkga25vYk1pbkxlbmd0aF07Ci0gICAgZWxzZQotICAgICAgICByZXR1cm4gY1Ro
dW1iTWluTGVuZ3RoW3Njcm9sbGJhci0+Y29udHJvbFNpemUoKV07CisgICAgcmV0dXJuIFtzY3Jv
bGxiYXJNYXAoKS0+Z2V0KHNjcm9sbGJhcikga25vYk1pbkxlbmd0aF07CiB9CiAKIGJvb2wgU2Ny
b2xsYmFyVGhlbWVNYWM6OnNob3VsZENlbnRlck9uVGh1bWIoU2Nyb2xsYmFyVGhlbWVDbGllbnQq
LCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2dCkKQEAgLTQ3OCw4ICs0NTgsNyBAQCBpbnQg
U2Nyb2xsYmFyVGhlbWVNYWM6OnNjcm9sbGJhclBhcnRUb0hJUHJlc3NlZFN0YXRlKFNjcm9sbGJh
clBhcnQgcGFydCkKIAogdm9pZCBTY3JvbGxiYXJUaGVtZU1hYzo6dXBkYXRlRW5hYmxlZFN0YXRl
KFNjcm9sbGJhclRoZW1lQ2xpZW50KiBzY3JvbGxiYXIpCiB7Ci0gICAgaWYgKGlzU2Nyb2xsYmFy
T3ZlcmxheUFQSUF2YWlsYWJsZSgpKQotICAgICAgICBbc2Nyb2xsYmFyTWFwKCktPmdldChzY3Jv
bGxiYXIpLmdldCgpIHNldEVuYWJsZWQ6c2Nyb2xsYmFyLT5lbmFibGVkKCldOworICAgIFtzY3Jv
bGxiYXJNYXAoKS0+Z2V0KHNjcm9sbGJhcikgc2V0RW5hYmxlZDpzY3JvbGxiYXItPmVuYWJsZWQo
KV07CiB9CiAKIHN0YXRpYyB2b2lkIHNjcm9sbGJhclBhaW50ZXJQYWludChTY3JvbGxiYXJQYWlu
dGVyIHNjcm9sbGJhclBhaW50ZXIsIGJvb2wgZW5hYmxlZCwgZG91YmxlIHZhbHVlLCBDR0Zsb2F0
IHByb3BvcnRpb24sIENHUmVjdCBmcmFtZVJlY3QpCkBAIC01MDEsMTAzICs0ODAsMzcgQEAgc3Rh
dGljIHZvaWQgc2Nyb2xsYmFyUGFpbnRlclBhaW50KFNjcm9sbGJhclBhaW50ZXIgc2Nyb2xsYmFy
UGFpbnRlciwgYm9vbCBlbmFibGUKIAogYm9vbCBTY3JvbGxiYXJUaGVtZU1hYzo6cGFpbnQoU2Ny
b2xsYmFyVGhlbWVDbGllbnQqIHNjcm9sbGJhciwgR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KQogewotICAgIGlmIChpc1Njcm9sbGJhck92ZXJsYXlB
UElBdmFpbGFibGUoKSkgewotICAgICAgICBmbG9hdCB2YWx1ZSA9IDA7Ci0gICAgICAgIGZsb2F0
IG92ZXJoYW5nID0gMDsKLQotICAgICAgICBpZiAoc2Nyb2xsYmFyLT5jdXJyZW50UG9zKCkgPCAw
KSB7Ci0gICAgICAgICAgICAvLyBTY3JvbGxlZCBwYXN0IHRoZSB0b3AuCi0gICAgICAgICAgICB2
YWx1ZSA9IDA7Ci0gICAgICAgICAgICBvdmVyaGFuZyA9IC1zY3JvbGxiYXItPmN1cnJlbnRQb3Mo
KTsKLSAgICAgICAgfSBlbHNlIGlmIChzY3JvbGxiYXItPnZpc2libGVTaXplKCkgKyBzY3JvbGxi
YXItPmN1cnJlbnRQb3MoKSA+IHNjcm9sbGJhci0+dG90YWxTaXplKCkpIHsKLSAgICAgICAgICAg
IC8vIFNjcm9sbGVkIHBhc3QgdGhlIGJvdHRvbS4KLSAgICAgICAgICAgIHZhbHVlID0gMTsKLSAg
ICAgICAgICAgIG92ZXJoYW5nID0gc2Nyb2xsYmFyLT5jdXJyZW50UG9zKCkgKyBzY3JvbGxiYXIt
PnZpc2libGVTaXplKCkgLSBzY3JvbGxiYXItPnRvdGFsU2l6ZSgpOwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgLy8gV2l0aGluIHRoZSBib3VuZHMgb2YgdGhlIHNjcm9sbGFibGUgYXJl
YS4KLSAgICAgICAgICAgIGludCBtYXhpbXVtID0gc2Nyb2xsYmFyLT5tYXhpbXVtKCk7Ci0gICAg
ICAgICAgICBpZiAobWF4aW11bSA+IDApCi0gICAgICAgICAgICAgICAgdmFsdWUgPSBzY3JvbGxi
YXItPmN1cnJlbnRQb3MoKSAvIG1heGltdW07Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgdmFsdWUgPSAwOwotICAgICAgICB9Ci0KLSAgICAgICAgVGVtcG9yYXJ5Q2hhbmdlPGJv
b2w+IGlzQ3VycmVudGx5RHJhd2luZ0ludG9MYXllcihnX2lzQ3VycmVudGx5RHJhd2luZ0ludG9M
YXllciwgY29udGV4dC0+aXNDQUxheWVyQ29udGV4dCgpKTsKLSAgICAgICAgCi0gICAgICAgIEdy
YXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcigqY29udGV4dCk7Ci0gICAgICAgIGNv
bnRleHQtPmNsaXAoZGFtYWdlUmVjdCk7Ci0gICAgICAgIGNvbnRleHQtPnRyYW5zbGF0ZShzY3Jv
bGxiYXItPmZyYW1lUmVjdCgpLngoKSwgc2Nyb2xsYmFyLT5mcmFtZVJlY3QoKS55KCkpOwotICAg
ICAgICBMb2NhbEN1cnJlbnRHcmFwaGljc0NvbnRleHQgbG9jYWxDb250ZXh0KGNvbnRleHQpOwot
ICAgICAgICBzY3JvbGxiYXJQYWludGVyUGFpbnQoc2Nyb2xsYmFyTWFwKCktPmdldChzY3JvbGxi
YXIpLmdldCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGxiYXItPmVu
YWJsZWQoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUsCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChzdGF0aWNfY2FzdDxDR0Zsb2F0PihzY3JvbGxiYXIt
PnZpc2libGVTaXplKCkpIC0gb3ZlcmhhbmcpIC8gc2Nyb2xsYmFyLT50b3RhbFNpemUoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsYmFyLT5mcmFtZVJlY3QoKSk7Ci0K
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQorICAgIGZsb2F0IHZhbHVlID0gMDsKKyAgICBm
bG9hdCBvdmVyaGFuZyA9IDA7CiAKLSAgICBISVRoZW1lVHJhY2tEcmF3SW5mbyB0cmFja0luZm87
Ci0gICAgdHJhY2tJbmZvLnZlcnNpb24gPSAwOwotICAgIHRyYWNrSW5mby5raW5kID0gc2Nyb2xs
YmFyLT5jb250cm9sU2l6ZSgpID09IFJlZ3VsYXJTY3JvbGxiYXIgPyBrVGhlbWVNZWRpdW1TY3Jv
bGxCYXIgOiBrVGhlbWVTbWFsbFNjcm9sbEJhcjsKLSAgICB0cmFja0luZm8uYm91bmRzID0gc2Ny
b2xsYmFyLT5mcmFtZVJlY3QoKTsKLQotICAgIGZsb2F0IG1heGltdW0gPSAwLjBmOwotICAgIGZs
b2F0IHBvc2l0aW9uID0gMC4wZjsKICAgICBpZiAoc2Nyb2xsYmFyLT5jdXJyZW50UG9zKCkgPCAw
KSB7CiAgICAgICAgIC8vIFNjcm9sbGVkIHBhc3QgdGhlIHRvcC4KLSAgICAgICAgbWF4aW11bSA9
IChzY3JvbGxiYXItPnRvdGFsU2l6ZSgpIC0gc2Nyb2xsYmFyLT5jdXJyZW50UG9zKCkpIC0gc2Ny
b2xsYmFyLT52aXNpYmxlU2l6ZSgpOwotICAgICAgICBwb3NpdGlvbiA9IDA7CisgICAgICAgIHZh
bHVlID0gMDsKKyAgICAgICAgb3ZlcmhhbmcgPSAtc2Nyb2xsYmFyLT5jdXJyZW50UG9zKCk7CiAg
ICAgfSBlbHNlIGlmIChzY3JvbGxiYXItPnZpc2libGVTaXplKCkgKyBzY3JvbGxiYXItPmN1cnJl
bnRQb3MoKSA+IHNjcm9sbGJhci0+dG90YWxTaXplKCkpIHsKICAgICAgICAgLy8gU2Nyb2xsZWQg
cGFzdCB0aGUgYm90dG9tLgotICAgICAgICBtYXhpbXVtID0gc2Nyb2xsYmFyLT5jdXJyZW50UG9z
KCk7Ci0gICAgICAgIHBvc2l0aW9uID0gbWF4aW11bTsKKyAgICAgICAgdmFsdWUgPSAxOworICAg
ICAgICBvdmVyaGFuZyA9IHNjcm9sbGJhci0+Y3VycmVudFBvcygpICsgc2Nyb2xsYmFyLT52aXNp
YmxlU2l6ZSgpIC0gc2Nyb2xsYmFyLT50b3RhbFNpemUoKTsKICAgICB9IGVsc2UgewogICAgICAg
ICAvLyBXaXRoaW4gdGhlIGJvdW5kcyBvZiB0aGUgc2Nyb2xsYWJsZSBhcmVhLgotICAgICAgICBt
YXhpbXVtID0gc2Nyb2xsYmFyLT5tYXhpbXVtKCk7Ci0gICAgICAgIHBvc2l0aW9uID0gc2Nyb2xs
YmFyLT5jdXJyZW50UG9zKCk7CisgICAgICAgIGludCBtYXhpbXVtID0gc2Nyb2xsYmFyLT5tYXhp
bXVtKCk7CisgICAgICAgIGlmIChtYXhpbXVtID4gMCkKKyAgICAgICAgICAgIHZhbHVlID0gc2Ny
b2xsYmFyLT5jdXJyZW50UG9zKCkgLyBtYXhpbXVtOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICB2YWx1ZSA9IDA7CiAgICAgfQogCi0gICAgdHJhY2tJbmZvLm1pbiA9IDA7Ci0gICAgdHJhY2tJ
bmZvLm1heCA9IHN0YXRpY19jYXN0PGludD4obWF4aW11bSk7Ci0gICAgdHJhY2tJbmZvLnZhbHVl
ID0gc3RhdGljX2Nhc3Q8aW50Pihwb3NpdGlvbik7Ci0KLSAgICB0cmFja0luZm8udHJhY2tJbmZv
LnNjcm9sbGJhci52aWV3c2l6ZSA9IHNjcm9sbGJhci0+dmlzaWJsZVNpemUoKTsKLSAgICB0cmFj
a0luZm8uYXR0cmlidXRlcyA9IDA7Ci0gICAgaWYgKHNjcm9sbGJhci0+b3JpZW50YXRpb24oKSA9
PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQotICAgICAgICB0cmFja0luZm8uYXR0cmlidXRlcyB8PSBr
VGhlbWVUcmFja0hvcml6b250YWw7Ci0KLSAgICBpZiAoIXNjcm9sbGJhci0+ZW5hYmxlZCgpKQot
ICAgICAgICB0cmFja0luZm8uZW5hYmxlU3RhdGUgPSBrVGhlbWVUcmFja0Rpc2FibGVkOwotICAg
IGVsc2UKLSAgICAgICAgdHJhY2tJbmZvLmVuYWJsZVN0YXRlID0gc2Nyb2xsYmFyLT5pc1Njcm9s
bGFibGVBcmVhQWN0aXZlKCkgPyBrVGhlbWVUcmFja0FjdGl2ZSA6IGtUaGVtZVRyYWNrSW5hY3Rp
dmU7Ci0KLSAgICBpZiAoaGFzVGh1bWIoc2Nyb2xsYmFyKSkKLSAgICAgICAgdHJhY2tJbmZvLmF0
dHJpYnV0ZXMgfD0ga1RoZW1lVHJhY2tTaG93VGh1bWI7Ci0gICAgZWxzZSBpZiAoIWhhc0J1dHRv
bnMoc2Nyb2xsYmFyKSkKLSAgICAgICAgdHJhY2tJbmZvLmVuYWJsZVN0YXRlID0ga1RoZW1lVHJh
Y2tOb3RoaW5nVG9TY3JvbGw7Ci0gICAgdHJhY2tJbmZvLnRyYWNrSW5mby5zY3JvbGxiYXIucHJl
c3NTdGF0ZSA9IHNjcm9sbGJhclBhcnRUb0hJUHJlc3NlZFN0YXRlKHNjcm9sbGJhci0+cHJlc3Nl
ZFBhcnQoKSk7CisgICAgVGVtcG9yYXJ5Q2hhbmdlPGJvb2w+IGlzQ3VycmVudGx5RHJhd2luZ0lu
dG9MYXllcihnX2lzQ3VycmVudGx5RHJhd2luZ0ludG9MYXllciwgY29udGV4dC0+aXNDQUxheWVy
Q29udGV4dCgpKTsKICAgICAKLSAgICAvLyBUaGUgQXF1YSBzY3JvbGxiYXIgaXMgYnVnZ3kgd2hl
biByb3RhdGVkIGFuZCBzY2FsZWQuIFdlIHdpbGwganVzdCBkcmF3IGludG8gYSBiaXRtYXAgaWYg
d2UgZGV0ZWN0IGEgc2NhbGUgb3Igcm90YXRpb24uCi0gICAgLy8gRklYTUU6IFRoaXMgd29ya2Fy
b3VuZCBpcyB1bm5lY2Vzc2FyeSBmb3IgaW50ZWdyYWwgc2NhbGUgZmFjdG9ycy4KLSAgICBib29s
IGNhbkRyYXdEaXJlY3RseSA9IGNvbnRleHQtPmdldENUTSgpLmlzSWRlbnRpdHlPclRyYW5zbGF0
aW9uT3JGbGlwcGVkKCk7Ci0gICAgaWYgKGNhbkRyYXdEaXJlY3RseSkKLSAgICAgICAgSElUaGVt
ZURyYXdUcmFjaygmdHJhY2tJbmZvLCAwLCBjb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwga0hJ
VGhlbWVPcmllbnRhdGlvbk5vcm1hbCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHRyYWNrSW5mby5i
b3VuZHMgPSBJbnRSZWN0KEludFBvaW50KCksIHNjcm9sbGJhci0+ZnJhbWVSZWN0KCkuc2l6ZSgp
KTsKLSAgICAgICAgCi0gICAgICAgIEludFJlY3QgYnVmZmVyUmVjdChzY3JvbGxiYXItPmZyYW1l
UmVjdCgpKTsKLSAgICAgICAgYnVmZmVyUmVjdC5pbnRlcnNlY3QoZGFtYWdlUmVjdCk7Ci0gICAg
ICAgIAotICAgICAgICBPd25QdHI8SW1hZ2VCdWZmZXI+IGltYWdlQnVmZmVyID0gSW1hZ2VCdWZm
ZXI6OmNyZWF0ZShidWZmZXJSZWN0LnNpemUoKSwgMSk7Ci0gICAgICAgIGlmICghaW1hZ2VCdWZm
ZXIpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLQotICAgICAgICBpbWFnZUJ1ZmZlci0+Y29u
dGV4dCgpLT50cmFuc2xhdGUoc2Nyb2xsYmFyLT5mcmFtZVJlY3QoKS54KCkgLSBidWZmZXJSZWN0
LngoKSwgc2Nyb2xsYmFyLT5mcmFtZVJlY3QoKS55KCkgLSBidWZmZXJSZWN0LnkoKSk7Ci0gICAg
ICAgIEhJVGhlbWVEcmF3VHJhY2soJnRyYWNrSW5mbywgMCwgaW1hZ2VCdWZmZXItPmNvbnRleHQo
KS0+cGxhdGZvcm1Db250ZXh0KCksIGtISVRoZW1lT3JpZW50YXRpb25Ob3JtYWwpOwotICAgICAg
ICBjb250ZXh0LT5kcmF3SW1hZ2VCdWZmZXIoaW1hZ2VCdWZmZXIuZ2V0KCksIENvbG9yU3BhY2VE
ZXZpY2VSR0IsIGJ1ZmZlclJlY3QubG9jYXRpb24oKSk7Ci0gICAgfQotCisgICAgR3JhcGhpY3ND
b250ZXh0U3RhdGVTYXZlciBzdGF0ZVNhdmVyKCpjb250ZXh0KTsKKyAgICBjb250ZXh0LT5jbGlw
KGRhbWFnZVJlY3QpOworICAgIGNvbnRleHQtPnRyYW5zbGF0ZShzY3JvbGxiYXItPmZyYW1lUmVj
dCgpLngoKSwgc2Nyb2xsYmFyLT5mcmFtZVJlY3QoKS55KCkpOworICAgIExvY2FsQ3VycmVudEdy
YXBoaWNzQ29udGV4dCBsb2NhbENvbnRleHQoY29udGV4dCk7CisgICAgc2Nyb2xsYmFyUGFpbnRl
clBhaW50KHNjcm9sbGJhck1hcCgpLT5nZXQoc2Nyb2xsYmFyKS5nZXQoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBzY3JvbGxiYXItPmVuYWJsZWQoKSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICB2YWx1ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RhdGljX2Nh
c3Q8Q0dGbG9hdD4oc2Nyb2xsYmFyLT52aXNpYmxlU2l6ZSgpKSAtIG92ZXJoYW5nKSAvIHNjcm9s
bGJhci0+dG90YWxTaXplKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsYmFy
LT5mcmFtZVJlY3QoKSk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>