<?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>75535</bug_id>
          
          <creation_ts>2012-01-04 03:36:02 -0800</creation_ts>
          <short_desc>[Qt] Implement HTTP authentication QML API</short_desc>
          <delta_ts>2012-01-17 05:18:12 -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>WebKit Qt</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>
          
          <blocked>76347</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexander Færøy">ahf</reporter>
          <assigned_to name="Alexander Færøy">ahf</assigned_to>
          <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>529441</commentid>
    <comment_count>0</comment_count>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-04 03:36:02 -0800</bug_when>
    <thetext>SSIA :-)

I will start hacking on this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536222</commentid>
    <comment_count>1</comment_count>
      <attachid>122558</attachid>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-14 17:09:57 -0800</bug_when>
    <thetext>Created attachment 122558
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536223</commentid>
    <comment_count>2</comment_count>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-14 17:10:29 -0800</bug_when>
    <thetext>Adding Simon and Kenneth for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536224</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-14 17:10:52 -0800</bug_when>
    <thetext>Attachment 122558 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1

Source/WebKit2/UIProcess/qt/QtDialogRunner.cpp:72:  Failed to find complete declaration of class AuthenticationDialogContextObject  [build/class] [5]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536225</commentid>
    <comment_count>4</comment_count>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-14 17:13:16 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Source/WebKit2/UIProcess/qt/QtDialogRunner.cpp:72:  Failed to find complete declaration of class AuthenticationDialogContextObject  [build/class] [5]
&gt; Total errors found: 1 in 14 files

I assumed this could safely be ignored, since we do the same for DialogContextObject in the surrounding code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536233</commentid>
    <comment_count>5</comment_count>
      <attachid>122559</attachid>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-14 17:36:24 -0800</bug_when>
    <thetext>Created attachment 122559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536446</commentid>
    <comment_count>6</comment_count>
      <attachid>122559</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-16 03:03:54 -0800</bug_when>
    <thetext>Comment on attachment 122559
Patch

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

&gt; Source/WebKit2/ChangeLog:13
&gt; +        Based in part upon patch by Peter Hartmann.

a patch*

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:444
&gt; +void QQuickWebViewPrivate::authenticationRequired(const QString&amp; hostname, const QString&amp; realm, const QString&amp; oldUsername, QString&amp; username, QString&amp; password)

previousUsername? or is it UserName

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:451
&gt; +    if (!dialogRunner.initForAuthentication(authenticationDialog, q, hostname, realm, oldUsername))

WebKit uses initialize

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h:99
&gt; +    void authenticationRequired(const QString&amp; hostname, const QString&amp; realm, const QString&amp; oldUsername, QString&amp; username, QString&amp; password);

maybe s/oldUser.../prefilledUsername/ ? I think that is what it is

&gt; Source/WebKit2/UIProcess/qt/QtPageClient.h:57
&gt; +    virtual void authenticationRequired(const String&amp; hostname, const String&amp; realm, const String&amp; oldUsername, String&amp; username, String&amp; password);

why not handleAuthenticationRequest? any reason?

&gt; Source/WebKit2/WebProcess/qt/QtNetworkAccessManager.cpp:86
&gt; +void QtNetworkAccessManager::onAuthenticationRequired(QNetworkReply *reply, QAuthenticator *authenticator)

style

&gt; Source/WebKit2/WebProcess/qt/QtNetworkAccessManager.cpp:91
&gt; +    // FIXME: This check can go away once our Qt version is up-to-date. See: QTBUG-23512.
&gt; +    if (originatingObject) {

I would use if !originating...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536447</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-16 03:04:28 -0800</bug_when>
    <thetext>Is there any work on making this not sync?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536501</commentid>
    <comment_count>8</comment_count>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-16 05:34:20 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; WebKit uses initialize

In that case, I think that should be fixed in a separate patch. We already have initForAlert(), initForConfirm(), initForPrompt() and now initForAuthentication() in QtDialogRunner.
 
&gt; &gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p_p.h:99
&gt; &gt; +    void authenticationRequired(const QString&amp; hostname, const QString&amp; realm, const QString&amp; oldUsername, QString&amp; username, QString&amp; password);
&gt; 
&gt; maybe s/oldUser.../prefilledUsername/ ? I think that is what it is

Thinking about it, changing it to just username makes pretty good sense. This is also what the QAuthenticator API uses, which is where this comes from. I don&apos;t think prefilledUsername adds any additional information really.

&gt; &gt; Source/WebKit2/UIProcess/qt/QtPageClient.h:57
&gt; &gt; +    virtual void authenticationRequired(const String&amp; hostname, const String&amp; realm, const String&amp; oldUsername, String&amp; username, String&amp; password);
&gt; 
&gt; why not handleAuthenticationRequest? any reason?

Good idea. Sounds better than &quot;authenticationRequired&quot; :-)
 
&gt; &gt; Source/WebKit2/WebProcess/qt/QtNetworkAccessManager.cpp:91
&gt; &gt; +    // FIXME: This check can go away once our Qt version is up-to-date. See: QTBUG-23512.
&gt; &gt; +    if (originatingObject) {
&gt; 
&gt; I would use if !originating...

Yup, changing that locally. Waiting for the patch in bug #76342 to land firstly though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536557</commentid>
    <comment_count>9</comment_count>
      <attachid>122639</attachid>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-16 08:10:34 -0800</bug_when>
    <thetext>Created attachment 122639
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536579</commentid>
    <comment_count>10</comment_count>
      <attachid>122639</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-16 08:43:11 -0800</bug_when>
    <thetext>Comment on attachment 122639
Patch

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

&gt; Source/WebKit2/ChangeLog:10
&gt; +        and the UIProcess which is called when the authenticationRequired

need to update the changelog

&gt; Source/WebKit2/UIProcess/qt/QtDialogRunner.cpp:97
&gt; +signals:
&gt; +    void accepted(const QString&amp; username, const QString&amp; password);
&gt; +    void rejected();

why are these needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536646</commentid>
    <comment_count>11</comment_count>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-16 10:10:51 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; Source/WebKit2/ChangeLog:10
&gt; &gt; +        and the UIProcess which is called when the authenticationRequired
&gt; 
&gt; need to update the changelog

Not sure why? The QNAM signal is still called authenticationRequired.

&gt; &gt; Source/WebKit2/UIProcess/qt/QtDialogRunner.cpp:97
&gt; &gt; +signals:
&gt; &gt; +    void accepted(const QString&amp; username, const QString&amp; password);
&gt; &gt; +    void rejected();
&gt; 
&gt; why are these needed?

The other option is to pass a reference/pointer to the QtDialogRunner in the constructor of the AuthenticationDialogContextObject class and expose a setUsername() and setPassword() method in QtDialogRunner. What would you prefer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536738</commentid>
    <comment_count>12</comment_count>
      <attachid>122639</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-16 13:39:40 -0800</bug_when>
    <thetext>Comment on attachment 122639
Patch

Ok got the point. This seems good enough to go in. We can discuss the other issues f2f at some point.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537012</commentid>
    <comment_count>13</comment_count>
      <attachid>122639</attachid>
    <who name="Alexander Færøy">ahf</who>
    <bug_when>2012-01-17 03:54:05 -0800</bug_when>
    <thetext>Comment on attachment 122639
Patch

CQ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537034</commentid>
    <comment_count>14</comment_count>
      <attachid>122639</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-17 05:18:07 -0800</bug_when>
    <thetext>Comment on attachment 122639
Patch

Clearing flags on attachment: 122639

Committed r105146: &lt;http://trac.webkit.org/changeset/105146&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>537035</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-17 05:18:12 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122558</attachid>
            <date>2012-01-14 17:09:57 -0800</date>
            <delta_ts>2012-01-14 17:36:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75535-20120115020954.patch</filename>
            <type>text/plain</type>
            <size>20617</size>
            <attacher name="Alexander Færøy">ahf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2VkOTQwZGRkMzlmNzZi
NjE3YjVhYjQxMGVmMzk0MjI2ZWMwZmRiMi4uNWE1NTAzYjM2ODU1MjIzNDQ4NmFhMzhmMTQxNGZh
ZmM0YWQ3MmYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTAxLTE0ICBBbGV4
YW5kZXIgRsOmcsO4eSAgPGFsZXhhbmRlci5mYWVyb3lAbm9raWEuY29tPgorCisgICAgICAgIFtR
dF0gSW1wbGVtZW50IEhUVFAgYXV0aGVudGljYXRpb24gUU1MIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhl
IFFNTCBBUEkgZm9yIGhhbmRsaW5nIEhUVFAgYXV0aGVudGljYXRpb24uCisgICAgICAgIFRoZSBp
bXBsZW1lbnRhdGlvbiB1c2VzIGEgc3luY3Jvbm91cyBtZXNzYWdlIGJldHdlZW4gdGhlIFdlYlBy
b2Nlc3MgYW5kCisgICAgICAgIHRoZSBVSVByb2Nlc3Mgd2hpY2ggaXMgY2FsbGVkIHdoZW4gdGhl
IGF1dGhlbnRpY2F0aW9uUmVxdWlyZWQgc2lnbmFsCisgICAgICAgIGlzIGVtaXR0ZWQgZnJvbSBR
TkFNLgorCisgICAgICAgIEJhc2VkIGluIHBhcnQgdXBvbiBwYXRjaCBieSBQZXRlciBIYXJ0bWFu
bi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAg
ICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAg
ICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmF1dGhlbnRpY2F0aW9uUmVxdWlyZWQpOgorICAgICAg
ICAoUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6YXV0aGVudGljYXRpb25EaWFsb2cpOgorICAg
ICAgICAoUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0QXV0aGVudGljYXRpb25EaWFsb2cp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YXV0aGVudGljYXRpb25SZXF1aXJlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0RGlh
bG9nUnVubmVyLmNwcDoKKyAgICAgICAgKEF1dGhlbnRpY2F0aW9uRGlhbG9nQ29udGV4dE9iamVj
dDo6QXV0aGVudGljYXRpb25EaWFsb2dDb250ZXh0T2JqZWN0KToKKyAgICAgICAgKEF1dGhlbnRp
Y2F0aW9uRGlhbG9nQ29udGV4dE9iamVjdDo6aG9zdG5hbWUpOgorICAgICAgICAoQXV0aGVudGlj
YXRpb25EaWFsb2dDb250ZXh0T2JqZWN0OjpyZWFsbSk6CisgICAgICAgIChBdXRoZW50aWNhdGlv
bkRpYWxvZ0NvbnRleHRPYmplY3Q6Om9sZFVzZXJuYW1lKToKKyAgICAgICAgKEF1dGhlbnRpY2F0
aW9uRGlhbG9nQ29udGV4dE9iamVjdDo6YWNjZXB0KToKKyAgICAgICAgKEF1dGhlbnRpY2F0aW9u
RGlhbG9nQ29udGV4dE9iamVjdDo6cmVqZWN0KToKKyAgICAgICAgKFF0RGlhbG9nUnVubmVyOjpp
bml0Rm9yQXV0aGVudGljYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1
bm5lci5oOgorICAgICAgICAoUXREaWFsb2dSdW5uZXI6OnVzZXJuYW1lKToKKyAgICAgICAgKFF0
RGlhbG9nUnVubmVyOjpwYXNzd29yZCk6CisgICAgICAgIChRdERpYWxvZ1J1bm5lcjo6b25BdXRo
ZW50aWNhdGlvbkFjY2VwdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50
LmNwcDoKKyAgICAgICAgKFF0UGFnZUNsaWVudDo6YXV0aGVudGljYXRpb25SZXF1aXJlZCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0TmV0
d29ya0FjY2Vzc01hbmFnZXI6OlF0TmV0d29ya0FjY2Vzc01hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpvbkF1dGhlbnRpY2F0aW9uUmVxdWlyZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdlci5oOgorCiAyMDEy
LTAxLTEzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAg
RGVsYXkgdXBkYXRpbmcgdGhlIHJvb3QgY29tcG9zaXRpbmcgbGF5ZXIgaWYgdGhlIGxheWVyIHRy
ZWUgc3RhdGUgaXMgZnJvemVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCA0M2Q0MGI5YjMxZDcyYzhmYmFmMjVmODYxNTIzZWU3
YmYzNDMzMGI4Li5mMjMyMGZjMWY2ZTNiYTZiZjViNGQyZTRjMTU0ODk3N2E2MWQ0ODUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAK
QEAgLTU1LDYgKzU1LDcgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2
YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgICwgYWxlcnREaWFsb2coMCkKICAgICAs
IGNvbmZpcm1EaWFsb2coMCkKICAgICAsIHByb21wdERpYWxvZygwKQorICAgICwgYXV0aGVudGlj
YXRpb25EaWFsb2coMCkKICAgICAsIGl0ZW1TZWxlY3RvcigwKQogICAgICwgcG9zdFRyYW5zaXRp
b25TdGF0ZShhZG9wdFB0cihuZXcgUG9zdFRyYW5zaXRpb25TdGF0ZSh0aGlzKSkpCiAgICAgLCBp
c1RyYW5zaXRpb25pbmdUb05ld1BhZ2UoZmFsc2UpCkBAIC00NDAsNiArNDQxLDI2IEBAIFFTdHJp
bmcgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnJ1bkphdmFTY3JpcHRQcm9tcHQoY29uc3QgUVN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QKICAgICByZXR1cm4gZGlhbG9nUnVubmVyLnJlc3VsdCgpOwogfQog
Cit2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjphdXRoZW50aWNhdGlvblJlcXVpcmVkKGNvbnN0
IFFTdHJpbmcmIGhvc3RuYW1lLCBjb25zdCBRU3RyaW5nJiByZWFsbSwgY29uc3QgUVN0cmluZyYg
b2xkVXNlcm5hbWUsIFFTdHJpbmcmIHVzZXJuYW1lLCBRU3RyaW5nJiBwYXNzd29yZCkKK3sKKyAg
ICBpZiAoIWF1dGhlbnRpY2F0aW9uRGlhbG9nKQorICAgICAgICByZXR1cm47CisKKyAgICBRX1Eo
UVF1aWNrV2ViVmlldyk7CisgICAgUXREaWFsb2dSdW5uZXIgZGlhbG9nUnVubmVyOworICAgIGlm
ICghZGlhbG9nUnVubmVyLmluaXRGb3JBdXRoZW50aWNhdGlvbihhdXRoZW50aWNhdGlvbkRpYWxv
ZywgcSwgaG9zdG5hbWUsIHJlYWxtLCBvbGRVc2VybmFtZSkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHNldFZpZXdJbkF0dGFjaGVkUHJvcGVydGllcyhkaWFsb2dSdW5uZXIuZGlhbG9nKCkpOwor
CisgICAgZGlzYWJsZU1vdXNlRXZlbnRzKCk7CisgICAgZGlhbG9nUnVubmVyLmV4ZWMoKTsKKyAg
ICBlbmFibGVNb3VzZUV2ZW50cygpOworCisgICAgdXNlcm5hbWUgPSBkaWFsb2dSdW5uZXIudXNl
cm5hbWUoKTsKKyAgICBwYXNzd29yZCA9IGRpYWxvZ1J1bm5lci5wYXNzd29yZCgpOworfQorCiB2
b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpjaG9vc2VGaWxlcyhXS09wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBRU3RyaW5nTGlzdCYgc2VsZWN0ZWRGaWxlTmFt
ZXMsIFF0V2ViUGFnZVVJQ2xpZW50OjpGaWxlQ2hvb3NlclR5cGUgdHlwZSkKIHsKICNpZm5kZWYg
UVRfTk9fRklMRURJQUxPRwpAQCAtNjcxLDYgKzY5MiwyMSBAQCB2b2lkIFFRdWlja1dlYlZpZXdF
eHBlcmltZW50YWw6OnNldFByb21wdERpYWxvZyhRRGVjbGFyYXRpdmVDb21wb25lbnQqIHByb21w
dERpYQogICAgIGVtaXQgcHJvbXB0RGlhbG9nQ2hhbmdlZCgpOwogfQogCitRRGVjbGFyYXRpdmVD
b21wb25lbnQqIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmF1dGhlbnRpY2F0aW9uRGlhbG9n
KCkgY29uc3QKK3sKKyAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7CisgICAgcmV0dXJuIGQt
PmF1dGhlbnRpY2F0aW9uRGlhbG9nOworfQorCit2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50
YWw6OnNldEF1dGhlbnRpY2F0aW9uRGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogYXV0aGVu
dGljYXRpb25EaWFsb2cpCit7CisgICAgUV9EKFFRdWlja1dlYlZpZXcpOworICAgIGlmIChkLT5h
dXRoZW50aWNhdGlvbkRpYWxvZyA9PSBhdXRoZW50aWNhdGlvbkRpYWxvZykKKyAgICAgICAgcmV0
dXJuOworICAgIGQtPmF1dGhlbnRpY2F0aW9uRGlhbG9nID0gYXV0aGVudGljYXRpb25EaWFsb2c7
CisgICAgZW1pdCBhdXRoZW50aWNhdGlvbkRpYWxvZ0NoYW5nZWQoKTsKK30KKwogUURlY2xhcmF0
aXZlQ29tcG9uZW50KiBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjppdGVtU2VsZWN0b3IoKSBj
b25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDBmYTA3OTFjZmNl
ZTIwY2E4NWEwZTYyODNkMjY1MTY3ZjQ5MjkyZTEuLjE1NWU5NjA5NzllMzNmOWYyMTgyOTU5ZWQ2
NWJiNTJkMzI2YjM0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMjA4LDYgKzIwOCw3IEBAIGNsYXNzIFFXRUJLSVRfRVhQ
T1JUIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9Q
Uk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIGFsZXJ0RGlhbG9nIFJFQUQgYWxlcnREaWFs
b2cgV1JJVEUgc2V0QWxlcnREaWFsb2cgTk9USUZZIGFsZXJ0RGlhbG9nQ2hhbmdlZCkKICAgICBR
X1BST1BFUlRZKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogY29uZmlybURpYWxvZyBSRUFEIGNvbmZp
cm1EaWFsb2cgV1JJVEUgc2V0Q29uZmlybURpYWxvZyBOT1RJRlkgY29uZmlybURpYWxvZ0NoYW5n
ZWQpCiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIHByb21wdERpYWxvZyBS
RUFEIHByb21wdERpYWxvZyBXUklURSBzZXRQcm9tcHREaWFsb2cgTk9USUZZIHByb21wdERpYWxv
Z0NoYW5nZWQpCisgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIGF1dGhlbnRp
Y2F0aW9uRGlhbG9nIFJFQUQgYXV0aGVudGljYXRpb25EaWFsb2cgV1JJVEUgc2V0QXV0aGVudGlj
YXRpb25EaWFsb2cgTk9USUZZIGF1dGhlbnRpY2F0aW9uRGlhbG9nQ2hhbmdlZCkKICAgICBRX1BS
T1BFUlRZKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogaXRlbVNlbGVjdG9yIFJFQUQgaXRlbVNlbGVj
dG9yIFdSSVRFIHNldEl0ZW1TZWxlY3RvciBOT1RJRlkgaXRlbVNlbGVjdG9yQ2hhbmdlZCkKICAg
ICBRX1BST1BFUlRZKFFXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMgUkVBRCBwcmVmZXJlbmNl
cyBDT05TVEFOVCBGSU5BTCkKICAgICBRX1BST1BFUlRZKGJvb2wgdXNlVHJhZGl0aW9uYWxEZXNr
dG9wQmVoYXZpb3VyIFJFQUQgdXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyIFdSSVRFIHNl
dFVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cikKQEAgLTIyOSw2ICsyMzAsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRDb25maXJtRGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCopOwog
ICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogcHJvbXB0RGlhbG9nKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRQcm9tcHREaWFsb2coUURlY2xhcmF0aXZlQ29tcG9uZW50Kik7CisgICAgUURlY2xhcmF0
aXZlQ29tcG9uZW50KiBhdXRoZW50aWNhdGlvbkRpYWxvZygpIGNvbnN0OworICAgIHZvaWQgc2V0
QXV0aGVudGljYXRpb25EaWFsb2coUURlY2xhcmF0aXZlQ29tcG9uZW50Kik7CiAgICAgUURlY2xh
cmF0aXZlQ29tcG9uZW50KiBpdGVtU2VsZWN0b3IoKSBjb25zdDsKICAgICB2b2lkIHNldEl0ZW1T
ZWxlY3RvcihRRGVjbGFyYXRpdmVDb21wb25lbnQqKTsKICAgICAKQEAgLTI1Nyw2ICsyNjAsNyBA
QCBRX1NJR05BTFM6CiAgICAgdm9pZCBhbGVydERpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIGNv
bmZpcm1EaWFsb2dDaGFuZ2VkKCk7CiAgICAgdm9pZCBwcm9tcHREaWFsb2dDaGFuZ2VkKCk7Cisg
ICAgdm9pZCBhdXRoZW50aWNhdGlvbkRpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIGl0ZW1TZWxl
Y3RvckNoYW5nZWQoKTsKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFXZWJEb3dubG9hZEl0
ZW0qIGRvd25sb2FkSXRlbSk7CiAgICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVkKFFXZWJQZXJt
aXNzaW9uUmVxdWVzdCogcGVybWlzc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXggNGJlNzE3MDdjYjlhYWQyNDkx
NGVjNWMxMjUzM2ExYTI3M2E1OTU0Ny4uOGNhNGI4NjM5MGMxZjhlZTg0MWMxZDAyMTk3ZmQyZTNi
ZjY4NGFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld19wX3AuaApAQCAtOTYsNiArOTYsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBydW5K
YXZhU2NyaXB0Q29uZmlybShjb25zdCBRU3RyaW5nJik7CiAgICAgUVN0cmluZyBydW5KYXZhU2Ny
aXB0UHJvbXB0KGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nJiBkZWZhdWx0VmFsdWUsIGJv
b2wmIG9rKTsKIAorICAgIHZvaWQgYXV0aGVudGljYXRpb25SZXF1aXJlZChjb25zdCBRU3RyaW5n
JiBob3N0bmFtZSwgY29uc3QgUVN0cmluZyYgcmVhbG0sIGNvbnN0IFFTdHJpbmcmIG9sZFVzZXJu
YW1lLCBRU3RyaW5nJiB1c2VybmFtZSwgUVN0cmluZyYgcGFzc3dvcmQpOworCiAgICAgdm9pZCBz
ZXRVc2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIoYm9vbCBlbmFibGUpOwogICAgIHZvaWQg
c2V0Vmlld0luQXR0YWNoZWRQcm9wZXJ0aWVzKFFPYmplY3QqKTsKICAgICB2b2lkIHNldEljb24o
Y29uc3QgUVVybCYpOwpAQCAtMTUwLDYgKzE1Miw3IEBAIHByaXZhdGU6CiAgICAgUURlY2xhcmF0
aXZlQ29tcG9uZW50KiBhbGVydERpYWxvZzsKICAgICBRRGVjbGFyYXRpdmVDb21wb25lbnQqIGNv
bmZpcm1EaWFsb2c7CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50KiBwcm9tcHREaWFsb2c7Cisg
ICAgUURlY2xhcmF0aXZlQ29tcG9uZW50KiBhdXRoZW50aWNhdGlvbkRpYWxvZzsKICAgICBRRGVj
bGFyYXRpdmVDb21wb25lbnQqIGl0ZW1TZWxlY3RvcjsKIAogICAgIFdlYkNvcmU6OlZpZXdwb3J0
QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKaW5kZXggYzk0ZWExYTEzYjJhNzEwMmFlODg3Njc3YTMxZjFiMDhiZTI3ZDMzNy4uOTFj
MzllMjY5ZTY1YTAxMDdmNzZmNGMwOTZkZjg2ODI5MjA1OGY2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9iamVjdChjb25zdCBTdHJp
bmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9h
ZFByb3h5KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUZXh0SW5wdXRTdGF0ZSgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgYXV0aGVudGljYXRpb25SZXF1aXJlZChjb25zdCBTdHJpbmcm
IGhvc3RuYW1lLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBjb25zdCBTdHJpbmcmIG9sZFVzZXJuYW1l
LCBTdHJpbmcmIHVzZXJuYW1lLCBTdHJpbmcmIHBhc3N3b3JkKSA9IDA7CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDdlMDhjZWNkODE5NDA3N2QwMzUzNzZhYWE5NDQ3MGRhNTM0
OGZlYmEuLjM2YmU3OGNlNjE1YzE1OWQxZmY5YjdlNGVmYzU1OTUyNTMyZDk2NWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMzUzLDcgKzIzNTMsMTIg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5
KiBkb3dubG9hZCkKIHsKICAgICBtX3BhZ2VDbGllbnQtPmhhbmRsZURvd25sb2FkUmVxdWVzdChk
b3dubG9hZCk7CiB9Ci0jZW5kaWYKKwordm9pZCBXZWJQYWdlUHJveHk6OmF1dGhlbnRpY2F0aW9u
UmVxdWlyZWQoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgY29u
c3QgU3RyaW5nJiBvbGRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29y
ZCkKK3sKKyAgICBtX3BhZ2VDbGllbnQtPmF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoaG9zdG5hbWUs
IHJlYWxtLCBvbGRVc2VybmFtZSwgdXNlcm5hbWUsIHBhc3N3b3JkKTsKK30KKyNlbmRpZiAvLyBQ
TEFURk9STShRVCkuCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogdm9pZCBXZWJQYWdlUHJv
eHk6Om5lZWRUb3VjaEV2ZW50cyhib29sIG5lZWRUb3VjaEV2ZW50cykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0M2U1M2IxYTdhMGY2NzkyYzJjM2Y1MDJiYmJm
MThjNjAwNWNjMDA2Li4zZTdjYTA5ZjYwMWIxZjJkNzcwNmMyOGMwOTkxMWEyMWNmNGExZGQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMjAsNiArMzIwLDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJBcHBsaWNhdGlvblNjaGVtZShjb25zdCBTdHJp
bmcmIHNjaGVtZSk7CiAgICAgdm9pZCByZXNvbHZlQXBwbGljYXRpb25TY2hlbWVSZXF1ZXN0KFF0
TmV0d29ya1JlcXVlc3REYXRhKTsKICAgICB2b2lkIHNlbmRBcHBsaWNhdGlvblNjaGVtZVJlcGx5
KGNvbnN0IFFRdWlja05ldHdvcmtSZXBseSopOworICAgIHZvaWQgYXV0aGVudGljYXRpb25SZXF1
aXJlZChjb25zdCBTdHJpbmcmIGhvc3RuYW1lLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBjb25zdCBT
dHJpbmcmIG9sZFVzZXJuYW1lLCBTdHJpbmcmIHVzZXJuYW1lLCBTdHJpbmcmIHBhc3N3b3JkKTsK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1YzIxMzNhYjQxYzFjMWQ3MzYxNjJj
ZDYwNDRlMDllNDViZTg3YjE2Li45N2RlMTMzNDU2YTBlOWJmMjIzMzI1Y2Q5MTY2Y2I2MmQwNDg0
M2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KQEAgLTc1LDYgKzc1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAg
ICBEaWRDaGFuZ2VDb250ZW50c1NpemUoV2ViQ29yZTo6SW50U2l6ZSBuZXdTaXplKQogICAgIERp
ZEZpbmRab29tYWJsZUFyZWEoV2ViQ29yZTo6SW50UG9pbnQgdGFyZ2V0LCBXZWJDb3JlOjpJbnRS
ZWN0IGFyZWEpCiAgICAgRm9jdXNFZGl0YWJsZUFyZWEoV2ViQ29yZTo6SW50UmVjdCBjYXJldCwg
V2ViQ29yZTo6SW50UmVjdCBhcmVhKQorICAgIEF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoV1RGOjpT
dHJpbmcgaG9zdG5hbWUsIFdURjo6U3RyaW5nIHJlYWxtLCBXVEY6OlN0cmluZyBvbGRVc2VybmFt
ZSkgLT4gKFdURjo6U3RyaW5nIHVzZXJuYW1lLCBXVEY6OlN0cmluZyBwYXNzd29yZCkKICNlbmRp
ZgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgTmVlZFRvdWNoRXZlbnRzKGJvb2wgbmVl
ZFRvdWNoRXZlbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
RGlhbG9nUnVubmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1
bm5lci5jcHAKaW5kZXggMzJkZTIxYWY3YzkxZmMwZGJhNDliNmFjYTJjM2RjZmQwOGIyYmE0OS4u
NzEzMmQ3ZmVkMDNmOWE2OGNiNGE3MGUzZWY4ODk4MDY0MTU1NzVjMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuY3BwCkBAIC02OSw2ICs2OSwzOSBA
QCBwcml2YXRlOgogICAgIFFTdHJpbmcgbV9kZWZhdWx0VmFsdWU7CiB9OwogCitjbGFzcyBBdXRo
ZW50aWNhdGlvbkRpYWxvZ0NvbnRleHRPYmplY3QgOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9P
QkpFQ1QKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgaG9zdG5hbWUgUkVBRCBob3N0bmFtZSBDT05T
VEFOVCkKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgcmVhbG0gUkVBRCByZWFsbSBDT05TVEFOVCkK
KyAgICBRX1BST1BFUlRZKFFTdHJpbmcgb2xkVXNlcm5hbWUgUkVBRCBvbGRVc2VybmFtZSBDT05T
VEFOVCkKKworcHVibGljOgorICAgIEF1dGhlbnRpY2F0aW9uRGlhbG9nQ29udGV4dE9iamVjdChj
b25zdCBRU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgUVN0cmluZyYgcmVhbG0sIGNvbnN0IFFTdHJp
bmcmIG9sZFVzZXJuYW1lKQorICAgICAgICA6IFFPYmplY3QoKQorICAgICAgICAsIG1faG9zdG5h
bWUoaG9zdG5hbWUpCisgICAgICAgICwgbV9yZWFsbShyZWFsbSkKKyAgICAgICAgLCBtX29sZFVz
ZXJuYW1lKG9sZFVzZXJuYW1lKQorICAgIHsKKworCisgICAgUVN0cmluZyBob3N0bmFtZSgpIGNv
bnN0IHsgcmV0dXJuIG1faG9zdG5hbWU7IH0KKyAgICBRU3RyaW5nIHJlYWxtKCkgY29uc3QgeyBy
ZXR1cm4gbV9yZWFsbTsgfQorICAgIFFTdHJpbmcgb2xkVXNlcm5hbWUoKSBjb25zdCB7IHJldHVy
biBtX29sZFVzZXJuYW1lOyB9CisKK3B1YmxpYyBzbG90czoKKyAgICB2b2lkIGFjY2VwdChjb25z
dCBRU3RyaW5nJiB1c2VybmFtZSwgY29uc3QgUVN0cmluZyYgcGFzc3dvcmQpIHsgZW1pdCBhY2Nl
cHRlZCh1c2VybmFtZSwgcGFzc3dvcmQpOyB9CisgICAgdm9pZCByZWplY3QoKSB7IGVtaXQgcmVq
ZWN0ZWQoKTsgfQorCitzaWduYWxzOgorICAgIHZvaWQgYWNjZXB0ZWQoY29uc3QgUVN0cmluZyYg
dXNlcm5hbWUsIGNvbnN0IFFTdHJpbmcmIHBhc3N3b3JkKTsKKyAgICB2b2lkIHJlamVjdGVkKCk7
CisKK3ByaXZhdGU6CisgICAgUVN0cmluZyBtX2hvc3RuYW1lOworICAgIFFTdHJpbmcgbV9yZWFs
bTsKKyAgICBRU3RyaW5nIG1fb2xkVXNlcm5hbWU7Cit9OworCiBib29sIFF0RGlhbG9nUnVubmVy
Ojppbml0Rm9yQWxlcnQoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBjb21wb25lbnQsIFFRdWlja0l0
ZW0qIGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmluZyYgbWVzc2FnZSkKIHsKICAgICBEaWFsb2dD
b250ZXh0T2JqZWN0KiBjb250ZXh0T2JqZWN0ID0gbmV3IERpYWxvZ0NvbnRleHRPYmplY3QobWVz
c2FnZSk7CkBAIC0xMDMsNiArMTM2LDE5IEBAIGJvb2wgUXREaWFsb2dSdW5uZXI6OmluaXRGb3JQ
cm9tcHQoUURlY2xhcmF0aXZlQ29tcG9uZW50KiBjb21wb25lbnQsIFFRdWlja0l0ZW0qCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgUXREaWFsb2dSdW5uZXI6OmluaXRGb3JBdXRoZW50aWNh
dGlvbihRRGVjbGFyYXRpdmVDb21wb25lbnQqIGNvbXBvbmVudCwgUVF1aWNrSXRlbSogZGlhbG9n
UGFyZW50LCBjb25zdCBRU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgUVN0cmluZyYgcmVhbG0sIGNv
bnN0IFFTdHJpbmcmIG9sZFVzZXJuYW1lKQoreworICAgIEF1dGhlbnRpY2F0aW9uRGlhbG9nQ29u
dGV4dE9iamVjdCogY29udGV4dE9iamVjdCA9IG5ldyBBdXRoZW50aWNhdGlvbkRpYWxvZ0NvbnRl
eHRPYmplY3QoaG9zdG5hbWUsIHJlYWxtLCBvbGRVc2VybmFtZSk7CisgICAgaWYgKCFjcmVhdGVE
aWFsb2coY29tcG9uZW50LCBkaWFsb2dQYXJlbnQsIGNvbnRleHRPYmplY3QpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBjb25uZWN0KGNvbnRleHRPYmplY3QsIFNJR05BTChhY2NlcHRl
ZChRU3RyaW5nLCBRU3RyaW5nKSksIFNMT1Qob25BdXRoZW50aWNhdGlvbkFjY2VwdGVkKFFTdHJp
bmcsIFFTdHJpbmcpKSk7CisgICAgY29ubmVjdChjb250ZXh0T2JqZWN0LCBTSUdOQUwoYWNjZXB0
ZWQoUVN0cmluZywgUVN0cmluZykpLCBTTE9UKHF1aXQoKSkpOworICAgIGNvbm5lY3QoY29udGV4
dE9iamVjdCwgU0lHTkFMKHJlamVjdGVkKCkpLCBTTE9UKHF1aXQoKSkpOworCisgICAgcmV0dXJu
IHRydWU7Cit9CisKIGJvb2wgUXREaWFsb2dSdW5uZXI6OmNyZWF0ZURpYWxvZyhRRGVjbGFyYXRp
dmVDb21wb25lbnQqIGNvbXBvbmVudCwgUVF1aWNrSXRlbSogZGlhbG9nUGFyZW50LCBRT2JqZWN0
KiBjb250ZXh0T2JqZWN0KQogewogICAgIFFEZWNsYXJhdGl2ZUNvbnRleHQqIGJhc2VDb250ZXh0
ID0gY29tcG9uZW50LT5jcmVhdGlvbkNvbnRleHQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0RGlhbG9nUnVubmVyLmgKaW5kZXggYmZhNTMwMjY0M2E1MGM3MGZiZjgyMTc5MDcw
N2NlMTQ2ODJhM2IzNi4uODE5Yjg1YzQyMGMzZTI4OWM4NDMwZWRiN2U1YTMyMGUwYmU4Y2I5MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmgKQEAgLTM4
LDEyICszOCwxNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBpbml0Rm9yQWxlcnQoUURlY2xhcmF0aXZl
Q29tcG9uZW50KiwgUVF1aWNrSXRlbSogZGlhbG9nUGFyZW50LCBjb25zdCBRU3RyaW5nJiBtZXNz
YWdlKTsKICAgICBib29sIGluaXRGb3JDb25maXJtKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCosIFFR
dWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmluZyYgbWVzc2FnZSk7CiAgICAgYm9v
bCBpbml0Rm9yUHJvbXB0KFFEZWNsYXJhdGl2ZUNvbXBvbmVudCosIFFRdWlja0l0ZW0qIGRpYWxv
Z1BhcmVudCwgY29uc3QgUVN0cmluZyYgbWVzc2FnZSwgY29uc3QgUVN0cmluZyYgZGVmYXVsdFZh
bHVlKTsKKyAgICBib29sIGluaXRGb3JBdXRoZW50aWNhdGlvbihRRGVjbGFyYXRpdmVDb21wb25l
bnQqLCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQsIGNvbnN0IFFTdHJpbmcmIGhvc3RuYW1lLCBj
b25zdCBRU3RyaW5nJiByZWFsbSwgY29uc3QgUVN0cmluZyYgb2xkVXNlcm5hbWUpOwogCiAgICAg
UVF1aWNrSXRlbSogZGlhbG9nKCkgY29uc3QgeyByZXR1cm4gbV9kaWFsb2cuZ2V0KCk7IH0KIAog
ICAgIGJvb2wgd2FzQWNjZXB0ZWQoKSBjb25zdCB7IHJldHVybiBtX3dhc0FjY2VwdGVkOyB9CiAg
ICAgUVN0cmluZyByZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX3Jlc3VsdDsgfQogCisgICAgUVN0
cmluZyB1c2VybmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlcm5hbWU7IH0KKyAgICBRU3RyaW5n
IHBhc3N3b3JkKCkgY29uc3QgeyByZXR1cm4gbV9wYXNzd29yZDsgfQorCiBwdWJsaWMgc2xvdHM6
CiAgICAgdm9pZCBvbkFjY2VwdGVkKGNvbnN0IFFTdHJpbmcmIHJlc3VsdCA9IFFTdHJpbmcoKSkK
ICAgICB7CkBAIC01MSw2ICs1NSwxMiBAQCBwdWJsaWMgc2xvdHM6CiAgICAgICAgIG1fcmVzdWx0
ID0gcmVzdWx0OwogICAgIH0KIAorICAgIHZvaWQgb25BdXRoZW50aWNhdGlvbkFjY2VwdGVkKGNv
bnN0IFFTdHJpbmcmIHVzZXJuYW1lLCBjb25zdCBRU3RyaW5nJiBwYXNzd29yZCkKKyAgICB7Cisg
ICAgICAgIG1fdXNlcm5hbWUgPSB1c2VybmFtZTsKKyAgICAgICAgbV9wYXNzd29yZCA9IHBhc3N3
b3JkOworICAgIH0KKwogcHJpdmF0ZToKICAgICBib29sIGNyZWF0ZURpYWxvZyhRRGVjbGFyYXRp
dmVDb21wb25lbnQqLCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQsIFFPYmplY3QqIGNvbnRleHRP
YmplY3QpOwogCkBAIC01OCw2ICs2OCw5IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPFFRdWlja0l0
ZW0+IG1fZGlhbG9nOwogICAgIFFTdHJpbmcgbV9yZXN1bHQ7CiAgICAgYm9vbCBtX3dhc0FjY2Vw
dGVkOworCisgICAgUVN0cmluZyBtX3VzZXJuYW1lOworICAgIFFTdHJpbmcgbV9wYXNzd29yZDsK
IH07CiAKICNlbmRpZiAvLyBRdERpYWxvZ1J1bm5lcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwCmluZGV4IGNjOTY4NzZiZTFlYmJiYjIwNjc3NmFiYWVh
MjNkYmZlZjQ0ZDVhNjEuLjFlNTNiM2MzOWM0YTM5ZmMyY2I5OGZjZjI0MWJhN2FkNTkwYWNhYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwCkBAIC0x
MDcsNiArMTA3LDE3IEBAIHZvaWQgUXRQYWdlQ2xpZW50OjpoYW5kbGVBcHBsaWNhdGlvblNjaGVt
ZVJlcXVlc3QoUGFzc1JlZlB0cjxRdE5ldHdvcmtSZXF1ZXN0RGF0CiAgICAgbV93ZWJWaWV3LT5l
eHBlcmltZW50YWwoKS0+aW52b2tlQXBwbGljYXRpb25TY2hlbWVIYW5kbGVyKHJlcXVlc3REYXRh
LmdldCgpKTsKIH0KIAordm9pZCBRdFBhZ2VDbGllbnQ6OmF1dGhlbnRpY2F0aW9uUmVxdWlyZWQo
Y29uc3QgU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgY29uc3QgU3RyaW5n
JiBvbGRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29yZCkKK3sKKyAg
ICBRU3RyaW5nIHFVc2VybmFtZTsKKyAgICBRU3RyaW5nIHFQYXNzd29yZDsKKworICAgIFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+YXV0aGVudGljYXRpb25SZXF1aXJlZCho
b3N0bmFtZSwgcmVhbG0sIG9sZFVzZXJuYW1lLCBxVXNlcm5hbWUsIHFQYXNzd29yZCk7CisKKyAg
ICB1c2VybmFtZSA9IHFVc2VybmFtZTsKKyAgICBwYXNzd29yZCA9IHFQYXNzd29yZDsKK30KKwog
dm9pZCBRdFBhZ2VDbGllbnQ6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNv
cikKIHsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhIHRlbXBvcmFyeSBmaXggdW50aWwgd2UgZ2V0
IGN1cnNvciBzdXBwb3J0IGluIFFNTCBpdGVtcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9x
dC9RdFBhZ2VDbGllbnQuaAppbmRleCA3NzE1MDI2ZjgxMzYzMWJjZDVlY2MyYzg0NmI1ZTVlOTBk
M2M5YjNiLi5lZGY0YTc2YmQ0NGUyODZjMDAzNjZkYjczYjQyZDYwYWVjZDkzMTY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oCkBAIC01NCw2ICs1NCw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFBhc3NPd25QdHI8RHJhd2luZ0FyZWFQcm94eT4gY3JlYXRl
RHJhd2luZ0FyZWFQcm94eSgpOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVEb3dubG9hZFJlcXVl
c3QoRG93bmxvYWRQcm94eSopOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVBcHBsaWNhdGlvblNj
aGVtZVJlcXVlc3QoUGFzc1JlZlB0cjxRdE5ldHdvcmtSZXF1ZXN0RGF0YT4pOworICAgIHZpcnR1
YWwgdm9pZCBhdXRoZW50aWNhdGlvblJlcXVpcmVkKGNvbnN0IFN0cmluZyYgaG9zdG5hbWUsIGNv
bnN0IFN0cmluZyYgcmVhbG0sIGNvbnN0IFN0cmluZyYgb2xkVXNlcm5hbWUsIFN0cmluZyYgdXNl
cm5hbWUsIFN0cmluZyYgcGFzc3dvcmQpOwogCiAgICAgdmlydHVhbCB2b2lkIGRpc3BsYXlWaWV3
KCk7CiAgICAgdmlydHVhbCB2b2lkIHNjcm9sbFZpZXcoY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
c2Nyb2xsUmVjdCwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2Nyb2xsT2Zmc2V0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0TmV0d29ya0FjY2Vzc01hbmFn
ZXIuY3BwCmluZGV4IDU3Yjk1M2ZlYWRjNzc0ZGVkNmM2MWIxM2JkODcwMmNlZGYxOTk4MTkuLjgy
ODk3M2M0MDA5MjY3YmEwZmRmZWUxYWQyMzEyMTMxMDBlNzBmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyLmNwcApA
QCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMTEgWmVubyBBbGJpc3NlciA8
emVub0B3ZWJraXQub3JnPgorICogQ29weXJpZ2h0IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9u
IGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0yOSw3ICszMCw5IEBACiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVk
ZSAiV2ViRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIKKyNp
bmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIK
KyNpbmNsdWRlIDxRQXV0aGVudGljYXRvcj4KICNpbmNsdWRlIDxRTmV0d29ya1JlcGx5PgogI2lu
Y2x1ZGUgPFFOZXR3b3JrUmVxdWVzdD4KIApAQCAtMzksNiArNDIsNyBAQCBRdE5ldHdvcmtBY2Nl
c3NNYW5hZ2VyOjpRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyKFdlYlByb2Nlc3MqIHdlYlByb2Nlc3Mp
CiAgICAgOiBRTmV0d29ya0FjY2Vzc01hbmFnZXIoKQogICAgICwgbV93ZWJQcm9jZXNzKHdlYlBy
b2Nlc3MpCiB7CisgICAgY29ubmVjdCh0aGlzLCBTSUdOQUwoYXV0aGVudGljYXRpb25SZXF1aXJl
ZChRTmV0d29ya1JlcGx5KiwgUUF1dGhlbnRpY2F0b3IqKSksIFNMT1Qob25BdXRoZW50aWNhdGlv
blJlcXVpcmVkKFFOZXR3b3JrUmVwbHkqLCBRQXV0aGVudGljYXRvciopKSk7CiB9CiAKIFF0TmV0
d29ya0FjY2Vzc01hbmFnZXI6OlF0TmV0d29ya0FjY2Vzc01hbmFnZXIoUU9iamVjdCogcGFyZW50
KQpAQCAtNzksNiArODMsMzAgQEAgdm9pZCBRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpyZWdpc3Rl
ckFwcGxpY2F0aW9uU2NoZW1lKGNvbnN0IFdlYlBhZ2UqIHBhZ2UsIGNvbnMKICAgICBtX2FwcGxp
Y2F0aW9uU2NoZW1lcy5pbnNlcnQocGFnZSwgc2NoZW1lLnRvTG93ZXIoKSk7CiB9CiAKK3ZvaWQg
UXROZXR3b3JrQWNjZXNzTWFuYWdlcjo6b25BdXRoZW50aWNhdGlvblJlcXVpcmVkKFFOZXR3b3Jr
UmVwbHkgKnJlcGx5LCBRQXV0aGVudGljYXRvciAqYXV0aGVudGljYXRvcikKK3sKKyAgICBRT2Jq
ZWN0KiBvcmlnaW5hdGluZ09iamVjdCA9IHJlcGx5LT5yZXF1ZXN0KCkub3JpZ2luYXRpbmdPYmpl
Y3QoKTsKKworICAgIC8vIEZJWE1FOiBUaGlzIGNoZWNrIGNhbiBnbyBhd2F5IG9uY2Ugb3VyIFF0
IHZlcnNpb24gaXMgdXAtdG8tZGF0ZS4gU2VlOiBRVEJVRy0yMzUxMi4KKyAgICBpZiAob3JpZ2lu
YXRpbmdPYmplY3QpIHsKKyAgICAgICAgU3RyaW5nIGhvc3RuYW1lID0gcmVwbHktPnVybCgpLnRv
U3RyaW5nKFFVcmw6OlJlbW92ZVBhdGggfCBRVXJsOjpSZW1vdmVRdWVyeSB8IFFVcmw6OlJlbW92
ZUZyYWdtZW50IHwgUVVybDo6U3RyaXBUcmFpbGluZ1NsYXNoKTsKKyAgICAgICAgU3RyaW5nIHJl
YWxtID0gYXV0aGVudGljYXRvci0+cmVhbG0oKTsKKyAgICAgICAgU3RyaW5nIG9sZFVzZXJuYW1l
ID0gYXV0aGVudGljYXRvci0+dXNlcigpOworICAgICAgICBxdWxvbmdsb25nIHBhZ2VJRCA9IG9y
aWdpbmF0aW5nT2JqZWN0LT5wcm9wZXJ0eSgicGFnZUlEIikudG9VTG9uZ0xvbmcoKTsKKyAgICAg
ICAgU3RyaW5nIHVzZXJuYW1lOworICAgICAgICBTdHJpbmcgcGFzc3dvcmQ7CisKKyAgICAgICAg
aWYgKG1fd2ViUHJvY2Vzcy0+d2ViUGFnZShwYWdlSUQpLT5zZW5kU3luYygKKyAgICAgICAgICAg
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoaG9zdG5hbWUs
IHJlYWxtLCBvbGRVc2VybmFtZSksCisgICAgICAgICAgICBNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpBdXRoZW50aWNhdGlvblJlcXVpcmVkOjpSZXBseSh1c2VybmFtZSwgcGFzc3dvcmQpKSkgewor
ICAgICAgICAgICAgaWYgKCF1c2VybmFtZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgYXV0
aGVudGljYXRvci0+c2V0VXNlcih1c2VybmFtZSk7CisgICAgICAgICAgICBpZiAoIXBhc3N3b3Jk
LmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAgICBhdXRoZW50aWNhdG9yLT5zZXRQYXNzd29yZChw
YXNzd29yZCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKIH0KIAogI2luY2x1ZGUgIm1vY19RdE5l
dHdvcmtBY2Nlc3NNYW5hZ2VyLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9xdC9RdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyLmgKaW5kZXggOGQ5ZWIxZDBlYjc3Njg0M2Uw
NzAwYjIyNzUzNDEzMDg1NjgxOGM5Ny4uMzNlYTUzZjVmZWM0OGI2NGY3MmIzYzQ2MDcxOGI0MjFk
NjA4YmVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5ldHdv
cmtBY2Nlc3NNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5l
dHdvcmtBY2Nlc3NNYW5hZ2VyLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChD
KSAyMDExIFplbm8gQWxiaXNzZXIgPHplbm9Ad2Via2l0Lm9yZz4KKyAqIENvcHlyaWdodCAoQykg
MjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWllcykKICAqCiAg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDYsNiArNDcsOSBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCBRTmV0d29ya1JlcGx5KiBjcmVhdGVSZXF1ZXN0KE9wZXJhdGlvbiwgY29uc3Qg
UU5ldHdvcmtSZXF1ZXN0JiwgUUlPRGV2aWNlKiBvdXRnb2luZ0RhdGEgPSAwKSBPVkVSUklERTsK
ICAgICBzdGF0aWMgV2ViUGFnZSogb2J0YWluT3JpZ2luYXRpbmdXZWJQYWdlKGNvbnN0IFFOZXR3
b3JrUmVxdWVzdCYpOwogCitwcml2YXRlIFFfU0xPVFM6CisgICAgdm9pZCBvbkF1dGhlbnRpY2F0
aW9uUmVxdWlyZWQoUU5ldHdvcmtSZXBseSAqLCBRQXV0aGVudGljYXRvciAqKTsKKwogcHJpdmF0
ZToKICAgICBRTXVsdGlIYXNoPGNvbnN0IFdlYlBhZ2UqLCBRU3RyaW5nPiBtX2FwcGxpY2F0aW9u
U2NoZW1lczsKICAgICBXZWJQcm9jZXNzKiBtX3dlYlByb2Nlc3M7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122559</attachid>
            <date>2012-01-14 17:36:24 -0800</date>
            <delta_ts>2012-01-16 08:10:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75535-20120115023621.patch</filename>
            <type>text/plain</type>
            <size>20622</size>
            <attacher name="Alexander Færøy">ahf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDIyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2VkOTQwZGRkMzlmNzZi
NjE3YjVhYjQxMGVmMzk0MjI2ZWMwZmRiMi4uNWE1NTAzYjM2ODU1MjIzNDQ4NmFhMzhmMTQxNGZh
ZmM0YWQ3MmYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTAxLTE0ICBBbGV4
YW5kZXIgRsOmcsO4eSAgPGFsZXhhbmRlci5mYWVyb3lAbm9raWEuY29tPgorCisgICAgICAgIFtR
dF0gSW1wbGVtZW50IEhUVFAgYXV0aGVudGljYXRpb24gUU1MIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhl
IFFNTCBBUEkgZm9yIGhhbmRsaW5nIEhUVFAgYXV0aGVudGljYXRpb24uCisgICAgICAgIFRoZSBp
bXBsZW1lbnRhdGlvbiB1c2VzIGEgc3luY3Jvbm91cyBtZXNzYWdlIGJldHdlZW4gdGhlIFdlYlBy
b2Nlc3MgYW5kCisgICAgICAgIHRoZSBVSVByb2Nlc3Mgd2hpY2ggaXMgY2FsbGVkIHdoZW4gdGhl
IGF1dGhlbnRpY2F0aW9uUmVxdWlyZWQgc2lnbmFsCisgICAgICAgIGlzIGVtaXR0ZWQgZnJvbSBR
TkFNLgorCisgICAgICAgIEJhc2VkIGluIHBhcnQgdXBvbiBwYXRjaCBieSBQZXRlciBIYXJ0bWFu
bi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAg
ICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAg
ICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmF1dGhlbnRpY2F0aW9uUmVxdWlyZWQpOgorICAgICAg
ICAoUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6YXV0aGVudGljYXRpb25EaWFsb2cpOgorICAg
ICAgICAoUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbDo6c2V0QXV0aGVudGljYXRpb25EaWFsb2cp
OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9QYWdlQ2xpZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6YXV0aGVudGljYXRpb25SZXF1aXJlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0RGlh
bG9nUnVubmVyLmNwcDoKKyAgICAgICAgKEF1dGhlbnRpY2F0aW9uRGlhbG9nQ29udGV4dE9iamVj
dDo6QXV0aGVudGljYXRpb25EaWFsb2dDb250ZXh0T2JqZWN0KToKKyAgICAgICAgKEF1dGhlbnRp
Y2F0aW9uRGlhbG9nQ29udGV4dE9iamVjdDo6aG9zdG5hbWUpOgorICAgICAgICAoQXV0aGVudGlj
YXRpb25EaWFsb2dDb250ZXh0T2JqZWN0OjpyZWFsbSk6CisgICAgICAgIChBdXRoZW50aWNhdGlv
bkRpYWxvZ0NvbnRleHRPYmplY3Q6Om9sZFVzZXJuYW1lKToKKyAgICAgICAgKEF1dGhlbnRpY2F0
aW9uRGlhbG9nQ29udGV4dE9iamVjdDo6YWNjZXB0KToKKyAgICAgICAgKEF1dGhlbnRpY2F0aW9u
RGlhbG9nQ29udGV4dE9iamVjdDo6cmVqZWN0KToKKyAgICAgICAgKFF0RGlhbG9nUnVubmVyOjpp
bml0Rm9yQXV0aGVudGljYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1
bm5lci5oOgorICAgICAgICAoUXREaWFsb2dSdW5uZXI6OnVzZXJuYW1lKToKKyAgICAgICAgKFF0
RGlhbG9nUnVubmVyOjpwYXNzd29yZCk6CisgICAgICAgIChRdERpYWxvZ1J1bm5lcjo6b25BdXRo
ZW50aWNhdGlvbkFjY2VwdGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50
LmNwcDoKKyAgICAgICAgKFF0UGFnZUNsaWVudDo6YXV0aGVudGljYXRpb25SZXF1aXJlZCk6Cisg
ICAgICAgICogVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nl
c3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0TmV0
d29ya0FjY2Vzc01hbmFnZXI6OlF0TmV0d29ya0FjY2Vzc01hbmFnZXIpOgorICAgICAgICAoV2Vi
S2l0OjpRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpvbkF1dGhlbnRpY2F0aW9uUmVxdWlyZWQpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdlci5oOgorCiAyMDEy
LTAxLTEzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAg
RGVsYXkgdXBkYXRpbmcgdGhlIHJvb3QgY29tcG9zaXRpbmcgbGF5ZXIgaWYgdGhlIGxheWVyIHRy
ZWUgc3RhdGUgaXMgZnJvemVuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3LmNwcAppbmRleCA0M2Q0MGI5YjMxZDcyYzhmYmFmMjVmODYxNTIzZWU3
YmYzNDMzMGI4Li5mMjMyMGZjMWY2ZTNiYTZiZjViNGQyZTRjMTU0ODk3N2E2MWQ0ODUwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAK
QEAgLTU1LDYgKzU1LDcgQEAgUVF1aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2
YXRlKFFRdWlja1dlYlZpZXcqIHZpZXdwb3J0KQogICAgICwgYWxlcnREaWFsb2coMCkKICAgICAs
IGNvbmZpcm1EaWFsb2coMCkKICAgICAsIHByb21wdERpYWxvZygwKQorICAgICwgYXV0aGVudGlj
YXRpb25EaWFsb2coMCkKICAgICAsIGl0ZW1TZWxlY3RvcigwKQogICAgICwgcG9zdFRyYW5zaXRp
b25TdGF0ZShhZG9wdFB0cihuZXcgUG9zdFRyYW5zaXRpb25TdGF0ZSh0aGlzKSkpCiAgICAgLCBp
c1RyYW5zaXRpb25pbmdUb05ld1BhZ2UoZmFsc2UpCkBAIC00NDAsNiArNDQxLDI2IEBAIFFTdHJp
bmcgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnJ1bkphdmFTY3JpcHRQcm9tcHQoY29uc3QgUVN0cmlu
ZyYgbWVzc2FnZSwgY29uc3QKICAgICByZXR1cm4gZGlhbG9nUnVubmVyLnJlc3VsdCgpOwogfQog
Cit2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjphdXRoZW50aWNhdGlvblJlcXVpcmVkKGNvbnN0
IFFTdHJpbmcmIGhvc3RuYW1lLCBjb25zdCBRU3RyaW5nJiByZWFsbSwgY29uc3QgUVN0cmluZyYg
b2xkVXNlcm5hbWUsIFFTdHJpbmcmIHVzZXJuYW1lLCBRU3RyaW5nJiBwYXNzd29yZCkKK3sKKyAg
ICBpZiAoIWF1dGhlbnRpY2F0aW9uRGlhbG9nKQorICAgICAgICByZXR1cm47CisKKyAgICBRX1Eo
UVF1aWNrV2ViVmlldyk7CisgICAgUXREaWFsb2dSdW5uZXIgZGlhbG9nUnVubmVyOworICAgIGlm
ICghZGlhbG9nUnVubmVyLmluaXRGb3JBdXRoZW50aWNhdGlvbihhdXRoZW50aWNhdGlvbkRpYWxv
ZywgcSwgaG9zdG5hbWUsIHJlYWxtLCBvbGRVc2VybmFtZSkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHNldFZpZXdJbkF0dGFjaGVkUHJvcGVydGllcyhkaWFsb2dSdW5uZXIuZGlhbG9nKCkpOwor
CisgICAgZGlzYWJsZU1vdXNlRXZlbnRzKCk7CisgICAgZGlhbG9nUnVubmVyLmV4ZWMoKTsKKyAg
ICBlbmFibGVNb3VzZUV2ZW50cygpOworCisgICAgdXNlcm5hbWUgPSBkaWFsb2dSdW5uZXIudXNl
cm5hbWUoKTsKKyAgICBwYXNzd29yZCA9IGRpYWxvZ1J1bm5lci5wYXNzd29yZCgpOworfQorCiB2
b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpjaG9vc2VGaWxlcyhXS09wZW5QYW5lbFJlc3VsdExp
c3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBRU3RyaW5nTGlzdCYgc2VsZWN0ZWRGaWxlTmFt
ZXMsIFF0V2ViUGFnZVVJQ2xpZW50OjpGaWxlQ2hvb3NlclR5cGUgdHlwZSkKIHsKICNpZm5kZWYg
UVRfTk9fRklMRURJQUxPRwpAQCAtNjcxLDYgKzY5MiwyMSBAQCB2b2lkIFFRdWlja1dlYlZpZXdF
eHBlcmltZW50YWw6OnNldFByb21wdERpYWxvZyhRRGVjbGFyYXRpdmVDb21wb25lbnQqIHByb21w
dERpYQogICAgIGVtaXQgcHJvbXB0RGlhbG9nQ2hhbmdlZCgpOwogfQogCitRRGVjbGFyYXRpdmVD
b21wb25lbnQqIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmF1dGhlbnRpY2F0aW9uRGlhbG9n
KCkgY29uc3QKK3sKKyAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7CisgICAgcmV0dXJuIGQt
PmF1dGhlbnRpY2F0aW9uRGlhbG9nOworfQorCit2b2lkIFFRdWlja1dlYlZpZXdFeHBlcmltZW50
YWw6OnNldEF1dGhlbnRpY2F0aW9uRGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogYXV0aGVu
dGljYXRpb25EaWFsb2cpCit7CisgICAgUV9EKFFRdWlja1dlYlZpZXcpOworICAgIGlmIChkLT5h
dXRoZW50aWNhdGlvbkRpYWxvZyA9PSBhdXRoZW50aWNhdGlvbkRpYWxvZykKKyAgICAgICAgcmV0
dXJuOworICAgIGQtPmF1dGhlbnRpY2F0aW9uRGlhbG9nID0gYXV0aGVudGljYXRpb25EaWFsb2c7
CisgICAgZW1pdCBhdXRoZW50aWNhdGlvbkRpYWxvZ0NoYW5nZWQoKTsKK30KKwogUURlY2xhcmF0
aXZlQ29tcG9uZW50KiBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjppdGVtU2VsZWN0b3IoKSBj
b25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDBmYTA3OTFjZmNl
ZTIwY2E4NWEwZTYyODNkMjY1MTY3ZjQ5MjkyZTEuLjE1NWU5NjA5NzllMzNmOWYyMTgyOTU5ZWQ2
NWJiNTJkMzI2YjM0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
cXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9x
dC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMjA4LDYgKzIwOCw3IEBAIGNsYXNzIFFXRUJLSVRfRVhQ
T1JUIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9Q
Uk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIGFsZXJ0RGlhbG9nIFJFQUQgYWxlcnREaWFs
b2cgV1JJVEUgc2V0QWxlcnREaWFsb2cgTk9USUZZIGFsZXJ0RGlhbG9nQ2hhbmdlZCkKICAgICBR
X1BST1BFUlRZKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogY29uZmlybURpYWxvZyBSRUFEIGNvbmZp
cm1EaWFsb2cgV1JJVEUgc2V0Q29uZmlybURpYWxvZyBOT1RJRlkgY29uZmlybURpYWxvZ0NoYW5n
ZWQpCiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIHByb21wdERpYWxvZyBS
RUFEIHByb21wdERpYWxvZyBXUklURSBzZXRQcm9tcHREaWFsb2cgTk9USUZZIHByb21wdERpYWxv
Z0NoYW5nZWQpCisgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIGF1dGhlbnRp
Y2F0aW9uRGlhbG9nIFJFQUQgYXV0aGVudGljYXRpb25EaWFsb2cgV1JJVEUgc2V0QXV0aGVudGlj
YXRpb25EaWFsb2cgTk9USUZZIGF1dGhlbnRpY2F0aW9uRGlhbG9nQ2hhbmdlZCkKICAgICBRX1BS
T1BFUlRZKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogaXRlbVNlbGVjdG9yIFJFQUQgaXRlbVNlbGVj
dG9yIFdSSVRFIHNldEl0ZW1TZWxlY3RvciBOT1RJRlkgaXRlbVNlbGVjdG9yQ2hhbmdlZCkKICAg
ICBRX1BST1BFUlRZKFFXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMgUkVBRCBwcmVmZXJlbmNl
cyBDT05TVEFOVCBGSU5BTCkKICAgICBRX1BST1BFUlRZKGJvb2wgdXNlVHJhZGl0aW9uYWxEZXNr
dG9wQmVoYXZpb3VyIFJFQUQgdXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyIFdSSVRFIHNl
dFVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cikKQEAgLTIyOSw2ICsyMzAsOCBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRDb25maXJtRGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCopOwog
ICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogcHJvbXB0RGlhbG9nKCkgY29uc3Q7CiAgICAgdm9p
ZCBzZXRQcm9tcHREaWFsb2coUURlY2xhcmF0aXZlQ29tcG9uZW50Kik7CisgICAgUURlY2xhcmF0
aXZlQ29tcG9uZW50KiBhdXRoZW50aWNhdGlvbkRpYWxvZygpIGNvbnN0OworICAgIHZvaWQgc2V0
QXV0aGVudGljYXRpb25EaWFsb2coUURlY2xhcmF0aXZlQ29tcG9uZW50Kik7CiAgICAgUURlY2xh
cmF0aXZlQ29tcG9uZW50KiBpdGVtU2VsZWN0b3IoKSBjb25zdDsKICAgICB2b2lkIHNldEl0ZW1T
ZWxlY3RvcihRRGVjbGFyYXRpdmVDb21wb25lbnQqKTsKICAgICAKQEAgLTI1Nyw2ICsyNjAsNyBA
QCBRX1NJR05BTFM6CiAgICAgdm9pZCBhbGVydERpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIGNv
bmZpcm1EaWFsb2dDaGFuZ2VkKCk7CiAgICAgdm9pZCBwcm9tcHREaWFsb2dDaGFuZ2VkKCk7Cisg
ICAgdm9pZCBhdXRoZW50aWNhdGlvbkRpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lkIGl0ZW1TZWxl
Y3RvckNoYW5nZWQoKTsKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFXZWJEb3dubG9hZEl0
ZW0qIGRvd25sb2FkSXRlbSk7CiAgICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVkKFFXZWJQZXJt
aXNzaW9uUmVxdWVzdCogcGVybWlzc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXggNGJlNzE3MDdjYjlhYWQyNDkx
NGVjNWMxMjUzM2ExYTI3M2E1OTU0Ny4uOGNhNGI4NjM5MGMxZjhlZTg0MWMxZDAyMTk3ZmQyZTNi
ZjY4NGFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1
aWNrd2Vidmlld19wX3AuaApAQCAtOTYsNiArOTYsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBydW5K
YXZhU2NyaXB0Q29uZmlybShjb25zdCBRU3RyaW5nJik7CiAgICAgUVN0cmluZyBydW5KYXZhU2Ny
aXB0UHJvbXB0KGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nJiBkZWZhdWx0VmFsdWUsIGJv
b2wmIG9rKTsKIAorICAgIHZvaWQgYXV0aGVudGljYXRpb25SZXF1aXJlZChjb25zdCBRU3RyaW5n
JiBob3N0bmFtZSwgY29uc3QgUVN0cmluZyYgcmVhbG0sIGNvbnN0IFFTdHJpbmcmIG9sZFVzZXJu
YW1lLCBRU3RyaW5nJiB1c2VybmFtZSwgUVN0cmluZyYgcGFzc3dvcmQpOworCiAgICAgdm9pZCBz
ZXRVc2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIoYm9vbCBlbmFibGUpOwogICAgIHZvaWQg
c2V0Vmlld0luQXR0YWNoZWRQcm9wZXJ0aWVzKFFPYmplY3QqKTsKICAgICB2b2lkIHNldEljb24o
Y29uc3QgUVVybCYpOwpAQCAtMTUwLDYgKzE1Miw3IEBAIHByaXZhdGU6CiAgICAgUURlY2xhcmF0
aXZlQ29tcG9uZW50KiBhbGVydERpYWxvZzsKICAgICBRRGVjbGFyYXRpdmVDb21wb25lbnQqIGNv
bmZpcm1EaWFsb2c7CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50KiBwcm9tcHREaWFsb2c7Cisg
ICAgUURlY2xhcmF0aXZlQ29tcG9uZW50KiBhdXRoZW50aWNhdGlvbkRpYWxvZzsKICAgICBRRGVj
bGFyYXRpdmVDb21wb25lbnQqIGl0ZW1TZWxlY3RvcjsKIAogICAgIFdlYkNvcmU6OlZpZXdwb3J0
QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1BhZ2VDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xp
ZW50LmgKaW5kZXggYzk0ZWExYTEzYjJhNzEwMmFlODg3Njc3YTMxZjFiMDhiZTI3ZDMzNy4uOTFj
MzllMjY5ZTY1YTAxMDdmNzZmNGMwOTZkZjg2ODI5MjA1OGY2YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvUGFnZUNsaWVudC5oCkBAIC0xMTAsNiArMTEwLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21OYXZpZ2F0b3JRdE9iamVjdChjb25zdCBTdHJp
bmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9h
ZFByb3h5KikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUZXh0SW5wdXRTdGF0ZSgpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgYXV0aGVudGljYXRpb25SZXF1aXJlZChjb25zdCBTdHJpbmcm
IGhvc3RuYW1lLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBjb25zdCBTdHJpbmcmIG9sZFVzZXJuYW1l
LCBTdHJpbmcmIHVzZXJuYW1lLCBTdHJpbmcmIHBhc3N3b3JkKSA9IDA7CiAjZW5kaWYKIAogI2lm
IFBMQVRGT1JNKFFUKSB8fCBQTEFURk9STShHVEspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDdlMDhjZWNkODE5NDA3N2QwMzUzNzZhYWE5NDQ3MGRhNTM0
OGZlYmEuLjM2YmU3OGNlNjE1YzE1OWQxZmY5YjdlNGVmYzU1OTUyNTMyZDk2NWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0yMzUzLDcgKzIzNTMsMTIg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9hZFByb3h5
KiBkb3dubG9hZCkKIHsKICAgICBtX3BhZ2VDbGllbnQtPmhhbmRsZURvd25sb2FkUmVxdWVzdChk
b3dubG9hZCk7CiB9Ci0jZW5kaWYKKwordm9pZCBXZWJQYWdlUHJveHk6OmF1dGhlbnRpY2F0aW9u
UmVxdWlyZWQoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgY29u
c3QgU3RyaW5nJiBvbGRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29y
ZCkKK3sKKyAgICBtX3BhZ2VDbGllbnQtPmF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoaG9zdG5hbWUs
IHJlYWxtLCBvbGRVc2VybmFtZSwgdXNlcm5hbWUsIHBhc3N3b3JkKTsKK30KKyNlbmRpZiAvLyBQ
TEFURk9STShRVCkuCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQogdm9pZCBXZWJQYWdlUHJv
eHk6Om5lZWRUb3VjaEV2ZW50cyhib29sIG5lZWRUb3VjaEV2ZW50cykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA0M2U1M2IxYTdhMGY2NzkyYzJjM2Y1MDJiYmJm
MThjNjAwNWNjMDA2Li4zZTdjYTA5ZjYwMWIxZjJkNzcwNmMyOGMwOTkxMWEyMWNmNGExZGQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0zMjAsNiArMzIwLDcg
QEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJBcHBsaWNhdGlvblNjaGVtZShjb25zdCBTdHJp
bmcmIHNjaGVtZSk7CiAgICAgdm9pZCByZXNvbHZlQXBwbGljYXRpb25TY2hlbWVSZXF1ZXN0KFF0
TmV0d29ya1JlcXVlc3REYXRhKTsKICAgICB2b2lkIHNlbmRBcHBsaWNhdGlvblNjaGVtZVJlcGx5
KGNvbnN0IFFRdWlja05ldHdvcmtSZXBseSopOworICAgIHZvaWQgYXV0aGVudGljYXRpb25SZXF1
aXJlZChjb25zdCBTdHJpbmcmIGhvc3RuYW1lLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBjb25zdCBT
dHJpbmcmIG9sZFVzZXJuYW1lLCBTdHJpbmcmIHVzZXJuYW1lLCBTdHJpbmcmIHBhc3N3b3JkKTsK
ICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1YzIxMzNhYjQxYzFjMWQ3MzYxNjJj
ZDYwNDRlMDllNDViZTg3YjE2Li45N2RlMTMzNDU2YTBlOWJmMjIzMzI1Y2Q5MTY2Y2I2MmQwNDg0
M2JlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1l
c3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KQEAgLTc1LDYgKzc1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAg
ICBEaWRDaGFuZ2VDb250ZW50c1NpemUoV2ViQ29yZTo6SW50U2l6ZSBuZXdTaXplKQogICAgIERp
ZEZpbmRab29tYWJsZUFyZWEoV2ViQ29yZTo6SW50UG9pbnQgdGFyZ2V0LCBXZWJDb3JlOjpJbnRS
ZWN0IGFyZWEpCiAgICAgRm9jdXNFZGl0YWJsZUFyZWEoV2ViQ29yZTo6SW50UmVjdCBjYXJldCwg
V2ViQ29yZTo6SW50UmVjdCBhcmVhKQorICAgIEF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoV1RGOjpT
dHJpbmcgaG9zdG5hbWUsIFdURjo6U3RyaW5nIHJlYWxtLCBXVEY6OlN0cmluZyBvbGRVc2VybmFt
ZSkgLT4gKFdURjo6U3RyaW5nIHVzZXJuYW1lLCBXVEY6OlN0cmluZyBwYXNzd29yZCkKICNlbmRp
ZgogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgTmVlZFRvdWNoRXZlbnRzKGJvb2wgbmVl
ZFRvdWNoRXZlbnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0
RGlhbG9nUnVubmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1
bm5lci5jcHAKaW5kZXggMzJkZTIxYWY3YzkxZmMwZGJhNDliNmFjYTJjM2RjZmQwOGIyYmE0OS4u
ZDU1ZjNlZGVlYTNlYjRlODMyZmU2NjJiNDZjYjA3MzI3NDhiMzI0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuY3BwCkBAIC02OSw2ICs2OSwzOSBA
QCBwcml2YXRlOgogICAgIFFTdHJpbmcgbV9kZWZhdWx0VmFsdWU7CiB9OwogCitjbGFzcyBBdXRo
ZW50aWNhdGlvbkRpYWxvZ0NvbnRleHRPYmplY3QgOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9P
QkpFQ1QKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgaG9zdG5hbWUgUkVBRCBob3N0bmFtZSBDT05T
VEFOVCkKKyAgICBRX1BST1BFUlRZKFFTdHJpbmcgcmVhbG0gUkVBRCByZWFsbSBDT05TVEFOVCkK
KyAgICBRX1BST1BFUlRZKFFTdHJpbmcgb2xkVXNlcm5hbWUgUkVBRCBvbGRVc2VybmFtZSBDT05T
VEFOVCkKKworcHVibGljOgorICAgIEF1dGhlbnRpY2F0aW9uRGlhbG9nQ29udGV4dE9iamVjdChj
b25zdCBRU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgUVN0cmluZyYgcmVhbG0sIGNvbnN0IFFTdHJp
bmcmIG9sZFVzZXJuYW1lKQorICAgICAgICA6IFFPYmplY3QoKQorICAgICAgICAsIG1faG9zdG5h
bWUoaG9zdG5hbWUpCisgICAgICAgICwgbV9yZWFsbShyZWFsbSkKKyAgICAgICAgLCBtX29sZFVz
ZXJuYW1lKG9sZFVzZXJuYW1lKQorICAgIHsKKyAgICB9CisKKyAgICBRU3RyaW5nIGhvc3RuYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9ob3N0bmFtZTsgfQorICAgIFFTdHJpbmcgcmVhbG0oKSBjb25z
dCB7IHJldHVybiBtX3JlYWxtOyB9CisgICAgUVN0cmluZyBvbGRVc2VybmFtZSgpIGNvbnN0IHsg
cmV0dXJuIG1fb2xkVXNlcm5hbWU7IH0KKworcHVibGljIHNsb3RzOgorICAgIHZvaWQgYWNjZXB0
KGNvbnN0IFFTdHJpbmcmIHVzZXJuYW1lLCBjb25zdCBRU3RyaW5nJiBwYXNzd29yZCkgeyBlbWl0
IGFjY2VwdGVkKHVzZXJuYW1lLCBwYXNzd29yZCk7IH0KKyAgICB2b2lkIHJlamVjdCgpIHsgZW1p
dCByZWplY3RlZCgpOyB9CisKK3NpZ25hbHM6CisgICAgdm9pZCBhY2NlcHRlZChjb25zdCBRU3Ry
aW5nJiB1c2VybmFtZSwgY29uc3QgUVN0cmluZyYgcGFzc3dvcmQpOworICAgIHZvaWQgcmVqZWN0
ZWQoKTsKKworcHJpdmF0ZToKKyAgICBRU3RyaW5nIG1faG9zdG5hbWU7CisgICAgUVN0cmluZyBt
X3JlYWxtOworICAgIFFTdHJpbmcgbV9vbGRVc2VybmFtZTsKK307CisKIGJvb2wgUXREaWFsb2dS
dW5uZXI6OmluaXRGb3JBbGVydChRRGVjbGFyYXRpdmVDb21wb25lbnQqIGNvbXBvbmVudCwgUVF1
aWNrSXRlbSogZGlhbG9nUGFyZW50LCBjb25zdCBRU3RyaW5nJiBtZXNzYWdlKQogewogICAgIERp
YWxvZ0NvbnRleHRPYmplY3QqIGNvbnRleHRPYmplY3QgPSBuZXcgRGlhbG9nQ29udGV4dE9iamVj
dChtZXNzYWdlKTsKQEAgLTEwMyw2ICsxMzYsMTkgQEAgYm9vbCBRdERpYWxvZ1J1bm5lcjo6aW5p
dEZvclByb21wdChRRGVjbGFyYXRpdmVDb21wb25lbnQqIGNvbXBvbmVudCwgUVF1aWNrSXRlbSoK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBRdERpYWxvZ1J1bm5lcjo6aW5pdEZvckF1dGhl
bnRpY2F0aW9uKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogY29tcG9uZW50LCBRUXVpY2tJdGVtKiBk
aWFsb2dQYXJlbnQsIGNvbnN0IFFTdHJpbmcmIGhvc3RuYW1lLCBjb25zdCBRU3RyaW5nJiByZWFs
bSwgY29uc3QgUVN0cmluZyYgb2xkVXNlcm5hbWUpCit7CisgICAgQXV0aGVudGljYXRpb25EaWFs
b2dDb250ZXh0T2JqZWN0KiBjb250ZXh0T2JqZWN0ID0gbmV3IEF1dGhlbnRpY2F0aW9uRGlhbG9n
Q29udGV4dE9iamVjdChob3N0bmFtZSwgcmVhbG0sIG9sZFVzZXJuYW1lKTsKKyAgICBpZiAoIWNy
ZWF0ZURpYWxvZyhjb21wb25lbnQsIGRpYWxvZ1BhcmVudCwgY29udGV4dE9iamVjdCkpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGNvbm5lY3QoY29udGV4dE9iamVjdCwgU0lHTkFMKGFj
Y2VwdGVkKFFTdHJpbmcsIFFTdHJpbmcpKSwgU0xPVChvbkF1dGhlbnRpY2F0aW9uQWNjZXB0ZWQo
UVN0cmluZywgUVN0cmluZykpKTsKKyAgICBjb25uZWN0KGNvbnRleHRPYmplY3QsIFNJR05BTChh
Y2NlcHRlZChRU3RyaW5nLCBRU3RyaW5nKSksIFNMT1QocXVpdCgpKSk7CisgICAgY29ubmVjdChj
b250ZXh0T2JqZWN0LCBTSUdOQUwocmVqZWN0ZWQoKSksIFNMT1QocXVpdCgpKSk7CisKKyAgICBy
ZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBRdERpYWxvZ1J1bm5lcjo6Y3JlYXRlRGlhbG9nKFFEZWNs
YXJhdGl2ZUNvbXBvbmVudCogY29tcG9uZW50LCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQsIFFP
YmplY3QqIGNvbnRleHRPYmplY3QpCiB7CiAgICAgUURlY2xhcmF0aXZlQ29udGV4dCogYmFzZUNv
bnRleHQgPSBjb21wb25lbnQtPmNyZWF0aW9uQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuaAppbmRleCBiZmE1MzAyNjQzYTUwYzcwZmJmODIx
NzkwNzA3Y2UxNDY4MmEzYjM2Li44MTliODVjNDIwYzNlMjg5Yzg0MzBlZGI3ZTVhMzIwZTBiZThj
YjkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5u
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuaApA
QCAtMzgsMTIgKzM4LDE2IEBAIHB1YmxpYzoKICAgICBib29sIGluaXRGb3JBbGVydChRRGVjbGFy
YXRpdmVDb21wb25lbnQqLCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQsIGNvbnN0IFFTdHJpbmcm
IG1lc3NhZ2UpOwogICAgIGJvb2wgaW5pdEZvckNvbmZpcm0oUURlY2xhcmF0aXZlQ29tcG9uZW50
KiwgUVF1aWNrSXRlbSogZGlhbG9nUGFyZW50LCBjb25zdCBRU3RyaW5nJiBtZXNzYWdlKTsKICAg
ICBib29sIGluaXRGb3JQcm9tcHQoUURlY2xhcmF0aXZlQ29tcG9uZW50KiwgUVF1aWNrSXRlbSog
ZGlhbG9nUGFyZW50LCBjb25zdCBRU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBRU3RyaW5nJiBkZWZh
dWx0VmFsdWUpOworICAgIGJvb2wgaW5pdEZvckF1dGhlbnRpY2F0aW9uKFFEZWNsYXJhdGl2ZUNv
bXBvbmVudCosIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmluZyYgaG9zdG5h
bWUsIGNvbnN0IFFTdHJpbmcmIHJlYWxtLCBjb25zdCBRU3RyaW5nJiBvbGRVc2VybmFtZSk7CiAK
ICAgICBRUXVpY2tJdGVtKiBkaWFsb2coKSBjb25zdCB7IHJldHVybiBtX2RpYWxvZy5nZXQoKTsg
fQogCiAgICAgYm9vbCB3YXNBY2NlcHRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzQWNjZXB0ZWQ7
IH0KICAgICBRU3RyaW5nIHJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0OyB9CiAKKyAg
ICBRU3RyaW5nIHVzZXJuYW1lKCkgY29uc3QgeyByZXR1cm4gbV91c2VybmFtZTsgfQorICAgIFFT
dHJpbmcgcGFzc3dvcmQoKSBjb25zdCB7IHJldHVybiBtX3Bhc3N3b3JkOyB9CisKIHB1YmxpYyBz
bG90czoKICAgICB2b2lkIG9uQWNjZXB0ZWQoY29uc3QgUVN0cmluZyYgcmVzdWx0ID0gUVN0cmlu
ZygpKQogICAgIHsKQEAgLTUxLDYgKzU1LDEyIEBAIHB1YmxpYyBzbG90czoKICAgICAgICAgbV9y
ZXN1bHQgPSByZXN1bHQ7CiAgICAgfQogCisgICAgdm9pZCBvbkF1dGhlbnRpY2F0aW9uQWNjZXB0
ZWQoY29uc3QgUVN0cmluZyYgdXNlcm5hbWUsIGNvbnN0IFFTdHJpbmcmIHBhc3N3b3JkKQorICAg
IHsKKyAgICAgICAgbV91c2VybmFtZSA9IHVzZXJuYW1lOworICAgICAgICBtX3Bhc3N3b3JkID0g
cGFzc3dvcmQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIGJvb2wgY3JlYXRlRGlhbG9nKFFEZWNs
YXJhdGl2ZUNvbXBvbmVudCosIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgUU9iamVjdCogY29u
dGV4dE9iamVjdCk7CiAKQEAgLTU4LDYgKzY4LDkgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8UVF1
aWNrSXRlbT4gbV9kaWFsb2c7CiAgICAgUVN0cmluZyBtX3Jlc3VsdDsKICAgICBib29sIG1fd2Fz
QWNjZXB0ZWQ7CisKKyAgICBRU3RyaW5nIG1fdXNlcm5hbWU7CisgICAgUVN0cmluZyBtX3Bhc3N3
b3JkOwogfTsKIAogI2VuZGlmIC8vIFF0RGlhbG9nUnVubmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAKaW5kZXggY2M5Njg3NmJlMWViYmJiMjA2Nzc2
YWJhZWEyM2RiZmVmNDRkNWE2MS4uMWU1M2IzYzM5YzRhMzlmYzJjYjk4ZmNmMjQxYmE3YWQ1OTBh
Y2FhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAK
QEAgLTEwNyw2ICsxMDcsMTcgQEAgdm9pZCBRdFBhZ2VDbGllbnQ6OmhhbmRsZUFwcGxpY2F0aW9u
U2NoZW1lUmVxdWVzdChQYXNzUmVmUHRyPFF0TmV0d29ya1JlcXVlc3REYXQKICAgICBtX3dlYlZp
ZXctPmV4cGVyaW1lbnRhbCgpLT5pbnZva2VBcHBsaWNhdGlvblNjaGVtZUhhbmRsZXIocmVxdWVz
dERhdGEuZ2V0KCkpOwogfQogCit2b2lkIFF0UGFnZUNsaWVudDo6YXV0aGVudGljYXRpb25SZXF1
aXJlZChjb25zdCBTdHJpbmcmIGhvc3RuYW1lLCBjb25zdCBTdHJpbmcmIHJlYWxtLCBjb25zdCBT
dHJpbmcmIG9sZFVzZXJuYW1lLCBTdHJpbmcmIHVzZXJuYW1lLCBTdHJpbmcmIHBhc3N3b3JkKQor
eworICAgIFFTdHJpbmcgcVVzZXJuYW1lOworICAgIFFTdHJpbmcgcVBhc3N3b3JkOworCisgICAg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OmdldChtX3dlYlZpZXcpLT5hdXRoZW50aWNhdGlvblJlcXVp
cmVkKGhvc3RuYW1lLCByZWFsbSwgb2xkVXNlcm5hbWUsIHFVc2VybmFtZSwgcVBhc3N3b3JkKTsK
KworICAgIHVzZXJuYW1lID0gcVVzZXJuYW1lOworICAgIHBhc3N3b3JkID0gcVBhc3N3b3JkOwor
fQorCiB2b2lkIFF0UGFnZUNsaWVudDo6c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYg
Y3Vyc29yKQogewogICAgIC8vIEZJWE1FOiBUaGlzIGlzIGEgdGVtcG9yYXJ5IGZpeCB1bnRpbCB3
ZSBnZXQgY3Vyc29yIHN1cHBvcnQgaW4gUU1MIGl0ZW1zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0UGFnZUNsaWVudC5oCmluZGV4IDc3MTUwMjZmODEzNjMxYmNkNWVjYzJjODQ2YjVl
NWU5MGQzYzliM2IuLmVkZjRhNzZiZDQ0ZTI4NmMwMDM2NmRiNzNiNDJkNjBhZWNkOTMxNjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50LmgKQEAgLTU0LDYgKzU0
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGFzc093blB0cjxEcmF3aW5nQXJlYVByb3h5PiBj
cmVhdGVEcmF3aW5nQXJlYVByb3h5KCk7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZURvd25sb2Fk
UmVxdWVzdChEb3dubG9hZFByb3h5Kik7CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUFwcGxpY2F0
aW9uU2NoZW1lUmVxdWVzdChQYXNzUmVmUHRyPFF0TmV0d29ya1JlcXVlc3REYXRhPik7CisgICAg
dmlydHVhbCB2b2lkIGF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoY29uc3QgU3RyaW5nJiBob3N0bmFt
ZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgY29uc3QgU3RyaW5nJiBvbGRVc2VybmFtZSwgU3RyaW5n
JiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29yZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGxh
eVZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVmlldyhjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5ldHdvcmtBY2Nlc3NN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXROZXR3b3JrQWNjZXNz
TWFuYWdlci5jcHAKaW5kZXggNTdiOTUzZmVhZGM3NzRkZWQ2YzYxYjEzYmQ4NzAyY2VkZjE5OTgx
OS4uODI4OTczYzQwMDkyNjdiYTBmZGZlZTFhZDIzMTIxMzEwMGU3MGZmYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0TmV0d29ya0FjY2Vzc01hbmFnZXIu
Y3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBaZW5vIEFsYmlz
c2VyIDx6ZW5vQHdlYmtpdC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI5LDcgKzMwLDkgQEAKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNp
bmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorI2luY2x1ZGUgPFFBdXRoZW50aWNhdG9yPgogI2luY2x1ZGUgPFFOZXR3b3JrUmVwbHk+
CiAjaW5jbHVkZSA8UU5ldHdvcmtSZXF1ZXN0PgogCkBAIC0zOSw2ICs0Miw3IEBAIFF0TmV0d29y
a0FjY2Vzc01hbmFnZXI6OlF0TmV0d29ya0FjY2Vzc01hbmFnZXIoV2ViUHJvY2Vzcyogd2ViUHJv
Y2VzcykKICAgICA6IFFOZXR3b3JrQWNjZXNzTWFuYWdlcigpCiAgICAgLCBtX3dlYlByb2Nlc3Mo
d2ViUHJvY2VzcykKIHsKKyAgICBjb25uZWN0KHRoaXMsIFNJR05BTChhdXRoZW50aWNhdGlvblJl
cXVpcmVkKFFOZXR3b3JrUmVwbHkqLCBRQXV0aGVudGljYXRvciopKSwgU0xPVChvbkF1dGhlbnRp
Y2F0aW9uUmVxdWlyZWQoUU5ldHdvcmtSZXBseSosIFFBdXRoZW50aWNhdG9yKikpKTsKIH0KIAog
UXROZXR3b3JrQWNjZXNzTWFuYWdlcjo6UXROZXR3b3JrQWNjZXNzTWFuYWdlcihRT2JqZWN0KiBw
YXJlbnQpCkBAIC03OSw2ICs4MywzMCBAQCB2b2lkIFF0TmV0d29ya0FjY2Vzc01hbmFnZXI6OnJl
Z2lzdGVyQXBwbGljYXRpb25TY2hlbWUoY29uc3QgV2ViUGFnZSogcGFnZSwgY29ucwogICAgIG1f
YXBwbGljYXRpb25TY2hlbWVzLmluc2VydChwYWdlLCBzY2hlbWUudG9Mb3dlcigpKTsKIH0KIAor
dm9pZCBRdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyOjpvbkF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoUU5l
dHdvcmtSZXBseSAqcmVwbHksIFFBdXRoZW50aWNhdG9yICphdXRoZW50aWNhdG9yKQoreworICAg
IFFPYmplY3QqIG9yaWdpbmF0aW5nT2JqZWN0ID0gcmVwbHktPnJlcXVlc3QoKS5vcmlnaW5hdGlu
Z09iamVjdCgpOworCisgICAgLy8gRklYTUU6IFRoaXMgY2hlY2sgY2FuIGdvIGF3YXkgb25jZSBv
dXIgUXQgdmVyc2lvbiBpcyB1cC10by1kYXRlLiBTZWU6IFFUQlVHLTIzNTEyLgorICAgIGlmIChv
cmlnaW5hdGluZ09iamVjdCkgeworICAgICAgICBTdHJpbmcgaG9zdG5hbWUgPSByZXBseS0+dXJs
KCkudG9TdHJpbmcoUVVybDo6UmVtb3ZlUGF0aCB8IFFVcmw6OlJlbW92ZVF1ZXJ5IHwgUVVybDo6
UmVtb3ZlRnJhZ21lbnQgfCBRVXJsOjpTdHJpcFRyYWlsaW5nU2xhc2gpOworICAgICAgICBTdHJp
bmcgcmVhbG0gPSBhdXRoZW50aWNhdG9yLT5yZWFsbSgpOworICAgICAgICBTdHJpbmcgb2xkVXNl
cm5hbWUgPSBhdXRoZW50aWNhdG9yLT51c2VyKCk7CisgICAgICAgIHF1bG9uZ2xvbmcgcGFnZUlE
ID0gb3JpZ2luYXRpbmdPYmplY3QtPnByb3BlcnR5KCJwYWdlSUQiKS50b1VMb25nTG9uZygpOwor
ICAgICAgICBTdHJpbmcgdXNlcm5hbWU7CisgICAgICAgIFN0cmluZyBwYXNzd29yZDsKKworICAg
ICAgICBpZiAobV93ZWJQcm9jZXNzLT53ZWJQYWdlKHBhZ2VJRCktPnNlbmRTeW5jKAorICAgICAg
ICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QXV0aGVudGljYXRpb25SZXF1aXJlZChob3N0
bmFtZSwgcmVhbG0sIG9sZFVzZXJuYW1lKSwKKyAgICAgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdl
UHJveHk6OkF1dGhlbnRpY2F0aW9uUmVxdWlyZWQ6OlJlcGx5KHVzZXJuYW1lLCBwYXNzd29yZCkp
KSB7CisgICAgICAgICAgICBpZiAoIXVzZXJuYW1lLmlzRW1wdHkoKSkKKyAgICAgICAgICAgICAg
ICBhdXRoZW50aWNhdG9yLT5zZXRVc2VyKHVzZXJuYW1lKTsKKyAgICAgICAgICAgIGlmICghcGFz
c3dvcmQuaXNFbXB0eSgpKQorICAgICAgICAgICAgICAgIGF1dGhlbnRpY2F0b3ItPnNldFBhc3N3
b3JkKHBhc3N3b3JkKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogfQogCiAjaW5jbHVkZSAibW9j
X1F0TmV0d29ya0FjY2Vzc01hbmFnZXIuY3BwIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9xdC9RdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL3F0L1F0TmV0d29ya0FjY2Vzc01hbmFnZXIuaAppbmRleCA4ZDllYjFkMGViNzc2
ODQzZTA3MDBiMjI3NTM0MTMwODU2ODE4Yzk3Li4zM2VhNTNmNWZlYzQ4YjY0ZjcyYjNjNDYwNzE4
YjQyMWQ2MDhiZWQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0
TmV0d29ya0FjY2Vzc01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0
L1F0TmV0d29ya0FjY2Vzc01hbmFnZXIuaApAQCAtMSw1ICsxLDYgQEAKIC8qCiAgKiBDb3B5cmln
aHQgKEMpIDIwMTEgWmVubyBBbGJpc3NlciA8emVub0B3ZWJraXQub3JnPgorICogQ29weXJpZ2h0
IChDKSAyMDEyIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00Niw2ICs0Nyw5IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIFFOZXR3b3JrUmVwbHkqIGNyZWF0ZVJlcXVlc3QoT3BlcmF0aW9uLCBj
b25zdCBRTmV0d29ya1JlcXVlc3QmLCBRSU9EZXZpY2UqIG91dGdvaW5nRGF0YSA9IDApIE9WRVJS
SURFOwogICAgIHN0YXRpYyBXZWJQYWdlKiBvYnRhaW5PcmlnaW5hdGluZ1dlYlBhZ2UoY29uc3Qg
UU5ldHdvcmtSZXF1ZXN0Jik7CiAKK3ByaXZhdGUgUV9TTE9UUzoKKyAgICB2b2lkIG9uQXV0aGVu
dGljYXRpb25SZXF1aXJlZChRTmV0d29ya1JlcGx5ICosIFFBdXRoZW50aWNhdG9yICopOworCiBw
cml2YXRlOgogICAgIFFNdWx0aUhhc2g8Y29uc3QgV2ViUGFnZSosIFFTdHJpbmc+IG1fYXBwbGlj
YXRpb25TY2hlbWVzOwogICAgIFdlYlByb2Nlc3MqIG1fd2ViUHJvY2VzczsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122639</attachid>
            <date>2012-01-16 08:10:34 -0800</date>
            <delta_ts>2012-01-17 05:18:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75535-20120116171033.patch</filename>
            <type>text/plain</type>
            <size>20767</size>
            <attacher name="Alexander Færøy">ahf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDA2N2M3M2QwMzE2ZmRh
ODQ1MWRkMGZkYjZlNWMwNTlmZGI0MDBiOS4uNWZlMDA2YjkyMTgyMmQwNTI2M2FkMmE1NWMyZDAw
OWMzNjVkYmVmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDUxIEBACiAyMDEyLTAxLTE2ICBBbGV4
YW5kZXIgRsOmcsO4eSAgPGFsZXhhbmRlci5mYWVyb3lAbm9raWEuY29tPgogCisgICAgICAgIFtR
dF0gSW1wbGVtZW50IEhUVFAgYXV0aGVudGljYXRpb24gUU1MIEFQSQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzU1MzUKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgdGhl
IFFNTCBBUEkgZm9yIGhhbmRsaW5nIEhUVFAgYXV0aGVudGljYXRpb24uCisgICAgICAgIFRoZSBp
bXBsZW1lbnRhdGlvbiB1c2VzIGEgc3luY3Jvbm91cyBtZXNzYWdlIGJldHdlZW4gdGhlIFdlYlBy
b2Nlc3MKKyAgICAgICAgYW5kIHRoZSBVSVByb2Nlc3Mgd2hpY2ggaXMgY2FsbGVkIHdoZW4gdGhl
IGF1dGhlbnRpY2F0aW9uUmVxdWlyZWQKKyAgICAgICAgc2lnbmFsIGlzIGVtaXR0ZWQgZnJvbSBR
TkFNLgorCisgICAgICAgIEJhc2VkIGluIHBhcnQgdXBvbiBwYXRjaCBieSBQZXRlciBIYXJ0bWFu
bi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHA6CisgICAg
ICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUpOgorICAgICAg
ICAoUVF1aWNrV2ViVmlld1ByaXZhdGU6OmhhbmRsZUF1dGhlbnRpY2F0aW9uUmVxdWlyZWRSZXF1
ZXN0KToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmF1dGhlbnRpY2F0aW9u
RGlhbG9nKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OnNldEF1dGhlbnRp
Y2F0aW9uRGlhbG9nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdf
cC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvUGFnZUNsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmF1dGhlbnRpY2F0
aW9uUmVxdWlyZWRSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAgICAg
KiBVSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuY3BwOgorICAgICAgICAoQXV0aGVudGljYXRp
b25EaWFsb2dDb250ZXh0T2JqZWN0OjpBdXRoZW50aWNhdGlvbkRpYWxvZ0NvbnRleHRPYmplY3Qp
OgorICAgICAgICAoQXV0aGVudGljYXRpb25EaWFsb2dDb250ZXh0T2JqZWN0Ojpob3N0bmFtZSk6
CisgICAgICAgIChBdXRoZW50aWNhdGlvbkRpYWxvZ0NvbnRleHRPYmplY3Q6OnJlYWxtKToKKyAg
ICAgICAgKEF1dGhlbnRpY2F0aW9uRGlhbG9nQ29udGV4dE9iamVjdDo6cHJlZmlsbGVkVXNlcm5h
bWUpOgorICAgICAgICAoQXV0aGVudGljYXRpb25EaWFsb2dDb250ZXh0T2JqZWN0OjphY2NlcHQp
OgorICAgICAgICAoQXV0aGVudGljYXRpb25EaWFsb2dDb250ZXh0T2JqZWN0OjpyZWplY3QpOgor
ICAgICAgICAoUXREaWFsb2dSdW5uZXI6OmluaXRGb3JBdXRoZW50aWNhdGlvbik6CisgICAgICAg
ICogVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmg6CisgICAgICAgIChRdERpYWxvZ1J1bm5l
cjo6dXNlcm5hbWUpOgorICAgICAgICAoUXREaWFsb2dSdW5uZXI6OnBhc3N3b3JkKToKKyAgICAg
ICAgKFF0RGlhbG9nUnVubmVyOjpvbkF1dGhlbnRpY2F0aW9uQWNjZXB0ZWQpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwOgorICAgICAgICAoUXRQYWdlQ2xpZW50Ojpo
YW5kbGVBdXRoZW50aWNhdGlvblJlcXVpcmVkUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9jZXNz
L3F0L1F0UGFnZUNsaWVudC5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvcXQvUXROZXR3b3JrQWNj
ZXNzTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0TmV0d29ya0FjY2Vzc01hbmFnZXI6
OlF0TmV0d29ya0FjY2Vzc01hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpRdE5ldHdvcmtBY2Nl
c3NNYW5hZ2VyOjpvbkF1dGhlbnRpY2F0aW9uUmVxdWlyZWQpOgorICAgICAgICAqIFdlYlByb2Nl
c3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdlci5oOgorCisyMDEyLTAxLTE2ICBBbGV4YW5kZXIg
RsOmcsO4eSAgPGFsZXhhbmRlci5mYWVyb3lAbm9raWEuY29tPgorCiAgICAgICAgIFtRdF0gUmVt
b3ZlIHJlZmVyZW5jZXMgdG8gUGFnZVBvaW50ZXIgaW4gdGhlIEZyYW1lTmV0d29ya2luZ0NvbnRl
eHQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MzQy
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vi
dmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcu
Y3BwCmluZGV4IDQzZDQwYjliMzFkNzJjOGZiYWYyNWY4NjE1MjNlZTdiZjM0MzMwYjguLmQzZGFj
NWRmYzZjNDM3MjQ4OGZjNTk3ZTBlNDlkMjY1ODY0ZjFhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcApAQCAtNTUsNiArNTUsNyBA
QCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUoUVF1aWNrV2ViVmll
dyogdmlld3BvcnQpCiAgICAgLCBhbGVydERpYWxvZygwKQogICAgICwgY29uZmlybURpYWxvZygw
KQogICAgICwgcHJvbXB0RGlhbG9nKDApCisgICAgLCBhdXRoZW50aWNhdGlvbkRpYWxvZygwKQog
ICAgICwgaXRlbVNlbGVjdG9yKDApCiAgICAgLCBwb3N0VHJhbnNpdGlvblN0YXRlKGFkb3B0UHRy
KG5ldyBQb3N0VHJhbnNpdGlvblN0YXRlKHRoaXMpKSkKICAgICAsIGlzVHJhbnNpdGlvbmluZ1Rv
TmV3UGFnZShmYWxzZSkKQEAgLTQ0MCw2ICs0NDEsMjYgQEAgUVN0cmluZyBRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6cnVuSmF2YVNjcmlwdFByb21wdChjb25zdCBRU3RyaW5nJiBtZXNzYWdlLCBjb25z
dAogICAgIHJldHVybiBkaWFsb2dSdW5uZXIucmVzdWx0KCk7CiB9CiAKK3ZvaWQgUVF1aWNrV2Vi
Vmlld1ByaXZhdGU6OmhhbmRsZUF1dGhlbnRpY2F0aW9uUmVxdWlyZWRSZXF1ZXN0KGNvbnN0IFFT
dHJpbmcmIGhvc3RuYW1lLCBjb25zdCBRU3RyaW5nJiByZWFsbSwgY29uc3QgUVN0cmluZyYgcHJl
ZmlsbGVkVXNlcm5hbWUsIFFTdHJpbmcmIHVzZXJuYW1lLCBRU3RyaW5nJiBwYXNzd29yZCkKK3sK
KyAgICBpZiAoIWF1dGhlbnRpY2F0aW9uRGlhbG9nKQorICAgICAgICByZXR1cm47CisKKyAgICBR
X1EoUVF1aWNrV2ViVmlldyk7CisgICAgUXREaWFsb2dSdW5uZXIgZGlhbG9nUnVubmVyOworICAg
IGlmICghZGlhbG9nUnVubmVyLmluaXRGb3JBdXRoZW50aWNhdGlvbihhdXRoZW50aWNhdGlvbkRp
YWxvZywgcSwgaG9zdG5hbWUsIHJlYWxtLCBwcmVmaWxsZWRVc2VybmFtZSkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHNldFZpZXdJbkF0dGFjaGVkUHJvcGVydGllcyhkaWFsb2dSdW5uZXIuZGlh
bG9nKCkpOworCisgICAgZGlzYWJsZU1vdXNlRXZlbnRzKCk7CisgICAgZGlhbG9nUnVubmVyLmV4
ZWMoKTsKKyAgICBlbmFibGVNb3VzZUV2ZW50cygpOworCisgICAgdXNlcm5hbWUgPSBkaWFsb2dS
dW5uZXIudXNlcm5hbWUoKTsKKyAgICBwYXNzd29yZCA9IGRpYWxvZ1J1bm5lci5wYXNzd29yZCgp
OworfQorCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpjaG9vc2VGaWxlcyhXS09wZW5QYW5l
bFJlc3VsdExpc3RlbmVyUmVmIGxpc3RlbmVyUmVmLCBjb25zdCBRU3RyaW5nTGlzdCYgc2VsZWN0
ZWRGaWxlTmFtZXMsIFF0V2ViUGFnZVVJQ2xpZW50OjpGaWxlQ2hvb3NlclR5cGUgdHlwZSkKIHsK
ICNpZm5kZWYgUVRfTk9fRklMRURJQUxPRwpAQCAtNjcxLDYgKzY5MiwyMSBAQCB2b2lkIFFRdWlj
a1dlYlZpZXdFeHBlcmltZW50YWw6OnNldFByb21wdERpYWxvZyhRRGVjbGFyYXRpdmVDb21wb25l
bnQqIHByb21wdERpYQogICAgIGVtaXQgcHJvbXB0RGlhbG9nQ2hhbmdlZCgpOwogfQogCitRRGVj
bGFyYXRpdmVDb21wb25lbnQqIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWw6OmF1dGhlbnRpY2F0
aW9uRGlhbG9nKCkgY29uc3QKK3sKKyAgICBRX0QoY29uc3QgUVF1aWNrV2ViVmlldyk7CisgICAg
cmV0dXJuIGQtPmF1dGhlbnRpY2F0aW9uRGlhbG9nOworfQorCit2b2lkIFFRdWlja1dlYlZpZXdF
eHBlcmltZW50YWw6OnNldEF1dGhlbnRpY2F0aW9uRGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBvbmVu
dCogYXV0aGVudGljYXRpb25EaWFsb2cpCit7CisgICAgUV9EKFFRdWlja1dlYlZpZXcpOworICAg
IGlmIChkLT5hdXRoZW50aWNhdGlvbkRpYWxvZyA9PSBhdXRoZW50aWNhdGlvbkRpYWxvZykKKyAg
ICAgICAgcmV0dXJuOworICAgIGQtPmF1dGhlbnRpY2F0aW9uRGlhbG9nID0gYXV0aGVudGljYXRp
b25EaWFsb2c7CisgICAgZW1pdCBhdXRoZW50aWNhdGlvbkRpYWxvZ0NoYW5nZWQoKTsKK30KKwog
UURlY2xhcmF0aXZlQ29tcG9uZW50KiBRUXVpY2tXZWJWaWV3RXhwZXJpbWVudGFsOjppdGVtU2Vs
ZWN0b3IoKSBjb25zdAogewogICAgIFFfRChjb25zdCBRUXVpY2tXZWJWaWV3KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCmluZGV4IDBm
YTA3OTFjZmNlZTIwY2E4NWEwZTYyODNkMjY1MTY3ZjQ5MjkyZTEuLjE1NWU5NjA5NzllMzNmOWYy
MTgyOTU5ZWQ2NWJiNTJkMzI2YjM0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaApAQCAtMjA4LDYgKzIwOCw3IEBAIGNsYXNzIFFX
RUJLSVRfRVhQT1JUIFFRdWlja1dlYlZpZXdFeHBlcmltZW50YWwgOiBwdWJsaWMgUU9iamVjdCB7
CiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIGFsZXJ0RGlhbG9nIFJFQUQg
YWxlcnREaWFsb2cgV1JJVEUgc2V0QWxlcnREaWFsb2cgTk9USUZZIGFsZXJ0RGlhbG9nQ2hhbmdl
ZCkKICAgICBRX1BST1BFUlRZKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogY29uZmlybURpYWxvZyBS
RUFEIGNvbmZpcm1EaWFsb2cgV1JJVEUgc2V0Q29uZmlybURpYWxvZyBOT1RJRlkgY29uZmlybURp
YWxvZ0NoYW5nZWQpCiAgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQqIHByb21w
dERpYWxvZyBSRUFEIHByb21wdERpYWxvZyBXUklURSBzZXRQcm9tcHREaWFsb2cgTk9USUZZIHBy
b21wdERpYWxvZ0NoYW5nZWQpCisgICAgUV9QUk9QRVJUWShRRGVjbGFyYXRpdmVDb21wb25lbnQq
IGF1dGhlbnRpY2F0aW9uRGlhbG9nIFJFQUQgYXV0aGVudGljYXRpb25EaWFsb2cgV1JJVEUgc2V0
QXV0aGVudGljYXRpb25EaWFsb2cgTk9USUZZIGF1dGhlbnRpY2F0aW9uRGlhbG9nQ2hhbmdlZCkK
ICAgICBRX1BST1BFUlRZKFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogaXRlbVNlbGVjdG9yIFJFQUQg
aXRlbVNlbGVjdG9yIFdSSVRFIHNldEl0ZW1TZWxlY3RvciBOT1RJRlkgaXRlbVNlbGVjdG9yQ2hh
bmdlZCkKICAgICBRX1BST1BFUlRZKFFXZWJQcmVmZXJlbmNlcyogcHJlZmVyZW5jZXMgUkVBRCBw
cmVmZXJlbmNlcyBDT05TVEFOVCBGSU5BTCkKICAgICBRX1BST1BFUlRZKGJvb2wgdXNlVHJhZGl0
aW9uYWxEZXNrdG9wQmVoYXZpb3VyIFJFQUQgdXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3Vy
IFdSSVRFIHNldFVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cikKQEAgLTIyOSw2ICsyMzAs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb25maXJtRGlhbG9nKFFEZWNsYXJhdGl2ZUNvbXBv
bmVudCopOwogICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogcHJvbXB0RGlhbG9nKCkgY29uc3Q7
CiAgICAgdm9pZCBzZXRQcm9tcHREaWFsb2coUURlY2xhcmF0aXZlQ29tcG9uZW50Kik7CisgICAg
UURlY2xhcmF0aXZlQ29tcG9uZW50KiBhdXRoZW50aWNhdGlvbkRpYWxvZygpIGNvbnN0OworICAg
IHZvaWQgc2V0QXV0aGVudGljYXRpb25EaWFsb2coUURlY2xhcmF0aXZlQ29tcG9uZW50Kik7CiAg
ICAgUURlY2xhcmF0aXZlQ29tcG9uZW50KiBpdGVtU2VsZWN0b3IoKSBjb25zdDsKICAgICB2b2lk
IHNldEl0ZW1TZWxlY3RvcihRRGVjbGFyYXRpdmVDb21wb25lbnQqKTsKICAgICAKQEAgLTI1Nyw2
ICsyNjAsNyBAQCBRX1NJR05BTFM6CiAgICAgdm9pZCBhbGVydERpYWxvZ0NoYW5nZWQoKTsKICAg
ICB2b2lkIGNvbmZpcm1EaWFsb2dDaGFuZ2VkKCk7CiAgICAgdm9pZCBwcm9tcHREaWFsb2dDaGFu
Z2VkKCk7CisgICAgdm9pZCBhdXRoZW50aWNhdGlvbkRpYWxvZ0NoYW5nZWQoKTsKICAgICB2b2lk
IGl0ZW1TZWxlY3RvckNoYW5nZWQoKTsKICAgICB2b2lkIGRvd25sb2FkUmVxdWVzdGVkKFFXZWJE
b3dubG9hZEl0ZW0qIGRvd25sb2FkSXRlbSk7CiAgICAgdm9pZCBwZXJtaXNzaW9uUmVxdWVzdGVk
KFFXZWJQZXJtaXNzaW9uUmVxdWVzdCogcGVybWlzc2lvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcF9wLmgKaW5kZXggNGJlNzE3MDdj
YjlhYWQyNDkxNGVjNWMxMjUzM2ExYTI3M2E1OTU0Ny4uZThlNmJmNzBkZmZlZjg1YmNlOTkyMzMy
ZmNmYmIxMmNhYWMwZGZjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9xdC9xcXVpY2t3ZWJ2aWV3X3BfcC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wX3AuaApAQCAtOTYsNiArOTYsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBydW5KYXZhU2NyaXB0Q29uZmlybShjb25zdCBRU3RyaW5nJik7CiAgICAgUVN0cmluZyBy
dW5KYXZhU2NyaXB0UHJvbXB0KGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nJiBkZWZhdWx0
VmFsdWUsIGJvb2wmIG9rKTsKIAorICAgIHZvaWQgaGFuZGxlQXV0aGVudGljYXRpb25SZXF1aXJl
ZFJlcXVlc3QoY29uc3QgUVN0cmluZyYgaG9zdG5hbWUsIGNvbnN0IFFTdHJpbmcmIHJlYWxtLCBj
b25zdCBRU3RyaW5nJiBwcmVmaWxsZWRVc2VybmFtZSwgUVN0cmluZyYgdXNlcm5hbWUsIFFTdHJp
bmcmIHBhc3N3b3JkKTsKKwogICAgIHZvaWQgc2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZp
b3VyKGJvb2wgZW5hYmxlKTsKICAgICB2b2lkIHNldFZpZXdJbkF0dGFjaGVkUHJvcGVydGllcyhR
T2JqZWN0Kik7CiAgICAgdm9pZCBzZXRJY29uKGNvbnN0IFFVcmwmKTsKQEAgLTE1MCw2ICsxNTIs
NyBAQCBwcml2YXRlOgogICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogYWxlcnREaWFsb2c7CiAg
ICAgUURlY2xhcmF0aXZlQ29tcG9uZW50KiBjb25maXJtRGlhbG9nOwogICAgIFFEZWNsYXJhdGl2
ZUNvbXBvbmVudCogcHJvbXB0RGlhbG9nOworICAgIFFEZWNsYXJhdGl2ZUNvbXBvbmVudCogYXV0
aGVudGljYXRpb25EaWFsb2c7CiAgICAgUURlY2xhcmF0aXZlQ29tcG9uZW50KiBpdGVtU2VsZWN0
b3I7CiAKICAgICBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyB2aWV3cG9ydEFyZ3VtZW50czsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFnZUNsaWVudC5oCmluZGV4IGM5NGVhMWExM2IyYTcxMDJh
ZTg4NzY3N2EzMWYxYjA4YmUyN2QzMzcuLmRlYWJiZDA2MGMwMTk3YTIwMDU2MzZiN2JmNWU1ZGJm
OTU0YTdlYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaApAQCAtMTEwLDYg
KzExMCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9t
TmF2aWdhdG9yUXRPYmplY3QoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBo
YW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSopID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlVGV4dElucHV0U3RhdGUoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1
dGhlbnRpY2F0aW9uUmVxdWlyZWRSZXF1ZXN0KGNvbnN0IFN0cmluZyYgaG9zdG5hbWUsIGNvbnN0
IFN0cmluZyYgcmVhbG0sIGNvbnN0IFN0cmluZyYgcHJlZmlsbGVkVXNlcm5hbWUsIFN0cmluZyYg
dXNlcm5hbWUsIFN0cmluZyYgcGFzc3dvcmQpID0gMDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0o
UVQpIHx8IFBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5jcHAKaW5kZXggN2UwOGNlY2Q4MTk0MDc3ZDAzNTM3NmFhYTk0NDcwZGE1MzQ4ZmViYS4uYjI1
M2RhYTEzNTI3OTdmYWY4YTNjZDJjYmY1MWI2MWQxOTZiNDQ3NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTIzNTMsNyArMjM1MywxMiBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6aGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqIGRvd25sb2Fk
KQogewogICAgIG1fcGFnZUNsaWVudC0+aGFuZGxlRG93bmxvYWRSZXF1ZXN0KGRvd25sb2FkKTsK
IH0KLSNlbmRpZgorCit2b2lkIFdlYlBhZ2VQcm94eTo6YXV0aGVudGljYXRpb25SZXF1aXJlZFJl
cXVlc3QoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgU3RyaW5nJiByZWFsbSwgY29uc3Qg
U3RyaW5nJiBwcmVmaWxsZWRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFtZSwgU3RyaW5nJiBwYXNz
d29yZCkKK3sKKyAgICBtX3BhZ2VDbGllbnQtPmhhbmRsZUF1dGhlbnRpY2F0aW9uUmVxdWlyZWRS
ZXF1ZXN0KGhvc3RuYW1lLCByZWFsbSwgcHJlZmlsbGVkVXNlcm5hbWUsIHVzZXJuYW1lLCBwYXNz
d29yZCk7Cit9CisjZW5kaWYgLy8gUExBVEZPUk0oUVQpLgogCiAjaWYgRU5BQkxFKFRPVUNIX0VW
RU5UUykKIHZvaWQgV2ViUGFnZVByb3h5OjpuZWVkVG91Y2hFdmVudHMoYm9vbCBuZWVkVG91Y2hF
dmVudHMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDNlNTNi
MWE3YTBmNjc5MmMyYzNmNTAyYmJiZjE4YzYwMDVjYzAwNi4uOTI2NTAyZmM2YjU4M2E4ZjhlYTg2
YjQyNWM0YWI0NjM1Yzg2M2U2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaApAQCAtMzIwLDYgKzMyMCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZ2lzdGVyQXBwbGlj
YXRpb25TY2hlbWUoY29uc3QgU3RyaW5nJiBzY2hlbWUpOwogICAgIHZvaWQgcmVzb2x2ZUFwcGxp
Y2F0aW9uU2NoZW1lUmVxdWVzdChRdE5ldHdvcmtSZXF1ZXN0RGF0YSk7CiAgICAgdm9pZCBzZW5k
QXBwbGljYXRpb25TY2hlbWVSZXBseShjb25zdCBRUXVpY2tOZXR3b3JrUmVwbHkqKTsKKyAgICB2
b2lkIGF1dGhlbnRpY2F0aW9uUmVxdWlyZWRSZXF1ZXN0KGNvbnN0IFN0cmluZyYgaG9zdG5hbWUs
IGNvbnN0IFN0cmluZyYgcmVhbG0sIGNvbnN0IFN0cmluZyYgcHJlZmlsbGVkVXNlcm5hbWUsIFN0
cmluZyYgdXNlcm5hbWUsIFN0cmluZyYgcGFzc3dvcmQpOwogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShRVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDVjMjEzM2FiNDFjMWMxZDczNjE2MmNkNjA0NGUwOWU0NWJlODdiMTYuLjg3
NWY1YjlhMzI1YTk3NTEzOWU3Mzk4ZmU4ZmU2YjU4NjZiNjFiNWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNzUsNiArNzUs
NyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIERpZENoYW5nZUNvbnRlbnRzU2l6
ZShXZWJDb3JlOjpJbnRTaXplIG5ld1NpemUpCiAgICAgRGlkRmluZFpvb21hYmxlQXJlYShXZWJD
b3JlOjpJbnRQb2ludCB0YXJnZXQsIFdlYkNvcmU6OkludFJlY3QgYXJlYSkKICAgICBGb2N1c0Vk
aXRhYmxlQXJlYShXZWJDb3JlOjpJbnRSZWN0IGNhcmV0LCBXZWJDb3JlOjpJbnRSZWN0IGFyZWEp
CisgICAgQXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVlc3QoV1RGOjpTdHJpbmcgaG9zdG5hbWUs
IFdURjo6U3RyaW5nIHJlYWxtLCBXVEY6OlN0cmluZyBwcmVmaWxsZWRVc2VybmFtZSkgLT4gKFdU
Rjo6U3RyaW5nIHVzZXJuYW1lLCBXVEY6OlN0cmluZyBwYXNzd29yZCkKICNlbmRpZgogI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCiAgICAgTmVlZFRvdWNoRXZlbnRzKGJvb2wgbmVlZFRvdWNoRXZl
bnRzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVu
bmVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdERpYWxvZ1J1bm5lci5jcHAK
aW5kZXggMzJkZTIxYWY3YzkxZmMwZGJhNDliNmFjYTJjM2RjZmQwOGIyYmE0OS4uZjczMWNhNGI0
ZTg2OWQzYjI2Zjk3YzVlMDgzMjgxOGJjMDQwMmNiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuY3BwCkBAIC02OSw2ICs2OSwzOSBAQCBwcml2YXRl
OgogICAgIFFTdHJpbmcgbV9kZWZhdWx0VmFsdWU7CiB9OwogCitjbGFzcyBBdXRoZW50aWNhdGlv
bkRpYWxvZ0NvbnRleHRPYmplY3QgOiBwdWJsaWMgUU9iamVjdCB7CisgICAgUV9PQkpFQ1QKKyAg
ICBRX1BST1BFUlRZKFFTdHJpbmcgaG9zdG5hbWUgUkVBRCBob3N0bmFtZSBDT05TVEFOVCkKKyAg
ICBRX1BST1BFUlRZKFFTdHJpbmcgcmVhbG0gUkVBRCByZWFsbSBDT05TVEFOVCkKKyAgICBRX1BS
T1BFUlRZKFFTdHJpbmcgcHJlZmlsbGVkVXNlcm5hbWUgUkVBRCBwcmVmaWxsZWRVc2VybmFtZSBD
T05TVEFOVCkKKworcHVibGljOgorICAgIEF1dGhlbnRpY2F0aW9uRGlhbG9nQ29udGV4dE9iamVj
dChjb25zdCBRU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgUVN0cmluZyYgcmVhbG0sIGNvbnN0IFFT
dHJpbmcmIHByZWZpbGxlZFVzZXJuYW1lKQorICAgICAgICA6IFFPYmplY3QoKQorICAgICAgICAs
IG1faG9zdG5hbWUoaG9zdG5hbWUpCisgICAgICAgICwgbV9yZWFsbShyZWFsbSkKKyAgICAgICAg
LCBtX3ByZWZpbGxlZFVzZXJuYW1lKHByZWZpbGxlZFVzZXJuYW1lKQorICAgIHsKKyAgICB9CisK
KyAgICBRU3RyaW5nIGhvc3RuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9ob3N0bmFtZTsgfQorICAg
IFFTdHJpbmcgcmVhbG0oKSBjb25zdCB7IHJldHVybiBtX3JlYWxtOyB9CisgICAgUVN0cmluZyBw
cmVmaWxsZWRVc2VybmFtZSgpIGNvbnN0IHsgcmV0dXJuIG1fcHJlZmlsbGVkVXNlcm5hbWU7IH0K
KworcHVibGljIHNsb3RzOgorICAgIHZvaWQgYWNjZXB0KGNvbnN0IFFTdHJpbmcmIHVzZXJuYW1l
LCBjb25zdCBRU3RyaW5nJiBwYXNzd29yZCkgeyBlbWl0IGFjY2VwdGVkKHVzZXJuYW1lLCBwYXNz
d29yZCk7IH0KKyAgICB2b2lkIHJlamVjdCgpIHsgZW1pdCByZWplY3RlZCgpOyB9CisKK3NpZ25h
bHM6CisgICAgdm9pZCBhY2NlcHRlZChjb25zdCBRU3RyaW5nJiB1c2VybmFtZSwgY29uc3QgUVN0
cmluZyYgcGFzc3dvcmQpOworICAgIHZvaWQgcmVqZWN0ZWQoKTsKKworcHJpdmF0ZToKKyAgICBR
U3RyaW5nIG1faG9zdG5hbWU7CisgICAgUVN0cmluZyBtX3JlYWxtOworICAgIFFTdHJpbmcgbV9w
cmVmaWxsZWRVc2VybmFtZTsKK307CisKIGJvb2wgUXREaWFsb2dSdW5uZXI6OmluaXRGb3JBbGVy
dChRRGVjbGFyYXRpdmVDb21wb25lbnQqIGNvbXBvbmVudCwgUVF1aWNrSXRlbSogZGlhbG9nUGFy
ZW50LCBjb25zdCBRU3RyaW5nJiBtZXNzYWdlKQogewogICAgIERpYWxvZ0NvbnRleHRPYmplY3Qq
IGNvbnRleHRPYmplY3QgPSBuZXcgRGlhbG9nQ29udGV4dE9iamVjdChtZXNzYWdlKTsKQEAgLTEw
Myw2ICsxMzYsMTkgQEAgYm9vbCBRdERpYWxvZ1J1bm5lcjo6aW5pdEZvclByb21wdChRRGVjbGFy
YXRpdmVDb21wb25lbnQqIGNvbXBvbmVudCwgUVF1aWNrSXRlbSoKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorYm9vbCBRdERpYWxvZ1J1bm5lcjo6aW5pdEZvckF1dGhlbnRpY2F0aW9uKFFEZWNsYXJh
dGl2ZUNvbXBvbmVudCogY29tcG9uZW50LCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQsIGNvbnN0
IFFTdHJpbmcmIGhvc3RuYW1lLCBjb25zdCBRU3RyaW5nJiByZWFsbSwgY29uc3QgUVN0cmluZyYg
cHJlZmlsbGVkVXNlcm5hbWUpCit7CisgICAgQXV0aGVudGljYXRpb25EaWFsb2dDb250ZXh0T2Jq
ZWN0KiBjb250ZXh0T2JqZWN0ID0gbmV3IEF1dGhlbnRpY2F0aW9uRGlhbG9nQ29udGV4dE9iamVj
dChob3N0bmFtZSwgcmVhbG0sIHByZWZpbGxlZFVzZXJuYW1lKTsKKyAgICBpZiAoIWNyZWF0ZURp
YWxvZyhjb21wb25lbnQsIGRpYWxvZ1BhcmVudCwgY29udGV4dE9iamVjdCkpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGNvbm5lY3QoY29udGV4dE9iamVjdCwgU0lHTkFMKGFjY2VwdGVk
KFFTdHJpbmcsIFFTdHJpbmcpKSwgU0xPVChvbkF1dGhlbnRpY2F0aW9uQWNjZXB0ZWQoUVN0cmlu
ZywgUVN0cmluZykpKTsKKyAgICBjb25uZWN0KGNvbnRleHRPYmplY3QsIFNJR05BTChhY2NlcHRl
ZChRU3RyaW5nLCBRU3RyaW5nKSksIFNMT1QocXVpdCgpKSk7CisgICAgY29ubmVjdChjb250ZXh0
T2JqZWN0LCBTSUdOQUwocmVqZWN0ZWQoKSksIFNMT1QocXVpdCgpKSk7CisKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKwogYm9vbCBRdERpYWxvZ1J1bm5lcjo6Y3JlYXRlRGlhbG9nKFFEZWNsYXJhdGl2
ZUNvbXBvbmVudCogY29tcG9uZW50LCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQsIFFPYmplY3Qq
IGNvbnRleHRPYmplY3QpCiB7CiAgICAgUURlY2xhcmF0aXZlQ29udGV4dCogYmFzZUNvbnRleHQg
PSBjb21wb25lbnQtPmNyZWF0aW9uQ29udGV4dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0RGlhbG9nUnVubmVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXREaWFsb2dSdW5uZXIuaAppbmRleCBiZmE1MzAyNjQzYTUwYzcwZmJmODIxNzkwNzA3
Y2UxNDY4MmEzYjM2Li5lYjQxMDcwMmQ1Y2IzZTUyY2M5NDQxZmMwYWM4MGIyNjIwMmIxZTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXREaWFsb2dSdW5uZXIuaApAQCAtMzgs
MTIgKzM4LDE2IEBAIHB1YmxpYzoKICAgICBib29sIGluaXRGb3JBbGVydChRRGVjbGFyYXRpdmVD
b21wb25lbnQqLCBRUXVpY2tJdGVtKiBkaWFsb2dQYXJlbnQsIGNvbnN0IFFTdHJpbmcmIG1lc3Nh
Z2UpOwogICAgIGJvb2wgaW5pdEZvckNvbmZpcm0oUURlY2xhcmF0aXZlQ29tcG9uZW50KiwgUVF1
aWNrSXRlbSogZGlhbG9nUGFyZW50LCBjb25zdCBRU3RyaW5nJiBtZXNzYWdlKTsKICAgICBib29s
IGluaXRGb3JQcm9tcHQoUURlY2xhcmF0aXZlQ29tcG9uZW50KiwgUVF1aWNrSXRlbSogZGlhbG9n
UGFyZW50LCBjb25zdCBRU3RyaW5nJiBtZXNzYWdlLCBjb25zdCBRU3RyaW5nJiBkZWZhdWx0VmFs
dWUpOworICAgIGJvb2wgaW5pdEZvckF1dGhlbnRpY2F0aW9uKFFEZWNsYXJhdGl2ZUNvbXBvbmVu
dCosIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgY29uc3QgUVN0cmluZyYgaG9zdG5hbWUsIGNv
bnN0IFFTdHJpbmcmIHJlYWxtLCBjb25zdCBRU3RyaW5nJiBwcmVmaWxsZWRVc2VybmFtZSk7CiAK
ICAgICBRUXVpY2tJdGVtKiBkaWFsb2coKSBjb25zdCB7IHJldHVybiBtX2RpYWxvZy5nZXQoKTsg
fQogCiAgICAgYm9vbCB3YXNBY2NlcHRlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2FzQWNjZXB0ZWQ7
IH0KICAgICBRU3RyaW5nIHJlc3VsdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzdWx0OyB9CiAKKyAg
ICBRU3RyaW5nIHVzZXJuYW1lKCkgY29uc3QgeyByZXR1cm4gbV91c2VybmFtZTsgfQorICAgIFFT
dHJpbmcgcGFzc3dvcmQoKSBjb25zdCB7IHJldHVybiBtX3Bhc3N3b3JkOyB9CisKIHB1YmxpYyBz
bG90czoKICAgICB2b2lkIG9uQWNjZXB0ZWQoY29uc3QgUVN0cmluZyYgcmVzdWx0ID0gUVN0cmlu
ZygpKQogICAgIHsKQEAgLTUxLDYgKzU1LDEyIEBAIHB1YmxpYyBzbG90czoKICAgICAgICAgbV9y
ZXN1bHQgPSByZXN1bHQ7CiAgICAgfQogCisgICAgdm9pZCBvbkF1dGhlbnRpY2F0aW9uQWNjZXB0
ZWQoY29uc3QgUVN0cmluZyYgdXNlcm5hbWUsIGNvbnN0IFFTdHJpbmcmIHBhc3N3b3JkKQorICAg
IHsKKyAgICAgICAgbV91c2VybmFtZSA9IHVzZXJuYW1lOworICAgICAgICBtX3Bhc3N3b3JkID0g
cGFzc3dvcmQ7CisgICAgfQorCiBwcml2YXRlOgogICAgIGJvb2wgY3JlYXRlRGlhbG9nKFFEZWNs
YXJhdGl2ZUNvbXBvbmVudCosIFFRdWlja0l0ZW0qIGRpYWxvZ1BhcmVudCwgUU9iamVjdCogY29u
dGV4dE9iamVjdCk7CiAKQEAgLTU4LDYgKzY4LDkgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8UVF1
aWNrSXRlbT4gbV9kaWFsb2c7CiAgICAgUVN0cmluZyBtX3Jlc3VsdDsKICAgICBib29sIG1fd2Fz
QWNjZXB0ZWQ7CisKKyAgICBRU3RyaW5nIG1fdXNlcm5hbWU7CisgICAgUVN0cmluZyBtX3Bhc3N3
b3JkOwogfTsKIAogI2VuZGlmIC8vIFF0RGlhbG9nUnVubmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAKaW5kZXggY2M5Njg3NmJlMWViYmJiMjA2Nzc2
YWJhZWEyM2RiZmVmNDRkNWE2MS4uYTEwNjNiOWVhMDRjNjMwYmM4MTZjNDcwOWIzOTRjZWJmYWM2
ZDMzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5jcHAK
QEAgLTEwNyw2ICsxMDcsMTcgQEAgdm9pZCBRdFBhZ2VDbGllbnQ6OmhhbmRsZUFwcGxpY2F0aW9u
U2NoZW1lUmVxdWVzdChQYXNzUmVmUHRyPFF0TmV0d29ya1JlcXVlc3REYXQKICAgICBtX3dlYlZp
ZXctPmV4cGVyaW1lbnRhbCgpLT5pbnZva2VBcHBsaWNhdGlvblNjaGVtZUhhbmRsZXIocmVxdWVz
dERhdGEuZ2V0KCkpOwogfQogCit2b2lkIFF0UGFnZUNsaWVudDo6aGFuZGxlQXV0aGVudGljYXRp
b25SZXF1aXJlZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgY29uc3QgU3RyaW5nJiBy
ZWFsbSwgY29uc3QgU3RyaW5nJiBwcmVmaWxsZWRVc2VybmFtZSwgU3RyaW5nJiB1c2VybmFtZSwg
U3RyaW5nJiBwYXNzd29yZCkKK3sKKyAgICBRU3RyaW5nIHFVc2VybmFtZTsKKyAgICBRU3RyaW5n
IHFQYXNzd29yZDsKKworICAgIFFRdWlja1dlYlZpZXdQcml2YXRlOjpnZXQobV93ZWJWaWV3KS0+
aGFuZGxlQXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVlc3QoaG9zdG5hbWUsIHJlYWxtLCBwcmVm
aWxsZWRVc2VybmFtZSwgcVVzZXJuYW1lLCBxUGFzc3dvcmQpOworCisgICAgdXNlcm5hbWUgPSBx
VXNlcm5hbWU7CisgICAgcGFzc3dvcmQgPSBxUGFzc3dvcmQ7Cit9CisKIHZvaWQgUXRQYWdlQ2xp
ZW50OjpzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJiBjdXJzb3IpCiB7CiAgICAgLy8g
RklYTUU6IFRoaXMgaXMgYSB0ZW1wb3JhcnkgZml4IHVudGlsIHdlIGdldCBjdXJzb3Igc3VwcG9y
dCBpbiBRTUwgaXRlbXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRQYWdlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRQYWdlQ2xpZW50
LmgKaW5kZXggNzcxNTAyNmY4MTM2MzFiY2Q1ZWNjMmM4NDZiNWU1ZTkwZDNjOWIzYi4uODFkZmRk
ZjYwMTZkNmNhZjY5NGUyYzY3MjBkNjU1ZmYxNTNmZDk1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0UGFnZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9xdC9RdFBhZ2VDbGllbnQuaApAQCAtNTQsNiArNTQsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBQYXNzT3duUHRyPERyYXdpbmdBcmVhUHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJv
eHkoKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJv
eHkqKTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQXBwbGljYXRpb25TY2hlbWVSZXF1ZXN0KFBh
c3NSZWZQdHI8UXROZXR3b3JrUmVxdWVzdERhdGE+KTsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
QXV0aGVudGljYXRpb25SZXF1aXJlZFJlcXVlc3QoY29uc3QgU3RyaW5nJiBob3N0bmFtZSwgY29u
c3QgU3RyaW5nJiByZWFsbSwgY29uc3QgU3RyaW5nJiBwcmVmaWxsZWRVc2VybmFtZSwgU3RyaW5n
JiB1c2VybmFtZSwgU3RyaW5nJiBwYXNzd29yZCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZGlzcGxh
eVZpZXcoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2Nyb2xsVmlldyhjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiBzY3JvbGxSZWN0LCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBzY3JvbGxPZmZzZXQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5ldHdvcmtBY2Nlc3NN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXROZXR3b3JrQWNjZXNz
TWFuYWdlci5jcHAKaW5kZXggMTc4YTU2NWM2M2NlYzFkYjViNzIwNTM3YmNmMjdjZDQ5YzYzYjgx
Yy4uYmI4NWQ5YTZmODU0ODdmZWJkMTQyMWVmYjI4YmI0MjFhZmQ5MWNmMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL3F0L1F0TmV0d29ya0FjY2Vzc01hbmFnZXIu
Y3BwCkBAIC0xLDUgKzEsNiBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAxMSBaZW5vIEFsYmlz
c2VyIDx6ZW5vQHdlYmtpdC5vcmc+CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgTm9raWEgQ29ycG9y
YXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAgKgogICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKQEAgLTI5LDcgKzMwLDkgQEAKICNpbmNsdWRlICJTaGFyZWRNZW1vcnkuaCIKICNp
bmNsdWRlICJXZWJGcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiV2ViUGFnZS5o
IgorI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
cy5oIgorI2luY2x1ZGUgPFFBdXRoZW50aWNhdG9yPgogI2luY2x1ZGUgPFFOZXR3b3JrUmVwbHk+
CiAjaW5jbHVkZSA8UU5ldHdvcmtSZXF1ZXN0PgogCkBAIC0zOSw2ICs0Miw3IEBAIFF0TmV0d29y
a0FjY2Vzc01hbmFnZXI6OlF0TmV0d29ya0FjY2Vzc01hbmFnZXIoV2ViUHJvY2Vzcyogd2ViUHJv
Y2VzcykKICAgICA6IFFOZXR3b3JrQWNjZXNzTWFuYWdlcigpCiAgICAgLCBtX3dlYlByb2Nlc3Mo
d2ViUHJvY2VzcykKIHsKKyAgICBjb25uZWN0KHRoaXMsIFNJR05BTChhdXRoZW50aWNhdGlvblJl
cXVpcmVkKFFOZXR3b3JrUmVwbHkqLCBRQXV0aGVudGljYXRvciopKSwgU0xPVChvbkF1dGhlbnRp
Y2F0aW9uUmVxdWlyZWQoUU5ldHdvcmtSZXBseSosIFFBdXRoZW50aWNhdG9yKikpKTsKIH0KIAog
V2ViUGFnZSogUXROZXR3b3JrQWNjZXNzTWFuYWdlcjo6b2J0YWluT3JpZ2luYXRpbmdXZWJQYWdl
KGNvbnN0IFFOZXR3b3JrUmVxdWVzdCYgcmVxdWVzdCkKQEAgLTY4LDYgKzcyLDMwIEBAIHZvaWQg
UXROZXR3b3JrQWNjZXNzTWFuYWdlcjo6cmVnaXN0ZXJBcHBsaWNhdGlvblNjaGVtZShjb25zdCBX
ZWJQYWdlKiBwYWdlLCBjb25zCiAgICAgbV9hcHBsaWNhdGlvblNjaGVtZXMuaW5zZXJ0KHBhZ2Us
IHNjaGVtZS50b0xvd2VyKCkpOwogfQogCit2b2lkIFF0TmV0d29ya0FjY2Vzc01hbmFnZXI6Om9u
QXV0aGVudGljYXRpb25SZXF1aXJlZChRTmV0d29ya1JlcGx5KiByZXBseSwgUUF1dGhlbnRpY2F0
b3IqIGF1dGhlbnRpY2F0b3IpCit7CisgICAgV2ViUGFnZSogd2ViUGFnZSA9IG9idGFpbk9yaWdp
bmF0aW5nV2ViUGFnZShyZXBseS0+cmVxdWVzdCgpKTsKKworICAgIC8vIEZJWE1FOiBUaGlzIGNo
ZWNrIGNhbiBnbyBhd2F5IG9uY2Ugb3VyIFF0IHZlcnNpb24gaXMgdXAtdG8tZGF0ZS4gU2VlOiBR
VEJVRy0yMzUxMi4KKyAgICBpZiAoIXdlYlBhZ2UpCisgICAgICAgIHJldHVybjsKKworICAgIFN0
cmluZyBob3N0bmFtZSA9IHJlcGx5LT51cmwoKS50b1N0cmluZyhRVXJsOjpSZW1vdmVQYXRoIHwg
UVVybDo6UmVtb3ZlUXVlcnkgfCBRVXJsOjpSZW1vdmVGcmFnbWVudCB8IFFVcmw6OlN0cmlwVHJh
aWxpbmdTbGFzaCk7CisgICAgU3RyaW5nIHJlYWxtID0gYXV0aGVudGljYXRvci0+cmVhbG0oKTsK
KyAgICBTdHJpbmcgcHJlZmlsbGVkVXNlcm5hbWUgPSBhdXRoZW50aWNhdG9yLT51c2VyKCk7Cisg
ICAgU3RyaW5nIHVzZXJuYW1lOworICAgIFN0cmluZyBwYXNzd29yZDsKKworICAgIGlmICh3ZWJQ
YWdlLT5zZW5kU3luYygKKyAgICAgICAgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6QXV0aGVudGlj
YXRpb25SZXF1aXJlZFJlcXVlc3QoaG9zdG5hbWUsIHJlYWxtLCBwcmVmaWxsZWRVc2VybmFtZSks
CisgICAgICAgIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkF1dGhlbnRpY2F0aW9uUmVxdWlyZWRS
ZXF1ZXN0OjpSZXBseSh1c2VybmFtZSwgcGFzc3dvcmQpKSkgeworICAgICAgICBpZiAoIXVzZXJu
YW1lLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGF1dGhlbnRpY2F0b3ItPnNldFVzZXIodXNlcm5h
bWUpOworICAgICAgICBpZiAoIXBhc3N3b3JkLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGF1dGhl
bnRpY2F0b3ItPnNldFBhc3N3b3JkKHBhc3N3b3JkKTsKKyAgICB9Cit9CisKIH0KIAogI2luY2x1
ZGUgIm1vY19RdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyLmNwcCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvcXQvUXROZXR3b3JrQWNjZXNzTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9xdC9RdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyLmgKaW5kZXggMWFmNmZj
MmVkYjEzNmVkMjU2ZDNhYjUxMTFlNDg1ZGJlODVhMGI1MS4uYjIyNGMxM2M5MGFjZWE2NWYyZTVm
ZTIwYzg3ZWM4NTk2NmE4ZWU3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9xdC9RdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9xdC9RdE5ldHdvcmtBY2Nlc3NNYW5hZ2VyLmgKQEAgLTEsNSArMSw2IEBACiAvKgogICog
Q29weXJpZ2h0IChDKSAyMDExIFplbm8gQWxiaXNzZXIgPHplbm9Ad2Via2l0Lm9yZz4KKyAqIENv
cHlyaWdodCAoQykgMjAxMiBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnko
LWllcykKICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDQsNiArNDUsOSBAQCBw
dWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCBRTmV0d29ya1JlcGx5KiBjcmVhdGVSZXF1
ZXN0KE9wZXJhdGlvbiwgY29uc3QgUU5ldHdvcmtSZXF1ZXN0JiwgUUlPRGV2aWNlKiBvdXRnb2lu
Z0RhdGEgPSAwKSBPVkVSUklERTsKIAorcHJpdmF0ZSBRX1NMT1RTOgorICAgIHZvaWQgb25BdXRo
ZW50aWNhdGlvblJlcXVpcmVkKFFOZXR3b3JrUmVwbHkgKiwgUUF1dGhlbnRpY2F0b3IgKik7CisK
IHByaXZhdGU6CiAgICAgV2ViUGFnZSogb2J0YWluT3JpZ2luYXRpbmdXZWJQYWdlKGNvbnN0IFFO
ZXR3b3JrUmVxdWVzdCYpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>