<?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>130976</bug_id>
          
          <creation_ts>2014-03-31 12:08:20 -0700</creation_ts>
          <short_desc>[iOS WK2] Hook up scroll events for accelerated overflow:scroll</short_desc>
          <delta_ts>2014-03-31 15:32:55 -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>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jamesr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>995932</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-31 12:08:20 -0700</bug_when>
    <thetext>[iOS WK2] Hook up scroll events for accelerated overflow:scroll</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995937</commentid>
    <comment_count>1</comment_count>
      <attachid>228186</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-31 12:30:29 -0700</bug_when>
    <thetext>Created attachment 228186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995939</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-03-31 12:36:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/16476012&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995944</commentid>
    <comment_count>3</comment_count>
      <attachid>228186</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-03-31 12:41:22 -0700</bug_when>
    <thetext>Comment on attachment 228186
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        tell the WebProcess that the scroll happened to udpate RenderLayer

update

&gt; Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:72
&gt; +- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
&gt; +{
&gt; +}
&gt; +
&gt; +- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate
&gt; +{
&gt; +}
&gt; +
&gt; +- (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
&gt; +{
&gt; +}

Is there a reason for these? Aren&apos;t they optional?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995948</commentid>
    <comment_count>4</comment_count>
      <attachid>228188</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-31 12:44:09 -0700</bug_when>
    <thetext>Created attachment 228188
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996006</commentid>
    <comment_count>5</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-31 14:24:26 -0700</bug_when>
    <thetext>https://trac.webkit.org/r166531</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>996027</commentid>
    <comment_count>6</comment_count>
      <attachid>228188</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2014-03-31 15:32:55 -0700</bug_when>
    <thetext>Comment on attachment 228188
For EWS

Clearing review flag in a fixed bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228186</attachid>
            <date>2014-03-31 12:30:29 -0700</date>
            <delta_ts>2014-03-31 12:44:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130976-20140331123011.patch</filename>
            <type>text/plain</type>
            <size>32893</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2Mzc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTI2MTExMmRhMzU2NmJi
OWVhZjI0ODlmNDJhNmMxNGZkOGQ3OTNiZi4uOWVlMjZkODUzNDI1YWY5NDI0MTlhOGNhNDYwMGE3
ZDZkZTc0YjU0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTAzLTMxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBI
b29rIHVwIHNjcm9sbCBldmVudHMgZm9yIGFjY2VsZXJhdGVkIG92ZXJmbG93OnNjcm9sbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwOTc2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhbiBhY2Nl
bGVyYXRlZCBvdmVyZmxvdzpzY3JvbGwgaXMgc2Nyb2xsZWQgaW4gdGhlIFVJIHByb2Nlc3MsCisg
ICAgICAgIHRlbGwgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgc2Nyb2xsIGhhcHBlbmVkIHRvIHVk
cGF0ZSBSZW5kZXJMYXllcgorICAgICAgICBzdGF0ZSBhbmQgZmlyZSBldmVudHMuCisgICAgICAg
IAorICAgICAgICBJbiB0aGUgV2ViUHJvY2VzcywgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
Z2V0cyBhIG1lc3NhZ2UgZnJvbSB0aGUKKyAgICAgICAgVUkgcHJvY2VzcyBhbmQgY2FsbHMgQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Ny
b2xsKCkuCisgICAgICAgIEZpeGVkIHRoYXQgZnVuY3Rpb24gdG8gaGFuZGxlIHNjcm9sbGluZyBu
b2RlcyBvdGhlciB0aGFuIHRoZSByb290LCB3aGljaAorICAgICAgICByZXF1aXJlZCBzdG9yaW5n
IGEgbWFwIG9mIFNjcm9sbGluZ05vZGVJRC0+UmVuZGVyTGF5ZXIqIG9uIFJlbmRlckxheWVyQ29t
cG9zaXRvciwKKyAgICAgICAgYWNjZXNzaWJsZSB0aHJvdWdoIEZyYW1lVmlldzo6c2Nyb2xsYWJs
ZUFyZWFGb3JTY3JvbGxMYXllcklEKCkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRCk6CisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbCk6IEhhbmRsZQorICAgICAgICBvdmVyZmxv
dyBhcyB3ZWxsIGFzIG1haW4gZnJhbWUgc2Nyb2xsaW5nIG5vZGVzLgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZTo6dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKTogVXNlIGlzU2Nyb2xs
aW5nTm9kZSgpLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUG9zaXRp
b25DaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKTogV2hlbiBhbiBvdmVyZmxvdworICAgICAg
ICBzY3JvbGwgbm9kZSB3YXMgc2Nyb2xsZWQgZXh0ZXJuYWxseSwgd2UgaGF2ZSB0byB1cGRhdGUg
bGF5ZXJzIGluIGRlY2VuZGFudCBub2RlcywKKyAgICAgICAgYW5kIHRoZW4gY2FsbCBzY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCgpIHdoaWNoIHRlbGxzIHRoZSBTY3JvbGxpbmdDb29yZGluYXRv
ciB0aGF0CisgICAgICAgIHdlIHNjcm9sbGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaDogVHJ5IHRvIHJlZHVjZSBjb25mdXNpb24gYmV0d2VlbiB0aGUgcm9sZXMg
cGxheWVkCisgICAgICAgIGJ5IHRoZXNlIHZhcmlvdXMgZnVuY3Rpb25zLCBzb21lIG9mIHdoaWNo
IGhhcHBlbiBpbiB0aGUgVUkgcHJvY2VzcyB3aXRoIFVJLXNpZGUKKyAgICAgICAgY29tcG9zaXRp
bmcuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
aDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVJT1MuaDogTmVlZCBzb21lIGZ1bmN0aW9ucyB0byBiZQorICAgICAgICBjYWxsYWJsZSBieSBz
dWJjbGFzc2VzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckRlbGVnYXRlZFNjcm9sbCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbENvb3JkaW5hdGVkTGF5ZXIpOiBBZGQK
KyAgICAgICAgc2Nyb2xsaW5nIGxheWVycyB0byB0aGUgbV9zY3JvbGxpbmdOb2RlVG9MYXllck1h
cAorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkZXRhY2hTY3JvbGxD
b29yZGluYXRlZExheWVyKTogUmVtb3ZlCisgICAgICAgIGxheWVyIGZyb20gdGhlIG1fc2Nyb2xs
aW5nTm9kZVRvTGF5ZXJNYXAuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDE0LTAzLTI5ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENsYXJpZnkgc29tZSBzY3JvbGxpbmcg
dHJlZSB0ZXJtaW5vbG9neQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDU5ODBkNDMyNDkwNGIzOTU3OTNmMGE0NWRm
NTY1YTYxZGEwOWYyNTUuLjVhYTllMzZhZWYxNTc0MTg5ZWYxODZlMTE3OTA2NWRjOThkM2NkN2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxNC0wMy0zMSAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIFdLMl0gSG9vayB1cCBzY3Jv
bGwgZXZlbnRzIGZvciBhY2NlbGVyYXRlZCBvdmVyZmxvdzpzY3JvbGwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDk3NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV2hlbiBhbiBhY2NlbGVy
YXRlZCBvdmVyZmxvdzpzY3JvbGwgaXMgc2Nyb2xsZWQgaW4gdGhlIFVJIHByb2Nlc3MsCisgICAg
ICAgIHRlbGwgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgc2Nyb2xsIGhhcHBlbmVkIHRvIHVkcGF0
ZSBSZW5kZXJMYXllcgorICAgICAgICBzdGF0ZSBhbmQgZmlyZSBldmVudHMuCisgICAgICAgIAor
ICAgICAgICBBZGQgYSBXS092ZXJmbG93U2Nyb2xsVmlld0RlbGVnYXRlIHdoaWNoIGlzIHNldCBh
cyB0aGUgZGVsZWdhdGUgb2YKKyAgICAgICAgVUlTY3JvbGxWaWV3cywgb3duZWQgYnkgU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUywgYW5kIHByb3BhZ2F0ZXMKKyAgICAgICAg
LXNjcm9sbFZpZXdEaWRTY3JvbGw6IG1lc3NhZ2VzIHRvIFNjcm9sbGluZ1RyZWU6OnNjcm9sbFBv
c2l0aW9uQ2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZygpLAorICAgICAgICB3aGljaCB1cGRh
dGVzIGNoaWxkIGxheWVycyBhbmQgdGhlbiwgdmlhIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsLAorICAgICAgICB0ZWxscyB0aGUgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3Igd2hpY2ggc2VuZHMgYSBtZXNzYWdlIHRvIHRoZSBXZWJQcm9jZXNzLgorICAg
ICAgICAKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6IE5hbWUgY2hhbmdlCisgICAg
ICAgIHRvIHRyeSB0byByZWR1Y2UgY29uZnVzaW9uLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQpOiBEZWxldGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbToK
KyAgICAgICAgKC1bV0tPdmVyZmxvd1Njcm9sbFZpZXdEZWxlZ2F0ZSBpbml0V2l0aFNjcm9sbGlu
Z1RyZWVOb2RlOldlYktpdDo6XSk6CisgICAgICAgICgtW1dLT3ZlcmZsb3dTY3JvbGxWaWV3RGVs
ZWdhdGUgc2Nyb2xsVmlld0RpZFNjcm9sbDpdKToKKyAgICAgICAgKC1bV0tPdmVyZmxvd1Njcm9s
bFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3V2lsbEJlZ2luRHJhZ2dpbmc6XSk6CisgICAgICAgICgt
W1dLT3ZlcmZsb3dTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOndp
bGxEZWNlbGVyYXRlOl0pOgorICAgICAgICAoLVtXS092ZXJmbG93U2Nyb2xsVmlld0RlbGVnYXRl
IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246XSk6CisgICAgICAgIChXZWJLaXQ6
OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6On5TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlSU9TKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQmVmb3JlQ2hpbGRyZW4pOgorICAgICAgICAo
V2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVBZnRl
ckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZUlPUzo6c2Nyb2xsVmlld0RpZFNjcm9sbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
Y3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2Rl
KTogTm8gbmVlZCBmb3IKKyAgICAgICAgcm91bmRpbmcuCisKIDIwMTQtMDMtMjkgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHNjcm9sbGluZyBv
biBPUyBYIHdpdGggVUktc2lkZSBjb21wb3NpdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCA2
M2E1ZjI4NjczMDgzYmVmZWZiYmIzZTk4NzIzYzgzNjgxNWU3YTY3Li5hN2JjMTQ0NjFmN2VkMmQx
ODJhMzIyNDk0NjYwOTNhNTRhZGE2M2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjczNCw2
ICsyNzM0LDcgQEAgX19aTjdXZWJDb3JlMTNTY3JvbGxpbmdUcmVlMzJpc1BvaW50SW5Ob25GYXN0
U2Nyb2xsYWJsZVJlZ2lvbkVOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1Ry
ZWUzNXNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5RVJLTlNfMThQbGF0Zm9ybVdo
ZWVsRXZlbnRFCiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1RyZWUzNnZpZXdwb3J0Q2hhbmdlZFZp
YURlbGVnYXRlZFNjcm9sbGluZ0V5UktOU185RmxvYXRSZWN0RWQKIF9fWk43V2ViQ29yZTEzU2Ny
b2xsaW5nVHJlZTM3c2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZEViCitfX1pO
N1dlYkNvcmUxM1Njcm9sbGluZ1RyZWU0MnNjcm9sbFBvc2l0aW9uQ2hhbmdlZFZpYURlbGVnYXRl
ZFNjcm9sbGluZ0V5UktOU18xMEZsb2F0UG9pbnRFCiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1Ry
ZWVDMkV2CiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1RyZWVEMUV2CiBfX1pON1dlYkNvcmUxM1Nj
cm9sbGluZ1RyZWVEMkV2CkBAIC0yNzk3LDYgKzI3OTgsNyBAQCBfX1pON1dlYkNvcmUyOVNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TMTdzZXRTY3JvbGxQb3NpdGlvbkVSS05TXzEwRmxvYXRQ
b2ludAogX19aTjdXZWJDb3JlMjlTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzE5dXBkYXRl
QWZ0ZXJDaGlsZHJlbkVSS05TXzE4U2Nyb2xsaW5nU3RhdGVOb2RlRQogX19aTjdXZWJDb3JlMjlT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzIwdXBkYXRlQmVmb3JlQ2hpbGRyZW5FUktOU18x
OFNjcm9sbGluZ1N0YXRlTm9kZUUKIF9fWk43V2ViQ29yZTI5U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVJT1MzMXVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2VFUktOU185RmxvYXRSZWN0
RWQKK19fWk43V2ViQ29yZTI5U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MzMnVwZGF0ZUxh
eWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsRVJLTlNfMTBGbG9hdFBvaW50RQogX19aTjdXZWJDb3Jl
MjlTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzQ2c2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0
Q29udGVudEVkZ2VDb25zdHJhaW50c0VSS05TXzEwRmxvYXRQb2ludEUKIF9fWk43V2ViQ29yZTI5
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1M2Y3JlYXRlRVJOU18xM1Njcm9sbGluZ1RyZWVF
TlNfMTdTY3JvbGxpbmdOb2RlVHlwZUV5CiBfX1pON1dlYkNvcmUyOVNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlSU9TQzJFUk5TXzEzU2Nyb2xsaW5nVHJlZUVOU18xN1Njcm9sbGluZ05vZGVUeXBl
RXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBjNGJlNGFlMGU1OGM3ZGQ3ODJmMjMw
M2FhNjNmNjU0MTA1MGY3OGFkLi4zMzQwNTJmNDNkZGY3ZTczZGU3OGRkZTBlZWMzZWQ2OTVmYmM3
NzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC04MTcsNiArODE3LDE1IEBAIHVp
bnQ2NF90IEZyYW1lVmlldzo6c2Nyb2xsTGF5ZXJJRCgpIGNvbnN0CiAgICAgcmV0dXJuIGJhY2tp
bmctPnNjcm9sbGluZ05vZGVJRCgpOwogfQogCitTY3JvbGxhYmxlQXJlYSogRnJhbWVWaWV3Ojpz
Y3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQodWludDY0X3Qgbm9kZUlEKSBjb25zdAorewor
ICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7CisgICAgaWYg
KCFyZW5kZXJWaWV3KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiByZW5k
ZXJWaWV3LT5jb21wb3NpdG9yKCkuc2Nyb2xsYWJsZUFyZWFGb3JTY3JvbGxMYXllcklEKG5vZGVJ
RCk7Cit9CisKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiBHcmFwaGljc0xheWVyKiBGcmFt
ZVZpZXc6OmxheWVyRm9yT3ZlcmhhbmdBcmVhcygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuaAppbmRleCBiNDBlODg5ZDEyOGViMWQwYzE0Y2U5YjA2NDI5ZWM4YzViNGYzZWNiLi4zZjI3
OGMwZjQ0OTE1ZDI4ZWQ2MTY5Mjc4ZDdhOWNlMWNiNjNjNWIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgKQEAgLTE1Niw2ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgLy8gSW4gdGhlIGZ1dHVyZSB3
aGVuIGFueSBTY3JvbGxhYmxlQXJlYSBjYW4gaGF2ZSBhIG5vZGUgaW4gdGggU2Nyb2xsaW5nVHJl
ZSwgdGhpcyBzaG91bGQKICAgICAvLyBiZWNvbWUgYSB2aXJ0dWFsIGZ1bmN0aW9uIG9uIFNjcm9s
bGFibGVBcmVhLgogICAgIHVpbnQ2NF90IHNjcm9sbExheWVySUQoKSBjb25zdDsKKyAgICBTY3Jv
bGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWFGb3JTY3JvbGxMYXllcklEKHVpbnQ2NF90KSBjb25z
dDsKIAogICAgIGJvb2wgaGFzQ29tcG9zaXRlZENvbnRlbnQoKSBjb25zdDsKICAgICBib29sIGhh
c0NvbXBvc2l0ZWRDb250ZW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAKaW5kZXggZjhmMjUyMTAxNzIzMGRjZTIyYzZhZTE3NDNhODgxMTkzNmIwZDFl
OS4uOWU3YTljOTIyMzg4NTE1M2I3MDFhNzlhZjgwMTA4ZTMxYzkyZGFjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAKQEAgLTE5NCwxNiArMTk0LDE3IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05v
CiAgICAgaWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgb2xkUHJv
Z3JhbW1hdGljU2Nyb2xsID0gZnJhbWVWaWV3LT5pblByb2dyYW1tYXRpY1Njcm9sbCgpOwotICAg
IGZyYW1lVmlldy0+c2V0SW5Qcm9ncmFtbWF0aWNTY3JvbGwocHJvZ3JhbW1hdGljU2Nyb2xsKTsK
KyAgICAvLyBNYWluIGZyYW1lLgorICAgIGlmIChzY3JvbGxpbmdOb2RlSUQgPT0gZnJhbWVWaWV3
LT5zY3JvbGxMYXllcklEKCkpIHsKKyAgICAgICAgYm9vbCBvbGRQcm9ncmFtbWF0aWNTY3JvbGwg
PSBmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGljU2Nyb2xsKCk7CisgICAgICAgIGZyYW1lVmlldy0+
c2V0SW5Qcm9ncmFtbWF0aWNTY3JvbGwocHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAotICAgIGZyYW1l
Vmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoZmFsc2UpOwotICAgIGZy
YW1lVmlldy0+bm90aWZ5U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHJvdW5kZWRJbnRQb2ludChzY3Jv
bGxQb3NpdGlvbikpOwotICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29u
dGVudEVkZ2UodHJ1ZSk7CisgICAgICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGlu
Z1RvQ29udGVudEVkZ2UoZmFsc2UpOworICAgICAgICBmcmFtZVZpZXctPm5vdGlmeVNjcm9sbFBv
c2l0aW9uQ2hhbmdlZChyb3VuZGVkSW50UG9pbnQoc2Nyb2xsUG9zaXRpb24pKTsKKyAgICAgICAg
ZnJhbWVWaWV3LT5zZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSh0cnVlKTsKIAot
ICAgIGZyYW1lVmlldy0+c2V0SW5Qcm9ncmFtbWF0aWNTY3JvbGwob2xkUHJvZ3JhbW1hdGljU2Ny
b2xsKTsKKyAgICAgICAgZnJhbWVWaWV3LT5zZXRJblByb2dyYW1tYXRpY1Njcm9sbChvbGRQcm9n
cmFtbWF0aWNTY3JvbGwpOwogCi0gICAgaWYgKHNjcm9sbGluZ05vZGVJRCA9PSBmcmFtZVZpZXct
PnNjcm9sbExheWVySUQoKSkgewogICAgICAgICBpZiAoR3JhcGhpY3NMYXllciogc2Nyb2xsTGF5
ZXIgPSBzY3JvbGxMYXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpKSB7CiAgICAgICAgICAgICBH
cmFwaGljc0xheWVyKiBjb3VudGVyU2Nyb2xsaW5nTGF5ZXIgPSBjb3VudGVyU2Nyb2xsaW5nTGF5
ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKICAgICAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGhl
YWRlckxheWVyID0gaGVhZGVyTGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKQEAgLTIzMSw4
ICsyMzIsMTMgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQ
b3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm8KICAgICAgICAgICAgICAgICBzeW5j
Q2hpbGRQb3NpdGlvbnModmlld3BvcnRSZWN0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQor
CisgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgLy8gRklYTUU6IGhhbmRsZSBub24tbWFpbiBz
Y3JvbGxpbmcgbm9kZXMuCisKKyAgICAvLyBPdmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAgICBpZiAo
U2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJl
YUZvclNjcm9sbExheWVySUQoc2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAgc2Nyb2xsYWJsZUFy
ZWEtPnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3JvbGxQb3NpdGlvbik7CiB9CiAK
IHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJM
YXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEsIFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAxZGM4ZTYxZDJhMjQwMzU2NzE4Njk5N2UzY2ViOTEz
Zjc0MmYyNjMyLi5iZWY4MWU0NzE4Y2M2Y2Y4MjMxOGQ1MzE1YTdmNDY2M2Y4Njg4MWE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAt
MTA0LDEyICsxMDQsMjggQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp2aWV3cG9ydENoYW5nZWRWaWFE
ZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwKICAgICBpZiAoIW5vZGUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChub2RlLT5ub2RlVHlwZSgpICE9IEZyYW1lU2Ny
b2xsaW5nTm9kZSAmJiBub2RlLT5ub2RlVHlwZSgpICE9IE92ZXJmbG93U2Nyb2xsaW5nTm9kZSkK
KyAgICBpZiAoIW5vZGUtPmlzU2Nyb2xsaW5nTm9kZSgpKQogICAgICAgICByZXR1cm47CiAKICAg
ICB0b1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlKG5vZGUpLT51cGRhdGVMYXllcnNBZnRlclZp
ZXdwb3J0Q2hhbmdlKHZpZXdwb3J0UmVjdCwgc2NhbGUpOwogfQogCit2b2lkIFNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhTY3JvbGxpbmdO
b2RlSUQgbm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikK
K3sKKyAgICBTY3JvbGxpbmdUcmVlTm9kZSogbm9kZSA9IG5vZGVGb3JJRChub2RlSUQpOworICAg
IGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5vZGUtPm5vZGVUeXBlKCkg
IT0gT3ZlcmZsb3dTY3JvbGxpbmdOb2RlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBVcGRh
dGUgZGVzY2VuZGFudCBub2RlcworICAgIHRvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUobm9k
ZSktPnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKHNjcm9sbFBvc2l0aW9uKTsKKwor
ICAgIC8vIFVwZGF0ZSBHcmFwaGljc0xheWVycyBhbmQgc2Nyb2xsIHN0YXRlLgorICAgIHNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24pOworfQorCiB2b2lk
IFNjcm9sbGluZ1RyZWU6OmNvbW1pdE5ld1RyZWVTdGF0ZShQYXNzT3duUHRyPFNjcm9sbGluZ1N0
YXRlVHJlZT4gc2Nyb2xsaW5nU3RhdGVUcmVlKQogewogICAgIGJvb2wgcm9vdFN0YXRlTm9kZUNo
YW5nZWQgPSBzY3JvbGxpbmdTdGF0ZVRyZWUtPmhhc05ld1Jvb3RTdGF0ZU5vZGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCAzMjBmNTRl
YTdjOWM3MmUwYjI0NGMyNWNjZmIxMjQyY2ZiNDMxNmEwLi5hY2E2NGZkMWEyODk4NzVjNGY5NGZh
ZWFiM2ZkOTgzNzBkMTkzNDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCkBAIC02Myw4ICs2Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEV2
ZW50UmVzdWx0IHRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
KSA9IDA7CiAgICAgYm9vbCBzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgdmlld3BvcnRD
aGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiB2aWV3cG9ydFJlY3QsIGRvdWJsZSBzY2FsZSk7Ci0KICAgICB2b2lkIHNl
dE1haW5GcmFtZUlzUnViYmVyQmFuZGluZyhib29sKTsKICAgICBib29sIGlzUnViYmVyQmFuZElu
UHJvZ3Jlc3MoKTsKIApAQCAtNzMsNyArNzEsMTggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRN
YWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJp
Z2h0LCBib29sIHBpbm5lZFRvVGhlVG9wLCBib29sIHBpbm5lZFRvVGhlQm90dG9tKTsKIAorICAg
IC8vIENhbGxlZCBhZnRlciBhIHNjcm9sbGluZyB0cmVlIG5vZGUgaGFzIGhhbmRsZWQgYSBzY3Jv
bGwgYW5kIHVwZGF0ZWQgaXRzIGxheWVycy4KKyAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5k
ZXJMYXllciBzY3JvbGxpbmcgc3RhdGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
ID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pID0gMDsKKworICAgIC8vIERlbGVnYXRlZCBz
Y3JvbGxpbmcvem9vbWluZyBoYXMgY2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVw
ZGF0ZSB2aWV3cG9ydC1jb25zdHJhaW5lZCBsYXllcnMKKyAgICAvLyAoYnV0IGRvbid0IGNhdXNl
IHNjcm9sbCBldmVudHMgdG8gYmUgZmlyZWQpLgorICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydENo
YW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwgZG91YmxlIHNjYWxlKTsKKworICAgIC8vIERlbGVn
YXRlZCBzY3JvbGxpbmcgaGFzIHNjcm9sbGVkIGEgbm9kZS4gVXBkYXRlIGxheWVyIHBvc2l0aW9u
cyBvbiBkZXNjZW5kYW50IHRyZWUgbm9kZXMsCisgICAgLy8gYW5kIGNhbGwgc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwoKS4KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2Vk
VmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pOworCiAgICAgRmxvYXRQb2ludCBtYWluRnJhbWVTY3Jv
bGxQb3NpdGlvbigpOwogCiAgICAgYm9vbCBpc1BvaW50SW5Ob25GYXN0U2Nyb2xsYWJsZVJlZ2lv
bihJbnRQb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCA0MTkxOTdiYmFmYTVjYTIwMjhh
M2Y3MDUwMWFhYTZkNGI2NzllNmZjLi4yYzcyYmZkNDVlZjI4MTc2N2EwNGIwNTE2NmUyOGNkMTNi
YmFlYzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKQEAgLTU0LDcgKzU0LDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbldpdGhvdXRDb250ZW50RWRnZUNvbnN0
cmFpbnRzKGNvbnN0IEZsb2F0UG9pbnQmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
TGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShjb25zdCBGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwg
ZG91YmxlIHNjYWxlKSA9IDA7Ci0gICAgCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxheWVyc0Fm
dGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSB7IH0KKwogICAgIFN5bmNocm9u
b3VzU2Nyb2xsaW5nUmVhc29ucyBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKSBjb25zdCB7
IHJldHVybiBtX3N5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uczsgfQogICAgIGJvb2wgc2hvdWxk
VXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvblN5bmNocm9ub3VzbHkoKSBjb25zdCB7IHJldHVybiBt
X3N5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZUlPUy5oCmluZGV4IDdiZDRlNzJhZDJiZmEyMTg4YjE0MTc1OWQ5Njg0MDlkMzBiNDYxYzgu
LmMzZWU5NWEyMjNiMjJjZmNmNDNlMTE0NGZhZTNhMTk3YjU2NDAwNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZUlPUy5oCkBAIC01MCwxMiArNTAsMTIgQEAgcHJvdGVjdGVkOgogCiAg
ICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdl
dCgpOyB9CiAKLXByaXZhdGU6CiAgICAgRmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbigpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRl
bnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwogCiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2UoY29uc3QgRmxvYXRSZWN0
JiB2aWV3cG9ydFJlY3QsIGRvdWJsZSBzY2FsZSk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxh
eWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgc2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAKQEAg
LTY1LDYgKzY1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEludFNpemUm
KTsKICAgICB2b2lkIHNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3Qg
SW50U2l6ZSYpOwogCitwcml2YXRlOgorICAgIHZvaWQgdXBkYXRlQ2hpbGROb2Rlc0FmdGVyU2Ny
b2xsKGNvbnN0IEZsb2F0UG9pbnQmKTsKKwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3Njcm9s
bExheWVyOwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsK
ICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVJT1MubW0KaW5kZXggZjM0NzcyMTRhNjNhMzMzZTE5ZmUyZmU3
ODExMWNkZTY0YjAwYTE3ZS4uODBjOTU1M2Q5NjI2NjBkZWY4MGVkZjVmM2YyZDQ4NGQ5YjgzNWEz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5tbQpAQCAtMTI5LDE2ICsxMjks
MzggQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsUG9zaXRp
b25XaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW4KICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xs
aW5nVHJlZU5vZGVEaWRTY3JvbGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbFBvc2l0aW9uKTsK
IH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsTGF5ZXJQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKCFzaG91bGRVcGRhdGVTY3JvbGxMYXllclBv
c2l0aW9uU3luY2hyb25vdXNseSgpKTsKLSAgICBbbV9zY3JvbGxMYXllciBzZXRQb3NpdGlvbjpD
R1BvaW50TWFrZSgtcG9zaXRpb24ueCgpICsgc2Nyb2xsT3JpZ2luKCkueCgpLCAtcG9zaXRpb24u
eSgpICsgc2Nyb2xsT3JpZ2luKCkueSgpKV07CisgICAgW21fc2Nyb2xsTGF5ZXIgc2V0UG9zaXRp
b246Q0dQb2ludE1ha2UoLXNjcm9sbFBvc2l0aW9uLngoKSArIHNjcm9sbE9yaWdpbigpLngoKSwg
LXNjcm9sbFBvc2l0aW9uLnkoKSArIHNjcm9sbE9yaWdpbigpLnkoKSldOwogCisgICAgdXBkYXRl
Q2hpbGROb2Rlc0FmdGVyU2Nyb2xsKHNjcm9sbFBvc2l0aW9uKTsKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShj
b25zdCBGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwgZG91YmxlIHNjYWxlKQoreworICAgIFttX2Nv
dW50ZXJTY3JvbGxpbmdMYXllciBzZXRQb3NpdGlvbjp2aWV3cG9ydFJlY3QubG9jYXRpb24oKV07
CisKKyAgICBpZiAoIW1fY2hpbGRyZW4pCisgICAgICAgIHJldHVybjsKKworICAgIEZsb2F0UmVj
dCB2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0c1JlY3QgPSBGcmFtZVZpZXc6OnJlY3RGb3JWaWV3
cG9ydENvbnN0cmFpbmVkT2JqZWN0cyhlbmNsb3NpbmdMYXlvdXRSZWN0KHZpZXdwb3J0UmVjdCks
IHRvdGFsQ29udGVudHNTaXplKCksIHNjYWxlLCBmYWxzZSwgc2Nyb2xsQmVoYXZpb3JGb3JGaXhl
ZEVsZW1lbnRzKCkpOworCisgICAgc2l6ZV90IHNpemUgPSBtX2NoaWxkcmVuLT5zaXplKCk7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgIG1fY2hpbGRyZW4t
PmF0KGkpLT5wYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5nZSh2aWV3cG9ydENvbnN0cmFpbmVk
T2JqZWN0c1JlY3QsIEZsb2F0U2l6ZSgpKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgRmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24pCit7CisgICAgdXBkYXRlQ2hpbGROb2Rlc0FmdGVyU2Nyb2xs
KHNjcm9sbFBvc2l0aW9uKCkpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
SU9TOjp1cGRhdGVDaGlsZE5vZGVzQWZ0ZXJTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24pCit7CiAgICAgU2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzIGJlaGF2aW9y
Rm9yRml4ZWQgPSBzY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMoKTsKLSAgICBGbG9hdFBv
aW50IHNjcm9sbE9mZnNldCA9IHBvc2l0aW9uIC0gdG9JbnRTaXplKHNjcm9sbE9yaWdpbigpKTsK
KyAgICBGbG9hdFBvaW50IHNjcm9sbE9mZnNldCA9IHNjcm9sbFBvc2l0aW9uIC0gdG9JbnRTaXpl
KHNjcm9sbE9yaWdpbigpKTsKICAgICBGbG9hdFJlY3Qgdmlld3BvcnRSZWN0KEZsb2F0UG9pbnQo
KSwgdmlld3BvcnRTaXplKCkpOwotICAgIAotICAgIC8vIEZJWE1FOiBzY3JvbGxPZmZzZXRGb3JG
aXhlZFBvc2l0aW9uKCkgbmVlZHMgdG8gZG8gZmxvYXQgbWF0aC4KICAgICBGbG9hdFNpemUgc2Ny
b2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbiA9IEZyYW1lVmlldzo6c2Nyb2xsT2Zmc2V0Rm9yRml4
ZWRQb3NpdGlvbihlbmNsb3NpbmdMYXlvdXRSZWN0KHZpZXdwb3J0UmVjdCksIHRvdGFsQ29udGVu
dHNTaXplKCksIGZsb29yZWRJbnRQb2ludChzY3JvbGxPZmZzZXQpLCBzY3JvbGxPcmlnaW4oKSwg
ZnJhbWVTY2FsZUZhY3RvcigpLCBmYWxzZSwgYmVoYXZpb3JGb3JGaXhlZCwgaGVhZGVySGVpZ2h0
KCksIGZvb3RlckhlaWdodCgpKTsKIAogICAgIFttX2NvdW50ZXJTY3JvbGxpbmdMYXllciBzZXRQ
b3NpdGlvbjpGbG9hdFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRyZW4pXTsKQEAgLTE3
MCwyMCArMTkyLDYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Ny
b2xsTGF5ZXJQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3MKICAgICAgICAgbV9jaGlsZHJl
bi0+YXQoaSktPnBhcmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKHZpZXdwb3J0Q29uc3RyYWlu
ZWRPYmplY3RzUmVjdCwgRmxvYXRTaXplKCkpOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlSU9TOjp1cGRhdGVMYXllcnNBZnRlclZpZXdwb3J0Q2hhbmdlKGNvbnN0IEZsb2F0
UmVjdCYgdmlld3BvcnRSZWN0LCBkb3VibGUgc2NhbGUpCi17Ci0gICAgW21fY291bnRlclNjcm9s
bGluZ0xheWVyIHNldFBvc2l0aW9uOnZpZXdwb3J0UmVjdC5sb2NhdGlvbigpXTsKLQotICAgIGlm
ICghbV9jaGlsZHJlbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRmxvYXRSZWN0IHZpZXdwb3J0
Q29uc3RyYWluZWRPYmplY3RzUmVjdCA9IEZyYW1lVmlldzo6cmVjdEZvclZpZXdwb3J0Q29uc3Ry
YWluZWRPYmplY3RzKGVuY2xvc2luZ0xheW91dFJlY3Qodmlld3BvcnRSZWN0KSwgdG90YWxDb250
ZW50c1NpemUoKSwgc2NhbGUsIGZhbHNlLCBzY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMo
KSk7Ci0KLSAgICBzaXplX3Qgc2l6ZSA9IG1fY2hpbGRyZW4tPnNpemUoKTsKLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9jaGlsZHJlbi0+YXQoaSktPnBh
cmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzUmVj
dCwgRmxvYXRTaXplKCkpOwotfQotCiBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlSU9TOjptaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdAogewogICAgIEZsb2F0UG9pbnQg
cG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCmluZGV4IDEyZWRjODYwODJlMGQ2NDBjMGY2YTczZDhiNTM5MjQyN2RiOWUw
MzAuLjcwNGFlYTVjN2VmYzA5ZGNmNjIwYmEyNDBiNTU3OTVhNzBhYjJlNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0z
NTE1LDYgKzM1MTUsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xs
Q29vcmRpbmF0ZWRMYXllcihSZW5kZXJMYXllciYgbGF5ZXIsIFNjcgogCiAgICAgICAgIG5vZGVJ
RCA9IHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5hdHRhY2hUb1N0YXRlVHJlZShpc1Jvb3RMYXllciA/
IEZyYW1lU2Nyb2xsaW5nTm9kZSA6IE92ZXJmbG93U2Nyb2xsaW5nTm9kZSwgbm9kZUlELCBwYXJl
bnROb2RlSUQpOwogICAgICAgICBiYWNraW5nLT5zZXRTY3JvbGxpbmdOb2RlSUQobm9kZUlEKTsK
KyAgICAgICAgbV9zY3JvbGxpbmdOb2RlVG9MYXllck1hcC5hZGQobm9kZUlELCAmbGF5ZXIpOwog
CiAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbGluZ0xheWVyID0gYmFja2luZy0+c2Nyb2xs
aW5nTGF5ZXIoKTsKICAgICAgICAgR3JhcGhpY3NMYXllciogc2Nyb2xsZWRDb250ZW50c0xheWVy
ID0gYmFja2luZy0+c2Nyb2xsaW5nQ29udGVudHNMYXllcigpOwpAQCAtMzUzNyw4ICszNTM4LDIy
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxDb29yZGluYXRlZExh
eWVyKFJlbmRlckxheWVyJiBsYXllciwgU2NyCiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpkZXRhY2hTY3JvbGxDb29yZGluYXRlZExheWVyKFJlbmRlckxheWVyJiBsYXllcikKIHsKLSAg
ICBpZiAoUmVuZGVyTGF5ZXJCYWNraW5nKiBiYWNraW5nID0gbGF5ZXIuYmFja2luZygpKQotICAg
ICAgICBiYWNraW5nLT5kZXRhY2hGcm9tU2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsKKyAgICBSZW5k
ZXJMYXllckJhY2tpbmcqIGJhY2tpbmcgPSBsYXllci5iYWNraW5nKCk7CisgICAgaWYgKCFiYWNr
aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBiYWNraW5nLT5kZXRhY2hGcm9tU2Nyb2xsaW5n
Q29vcmRpbmF0b3IoKTsKKworICAgIGlmIChTY3JvbGxpbmdOb2RlSUQgbm9kZUlEID0gYmFja2lu
Zy0+c2Nyb2xsaW5nTm9kZUlEKCkpCisgICAgICAgIG1fc2Nyb2xsaW5nTm9kZVRvTGF5ZXJNYXAu
cmVtb3ZlKG5vZGVJRCk7Cit9CisKK1Njcm9sbGFibGVBcmVhKiBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRChTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
KSBjb25zdAoreworICAgIGlmICghbm9kZUlEKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIHJldHVybiBtX3Njcm9sbGluZ05vZGVUb0xheWVyTWFwLmdldChub2RlSUQpOwogfQogCiAj
aWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCmluZGV4IGNhMmMxZGQ4NzdlOTIxODllZjJmOGY0NGQ0MjA3NWRjNGYy
OTRhOWEuLmZlNjE4MzFhMTdkZDUwY2IzOTBmNGM3MjgxOTE3ODNiNzZhYzRhNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTI2
Niw2ICsyNjYsOCBAQCBwdWJsaWM6CiAgICAgR3JhcGhpY3NMYXllciogdXBkYXRlTGF5ZXJGb3JG
b290ZXIoYm9vbCB3YW50c0xheWVyKTsKICNlbmRpZgogCisgICAgU2Nyb2xsYWJsZUFyZWEqIHNj
cm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRChTY3JvbGxpbmdOb2RlSUQpIGNvbnN0OworCiAg
ICAgdm9pZCB1cGRhdGVTY3JvbGxDb29yZGluYXRlZFN0YXR1cyhSZW5kZXJMYXllciYpOwogICAg
IHZvaWQgcmVtb3ZlRnJvbVNjcm9sbENvb3JkaW5hdGVkTGF5ZXJzKFJlbmRlckxheWVyJik7CiAK
QEAgLTUxOSw2ICs1MjEsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBDb2xvciBtX3Jvb3RF
eHRlbmRlZEJhY2tncm91bmRDb2xvcjsKKworICAgIEhhc2hNYXA8U2Nyb2xsaW5nTm9kZUlELCBS
ZW5kZXJMYXllcio+IG1fc2Nyb2xsaW5nTm9kZVRvTGF5ZXJNYXA7CiB9OwogCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDQyNmY5ZWUxMTkyNzY1MjNl
ZTQ5Y2YxY2IzOTg2YTNiZjNjMTk1MWYuLjEwYTBmNDhjYzlhZTBlNTcyNDAzOTMxMGZhYTM0MWMy
NzZhMmY5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApA
QCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sCiB9CiAKIC8vIFRoaXMg
Y29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUuCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZChXZWJDb3JlOjpTY3JvbGxpbmdOb2Rl
SUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBv
c2l0aW9uKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdU
cmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uKQogewogICAgIC8v
IFNjcm9sbCB1cGRhdGVzIGZvciB0aGUgbWFpbiBmcmFtZSBhcmUgc2VudCB2aWEgV2ViUGFnZVBy
b3h5Ojp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKCkKICAgICAvLyBzbyBkb24ndCBzZW5kIHRo
ZW0gaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggN2Vl
OTgxYzUzZTRkYTk4YzNmYmU0OWQ1ZDA3NmI2ZTA0ZWI2N2FmMy4uMTZjOGQ0ODdkNzcwYThiNWVj
OTExNGRlZmJiNWNmYjYwY2UxYzZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKICAgICAKICAgICAvLyBJbmZvcm0gdGhlIHdlYiBw
cm9jZXNzIHRoYXQgdGhlIHNjcm9sbCBwb3NpdGlvbiBjaGFuZ2VkIChjYWxsZWQgZnJvbSB0aGUg
c2Nyb2xsaW5nIHRyZWUpCi0gICAgdm9pZCBzY3JvbGxQb3NpdGlvbkNoYW5nZWQoV2ViQ29yZTo6
U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3Np
dGlvbik7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9u
KTsKIAogICAgIGJvb2wgaXNQb2ludEluTm9uRmFzdFNjcm9sbGFibGVSZWdpb24oY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggNmJmMTMy
NjQ5Y2IzNDA3MWNkM2ViM2E2MWVlZDhhNTY5MTE1YWYwOC4uZjhjOTVjYjZkYTg1ZmI3ZmNmNzk5
NzdhZDg3NTRiMDYxMDcyM2UyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC03OSw3ICs3OSw3
IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlIHBoYXNlKQogCiB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNj
cm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
KQogewotICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxQb3NpdGlvbkNoYW5n
ZWQobm9kZUlELCBzY3JvbGxQb3NpdGlvbik7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24pOwog
fQogCiBQYXNzT3duUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpj
cmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1v
dGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1Jl
bW90ZVNjcm9sbGluZ1RyZWUuaAppbmRleCBlZDVhNzIwOGMzNmYzYmM1ZmE2MzQ4NDkyZmE2Mzk4
NjI3Yzk2MGRmLi41MWYwYWRmNGFmMTM1Y2M2NGM2NmYwY2U3ODU1ZTU1MjVkMGFkNzI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ1RyZWUuaApAQCAtNDYsMTMgKzQ2LDE0IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkmIHNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHko
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7IH0KIAorICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdO
b2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBXZWJDb3Jl
OjpTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uID0gV2ViQ29yZTo6U3luY1Njcm9sbGlu
Z0xheWVyUG9zaXRpb24pIG92ZXJyaWRlOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90
ZVNjcm9sbGluZ1RyZWUoUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYpOwogCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoV2Vi
Q29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdmly
dHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFdlYkNvcmU6
OlNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gPSBXZWJDb3JlOjpTeW5jU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5
cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmgKaW5kZXggNjMwYjliNzUyYzI0
OGY4MGI0ZjM2OTJkZjExYTZmOTQzODJjMjFlMC4uNjVkNDQ0NDY5NmI4MTFlOWQ4NDM2N2E5NTAw
N2ZlZDBkMDgzYjFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9s
bGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1MuaApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlSU9TLmg+CiAKK09CSkNfQ0xBU1MgV0tPdmVyZmxvd1Njcm9sbFZpZXdEZWxl
Z2F0ZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1MgOiBwdWJsaWMgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVJT1MgewpAQCAtMzksMTEgKzQxLDE1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093
blB0cjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TPiBjcmVhdGUoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CiAgICAgdmlydHVh
bCB+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUygpOwogCisgICAgdm9pZCBz
Y3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKKwogcHJpdmF0
ZToKICAgICBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWUmLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOwogCisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlTm9k
ZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBZnRlckNoaWxkcmVuKGNvbnN0
IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogCisgICAgUmV0YWluUHRy
PFdLT3ZlcmZsb3dTY3JvbGxWaWV3RGVsZWdhdGU+IG1fc2Nyb2xsVmlld0RlbGVnYXRlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9T
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbQppbmRleCAzZmE2MzQ0MmY2NTU1ZTg1NjUwN2U3
ZmViMDE5NmUwMjE1Yjg3N2FlLi44MGRhNzVhMjgyYTVmNmZjZDk1N2JiYjk5ZTZmMzk2MmUwYjcx
ZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVJT1MubW0KQEAgLTMxLDEwICszMSw0OCBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL0Jsb2Nr
RXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZS5oPgogI2ltcG9ydCA8VUlLaXQv
VUlTY3JvbGxWaWV3Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCitAaW50ZXJmYWNl
IFdLT3ZlcmZsb3dTY3JvbGxWaWV3RGVsZWdhdGUgOiBOU09iamVjdCA8VUlTY3JvbGxWaWV3RGVs
ZWdhdGU+IHsKKyAgICBXZWJLaXQ6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJ
T1MqIF9zY3JvbGxpbmdUcmVlTm9kZTsKK30KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFNjcm9s
bGluZ1RyZWVOb2RlOihXZWJLaXQ6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJ
T1MqKW5vZGU7CisKK0BlbmQKKworCitAaW1wbGVtZW50YXRpb24gV0tPdmVyZmxvd1Njcm9sbFZp
ZXdEZWxlZ2F0ZQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTY3JvbGxpbmdUcmVlTm9kZToo
V2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TKilub2RlCit7Cisg
ICAgaWYgKChzZWxmID0gW3N1cGVyIGluaXRdKSkgeworICAgICAgICBfc2Nyb2xsaW5nVHJlZU5v
ZGUgPSBub2RlOworICAgIH0KKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClzY3JvbGxW
aWV3RGlkU2Nyb2xsOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgX3Njcm9sbGlu
Z1RyZWVOb2RlLT5zY3JvbGxWaWV3RGlkU2Nyb2xsKHNjcm9sbFZpZXcuY29udGVudE9mZnNldCk7
Cit9CisKKy0gKHZvaWQpc2Nyb2xsVmlld1dpbGxCZWdpbkRyYWdnaW5nOihVSVNjcm9sbFZpZXcg
KilzY3JvbGxWaWV3Cit7Cit9CisKKy0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihV
SVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxEZWNlbGVyYXRlOihCT09MKWRlY2VsZXJhdGUK
K3sKK30KKworLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNj
cm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7Cit9CisKK0BlbmQKKwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUz4gU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWUmIHNjcm9sbGluZ1RyZWUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQp
CkBAIC00OSw2ICs4NywyNiBAQCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9T
OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TKFdlYgogCiBTY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjp+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZUlPUygpCiB7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgaWYg
KFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IChVSVNjcm9sbFZpZXcgKilbc2Nyb2xsTGF5ZXIo
KSBkZWxlZ2F0ZV0pIHsKKyAgICAgICAgQVNTRVJUKFtzY3JvbGxWaWV3IGlzS2luZE9mQ2xhc3M6
W1VJU2Nyb2xsVmlldyBzZWxmXV0pOworICAgICAgICBzY3JvbGxWaWV3LmRlbGVnYXRlID0gbmls
OworICAgIH0KKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCit9CisKK3ZvaWQgU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQmVmb3JlQ2hpbGRyZW4oY29u
c3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCit7CisgICAgaWYgKHN0
YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxMYXllcikpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAg
ICAgIGlmIChVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcgPSAoVUlTY3JvbGxWaWV3ICopW3Njcm9s
bExheWVyKCkgZGVsZWdhdGVdKSB7CisgICAgICAgICAgICBBU1NFUlQoW3Njcm9sbFZpZXcgaXNL
aW5kT2ZDbGFzczpbVUlTY3JvbGxWaWV3IHNlbGZdXSk7CisgICAgICAgICAgICBzY3JvbGxWaWV3
LmRlbGVnYXRlID0gbmlsOworICAgICAgICB9CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKKyAgICB9CisKKyAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRl
QmVmb3JlQ2hpbGRyZW4oc3RhdGVOb2RlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0
YXRlTm9kZSYgc3RhdGVOb2RlKQpAQCAtNTcsNiArMTE1LDE4IEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3Jv
bGxpbmdTCiAKICAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSB0b1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZShzdGF0ZU5vZGUpOwogCisgICAgaWYgKHNjcm9sbGluZ1N0YXRl
Tm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxMYXllcikpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAg
IFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IChVSVNjcm9sbFZpZXcgKilbc2Nyb2xsTGF5ZXIo
KSBkZWxlZ2F0ZV07CisgICAgICAgIEFTU0VSVChbc2Nyb2xsVmlldyBpc0tpbmRPZkNsYXNzOltV
SVNjcm9sbFZpZXcgc2VsZl1dKTsKKworICAgICAgICBpZiAoIW1fc2Nyb2xsVmlld0RlbGVnYXRl
KQorICAgICAgICAgICAgbV9zY3JvbGxWaWV3RGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tPdmVyZmxv
d1Njcm9sbFZpZXdEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTY3JvbGxpbmdUcmVlTm9kZTp0aGlz
XSk7CisKKyAgICAgICAgc2Nyb2xsVmlldy5kZWxlZ2F0ZSA9IG1fc2Nyb2xsVmlld0RlbGVnYXRl
LmdldCgpOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgfQorCiAgICAg
aWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpUb3RhbENvbnRlbnRzU2l6ZSkpIHsKICAgICAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiAgICAgICAgIFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IChVSVNj
cm9sbFZpZXcgKilbc2Nyb2xsTGF5ZXIoKSBkZWxlZ2F0ZV07CkBAIC02OCw2ICsxMzgsMTEgQEAg
dm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVBZnRlckNo
aWxkcmVuKGNvbnN0IFNjcm9sbGluZ1MKICAgICB9CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6c2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbikKK3sKKyAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsUG9zaXRp
b25DaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxQ
b3NpdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4
IDliZDVjNDg1ZTc5NWJiMDE4NzA1MDZlZmQxZDRmOGQwNzk5OGIyMTAuLjMxZDk3MzgxYmFlNTIw
MDU4ZjQ2NjQ2NjdhMWM4OGU3NWIzOTVlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yLm1tCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OmJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuCiAvLyBOb3Rp
ZmljYXRpb24gZnJvbSB0aGUgVUkgcHJvY2VzcyB0aGF0IHdlIHNjcm9sbGVkLgogdm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsK
LSAgICBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChub2RlSUQs
IHJvdW5kZWRJbnRQb2ludChzY3JvbGxQb3NpdGlvbiksIGZhbHNlIC8qIEZJWE1FICovLCBTeW5j
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CisgICAgc2NoZWR1bGVVcGRhdGVTY3JvbGxQb3NpdGlv
bkFmdGVyQXN5bmNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgZmFsc2UgLyogRklYTUUg
Ki8sIFN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228188</attachid>
            <date>2014-03-31 12:44:09 -0700</date>
            <delta_ts>2014-03-31 15:32:55 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-130976-20140331124352.patch</filename>
            <type>text/plain</type>
            <size>32893</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjNmZjhmNTNmZGJmMGI0
MGVhMTlkNWJkOTE4ZDUzNjYxNzFhYTE5NC4uZjlkZjAwMmVhNDc5OWUxNjgzOTJkYjM3ODNkZjk0
NWZjYmI4YWU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDE0LTAzLTMxICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgV0syXSBI
b29rIHVwIHNjcm9sbCBldmVudHMgZm9yIGFjY2VsZXJhdGVkIG92ZXJmbG93OnNjcm9sbAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwOTc2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hlbiBhbiBhY2Nl
bGVyYXRlZCBvdmVyZmxvdzpzY3JvbGwgaXMgc2Nyb2xsZWQgaW4gdGhlIFVJIHByb2Nlc3MsCisg
ICAgICAgIHRlbGwgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgc2Nyb2xsIGhhcHBlbmVkIHRvIHVk
cGF0ZSBSZW5kZXJMYXllcgorICAgICAgICBzdGF0ZSBhbmQgZmlyZSBldmVudHMuCisgICAgICAg
IAorICAgICAgICBJbiB0aGUgV2ViUHJvY2VzcywgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3Ig
Z2V0cyBhIG1lc3NhZ2UgZnJvbSB0aGUKKyAgICAgICAgVUkgcHJvY2VzcyBhbmQgY2FsbHMgQXN5
bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Ny
b2xsKCkuCisgICAgICAgIEZpeGVkIHRoYXQgZnVuY3Rpb24gdG8gaGFuZGxlIHNjcm9sbGluZyBu
b2RlcyBvdGhlciB0aGFuIHRoZSByb290LCB3aGljaAorICAgICAgICByZXF1aXJlZCBzdG9yaW5n
IGEgbWFwIG9mIFNjcm9sbGluZ05vZGVJRC0+UmVuZGVyTGF5ZXIqIG9uIFJlbmRlckxheWVyQ29t
cG9zaXRvciwKKyAgICAgICAgYWNjZXNzaWJsZSB0aHJvdWdoIEZyYW1lVmlldzo6c2Nyb2xsYWJs
ZUFyZWFGb3JTY3JvbGxMYXllcklEKCkuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoKKyAg
ICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRCk6CisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9Bc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OnVwZGF0
ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbCk6IEhhbmRsZQorICAgICAgICBvdmVyZmxv
dyBhcyB3ZWxsIGFzIG1haW4gZnJhbWUgc2Nyb2xsaW5nIG5vZGVzLgorICAgICAgICAqIHBhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZTo6dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKTogVXNlIGlzU2Nyb2xs
aW5nTm9kZSgpLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6c2Nyb2xsUG9zaXRp
b25DaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKTogV2hlbiBhbiBvdmVyZmxvdworICAgICAg
ICBzY3JvbGwgbm9kZSB3YXMgc2Nyb2xsZWQgZXh0ZXJuYWxseSwgd2UgaGF2ZSB0byB1cGRhdGUg
bGF5ZXJzIGluIGRlY2VuZGFudCBub2RlcywKKyAgICAgICAgYW5kIHRoZW4gY2FsbCBzY3JvbGxp
bmdUcmVlTm9kZURpZFNjcm9sbCgpIHdoaWNoIHRlbGxzIHRoZSBTY3JvbGxpbmdDb29yZGluYXRv
ciB0aGF0CisgICAgICAgIHdlIHNjcm9sbGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWUuaDogVHJ5IHRvIHJlZHVjZSBjb25mdXNpb24gYmV0d2VlbiB0aGUgcm9sZXMg
cGxheWVkCisgICAgICAgIGJ5IHRoZXNlIHZhcmlvdXMgZnVuY3Rpb25zLCBzb21lIG9mIHdoaWNo
IGhhcHBlbiBpbiB0aGUgVUkgcHJvY2VzcyB3aXRoIFVJLXNpZGUKKyAgICAgICAgY29tcG9zaXRp
bmcuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUu
aDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVJT1MuaDogTmVlZCBzb21lIGZ1bmN0aW9ucyB0byBiZQorICAgICAgICBjYWxsYWJsZSBieSBz
dWJjbGFzc2VzLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZUlPUy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlSU9TOjp1cGRhdGVMYXllcnNBZnRlckRlbGVnYXRlZFNjcm9sbCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZVNjcm9sbENvb3JkaW5hdGVkTGF5ZXIpOiBBZGQK
KyAgICAgICAgc2Nyb2xsaW5nIGxheWVycyB0byB0aGUgbV9zY3JvbGxpbmdOb2RlVG9MYXllck1h
cAorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkZXRhY2hTY3JvbGxD
b29yZGluYXRlZExheWVyKTogUmVtb3ZlCisgICAgICAgIGxheWVyIGZyb20gdGhlIG1fc2Nyb2xs
aW5nTm9kZVRvTGF5ZXJNYXAuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5oOgorCiAyMDE0LTAzLTI5ICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENsYXJpZnkgc29tZSBzY3JvbGxpbmcg
dHJlZSB0ZXJtaW5vbG9neQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGM1MzRlMzdiODU4MGY2MGEzYjFmNzAxZTA2
NTBjNzFlMDI1ZDg4OTYuLjRlYWM2ZDBkZWUwN2IyZDE2YTYzMjY5NWEwOTM2MjAyODlmODkzMzQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxNC0wMy0zMSAgU2ltb24gRnJhc2VyICA8
c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIFdLMl0gSG9vayB1cCBzY3Jv
bGwgZXZlbnRzIGZvciBhY2NlbGVyYXRlZCBvdmVyZmxvdzpzY3JvbGwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDk3NgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgV2hlbiBhbiBhY2NlbGVy
YXRlZCBvdmVyZmxvdzpzY3JvbGwgaXMgc2Nyb2xsZWQgaW4gdGhlIFVJIHByb2Nlc3MsCisgICAg
ICAgIHRlbGwgdGhlIFdlYlByb2Nlc3MgdGhhdCB0aGUgc2Nyb2xsIGhhcHBlbmVkIHRvIHVkcGF0
ZSBSZW5kZXJMYXllcgorICAgICAgICBzdGF0ZSBhbmQgZmlyZSBldmVudHMuCisgICAgICAgIAor
ICAgICAgICBBZGQgYSBXS092ZXJmbG93U2Nyb2xsVmlld0RlbGVnYXRlIHdoaWNoIGlzIHNldCBh
cyB0aGUgZGVsZWdhdGUgb2YKKyAgICAgICAgVUlTY3JvbGxWaWV3cywgb3duZWQgYnkgU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUywgYW5kIHByb3BhZ2F0ZXMKKyAgICAgICAg
LXNjcm9sbFZpZXdEaWRTY3JvbGw6IG1lc3NhZ2VzIHRvIFNjcm9sbGluZ1RyZWU6OnNjcm9sbFBv
c2l0aW9uQ2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZygpLAorICAgICAgICB3aGljaCB1cGRh
dGVzIGNoaWxkIGxheWVycyBhbmQgdGhlbiwgdmlhIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsLAorICAgICAgICB0ZWxscyB0aGUgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3Igd2hpY2ggc2VuZHMgYSBtZXNzYWdlIHRvIHRoZSBXZWJQcm9jZXNzLgorICAg
ICAgICAKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvclByb3h5OjpzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCk6IE5hbWUgY2hhbmdlCisgICAg
ICAgIHRvIHRyeSB0byByZWR1Y2UgY29uZnVzaW9uLgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQpOiBEZWxldGVk
LgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5n
VHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVNjcm9sbGluZ1RyZWU6OnNjcm9sbGlu
Z1RyZWVOb2RlRGlkU2Nyb2xsKToKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90
ZVNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbToK
KyAgICAgICAgKC1bV0tPdmVyZmxvd1Njcm9sbFZpZXdEZWxlZ2F0ZSBpbml0V2l0aFNjcm9sbGlu
Z1RyZWVOb2RlOldlYktpdDo6XSk6CisgICAgICAgICgtW1dLT3ZlcmZsb3dTY3JvbGxWaWV3RGVs
ZWdhdGUgc2Nyb2xsVmlld0RpZFNjcm9sbDpdKToKKyAgICAgICAgKC1bV0tPdmVyZmxvd1Njcm9s
bFZpZXdEZWxlZ2F0ZSBzY3JvbGxWaWV3V2lsbEJlZ2luRHJhZ2dpbmc6XSk6CisgICAgICAgICgt
W1dLT3ZlcmZsb3dTY3JvbGxWaWV3RGVsZWdhdGUgc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOndp
bGxEZWNlbGVyYXRlOl0pOgorICAgICAgICAoLVtXS092ZXJmbG93U2Nyb2xsVmlld0RlbGVnYXRl
IHNjcm9sbFZpZXdEaWRFbmRTY3JvbGxpbmdBbmltYXRpb246XSk6CisgICAgICAgIChXZWJLaXQ6
OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJT1M6On5TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlSU9TKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQmVmb3JlQ2hpbGRyZW4pOgorICAgICAgICAo
V2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVBZnRl
ckNoaWxkcmVuKToKKyAgICAgICAgKFdlYktpdDo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZUlPUzo6c2Nyb2xsVmlld0RpZFNjcm9sbCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9T
Y3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IubW06CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpzY3JvbGxQb3NpdGlvbkNoYW5nZWRGb3JOb2Rl
KTogTm8gbmVlZCBmb3IKKyAgICAgICAgcm91bmRpbmcuCisKIDIwMTQtMDMtMjkgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHNjcm9sbGluZyBv
biBPUyBYIHdpdGggVUktc2lkZSBjb21wb3NpdGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBi
ZTQ0ZTFkZGFkM2M2MThhZDEwYzIxYmYwYzZmYjgzMzYyZDdlNzJkLi45ZGUyYmQ3ZDA1ZGFmOWNi
NjdmYjk3MDI1ODQ3ZDdjYmU2ZThiZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmV4cC5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMjczOCw2
ICsyNzM4LDcgQEAgX19aTjdXZWJDb3JlMTNTY3JvbGxpbmdUcmVlMzJpc1BvaW50SW5Ob25GYXN0
U2Nyb2xsYWJsZVJlZ2lvbkVOU184SW50UG9pbnRFCiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1Ry
ZWUzNXNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5RVJLTlNfMThQbGF0Zm9ybVdo
ZWVsRXZlbnRFCiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1RyZWUzNnZpZXdwb3J0Q2hhbmdlZFZp
YURlbGVnYXRlZFNjcm9sbGluZ0V5UktOU185RmxvYXRSZWN0RWQKIF9fWk43V2ViQ29yZTEzU2Ny
b2xsaW5nVHJlZTM3c2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZEViCitfX1pO
N1dlYkNvcmUxM1Njcm9sbGluZ1RyZWU0MnNjcm9sbFBvc2l0aW9uQ2hhbmdlZFZpYURlbGVnYXRl
ZFNjcm9sbGluZ0V5UktOU18xMEZsb2F0UG9pbnRFCiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1Ry
ZWVDMkV2CiBfX1pON1dlYkNvcmUxM1Njcm9sbGluZ1RyZWVEMUV2CiBfX1pON1dlYkNvcmUxM1Nj
cm9sbGluZ1RyZWVEMkV2CkBAIC0yODAxLDYgKzI4MDIsNyBAQCBfX1pON1dlYkNvcmUyOVNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlSU9TMTdzZXRTY3JvbGxQb3NpdGlvbkVSS05TXzEwRmxvYXRQ
b2ludAogX19aTjdXZWJDb3JlMjlTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzE5dXBkYXRl
QWZ0ZXJDaGlsZHJlbkVSS05TXzE4U2Nyb2xsaW5nU3RhdGVOb2RlRQogX19aTjdXZWJDb3JlMjlT
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzIwdXBkYXRlQmVmb3JlQ2hpbGRyZW5FUktOU18x
OFNjcm9sbGluZ1N0YXRlTm9kZUUKIF9fWk43V2ViQ29yZTI5U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVJT1MzMXVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2VFUktOU185RmxvYXRSZWN0
RWQKK19fWk43V2ViQ29yZTI5U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MzMnVwZGF0ZUxh
eWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsRVJLTlNfMTBGbG9hdFBvaW50RQogX19aTjdXZWJDb3Jl
MjlTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzQ2c2V0U2Nyb2xsUG9zaXRpb25XaXRob3V0
Q29udGVudEVkZ2VDb25zdHJhaW50c0VSS05TXzEwRmxvYXRQb2ludEUKIF9fWk43V2ViQ29yZTI5
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1M2Y3JlYXRlRVJOU18xM1Njcm9sbGluZ1RyZWVF
TlNfMTdTY3JvbGxpbmdOb2RlVHlwZUV5CiBfX1pON1dlYkNvcmUyOVNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlSU9TQzJFUk5TXzEzU2Nyb2xsaW5nVHJlZUVOU18xN1Njcm9sbGluZ05vZGVUeXBl
RXkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBjNGJlNGFlMGU1OGM3ZGQ3ODJmMjMw
M2FhNjNmNjU0MTA1MGY3OGFkLi4zMzQwNTJmNDNkZGY3ZTczZGU3OGRkZTBlZWMzZWQ2OTVmYmM3
NzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC04MTcsNiArODE3LDE1IEBAIHVp
bnQ2NF90IEZyYW1lVmlldzo6c2Nyb2xsTGF5ZXJJRCgpIGNvbnN0CiAgICAgcmV0dXJuIGJhY2tp
bmctPnNjcm9sbGluZ05vZGVJRCgpOwogfQogCitTY3JvbGxhYmxlQXJlYSogRnJhbWVWaWV3Ojpz
Y3JvbGxhYmxlQXJlYUZvclNjcm9sbExheWVySUQodWludDY0X3Qgbm9kZUlEKSBjb25zdAorewor
ICAgIFJlbmRlclZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCk7CisgICAgaWYg
KCFyZW5kZXJWaWV3KQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIHJldHVybiByZW5k
ZXJWaWV3LT5jb21wb3NpdG9yKCkuc2Nyb2xsYWJsZUFyZWFGb3JTY3JvbGxMYXllcklEKG5vZGVJ
RCk7Cit9CisKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiBHcmFwaGljc0xheWVyKiBGcmFt
ZVZpZXc6OmxheWVyRm9yT3ZlcmhhbmdBcmVhcygpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXcuaAppbmRleCBiNDBlODg5ZDEyOGViMWQwYzE0Y2U5YjA2NDI5ZWM4YzViNGYzZWNiLi4zZjI3
OGMwZjQ0OTE1ZDI4ZWQ2MTY5Mjc4ZDdhOWNlMWNiNjNjNWIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3LmgKQEAgLTE1Niw2ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgLy8gSW4gdGhlIGZ1dHVyZSB3
aGVuIGFueSBTY3JvbGxhYmxlQXJlYSBjYW4gaGF2ZSBhIG5vZGUgaW4gdGggU2Nyb2xsaW5nVHJl
ZSwgdGhpcyBzaG91bGQKICAgICAvLyBiZWNvbWUgYSB2aXJ0dWFsIGZ1bmN0aW9uIG9uIFNjcm9s
bGFibGVBcmVhLgogICAgIHVpbnQ2NF90IHNjcm9sbExheWVySUQoKSBjb25zdDsKKyAgICBTY3Jv
bGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWFGb3JTY3JvbGxMYXllcklEKHVpbnQ2NF90KSBjb25z
dDsKIAogICAgIGJvb2wgaGFzQ29tcG9zaXRlZENvbnRlbnQoKSBjb25zdDsKICAgICBib29sIGhh
c0NvbXBvc2l0ZWRDb250ZW50SW5jbHVkaW5nRGVzY2VuZGFudHMoKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0FzeW5jU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAKaW5kZXggZjhmMjUyMTAxNzIzMGRjZTIyYzZhZTE3NDNhODgxMTkzNmIwZDFl
OS4uOWU3YTljOTIyMzg4NTE1M2I3MDFhNzlhZjgwMTA4ZTMxYzkyZGFjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvci5jcHAKQEAgLTE5NCwxNiArMTk0LDE3IEBAIHZvaWQgQXN5bmNTY3JvbGxpbmdDb29y
ZGluYXRvcjo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BZnRlckFzeW5jU2Nyb2xsKFNjcm9sbGluZ05v
CiAgICAgaWYgKCFmcmFtZVZpZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIGJvb2wgb2xkUHJv
Z3JhbW1hdGljU2Nyb2xsID0gZnJhbWVWaWV3LT5pblByb2dyYW1tYXRpY1Njcm9sbCgpOwotICAg
IGZyYW1lVmlldy0+c2V0SW5Qcm9ncmFtbWF0aWNTY3JvbGwocHJvZ3JhbW1hdGljU2Nyb2xsKTsK
KyAgICAvLyBNYWluIGZyYW1lLgorICAgIGlmIChzY3JvbGxpbmdOb2RlSUQgPT0gZnJhbWVWaWV3
LT5zY3JvbGxMYXllcklEKCkpIHsKKyAgICAgICAgYm9vbCBvbGRQcm9ncmFtbWF0aWNTY3JvbGwg
PSBmcmFtZVZpZXctPmluUHJvZ3JhbW1hdGljU2Nyb2xsKCk7CisgICAgICAgIGZyYW1lVmlldy0+
c2V0SW5Qcm9ncmFtbWF0aWNTY3JvbGwocHJvZ3JhbW1hdGljU2Nyb2xsKTsKIAotICAgIGZyYW1l
Vmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoZmFsc2UpOwotICAgIGZy
YW1lVmlldy0+bm90aWZ5U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKHJvdW5kZWRJbnRQb2ludChzY3Jv
bGxQb3NpdGlvbikpOwotICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29u
dGVudEVkZ2UodHJ1ZSk7CisgICAgICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGlu
Z1RvQ29udGVudEVkZ2UoZmFsc2UpOworICAgICAgICBmcmFtZVZpZXctPm5vdGlmeVNjcm9sbFBv
c2l0aW9uQ2hhbmdlZChyb3VuZGVkSW50UG9pbnQoc2Nyb2xsUG9zaXRpb24pKTsKKyAgICAgICAg
ZnJhbWVWaWV3LT5zZXRDb25zdHJhaW5zU2Nyb2xsaW5nVG9Db250ZW50RWRnZSh0cnVlKTsKIAot
ICAgIGZyYW1lVmlldy0+c2V0SW5Qcm9ncmFtbWF0aWNTY3JvbGwob2xkUHJvZ3JhbW1hdGljU2Ny
b2xsKTsKKyAgICAgICAgZnJhbWVWaWV3LT5zZXRJblByb2dyYW1tYXRpY1Njcm9sbChvbGRQcm9n
cmFtbWF0aWNTY3JvbGwpOwogCi0gICAgaWYgKHNjcm9sbGluZ05vZGVJRCA9PSBmcmFtZVZpZXct
PnNjcm9sbExheWVySUQoKSkgewogICAgICAgICBpZiAoR3JhcGhpY3NMYXllciogc2Nyb2xsTGF5
ZXIgPSBzY3JvbGxMYXllckZvckZyYW1lVmlldyhmcmFtZVZpZXcpKSB7CiAgICAgICAgICAgICBH
cmFwaGljc0xheWVyKiBjb3VudGVyU2Nyb2xsaW5nTGF5ZXIgPSBjb3VudGVyU2Nyb2xsaW5nTGF5
ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKICAgICAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIGhl
YWRlckxheWVyID0gaGVhZGVyTGF5ZXJGb3JGcmFtZVZpZXcoZnJhbWVWaWV3KTsKQEAgLTIzMSw4
ICsyMzIsMTMgQEAgdm9pZCBBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9yOjp1cGRhdGVTY3JvbGxQ
b3NpdGlvbkFmdGVyQXN5bmNTY3JvbGwoU2Nyb2xsaW5nTm8KICAgICAgICAgICAgICAgICBzeW5j
Q2hpbGRQb3NpdGlvbnModmlld3BvcnRSZWN0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQor
CisgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgLy8gRklYTUU6IGhhbmRsZSBub24tbWFpbiBz
Y3JvbGxpbmcgbm9kZXMuCisKKyAgICAvLyBPdmVyZmxvdy1zY3JvbGwgYXJlYS4KKyAgICBpZiAo
U2Nyb2xsYWJsZUFyZWEqIHNjcm9sbGFibGVBcmVhID0gZnJhbWVWaWV3LT5zY3JvbGxhYmxlQXJl
YUZvclNjcm9sbExheWVySUQoc2Nyb2xsaW5nTm9kZUlEKSkKKyAgICAgICAgc2Nyb2xsYWJsZUFy
ZWEtPnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1hdGlvbihzY3JvbGxQb3NpdGlvbik7CiB9CiAK
IHZvaWQgQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsYWJsZUFyZWFTY3JvbGxiYXJM
YXllckRpZENoYW5nZShTY3JvbGxhYmxlQXJlYSogc2Nyb2xsYWJsZUFyZWEsIFNjcm9sbGJhck9y
aWVudGF0aW9uIG9yaWVudGF0aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCAxZGM4ZTYxZDJhMjQwMzU2NzE4Njk5N2UzY2ViOTEz
Zjc0MmYyNjMyLi5iZWY4MWU0NzE4Y2M2Y2Y4MjMxOGQ1MzE1YTdmNDY2M2Y4Njg4MWE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAt
MTA0LDEyICsxMDQsMjggQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjp2aWV3cG9ydENoYW5nZWRWaWFE
ZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlEIG5vZGVJRCwKICAgICBpZiAoIW5vZGUp
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChub2RlLT5ub2RlVHlwZSgpICE9IEZyYW1lU2Ny
b2xsaW5nTm9kZSAmJiBub2RlLT5ub2RlVHlwZSgpICE9IE92ZXJmbG93U2Nyb2xsaW5nTm9kZSkK
KyAgICBpZiAoIW5vZGUtPmlzU2Nyb2xsaW5nTm9kZSgpKQogICAgICAgICByZXR1cm47CiAKICAg
ICB0b1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlKG5vZGUpLT51cGRhdGVMYXllcnNBZnRlclZp
ZXdwb3J0Q2hhbmdlKHZpZXdwb3J0UmVjdCwgc2NhbGUpOwogfQogCit2b2lkIFNjcm9sbGluZ1Ry
ZWU6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZFZpYURlbGVnYXRlZFNjcm9sbGluZyhTY3JvbGxpbmdO
b2RlSUQgbm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikK
K3sKKyAgICBTY3JvbGxpbmdUcmVlTm9kZSogbm9kZSA9IG5vZGVGb3JJRChub2RlSUQpOworICAg
IGlmICghbm9kZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG5vZGUtPm5vZGVUeXBlKCkg
IT0gT3ZlcmZsb3dTY3JvbGxpbmdOb2RlKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBVcGRh
dGUgZGVzY2VuZGFudCBub2RlcworICAgIHRvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUobm9k
ZSktPnVwZGF0ZUxheWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKHNjcm9sbFBvc2l0aW9uKTsKKwor
ICAgIC8vIFVwZGF0ZSBHcmFwaGljc0xheWVycyBhbmQgc2Nyb2xsIHN0YXRlLgorICAgIHNjcm9s
bGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24pOworfQorCiB2b2lk
IFNjcm9sbGluZ1RyZWU6OmNvbW1pdE5ld1RyZWVTdGF0ZShQYXNzT3duUHRyPFNjcm9sbGluZ1N0
YXRlVHJlZT4gc2Nyb2xsaW5nU3RhdGVUcmVlKQogewogICAgIGJvb2wgcm9vdFN0YXRlTm9kZUNo
YW5nZWQgPSBzY3JvbGxpbmdTdGF0ZVRyZWUtPmhhc05ld1Jvb3RTdGF0ZU5vZGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAppbmRleCAzMjBmNTRl
YTdjOWM3MmUwYjI0NGMyNWNjZmIxMjQyY2ZiNDMxNmEwLi5hY2E2NGZkMWEyODk4NzVjNGY5NGZh
ZWFiM2ZkOTgzNzBkMTkzNDRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCkBAIC02Myw4ICs2Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEV2
ZW50UmVzdWx0IHRyeVRvSGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQm
KSA9IDA7CiAgICAgYm9vbCBzaG91bGRIYW5kbGVXaGVlbEV2ZW50U3luY2hyb25vdXNseShjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgdmlld3BvcnRD
aGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29y
ZTo6RmxvYXRSZWN0JiB2aWV3cG9ydFJlY3QsIGRvdWJsZSBzY2FsZSk7Ci0KICAgICB2b2lkIHNl
dE1haW5GcmFtZUlzUnViYmVyQmFuZGluZyhib29sKTsKICAgICBib29sIGlzUnViYmVyQmFuZElu
UHJvZ3Jlc3MoKTsKIApAQCAtNzMsNyArNzEsMTggQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRN
YWluRnJhbWVQaW5TdGF0ZShib29sIHBpbm5lZFRvVGhlTGVmdCwgYm9vbCBwaW5uZWRUb1RoZVJp
Z2h0LCBib29sIHBpbm5lZFRvVGhlVG9wLCBib29sIHBpbm5lZFRvVGhlQm90dG9tKTsKIAorICAg
IC8vIENhbGxlZCBhZnRlciBhIHNjcm9sbGluZyB0cmVlIG5vZGUgaGFzIGhhbmRsZWQgYSBzY3Jv
bGwgYW5kIHVwZGF0ZWQgaXRzIGxheWVycy4KKyAgICAvLyBVcGRhdGVzIEZyYW1lVmlldy9SZW5k
ZXJMYXllciBzY3JvbGxpbmcgc3RhdGUgYW5kIEdyYXBoaWNzTGF5ZXJzLgogICAgIHZpcnR1YWwg
dm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChTY3JvbGxpbmdOb2RlSUQsIGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
ID0gU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24pID0gMDsKKworICAgIC8vIERlbGVnYXRlZCBz
Y3JvbGxpbmcvem9vbWluZyBoYXMgY2F1c2VkIHRoZSB2aWV3cG9ydCB0byBjaGFuZ2UsIHNvIHVw
ZGF0ZSB2aWV3cG9ydC1jb25zdHJhaW5lZCBsYXllcnMKKyAgICAvLyAoYnV0IGRvbid0IGNhdXNl
IHNjcm9sbCBldmVudHMgdG8gYmUgZmlyZWQpLgorICAgIHZpcnR1YWwgdm9pZCB2aWV3cG9ydENo
YW5nZWRWaWFEZWxlZ2F0ZWRTY3JvbGxpbmcoU2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwgZG91YmxlIHNjYWxlKTsKKworICAgIC8vIERlbGVn
YXRlZCBzY3JvbGxpbmcgaGFzIHNjcm9sbGVkIGEgbm9kZS4gVXBkYXRlIGxheWVyIHBvc2l0aW9u
cyBvbiBkZXNjZW5kYW50IHRyZWUgbm9kZXMsCisgICAgLy8gYW5kIGNhbGwgc2Nyb2xsaW5nVHJl
ZU5vZGVEaWRTY3JvbGwoKS4KKyAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2Vk
VmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sbGluZ05vZGVJRCwgY29uc3QgV2ViQ29yZTo6Rmxv
YXRQb2ludCYgc2Nyb2xsUG9zaXRpb24pOworCiAgICAgRmxvYXRQb2ludCBtYWluRnJhbWVTY3Jv
bGxQb3NpdGlvbigpOwogCiAgICAgYm9vbCBpc1BvaW50SW5Ob25GYXN0U2Nyb2xsYWJsZVJlZ2lv
bihJbnRQb2ludCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaAppbmRleCA0MTkxOTdiYmFmYTVjYTIwMjhh
M2Y3MDUwMWFhYTZkNGI2NzllNmZjLi4yYzcyYmZkNDVlZjI4MTc2N2EwNGIwNTE2NmUyOGNkMTNi
YmFlYzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKQEAgLTU0LDcgKzU0LDggQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbldpdGhvdXRDb250ZW50RWRnZUNvbnN0
cmFpbnRzKGNvbnN0IEZsb2F0UG9pbnQmKSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRl
TGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShjb25zdCBGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwg
ZG91YmxlIHNjYWxlKSA9IDA7Ci0gICAgCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxheWVyc0Fm
dGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSB7IH0KKwogICAgIFN5bmNocm9u
b3VzU2Nyb2xsaW5nUmVhc29ucyBzeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnMoKSBjb25zdCB7
IHJldHVybiBtX3N5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uczsgfQogICAgIGJvb2wgc2hvdWxk
VXBkYXRlU2Nyb2xsTGF5ZXJQb3NpdGlvblN5bmNocm9ub3VzbHkoKSBjb25zdCB7IHJldHVybiBt
X3N5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29uczsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVJT1MuaCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZUlPUy5oCmluZGV4IDdiZDRlNzJhZDJiZmEyMTg4YjE0MTc1OWQ5Njg0MDlkMzBiNDYxYzgu
LmMzZWU5NWEyMjNiMjJjZmNmNDNlMTE0NGZhZTNhMTk3YjU2NDAwNTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZUlPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZUlPUy5oCkBAIC01MCwxMiArNTAsMTIgQEAgcHJvdGVjdGVkOgogCiAg
ICAgQ0FMYXllciAqc2Nyb2xsTGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbExheWVyLmdl
dCgpOyB9CiAKLXByaXZhdGU6CiAgICAgRmxvYXRQb2ludCBzY3JvbGxQb3NpdGlvbigpIGNvbnN0
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jikg
b3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFBvc2l0aW9uV2l0aG91dENvbnRl
bnRFZGdlQ29uc3RyYWludHMoY29uc3QgRmxvYXRQb2ludCYpIG92ZXJyaWRlOwogCiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUxheWVyc0FmdGVyVmlld3BvcnRDaGFuZ2UoY29uc3QgRmxvYXRSZWN0
JiB2aWV3cG9ydFJlY3QsIGRvdWJsZSBzY2FsZSk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxh
eWVyc0FmdGVyRGVsZWdhdGVkU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSBvdmVycmlkZTsKIAog
ICAgIHZvaWQgc2V0U2Nyb2xsTGF5ZXJQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAKQEAg
LTY1LDYgKzY1LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNjcm9sbEJ5KGNvbnN0IEludFNpemUm
KTsKICAgICB2b2lkIHNjcm9sbEJ5V2l0aG91dENvbnRlbnRFZGdlQ29uc3RyYWludHMoY29uc3Qg
SW50U2l6ZSYpOwogCitwcml2YXRlOgorICAgIHZvaWQgdXBkYXRlQ2hpbGROb2Rlc0FmdGVyU2Ny
b2xsKGNvbnN0IEZsb2F0UG9pbnQmKTsKKwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3Njcm9s
bExheWVyOwogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3Njcm9sbGVkQ29udGVudHNMYXllcjsK
ICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbV9jb3VudGVyU2Nyb2xsaW5nTGF5ZXI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9pb3MvU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVJT1MubW0KaW5kZXggZjM0NzcyMTRhNjNhMzMzZTE5ZmUyZmU3
ODExMWNkZTY0YjAwYTE3ZS4uODBjOTU1M2Q5NjI2NjBkZWY4MGVkZjVmM2YyZDQ4NGQ5YjgzNWEz
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvaW9zL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL2lvcy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUy5tbQpAQCAtMTI5LDE2ICsxMjks
MzggQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsUG9zaXRp
b25XaXRob3V0Q29udGVudEVkZ2VDb25zdHJhaW4KICAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xs
aW5nVHJlZU5vZGVEaWRTY3JvbGwoc2Nyb2xsaW5nTm9kZUlEKCksIHNjcm9sbFBvc2l0aW9uKTsK
IH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Nyb2xsTGF5ZXJQ
b3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbikKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVJT1M6OnNldFNjcm9sbExheWVyUG9zaXRpb24oY29uc3QgRmxvYXRQb2ludCYg
c2Nyb2xsUG9zaXRpb24pCiB7CiAgICAgQVNTRVJUKCFzaG91bGRVcGRhdGVTY3JvbGxMYXllclBv
c2l0aW9uU3luY2hyb25vdXNseSgpKTsKLSAgICBbbV9zY3JvbGxMYXllciBzZXRQb3NpdGlvbjpD
R1BvaW50TWFrZSgtcG9zaXRpb24ueCgpICsgc2Nyb2xsT3JpZ2luKCkueCgpLCAtcG9zaXRpb24u
eSgpICsgc2Nyb2xsT3JpZ2luKCkueSgpKV07CisgICAgW21fc2Nyb2xsTGF5ZXIgc2V0UG9zaXRp
b246Q0dQb2ludE1ha2UoLXNjcm9sbFBvc2l0aW9uLngoKSArIHNjcm9sbE9yaWdpbigpLngoKSwg
LXNjcm9sbFBvc2l0aW9uLnkoKSArIHNjcm9sbE9yaWdpbigpLnkoKSldOwogCisgICAgdXBkYXRl
Q2hpbGROb2Rlc0FmdGVyU2Nyb2xsKHNjcm9sbFBvc2l0aW9uKTsKK30KKwordm9pZCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJWaWV3cG9ydENoYW5nZShj
b25zdCBGbG9hdFJlY3QmIHZpZXdwb3J0UmVjdCwgZG91YmxlIHNjYWxlKQoreworICAgIFttX2Nv
dW50ZXJTY3JvbGxpbmdMYXllciBzZXRQb3NpdGlvbjp2aWV3cG9ydFJlY3QubG9jYXRpb24oKV07
CisKKyAgICBpZiAoIW1fY2hpbGRyZW4pCisgICAgICAgIHJldHVybjsKKworICAgIEZsb2F0UmVj
dCB2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0c1JlY3QgPSBGcmFtZVZpZXc6OnJlY3RGb3JWaWV3
cG9ydENvbnN0cmFpbmVkT2JqZWN0cyhlbmNsb3NpbmdMYXlvdXRSZWN0KHZpZXdwb3J0UmVjdCks
IHRvdGFsQ29udGVudHNTaXplKCksIHNjYWxlLCBmYWxzZSwgc2Nyb2xsQmVoYXZpb3JGb3JGaXhl
ZEVsZW1lbnRzKCkpOworCisgICAgc2l6ZV90IHNpemUgPSBtX2NoaWxkcmVuLT5zaXplKCk7Cisg
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpCisgICAgICAgIG1fY2hpbGRyZW4t
PmF0KGkpLT5wYXJlbnRTY3JvbGxQb3NpdGlvbkRpZENoYW5nZSh2aWV3cG9ydENvbnN0cmFpbmVk
T2JqZWN0c1JlY3QsIEZsb2F0U2l6ZSgpKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZUlPUzo6dXBkYXRlTGF5ZXJzQWZ0ZXJEZWxlZ2F0ZWRTY3JvbGwoY29uc3QgRmxvYXRQ
b2ludCYgc2Nyb2xsUG9zaXRpb24pCit7CisgICAgdXBkYXRlQ2hpbGROb2Rlc0FmdGVyU2Nyb2xs
KHNjcm9sbFBvc2l0aW9uKCkpOworfQorCit2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
SU9TOjp1cGRhdGVDaGlsZE5vZGVzQWZ0ZXJTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgc2Nyb2xs
UG9zaXRpb24pCit7CiAgICAgU2Nyb2xsQmVoYXZpb3JGb3JGaXhlZEVsZW1lbnRzIGJlaGF2aW9y
Rm9yRml4ZWQgPSBzY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMoKTsKLSAgICBGbG9hdFBv
aW50IHNjcm9sbE9mZnNldCA9IHBvc2l0aW9uIC0gdG9JbnRTaXplKHNjcm9sbE9yaWdpbigpKTsK
KyAgICBGbG9hdFBvaW50IHNjcm9sbE9mZnNldCA9IHNjcm9sbFBvc2l0aW9uIC0gdG9JbnRTaXpl
KHNjcm9sbE9yaWdpbigpKTsKICAgICBGbG9hdFJlY3Qgdmlld3BvcnRSZWN0KEZsb2F0UG9pbnQo
KSwgdmlld3BvcnRTaXplKCkpOwotICAgIAotICAgIC8vIEZJWE1FOiBzY3JvbGxPZmZzZXRGb3JG
aXhlZFBvc2l0aW9uKCkgbmVlZHMgdG8gZG8gZmxvYXQgbWF0aC4KICAgICBGbG9hdFNpemUgc2Ny
b2xsT2Zmc2V0Rm9yRml4ZWRDaGlsZHJlbiA9IEZyYW1lVmlldzo6c2Nyb2xsT2Zmc2V0Rm9yRml4
ZWRQb3NpdGlvbihlbmNsb3NpbmdMYXlvdXRSZWN0KHZpZXdwb3J0UmVjdCksIHRvdGFsQ29udGVu
dHNTaXplKCksIGZsb29yZWRJbnRQb2ludChzY3JvbGxPZmZzZXQpLCBzY3JvbGxPcmlnaW4oKSwg
ZnJhbWVTY2FsZUZhY3RvcigpLCBmYWxzZSwgYmVoYXZpb3JGb3JGaXhlZCwgaGVhZGVySGVpZ2h0
KCksIGZvb3RlckhlaWdodCgpKTsKIAogICAgIFttX2NvdW50ZXJTY3JvbGxpbmdMYXllciBzZXRQ
b3NpdGlvbjpGbG9hdFBvaW50KHNjcm9sbE9mZnNldEZvckZpeGVkQ2hpbGRyZW4pXTsKQEAgLTE3
MCwyMCArMTkyLDYgQEAgdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6c2V0U2Ny
b2xsTGF5ZXJQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb3MKICAgICAgICAgbV9jaGlsZHJl
bi0+YXQoaSktPnBhcmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKHZpZXdwb3J0Q29uc3RyYWlu
ZWRPYmplY3RzUmVjdCwgRmxvYXRTaXplKCkpOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlSU9TOjp1cGRhdGVMYXllcnNBZnRlclZpZXdwb3J0Q2hhbmdlKGNvbnN0IEZsb2F0
UmVjdCYgdmlld3BvcnRSZWN0LCBkb3VibGUgc2NhbGUpCi17Ci0gICAgW21fY291bnRlclNjcm9s
bGluZ0xheWVyIHNldFBvc2l0aW9uOnZpZXdwb3J0UmVjdC5sb2NhdGlvbigpXTsKLQotICAgIGlm
ICghbV9jaGlsZHJlbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgRmxvYXRSZWN0IHZpZXdwb3J0
Q29uc3RyYWluZWRPYmplY3RzUmVjdCA9IEZyYW1lVmlldzo6cmVjdEZvclZpZXdwb3J0Q29uc3Ry
YWluZWRPYmplY3RzKGVuY2xvc2luZ0xheW91dFJlY3Qodmlld3BvcnRSZWN0KSwgdG90YWxDb250
ZW50c1NpemUoKSwgc2NhbGUsIGZhbHNlLCBzY3JvbGxCZWhhdmlvckZvckZpeGVkRWxlbWVudHMo
KSk7Ci0KLSAgICBzaXplX3Qgc2l6ZSA9IG1fY2hpbGRyZW4tPnNpemUoKTsKLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKLSAgICAgICAgbV9jaGlsZHJlbi0+YXQoaSktPnBh
cmVudFNjcm9sbFBvc2l0aW9uRGlkQ2hhbmdlKHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzUmVj
dCwgRmxvYXRTaXplKCkpOwotfQotCiBGbG9hdFBvaW50IFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlSU9TOjptaW5pbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdAogewogICAgIEZsb2F0UG9pbnQg
cG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCmluZGV4IGU4ZDE2NzBmZGQwZGE0YTNiZDA4N2UwZWNhZTA5MzRjMTcxYzUz
MWYuLjgxZjEzMTk3YWNkOTZmMDhkMDllYjNjMTU3YzM2NDg0YmU5ZWI5ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC0z
NTE1LDYgKzM1MTUsNyBAQCB2b2lkIFJlbmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlU2Nyb2xs
Q29vcmRpbmF0ZWRMYXllcihSZW5kZXJMYXllciYgbGF5ZXIsIFNjcgogCiAgICAgICAgIG5vZGVJ
RCA9IHNjcm9sbGluZ0Nvb3JkaW5hdG9yLT5hdHRhY2hUb1N0YXRlVHJlZShpc1Jvb3RMYXllciA/
IEZyYW1lU2Nyb2xsaW5nTm9kZSA6IE92ZXJmbG93U2Nyb2xsaW5nTm9kZSwgbm9kZUlELCBwYXJl
bnROb2RlSUQpOwogICAgICAgICBiYWNraW5nLT5zZXRTY3JvbGxpbmdOb2RlSUQobm9kZUlEKTsK
KyAgICAgICAgbV9zY3JvbGxpbmdOb2RlVG9MYXllck1hcC5hZGQobm9kZUlELCAmbGF5ZXIpOwog
CiAgICAgICAgIEdyYXBoaWNzTGF5ZXIqIHNjcm9sbGluZ0xheWVyID0gYmFja2luZy0+c2Nyb2xs
aW5nTGF5ZXIoKTsKICAgICAgICAgR3JhcGhpY3NMYXllciogc2Nyb2xsZWRDb250ZW50c0xheWVy
ID0gYmFja2luZy0+c2Nyb2xsaW5nQ29udGVudHNMYXllcigpOwpAQCAtMzUzNyw4ICszNTM4LDIy
IEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjp1cGRhdGVTY3JvbGxDb29yZGluYXRlZExh
eWVyKFJlbmRlckxheWVyJiBsYXllciwgU2NyCiAKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9y
OjpkZXRhY2hTY3JvbGxDb29yZGluYXRlZExheWVyKFJlbmRlckxheWVyJiBsYXllcikKIHsKLSAg
ICBpZiAoUmVuZGVyTGF5ZXJCYWNraW5nKiBiYWNraW5nID0gbGF5ZXIuYmFja2luZygpKQotICAg
ICAgICBiYWNraW5nLT5kZXRhY2hGcm9tU2Nyb2xsaW5nQ29vcmRpbmF0b3IoKTsKKyAgICBSZW5k
ZXJMYXllckJhY2tpbmcqIGJhY2tpbmcgPSBsYXllci5iYWNraW5nKCk7CisgICAgaWYgKCFiYWNr
aW5nKQorICAgICAgICByZXR1cm47CisKKyAgICBiYWNraW5nLT5kZXRhY2hGcm9tU2Nyb2xsaW5n
Q29vcmRpbmF0b3IoKTsKKworICAgIGlmIChTY3JvbGxpbmdOb2RlSUQgbm9kZUlEID0gYmFja2lu
Zy0+c2Nyb2xsaW5nTm9kZUlEKCkpCisgICAgICAgIG1fc2Nyb2xsaW5nTm9kZVRvTGF5ZXJNYXAu
cmVtb3ZlKG5vZGVJRCk7Cit9CisKK1Njcm9sbGFibGVBcmVhKiBSZW5kZXJMYXllckNvbXBvc2l0
b3I6OnNjcm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRChTY3JvbGxpbmdOb2RlSUQgbm9kZUlE
KSBjb25zdAoreworICAgIGlmICghbm9kZUlEKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKwor
ICAgIHJldHVybiBtX3Njcm9sbGluZ05vZGVUb0xheWVyTWFwLmdldChub2RlSUQpOwogfQogCiAj
aWYgUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQ29tcG9zaXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQ29tcG9zaXRvci5oCmluZGV4IGMyMDhiODFiZjAzMDc4ZjEzYThjNWM0Y2I3YzU2NDlmYmJl
ZTg4YjEuLjA0MmVlMmZmYzIxMzY4ZGNlM2ZlNzkxMGIxY2M1YWVhMjFkN2NmYTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmgKQEAgLTI2
Niw2ICsyNjYsOCBAQCBwdWJsaWM6CiAgICAgR3JhcGhpY3NMYXllciogdXBkYXRlTGF5ZXJGb3JG
b290ZXIoYm9vbCB3YW50c0xheWVyKTsKICNlbmRpZgogCisgICAgU2Nyb2xsYWJsZUFyZWEqIHNj
cm9sbGFibGVBcmVhRm9yU2Nyb2xsTGF5ZXJJRChTY3JvbGxpbmdOb2RlSUQpIGNvbnN0OworCiAg
ICAgdm9pZCB1cGRhdGVTY3JvbGxDb29yZGluYXRlZFN0YXR1cyhSZW5kZXJMYXllciYpOwogICAg
IHZvaWQgcmVtb3ZlRnJvbVNjcm9sbENvb3JkaW5hdGVkTGF5ZXJzKFJlbmRlckxheWVyJik7CiAK
QEAgLTUxOSw2ICs1MjEsOCBAQCBwcml2YXRlOgogI2VuZGlmCiAKICAgICBDb2xvciBtX3Jvb3RF
eHRlbmRlZEJhY2tncm91bmRDb2xvcjsKKworICAgIEhhc2hNYXA8U2Nyb2xsaW5nTm9kZUlELCBS
ZW5kZXJMYXllcio+IG1fc2Nyb2xsaW5nTm9kZVRvTGF5ZXJNYXA7CiB9OwogCiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1Jl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDQyNmY5ZWUxMTkyNzY1MjNl
ZTQ5Y2YxY2IzOTg2YTNiZjNjMTk1MWYuLjEwYTBmNDhjYzlhZTBlNTcyNDAzOTMxMGZhYTM0MWMy
NzZhMmY5NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApA
QCAtMTUwLDcgKzE1MCw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6
dmlld3BvcnRDaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKFNjcm9sCiB9CiAKIC8vIFRoaXMg
Y29tZXMgZnJvbSB0aGUgc2Nyb2xsaW5nIHRyZWUuCi12b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZChXZWJDb3JlOjpTY3JvbGxpbmdOb2Rl
SUQgc2Nyb2xsZWROb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBv
c2l0aW9uKQordm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzY3JvbGxpbmdU
cmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQgc2Nyb2xsZWROb2RlSUQs
IGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9uKQogewogICAgIC8v
IFNjcm9sbCB1cGRhdGVzIGZvciB0aGUgbWFpbiBmcmFtZSBhcmUgc2VudCB2aWEgV2ViUGFnZVBy
b3h5Ojp1cGRhdGVWaXNpYmxlQ29udGVudFJlY3RzKCkKICAgICAvLyBzbyBkb24ndCBzZW5kIHRo
ZW0gaGVyZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcv
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKaW5kZXggN2Vl
OTgxYzUzZTRkYTk4YzNmYmU0OWQ1ZDA3NmI2ZTA0ZWI2N2FmMy4uMTZjOGQ0ODdkNzcwYThiNWVj
OTExNGRlZmJiNWNmYjYwY2UxYzZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgflJlbW90ZVNj
cm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkoKTsKICAgICAKICAgICAvLyBJbmZvcm0gdGhlIHdlYiBw
cm9jZXNzIHRoYXQgdGhlIHNjcm9sbCBwb3NpdGlvbiBjaGFuZ2VkIChjYWxsZWQgZnJvbSB0aGUg
c2Nyb2xsaW5nIHRyZWUpCi0gICAgdm9pZCBzY3JvbGxQb3NpdGlvbkNoYW5nZWQoV2ViQ29yZTo6
U2Nyb2xsaW5nTm9kZUlELCBjb25zdCBXZWJDb3JlOjpGbG9hdFBvaW50JiBuZXdTY3JvbGxQb3Np
dGlvbik7CisgICAgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3Jv
bGxpbmdOb2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIG5ld1Njcm9sbFBvc2l0aW9u
KTsKIAogICAgIGJvb2wgaXNQb2ludEluTm9uRmFzdFNjcm9sbGFibGVSZWdpb24oY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggNmJmMTMy
NjQ5Y2IzNDA3MWNkM2ViM2E2MWVlZDhhNTY5MTE1YWYwOC4uZjhjOTVjYjZkYTg1ZmI3ZmNmNzk5
NzdhZDg3NTRiMDYxMDcyM2UyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ1RyZWUuY3BwCkBAIC03OSw3ICs3OSw3
IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudFBoYXNlKFBsYXRm
b3JtV2hlZWxFdmVudFBoYXNlIHBoYXNlKQogCiB2b2lkIFJlbW90ZVNjcm9sbGluZ1RyZWU6OnNj
cm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFNjcm9sbGluZ05vZGVJRCBub2RlSUQsIGNvbnN0IEZs
b2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9u
KQogewotICAgIG1fc2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5zY3JvbGxQb3NpdGlvbkNoYW5n
ZWQobm9kZUlELCBzY3JvbGxQb3NpdGlvbik7CisgICAgbV9zY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5LnNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKG5vZGVJRCwgc2Nyb2xsUG9zaXRpb24pOwog
fQogCiBQYXNzT3duUHRyPFNjcm9sbGluZ1RyZWVOb2RlPiBSZW1vdGVTY3JvbGxpbmdUcmVlOjpj
cmVhdGVOb2RlKFNjcm9sbGluZ05vZGVUeXBlIG5vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQgbm9k
ZUlEKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9SZW1v
dGVTY3JvbGxpbmdUcmVlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1Jl
bW90ZVNjcm9sbGluZ1RyZWUuaAppbmRleCBlZDVhNzIwOGMzNmYzYmM1ZmE2MzQ4NDkyZmE2Mzk4
NjI3Yzk2MGRmLi41MWYwYWRmNGFmMTM1Y2M2NGM2NmYwY2U3ODU1ZTU1MjVkMGFkNzI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGlu
Z1RyZWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNj
cm9sbGluZ1RyZWUuaApAQCAtNDYsMTMgKzQ2LDE0IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IFJl
bW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHkmIHNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHko
KSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7IH0KIAorICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbChXZWJDb3JlOjpTY3JvbGxpbmdO
b2RlSUQsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBXZWJDb3Jl
OjpTZXRPclN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uID0gV2ViQ29yZTo6U3luY1Njcm9sbGlu
Z0xheWVyUG9zaXRpb24pIG92ZXJyaWRlOworCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IFJlbW90
ZVNjcm9sbGluZ1RyZWUoUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eSYpOwogCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50UGhhc2UoV2Vi
Q29yZTo6UGxhdGZvcm1XaGVlbEV2ZW50UGhhc2UpIG92ZXJyaWRlOwogI2VuZGlmCi0gICAgdmly
dHVhbCB2b2lkIHNjcm9sbGluZ1RyZWVOb2RlRGlkU2Nyb2xsKFdlYkNvcmU6OlNjcm9sbGluZ05v
ZGVJRCwgY29uc3QgV2ViQ29yZTo6RmxvYXRQb2ludCYgc2Nyb2xsUG9zaXRpb24sIFdlYkNvcmU6
OlNldE9yU3luY1Njcm9sbGluZ0xheWVyUG9zaXRpb24gPSBXZWJDb3JlOjpTeW5jU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbikgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8V2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZU5vZGUoV2ViQ29yZTo6U2Nyb2xsaW5nTm9kZVR5
cGUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlSU9TLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLmgKaW5kZXggNjMwYjliNzUyYzI0
OGY4MGI0ZjM2OTJkZjExYTZmOTQzODJjMjFlMC4uNjVkNDQ0NDY5NmI4MTFlOWQ4NDM2N2E5NTAw
N2ZlZDBkMDgzYjFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9s
bGluZy9pb3MvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1MuaApAQCAtMzIsNiArMzIsOCBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
U2Nyb2xsaW5nQ29vcmRpbmF0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlSU9TLmg+CiAKK09CSkNfQ0xBU1MgV0tPdmVyZmxvd1Njcm9sbFZpZXdEZWxl
Z2F0ZTsKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGVJT1MgOiBwdWJsaWMgV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVJT1MgewpAQCAtMzksMTEgKzQxLDE1IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc093
blB0cjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TPiBjcmVhdGUoV2ViQ29y
ZTo6U2Nyb2xsaW5nVHJlZSYsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCk7CiAgICAgdmlydHVh
bCB+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUygpOwogCisgICAgdm9pZCBz
Y3JvbGxWaWV3RGlkU2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkZsb2F0UG9pbnQmKTsKKwogcHJpdmF0
ZToKICAgICBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWUmLCBXZWJDb3JlOjpTY3JvbGxpbmdOb2RlSUQpOwogCisgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUJlZm9yZUNoaWxkcmVuKGNvbnN0IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlTm9k
ZSYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBZnRlckNoaWxkcmVuKGNvbnN0
IFdlYkNvcmU6OlNjcm9sbGluZ1N0YXRlTm9kZSYpIG92ZXJyaWRlOwogCisgICAgUmV0YWluUHRy
PFdLT3ZlcmZsb3dTY3JvbGxWaWV3RGVsZWdhdGU+IG1fc2Nyb2xsVmlld0RlbGVnYXRlOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2Nyb2xsaW5nL2lvcy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9T
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1Njcm9sbGluZy9pb3MvU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUy5tbQppbmRleCAzZmE2MzQ0MmY2NTU1ZTg1NjUwN2U3
ZmViMDE5NmUwMjE1Yjg3N2FlLi44MGRhNzVhMjgyYTVmNmZjZDk1N2JiYjk5ZTZmMzk2MmUwYjcx
ZDE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL2lvcy9T
Y3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvaW9zL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGVJT1MubW0KQEAgLTMxLDEwICszMSw0OCBAQAogCiAjaW1wb3J0IDxXZWJDb3JlL0Jsb2Nr
RXhjZXB0aW9ucy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05v
ZGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2Nyb2xsaW5nVHJlZS5oPgogI2ltcG9ydCA8VUlLaXQv
VUlTY3JvbGxWaWV3Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCitAaW50ZXJmYWNl
IFdLT3ZlcmZsb3dTY3JvbGxWaWV3RGVsZWdhdGUgOiBOU09iamVjdCA8VUlTY3JvbGxWaWV3RGVs
ZWdhdGU+IHsKKyAgICBXZWJLaXQ6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJ
T1MqIF9zY3JvbGxpbmdUcmVlTm9kZTsKK30KKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFNjcm9s
bGluZ1RyZWVOb2RlOihXZWJLaXQ6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVJ
T1MqKW5vZGU7CisKK0BlbmQKKworCitAaW1wbGVtZW50YXRpb24gV0tPdmVyZmxvd1Njcm9sbFZp
ZXdEZWxlZ2F0ZQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhTY3JvbGxpbmdUcmVlTm9kZToo
V2ViS2l0OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TKilub2RlCit7Cisg
ICAgaWYgKChzZWxmID0gW3N1cGVyIGluaXRdKSkgeworICAgICAgICBfc2Nyb2xsaW5nVHJlZU5v
ZGUgPSBub2RlOworICAgIH0KKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClzY3JvbGxW
aWV3RGlkU2Nyb2xsOihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7CisgICAgX3Njcm9sbGlu
Z1RyZWVOb2RlLT5zY3JvbGxWaWV3RGlkU2Nyb2xsKHNjcm9sbFZpZXcuY29udGVudE9mZnNldCk7
Cit9CisKKy0gKHZvaWQpc2Nyb2xsVmlld1dpbGxCZWdpbkRyYWdnaW5nOihVSVNjcm9sbFZpZXcg
KilzY3JvbGxWaWV3Cit7Cit9CisKKy0gKHZvaWQpc2Nyb2xsVmlld0RpZEVuZERyYWdnaW5nOihV
SVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpbGxEZWNlbGVyYXRlOihCT09MKWRlY2VsZXJhdGUK
K3sKK30KKworLSAodm9pZClzY3JvbGxWaWV3RGlkRW5kU2Nyb2xsaW5nQW5pbWF0aW9uOihVSVNj
cm9sbFZpZXcgKilzY3JvbGxWaWV3Cit7Cit9CisKK0BlbmQKKwogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIFBhc3NPd25QdHI8U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUz4gU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6Y3JlYXRlKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWUmIHNjcm9sbGluZ1RyZWUsIFdlYkNvcmU6OlNjcm9sbGluZ05vZGVJRCBub2RlSUQp
CkBAIC00OSw2ICs4NywyNiBAQCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9T
OjpTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TKFdlYgogCiBTY3JvbGxpbmdU
cmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjp+U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZUlPUygpCiB7CisgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgaWYg
KFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IChVSVNjcm9sbFZpZXcgKilbc2Nyb2xsTGF5ZXIo
KSBkZWxlZ2F0ZV0pIHsKKyAgICAgICAgQVNTRVJUKFtzY3JvbGxWaWV3IGlzS2luZE9mQ2xhc3M6
W1VJU2Nyb2xsVmlldyBzZWxmXV0pOworICAgICAgICBzY3JvbGxWaWV3LmRlbGVnYXRlID0gbmls
OworICAgIH0KKyAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCit9CisKK3ZvaWQgU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQmVmb3JlQ2hpbGRyZW4oY29u
c3QgV2ViQ29yZTo6U2Nyb2xsaW5nU3RhdGVOb2RlJiBzdGF0ZU5vZGUpCit7CisgICAgaWYgKHN0
YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpT
Y3JvbGxMYXllcikpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAg
ICAgIGlmIChVSVNjcm9sbFZpZXcgKnNjcm9sbFZpZXcgPSAoVUlTY3JvbGxWaWV3ICopW3Njcm9s
bExheWVyKCkgZGVsZWdhdGVdKSB7CisgICAgICAgICAgICBBU1NFUlQoW3Njcm9sbFZpZXcgaXNL
aW5kT2ZDbGFzczpbVUlTY3JvbGxWaWV3IHNlbGZdXSk7CisgICAgICAgICAgICBzY3JvbGxWaWV3
LmRlbGVnYXRlID0gbmlsOworICAgICAgICB9CisgICAgICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQ
VElPTlMKKyAgICB9CisKKyAgICBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRl
QmVmb3JlQ2hpbGRyZW4oc3RhdGVOb2RlKTsKIH0KIAogdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVBZnRlckNoaWxkcmVuKGNvbnN0IFNjcm9sbGluZ1N0
YXRlTm9kZSYgc3RhdGVOb2RlKQpAQCAtNTcsNiArMTE1LDE4IEBAIHZvaWQgU2Nyb2xsaW5nVHJl
ZU92ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6dXBkYXRlQWZ0ZXJDaGlsZHJlbihjb25zdCBTY3Jv
bGxpbmdTCiAKICAgICBjb25zdCBhdXRvJiBzY3JvbGxpbmdTdGF0ZU5vZGUgPSB0b1Njcm9sbGlu
Z1N0YXRlU2Nyb2xsaW5nTm9kZShzdGF0ZU5vZGUpOwogCisgICAgaWYgKHNjcm9sbGluZ1N0YXRl
Tm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlOjpTY3Jv
bGxMYXllcikpIHsKKyAgICAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgICAg
IFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IChVSVNjcm9sbFZpZXcgKilbc2Nyb2xsTGF5ZXIo
KSBkZWxlZ2F0ZV07CisgICAgICAgIEFTU0VSVChbc2Nyb2xsVmlldyBpc0tpbmRPZkNsYXNzOltV
SVNjcm9sbFZpZXcgc2VsZl1dKTsKKworICAgICAgICBpZiAoIW1fc2Nyb2xsVmlld0RlbGVnYXRl
KQorICAgICAgICAgICAgbV9zY3JvbGxWaWV3RGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tPdmVyZmxv
d1Njcm9sbFZpZXdEZWxlZ2F0ZSBhbGxvY10gaW5pdFdpdGhTY3JvbGxpbmdUcmVlTm9kZTp0aGlz
XSk7CisKKyAgICAgICAgc2Nyb2xsVmlldy5kZWxlZ2F0ZSA9IG1fc2Nyb2xsVmlld0RlbGVnYXRl
LmdldCgpOworICAgICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05TCisgICAgfQorCiAgICAg
aWYgKHNjcm9sbGluZ1N0YXRlTm9kZS5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVT
Y3JvbGxpbmdOb2RlOjpUb3RhbENvbnRlbnRzU2l6ZSkpIHsKICAgICAgICAgQkVHSU5fQkxPQ0tf
T0JKQ19FWENFUFRJT05TCiAgICAgICAgIFVJU2Nyb2xsVmlldyAqc2Nyb2xsVmlldyA9IChVSVNj
cm9sbFZpZXcgKilbc2Nyb2xsTGF5ZXIoKSBkZWxlZ2F0ZV07CkBAIC02OCw2ICsxMzgsMTEgQEAg
dm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlSU9TOjp1cGRhdGVBZnRlckNo
aWxkcmVuKGNvbnN0IFNjcm9sbGluZ1MKICAgICB9CiB9CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZUlPUzo6c2Nyb2xsVmlld0RpZFNjcm9sbChjb25zdCBGbG9hdFBv
aW50JiBzY3JvbGxQb3NpdGlvbikKK3sKKyAgICBzY3JvbGxpbmdUcmVlKCkuc2Nyb2xsUG9zaXRp
b25DaGFuZ2VkVmlhRGVsZWdhdGVkU2Nyb2xsaW5nKHNjcm9sbGluZ05vZGVJRCgpLCBzY3JvbGxQ
b3NpdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCmluZGV4
IDliZDVjNDg1ZTc5NWJiMDE4NzA1MDZlZmQxZDRmOGQwNzk5OGIyMTAuLjMxZDk3MzgxYmFlNTIw
MDU4ZjQ2NjQ2NjdhMWM4OGU3NWIzOTVlZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5h
dG9yLm1tCkBAIC05Myw3ICs5Myw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3I6
OmJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JUcmFuCiAvLyBOb3Rp
ZmljYXRpb24gZnJvbSB0aGUgVUkgcHJvY2VzcyB0aGF0IHdlIHNjcm9sbGVkLgogdm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvcjo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkRm9yTm9kZShTY3Jv
bGxpbmdOb2RlSUQgbm9kZUlELCBjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsK
LSAgICBzY2hlZHVsZVVwZGF0ZVNjcm9sbFBvc2l0aW9uQWZ0ZXJBc3luY1Njcm9sbChub2RlSUQs
IHJvdW5kZWRJbnRQb2ludChzY3JvbGxQb3NpdGlvbiksIGZhbHNlIC8qIEZJWE1FICovLCBTeW5j
U2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbik7CisgICAgc2NoZWR1bGVVcGRhdGVTY3JvbGxQb3NpdGlv
bkFmdGVyQXN5bmNTY3JvbGwobm9kZUlELCBzY3JvbGxQb3NpdGlvbiwgZmFsc2UgLyogRklYTUUg
Ki8sIFN5bmNTY3JvbGxpbmdMYXllclBvc2l0aW9uKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>