<?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>189695</bug_id>
          
          <creation_ts>2018-09-18 01:56:10 -0700</creation_ts>
          <short_desc>REGRESSION (PSON): White or Black flash occurs when process swapping on navigation on iOS</short_desc>
          <delta_ts>2018-09-26 05:06:20 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</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>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1460536</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-09-18 01:56:10 -0700</bug_when>
    <thetext>Fix it on iOS too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1460537</commentid>
    <comment_count>1</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-09-18 01:56:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/44551146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463129</commentid>
    <comment_count>2</comment_count>
      <attachid>350747</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-09-25 05:14:19 -0700</bug_when>
    <thetext>Created attachment 350747
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463135</commentid>
    <comment_count>3</comment_count>
      <attachid>350749</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-09-25 06:31:31 -0700</bug_when>
    <thetext>Created attachment 350749
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463136</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-09-25 06:32:49 -0700</bug_when>
    <thetext>Attachment 350749 did not pass style-queue:


ERROR: Source/WebKit/UIProcess/mac/WebPageProxyMac.mm:42:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463138</commentid>
    <comment_count>5</comment_count>
      <attachid>350750</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-09-25 06:47:47 -0700</bug_when>
    <thetext>Created attachment 350750
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463195</commentid>
    <comment_count>6</comment_count>
      <attachid>350750</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-09-25 10:52:29 -0700</bug_when>
    <thetext>Comment on attachment 350750
patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm:1704
&gt; +    [self _processWillChange];

It&apos;s weird that &quot;process did exit&quot; calls &quot;process will change&quot;. _processWillChange implies we&apos;re still attached to the old process but are about to switch.

&gt; Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:165
&gt; +    if (!m_drawingArea)
&gt; +        return;

Blank line after the return please.

&gt; Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:185
&gt; +    if (!m_drawingArea)
&gt; +        return;

Blank line after the return please.

&gt; Source/WebKit/UIProcess/ios/PageClientImplIOS.mm:216
&gt; +    [m_contentView _processDidExit];
&gt; +    [m_webView _processWillSwap];

Please keep the contentView and webView methods the same.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463562</commentid>
    <comment_count>7</comment_count>
      <attachid>350855</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-09-26 04:28:38 -0700</bug_when>
    <thetext>Created attachment 350855
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463568</commentid>
    <comment_count>8</comment_count>
      <attachid>350855</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-26 05:06:19 -0700</bug_when>
    <thetext>Comment on attachment 350855
patch

Clearing flags on attachment: 350855

Committed r236500: &lt;https://trac.webkit.org/changeset/236500&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463569</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-26 05:06:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350747</attachid>
            <date>2018-09-25 05:14:19 -0700</date>
            <delta_ts>2018-09-25 06:31:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>pson-no-flash-ios-4.patch</filename>
            <type>text/plain</type>
            <size>19254</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzY0NTUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE4LTA5LTI1ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChQU09OKTogV2hp
dGUgb3IgQmxhY2sgZmxhc2ggb2NjdXJzIHdoZW4gcHJvY2VzcyBzd2FwcGluZyBvbiBuYXZpZ2F0
aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg5Njk1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDU1MTE0Nj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmVlemUgdGhlIGxheWVycyBv
biBVSSBwcm9jZXNzIHNpZGUgZHVyaW5nIHByb2Nlc3Mgc3dhcC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nl
c3NXaWxsQ2hhbmdlXSk6CisKKyAgICAgICAgU2hhcmVkIHdvcmsgb2YgX3Byb2Nlc3NXaWxsU3dh
cCBhbmQgX3Byb2Nlc3NEaWRFeGl0LgorCisgICAgICAgICgtW1dLV2ViVmlldyBfcHJvY2Vzc1dp
bGxTd2FwXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfcHJvY2Vzc0RpZEV4aXRdKToKKworICAg
ICAgICBTcGxpdCBpbnRvIHR3byBmdW5jdGlvbnMuIERvbid0IHJlc2V0IHNjcm9sbCBwb3NpdGlv
biBhbmQgc2ltaWxhciB3aGVuIGRvaW5nIG5hdmlnYXRpb24gc3dhcC4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHk6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkZXRhY2hSZW1vdGVMYXllclRyZWVI
b3N0KToKKworICAgICAgICBBZGQgdG8gd2F5IHRvIGRldGFjaCBSZW1vdGVMYXllclRyZWVIb3N0
IGZyb20gdGhlIGRyYXdpbmcgYXJlYS4gSW5lcnQgUmVtb3RlTGF5ZXJUcmVlSG9zdCB3aWxsIGhv
c3QKKyAgICAgICAgdGhlIGZyb3plbiBsYXllcnMuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlRGVidWdJbmRpY2F0
b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpo
aWRlQ29udGVudFVudGlsUGVuZGluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmhpZGVDb250ZW50VW50aWxBbnlVcGRhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpwcmVwYXJlRm9y
QXBwU3VzcGVuc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6Omhhc1Zpc2libGVDb250ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6bGF5ZXJXaXRoSURGb3JUZXN0aW5nIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZUhvc3QubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OlJlbW90ZUxh
eWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRh
dGVMYXllclRyZWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0Ojphbmlt
YXRpb25EaWRTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmFu
aW1hdGlvbkRpZEVuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmRl
dGFjaEZyb21EcmF3aW5nQXJlYSk6CisKKyAgICAgICAgQ2xlYXIgdGhlIERyYXdpbmdBcmVhIGJh
Y2twb2ludGVyLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKToKKworICAgICAg
ICBEZXRhY2ggYW5kIHNhdmUgdGhlIGN1cnJlbnQgUmVtb3RlTGF5ZXJUcmVlSG9zdCBvbiBuYXZp
Z2F0aW9uIHN3YXAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnByb2Nlc3NXaWxsU3dhcCk6CisKKyAgICAgICAgQXZvaWQgcmVz
ZXRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIpOgorCisgICAgICAgIERyb3AgdGhlIGZyb3plbiBs
YXllcnMgYWZ0ZXIgc2V0dGluZyB0aGUgbmV3IHJvb3QgbGF5ZXIuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKToKKworICAgICAgICBGb3Ig
Y29tcGxldGVuZXNzIGRvIHRoaXMgYWxzbyBvbiBNYWMgKHdoZXJlIHJlbW90ZSBsYXllcnMgYXJl
IGN1cnJlbnRseSBub3QgdXNlZCkuCisKIDIwMTgtMDktMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXguCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDIzNjM4MikKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI1MDcsNyArMjUwNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRp
b25Jbk4KICAgICAgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2Fj
dGlvbigpOwogICAgICAgICBtX3BhZ2VMb2FkU3RhdGUuc2V0UGVuZGluZ0FQSVJlcXVlc3RVUkwo
dHJhbnNhY3Rpb24sIGl0ZW0tPnVybCgpKTsKIAotICAgICAgICBhdXRvIGl0ZW1TdGF0ZXMgPSBt
X2JhY2tGb3J3YXJkTGlzdC0+IGZpbHRlcmVkSXRlbVN0YXRlcyhbdGhpcywgdGFyZ2V0SXRlbSA9
IGl0ZW1dKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pIHsKKyAgICAgICAgYXV0byBpdGVt
U3RhdGVzID0gbV9iYWNrRm9yd2FyZExpc3QtPmZpbHRlcmVkSXRlbVN0YXRlcyhbdGhpcywgdGFy
Z2V0SXRlbSA9IGl0ZW1dKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pIHsKICAgICAgICAg
ICAgIGlmIChhdXRvKiBwYWdlID0gaXRlbS5zdXNwZW5kZWRQYWdlKCkpIHsKICAgICAgICAgICAg
ICAgICBpZiAocGFnZS0+cHJvY2VzcygpID09IG1fcHJvY2Vzcy5wdHIoKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjAxNyw3ICs2MDE3LDE2IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGUKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBt
X3Njcm9sbGluZ1BlcmZvcm1hbmNlRGF0YSA9IG51bGxwdHI7CiAjZW5kaWYKLSAgICBtX2RyYXdp
bmdBcmVhID0gbnVsbHB0cjsKKworICAgIGlmIChtX2RyYXdpbmdBcmVhKSB7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgICAgIGlmIChyZXNldFN0YXRlUmVhc29uID09IFJlc2V0U3RhdGVSZWFz
b246Ok5hdmlnYXRpb25Td2FwICYmIGlzPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk+
KCptX2RyYXdpbmdBcmVhKSkgeworICAgICAgICAgICAgLy8gS2VlcCBsYXllcnMgYXJvdW5kIGlu
IGZyb3plbiBzdGF0ZSB0byBhdm9pZCBmbGFzaGluZyBkdXJpbmcgcHJvY2VzcyBzd2Fwcy4KKyAg
ICAgICAgICAgIG1fZnJvemVuUmVtb3RlTGF5ZXJUcmVlSG9zdCA9IGRvd25jYXN0PFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk+KCptX2RyYXdpbmdBcmVhKS5kZXRhY2hSZW1vdGVMYXll
clRyZWVIb3N0KCk7CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBtX2RyYXdpbmdBcmVhID0g
bnVsbHB0cjsKKyAgICB9CiAgICAgY2xvc2VPdmVybGF5ZWRWaWV3cygpOwogCiAgICAgaWYgKG1f
aW5zcGVjdG9yKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAko
cmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMyw2ICsyMjMsNyBAQCBjbGFzcyBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViTW91c2VFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldo
ZWVsRXZlbnQ7CiBjbGFzcyBQYWdlQ2xpZW50OworY2xhc3MgUmVtb3RlTGF5ZXJUcmVlSG9zdDsK
IGNsYXNzIFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YTsKIGNsYXNzIFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTsKQEAgLTE4NjEsMTAgKzE4NjIsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNM
b2FkaW5nQWx0ZXJuYXRlSFRNTFN0cmluZ0ZvckZhaWxpbmdQcm92aXNpb25hbExvYWQgeyBmYWxz
ZSB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IG1fZHJhd2luZ0Fy
ZWE7Ci0jaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oQ09DT0EpCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxheWVyVHJlZUhvc3Q+
IG1fZnJvemVuUmVtb3RlTGF5ZXJUcmVlSG9zdDsKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5PiBt
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiAjZW5kaWYKLQorI2VuZGlmCiAgICAgUmVmPFdl
YlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwogICAgIFJlZjxXZWJQYWdlR3JvdXA+IG1fcGFnZUdy
b3VwOwogICAgIFJlZjxXZWJQcmVmZXJlbmNlcz4gbV9wcmVmZXJlbmNlczsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24g
MjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTY1NCwxNSArMTY1NCwxMSBAQCAtIChVSUVkZ2VJbnNldHMp
X2NvbXB1dGVkVW5vYnNjdXJlZFNhZmVBCiAgICAgcmV0dXJuIFVJRWRnZUluc2V0c1plcm87CiB9
CiAKLS0gKHZvaWQpX3Byb2Nlc3NEaWRFeGl0CistICh2b2lkKV9wcm9jZXNzV2lsbENoYW5nZQog
ewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVwIC1bV0tXZWJWaWV3IF9wcm9jZXNzRGlk
RXhpdF0iLCBzZWxmKTsKKyAgICAvLyBGSVhNRTogV2hpY2ggb25lcyBvZiB0aGVzZSBuZWVkIHRv
IGJlIGRvbmUgaW4gdGhlIHByb2Nlc3Mgc3dhcCBjYXNlIGFuZCB3aGljaCBvbmVzIGluIHRoZSBl
eGl0IGNhc2U/CiAgICAgW3NlbGYgX2hpZGVQYXNzd29yZFZpZXddOwogICAgIFtzZWxmIF9jYW5j
ZWxBbmltYXRlZFJlc2l6ZV07Ci0gICAgW19jb250ZW50VmlldyBzZXRGcmFtZTpzZWxmLmJvdW5k
c107Ci0gICAgW19zY3JvbGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciB3aGl0ZUNv
bG9yXV07Ci0gICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6W3NlbGYgX2luaXRpYWxD
b250ZW50T2Zmc2V0Rm9yU2Nyb2xsVmlld11dOwotICAgIFtfc2Nyb2xsVmlldyBzZXRab29tU2Nh
bGU6MV07CiAKICAgICBfdmlld3BvcnRNZXRhVGFnV2lkdGggPSBXZWJDb3JlOjpWaWV3cG9ydEFy
Z3VtZW50czo6VmFsdWVBdXRvOwogICAgIF9pbml0aWFsU2NhbGVGYWN0b3IgPSAxOwpAQCAtMTY5
NSw2ICsxNjkxLDI0IEBAIC0gKHZvaWQpX3Byb2Nlc3NEaWRFeGl0CiAgICAgX2F2b2lkc1Vuc2Fm
ZUFyZWEgPSBZRVM7CiB9CiAKKy0gKHZvaWQpX3Byb2Nlc3NXaWxsU3dhcAoreworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoIiVwIC1bV0tXZWJWaWV3IF9wcm9jZXNzV2lsbFN3YXBdIiwgc2Vs
Zik7CisgICAgW3NlbGYgX3Byb2Nlc3NXaWxsQ2hhbmdlXTsKK30KKworLSAodm9pZClfcHJvY2Vz
c0RpZEV4aXQKK3sKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAtW1dLV2ViVmlldyBf
cHJvY2Vzc0RpZEV4aXRdIiwgc2VsZik7CisKKyAgICBbc2VsZiBfcHJvY2Vzc1dpbGxDaGFuZ2Vd
OworCisgICAgW19jb250ZW50VmlldyBzZXRGcmFtZTpzZWxmLmJvdW5kc107CisgICAgW19zY3Jv
bGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciB3aGl0ZUNvbG9yXV07CisgICAgW19z
Y3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6W3NlbGYgX2luaXRpYWxDb250ZW50T2Zmc2V0Rm9y
U2Nyb2xsVmlld11dOworICAgIFtfc2Nyb2xsVmlldyBzZXRab29tU2NhbGU6MV07Cit9CisKIC0g
KHZvaWQpX2RpZFJlbGF1bmNoUHJvY2VzcwogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
IiVwIC1bV0tXZWJWaWV3IF9kaWRSZWxhdW5jaFByb2Nlc3NdIiwgc2VsZik7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaAkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDcgQEAg
c3RydWN0IFByaW50SW5mbzsKIAogI2lmIFBMQVRGT1JNKElPUykKIC0gKHZvaWQpX3Byb2Nlc3NE
aWRFeGl0OworLSAodm9pZClfcHJvY2Vzc1dpbGxTd2FwOwogLSAodm9pZClfZGlkUmVsYXVuY2hQ
cm9jZXNzOwogCiAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lOwpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCShyZXZpc2lvbiAy
MzYzODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw4
IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
KFdlYlBhZ2VQcm94eSYpOwogICAgIHZpcnR1YWwgflJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkoKTsKIAotICAgIGNvbnN0IFJlbW90ZUxheWVyVHJlZUhvc3QmIHJlbW90ZUxheWVyVHJl
ZUhvc3QoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUxheWVyVHJlZUhvc3Q7IH0KKyAgICBjb25z
dCBSZW1vdGVMYXllclRyZWVIb3N0JiByZW1vdGVMYXllclRyZWVIb3N0KCkgY29uc3QgeyByZXR1
cm4gKm1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVM
YXllclRyZWVIb3N0PiBkZXRhY2hSZW1vdGVMYXllclRyZWVIb3N0KCk7CiAKICAgICB2b2lkIGFj
Y2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5n
JiBrZXksIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lKTsKICAgICB2b2lkIGFjY2VsZXJhdGVkQW5p
bWF0aW9uRGlkRW5kKHVpbnQ2NF90IGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5KTsKQEAgLTEw
MCw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgc2VuZFVwZGF0ZUdlb21ldHJ5
KCk7CiAKLSAgICBSZW1vdGVMYXllclRyZWVIb3N0IG1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGF5ZXJUcmVlSG9zdD4gbV9yZW1vdGVMYXllclRyZWVI
b3N0OwogICAgIGJvb2wgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9tZXRyeSB7IGZhbHNlIH07
CiAgICAgZW51bSBEaWRVcGRhdGVNZXNzYWdlU3RhdGUgeyBEb2VzTm90TmVlZERpZFVwZGF0ZSwg
TmVlZHNEaWRVcGRhdGUsIE1pc3NlZENvbW1pdCB9OwogICAgIERpZFVwZGF0ZU1lc3NhZ2VTdGF0
ZSBtX2RpZFVwZGF0ZU1lc3NhZ2VTdGF0ZSB7IERvZXNOb3ROZWVkRGlkVXBkYXRlIH07CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQkocmV2
aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTEw
Nyw3ICsxMDcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eShXZWJQYWdl
UHJveHkmIHdlYlBhZ2VQcm94eSkKICAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFU
eXBlUmVtb3RlTGF5ZXJUcmVlLCB3ZWJQYWdlUHJveHkpCi0gICAgLCBtX3JlbW90ZUxheWVyVHJl
ZUhvc3QoKnRoaXMpCisgICAgLCBtX3JlbW90ZUxheWVyVHJlZUhvc3Qoc3RkOjptYWtlX3VuaXF1
ZTxSZW1vdGVMYXllclRyZWVIb3N0PigqdGhpcykpCiB7CiAjaWYgSEFWRShJT1NVUkZBQ0UpCiAg
ICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBwb29sIHN1cmZhY2VzIGluIHRoZSBVSSBwcm9jZXNzLgpA
QCAtMTMxLDYgKzEzMSwxNCBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp+UmVt
b3RlCiAjZW5kaWYKIH0KIAorCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGF5ZXJUcmVlSG9zdD4g
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGV0YWNoUmVtb3RlTGF5ZXJUcmVlSG9z
dCgpCit7CisgICAgbV9yZW1vdGVMYXllclRyZWVIb3N0LT5kZXRhY2hGcm9tRHJhd2luZ0FyZWEo
KTsKKyAgICByZXR1cm4gV1RGTW92ZShtX3JlbW90ZUxheWVyVHJlZUhvc3QpOworfQorCisKICNp
ZiBQTEFURk9STShJT1MpCiBXS09uZVNob3REaXNwbGF5TGlua0hhbmRsZXIgKlJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3BsYXlMaW5rSGFuZGxlcigpCiB7CkBAIC0xOTQsMTEg
KzIwMiwxMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvCiAgICAg
aWYgKGxheWVyVHJlZVRyYW5zYWN0aW9uLmhhc0VkaXRvclN0YXRlKCkpCiAgICAgICAgIG1fd2Vi
UGFnZVByb3h5LmVkaXRvclN0YXRlQ2hhbmdlZChsYXllclRyZWVUcmFuc2FjdGlvbi5lZGl0b3JT
dGF0ZSgpKTsKIAotICAgIGlmIChtX3JlbW90ZUxheWVyVHJlZUhvc3QudXBkYXRlTGF5ZXJUcmVl
KGxheWVyVHJlZVRyYW5zYWN0aW9uKSkgeworICAgIGlmIChtX3JlbW90ZUxheWVyVHJlZUhvc3Qt
PnVwZGF0ZUxheWVyVHJlZShsYXllclRyZWVUcmFuc2FjdGlvbikpIHsKICAgICAgICAgaWYgKGxh
eWVyVHJlZVRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSUQoKSA+PSBtX3RyYW5zYWN0aW9uSURGb3JV
bmhpZGluZ0NvbnRlbnQpCi0gICAgICAgICAgICBtX3dlYlBhZ2VQcm94eS5zZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nUm9vdExheWVyKG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC5yb290TGF5ZXIoKSk7
CisgICAgICAgICAgICBtX3dlYlBhZ2VQcm94eS5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9v
dExheWVyKG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCkpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBtX3JlbW90ZUxheWVyVHJlZUhvc3QuZGV0YWNoUm9vdExheWVyKCk7Cisg
ICAgICAgICAgICBtX3JlbW90ZUxheWVyVHJlZUhvc3QtPmRldGFjaFJvb3RMYXllcigpOwogICAg
IH0KIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCkBAIC0zMjksNyArMzM3LDcgQEAgdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cAogdm9pZCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcihJbnRTaXplIGNvbnRlbnRz
U2l6ZSwgYm9vbCByb290TGF5ZXJDaGFuZ2VkLCBmbG9hdCBzY2FsZSwgY29uc3QgSW50UG9pbnQm
IHNjcm9sbFBvc2l0aW9uKQogewogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSB0aGUgbGFzdCBzdWJs
YXllci4KLSAgICBDQUxheWVyICpyb290TGF5ZXIgPSBhc0xheWVyKG1fcmVtb3RlTGF5ZXJUcmVl
SG9zdC5yb290TGF5ZXIoKSk7CisgICAgQ0FMYXllciAqcm9vdExheWVyID0gYXNMYXllcihtX3Jl
bW90ZUxheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpKTsKICAgICBbbV90aWxlTWFwSG9zdExheWVy
IHJlbW92ZUZyb21TdXBlcmxheWVyXTsKICAgICBbcm9vdExheWVyIGFkZFN1YmxheWVyOm1fdGls
ZU1hcEhvc3RMYXllci5nZXQoKV07CiAKQEAgLTQ2OSwyMiArNDc3LDIyIEBAIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGkKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6aGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKQogewogICAgIG1fdHJh
bnNhY3Rpb25JREZvclVuaGlkaW5nQ29udGVudCA9IG5leHRMYXllclRyZWVUcmFuc2FjdGlvbklE
KCk7Ci0gICAgbV9yZW1vdGVMYXllclRyZWVIb3N0LmRldGFjaFJvb3RMYXllcigpOworICAgIG1f
cmVtb3RlTGF5ZXJUcmVlSG9zdC0+ZGV0YWNoUm9vdExheWVyKCk7CiB9CiAKIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aGlkZUNvbnRlbnRVbnRpbEFueVVwZGF0ZSgpCiB7
Ci0gICAgbV9yZW1vdGVMYXllclRyZWVIb3N0LmRldGFjaFJvb3RMYXllcigpOworICAgIG1fcmVt
b3RlTGF5ZXJUcmVlSG9zdC0+ZGV0YWNoUm9vdExheWVyKCk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6cHJlcGFyZUZvckFwcFN1c3BlbnNpb24oKQogewotICAg
IG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC5tYXBBbGxJT1N1cmZhY2VCYWNraW5nU3RvcmUoKTsKKyAg
ICBtX3JlbW90ZUxheWVyVHJlZUhvc3QtPm1hcEFsbElPU3VyZmFjZUJhY2tpbmdTdG9yZSgpOwog
fQogCiBib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6Omhhc1Zpc2libGVDb250
ZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yZW1vdGVMYXllclRyZWVIb3N0LnJvb3RMYXll
cigpOworICAgIHJldHVybiBtX3JlbW90ZUxheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpOwogfQog
CiBib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmlzQWx3YXlzT25Mb2dnaW5n
QWxsb3dlZCgpIGNvbnN0CkBAIC00OTQsNyArNTAyLDcgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5OjppcwogCiBMYXllck9yVmlldyogUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6bGF5ZXJXaXRoSURGb3JUZXN0aW5nKHVpbnQ2NF90IGxheWVySUQpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC5sYXllcldpdGhJREZvclRlc3Rp
bmcobGF5ZXJJRCk7CisgICAgcmV0dXJuIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC0+bGF5ZXJXaXRo
SURGb3JUZXN0aW5nKGxheWVySUQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVI
b3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZUhvc3QuaAkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QuaAkod29y
a2luZyBjb3B5KQpAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhbmltYXRpb25E
aWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIENBQW5pbWF0
aW9uICosIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lKTsKICAgICB2b2lkIGFuaW1hdGlvbkRpZEVu
ZChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIENBQW5pbWF0aW9uICop
OwogCisgICAgdm9pZCBkZXRhY2hGcm9tRHJhd2luZ0FyZWEoKTsKICAgICB2b2lkIGNsZWFyTGF5
ZXJzKCk7CiAKICAgICAvLyBEZXRhY2ggdGhlIHJvb3QgbGF5ZXI7IGl0IHdpbGwgYmUgcmVhdHRh
Y2hlZCB1cG9uIHRoZSBuZXh0IGluY29taW5nIGNvbW1pdC4KQEAgLTc4LDExICs3OSwxMSBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBsYXllcldpbGxCZVJlbW92ZWQoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6UGxhdGZvcm1MYXllcklEKTsKIAotICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkmIG1fZHJhd2luZ0FyZWE7Ci0gICAgTGF5ZXJPclZpZXcgKm1fcm9vdExheWVyOworICAg
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkqIG1fZHJhd2luZ0FyZWEgeyBudWxscHRy
IH07CisgICAgTGF5ZXJPclZpZXcgKm1fcm9vdExheWVyIHsgbnVsbHB0ciB9OwogICAgIEhhc2hN
YXA8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBSZXRhaW5QdHI8TGF5
ZXJPclZpZXc+PiBtX2xheWVyczsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OlBsYXRmb3JtTGF5ZXJJRCwgUmV0YWluUHRyPFdLQW5pbWF0aW9uRGVsZWdhdGU+PiBtX2FuaW1h
dGlvbkRlbGVnYXRlczsKLSAgICBib29sIG1faXNEZWJ1Z0xheWVyVHJlZUhvc3Q7CisgICAgYm9v
bCBtX2lzRGVidWdMYXllclRyZWVIb3N0IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZUhvc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0JKHJldmlzaW9uIDIzNjM4
MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVIb3N0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OSwxMiArNDksMTAgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNkZWZpbmUgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKG1fZHJhd2luZ0FyZWEuaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIFZpZXdTdGF0ZSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihtX2RyYXdpbmdBcmVhICYmIG1f
ZHJhd2luZ0FyZWEtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBWaWV3U3RhdGUsIF9fVkFf
QVJHU19fKQogCiBSZW1vdGVMYXllclRyZWVIb3N0OjpSZW1vdGVMYXllclRyZWVIb3N0KFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkmIGRyYXdpbmdBcmVhKQotICAgIDogbV9kcmF3aW5n
QXJlYShkcmF3aW5nQXJlYSkKLSAgICAsIG1fcm9vdExheWVyKG51bGxwdHIpCi0gICAgLCBtX2lz
RGVidWdMYXllclRyZWVIb3N0KGZhbHNlKQorICAgIDogbV9kcmF3aW5nQXJlYSgmZHJhd2luZ0Fy
ZWEpCiB7CiB9CiAKQEAgLTY4LDYgKzY2LDkgQEAgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6flJlbW90
ZUxheWVyVHJlZUhvcwogCiBib29sIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJl
ZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGZsb2F0IGlu
ZGljYXRvclNjYWxlRmFjdG9yKQogeworICAgIGlmICghbV9kcmF3aW5nQXJlYSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgZm9yIChjb25zdCBhdXRvJiBjcmVhdGVkTGF5ZXIgOiB0cmFu
c2FjdGlvbi5jcmVhdGVkTGF5ZXJzKCkpIHsKICAgICAgICAgY29uc3QgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyogcHJvcGVydGllcyA9IHRyYW5zYWN0aW9uLmNo
YW5nZWRMYXllclByb3BlcnRpZXMoKS5nZXQoY3JlYXRlZExheWVyLmxheWVySUQpOwogICAgICAg
ICBjcmVhdGVMYXllcihjcmVhdGVkTGF5ZXIsIHByb3BlcnRpZXMpOwpAQCAtOTEsNyArOTIsNyBA
QCBib29sIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJlCiAgICAgLy8gQ2FuJ3Qg
dXNlIHRoZSBpT1MgY29kZSBvbiBtYWNPUyB5ZXQ6IHJkYXI6Ly9wcm9ibGVtLzMxMjQ3NzMwCiAg
ICAgYXV0byBsYXllckNvbnRlbnRzVHlwZSA9IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpMYXll
ckNvbnRlbnRzVHlwZTo6SU9TdXJmYWNlOwogI2Vsc2UKLSAgICBhdXRvIGxheWVyQ29udGVudHNU
eXBlID0gbV9kcmF3aW5nQXJlYS5oYXNEZWJ1Z0luZGljYXRvcigpID8gUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6OkxheWVyQ29udGVudHNUeXBlOjpJT1N1cmZhY2UgOiBSZW1vdGVMYXllckJhY2tp
bmdTdG9yZTo6TGF5ZXJDb250ZW50c1R5cGU6OkNBTWFjaFBvcnQ7CisgICAgYXV0byBsYXllckNv
bnRlbnRzVHlwZSA9IG1fZHJhd2luZ0FyZWEtPmhhc0RlYnVnSW5kaWNhdG9yKCkgPyBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6TGF5ZXJDb250ZW50c1R5cGU6OklPU3VyZmFjZSA6IFJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlOjpMYXllckNvbnRlbnRzVHlwZTo6Q0FNYWNoUG9ydDsKICNlbmRpZgog
ICAgIAogICAgIGZvciAoYXV0byYgY2hhbmdlZExheWVyIDogdHJhbnNhY3Rpb24uY2hhbmdlZExh
eWVyUHJvcGVydGllcygpKSB7CkBAIC0xNjAsNiArMTYxLDggQEAgdm9pZCBSZW1vdGVMYXllclRy
ZWVIb3N0OjpsYXllcldpbGxCZVJlbQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmFuaW1h
dGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXll
cklELCBDQUFuaW1hdGlvbiAqYW5pbWF0aW9uLCBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSkKIHsK
KyAgICBpZiAoIW1fZHJhd2luZ0FyZWEpCisgICAgICAgIHJldHVybjsKICAgICBDQUxheWVyICps
YXllciA9IGFzTGF5ZXIoZ2V0TGF5ZXIobGF5ZXJJRCkpOwogICAgIGlmICghbGF5ZXIpCiAgICAg
ICAgIHJldHVybjsKQEAgLTE3MywxMSArMTc2LDEzIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9z
dDo6YW5pbWF0aW9uRGlkU3QKICAgICB9CiAKICAgICBpZiAoIWFuaW1hdGlvbktleS5pc0VtcHR5
KCkpCi0gICAgICAgIG1fZHJhd2luZ0FyZWEuYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydChs
YXllcklELCBhbmltYXRpb25LZXksIHN0YXJ0VGltZSk7CisgICAgICAgIG1fZHJhd2luZ0FyZWEt
PmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQobGF5ZXJJRCwgYW5pbWF0aW9uS2V5LCBzdGFy
dFRpbWUpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmFuaW1hdGlvbkRpZEVuZChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCwgQ0FBbmltYXRp
b24gKmFuaW1hdGlvbikKIHsKKyAgICBpZiAoIW1fZHJhd2luZ0FyZWEpCisgICAgICAgIHJldHVy
bjsKICAgICBDQUxheWVyICpsYXllciA9IGFzTGF5ZXIoZ2V0TGF5ZXIobGF5ZXJJRCkpOwogICAg
IGlmICghbGF5ZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTE5MSw3ICsxOTYsMTIgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVIb3N0OjphbmltYXRpb25EaWRFbgogICAgIH0KIAogICAgIGlmICghYW5p
bWF0aW9uS2V5LmlzRW1wdHkoKSkKLSAgICAgICAgbV9kcmF3aW5nQXJlYS5hY2NlbGVyYXRlZEFu
aW1hdGlvbkRpZEVuZChsYXllcklELCBhbmltYXRpb25LZXkpOworICAgICAgICBtX2RyYXdpbmdB
cmVhLT5hY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZChsYXllcklELCBhbmltYXRpb25LZXkpOwor
fQorCit2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmRldGFjaEZyb21EcmF3aW5nQXJlYSgpCit7
CisgICAgbV9kcmF3aW5nQXJlYSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
SG9zdDo6Y2xlYXJMYXllcnMoKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTIsNyArMjEyLDggQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc0RpZEV4aXQoKQog
dm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc1dpbGxTd2FwKCkKIHsKICAgICAvLyBGSVhNRTog
SXQgZGlkbid0IHJlYWxseSBleGl0LgotICAgIHByb2Nlc3NEaWRFeGl0KCk7CisgICAgW21fY29u
dGVudFZpZXcgX3Byb2Nlc3NEaWRFeGl0XTsKKyAgICBbbV93ZWJWaWV3IF9wcm9jZXNzV2lsbFN3
YXBdOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3MoKQpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCShy
ZXZpc2lvbiAyMzYzODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05OTMsNiArOTkzLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6Om9wZW5QREZGcm9tVGVtcG9yYXJ5Rgogdm9pZCBXZWJQYWdlUHJveHk6OnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoTGF5ZXJPclZpZXcqIHJvb3RMYXllcikKIHsKICAg
ICBwYWdlQ2xpZW50KCkuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihyb290TGF5
ZXIpOworICAgIG1fZnJvemVuUmVtb3RlTGF5ZXJUcmVlSG9zdCA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywg
Y29uc3QgSW50UmVjdCYgZWxlbWVudFJlY3QsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBw
b2xpY3ksIGNvbnN0IFN0cmluZyYgY29udGV4dFVJRCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkocmV2aXNpb24gMjM2MzgyKQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkod29ya2luZyBj
b3B5KQpAQCAtNDU4LDYgKzQ1OCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjppbnRyaW5zaWNDb250
ZW50U2l6ZUQKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9v
dExheWVyKExheWVyT3JWaWV3KiByb290TGF5ZXIpCiB7CiAgICAgcGFnZUNsaWVudCgpLnNldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIocm9vdExheWVyKTsKKyAgICBtX2Zyb3plblJl
bW90ZUxheWVyVHJlZUhvc3QgPSBudWxscHRyOwogfQogCiBMYXllck9yVmlldyogV2ViUGFnZVBy
b3h5OjphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3QK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350749</attachid>
            <date>2018-09-25 06:31:31 -0700</date>
            <delta_ts>2018-09-25 06:47:47 -0700</delta_ts>
            <desc>patch</desc>
            <filename>pson-no-flash-ios-5.patch</filename>
            <type>text/plain</type>
            <size>19483</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzY0NTUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE4LTA5LTI1ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChQU09OKTogV2hp
dGUgb3IgQmxhY2sgZmxhc2ggb2NjdXJzIHdoZW4gcHJvY2VzcyBzd2FwcGluZyBvbiBuYXZpZ2F0
aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg5Njk1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDU1MTE0Nj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmVlemUgdGhlIGxheWVycyBv
biBVSSBwcm9jZXNzIHNpZGUgZHVyaW5nIHByb2Nlc3Mgc3dhcC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nl
c3NXaWxsQ2hhbmdlXSk6CisKKyAgICAgICAgU2hhcmVkIHdvcmsgb2YgX3Byb2Nlc3NXaWxsU3dh
cCBhbmQgX3Byb2Nlc3NEaWRFeGl0LgorCisgICAgICAgICgtW1dLV2ViVmlldyBfcHJvY2Vzc1dp
bGxTd2FwXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfcHJvY2Vzc0RpZEV4aXRdKToKKworICAg
ICAgICBTcGxpdCBpbnRvIHR3byBmdW5jdGlvbnMuIERvbid0IHJlc2V0IHNjcm9sbCBwb3NpdGlv
biBhbmQgc2ltaWxhciB3aGVuIGRvaW5nIG5hdmlnYXRpb24gc3dhcC4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHk6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkZXRhY2hSZW1vdGVMYXllclRyZWVI
b3N0KToKKworICAgICAgICBBZGQgdG8gd2F5IHRvIGRldGFjaCBSZW1vdGVMYXllclRyZWVIb3N0
IGZyb20gdGhlIGRyYXdpbmcgYXJlYS4gSW5lcnQgUmVtb3RlTGF5ZXJUcmVlSG9zdCB3aWxsIGhv
c3QKKyAgICAgICAgdGhlIGZyb3plbiBsYXllcnMuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlRGVidWdJbmRpY2F0
b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpo
aWRlQ29udGVudFVudGlsUGVuZGluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmhpZGVDb250ZW50VW50aWxBbnlVcGRhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpwcmVwYXJlRm9y
QXBwU3VzcGVuc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6Omhhc1Zpc2libGVDb250ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6bGF5ZXJXaXRoSURGb3JUZXN0aW5nIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZUhvc3QubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OlJlbW90ZUxh
eWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRh
dGVMYXllclRyZWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0Ojphbmlt
YXRpb25EaWRTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmFu
aW1hdGlvbkRpZEVuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmRl
dGFjaEZyb21EcmF3aW5nQXJlYSk6CisKKyAgICAgICAgQ2xlYXIgdGhlIERyYXdpbmdBcmVhIGJh
Y2twb2ludGVyLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKToKKworICAgICAg
ICBEZXRhY2ggYW5kIHNhdmUgdGhlIGN1cnJlbnQgUmVtb3RlTGF5ZXJUcmVlSG9zdCBvbiBuYXZp
Z2F0aW9uIHN3YXAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnByb2Nlc3NXaWxsU3dhcCk6CisKKyAgICAgICAgQXZvaWQgcmVz
ZXRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIpOgorCisgICAgICAgIERyb3AgdGhlIGZyb3plbiBs
YXllcnMgYWZ0ZXIgc2V0dGluZyB0aGUgbmV3IHJvb3QgbGF5ZXIuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKToKKworICAgICAgICBGb3Ig
Y29tcGxldGVuZXNzIGRvIHRoaXMgYWxzbyBvbiBNYWMgKHdoZXJlIHJlbW90ZSBsYXllcnMgYXJl
IGN1cnJlbnRseSBub3QgdXNlZCkuCisKIDIwMTgtMDktMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXguCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDIzNjM4MikKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI1MDcsNyArMjUwNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRp
b25Jbk4KICAgICAgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2Fj
dGlvbigpOwogICAgICAgICBtX3BhZ2VMb2FkU3RhdGUuc2V0UGVuZGluZ0FQSVJlcXVlc3RVUkwo
dHJhbnNhY3Rpb24sIGl0ZW0tPnVybCgpKTsKIAotICAgICAgICBhdXRvIGl0ZW1TdGF0ZXMgPSBt
X2JhY2tGb3J3YXJkTGlzdC0+IGZpbHRlcmVkSXRlbVN0YXRlcyhbdGhpcywgdGFyZ2V0SXRlbSA9
IGl0ZW1dKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pIHsKKyAgICAgICAgYXV0byBpdGVt
U3RhdGVzID0gbV9iYWNrRm9yd2FyZExpc3QtPmZpbHRlcmVkSXRlbVN0YXRlcyhbdGhpcywgdGFy
Z2V0SXRlbSA9IGl0ZW1dKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pIHsKICAgICAgICAg
ICAgIGlmIChhdXRvKiBwYWdlID0gaXRlbS5zdXNwZW5kZWRQYWdlKCkpIHsKICAgICAgICAgICAg
ICAgICBpZiAocGFnZS0+cHJvY2VzcygpID09IG1fcHJvY2Vzcy5wdHIoKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjAxNyw3ICs2MDE3LDE2IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGUKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBt
X3Njcm9sbGluZ1BlcmZvcm1hbmNlRGF0YSA9IG51bGxwdHI7CiAjZW5kaWYKLSAgICBtX2RyYXdp
bmdBcmVhID0gbnVsbHB0cjsKKworICAgIGlmIChtX2RyYXdpbmdBcmVhKSB7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgICAgIGlmIChyZXNldFN0YXRlUmVhc29uID09IFJlc2V0U3RhdGVSZWFz
b246Ok5hdmlnYXRpb25Td2FwICYmIGlzPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk+
KCptX2RyYXdpbmdBcmVhKSkgeworICAgICAgICAgICAgLy8gS2VlcCBsYXllcnMgYXJvdW5kIGlu
IGZyb3plbiBzdGF0ZSB0byBhdm9pZCBmbGFzaGluZyBkdXJpbmcgcHJvY2VzcyBzd2Fwcy4KKyAg
ICAgICAgICAgIG1fZnJvemVuUmVtb3RlTGF5ZXJUcmVlSG9zdCA9IGRvd25jYXN0PFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk+KCptX2RyYXdpbmdBcmVhKS5kZXRhY2hSZW1vdGVMYXll
clRyZWVIb3N0KCk7CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBtX2RyYXdpbmdBcmVhID0g
bnVsbHB0cjsKKyAgICB9CiAgICAgY2xvc2VPdmVybGF5ZWRWaWV3cygpOwogCiAgICAgaWYgKG1f
aW5zcGVjdG9yKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAko
cmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMyw2ICsyMjMsNyBAQCBjbGFzcyBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViTW91c2VFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldo
ZWVsRXZlbnQ7CiBjbGFzcyBQYWdlQ2xpZW50OworY2xhc3MgUmVtb3RlTGF5ZXJUcmVlSG9zdDsK
IGNsYXNzIFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YTsKIGNsYXNzIFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTsKQEAgLTE4NjEsMTAgKzE4NjIsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNM
b2FkaW5nQWx0ZXJuYXRlSFRNTFN0cmluZ0ZvckZhaWxpbmdQcm92aXNpb25hbExvYWQgeyBmYWxz
ZSB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IG1fZHJhd2luZ0Fy
ZWE7Ci0jaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oQ09DT0EpCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxheWVyVHJlZUhvc3Q+
IG1fZnJvemVuUmVtb3RlTGF5ZXJUcmVlSG9zdDsKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5PiBt
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiAjZW5kaWYKLQorI2VuZGlmCiAgICAgUmVmPFdl
YlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwogICAgIFJlZjxXZWJQYWdlR3JvdXA+IG1fcGFnZUdy
b3VwOwogICAgIFJlZjxXZWJQcmVmZXJlbmNlcz4gbV9wcmVmZXJlbmNlczsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24g
MjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTY1NCwxNSArMTY1NCwxMSBAQCAtIChVSUVkZ2VJbnNldHMp
X2NvbXB1dGVkVW5vYnNjdXJlZFNhZmVBCiAgICAgcmV0dXJuIFVJRWRnZUluc2V0c1plcm87CiB9
CiAKLS0gKHZvaWQpX3Byb2Nlc3NEaWRFeGl0CistICh2b2lkKV9wcm9jZXNzV2lsbENoYW5nZQog
ewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVwIC1bV0tXZWJWaWV3IF9wcm9jZXNzRGlk
RXhpdF0iLCBzZWxmKTsKKyAgICAvLyBGSVhNRTogV2hpY2ggb25lcyBvZiB0aGVzZSBuZWVkIHRv
IGJlIGRvbmUgaW4gdGhlIHByb2Nlc3Mgc3dhcCBjYXNlIGFuZCB3aGljaCBvbmVzIGluIHRoZSBl
eGl0IGNhc2U/CiAgICAgW3NlbGYgX2hpZGVQYXNzd29yZFZpZXddOwogICAgIFtzZWxmIF9jYW5j
ZWxBbmltYXRlZFJlc2l6ZV07Ci0gICAgW19jb250ZW50VmlldyBzZXRGcmFtZTpzZWxmLmJvdW5k
c107Ci0gICAgW19zY3JvbGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciB3aGl0ZUNv
bG9yXV07Ci0gICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6W3NlbGYgX2luaXRpYWxD
b250ZW50T2Zmc2V0Rm9yU2Nyb2xsVmlld11dOwotICAgIFtfc2Nyb2xsVmlldyBzZXRab29tU2Nh
bGU6MV07CiAKICAgICBfdmlld3BvcnRNZXRhVGFnV2lkdGggPSBXZWJDb3JlOjpWaWV3cG9ydEFy
Z3VtZW50czo6VmFsdWVBdXRvOwogICAgIF9pbml0aWFsU2NhbGVGYWN0b3IgPSAxOwpAQCAtMTY5
NSw2ICsxNjkxLDI0IEBAIC0gKHZvaWQpX3Byb2Nlc3NEaWRFeGl0CiAgICAgX2F2b2lkc1Vuc2Fm
ZUFyZWEgPSBZRVM7CiB9CiAKKy0gKHZvaWQpX3Byb2Nlc3NXaWxsU3dhcAoreworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoIiVwIC1bV0tXZWJWaWV3IF9wcm9jZXNzV2lsbFN3YXBdIiwgc2Vs
Zik7CisgICAgW3NlbGYgX3Byb2Nlc3NXaWxsQ2hhbmdlXTsKK30KKworLSAodm9pZClfcHJvY2Vz
c0RpZEV4aXQKK3sKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAtW1dLV2ViVmlldyBf
cHJvY2Vzc0RpZEV4aXRdIiwgc2VsZik7CisKKyAgICBbc2VsZiBfcHJvY2Vzc1dpbGxDaGFuZ2Vd
OworCisgICAgW19jb250ZW50VmlldyBzZXRGcmFtZTpzZWxmLmJvdW5kc107CisgICAgW19zY3Jv
bGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciB3aGl0ZUNvbG9yXV07CisgICAgW19z
Y3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6W3NlbGYgX2luaXRpYWxDb250ZW50T2Zmc2V0Rm9y
U2Nyb2xsVmlld11dOworICAgIFtfc2Nyb2xsVmlldyBzZXRab29tU2NhbGU6MV07Cit9CisKIC0g
KHZvaWQpX2RpZFJlbGF1bmNoUHJvY2VzcwogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
IiVwIC1bV0tXZWJWaWV3IF9kaWRSZWxhdW5jaFByb2Nlc3NdIiwgc2VsZik7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaAkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDcgQEAg
c3RydWN0IFByaW50SW5mbzsKIAogI2lmIFBMQVRGT1JNKElPUykKIC0gKHZvaWQpX3Byb2Nlc3NE
aWRFeGl0OworLSAodm9pZClfcHJvY2Vzc1dpbGxTd2FwOwogLSAodm9pZClfZGlkUmVsYXVuY2hQ
cm9jZXNzOwogCiAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lOwpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCShyZXZpc2lvbiAy
MzYzODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw4
IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
KFdlYlBhZ2VQcm94eSYpOwogICAgIHZpcnR1YWwgflJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkoKTsKIAotICAgIGNvbnN0IFJlbW90ZUxheWVyVHJlZUhvc3QmIHJlbW90ZUxheWVyVHJl
ZUhvc3QoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUxheWVyVHJlZUhvc3Q7IH0KKyAgICBjb25z
dCBSZW1vdGVMYXllclRyZWVIb3N0JiByZW1vdGVMYXllclRyZWVIb3N0KCkgY29uc3QgeyByZXR1
cm4gKm1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVM
YXllclRyZWVIb3N0PiBkZXRhY2hSZW1vdGVMYXllclRyZWVIb3N0KCk7CiAKICAgICB2b2lkIGFj
Y2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5n
JiBrZXksIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lKTsKICAgICB2b2lkIGFjY2VsZXJhdGVkQW5p
bWF0aW9uRGlkRW5kKHVpbnQ2NF90IGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5KTsKQEAgLTEw
MCw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgc2VuZFVwZGF0ZUdlb21ldHJ5
KCk7CiAKLSAgICBSZW1vdGVMYXllclRyZWVIb3N0IG1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGF5ZXJUcmVlSG9zdD4gbV9yZW1vdGVMYXllclRyZWVI
b3N0OwogICAgIGJvb2wgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9tZXRyeSB7IGZhbHNlIH07
CiAgICAgZW51bSBEaWRVcGRhdGVNZXNzYWdlU3RhdGUgeyBEb2VzTm90TmVlZERpZFVwZGF0ZSwg
TmVlZHNEaWRVcGRhdGUsIE1pc3NlZENvbW1pdCB9OwogICAgIERpZFVwZGF0ZU1lc3NhZ2VTdGF0
ZSBtX2RpZFVwZGF0ZU1lc3NhZ2VTdGF0ZSB7IERvZXNOb3ROZWVkRGlkVXBkYXRlIH07CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQkocmV2
aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTEw
Nyw3ICsxMDcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eShXZWJQYWdl
UHJveHkmIHdlYlBhZ2VQcm94eSkKICAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFU
eXBlUmVtb3RlTGF5ZXJUcmVlLCB3ZWJQYWdlUHJveHkpCi0gICAgLCBtX3JlbW90ZUxheWVyVHJl
ZUhvc3QoKnRoaXMpCisgICAgLCBtX3JlbW90ZUxheWVyVHJlZUhvc3Qoc3RkOjptYWtlX3VuaXF1
ZTxSZW1vdGVMYXllclRyZWVIb3N0PigqdGhpcykpCiB7CiAjaWYgSEFWRShJT1NVUkZBQ0UpCiAg
ICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBwb29sIHN1cmZhY2VzIGluIHRoZSBVSSBwcm9jZXNzLgpA
QCAtMTMxLDYgKzEzMSwxNCBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp+UmVt
b3RlCiAjZW5kaWYKIH0KIAorCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGF5ZXJUcmVlSG9zdD4g
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGV0YWNoUmVtb3RlTGF5ZXJUcmVlSG9z
dCgpCit7CisgICAgbV9yZW1vdGVMYXllclRyZWVIb3N0LT5kZXRhY2hGcm9tRHJhd2luZ0FyZWEo
KTsKKyAgICByZXR1cm4gV1RGTW92ZShtX3JlbW90ZUxheWVyVHJlZUhvc3QpOworfQorCisKICNp
ZiBQTEFURk9STShJT1MpCiBXS09uZVNob3REaXNwbGF5TGlua0hhbmRsZXIgKlJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3BsYXlMaW5rSGFuZGxlcigpCiB7CkBAIC0xOTQsMTEg
KzIwMiwxMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvCiAgICAg
aWYgKGxheWVyVHJlZVRyYW5zYWN0aW9uLmhhc0VkaXRvclN0YXRlKCkpCiAgICAgICAgIG1fd2Vi
UGFnZVByb3h5LmVkaXRvclN0YXRlQ2hhbmdlZChsYXllclRyZWVUcmFuc2FjdGlvbi5lZGl0b3JT
dGF0ZSgpKTsKIAotICAgIGlmIChtX3JlbW90ZUxheWVyVHJlZUhvc3QudXBkYXRlTGF5ZXJUcmVl
KGxheWVyVHJlZVRyYW5zYWN0aW9uKSkgeworICAgIGlmIChtX3JlbW90ZUxheWVyVHJlZUhvc3Qt
PnVwZGF0ZUxheWVyVHJlZShsYXllclRyZWVUcmFuc2FjdGlvbikpIHsKICAgICAgICAgaWYgKGxh
eWVyVHJlZVRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSUQoKSA+PSBtX3RyYW5zYWN0aW9uSURGb3JV
bmhpZGluZ0NvbnRlbnQpCi0gICAgICAgICAgICBtX3dlYlBhZ2VQcm94eS5zZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nUm9vdExheWVyKG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC5yb290TGF5ZXIoKSk7
CisgICAgICAgICAgICBtX3dlYlBhZ2VQcm94eS5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9v
dExheWVyKG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCkpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBtX3JlbW90ZUxheWVyVHJlZUhvc3QuZGV0YWNoUm9vdExheWVyKCk7Cisg
ICAgICAgICAgICBtX3JlbW90ZUxheWVyVHJlZUhvc3QtPmRldGFjaFJvb3RMYXllcigpOwogICAg
IH0KIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCkBAIC0zMjksNyArMzM3LDcgQEAgdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cAogdm9pZCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcihJbnRTaXplIGNvbnRlbnRz
U2l6ZSwgYm9vbCByb290TGF5ZXJDaGFuZ2VkLCBmbG9hdCBzY2FsZSwgY29uc3QgSW50UG9pbnQm
IHNjcm9sbFBvc2l0aW9uKQogewogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSB0aGUgbGFzdCBzdWJs
YXllci4KLSAgICBDQUxheWVyICpyb290TGF5ZXIgPSBhc0xheWVyKG1fcmVtb3RlTGF5ZXJUcmVl
SG9zdC5yb290TGF5ZXIoKSk7CisgICAgQ0FMYXllciAqcm9vdExheWVyID0gYXNMYXllcihtX3Jl
bW90ZUxheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpKTsKICAgICBbbV90aWxlTWFwSG9zdExheWVy
IHJlbW92ZUZyb21TdXBlcmxheWVyXTsKICAgICBbcm9vdExheWVyIGFkZFN1YmxheWVyOm1fdGls
ZU1hcEhvc3RMYXllci5nZXQoKV07CiAKQEAgLTQ2OSwyMiArNDc3LDIyIEBAIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGkKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6aGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKQogewogICAgIG1fdHJh
bnNhY3Rpb25JREZvclVuaGlkaW5nQ29udGVudCA9IG5leHRMYXllclRyZWVUcmFuc2FjdGlvbklE
KCk7Ci0gICAgbV9yZW1vdGVMYXllclRyZWVIb3N0LmRldGFjaFJvb3RMYXllcigpOworICAgIG1f
cmVtb3RlTGF5ZXJUcmVlSG9zdC0+ZGV0YWNoUm9vdExheWVyKCk7CiB9CiAKIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aGlkZUNvbnRlbnRVbnRpbEFueVVwZGF0ZSgpCiB7
Ci0gICAgbV9yZW1vdGVMYXllclRyZWVIb3N0LmRldGFjaFJvb3RMYXllcigpOworICAgIG1fcmVt
b3RlTGF5ZXJUcmVlSG9zdC0+ZGV0YWNoUm9vdExheWVyKCk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6cHJlcGFyZUZvckFwcFN1c3BlbnNpb24oKQogewotICAg
IG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC5tYXBBbGxJT1N1cmZhY2VCYWNraW5nU3RvcmUoKTsKKyAg
ICBtX3JlbW90ZUxheWVyVHJlZUhvc3QtPm1hcEFsbElPU3VyZmFjZUJhY2tpbmdTdG9yZSgpOwog
fQogCiBib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6Omhhc1Zpc2libGVDb250
ZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yZW1vdGVMYXllclRyZWVIb3N0LnJvb3RMYXll
cigpOworICAgIHJldHVybiBtX3JlbW90ZUxheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpOwogfQog
CiBib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmlzQWx3YXlzT25Mb2dnaW5n
QWxsb3dlZCgpIGNvbnN0CkBAIC00OTQsNyArNTAyLDcgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5OjppcwogCiBMYXllck9yVmlldyogUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6bGF5ZXJXaXRoSURGb3JUZXN0aW5nKHVpbnQ2NF90IGxheWVySUQpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC5sYXllcldpdGhJREZvclRlc3Rp
bmcobGF5ZXJJRCk7CisgICAgcmV0dXJuIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC0+bGF5ZXJXaXRo
SURGb3JUZXN0aW5nKGxheWVySUQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVI
b3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZUhvc3QuaAkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QuaAkod29y
a2luZyBjb3B5KQpAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhbmltYXRpb25E
aWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIENBQW5pbWF0
aW9uICosIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lKTsKICAgICB2b2lkIGFuaW1hdGlvbkRpZEVu
ZChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIENBQW5pbWF0aW9uICop
OwogCisgICAgdm9pZCBkZXRhY2hGcm9tRHJhd2luZ0FyZWEoKTsKICAgICB2b2lkIGNsZWFyTGF5
ZXJzKCk7CiAKICAgICAvLyBEZXRhY2ggdGhlIHJvb3QgbGF5ZXI7IGl0IHdpbGwgYmUgcmVhdHRh
Y2hlZCB1cG9uIHRoZSBuZXh0IGluY29taW5nIGNvbW1pdC4KQEAgLTc4LDExICs3OSwxMSBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBsYXllcldpbGxCZVJlbW92ZWQoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6UGxhdGZvcm1MYXllcklEKTsKIAotICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkmIG1fZHJhd2luZ0FyZWE7Ci0gICAgTGF5ZXJPclZpZXcgKm1fcm9vdExheWVyOworICAg
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkqIG1fZHJhd2luZ0FyZWEgeyBudWxscHRy
IH07CisgICAgTGF5ZXJPclZpZXcgKm1fcm9vdExheWVyIHsgbnVsbHB0ciB9OwogICAgIEhhc2hN
YXA8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBSZXRhaW5QdHI8TGF5
ZXJPclZpZXc+PiBtX2xheWVyczsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OlBsYXRmb3JtTGF5ZXJJRCwgUmV0YWluUHRyPFdLQW5pbWF0aW9uRGVsZWdhdGU+PiBtX2FuaW1h
dGlvbkRlbGVnYXRlczsKLSAgICBib29sIG1faXNEZWJ1Z0xheWVyVHJlZUhvc3Q7CisgICAgYm9v
bCBtX2lzRGVidWdMYXllclRyZWVIb3N0IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZUhvc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0JKHJldmlzaW9uIDIzNjM4
MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVIb3N0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OSwxMiArNDksMTAgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNkZWZpbmUgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKG1fZHJhd2luZ0FyZWEuaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIFZpZXdTdGF0ZSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihtX2RyYXdpbmdBcmVhICYmIG1f
ZHJhd2luZ0FyZWEtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBWaWV3U3RhdGUsIF9fVkFf
QVJHU19fKQogCiBSZW1vdGVMYXllclRyZWVIb3N0OjpSZW1vdGVMYXllclRyZWVIb3N0KFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkmIGRyYXdpbmdBcmVhKQotICAgIDogbV9kcmF3aW5n
QXJlYShkcmF3aW5nQXJlYSkKLSAgICAsIG1fcm9vdExheWVyKG51bGxwdHIpCi0gICAgLCBtX2lz
RGVidWdMYXllclRyZWVIb3N0KGZhbHNlKQorICAgIDogbV9kcmF3aW5nQXJlYSgmZHJhd2luZ0Fy
ZWEpCiB7CiB9CiAKQEAgLTY4LDYgKzY2LDkgQEAgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6flJlbW90
ZUxheWVyVHJlZUhvcwogCiBib29sIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJl
ZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGZsb2F0IGlu
ZGljYXRvclNjYWxlRmFjdG9yKQogeworICAgIGlmICghbV9kcmF3aW5nQXJlYSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgZm9yIChjb25zdCBhdXRvJiBjcmVhdGVkTGF5ZXIgOiB0cmFu
c2FjdGlvbi5jcmVhdGVkTGF5ZXJzKCkpIHsKICAgICAgICAgY29uc3QgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyogcHJvcGVydGllcyA9IHRyYW5zYWN0aW9uLmNo
YW5nZWRMYXllclByb3BlcnRpZXMoKS5nZXQoY3JlYXRlZExheWVyLmxheWVySUQpOwogICAgICAg
ICBjcmVhdGVMYXllcihjcmVhdGVkTGF5ZXIsIHByb3BlcnRpZXMpOwpAQCAtOTEsNyArOTIsNyBA
QCBib29sIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJlCiAgICAgLy8gQ2FuJ3Qg
dXNlIHRoZSBpT1MgY29kZSBvbiBtYWNPUyB5ZXQ6IHJkYXI6Ly9wcm9ibGVtLzMxMjQ3NzMwCiAg
ICAgYXV0byBsYXllckNvbnRlbnRzVHlwZSA9IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpMYXll
ckNvbnRlbnRzVHlwZTo6SU9TdXJmYWNlOwogI2Vsc2UKLSAgICBhdXRvIGxheWVyQ29udGVudHNU
eXBlID0gbV9kcmF3aW5nQXJlYS5oYXNEZWJ1Z0luZGljYXRvcigpID8gUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6OkxheWVyQ29udGVudHNUeXBlOjpJT1N1cmZhY2UgOiBSZW1vdGVMYXllckJhY2tp
bmdTdG9yZTo6TGF5ZXJDb250ZW50c1R5cGU6OkNBTWFjaFBvcnQ7CisgICAgYXV0byBsYXllckNv
bnRlbnRzVHlwZSA9IG1fZHJhd2luZ0FyZWEtPmhhc0RlYnVnSW5kaWNhdG9yKCkgPyBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6TGF5ZXJDb250ZW50c1R5cGU6OklPU3VyZmFjZSA6IFJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlOjpMYXllckNvbnRlbnRzVHlwZTo6Q0FNYWNoUG9ydDsKICNlbmRpZgog
ICAgIAogICAgIGZvciAoYXV0byYgY2hhbmdlZExheWVyIDogdHJhbnNhY3Rpb24uY2hhbmdlZExh
eWVyUHJvcGVydGllcygpKSB7CkBAIC0xNjAsNiArMTYxLDggQEAgdm9pZCBSZW1vdGVMYXllclRy
ZWVIb3N0OjpsYXllcldpbGxCZVJlbQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmFuaW1h
dGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXll
cklELCBDQUFuaW1hdGlvbiAqYW5pbWF0aW9uLCBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSkKIHsK
KyAgICBpZiAoIW1fZHJhd2luZ0FyZWEpCisgICAgICAgIHJldHVybjsKICAgICBDQUxheWVyICps
YXllciA9IGFzTGF5ZXIoZ2V0TGF5ZXIobGF5ZXJJRCkpOwogICAgIGlmICghbGF5ZXIpCiAgICAg
ICAgIHJldHVybjsKQEAgLTE3MywxMSArMTc2LDEzIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9z
dDo6YW5pbWF0aW9uRGlkU3QKICAgICB9CiAKICAgICBpZiAoIWFuaW1hdGlvbktleS5pc0VtcHR5
KCkpCi0gICAgICAgIG1fZHJhd2luZ0FyZWEuYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydChs
YXllcklELCBhbmltYXRpb25LZXksIHN0YXJ0VGltZSk7CisgICAgICAgIG1fZHJhd2luZ0FyZWEt
PmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQobGF5ZXJJRCwgYW5pbWF0aW9uS2V5LCBzdGFy
dFRpbWUpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmFuaW1hdGlvbkRpZEVuZChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCwgQ0FBbmltYXRp
b24gKmFuaW1hdGlvbikKIHsKKyAgICBpZiAoIW1fZHJhd2luZ0FyZWEpCisgICAgICAgIHJldHVy
bjsKICAgICBDQUxheWVyICpsYXllciA9IGFzTGF5ZXIoZ2V0TGF5ZXIobGF5ZXJJRCkpOwogICAg
IGlmICghbGF5ZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTE5MSw3ICsxOTYsMTIgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVIb3N0OjphbmltYXRpb25EaWRFbgogICAgIH0KIAogICAgIGlmICghYW5p
bWF0aW9uS2V5LmlzRW1wdHkoKSkKLSAgICAgICAgbV9kcmF3aW5nQXJlYS5hY2NlbGVyYXRlZEFu
aW1hdGlvbkRpZEVuZChsYXllcklELCBhbmltYXRpb25LZXkpOworICAgICAgICBtX2RyYXdpbmdB
cmVhLT5hY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZChsYXllcklELCBhbmltYXRpb25LZXkpOwor
fQorCit2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmRldGFjaEZyb21EcmF3aW5nQXJlYSgpCit7
CisgICAgbV9kcmF3aW5nQXJlYSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
SG9zdDo6Y2xlYXJMYXllcnMoKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTIsNyArMjEyLDggQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc0RpZEV4aXQoKQog
dm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc1dpbGxTd2FwKCkKIHsKICAgICAvLyBGSVhNRTog
SXQgZGlkbid0IHJlYWxseSBleGl0LgotICAgIHByb2Nlc3NEaWRFeGl0KCk7CisgICAgW21fY29u
dGVudFZpZXcgX3Byb2Nlc3NEaWRFeGl0XTsKKyAgICBbbV93ZWJWaWV3IF9wcm9jZXNzV2lsbFN3
YXBdOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3MoKQpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCShy
ZXZpc2lvbiAyMzYzODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05OTMsNiArOTkzLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6Om9wZW5QREZGcm9tVGVtcG9yYXJ5Rgogdm9pZCBXZWJQYWdlUHJveHk6OnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoTGF5ZXJPclZpZXcqIHJvb3RMYXllcikKIHsKICAg
ICBwYWdlQ2xpZW50KCkuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihyb290TGF5
ZXIpOworICAgIG1fZnJvemVuUmVtb3RlTGF5ZXJUcmVlSG9zdCA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywg
Y29uc3QgSW50UmVjdCYgZWxlbWVudFJlY3QsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBw
b2xpY3ksIGNvbnN0IFN0cmluZyYgY29udGV4dFVJRCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkocmV2aXNpb24gMjM2MzgyKQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCAiUERGQ29udGV4dE1lbnUuaCIKICNpbXBv
cnQgIlBhZ2VDbGllbnQuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsTWFjLmgiCisjaW1wb3J0
ICJSZW1vdGVMYXllclRyZWVIb3N0LmgiCiAjaW1wb3J0ICJQbHVnaW5Db21wbGV4VGV4dElucHV0
U3RhdGUuaCIKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2ltcG9ydCAiVGV4dENoZWNr
ZXIuaCIKQEAgLTQ1OCw2ICs0NTksNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aW50cmluc2ljQ29u
dGVudFNpemVECiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jv
b3RMYXllcihMYXllck9yVmlldyogcm9vdExheWVyKQogewogICAgIHBhZ2VDbGllbnQoKS5zZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKHJvb3RMYXllcik7CisgICAgbV9mcm96ZW5S
ZW1vdGVMYXllclRyZWVIb3N0ID0gbnVsbHB0cjsKIH0KIAogTGF5ZXJPclZpZXcqIFdlYlBhZ2VQ
cm94eTo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350750</attachid>
            <date>2018-09-25 06:47:47 -0700</date>
            <delta_ts>2018-09-26 04:28:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>pson-no-flash-ios-6.patch</filename>
            <type>text/plain</type>
            <size>19504</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzY0NTUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE4LTA5LTI1ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChQU09OKTogV2hp
dGUgb3IgQmxhY2sgZmxhc2ggb2NjdXJzIHdoZW4gcHJvY2VzcyBzd2FwcGluZyBvbiBuYXZpZ2F0
aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg5Njk1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDU1MTE0Nj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGcmVlemUgdGhlIGxheWVycyBv
biBVSSBwcm9jZXNzIHNpZGUgZHVyaW5nIHByb2Nlc3Mgc3dhcC4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nl
c3NXaWxsQ2hhbmdlXSk6CisKKyAgICAgICAgU2hhcmVkIHdvcmsgb2YgX3Byb2Nlc3NXaWxsU3dh
cCBhbmQgX3Byb2Nlc3NEaWRFeGl0LgorCisgICAgICAgICgtW1dLV2ViVmlldyBfcHJvY2Vzc1dp
bGxTd2FwXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfcHJvY2Vzc0RpZEV4aXRdKToKKworICAg
ICAgICBTcGxpdCBpbnRvIHR3byBmdW5jdGlvbnMuIERvbid0IHJlc2V0IHNjcm9sbCBwb3NpdGlv
biBhbmQgc2ltaWxhciB3aGVuIGRvaW5nIG5hdmlnYXRpb24gc3dhcC4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHk6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkZXRhY2hSZW1vdGVMYXllclRyZWVI
b3N0KToKKworICAgICAgICBBZGQgdG8gd2F5IHRvIGRldGFjaCBSZW1vdGVMYXllclRyZWVIb3N0
IGZyb20gdGhlIGRyYXdpbmcgYXJlYS4gSW5lcnQgUmVtb3RlTGF5ZXJUcmVlSG9zdCB3aWxsIGhv
c3QKKyAgICAgICAgdGhlIGZyb3plbiBsYXllcnMuCisKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5ZXJUcmVlKToKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlRGVidWdJbmRpY2F0
b3IpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpo
aWRlQ29udGVudFVudGlsUGVuZGluZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmhpZGVDb250ZW50VW50aWxBbnlVcGRhdGUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpwcmVwYXJlRm9y
QXBwU3VzcGVuc2lvbik6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6Omhhc1Zpc2libGVDb250ZW50IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6UmVt
b3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6bGF5ZXJXaXRoSURGb3JUZXN0aW5nIGNvbnN0
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhv
c3QuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZUhvc3QubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OlJlbW90ZUxh
eWVyVHJlZUhvc3QpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRh
dGVMYXllclRyZWUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0Ojphbmlt
YXRpb25EaWRTdGFydCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmFu
aW1hdGlvbkRpZEVuZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxheWVyVHJlZUhvc3Q6OmRl
dGFjaEZyb21EcmF3aW5nQXJlYSk6CisKKyAgICAgICAgQ2xlYXIgdGhlIERyYXdpbmdBcmVhIGJh
Y2twb2ludGVyLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9uSW5OZXdQcm9jZXNz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKToKKworICAgICAg
ICBEZXRhY2ggYW5kIHNhdmUgdGhlIGN1cnJlbnQgUmVtb3RlTGF5ZXJUcmVlSG9zdCBvbiBuYXZp
Z2F0aW9uIHN3YXAuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnByb2Nlc3NXaWxsU3dhcCk6CisKKyAgICAgICAgQXZvaWQgcmVz
ZXRpbmcgdGhlIHNjcm9sbCBwb3NpdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV2Vi
UGFnZVByb3h5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIpOgorCisgICAgICAgIERyb3AgdGhlIGZyb3plbiBs
YXllcnMgYWZ0ZXIgc2V0dGluZyB0aGUgbmV3IHJvb3QgbGF5ZXIuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKToKKworICAgICAgICBGb3Ig
Y29tcGxldGVuZXNzIGRvIHRoaXMgYWxzbyBvbiBNYWMgKHdoZXJlIHJlbW90ZSBsYXllcnMgYXJl
IGN1cnJlbnRseSBub3QgdXNlZCkuCisKIDIwMTgtMDktMjQgIEFsZXggQ2hyaXN0ZW5zZW4gIDxh
Y2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBCdWlsZCBmaXguCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDIzNjM4MikKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI1MDcsNyArMjUwNyw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpjb250aW51ZU5hdmlnYXRp
b25Jbk4KICAgICAgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2Fj
dGlvbigpOwogICAgICAgICBtX3BhZ2VMb2FkU3RhdGUuc2V0UGVuZGluZ0FQSVJlcXVlc3RVUkwo
dHJhbnNhY3Rpb24sIGl0ZW0tPnVybCgpKTsKIAotICAgICAgICBhdXRvIGl0ZW1TdGF0ZXMgPSBt
X2JhY2tGb3J3YXJkTGlzdC0+IGZpbHRlcmVkSXRlbVN0YXRlcyhbdGhpcywgdGFyZ2V0SXRlbSA9
IGl0ZW1dKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pIHsKKyAgICAgICAgYXV0byBpdGVt
U3RhdGVzID0gbV9iYWNrRm9yd2FyZExpc3QtPmZpbHRlcmVkSXRlbVN0YXRlcyhbdGhpcywgdGFy
Z2V0SXRlbSA9IGl0ZW1dKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pIHsKICAgICAgICAg
ICAgIGlmIChhdXRvKiBwYWdlID0gaXRlbS5zdXNwZW5kZWRQYWdlKCkpIHsKICAgICAgICAgICAg
ICAgICBpZiAocGFnZS0+cHJvY2VzcygpID09IG1fcHJvY2Vzcy5wdHIoKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNjAxNyw3ICs2MDE3LDE2IEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGUKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBt
X3Njcm9sbGluZ1BlcmZvcm1hbmNlRGF0YSA9IG51bGxwdHI7CiAjZW5kaWYKLSAgICBtX2RyYXdp
bmdBcmVhID0gbnVsbHB0cjsKKworICAgIGlmIChtX2RyYXdpbmdBcmVhKSB7CisjaWYgUExBVEZP
Uk0oQ09DT0EpCisgICAgICAgIGlmIChyZXNldFN0YXRlUmVhc29uID09IFJlc2V0U3RhdGVSZWFz
b246Ok5hdmlnYXRpb25Td2FwICYmIGlzPFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk+
KCptX2RyYXdpbmdBcmVhKSkgeworICAgICAgICAgICAgLy8gS2VlcCBsYXllcnMgYXJvdW5kIGlu
IGZyb3plbiBzdGF0ZSB0byBhdm9pZCBmbGFzaGluZyBkdXJpbmcgcHJvY2VzcyBzd2Fwcy4KKyAg
ICAgICAgICAgIG1fZnJvemVuUmVtb3RlTGF5ZXJUcmVlSG9zdCA9IGRvd25jYXN0PFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk+KCptX2RyYXdpbmdBcmVhKS5kZXRhY2hSZW1vdGVMYXll
clRyZWVIb3N0KCk7CisgICAgICAgIH0KKyNlbmRpZgorICAgICAgICBtX2RyYXdpbmdBcmVhID0g
bnVsbHB0cjsKKyAgICB9CiAgICAgY2xvc2VPdmVybGF5ZWRWaWV3cygpOwogCiAgICAgaWYgKG1f
aW5zcGVjdG9yKSB7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAko
cmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgJKHdvcmtpbmcgY29weSkKQEAgLTIyMyw2ICsyMjMsNyBAQCBjbGFzcyBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50OwogY2xhc3MgTmF0aXZlV2ViTW91c2VFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYldo
ZWVsRXZlbnQ7CiBjbGFzcyBQYWdlQ2xpZW50OworY2xhc3MgUmVtb3RlTGF5ZXJUcmVlSG9zdDsK
IGNsYXNzIFJlbW90ZUxheWVyVHJlZVNjcm9sbGluZ1BlcmZvcm1hbmNlRGF0YTsKIGNsYXNzIFJl
bW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOwogY2xhc3MgUmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0
b3JQcm94eTsKQEAgLTE4NjEsMTAgKzE4NjIsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIG1faXNM
b2FkaW5nQWx0ZXJuYXRlSFRNTFN0cmluZ0ZvckZhaWxpbmdQcm92aXNpb25hbExvYWQgeyBmYWxz
ZSB9OwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVhUHJveHk+IG1fZHJhd2luZ0Fy
ZWE7Ci0jaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykgJiYgUExBVEZPUk0oQ09DT0EpCisjaWYg
UExBVEZPUk0oQ09DT0EpCisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxheWVyVHJlZUhvc3Q+
IG1fZnJvemVuUmVtb3RlTGF5ZXJUcmVlSG9zdDsKKyNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVTY3JvbGxpbmdDb29yZGluYXRvclByb3h5PiBt
X3Njcm9sbGluZ0Nvb3JkaW5hdG9yUHJveHk7CiAjZW5kaWYKLQorI2VuZGlmCiAgICAgUmVmPFdl
YlByb2Nlc3NQcm94eT4gbV9wcm9jZXNzOwogICAgIFJlZjxXZWJQYWdlR3JvdXA+IG1fcGFnZUdy
b3VwOwogICAgIFJlZjxXZWJQcmVmZXJlbmNlcz4gbV9wcmVmZXJlbmNlczsKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQkocmV2aXNpb24g
MjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQkod29ya2luZyBjb3B5KQpAQCAtMTY1NCwxNSArMTY1NCwxMSBAQCAtIChVSUVkZ2VJbnNldHMp
X2NvbXB1dGVkVW5vYnNjdXJlZFNhZmVBCiAgICAgcmV0dXJuIFVJRWRnZUluc2V0c1plcm87CiB9
CiAKLS0gKHZvaWQpX3Byb2Nlc3NEaWRFeGl0CistICh2b2lkKV9wcm9jZXNzV2lsbENoYW5nZQog
ewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIiVwIC1bV0tXZWJWaWV3IF9wcm9jZXNzRGlk
RXhpdF0iLCBzZWxmKTsKKyAgICAvLyBGSVhNRTogV2hpY2ggb25lcyBvZiB0aGVzZSBuZWVkIHRv
IGJlIGRvbmUgaW4gdGhlIHByb2Nlc3Mgc3dhcCBjYXNlIGFuZCB3aGljaCBvbmVzIGluIHRoZSBl
eGl0IGNhc2U/CiAgICAgW3NlbGYgX2hpZGVQYXNzd29yZFZpZXddOwogICAgIFtzZWxmIF9jYW5j
ZWxBbmltYXRlZFJlc2l6ZV07Ci0gICAgW19jb250ZW50VmlldyBzZXRGcmFtZTpzZWxmLmJvdW5k
c107Ci0gICAgW19zY3JvbGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciB3aGl0ZUNv
bG9yXV07Ci0gICAgW19zY3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6W3NlbGYgX2luaXRpYWxD
b250ZW50T2Zmc2V0Rm9yU2Nyb2xsVmlld11dOwotICAgIFtfc2Nyb2xsVmlldyBzZXRab29tU2Nh
bGU6MV07CiAKICAgICBfdmlld3BvcnRNZXRhVGFnV2lkdGggPSBXZWJDb3JlOjpWaWV3cG9ydEFy
Z3VtZW50czo6VmFsdWVBdXRvOwogICAgIF9pbml0aWFsU2NhbGVGYWN0b3IgPSAxOwpAQCAtMTY5
NSw2ICsxNjkxLDI0IEBAIC0gKHZvaWQpX3Byb2Nlc3NEaWRFeGl0CiAgICAgX2F2b2lkc1Vuc2Fm
ZUFyZWEgPSBZRVM7CiB9CiAKKy0gKHZvaWQpX3Byb2Nlc3NXaWxsU3dhcAoreworICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoIiVwIC1bV0tXZWJWaWV3IF9wcm9jZXNzV2lsbFN3YXBdIiwgc2Vs
Zik7CisgICAgW3NlbGYgX3Byb2Nlc3NXaWxsQ2hhbmdlXTsKK30KKworLSAodm9pZClfcHJvY2Vz
c0RpZEV4aXQKK3sKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAtW1dLV2ViVmlldyBf
cHJvY2Vzc0RpZEV4aXRdIiwgc2VsZik7CisKKyAgICBbc2VsZiBfcHJvY2Vzc1dpbGxDaGFuZ2Vd
OworCisgICAgW19jb250ZW50VmlldyBzZXRGcmFtZTpzZWxmLmJvdW5kc107CisgICAgW19zY3Jv
bGxWaWV3IHNldEJhY2tncm91bmRDb2xvcjpbVUlDb2xvciB3aGl0ZUNvbG9yXV07CisgICAgW19z
Y3JvbGxWaWV3IHNldENvbnRlbnRPZmZzZXQ6W3NlbGYgX2luaXRpYWxDb250ZW50T2Zmc2V0Rm9y
U2Nyb2xsVmlld11dOworICAgIFtfc2Nyb2xsVmlldyBzZXRab29tU2NhbGU6MV07Cit9CisKIC0g
KHZvaWQpX2RpZFJlbGF1bmNoUHJvY2VzcwogewogICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
IiVwIC1bV0tXZWJWaWV3IF9kaWRSZWxhdW5jaFByb2Nlc3NdIiwgc2VsZik7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJu
YWwuaAkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0ludGVybmFsLmgJKHdvcmtpbmcgY29weSkKQEAgLTgyLDYgKzgyLDcgQEAg
c3RydWN0IFByaW50SW5mbzsKIAogI2lmIFBMQVRGT1JNKElPUykKIC0gKHZvaWQpX3Byb2Nlc3NE
aWRFeGl0OworLSAodm9pZClfcHJvY2Vzc1dpbGxTd2FwOwogLSAodm9pZClfZGlkUmVsYXVuY2hQ
cm9jZXNzOwogCiAtICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lOwpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCShyZXZpc2lvbiAy
MzYzODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw4
IEBAIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
KFdlYlBhZ2VQcm94eSYpOwogICAgIHZpcnR1YWwgflJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkoKTsKIAotICAgIGNvbnN0IFJlbW90ZUxheWVyVHJlZUhvc3QmIHJlbW90ZUxheWVyVHJl
ZUhvc3QoKSBjb25zdCB7IHJldHVybiBtX3JlbW90ZUxheWVyVHJlZUhvc3Q7IH0KKyAgICBjb25z
dCBSZW1vdGVMYXllclRyZWVIb3N0JiByZW1vdGVMYXllclRyZWVIb3N0KCkgY29uc3QgeyByZXR1
cm4gKm1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsgfQorICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVM
YXllclRyZWVIb3N0PiBkZXRhY2hSZW1vdGVMYXllclRyZWVIb3N0KCk7CiAKICAgICB2b2lkIGFj
Y2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQodWludDY0X3QgbGF5ZXJJRCwgY29uc3QgU3RyaW5n
JiBrZXksIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lKTsKICAgICB2b2lkIGFjY2VsZXJhdGVkQW5p
bWF0aW9uRGlkRW5kKHVpbnQ2NF90IGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5KTsKQEAgLTEw
MCw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIAogICAgIHZvaWQgc2VuZFVwZGF0ZUdlb21ldHJ5
KCk7CiAKLSAgICBSZW1vdGVMYXllclRyZWVIb3N0IG1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsKKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGF5ZXJUcmVlSG9zdD4gbV9yZW1vdGVMYXllclRyZWVI
b3N0OwogICAgIGJvb2wgbV9pc1dhaXRpbmdGb3JEaWRVcGRhdGVHZW9tZXRyeSB7IGZhbHNlIH07
CiAgICAgZW51bSBEaWRVcGRhdGVNZXNzYWdlU3RhdGUgeyBEb2VzTm90TmVlZERpZFVwZGF0ZSwg
TmVlZHNEaWRVcGRhdGUsIE1pc3NlZENvbW1pdCB9OwogICAgIERpZFVwZGF0ZU1lc3NhZ2VTdGF0
ZSBtX2RpZFVwZGF0ZU1lc3NhZ2VTdGF0ZSB7IERvZXNOb3ROZWVkRGlkVXBkYXRlIH07CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQkocmV2
aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVl
L1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0JKHdvcmtpbmcgY29weSkKQEAgLTEw
Nyw3ICsxMDcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAogUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eShXZWJQYWdl
UHJveHkmIHdlYlBhZ2VQcm94eSkKICAgICA6IERyYXdpbmdBcmVhUHJveHkoRHJhd2luZ0FyZWFU
eXBlUmVtb3RlTGF5ZXJUcmVlLCB3ZWJQYWdlUHJveHkpCi0gICAgLCBtX3JlbW90ZUxheWVyVHJl
ZUhvc3QoKnRoaXMpCisgICAgLCBtX3JlbW90ZUxheWVyVHJlZUhvc3Qoc3RkOjptYWtlX3VuaXF1
ZTxSZW1vdGVMYXllclRyZWVIb3N0PigqdGhpcykpCiB7CiAjaWYgSEFWRShJT1NVUkZBQ0UpCiAg
ICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBwb29sIHN1cmZhY2VzIGluIHRoZSBVSSBwcm9jZXNzLgpA
QCAtMTMxLDYgKzEzMSwxNCBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp+UmVt
b3RlCiAjZW5kaWYKIH0KIAorCitzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGF5ZXJUcmVlSG9zdD4g
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGV0YWNoUmVtb3RlTGF5ZXJUcmVlSG9z
dCgpCit7CisgICAgbV9yZW1vdGVMYXllclRyZWVIb3N0LT5kZXRhY2hGcm9tRHJhd2luZ0FyZWEo
KTsKKyAgICByZXR1cm4gV1RGTW92ZShtX3JlbW90ZUxheWVyVHJlZUhvc3QpOworfQorCisKICNp
ZiBQTEFURk9STShJT1MpCiBXS09uZVNob3REaXNwbGF5TGlua0hhbmRsZXIgKlJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3BsYXlMaW5rSGFuZGxlcigpCiB7CkBAIC0xOTQsMTEg
KzIwMiwxMSBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvCiAgICAg
aWYgKGxheWVyVHJlZVRyYW5zYWN0aW9uLmhhc0VkaXRvclN0YXRlKCkpCiAgICAgICAgIG1fd2Vi
UGFnZVByb3h5LmVkaXRvclN0YXRlQ2hhbmdlZChsYXllclRyZWVUcmFuc2FjdGlvbi5lZGl0b3JT
dGF0ZSgpKTsKIAotICAgIGlmIChtX3JlbW90ZUxheWVyVHJlZUhvc3QudXBkYXRlTGF5ZXJUcmVl
KGxheWVyVHJlZVRyYW5zYWN0aW9uKSkgeworICAgIGlmIChtX3JlbW90ZUxheWVyVHJlZUhvc3Qt
PnVwZGF0ZUxheWVyVHJlZShsYXllclRyZWVUcmFuc2FjdGlvbikpIHsKICAgICAgICAgaWYgKGxh
eWVyVHJlZVRyYW5zYWN0aW9uLnRyYW5zYWN0aW9uSUQoKSA+PSBtX3RyYW5zYWN0aW9uSURGb3JV
bmhpZGluZ0NvbnRlbnQpCi0gICAgICAgICAgICBtX3dlYlBhZ2VQcm94eS5zZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nUm9vdExheWVyKG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC5yb290TGF5ZXIoKSk7
CisgICAgICAgICAgICBtX3dlYlBhZ2VQcm94eS5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9v
dExheWVyKG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCkpOwogICAgICAgICBlbHNl
Ci0gICAgICAgICAgICBtX3JlbW90ZUxheWVyVHJlZUhvc3QuZGV0YWNoUm9vdExheWVyKCk7Cisg
ICAgICAgICAgICBtX3JlbW90ZUxheWVyVHJlZUhvc3QtPmRldGFjaFJvb3RMYXllcigpOwogICAg
IH0KIAogI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpCkBAIC0zMjksNyArMzM3LDcgQEAgdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp1cAogdm9pZCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Ojp1cGRhdGVEZWJ1Z0luZGljYXRvcihJbnRTaXplIGNvbnRlbnRz
U2l6ZSwgYm9vbCByb290TGF5ZXJDaGFuZ2VkLCBmbG9hdCBzY2FsZSwgY29uc3QgSW50UG9pbnQm
IHNjcm9sbFBvc2l0aW9uKQogewogICAgIC8vIE1ha2Ugc3VyZSB3ZSdyZSB0aGUgbGFzdCBzdWJs
YXllci4KLSAgICBDQUxheWVyICpyb290TGF5ZXIgPSBhc0xheWVyKG1fcmVtb3RlTGF5ZXJUcmVl
SG9zdC5yb290TGF5ZXIoKSk7CisgICAgQ0FMYXllciAqcm9vdExheWVyID0gYXNMYXllcihtX3Jl
bW90ZUxheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpKTsKICAgICBbbV90aWxlTWFwSG9zdExheWVy
IHJlbW92ZUZyb21TdXBlcmxheWVyXTsKICAgICBbcm9vdExheWVyIGFkZFN1YmxheWVyOm1fdGls
ZU1hcEhvc3RMYXllci5nZXQoKV07CiAKQEAgLTQ2OSwyMiArNDc3LDIyIEBAIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGkKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6aGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKQogewogICAgIG1fdHJh
bnNhY3Rpb25JREZvclVuaGlkaW5nQ29udGVudCA9IG5leHRMYXllclRyZWVUcmFuc2FjdGlvbklE
KCk7Ci0gICAgbV9yZW1vdGVMYXllclRyZWVIb3N0LmRldGFjaFJvb3RMYXllcigpOworICAgIG1f
cmVtb3RlTGF5ZXJUcmVlSG9zdC0+ZGV0YWNoUm9vdExheWVyKCk7CiB9CiAKIHZvaWQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aGlkZUNvbnRlbnRVbnRpbEFueVVwZGF0ZSgpCiB7
Ci0gICAgbV9yZW1vdGVMYXllclRyZWVIb3N0LmRldGFjaFJvb3RMYXllcigpOworICAgIG1fcmVt
b3RlTGF5ZXJUcmVlSG9zdC0+ZGV0YWNoUm9vdExheWVyKCk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6cHJlcGFyZUZvckFwcFN1c3BlbnNpb24oKQogewotICAg
IG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC5tYXBBbGxJT1N1cmZhY2VCYWNraW5nU3RvcmUoKTsKKyAg
ICBtX3JlbW90ZUxheWVyVHJlZUhvc3QtPm1hcEFsbElPU3VyZmFjZUJhY2tpbmdTdG9yZSgpOwog
fQogCiBib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6Omhhc1Zpc2libGVDb250
ZW50KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9yZW1vdGVMYXllclRyZWVIb3N0LnJvb3RMYXll
cigpOworICAgIHJldHVybiBtX3JlbW90ZUxheWVyVHJlZUhvc3QtPnJvb3RMYXllcigpOwogfQog
CiBib29sIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmlzQWx3YXlzT25Mb2dnaW5n
QWxsb3dlZCgpIGNvbnN0CkBAIC00OTQsNyArNTAyLDcgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5OjppcwogCiBMYXllck9yVmlldyogUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6bGF5ZXJXaXRoSURGb3JUZXN0aW5nKHVpbnQ2NF90IGxheWVySUQpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC5sYXllcldpdGhJREZvclRlc3Rp
bmcobGF5ZXJJRCk7CisgICAgcmV0dXJuIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC0+bGF5ZXJXaXRo
SURGb3JUZXN0aW5nKGxheWVySUQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVI
b3N0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZUhvc3QuaAkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QuaAkod29y
a2luZyBjb3B5KQpAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBhbmltYXRpb25E
aWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIENBQW5pbWF0
aW9uICosIE1vbm90b25pY1RpbWUgc3RhcnRUaW1lKTsKICAgICB2b2lkIGFuaW1hdGlvbkRpZEVu
ZChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIENBQW5pbWF0aW9uICop
OwogCisgICAgdm9pZCBkZXRhY2hGcm9tRHJhd2luZ0FyZWEoKTsKICAgICB2b2lkIGNsZWFyTGF5
ZXJzKCk7CiAKICAgICAvLyBEZXRhY2ggdGhlIHJvb3QgbGF5ZXI7IGl0IHdpbGwgYmUgcmVhdHRh
Y2hlZCB1cG9uIHRoZSBuZXh0IGluY29taW5nIGNvbW1pdC4KQEAgLTc4LDExICs3OSwxMSBAQCBw
cml2YXRlOgogCiAgICAgdm9pZCBsYXllcldpbGxCZVJlbW92ZWQoV2ViQ29yZTo6R3JhcGhpY3NM
YXllcjo6UGxhdGZvcm1MYXllcklEKTsKIAotICAgIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkmIG1fZHJhd2luZ0FyZWE7Ci0gICAgTGF5ZXJPclZpZXcgKm1fcm9vdExheWVyOworICAg
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkqIG1fZHJhd2luZ0FyZWEgeyBudWxscHRy
IH07CisgICAgTGF5ZXJPclZpZXcgKm1fcm9vdExheWVyIHsgbnVsbHB0ciB9OwogICAgIEhhc2hN
YXA8V2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZvcm1MYXllcklELCBSZXRhaW5QdHI8TGF5
ZXJPclZpZXc+PiBtX2xheWVyczsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6
OlBsYXRmb3JtTGF5ZXJJRCwgUmV0YWluUHRyPFdLQW5pbWF0aW9uRGVsZWdhdGU+PiBtX2FuaW1h
dGlvbkRlbGVnYXRlczsKLSAgICBib29sIG1faXNEZWJ1Z0xheWVyVHJlZUhvc3Q7CisgICAgYm9v
bCBtX2lzRGVidWdMYXllclRyZWVIb3N0IHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZUhvc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUhvc3QubW0JKHJldmlzaW9uIDIzNjM4
MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXll
clRyZWVIb3N0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OSwxMiArNDksMTAgQEAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNkZWZpbmUgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCguLi4pIFJFTEVBU0VfTE9HX0lGKG1fZHJhd2luZ0FyZWEuaXNBbHdheXNP
bkxvZ2dpbmdBbGxvd2VkKCksIFZpZXdTdGF0ZSwgX19WQV9BUkdTX18pCisjZGVmaW5lIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19JRihtX2RyYXdpbmdBcmVhICYmIG1f
ZHJhd2luZ0FyZWEtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBWaWV3U3RhdGUsIF9fVkFf
QVJHU19fKQogCiBSZW1vdGVMYXllclRyZWVIb3N0OjpSZW1vdGVMYXllclRyZWVIb3N0KFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkmIGRyYXdpbmdBcmVhKQotICAgIDogbV9kcmF3aW5n
QXJlYShkcmF3aW5nQXJlYSkKLSAgICAsIG1fcm9vdExheWVyKG51bGxwdHIpCi0gICAgLCBtX2lz
RGVidWdMYXllclRyZWVIb3N0KGZhbHNlKQorICAgIDogbV9kcmF3aW5nQXJlYSgmZHJhd2luZ0Fy
ZWEpCiB7CiB9CiAKQEAgLTY4LDYgKzY2LDkgQEAgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6flJlbW90
ZUxheWVyVHJlZUhvcwogCiBib29sIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJl
ZShjb25zdCBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGZsb2F0IGlu
ZGljYXRvclNjYWxlRmFjdG9yKQogeworICAgIGlmICghbV9kcmF3aW5nQXJlYSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCiAgICAgZm9yIChjb25zdCBhdXRvJiBjcmVhdGVkTGF5ZXIgOiB0cmFu
c2FjdGlvbi5jcmVhdGVkTGF5ZXJzKCkpIHsKICAgICAgICAgY29uc3QgUmVtb3RlTGF5ZXJUcmVl
VHJhbnNhY3Rpb246OkxheWVyUHJvcGVydGllcyogcHJvcGVydGllcyA9IHRyYW5zYWN0aW9uLmNo
YW5nZWRMYXllclByb3BlcnRpZXMoKS5nZXQoY3JlYXRlZExheWVyLmxheWVySUQpOwogICAgICAg
ICBjcmVhdGVMYXllcihjcmVhdGVkTGF5ZXIsIHByb3BlcnRpZXMpOwpAQCAtOTEsNyArOTIsNyBA
QCBib29sIFJlbW90ZUxheWVyVHJlZUhvc3Q6OnVwZGF0ZUxheWVyVHJlCiAgICAgLy8gQ2FuJ3Qg
dXNlIHRoZSBpT1MgY29kZSBvbiBtYWNPUyB5ZXQ6IHJkYXI6Ly9wcm9ibGVtLzMxMjQ3NzMwCiAg
ICAgYXV0byBsYXllckNvbnRlbnRzVHlwZSA9IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpMYXll
ckNvbnRlbnRzVHlwZTo6SU9TdXJmYWNlOwogI2Vsc2UKLSAgICBhdXRvIGxheWVyQ29udGVudHNU
eXBlID0gbV9kcmF3aW5nQXJlYS5oYXNEZWJ1Z0luZGljYXRvcigpID8gUmVtb3RlTGF5ZXJCYWNr
aW5nU3RvcmU6OkxheWVyQ29udGVudHNUeXBlOjpJT1N1cmZhY2UgOiBSZW1vdGVMYXllckJhY2tp
bmdTdG9yZTo6TGF5ZXJDb250ZW50c1R5cGU6OkNBTWFjaFBvcnQ7CisgICAgYXV0byBsYXllckNv
bnRlbnRzVHlwZSA9IG1fZHJhd2luZ0FyZWEtPmhhc0RlYnVnSW5kaWNhdG9yKCkgPyBSZW1vdGVM
YXllckJhY2tpbmdTdG9yZTo6TGF5ZXJDb250ZW50c1R5cGU6OklPU3VyZmFjZSA6IFJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlOjpMYXllckNvbnRlbnRzVHlwZTo6Q0FNYWNoUG9ydDsKICNlbmRpZgog
ICAgIAogICAgIGZvciAoYXV0byYgY2hhbmdlZExheWVyIDogdHJhbnNhY3Rpb24uY2hhbmdlZExh
eWVyUHJvcGVydGllcygpKSB7CkBAIC0xNjAsNiArMTYxLDggQEAgdm9pZCBSZW1vdGVMYXllclRy
ZWVIb3N0OjpsYXllcldpbGxCZVJlbQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmFuaW1h
dGlvbkRpZFN0YXJ0KFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCBsYXll
cklELCBDQUFuaW1hdGlvbiAqYW5pbWF0aW9uLCBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSkKIHsK
KyAgICBpZiAoIW1fZHJhd2luZ0FyZWEpCisgICAgICAgIHJldHVybjsKICAgICBDQUxheWVyICps
YXllciA9IGFzTGF5ZXIoZ2V0TGF5ZXIobGF5ZXJJRCkpOwogICAgIGlmICghbGF5ZXIpCiAgICAg
ICAgIHJldHVybjsKQEAgLTE3MywxMSArMTc2LDEzIEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9z
dDo6YW5pbWF0aW9uRGlkU3QKICAgICB9CiAKICAgICBpZiAoIWFuaW1hdGlvbktleS5pc0VtcHR5
KCkpCi0gICAgICAgIG1fZHJhd2luZ0FyZWEuYWNjZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydChs
YXllcklELCBhbmltYXRpb25LZXksIHN0YXJ0VGltZSk7CisgICAgICAgIG1fZHJhd2luZ0FyZWEt
PmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQobGF5ZXJJRCwgYW5pbWF0aW9uS2V5LCBzdGFy
dFRpbWUpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmFuaW1hdGlvbkRpZEVuZChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCwgQ0FBbmltYXRp
b24gKmFuaW1hdGlvbikKIHsKKyAgICBpZiAoIW1fZHJhd2luZ0FyZWEpCisgICAgICAgIHJldHVy
bjsKICAgICBDQUxheWVyICpsYXllciA9IGFzTGF5ZXIoZ2V0TGF5ZXIobGF5ZXJJRCkpOwogICAg
IGlmICghbGF5ZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTE5MSw3ICsxOTYsMTIgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVIb3N0OjphbmltYXRpb25EaWRFbgogICAgIH0KIAogICAgIGlmICghYW5p
bWF0aW9uS2V5LmlzRW1wdHkoKSkKLSAgICAgICAgbV9kcmF3aW5nQXJlYS5hY2NlbGVyYXRlZEFu
aW1hdGlvbkRpZEVuZChsYXllcklELCBhbmltYXRpb25LZXkpOworICAgICAgICBtX2RyYXdpbmdB
cmVhLT5hY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZChsYXllcklELCBhbmltYXRpb25LZXkpOwor
fQorCit2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmRldGFjaEZyb21EcmF3aW5nQXJlYSgpCit7
CisgICAgbV9kcmF3aW5nQXJlYSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVl
SG9zdDo6Y2xlYXJMYXllcnMoKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Bh
Z2VDbGllbnRJbXBsSU9TLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9QYWdlQ2xpZW50SW1wbElPUy5tbQkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0yMTIsNyArMjEyLDggQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc0RpZEV4aXQoKQog
dm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc1dpbGxTd2FwKCkKIHsKICAgICAvLyBGSVhNRTog
SXQgZGlkbid0IHJlYWxseSBleGl0LgotICAgIHByb2Nlc3NEaWRFeGl0KCk7CisgICAgW21fY29u
dGVudFZpZXcgX3Byb2Nlc3NEaWRFeGl0XTsKKyAgICBbbV93ZWJWaWV3IF9wcm9jZXNzV2lsbFN3
YXBdOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3MoKQpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCShy
ZXZpc2lvbiAyMzYzODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVBy
b3h5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC05OTMsNiArOTkzLDcgQEAgdm9pZCBXZWJQYWdl
UHJveHk6Om9wZW5QREZGcm9tVGVtcG9yYXJ5Rgogdm9pZCBXZWJQYWdlUHJveHk6OnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoTGF5ZXJPclZpZXcqIHJvb3RMYXllcikKIHsKICAg
ICBwYWdlQ2xpZW50KCkuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihyb290TGF5
ZXIpOworICAgIG1fZnJvemVuUmVtb3RlTGF5ZXJUcmVlSG9zdCA9IG51bGxwdHI7CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywg
Y29uc3QgSW50UmVjdCYgZWxlbWVudFJlY3QsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBw
b2xpY3ksIGNvbnN0IFN0cmluZyYgY29udGV4dFVJRCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkocmV2aXNpb24gMjM2MzgyKQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkod29ya2luZyBj
b3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCAiUGFnZUNsaWVudC5oIgogI2ltcG9ydCAi
UGFnZUNsaWVudEltcGxNYWMuaCIKICNpbXBvcnQgIlBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0
ZS5oIgorI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgogI2ltcG9ydCAiU3RyaW5nVXRp
bGl0aWVzLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKQEAgLTQ1OCw2ICs0NTksNyBAQCB2b2lkIFdlYlBh
Z2VQcm94eTo6aW50cmluc2ljQ29udGVudFNpemVECiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihMYXllck9yVmlldyogcm9vdExheWVyKQogewog
ICAgIHBhZ2VDbGllbnQoKS5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKHJvb3RM
YXllcik7CisgICAgbV9mcm96ZW5SZW1vdGVMYXllclRyZWVIb3N0ID0gbnVsbHB0cjsKIH0KIAog
TGF5ZXJPclZpZXcqIFdlYlBhZ2VQcm94eTo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXll
cigpIGNvbnN0Cg==
</data>
<flag name="review"
          id="368145"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
    <flag name="commit-queue"
          id="368152"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350855</attachid>
            <date>2018-09-26 04:28:38 -0700</date>
            <delta_ts>2018-09-26 05:06:19 -0700</delta_ts>
            <desc>patch</desc>
            <filename>pson-no-flash-ios-7.patch</filename>
            <type>text/plain</type>
            <size>20581</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzY0NTUpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDcxIEBACisyMDE4LTA5LTI1ICBBbnR0aSBLb2l2
aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChQU09OKTogV2hp
dGUgb3IgQmxhY2sgZmxhc2ggb2NjdXJzIHdoZW4gcHJvY2VzcyBzd2FwcGluZyBvbiBuYXZpZ2F0
aW9uIG9uIGlPUworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTg5Njk1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80NDU1MTE0Nj4KKworICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgRnJlZXplIHRoZSBsYXllcnMgb24g
VUkgcHJvY2VzcyBzaWRlIGR1cmluZyBwcm9jZXNzIHN3YXAuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wcm9jZXNz
V2lsbENoYW5nZV0pOgorCisgICAgICAgIFNoYXJlZCB3b3JrIG9mIF9wcm9jZXNzV2lsbFN3YXAg
YW5kIF9wcm9jZXNzRGlkRXhpdC4KKworICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NXaWxs
U3dhcF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3Byb2Nlc3NEaWRFeGl0XSk6CisKKyAgICAg
ICAgU3BsaXQgaW50byB0d28gZnVuY3Rpb25zLiBEb24ndCByZXNldCBzY3JvbGwgcG9zaXRpb24g
YW5kIHNpbWlsYXIgd2hlbiBkb2luZyBuYXZpZ2F0aW9uIHN3YXAuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGV0YWNoUmVtb3RlTGF5ZXJUcmVlSG9z
dCk6CisKKyAgICAgICAgQWRkIHRvIHdheSB0byBkZXRhY2ggUmVtb3RlTGF5ZXJUcmVlSG9zdCBm
cm9tIHRoZSBkcmF3aW5nIGFyZWEuIEluZXJ0IFJlbW90ZUxheWVyVHJlZUhvc3Qgd2lsbCBob3N0
CisgICAgICAgIHRoZSBmcm96ZW4gbGF5ZXJzLgorCisgICAgICAgIChXZWJLaXQ6OlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmNvbW1pdExheWVyVHJlZSk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnVwZGF0ZURlYnVnSW5kaWNhdG9y
KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aGlk
ZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5OjpoaWRlQ29udGVudFVudGlsQW55VXBkYXRlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6cHJlcGFyZUZvckFw
cFN1c3BlbnNpb24pOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5OjpoYXNWaXNpYmxlQ29udGVudCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmxheWVyV2l0aElERm9yVGVzdGluZyBjb25zdCk6
CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVI
b3N0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpSZW1vdGVMYXll
clRyZWVIb3N0KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6dXBkYXRl
TGF5ZXJUcmVlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlSG9zdDo6YW5pbWF0
aW9uRGlkU3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0Ojphbmlt
YXRpb25EaWRFbmQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVIb3N0OjpkZXRh
Y2hGcm9tRHJhd2luZ0FyZWEpOgorCisgICAgICAgIENsZWFyIHRoZSBEcmF3aW5nQXJlYSBiYWNr
cG9pbnRlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmNvbnRpbnVlTmF2aWdhdGlvbkluTmV3UHJvY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6cmVzZXRTdGF0ZSk6CisKKyAgICAgICAg
RGV0YWNoIGFuZCBzYXZlIHRoZSBjdXJyZW50IFJlbW90ZUxheWVyVHJlZUhvc3Qgb24gbmF2aWdh
dGlvbiBzd2FwLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpwcm9jZXNzV2lsbFN3YXApOgorCisgICAgICAgIEF2b2lkIHJlc2V0
aW5nIHRoZSBzY3JvbGwgcG9zaXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBh
Z2VQcm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nUm9vdExheWVyKToKKworICAgICAgICBEcm9wIHRoZSBmcm96ZW4gbGF5
ZXJzIGFmdGVyIHNldHRpbmcgdGhlIG5ldyByb290IGxheWVyLgorCisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcik6CisKKyAgICAgICAgRm9yIGNv
bXBsZXRlbmVzcyBkbyB0aGlzIGFsc28gb24gTWFjICh3aGVyZSByZW1vdGUgbGF5ZXJzIGFyZSBj
dXJyZW50bHkgbm90IHVzZWQpLgorCiAyMDE4LTA5LTI0ICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGQgZml4LgpJbmRleDogU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAyMzYzODIpCisrKyBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yNTA3LDcgKzI1MDcsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y29udGludWVOYXZpZ2F0aW9u
SW5OCiAgICAgICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3BhZ2VMb2FkU3RhdGUudHJhbnNhY3Rp
b24oKTsKICAgICAgICAgbV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRy
YW5zYWN0aW9uLCBpdGVtLT51cmwoKSk7CiAKLSAgICAgICAgYXV0byBpdGVtU3RhdGVzID0gbV9i
YWNrRm9yd2FyZExpc3QtPiBmaWx0ZXJlZEl0ZW1TdGF0ZXMoW3RoaXMsIHRhcmdldEl0ZW0gPSBp
dGVtXShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtKSB7CisgICAgICAgIGF1dG8gaXRlbVN0
YXRlcyA9IG1fYmFja0ZvcndhcmRMaXN0LT5maWx0ZXJlZEl0ZW1TdGF0ZXMoW3RoaXMsIHRhcmdl
dEl0ZW0gPSBpdGVtXShXZWJCYWNrRm9yd2FyZExpc3RJdGVtJiBpdGVtKSB7CiAgICAgICAgICAg
ICBpZiAoYXV0byogcGFnZSA9IGl0ZW0uc3VzcGVuZGVkUGFnZSgpKSB7CiAgICAgICAgICAgICAg
ICAgaWYgKHBhZ2UtPnByb2Nlc3MoKSA9PSBtX3Byb2Nlc3MucHRyKCkpCiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTYwMTcsNyArNjAxNywxNiBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6cmVzZXRTdGF0ZShSZXNldFN0YXRlCiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgbV9z
Y3JvbGxpbmdQZXJmb3JtYW5jZURhdGEgPSBudWxscHRyOwogI2VuZGlmCi0gICAgbV9kcmF3aW5n
QXJlYSA9IG51bGxwdHI7CisKKyAgICBpZiAobV9kcmF3aW5nQXJlYSkgeworI2lmIFBMQVRGT1JN
KENPQ09BKQorICAgICAgICBpZiAocmVzZXRTdGF0ZVJlYXNvbiA9PSBSZXNldFN0YXRlUmVhc29u
OjpOYXZpZ2F0aW9uU3dhcCAmJiBpczxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Pigq
bV9kcmF3aW5nQXJlYSkpIHsKKyAgICAgICAgICAgIC8vIEtlZXAgbGF5ZXJzIGFyb3VuZCBpbiBm
cm96ZW4gc3RhdGUgdG8gYXZvaWQgZmxhc2hpbmcgZHVyaW5nIHByb2Nlc3Mgc3dhcHMuCisgICAg
ICAgICAgICBtX2Zyb3plblJlbW90ZUxheWVyVHJlZUhvc3QgPSBkb3duY2FzdDxSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5PigqbV9kcmF3aW5nQXJlYSkuZGV0YWNoUmVtb3RlTGF5ZXJU
cmVlSG9zdCgpOworICAgICAgICB9CisjZW5kaWYKKyAgICAgICAgbV9kcmF3aW5nQXJlYSA9IG51
bGxwdHI7CisgICAgfQogICAgIGNsb3NlT3ZlcmxheWVkVmlld3MoKTsKIAogICAgIGlmIChtX2lu
c3BlY3RvcikgewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJl
dmlzaW9uIDIzNjM4MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0yMjMsNiArMjIzLDcgQEAgY2xhc3MgTmF0aXZlV2ViS2V5Ym9h
cmRFdmVudDsKIGNsYXNzIE5hdGl2ZVdlYk1vdXNlRXZlbnQ7CiBjbGFzcyBOYXRpdmVXZWJXaGVl
bEV2ZW50OwogY2xhc3MgUGFnZUNsaWVudDsKK2NsYXNzIFJlbW90ZUxheWVyVHJlZUhvc3Q7CiBj
bGFzcyBSZW1vdGVMYXllclRyZWVTY3JvbGxpbmdQZXJmb3JtYW5jZURhdGE7CiBjbGFzcyBSZW1v
dGVMYXllclRyZWVUcmFuc2FjdGlvbjsKIGNsYXNzIFJlbW90ZVNjcm9sbGluZ0Nvb3JkaW5hdG9y
UHJveHk7CkBAIC0xODYxLDEwICsxODYyLDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzTG9h
ZGluZ0FsdGVybmF0ZUhUTUxTdHJpbmdGb3JGYWlsaW5nUHJvdmlzaW9uYWxMb2FkIHsgZmFsc2Ug
fTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBtX2RyYXdpbmdBcmVh
OwotI2lmIEVOQUJMRShBU1lOQ19TQ1JPTExJTkcpICYmIFBMQVRGT1JNKENPQ09BKQorI2lmIFBM
QVRGT1JNKENPQ09BKQorICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW1vdGVMYXllclRyZWVIb3N0PiBt
X2Zyb3plblJlbW90ZUxheWVyVHJlZUhvc3Q7CisjaWYgRU5BQkxFKEFTWU5DX1NDUk9MTElORykK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlU2Nyb2xsaW5nQ29vcmRpbmF0b3JQcm94eT4gbV9z
Y3JvbGxpbmdDb29yZGluYXRvclByb3h5OwogI2VuZGlmCi0KKyNlbmRpZgogICAgIFJlZjxXZWJQ
cm9jZXNzUHJveHk+IG1fcHJvY2VzczsKICAgICBSZWY8V2ViUGFnZUdyb3VwPiBtX3BhZ2VHcm91
cDsKICAgICBSZWY8V2ViUHJlZmVyZW5jZXM+IG1fcHJlZmVyZW5jZXM7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDIz
NjM4MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0J
KHdvcmtpbmcgY29weSkKQEAgLTE2NTQsMTUgKzE2NTQsMTEgQEAgLSAoVUlFZGdlSW5zZXRzKV9j
b21wdXRlZFVub2JzY3VyZWRTYWZlQQogICAgIHJldHVybiBVSUVkZ2VJbnNldHNaZXJvOwogfQog
Ci0tICh2b2lkKV9wcm9jZXNzRGlkRXhpdAorLSAodm9pZClfcHJvY2Vzc1dpbGxTd2FwT3JEaWRF
eGl0CiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLVtXS1dlYlZpZXcgX3Byb2Nl
c3NEaWRFeGl0XSIsIHNlbGYpOworICAgIC8vIEZJWE1FOiBXaGljaCBvbmVzIG9mIHRoZXNlIG5l
ZWQgdG8gYmUgZG9uZSBpbiB0aGUgcHJvY2VzcyBzd2FwIGNhc2UgYW5kIHdoaWNoIG9uZXMgaW4g
dGhlIGV4aXQgY2FzZT8KICAgICBbc2VsZiBfaGlkZVBhc3N3b3JkVmlld107CiAgICAgW3NlbGYg
X2NhbmNlbEFuaW1hdGVkUmVzaXplXTsKLSAgICBbX2NvbnRlbnRWaWV3IHNldEZyYW1lOnNlbGYu
Ym91bmRzXTsKLSAgICBbX3Njcm9sbFZpZXcgc2V0QmFja2dyb3VuZENvbG9yOltVSUNvbG9yIHdo
aXRlQ29sb3JdXTsKLSAgICBbX3Njcm9sbFZpZXcgc2V0Q29udGVudE9mZnNldDpbc2VsZiBfaW5p
dGlhbENvbnRlbnRPZmZzZXRGb3JTY3JvbGxWaWV3XV07Ci0gICAgW19zY3JvbGxWaWV3IHNldFpv
b21TY2FsZToxXTsKIAogICAgIF92aWV3cG9ydE1ldGFUYWdXaWR0aCA9IFdlYkNvcmU6OlZpZXdw
b3J0QXJndW1lbnRzOjpWYWx1ZUF1dG87CiAgICAgX2luaXRpYWxTY2FsZUZhY3RvciA9IDE7CkBA
IC0xNjk1LDYgKzE2OTEsMjUgQEAgLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQKICAgICBfYXZvaWRz
VW5zYWZlQXJlYSA9IFlFUzsKIH0KIAorLSAodm9pZClfcHJvY2Vzc1dpbGxTd2FwCit7CisgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiJXAgLVtXS1dlYlZpZXcgX3Byb2Nlc3NXaWxsU3dhcF0i
LCBzZWxmKTsKKyAgICBbc2VsZiBfcHJvY2Vzc1dpbGxTd2FwT3JEaWRFeGl0XTsKK30KKworLSAo
dm9pZClfcHJvY2Vzc0RpZEV4aXQKK3sKKyAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAt
W1dLV2ViVmlldyBfcHJvY2Vzc0RpZEV4aXRdIiwgc2VsZik7CisKKyAgICBbc2VsZiBfcHJvY2Vz
c1dpbGxTd2FwT3JEaWRFeGl0XTsKKworICAgIFtfY29udGVudFZpZXcgc2V0RnJhbWU6c2VsZi5i
b3VuZHNdOworICAgIFtfc2Nyb2xsVmlldyBzZXRCYWNrZ3JvdW5kQ29sb3I6W1VJQ29sb3Igd2hp
dGVDb2xvcl1dOworICAgIFtfc2Nyb2xsVmlldyBzZXRDb250ZW50T2Zmc2V0OltzZWxmIF9pbml0
aWFsQ29udGVudE9mZnNldEZvclNjcm9sbFZpZXddXTsKKyAgICBbX3Njcm9sbFZpZXcgc2V0Wm9v
bVNjYWxlOjFdOworICAgIAorfQorCiAtICh2b2lkKV9kaWRSZWxhdW5jaFByb2Nlc3MKIHsKICAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCIlcCAtW1dLV2ViVmlldyBfZGlkUmVsYXVuY2hQcm9j
ZXNzXSIsIHNlbGYpOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlld0ludGVybmFsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgJKHJldmlzaW9uIDIzNjM4MikKKysrIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJbnRlcm5hbC5oCSh3b3JraW5n
IGNvcHkpCkBAIC04Miw2ICs4Miw3IEBAIHN0cnVjdCBQcmludEluZm87CiAKICNpZiBQTEFURk9S
TShJT1MpCiAtICh2b2lkKV9wcm9jZXNzRGlkRXhpdDsKKy0gKHZvaWQpX3Byb2Nlc3NXaWxsU3dh
cDsKIC0gKHZvaWQpX2RpZFJlbGF1bmNoUHJvY2VzczsKIAogLSAodm9pZClfZGlkQ29tbWl0TG9h
ZEZvck1haW5GcmFtZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaAkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAkod29y
a2luZyBjb3B5KQpAQCAtNDMsNyArNDMsOCBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eShXZWJQYWdlUHJveHkmKTsKICAgICB2aXJ0dWFsIH5S
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KCk7CiAKLSAgICBjb25zdCBSZW1vdGVMYXll
clRyZWVIb3N0JiByZW1vdGVMYXllclRyZWVIb3N0KCkgY29uc3QgeyByZXR1cm4gbV9yZW1vdGVM
YXllclRyZWVIb3N0OyB9CisgICAgY29uc3QgUmVtb3RlTGF5ZXJUcmVlSG9zdCYgcmVtb3RlTGF5
ZXJUcmVlSG9zdCgpIGNvbnN0IHsgcmV0dXJuICptX3JlbW90ZUxheWVyVHJlZUhvc3Q7IH0KKyAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UmVtb3RlTGF5ZXJUcmVlSG9zdD4gZGV0YWNoUmVtb3RlTGF5ZXJU
cmVlSG9zdCgpOwogCiAgICAgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZFN0YXJ0KHVpbnQ2
NF90IGxheWVySUQsIGNvbnN0IFN0cmluZyYga2V5LCBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSk7
CiAgICAgdm9pZCBhY2NlbGVyYXRlZEFuaW1hdGlvbkRpZEVuZCh1aW50NjRfdCBsYXllcklELCBj
b25zdCBTdHJpbmcmIGtleSk7CkBAIC0xMDAsNyArMTAxLDcgQEAgcHJpdmF0ZToKICAgICAKICAg
ICB2b2lkIHNlbmRVcGRhdGVHZW9tZXRyeSgpOwogCi0gICAgUmVtb3RlTGF5ZXJUcmVlSG9zdCBt
X3JlbW90ZUxheWVyVHJlZUhvc3Q7CisgICAgc3RkOjp1bmlxdWVfcHRyPFJlbW90ZUxheWVyVHJl
ZUhvc3Q+IG1fcmVtb3RlTGF5ZXJUcmVlSG9zdDsKICAgICBib29sIG1faXNXYWl0aW5nRm9yRGlk
VXBkYXRlR2VvbWV0cnkgeyBmYWxzZSB9OwogICAgIGVudW0gRGlkVXBkYXRlTWVzc2FnZVN0YXRl
IHsgRG9lc05vdE5lZWREaWRVcGRhdGUsIE5lZWRzRGlkVXBkYXRlLCBNaXNzZWRDb21taXQgfTsK
ICAgICBEaWRVcGRhdGVNZXNzYWdlU3RhdGUgbV9kaWRVcGRhdGVNZXNzYWdlU3RhdGUgeyBEb2Vz
Tm90TmVlZERpZFVwZGF0ZSB9OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkubW0JKHJldmlzaW9uIDIzNjM4MikKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xMDcsNyArMTA3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YkNvcmU7CiAKIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCiAgICAgOiBEcmF3
aW5nQXJlYVByb3h5KERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZSwgd2ViUGFnZVByb3h5
KQotICAgICwgbV9yZW1vdGVMYXllclRyZWVIb3N0KCp0aGlzKQorICAgICwgbV9yZW1vdGVMYXll
clRyZWVIb3N0KHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5ZXJUcmVlSG9zdD4oKnRoaXMpKQog
ewogI2lmIEhBVkUoSU9TVVJGQUNFKQogICAgIC8vIFdlIGRvbid0IHdhbnQgdG8gcG9vbCBzdXJm
YWNlcyBpbiB0aGUgVUkgcHJvY2Vzcy4KQEAgLTEzMSw2ICsxMzEsMTQgQEAgUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWFQcm94eTo6flJlbW90ZQogI2VuZGlmCiB9CiAKKworc3RkOjp1bmlxdWVf
cHRyPFJlbW90ZUxheWVyVHJlZUhvc3Q+IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
OmRldGFjaFJlbW90ZUxheWVyVHJlZUhvc3QoKQoreworICAgIG1fcmVtb3RlTGF5ZXJUcmVlSG9z
dC0+ZGV0YWNoRnJvbURyYXdpbmdBcmVhKCk7CisgICAgcmV0dXJuIFdURk1vdmUobV9yZW1vdGVM
YXllclRyZWVIb3N0KTsKK30KKworCiAjaWYgUExBVEZPUk0oSU9TKQogV0tPbmVTaG90RGlzcGxh
eUxpbmtIYW5kbGVyICpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwbGF5TGlu
a0hhbmRsZXIoKQogewpAQCAtMTk0LDExICsyMDIsMTEgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5OjpjbwogICAgIGlmIChsYXllclRyZWVUcmFuc2FjdGlvbi5oYXNFZGl0
b3JTdGF0ZSgpKQogICAgICAgICBtX3dlYlBhZ2VQcm94eS5lZGl0b3JTdGF0ZUNoYW5nZWQobGF5
ZXJUcmVlVHJhbnNhY3Rpb24uZWRpdG9yU3RhdGUoKSk7CiAKLSAgICBpZiAobV9yZW1vdGVMYXll
clRyZWVIb3N0LnVwZGF0ZUxheWVyVHJlZShsYXllclRyZWVUcmFuc2FjdGlvbikpIHsKKyAgICBp
ZiAobV9yZW1vdGVMYXllclRyZWVIb3N0LT51cGRhdGVMYXllclRyZWUobGF5ZXJUcmVlVHJhbnNh
Y3Rpb24pKSB7CiAgICAgICAgIGlmIChsYXllclRyZWVUcmFuc2FjdGlvbi50cmFuc2FjdGlvbklE
KCkgPj0gbV90cmFuc2FjdGlvbklERm9yVW5oaWRpbmdDb250ZW50KQotICAgICAgICAgICAgbV93
ZWJQYWdlUHJveHkuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihtX3JlbW90ZUxh
eWVyVHJlZUhvc3Qucm9vdExheWVyKCkpOworICAgICAgICAgICAgbV93ZWJQYWdlUHJveHkuc2V0
QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihtX3JlbW90ZUxheWVyVHJlZUhvc3QtPnJv
b3RMYXllcigpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgbV9yZW1vdGVMYXllclRyZWVI
b3N0LmRldGFjaFJvb3RMYXllcigpOworICAgICAgICAgICAgbV9yZW1vdGVMYXllclRyZWVIb3N0
LT5kZXRhY2hSb290TGF5ZXIoKTsKICAgICB9CiAKICNpZiBFTkFCTEUoQVNZTkNfU0NST0xMSU5H
KQpAQCAtMzI5LDcgKzMzNyw3IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6dXAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6dXBkYXRlRGVidWdJ
bmRpY2F0b3IoSW50U2l6ZSBjb250ZW50c1NpemUsIGJvb2wgcm9vdExheWVyQ2hhbmdlZCwgZmxv
YXQgc2NhbGUsIGNvbnN0IEludFBvaW50JiBzY3JvbGxQb3NpdGlvbikKIHsKICAgICAvLyBNYWtl
IHN1cmUgd2UncmUgdGhlIGxhc3Qgc3VibGF5ZXIuCi0gICAgQ0FMYXllciAqcm9vdExheWVyID0g
YXNMYXllcihtX3JlbW90ZUxheWVyVHJlZUhvc3Qucm9vdExheWVyKCkpOworICAgIENBTGF5ZXIg
KnJvb3RMYXllciA9IGFzTGF5ZXIobV9yZW1vdGVMYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKSk7
CiAgICAgW21fdGlsZU1hcEhvc3RMYXllciByZW1vdmVGcm9tU3VwZXJsYXllcl07CiAgICAgW3Jv
b3RMYXllciBhZGRTdWJsYXllcjptX3RpbGVNYXBIb3N0TGF5ZXIuZ2V0KCldOwogCkBAIC00Njks
MjIgKzQ3NywyMiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpCiB2
b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmhpZGVDb250ZW50VW50aWxQZW5k
aW5nVXBkYXRlKCkKIHsKICAgICBtX3RyYW5zYWN0aW9uSURGb3JVbmhpZGluZ0NvbnRlbnQgPSBu
ZXh0TGF5ZXJUcmVlVHJhbnNhY3Rpb25JRCgpOwotICAgIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC5k
ZXRhY2hSb290TGF5ZXIoKTsKKyAgICBtX3JlbW90ZUxheWVyVHJlZUhvc3QtPmRldGFjaFJvb3RM
YXllcigpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmhpZGVD
b250ZW50VW50aWxBbnlVcGRhdGUoKQogewotICAgIG1fcmVtb3RlTGF5ZXJUcmVlSG9zdC5kZXRh
Y2hSb290TGF5ZXIoKTsKKyAgICBtX3JlbW90ZUxheWVyVHJlZUhvc3QtPmRldGFjaFJvb3RMYXll
cigpOwogfQogCiB2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OnByZXBhcmVG
b3JBcHBTdXNwZW5zaW9uKCkKIHsKLSAgICBtX3JlbW90ZUxheWVyVHJlZUhvc3QubWFwQWxsSU9T
dXJmYWNlQmFja2luZ1N0b3JlKCk7CisgICAgbV9yZW1vdGVMYXllclRyZWVIb3N0LT5tYXBBbGxJ
T1N1cmZhY2VCYWNraW5nU3RvcmUoKTsKIH0KIAogYm9vbCBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5OjpoYXNWaXNpYmxlQ29udGVudCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcmVt
b3RlTGF5ZXJUcmVlSG9zdC5yb290TGF5ZXIoKTsKKyAgICByZXR1cm4gbV9yZW1vdGVMYXllclRy
ZWVIb3N0LT5yb290TGF5ZXIoKTsKIH0KIAogYm9vbCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5Ojppc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdApAQCAtNDk0LDcgKzUwMiw3
IEBAIGJvb2wgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6aXMKIAogTGF5ZXJPclZp
ZXcqIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmxheWVyV2l0aElERm9yVGVzdGlu
Zyh1aW50NjRfdCBsYXllcklEKSBjb25zdAogewotICAgIHJldHVybiBtX3JlbW90ZUxheWVyVHJl
ZUhvc3QubGF5ZXJXaXRoSURGb3JUZXN0aW5nKGxheWVySUQpOworICAgIHJldHVybiBtX3JlbW90
ZUxheWVyVHJlZUhvc3QtPmxheWVyV2l0aElERm9yVGVzdGluZyhsYXllcklEKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9zdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0LmgJKHJldmlz
aW9uIDIzNjM4MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVIb3N0LmgJKHdvcmtpbmcgY29weSkKQEAgLTYxLDYgKzYxLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgYW5pbWF0aW9uRGlkU3RhcnQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6
UGxhdGZvcm1MYXllcklELCBDQUFuaW1hdGlvbiAqLCBNb25vdG9uaWNUaW1lIHN0YXJ0VGltZSk7
CiAgICAgdm9pZCBhbmltYXRpb25EaWRFbmQoV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6UGxhdGZv
cm1MYXllcklELCBDQUFuaW1hdGlvbiAqKTsKIAorICAgIHZvaWQgZGV0YWNoRnJvbURyYXdpbmdB
cmVhKCk7CiAgICAgdm9pZCBjbGVhckxheWVycygpOwogCiAgICAgLy8gRGV0YWNoIHRoZSByb290
IGxheWVyOyBpdCB3aWxsIGJlIHJlYXR0YWNoZWQgdXBvbiB0aGUgbmV4dCBpbmNvbWluZyBjb21t
aXQuCkBAIC03OCwxMSArNzksMTEgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbGF5ZXJXaWxsQmVS
ZW1vdmVkKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRmb3JtTGF5ZXJJRCk7CiAKLSAgICBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5JiBtX2RyYXdpbmdBcmVhOwotICAgIExheWVy
T3JWaWV3ICptX3Jvb3RMYXllcjsKKyAgICBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
KiBtX2RyYXdpbmdBcmVhIHsgbnVsbHB0ciB9OworICAgIExheWVyT3JWaWV3ICptX3Jvb3RMYXll
ciB7IG51bGxwdHIgfTsKICAgICBIYXNoTWFwPFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OlBsYXRm
b3JtTGF5ZXJJRCwgUmV0YWluUHRyPExheWVyT3JWaWV3Pj4gbV9sYXllcnM7CiAgICAgSGFzaE1h
cDxXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9ybUxheWVySUQsIFJldGFpblB0cjxXS0Fu
aW1hdGlvbkRlbGVnYXRlPj4gbV9hbmltYXRpb25EZWxlZ2F0ZXM7Ci0gICAgYm9vbCBtX2lzRGVi
dWdMYXllclRyZWVIb3N0OworICAgIGJvb2wgbV9pc0RlYnVnTGF5ZXJUcmVlSG9zdCB7IGZhbHNl
IH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVIb3N0Lm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVIb3N0Lm1tCShyZXZpc2lvbiAyMzYzODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlSG9zdC5tbQkod29ya2luZyBjb3B5KQpAQCAt
NDksMTIgKzQ5LDEwIEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJD
b3JlOwogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoLi4uKSBSRUxFQVNFX0xPR19J
RihtX2RyYXdpbmdBcmVhLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBWaWV3U3RhdGUsIF9f
VkFfQVJHU19fKQorI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKC4uLikgUkVMRUFTRV9M
T0dfSUYobV9kcmF3aW5nQXJlYSAmJiBtX2RyYXdpbmdBcmVhLT5pc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoKSwgVmlld1N0YXRlLCBfX1ZBX0FSR1NfXykKIAogUmVtb3RlTGF5ZXJUcmVlSG9zdDo6
UmVtb3RlTGF5ZXJUcmVlSG9zdChSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5JiBkcmF3
aW5nQXJlYSkKLSAgICA6IG1fZHJhd2luZ0FyZWEoZHJhd2luZ0FyZWEpCi0gICAgLCBtX3Jvb3RM
YXllcihudWxscHRyKQotICAgICwgbV9pc0RlYnVnTGF5ZXJUcmVlSG9zdChmYWxzZSkKKyAgICA6
IG1fZHJhd2luZ0FyZWEoJmRyYXdpbmdBcmVhKQogewogfQogCkBAIC02OCw2ICs2Niw5IEBAIFJl
bW90ZUxheWVyVHJlZUhvc3Q6On5SZW1vdGVMYXllclRyZWVIb3MKIAogYm9vbCBSZW1vdGVMYXll
clRyZWVIb3N0Ojp1cGRhdGVMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCBmbG9hdCBpbmRpY2F0b3JTY2FsZUZhY3RvcikKIHsKKyAgICBpZiAo
IW1fZHJhd2luZ0FyZWEpCisgICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGZvciAoY29uc3Qg
YXV0byYgY3JlYXRlZExheWVyIDogdHJhbnNhY3Rpb24uY3JlYXRlZExheWVycygpKSB7CiAgICAg
ICAgIGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uOjpMYXllclByb3BlcnRpZXMqIHBy
b3BlcnRpZXMgPSB0cmFuc2FjdGlvbi5jaGFuZ2VkTGF5ZXJQcm9wZXJ0aWVzKCkuZ2V0KGNyZWF0
ZWRMYXllci5sYXllcklEKTsKICAgICAgICAgY3JlYXRlTGF5ZXIoY3JlYXRlZExheWVyLCBwcm9w
ZXJ0aWVzKTsKQEAgLTkxLDcgKzkyLDcgQEAgYm9vbCBSZW1vdGVMYXllclRyZWVIb3N0Ojp1cGRh
dGVMYXllclRyZQogICAgIC8vIENhbid0IHVzZSB0aGUgaU9TIGNvZGUgb24gbWFjT1MgeWV0OiBy
ZGFyOi8vcHJvYmxlbS8zMTI0NzczMAogICAgIGF1dG8gbGF5ZXJDb250ZW50c1R5cGUgPSBSZW1v
dGVMYXllckJhY2tpbmdTdG9yZTo6TGF5ZXJDb250ZW50c1R5cGU6OklPU3VyZmFjZTsKICNlbHNl
Ci0gICAgYXV0byBsYXllckNvbnRlbnRzVHlwZSA9IG1fZHJhd2luZ0FyZWEuaGFzRGVidWdJbmRp
Y2F0b3IoKSA/IFJlbW90ZUxheWVyQmFja2luZ1N0b3JlOjpMYXllckNvbnRlbnRzVHlwZTo6SU9T
dXJmYWNlIDogUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OkxheWVyQ29udGVudHNUeXBlOjpDQU1h
Y2hQb3J0OworICAgIGF1dG8gbGF5ZXJDb250ZW50c1R5cGUgPSBtX2RyYXdpbmdBcmVhLT5oYXNE
ZWJ1Z0luZGljYXRvcigpID8gUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmU6OkxheWVyQ29udGVudHNU
eXBlOjpJT1N1cmZhY2UgOiBSZW1vdGVMYXllckJhY2tpbmdTdG9yZTo6TGF5ZXJDb250ZW50c1R5
cGU6OkNBTWFjaFBvcnQ7CiAjZW5kaWYKICAgICAKICAgICBmb3IgKGF1dG8mIGNoYW5nZWRMYXll
ciA6IHRyYW5zYWN0aW9uLmNoYW5nZWRMYXllclByb3BlcnRpZXMoKSkgewpAQCAtMTYwLDYgKzE2
MSw5IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6bGF5ZXJXaWxsQmVSZW0KIAogdm9pZCBS
ZW1vdGVMYXllclRyZWVIb3N0OjphbmltYXRpb25EaWRTdGFydChXZWJDb3JlOjpHcmFwaGljc0xh
eWVyOjpQbGF0Zm9ybUxheWVySUQgbGF5ZXJJRCwgQ0FBbmltYXRpb24gKmFuaW1hdGlvbiwgTW9u
b3RvbmljVGltZSBzdGFydFRpbWUpCiB7CisgICAgaWYgKCFtX2RyYXdpbmdBcmVhKQorICAgICAg
ICByZXR1cm47CisKICAgICBDQUxheWVyICpsYXllciA9IGFzTGF5ZXIoZ2V0TGF5ZXIobGF5ZXJJ
RCkpOwogICAgIGlmICghbGF5ZXIpCiAgICAgICAgIHJldHVybjsKQEAgLTE3MywxMSArMTc3LDE0
IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9zdDo6YW5pbWF0aW9uRGlkU3QKICAgICB9CiAKICAg
ICBpZiAoIWFuaW1hdGlvbktleS5pc0VtcHR5KCkpCi0gICAgICAgIG1fZHJhd2luZ0FyZWEuYWNj
ZWxlcmF0ZWRBbmltYXRpb25EaWRTdGFydChsYXllcklELCBhbmltYXRpb25LZXksIHN0YXJ0VGlt
ZSk7CisgICAgICAgIG1fZHJhd2luZ0FyZWEtPmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkU3RhcnQo
bGF5ZXJJRCwgYW5pbWF0aW9uS2V5LCBzdGFydFRpbWUpOwogfQogCiB2b2lkIFJlbW90ZUxheWVy
VHJlZUhvc3Q6OmFuaW1hdGlvbkRpZEVuZChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpQbGF0Zm9y
bUxheWVySUQgbGF5ZXJJRCwgQ0FBbmltYXRpb24gKmFuaW1hdGlvbikKIHsKKyAgICBpZiAoIW1f
ZHJhd2luZ0FyZWEpCisgICAgICAgIHJldHVybjsKKwogICAgIENBTGF5ZXIgKmxheWVyID0gYXNM
YXllcihnZXRMYXllcihsYXllcklEKSk7CiAgICAgaWYgKCFsYXllcikKICAgICAgICAgcmV0dXJu
OwpAQCAtMTkxLDcgKzE5OCwxMiBAQCB2b2lkIFJlbW90ZUxheWVyVHJlZUhvc3Q6OmFuaW1hdGlv
bkRpZEVuCiAgICAgfQogCiAgICAgaWYgKCFhbmltYXRpb25LZXkuaXNFbXB0eSgpKQotICAgICAg
ICBtX2RyYXdpbmdBcmVhLmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlkRW5kKGxheWVySUQsIGFuaW1h
dGlvbktleSk7CisgICAgICAgIG1fZHJhd2luZ0FyZWEtPmFjY2VsZXJhdGVkQW5pbWF0aW9uRGlk
RW5kKGxheWVySUQsIGFuaW1hdGlvbktleSk7Cit9CisKK3ZvaWQgUmVtb3RlTGF5ZXJUcmVlSG9z
dDo6ZGV0YWNoRnJvbURyYXdpbmdBcmVhKCkKK3sKKyAgICBtX2RyYXdpbmdBcmVhID0gbnVsbHB0
cjsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVIb3N0OjpjbGVhckxheWVycygpCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCShy
ZXZpc2lvbiAyMzYzODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVu
dEltcGxJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTIxMSw4ICsyMTEsOCBAQCB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpwcm9jZXNzRGlkRXhpdCgpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnByb2Nl
c3NXaWxsU3dhcCgpCiB7Ci0gICAgLy8gRklYTUU6IEl0IGRpZG4ndCByZWFsbHkgZXhpdC4KLSAg
ICBwcm9jZXNzRGlkRXhpdCgpOworICAgIFttX2NvbnRlbnRWaWV3IF9wcm9jZXNzV2lsbFN3YXBd
OworICAgIFttX3dlYlZpZXcgX3Byb2Nlc3NXaWxsU3dhcF07CiB9CiAKIHZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZFJlbGF1bmNoUHJvY2VzcygpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgJKHJldmlzaW9uIDIzNjM4MikKKysrIFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDYg
Kzg1LDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiAKIC0gKHN0ZDo6dW5pcXVlX3B0cjxXZWJL
aXQ6OkRyYXdpbmdBcmVhUHJveHk+KV9jcmVhdGVEcmF3aW5nQXJlYVByb3h5OwogLSAodm9pZClf
cHJvY2Vzc0RpZEV4aXQ7CistICh2b2lkKV9wcm9jZXNzV2lsbFN3YXA7CiAtICh2b2lkKV9kaWRS
ZWxhdW5jaFByb2Nlc3M7CiAtICh2b2lkKV9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdFZp
ZXc6KFVJVmlldyAqKXJvb3RWaWV3OwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5tbQkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTUyMSw2
ICs1MjEsMTIgQEAgLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQKICAgICBbc2VsZiBfaGlkZUluc3Bl
Y3RvckhpZ2hsaWdodF07CiB9CiAKKy0gKHZvaWQpX3Byb2Nlc3NXaWxsU3dhcAoreworICAgIC8v
IEZJWE1FOiBTaG91bGQgd2UgZG8gc29tZXRoaW5nIGRpZmZlcmVudGx5PworICAgIFtzZWxmIF9w
cm9jZXNzRGlkRXhpdF07Cit9CisKIC0gKHZvaWQpX2RpZFJlbGF1bmNoUHJvY2VzcwogewogICAg
IFtzZWxmIF9hY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnNdOwpJbmRleDogU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dlYlBhZ2VQcm94eUlPUy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9TLm1tCShyZXZpc2lv
biAyMzYzODIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC05OTMsNiArOTkzLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
Om9wZW5QREZGcm9tVGVtcG9yYXJ5Rgogdm9pZCBXZWJQYWdlUHJveHk6OnNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdSb290TGF5ZXIoTGF5ZXJPclZpZXcqIHJvb3RMYXllcikKIHsKICAgICBwYWdl
Q2xpZW50KCkuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihyb290TGF5ZXIpOwor
ICAgIG1fZnJvemVuUmVtb3RlTGF5ZXJUcmVlSG9zdCA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2Vi
UGFnZVByb3h5OjpzaG93UGxheWJhY2tUYXJnZXRQaWNrZXIoYm9vbCBoYXNWaWRlbywgY29uc3Qg
SW50UmVjdCYgZWxlbWVudFJlY3QsIFdlYkNvcmU6OlJvdXRlU2hhcmluZ1BvbGljeSBwb2xpY3ks
IGNvbnN0IFN0cmluZyYgY29udGV4dFVJRCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9XZWJQYWdlUHJveHlNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkocmV2aXNpb24gMjM2MzgyKQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dlYlBhZ2VQcm94eU1hYy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCAiUGFnZUNsaWVudC5oIgogI2ltcG9ydCAiUGFnZUNs
aWVudEltcGxNYWMuaCIKICNpbXBvcnQgIlBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZS5oIgor
I2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVz
LmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRD
b250cm9sbGVySW50ZXJuYWwuaCIKQEAgLTQ1OCw2ICs0NTksNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6aW50cmluc2ljQ29udGVudFNpemVECiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0QWNjZWxlcmF0
ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihMYXllck9yVmlldyogcm9vdExheWVyKQogewogICAgIHBh
Z2VDbGllbnQoKS5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKHJvb3RMYXllcik7
CisgICAgbV9mcm96ZW5SZW1vdGVMYXllclRyZWVIb3N0ID0gbnVsbHB0cjsKIH0KIAogTGF5ZXJP
clZpZXcqIFdlYlBhZ2VQcm94eTo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNv
bnN0Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>