<?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>143911</bug_id>
          
          <creation_ts>2015-04-17 18:35:44 -0700</creation_ts>
          <short_desc>REGRESSION (r181656): Animated tiled layers are missing content</short_desc>
          <delta_ts>2015-04-19 09:12:56 -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>InRadar</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>ap</cc>
    
    <cc>darin</cc>
    
    <cc>kling</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1086509</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-17 18:35:44 -0700</bug_when>
    <thetext>REGRESSION (r181656): Animated tiled layers are missing content</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086561</commentid>
    <comment_count>1</comment_count>
      <attachid>251094</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-18 11:45:45 -0700</bug_when>
    <thetext>Created attachment 251094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086562</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-18 11:46:16 -0700</bug_when>
    <thetext>rdar://problem/20596328</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086575</commentid>
    <comment_count>3</comment_count>
      <attachid>251094</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-18 12:12:40 -0700</bug_when>
    <thetext>Comment on attachment 251094
Patch

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

Should fix incorrect use of PassRefPtr; deprecated now.

&gt; Source/WebCore/dom/ScriptedAnimationController.h:94
&gt; +    virtual PassRefPtr&lt;DisplayRefreshMonitor&gt; createDisplayRefreshMonitor(PlatformDisplayID) const override;

This should be RefPtr, not PassRefPtr.

&gt; Source/WebCore/page/ChromeClient.h:289
&gt; +    virtual PassRefPtr&lt;DisplayRefreshMonitor&gt; createDisplayRefreshMonitor(PlatformDisplayID) const { return nullptr; }

This should be RefPtr, not PassRefPtr.

&gt; Source/WebCore/platform/graphics/DisplayRefreshMonitorClient.h:47
&gt; +    virtual PassRefPtr&lt;DisplayRefreshMonitor&gt; createDisplayRefreshMonitor(PlatformDisplayID) const = 0;

This should be RefPtr, not PassRefPtr.

&gt; Source/WebCore/platform/graphics/GraphicsLayerUpdater.cpp:82
&gt; +PassRefPtr&lt;DisplayRefreshMonitor&gt; GraphicsLayerUpdater::createDisplayRefreshMonitor(PlatformDisplayID displayID) const

This should be RefPtr, not PassRefPtr.

&gt; Source/WebCore/platform/graphics/GraphicsLayerUpdater.h:41
&gt; +    virtual PassRefPtr&lt;DisplayRefreshMonitor&gt; createDisplayRefreshMonitor(PlatformDisplayID) const = 0;

This should be RefPtr, not PassRefPtr.

&gt; Source/WebCore/platform/graphics/GraphicsLayerUpdater.h:58
&gt; +    virtual PassRefPtr&lt;DisplayRefreshMonitor&gt; createDisplayRefreshMonitor(PlatformDisplayID) const override;

This should be RefPtr, not PassRefPtr.

&gt; Source/WebCore/rendering/RenderLayerCompositor.cpp:4166
&gt; +PassRefPtr&lt;DisplayRefreshMonitor&gt; RenderLayerCompositor::createDisplayRefreshMonitor(PlatformDisplayID displayID) const

This should be RefPtr, not PassRefPtr.

&gt; Source/WebCore/rendering/RenderLayerCompositor.h:406
&gt; +    PassRefPtr&lt;DisplayRefreshMonitor&gt; createDisplayRefreshMonitor(PlatformDisplayID) const override;

This should be RefPtr, not PassRefPtr.

&gt; Source/WebCore/testing/Internals.cpp:2074
&gt; +        ec = INVALID_ACCESS_ERR;

I don’t understand why having a null FrameView means INVALID_ACCESS_ERR but having a null RenderView means “silently do nothing”. But it’s just testing code, so no big deal I guess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086577</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-18 12:18:00 -0700</bug_when>
    <thetext>It&apos;s sad that nothing in the PassRefPtr header mentions it being deprecated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086580</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-18 12:40:49 -0700</bug_when>
    <thetext>https://trac.webkit.org/r182985</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1086639</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-04-19 09:12:56 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; It&apos;s sad that nothing in the PassRefPtr header mentions it being deprecated.

I think I’m going to rename it to DeprecatedPassRefPtr soon.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251094</attachid>
            <date>2015-04-18 11:45:45 -0700</date>
            <delta_ts>2015-04-18 12:12:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-143911-20150418114445.patch</filename>
            <type>text/plain</type>
            <size>41001</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgyODk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTI2YzhlYjI0OTIzMTkx
ODc5MDBmYzg2ZjVkYTJlOWE3NGEyYjQyMy4uZWZiMTViNmM1NGYwMDY0NTRiNDhjNDgzMTYxNGNi
MDRmMTc1MjdmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE1LTA0LTE4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04g
KHIxODE2NTYpOiBBbmltYXRlZCB0aWxlZCBsYXllcnMgYXJlIG1pc3NpbmcgY29udGVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQzOTExCisgICAg
ICAgIHJkYXI6Ly9wcm9ibGVtLzIwNTk2MzI4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWZ0ZXIgcjE4MTY1NiwgYWxsIHJlcXVlc3RBbmltYXRpb25G
cmFtZSB3YXMgZmFsbGluZyBiYWNrIHRvIHRpbWVycywgYW5kIG5vdAorICAgICAgICB1c2luZyB0
aGUgcGxhdGZvcm0ncyBEaXNwbGF5UmVmcmVzaE1vbml0b3IsIGJlY2F1c2Ugb2YgYSBOdWxsb3B0
IHZzIG51bGxwdHIKKyAgICAgICAgZnVtYmxlLiBBcyBhIHJlc3VsdCwgR3JhcGhpY3NMYXllclVw
ZGF0ZXIgKHdoaWNoIHVwZGF0ZXMgdGlsZWQgbGF5ZXJzIGR1cmluZworICAgICAgICBhbmltYXRp
b25zKSB3YXMgZmFpbGluZyB0byBkbyBhbnkgdXBkYXRlcy4KKyAgICAgICAgCisgICAgICAgIFJl
cGxhY2UgdGhpcyBjb25mdXNpbmcgT3B0aW9uYWw8PiBjb2RlIHdpdGggc2ltcGxlciBjb2RlIHRo
YXQganVzdCBmb3JjZXMgdGhlCisgICAgICAgIGNsaWVudHMgdG8gbWFrZSBhIERpc3BsYXlSZWZy
ZXNoTW9uaXRvciBpZiB0aGV5IGNhbiwgZmlyc3QgYXNraW5nCisgICAgICAgIENocm9tZUNsaWVu
dCwgYW5kIHRoZW4gZmFsbGluZyBiYWNrIHRvIGNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1v
bml0b3IoKS4KKyAgICAgICAgCisgICAgICAgIE1ha2UgbG90cyBvZiB0aGluZ3MgaW50byByZWZl
cmVuY2VzLCBhbmQgdXNlIEMrKzExIGluaXRpYWxpemF0aW9uIGluIHNvbWUgcGxhY2VzLgorICAg
ICAgICAKKyAgICAgICAgQWRkIEludGVybmFscyBBUEkgdG8gYWxsb3cgYSB0ZXN0IHRvIGdldCB0
aGUgbnVtYmVyIG9mIGxheWVyIGZsdXNoZXMgdGhhdCBoYXZlCisgICAgICAgIG9jY3VycmVkLgor
ICAgICAgICAKKyAgICAgICAgKiBkb20vU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6U2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdGVkQW5pbWF0aW9u
Q29udHJvbGxlcjo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6c2NoZWR1bGVBbmltYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjpjcmVhdGVEaXNwbGF5UmVmcmVz
aE1vbml0b3IpOgorICAgICAgICAqIGRvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBwYWdlL0Nocm9tZUNsaWVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5
UmVmcmVzaE1vbml0b3I6OmNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IpOgorICAg
ICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGUpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjphZGRDbGllbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpyZW1vdmVDbGllbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yOjpkaXNwbGF5RGlkUmVmcmVzaCk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmg6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudDo6fkRpc3BsYXlSZWZyZXNo
TW9uaXRvckNsaWVudCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJl
c2hNb25pdG9yQ2xpZW50Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5UmVmcmVz
aE1vbml0b3JNYW5hZ2VyOjpjcmVhdGVNb25pdG9yRm9yQ2xpZW50KToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnJlZ2lzdGVyQ2xpZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OkRpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnVucmVnaXN0ZXJDbGll
bnQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2No
ZWR1bGVBbmltYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9y
TWFuYWdlcjo6ZGlzcGxheURpZFJlZnJlc2gpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlcjo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmg6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6R3JhcGhpY3NMYXllclVwZGF0ZXI6OkdyYXBoaWNzTGF5ZXJVcGRhdGVyKToKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJVcGRhdGVyOjpzY2hlZHVsZVVwZGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyVXBkYXRlcjo6c2NyZWVuRGlkQ2hhbmdlKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJVcGRhdGVyOjpkaXNwbGF5UmVmcmVzaEZp
cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJVcGRhdGVyOjpjcmVhdGVEaXNw
bGF5UmVmcmVzaE1vbml0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXJVcGRhdGVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6OlJlbmRlckxh
eWVyQ29tcG9zaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0b3I6
OmZsdXNoUGVuZGluZ0xheWVyQ2hhbmdlcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ckNvbXBvc2l0b3I6Om5vdGlmeUZsdXNoQmVmb3JlRGlzcGxheVJlZnJlc2gpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpmbHVzaExheWVyc1Nvb24pOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1v
bml0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpzdGFydFRy
YWNraW5nTGF5ZXJGbHVzaGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6bGF5ZXJGbHVzaENvdW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJD
b21wb3NpdG9yLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW50ZXJuYWxzOjpzdGFydFRyYWNraW5nTGF5ZXJGbHVzaGVzKToKKyAgICAgICAg
KFdlYkNvcmU6OkludGVybmFsczo6bGF5ZXJGbHVzaENvdW50KToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFscy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKwogMjAxNS0w
NC0xNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBQ
dWxsIGVtb2ppLXBvc2l0aW9uIGFkanVzdG1lbnQgY29kZSBpbnRvIGl0cyBvd24gZnVuY3Rpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA3YzIyNzU5NzNmN2U1MjkyNjA3ODVkODUwMDZmZmIyMzEyNjBlZTc3Li5m
NzQ1Mjg4NTc3NjFlOTAyYjg0NDk5N2UyM2U3ODE1NTZlNjExMzIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjUgQEAKKzIwMTUtMDQtMTggIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjE4MTY1Nik6IEFuaW1hdGVkIHRpbGVkIGxh
eWVycyBhcmUgbWlzc2luZyBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNDM5MTEKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vMjA1OTYzMjgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAg
IEFmdGVyIHIxODE2NTYsIGFsbCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgd2FzIGZhbGxpbmcgYmFj
ayB0byB0aW1lcnMsIGFuZCBub3QKKyAgICAgICAgdXNpbmcgdGhlIHBsYXRmb3JtJ3MgRGlzcGxh
eVJlZnJlc2hNb25pdG9yLCBiZWNhdXNlIG9mIGEgTnVsbG9wdCB2cyBudWxscHRyCisgICAgICAg
IGZ1bWJsZS4KKyAgICAgICAgCisgICAgICAgIFJlcGxhY2UgdGhpcyBjb25mdXNpbmcgT3B0aW9u
YWw8PiBjb2RlIHdpdGggc2ltcGxlciBjb2RlIHRoYXQganVzdCBmb3JjZXMgdGhlCisgICAgICAg
IGNsaWVudHMgdG8gbWFrZSBhIERpc3BsYXlSZWZyZXNoTW9uaXRvciBpZiB0aGV5IGNhbiwgZmly
c3QgYXNraW5nCisgICAgICAgIENocm9tZUNsaWVudCwgYW5kIHRoZW4gZmFsbGluZyBiYWNrIHRv
IGNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoKS4KKyAgICAgICAgCisgICAgICAg
IE1ha2UgbG90cyBvZiB0aGluZ3MgaW50byByZWZlcmVuY2VzLCBhbmQgdXNlIEMrKzExIGluaXRp
YWxpemF0aW9uIGluIHNvbWUgcGxhY2VzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJDaHJvbWVD
bGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxNS0wNC0xNiAgVGltb3Ro
eSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgUHJvdmlkZSBh
IG1lY2hhbmlzbSB0aHJvdWdoIHRoZSBsZWdhY3kgU1BJIHRvIGtub3cgd2hlbiBzd2lwZSBnZXN0
dXJlcyBiZWdpbiBhbmQgZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0
ZWRBbmltYXRpb25Db250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFu
aW1hdGlvbkNvbnRyb2xsZXIuY3BwCmluZGV4IDg4NTQyMWQ1MDI0ZTAxZTMzYmMyYTIzM2IzZTAz
OGJlZmIyYTg0NTYuLjBlZGFhMzA1ZWQxNDllNWI0MDQ5OTg2ZTc0NWQ5YmNlMjBhMWU2YzcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRlZEFuaW1hdGlvbkNvbnRyb2xsZXIu
Y3BwCkBAIC01MSwxNSArNTEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFNjcmlwdGVkQW5p
bWF0aW9uQ29udHJvbGxlcjo6U2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyKERvY3VtZW50KiBk
b2N1bWVudCwgUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKQogICAgIDogbV9kb2N1bWVudChk
b2N1bWVudCkKLSAgICAsIG1fbmV4dENhbGxiYWNrSWQoMCkKLSAgICAsIG1fc3VzcGVuZENvdW50
KDApCiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX1RJTUVSKQogICAgICwgbV9hbmlt
YXRpb25UaW1lcigqdGhpcywgJlNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6YW5pbWF0aW9u
VGltZXJGaXJlZCkKLSAgICAsIG1fbGFzdEFuaW1hdGlvbkZyYW1lVGltZU1vbm90b25pYygwKQot
I2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCi0gICAgLCBt
X2lzVXNpbmdUaW1lcihmYWxzZSkKLSAgICAsIG1faXNUaHJvdHRsZWQoZmFsc2UpCi0jZW5kaWYK
ICNlbmRpZgogewogICAgIHdpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5SUQpOwpAQCAtMTcz
LDcgKzE2Niw3IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVyOjp3aW5kb3dTY3Jl
ZW5EaWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxhCiAgICAgaWYgKG1fZG9jdW1lbnQt
PnNldHRpbmdzKCkgJiYgIW1fZG9jdW1lbnQtPnNldHRpbmdzKCktPnJlcXVlc3RBbmltYXRpb25G
cmFtZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElP
Tl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCi0gICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdl
cjo6c2hhcmVkTWFuYWdlcigpLndpbmRvd1NjcmVlbkRpZENoYW5nZShkaXNwbGF5SUQsIHRoaXMp
OworICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS53aW5k
b3dTY3JlZW5EaWRDaGFuZ2UoZGlzcGxheUlELCAqdGhpcyk7CiAjZWxzZQogICAgIFVOVVNFRF9Q
QVJBTShkaXNwbGF5SUQpOwogI2VuZGlmCkBAIC0xODcsNyArMTgwLDcgQEAgdm9pZCBTY3JpcHRl
ZEFuaW1hdGlvbkNvbnRyb2xsZXI6OnNjaGVkdWxlQW5pbWF0aW9uKCkKICNpZiBVU0UoUkVRVUVT
VF9BTklNQVRJT05fRlJBTUVfVElNRVIpCiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1F
X0RJU1BMQVlfTU9OSVRPUikKICAgICBpZiAoIW1faXNVc2luZ1RpbWVyICYmICFtX2lzVGhyb3R0
bGVkKSB7Ci0gICAgICAgIGlmIChEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRN
YW5hZ2VyKCkuc2NoZWR1bGVBbmltYXRpb24odGhpcykpCisgICAgICAgIGlmIChEaXNwbGF5UmVm
cmVzaE1vbml0b3JNYW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkuc2NoZWR1bGVBbmltYXRpb24oKnRo
aXMpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIG1faXNVc2luZ1RpbWVyID0gdHJ1
ZTsKQEAgLTIyNiwxMSArMjE5LDE1IEBAIHZvaWQgU2NyaXB0ZWRBbmltYXRpb25Db250cm9sbGVy
OjpkaXNwbGF5UmVmcmVzaEZpcmVkKGRvdWJsZSBtb25vdG9uaWNUaW1lTm93KQogCiAKICNpZiBV
U0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQotT3B0aW9uYWw8UmVm
UHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4+IFNjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlcjo6
Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkg
Y29uc3QKK1Bhc3NSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBTY3JpcHRlZEFuaW1hdGlv
bkNvbnRyb2xsZXI6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJ
RCBkaXNwbGF5SUQpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2RvY3VtZW50LT5wYWdlKCkpCi0gICAg
ICAgIHJldHVybiBPcHRpb25hbDxSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPj4obnVsbHB0
cik7Ci0gICAgcmV0dXJuIE9wdGlvbmFsPFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+Piht
X2RvY3VtZW50LT5wYWdlKCktPmNocm9tZSgpLmNsaWVudCgpLmNyZWF0ZURpc3BsYXlSZWZyZXNo
TW9uaXRvcihkaXNwbGF5SUQpKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAo
YXV0byBtb25pdG9yID0gbV9kb2N1bWVudC0+cGFnZSgpLT5jaHJvbWUoKS5jbGllbnQoKS5jcmVh
dGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKSkKKyAgICAgICAgcmV0dXJuIG1vbml0
b3I7CisKKyAgICByZXR1cm4gRGlzcGxheVJlZnJlc2hNb25pdG9yOjpjcmVhdGVEZWZhdWx0RGlz
cGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL1NjcmlwdGVkQW5pbWF0aW9uQ29udHJvbGxlci5oCmluZGV4IDFhY2U1OGI2
ZDQyYjFmNWRjZjVhNTA1N2I0MzU3MDYyMDhjZGY5NzYuLjI1MmIyYzNhYzRlZTA1ZTUzZWUzMDU1
MTY0ODg0MzM2YzgzYTMzYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRl
ZEFuaW1hdGlvbkNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vU2NyaXB0ZWRB
bmltYXRpb25Db250cm9sbGVyLmgKQEAgLTc4LDIzICs3OCwyMyBAQCBwcml2YXRlOgogICAgIENh
bGxiYWNrTGlzdCBtX2NhbGxiYWNrczsKIAogICAgIERvY3VtZW50KiBtX2RvY3VtZW50OwotICAg
IENhbGxiYWNrSWQgbV9uZXh0Q2FsbGJhY2tJZDsKLSAgICBpbnQgbV9zdXNwZW5kQ291bnQ7Cisg
ICAgQ2FsbGJhY2tJZCBtX25leHRDYWxsYmFja0lkIHsgMCB9OworICAgIGludCBtX3N1c3BlbmRD
b3VudCB7IDAgfTsKIAogICAgIHZvaWQgc2NoZWR1bGVBbmltYXRpb24oKTsKIAogI2lmIFVTRShS
RVFVRVNUX0FOSU1BVElPTl9GUkFNRV9USU1FUikKICAgICB2b2lkIGFuaW1hdGlvblRpbWVyRmly
ZWQoKTsKICAgICBUaW1lciBtX2FuaW1hdGlvblRpbWVyOwotICAgIGRvdWJsZSBtX2xhc3RBbmlt
YXRpb25GcmFtZVRpbWVNb25vdG9uaWM7CisgICAgZG91YmxlIG1fbGFzdEFuaW1hdGlvbkZyYW1l
VGltZU1vbm90b25pYyB7IDAgfTsKIAogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9E
SVNQTEFZX01PTklUT1IpCiAgICAgLy8gT3ZlcnJpZGUgZm9yIERpc3BsYXlSZWZyZXNoTW9uaXRv
ckNsaWVudAogICAgIHZpcnR1YWwgdm9pZCBkaXNwbGF5UmVmcmVzaEZpcmVkKGRvdWJsZSB0aW1l
c3RhbXApIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgT3B0aW9uYWw8UmVmUHRyPERpc3BsYXlSZWZy
ZXNoTW9uaXRvcj4+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJ
RCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERpc3BsYXlSZWZyZXNo
TW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBj
b25zdCBvdmVycmlkZTsKIAotICAgIGJvb2wgbV9pc1VzaW5nVGltZXI7Ci0gICAgYm9vbCBtX2lz
VGhyb3R0bGVkOworICAgIGJvb2wgbV9pc1VzaW5nVGltZXIgeyBmYWxzZSB9OworICAgIGJvb2wg
bV9pc1Rocm90dGxlZCB7IGZhbHNlIH07CiAjZW5kaWYKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0Nocm9tZUNsaWVudC5oCmluZGV4IDAzYWQ0MzcxMzQ0NTg0NTIyMDYxNjdjYzE0OWNiOGNkN2Fk
NjZhODMuLmVmODA2YWE3M2ExMmU3MzM5ZjY2YjZkZDI2MGEyM2QzNjBlMzZkZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMjg2LDcgKzI4Niw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIEdyYXBoaWNzTGF5ZXJGYWN0b3J5KiBncmFwaGljc0xheWVyRmFjdG9yeSgpIGNvbnN0
IHsgcmV0dXJuIG51bGxwdHI7IH0KIAogI2lmIFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9E
SVNQTEFZX01PTklUT1IpCi0gICAgdmlydHVhbCBPcHRpb25hbDxSZWZQdHI8RGlzcGxheVJlZnJl
c2hNb25pdG9yPj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlE
KSBjb25zdCB7IHJldHVybiBOdWxsb3B0OyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPERpc3Bs
YXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlz
cGxheUlEKSBjb25zdCB7IHJldHVybiBudWxscHRyOyB9CiAjZW5kaWYKIAogICAgIC8vIFBhc3Mg
MCBhcyB0aGUgR3JhcGhpY3NMYXllciB0byBkZXRhdGNoIHRoZSByb290IGxheWVyLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25p
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNo
TW9uaXRvci5jcHAKaW5kZXggOGZlYmRjNjNlYTYwMmZjOWZjYzA3NTI1YmIxOWU3NjEzZjI0YmRk
NC4uZjIzODA4YzQ3NDFjNjQ4YTQ2ZjA2NTNlZDZjM2YwOGRlMGZlMTFiYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1v
bml0b3IuY3BwCkBAIC0zNSwyMSArMzUsMjAgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1S
ZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmNyZWF0
ZShEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQqIGNsaWVudCkKK1JlZlB0cjxEaXNwbGF5UmVm
cmVzaE1vbml0b3I+IERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6Y3JlYXRlRGVmYXVsdERpc3BsYXlS
ZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7Ci0gICAgUGxhdGZv
cm1EaXNwbGF5SUQgZGlzcGxheUlEID0gY2xpZW50LT5kaXNwbGF5SUQoKTsKLQotICAgIGlmIChP
cHRpb25hbDxSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPj4gbW9uaXRvciA9IGNsaWVudC0+
Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCkpCi0gICAgICAgIHJldHVybiBt
b25pdG9yLnZhbHVlKCk7Ci0KLSAgICAvLyBJZiBDaHJvbWVDbGllbnQgcmV0dXJuZWQgTnVsbG9w
dCwgd2UnbGwgbWFrZSBvbmUgb2YgdGhlIGRlZmF1bHQgdHlwZS4KLQogI2lmIFBMQVRGT1JNKE1B
QykKICAgICByZXR1cm4gRGlzcGxheVJlZnJlc2hNb25pdG9yTWFjOjpjcmVhdGUoZGlzcGxheUlE
KTsKICNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICByZXR1cm4gRGlzcGxheVJlZnJlc2hN
b25pdG9ySU9TOjpjcmVhdGUoZGlzcGxheUlEKTsKICNlbmRpZgorICAgIHJldHVybiBudWxscHRy
OworfQorCitSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBEaXNwbGF5UmVmcmVzaE1vbml0
b3I6OmNyZWF0ZShEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQmIGNsaWVudCkKK3sKKyAgICBy
ZXR1cm4gY2xpZW50LmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihjbGllbnQuZGlzcGxheUlE
KCkpOwogfQogCiBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OkRpc3BsYXlSZWZyZXNoTW9uaXRvcihQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCkBAIC03MywxNiArNzIsMTYgQEAgdm9pZCBEaXNw
bGF5UmVmcmVzaE1vbml0b3I6OmhhbmRsZURpc3BsYXlSZWZyZXNoZWROb3RpZmljYXRpb25Pbk1h
aW5UaHJlYWQodm9pZCoKICAgICBtb25pdG9yLT5kaXNwbGF5RGlkUmVmcmVzaCgpOwogfQogCi12
b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6YWRkQ2xpZW50KERpc3BsYXlSZWZyZXNoTW9uaXRv
ckNsaWVudCogY2xpZW50KQordm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmFkZENsaWVudChE
aXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQmIGNsaWVudCkKIHsKLSAgICBtX2NsaWVudHMuYWRk
KGNsaWVudCk7CisgICAgbV9jbGllbnRzLmFkZCgmY2xpZW50KTsKIH0KIAotYm9vbCBEaXNwbGF5
UmVmcmVzaE1vbml0b3I6OnJlbW92ZUNsaWVudChEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQq
IGNsaWVudCkKK2Jvb2wgRGlzcGxheVJlZnJlc2hNb25pdG9yOjpyZW1vdmVDbGllbnQoRGlzcGxh
eVJlZnJlc2hNb25pdG9yQ2xpZW50JiBjbGllbnQpCiB7CiAgICAgaWYgKG1fY2xpZW50c1RvQmVO
b3RpZmllZCkKLSAgICAgICAgbV9jbGllbnRzVG9CZU5vdGlmaWVkLT5yZW1vdmUoY2xpZW50KTsK
LSAgICByZXR1cm4gbV9jbGllbnRzLnJlbW92ZShjbGllbnQpOworICAgICAgICBtX2NsaWVudHNU
b0JlTm90aWZpZWQtPnJlbW92ZSgmY2xpZW50KTsKKyAgICByZXR1cm4gbV9jbGllbnRzLnJlbW92
ZSgmY2xpZW50KTsKIH0KIAogdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3I6OmRpc3BsYXlEaWRS
ZWZyZXNoKCkKQEAgLTEyNiw3ICsxMjUsNyBAQCB2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6
ZGlzcGxheURpZFJlZnJlc2goKQogICAgICAgICBtX3ByZXZpb3VzRnJhbWVEb25lID0gdHJ1ZTsK
ICAgICB9CiAgICAgCi0gICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFu
YWdlcigpLmRpc3BsYXlEaWRSZWZyZXNoKHRoaXMpOworICAgIERpc3BsYXlSZWZyZXNoTW9uaXRv
ck1hbmFnZXI6OnNoYXJlZE1hbmFnZXIoKS5kaXNwbGF5RGlkUmVmcmVzaCgqdGhpcyk7CiB9CiAK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlS
ZWZyZXNoTW9uaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxh
eVJlZnJlc2hNb25pdG9yLmgKaW5kZXggNWM1MjBjNGMxYTdjMTAxNzFkMzAzZjVmZGRmNGIyNDQx
YTUwNDEwYy4uYmI4Yzk2MThkODA0NGFhOTYwOWQ1ZTI1M2M4MzUxMTllNjNhZDg5MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25p
dG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJl
c2hNb25pdG9yLmgKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgRGlzcGxheVJlZnJlc2hNb25pdG9y
Q2xpZW50OwogCiBjbGFzcyBEaXNwbGF5UmVmcmVzaE1vbml0b3IgOiBwdWJsaWMgUmVmQ291bnRl
ZDxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmUHRyPERp
c3BsYXlSZWZyZXNoTW9uaXRvcj4gY3JlYXRlKERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCop
OworICAgIHN0YXRpYyBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGUoRGlzcGxh
eVJlZnJlc2hNb25pdG9yQ2xpZW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdmlydHVhbCB+RGlz
cGxheVJlZnJlc2hNb25pdG9yKCk7CiAgICAgCiAgICAgLy8gUmV0dXJuIHRydWUgaWYgY2FsbGJh
Y2sgcmVxdWVzdCB3YXMgc2NoZWR1bGVkLCBmYWxzZSBpZiBpdCBjb3VsZG4ndCBiZQpAQCAtNTAs
OCArNTAsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aW5kb3dTY3JlZW5EaWRDaGFuZ2UoUGxhdGZv
cm1EaXNwbGF5SUQpOwogICAgIAogICAgIGJvb2wgaGFzQ2xpZW50cygpIGNvbnN0IHsgcmV0dXJu
IG1fY2xpZW50cy5zaXplKCk7IH0KLSAgICB2b2lkIGFkZENsaWVudChEaXNwbGF5UmVmcmVzaE1v
bml0b3JDbGllbnQqKTsKLSAgICBib29sIHJlbW92ZUNsaWVudChEaXNwbGF5UmVmcmVzaE1vbml0
b3JDbGllbnQqKTsKKyAgICB2b2lkIGFkZENsaWVudChEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGll
bnQmKTsKKyAgICBib29sIHJlbW92ZUNsaWVudChEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQm
KTsKICAgICAKICAgICBQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQoKSBjb25zdCB7IHJldHVy
biBtX2Rpc3BsYXlJRDsgfQogCkBAIC03NCw2ICs3NCw4IEBAIHB1YmxpYzoKIAogICAgIE11dGV4
JiBtdXRleCgpIHsgcmV0dXJuIG1fbXV0ZXg7IH0KIAorICAgIHN0YXRpYyBSZWZQdHI8RGlzcGxh
eVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEZWZhdWx0RGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRm
b3JtRGlzcGxheUlEKTsKKwogcHJvdGVjdGVkOgogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0
IERpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIHZvaWQgaGFuZGxlRGlzcGxheVJlZnJlc2hlZE5vdGlmaWNhdGlvbk9uTWFp
blRocmVhZCh2b2lkKiBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQuY3BwCmluZGV4
IGMyY2RhMzg0Y2UxNDk3MTljZjAzMzg2ZGZhMTdjMDhmNzllNTk4ZjkuLmMxMDFiZWY4OWJjNmI2
MDgwOWY1ZGQxNDNlNDVlYTM1NjI0MTkwMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50
LmNwcApAQCAtNDEsNyArNDEsNyBAQCBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQ6OkRpc3Bs
YXlSZWZyZXNoTW9uaXRvckNsaWVudCgpCiAKIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudDo6
fkRpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCgpCiB7Ci0gICAgRGlzcGxheVJlZnJlc2hNb25p
dG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnVucmVnaXN0ZXJDbGllbnQodGhpcyk7CisgICAg
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnVucmVnaXN0ZXJD
bGllbnQoKnRoaXMpOwogfQogCiB2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudDo6Zmly
ZURpc3BsYXlSZWZyZXNoSWZOZWVkZWQoZG91YmxlIHRpbWVzdGFtcCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25p
dG9yQ2xpZW50LmgKaW5kZXggMjJmYTU3MjMxY2VjOGZkY2MzNDIzZDdiMTEwMDkxOWRmZGNkZDZj
NS4uNDc5NzQxOThmMmVhMjZlNDNkNzc2ZTFhOGEzMGVhMGEyMmYwZWIzZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xp
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRGlzcGxheVJlZnJl
c2hNb25pdG9yQ2xpZW50LmgKQEAgLTQ0LDEwICs0NCw3IEBAIHB1YmxpYzoKICAgICAvLyBBbHdh
eXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KICAgICB2aXJ0dWFsIHZvaWQgZGlzcGxheVJl
ZnJlc2hGaXJlZChkb3VibGUgdGltZXN0YW1wKSA9IDA7CiAKLSAgICAvLyBSZXR1cm5pbmcgbnVs
bG9wdCBpbmRpY2F0ZXMgdGhhdCBXZWJDb3JlIHNob3VsZCBjcmVhdGUgd2hhdGV2ZXIgRGlzcGxh
eVJlZnJlc2hNb25pdG9yIGl0IGRlZW1zCi0gICAgLy8gbW9zdCBhcHByb3ByaWF0ZSBmb3IgdGhl
IGN1cnJlbnQgcGxhdGZvcm0uIFJldHVybmluZyBudWxscHRyIGluZGljYXRlcyB0aGF0IHdlIHNo
b3VsZCBub3QgdHJ5IHRvCi0gICAgLy8gY3JlYXRlIGEgRGlzcGxheVJlZnJlc2hNb25pdG9yIGF0
IGFsbCAoYW5kIHNob3VsZCBpbnN0ZWFkIGZhbGwgYmFjayB0byB1c2luZyBhIHRpbWVyKS4KLSAg
ICB2aXJ0dWFsIE9wdGlvbmFsPFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+PiBjcmVhdGVE
aXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBjcmVhdGVEaXNwbGF5UmVm
cmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQpIGNvbnN0ID0gMDsKIAogICAgIFBsYXRmb3Jt
RGlzcGxheUlEIGRpc3BsYXlJRCgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheUlEOyB9CiAgICAg
Ym9vbCBoYXNEaXNwbGF5SUQoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlJRElzU2V0OyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVz
aE1vbml0b3JNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rp
c3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwCmluZGV4IDRjZjlhNDkwMWIyNjA0NzBkYjk5
MDk2YTgyY2Q2OTk0MjAyMDQ3ZmUuLjg0NTIxNDBkOTA1MjU1MWFkNWUwZjVlOGEwOWZmMzI3NjJj
MmUxNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3Bs
YXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuY3BwCkBAIC00NCw5ICs0NCw5
IEBAIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXImIERpc3BsYXlSZWZyZXNoTW9uaXRvck1h
bmFnZXI6OnNoYXJlZE1hbmFnZXIoKQogICAgIHJldHVybiBtYW5hZ2VyLmdldCgpOwogfQogCi1E
aXNwbGF5UmVmcmVzaE1vbml0b3IqIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OmNyZWF0
ZU1vbml0b3JGb3JDbGllbnQoRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50KiBjbGllbnQpCitE
aXNwbGF5UmVmcmVzaE1vbml0b3IqIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OmNyZWF0
ZU1vbml0b3JGb3JDbGllbnQoRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50JiBjbGllbnQpCiB7
Ci0gICAgUGxhdGZvcm1EaXNwbGF5SUQgY2xpZW50RGlzcGxheUlEID0gY2xpZW50LT5kaXNwbGF5
SUQoKTsKKyAgICBQbGF0Zm9ybURpc3BsYXlJRCBjbGllbnREaXNwbGF5SUQgPSBjbGllbnQuZGlz
cGxheUlEKCk7CiAgICAgZm9yIChjb25zdCBSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiYg
bW9uaXRvciA6IG1fbW9uaXRvcnMpIHsKICAgICAgICAgaWYgKG1vbml0b3ItPmRpc3BsYXlJRCgp
ICE9IGNsaWVudERpc3BsYXlJRCkKICAgICAgICAgICAgIGNvbnRpbnVlOwpAQCAtNTcsMjYgKzU3
LDI3IEBAIERpc3BsYXlSZWZyZXNoTW9uaXRvciogRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdl
cjo6Y3JlYXRlTW9uaXRvckZvckNsaWVudChEaXNwCiAgICAgUmVmUHRyPERpc3BsYXlSZWZyZXNo
TW9uaXRvcj4gbW9uaXRvciA9IERpc3BsYXlSZWZyZXNoTW9uaXRvcjo6Y3JlYXRlKGNsaWVudCk7
CiAgICAgaWYgKCFtb25pdG9yKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwogICAgIG1vbml0
b3ItPmFkZENsaWVudChjbGllbnQpOwogICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvciogcmVzdWx0
ID0gbW9uaXRvci5nZXQoKTsKICAgICBtX21vbml0b3JzLmFwcGVuZChtb25pdG9yLnJlbGVhc2Uo
KSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAotdm9pZCBEaXNwbGF5UmVmcmVzaE1vbml0b3JN
YW5hZ2VyOjpyZWdpc3RlckNsaWVudChEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQqIGNsaWVu
dCkKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6cmVnaXN0ZXJDbGllbnQoRGlz
cGxheVJlZnJlc2hNb25pdG9yQ2xpZW50JiBjbGllbnQpCiB7Ci0gICAgaWYgKCFjbGllbnQtPmhh
c0Rpc3BsYXlJRCgpKQorICAgIGlmICghY2xpZW50Lmhhc0Rpc3BsYXlJRCgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBjcmVhdGVNb25pdG9yRm9yQ2xpZW50KGNsaWVudCk7CiB9CiAKLXZvaWQg
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6dW5yZWdpc3RlckNsaWVudChEaXNwbGF5UmVm
cmVzaE1vbml0b3JDbGllbnQqIGNsaWVudCkKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFu
YWdlcjo6dW5yZWdpc3RlckNsaWVudChEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQmIGNsaWVu
dCkKIHsKLSAgICBpZiAoIWNsaWVudC0+aGFzRGlzcGxheUlEKCkpCisgICAgaWYgKCFjbGllbnQu
aGFzRGlzcGxheUlEKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFBsYXRmb3JtRGlzcGxheUlE
IGNsaWVudERpc3BsYXlJRCA9IGNsaWVudC0+ZGlzcGxheUlEKCk7CisgICAgUGxhdGZvcm1EaXNw
bGF5SUQgY2xpZW50RGlzcGxheUlEID0gY2xpZW50LmRpc3BsYXlJRCgpOwogICAgIGZvciAoc2l6
ZV90IGkgPSAwOyBpIDwgbV9tb25pdG9ycy5zaXplKCk7ICsraSkgewogICAgICAgICBSZWZQdHI8
RGlzcGxheVJlZnJlc2hNb25pdG9yPiBtb25pdG9yID0gbV9tb25pdG9yc1tpXTsKICAgICAgICAg
aWYgKG1vbml0b3ItPmRpc3BsYXlJRCgpICE9IGNsaWVudERpc3BsYXlJRCkKQEAgLTg5LDM4ICs5
MCwzOCBAQCB2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnVucmVnaXN0ZXJDbGll
bnQoRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50KgogICAgIH0KIH0KIAotYm9vbCBEaXNwbGF5
UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpzY2hlZHVsZUFuaW1hdGlvbihEaXNwbGF5UmVmcmVzaE1v
bml0b3JDbGllbnQqIGNsaWVudCkKK2Jvb2wgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6
c2NoZWR1bGVBbmltYXRpb24oRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50JiBjbGllbnQpCiB7
Ci0gICAgaWYgKCFjbGllbnQtPmhhc0Rpc3BsYXlJRCgpKQorICAgIGlmICghY2xpZW50Lmhhc0Rp
c3BsYXlJRCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBEaXNwbGF5UmVmcmVzaE1v
bml0b3IqIG1vbml0b3IgPSBjcmVhdGVNb25pdG9yRm9yQ2xpZW50KGNsaWVudCk7CiAgICAgaWYg
KCFtb25pdG9yKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBjbGllbnQtPnNldElzU2No
ZWR1bGVkKHRydWUpOworICAgIGNsaWVudC5zZXRJc1NjaGVkdWxlZCh0cnVlKTsKICAgICByZXR1
cm4gbW9uaXRvci0+cmVxdWVzdFJlZnJlc2hDYWxsYmFjaygpOwogfQogCi12b2lkIERpc3BsYXlS
ZWZyZXNoTW9uaXRvck1hbmFnZXI6OmRpc3BsYXlEaWRSZWZyZXNoKERpc3BsYXlSZWZyZXNoTW9u
aXRvciogbW9uaXRvcikKK3ZvaWQgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6ZGlzcGxh
eURpZFJlZnJlc2goRGlzcGxheVJlZnJlc2hNb25pdG9yJiBtb25pdG9yKQogewotICAgIGlmICgh
bW9uaXRvci0+c2hvdWxkQmVUZXJtaW5hdGVkKCkpCisgICAgaWYgKCFtb25pdG9yLnNob3VsZEJl
VGVybWluYXRlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzaXplX3QgbW9uaXRvckluZGV4
ID0gbV9tb25pdG9ycy5maW5kKG1vbml0b3IpOworICAgIHNpemVfdCBtb25pdG9ySW5kZXggPSBt
X21vbml0b3JzLmZpbmQoJm1vbml0b3IpOwogICAgIEFTU0VSVChtb25pdG9ySW5kZXggIT0gbm90
Rm91bmQpOwogICAgIG1fbW9uaXRvcnMucmVtb3ZlKG1vbml0b3JJbmRleCk7CiB9CiAKLXZvaWQg
RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6d2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRm
b3JtRGlzcGxheUlEIGRpc3BsYXlJRCwgRGlzcGxheVJlZnJlc2hNb25pdG9yQ2xpZW50KiBjbGll
bnQpCit2b2lkIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OndpbmRvd1NjcmVlbkRpZENo
YW5nZShQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQsIERpc3BsYXlSZWZyZXNoTW9uaXRvckNs
aWVudCYgY2xpZW50KQogewotICAgIGlmIChjbGllbnQtPmhhc0Rpc3BsYXlJRCgpICYmIGNsaWVu
dC0+ZGlzcGxheUlEKCkgPT0gZGlzcGxheUlEKQorICAgIGlmIChjbGllbnQuaGFzRGlzcGxheUlE
KCkgJiYgY2xpZW50LmRpc3BsYXlJRCgpID09IGRpc3BsYXlJRCkKICAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIHVucmVnaXN0ZXJDbGllbnQoY2xpZW50KTsKLSAgICBjbGllbnQtPnNldERpc3Bs
YXlJRChkaXNwbGF5SUQpOworICAgIGNsaWVudC5zZXREaXNwbGF5SUQoZGlzcGxheUlEKTsKICAg
ICByZWdpc3RlckNsaWVudChjbGllbnQpOwotICAgIGlmIChjbGllbnQtPmlzU2NoZWR1bGVkKCkp
CisgICAgaWYgKGNsaWVudC5pc1NjaGVkdWxlZCgpKQogICAgICAgICBzY2hlZHVsZUFuaW1hdGlv
bihjbGllbnQpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9EaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyLmgKaW5kZXggOTIxMTFj
ZTBmZDQ5NmUxZjczNjlmNmVkMDE0MTQyYmZiYTgxNGVkZS4uODAxODExYmJjMDdhYjVlNTA5NjMw
NDhiMzI3OWRmMGY1ZjgzOTkzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Rpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIuaApAQCAt
NDEsMjAgKzQxLDIwIEBAIGNsYXNzIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXIgewogcHVi
bGljOgogICAgIHN0YXRpYyBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyJiBzaGFyZWRNYW5h
Z2VyKCk7CiAgICAgCi0gICAgdm9pZCByZWdpc3RlckNsaWVudChEaXNwbGF5UmVmcmVzaE1vbml0
b3JDbGllbnQqKTsKLSAgICB2b2lkIHVucmVnaXN0ZXJDbGllbnQoRGlzcGxheVJlZnJlc2hNb25p
dG9yQ2xpZW50Kik7CisgICAgdm9pZCByZWdpc3RlckNsaWVudChEaXNwbGF5UmVmcmVzaE1vbml0
b3JDbGllbnQmKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJDbGllbnQoRGlzcGxheVJlZnJlc2hNb25p
dG9yQ2xpZW50Jik7CiAKLSAgICBib29sIHNjaGVkdWxlQW5pbWF0aW9uKERpc3BsYXlSZWZyZXNo
TW9uaXRvckNsaWVudCopOwotICAgIHZvaWQgd2luZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3Jt
RGlzcGxheUlELCBEaXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQqKTsKKyAgICBib29sIHNjaGVk
dWxlQW5pbWF0aW9uKERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVudCYpOworICAgIHZvaWQgd2lu
ZG93U2NyZWVuRGlkQ2hhbmdlKFBsYXRmb3JtRGlzcGxheUlELCBEaXNwbGF5UmVmcmVzaE1vbml0
b3JDbGllbnQmKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgRGlzcGxheVJlZnJlc2hN
b25pdG9yOwotICAgIHZvaWQgZGlzcGxheURpZFJlZnJlc2goRGlzcGxheVJlZnJlc2hNb25pdG9y
Kik7CisgICAgdm9pZCBkaXNwbGF5RGlkUmVmcmVzaChEaXNwbGF5UmVmcmVzaE1vbml0b3ImKTsK
ICAgICAKICAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyKCkgeyB9CiAgICAgdmlydHVh
bCB+RGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcigpOwogCi0gICAgRGlzcGxheVJlZnJlc2hN
b25pdG9yKiBjcmVhdGVNb25pdG9yRm9yQ2xpZW50KERpc3BsYXlSZWZyZXNoTW9uaXRvckNsaWVu
dCopOworICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvciogY3JlYXRlTW9uaXRvckZvckNsaWVudChE
aXNwbGF5UmVmcmVzaE1vbml0b3JDbGllbnQmKTsKIAogICAgIFZlY3RvcjxSZWZQdHI8RGlzcGxh
eVJlZnJlc2hNb25pdG9yPj4gbV9tb25pdG9yczsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyVXBkYXRlci5jcHAKaW5kZXgg
ZmExODcxNTM4MDg4MGY5N2NhMjZiYzljMDdhNTk5MGU5OWIzNmQ0OC4uY2Y2OTZlMGM0Nzg4OTY0
ZDJmODExNDM3NzM4NTRlYWM4ZGFlNmJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllclVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRhdGVyLmNwcApAQCAtMzEsMTQg
KzMxLDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotR3JhcGhpY3NMYXllclVwZGF0ZXI6
OkdyYXBoaWNzTGF5ZXJVcGRhdGVyKEdyYXBoaWNzTGF5ZXJVcGRhdGVyQ2xpZW50KiBjbGllbnQs
IFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkKK0dyYXBoaWNzTGF5ZXJVcGRhdGVyOjpHcmFw
aGljc0xheWVyVXBkYXRlcihHcmFwaGljc0xheWVyVXBkYXRlckNsaWVudCYgY2xpZW50LCBQbGF0
Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiAgICAgOiBtX2NsaWVudChjbGllbnQpCi0gICAgLCBt
X3NjaGVkdWxlZChmYWxzZSkKIHsKICNpZiBVU0UoUkVRVUVTVF9BTklNQVRJT05fRlJBTUVfRElT
UExBWV9NT05JVE9SKQotICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnNoYXJlZE1h
bmFnZXIoKS5yZWdpc3RlckNsaWVudCh0aGlzKTsKLSAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JN
YW5hZ2VyOjpzaGFyZWRNYW5hZ2VyKCkud2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCwg
dGhpcyk7Ci0gICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigp
LnNjaGVkdWxlQW5pbWF0aW9uKHRoaXMpOworICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFn
ZXI6OnNoYXJlZE1hbmFnZXIoKS5yZWdpc3RlckNsaWVudCgqdGhpcyk7CisgICAgRGlzcGxheVJl
ZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLndpbmRvd1NjcmVlbkRpZENoYW5n
ZShkaXNwbGF5SUQsICp0aGlzKTsKKyAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2VyOjpz
aGFyZWRNYW5hZ2VyKCkuc2NoZWR1bGVBbmltYXRpb24oKnRoaXMpOwogI2Vsc2UKICAgICBVTlVT
RURfUEFSQU0oZGlzcGxheUlEKTsKICNlbmRpZgpAQCAtNTUsNyArNTQsNyBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJVcGRhdGVyOjpzY2hlZHVsZVVwZGF0ZSgpCiAgICAgICAgIHJldHVybjsKIAogI2lm
IFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCi0gICAgRGlzcGxh
eVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLnNjaGVkdWxlQW5pbWF0aW9u
KHRoaXMpOworICAgIERpc3BsYXlSZWZyZXNoTW9uaXRvck1hbmFnZXI6OnNoYXJlZE1hbmFnZXIo
KS5zY2hlZHVsZUFuaW1hdGlvbigqdGhpcyk7CiAjZW5kaWYKICAgICBtX3NjaGVkdWxlZCA9IHRy
dWU7CiB9CkBAIC02Myw3ICs2Miw3IEBAIHZvaWQgR3JhcGhpY3NMYXllclVwZGF0ZXI6OnNjaGVk
dWxlVXBkYXRlKCkKIHZvaWQgR3JhcGhpY3NMYXllclVwZGF0ZXI6OnNjcmVlbkRpZENoYW5nZShQ
bGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCiB7CiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKLSAgICBEaXNwbGF5UmVmcmVzaE1vbml0b3JNYW5hZ2Vy
OjpzaGFyZWRNYW5hZ2VyKCkud2luZG93U2NyZWVuRGlkQ2hhbmdlKGRpc3BsYXlJRCwgdGhpcyk7
CisgICAgRGlzcGxheVJlZnJlc2hNb25pdG9yTWFuYWdlcjo6c2hhcmVkTWFuYWdlcigpLndpbmRv
d1NjcmVlbkRpZENoYW5nZShkaXNwbGF5SUQsICp0aGlzKTsKICNlbHNlCiAgICAgVU5VU0VEX1BB
UkFNKGRpc3BsYXlJRCk7CiAjZW5kaWYKQEAgLTc1LDE3ICs3NCwxNCBAQCB2b2lkIEdyYXBoaWNz
TGF5ZXJVcGRhdGVyOjpkaXNwbGF5UmVmcmVzaEZpcmVkKGRvdWJsZSB0aW1lc3RhbXApCiAgICAg
VU5VU0VEX1BBUkFNKHRpbWVzdGFtcCk7CiAgICAgbV9zY2hlZHVsZWQgPSBmYWxzZTsKICAgICAK
LSAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5mbHVzaExheWVyc1Nvb24odGhp
cyk7CisgICAgbV9jbGllbnQuZmx1c2hMYXllcnNTb29uKCp0aGlzKTsKIH0KICNlbmRpZgogCiAj
aWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKLU9wdGlvbmFs
PFJlZlB0cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+PiBHcmFwaGljc0xheWVyVXBkYXRlcjo6Y3Jl
YXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29u
c3QKK1Bhc3NSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBHcmFwaGljc0xheWVyVXBkYXRl
cjo6Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJ
RCkgY29uc3QKIHsKLSAgICBpZiAoIW1fY2xpZW50KQotICAgICAgICByZXR1cm4gT3B0aW9uYWw8
UmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4+KG51bGxwdHIpOwotICAgIHJldHVybiBtX2Ns
aWVudC0+Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKGRpc3BsYXlJRCk7CisgICAgcmV0dXJu
IG1fY2xpZW50LmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQpOwogfQogI2Vu
ZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzTGF5ZXJVcGRhdGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFw
aGljc0xheWVyVXBkYXRlci5oCmluZGV4IGI2ZGJkODg4ZDYzOWE1ZDBmM2ZkOTFhZjdkZDFiNmU0
MmMyNDQyYTkuLjBmNDA5ZmU0NGRiN2E2MjExOGE3ZTUyYmZjZjU2ZjdiZTVkMzNiNGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJVcGRh
dGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXll
clVwZGF0ZXIuaApAQCAtMzYsOSArMzYsOSBAQCBjbGFzcyBHcmFwaGljc0xheWVyVXBkYXRlcjsK
IGNsYXNzIEdyYXBoaWNzTGF5ZXJVcGRhdGVyQ2xpZW50IHsKIHB1YmxpYzoKICAgICB2aXJ0dWFs
IH5HcmFwaGljc0xheWVyVXBkYXRlckNsaWVudCgpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBmbHVz
aExheWVyc1Nvb24oR3JhcGhpY3NMYXllclVwZGF0ZXIqKSA9IDA7CisgICAgdmlydHVhbCB2b2lk
IGZsdXNoTGF5ZXJzU29vbihHcmFwaGljc0xheWVyVXBkYXRlciYpID0gMDsKICNpZiBVU0UoUkVR
VUVTVF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQotICAgIHZpcnR1YWwgT3B0aW9u
YWw8UmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9u
aXRvcihQbGF0Zm9ybURpc3BsYXlJRCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxEaXNwbGF5UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0
Zm9ybURpc3BsYXlJRCkgY29uc3QgPSAwOwogI2VuZGlmCiB9OwogCkBAIC00OCwxNCArNDgsMTQg
QEAgY2xhc3MgR3JhcGhpY3NMYXllclVwZGF0ZXIKICNlbmRpZgogewogcHVibGljOgotICAgIEdy
YXBoaWNzTGF5ZXJVcGRhdGVyKEdyYXBoaWNzTGF5ZXJVcGRhdGVyQ2xpZW50KiwgUGxhdGZvcm1E
aXNwbGF5SUQpOworICAgIEdyYXBoaWNzTGF5ZXJVcGRhdGVyKEdyYXBoaWNzTGF5ZXJVcGRhdGVy
Q2xpZW50JiwgUGxhdGZvcm1EaXNwbGF5SUQpOwogICAgIHZpcnR1YWwgfkdyYXBoaWNzTGF5ZXJV
cGRhdGVyKCk7CiAKICAgICB2b2lkIHNjaGVkdWxlVXBkYXRlKCk7CiAgICAgdm9pZCBzY3JlZW5E
aWRDaGFuZ2UoUGxhdGZvcm1EaXNwbGF5SUQpOwogCiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9O
X0ZSQU1FX0RJU1BMQVlfTU9OSVRPUikKLSAgICB2aXJ0dWFsIE9wdGlvbmFsPFJlZlB0cjxEaXNw
bGF5UmVmcmVzaE1vbml0b3I+PiBjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1E
aXNwbGF5SUQpIGNvbnN0IG92ZXJyaWRlOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxEaXNwbGF5
UmVmcmVzaE1vbml0b3I+IGNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3Bs
YXlJRCkgY29uc3Qgb3ZlcnJpZGU7CiAjZW5kaWYKIAogcHJpdmF0ZToKQEAgLTYzLDggKzYzLDgg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGxheVJlZnJlc2hGaXJlZChkb3VibGUg
dGltZXN0YW1wKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgR3JhcGhpY3NMYXllclVwZGF0ZXJD
bGllbnQqIG1fY2xpZW50OwotICAgIGJvb2wgbV9zY2hlZHVsZWQ7CisgICAgR3JhcGhpY3NMYXll
clVwZGF0ZXJDbGllbnQmIG1fY2xpZW50OworICAgIGJvb2wgbV9zY2hlZHVsZWQgeyBmYWxzZSB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcAppbmRleCAzYzJjNzlkZjcxZDVlYmE0
NGVkOTE2ODdhNTFjMzkwOWIwODI1MTM3Li41YjM4ODY2M2JhM2Y2M2FjZGM2YzJhNGU2MmRhMThk
YmFlMjIxYjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcApAQCAtMjgwLDcgKzI4MCw2IEBAIFJlbmRlckxheWVyQ29tcG9zaXRv
cjo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yKFJlbmRlclZpZXcmIHJlbmRlclZpZXcpCiAgICAgLCBt
X3VwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXIoKnRoaXMsICZSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnVwZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzVGltZXJGaXJlZCkKICAgICAsIG1faGFzQWNjZWxl
cmF0ZWRDb21wb3NpdGluZyh0cnVlKQogICAgICwgbV9jb21wb3NpdGluZ1RyaWdnZXJzKHN0YXRp
Y19jYXN0PENocm9tZUNsaWVudDo6Q29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3M+KENocm9tZUNsaWVu
dDo6QWxsVHJpZ2dlcnMpKQotICAgICwgbV9jb21wb3NpdGVkTGF5ZXJDb3VudCgwKQogICAgICwg
bV9zaG93RGVidWdCb3JkZXJzKGZhbHNlKQogICAgICwgbV9zaG93UmVwYWludENvdW50ZXIoZmFs
c2UpCiAgICAgLCBtX2FjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoZmFsc2UpCkBAIC0yOTMsMjAg
KzI5MiwxMiBAQCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OlJlbmRlckxheWVyQ29tcG9zaXRvcihS
ZW5kZXJWaWV3JiByZW5kZXJWaWV3KQogICAgICwgbV9pblBvc3RMYXlvdXRVcGRhdGUoZmFsc2Up
CiAgICAgLCBtX3N1YmZyYW1lU2Nyb2xsTGF5ZXJzTmVlZFJlYXR0YWNoKGZhbHNlKQogICAgICwg
bV9pc1RyYWNraW5nUmVwYWludHMoZmFsc2UpCi0gICAgLCBtX2xheWVyc1dpdGhUaWxlZEJhY2tp
bmdDb3VudCgwKQogICAgICwgbV9yb290TGF5ZXJBdHRhY2htZW50KFJvb3RMYXllclVuYXR0YWNo
ZWQpCiAgICAgLCBtX2xheWVyRmx1c2hUaW1lcigqdGhpcywgJlJlbmRlckxheWVyQ29tcG9zaXRv
cjo6bGF5ZXJGbHVzaFRpbWVyRmlyZWQpCiAgICAgLCBtX2xheWVyRmx1c2hUaHJvdHRsaW5nRW5h
YmxlZChmYWxzZSkKICAgICAsIG1fbGF5ZXJGbHVzaFRocm90dGxpbmdUZW1wb3JhcmlseURpc2Fi
bGVkRm9ySW50ZXJhY3Rpb24oZmFsc2UpCiAgICAgLCBtX2hhc1BlbmRpbmdMYXllckZsdXNoKGZh
bHNlKQogICAgICwgbV9wYWludFJlbGF0ZWRNaWxlc3RvbmVzVGltZXIoKnRoaXMsICZSZW5kZXJM
YXllckNvbXBvc2l0b3I6OnBhaW50UmVsYXRlZE1pbGVzdG9uZXNUaW1lckZpcmVkKQotI2lmICFM
T0dfRElTQUJMRUQKLSAgICAsIG1fcm9vdExheWVyVXBkYXRlQ291bnQoMCkKLSAgICAsIG1fb2Js
aWdhdGVDb21wb3NpdGVkTGF5ZXJDb3VudCgwKQotICAgICwgbV9zZWNvbmRhcnlDb21wb3NpdGVk
TGF5ZXJDb3VudCgwKQotICAgICwgbV9vYmxpZ2F0b3J5QmFja2luZ1N0b3JlQnl0ZXMoMCkKLSAg
ICAsIG1fc2Vjb25kYXJ5QmFja2luZ1N0b3JlQnl0ZXMoMCkKLSNlbmRpZgogewogfQogCkBAIC00
OTEsNiArNDgyLDcgQEAgdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZsdXNoUGVuZGluZ0xh
eWVyQ2hhbmdlcyhib29sIGlzRmx1c2hSb290KQogICAgICAgICBjbGllbnQtPmRpZEZsdXNoQ29t
cG9zaXRpbmdMYXllcnMoKTsKICNlbmRpZgogCisgICAgKyttX2xheWVyRmx1c2hDb3VudDsKICAg
ICBzdGFydExheWVyRmx1c2hUaW1lcklmTmVlZGVkKCk7CiB9CiAKQEAgLTYwOCwxMyArNjAwLDEz
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpub3RpZnlGbHVzaEJlZm9yZURpc3BsYXlS
ZWZyZXNoKGNvbnN0IEdyYXBoaWNzTGF5ZXIqCiAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gdGhp
cy0+cGFnZSgpKQogICAgICAgICAgICAgZGlzcGxheUlEID0gcGFnZS0+Y2hyb21lKCkuZGlzcGxh
eUlEKCk7CiAKLSAgICAgICAgbV9sYXllclVwZGF0ZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPEdyYXBo
aWNzTGF5ZXJVcGRhdGVyPih0aGlzLCBkaXNwbGF5SUQpOworICAgICAgICBtX2xheWVyVXBkYXRl
ciA9IHN0ZDo6bWFrZV91bmlxdWU8R3JhcGhpY3NMYXllclVwZGF0ZXI+KCp0aGlzLCBkaXNwbGF5
SUQpOwogICAgIH0KICAgICAKICAgICBtX2xheWVyVXBkYXRlci0+c2NoZWR1bGVVcGRhdGUoKTsK
IH0KIAotdm9pZCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmZsdXNoTGF5ZXJzU29vbihHcmFwaGlj
c0xheWVyVXBkYXRlciopCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Zmx1c2hMYXllcnNT
b29uKEdyYXBoaWNzTGF5ZXJVcGRhdGVyJikKIHsKICAgICBzY2hlZHVsZUxheWVyRmx1c2godHJ1
ZSk7CiB9CkBAIC00MTcxLDE1ICs0MTYzLDI4IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpwYWludFJlbGF0ZWRNaWxlc3RvbmVzVGltZXJGaXJlZCgpCiB9CiAKICNpZiBVU0UoUkVRVUVT
VF9BTklNQVRJT05fRlJBTUVfRElTUExBWV9NT05JVE9SKQotT3B0aW9uYWw8UmVmUHRyPERpc3Bs
YXlSZWZyZXNoTW9uaXRvcj4+IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6Y3JlYXRlRGlzcGxheVJl
ZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEIGRpc3BsYXlJRCkgY29uc3QKK1Bhc3NSZWZQ
dHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPiBSZW5kZXJMYXllckNvbXBvc2l0b3I6OmNyZWF0ZURp
c3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpIGNvbnN0CiB7
CiAgICAgRnJhbWUmIGZyYW1lID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLmZyYW1lKCk7CiAg
ICAgUGFnZSogcGFnZSA9IGZyYW1lLnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCi0gICAgICAgIHJl
dHVybiBPcHRpb25hbDxSZWZQdHI8RGlzcGxheVJlZnJlc2hNb25pdG9yPj4obnVsbHB0cik7Cisg
ICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmV0dXJuIE9wdGlvbmFsPFJlZlB0cjxEaXNw
bGF5UmVmcmVzaE1vbml0b3I+PihwYWdlLT5jaHJvbWUoKS5jbGllbnQoKS5jcmVhdGVEaXNwbGF5
UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKSk7CisgICAgaWYgKGF1dG8gbW9uaXRvciA9IHBhZ2Ut
PmNocm9tZSgpLmNsaWVudCgpLmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihkaXNwbGF5SUQp
KQorICAgICAgICByZXR1cm4gbW9uaXRvcjsKKworICAgIHJldHVybiBEaXNwbGF5UmVmcmVzaE1v
bml0b3I6OmNyZWF0ZURlZmF1bHREaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKTsKIH0K
ICNlbmRpZgogCit2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6c3RhcnRUcmFja2luZ0xheWVy
Rmx1c2hlcygpCit7CisgICAgbV9sYXllckZsdXNoQ291bnQgPSAwOworfQorCit1bnNpZ25lZCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OmxheWVyRmx1c2hDb3VudCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fbGF5ZXJGbHVzaENvdW50OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKaW5kZXgg
NmI2MzBmNjIwYjEwOGVhM2UzZjdjYWMwNDQ5Mjg0ZTViYjEyYTRmOS4uZWVlNTI1MzZiOGJiYmNk
M2NjYjI2NTQzMDVkZWU3ZWIwMGI3OTRlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaApAQCAtMzA3LDYgKzMwNywxMCBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRSb290RXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoY29uc3QgQ29sb3ImKTsK
ICAgICBDb2xvciByb290RXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdCB7IHJldHVybiBt
X3Jvb3RFeHRlbmRlZEJhY2tncm91bmRDb2xvcjsgfQogCisgICAgLy8gRm9yIHRlc3RpbmcuCisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydFRyYWNraW5nTGF5ZXJGbHVzaGVzKCk7CisgICAg
V0VCQ09SRV9FWFBPUlQgdW5zaWduZWQgbGF5ZXJGbHVzaENvdW50KCkgY29uc3Q7CisKIHByaXZh
dGU6CiAgICAgY2xhc3MgT3ZlcmxhcE1hcDsKICAgICBzdHJ1Y3QgQ29tcG9zaXRpbmdTdGF0ZTsK
QEAgLTMxOSw3ICszMjMsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1RyYWNraW5n
UmVwYWludHMoKSBjb25zdCBvdmVycmlkZTsKICAgICAKICAgICAvLyBHcmFwaGljc0xheWVyVXBk
YXRlckNsaWVudCBpbXBsZW1lbnRhdGlvbgotICAgIHZpcnR1YWwgdm9pZCBmbHVzaExheWVyc1Nv
b24oR3JhcGhpY3NMYXllclVwZGF0ZXIqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgZmx1
c2hMYXllcnNTb29uKEdyYXBoaWNzTGF5ZXJVcGRhdGVyJikgb3ZlcnJpZGU7CiAKICAgICAvLyBX
aGV0aGVyIHRoZSBnaXZlbiBSTCBuZWVkcyBhIGNvbXBvc2l0aW5nIGxheWVyLgogICAgIGJvb2wg
bmVlZHNUb0JlQ29tcG9zaXRlZChjb25zdCBSZW5kZXJMYXllciYsIFJlbmRlckxheWVyOjpWaWV3
cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbiogPSBudWxscHRyKSBjb25zdDsKQEAg
LTM5OSw3ICs0MDMsNyBAQCBwcml2YXRlOgogICAgIFNjcm9sbGluZ0Nvb3JkaW5hdG9yKiBzY3Jv
bGxpbmdDb29yZGluYXRvcigpIGNvbnN0OwogCiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZS
QU1FX0RJU1BMQVlfTU9OSVRPUikKLSAgICBPcHRpb25hbDxSZWZQdHI8RGlzcGxheVJlZnJlc2hN
b25pdG9yPj4gY3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBj
b25zdCBvdmVycmlkZTsKKyAgICBQYXNzUmVmUHRyPERpc3BsYXlSZWZyZXNoTW9uaXRvcj4gY3Jl
YXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBjb25zdCBvdmVycmlk
ZTsKICNlbmRpZgogCiAgICAgYm9vbCByZXF1aXJlc0NvbXBvc2l0aW5nRm9yQW5pbWF0aW9uKFJl
bmRlckxheWVyTW9kZWxPYmplY3QmKSBjb25zdDsKQEAgLTQ3Myw3ICs0NzcsNiBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9oYXNBY2NlbGVyYXRlZENvbXBvc2l0aW5nOwogICAgIENocm9tZUNsaWVu
dDo6Q29tcG9zaXRpbmdUcmlnZ2VyRmxhZ3MgbV9jb21wb3NpdGluZ1RyaWdnZXJzOwogCi0gICAg
aW50IG1fY29tcG9zaXRlZExheWVyQ291bnQ7CiAgICAgYm9vbCBtX3Nob3dEZWJ1Z0JvcmRlcnM7
CiAgICAgYm9vbCBtX3Nob3dSZXBhaW50Q291bnRlcjsKICAgICBib29sIG1fYWNjZWxlcmF0ZWRE
cmF3aW5nRW5hYmxlZDsKQEAgLTQ5Miw3ICs0OTUsOSBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBt
X2lzVHJhY2tpbmdSZXBhaW50czsgLy8gVXNlZCBmb3IgdGVzdGluZy4KIAotICAgIHVuc2lnbmVk
IG1fbGF5ZXJzV2l0aFRpbGVkQmFja2luZ0NvdW50OworICAgIGludCBtX2NvbXBvc2l0ZWRMYXll
ckNvdW50IHsgMCB9OworICAgIHVuc2lnbmVkIG1fbGF5ZXJzV2l0aFRpbGVkQmFja2luZ0NvdW50
IHsgMCB9OworICAgIHVuc2lnbmVkIG1fbGF5ZXJGbHVzaENvdW50IHsgMCB9OwogCiAgICAgUm9v
dExheWVyQXR0YWNobWVudCBtX3Jvb3RMYXllckF0dGFjaG1lbnQ7CiAKQEAgLTUzMywxMSArNTM4
LDExIEBAIHByaXZhdGU6CiAgICAgVGltZXIgbV9wYWludFJlbGF0ZWRNaWxlc3RvbmVzVGltZXI7
CiAKICNpZiAhTE9HX0RJU0FCTEVECi0gICAgaW50IG1fcm9vdExheWVyVXBkYXRlQ291bnQ7Ci0g
ICAgaW50IG1fb2JsaWdhdGVDb21wb3NpdGVkTGF5ZXJDb3VudDsgLy8gY291bnQgb2YgbGF5ZXIg
dGhhdCBoYXZlIHRvIGJlIGNvbXBvc2l0ZWQuCi0gICAgaW50IG1fc2Vjb25kYXJ5Q29tcG9zaXRl
ZExheWVyQ291bnQ7IC8vIGNvdW50IG9mIGxheWVycyB0aGF0IGhhdmUgdG8gYmUgY29tcG9zaXRl
ZCBiZWNhdXNlIG9mIHN0YWNraW5nIG9yIG92ZXJsYXAuCi0gICAgZG91YmxlIG1fb2JsaWdhdG9y
eUJhY2tpbmdTdG9yZUJ5dGVzOwotICAgIGRvdWJsZSBtX3NlY29uZGFyeUJhY2tpbmdTdG9yZUJ5
dGVzOworICAgIGludCBtX3Jvb3RMYXllclVwZGF0ZUNvdW50IHsgMCB9OworICAgIGludCBtX29i
bGlnYXRlQ29tcG9zaXRlZExheWVyQ291bnQgeyAwIH07IC8vIGNvdW50IG9mIGxheWVyIHRoYXQg
aGF2ZSB0byBiZSBjb21wb3NpdGVkLgorICAgIGludCBtX3NlY29uZGFyeUNvbXBvc2l0ZWRMYXll
ckNvdW50IHsgMCB9OyAvLyBjb3VudCBvZiBsYXllcnMgdGhhdCBoYXZlIHRvIGJlIGNvbXBvc2l0
ZWQgYmVjYXVzZSBvZiBzdGFja2luZyBvciBvdmVybGFwLgorICAgIGRvdWJsZSBtX29ibGlnYXRv
cnlCYWNraW5nU3RvcmVCeXRlcyB7IDAgfTsKKyAgICBkb3VibGUgbV9zZWNvbmRhcnlCYWNraW5n
U3RvcmVCeXRlcyB7IDAgfTsKICNlbmRpZgogCiAgICAgQ29sb3IgbV9yb290RXh0ZW5kZWRCYWNr
Z3JvdW5kQ29sb3I7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggN2JmZjll
YWI4NmQ1N2M0ODUxNDYwNjllNGQwNGVjZmUxNGY0ZmYyYS4uNWNkOGJkOWQ1MmVkMzkyYzhiMDNl
NWYyYjYzMTA3NDIyMzZkYTczZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtOTAsNiArOTAsNyBAQAogI2luY2x1ZGUgIlBzZXVkb0VsZW1lbnQuaCIKICNpbmNsdWRlICJS
YW5nZS5oIgogI2luY2x1ZGUgIlJlbmRlckVtYmVkZGVkT2JqZWN0LmgiCisjaW5jbHVkZSAiUmVu
ZGVyTGF5ZXJDb21wb3NpdG9yLmgiCiAjaW5jbHVkZSAiUmVuZGVyTWVudUxpc3QuaCIKICNpbmNs
dWRlICJSZW5kZXJUcmVlQXNUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgpAQCAtMjA2
Niw2ICsyMDY3LDM2IEBAIHZvaWQgSW50ZXJuYWxzOjpzdG9wVHJhY2tpbmdSZXBhaW50cyhFeGNl
cHRpb25Db2RlJiBlYykKICAgICBmcmFtZVZpZXctPnNldFRyYWNrc1JlcGFpbnRzKGZhbHNlKTsK
IH0KIAordm9pZCBJbnRlcm5hbHM6OnN0YXJ0VHJhY2tpbmdMYXllckZsdXNoZXMoRXhjZXB0aW9u
Q29kZSYgZWMpCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gY29udGV4dERvY3VtZW50KCk7
CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSkgeworICAgICAgICBlYyA9
IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIFJlbmRl
clZpZXcqIHJlbmRlclZpZXcgPSBkb2N1bWVudC0+cmVuZGVyVmlldygpOworICAgIGlmICghcmVu
ZGVyVmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgcmVuZGVyVmlldy0+Y29tcG9zaXRvcigp
LnN0YXJ0VHJhY2tpbmdMYXllckZsdXNoZXMoKTsKK30KKwordW5zaWduZWQgbG9uZyBJbnRlcm5h
bHM6OmxheWVyRmx1c2hDb3VudChFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBEb2N1bWVudCog
ZG9jdW1lbnQgPSBjb250ZXh0RG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1
bWVudC0+dmlldygpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAg
ICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBSZW5kZXJWaWV3KiByZW5kZXJWaWV3ID0gZG9jdW1l
bnQtPnJlbmRlclZpZXcoKTsKKyAgICBpZiAoIXJlbmRlclZpZXcpCisgICAgICAgIHJldHVybiAw
OworCisgICAgcmV0dXJuIHJlbmRlclZpZXctPmNvbXBvc2l0b3IoKS5sYXllckZsdXNoQ291bnQo
KTsKK30KKwogdm9pZCBJbnRlcm5hbHM6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0c0FuZFJ1blBvc3RMYXlvdXRUYXNrcyhFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICB1cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHNBbmRSdW5Qb3N0TGF5b3V0VGFza3MobnVs
bHB0ciwgZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggN2Q3OTUwYmRmNDhm
OThhMzQ3MDU1MzFlMzcyYmY3Zjk2YmU3OGZmZS4uZjhkNDI5ZWE5MTJlMzMwZGI2NmEzZThmMjU1
YmVjMGM3NmM1MDJlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0yOTQsNiAr
Mjk0LDEwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc3RhcnRUcmFja2luZ1JlcGFpbnRzKEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHN0b3BUcmFja2luZ1JlcGFpbnRzKEV4Y2VwdGlvbkNvZGUm
KTsKKworICAgIHZvaWQgc3RhcnRUcmFja2luZ0xheWVyRmx1c2hlcyhFeGNlcHRpb25Db2RlJik7
CisgICAgdW5zaWduZWQgbG9uZyBsYXllckZsdXNoQ291bnQoRXhjZXB0aW9uQ29kZSYpOworICAg
IAogICAgIHZvaWQgdXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzQW5kUnVuUG9z
dExheW91dFRhc2tzKEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0c0FuZFJ1blBvc3RMYXlvdXRUYXNrcyhOb2RlKiwgRXhjZXB0aW9u
Q29kZSYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMGFmZmNiYmU5
NGI1OTgxNTk1YzE1ZjQ3YTdjOGVhOTkwOGUwZDlhYi4uZTIxNmU1MGQ4ZGM4YmE2Zjc3MDI1OGVi
ZTkyNDYxOGI4OWIxN2EzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAt
MjcxLDYgKzI3MSw5IEBAIGVudW0gUmVzb3VyY2VMb2FkUHJpb3JpdHkgewogICAgIFtSYWlzZXNF
eGNlcHRpb25dIHZvaWQgc3RhcnRUcmFja2luZ1JlcGFpbnRzKCk7CiAgICAgW1JhaXNlc0V4Y2Vw
dGlvbl0gdm9pZCBzdG9wVHJhY2tpbmdSZXBhaW50cygpOwogCisgICAgW1JhaXNlc0V4Y2VwdGlv
bl0gdm9pZCBzdGFydFRyYWNraW5nTGF5ZXJGbHVzaGVzKCk7CisgICAgW1JhaXNlc0V4Y2VwdGlv
bl0gdW5zaWduZWQgbG9uZyBsYXllckZsdXNoQ291bnQoKTsKKwogICAgIC8vIFF1ZXJ5IGlmIGEg
dGltZXIgaXMgY3VycmVudGx5IHRocm90dGxlZCwgdG8gZGVidWcgdGltZXIgdGhyb3R0bGluZy4K
ICAgICBbUmFpc2VzRXhjZXB0aW9uXSBib29sZWFuIGlzVGltZXJUaHJvdHRsZWQobG9uZyB0aW1l
ckhhbmRsZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCBmOTFiZmZlM2EzN2Q3NjAx
ZTJjOWVjOWQwZWJkY2UzMjFiNGE2ZDY2Li42ZWE3MTkxZGMyNGUxY2I5MGE1YTNkN2I2MGEzNjky
MDg1NThmOTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCkBAIC04NTAsOSArODUwLDkgQEAg
R3JhcGhpY3NMYXllckZhY3RvcnkqIFdlYkNocm9tZUNsaWVudDo6Z3JhcGhpY3NMYXllckZhY3Rv
cnkoKSBjb25zdAogfQogCiAjaWYgVVNFKFJFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FX0RJU1BMQVlf
TU9OSVRPUikKLU9wdGlvbmFsPFJlZlB0cjxXZWJDb3JlOjpEaXNwbGF5UmVmcmVzaE1vbml0b3I+
PiBXZWJDaHJvbWVDbGllbnQ6OmNyZWF0ZURpc3BsYXlSZWZyZXNoTW9uaXRvcihQbGF0Zm9ybURp
c3BsYXlJRCBkaXNwbGF5SUQpIGNvbnN0CitQYXNzUmVmUHRyPFdlYkNvcmU6OkRpc3BsYXlSZWZy
ZXNoTW9uaXRvcj4gV2ViQ2hyb21lQ2xpZW50OjpjcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3Io
UGxhdGZvcm1EaXNwbGF5SUQgZGlzcGxheUlEKSBjb25zdAogewotICAgIHJldHVybiBPcHRpb25h
bDxSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPj4obV9wYWdlLT5kcmF3aW5n
QXJlYSgpLT5jcmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoZGlzcGxheUlEKSk7CisgICAgcmV0
dXJuIG1fcGFnZS0+ZHJhd2luZ0FyZWEoKS0+Y3JlYXRlRGlzcGxheVJlZnJlc2hNb25pdG9yKGRp
c3BsYXlJRCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggNTdiMTVmYmM2
NGJiOGIwNjg3NWZlNTZhNGZjYjViYzQ1YjA2NWE4NC4uMWNlZGYyNDFkZWI1ZTNmODZlNmFlMGU1
NTAzMmVhOWFiNWJhMDU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0yMTcsNyArMjE3LDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgYWRqdXN0TGF5ZXJGbHVzaFRocm90dGxpbmco
V2ViQ29yZTo6TGF5ZXJGbHVzaFRocm90dGxlU3RhdGU6OkZsYWdzKSBvdmVycmlkZTsKIAogI2lm
IFVTRShSRVFVRVNUX0FOSU1BVElPTl9GUkFNRV9ESVNQTEFZX01PTklUT1IpCi0gICAgdmlydHVh
bCBPcHRpb25hbDxSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPj4gY3JlYXRl
RGlzcGxheVJlZnJlc2hNb25pdG9yKFBsYXRmb3JtRGlzcGxheUlEKSBjb25zdCBvdmVycmlkZTsK
KyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8V2ViQ29yZTo6RGlzcGxheVJlZnJlc2hNb25pdG9yPiBj
cmVhdGVEaXNwbGF5UmVmcmVzaE1vbml0b3IoUGxhdGZvcm1EaXNwbGF5SUQpIGNvbnN0IG92ZXJy
aWRlOwogI2VuZGlmCiAKICAgICB2aXJ0dWFsIENvbXBvc2l0aW5nVHJpZ2dlckZsYWdzIGFsbG93
ZWRDb21wb3NpdGluZ1RyaWdnZXJzKCkgY29uc3Qgb3ZlcnJpZGUKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5NGVhN2Q5YjE2
ZmRkY2M5MTcwYjJkMTI4NmU5NGFhMGI2OGZmMThhLi40YjUyNjFhZmRhMjg3ODM4YmE5NGNhMWFk
MWRjYTQ3NTZhODI4MTllIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMDQtMTggIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAo
cjE4MTY1Nik6IEFuaW1hdGVkIHRpbGVkIGxheWVycyBhcmUgbWlzc2luZyBjb250ZW50CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDM5MTEKKyAgICAg
ICAgcmRhcjovL3Byb2JsZW0vMjA1OTYzMjgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFRlc3QgdGhhdCBhbmltYXRlcyBhIHRpbGVkIGxh
eWVyLCBhbmQgY2hlY2tzIHRoYXQgbGF5ZXIgZmx1c2hlcyBvY2N1ciB3aGlsZSB0aGUKKyAgICAg
ICAgYW5pbWF0aW9uIGlzIHJ1bm5pbmcuCisKKyAgICAgICAgKiBjb21wb3NpdGluZy9hbmltYXRp
b24vYW5pbWF0aW9uLWJhY2tpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjb21w
b3NpdGluZy9hbmltYXRpb24vYW5pbWF0aW9uLWJhY2tpbmcuaHRtbDogQWRkZWQuCisKIDIwMTUt
MDQtMTYgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbaU9TXSBEZWxldGUgaGFyZGNvZGVkIGZvbnQgZmFsbGJhY2sgdGFibGVzCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9hbmltYXRpb24vYW5pbWF0aW9uLWJhY2tpbmctZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvYW5pbWF0aW9uL2FuaW1hdGlvbi1i
YWNraW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjVkMmQxZjMzNTlmMjBmZjBjZmM0YWYx
YjU2MjUzZTgyMzQxMDIxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvYW5pbWF0aW9uL2FuaW1hdGlvbi1iYWNraW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBA
CitTYXcgbGF5ZXIgZmx1c2hlcyBkdXJpbmcgYW5pbWF0aW9uOiBQQVNTCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9hbmltYXRpb24vYW5pbWF0aW9uLWJhY2tpbmcuaHRtbCBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2FuaW1hdGlvbi9hbmltYXRpb24tYmFja2luZy5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjcxYWMxYTJlNDRiZmJkNmJmY2M1OGMwMTFmYmViNTNjNmZmMDZiNzcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9hbmltYXRpb24vYW5pbWF0
aW9uLWJhY2tpbmcuaHRtbApAQCAtMCwwICsxLDU0IEBACis8IURPQ1RZUEUgaHRtbD4KKworPGh0
bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIC5tb3ZlciB7CisgICAgICAgICAgICBo
ZWlnaHQ6IDEwMHB4OworICAgICAgICAgICAgd2lkdGg6IDMwMDBweDsKKyAgICAgICAgICAgIGJh
Y2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFj
azsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgLm1vdmVyLmFuaW1hdGluZyB7CisgICAg
ICAgICAgICBhbmltYXRpb246IG1vdmUgMC4yNXMgZm9yd2FyZHMgbGluZWFyOworICAgICAgICB9
CisgICAgICAgIAorICAgICAgICBAa2V5ZnJhbWVzIG1vdmUgeworICAgICAgICAgICAgZnJvbSB7
IHRyYW5zZm9ybTogdHJhbnNsYXRlWCgxMDAwcHgpOyB9CisgICAgICAgICAgICB0byB7IHRyYW5z
Zm9ybTogdHJhbnNsYXRlWCgtMjAwMHB4KTsgfQorICAgICAgICB9CisgICAgPC9zdHlsZT4KKyAg
ICA8c2NyaXB0PgorICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgIH0KKyAgICAgICAgZnVuY3Rpb24gZG9UZXN0KCkKKyAgICAgICAg
eworICAgICAgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgdmFyIG1vdmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ21vdmVyJyk7CisgICAg
ICAgICAgICAgICAgbW92ZXIuYWRkRXZlbnRMaXN0ZW5lcignYW5pbWF0aW9uc3RhcnQnLCBmdW5j
dGlvbigpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc3RhcnRUcmFja2luZ0xheWVyRmx1c2hlcygp
OworICAgICAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICAgICAgbW92ZXIuYWRkRXZlbnRM
aXN0ZW5lcignYW5pbWF0aW9uZW5kJywgZnVuY3Rpb24oKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZmx1
c2hDb3VudCA9IGludGVybmFscy5sYXllckZsdXNoQ291bnQoKTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS50ZXh0Q29udGVudCA9IGZs
dXNoQ291bnQgPyAiU2F3IGxheWVyIGZsdXNoZXMgZHVyaW5nIGFuaW1hdGlvbjogUEFTUyIgOiAi
Tm8gbGF5ZXIgZmx1c2hlcyBkdXJpbmcgYW5pbWF0aW9uOiBGQUlMIjsKKyAgICAgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAg
ICAgICB9KTsKKyAgICAgICAgICAgICAgICBtb3Zlci5jbGFzc0xpc3QuYWRkKCdhbmltYXRpbmcn
KTsKKyAgICAgICAgICAgIH0sIDApOworICAgICAgICB9CisgICAgICAgIHdpbmRvdy5hZGRFdmVu
dExpc3RlbmVyKCdsb2FkJywgZG9UZXN0LCBmYWxzZSk7CisgICAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxkaXYgaWQ9Im1vdmVyIiBjbGFzcz0ibW92ZXIiPjwvZGl2PgorPGRpdiBpZD0i
cmVzdWx0Ij5UaGlzIHRlc3QgbXVzdCBiZSBydW4gaW4gdGhlIHRlc3QgaGFybmVzcy48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>
<flag name="review"
          id="275893"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>