<?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>199348</bug_id>
          
          <creation_ts>2019-06-30 00:17:27 -0700</creation_ts>
          <short_desc>Use separate variables for moving and stationary scrolling relationships in RemoteLayerTreeNode</short_desc>
          <delta_ts>2019-06-30 22:53:20 -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>Scrolling</component>
          <version>WebKit 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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1549073</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-30 00:17:27 -0700</bug_when>
    <thetext>A layer can have only one acting scroll parent. Not using a vector for that case makes the code clearer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549076</commentid>
    <comment_count>1</comment_count>
      <attachid>373190</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-30 00:31:16 -0700</bug_when>
    <thetext>Created attachment 373190
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549085</commentid>
    <comment_count>2</comment_count>
      <attachid>373195</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-30 12:12:48 -0700</bug_when>
    <thetext>Created attachment 373195
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549092</commentid>
    <comment_count>3</comment_count>
      <attachid>373195</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-06-30 13:04:05 -0700</bug_when>
    <thetext>Comment on attachment 373195
patch

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

While I’m not a real expert on this code, this looks good to me.

&gt; Source/WebCore/page/scrolling/ScrollingTree.h:187
&gt; +    HashSet&lt;RefPtr&lt;ScrollingTreeOverflowScrollProxyNode&gt;&gt; m_activeOverflowScrollProxyNodes;
&gt; +    HashSet&lt;RefPtr&lt;ScrollingTreePositionedNode&gt;&gt; m_activePositionedNodes;

A number of places elsewhere use HashSet&lt;Ref&lt;&gt;&gt; rather than HashSet&lt;RefPtr&lt;&gt;&gt;. Is there a reason to prefer RefPtr here?

&gt; Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeViews.mm:134
&gt; +                return (WKChildScrollView *)actingParent-&gt;uiView();

Not new, but: Would be nice to have a type checking cast like downcast&lt;&gt; here for clarity/assertion. Also unclear to me how solid the guarantee behind this typecast is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549140</commentid>
    <comment_count>4</comment_count>
      <attachid>373210</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-30 21:42:07 -0700</bug_when>
    <thetext>Created attachment 373210
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549141</commentid>
    <comment_count>5</comment_count>
      <attachid>373211</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-30 22:09:05 -0700</bug_when>
    <thetext>Created attachment 373211
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549142</commentid>
    <comment_count>6</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-06-30 22:09:38 -0700</bug_when>
    <thetext>&gt; A number of places elsewhere use HashSet&lt;Ref&lt;&gt;&gt; rather than
&gt; HashSet&lt;RefPtr&lt;&gt;&gt;. Is there a reason to prefer RefPtr here?

No reason, I just didn&apos;t remember it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549147</commentid>
    <comment_count>7</comment_count>
      <attachid>373211</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-30 22:52:37 -0700</bug_when>
    <thetext>Comment on attachment 373211
patch

Clearing flags on attachment: 373211

Committed r246962: &lt;https://trac.webkit.org/changeset/246962&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549148</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-30 22:52:39 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1549149</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-30 22:53:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/52441382&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373190</attachid>
            <date>2019-06-30 00:31:16 -0700</date>
            <delta_ts>2019-06-30 12:12:48 -0700</delta_ts>
            <desc>patch</desc>
            <filename>acting-stationary-split.patch</filename>
            <type>text/plain</type>
            <size>11448</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDY5NTMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA2LTMwICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc2VwYXJhdGUgdmFyaWFibGVz
IGZvciBtb3ZpbmcgYW5kIHN0YXRpb25hcnkgc2Nyb2xsaW5nIHJlbGF0aW9uc2hpcHMgaW4gUmVt
b3RlTGF5ZXJUcmVlTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTk5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQSBsYXllciBjYW4gaGF2ZSBvbmx5IG9uZSBhY3Rpbmcgc2Nyb2xsIHBhcmVudC4g
Tm90IHVzaW5nIGEgdmVjdG9yIGZvciB0aGF0IGNhc2UgbWFrZXMgdGhlIGNvZGUgY2xlYXJlci4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9k
ZS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVOb2RlOjphY3RpbmdTY3JvbGxD
b250YWluZXJJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZU5vZGU6
OnN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMgY29uc3QpOgorCisgICAgICAgIFNlcGFyYXRl
IGZpZWxkcyBmb3IgdGhlIGFjdGluZyBjb250YWluZXIgYW5kIHN0YXRpb25hcnkgY29udGFpbmVy
cy4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVOb2RlOjpzZXRBY3RpbmdTY3Jv
bGxDb250YWluZXJJRCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZU5vZGU6OnNl
dFN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVM
YXllclRyZWVOb2RlOjpyZWxhdGVkU2Nyb2xsQ29udGFpbmVySURzIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlTm9kZTo6cmVsYXRlZFNjcm9sbENvbnRh
aW5lclBvc2l0aW9uaW5nQmVoYXZpb3IgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0UmVsYXRlZFNjcm9sbENvbnRhaW5lckJlaGF2
aW9yQW5kSURzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbToKKyAgICAgICAgKFdlYktpdDo6aXNTY3JvbGxl
ZEJ5KToKKyAgICAgICAgKFdlYktpdDo6ZmluZEFjdGluZ1Njcm9sbFBhcmVudCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTo6ZXN0YWJsaXNoTGF5ZXJUcmVlU2Nyb2xsaW5nUmVsYXRpb25zKToKKwogMjAxOS0w
Ni0yOCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZp
c2UgV2ViQ29udGVudCBzYW5kYm94IGJhc2VkIG9uIHNlZWQgZmVlZGJhY2sKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVOb2RlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZU5vZGUuaAkocmV2aXNpb24gMjQ2OTQ5KQorKysgU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5vZGUuaAkod29ya2luZyBj
b3B5KQpAQCAtNTksMTAgKzU5LDEzIEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpFdmVu
dFJlZ2lvbiYgZXZlbnRSZWdpb24oKSBjb25zdCB7IHJldHVybiBtX2V2ZW50UmVnaW9uOyB9CiAg
ICAgdm9pZCBzZXRFdmVudFJlZ2lvbihjb25zdCBXZWJDb3JlOjpFdmVudFJlZ2lvbiYpOwogCi0g
ICAgLy8gSWYgZW1wdHkgdGhlIGxheWVyIGlzIHNjcm9sbGVkIG5vcm1hbGx5IGJ5IGFuIGFuY2Vz
dG9yIHNjcm9sbGVyLgotICAgIGNvbnN0IGF1dG8mIHJlbGF0ZWRTY3JvbGxDb250YWluZXJJRHMo
KSBjb25zdCB7IHJldHVybiBtX3JlbGF0ZWRTY3JvbGxDb250YWluZXJJRHM7IH0KLSAgICBXZWJD
b3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yIHJlbGF0ZWRTY3JvbGxDb250YWluZXJQb3Np
dGlvbmluZ0JlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGVkU2Nyb2xsQ29udGFpbmVy
UG9zaXRpb25pbmdCZWhhdmlvcjsgfQotICAgIHZvaWQgc2V0UmVsYXRlZFNjcm9sbENvbnRhaW5l
ckJlaGF2aW9yQW5kSURzKFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3IsIFZlY3Rv
cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+JiYpOworICAgIC8vIE5v
bi1hbmNlc3RvciBzY3JvbGxlciB0aGF0IGNvbnRyb2xzIHBvc2l0aW9uaW5nIG9mIHRoZSBsYXll
ci4KKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgYWN0aW5nU2Ny
b2xsQ29udGFpbmVySUQoKSBjb25zdCB7IHJldHVybiBtX2FjdGluZ1Njcm9sbENvbnRhaW5lcklE
OyB9CisgICAgLy8gQW5jZXN0b3Igc2Nyb2xsZXJzIHRoYXQgZG9uJ3QgYWZmZWN0IHBvc2l0aW9u
aW5nIG9mIHRoZSBsYXllci4KKyAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEPiYgc3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklEcygpIGNvbnN0
IHsgcmV0dXJuIG1fc3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklEczsgfQorCisgICAgdm9pZCBz
ZXRBY3RpbmdTY3JvbGxDb250YWluZXJJRChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9y
bUxheWVySUQgdmFsdWUpIHsgbV9hY3RpbmdTY3JvbGxDb250YWluZXJJRCA9IHZhbHVlOyB9Cisg
ICAgdm9pZCBzZXRTdGF0aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzKFZlY3RvcjxXZWJDb3JlOjpH
cmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+JiYgdmFsdWUpIHsgbV9zdGF0aW9uYXJ5U2Ny
b2xsQ29udGFpbmVySURzID0gV1RGTW92ZSh2YWx1ZSk7IH0KIAogICAgIHZvaWQgZGV0YWNoRnJv
bVBhcmVudCgpOwogCkBAIC04Myw4ICs4Niw4IEBAIHByaXZhdGU6CiAKICAgICBXZWJDb3JlOjpF
dmVudFJlZ2lvbiBtX2V2ZW50UmVnaW9uOwogCi0gICAgVmVjdG9yPFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4gbV9yZWxhdGVkU2Nyb2xsQ29udGFpbmVySURzOwotICAg
IFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3IgbV9yZWxhdGVkU2Nyb2xsQ29udGFp
bmVyUG9zaXRpb25pbmdCZWhhdmlvciB7IFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZp
b3I6Ok5vbmUgfTsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQg
bV9hY3RpbmdTY3JvbGxDb250YWluZXJJRCB7IDAgfTsKKyAgICBWZWN0b3I8V2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiBtX3N0YXRpb25hcnlTY3JvbGxDb250YWluZXJJ
RHM7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbQkocmV2aXNpb24g
MjQ2OTQ5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZU5vZGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTkyLDEyICs5Miw2IEBAIHZvaWQg
UmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0RXZlbnRSZWdpb24KICAgICBtX2V2ZW50UmVnaW9uID0g
ZXZlbnRSZWdpb247CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0UmVsYXRlZFNj
cm9sbENvbnRhaW5lckJlaGF2aW9yQW5kSURzKFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVo
YXZpb3IgYmVoYXZpb3IsIFZlY3RvcjxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxh
eWVySUQ+JiYgc2Nyb2xsQ29udGFpbmVySURzKQotewotICAgIG1fcmVsYXRlZFNjcm9sbENvbnRh
aW5lclBvc2l0aW9uaW5nQmVoYXZpb3IgPSBiZWhhdmlvcjsKLSAgICBtX3JlbGF0ZWRTY3JvbGxD
b250YWluZXJJRHMgPSBXVEZNb3ZlKHNjcm9sbENvbnRhaW5lcklEcyk7Ci19Ci0KIHZvaWQgUmVt
b3RlTGF5ZXJUcmVlTm9kZTo6aW5pdGlhbGl6ZUxheWVyKCkKIHsKICAgICBbbGF5ZXIoKSBzZXRW
YWx1ZTpbTlNWYWx1ZSB2YWx1ZVdpdGhQb2ludGVyOnRoaXNdIGZvcktleTpXS1JlbW90ZUxheWVy
VHJlZU5vZGVQcm9wZXJ0eUtleV07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVl
Vmlld3MubW0JKHJldmlzaW9uIDI0Njk0OSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0JKHdvcmtpbmcgY29weSkK
QEAgLTc5LDE1ICs3OSwxMSBAQCBzdGF0aWMgYm9vbCBpc1Njcm9sbGVkQnkoV0tDaGlsZFNjcm9s
bFZpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICBhdXRvKiBub2RlID0gUmVt
b3RlTGF5ZXJUcmVlTm9kZTo6Zm9yQ0FMYXllcih2aWV3LmxheWVyKTsKLSAgICAgICAgaWYgKG5v
ZGUgJiYgc2Nyb2xsTGF5ZXJJRCAmJiBub2RlLT5yZWxhdGVkU2Nyb2xsQ29udGFpbmVySURzKCku
Y29udGFpbnMoc2Nyb2xsTGF5ZXJJRCkpIHsKLSAgICAgICAgICAgIHN3aXRjaCAobm9kZS0+cmVs
YXRlZFNjcm9sbENvbnRhaW5lclBvc2l0aW9uaW5nQmVoYXZpb3IoKSkgewotICAgICAgICAgICAg
Y2FzZSBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpNb3ZlczoKKyAgICAgICAg
aWYgKG5vZGUgJiYgc2Nyb2xsTGF5ZXJJRCkgeworICAgICAgICAgICAgaWYgKG5vZGUtPmFjdGlu
Z1Njcm9sbENvbnRhaW5lcklEKCkgPT0gc2Nyb2xsTGF5ZXJJRCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6U2Nyb2xsUG9zaXRpb25pbmdC
ZWhhdmlvcjo6U3RhdGlvbmFyeToKKyAgICAgICAgICAgIGlmIChub2RlLT5zdGF0aW9uYXJ5U2Ny
b2xsQ29udGFpbmVySURzKCkuY29udGFpbnMoc2Nyb2xsTGF5ZXJJRCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpTY3JvbGxQb3NpdGlv
bmluZ0JlaGF2aW9yOjpOb25lOgotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCkBAIC0xMzMsMjEgKzEyOSwxMSBA
QCBVSVNjcm9sbFZpZXcgKmZpbmRBY3RpbmdTY3JvbGxQYXJlbnQoVUlTCiAgICAgICAgICAgICAv
LyBGSVhNRTogSWRlYWxseSB3ZSB3b3VsZCByZXR1cm4gdGhlIHNjcm9sbGVyIHdlIHdhbnQgaW4g
YWxsIGNhc2VzIGJ1dCB0aGUgY3VycmVudCBVSUtpdCBTUEkgb25seSBhbGxvd3MgcmV0dXJuaW5n
IGEgbm9uLWFuY2VzdG9yLgogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgfQotCiAg
ICAgICAgIGlmIChhdXRvKiBub2RlID0gUmVtb3RlTGF5ZXJUcmVlTm9kZTo6Zm9yQ0FMYXllcih2
aWV3LmxheWVyKSkgewotICAgICAgICAgICAgc3dpdGNoIChub2RlLT5yZWxhdGVkU2Nyb2xsQ29u
dGFpbmVyUG9zaXRpb25pbmdCZWhhdmlvcigpKSB7Ci0gICAgICAgICAgICBjYXNlIFdlYkNvcmU6
OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3I6Ok1vdmVzOgotICAgICAgICAgICAgICAgIGlmICgh
bm9kZS0+cmVsYXRlZFNjcm9sbENvbnRhaW5lcklEcygpLmlzRW1wdHkoKSkgewotICAgICAgICAg
ICAgICAgICAgICBpZiAoYXV0byogbm9uQW5jZXN0b3JTY3JvbGxpbmdOb2RlID0gaG9zdC5ub2Rl
Rm9ySUQobm9kZS0+cmVsYXRlZFNjcm9sbENvbnRhaW5lcklEcygpWzBdKSkKLSAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiAoV0tDaGlsZFNjcm9sbFZpZXcgKilub25BbmNlc3RvclNjcm9s
bGluZ05vZGUtPnVpVmlldygpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6U2Nyb2xsUG9zaXRpb25pbmdCZWhhdmlv
cjo6U3RhdGlvbmFyeToKLSAgICAgICAgICAgICAgICBzY3JvbGxlcnNUb1NraXAuYWRkKG5vZGUt
PnJlbGF0ZWRTY3JvbGxDb250YWluZXJJRHMoKS5iZWdpbigpLCBub2RlLT5yZWxhdGVkU2Nyb2xs
Q29udGFpbmVySURzKCkuZW5kKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAg
ICAgY2FzZSBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpOb25lOgotICAgICAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGF1dG8qIGFj
dGluZ1BhcmVudCA9IGhvc3Qubm9kZUZvcklEKG5vZGUtPmFjdGluZ1Njcm9sbENvbnRhaW5lcklE
KCkpKQorICAgICAgICAgICAgICAgIHJldHVybiAoV0tDaGlsZFNjcm9sbFZpZXcgKilhY3RpbmdQ
YXJlbnQtPnVpVmlldygpOworCisgICAgICAgICAgICBzY3JvbGxlcnNUb1NraXAuYWRkKG5vZGUt
PnN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMoKS5iZWdpbigpLCBub2RlLT5zdGF0aW9uYXJ5
U2Nyb2xsQ29udGFpbmVySURzKCkuZW5kKCkpOwogICAgICAgICB9CiAgICAgfQogICAgIHJldHVy
biBuaWw7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9z
L1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5SU9TLm1tCShyZXZpc2lvbiAyNDY5NDkpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTEyNSw4ICsxMjUsMTAgQEAgdm9pZCBSZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5OjpzYwogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29y
ZGluYXRvclByb3h5Ojplc3RhYmxpc2hMYXllclRyZWVTY3JvbGxpbmdSZWxhdGlvbnMoY29uc3Qg
UmVtb3RlTGF5ZXJUcmVlSG9zdCYgcmVtb3RlTGF5ZXJUcmVlSG9zdCkKIHsKICAgICBmb3IgKGF1
dG8gbGF5ZXJJRCA6IG1fbGF5ZXJzV2l0aFNjcm9sbGluZ1JlbGF0aW9ucykgewotICAgICAgICBp
ZiAoYXV0byogbGF5ZXJOb2RlID0gcmVtb3RlTGF5ZXJUcmVlSG9zdC5ub2RlRm9ySUQobGF5ZXJJ
RCkpCi0gICAgICAgICAgICBsYXllck5vZGUtPnNldFJlbGF0ZWRTY3JvbGxDb250YWluZXJCZWhh
dmlvckFuZElEcyh7IH0sIHsgfSk7CisgICAgICAgIGlmIChhdXRvKiBsYXllck5vZGUgPSByZW1v
dGVMYXllclRyZWVIb3N0Lm5vZGVGb3JJRChsYXllcklEKSkgeworICAgICAgICAgICAgbGF5ZXJO
b2RlLT5zZXRBY3RpbmdTY3JvbGxDb250YWluZXJJRCgwKTsKKyAgICAgICAgICAgIGxheWVyTm9k
ZS0+c2V0U3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklEcyh7IH0pOworICAgICAgICB9CiAgICAg
fQogICAgIG1fbGF5ZXJzV2l0aFNjcm9sbGluZ1JlbGF0aW9ucy5jbGVhcigpOwogCkBAIC0xMzUs
MTYgKzEzNywxMCBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmVzCiAg
ICAgCiAgICAgZm9yIChhdXRvIG5vZGVJRCA6IG1fc2Nyb2xsaW5nVHJlZS0+bm9kZXNXaXRoUmVs
YXRlZE92ZXJmbG93KCkpIHsKICAgICAgICAgYXV0byogbm9kZSA9IG1fc2Nyb2xsaW5nVHJlZS0+
bm9kZUZvcklEKG5vZGVJRCk7Ci0gICAgICAgIGlmICghbm9kZSkgewotICAgICAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQogCi0g
ICAgICAgIFZlY3RvcjxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+IHNjcm9sbENvbnRh
aW5lckxheWVySURzOwotICAgICAgICBSZW1vdGVMYXllclRyZWVOb2RlKiBsYXllck5vZGUgPSBu
dWxscHRyOwotICAgICAgICBTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yIGJlaGF2aW9yID0gU2Ny
b2xsUG9zaXRpb25pbmdCZWhhdmlvcjo6Tm9uZTsKKyAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1Ry
ZWVQb3NpdGlvbmVkTm9kZT4obm9kZSkpIHsKKyAgICAgICAgICAgIFZlY3RvcjxHcmFwaGljc0xh
eWVyOjpQbGF0Zm9ybUxheWVySUQ+IHN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHM7CiAKLSAg
ICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZT4oKm5vZGUpKSB7CiAgICAg
ICAgICAgICBhdXRvJiBwb3NpdGlvbmVkTm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVQb3Np
dGlvbmVkTm9kZT4oKm5vZGUpOwogICAgICAgICAgICAgZm9yIChhdXRvIG92ZXJmbG93Tm9kZUlE
IDogcG9zaXRpb25lZE5vZGUucmVsYXRlZE92ZXJmbG93U2Nyb2xsaW5nTm9kZXMoKSkgewogICAg
ICAgICAgICAgICAgIGF1dG8qIG92ZXJmbG93Tm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVP
dmVyZmxvd1Njcm9sbGluZ05vZGU+KG1fc2Nyb2xsaW5nVHJlZS0+bm9kZUZvcklEKG92ZXJmbG93
Tm9kZUlEKSk7CkBAIC0xNTIsMjggKzE0OCwyOSBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3Jk
aW5hdG9yUHJveHk6OmVzCiAgICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgc2Nyb2xsQ29udGFpbmVyTGF5ZXJJRHMuYXBwZW5kKFJlbW90ZUxheWVyVHJl
ZU5vZGU6OmxheWVySUQob3ZlcmZsb3dOb2RlLT5zY3JvbGxDb250YWluZXJMYXllcigpKSk7Cisg
ICAgICAgICAgICAgICAgc3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklEcy5hcHBlbmQoUmVtb3Rl
TGF5ZXJUcmVlTm9kZTo6bGF5ZXJJRChvdmVyZmxvd05vZGUtPnNjcm9sbENvbnRhaW5lckxheWVy
KCkpKTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGxheWVyTm9kZSA9IFJlbW90ZUxheWVy
VHJlZU5vZGU6OmZvckNBTGF5ZXIocG9zaXRpb25lZE5vZGUubGF5ZXIoKSk7Ci0gICAgICAgICAg
ICBiZWhhdmlvciA9IFNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3I6OlN0YXRpb25hcnk7Ci0gICAg
ICAgIH0gZWxzZSBpZiAoaXM8U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlPigq
bm9kZSkpIHsKKworICAgICAgICAgICAgaWYgKGF1dG8qIGxheWVyTm9kZSA9IFJlbW90ZUxheWVy
VHJlZU5vZGU6OmZvckNBTGF5ZXIocG9zaXRpb25lZE5vZGUubGF5ZXIoKSkpIHsKKyAgICAgICAg
ICAgICAgICBsYXllck5vZGUtPnNldFN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMoV1RGTW92
ZShzdGF0aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzKSk7CisgICAgICAgICAgICAgICAgbV9sYXll
cnNXaXRoU2Nyb2xsaW5nUmVsYXRpb25zLmFkZChsYXllck5vZGUtPmxheWVySUQoKSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCisgICAgICAgIGlm
IChpczxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGU+KG5vZGUpKSB7CiAgICAg
ICAgICAgICBhdXRvJiBzY3JvbGxQcm94eU5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxQcm94eU5vZGU+KCpub2RlKTsKICAgICAgICAgICAgIGF1dG8qIG92ZXJmbG93
Tm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU+KG1fc2Ny
b2xsaW5nVHJlZS0+bm9kZUZvcklEKHNjcm9sbFByb3h5Tm9kZS5vdmVyZmxvd1Njcm9sbGluZ05v
ZGVJRCgpKSk7CiAgICAgICAgICAgICBpZiAoIW92ZXJmbG93Tm9kZSkKICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLQotICAgICAgICAgICAgc2Nyb2xsQ29udGFpbmVyTGF5ZXJJRHMuYXBwZW5k
KFJlbW90ZUxheWVyVHJlZU5vZGU6OmxheWVySUQob3ZlcmZsb3dOb2RlLT5zY3JvbGxDb250YWlu
ZXJMYXllcigpKSk7Ci0gICAgICAgICAgICBsYXllck5vZGUgPSBSZW1vdGVMYXllclRyZWVOb2Rl
Ojpmb3JDQUxheWVyKHNjcm9sbFByb3h5Tm9kZS5sYXllcigpKTsKLSAgICAgICAgICAgIGJlaGF2
aW9yID0gU2Nyb2xsUG9zaXRpb25pbmdCZWhhdmlvcjo6TW92ZXM7Ci0gICAgICAgIH0KLQotICAg
ICAgICBpZiAoIWxheWVyTm9kZSkgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgICAgICAgICBpZiAoYXV0byogbGF5ZXJOb2RlID0gUmVtb3RlTGF5ZXJUcmVlTm9kZTo6
Zm9yQ0FMYXllcihzY3JvbGxQcm94eU5vZGUubGF5ZXIoKSkpIHsKKyAgICAgICAgICAgICAgICBs
YXllck5vZGUtPnNldEFjdGluZ1Njcm9sbENvbnRhaW5lcklEKFJlbW90ZUxheWVyVHJlZU5vZGU6
OmxheWVySUQob3ZlcmZsb3dOb2RlLT5zY3JvbGxDb250YWluZXJMYXllcigpKSk7CisgICAgICAg
ICAgICAgICAgbV9sYXllcnNXaXRoU2Nyb2xsaW5nUmVsYXRpb25zLmFkZChsYXllck5vZGUtPmxh
eWVySUQoKSk7CisgICAgICAgICAgICB9CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQotICAgICAgICBsYXllck5vZGUtPnNldFJlbGF0ZWRTY3JvbGxDb250YWluZXJCZWhhdmlvckFu
ZElEcyhiZWhhdmlvciwgV1RGTW92ZShzY3JvbGxDb250YWluZXJMYXllcklEcykpOwogCi0gICAg
ICAgIG1fbGF5ZXJzV2l0aFNjcm9sbGluZ1JlbGF0aW9ucy5hZGQobGF5ZXJOb2RlLT5sYXllcklE
KCkpOworICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373195</attachid>
            <date>2019-06-30 12:12:48 -0700</date>
            <delta_ts>2019-06-30 21:42:07 -0700</delta_ts>
            <desc>patch</desc>
            <filename>acting-stationary-split-2.patch</filename>
            <type>text/plain</type>
            <size>18191</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0Njk1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA2LTMwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc2VwYXJhdGUgdmFyaWFi
bGVzIGZvciBtb3ZpbmcgYW5kIHN0YXRpb25hcnkgc2Nyb2xsaW5nIHJlbGF0aW9uc2hpcHMgaW4g
UmVtb3RlTGF5ZXJUcmVlTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3Bw
OgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKToKKyAgICAgICAgKiBwYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdU
cmVlOjphY3RpdmVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZTo6YWN0aXZlUG9zaXRpb25lZE5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbGluZ1RyZWU6Om5vZGVzV2l0aFJlbGF0ZWRPdmVyZmxvdyk6IERlbGV0ZWQuCisKKyAg
ICAgICAgVXNlIHNlcGFyYXRlIHNldHMgZm9yIG92ZXJmbG93IHByb3hpZXMgYW5kIHBvc2l0aW9u
ZWQgbm9kZXMuCisgICAgICAgIFVzZSBSZWZQdHJzIHRvIG5vZGVzIGluc3RlYWQgb2YgaWRzIHRv
IHNpbXBsaWZ5IGNsaWVudCBjb2RlLiBUaGlzIGRvZXNuJ3QgYWZmZWN0IGxpZmV0aW1lcywgdGhl
c2Ugc2V0cyBhcmUgY2xlYXJlZAorICAgICAgICBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggY29t
bWl0LgorCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsUHJveHlOb2RlLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsUHJveHlOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9jb2NvYS9TY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGUubW06
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU6OmNvbW1pdFN0
YXRlQmVmb3JlQ2hpbGRyZW4pOgorCiAyMDE5LTA2LTMwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBh
cHBsZS5jb20+CiAKICAgICAgICAgW0xGQ10gSW1wbGVtZW50IExheW91dDo6cHJpbnRMYXlvdXRU
cmVlRm9yTGl2ZURvY3VtZW50cwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nU3RhdGVTdGlja3lOb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwCShyZXZpc2lvbiAy
NDY5NDkpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0
aWNreU5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
R3JhcGhpY3NMYXllci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTY3JvbGxp
bmdTdGF0ZVRyZWUuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlLmgiCiAjaW5jbHVkZSA8d3Rm
L3RleHQvVGV4dFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24g
MjQ2OTQ5KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDkgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdT
dGF0ZVRyZWUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmgi
CiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZU5vZGUuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxQcm94eU5vZGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlLmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWROb2Rl
LmgiCiAjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCIKICNpbmNsdWRlIDx3
dGYvU2V0Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CkBAIC0x
NjksNyArMTcxLDggQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXRUcmVlU3RhdGUoc3RkOgog
ICAgICAgICB1bnZpc2l0ZWROb2Rlcy5hZGQobm9kZUlEKTsKIAogICAgIG1fb3ZlcmZsb3dSZWxh
dGVkTm9kZXNNYXAuY2xlYXIoKTsKLSAgICBtX25vZGVzV2l0aFJlbGF0ZWRPdmVyZmxvdy5jbGVh
cigpOworICAgIG1fYWN0aXZlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGVzLmNsZWFyKCk7CisgICAg
bV9hY3RpdmVQb3NpdGlvbmVkTm9kZXMuY2xlYXIoKTsKIAogICAgIC8vIG9ycGhhbk5vZGVzIGtl
ZXBzIGNoaWxkIG5vZGVzIGFsaXZlIHdoaWxlIHdlIHJlYnVpbGQgY2hpbGQgbGlzdHMuCiAgICAg
T3JwaGFuU2Nyb2xsaW5nTm9kZU1hcCBvcnBoYW5Ob2RlczsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgJKHJldmlzaW9uIDI0Njk0OSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAkod29ya2luZyBj
b3B5KQpAQCAtNDQsNiArNDQsOCBAQCBjbGFzcyBTY3JvbGxpbmdTdGF0ZVRyZWU7CiBjbGFzcyBT
Y3JvbGxpbmdTdGF0ZU5vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
OwogY2xhc3MgU2Nyb2xsaW5nVHJlZU5vZGU7CitjbGFzcyBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxQcm94eU5vZGU7CitjbGFzcyBTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU7CiBjbGFz
cyBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTsKIAogY2xhc3MgU2Nyb2xsaW5nVHJlZSA6IHB1
YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxTY3JvbGxpbmdUcmVlPiB7CkBAIC0xNTQsNyArMTU2
LDggQEAgcHVibGljOgogICAgIHVzaW5nIFJlbGF0ZWROb2Rlc01hcCA9IEhhc2hNYXA8U2Nyb2xs
aW5nTm9kZUlELCBWZWN0b3I8U2Nyb2xsaW5nTm9kZUlEPj47CiAgICAgUmVsYXRlZE5vZGVzTWFw
JiBvdmVyZmxvd1JlbGF0ZWROb2RlcygpIHsgcmV0dXJuIG1fb3ZlcmZsb3dSZWxhdGVkTm9kZXNN
YXA7IH0KIAotICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiYgbm9kZXNXaXRoUmVsYXRlZE92
ZXJmbG93KCkgeyByZXR1cm4gbV9ub2Rlc1dpdGhSZWxhdGVkT3ZlcmZsb3c7IH0KKyAgICBIYXNo
U2V0PFJlZlB0cjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGU+PiYgYWN0aXZl
T3ZlcmZsb3dTY3JvbGxQcm94eU5vZGVzKCkgeyByZXR1cm4gbV9hY3RpdmVPdmVyZmxvd1Njcm9s
bFByb3h5Tm9kZXM7IH0KKyAgICBIYXNoU2V0PFJlZlB0cjxTY3JvbGxpbmdUcmVlUG9zaXRpb25l
ZE5vZGU+PiYgYWN0aXZlUG9zaXRpb25lZE5vZGVzKCkgeyByZXR1cm4gbV9hY3RpdmVQb3NpdGlv
bmVkTm9kZXM7IH0KIAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzY3JvbGxpbmdUcmVlQXNU
ZXh0KFNjcm9sbGluZ1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yID0gU2Nyb2xsaW5nU3RhdGVUcmVl
QXNUZXh0QmVoYXZpb3JOb3JtYWwpOwogCkBAIC0xNzksNyArMTgyLDkgQEAgcHJpdmF0ZToKICAg
ICBTY3JvbGxpbmdUcmVlTm9kZU1hcCBtX25vZGVNYXA7CiAKICAgICBSZWxhdGVkTm9kZXNNYXAg
bV9vdmVyZmxvd1JlbGF0ZWROb2Rlc01hcDsKLSAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4g
bV9ub2Rlc1dpdGhSZWxhdGVkT3ZlcmZsb3c7CisKKyAgICBIYXNoU2V0PFJlZlB0cjxTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGU+PiBtX2FjdGl2ZU92ZXJmbG93U2Nyb2xsUHJv
eHlOb2RlczsKKyAgICBIYXNoU2V0PFJlZlB0cjxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU+
PiBtX2FjdGl2ZVBvc2l0aW9uZWROb2RlczsKIAogICAgIHN0cnVjdCBUcmVlU3RhdGUgewogICAg
ICAgICBTY3JvbGxpbmdOb2RlSUQgbGF0Y2hlZE5vZGVJRCB7IDAgfTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbFBy
b3h5Tm9kZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9j
b2NvYS9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGUubW0JKHJldmlzaW9uIDI0
Njk0OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjIsOSArNjIs
OSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kCiAgICAgICAgIHJl
bGF0ZWROb2Rlcy5lbnN1cmUobV9vdmVyZmxvd1Njcm9sbGluZ05vZGVJRCwgW10gewogICAgICAg
ICAgICAgcmV0dXJuIFZlY3RvcjxTY3JvbGxpbmdOb2RlSUQ+KCk7CiAgICAgICAgIH0pLml0ZXJh
dG9yLT52YWx1ZS5hcHBlbmQoc2Nyb2xsaW5nTm9kZUlEKCkpOwotICAgIH0KIAotICAgIHNjcm9s
bGluZ1RyZWUoKS5ub2Rlc1dpdGhSZWxhdGVkT3ZlcmZsb3coKS5hZGQoc2Nyb2xsaW5nTm9kZUlE
KCkpOworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuYWN0aXZlT3ZlcmZsb3dTY3JvbGxQcm94eU5v
ZGVzKCkuYWRkKHRoaXMpOworICAgIH0KIH0KIAogRmxvYXRTaXplIFNjcm9sbGluZ1RyZWVPdmVy
Zmxvd1Njcm9sbFByb3h5Tm9kZTo6c2Nyb2xsRGVsdGFTaW5jZUxhc3RDb21taXQoKSBjb25zdApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5nVHJlZVBv
c2l0aW9uZWROb2RlLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL2NvY29hL1Njcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZS5tbQkocmV2aXNpb24gMjQ2OTQ5
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5nVHJlZVBv
c2l0aW9uZWROb2RlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgU2Ny
b2xsaW5nVHJlZVBvc2l0aW9uZWROb2RlOjpjb21taXQKICAgICAgICAgbV9jb25zdHJhaW50cyA9
IHBvc2l0aW9uZWRTdGF0ZU5vZGUubGF5b3V0Q29uc3RyYWludHMoKTsKIAogICAgIGlmICghbV9y
ZWxhdGVkT3ZlcmZsb3dTY3JvbGxpbmdOb2Rlcy5pc0VtcHR5KCkpCi0gICAgICAgIHNjcm9sbGlu
Z1RyZWUoKS5ub2Rlc1dpdGhSZWxhdGVkT3ZlcmZsb3coKS5hZGQoc2Nyb2xsaW5nTm9kZUlEKCkp
OworICAgICAgICBzY3JvbGxpbmdUcmVlKCkuYWN0aXZlUG9zaXRpb25lZE5vZGVzKCkuYWRkKHRo
aXMpOwogfQogCiBGbG9hdFNpemUgU2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWROb2RlOjpzY3JvbGxE
ZWx0YVNpbmNlTGFzdENvbW1pdCgpIGNvbnN0CkluZGV4OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkocmV2aXNpb24gMjQ2OTUz
KQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwz
MCBAQAorMjAxOS0wNi0zMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CisKKyAg
ICAgICAgVXNlIHNlcGFyYXRlIHZhcmlhYmxlcyBmb3IgbW92aW5nIGFuZCBzdGF0aW9uYXJ5IHNj
cm9sbGluZyByZWxhdGlvbnNoaXBzIGluIFJlbW90ZUxheWVyVHJlZU5vZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5OTM0OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgbGF5ZXIgY2FuIGhhdmUgb25s
eSBvbmUgYWN0aW5nIHNjcm9sbCBwYXJlbnQuIE5vdCB1c2luZyBhIHZlY3RvciBmb3IgdGhhdCBj
YXNlIG1ha2VzIHRoZSBjb2RlIGNsZWFyZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5vZGUuaDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlTm9kZTo6YWN0aW5nU2Nyb2xsQ29udGFpbmVySUQgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVMYXllclRyZWVOb2RlOjpzdGF0aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURz
IGNvbnN0KToKKworICAgICAgICBTZXBhcmF0ZSBmaWVsZHMgZm9yIHRoZSBhY3RpbmcgY29udGFp
bmVyIGFuZCBzdGF0aW9uYXJ5IGNvbnRhaW5lcnMuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlTm9kZTo6c2V0QWN0aW5nU2Nyb2xsQ29udGFpbmVySUQpOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVMYXllclRyZWVOb2RlOjpzZXRTdGF0aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURz
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlTm9kZTo6cmVsYXRlZFNjcm9sbENv
bnRhaW5lcklEcyBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZU5vZGU6OnJlbGF0ZWRTY3JvbGxDb250YWluZXJQb3NpdGlvbmluZ0JlaGF2aW9yIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZU5vZGUubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZU5vZGU6OnNl
dFJlbGF0ZWRTY3JvbGxDb250YWluZXJCZWhhdmlvckFuZElEcyk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW06
CisgICAgICAgIChXZWJLaXQ6OmlzU2Nyb2xsZWRCeSk6CisgICAgICAgIChXZWJLaXQ6OmZpbmRB
Y3RpbmdTY3JvbGxQYXJlbnQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
aW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW06CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmVzdGFibGlzaExheWVyVHJlZVNj
cm9sbGluZ1JlbGF0aW9ucyk6CisKIDIwMTktMDYtMjggIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hh
bUBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aXNlIFdlYkNvbnRlbnQgc2FuZGJveCBiYXNlZCBv
biBzZWVkIGZlZWRiYWNrCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVOb2RlLmgJKHJldmlzaW9u
IDI0Njk0OSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1v
dGVMYXllclRyZWVOb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTU5LDEwICs1OSwxMyBAQCBwdWJs
aWM6CiAgICAgY29uc3QgV2ViQ29yZTo6RXZlbnRSZWdpb24mIGV2ZW50UmVnaW9uKCkgY29uc3Qg
eyByZXR1cm4gbV9ldmVudFJlZ2lvbjsgfQogICAgIHZvaWQgc2V0RXZlbnRSZWdpb24oY29uc3Qg
V2ViQ29yZTo6RXZlbnRSZWdpb24mKTsKIAotICAgIC8vIElmIGVtcHR5IHRoZSBsYXllciBpcyBz
Y3JvbGxlZCBub3JtYWxseSBieSBhbiBhbmNlc3RvciBzY3JvbGxlci4KLSAgICBjb25zdCBhdXRv
JiByZWxhdGVkU2Nyb2xsQ29udGFpbmVySURzKCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGVkU2Ny
b2xsQ29udGFpbmVySURzOyB9Ci0gICAgV2ViQ29yZTo6U2Nyb2xsUG9zaXRpb25pbmdCZWhhdmlv
ciByZWxhdGVkU2Nyb2xsQ29udGFpbmVyUG9zaXRpb25pbmdCZWhhdmlvcigpIGNvbnN0IHsgcmV0
dXJuIG1fcmVsYXRlZFNjcm9sbENvbnRhaW5lclBvc2l0aW9uaW5nQmVoYXZpb3I7IH0KLSAgICB2
b2lkIHNldFJlbGF0ZWRTY3JvbGxDb250YWluZXJCZWhhdmlvckFuZElEcyhXZWJDb3JlOjpTY3Jv
bGxQb3NpdGlvbmluZ0JlaGF2aW9yLCBWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxh
dGZvcm1MYXllcklEPiYmKTsKKyAgICAvLyBOb24tYW5jZXN0b3Igc2Nyb2xsZXIgdGhhdCBjb250
cm9scyBwb3NpdGlvbmluZyBvZiB0aGUgbGF5ZXIuCisgICAgV2ViQ29yZTo6R3JhcGhpY3NMYXll
cjo6UGxhdGZvcm1MYXllcklEIGFjdGluZ1Njcm9sbENvbnRhaW5lcklEKCkgY29uc3QgeyByZXR1
cm4gbV9hY3RpbmdTY3JvbGxDb250YWluZXJJRDsgfQorICAgIC8vIEFuY2VzdG9yIHNjcm9sbGVy
cyB0aGF0IGRvbid0IGFmZmVjdCBwb3NpdGlvbmluZyBvZiB0aGUgbGF5ZXIuCisgICAgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4mIHN0YXRpb25h
cnlTY3JvbGxDb250YWluZXJJRHMoKSBjb25zdCB7IHJldHVybiBtX3N0YXRpb25hcnlTY3JvbGxD
b250YWluZXJJRHM7IH0KKworICAgIHZvaWQgc2V0QWN0aW5nU2Nyb2xsQ29udGFpbmVySUQoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIHZhbHVlKSB7IG1fYWN0aW5nU2Ny
b2xsQ29udGFpbmVySUQgPSB2YWx1ZTsgfQorICAgIHZvaWQgc2V0U3RhdGlvbmFyeVNjcm9sbENv
bnRhaW5lcklEcyhWZWN0b3I8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklE
PiYmIHZhbHVlKSB7IG1fc3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklEcyA9IFdURk1vdmUodmFs
dWUpOyB9CiAKICAgICB2b2lkIGRldGFjaEZyb21QYXJlbnQoKTsKIApAQCAtODMsOCArODYsOCBA
QCBwcml2YXRlOgogCiAgICAgV2ViQ29yZTo6RXZlbnRSZWdpb24gbV9ldmVudFJlZ2lvbjsKIAot
ICAgIFZlY3RvcjxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+IG1fcmVs
YXRlZFNjcm9sbENvbnRhaW5lcklEczsKLSAgICBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbmluZ0Jl
aGF2aW9yIG1fcmVsYXRlZFNjcm9sbENvbnRhaW5lclBvc2l0aW9uaW5nQmVoYXZpb3IgeyBXZWJD
b3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpOb25lIH07CisgICAgV2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIG1fYWN0aW5nU2Nyb2xsQ29udGFpbmVySUQgeyAw
IH07CisgICAgVmVjdG9yPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4g
bV9zdGF0aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzOwogfTsKIAogfQpJbmRleDogU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5vZGUubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZU5vZGUubW0JKHJldmlzaW9uIDI0Njk0OSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVOb2RlLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC05MiwxMiArOTIsNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZU5vZGU6OnNldEV2ZW50
UmVnaW9uCiAgICAgbV9ldmVudFJlZ2lvbiA9IGV2ZW50UmVnaW9uOwogfQogCi12b2lkIFJlbW90
ZUxheWVyVHJlZU5vZGU6OnNldFJlbGF0ZWRTY3JvbGxDb250YWluZXJCZWhhdmlvckFuZElEcyhX
ZWJDb3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yIGJlaGF2aW9yLCBWZWN0b3I8V2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiYmIHNjcm9sbENvbnRhaW5lcklEcykK
LXsKLSAgICBtX3JlbGF0ZWRTY3JvbGxDb250YWluZXJQb3NpdGlvbmluZ0JlaGF2aW9yID0gYmVo
YXZpb3I7Ci0gICAgbV9yZWxhdGVkU2Nyb2xsQ29udGFpbmVySURzID0gV1RGTW92ZShzY3JvbGxD
b250YWluZXJJRHMpOwotfQotCiB2b2lkIFJlbW90ZUxheWVyVHJlZU5vZGU6OmluaXRpYWxpemVM
YXllcigpCiB7CiAgICAgW2xheWVyKCkgc2V0VmFsdWU6W05TVmFsdWUgdmFsdWVXaXRoUG9pbnRl
cjp0aGlzXSBmb3JLZXk6V0tSZW1vdGVMYXllclRyZWVOb2RlUHJvcGVydHlLZXldOwpJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRy
ZWVWaWV3cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCShyZXZpc2lvbiAyNDY5NDkpCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVy
VHJlZVZpZXdzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC03OSwxNSArNzksMTEgQEAgc3RhdGljIGJv
b2wgaXNTY3JvbGxlZEJ5KFdLQ2hpbGRTY3JvbGxWaQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAKICAgICAgICAgYXV0byogbm9kZSA9IFJlbW90ZUxheWVyVHJlZU5vZGU6OmZvckNBTGF5ZXIo
dmlldy5sYXllcik7Ci0gICAgICAgIGlmIChub2RlICYmIHNjcm9sbExheWVySUQgJiYgbm9kZS0+
cmVsYXRlZFNjcm9sbENvbnRhaW5lcklEcygpLmNvbnRhaW5zKHNjcm9sbExheWVySUQpKSB7Ci0g
ICAgICAgICAgICBzd2l0Y2ggKG5vZGUtPnJlbGF0ZWRTY3JvbGxDb250YWluZXJQb3NpdGlvbmlu
Z0JlaGF2aW9yKCkpIHsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6U2Nyb2xsUG9zaXRpb25p
bmdCZWhhdmlvcjo6TW92ZXM6CisgICAgICAgIGlmIChub2RlICYmIHNjcm9sbExheWVySUQpIHsK
KyAgICAgICAgICAgIGlmIChub2RlLT5hY3RpbmdTY3JvbGxDb250YWluZXJJRCgpID09IHNjcm9s
bExheWVySUQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICBjYXNl
IFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3I6OlN0YXRpb25hcnk6CisgICAgICAg
ICAgICBpZiAobm9kZS0+c3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklEcygpLmNvbnRhaW5zKHNj
cm9sbExheWVySUQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgICAg
IGNhc2UgV2ViQ29yZTo6U2Nyb2xsUG9zaXRpb25pbmdCZWhhdmlvcjo6Tm9uZToKLSAgICAgICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIH0KICAgICAgICAgfQog
ICAgIH0KIApAQCAtMTMzLDIxICsxMjksMTEgQEAgVUlTY3JvbGxWaWV3ICpmaW5kQWN0aW5nU2Ny
b2xsUGFyZW50KFVJUwogICAgICAgICAgICAgLy8gRklYTUU6IElkZWFsbHkgd2Ugd291bGQgcmV0
dXJuIHRoZSBzY3JvbGxlciB3ZSB3YW50IGluIGFsbCBjYXNlcyBidXQgdGhlIGN1cnJlbnQgVUlL
aXQgU1BJIG9ubHkgYWxsb3dzIHJldHVybmluZyBhIG5vbi1hbmNlc3Rvci4KICAgICAgICAgICAg
IHJldHVybiBuaWw7CiAgICAgICAgIH0KLQogICAgICAgICBpZiAoYXV0byogbm9kZSA9IFJlbW90
ZUxheWVyVHJlZU5vZGU6OmZvckNBTGF5ZXIodmlldy5sYXllcikpIHsKLSAgICAgICAgICAgIHN3
aXRjaCAobm9kZS0+cmVsYXRlZFNjcm9sbENvbnRhaW5lclBvc2l0aW9uaW5nQmVoYXZpb3IoKSkg
ewotICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpN
b3ZlczoKLSAgICAgICAgICAgICAgICBpZiAoIW5vZGUtPnJlbGF0ZWRTY3JvbGxDb250YWluZXJJ
RHMoKS5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIG5vbkFuY2Vz
dG9yU2Nyb2xsaW5nTm9kZSA9IGhvc3Qubm9kZUZvcklEKG5vZGUtPnJlbGF0ZWRTY3JvbGxDb250
YWluZXJJRHMoKVswXSkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFdLQ2hpbGRT
Y3JvbGxWaWV3ICopbm9uQW5jZXN0b3JTY3JvbGxpbmdOb2RlLT51aVZpZXcoKTsKLSAgICAgICAg
ICAgICAgICB9Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFdlYkNv
cmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3I6OlN0YXRpb25hcnk6Ci0gICAgICAgICAgICAg
ICAgc2Nyb2xsZXJzVG9Ta2lwLmFkZChub2RlLT5yZWxhdGVkU2Nyb2xsQ29udGFpbmVySURzKCku
YmVnaW4oKSwgbm9kZS0+cmVsYXRlZFNjcm9sbENvbnRhaW5lcklEcygpLmVuZCgpKTsKLSAgICAg
ICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6U2Nyb2xsUG9zaXRp
b25pbmdCZWhhdmlvcjo6Tm9uZToKLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGlmIChhdXRvKiBhY3RpbmdQYXJlbnQgPSBob3N0Lm5vZGVGb3JJRChu
b2RlLT5hY3RpbmdTY3JvbGxDb250YWluZXJJRCgpKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
KFdLQ2hpbGRTY3JvbGxWaWV3ICopYWN0aW5nUGFyZW50LT51aVZpZXcoKTsKKworICAgICAgICAg
ICAgc2Nyb2xsZXJzVG9Ta2lwLmFkZChub2RlLT5zdGF0aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURz
KCkuYmVnaW4oKSwgbm9kZS0+c3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklEcygpLmVuZCgpKTsK
ICAgICAgICAgfQogICAgIH0KICAgICByZXR1cm4gbmlsOwpJbmRleDogU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5SU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQkocmV2aXNp
b24gMjQ2OTQ5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lv
cy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjUsNTUgKzEyNSw0MiBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6
OnNjCiB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OmVzdGFibGlzaExheWVy
VHJlZVNjcm9sbGluZ1JlbGF0aW9ucyhjb25zdCBSZW1vdGVMYXllclRyZWVIb3N0JiByZW1vdGVM
YXllclRyZWVIb3N0KQogewogICAgIGZvciAoYXV0byBsYXllcklEIDogbV9sYXllcnNXaXRoU2Ny
b2xsaW5nUmVsYXRpb25zKSB7Ci0gICAgICAgIGlmIChhdXRvKiBsYXllck5vZGUgPSByZW1vdGVM
YXllclRyZWVIb3N0Lm5vZGVGb3JJRChsYXllcklEKSkKLSAgICAgICAgICAgIGxheWVyTm9kZS0+
c2V0UmVsYXRlZFNjcm9sbENvbnRhaW5lckJlaGF2aW9yQW5kSURzKHsgfSwgeyB9KTsKKyAgICAg
ICAgaWYgKGF1dG8qIGxheWVyTm9kZSA9IHJlbW90ZUxheWVyVHJlZUhvc3Qubm9kZUZvcklEKGxh
eWVySUQpKSB7CisgICAgICAgICAgICBsYXllck5vZGUtPnNldEFjdGluZ1Njcm9sbENvbnRhaW5l
cklEKDApOworICAgICAgICAgICAgbGF5ZXJOb2RlLT5zZXRTdGF0aW9uYXJ5U2Nyb2xsQ29udGFp
bmVySURzKHsgfSk7CisgICAgICAgIH0KICAgICB9CiAgICAgbV9sYXllcnNXaXRoU2Nyb2xsaW5n
UmVsYXRpb25zLmNsZWFyKCk7CiAKICAgICAvLyBVc3VhbGx5IGEgc2Nyb2xsIHZpZXcgc2Nyb2xs
cyBpdHMgZGVzY2VuZGFudCBsYXllcnMuIEluIHNvbWUgcG9zaXRpb25pbmcgY2FzZXMgaXQgYWxz
byBjb250cm9scyBub24tZGVzY2VuZGFudHMsIG9yIGRvZXNuJ3QgY29udHJvbCBhIGRlc2NlbmRh
bnQuCiAgICAgLy8gVG8gZG8gb3ZlcmxhcCBoaXQgdGVzdGluZyBjb3JyZWN0bHkgd2UgdGVsbCBs
YXllcnMgYWJvdXQgc3VjaCByZWxhdGlvbnMuCiAgICAgCi0gICAgZm9yIChhdXRvIG5vZGVJRCA6
IG1fc2Nyb2xsaW5nVHJlZS0+bm9kZXNXaXRoUmVsYXRlZE92ZXJmbG93KCkpIHsKLSAgICAgICAg
YXV0byogbm9kZSA9IG1fc2Nyb2xsaW5nVHJlZS0+bm9kZUZvcklEKG5vZGVJRCk7Ci0gICAgICAg
IGlmICghbm9kZSkgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
ICAgICBjb250aW51ZTsKLSAgICAgICAgfQorICAgIGZvciAoYXV0byYgcG9zaXRpb25lZE5vZGUg
OiBtX3Njcm9sbGluZ1RyZWUtPmFjdGl2ZVBvc2l0aW9uZWROb2RlcygpKSB7CisgICAgICAgIFZl
Y3RvcjxHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+IHN0YXRpb25hcnlTY3JvbGxDb250
YWluZXJJRHM7CiAKLSAgICAgICAgVmVjdG9yPEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJ
RD4gc2Nyb2xsQ29udGFpbmVyTGF5ZXJJRHM7Ci0gICAgICAgIFJlbW90ZUxheWVyVHJlZU5vZGUq
IGxheWVyTm9kZSA9IG51bGxwdHI7Ci0gICAgICAgIFNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3Ig
YmVoYXZpb3IgPSBTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpOb25lOwotCi0gICAgICAgIGlm
IChpczxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU+KCpub2RlKSkgewotICAgICAgICAgICAg
YXV0byYgcG9zaXRpb25lZE5vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5v
ZGU+KCpub2RlKTsKLSAgICAgICAgICAgIGZvciAoYXV0byBvdmVyZmxvd05vZGVJRCA6IHBvc2l0
aW9uZWROb2RlLnJlbGF0ZWRPdmVyZmxvd1Njcm9sbGluZ05vZGVzKCkpIHsKLSAgICAgICAgICAg
ICAgICBhdXRvKiBvdmVyZmxvd05vZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxpbmdOb2RlPihtX3Njcm9sbGluZ1RyZWUtPm5vZGVGb3JJRChvdmVyZmxvd05vZGVJRCkp
OwotICAgICAgICAgICAgICAgIGlmICghb3ZlcmZsb3dOb2RlKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgc2Nyb2xsQ29udGFpbmVyTGF5ZXJJ
RHMuYXBwZW5kKFJlbW90ZUxheWVyVHJlZU5vZGU6OmxheWVySUQob3ZlcmZsb3dOb2RlLT5zY3Jv
bGxDb250YWluZXJMYXllcigpKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBsYXllck5v
ZGUgPSBSZW1vdGVMYXllclRyZWVOb2RlOjpmb3JDQUxheWVyKHBvc2l0aW9uZWROb2RlLmxheWVy
KCkpOwotICAgICAgICAgICAgYmVoYXZpb3IgPSBTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpT
dGF0aW9uYXJ5OwotICAgICAgICB9IGVsc2UgaWYgKGlzPFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Nj
cm9sbFByb3h5Tm9kZT4oKm5vZGUpKSB7Ci0gICAgICAgICAgICBhdXRvJiBzY3JvbGxQcm94eU5v
ZGUgPSBkb3duY2FzdDxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGU+KCpub2Rl
KTsKLSAgICAgICAgICAgIGF1dG8qIG92ZXJmbG93Tm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1Ry
ZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU+KG1fc2Nyb2xsaW5nVHJlZS0+bm9kZUZvcklEKHNjcm9s
bFByb3h5Tm9kZS5vdmVyZmxvd1Njcm9sbGluZ05vZGVJRCgpKSk7Ci0gICAgICAgICAgICBpZiAo
IW92ZXJmbG93Tm9kZSkKKyAgICAgICAgZm9yIChhdXRvIG92ZXJmbG93Tm9kZUlEIDogcG9zaXRp
b25lZE5vZGUtPnJlbGF0ZWRPdmVyZmxvd1Njcm9sbGluZ05vZGVzKCkpIHsKKyAgICAgICAgICAg
IGF1dG8qIG92ZXJmbG93Tm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9s
bGluZ05vZGU+KG1fc2Nyb2xsaW5nVHJlZS0+bm9kZUZvcklEKG92ZXJmbG93Tm9kZUlEKSk7Cisg
ICAgICAgICAgICBpZiAoIW92ZXJmbG93Tm9kZSkgeworICAgICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgc3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklEcy5hcHBlbmQoUmVtb3RlTGF5
ZXJUcmVlTm9kZTo6bGF5ZXJJRChvdmVyZmxvd05vZGUtPnNjcm9sbENvbnRhaW5lckxheWVyKCkp
KTsKKyAgICAgICAgfQogCi0gICAgICAgICAgICBzY3JvbGxDb250YWluZXJMYXllcklEcy5hcHBl
bmQoUmVtb3RlTGF5ZXJUcmVlTm9kZTo6bGF5ZXJJRChvdmVyZmxvd05vZGUtPnNjcm9sbENvbnRh
aW5lckxheWVyKCkpKTsKLSAgICAgICAgICAgIGxheWVyTm9kZSA9IFJlbW90ZUxheWVyVHJlZU5v
ZGU6OmZvckNBTGF5ZXIoc2Nyb2xsUHJveHlOb2RlLmxheWVyKCkpOwotICAgICAgICAgICAgYmVo
YXZpb3IgPSBTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpNb3ZlczsKKyAgICAgICAgaWYgKGF1
dG8qIGxheWVyTm9kZSA9IFJlbW90ZUxheWVyVHJlZU5vZGU6OmZvckNBTGF5ZXIocG9zaXRpb25l
ZE5vZGUtPmxheWVyKCkpKSB7CisgICAgICAgICAgICBsYXllck5vZGUtPnNldFN0YXRpb25hcnlT
Y3JvbGxDb250YWluZXJJRHMoV1RGTW92ZShzdGF0aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzKSk7
CisgICAgICAgICAgICBtX2xheWVyc1dpdGhTY3JvbGxpbmdSZWxhdGlvbnMuYWRkKGxheWVyTm9k
ZS0+bGF5ZXJJRCgpKTsKICAgICAgICAgfQorICAgIH0KIAotICAgICAgICBpZiAoIWxheWVyTm9k
ZSkgewotICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgZm9yIChhdXRvJiBz
Y3JvbGxQcm94eU5vZGUgOiBtX3Njcm9sbGluZ1RyZWUtPmFjdGl2ZU92ZXJmbG93U2Nyb2xsUHJv
eHlOb2RlcygpKSB7CisgICAgICAgIGF1dG8qIG92ZXJmbG93Tm9kZSA9IGRvd25jYXN0PFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU+KG1fc2Nyb2xsaW5nVHJlZS0+bm9kZUZvcklE
KHNjcm9sbFByb3h5Tm9kZS0+b3ZlcmZsb3dTY3JvbGxpbmdOb2RlSUQoKSkpOworICAgICAgICBp
ZiAoIW92ZXJmbG93Tm9kZSkKICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoYXV0
byogbGF5ZXJOb2RlID0gUmVtb3RlTGF5ZXJUcmVlTm9kZTo6Zm9yQ0FMYXllcihzY3JvbGxQcm94
eU5vZGUtPmxheWVyKCkpKSB7CisgICAgICAgICAgICBsYXllck5vZGUtPnNldEFjdGluZ1Njcm9s
bENvbnRhaW5lcklEKFJlbW90ZUxheWVyVHJlZU5vZGU6OmxheWVySUQob3ZlcmZsb3dOb2RlLT5z
Y3JvbGxDb250YWluZXJMYXllcigpKSk7CisgICAgICAgICAgICBtX2xheWVyc1dpdGhTY3JvbGxp
bmdSZWxhdGlvbnMuYWRkKGxheWVyTm9kZS0+bGF5ZXJJRCgpKTsKICAgICAgICAgfQotICAgICAg
ICBsYXllck5vZGUtPnNldFJlbGF0ZWRTY3JvbGxDb250YWluZXJCZWhhdmlvckFuZElEcyhiZWhh
dmlvciwgV1RGTW92ZShzY3JvbGxDb250YWluZXJMYXllcklEcykpOwotCi0gICAgICAgIG1fbGF5
ZXJzV2l0aFNjcm9sbGluZ1JlbGF0aW9ucy5hZGQobGF5ZXJOb2RlLT5sYXllcklEKCkpOwogICAg
IH0KIH0KIAo=
</data>
<flag name="review"
          id="388958"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373210</attachid>
            <date>2019-06-30 21:42:07 -0700</date>
            <delta_ts>2019-06-30 22:09:05 -0700</delta_ts>
            <desc>patch</desc>
            <filename>acting-stationary-split-3.patch</filename>
            <type>text/plain</type>
            <size>18084</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0Njk1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA2LTMwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc2VwYXJhdGUgdmFyaWFi
bGVzIGZvciBtb3ZpbmcgYW5kIHN0YXRpb25hcnkgc2Nyb2xsaW5nIHJlbGF0aW9uc2hpcHMgaW4g
UmVtb3RlTGF5ZXJUcmVlTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwOgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
OjphY3RpdmVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6YWN0aXZlUG9zaXRpb25lZE5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6Om5vZGVzV2l0aFJlbGF0ZWRPdmVyZmxvdyk6IERlbGV0ZWQuCisKKyAgICAg
ICAgVXNlIHNlcGFyYXRlIHNldHMgZm9yIG92ZXJmbG93IHByb3hpZXMgYW5kIHBvc2l0aW9uZWQg
bm9kZXMuCisgICAgICAgIFVzZSBSZWZzIHRvIG5vZGVzIGluc3RlYWQgb2YgaWRzIHRvIHNpbXBs
aWZ5IGNsaWVudCBjb2RlLiBUaGlzIGRvZXNuJ3QgYWZmZWN0IGxpZmV0aW1lcywgdGhlc2Ugc2V0
cyBhcmUgY2xlYXJlZAorICAgICAgICBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggY29tbWl0Lgor
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsUHJveHlOb2RlLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsUHJveHlOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9jb2NvYS9TY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGUubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU6OmNvbW1pdFN0YXRlQmVm
b3JlQ2hpbGRyZW4pOgorCiAyMDE5LTA2LTMwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0xGQ10gSW1wbGVtZW50IExheW91dDo6cHJpbnRMYXlvdXRUcmVlRm9y
TGl2ZURvY3VtZW50cwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVTdGlja3lOb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwCShyZXZpc2lvbiAyNDY5NDkp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5v
ZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiR3JhcGhp
Y3NMYXllci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0
ZVRyZWUuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
VGV4dFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24gMjQ2OTQ5
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDkgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZVRy
ZWUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsaW5nVHJlZU5vZGUuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxQcm94eU5vZGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlLmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWROb2RlLmgiCiAj
aW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCIKICNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CkBAIC0xNjksNyAr
MTcxLDggQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXRUcmVlU3RhdGUoc3RkOgogICAgICAg
ICB1bnZpc2l0ZWROb2Rlcy5hZGQobm9kZUlEKTsKIAogICAgIG1fb3ZlcmZsb3dSZWxhdGVkTm9k
ZXNNYXAuY2xlYXIoKTsKLSAgICBtX25vZGVzV2l0aFJlbGF0ZWRPdmVyZmxvdy5jbGVhcigpOwor
ICAgIG1fYWN0aXZlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGVzLmNsZWFyKCk7CisgICAgbV9hY3Rp
dmVQb3NpdGlvbmVkTm9kZXMuY2xlYXIoKTsKIAogICAgIC8vIG9ycGhhbk5vZGVzIGtlZXBzIGNo
aWxkIG5vZGVzIGFsaXZlIHdoaWxlIHdlIHJlYnVpbGQgY2hpbGQgbGlzdHMuCiAgICAgT3JwaGFu
U2Nyb2xsaW5nTm9kZU1hcCBvcnBoYW5Ob2RlczsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgJKHJldmlzaW9uIDI0Njk0OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAkod29ya2luZyBjb3B5KQpA
QCAtNDQsNiArNDQsOCBAQCBjbGFzcyBTY3JvbGxpbmdTdGF0ZVRyZWU7CiBjbGFzcyBTY3JvbGxp
bmdTdGF0ZU5vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOwogY2xh
c3MgU2Nyb2xsaW5nVHJlZU5vZGU7CitjbGFzcyBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQ
cm94eU5vZGU7CitjbGFzcyBTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU7CiBjbGFzcyBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTsKIAogY2xhc3MgU2Nyb2xsaW5nVHJlZSA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxTY3JvbGxpbmdUcmVlPiB7CkBAIC0xNTQsNyArMTU2LDggQEAg
cHVibGljOgogICAgIHVzaW5nIFJlbGF0ZWROb2Rlc01hcCA9IEhhc2hNYXA8U2Nyb2xsaW5nTm9k
ZUlELCBWZWN0b3I8U2Nyb2xsaW5nTm9kZUlEPj47CiAgICAgUmVsYXRlZE5vZGVzTWFwJiBvdmVy
Zmxvd1JlbGF0ZWROb2RlcygpIHsgcmV0dXJuIG1fb3ZlcmZsb3dSZWxhdGVkTm9kZXNNYXA7IH0K
IAotICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiYgbm9kZXNXaXRoUmVsYXRlZE92ZXJmbG93
KCkgeyByZXR1cm4gbV9ub2Rlc1dpdGhSZWxhdGVkT3ZlcmZsb3c7IH0KKyAgICBIYXNoU2V0PFJl
ZjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGU+PiYgYWN0aXZlT3ZlcmZsb3dT
Y3JvbGxQcm94eU5vZGVzKCkgeyByZXR1cm4gbV9hY3RpdmVPdmVyZmxvd1Njcm9sbFByb3h5Tm9k
ZXM7IH0KKyAgICBIYXNoU2V0PFJlZjxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU+PiYgYWN0
aXZlUG9zaXRpb25lZE5vZGVzKCkgeyByZXR1cm4gbV9hY3RpdmVQb3NpdGlvbmVkTm9kZXM7IH0K
IAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzY3JvbGxpbmdUcmVlQXNUZXh0KFNjcm9sbGlu
Z1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yID0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZp
b3JOb3JtYWwpOwogCkBAIC0xNzksNyArMTgyLDkgQEAgcHJpdmF0ZToKICAgICBTY3JvbGxpbmdU
cmVlTm9kZU1hcCBtX25vZGVNYXA7CiAKICAgICBSZWxhdGVkTm9kZXNNYXAgbV9vdmVyZmxvd1Jl
bGF0ZWROb2Rlc01hcDsKLSAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbV9ub2Rlc1dpdGhS
ZWxhdGVkT3ZlcmZsb3c7CisKKyAgICBIYXNoU2V0PFJlZjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxQcm94eU5vZGU+PiBtX2FjdGl2ZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlczsKKyAgICBI
YXNoU2V0PFJlZjxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU+PiBtX2FjdGl2ZVBvc2l0aW9u
ZWROb2RlczsKIAogICAgIHN0cnVjdCBUcmVlU3RhdGUgewogICAgICAgICBTY3JvbGxpbmdOb2Rl
SUQgbGF0Y2hlZE5vZGVJRCB7IDAgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL2NvY29hL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb2NvYS9TY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxQcm94eU5vZGUubW0JKHJldmlzaW9uIDI0Njk0OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbFBy
b3h5Tm9kZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjIsOSArNjIsOSBAQCB2b2lkIFNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kCiAgICAgICAgIHJlbGF0ZWROb2Rlcy5lbnN1cmUo
bV9vdmVyZmxvd1Njcm9sbGluZ05vZGVJRCwgW10gewogICAgICAgICAgICAgcmV0dXJuIFZlY3Rv
cjxTY3JvbGxpbmdOb2RlSUQ+KCk7CiAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQo
c2Nyb2xsaW5nTm9kZUlEKCkpOwotICAgIH0KIAotICAgIHNjcm9sbGluZ1RyZWUoKS5ub2Rlc1dp
dGhSZWxhdGVkT3ZlcmZsb3coKS5hZGQoc2Nyb2xsaW5nTm9kZUlEKCkpOworICAgICAgICBzY3Jv
bGxpbmdUcmVlKCkuYWN0aXZlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGVzKCkuYWRkKCp0aGlzKTsK
KyAgICB9CiB9CiAKIEZsb2F0U2l6ZSBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5v
ZGU6OnNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb2NvYS9TY3JvbGxp
bmdUcmVlUG9zaXRpb25lZE5vZGUubW0JKHJldmlzaW9uIDI0Njk0OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVQb3NpdGlv
bmVkTm9kZTo6Y29tbWl0CiAgICAgICAgIG1fY29uc3RyYWludHMgPSBwb3NpdGlvbmVkU3RhdGVO
b2RlLmxheW91dENvbnN0cmFpbnRzKCk7CiAKICAgICBpZiAoIW1fcmVsYXRlZE92ZXJmbG93U2Ny
b2xsaW5nTm9kZXMuaXNFbXB0eSgpKQotICAgICAgICBzY3JvbGxpbmdUcmVlKCkubm9kZXNXaXRo
UmVsYXRlZE92ZXJmbG93KCkuYWRkKHNjcm9sbGluZ05vZGVJRCgpKTsKKyAgICAgICAgc2Nyb2xs
aW5nVHJlZSgpLmFjdGl2ZVBvc2l0aW9uZWROb2RlcygpLmFkZCgqdGhpcyk7CiB9CiAKIEZsb2F0
U2l6ZSBTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU6OnNjcm9sbERlbHRhU2luY2VMYXN0Q29t
bWl0KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDY5NTMpCisrKyBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA2LTMw
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc2VwYXJh
dGUgdmFyaWFibGVzIGZvciBtb3ZpbmcgYW5kIHN0YXRpb25hcnkgc2Nyb2xsaW5nIHJlbGF0aW9u
c2hpcHMgaW4gUmVtb3RlTGF5ZXJUcmVlTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgQSBsYXllciBjYW4gaGF2ZSBvbmx5IG9uZSBhY3Rpbmcgc2Nyb2xs
IHBhcmVudC4gTm90IHVzaW5nIGEgdmVjdG9yIGZvciB0aGF0IGNhc2UgbWFrZXMgdGhlIGNvZGUg
Y2xlYXJlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlTm9kZS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVOb2RlOjphY3Rp
bmdTY3JvbGxDb250YWluZXJJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZU5vZGU6OnN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMgY29uc3QpOgorCisgICAgICAg
IFNlcGFyYXRlIGZpZWxkcyBmb3IgdGhlIGFjdGluZyBjb250YWluZXIgYW5kIHN0YXRpb25hcnkg
Y29udGFpbmVycy4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVOb2RlOjpzZXRB
Y3RpbmdTY3JvbGxDb250YWluZXJJRCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZU5vZGU6OnNldFN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVOb2RlOjpyZWxhdGVkU2Nyb2xsQ29udGFpbmVySURzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlTm9kZTo6cmVsYXRlZFNj
cm9sbENvbnRhaW5lclBvc2l0aW9uaW5nQmVoYXZpb3IgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0UmVsYXRlZFNjcm9sbENvbnRh
aW5lckJlaGF2aW9yQW5kSURzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbToKKyAgICAgICAgKFdlYktpdDo6
aXNTY3JvbGxlZEJ5KToKKyAgICAgICAgKFdlYktpdDo6ZmluZEFjdGluZ1Njcm9sbFBhcmVudCk6
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6ZXN0YWJsaXNoTGF5ZXJUcmVlU2Nyb2xsaW5nUmVsYXRpb25zKToK
KwogMjAxOS0wNi0yOCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpc2UgV2ViQ29udGVudCBzYW5kYm94IGJhc2VkIG9uIHNlZWQgZmVlZGJhY2sKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5vZGUuaAkocmV2aXNpb24gMjQ2OTQ5KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5vZGUuaAko
d29ya2luZyBjb3B5KQpAQCAtNTksMTAgKzU5LDEzIEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJD
b3JlOjpFdmVudFJlZ2lvbiYgZXZlbnRSZWdpb24oKSBjb25zdCB7IHJldHVybiBtX2V2ZW50UmVn
aW9uOyB9CiAgICAgdm9pZCBzZXRFdmVudFJlZ2lvbihjb25zdCBXZWJDb3JlOjpFdmVudFJlZ2lv
biYpOwogCi0gICAgLy8gSWYgZW1wdHkgdGhlIGxheWVyIGlzIHNjcm9sbGVkIG5vcm1hbGx5IGJ5
IGFuIGFuY2VzdG9yIHNjcm9sbGVyLgotICAgIGNvbnN0IGF1dG8mIHJlbGF0ZWRTY3JvbGxDb250
YWluZXJJRHMoKSBjb25zdCB7IHJldHVybiBtX3JlbGF0ZWRTY3JvbGxDb250YWluZXJJRHM7IH0K
LSAgICBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yIHJlbGF0ZWRTY3JvbGxDb250
YWluZXJQb3NpdGlvbmluZ0JlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGVkU2Nyb2xs
Q29udGFpbmVyUG9zaXRpb25pbmdCZWhhdmlvcjsgfQotICAgIHZvaWQgc2V0UmVsYXRlZFNjcm9s
bENvbnRhaW5lckJlaGF2aW9yQW5kSURzKFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZp
b3IsIFZlY3RvcjxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+JiYpOwor
ICAgIC8vIE5vbi1hbmNlc3RvciBzY3JvbGxlciB0aGF0IGNvbnRyb2xzIHBvc2l0aW9uaW5nIG9m
IHRoZSBsYXllci4KKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQg
YWN0aW5nU2Nyb2xsQ29udGFpbmVySUQoKSBjb25zdCB7IHJldHVybiBtX2FjdGluZ1Njcm9sbENv
bnRhaW5lcklEOyB9CisgICAgLy8gQW5jZXN0b3Igc2Nyb2xsZXJzIHRoYXQgZG9uJ3QgYWZmZWN0
IHBvc2l0aW9uaW5nIG9mIHRoZSBsYXllci4KKyAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiYgc3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklE
cygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklEczsgfQorCisg
ICAgdm9pZCBzZXRBY3RpbmdTY3JvbGxDb250YWluZXJJRChXZWJDb3JlOjpHcmFwaGljc0xheWVy
OjpQbGF0Zm9ybUxheWVySUQgdmFsdWUpIHsgbV9hY3RpbmdTY3JvbGxDb250YWluZXJJRCA9IHZh
bHVlOyB9CisgICAgdm9pZCBzZXRTdGF0aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzKFZlY3RvcjxX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+JiYgdmFsdWUpIHsgbV9zdGF0
aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzID0gV1RGTW92ZSh2YWx1ZSk7IH0KIAogICAgIHZvaWQg
ZGV0YWNoRnJvbVBhcmVudCgpOwogCkBAIC04Myw4ICs4Niw4IEBAIHByaXZhdGU6CiAKICAgICBX
ZWJDb3JlOjpFdmVudFJlZ2lvbiBtX2V2ZW50UmVnaW9uOwogCi0gICAgVmVjdG9yPFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4gbV9yZWxhdGVkU2Nyb2xsQ29udGFpbmVy
SURzOwotICAgIFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3IgbV9yZWxhdGVkU2Ny
b2xsQ29udGFpbmVyUG9zaXRpb25pbmdCZWhhdmlvciB7IFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9u
aW5nQmVoYXZpb3I6Ok5vbmUgfTsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9y
bUxheWVySUQgbV9hY3RpbmdTY3JvbGxDb250YWluZXJJRCB7IDAgfTsKKyAgICBWZWN0b3I8V2Vi
Q29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiBtX3N0YXRpb25hcnlTY3JvbGxD
b250YWluZXJJRHM7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbQko
cmV2aXNpb24gMjQ2OTQ5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZU5vZGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTkyLDEyICs5Miw2
IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0RXZlbnRSZWdpb24KICAgICBtX2V2ZW50
UmVnaW9uID0gZXZlbnRSZWdpb247CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0
UmVsYXRlZFNjcm9sbENvbnRhaW5lckJlaGF2aW9yQW5kSURzKFdlYkNvcmU6OlNjcm9sbFBvc2l0
aW9uaW5nQmVoYXZpb3IgYmVoYXZpb3IsIFZlY3RvcjxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQ
bGF0Zm9ybUxheWVySUQ+JiYgc2Nyb2xsQ29udGFpbmVySURzKQotewotICAgIG1fcmVsYXRlZFNj
cm9sbENvbnRhaW5lclBvc2l0aW9uaW5nQmVoYXZpb3IgPSBiZWhhdmlvcjsKLSAgICBtX3JlbGF0
ZWRTY3JvbGxDb250YWluZXJJRHMgPSBXVEZNb3ZlKHNjcm9sbENvbnRhaW5lcklEcyk7Ci19Ci0K
IHZvaWQgUmVtb3RlTGF5ZXJUcmVlTm9kZTo6aW5pdGlhbGl6ZUxheWVyKCkKIHsKICAgICBbbGF5
ZXIoKSBzZXRWYWx1ZTpbTlNWYWx1ZSB2YWx1ZVdpdGhQb2ludGVyOnRoaXNdIGZvcktleTpXS1Jl
bW90ZUxheWVyVHJlZU5vZGVQcm9wZXJ0eUtleV07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3Rl
TGF5ZXJUcmVlVmlld3MubW0JKHJldmlzaW9uIDI0Njk0OSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0JKHdvcmtp
bmcgY29weSkKQEAgLTc5LDE1ICs3OSwxMSBAQCBzdGF0aWMgYm9vbCBpc1Njcm9sbGVkQnkoV0tD
aGlsZFNjcm9sbFZpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICBhdXRvKiBu
b2RlID0gUmVtb3RlTGF5ZXJUcmVlTm9kZTo6Zm9yQ0FMYXllcih2aWV3LmxheWVyKTsKLSAgICAg
ICAgaWYgKG5vZGUgJiYgc2Nyb2xsTGF5ZXJJRCAmJiBub2RlLT5yZWxhdGVkU2Nyb2xsQ29udGFp
bmVySURzKCkuY29udGFpbnMoc2Nyb2xsTGF5ZXJJRCkpIHsKLSAgICAgICAgICAgIHN3aXRjaCAo
bm9kZS0+cmVsYXRlZFNjcm9sbENvbnRhaW5lclBvc2l0aW9uaW5nQmVoYXZpb3IoKSkgewotICAg
ICAgICAgICAgY2FzZSBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpNb3ZlczoK
KyAgICAgICAgaWYgKG5vZGUgJiYgc2Nyb2xsTGF5ZXJJRCkgeworICAgICAgICAgICAgaWYgKG5v
ZGUtPmFjdGluZ1Njcm9sbENvbnRhaW5lcklEKCkgPT0gc2Nyb2xsTGF5ZXJJRCkKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6U2Nyb2xsUG9z
aXRpb25pbmdCZWhhdmlvcjo6U3RhdGlvbmFyeToKKyAgICAgICAgICAgIGlmIChub2RlLT5zdGF0
aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzKCkuY29udGFpbnMoc2Nyb2xsTGF5ZXJJRCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpTY3Jv
bGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpOb25lOgotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCkBAIC0xMzMsMjEg
KzEyOSwxMSBAQCBVSVNjcm9sbFZpZXcgKmZpbmRBY3RpbmdTY3JvbGxQYXJlbnQoVUlTCiAgICAg
ICAgICAgICAvLyBGSVhNRTogSWRlYWxseSB3ZSB3b3VsZCByZXR1cm4gdGhlIHNjcm9sbGVyIHdl
IHdhbnQgaW4gYWxsIGNhc2VzIGJ1dCB0aGUgY3VycmVudCBVSUtpdCBTUEkgb25seSBhbGxvd3Mg
cmV0dXJuaW5nIGEgbm9uLWFuY2VzdG9yLgogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAg
ICAgfQotCiAgICAgICAgIGlmIChhdXRvKiBub2RlID0gUmVtb3RlTGF5ZXJUcmVlTm9kZTo6Zm9y
Q0FMYXllcih2aWV3LmxheWVyKSkgewotICAgICAgICAgICAgc3dpdGNoIChub2RlLT5yZWxhdGVk
U2Nyb2xsQ29udGFpbmVyUG9zaXRpb25pbmdCZWhhdmlvcigpKSB7Ci0gICAgICAgICAgICBjYXNl
IFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3I6Ok1vdmVzOgotICAgICAgICAgICAg
ICAgIGlmICghbm9kZS0+cmVsYXRlZFNjcm9sbENvbnRhaW5lcklEcygpLmlzRW1wdHkoKSkgewot
ICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogbm9uQW5jZXN0b3JTY3JvbGxpbmdOb2RlID0g
aG9zdC5ub2RlRm9ySUQobm9kZS0+cmVsYXRlZFNjcm9sbENvbnRhaW5lcklEcygpWzBdKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoV0tDaGlsZFNjcm9sbFZpZXcgKilub25BbmNl
c3RvclNjcm9sbGluZ05vZGUtPnVpVmlldygpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6U2Nyb2xsUG9zaXRpb25p
bmdCZWhhdmlvcjo6U3RhdGlvbmFyeToKLSAgICAgICAgICAgICAgICBzY3JvbGxlcnNUb1NraXAu
YWRkKG5vZGUtPnJlbGF0ZWRTY3JvbGxDb250YWluZXJJRHMoKS5iZWdpbigpLCBub2RlLT5yZWxh
dGVkU2Nyb2xsQ29udGFpbmVySURzKCkuZW5kKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpOb25l
OgotICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGF1dG8qIGFjdGluZ1BhcmVudCA9IGhvc3Qubm9kZUZvcklEKG5vZGUtPmFjdGluZ1Njcm9sbENv
bnRhaW5lcklEKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiAoV0tDaGlsZFNjcm9sbFZpZXcg
KilhY3RpbmdQYXJlbnQtPnVpVmlldygpOworCisgICAgICAgICAgICBzY3JvbGxlcnNUb1NraXAu
YWRkKG5vZGUtPnN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMoKS5iZWdpbigpLCBub2RlLT5z
dGF0aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzKCkuZW5kKCkpOwogICAgICAgICB9CiAgICAgfQog
ICAgIHJldHVybiBuaWw7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVT
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCShyZXZpc2lvbiAyNDY5NDkpCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nv
b3JkaW5hdG9yUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTEyNSw1NSArMTI1LDQwIEBA
IHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6c2MKIHZvaWQgUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6ZXN0YWJsaXNoTGF5ZXJUcmVlU2Nyb2xsaW5nUmVsYXRp
b25zKGNvbnN0IFJlbW90ZUxheWVyVHJlZUhvc3QmIHJlbW90ZUxheWVyVHJlZUhvc3QpCiB7CiAg
ICAgZm9yIChhdXRvIGxheWVySUQgOiBtX2xheWVyc1dpdGhTY3JvbGxpbmdSZWxhdGlvbnMpIHsK
LSAgICAgICAgaWYgKGF1dG8qIGxheWVyTm9kZSA9IHJlbW90ZUxheWVyVHJlZUhvc3Qubm9kZUZv
cklEKGxheWVySUQpKQotICAgICAgICAgICAgbGF5ZXJOb2RlLT5zZXRSZWxhdGVkU2Nyb2xsQ29u
dGFpbmVyQmVoYXZpb3JBbmRJRHMoeyB9LCB7IH0pOworICAgICAgICBpZiAoYXV0byogbGF5ZXJO
b2RlID0gcmVtb3RlTGF5ZXJUcmVlSG9zdC5ub2RlRm9ySUQobGF5ZXJJRCkpIHsKKyAgICAgICAg
ICAgIGxheWVyTm9kZS0+c2V0QWN0aW5nU2Nyb2xsQ29udGFpbmVySUQoMCk7CisgICAgICAgICAg
ICBsYXllck5vZGUtPnNldFN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMoeyB9KTsKKyAgICAg
ICAgfQogICAgIH0KICAgICBtX2xheWVyc1dpdGhTY3JvbGxpbmdSZWxhdGlvbnMuY2xlYXIoKTsK
IAogICAgIC8vIFVzdWFsbHkgYSBzY3JvbGwgdmlldyBzY3JvbGxzIGl0cyBkZXNjZW5kYW50IGxh
eWVycy4gSW4gc29tZSBwb3NpdGlvbmluZyBjYXNlcyBpdCBhbHNvIGNvbnRyb2xzIG5vbi1kZXNj
ZW5kYW50cywgb3IgZG9lc24ndCBjb250cm9sIGEgZGVzY2VuZGFudC4KICAgICAvLyBUbyBkbyBv
dmVybGFwIGhpdCB0ZXN0aW5nIGNvcnJlY3RseSB3ZSB0ZWxsIGxheWVycyBhYm91dCBzdWNoIHJl
bGF0aW9ucy4KICAgICAKLSAgICBmb3IgKGF1dG8gbm9kZUlEIDogbV9zY3JvbGxpbmdUcmVlLT5u
b2Rlc1dpdGhSZWxhdGVkT3ZlcmZsb3coKSkgewotICAgICAgICBhdXRvKiBub2RlID0gbV9zY3Jv
bGxpbmdUcmVlLT5ub2RlRm9ySUQobm9kZUlEKTsKLSAgICAgICAgaWYgKCFub2RlKSB7Ci0gICAg
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICB9CisgICAgZm9yIChhdXRvJiBwb3NpdGlvbmVkTm9kZSA6IG1fc2Nyb2xsaW5nVHJlZS0+
YWN0aXZlUG9zaXRpb25lZE5vZGVzKCkpIHsKKyAgICAgICAgVmVjdG9yPEdyYXBoaWNzTGF5ZXI6
OlBsYXRmb3JtTGF5ZXJJRD4gc3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklEczsKIAotICAgICAg
ICBWZWN0b3I8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiBzY3JvbGxDb250YWluZXJM
YXllcklEczsKLSAgICAgICAgUmVtb3RlTGF5ZXJUcmVlTm9kZSogbGF5ZXJOb2RlID0gbnVsbHB0
cjsKLSAgICAgICAgU2Nyb2xsUG9zaXRpb25pbmdCZWhhdmlvciBiZWhhdmlvciA9IFNjcm9sbFBv
c2l0aW9uaW5nQmVoYXZpb3I6Ok5vbmU7Ci0KLSAgICAgICAgaWYgKGlzPFNjcm9sbGluZ1RyZWVQ
b3NpdGlvbmVkTm9kZT4oKm5vZGUpKSB7Ci0gICAgICAgICAgICBhdXRvJiBwb3NpdGlvbmVkTm9k
ZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZT4oKm5vZGUpOwotICAgICAg
ICAgICAgZm9yIChhdXRvIG92ZXJmbG93Tm9kZUlEIDogcG9zaXRpb25lZE5vZGUucmVsYXRlZE92
ZXJmbG93U2Nyb2xsaW5nTm9kZXMoKSkgewotICAgICAgICAgICAgICAgIGF1dG8qIG92ZXJmbG93
Tm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGU+KG1fc2Ny
b2xsaW5nVHJlZS0+bm9kZUZvcklEKG92ZXJmbG93Tm9kZUlEKSk7Ci0gICAgICAgICAgICAgICAg
aWYgKCFvdmVyZmxvd05vZGUpIHsKLSAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgICAgICBzY3JvbGxDb250YWluZXJMYXllcklEcy5hcHBlbmQoUmVtb3RlTGF5
ZXJUcmVlTm9kZTo6bGF5ZXJJRChvdmVyZmxvd05vZGUtPnNjcm9sbENvbnRhaW5lckxheWVyKCkp
KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGxheWVyTm9kZSA9IFJlbW90ZUxheWVyVHJl
ZU5vZGU6OmZvckNBTGF5ZXIocG9zaXRpb25lZE5vZGUubGF5ZXIoKSk7Ci0gICAgICAgICAgICBi
ZWhhdmlvciA9IFNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3I6OlN0YXRpb25hcnk7Ci0gICAgICAg
IH0gZWxzZSBpZiAoaXM8U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlPigqbm9k
ZSkpIHsKLSAgICAgICAgICAgIGF1dG8mIHNjcm9sbFByb3h5Tm9kZSA9IGRvd25jYXN0PFNjcm9s
bGluZ1RyZWVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kZT4oKm5vZGUpOwotICAgICAgICAgICAgYXV0
byogb3ZlcmZsb3dOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZT4obV9zY3JvbGxpbmdUcmVlLT5ub2RlRm9ySUQoc2Nyb2xsUHJveHlOb2RlLm92ZXJmbG93
U2Nyb2xsaW5nTm9kZUlEKCkpKTsKKyAgICAgICAgZm9yIChhdXRvIG92ZXJmbG93Tm9kZUlEIDog
cG9zaXRpb25lZE5vZGUtPnJlbGF0ZWRPdmVyZmxvd1Njcm9sbGluZ05vZGVzKCkpIHsKKyAgICAg
ICAgICAgIGF1dG8qIG92ZXJmbG93Tm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVPdmVyZmxv
d1Njcm9sbGluZ05vZGU+KG1fc2Nyb2xsaW5nVHJlZS0+bm9kZUZvcklEKG92ZXJmbG93Tm9kZUlE
KSk7CiAgICAgICAgICAgICBpZiAoIW92ZXJmbG93Tm9kZSkKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgICAgIHN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMuYXBwZW5kKFJl
bW90ZUxheWVyVHJlZU5vZGU6OmxheWVySUQob3ZlcmZsb3dOb2RlLT5zY3JvbGxDb250YWluZXJM
YXllcigpKSk7CisgICAgICAgIH0KIAotICAgICAgICAgICAgc2Nyb2xsQ29udGFpbmVyTGF5ZXJJ
RHMuYXBwZW5kKFJlbW90ZUxheWVyVHJlZU5vZGU6OmxheWVySUQob3ZlcmZsb3dOb2RlLT5zY3Jv
bGxDb250YWluZXJMYXllcigpKSk7Ci0gICAgICAgICAgICBsYXllck5vZGUgPSBSZW1vdGVMYXll
clRyZWVOb2RlOjpmb3JDQUxheWVyKHNjcm9sbFByb3h5Tm9kZS5sYXllcigpKTsKLSAgICAgICAg
ICAgIGJlaGF2aW9yID0gU2Nyb2xsUG9zaXRpb25pbmdCZWhhdmlvcjo6TW92ZXM7CisgICAgICAg
IGlmIChhdXRvKiBsYXllck5vZGUgPSBSZW1vdGVMYXllclRyZWVOb2RlOjpmb3JDQUxheWVyKHBv
c2l0aW9uZWROb2RlLT5sYXllcigpKSkgeworICAgICAgICAgICAgbGF5ZXJOb2RlLT5zZXRTdGF0
aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzKFdURk1vdmUoc3RhdGlvbmFyeVNjcm9sbENvbnRhaW5l
cklEcykpOworICAgICAgICAgICAgbV9sYXllcnNXaXRoU2Nyb2xsaW5nUmVsYXRpb25zLmFkZChs
YXllck5vZGUtPmxheWVySUQoKSk7CiAgICAgICAgIH0KKyAgICB9CiAKLSAgICAgICAgaWYgKCFs
YXllck5vZGUpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIGZvciAo
YXV0byYgc2Nyb2xsUHJveHlOb2RlIDogbV9zY3JvbGxpbmdUcmVlLT5hY3RpdmVPdmVyZmxvd1Nj
cm9sbFByb3h5Tm9kZXMoKSkgeworICAgICAgICBhdXRvKiBvdmVyZmxvd05vZGUgPSBkb3duY2Fz
dDxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlPihtX3Njcm9sbGluZ1RyZWUtPm5v
ZGVGb3JJRChzY3JvbGxQcm94eU5vZGUtPm92ZXJmbG93U2Nyb2xsaW5nTm9kZUlEKCkpKTsKKyAg
ICAgICAgaWYgKCFvdmVyZmxvd05vZGUpCiAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
aWYgKGF1dG8qIGxheWVyTm9kZSA9IFJlbW90ZUxheWVyVHJlZU5vZGU6OmZvckNBTGF5ZXIoc2Ny
b2xsUHJveHlOb2RlLT5sYXllcigpKSkgeworICAgICAgICAgICAgbGF5ZXJOb2RlLT5zZXRBY3Rp
bmdTY3JvbGxDb250YWluZXJJRChSZW1vdGVMYXllclRyZWVOb2RlOjpsYXllcklEKG92ZXJmbG93
Tm9kZS0+c2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSkpOworICAgICAgICAgICAgbV9sYXllcnNXaXRo
U2Nyb2xsaW5nUmVsYXRpb25zLmFkZChsYXllck5vZGUtPmxheWVySUQoKSk7CiAgICAgICAgIH0K
LSAgICAgICAgbGF5ZXJOb2RlLT5zZXRSZWxhdGVkU2Nyb2xsQ29udGFpbmVyQmVoYXZpb3JBbmRJ
RHMoYmVoYXZpb3IsIFdURk1vdmUoc2Nyb2xsQ29udGFpbmVyTGF5ZXJJRHMpKTsKLQotICAgICAg
ICBtX2xheWVyc1dpdGhTY3JvbGxpbmdSZWxhdGlvbnMuYWRkKGxheWVyTm9kZS0+bGF5ZXJJRCgp
KTsKICAgICB9CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>373211</attachid>
            <date>2019-06-30 22:09:05 -0700</date>
            <delta_ts>2019-06-30 22:52:37 -0700</delta_ts>
            <desc>patch</desc>
            <filename>acting-stationary-split-4.patch</filename>
            <type>text/plain</type>
            <size>18167</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0Njk1NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBACisyMDE5LTA2LTMwICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc2VwYXJhdGUgdmFyaWFi
bGVzIGZvciBtb3ZpbmcgYW5kIHN0YXRpb25hcnkgc2Nyb2xsaW5nIHJlbGF0aW9uc2hpcHMgaW4g
UmVtb3RlTGF5ZXJUcmVlTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTk5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisK
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwOgor
ICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6Y29tbWl0VHJlZVN0YXRlKToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVl
OjphY3RpdmVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kZXMpOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZTo6YWN0aXZlUG9zaXRpb25lZE5vZGVzKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbGluZ1RyZWU6Om5vZGVzV2l0aFJlbGF0ZWRPdmVyZmxvdyk6IERlbGV0ZWQuCisKKyAgICAg
ICAgVXNlIHNlcGFyYXRlIHNldHMgZm9yIG92ZXJmbG93IHByb3hpZXMgYW5kIHBvc2l0aW9uZWQg
bm9kZXMuCisgICAgICAgIFVzZSBSZWZzIHRvIG5vZGVzIGluc3RlYWQgb2YgaWRzIHRvIHNpbXBs
aWZ5IGNsaWVudCBjb2RlLiBUaGlzIGRvZXNuJ3QgYWZmZWN0IGxpZmV0aW1lcywgdGhlc2Ugc2V0
cyBhcmUgY2xlYXJlZAorICAgICAgICBhdCB0aGUgYmVnaW5uaW5nIG9mIGVhY2ggY29tbWl0Lgor
CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvY29jb2EvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsUHJveHlOb2RlLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsUHJveHlOb2RlOjpjb21taXRTdGF0ZUJlZm9yZUNoaWxkcmVuKToKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9jb2NvYS9TY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGUubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU6OmNvbW1pdFN0YXRlQmVm
b3JlQ2hpbGRyZW4pOgorCiAyMDE5LTA2LTMwICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0xGQ10gSW1wbGVtZW50IExheW91dDo6cHJpbnRMYXlvdXRUcmVlRm9y
TGl2ZURvY3VtZW50cwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nU3RhdGVTdGlja3lOb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5vZGUuY3BwCShyZXZpc2lvbiAyNDY5NDkp
CisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdTdGF0ZVN0aWNreU5v
ZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiR3JhcGhp
Y3NMYXllci5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0
ZVRyZWUuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlLmgiCiAjaW5jbHVkZSA8d3RmL3RleHQv
VGV4dFN0cmVhbS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAkocmV2aXNpb24gMjQ2OTQ5
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDkgQEAKICNpbmNsdWRlICJTY3JvbGxpbmdTdGF0ZVRy
ZWUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsaW5nVHJlZU5vZGUuaCIKKyNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxQcm94eU5vZGUuaCIKICNpbmNsdWRlICJTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3Jv
bGxpbmdOb2RlLmgiCisjaW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWROb2RlLmgiCiAj
aW5jbHVkZSAiU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaCIKICNpbmNsdWRlIDx3dGYvU2V0
Rm9yU2NvcGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+CkBAIC0xNjksNyAr
MTcxLDggQEAgdm9pZCBTY3JvbGxpbmdUcmVlOjpjb21taXRUcmVlU3RhdGUoc3RkOgogICAgICAg
ICB1bnZpc2l0ZWROb2Rlcy5hZGQobm9kZUlEKTsKIAogICAgIG1fb3ZlcmZsb3dSZWxhdGVkTm9k
ZXNNYXAuY2xlYXIoKTsKLSAgICBtX25vZGVzV2l0aFJlbGF0ZWRPdmVyZmxvdy5jbGVhcigpOwor
ICAgIG1fYWN0aXZlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGVzLmNsZWFyKCk7CisgICAgbV9hY3Rp
dmVQb3NpdGlvbmVkTm9kZXMuY2xlYXIoKTsKIAogICAgIC8vIG9ycGhhbk5vZGVzIGtlZXBzIGNo
aWxkIG5vZGVzIGFsaXZlIHdoaWxlIHdlIHJlYnVpbGQgY2hpbGQgbGlzdHMuCiAgICAgT3JwaGFu
U2Nyb2xsaW5nTm9kZU1hcCBvcnBoYW5Ob2RlczsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgJKHJldmlzaW9uIDI0Njk0OSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAkod29ya2luZyBjb3B5KQpA
QCAtNDQsNiArNDQsOCBAQCBjbGFzcyBTY3JvbGxpbmdTdGF0ZVRyZWU7CiBjbGFzcyBTY3JvbGxp
bmdTdGF0ZU5vZGU7CiBjbGFzcyBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlOwogY2xh
c3MgU2Nyb2xsaW5nVHJlZU5vZGU7CitjbGFzcyBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQ
cm94eU5vZGU7CitjbGFzcyBTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU7CiBjbGFzcyBTY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTsKIAogY2xhc3MgU2Nyb2xsaW5nVHJlZSA6IHB1YmxpYyBU
aHJlYWRTYWZlUmVmQ291bnRlZDxTY3JvbGxpbmdUcmVlPiB7CkBAIC0xNTQsNyArMTU2LDggQEAg
cHVibGljOgogICAgIHVzaW5nIFJlbGF0ZWROb2Rlc01hcCA9IEhhc2hNYXA8U2Nyb2xsaW5nTm9k
ZUlELCBWZWN0b3I8U2Nyb2xsaW5nTm9kZUlEPj47CiAgICAgUmVsYXRlZE5vZGVzTWFwJiBvdmVy
Zmxvd1JlbGF0ZWROb2RlcygpIHsgcmV0dXJuIG1fb3ZlcmZsb3dSZWxhdGVkTm9kZXNNYXA7IH0K
IAotICAgIEhhc2hTZXQ8U2Nyb2xsaW5nTm9kZUlEPiYgbm9kZXNXaXRoUmVsYXRlZE92ZXJmbG93
KCkgeyByZXR1cm4gbV9ub2Rlc1dpdGhSZWxhdGVkT3ZlcmZsb3c7IH0KKyAgICBIYXNoU2V0PFJl
ZjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGU+PiYgYWN0aXZlT3ZlcmZsb3dT
Y3JvbGxQcm94eU5vZGVzKCkgeyByZXR1cm4gbV9hY3RpdmVPdmVyZmxvd1Njcm9sbFByb3h5Tm9k
ZXM7IH0KKyAgICBIYXNoU2V0PFJlZjxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU+PiYgYWN0
aXZlUG9zaXRpb25lZE5vZGVzKCkgeyByZXR1cm4gbV9hY3RpdmVQb3NpdGlvbmVkTm9kZXM7IH0K
IAogICAgIFdFQkNPUkVfRVhQT1JUIFN0cmluZyBzY3JvbGxpbmdUcmVlQXNUZXh0KFNjcm9sbGlu
Z1N0YXRlVHJlZUFzVGV4dEJlaGF2aW9yID0gU2Nyb2xsaW5nU3RhdGVUcmVlQXNUZXh0QmVoYXZp
b3JOb3JtYWwpOwogCkBAIC0xNzksNyArMTgyLDkgQEAgcHJpdmF0ZToKICAgICBTY3JvbGxpbmdU
cmVlTm9kZU1hcCBtX25vZGVNYXA7CiAKICAgICBSZWxhdGVkTm9kZXNNYXAgbV9vdmVyZmxvd1Jl
bGF0ZWROb2Rlc01hcDsKLSAgICBIYXNoU2V0PFNjcm9sbGluZ05vZGVJRD4gbV9ub2Rlc1dpdGhS
ZWxhdGVkT3ZlcmZsb3c7CisKKyAgICBIYXNoU2V0PFJlZjxTY3JvbGxpbmdUcmVlT3ZlcmZsb3dT
Y3JvbGxQcm94eU5vZGU+PiBtX2FjdGl2ZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlczsKKyAgICBI
YXNoU2V0PFJlZjxTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU+PiBtX2FjdGl2ZVBvc2l0aW9u
ZWROb2RlczsKIAogICAgIHN0cnVjdCBUcmVlU3RhdGUgewogICAgICAgICBTY3JvbGxpbmdOb2Rl
SUQgbGF0Y2hlZE5vZGVJRCB7IDAgfTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL2NvY29hL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kZS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb2NvYS9TY3JvbGxpbmdUcmVl
T3ZlcmZsb3dTY3JvbGxQcm94eU5vZGUubW0JKHJldmlzaW9uIDI0Njk0OSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbFBy
b3h5Tm9kZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjIsOSArNjIsOSBAQCB2b2lkIFNjcm9sbGlu
Z1RyZWVPdmVyZmxvd1Njcm9sbFByb3h5Tm9kCiAgICAgICAgIHJlbGF0ZWROb2Rlcy5lbnN1cmUo
bV9vdmVyZmxvd1Njcm9sbGluZ05vZGVJRCwgW10gewogICAgICAgICAgICAgcmV0dXJuIFZlY3Rv
cjxTY3JvbGxpbmdOb2RlSUQ+KCk7CiAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQo
c2Nyb2xsaW5nTm9kZUlEKCkpOwotICAgIH0KIAotICAgIHNjcm9sbGluZ1RyZWUoKS5ub2Rlc1dp
dGhSZWxhdGVkT3ZlcmZsb3coKS5hZGQoc2Nyb2xsaW5nTm9kZUlEKCkpOworICAgICAgICBzY3Jv
bGxpbmdUcmVlKCkuYWN0aXZlT3ZlcmZsb3dTY3JvbGxQcm94eU5vZGVzKCkuYWRkKCp0aGlzKTsK
KyAgICB9CiB9CiAKIEZsb2F0U2l6ZSBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxQcm94eU5v
ZGU6OnNjcm9sbERlbHRhU2luY2VMYXN0Q29tbWl0KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZS5tbQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9jb2NvYS9TY3JvbGxp
bmdUcmVlUG9zaXRpb25lZE5vZGUubW0JKHJldmlzaW9uIDI0Njk0OSkKKysrIFNvdXJjZS9XZWJD
b3JlL3BhZ2Uvc2Nyb2xsaW5nL2NvY29hL1Njcm9sbGluZ1RyZWVQb3NpdGlvbmVkTm9kZS5tbQko
d29ya2luZyBjb3B5KQpAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVQb3NpdGlv
bmVkTm9kZTo6Y29tbWl0CiAgICAgICAgIG1fY29uc3RyYWludHMgPSBwb3NpdGlvbmVkU3RhdGVO
b2RlLmxheW91dENvbnN0cmFpbnRzKCk7CiAKICAgICBpZiAoIW1fcmVsYXRlZE92ZXJmbG93U2Ny
b2xsaW5nTm9kZXMuaXNFbXB0eSgpKQotICAgICAgICBzY3JvbGxpbmdUcmVlKCkubm9kZXNXaXRo
UmVsYXRlZE92ZXJmbG93KCkuYWRkKHNjcm9sbGluZ05vZGVJRCgpKTsKKyAgICAgICAgc2Nyb2xs
aW5nVHJlZSgpLmFjdGl2ZVBvc2l0aW9uZWROb2RlcygpLmFkZCgqdGhpcyk7CiB9CiAKIEZsb2F0
U2l6ZSBTY3JvbGxpbmdUcmVlUG9zaXRpb25lZE5vZGU6OnNjcm9sbERlbHRhU2luY2VMYXN0Q29t
bWl0KCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDY5NTMpCisrKyBTb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDE5LTA2LTMw
ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2Ugc2VwYXJh
dGUgdmFyaWFibGVzIGZvciBtb3ZpbmcgYW5kIHN0YXRpb25hcnkgc2Nyb2xsaW5nIHJlbGF0aW9u
c2hpcHMgaW4gUmVtb3RlTGF5ZXJUcmVlTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk5MzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4g
QWRsZXIuCisKKyAgICAgICAgQSBsYXllciBjYW4gaGF2ZSBvbmx5IG9uZSBhY3Rpbmcgc2Nyb2xs
IHBhcmVudC4gTm90IHVzaW5nIGEgdmVjdG9yIGZvciB0aGF0IGNhc2UgbWFrZXMgdGhlIGNvZGUg
Y2xlYXJlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlTm9kZS5oOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVOb2RlOjphY3Rp
bmdTY3JvbGxDb250YWluZXJJRCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZU5vZGU6OnN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMgY29uc3QpOgorCisgICAgICAg
IFNlcGFyYXRlIGZpZWxkcyBmb3IgdGhlIGFjdGluZyBjb250YWluZXIgYW5kIHN0YXRpb25hcnkg
Y29udGFpbmVycy4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVOb2RlOjpzZXRB
Y3RpbmdTY3JvbGxDb250YWluZXJJRCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZU5vZGU6OnNldFN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVOb2RlOjpyZWxhdGVkU2Nyb2xsQ29udGFpbmVySURzIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlTm9kZTo6cmVsYXRlZFNj
cm9sbENvbnRhaW5lclBvc2l0aW9uaW5nQmVoYXZpb3IgY29uc3QpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbToKKyAg
ICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0UmVsYXRlZFNjcm9sbENvbnRh
aW5lckJlaGF2aW9yQW5kSURzKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbToKKyAgICAgICAgKFdlYktpdDo6
aXNTY3JvbGxlZEJ5KToKKyAgICAgICAgKFdlYktpdDo6ZmluZEFjdGluZ1Njcm9sbFBhcmVudCk6
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6ZXN0YWJsaXNoTGF5ZXJUcmVlU2Nyb2xsaW5nUmVsYXRpb25zKToK
KwogMjAxOS0wNi0yOCAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpc2UgV2ViQ29udGVudCBzYW5kYm94IGJhc2VkIG9uIHNlZWQgZmVlZGJhY2sKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVOb2RlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5vZGUuaAkocmV2aXNpb24gMjQ2OTQ5KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5vZGUuaAko
d29ya2luZyBjb3B5KQpAQCAtNTksMTAgKzU5LDEzIEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJD
b3JlOjpFdmVudFJlZ2lvbiYgZXZlbnRSZWdpb24oKSBjb25zdCB7IHJldHVybiBtX2V2ZW50UmVn
aW9uOyB9CiAgICAgdm9pZCBzZXRFdmVudFJlZ2lvbihjb25zdCBXZWJDb3JlOjpFdmVudFJlZ2lv
biYpOwogCi0gICAgLy8gSWYgZW1wdHkgdGhlIGxheWVyIGlzIHNjcm9sbGVkIG5vcm1hbGx5IGJ5
IGFuIGFuY2VzdG9yIHNjcm9sbGVyLgotICAgIGNvbnN0IGF1dG8mIHJlbGF0ZWRTY3JvbGxDb250
YWluZXJJRHMoKSBjb25zdCB7IHJldHVybiBtX3JlbGF0ZWRTY3JvbGxDb250YWluZXJJRHM7IH0K
LSAgICBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yIHJlbGF0ZWRTY3JvbGxDb250
YWluZXJQb3NpdGlvbmluZ0JlaGF2aW9yKCkgY29uc3QgeyByZXR1cm4gbV9yZWxhdGVkU2Nyb2xs
Q29udGFpbmVyUG9zaXRpb25pbmdCZWhhdmlvcjsgfQotICAgIHZvaWQgc2V0UmVsYXRlZFNjcm9s
bENvbnRhaW5lckJlaGF2aW9yQW5kSURzKFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZp
b3IsIFZlY3RvcjxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+JiYpOwor
ICAgIC8vIE5vbi1hbmNlc3RvciBzY3JvbGxlciB0aGF0IGNvbnRyb2xzIHBvc2l0aW9uaW5nIG9m
IHRoZSBsYXllci4KKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQg
YWN0aW5nU2Nyb2xsQ29udGFpbmVySUQoKSBjb25zdCB7IHJldHVybiBtX2FjdGluZ1Njcm9sbENv
bnRhaW5lcklEOyB9CisgICAgLy8gQW5jZXN0b3Igc2Nyb2xsZXJzIHRoYXQgZG9uJ3QgYWZmZWN0
IHBvc2l0aW9uaW5nIG9mIHRoZSBsYXllci4KKyAgICBjb25zdCBWZWN0b3I8V2ViQ29yZTo6R3Jh
cGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiYgc3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklE
cygpIGNvbnN0IHsgcmV0dXJuIG1fc3RhdGlvbmFyeVNjcm9sbENvbnRhaW5lcklEczsgfQorCisg
ICAgdm9pZCBzZXRBY3RpbmdTY3JvbGxDb250YWluZXJJRChXZWJDb3JlOjpHcmFwaGljc0xheWVy
OjpQbGF0Zm9ybUxheWVySUQgdmFsdWUpIHsgbV9hY3RpbmdTY3JvbGxDb250YWluZXJJRCA9IHZh
bHVlOyB9CisgICAgdm9pZCBzZXRTdGF0aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzKFZlY3RvcjxX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQ+JiYgdmFsdWUpIHsgbV9zdGF0
aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzID0gV1RGTW92ZSh2YWx1ZSk7IH0KIAogICAgIHZvaWQg
ZGV0YWNoRnJvbVBhcmVudCgpOwogCkBAIC04Myw4ICs4Niw4IEBAIHByaXZhdGU6CiAKICAgICBX
ZWJDb3JlOjpFdmVudFJlZ2lvbiBtX2V2ZW50UmVnaW9uOwogCi0gICAgVmVjdG9yPFdlYkNvcmU6
OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRD4gbV9yZWxhdGVkU2Nyb2xsQ29udGFpbmVy
SURzOwotICAgIFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3IgbV9yZWxhdGVkU2Ny
b2xsQ29udGFpbmVyUG9zaXRpb25pbmdCZWhhdmlvciB7IFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9u
aW5nQmVoYXZpb3I6Ok5vbmUgfTsKKyAgICBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9y
bUxheWVySUQgbV9hY3RpbmdTY3JvbGxDb250YWluZXJJRCB7IDAgfTsKKyAgICBWZWN0b3I8V2Vi
Q29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiBtX3N0YXRpb25hcnlTY3JvbGxD
b250YWluZXJJRHM7CiB9OwogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbQko
cmV2aXNpb24gMjQ2OTQ5KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZU5vZGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTkyLDEyICs5Miw2
IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0RXZlbnRSZWdpb24KICAgICBtX2V2ZW50
UmVnaW9uID0gZXZlbnRSZWdpb247CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0
UmVsYXRlZFNjcm9sbENvbnRhaW5lckJlaGF2aW9yQW5kSURzKFdlYkNvcmU6OlNjcm9sbFBvc2l0
aW9uaW5nQmVoYXZpb3IgYmVoYXZpb3IsIFZlY3RvcjxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQ
bGF0Zm9ybUxheWVySUQ+JiYgc2Nyb2xsQ29udGFpbmVySURzKQotewotICAgIG1fcmVsYXRlZFNj
cm9sbENvbnRhaW5lclBvc2l0aW9uaW5nQmVoYXZpb3IgPSBiZWhhdmlvcjsKLSAgICBtX3JlbGF0
ZWRTY3JvbGxDb250YWluZXJJRHMgPSBXVEZNb3ZlKHNjcm9sbENvbnRhaW5lcklEcyk7Ci19Ci0K
IHZvaWQgUmVtb3RlTGF5ZXJUcmVlTm9kZTo6aW5pdGlhbGl6ZUxheWVyKCkKIHsKICAgICBbbGF5
ZXIoKSBzZXRWYWx1ZTpbTlNWYWx1ZSB2YWx1ZVdpdGhQb2ludGVyOnRoaXNdIGZvcktleTpXS1Jl
bW90ZUxheWVyVHJlZU5vZGVQcm9wZXJ0eUtleV07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3Rl
TGF5ZXJUcmVlVmlld3MubW0JKHJldmlzaW9uIDI0Njk0OSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW0JKHdvcmtp
bmcgY29weSkKQEAgLTc5LDE1ICs3OSwxMSBAQCBzdGF0aWMgYm9vbCBpc1Njcm9sbGVkQnkoV0tD
aGlsZFNjcm9sbFZpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICBhdXRvKiBu
b2RlID0gUmVtb3RlTGF5ZXJUcmVlTm9kZTo6Zm9yQ0FMYXllcih2aWV3LmxheWVyKTsKLSAgICAg
ICAgaWYgKG5vZGUgJiYgc2Nyb2xsTGF5ZXJJRCAmJiBub2RlLT5yZWxhdGVkU2Nyb2xsQ29udGFp
bmVySURzKCkuY29udGFpbnMoc2Nyb2xsTGF5ZXJJRCkpIHsKLSAgICAgICAgICAgIHN3aXRjaCAo
bm9kZS0+cmVsYXRlZFNjcm9sbENvbnRhaW5lclBvc2l0aW9uaW5nQmVoYXZpb3IoKSkgewotICAg
ICAgICAgICAgY2FzZSBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpNb3ZlczoK
KyAgICAgICAgaWYgKG5vZGUgJiYgc2Nyb2xsTGF5ZXJJRCkgeworICAgICAgICAgICAgaWYgKG5v
ZGUtPmFjdGluZ1Njcm9sbENvbnRhaW5lcklEKCkgPT0gc2Nyb2xsTGF5ZXJJRCkKICAgICAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6U2Nyb2xsUG9z
aXRpb25pbmdCZWhhdmlvcjo6U3RhdGlvbmFyeToKKyAgICAgICAgICAgIGlmIChub2RlLT5zdGF0
aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzKCkuY29udGFpbnMoc2Nyb2xsTGF5ZXJJRCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpTY3Jv
bGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpOb25lOgotICAgICAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCkBAIC0xMzMsMjEg
KzEyOSwxMyBAQCBVSVNjcm9sbFZpZXcgKmZpbmRBY3RpbmdTY3JvbGxQYXJlbnQoVUlTCiAgICAg
ICAgICAgICAvLyBGSVhNRTogSWRlYWxseSB3ZSB3b3VsZCByZXR1cm4gdGhlIHNjcm9sbGVyIHdl
IHdhbnQgaW4gYWxsIGNhc2VzIGJ1dCB0aGUgY3VycmVudCBVSUtpdCBTUEkgb25seSBhbGxvd3Mg
cmV0dXJuaW5nIGEgbm9uLWFuY2VzdG9yLgogICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAg
ICAgfQotCiAgICAgICAgIGlmIChhdXRvKiBub2RlID0gUmVtb3RlTGF5ZXJUcmVlTm9kZTo6Zm9y
Q0FMYXllcih2aWV3LmxheWVyKSkgewotICAgICAgICAgICAgc3dpdGNoIChub2RlLT5yZWxhdGVk
U2Nyb2xsQ29udGFpbmVyUG9zaXRpb25pbmdCZWhhdmlvcigpKSB7Ci0gICAgICAgICAgICBjYXNl
IFdlYkNvcmU6OlNjcm9sbFBvc2l0aW9uaW5nQmVoYXZpb3I6Ok1vdmVzOgotICAgICAgICAgICAg
ICAgIGlmICghbm9kZS0+cmVsYXRlZFNjcm9sbENvbnRhaW5lcklEcygpLmlzRW1wdHkoKSkgewot
ICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogbm9uQW5jZXN0b3JTY3JvbGxpbmdOb2RlID0g
aG9zdC5ub2RlRm9ySUQobm9kZS0+cmVsYXRlZFNjcm9sbENvbnRhaW5lcklEcygpWzBdKSkKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoV0tDaGlsZFNjcm9sbFZpZXcgKilub25BbmNl
c3RvclNjcm9sbGluZ05vZGUtPnVpVmlldygpOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNhc2UgV2ViQ29yZTo6U2Nyb2xsUG9zaXRpb25p
bmdCZWhhdmlvcjo6U3RhdGlvbmFyeToKLSAgICAgICAgICAgICAgICBzY3JvbGxlcnNUb1NraXAu
YWRkKG5vZGUtPnJlbGF0ZWRTY3JvbGxDb250YWluZXJJRHMoKS5iZWdpbigpLCBub2RlLT5yZWxh
dGVkU2Nyb2xsQ29udGFpbmVySURzKCkuZW5kKCkpOwotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICAgICAgY2FzZSBXZWJDb3JlOjpTY3JvbGxQb3NpdGlvbmluZ0JlaGF2aW9yOjpOb25l
OgotICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKGF1dG8qIGFjdGluZ1Bh
cmVudCA9IGhvc3Qubm9kZUZvcklEKG5vZGUtPmFjdGluZ1Njcm9sbENvbnRhaW5lcklEKCkpKSB7
CisgICAgICAgICAgICAgICAgaWYgKFthY3RpbmdQYXJlbnQtPnVpVmlldygpIGlzS2luZE9mQ2xh
c3M6W1VJU2Nyb2xsVmlldyBjbGFzc11dKQorICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFVJ
U2Nyb2xsVmlldyAqKWFjdGluZ1BhcmVudC0+dWlWaWV3KCk7CiAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIHNjcm9sbGVyc1RvU2tpcC5hZGQobm9kZS0+c3RhdGlvbmFyeVNjcm9sbENvbnRh
aW5lcklEcygpLmJlZ2luKCksIG5vZGUtPnN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMoKS5l
bmQoKSk7CiAgICAgICAgIH0KICAgICB9CiAgICAgcmV0dXJuIG5pbDsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRp
bmF0b3JQcm94eUlPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0J
KHJldmlzaW9uIDI0Njk0OSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMTI1LDU1ICsxMjUsNDAgQEAgdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRv
clByb3h5OjpzYwogdm9pZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5Ojplc3RhYmxp
c2hMYXllclRyZWVTY3JvbGxpbmdSZWxhdGlvbnMoY29uc3QgUmVtb3RlTGF5ZXJUcmVlSG9zdCYg
cmVtb3RlTGF5ZXJUcmVlSG9zdCkKIHsKICAgICBmb3IgKGF1dG8gbGF5ZXJJRCA6IG1fbGF5ZXJz
V2l0aFNjcm9sbGluZ1JlbGF0aW9ucykgewotICAgICAgICBpZiAoYXV0byogbGF5ZXJOb2RlID0g
cmVtb3RlTGF5ZXJUcmVlSG9zdC5ub2RlRm9ySUQobGF5ZXJJRCkpCi0gICAgICAgICAgICBsYXll
ck5vZGUtPnNldFJlbGF0ZWRTY3JvbGxDb250YWluZXJCZWhhdmlvckFuZElEcyh7IH0sIHsgfSk7
CisgICAgICAgIGlmIChhdXRvKiBsYXllck5vZGUgPSByZW1vdGVMYXllclRyZWVIb3N0Lm5vZGVG
b3JJRChsYXllcklEKSkgeworICAgICAgICAgICAgbGF5ZXJOb2RlLT5zZXRBY3RpbmdTY3JvbGxD
b250YWluZXJJRCgwKTsKKyAgICAgICAgICAgIGxheWVyTm9kZS0+c2V0U3RhdGlvbmFyeVNjcm9s
bENvbnRhaW5lcklEcyh7IH0pOworICAgICAgICB9CiAgICAgfQogICAgIG1fbGF5ZXJzV2l0aFNj
cm9sbGluZ1JlbGF0aW9ucy5jbGVhcigpOwogCiAgICAgLy8gVXN1YWxseSBhIHNjcm9sbCB2aWV3
IHNjcm9sbHMgaXRzIGRlc2NlbmRhbnQgbGF5ZXJzLiBJbiBzb21lIHBvc2l0aW9uaW5nIGNhc2Vz
IGl0IGFsc28gY29udHJvbHMgbm9uLWRlc2NlbmRhbnRzLCBvciBkb2Vzbid0IGNvbnRyb2wgYSBk
ZXNjZW5kYW50LgogICAgIC8vIFRvIGRvIG92ZXJsYXAgaGl0IHRlc3RpbmcgY29ycmVjdGx5IHdl
IHRlbGwgbGF5ZXJzIGFib3V0IHN1Y2ggcmVsYXRpb25zLgogICAgIAotICAgIGZvciAoYXV0byBu
b2RlSUQgOiBtX3Njcm9sbGluZ1RyZWUtPm5vZGVzV2l0aFJlbGF0ZWRPdmVyZmxvdygpKSB7Ci0g
ICAgICAgIGF1dG8qIG5vZGUgPSBtX3Njcm9sbGluZ1RyZWUtPm5vZGVGb3JJRChub2RlSUQpOwot
ICAgICAgICBpZiAoIW5vZGUpIHsKLSAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KKyAgICBmb3IgKGF1dG8mIHBvc2l0aW9u
ZWROb2RlIDogbV9zY3JvbGxpbmdUcmVlLT5hY3RpdmVQb3NpdGlvbmVkTm9kZXMoKSkgeworICAg
ICAgICBWZWN0b3I8R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEPiBzdGF0aW9uYXJ5U2Ny
b2xsQ29udGFpbmVySURzOwogCi0gICAgICAgIFZlY3RvcjxHcmFwaGljc0xheWVyOjpQbGF0Zm9y
bUxheWVySUQ+IHNjcm9sbENvbnRhaW5lckxheWVySURzOwotICAgICAgICBSZW1vdGVMYXllclRy
ZWVOb2RlKiBsYXllck5vZGUgPSBudWxscHRyOwotICAgICAgICBTY3JvbGxQb3NpdGlvbmluZ0Jl
aGF2aW9yIGJlaGF2aW9yID0gU2Nyb2xsUG9zaXRpb25pbmdCZWhhdmlvcjo6Tm9uZTsKLQotICAg
ICAgICBpZiAoaXM8U2Nyb2xsaW5nVHJlZVBvc2l0aW9uZWROb2RlPigqbm9kZSkpIHsKLSAgICAg
ICAgICAgIGF1dG8mIHBvc2l0aW9uZWROb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZVBvc2l0
aW9uZWROb2RlPigqbm9kZSk7Ci0gICAgICAgICAgICBmb3IgKGF1dG8gb3ZlcmZsb3dOb2RlSUQg
OiBwb3NpdGlvbmVkTm9kZS5yZWxhdGVkT3ZlcmZsb3dTY3JvbGxpbmdOb2RlcygpKSB7Ci0gICAg
ICAgICAgICAgICAgYXV0byogb3ZlcmZsb3dOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZT4obV9zY3JvbGxpbmdUcmVlLT5ub2RlRm9ySUQob3ZlcmZsb3dO
b2RlSUQpKTsKLSAgICAgICAgICAgICAgICBpZiAoIW92ZXJmbG93Tm9kZSkgewotICAgICAgICAg
ICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgICAgICAgICAgICAgY29u
dGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHNjcm9sbENvbnRhaW5l
ckxheWVySURzLmFwcGVuZChSZW1vdGVMYXllclRyZWVOb2RlOjpsYXllcklEKG92ZXJmbG93Tm9k
ZS0+c2Nyb2xsQ29udGFpbmVyTGF5ZXIoKSkpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
bGF5ZXJOb2RlID0gUmVtb3RlTGF5ZXJUcmVlTm9kZTo6Zm9yQ0FMYXllcihwb3NpdGlvbmVkTm9k
ZS5sYXllcigpKTsKLSAgICAgICAgICAgIGJlaGF2aW9yID0gU2Nyb2xsUG9zaXRpb25pbmdCZWhh
dmlvcjo6U3RhdGlvbmFyeTsKLSAgICAgICAgfSBlbHNlIGlmIChpczxTY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxQcm94eU5vZGU+KCpub2RlKSkgewotICAgICAgICAgICAgYXV0byYgc2Nyb2xs
UHJveHlOb2RlID0gZG93bmNhc3Q8U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsUHJveHlOb2Rl
Pigqbm9kZSk7Ci0gICAgICAgICAgICBhdXRvKiBvdmVyZmxvd05vZGUgPSBkb3duY2FzdDxTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlPihtX3Njcm9sbGluZ1RyZWUtPm5vZGVGb3JJ
RChzY3JvbGxQcm94eU5vZGUub3ZlcmZsb3dTY3JvbGxpbmdOb2RlSUQoKSkpOworICAgICAgICBm
b3IgKGF1dG8gb3ZlcmZsb3dOb2RlSUQgOiBwb3NpdGlvbmVkTm9kZS0+cmVsYXRlZE92ZXJmbG93
U2Nyb2xsaW5nTm9kZXMoKSkgeworICAgICAgICAgICAgYXV0byogb3ZlcmZsb3dOb2RlID0gZG93
bmNhc3Q8U2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZT4obV9zY3JvbGxpbmdUcmVl
LT5ub2RlRm9ySUQob3ZlcmZsb3dOb2RlSUQpKTsKICAgICAgICAgICAgIGlmICghb3ZlcmZsb3dO
b2RlKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgc3RhdGlvbmFyeVNj
cm9sbENvbnRhaW5lcklEcy5hcHBlbmQoUmVtb3RlTGF5ZXJUcmVlTm9kZTo6bGF5ZXJJRChvdmVy
Zmxvd05vZGUtPnNjcm9sbENvbnRhaW5lckxheWVyKCkpKTsKKyAgICAgICAgfQogCi0gICAgICAg
ICAgICBzY3JvbGxDb250YWluZXJMYXllcklEcy5hcHBlbmQoUmVtb3RlTGF5ZXJUcmVlTm9kZTo6
bGF5ZXJJRChvdmVyZmxvd05vZGUtPnNjcm9sbENvbnRhaW5lckxheWVyKCkpKTsKLSAgICAgICAg
ICAgIGxheWVyTm9kZSA9IFJlbW90ZUxheWVyVHJlZU5vZGU6OmZvckNBTGF5ZXIoc2Nyb2xsUHJv
eHlOb2RlLmxheWVyKCkpOwotICAgICAgICAgICAgYmVoYXZpb3IgPSBTY3JvbGxQb3NpdGlvbmlu
Z0JlaGF2aW9yOjpNb3ZlczsKKyAgICAgICAgaWYgKGF1dG8qIGxheWVyTm9kZSA9IFJlbW90ZUxh
eWVyVHJlZU5vZGU6OmZvckNBTGF5ZXIocG9zaXRpb25lZE5vZGUtPmxheWVyKCkpKSB7CisgICAg
ICAgICAgICBsYXllck5vZGUtPnNldFN0YXRpb25hcnlTY3JvbGxDb250YWluZXJJRHMoV1RGTW92
ZShzdGF0aW9uYXJ5U2Nyb2xsQ29udGFpbmVySURzKSk7CisgICAgICAgICAgICBtX2xheWVyc1dp
dGhTY3JvbGxpbmdSZWxhdGlvbnMuYWRkKGxheWVyTm9kZS0+bGF5ZXJJRCgpKTsKICAgICAgICAg
fQorICAgIH0KIAotICAgICAgICBpZiAoIWxheWVyTm9kZSkgewotICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CisgICAgZm9yIChhdXRvJiBzY3JvbGxQcm94eU5vZGUgOiBtX3Njcm9s
bGluZ1RyZWUtPmFjdGl2ZU92ZXJmbG93U2Nyb2xsUHJveHlOb2RlcygpKSB7CisgICAgICAgIGF1
dG8qIG92ZXJmbG93Tm9kZSA9IGRvd25jYXN0PFNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGlu
Z05vZGU+KG1fc2Nyb2xsaW5nVHJlZS0+bm9kZUZvcklEKHNjcm9sbFByb3h5Tm9kZS0+b3ZlcmZs
b3dTY3JvbGxpbmdOb2RlSUQoKSkpOworICAgICAgICBpZiAoIW92ZXJmbG93Tm9kZSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICBpZiAoYXV0byogbGF5ZXJOb2RlID0gUmVtb3RlTGF5
ZXJUcmVlTm9kZTo6Zm9yQ0FMYXllcihzY3JvbGxQcm94eU5vZGUtPmxheWVyKCkpKSB7CisgICAg
ICAgICAgICBsYXllck5vZGUtPnNldEFjdGluZ1Njcm9sbENvbnRhaW5lcklEKFJlbW90ZUxheWVy
VHJlZU5vZGU6OmxheWVySUQob3ZlcmZsb3dOb2RlLT5zY3JvbGxDb250YWluZXJMYXllcigpKSk7
CisgICAgICAgICAgICBtX2xheWVyc1dpdGhTY3JvbGxpbmdSZWxhdGlvbnMuYWRkKGxheWVyTm9k
ZS0+bGF5ZXJJRCgpKTsKICAgICAgICAgfQotICAgICAgICBsYXllck5vZGUtPnNldFJlbGF0ZWRT
Y3JvbGxDb250YWluZXJCZWhhdmlvckFuZElEcyhiZWhhdmlvciwgV1RGTW92ZShzY3JvbGxDb250
YWluZXJMYXllcklEcykpOwotCi0gICAgICAgIG1fbGF5ZXJzV2l0aFNjcm9sbGluZ1JlbGF0aW9u
cy5hZGQobGF5ZXJOb2RlLT5sYXllcklEKCkpOwogICAgIH0KIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>