<?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>129508</bug_id>
          
          <creation_ts>2014-02-28 14:43:43 -0800</creation_ts>
          <short_desc>Make UIViews for compositing layers in the UI process on iOS</short_desc>
          <delta_ts>2014-03-08 21:01:19 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>andersca</cc>
    
    <cc>dino</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>985715</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-28 14:43:43 -0800</bug_when>
    <thetext>Make UIViews for compositing layers in the UI process on iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985718</commentid>
    <comment_count>1</comment_count>
      <attachid>225492</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-28 14:47:41 -0800</bug_when>
    <thetext>Created attachment 225492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>985726</commentid>
    <comment_count>2</comment_count>
      <attachid>225492</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2014-02-28 14:56:26 -0800</bug_when>
    <thetext>Comment on attachment 225492
Patch

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

&gt; Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm:41
&gt; +- (void)setSubviews:(NSArray *)subviews;

This should be _web_setSubviews: (Says the council of 2).

&gt; Source/WebKit2/Shared/mac/RemoteLayerTreePropertyApplier.mm:54
&gt; +@implementation UIView (WKUIViewUtilities)
&gt; +- (void)setSubviews:(NSArray *)subviews
&gt; +{
&gt; +    for (UIView* subview in self.subviews)
&gt; +        [subview removeFromSuperview];
&gt; +
&gt; +    for (UIView* view in subviews)
&gt; +        [self addSubview:view];
&gt; +}
&gt; +@end
&gt; +#endif

Please add leading/trailing newlines.

&gt; Source/WebKit2/UIProcess/ios/RemoteLayerTreeHostIOS.mm:109
&gt; +    // FIXME: do through the view.
&gt; +    [[layerOrView layer] web_disableAllActions];

Capital D in do!

&gt; Source/WebKit2/UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:48
&gt; +    for (auto&amp; it : stateTree.nodeMap()) {
&gt; +        ScrollingStateNode* currNode = it.value;

You can do for (auto&amp; currentNode : stateTree.nodeMap().values())

&gt; Source/WebKit2/UIProcess/ios/WebVideoFullscreenManagerProxy.mm:117
&gt; +}
&gt; +
&gt; +    
&gt; +} // namespace WebKit

Too many lines!!!!!!!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>988694</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-03-08 21:01:19 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/164890</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225492</attachid>
            <date>2014-02-28 14:47:41 -0800</date>
            <delta_ts>2014-02-28 14:56:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-129508-20140228144740.patch</filename>
            <type>text/plain</type>
            <size>62955</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY0ODMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWRkN2U2MTRlOWUzZWI5
MGVkZTY1MjY2OGFiOTI0Mzg3MDc3YjA3NS4uYmZkNGUwMzZkYmVhMTUyZWZjNzRlMGI2YTJiZjkx
OGZiMTNiMmJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDE0LTAyLTI4ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgVUlWaWV3
cyBmb3IgY29tcG9zaXRpbmcgbGF5ZXJzIGluIHRoZSBVSSBwcm9jZXNzIG9uIGlPUworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5NTA4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBJbiBvcmRl
ciB0byBwYXJlbnQgVUlTY3JvbGxWaWV3cyBmb3IgLXdlYmtpdC1vdmVyZmxvdy1zY3JvbGxpbmc6
dG91Y2gsCisgICAgICAgIHdlIG5lZWQgdG8gdXNlIFVJVmlld3MgaW4gdGhlIGNvbXBvc2l0aW5n
IGxheWVyIGhpZXJhcmNoeSBvbiBpT1MuCisgICAgICAgIAorICAgICAgICBNYWtlIG11Y2ggb2Yg
dGhlIGNvZGUgdGhhdCBjdXJyZW50bHkgdXNlcyBDQUxheWVycyBsYXllci1vci12aWV3CisgICAg
ICAgIGFnbm9zdGljIGJ5IHVzaW5nIGEgdHlwZWRlZiBMYXllck9yVmlldy4KKyAgICAgICAgCisg
ICAgICAgIEZpeCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIgdG8gYXBwbHkgcHJvcGVy
dGllcyB0byBVSVZpZXdzCisgICAgICAgIG9yIENBTGF5ZXJzOyBvbiBpT1MsIHdlIG5lZWQgYm90
aCBwYXRocyBiZWNhdXNlIHdlIGhhdmUgdG8gc2V0IHByb3BlcnRpZXMKKyAgICAgICAgb24gQ0FM
YXllciBmb3IgcmVtb3RlbHkgaG9zdGVkIGNvbnRlbnQuCisgICAgICAgIAorICAgICAgICBBZGQg
aU9TLXNwZWNpZmljIGltcGxlbWVudGF0aW9uIGZpbGVzIGZvciBSZW1vdGVMYXllclRyZWVIb3N0
IGFuZCBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LAorICAgICAgICBzaW5jZSB0aGVz
ZSBuZWVkIHRvIHNlZSB0aGUgVUlWaWV3IGltcGxlbWVudGF0aW9uLiBXZWJWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuY3BwIGFsc28gbmVlZHMKKyAgICAgICAgdG8gYmUgY29tZSBhIC5tbSBm
aWxlLgorCisgICAgICAgICogU2hhcmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxp
ZXIuaDoKKyAgICAgICAgKiBTaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGll
ci5tbToKKyAgICAgICAgKC1bVUlWaWV3IHNldFN1YnZpZXdzOl0pOgorICAgICAgICAoV2ViS2l0
OjphcHBseVByb3BlcnRpZXNUb0xheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJU
cmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9MYXllclJlcHJlc2VudGF0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJLaXQy
L1NoYXJlZC9tYWMvUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmguCisgICAgICAgIChh
c0xheWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHA6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvTGF5ZXJSZXByZXNlbnRhdGlvbi5tbTogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaC4KKyAgICAgICAgKGFzTGF5
ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9v
dExheWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1Mu
bW06IEFkZGVkLgorICAgICAgICAoK1tXS1RyYW5zZm9ybVZpZXcgbGF5ZXJDbGFzc10pOgorICAg
ICAgICAoLVtXS1JlbW90ZVZpZXcgaW5pdFdpdGhGcmFtZTpjb250ZXh0SUQ6XSk6CisgICAgICAg
ICgrW1dLUmVtb3RlVmlldyBsYXllckNsYXNzXSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1JlbW90
ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0
OjpsYXllclJlcHJlc2VudGF0aW9uRnJvbUxheWVyT3JWaWV3KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y29ubmVjdFN0YXRlTm9kZUxheWVycyk6
CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3Lm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdFZpZXc6XSk6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XZWJQYWdlUHJveHlJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcik6CisgICAgICAgICogVUlQcm9jZXNz
L2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW06IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5j
cHAuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRl
b0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6On5XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmRpZENv
bW1pdExheWVyVHJlZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6c2V0VmlkZW9MYXllcklEKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5OjplbnRlckZ1bGxzY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnJlcXVlc3RFeGl0RnVsbFNjcmVlbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cGxheSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cGF1c2UpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnRvZ2dsZVBs
YXlTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eTo6c2Vla1RvVGltZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6ZGlkRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZURlYnVnSW5kaWNhdG9yKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZUhvc3QuaDoKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlSG9zdDo6cm9vdExheWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1JlbW90ZUxheWVyVHJlZUhvc3QubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZUhvc3Q6OnVwZGF0ZUxheWVyVHJlZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJl
ZUhvc3Q6OmdldExheWVyKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6
Y3JlYXRlTGF5ZXIpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdSb290TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdSb290TGF5ZXIpOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FM
YXllclJlbW90ZS5jcHA6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2
ZUJ1aWxkVHJhbnNhY3Rpb24pOgorCiAyMDE0LTAyLTI3ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIHRhcHBpbmcgb24gcGxheSBidXR0b24g
b24gdmlkZW8gb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1Jl
bW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL21h
Yy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIuaAppbmRleCBlMGI2YjY4ZjRkOTQ3NWQw
M2EwYjc4ZjY3YTY4NjI4NDY3MDYxNTFjLi5lN2MwMjY4NjFhZDljYzUzOTBkMjExYTJiZDgwYWEz
ZWQxZGQ0YWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL1JlbW90ZUxh
eWVyVHJlZVByb3BlcnR5QXBwbGllci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMv
UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyLmgKQEAgLTI2LDYgKzI2LDcgQEAKICNpZm5k
ZWYgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyX2gKICNkZWZpbmUgUmVtb3RlTGF5ZXJU
cmVlUHJvcGVydHlBcHBsaWVyX2gKIAorI2luY2x1ZGUgIkxheWVyUmVwcmVzZW50YXRpb24uaCIK
ICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+CiAKQEAgLTMzLDggKzM0LDExIEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFz
cyBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIgewogcHVibGljOgotICAgIHR5cGVkZWYg
SGFzaE1hcDxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIENBTGF5ZXIg
Kj4gUmVsYXRlZExheWVyTWFwOwotICAgIHN0YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllc1RvTGF5
ZXIoQ0FMYXllciAqLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJQcm9w
ZXJ0aWVzJiwgY29uc3QgUmVsYXRlZExheWVyTWFwJik7CisgICAgdHlwZWRlZiBIYXNoTWFwPFdl
YkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCwgTGF5ZXJPclZpZXcgKj4gUmVs
YXRlZExheWVyTWFwOworICAgIHN0YXRpYyB2b2lkIGFwcGx5UHJvcGVydGllcyhDQUxheWVyICos
IGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmLCBjb25z
dCBSZWxhdGVkTGF5ZXJNYXAmKTsKKyNpZiBQTEFURk9STShJT1MpCisgICAgc3RhdGljIHZvaWQg
YXBwbHlQcm9wZXJ0aWVzKFVJVmlldyAqLCBjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bjo6TGF5ZXJQcm9wZXJ0aWVzJiwgY29uc3QgUmVsYXRlZExheWVyTWFwJik7CisjZW5kaWYKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL21hYy9SZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXIubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQppbmRleCBhNDM0
YmU2ZDg5ZDVhMzg2NjhjZmEyNTM5ZWVmN2JiMDgxMjNlMzhjLi43YzNhNTUzNDg1OWFmMDZhNjYx
NjA0YWRhMzk1ODExNmNmZjI3YmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQv
bWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvbWFjL1JlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllci5tbQpAQCAtMzAsOSAr
MzAsMjkgQEAKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ0FMYXllci5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9QbGF0Zm9ybUNBRmlsdGVycy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TY3JvbGxiYXJUaGVtZU1h
Yy5oPgorI2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgPFVJS2l0L1VJVmlldy5oPgorI2VuZGlm
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCisjaWYgUExBVEZPUk0oSU9TKQorQGludGVy
ZmFjZSBVSVZpZXcgKFdLVUlWaWV3VXRpbGl0aWVzKQorLSAodm9pZClzZXRTdWJ2aWV3czooTlNB
cnJheSAqKXN1YnZpZXdzOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gVUlWaWV3IChXS1VJVmll
d1V0aWxpdGllcykKKy0gKHZvaWQpc2V0U3Vidmlld3M6KE5TQXJyYXkgKilzdWJ2aWV3cworewor
ICAgIGZvciAoVUlWaWV3KiBzdWJ2aWV3IGluIHNlbGYuc3Vidmlld3MpCisgICAgICAgIFtzdWJ2
aWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOworCisgICAgZm9yIChVSVZpZXcqIHZpZXcgaW4gc3Vi
dmlld3MpCisgICAgICAgIFtzZWxmIGFkZFN1YnZpZXc6dmlld107Cit9CitAZW5kCisjZW5kaWYK
KwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIHN0YXRpYyBSZXRhaW5QdHI8Q0dDb2xvclJlZj4gY2dD
b2xvckZyb21Db2xvcihDb2xvciBjb2xvcikKQEAgLTc5LDcgKzk5LDcgQEAgc3RhdGljIHZvaWQg
dXBkYXRlQ3VzdG9tQXBwZWFyYW5jZShDQUxheWVyICpsYXllciwgR3JhcGhpY3NMYXllcjo6Q3Vz
dG9tQXBwZWFyYW4KICNlbmRpZgogfQogCi12b2lkIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBw
bGllcjo6YXBwbHlQcm9wZXJ0aWVzVG9MYXllcihDQUxheWVyICpsYXllciwgY29uc3QgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyYgcHJvcGVydGllcywgY29uc3Qg
UmVsYXRlZExheWVyTWFwJiByZWxhdGVkTGF5ZXJzKQorc3RhdGljIHZvaWQgYXBwbHlQcm9wZXJ0
aWVzVG9MYXllcihDQUxheWVyICpsYXllciwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b246OkxheWVyUHJvcGVydGllcyYgcHJvcGVydGllcykKIHsKICAgICBpZiAocHJvcGVydGllcy5j
aGFuZ2VkUHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpOYW1lQ2hhbmdl
ZCkKICAgICAgICAgbGF5ZXIubmFtZSA9IHByb3BlcnRpZXMubmFtZTsKQEAgLTEwMCwxMyArMTIw
LDYgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGll
c1RvTGF5ZXIoQ0FMYXllciAqbGF5ZXIsIGNvbnMKICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2Vk
UHJvcGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpCYWNrZ3JvdW5kQ29sb3JD
aGFuZ2VkKQogICAgICAgICBsYXllci5iYWNrZ3JvdW5kQ29sb3IgPSBjZ0NvbG9yRnJvbUNvbG9y
KHByb3BlcnRpZXMuYmFja2dyb3VuZENvbG9yKS5nZXQoKTsKIAotICAgIGlmIChwcm9wZXJ0aWVz
LmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNoaWxkcmVu
Q2hhbmdlZCkgewotICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IGNoaWxkcmVuID0g
YWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OnByb3BlcnRp
ZXMuY2hpbGRyZW4uc2l6ZSgpXSk7Ci0gICAgICAgIGZvciAoYXV0byYgY2hpbGQgOiBwcm9wZXJ0
aWVzLmNoaWxkcmVuKQotICAgICAgICAgICAgW2NoaWxkcmVuIGFkZE9iamVjdDpyZWxhdGVkTGF5
ZXJzLmdldChjaGlsZCldOwotICAgICAgICBsYXllci5zdWJsYXllcnMgPSBjaGlsZHJlbi5nZXQo
KTsKLSAgICB9Ci0KICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJvcGVydGllcyAmIFJlbW90
ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpCb3JkZXJDb2xvckNoYW5nZWQpCiAgICAgICAgIGxheWVy
LmJvcmRlckNvbG9yID0gY2dDb2xvckZyb21Db2xvcihwcm9wZXJ0aWVzLmJvcmRlckNvbG9yKS5n
ZXQoKTsKIApAQCAtMTM3LDE3ICsxNTAsNiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5
QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVzVG9MYXllcihDQUxheWVyICpsYXllciwgY29ucwogICAg
IGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb246Ok9wYXF1ZUNoYW5nZWQpCiAgICAgICAgIGxheWVyLm9wYXF1ZSA9IHByb3BlcnRpZXMu
b3BhcXVlOwogCi0gICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6TWFza0xheWVyQ2hhbmdlZCkgewotICAgICAgICBpZiAoIXBy
b3BlcnRpZXMubWFza0xheWVySUQpCi0gICAgICAgICAgICBsYXllci5tYXNrID0gbnVsbHB0cjsK
LSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBDQUxheWVyICptYXNrTGF5ZXIgPSByZWxhdGVk
TGF5ZXJzLmdldChwcm9wZXJ0aWVzLm1hc2tMYXllcklEKTsKLSAgICAgICAgICAgIEFTU0VSVCgh
bWFza0xheWVyLnN1cGVybGF5ZXIpOwotICAgICAgICAgICAgaWYgKCFtYXNrTGF5ZXIuc3VwZXJs
YXllcikKLSAgICAgICAgICAgICAgICBsYXllci5tYXNrID0gbWFza0xheWVyOwotICAgICAgICB9
Ci0gICAgfQotCiAgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6Q29udGVudHNSZWN0Q2hhbmdlZCkKICAgICAgICAgbGF5ZXIu
Y29udGVudHNSZWN0ID0gcHJvcGVydGllcy5jb250ZW50c1JlY3Q7CiAKQEAgLTE2NywxNCArMTY5
LDE4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRp
ZXNUb0xheWVyKENBTGF5ZXIgKmxheWVyLCBjb25zCiAgICAgICAgIGxheWVyLnRpbWVPZmZzZXQg
PSBwcm9wZXJ0aWVzLnRpbWVPZmZzZXQ7CiAKICAgICBpZiAocHJvcGVydGllcy5jaGFuZ2VkUHJv
cGVydGllcyAmIFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpCYWNraW5nU3RvcmVDaGFuZ2Vk
KSB7CisgICAgICAgIGlmIChSZW1vdGVMYXllckJhY2tpbmdTdG9yZSogYmFja2luZ1N0b3JlID0g
cHJvcGVydGllcy5iYWNraW5nU3RvcmUuZ2V0KCkpIHsKICNpZiBVU0UoSU9TVVJGQUNFKQotICAg
ICAgICBpZiAocHJvcGVydGllcy5iYWNraW5nU3RvcmUtPmFjY2VsZXJhdGVzRHJhd2luZygpKQot
ICAgICAgICAgICAgbGF5ZXIuY29udGVudHMgPSAoaWQpcHJvcGVydGllcy5iYWNraW5nU3RvcmUt
PnN1cmZhY2UoKS5nZXQoKTsKLSAgICAgICAgZWxzZQorICAgICAgICAgICAgaWYgKGJhY2tpbmdT
dG9yZS0+YWNjZWxlcmF0ZXNEcmF3aW5nKCkpCisgICAgICAgICAgICAgICAgbGF5ZXIuY29udGVu
dHMgPSAoaWQpYmFja2luZ1N0b3JlLT5zdXJmYWNlKCkuZ2V0KCk7CisgICAgICAgICAgICBlbHNl
CisgICAgICAgICAgICAgICAgbGF5ZXIuY29udGVudHMgPSAoaWQpYmFja2luZ1N0b3JlLT5pbWFn
ZSgpLmdldCgpOwogI2Vsc2UKLSAgICAgICAgICAgIEFTU0VSVCghcHJvcGVydGllcy5iYWNraW5n
U3RvcmUgfHwgIXByb3BlcnRpZXMuYmFja2luZ1N0b3JlLT5hY2NlbGVyYXRlc0RyYXdpbmcoKSk7
CisgICAgICAgICAgICBBU1NFUlQoIWJhY2tpbmdTdG9yZS0+YWNjZWxlcmF0ZXNEcmF3aW5nKCkp
OworICAgICAgICAgICAgbGF5ZXIuY29udGVudHMgPSAoaWQpYmFja2luZ1N0b3JlLT5pbWFnZSgp
LmdldCgpOwogI2VuZGlmCi0gICAgICAgIGxheWVyLmNvbnRlbnRzID0gcHJvcGVydGllcy5iYWNr
aW5nU3RvcmUgPyAoaWQpcHJvcGVydGllcy5iYWNraW5nU3RvcmUtPmltYWdlKCkuZ2V0KCkgOiBu
aWw7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgbGF5ZXIuY29udGVudHMgPSBuaWw7CiAg
ICAgfQogCiAgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXll
clRyZWVUcmFuc2FjdGlvbjo6RmlsdGVyc0NoYW5nZWQpCkBAIC0xODcsNCArMTkzLDYzIEBAIHZv
aWQgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXNUb0xheWVy
KENBTGF5ZXIgKmxheWVyLCBjb25zCiAgICAgICAgIHVwZGF0ZUN1c3RvbUFwcGVhcmFuY2UobGF5
ZXIsIHByb3BlcnRpZXMuY3VzdG9tQXBwZWFyYW5jZSk7CiB9CiAKK3ZvaWQgUmVtb3RlTGF5ZXJU
cmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3BlcnRpZXMoQ0FMYXllciAqbGF5ZXIsIGNvbnN0
IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMmIHByb3BlcnRpZXMs
IGNvbnN0IFJlbGF0ZWRMYXllck1hcCYgcmVsYXRlZExheWVycykKK3sKKyAgICBhcHBseVByb3Bl
cnRpZXNUb0xheWVyKGxheWVyLCBwcm9wZXJ0aWVzKTsKKworICAgIGlmIChwcm9wZXJ0aWVzLmNo
YW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246OkNoaWxkcmVuQ2hh
bmdlZCkgeworICAgICAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IGNoaWxkcmVuID0gYWRv
cHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5OnByb3BlcnRpZXMu
Y2hpbGRyZW4uc2l6ZSgpXSk7CisgICAgICAgIGZvciAoYXV0byYgY2hpbGQgOiBwcm9wZXJ0aWVz
LmNoaWxkcmVuKQorICAgICAgICAgICAgW2NoaWxkcmVuIGFkZE9iamVjdDpyZWxhdGVkTGF5ZXJz
LmdldChjaGlsZCldOworCisgICAgICAgIGxheWVyLnN1YmxheWVycyA9IGNoaWxkcmVuLmdldCgp
OworICAgIH0KKworICAgIGlmIChwcm9wZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb246Ok1hc2tMYXllckNoYW5nZWQpIHsKKyAgICAgICAgaWYgKCFw
cm9wZXJ0aWVzLm1hc2tMYXllcklEKQorICAgICAgICAgICAgbGF5ZXIubWFzayA9IG51bGxwdHI7
CisgICAgICAgIGVsc2UgeworI2lmIFBMQVRGT1JNKElPUykKKyAgICAgICAgICAgIFVJVmlldyAq
bWFza1ZpZXcgPSByZWxhdGVkTGF5ZXJzLmdldChwcm9wZXJ0aWVzLm1hc2tMYXllcklEKTsKKyAg
ICAgICAgICAgIC8vIEZJWE1FOiBuZWVkIHRvIGNoZWNrIHRoYXQgdGhlIG1hc2sgdmlldyBpcyBr
ZXB0IGFsaXZlLgorICAgICAgICAgICAgQVNTRVJUKCFtYXNrVmlldy5sYXllci5zdXBlcmxheWVy
KTsKKyAgICAgICAgICAgIGlmICghbWFza1ZpZXcubGF5ZXIuc3VwZXJsYXllcikKKyAgICAgICAg
ICAgICAgICBsYXllci5tYXNrID0gbWFza1ZpZXcubGF5ZXI7CisjZWxzZQorICAgICAgICAgICAg
Q0FMYXllciAqbWFza0xheWVyID0gcmVsYXRlZExheWVycy5nZXQocHJvcGVydGllcy5tYXNrTGF5
ZXJJRCk7CisgICAgICAgICAgICBBU1NFUlQoIW1hc2tMYXllci5zdXBlcmxheWVyKTsKKyAgICAg
ICAgICAgIGlmICghbWFza0xheWVyLnN1cGVybGF5ZXIpCisgICAgICAgICAgICAgICAgbGF5ZXIu
bWFzayA9IG1hc2tMYXllcjsKKyNlbmRpZgorICAgICAgICB9CisgICAgfQorfQorCisjaWYgUExB
VEZPUk0oSU9TKQordm9pZCBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJv
cGVydGllcyhVSVZpZXcgKnZpZXcsIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpM
YXllclByb3BlcnRpZXMmIHByb3BlcnRpZXMsIGNvbnN0IFJlbGF0ZWRMYXllck1hcCYgcmVsYXRl
ZExheWVycykKK3sKKyAgICBhcHBseVByb3BlcnRpZXNUb0xheWVyKHZpZXcubGF5ZXIsIHByb3Bl
cnRpZXMpOworCisgICAgaWYgKHByb3BlcnRpZXMuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVM
YXllclRyZWVUcmFuc2FjdGlvbjo6Q2hpbGRyZW5DaGFuZ2VkKSB7CisgICAgICAgIFJldGFpblB0
cjxOU011dGFibGVBcnJheT4gY2hpbGRyZW4gPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRXaXRoQ2FwYWNpdHk6cHJvcGVydGllcy5jaGlsZHJlbi5zaXplKCldKTsKKyAgICAg
ICAgZm9yIChhdXRvJiBjaGlsZCA6IHByb3BlcnRpZXMuY2hpbGRyZW4pCisgICAgICAgICAgICBb
Y2hpbGRyZW4gYWRkT2JqZWN0OnJlbGF0ZWRMYXllcnMuZ2V0KGNoaWxkKV07CisKKyAgICAgICAg
W3ZpZXcgc2V0U3Vidmlld3M6Y2hpbGRyZW4uZ2V0KCldOworICAgIH0KKworICAgIGlmIChwcm9w
ZXJ0aWVzLmNoYW5nZWRQcm9wZXJ0aWVzICYgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb246Ok1h
c2tMYXllckNoYW5nZWQpIHsKKyAgICAgICAgaWYgKCFwcm9wZXJ0aWVzLm1hc2tMYXllcklEKQor
ICAgICAgICAgICAgdmlldy5sYXllci5tYXNrID0gbnVsbHB0cjsKKyAgICAgICAgZWxzZSB7Cisg
ICAgICAgICAgICBVSVZpZXcgKm1hc2tWaWV3ID0gcmVsYXRlZExheWVycy5nZXQocHJvcGVydGll
cy5tYXNrTGF5ZXJJRCk7CisgICAgICAgICAgICAvLyBGSVhNRTogbmVlZCB0byBjaGVjayB0aGF0
IHRoZSBtYXNrIHZpZXcgaXMga2VwdCBhbGl2ZS4KKyAgICAgICAgICAgIEFTU0VSVCghbWFza1Zp
ZXcubGF5ZXIuc3VwZXJsYXllcik7CisgICAgICAgICAgICBpZiAoIW1hc2tWaWV3LmxheWVyLnN1
cGVybGF5ZXIpCisgICAgICAgICAgICAgICAgbWFza1ZpZXcubGF5ZXIubWFzayA9IG1hc2tWaWV3
LmxheWVyOworICAgICAgICB9CisgICAgfQorfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL0xheWVyUmVw
cmVzZW50YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9MYXllclJlcHJl
c2VudGF0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY4OGJjOWRjOGJhYWU5NzljNjlmMWJiNjM5ZDVhZDIw
YzQ1OWJhZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9MYXllclJlcHJlc2VudGF0aW9uLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
Zm5kZWYgTGF5ZXJSZXByZXNlbnRhdGlvbl9oCisjZGVmaW5lIExheWVyUmVwcmVzZW50YXRpb25f
aAorCisjaWYgUExBVEZPUk0oSU9TKQorCitPQkpDX0NMQVNTIENBTGF5ZXI7CitPQkpDX0NMQVNT
IFVJVmlldzsKK3R5cGVkZWYgVUlWaWV3IExheWVyT3JWaWV3OworCitDQUxheWVyICphc0xheWVy
KExheWVyT3JWaWV3ICopOworCisjZWxzZQorCitPQkpDX0NMQVNTIENBTGF5ZXI7Cit0eXBlZGVm
IENBTGF5ZXIgTGF5ZXJPclZpZXc7CisKK0NBTGF5ZXIgKmFzTGF5ZXIoTGF5ZXJPclZpZXcgKmxh
eWVyKQoreworICAgIHJldHVybiBsYXllcjsKK30KKworI2VuZGlmCisKKyNlbmRpZiAvLyBMYXll
clJlcHJlc2VudGF0aW9uX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
YWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4
IDBhYzE2ZTkzZTQyYmRlNzgwMmQyZWVmNzA5ZTVmMTFkOGE4YTcyZDcuLmI5NGQ5MGFhZmFkNTI0
NDFjNGY0ODBmOWQ4NzVjNzY3OWY2MWE5YWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9QYWdlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VD
bGllbnQuaApAQCAtMTc1LDggKzE3NSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVz
ZXRTZWN1cmVJbnB1dFN0YXRlKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlJbnB1dENv
bnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBt
YWtlRmlyc3RSZXNwb25kZXIoKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdSb290TGF5ZXIoQ0FMYXllciAqKSA9IDA7Ci0gICAgdmlydHVhbCBDQUxheWVy
ICphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKExheWVyT3JWaWV3ICop
ID0gMDsKKyAgICB2aXJ0dWFsIExheWVyT3JWaWV3ICphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9v
dExheWVyKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHRh
a2VWaWV3U25hcHNob3QoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHdoZWVsRXZlbnRXYXNOb3RI
YW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGNsZWFyQ3VzdG9tU3dpcGVWaWV3cygpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2Nyb2xsaW5nL1JlbW90ZVNjcm9s
bGluZ0Nvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IDI3NTdhYTcxYjczNjFhOWY3NTFmYzUyMmY3
OWZkMDM5OWQ4OGNjOTIuLjk0YzdhZWQyN2IzZGI2M2U4M2NkZmExNzJhNzdmZmNmN2NiNDAzZjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TY3JvbGxpbmcvUmVtb3RlU2Ny
b2xsaW5nQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1Njcm9sbGluZy9SZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5LmNwcApAQCAtODksNiAr
ODksNyBAQCB2b2lkIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk6OnVwZGF0ZVNjcm9s
bGluZ1RyZWUoY29uc3QgUmVtb3RlU2Nyb2xsaW5nQwogICAgIG1fc2Nyb2xsaW5nVHJlZS0+Y29t
bWl0TmV3VHJlZVN0YXRlKHN0YXRlVHJlZS5yZWxlYXNlKCkpOwogfQogCisjaWYgIVBMQVRGT1JN
KElPUykKIHZvaWQgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y29ubmVjdFN0YXRl
Tm9kZUxheWVycyhTY3JvbGxpbmdTdGF0ZVRyZWUmIHN0YXRlVHJlZSwgY29uc3QgUmVtb3RlTGF5
ZXJUcmVlSG9zdCYgbGF5ZXJUcmVlSG9zdCkKIHsKICAgICBmb3IgKGF1dG8mIGl0IDogc3RhdGVU
cmVlLm5vZGVNYXAoKSkgewpAQCAtMTI1LDYgKzEyNiw3IEBAIHZvaWQgUmVtb3RlU2Nyb2xsaW5n
Q29vcmRpbmF0b3JQcm94eTo6Y29ubmVjdFN0YXRlTm9kZUxheWVycyhTY3JvbGxpbmdTdGF0ZVRy
ZWUmCiAgICAgICAgIH0KICAgICB9CiB9CisjZW5kaWYKIAogYm9vbCBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvclByb3h5OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgZXZlbnQpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXgg
YmE4OWU4ZTRkMTljNmFiNmU5YmI3ZjFhZTFiMmNjYWIzYzE3MjE4MC4uZDI1NDBlZjMyMGFkM2Nk
Zjc0NDZhZWUxNGI4NDY4MzQ3MzU3MWZkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIkVkaXRvclN0YXRlLmgiCiAj
aW5jbHVkZSAiR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgogI2lu
Y2x1ZGUgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCisjaW5jbHVkZSAiTGF5
ZXJSZXByZXNlbnRhdGlvbi5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbmNs
dWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaCIKQEAgLTk0LDEwICs5NSw2IEBACiAjaW5jbHVkZSA8RXZhcy5o
PgogI2VuZGlmCiAKLSNpZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRlIDxXZWJDb3JlL1BsYXRm
b3JtTGF5ZXIuaD4KLSNlbmRpZgotCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIExvYWRlckNsaWVu
dDsKIGNsYXNzIFBvbGljeUNsaWVudDsKQEAgLTUyNyw4ICs1MjQsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBzaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoY29uc3QgV2ViTW91c2VFdmVu
dCYpOwogICAgIGJvb2wgYWNjZXB0c0ZpcnN0TW91c2UoaW50IGV2ZW50TnVtYmVyLCBjb25zdCBX
ZWJNb3VzZUV2ZW50Jik7CiAKLSAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290
TGF5ZXIoUGxhdGZvcm1MYXllciogcm9vdExheWVyKTsKLSAgICBQbGF0Zm9ybUxheWVyKiBhY2Nl
bGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3Q7CisgICAgdm9pZCBzZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nUm9vdExheWVyKExheWVyT3JWaWV3Kik7CisgICAgTGF5ZXJPclZpZXcq
IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBjb25zdDsKIAogI2lmIFVTRShBUFBL
SVQpCiAgICAgV0tWaWV3KiB3a1ZpZXcoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvTGF5ZXJSZXByZXNlbnRhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvTGF5ZXJSZXByZXNlbnRhdGlvbi5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zOGI1NjRh
YTU0MTExMmIyZmE4ZmZmNTI3ZTQ4OWYxZDdhYzJjODM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9MYXllclJlcHJlc2VudGF0aW9uLm1tCkBAIC0wLDAg
KzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkxheWVy
UmVwcmVzZW50YXRpb24uaCIKKyNpbXBvcnQgPFVJS2l0L1VJVmlldy5oPgorCisjaWYgUExBVEZP
Uk0oSU9TKQorQ0FMYXllciAqYXNMYXllcihMYXllck9yVmlldyAqdmlldykKK3sKKyAgICByZXR1
cm4gdmlldy5sYXllcjsKK30KKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5oCmluZGV4IDFhOWEwMTMzMjljMDM0MTU4ZDI1YzdkNzA3
ZGFkOTMyZTdlMjRkZTEuLmQ5YjRkZDQyY2I2M2FkOWQ2MjRmMjAzNmMwMTFjZjYwMWMxZjM3MGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9T
LmgKQEAgLTk0LDggKzk0LDggQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgZW50ZXJBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7
CiAgICAgdmlydHVhbCB2b2lkIGV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShj
b25zdCBMYXllclRyZWVDb250ZXh0Jikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIHNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoQ0FMYXllciAqKSBvdmVycmlkZTsKLSAgICB2
aXJ0dWFsIENBTGF5ZXIgKmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBjb25zdCBv
dmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RM
YXllcihMYXllck9yVmlldyAqKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIExheWVyT3JWaWV3ICph
Y2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBMYXllckhvc3RpbmdNb2RlIHZpZXdMYXllckhvc3RpbmdNb2RlKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gTGF5ZXJIb3N0aW5nTW9kZTo6T3V0T2ZQcm9jZXNzOyB9CiAKICAgICB2aXJ0dWFsIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiB0YWtlVmlld1NuYXBzaG90KCkgb3ZlcnJpZGU7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQppbmRleCA4
Yjg5NjE3ZTQxOWU4OTA2MWJmNzBmMmVlYTBkNGQ3ZGI3ZGIwY2RmLi5mOWU4MDEzYzY1NGFmYzE3
YmEwMWRmYzZmNWNjZDE1ZjhmOGJiZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KQEAgLTMxMywxMiArMzEzLDEyIEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExh
eWVyVHJlZUNvbnRleHQmKQogewogfQogCi12b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nUm9vdExheWVyKENBTGF5ZXIgKnJvb3RMYXllcikKK3ZvaWQgUGFnZUNs
aWVudEltcGw6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoTGF5ZXJPclZpZXcg
KnJvb3RMYXllcikKIHsKLSAgICBbbV9jb250ZW50VmlldyBfc2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ1Jvb3RMYXllcjpyb290TGF5ZXJdOworICAgIFttX2NvbnRlbnRWaWV3IF9zZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nUm9vdFZpZXc6cm9vdExheWVyXTsKIH0KIAotQ0FMYXllciAqUGFnZUNs
aWVudEltcGw6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBjb25zdAorTGF5ZXJP
clZpZXcgKlBhZ2VDbGllbnRJbXBsOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkg
Y29uc3QKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogICAgIHJldHVybiBudWxscHRyOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0
SU9TLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1vdGVMYXllclRyZWVIb3N0
SU9TLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjcxNzlhNDg2NTE5ODliZGQyOWU1NmQ0MDY5M2M5YjNjMjdmNDdl
OGYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1JlbW90
ZUxheWVyVHJlZUhvc3RJT1MubW0KQEAgLTAsMCArMSwxMTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1w
b3J0ICJjb25maWcuaCIKKworI2lmIFBMQVRGT1JNKElPUykKKworI2ltcG9ydCAiUmVtb3RlTGF5
ZXJUcmVlSG9zdC5oIgorCisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVDQUxheWVyRXh0cmFzLmg+
CisjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKworI2ltcG9ydCA8VUlLaXQvVUlW
aWV3Lmg+CisjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK0BpbnRlcmZhY2UgVUlWaWV3KFdLVmlld0ludGVybmFscykKKy0gKHZv
aWQpX2NyZWF0ZUxheWVyV2l0aEZyYW1lOihDR1JlY3QpZnJhbWU7CitAZW5kCisKK0BpbnRlcmZh
Y2UgQ0FMYXllcihXS0xheWVySW50ZXJuYWwpCistICh2b2lkKXNldENvbnRleHRJZDoodWludDMy
X3QpY29udGV4dElEOworQGVuZAorCitAaW50ZXJmYWNlIFdLVHJhbnNmb3JtVmlldyA6IFVJVmll
dworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tUcmFuc2Zvcm1WaWV3CisrIChDbGFzcylsYXll
ckNsYXNzCit7CisgICAgcmV0dXJuIFtDQVRyYW5zZm9ybUxheWVyIHNlbGZdOworfQorQGVuZAor
CitAaW50ZXJmYWNlIFdLUmVtb3RlVmlldyA6IFVJVmlldworQGVuZAorCitAaW1wbGVtZW50YXRp
b24gV0tSZW1vdGVWaWV3CistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhGcmFtZTooQ0dSZWN0KWZy
YW1lIGNvbnRleHRJRDoodWludDMyX3QpY29udGV4dElECit7CisgICAgaWYgKChzZWxmID0gW3N1
cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdKSkgeworICAgICAgICBbW3NlbGYgbGF5ZXJdIHNldENv
bnRleHRJZDpjb250ZXh0SURdOworICAgIH0KKyAgICAKKyAgICByZXR1cm4gc2VsZjsKK30KKwor
KyAoQ2xhc3MpbGF5ZXJDbGFzcworeworICAgIHJldHVybiBOU0NsYXNzRnJvbVN0cmluZyhAIkNB
TGF5ZXJIb3N0Iik7Cit9CitAZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitMYXllck9yVmll
dyAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzJiBwcm9wZXJ0aWVzKQoreworICAg
IFJldGFpblB0cjxMYXllck9yVmlldz4mIGxheWVyT3JWaWV3ID0gbV9sYXllcnMuYWRkKHByb3Bl
cnRpZXMubGF5ZXJJRCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOworCisgICAgQVNTRVJUKCFs
YXllck9yVmlldyk7CisKKyAgICBzd2l0Y2ggKHByb3BlcnRpZXMudHlwZSkgeworICAgIGNhc2Ug
UGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVMYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXll
cjo6TGF5ZXJUeXBlV2ViTGF5ZXI6CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlw
ZVJvb3RMYXllcjoKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlU2ltcGxlTGF5
ZXI6CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVkQmFja2luZ0xheWVy
OgorICAgIGNhc2UgUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVQYWdlVGlsZWRCYWNraW5nTGF5
ZXI6CisgICAgY2FzZSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVRpbGVkQmFja2luZ1RpbGVM
YXllcjoKKyAgICAgICAgbGF5ZXJPclZpZXcgPSBhZG9wdE5TKFtbVUlWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOkNHUmVjdFplcm9dKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQbGF0Zm9y
bUNBTGF5ZXI6OkxheWVyVHlwZVRyYW5zZm9ybUxheWVyOgorICAgICAgICBsYXllck9yVmlldyA9
IGFkb3B0TlMoW1tXS1RyYW5zZm9ybVZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVy
b10pOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBl
Q3VzdG9tOgorICAgICAgICBpZiAoIW1faXNEZWJ1Z0xheWVyVHJlZUhvc3QpCisgICAgICAgICAg
ICBsYXllck9yVmlldyA9IGFkb3B0TlMoW1tXS1JlbW90ZVZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0WmVybyBjb250ZXh0SUQ6cHJvcGVydGllcy5ob3N0aW5nQ29udGV4dElEXSk7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxheWVyT3JWaWV3ID0gYWRvcHROUyhbW1VJVmlldyBh
bGxvY10gaW5pdF0pOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogZG8gdGhyb3VnaCB0aGUg
dmlldy4KKyAgICBbW2xheWVyT3JWaWV3IGxheWVyXSB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOwor
CisgICAgcmV0dXJuIGxheWVyT3JWaWV3LmdldCgpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94
eUlPUy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4wNTkyOGNjNjNhYzI0ZGVkOWM4NjMzMDkzYTdjYjBhZTcyYTky
ODYzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9SZW1v
dGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tCkBAIC0wLDAgKzEsODQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlU2Nyb2xsaW5nQ29v
cmRpbmF0b3JQcm94eS5oIgorCisjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykKKworI2luY2x1
ZGUgIkxheWVyUmVwcmVzZW50YXRpb24uaCIKKyNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVIb3N0
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxpbmdTdGF0ZVRyZWUuaD4KKyNpbmNsdWRlIDxV
SUtpdC9VSVZpZXcuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitzdGF0aWMgTGF5ZXJSZXByZXNlbnRhdGlvbiBsYXllclJlcHJlc2VudGF0aW9u
RnJvbUxheWVyT3JWaWV3KExheWVyT3JWaWV3ICpsYXllck9yVmlldykKK3sKKyAgICByZXR1cm4g
TGF5ZXJSZXByZXNlbnRhdGlvbihsYXllck9yVmlldy5sYXllcik7Cit9CisKK3ZvaWQgUmVtb3Rl
U2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eTo6Y29ubmVjdFN0YXRlTm9kZUxheWVycyhTY3JvbGxp
bmdTdGF0ZVRyZWUmIHN0YXRlVHJlZSwgY29uc3QgUmVtb3RlTGF5ZXJUcmVlSG9zdCYgbGF5ZXJU
cmVlSG9zdCkKK3sKKyAgICBmb3IgKGF1dG8mIGl0IDogc3RhdGVUcmVlLm5vZGVNYXAoKSkgewor
ICAgICAgICBTY3JvbGxpbmdTdGF0ZU5vZGUqIGN1cnJOb2RlID0gaXQudmFsdWU7CisgICAgICAg
IHN3aXRjaCAoY3Vyck5vZGUtPm5vZGVUeXBlKCkpIHsKKyAgICAgICAgY2FzZSBTY3JvbGxpbmdO
b2RlOiB7CisgICAgICAgICAgICBTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGUqIHNjcm9sbGlu
Z1N0YXRlTm9kZSA9IHRvU2Nyb2xsaW5nU3RhdGVTY3JvbGxpbmdOb2RlKGN1cnJOb2RlKTsKKyAg
ICAgICAgICAgIAorICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS0+aGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQorICAgICAgICAgICAg
ICAgIHNjcm9sbGluZ1N0YXRlTm9kZS0+c2V0TGF5ZXIobGF5ZXJSZXByZXNlbnRhdGlvbkZyb21M
YXllck9yVmlldyhsYXllclRyZWVIb3N0LmdldExheWVyKHNjcm9sbGluZ1N0YXRlTm9kZS0+bGF5
ZXIoKSkpKTsKKworICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS0+aGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6U2Nyb2xsZWRDb250ZW50c0xh
eWVyKSkKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdTdGF0ZU5vZGUtPnNldFNjcm9sbGVkQ29u
dGVudHNMYXllcihsYXllclJlcHJlc2VudGF0aW9uRnJvbUxheWVyT3JWaWV3KGxheWVyVHJlZUhv
c3QuZ2V0TGF5ZXIoc2Nyb2xsaW5nU3RhdGVOb2RlLT5zY3JvbGxlZENvbnRlbnRzTGF5ZXIoKSkp
KTsKKworICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1N0YXRlTm9kZS0+aGFzQ2hhbmdlZFByb3Bl
cnR5KFNjcm9sbGluZ1N0YXRlU2Nyb2xsaW5nTm9kZTo6Q291bnRlclNjcm9sbGluZ0xheWVyKSkK
KyAgICAgICAgICAgICAgICBzY3JvbGxpbmdTdGF0ZU5vZGUtPnNldENvdW50ZXJTY3JvbGxpbmdM
YXllcihsYXllclJlcHJlc2VudGF0aW9uRnJvbUxheWVyT3JWaWV3KGxheWVyVHJlZUhvc3QuZ2V0
TGF5ZXIoc2Nyb2xsaW5nU3RhdGVOb2RlLT5jb3VudGVyU2Nyb2xsaW5nTGF5ZXIoKSkpKTsKKwor
ICAgICAgICAgICAgLy8gRklYTUU6IHdlIHNob3VsZCBuZXZlciBoYXZlIGhlYWRlciBhbmQgZm9v
dGVyIGxheWVycyBjb21pbmcgZnJvbSB0aGUgV2ViUHJvY2Vzcy4KKyAgICAgICAgICAgIGlmIChz
Y3JvbGxpbmdTdGF0ZU5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0eShTY3JvbGxpbmdTdGF0ZVNjcm9s
bGluZ05vZGU6OkhlYWRlckxheWVyKSkKKyAgICAgICAgICAgICAgICBzY3JvbGxpbmdTdGF0ZU5v
ZGUtPnNldEhlYWRlckxheWVyKGxheWVyUmVwcmVzZW50YXRpb25Gcm9tTGF5ZXJPclZpZXcobGF5
ZXJUcmVlSG9zdC5nZXRMYXllcihzY3JvbGxpbmdTdGF0ZU5vZGUtPmhlYWRlckxheWVyKCkpKSk7
CisKKyAgICAgICAgICAgIGlmIChzY3JvbGxpbmdTdGF0ZU5vZGUtPmhhc0NoYW5nZWRQcm9wZXJ0
eShTY3JvbGxpbmdTdGF0ZVNjcm9sbGluZ05vZGU6OkZvb3RlckxheWVyKSkKKyAgICAgICAgICAg
ICAgICBzY3JvbGxpbmdTdGF0ZU5vZGUtPnNldEZvb3RlckxheWVyKGxheWVyUmVwcmVzZW50YXRp
b25Gcm9tTGF5ZXJPclZpZXcobGF5ZXJUcmVlSG9zdC5nZXRMYXllcihzY3JvbGxpbmdTdGF0ZU5v
ZGUtPmZvb3RlckxheWVyKCkpKSk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQorICAg
ICAgICBjYXNlIEZpeGVkTm9kZToKKyAgICAgICAgICAgIGlmIChjdXJyTm9kZS0+aGFzQ2hhbmdl
ZFByb3BlcnR5KFNjcm9sbGluZ1N0YXRlTm9kZTo6U2Nyb2xsTGF5ZXIpKQorICAgICAgICAgICAg
ICAgIGN1cnJOb2RlLT5zZXRMYXllcihsYXllclJlcHJlc2VudGF0aW9uRnJvbUxheWVyT3JWaWV3
KGxheWVyVHJlZUhvc3QuZ2V0TGF5ZXIoY3Vyck5vZGUtPmxheWVyKCkpKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBTdGlja3lOb2RlOgorICAgICAgICAgICAgaWYgKGN1cnJO
b2RlLT5oYXNDaGFuZ2VkUHJvcGVydHkoU2Nyb2xsaW5nU3RhdGVOb2RlOjpTY3JvbGxMYXllcikp
CisgICAgICAgICAgICAgICAgY3Vyck5vZGUtPnNldExheWVyKGxheWVyUmVwcmVzZW50YXRpb25G
cm9tTGF5ZXJPclZpZXcobGF5ZXJUcmVlSG9zdC5nZXRMYXllcihjdXJyTm9kZS0+bGF5ZXIoKSkp
KTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CisgICAgfQorfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCmluZGV4IDVlOTdiNjMxYmJj
MjYyY2M2NDZhYzBkZjUzOTEzNGIzODY2YmY3MjAuLmE3NDgzNTU2OTgwNzhjODliMDk1NGQ2Mzcw
ZjRjY2E1OWZmMjczZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlldy5oCkBAIC03Nyw3ICs3Nyw3IEBAIHN0cnVjdCBXZWJQYWdlQ29uZmlndXJhdGlvbjsK
IC0gKHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk+KV9jcmVhdGVEcmF3
aW5nQXJlYVByb3h5OwogLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQ7CiAtICh2b2lkKV9kaWRSZWxh
dW5jaFByb2Nlc3M7Ci0tICh2b2lkKV9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVy
OihDQUxheWVyICopcm9vdExheWVyOworLSAodm9pZClfc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z1Jvb3RWaWV3OihVSVZpZXcgKilyb290VmlldzsKIAogLSAodm9pZClfZGlkQ29tbWl0TG9hZEZv
ck1haW5GcmFtZTsKIC0gKHZvaWQpX2RpZENvbW1pdExheWVyVHJlZTooY29uc3QgV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYpbGF5ZXJUcmVlVHJhbnNhY3Rpb247CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0KaW5kZXggMDA0NDdhNDNk
YjA2NDgyMmY5YTkzNGJjZTEzMWI0ZWIxYzZjNDIwMS4uNzk5Nzk4MmU3ZDU3ZTQxZDFiYWNlNTIx
YWU1NjI5ODkzZTc4YzBkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5tbQpAQCAtMjYwLDkgKzI2MCwxMiBAQCAtICh2b2lkKV9kaWRDb21taXRMYXll
clRyZWU6KGNvbnN0IFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mKWxheWVyVHJl
ZQogICAgICAgICBbX2RlbGVnYXRlIGNvbnRlbnRWaWV3OnNlbGYgZGlkQ29tbWl0TGF5ZXJUcmVl
OmxheWVyVHJlZVRyYW5zYWN0aW9uXTsKIH0KIAotLSAodm9pZClfc2V0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ1Jvb3RMYXllcjooQ0FMYXllciAqKXJvb3RMYXllcgorLSAodm9pZClfc2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ1Jvb3RWaWV3OihVSVZpZXcgKilyb290VmlldwogewotICAgIFtbX3Jv
b3RDb250ZW50VmlldyBsYXllcl0gc2V0U3VibGF5ZXJzOkBbcm9vdExheWVyXV07CisgICAgZm9y
IChVSVZpZXcqIHN1YnZpZXcgaW4gW19yb290Q29udGVudFZpZXcgc3Vidmlld3NdKQorICAgICAg
ICBbc3VidmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKworICAgIFtfcm9vdENvbnRlbnRWaWV3
IGFkZFN1YnZpZXc6cm9vdFZpZXddOwogfQogCiAtICh2b2lkKV9kZWNpZGVQb2xpY3lGb3JHZW9s
b2NhdGlvblJlcXVlc3RGcm9tT3JpZ2luOihXZWJTZWN1cml0eU9yaWdpbiYpb3JpZ2luIGZyYW1l
OihXZWJGcmFtZVByb3h5JilmcmFtZSByZXF1ZXN0OihHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1
ZXN0UHJveHkmKXBlcm1pc3Npb25SZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCmluZGV4IDRlNzIxMzU2MzNlNmVmYWI2OTNkNDczOWFl
YThiNzI2ZDVmZjhhOGEuLmE2YTc1NjU1MDI5MmU3NjRlMWM1ODZiNWQwZGU2MDUyYjA1ZDk5MTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1t
CkBAIC01MTQsNyArNTE0LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om9wZW5QREZGcm9tVGVtcG9y
YXJ5Rm9sZGVyV2l0aE5hdGl2ZUFwcGxpY2F0aW9uKGNvbnN0IFN0cmluZyYKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6c2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ1Jvb3RMYXllcihQbGF0Zm9ybUxheWVyKiByb290TGF5ZXIpCit2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihMYXllck9yVmlldyogcm9vdExh
eWVyKQogewogICAgIG1fcGFnZUNsaWVudC5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExh
eWVyKHJvb3RMYXllcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDE2Njc5NzRmNTU3YWM5ZjQwMDI3MmI4Y2ViZTMyYjc1YWZi
OGRkZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
Y3BwCisrKyAvZGV2L251bGwKQEAgLTEsMTE1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmgi
Ci0KLSNpZiBQTEFURk9STShJT1MpCi0KLSNpbmNsdWRlICJEcmF3aW5nQXJlYVByb3h5LmgiCi0j
aW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIgotI2luY2x1ZGUgIlJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCi0j
aW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlck1lc3NhZ2VzLmgiCi0jaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5TWVzc2FnZXMuaCIKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotICAgIAotUGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFn
ZSkKLXsKLSAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eShwYWdlKSk7Ci19Ci0KLVdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6V2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKLSAgICA6IG1fcGFn
ZSgmcGFnZSkKLSAgICAsIG1fZW50ZXJGdWxsc2NyZWVuQWZ0ZXJWaWRlb0xheWVyVW5wYXJlbnRl
ZFRyYW5zYWN0aW9uKGZhbHNlKQotICAgICwgbV92aWRlb0xheWVySUQoMCkKLXsKLSAgICBtX3Bh
Z2UtPnByb2Nlc3MoKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPnBhZ2VJRCgp
LCAqdGhpcyk7Ci0gICAgc2V0V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwodGhpcyk7Ci19Ci0KLVdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6fldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eSgpCi17Ci0gICAgbV9wYWdlLT5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSwgbV9wYWdlLT5wYWdlSUQoKSk7Ci19Ci0KLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5OjpkaWRDb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNh
Y3Rpb24mIGxheWVyVHJlZVRyYW5zYWN0aW9uKQotewotICAgIGlmIChtX2VudGVyRnVsbHNjcmVl
bkFmdGVyVmlkZW9MYXllclVucGFyZW50ZWRUcmFuc2FjdGlvbiAmJiBsYXllclRyZWVUcmFuc2Fj
dGlvbi5pc1ZpZGVvTGF5ZXJJRFBlbmRpbmdGdWxsc2NyZWVuKG1fdmlkZW9MYXllcklEKSkgewot
ICAgICAgICBtX2VudGVyRnVsbHNjcmVlbkFmdGVyVmlkZW9MYXllclVucGFyZW50ZWRUcmFuc2Fj
dGlvbiA9IGZhbHNlOwotICAgICAgICBXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZh
Y2VBVktpdDo6ZW50ZXJGdWxsc2NyZWVuKCk7Ci0gICAgfQotfQotCi12b2lkIFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6c2V0VmlkZW9MYXllcklEKEdyYXBoaWNzTGF5ZXI6OlBsYXRm
b3JtTGF5ZXJJRCB2aWRlb0xheWVySUQpCi17Ci0gICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eSogcmVtb3RlRHJhd2luZ0FyZWFQcm94eSA9IHRvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eShtX3BhZ2UtPmRyYXdpbmdBcmVhKCkpOwotICAgIHNldFZpZGVvTGF5ZXIocmVt
b3RlRHJhd2luZ0FyZWFQcm94eS0+cmVtb3RlTGF5ZXJUcmVlSG9zdCgpLmdldExheWVyKHZpZGVv
TGF5ZXJJRCkpOwotICAgIG1fdmlkZW9MYXllcklEID0gdmlkZW9MYXllcklEOwotICAgIG1fZW50
ZXJGdWxsc2NyZWVuQWZ0ZXJWaWRlb0xheWVyVW5wYXJlbnRlZFRyYW5zYWN0aW9uID0gdHJ1ZTsK
LX0KLQotdm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OmVudGVyRnVsbHNjcmVl
bigpCi17Ci19Ci0gICAgCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cmVx
dWVzdEV4aXRGdWxsU2NyZWVuKCkKLXsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXI6OlJlcXVlc3RFeGl0RnVsbFNjcmVlbigpLCBtX3BhZ2UtPnBh
Z2VJRCgpKTsKLX0KLSAgICAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpw
bGF5KCkKLXsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXI6OlBsYXkoKSwgbV9wYWdlLT5wYWdlSUQoKSk7Ci19Ci0gICAgCi12b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6cGF1c2UoKQotewotICAgIG1fcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UGF1c2UoKSwgbV9wYWdlLT5wYWdlSUQo
KSk7Ci19Ci0gICAgCi12b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6dG9nZ2xl
UGxheVN0YXRlKCkKLXsKLSAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXI6OlRvZ2dsZVBsYXlTdGF0ZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKLX0KLSAg
ICAKLXZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpzZWVrVG9UaW1lKGRvdWJs
ZSB0aW1lKQotewotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlcjo6U2Vla1RvVGltZSh0aW1lKSwgbV9wYWdlLT5wYWdlSUQoKSk7Ci19Ci0gICAgCi12
b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRXhpdEZ1bGxzY3JlZW4oKQot
ewotICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6
RGlkRXhpdEZ1bGxzY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7Ci19Ci0KLSAgICAKLX0gLy8g
bmFtZXNwYWNlIFdlYktpdAotCi0jZW5kaWYgLy8gUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYlZpZGVvRnVsbHNjcmVlbk1h
bmFnZXJQcm94eS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hODE0ZTAyYjhjODYyOWI0ZjQ3MTk3NzIxYmY2ZTI2
MTMwZGU3MjdjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW0KQEAgLTAsMCArMSwxMTkgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5LmgiCisKKyNpZiBQTEFURk9STShJT1MpCisKKyNpbmNsdWRlICJEcmF3
aW5nQXJlYVByb3h5LmgiCisjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5oIgorI2luY2x1ZGUgIlJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmgiCisjaW5jbHVkZSAi
V2ViUGFnZVByb3h5LmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAi
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlck1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlIDxVSUtpdC9VSVZpZXcu
aD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworICAg
IAorUGFzc1JlZlB0cjxXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk+IFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eTo6Y3JlYXRlKFdlYlBhZ2VQcm94eSYgcGFnZSkKK3sKKyAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eShwYWdlKSk7
Cit9CisKK1dlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6V2ViVmlkZW9GdWxsc2NyZWVu
TWFuYWdlclByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IG1fcGFnZSgmcGFnZSkKKyAg
ICAsIG1fZW50ZXJGdWxsc2NyZWVuQWZ0ZXJWaWRlb0xheWVyVW5wYXJlbnRlZFRyYW5zYWN0aW9u
KGZhbHNlKQorICAgICwgbV92aWRlb0xheWVySUQoMCkKK3sKKyAgICBtX3BhZ2UtPnByb2Nlc3Mo
KS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpLCAqdGhpcyk7Cisg
ICAgc2V0V2ViVmlkZW9GdWxsc2NyZWVuTW9kZWwodGhpcyk7Cit9CisKK1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eTo6fldlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eSgpCit7Cisg
ICAgbV9wYWdlLT5wcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdl
LT5wYWdlSUQoKSk7Cit9CisKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojpk
aWRDb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24mIGxheWVy
VHJlZVRyYW5zYWN0aW9uKQoreworICAgIGlmIChtX2VudGVyRnVsbHNjcmVlbkFmdGVyVmlkZW9M
YXllclVucGFyZW50ZWRUcmFuc2FjdGlvbiAmJiBsYXllclRyZWVUcmFuc2FjdGlvbi5pc1ZpZGVv
TGF5ZXJJRFBlbmRpbmdGdWxsc2NyZWVuKG1fdmlkZW9MYXllcklEKSkgeworICAgICAgICBtX2Vu
dGVyRnVsbHNjcmVlbkFmdGVyVmlkZW9MYXllclVucGFyZW50ZWRUcmFuc2FjdGlvbiA9IGZhbHNl
OworICAgICAgICBXZWJDb3JlOjpXZWJWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VBVktpdDo6ZW50
ZXJGdWxsc2NyZWVuKCk7CisgICAgfQorfQorCit2b2lkIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFn
ZXJQcm94eTo6c2V0VmlkZW9MYXllcklEKEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCB2
aWRlb0xheWVySUQpCit7CisgICAgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSogcmVt
b3RlRHJhd2luZ0FyZWFQcm94eSA9IHRvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSht
X3BhZ2UtPmRyYXdpbmdBcmVhKCkpOworCisgICAgVUlWaWV3ICp2aWRlb1ZpZXcgPSByZW1vdGVE
cmF3aW5nQXJlYVByb3h5LT5yZW1vdGVMYXllclRyZWVIb3N0KCkuZ2V0TGF5ZXIodmlkZW9MYXll
cklEKTsKKyAgICBzZXRWaWRlb0xheWVyKHZpZGVvVmlldy5sYXllcik7CisgICAgCisgICAgbV92
aWRlb0xheWVySUQgPSB2aWRlb0xheWVySUQ7CisgICAgbV9lbnRlckZ1bGxzY3JlZW5BZnRlclZp
ZGVvTGF5ZXJVbnBhcmVudGVkVHJhbnNhY3Rpb24gPSB0cnVlOworfQorCit2b2lkIFdlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eTo6ZW50ZXJGdWxsc2NyZWVuKCkKK3sKK30KKyAgICAKK3Zv
aWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OjpyZXF1ZXN0RXhpdEZ1bGxTY3JlZW4o
KQoreworICAgIG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdl
cjo6UmVxdWVzdEV4aXRGdWxsU2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAor
dm9pZCBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnBsYXkoKQoreworICAgIG1fcGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6UGxheSgpLCBtX3Bh
Z2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5OjpwYXVzZSgpCit7CisgICAgbV9wYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyOjpQYXVzZSgpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKK3ZvaWQg
V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Ojp0b2dnbGVQbGF5U3RhdGUoKQoreworICAg
IG1fcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlcjo6VG9nZ2xl
UGxheVN0YXRlKCksIG1fcGFnZS0+cGFnZUlEKCkpOworfQorICAgIAordm9pZCBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHk6OnNlZWtUb1RpbWUoZG91YmxlIHRpbWUpCit7CisgICAgbV9w
YWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpTZWVrVG9UaW1l
KHRpbWUpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKyAgICAKK3ZvaWQgV2ViVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbHNjcmVlbigpCit7CisgICAgbV9wYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyOjpEaWRFeGl0RnVsbHNjcmVlbigp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKK30KKworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggMWQxNDRkMDg3ZTI0YTVlYTdlNGExNTg1YmVkMTA1ZjEw
YzY1MTJhOS4uNzIxYWY1NjRhNjg3Mzk4ZDAxMWZmYTI5OTJhZGYzMmIwMTczMWE2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaApAQCAtNzEsOCAr
NzEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1Zpc3VhbGx5SWRsZSgpOwogICAg
IHZpcnR1YWwgTGF5ZXJIb3N0aW5nTW9kZSB2aWV3TGF5ZXJIb3N0aW5nTW9kZSgpIG92ZXJyaWRl
OwogICAgIHZpcnR1YWwgQ29sb3JTcGFjZURhdGEgY29sb3JTcGFjZSgpIG92ZXJyaWRlOwotICAg
IHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKENBTGF5ZXIg
Kikgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCBDQUxheWVyICphY2NlbGVyYXRlZENvbXBvc2l0aW5n
Um9vdExheWVyKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHNldEFjY2VsZXJh
dGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoTGF5ZXJPclZpZXcgKikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCBMYXllck9yVmlldyAqYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0
IG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRFeGl0KCk7CiAgICAgdmly
dHVhbCB2b2lkIHBhZ2VDbG9zZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRl
eCA2ZDU2ZjEwYjM1OWE3MDViZGUzMWVhODU3YjJmMmZiNGEyYjg1YTVhLi43YTQzNDhmMzZhN2Ix
MTUzOWNhZjJjNWMwZDQ1OTExYTc0YTI0MjVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1tCkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Ojpjb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKICAgICAgICAg
ZmxvYXQgc2NhbGUgPSBpbmRpY2F0b3JTY2FsZShsYXllclRyZWVUcmFuc2FjdGlvbi5jb250ZW50
c1NpemUoKSk7CiAgICAgICAgIGJvb2wgcm9vdExheWVyQ2hhbmdlZCA9IG1fZGVidWdJbmRpY2F0
b3JMYXllclRyZWVIb3N0LT51cGRhdGVMYXllclRyZWUobGF5ZXJUcmVlVHJhbnNhY3Rpb24sIHNj
YWxlKTsKICAgICAgICAgdXBkYXRlRGVidWdJbmRpY2F0b3IobGF5ZXJUcmVlVHJhbnNhY3Rpb24u
Y29udGVudHNTaXplKCksIHJvb3RMYXllckNoYW5nZWQsIHNjYWxlKTsKLSAgICAgICAgbV9kZWJ1
Z0luZGljYXRvckxheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpLm5hbWUgPSBAIkluZGljYXRvciBo
b3N0IHJvb3QiOworICAgICAgICBhc0xheWVyKG1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0
LT5yb290TGF5ZXIoKSkubmFtZSA9IEAiSW5kaWNhdG9yIGhvc3Qgcm9vdCI7CiAgICAgfQogfQog
CkBAIC0xODAsNyArMTgwLDcgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcigpCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHk6OnVwZGF0ZURlYnVnSW5kaWNhdG9yKEludFNpemUgY29udGVudHNTaXplLCBib29sIHJv
b3RMYXllckNoYW5nZWQsIGZsb2F0IHNjYWxlKQogewogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSB0
aGUgbGFzdCBzdWJsYXllci4KLSAgICBDQUxheWVyICpyb290TGF5ZXIgPSBtX3JlbW90ZUxheWVy
VHJlZUhvc3Qucm9vdExheWVyKCk7CisgICAgQ0FMYXllciAqcm9vdExheWVyID0gYXNMYXllciht
X3JlbW90ZUxheWVyVHJlZUhvc3Qucm9vdExheWVyKCkpOwogICAgIFttX3RpbGVNYXBIb3N0TGF5
ZXIgcmVtb3ZlRnJvbVN1cGVybGF5ZXJdOwogICAgIFtyb290TGF5ZXIgYWRkU3VibGF5ZXI6bV90
aWxlTWFwSG9zdExheWVyLmdldCgpXTsKIApAQCAtMTkzLDcgKzE5Myw3IEBAIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlRGVidWdJbmRpY2F0b3IoSW50U2l6ZSBj
b250ZW50c1NpemUsCiAKICAgICBpZiAocm9vdExheWVyQ2hhbmdlZCkgewogICAgICAgICBbbV90
aWxlTWFwSG9zdExheWVyIHNldFN1YmxheWVyczpAW11dOwotICAgICAgICBbbV90aWxlTWFwSG9z
dExheWVyIGFkZFN1YmxheWVyOm1fZGVidWdJbmRpY2F0b3JMYXllclRyZWVIb3N0LT5yb290TGF5
ZXIoKV07CisgICAgICAgIFttX3RpbGVNYXBIb3N0TGF5ZXIgYWRkU3VibGF5ZXI6YXNMYXllciht
X2RlYnVnSW5kaWNhdG9yTGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCkpXTsKICAgICAgICAgW21f
dGlsZU1hcEhvc3RMYXllciBhZGRTdWJsYXllcjptX2V4cG9zZWRSZWN0SW5kaWNhdG9yTGF5ZXIu
Z2V0KCldOwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9SZW1vdGVMYXllclRyZWVIb3N0LmgKaW5kZXggNDhhYzA4MWQ0ZTE3ZDcxMWIwYWE4ODQzYjIz
ZDBmY2RkOGZiNDBiNi4uYTkyZDgzMTQ3MjFlOTQwZGE5ZDViMjJkMzdkZDE0ZDkyNGVjM2VhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVI
b3N0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1vdGVMYXllclRyZWVI
b3N0LmgKQEAgLTI2LDEzICsyNiwxMiBAQAogI2lmbmRlZiBSZW1vdGVMYXllclRyZWVIb3N0X2gK
ICNkZWZpbmUgUmVtb3RlTGF5ZXJUcmVlSG9zdF9oCiAKKyNpbmNsdWRlICJMYXllclJlcHJlc2Vu
dGF0aW9uLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCIKICNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtQ0FMYXllci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCi1PQkpDX0NMQVNTIENBTGF5ZXI7Ci0KIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC00Miw4ICs0MSw4IEBA
IHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW1vdGVMYXllclRyZWVIb3N0KCk7CiAgICAgdmlydHVh
bCB+UmVtb3RlTGF5ZXJUcmVlSG9zdCgpOwogCi0gICAgQ0FMYXllciAqZ2V0TGF5ZXIoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklEKSBjb25zdDsKLSAgICBDQUxheWVyICpy
b290TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RMYXllcjsgfQorICAgIExheWVyT3JWaWV3
ICpnZXRMYXllcihXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQpIGNvbnN0
OworICAgIExheWVyT3JWaWV3ICpyb290TGF5ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RMYXll
cjsgfQogCiAgICAgLy8gUmV0dXJucyB0cnVlIGlmIHRoZSByb290IGxheWVyIGNoYW5nZWQuCiAg
ICAgYm9vbCB1cGRhdGVMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24m
LCBmbG9hdCBpbmRpY2F0b3JTY2FsZUZhY3RvciAgPSAxKTsKQEAgLTUyLDEwICs1MSwxMCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0RlYnVnTGF5ZXJUcmVlSG9zdCgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNEZWJ1Z0xheWVyVHJlZUhvc3Q7IH0KIAogcHJpdmF0ZToKLSAgICBDQUxheWVyICpjcmVhdGVM
YXllcihjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6TGF5ZXJDcmVhdGlvblByb3Bl
cnRpZXMmKTsKKyAgICBMYXllck9yVmlldyAqY3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWVyQ3JlYXRpb25Qcm9wZXJ0aWVzJik7CiAKLSAgICBDQUxheWVy
ICptX3Jvb3RMYXllcjsKLSAgICBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRm
b3JtTGF5ZXJJRCwgUmV0YWluUHRyPENBTGF5ZXI+PiBtX2xheWVyczsKKyAgICBMYXllck9yVmll
dyAqbV9yb290TGF5ZXI7CisgICAgSGFzaE1hcDxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0
Zm9ybUxheWVySUQsIFJldGFpblB0cjxMYXllck9yVmlldz4+IG1fbGF5ZXJzOwogICAgIGJvb2wg
bV9pc0RlYnVnTGF5ZXJUcmVlSG9zdDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQppbmRleCAyNTc5ZGQzMTEzMjM2NmRj
NWVhOGU2YWFkZmRhMDhmNDkzZjc4YTZlLi5kOWYwYTNjZThlYzlmNWQxMDg4NTljMGQ3YjFmNmFj
ODQyZjllOTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1JlbW90
ZUxheWVyVHJlZUhvc3QubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9SZW1v
dGVMYXllclRyZWVIb3N0Lm1tCkBAIC02MCw3ICs2MCw3IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVl
SG9zdDo6dXBkYXRlTGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0
cmFuCiAgICAgICAgIGNyZWF0ZUxheWVyKGNyZWF0ZWRMYXllcik7CiAKICAgICBib29sIHJvb3RM
YXllckNoYW5nZWQgPSBmYWxzZTsKLSAgICBDQUxheWVyICpyb290TGF5ZXIgPSBnZXRMYXllcih0
cmFuc2FjdGlvbi5yb290TGF5ZXJJRCgpKTsKKyAgICBMYXllck9yVmlldyAqcm9vdExheWVyID0g
Z2V0TGF5ZXIodHJhbnNhY3Rpb24ucm9vdExheWVySUQoKSk7CiAgICAgaWYgKG1fcm9vdExheWVy
ICE9IHJvb3RMYXllcikgewogICAgICAgICBtX3Jvb3RMYXllciA9IHJvb3RMYXllcjsKICAgICAg
ICAgcm9vdExheWVyQ2hhbmdlZCA9IHRydWU7CkBAIC03MCw3ICs3MCw3IEBAIGJvb2wgUmVtb3Rl
TGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5z
YWN0aW9uJiB0cmFuCiAgICAgICAgIGF1dG8gbGF5ZXJJRCA9IGNoYW5nZWRMYXllci5rZXk7CiAg
ICAgICAgIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMm
IHByb3BlcnRpZXMgPSAqY2hhbmdlZExheWVyLnZhbHVlOwogCi0gICAgICAgIENBTGF5ZXIgKmxh
eWVyID0gZ2V0TGF5ZXIobGF5ZXJJRCk7CisgICAgICAgIExheWVyT3JWaWV3ICpsYXllciA9IGdl
dExheWVyKGxheWVySUQpOwogICAgICAgICBBU1NFUlQobGF5ZXIpOwogCiAgICAgICAgIFJlbW90
ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6UmVsYXRlZExheWVyTWFwIHJlbGF0ZWRMYXllcnM7
CkBAIC04OCw5ICs4OCw5IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJU
cmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uJiB0cmFuCiAgICAgICAgICAgICBp
ZiAocHJvcGVydGllc0NvcHkuY2hhbmdlZFByb3BlcnRpZXMgJiBSZW1vdGVMYXllclRyZWVUcmFu
c2FjdGlvbjo6Qm9yZGVyV2lkdGhDaGFuZ2VkKQogICAgICAgICAgICAgICAgIHByb3BlcnRpZXND
b3B5LmJvcmRlcldpZHRoICo9IDEgLyBpbmRpY2F0b3JTY2FsZUZhY3RvcjsKICAgICAgICAgICAg
IAotICAgICAgICAgICAgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjphcHBseVByb3Bl
cnRpZXNUb0xheWVyKGxheWVyLCBwcm9wZXJ0aWVzQ29weSwgcmVsYXRlZExheWVycyk7CisgICAg
ICAgICAgICBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhs
YXllciwgcHJvcGVydGllc0NvcHksIHJlbGF0ZWRMYXllcnMpOwogICAgICAgICB9IGVsc2UKLSAg
ICAgICAgICAgIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGllcjo6YXBwbHlQcm9wZXJ0aWVz
VG9MYXllcihsYXllciwgcHJvcGVydGllcywgcmVsYXRlZExheWVycyk7CisgICAgICAgICAgICBS
ZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhsYXllciwgcHJv
cGVydGllcywgcmVsYXRlZExheWVycyk7CiAgICAgfQogCiAgICAgZm9yIChhdXRvIGRlc3Ryb3ll
ZExheWVyIDogdHJhbnNhY3Rpb24uZGVzdHJveWVkTGF5ZXJzKCkpCkBAIC05OSw3ICs5OSw3IEBA
IGJvb2wgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRlTGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxh
eWVyVHJlZVRyYW5zYWN0aW9uJiB0cmFuCiAgICAgcmV0dXJuIHJvb3RMYXllckNoYW5nZWQ7CiB9
CiAKLUNBTGF5ZXIgKlJlbW90ZUxheWVyVHJlZUhvc3Q6OmdldExheWVyKEdyYXBoaWNzTGF5ZXI6
OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklEKSBjb25zdAorTGF5ZXJPclZpZXcgKlJlbW90ZUxheWVy
VHJlZUhvc3Q6OmdldExheWVyKEdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXllcklE
KSBjb25zdAogewogICAgIGlmICghbGF5ZXJJRCkKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTEw
Nyw3ICsxMDcsOCBAQCBDQUxheWVyICpSZW1vdGVMYXllclRyZWVIb3N0OjpnZXRMYXllcihHcmFw
aGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCkgYwogICAgIHJldHVybiBtX2xheWVy
cy5nZXQobGF5ZXJJRCkuZ2V0KCk7CiB9CiAKLUNBTGF5ZXIgKlJlbW90ZUxheWVyVHJlZUhvc3Q6
OmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0
aW9uUHJvcGVydGllcyYgcHJvcGVydGllcykKKyNpZiAhUExBVEZPUk0oSU9TKQorTGF5ZXJPclZp
ZXcgKlJlbW90ZUxheWVyVHJlZUhvc3Q6OmNyZWF0ZUxheWVyKGNvbnN0IFJlbW90ZUxheWVyVHJl
ZVRyYW5zYWN0aW9uOjpMYXllckNyZWF0aW9uUHJvcGVydGllcyYgcHJvcGVydGllcykKIHsKICAg
ICBSZXRhaW5QdHI8Q0FMYXllcj4mIGxheWVyID0gbV9sYXllcnMuYWRkKHByb3BlcnRpZXMubGF5
ZXJJRCwgbnVsbHB0cikuaXRlcmF0b3ItPnZhbHVlOwogCkBAIC0xNDAsNSArMTQxLDYgQEAgQ0FM
YXllciAqUmVtb3RlTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlTGF5ZXIoY29uc3QgUmVtb3RlTGF5ZXJU
cmVlVHJhbnNhY3Rpb246OkxheWUKIAogICAgIHJldHVybiBsYXllci5nZXQoKTsKIH0KKyNlbmRp
ZgogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggZTViZTQ4Y2IwYWU5NTIxM2U3YmUwOTcxOTVl
YTlkYTgxZjc5M2QwOS4uM2JiZWU1MTBmMzMxODE0Nzg5OTExNmVjZGVmN2U3OWU3Y2Y5ZDZhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0K
QEAgLTQ2NywxMiArNDY3LDEyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjppbnRyaW5zaWNDb250ZW50
U2l6ZURpZENoYW5nZShjb25zdCBJbnRTaXplJiBpbnRyaW5zaWNDb250ZW50CiAgICAgbV9wYWdl
Q2xpZW50LmludHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hhbmdlKGludHJpbnNpY0NvbnRlbnRTaXpl
KTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290
TGF5ZXIoUGxhdGZvcm1MYXllciogcm9vdExheWVyKQordm9pZCBXZWJQYWdlUHJveHk6OnNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoTGF5ZXJPclZpZXcqIHJvb3RMYXllcikKIHsK
ICAgICBtX3BhZ2VDbGllbnQuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihyb290
TGF5ZXIpOwogfQogCi1QbGF0Zm9ybUxheWVyKiBXZWJQYWdlUHJveHk6OmFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdSb290TGF5ZXIoKSBjb25zdAorTGF5ZXJPclZpZXcqIFdlYlBhZ2VQcm94eTo6YWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fcGFn
ZUNsaWVudC5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggODdjNzcy
ZGQ5Nzg1YzkwMjVhOTI5ZmJjMTc5Mjc2NTIyNzNkYmZlOC4uMDZhNDljYzhhY2M1NmMwODNiNGRh
YzhlYzEzMDI4ZTZiM2U1YjIwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDcsNiArNDcsMTAgQEAKIC8qIEVuZCBQQlhBZ2dy
ZWdhdGVUYXJnZXQgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAq
LworCQkwRjBDMzY1ODE4QzA1MUJBMDBGNjA3RDcgLyogUmVtb3RlTGF5ZXJUcmVlSG9zdElPUy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGMEMzNjU3
MThDMDUxQkEwMEY2MDdENyAvKiBSZW1vdGVMYXllclRyZWVIb3N0SU9TLm1tICovOyB9OworCQkw
RjBDMzY1QTE4QzA1NTU4MDBGNjA3RDcgLyogTGF5ZXJSZXByZXNlbnRhdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYwQzM2NTkxOEMwNTU1ODAw
RjYwN0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24uaCAqLzsgfTsKKwkJMEYwQzM2NUMxOEMwNUNB
MTAwRjYwN0Q3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjBDMzY1QjE4QzA1Q0Ex
MDBGNjA3RDcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eUlPUy5tbSAqLzsgfTsK
KwkJMEYwQzM2NUUxOEMxMTBBNTAwRjYwN0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24ubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjBDMzY1RDE4QzEx
MEE1MDBGNjA3RDcgLyogTGF5ZXJSZXByZXNlbnRhdGlvbi5tbSAqLzsgfTsKIAkJMEYxNzRBQTMx
NDJBNENCNzAwMzkyNTBGIC8qIEFQSUdlb21ldHJ5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjE3NEFBMjE0MkE0Q0I2MDAzOTI1MEYgLyogQVBJR2Vv
bWV0cnkuaCAqLzsgfTsKIAkJMEYxNzRBQTcxNDJBQUM2MTAwMzkyNTBGIC8qIFdLR2VvbWV0cnku
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxNzRB
QTYxNDJBQUM2MTAwMzkyNTBGIC8qIFdLR2VvbWV0cnkuY3BwICovOyB9OwogCQkwRjU5NDc5MDE4
N0IzQjNBMDA0Mzc4NTcgLyogUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNTk0NzhEMTg3QjNCM0EwMDQz
Nzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvci5oICovOyB9OwpAQCAtNjY0LDcgKzY2
OCw3IEBACiAJCTNGODdCOUJEMTU4OTQwMTIwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4N0I5QkEx
NTg5M0Y2MzAwOTBGRjYyIC8qIFdlYkNvbG9yQ2hvb3Nlci5jcHAgKi87IH07CiAJCTNGODdCOUJF
MTU4OTQwMTkwMDkwRkY2MiAvKiBXZWJDb2xvckNob29zZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDNGODdCOUJCMTU4OTNGNjMwMDkwRkY2MiAvKiBX
ZWJDb2xvckNob29zZXIuaCAqLzsgfTsKIAkJM0Y4N0I5QzAxNTg5NDBEODAwOTBGRjYyIC8qIFdl
YkNvbG9yUGlja2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAzRjg3QjlCRjE1ODk0MEQ4MDA5MEZGNjIgLyogV2ViQ29sb3JQaWNrZXIuaCAqLzsgfTsK
LQkJM0Y4ODlEMTQxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAz
Rjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5
LmNwcCAqLzsgfTsKKwkJM0Y4ODlEMTQxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXJQcm94eS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDNGODg5RDEyMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyUHJveHkubW0gKi87IH07CiAJCTNGODg5RDE1MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJW
aWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDNGODg5RDEzMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJM0Y4ODlEMTcxODg3ODU5MzAwRkVBREFG
IC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gM0Y4ODlEMEQxODg3Njk5QzAwRkVBREFGIC8qIFdlYlZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXIuY3BwICovOyB9OwogCQk0RjYwMTQzMjE1NUM1QUEyMDAxRkJE
RTAgLyogQmxvY2tpbmdSZXNwb25zZU1hcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVz
cG9uc2VNYXAuaCAqLzsgfTsKQEAgLTE3MzgsNiArMTc0MiwxMCBAQAogLyogQmVnaW4gUEJYRmls
ZVJlZmVyZW5jZSBzZWN0aW9uICovCiAJCTA4NjdENkE1RkU4NDAzMDdDMDJBQUMwNyAvKiBBcHBL
aXQuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBBcHBLaXQuZnJhbWV3b3JrOyBwYXRoID0g
L1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwS2l0LmZyYW1ld29yazsgc291cmNlVHJlZSA9
ICI8YWJzb2x1dGU+IjsgfTsKIAkJMDg5QzE2NjdGRTg0MTE1OEMwMkFBQzA3IC8qIEVuZ2xpc2gg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0LnBsaXN0LnN0cmluZ3M7IG5hbWUgPSBFbmdsaXNoOyBwYXRoID0gRW5n
bGlzaC5scHJvai9JbmZvUGxpc3Quc3RyaW5nczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJMEYwQzM2NTcxOEMwNTFCQTAwRjYwN0Q3IC8qIFJlbW90ZUxheWVyVHJlZUhvc3RJT1MubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZW1vdGVMYXllclRyZWVI
b3N0SU9TLm1tOyBwYXRoID0gaW9zL1JlbW90ZUxheWVyVHJlZUhvc3RJT1MubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMEMzNjU5MThDMDU1NTgwMEY2MDdENyAvKiBMYXllclJl
cHJlc2VudGF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IExheWVyUmVw
cmVzZW50YXRpb24uaDsgcGF0aCA9IFVJUHJvY2Vzcy9Db2NvYS9MYXllclJlcHJlc2VudGF0aW9u
Lmg7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJMEYwQzM2NUIxOEMwNUNBMTAwRjYw
N0Q3IC8qIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1MubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclBy
b3h5SU9TLm1tOyBwYXRoID0gaW9zL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHlJT1Mu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGMEMzNjVEMThDMTEwQTUwMEY2MDdE
NyAvKiBMYXllclJlcHJlc2VudGF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gTGF5ZXJSZXByZXNlbnRhdGlvbi5tbTsgcGF0aCA9IGlvcy9MYXllclJlcHJl
c2VudGF0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRjE3NEFBMjE0MkE0
Q0I2MDAzOTI1MEYgLyogQVBJR2VvbWV0cnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQVBJR2VvbWV0cnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEYxNzRB
QTYxNDJBQUM2MTAwMzkyNTBGIC8qIFdLR2VvbWV0cnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV0tHZW9tZXRyeS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTBGNTk0NzhEMTg3QjNCM0EwMDQzNzg1NyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGlu
YXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBSZW1vdGVTY3JvbGxpbmdD
b29yZGluYXRvci5oOyBwYXRoID0gU2Nyb2xsaW5nL1JlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNDE4LDcgKzI0MjYsNyBAQAogCQkz
Rjg4OUQwRDE4ODc2OTlDMDBGRUFEQUYgLyogV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBXZWJWaWRlb0Z1bGxzY3JlZW5N
YW5hZ2VyLmNwcDsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4ODlEMEUxODg3Njk5QzAwRkVBREFGIC8qIFdl
YlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1l
ID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5oOyBwYXRoID0gaW9zL1dlYlZpZGVvRnVsbHNj
cmVlbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJM0Y4ODlEMTAxODg3
NzEwMDAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXIubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlci5tZXNzYWdlcy5p
bjsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyLm1lc3NhZ2VzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQkzRjg4OUQxMjE4ODc3OEM5MDBGRUFEQUYgLyogV2Vi
VmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHA7IHBhdGggPSBp
b3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJM0Y4ODlEMTIxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tbTsgcGF0aCA9IGlvcy9XZWJWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNG
ODg5RDEzMTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHku
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lmg7IHBhdGggPSBpb3MvV2ViVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTNGODg5RDE2MTg4NzdBMjQwMEZFQURBRiAv
KiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBuYW1lID0gV2ViVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOyBwYXRoID0gaW9zL1dlYlZpZGVv
RnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNEY2MDE0MzAxNTVDNUEzMjAwMUZCREUwIC8qIEJsb2NraW5nUmVzcG9uc2VNYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmxvY2tpbmdSZXNwb25zZU1hcC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDExNCw2ICs0MTIyLDcgQEAKIAkJMUFC
QzNERjIxODk5RTQxNTAwNEYwNjI2IC8qIENvY29hICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7
CiAJCQljaGlsZHJlbiA9ICgKKwkJCQkwRjBDMzY1OTE4QzA1NTU4MDBGNjA3RDcgLyogTGF5ZXJS
ZXByZXNlbnRhdGlvbi5oICovLAogCQkJCTFBNDIyRjhEMThCMjlDNjQwMEQ4Q0Q5NiAvKiBIaXN0
b3J5Q2xpZW50LmggKi8sCiAJCQkJMUE0MjJGOEMxOEIyOUM2NDAwRDhDRDk2IC8qIEhpc3RvcnlD
bGllbnQubW0gKi8sCiAJCQkJMUFCQzNERjQxODk5RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25T
dGF0ZS5oICovLApAQCAtNDMwOSwxNCArNDMxOCwxNyBAQAogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKIAkJCQlDNTQyNTZBRTE4QkVDMTYxMDBERTQxNzkgLyogZm9ybXMgKi8s
CisJCQkJMEYwQzM2NUQxOEMxMTBBNTAwRjYwN0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24ubW0g
Ki8sCiAJCQkJMEZDQjRFMzYxOEJCRTA0NDAwMEZDRkM5IC8qIFBhZ2VDbGllbnRJbXBsSU9TLmgg
Ki8sCiAJCQkJMEZDQjRFMzcxOEJCRTA0NDAwMEZDRkM5IC8qIFBhZ2VDbGllbnRJbXBsSU9TLm1t
ICovLAorCQkJCTBGMEMzNjU3MThDMDUxQkEwMEY2MDdENyAvKiBSZW1vdGVMYXllclRyZWVIb3N0
SU9TLm1tICovLAorCQkJCTBGMEMzNjVCMThDMDVDQTEwMEY2MDdENyAvKiBSZW1vdGVTY3JvbGxp
bmdDb29yZGluYXRvclByb3h5SU9TLm1tICovLAogCQkJCTJEQTk0NEE5MTg4NEU5QkEwMEVEODZE
QiAvKiBUZXh0Q2hlY2tlcklPUy5tbSAqLywKIAkJCQkyREY5NTkzNDE4QTQyNDEyMDA5Nzg1QTEg
LyogVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tICovLAogCQkJCTJEQTk0NEFBMTg4NEU5QkEw
MEVEODZEQiAvKiBXZWJJbnNwZWN0b3JQcm94eUlPUy5tbSAqLywKIAkJCQkyREE5NDRBQjE4ODRF
OUJBMDBFRDg2REIgLyogV2ViUGFnZVByb3h5SU9TLm1tICovLAogCQkJCTJEQTk0NEFDMTg4NEU5
QkEwMEVEODZEQiAvKiBXZWJQcm9jZXNzUHJveHlJT1MubW0gKi8sCi0JCQkJM0Y4ODlEMTIxODg3
NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5jcHAgKi8sCisJ
CQkJM0Y4ODlEMTIxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQ
cm94eS5tbSAqLywKIAkJCQkzRjg4OUQxMzE4ODc3OEM5MDBGRUFEQUYgLyogV2ViVmlkZW9GdWxs
c2NyZWVuTWFuYWdlclByb3h5LmggKi8sCiAJCQkJM0Y4ODlEMTYxODg3N0EyNDAwRkVBREFGIC8q
IFdlYlZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkwRkNC
NEUzODE4QkJFMDQ0MDAwRkNGQzkgLyogV0tBY3Rpb25TaGVldC5oICovLApAQCAtNjQyNCw2ICs2
NDM2LDcgQEAKIAkJCQlCQzAxN0QyMTE2MjYzMzA4MDA3MDU0RjUgLyogV0tET01UZXh0SXRlcmF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3REZBNzAwMTgxMEJCOTIwMDFGNEE5RiAvKiBXS0Zv
dW5kYXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQkMzREYxMTg5OUM2QjYwMDRGMDYyNiAv
KiBXS05hdmlnYXRpb25JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEYwQzM2NUExOEMw
NTU1ODAwRjYwN0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJ
CTFGNjA0QkE4MTg4OUZBNzQwMEVFMDM5NSAvKiBXS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTQyMkY4RjE4QjI5QzY0MDBEOENEOTYgLyogSGlzdG9yeUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCQUFDRUIxNDUyMjVFMzAwNTNGODJGIC8qIFdL
UHJvY2Vzc0dyb3VwLmggaW4gSGVhZGVycyAqLywKQEAgLTgwMzcsNiArODA1MCw3IEBACiAJCQkJ
MkRBOTQ0OUUxODg0RTRGMDAwRUQ4NkRCIC8qIE5hdGl2ZVdlYktleWJvYXJkRXZlbnRJT1MubW0g
aW4gU291cmNlcyAqLywKIAkJCQkxQTBFQzYwNDEyNEE5RjJDMDA3RUY0QTUgLyogUGx1Z2luUHJv
Y2Vzc01hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOUY1NEY4OTUxNjQ4QUUwRjAwN0RG
ODFBIC8qIFBsdWdpblByb2Nlc3NNYW5hZ2VyTWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMEYw
QzM2NUUxOEMxMTBBNTAwRjYwN0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24ubW0gaW4gU291cmNl
cyAqLywKIAkJCQkxQTA0M0NFQjEyNEZFMzhGMDBGRkJGQjUgLyogUGx1Z2luUHJvY2Vzc01lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQTBFQzc1RjEyNEJDN0IyMDA3RUY0
QTUgLyogUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBMkQ5MEJC
MTI4MUM5MzEwMDFFQjk2MiAvKiBQbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gaW4gU291cmNlcyAq
LywKQEAgLTgzMDYsNyArODMyMCw3IEBACiAJCQkJMzMzNjc2MzUxMzBDOTlCMjAwNkM5REUyIC8q
IFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMzMz
Njc2NTcxMzBDOUVDQTAwNkM5REUyIC8qIFdlYlJlc291cmNlQ2FjaGVNYW5hZ2VyUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwQUZGQjkxNjU0MjA0ODAwMUJB
MDVFIC8qIFdlYlJlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTNGODg5RDE0
MTg4Nzc4QzkwMEZFQURBRiAvKiBXZWJWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJM0Y4ODlEMTQxODg3NzhDOTAwRkVBREFGIC8qIFdlYlZpZGVvRnVs
bHNjcmVlbk1hbmFnZXJQcm94eS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMx
ODUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkyRDZCMzcxQzE4QTk2N0FEMDA0MkFFODAgLyogV0tUaHVtYm5haWxWaWV3
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzc4RTFBM0QxODFFRDZGRjAwMzEwMDdBIC8qIEFQSU9i
amVjdC5tbSBpbiBTb3VyY2VzICovLApAQCAtODM2NCw2ICs4Mzc4LDggQEAKIAkJCQlCQzQwNzYy
ODEyNEZGMDQwMDA2OEYyMEEgLyogV0tDZXJ0aWZpY2F0ZUluZm9NYWMubW0gaW4gU291cmNlcyAq
LywKIAkJCQk1MTVFNzcyNzE4M0RENkY2MDAwNzIwM0YgLyogQXN5bmNSZXF1ZXN0LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCUJDQTI4NEQ2MTQ5MkYyQzcwMDFGOTA0MiAvKiBXS0Nvbm5lY3Rpb24u
bW0gaW4gU291cmNlcyAqLywKKwkJCQkwRjBDMzY1ODE4QzA1MUJBMDBGNjA3RDcgLyogUmVtb3Rl
TGF5ZXJUcmVlSG9zdElPUy5tbSBpbiBTb3VyY2VzICovLAorCQkJCTBGMEMzNjVDMThDMDVDQTEw
MEY2MDdENyAvKiBSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5SU9TLm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM0QTYyOTYxNDczMTNBMDAwNkM2ODFBIC8qIFdLQ29ubmVjdGlvblJlZi5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDg3MTAxNjE4Mjg0MTVEMDAxOEZBMDEgLyogUGxhdGZv
cm1DQUxheWVyUmVtb3RlQ3VzdG9tLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCOUUyNEMxMTIw
RTE1QzAwQTEzN0UwIC8qIFdLQ29udGV4dC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1DQUxheWVyUmVt
b3RlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvUGxhdGZvcm1D
QUxheWVyUmVtb3RlLmNwcAppbmRleCBkYzg3ZGUzYTAzMTU5ZGFiMWI3OWNhNTE4ZjE2M2RmZWZl
MjU3MDc3Li44OTBkYmE0YzAwZDg5YTg1OGJjZmZhNmQ3YWZkMGNkMjYxYzdhYjVjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1BsYXRmb3JtQ0FMYXll
clJlbW90ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9Q
bGF0Zm9ybUNBTGF5ZXJSZW1vdGUuY3BwCkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBQbGF0Zm9y
bUNBTGF5ZXJSZW1vdGU6OnJlY3Vyc2l2ZUJ1aWxkVHJhbnNhY3Rpb24oUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb24KICAgICAgICAgfQogCiAgICAgICAgIGlmIChtX2xheWVyVHlwZSA9PSBMYXll
clR5cGVDdXN0b20pIHsKLSAgICAgICAgICAgIFJlbW90ZUxheWVyVHJlZVByb3BlcnR5QXBwbGll
cjo6YXBwbHlQcm9wZXJ0aWVzVG9MYXllcihwbGF0Zm9ybUxheWVyKCksIG1fcHJvcGVydGllcywg
UmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBsaWVyOjpSZWxhdGVkTGF5ZXJNYXAoKSk7CisgICAg
ICAgICAgICBSZW1vdGVMYXllclRyZWVQcm9wZXJ0eUFwcGxpZXI6OmFwcGx5UHJvcGVydGllcyhw
bGF0Zm9ybUxheWVyKCksIG1fcHJvcGVydGllcywgUmVtb3RlTGF5ZXJUcmVlUHJvcGVydHlBcHBs
aWVyOjpSZWxhdGVkTGF5ZXJNYXAoKSk7CiAgICAgICAgICAgICBtX3Byb3BlcnRpZXMuY2hhbmdl
ZFByb3BlcnRpZXMgPSBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6Tm9DaGFuZ2U7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
</data>
<flag name="review"
          id="249639"
          type_id="1"
          status="+"
          setter="sam"
    />
          </attachment>
      

    </bug>

</bugzilla>