<?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>126488</bug_id>
          
          <creation_ts>2014-01-04 01:16:53 -0800</creation_ts>
          <short_desc>Move ViewState to WebCore</short_desc>
          <delta_ts>2014-01-06 11:25:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>525.x (Safari 3.1)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>philn</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>964384</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-01-04 01:16:53 -0800</bug_when>
    <thetext>With hindsight the new way of doing this isn&apos;t in all ways simpler, and it won&apos;t make sense to move this to WebCore (where ViewState is going).
Not a direct revert to keep some of the clean up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964385</commentid>
    <comment_count>1</comment_count>
      <attachid>220370</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-01-04 01:17:39 -0800</bug_when>
    <thetext>Created attachment 220370
WIP patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964434</commentid>
    <comment_count>2</comment_count>
      <attachid>220381</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-01-04 17:39:57 -0800</bug_when>
    <thetext>Created attachment 220381
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964436</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-01-04 17:41:36 -0800</bug_when>
    <thetext>Attachment 220381 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebCore/page/ViewState.h&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit2/Shared/ViewState.h&apos;, u&apos;Source/WebKit2/Shared/WebPageCreationParameters.cpp&apos;, u&apos;Source/WebKit2/Shared/WebPageCreationParameters.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/PageClientImpl.h&apos;, u&apos;Source/WebKit2/UIProcess/API/mac/PageClientImpl.mm&apos;, u&apos;Source/WebKit2/UIProcess/PageClient.h&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.cpp&apos;, u&apos;Source/WebKit2/UIProcess/WebPageProxy.h&apos;, u&apos;Source/WebKit2/WebKit2.xcodeproj/project.pbxproj&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.cpp&apos;, u&apos;Source/WebKit2/WebProcess/Plugins/PluginView.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/DrawingArea.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.cpp&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/WebPage.messages.in&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.h&apos;, u&apos;Source/WebKit2/WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm&apos;, &apos;--commit-queue&apos;]&quot; exit_code: 1
ERROR: Source/WebKit2/WebProcess/WebPage/DrawingArea.h:33:  &quot;WebCore/IntRect.h&quot; already included at Source/WebKit2/WebProcess/WebPage/DrawingArea.h:32  [build/include] [4]
Total errors found: 1 in 18 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>964438</commentid>
    <comment_count>4</comment_count>
      <attachid>220381</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2014-01-04 17:49:49 -0800</bug_when>
    <thetext>Comment on attachment 220381
Fix

Attachment 220381 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/6207138275786752</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964441</commentid>
    <comment_count>5</comment_count>
      <attachid>220383</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-01-04 18:41:59 -0800</bug_when>
    <thetext>Created attachment 220383
style+GTK fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964468</commentid>
    <comment_count>6</comment_count>
      <attachid>220389</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-01-05 00:32:05 -0800</bug_when>
    <thetext>Created attachment 220389
update</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>964689</commentid>
    <comment_count>7</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2014-01-06 11:25:27 -0800</bug_when>
    <thetext>Committed revision 161357.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220370</attachid>
            <date>2014-01-04 01:17:39 -0800</date>
            <delta_ts>2014-01-04 17:39:57 -0800</delta_ts>
            <desc>WIP patch for EWS</desc>
            <filename>126488.1.patch</filename>
            <type>text/plain</type>
            <size>18724</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIvU2hhcmVkL1ZpZXdTdGF0ZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIvU2hhcmVkL1ZpZXdTdGF0
ZS5oCShyZXZpc2lvbiAxNjEzMDApCisrKyAuLi9PcGVuU291cmNlL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9WaWV3U3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMzUsMTMgKzM1LDEyIEBAIHN0cnVj
dCBWaWV3U3RhdGUgewogICAgICAgICBJc1Zpc2libGUgPSAxIDw8IDIsCiAgICAgICAgIElzSW5X
aW5kb3cgPSAxIDw8IDMsCiAgICAgICAgIElzVmlzdWFsbHlJZGxlID0gMSA8PCA0LAotICAgICAg
ICBJc0xheWVyV2luZG93U2VydmVySG9zdGVkID0gMSA8PCA1LAogICAgIH07CiAKICAgICB0eXBl
ZGVmIHVuc2lnbmVkIEZsYWdzOwogCiAgICAgc3RhdGljIGNvbnN0IEZsYWdzIE5vRmxhZ3MgPSAw
OwotICAgIHN0YXRpYyBjb25zdCBGbGFncyBBbGxGbGFncyA9IFdpbmRvd0lzQWN0aXZlIHwgSXNG
b2N1c2VkIHwgSXNWaXNpYmxlIHwgSXNJbldpbmRvdyB8IElzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0
ZWQgfCBJc1Zpc3VhbGx5SWRsZTsKKyAgICBzdGF0aWMgY29uc3QgRmxhZ3MgQWxsRmxhZ3MgPSBX
aW5kb3dJc0FjdGl2ZSB8IElzRm9jdXNlZCB8IElzVmlzaWJsZSB8IElzSW5XaW5kb3cgfCBJc1Zp
c3VhbGx5SWRsZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogLi4vT3BlblNv
dXJjZS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gLi4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHJldmlzaW9uIDE2MTMwMCkKKysrIC4uL09wZW5Tb3Vy
Y2UvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02MCw2ICs2MCw3IEBAIHZvaWQgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVyczo6ZW5jb2RlKEkKICAgICBlbmNvZGVyIDw8IGF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1Zp
ZXdIZWlnaHQ7CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKHNjcm9sbFBpbm5pbmdCZWhhdmlvcik7
CiAgICAgZW5jb2RlciA8PCBiYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U7CisgICAgZW5jb2Rl
ci5lbmNvZGVFbnVtKGxheWVySG9zdGluZ01vZGUpOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IGVuY29kZXIgPDwgY29sb3JTcGFjZTsKQEAgLTEyMiw2ICsxMjMsOCBAQCBib29sIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnM6OmRlY29kZShJCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuYmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdl
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKHBh
cmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwYXJhbWV0ZXJzLmNv
bG9yU3BhY2UpKQpJbmRleDogLi4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIC4uL09wZW5Tb3VyY2UvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaAkocmV2aXNpb24g
MTYxMzAwKQorKysgLi4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNy
ZWF0aW9uUGFyYW1ldGVycy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3IEBACiAjZGVm
aW5lIFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnNfaAogCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJ
bmZvLmgiCisjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlc3Npb25T
dGF0ZS5oIgogI2luY2x1ZGUgIlZpZXdTdGF0ZS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVu
dENvZGVycy5oIgpAQCAtOTgsNiArOTksOCBAQCBzdHJ1Y3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyB7CiAKICAgICBib29sIGJhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZTsKIAorICAgIExh
eWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZTsKKwogI2lmIFBMQVRGT1JNKE1BQykKICAg
ICBDb2xvclNwYWNlRGF0YSBjb2xvclNwYWNlOwogI2VuZGlmCkluZGV4OiAuLi9PcGVuU291cmNl
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gLi4v
T3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCShyZXZpc2lv
biAxNjEzMDApCisrKyAuLi9PcGVuU291cmNlL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdl
Q2xpZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMSwxMCArMTExLDggQEAgcHVibGljOgogICAg
IC8vIFJldHVybiB3aGV0aGVyIHRoZSB2aWV3IGlzIHZpc3VhbGx5IGlkbGUuCiAgICAgdmlydHVh
bCBib29sIGlzVmlzdWFsbHlJZGxlKCkgeyByZXR1cm4gIWlzVmlld1Zpc2libGUoKTsgfQogCi0j
aWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAgLy8gUmV0dXJuIHdo
ZXRoZXIgdGhlIGxheWVyIGlzIHdpbmRvdyBzZXJ2ZXIgaG9zdGVkLgotICAgIHZpcnR1YWwgYm9v
bCBpc0xheWVyV2luZG93U2VydmVySG9zdGVkKCkgPSAwOwotI2VuZGlmCisgICAgLy8gUmV0dXJu
IHRoZSBsYXllciBob3N0aW5nIG1vZGUgZm9yIHRoZSB2aWV3LgorICAgIHZpcnR1YWwgTGF5ZXJI
b3N0aW5nTW9kZSB2aWV3TGF5ZXJIb3N0aW5nTW9kZSgpIHsgcmV0dXJuIExheWVySG9zdGluZ01v
ZGVEZWZhdWx0OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcHJvY2Vzc0RpZENyYXNoKCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRSZWxhdW5jaFByb2Nlc3MoKSA9IDA7CkluZGV4OiAuLi9PcGVu
U291cmNlL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHJldmlzaW9uIDE2MTMwMSkKKysrIC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0NSw2ICsyNDUs
NyBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwCiAgICAgLCBtX3Bh
Z2VTY2FsZUZhY3RvcigxKQogICAgICwgbV9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigxKQog
ICAgICwgbV9jdXN0b21EZXZpY2VTY2FsZUZhY3RvcigwKQorICAgICwgbV9sYXllckhvc3RpbmdN
b2RlKExheWVySG9zdGluZ01vZGVEZWZhdWx0KQogICAgICwgbV9kcmF3c0JhY2tncm91bmQodHJ1
ZSkKICAgICAsIG1fZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoZmFsc2UpCiAgICAgLCBtX2Fy
ZU1lbW9yeUNhY2hlQ2xpZW50Q2FsbHNFbmFibGVkKHRydWUpCkBAIC0zMTEsNiArMzEyLDEwIEBA
IFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHAKIHsKICAgICB1cGRhdGVW
aWV3U3RhdGUoKTsKIAorI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQor
ICAgIG1fbGF5ZXJIb3N0aW5nTW9kZSA9IG1fdmlld1N0YXRlICYgVmlld1N0YXRlOjpJc0luV2lu
ZG93ID8gbV9wYWdlQ2xpZW50LnZpZXdMYXllckhvc3RpbmdNb2RlKCkgOiBMYXllckhvc3RpbmdN
b2RlSW5XaW5kb3dTZXJ2ZXI7CisjZW5kaWYKKwogICAgIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwog
CiAjaWZuZGVmIE5ERUJVRwpAQCAtOTM2LDEwICs5NDEsNiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
dXBkYXRlVmlld1N0YXRlKFZpZXdTCiAgICAgICAgIG1fdmlld1N0YXRlIHw9IFZpZXdTdGF0ZTo6
SXNJbldpbmRvdzsKICAgICBpZiAoZmxhZ3NUb1VwZGF0ZSAmIFZpZXdTdGF0ZTo6SXNWaXN1YWxs
eUlkbGUgJiYgbV9wYWdlQ2xpZW50LmlzVmlzdWFsbHlJZGxlKCkpCiAgICAgICAgIG1fdmlld1N0
YXRlIHw9IFZpZXdTdGF0ZTo6SXNWaXN1YWxseUlkbGU7Ci0jaWYgSEFWRShMQVlFUl9IT1NUSU5H
X0lOX1dJTkRPV19TRVJWRVIpCi0gICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBWaWV3U3RhdGU6Oklz
TGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQgJiYgbV9wYWdlQ2xpZW50LmlzTGF5ZXJXaW5kb3dTZXJ2
ZXJIb3N0ZWQoKSkKLSAgICAgICAgbV92aWV3U3RhdGUgfD0gVmlld1N0YXRlOjpJc0xheWVyV2lu
ZG93U2VydmVySG9zdGVkOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3U3Rh
dGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpGbGFncyBtYXlIYXZlQ2hhbmdlZCwgV2FudHNSZXBseU9y
Tm90IHdhbnRzUmVwbHkpCkBAIC05NDcsOSArOTQ4LDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZp
ZXdTdGF0ZURpZENoYW5nZShWaQogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICAvLyBJZiB0aGUgaW4td2luZG93IHN0YXRlIG1heSBoYXZlIGNoYW5nZWQsIHRoZW4g
c28gbWF5IHRoZSBsYXllciBob3N0aW5nLgotICAgIGlmIChtYXlIYXZlQ2hhbmdlZCAmIFZpZXdT
dGF0ZTo6SXNJbldpbmRvdykKLSAgICAgICAgbWF5SGF2ZUNoYW5nZWQgfD0gVmlld1N0YXRlOjpJ
c0xheWVyV2luZG93U2VydmVySG9zdGVkOwogICAgIC8vIElmIHRoZSB2aXNpYmlsaXR5IHN0YXRl
IG1heSBoYXZlIGNoYW5nZWQsIHRoZW4gc28gbWF5IHRoZSB2aXN1YWxseSBpZGxlLgogICAgIGlm
IChtYXlIYXZlQ2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxlKQogICAgICAgICBtYXlIYXZl
Q2hhbmdlZCB8PSBWaWV3U3RhdGU6OklzVmlzdWFsbHlJZGxlOwpAQCAtOTY2LDE3ICs5NjQsMjIg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdTdGF0ZURpZENoYW5nZShWaQogICAgIGlmIChjaGFu
Z2VkICYgVmlld1N0YXRlOjpJc1Zpc3VhbGx5SWRsZSkKICAgICAgICAgbV9wcm9jZXNzLT5wYWdl
U3VwcHJlc3NpYmlsaXR5Q2hhbmdlZCh0aGlzKTsKIAotICAgIGlmIChjaGFuZ2VkICYgVmlld1N0
YXRlOjpJc1Zpc2libGUpIHsKLSAgICAgICAgaWYgKCFpc1ZpZXdWaXNpYmxlKCkpIHsKLSAgICAg
ICAgICAgIC8vIElmIHdlJ3ZlIHN0YXJ0ZWQgdGhlIHJlc3BvbnNpdmVuZXNzIHRpbWVyIGFzIHBh
cnQgb2YgdGVsbGluZyB0aGUgd2ViIHByb2Nlc3MgdG8gdXBkYXRlIHRoZSBiYWNraW5nIHN0b3Jl
Ci0gICAgICAgICAgICAvLyBzdGF0ZSwgaXQgbWlnaHQgbm90IHNlbmQgYmFjayBhIHJlcGx5IChz
aW5jZSBpdCB3b24ndCBwYWludCBhbnl0aGluZyBpZiB0aGUgd2ViIHBhZ2UgaXMgaGlkZGVuKSBz
byB3ZQotICAgICAgICAgICAgLy8gc3RvcCB0aGUgdW5yZXNwb25zaXZlbmVzcyB0aW1lciBoZXJl
LgotICAgICAgICAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0b3AoKTsK
KyAgICAvLyBJZiB3ZSd2ZSBzdGFydGVkIHRoZSByZXNwb25zaXZlbmVzcyB0aW1lciBhcyBwYXJ0
IG9mIHRlbGxpbmcgdGhlIHdlYiBwcm9jZXNzIHRvIHVwZGF0ZSB0aGUgYmFja2luZyBzdG9yZQor
ICAgIC8vIHN0YXRlLCBpdCBtaWdodCBub3Qgc2VuZCBiYWNrIGEgcmVwbHkgKHNpbmNlIGl0IHdv
bid0IHBhaW50IGFueXRoaW5nIGlmIHRoZSB3ZWIgcGFnZSBpcyBoaWRkZW4pIHNvIHdlCisgICAg
Ly8gc3RvcCB0aGUgdW5yZXNwb25zaXZlbmVzcyB0aW1lciBoZXJlLgorICAgIGlmICgoY2hhbmdl
ZCAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxlKSAmJiAhaXNWaWV3VmlzaWJsZSgpKQorICAgICAgICBt
X3Byb2Nlc3MtPnJlc3BvbnNpdmVuZXNzVGltZXIoKS0+c3RvcCgpOworCisgICAgaWYgKChtYXlI
YXZlQ2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNJbldpbmRvdykgJiYgKG1fdmlld1N0YXRlICYgVmll
d1N0YXRlOjpJc0luV2luZG93KSkgeworICAgICAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9z
dGluZ01vZGUgPSBtX3BhZ2VDbGllbnQudmlld0xheWVySG9zdGluZ01vZGUoKTsKKyAgICAgICAg
aWYgKG1fbGF5ZXJIb3N0aW5nTW9kZSAhPSBsYXllckhvc3RpbmdNb2RlKSB7CisgICAgICAgICAg
ICBtX2xheWVySG9zdGluZ01vZGUgPSBsYXllckhvc3RpbmdNb2RlOworICAgICAgICAgICAgbV9w
cm9jZXNzLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpTZXRMYXllckhvc3RpbmdNb2RlKGxheWVy
SG9zdGluZ01vZGUpLCBtX3BhZ2VJRCk7CiAgICAgICAgIH0KICAgICB9CiAKICNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQotICAgIGlmIChtYXlIYXZlQ2hhbmdlZCAmIFZpZXdT
dGF0ZTo6SXNJbldpbmRvdyAmJiAhKG1fdmlld1N0YXRlICYgVmlld1N0YXRlOjpJc0luV2luZG93
KSkgeworICAgIGlmICgobWF5SGF2ZUNoYW5nZWQgJiBWaWV3U3RhdGU6OklzSW5XaW5kb3cpICYm
ICEobV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzSW5XaW5kb3cpKSB7CiAgICAgICAgIC8vIFdo
ZW4gbGVhdmluZyB0aGUgY3VycmVudCBwYWdlLCBjbG9zZSB0aGUgcG9wb3ZlciBjb2xvciB3ZWxs
LgogICAgICAgICBpZiAobV9jb2xvclBpY2tlcikKICAgICAgICAgICAgIGVuZENvbG9yUGlja2Vy
KCk7CkBAIC0zODg4LDYgKzM4OTEsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aW5pdGlhbGl6ZUNy
ZWF0aW9uUGFyCiAgICAgbV9jcmVhdGlvblBhcmFtZXRlcnMuYXV0b1NpemluZ1Nob3VsZEV4cGFu
ZFRvVmlld0hlaWdodCA9IG1fYXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsKICAg
ICBtX2NyZWF0aW9uUGFyYW1ldGVycy5zY3JvbGxQaW5uaW5nQmVoYXZpb3IgPSBtX3Njcm9sbFBp
bm5pbmdCZWhhdmlvcjsKICAgICBtX2NyZWF0aW9uUGFyYW1ldGVycy5iYWNrZ3JvdW5kRXh0ZW5k
c0JleW9uZFBhZ2UgPSBtX2JhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZTsKKyAgICBtX2NyZWF0
aW9uUGFyYW1ldGVycy5sYXllckhvc3RpbmdNb2RlID0gbV9sYXllckhvc3RpbmdNb2RlOwogCiAj
aWYgUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQogICAgIG1fY3JlYXRpb25QYXJhbWV0
ZXJzLmNvbG9yU3BhY2UgPSBtX3BhZ2VDbGllbnQuY29sb3JTcGFjZSgpOwpJbmRleDogLi4vT3Bl
blNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gLi4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgJKHJldmlzaW9uIDE2MTMwMSkKKysrIC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAj
aW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIkVkaXRvclN0YXRlLmgiCiAj
aW5jbHVkZSAiR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgorI2lu
Y2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgiCiAj
aW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIKICNp
bmNsdWRlICJQYWdlTG9hZFN0YXRlLmgiCkBAIC0xMjQwLDYgKzEyNDEsOCBAQCBwcml2YXRlOgog
ICAgIGZsb2F0IG1faW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3I7CiAgICAgZmxvYXQgbV9jdXN0
b21EZXZpY2VTY2FsZUZhY3RvcjsKIAorICAgIExheWVySG9zdGluZ01vZGUgbV9sYXllckhvc3Rp
bmdNb2RlOworCiAgICAgYm9vbCBtX2RyYXdzQmFja2dyb3VuZDsKICAgICBib29sIG1fZHJhd3NU
cmFuc3BhcmVudEJhY2tncm91bmQ7CiAKSW5kZXg6IC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSAuLi9P
cGVuU291cmNlL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBs
LmgJKHJldmlzaW9uIDE2MTMwMCkKKysrIC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsOSAr
NjYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdWaXNpYmxlKCk7CiAgICAg
dmlydHVhbCBib29sIGlzVmlld0luV2luZG93KCk7CiAgICAgdmlydHVhbCBib29sIGlzVmlzdWFs
bHlJZGxlKCk7Ci0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAg
dmlydHVhbCBib29sIGlzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQoKTsKLSNlbmRpZgorICAgIHZp
cnR1YWwgTGF5ZXJIb3N0aW5nTW9kZSB2aWV3TGF5ZXJIb3N0aW5nTW9kZSgpIE9WRVJSSURFOwog
ICAgIHZpcnR1YWwgQ29sb3JTcGFjZURhdGEgY29sb3JTcGFjZSgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKENBTGF5ZXIgKikg
T1ZFUlJJREU7CiAKQEAgLTE2NSw5ICsxNjMsNiBAQCBwcml2YXRlOgogI2lmIFVTRShESUNUQVRJ
T05fQUxURVJOQVRJVkVTKQogICAgIE93blB0cjxXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRVSUNv
bnRyb2xsZXI+IG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOwogI2VuZGlmCi0jaWYgSEFW
RShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAgYm9vbCBtX2lzTGF5ZXJXaW5k
b3dTZXJ2ZXJIb3N0ZWQ7Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRl
eDogLi4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xp
ZW50SW1wbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSAuLi9PcGVuU291cmNlL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCShyZXZpc2lvbiAxNjEzMDApCisrKyAu
Li9PcGVuU291cmNlL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJ
bXBsLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAjaW1wb3J0ICJEYXRhUmVm
ZXJlbmNlLmgiCiAjaW1wb3J0ICJEaWN0aW9uYXJ5UG9wdXBJbmZvLmgiCiAjaW1wb3J0ICJGaW5k
SW5kaWNhdG9yLmgiCi0jaW1wb3J0ICJMYXllclRyZWVDb250ZXh0LmgiCiAjaW1wb3J0ICJOYXRp
dmVXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBv
cnQgIldLQVBJQ2FzdC5oIgpAQCAtMTI5LDkgKzEyOCw2IEBAIFBhZ2VDbGllbnRJbXBsOjpQYWdl
Q2xpZW50SW1wbChXS1ZpZXcqIHcKICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKICAg
ICAsIG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBBbHRlcm5hdGl2
ZVRleHRVSUNvbnRyb2xsZXIpKQogI2VuZGlmCi0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJ
TkRPV19TRVJWRVIpCi0gICAgLCBtX2lzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQodHJ1ZSkKLSNl
bmRpZgogewogfQogCkBAIC0yMjAsMTYgKzIxNiwxNCBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjpp
c1Zpc3VhbGx5SWRsZSgpCiAgICAgcmV0dXJuIFdpbmRvd1NlcnZlckNvbm5lY3Rpb246OnNoYXJl
ZCgpLmFwcGxpY2F0aW9uV2luZG93TW9kaWZpY2F0aW9uc0hhdmVTdG9wcGVkKCkgfHwgIWlzVmll
d1Zpc2libGUoKTsKIH0KIAotI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVS
KQotYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNMYXllcldpbmRvd1NlcnZlckhvc3RlZCgpCitMYXll
ckhvc3RpbmdNb2RlIFBhZ2VDbGllbnRJbXBsOjp2aWV3TGF5ZXJIb3N0aW5nTW9kZSgpCiB7Ci0g
ICAgLy8gT25seSB1cGRhdGUgbV9pc0xheWVyV2luZG93U2VydmVySG9zdGVkIHdoZW4gdGhlIHZp
ZXcgaXMgaW4gYSB3aW5kb3cgLSBvdGhlcndpc2UganVzdCByZXBvcnQgdGhlIGxhc3QgdmFsdWUu
Ci0gICAgaWYgKFttX3drVmlldyB3aW5kb3ddKQotICAgICAgICBtX2lzTGF5ZXJXaW5kb3dTZXJ2
ZXJIb3N0ZWQgPSBbW21fd2tWaWV3IHdpbmRvd10gX2hvc3RzTGF5ZXJzSW5XaW5kb3dTZXJ2ZXJd
OwotCi0gICAgcmV0dXJuIG1faXNMYXllcldpbmRvd1NlcnZlckhvc3RlZDsKLX0KKyNpZiBIQVZF
KExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKKyAgICBpZiAoW21fd2tWaWV3IHdpbmRv
d10gJiYgW1ttX3drVmlldyB3aW5kb3ddIF9ob3N0c0xheWVyc0luV2luZG93U2VydmVyXSkKKyAg
ICAgICAgcmV0dXJuIExheWVySG9zdGluZ01vZGVJbldpbmRvd1NlcnZlcjsKICNlbmRpZgorICAg
IHJldHVybiBMYXllckhvc3RpbmdNb2RlRGVmYXVsdDsKK30KIAogdm9pZCBQYWdlQ2xpZW50SW1w
bDo6dmlld1dpbGxNb3ZlVG9Bbm90aGVyV2luZG93KCkKIHsKSW5kZXg6IC4uL09wZW5Tb3VyY2Uv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblZpZXcuY3BwCShyZXZpc2lvbiAxNjEzMDApCisrKyAuLi9PcGVuU291cmNlL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzY0LDYgKzM2NCwyMSBAQCB2b2lkIFBsdWdpblZpZXc6OnJlY3JlYXRlQW5kSW5pdGlhbGl6
ZShQCiAgICAgaW5pdGlhbGl6ZVBsdWdpbigpOwogfQogCit2b2lkIFBsdWdpblZpZXc6OnNldExh
eWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlKQoreworI2lm
IEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQorICAgIGlmICghbV9wbHVnaW4p
CisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2lzSW5pdGlhbGl6ZWQpCisgICAgICAgIG1f
cGx1Z2luLT5zZXRMYXllckhvc3RpbmdNb2RlKGxheWVySG9zdGluZ01vZGUpOworICAgIGVsc2UK
KyAgICAgICAgbV9wYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUgPSBsYXllckhvc3RpbmdNb2Rl
OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5ZXJIb3N0aW5nTW9kZSk7CisjZW5kaWYKK30K
KwogRnJhbWUqIFBsdWdpblZpZXc6OmZyYW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9wbHVn
aW5FbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCk7CkBAIC00OTEsMjQgKzUwNiwxMyBAQCB2b2lk
IFBsdWdpblZpZXc6OnZpZXdTdGF0ZURpZENoYW5nZShWaWV3CiAjaWYgUExBVEZPUk0oTUFDKQog
dm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OkZs
YWdzIGNoYW5nZWQpCiB7Ci0gICAgaWYgKCFtX3BsdWdpbikKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKCFtX2lzSW5pdGlhbGl6ZWQpIHsKLSNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lO
RE9XX1NFUlZFUikKLSAgICAgICAgbV9wYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUgPSBtX3dl
YlBhZ2UtPmxheWVySG9zdGluZ01vZGUoKTsKLSNlbmRpZgorICAgIGlmICghbV9wbHVnaW4gfHwg
IW1faXNJbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIGlmIChjaGFu
Z2VkICYgVmlld1N0YXRlOjpJc1Zpc2libGUpCiAgICAgICAgIG1fcGx1Z2luLT53aW5kb3dWaXNp
YmlsaXR5Q2hhbmdlZChtX3dlYlBhZ2UtPmlzVmlzaWJsZSgpKTsKICAgICBpZiAoY2hhbmdlZCAm
IFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpCiAgICAgICAgIG1fcGx1Z2luLT53aW5kb3dGb2N1
c0NoYW5nZWQobV93ZWJQYWdlLT53aW5kb3dJc0ZvY3VzZWQoKSk7Ci0jaWYgSEFWRShMQVlFUl9I
T1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAgaWYgKGNoYW5nZWQgJiBWaWV3U3RhdGU6Oklz
TGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQpCi0gICAgICAgIG1fcGx1Z2luLT5zZXRMYXllckhvc3Rp
bmdNb2RlKG1fd2ViUGFnZS0+bGF5ZXJIb3N0aW5nTW9kZSgpKTsKLSNlbmRpZgogfQogCiB2b2lk
IFBsdWdpblZpZXc6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9yKQpJbmRl
eDogLi4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
Vmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAkocmV2aXNpb24gMTYxMzAwKQorKysgLi4vT3BlblNv
dXJjZS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC03MCw2ICs3MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hbnVhbExvYWRE
aWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3ImKTsKIAogICAgIHZvaWQgdmlld1N0
YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCk7CisgICAgdm9pZCBzZXRMYXll
ckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAg
IHZvaWQgcGxhdGZvcm1WaWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpGbGFncyBjaGFuZ2Vk
KTsKSW5kZXg6IC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L0RyYXdpbmdBcmVhLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gLi4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAkocmV2aXNpb24gMTYxMzAwKQorKysg
Li4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0Fy
ZWEuaAkod29ya2luZyBjb3B5KQpAQCAtMTA3LDYgKzEwNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKGNvbnN0
IEZ1bmN0aW9uPHZvaWQgKCk+Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgdmlld1N0YXRlRGlkQ2hh
bmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHNldExh
eWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkgeyB9CiAKIHByb3RlY3RlZDoKICAgICBE
cmF3aW5nQXJlYShEcmF3aW5nQXJlYVR5cGUsIFdlYlBhZ2UqKTsKSW5kZXg6IC4uL09wZW5Tb3Vy
Y2UvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCShyZXZpc2lvbiAxNjEzMDApCisrKyAuLi9PcGVuU291cmNlL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQx
LDYgKzI0MSw3IEBAIFdlYlBhZ2U6OldlYlBhZ2UodWludDY0X3QgcGFnZUlELCBjb25zdCAKICAg
ICAsIG1fbnVtYmVyT2ZQcmltYXJ5U25hcHNob3REZXRlY3Rpb25BdHRlbXB0cygwKQogICAgICwg
bV9kZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5UaW1lcihSdW5Mb29wOjptYWluKCks
IHRoaXMsICZXZWJQYWdlOjpkZXRlcm1pbmVQcmltYXJ5U25hcHNob3R0ZWRQbHVnSW5UaW1lckZp
cmVkKQogI2VuZGlmCisgICAgLCBtX2xheWVySG9zdGluZ01vZGUocGFyYW1ldGVycy5sYXllckhv
c3RpbmdNb2RlKQogI2lmIFBMQVRGT1JNKE1BQykKICAgICAsIG1fcGRmUGx1Z2luRW5hYmxlZChm
YWxzZSkKICAgICAsIG1faGFzQ2FjaGVkV2luZG93RnJhbWUoZmFsc2UpCkBAIC0yMDg4LDYgKzIw
ODksMTYgQEAgdm9pZCBXZWJQYWdlOjpzZXRWaWV3U3RhdGUoVmlld1N0YXRlOjpGbAogICAgICAg
ICBtX3NlbmREaWRVcGRhdGVWaWV3U3RhdGVUaW1lci5zdGFydE9uZVNob3QoMCk7CiB9CiAKK3Zv
aWQgV2ViUGFnZTo6c2V0TGF5ZXJIb3N0aW5nTW9kZSh1bnNpZ25lZCBsYXllckhvc3RpbmdNb2Rl
KQoreworICAgIG1fbGF5ZXJIb3N0aW5nTW9kZSA9IHN0YXRpY19jYXN0PExheWVySG9zdGluZ01v
ZGU+KGxheWVySG9zdGluZ01vZGUpOworCisgICAgbV9kcmF3aW5nQXJlYS0+c2V0TGF5ZXJIb3N0
aW5nTW9kZShtX2xheWVySG9zdGluZ01vZGUpOworCisgICAgZm9yIChhdXRvKiBwbHVnaW5WaWV3
IDogbV9wbHVnaW5WaWV3cykKKyAgICAgICAgcGx1Z2luVmlldy0+c2V0TGF5ZXJIb3N0aW5nTW9k
ZShtX2xheWVySG9zdGluZ01vZGUpOworfQorCiB2b2lkIFdlYlBhZ2U6OmRpZFJlY2VpdmVQb2xp
Y3lEZWNpc2lvbih1aW50NjRfdCBmcmFtZUlELCB1aW50NjRfdCBsaXN0ZW5lcklELCB1aW50MzJf
dCBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IGRvd25sb2FkSUQpCiB7CiAgICAgV2ViRnJhbWUqIGZy
YW1lID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkud2ViRnJhbWUoZnJhbWVJRCk7CkluZGV4OiAuLi9P
cGVuU291cmNlL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gLi4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5oCShyZXZpc2lvbiAxNjEzMDApCisrKyAuLi9PcGVuU291cmNlL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0
OCwxNiArMzQ4LDEwIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNWaXNpYmxlKCkgY29uc3QgeyBy
ZXR1cm4gbV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzVmlzaWJsZTsgfQogCi0jaWYgUExBVEZP
Uk0oTUFDKQotICAgIExheWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9kZSgpIGNvbnN0Ci0g
ICAgewotI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQotICAgICAgICBy
ZXR1cm4gbV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQg
PyBMYXllckhvc3RpbmdNb2RlSW5XaW5kb3dTZXJ2ZXIgOiBMYXllckhvc3RpbmdNb2RlRGVmYXVs
dDsKLSNlbHNlCi0gICAgICAgIHJldHVybiBMYXllckhvc3RpbmdNb2RlRGVmYXVsdDsKLSNlbmRp
ZgotICAgIH0KKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGUoKSBjb25zdCB7
IHJldHVybiBtX2xheWVySG9zdGluZ01vZGU7IH0KKyAgICB2b2lkIHNldExheWVySG9zdGluZ01v
ZGUodW5zaWduZWQpOwogCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgdXBkYXRlUGx1Z2lu
c0FjdGl2ZUFuZEZvY3VzZWRTdGF0ZSgpOwogICAgIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
d2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1cm4gbV93aW5kb3dG
cmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7IH0KICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IHdpbmRvd0ZyYW1lSW5VbmZsaXBwZWRTY3JlZW5Db29yZGluYXRlcygpIGNvbnN0IHsgcmV0dXJu
IG1fd2luZG93RnJhbWVJblVuZmxpcHBlZFNjcmVlbkNvb3JkaW5hdGVzOyB9CkBAIC05MTIsNiAr
OTA2LDkgQEAgcHJpdmF0ZToKICAgICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX2RldGVybWlu
ZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblRpbWVyOwogI2VuZGlmCiAKKyAgICAvLyBUaGUgbGF5
ZXIgaG9zdGluZyBtb2RlLgorICAgIExheWVySG9zdGluZ01vZGUgbV9sYXllckhvc3RpbmdNb2Rl
OworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgbV9wZGZQbHVnaW5FbmFibGVkOwogCklu
ZGV4OiAuLi9PcGVuU291cmNlL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDE2MTMw
MCkKKysrIC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIG1lc3Nh
Z2VzIC0+IFdlYlBhZ2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldEluaXRpYWxGb2N1cyhib29s
IGZvcndhcmQsIGJvb2wgaXNLZXlib2FyZEV2ZW50VmFsaWQsIFdlYktpdDo6V2ViS2V5Ym9hcmRF
dmVudCBldmVudCkKICAgICBTZXRWaWV3U3RhdGUodW5zaWduZWQgdmlld1N0YXRlLCBib29sIHdh
bnRzRGlkVXBkYXRlVmlld1N0YXRlKQorICAgIFNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQg
bGF5ZXJIb3N0aW5nTW9kZSkKIAogICAgIFNldERyYXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFj
a2dyb3VuZCkKICAgICBTZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChib29sIGRyYXdzVHJh
bnNwYXJlbnRCYWNrZ3JvdW5kKQpJbmRleDogLi4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gLi4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgJKHJldmlzaW9uIDE2MTMwMCkK
KysrIC4uL09wZW5Tb3VyY2UvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNyAr
MTAyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3Io
ZmxvYXQpIE9WRVJSSURFOwogICAgIHZvaWQgc3VzcGVuZFBhaW50aW5nKCk7CiAgICAgdm9pZCBy
ZXN1bWVQYWludGluZygpOwotICAgIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3Rp
bmdNb2RlKTsKKyAgICB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbG9yU3BhY2UoY29uc3QgQ29sb3JTcGFj
ZURhdGEmKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RUcmFuc2llbnRab29t
KGRvdWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pIE9WRVJSSURFOwpJbmRl
eDogLi4vT3BlblNvdXJjZS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIC4uL09wZW5Tb3Vy
Y2UvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYS5tbQkocmV2aXNpb24gMTYxMzAwKQorKysgLi4vT3BlblNvdXJjZS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOTcsMTEgKzM5Nyw2IEBAIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnZpZXcKICAgICAgICAgZWxzZQogICAgICAgICAgICAg
c3VzcGVuZFBhaW50aW5nKCk7CiAgICAgfQotCi0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJ
TkRPV19TRVJWRVIpCi0gICAgaWYgKGNoYW5nZWQgJiBWaWV3U3RhdGU6OklzTGF5ZXJXaW5kb3dT
ZXJ2ZXJIb3N0ZWQpCi0gICAgICAgIHNldExheWVySG9zdGluZ01vZGUobV93ZWJQYWdlLT5sYXll
ckhvc3RpbmdNb2RlKCkpOwotI2VuZGlmCiB9CiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWE6OnN1c3BlbmRQYWludGluZygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220381</attachid>
            <date>2014-01-04 17:39:57 -0800</date>
            <delta_ts>2014-01-04 18:41:59 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>126488.2.patch</filename>
            <type>text/plain</type>
            <size>38806</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE0LTAxLTA0ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFZpZXdT
dGF0ZSB0byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjY0ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGNoYW5nZSBhbHNvIHBhcnRpYWwgcmV2ZXJ0cyBoYW5kbGluZyBvZiBMYXll
ckhvc3RpbmdNb2RlLCBtYWtpbmcgdGhpcworICAgICAgICBhIHNlcGFyYXRlIG1lc3NhZ2UgYWdh
aW4uIFdpdGggaGluZHNpZ2h0IHRoZSBuZXcgd2F5IG9mIGRvaW5nIHRoaXMgd2Fzbid0CisgICAg
ICAgIGluIGFsbCB3YXlzIHNpbXBsZXIsIGFuZCBpdCB3b24ndCBtYWtlIHNlbnNlIHRvIG1vdmUg
dGhpcyB0byBXZWJDb3JlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIHBhZ2UvVmlld1N0YXRlLmg6IEFkZGVkLgorICAgICAgICAgICAg
LSBNb3ZlZCBmcm9tIFdlYktpdDIsIHdpbGwgYmUgdXNlZCBieSBQYWdlICYgRm9jdXNDb250cm9s
bGVyLgorCiAyMDE0LTAxLTA0ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgTW92ZSBhIGZldyBtb3JlIGZ1bmN0aW9ucyBmcm9tIFJlbmRlckJsb2NrIHRvIFJlbmRlckJs
b2NrRmxvdwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMTYxMzE2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yODYwLDYgKzI4
NjAsNyBAQAogCQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5n
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMy
RUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovOyB9OwogCQk4
NjUxMkVERTE1NEEyQUVGMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjUxMkVEQjE1
NEEyQUVFMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgKi87IH07CiAJ
CTg2NTEyRURGMTU0QTJBRUYwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjUxMkVEQzE1
NEEyQUVGMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oICovOyB9OworCQk4
Njc4RDBCQjE4NzhFODkxMDAzQUJERTYgLyogVmlld1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Njc4RDBCQTE4NzhFODEwMDAzQUJERTYgLyog
Vmlld1N0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODY4MTYwRDQxODc2NkEwQTAwMjFFNzlEIC8qIFVzZXJBY3Rpdml0eS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjgxNjBEMTE4NzY2OUM0
MDAyMUU3OUQgLyogVXNlckFjdGl2aXR5LmNwcCAqLzsgfTsKIAkJODY4MTYwRDUxODc2NkEwRTAw
MjFFNzlEIC8qIFVzZXJBY3Rpdml0eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2ODE2MEQzMTg3NjY5RTcwMDIxRTc5RCAvKiBVc2VyQWN0aXZp
dHlNYWMubW0gKi87IH07CiAJCTg2ODE2MEQ2MTg3NjZBMTMwMDIxRTc5RCAvKiBVc2VyQWN0aXZp
dHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2ODE2
MEQyMTg3NjY5QzQwMDIxRTc5RCAvKiBVc2VyQWN0aXZpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTY1MSw2ICs5NjUyLDcgQEAKIAkJODY1
MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2NTEyRURDMTU0QTJBRUYw
MEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODY1MTJFREQxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4Njc4RDBCQTE4
NzhFODEwMDAzQUJERTYgLyogVmlld1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZXdTdGF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjgxNjBEMTE4NzY2OUM0MDAyMUU3OUQg
LyogVXNlckFjdGl2aXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJBY3Rpdml0eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2ODE2MEQyMTg3NjY5QzQwMDIxRTc5RCAv
KiBVc2VyQWN0aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckFjdGl2aXR5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2ODE2MEQzMTg3NjY5RTcwMDIxRTc5RCAvKiBVc2VyQWN0
aXZpdHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVc2VyQWN0aXZpdHlNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTkzNyw2ICsxNTkzOSw3IEBACiAJCQkJQkM4
QkYxNTAxMDU4MTNCRjAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0LmggKi8sCiAJCQkJQkM4QkYx
NTkxMDU4MTQxODAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0VHlwZXMuaCAqLywKIAkJCQlGNTEz
QTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLywKKwkJ
CQk4Njc4RDBCQTE4NzhFODEwMDAzQUJERTYgLyogVmlld1N0YXRlLmggKi8sCiAJCQkJQkU5ODNE
OTUwNTJBMkUwQTAwODkyRDg1IC8qIFdlYkNvcmVLZXlib2FyZFVJTW9kZS5oICovLAogCQkJCTQ5
NEJENzkzMEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5oICovLAogCQkJCTQ5NEJENzk0
MEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5pZGwgKi8sCkBAIC0yMjgzMiw2ICsyMjgz
NSw3IEBACiAJCQkJODU0MDc1NjkwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxBcHBsZXRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTUyNDdDRjBBRDg1MEI4MDAxMjA5M0IgLyogRE9N
SFRNTEFwcGxldEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFQ0JFRUIw
QUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxBcmVhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODY3OEQwQkIxODc4RTg5MTAwM0FCREU2IC8qIFZpZXdTdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODVFNzExOUMwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxBcmVhRWxlbWVudEludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTlBOUM0NzBBQTVFM0JEMDBCNjk0QjIgLyogRE9N
SFRNTEJhc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTE5RDBBQzVENTM1MDA1
MzI3MEYgLyogRE9NSFRNTEJhc2VFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3U3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1ZpZXdTdGF0ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9WaWV3U3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBWaWV3U3RhdGVfaAorI2RlZmluZSBWaWV3U3RhdGVfaAorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0cnVjdCBWaWV3U3RhdGUgeworICAgIGVudW0geworICAgICAgICBX
aW5kb3dJc0FjdGl2ZSA9IDEgPDwgMCwKKyAgICAgICAgSXNGb2N1c2VkID0gMSA8PCAxLAorICAg
ICAgICBJc1Zpc2libGUgPSAxIDw8IDIsCisgICAgICAgIElzSW5XaW5kb3cgPSAxIDw8IDMsCisg
ICAgICAgIElzVmlzdWFsbHlJZGxlID0gMSA8PCA0LAorICAgIH07CisKKyAgICB0eXBlZGVmIHVu
c2lnbmVkIEZsYWdzOworCisgICAgc3RhdGljIGNvbnN0IEZsYWdzIE5vRmxhZ3MgPSAwOworICAg
IHN0YXRpYyBjb25zdCBGbGFncyBBbGxGbGFncyA9IFdpbmRvd0lzQWN0aXZlIHwgSXNGb2N1c2Vk
IHwgSXNWaXNpYmxlIHwgSXNJbldpbmRvdyB8IElzVmlzdWFsbHlJZGxlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVmlld1N0YXRlX2gKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE0LTAxLTA0ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJh
cnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFZpZXdTdGF0ZSB0byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY0ODgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNo
YW5nZSBhbHNvIHBhcnRpYWwgcmV2ZXJ0cyBoYW5kbGluZyBvZiBMYXllckhvc3RpbmdNb2RlLCBt
YWtpbmcgdGhpcworICAgICAgICBhIHNlcGFyYXRlIG1lc3NhZ2UgYWdhaW4uIFdpdGggaGluZHNp
Z2h0IHRoZSBuZXcgd2F5IG9mIGRvaW5nIHRoaXMgd2Fzbid0CisgICAgICAgIGluIGFsbCB3YXlz
IHNpbXBsZXIsIGFuZCBpdCB3b24ndCBtYWtlIHNlbnNlIHRvIG1vdmUgdGhpcyB0byBXZWJDb3Jl
LgorCisgICAgICAgICogU2hhcmVkL1ZpZXdTdGF0ZS5oOiBSZW1vdmVkLgorICAgICAgICAgICAg
LSBNb3ZlZCB0byBXZWJDb3JlLgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAg
ICAgICAgICAgLSBBZGRlZCBsYXllckhvc3RpbmdNb2RlLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xp
ZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp2aWV3TGF5ZXJIb3N0
aW5nTW9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudDo6dmlld0xheWVySG9zdGluZ01vZGUpOgorICAgICAgICAgICAgLSBS
ZXZlcnQgaXNMYXllcldpbmRvd1NlcnZlckhvc3RlZCAtPiB2aWV3TGF5ZXJIb3N0aW5nTW9kZS4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAgICAgLSBBZGRlZCBiYWNrIG1f
bGF5ZXJIb3N0aW5nTW9kZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVW
aWV3U3RhdGUpOgorICAgICAgICAgICAgLSBSZW1vdmVkIElzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0
ZWQgZnJvbSBWaWV3U3RhdGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld1N0
YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgICAgIC0gQWRkZWQgU2V0TGF5ZXJIb3N0aW5nTW9kZSBt
ZXNzYWdlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmluaXRpYWxpemVDcmVhdGlv
blBhcmFtZXRlcnMpOgorICAgICAgICAgICAgLSBQYXNzIGxheWVySG9zdGluZ01vZGUuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmlzSW5XaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzVmll
d1Zpc2libGUpOgorICAgICAgICAgICAgLSBWaWV3U3RhdGUgbW92ZWQgdG8gV2ViQ29yZS4KKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICAgICAt
IFJlbW92ZWQgVmlld1N0YXRlLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6c2V0TGF5ZXJIb3N0aW5nTW9k
ZSk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBsYXRmb3JtVmlld1N0YXRlRGlkQ2hh
bmdlKToKKyAgICAgICAgICAgIC0gU2VwYXJhdGVkIHNldExheWVySG9zdGluZ01vZGUgZnJvbSBw
bGF0Zm9ybVZpZXdTdGF0ZURpZENoYW5nZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5o
OgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6dmlld1N0YXRlRGlkQ2hhbmdlKToKKyAg
ICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAg
ICAgICAgLSBBZGRlZCB2aXJ0dWFsIGZ1bmN0aW9uLCBvdmVycmlkZGVuIGluIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAgICAgICAgLSBTZXBhcmF0
ZWQgc2V0TGF5ZXJIb3N0aW5nTW9kZSBmcm9tIHBsYXRmb3JtVmlld1N0YXRlRGlkQ2hhbmdlLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmlzVmlzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxheWVySG9z
dGluZ01vZGUpOgorICAgICAgICAgICAgLSBWaWV3U3RhdGUgbW92ZWQgdG8gV2ViQ29yZS4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
ICAgIC0gQWRkZWQgU2V0TGF5ZXJIb3N0aW5nTW9kZSBtZXNzYWdlLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dmll
d1N0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgICAgIC0gdmlld1N0YXRlRGlkQ2hhbmdlIG5vIGxv
bmdlciBjYWxscyBzZXRMYXllckhvc3RpbmdNb2RlICh0aGlzIGlzIGNhbGxlZCBieSBXZWJQYWdl
KS4KKwogMjAxNC0wMS0wNCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gW0NNYWtlXSBJbXByb3ZlIHRoZSB3YXkgd2UgbG9jYXRlIGdvYmpl
Y3QtaW50cm9zcGVjdGlvbgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1ZpZXdTdGF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaWV3U3RhdGUuaAkocmV2aXNp
b24gMTYxMzE2KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1ZpZXdTdGF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFZpZXdTdGF0ZV9o
Ci0jZGVmaW5lIFZpZXdTdGF0ZV9oCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdHJ1Y3QgVmll
d1N0YXRlIHsKLSAgICBlbnVtIHsKLSAgICAgICAgV2luZG93SXNBY3RpdmUgPSAxIDw8IDAsCi0g
ICAgICAgIElzRm9jdXNlZCA9IDEgPDwgMSwKLSAgICAgICAgSXNWaXNpYmxlID0gMSA8PCAyLAot
ICAgICAgICBJc0luV2luZG93ID0gMSA8PCAzLAotICAgICAgICBJc1Zpc3VhbGx5SWRsZSA9IDEg
PDwgNCwKLSAgICAgICAgSXNMYXllcldpbmRvd1NlcnZlckhvc3RlZCA9IDEgPDwgNSwKLSAgICB9
OwotCi0gICAgdHlwZWRlZiB1bnNpZ25lZCBGbGFnczsKLQotICAgIHN0YXRpYyBjb25zdCBGbGFn
cyBOb0ZsYWdzID0gMDsKLSAgICBzdGF0aWMgY29uc3QgRmxhZ3MgQWxsRmxhZ3MgPSBXaW5kb3dJ
c0FjdGl2ZSB8IElzRm9jdXNlZCB8IElzVmlzaWJsZSB8IElzSW5XaW5kb3cgfCBJc0xheWVyV2lu
ZG93U2VydmVySG9zdGVkIHwgSXNWaXN1YWxseUlkbGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKLQotI2VuZGlmIC8vIFZpZXdTdGF0ZV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAxNjEz
MTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSQogICAgIGVuY29kZXIgPDwgYXV0b1NpemluZ1Nob3VsZEV4cGFu
ZFRvVmlld0hlaWdodDsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oc2Nyb2xsUGlubmluZ0JlaGF2
aW9yKTsKICAgICBlbmNvZGVyIDw8IGJhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZTsKKyAgICBl
bmNvZGVyLmVuY29kZUVudW0obGF5ZXJIb3N0aW5nTW9kZSk7CiAKICNpZiBQTEFURk9STShNQUMp
CiAgICAgZW5jb2RlciA8PCBjb2xvclNwYWNlOwpAQCAtMTIyLDYgKzEyMyw4IEBAIGJvb2wgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKEkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5iYWNrZ3JvdW5kRXh0ZW5kc0JleW9u
ZFBhZ2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVu
dW0ocGFyYW1ldGVycy5sYXllckhvc3RpbmdNb2RlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRl
cnMuY29sb3JTcGFjZSkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDggKzI3LDggQEAKICNkZWZpbmUgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyc19oCiAKICNp
bmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIKKyNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgiCi0jaW5jbHVkZSAiVmlld1N0YXRlLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwRGF0
YS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2luYXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9WaWV3U3RhdGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBM
QVRGT1JNKE1BQykKQEAgLTU1LDcgKzU2LDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMgewogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZTsKIAotICAgIFZpZXdTdGF0
ZTo6RmxhZ3Mgdmlld1N0YXRlOworICAgIFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0
YXRlOwogICAgIAogICAgIFdlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmU7CiAgICAgRHJhd2luZ0Fy
ZWFUeXBlIGRyYXdpbmdBcmVhVHlwZTsKQEAgLTk4LDYgKzk5LDggQEAgc3RydWN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMgewogCiAgICAgYm9vbCBiYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBh
Z2U7CiAKKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGU7CisKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgQ29sb3JTcGFjZURhdGEgY29sb3JTcGFjZTsKICNlbmRpZgpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCShyZXZpc2lvbiAxNjEzMTYpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTEsMTAgKzExMSw4IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm4gd2hldGhlciB0aGUgdmlldyBp
cyB2aXN1YWxseSBpZGxlLgogICAgIHZpcnR1YWwgYm9vbCBpc1Zpc3VhbGx5SWRsZSgpIHsgcmV0
dXJuICFpc1ZpZXdWaXNpYmxlKCk7IH0KIAotI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5E
T1dfU0VSVkVSKQotICAgIC8vIFJldHVybiB3aGV0aGVyIHRoZSBsYXllciBpcyB3aW5kb3cgc2Vy
dmVyIGhvc3RlZC4KLSAgICB2aXJ0dWFsIGJvb2wgaXNMYXllcldpbmRvd1NlcnZlckhvc3RlZCgp
ID0gMDsKLSNlbmRpZgorICAgIC8vIFJldHVybiB0aGUgbGF5ZXIgaG9zdGluZyBtb2RlIGZvciB0
aGUgdmlldy4KKyAgICB2aXJ0dWFsIExheWVySG9zdGluZ01vZGUgdmlld0xheWVySG9zdGluZ01v
ZGUoKSB7IHJldHVybiBMYXllckhvc3RpbmdNb2RlRGVmYXVsdDsgfQogCiAgICAgdmlydHVhbCB2
b2lkIHByb2Nlc3NEaWRDcmFzaCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVsYXVuY2hQ
cm9jZXNzKCkgPSAwOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUsNiArMjQ1LDcgQEAgV2ViUGFnZVBy
b3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcAogICAgICwgbV9wYWdlU2NhbGVGYWN0b3Io
MSkKICAgICAsIG1faW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoMSkKICAgICAsIG1fY3VzdG9t
RGV2aWNlU2NhbGVGYWN0b3IoMCkKKyAgICAsIG1fbGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3Rp
bmdNb2RlRGVmYXVsdCkKICAgICAsIG1fZHJhd3NCYWNrZ3JvdW5kKHRydWUpCiAgICAgLCBtX2Ry
YXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGZhbHNlKQogICAgICwgbV9hcmVNZW1vcnlDYWNoZUNs
aWVudENhbGxzRW5hYmxlZCh0cnVlKQpAQCAtMzExLDYgKzMxMiwxMCBAQCBXZWJQYWdlUHJveHk6
OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwCiB7CiAgICAgdXBkYXRlVmlld1N0YXRlKCk7CiAK
KyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKKyAgICBtX2xheWVySG9z
dGluZ01vZGUgPSBtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNJbldpbmRvdyA/IG1fcGFnZUNs
aWVudC52aWV3TGF5ZXJIb3N0aW5nTW9kZSgpIDogTGF5ZXJIb3N0aW5nTW9kZUluV2luZG93U2Vy
dmVyOworI2VuZGlmCisKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIAogI2lmbmRlZiBOREVC
VUcKQEAgLTkzNiwxMCArOTQxLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVZpZXdTdGF0
ZShWaWV3UwogICAgICAgICBtX3ZpZXdTdGF0ZSB8PSBWaWV3U3RhdGU6OklzSW5XaW5kb3c7CiAg
ICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBWaWV3U3RhdGU6OklzVmlzdWFsbHlJZGxlICYmIG1fcGFn
ZUNsaWVudC5pc1Zpc3VhbGx5SWRsZSgpKQogICAgICAgICBtX3ZpZXdTdGF0ZSB8PSBWaWV3U3Rh
dGU6OklzVmlzdWFsbHlJZGxlOwotI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VS
VkVSKQotICAgIGlmIChmbGFnc1RvVXBkYXRlICYgVmlld1N0YXRlOjpJc0xheWVyV2luZG93U2Vy
dmVySG9zdGVkICYmIG1fcGFnZUNsaWVudC5pc0xheWVyV2luZG93U2VydmVySG9zdGVkKCkpCi0g
ICAgICAgIG1fdmlld1N0YXRlIHw9IFZpZXdTdGF0ZTo6SXNMYXllcldpbmRvd1NlcnZlckhvc3Rl
ZDsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6dmlld1N0YXRlRGlkQ2hhbmdlKFZp
ZXdTdGF0ZTo6RmxhZ3MgbWF5SGF2ZUNoYW5nZWQsIFdhbnRzUmVwbHlPck5vdCB3YW50c1JlcGx5
KQpAQCAtOTQ3LDkgKzk0OCw2IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3U3RhdGVEaWRDaGFu
Z2UoVmkKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gSWYg
dGhlIGluLXdpbmRvdyBzdGF0ZSBtYXkgaGF2ZSBjaGFuZ2VkLCB0aGVuIHNvIG1heSB0aGUgbGF5
ZXIgaG9zdGluZy4KLSAgICBpZiAobWF5SGF2ZUNoYW5nZWQgJiBWaWV3U3RhdGU6OklzSW5XaW5k
b3cpCi0gICAgICAgIG1heUhhdmVDaGFuZ2VkIHw9IFZpZXdTdGF0ZTo6SXNMYXllcldpbmRvd1Nl
cnZlckhvc3RlZDsKICAgICAvLyBJZiB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBtYXkgaGF2ZSBjaGFu
Z2VkLCB0aGVuIHNvIG1heSB0aGUgdmlzdWFsbHkgaWRsZS4KICAgICBpZiAobWF5SGF2ZUNoYW5n
ZWQgJiBWaWV3U3RhdGU6OklzVmlzaWJsZSkKICAgICAgICAgbWF5SGF2ZUNoYW5nZWQgfD0gVmll
d1N0YXRlOjpJc1Zpc3VhbGx5SWRsZTsKQEAgLTk2NiwxNyArOTY0LDIyIEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojp2aWV3U3RhdGVEaWRDaGFuZ2UoVmkKICAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0
ZTo6SXNWaXN1YWxseUlkbGUpCiAgICAgICAgIG1fcHJvY2Vzcy0+cGFnZVN1cHByZXNzaWJpbGl0
eUNoYW5nZWQodGhpcyk7CiAKLSAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxl
KSB7Ci0gICAgICAgIGlmICghaXNWaWV3VmlzaWJsZSgpKSB7Ci0gICAgICAgICAgICAvLyBJZiB3
ZSd2ZSBzdGFydGVkIHRoZSByZXNwb25zaXZlbmVzcyB0aW1lciBhcyBwYXJ0IG9mIHRlbGxpbmcg
dGhlIHdlYiBwcm9jZXNzIHRvIHVwZGF0ZSB0aGUgYmFja2luZyBzdG9yZQotICAgICAgICAgICAg
Ly8gc3RhdGUsIGl0IG1pZ2h0IG5vdCBzZW5kIGJhY2sgYSByZXBseSAoc2luY2UgaXQgd29uJ3Qg
cGFpbnQgYW55dGhpbmcgaWYgdGhlIHdlYiBwYWdlIGlzIGhpZGRlbikgc28gd2UKLSAgICAgICAg
ICAgIC8vIHN0b3AgdGhlIHVucmVzcG9uc2l2ZW5lc3MgdGltZXIgaGVyZS4KLSAgICAgICAgICAg
IG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdG9wKCk7CisgICAgLy8gSWYgd2Un
dmUgc3RhcnRlZCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgYXMgcGFydCBvZiB0ZWxsaW5nIHRo
ZSB3ZWIgcHJvY2VzcyB0byB1cGRhdGUgdGhlIGJhY2tpbmcgc3RvcmUKKyAgICAvLyBzdGF0ZSwg
aXQgbWlnaHQgbm90IHNlbmQgYmFjayBhIHJlcGx5IChzaW5jZSBpdCB3b24ndCBwYWludCBhbnl0
aGluZyBpZiB0aGUgd2ViIHBhZ2UgaXMgaGlkZGVuKSBzbyB3ZQorICAgIC8vIHN0b3AgdGhlIHVu
cmVzcG9uc2l2ZW5lc3MgdGltZXIgaGVyZS4KKyAgICBpZiAoKGNoYW5nZWQgJiBWaWV3U3RhdGU6
OklzVmlzaWJsZSkgJiYgIWlzVmlld1Zpc2libGUoKSkKKyAgICAgICAgbV9wcm9jZXNzLT5yZXNw
b25zaXZlbmVzc1RpbWVyKCktPnN0b3AoKTsKKworICAgIGlmICgobWF5SGF2ZUNoYW5nZWQgJiBW
aWV3U3RhdGU6OklzSW5XaW5kb3cpICYmIChtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNJbldp
bmRvdykpIHsKKyAgICAgICAgTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlID0gbV9w
YWdlQ2xpZW50LnZpZXdMYXllckhvc3RpbmdNb2RlKCk7CisgICAgICAgIGlmIChtX2xheWVySG9z
dGluZ01vZGUgIT0gbGF5ZXJIb3N0aW5nTW9kZSkgeworICAgICAgICAgICAgbV9sYXllckhvc3Rp
bmdNb2RlID0gbGF5ZXJIb3N0aW5nTW9kZTsKKyAgICAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6U2V0TGF5ZXJIb3N0aW5nTW9kZShsYXllckhvc3RpbmdNb2RlKSwg
bV9wYWdlSUQpOwogICAgICAgICB9CiAgICAgfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1JfUE9QT1ZFUikKLSAgICBpZiAobWF5SGF2ZUNoYW5nZWQgJiBWaWV3U3RhdGU6OklzSW5XaW5k
b3cgJiYgIShtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNJbldpbmRvdykpIHsKKyAgICBpZiAo
KG1heUhhdmVDaGFuZ2VkICYgVmlld1N0YXRlOjpJc0luV2luZG93KSAmJiAhKG1fdmlld1N0YXRl
ICYgVmlld1N0YXRlOjpJc0luV2luZG93KSkgewogICAgICAgICAvLyBXaGVuIGxlYXZpbmcgdGhl
IGN1cnJlbnQgcGFnZSwgY2xvc2UgdGhlIHBvcG92ZXIgY29sb3Igd2VsbC4KICAgICAgICAgaWYg
KG1fY29sb3JQaWNrZXIpCiAgICAgICAgICAgICBlbmRDb2xvclBpY2tlcigpOwpAQCAtMzg4OCw2
ICszODkxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVDcmVhdGlvblBhcgogICAg
IG1fY3JlYXRpb25QYXJhbWV0ZXJzLmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQg
PSBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7CiAgICAgbV9jcmVhdGlvblBh
cmFtZXRlcnMuc2Nyb2xsUGlubmluZ0JlaGF2aW9yID0gbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7
CiAgICAgbV9jcmVhdGlvblBhcmFtZXRlcnMuYmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlID0g
bV9iYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U7CisgICAgbV9jcmVhdGlvblBhcmFtZXRlcnMu
bGF5ZXJIb3N0aW5nTW9kZSA9IG1fbGF5ZXJIb3N0aW5nTW9kZTsKIAogI2lmIFBMQVRGT1JNKE1B
QykgJiYgIVBMQVRGT1JNKElPUykKICAgICBtX2NyZWF0aW9uUGFyYW1ldGVycy5jb2xvclNwYWNl
ID0gbV9wYWdlQ2xpZW50LmNvbG9yU3BhY2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTMgKzMzLDEzIEBA
CiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIkVkaXRvclN0YXRlLmgi
CiAjaW5jbHVkZSAiR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgor
I2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgi
CiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIK
ICNpbmNsdWRlICJQYWdlTG9hZFN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNzSWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFy
ZWFibGVCaXRtYXAuaCIKLSNpbmNsdWRlICJWaWV3U3RhdGUuaCIKICNpbmNsdWRlICJXS0Jhc2Uu
aCIKICNpbmNsdWRlICJXS1BhZ2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXIu
aCIKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRH
cmFudWxhcml0eS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlld1N0YXRlLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KQEAgLTQxOCwxMiArNDE5LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbFZp
ZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2Nyb2xsT2Zmc2V0KTsKIAogICAgIGVudW0gY2xhc3MgV2FudHNSZXBseU9yTm90IHsg
RG9lc05vdFdhbnRSZXBseSwgRG9lc1dhbnRSZXBseSB9OwotICAgIHZvaWQgdmlld1N0YXRlRGlk
Q2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgbWF5SGF2ZUNoYW5nZWQsIFdhbnRzUmVwbHlPck5vdCA9
IFdhbnRzUmVwbHlPck5vdDo6RG9lc05vdFdhbnRSZXBseSk7Ci0gICAgYm9vbCBpc0luV2luZG93
KCkgY29uc3QgeyByZXR1cm4gbV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzSW5XaW5kb3c7IH0K
KyAgICB2b2lkIHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1h
eUhhdmVDaGFuZ2VkLCBXYW50c1JlcGx5T3JOb3QgPSBXYW50c1JlcGx5T3JOb3Q6OkRvZXNOb3RX
YW50UmVwbHkpOworICAgIGJvb2wgaXNJbldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1N0
YXRlICYgV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93OyB9CiAgICAgdm9pZCB3YWl0Rm9y
RGlkVXBkYXRlVmlld1N0YXRlKCk7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplKCkg
Y29uc3Q7Ci0gICAgYm9vbCBpc1ZpZXdWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV92aWV3U3Rh
dGUgJiBWaWV3U3RhdGU6OklzVmlzaWJsZTsgfQorICAgIGJvb2wgaXNWaWV3VmlzaWJsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdmlld1N0YXRlICYgV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGU7
IH0KICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNQcm9j
ZXNzU3VwcHJlc3NpYmxlKCkgY29uc3Q7CiAKQEAgLTg1Nyw3ICs4NTgsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAgICAgdm9pZCBpbml0aWFsaXplQ3JlYXRp
b25QYXJhbWV0ZXJzKCk7CiAKLSAgICB2b2lkIHVwZGF0ZVZpZXdTdGF0ZShWaWV3U3RhdGU6OkZs
YWdzIGZsYWdzVG9VcGRhdGUgPSBWaWV3U3RhdGU6OkFsbEZsYWdzKTsKKyAgICB2b2lkIHVwZGF0
ZVZpZXdTdGF0ZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIGZsYWdzVG9VcGRhdGUgPSBXZWJD
b3JlOjpWaWV3U3RhdGU6OkFsbEZsYWdzKTsKIAogICAgIHZvaWQgcmVzZXRTdGF0ZSgpOwogICAg
IHZvaWQgcmVzZXRTdGF0ZUFmdGVyUHJvY2Vzc0V4aXRlZCgpOwpAQCAtMTIxOCw3ICsxMjE5LDcg
QEAgcHJpdmF0ZToKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
IG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAgICAgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI7CiAKLSAgICBWaWV3U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlOworICAgIFdl
YkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3MgbV92aWV3U3RhdGU7CiAKICAgICBib29sIG1fY2FuR29C
YWNrOwogICAgIGJvb2wgbV9jYW5Hb0ZvcndhcmQ7CkBAIC0xMjQwLDYgKzEyNDEsOCBAQCBwcml2
YXRlOgogICAgIGZsb2F0IG1faW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3I7CiAgICAgZmxvYXQg
bV9jdXN0b21EZXZpY2VTY2FsZUZhY3RvcjsKIAorICAgIExheWVySG9zdGluZ01vZGUgbV9sYXll
ckhvc3RpbmdNb2RlOworCiAgICAgYm9vbCBtX2RyYXdzQmFja2dyb3VuZDsKICAgICBib29sIG1f
ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAkocmV2aXNpb24gMTYxMzE2KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAkod29y
a2luZyBjb3B5KQpAQCAtNjYsOSArNjYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c1ZpZXdWaXNpYmxlKCk7CiAgICAgdmlydHVhbCBib29sIGlzVmlld0luV2luZG93KCk7CiAgICAg
dmlydHVhbCBib29sIGlzVmlzdWFsbHlJZGxlKCk7Ci0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lO
X1dJTkRPV19TRVJWRVIpCi0gICAgdmlydHVhbCBib29sIGlzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0
ZWQoKTsKLSNlbmRpZgorICAgIHZpcnR1YWwgTGF5ZXJIb3N0aW5nTW9kZSB2aWV3TGF5ZXJIb3N0
aW5nTW9kZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgQ29sb3JTcGFjZURhdGEgY29sb3JTcGFj
ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Um9vdExheWVyKENBTGF5ZXIgKikgT1ZFUlJJREU7CiAKQEAgLTE2NSw5ICsxNjMsNiBAQCBwcml2
YXRlOgogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQogICAgIE93blB0cjxXZWJDb3Jl
OjpBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI+IG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9s
bGVyOwogI2VuZGlmCi0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0g
ICAgYm9vbCBtX2lzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQ7Ci0jZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
UGFnZUNsaWVudEltcGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0JKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw3ICszMSw2IEBACiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW1wb3J0ICJE
aWN0aW9uYXJ5UG9wdXBJbmZvLmgiCiAjaW1wb3J0ICJGaW5kSW5kaWNhdG9yLmgiCi0jaW1wb3J0
ICJMYXllclRyZWVDb250ZXh0LmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmgi
CiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgpAQCAt
MTI5LDkgKzEyOCw2IEBAIFBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1wbChXS1ZpZXcqIHcK
ICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKICAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0
VUlDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIpKQog
I2VuZGlmCi0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAgLCBt
X2lzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQodHJ1ZSkKLSNlbmRpZgogewogfQogCkBAIC0yMjAs
MTYgKzIxNiwxNCBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjppc1Zpc3VhbGx5SWRsZSgpCiAgICAg
cmV0dXJuIFdpbmRvd1NlcnZlckNvbm5lY3Rpb246OnNoYXJlZCgpLmFwcGxpY2F0aW9uV2luZG93
TW9kaWZpY2F0aW9uc0hhdmVTdG9wcGVkKCkgfHwgIWlzVmlld1Zpc2libGUoKTsKIH0KIAotI2lm
IEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQotYm9vbCBQYWdlQ2xpZW50SW1w
bDo6aXNMYXllcldpbmRvd1NlcnZlckhvc3RlZCgpCitMYXllckhvc3RpbmdNb2RlIFBhZ2VDbGll
bnRJbXBsOjp2aWV3TGF5ZXJIb3N0aW5nTW9kZSgpCiB7Ci0gICAgLy8gT25seSB1cGRhdGUgbV9p
c0xheWVyV2luZG93U2VydmVySG9zdGVkIHdoZW4gdGhlIHZpZXcgaXMgaW4gYSB3aW5kb3cgLSBv
dGhlcndpc2UganVzdCByZXBvcnQgdGhlIGxhc3QgdmFsdWUuCi0gICAgaWYgKFttX3drVmlldyB3
aW5kb3ddKQotICAgICAgICBtX2lzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQgPSBbW21fd2tWaWV3
IHdpbmRvd10gX2hvc3RzTGF5ZXJzSW5XaW5kb3dTZXJ2ZXJdOwotCi0gICAgcmV0dXJuIG1faXNM
YXllcldpbmRvd1NlcnZlckhvc3RlZDsKLX0KKyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lO
RE9XX1NFUlZFUikKKyAgICBpZiAoW21fd2tWaWV3IHdpbmRvd10gJiYgW1ttX3drVmlldyB3aW5k
b3ddIF9ob3N0c0xheWVyc0luV2luZG93U2VydmVyXSkKKyAgICAgICAgcmV0dXJuIExheWVySG9z
dGluZ01vZGVJbldpbmRvd1NlcnZlcjsKICNlbmRpZgorICAgIHJldHVybiBMYXllckhvc3RpbmdN
b2RlRGVmYXVsdDsKK30KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6dmlld1dpbGxNb3ZlVG9Bbm90
aGVyV2luZG93KCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzgy
LDcgKzc4Miw2IEBACiAJCTdDRjQ3RkZFMTcyNzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VC
YW5uZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Q0Y0N0ZGQzE3Mjc2QUUzMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyTWFjLm1tICov
OyB9OwogCQk3Q0Y0N0ZGRjE3Mjc2QUUzMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyTWFj
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Y0N0ZG
RDE3Mjc2QUUzMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyTWFjLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODQ0Nzc4NTMxNzZGQ0MwODAw
Q0RDN0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ0Nzc4NTExNzZGQ0FDMTAw
Q0RDN0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oICovOyB9Owot
CQk4NjVFMDQ4NTE4MUEwOTRBMDAxRjcyRjIgLyogVmlld1N0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjVFMDQ4NDE4MUEwOTBEMDAxRjcyRjIg
LyogVmlld1N0YXRlLmggKi87IH07CiAJCTg2ODE2MEQwMTg3NjQ1NTcwMDIxRTc5RCAvKiBXaW5k
b3dTZXJ2ZXJDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODY4MTYwQ0YxODc2NDUzNzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5l
Y3Rpb24ubW0gKi87IH07CiAJCThDRkVDRTk0MTQ5MEYxNDAwMDJBQUEzMiAvKiBFZGl0b3JTdGF0
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Q0ZF
Q0U5MzE0OTBGMTQwMDAyQUFBMzIgLyogRWRpdG9yU3RhdGUuY3BwICovOyB9OwogCQk4REMyRUY1
MzA0ODZBNjk0MDA5OEIyMTYgLyogSW5mb1BsaXN0LnN0cmluZ3MgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4OUMxNjY2RkU4NDExNThDMDJBQUMwNyAv
KiBJbmZvUGxpc3Quc3RyaW5ncyAqLzsgfTsKQEAgLTI0MDIsNyArMjQwMSw2IEBACiAJCTdDRjQ3
RkZDMTcyNzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRjQ3RkZEMTcyNzZBRTMwMDhBQ0I5MSAv
KiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tCdW5kbGVQYWdlQmFubmVyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg0NDc3ODUxMTc2RkNBQzEwMENEQzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRN
ZWRpYVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5k
bGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTg2NUUwNDg0MTgxQTA5MEQwMDFGNzJGMiAvKiBWaWV3U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Vmlld1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2ODE2MENEMTg3NjNE
NEIwMDIxRTc5RCAvKiBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdp
bmRvd1NlcnZlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY4
MTYwQ0YxODc2NDUzNzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4Q0ZFQ0U5MzE0OTBGMTQwMDAyQUFBMzIgLyogRWRpdG9yU3RhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdG9yU3RhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzU4MSw3ICszNTc5LDYgQEAKIAkJCQkx
QUMxMzM2NTE4NTY1QjU3MDBGM0VDMDUgLyogVXNlckRhdGEuY3BwICovLAogCQkJCTFBQzEzMzY2
MTg1NjVCNTcwMEYzRUMwNSAvKiBVc2VyRGF0YS5oICovLAogCQkJCUJDQjBCMERGMTIzMDVBQjEw
MEIxMzQxRSAvKiBVc2VyTWVzc2FnZUNvZGVycy5oICovLAotCQkJCTg2NUUwNDg0MTgxQTA5MEQw
MDFGNzJGMiAvKiBWaWV3U3RhdGUuaCAqLywKIAkJCQkxQTBGMjlDOTEyMEIzNzE2MDA1M0QxQjkg
LyogVmlzaXRlZExpbmtUYWJsZS5jcHAgKi8sCiAJCQkJMUEwRjI5Q0ExMjBCMzcxNjAwNTNEMUI5
IC8qIFZpc2l0ZWRMaW5rVGFibGUuaCAqLywKIAkJCQlCQzMyOUQ5OTE2QUNDRTk5MDAzMTZERTIg
LyogV2ViQXJjaGl2ZS5jcHAgKi8sCkBAIC01NzcxLDcgKzU3NjgsNiBAQAogCQkJCTUxNUU3NzMw
MTg0MDE1ODAwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjg3OEI2MTUxMzM0MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMjk4OUE0MTQxNjdEMTg0QjAwNEY5NkQyIC8qIEN1c3RvbVByb3RvY29sTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODY1RTA0ODUxODFBMDk0QTAwMUY3MkYyIC8qIFZp
ZXdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcxQjMyREUxODRENjc0OTAwMTNFMkIyIC8q
IFdLTlNVUkxQcm90ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5ODRGNTg5MTY0
QkEwOTUwMDRCQzBDNiAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMjlBRDMwOTMxNjRCNEM1RDAwNzJERUE5IC8qIEN1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAJKHJldmlzaW9uIDE2MTMxNikKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzY0LDYgKzM2NCwyMSBAQCB2b2lkIFBsdWdpblZpZXc6OnJlY3JlYXRlQW5kSW5p
dGlhbGl6ZShQCiAgICAgaW5pdGlhbGl6ZVBsdWdpbigpOwogfQogCit2b2lkIFBsdWdpblZpZXc6
OnNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlKQor
eworI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQorICAgIGlmICghbV9w
bHVnaW4pCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2lzSW5pdGlhbGl6ZWQpCisgICAg
ICAgIG1fcGx1Z2luLT5zZXRMYXllckhvc3RpbmdNb2RlKGxheWVySG9zdGluZ01vZGUpOworICAg
IGVsc2UKKyAgICAgICAgbV9wYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUgPSBsYXllckhvc3Rp
bmdNb2RlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5ZXJIb3N0aW5nTW9kZSk7CisjZW5k
aWYKK30KKwogRnJhbWUqIFBsdWdpblZpZXc6OmZyYW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9wbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCk7CkBAIC00OTEsMjQgKzUwNiwxMyBA
QCB2b2lkIFBsdWdpblZpZXc6OnZpZXdTdGF0ZURpZENoYW5nZShWaWV3CiAjaWYgUExBVEZPUk0o
TUFDKQogdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3Rh
dGU6OkZsYWdzIGNoYW5nZWQpCiB7Ci0gICAgaWYgKCFtX3BsdWdpbikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaWYgKCFtX2lzSW5pdGlhbGl6ZWQpIHsKLSNpZiBIQVZFKExBWUVSX0hPU1RJTkdf
SU5fV0lORE9XX1NFUlZFUikKLSAgICAgICAgbV9wYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUg
PSBtX3dlYlBhZ2UtPmxheWVySG9zdGluZ01vZGUoKTsKLSNlbmRpZgorICAgIGlmICghbV9wbHVn
aW4gfHwgIW1faXNJbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIGlm
IChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc1Zpc2libGUpCiAgICAgICAgIG1fcGx1Z2luLT53aW5k
b3dWaXNpYmlsaXR5Q2hhbmdlZChtX3dlYlBhZ2UtPmlzVmlzaWJsZSgpKTsKICAgICBpZiAoY2hh
bmdlZCAmIFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpCiAgICAgICAgIG1fcGx1Z2luLT53aW5k
b3dGb2N1c0NoYW5nZWQobV93ZWJQYWdlLT53aW5kb3dJc0ZvY3VzZWQoKSk7Ci0jaWYgSEFWRShM
QVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAgaWYgKGNoYW5nZWQgJiBWaWV3U3Rh
dGU6OklzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQpCi0gICAgICAgIG1fcGx1Z2luLT5zZXRMYXll
ckhvc3RpbmdNb2RlKG1fd2ViUGFnZS0+bGF5ZXJIb3N0aW5nTW9kZSgpKTsKLSNlbmRpZgogfQog
CiB2b2lkIFBsdWdpblZpZXc6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9y
KQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5oCShyZXZpc2lvbiAxNjEzMTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVk
ZSAiTlBSdW50aW1lT2JqZWN0TWFwLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAi
UGx1Z2luQ29udHJvbGxlci5oIgotI2luY2x1ZGUgIlZpZXdTdGF0ZS5oIgogI2luY2x1ZGUgIldl
YkZyYW1lLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaW5kT3B0aW9ucy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvSW1hZ2UuaD4KQEAgLTM4LDYgKzM3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291
cmNlRXJyb3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RpbWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWV3U3RhdGUuaD4KICNp
bmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogCkBAIC02OSwx
MCArNjksMTEgQEAgcHVibGljOgogICAgIHZvaWQgbWFudWFsTG9hZERpZEZpbmlzaExvYWRpbmco
KTsKICAgICB2b2lkIG1hbnVhbExvYWREaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJy
b3ImKTsKIAotICAgIHZvaWQgdmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hh
bmdlZCk7CisgICAgdm9pZCB2aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpG
bGFncyBjaGFuZ2VkKTsKKyAgICB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5n
TW9kZSk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBwbGF0Zm9ybVZpZXdTdGF0ZURp
ZENoYW5nZShWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQpOworICAgIHZvaWQgcGxhdGZvcm1WaWV3
U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncyBjaGFuZ2VkKTsKICAgICB2
b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0KTsKICAgICB2b2lkIHdpbmRvd0FuZFZpZXdG
cmFtZXNDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblNjcmVl
bkNvb3JkaW5hdGVzLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHZpZXdGcmFtZUluV2luZG93
Q29vcmRpbmF0ZXMpOwogICAgIGJvb2wgc2VuZENvbXBsZXhUZXh0SW5wdXQodWludDY0X3QgcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgdGV4dElucHV0KTsK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJl
YS5oCShyZXZpc2lvbiAxNjEzMTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsOSArMjgsMTAgQEAKIAogI2lu
Y2x1ZGUgIkRyYXdpbmdBcmVhSW5mby5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIK
LSNpbmNsdWRlICJWaWV3U3RhdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3Qu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdTdGF0ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJk
Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKQEAgLTEwNiw3ICsxMDcsOCBAQCBw
dWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNj
cm9sbFBvc2l0aW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+Jik7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgdmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkgeyB9CisgICAg
dmlydHVhbCB2b2lkIHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdz
IGNoYW5nZWQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVy
SG9zdGluZ01vZGUpIHsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgRHJhd2luZ0FyZWEoRHJhd2luZ0Fy
ZWFUeXBlLCBXZWJQYWdlKik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAxNjEzMTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MSw2ICsy
NDEsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgCiAgICAgLCBt
X251bWJlck9mUHJpbWFyeVNuYXBzaG90RGV0ZWN0aW9uQXR0ZW1wdHMoMCkKICAgICAsIG1fZGV0
ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlz
LCAmV2ViUGFnZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luVGltZXJGaXJlZCkK
ICNlbmRpZgorICAgICwgbV9sYXllckhvc3RpbmdNb2RlKHBhcmFtZXRlcnMubGF5ZXJIb3N0aW5n
TW9kZSkKICNpZiBQTEFURk9STShNQUMpCiAgICAgLCBtX3BkZlBsdWdpbkVuYWJsZWQoZmFsc2Up
CiAgICAgLCBtX2hhc0NhY2hlZFdpbmRvd0ZyYW1lKGZhbHNlKQpAQCAtMjA4OCw2ICsyMDg5LDE2
IEBAIHZvaWQgV2ViUGFnZTo6c2V0Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmwKICAgICAgICAgbV9z
ZW5kRGlkVXBkYXRlVmlld1N0YXRlVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lkIFdl
YlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0aW5nTW9kZSkKK3sK
KyAgICBtX2xheWVySG9zdGluZ01vZGUgPSBzdGF0aWNfY2FzdDxMYXllckhvc3RpbmdNb2RlPihs
YXllckhvc3RpbmdNb2RlKTsKKworICAgIG1fZHJhd2luZ0FyZWEtPnNldExheWVySG9zdGluZ01v
ZGUobV9sYXllckhvc3RpbmdNb2RlKTsKKworICAgIGZvciAoYXV0byogcGx1Z2luVmlldyA6IG1f
cGx1Z2luVmlld3MpCisgICAgICAgIHBsdWdpblZpZXctPnNldExheWVySG9zdGluZ01vZGUobV9s
YXllckhvc3RpbmdNb2RlKTsKK30KKwogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVj
aXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgdWludDMyX3QgcG9s
aWN5QWN0aW9uLCB1aW50NjRfdCBkb3dubG9hZElEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9
IFdlYlByb2Nlc3M6OnNoYXJlZCgpLndlYkZyYW1lKGZyYW1lSUQpOwpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAxNjEzMTYpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNv
cHkpCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiU2Fu
ZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgotI2luY2x1ZGUg
IlZpZXdTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlVuZG9TdGVwLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9EaWN0YXRpb25BbHRlcm5hdGl2ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4K
QEAgLTU3LDYgKzU2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENo
ZWNraW5nLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWV3U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1dlYkNvcmVLZXlib2FyZFVJTW9kZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgpAQCAtMzQ2LDE4ICszNDYsMTIgQEAgcHVibGljOgogICAg
IHZvaWQgYWRkUGx1Z2luVmlldyhQbHVnaW5WaWV3Kik7CiAgICAgdm9pZCByZW1vdmVQbHVnaW5W
aWV3KFBsdWdpblZpZXcqKTsKIAotICAgIGJvb2wgaXNWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4g
bV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzVmlzaWJsZTsgfQorICAgIGJvb2wgaXNWaXNpYmxl
KCkgY29uc3QgeyByZXR1cm4gbV92aWV3U3RhdGUgJiBXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlz
aWJsZTsgfQogCi0jaWYgUExBVEZPUk0oTUFDKQotICAgIExheWVySG9zdGluZ01vZGUgbGF5ZXJI
b3N0aW5nTW9kZSgpIGNvbnN0Ci0gICAgewotI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5E
T1dfU0VSVkVSKQotICAgICAgICByZXR1cm4gbV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzTGF5
ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQgPyBMYXllckhvc3RpbmdNb2RlSW5XaW5kb3dTZXJ2ZXIgOiBM
YXllckhvc3RpbmdNb2RlRGVmYXVsdDsKLSNlbHNlCi0gICAgICAgIHJldHVybiBMYXllckhvc3Rp
bmdNb2RlRGVmYXVsdDsKLSNlbmRpZgotICAgIH0KKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVy
SG9zdGluZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX2xheWVySG9zdGluZ01vZGU7IH0KKyAgICB2
b2lkIHNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQpOwogCisjaWYgUExBVEZPUk0oTUFDKQog
ICAgIHZvaWQgdXBkYXRlUGx1Z2luc0FjdGl2ZUFuZEZvY3VzZWRTdGF0ZSgpOwogICAgIGNvbnN0
IFdlYkNvcmU6OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzKCkgY29u
c3QgeyByZXR1cm4gbV93aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7IH0KICAgICBjb25z
dCBXZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5VbmZsaXBwZWRTY3JlZW5Db29yZGlu
YXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93RnJhbWVJblVuZmxpcHBlZFNjcmVlbkNvb3Jk
aW5hdGVzOyB9CkBAIC03MzEsNyArNzI1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEluaXRp
YWxGb2N1cyhib29sIGZvcndhcmQsIGJvb2wgaXNLZXlib2FyZEV2ZW50VmFsaWQsIGNvbnN0IFdl
YktleWJvYXJkRXZlbnQmKTsKICAgICB2b2lkIHNldFdpbmRvd1Jlc2l6ZXJTaXplKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmKTsKICAgICB2b2lkIHNldElzSW5XaW5kb3coYm9vbCk7Ci0gICAgdm9p
ZCBzZXRWaWV3U3RhdGUoVmlld1N0YXRlOjpGbGFncywgYm9vbCB3YW50c0RpZFVwZGF0ZVZpZXdT
dGF0ZSk7CisgICAgdm9pZCBzZXRWaWV3U3RhdGUoV2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncywg
Ym9vbCB3YW50c0RpZFVwZGF0ZVZpZXdTdGF0ZSk7CiAgICAgdm9pZCB2YWxpZGF0ZUNvbW1hbmQo
Y29uc3QgU3RyaW5nJiwgdWludDY0X3QpOwogICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kKGNv
bnN0IFN0cmluZyYpOwogCkBAIC05MTIsNiArOTA2LDkgQEAgcHJpdmF0ZToKICAgICBSdW5Mb29w
OjpUaW1lcjxXZWJQYWdlPiBtX2RldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblRpbWVy
OwogI2VuZGlmCiAKKyAgICAvLyBUaGUgbGF5ZXIgaG9zdGluZyBtb2RlLgorICAgIExheWVySG9z
dGluZ01vZGUgbV9sYXllckhvc3RpbmdNb2RlOworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGJv
b2wgbV9wZGZQbHVnaW5FbmFibGVkOwogCkBAIC0xMDQ0LDcgKzEwNDEsNyBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBtX3VzZUFzeW5jU2Nyb2xsaW5nOwogCi0gICAgVmlld1N0YXRlOjpGbGFncyBt
X3ZpZXdTdGF0ZTsKKyAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlOwog
fTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMTYx
MzE2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IFdlYlBh
Z2UgTGVnYWN5UmVjZWl2ZXIgewogICAgIFNldEluaXRpYWxGb2N1cyhib29sIGZvcndhcmQsIGJv
b2wgaXNLZXlib2FyZEV2ZW50VmFsaWQsIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCBldmVudCkK
ICAgICBTZXRWaWV3U3RhdGUodW5zaWduZWQgdmlld1N0YXRlLCBib29sIHdhbnRzRGlkVXBkYXRl
Vmlld1N0YXRlKQorICAgIFNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0aW5n
TW9kZSkKIAogICAgIFNldERyYXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkKICAg
ICBTZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChib29sIGRyYXdzVHJhbnNwYXJlbnRCYWNr
Z3JvdW5kKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAko
cmV2aXNpb24gMTYxMzE2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3
ICs1NSw3IEBAIHB1YmxpYzoKICAgICBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYShXZWJQ
YWdlKiwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZpcnR1YWwgflRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdmlld1N0
YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkgT1ZFUlJJREU7CisgICAgdmly
dHVhbCB2b2lkIHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIGNo
YW5nZWQpIE9WRVJSSURFOwogCiBwcml2YXRlOgogICAgIC8vIERyYXdpbmdBcmVhCkBAIC0xMDIs
NyArMTAyLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0
b3IoZmxvYXQpIE9WRVJSSURFOwogICAgIHZvaWQgc3VzcGVuZFBhaW50aW5nKCk7CiAgICAgdm9p
ZCByZXN1bWVQYWludGluZygpOwotICAgIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhv
c3RpbmdNb2RlKTsKKyAgICB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9k
ZSkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbG9yU3BhY2UoY29uc3QgQ29sb3JT
cGFjZURhdGEmKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RUcmFuc2llbnRa
b29tKGRvdWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pIE9WRVJSSURFOwpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCShyZXZpc2lv
biAxNjEzMTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOTcsMTEgKzM5
Nyw2IEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnZpZXcKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgc3VzcGVuZFBhaW50aW5nKCk7CiAgICAgfQotCi0jaWYgSEFWRShM
QVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAgaWYgKGNoYW5nZWQgJiBWaWV3U3Rh
dGU6OklzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQpCi0gICAgICAgIHNldExheWVySG9zdGluZ01v
ZGUobV93ZWJQYWdlLT5sYXllckhvc3RpbmdNb2RlKCkpOwotI2VuZGlmCiB9CiAKIHZvaWQgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnN1c3BlbmRQYWludGluZygpCg==
</data>
<flag name="commit-queue"
          id="244081"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220383</attachid>
            <date>2014-01-04 18:41:59 -0800</date>
            <delta_ts>2014-01-05 00:32:05 -0800</delta_ts>
            <desc>style+GTK fix</desc>
            <filename>126488.3.patch</filename>
            <type>text/plain</type>
            <size>38854</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE0LTAxLTA0ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFZpZXdT
dGF0ZSB0byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjY0ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGNoYW5nZSBhbHNvIHBhcnRpYWwgcmV2ZXJ0cyBoYW5kbGluZyBvZiBMYXll
ckhvc3RpbmdNb2RlLCBtYWtpbmcgdGhpcworICAgICAgICBhIHNlcGFyYXRlIG1lc3NhZ2UgYWdh
aW4uIFdpdGggaGluZHNpZ2h0IHRoZSBuZXcgd2F5IG9mIGRvaW5nIHRoaXMgd2Fzbid0CisgICAg
ICAgIGluIGFsbCB3YXlzIHNpbXBsZXIsIGFuZCBpdCB3b24ndCBtYWtlIHNlbnNlIHRvIG1vdmUg
dGhpcyB0byBXZWJDb3JlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIHBhZ2UvVmlld1N0YXRlLmg6IEFkZGVkLgorICAgICAgICAgICAg
LSBNb3ZlZCBmcm9tIFdlYktpdDIsIHdpbGwgYmUgdXNlZCBieSBQYWdlICYgRm9jdXNDb250cm9s
bGVyLgorCiAyMDE0LTAxLTA0ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgTW92ZSBhIGZldyBtb3JlIGZ1bmN0aW9ucyBmcm9tIFJlbmRlckJsb2NrIHRvIFJlbmRlckJs
b2NrRmxvdwpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMTYxMzE2KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0yODYwLDYgKzI4
NjAsNyBAQAogCQk4NjFDMkVBNjEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5n
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2MUMy
RUE1MTNGQjRGRkYwMDA2MkFCQiAvKiBSZXNvdXJjZUxvYWRUaW1pbmcuY3BwICovOyB9OwogCQk4
NjUxMkVERTE1NEEyQUVGMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjUxMkVEQjE1
NEEyQUVFMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5jcHAgKi87IH07CiAJ
CTg2NTEyRURGMTU0QTJBRUYwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjUxMkVEQzE1
NEEyQUVGMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oICovOyB9OworCQk4
Njc4RDBCQjE4NzhFODkxMDAzQUJERTYgLyogVmlld1N0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Njc4RDBCQTE4NzhFODEwMDAzQUJERTYgLyog
Vmlld1N0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJODY4MTYwRDQxODc2NkEwQTAwMjFFNzlEIC8qIFVzZXJBY3Rpdml0eS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjgxNjBEMTE4NzY2OUM0
MDAyMUU3OUQgLyogVXNlckFjdGl2aXR5LmNwcCAqLzsgfTsKIAkJODY4MTYwRDUxODc2NkEwRTAw
MjFFNzlEIC8qIFVzZXJBY3Rpdml0eU1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDg2ODE2MEQzMTg3NjY5RTcwMDIxRTc5RCAvKiBVc2VyQWN0aXZp
dHlNYWMubW0gKi87IH07CiAJCTg2ODE2MEQ2MTg3NjZBMTMwMDIxRTc5RCAvKiBVc2VyQWN0aXZp
dHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg2ODE2
MEQyMTg3NjY5QzQwMDIxRTc5RCAvKiBVc2VyQWN0aXZpdHkuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtOTY1MSw2ICs5NjUyLDcgQEAKIAkJODY1
MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUGVyZm9ybWFuY2VSZXNvdXJjZVRp
bWluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2NTEyRURDMTU0QTJBRUYw
MEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1pbmcuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODY1MTJFREQxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNl
UmVzb3VyY2VUaW1pbmcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4Njc4RDBCQTE4
NzhFODEwMDAzQUJERTYgLyogVmlld1N0YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpZXdTdGF0ZS5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjgxNjBEMTE4NzY2OUM0MDAyMUU3OUQg
LyogVXNlckFjdGl2aXR5LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFVzZXJBY3Rpdml0eS5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2ODE2MEQyMTg3NjY5QzQwMDIxRTc5RCAv
KiBVc2VyQWN0aXZpdHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVXNlckFjdGl2aXR5Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2ODE2MEQzMTg3NjY5RTcwMDIxRTc5RCAvKiBVc2VyQWN0
aXZpdHlNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVc2VyQWN0aXZpdHlNYWMubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTkzNyw2ICsxNTkzOSw3IEBACiAJCQkJQkM4
QkYxNTAxMDU4MTNCRjAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0LmggKi8sCiAJCQkJQkM4QkYx
NTkxMDU4MTQxODAwQTQwQTA3IC8qIFVzZXJTdHlsZVNoZWV0VHlwZXMuaCAqLywKIAkJCQlGNTEz
QTNFOTE1RkY0ODQxMDAxNTI2REIgLyogVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLywKKwkJ
CQk4Njc4RDBCQTE4NzhFODEwMDAzQUJERTYgLyogVmlld1N0YXRlLmggKi8sCiAJCQkJQkU5ODNE
OTUwNTJBMkUwQTAwODkyRDg1IC8qIFdlYkNvcmVLZXlib2FyZFVJTW9kZS5oICovLAogCQkJCTQ5
NEJENzkzMEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5oICovLAogCQkJCTQ5NEJENzk0
MEY1NUM4RUUwMDc0NzgyOCAvKiBXZWJLaXRQb2ludC5pZGwgKi8sCkBAIC0yMjgzMiw2ICsyMjgz
NSw3IEBACiAJCQkJODU0MDc1NjkwQUQ2Q0JGOTAwNjIwQzU3IC8qIERPTUhUTUxBcHBsZXRFbGVt
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTUyNDdDRjBBRDg1MEI4MDAxMjA5M0IgLyogRE9N
SFRNTEFwcGxldEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVFQ0JFRUIw
QUE3NjI2OTAwNTQ0RjBCIC8qIERPTUhUTUxBcmVhRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJODY3OEQwQkIxODc4RTg5MTAwM0FCREU2IC8qIFZpZXdTdGF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJODVFNzExOUMwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxBcmVhRWxlbWVudEludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NTlBOUM0NzBBQTVFM0JEMDBCNjk0QjIgLyogRE9N
SFRNTEJhc2VFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk4NUU3MTE5RDBBQzVENTM1MDA1
MzI3MEYgLyogRE9NSFRNTEJhc2VFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApJbmRl
eDogU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3U3RhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9wYWdlL1ZpZXdTdGF0ZS5oCShyZXZpc2lvbiAwKQorKysgU291cmNlL1dlYkNvcmUv
cGFnZS9WaWV3U3RhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ4IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2lmbmRlZiBWaWV3U3RhdGVfaAorI2RlZmluZSBWaWV3U3RhdGVfaAorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0cnVjdCBWaWV3U3RhdGUgeworICAgIGVudW0geworICAgICAgICBX
aW5kb3dJc0FjdGl2ZSA9IDEgPDwgMCwKKyAgICAgICAgSXNGb2N1c2VkID0gMSA8PCAxLAorICAg
ICAgICBJc1Zpc2libGUgPSAxIDw8IDIsCisgICAgICAgIElzSW5XaW5kb3cgPSAxIDw8IDMsCisg
ICAgICAgIElzVmlzdWFsbHlJZGxlID0gMSA8PCA0LAorICAgIH07CisKKyAgICB0eXBlZGVmIHVu
c2lnbmVkIEZsYWdzOworCisgICAgc3RhdGljIGNvbnN0IEZsYWdzIE5vRmxhZ3MgPSAwOworICAg
IHN0YXRpYyBjb25zdCBGbGFncyBBbGxGbGFncyA9IFdpbmRvd0lzQWN0aXZlIHwgSXNGb2N1c2Vk
IHwgSXNWaXNpYmxlIHwgSXNJbldpbmRvdyB8IElzVmlzdWFsbHlJZGxlOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gVmlld1N0YXRlX2gKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDY3IEBACisyMDE0LTAxLTA0ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJh
cnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFZpZXdTdGF0ZSB0byBXZWJDb3Jl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjY0ODgK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNo
YW5nZSBhbHNvIHBhcnRpYWwgcmV2ZXJ0cyBoYW5kbGluZyBvZiBMYXllckhvc3RpbmdNb2RlLCBt
YWtpbmcgdGhpcworICAgICAgICBhIHNlcGFyYXRlIG1lc3NhZ2UgYWdhaW4uIFdpdGggaGluZHNp
Z2h0IHRoZSBuZXcgd2F5IG9mIGRvaW5nIHRoaXMgd2Fzbid0CisgICAgICAgIGluIGFsbCB3YXlz
IHNpbXBsZXIsIGFuZCBpdCB3b24ndCBtYWtlIHNlbnNlIHRvIG1vdmUgdGhpcyB0byBXZWJDb3Jl
LgorCisgICAgICAgICogU2hhcmVkL1ZpZXdTdGF0ZS5oOiBSZW1vdmVkLgorICAgICAgICAgICAg
LSBNb3ZlZCB0byBXZWJDb3JlLgorICAgICAgICAqIFNoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJh
bWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6
ZW5jb2RlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVj
b2RlKToKKyAgICAgICAgKiBTaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oOgorICAg
ICAgICAgICAgLSBBZGRlZCBsYXllckhvc3RpbmdNb2RlLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xp
ZW50SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp2aWV3TGF5ZXJIb3N0
aW5nTW9kZSk6CisgICAgICAgICogVUlQcm9jZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudDo6dmlld0xheWVySG9zdGluZ01vZGUpOgorICAgICAgICAgICAgLSBS
ZXZlcnQgaXNMYXllcldpbmRvd1NlcnZlckhvc3RlZCAtPiB2aWV3TGF5ZXJIb3N0aW5nTW9kZS4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAgICAgLSBBZGRlZCBiYWNrIG1f
bGF5ZXJIb3N0aW5nTW9kZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp1cGRhdGVW
aWV3U3RhdGUpOgorICAgICAgICAgICAgLSBSZW1vdmVkIElzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0
ZWQgZnJvbSBWaWV3U3RhdGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld1N0
YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgICAgIC0gQWRkZWQgU2V0TGF5ZXJIb3N0aW5nTW9kZSBt
ZXNzYWdlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmluaXRpYWxpemVDcmVhdGlv
blBhcmFtZXRlcnMpOgorICAgICAgICAgICAgLSBQYXNzIGxheWVySG9zdGluZ01vZGUuCisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OmlzSW5XaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzVmll
d1Zpc2libGUpOgorICAgICAgICAgICAgLSBWaWV3U3RhdGUgbW92ZWQgdG8gV2ViQ29yZS4KKyAg
ICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICAgICAt
IFJlbW92ZWQgVmlld1N0YXRlLgorICAgICAgICAqIFdlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5W
aWV3LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luVmlldzo6c2V0TGF5ZXJIb3N0aW5nTW9k
ZSk6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnBsYXRmb3JtVmlld1N0YXRlRGlkQ2hh
bmdlKToKKyAgICAgICAgICAgIC0gU2VwYXJhdGVkIHNldExheWVySG9zdGluZ01vZGUgZnJvbSBw
bGF0Zm9ybVZpZXdTdGF0ZURpZENoYW5nZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luVmlldy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9EcmF3aW5nQXJlYS5o
OgorICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYTo6dmlld1N0YXRlRGlkQ2hhbmdlKToKKyAg
ICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAg
ICAgICAgLSBBZGRlZCB2aXJ0dWFsIGZ1bmN0aW9uLCBvdmVycmlkZGVuIGluIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6V2ViUGFnZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUpOgorICAgICAgICAgICAgLSBTZXBhcmF0
ZWQgc2V0TGF5ZXJIb3N0aW5nTW9kZSBmcm9tIHBsYXRmb3JtVmlld1N0YXRlRGlkQ2hhbmdlLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OmlzVmlzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmxheWVySG9z
dGluZ01vZGUpOgorICAgICAgICAgICAgLSBWaWV3U3RhdGUgbW92ZWQgdG8gV2ViQ29yZS4KKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
ICAgIC0gQWRkZWQgU2V0TGF5ZXJIb3N0aW5nTW9kZSBtZXNzYWdlLgorICAgICAgICAqIFdlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYTo6dmll
d1N0YXRlRGlkQ2hhbmdlKToKKyAgICAgICAgICAgIC0gdmlld1N0YXRlRGlkQ2hhbmdlIG5vIGxv
bmdlciBjYWxscyBzZXRMYXllckhvc3RpbmdNb2RlICh0aGlzIGlzIGNhbGxlZCBieSBXZWJQYWdl
KS4KKwogMjAxNC0wMS0wNCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dUS10gW0NNYWtlXSBJbXByb3ZlIHRoZSB3YXkgd2UgbG9jYXRlIGdvYmpl
Y3QtaW50cm9zcGVjdGlvbgpJbmRleDogU291cmNlL1dlYktpdDIvU2hhcmVkL1ZpZXdTdGF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9WaWV3U3RhdGUuaAkocmV2aXNp
b24gMTYxMzE2KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVkL1ZpZXdTdGF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIFZpZXdTdGF0ZV9o
Ci0jZGVmaW5lIFZpZXdTdGF0ZV9oCi0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1zdHJ1Y3QgVmll
d1N0YXRlIHsKLSAgICBlbnVtIHsKLSAgICAgICAgV2luZG93SXNBY3RpdmUgPSAxIDw8IDAsCi0g
ICAgICAgIElzRm9jdXNlZCA9IDEgPDwgMSwKLSAgICAgICAgSXNWaXNpYmxlID0gMSA8PCAyLAot
ICAgICAgICBJc0luV2luZG93ID0gMSA8PCAzLAotICAgICAgICBJc1Zpc3VhbGx5SWRsZSA9IDEg
PDwgNCwKLSAgICAgICAgSXNMYXllcldpbmRvd1NlcnZlckhvc3RlZCA9IDEgPDwgNSwKLSAgICB9
OwotCi0gICAgdHlwZWRlZiB1bnNpZ25lZCBGbGFnczsKLQotICAgIHN0YXRpYyBjb25zdCBGbGFn
cyBOb0ZsYWdzID0gMDsKLSAgICBzdGF0aWMgY29uc3QgRmxhZ3MgQWxsRmxhZ3MgPSBXaW5kb3dJ
c0FjdGl2ZSB8IElzRm9jdXNlZCB8IElzVmlzaWJsZSB8IElzSW5XaW5kb3cgfCBJc0xheWVyV2lu
ZG93U2VydmVySG9zdGVkIHwgSXNWaXN1YWxseUlkbGU7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKLQotI2VuZGlmIC8vIFZpZXdTdGF0ZV9oCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuY3BwCShyZXZpc2lvbiAxNjEz
MTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAgdm9pZCBXZWJQYWdlQ3JlYXRpb25Q
YXJhbWV0ZXJzOjplbmNvZGUoSQogICAgIGVuY29kZXIgPDwgYXV0b1NpemluZ1Nob3VsZEV4cGFu
ZFRvVmlld0hlaWdodDsKICAgICBlbmNvZGVyLmVuY29kZUVudW0oc2Nyb2xsUGlubmluZ0JlaGF2
aW9yKTsKICAgICBlbmNvZGVyIDw8IGJhY2tncm91bmRFeHRlbmRzQmV5b25kUGFnZTsKKyAgICBl
bmNvZGVyLmVuY29kZUVudW0obGF5ZXJIb3N0aW5nTW9kZSk7CiAKICNpZiBQTEFURk9STShNQUMp
CiAgICAgZW5jb2RlciA8PCBjb2xvclNwYWNlOwpAQCAtMTIyLDYgKzEyMyw4IEBAIGJvb2wgV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKEkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5iYWNrZ3JvdW5kRXh0ZW5kc0JleW9u
ZFBhZ2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUVu
dW0ocGFyYW1ldGVycy5sYXllckhvc3RpbmdNb2RlKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHBhcmFtZXRl
cnMuY29sb3JTcGFjZSkpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQ
YWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJL
aXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDggKzI3LDggQEAKICNkZWZpbmUgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyc19oCiAKICNp
bmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIKKyNpbmNsdWRlICJMYXllclRyZWVDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgiCi0jaW5jbHVkZSAiVmlld1N0YXRlLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZUdyb3VwRGF0
YS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUuaCIKQEAgLTM2LDYgKzM2LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2luYXRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9WaWV3U3RhdGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBM
QVRGT1JNKE1BQykKQEAgLTU1LDcgKzU2LDcgQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFt
ZXRlcnMgewogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3U2l6ZTsKIAotICAgIFZpZXdTdGF0
ZTo6RmxhZ3Mgdmlld1N0YXRlOworICAgIFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0
YXRlOwogICAgIAogICAgIFdlYlByZWZlcmVuY2VzU3RvcmUgc3RvcmU7CiAgICAgRHJhd2luZ0Fy
ZWFUeXBlIGRyYXdpbmdBcmVhVHlwZTsKQEAgLTk4LDYgKzk5LDggQEAgc3RydWN0IFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMgewogCiAgICAgYm9vbCBiYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBh
Z2U7CiAKKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01vZGU7CisKICNpZiBQTEFU
Rk9STShNQUMpCiAgICAgQ29sb3JTcGFjZURhdGEgY29sb3JTcGFjZTsKICNlbmRpZgpJbmRleDog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCShyZXZpc2lvbiAxNjEzMTYpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC0x
MTEsMTAgKzExMSw4IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm4gd2hldGhlciB0aGUgdmlldyBp
cyB2aXN1YWxseSBpZGxlLgogICAgIHZpcnR1YWwgYm9vbCBpc1Zpc3VhbGx5SWRsZSgpIHsgcmV0
dXJuICFpc1ZpZXdWaXNpYmxlKCk7IH0KIAotI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5E
T1dfU0VSVkVSKQotICAgIC8vIFJldHVybiB3aGV0aGVyIHRoZSBsYXllciBpcyB3aW5kb3cgc2Vy
dmVyIGhvc3RlZC4KLSAgICB2aXJ0dWFsIGJvb2wgaXNMYXllcldpbmRvd1NlcnZlckhvc3RlZCgp
ID0gMDsKLSNlbmRpZgorICAgIC8vIFJldHVybiB0aGUgbGF5ZXIgaG9zdGluZyBtb2RlIGZvciB0
aGUgdmlldy4KKyAgICB2aXJ0dWFsIExheWVySG9zdGluZ01vZGUgdmlld0xheWVySG9zdGluZ01v
ZGUoKSB7IHJldHVybiBMYXllckhvc3RpbmdNb2RlRGVmYXVsdDsgfQogCiAgICAgdmlydHVhbCB2
b2lkIHByb2Nlc3NEaWRDcmFzaCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVsYXVuY2hQ
cm9jZXNzKCkgPSAwOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAJKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUsNiArMjQ1LDcgQEAgV2ViUGFnZVBy
b3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcAogICAgICwgbV9wYWdlU2NhbGVGYWN0b3Io
MSkKICAgICAsIG1faW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoMSkKICAgICAsIG1fY3VzdG9t
RGV2aWNlU2NhbGVGYWN0b3IoMCkKKyAgICAsIG1fbGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3Rp
bmdNb2RlRGVmYXVsdCkKICAgICAsIG1fZHJhd3NCYWNrZ3JvdW5kKHRydWUpCiAgICAgLCBtX2Ry
YXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGZhbHNlKQogICAgICwgbV9hcmVNZW1vcnlDYWNoZUNs
aWVudENhbGxzRW5hYmxlZCh0cnVlKQpAQCAtMzExLDYgKzMxMiwxMCBAQCBXZWJQYWdlUHJveHk6
OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwCiB7CiAgICAgdXBkYXRlVmlld1N0YXRlKCk7CiAK
KyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKKyAgICBtX2xheWVySG9z
dGluZ01vZGUgPSBtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNJbldpbmRvdyA/IG1fcGFnZUNs
aWVudC52aWV3TGF5ZXJIb3N0aW5nTW9kZSgpIDogTGF5ZXJIb3N0aW5nTW9kZUluV2luZG93U2Vy
dmVyOworI2VuZGlmCisKICAgICBwbGF0Zm9ybUluaXRpYWxpemUoKTsKIAogI2lmbmRlZiBOREVC
VUcKQEAgLTkzNiwxMCArOTQxLDYgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVZpZXdTdGF0
ZShWaWV3UwogICAgICAgICBtX3ZpZXdTdGF0ZSB8PSBWaWV3U3RhdGU6OklzSW5XaW5kb3c7CiAg
ICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBWaWV3U3RhdGU6OklzVmlzdWFsbHlJZGxlICYmIG1fcGFn
ZUNsaWVudC5pc1Zpc3VhbGx5SWRsZSgpKQogICAgICAgICBtX3ZpZXdTdGF0ZSB8PSBWaWV3U3Rh
dGU6OklzVmlzdWFsbHlJZGxlOwotI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VS
VkVSKQotICAgIGlmIChmbGFnc1RvVXBkYXRlICYgVmlld1N0YXRlOjpJc0xheWVyV2luZG93U2Vy
dmVySG9zdGVkICYmIG1fcGFnZUNsaWVudC5pc0xheWVyV2luZG93U2VydmVySG9zdGVkKCkpCi0g
ICAgICAgIG1fdmlld1N0YXRlIHw9IFZpZXdTdGF0ZTo6SXNMYXllcldpbmRvd1NlcnZlckhvc3Rl
ZDsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6dmlld1N0YXRlRGlkQ2hhbmdlKFZp
ZXdTdGF0ZTo6RmxhZ3MgbWF5SGF2ZUNoYW5nZWQsIFdhbnRzUmVwbHlPck5vdCB3YW50c1JlcGx5
KQpAQCAtOTQ3LDkgKzk0OCw2IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3U3RhdGVEaWRDaGFu
Z2UoVmkKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gSWYg
dGhlIGluLXdpbmRvdyBzdGF0ZSBtYXkgaGF2ZSBjaGFuZ2VkLCB0aGVuIHNvIG1heSB0aGUgbGF5
ZXIgaG9zdGluZy4KLSAgICBpZiAobWF5SGF2ZUNoYW5nZWQgJiBWaWV3U3RhdGU6OklzSW5XaW5k
b3cpCi0gICAgICAgIG1heUhhdmVDaGFuZ2VkIHw9IFZpZXdTdGF0ZTo6SXNMYXllcldpbmRvd1Nl
cnZlckhvc3RlZDsKICAgICAvLyBJZiB0aGUgdmlzaWJpbGl0eSBzdGF0ZSBtYXkgaGF2ZSBjaGFu
Z2VkLCB0aGVuIHNvIG1heSB0aGUgdmlzdWFsbHkgaWRsZS4KICAgICBpZiAobWF5SGF2ZUNoYW5n
ZWQgJiBWaWV3U3RhdGU6OklzVmlzaWJsZSkKICAgICAgICAgbWF5SGF2ZUNoYW5nZWQgfD0gVmll
d1N0YXRlOjpJc1Zpc3VhbGx5SWRsZTsKQEAgLTk2NiwxNyArOTY0LDIyIEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojp2aWV3U3RhdGVEaWRDaGFuZ2UoVmkKICAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0
ZTo6SXNWaXN1YWxseUlkbGUpCiAgICAgICAgIG1fcHJvY2Vzcy0+cGFnZVN1cHByZXNzaWJpbGl0
eUNoYW5nZWQodGhpcyk7CiAKLSAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNWaXNpYmxl
KSB7Ci0gICAgICAgIGlmICghaXNWaWV3VmlzaWJsZSgpKSB7Ci0gICAgICAgICAgICAvLyBJZiB3
ZSd2ZSBzdGFydGVkIHRoZSByZXNwb25zaXZlbmVzcyB0aW1lciBhcyBwYXJ0IG9mIHRlbGxpbmcg
dGhlIHdlYiBwcm9jZXNzIHRvIHVwZGF0ZSB0aGUgYmFja2luZyBzdG9yZQotICAgICAgICAgICAg
Ly8gc3RhdGUsIGl0IG1pZ2h0IG5vdCBzZW5kIGJhY2sgYSByZXBseSAoc2luY2UgaXQgd29uJ3Qg
cGFpbnQgYW55dGhpbmcgaWYgdGhlIHdlYiBwYWdlIGlzIGhpZGRlbikgc28gd2UKLSAgICAgICAg
ICAgIC8vIHN0b3AgdGhlIHVucmVzcG9uc2l2ZW5lc3MgdGltZXIgaGVyZS4KLSAgICAgICAgICAg
IG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5zdG9wKCk7CisgICAgLy8gSWYgd2Un
dmUgc3RhcnRlZCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIgYXMgcGFydCBvZiB0ZWxsaW5nIHRo
ZSB3ZWIgcHJvY2VzcyB0byB1cGRhdGUgdGhlIGJhY2tpbmcgc3RvcmUKKyAgICAvLyBzdGF0ZSwg
aXQgbWlnaHQgbm90IHNlbmQgYmFjayBhIHJlcGx5IChzaW5jZSBpdCB3b24ndCBwYWludCBhbnl0
aGluZyBpZiB0aGUgd2ViIHBhZ2UgaXMgaGlkZGVuKSBzbyB3ZQorICAgIC8vIHN0b3AgdGhlIHVu
cmVzcG9uc2l2ZW5lc3MgdGltZXIgaGVyZS4KKyAgICBpZiAoKGNoYW5nZWQgJiBWaWV3U3RhdGU6
OklzVmlzaWJsZSkgJiYgIWlzVmlld1Zpc2libGUoKSkKKyAgICAgICAgbV9wcm9jZXNzLT5yZXNw
b25zaXZlbmVzc1RpbWVyKCktPnN0b3AoKTsKKworICAgIGlmICgobWF5SGF2ZUNoYW5nZWQgJiBW
aWV3U3RhdGU6OklzSW5XaW5kb3cpICYmIChtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNJbldp
bmRvdykpIHsKKyAgICAgICAgTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlID0gbV9w
YWdlQ2xpZW50LnZpZXdMYXllckhvc3RpbmdNb2RlKCk7CisgICAgICAgIGlmIChtX2xheWVySG9z
dGluZ01vZGUgIT0gbGF5ZXJIb3N0aW5nTW9kZSkgeworICAgICAgICAgICAgbV9sYXllckhvc3Rp
bmdNb2RlID0gbGF5ZXJIb3N0aW5nTW9kZTsKKyAgICAgICAgICAgIG1fcHJvY2Vzcy0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZTo6U2V0TGF5ZXJIb3N0aW5nTW9kZShsYXllckhvc3RpbmdNb2RlKSwg
bV9wYWdlSUQpOwogICAgICAgICB9CiAgICAgfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1JfUE9QT1ZFUikKLSAgICBpZiAobWF5SGF2ZUNoYW5nZWQgJiBWaWV3U3RhdGU6OklzSW5XaW5k
b3cgJiYgIShtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNJbldpbmRvdykpIHsKKyAgICBpZiAo
KG1heUhhdmVDaGFuZ2VkICYgVmlld1N0YXRlOjpJc0luV2luZG93KSAmJiAhKG1fdmlld1N0YXRl
ICYgVmlld1N0YXRlOjpJc0luV2luZG93KSkgewogICAgICAgICAvLyBXaGVuIGxlYXZpbmcgdGhl
IGN1cnJlbnQgcGFnZSwgY2xvc2UgdGhlIHBvcG92ZXIgY29sb3Igd2VsbC4KICAgICAgICAgaWYg
KG1fY29sb3JQaWNrZXIpCiAgICAgICAgICAgICBlbmRDb2xvclBpY2tlcigpOwpAQCAtMzg4OCw2
ICszODkxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmluaXRpYWxpemVDcmVhdGlvblBhcgogICAg
IG1fY3JlYXRpb25QYXJhbWV0ZXJzLmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQg
PSBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQ7CiAgICAgbV9jcmVhdGlvblBh
cmFtZXRlcnMuc2Nyb2xsUGlubmluZ0JlaGF2aW9yID0gbV9zY3JvbGxQaW5uaW5nQmVoYXZpb3I7
CiAgICAgbV9jcmVhdGlvblBhcmFtZXRlcnMuYmFja2dyb3VuZEV4dGVuZHNCZXlvbmRQYWdlID0g
bV9iYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U7CisgICAgbV9jcmVhdGlvblBhcmFtZXRlcnMu
bGF5ZXJIb3N0aW5nTW9kZSA9IG1fbGF5ZXJIb3N0aW5nTW9kZTsKIAogI2lmIFBMQVRGT1JNKE1B
QykgJiYgIVBMQVRGT1JNKElPUykKICAgICBtX2NyZWF0aW9uUGFyYW1ldGVycy5jb2xvclNwYWNl
ID0gbV9wYWdlQ2xpZW50LmNvbG9yU3BhY2UoKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMzMsMTMgKzMzLDEzIEBA
CiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2luY2x1ZGUgIkVkaXRvclN0YXRlLmgi
CiAjaW5jbHVkZSAiR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIgor
I2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbmNsdWRlICJNZXNzYWdlU2VuZGVyLmgi
CiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCIK
ICNpbmNsdWRlICJQYWdlTG9hZFN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Qcm9jZXNzSWRl
bnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNpb24uaCIKICNpbmNsdWRlICJTaGFy
ZWFibGVCaXRtYXAuaCIKLSNpbmNsdWRlICJWaWV3U3RhdGUuaCIKICNpbmNsdWRlICJXS0Jhc2Uu
aCIKICNpbmNsdWRlICJXS1BhZ2VQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQ29sb3JQaWNrZXIu
aCIKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRH
cmFudWxhcml0eS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlld1N0YXRlLmg+CiAjaW5jbHVkZSA8
d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi9P
d25QdHIuaD4KQEAgLTQxOCwxMiArNDE5LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHNjcm9sbFZp
ZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYgc2Nyb2xsT2Zmc2V0KTsKIAogICAgIGVudW0gY2xhc3MgV2FudHNSZXBseU9yTm90IHsg
RG9lc05vdFdhbnRSZXBseSwgRG9lc1dhbnRSZXBseSB9OwotICAgIHZvaWQgdmlld1N0YXRlRGlk
Q2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgbWF5SGF2ZUNoYW5nZWQsIFdhbnRzUmVwbHlPck5vdCA9
IFdhbnRzUmVwbHlPck5vdDo6RG9lc05vdFdhbnRSZXBseSk7Ci0gICAgYm9vbCBpc0luV2luZG93
KCkgY29uc3QgeyByZXR1cm4gbV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzSW5XaW5kb3c7IH0K
KyAgICB2b2lkIHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1h
eUhhdmVDaGFuZ2VkLCBXYW50c1JlcGx5T3JOb3QgPSBXYW50c1JlcGx5T3JOb3Q6OkRvZXNOb3RX
YW50UmVwbHkpOworICAgIGJvb2wgaXNJbldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1N0
YXRlICYgV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93OyB9CiAgICAgdm9pZCB3YWl0Rm9y
RGlkVXBkYXRlVmlld1N0YXRlKCk7CiAKICAgICBXZWJDb3JlOjpJbnRTaXplIHZpZXdTaXplKCkg
Y29uc3Q7Ci0gICAgYm9vbCBpc1ZpZXdWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV92aWV3U3Rh
dGUgJiBWaWV3U3RhdGU6OklzVmlzaWJsZTsgfQorICAgIGJvb2wgaXNWaWV3VmlzaWJsZSgpIGNv
bnN0IHsgcmV0dXJuIG1fdmlld1N0YXRlICYgV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGU7
IH0KICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNQcm9j
ZXNzU3VwcHJlc3NpYmxlKCkgY29uc3Q7CiAKQEAgLTg1Nyw3ICs4NTgsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAgICAgdm9pZCBpbml0aWFsaXplQ3JlYXRp
b25QYXJhbWV0ZXJzKCk7CiAKLSAgICB2b2lkIHVwZGF0ZVZpZXdTdGF0ZShWaWV3U3RhdGU6OkZs
YWdzIGZsYWdzVG9VcGRhdGUgPSBWaWV3U3RhdGU6OkFsbEZsYWdzKTsKKyAgICB2b2lkIHVwZGF0
ZVZpZXdTdGF0ZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIGZsYWdzVG9VcGRhdGUgPSBXZWJD
b3JlOjpWaWV3U3RhdGU6OkFsbEZsYWdzKTsKIAogICAgIHZvaWQgcmVzZXRTdGF0ZSgpOwogICAg
IHZvaWQgcmVzZXRTdGF0ZUFmdGVyUHJvY2Vzc0V4aXRlZCgpOwpAQCAtMTIxOCw3ICsxMjE5LDcg
QEAgcHJpdmF0ZToKICAgICBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
IG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAgICAgTm90aWZpY2F0aW9u
UGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9ub3RpZmljYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXI7CiAKLSAgICBWaWV3U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlOworICAgIFdl
YkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3MgbV92aWV3U3RhdGU7CiAKICAgICBib29sIG1fY2FuR29C
YWNrOwogICAgIGJvb2wgbV9jYW5Hb0ZvcndhcmQ7CkBAIC0xMjQwLDYgKzEyNDEsOCBAQCBwcml2
YXRlOgogICAgIGZsb2F0IG1faW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3I7CiAgICAgZmxvYXQg
bV9jdXN0b21EZXZpY2VTY2FsZUZhY3RvcjsKIAorICAgIExheWVySG9zdGluZ01vZGUgbV9sYXll
ckhvc3RpbmdNb2RlOworCiAgICAgYm9vbCBtX2RyYXdzQmFja2dyb3VuZDsKICAgICBib29sIG1f
ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQ7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAkocmV2aXNpb24gMTYxMzE2KQor
KysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwuaAkod29y
a2luZyBjb3B5KQpAQCAtNjYsOSArNjYsNyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c1ZpZXdWaXNpYmxlKCk7CiAgICAgdmlydHVhbCBib29sIGlzVmlld0luV2luZG93KCk7CiAgICAg
dmlydHVhbCBib29sIGlzVmlzdWFsbHlJZGxlKCk7Ci0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lO
X1dJTkRPV19TRVJWRVIpCi0gICAgdmlydHVhbCBib29sIGlzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0
ZWQoKTsKLSNlbmRpZgorICAgIHZpcnR1YWwgTGF5ZXJIb3N0aW5nTW9kZSB2aWV3TGF5ZXJIb3N0
aW5nTW9kZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgQ29sb3JTcGFjZURhdGEgY29sb3JTcGFj
ZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Um9vdExheWVyKENBTGF5ZXIgKikgT1ZFUlJJREU7CiAKQEAgLTE2NSw5ICsxNjMsNiBAQCBwcml2
YXRlOgogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQogICAgIE93blB0cjxXZWJDb3Jl
OjpBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI+IG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9s
bGVyOwogI2VuZGlmCi0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0g
ICAgYm9vbCBtX2lzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQ7Ci0jZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
UGFnZUNsaWVudEltcGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0JKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw3ICszMSw2IEBACiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW1wb3J0ICJE
aWN0aW9uYXJ5UG9wdXBJbmZvLmgiCiAjaW1wb3J0ICJGaW5kSW5kaWNhdG9yLmgiCi0jaW1wb3J0
ICJMYXllclRyZWVDb250ZXh0LmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmgi
CiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgpAQCAt
MTI5LDkgKzEyOCw2IEBAIFBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1wbChXS1ZpZXcqIHcK
ICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKICAgICAsIG1fYWx0ZXJuYXRpdmVUZXh0
VUlDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIpKQog
I2VuZGlmCi0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAgLCBt
X2lzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQodHJ1ZSkKLSNlbmRpZgogewogfQogCkBAIC0yMjAs
MTYgKzIxNiwxNCBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjppc1Zpc3VhbGx5SWRsZSgpCiAgICAg
cmV0dXJuIFdpbmRvd1NlcnZlckNvbm5lY3Rpb246OnNoYXJlZCgpLmFwcGxpY2F0aW9uV2luZG93
TW9kaWZpY2F0aW9uc0hhdmVTdG9wcGVkKCkgfHwgIWlzVmlld1Zpc2libGUoKTsKIH0KIAotI2lm
IEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQotYm9vbCBQYWdlQ2xpZW50SW1w
bDo6aXNMYXllcldpbmRvd1NlcnZlckhvc3RlZCgpCitMYXllckhvc3RpbmdNb2RlIFBhZ2VDbGll
bnRJbXBsOjp2aWV3TGF5ZXJIb3N0aW5nTW9kZSgpCiB7Ci0gICAgLy8gT25seSB1cGRhdGUgbV9p
c0xheWVyV2luZG93U2VydmVySG9zdGVkIHdoZW4gdGhlIHZpZXcgaXMgaW4gYSB3aW5kb3cgLSBv
dGhlcndpc2UganVzdCByZXBvcnQgdGhlIGxhc3QgdmFsdWUuCi0gICAgaWYgKFttX3drVmlldyB3
aW5kb3ddKQotICAgICAgICBtX2lzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQgPSBbW21fd2tWaWV3
IHdpbmRvd10gX2hvc3RzTGF5ZXJzSW5XaW5kb3dTZXJ2ZXJdOwotCi0gICAgcmV0dXJuIG1faXNM
YXllcldpbmRvd1NlcnZlckhvc3RlZDsKLX0KKyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lO
RE9XX1NFUlZFUikKKyAgICBpZiAoW21fd2tWaWV3IHdpbmRvd10gJiYgW1ttX3drVmlldyB3aW5k
b3ddIF9ob3N0c0xheWVyc0luV2luZG93U2VydmVyXSkKKyAgICAgICAgcmV0dXJuIExheWVySG9z
dGluZ01vZGVJbldpbmRvd1NlcnZlcjsKICNlbmRpZgorICAgIHJldHVybiBMYXllckhvc3RpbmdN
b2RlRGVmYXVsdDsKK30KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6dmlld1dpbGxNb3ZlVG9Bbm90
aGVyV2luZG93KCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2MTMxNikKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNzgy
LDcgKzc4Miw2IEBACiAJCTdDRjQ3RkZFMTcyNzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VC
YW5uZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA3Q0Y0N0ZGQzE3Mjc2QUUzMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyTWFjLm1tICov
OyB9OwogCQk3Q0Y0N0ZGRjE3Mjc2QUUzMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyTWFj
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Y0N0ZG
RDE3Mjc2QUUzMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFubmVyTWFjLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJODQ0Nzc4NTMxNzZGQ0MwODAw
Q0RDN0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODQ0Nzc4NTExNzZGQ0FDMTAw
Q0RDN0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3VsdE1lZGlhVHlwZS5oICovOyB9Owot
CQk4NjVFMDQ4NTE4MUEwOTRBMDAxRjcyRjIgLyogVmlld1N0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjVFMDQ4NDE4MUEwOTBEMDAxRjcyRjIg
LyogVmlld1N0YXRlLmggKi87IH07CiAJCTg2ODE2MEQwMTg3NjQ1NTcwMDIxRTc5RCAvKiBXaW5k
b3dTZXJ2ZXJDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gODY4MTYwQ0YxODc2NDUzNzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5l
Y3Rpb24ubW0gKi87IH07CiAJCThDRkVDRTk0MTQ5MEYxNDAwMDJBQUEzMiAvKiBFZGl0b3JTdGF0
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4Q0ZF
Q0U5MzE0OTBGMTQwMDAyQUFBMzIgLyogRWRpdG9yU3RhdGUuY3BwICovOyB9OwogCQk4REMyRUY1
MzA0ODZBNjk0MDA5OEIyMTYgLyogSW5mb1BsaXN0LnN0cmluZ3MgaW4gUmVzb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4OUMxNjY2RkU4NDExNThDMDJBQUMwNyAv
KiBJbmZvUGxpc3Quc3RyaW5ncyAqLzsgfTsKQEAgLTI0MDIsNyArMjQwMSw2IEBACiAJCTdDRjQ3
RkZDMTcyNzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRjQ3RkZEMTcyNzZBRTMwMDhBQ0I5MSAv
KiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tCdW5kbGVQYWdlQmFubmVyTWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTg0NDc3ODUxMTc2RkNBQzEwMENEQzdCQiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRN
ZWRpYVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5k
bGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CTg2NUUwNDg0MTgxQTA5MEQwMDFGNzJGMiAvKiBWaWV3U3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Vmlld1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2ODE2MENEMTg3NjNE
NEIwMDIxRTc5RCAvKiBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdp
bmRvd1NlcnZlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY4
MTYwQ0YxODc2NDUzNzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk4Q0ZFQ0U5MzE0OTBGMTQwMDAyQUFBMzIgLyogRWRpdG9yU3RhdGUu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRWRpdG9yU3RhdGUuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzU4MSw3ICszNTc5LDYgQEAKIAkJCQkx
QUMxMzM2NTE4NTY1QjU3MDBGM0VDMDUgLyogVXNlckRhdGEuY3BwICovLAogCQkJCTFBQzEzMzY2
MTg1NjVCNTcwMEYzRUMwNSAvKiBVc2VyRGF0YS5oICovLAogCQkJCUJDQjBCMERGMTIzMDVBQjEw
MEIxMzQxRSAvKiBVc2VyTWVzc2FnZUNvZGVycy5oICovLAotCQkJCTg2NUUwNDg0MTgxQTA5MEQw
MDFGNzJGMiAvKiBWaWV3U3RhdGUuaCAqLywKIAkJCQkxQTBGMjlDOTEyMEIzNzE2MDA1M0QxQjkg
LyogVmlzaXRlZExpbmtUYWJsZS5jcHAgKi8sCiAJCQkJMUEwRjI5Q0ExMjBCMzcxNjAwNTNEMUI5
IC8qIFZpc2l0ZWRMaW5rVGFibGUuaCAqLywKIAkJCQlCQzMyOUQ5OTE2QUNDRTk5MDAzMTZERTIg
LyogV2ViQXJjaGl2ZS5jcHAgKi8sCkBAIC01NzcxLDcgKzU3NjgsNiBAQAogCQkJCTUxNUU3NzMw
MTg0MDE1ODAwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQjg3OEI2MTUxMzM0MjhEQzAwNjg4OEU5IC8qIENvcnJlY3Rpb25QYW5lbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMjk4OUE0MTQxNjdEMTg0QjAwNEY5NkQyIC8qIEN1c3RvbVByb3RvY29sTWFu
YWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODY1RTA0ODUxODFBMDk0QTAwMUY3MkYyIC8qIFZp
ZXdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcxQjMyREUxODRENjc0OTAwMTNFMkIyIC8q
IFdLTlNVUkxQcm90ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5ODRGNTg5MTY0
QkEwOTUwMDRCQzBDNiAvKiBDdXN0b21Qcm90b2NvbE1hbmFnZXJNZXNzYWdlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMjlBRDMwOTMxNjRCNEM1RDAwNzJERUE5IC8qIEN1c3RvbVByb3RvY29sTWFu
YWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAJKHJldmlzaW9uIDE2MTMxNikKKysrIFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzY0LDYgKzM2NCwyMSBAQCB2b2lkIFBsdWdpblZpZXc6OnJlY3JlYXRlQW5kSW5p
dGlhbGl6ZShQCiAgICAgaW5pdGlhbGl6ZVBsdWdpbigpOwogfQogCit2b2lkIFBsdWdpblZpZXc6
OnNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSBsYXllckhvc3RpbmdNb2RlKQor
eworI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQorICAgIGlmICghbV9w
bHVnaW4pCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2lzSW5pdGlhbGl6ZWQpCisgICAg
ICAgIG1fcGx1Z2luLT5zZXRMYXllckhvc3RpbmdNb2RlKGxheWVySG9zdGluZ01vZGUpOworICAg
IGVsc2UKKyAgICAgICAgbV9wYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUgPSBsYXllckhvc3Rp
bmdNb2RlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5ZXJIb3N0aW5nTW9kZSk7CisjZW5k
aWYKK30KKwogRnJhbWUqIFBsdWdpblZpZXc6OmZyYW1lKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9wbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCk7CkBAIC00OTEsMjQgKzUwNiwxMyBA
QCB2b2lkIFBsdWdpblZpZXc6OnZpZXdTdGF0ZURpZENoYW5nZShWaWV3CiAjaWYgUExBVEZPUk0o
TUFDKQogdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3Rh
dGU6OkZsYWdzIGNoYW5nZWQpCiB7Ci0gICAgaWYgKCFtX3BsdWdpbikKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgaWYgKCFtX2lzSW5pdGlhbGl6ZWQpIHsKLSNpZiBIQVZFKExBWUVSX0hPU1RJTkdf
SU5fV0lORE9XX1NFUlZFUikKLSAgICAgICAgbV9wYXJhbWV0ZXJzLmxheWVySG9zdGluZ01vZGUg
PSBtX3dlYlBhZ2UtPmxheWVySG9zdGluZ01vZGUoKTsKLSNlbmRpZgorICAgIGlmICghbV9wbHVn
aW4gfHwgIW1faXNJbml0aWFsaXplZCkKICAgICAgICAgcmV0dXJuOwotICAgIH0KIAogICAgIGlm
IChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc1Zpc2libGUpCiAgICAgICAgIG1fcGx1Z2luLT53aW5k
b3dWaXNpYmlsaXR5Q2hhbmdlZChtX3dlYlBhZ2UtPmlzVmlzaWJsZSgpKTsKICAgICBpZiAoY2hh
bmdlZCAmIFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpCiAgICAgICAgIG1fcGx1Z2luLT53aW5k
b3dGb2N1c0NoYW5nZWQobV93ZWJQYWdlLT53aW5kb3dJc0ZvY3VzZWQoKSk7Ci0jaWYgSEFWRShM
QVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAgaWYgKGNoYW5nZWQgJiBWaWV3U3Rh
dGU6OklzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQpCi0gICAgICAgIG1fcGx1Z2luLT5zZXRMYXll
ckhvc3RpbmdNb2RlKG1fd2ViUGFnZS0+bGF5ZXJIb3N0aW5nTW9kZSgpKTsKLSNlbmRpZgogfQog
CiB2b2lkIFBsdWdpblZpZXc6OnNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0IHNjYWxlRmFjdG9y
KQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmll
dy5oCShyZXZpc2lvbiAxNjEzMTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNiwxMCArMjYsMTAgQEAKICNpZm5k
ZWYgUGx1Z2luVmlld19oCiAjZGVmaW5lIFBsdWdpblZpZXdfaAogCisjaW5jbHVkZSAiTGF5ZXJU
cmVlQ29udGV4dC5oIgogI2luY2x1ZGUgIk5QUnVudGltZU9iamVjdE1hcC5oIgogI2luY2x1ZGUg
IlBsdWdpbi5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xsZXIuaCIKLSNpbmNsdWRlICJWaWV3
U3RhdGUuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRmluZE9w
dGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+CkBAIC0zOCw2ICszOCw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvVmlld1N0YXRlLmg+CiAjaW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAjaW5jbHVkZSA8d3Rm
L1J1bkxvb3AuaD4KIApAQCAtNjksMTAgKzcwLDExIEBAIHB1YmxpYzoKICAgICB2b2lkIG1hbnVh
bExvYWREaWRGaW5pc2hMb2FkaW5nKCk7CiAgICAgdm9pZCBtYW51YWxMb2FkRGlkRmFpbChjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiAKLSAgICB2b2lkIHZpZXdTdGF0ZURpZENoYW5n
ZShWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQpOworICAgIHZvaWQgdmlld1N0YXRlRGlkQ2hhbmdl
KFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCk7CisgICAgdm9pZCBzZXRMYXllckhv
c3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZv
aWQgcGxhdGZvcm1WaWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpGbGFncyBjaGFuZ2VkKTsK
KyAgICB2b2lkIHBsYXRmb3JtVmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6
RmxhZ3MgY2hhbmdlZCk7CiAgICAgdm9pZCBzZXREZXZpY2VTY2FsZUZhY3RvcihmbG9hdCk7CiAg
ICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChjb25zdCBXZWJDb3JlOjpGbG9hdFJl
Y3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywgY29uc3QgV2ViQ29yZTo6RmxvYXRS
ZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsKICAgICBib29sIHNlbmRDb21wbGV4
VGV4dElucHV0KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIHRleHRJbnB1dCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvRHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAkocmV2aXNpb24gMTYxMzE2KQorKysgU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVhLmgJKHdvcmtpbmcgY29weSkKQEAg
LTI4LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW5mby5oIgogI2luY2x1ZGUg
IkxheWVyVHJlZUNvbnRleHQuaCIKLSNpbmNsdWRlICJWaWV3U3RhdGUuaCIKICNpbmNsdWRlIDxX
ZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ludFJlY3QuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1ZpZXdTdGF0ZS5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5j
bHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKQEAgLTEwNiw3ICsxMDYsOCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nVXBkYXRlZFNjcm9sbFBvc2l0
aW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+Jik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdmlld1N0
YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkgeyB9CisgICAgdmlydHVhbCB2
b2lkIHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQp
IHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01v
ZGUpIHsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgRHJhd2luZ0FyZWEoRHJhd2luZ0FyZWFUeXBlLCBX
ZWJQYWdlKik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwCShyZXZpc2lvbiAxNjEzMTYpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI0MSw2ICsyNDEsNyBAQCBX
ZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgCiAgICAgLCBtX251bWJlck9m
UHJpbWFyeVNuYXBzaG90RGV0ZWN0aW9uQXR0ZW1wdHMoMCkKICAgICAsIG1fZGV0ZXJtaW5lUHJp
bWFyeVNuYXBzaG90dGVkUGx1Z0luVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUGFn
ZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luVGltZXJGaXJlZCkKICNlbmRpZgor
ICAgICwgbV9sYXllckhvc3RpbmdNb2RlKHBhcmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSkKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgLCBtX3BkZlBsdWdpbkVuYWJsZWQoZmFsc2UpCiAgICAgLCBt
X2hhc0NhY2hlZFdpbmRvd0ZyYW1lKGZhbHNlKQpAQCAtMjA4OCw2ICsyMDg5LDE2IEBAIHZvaWQg
V2ViUGFnZTo6c2V0Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmwKICAgICAgICAgbV9zZW5kRGlkVXBk
YXRlVmlld1N0YXRlVGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCit2b2lkIFdlYlBhZ2U6OnNl
dExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0aW5nTW9kZSkKK3sKKyAgICBtX2xh
eWVySG9zdGluZ01vZGUgPSBzdGF0aWNfY2FzdDxMYXllckhvc3RpbmdNb2RlPihsYXllckhvc3Rp
bmdNb2RlKTsKKworICAgIG1fZHJhd2luZ0FyZWEtPnNldExheWVySG9zdGluZ01vZGUobV9sYXll
ckhvc3RpbmdNb2RlKTsKKworICAgIGZvciAoYXV0byogcGx1Z2luVmlldyA6IG1fcGx1Z2luVmll
d3MpCisgICAgICAgIHBsdWdpblZpZXctPnNldExheWVySG9zdGluZ01vZGUobV9sYXllckhvc3Rp
bmdNb2RlKTsKK30KKwogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlUG9saWN5RGVjaXNpb24odWlu
dDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwgdWludDMyX3QgcG9saWN5QWN0aW9u
LCB1aW50NjRfdCBkb3dubG9hZElEKQogewogICAgIFdlYkZyYW1lKiBmcmFtZSA9IFdlYlByb2Nl
c3M6OnNoYXJlZCgpLndlYkZyYW1lKGZyYW1lSUQpOwpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAxNjEzMTYpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00
NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiU2FuZGJveEV4dGVu
c2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgotI2luY2x1ZGUgIlZpZXdTdGF0
ZS5oIgogI2luY2x1ZGUgIldlYlVuZG9TdGVwLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9EaWN0YXRp
b25BbHRlcm5hdGl2ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KQEAgLTU3LDYg
KzU2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9TY3JvbGxUeXBlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4dENoZWNraW5nLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9WaWV3U3RhdGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkNv
cmVLZXlib2FyZFVJTW9kZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8
d3RmL093blB0ci5oPgpAQCAtMzQ2LDE4ICszNDYsMTIgQEAgcHVibGljOgogICAgIHZvaWQgYWRk
UGx1Z2luVmlldyhQbHVnaW5WaWV3Kik7CiAgICAgdm9pZCByZW1vdmVQbHVnaW5WaWV3KFBsdWdp
blZpZXcqKTsKIAotICAgIGJvb2wgaXNWaXNpYmxlKCkgY29uc3QgeyByZXR1cm4gbV92aWV3U3Rh
dGUgJiBWaWV3U3RhdGU6OklzVmlzaWJsZTsgfQorICAgIGJvb2wgaXNWaXNpYmxlKCkgY29uc3Qg
eyByZXR1cm4gbV92aWV3U3RhdGUgJiBXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZTsgfQog
Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIExheWVySG9zdGluZ01vZGUgbGF5ZXJIb3N0aW5nTW9k
ZSgpIGNvbnN0Ci0gICAgewotI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVS
KQotICAgICAgICByZXR1cm4gbV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzTGF5ZXJXaW5kb3dT
ZXJ2ZXJIb3N0ZWQgPyBMYXllckhvc3RpbmdNb2RlSW5XaW5kb3dTZXJ2ZXIgOiBMYXllckhvc3Rp
bmdNb2RlRGVmYXVsdDsKLSNlbHNlCi0gICAgICAgIHJldHVybiBMYXllckhvc3RpbmdNb2RlRGVm
YXVsdDsKLSNlbmRpZgotICAgIH0KKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9zdGluZ01v
ZGUoKSBjb25zdCB7IHJldHVybiBtX2xheWVySG9zdGluZ01vZGU7IH0KKyAgICB2b2lkIHNldExh
eWVySG9zdGluZ01vZGUodW5zaWduZWQpOwogCisjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQg
dXBkYXRlUGx1Z2luc0FjdGl2ZUFuZEZvY3VzZWRTdGF0ZSgpOwogICAgIGNvbnN0IFdlYkNvcmU6
OkZsb2F0UmVjdCYgd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzKCkgY29uc3QgeyByZXR1
cm4gbV93aW5kb3dGcmFtZUluU2NyZWVuQ29vcmRpbmF0ZXM7IH0KICAgICBjb25zdCBXZWJDb3Jl
OjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5VbmZsaXBwZWRTY3JlZW5Db29yZGluYXRlcygpIGNv
bnN0IHsgcmV0dXJuIG1fd2luZG93RnJhbWVJblVuZmxpcHBlZFNjcmVlbkNvb3JkaW5hdGVzOyB9
CkBAIC03MzEsNyArNzI1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNldEluaXRpYWxGb2N1cyhi
b29sIGZvcndhcmQsIGJvb2wgaXNLZXlib2FyZEV2ZW50VmFsaWQsIGNvbnN0IFdlYktleWJvYXJk
RXZlbnQmKTsKICAgICB2b2lkIHNldFdpbmRvd1Jlc2l6ZXJTaXplKGNvbnN0IFdlYkNvcmU6Oklu
dFNpemUmKTsKICAgICB2b2lkIHNldElzSW5XaW5kb3coYm9vbCk7Ci0gICAgdm9pZCBzZXRWaWV3
U3RhdGUoVmlld1N0YXRlOjpGbGFncywgYm9vbCB3YW50c0RpZFVwZGF0ZVZpZXdTdGF0ZSk7Cisg
ICAgdm9pZCBzZXRWaWV3U3RhdGUoV2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncywgYm9vbCB3YW50
c0RpZFVwZGF0ZVZpZXdTdGF0ZSk7CiAgICAgdm9pZCB2YWxpZGF0ZUNvbW1hbmQoY29uc3QgU3Ry
aW5nJiwgdWludDY0X3QpOwogICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmlu
ZyYpOwogCkBAIC05MTIsNiArOTA2LDkgQEAgcHJpdmF0ZToKICAgICBSdW5Mb29wOjpUaW1lcjxX
ZWJQYWdlPiBtX2RldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBsdWdJblRpbWVyOwogI2VuZGlm
CiAKKyAgICAvLyBUaGUgbGF5ZXIgaG9zdGluZyBtb2RlLgorICAgIExheWVySG9zdGluZ01vZGUg
bV9sYXllckhvc3RpbmdNb2RlOworCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgbV9wZGZQ
bHVnaW5FbmFibGVkOwogCkBAIC0xMDQ0LDcgKzEwNDEsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBtX3VzZUFzeW5jU2Nyb2xsaW5nOwogCi0gICAgVmlld1N0YXRlOjpGbGFncyBtX3ZpZXdTdGF0
ZTsKKyAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmlld1N0YXRlOwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5tZXNzYWdlcy5pbgkocmV2aXNpb24gMTYxMzE2KQorKysg
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHdv
cmtpbmcgY29weSkKQEAgLTIzLDYgKzIzLDcgQEAKIG1lc3NhZ2VzIC0+IFdlYlBhZ2UgTGVnYWN5
UmVjZWl2ZXIgewogICAgIFNldEluaXRpYWxGb2N1cyhib29sIGZvcndhcmQsIGJvb2wgaXNLZXli
b2FyZEV2ZW50VmFsaWQsIFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudCBldmVudCkKICAgICBTZXRW
aWV3U3RhdGUodW5zaWduZWQgdmlld1N0YXRlLCBib29sIHdhbnRzRGlkVXBkYXRlVmlld1N0YXRl
KQorICAgIFNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0aW5nTW9kZSkKIAog
ICAgIFNldERyYXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkKICAgICBTZXREcmF3
c1RyYW5zcGFyZW50QmFja2dyb3VuZChib29sIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKQpJ
bmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAkocmV2aXNpb24g
MTYxMzE2KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw3ICs1NSw3IEBA
IHB1YmxpYzoKICAgICBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYShXZWJQYWdlKiwgY29u
c3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycyYpOwogICAgIHZpcnR1YWwgflRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgdmlld1N0YXRlRGlkQ2hh
bmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lk
IHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQpIE9W
RVJSSURFOwogCiBwcml2YXRlOgogICAgIC8vIERyYXdpbmdBcmVhCkBAIC0xMDIsNyArMTAyLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQp
IE9WRVJSSURFOwogICAgIHZvaWQgc3VzcGVuZFBhaW50aW5nKCk7CiAgICAgdm9pZCByZXN1bWVQ
YWludGluZygpOwotICAgIHZvaWQgc2V0TGF5ZXJIb3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2Rl
KTsKKyAgICB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9kZSkgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCB2b2lkIHNldENvbG9yU3BhY2UoY29uc3QgQ29sb3JTcGFjZURhdGEm
KSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBhZGp1c3RUcmFuc2llbnRab29tKGRvdWJs
ZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pIE9WRVJSSURFOwpJbmRleDogU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLm1tCShyZXZpc2lvbiAxNjEzMTYp
CisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOTcsMTEgKzM5Nyw2IEBAIHZv
aWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWE6OnZpZXcKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgc3VzcGVuZFBhaW50aW5nKCk7CiAgICAgfQotCi0jaWYgSEFWRShMQVlFUl9IT1NU
SU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAgaWYgKGNoYW5nZWQgJiBWaWV3U3RhdGU6OklzTGF5
ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQpCi0gICAgICAgIHNldExheWVySG9zdGluZ01vZGUobV93ZWJQ
YWdlLT5sYXllckhvc3RpbmdNb2RlKCkpOwotI2VuZGlmCiB9CiAKIHZvaWQgVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWE6OnN1c3BlbmRQYWludGluZygpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>220389</attachid>
            <date>2014-01-05 00:32:05 -0800</date>
            <delta_ts>2014-01-06 10:32:07 -0800</delta_ts>
            <desc>update</desc>
            <filename>126488.4.patch</filename>
            <type>text/plain</type>
            <size>38855</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE2MTMxOSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDE0LTAxLTA1ICBHYXZpbiBC
YXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KKworICAgICAgICBNb3ZlIFZpZXdT
dGF0ZSB0byBXZWJDb3JlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjY0ODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIGNoYW5nZSBhbHNvIHBhcnRpYWwgcmV2ZXJ0cyBoYW5kbGluZyBvZiBMYXll
ckhvc3RpbmdNb2RlLCBtYWtpbmcgdGhpcworICAgICAgICBhIHNlcGFyYXRlIG1lc3NhZ2UgYWdh
aW4uIFdpdGggaGluZHNpZ2h0IHRoZSBuZXcgd2F5IG9mIGRvaW5nIHRoaXMgd2Fzbid0CisgICAg
ICAgIGluIGFsbCB3YXlzIHNpbXBsZXIsIGFuZCBpdCB3b24ndCBtYWtlIHNlbnNlIHRvIG1vdmUg
dGhpcyB0byBXZWJDb3JlLgorCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAqIHBhZ2UvVmlld1N0YXRlLmg6IEFkZGVkLgorICAgICAgICAgICAg
LSBNb3ZlZCBmcm9tIFdlYktpdDIsIHdpbGwgYmUgdXNlZCBieSBQYWdlICYgRm9jdXNDb250cm9s
bGVyLgorCiAyMDE0LTAxLTA1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxl
LmNvbT4KIAogICAgICAgICBNb3ZlIHByb2Nlc3Mgc3VwcHJlc3Npb24gb2YgV2ViUHJvY2VzcyB0
byBQYWdlIChmcm9tIFVJUHJvY2VzcykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2MTMxOSkKKysrIFNvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5
KQpAQCAtMjg2MCw2ICsyODYwLDcgQEAKIAkJODYxQzJFQTYxM0ZCNEZGRjAwMDYyQUJCIC8qIFJl
c291cmNlTG9hZFRpbWluZy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NjFDMkVBNTEzRkI0RkZGMDAwNjJBQkIgLyogUmVzb3VyY2VMb2FkVGltaW5n
LmNwcCAqLzsgfTsKIAkJODY1MTJFREUxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVz
b3VyY2VUaW1pbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODY1MTJFREIxNTRBMkFFRTAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuY3BwICovOyB9OwogCQk4NjUxMkVERjE1NEEyQUVGMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VS
ZXNvdXJjZVRpbWluZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gODY1MTJFREMxNTRBMkFFRjAwQTkwNDI2IC8qIFBlcmZvcm1hbmNlUmVzb3VyY2VUaW1p
bmcuaCAqLzsgfTsKKwkJODY3OEQwQkIxODc4RTg5MTAwM0FCREU2IC8qIFZpZXdTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODY3OEQwQkExODc4
RTgxMDAwM0FCREU2IC8qIFZpZXdTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTg2ODE2MEQ0MTg3NjZBMEEwMDIxRTc5RCAvKiBVc2VyQWN0
aXZpdHkuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODY4MTYwRDExODc2NjlDNDAwMjFFNzlEIC8qIFVzZXJBY3Rpdml0eS5jcHAgKi87IH07CiAJCTg2
ODE2MEQ1MTg3NjZBMEUwMDIxRTc5RCAvKiBVc2VyQWN0aXZpdHlNYWMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjgxNjBEMzE4NzY2OUU3MDAyMUU3
OUQgLyogVXNlckFjdGl2aXR5TWFjLm1tICovOyB9OwogCQk4NjgxNjBENjE4NzY2QTEzMDAyMUU3
OUQgLyogVXNlckFjdGl2aXR5LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4NjgxNjBEMjE4NzY2OUM0MDAyMUU3OUQgLyogVXNlckFjdGl2aXR5LmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTk2NTEsNiAr
OTY1Miw3IEBACiAJCTg2NTEyRURCMTU0QTJBRUUwMEE5MDQyNiAvKiBQZXJmb3JtYW5jZVJlc291
cmNlVGltaW5nLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlcmZv
cm1hbmNlUmVzb3VyY2VUaW1pbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4
NjUxMkVEQzE1NEEyQUVGMDBBOTA0MjYgLyogUGVyZm9ybWFuY2VSZXNvdXJjZVRpbWluZy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5n
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg2NTEyRUREMTU0QTJBRUYwMEE5MDQy
NiAvKiBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBQZXJmb3JtYW5jZVJlc291cmNlVGltaW5nLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJODY3OEQwQkExODc4RTgxMDAwM0FCREU2IC8qIFZpZXdTdGF0ZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWaWV3U3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODY4MTYwRDEx
ODc2NjlDNDAwMjFFNzlEIC8qIFVzZXJBY3Rpdml0eS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBV
c2VyQWN0aXZpdHkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjgxNjBEMjE4
NzY2OUM0MDAyMUU3OUQgLyogVXNlckFjdGl2aXR5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFVzZXJBY3Rp
dml0eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NjgxNjBEMzE4NzY2OUU3MDAy
MUU3OUQgLyogVXNlckFjdGl2aXR5TWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVXNlckFj
dGl2aXR5TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTU5MzcsNiArMTU5
MzksNyBAQAogCQkJCUJDOEJGMTUwMTA1ODEzQkYwMEE0MEEwNyAvKiBVc2VyU3R5bGVTaGVldC5o
ICovLAogCQkJCUJDOEJGMTU5MTA1ODE0MTgwMEE0MEEwNyAvKiBVc2VyU3R5bGVTaGVldFR5cGVz
LmggKi8sCiAJCQkJRjUxM0EzRTkxNUZGNDg0MTAwMTUyNkRCIC8qIFZhbGlkYXRpb25NZXNzYWdl
Q2xpZW50LmggKi8sCisJCQkJODY3OEQwQkExODc4RTgxMDAwM0FCREU2IC8qIFZpZXdTdGF0ZS5o
ICovLAogCQkJCUJFOTgzRDk1MDUyQTJFMEEwMDg5MkQ4NSAvKiBXZWJDb3JlS2V5Ym9hcmRVSU1v
ZGUuaCAqLywKIAkJCQk0OTRCRDc5MzBGNTVDOEVFMDA3NDc4MjggLyogV2ViS2l0UG9pbnQuaCAq
LywKIAkJCQk0OTRCRDc5NDBGNTVDOEVFMDA3NDc4MjggLyogV2ViS2l0UG9pbnQuaWRsICovLApA
QCAtMjI4MzIsNiArMjI4MzUsNyBAQAogCQkJCTg1NDA3NTY5MEFENkNCRjkwMDYyMEM1NyAvKiBE
T01IVE1MQXBwbGV0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU1MjQ3Q0YwQUQ4NTBC
ODAwMTIwOTNCIC8qIERPTUhUTUxBcHBsZXRFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICov
LAogCQkJCTg1RUNCRUVCMEFBNzYyNjkwMDU0NEYwQiAvKiBET01IVE1MQXJlYUVsZW1lbnQuaCBp
biBIZWFkZXJzICovLAorCQkJCTg2NzhEMEJCMTg3OEU4OTEwMDNBQkRFNiAvKiBWaWV3U3RhdGUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTg1RTcxMTlDMEFDNUQ1MzUwMDUzMjcwRiAvKiBET01IVE1M
QXJlYUVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODU5QTlDNDcwQUE1RTNC
RDAwQjY5NEIyIC8qIERPTUhUTUxCYXNlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODVF
NzExOUQwQUM1RDUzNTAwNTMyNzBGIC8qIERPTUhUTUxCYXNlRWxlbWVudEludGVybmFsLmggaW4g
SGVhZGVycyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld1N0YXRlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9WaWV3U3RhdGUuaAkocmV2aXNpb24gMCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvVmlld1N0YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgVmlld1N0YXRlX2gKKyNkZWZpbmUgVmlld1N0
YXRlX2gKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgVmlld1N0YXRlIHsKKyAgICBl
bnVtIHsKKyAgICAgICAgV2luZG93SXNBY3RpdmUgPSAxIDw8IDAsCisgICAgICAgIElzRm9jdXNl
ZCA9IDEgPDwgMSwKKyAgICAgICAgSXNWaXNpYmxlID0gMSA8PCAyLAorICAgICAgICBJc0luV2lu
ZG93ID0gMSA8PCAzLAorICAgICAgICBJc1Zpc3VhbGx5SWRsZSA9IDEgPDwgNCwKKyAgICB9Owor
CisgICAgdHlwZWRlZiB1bnNpZ25lZCBGbGFnczsKKworICAgIHN0YXRpYyBjb25zdCBGbGFncyBO
b0ZsYWdzID0gMDsKKyAgICBzdGF0aWMgY29uc3QgRmxhZ3MgQWxsRmxhZ3MgPSBXaW5kb3dJc0Fj
dGl2ZSB8IElzRm9jdXNlZCB8IElzVmlzaWJsZSB8IElzSW5XaW5kb3cgfCBJc1Zpc3VhbGx5SWRs
ZTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIFZpZXdTdGF0ZV9o
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNjEzMTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2NyBAQAorMjAxNC0wMS0wNSAgR2F2aW4g
QmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CisKKyAgICAgICAgTW92ZSBWaWV3
U3RhdGUgdG8gV2ViQ29yZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTI2NDg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyBjaGFuZ2UgYWxzbyBwYXJ0aWFsIHJldmVydHMgaGFuZGxpbmcgb2YgTGF5
ZXJIb3N0aW5nTW9kZSwgbWFraW5nIHRoaXMKKyAgICAgICAgYSBzZXBhcmF0ZSBtZXNzYWdlIGFn
YWluLiBXaXRoIGhpbmRzaWdodCB0aGUgbmV3IHdheSBvZiBkb2luZyB0aGlzIHdhc24ndAorICAg
ICAgICBpbiBhbGwgd2F5cyBzaW1wbGVyLCBhbmQgaXQgd29uJ3QgbWFrZSBzZW5zZSB0byBtb3Zl
IHRoaXMgdG8gV2ViQ29yZS4KKworICAgICAgICAqIFNoYXJlZC9WaWV3U3RhdGUuaDogUmVtb3Zl
ZC4KKyAgICAgICAgICAgIC0gTW92ZWQgdG8gV2ViQ29yZS4KKyAgICAgICAgKiBTaGFyZWQvV2Vi
UGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVh
dGlvblBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VDcmVhdGlv
blBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBh
cmFtZXRlcnMuaDoKKyAgICAgICAgICAgIC0gQWRkZWQgbGF5ZXJIb3N0aW5nTW9kZS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6UGFnZUNsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6dmlld0xheWVySG9zdGluZ01vZGUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9QYWdlQ2xpZW50
Lmg6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnQ6OnZpZXdMYXllckhvc3RpbmdNb2RlKToK
KyAgICAgICAgICAgIC0gUmV2ZXJ0IGlzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQgLT4gdmlld0xh
eWVySG9zdGluZ01vZGUuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KToKKyAgICAgICAgICAg
IC0gQWRkZWQgYmFjayBtX2xheWVySG9zdGluZ01vZGUuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6dXBkYXRlVmlld1N0YXRlKToKKyAgICAgICAgICAgIC0gUmVtb3ZlZCBJc0xheWVy
V2luZG93U2VydmVySG9zdGVkIGZyb20gVmlld1N0YXRlLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6OnZpZXdTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICAgICAtIEFkZGVkIFNldExh
eWVySG9zdGluZ01vZGUgbWVzc2FnZS4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpp
bml0aWFsaXplQ3JlYXRpb25QYXJhbWV0ZXJzKToKKyAgICAgICAgICAgIC0gUGFzcyBsYXllckhv
c3RpbmdNb2RlLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5Ojppc0luV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5Ojppc1ZpZXdWaXNpYmxlKToKKyAgICAgICAgICAgIC0gVmlld1N0YXRlIG1vdmVk
IHRvIFdlYkNvcmUuCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
OgorICAgICAgICAgICAgLSBSZW1vdmVkIFZpZXdTdGF0ZS4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luVmlldy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblZpZXc6OnNl
dExheWVySG9zdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5WaWV3OjpwbGF0Zm9y
bVZpZXdTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICAgICAtIFNlcGFyYXRlZCBzZXRMYXllckhv
c3RpbmdNb2RlIGZyb20gcGxhdGZvcm1WaWV3U3RhdGVEaWRDaGFuZ2UuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL1BsdWdpblZpZXcuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvRHJhd2luZ0FyZWEuaDoKKyAgICAgICAgKFdlYktpdDo6RHJhd2luZ0FyZWE6OnZpZXdTdGF0
ZURpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OkRyYXdpbmdBcmVhOjpzZXRMYXllckhvc3Rp
bmdNb2RlKToKKyAgICAgICAgICAgIC0gQWRkZWQgdmlydHVhbCBmdW5jdGlvbiwgb3ZlcnJpZGRl
biBpbiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OldlYlBhZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRMYXllckhvc3RpbmdNb2RlKToKKyAgICAg
ICAgICAgIC0gU2VwYXJhdGVkIHNldExheWVySG9zdGluZ01vZGUgZnJvbSBwbGF0Zm9ybVZpZXdT
dGF0ZURpZENoYW5nZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1Zpc2libGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlOjpsYXllckhvc3RpbmdNb2RlKToKKyAgICAgICAgICAgIC0gVmlld1N0YXRlIG1vdmVk
IHRvIFdlYkNvcmUuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2Fn
ZXMuaW46CisgICAgICAgICAgICAtIEFkZGVkIFNldExheWVySG9zdGluZ01vZGUgbWVzc2FnZS4K
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbToKKyAgICAgICAgKFdlYktpdDo6VGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWE6OnZpZXdTdGF0ZURpZENoYW5nZSk6CisgICAgICAgICAgICAtIHZpZXdTdGF0
ZURpZENoYW5nZSBubyBsb25nZXIgY2FsbHMgc2V0TGF5ZXJIb3N0aW5nTW9kZSAodGhpcyBpcyBj
YWxsZWQgYnkgV2ViUGFnZSkuCisKIDIwMTQtMDEtMDUgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFy
cmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUgcHJvY2VzcyBzdXBwcmVzc2lvbiBv
ZiBXZWJQcm9jZXNzIHRvIFBhZ2UgKGZyb20gVUlQcm9jZXNzKQpJbmRleDogU291cmNlL1dlYktp
dDIvU2hhcmVkL1ZpZXdTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9WaWV3U3RhdGUuaAkocmV2aXNpb24gMTYxMzE5KQorKysgU291cmNlL1dlYktpdDIvU2hhcmVk
L1ZpZXdTdGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaWZuZGVmIFZpZXdTdGF0ZV9oCi0jZGVmaW5lIFZpZXdTdGF0ZV9oCi0KLW5hbWVzcGFjZSBX
ZWJLaXQgewotCi1zdHJ1Y3QgVmlld1N0YXRlIHsKLSAgICBlbnVtIHsKLSAgICAgICAgV2luZG93
SXNBY3RpdmUgPSAxIDw8IDAsCi0gICAgICAgIElzRm9jdXNlZCA9IDEgPDwgMSwKLSAgICAgICAg
SXNWaXNpYmxlID0gMSA8PCAyLAotICAgICAgICBJc0luV2luZG93ID0gMSA8PCAzLAotICAgICAg
ICBJc1Zpc3VhbGx5SWRsZSA9IDEgPDwgNCwKLSAgICAgICAgSXNMYXllcldpbmRvd1NlcnZlckhv
c3RlZCA9IDEgPDwgNSwKLSAgICB9OwotCi0gICAgdHlwZWRlZiB1bnNpZ25lZCBGbGFnczsKLQot
ICAgIHN0YXRpYyBjb25zdCBGbGFncyBOb0ZsYWdzID0gMDsKLSAgICBzdGF0aWMgY29uc3QgRmxh
Z3MgQWxsRmxhZ3MgPSBXaW5kb3dJc0FjdGl2ZSB8IElzRm9jdXNlZCB8IElzVmlzaWJsZSB8IElz
SW5XaW5kb3cgfCBJc0xheWVyV2luZG93U2VydmVySG9zdGVkIHwgSXNWaXN1YWxseUlkbGU7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmIC8vIFZpZXdTdGF0ZV9oCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlBhZ2VDcmVhdGlvblBhcmFtZXRl
cnMuY3BwCShyZXZpc2lvbiAxNjEzMTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUGFn
ZUNyZWF0aW9uUGFyYW1ldGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYwLDYgKzYwLDcgQEAg
dm9pZCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOjplbmNvZGUoSQogICAgIGVuY29kZXIgPDwg
YXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodDsKICAgICBlbmNvZGVyLmVuY29kZUVu
dW0oc2Nyb2xsUGlubmluZ0JlaGF2aW9yKTsKICAgICBlbmNvZGVyIDw8IGJhY2tncm91bmRFeHRl
bmRzQmV5b25kUGFnZTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0obGF5ZXJIb3N0aW5nTW9kZSk7
CiAKICNpZiBQTEFURk9STShNQUMpCiAgICAgZW5jb2RlciA8PCBjb2xvclNwYWNlOwpAQCAtMTIy
LDYgKzEyMyw4IEBAIGJvb2wgV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVyczo6ZGVjb2RlKEkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocGFyYW1ldGVycy5i
YWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2UpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZUVudW0ocGFyYW1ldGVycy5sYXllckhvc3RpbmdNb2RlKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHBhcmFtZXRlcnMuY29sb3JTcGFjZSkpCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgJKHJldmlzaW9uIDE2
MTMxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDggKzI3LDggQEAKICNkZWZpbmUgV2ViUGFnZUNyZWF0
aW9uUGFyYW1ldGVyc19oCiAKICNpbmNsdWRlICJEcmF3aW5nQXJlYUluZm8uaCIKKyNpbmNsdWRl
ICJMYXllclRyZWVDb250ZXh0LmgiCiAjaW5jbHVkZSAiU2Vzc2lvblN0YXRlLmgiCi0jaW5jbHVk
ZSAiVmlld1N0YXRlLmgiCiAjaW5jbHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZUdyb3VwRGF0YS5oIgogI2luY2x1ZGUgIldlYlByZWZlcmVuY2VzU3RvcmUu
aCIKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0ludFNpemUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BhZ2luYXRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5cGVz
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9WaWV3U3RhdGUuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTU1LDcgKzU2LDcgQEAgc3RydWN0
IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogCiAgICAgV2ViQ29yZTo6SW50U2l6ZSB2aWV3
U2l6ZTsKIAotICAgIFZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlOworICAgIFdlYkNvcmU6OlZp
ZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlOwogICAgIAogICAgIFdlYlByZWZlcmVuY2VzU3RvcmUg
c3RvcmU7CiAgICAgRHJhd2luZ0FyZWFUeXBlIGRyYXdpbmdBcmVhVHlwZTsKQEAgLTk4LDYgKzk5
LDggQEAgc3RydWN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMgewogCiAgICAgYm9vbCBiYWNr
Z3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U7CiAKKyAgICBMYXllckhvc3RpbmdNb2RlIGxheWVySG9z
dGluZ01vZGU7CisKICNpZiBQTEFURk9STShNQUMpCiAgICAgQ29sb3JTcGFjZURhdGEgY29sb3JT
cGFjZTsKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCShy
ZXZpc2lvbiAxNjEzMTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTEsMTAgKzExMSw4IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1
cm4gd2hldGhlciB0aGUgdmlldyBpcyB2aXN1YWxseSBpZGxlLgogICAgIHZpcnR1YWwgYm9vbCBp
c1Zpc3VhbGx5SWRsZSgpIHsgcmV0dXJuICFpc1ZpZXdWaXNpYmxlKCk7IH0KIAotI2lmIEhBVkUo
TEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQotICAgIC8vIFJldHVybiB3aGV0aGVyIHRo
ZSBsYXllciBpcyB3aW5kb3cgc2VydmVyIGhvc3RlZC4KLSAgICB2aXJ0dWFsIGJvb2wgaXNMYXll
cldpbmRvd1NlcnZlckhvc3RlZCgpID0gMDsKLSNlbmRpZgorICAgIC8vIFJldHVybiB0aGUgbGF5
ZXIgaG9zdGluZyBtb2RlIGZvciB0aGUgdmlldy4KKyAgICB2aXJ0dWFsIExheWVySG9zdGluZ01v
ZGUgdmlld0xheWVySG9zdGluZ01vZGUoKSB7IHJldHVybiBMYXllckhvc3RpbmdNb2RlRGVmYXVs
dDsgfQogCiAgICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaCgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCkgPSAwOwpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDE2MTMxOSkKKysrIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDUs
NiArMjQ1LDcgQEAgV2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkoUGFnZUNsaWVudCYgcAogICAg
ICwgbV9wYWdlU2NhbGVGYWN0b3IoMSkKICAgICAsIG1faW50cmluc2ljRGV2aWNlU2NhbGVGYWN0
b3IoMSkKICAgICAsIG1fY3VzdG9tRGV2aWNlU2NhbGVGYWN0b3IoMCkKKyAgICAsIG1fbGF5ZXJI
b3N0aW5nTW9kZShMYXllckhvc3RpbmdNb2RlRGVmYXVsdCkKICAgICAsIG1fZHJhd3NCYWNrZ3Jv
dW5kKHRydWUpCiAgICAgLCBtX2RyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGZhbHNlKQogICAg
ICwgbV9hcmVNZW1vcnlDYWNoZUNsaWVudENhbGxzRW5hYmxlZCh0cnVlKQpAQCAtMzExLDYgKzMx
MiwxMCBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdlQ2xpZW50JiBwCiB7CiAgICAg
dXBkYXRlVmlld1N0YXRlKCk7CiAKKyNpZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NF
UlZFUikKKyAgICBtX2xheWVySG9zdGluZ01vZGUgPSBtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6
SXNJbldpbmRvdyA/IG1fcGFnZUNsaWVudC52aWV3TGF5ZXJIb3N0aW5nTW9kZSgpIDogTGF5ZXJI
b3N0aW5nTW9kZUluV2luZG93U2VydmVyOworI2VuZGlmCisKICAgICBwbGF0Zm9ybUluaXRpYWxp
emUoKTsKIAogI2lmbmRlZiBOREVCVUcKQEAgLTkzNiwxMCArOTQxLDYgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnVwZGF0ZVZpZXdTdGF0ZShWaWV3UwogICAgICAgICBtX3ZpZXdTdGF0ZSB8PSBWaWV3
U3RhdGU6OklzSW5XaW5kb3c7CiAgICAgaWYgKGZsYWdzVG9VcGRhdGUgJiBWaWV3U3RhdGU6Oklz
VmlzdWFsbHlJZGxlICYmIG1fcGFnZUNsaWVudC5pc1Zpc3VhbGx5SWRsZSgpKQogICAgICAgICBt
X3ZpZXdTdGF0ZSB8PSBWaWV3U3RhdGU6OklzVmlzdWFsbHlJZGxlOwotI2lmIEhBVkUoTEFZRVJf
SE9TVElOR19JTl9XSU5ET1dfU0VSVkVSKQotICAgIGlmIChmbGFnc1RvVXBkYXRlICYgVmlld1N0
YXRlOjpJc0xheWVyV2luZG93U2VydmVySG9zdGVkICYmIG1fcGFnZUNsaWVudC5pc0xheWVyV2lu
ZG93U2VydmVySG9zdGVkKCkpCi0gICAgICAgIG1fdmlld1N0YXRlIHw9IFZpZXdTdGF0ZTo6SXNM
YXllcldpbmRvd1NlcnZlckhvc3RlZDsKLSNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2VQcm94eTo6
dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgbWF5SGF2ZUNoYW5nZWQsIFdhbnRz
UmVwbHlPck5vdCB3YW50c1JlcGx5KQpAQCAtOTQ3LDkgKzk0OCw2IEBAIHZvaWQgV2ViUGFnZVBy
b3h5Ojp2aWV3U3RhdGVEaWRDaGFuZ2UoVmkKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgLy8gSWYgdGhlIGluLXdpbmRvdyBzdGF0ZSBtYXkgaGF2ZSBjaGFuZ2Vk
LCB0aGVuIHNvIG1heSB0aGUgbGF5ZXIgaG9zdGluZy4KLSAgICBpZiAobWF5SGF2ZUNoYW5nZWQg
JiBWaWV3U3RhdGU6OklzSW5XaW5kb3cpCi0gICAgICAgIG1heUhhdmVDaGFuZ2VkIHw9IFZpZXdT
dGF0ZTo6SXNMYXllcldpbmRvd1NlcnZlckhvc3RlZDsKICAgICAvLyBJZiB0aGUgdmlzaWJpbGl0
eSBzdGF0ZSBtYXkgaGF2ZSBjaGFuZ2VkLCB0aGVuIHNvIG1heSB0aGUgdmlzdWFsbHkgaWRsZS4K
ICAgICBpZiAobWF5SGF2ZUNoYW5nZWQgJiBWaWV3U3RhdGU6OklzVmlzaWJsZSkKICAgICAgICAg
bWF5SGF2ZUNoYW5nZWQgfD0gVmlld1N0YXRlOjpJc1Zpc3VhbGx5SWRsZTsKQEAgLTk2NiwxNyAr
OTY0LDIyIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3U3RhdGVEaWRDaGFuZ2UoVmkKICAgICBp
ZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6SXNWaXN1YWxseUlkbGUpCiAgICAgICAgIG1fcHJvY2Vz
cy0+cGFnZVN1cHByZXNzaWJpbGl0eUNoYW5nZWQodGhpcyk7CiAKLSAgICBpZiAoY2hhbmdlZCAm
IFZpZXdTdGF0ZTo6SXNWaXNpYmxlKSB7Ci0gICAgICAgIGlmICghaXNWaWV3VmlzaWJsZSgpKSB7
Ci0gICAgICAgICAgICAvLyBJZiB3ZSd2ZSBzdGFydGVkIHRoZSByZXNwb25zaXZlbmVzcyB0aW1l
ciBhcyBwYXJ0IG9mIHRlbGxpbmcgdGhlIHdlYiBwcm9jZXNzIHRvIHVwZGF0ZSB0aGUgYmFja2lu
ZyBzdG9yZQotICAgICAgICAgICAgLy8gc3RhdGUsIGl0IG1pZ2h0IG5vdCBzZW5kIGJhY2sgYSBy
ZXBseSAoc2luY2UgaXQgd29uJ3QgcGFpbnQgYW55dGhpbmcgaWYgdGhlIHdlYiBwYWdlIGlzIGhp
ZGRlbikgc28gd2UKLSAgICAgICAgICAgIC8vIHN0b3AgdGhlIHVucmVzcG9uc2l2ZW5lc3MgdGlt
ZXIgaGVyZS4KLSAgICAgICAgICAgIG1fcHJvY2Vzcy0+cmVzcG9uc2l2ZW5lc3NUaW1lcigpLT5z
dG9wKCk7CisgICAgLy8gSWYgd2UndmUgc3RhcnRlZCB0aGUgcmVzcG9uc2l2ZW5lc3MgdGltZXIg
YXMgcGFydCBvZiB0ZWxsaW5nIHRoZSB3ZWIgcHJvY2VzcyB0byB1cGRhdGUgdGhlIGJhY2tpbmcg
c3RvcmUKKyAgICAvLyBzdGF0ZSwgaXQgbWlnaHQgbm90IHNlbmQgYmFjayBhIHJlcGx5IChzaW5j
ZSBpdCB3b24ndCBwYWludCBhbnl0aGluZyBpZiB0aGUgd2ViIHBhZ2UgaXMgaGlkZGVuKSBzbyB3
ZQorICAgIC8vIHN0b3AgdGhlIHVucmVzcG9uc2l2ZW5lc3MgdGltZXIgaGVyZS4KKyAgICBpZiAo
KGNoYW5nZWQgJiBWaWV3U3RhdGU6OklzVmlzaWJsZSkgJiYgIWlzVmlld1Zpc2libGUoKSkKKyAg
ICAgICAgbV9wcm9jZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCktPnN0b3AoKTsKKworICAgIGlm
ICgobWF5SGF2ZUNoYW5nZWQgJiBWaWV3U3RhdGU6OklzSW5XaW5kb3cpICYmIChtX3ZpZXdTdGF0
ZSAmIFZpZXdTdGF0ZTo6SXNJbldpbmRvdykpIHsKKyAgICAgICAgTGF5ZXJIb3N0aW5nTW9kZSBs
YXllckhvc3RpbmdNb2RlID0gbV9wYWdlQ2xpZW50LnZpZXdMYXllckhvc3RpbmdNb2RlKCk7Cisg
ICAgICAgIGlmIChtX2xheWVySG9zdGluZ01vZGUgIT0gbGF5ZXJIb3N0aW5nTW9kZSkgeworICAg
ICAgICAgICAgbV9sYXllckhvc3RpbmdNb2RlID0gbGF5ZXJIb3N0aW5nTW9kZTsKKyAgICAgICAg
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6U2V0TGF5ZXJIb3N0aW5nTW9k
ZShsYXllckhvc3RpbmdNb2RlKSwgbV9wYWdlSUQpOwogICAgICAgICB9CiAgICAgfQogCiAjaWYg
RU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKLSAgICBpZiAobWF5SGF2ZUNoYW5nZWQg
JiBWaWV3U3RhdGU6OklzSW5XaW5kb3cgJiYgIShtX3ZpZXdTdGF0ZSAmIFZpZXdTdGF0ZTo6SXNJ
bldpbmRvdykpIHsKKyAgICBpZiAoKG1heUhhdmVDaGFuZ2VkICYgVmlld1N0YXRlOjpJc0luV2lu
ZG93KSAmJiAhKG1fdmlld1N0YXRlICYgVmlld1N0YXRlOjpJc0luV2luZG93KSkgewogICAgICAg
ICAvLyBXaGVuIGxlYXZpbmcgdGhlIGN1cnJlbnQgcGFnZSwgY2xvc2UgdGhlIHBvcG92ZXIgY29s
b3Igd2VsbC4KICAgICAgICAgaWYgKG1fY29sb3JQaWNrZXIpCiAgICAgICAgICAgICBlbmRDb2xv
clBpY2tlcigpOwpAQCAtMzg4OCw2ICszODkxLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmluaXRp
YWxpemVDcmVhdGlvblBhcgogICAgIG1fY3JlYXRpb25QYXJhbWV0ZXJzLmF1dG9TaXppbmdTaG91
bGRFeHBhbmRUb1ZpZXdIZWlnaHQgPSBtX2F1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWln
aHQ7CiAgICAgbV9jcmVhdGlvblBhcmFtZXRlcnMuc2Nyb2xsUGlubmluZ0JlaGF2aW9yID0gbV9z
Y3JvbGxQaW5uaW5nQmVoYXZpb3I7CiAgICAgbV9jcmVhdGlvblBhcmFtZXRlcnMuYmFja2dyb3Vu
ZEV4dGVuZHNCZXlvbmRQYWdlID0gbV9iYWNrZ3JvdW5kRXh0ZW5kc0JleW9uZFBhZ2U7CisgICAg
bV9jcmVhdGlvblBhcmFtZXRlcnMubGF5ZXJIb3N0aW5nTW9kZSA9IG1fbGF5ZXJIb3N0aW5nTW9k
ZTsKIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKICAgICBtX2NyZWF0aW9u
UGFyYW1ldGVycy5jb2xvclNwYWNlID0gbV9wYWdlQ2xpZW50LmNvbG9yU3BhY2UoKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDE2MTMxOSkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5
KQpAQCAtMzMsMTMgKzMzLDEzIEBACiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgogI2lu
Y2x1ZGUgIkVkaXRvclN0YXRlLmgiCiAjaW5jbHVkZSAiR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXJQcm94eS5oIgorI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKICNpbmNs
dWRlICJNZXNzYWdlU2VuZGVyLmgiCiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuaCIKICNpbmNsdWRlICJQYWdlTG9hZFN0YXRlLmgiCiAjaW5jbHVk
ZSAiUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNhbmRib3hFeHRlbnNp
b24uaCIKICNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKLSNpbmNsdWRlICJWaWV3U3RhdGUu
aCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlICJXS1BhZ2VQcml2YXRlLmgiCiAjaW5j
bHVkZSAiV2ViQ29sb3JQaWNrZXIuaCIKQEAgLTY3LDYgKzY3LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1Njcm9sbFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1RleHRHcmFudWxhcml0eS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmll
d1N0YXRlLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTQxOCwxMiArNDE5LDEyIEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNjcm9sbFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgc2Nyb2xsUmVj
dCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KTsKIAogICAgIGVudW0gY2xh
c3MgV2FudHNSZXBseU9yTm90IHsgRG9lc05vdFdhbnRSZXBseSwgRG9lc1dhbnRSZXBseSB9Owot
ICAgIHZvaWQgdmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgbWF5SGF2ZUNoYW5n
ZWQsIFdhbnRzUmVwbHlPck5vdCA9IFdhbnRzUmVwbHlPck5vdDo6RG9lc05vdFdhbnRSZXBseSk7
Ci0gICAgYm9vbCBpc0luV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV92aWV3U3RhdGUgJiBWaWV3
U3RhdGU6OklzSW5XaW5kb3c7IH0KKyAgICB2b2lkIHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3Jl
OjpWaWV3U3RhdGU6OkZsYWdzIG1heUhhdmVDaGFuZ2VkLCBXYW50c1JlcGx5T3JOb3QgPSBXYW50
c1JlcGx5T3JOb3Q6OkRvZXNOb3RXYW50UmVwbHkpOworICAgIGJvb2wgaXNJbldpbmRvdygpIGNv
bnN0IHsgcmV0dXJuIG1fdmlld1N0YXRlICYgV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93
OyB9CiAgICAgdm9pZCB3YWl0Rm9yRGlkVXBkYXRlVmlld1N0YXRlKCk7CiAKICAgICBXZWJDb3Jl
OjpJbnRTaXplIHZpZXdTaXplKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1ZpZXdWaXNpYmxlKCkgY29u
c3QgeyByZXR1cm4gbV92aWV3U3RhdGUgJiBWaWV3U3RhdGU6OklzVmlzaWJsZTsgfQorICAgIGJv
b2wgaXNWaWV3VmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1N0YXRlICYgV2ViQ29yZTo6
Vmlld1N0YXRlOjpJc1Zpc2libGU7IH0KICAgICBib29sIGlzVmlld1dpbmRvd0FjdGl2ZSgpIGNv
bnN0OwogICAgIGJvb2wgaXNQcm9jZXNzU3VwcHJlc3NpYmxlKCkgY29uc3Q7CiAKQEAgLTg1Nyw3
ICs4NTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKCk7CiAgICAg
dm9pZCBpbml0aWFsaXplQ3JlYXRpb25QYXJhbWV0ZXJzKCk7CiAKLSAgICB2b2lkIHVwZGF0ZVZp
ZXdTdGF0ZShWaWV3U3RhdGU6OkZsYWdzIGZsYWdzVG9VcGRhdGUgPSBWaWV3U3RhdGU6OkFsbEZs
YWdzKTsKKyAgICB2b2lkIHVwZGF0ZVZpZXdTdGF0ZShXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdz
IGZsYWdzVG9VcGRhdGUgPSBXZWJDb3JlOjpWaWV3U3RhdGU6OkFsbEZsYWdzKTsKIAogICAgIHZv
aWQgcmVzZXRTdGF0ZSgpOwogICAgIHZvaWQgcmVzZXRTdGF0ZUFmdGVyUHJvY2Vzc0V4aXRlZCgp
OwpAQCAtMTIxOCw3ICsxMjE5LDcgQEAgcHJpdmF0ZToKICAgICBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5IG1fZ2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXI7CiAgICAgTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkgbV9ub3Rp
ZmljYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXI7CiAKLSAgICBWaWV3U3RhdGU6OkZsYWdz
IG1fdmlld1N0YXRlOworICAgIFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3MgbV92aWV3U3RhdGU7
CiAKICAgICBib29sIG1fY2FuR29CYWNrOwogICAgIGJvb2wgbV9jYW5Hb0ZvcndhcmQ7CkBAIC0x
MjQwLDYgKzEyNDEsOCBAQCBwcml2YXRlOgogICAgIGZsb2F0IG1faW50cmluc2ljRGV2aWNlU2Nh
bGVGYWN0b3I7CiAgICAgZmxvYXQgbV9jdXN0b21EZXZpY2VTY2FsZUZhY3RvcjsKIAorICAgIExh
eWVySG9zdGluZ01vZGUgbV9sYXllckhvc3RpbmdNb2RlOworCiAgICAgYm9vbCBtX2RyYXdzQmFj
a2dyb3VuZDsKICAgICBib29sIG1fZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQ7CiAKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwu
aAkocmV2aXNpb24gMTYxMzE5KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
UGFnZUNsaWVudEltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNjYsOSArNjYsNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgYm9vbCBpc1ZpZXdWaXNpYmxlKCk7CiAgICAgdmlydHVhbCBib29sIGlz
Vmlld0luV2luZG93KCk7CiAgICAgdmlydHVhbCBib29sIGlzVmlzdWFsbHlJZGxlKCk7Ci0jaWYg
SEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAgdmlydHVhbCBib29sIGlz
TGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQoKTsKLSNlbmRpZgorICAgIHZpcnR1YWwgTGF5ZXJIb3N0
aW5nTW9kZSB2aWV3TGF5ZXJIb3N0aW5nTW9kZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgQ29s
b3JTcGFjZURhdGEgY29sb3JTcGFjZSgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKENBTGF5ZXIgKikgT1ZFUlJJREU7CiAKQEAg
LTE2NSw5ICsxNjMsNiBAQCBwcml2YXRlOgogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVT
KQogICAgIE93blB0cjxXZWJDb3JlOjpBbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXI+IG1fYWx0
ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOwogI2VuZGlmCi0jaWYgSEFWRShMQVlFUl9IT1NUSU5H
X0lOX1dJTkRPV19TRVJWRVIpCi0gICAgYm9vbCBtX2lzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQ7
Ci0jZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0JKHJldmlzaW9u
IDE2MTMxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJ
bXBsLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw2IEBACiAjaW1wb3J0ICJEYXRhUmVm
ZXJlbmNlLmgiCiAjaW1wb3J0ICJEaWN0aW9uYXJ5UG9wdXBJbmZvLmgiCiAjaW1wb3J0ICJGaW5k
SW5kaWNhdG9yLmgiCi0jaW1wb3J0ICJMYXllclRyZWVDb250ZXh0LmgiCiAjaW1wb3J0ICJOYXRp
dmVXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKICNpbXBv
cnQgIldLQVBJQ2FzdC5oIgpAQCAtMTI5LDkgKzEyOCw2IEBAIFBhZ2VDbGllbnRJbXBsOjpQYWdl
Q2xpZW50SW1wbChXS1ZpZXcqIHcKICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKICAg
ICAsIG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyKGFkb3B0UHRyKG5ldyBBbHRlcm5hdGl2
ZVRleHRVSUNvbnRyb2xsZXIpKQogI2VuZGlmCi0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJ
TkRPV19TRVJWRVIpCi0gICAgLCBtX2lzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQodHJ1ZSkKLSNl
bmRpZgogewogfQogCkBAIC0yMjAsMTYgKzIxNiwxNCBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjpp
c1Zpc3VhbGx5SWRsZSgpCiAgICAgcmV0dXJuIFdpbmRvd1NlcnZlckNvbm5lY3Rpb246OnNoYXJl
ZCgpLmFwcGxpY2F0aW9uV2luZG93TW9kaWZpY2F0aW9uc0hhdmVTdG9wcGVkKCkgfHwgIWlzVmll
d1Zpc2libGUoKTsKIH0KIAotI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1dfU0VSVkVS
KQotYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNMYXllcldpbmRvd1NlcnZlckhvc3RlZCgpCitMYXll
ckhvc3RpbmdNb2RlIFBhZ2VDbGllbnRJbXBsOjp2aWV3TGF5ZXJIb3N0aW5nTW9kZSgpCiB7Ci0g
ICAgLy8gT25seSB1cGRhdGUgbV9pc0xheWVyV2luZG93U2VydmVySG9zdGVkIHdoZW4gdGhlIHZp
ZXcgaXMgaW4gYSB3aW5kb3cgLSBvdGhlcndpc2UganVzdCByZXBvcnQgdGhlIGxhc3QgdmFsdWUu
Ci0gICAgaWYgKFttX3drVmlldyB3aW5kb3ddKQotICAgICAgICBtX2lzTGF5ZXJXaW5kb3dTZXJ2
ZXJIb3N0ZWQgPSBbW21fd2tWaWV3IHdpbmRvd10gX2hvc3RzTGF5ZXJzSW5XaW5kb3dTZXJ2ZXJd
OwotCi0gICAgcmV0dXJuIG1faXNMYXllcldpbmRvd1NlcnZlckhvc3RlZDsKLX0KKyNpZiBIQVZF
KExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKKyAgICBpZiAoW21fd2tWaWV3IHdpbmRv
d10gJiYgW1ttX3drVmlldyB3aW5kb3ddIF9ob3N0c0xheWVyc0luV2luZG93U2VydmVyXSkKKyAg
ICAgICAgcmV0dXJuIExheWVySG9zdGluZ01vZGVJbldpbmRvd1NlcnZlcjsKICNlbmRpZgorICAg
IHJldHVybiBMYXllckhvc3RpbmdNb2RlRGVmYXVsdDsKK30KIAogdm9pZCBQYWdlQ2xpZW50SW1w
bDo6dmlld1dpbGxNb3ZlVG9Bbm90aGVyV2luZG93KCkKIHsKSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDE2MTMx
OSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtNzgyLDcgKzc4Miw2IEBACiAJCTdDRjQ3RkZFMTcyNzZBRTMwMDhB
Q0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0Y0N0ZGQzE3Mjc2QUUzMDA4QUNCOTEgLyogV0tCdW5k
bGVQYWdlQmFubmVyTWFjLm1tICovOyB9OwogCQk3Q0Y0N0ZGRjE3Mjc2QUUzMDA4QUNCOTEgLyog
V0tCdW5kbGVQYWdlQmFubmVyTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA3Q0Y0N0ZGRDE3Mjc2QUUzMDA4QUNCOTEgLyogV0tCdW5kbGVQYWdlQmFu
bmVyTWFjLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJODQ0Nzc4NTMxNzZGQ0MwODAwQ0RDN0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dE1lZGlhVHlwZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODQ0Nzc4NTExNzZGQ0FDMTAwQ0RDN0JCIC8qIEluamVjdGVkQnVuZGxlSGl0VGVzdFJlc3Vs
dE1lZGlhVHlwZS5oICovOyB9OwotCQk4NjVFMDQ4NTE4MUEwOTRBMDAxRjcyRjIgLyogVmlld1N0
YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjVF
MDQ4NDE4MUEwOTBEMDAxRjcyRjIgLyogVmlld1N0YXRlLmggKi87IH07CiAJCTg2ODE2MEQwMTg3
NjQ1NTcwMDIxRTc5RCAvKiBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODY4MTYwQ0YxODc2NDUzNzAwMjFFNzlE
IC8qIFdpbmRvd1NlcnZlckNvbm5lY3Rpb24ubW0gKi87IH07CiAJCThDRkVDRTk0MTQ5MEYxNDAw
MDJBQUEzMiAvKiBFZGl0b3JTdGF0ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA4Q0ZFQ0U5MzE0OTBGMTQwMDAyQUFBMzIgLyogRWRpdG9yU3RhdGUu
Y3BwICovOyB9OwogCQk4REMyRUY1MzA0ODZBNjk0MDA5OEIyMTYgLyogSW5mb1BsaXN0LnN0cmlu
Z3MgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA4OUMx
NjY2RkU4NDExNThDMDJBQUMwNyAvKiBJbmZvUGxpc3Quc3RyaW5ncyAqLzsgfTsKQEAgLTI0MDIs
NyArMjQwMSw2IEBACiAJCTdDRjQ3RkZDMTcyNzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VC
YW5uZXJNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0J1
bmRsZVBhZ2VCYW5uZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTdDRjQ3
RkZEMTcyNzZBRTMwMDhBQ0I5MSAvKiBXS0J1bmRsZVBhZ2VCYW5uZXJNYWMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVQYWdlQmFubmVyTWFjLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0NDc3ODUxMTc2RkNBQzEwMENEQzdCQiAvKiBJbmplY3Rl
ZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTg2NUUwNDg0MTgxQTA5MEQwMDFGNzJGMiAvKiBWaWV3U3Rh
dGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gVmlld1N0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTg2ODE2MENEMTg3NjNENEIwMDIxRTc5RCAvKiBXaW5kb3dTZXJ2ZXJDb25uZWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdpbmRvd1NlcnZlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJODY4MTYwQ0YxODc2NDUzNzAwMjFFNzlEIC8qIFdpbmRvd1NlcnZl
ckNvbm5lY3Rpb24ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXaW5kb3dTZXJ2ZXJDb25uZWN0
aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4Q0ZFQ0U5MzE0OTBGMTQwMDAy
QUFBMzIgLyogRWRpdG9yU3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gRWRpdG9yU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMzU4
MSw3ICszNTc5LDYgQEAKIAkJCQkxQUMxMzM2NTE4NTY1QjU3MDBGM0VDMDUgLyogVXNlckRhdGEu
Y3BwICovLAogCQkJCTFBQzEzMzY2MTg1NjVCNTcwMEYzRUMwNSAvKiBVc2VyRGF0YS5oICovLAog
CQkJCUJDQjBCMERGMTIzMDVBQjEwMEIxMzQxRSAvKiBVc2VyTWVzc2FnZUNvZGVycy5oICovLAot
CQkJCTg2NUUwNDg0MTgxQTA5MEQwMDFGNzJGMiAvKiBWaWV3U3RhdGUuaCAqLywKIAkJCQkxQTBG
MjlDOTEyMEIzNzE2MDA1M0QxQjkgLyogVmlzaXRlZExpbmtUYWJsZS5jcHAgKi8sCiAJCQkJMUEw
RjI5Q0ExMjBCMzcxNjAwNTNEMUI5IC8qIFZpc2l0ZWRMaW5rVGFibGUuaCAqLywKIAkJCQlCQzMy
OUQ5OTE2QUNDRTk5MDAzMTZERTIgLyogV2ViQXJjaGl2ZS5jcHAgKi8sCkBAIC01NzcxLDcgKzU3
NjgsNiBAQAogCQkJCTUxNUU3NzMwMTg0MDE1ODAwMDA3MjAzRiAvKiBVbmlxdWVJREJEYXRhYmFz
ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjg3OEI2MTUxMzM0MjhEQzAwNjg4OEU5IC8qIENvcnJl
Y3Rpb25QYW5lbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjk4OUE0MTQxNjdEMTg0QjAwNEY5NkQy
IC8qIEN1c3RvbVByb3RvY29sTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJODY1RTA0ODUx
ODFBMDk0QTAwMUY3MkYyIC8qIFZpZXdTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMzcxQjMy
REUxODRENjc0OTAwMTNFMkIyIC8qIFdLTlNVUkxQcm90ZWN0aW9uU3BhY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTI5ODRGNTg5MTY0QkEwOTUwMDRCQzBDNiAvKiBDdXN0b21Qcm90b2NvbE1hbmFn
ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjlBRDMwOTMxNjRCNEM1RDAwNzJERUE5
IC8qIEN1c3RvbVByb3RvY29sTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5WaWV3LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5jcHAJKHJl
dmlzaW9uIDE2MTMxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVn
aW5WaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzY0LDYgKzM2NCwyMSBAQCB2b2lkIFBsdWdp
blZpZXc6OnJlY3JlYXRlQW5kSW5pdGlhbGl6ZShQCiAgICAgaW5pdGlhbGl6ZVBsdWdpbigpOwog
fQogCit2b2lkIFBsdWdpblZpZXc6OnNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9k
ZSBsYXllckhvc3RpbmdNb2RlKQoreworI2lmIEhBVkUoTEFZRVJfSE9TVElOR19JTl9XSU5ET1df
U0VSVkVSKQorICAgIGlmICghbV9wbHVnaW4pCisgICAgICAgIHJldHVybjsKKworICAgIGlmICht
X2lzSW5pdGlhbGl6ZWQpCisgICAgICAgIG1fcGx1Z2luLT5zZXRMYXllckhvc3RpbmdNb2RlKGxh
eWVySG9zdGluZ01vZGUpOworICAgIGVsc2UKKyAgICAgICAgbV9wYXJhbWV0ZXJzLmxheWVySG9z
dGluZ01vZGUgPSBsYXllckhvc3RpbmdNb2RlOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obGF5
ZXJIb3N0aW5nTW9kZSk7CisjZW5kaWYKK30KKwogRnJhbWUqIFBsdWdpblZpZXc6OmZyYW1lKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9wbHVnaW5FbGVtZW50LT5kb2N1bWVudCgpLmZyYW1lKCk7
CkBAIC00OTEsMjQgKzUwNiwxMyBAQCB2b2lkIFBsdWdpblZpZXc6OnZpZXdTdGF0ZURpZENoYW5n
ZShWaWV3CiAjaWYgUExBVEZPUk0oTUFDKQogdm9pZCBQbHVnaW5WaWV3OjpwbGF0Zm9ybVZpZXdT
dGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQpCiB7Ci0gICAgaWYgKCFtX3Bs
dWdpbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFtX2lzSW5pdGlhbGl6ZWQpIHsKLSNp
ZiBIQVZFKExBWUVSX0hPU1RJTkdfSU5fV0lORE9XX1NFUlZFUikKLSAgICAgICAgbV9wYXJhbWV0
ZXJzLmxheWVySG9zdGluZ01vZGUgPSBtX3dlYlBhZ2UtPmxheWVySG9zdGluZ01vZGUoKTsKLSNl
bmRpZgorICAgIGlmICghbV9wbHVnaW4gfHwgIW1faXNJbml0aWFsaXplZCkKICAgICAgICAgcmV0
dXJuOwotICAgIH0KIAogICAgIGlmIChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc1Zpc2libGUpCiAg
ICAgICAgIG1fcGx1Z2luLT53aW5kb3dWaXNpYmlsaXR5Q2hhbmdlZChtX3dlYlBhZ2UtPmlzVmlz
aWJsZSgpKTsKICAgICBpZiAoY2hhbmdlZCAmIFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpCiAg
ICAgICAgIG1fcGx1Z2luLT53aW5kb3dGb2N1c0NoYW5nZWQobV93ZWJQYWdlLT53aW5kb3dJc0Zv
Y3VzZWQoKSk7Ci0jaWYgSEFWRShMQVlFUl9IT1NUSU5HX0lOX1dJTkRPV19TRVJWRVIpCi0gICAg
aWYgKGNoYW5nZWQgJiBWaWV3U3RhdGU6OklzTGF5ZXJXaW5kb3dTZXJ2ZXJIb3N0ZWQpCi0gICAg
ICAgIG1fcGx1Z2luLT5zZXRMYXllckhvc3RpbmdNb2RlKG1fd2ViUGFnZS0+bGF5ZXJIb3N0aW5n
TW9kZSgpKTsKLSNlbmRpZgogfQogCiB2b2lkIFBsdWdpblZpZXc6OnNldERldmljZVNjYWxlRmFj
dG9yKGZsb2F0IHNjYWxlRmFjdG9yKQpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCShyZXZpc2lvbiAxNjEzMTkpCisrKyBTb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
NiwxMCArMjYsMTAgQEAKICNpZm5kZWYgUGx1Z2luVmlld19oCiAjZGVmaW5lIFBsdWdpblZpZXdf
aAogCisjaW5jbHVkZSAiTGF5ZXJUcmVlQ29udGV4dC5oIgogI2luY2x1ZGUgIk5QUnVudGltZU9i
amVjdE1hcC5oIgogI2luY2x1ZGUgIlBsdWdpbi5oIgogI2luY2x1ZGUgIlBsdWdpbkNvbnRyb2xs
ZXIuaCIKLSNpbmNsdWRlICJWaWV3U3RhdGUuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvRmluZE9wdGlvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ltYWdlLmg+
CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZUVycm9yLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9U
aW1lci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlld1N0YXRlLmg+CiAjaW5jbHVkZSA8d3RmL0Rl
cXVlLmg+CiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KIApAQCAtNjksMTAgKzcwLDExIEBAIHB1
YmxpYzoKICAgICB2b2lkIG1hbnVhbExvYWREaWRGaW5pc2hMb2FkaW5nKCk7CiAgICAgdm9pZCBt
YW51YWxMb2FkRGlkRmFpbChjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJik7CiAKLSAgICB2
b2lkIHZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQpOworICAgIHZv
aWQgdmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCk7
CisgICAgdm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpOwogCiAjaWYg
UExBVEZPUk0oTUFDKQotICAgIHZvaWQgcGxhdGZvcm1WaWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0
YXRlOjpGbGFncyBjaGFuZ2VkKTsKKyAgICB2b2lkIHBsYXRmb3JtVmlld1N0YXRlRGlkQ2hhbmdl
KFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdlZCk7CiAgICAgdm9pZCBzZXREZXZpY2VT
Y2FsZUZhY3RvcihmbG9hdCk7CiAgICAgdm9pZCB3aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZChj
b25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGluYXRlcywg
Y29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKTsK
ICAgICBib29sIHNlbmRDb21wbGV4VGV4dElucHV0KHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIHRleHRJbnB1dCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvRHJhd2luZ0FyZWEuaAkocmV2aXNpb24g
MTYxMzE5KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0RyYXdpbmdBcmVh
LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDkgKzI4LDkgQEAKIAogI2luY2x1ZGUgIkRyYXdpbmdB
cmVhSW5mby5oIgogI2luY2x1ZGUgIkxheWVyVHJlZUNvbnRleHQuaCIKLSNpbmNsdWRlICJWaWV3
U3RhdGUuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL0ludFJlY3QuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1ZpZXdTdGF0ZS5oPgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+CiAKQEAgLTEwNiw3
ICsxMDYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3Vy
aW5nVXBkYXRlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZ1bmN0aW9uPHZvaWQgKCk+Jik7CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgdmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6RmxhZ3MgY2hhbmdl
ZCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3
U3RhdGU6OkZsYWdzIGNoYW5nZWQpIHsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRMYXllckhvc3Rp
bmdNb2RlKExheWVySG9zdGluZ01vZGUpIHsgfQogCiBwcm90ZWN0ZWQ6CiAgICAgRHJhd2luZ0Fy
ZWEoRHJhd2luZ0FyZWFUeXBlLCBXZWJQYWdlKik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAxNjEzMTkpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI0MSw2ICsyNDEsNyBAQCBXZWJQYWdlOjpXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29u
c3QgCiAgICAgLCBtX251bWJlck9mUHJpbWFyeVNuYXBzaG90RGV0ZWN0aW9uQXR0ZW1wdHMoMCkK
ICAgICAsIG1fZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0luVGltZXIoUnVuTG9vcDo6
bWFpbigpLCB0aGlzLCAmV2ViUGFnZTo6ZGV0ZXJtaW5lUHJpbWFyeVNuYXBzaG90dGVkUGx1Z0lu
VGltZXJGaXJlZCkKICNlbmRpZgorICAgICwgbV9sYXllckhvc3RpbmdNb2RlKHBhcmFtZXRlcnMu
bGF5ZXJIb3N0aW5nTW9kZSkKICNpZiBQTEFURk9STShNQUMpCiAgICAgLCBtX3BkZlBsdWdpbkVu
YWJsZWQoZmFsc2UpCiAgICAgLCBtX2hhc0NhY2hlZFdpbmRvd0ZyYW1lKGZhbHNlKQpAQCAtMjA5
Miw2ICsyMDkzLDE2IEBAIHZvaWQgV2ViUGFnZTo6c2V0Vmlld1N0YXRlKFZpZXdTdGF0ZTo6RmwK
ICAgICAgICAgbV9zZW5kRGlkVXBkYXRlVmlld1N0YXRlVGltZXIuc3RhcnRPbmVTaG90KDApOwog
fQogCit2b2lkIFdlYlBhZ2U6OnNldExheWVySG9zdGluZ01vZGUodW5zaWduZWQgbGF5ZXJIb3N0
aW5nTW9kZSkKK3sKKyAgICBtX2xheWVySG9zdGluZ01vZGUgPSBzdGF0aWNfY2FzdDxMYXllckhv
c3RpbmdNb2RlPihsYXllckhvc3RpbmdNb2RlKTsKKworICAgIG1fZHJhd2luZ0FyZWEtPnNldExh
eWVySG9zdGluZ01vZGUobV9sYXllckhvc3RpbmdNb2RlKTsKKworICAgIGZvciAoYXV0byogcGx1
Z2luVmlldyA6IG1fcGx1Z2luVmlld3MpCisgICAgICAgIHBsdWdpblZpZXctPnNldExheWVySG9z
dGluZ01vZGUobV9sYXllckhvc3RpbmdNb2RlKTsKK30KKwogdm9pZCBXZWJQYWdlOjpkaWRSZWNl
aXZlUG9saWN5RGVjaXNpb24odWludDY0X3QgZnJhbWVJRCwgdWludDY0X3QgbGlzdGVuZXJJRCwg
dWludDMyX3QgcG9saWN5QWN0aW9uLCB1aW50NjRfdCBkb3dubG9hZElEKQogewogICAgIFdlYkZy
YW1lKiBmcmFtZSA9IFdlYlByb2Nlc3M6OnNoYXJlZCgpLndlYkZyYW1lKGZyYW1lSUQpOwpJbmRl
eDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lv
biAxNjEzMTkpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw2IEBACiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAj
aW5jbHVkZSAiU2FuZGJveEV4dGVuc2lvbi5oIgogI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5o
IgotI2luY2x1ZGUgIlZpZXdTdGF0ZS5oIgogI2luY2x1ZGUgIldlYlVuZG9TdGVwLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9EaWN0YXRpb25BbHRlcm5hdGl2ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RHJhZ0RhdGEuaD4KQEAgLTU4LDYgKzU3LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFR5
cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9UZXh0Q2hlY2tpbmcuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1VzZXJBY3Rpdml0eS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVmlld1N0YXRlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9XZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaD4KICNpbmNsdWRlIDx3dGYvSGFz
aE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTM0NywxOCArMzQ3LDEyIEBAIHB1
YmxpYzoKICAgICB2b2lkIGFkZFBsdWdpblZpZXcoUGx1Z2luVmlldyopOwogICAgIHZvaWQgcmVt
b3ZlUGx1Z2luVmlldyhQbHVnaW5WaWV3Kik7CiAKLSAgICBib29sIGlzVmlzaWJsZSgpIGNvbnN0
IHsgcmV0dXJuIG1fdmlld1N0YXRlICYgVmlld1N0YXRlOjpJc1Zpc2libGU7IH0KKyAgICBib29s
IGlzVmlzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlld1N0YXRlICYgV2ViQ29yZTo6Vmlld1N0
YXRlOjpJc1Zpc2libGU7IH0KIAotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBMYXllckhvc3RpbmdN
b2RlIGxheWVySG9zdGluZ01vZGUoKSBjb25zdAotICAgIHsKLSNpZiBIQVZFKExBWUVSX0hPU1RJ
TkdfSU5fV0lORE9XX1NFUlZFUikKLSAgICAgICAgcmV0dXJuIG1fdmlld1N0YXRlICYgVmlld1N0
YXRlOjpJc0xheWVyV2luZG93U2VydmVySG9zdGVkID8gTGF5ZXJIb3N0aW5nTW9kZUluV2luZG93
U2VydmVyIDogTGF5ZXJIb3N0aW5nTW9kZURlZmF1bHQ7Ci0jZWxzZQotICAgICAgICByZXR1cm4g
TGF5ZXJIb3N0aW5nTW9kZURlZmF1bHQ7Ci0jZW5kaWYKLSAgICB9CisgICAgTGF5ZXJIb3N0aW5n
TW9kZSBsYXllckhvc3RpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9sYXllckhvc3RpbmdNb2Rl
OyB9CisgICAgdm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKHVuc2lnbmVkKTsKIAorI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2b2lkIHVwZGF0ZVBsdWdpbnNBY3RpdmVBbmRGb2N1c2VkU3RhdGUoKTsK
ICAgICBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIHdpbmRvd0ZyYW1lSW5TY3JlZW5Db29yZGlu
YXRlcygpIGNvbnN0IHsgcmV0dXJuIG1fd2luZG93RnJhbWVJblNjcmVlbkNvb3JkaW5hdGVzOyB9
CiAgICAgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiB3aW5kb3dGcmFtZUluVW5mbGlwcGVkU2Ny
ZWVuQ29vcmRpbmF0ZXMoKSBjb25zdCB7IHJldHVybiBtX3dpbmRvd0ZyYW1lSW5VbmZsaXBwZWRT
Y3JlZW5Db29yZGluYXRlczsgfQpAQCAtNzMyLDcgKzcyNiw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBzZXRXaW5kb3dSZXNpemVyU2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CiAgICAgdm9p
ZCBzZXRJc0luV2luZG93KGJvb2wpOwogICAgIHZvaWQgc2V0SXNWaXN1YWxseUlkbGUoYm9vbCk7
Ci0gICAgdm9pZCBzZXRWaWV3U3RhdGUoVmlld1N0YXRlOjpGbGFncywgYm9vbCB3YW50c0RpZFVw
ZGF0ZVZpZXdTdGF0ZSk7CisgICAgdm9pZCBzZXRWaWV3U3RhdGUoV2ViQ29yZTo6Vmlld1N0YXRl
OjpGbGFncywgYm9vbCB3YW50c0RpZFVwZGF0ZVZpZXdTdGF0ZSk7CiAgICAgdm9pZCB2YWxpZGF0
ZUNvbW1hbmQoY29uc3QgU3RyaW5nJiwgdWludDY0X3QpOwogICAgIHZvaWQgZXhlY3V0ZUVkaXRD
b21tYW5kKGNvbnN0IFN0cmluZyYpOwogCkBAIC05MTMsNiArOTA3LDkgQEAgcHJpdmF0ZToKICAg
ICBSdW5Mb29wOjpUaW1lcjxXZWJQYWdlPiBtX2RldGVybWluZVByaW1hcnlTbmFwc2hvdHRlZFBs
dWdJblRpbWVyOwogI2VuZGlmCiAKKyAgICAvLyBUaGUgbGF5ZXIgaG9zdGluZyBtb2RlLgorICAg
IExheWVySG9zdGluZ01vZGUgbV9sYXllckhvc3RpbmdNb2RlOworCiAjaWYgUExBVEZPUk0oTUFD
KQogICAgIGJvb2wgbV9wZGZQbHVnaW5FbmFibGVkOwogCkBAIC0xMDQ1LDcgKzEwNDIsNyBAQCBw
cml2YXRlOgogCiAgICAgYm9vbCBtX3VzZUFzeW5jU2Nyb2xsaW5nOwogCi0gICAgVmlld1N0YXRl
OjpGbGFncyBtX3ZpZXdTdGF0ZTsKKyAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIG1fdmll
d1N0YXRlOwogCiAgICAgVXNlckFjdGl2aXR5IG1fcHJvY2Vzc1N1cHByZXNzaW9uRGlzYWJsZWRC
eVdlYlByZWZlcmVuY2U7CiB9OwpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UubWVzc2FnZXMuaW4JKHJldmlzaW9uIDE2MTMxOSkKKysr
IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLm1lc3NhZ2VzLmluCSh3
b3JraW5nIGNvcHkpCkBAIC0yMyw2ICsyMyw3IEBACiBtZXNzYWdlcyAtPiBXZWJQYWdlIExlZ2Fj
eVJlY2VpdmVyIHsKICAgICBTZXRJbml0aWFsRm9jdXMoYm9vbCBmb3J3YXJkLCBib29sIGlzS2V5
Ym9hcmRFdmVudFZhbGlkLCBXZWJLaXQ6OldlYktleWJvYXJkRXZlbnQgZXZlbnQpCiAgICAgU2V0
Vmlld1N0YXRlKHVuc2lnbmVkIHZpZXdTdGF0ZSwgYm9vbCB3YW50c0RpZFVwZGF0ZVZpZXdTdGF0
ZSkKKyAgICBTZXRMYXllckhvc3RpbmdNb2RlKHVuc2lnbmVkIGxheWVySG9zdGluZ01vZGUpCiAK
ICAgICBTZXREcmF3c0JhY2tncm91bmQoYm9vbCBkcmF3c0JhY2tncm91bmQpCiAgICAgU2V0RHJh
d3NUcmFuc3BhcmVudEJhY2tncm91bmQoYm9vbCBkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCkK
SW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWEuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhLmgJKHJldmlzaW9u
IDE2MTMxOSkKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNyArNTUsNyBA
QCBwdWJsaWM6CiAgICAgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEoV2ViUGFnZSosIGNv
bnN0IFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMmKTsKICAgICB2aXJ0dWFsIH5UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYSgpOwogCi0gICAgdmlydHVhbCB2b2lkIHZpZXdTdGF0ZURpZENo
YW5nZShWaWV3U3RhdGU6OkZsYWdzIGNoYW5nZWQpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCB2aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncyBjaGFuZ2VkKSBP
VkVSUklERTsKIAogcHJpdmF0ZToKICAgICAvLyBEcmF3aW5nQXJlYQpAQCAtMTAyLDcgKzEwMiw3
IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHNldERldmljZVNjYWxlRmFjdG9yKGZsb2F0
KSBPVkVSUklERTsKICAgICB2b2lkIHN1c3BlbmRQYWludGluZygpOwogICAgIHZvaWQgcmVzdW1l
UGFpbnRpbmcoKTsKLSAgICB2b2lkIHNldExheWVySG9zdGluZ01vZGUoTGF5ZXJIb3N0aW5nTW9k
ZSk7CisgICAgdm9pZCBzZXRMYXllckhvc3RpbmdNb2RlKExheWVySG9zdGluZ01vZGUpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDb2xvclNwYWNlKGNvbnN0IENvbG9yU3BhY2VEYXRh
JikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRqdXN0VHJhbnNpZW50Wm9vbShkb3Vi
bGUgc2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2luKSBPVkVSUklERTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWEubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYS5tbQkocmV2aXNpb24gMTYxMzE5
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMzk3LDExICszOTcsNiBAQCB2
b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhOjp2aWV3CiAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgIHN1c3BlbmRQYWludGluZygpOwogICAgIH0KLQotI2lmIEhBVkUoTEFZRVJfSE9T
VElOR19JTl9XSU5ET1dfU0VSVkVSKQotICAgIGlmIChjaGFuZ2VkICYgVmlld1N0YXRlOjpJc0xh
eWVyV2luZG93U2VydmVySG9zdGVkKQotICAgICAgICBzZXRMYXllckhvc3RpbmdNb2RlKG1fd2Vi
UGFnZS0+bGF5ZXJIb3N0aW5nTW9kZSgpKTsKLSNlbmRpZgogfQogCiB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhOjpzdXNwZW5kUGFpbnRpbmcoKQo=
</data>
<flag name="review"
          id="244091"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>