<?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>129111</bug_id>
          
          <creation_ts>2014-02-20 10:54:29 -0800</creation_ts>
          <short_desc>Get rid of the unused &apos;immediate&apos; parameters from repaint related functions</short_desc>
          <delta_ts>2014-02-24 10:59:59 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Renata Hodovan">rhodovan.u-szeged</reporter>
          <assigned_to name="Renata Hodovan">rhodovan.u-szeged</assigned_to>
          <cc>bunhere</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>982895</commentid>
    <comment_count>0</comment_count>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2014-02-20 10:54:29 -0800</bug_when>
    <thetext>The &apos;immediate&apos; parameter is needlessly passed around, so it should be removed (as the fixme says it in WebCore::RenderView::repaintViewRectangle).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982899</commentid>
    <comment_count>1</comment_count>
      <attachid>224775</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2014-02-20 11:17:17 -0800</bug_when>
    <thetext>Created attachment 224775
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>982907</commentid>
    <comment_count>2</comment_count>
      <attachid>224775</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-02-20 11:28:50 -0800</bug_when>
    <thetext>Comment on attachment 224775
Proposed patch

Nice.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983012</commentid>
    <comment_count>3</comment_count>
      <attachid>224803</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2014-02-20 15:36:46 -0800</bug_when>
    <thetext>Created attachment 224803
Proposed patch

@simon.fraser: thank you for the review. Unfortunately, the mac and wk2 builds failed after you set the r+ flag. To make sure I don&apos;t mess up the build of any ports, I upload an updated patch again.
In the update, there were two &apos;non-trivial&apos; modifications. WebChromeClient::invalidateRootView() does depend on the immediate argument and ScrollView::scrollContents() calls it both ways. The other case is WebChromeClient::invalidateRootView() which is almost always called with immediate set to false, but ScrollView::paintOverhangAreas() and ScrollView::removePanScrollIcon() call it with true. In this patch I considered it as false and eliminated the related code. However, I&apos;m not familiar with these ports, so I&apos;d like to ask for a second round of review. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983890</commentid>
    <comment_count>4</comment_count>
      <attachid>225064</attachid>
    <who name="Renata Hodovan">rhodovan.u-szeged</who>
    <bug_when>2014-02-24 07:05:05 -0800</bug_when>
    <thetext>Created attachment 225064
Proposed patch

Updating WebCore.exp.in to fix the mac builds.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983949</commentid>
    <comment_count>5</comment_count>
      <attachid>225064</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-24 10:59:56 -0800</bug_when>
    <thetext>Comment on attachment 225064
Proposed patch

Clearing flags on attachment: 225064

Committed r164594: &lt;http://trac.webkit.org/changeset/164594&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983950</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-02-24 10:59:59 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224775</attachid>
            <date>2014-02-20 11:17:17 -0800</date>
            <delta_ts>2014-02-24 07:05:05 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-remove-immediate.patch</filename>
            <type>text/plain</type>
            <size>55668</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">RnJvbSAwMDQyMzA1MTQ4NmRjNmI3NmMyNTMxYWQ5ZTQzM2QxMDA4Yjc1MDEzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSZW5hdGEgSG9kb3ZhbiA8cmVuaUB3ZWJraXQub3JnPgpEYXRl
OiBUaHUsIDIwIEZlYiAyMDE0IDIwOjEwOjQ0ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gcmVtb3Zl
IGltbWVkaWF0ZQoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDY3ICsrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAgICAgIHwgIDYgKy0KIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmNwcCAgICAgICAgICAgICAgICAgICAgIHwgMTIgKystLQogU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArLQogU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCAgICAgICAgICAgICAgICAgfCAgNiArLQog
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr
LQogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAx
NCArKy0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCAgICAgICAgICAgICAgICAg
ICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oICAgICAgICAg
ICAgICAgfCAxMCArKy0tCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCAg
ICAgICAgICAgICB8IDI0ICsrKystLS0tCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmggICAgICAgICAgICAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmNwcCAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxvd1RocmVhZC5jcHAgICAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxvd1RocmVhZC5oICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgICAgICB8ICA2ICstCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaCAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwICB8ICA0ICstCiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaCAgICB8ICAyICstCiBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCAgICAgICAgICB8IDIwICsrKy0tLS0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCAgICAgICAgICAgIHwgIDYg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwICAgICAgICAgIHwg
IDggKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmggICAgICAgICAg
ICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgICAgICAg
ICAgICB8IDE1ICsrKy0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oICAg
ICAgICAgICAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VD
aHJvbWVDbGllbnQuaCB8ICAyICstCiBTb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICB8IDE3ICsrKysrKwogLi4uL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50RWZsLmNwcCAgfCAxMCArKy0tCiBTb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaCB8ICA4ICstLQogU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgfCAxNiArKysrKysKIC4uLi9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgIHwgIDggKy0tCiBTb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaCB8ICA2ICstCiBTb3Vy
Y2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrKysr
KwogLi4uL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgfCAx
MiArKy0tCiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCB8ICA2ICstCiBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICB8IDE3ICsrKysrKwogLi4uL3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdp
bkNFLmNwcCAgICAgfCAxMyArKy0tLQogLi4uL3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudFdpbkNFLmggICAgICAgfCAgNiArLQogMzggZmlsZXMgY2hhbmdlZCwgMjUyIGluc2VydGlv
bnMoKyksIDEyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzM2QxMy4uYmU2M2ZiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisyMDE0LTAyLTIwICBSZW5hdGEgSG9kb3ZhbiAg
PHJob2RvdmFuLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisgICAgICAgIAorICAgICAg
ICBHZXQgcmlkIG9mIHRoZSB1bnVzZWQgJ2ltbWVkaWF0ZScgcGFyYW1ldGVycyBmcm9tIHJlcGFp
bnQgcmVsYXRlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyOTExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFJlbW92aW5nIHRoZSAnaW1tZWRpYXRlJyBwYXJhbWV0ZXJzIGZyb20gcmVw
YWludCByZWxhdGVkIGZ1bmN0aW9ucyAtIGFjY29yaW5nCisgICAgICAgIHRvIHRoZSBGSVhNRSBp
biBSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSgpIC0gc2luY2UgdGhleSBoYXZlIG5v
IGVmZmVjdC4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXJlIG5lY2Vzc2FyeSBiZWNhdXNlIHRo
ZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZQorCisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0QWN0aXZlKToKKyAgICAgICAgKiBsb2FkZXIv
RW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2hyb21lOjppbnZhbGlkYXRlUm9vdFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lOjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpD
aHJvbWU6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwpOgorICAgICAgICAqIHBhZ2Uv
Q2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdl
L0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjp0aWxlZEJhY2tpbmdTdG9yZVBh
aW50RW5kKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZVZpZXc6OmludmFsaWRhdGVSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmll
dzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6
OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6
c2hvdWxkVXBkYXRlKToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBs
YXRmb3JtL0hvc3RXaW5kb3cuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzU2xvd1BhdGgpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUpOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlT3ZlcmhhbmdBcmVhcyk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxWaWV3OjphZGRQYW5TY3JvbGxJY29uKToKKyAgICAgICAgKFdlYkNvcmU6OlNj
cm9sbFZpZXc6OnJlbW92ZVBhblNjcm9sbEljb24pOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
Vmlldzo6cGxhdGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZSk6CisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpyZXBhaW50TGF5ZXJSZWN0c0ZvckltYWdlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGbG93VGhyZWFkOjpyZXBhaW50UmVjdGFuZ2xlSW5SZWdpb25zKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2V0RmlsdGVyQmFj
a2VuZE5lZWRzUmVwYWludGluZ0luUmVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uU2V0OjpyZXBhaW50Rmxvd1RocmVhZENv
bnRlbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0OjpyZXBhaW50VXNpbmdDb250YWluZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyT2JqZWN0OjpyZXBhaW50KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6cmVw
YWludFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnRT
bG93UmVwYWludE9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyUmVnaW9uOjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyUmVnaW9uOjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5nbGUpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1Jl
Y3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpmbHVzaEFjY3VtdWxhdGVk
UmVwYWludFJlZ2lvbik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50UmVj
dGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlclZpZXcuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VDaHJvbWVDbGllbnQu
aDoKKwogMjAxNC0wMi0yMCAgS3J6eXN6dG9mIEN6ZWNoICA8ay5jemVjaEBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBBWDogVXNlIGF1dG8gdG8gcmVkdWNlIHNvbWUgY29kZSBpbiBsb29wcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuY3BwCmluZGV4IDUzODliNTguLjNlMWUxOWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAKQEAgLTUyOCw3ICs1MjgsNyBAQCB2b2lkIEVsZW1lbnQ6OnNldEFjdGl2ZShib29sIGZs
YWcsIGJvb2wgcGF1c2UpCiAKICAgICAgICAgLy8gRG8gYW4gaW1tZWRpYXRlIHJlcGFpbnQuCiAg
ICAgICAgIGlmIChyZW5kZXJlcigpKQotICAgICAgICAgICAgcmVuZGVyZXIoKS0+cmVwYWludCh0
cnVlKTsKKyAgICAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFpbnQoKTsKIAogICAgICAgICAvLyBG
SVhNRTogQ29tZSB1cCB3aXRoIGEgbGVzcyByaWRpY3Vsb3VzIHdheSBvZiBkb2luZyB0aGlzLgog
I2lmZGVmIEhBVkVfRlVOQ19VU0xFRVAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9FbXB0eUNsaWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApp
bmRleCA5MzBhNzViLi5lOWU3NGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5o
CkBAIC0xMjYsOSArMTI2LDkgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRv
d1Jlc2l6ZXJSZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gSW50UmVjdCgpOyB9CiAKLSAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sKSBv
dmVycmlkZSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZp
ZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpIG92ZXJyaWRlIHsgfQotICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKSBvdmVy
cmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJl
Y3QmKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5k
Um9vdFZpZXcoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSBvdmVycmlkZSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0
JiwgY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQogICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50
UG9pbnQmKSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmNwcAppbmRleCAwZDQxNjlmLi5hNjkwZTNiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC03NywxOSArNzcsMTkgQEAgQ2hyb21lOjp+Q2hyb21l
KCkKICAgICBtX2NsaWVudC5jaHJvbWVEZXN0cm95ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWU6Omlu
dmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0
ZSkKK3ZvaWQgQ2hyb21lOjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRl
UmVjdCkKIHsKLSAgICBtX2NsaWVudC5pbnZhbGlkYXRlUm9vdFZpZXcodXBkYXRlUmVjdCwgaW1t
ZWRpYXRlKTsKKyAgICBtX2NsaWVudC5pbnZhbGlkYXRlUm9vdFZpZXcodXBkYXRlUmVjdCk7CiB9
CiAKLXZvaWQgQ2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lOjppbnZhbGlkYXRl
Q29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewotICAgIG1f
Y2xpZW50LmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHVwZGF0ZVJlY3QsIGltbWVkaWF0
ZSk7CisgICAgbV9jbGllbnQuaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcodXBkYXRlUmVj
dCk7CiB9CiAKLXZvaWQgQ2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNv
bnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWU6Omlu
dmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkK
IHsKLSAgICBtX2NsaWVudC5pbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKHVwZGF0ZVJl
Y3QsIGltbWVkaWF0ZSk7CisgICAgbV9jbGllbnQuaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Nj
cm9sbCh1cGRhdGVSZWN0KTsKIH0KIAogdm9pZCBDaHJvbWU6OnNjcm9sbChjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0
JiBjbGlwUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCmluZGV4IDljNDdkMjEuLmEyOTlkNGQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWUuaApAQCAtNjksOSArNjksOSBAQCBwdWJsaWM6CiAgICAgQ2hyb21lQ2xpZW50
JiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQogCiAgICAgLy8gSG9zdFdpbmRvdyBtZXRo
b2RzLgotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYs
IGJvb2wpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRS
b290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVj
dCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290
Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOwogICAgIHZp
cnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJ
bnRSZWN0Jikgb3ZlcnJpZGU7CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmly
dHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYgc2Nyb2xs
UG9pbnQpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVD
bGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKaW5kZXggNDM1MTk4
NS4uNjA0MzdlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCkBAIC0xNTYsOSArMTU2
LDkgQEAgcHVibGljOgogCiAgICAgLy8gTWV0aG9kcyB1c2VkIGJ5IEhvc3RXaW5kb3cuCiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxpZGF0aW9uKCkgeyByZXR1cm4gZmFs
c2U7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3Qm
LCBib29sIGltbWVkaWF0ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVu
dHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCBpbW1lZGlhdGUpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0
JiwgYm9vbCBpbW1lZGlhdGUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RW
aWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3Qg
SW50UmVjdCYpID0gMDsKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICB2aXJ0dWFs
IHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBvaW50JikgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lLmNwcAppbmRleCA0OTM1NjEwLi4xMjllMDYwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cApAQCAtOTY1LDcgKzk2NSw3IEBAIHZvaWQgRnJhbWU6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRF
bmQoY29uc3QgVmVjdG9yPEludFJlY3Q+JiBwYWludGVkQXJlYSkKICAgICB1bnNpZ25lZCBzaXpl
ID0gcGFpbnRlZEFyZWEuc2l6ZSgpOwogICAgIC8vIFJlcXVlc3QgcmVwYWludCBmcm9tIHRoZSBz
eXN0ZW0KICAgICBmb3IgKHVuc2lnbmVkIG4gPSAwOyBuIDwgc2l6ZTsgKytuKQotICAgICAgICBt
X3BhZ2UtPmNocm9tZSgpLmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KG1fdmlldy0+Y29u
dGVudHNUb1Jvb3RWaWV3KHBhaW50ZWRBcmVhW25dKSwgZmFsc2UpOworICAgICAgICBtX3BhZ2Ut
PmNocm9tZSgpLmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KG1fdmlldy0+Y29udGVudHNU
b1Jvb3RWaWV3KHBhaW50ZWRBcmVhW25dKSk7CiB9CiAKIEludFJlY3QgRnJhbWU6OnRpbGVkQmFj
a2luZ1N0b3JlQ29udGVudHNSZWN0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCAw
NzU4ZTI3Li40MTFjMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0zOTIsNyAr
MzkyLDcgQEAgdm9pZCBGcmFtZVZpZXc6OmludmFsaWRhdGVSZWN0KGNvbnN0IEludFJlY3QmIHJl
Y3QpCiB7CiAgICAgaWYgKCFwYXJlbnQoKSkgewogICAgICAgICBpZiAoSG9zdFdpbmRvdyogd2lu
ZG93ID0gaG9zdFdpbmRvdygpKQotICAgICAgICAgICAgd2luZG93LT5pbnZhbGlkYXRlQ29udGVu
dHNBbmRSb290VmlldyhyZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsKKyAgICAgICAgICAgIHdp
bmRvdy0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcocmVjdCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTE2ODcsNyArMTY4Nyw3IEBAIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxD
b250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0
CiAgICAgICAgIH0KICAgICAgICAgaWYgKGNsaXBzUmVwYWludHMoKSkKICAgICAgICAgICAgIHVw
ZGF0ZVJlY3QuaW50ZXJzZWN0KHJlY3RUb1Njcm9sbCk7Ci0gICAgICAgIGhvc3RXaW5kb3coKS0+
aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcodXBkYXRlUmVjdCwgZmFsc2UpOworICAgICAg
ICBob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHVwZGF0ZVJlY3Qp
OwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtMjA2NywxMSArMjA2NywxMSBAQCB2b2lk
IEZyYW1lVmlldzo6YWRkVHJhY2tlZFJlcGFpbnRSZWN0KGNvbnN0IEludFJlY3QmIHIpCiAgICAg
bV90cmFja2VkUmVwYWludFJlY3RzLmFwcGVuZChyZXBhaW50UmVjdCk7CiB9CiAKLXZvaWQgRnJh
bWVWaWV3OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiByLCBib29sIGlt
bWVkaWF0ZSkKK3ZvaWQgRnJhbWVWaWV3OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJ
bnRSZWN0JiByKQogewogICAgIEFTU0VSVCghZnJhbWUoKS5vd25lckVsZW1lbnQoKSk7CiAKLSAg
ICBpZiAoIXNob3VsZFVwZGF0ZShpbW1lZGlhdGUpKQorICAgIGlmICghc2hvdWxkVXBkYXRlKCkp
CiAgICAgICAgIHJldHVybjsKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQpAQCAtMjA4
MCw3ICsyMDgwLDcgQEAgdm9pZCBGcmFtZVZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNv
bnN0IEludFJlY3QmIHIsIGJvb2wgaW1tZWRpYXRlKQogICAgICAgICByZXR1cm47CiAgICAgfQog
I2VuZGlmCi0gICAgU2Nyb2xsVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUociwgaW1tZWRp
YXRlKTsKKyAgICBTY3JvbGxWaWV3OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZShyKTsKIH0KIAog
c3RhdGljIHVuc2lnbmVkIGNvdW50UmVuZGVyZWRDaGFyYWN0ZXJzSW5SZW5kZXJPYmplY3RXaXRo
VGhyZXNob2xkKGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIsIHVuc2lnbmVkIGNvdW50U29G
YXIsIHVuc2lnbmVkIHRocmVzaG9sZCkKQEAgLTI1MTcsOSArMjUxNyw5IEBAIHZvaWQgRnJhbWVW
aWV3OjpzZXRTaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVlbihib29sIHNob3VsZFVwZGF0ZVdoaWxl
T2Zmc2NyZWVuKQogICAgIG1fc2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW4gPSBzaG91bGRVcGRh
dGVXaGlsZU9mZnNjcmVlbjsKIH0KIAotYm9vbCBGcmFtZVZpZXc6OnNob3VsZFVwZGF0ZShib29s
IGltbWVkaWF0ZVJlcXVlc3RlZCkgY29uc3QKK2Jvb2wgRnJhbWVWaWV3OjpzaG91bGRVcGRhdGUo
KSBjb25zdAogewotICAgIGlmICghaW1tZWRpYXRlUmVxdWVzdGVkICYmIGlzT2Zmc2NyZWVuKCkg
JiYgIXNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuKCkpCisgICAgaWYgKGlzT2Zmc2NyZWVuKCkg
JiYgIXNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IDM3NzMyNDUu
LjQ0OGMwZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMjA4LDcgKzIwOCw3IEBAIHB1
YmxpYzoKIAogICAgIGJvb2wgc2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW4oKSBjb25zdDsKICAg
ICB2b2lkIHNldFNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuKGJvb2wpOwotICAgIGJvb2wgc2hv
dWxkVXBkYXRlKGJvb2wgPSBmYWxzZSkgY29uc3Q7CisgICAgYm9vbCBzaG91bGRVcGRhdGUoKSBj
b25zdDsKIAogICAgIHZvaWQgYWRqdXN0Vmlld1NpemUoKTsKICAgICAKQEAgLTUwMyw3ICs1MDMs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybVBvc3RMYXlvdXRUYXNrcygpOwogICAgIHZv
aWQgYXV0b1NpemVJZkVuYWJsZWQoKTsKIAotICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Q29udGVu
dFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiwgYm9vbCBpbW1lZGlhdGUpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCByZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0Jikgb3Zl
cnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNvbnRlbnRzUmVzaXplZCgpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCB2aXNpYmxlQ29udGVudHNSZXNpemVkKCkgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCB2b2lkIGFkZGVkT3JSZW1vdmVkU2Nyb2xsYmFyKCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93LmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Ib3N0V2luZG93LmgKaW5kZXggNTI3N2U3Ni4uYTc2NzQzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0hvc3RXaW5kb3cuaApAQCAtMzgsMTcgKzM4LDE3IEBAIHB1YmxpYzoKICAgICBI
b3N0V2luZG93KCkgeyB9CiAgICAgdmlydHVhbCB+SG9zdFdpbmRvdygpIHsgfQogCi0gICAgLy8g
UmVxdWVzdHMgdGhlIGhvc3QgaW52YWxpZGF0ZSB0aGUgcm9vdCB2aWV3LCBub3QgdGhlIGNvbnRl
bnRzLiBJZiBpbW1lZGlhdGUgaXMgdHJ1ZSBkbyBzbyBzeW5jaHJvbm91c2x5LCBvdGhlcndpc2Ug
YXN5bmMuCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0
JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOworICAgIC8vIFJlcXVlc3RzIHRoZSBo
b3N0IGludmFsaWRhdGUgdGhlIHJvb3Qgdmlldywgbm90IHRoZSBjb250ZW50cy4KKyAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpID0g
MDsKIAotICAgIC8vIFJlcXVlc3RzIHRoZSBob3N0IGludmFsaWRhdGUgdGhlIGNvbnRlbnRzIGFu
ZCB0aGUgcm9vdCB2aWV3LiBJZiBpbW1lZGlhdGUgaXMgdHJ1ZSBkbyBzbyBzeW5jaHJvbm91c2x5
LCBvdGhlcndpc2UgYXN5bmMuCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0Fu
ZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKSA9IDA7
CisgICAgLy8gUmVxdWVzdHMgdGhlIGhvc3QgaW52YWxpZGF0ZSB0aGUgY29udGVudHMgYW5kIHRo
ZSByb290IHZpZXcuCisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RW
aWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpID0gMDsKIAogICAgIC8vIFJlcXVlc3RzIHRo
ZSBob3N0IHNjcm9sbCBiYWNraW5nc3RvcmUgYnkgdGhlIHNwZWNpZmllZCBkZWx0YSwgcmVjdCB0
byBzY3JvbGwsIGFuZCBjbGlwIHJlY3QuCiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJ
bnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJ
bnRSZWN0JiBjbGlwUmVjdCkgPSAwOwogCiAgICAgLy8gUmVxdWVzdHMgdGhlIGhvc3QgaW52YWxp
ZGF0ZSB0aGUgY29udGVudHMsIG5vdCB0aGUgcm9vdCB2aWV3LiBUaGlzIGlzIHRoZSBzbG93IHBh
dGggZm9yIHNjcm9sbGluZy4KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9y
U2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAw
OworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0
IEludFJlY3QmIHVwZGF0ZVJlY3QpID0gMDsKIAogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JF
KQogICAgIC8vIFJlcXVlc3RzIHRoZSBob3N0IHRvIGRvIHRoZSBhY3R1YWwgc2Nyb2xsaW5nLiBU
aGlzIGlzIG9ubHkgdXNlZCBpbiBjb21iaW5hdGlvbiB3aXRoIGEgdGlsZWQgYmFja2luZyBzdG9y
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKaW5kZXggMjJkNjQ0Ni4uZjQw
Y2QwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAKQEAgLTczNSw3ICs3
MzUsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhKQogICAgIHVwZGF0ZVJlY3QuaW50ZXJzZWN0KHNjcm9sbFZpZXdSZWN0KTsKIAog
ICAgIC8vIEludmFsaWRhdGUgdGhlIHJvb3QgdmlldyAobm90IHRoZSBiYWNraW5nIHN0b3JlKS4K
LSAgICB3aW5kb3ctPmludmFsaWRhdGVSb290Vmlldyh1cGRhdGVSZWN0LCBmYWxzZSAvKmltbWVk
aWF0ZSovKTsKKyAgICB3aW5kb3ctPmludmFsaWRhdGVSb290Vmlldyh1cGRhdGVSZWN0KTsKIAog
ICAgIGlmIChtX2RyYXdQYW5TY3JvbGxJY29uKSB7CiAgICAgICAgIC8vIEZJWE1FOiB0aGUgcGFu
IGljb24gaXMgYnJva2VuIHdoZW4gYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgaXMgb24sIHNpbmNl
IGl0IHdpbGwgZHJhdyB1bmRlciB0aGUgY29tcG9zaXRpbmcgbGF5ZXJzLgpAQCAtNzQ0LDcgKzc0
NCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHMoY29uc3QgSW50U2l6ZSYgc2Ny
b2xsRGVsdGEpCiAgICAgICAgIEludFBvaW50IHBhbkljb25EaXJ0eVNxdWFyZUxvY2F0aW9uID0g
SW50UG9pbnQobV9wYW5TY3JvbGxJY29uUG9pbnQueCgpIC0gKHBhbkljb25EaXJ0eVNxdWFyZVNp
emVMZW5ndGggLyAyKSwgbV9wYW5TY3JvbGxJY29uUG9pbnQueSgpIC0gKHBhbkljb25EaXJ0eVNx
dWFyZVNpemVMZW5ndGggLyAyKSk7CiAgICAgICAgIEludFJlY3QgcGFuU2Nyb2xsSWNvbkRpcnR5
UmVjdCA9IEludFJlY3QocGFuSWNvbkRpcnR5U3F1YXJlTG9jYXRpb24sIEludFNpemUocGFuSWNv
bkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCwgcGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCkpOwog
ICAgICAgICBwYW5TY3JvbGxJY29uRGlydHlSZWN0LmludGVyc2VjdChjbGlwUmVjdCk7Ci0gICAg
ICAgIHdpbmRvdy0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcocGFuU2Nyb2xsSWNvbkRp
cnR5UmVjdCwgZmFsc2UgLyppbW1lZGlhdGUqLyk7CisgICAgICAgIHdpbmRvdy0+aW52YWxpZGF0
ZUNvbnRlbnRzQW5kUm9vdFZpZXcocGFuU2Nyb2xsSWNvbkRpcnR5UmVjdCk7CiAgICAgfQogCiAg
ICAgaWYgKGNhbkJsaXRPblNjcm9sbCgpKSB7IC8vIFRoZSBtYWluIGZyYW1lIGNhbiBqdXN0IGJs
aXQgdGhlIFdlYlZpZXcgd2luZG93CkBAIC03NjQsNyArNzY0LDcgQEAgdm9pZCBTY3JvbGxWaWV3
OjpzY3JvbGxDb250ZW50cyhjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICBmcmFtZVJl
Y3RzQ2hhbmdlZCgpOwogCiAgICAgLy8gTm93IGJsaXQgdGhlIGJhY2tpbmdzdG9yZSBpbnRvIHRo
ZSB3aW5kb3cgd2hpY2ggc2hvdWxkIGJlIHZlcnkgZmFzdC4KLSAgICB3aW5kb3ctPmludmFsaWRh
dGVSb290VmlldyhJbnRSZWN0KCksIHRydWUpOworICAgIHdpbmRvdy0+aW52YWxpZGF0ZVJvb3RW
aWV3KEludFJlY3QoKSk7CiB9CiAKIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0
UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Ny
b2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKQEAgLTc3NSw3ICs3NzUsNyBAQCBib29sIFNj
cm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVs
dGEsIGNvbnN0IEludFJlYwogCiB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzU2xvd1Bh
dGgoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkKIHsKLSAgICBob3N0V2luZG93KCktPmludmFs
aWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwodXBkYXRlUmVjdCwgZmFsc2UpOworICAgIGhvc3RX
aW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCh1cGRhdGVSZWN0KTsKIH0K
IAogSW50UG9pbnQgU2Nyb2xsVmlldzo6cm9vdFZpZXdUb0NvbnRlbnRzKGNvbnN0IEludFBvaW50
JiByb290Vmlld1BvaW50KSBjb25zdApAQCAtMTAzMSw3ICsxMDMxLDcgQEAgdm9pZCBTY3JvbGxW
aWV3Ojpwb3NpdGlvblNjcm9sbGJhckxheWVycygpCiAgICAgcG9zaXRpb25TY3JvbGxDb3JuZXJM
YXllcihsYXllckZvclNjcm9sbENvcm5lcigpLCBzY3JvbGxDb3JuZXJSZWN0KCkpOwogfQogCi12
b2lkIFNjcm9sbFZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHJl
Y3QsIGJvb2wgbm93KQordm9pZCBTY3JvbGxWaWV3OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZShj
b25zdCBJbnRSZWN0JiByZWN0KQogewogICAgIEludFJlY3QgcGFpbnRSZWN0ID0gcmVjdDsKICAg
ICBpZiAoY2xpcHNSZXBhaW50cygpICYmICFwYWludHNFbnRpcmVDb250ZW50cygpKQpAQCAtMTA0
MSwxMiArMTA0MSwxMiBAQCB2b2lkIFNjcm9sbFZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xl
KGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgbm93KQogCiAgICAgaWYgKHBsYXRmb3JtV2lkZ2V0
KCkpIHsKICAgICAgICAgbm90aWZ5UGFnZVRoYXRDb250ZW50QXJlYVdpbGxQYWludCgpOwotICAg
ICAgICBwbGF0Zm9ybVJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKHBhaW50UmVjdCwgbm93KTsKKyAg
ICAgICAgcGxhdGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShwYWludFJlY3QpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKEhvc3RXaW5kb3cqIHdpbmRvdyA9IGhvc3RXaW5k
b3coKSkKLSAgICAgICAgd2luZG93LT5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb250
ZW50c1RvV2luZG93KHBhaW50UmVjdCksIG5vdyAvKmltbWVkaWF0ZSovKTsKKyAgICAgICAgd2lu
ZG93LT5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb250ZW50c1RvV2luZG93KHBhaW50
UmVjdCkpOwogfQogCiBJbnRSZWN0IFNjcm9sbFZpZXc6OnNjcm9sbENvcm5lclJlY3QoKSBjb25z
dApAQCAtMTIzOCw5ICsxMjM4LDkgQEAgdm9pZCBTY3JvbGxWaWV3Ojp1cGRhdGVPdmVyaGFuZ0Fy
ZWFzKCkKICAgICBJbnRSZWN0IHZlcnRpY2FsT3ZlcmhhbmdSZWN0OwogICAgIGNhbGN1bGF0ZU92
ZXJoYW5nQXJlYXNGb3JQYWludGluZyhob3Jpem9udGFsT3ZlcmhhbmdSZWN0LCB2ZXJ0aWNhbE92
ZXJoYW5nUmVjdCk7CiAgICAgaWYgKCFob3Jpem9udGFsT3ZlcmhhbmdSZWN0LmlzRW1wdHkoKSkK
LSAgICAgICAgd2luZG93LT5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhob3Jpem9udGFs
T3ZlcmhhbmdSZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsKKyAgICAgICAgd2luZG93LT5pbnZh
bGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhob3Jpem9udGFsT3ZlcmhhbmdSZWN0KTsKICAgICBp
ZiAoIXZlcnRpY2FsT3ZlcmhhbmdSZWN0LmlzRW1wdHkoKSkKLSAgICAgICAgd2luZG93LT5pbnZh
bGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh2ZXJ0aWNhbE92ZXJoYW5nUmVjdCwgZmFsc2UgLypp
bW1lZGlhdGUqLyk7CisgICAgICAgIHdpbmRvdy0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZp
ZXcodmVydGljYWxPdmVyaGFuZ1JlY3QpOwogfQogCiB2b2lkIFNjcm9sbFZpZXc6OnBhaW50T3Zl
cmhhbmdBcmVhcyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGhvcml6
b250YWxPdmVyaGFuZ1JlY3QsIGNvbnN0IEludFJlY3QmIHZlcnRpY2FsT3ZlcmhhbmdSZWN0LCBj
b25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpCkBAIC0xMzgzLDcgKzEzODMsNyBAQCB2b2lkIFNjcm9s
bFZpZXc6OmFkZFBhblNjcm9sbEljb24oY29uc3QgSW50UG9pbnQmIGljb25Qb3NpdGlvbikKICAg
ICAgICAgcmV0dXJuOwogICAgIG1fZHJhd1BhblNjcm9sbEljb24gPSB0cnVlOyAgICAKICAgICBt
X3BhblNjcm9sbEljb25Qb2ludCA9IEludFBvaW50KGljb25Qb3NpdGlvbi54KCkgLSBwYW5JY29u
U2l6ZUxlbmd0aCAvIDIgLCBpY29uUG9zaXRpb24ueSgpIC0gcGFuSWNvblNpemVMZW5ndGggLyAy
KSA7Ci0gICAgd2luZG93LT5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290VmlldyhJbnRSZWN0KG1f
cGFuU2Nyb2xsSWNvblBvaW50LCBJbnRTaXplKHBhbkljb25TaXplTGVuZ3RoLCBwYW5JY29uU2l6
ZUxlbmd0aCkpLCB0cnVlIC8qaW1tZWRpYXRlKi8pOworICAgIHdpbmRvdy0+aW52YWxpZGF0ZUNv
bnRlbnRzQW5kUm9vdFZpZXcoSW50UmVjdChtX3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShw
YW5JY29uU2l6ZUxlbmd0aCwgcGFuSWNvblNpemVMZW5ndGgpKSk7CiB9CiAKIHZvaWQgU2Nyb2xs
Vmlldzo6cmVtb3ZlUGFuU2Nyb2xsSWNvbigpCkBAIC0xMzkyLDcgKzEzOTIsNyBAQCB2b2lkIFNj
cm9sbFZpZXc6OnJlbW92ZVBhblNjcm9sbEljb24oKQogICAgIGlmICghd2luZG93KQogICAgICAg
ICByZXR1cm47CiAgICAgbV9kcmF3UGFuU2Nyb2xsSWNvbiA9IGZhbHNlOyAKLSAgICB3aW5kb3ct
PmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KEludFJlY3QobV9wYW5TY3JvbGxJY29uUG9p
bnQsIEludFNpemUocGFuSWNvblNpemVMZW5ndGgsIHBhbkljb25TaXplTGVuZ3RoKSksIHRydWUg
LyppbW1lZGlhdGUqLyk7CisgICAgd2luZG93LT5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmll
dyhJbnRSZWN0KG1fcGFuU2Nyb2xsSWNvblBvaW50LCBJbnRTaXplKHBhbkljb25TaXplTGVuZ3Ro
LCBwYW5JY29uU2l6ZUxlbmd0aCkpKTsKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpzZXRTY3JvbGxP
cmlnaW4oY29uc3QgSW50UG9pbnQmIG9yaWdpbiwgYm9vbCB1cGRhdGVQb3NpdGlvbkF0QWxsLCBi
b29sIHVwZGF0ZVBvc2l0aW9uU3luY2hyb25vdXNseSkKQEAgLTE0OTQsNyArMTQ5NCw3IEBAIGJv
b2wgU2Nyb2xsVmlldzo6cGxhdGZvcm1TY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFu
dWxhcml0eSkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9y
bVJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmLCBib29sIC8qbm93Ki8pCit2
b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50
UmVjdCYpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAppbmRleCBkMDI3
NzE4Li5kNzg5ZmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oCkBAIC0zNDEs
NyArMzQxLDcgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIFNjcm9sbFZpZXcoKTsKIAotICAg
IHZpcnR1YWwgdm9pZCByZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiwgYm9v
bCBub3cgPSBmYWxzZSk7CisgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRDb250ZW50UmVjdGFuZ2xl
KGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFpbnRDb250ZW50cyhHcmFwaGlj
c0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBkYW1hZ2VSZWN0KSA9IDA7CiAKICAgICB2aXJ0dWFs
IHZvaWQgcGFpbnRPdmVyaGFuZ0FyZWFzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3Qm
IGhvcml6b250YWxPdmVyaGFuZ0FyZWEsIGNvbnN0IEludFJlY3QmIHZlcnRpY2FsT3ZlcmhhbmdB
cmVhLCBjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3QpOwpAQCAtNDM3LDcgKzQzNyw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBwbGF0Zm9ybVNldFNjcm9sbFBvc2l0aW9uKGNvbnN0IEludFBvaW50Jik7
CiAgICAgYm9vbCBwbGF0Zm9ybVNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFy
aXR5KTsKICAgICB2b2lkIHBsYXRmb3JtU2V0U2Nyb2xsYmFyc1N1cHByZXNzZWQoYm9vbCByZXBh
aW50T25VbnN1cHByZXNzKTsKLSAgICB2b2lkIHBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5n
bGUoY29uc3QgSW50UmVjdCYsIGJvb2wgbm93KTsKKyAgICB2b2lkIHBsYXRmb3JtUmVwYWludENv
bnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYpOwogICAgIGJvb2wgcGxhdGZvcm1Jc09mZnNj
cmVlbigpIGNvbnN0OwogICAgIHZvaWQgcGxhdGZvcm1TZXRTY3JvbGxiYXJPdmVybGF5U3R5bGUo
U2Nyb2xsYmFyT3ZlcmxheVN0eWxlKTsKICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAppbmRleCBjYWY5OTQ2Li43MWM2Y2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcApAQCAtMTYxOCw3ICsxNjE4LDcgQEAgYm9vbCBSZW5kZXJCb3g6OnJlcGFp
bnRMYXllclJlY3RzRm9ySW1hZ2UoV3JhcHBlZEltYWdlUHRyIGltYWdlLCBjb25zdCBGaWxsTGF5
ZXIKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGxheWVy
UmVuZGVyZXItPnJlcGFpbnRSZWN0YW5nbGUocmVjdFRvUmVwYWludCwgZmFsc2UsIHNob3VsZENs
aXBUb0xheWVyKTsKKyAgICAgICAgICAgIGxheWVyUmVuZGVyZXItPnJlcGFpbnRSZWN0YW5nbGUo
cmVjdFRvUmVwYWludCwgc2hvdWxkQ2xpcFRvTGF5ZXIpOwogICAgICAgICAgICAgaWYgKGdlb21l
dHJ5LmRlc3RSZWN0KCkgPT0gcmVuZGVyZXJSZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5jcHAKaW5kZXggYzY3NmY1NC4uZmQ3NTVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcApAQCAtNDA2LDcgKzQwNiw3IEBAIGJvb2wgUmVu
ZGVyRmxvd1RocmVhZDo6c2hvdWxkUmVwYWludChjb25zdCBMYXlvdXRSZWN0JiByKSBjb25zdAog
ICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnJlcGFpbnRSZWN0
YW5nbGVJblJlZ2lvbnMoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRp
YXRlKSBjb25zdAordm9pZCBSZW5kZXJGbG93VGhyZWFkOjpyZXBhaW50UmVjdGFuZ2xlSW5SZWdp
b25zKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0KSBjb25zdAogewogICAgIGlmICghc2hv
dWxkUmVwYWludChyZXBhaW50UmVjdCkgfHwgIWhhc1ZhbGlkUmVnaW9uSW5mbygpKQogICAgICAg
ICByZXR1cm47CkBAIC00MTgsNyArNDE4LDcgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpyZXBh
aW50UmVjdGFuZ2xlSW5SZWdpb25zKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LAogICAg
IEN1cnJlbnRSZW5kZXJGbG93VGhyZWFkRGlzYWJsZXIgZGlzYWJsZXIoJnZpZXcoKSk7CiAgICAg
CiAgICAgZm9yIChhdXRvJiByZWdpb24gOiBtX3JlZ2lvbkxpc3QpCi0gICAgICAgIHJlZ2lvbi0+
cmVwYWludEZsb3dUaHJlYWRDb250ZW50KHJlcGFpbnRSZWN0LCBpbW1lZGlhdGUpOworICAgICAg
ICByZWdpb24tPnJlcGFpbnRGbG93VGhyZWFkQ29udGVudChyZXBhaW50UmVjdCk7CiB9CiAKIFJl
bmRlclJlZ2lvbiogUmVuZGVyRmxvd1RocmVhZDo6cmVnaW9uQXRCbG9ja09mZnNldChjb25zdCBS
ZW5kZXJCb3gqIGNsYW1wQm94LCBMYXlvdXRVbml0IG9mZnNldCwgYm9vbCBleHRlbmRMYXN0UmVn
aW9uLCBSZWdpb25BdXRvR2VuZXJhdGlvblBvbGljeSBhdXRvR2VuZXJhdGlvblBvbGljeSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IGJkMmEwYTIu
LmFhNTZjMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93
VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQu
aApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRD
aGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJy
aWRlOwogCi0gICAgdm9pZCByZXBhaW50UmVjdGFuZ2xlSW5SZWdpb25zKGNvbnN0IExheW91dFJl
Y3QmLCBib29sIGltbWVkaWF0ZSkgY29uc3Q7CisgICAgdm9pZCByZXBhaW50UmVjdGFuZ2xlSW5S
ZWdpb25zKGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKICAgICAKICAgICBMYXlvdXRQb2ludCBh
ZGp1c3RlZFBvc2l0aW9uUmVsYXRpdmVUb09mZnNldFBhcmVudChjb25zdCBSZW5kZXJCb3hNb2Rl
bE9iamVjdCYsIGNvbnN0IExheW91dFBvaW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXIuY3BwCmluZGV4IGEwZGIyY2IuLjgwZGNhNzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMTQ0NCw3ICsxNDQ0LDcgQEAgUmVuZGVyTGF5
ZXIqIFJlbmRlckxheWVyOjplbmNsb3NpbmdGaWx0ZXJSZXBhaW50TGF5ZXIoKSBjb25zdAogICAg
IHJldHVybiAwOwogfQogCi12b2lkIFJlbmRlckxheWVyOjpzZXRGaWx0ZXJCYWNrZW5kTmVlZHNS
ZXBhaW50aW5nSW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHJlY3QsIGJvb2wgaW1tZWRpYXRlKQor
dm9pZCBSZW5kZXJMYXllcjo6c2V0RmlsdGVyQmFja2VuZE5lZWRzUmVwYWludGluZ0luUmVjdChj
b25zdCBMYXlvdXRSZWN0JiByZWN0KQogewogICAgIGlmIChyZWN0LmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtMTQ3MSwxMiArMTQ3MSwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRG
aWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHJlY3Qs
CiAgICAgfQogCiAgICAgaWYgKHBhcmVudExheWVyLT5wYWludHNXaXRoRmlsdGVycygpKSB7Ci0g
ICAgICAgIHBhcmVudExheWVyLT5zZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0
KHBhcmVudExheWVyUmVjdCwgaW1tZWRpYXRlKTsKKyAgICAgICAgcGFyZW50TGF5ZXItPnNldEZp
bHRlckJhY2tlbmROZWVkc1JlcGFpbnRpbmdJblJlY3QocGFyZW50TGF5ZXJSZWN0KTsKICAgICAg
ICAgcmV0dXJuOyAgICAgICAgCiAgICAgfQogICAgIAogICAgIGlmIChwYXJlbnRMYXllci0+aXNS
b290TGF5ZXIoKSkgewotICAgICAgICB0b1JlbmRlclZpZXcocGFyZW50TGF5ZXItPnJlbmRlcmVy
KCkpLnJlcGFpbnRWaWV3UmVjdGFuZ2xlKHBhcmVudExheWVyUmVjdCwgaW1tZWRpYXRlKTsKKyAg
ICAgICAgdG9SZW5kZXJWaWV3KHBhcmVudExheWVyLT5yZW5kZXJlcigpKS5yZXBhaW50Vmlld1Jl
Y3RhbmdsZShwYXJlbnRMYXllclJlY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRleCAzMzliOWQ4Li5mNzkxZTU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaApAQCAtNjA4LDcgKzYwOCw3
IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgUmVuZGVyTGF5ZXIqIGVu
Y2xvc2luZ0ZpbHRlckxheWVyKEluY2x1ZGVTZWxmT3JOb3QgPSBJbmNsdWRlU2VsZikgY29uc3Q7
CiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0ZpbHRlclJlcGFpbnRMYXllcigpIGNvbnN0Owot
ICAgIHZvaWQgc2V0RmlsdGVyQmFja2VuZE5lZWRzUmVwYWludGluZ0luUmVjdChjb25zdCBMYXlv
dXRSZWN0JiwgYm9vbCBpbW1lZGlhdGUpOworICAgIHZvaWQgc2V0RmlsdGVyQmFja2VuZE5lZWRz
UmVwYWludGluZ0luUmVjdChjb25zdCBMYXlvdXRSZWN0Jik7CiAgICAgYm9vbCBoYXNBbmNlc3Rv
cldpdGhGaWx0ZXJPdXRzZXRzKCkgY29uc3Q7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKaW5kZXggMzBkYjMwOC4uNGM0
OWRkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1
bW5TZXQuY3BwCkBAIC00NzksNyArNDc5LDcgQEAgdm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6
cGFpbnRDb2x1bW5SdWxlcyhQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG8KICAg
ICB9CiB9CiAKLXZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnJlcGFpbnRGbG93VGhyZWFkQ29u
dGVudChjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lk
IFJlbmRlck11bHRpQ29sdW1uU2V0OjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnQoY29uc3QgTGF5
b3V0UmVjdCYgcmVwYWludFJlY3QpCiB7CiAgICAgLy8gRmlndXJlIG91dCB0aGUgc3RhcnQgYW5k
IGVuZCBjb2x1bW5zIGFuZCBvbmx5IGNoZWNrIHdpdGhpbiB0aGF0IHJhbmdlIHNvIHRoYXQgd2Ug
ZG9uJ3Qgd2FsayB0aGUKICAgICAvLyBlbnRpcmUgY29sdW1uIHNldC4gUHV0IHRoZSByZXBhaW50
IHJlY3QgaW50byBmbG93IHRocmVhZCBjb29yZGluYXRlcyBieSBmbGlwcGluZyBpdCBmaXJzdC4K
QEAgLTUxMyw3ICs1MTMsNyBAQCB2b2lkIFJlbmRlck11bHRpQ29sdW1uU2V0OjpyZXBhaW50Rmxv
d1RocmVhZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlYwogICAgICAgICBMYXlv
dXRSZWN0IGZsb3dUaHJlYWRPdmVyZmxvd1BvcnRpb24gPSBmbG93VGhyZWFkUG9ydGlvbk92ZXJm
bG93UmVjdChmbG93VGhyZWFkUG9ydGlvbiwgaSwgY29sQ291bnQsIGNvbEdhcCk7CiAKICAgICAg
ICAgLy8gRG8gYSByZXBhaW50IGZvciB0aGlzIHNwZWNpZmljIGNvbHVtbi4KLSAgICAgICAgcmVw
YWludEZsb3dUaHJlYWRDb250ZW50UmVjdGFuZ2xlKHJlcGFpbnRSZWN0LCBpbW1lZGlhdGUsIGZs
b3dUaHJlYWRQb3J0aW9uLCBjb2xSZWN0LmxvY2F0aW9uKCksICZmbG93VGhyZWFkT3ZlcmZsb3dQ
b3J0aW9uKTsKKyAgICAgICAgcmVwYWludEZsb3dUaHJlYWRDb250ZW50UmVjdGFuZ2xlKHJlcGFp
bnRSZWN0LCBmbG93VGhyZWFkUG9ydGlvbiwgY29sUmVjdC5sb2NhdGlvbigpLCAmZmxvd1RocmVh
ZE92ZXJmbG93UG9ydGlvbik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCmluZGV4IDQwMWI1YmMuLjlhNDkzZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCkBAIC05
OCw3ICs5OCw3IEBAIHByaXZhdGU6CiAgICAgLy8gRklYTUU6IFRoaXMgd2lsbCBjaGFuZ2Ugb25j
ZSB3ZSBoYXZlIGNvbHVtbiBzZXRzIGNvbnN0cmFpbmVkIGJ5IGVuY2xvc2luZyBwYWdlcywgZXRj
LgogICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBsb2dpY2FsSGVpZ2h0T2ZBbGxGbG93VGhyZWFkQ29u
dGVudCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1fY29tcHV0ZWRDb2x1bW5IZWlnaHQ7IH0K
ICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludEZsb3dUaHJlYWRDb250ZW50KGNvbnN0IExh
eW91dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGltbWVkaWF0ZSkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudChjb25zdCBMYXlvdXRSZWN0JiByZXBh
aW50UmVjdCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdExheWVyRnJhZ21l
bnRzKExheWVyRnJhZ21lbnRzJiwgY29uc3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZGluZ0JveCwg
Y29uc3QgTGF5b3V0UmVjdCYgZGlydHlSZWN0KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCAyOTM5ZWI0Li4xNTE3NWMxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMTIyNSwyMSArMTIyNSwy
MSBAQCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJl
cGFpbnQoKSBjb25zdAogICAgIHJldHVybiByZXBhaW50Q29udGFpbmVyOwogfQogCi12b2lkIFJl
bmRlck9iamVjdDo6cmVwYWludFVzaW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IExheW91dFJlY3QmIHIsIGJvb2wgaW1tZWRp
YXRlLCBib29sIHNob3VsZENsaXBUb0xheWVyKSBjb25zdAordm9pZCBSZW5kZXJPYmplY3Q6OnJl
cGFpbnRVc2luZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50
Q29udGFpbmVyLCBjb25zdCBMYXlvdXRSZWN0JiByLCBib29sIHNob3VsZENsaXBUb0xheWVyKSBj
b25zdAogewogICAgIGlmICghcmVwYWludENvbnRhaW5lcikgewotICAgICAgICB2aWV3KCkucmVw
YWludFZpZXdSZWN0YW5nbGUociwgaW1tZWRpYXRlKTsKKyAgICAgICAgdmlldygpLnJlcGFpbnRW
aWV3UmVjdGFuZ2xlKHIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHJlcGFp
bnRDb250YWluZXItPmlzUmVuZGVyRmxvd1RocmVhZCgpKSB7Ci0gICAgICAgIHRvUmVuZGVyRmxv
d1RocmVhZChyZXBhaW50Q29udGFpbmVyKS0+cmVwYWludFJlY3RhbmdsZUluUmVnaW9ucyhyLCBp
bW1lZGlhdGUpOworICAgICAgICB0b1JlbmRlckZsb3dUaHJlYWQocmVwYWludENvbnRhaW5lcikt
PnJlcGFpbnRSZWN0YW5nbGVJblJlZ2lvbnMocik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAgICAgaWYgKHJlcGFpbnRDb250YWluZXItPmhhc0Zp
bHRlcigpICYmIHJlcGFpbnRDb250YWluZXItPmxheWVyKCkgJiYgcmVwYWludENvbnRhaW5lci0+
bGF5ZXIoKS0+cmVxdWlyZXNGdWxsTGF5ZXJJbWFnZUZvckZpbHRlcnMoKSkgewotICAgICAgICBy
ZXBhaW50Q29udGFpbmVyLT5sYXllcigpLT5zZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5n
SW5SZWN0KHIsIGltbWVkaWF0ZSk7CisgICAgICAgIHJlcGFpbnRDb250YWluZXItPmxheWVyKCkt
PnNldEZpbHRlckJhY2tlbmROZWVkc1JlcGFpbnRpbmdJblJlY3Qocik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAjZW5kaWYKQEAgLTEyNDksNyArMTI0OSw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0
OjpyZXBhaW50VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVw
YWludENvCiAgICAgICAgIEFTU0VSVChyZXBhaW50Q29udGFpbmVyID09ICZ2KTsKICAgICAgICAg
Ym9vbCB2aWV3SGFzQ29tcG9zaXRlZExheWVyID0gdi5oYXNMYXllcigpICYmIHYubGF5ZXIoKS0+
aXNDb21wb3NpdGVkKCk7CiAgICAgICAgIGlmICghdmlld0hhc0NvbXBvc2l0ZWRMYXllciB8fCB2
LmxheWVyKCktPmJhY2tpbmcoKS0+cGFpbnRzSW50b1dpbmRvdygpKSB7Ci0gICAgICAgICAgICB2
LnJlcGFpbnRWaWV3UmVjdGFuZ2xlKHZpZXdIYXNDb21wb3NpdGVkTGF5ZXIgJiYgdi5sYXllcigp
LT50cmFuc2Zvcm0oKSA/IHYubGF5ZXIoKS0+dHJhbnNmb3JtKCktPm1hcFJlY3QocikgOiByLCBp
bW1lZGlhdGUpOworICAgICAgICAgICAgdi5yZXBhaW50Vmlld1JlY3RhbmdsZSh2aWV3SGFzQ29t
cG9zaXRlZExheWVyICYmIHYubGF5ZXIoKS0+dHJhbnNmb3JtKCkgPyB2LmxheWVyKCktPnRyYW5z
Zm9ybSgpLT5tYXBSZWN0KHIpIDogcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0K
ICAgICB9CkBAIC0xMjYwLDcgKzEyNjAsNyBAQCB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFVz
aW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDbwogICAg
IH0KIH0KIAotdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoYm9vbCBpbW1lZGlhdGUpIGNvbnN0
Cit2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludCgpIGNvbnN0CiB7CiAgICAgLy8gRG9uJ3QgcmVw
YWludCBpZiB3ZSdyZSB1bnJvb3RlZCAobm90ZSB0aGF0IHZpZXcoKSBzdGlsbCByZXR1cm5zIHRo
ZSB2aWV3IHdoZW4gdW5yb290ZWQpCiAgICAgUmVuZGVyVmlldyogdmlldzsKQEAgLTEyNzEsMTAg
KzEyNzEsMTAgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoYm9vbCBpbW1lZGlhdGUpIGNv
bnN0CiAgICAgICAgIHJldHVybjsgLy8gRG9uJ3QgcmVwYWludCBpZiB3ZSdyZSBwcmludGluZy4K
IAogICAgIFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBjb250YWlu
ZXJGb3JSZXBhaW50KCk7Ci0gICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWlu
ZXIgPyByZXBhaW50Q29udGFpbmVyIDogdmlldywgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFp
bnQocmVwYWludENvbnRhaW5lciksIGltbWVkaWF0ZSk7CisgICAgcmVwYWludFVzaW5nQ29udGFp
bmVyKHJlcGFpbnRDb250YWluZXIgPyByZXBhaW50Q29udGFpbmVyIDogdmlldywgY2xpcHBlZE92
ZXJmbG93UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lcikpOwogfQogCi12b2lkIFJlbmRl
ck9iamVjdDo6cmVwYWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByLCBib29sIGltbWVk
aWF0ZSwgYm9vbCBzaG91bGRDbGlwVG9MYXllcikgY29uc3QKK3ZvaWQgUmVuZGVyT2JqZWN0Ojpy
ZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHIsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5
ZXIpIGNvbnN0CiB7CiAgICAgLy8gRG9uJ3QgcmVwYWludCBpZiB3ZSdyZSB1bnJvb3RlZCAobm90
ZSB0aGF0IHZpZXcoKSBzdGlsbCByZXR1cm5zIHRoZSB2aWV3IHdoZW4gdW5yb290ZWQpCiAgICAg
UmVuZGVyVmlldyogdmlldzsKQEAgLTEyOTIsNyArMTI5Miw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0
OjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHIsIGJvb2wgaW1tZWRpYXRlLCBi
b29sIHNoCiAKICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0g
Y29udGFpbmVyRm9yUmVwYWludCgpOwogICAgIGNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBhaW50
Q29udGFpbmVyLCBkaXJ0eVJlY3QpOwotICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50
Q29udGFpbmVyID8gcmVwYWludENvbnRhaW5lciA6IHZpZXcsIGRpcnR5UmVjdCwgaW1tZWRpYXRl
LCBzaG91bGRDbGlwVG9MYXllcik7CisgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRD
b250YWluZXIgPyByZXBhaW50Q29udGFpbmVyIDogdmlldywgZGlydHlSZWN0LCBzaG91bGRDbGlw
VG9MYXllcik7CiB9CiAKIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50U2xvd1JlcGFpbnRPYmpl
Y3QoKSBjb25zdApAQCAtMTMyMSw3ICsxMzIxLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFp
bnRTbG93UmVwYWludE9iamVjdCgpIGNvbnN0CiAgICAgfSBlbHNlCiAgICAgICAgIHJlcGFpbnRS
ZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChy
ZXBhaW50Q29udGFpbmVyKSk7CiAKLSAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENv
bnRhaW5lciwgcmVwYWludFJlY3QsIGZhbHNlLCBzaG91bGRDbGlwVG9MYXllcik7CisgICAgcmVw
YWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBzaG91bGRD
bGlwVG9MYXllcik7CiB9CiAKIEludFJlY3QgUmVuZGVyT2JqZWN0OjpwaXhlbFNuYXBwZWRBYnNv
bHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3QoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCmluZGV4IDBkZjEwNTEuLjM2YWE4MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTcyMywxNCArNzIzLDE0IEBAIHB1YmxpYzoKICAgICBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBjb250YWluZXJGb3JSZXBhaW50KCkgY29uc3Q7CiAgICAg
Ly8gQWN0dWFsbHkgZG8gdGhlIHJlcGFpbnQgb2YgcmVjdCByIGZvciB0aGlzIG9iamVjdCB3aGlj
aCBoYXMgYmVlbiBjb21wdXRlZCBpbiB0aGUgY29vcmRpbmF0ZSBzcGFjZQogICAgIC8vIG9mIHJl
cGFpbnRDb250YWluZXIuIElmIHJlcGFpbnRDb250YWluZXIgaXMgMCwgcmVwYWludCB2aWEgdGhl
IHZpZXcuCi0gICAgdm9pZCByZXBhaW50VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYsIGJvb2wgaW1t
ZWRpYXRlID0gZmFsc2UsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIgPSB0cnVlKSBjb25zdDsKKyAg
ICB2b2lkIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0
KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCBzaG91bGRDbGlwVG9M
YXllciA9IHRydWUpIGNvbnN0OwogICAgIAogICAgIC8vIFJlcGFpbnQgdGhlIGVudGlyZSBvYmpl
Y3QuICBDYWxsZWQgd2hlbiwgZS5nLiwgdGhlIGNvbG9yIG9mIGEgYm9yZGVyIGNoYW5nZXMsIG9y
IHdoZW4gYSBib3JkZXIKICAgICAvLyBzdHlsZSBjaGFuZ2VzLgotICAgIHZvaWQgcmVwYWludChi
b29sIGltbWVkaWF0ZSA9IGZhbHNlKSBjb25zdDsKKyAgICB2b2lkIHJlcGFpbnQoKSBjb25zdDsK
IAogICAgIC8vIFJlcGFpbnQgYSBzcGVjaWZpYyBzdWJyZWN0YW5nbGUgd2l0aGluIGEgZ2l2ZW4g
b2JqZWN0LiAgVGhlIHJlY3QgfHJ8IGlzIGluIHRoZSBvYmplY3QncyBjb29yZGluYXRlIHNwYWNl
LgotICAgIHZvaWQgcmVwYWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCBpbW1l
ZGlhdGUgPSBmYWxzZSwgYm9vbCBzaG91bGRDbGlwVG9MYXllciA9IHRydWUpIGNvbnN0OworICAg
IHZvaWQgcmVwYWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCBzaG91bGRDbGlw
VG9MYXllciA9IHRydWUpIGNvbnN0OwogCiAgICAgLy8gUmVwYWludCBhIHNsb3cgcmVwYWludCBv
YmplY3QsIHdoaWNoLCBhdCB0aGlzIHRpbWUsIG1lYW5zIHdlIGFyZSByZXBhaW50aW5nIGFuIG9i
amVjdCB3aXRoIGJhY2tncm91bmQtYXR0YWNobWVudDpmaXhlZC4KICAgICB2b2lkIHJlcGFpbnRT
bG93UmVwYWludE9iamVjdCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
UmVnaW9uLmNwcAppbmRleCBkMmNmZjNjLi4xYjQ2MWI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyUmVnaW9uLmNwcApAQCAtMjYxLDEyICsyNjEsMTIgQEAgdm9pZCBSZW5kZXJS
ZWdpb246OmNvbXB1dGVPdmVyZmxvd0Zyb21GbG93VGhyZWFkKCkKICAgICB1cGRhdGVTY3JvbGxJ
bmZvQWZ0ZXJMYXlvdXQoKTsKIH0KIAotdm9pZCBSZW5kZXJSZWdpb246OnJlcGFpbnRGbG93VGhy
ZWFkQ29udGVudChjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUp
Cit2b2lkIFJlbmRlclJlZ2lvbjo6cmVwYWludEZsb3dUaHJlYWRDb250ZW50KGNvbnN0IExheW91
dFJlY3QmIHJlcGFpbnRSZWN0KQogewotICAgIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3Rh
bmdsZShyZXBhaW50UmVjdCwgaW1tZWRpYXRlLCBmbG93VGhyZWFkUG9ydGlvblJlY3QoKSwgY29u
dGVudEJveFJlY3QoKS5sb2NhdGlvbigpKTsKKyAgICByZXBhaW50Rmxvd1RocmVhZENvbnRlbnRS
ZWN0YW5nbGUocmVwYWludFJlY3QsIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCgpLCBjb250ZW50Qm94
UmVjdCgpLmxvY2F0aW9uKCkpOwogfQogCi12b2lkIFJlbmRlclJlZ2lvbjo6cmVwYWludEZsb3dU
aHJlYWRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBib29s
IGltbWVkaWF0ZSwgY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25SZWN0LCBjb25z
dCBMYXlvdXRQb2ludCYgcmVnaW9uTG9jYXRpb24sIGNvbnN0IExheW91dFJlY3QqIGZsb3dUaHJl
YWRQb3J0aW9uQ2xpcFJlY3QpCit2b2lkIFJlbmRlclJlZ2lvbjo6cmVwYWludEZsb3dUaHJlYWRD
b250ZW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBjb25zdCBMYXlv
dXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvblJlY3QsIGNvbnN0IExheW91dFBvaW50JiByZWdpb25M
b2NhdGlvbiwgY29uc3QgTGF5b3V0UmVjdCogZmxvd1RocmVhZFBvcnRpb25DbGlwUmVjdCkKIHsK
ICAgICBBU1NFUlQoaXNWYWxpZCgpKTsKIApAQCAtMjkyLDcgKzI5Miw3IEBAIHZvaWQgUmVuZGVy
UmVnaW9uOjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVj
dCYgcmVwYWludFJlCiAgICAgZmxpcEZvcldyaXRpbmdNb2RlKGNsaXBwZWRSZWN0KTsKICAgICAK
ICAgICAvLyBJc3N1ZSB0aGUgcmVwYWludC4KLSAgICByZXBhaW50UmVjdGFuZ2xlKGNsaXBwZWRS
ZWN0LCBpbW1lZGlhdGUpOworICAgIHJlcGFpbnRSZWN0YW5nbGUoY2xpcHBlZFJlY3QpOwogfQog
CiB2b2lkIFJlbmRlclJlZ2lvbjo6aW5zdGFsbEZsb3dUaHJlYWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmluZGV4IDc4NDg5MjUuLmM1ZjBlYjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKQEAgLTExMCw3ICsxMTAsNyBAQCBwdWJsaWM6
CiAgICAgLy8gV2hldGhlciBvciBub3QgdGhpcyByZWdpb24gaXMgYSBzZXQuCiAgICAgdmlydHVh
bCBib29sIGlzUmVuZGVyUmVnaW9uU2V0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAK
LSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludEZsb3dUaHJlYWRDb250ZW50KGNvbnN0IExheW91dFJl
Y3QmIHJlcGFpbnRSZWN0LCBib29sIGltbWVkaWF0ZSk7CisgICAgdmlydHVhbCB2b2lkIHJlcGFp
bnRGbG93VGhyZWFkQ29udGVudChjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCk7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgY29sbGVjdExheWVyRnJhZ21lbnRzKExheWVyRnJhZ21lbnRzJiwgY29u
c3QgTGF5b3V0UmVjdCYsIGNvbnN0IExheW91dFJlY3QmKSB7IH0KIApAQCAtMTQ5LDcgKzE0OSw3
IEBAIHByb3RlY3RlZDoKICAgICB9OwogCiAgICAgTGF5b3V0UmVjdCBvdmVyZmxvd1JlY3RGb3JG
bG93VGhyZWFkUG9ydGlvbihjb25zdCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvblJlY3Qs
IGJvb2wgaXNGaXJzdFBvcnRpb24sIGJvb2wgaXNMYXN0UG9ydGlvbiwgT3ZlcmZsb3dUeXBlKTsK
LSAgICB2b2lkIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZShjb25zdCBMYXlvdXRS
ZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUsIGNvbnN0IExheW91dFJlY3QmIGZsb3dU
aHJlYWRQb3J0aW9uUmVjdCwgY29uc3QgTGF5b3V0UG9pbnQmIHJlZ2lvbkxvY2F0aW9uLCBjb25z
dCBMYXlvdXRSZWN0KiBmbG93VGhyZWFkUG9ydGlvbkNsaXBSZWN0ID0gMCk7CisgICAgdm9pZCBy
ZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWlu
dFJlY3QsIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCwgY29uc3QgTGF5
b3V0UG9pbnQmIHJlZ2lvbkxvY2F0aW9uLCBjb25zdCBMYXlvdXRSZWN0KiBmbG93VGhyZWFkUG9y
dGlvbkNsaXBSZWN0ID0gMCk7CiAKICAgICB2b2lkIGNvbXB1dGVPdmVyZmxvd0Zyb21GbG93VGhy
ZWFkKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA0NGQw
YmNkLi44NTc4OTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBA
IC01MzksOSArNTM5LDggQEAgdm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50Um9vdENvbnRlbnRzKCkK
ICAgICByZXBhaW50KCk7CiB9CiAKLXZvaWQgUmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5n
bGUoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRlKSBjb25zdAor
dm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiBy
ZXBhaW50UmVjdCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRTogR2V0IHJpZCBvZiB0aGUgJ2ltbWVk
aWF0ZScgYXJndW1lbnQuIEl0IG9ubHkgd29ya3Mgb24gTWFjIFdLMSBhbmQgc2hvdWxkIG5ldmVy
IGJlIHVzZWQuCiAgICAgaWYgKCFzaG91bGRSZXBhaW50KHJlcGFpbnRSZWN0KSkKICAgICAgICAg
cmV0dXJuOwogCkBAIC01NTgsMTUgKzU1NywxNSBAQCB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRW
aWV3UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGltbWVkaQog
I2VuZGlmCiAgICAgICAgIGFkanVzdGVkUmVjdC5tb3ZlQnkoLXZpZXdSZWN0LmxvY2F0aW9uKCkp
OwogICAgICAgICBhZGp1c3RlZFJlY3QubW92ZUJ5KG93bmVyQm94LmNvbnRlbnRCb3hSZWN0KCku
bG9jYXRpb24oKSk7Ci0gICAgICAgIG93bmVyQm94LnJlcGFpbnRSZWN0YW5nbGUoYWRqdXN0ZWRS
ZWN0LCBpbW1lZGlhdGUpOworICAgICAgICBvd25lckJveC5yZXBhaW50UmVjdGFuZ2xlKGFkanVz
dGVkUmVjdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgSW50UmVjdCBwaXhlbFNuYXBw
ZWRSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVjdChyZXBhaW50UmVjdCk7CiAKICAgICBmcmFtZVZp
ZXcoKS5hZGRUcmFja2VkUmVwYWludFJlY3QocGl4ZWxTbmFwcGVkUmVjdCk7CiAKLSAgICBpZiAo
IW1fYWNjdW11bGF0ZWRSZXBhaW50UmVnaW9uIHx8IGltbWVkaWF0ZSkgewotICAgICAgICBmcmFt
ZVZpZXcoKS5yZXBhaW50Q29udGVudFJlY3RhbmdsZShwaXhlbFNuYXBwZWRSZWN0LCBpbW1lZGlh
dGUpOworICAgIGlmICghbV9hY2N1bXVsYXRlZFJlcGFpbnRSZWdpb24pIHsKKyAgICAgICAgZnJh
bWVWaWV3KCkucmVwYWludENvbnRlbnRSZWN0YW5nbGUocGl4ZWxTbmFwcGVkUmVjdCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgbV9hY2N1bXVsYXRlZFJlcGFpbnRSZWdpb24tPnVuaXRl
KHBpeGVsU25hcHBlZFJlY3QpOwpAQCAtNTg0LDE2ICs1ODMsMTYgQEAgdm9pZCBSZW5kZXJWaWV3
OjpmbHVzaEFjY3VtdWxhdGVkUmVwYWludFJlZ2lvbigpIGNvbnN0CiAgICAgQVNTRVJUKG1fYWNj
dW11bGF0ZWRSZXBhaW50UmVnaW9uKTsKICAgICBhdXRvIHJlcGFpbnRSZWN0cyA9IG1fYWNjdW11
bGF0ZWRSZXBhaW50UmVnaW9uLT5yZWN0cygpOwogICAgIGZvciAoYXV0byYgcmVjdCA6IHJlcGFp
bnRSZWN0cykKLSAgICAgICAgZnJhbWVWaWV3KCkucmVwYWludENvbnRlbnRSZWN0YW5nbGUocmVj
dCwgZmFsc2UpOworICAgICAgICBmcmFtZVZpZXcoKS5yZXBhaW50Q29udGVudFJlY3RhbmdsZShy
ZWN0KTsKICAgICBtX2FjY3VtdWxhdGVkUmVwYWludFJlZ2lvbiA9IG51bGxwdHI7CiB9CiAKLXZv
aWQgUmVuZGVyVmlldzo6cmVwYWludFJlY3RhbmdsZUluVmlld0FuZENvbXBvc2l0ZWRMYXllcnMo
Y29uc3QgTGF5b3V0UmVjdCYgdXIsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBSZW5kZXJWaWV3Ojpy
ZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyhjb25zdCBMYXlvdXRSZWN0
JiB1cikKIHsKICAgICBpZiAoIXNob3VsZFJlcGFpbnQodXIpKQogICAgICAgICByZXR1cm47CiAK
LSAgICByZXBhaW50Vmlld1JlY3RhbmdsZSh1ciwgaW1tZWRpYXRlKTsKKyAgICByZXBhaW50Vmll
d1JlY3RhbmdsZSh1cik7CiAKICAgICBSZW5kZXJMYXllckNvbXBvc2l0b3ImIGNvbXBvc2l0b3Ig
PSB0aGlzLT5jb21wb3NpdG9yKCk7CiAgICAgaWYgKGNvbXBvc2l0b3IuaW5Db21wb3NpdGluZ01v
ZGUoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKaW5kZXggMzU1YzkwMS4u
NDMxYWVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC03MywxMCAr
NzMsMTAgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTGF5b3V0UmVjdCB2aXN1YWxPdmVyZmxvd1Jl
Y3QoKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBh
aW50KGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91
dFJlY3QmLCBib29sIGZpeGVkID0gZmFsc2UpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcmVw
YWludFJvb3RDb250ZW50cygpOwotICAgIHZvaWQgcmVwYWludFZpZXdSZWN0YW5nbGUoY29uc3Qg
TGF5b3V0UmVjdCYsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UpIGNvbnN0OworICAgIHZvaWQgcmVw
YWludFZpZXdSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYpIGNvbnN0OwogICAgIC8vIFJlcGFp
bnQgdGhlIHZpZXcsIGFuZCBhbGwgY29tcG9zaXRlZCBsYXllcnMgdGhhdCBpbnRlcnNlY3QgdGhl
IGdpdmVuIGFic29sdXRlIHJlY3RhbmdsZS4KICAgICAvLyBGSVhNRTogaWRlYWxseSB3ZSdkIG5l
dmVyIGhhdmUgdG8gZG8gdGhpcywgaWYgYWxsIHJlcGFpbnRzIGFyZSBjb250YWluZXItcmVsYXRp
dmUuCi0gICAgdm9pZCByZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyhj
b25zdCBMYXlvdXRSZWN0JiwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSk7CisgICAgdm9pZCByZXBh
aW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyhjb25zdCBMYXlvdXRSZWN0Jik7
CiAgICAgdm9pZCByZXBhaW50Vmlld0FuZENvbXBvc2l0ZWRMYXllcnMoKTsKIAogICAgIHZpcnR1
YWwgdm9pZCBwYWludChQYWludEluZm8mLCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VDaHJvbWVDbGllbnQu
aAppbmRleCAyZjI4NmI5Li4wMWE5OGU3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2dyYXBoaWNzL1NWR0ltYWdlQ2hyb21lQ2xpZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0
ZToKICAgICAgICAgbV9pbWFnZSA9IDA7CiAgICAgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiByLCBib29sKSBvdmVy
cmlkZQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25z
dCBJbnRSZWN0JiByKSBvdmVycmlkZQogICAgIHsKICAgICAgICAgLy8gSWYgbV9pbWFnZS0+bV9w
YWdlIGlzIG51bGwsIHdlJ3JlIGJlaW5nIGRlc3RydWN0ZWQsIGRvbid0IGZpcmUgY2hhbmdlZElu
UmVjdCgpIGluIHRoYXQgY2FzZS4KICAgICAgICAgaWYgKG1faW1hZ2UgJiYgbV9pbWFnZS0+aW1h
Z2VPYnNlcnZlcigpICYmIG1faW1hZ2UtPm1fcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBjMWJj
NjU3Li4xNTllNzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDIt
MjAgIFJlbmF0YSBIb2RvdmFuICA8cmhvZG92YW4udS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNv
bT4KKworICAgICAgICBHZXQgcmlkIG9mIHRoZSB1bnVzZWQgJ2ltbWVkaWF0ZScgcGFyYW1ldGVy
cyBmcm9tIHJlcGFpbnQgcmVsYXRlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92aW5nIHRoZSAnaW1tZWRpYXRlJyBwYXJhbWV0
ZXJzIGZyb20gcmVwYWludCByZWxhdGVkIGZ1bmN0aW9ucyAtIGFjY29yaW5nCisgICAgICAgIHRv
IHRoZSBGSVhNRSBpbiBSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSgpIC0gc2luY2Ug
dGhleSBoYXZlIG5vIGVmZmVjdC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRh
dGVDb250ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRh
dGVSb290Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRh
dGVDb250ZW50c0FuZFJvb3RWaWV3KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVm
bDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCk6CisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6CisKIDIwMTQtMDItMTcgIFNlcmdpbyBDb3JyZWlhICA8
c2VyZ2lvLmNvcnJlaWFAb3BlbmJvc3NhLm9yZz4KIAogICAgICAgICBSZXBsYWNlIHVzZXMgb2Yg
UGFzc093blB0ci9Pd25QdHIgd2l0aCBzdGQ6OnVuaXF1ZV9wdHIgaW4gV2ViQ29yZS9pbnNwZWN0
b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRFZmwuY3BwCmluZGV4IGJkMjA3ZTkuLjE5MDMyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmNwcApAQCAtNTI0LDEyICs1
MjQsMTIgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OmNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lv
bkZvckZyYW1lKEZyYW1lKiwgR2VvbG9jYXRpb24qKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVj
dCYgLyp1cGRhdGVSZWN0Ki8sIGJvb2wgLyppbW1lZGlhdGUqLykKK3ZvaWQgQ2hyb21lQ2xpZW50
RWZsOjppbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYgLyp1cGRhdGVSZWN0Ki8pCiB7
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFs
aWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIC8qaW1tZWRpYXRl
Ki8pCit2b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJl
Y3QmIHVwZGF0ZVJlY3QpCiB7CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgZXdr
X3ZpZXdfdGlsZWRfYmFja2luZ19zdG9yZV9pbnZhbGlkYXRlKG1fdmlldywgdXBkYXRlUmVjdCk7
CkBAIC01MzksNyArNTM5LDcgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290
Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIC8qaW1tZWQKICNlbmRpZgogfQog
Ci12b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29u
c3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCAvKmltbWVkaWF0ZSovKQordm9pZCBDaHJvbWVD
bGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVw
ZGF0ZVJlY3QpCiB7CiAgICAgaWYgKHVwZGF0ZVJlY3QuaXNFbXB0eSgpKQogICAgICAgICByZXR1
cm47CkBAIC01NTMsOSArNTUzLDkgQEAgdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGIKICAgICBld2tf
dmlld19yZXBhaW50KG1fdmlldywgeCwgeSwgdywgaCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50
RWZsOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0
ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVD
b250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkKIHsKLSAgICBp
bnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUpOworICAg
IGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHVwZGF0ZVJlY3QpOwogfQogCiB2b2lkIENo
cm9tZUNsaWVudEVmbDo6c2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJ
bnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggYi9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuaAppbmRleCAx
MTA2NDJkLi5mNDFmZjVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuaApAQCAtMTYwLDEwICsxNjAsMTAgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xvY2F0aW9uUGVybWlzc2lvbkZvckZyYW1lKEZyYW1l
KiwgR2VvbG9jYXRpb24qKTsKIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMo
Y29uc3QgSW50UmVjdCYsIGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZp
ZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29u
dGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJvb2wpOwor
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHMoY29uc3QgSW50UmVjdCYpOworICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpOworICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0Jik7
CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3Qg
SW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0
IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RGb3JGcmFtZShGcmFtZSopOwogICAgIHZpcnR1YWwgdm9p
ZCBpY29uRm9yRmlsZXMoY29uc3QgVmVjdG9yPFN0cmluZywgMHU+JiwgUGFzc1JlZlB0cjxGaWxl
Q2hvb3Nlcj4pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IGFmYTVlY2IuLjlhNjI4OWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNC0wMi0yMCAgUmVuYXRhIEhvZG92YW4gIDxy
aG9kb3Zhbi51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAgIEdldCByaWQg
b2YgdGhlIHVudXNlZCAnaW1tZWRpYXRlJyBwYXJhbWV0ZXJzIGZyb20gcmVwYWludCByZWxhdGVk
IGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTI5MTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZpbmcgdGhlICdpbW1lZGlhdGUnIHBhcmFtZXRlcnMgZnJvbSByZXBhaW50IHJlbGF0
ZWQgZnVuY3Rpb25zIC0gYWNjb3JpbmcKKyAgICAgICAgdG8gdGhlIEZJWE1FIGluIFJlbmRlclZp
ZXc6OnJlcGFpbnRWaWV3UmVjdGFuZ2xlKCkgLSBzaW5jZSB0aGV5IGhhdmUgbm8gZWZmZWN0Lgor
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlUm9vdFZpZXcpOgorICAgICAgICAoV2Vi
S2l0OjpDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KToKKyAgICAg
ICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xs
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaDoKKwogMjAxNC0w
Mi0xNyAgU2VyZ2lvIENvcnJlaWEgIDxzZXJnaW8uY29ycmVpYUBvcGVuYm9zc2Eub3JnPgogCiAg
ICAgICAgIFJlcGxhY2UgdXNlcyBvZiBQYXNzT3duUHRyL093blB0ciB3aXRoIHN0ZDo6dW5pcXVl
X3B0ciBpbiBXZWJDb3JlL2luc3BlY3RvcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsv
V2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAKaW5kZXggYWVlMWI5ZS4uZTFmZjYyNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRHdGsuY3BwCkBAIC02MzgsMTEgKzYzOCwxMSBAQCB2b2lkIENocm9tZUNsaWVudDo6Zm9yY2VQ
YWludCgpCiAgICAgbV9mb3JjZVBhaW50ID0gZmFsc2U7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50
OjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKQordm9p
ZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JikKIHsKIH0K
IAotdm9pZCBDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0
IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWVDbGllbnQ6
OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3Qp
CiB7CiAgICAgQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQqIGFjQ29udGV4dCA9IG1fd2Vi
Vmlldy0+cHJpdi0+YWNjZWxlcmF0ZWRDb21wb3NpdGluZ0NvbnRleHQuZ2V0KCk7CiAgICAgaWYg
KGFjQ29udGV4dC0+ZW5hYmxlZCgpKSB7CkBAIC02NTYsNyArNjU2LDcgQEAgdm9pZCBDaHJvbWVD
bGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0
ZVJlY3QsIGJvb2wKICAgICBtX2Rpc3BsYXlUaW1lci5zdGFydE9uZVNob3QoMCk7CiB9CiAKLXZv
aWQgQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IElu
dFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWVDbGllbnQ6Omlu
dmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkK
IHsKICAgICBtX2FkanVzdG1lbnRXYXRjaGVyLnVwZGF0ZUFkanVzdG1lbnRzRnJvbVNjcm9sbGJh
cnNMYXRlcigpOwogCkBAIC02NjYsNyArNjY2LDcgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmludmFs
aWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm8K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RW
aWV3KHVwZGF0ZVJlY3QsIGltbWVkaWF0ZSk7CisgICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9v
dFZpZXcodXBkYXRlUmVjdCk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50OjpzY3JvbGwoY29uc3Qg
SW50U2l6ZSYgZGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVj
dCYgY2xpcFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0No
cm9tZUNsaWVudEd0ay5oCmluZGV4IDk3OTBmY2QuLmJkNWM3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oCkBAIC05Niw5ICs5
Niw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgICAgICB2aXJ0dWFsIEtleWJvYXJkVUlNb2Rl
IGtleWJvYXJkVUlNb2RlKCk7CiAKICAgICAgICAgdmlydHVhbCBJbnRSZWN0IHdpbmRvd1Jlc2l6
ZXJSZWN0KCkgY29uc3Q7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXco
Y29uc3QgSW50UmVjdCYsIGJvb2wpOwotICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpOwotICAgICAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9v
bCk7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVj
dCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXco
Y29uc3QgSW50UmVjdCYpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRz
Rm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0Jik7CiAgICAgICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGwoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9s
bCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpOwogCiAgICAgICAgIHZpcnR1YWwgSW50UG9pbnQg
c2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmlu
ZGV4IDQ5OWQzOWMuLmI4NjZmYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAor
MjAxNC0wMi0yMCAgUmVuYXRhIEhvZG92YW4gIDxyaG9kb3Zhbi51LXN6ZWdlZEBwYXJ0bmVyLnNh
bXN1bmcuY29tPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIHVudXNlZCAnaW1tZWRpYXRlJyBw
YXJhbWV0ZXJzIGZyb20gcmVwYWludCByZWxhdGVkIGZ1bmN0aW9ucworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTExCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZpbmcgdGhlICdpbW1lZGlhdGUn
IHBhcmFtZXRlcnMgZnJvbSByZXBhaW50IHJlbGF0ZWQgZnVuY3Rpb25zIC0gYWNjb3JpbmcKKyAg
ICAgICAgdG8gdGhlIEZJWE1FIGluIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFuZ2xlKCkg
LSBzaW5jZSB0aGV5IGhhdmUgbm8gZWZmZWN0LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0
ZVJvb3RWaWV3KToKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRz
QW5kUm9vdFZpZXcpOgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVu
dHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGll
bnQuaDoKKwogMjAxNC0wMi0yMCAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIEdldCByaWQgb2YgcmVkdW5kYW50IFBsYXRmb3JtLmggaW5jbHVkZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
Y3BwCmluZGV4IDM5NjIxMTkuLjM1NzY2MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNDYyLDIyICs0NjIsMjIg
QEAgSW50UmVjdCBXZWJDaHJvbWVDbGllbnQ6OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QKICAg
ICByZXR1cm4gSW50UmVjdCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0
ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9p
ZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiB3aW5k
b3dSZWN0KQogewogICAgIEFTU0VSVChjb3JlKG1fd2ViVmlldy0+dG9wTGV2ZWxGcmFtZSgpKSk7
Ci0gICAgbV93ZWJWaWV3LT5yZXBhaW50KHdpbmRvd1JlY3QsIGZhbHNlIC8qY29udGVudENoYW5n
ZWQqLywgaW1tZWRpYXRlLCBmYWxzZSAvKnJlcGFpbnRDb250ZW50T25seSovKTsKKyAgICBtX3dl
YlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgZmFsc2UgLypjb250ZW50Q2hhbmdlZCovLCBmYWxz
ZSAvKnJlcGFpbnRDb250ZW50T25seSovKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6Omlu
dmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QsIGJv
b2wgaW1tZWRpYXRlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0Fu
ZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QpCiB7CiAgICAgQVNTRVJUKGNvcmUo
bV93ZWJWaWV3LT50b3BMZXZlbEZyYW1lKCkpKTsKLSAgICBtX3dlYlZpZXctPnJlcGFpbnQod2lu
ZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGltbWVkaWF0ZSAvKmltbWVkaWF0ZSov
LCBmYWxzZSAvKnJlcGFpbnRDb250ZW50T25seSovKTsKKyAgICBtX3dlYlZpZXctPnJlcGFpbnQo
d2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGZhbHNlIC8qcmVwYWludENvbnRl
bnRPbmx5Ki8pOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRz
Rm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGltbWVkaWF0ZSkK
K3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNv
bnN0IEludFJlY3QmIHdpbmRvd1JlY3QpCiB7CiAgICAgQVNTRVJUKGNvcmUobV93ZWJWaWV3LT50
b3BMZXZlbEZyYW1lKCkpKTsKLSAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1
ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGltbWVkaWF0ZSwgdHJ1ZSAvKnJlcGFpbnRDb250ZW50T25s
eSovKTsKKyAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRD
aGFuZ2VkKi8sIHRydWUgLypyZXBhaW50Q29udGVudE9ubHkqLyk7CiB9CiAKIHZvaWQgV2ViQ2hy
b21lQ2xpZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYgZGVsdGEsIGNvbnN0IEludFJlY3QmIHNj
cm9sbFZpZXdSZWN0LCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggZTE0OWU3YmMu
LjgwNjZlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCkBAIC05Myw5ICs5Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdl
YkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJvYXJkVUlNb2RlKCk7CiAgICAgdmlydHVhbCBXZWJD
b3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZv
aWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIGJvb2wpOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNG
b3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNv
bnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KTsKIAogICAg
IHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQgc2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA0ZDU1ODE4Li4xZTVm
ZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTAyLTIwICBS
ZW5hdGEgSG9kb3ZhbiAgPHJob2RvdmFuLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisK
KyAgICAgICAgR2V0IHJpZCBvZiB0aGUgdW51c2VkICdpbW1lZGlhdGUnIHBhcmFtZXRlcnMgZnJv
bSByZXBhaW50IHJlbGF0ZWQgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkxMTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZW1vdmluZyB0aGUgJ2ltbWVkaWF0ZScgcGFyYW1ldGVycyBm
cm9tIHJlcGFpbnQgcmVsYXRlZCBmdW5jdGlvbnMgLSBhY2NvcmluZworICAgICAgICB0byB0aGUg
RklYTUUgaW4gUmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUoKSAtIHNpbmNlIHRoZXkg
aGF2ZSBubyBlZmZlY3QuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRX
aW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjppbnZhbGlkYXRl
Um9vdFZpZXcpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6aW52YWxpZGF0
ZUNvbnRlbnRzQW5kUm9vdFZpZXcpOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5D
RTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudFdpbkNFOjpzY3JvbGwpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFdpbkNFLmg6CisKIDIwMTQtMDItMDggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIENoYW5nZSBUZXh0SXRlcmF0b3IgdG8gdXNlIFN0cmluZ1ZpZXcsIHBy
ZXBhcmluZyB0byB3ZWFuIGl0IGZyb20gZGVwcmVjYXRlZENoYXJhY3RlcnMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3Bw
IGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5j
cHAKaW5kZXggZjk5NDgwYy4uOTgwMTdiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKQEAgLTIyNiwyOCAr
MjI2LDI3IEBAIEludFJlY3QgQ2hyb21lQ2xpZW50V2luQ0U6OndpbmRvd1Jlc2l6ZXJSZWN0KCkg
Y29uc3QKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudFdpbkNF
OjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpCit2b2lkIENocm9tZUNs
aWVudFdpbkNFOjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpCiB7CiAgICAgbm90
SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6aW52YWxpZGF0ZUNv
bnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlh
dGUpCit2b2lkIENocm9tZUNsaWVudFdpbkNFOjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmll
dyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewogICAgIFJFQ1QgcmVjdCA9IHVwZGF0ZVJl
Y3Q7CiAgICAgSW52YWxpZGF0ZVJlY3QobV93ZWJWaWV3LT53aW5kb3dIYW5kbGUoKSwgJnJlY3Qs
IEZBTFNFKTsKIAotICAgIGlmIChpbW1lZGlhdGUpCi0gICAgICAgIFVwZGF0ZVdpbmRvdyhtX3dl
YlZpZXctPndpbmRvd0hhbmRsZSgpKTsKKyAgICBVcGRhdGVXaW5kb3cobV93ZWJWaWV3LT53aW5k
b3dIYW5kbGUoKSk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50V2luQ0U6OmludmFsaWRhdGVDb250
ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlh
dGUpCit2b2lkIENocm9tZUNsaWVudFdpbkNFOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCiB7Ci0gICAgaW52YWxpZGF0ZUNvbnRlbnRz
QW5kUm9vdFZpZXcodXBkYXRlUmVjdCwgaW1tZWRpYXRlKTsKKyAgICBpbnZhbGlkYXRlQ29udGVu
dHNBbmRSb290Vmlldyh1cGRhdGVSZWN0KTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6
c2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0
IEludFJlY3QmKQogewotICAgIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHJlY3RUb1Nj
cm9sbCwgZmFsc2UpOworICAgIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHJlY3RUb1Nj
cm9sbCk7CiB9CiAKIEludFJlY3QgQ2hyb21lQ2xpZW50V2luQ0U6OnJvb3RWaWV3VG9TY3JlZW4o
Y29uc3QgSW50UmVjdCYgcmVjdCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2lu
Y2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAppbmRleCA2NjYzYzJjLi4xNDY3
ZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudFdpbkNFLmgKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRXaW5DRS5oCkBAIC05Miw5ICs5Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IFdlYkNvcmU6OkludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdCBvdmVycmlkZTsKIAog
ICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgotICAgIHZpcnR1YWwgdm9pZCBpbnZh
bGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpIG92ZXJyaWRlOwot
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpIG92
ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVu
dHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29y
ZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1Jv
b3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBXZWJDb3JlOjpJbnRSZWN0IHJvb3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwotLSAKMS44LjMuMgoK
</data>
<flag name="review"
          id="248886"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>224803</attachid>
            <date>2014-02-20 15:36:46 -0800</date>
            <delta_ts>2014-02-24 07:05:05 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-remove-immediate.patch</filename>
            <type>text/plain</type>
            <size>62358</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">RnJvbSBmOTEwODM4ZTdjMGZiZTRmNDhkMDkyMGQ3Y2ZjYjc2MjgxYzIxMTE5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSZW5hdGEgSG9kb3ZhbiA8cmVuaUB3ZWJraXQub3JnPgpEYXRl
OiBUaHUsIDIwIEZlYiAyMDE0IDIzOjMyOjA1ICswMTAwClN1YmplY3Q6IFtQQVRDSF0gcmVtb3Zl
IGltbWVkaWF0ZQoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDY3ICsrKysrKysrKysrKysrKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCAgICAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaCAgICAgICAgICAgICAgIHwgIDYgKy0KIFNvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmNwcCAgICAgICAgICAgICAgICAgICAgIHwgMTIgKystLQogU291cmNl
L1dlYkNvcmUvcGFnZS9DaHJvbWUuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgNiArLQogU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaCAgICAgICAgICAgICAgICAgfCAgNiArLQog
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgMiAr
LQogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwICAgICAgICAgICAgICAgICAgfCAx
NCArKy0tLQogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCAgICAgICAgICAgICAgICAg
ICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oICAgICAgICAg
ICAgICAgfCAxMCArKy0tCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCAg
ICAgICAgICAgICB8IDI0ICsrKystLS0tCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmggICAgICAgICAgICAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
U2Nyb2xsVmlld0lPUy5tbSAgICAgICB8ICAzICstCiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsVmlld01hYy5tbSAgICAgICB8ICA3ICstLQogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAgICAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwICAgICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaCAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCAgICAgICAgICAgfCAgNiArLQogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggICAgICAgICAgICAgfCAgMiArLQogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcCAgfCAgNCArLQogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmggICAgfCAgMiArLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgICAgICAgICAgfCAyMCAr
KystLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggICAgICAgICAg
ICB8ICA2ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcCAgICAg
ICAgICB8ICA4ICstLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oICAg
ICAgICAgICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
ICAgICAgICAgICAgfCAxNSArKystLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZp
ZXcuaCAgICAgICAgICAgICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlQ2hyb21lQ2xpZW50LmggfCAgMiArLQogU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgICAgfCAxNyArKysrKysKIC4uLi9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAgIHwgMTAgKystLQogU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmggfCAgOCArLS0KIFNvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKysrKysrCiAuLi4v
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwICB8ICA4ICstLQog
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmggfCAgNiAr
LQogU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggfCAg
NiArLQogLi4uL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tICAg
fCAxNiArKy0tLS0KIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgIHwgMTYgKysrKysrCiAuLi4vV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuY3BwICB8IDEyICsrLS0KIFNvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIHwgIDYgKy0KIFNvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9n
ICAgICAgICAgICAgICAgICAgICAgIHwgMTcgKysrKysrCiAuLi4vd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwICAgICB8IDEzICsrLS0tCiAuLi4vd2luY2UvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaCAgICAgICB8ICA2ICstCiAuLi4vV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwICB8ICA2ICstCiAuLi4vV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCAgICB8ICA2ICstCiA0NCBmaWxl
cyBjaGFuZ2VkLCAyNjcgaW5zZXJ0aW9ucygrKSwgMTUwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCAyMDMzZDEzLi5iZTYzZmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTQt
MDItMjAgIFJlbmF0YSBIb2RvdmFuICA8cmhvZG92YW4udS1zemVnZWRAcGFydG5lci5zYW1zdW5n
LmNvbT4KKyAgICAgICAgCisgICAgICAgIEdldCByaWQgb2YgdGhlIHVudXNlZCAnaW1tZWRpYXRl
JyBwYXJhbWV0ZXJzIGZyb20gcmVwYWludCByZWxhdGVkIGZ1bmN0aW9ucworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTExCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZpbmcgdGhlICdpbW1lZGlh
dGUnIHBhcmFtZXRlcnMgZnJvbSByZXBhaW50IHJlbGF0ZWQgZnVuY3Rpb25zIC0gYWNjb3JpbmcK
KyAgICAgICAgdG8gdGhlIEZJWE1FIGluIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFuZ2xl
KCkgLSBzaW5jZSB0aGV5IGhhdmUgbm8gZWZmZWN0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBh
cmUgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlcmUgaXMgbm8gYmVoYXZpb3IgY2hhbmdlCisKKyAgICAg
ICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50OjpzZXRBY3Rp
dmUpOgorICAgICAgICAqIGxvYWRlci9FbXB0eUNsaWVudHMuaDoKKyAgICAgICAgKiBwYWdlL0No
cm9tZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVSb290Vmlldyk6
CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3
KToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Nj
cm9sbCk6CisgICAgICAgICogcGFnZS9DaHJvbWUuaDoKKyAgICAgICAgKiBwYWdlL0Nocm9tZUNs
aWVudC5oOgorICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWU6OnRpbGVkQmFja2luZ1N0b3JlUGFpbnRFbmQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6aW52YWxpZGF0ZVJlY3QpOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKToKKyAgICAg
ICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzaG91bGRVcGRhdGUpOgorICAgICAgICAqIHBhZ2UvRnJh
bWVWaWV3Lmg6CisgICAgICAgICogcGxhdGZvcm0vSG9zdFdpbmRvdy5oOgorICAgICAgICAqIHBs
YXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Ny
b2xsQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVu
dHNTbG93UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpyZXBhaW50Q29udGVu
dFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3Ojp1cGRhdGVPdmVyaGFu
Z0FyZWFzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OmFkZFBhblNjcm9sbEljb24p
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cmVtb3ZlUGFuU2Nyb2xsSWNvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlcGFpbnRDb250ZW50UmVjdGFu
Z2xlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3Lmg6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OnJlcGFpbnRM
YXllclJlY3RzRm9ySW1hZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnJlcGFpbnRSZWN0YW5n
bGVJblJlZ2lvbnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpzZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TXVsdGlDb2x1bW5TZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTXVsdGlDb2x1bW5T
ZXQ6OnJlcGFpbnRGbG93VGhyZWFkQ29udGVudCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uU2V0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2luZ0NvbnRhaW5lcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlck9iamVjdDo6cmVwYWludFNsb3dSZXBhaW50T2JqZWN0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OnJlcGFpbnRGbG93VGhyZWFkQ29u
dGVudCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJSZWdpb246OnJlcGFpbnRGbG93VGhyZWFk
Q29udGVudFJlY3RhbmdsZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFuZ2xlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clZpZXc6OmZsdXNoQWNjdW11bGF0ZWRSZXBhaW50UmVnaW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclZpZXc6OnJlcGFpbnRSZWN0YW5nbGVJblZpZXdBbmRDb21wb3NpdGVkTGF5ZXJzKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorICAgICAgICAqIHN2Zy9ncmFwaGlj
cy9TVkdJbWFnZUNocm9tZUNsaWVudC5oOgorCiAyMDE0LTAyLTIwICBLcnp5c3p0b2YgQ3plY2gg
IDxrLmN6ZWNoQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEFYOiBVc2UgYXV0byB0byByZWR1Y2Ug
c29tZSBjb2RlIGluIGxvb3BzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNTM4OWI1OC4uM2Ux
ZTE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNTI4LDcgKzUyOCw3IEBAIHZvaWQgRWxl
bWVudDo6c2V0QWN0aXZlKGJvb2wgZmxhZywgYm9vbCBwYXVzZSkKIAogICAgICAgICAvLyBEbyBh
biBpbW1lZGlhdGUgcmVwYWludC4KICAgICAgICAgaWYgKHJlbmRlcmVyKCkpCi0gICAgICAgICAg
ICByZW5kZXJlcigpLT5yZXBhaW50KHRydWUpOworICAgICAgICAgICAgcmVuZGVyZXIoKS0+cmVw
YWludCgpOwogCiAgICAgICAgIC8vIEZJWE1FOiBDb21lIHVwIHdpdGggYSBsZXNzIHJpZGljdWxv
dXMgd2F5IG9mIGRvaW5nIHRoaXMuCiAjaWZkZWYgSEFWRV9GVU5DX1VTTEVFUApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0VtcHR5Q2xpZW50cy5oCmluZGV4IDkzMGE3NWIuLmU5ZTc0YjQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKQEAgLTEyNiw5ICsxMjYsOSBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIEludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBJbnRSZWN0KCk7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXco
Y29uc3QgSW50UmVjdCYsIGJvb2wpIG92ZXJyaWRlIHsgfQotICAgIHZpcnR1YWwgdm9pZCBpbnZh
bGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGUg
eyB9Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29u
c3QgSW50UmVjdCYsIGJvb2wpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQorICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUg
eyB9CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29u
c3QgSW50UmVjdCYpIG92ZXJyaWRlIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3Qg
SW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9CiAj
aWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRlZFNj
cm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCmlu
ZGV4IDBkNDE2OWYuLmE2OTBlM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKQEAgLTc3LDE5ICs3
NywxOSBAQCBDaHJvbWU6On5DaHJvbWUoKQogICAgIG1fY2xpZW50LmNocm9tZURlc3Ryb3llZCgp
OwogfQogCi12b2lkIENocm9tZTo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVw
ZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWU6OmludmFsaWRhdGVSb290Vmll
dyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewotICAgIG1fY2xpZW50LmludmFsaWRhdGVS
b290Vmlldyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUpOworICAgIG1fY2xpZW50LmludmFsaWRhdGVS
b290Vmlldyh1cGRhdGVSZWN0KTsKIH0KIAotdm9pZCBDaHJvbWU6OmludmFsaWRhdGVDb250ZW50
c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQor
dm9pZCBDaHJvbWU6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3Qm
IHVwZGF0ZVJlY3QpCiB7Ci0gICAgbV9jbGllbnQuaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZp
ZXcodXBkYXRlUmVjdCwgaW1tZWRpYXRlKTsKKyAgICBtX2NsaWVudC5pbnZhbGlkYXRlQ29udGVu
dHNBbmRSb290Vmlldyh1cGRhdGVSZWN0KTsKIH0KIAotdm9pZCBDaHJvbWU6OmludmFsaWRhdGVD
b250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1l
ZGlhdGUpCit2b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25z
dCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewotICAgIG1fY2xpZW50LmludmFsaWRhdGVDb250ZW50
c0ZvclNsb3dTY3JvbGwodXBkYXRlUmVjdCwgaW1tZWRpYXRlKTsKKyAgICBtX2NsaWVudC5pbnZh
bGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKHVwZGF0ZVJlY3QpOwogfQogCiB2b2lkIENocm9t
ZTo6c2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0
VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmgKaW5kZXgg
OWM0N2QyMS4uYTI5OWQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCkBAIC02OSw5ICs2OSw5IEBAIHB1
YmxpYzoKICAgICBDaHJvbWVDbGllbnQmIGNsaWVudCgpIHsgcmV0dXJuIG1fY2xpZW50OyB9CiAK
ICAgICAvLyBIb3N0V2luZG93IG1ldGhvZHMuCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVS
b290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sKSBvdmVy
cmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChj
b25zdCBJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVSb290Vmlldyhjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRS
ZWN0Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwg
Y29uc3QgSW50UmVjdCYsIGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKICNpZiBVU0UoVElMRURf
QkFDS0lOR19TVE9SRSkKICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVk
KGNvbnN0IEludFBvaW50JiBzY3JvbGxQb2ludCkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJv
bWVDbGllbnQuaAppbmRleCA0MzUxOTg1Li42MDQzN2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21l
Q2xpZW50LmgKQEAgLTE1Niw5ICsxNTYsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBNZXRob2RzIHVz
ZWQgYnkgSG9zdFdpbmRvdy4KICAgICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNJbW1lZGlhdGVJbnZh
bGlkYXRpb24oKSB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Um9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29s
IGltbWVkaWF0ZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JT
bG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sIGltbWVkaWF0ZSkgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25z
dCBJbnRSZWN0JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50U2l6ZSYs
IGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRSZWN0JikgPSAwOwogI2lmIFVTRShUSUxFRF9CQUNL
SU5HX1NUT1JFKQogICAgIHZpcnR1YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29u
c3QgSW50UG9pbnQmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDQ5MzU2MTAuLjEyOWUw
NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC05NjUsNyArOTY1LDcgQEAgdm9pZCBGcmFtZTo6
dGlsZWRCYWNraW5nU3RvcmVQYWludEVuZChjb25zdCBWZWN0b3I8SW50UmVjdD4mIHBhaW50ZWRB
cmVhKQogICAgIHVuc2lnbmVkIHNpemUgPSBwYWludGVkQXJlYS5zaXplKCk7CiAgICAgLy8gUmVx
dWVzdCByZXBhaW50IGZyb20gdGhlIHN5c3RlbQogICAgIGZvciAodW5zaWduZWQgbiA9IDA7IG4g
PCBzaXplOyArK24pCi0gICAgICAgIG1fcGFnZS0+Y2hyb21lKCkuaW52YWxpZGF0ZUNvbnRlbnRz
QW5kUm9vdFZpZXcobV92aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocGFpbnRlZEFyZWFbbl0pLCBm
YWxzZSk7CisgICAgICAgIG1fcGFnZS0+Y2hyb21lKCkuaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9v
dFZpZXcobV92aWV3LT5jb250ZW50c1RvUm9vdFZpZXcocGFpbnRlZEFyZWFbbl0pKTsKIH0KIAog
SW50UmVjdCBGcmFtZTo6dGlsZWRCYWNraW5nU3RvcmVDb250ZW50c1JlY3QoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCmluZGV4IDA3NThlMjcuLjQxMWMwODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAKQEAgLTM5Miw3ICszOTIsNyBAQCB2b2lkIEZyYW1lVmlldzo6aW52YWxpZGF0
ZVJlY3QoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoIXBhcmVudCgpKSB7CiAgICAg
ICAgIGlmIChIb3N0V2luZG93KiB3aW5kb3cgPSBob3N0V2luZG93KCkpCi0gICAgICAgICAgICB3
aW5kb3ctPmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHJlY3QsIGZhbHNlIC8qaW1tZWRp
YXRlKi8pOworICAgICAgICAgICAgd2luZG93LT5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmll
dyhyZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTY4Nyw3ICsxNjg3LDcgQEAg
Ym9vbCBGcmFtZVZpZXc6OnNjcm9sbENvbnRlbnRzRmFzdFBhdGgoY29uc3QgSW50U2l6ZSYgc2Ny
b2xsRGVsdGEsIGNvbnN0IEludFJlY3QKICAgICAgICAgfQogICAgICAgICBpZiAoY2xpcHNSZXBh
aW50cygpKQogICAgICAgICAgICAgdXBkYXRlUmVjdC5pbnRlcnNlY3QocmVjdFRvU2Nyb2xsKTsK
LSAgICAgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh1cGRh
dGVSZWN0LCBmYWxzZSk7CisgICAgICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRz
QW5kUm9vdFZpZXcodXBkYXRlUmVjdCk7CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0y
MDY3LDExICsyMDY3LDExIEBAIHZvaWQgRnJhbWVWaWV3OjphZGRUcmFja2VkUmVwYWludFJlY3Qo
Y29uc3QgSW50UmVjdCYgcikKICAgICBtX3RyYWNrZWRSZXBhaW50UmVjdHMuYXBwZW5kKHJlcGFp
bnRSZWN0KTsKIH0KIAotdm9pZCBGcmFtZVZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNv
bnN0IEludFJlY3QmIHIsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBGcmFtZVZpZXc6OnJlcGFpbnRD
b250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHIpCiB7CiAgICAgQVNTRVJUKCFmcmFtZSgp
Lm93bmVyRWxlbWVudCgpKTsKIAotICAgIGlmICghc2hvdWxkVXBkYXRlKGltbWVkaWF0ZSkpCisg
ICAgaWYgKCFzaG91bGRVcGRhdGUoKSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgVVNFKFRJTEVE
X0JBQ0tJTkdfU1RPUkUpCkBAIC0yMDgwLDcgKzIwODAsNyBAQCB2b2lkIEZyYW1lVmlldzo6cmVw
YWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgciwgYm9vbCBpbW1lZGlhdGUpCiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKLSAgICBTY3JvbGxWaWV3OjpyZXBhaW50Q29u
dGVudFJlY3RhbmdsZShyLCBpbW1lZGlhdGUpOworICAgIFNjcm9sbFZpZXc6OnJlcGFpbnRDb250
ZW50UmVjdGFuZ2xlKHIpOwogfQogCiBzdGF0aWMgdW5zaWduZWQgY291bnRSZW5kZXJlZENoYXJh
Y3RlcnNJblJlbmRlck9iamVjdFdpdGhUaHJlc2hvbGQoY29uc3QgUmVuZGVyT2JqZWN0JiByZW5k
ZXJlciwgdW5zaWduZWQgY291bnRTb0ZhciwgdW5zaWduZWQgdGhyZXNob2xkKQpAQCAtMjUxNyw5
ICsyNTE3LDkgQEAgdm9pZCBGcmFtZVZpZXc6OnNldFNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVu
KGJvb2wgc2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW4pCiAgICAgbV9zaG91bGRVcGRhdGVXaGls
ZU9mZnNjcmVlbiA9IHNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuOwogfQogCi1ib29sIEZyYW1l
Vmlldzo6c2hvdWxkVXBkYXRlKGJvb2wgaW1tZWRpYXRlUmVxdWVzdGVkKSBjb25zdAorYm9vbCBG
cmFtZVZpZXc6OnNob3VsZFVwZGF0ZSgpIGNvbnN0CiB7Ci0gICAgaWYgKCFpbW1lZGlhdGVSZXF1
ZXN0ZWQgJiYgaXNPZmZzY3JlZW4oKSAmJiAhc2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW4oKSkK
KyAgICBpZiAoaXNPZmZzY3JlZW4oKSAmJiAhc2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW4oKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIHJldHVybiB0cnVlOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmgKaW5kZXggMzc3MzI0NS4uNDQ4YzBkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CkBAIC0yMDgsNyArMjA4LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGRVcGRhdGVXaGls
ZU9mZnNjcmVlbigpIGNvbnN0OwogICAgIHZvaWQgc2V0U2hvdWxkVXBkYXRlV2hpbGVPZmZzY3Jl
ZW4oYm9vbCk7Ci0gICAgYm9vbCBzaG91bGRVcGRhdGUoYm9vbCA9IGZhbHNlKSBjb25zdDsKKyAg
ICBib29sIHNob3VsZFVwZGF0ZSgpIGNvbnN0OwogCiAgICAgdm9pZCBhZGp1c3RWaWV3U2l6ZSgp
OwogICAgIApAQCAtNTAzLDcgKzUwMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJmb3JtUG9z
dExheW91dFRhc2tzKCk7CiAgICAgdm9pZCBhdXRvU2l6ZUlmRW5hYmxlZCgpOwogCi0gICAgdmly
dHVhbCB2b2lkIHJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmLCBib29sIGlt
bWVkaWF0ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRDb250ZW50UmVjdGFu
Z2xlKGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgY29udGVudHNS
ZXNpemVkKCkgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIHZpc2libGVDb250ZW50c1Jlc2l6
ZWQoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQgYWRkZWRPclJlbW92ZWRTY3JvbGxiYXIo
KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5k
b3cuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAppbmRleCA1Mjc3ZTc2
Li5hNzY3NDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Ib3N0V2luZG93
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oCkBAIC0zOCwxNyAr
MzgsMTcgQEAgcHVibGljOgogICAgIEhvc3RXaW5kb3coKSB7IH0KICAgICB2aXJ0dWFsIH5Ib3N0
V2luZG93KCkgeyB9CiAKLSAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBy
b290IHZpZXcsIG5vdCB0aGUgY29udGVudHMuIElmIGltbWVkaWF0ZSBpcyB0cnVlIGRvIHNvIHN5
bmNocm9ub3VzbHksIG90aGVyd2lzZSBhc3luYy4KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKSA9IDA7
CisgICAgLy8gUmVxdWVzdHMgdGhlIGhvc3QgaW52YWxpZGF0ZSB0aGUgcm9vdCB2aWV3LCBub3Qg
dGhlIGNvbnRlbnRzLgorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3Qg
SW50UmVjdCYgdXBkYXRlUmVjdCkgPSAwOwogCi0gICAgLy8gUmVxdWVzdHMgdGhlIGhvc3QgaW52
YWxpZGF0ZSB0aGUgY29udGVudHMgYW5kIHRoZSByb290IHZpZXcuIElmIGltbWVkaWF0ZSBpcyB0
cnVlIGRvIHNvIHN5bmNocm9ub3VzbHksIG90aGVyd2lzZSBhc3luYy4KLSAgICB2aXJ0dWFsIHZv
aWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVj
dCwgYm9vbCBpbW1lZGlhdGUpID0gMDsKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlk
YXRlIHRoZSBjb250ZW50cyBhbmQgdGhlIHJvb3Qgdmlldy4KKyAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkgPSAw
OwogCiAgICAgLy8gUmVxdWVzdHMgdGhlIGhvc3Qgc2Nyb2xsIGJhY2tpbmdzdG9yZSBieSB0aGUg
c3BlY2lmaWVkIGRlbHRhLCByZWN0IHRvIHNjcm9sbCwgYW5kIGNsaXAgcmVjdC4KICAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0
JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KSA9IDA7CiAKICAgICAvLyBS
ZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250ZW50cywgbm90IHRoZSByb290IHZp
ZXcuIFRoaXMgaXMgdGhlIHNsb3cgcGF0aCBmb3Igc2Nyb2xsaW5nLgotICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJl
Y3QsIGJvb2wgaW1tZWRpYXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkgPSAwOwogCiAjaWYg
VVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgLy8gUmVxdWVzdHMgdGhlIGhvc3QgdG8gZG8g
dGhlIGFjdHVhbCBzY3JvbGxpbmcuIFRoaXMgaXMgb25seSB1c2VkIGluIGNvbWJpbmF0aW9uIHdp
dGggYSB0aWxlZCBiYWNraW5nIHN0b3JlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vU2Nyb2xsVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3
LmNwcAppbmRleCAyMmQ2NDQ2Li5mNDBjZDA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxWaWV3LmNwcApAQCAtNzM1LDcgKzczNSw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6c2Nyb2xsQ29u
dGVudHMoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCiAgICAgdXBkYXRlUmVjdC5pbnRlcnNl
Y3Qoc2Nyb2xsVmlld1JlY3QpOwogCiAgICAgLy8gSW52YWxpZGF0ZSB0aGUgcm9vdCB2aWV3IChu
b3QgdGhlIGJhY2tpbmcgc3RvcmUpLgotICAgIHdpbmRvdy0+aW52YWxpZGF0ZVJvb3RWaWV3KHVw
ZGF0ZVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8pOworICAgIHdpbmRvdy0+aW52YWxpZGF0ZVJv
b3RWaWV3KHVwZGF0ZVJlY3QpOwogCiAgICAgaWYgKG1fZHJhd1BhblNjcm9sbEljb24pIHsKICAg
ICAgICAgLy8gRklYTUU6IHRoZSBwYW4gaWNvbiBpcyBicm9rZW4gd2hlbiBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZyBpcyBvbiwgc2luY2UgaXQgd2lsbCBkcmF3IHVuZGVyIHRoZSBjb21wb3NpdGlu
ZyBsYXllcnMuCkBAIC03NDQsNyArNzQ0LDcgQEAgdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxDb250
ZW50cyhjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSkKICAgICAgICAgSW50UG9pbnQgcGFuSWNv
bkRpcnR5U3F1YXJlTG9jYXRpb24gPSBJbnRQb2ludChtX3BhblNjcm9sbEljb25Qb2ludC54KCkg
LSAocGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCAvIDIpLCBtX3BhblNjcm9sbEljb25Qb2lu
dC55KCkgLSAocGFuSWNvbkRpcnR5U3F1YXJlU2l6ZUxlbmd0aCAvIDIpKTsKICAgICAgICAgSW50
UmVjdCBwYW5TY3JvbGxJY29uRGlydHlSZWN0ID0gSW50UmVjdChwYW5JY29uRGlydHlTcXVhcmVM
b2NhdGlvbiwgSW50U2l6ZShwYW5JY29uRGlydHlTcXVhcmVTaXplTGVuZ3RoLCBwYW5JY29uRGly
dHlTcXVhcmVTaXplTGVuZ3RoKSk7CiAgICAgICAgIHBhblNjcm9sbEljb25EaXJ0eVJlY3QuaW50
ZXJzZWN0KGNsaXBSZWN0KTsKLSAgICAgICAgd2luZG93LT5pbnZhbGlkYXRlQ29udGVudHNBbmRS
b290VmlldyhwYW5TY3JvbGxJY29uRGlydHlSZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsKKyAg
ICAgICAgd2luZG93LT5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290VmlldyhwYW5TY3JvbGxJY29u
RGlydHlSZWN0KTsKICAgICB9CiAKICAgICBpZiAoY2FuQmxpdE9uU2Nyb2xsKCkpIHsgLy8gVGhl
IG1haW4gZnJhbWUgY2FuIGp1c3QgYmxpdCB0aGUgV2ViVmlldyB3aW5kb3cKQEAgLTc2NCw3ICs3
NjQsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzKGNvbnN0IEludFNpemUmIHNj
cm9sbERlbHRhKQogICAgIGZyYW1lUmVjdHNDaGFuZ2VkKCk7CiAKICAgICAvLyBOb3cgYmxpdCB0
aGUgYmFja2luZ3N0b3JlIGludG8gdGhlIHdpbmRvdyB3aGljaCBzaG91bGQgYmUgdmVyeSBmYXN0
LgotICAgIHdpbmRvdy0+aW52YWxpZGF0ZVJvb3RWaWV3KEludFJlY3QoKSwgdHJ1ZSk7CisgICAg
d2luZG93LT5pbnZhbGlkYXRlUm9vdFZpZXcoSW50UmVjdCgpKTsKIH0KIAogYm9vbCBTY3JvbGxW
aWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBj
b25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQpAQCAt
Nzc1LDcgKzc3NSw3IEBAIGJvb2wgU2Nyb2xsVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aChj
b25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjCiAKIHZvaWQgU2Nyb2xsVmll
dzo6c2Nyb2xsQ29udGVudHNTbG93UGF0aChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewot
ICAgIGhvc3RXaW5kb3coKS0+aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCh1cGRhdGVS
ZWN0LCBmYWxzZSk7CisgICAgaG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNGb3JTbG93
U2Nyb2xsKHVwZGF0ZVJlY3QpOwogfQogCiBJbnRQb2ludCBTY3JvbGxWaWV3Ojpyb290Vmlld1Rv
Q29udGVudHMoY29uc3QgSW50UG9pbnQmIHJvb3RWaWV3UG9pbnQpIGNvbnN0CkBAIC0xMDMxLDcg
KzEwMzEsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnBvc2l0aW9uU2Nyb2xsYmFyTGF5ZXJzKCkKICAg
ICBwb3NpdGlvblNjcm9sbENvcm5lckxheWVyKGxheWVyRm9yU2Nyb2xsQ29ybmVyKCksIHNjcm9s
bENvcm5lclJlY3QoKSk7CiB9CiAKLXZvaWQgU2Nyb2xsVmlldzo6cmVwYWludENvbnRlbnRSZWN0
YW5nbGUoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBub3cpCit2b2lkIFNjcm9sbFZpZXc6OnJl
cGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgSW50UmVj
dCBwYWludFJlY3QgPSByZWN0OwogICAgIGlmIChjbGlwc1JlcGFpbnRzKCkgJiYgIXBhaW50c0Vu
dGlyZUNvbnRlbnRzKCkpCkBAIC0xMDQxLDEyICsxMDQxLDEyIEBAIHZvaWQgU2Nyb2xsVmlldzo6
cmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCBub3cpCiAK
ICAgICBpZiAocGxhdGZvcm1XaWRnZXQoKSkgewogICAgICAgICBub3RpZnlQYWdlVGhhdENvbnRl
bnRBcmVhV2lsbFBhaW50KCk7Ci0gICAgICAgIHBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5n
bGUocGFpbnRSZWN0LCBub3cpOworICAgICAgICBwbGF0Zm9ybVJlcGFpbnRDb250ZW50UmVjdGFu
Z2xlKHBhaW50UmVjdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoSG9zdFdp
bmRvdyogd2luZG93ID0gaG9zdFdpbmRvdygpKQotICAgICAgICB3aW5kb3ctPmludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnRlbnRzVG9XaW5kb3cocGFpbnRSZWN0KSwgbm93IC8qaW1t
ZWRpYXRlKi8pOworICAgICAgICB3aW5kb3ctPmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3
KGNvbnRlbnRzVG9XaW5kb3cocGFpbnRSZWN0KSk7CiB9CiAKIEludFJlY3QgU2Nyb2xsVmlldzo6
c2Nyb2xsQ29ybmVyUmVjdCgpIGNvbnN0CkBAIC0xMjM4LDkgKzEyMzgsOSBAQCB2b2lkIFNjcm9s
bFZpZXc6OnVwZGF0ZU92ZXJoYW5nQXJlYXMoKQogICAgIEludFJlY3QgdmVydGljYWxPdmVyaGFu
Z1JlY3Q7CiAgICAgY2FsY3VsYXRlT3ZlcmhhbmdBcmVhc0ZvclBhaW50aW5nKGhvcml6b250YWxP
dmVyaGFuZ1JlY3QsIHZlcnRpY2FsT3ZlcmhhbmdSZWN0KTsKICAgICBpZiAoIWhvcml6b250YWxP
dmVyaGFuZ1JlY3QuaXNFbXB0eSgpKQotICAgICAgICB3aW5kb3ctPmludmFsaWRhdGVDb250ZW50
c0FuZFJvb3RWaWV3KGhvcml6b250YWxPdmVyaGFuZ1JlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8p
OworICAgICAgICB3aW5kb3ctPmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGhvcml6b250
YWxPdmVyaGFuZ1JlY3QpOwogICAgIGlmICghdmVydGljYWxPdmVyaGFuZ1JlY3QuaXNFbXB0eSgp
KQotICAgICAgICB3aW5kb3ctPmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHZlcnRpY2Fs
T3ZlcmhhbmdSZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsKKyAgICAgICAgd2luZG93LT5pbnZh
bGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh2ZXJ0aWNhbE92ZXJoYW5nUmVjdCk7CiB9CiAKIHZv
aWQgU2Nyb2xsVmlldzo6cGFpbnRPdmVyaGFuZ0FyZWFzKEdyYXBoaWNzQ29udGV4dCogY29udGV4
dCwgY29uc3QgSW50UmVjdCYgaG9yaXpvbnRhbE92ZXJoYW5nUmVjdCwgY29uc3QgSW50UmVjdCYg
dmVydGljYWxPdmVyaGFuZ1JlY3QsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCkKQEAgLTEzODMs
NyArMTM4Myw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6YWRkUGFuU2Nyb2xsSWNvbihjb25zdCBJbnRQ
b2ludCYgaWNvblBvc2l0aW9uKQogICAgICAgICByZXR1cm47CiAgICAgbV9kcmF3UGFuU2Nyb2xs
SWNvbiA9IHRydWU7ICAgIAogICAgIG1fcGFuU2Nyb2xsSWNvblBvaW50ID0gSW50UG9pbnQoaWNv
blBvc2l0aW9uLngoKSAtIHBhbkljb25TaXplTGVuZ3RoIC8gMiAsIGljb25Qb3NpdGlvbi55KCkg
LSBwYW5JY29uU2l6ZUxlbmd0aCAvIDIpIDsKLSAgICB3aW5kb3ctPmludmFsaWRhdGVDb250ZW50
c0FuZFJvb3RWaWV3KEludFJlY3QobV9wYW5TY3JvbGxJY29uUG9pbnQsIEludFNpemUocGFuSWNv
blNpemVMZW5ndGgsIHBhbkljb25TaXplTGVuZ3RoKSksIHRydWUgLyppbW1lZGlhdGUqLyk7Cisg
ICAgd2luZG93LT5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290VmlldyhJbnRSZWN0KG1fcGFuU2Ny
b2xsSWNvblBvaW50LCBJbnRTaXplKHBhbkljb25TaXplTGVuZ3RoLCBwYW5JY29uU2l6ZUxlbmd0
aCkpKTsKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpyZW1vdmVQYW5TY3JvbGxJY29uKCkKQEAgLTEz
OTIsNyArMTM5Miw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6cmVtb3ZlUGFuU2Nyb2xsSWNvbigpCiAg
ICAgaWYgKCF3aW5kb3cpCiAgICAgICAgIHJldHVybjsKICAgICBtX2RyYXdQYW5TY3JvbGxJY29u
ID0gZmFsc2U7IAotICAgIHdpbmRvdy0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoSW50
UmVjdChtX3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCwgcGFu
SWNvblNpemVMZW5ndGgpKSwgdHJ1ZSAvKmltbWVkaWF0ZSovKTsKKyAgICB3aW5kb3ctPmludmFs
aWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KEludFJlY3QobV9wYW5TY3JvbGxJY29uUG9pbnQsIElu
dFNpemUocGFuSWNvblNpemVMZW5ndGgsIHBhbkljb25TaXplTGVuZ3RoKSkpOwogfQogCiB2b2lk
IFNjcm9sbFZpZXc6OnNldFNjcm9sbE9yaWdpbihjb25zdCBJbnRQb2ludCYgb3JpZ2luLCBib29s
IHVwZGF0ZVBvc2l0aW9uQXRBbGwsIGJvb2wgdXBkYXRlUG9zaXRpb25TeW5jaHJvbm91c2x5KQpA
QCAtMTQ5NCw3ICsxNDk0LDcgQEAgYm9vbCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVNjcm9sbChTY3Jv
bGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5KQogICAgIHJldHVybiB0cnVlOwogfQogCi12
b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50
UmVjdCYsIGJvb2wgLypub3cqLykKK3ZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1SZXBhaW50Q29u
dGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsVmlldy5oCmluZGV4IGQwMjc3MTguLmQ3ODlmYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9TY3JvbGxWaWV3LmgKQEAgLTM0MSw3ICszNDEsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAg
ICAgU2Nyb2xsVmlldygpOwogCi0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnRDb250ZW50UmVjdGFu
Z2xlKGNvbnN0IEludFJlY3QmLCBib29sIG5vdyA9IGZhbHNlKTsKKyAgICB2aXJ0dWFsIHZvaWQg
cmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9p
ZCBwYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IEludFJlY3QmIGRhbWFnZVJl
Y3QpID0gMDsKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludE92ZXJoYW5nQXJlYXMoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgSW50UmVjdCYgaG9yaXpvbnRhbE92ZXJoYW5nQXJlYSwgY29uc3QgSW50
UmVjdCYgdmVydGljYWxPdmVyaGFuZ0FyZWEsIGNvbnN0IEludFJlY3QmIGRpcnR5UmVjdCk7CkBA
IC00MzcsNyArNDM3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtU2V0U2Nyb2xsUG9z
aXRpb24oY29uc3QgSW50UG9pbnQmKTsKICAgICBib29sIHBsYXRmb3JtU2Nyb2xsKFNjcm9sbERp
cmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkpOwogICAgIHZvaWQgcGxhdGZvcm1TZXRTY3JvbGxi
YXJzU3VwcHJlc3NlZChib29sIHJlcGFpbnRPblVuc3VwcHJlc3MpOwotICAgIHZvaWQgcGxhdGZv
cm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiwgYm9vbCBub3cpOworICAg
IHZvaWQgcGxhdGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0Jik7CiAg
ICAgYm9vbCBwbGF0Zm9ybUlzT2Zmc2NyZWVuKCkgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybVNl
dFNjcm9sbGJhck92ZXJsYXlTdHlsZShTY3JvbGxiYXJPdmVybGF5U3R5bGUpOwogICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvU2Nyb2xsVmlld0lPUy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxWaWV3SU9TLm1tCmluZGV4IDIwYjBhZDEu
LmU1MzcyMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxW
aWV3SU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9TY3JvbGxWaWV3SU9T
Lm1tCkBAIC0yMTIsMTQgKzIxMiwxMyBAQCBib29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2Nyb2xs
KFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHkpCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29u
c3QgSW50UmVjdCYgcmVjdCwgYm9vbCAvKm5vdyovKQordm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9y
bVJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgQkVH
SU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgTlNWaWV3ICp2aWV3ID0gZG9jdW1lbnRW
aWV3KCk7CiAKICAgICBbdmlldyBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6cmVjdF07ICAgIAotICAg
IC8vIEZJWE1FOiBIYW5kbGUgIm5vdyIuCiAKICAgICBFTkRfQkxPQ0tfT0JKQ19FWENFUFRJT05T
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbFZpZXdN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbQppbmRl
eCBkOGNlMjZkLi4yMTMxYTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU2Nyb2xsVmlld01hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsVmlld01hYy5tbQpAQCAtMTYwLDE1ICsxNjAsMTIgQEAgYm9vbCBTY3JvbGxWaWV3OjpwbGF0
Zm9ybVNjcm9sbChTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5KQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAotdm9pZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlcGFpbnRDb250ZW50UmVj
dGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wgbm93KQordm9pZCBTY3JvbGxWaWV3Ojpw
bGF0Zm9ybVJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAg
ICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogICAgIE5TVmlldyAqdmlldyA9IGRvY3Vt
ZW50VmlldygpOwogICAgIFt2aWV3IHNldE5lZWRzRGlzcGxheUluUmVjdDpyZWN0XTsKLSAgICBp
ZiAobm93KSB7Ci0gICAgICAgIFtbdmlldyB3aW5kb3ddIGRpc3BsYXlJZk5lZWRlZF07Ci0gICAg
ICAgIFtbdmlldyB3aW5kb3ddIGZsdXNoV2luZG93SWZOZWVkZWRdOwotICAgIH0KKwogICAgIEVO
RF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKaW5kZXggY2FmOTk0Ni4uNzFjNmNmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveC5jcHAKQEAgLTE2MTgsNyArMTYxOCw3IEBAIGJvb2wgUmVuZGVyQm94OjpyZXBh
aW50TGF5ZXJSZWN0c0ZvckltYWdlKFdyYXBwZWRJbWFnZVB0ciBpbWFnZSwgY29uc3QgRmlsbExh
eWVyCiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBsYXll
clJlbmRlcmVyLT5yZXBhaW50UmVjdGFuZ2xlKHJlY3RUb1JlcGFpbnQsIGZhbHNlLCBzaG91bGRD
bGlwVG9MYXllcik7CisgICAgICAgICAgICBsYXllclJlbmRlcmVyLT5yZXBhaW50UmVjdGFuZ2xl
KHJlY3RUb1JlcGFpbnQsIHNob3VsZENsaXBUb0xheWVyKTsKICAgICAgICAgICAgIGlmIChnZW9t
ZXRyeS5kZXN0UmVjdCgpID09IHJlbmRlcmVyUmVjdCkKICAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dU
aHJlYWQuY3BwCmluZGV4IGM2NzZmNTQuLmZkNzU1YTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTQwNiw3ICs0MDYsNyBAQCBib29sIFJl
bmRlckZsb3dUaHJlYWQ6OnNob3VsZFJlcGFpbnQoY29uc3QgTGF5b3V0UmVjdCYgcikgY29uc3QK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpyZXBhaW50UmVj
dGFuZ2xlSW5SZWdpb25zKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGltbWVk
aWF0ZSkgY29uc3QKK3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6cmVwYWludFJlY3RhbmdsZUluUmVn
aW9ucyhjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCkgY29uc3QKIHsKICAgICBpZiAoIXNo
b3VsZFJlcGFpbnQocmVwYWludFJlY3QpIHx8ICFoYXNWYWxpZFJlZ2lvbkluZm8oKSkKICAgICAg
ICAgcmV0dXJuOwpAQCAtNDE4LDcgKzQxOCw3IEBAIHZvaWQgUmVuZGVyRmxvd1RocmVhZDo6cmVw
YWludFJlY3RhbmdsZUluUmVnaW9ucyhjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwKICAg
ICBDdXJyZW50UmVuZGVyRmxvd1RocmVhZERpc2FibGVyIGRpc2FibGVyKCZ2aWV3KCkpOwogICAg
IAogICAgIGZvciAoYXV0byYgcmVnaW9uIDogbV9yZWdpb25MaXN0KQotICAgICAgICByZWdpb24t
PnJlcGFpbnRGbG93VGhyZWFkQ29udGVudChyZXBhaW50UmVjdCwgaW1tZWRpYXRlKTsKKyAgICAg
ICAgcmVnaW9uLT5yZXBhaW50Rmxvd1RocmVhZENvbnRlbnQocmVwYWludFJlY3QpOwogfQogCiBS
ZW5kZXJSZWdpb24qIFJlbmRlckZsb3dUaHJlYWQ6OnJlZ2lvbkF0QmxvY2tPZmZzZXQoY29uc3Qg
UmVuZGVyQm94KiBjbGFtcEJveCwgTGF5b3V0VW5pdCBvZmZzZXQsIGJvb2wgZXh0ZW5kTGFzdFJl
Z2lvbiwgUmVnaW9uQXV0b0dlbmVyYXRpb25Qb2xpY3kgYXV0b0dlbmVyYXRpb25Qb2xpY3kpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAppbmRleCBiZDJhMGEy
Li5hYTU2YzBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxv
d1RocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmgKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlk
Q2hhbmdlKFN0eWxlRGlmZmVyZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKSBvdmVy
cmlkZTsKIAotICAgIHZvaWQgcmVwYWludFJlY3RhbmdsZUluUmVnaW9ucyhjb25zdCBMYXlvdXRS
ZWN0JiwgYm9vbCBpbW1lZGlhdGUpIGNvbnN0OworICAgIHZvaWQgcmVwYWludFJlY3RhbmdsZUlu
UmVnaW9ucyhjb25zdCBMYXlvdXRSZWN0JikgY29uc3Q7CiAgICAgCiAgICAgTGF5b3V0UG9pbnQg
YWRqdXN0ZWRQb3NpdGlvblJlbGF0aXZlVG9PZmZzZXRQYXJlbnQoY29uc3QgUmVuZGVyQm94TW9k
ZWxPYmplY3QmLCBjb25zdCBMYXlvdXRQb2ludCYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyLmNwcAppbmRleCBhMGRiMmNiLi44MGRjYTc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTE0NDQsNyArMTQ0NCw3IEBAIFJlbmRlckxh
eWVyKiBSZW5kZXJMYXllcjo6ZW5jbG9zaW5nRmlsdGVyUmVwYWludExheWVyKCkgY29uc3QKICAg
ICByZXR1cm4gMDsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6c2V0RmlsdGVyQmFja2VuZE5lZWRz
UmVwYWludGluZ0luUmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0ZSkK
K3ZvaWQgUmVuZGVyTGF5ZXI6OnNldEZpbHRlckJhY2tlbmROZWVkc1JlcGFpbnRpbmdJblJlY3Qo
Y29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKIHsKICAgICBpZiAocmVjdC5pc0VtcHR5KCkpCiAgICAg
ICAgIHJldHVybjsKQEAgLTE0NzEsMTIgKzE0NzEsMTIgQEAgdm9pZCBSZW5kZXJMYXllcjo6c2V0
RmlsdGVyQmFja2VuZE5lZWRzUmVwYWludGluZ0luUmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0
LAogICAgIH0KIAogICAgIGlmIChwYXJlbnRMYXllci0+cGFpbnRzV2l0aEZpbHRlcnMoKSkgewot
ICAgICAgICBwYXJlbnRMYXllci0+c2V0RmlsdGVyQmFja2VuZE5lZWRzUmVwYWludGluZ0luUmVj
dChwYXJlbnRMYXllclJlY3QsIGltbWVkaWF0ZSk7CisgICAgICAgIHBhcmVudExheWVyLT5zZXRG
aWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KHBhcmVudExheWVyUmVjdCk7CiAgICAg
ICAgIHJldHVybjsgICAgICAgIAogICAgIH0KICAgICAKICAgICBpZiAocGFyZW50TGF5ZXItPmlz
Um9vdExheWVyKCkpIHsKLSAgICAgICAgdG9SZW5kZXJWaWV3KHBhcmVudExheWVyLT5yZW5kZXJl
cigpKS5yZXBhaW50Vmlld1JlY3RhbmdsZShwYXJlbnRMYXllclJlY3QsIGltbWVkaWF0ZSk7Cisg
ICAgICAgIHRvUmVuZGVyVmlldyhwYXJlbnRMYXllci0+cmVuZGVyZXIoKSkucmVwYWludFZpZXdS
ZWN0YW5nbGUocGFyZW50TGF5ZXJSZWN0KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKaW5kZXggMzM5YjlkOC4uZjc5MWU1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTYwOCw3ICs2MDgs
NyBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIFJlbmRlckxheWVyKiBl
bmNsb3NpbmdGaWx0ZXJMYXllcihJbmNsdWRlU2VsZk9yTm90ID0gSW5jbHVkZVNlbGYpIGNvbnN0
OwogICAgIFJlbmRlckxheWVyKiBlbmNsb3NpbmdGaWx0ZXJSZXBhaW50TGF5ZXIoKSBjb25zdDsK
LSAgICB2b2lkIHNldEZpbHRlckJhY2tlbmROZWVkc1JlcGFpbnRpbmdJblJlY3QoY29uc3QgTGF5
b3V0UmVjdCYsIGJvb2wgaW1tZWRpYXRlKTsKKyAgICB2b2lkIHNldEZpbHRlckJhY2tlbmROZWVk
c1JlcGFpbnRpbmdJblJlY3QoY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIGJvb2wgaGFzQW5jZXN0
b3JXaXRoRmlsdGVyT3V0c2V0cygpIGNvbnN0OwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCmluZGV4IDMwZGIzMDguLjRj
NDlkZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNv
bHVtblNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29s
dW1uU2V0LmNwcApAQCAtNDc5LDcgKzQ3OSw3IEBAIHZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6
OnBhaW50Q29sdW1uUnVsZXMoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvCiAg
ICAgfQogfQogCi12b2lkIFJlbmRlck11bHRpQ29sdW1uU2V0OjpyZXBhaW50Rmxvd1RocmVhZENv
bnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9p
ZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6cmVwYWludEZsb3dUaHJlYWRDb250ZW50KGNvbnN0IExh
eW91dFJlY3QmIHJlcGFpbnRSZWN0KQogewogICAgIC8vIEZpZ3VyZSBvdXQgdGhlIHN0YXJ0IGFu
ZCBlbmQgY29sdW1ucyBhbmQgb25seSBjaGVjayB3aXRoaW4gdGhhdCByYW5nZSBzbyB0aGF0IHdl
IGRvbid0IHdhbGsgdGhlCiAgICAgLy8gZW50aXJlIGNvbHVtbiBzZXQuIFB1dCB0aGUgcmVwYWlu
dCByZWN0IGludG8gZmxvdyB0aHJlYWQgY29vcmRpbmF0ZXMgYnkgZmxpcHBpbmcgaXQgZmlyc3Qu
CkBAIC01MTMsNyArNTEzLDcgQEAgdm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6cmVwYWludEZs
b3dUaHJlYWRDb250ZW50KGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWMKICAgICAgICAgTGF5
b3V0UmVjdCBmbG93VGhyZWFkT3ZlcmZsb3dQb3J0aW9uID0gZmxvd1RocmVhZFBvcnRpb25PdmVy
Zmxvd1JlY3QoZmxvd1RocmVhZFBvcnRpb24sIGksIGNvbENvdW50LCBjb2xHYXApOwogCiAgICAg
ICAgIC8vIERvIGEgcmVwYWludCBmb3IgdGhpcyBzcGVjaWZpYyBjb2x1bW4uCi0gICAgICAgIHJl
cGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZShyZXBhaW50UmVjdCwgaW1tZWRpYXRlLCBm
bG93VGhyZWFkUG9ydGlvbiwgY29sUmVjdC5sb2NhdGlvbigpLCAmZmxvd1RocmVhZE92ZXJmbG93
UG9ydGlvbik7CisgICAgICAgIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZShyZXBh
aW50UmVjdCwgZmxvd1RocmVhZFBvcnRpb24sIGNvbFJlY3QubG9jYXRpb24oKSwgJmZsb3dUaHJl
YWRPdmVyZmxvd1BvcnRpb24pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaAppbmRleCA0MDFiNWJjLi45YTQ5M2UxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaApAQCAt
OTgsNyArOTgsNyBAQCBwcml2YXRlOgogICAgIC8vIEZJWE1FOiBUaGlzIHdpbGwgY2hhbmdlIG9u
Y2Ugd2UgaGF2ZSBjb2x1bW4gc2V0cyBjb25zdHJhaW5lZCBieSBlbmNsb3NpbmcgcGFnZXMsIGV0
Yy4KICAgICB2aXJ0dWFsIExheW91dFVuaXQgbG9naWNhbEhlaWdodE9mQWxsRmxvd1RocmVhZENv
bnRlbnQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2NvbXB1dGVkQ29sdW1uSGVpZ2h0OyB9
CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudChjb25zdCBM
YXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUpIG92ZXJyaWRlOworICAgIHZp
cnR1YWwgdm9pZCByZXBhaW50Rmxvd1RocmVhZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVw
YWludFJlY3QpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lkIGNvbGxlY3RMYXllckZyYWdt
ZW50cyhMYXllckZyYWdtZW50cyYsIGNvbnN0IExheW91dFJlY3QmIGxheWVyQm91bmRpbmdCb3gs
IGNvbnN0IExheW91dFJlY3QmIGRpcnR5UmVjdCkgb3ZlcnJpZGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggMjkzOWViNC4uMTUxNzVjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTEyMjUsMjEgKzEyMjUs
MjEgQEAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogUmVuZGVyT2JqZWN0Ojpjb250YWluZXJGb3JS
ZXBhaW50KCkgY29uc3QKICAgICByZXR1cm4gcmVwYWludENvbnRhaW5lcjsKIH0KIAotdm9pZCBS
ZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2luZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVs
T2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBMYXlvdXRSZWN0JiByLCBib29sIGltbWVk
aWF0ZSwgYm9vbCBzaG91bGRDbGlwVG9MYXllcikgY29uc3QKK3ZvaWQgUmVuZGVyT2JqZWN0Ojpy
ZXBhaW50VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWlu
dENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYgciwgYm9vbCBzaG91bGRDbGlwVG9MYXllcikg
Y29uc3QKIHsKICAgICBpZiAoIXJlcGFpbnRDb250YWluZXIpIHsKLSAgICAgICAgdmlldygpLnJl
cGFpbnRWaWV3UmVjdGFuZ2xlKHIsIGltbWVkaWF0ZSk7CisgICAgICAgIHZpZXcoKS5yZXBhaW50
Vmlld1JlY3RhbmdsZShyKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmIChyZXBh
aW50Q29udGFpbmVyLT5pc1JlbmRlckZsb3dUaHJlYWQoKSkgewotICAgICAgICB0b1JlbmRlckZs
b3dUaHJlYWQocmVwYWludENvbnRhaW5lciktPnJlcGFpbnRSZWN0YW5nbGVJblJlZ2lvbnMociwg
aW1tZWRpYXRlKTsKKyAgICAgICAgdG9SZW5kZXJGbG93VGhyZWFkKHJlcGFpbnRDb250YWluZXIp
LT5yZXBhaW50UmVjdGFuZ2xlSW5SZWdpb25zKHIpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CiAjaWYgRU5BQkxFKENTU19GSUxURVJTKQogICAgIGlmIChyZXBhaW50Q29udGFpbmVyLT5oYXNG
aWx0ZXIoKSAmJiByZXBhaW50Q29udGFpbmVyLT5sYXllcigpICYmIHJlcGFpbnRDb250YWluZXIt
PmxheWVyKCktPnJlcXVpcmVzRnVsbExheWVySW1hZ2VGb3JGaWx0ZXJzKCkpIHsKLSAgICAgICAg
cmVwYWludENvbnRhaW5lci0+bGF5ZXIoKS0+c2V0RmlsdGVyQmFja2VuZE5lZWRzUmVwYWludGlu
Z0luUmVjdChyLCBpbW1lZGlhdGUpOworICAgICAgICByZXBhaW50Q29udGFpbmVyLT5sYXllcigp
LT5zZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KHIpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogI2VuZGlmCkBAIC0xMjQ5LDcgKzEyNDksNyBAQCB2b2lkIFJlbmRlck9iamVj
dDo6cmVwYWludFVzaW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJl
cGFpbnRDbwogICAgICAgICBBU1NFUlQocmVwYWludENvbnRhaW5lciA9PSAmdik7CiAgICAgICAg
IGJvb2wgdmlld0hhc0NvbXBvc2l0ZWRMYXllciA9IHYuaGFzTGF5ZXIoKSAmJiB2LmxheWVyKCkt
PmlzQ29tcG9zaXRlZCgpOwogICAgICAgICBpZiAoIXZpZXdIYXNDb21wb3NpdGVkTGF5ZXIgfHwg
di5sYXllcigpLT5iYWNraW5nKCktPnBhaW50c0ludG9XaW5kb3coKSkgewotICAgICAgICAgICAg
di5yZXBhaW50Vmlld1JlY3RhbmdsZSh2aWV3SGFzQ29tcG9zaXRlZExheWVyICYmIHYubGF5ZXIo
KS0+dHJhbnNmb3JtKCkgPyB2LmxheWVyKCktPnRyYW5zZm9ybSgpLT5tYXBSZWN0KHIpIDogciwg
aW1tZWRpYXRlKTsKKyAgICAgICAgICAgIHYucmVwYWludFZpZXdSZWN0YW5nbGUodmlld0hhc0Nv
bXBvc2l0ZWRMYXllciAmJiB2LmxheWVyKCktPnRyYW5zZm9ybSgpID8gdi5sYXllcigpLT50cmFu
c2Zvcm0oKS0+bWFwUmVjdChyKSA6IHIpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgfQpAQCAtMTI2MCw3ICsxMjYwLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRV
c2luZ0NvbnRhaW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q28KICAg
ICB9CiB9CiAKLXZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50KGJvb2wgaW1tZWRpYXRlKSBjb25z
dAordm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnQoKSBjb25zdAogewogICAgIC8vIERvbid0IHJl
cGFpbnQgaWYgd2UncmUgdW5yb290ZWQgKG5vdGUgdGhhdCB2aWV3KCkgc3RpbGwgcmV0dXJucyB0
aGUgdmlldyB3aGVuIHVucm9vdGVkKQogICAgIFJlbmRlclZpZXcqIHZpZXc7CkBAIC0xMjcxLDEw
ICsxMjcxLDEwIEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50KGJvb2wgaW1tZWRpYXRlKSBj
b25zdAogICAgICAgICByZXR1cm47IC8vIERvbid0IHJlcGFpbnQgaWYgd2UncmUgcHJpbnRpbmcu
CiAKICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gY29udGFp
bmVyRm9yUmVwYWludCgpOwotICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFp
bmVyID8gcmVwYWludENvbnRhaW5lciA6IHZpZXcsIGNsaXBwZWRPdmVyZmxvd1JlY3RGb3JSZXBh
aW50KHJlcGFpbnRDb250YWluZXIpLCBpbW1lZGlhdGUpOworICAgIHJlcGFpbnRVc2luZ0NvbnRh
aW5lcihyZXBhaW50Q29udGFpbmVyID8gcmVwYWludENvbnRhaW5lciA6IHZpZXcsIGNsaXBwZWRP
dmVyZmxvd1JlY3RGb3JSZXBhaW50KHJlcGFpbnRDb250YWluZXIpKTsKIH0KIAotdm9pZCBSZW5k
ZXJPYmplY3Q6OnJlcGFpbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgciwgYm9vbCBpbW1l
ZGlhdGUsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIpIGNvbnN0Cit2b2lkIFJlbmRlck9iamVjdDo6
cmVwYWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByLCBib29sIHNob3VsZENsaXBUb0xh
eWVyKSBjb25zdAogewogICAgIC8vIERvbid0IHJlcGFpbnQgaWYgd2UncmUgdW5yb290ZWQgKG5v
dGUgdGhhdCB2aWV3KCkgc3RpbGwgcmV0dXJucyB0aGUgdmlldyB3aGVuIHVucm9vdGVkKQogICAg
IFJlbmRlclZpZXcqIHZpZXc7CkBAIC0xMjkyLDcgKzEyOTIsNyBAQCB2b2lkIFJlbmRlck9iamVj
dDo6cmVwYWludFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByLCBib29sIGltbWVkaWF0ZSwg
Ym9vbCBzaAogCiAgICAgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciA9
IGNvbnRhaW5lckZvclJlcGFpbnQoKTsKICAgICBjb21wdXRlUmVjdEZvclJlcGFpbnQocmVwYWlu
dENvbnRhaW5lciwgZGlydHlSZWN0KTsKLSAgICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWlu
dENvbnRhaW5lciA/IHJlcGFpbnRDb250YWluZXIgOiB2aWV3LCBkaXJ0eVJlY3QsIGltbWVkaWF0
ZSwgc2hvdWxkQ2xpcFRvTGF5ZXIpOworICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50
Q29udGFpbmVyID8gcmVwYWludENvbnRhaW5lciA6IHZpZXcsIGRpcnR5UmVjdCwgc2hvdWxkQ2xp
cFRvTGF5ZXIpOwogfQogCiB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFNsb3dSZXBhaW50T2Jq
ZWN0KCkgY29uc3QKQEAgLTEzMjEsNyArMTMyMSw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBh
aW50U2xvd1JlcGFpbnRPYmplY3QoKSBjb25zdAogICAgIH0gZWxzZQogICAgICAgICByZXBhaW50
UmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QoY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQo
cmVwYWludENvbnRhaW5lcikpOwogCi0gICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRD
b250YWluZXIsIHJlcGFpbnRSZWN0LCBmYWxzZSwgc2hvdWxkQ2xpcFRvTGF5ZXIpOworICAgIHJl
cGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyLCByZXBhaW50UmVjdCwgc2hvdWxk
Q2xpcFRvTGF5ZXIpOwogfQogCiBJbnRSZWN0IFJlbmRlck9iamVjdDo6cGl4ZWxTbmFwcGVkQWJz
b2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAppbmRleCAwZGYxMDUxLi4zNmFhODFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC03MjMsMTQgKzcyMywxNCBAQCBwdWJsaWM6CiAgICAg
UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogY29udGFpbmVyRm9yUmVwYWludCgpIGNvbnN0OwogICAg
IC8vIEFjdHVhbGx5IGRvIHRoZSByZXBhaW50IG9mIHJlY3QgciBmb3IgdGhpcyBvYmplY3Qgd2hp
Y2ggaGFzIGJlZW4gY29tcHV0ZWQgaW4gdGhlIGNvb3JkaW5hdGUgc3BhY2UKICAgICAvLyBvZiBy
ZXBhaW50Q29udGFpbmVyLiBJZiByZXBhaW50Q29udGFpbmVyIGlzIDAsIHJlcGFpbnQgdmlhIHRo
ZSB2aWV3LgotICAgIHZvaWQgcmVwYWludFVzaW5nQ29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVy
TW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGNvbnN0IExheW91dFJlY3QmLCBib29sIGlt
bWVkaWF0ZSA9IGZhbHNlLCBib29sIHNob3VsZENsaXBUb0xheWVyID0gdHJ1ZSkgY29uc3Q7Cisg
ICAgdm9pZCByZXBhaW50VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgY29uc3QgTGF5b3V0UmVjdCYsIGJvb2wgc2hvdWxkQ2xpcFRv
TGF5ZXIgPSB0cnVlKSBjb25zdDsKICAgICAKICAgICAvLyBSZXBhaW50IHRoZSBlbnRpcmUgb2Jq
ZWN0LiAgQ2FsbGVkIHdoZW4sIGUuZy4sIHRoZSBjb2xvciBvZiBhIGJvcmRlciBjaGFuZ2VzLCBv
ciB3aGVuIGEgYm9yZGVyCiAgICAgLy8gc3R5bGUgY2hhbmdlcy4KLSAgICB2b2lkIHJlcGFpbnQo
Ym9vbCBpbW1lZGlhdGUgPSBmYWxzZSkgY29uc3Q7CisgICAgdm9pZCByZXBhaW50KCkgY29uc3Q7
CiAKICAgICAvLyBSZXBhaW50IGEgc3BlY2lmaWMgc3VicmVjdGFuZ2xlIHdpdGhpbiBhIGdpdmVu
IG9iamVjdC4gIFRoZSByZWN0IHxyfCBpcyBpbiB0aGUgb2JqZWN0J3MgY29vcmRpbmF0ZSBzcGFj
ZS4KLSAgICB2b2lkIHJlcGFpbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYsIGJvb2wgaW1t
ZWRpYXRlID0gZmFsc2UsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIgPSB0cnVlKSBjb25zdDsKKyAg
ICB2b2lkIHJlcGFpbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYsIGJvb2wgc2hvdWxkQ2xp
cFRvTGF5ZXIgPSB0cnVlKSBjb25zdDsKIAogICAgIC8vIFJlcGFpbnQgYSBzbG93IHJlcGFpbnQg
b2JqZWN0LCB3aGljaCwgYXQgdGhpcyB0aW1lLCBtZWFucyB3ZSBhcmUgcmVwYWludGluZyBhbiBv
YmplY3Qgd2l0aCBiYWNrZ3JvdW5kLWF0dGFjaG1lbnQ6Zml4ZWQuCiAgICAgdm9pZCByZXBhaW50
U2xvd1JlcGFpbnRPYmplY3QoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZWdpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlZ2lvbi5jcHAKaW5kZXggZDJjZmYzYy4uMWI0NjFiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAKQEAgLTI2MSwxMiArMjYxLDEyIEBAIHZvaWQgUmVuZGVy
UmVnaW9uOjpjb21wdXRlT3ZlcmZsb3dGcm9tRmxvd1RocmVhZCgpCiAgICAgdXBkYXRlU2Nyb2xs
SW5mb0FmdGVyTGF5b3V0KCk7CiB9CiAKLXZvaWQgUmVuZGVyUmVnaW9uOjpyZXBhaW50Rmxvd1Ro
cmVhZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRl
KQordm9pZCBSZW5kZXJSZWdpb246OnJlcGFpbnRGbG93VGhyZWFkQ29udGVudChjb25zdCBMYXlv
dXRSZWN0JiByZXBhaW50UmVjdCkKIHsKLSAgICByZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0
YW5nbGUocmVwYWludFJlY3QsIGltbWVkaWF0ZSwgZmxvd1RocmVhZFBvcnRpb25SZWN0KCksIGNv
bnRlbnRCb3hSZWN0KCkubG9jYXRpb24oKSk7CisgICAgcmVwYWludEZsb3dUaHJlYWRDb250ZW50
UmVjdGFuZ2xlKHJlcGFpbnRSZWN0LCBmbG93VGhyZWFkUG9ydGlvblJlY3QoKSwgY29udGVudEJv
eFJlY3QoKS5sb2NhdGlvbigpKTsKIH0KIAotdm9pZCBSZW5kZXJSZWdpb246OnJlcGFpbnRGbG93
VGhyZWFkQ29udGVudFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9v
bCBpbW1lZGlhdGUsIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCwgY29u
c3QgTGF5b3V0UG9pbnQmIHJlZ2lvbkxvY2F0aW9uLCBjb25zdCBMYXlvdXRSZWN0KiBmbG93VGhy
ZWFkUG9ydGlvbkNsaXBSZWN0KQordm9pZCBSZW5kZXJSZWdpb246OnJlcGFpbnRGbG93VGhyZWFk
Q29udGVudFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgY29uc3QgTGF5
b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25SZWN0LCBjb25zdCBMYXlvdXRQb2ludCYgcmVnaW9u
TG9jYXRpb24sIGNvbnN0IExheW91dFJlY3QqIGZsb3dUaHJlYWRQb3J0aW9uQ2xpcFJlY3QpCiB7
CiAgICAgQVNTRVJUKGlzVmFsaWQoKSk7CiAKQEAgLTI5Miw3ICsyOTIsNyBAQCB2b2lkIFJlbmRl
clJlZ2lvbjo6cmVwYWludEZsb3dUaHJlYWRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJl
Y3QmIHJlcGFpbnRSZQogICAgIGZsaXBGb3JXcml0aW5nTW9kZShjbGlwcGVkUmVjdCk7CiAgICAg
CiAgICAgLy8gSXNzdWUgdGhlIHJlcGFpbnQuCi0gICAgcmVwYWludFJlY3RhbmdsZShjbGlwcGVk
UmVjdCwgaW1tZWRpYXRlKTsKKyAgICByZXBhaW50UmVjdGFuZ2xlKGNsaXBwZWRSZWN0KTsKIH0K
IAogdm9pZCBSZW5kZXJSZWdpb246Omluc3RhbGxGbG93VGhyZWFkKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZWdpb24uaAppbmRleCA3ODQ4OTI1Li5jNWYwZWIzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCkBAIC0xMTAsNyArMTEwLDcgQEAgcHVibGlj
OgogICAgIC8vIFdoZXRoZXIgb3Igbm90IHRoaXMgcmVnaW9uIGlzIGEgc2V0LgogICAgIHZpcnR1
YWwgYm9vbCBpc1JlbmRlclJlZ2lvblNldCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
Ci0gICAgdmlydHVhbCB2b2lkIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudChjb25zdCBMYXlvdXRS
ZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUpOworICAgIHZpcnR1YWwgdm9pZCByZXBh
aW50Rmxvd1RocmVhZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QpOwogCiAg
ICAgdmlydHVhbCB2b2lkIGNvbGxlY3RMYXllckZyYWdtZW50cyhMYXllckZyYWdtZW50cyYsIGNv
bnN0IExheW91dFJlY3QmLCBjb25zdCBMYXlvdXRSZWN0JikgeyB9CiAKQEAgLTE0OSw3ICsxNDks
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgfTsKIAogICAgIExheW91dFJlY3Qgb3ZlcmZsb3dSZWN0Rm9y
Rmxvd1RocmVhZFBvcnRpb24oY29uc3QgTGF5b3V0UmVjdCYgZmxvd1RocmVhZFBvcnRpb25SZWN0
LCBib29sIGlzRmlyc3RQb3J0aW9uLCBib29sIGlzTGFzdFBvcnRpb24sIE92ZXJmbG93VHlwZSk7
Ci0gICAgdm9pZCByZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0
UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRlLCBjb25zdCBMYXlvdXRSZWN0JiBmbG93
VGhyZWFkUG9ydGlvblJlY3QsIGNvbnN0IExheW91dFBvaW50JiByZWdpb25Mb2NhdGlvbiwgY29u
c3QgTGF5b3V0UmVjdCogZmxvd1RocmVhZFBvcnRpb25DbGlwUmVjdCA9IDApOworICAgIHZvaWQg
cmVwYWludEZsb3dUaHJlYWRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFp
bnRSZWN0LCBjb25zdCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvblJlY3QsIGNvbnN0IExh
eW91dFBvaW50JiByZWdpb25Mb2NhdGlvbiwgY29uc3QgTGF5b3V0UmVjdCogZmxvd1RocmVhZFBv
cnRpb25DbGlwUmVjdCA9IDApOwogCiAgICAgdm9pZCBjb21wdXRlT3ZlcmZsb3dGcm9tRmxvd1Ro
cmVhZCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKaW5kZXggNDRk
MGJjZC4uODU3ODkzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApA
QCAtNTM5LDkgKzUzOSw4IEBAIHZvaWQgUmVuZGVyVmlldzo6cmVwYWludFJvb3RDb250ZW50cygp
CiAgICAgcmVwYWludCgpOwogfQogCi12b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFu
Z2xlKGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGltbWVkaWF0ZSkgY29uc3QK
K3ZvaWQgUmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYg
cmVwYWludFJlY3QpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUU6IEdldCByaWQgb2YgdGhlICdpbW1l
ZGlhdGUnIGFyZ3VtZW50LiBJdCBvbmx5IHdvcmtzIG9uIE1hYyBXSzEgYW5kIHNob3VsZCBuZXZl
ciBiZSB1c2VkLgogICAgIGlmICghc2hvdWxkUmVwYWludChyZXBhaW50UmVjdCkpCiAgICAgICAg
IHJldHVybjsKIApAQCAtNTU4LDE1ICs1NTcsMTUgQEAgdm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50
Vmlld1JlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGkK
ICNlbmRpZgogICAgICAgICBhZGp1c3RlZFJlY3QubW92ZUJ5KC12aWV3UmVjdC5sb2NhdGlvbigp
KTsKICAgICAgICAgYWRqdXN0ZWRSZWN0Lm1vdmVCeShvd25lckJveC5jb250ZW50Qm94UmVjdCgp
LmxvY2F0aW9uKCkpOwotICAgICAgICBvd25lckJveC5yZXBhaW50UmVjdGFuZ2xlKGFkanVzdGVk
UmVjdCwgaW1tZWRpYXRlKTsKKyAgICAgICAgb3duZXJCb3gucmVwYWludFJlY3RhbmdsZShhZGp1
c3RlZFJlY3QpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIEludFJlY3QgcGl4ZWxTbmFw
cGVkUmVjdCA9IHBpeGVsU25hcHBlZEludFJlY3QocmVwYWludFJlY3QpOwogCiAgICAgZnJhbWVW
aWV3KCkuYWRkVHJhY2tlZFJlcGFpbnRSZWN0KHBpeGVsU25hcHBlZFJlY3QpOwogCi0gICAgaWYg
KCFtX2FjY3VtdWxhdGVkUmVwYWludFJlZ2lvbiB8fCBpbW1lZGlhdGUpIHsKLSAgICAgICAgZnJh
bWVWaWV3KCkucmVwYWludENvbnRlbnRSZWN0YW5nbGUocGl4ZWxTbmFwcGVkUmVjdCwgaW1tZWRp
YXRlKTsKKyAgICBpZiAoIW1fYWNjdW11bGF0ZWRSZXBhaW50UmVnaW9uKSB7CisgICAgICAgIGZy
YW1lVmlldygpLnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKHBpeGVsU25hcHBlZFJlY3QpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIG1fYWNjdW11bGF0ZWRSZXBhaW50UmVnaW9uLT51bml0
ZShwaXhlbFNuYXBwZWRSZWN0KTsKQEAgLTU4NCwxNiArNTgzLDE2IEBAIHZvaWQgUmVuZGVyVmll
dzo6Zmx1c2hBY2N1bXVsYXRlZFJlcGFpbnRSZWdpb24oKSBjb25zdAogICAgIEFTU0VSVChtX2Fj
Y3VtdWxhdGVkUmVwYWludFJlZ2lvbik7CiAgICAgYXV0byByZXBhaW50UmVjdHMgPSBtX2FjY3Vt
dWxhdGVkUmVwYWludFJlZ2lvbi0+cmVjdHMoKTsKICAgICBmb3IgKGF1dG8mIHJlY3QgOiByZXBh
aW50UmVjdHMpCi0gICAgICAgIGZyYW1lVmlldygpLnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKHJl
Y3QsIGZhbHNlKTsKKyAgICAgICAgZnJhbWVWaWV3KCkucmVwYWludENvbnRlbnRSZWN0YW5nbGUo
cmVjdCk7CiAgICAgbV9hY2N1bXVsYXRlZFJlcGFpbnRSZWdpb24gPSBudWxscHRyOwogfQogCi12
b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRSZWN0YW5nbGVJblZpZXdBbmRDb21wb3NpdGVkTGF5ZXJz
KGNvbnN0IExheW91dFJlY3QmIHVyLCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgUmVuZGVyVmlldzo6
cmVwYWludFJlY3RhbmdsZUluVmlld0FuZENvbXBvc2l0ZWRMYXllcnMoY29uc3QgTGF5b3V0UmVj
dCYgdXIpCiB7CiAgICAgaWYgKCFzaG91bGRSZXBhaW50KHVyKSkKICAgICAgICAgcmV0dXJuOwog
Ci0gICAgcmVwYWludFZpZXdSZWN0YW5nbGUodXIsIGltbWVkaWF0ZSk7CisgICAgcmVwYWludFZp
ZXdSZWN0YW5nbGUodXIpOwogCiAgICAgUmVuZGVyTGF5ZXJDb21wb3NpdG9yJiBjb21wb3NpdG9y
ID0gdGhpcy0+Y29tcG9zaXRvcigpOwogICAgIGlmIChjb21wb3NpdG9yLmluQ29tcG9zaXRpbmdN
b2RlKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDM1NWM5MDEu
LjQzMWFlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtNzMsMTAg
KzczLDEwIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIExheW91dFJlY3QgdmlzdWFsT3ZlcmZsb3dS
ZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVSZWN0Rm9yUmVw
YWludChjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBMYXlv
dXRSZWN0JiwgYm9vbCBmaXhlZCA9IGZhbHNlKSBjb25zdCBvdmVycmlkZTsKICAgICB2b2lkIHJl
cGFpbnRSb290Q29udGVudHMoKTsKLSAgICB2b2lkIHJlcGFpbnRWaWV3UmVjdGFuZ2xlKGNvbnN0
IExheW91dFJlY3QmLCBib29sIGltbWVkaWF0ZSA9IGZhbHNlKSBjb25zdDsKKyAgICB2b2lkIHJl
cGFpbnRWaWV3UmVjdGFuZ2xlKGNvbnN0IExheW91dFJlY3QmKSBjb25zdDsKICAgICAvLyBSZXBh
aW50IHRoZSB2aWV3LCBhbmQgYWxsIGNvbXBvc2l0ZWQgbGF5ZXJzIHRoYXQgaW50ZXJzZWN0IHRo
ZSBnaXZlbiBhYnNvbHV0ZSByZWN0YW5nbGUuCiAgICAgLy8gRklYTUU6IGlkZWFsbHkgd2UnZCBu
ZXZlciBoYXZlIHRvIGRvIHRoaXMsIGlmIGFsbCByZXBhaW50cyBhcmUgY29udGFpbmVyLXJlbGF0
aXZlLgotICAgIHZvaWQgcmVwYWludFJlY3RhbmdsZUluVmlld0FuZENvbXBvc2l0ZWRMYXllcnMo
Y29uc3QgTGF5b3V0UmVjdCYsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UpOworICAgIHZvaWQgcmVw
YWludFJlY3RhbmdsZUluVmlld0FuZENvbXBvc2l0ZWRMYXllcnMoY29uc3QgTGF5b3V0UmVjdCYp
OwogICAgIHZvaWQgcmVwYWludFZpZXdBbmRDb21wb3NpdGVkTGF5ZXJzKCk7CiAKICAgICB2aXJ0
dWFsIHZvaWQgcGFpbnQoUGFpbnRJbmZvJiwgY29uc3QgTGF5b3V0UG9pbnQmKSBvdmVycmlkZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUNocm9tZUNs
aWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlQ2hyb21lQ2xpZW50
LmgKaW5kZXggMmYyODZiOS4uMDFhOThlN2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9TVkdJbWFnZUNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9ncmFwaGljcy9TVkdJbWFnZUNocm9tZUNsaWVudC5oCkBAIC01MCw3ICs1MCw3IEBAIHByaXZh
dGU6CiAgICAgICAgIG1faW1hZ2UgPSAwOwogICAgIH0KICAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgciwgYm9vbCkgb3Zl
cnJpZGUKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29u
c3QgSW50UmVjdCYgcikgb3ZlcnJpZGUKICAgICB7CiAgICAgICAgIC8vIElmIG1faW1hZ2UtPm1f
cGFnZSBpcyBudWxsLCB3ZSdyZSBiZWluZyBkZXN0cnVjdGVkLCBkb24ndCBmaXJlIGNoYW5nZWRJ
blJlY3QoKSBpbiB0aGF0IGNhc2UuCiAgICAgICAgIGlmIChtX2ltYWdlICYmIG1faW1hZ2UtPmlt
YWdlT2JzZXJ2ZXIoKSAmJiBtX2ltYWdlLT5tX3BhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggYzFi
YzY1Ny4uMTU5ZTc5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE0LTAy
LTIwICBSZW5hdGEgSG9kb3ZhbiAgPHJob2RvdmFuLnUtc3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5j
b20+CisKKyAgICAgICAgR2V0IHJpZCBvZiB0aGUgdW51c2VkICdpbW1lZGlhdGUnIHBhcmFtZXRl
cnMgZnJvbSByZXBhaW50IHJlbGF0ZWQgZnVuY3Rpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkxMTEKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmluZyB0aGUgJ2ltbWVkaWF0ZScgcGFyYW1l
dGVycyBmcm9tIHJlcGFpbnQgcmVsYXRlZCBmdW5jdGlvbnMgLSBhY2NvcmluZworICAgICAgICB0
byB0aGUgRklYTUUgaW4gUmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUoKSAtIHNpbmNl
IHRoZXkgaGF2ZSBubyBlZmZlY3QuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjppbnZhbGlk
YXRlQ29udGVudHMpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjppbnZhbGlk
YXRlUm9vdFZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50RWZsOjppbnZhbGlk
YXRlQ29udGVudHNBbmRSb290Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnRF
Zmw6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oOgorCiAyMDE0LTAyLTE3ICBTZXJnaW8gQ29ycmVpYSAg
PHNlcmdpby5jb3JyZWlhQG9wZW5ib3NzYS5vcmc+CiAKICAgICAgICAgUmVwbGFjZSB1c2VzIG9m
IFBhc3NPd25QdHIvT3duUHRyIHdpdGggc3RkOjp1bmlxdWVfcHRyIGluIFdlYkNvcmUvaW5zcGVj
dG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVD
bGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50RWZsLmNwcAppbmRleCBiZDIwN2U5Li4xOTAzMjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAKQEAgLTUyNCwxMiAr
NTI0LDEyIEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Np
b25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKICAgICBub3RJbXBsZW1lbnRlZCgpOwog
fQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJl
Y3QmIC8qdXBkYXRlUmVjdCovLCBib29sIC8qaW1tZWRpYXRlKi8pCit2b2lkIENocm9tZUNsaWVu
dEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmIC8qdXBkYXRlUmVjdCovKQog
ewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZh
bGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCAvKmltbWVkaWF0
ZSovKQordm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRS
ZWN0JiB1cGRhdGVSZWN0KQogewogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGV3
a192aWV3X3RpbGVkX2JhY2tpbmdfc3RvcmVfaW52YWxpZGF0ZShtX3ZpZXcsIHVwZGF0ZVJlY3Qp
OwpAQCAtNTM5LDcgKzUzOSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRlUm9v
dFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCAvKmltbWVkCiAjZW5kaWYKIH0K
IAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNv
bnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgLyppbW1lZGlhdGUqLykKK3ZvaWQgQ2hyb21l
Q2xpZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1
cGRhdGVSZWN0KQogewogICAgIGlmICh1cGRhdGVSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuOwpAQCAtNTUzLDkgKzU1Myw5IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRl
Q29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBiCiAgICAgZXdr
X3ZpZXdfcmVwYWludChtX3ZpZXcsIHgsIHksIHcsIGgpOwogfQogCi12b2lkIENocm9tZUNsaWVu
dEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiB1cGRh
dGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCiB7Ci0gICAg
aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcodXBkYXRlUmVjdCwgaW1tZWRpYXRlKTsKKyAg
ICBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh1cGRhdGVSZWN0KTsKIH0KIAogdm9pZCBD
aHJvbWVDbGllbnRFZmw6OnNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3Qg
SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVjdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKaW5kZXgg
MTEwNjQyZC4uZjQxZmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKQEAgLTE2MCwxMCArMTYwLDEwIEBAIHB1YmxpYzoKIAog
ICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFt
ZSosIEdlb2xvY2F0aW9uKik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRz
KGNvbnN0IEludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RW
aWV3KGNvbnN0IEludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpOwotICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsK
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmKTsKKyAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmKTsKKyAgICB2
aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYp
OworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0
IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25z
dCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9s
b2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqKTsKICAgICB2aXJ0dWFsIHZv
aWQgaWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmcsIDB1PiYsIFBhc3NSZWZQdHI8Rmls
ZUNob29zZXI+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCBhZmE1ZWNiLi45YTYyODlmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDItMjAgIFJlbmF0YSBIb2RvdmFuICA8
cmhvZG92YW4udS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKworICAgICAgICBHZXQgcmlk
IG9mIHRoZSB1bnVzZWQgJ2ltbWVkaWF0ZScgcGFyYW1ldGVycyBmcm9tIHJlcGFpbnQgcmVsYXRl
ZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyOTExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92aW5nIHRoZSAnaW1tZWRpYXRlJyBwYXJhbWV0ZXJzIGZyb20gcmVwYWludCByZWxh
dGVkIGZ1bmN0aW9ucyAtIGFjY29yaW5nCisgICAgICAgIHRvIHRoZSBGSVhNRSBpbiBSZW5kZXJW
aWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSgpIC0gc2luY2UgdGhleSBoYXZlIG5vIGVmZmVjdC4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVJvb3RWaWV3KToKKyAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyk6CisgICAg
ICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9s
bCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmg6CisKIDIwMTQt
MDItMTcgIFNlcmdpbyBDb3JyZWlhICA8c2VyZ2lvLmNvcnJlaWFAb3BlbmJvc3NhLm9yZz4KIAog
ICAgICAgICBSZXBsYWNlIHVzZXMgb2YgUGFzc093blB0ci9Pd25QdHIgd2l0aCBzdGQ6OnVuaXF1
ZV9wdHIgaW4gV2ViQ29yZS9pbnNwZWN0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwCmluZGV4IGFlZTFiOWUuLmUxZmY2Mjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmNwcApAQCAtNjM4LDExICs2MzgsMTEgQEAgdm9pZCBDaHJvbWVDbGllbnQ6OmZvcmNl
UGFpbnQoKQogICAgIG1fZm9yY2VQYWludCA9IGZhbHNlOwogfQogCi12b2lkIENocm9tZUNsaWVu
dDo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sIGltbWVkaWF0ZSkKK3Zv
aWQgQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpCiB7CiB9
CiAKLXZvaWQgQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25z
dCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50
OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
KQogewogICAgIEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0KiBhY0NvbnRleHQgPSBtX3dl
YlZpZXctPnByaXYtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdDb250ZXh0LmdldCgpOwogICAgIGlm
IChhY0NvbnRleHQtPmVuYWJsZWQoKSkgewpAQCAtNjU2LDcgKzY1Niw3IEBAIHZvaWQgQ2hyb21l
Q2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRh
dGVSZWN0LCBib29sCiAgICAgbV9kaXNwbGF5VGltZXIuc3RhcnRPbmVTaG90KDApOwogfQogCi12
b2lkIENocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50Ojpp
bnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3Qp
CiB7CiAgICAgbV9hZGp1c3RtZW50V2F0Y2hlci51cGRhdGVBZGp1c3RtZW50c0Zyb21TY3JvbGxi
YXJzTGF0ZXIoKTsKIApAQCAtNjY2LDcgKzY2Niw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50OjppbnZh
bGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJv
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290
Vmlldyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUpOworICAgIGludmFsaWRhdGVDb250ZW50c0FuZFJv
b3RWaWV3KHVwZGF0ZVJlY3QpOwogfQogCiB2b2lkIENocm9tZUNsaWVudDo6c2Nyb2xsKGNvbnN0
IEludFNpemUmIGRlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJl
Y3QmIGNsaXBSZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9D
aHJvbWVDbGllbnRHdGsuaAppbmRleCA5NzkwZmNkLi5iZDVjN2Q2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuaApAQCAtOTYsOSAr
OTYsOSBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAgICAgdmlydHVhbCBLZXlib2FyZFVJTW9k
ZSBrZXlib2FyZFVJTW9kZSgpOwogCiAgICAgICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dSZXNp
emVyUmVjdCgpIGNvbnN0OwotICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3
KGNvbnN0IEludFJlY3QmLCBib29sKTsKLSAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sKTsKLSAgICAgICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYsIGJv
b2wpOworICAgICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJl
Y3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3
KGNvbnN0IEludFJlY3QmKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50
c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgc2Ny
b2xsKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3Jv
bGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KTsKIAogICAgICAgICB2aXJ0dWFsIEludFBvaW50
IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgSW50UG9pbnQmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKaW5kZXggODBmN2Uw
Yi4uODcxOTAyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50LmgKQEAgLTk0LDkgKzk0LDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
V2ViQ29yZTo6SW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0IG92ZXJyaWRlOwogCiAg
ICAgdmlydHVhbCBib29sIHN1cHBvcnRzSW1tZWRpYXRlSW52YWxpZGF0aW9uKCkgb3ZlcnJpZGU7
Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgYm9vbCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50
c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBvdmVycmlkZTsKLSAg
ICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRh
dGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xv
d1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCB2
b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBjbGlw
UmVjdCkgb3ZlcnJpZGU7CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRv
Um9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5tbQpp
bmRleCA2YWY1M2VjLi4wZjRmYjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1tCkBAIC01NzMsMjUgKzU3MywxNyBAQCBib29s
IFdlYkNocm9tZUNsaWVudDo6c3VwcG9ydHNJbW1lZGlhdGVJbnZhbGlkYXRpb24oKQogICAgIHJl
dHVybiB0cnVlOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVJvb3RWaWV3
KGNvbnN0IEludFJlY3QmLCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50Ojpp
bnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpCiB7Ci0jaWYgIVBMQVRGT1JNKElPUykK
LSAgICBpZiAoaW1tZWRpYXRlKSB7Ci0gICAgICAgIFtbbV93ZWJWaWV3IHdpbmRvd10gZGlzcGxh
eUlmTmVlZGVkXTsKLSAgICAgICAgW1ttX3dlYlZpZXcgd2luZG93XSBmbHVzaFdpbmRvd0lmTmVl
ZGVkXTsKLSAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShpbW1lZGlhdGUpOwotI2VuZGlm
CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmll
dyhjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xp
ZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiByZWN0KQog
ewogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Nj
cm9sbChjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgV2ViQ2hyb21l
Q2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHJl
Y3QpCiB7Ci0gICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcocmVjdCwgaW1tZWRpYXRl
KTsKKyAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290VmlldyhyZWN0KTsKIH0KIAogdm9pZCBX
ZWJDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNv
bnN0IEludFJlY3QmKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDQ5OWQzOWMuLmI4NjZmYzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNC0wMi0yMCAgUmVuYXRhIEhvZG92YW4g
IDxyaG9kb3Zhbi51LXN6ZWdlZEBwYXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAgIEdldCBy
aWQgb2YgdGhlIHVudXNlZCAnaW1tZWRpYXRlJyBwYXJhbWV0ZXJzIGZyb20gcmVwYWludCByZWxh
dGVkIGZ1bmN0aW9ucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTI5MTExCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgUmVtb3ZpbmcgdGhlICdpbW1lZGlhdGUnIHBhcmFtZXRlcnMgZnJvbSByZXBhaW50IHJl
bGF0ZWQgZnVuY3Rpb25zIC0gYWNjb3JpbmcKKyAgICAgICAgdG8gdGhlIEZJWE1FIGluIFJlbmRl
clZpZXc6OnJlcGFpbnRWaWV3UmVjdGFuZ2xlKCkgLSBzaW5jZSB0aGV5IGhhdmUgbm8gZWZmZWN0
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVJvb3RWaWV3KToKKyAgICAgICAgKFdlYkNo
cm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcpOgorICAgICAgICAoV2Vi
Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaDoKKwogMjAxNC0wMi0yMCAgQ3NhYmEg
T3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAgIEdldCByaWQgb2YgcmVk
dW5kYW50IFBsYXRmb3JtLmggaW5jbHVkZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDM5NjIxMTkuLjM1NzY2MzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcApAQCAtNDYyLDIyICs0NjIsMjIgQEAgSW50UmVjdCBXZWJDaHJvbWVDbGllbnQ6
OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdCgpOwogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHdp
bmRvd1JlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRh
dGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0KQogewogICAgIEFTU0VSVChjb3Jl
KG1fd2ViVmlldy0+dG9wTGV2ZWxGcmFtZSgpKSk7Ci0gICAgbV93ZWJWaWV3LT5yZXBhaW50KHdp
bmRvd1JlY3QsIGZhbHNlIC8qY29udGVudENoYW5nZWQqLywgaW1tZWRpYXRlLCBmYWxzZSAvKnJl
cGFpbnRDb250ZW50T25seSovKTsKKyAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwg
ZmFsc2UgLypjb250ZW50Q2hhbmdlZCovLCBmYWxzZSAvKnJlcGFpbnRDb250ZW50T25seSovKTsK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3
KGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHdp
bmRvd1JlY3QpCiB7CiAgICAgQVNTRVJUKGNvcmUobV93ZWJWaWV3LT50b3BMZXZlbEZyYW1lKCkp
KTsKLSAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRDaGFu
Z2VkKi8sIGltbWVkaWF0ZSAvKmltbWVkaWF0ZSovLCBmYWxzZSAvKnJlcGFpbnRDb250ZW50T25s
eSovKTsKKyAgICBtX3dlYlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRD
aGFuZ2VkKi8sIGZhbHNlIC8qcmVwYWludENvbnRlbnRPbmx5Ki8pOwogfQogCi12b2lkIFdlYkNo
cm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0
JiB3aW5kb3dSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZh
bGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHdpbmRvd1JlY3QpCiB7
CiAgICAgQVNTRVJUKGNvcmUobV93ZWJWaWV3LT50b3BMZXZlbEZyYW1lKCkpKTsKLSAgICBtX3dl
YlZpZXctPnJlcGFpbnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGltbWVk
aWF0ZSwgdHJ1ZSAvKnJlcGFpbnRDb250ZW50T25seSovKTsKKyAgICBtX3dlYlZpZXctPnJlcGFp
bnQod2luZG93UmVjdCwgdHJ1ZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIHRydWUgLypyZXBhaW50Q29u
dGVudE9ubHkqLyk7CiB9CiAKIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpzY3JvbGwoY29uc3QgSW50
U2l6ZSYgZGVsdGEsIGNvbnN0IEludFJlY3QmIHNjcm9sbFZpZXdSZWN0LCBjb25zdCBJbnRSZWN0
JiBjbGlwUmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmgKaW5kZXggZTE0OWU3YmMuLjgwNjZlZGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC05Myw5ICs5
Myw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OktleWJvYXJkVUlNb2RlIGtleWJv
YXJkVUlNb2RlKCk7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1Jlc2l6ZXJS
ZWN0KCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNv
bnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpOwotICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRl
bnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpOworICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9s
bERlbHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIGNsaXBSZWN0KTsKIAogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UG9pbnQg
c2NyZWVuVG9Sb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYpIGNvbnN0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNl
L0NoYW5nZUxvZwppbmRleCA0ZDU1ODE4Li4xZTVmZTc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3dpbmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDE0LTAyLTIwICBSZW5hdGEgSG9kb3ZhbiAgPHJob2RvdmFuLnUt
c3plZ2VkQHBhcnRuZXIuc2Ftc3VuZy5jb20+CisKKyAgICAgICAgR2V0IHJpZCBvZiB0aGUgdW51
c2VkICdpbW1lZGlhdGUnIHBhcmFtZXRlcnMgZnJvbSByZXBhaW50IHJlbGF0ZWQgZnVuY3Rpb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjkxMTEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmlu
ZyB0aGUgJ2ltbWVkaWF0ZScgcGFyYW1ldGVycyBmcm9tIHJlcGFpbnQgcmVsYXRlZCBmdW5jdGlv
bnMgLSBhY2NvcmluZworICAgICAgICB0byB0aGUgRklYTUUgaW4gUmVuZGVyVmlldzo6cmVwYWlu
dFZpZXdSZWN0YW5nbGUoKSAtIHNpbmNlIHRoZXkgaGF2ZSBubyBlZmZlY3QuCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkNocm9tZUNsaWVudFdpbkNFOjppbnZhbGlkYXRlUm9vdFZpZXcpOgorICAgICAgICAoV2ViS2l0
OjpDaHJvbWVDbGllbnRXaW5DRTo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcpOgorICAg
ICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xv
d1Njcm9sbCk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudFdpbkNFOjpzY3JvbGwpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmg6CisKIDIwMTQtMDIt
MDggIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIENoYW5nZSBUZXh0
SXRlcmF0b3IgdG8gdXNlIFN0cmluZ1ZpZXcsIHByZXBhcmluZyB0byB3ZWFuIGl0IGZyb20gZGVw
cmVjYXRlZENoYXJhY3RlcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5jcHAKaW5kZXggZjk5NDgwYy4uZDgxYjFmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGll
bnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJv
bWVDbGllbnRXaW5DRS5jcHAKQEAgLTIyNiwyOCArMjI2LDI1IEBAIEludFJlY3QgQ2hyb21lQ2xp
ZW50V2luQ0U6OndpbmRvd1Jlc2l6ZXJSZWN0KCkgY29uc3QKICAgICByZXR1cm4gSW50UmVjdCgp
OwogfQogCi12b2lkIENocm9tZUNsaWVudFdpbkNFOjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3Qg
SW50UmVjdCYsIGJvb2wpCit2b2lkIENocm9tZUNsaWVudFdpbkNFOjppbnZhbGlkYXRlUm9vdFZp
ZXcoY29uc3QgSW50UmVjdCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBD
aHJvbWVDbGllbnRXaW5DRTo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50
UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudFdpbkNF
OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
KQogewogICAgIFJFQ1QgcmVjdCA9IHVwZGF0ZVJlY3Q7CiAgICAgSW52YWxpZGF0ZVJlY3QobV93
ZWJWaWV3LT53aW5kb3dIYW5kbGUoKSwgJnJlY3QsIEZBTFNFKTsKLQotICAgIGlmIChpbW1lZGlh
dGUpCi0gICAgICAgIFVwZGF0ZVdpbmRvdyhtX3dlYlZpZXctPndpbmRvd0hhbmRsZSgpKTsKIH0K
IAotdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9s
bChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21l
Q2xpZW50V2luQ0U6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVj
dCYgdXBkYXRlUmVjdCkKIHsKLSAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh1cGRh
dGVSZWN0LCBpbW1lZGlhdGUpOworICAgIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHVw
ZGF0ZVJlY3QpOwogfQogCiB2b2lkIENocm9tZUNsaWVudFdpbkNFOjpzY3JvbGwoY29uc3QgSW50
U2l6ZSYsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYpCiB7Ci0g
ICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcocmVjdFRvU2Nyb2xsLCBmYWxzZSk7Cisg
ICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcocmVjdFRvU2Nyb2xsKTsKIH0KIAogSW50
UmVjdCBDaHJvbWVDbGllbnRXaW5DRTo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiBy
ZWN0KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRXaW5DRS5oIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9y
dC9DaHJvbWVDbGllbnRXaW5DRS5oCmluZGV4IDY2NjNjMmMuLjE0NjdkNWMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNF
LmgKQEAgLTkyLDkgKzkyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVj
dCB3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgLy8gTWV0aG9kcyB1
c2VkIGJ5IEhvc3RXaW5kb3cuCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lk
IGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBi
b29sKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xv
d1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGU7CisgICAgdmly
dHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJp
ZGU7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiwgY29u
c3QgV2ViQ29yZTo6SW50UmVjdCYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRvUm9vdFZpZXcoY29uc3QgV2Vi
Q29yZTo6SW50UG9pbnQmKSBjb25zdCBvdmVycmlkZTsKICAgICB2aXJ0dWFsIFdlYkNvcmU6Oklu
dFJlY3Qgcm9vdFZpZXdUb1NjcmVlbihjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikgY29uc3Qgb3Zl
cnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggNjA5MDllNC4uMGI1MGE1YTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5jcHAKQEAgLTQyNywxMiArNDI3LDEyIEBAIEludFJlY3QgV2Vi
Q2hyb21lQ2xpZW50Ojp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFn
ZS0+d2luZG93UmVzaXplclJlY3QoKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFs
aWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYpCiB7CiAgICAgLy8gRG8gbm90aGlu
ZyBoZXJlLCB0aGVyZSdzIG5vIGNvbmNlcHQgb2YgaW52YWxpZGF0aW5nIHRoZSB3aW5kb3cgaW4g
dGhlIHdlYiBwcm9jZXNzLgogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNv
bnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCkKK3ZvaWQgV2ViQ2hy
b21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiBy
ZWN0KQogewogICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBtX3BhZ2UtPmNvcmVQYWdlKCkt
Pm1haW5GcmFtZSgpLmRvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKGRvY3VtZW50LT5wcmludGlu
ZygpKQpAQCAtNDQyLDcgKzQ0Miw3IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRl
Q29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiByZWN0LCBib29sKQogICAgIG1fcGFn
ZS0+ZHJhd2luZ0FyZWEoKS0+c2V0TmVlZHNEaXNwbGF5SW5SZWN0KHJlY3QpOwogfQogCi12b2lk
IFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiByZWN0LCBib29sKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250
ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBpZiAoRG9jdW1l
bnQqIGRvY3VtZW50ID0gbV9wYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJhbWUoKS5kb2N1bWVudCgp
KSB7CiAgICAgICAgIGlmIChkb2N1bWVudC0+cHJpbnRpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
CmluZGV4IDAzMTE5MzkuLjQ2MTNjZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtMTA4LDkg
KzEwOCw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHdpbmRvd1Jl
c2l6ZXJSZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgCiAgICAgLy8gSG9zdFdpbmRvdyBtZW1i
ZXIgZnVuY3Rpb24gb3ZlcnJpZGVzLgotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZp
ZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwg
dm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgYm9vbCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0Zv
clNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpIG92ZXJyaWRlOworICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
IG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmll
dyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGlu
dmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92
ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYg
c2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHNjcm9sbFJlY3QsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIGNsaXBSZWN0KSBvdmVycmlkZTsKICNpZiBVU0UoVElMRURfQkFDS0lO
R19TVE9SRSkKICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0
IFdlYkNvcmU6OkludFBvaW50JiBzY3JvbGxPZmZzZXQpIG92ZXJyaWRlOwotLSAKMS44LjMuMgoK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>225064</attachid>
            <date>2014-02-24 07:05:05 -0800</date>
            <delta_ts>2014-02-24 10:59:56 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-immediate-mac-ref.patch</filename>
            <type>text/plain</type>
            <size>63148</size>
            <attacher name="Renata Hodovan">rhodovan.u-szeged</attacher>
            
              <data encoding="base64">RnJvbSA3NDZjZDZkM2I5ZDFjNDdjMDBlMDE3YjIwNWIxOWI3NWI2NjgyYjQ5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSZW5hdGEgSG9kb3ZhbiA8cmVuaUB3ZWJraXQub3JnPgpEYXRl
OiBNb24sIDI0IEZlYiAyMDE0IDE2OjAxOjUxICswMTAwClN1YmplY3Q6IFtQQVRDSF0gaW1tZWRp
YXRlIG1hYyByZWYKCi0tLQogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCA2NyArKysrKysrKysrKysrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmV4cC5pbiAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmggICAgICAgICAgICAgICB8ICA2ICstCiBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgICAgICAgICAgICAgICAgICAgICB8IDEyICsrLS0KIFNv
dXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lLmggICAgICAgICAgICAgICAgICAgICAgIHwgIDYgKy0K
IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmggICAgICAgICAgICAgICAgIHwgIDYg
Ky0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwICAgICAgICAgICAgICAgICAgICAgIHwg
IDIgKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCAgICAgICAgICAgICAgICAg
IHwgMTQgKystLS0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggICAgICAgICAgICAg
ICAgICAgIHwgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaCAgICAg
ICAgICAgICAgIHwgMTAgKystLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5j
cHAgICAgICAgICAgICAgfCAyNCArKysrLS0tLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Ny
b2xsVmlldy5oICAgICAgICAgICAgICAgfCAgNCArLQogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1Njcm9sbFZpZXdJT1MubW0gICAgICAgfCAgMyArLQogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Njcm9sbFZpZXdNYWMubW0gICAgICAgfCAgNyArLS0KIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCb3guY3BwICAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCAgICAgIHwgIDQgKy0KIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggICAgICAgIHwgIDIgKy0KIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgICAgICAgICAgIHwgIDYgKy0KIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oICAgICAgICAgICAgIHwgIDIgKy0KIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAgIHwgIDQgKy0K
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oICAgIHwgIDIg
Ky0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAgICAgICAgIHwg
MjAgKysrLS0tLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oICAgICAg
ICAgICAgfCAgNiArLQogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAg
ICAgICAgICAgfCAgOCArLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZWdpb24u
aCAgICAgICAgICAgIHwgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcCAgICAgICAgICAgIHwgMTUgKysrLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmggICAgICAgICAgICAgIHwgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGlj
cy9TVkdJbWFnZUNocm9tZUNsaWVudC5oIHwgIDIgKy0KIFNvdXJjZS9XZWJLaXQvZWZsL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTcgKysrKysrCiAuLi4vV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwICB8IDEwICsrLS0KIFNvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5oIHwgIDggKy0tCiBTb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICB8IDE2ICsrKysrKwog
Li4uL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcCAgfCAgOCAr
LS0KIFNvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5oIHwg
IDYgKy0KIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5o
IHwgIDYgKy0KIC4uLi9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bSAgIHwgMTYgKystLS0tCiBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAgICAgICAg
ICAgICAgICAgICB8IDE2ICsrKysrKwogLi4uL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcCAgfCAxMiArKy0tCiBTb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJDaHJvbWVDbGllbnQuaCB8ICA2ICstCiBTb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5n
ZUxvZyAgICAgICAgICAgICAgICAgICAgICB8IDE3ICsrKysrKwogLi4uL3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmNwcCAgICAgfCAxMyArKy0tLQogLi4uL3dpbmNlL1dl
YkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmggICAgICAgfCAgNiArLQogLi4uL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcCAgfCAgNiArLQogLi4uL1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggICAgfCAgNiArLQogNDUg
ZmlsZXMgY2hhbmdlZCwgMjY4IGluc2VydGlvbnMoKyksIDE1MSBkZWxldGlvbnMoLSkKCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYjUyMGE3MS4uMzkxMjY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcwIEBACisy
MDE0LTAyLTI0ICBSZW5hdGEgSG9kb3ZhbiAgPHJob2RvdmFuLnUtc3plZ2VkQHBhcnRuZXIuc2Ft
c3VuZy5jb20+CisgICAgICAgIAorICAgICAgICBHZXQgcmlkIG9mIHRoZSB1bnVzZWQgJ2ltbWVk
aWF0ZScgcGFyYW1ldGVycyBmcm9tIHJlcGFpbnQgcmVsYXRlZCBmdW5jdGlvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyOTExMQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92aW5nIHRoZSAnaW1t
ZWRpYXRlJyBwYXJhbWV0ZXJzIGZyb20gcmVwYWludCByZWxhdGVkIGZ1bmN0aW9ucyAtIGFjY29y
aW5nCisgICAgICAgIHRvIHRoZSBGSVhNRSBpbiBSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3Rh
bmdsZSgpIC0gc2luY2UgdGhleSBoYXZlIG5vIGVmZmVjdC4KKworICAgICAgICBObyBuZXcgdGVz
dHMgYXJlIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZXJlIGlzIG5vIGJlaGF2aW9yIGNoYW5nZQorCisg
ICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6c2V0
QWN0aXZlKToKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGllbnRzLmg6CisgICAgICAgICogcGFn
ZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlUm9vdFZp
ZXcpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lOjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290
Vmlldyk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6OmludmFsaWRhdGVDb250ZW50c0ZvclNs
b3dTY3JvbGwpOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9DaHJv
bWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5kKToKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmludmFsaWRhdGVSZWN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2hvdWxkVXBkYXRlKToKKyAgICAgICAgKiBwYWdl
L0ZyYW1lVmlldy5oOgorICAgICAgICAqIHBsYXRmb3JtL0hvc3RXaW5kb3cuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6
OnNjcm9sbENvbnRlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnNjcm9sbENv
bnRlbnRzU2xvd1BhdGgpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cmVwYWludENv
bnRlbnRSZWN0YW5nbGUpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6dXBkYXRlT3Zl
cmhhbmdBcmVhcyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjphZGRQYW5TY3JvbGxJ
Y29uKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6OnJlbW92ZVBhblNjcm9sbEljb24p
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6cGxhdGZvcm1SZXBhaW50Q29udGVudFJl
Y3RhbmdsZSk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5oOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94OjpyZXBh
aW50TGF5ZXJSZWN0c0ZvckltYWdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFkOjpyZXBhaW50UmVj
dGFuZ2xlSW5SZWdpb25zKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5o
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6c2V0RmlsdGVyQmFja2VuZE5lZWRzUmVwYWludGluZ0luUmVjdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlck11bHRpQ29sdW1uU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck11bHRpQ29s
dW1uU2V0OjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJNdWx0aUNvbHVtblNldC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZXBhaW50VXNpbmdDb250YWlu
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpyZXBhaW50KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck9iamVjdDo6cmVwYWludFJlY3RhbmdsZSk6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJPYmplY3Q6OnJlcGFpbnRTbG93UmVwYWludE9iamVjdCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpyZXBhaW50Rmxvd1RocmVh
ZENvbnRlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVnaW9uOjpyZXBhaW50Rmxvd1Ro
cmVhZENvbnRlbnRSZWN0YW5nbGUpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJSZWdpb24u
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJWaWV3OjpmbHVzaEFjY3VtdWxhdGVkUmVwYWludFJlZ2lvbik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJWaWV3OjpyZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVy
cyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiBzdmcvZ3Jh
cGhpY3MvU1ZHSW1hZ2VDaHJvbWVDbGllbnQuaDoKKwogMjAxNC0wMi0yNCAgRGF2aWQgS2lsemVy
ICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSByZWR1bmRhbnQgc2V0dGlu
ZyBpbiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS5leHAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgppbmRleCBmOTZi
MzNjLi5hNWM1MjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgor
KysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgpAQCAtMTUwNCw3ICsxNTA0LDcgQEAg
X19aTks3V2ViQ29yZTExUmVuZGVyU3R5bGUyMXZpc2l0ZWREZXBlbmRlbnRDb2xvckVpCiBfX1pO
SzdXZWJDb3JlMTFSZW5kZXJTdHlsZTRmb250RXYKIF9fWk5LN1dlYkNvcmUxMlJlbmRlck9iamVj
dDE0ZW5jbG9zaW5nTGF5ZXJFdgogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTVsb2NhbFRv
QWJzb2x1dGVFUktOU18xMEZsb2F0UG9pbnRFagotX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0
MTZyZXBhaW50UmVjdGFuZ2xlRVJLTlNfMTBMYXlvdXRSZWN0RWJiCitfX1pOSzdXZWJDb3JlMTJS
ZW5kZXJPYmplY3QxNnJlcGFpbnRSZWN0YW5nbGVFUktOU18xMExheW91dFJlY3RFYgogX19aTks3
V2ViQ29yZTEyUmVuZGVyT2JqZWN0MjBsb2NhbFRvQ29udGFpbmVyUXVhZEVSS05TXzlGbG9hdFF1
YWRFUEtOU18yMlJlbmRlckxheWVyTW9kZWxPYmplY3RFalBiCiBfX1pOSzdXZWJDb3JlMTJSZW5k
ZXJPYmplY3QyM2Fic29sdXRlQm91bmRpbmdCb3hSZWN0RWIKIF9fWk5LN1dlYkNvcmUxMlJlbmRl
ck9iamVjdDM5cGl4ZWxTbmFwcGVkQWJzb2x1dGVDbGlwcGVkT3ZlcmZsb3dSZWN0RXYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcAppbmRleCBlMTRiYmVhLi43OWQxNTc5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCkBAIC01MTQsNyArNTE0LDcgQEAgdm9pZCBFbGVtZW50OjpzZXRBY3RpdmUoYm9vbCBmbGFn
LCBib29sIHBhdXNlKQogCiAgICAgICAgIC8vIERvIGFuIGltbWVkaWF0ZSByZXBhaW50LgogICAg
ICAgICBpZiAocmVuZGVyZXIoKSkKLSAgICAgICAgICAgIHJlbmRlcmVyKCktPnJlcGFpbnQodHJ1
ZSk7CisgICAgICAgICAgICByZW5kZXJlcigpLT5yZXBhaW50KCk7CiAKICAgICAgICAgLy8gRklY
TUU6IENvbWUgdXAgd2l0aCBhIGxlc3MgcmlkaWN1bG91cyB3YXkgb2YgZG9pbmcgdGhpcy4KICNp
ZmRlZiBIQVZFX0ZVTkNfVVNMRUVQCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmgKaW5k
ZXggOTMwYTc1Yi4uZTllNzRiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNsaWVudHMuaApA
QCAtMTI2LDkgKzEyNiw5IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgSW50UmVjdCB3aW5kb3dS
ZXNpemVyUmVjdCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEludFJlY3QoKTsgfQogCi0gICAg
dmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCkgb3Zl
cnJpZGUgeyB9Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3
KGNvbnN0IEludFJlY3QmLCBib29sKSBvdmVycmlkZSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiwgYm9vbCkgb3ZlcnJp
ZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0
Jikgb3ZlcnJpZGUgeyB9CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJv
b3RWaWV3KGNvbnN0IEludFJlY3QmKSBvdmVycmlkZSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0Jikgb3ZlcnJpZGUgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYs
IGNvbnN0IEludFJlY3QmKSBvdmVycmlkZSB7IH0KICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9S
RSkKICAgICB2aXJ0dWFsIHZvaWQgZGVsZWdhdGVkU2Nyb2xsUmVxdWVzdGVkKGNvbnN0IEludFBv
aW50JikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggMGQ0MTY5Zi4uYTY5MGUzYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvQ2hyb21lLmNwcApAQCAtNzcsMTkgKzc3LDE5IEBAIENocm9tZTo6fkNocm9tZSgp
CiAgICAgbV9jbGllbnQuY2hyb21lRGVzdHJveWVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lOjppbnZh
bGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUp
Cit2b2lkIENocm9tZTo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJl
Y3QpCiB7Ci0gICAgbV9jbGllbnQuaW52YWxpZGF0ZVJvb3RWaWV3KHVwZGF0ZVJlY3QsIGltbWVk
aWF0ZSk7CisgICAgbV9jbGllbnQuaW52YWxpZGF0ZVJvb3RWaWV3KHVwZGF0ZVJlY3QpOwogfQog
Ci12b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVj
dCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZTo6aW52YWxpZGF0ZUNv
bnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkKIHsKLSAgICBtX2Ns
aWVudC5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh1cGRhdGVSZWN0LCBpbW1lZGlhdGUp
OworICAgIG1fY2xpZW50LmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHVwZGF0ZVJlY3Qp
OwogfQogCi12b2lkIENocm9tZTo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25z
dCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lOjppbnZh
bGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCiB7
Ci0gICAgbV9jbGllbnQuaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCh1cGRhdGVSZWN0
LCBpbW1lZGlhdGUpOworICAgIG1fY2xpZW50LmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3Jv
bGwodXBkYXRlUmVjdCk7CiB9CiAKIHZvaWQgQ2hyb21lOjpzY3JvbGwoY29uc3QgSW50U2l6ZSYg
c2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50UmVjdCYg
Y2xpcFJlY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCA5YzQ3ZDIxLi5hMjk5ZDRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvQ2hyb21lLmgKQEAgLTY5LDkgKzY5LDkgQEAgcHVibGljOgogICAgIENocm9tZUNsaWVudCYg
Y2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KIAogICAgIC8vIEhvc3RXaW5kb3cgbWV0aG9k
cy4KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBi
b29sKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9v
dFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKSBvdmVy
cmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3Qm
KSBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZp
ZXcoY29uc3QgSW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSBvdmVycmlkZTsKICAgICB2aXJ0
dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IEludFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50
UmVjdCYpIG92ZXJyaWRlOwogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIHZpcnR1
YWwgdm9pZCBkZWxlZ2F0ZWRTY3JvbGxSZXF1ZXN0ZWQoY29uc3QgSW50UG9pbnQmIHNjcm9sbFBv
aW50KSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVudC5oCmluZGV4IDQzNTE5ODUu
LjYwNDM3ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaApAQCAtMTU2LDkgKzE1Niw5
IEBAIHB1YmxpYzoKIAogICAgIC8vIE1ldGhvZHMgdXNlZCBieSBIb3N0V2luZG93LgogICAgIHZp
cnR1YWwgYm9vbCBzdXBwb3J0c0ltbWVkaWF0ZUludmFsaWRhdGlvbigpIHsgcmV0dXJuIGZhbHNl
OyB9Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0Jiwg
Ym9vbCBpbW1lZGlhdGUpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRz
QW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYs
IGJvb2wgaW1tZWRpYXRlKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmll
dyhjb25zdCBJbnRSZWN0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVu
dHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBpbnZh
bGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNjcm9sbChjb25zdCBJbnRTaXplJiwgY29uc3QgSW50UmVjdCYsIGNvbnN0IElu
dFJlY3QmKSA9IDA7CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAgICAgdmlydHVhbCB2
b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBJbnRQb2ludCYpID0gMDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAKaW5kZXggNDkzNTYxMC4uMTI5ZTA2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAK
QEAgLTk2NSw3ICs5NjUsNyBAQCB2b2lkIEZyYW1lOjp0aWxlZEJhY2tpbmdTdG9yZVBhaW50RW5k
KGNvbnN0IFZlY3RvcjxJbnRSZWN0PiYgcGFpbnRlZEFyZWEpCiAgICAgdW5zaWduZWQgc2l6ZSA9
IHBhaW50ZWRBcmVhLnNpemUoKTsKICAgICAvLyBSZXF1ZXN0IHJlcGFpbnQgZnJvbSB0aGUgc3lz
dGVtCiAgICAgZm9yICh1bnNpZ25lZCBuID0gMDsgbiA8IHNpemU7ICsrbikKLSAgICAgICAgbV9w
YWdlLT5jaHJvbWUoKS5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290VmlldyhtX3ZpZXctPmNvbnRl
bnRzVG9Sb290VmlldyhwYWludGVkQXJlYVtuXSksIGZhbHNlKTsKKyAgICAgICAgbV9wYWdlLT5j
aHJvbWUoKS5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290VmlldyhtX3ZpZXctPmNvbnRlbnRzVG9S
b290VmlldyhwYWludGVkQXJlYVtuXSkpOwogfQogCiBJbnRSZWN0IEZyYW1lOjp0aWxlZEJhY2tp
bmdTdG9yZUNvbnRlbnRzUmVjdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKaW5kZXggMDc1
OGUyNy4uNDExYzA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcApAQCAtMzkyLDcgKzM5
Miw3IEBAIHZvaWQgRnJhbWVWaWV3OjppbnZhbGlkYXRlUmVjdChjb25zdCBJbnRSZWN0JiByZWN0
KQogewogICAgIGlmICghcGFyZW50KCkpIHsKICAgICAgICAgaWYgKEhvc3RXaW5kb3cqIHdpbmRv
dyA9IGhvc3RXaW5kb3coKSkKLSAgICAgICAgICAgIHdpbmRvdy0+aW52YWxpZGF0ZUNvbnRlbnRz
QW5kUm9vdFZpZXcocmVjdCwgZmFsc2UgLyppbW1lZGlhdGUqLyk7CisgICAgICAgICAgICB3aW5k
b3ctPmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHJlY3QpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0xNjg3LDcgKzE2ODcsNyBAQCBib29sIEZyYW1lVmlldzo6c2Nyb2xsQ29u
dGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdAog
ICAgICAgICB9CiAgICAgICAgIGlmIChjbGlwc1JlcGFpbnRzKCkpCiAgICAgICAgICAgICB1cGRh
dGVSZWN0LmludGVyc2VjdChyZWN0VG9TY3JvbGwpOwotICAgICAgICBob3N0V2luZG93KCktPmlu
dmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHVwZGF0ZVJlY3QsIGZhbHNlKTsKKyAgICAgICAg
aG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh1cGRhdGVSZWN0KTsK
ICAgICB9CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIwNjcsMTEgKzIwNjcsMTEgQEAgdm9pZCBG
cmFtZVZpZXc6OmFkZFRyYWNrZWRSZXBhaW50UmVjdChjb25zdCBJbnRSZWN0JiByKQogICAgIG1f
dHJhY2tlZFJlcGFpbnRSZWN0cy5hcHBlbmQocmVwYWludFJlY3QpOwogfQogCi12b2lkIEZyYW1l
Vmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgciwgYm9vbCBpbW1l
ZGlhdGUpCit2b2lkIEZyYW1lVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50
UmVjdCYgcikKIHsKICAgICBBU1NFUlQoIWZyYW1lKCkub3duZXJFbGVtZW50KCkpOwogCi0gICAg
aWYgKCFzaG91bGRVcGRhdGUoaW1tZWRpYXRlKSkKKyAgICBpZiAoIXNob3VsZFVwZGF0ZSgpKQog
ICAgICAgICByZXR1cm47CiAKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkKQEAgLTIwODAs
NyArMjA4MCw3IEBAIHZvaWQgRnJhbWVWaWV3OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25z
dCBJbnRSZWN0JiByLCBib29sIGltbWVkaWF0ZSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICNl
bmRpZgotICAgIFNjcm9sbFZpZXc6OnJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKHIsIGltbWVkaWF0
ZSk7CisgICAgU2Nyb2xsVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUocik7CiB9CiAKIHN0
YXRpYyB1bnNpZ25lZCBjb3VudFJlbmRlcmVkQ2hhcmFjdGVyc0luUmVuZGVyT2JqZWN0V2l0aFRo
cmVzaG9sZChjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyLCB1bnNpZ25lZCBjb3VudFNvRmFy
LCB1bnNpZ25lZCB0aHJlc2hvbGQpCkBAIC0yNTE3LDkgKzI1MTcsOSBAQCB2b2lkIEZyYW1lVmll
dzo6c2V0U2hvdWxkVXBkYXRlV2hpbGVPZmZzY3JlZW4oYm9vbCBzaG91bGRVcGRhdGVXaGlsZU9m
ZnNjcmVlbikKICAgICBtX3Nob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuID0gc2hvdWxkVXBkYXRl
V2hpbGVPZmZzY3JlZW47CiB9CiAKLWJvb2wgRnJhbWVWaWV3OjpzaG91bGRVcGRhdGUoYm9vbCBp
bW1lZGlhdGVSZXF1ZXN0ZWQpIGNvbnN0Citib29sIEZyYW1lVmlldzo6c2hvdWxkVXBkYXRlKCkg
Y29uc3QKIHsKLSAgICBpZiAoIWltbWVkaWF0ZVJlcXVlc3RlZCAmJiBpc09mZnNjcmVlbigpICYm
ICFzaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVlbigpKQorICAgIGlmIChpc09mZnNjcmVlbigpICYm
ICFzaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVlbigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAppbmRleCAzNzczMjQ1Li40
NDhjMGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgKQEAgLTIwOCw3ICsyMDgsNyBAQCBwdWJs
aWM6CiAKICAgICBib29sIHNob3VsZFVwZGF0ZVdoaWxlT2Zmc2NyZWVuKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRTaG91bGRVcGRhdGVXaGlsZU9mZnNjcmVlbihib29sKTsKLSAgICBib29sIHNob3Vs
ZFVwZGF0ZShib29sID0gZmFsc2UpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkVXBkYXRlKCkgY29u
c3Q7CiAKICAgICB2b2lkIGFkanVzdFZpZXdTaXplKCk7CiAgICAgCkBAIC01MDMsNyArNTAzLDcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHBlcmZvcm1Qb3N0TGF5b3V0VGFza3MoKTsKICAgICB2b2lk
IGF1dG9TaXplSWZFbmFibGVkKCk7CiAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWludENvbnRlbnRS
ZWN0YW5nbGUoY29uc3QgSW50UmVjdCYsIGJvb2wgaW1tZWRpYXRlKSBvdmVycmlkZTsKKyAgICB2
aXJ0dWFsIHZvaWQgcmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYpIG92ZXJy
aWRlOwogICAgIHZpcnR1YWwgdm9pZCBjb250ZW50c1Jlc2l6ZWQoKSBvdmVycmlkZTsKICAgICB2
aXJ0dWFsIHZvaWQgdmlzaWJsZUNvbnRlbnRzUmVzaXplZCgpIG92ZXJyaWRlOwogICAgIHZpcnR1
YWwgdm9pZCBhZGRlZE9yUmVtb3ZlZFNjcm9sbGJhcigpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vSG9zdFdpbmRvdy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vSG9zdFdpbmRvdy5oCmluZGV4IDUyNzdlNzYuLmE3Njc0MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0hvc3RXaW5kb3cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Ib3N0V2luZG93LmgKQEAgLTM4LDE3ICszOCwxNyBAQCBwdWJsaWM6CiAgICAgSG9z
dFdpbmRvdygpIHsgfQogICAgIHZpcnR1YWwgfkhvc3RXaW5kb3coKSB7IH0KIAotICAgIC8vIFJl
cXVlc3RzIHRoZSBob3N0IGludmFsaWRhdGUgdGhlIHJvb3Qgdmlldywgbm90IHRoZSBjb250ZW50
cy4gSWYgaW1tZWRpYXRlIGlzIHRydWUgZG8gc28gc3luY2hyb25vdXNseSwgb3RoZXJ3aXNlIGFz
eW5jLgotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYg
dXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpID0gMDsKKyAgICAvLyBSZXF1ZXN0cyB0aGUgaG9z
dCBpbnZhbGlkYXRlIHRoZSByb290IHZpZXcsIG5vdCB0aGUgY29udGVudHMuCisgICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KSA9IDA7
CiAKLSAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCBpbnZhbGlkYXRlIHRoZSBjb250ZW50cyBhbmQg
dGhlIHJvb3Qgdmlldy4gSWYgaW1tZWRpYXRlIGlzIHRydWUgZG8gc28gc3luY2hyb25vdXNseSwg
b3RoZXJ3aXNlIGFzeW5jLgotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRS
b290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkgPSAwOwor
ICAgIC8vIFJlcXVlc3RzIHRoZSBob3N0IGludmFsaWRhdGUgdGhlIGNvbnRlbnRzIGFuZCB0aGUg
cm9vdCB2aWV3LgorICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmll
dyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KSA9IDA7CiAKICAgICAvLyBSZXF1ZXN0cyB0aGUg
aG9zdCBzY3JvbGwgYmFja2luZ3N0b3JlIGJ5IHRoZSBzcGVjaWZpZWQgZGVsdGEsIHJlY3QgdG8g
c2Nyb2xsLCBhbmQgY2xpcCByZWN0LgogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgSW50
U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgSW50
UmVjdCYgY2xpcFJlY3QpID0gMDsKIAogICAgIC8vIFJlcXVlc3RzIHRoZSBob3N0IGludmFsaWRh
dGUgdGhlIGNvbnRlbnRzLCBub3QgdGhlIHJvb3Qgdmlldy4gVGhpcyBpcyB0aGUgc2xvdyBwYXRo
IGZvciBzY3JvbGxpbmcuCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNs
b3dTY3JvbGwoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpID0gMDsK
KyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiB1cGRhdGVSZWN0KSA9IDA7CiAKICNpZiBVU0UoVElMRURfQkFDS0lOR19TVE9SRSkK
ICAgICAvLyBSZXF1ZXN0cyB0aGUgaG9zdCB0byBkbyB0aGUgYWN0dWFsIHNjcm9sbGluZy4gVGhp
cyBpcyBvbmx5IHVzZWQgaW4gY29tYmluYXRpb24gd2l0aCBhIHRpbGVkIGJhY2tpbmcgc3RvcmUu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCmluZGV4IDIyZDY0NDYuLmY0MGNk
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCkBAIC03MzUsNyArNzM1
LDcgQEAgdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50cyhjb25zdCBJbnRTaXplJiBzY3Jv
bGxEZWx0YSkKICAgICB1cGRhdGVSZWN0LmludGVyc2VjdChzY3JvbGxWaWV3UmVjdCk7CiAKICAg
ICAvLyBJbnZhbGlkYXRlIHRoZSByb290IHZpZXcgKG5vdCB0aGUgYmFja2luZyBzdG9yZSkuCi0g
ICAgd2luZG93LT5pbnZhbGlkYXRlUm9vdFZpZXcodXBkYXRlUmVjdCwgZmFsc2UgLyppbW1lZGlh
dGUqLyk7CisgICAgd2luZG93LT5pbnZhbGlkYXRlUm9vdFZpZXcodXBkYXRlUmVjdCk7CiAKICAg
ICBpZiAobV9kcmF3UGFuU2Nyb2xsSWNvbikgewogICAgICAgICAvLyBGSVhNRTogdGhlIHBhbiBp
Y29uIGlzIGJyb2tlbiB3aGVuIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nIGlzIG9uLCBzaW5jZSBp
dCB3aWxsIGRyYXcgdW5kZXIgdGhlIGNvbXBvc2l0aW5nIGxheWVycy4KQEAgLTc0NCw3ICs3NDQs
NyBAQCB2b2lkIFNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzKGNvbnN0IEludFNpemUmIHNjcm9s
bERlbHRhKQogICAgICAgICBJbnRQb2ludCBwYW5JY29uRGlydHlTcXVhcmVMb2NhdGlvbiA9IElu
dFBvaW50KG1fcGFuU2Nyb2xsSWNvblBvaW50LngoKSAtIChwYW5JY29uRGlydHlTcXVhcmVTaXpl
TGVuZ3RoIC8gMiksIG1fcGFuU2Nyb2xsSWNvblBvaW50LnkoKSAtIChwYW5JY29uRGlydHlTcXVh
cmVTaXplTGVuZ3RoIC8gMikpOwogICAgICAgICBJbnRSZWN0IHBhblNjcm9sbEljb25EaXJ0eVJl
Y3QgPSBJbnRSZWN0KHBhbkljb25EaXJ0eVNxdWFyZUxvY2F0aW9uLCBJbnRTaXplKHBhbkljb25E
aXJ0eVNxdWFyZVNpemVMZW5ndGgsIHBhbkljb25EaXJ0eVNxdWFyZVNpemVMZW5ndGgpKTsKICAg
ICAgICAgcGFuU2Nyb2xsSWNvbkRpcnR5UmVjdC5pbnRlcnNlY3QoY2xpcFJlY3QpOwotICAgICAg
ICB3aW5kb3ctPmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHBhblNjcm9sbEljb25EaXJ0
eVJlY3QsIGZhbHNlIC8qaW1tZWRpYXRlKi8pOworICAgICAgICB3aW5kb3ctPmludmFsaWRhdGVD
b250ZW50c0FuZFJvb3RWaWV3KHBhblNjcm9sbEljb25EaXJ0eVJlY3QpOwogICAgIH0KIAogICAg
IGlmIChjYW5CbGl0T25TY3JvbGwoKSkgeyAvLyBUaGUgbWFpbiBmcmFtZSBjYW4ganVzdCBibGl0
IHRoZSBXZWJWaWV3IHdpbmRvdwpAQCAtNzY0LDcgKzc2NCw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6
c2Nyb2xsQ29udGVudHMoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEpCiAgICAgZnJhbWVSZWN0
c0NoYW5nZWQoKTsKIAogICAgIC8vIE5vdyBibGl0IHRoZSBiYWNraW5nc3RvcmUgaW50byB0aGUg
d2luZG93IHdoaWNoIHNob3VsZCBiZSB2ZXJ5IGZhc3QuCi0gICAgd2luZG93LT5pbnZhbGlkYXRl
Um9vdFZpZXcoSW50UmVjdCgpLCB0cnVlKTsKKyAgICB3aW5kb3ctPmludmFsaWRhdGVSb290Vmll
dyhJbnRSZWN0KCkpOwogfQogCiBib29sIFNjcm9sbFZpZXc6OnNjcm9sbENvbnRlbnRzRmFzdFBh
dGgoY29uc3QgSW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IEludFJlY3QmIHJlY3RUb1Njcm9s
bCwgY29uc3QgSW50UmVjdCYgY2xpcFJlY3QpCkBAIC03NzUsNyArNzc1LDcgQEAgYm9vbCBTY3Jv
bGxWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRh
LCBjb25zdCBJbnRSZWMKIAogdm9pZCBTY3JvbGxWaWV3OjpzY3JvbGxDb250ZW50c1Nsb3dQYXRo
KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QpCiB7Ci0gICAgaG9zdFdpbmRvdygpLT5pbnZhbGlk
YXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKHVwZGF0ZVJlY3QsIGZhbHNlKTsKKyAgICBob3N0V2lu
ZG93KCktPmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwodXBkYXRlUmVjdCk7CiB9CiAK
IEludFBvaW50IFNjcm9sbFZpZXc6OnJvb3RWaWV3VG9Db250ZW50cyhjb25zdCBJbnRQb2ludCYg
cm9vdFZpZXdQb2ludCkgY29uc3QKQEAgLTEwMzEsNyArMTAzMSw3IEBAIHZvaWQgU2Nyb2xsVmll
dzo6cG9zaXRpb25TY3JvbGxiYXJMYXllcnMoKQogICAgIHBvc2l0aW9uU2Nyb2xsQ29ybmVyTGF5
ZXIobGF5ZXJGb3JTY3JvbGxDb3JuZXIoKSwgc2Nyb2xsQ29ybmVyUmVjdCgpKTsKIH0KIAotdm9p
ZCBTY3JvbGxWaWV3OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiByZWN0
LCBib29sIG5vdykKK3ZvaWQgU2Nyb2xsVmlldzo6cmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29u
c3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBJbnRSZWN0IHBhaW50UmVjdCA9IHJlY3Q7CiAgICAg
aWYgKGNsaXBzUmVwYWludHMoKSAmJiAhcGFpbnRzRW50aXJlQ29udGVudHMoKSkKQEAgLTEwNDEs
MTIgKzEwNDEsMTIgQEAgdm9pZCBTY3JvbGxWaWV3OjpyZXBhaW50Q29udGVudFJlY3RhbmdsZShj
b25zdCBJbnRSZWN0JiByZWN0LCBib29sIG5vdykKIAogICAgIGlmIChwbGF0Zm9ybVdpZGdldCgp
KSB7CiAgICAgICAgIG5vdGlmeVBhZ2VUaGF0Q29udGVudEFyZWFXaWxsUGFpbnQoKTsKLSAgICAg
ICAgcGxhdGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShwYWludFJlY3QsIG5vdyk7CisgICAg
ICAgIHBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5nbGUocGFpbnRSZWN0KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAogICAgIGlmIChIb3N0V2luZG93KiB3aW5kb3cgPSBob3N0V2luZG93
KCkpCi0gICAgICAgIHdpbmRvdy0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29udGVu
dHNUb1dpbmRvdyhwYWludFJlY3QpLCBub3cgLyppbW1lZGlhdGUqLyk7CisgICAgICAgIHdpbmRv
dy0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29udGVudHNUb1dpbmRvdyhwYWludFJl
Y3QpKTsKIH0KIAogSW50UmVjdCBTY3JvbGxWaWV3OjpzY3JvbGxDb3JuZXJSZWN0KCkgY29uc3QK
QEAgLTEyMzgsOSArMTIzOCw5IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlT3ZlcmhhbmdBcmVh
cygpCiAgICAgSW50UmVjdCB2ZXJ0aWNhbE92ZXJoYW5nUmVjdDsKICAgICBjYWxjdWxhdGVPdmVy
aGFuZ0FyZWFzRm9yUGFpbnRpbmcoaG9yaXpvbnRhbE92ZXJoYW5nUmVjdCwgdmVydGljYWxPdmVy
aGFuZ1JlY3QpOwogICAgIGlmICghaG9yaXpvbnRhbE92ZXJoYW5nUmVjdC5pc0VtcHR5KCkpCi0g
ICAgICAgIHdpbmRvdy0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoaG9yaXpvbnRhbE92
ZXJoYW5nUmVjdCwgZmFsc2UgLyppbW1lZGlhdGUqLyk7CisgICAgICAgIHdpbmRvdy0+aW52YWxp
ZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoaG9yaXpvbnRhbE92ZXJoYW5nUmVjdCk7CiAgICAgaWYg
KCF2ZXJ0aWNhbE92ZXJoYW5nUmVjdC5pc0VtcHR5KCkpCi0gICAgICAgIHdpbmRvdy0+aW52YWxp
ZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcodmVydGljYWxPdmVyaGFuZ1JlY3QsIGZhbHNlIC8qaW1t
ZWRpYXRlKi8pOworICAgICAgICB3aW5kb3ctPmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3
KHZlcnRpY2FsT3ZlcmhhbmdSZWN0KTsKIH0KIAogdm9pZCBTY3JvbGxWaWV3OjpwYWludE92ZXJo
YW5nQXJlYXMoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBob3Jpem9u
dGFsT3ZlcmhhbmdSZWN0LCBjb25zdCBJbnRSZWN0JiB2ZXJ0aWNhbE92ZXJoYW5nUmVjdCwgY29u
c3QgSW50UmVjdCYgZGlydHlSZWN0KQpAQCAtMTM4Myw3ICsxMzgzLDcgQEAgdm9pZCBTY3JvbGxW
aWV3OjphZGRQYW5TY3JvbGxJY29uKGNvbnN0IEludFBvaW50JiBpY29uUG9zaXRpb24pCiAgICAg
ICAgIHJldHVybjsKICAgICBtX2RyYXdQYW5TY3JvbGxJY29uID0gdHJ1ZTsgICAgCiAgICAgbV9w
YW5TY3JvbGxJY29uUG9pbnQgPSBJbnRQb2ludChpY29uUG9zaXRpb24ueCgpIC0gcGFuSWNvblNp
emVMZW5ndGggLyAyICwgaWNvblBvc2l0aW9uLnkoKSAtIHBhbkljb25TaXplTGVuZ3RoIC8gMikg
OwotICAgIHdpbmRvdy0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoSW50UmVjdChtX3Bh
blNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCwgcGFuSWNvblNpemVM
ZW5ndGgpKSwgdHJ1ZSAvKmltbWVkaWF0ZSovKTsKKyAgICB3aW5kb3ctPmludmFsaWRhdGVDb250
ZW50c0FuZFJvb3RWaWV3KEludFJlY3QobV9wYW5TY3JvbGxJY29uUG9pbnQsIEludFNpemUocGFu
SWNvblNpemVMZW5ndGgsIHBhbkljb25TaXplTGVuZ3RoKSkpOwogfQogCiB2b2lkIFNjcm9sbFZp
ZXc6OnJlbW92ZVBhblNjcm9sbEljb24oKQpAQCAtMTM5Miw3ICsxMzkyLDcgQEAgdm9pZCBTY3Jv
bGxWaWV3OjpyZW1vdmVQYW5TY3JvbGxJY29uKCkKICAgICBpZiAoIXdpbmRvdykKICAgICAgICAg
cmV0dXJuOwogICAgIG1fZHJhd1BhblNjcm9sbEljb24gPSBmYWxzZTsgCi0gICAgd2luZG93LT5p
bnZhbGlkYXRlQ29udGVudHNBbmRSb290VmlldyhJbnRSZWN0KG1fcGFuU2Nyb2xsSWNvblBvaW50
LCBJbnRTaXplKHBhbkljb25TaXplTGVuZ3RoLCBwYW5JY29uU2l6ZUxlbmd0aCkpLCB0cnVlIC8q
aW1tZWRpYXRlKi8pOworICAgIHdpbmRvdy0+aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXco
SW50UmVjdChtX3BhblNjcm9sbEljb25Qb2ludCwgSW50U2l6ZShwYW5JY29uU2l6ZUxlbmd0aCwg
cGFuSWNvblNpemVMZW5ndGgpKSk7CiB9CiAKIHZvaWQgU2Nyb2xsVmlldzo6c2V0U2Nyb2xsT3Jp
Z2luKGNvbnN0IEludFBvaW50JiBvcmlnaW4sIGJvb2wgdXBkYXRlUG9zaXRpb25BdEFsbCwgYm9v
bCB1cGRhdGVQb3NpdGlvblN5bmNocm9ub3VzbHkpCkBAIC0xNDk0LDcgKzE0OTQsNyBAQCBib29s
IFNjcm9sbFZpZXc6OnBsYXRmb3JtU2Nyb2xsKFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVs
YXJpdHkpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgU2Nyb2xsVmlldzo6cGxhdGZvcm1S
ZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiwgYm9vbCAvKm5vdyovKQordm9p
ZCBTY3JvbGxWaWV3OjpwbGF0Zm9ybVJlcGFpbnRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJl
Y3QmKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxW
aWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmgKaW5kZXggZDAyNzcx
OC4uZDc4OWZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuaApAQCAtMzQxLDcg
KzM0MSw3IEBAIHB1YmxpYzoKIHByb3RlY3RlZDoKICAgICBTY3JvbGxWaWV3KCk7CiAKLSAgICB2
aXJ0dWFsIHZvaWQgcmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYsIGJvb2wg
bm93ID0gZmFsc2UpOworICAgIHZpcnR1YWwgdm9pZCByZXBhaW50Q29udGVudFJlY3RhbmdsZShj
b25zdCBJbnRSZWN0Jik7CiAgICAgdmlydHVhbCB2b2lkIHBhaW50Q29udGVudHMoR3JhcGhpY3ND
b250ZXh0KiwgY29uc3QgSW50UmVjdCYgZGFtYWdlUmVjdCkgPSAwOwogCiAgICAgdmlydHVhbCB2
b2lkIHBhaW50T3ZlcmhhbmdBcmVhcyhHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0JiBo
b3Jpem9udGFsT3ZlcmhhbmdBcmVhLCBjb25zdCBJbnRSZWN0JiB2ZXJ0aWNhbE92ZXJoYW5nQXJl
YSwgY29uc3QgSW50UmVjdCYgZGlydHlSZWN0KTsKQEAgLTQzNyw3ICs0MzcsNyBAQCBwcml2YXRl
OgogICAgIHZvaWQgcGxhdGZvcm1TZXRTY3JvbGxQb3NpdGlvbihjb25zdCBJbnRQb2ludCYpOwog
ICAgIGJvb2wgcGxhdGZvcm1TY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0
eSk7CiAgICAgdm9pZCBwbGF0Zm9ybVNldFNjcm9sbGJhcnNTdXBwcmVzc2VkKGJvb2wgcmVwYWlu
dE9uVW5zdXBwcmVzcyk7Ci0gICAgdm9pZCBwbGF0Zm9ybVJlcGFpbnRDb250ZW50UmVjdGFuZ2xl
KGNvbnN0IEludFJlY3QmLCBib29sIG5vdyk7CisgICAgdm9pZCBwbGF0Zm9ybVJlcGFpbnRDb250
ZW50UmVjdGFuZ2xlKGNvbnN0IEludFJlY3QmKTsKICAgICBib29sIHBsYXRmb3JtSXNPZmZzY3Jl
ZW4oKSBjb25zdDsKICAgICB2b2lkIHBsYXRmb3JtU2V0U2Nyb2xsYmFyT3ZlcmxheVN0eWxlKFNj
cm9sbGJhck92ZXJsYXlTdHlsZSk7CiAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9TY3JvbGxWaWV3SU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1Njcm9sbFZpZXdJT1MubW0KaW5kZXggMjBiMGFkMS4uZTUzNzIwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9sbFZpZXdJT1MubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vaW9zL1Njcm9sbFZpZXdJT1MubW0KQEAgLTIxMiwxNCArMjEyLDEzIEBA
IGJvb2wgU2Nyb2xsVmlldzo6cGxhdGZvcm1TY3JvbGwoU2Nyb2xsRGlyZWN0aW9uLCBTY3JvbGxH
cmFudWxhcml0eSkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgU2Nyb2xsVmlldzo6cGxh
dGZvcm1SZXBhaW50Q29udGVudFJlY3RhbmdsZShjb25zdCBJbnRSZWN0JiByZWN0LCBib29sIC8q
bm93Ki8pCit2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5nbGUo
Y29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7
CiAKICAgICBOU1ZpZXcgKnZpZXcgPSBkb2N1bWVudFZpZXcoKTsKIAogICAgIFt2aWV3IHNldE5l
ZWRzRGlzcGxheUluUmVjdDpyZWN0XTsgICAgCi0gICAgLy8gRklYTUU6IEhhbmRsZSAibm93Ii4K
IAogICAgIEVORF9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsVmlld01hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCmluZGV4IGQ4Y2UyNmQuLjIxMzFhODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxWaWV3TWFjLm1tCkBAIC0xNjAsMTUg
KzE2MCwxMiBAQCBib29sIFNjcm9sbFZpZXc6OnBsYXRmb3JtU2Nyb2xsKFNjcm9sbERpcmVjdGlv
biwgU2Nyb2xsR3JhbnVsYXJpdHkpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIFNjcm9s
bFZpZXc6OnBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0YW5nbGUoY29uc3QgSW50UmVjdCYgcmVj
dCwgYm9vbCBub3cpCit2b2lkIFNjcm9sbFZpZXc6OnBsYXRmb3JtUmVwYWludENvbnRlbnRSZWN0
YW5nbGUoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQ
VElPTlM7CiAgICAgTlNWaWV3ICp2aWV3ID0gZG9jdW1lbnRWaWV3KCk7CiAgICAgW3ZpZXcgc2V0
TmVlZHNEaXNwbGF5SW5SZWN0OnJlY3RdOwotICAgIGlmIChub3cpIHsKLSAgICAgICAgW1t2aWV3
IHdpbmRvd10gZGlzcGxheUlmTmVlZGVkXTsKLSAgICAgICAgW1t2aWV3IHdpbmRvd10gZmx1c2hX
aW5kb3dJZk5lZWRlZF07Ci0gICAgfQorCiAgICAgRU5EX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCBkMzkyZGExLi40
OWYyZmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTYxOSw3
ICsxNjE5LDcgQEAgYm9vbCBSZW5kZXJCb3g6OnJlcGFpbnRMYXllclJlY3RzRm9ySW1hZ2UoV3Jh
cHBlZEltYWdlUHRyIGltYWdlLCBjb25zdCBGaWxsTGF5ZXIKICAgICAgICAgICAgICAgICB9CiAg
ICAgICAgICAgICB9CiAKLSAgICAgICAgICAgIGxheWVyUmVuZGVyZXItPnJlcGFpbnRSZWN0YW5n
bGUocmVjdFRvUmVwYWludCwgZmFsc2UsIHNob3VsZENsaXBUb0xheWVyKTsKKyAgICAgICAgICAg
IGxheWVyUmVuZGVyZXItPnJlcGFpbnRSZWN0YW5nbGUocmVjdFRvUmVwYWludCwgc2hvdWxkQ2xp
cFRvTGF5ZXIpOwogICAgICAgICAgICAgaWYgKGdlb21ldHJ5LmRlc3RSZWN0KCkgPT0gcmVuZGVy
ZXJSZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKaW5kZXggYzY3NmY1NC4u
ZmQ3NTVhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dU
aHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
LmNwcApAQCAtNDA2LDcgKzQwNiw3IEBAIGJvb2wgUmVuZGVyRmxvd1RocmVhZDo6c2hvdWxkUmVw
YWludChjb25zdCBMYXlvdXRSZWN0JiByKSBjb25zdAogICAgIHJldHVybiB0cnVlOwogfQogCi12
b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnJlcGFpbnRSZWN0YW5nbGVJblJlZ2lvbnMoY29uc3QgTGF5
b3V0UmVjdCYgcmVwYWludFJlY3QsIGJvb2wgaW1tZWRpYXRlKSBjb25zdAordm9pZCBSZW5kZXJG
bG93VGhyZWFkOjpyZXBhaW50UmVjdGFuZ2xlSW5SZWdpb25zKGNvbnN0IExheW91dFJlY3QmIHJl
cGFpbnRSZWN0KSBjb25zdAogewogICAgIGlmICghc2hvdWxkUmVwYWludChyZXBhaW50UmVjdCkg
fHwgIWhhc1ZhbGlkUmVnaW9uSW5mbygpKQogICAgICAgICByZXR1cm47CkBAIC00MTgsNyArNDE4
LDcgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpyZXBhaW50UmVjdGFuZ2xlSW5SZWdpb25zKGNv
bnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LAogICAgIEN1cnJlbnRSZW5kZXJGbG93VGhyZWFk
RGlzYWJsZXIgZGlzYWJsZXIoJnZpZXcoKSk7CiAgICAgCiAgICAgZm9yIChhdXRvJiByZWdpb24g
OiBtX3JlZ2lvbkxpc3QpCi0gICAgICAgIHJlZ2lvbi0+cmVwYWludEZsb3dUaHJlYWRDb250ZW50
KHJlcGFpbnRSZWN0LCBpbW1lZGlhdGUpOworICAgICAgICByZWdpb24tPnJlcGFpbnRGbG93VGhy
ZWFkQ29udGVudChyZXBhaW50UmVjdCk7CiB9CiAKIFJlbmRlclJlZ2lvbiogUmVuZGVyRmxvd1Ro
cmVhZDo6cmVnaW9uQXRCbG9ja09mZnNldChjb25zdCBSZW5kZXJCb3gqIGNsYW1wQm94LCBMYXlv
dXRVbml0IG9mZnNldCwgYm9vbCBleHRlbmRMYXN0UmVnaW9uLCBSZWdpb25BdXRvR2VuZXJhdGlv
blBvbGljeSBhdXRvR2VuZXJhdGlvblBvbGljeSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IGJkMmEwYTIuLmFhNTZjMGUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtODUsNyArODUsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBj
b25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpIG92ZXJyaWRlOwogCi0gICAgdm9pZCByZXBhaW50
UmVjdGFuZ2xlSW5SZWdpb25zKGNvbnN0IExheW91dFJlY3QmLCBib29sIGltbWVkaWF0ZSkgY29u
c3Q7CisgICAgdm9pZCByZXBhaW50UmVjdGFuZ2xlSW5SZWdpb25zKGNvbnN0IExheW91dFJlY3Qm
KSBjb25zdDsKICAgICAKICAgICBMYXlvdXRQb2ludCBhZGp1c3RlZFBvc2l0aW9uUmVsYXRpdmVU
b09mZnNldFBhcmVudChjb25zdCBSZW5kZXJCb3hNb2RlbE9iamVjdCYsIGNvbnN0IExheW91dFBv
aW50Jik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDlj
ZmJhNWUuLjVjMjgxMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNw
cApAQCAtMTQ3MSw3ICsxNDcxLDcgQEAgUmVuZGVyTGF5ZXIqIFJlbmRlckxheWVyOjplbmNsb3Np
bmdGaWx0ZXJSZXBhaW50TGF5ZXIoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi12b2lkIFJl
bmRlckxheWVyOjpzZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KGNvbnN0IExh
eW91dFJlY3QmIHJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBSZW5kZXJMYXllcjo6c2V0Rmls
dGVyQmFja2VuZE5lZWRzUmVwYWludGluZ0luUmVjdChjb25zdCBMYXlvdXRSZWN0JiByZWN0KQog
ewogICAgIGlmIChyZWN0LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTQ5OCwxMiAr
MTQ5OCwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjpzZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50
aW5nSW5SZWN0KGNvbnN0IExheW91dFJlY3QmIHJlY3QsCiAgICAgfQogCiAgICAgaWYgKHBhcmVu
dExheWVyLT5wYWludHNXaXRoRmlsdGVycygpKSB7Ci0gICAgICAgIHBhcmVudExheWVyLT5zZXRG
aWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KHBhcmVudExheWVyUmVjdCwgaW1tZWRp
YXRlKTsKKyAgICAgICAgcGFyZW50TGF5ZXItPnNldEZpbHRlckJhY2tlbmROZWVkc1JlcGFpbnRp
bmdJblJlY3QocGFyZW50TGF5ZXJSZWN0KTsKICAgICAgICAgcmV0dXJuOyAgICAgICAgCiAgICAg
fQogICAgIAogICAgIGlmIChwYXJlbnRMYXllci0+aXNSb290TGF5ZXIoKSkgewotICAgICAgICB0
b1JlbmRlclZpZXcocGFyZW50TGF5ZXItPnJlbmRlcmVyKCkpLnJlcGFpbnRWaWV3UmVjdGFuZ2xl
KHBhcmVudExheWVyUmVjdCwgaW1tZWRpYXRlKTsKKyAgICAgICAgdG9SZW5kZXJWaWV3KHBhcmVu
dExheWVyLT5yZW5kZXJlcigpKS5yZXBhaW50Vmlld1JlY3RhbmdsZShwYXJlbnRMYXllclJlY3Qp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaAppbmRleCBiMzQxZjA0Li4xYTE0YjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuaApAQCAtNjA5LDcgKzYwOSw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUo
Q1NTX0ZJTFRFUlMpCiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xvc2luZ0ZpbHRlckxheWVyKEluY2x1
ZGVTZWxmT3JOb3QgPSBJbmNsdWRlU2VsZikgY29uc3Q7CiAgICAgUmVuZGVyTGF5ZXIqIGVuY2xv
c2luZ0ZpbHRlclJlcGFpbnRMYXllcigpIGNvbnN0OwotICAgIHZvaWQgc2V0RmlsdGVyQmFja2Vu
ZE5lZWRzUmVwYWludGluZ0luUmVjdChjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCBpbW1lZGlhdGUp
OworICAgIHZvaWQgc2V0RmlsdGVyQmFja2VuZE5lZWRzUmVwYWludGluZ0luUmVjdChjb25zdCBM
YXlvdXRSZWN0Jik7CiAgICAgYm9vbCBoYXNBbmNlc3RvcldpdGhGaWx0ZXJPdXRzZXRzKCkgY29u
c3Q7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0
aUNvbHVtblNldC5jcHAKaW5kZXggMzBkYjMwOC4uNGM0OWRkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCkBAIC00NzksNyArNDc5
LDcgQEAgdm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6cGFpbnRDb2x1bW5SdWxlcyhQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG8KICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyTXVs
dGlDb2x1bW5TZXQ6OnJlcGFpbnRGbG93VGhyZWFkQ29udGVudChjb25zdCBMYXlvdXRSZWN0JiBy
ZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIFJlbmRlck11bHRpQ29sdW1uU2V0Ojpy
ZXBhaW50Rmxvd1RocmVhZENvbnRlbnQoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QpCiB7
CiAgICAgLy8gRmlndXJlIG91dCB0aGUgc3RhcnQgYW5kIGVuZCBjb2x1bW5zIGFuZCBvbmx5IGNo
ZWNrIHdpdGhpbiB0aGF0IHJhbmdlIHNvIHRoYXQgd2UgZG9uJ3Qgd2FsayB0aGUKICAgICAvLyBl
bnRpcmUgY29sdW1uIHNldC4gUHV0IHRoZSByZXBhaW50IHJlY3QgaW50byBmbG93IHRocmVhZCBj
b29yZGluYXRlcyBieSBmbGlwcGluZyBpdCBmaXJzdC4KQEAgLTUxMyw3ICs1MTMsNyBAQCB2b2lk
IFJlbmRlck11bHRpQ29sdW1uU2V0OjpyZXBhaW50Rmxvd1RocmVhZENvbnRlbnQoY29uc3QgTGF5
b3V0UmVjdCYgcmVwYWludFJlYwogICAgICAgICBMYXlvdXRSZWN0IGZsb3dUaHJlYWRPdmVyZmxv
d1BvcnRpb24gPSBmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdChmbG93VGhyZWFkUG9ydGlv
biwgaSwgY29sQ291bnQsIGNvbEdhcCk7CiAKICAgICAgICAgLy8gRG8gYSByZXBhaW50IGZvciB0
aGlzIHNwZWNpZmljIGNvbHVtbi4KLSAgICAgICAgcmVwYWludEZsb3dUaHJlYWRDb250ZW50UmVj
dGFuZ2xlKHJlcGFpbnRSZWN0LCBpbW1lZGlhdGUsIGZsb3dUaHJlYWRQb3J0aW9uLCBjb2xSZWN0
LmxvY2F0aW9uKCksICZmbG93VGhyZWFkT3ZlcmZsb3dQb3J0aW9uKTsKKyAgICAgICAgcmVwYWlu
dEZsb3dUaHJlYWRDb250ZW50UmVjdGFuZ2xlKHJlcGFpbnRSZWN0LCBmbG93VGhyZWFkUG9ydGlv
biwgY29sUmVjdC5sb2NhdGlvbigpLCAmZmxvd1RocmVhZE92ZXJmbG93UG9ydGlvbik7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlD
b2x1bW5TZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNl
dC5oCmluZGV4IDQwMWI1YmMuLjlhNDkzZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCkBAIC05OCw3ICs5OCw3IEBAIHByaXZhdGU6CiAg
ICAgLy8gRklYTUU6IFRoaXMgd2lsbCBjaGFuZ2Ugb25jZSB3ZSBoYXZlIGNvbHVtbiBzZXRzIGNv
bnN0cmFpbmVkIGJ5IGVuY2xvc2luZyBwYWdlcywgZXRjLgogICAgIHZpcnR1YWwgTGF5b3V0VW5p
dCBsb2dpY2FsSGVpZ2h0T2ZBbGxGbG93VGhyZWFkQ29udGVudCgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fY29tcHV0ZWRDb2x1bW5IZWlnaHQ7IH0KICAgICAKLSAgICB2aXJ0dWFsIHZvaWQg
cmVwYWludEZsb3dUaHJlYWRDb250ZW50KGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBi
b29sIGltbWVkaWF0ZSkgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRGbG93VGhy
ZWFkQ29udGVudChjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCkgb3ZlcnJpZGU7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgY29sbGVjdExheWVyRnJhZ21lbnRzKExheWVyRnJhZ21lbnRzJiwgY29u
c3QgTGF5b3V0UmVjdCYgbGF5ZXJCb3VuZGluZ0JveCwgY29uc3QgTGF5b3V0UmVjdCYgZGlydHlS
ZWN0KSBvdmVycmlkZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cAppbmRleCA1OTUwZjYxLi4yYmFlZjMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcApAQCAtMTIyNSwyMSArMTIyNSwyMSBAQCBSZW5kZXJMYXllck1vZGVsT2Jq
ZWN0KiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5lckZvclJlcGFpbnQoKSBjb25zdAogICAgIHJldHVy
biByZXBhaW50Q29udGFpbmVyOwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFVzaW5n
Q29udGFpbmVyKGNvbnN0IFJlbmRlckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIs
IGNvbnN0IExheW91dFJlY3QmIHIsIGJvb2wgaW1tZWRpYXRlLCBib29sIHNob3VsZENsaXBUb0xh
eWVyKSBjb25zdAordm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRVc2luZ0NvbnRhaW5lcihjb25z
dCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25zdCBMYXlvdXRS
ZWN0JiByLCBib29sIHNob3VsZENsaXBUb0xheWVyKSBjb25zdAogewogICAgIGlmICghcmVwYWlu
dENvbnRhaW5lcikgewotICAgICAgICB2aWV3KCkucmVwYWludFZpZXdSZWN0YW5nbGUociwgaW1t
ZWRpYXRlKTsKKyAgICAgICAgdmlldygpLnJlcGFpbnRWaWV3UmVjdGFuZ2xlKHIpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHJlcGFpbnRDb250YWluZXItPmlzUmVuZGVyRmxv
d1RocmVhZCgpKSB7Ci0gICAgICAgIHRvUmVuZGVyRmxvd1RocmVhZChyZXBhaW50Q29udGFpbmVy
KS0+cmVwYWludFJlY3RhbmdsZUluUmVnaW9ucyhyLCBpbW1lZGlhdGUpOworICAgICAgICB0b1Jl
bmRlckZsb3dUaHJlYWQocmVwYWludENvbnRhaW5lciktPnJlcGFpbnRSZWN0YW5nbGVJblJlZ2lv
bnMocik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICNpZiBFTkFCTEUoQ1NTX0ZJTFRFUlMp
CiAgICAgaWYgKHJlcGFpbnRDb250YWluZXItPmhhc0ZpbHRlcigpICYmIHJlcGFpbnRDb250YWlu
ZXItPmxheWVyKCkgJiYgcmVwYWludENvbnRhaW5lci0+bGF5ZXIoKS0+cmVxdWlyZXNGdWxsTGF5
ZXJJbWFnZUZvckZpbHRlcnMoKSkgewotICAgICAgICByZXBhaW50Q29udGFpbmVyLT5sYXllcigp
LT5zZXRGaWx0ZXJCYWNrZW5kTmVlZHNSZXBhaW50aW5nSW5SZWN0KHIsIGltbWVkaWF0ZSk7Cisg
ICAgICAgIHJlcGFpbnRDb250YWluZXItPmxheWVyKCktPnNldEZpbHRlckJhY2tlbmROZWVkc1Jl
cGFpbnRpbmdJblJlY3Qocik7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTEy
NDksNyArMTI0OSw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50VXNpbmdDb250YWluZXIo
Y29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvCiAgICAgICAgIEFTU0VSVChy
ZXBhaW50Q29udGFpbmVyID09ICZ2KTsKICAgICAgICAgYm9vbCB2aWV3SGFzQ29tcG9zaXRlZExh
eWVyID0gdi5oYXNMYXllcigpICYmIHYubGF5ZXIoKS0+aXNDb21wb3NpdGVkKCk7CiAgICAgICAg
IGlmICghdmlld0hhc0NvbXBvc2l0ZWRMYXllciB8fCB2LmxheWVyKCktPmJhY2tpbmcoKS0+cGFp
bnRzSW50b1dpbmRvdygpKSB7Ci0gICAgICAgICAgICB2LnJlcGFpbnRWaWV3UmVjdGFuZ2xlKHZp
ZXdIYXNDb21wb3NpdGVkTGF5ZXIgJiYgdi5sYXllcigpLT50cmFuc2Zvcm0oKSA/IHYubGF5ZXIo
KS0+dHJhbnNmb3JtKCktPm1hcFJlY3QocikgOiByLCBpbW1lZGlhdGUpOworICAgICAgICAgICAg
di5yZXBhaW50Vmlld1JlY3RhbmdsZSh2aWV3SGFzQ29tcG9zaXRlZExheWVyICYmIHYubGF5ZXIo
KS0+dHJhbnNmb3JtKCkgPyB2LmxheWVyKCktPnRyYW5zZm9ybSgpLT5tYXBSZWN0KHIpIDogcik7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICB9CkBAIC0xMjYwLDcgKzEyNjAs
NyBAQCB2b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFVzaW5nQ29udGFpbmVyKGNvbnN0IFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIHJlcGFpbnRDbwogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJPYmpl
Y3Q6OnJlcGFpbnQoYm9vbCBpbW1lZGlhdGUpIGNvbnN0Cit2b2lkIFJlbmRlck9iamVjdDo6cmVw
YWludCgpIGNvbnN0CiB7CiAgICAgLy8gRG9uJ3QgcmVwYWludCBpZiB3ZSdyZSB1bnJvb3RlZCAo
bm90ZSB0aGF0IHZpZXcoKSBzdGlsbCByZXR1cm5zIHRoZSB2aWV3IHdoZW4gdW5yb290ZWQpCiAg
ICAgUmVuZGVyVmlldyogdmlldzsKQEAgLTEyNzEsMTAgKzEyNzEsMTAgQEAgdm9pZCBSZW5kZXJP
YmplY3Q6OnJlcGFpbnQoYm9vbCBpbW1lZGlhdGUpIGNvbnN0CiAgICAgICAgIHJldHVybjsgLy8g
RG9uJ3QgcmVwYWludCBpZiB3ZSdyZSBwcmludGluZy4KIAogICAgIFJlbmRlckxheWVyTW9kZWxP
YmplY3QqIHJlcGFpbnRDb250YWluZXIgPSBjb250YWluZXJGb3JSZXBhaW50KCk7Ci0gICAgcmVw
YWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIgPyByZXBhaW50Q29udGFpbmVyIDog
dmlldywgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVwYWludENvbnRhaW5lciksIGlt
bWVkaWF0ZSk7CisgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIgPyBy
ZXBhaW50Q29udGFpbmVyIDogdmlldywgY2xpcHBlZE92ZXJmbG93UmVjdEZvclJlcGFpbnQocmVw
YWludENvbnRhaW5lcikpOwogfQogCi12b2lkIFJlbmRlck9iamVjdDo6cmVwYWludFJlY3Rhbmds
ZShjb25zdCBMYXlvdXRSZWN0JiByLCBib29sIGltbWVkaWF0ZSwgYm9vbCBzaG91bGRDbGlwVG9M
YXllcikgY29uc3QKK3ZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0IExh
eW91dFJlY3QmIHIsIGJvb2wgc2hvdWxkQ2xpcFRvTGF5ZXIpIGNvbnN0CiB7CiAgICAgLy8gRG9u
J3QgcmVwYWludCBpZiB3ZSdyZSB1bnJvb3RlZCAobm90ZSB0aGF0IHZpZXcoKSBzdGlsbCByZXR1
cm5zIHRoZSB2aWV3IHdoZW4gdW5yb290ZWQpCiAgICAgUmVuZGVyVmlldyogdmlldzsKQEAgLTEy
OTIsNyArMTI5Miw3IEBAIHZvaWQgUmVuZGVyT2JqZWN0OjpyZXBhaW50UmVjdGFuZ2xlKGNvbnN0
IExheW91dFJlY3QmIHIsIGJvb2wgaW1tZWRpYXRlLCBib29sIHNoCiAKICAgICBSZW5kZXJMYXll
ck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyID0gY29udGFpbmVyRm9yUmVwYWludCgpOwog
ICAgIGNvbXB1dGVSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyLCBkaXJ0eVJlY3QpOwot
ICAgIHJlcGFpbnRVc2luZ0NvbnRhaW5lcihyZXBhaW50Q29udGFpbmVyID8gcmVwYWludENvbnRh
aW5lciA6IHZpZXcsIGRpcnR5UmVjdCwgaW1tZWRpYXRlLCBzaG91bGRDbGlwVG9MYXllcik7Cisg
ICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIgPyByZXBhaW50Q29udGFp
bmVyIDogdmlldywgZGlydHlSZWN0LCBzaG91bGRDbGlwVG9MYXllcik7CiB9CiAKIHZvaWQgUmVu
ZGVyT2JqZWN0OjpyZXBhaW50U2xvd1JlcGFpbnRPYmplY3QoKSBjb25zdApAQCAtMTMyMSw3ICsx
MzIxLDcgQEAgdm9pZCBSZW5kZXJPYmplY3Q6OnJlcGFpbnRTbG93UmVwYWludE9iamVjdCgpIGNv
bnN0CiAgICAgfSBlbHNlCiAgICAgICAgIHJlcGFpbnRSZWN0ID0gcGl4ZWxTbmFwcGVkSW50UmVj
dChjbGlwcGVkT3ZlcmZsb3dSZWN0Rm9yUmVwYWludChyZXBhaW50Q29udGFpbmVyKSk7CiAKLSAg
ICByZXBhaW50VXNpbmdDb250YWluZXIocmVwYWludENvbnRhaW5lciwgcmVwYWludFJlY3QsIGZh
bHNlLCBzaG91bGRDbGlwVG9MYXllcik7CisgICAgcmVwYWludFVzaW5nQ29udGFpbmVyKHJlcGFp
bnRDb250YWluZXIsIHJlcGFpbnRSZWN0LCBzaG91bGRDbGlwVG9MYXllcik7CiB9CiAKIEludFJl
Y3QgUmVuZGVyT2JqZWN0OjpwaXhlbFNuYXBwZWRBYnNvbHV0ZUNsaXBwZWRPdmVyZmxvd1JlY3Qo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDc3MDhh
NGMuLjEwNWRjYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAg
LTcyNCwxNCArNzI0LDE0IEBAIHB1YmxpYzoKICAgICBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBj
b250YWluZXJGb3JSZXBhaW50KCkgY29uc3Q7CiAgICAgLy8gQWN0dWFsbHkgZG8gdGhlIHJlcGFp
bnQgb2YgcmVjdCByIGZvciB0aGlzIG9iamVjdCB3aGljaCBoYXMgYmVlbiBjb21wdXRlZCBpbiB0
aGUgY29vcmRpbmF0ZSBzcGFjZQogICAgIC8vIG9mIHJlcGFpbnRDb250YWluZXIuIElmIHJlcGFp
bnRDb250YWluZXIgaXMgMCwgcmVwYWludCB2aWEgdGhlIHZpZXcuCi0gICAgdm9pZCByZXBhaW50
VXNpbmdDb250YWluZXIoY29uc3QgUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCogcmVwYWludENvbnRh
aW5lciwgY29uc3QgTGF5b3V0UmVjdCYsIGJvb2wgaW1tZWRpYXRlID0gZmFsc2UsIGJvb2wgc2hv
dWxkQ2xpcFRvTGF5ZXIgPSB0cnVlKSBjb25zdDsKKyAgICB2b2lkIHJlcGFpbnRVc2luZ0NvbnRh
aW5lcihjb25zdCBSZW5kZXJMYXllck1vZGVsT2JqZWN0KiByZXBhaW50Q29udGFpbmVyLCBjb25z
dCBMYXlvdXRSZWN0JiwgYm9vbCBzaG91bGRDbGlwVG9MYXllciA9IHRydWUpIGNvbnN0OwogICAg
IAogICAgIC8vIFJlcGFpbnQgdGhlIGVudGlyZSBvYmplY3QuICBDYWxsZWQgd2hlbiwgZS5nLiwg
dGhlIGNvbG9yIG9mIGEgYm9yZGVyIGNoYW5nZXMsIG9yIHdoZW4gYSBib3JkZXIKICAgICAvLyBz
dHlsZSBjaGFuZ2VzLgotICAgIHZvaWQgcmVwYWludChib29sIGltbWVkaWF0ZSA9IGZhbHNlKSBj
b25zdDsKKyAgICB2b2lkIHJlcGFpbnQoKSBjb25zdDsKIAogICAgIC8vIFJlcGFpbnQgYSBzcGVj
aWZpYyBzdWJyZWN0YW5nbGUgd2l0aGluIGEgZ2l2ZW4gb2JqZWN0LiAgVGhlIHJlY3QgfHJ8IGlz
IGluIHRoZSBvYmplY3QncyBjb29yZGluYXRlIHNwYWNlLgotICAgIHZvaWQgcmVwYWludFJlY3Rh
bmdsZShjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCBpbW1lZGlhdGUgPSBmYWxzZSwgYm9vbCBzaG91
bGRDbGlwVG9MYXllciA9IHRydWUpIGNvbnN0OworICAgIHZvaWQgcmVwYWludFJlY3RhbmdsZShj
b25zdCBMYXlvdXRSZWN0JiwgYm9vbCBzaG91bGRDbGlwVG9MYXllciA9IHRydWUpIGNvbnN0Owog
CiAgICAgLy8gUmVwYWludCBhIHNsb3cgcmVwYWludCBvYmplY3QsIHdoaWNoLCBhdCB0aGlzIHRp
bWUsIG1lYW5zIHdlIGFyZSByZXBhaW50aW5nIGFuIG9iamVjdCB3aXRoIGJhY2tncm91bmQtYXR0
YWNobWVudDpmaXhlZC4KICAgICB2b2lkIHJlcGFpbnRTbG93UmVwYWludE9iamVjdCgpIGNvbnN0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcAppbmRleCAyNzJjMDU5
Li5mMjI0NjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVn
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVnaW9uLmNwcApA
QCAtMjYxLDEyICsyNjEsMTIgQEAgdm9pZCBSZW5kZXJSZWdpb246OmNvbXB1dGVPdmVyZmxvd0Zy
b21GbG93VGhyZWFkKCkKICAgICB1cGRhdGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQoKTsKIH0KIAot
dm9pZCBSZW5kZXJSZWdpb246OnJlcGFpbnRGbG93VGhyZWFkQ29udGVudChjb25zdCBMYXlvdXRS
ZWN0JiByZXBhaW50UmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIFJlbmRlclJlZ2lvbjo6cmVw
YWludEZsb3dUaHJlYWRDb250ZW50KGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0KQogewot
ICAgIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudFJlY3RhbmdsZShyZXBhaW50UmVjdCwgaW1tZWRp
YXRlLCBmbG93VGhyZWFkUG9ydGlvblJlY3QoKSwgY29udGVudEJveFJlY3QoKS5sb2NhdGlvbigp
KTsKKyAgICByZXBhaW50Rmxvd1RocmVhZENvbnRlbnRSZWN0YW5nbGUocmVwYWludFJlY3QsIGZs
b3dUaHJlYWRQb3J0aW9uUmVjdCgpLCBjb250ZW50Qm94UmVjdCgpLmxvY2F0aW9uKCkpOwogfQog
Ci12b2lkIFJlbmRlclJlZ2lvbjo6cmVwYWludEZsb3dUaHJlYWRDb250ZW50UmVjdGFuZ2xlKGNv
bnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGltbWVkaWF0ZSwgY29uc3QgTGF5b3V0
UmVjdCYgZmxvd1RocmVhZFBvcnRpb25SZWN0LCBjb25zdCBMYXlvdXRQb2ludCYgcmVnaW9uTG9j
YXRpb24sIGNvbnN0IExheW91dFJlY3QqIGZsb3dUaHJlYWRQb3J0aW9uQ2xpcFJlY3QpCit2b2lk
IFJlbmRlclJlZ2lvbjo6cmVwYWludEZsb3dUaHJlYWRDb250ZW50UmVjdGFuZ2xlKGNvbnN0IExh
eW91dFJlY3QmIHJlcGFpbnRSZWN0LCBjb25zdCBMYXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlv
blJlY3QsIGNvbnN0IExheW91dFBvaW50JiByZWdpb25Mb2NhdGlvbiwgY29uc3QgTGF5b3V0UmVj
dCogZmxvd1RocmVhZFBvcnRpb25DbGlwUmVjdCkKIHsKICAgICBBU1NFUlQoaXNWYWxpZCgpKTsK
IApAQCAtMjkyLDcgKzI5Miw3IEBAIHZvaWQgUmVuZGVyUmVnaW9uOjpyZXBhaW50Rmxvd1RocmVh
ZENvbnRlbnRSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlCiAgICAgZmxpcEZv
cldyaXRpbmdNb2RlKGNsaXBwZWRSZWN0KTsKICAgICAKICAgICAvLyBJc3N1ZSB0aGUgcmVwYWlu
dC4KLSAgICByZXBhaW50UmVjdGFuZ2xlKGNsaXBwZWRSZWN0LCBpbW1lZGlhdGUpOworICAgIHJl
cGFpbnRSZWN0YW5nbGUoY2xpcHBlZFJlY3QpOwogfQogCiB2b2lkIFJlbmRlclJlZ2lvbjo6aW5z
dGFsbEZsb3dUaHJlYWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclJlZ2lvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlZ2lvbi5oCmlu
ZGV4IDlkMGVjYTMuLjU1ZDE1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZWdpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVn
aW9uLmgKQEAgLTEwOCw3ICsxMDgsNyBAQCBwdWJsaWM6CiAgICAgLy8gV2hldGhlciBvciBub3Qg
dGhpcyByZWdpb24gaXMgYSBzZXQuCiAgICAgdmlydHVhbCBib29sIGlzUmVuZGVyUmVnaW9uU2V0
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgcmVwYWlu
dEZsb3dUaHJlYWRDb250ZW50KGNvbnN0IExheW91dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGlt
bWVkaWF0ZSk7CisgICAgdmlydHVhbCB2b2lkIHJlcGFpbnRGbG93VGhyZWFkQ29udGVudChjb25z
dCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29sbGVjdExh
eWVyRnJhZ21lbnRzKExheWVyRnJhZ21lbnRzJiwgY29uc3QgTGF5b3V0UmVjdCYsIGNvbnN0IExh
eW91dFJlY3QmKSB7IH0KIApAQCAtMTQ3LDcgKzE0Nyw3IEBAIHByb3RlY3RlZDoKICAgICB9Owog
CiAgICAgTGF5b3V0UmVjdCBvdmVyZmxvd1JlY3RGb3JGbG93VGhyZWFkUG9ydGlvbihjb25zdCBM
YXlvdXRSZWN0JiBmbG93VGhyZWFkUG9ydGlvblJlY3QsIGJvb2wgaXNGaXJzdFBvcnRpb24sIGJv
b2wgaXNMYXN0UG9ydGlvbiwgT3ZlcmZsb3dUeXBlKTsKLSAgICB2b2lkIHJlcGFpbnRGbG93VGhy
ZWFkQ29udGVudFJlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCwgYm9vbCBp
bW1lZGlhdGUsIGNvbnN0IExheW91dFJlY3QmIGZsb3dUaHJlYWRQb3J0aW9uUmVjdCwgY29uc3Qg
TGF5b3V0UG9pbnQmIHJlZ2lvbkxvY2F0aW9uLCBjb25zdCBMYXlvdXRSZWN0KiBmbG93VGhyZWFk
UG9ydGlvbkNsaXBSZWN0ID0gMCk7CisgICAgdm9pZCByZXBhaW50Rmxvd1RocmVhZENvbnRlbnRS
ZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcmVwYWludFJlY3QsIGNvbnN0IExheW91dFJlY3Qm
IGZsb3dUaHJlYWRQb3J0aW9uUmVjdCwgY29uc3QgTGF5b3V0UG9pbnQmIHJlZ2lvbkxvY2F0aW9u
LCBjb25zdCBMYXlvdXRSZWN0KiBmbG93VGhyZWFkUG9ydGlvbkNsaXBSZWN0ID0gMCk7CiAKICAg
ICB2b2lkIGNvbXB1dGVPdmVyZmxvd0Zyb21GbG93VGhyZWFkKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCA0NGQwYmNkLi44NTc4OTMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCkBAIC01MzksOSArNTM5LDggQEAgdm9pZCBS
ZW5kZXJWaWV3OjpyZXBhaW50Um9vdENvbnRlbnRzKCkKICAgICByZXBhaW50KCk7CiB9CiAKLXZv
aWQgUmVuZGVyVmlldzo6cmVwYWludFZpZXdSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYgcmVw
YWludFJlY3QsIGJvb2wgaW1tZWRpYXRlKSBjb25zdAordm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50
Vmlld1JlY3RhbmdsZShjb25zdCBMYXlvdXRSZWN0JiByZXBhaW50UmVjdCkgY29uc3QKIHsKLSAg
ICAvLyBGSVhNRTogR2V0IHJpZCBvZiB0aGUgJ2ltbWVkaWF0ZScgYXJndW1lbnQuIEl0IG9ubHkg
d29ya3Mgb24gTWFjIFdLMSBhbmQgc2hvdWxkIG5ldmVyIGJlIHVzZWQuCiAgICAgaWYgKCFzaG91
bGRSZXBhaW50KHJlcGFpbnRSZWN0KSkKICAgICAgICAgcmV0dXJuOwogCkBAIC01NTgsMTUgKzU1
NywxNSBAQCB2b2lkIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVjdGFuZ2xlKGNvbnN0IExheW91
dFJlY3QmIHJlcGFpbnRSZWN0LCBib29sIGltbWVkaQogI2VuZGlmCiAgICAgICAgIGFkanVzdGVk
UmVjdC5tb3ZlQnkoLXZpZXdSZWN0LmxvY2F0aW9uKCkpOwogICAgICAgICBhZGp1c3RlZFJlY3Qu
bW92ZUJ5KG93bmVyQm94LmNvbnRlbnRCb3hSZWN0KCkubG9jYXRpb24oKSk7Ci0gICAgICAgIG93
bmVyQm94LnJlcGFpbnRSZWN0YW5nbGUoYWRqdXN0ZWRSZWN0LCBpbW1lZGlhdGUpOworICAgICAg
ICBvd25lckJveC5yZXBhaW50UmVjdGFuZ2xlKGFkanVzdGVkUmVjdCk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgSW50UmVjdCBwaXhlbFNuYXBwZWRSZWN0ID0gcGl4ZWxTbmFwcGVkSW50
UmVjdChyZXBhaW50UmVjdCk7CiAKICAgICBmcmFtZVZpZXcoKS5hZGRUcmFja2VkUmVwYWludFJl
Y3QocGl4ZWxTbmFwcGVkUmVjdCk7CiAKLSAgICBpZiAoIW1fYWNjdW11bGF0ZWRSZXBhaW50UmVn
aW9uIHx8IGltbWVkaWF0ZSkgewotICAgICAgICBmcmFtZVZpZXcoKS5yZXBhaW50Q29udGVudFJl
Y3RhbmdsZShwaXhlbFNuYXBwZWRSZWN0LCBpbW1lZGlhdGUpOworICAgIGlmICghbV9hY2N1bXVs
YXRlZFJlcGFpbnRSZWdpb24pIHsKKyAgICAgICAgZnJhbWVWaWV3KCkucmVwYWludENvbnRlbnRS
ZWN0YW5nbGUocGl4ZWxTbmFwcGVkUmVjdCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
bV9hY2N1bXVsYXRlZFJlcGFpbnRSZWdpb24tPnVuaXRlKHBpeGVsU25hcHBlZFJlY3QpOwpAQCAt
NTg0LDE2ICs1ODMsMTYgQEAgdm9pZCBSZW5kZXJWaWV3OjpmbHVzaEFjY3VtdWxhdGVkUmVwYWlu
dFJlZ2lvbigpIGNvbnN0CiAgICAgQVNTRVJUKG1fYWNjdW11bGF0ZWRSZXBhaW50UmVnaW9uKTsK
ICAgICBhdXRvIHJlcGFpbnRSZWN0cyA9IG1fYWNjdW11bGF0ZWRSZXBhaW50UmVnaW9uLT5yZWN0
cygpOwogICAgIGZvciAoYXV0byYgcmVjdCA6IHJlcGFpbnRSZWN0cykKLSAgICAgICAgZnJhbWVW
aWV3KCkucmVwYWludENvbnRlbnRSZWN0YW5nbGUocmVjdCwgZmFsc2UpOworICAgICAgICBmcmFt
ZVZpZXcoKS5yZXBhaW50Q29udGVudFJlY3RhbmdsZShyZWN0KTsKICAgICBtX2FjY3VtdWxhdGVk
UmVwYWludFJlZ2lvbiA9IG51bGxwdHI7CiB9CiAKLXZvaWQgUmVuZGVyVmlldzo6cmVwYWludFJl
Y3RhbmdsZUluVmlld0FuZENvbXBvc2l0ZWRMYXllcnMoY29uc3QgTGF5b3V0UmVjdCYgdXIsIGJv
b2wgaW1tZWRpYXRlKQordm9pZCBSZW5kZXJWaWV3OjpyZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5k
Q29tcG9zaXRlZExheWVycyhjb25zdCBMYXlvdXRSZWN0JiB1cikKIHsKICAgICBpZiAoIXNob3Vs
ZFJlcGFpbnQodXIpKQogICAgICAgICByZXR1cm47CiAKLSAgICByZXBhaW50Vmlld1JlY3Rhbmds
ZSh1ciwgaW1tZWRpYXRlKTsKKyAgICByZXBhaW50Vmlld1JlY3RhbmdsZSh1cik7CiAKICAgICBS
ZW5kZXJMYXllckNvbXBvc2l0b3ImIGNvbXBvc2l0b3IgPSB0aGlzLT5jb21wb3NpdG9yKCk7CiAg
ICAgaWYgKGNvbXBvc2l0b3IuaW5Db21wb3NpdGluZ01vZGUoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgKaW5kZXggMzU1YzkwMS4uNDMxYWVjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5oCkBAIC03MywxMCArNzMsMTAgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgTGF5b3V0UmVjdCB2aXN1YWxPdmVyZmxvd1JlY3QoKSBjb25zdCBvdmVycmlkZTsKICAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVJlY3RGb3JSZXBhaW50KGNvbnN0IFJlbmRlckxheWVyTW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIExheW91dFJlY3QmLCBib29sIGZpeGVkID0gZmFs
c2UpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgcmVwYWludFJvb3RDb250ZW50cygpOwotICAg
IHZvaWQgcmVwYWludFZpZXdSZWN0YW5nbGUoY29uc3QgTGF5b3V0UmVjdCYsIGJvb2wgaW1tZWRp
YXRlID0gZmFsc2UpIGNvbnN0OworICAgIHZvaWQgcmVwYWludFZpZXdSZWN0YW5nbGUoY29uc3Qg
TGF5b3V0UmVjdCYpIGNvbnN0OwogICAgIC8vIFJlcGFpbnQgdGhlIHZpZXcsIGFuZCBhbGwgY29t
cG9zaXRlZCBsYXllcnMgdGhhdCBpbnRlcnNlY3QgdGhlIGdpdmVuIGFic29sdXRlIHJlY3Rhbmds
ZS4KICAgICAvLyBGSVhNRTogaWRlYWxseSB3ZSdkIG5ldmVyIGhhdmUgdG8gZG8gdGhpcywgaWYg
YWxsIHJlcGFpbnRzIGFyZSBjb250YWluZXItcmVsYXRpdmUuCi0gICAgdm9pZCByZXBhaW50UmVj
dGFuZ2xlSW5WaWV3QW5kQ29tcG9zaXRlZExheWVycyhjb25zdCBMYXlvdXRSZWN0JiwgYm9vbCBp
bW1lZGlhdGUgPSBmYWxzZSk7CisgICAgdm9pZCByZXBhaW50UmVjdGFuZ2xlSW5WaWV3QW5kQ29t
cG9zaXRlZExheWVycyhjb25zdCBMYXlvdXRSZWN0Jik7CiAgICAgdm9pZCByZXBhaW50Vmlld0Fu
ZENvbXBvc2l0ZWRMYXllcnMoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludChQYWludEluZm8m
LCBjb25zdCBMYXlvdXRQb2ludCYpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2VDaHJvbWVDbGllbnQuaAppbmRleCAyZjI4NmI5Li4wMWE5OGU3
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlQ2hyb21l
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlQ2hyb21l
Q2xpZW50LmgKQEAgLTUwLDcgKzUwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgbV9pbWFnZSA9IDA7
CiAgICAgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290
Vmlldyhjb25zdCBJbnRSZWN0JiByLCBib29sKSBvdmVycmlkZQorICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiByKSBvdmVycmlkZQog
ICAgIHsKICAgICAgICAgLy8gSWYgbV9pbWFnZS0+bV9wYWdlIGlzIG51bGwsIHdlJ3JlIGJlaW5n
IGRlc3RydWN0ZWQsIGRvbid0IGZpcmUgY2hhbmdlZEluUmVjdCgpIGluIHRoYXQgY2FzZS4KICAg
ICAgICAgaWYgKG1faW1hZ2UgJiYgbV9pbWFnZS0+aW1hZ2VPYnNlcnZlcigpICYmIG1faW1hZ2Ut
Pm1fcGFnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBlN2QxYjg1Li5iY2Y0YzNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTQtMDItMjQgIFJlbmF0YSBIb2RvdmFuICA8cmhv
ZG92YW4udS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKworICAgICAgICBHZXQgcmlkIG9m
IHRoZSB1bnVzZWQgJ2ltbWVkaWF0ZScgcGFyYW1ldGVycyBmcm9tIHJlcGFpbnQgcmVsYXRlZCBm
dW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEyOTExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92aW5nIHRoZSAnaW1tZWRpYXRlJyBwYXJhbWV0ZXJzIGZyb20gcmVwYWludCByZWxhdGVk
IGZ1bmN0aW9ucyAtIGFjY29yaW5nCisgICAgICAgIHRvIHRoZSBGSVhNRSBpbiBSZW5kZXJWaWV3
OjpyZXBhaW50Vmlld1JlY3RhbmdsZSgpIC0gc2luY2UgdGhleSBoYXZlIG5vIGVmZmVjdC4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290Vmlldyk6CisgICAgICAgIChX
ZWJDb3JlOjpDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KToK
KyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9y
U2xvd1Njcm9sbCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmg6
CisKIDIwMTQtMDItMjMgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNvbT4K
IAogICAgICAgICBDaGFuZ2UgYSB1cmwgcGFyYW1ldGVyIHR5cGUgd2l0aCBVUkwgaW4gTmF2aWdh
dG9yQ29udGVudFV0aWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50RWZsLmNwcAppbmRleCBiZDIwN2U5Li4xOTAzMjQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEVmbC5jcHAK
QEAgLTUyNCwxMiArNTI0LDEyIEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpjYW5jZWxHZW9sb2Nh
dGlvblBlcm1pc3Npb25Gb3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKikKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQogCi12b2lkIENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRz
KGNvbnN0IEludFJlY3QmIC8qdXBkYXRlUmVjdCovLCBib29sIC8qaW1tZWRpYXRlKi8pCit2b2lk
IENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmIC8qdXBk
YXRlUmVjdCovKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50RWZsOjppbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9v
bCAvKmltbWVkaWF0ZSovKQordm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVSb290Vmll
dyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewogI2lmIFVTRShUSUxFRF9CQUNLSU5HX1NU
T1JFKQogICAgIGV3a192aWV3X3RpbGVkX2JhY2tpbmdfc3RvcmVfaW52YWxpZGF0ZShtX3ZpZXcs
IHVwZGF0ZVJlY3QpOwpAQCAtNTM5LDcgKzUzOSw3IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZsOjpp
bnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCAvKmltbWVk
CiAjZW5kaWYKIH0KIAotdm9pZCBDaHJvbWVDbGllbnRFZmw6OmludmFsaWRhdGVDb250ZW50c0Fu
ZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVwZGF0ZVJlY3QsIGJvb2wgLyppbW1lZGlhdGUqLykK
K3ZvaWQgQ2hyb21lQ2xpZW50RWZsOjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25z
dCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewogICAgIGlmICh1cGRhdGVSZWN0LmlzRW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuOwpAQCAtNTUzLDkgKzU1Myw5IEBAIHZvaWQgQ2hyb21lQ2xpZW50RWZs
OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0
LCBiCiAgICAgZXdrX3ZpZXdfcmVwYWludChtX3ZpZXcsIHgsIHksIHcsIGgpOwogfQogCi12b2lk
IENocm9tZUNsaWVudEVmbDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJ
bnRSZWN0JiB1cGRhdGVSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgQ2hyb21lQ2xpZW50RWZs
OjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0ZVJl
Y3QpCiB7Ci0gICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcodXBkYXRlUmVjdCwgaW1t
ZWRpYXRlKTsKKyAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh1cGRhdGVSZWN0KTsK
IH0KIAogdm9pZCBDaHJvbWVDbGllbnRFZmw6OnNjcm9sbChjb25zdCBJbnRTaXplJiBzY3JvbGxE
ZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlwUmVj
dCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNs
aWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
RWZsLmgKaW5kZXggMTEwNjQyZC4uZjQxZmY1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50RWZsLmgKQEAgLTE2MCwxMCArMTYwLDEwIEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25G
b3JGcmFtZShGcmFtZSosIEdlb2xvY2F0aW9uKik7CiAKLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzKGNvbnN0IEludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZvaWQg
aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpOwotICAg
IHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJl
Y3QmLCBib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzKGNvbnN0IElu
dFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJl
Y3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29u
c3QgSW50UmVjdCYpOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93
U2Nyb2xsKGNvbnN0IEludFJlY3QmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IElu
dFNpemUmLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpOwogICAgIHZpcnR1YWwgdm9p
ZCBjYW5jZWxHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0Rm9yRnJhbWUoRnJhbWUqKTsKICAg
ICB2aXJ0dWFsIHZvaWQgaWNvbkZvckZpbGVzKGNvbnN0IFZlY3RvcjxTdHJpbmcsIDB1PiYsIFBh
c3NSZWZQdHI8RmlsZUNob29zZXI+KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAyNjVhZDhjLi5iYmFi
OGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDItMjQgIFJlbmF0
YSBIb2RvdmFuICA8cmhvZG92YW4udS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKworICAg
ICAgICBHZXQgcmlkIG9mIHRoZSB1bnVzZWQgJ2ltbWVkaWF0ZScgcGFyYW1ldGVycyBmcm9tIHJl
cGFpbnQgcmVsYXRlZCBmdW5jdGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEyOTExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFJlbW92aW5nIHRoZSAnaW1tZWRpYXRlJyBwYXJhbWV0ZXJzIGZyb20g
cmVwYWludCByZWxhdGVkIGZ1bmN0aW9ucyAtIGFjY29yaW5nCisgICAgICAgIHRvIHRoZSBGSVhN
RSBpbiBSZW5kZXJWaWV3OjpyZXBhaW50Vmlld1JlY3RhbmdsZSgpIC0gc2luY2UgdGhleSBoYXZl
IG5vIGVmZmVjdC4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZVJvb3RWaWV3KToK
KyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290
Vmlldyk6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRz
Rm9yU2xvd1Njcm9sbCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3Rr
Lmg6CisKIDIwMTQtMDItMjMgIEd5dXlvdW5nIEtpbSAgPGd5dXlvdW5nLmtpbUBzYW1zdW5nLmNv
bT4KIAogICAgICAgICBDaGFuZ2UgYSB1cmwgcGFyYW1ldGVyIHR5cGUgd2l0aCBVUkwgaW4gTmF2
aWdhdG9yQ29udGVudFV0aWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmNwcAppbmRleCBhZWUxYjllLi5lMWZmNjI3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRHdGsuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudEd0ay5j
cHAKQEAgLTYzOCwxMSArNjM4LDExIEBAIHZvaWQgQ2hyb21lQ2xpZW50Ojpmb3JjZVBhaW50KCkK
ICAgICBtX2ZvcmNlUGFpbnQgPSBmYWxzZTsKIH0KIAotdm9pZCBDaHJvbWVDbGllbnQ6OmludmFs
aWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9t
ZUNsaWVudDo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmKQogewogfQogCi12b2lk
IENocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVj
dCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudDo6aW52YWxp
ZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkKIHsKICAg
ICBBY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dCogYWNDb250ZXh0ID0gbV93ZWJWaWV3LT5w
cml2LT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nQ29udGV4dC5nZXQoKTsKICAgICBpZiAoYWNDb250
ZXh0LT5lbmFibGVkKCkpIHsKQEAgLTY1Niw3ICs2NTYsNyBAQCB2b2lkIENocm9tZUNsaWVudDo6
aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCwg
Ym9vbAogICAgIG1fZGlzcGxheVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKIH0KIAotdm9pZCBDaHJv
bWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYg
dXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudDo6aW52YWxpZGF0
ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0KQogewogICAg
IG1fYWRqdXN0bWVudFdhdGNoZXIudXBkYXRlQWRqdXN0bWVudHNGcm9tU2Nyb2xsYmFyc0xhdGVy
KCk7CiAKQEAgLTY2Niw3ICs2NjYsNyBAQCB2b2lkIENocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNv
bnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiB1cGRhdGVSZWN0LCBibwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcodXBk
YXRlUmVjdCwgaW1tZWRpYXRlKTsKKyAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh1
cGRhdGVSZWN0KTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnQ6OnNjcm9sbChjb25zdCBJbnRTaXpl
JiBkZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0JiBjbGlw
UmVjdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Nocm9t
ZUNsaWVudEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xp
ZW50R3RrLmgKaW5kZXggOTc5MGZjZC4uYmQ1YzdkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50R3RrLmgKQEAgLTk2LDkgKzk2LDkgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiAgICAgICAgIHZpcnR1YWwgS2V5Ym9hcmRVSU1vZGUga2V5Ym9h
cmRVSU1vZGUoKTsKIAogICAgICAgICB2aXJ0dWFsIEludFJlY3Qgd2luZG93UmVzaXplclJlY3Qo
KSBjb25zdDsKLSAgICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJ
bnRSZWN0JiwgYm9vbCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNB
bmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiwgYm9vbCk7Ci0gICAgICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmLCBib29sKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0Jik7Cisg
ICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJ
bnRSZWN0Jik7CisgICAgICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93
U2Nyb2xsKGNvbnN0IEludFJlY3QmKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHNjcm9sbChjb25z
dCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25z
dCBJbnRSZWN0JiBjbGlwUmVjdCk7CiAKICAgICAgICAgdmlydHVhbCBJbnRQb2ludCBzY3JlZW5U
b1Jvb3RWaWV3KGNvbnN0IEludFBvaW50JikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDgwZjdlMGIuLjg3MTkw
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCkBAIC05NCw5ICs5NCw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6
OkludFJlY3Qgd2luZG93UmVzaXplclJlY3QoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIHZpcnR1
YWwgYm9vbCBzdXBwb3J0c0ltbWVkaWF0ZUludmFsaWRhdGlvbigpIG92ZXJyaWRlOwotICAgIHZp
cnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJv
b2wpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290
Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCkgb3ZlcnJpZGU7Ci0gICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZp
ZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBp
bnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3Zl
cnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOwogICAgIHZpcnR1YWwgdm9pZCBzY3Jv
bGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsRGVsdGEsIGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmIHJlY3RUb1Njcm9sbCwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgY2xpcFJlY3QpIG92
ZXJyaWRlOwogCiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3
KGNvbnN0IFdlYkNvcmU6OkludFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0gYi9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQubW0KaW5kZXggNmFm
NTNlYy4uMGY0ZmI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5tbQpAQCAtNTczLDI1ICs1NzMsMTcgQEAgYm9vbCBXZWJDaHJv
bWVDbGllbnQ6OnN1cHBvcnRzSW1tZWRpYXRlSW52YWxpZGF0aW9uKCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJ
bnRSZWN0JiwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0
ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmKQogewotI2lmICFQTEFURk9STShJT1MpCi0gICAgaWYg
KGltbWVkaWF0ZSkgewotICAgICAgICBbW21fd2ViVmlldyB3aW5kb3ddIGRpc3BsYXlJZk5lZWRl
ZF07Ci0gICAgICAgIFtbbV93ZWJWaWV3IHdpbmRvd10gZmx1c2hXaW5kb3dJZk5lZWRlZF07Ci0g
ICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oaW1tZWRpYXRlKTsKLSNlbmRpZgogfQogCi12
b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3Qg
SW50UmVjdCYgcmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52
YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsKIH0KIAot
dm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29u
c3QgSW50UmVjdCYgcmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6
aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiByZWN0KQogewot
ICAgIGludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHJlY3QsIGltbWVkaWF0ZSk7CisgICAg
aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcocmVjdCk7CiB9CiAKIHZvaWQgV2ViQ2hyb21l
Q2xpZW50OjpzY3JvbGwoY29uc3QgSW50U2l6ZSYsIGNvbnN0IEludFJlY3QmLCBjb25zdCBJbnRS
ZWN0JikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCA0OTlkMzljLi5kNzE3ZDFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTQtMDItMjQgIFJlbmF0YSBIb2RvdmFuICA8cmhvZG92
YW4udS1zemVnZWRAcGFydG5lci5zYW1zdW5nLmNvbT4KKworICAgICAgICBHZXQgcmlkIG9mIHRo
ZSB1bnVzZWQgJ2ltbWVkaWF0ZScgcGFyYW1ldGVycyBmcm9tIHJlcGFpbnQgcmVsYXRlZCBmdW5j
dGlvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEy
OTExMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92aW5nIHRoZSAnaW1tZWRpYXRlJyBwYXJhbWV0ZXJzIGZyb20gcmVwYWludCByZWxhdGVkIGZ1
bmN0aW9ucyAtIGFjY29yaW5nCisgICAgICAgIHRvIHRoZSBGSVhNRSBpbiBSZW5kZXJWaWV3Ojpy
ZXBhaW50Vmlld1JlY3RhbmdsZSgpIC0gc2luY2UgdGhleSBoYXZlIG5vIGVmZmVjdC4KKworICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJD
aHJvbWVDbGllbnQ6OmludmFsaWRhdGVSb290Vmlldyk6CisgICAgICAgIChXZWJDaHJvbWVDbGll
bnQ6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KToKKyAgICAgICAgKFdlYkNocm9tZUNs
aWVudDo6aW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbCk6CisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTQtMDItMjAgIENzYWJhIE9zenRyb2dv
bsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBHZXQgcmlkIG9mIHJlZHVuZGFudCBQ
bGF0Zm9ybS5oIGluY2x1ZGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCAzOTYyMTE5Li4zNTc2NjMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHAKQEAgLTQ2MiwyMiArNDYyLDIyIEBAIEludFJlY3QgV2ViQ2hyb21lQ2xpZW50Ojp3aW5kb3dS
ZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KIAotdm9pZCBXZWJD
aHJvbWVDbGllbnQ6OmludmFsaWRhdGVSb290Vmlldyhjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0
LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlUm9vdFZp
ZXcoY29uc3QgSW50UmVjdCYgd2luZG93UmVjdCkKIHsKICAgICBBU1NFUlQoY29yZShtX3dlYlZp
ZXctPnRvcExldmVsRnJhbWUoKSkpOwotICAgIG1fd2ViVmlldy0+cmVwYWludCh3aW5kb3dSZWN0
LCBmYWxzZSAvKmNvbnRlbnRDaGFuZ2VkKi8sIGltbWVkaWF0ZSwgZmFsc2UgLypyZXBhaW50Q29u
dGVudE9ubHkqLyk7CisgICAgbV93ZWJWaWV3LT5yZXBhaW50KHdpbmRvd1JlY3QsIGZhbHNlIC8q
Y29udGVudENoYW5nZWQqLywgZmFsc2UgLypyZXBhaW50Q29udGVudE9ubHkqLyk7CiB9CiAKLXZv
aWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJ
bnRSZWN0JiB3aW5kb3dSZWN0LCBib29sIGltbWVkaWF0ZSkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50
OjppbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0
KQogewogICAgIEFTU0VSVChjb3JlKG1fd2ViVmlldy0+dG9wTGV2ZWxGcmFtZSgpKSk7Ci0gICAg
bV93ZWJWaWV3LT5yZXBhaW50KHdpbmRvd1JlY3QsIHRydWUgLypjb250ZW50Q2hhbmdlZCovLCBp
bW1lZGlhdGUgLyppbW1lZGlhdGUqLywgZmFsc2UgLypyZXBhaW50Q29udGVudE9ubHkqLyk7Cisg
ICAgbV93ZWJWaWV3LT5yZXBhaW50KHdpbmRvd1JlY3QsIHRydWUgLypjb250ZW50Q2hhbmdlZCov
LCBmYWxzZSAvKnJlcGFpbnRDb250ZW50T25seSovKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGll
bnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYgd2luZG93
UmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNv
bnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBJbnRSZWN0JiB3aW5kb3dSZWN0KQogewogICAgIEFT
U0VSVChjb3JlKG1fd2ViVmlldy0+dG9wTGV2ZWxGcmFtZSgpKSk7Ci0gICAgbV93ZWJWaWV3LT5y
ZXBhaW50KHdpbmRvd1JlY3QsIHRydWUgLypjb250ZW50Q2hhbmdlZCovLCBpbW1lZGlhdGUsIHRy
dWUgLypyZXBhaW50Q29udGVudE9ubHkqLyk7CisgICAgbV93ZWJWaWV3LT5yZXBhaW50KHdpbmRv
d1JlY3QsIHRydWUgLypjb250ZW50Q2hhbmdlZCovLCB0cnVlIC8qcmVwYWludENvbnRlbnRPbmx5
Ki8pOwogfQogCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6c2Nyb2xsKGNvbnN0IEludFNpemUmIGRl
bHRhLCBjb25zdCBJbnRSZWN0JiBzY3JvbGxWaWV3UmVjdCwgY29uc3QgSW50UmVjdCYgY2xpcFJl
Y3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJv
bWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNs
aWVudC5oCmluZGV4IGUxNDllN2JjLi44MDY2ZWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaApAQCAtOTMsOSArOTMsOSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBXZWJDb3JlOjpLZXlib2FyZFVJTW9kZSBrZXlib2FyZFVJTW9k
ZSgpOwogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dSZXNpemVyUmVjdCgpIGNv
bnN0OwogCi0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiwgYm9vbCk7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0Fu
ZFJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKTsKLSAgICB2aXJ0dWFsIHZv
aWQgaW52YWxpZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiwgYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVSb290Vmlldyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0Jik7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0FuZFJv
b3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxp
ZGF0ZUNvbnRlbnRzRm9yU2xvd1Njcm9sbChjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jik7CiAgICAg
dmlydHVhbCB2b2lkIHNjcm9sbChjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxEZWx0YSwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBjbGlwUmVjdCk7CiAKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFBvaW50IHNjcmVlblRv
Um9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmKSBjb25zdDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VM
b2cKaW5kZXggNGQ1NTgxOC4uNDQ3ZjM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMCBAQAorMjAxNC0wMi0yNCAgUmVuYXRhIEhvZG92YW4gIDxyaG9kb3Zhbi51LXN6ZWdlZEBw
YXJ0bmVyLnNhbXN1bmcuY29tPgorCisgICAgICAgIEdldCByaWQgb2YgdGhlIHVudXNlZCAnaW1t
ZWRpYXRlJyBwYXJhbWV0ZXJzIGZyb20gcmVwYWludCByZWxhdGVkIGZ1bmN0aW9ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTI5MTExCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZpbmcgdGhlICdp
bW1lZGlhdGUnIHBhcmFtZXRlcnMgZnJvbSByZXBhaW50IHJlbGF0ZWQgZnVuY3Rpb25zIC0gYWNj
b3JpbmcKKyAgICAgICAgdG8gdGhlIEZJWE1FIGluIFJlbmRlclZpZXc6OnJlcGFpbnRWaWV3UmVj
dGFuZ2xlKCkgLSBzaW5jZSB0aGV5IGhhdmUgbm8gZWZmZWN0LgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVD
bGllbnRXaW5DRTo6aW52YWxpZGF0ZVJvb3RWaWV3KToKKyAgICAgICAgKFdlYktpdDo6Q2hyb21l
Q2xpZW50V2luQ0U6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KToKKyAgICAgICAgKFdl
YktpdDo6Q2hyb21lQ2xpZW50V2luQ0U6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwp
OgorICAgICAgICAoV2ViS2l0OjpDaHJvbWVDbGllbnRXaW5DRTo6c2Nyb2xsKToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oOgorCiAyMDE0LTAyLTA4ICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBDaGFuZ2UgVGV4dEl0ZXJhdG9y
IHRvIHVzZSBTdHJpbmdWaWV3LCBwcmVwYXJpbmcgdG8gd2VhbiBpdCBmcm9tIGRlcHJlY2F0ZWRD
aGFyYWN0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0Nocm9tZUNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBv
cnQvQ2hyb21lQ2xpZW50V2luQ0UuY3BwCmluZGV4IGY5OTQ4MGMuLmQ4MWIxZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50V2luQ0Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50
V2luQ0UuY3BwCkBAIC0yMjYsMjggKzIyNiwyNSBAQCBJbnRSZWN0IENocm9tZUNsaWVudFdpbkNF
Ojp3aW5kb3dSZXNpemVyUmVjdCgpIGNvbnN0CiAgICAgcmV0dXJuIEludFJlY3QoKTsKIH0KIAot
dm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3Qm
LCBib29sKQordm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6aW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0
IEludFJlY3QmKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgQ2hyb21lQ2xp
ZW50V2luQ0U6OmludmFsaWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHVw
ZGF0ZVJlY3QsIGJvb2wgaW1tZWRpYXRlKQordm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6aW52YWxp
ZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgdXBkYXRlUmVjdCkKIHsKICAg
ICBSRUNUIHJlY3QgPSB1cGRhdGVSZWN0OwogICAgIEludmFsaWRhdGVSZWN0KG1fd2ViVmlldy0+
d2luZG93SGFuZGxlKCksICZyZWN0LCBGQUxTRSk7Ci0KLSAgICBpZiAoaW1tZWRpYXRlKQotICAg
ICAgICBVcGRhdGVXaW5kb3cobV93ZWJWaWV3LT53aW5kb3dIYW5kbGUoKSk7CiB9CiAKLXZvaWQg
Q2hyb21lQ2xpZW50V2luQ0U6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3Qg
SW50UmVjdCYgdXBkYXRlUmVjdCwgYm9vbCBpbW1lZGlhdGUpCit2b2lkIENocm9tZUNsaWVudFdp
bkNFOjppbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHVwZGF0
ZVJlY3QpCiB7Ci0gICAgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcodXBkYXRlUmVjdCwg
aW1tZWRpYXRlKTsKKyAgICBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyh1cGRhdGVSZWN0
KTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRXaW5DRTo6c2Nyb2xsKGNvbnN0IEludFNpemUmLCBj
b25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmKQogewotICAgIGludmFs
aWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHJlY3RUb1Njcm9sbCwgZmFsc2UpOworICAgIGludmFs
aWRhdGVDb250ZW50c0FuZFJvb3RWaWV3KHJlY3RUb1Njcm9sbCk7CiB9CiAKIEludFJlY3QgQ2hy
b21lQ2xpZW50V2luQ0U6OnJvb3RWaWV3VG9TY3JlZW4oY29uc3QgSW50UmVjdCYgcmVjdCkgY29u
c3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50V2luQ0UuaCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvQ2hyb21l
Q2xpZW50V2luQ0UuaAppbmRleCA2NjYzYzJjLi4xNDY3ZDVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFdpbkNFLmgKKysrIGIvU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRXaW5DRS5oCkBAIC05
Miw5ICs5Miw5IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFdlYkNvcmU6OkludFJlY3Qgd2luZG93
UmVzaXplclJlY3QoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIC8vIE1ldGhvZHMgdXNlZCBieSBI
b3N0V2luZG93LgotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIGJvb2wpIG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlk
YXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgYm9vbCkgb3Zl
cnJpZGU7Ci0gICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwo
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOwor
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNBbmRSb290Vmlldyhjb25zdCBXZWJD
b3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CisgICAgdmlydHVhbCB2b2lkIGludmFsaWRhdGVDb250
ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOwogICAg
IHZpcnR1YWwgdm9pZCBzY3JvbGwoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0Jikgb3ZlcnJpZGU7CiAgICAgdmly
dHVhbCBXZWJDb3JlOjpJbnRQb2ludCBzY3JlZW5Ub1Jvb3RWaWV3KGNvbnN0IFdlYkNvcmU6Oklu
dFBvaW50JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdmlydHVhbCBXZWJDb3JlOjpJbnRSZWN0IHJv
b3RWaWV3VG9TY3JlZW4oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpIGNvbnN0IG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDYwOTA5ZTQuLjBiNTBhNWEzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJD
aHJvbWVDbGllbnQuY3BwCkBAIC00MjcsMTIgKzQyNywxMiBAQCBJbnRSZWN0IFdlYkNocm9tZUNs
aWVudDo6d2luZG93UmVzaXplclJlY3QoKSBjb25zdAogICAgIHJldHVybiBtX3BhZ2UtPndpbmRv
d1Jlc2l6ZXJSZWN0KCk7CiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlUm9v
dFZpZXcoY29uc3QgSW50UmVjdCYsIGJvb2wpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxp
ZGF0ZVJvb3RWaWV3KGNvbnN0IEludFJlY3QmKQogewogICAgIC8vIERvIG5vdGhpbmcgaGVyZSwg
dGhlcmUncyBubyBjb25jZXB0IG9mIGludmFsaWRhdGluZyB0aGUgd2luZG93IGluIHRoZSB3ZWIg
cHJvY2Vzcy4KIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0Fu
ZFJvb3RWaWV3KGNvbnN0IEludFJlY3QmIHJlY3QsIGJvb2wpCit2b2lkIFdlYkNocm9tZUNsaWVu
dDo6aW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgcmVjdCkKIHsK
ICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9wYWdlLT5jb3JlUGFnZSgpLT5tYWluRnJh
bWUoKS5kb2N1bWVudCgpKSB7CiAgICAgICAgIGlmIChkb2N1bWVudC0+cHJpbnRpbmcoKSkKQEAg
LTQ0Miw3ICs0NDIsNyBAQCB2b2lkIFdlYkNocm9tZUNsaWVudDo6aW52YWxpZGF0ZUNvbnRlbnRz
QW5kUm9vdFZpZXcoY29uc3QgSW50UmVjdCYgcmVjdCwgYm9vbCkKICAgICBtX3BhZ2UtPmRyYXdp
bmdBcmVhKCktPnNldE5lZWRzRGlzcGxheUluUmVjdChyZWN0KTsKIH0KIAotdm9pZCBXZWJDaHJv
bWVDbGllbnQ6OmludmFsaWRhdGVDb250ZW50c0ZvclNsb3dTY3JvbGwoY29uc3QgSW50UmVjdCYg
cmVjdCwgYm9vbCkKK3ZvaWQgV2ViQ2hyb21lQ2xpZW50OjppbnZhbGlkYXRlQ29udGVudHNGb3JT
bG93U2Nyb2xsKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgaWYgKERvY3VtZW50KiBkb2N1
bWVudCA9IG1fcGFnZS0+Y29yZVBhZ2UoKS0+bWFpbkZyYW1lKCkuZG9jdW1lbnQoKSkgewogICAg
ICAgICBpZiAoZG9jdW1lbnQtPnByaW50aW5nKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAw
MzExOTM5Li40NjEzY2U1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTEwOCw5ICsxMDgsOSBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgV2ViQ29yZTo6SW50UmVjdCB3aW5kb3dSZXNpemVyUmVj
dCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIAogICAgIC8vIEhvc3RXaW5kb3cgbWVtYmVyIGZ1bmN0
aW9uIG92ZXJyaWRlcy4KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBvdmVycmlkZTsKLSAgICB2aXJ0dWFsIHZvaWQgaW52
YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIGJvb2wp
IG92ZXJyaWRlOwotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlQ29udGVudHNGb3JTbG93U2Ny
b2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBib29sKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZVJvb3RWaWV3KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUNvbnRlbnRzQW5kUm9vdFZpZXcoY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpIG92ZXJyaWRlOworICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRl
Q29udGVudHNGb3JTbG93U2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmKSBvdmVycmlkZTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsKGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNjcm9sbERl
bHRhLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiBjbGlwUmVjdCkgb3ZlcnJpZGU7CiAjaWYgVVNFKFRJTEVEX0JBQ0tJTkdfU1RPUkUp
CiAgICAgdmlydHVhbCB2b2lkIGRlbGVnYXRlZFNjcm9sbFJlcXVlc3RlZChjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgc2Nyb2xsT2Zmc2V0KSBvdmVycmlkZTsKLS0gCjEuOC4zLjIKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>