<?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>191951</bug_id>
          
          <creation_ts>2018-11-25 00:58:44 -0800</creation_ts>
          <short_desc>RemoteLayerTreeNode construction cleanups</short_desc>
          <delta_ts>2018-11-25 04:20:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1481362</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-11-25 00:58:44 -0800</bug_when>
    <thetext>Make it nicer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481363</commentid>
    <comment_count>1</comment_count>
      <attachid>355586</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-11-25 01:16:44 -0800</bug_when>
    <thetext>Created attachment 355586
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481364</commentid>
    <comment_count>2</comment_count>
      <attachid>355586</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2018-11-25 01:53:27 -0800</bug_when>
    <thetext>Comment on attachment 355586
patch

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

&gt; Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:64
&gt; +    [layer() setValue:[NSNumber numberWithUnsignedLongLong:layerID] forKey:WKLayerIDPropertyKey];

Can probably just @(layerID) instead of [NSNumber numberWithUnsignedLongLong:layerID]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481369</commentid>
    <comment_count>3</comment_count>
      <attachid>355591</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-11-25 03:26:01 -0800</bug_when>
    <thetext>Created attachment 355591
for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481376</commentid>
    <comment_count>4</comment_count>
      <attachid>355591</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-25 04:19:12 -0800</bug_when>
    <thetext>Comment on attachment 355591
for landing

Clearing flags on attachment: 355591

Committed r238476: &lt;https://trac.webkit.org/changeset/238476&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481377</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-11-25 04:19:13 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1481378</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-11-25 04:20:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/46230958&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355586</attachid>
            <date>2018-11-25 01:16:44 -0800</date>
            <delta_ts>2018-11-25 03:26:01 -0800</delta_ts>
            <desc>patch</desc>
            <filename>remote-layer-create-refactor-2.patch</filename>
            <type>text/plain</type>
            <size>19607</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzg0NzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTExLTI1ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVMYXllclRyZWVOb2RlIGNv
bnN0cnVjdGlvbiBjbGVhbnVwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkxOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZUhvc3QubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxh
eWVyVHJlZSk6CisKKyAgICAgICAgICAgIERyb3AgdW51c2VkIExheWVyUHJvcGVydGllcyBhcmd1
bWVudC4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXll
cik6CisKKyAgICAgICAgICAgIFNwbGl0IHRoZSBhY3R1YWwgY29uc3RydWN0aW9uIG91dCB0byBt
YWtlTm9kZS4KKyAgICAgICAgICAgIE1hcCB1cGRhdGluZyBpcyBzaGFyZWQgYmV0d2VlbiBwbGF0
Zm9ybXMuCisgICAgICAgICAgICBNb3ZlIHNldHRpbmcgb2YgbGF5ZXJJRCBhbmQgY2xlYXJpbmcg
ZGVmYXVsdCBhY3Rpb25zIHRvIFJlbW90ZUxheWVyVHJlZU5vZGUuCisKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6bWFrZU5vZGUpOgorCisgICAgICAgICAgICBSZXR1cm5z
IFJlbW90ZUxheWVyVHJlZU5vZGUuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
SG9zdDo6c2V0TGF5ZXJJRCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVy
VHJlZUhvc3Q6OmxheWVySUQpOiBEZWxldGVkLgorCisgICAgICAgICAgICBNb3ZlIHRvIFJlbW90
ZUxheWVyVHJlZU5vZGUuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZU5vZGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZU5vZGUubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZU5vZGU6OlJlbW90ZUxheWVyVHJlZU5vZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVOb2RlOjpzZXRMYXllcklEKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
Tm9kZTo6bGF5ZXJJRCk6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
UmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlSG9zdDo6bWFrZU5vZGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0
OjpjcmVhdGVFbWJlZGRlZFZpZXcpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVI
b3N0OjpjcmVhdGVMYXllcik6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlVmlld3MubW06CisgICAgICAgICgtW1dLQ29tcG9z
aXRpbmdWaWV3IGRlc2NyaXB0aW9uXSk6CisgICAgICAgICgtW1dLVUlSZW1vdGVWaWV3IGRlc2Ny
aXB0aW9uXSk6CisgICAgICAgICgtW1dLQmFja2Ryb3BWaWV3IGRlc2NyaXB0aW9uXSk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0
aW9uUmVtb3RlLm1tOgorICAgICAgICAoV2ViS2l0OjphZGRBbmltYXRpb25Ub0xheWVyKToKKwog
MjAxOC0xMS0yNCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbQ29jb2FdIEZpeCBhIGZldyBsb2NhbGl6YWJsZSBzdHJpbmcgZGVzY3JpcHRpb25zIGlu
IFdlYkVkaXRDb21tYW5kUHJveHkuY3BwIGFuZCBXZWJFZGl0b3JDbGllbnQubW0KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZUhvc3QuaAkocmV2aXNpb24gMjM4NDY4KQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNDgsOCArNDgsNiBAQCBwdWJsaWM6CiAgICAgUmVtb3RlTGF5ZXJUcmVlTm9k
ZSogbm9kZUZvcklEKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCkgY29u
c3Q7CiAgICAgUmVtb3RlTGF5ZXJUcmVlTm9kZSogcm9vdE5vZGUoKSBjb25zdCB7IHJldHVybiBt
X3Jvb3ROb2RlOyB9CiAKLSAgICBzdGF0aWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZv
cm1MYXllcklEIGxheWVySUQoQ0FMYXllciopOwotCiAgICAgQ0FMYXllciAqbGF5ZXJGb3JJRChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQpIGNvbnN0OwogICAgIENBTGF5
ZXIgKnJvb3RMYXllcigpIGNvbnN0OwogCkBAIC03OCw5ICs3NiwxMCBAQCBwdWJsaWM6CiAgICAg
Q0FMYXllciAqbGF5ZXJXaXRoSURGb3JUZXN0aW5nKHVpbnQ2NF90KSBjb25zdDsKIAogcHJpdmF0
ZToKLSAgICB2b2lkIGNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9u
OjpMYXllckNyZWF0aW9uUHJvcGVydGllcyYsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpMYXllclByb3BlcnRpZXMqKTsKLSAgICBSZXRhaW5QdHI8V0tFbWJlZGRlZFZpZXc+IGNy
ZWF0ZUVtYmVkZGVkVmlldyhjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJD
cmVhdGlvblByb3BlcnRpZXMmLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5
ZXJQcm9wZXJ0aWVzKik7Ci0gICAgc3RhdGljIHZvaWQgc2V0TGF5ZXJJRChDQUxheWVyICosIFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCk7CisgICAgdm9pZCBjcmVhdGVM
YXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3Bl
cnRpZXMmKTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGF5ZXJUcmVlTm9kZT4gbWFrZU5v
ZGUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0
aWVzJik7CisKKyAgICBSZXRhaW5QdHI8V0tFbWJlZGRlZFZpZXc+IGNyZWF0ZUVtYmVkZGVkVmll
dyhjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRp
ZXMmKTsKIAogICAgIHZvaWQgbGF5ZXJXaWxsQmVSZW1vdmVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXI6OlBsYXRmb3JtTGF5ZXJJRCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0Lm1t
CShyZXZpc2lvbiAyMzg0NjgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzgsNyArMzgs
NiBAQAogI2ltcG9ydCA8V2ViQ29yZS9HcmFwaGljc0NvbnRleHRDRy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9JT1N1cmZhY2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1MYXllci5oPgotI2lt
cG9ydCA8V2ViQ29yZS9XZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaD4KICNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZUNBTGF5ZXJFeHRyYXMuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29j
b2EvUXVhcnR6Q29yZVNQSS5oPgogCkBAIC02OSwxMCArNjgsOCBAQCBib29sIFJlbW90ZUxheWVy
VHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJlCiAgICAgaWYgKCFtX2RyYXdpbmdBcmVhKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBmb3IgKGNvbnN0IGF1dG8mIGNyZWF0ZWRMYXllciA6IHRy
YW5zYWN0aW9uLmNyZWF0ZWRMYXllcnMoKSkgewotICAgICAgICBjb25zdCBSZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9wZXJ0aWVzKiBwcm9wZXJ0aWVzID0gdHJhbnNhY3Rpb24u
Y2hhbmdlZExheWVyUHJvcGVydGllcygpLmdldChjcmVhdGVkTGF5ZXIubGF5ZXJJRCk7Ci0gICAg
ICAgIGNyZWF0ZUxheWVyKGNyZWF0ZWRMYXllciwgcHJvcGVydGllcyk7Ci0gICAgfQorICAgIGZv
ciAoY29uc3QgYXV0byYgY3JlYXRlZExheWVyIDogdHJhbnNhY3Rpb24uY3JlYXRlZExheWVycygp
KQorICAgICAgICBjcmVhdGVMYXllcihjcmVhdGVkTGF5ZXIpOwogCiAgICAgYm9vbCByb290TGF5
ZXJDaGFuZ2VkID0gZmFsc2U7CiAgICAgYXV0byogcm9vdE5vZGUgPSBub2RlRm9ySUQodHJhbnNh
Y3Rpb24ucm9vdExheWVySUQoKSk7CkBAIC0yMzEsMTggKzIyOCw2IEBAIENBTGF5ZXIgKlJlbW90
ZUxheWVyVHJlZUhvc3Q6OmxheWVyV2l0aEkKICAgICByZXR1cm4gbGF5ZXJGb3JJRChsYXllcklE
KTsKIH0KIAotc3RhdGljIE5TU3RyaW5nKiBjb25zdCBXS0xheWVySURQcm9wZXJ0eUtleSA9IEAi
V0tMYXllcklEIjsKLQotdm9pZCBSZW1vdGVMYXllclRyZWVIb3N0OjpzZXRMYXllcklEKENBTGF5
ZXIgKmxheWVyLCBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJ
RCkKLXsKLSAgICBbbGF5ZXIgc2V0VmFsdWU6W05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZExv
bmdMb25nOmxheWVySURdIGZvcktleTpXS0xheWVySURQcm9wZXJ0eUtleV07Ci19Ci0KLVdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBSZW1vdGVMYXllclRyZWVIb3N0Ojps
YXllcklEKENBTGF5ZXIqIGxheWVyKQotewotICAgIHJldHVybiBbW2xheWVyIHZhbHVlRm9yS2V5
OldLTGF5ZXJJRFByb3BlcnR5S2V5XSB1bnNpZ25lZExvbmdMb25nVmFsdWVdOwotfQotCiBDQUxh
eWVyICpSZW1vdGVMYXllclRyZWVIb3N0OjpsYXllckZvcklEKFdlYkNvcmU6OkdyYXBoaWNzTGF5
ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEKSBjb25zdAogewogICAgIGF1dG8qIG5vZGUgPSBu
b2RlRm9ySUQobGF5ZXJJRCk7CkBAIC0yNTgsMTIgKzI0MywyNCBAQCBDQUxheWVyICpSZW1vdGVM
YXllclRyZWVIb3N0Ojpyb290TGF5ZXIoCiAgICAgcmV0dXJuIG1fcm9vdE5vZGUtPmxheWVyKCk7
CiB9CiAKLSNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9z
dDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3Jl
YXRpb25Qcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6TGF5ZXJQcm9wZXJ0aWVzKikKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRl
TGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9w
ZXJ0aWVzJiBwcm9wZXJ0aWVzKQogewogICAgIEFTU0VSVCghbV9ub2Rlcy5jb250YWlucyhwcm9w
ZXJ0aWVzLmxheWVySUQpKTsKIAotICAgIFJldGFpblB0cjxDQUxheWVyPiBsYXllcjsKKyAgICBh
dXRvIG5vZGUgPSBtYWtlTm9kZShwcm9wZXJ0aWVzKTsKKworICAgIG1fbm9kZXMuYWRkKHByb3Bl
cnRpZXMubGF5ZXJJRCwgV1RGTW92ZShub2RlKSk7Cit9CisKKyNpZiAhUExBVEZPUk0oSU9TX0ZB
TUlMWSkKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVMYXllclRyZWVOb2RlPiBSZW1vdGVMYXllclRy
ZWVIb3N0OjptYWtlTm9kZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJD
cmVhdGlvblByb3BlcnRpZXMmIHByb3BlcnRpZXMpCit7CisgICAgYXV0byBtYWtlV2l0aExheWVy
ID0gWyZdIChSZXRhaW5QdHI8Q0FMYXllcj4gbGF5ZXIpIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlTm9kZT4ocHJvcGVydGllcy5sYXllcklELCBXVEZN
b3ZlKGxheWVyKSk7CisgICAgfTsKKyAgICBhdXRvIG1ha2VBZG9wdGluZ0xheWVyID0gWyZdIChD
QUxheWVyKiBsYXllcikgeworICAgICAgICByZXR1cm4gbWFrZVdpdGhMYXllcihhZG9wdE5TKGxh
eWVyKSk7CisgICAgfTsKIAogICAgIHN3aXRjaCAocHJvcGVydGllcy50eXBlKSB7CiAgICAgY2Fz
ZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUxheWVyOgpAQCAtMjc1LDQwICsyNzIsMzQgQEAg
dm9pZCBSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjbwogICAgIGNhc2UgUGxhdGZv
cm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdUaWxlTGF5ZXI6CiAgICAgY2FzZSBQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNjcm9sbGluZ0xheWVyOgogICAgIGNhc2UgUGxhdGZvcm1D
QUxheWVyOjpMYXllclR5cGVFZGl0YWJsZUltYWdlTGF5ZXI6Ci0gICAgICAgIGxheWVyID0gYWRv
cHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJl
dHVybiBtYWtlQWRvcHRpbmdMYXllcihbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKwogICAgIGNh
c2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUcmFuc2Zvcm1MYXllcjoKLSAgICAgICAgbGF5
ZXIgPSBhZG9wdE5TKFtbQ0FUcmFuc2Zvcm1MYXllciBhbGxvY10gaW5pdF0pOwotICAgICAgICBi
cmVhazsKKyAgICAgICAgcmV0dXJuIG1ha2VBZG9wdGluZ0xheWVyKFtbQ0FUcmFuc2Zvcm1MYXll
ciBhbGxvY10gaW5pdF0pOworCiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUJh
Y2tkcm9wTGF5ZXI6CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUxpZ2h0U3lz
dGVtQmFja2Ryb3BMYXllcjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlRGFy
a1N5c3RlbUJhY2tkcm9wTGF5ZXI6CiAjaWYgRU5BQkxFKEZJTFRFUlNfTEVWRUxfMikKLSAgICAg
ICAgbGF5ZXIgPSBhZG9wdE5TKFtbQ0FCYWNrZHJvcExheWVyIGFsbG9jXSBpbml0XSk7CisgICAg
ICAgIHJldHVybiBtYWtlQWRvcHRpbmdMYXllcihbW0NBQmFja2Ryb3BMYXllciBhbGxvY10gaW5p
dF0pOwogI2Vsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGxheWVy
ID0gYWRvcHROUyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgcmV0dXJuIG1ha2VB
ZG9wdGluZ0xheWVyKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwogI2VuZGlmCi0gICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVDdXN0b206CiAgICAgY2Fz
ZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUFWUGxheWVyTGF5ZXI6CiAgICAgY2FzZSBQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUNvbnRlbnRzUHJvdmlkZWRMYXllcjoKLSAgICAgICAgaWYg
KCFtX2lzRGVidWdMYXllclRyZWVIb3N0KQotICAgICAgICAgICAgbGF5ZXIgPSBbQ0FMYXllciBf
d2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpwcm9wZXJ0aWVzLmhvc3RpbmdDb250ZXh0SURd
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQUxheWVyIGFs
bG9jXSBpbml0XSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICBpZiAobV9pc0RlYnVnTGF5ZXJU
cmVlSG9zdCkKKyAgICAgICAgICAgIHJldHVybiBtYWtlQWRvcHRpbmdMYXllcihbW0NBTGF5ZXIg
YWxsb2NdIGluaXRdKTsKKyAgICAgICAgcmV0dXJuIG1ha2VXaXRoTGF5ZXIoW0NBTGF5ZXIgX3dl
Yl9yZW5kZXJMYXllcldpdGhDb250ZXh0SUQ6cHJvcGVydGllcy5ob3N0aW5nQ29udGV4dElEXSk7
CisKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2hhcGVMYXllcjoKLSAgICAg
ICAgbGF5ZXIgPSBhZG9wdE5TKFtbQ0FTaGFwZUxheWVyIGFsbG9jXSBpbml0XSk7Ci0gICAgICAg
IGJyZWFrOworICAgICAgICByZXR1cm4gbWFrZUFkb3B0aW5nTGF5ZXIoW1tDQVNoYXBlTGF5ZXIg
YWxsb2NdIGluaXRdKTsKKyAgICAgICAgICAgIAogICAgIGRlZmF1bHQ6CiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICB9Ci0KLSAgICBb
bGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZSBzaGFy
ZWRdXTsKLSAgICBzZXRMYXllcklEKGxheWVyLmdldCgpLCBwcm9wZXJ0aWVzLmxheWVySUQpOwot
Ci0gICAgbV9ub2Rlcy5hZGQocHJvcGVydGllcy5sYXllcklELCBzdGQ6Om1ha2VfdW5pcXVlPFJl
bW90ZUxheWVyVHJlZU5vZGU+KFdURk1vdmUobGF5ZXIpKSk7CiB9CiAjZW5kaWYKIApJbmRleDog
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZU5v
ZGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5oCShyZXZpc2lvbiAyMzg0NjgpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8
V2ViQ29yZS9HcmFwaGljc0xheWVyLmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBP
QkpDX0NMQVNTIENBTGF5ZXI7CkBAIC0zNyw5ICszOCw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
Y2xhc3MgUmVtb3RlTGF5ZXJUcmVlTm9kZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiBwdWJsaWM6Ci0gICAgUmVtb3RlTGF5ZXJUcmVlTm9kZShSZXRhaW5QdHI8Q0FMYXllcj4pOwor
ICAgIFJlbW90ZUxheWVyVHJlZU5vZGUoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1M
YXllcklELCBSZXRhaW5QdHI8Q0FMYXllcj4pOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi0g
ICAgUmVtb3RlTGF5ZXJUcmVlTm9kZShSZXRhaW5QdHI8VUlWaWV3Pik7CisgICAgUmVtb3RlTGF5
ZXJUcmVlTm9kZShXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIFJldGFp
blB0cjxVSVZpZXc+KTsKICNlbmRpZgogCiAgICAgflJlbW90ZUxheWVyVHJlZU5vZGUoKTsKQEAg
LTUxLDcgKzUyLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZGV0YWNoRnJvbVBhcmVudCgpOwog
CisgICAgc3RhdGljIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXll
cklEKENBTGF5ZXIqKTsKKwogcHJpdmF0ZToKKyAgICB2b2lkIHNldExheWVySUQoV2ViQ29yZTo6
R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEKTsKKwogICAgIFJldGFpblB0cjxDQUxheWVy
PiBtX2xheWVyOwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmV0YWluUHRyPFVJVmll
dz4gbV91aVZpZXc7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbQkocmV2aXNpb24g
MjM4NDY4KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZU5vZGUubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDE4ICsyNiwyMyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZU5vZGUuaCIKIAorI2lt
cG9ydCA8V2ViQ29yZS9XZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaD4KKwogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKLVJlbW90ZUxheWVyVHJlZU5vZGU6OlJlbW90ZUxheWVyVHJlZU5v
ZGUoUmV0YWluUHRyPENBTGF5ZXI+IGxheWVyKQorUmVtb3RlTGF5ZXJUcmVlTm9kZTo6UmVtb3Rl
TGF5ZXJUcmVlTm9kZShXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5
ZXJJRCwgUmV0YWluUHRyPENBTGF5ZXI+IGxheWVyKQogICAgIDogbV9sYXllcihXVEZNb3ZlKGxh
eWVyKSkKIHsKKyAgICBzZXRMYXllcklEKGxheWVySUQpOworICAgIFttX2xheWVyIHNldERlbGVn
YXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07CiB9CiAKICNp
ZiBQTEFURk9STShJT1NfRkFNSUxZKQotUmVtb3RlTGF5ZXJUcmVlTm9kZTo6UmVtb3RlTGF5ZXJU
cmVlTm9kZShSZXRhaW5QdHI8VUlWaWV3PiB1aVZpZXcpCitSZW1vdGVMYXllclRyZWVOb2RlOjpS
ZW1vdGVMYXllclRyZWVOb2RlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJ
RCBsYXllcklELCBSZXRhaW5QdHI8VUlWaWV3PiB1aVZpZXcpCiAgICAgOiBtX2xheWVyKFt1aVZp
ZXcuZ2V0KCkgbGF5ZXJdKQogICAgICwgbV91aVZpZXcoV1RGTW92ZSh1aVZpZXcpKQogeworICAg
IHNldExheWVySUQobGF5ZXJJRCk7CiB9CiAjZW5kaWYKIApAQCAtNTIsNCArNTcsMTYgQEAgdm9p
ZCBSZW1vdGVMYXllclRyZWVOb2RlOjpkZXRhY2hGcm9tUGFyZQogI2VuZGlmCiB9CiAKK3N0YXRp
YyBOU1N0cmluZyogY29uc3QgV0tMYXllcklEUHJvcGVydHlLZXkgPSBAIldLTGF5ZXJJRCI7CisK
K3ZvaWQgUmVtb3RlTGF5ZXJUcmVlTm9kZTo6c2V0TGF5ZXJJRChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCkKK3sKKyAgICBbbGF5ZXIoKSBzZXRWYWx1ZTpb
TlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkTG9uZ0xvbmc6bGF5ZXJJRF0gZm9yS2V5OldLTGF5
ZXJJRFByb3BlcnR5S2V5XTsKK30KKworV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1M
YXllcklEIFJlbW90ZUxheWVyVHJlZU5vZGU6OmxheWVySUQoQ0FMYXllciogbGF5ZXIpCit7Cisg
ICAgcmV0dXJuIFtbbGF5ZXIgdmFsdWVGb3JLZXk6V0tMYXllcklEUHJvcGVydHlLZXldIHVuc2ln
bmVkTG9uZ0xvbmdWYWx1ZV07Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxh
eWVyVHJlZUhvc3RJT1MubW0JKHJldmlzaW9uIDIzODQ2OCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNTgsMTEgKzU4LDE0IEBAIHN0YXRpYyBSZXRhaW5QdHI8VUlWaWV3PiBj
cmVhdGVSZW1vdGVWaWUKICAgICByZXR1cm4gYWRvcHROUyhbW1dLUmVtb3RlVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIGNvbnRleHRJRDpjb250ZXh0SURdKTsKIH0KIAotdm9p
ZCBSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVU
cmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMqIGxheWVyUHJvcGVydGll
cykKK3N0ZDo6dW5pcXVlX3B0cjxSZW1vdGVMYXllclRyZWVOb2RlPiBSZW1vdGVMYXllclRyZWVI
b3N0OjptYWtlTm9kZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVh
dGlvblByb3BlcnRpZXMmIHByb3BlcnRpZXMpCiB7Ci0gICAgQVNTRVJUKCFtX25vZGVzLmNvbnRh
aW5zKHByb3BlcnRpZXMubGF5ZXJJRCkpOwotCi0gICAgUmV0YWluUHRyPFVJVmlldz4gdmlldzsK
KyAgICBhdXRvIG1ha2VXaXRoVmlldyA9IFsmXSAoUmV0YWluUHRyPFVJVmlldz4gdmlldykgewor
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVOb2RlPihwcm9w
ZXJ0aWVzLmxheWVySUQsIFdURk1vdmUodmlldykpOworICAgIH07CisgICAgYXV0byBtYWtlQWRv
cHRpbmdWaWV3ID0gWyZdIChVSVZpZXcqIHZpZXcpIHsKKyAgICAgICAgcmV0dXJuIG1ha2VXaXRo
VmlldyhhZG9wdE5TKHZpZXcpKTsKKyAgICB9OwogCiAgICAgc3dpdGNoIChwcm9wZXJ0aWVzLnR5
cGUpIHsKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXI6CkBAIC03Miw1
NSArNzUsNTMgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjbwogICAg
IGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdMYXllcjoKICAgICBj
YXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlUGFnZVRpbGVkQmFja2luZ0xheWVyOgogICAg
IGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlZEJhY2tpbmdUaWxlTGF5ZXI6Ci0g
ICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbV0tDb21wb3NpdGluZ1ZpZXcgYWxsb2NdIGluaXRdKTsK
LSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBtYWtlQWRvcHRpbmdWaWV3KFtbV0tDb21w
b3NpdGluZ1ZpZXcgYWxsb2NdIGluaXRdKTsKKwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpM
YXllclR5cGVCYWNrZHJvcExheWVyOgotICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLU2ltcGxl
QmFja2Ryb3BWaWV3IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1
cm4gbWFrZUFkb3B0aW5nVmlldyhbW1dLU2ltcGxlQmFja2Ryb3BWaWV3IGFsbG9jXSBpbml0XSk7
CisKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGlnaHRTeXN0ZW1CYWNrZHJv
cExheWVyOgotICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLQmFja2Ryb3BWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdFplcm8gcHJpdmF0ZVN0eWxlOl9VSUJhY2tkcm9wVmlld1N0eWxl
X0xpZ2h0XSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gbWFrZUFkb3B0aW5nVmll
dyhbW1dLQmFja2Ryb3BWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gcHJpdmF0
ZVN0eWxlOl9VSUJhY2tkcm9wVmlld1N0eWxlX0xpZ2h0XSk7CisKICAgICBjYXNlIFBsYXRmb3Jt
Q0FMYXllcjo6TGF5ZXJUeXBlRGFya1N5c3RlbUJhY2tkcm9wTGF5ZXI6Ci0gICAgICAgIHZpZXcg
PSBhZG9wdE5TKFtbV0tCYWNrZHJvcFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVy
byBwcml2YXRlU3R5bGU6X1VJQmFja2Ryb3BWaWV3U3R5bGVfRGFya10pOwotICAgICAgICBicmVh
azsKKyAgICAgICAgcmV0dXJuIG1ha2VBZG9wdGluZ1ZpZXcoW1tXS0JhY2tkcm9wVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RaZXJvIHByaXZhdGVTdHlsZTpfVUlCYWNrZHJvcFZpZXdT
dHlsZV9EYXJrXSk7CisKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVHJhbnNm
b3JtTGF5ZXI6Ci0gICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbV0tUcmFuc2Zvcm1WaWV3IGFsbG9j
XSBpbml0XSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gbWFrZUFkb3B0aW5nVmll
dyhbW1dLVHJhbnNmb3JtVmlldyBhbGxvY10gaW5pdF0pOworCiAgICAgY2FzZSBQbGF0Zm9ybUNB
TGF5ZXI6OkxheWVyVHlwZUN1c3RvbToKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJU
eXBlQVZQbGF5ZXJMYXllcjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlQ29u
dGVudHNQcm92aWRlZExheWVyOgogICAgICAgICBpZiAoIW1faXNEZWJ1Z0xheWVyVHJlZUhvc3Qp
IHsKLSAgICAgICAgICAgIHZpZXcgPSBjcmVhdGVSZW1vdGVWaWV3KG1fZHJhd2luZ0FyZWEtPnBh
Z2UoKS5wcm9jZXNzSWRlbnRpZmllcigpLCBwcm9wZXJ0aWVzLmhvc3RpbmdDb250ZXh0SUQpOwor
ICAgICAgICAgICAgYXV0byB2aWV3ID0gY3JlYXRlUmVtb3RlVmlldyhtX2RyYXdpbmdBcmVhLT5w
YWdlKCkucHJvY2Vzc0lkZW50aWZpZXIoKSwgcHJvcGVydGllcy5ob3N0aW5nQ29udGV4dElEKTsK
ICAgICAgICAgICAgIGlmIChwcm9wZXJ0aWVzLnR5cGUgPT0gUGxhdGZvcm1DQUxheWVyOjpMYXll
clR5cGVBVlBsYXllckxheWVyKSB7CiAgICAgICAgICAgICAgICAgLy8gSW52ZXJ0IHRoZSBzY2Fs
ZSB0cmFuc2Zvcm0gYWRkZWQgaW4gdGhlIFdlYlByb2Nlc3MgdG8gZml4IDxyZGFyOi8vcHJvYmxl
bS8xODMxNjU0Mj4uCiAgICAgICAgICAgICAgICAgZmxvYXQgaW52ZXJzZVNjYWxlID0gMSAvIHBy
b3BlcnRpZXMuaG9zdGluZ0RldmljZVNjYWxlRmFjdG9yOwogICAgICAgICAgICAgICAgIFtbdmll
dyBsYXllcl0gc2V0VHJhbnNmb3JtOkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUoaW52ZXJzZVNjYWxl
LCBpbnZlcnNlU2NhbGUsIDEpXTsKICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAg
ICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLQ29tcG9zaXRpbmdWaWV3IGFsbG9jXSBpbml0XSk7
Ci0gICAgICAgIGJyZWFrOworICAgICAgICAgICAgcmV0dXJuIG1ha2VXaXRoVmlldyhXVEZNb3Zl
KHZpZXcpKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbWFrZUFkb3B0aW5nVmlldyhbW1dL
Q29tcG9zaXRpbmdWaWV3IGFsbG9jXSBpbml0XSk7CisKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXll
cjo6TGF5ZXJUeXBlU2hhcGVMYXllcjoKLSAgICAgICAgdmlldyA9IGFkb3B0TlMoW1tXS1NoYXBl
VmlldyBhbGxvY10gaW5pdF0pOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIG1ha2VB
ZG9wdGluZ1ZpZXcoW1tXS1NoYXBlVmlldyBhbGxvY10gaW5pdF0pOworCiAgICAgY2FzZSBQbGF0
Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVNjcm9sbGluZ0xheWVyOgogICAgICAgICBpZiAoIW1faXNE
ZWJ1Z0xheWVyVHJlZUhvc3QpCi0gICAgICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLQ2hpbGRT
Y3JvbGxWaWV3IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIGVsc2UgLy8gVGhlIGRlYnVnIGluZGlj
YXRvciBwYXJlbnRzIHZpZXdzIHVuZGVyIGxheWVycywgd2hpY2ggY2FuIGNhdXNlIGNyYXNoZXMg
d2l0aCBVSVNjcm9sbFZpZXcuCi0gICAgICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1VJVmlldyBh
bGxvY10gaW5pdF0pOwotICAgICAgICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiBtYWtlQWRv
cHRpbmdWaWV3KFtbV0tDaGlsZFNjcm9sbFZpZXcgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgLy8g
VGhlIGRlYnVnIGluZGljYXRvciBwYXJlbnRzIHZpZXdzIHVuZGVyIGxheWVycywgd2hpY2ggY2Fu
IGNhdXNlIGNyYXNoZXMgd2l0aCBVSVNjcm9sbFZpZXcuCisgICAgICAgIHJldHVybiBtYWtlQWRv
cHRpbmdWaWV3KFtbVUlWaWV3IGFsbG9jXSBpbml0XSk7CisKICAgICBjYXNlIFBsYXRmb3JtQ0FM
YXllcjo6TGF5ZXJUeXBlRWRpdGFibGVJbWFnZUxheWVyOgotICAgICAgICB2aWV3ID0gY3JlYXRl
RW1iZWRkZWRWaWV3KHByb3BlcnRpZXMsIGxheWVyUHJvcGVydGllcyk7Ci0gICAgICAgIGJyZWFr
OworICAgICAgICByZXR1cm4gbWFrZVdpdGhWaWV3KGNyZWF0ZUVtYmVkZGVkVmlldyhwcm9wZXJ0
aWVzKSk7CisKICAgICBkZWZhdWx0OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQotCi0gICAgc2V0TGF5ZXJJRChbdmlldyBsYXll
cl0sIHByb3BlcnRpZXMubGF5ZXJJRCk7Ci0KLSAgICBtX25vZGVzLmFkZChwcm9wZXJ0aWVzLmxh
eWVySUQsIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlTm9kZT4oV1RGTW92ZSh2aWV3
KSkpOwogfQogCi1SZXRhaW5QdHI8V0tFbWJlZGRlZFZpZXc+IFJlbW90ZUxheWVyVHJlZUhvc3Q6
OmNyZWF0ZUVtYmVkZGVkVmlldyhjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5
ZXJDcmVhdGlvblByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMqIGxheWVyUHJvcGVydGllcykKK1JldGFpblB0cjxX
S0VtYmVkZGVkVmlldz4gUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlRW1iZWRkZWRWaWV3KGNv
bnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllcyYg
cHJvcGVydGllcykKIHsKICAgICBDbGFzcyBlbWJlZGRlZFZpZXdDbGFzcyA9IG5pbDsKICAgICBz
d2l0Y2ggKHByb3BlcnRpZXMudHlwZSkgewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVy
VHJlZVZpZXdzLm1tCShyZXZpc2lvbiAyMzg0NjgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC05Miw3ICs5Miw3IEBAIC0gKFVJVmlldyAqKWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQg
d2l0aEUKIC0gKE5TU3RyaW5nICopZGVzY3JpcHRpb24KIHsKICAgICBOU1N0cmluZyAqdmlld0Rl
c2NyaXB0aW9uID0gW3N1cGVyIGRlc2NyaXB0aW9uXTsKLSAgICBOU1N0cmluZyAqd2ViS2l0RGV0
YWlscyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiIGxheWVySUQgPSAlbGx1IFwiJUBc
IiIsIFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChzZWxmLmxheWVyKSwgc2Vs
Zi5sYXllci5uYW1lID8gc2VsZi5sYXllci5uYW1lIDogQCIiXTsKKyAgICBOU1N0cmluZyAqd2Vi
S2l0RGV0YWlscyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiIGxheWVySUQgPSAlbGx1
IFwiJUBcIiIsIFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlTm9kZTo6bGF5ZXJJRChzZWxmLmxheWVy
KSwgc2VsZi5sYXllci5uYW1lID8gc2VsZi5sYXllci5uYW1lIDogQCIiXTsKICAgICByZXR1cm4g
W3ZpZXdEZXNjcmlwdGlvbiBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzp3ZWJLaXREZXRhaWxzXTsK
IH0KIApAQCAtMTYxLDcgKzE2MSw3IEBAIC0gKFVJVmlldyAqKWhpdFRlc3Q6KENHUG9pbnQpcG9p
bnQgd2l0aEUKIC0gKE5TU3RyaW5nICopZGVzY3JpcHRpb24KIHsKICAgICBOU1N0cmluZyAqdmll
d0Rlc2NyaXB0aW9uID0gW3N1cGVyIGRlc2NyaXB0aW9uXTsKLSAgICBOU1N0cmluZyAqd2ViS2l0
RGV0YWlscyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiIGxheWVySUQgPSAlbGx1IFwi
JUBcIiIsIFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChzZWxmLmxheWVyKSwg
c2VsZi5sYXllci5uYW1lID8gc2VsZi5sYXllci5uYW1lIDogQCIiXTsKKyAgICBOU1N0cmluZyAq
d2ViS2l0RGV0YWlscyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiIGxheWVySUQgPSAl
bGx1IFwiJUBcIiIsIFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlTm9kZTo6bGF5ZXJJRChzZWxmLmxh
eWVyKSwgc2VsZi5sYXllci5uYW1lID8gc2VsZi5sYXllci5uYW1lIDogQCIiXTsKICAgICByZXR1
cm4gW3ZpZXdEZXNjcmlwdGlvbiBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzp3ZWJLaXREZXRhaWxz
XTsKIH0KIApAQCAtMTc4LDcgKzE3OCw3IEBAIC0gKFVJVmlldyAqKWhpdFRlc3Q6KENHUG9pbnQp
cG9pbnQgd2l0aEUKIC0gKE5TU3RyaW5nICopZGVzY3JpcHRpb24KIHsKICAgICBOU1N0cmluZyAq
dmlld0Rlc2NyaXB0aW9uID0gW3N1cGVyIGRlc2NyaXB0aW9uXTsKLSAgICBOU1N0cmluZyAqd2Vi
S2l0RGV0YWlscyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiIGxheWVySUQgPSAlbGx1
IFwiJUBcIiIsIFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChzZWxmLmxheWVy
KSwgc2VsZi5sYXllci5uYW1lID8gc2VsZi5sYXllci5uYW1lIDogQCIiXTsKKyAgICBOU1N0cmlu
ZyAqd2ViS2l0RGV0YWlscyA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiIGxheWVySUQg
PSAlbGx1IFwiJUBcIiIsIFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlTm9kZTo6bGF5ZXJJRChzZWxm
LmxheWVyKSwgc2VsZi5sYXllci5uYW1lID8gc2VsZi5sYXllci5uYW1lIDogQCIiXTsKICAgICBy
ZXR1cm4gW3ZpZXdEZXNjcmlwdGlvbiBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzp3ZWJLaXREZXRh
aWxzXTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGUubW0JKHJldmlzaW9uIDIzODQ2OCkKKysrIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3Rl
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04MDMsNyArODAzLDcgQEAgc3RhdGljIHZvaWQgYWRkQW5p
bWF0aW9uVG9MYXllcihDQUxheWVyIAogICAgICAgICBbY2FBbmltYXRpb24gc2V0VmFsdWU6QFlF
UyBmb3JLZXk6V0tFeHBsaWNpdEJlZ2luVGltZUZsYWddOwogICAgIAogICAgIGlmIChsYXllclRy
ZWVIb3N0KSB7Ci0gICAgICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklE
ID0gUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChsYXllcik7CisgICAgICAgIEdyYXBoaWNz
TGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEID0gUmVtb3RlTGF5ZXJUcmVlTm9kZTo6bGF5
ZXJJRChsYXllcik7CiAgICAgCiAgICAgICAgIFJldGFpblB0cjxXS0FuaW1hdGlvbkRlbGVnYXRl
PiYgZGVsZWdhdGUgPSBsYXllclRyZWVIb3N0LT5hbmltYXRpb25EZWxlZ2F0ZXMoKS5hZGQobGF5
ZXJJRCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwogICAgICAgICBpZiAoIWRlbGVnYXRlKQo=
</data>
<flag name="review"
          id="372657"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>355591</attachid>
            <date>2018-11-25 03:26:01 -0800</date>
            <delta_ts>2018-11-25 04:19:12 -0800</delta_ts>
            <desc>for landing</desc>
            <filename>remote-layer-create-refactor-3.patch</filename>
            <type>text/plain</type>
            <size>19757</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzg0NzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ3IEBACisyMDE4LTExLTI1ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdGVMYXllclRyZWVOb2RlIGNv
bnN0cnVjdGlvbiBjbGVhbnVwcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTkxOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9zdC5o
OgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9z
dC5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJU
cmVlKToKKworICAgICAgICAgICAgRHJvcCB1bnVzZWQgTGF5ZXJQcm9wZXJ0aWVzIGFyZ3VtZW50
LgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKToK
KworICAgICAgICAgICAgU3BsaXQgdGhlIGFjdHVhbCBjb25zdHJ1Y3Rpb24gb3V0IHRvIG1ha2VO
b2RlLgorICAgICAgICAgICAgTWFwIHVwZGF0aW5nIGlzIHNoYXJlZCBiZXR3ZWVuIHBsYXRmb3Jt
cy4KKyAgICAgICAgICAgIE1vdmUgc2V0dGluZyBvZiBsYXllcklEIGFuZCBjbGVhcmluZyBkZWZh
dWx0IGFjdGlvbnMgdG8gUmVtb3RlTGF5ZXJUcmVlTm9kZS4KKworICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVIb3N0OjptYWtlTm9kZSk6CisKKyAgICAgICAgICAgIFJldHVybnMgUmVt
b3RlTGF5ZXJUcmVlTm9kZS4KKworICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0
OjpzZXRMYXllcklEKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVl
SG9zdDo6bGF5ZXJJRCk6IERlbGV0ZWQuCisKKyAgICAgICAgICAgIE1vdmUgdG8gUmVtb3RlTGF5
ZXJUcmVlTm9kZS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlTm9kZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlTm9kZS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlTm9k
ZTo6UmVtb3RlTGF5ZXJUcmVlTm9kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZU5vZGU6OnNldExheWVySUQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVOb2Rl
OjpsYXllcklEKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9SZW1v
dGVMYXllclRyZWVIb3N0SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVI
b3N0OjptYWtlTm9kZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNy
ZWF0ZUVtYmVkZGVkVmlldyk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6
OmNyZWF0ZUxheWVyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL2lvcy9SZW1vdGVMYXllclRyZWVWaWV3cy5tbToKKyAgICAgICAgKC1bV0tDb21wb3NpdGlu
Z1ZpZXcgZGVzY3JpcHRpb25dKToKKyAgICAgICAgKC1bV0tVSVJlbW90ZVZpZXcgZGVzY3JpcHRp
b25dKToKKyAgICAgICAgKC1bV0tCYWNrZHJvcFZpZXcgZGVzY3JpcHRpb25dKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25S
ZW1vdGUubW06CisgICAgICAgIChXZWJLaXQ6OmFkZEFuaW1hdGlvblRvTGF5ZXIpOgorCiAyMDE4
LTExLTI0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFtDb2NvYV0gRml4IGEgZmV3IGxvY2FsaXphYmxlIHN0cmluZyBkZXNjcmlwdGlvbnMgaW4gV2Vi
RWRpdENvbW1hbmRQcm94eS5jcHAgYW5kIFdlYkVkaXRvckNsaWVudC5tbQpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlSG9zdC5oCShyZXZpc2lvbiAyMzg0NjgpCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MywxMyArNDMsMTEgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogY2xhc3MgUmVtb3Rl
TGF5ZXJUcmVlSG9zdCB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVtb3RlTGF5ZXJUcmVlSG9z
dChSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Jik7Ci0gICAgdmlydHVhbCB+UmVtb3Rl
TGF5ZXJUcmVlSG9zdCgpOworICAgIH5SZW1vdGVMYXllclRyZWVIb3N0KCk7CiAKICAgICBSZW1v
dGVMYXllclRyZWVOb2RlKiBub2RlRm9ySUQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZv
cm1MYXllcklEKSBjb25zdDsKICAgICBSZW1vdGVMYXllclRyZWVOb2RlKiByb290Tm9kZSgpIGNv
bnN0IHsgcmV0dXJuIG1fcm9vdE5vZGU7IH0KIAotICAgIHN0YXRpYyBXZWJDb3JlOjpHcmFwaGlj
c0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRChDQUxheWVyKik7Ci0KICAgICBDQUxheWVy
ICpsYXllckZvcklEKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCkgY29u
c3Q7CiAgICAgQ0FMYXllciAqcm9vdExheWVyKCkgY29uc3Q7CiAKQEAgLTc4LDkgKzc2LDEwIEBA
IHB1YmxpYzoKICAgICBDQUxheWVyICpsYXllcldpdGhJREZvclRlc3RpbmcodWludDY0X3QpIGNv
bnN0OwogCiBwcml2YXRlOgotICAgIHZvaWQgY3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzJiwgY29uc3QgUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyopOwotICAgIFJldGFpblB0cjxXS0Vt
YmVkZGVkVmlldz4gY3JlYXRlRW1iZWRkZWRWaWV3KGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllcyYsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMqKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRMYXllcklE
KENBTGF5ZXIgKiwgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEKTsKKyAg
ICB2b2lkIGNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXll
ckNyZWF0aW9uUHJvcGVydGllcyYpOworICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVMYXllclRy
ZWVOb2RlPiBtYWtlTm9kZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJD
cmVhdGlvblByb3BlcnRpZXMmKTsKKworICAgIFJldGFpblB0cjxXS0VtYmVkZGVkVmlldz4gY3Jl
YXRlRW1iZWRkZWRWaWV3KGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNy
ZWF0aW9uUHJvcGVydGllcyYpOwogCiAgICAgdm9pZCBsYXllcldpbGxCZVJlbW92ZWQoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEKTsKIApJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZUhvc3QubW0JKHJldmlzaW9uIDIzODQ2OCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zOCw3ICszOCw2IEBACiAjaW1wb3J0IDxXZWJDb3JlL0dyYXBoaWNzQ29udGV4dENHLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0lPU3VyZmFjZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9y
bUxheWVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxl
Z2F0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlQ0FMYXllckV4dHJhcy5oPgogI2ltcG9y
dCA8cGFsL3NwaS9jb2NvYS9RdWFydHpDb3JlU1BJLmg+CiAKQEAgLTY5LDEwICs2OCw4IEBAIGJv
b2wgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJUcmUKICAgICBpZiAoIW1fZHJhd2lu
Z0FyZWEpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGZvciAoY29uc3QgYXV0byYgY3Jl
YXRlZExheWVyIDogdHJhbnNhY3Rpb24uY3JlYXRlZExheWVycygpKSB7Ci0gICAgICAgIGNvbnN0
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMqIHByb3BlcnRpZXMg
PSB0cmFuc2FjdGlvbi5jaGFuZ2VkTGF5ZXJQcm9wZXJ0aWVzKCkuZ2V0KGNyZWF0ZWRMYXllci5s
YXllcklEKTsKLSAgICAgICAgY3JlYXRlTGF5ZXIoY3JlYXRlZExheWVyLCBwcm9wZXJ0aWVzKTsK
LSAgICB9CisgICAgZm9yIChjb25zdCBhdXRvJiBjcmVhdGVkTGF5ZXIgOiB0cmFuc2FjdGlvbi5j
cmVhdGVkTGF5ZXJzKCkpCisgICAgICAgIGNyZWF0ZUxheWVyKGNyZWF0ZWRMYXllcik7CiAKICAg
ICBib29sIHJvb3RMYXllckNoYW5nZWQgPSBmYWxzZTsKICAgICBhdXRvKiByb290Tm9kZSA9IG5v
ZGVGb3JJRCh0cmFuc2FjdGlvbi5yb290TGF5ZXJJRCgpKTsKQEAgLTIzMSwxOCArMjI4LDYgQEAg
Q0FMYXllciAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJXaXRoSQogICAgIHJldHVybiBsYXll
ckZvcklEKGxheWVySUQpOwogfQogCi1zdGF0aWMgTlNTdHJpbmcqIGNvbnN0IFdLTGF5ZXJJRFBy
b3BlcnR5S2V5ID0gQCJXS0xheWVySUQiOwotCi12b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnNl
dExheWVySUQoQ0FMYXllciAqbGF5ZXIsIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3Jt
TGF5ZXJJRCBsYXllcklEKQotewotICAgIFtsYXllciBzZXRWYWx1ZTpbTlNOdW1iZXIgbnVtYmVy
V2l0aFVuc2lnbmVkTG9uZ0xvbmc6bGF5ZXJJRF0gZm9yS2V5OldLTGF5ZXJJRFByb3BlcnR5S2V5
XTsKLX0KLQotV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIFJlbW90ZUxh
eWVyVHJlZUhvc3Q6OmxheWVySUQoQ0FMYXllciogbGF5ZXIpCi17Ci0gICAgcmV0dXJuIFtbbGF5
ZXIgdmFsdWVGb3JLZXk6V0tMYXllcklEUHJvcGVydHlLZXldIHVuc2lnbmVkTG9uZ0xvbmdWYWx1
ZV07Ci19Ci0KIENBTGF5ZXIgKlJlbW90ZUxheWVyVHJlZUhvc3Q6OmxheWVyRm9ySUQoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIGxheWVySUQpIGNvbnN0CiB7CiAgICAg
YXV0byogbm9kZSA9IG5vZGVGb3JJRChsYXllcklEKTsKQEAgLTI1OCwxMiArMjQzLDI0IEBAIENB
TGF5ZXIgKlJlbW90ZUxheWVyVHJlZUhvc3Q6OnJvb3RMYXllcigKICAgICByZXR1cm4gbV9yb290
Tm9kZS0+bGF5ZXIoKTsKIH0KIAotI2lmICFQTEFURk9STShJT1NfRkFNSUxZKQotdm9pZCBSZW1v
dGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2Fj
dGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMqKQordm9pZCBSZW1vdGVMYXllclRy
ZWVIb3N0OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5
ZXJDcmVhdGlvblByb3BlcnRpZXMmIHByb3BlcnRpZXMpCiB7CiAgICAgQVNTRVJUKCFtX25vZGVz
LmNvbnRhaW5zKHByb3BlcnRpZXMubGF5ZXJJRCkpOwogCi0gICAgUmV0YWluUHRyPENBTGF5ZXI+
IGxheWVyOworICAgIGF1dG8gbm9kZSA9IG1ha2VOb2RlKHByb3BlcnRpZXMpOworCisgICAgbV9u
b2Rlcy5hZGQocHJvcGVydGllcy5sYXllcklELCBXVEZNb3ZlKG5vZGUpKTsKK30KKworI2lmICFQ
TEFURk9STShJT1NfRkFNSUxZKQorc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxheWVyVHJlZU5vZGU+
IFJlbW90ZUxheWVyVHJlZUhvc3Q6Om1ha2VOb2RlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllcyYgcHJvcGVydGllcykKK3sKKyAgICBhdXRv
IG1ha2VXaXRoTGF5ZXIgPSBbJl0gKFJldGFpblB0cjxDQUxheWVyPiBsYXllcikgeworICAgICAg
ICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVOb2RlPihwcm9wZXJ0aWVz
LmxheWVySUQsIFdURk1vdmUobGF5ZXIpKTsKKyAgICB9OworICAgIGF1dG8gbWFrZUFkb3B0aW5n
TGF5ZXIgPSBbJl0gKENBTGF5ZXIqIGxheWVyKSB7CisgICAgICAgIHJldHVybiBtYWtlV2l0aExh
eWVyKGFkb3B0TlMobGF5ZXIpKTsKKyAgICB9OwogCiAgICAgc3dpdGNoIChwcm9wZXJ0aWVzLnR5
cGUpIHsKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXI6CkBAIC0yNzUs
NDAgKzI3MiwzNCBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKGNvCiAg
ICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVkQmFja2luZ1RpbGVMYXllcjoK
ICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2Nyb2xsaW5nTGF5ZXI6CiAgICAg
Y2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUVkaXRhYmxlSW1hZ2VMYXllcjoKLSAgICAg
ICAgbGF5ZXIgPSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOwotICAgICAgICBicmVh
azsKKyAgICAgICAgcmV0dXJuIG1ha2VBZG9wdGluZ0xheWVyKFtbQ0FMYXllciBhbGxvY10gaW5p
dF0pOworCiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRyYW5zZm9ybUxheWVy
OgotICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQVRyYW5zZm9ybUxheWVyIGFsbG9jXSBpbml0
XSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gbWFrZUFkb3B0aW5nTGF5ZXIoW1tD
QVRyYW5zZm9ybUxheWVyIGFsbG9jXSBpbml0XSk7CisKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXll
cjo6TGF5ZXJUeXBlQmFja2Ryb3BMYXllcjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5
ZXJUeXBlTGlnaHRTeXN0ZW1CYWNrZHJvcExheWVyOgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVy
OjpMYXllclR5cGVEYXJrU3lzdGVtQmFja2Ryb3BMYXllcjoKICNpZiBFTkFCTEUoRklMVEVSU19M
RVZFTF8yKQotICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQUJhY2tkcm9wTGF5ZXIgYWxsb2Nd
IGluaXRdKTsKKyAgICAgICAgcmV0dXJuIG1ha2VBZG9wdGluZ0xheWVyKFtbQ0FCYWNrZHJvcExh
eWVyIGFsbG9jXSBpbml0XSk7CiAjZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgbGF5ZXIgPSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOworICAgICAg
ICByZXR1cm4gbWFrZUFkb3B0aW5nTGF5ZXIoW1tDQUxheWVyIGFsbG9jXSBpbml0XSk7CiAjZW5k
aWYKLSAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUN1
c3RvbToKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlQVZQbGF5ZXJMYXllcjoK
ICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlQ29udGVudHNQcm92aWRlZExheWVy
OgotICAgICAgICBpZiAoIW1faXNEZWJ1Z0xheWVyVHJlZUhvc3QpCi0gICAgICAgICAgICBsYXll
ciA9IFtDQUxheWVyIF93ZWJfcmVuZGVyTGF5ZXJXaXRoQ29udGV4dElEOnByb3BlcnRpZXMuaG9z
dGluZ0NvbnRleHRJRF07Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxheWVyID0gYWRvcHRO
UyhbW0NBTGF5ZXIgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIGlmICht
X2lzRGVidWdMYXllclRyZWVIb3N0KQorICAgICAgICAgICAgcmV0dXJuIG1ha2VBZG9wdGluZ0xh
eWVyKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOworICAgICAgICByZXR1cm4gbWFrZVdpdGhMYXll
cihbQ0FMYXllciBfd2ViX3JlbmRlckxheWVyV2l0aENvbnRleHRJRDpwcm9wZXJ0aWVzLmhvc3Rp
bmdDb250ZXh0SURdKTsKKwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVTaGFw
ZUxheWVyOgotICAgICAgICBsYXllciA9IGFkb3B0TlMoW1tDQVNoYXBlTGF5ZXIgYWxsb2NdIGlu
aXRdKTsKLSAgICAgICAgYnJlYWs7CisgICAgICAgIHJldHVybiBtYWtlQWRvcHRpbmdMYXllcihb
W0NBU2hhcGVMYXllciBhbGxvY10gaW5pdF0pOworICAgICAgICAgICAgCiAgICAgZGVmYXVsdDoK
ICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgIH0KLQotICAgIFtsYXllciBzZXREZWxlZ2F0ZTpbV2ViQWN0aW9uRGlzYWJsaW5nQ0FMYXll
ckRlbGVnYXRlIHNoYXJlZF1dOwotICAgIHNldExheWVySUQobGF5ZXIuZ2V0KCksIHByb3BlcnRp
ZXMubGF5ZXJJRCk7Ci0KLSAgICBtX25vZGVzLmFkZChwcm9wZXJ0aWVzLmxheWVySUQsIHN0ZDo6
bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlTm9kZT4oV1RGTW92ZShsYXllcikpKTsKIH0KICNl
bmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVt
b3RlTGF5ZXJUcmVlTm9kZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVOb2RlLmgJKHJldmlzaW9uIDIzODQ2OCkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVOb2RlLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNl
CiAKKyNpbmNsdWRlIDxXZWJDb3JlL0dyYXBoaWNzTGF5ZXIuaD4KICNpbmNsdWRlIDx3dGYvUmV0
YWluUHRyLmg+CiAKIE9CSkNfQ0xBU1MgQ0FMYXllcjsKQEAgLTM3LDkgKzM4LDkgQEAgbmFtZXNw
YWNlIFdlYktpdCB7CiBjbGFzcyBSZW1vdGVMYXllclRyZWVOb2RlIHsKICAgICBXVEZfTUFLRV9G
QVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBSZW1vdGVMYXllclRyZWVOb2RlKFJldGFpblB0
cjxDQUxheWVyPik7CisgICAgUmVtb3RlTGF5ZXJUcmVlTm9kZShXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpQbGF0Zm9ybUxheWVySUQsIFJldGFpblB0cjxDQUxheWVyPik7CiAjaWYgUExBVEZPUk0o
SU9TX0ZBTUlMWSkKLSAgICBSZW1vdGVMYXllclRyZWVOb2RlKFJldGFpblB0cjxVSVZpZXc+KTsK
KyAgICBSZW1vdGVMYXllclRyZWVOb2RlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3Jt
TGF5ZXJJRCwgUmV0YWluUHRyPFVJVmlldz4pOwogI2VuZGlmCiAKICAgICB+UmVtb3RlTGF5ZXJU
cmVlTm9kZSgpOwpAQCAtNTEsNyArNTIsMTEgQEAgcHVibGljOgogCiAgICAgdm9pZCBkZXRhY2hG
cm9tUGFyZW50KCk7CiAKKyAgICBzdGF0aWMgV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZv
cm1MYXllcklEIGxheWVySUQoQ0FMYXllciopOworCiBwcml2YXRlOgorICAgIHZvaWQgc2V0TGF5
ZXJJRChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQpOworCiAgICAgUmV0
YWluUHRyPENBTGF5ZXI+IG1fbGF5ZXI7CiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBS
ZXRhaW5QdHI8VUlWaWV3PiBtX3VpVmlldzsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVOb2RlLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVOb2Rl
Lm1tCShyZXZpc2lvbiAyMzg0NjgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlTm9kZS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsMTgg
KzI2LDIzIEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVl
Tm9kZS5oIgogCisjaW1wb3J0IDxXZWJDb3JlL1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxl
Z2F0ZS5oPgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVtb3RlTGF5ZXJUcmVlTm9kZTo6UmVt
b3RlTGF5ZXJUcmVlTm9kZShSZXRhaW5QdHI8Q0FMYXllcj4gbGF5ZXIpCitSZW1vdGVMYXllclRy
ZWVOb2RlOjpSZW1vdGVMYXllclRyZWVOb2RlKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRm
b3JtTGF5ZXJJRCBsYXllcklELCBSZXRhaW5QdHI8Q0FMYXllcj4gbGF5ZXIpCiAgICAgOiBtX2xh
eWVyKFdURk1vdmUobGF5ZXIpKQogeworICAgIHNldExheWVySUQobGF5ZXJJRCk7CisgICAgW21f
bGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZSBzaGFy
ZWRdXTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCi1SZW1vdGVMYXllclRyZWVOb2Rl
OjpSZW1vdGVMYXllclRyZWVOb2RlKFJldGFpblB0cjxVSVZpZXc+IHVpVmlldykKK1JlbW90ZUxh
eWVyVHJlZU5vZGU6OlJlbW90ZUxheWVyVHJlZU5vZGUoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6
UGxhdGZvcm1MYXllcklEIGxheWVySUQsIFJldGFpblB0cjxVSVZpZXc+IHVpVmlldykKICAgICA6
IG1fbGF5ZXIoW3VpVmlldy5nZXQoKSBsYXllcl0pCiAgICAgLCBtX3VpVmlldyhXVEZNb3ZlKHVp
VmlldykpCiB7CisgICAgc2V0TGF5ZXJJRChsYXllcklEKTsKIH0KICNlbmRpZgogCkBAIC01Miw0
ICs1NywxNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZU5vZGU6OmRldGFjaEZyb21QYXJlCiAjZW5k
aWYKIH0KIAorc3RhdGljIE5TU3RyaW5nKiBjb25zdCBXS0xheWVySURQcm9wZXJ0eUtleSA9IEAi
V0tMYXllcklEIjsKKwordm9pZCBSZW1vdGVMYXllclRyZWVOb2RlOjpzZXRMYXllcklEKFdlYkNv
cmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEKQoreworICAgIFtsYXll
cigpIHNldFZhbHVlOkAobGF5ZXJJRCkgZm9yS2V5OldLTGF5ZXJJRFByb3BlcnR5S2V5XTsKK30K
KworV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEIFJlbW90ZUxheWVyVHJl
ZU5vZGU6OmxheWVySUQoQ0FMYXllciogbGF5ZXIpCit7CisgICAgcmV0dXJuIFtbbGF5ZXIgdmFs
dWVGb3JLZXk6V0tMYXllcklEUHJvcGVydHlLZXldIHVuc2lnbmVkTG9uZ0xvbmdWYWx1ZV07Cit9
CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9pb3Mv
UmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1MubW0JKHJl
dmlzaW9uIDIzODQ2OCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJl
ZS9pb3MvUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5tbQkod29ya2luZyBjb3B5KQpAQCAtNTgsMTEg
KzU4LDE0IEBAIHN0YXRpYyBSZXRhaW5QdHI8VUlWaWV3PiBjcmVhdGVSZW1vdGVWaWUKICAgICBy
ZXR1cm4gYWRvcHROUyhbW1dLUmVtb3RlVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3Ra
ZXJvIGNvbnRleHRJRDpjb250ZXh0SURdKTsKIH0KIAotdm9pZCBSZW1vdGVMYXllclRyZWVIb3N0
OjpjcmVhdGVMYXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVh
dGlvblByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0
aW9uOjpMYXllclByb3BlcnRpZXMqIGxheWVyUHJvcGVydGllcykKK3N0ZDo6dW5pcXVlX3B0cjxS
ZW1vdGVMYXllclRyZWVOb2RlPiBSZW1vdGVMYXllclRyZWVIb3N0OjptYWtlTm9kZShjb25zdCBS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXMmIHByb3Bl
cnRpZXMpCiB7Ci0gICAgQVNTRVJUKCFtX25vZGVzLmNvbnRhaW5zKHByb3BlcnRpZXMubGF5ZXJJ
RCkpOwotCi0gICAgUmV0YWluUHRyPFVJVmlldz4gdmlldzsKKyAgICBhdXRvIG1ha2VXaXRoVmll
dyA9IFsmXSAoUmV0YWluUHRyPFVJVmlldz4gdmlldykgeworICAgICAgICByZXR1cm4gc3RkOjpt
YWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVOb2RlPihwcm9wZXJ0aWVzLmxheWVySUQsIFdURk1v
dmUodmlldykpOworICAgIH07CisgICAgYXV0byBtYWtlQWRvcHRpbmdWaWV3ID0gWyZdIChVSVZp
ZXcqIHZpZXcpIHsKKyAgICAgICAgcmV0dXJuIG1ha2VXaXRoVmlldyhhZG9wdE5TKHZpZXcpKTsK
KyAgICB9OwogCiAgICAgc3dpdGNoIChwcm9wZXJ0aWVzLnR5cGUpIHsKICAgICBjYXNlIFBsYXRm
b3JtQ0FMYXllcjo6TGF5ZXJUeXBlTGF5ZXI6CkBAIC03Miw1NSArNzUsNTMgQEAgdm9pZCBSZW1v
dGVMYXllclRyZWVIb3N0OjpjcmVhdGVMYXllcihjbwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVy
OjpMYXllclR5cGVUaWxlZEJhY2tpbmdMYXllcjoKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6
TGF5ZXJUeXBlUGFnZVRpbGVkQmFja2luZ0xheWVyOgogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVy
OjpMYXllclR5cGVUaWxlZEJhY2tpbmdUaWxlTGF5ZXI6Ci0gICAgICAgIHZpZXcgPSBhZG9wdE5T
KFtbV0tDb21wb3NpdGluZ1ZpZXcgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgYnJlYWs7CisgICAg
ICAgIHJldHVybiBtYWtlQWRvcHRpbmdWaWV3KFtbV0tDb21wb3NpdGluZ1ZpZXcgYWxsb2NdIGlu
aXRdKTsKKwogICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVCYWNrZHJvcExheWVy
OgotICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLU2ltcGxlQmFja2Ryb3BWaWV3IGFsbG9jXSBp
bml0XSk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gbWFrZUFkb3B0aW5nVmlldyhb
W1dLU2ltcGxlQmFja2Ryb3BWaWV3IGFsbG9jXSBpbml0XSk7CisKICAgICBjYXNlIFBsYXRmb3Jt
Q0FMYXllcjo6TGF5ZXJUeXBlTGlnaHRTeXN0ZW1CYWNrZHJvcExheWVyOgotICAgICAgICB2aWV3
ID0gYWRvcHROUyhbW1dLQmFja2Ryb3BWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFpl
cm8gcHJpdmF0ZVN0eWxlOl9VSUJhY2tkcm9wVmlld1N0eWxlX0xpZ2h0XSk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gbWFrZUFkb3B0aW5nVmlldyhbW1dLQmFja2Ryb3BWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gcHJpdmF0ZVN0eWxlOl9VSUJhY2tkcm9wVmll
d1N0eWxlX0xpZ2h0XSk7CisKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlRGFy
a1N5c3RlbUJhY2tkcm9wTGF5ZXI6Ci0gICAgICAgIHZpZXcgPSBhZG9wdE5TKFtbV0tCYWNrZHJv
cFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBwcml2YXRlU3R5bGU6X1VJQmFj
a2Ryb3BWaWV3U3R5bGVfRGFya10pOwotICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIG1h
a2VBZG9wdGluZ1ZpZXcoW1tXS0JhY2tkcm9wVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1Jl
Y3RaZXJvIHByaXZhdGVTdHlsZTpfVUlCYWNrZHJvcFZpZXdTdHlsZV9EYXJrXSk7CisKICAgICBj
YXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVHJhbnNmb3JtTGF5ZXI6Ci0gICAgICAgIHZp
ZXcgPSBhZG9wdE5TKFtbV0tUcmFuc2Zvcm1WaWV3IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIGJy
ZWFrOworICAgICAgICByZXR1cm4gbWFrZUFkb3B0aW5nVmlldyhbW1dLVHJhbnNmb3JtVmlldyBh
bGxvY10gaW5pdF0pOworCiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZUN1c3Rv
bToKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlQVZQbGF5ZXJMYXllcjoKICAg
ICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlQ29udGVudHNQcm92aWRlZExheWVyOgog
ICAgICAgICBpZiAoIW1faXNEZWJ1Z0xheWVyVHJlZUhvc3QpIHsKLSAgICAgICAgICAgIHZpZXcg
PSBjcmVhdGVSZW1vdGVWaWV3KG1fZHJhd2luZ0FyZWEtPnBhZ2UoKS5wcm9jZXNzSWRlbnRpZmll
cigpLCBwcm9wZXJ0aWVzLmhvc3RpbmdDb250ZXh0SUQpOworICAgICAgICAgICAgYXV0byB2aWV3
ID0gY3JlYXRlUmVtb3RlVmlldyhtX2RyYXdpbmdBcmVhLT5wYWdlKCkucHJvY2Vzc0lkZW50aWZp
ZXIoKSwgcHJvcGVydGllcy5ob3N0aW5nQ29udGV4dElEKTsKICAgICAgICAgICAgIGlmIChwcm9w
ZXJ0aWVzLnR5cGUgPT0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVBVlBsYXllckxheWVyKSB7
CiAgICAgICAgICAgICAgICAgLy8gSW52ZXJ0IHRoZSBzY2FsZSB0cmFuc2Zvcm0gYWRkZWQgaW4g
dGhlIFdlYlByb2Nlc3MgdG8gZml4IDxyZGFyOi8vcHJvYmxlbS8xODMxNjU0Mj4uCiAgICAgICAg
ICAgICAgICAgZmxvYXQgaW52ZXJzZVNjYWxlID0gMSAvIHByb3BlcnRpZXMuaG9zdGluZ0Rldmlj
ZVNjYWxlRmFjdG9yOwogICAgICAgICAgICAgICAgIFtbdmlldyBsYXllcl0gc2V0VHJhbnNmb3Jt
OkNBVHJhbnNmb3JtM0RNYWtlU2NhbGUoaW52ZXJzZVNjYWxlLCBpbnZlcnNlU2NhbGUsIDEpXTsK
ICAgICAgICAgICAgIH0KLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB2aWV3ID0gYWRvcHRO
UyhbW1dLQ29tcG9zaXRpbmdWaWV3IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgcmV0dXJuIG1ha2VXaXRoVmlldyhXVEZNb3ZlKHZpZXcpKTsKKyAgICAgICAgfQor
ICAgICAgICByZXR1cm4gbWFrZUFkb3B0aW5nVmlldyhbW1dLQ29tcG9zaXRpbmdWaWV3IGFsbG9j
XSBpbml0XSk7CisKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2hhcGVMYXll
cjoKLSAgICAgICAgdmlldyA9IGFkb3B0TlMoW1tXS1NoYXBlVmlldyBhbGxvY10gaW5pdF0pOwot
ICAgICAgICBicmVhazsKKyAgICAgICAgcmV0dXJuIG1ha2VBZG9wdGluZ1ZpZXcoW1tXS1NoYXBl
VmlldyBhbGxvY10gaW5pdF0pOworCiAgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlw
ZVNjcm9sbGluZ0xheWVyOgogICAgICAgICBpZiAoIW1faXNEZWJ1Z0xheWVyVHJlZUhvc3QpCi0g
ICAgICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1dLQ2hpbGRTY3JvbGxWaWV3IGFsbG9jXSBpbml0
XSk7Ci0gICAgICAgIGVsc2UgLy8gVGhlIGRlYnVnIGluZGljYXRvciBwYXJlbnRzIHZpZXdzIHVu
ZGVyIGxheWVycywgd2hpY2ggY2FuIGNhdXNlIGNyYXNoZXMgd2l0aCBVSVNjcm9sbFZpZXcuCi0g
ICAgICAgICAgICB2aWV3ID0gYWRvcHROUyhbW1VJVmlldyBhbGxvY10gaW5pdF0pOwotICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIHJldHVybiBtYWtlQWRvcHRpbmdWaWV3KFtbV0tDaGlsZFNj
cm9sbFZpZXcgYWxsb2NdIGluaXRdKTsKKyAgICAgICAgLy8gVGhlIGRlYnVnIGluZGljYXRvciBw
YXJlbnRzIHZpZXdzIHVuZGVyIGxheWVycywgd2hpY2ggY2FuIGNhdXNlIGNyYXNoZXMgd2l0aCBV
SVNjcm9sbFZpZXcuCisgICAgICAgIHJldHVybiBtYWtlQWRvcHRpbmdWaWV3KFtbVUlWaWV3IGFs
bG9jXSBpbml0XSk7CisKICAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlRWRpdGFi
bGVJbWFnZUxheWVyOgotICAgICAgICB2aWV3ID0gY3JlYXRlRW1iZWRkZWRWaWV3KHByb3BlcnRp
ZXMsIGxheWVyUHJvcGVydGllcyk7Ci0gICAgICAgIGJyZWFrOworICAgICAgICByZXR1cm4gbWFr
ZVdpdGhWaWV3KGNyZWF0ZUVtYmVkZGVkVmlldyhwcm9wZXJ0aWVzKSk7CisKICAgICBkZWZhdWx0
OgogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQotCi0gICAgc2V0TGF5ZXJJRChbdmlldyBsYXllcl0sIHByb3BlcnRpZXMubGF5ZXJJ
RCk7Ci0KLSAgICBtX25vZGVzLmFkZChwcm9wZXJ0aWVzLmxheWVySUQsIHN0ZDo6bWFrZV91bmlx
dWU8UmVtb3RlTGF5ZXJUcmVlTm9kZT4oV1RGTW92ZSh2aWV3KSkpOwogfQogCi1SZXRhaW5QdHI8
V0tFbWJlZGRlZFZpZXc+IFJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUVtYmVkZGVkVmlldyhj
b25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3BlcnRpZXMm
IHByb3BlcnRpZXMsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3Bl
cnRpZXMqIGxheWVyUHJvcGVydGllcykKK1JldGFpblB0cjxXS0VtYmVkZGVkVmlldz4gUmVtb3Rl
TGF5ZXJUcmVlSG9zdDo6Y3JlYXRlRW1iZWRkZWRWaWV3KGNvbnN0IFJlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllcyYgcHJvcGVydGllcykKIHsKICAgICBD
bGFzcyBlbWJlZGRlZFZpZXdDbGFzcyA9IG5pbDsKICAgICBzd2l0Y2ggKHByb3BlcnRpZXMudHlw
ZSkgewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL2lvcy9S
ZW1vdGVMYXllclRyZWVWaWV3cy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9SZW1vdGVMYXllclRyZWUvaW9zL1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCShyZXZpc2lv
biAyMzg0NjgpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvaW9z
L1JlbW90ZUxheWVyVHJlZVZpZXdzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05Miw3ICs5Miw3IEBA
IC0gKFVJVmlldyAqKWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQgd2l0aEUKIC0gKE5TU3RyaW5nICop
ZGVzY3JpcHRpb24KIHsKICAgICBOU1N0cmluZyAqdmlld0Rlc2NyaXB0aW9uID0gW3N1cGVyIGRl
c2NyaXB0aW9uXTsKLSAgICBOU1N0cmluZyAqd2ViS2l0RGV0YWlscyA9IFtOU1N0cmluZyBzdHJp
bmdXaXRoRm9ybWF0OkAiIGxheWVySUQgPSAlbGx1IFwiJUBcIiIsIFdlYktpdDo6UmVtb3RlTGF5
ZXJUcmVlSG9zdDo6bGF5ZXJJRChzZWxmLmxheWVyKSwgc2VsZi5sYXllci5uYW1lID8gc2VsZi5s
YXllci5uYW1lIDogQCIiXTsKKyAgICBOU1N0cmluZyAqd2ViS2l0RGV0YWlscyA9IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiIGxheWVySUQgPSAlbGx1IFwiJUBcIiIsIFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlTm9kZTo6bGF5ZXJJRChzZWxmLmxheWVyKSwgc2VsZi5sYXllci5uYW1lID8g
c2VsZi5sYXllci5uYW1lIDogQCIiXTsKICAgICByZXR1cm4gW3ZpZXdEZXNjcmlwdGlvbiBzdHJp
bmdCeUFwcGVuZGluZ1N0cmluZzp3ZWJLaXREZXRhaWxzXTsKIH0KIApAQCAtMTYxLDcgKzE2MSw3
IEBAIC0gKFVJVmlldyAqKWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQgd2l0aEUKIC0gKE5TU3RyaW5n
ICopZGVzY3JpcHRpb24KIHsKICAgICBOU1N0cmluZyAqdmlld0Rlc2NyaXB0aW9uID0gW3N1cGVy
IGRlc2NyaXB0aW9uXTsKLSAgICBOU1N0cmluZyAqd2ViS2l0RGV0YWlscyA9IFtOU1N0cmluZyBz
dHJpbmdXaXRoRm9ybWF0OkAiIGxheWVySUQgPSAlbGx1IFwiJUBcIiIsIFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChzZWxmLmxheWVyKSwgc2VsZi5sYXllci5uYW1lID8gc2Vs
Zi5sYXllci5uYW1lIDogQCIiXTsKKyAgICBOU1N0cmluZyAqd2ViS2l0RGV0YWlscyA9IFtOU1N0
cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiIGxheWVySUQgPSAlbGx1IFwiJUBcIiIsIFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlTm9kZTo6bGF5ZXJJRChzZWxmLmxheWVyKSwgc2VsZi5sYXllci5uYW1l
ID8gc2VsZi5sYXllci5uYW1lIDogQCIiXTsKICAgICByZXR1cm4gW3ZpZXdEZXNjcmlwdGlvbiBz
dHJpbmdCeUFwcGVuZGluZ1N0cmluZzp3ZWJLaXREZXRhaWxzXTsKIH0KIApAQCAtMTc4LDcgKzE3
OCw3IEBAIC0gKFVJVmlldyAqKWhpdFRlc3Q6KENHUG9pbnQpcG9pbnQgd2l0aEUKIC0gKE5TU3Ry
aW5nICopZGVzY3JpcHRpb24KIHsKICAgICBOU1N0cmluZyAqdmlld0Rlc2NyaXB0aW9uID0gW3N1
cGVyIGRlc2NyaXB0aW9uXTsKLSAgICBOU1N0cmluZyAqd2ViS2l0RGV0YWlscyA9IFtOU1N0cmlu
ZyBzdHJpbmdXaXRoRm9ybWF0OkAiIGxheWVySUQgPSAlbGx1IFwiJUBcIiIsIFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJJRChzZWxmLmxheWVyKSwgc2VsZi5sYXllci5uYW1lID8g
c2VsZi5sYXllci5uYW1lIDogQCIiXTsKKyAgICBOU1N0cmluZyAqd2ViS2l0RGV0YWlscyA9IFtO
U1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiIGxheWVySUQgPSAlbGx1IFwiJUBcIiIsIFdlYktp
dDo6UmVtb3RlTGF5ZXJUcmVlTm9kZTo6bGF5ZXJJRChzZWxmLmxheWVyKSwgc2VsZi5sYXllci5u
YW1lID8gc2VsZi5sYXllci5uYW1lIDogQCIiXTsKICAgICByZXR1cm4gW3ZpZXdEZXNjcmlwdGlv
biBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzp3ZWJLaXREZXRhaWxzXTsKIH0KIApJbmRleDogU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FB
bmltYXRpb25SZW1vdGUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1BsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUubW0JKHJl
dmlzaW9uIDIzODQ2OCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9QbGF0Zm9ybUNBQW5pbWF0aW9uUmVtb3RlLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC04MDMsNyArODAzLDcgQEAgc3RhdGljIHZvaWQgYWRkQW5pbWF0aW9uVG9MYXllcihDQUxheWVy
IAogICAgICAgICBbY2FBbmltYXRpb24gc2V0VmFsdWU6QFlFUyBmb3JLZXk6V0tFeHBsaWNpdEJl
Z2luVGltZUZsYWddOwogICAgIAogICAgIGlmIChsYXllclRyZWVIb3N0KSB7Ci0gICAgICAgIEdy
YXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEID0gUmVtb3RlTGF5ZXJUcmVlSG9z
dDo6bGF5ZXJJRChsYXllcik7CisgICAgICAgIEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJ
RCBsYXllcklEID0gUmVtb3RlTGF5ZXJUcmVlTm9kZTo6bGF5ZXJJRChsYXllcik7CiAgICAgCiAg
ICAgICAgIFJldGFpblB0cjxXS0FuaW1hdGlvbkRlbGVnYXRlPiYgZGVsZWdhdGUgPSBsYXllclRy
ZWVIb3N0LT5hbmltYXRpb25EZWxlZ2F0ZXMoKS5hZGQobGF5ZXJJRCwgbnVsbHB0cikuaXRlcmF0
b3ItPnZhbHVlOwogICAgICAgICBpZiAoIWRlbGVnYXRlKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>